From 46ad8ae6eefc76a2e1f0ce88cdef2b919bb2d936 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 24 Jul 2017 19:45:46 +0200 Subject: Added webpage Moved from @raysan5/raylib/docs --- examples/web/models/loader.html | 210 + examples/web/models/models_billboard.c | 99 + examples/web/models/models_billboard.data | Bin 0 -> 22439 bytes examples/web/models/models_billboard.html | 239 + examples/web/models/models_billboard.js | 39935 ++++++++++++ examples/web/models/models_billboard.png | Bin 0 -> 54859 bytes examples/web/models/models_box_collisions.c | 152 + examples/web/models/models_box_collisions.html | 239 + examples/web/models/models_box_collisions.js | 25341 ++++++++ examples/web/models/models_box_collisions.png | Bin 0 -> 22077 bytes examples/web/models/models_cubicmap.c | 115 + examples/web/models/models_cubicmap.data | Bin 0 -> 37426 bytes examples/web/models/models_cubicmap.html | 239 + examples/web/models/models_cubicmap.js | 42217 +++++++++++++ examples/web/models/models_cubicmap.png | Bin 0 -> 412536 bytes examples/web/models/models_geometric_shapes.c | 102 + examples/web/models/models_geometric_shapes.html | 239 + examples/web/models/models_geometric_shapes.js | 25328 ++++++++ examples/web/models/models_geometric_shapes.png | Bin 0 -> 33973 bytes examples/web/models/models_heightmap.c | 111 + examples/web/models/models_heightmap.data | Bin 0 -> 10920 bytes examples/web/models/models_heightmap.html | 239 + examples/web/models/models_heightmap.js | 41423 +++++++++++++ examples/web/models/models_heightmap.png | Bin 0 -> 96976 bytes examples/web/models/models_mesh_picking.c | 238 + examples/web/models/models_mesh_picking.data | 554 + examples/web/models/models_mesh_picking.html | 239 + examples/web/models/models_mesh_picking.js | 47546 +++++++++++++++ examples/web/models/models_mesh_picking.png | Bin 0 -> 97991 bytes examples/web/models/models_obj_loading.c | 106 + examples/web/models/models_obj_loading.data | 60390 +++++++++++++++++++ examples/web/models/models_obj_loading.html | 239 + examples/web/models/models_obj_loading.js | 45212 ++++++++++++++ examples/web/models/models_obj_loading.png | Bin 0 -> 127720 bytes examples/web/models/resources/billboard.png | Bin 0 -> 22439 bytes examples/web/models/resources/cubicmap.png | Bin 0 -> 201 bytes examples/web/models/resources/cubicmap_atlas.png | Bin 0 -> 37225 bytes examples/web/models/resources/heightmap.png | Bin 0 -> 10920 bytes examples/web/models/resources/model/dwarf.obj | 54966 +++++++++++++++++ .../web/models/resources/model/dwarf_diffuse.png | Bin 0 -> 1274623 bytes .../web/models/resources/model/dwarf_normal.png | Bin 0 -> 4053623 bytes .../web/models/resources/model/dwarf_specular.png | Bin 0 -> 2938756 bytes examples/web/models/resources/tower.obj | 456 + examples/web/models/resources/tower.png | Bin 0 -> 24939 bytes 44 files changed, 386174 insertions(+) create mode 100644 examples/web/models/loader.html create mode 100644 examples/web/models/models_billboard.c create mode 100644 examples/web/models/models_billboard.data create mode 100644 examples/web/models/models_billboard.html create mode 100644 examples/web/models/models_billboard.js create mode 100644 examples/web/models/models_billboard.png create mode 100644 examples/web/models/models_box_collisions.c create mode 100644 examples/web/models/models_box_collisions.html create mode 100644 examples/web/models/models_box_collisions.js create mode 100644 examples/web/models/models_box_collisions.png create mode 100644 examples/web/models/models_cubicmap.c create mode 100644 examples/web/models/models_cubicmap.data create mode 100644 examples/web/models/models_cubicmap.html create mode 100644 examples/web/models/models_cubicmap.js create mode 100644 examples/web/models/models_cubicmap.png create mode 100644 examples/web/models/models_geometric_shapes.c create mode 100644 examples/web/models/models_geometric_shapes.html create mode 100644 examples/web/models/models_geometric_shapes.js create mode 100644 examples/web/models/models_geometric_shapes.png create mode 100644 examples/web/models/models_heightmap.c create mode 100644 examples/web/models/models_heightmap.data create mode 100644 examples/web/models/models_heightmap.html create mode 100644 examples/web/models/models_heightmap.js create mode 100644 examples/web/models/models_heightmap.png create mode 100644 examples/web/models/models_mesh_picking.c create mode 100644 examples/web/models/models_mesh_picking.data create mode 100644 examples/web/models/models_mesh_picking.html create mode 100644 examples/web/models/models_mesh_picking.js create mode 100644 examples/web/models/models_mesh_picking.png create mode 100644 examples/web/models/models_obj_loading.c create mode 100644 examples/web/models/models_obj_loading.data create mode 100644 examples/web/models/models_obj_loading.html create mode 100644 examples/web/models/models_obj_loading.js create mode 100644 examples/web/models/models_obj_loading.png create mode 100644 examples/web/models/resources/billboard.png create mode 100644 examples/web/models/resources/cubicmap.png create mode 100644 examples/web/models/resources/cubicmap_atlas.png create mode 100644 examples/web/models/resources/heightmap.png create mode 100644 examples/web/models/resources/model/dwarf.obj create mode 100644 examples/web/models/resources/model/dwarf_diffuse.png create mode 100644 examples/web/models/resources/model/dwarf_normal.png create mode 100644 examples/web/models/resources/model/dwarf_specular.png create mode 100644 examples/web/models/resources/tower.obj create mode 100644 examples/web/models/resources/tower.png (limited to 'examples/web/models') diff --git a/examples/web/models/loader.html b/examples/web/models/loader.html new file mode 100644 index 0000000..93d7260 --- /dev/null +++ b/examples/web/models/loader.html @@ -0,0 +1,210 @@ + + + + loading... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + +
+ + + + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_billboard.c b/examples/web/models/models_billboard.c new file mode 100644 index 0000000..53b72e1 --- /dev/null +++ b/examples/web/models/models_billboard.c @@ -0,0 +1,99 @@ +/******************************************************************************************* +* +* raylib [models] example - Drawing billboards (adapted for HTML5 platform) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int screenWidth = 800; +int screenHeight = 450; + +// Define the camera to look into our 3d world +Camera camera = {{ 5.0f, 4.0f, 5.0f }, { 0.0f, 2.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + +Texture2D bill; // Our texture billboard +Vector3 billPosition = { 0.0f, 2.0f, 0.0f }; // Position where draw billboard + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [models] example - drawing billboards"); + + bill = LoadTexture("resources/billboard.png"); // Our texture billboard + + SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(bill); // Unload texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update internal camera and our camera + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + DrawBillboard(camera, bill, billPosition, 2.0f, WHITE); + + DrawGrid(10, 1.0f); // Draw a grid + + End3dMode(); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- +} \ No newline at end of file diff --git a/examples/web/models/models_billboard.data b/examples/web/models/models_billboard.data new file mode 100644 index 0000000..e2fe398 Binary files /dev/null and b/examples/web/models/models_billboard.data differ diff --git a/examples/web/models/models_billboard.html b/examples/web/models/models_billboard.html new file mode 100644 index 0000000..e5c25a0 --- /dev/null +++ b/examples/web/models/models_billboard.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_billboard.js b/examples/web/models/models_billboard.js new file mode 100644 index 0000000..1d677c1 --- /dev/null +++ b/examples/web/models/models_billboard.js @@ -0,0 +1,39935 @@ + +var Module; + +if (typeof Module === 'undefined') Module = {}; + +if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + Module.finishedDataFileDownloads = 0; +} +Module.expectedDataFileDownloads++; +(function() { + var loadPackage = function(metadata) { + + var PACKAGE_PATH; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); + } else if (typeof location !== 'undefined') { + // worker + PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); + } else { + throw 'using preloaded data can only be done on a web page or in a web worker'; + } + var PACKAGE_NAME = 'models/models_billboard.data'; + var REMOTE_PACKAGE_BASE = 'models_billboard.data'; + if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) { + Module['locateFile'] = Module['locateFilePackage']; + Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'); + } + var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ? + Module['locateFile'](REMOTE_PACKAGE_BASE) : + ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE); + + var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; + var PACKAGE_UUID = metadata.package_uuid; + + function fetchRemotePackage(packageName, packageSize, callback, errback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function(event) { + var url = packageName; + var size = packageSize; + if (event.total) size = event.total; + if (event.loaded) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: size + }; + } else { + Module.dataFileDownloads[url].loaded = event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil(total * Module.expectedDataFileDownloads/num); + if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) Module['setStatus']('Downloading data...'); + } + }; + xhr.onerror = function(event) { + throw new Error("NetworkError for: " + packageName); + } + xhr.onload = function(event) { + if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + var packageData = xhr.response; + callback(packageData); + } else { + throw new Error(xhr.statusText + " : " + xhr.responseURL); + } + }; + xhr.send(null); + }; + + function handleError(error) { + console.error('package error:', error); + }; + + var fetchedCallback = null; + var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; + + if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, handleError); + + function runWithFS() { + + function assert(check, msg) { + if (!check) throw msg + new Error().stack; + } +Module['FS_createPath']('/', 'resources', true, true); + + function DataRequest(start, end, crunched, audio) { + this.start = start; + this.end = end; + this.crunched = crunched; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function(mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency']('fp ' + this.name); + }, + send: function() {}, + onload: function() { + var byteArray = this.byteArray.subarray(this.start, this.end); + + this.finish(byteArray); + + }, + finish: function(byteArray) { + var that = this; + + Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change + Module['removeRunDependency']('fp ' + that.name); + + this.requests[this.name] = null; + } + }; + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename); + } + + + function processPackageData(arrayBuffer) { + Module.finishedDataFileDownloads++; + assert(arrayBuffer, 'Loading data file failed.'); + assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData'); + var byteArray = new Uint8Array(arrayBuffer); + var curr; + + // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though + // (we may be allocating before malloc is ready, during startup). + if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting'); + var ptr = Module['getMemory'](byteArray.length); + Module['HEAPU8'].set(byteArray, ptr); + DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + DataRequest.prototype.requests[files[i].filename].onload(); + } + Module['removeRunDependency']('datafile_models/models_billboard.data'); + + }; + Module['addRunDependency']('datafile_models/models_billboard.data'); + + if (!Module.preloadResults) Module.preloadResults = {}; + + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it + } + + } + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 22439, "filename": "/resources/billboard.png"}], "remote_package_size": 22439, "package_uuid": "b2ae9e61-c19e-44f5-a191-b007fd6e7a1d"}); + +})(); + +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 22224; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,160,64,0,0,128,64,0,0,160,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,52,66,0,0,0,0,0,0,0,64,0,0,0,0,255,255,255,255,205,204,236,63,2,0,0,0,86,1,0,0,85,1,0,0,87,0,0,0,83,0,0,0,68,0,0,0,65,0,0,0,69,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,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,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,15,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,207,82,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,100,114,97,119,105,110,103,32,98,105,108,108,98,111,97,114,100,115,0,114,101,115,111,117,114,99,101,115,47,98,105,108,108,98,111,97,114,100,46,112,110,103,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,114,105,46,98,105,116,115,95,112,101,114,95,99,104,97,110,110,101,108,32,61,61,32,49,54,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,105,109,97,103,101,46,104,0,115,116,98,105,95,95,108,111,97,100,95,97,110,100,95,112,111,115,116,112,114,111,99,101,115,115,95,56,98,105,116,0,111,117,116,111,102,109,101,109,0,117,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,98,97,100,32,114,101,113,95,99,111,109,112,0,114,101,113,95,99,111,109,112,32,62,61,32,49,32,38,38,32,114,101,113,95,99,111,109,112,32,60,61,32,52,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,49,54,0,48,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,0,109,117,108,116,105,112,108,101,32,73,72,68,82,0,98,97,100,32,73,72,68,82,32,108,101,110,0,116,111,111,32,108,97,114,103,101,0,49,47,50,47,52,47,56,47,49,54,45,98,105,116,32,111,110,108,121,0,98,97,100,32,99,116,121,112,101,0,98,97,100,32,99,111,109,112,32,109,101,116,104,111,100,0,98,97,100,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,98,97,100,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,48,45,112,105,120,101,108,32,105,109,97,103,101,0,102,105,114,115,116,32,110,111,116,32,73,72,68,82,0,105,110,118,97,108,105,100,32,80,76,84,69,0,116,82,78,83,32,97,102,116,101,114,32,73,68,65,84,0,116,82,78,83,32,98,101,102,111,114,101,32,80,76,84,69,0,98,97,100,32,116,82,78,83,32,108,101,110,0,116,82,78,83,32,119,105,116,104,32,97,108,112,104,97,0,0,255,85,0,17,0,0,0,1,110,111,32,80,76,84,69,0,111,117,116,111,102,100,97,116,97,0,110,111,32,73,68,65,84,0,88,88,88,88,32,80,78,71,32,99,104,117,110,107,32,110,111,116,32,107,110,111,119,110,0,115,45,62,105,109,103,95,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,100,101,95,105,112,104,111,110,101,0,111,117,116,95,110,32,61,61,32,50,32,124,124,32,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,49,54,0,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,32,124,124,32,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,43,49,0,115,116,98,105,95,95,99,114,101,97,116,101,95,112,110,103,95,105,109,97,103,101,95,114,97,119,0,110,111,116,32,101,110,111,117,103,104,32,112,105,120,101,108,115,0,105,109,103,95,119,105,100,116,104,95,98,121,116,101,115,32,60,61,32,120,0,0,1,0,5,6,105,109,103,95,110,43,49,32,61,61,32,111,117,116,95,110,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,0,105,109,103,95,110,32,61,61,32,51,0,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,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,98,97,100,32,104,117,102,102,109,97,110,32,99,111,100,101,0,98,97,100,32,100,105,115,116,0,111,117,116,112,117,116,32,98,117,102,102,101,114,32,108,105,109,105,116,0,122,45,62,115,105,122,101,91,98,93,32,61,61,32,115,0,115,116,98,105,95,95,122,104,117], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([102,102,109,97,110,95,100,101,99,111,100,101,95,115,108,111,119,112,97,116,104,0,98,105,116,115,32,60,61,32,49,54,0,115,116,98,105,95,95,98,105,116,95,114,101,118,101,114,115,101,0,122,45,62,99,111,100,101,95,98,117,102,102,101,114,32,60,32,40,49,85,32,60,60,32,122,45,62,110,117,109,95,98,105,116,115,41,0,115,116,98,105,95,95,102,105,108,108,95,98,105,116,115,0,98,97,100,32,99,111,100,101,108,101,110,103,116,104,115,0,99,32,61,61,32,49,56,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,104,117,102,102,109,97,110,95,99,111,100,101,115,0,98,97,100,32,115,105,122,101,115,0,97,45,62,110,117,109,95,98,105,116,115,32,61,61,32,48,0,115,116,98,105,95,95,112,97,114,115,101,95,117,110,99,111,109,112,114,101,115,115,101,100,95,98,108,111,99,107,0,122,108,105,98,32,99,111,114,114,117,112,116,0,114,101,97,100,32,112,97,115,116,32,98,117,102,102,101,114,0,98,97,100,32,122,108,105,98,32,104,101,97,100,101,114,0,110,111,32,112,114,101,115,101,116,32,100,105,99,116,0,98,97,100,32,99,111,109,112,114,101,115,115,105,111,110,0,98,97,100,32,112,110,103,32,115,105,103,0,46,114,114,101,115,0,91,37,115,93,32,82,101,115,111,117,114,99,101,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,105,109,97,103,101,32,100,97,116,97,0,46,112,110,103,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,37,115,93,32,73,109,97,103,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,91,37,115,93,32,73,109,97,103,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,73,109,97,103,101,32,102,111,114,109,97,116,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,0,114,98,0,91,37,115,93,32,114,82,69,83,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,91,37,115,93,32,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,115,111,117,114,99,101,32,100,97,116,97,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,113,117,101,115,116,101,100,32,114,101,115,111,117,114,99,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,102,111,117,110,100,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,119,104,105,108,101,32,100,101,99,111,109,112,114,101,115,115,105,110,103,32,100,97,116,97,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,32,110,111,116,32,109,97,116,99,104,44,32,100,97,116,97,32,109,97,121,32,98,101,32,99,111,114,114,117,112,116,101,100,0,32,45,45,32,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,32,45,45,32,82,101,116,117,114,110,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,114,111,109,32,37,117,32,98,121,116,101,115,32,116,111,32,37,117,32,98,121,116,101,115,0,5,5,4,0,16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,2,3,7,0,3,3,11,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,37,50,105,32,70,80,83,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; + + var ERRNO_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"}; + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + + var PATH={splitPath:function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function (parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + return parts; + },normalize:function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function (path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function (path) { + return PATH.splitPath(path)[3]; + },join:function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function (l, r) { + return PATH.normalize(l + '/' + r); + },resolve:function () { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function (from, to) { + from = PATH.resolve(from).substr(1); + to = PATH.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + stream.tty = tty; + stream.seekable = false; + },close:function (stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function (stream) { + stream.tty.ops.flush(stream.tty); + },read:function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + for (var i = 0; i < length; i++) { + try { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = new Buffer(BUFSIZE); + var bytesRead = 0; + + var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion + + var fd = process.stdin.fd; + if (isPosixPlatform) { + // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) + var usingDevice = false; + try { + fd = fs.openSync('/dev/stdin', 'r'); + usingDevice = true; + } catch (e) {} + } + + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().indexOf('EOF') != -1) bytesRead = 0; + else throw e; + } + + if (usingDevice) { fs.closeSync(fd); } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + + } else if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function (tty, val) { + if (val === null || val === 10) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function (tty, val) { + if (val === null || val === 10) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + var MEMFS={ops_table:null,mount:function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },getFileDataAsRegularArray:function (node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr; // Returns a copy of the original data. + } + return node.contents; // No-op, the file contents are already in a JS array. Return as-is. + },getFileDataAsTypedArray:function (node) { + if (!node.contents) return new Uint8Array; + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function (node, newCapacity) { + // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file + // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to + // increase the size. + if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { + node.contents = MEMFS.getFileDataAsRegularArray(node); + node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. + } + + if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + return; + } + // Not using a typed array to back the file storage. Use a standard JS array instead. + if (!node.contents && newCapacity > 0) node.contents = []; + while (node.contents.length < newCapacity) node.contents.push(0); + },resizeFileStorage:function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + return; + } + if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. + var oldContents = node.contents; + node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + return; + } + // Backing with a JS array. + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; + else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize; + },node_ops:{getattr:function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function (parent, name) { + throw FS.genericErrors[ERRNO_CODES.ENOENT]; + },mknod:function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function (parent, name) { + delete parent.contents[name]; + },rmdir:function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + delete parent.contents[name]; + },readdir:function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return node.link; + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. + else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position+length); + return length; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + },allocate:function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < stream.node.usedBytes) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); + } + buffer.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + var IDBFS={dbs:{},indexedDB:function () { + if (typeof indexedDB !== 'undefined') return indexedDB; + var ret = null; + if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + assert(ret, 'IDBFS used, but indexedDB not supported'); + return ret; + },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { + // reuse all of the core MEMFS functionality + return MEMFS.mount.apply(null, arguments); + },syncfs:function (mount, populate, callback) { + IDBFS.getLocalSet(mount, function(err, local) { + if (err) return callback(err); + + IDBFS.getRemoteSet(mount, function(err, remote) { + if (err) return callback(err); + + var src = populate ? remote : local; + var dst = populate ? local : remote; + + IDBFS.reconcile(src, dst, callback); + }); + }); + },getDB:function (name, callback) { + // check the cache first + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + if (!req) { + return callback("Unable to connect to IndexedDB"); + } + req.onupgradeneeded = function(e) { + var db = e.target.result; + var transaction = e.target.transaction; + + var fileStore; + + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + + if (!fileStore.indexNames.contains('timestamp')) { + fileStore.createIndex('timestamp', 'timestamp', { unique: false }); + } + }; + req.onsuccess = function() { + db = req.result; + + // add to the cache + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },getLocalSet:function (mount, callback) { + var entries = {}; + + function isRealDir(p) { + return p !== '.' && p !== '..'; + }; + function toAbsolute(root) { + return function(p) { + return PATH.join2(root, p); + } + }; + + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + + while (check.length) { + var path = check.pop(); + var stat; + + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + + entries[path] = { timestamp: stat.mtime }; + } + + return callback(null, { type: 'local', entries: entries }); + },getRemoteSet:function (mount, callback) { + var entries = {}; + + IDBFS.getDB(mount.mountpoint, function(err, db) { + if (err) return callback(err); + + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); + transaction.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index('timestamp'); + + index.openKeyCursor().onsuccess = function(event) { + var cursor = event.target.result; + + if (!cursor) { + return callback(null, { type: 'remote', db: db, entries: entries }); + } + + entries[cursor.primaryKey] = { timestamp: cursor.key }; + + cursor.continue(); + }; + }); + },loadLocalEntry:function (path, callback) { + var stat, node; + + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode }); + } else if (FS.isFile(stat.mode)) { + // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. + // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. + node.contents = MEMFS.getFileDataAsTypedArray(node); + return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); + } else { + return callback(new Error('node type not supported')); + } + },storeLocalEntry:function (path, entry, callback) { + try { + if (FS.isDir(entry.mode)) { + FS.mkdir(path, entry.mode); + } else if (FS.isFile(entry.mode)) { + FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); + } else { + return callback(new Error('node type not supported')); + } + + FS.chmod(path, entry.mode); + FS.utime(path, entry.timestamp, entry.timestamp); + } catch (e) { + return callback(e); + } + + callback(null); + },removeLocalEntry:function (path, callback) { + try { + var lookup = FS.lookupPath(path); + var stat = FS.stat(path); + + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + + callback(null); + },loadRemoteEntry:function (store, path, callback) { + var req = store.get(path); + req.onsuccess = function(event) { callback(null, event.target.result); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },storeRemoteEntry:function (store, path, entry, callback) { + var req = store.put(entry, path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },removeRemoteEntry:function (store, path, callback) { + var req = store.delete(path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },reconcile:function (src, dst, callback) { + var total = 0; + + var create = []; + Object.keys(src.entries).forEach(function (key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e.timestamp > e2.timestamp) { + create.push(key); + total++; + } + }); + + var remove = []; + Object.keys(dst.entries).forEach(function (key) { + var e = dst.entries[key]; + var e2 = src.entries[key]; + if (!e2) { + remove.push(key); + total++; + } + }); + + if (!total) { + return callback(null); + } + + var errored = false; + var completed = 0; + var db = src.type === 'remote' ? src.db : dst.db; + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= total) { + return callback(null); + } + }; + + transaction.onerror = function(e) { + done(this.error); + e.preventDefault(); + }; + + // sort paths in ascending order so directory entries are created + // before the files inside them + create.sort().forEach(function (path) { + if (dst.type === 'local') { + IDBFS.loadRemoteEntry(store, path, function (err, entry) { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, function (err, entry) { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + + // sort paths in descending order so files are deleted before their + // parent directories + remove.sort().reverse().forEach(function(path) { + if (dst.type === 'local') { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + }}; + + var NODEFS={isWindows:false,staticInit:function () { + NODEFS.isWindows = !!process.platform.match(/^win/); + },mount:function (mount) { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + },getMode:function (path) { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so + // propagate write bits to execute bits. + stat.mode = stat.mode | ((stat.mode & 146) >> 1); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return stat.mode; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { + flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. + if (flags in NODEFS.flagsToPermissionStringMap) { + return NODEFS.flagsToPermissionStringMap[flags]; + } else { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },node_ops:{getattr:function (node) { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. + // See http://support.microsoft.com/kb/140365 + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function (node, attr) { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + },mknod:function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function (node) { + var path = NODEFS.realPath(node); + try { + path = fs.readlinkSync(path); + path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); + return path; + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + if (length === 0) return 0; // node errors on 0 length reads + // FIXME this is terrible. + var nbuffer = new Buffer(length); + var res; + try { + res = fs.readSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + if (res > 0) { + for (var i = 0; i < res; i++) { + buffer[offset + i] = nbuffer[i]; + } + } + return res; + },write:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); + var res; + try { + res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return res; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + return position; + }}}; + + var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { + assert(ENVIRONMENT_IS_WORKER); + if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); + var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); + var createdParents = {}; + function ensureParent(path) { + // return the parent node, creating subdirs as necessary + var parts = path.split('/'); + var parent = root; + for (var i = 0; i < parts.length-1; i++) { + var curr = parts.slice(0, i+1).join('/'); + // Issue 4254: Using curr as a node name will prevent the node + // from being found in FS.nameTable when FS.open is called on + // a path which holds a child of this node, + // given that all FS functions assume node names + // are just their corresponding parts within their given path, + // rather than incremental aggregates which include their parent's + // directories. + if (!createdParents[curr]) { + createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); + } + parent = createdParents[curr]; + } + return parent; + } + function base(path) { + var parts = path.split('/'); + return parts[parts.length-1]; + } + // We also accept FileList here, by using Array.prototype + Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { + WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); + }); + (mount.opts["blobs"] || []).forEach(function(obj) { + WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + }); + (mount.opts["packages"] || []).forEach(function(pack) { + pack['metadata'].files.forEach(function(file) { + var name = file.filename.substr(1); // remove initial slash + WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); + }); + }); + return root; + },createNode:function (parent, name, mode, dev, contents, mtime) { + var node = FS.createNode(parent, name, mode); + node.mode = mode; + node.node_ops = WORKERFS.node_ops; + node.stream_ops = WORKERFS.stream_ops; + node.timestamp = (mtime || new Date).getTime(); + assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); + if (mode === WORKERFS.FILE_MODE) { + node.size = contents.size; + node.contents = contents; + } else { + node.size = 4096; + node.contents = {}; + } + if (parent) { + parent.contents[name] = node; + } + return node; + },node_ops:{getattr:function (node) { + return { + dev: 1, + ino: undefined, + mode: node.mode, + nlink: 1, + uid: 0, + gid: 0, + rdev: undefined, + size: node.size, + atime: new Date(node.timestamp), + mtime: new Date(node.timestamp), + ctime: new Date(node.timestamp), + blksize: 4096, + blocks: Math.ceil(node.size / 4096), + }; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + },lookup:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + },mknod:function (parent, name, mode, dev) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rename:function (oldNode, newDir, newName) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },unlink:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rmdir:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readdir:function (node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newName, oldPath) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readlink:function (node) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + if (position >= stream.node.size) return 0; + var chunk = stream.node.contents.slice(position, position + length); + var ab = WORKERFS.reader.readAsArrayBuffer(chunk); + buffer.set(new Uint8Array(ab), offset); + return chunk.size; + },write:function (stream, buffer, offset, length, position) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.size; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + }}}; + + var _stdin=STATICTOP; STATICTOP += 16;; + + var _stdout=STATICTOP; STATICTOP += 16;; + + var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return ___setErrNo(e.errno); + },lookupPath:function (path, opts) { + path = PATH.resolve(FS.cwd(), path); + opts = opts || {}; + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function (parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function (parent, name) { + var err = FS.mayLookup(parent); + if (err) { + throw new FS.ErrnoError(err, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function (parent, name, mode, rdev) { + if (!FS.FSNode) { + FS.FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + + FS.FSNode.prototype = {}; + + // compatibility + var readMode = 292 | 73; + var writeMode = 146; + + // NOTE we must use Object.defineProperties instead of individual calls to + // Object.defineProperty in order to make closure compiler happy + Object.defineProperties(FS.FSNode.prototype, { + read: { + get: function() { return (this.mode & readMode) === readMode; }, + set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } + }, + write: { + get: function() { return (this.mode & writeMode) === writeMode; }, + set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } + }, + isFolder: { + get: function() { return FS.isDir(this.mode); } + }, + isDevice: { + get: function() { return FS.isChrdev(this.mode); } + } + }); + } + + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function (node) { + FS.hashRemoveNode(node); + },isRoot:function (node) { + return node === node.parent; + },isMountpoint:function (node) { + return !!node.mounted; + },isFile:function (mode) { + return (mode & 61440) === 32768; + },isDir:function (mode) { + return (mode & 61440) === 16384; + },isLink:function (mode) { + return (mode & 61440) === 40960; + },isChrdev:function (mode) { + return (mode & 61440) === 8192; + },isBlkdev:function (mode) { + return (mode & 61440) === 24576; + },isFIFO:function (mode) { + return (mode & 61440) === 4096; + },isSocket:function (mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function (flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function (node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return ERRNO_CODES.EACCES; + } + return 0; + },mayLookup:function (dir) { + var err = FS.nodePermissions(dir, 'x'); + if (err) return err; + if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; + return 0; + },mayCreate:function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return ERRNO_CODES.EEXIST; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var err = FS.nodePermissions(dir, 'wx'); + if (err) { + return err; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return ERRNO_CODES.ENOTDIR; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return ERRNO_CODES.EBUSY; + } + } else { + if (FS.isDir(node.mode)) { + return ERRNO_CODES.EISDIR; + } + } + return 0; + },mayOpen:function (node, flags) { + if (!node) { + return ERRNO_CODES.ENOENT; + } + if (FS.isLink(node.mode)) { + return ERRNO_CODES.ELOOP; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return ERRNO_CODES.EISDIR; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(ERRNO_CODES.EMFILE); + },getStream:function (fd) { + return FS.streams[fd]; + },createStream:function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function(){}; + FS.FSStream.prototype = {}; + // compatibility + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }); + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function (fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function (stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function () { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + }},major:function (dev) { + return ((dev) >> 8); + },minor:function (dev) { + return ((dev) & 0xff); + },makedev:function (ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function (dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function (dev) { + return FS.devices[dev]; + },getMounts:function (mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function (populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(err) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(err); + } + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return doCallback(err); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function (type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function (parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.mayCreate(parent, name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function (path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function (path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function (path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != ERRNO_CODES.EEXIST) throw e; + } + } + },mkdev:function (path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function (oldpath, newpath) { + if (!PATH.resolve(oldpath)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var newname = PATH.basename(newpath); + var err = FS.mayCreate(parent, newname); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(ERRNO_CODES.EXDEV); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + // new path should not be an ancestor of the old path + relative = PATH.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var err = FS.mayDelete(old_dir, old_name, isdir); + if (err) { + throw new FS.ErrnoError(err); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + err = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + err = FS.nodePermissions(old_dir, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, true); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + },unlink:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, false); + if (err) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return node.node_ops.getattr(node); + },lstat:function (path) { + return FS.stat(path, true); + },chmod:function (path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function (path, mode) { + FS.chmod(path, mode, true); + },fchmod:function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chmod(stream.node, mode); + },chown:function (path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function (path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chown(stream.node, uid, gid); + },truncate:function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.nodePermissions(node, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + FS.truncate(stream.node, len); + },utime:function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function (path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(ERRNO_CODES.EEXIST); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var err = FS.mayOpen(node, flags); + if (err) { + throw new FS.ErrnoError(err); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + Module['printErr']('read file: ' + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function (stream) { + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + },llseek:function (stream, offset, whence) { + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if (stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function (stream, offset, length) { + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + // TODO if PROT is PROT_WRITE, make sure we have write access + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EACCES); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function (stream) { + return 0; + },ioctl:function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + opts.encoding = opts.encoding || 'utf8'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var stream = FS.open(path, opts.flags, opts.mode); + if (opts.encoding === 'utf8') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); + } else if (opts.encoding === 'binary') { + FS.write(stream, data, 0, data.length, 0, opts.canOwn); + } + FS.close(stream); + },cwd:function () { + return FS.currentPath; + },chdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + var err = FS.nodePermissions(lookup.node, 'x'); + if (err) { + throw new FS.ErrnoError(err); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function () { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function () { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device; + if (typeof crypto !== 'undefined') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs + random_device = function() { return require('crypto').randomBytes(1)[0]; }; + } else { + // default for ES5 platforms + random_device = function() { return (Math.random()*256)|0; }; + } + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function () { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function () { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + + var stdout = FS.open('/dev/stdout', 'w'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + + var stderr = FS.open('/dev/stderr', 'w'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + //Module.printErr(stackTrace()); // useful for debugging + this.node = node; + this.setErrno = function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) this.stack = demangleAll(this.stack); + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [ERRNO_CODES.ENOENT].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function () { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + 'IDBFS': IDBFS, + 'NODEFS': NODEFS, + 'WORKERFS': WORKERFS, + }; + },init:function (input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function () { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function (relative, base) { + return PATH.resolve(base, relative); + },standardizePath:function (path) { + return PATH.normalize(path); + },findObject:function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + ___setErrNo(ret.error); + return null; + } + },analyzePath:function (path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function (parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (Module['read']) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(Module['read'](obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) ___setErrNo(ERRNO_CODES.EIO); + return success; + },createLazyFile:function (parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + } + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + } + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function () { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + console.log('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { + if (path[0] !== '/') { + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + dir = dirstream.path; + } + path = PATH.join2(dir, path); + } + return path; + },doStat:function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -ERRNO_CODES.ENOTDIR; + } + throw e; + } + HEAP32[((buf)>>2)]=stat.dev; + HEAP32[(((buf)+(4))>>2)]=0; + HEAP32[(((buf)+(8))>>2)]=stat.ino; + HEAP32[(((buf)+(12))>>2)]=stat.mode; + HEAP32[(((buf)+(16))>>2)]=stat.nlink; + HEAP32[(((buf)+(20))>>2)]=stat.uid; + HEAP32[(((buf)+(24))>>2)]=stat.gid; + HEAP32[(((buf)+(28))>>2)]=stat.rdev; + HEAP32[(((buf)+(32))>>2)]=0; + HEAP32[(((buf)+(36))>>2)]=stat.size; + HEAP32[(((buf)+(40))>>2)]=4096; + HEAP32[(((buf)+(44))>>2)]=stat.blocks; + HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(52))>>2)]=0; + HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)]=0; + HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)]=0; + HEAP32[(((buf)+(72))>>2)]=stat.ino; + return 0; + },doMsync:function (addr, stream, len, flags) { + var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); + FS.msync(stream, buffer, 0, len, flags); + },doMkdir:function (path, mode) { + // remove a trailing slash, if one - /a/b/ has basename of '', but + // we want to create b in the context of this function + path = PATH.normalize(path); + if (path[path.length-1] === '/') path = path.substr(0, path.length-1); + FS.mkdir(path, mode, 0); + return 0; + },doMknod:function (path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -ERRNO_CODES.EINVAL; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function (path, buf, bufsize) { + if (bufsize <= 0) return -ERRNO_CODES.EINVAL; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function (path, amode) { + if (amode & ~7) { + // need a valid mode + return -ERRNO_CODES.EINVAL; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -ERRNO_CODES.EACCES; + } + return 0; + },doDup:function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },getStreamFromFD:function () { + var stream = FS.getStream(SYSCALLS.get()); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return stream; + },getSocketFromFD:function () { + var socket = SOCKFS.getSocket(SYSCALLS.get()); + if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return socket; + },getSocketAddress:function (allowNull) { + var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); + if (allowNull && addrp === 0) return null; + var info = __read_sockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); + switch (op) { + case 21505: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + case 21506: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return -ERRNO_CODES.EINVAL; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _glfwGetMouseButton(winid, button) { + return GLFW.getMouseButton(winid, button); + } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + try { + // open + var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doWritev(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; + try { + // readv + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + + Module["___udivdi3"] = ___udivdi3; + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function ___assert_fail(condition, filename, line, func) { + ABORT = true; + throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _glfwSetCursorPos(winid, x, y) { + GLFW.setCursorPos(winid, x, y); + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _glfwGetKey(winid, key) { + return GLFW.getKey(winid, key); + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; + try { + // fcntl64 + var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -ERRNO_CODES.EINVAL; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + case 12: { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + } + case 13: + case 14: + case 13: + case 14: + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: { + return -ERRNO_CODES.EINVAL; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(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;Module["FS_unlink"] = FS.unlink;; +__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; +JSEvents.staticInit();; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glHint": _emscripten_glHint, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_glfwSetCursorPos": _glfwSetCursorPos, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_glfwGetMouseButton": _glfwGetMouseButton, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var ___assert_fail=env.___assert_fail; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var ___syscall145=env.___syscall145; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glHint=env._emscripten_glHint; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var ___syscall146=env.___syscall146; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _glGenTextures=env._glGenTextures; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var ___syscall5=env.___syscall5; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var ___syscall221=env.___syscall221; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _glfwSetCursorPos=env._glfwSetCursorPos; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _glfwGetMouseButton=env._glfwGetMouseButton; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _glfwGetKey=env._glfwGetKey; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $0 = 0, $1 = 0, $2 = 0, $bill$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $bill$byval_copy = sp + 24|0; + $0 = sp; + $1 = HEAP32[2]|0; + $2 = HEAP32[3]|0; + _InitWindow($1,$2,4228); + _LoadTexture($0,4273); + ;HEAP32[16928>>2]=HEAP32[$0>>2]|0;HEAP32[16928+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[16928+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[16928+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[16928+16>>2]=HEAP32[$0+16>>2]|0; + dest=$bill$byval_copy; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetCameraMode($bill$byval_copy,2); + _emscripten_set_main_loop((1|0),0,1); + ;HEAP32[$bill$byval_copy>>2]=HEAP32[16928>>2]|0;HEAP32[$bill$byval_copy+4>>2]=HEAP32[16928+4>>2]|0;HEAP32[$bill$byval_copy+8>>2]=HEAP32[16928+8>>2]|0;HEAP32[$bill$byval_copy+12>>2]=HEAP32[16928+12>>2]|0;HEAP32[$bill$byval_copy+16>>2]=HEAP32[16928+16>>2]|0; + _UnloadTexture($bill$byval_copy); + _CloseWindow(); + STACKTOP = sp;return 0; +} +function _UpdateDrawFrame() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $bill$byval_copy = 0, $billPosition$byval_copy = 0, $camera$byval_copy1 = 0, $tmpcast$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $tmpcast$byval_copy = sp + 80|0; + $billPosition$byval_copy = sp + 68|0; + $bill$byval_copy = sp + 48|0; + $camera$byval_copy1 = sp + 8|0; + $0 = sp + 120|0; + $1 = sp; + _UpdateCamera(16); + _BeginDrawing(); + HEAP8[$0>>0] = -11; + $2 = ((($0)) + 1|0); + HEAP8[$2>>0] = -11; + $3 = ((($0)) + 2|0); + HEAP8[$3>>0] = -11; + $4 = ((($0)) + 3|0); + HEAP8[$4>>0] = -1; + ;HEAP8[$tmpcast$byval_copy>>0]=HEAP8[$0>>0]|0;HEAP8[$tmpcast$byval_copy+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$tmpcast$byval_copy+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$tmpcast$byval_copy+3>>0]=HEAP8[$0+3>>0]|0; + _ClearBackground($tmpcast$byval_copy); + dest=$tmpcast$byval_copy; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($tmpcast$byval_copy); + HEAP32[$1>>2] = -1; + dest=$camera$byval_copy1; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + ;HEAP32[$bill$byval_copy>>2]=HEAP32[16928>>2]|0;HEAP32[$bill$byval_copy+4>>2]=HEAP32[16928+4>>2]|0;HEAP32[$bill$byval_copy+8>>2]=HEAP32[16928+8>>2]|0;HEAP32[$bill$byval_copy+12>>2]=HEAP32[16928+12>>2]|0;HEAP32[$bill$byval_copy+16>>2]=HEAP32[16928+16>>2]|0; + ;HEAP32[$billPosition$byval_copy>>2]=HEAP32[56>>2]|0;HEAP32[$billPosition$byval_copy+4>>2]=HEAP32[56+4>>2]|0;HEAP32[$billPosition$byval_copy+8>>2]=HEAP32[56+8>>2]|0; + ;HEAP8[$tmpcast$byval_copy>>0]=HEAP8[$1>>0]|0;HEAP8[$tmpcast$byval_copy+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$tmpcast$byval_copy+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$tmpcast$byval_copy+3>>0]=HEAP8[$1+3>>0]|0; + _DrawBillboard($camera$byval_copy1,$bill$byval_copy,$billPosition$byval_copy,2.0,$tmpcast$byval_copy); + _DrawGrid(10,1.0); + _End3dMode(); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorAdd($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 + $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 + $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 + $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorScale($0,$1) { + $0 = $0|0; + $1 = +$1; + var $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = $2 * $1; + HEAPF32[$0>>2] = $3; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $5 * $1; + HEAPF32[$4>>2] = $6; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $1; + HEAPF32[$7>>2] = $9; + return; +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[4238] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 16648; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 16688; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[4172]; + $111 = +HEAPF32[4162]; + $112 = $110 - $111; + HEAPF32[4174] = $112; + $113 = +HEAPF32[(16692)>>2]; + $114 = +HEAPF32[(16652)>>2]; + $115 = $113 - $114; + HEAPF32[(16700)>>2] = $115; + HEAP32[4237] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16680>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16680+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16704+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[4243] = $116; + $117 = 16680; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 16648; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 16704; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 16688; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 16680; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 16704; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[4176]; + $160 = +HEAPF32[4170]; + $161 = $159 - $160; + HEAPF32[4174] = $161; + $162 = +HEAPF32[(16708)>>2]; + $163 = +HEAPF32[(16684)>>2]; + $164 = $162 - $163; + HEAPF32[(16700)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16648+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16680>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16680+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16688>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16688+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16704+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16680>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16680+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16704+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[4243]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[4237] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16680>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16680+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16704+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[4244] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[4243] = 0.0; + HEAPF32[4244] = 0.0; + HEAPF32[4174] = 0.0; + HEAPF32[(16700)>>2] = 0.0; + HEAP32[4238] = 0; + HEAP32[4237] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[4239]|0; + $7 = (($6) + 1)|0; + HEAP32[4239] = $7; + $8 = HEAP32[4237]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16648+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[4237] = 2; + HEAP32[4239] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[4239] = 1; + HEAP32[4237] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 16648; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 16656; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 16664; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[17] = $34; + HEAPF32[4168] = 0.0; + HEAPF32[(16676)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[4237]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 16664; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16648+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16664>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16664+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[4240] = $49; + HEAP32[4241] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[17]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16648+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16664>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16664+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[4242] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[4240] = 0.0; + HEAPF32[4242] = 0.0; + $$sink10 = 0; + } + HEAP32[4237] = $$sink10; + HEAPF32[4164] = 0.0; + HEAPF32[(16660)>>2] = 0.0; + HEAP32[4238] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[4241]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[4241] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 16680; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[4237]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[16648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[16648+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[16680>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[16680+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[4237] = 8; + } + } + $82 = +HEAPF32[4170]; + $83 = +HEAPF32[4164]; + $84 = $82 - $83; + HEAPF32[4168] = $84; + $85 = +HEAPF32[(16684)>>2]; + $86 = +HEAPF32[(16660)>>2]; + $87 = $85 - $86; + HEAPF32[(16676)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4237]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[4238]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[4237] = 4; + } + $4 = HEAP32[4237]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[4237] = 0; + return; +} +function _SetCameraMode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$023$0$$sroa_idx = 0, $$sroa$023$0$copyload = 0.0, $$sroa$030$0$copyload = 0.0, $$sroa$4$0$$sroa_idx25 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$432$0$$sroa_idx33 = 0, $$sroa$432$0$copyload = 0.0, $$sroa$527$0$$sroa_idx28 = 0, $$sroa$527$0$copyload = 0.0, $$sroa$535$0$$sroa_idx36 = 0, $$sroa$535$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0; + var $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $$sroa$030$0$copyload = +HEAPF32[$0>>2]; + $$sroa$432$0$$sroa_idx33 = ((($0)) + 4|0); + $$sroa$432$0$copyload = +HEAPF32[$$sroa$432$0$$sroa_idx33>>2]; + $$sroa$535$0$$sroa_idx36 = ((($0)) + 8|0); + $$sroa$535$0$copyload = +HEAPF32[$$sroa$535$0$$sroa_idx36>>2]; + $$sroa$023$0$$sroa_idx = ((($0)) + 12|0); + $$sroa$023$0$copyload = +HEAPF32[$$sroa$023$0$$sroa_idx>>2]; + $$sroa$4$0$$sroa_idx25 = ((($0)) + 16|0); + $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx25>>2]; + $$sroa$527$0$$sroa_idx28 = ((($0)) + 20|0); + $$sroa$527$0$copyload = +HEAPF32[$$sroa$527$0$$sroa_idx28>>2]; + $2 = $$sroa$023$0$copyload - $$sroa$030$0$copyload; + $3 = $$sroa$4$0$copyload - $$sroa$432$0$copyload; + $4 = $$sroa$527$0$copyload - $$sroa$535$0$copyload; + $5 = $2 * $2; + $6 = $3 * $3; + $7 = $5 + $6; + $8 = $4 * $4; + $9 = $7 + $8; + $10 = (+Math_sqrt((+$9))); + HEAPF32[4245] = $10; + $11 = $5 + $8; + $12 = (+Math_sqrt((+$11))); + $13 = (+Math_sqrt((+$7))); + $14 = (+Math_abs((+$2))); + $15 = $14 / $12; + $16 = (+Math_asin((+$15))); + HEAPF32[4246] = $16; + $17 = (+Math_abs((+$3))); + $18 = $17 / $13; + $19 = (+Math_asin((+$18))); + $20 = -$19; + HEAPF32[4247] = $20; + $21 = HEAP32[$$sroa$432$0$$sroa_idx33>>2]|0; + HEAP32[18] = $21; + HEAP32[4248] = $1; + return; +} +function _UpdateCamera($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$byval_copy3 = 0, $$not = 0, $$not188 = 0, $$off187 = 0, $$pr = 0, $$pr190 = 0, $$sink = 0.0, $$sink17 = 0, $$sink22 = 0.0, $$sink22$p = 0.0, $$sink26 = 0.0, $$sink28 = 0.0, $$sroa$095$0 = 0.0, $$sroa$9$0 = 0.0, $1 = 0, $10 = 0, $100 = 0.0, $101 = 0.0; + var $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0; + var $120 = 0.0, $121 = 0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0.0; + var $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0, $152 = 0.0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0; + var $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0, $168 = 0.0, $169 = 0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0; + var $175 = 0.0, $176 = 0, $177 = 0.0, $178 = 0.0, $179 = 0.0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0.0, $185 = 0.0, $186 = 0.0, $187 = 0.0, $188 = 0.0, $189 = 0.0, $19 = 0, $190 = 0.0, $191 = 0, $192 = 0.0; + var $193 = 0, $194 = 0.0, $195 = 0.0, $196 = 0.0, $197 = 0.0, $198 = 0.0, $199 = 0.0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0.0, $205 = 0.0, $206 = 0.0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; + var $210 = 0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $214 = 0.0, $215 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0.0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0.0, $228 = 0.0; + var $229 = 0.0, $23 = 0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0.0, $234 = 0.0, $235 = 0.0, $236 = 0, $237 = 0.0, $238 = 0.0, $239 = 0.0, $24 = 0, $240 = 0.0, $241 = 0.0, $242 = 0, $243 = 0.0, $244 = 0.0, $245 = 0.0, $246 = 0.0; + var $247 = 0.0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0.0, $251 = 0, $252 = 0.0, $253 = 0.0, $254 = 0.0, $255 = 0.0, $256 = 0.0, $257 = 0.0, $258 = 0.0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0.0; + var $265 = 0.0, $266 = 0, $267 = 0.0, $268 = 0.0, $269 = 0, $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0.0, $273 = 0.0, $274 = 0, $275 = 0.0, $276 = 0.0, $277 = 0.0, $278 = 0, $279 = 0.0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0.0; + var $283 = 0.0, $284 = 0.0, $285 = 0.0, $286 = 0.0, $287 = 0.0, $288 = 0.0, $289 = 0.0, $29 = 0, $290 = 0, $291 = 0.0, $292 = 0.0, $293 = 0, $294 = 0.0, $295 = 0.0, $296 = 0.0, $297 = 0, $298 = 0.0, $299 = 0.0, $3 = 0, $30 = 0; + var $300 = 0.0, $301 = 0.0, $302 = 0.0, $303 = 0.0, $304 = 0.0, $305 = 0.0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0.0, $314 = 0.0, $315 = 0.0, $316 = 0.0, $317 = 0.0, $318 = 0.0; + var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0.0, $324 = 0.0, $325 = 0.0, $326 = 0.0, $327 = 0, $328 = 0.0, $329 = 0.0, $33 = 0, $330 = 0.0, $331 = 0.0, $332 = 0.0, $333 = 0.0, $334 = 0.0, $335 = 0.0, $336 = 0; + var $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0.0, $341 = 0.0, $342 = 0.0, $343 = 0.0, $344 = 0, $345 = 0, $346 = 0.0, $347 = 0.0, $348 = 0.0, $349 = 0.0, $35 = 0, $350 = 0.0, $351 = 0, $352 = 0.0, $353 = 0.0, $354 = 0.0; + var $355 = 0.0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0.0, $36 = 0, $360 = 0.0, $361 = 0.0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0.0, $367 = 0, $368 = 0.0, $369 = 0.0, $37 = 0.0, $370 = 0.0, $371 = 0.0, $372 = 0.0; + var $373 = 0.0, $374 = 0.0, $375 = 0.0, $376 = 0, $377 = 0.0, $378 = 0.0, $379 = 0, $38 = 0.0, $380 = 0, $381 = 0.0, $382 = 0.0, $383 = 0.0, $384 = 0.0, $385 = 0.0, $386 = 0.0, $387 = 0.0, $388 = 0, $389 = 0.0, $39 = 0.0, $390 = 0.0; + var $391 = 0, $392 = 0.0, $393 = 0.0, $394 = 0, $395 = 0.0, $396 = 0.0, $397 = 0.0, $398 = 0.0, $399 = 0, $4 = 0, $40 = 0, $400 = 0.0, $401 = 0.0, $402 = 0.0, $403 = 0, $404 = 0.0, $405 = 0.0, $406 = 0, $407 = 0, $408 = 0; + var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; + var $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0; + var $7 = 0, $70 = 0.0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0, $87 = 0; + var $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0.0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond189 = 0, $or$cond3 = 0; + var $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $storemerge = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy3 = sp + 72|0; + $1 = sp + 56|0; + $2 = sp + 16|0; + $3 = sp + 64|0; + $4 = sp + 48|0; + $5 = sp + 40|0; + $6 = sp + 8|0; + $7 = sp; + _GetMousePosition($1); + $8 = (_GetMouseWheelMove()|0); + $9 = HEAP32[19]|0; + $10 = (_IsMouseButtonDown($9)|0); + $11 = HEAP32[20]|0; + $12 = (_IsKeyDown($11)|0); + $13 = HEAP32[21]|0; + $14 = (_IsKeyDown($13)|0); + $15 = HEAP32[22]|0; + $16 = (_IsKeyDown($15)|0); + HEAP32[$2>>2] = $16; + $17 = ((($2)) + 4|0); + $18 = HEAP32[23]|0; + $19 = (_IsKeyDown($18)|0); + HEAP32[$17>>2] = $19; + $20 = ((($2)) + 8|0); + $21 = HEAP32[24]|0; + $22 = (_IsKeyDown($21)|0); + HEAP32[$20>>2] = $22; + $23 = ((($2)) + 12|0); + $24 = HEAP32[25]|0; + $25 = (_IsKeyDown($24)|0); + HEAP32[$23>>2] = $25; + $26 = ((($2)) + 16|0); + $27 = HEAP32[26]|0; + $28 = (_IsKeyDown($27)|0); + HEAP32[$26>>2] = $28; + $29 = ((($2)) + 20|0); + $30 = HEAP32[27]|0; + $31 = (_IsKeyDown($30)|0); + HEAP32[$29>>2] = $31; + $32 = HEAP32[4248]|0; + $33 = ($32|0)==(0); + L1: do { + if ($33) { + label = 58; + } else { + $34 = (_GetScreenWidth()|0); + $35 = (_GetScreenHeight()|0); + $$off187 = (($32) + -3)|0; + $36 = ($$off187>>>0)<(2); + do { + if ($36) { + _HideCursor(); + $37 = +HEAPF32[$1>>2]; + $38 = (+($35|0)); + $39 = $38 / 3.0; + $40 = $37 < $39; + $41 = ((($1)) + 4|0); + $42 = +HEAPF32[$41>>2]; + if ($40) { + $43 = (($35|0) / 3)&-1; + $44 = (($34) - ($43))|0; + $45 = (+($44|0)); + HEAPF32[$3>>2] = $45; + $46 = ((($3)) + 4|0); + HEAPF32[$46>>2] = $42; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$3+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $47 = $42 < $39; + if ($47) { + HEAPF32[$4>>2] = $37; + $48 = ((($4)) + 4|0); + $49 = (($35|0) / 3)&-1; + $50 = (($35) - ($49))|0; + $51 = (+($50|0)); + HEAPF32[$48>>2] = $51; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $52 = (+($34|0)); + $53 = $52 - $39; + $54 = $37 > $53; + if ($54) { + $55 = (($35|0) / 3)&-1; + $56 = (+($55|0)); + HEAPF32[$5>>2] = $56; + $57 = ((($5)) + 4|0); + $58 = HEAP32[$41>>2]|0; + HEAP32[$57>>2] = $58; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$5+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $59 = $38 - $39; + $60 = $42 > $59; + if ($60) { + HEAPF32[$6>>2] = $37; + $61 = ((($6)) + 4|0); + $62 = (($35|0) / 3)&-1; + $63 = (+($62|0)); + HEAPF32[$61>>2] = $63; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } else { + $64 = +HEAPF32[4178]; + $65 = $37 - $64; + $66 = +HEAPF32[(16716)>>2]; + $67 = $42 - $66; + $$sroa$095$0 = $65;$$sroa$9$0 = $67; + break; + } + } else { + _ShowCursor(); + $68 = +HEAPF32[$1>>2]; + $69 = +HEAPF32[4178]; + $70 = $68 - $69; + $71 = ((($1)) + 4|0); + $72 = +HEAPF32[$71>>2]; + $73 = +HEAPF32[(16716)>>2]; + $74 = $72 - $73; + $$sroa$095$0 = $70;$$sroa$9$0 = $74; + } + } while(0); + _GetMousePosition($7); + $75 = $7; + $76 = $75; + $77 = HEAP32[$76>>2]|0; + $78 = (($75) + 4)|0; + $79 = $78; + $80 = HEAP32[$79>>2]|0; + $81 = 16712; + $82 = $81; + HEAP32[$82>>2] = $77; + $83 = (($81) + 4)|0; + $84 = $83; + HEAP32[$84>>2] = $80; + $$pr = HEAP32[4248]|0; + switch ($$pr|0) { + case 1: { + $85 = +HEAPF32[4245]; + $86 = $85 < 120.0; + $87 = ($8|0)<(0); + $or$cond3 = $87 & $86; + do { + if ($or$cond3) { + $88 = (+($8|0)); + $89 = $88 * 1.5; + $90 = $85 - $89; + HEAPF32[4245] = $90; + $91 = $90 > 120.0; + if ($91) { + HEAPF32[4245] = 120.0; + } + } else { + $92 = ((($0)) + 4|0); + $93 = +HEAPF32[$92>>2]; + $94 = ((($0)) + 12|0); + $95 = ((($0)) + 16|0); + $96 = +HEAPF32[$95>>2]; + $97 = $93 > $96; + $98 = $85 == 120.0; + $or$cond5 = $98 & $97; + $or$cond7 = $87 & $or$cond5; + if ($or$cond7) { + $99 = (+($8|0)); + $100 = +HEAPF32[$94>>2]; + $101 = +HEAPF32[$0>>2]; + $102 = $100 - $101; + $103 = $99 * $102; + $104 = $103 * 1.5; + $105 = $104 / $85; + $106 = $100 + $105; + HEAPF32[$94>>2] = $106; + $107 = $96 - $93; + $108 = $99 * $107; + $109 = $108 * 1.5; + $110 = $109 / $85; + $111 = $96 + $110; + HEAPF32[$95>>2] = $111; + $112 = ((($0)) + 20|0); + $113 = +HEAPF32[$112>>2]; + $114 = ((($0)) + 8|0); + $115 = +HEAPF32[$114>>2]; + $116 = $113 - $115; + $117 = $99 * $116; + $118 = $117 * 1.5; + $119 = $118 / $85; + $120 = $113 + $119; + HEAPF32[$112>>2] = $120; + break; + } + $$not = $97 ^ 1; + $121 = !($96 >= 0.0); + $or$cond = $121 | $$not; + if (!($or$cond)) { + $122 = (+($8|0)); + $123 = +HEAPF32[$94>>2]; + $124 = +HEAPF32[$0>>2]; + $125 = $123 - $124; + $126 = $122 * $125; + $127 = $126 * 1.5; + $128 = $127 / $85; + $129 = $123 + $128; + HEAPF32[$94>>2] = $129; + $130 = $96 - $93; + $131 = $122 * $130; + $132 = $131 * 1.5; + $133 = $132 / $85; + $134 = $96 + $133; + HEAPF32[$95>>2] = $134; + $135 = ((($0)) + 20|0); + $136 = +HEAPF32[$135>>2]; + $137 = ((($0)) + 8|0); + $138 = +HEAPF32[$137>>2]; + $139 = $136 - $138; + $140 = $122 * $139; + $141 = $140 * 1.5; + $142 = $141 / $85; + $143 = $136 + $142; + HEAPF32[$135>>2] = $143; + break; + } + if ($97) { + $144 = $96 < 0.0; + $145 = ($8|0)>(0); + $or$cond9 = $145 & $144; + if ($or$cond9) { + $146 = (+($8|0)); + $147 = $146 * 1.5; + $148 = $85 - $147; + HEAPF32[4245] = $148; + $149 = $148 < 0.30000001192092896; + if (!($149)) { + break; + } + HEAPF32[4245] = 0.30000001192092896; + break; + } + } + $150 = $93 < $96; + $or$cond11 = $98 & $150; + $or$cond13 = $87 & $or$cond11; + $151 = +HEAPF32[$95>>2]; + $152 = +HEAPF32[$92>>2]; + if ($or$cond13) { + $153 = (+($8|0)); + $154 = +HEAPF32[$94>>2]; + $155 = +HEAPF32[$0>>2]; + $156 = $154 - $155; + $157 = $153 * $156; + $158 = $157 * 1.5; + $159 = $158 / $85; + $160 = $154 + $159; + HEAPF32[$94>>2] = $160; + $161 = $151 - $152; + $162 = $153 * $161; + $163 = $162 * 1.5; + $164 = +HEAPF32[4245]; + $165 = $163 / $164; + $166 = $151 + $165; + HEAPF32[$95>>2] = $166; + $167 = ((($0)) + 20|0); + $168 = +HEAPF32[$167>>2]; + $169 = ((($0)) + 8|0); + $170 = +HEAPF32[$169>>2]; + $171 = $168 - $170; + $172 = $153 * $171; + $173 = $172 * 1.5; + $174 = $173 / $164; + $175 = $168 + $174; + HEAPF32[$167>>2] = $175; + break; + } + $$not188 = $150 ^ 1; + $176 = !($96 <= 0.0); + $or$cond189 = $176 | $$not188; + if (!($or$cond189)) { + $177 = (+($8|0)); + $178 = +HEAPF32[$94>>2]; + $179 = +HEAPF32[$0>>2]; + $180 = $178 - $179; + $181 = $177 * $180; + $182 = $181 * 1.5; + $183 = $182 / $85; + $184 = $178 + $183; + HEAPF32[$94>>2] = $184; + $185 = $151 - $152; + $186 = $177 * $185; + $187 = $186 * 1.5; + $188 = +HEAPF32[4245]; + $189 = $187 / $188; + $190 = $151 + $189; + HEAPF32[$95>>2] = $190; + $191 = ((($0)) + 20|0); + $192 = +HEAPF32[$191>>2]; + $193 = ((($0)) + 8|0); + $194 = +HEAPF32[$193>>2]; + $195 = $192 - $194; + $196 = $177 * $195; + $197 = $196 * 1.5; + $198 = $197 / $188; + $199 = $192 + $198; + HEAPF32[$191>>2] = $199; + break; + } + $200 = $152 < $151; + if ($200) { + $201 = $151 > 0.0; + $202 = ($8|0)>(0); + $or$cond15 = $202 & $201; + if ($or$cond15) { + $203 = (+($8|0)); + $204 = $203 * 1.5; + $205 = +HEAPF32[4245]; + $206 = $205 - $204; + HEAPF32[4245] = $206; + $207 = $206 < 0.30000001192092896; + if ($207) { + HEAPF32[4245] = 0.30000001192092896; + } + } + } + } + } while(0); + $208 = ($10|0)==(0); + if ($208) { + label = 58; + break L1; + } + $209 = ($12|0)==(0); + if ($209) { + $222 = $$sroa$095$0 * -0.0099999997764825821; + $223 = +HEAPF32[4246]; + $224 = (+Math_cos((+$223))); + $225 = $222 * $224; + $226 = $$sroa$9$0 * 0.0099999997764825821; + $227 = (+Math_sin((+$223))); + $228 = $226 * $227; + $229 = +HEAPF32[4247]; + $230 = (+Math_sin((+$229))); + $231 = $228 * $230; + $232 = $225 + $231; + $233 = +HEAPF32[4245]; + $234 = $233 / 5.0999999046325684; + $235 = $232 * $234; + $236 = ((($0)) + 12|0); + $237 = +HEAPF32[$236>>2]; + $238 = $237 + $235; + HEAPF32[$236>>2] = $238; + $239 = (+Math_cos((+$229))); + $240 = $226 * $239; + $241 = $234 * $240; + $242 = ((($0)) + 16|0); + $243 = +HEAPF32[$242>>2]; + $244 = $243 + $241; + HEAPF32[$242>>2] = $244; + $245 = $$sroa$095$0 * 0.0099999997764825821; + $246 = $245 * $227; + $247 = $226 * $224; + $248 = $247 * $230; + $249 = $246 + $248; + $250 = $249 * $234; + $251 = ((($0)) + 20|0); + $252 = +HEAPF32[$251>>2]; + $253 = $250 + $252; + HEAPF32[$251>>2] = $253; + label = 58; + break L1; + } + $210 = ($14|0)==(0); + if (!($210)) { + $211 = $$sroa$9$0 * 0.05000000074505806; + $212 = +HEAPF32[4245]; + $213 = $211 + $212; + HEAPF32[4245] = $213; + label = 58; + break L1; + } + $214 = $$sroa$095$0 * 0.0099999997764825821; + $215 = +HEAPF32[4246]; + $216 = $215 - $214; + HEAPF32[4246] = $216; + $217 = $$sroa$9$0 * 0.0099999997764825821; + $218 = +HEAPF32[4247]; + $219 = $218 - $217; + HEAPF32[4247] = $219; + $220 = $219 > 1.483529806137085; + if ($220) { + HEAPF32[4247] = 1.483529806137085; + label = 58; + break L1; + } + $221 = $219 < -1.483529806137085; + if (!($221)) { + label = 58; + break L1; + } + HEAPF32[4247] = -1.483529806137085; + label = 58; + break L1; + break; + } + case 2: { + $254 = +HEAPF32[4246]; + $255 = $254 + 0.0099999997764825821; + HEAPF32[4246] = $255; + $256 = (+($8|0)); + $257 = $256 * 1.5; + $258 = +HEAPF32[4245]; + $259 = $258 - $257; + HEAPF32[4245] = $259; + $260 = $259 < 1.2000000476837158; + if (!($260)) { + label = 58; + break L1; + } + HEAPF32[4245] = 1.2000000476837158; + label = 58; + break L1; + break; + } + case 4: case 3: { + $264 = +HEAPF32[4246]; + $265 = (+Math_sin((+$264))); + $266 = HEAP32[$17>>2]|0; + $267 = (+($266>>>0)); + $268 = $265 * $267; + $269 = HEAP32[$2>>2]|0; + $270 = (+($269>>>0)); + $271 = $265 * $270; + $272 = $268 - $271; + $273 = (+Math_cos((+$264))); + $274 = HEAP32[$23>>2]|0; + $275 = (+($274>>>0)); + $276 = $273 * $275; + $277 = $272 - $276; + $278 = HEAP32[$20>>2]|0; + $279 = (+($278>>>0)); + $280 = $273 * $279; + $281 = $277 + $280; + $282 = $281 / 20.0; + $283 = +HEAPF32[$0>>2]; + $284 = $283 + $282; + HEAPF32[$0>>2] = $284; + $285 = +HEAPF32[4247]; + $286 = (+Math_sin((+$285))); + $287 = $270 * $286; + $288 = $267 * $286; + $289 = $287 - $288; + $290 = HEAP32[$26>>2]|0; + $291 = (+($290>>>0)); + $292 = $289 + $291; + $293 = HEAP32[$29>>2]|0; + $294 = (+($293>>>0)); + $295 = $292 - $294; + $296 = $295 / 20.0; + $297 = ((($0)) + 4|0); + $298 = +HEAPF32[$297>>2]; + $299 = $298 + $296; + HEAPF32[$297>>2] = $299; + $300 = $267 * $273; + $301 = $273 * $270; + $302 = $300 - $301; + $303 = $265 * $275; + $304 = $302 + $303; + $305 = $265 * $279; + $306 = $304 - $305; + $307 = $306 / 20.0; + $308 = ((($0)) + 8|0); + $309 = +HEAPF32[$308>>2]; + $310 = $307 + $309; + HEAPF32[$308>>2] = $310; + $311 = HEAP32[$2>>2]|0; + $312 = ($311|0)==(0); + if ($312) { + $261 = ((($2)) + 4|0); + $262 = HEAP32[$261>>2]|0; + $263 = ($262|0)==(0); + if ($263) { + $407 = ((($2)) + 8|0); + $408 = HEAP32[$407>>2]|0; + $409 = ($408|0)==(0); + if ($409) { + $410 = ((($2)) + 12|0); + $411 = HEAP32[$410>>2]|0; + $412 = ($411|0)==(0); + if ($412) { + $413 = ((($2)) + 16|0); + $414 = HEAP32[$413>>2]|0; + $415 = ($414|0)==(0); + if ($415) { + $416 = ((($2)) + 20|0); + $417 = HEAP32[$416>>2]|0; + $not$ = ($417|0)!=(0); + $$ = $not$&1; + $$0 = $$; + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + $313 = $$sroa$095$0 * 0.0030000000260770321; + $314 = +HEAPF32[4246]; + $315 = $314 - $313; + HEAPF32[4246] = $315; + $316 = $$sroa$9$0 * 0.0030000000260770321; + $317 = +HEAPF32[4247]; + $318 = $317 - $316; + HEAPF32[4247] = $318; + $319 = HEAP32[4248]|0; + $320 = ($319|0)==(4); + if ($320) { + $321 = $318 > 0.087266460061073303; + if ($321) { + $$sink26 = 0.087266460061073303; + label = 49; + } else { + $322 = $318 < -1.483529806137085; + if ($322) { + $$sink26 = -1.483529806137085; + label = 49; + } + } + if ((label|0) == 49) { + HEAPF32[4247] = $$sink26; + } + $323 = (+($8|0)); + $324 = $323 * 1.5; + $325 = +HEAPF32[4245]; + $326 = $325 - $324; + $327 = $326 < 1.2000000476837158; + $storemerge = $327 ? 1.2000000476837158 : $326; + HEAPF32[4245] = $storemerge; + $328 = +HEAPF32[$0>>2]; + $329 = +HEAPF32[4246]; + $330 = (+Math_cos((+$329))); + $331 = $330 * 0.40000000596046448; + $332 = $328 + $331; + $333 = (+Math_sin((+$329))); + $334 = $333 * 0.0; + $335 = $332 + $334; + $336 = ((($0)) + 12|0); + HEAPF32[$336>>2] = $335; + $337 = +HEAPF32[$297>>2]; + $338 = $337 + 0.0; + $339 = ((($0)) + 16|0); + HEAPF32[$339>>2] = $338; + $340 = +HEAPF32[$308>>2]; + $341 = $334 + $340; + $342 = $333 * 0.40000000596046448; + $343 = $341 - $342; + $$sink = $343;$$sink17 = $336; + } else { + $344 = $318 > 1.483529806137085; + if ($344) { + $$sink28 = 1.483529806137085; + label = 53; + } else { + $345 = $318 < -1.483529806137085; + if ($345) { + $$sink28 = -1.483529806137085; + label = 53; + } + } + if ((label|0) == 53) { + HEAPF32[4247] = $$sink28; + } + $346 = +HEAPF32[$0>>2]; + $347 = +HEAPF32[4246]; + $348 = (+Math_sin((+$347))); + $349 = $348 * 25.0; + $350 = $346 - $349; + $351 = ((($0)) + 12|0); + HEAPF32[$351>>2] = $350; + $352 = +HEAPF32[$297>>2]; + $353 = +HEAPF32[4247]; + $354 = (+Math_sin((+$353))); + $355 = $354 * 25.0; + $356 = $352 + $355; + $357 = ((($0)) + 16|0); + HEAPF32[$357>>2] = $356; + $358 = +HEAPF32[$308>>2]; + $359 = (+Math_cos((+$347))); + $360 = $359 * 25.0; + $361 = $358 - $360; + $362 = ((($0)) + 20|0); + HEAPF32[$362>>2] = $361; + $363 = ($$0|0)==(0); + if (!($363)) { + $364 = HEAP32[4249]|0; + $365 = (($364) + 1)|0; + HEAP32[4249] = $365; + } + $366 = +HEAPF32[18]; + $367 = HEAP32[4249]|0; + $368 = (+($367|0)); + $369 = $368 / 5.0; + $370 = (+Math_sin((+$369))); + $371 = $370 / 30.0; + $372 = $366 - $371; + HEAPF32[$297>>2] = $372; + $373 = $368 / 10.0; + $374 = (+Math_sin((+$373))); + $375 = $374 / 200.0; + $376 = ((($0)) + 24|0); + HEAPF32[$376>>2] = $375; + $377 = -$374; + $378 = $377 / 200.0; + $$sink = $378;$$sink17 = $376; + } + $379 = ((($$sink17)) + 8|0); + HEAPF32[$379>>2] = $$sink; + label = 58; + break L1; + break; + } + default: { + $380 = $$pr; + break L1; + } + } + } + } while(0); + if ((label|0) == 58) { + $$pr190 = HEAP32[4248]|0; + $380 = $$pr190; + } + switch ($380|0) { + case 1: case 2: case 4: { + break; + } + default: { + STACKTOP = sp;return; + } + } + $381 = +HEAPF32[4246]; + $382 = (+Math_sin((+$381))); + $383 = +HEAPF32[4245]; + $384 = $382 * $383; + $385 = +HEAPF32[4247]; + $386 = (+Math_cos((+$385))); + $387 = $384 * $386; + $388 = ((($0)) + 12|0); + $389 = +HEAPF32[$388>>2]; + $390 = $387 + $389; + HEAPF32[$0>>2] = $390; + $391 = !($385 <= 0.0); + $392 = (+Math_sin((+$385))); + $393 = +HEAPF32[4245]; + $394 = ((($0)) + 16|0); + $395 = +HEAPF32[$394>>2]; + $396 = $392 * $393; + $397 = $392 * $396; + $398 = -$397; + $$sink22$p = $391 ? $398 : $397; + $$sink22 = $395 + $$sink22$p; + $399 = ((($0)) + 4|0); + HEAPF32[$399>>2] = $$sink22; + $400 = (+Math_cos((+$381))); + $401 = $393 * $400; + $402 = $386 * $401; + $403 = ((($0)) + 20|0); + $404 = +HEAPF32[$403>>2]; + $405 = $404 + $402; + $406 = ((($0)) + 8|0); + HEAPF32[$406>>2] = $405; + STACKTOP = sp;return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 16720; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _GetMouseWheelMove() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4254]|0; + $1 = (($0|0) / 100)&-1; + return ($1|0); +} +function _IsMouseButtonDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetMouseButtonStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _IsKeyDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetKeyStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4253]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4252]|0; + return ($0|0); +} +function _HideCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4250] = 1; + return; +} +function _SetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = 16720; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + $11 = HEAP32[4251]|0; + $12 = +HEAPF32[$0>>2]; + $13 = $12; + $14 = ((($0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $15; + _glfwSetCursorPos(($11|0),(+$13),(+$16)); + return; +} +function _ShowCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4250] = 0; + return; +} +function _GetKeyStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4251]|0; + $2 = (_glfwGetKey(($1|0),($0|0))|0); + return ($2|0); +} +function _GetMouseButtonStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4251]|0; + $2 = (_glfwGetMouseButton(($1|0),($0|0))|0); + return ($2|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,4297,$vararg_buffer); + HEAP32[4255] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(5|0))|0); + (_emscripten_set_keypress_callback((4326|0),(0|0),1,(6|0))|0); + (_emscripten_set_click_callback((4326|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchstart_callback((4326|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchend_callback((4326|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchmove_callback((4326|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchcancel_callback((4326|0),(0|0),1,(8|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(9|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(9|0))|0); + $3 = HEAP32[4253]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[4180] = $5; + $6 = HEAP32[4252]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(16724)>>2] = $8; + $9 = HEAP32[4256]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[16760>>0]=HEAP8[8826>>0]|0;HEAP8[16760+1>>0]=HEAP8[8826+1>>0]|0;HEAP8[16760+2>>0]=HEAP8[8826+2>>0]|0;HEAP8[16760+3>>0]=HEAP8[8826+3>>0]|0;HEAP8[16760+4>>0]=HEAP8[8826+4>>0]|0;HEAP8[16760+5>>0]=HEAP8[8826+5>>0]|0;HEAP8[16760+6>>0]=HEAP8[8826+6>>0]|0; + break; + } + case 1: { + $3 = 16760; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=16760; src=8833; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 16760; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(16760,$1)|0); + $strlen = (_strlen(16760)|0); + $endptr = (16760 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(16760,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[4253] = $0; + HEAP32[4252] = $1; + _MatrixIdentity($2); + dest=17100; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((2|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,4968,$vararg_buffer); + } + $6 = HEAP32[4253]|0; + HEAP32[4291] = $6; + $7 = HEAP32[4252]|0; + HEAP32[4292] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[19840]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[19840]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[19840]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,4994,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[4293]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[4253]|0; + $48 = HEAP32[4252]|0; + $49 = HEAP32[4255]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[4251] = $50; + $51 = HEAP32[4253]|0; + HEAP32[4294] = $51; + $52 = HEAP32[4252]|0; + HEAP32[4295] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[4253]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[4252]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[4291] = $31; + HEAP32[4292] = $34; + } + } while(0); + $38 = HEAP32[4291]|0; + $39 = HEAP32[4292]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,5019,$vararg_buffer3); + $40 = HEAP32[4291]|0; + $41 = HEAP32[4292]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[4291]|0; + $43 = HEAP32[4292]|0; + $44 = HEAP32[4255]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[4251] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,5057,$vararg_buffer6); + } else { + _TraceLog(0,5090,$vararg_buffer8); + $55 = HEAP32[4294]|0; + $56 = HEAP32[4295]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,5130,$vararg_buffer10); + $57 = HEAP32[4253]|0; + $58 = HEAP32[4252]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,5151,$vararg_buffer14); + $59 = HEAP32[4296]|0; + $60 = HEAP32[4297]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,5172,$vararg_buffer18); + } + $61 = HEAP32[4251]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[4251]|0; + (_glfwSetCursorEnterCallback(($62|0),(3|0))|0); + $63 = HEAP32[4251]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[4251]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[4251]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[4251]|0; + (_glfwSetCharCallback(($66|0),(4|0))|0); + $67 = HEAP32[4251]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[4251]|0; + (_glfwSetWindowIconifyCallback(($68|0),(5|0))|0); + $69 = HEAP32[4251]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[19840]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[4253]|0; + $74 = HEAP32[4252]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4294]|0; + $76 = HEAP32[4296]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4295]|0; + $80 = HEAP32[4297]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,5197,$vararg_buffer22); + $73 = HEAP32[4253]|0; + $74 = HEAP32[4252]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4294]|0; + $76 = HEAP32[4296]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4295]|0; + $80 = HEAP32[4297]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(17068)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (112 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[17044>>2]=HEAP32[$1>>2]|0;HEAP32[17044+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[17044+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[17044+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[17044+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(17068)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(17072)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(17064)>>2] = $23; + $24 = HEAP32[4261]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4521,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(17048)>>2]|0; + $10 = HEAP32[(17068)>>2]|0; + $11 = HEAP32[(17072)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2160 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(17064)>>2] = $23; + $24 = HEAP32[4261]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4521,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[2094] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,4454,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,4385,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,4378)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 16736; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (16744); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (17028 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[2091] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,4334,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4256] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,4868,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[4269]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,4566,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[4270]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,4610,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[4271]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,4655,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[4272]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,4700,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[4273]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,4745,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[4269]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[4269]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[4269]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[4269]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[4270]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[4271]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[4271]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[4272]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[4272]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[4273]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[4273]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,4790,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[4274]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,11225,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,4819,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,4922,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,8788,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[4253]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[4252]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[4294] = $3; + HEAP32[4295] = $5; + HEAP32[4296] = 0; + HEAP32[4297] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,8722,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[4253]|0; + $36 = (+($35|0)); + $37 = HEAP32[4252]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[4294] = $45; + HEAP32[4295] = $37; + $46 = (($45) - ($35))|0; + HEAP32[4296] = $46; + $$sink1 = 0; + } else { + HEAP32[4294] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[4295] = $42; + HEAP32[4296] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[4297] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[4252]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,8579,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[4253]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[4252]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[4294] = $23; + HEAP32[4295] = $1; + $24 = (($0) - ($23))|0; + HEAP32[4296] = $24; + $$sink = 0; + } else { + HEAP32[4294] = $0; + $17 = HEAP32[4252]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[4295] = $20; + HEAP32[4296] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[4297] = $$sink; + $25 = HEAP32[4294]|0; + $26 = (+($25|0)); + $27 = HEAP32[4253]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=17100; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4294] = $0; + HEAP32[4295] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,8657,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[4253] = $1; + HEAP32[4252] = $2; + HEAP32[4294] = $1; + HEAP32[4295] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[765]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (19847 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[764] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (19841 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 16736; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[764] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[4667] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[4666] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,5220,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,5238,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,5256,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,5274,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,5292)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,5294,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,5329)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[4332] = 1; + $27 = (_eglGetProcAddress((5356|0))|0); + HEAP32[4333] = $27; + $28 = (_eglGetProcAddress((5377|0))|0); + HEAP32[4334] = $28; + $29 = (_eglGetProcAddress((5398|0))|0); + HEAP32[4335] = $29; + } + $30 = (_strcmp($24,5422)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[4274] = 1; + } + $32 = (_strcmp($24,5442)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,5474)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,5507)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[4269] = 1; + } + $39 = (_strcmp($24,5547)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,5583)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[4270] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,5616)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[4271] = 1; + } + $47 = (_strcmp($44,5641)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[4272] = 1; + } + $49 = (_strcmp($44,5674)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[4273] = 1; + } + $51 = (_strcmp($44,5710)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[4336] = 1; + _glGetFloatv(34047,(17348|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,5744)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[4338] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[4332]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,5847,$vararg_buffer15); + } else { + _TraceLog(0,5772,$vararg_buffer13); + } + $57 = HEAP32[4274]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,5983,$vararg_buffer19); + } else { + _TraceLog(0,5908,$vararg_buffer17); + } + $59 = HEAP32[4269]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,6075,$vararg_buffer21); + } + $61 = HEAP32[4270]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,6121,$vararg_buffer23); + } + $63 = HEAP32[4271]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,6168,$vararg_buffer25); + } + $65 = HEAP32[4272]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,6219,$vararg_buffer27); + } + $67 = HEAP32[4273]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,6266,$vararg_buffer29); + } + $69 = HEAP32[4336]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[4337]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,6313,$vararg_buffer31); + } + $73 = HEAP32[4338]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,6379,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[4339] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,6483,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,6432,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=17360; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=17416; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[4368] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[4368]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[4369] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[4370] = 1; + $85 = HEAP32[4339]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[4371] = 4; + _MatrixIdentity($4); + dest=17488; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17552); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17616); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17680); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17744); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17808); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17872); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(17936); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18000); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18064); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18128); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18192); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18256); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18320); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18384); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18448); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=17196; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=17260; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4298] = 17260; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[4628] = $0; + HEAP32[4629] = $1; + _TraceLog(0,6522,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4296]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[4297]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[4294]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[4295]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 17196; + label = 3; + break; + } + case 5888: { + $modelview$sink = 17260; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[4298] = $modelview$sink; + } + HEAP32[4331] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[4298]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4298]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(7098|0),489)|0; + _memcpy(($3|0),(7587|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,8076,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,8028,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(18532)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(18540)>>2] = $1; + HEAP32[(18536)>>2] = 0; + HEAP32[(18544)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(18540)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[4630] = 0; + HEAP32[(18528)>>2] = 0; + HEAP32[(18524)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(18580)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(18588)>>2] = $6; + HEAP32[(18584)>>2] = 0; + HEAP32[(18592)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(18588)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[4642] = 0; + HEAP32[(18576)>>2] = 0; + HEAP32[(18572)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(18628)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(18632)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(18636)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(18640)>>2] = $13; + $14 = HEAP32[(18628)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(18632)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(18636)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(18640)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[4654] = 0; + HEAP32[(18620)>>2] = 0; + HEAP32[(18624)>>2] = 0; + _TraceLog(0,6569,$vararg_buffer); + $20 = HEAP32[4332]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[4333]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(18548)); + $44 = HEAP32[4334]|0; + $45 = HEAP32[(18548)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((18552)|0)); + $46 = HEAP32[(18552)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(18532)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(17420)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(17420)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((18556)|0)); + $50 = HEAP32[(18556)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(18540)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(17440)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(17440)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[4332]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(18552)>>2]|0; + $58 = HEAP32[(18556)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,6707,$vararg_buffer3); + } else { + $56 = HEAP32[(18548)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,6642,$vararg_buffer1); + } + $59 = HEAP32[4332]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[4333]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(18596)); + $62 = HEAP32[4334]|0; + $63 = HEAP32[(18596)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((18600)|0)); + $64 = HEAP32[(18600)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(18580)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(17420)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(17420)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((18604)|0)); + $68 = HEAP32[(18604)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(18588)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(17440)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(17440)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[4332]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(18600)>>2]|0; + $76 = HEAP32[(18604)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,6853,$vararg_buffer10); + } else { + $74 = HEAP32[(18596)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,6784,$vararg_buffer7); + } + $77 = HEAP32[4332]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[4333]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(18644)); + $80 = HEAP32[4334]|0; + $81 = HEAP32[(18644)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((18648)|0)); + $82 = HEAP32[(18648)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(18628)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(17420)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(17420)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((18652)|0)); + $86 = HEAP32[(18652)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(18632)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(17424)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(17424)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((18656)|0)); + $90 = HEAP32[(18656)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(18636)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(17440)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(17440)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((18660)|0)); + $94 = HEAP32[(18660)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(18640)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[4332]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(18648)>>2]|0; + $100 = HEAP32[(18652)>>2]|0; + $101 = HEAP32[(18656)>>2]|0; + $102 = HEAP32[(18660)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,6999,$vararg_buffer17); + } else { + $98 = HEAP32[(18644)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,6934,$vararg_buffer14); + } + $103 = HEAP32[4332]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[4334]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,8332,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,8280,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,8329,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,8433,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,8382,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,8329,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(8124|0)); + _glBindAttribLocation(($20|0),1,(8139|0)); + _glBindAttribLocation(($20|0),2,(8170|0)); + _glBindAttribLocation(($20|0),3,(8197|0)); + _glBindAttribLocation(($20|0),4,(8183|0)); + _glBindAttribLocation(($20|0),5,(8154|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,8485,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,8329,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,8531,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(8124|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(8139|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(8154|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(8170|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(8183|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(8197|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(8209|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(8219|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(8230|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(8241|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(8253|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(8262|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(8271|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (19841 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (19844 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (19841 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (19844 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[4251]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,8843,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[17044>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[17044+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[17044+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[17044+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[17044+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(17072)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(17356|0)); + $0 = HEAP32[4339]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,8870,$vararg_buffer); + $1 = HEAP32[4369]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[4340]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4332]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4334]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((18552)|0)); + _glDeleteBuffers(1,((18556)|0)); + _glDeleteBuffers(1,((18600)|0)); + _glDeleteBuffers(1,((18604)|0)); + _glDeleteBuffers(1,((18648)|0)); + _glDeleteBuffers(1,((18652)|0)); + _glDeleteBuffers(1,((18656)|0)); + _glDeleteBuffers(1,((18660)|0)); + $3 = HEAP32[4332]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4335]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(18548)); + $6 = HEAP32[4335]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(18596)); + $7 = HEAP32[4335]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(18644)); + } + $8 = HEAP32[(18532)>>2]|0; + _free($8); + $9 = HEAP32[(18540)>>2]|0; + _free($9); + $10 = HEAP32[(18580)>>2]|0; + _free($10); + $11 = HEAP32[(18588)>>2]|0; + _free($11); + $12 = HEAP32[(18628)>>2]|0; + _free($12); + $13 = HEAP32[(18632)>>2]|0; + _free($13); + $14 = HEAP32[(18636)>>2]|0; + _free($14); + $15 = HEAP32[(18640)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,8935,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[2111] = $0; + $1 = +HEAPF64[2094]; + $2 = $0 - $1; + HEAPF64[2112] = $2; + HEAPF64[2094] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=17100; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(18672); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[4668] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(18676)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(18680)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(18684)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(18688)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(18692)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(18696)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(18700)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(18704)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(18708)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(18712)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(18716)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(18720)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(18724)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(18728)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(18732)>>2] = $31; + return (18672|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[4298]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[2111] = $0; + $1 = +HEAPF64[2094]; + $2 = $0 - $1; + HEAPF64[2113] = $2; + HEAPF64[2094] = $0; + $3 = +HEAPF64[2112]; + $4 = $2 + $3; + HEAPF64[2114] = $4; + $5 = +HEAPF64[2091]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[2111] = $10; + $11 = +HEAPF64[2094]; + $12 = $10 - $11; + HEAPF64[2094] = $10; + $13 = +HEAPF64[2114]; + $14 = $12 + $13; + HEAPF64[2114] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4251]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[764] = -1; + HEAP32[766] = -1; + HEAP32[4684] = 0; + $3 = HEAP32[4251]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[4180] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(16724)>>2] = $7; + _memcpy((20359|0),(19847|0),512)|0; + ;HEAP8[19844>>0]=HEAP8[19841>>0]|0;HEAP8[19844+1>>0]=HEAP8[19841+1>>0]|0;HEAP8[19844+2>>0]=HEAP8[19841+2>>0]|0; + $8 = HEAP32[4667]|0; + HEAP32[4254] = $8; + HEAP32[4667] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (20871 + ($$05160<<5)|0); + $scevgep67 = (20999 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((20999 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[766] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((18740 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[4684] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4630]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[4332]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[4334]|0; + $5 = HEAP32[(18548)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(18552)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[4630]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(18532)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(18556)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(18528)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(18540)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[4642]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[4332]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[4334]|0; + $19 = HEAP32[(18596)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(18600)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[4642]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(18580)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(18604)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(18576)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(18588)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[4654]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[4332]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[4334]|0; + $33 = HEAP32[(18644)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(18648)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[4654]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(18628)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(18652)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[4654]|0; + $40 = $39 << 3; + $41 = HEAP32[(18632)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(18656)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[4654]|0; + $44 = $43 << 2; + $45 = HEAP32[(18636)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[4332]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[4334]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=17196; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=17260; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[4717]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[4630]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[4642]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[4654]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[4354]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=17260; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=17196; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(17444)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(17448)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(17460)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[4630]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[4339]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[4332]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(18552)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(17420)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(17420)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(18556)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(17440)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(17440)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[4334]|0; + $25 = HEAP32[(18548)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[4630]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[4332]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[4642]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[4339]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[4332]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(18600)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(17420)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(17420)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(18604)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(17440)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(17440)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[4334]|0; + $41 = HEAP32[(18596)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[4642]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[4332]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[4654]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[4332]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(18648)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(17420)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(17420)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(18652)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(17424)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(17424)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(18656)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(17440)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(17440)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(18660)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[4334]|0; + $56 = HEAP32[(18644)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[4370]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[4369]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[4369]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[4370]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[4332]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[4332]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[4334]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[4370] = 1; + $5 = HEAP32[4339]|0; + $6 = HEAP32[4369]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[4630] = 0; + HEAP32[(18528)>>2] = 0; + HEAP32[4642] = 0; + HEAP32[(18576)>>2] = 0; + HEAP32[4654] = 0; + HEAP32[(18620)>>2] = 0; + HEAP32[(18624)>>2] = 0; + HEAPF32[767] = -1.0; + dest=17196; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=17260; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[4628]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[4629]|0; + _rlViewport($7,0,$8,$9); + $10 = (19100 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (18972 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=17260; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=17196; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[4253]|0; + $3 = (+($2|0)); + $4 = HEAP32[4252]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(18672); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[4807]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,8985,$vararg_buffer); + } + $2 = HEAP32[4807]|0; + $3 = (17488 + ($2<<6)|0); + $4 = HEAP32[4298]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[4807]|0; + $6 = (($5) + 1)|0; + HEAP32[4807] = $6; + $7 = HEAP32[4331]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[4808] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4298]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4807]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[4807]|0; + $3 = (($2) + -1)|0; + $4 = (17488 + ($3<<6)|0); + $5 = HEAP32[4298]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[4807] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[2114]; + $1 = $0; + return (+$1); +} +function _IsFileExtension($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strrchr($0,46)|0); + $3 = ($2|0)==(0|0); + if ($3) { + return 0; + } else { + $4 = (_strcmp($2,$1)|0); + $5 = ($4|0)==(0); + $$ = $5&1; + return ($$|0); + } + return (0)|0; +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[4298]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[4298]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4371] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[4808]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4809]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[4368]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[4298]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[4809]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[4808] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[4368]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[4809]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[4808] = 0; + } + HEAP32[4809] = 0; + } + $21 = HEAP32[4371]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[4630]|0; + $23 = HEAP32[(18528)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(18540)>>2]|0; + $28 = HEAP32[(18528)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(18540)>>2]|0; + $35 = HEAP32[(18528)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(18540)>>2]|0; + $43 = HEAP32[(18528)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(18540)>>2]|0; + $51 = HEAP32[(18528)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(18528)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(18528)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[4642]|0; + $62 = HEAP32[(18576)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(18588)>>2]|0; + $67 = HEAP32[(18576)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(18588)>>2]|0; + $74 = HEAP32[(18576)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(18588)>>2]|0; + $82 = HEAP32[(18576)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(18588)>>2]|0; + $90 = HEAP32[(18576)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(18576)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(18576)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[4654]|0; + $101 = HEAP32[(18624)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(18636)>>2]|0; + $106 = HEAP32[(18624)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(18636)>>2]|0; + $113 = HEAP32[(18624)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(18636)>>2]|0; + $121 = HEAP32[(18624)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(18636)>>2]|0; + $129 = HEAP32[(18624)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(18624)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(18624)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[4654]|0; + $140 = HEAP32[(18620)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(18632)>>2]|0; + $$promoted = HEAP32[(18620)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(18620)>>2] = $147; + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[4808]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4368]|0; + $6 = HEAP32[4809]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[4809] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[4371]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[4630]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(18532)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[4630] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,9023,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[4642]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(18580)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[4642] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,9048,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[4654]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(18628)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[4654] = $41; + $42 = HEAP32[4369]|0; + $43 = HEAP32[4370]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,9077,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[767]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[4371]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(18632)>>2]|0; + $5 = HEAP32[(18620)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(18620)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[4371]|0; + switch ($4|0) { + case 1: { + $$sink37 = (18528);$$sink38 = (18540); + break; + } + case 4: { + $$sink37 = (18576);$$sink38 = (18588); + break; + } + case 7: { + $$sink37 = (18624);$$sink38 = (18636); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlColor3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $0 * 255.0; + $4 = (~~(($3))&255); + $5 = $1 * 255.0; + $6 = (~~(($5))&255); + $7 = $2 * 255.0; + $8 = (~~(($7))&255); + _rlColor4ub($4,$6,$8,-1); + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4369]|0; + $2 = HEAP32[4370]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[4370] = $10; + } + $11 = HEAP32[4370]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4654]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _stbi__err($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4810] = $0; + return; +} +function _stbi_load_from_file($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $5 = sp; + _stbi__start_file($5,$0); + $6 = (_stbi__load_and_postprocess_8bit($5,$1,$2,$3,$4)|0); + $7 = ($6|0)==(0|0); + if ($7) { + STACKTOP = sp;return ($6|0); + } + $8 = ((($5)) + 172|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($5)) + 168|0); + $11 = HEAP32[$10>>2]|0; + $12 = (($11) - ($9))|0; + (_fseek($0,$12,1)|0); + STACKTOP = sp;return ($6|0); +} +function _stbi__start_file($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + _stbi__start_callbacks($0,3184,$1); + return; +} +function _stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$070 = 0, $$07175 = 0, $$07276 = 0, $$07378 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond79 = 0, $exitcond80 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $5 = sp; + $6 = (_stbi__load_main($0,$1,$2,$3,$4,$5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $8 = HEAP32[$5>>2]|0; + switch ($8|0) { + case 8: { + $$070 = $6; + break; + } + case 16: { + label = 4; + break; + } + default: { + ___assert_fail((9102|0),(9128|0),1041,(9151|0)); + // unreachable; + } + } + if ((label|0) == 4) { + $9 = HEAP32[$1>>2]|0; + $10 = HEAP32[$2>>2]|0; + $11 = ($4|0)==(0); + if ($11) { + $12 = HEAP32[$3>>2]|0; + $13 = $12; + } else { + $13 = $4; + } + $14 = (_stbi__convert_16_to_8($6,$9,$10,$13)|0); + HEAP32[$5>>2] = 8; + $$070 = $14; + } + $15 = HEAP32[4811]|0; + $16 = ($15|0)==(0); + if ($16) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $17 = HEAP32[$1>>2]|0; + $18 = HEAP32[$2>>2]|0; + $19 = ($4|0)==(0); + if ($19) { + $20 = HEAP32[$3>>2]|0; + $25 = $20; + } else { + $25 = $4; + } + $21 = $18 >> 1; + $22 = ($21|0)>(0); + if (!($22)) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $23 = ($17|0)>(0); + $24 = ($25|0)>(0); + $26 = (($18) + -1)|0; + $$07378 = 0; + while(1) { + if ($23) { + $27 = Math_imul($$07378, $17)|0; + $28 = (($26) - ($$07378))|0; + $29 = Math_imul($28, $17)|0; + $$07276 = 0; + while(1) { + if ($24) { + $30 = (($$07276) + ($27))|0; + $31 = Math_imul($30, $25)|0; + $32 = (($$07276) + ($29))|0; + $33 = Math_imul($32, $25)|0; + $$07175 = 0; + while(1) { + $34 = (($$07175) + ($31))|0; + $35 = (($$070) + ($34)|0); + $36 = HEAP8[$35>>0]|0; + $37 = (($$07175) + ($33))|0; + $38 = (($$070) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + HEAP8[$35>>0] = $39; + HEAP8[$38>>0] = $36; + $40 = (($$07175) + 1)|0; + $exitcond = ($40|0)==($25|0); + if ($exitcond) { + break; + } else { + $$07175 = $40; + } + } + } + $41 = (($$07276) + 1)|0; + $exitcond79 = ($41|0)==($17|0); + if ($exitcond79) { + break; + } else { + $$07276 = $41; + } + } + } + $42 = (($$07378) + 1)|0; + $exitcond80 = ($42|0)==($21|0); + if ($exitcond80) { + $$0 = $$070; + break; + } else { + $$07378 = $42; + } + } + STACKTOP = sp;return ($$0|0); +} +function _stbi__load_main($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$0 = 0, $10 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAP32[$5>>2] = 8; + $6 = ((($5)) + 8|0); + HEAP32[$6>>2] = 0; + $7 = ((($5)) + 4|0); + HEAP32[$7>>2] = 0; + $8 = (_stbi__png_test($0)|0); + $9 = ($8|0)==(0); + if ($9) { + _stbi__err(9192); + $$0 = 0; + return ($$0|0); + } else { + $10 = (_stbi__png_load($0,$1,$2,$3,$4,$5)|0); + $$0 = $10; + return ($$0|0); + } + return (0)|0; +} +function _stbi__convert_16_to_8($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$0 = 0, $$01819 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = Math_imul($4, $3)|0; + $6 = (_stbi__malloc($5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + _stbi__err(9183); + $$0 = 0; + return ($$0|0); + } + $8 = ($5|0)>(0); + if ($8) { + $$01819 = 0; + while(1) { + $9 = (($0) + ($$01819<<1)|0); + $10 = HEAP16[$9>>1]|0; + $11 = ($10&65535) >>> 8; + $12 = $11&255; + $13 = (($6) + ($$01819)|0); + HEAP8[$13>>0] = $12; + $14 = (($$01819) + 1)|0; + $exitcond = ($14|0)==($5|0); + if ($exitcond) { + break; + } else { + $$01819 = $14; + } + } + } + _free($0); + $$0 = $6; + return ($$0|0); +} +function _stbi__malloc($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_malloc($0)|0); + return ($1|0); +} +function _stbi__png_test($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__check_png_header($0)|0); + _stbi__rewind($0); + return ($1|0); +} +function _stbi__png_load($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $6 = sp; + HEAP32[$6>>2] = $0; + $7 = (_stbi__do_png($6,$1,$2,$3,$4,$5)|0); + STACKTOP = sp;return ($7|0); +} +function _stbi__do_png($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$0 = 0, $$045 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4>>>0)>(4); + if ($6) { + _stbi__err(9211); + $$045 = 0; + return ($$045|0); + } + $7 = (_stbi__parse_png_file($0,0,$4)|0); + $8 = ($7|0)==(0); + if ($8) { + $$2 = 0; + } else { + $9 = ((($0)) + 16|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(8); + $$ = $11 ? $10 : 8; + HEAP32[$5>>2] = $$; + $12 = ((($0)) + 12|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[$12>>2] = 0; + $14 = ($4|0)==(0); + if ($14) { + $$1 = $13; + } else { + $15 = HEAP32[$0>>2]|0; + $16 = ((($15)) + 12|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==($4|0); + if ($18) { + $$1 = $13; + } else { + $19 = HEAP32[$5>>2]|0; + $20 = ($19|0)==(8); + $21 = ((($15)) + 4|0); + $22 = HEAP32[$21>>2]|0; + $23 = HEAP32[$15>>2]|0; + if ($20) { + $24 = (_stbi__convert_format($13,$17,$4,$23,$22)|0); + $$0 = $24; + } else { + $25 = (_stbi__convert_format16($13,$17,$4,$23,$22)|0); + $$0 = $25; + } + $26 = HEAP32[$0>>2]|0; + $27 = ((($26)) + 12|0); + HEAP32[$27>>2] = $4; + $28 = ($$0|0)==(0|0); + if ($28) { + $$045 = 0; + return ($$045|0); + } else { + $$1 = $$0; + } + } + } + $29 = HEAP32[$0>>2]|0; + $30 = HEAP32[$29>>2]|0; + HEAP32[$1>>2] = $30; + $31 = ((($29)) + 4|0); + $32 = HEAP32[$31>>2]|0; + HEAP32[$2>>2] = $32; + $33 = ($3|0)==(0|0); + if ($33) { + $$2 = $$1; + } else { + $34 = ((($29)) + 8|0); + $35 = HEAP32[$34>>2]|0; + HEAP32[$3>>2] = $35; + $$2 = $$1; + } + } + $36 = ((($0)) + 12|0); + $37 = HEAP32[$36>>2]|0; + _free($37); + HEAP32[$36>>2] = 0; + $38 = ((($0)) + 8|0); + $39 = HEAP32[$38>>2]|0; + _free($39); + HEAP32[$38>>2] = 0; + $40 = ((($0)) + 4|0); + $41 = HEAP32[$40>>2]|0; + _free($41); + HEAP32[$40>>2] = 0; + $$045 = $$2; + return ($$045|0); +} +function _stbi__parse_png_file($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0217 = 0, $$0206 = 0, $$0211 = 0, $$0214 = 0, $$0217 = 0, $$0226593 = 0, $$0228 = 0, $$0231 = 0, $$0235 = 0, $$0239591 = 0, $$0241 = 0, $$0245 = 0, $$1207 = 0, $$1212 = 0, $$1215 = 0, $$1218 = 0, $$1227588 = 0, $$1229 = 0, $$1240589 = 0; + var $$1246 = 0, $$2219 = 0, $$2233 = 0, $$2237 = 0, $$2243 = 0, $$254 = 0, $$3209 = 0, $$3220 = 0, $$4 = 0, $$6$ph = 0, $$7 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; + var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; + var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; + var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0; + var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0; + var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0; + var $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond248 = 0, $or$cond5$not = 0, $or$cond7 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $3 = sp + 32|0; + $4 = sp + 22|0; + $5 = sp + 16|0; + $6 = sp + 8|0; + $7 = sp; + $8 = HEAP32[$0>>2]|0; + $9 = ((($0)) + 8|0); + HEAP32[$9>>2] = 0; + $10 = ((($0)) + 4|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 12|0); + HEAP32[$11>>2] = 0; + $12 = (_stbi__check_png_header($8)|0); + $13 = ($12|0)==(0); + if ($13) { + $$7 = 0; + STACKTOP = sp;return ($$7|0); + } + $14 = ($1|0)==(1); + if ($14) { + $$7 = 1; + STACKTOP = sp;return ($$7|0); + } + $15 = ((($6)) + 4|0); + $16 = ((($8)) + 4|0); + $17 = ((($0)) + 16|0); + $18 = ((($8)) + 8|0); + $19 = ($1|0)==(2); + $20 = ((($8)) + 8|0); + $21 = ((($8)) + 8|0); + $22 = ((($0)) + 16|0); + $23 = ($1|0)==(2); + $24 = ($1|0)==(2); + $$0206 = 0;$$0211 = 0;$$0214 = 0;$$0217 = 0;$$0228 = 0;$$0231 = 0;$$0235 = 0;$$0241 = 1;$$0245 = 0; + L7: while(1) { + _stbi__get_chunk_header($6,$8); + $25 = HEAP32[$15>>2]|0; + $switch$split2D = ($25|0)<(1229472850); + L9: do { + if ($switch$split2D) { + $switch$split52D = ($25|0)<(1229209940); + if ($switch$split52D) { + switch ($25|0) { + case 1130840649: { + break; + } + default: { + label = 103; + break L9; + } + } + $26 = HEAP32[$6>>2]|0; + _stbi__skip($8,$26); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = 1;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + $switch$split112D = ($25|0)<(1229278788); + if (!($switch$split112D)) { + switch ($25|0) { + case 1229278788: { + label = 85; + break L7; + break; + } + default: { + label = 103; + break L9; + } + } + } + switch ($25|0) { + case 1229209940: { + break; + } + default: { + label = 103; + break L9; + } + } + $130 = ($$0241|0)==(0); + if (!($130)) { + label = 70; + break L7; + } + $131 = ($$0206<<24>>24)==(0); + $132 = ($$0245|0)!=(0); + $or$cond = $132 | $131; + if (!($or$cond)) { + label = 72; + break L7; + } + if ($24) { + label = 74; + break L7; + } + $135 = HEAP32[$6>>2]|0; + $136 = (($135) + ($$0214))|0; + $137 = ($136|0)<($$0214|0); + if ($137) { + $$6$ph = 0; + break L7; + } + $138 = ($136>>>0)>($$0217>>>0); + if ($138) { + $139 = ($$0217|0)==(0); + $140 = ($135>>>0)>(4096); + $141 = $140 ? $135 : 4096; + $$$0217 = $139 ? $141 : $$0217; + $142 = HEAP32[$6>>2]|0; + $143 = (($142) + ($$0214))|0; + $$1218 = $$$0217; + while(1) { + $144 = ($143>>>0)>($$1218>>>0); + $145 = $$1218 << 1; + if ($144) { + $$1218 = $145; + } else { + break; + } + } + $146 = HEAP32[$10>>2]|0; + $147 = (_realloc($146,$$1218)|0); + $148 = ($147|0)==(0|0); + if ($148) { + label = 81; + break L7; + } + HEAP32[$10>>2] = $147; + $$2219 = $$1218; + } else { + $$2219 = $$0217; + } + $149 = HEAP32[$10>>2]|0; + $150 = (($149) + ($$0214)|0); + $151 = HEAP32[$6>>2]|0; + $152 = (_stbi__getn($8,$150,$151)|0); + $153 = ($152|0)==(0); + if ($153) { + label = 83; + break L7; + } + $154 = HEAP32[$6>>2]|0; + $155 = (($154) + ($$0214))|0; + $$1212 = $$0211;$$1215 = $155;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$2219; + } else { + $switch$split82D = ($25|0)<(1347179589); + if ($switch$split82D) { + switch ($25|0) { + case 1229472850: { + break; + } + default: { + label = 103; + break L9; + } + } + $27 = ($$0241|0)==(0); + if ($27) { + label = 7; + break L7; + } + $28 = HEAP32[$6>>2]|0; + $29 = ($28|0)==(13); + if (!($29)) { + label = 9; + break L7; + } + $30 = (_stbi__get32be($8)|0); + HEAP32[$8>>2] = $30; + $31 = ($30>>>0)>(16777216); + if ($31) { + label = 11; + break L7; + } + $32 = (_stbi__get32be($8)|0); + HEAP32[$16>>2] = $32; + $33 = ($32>>>0)>(16777216); + if ($33) { + label = 13; + break L7; + } + $34 = (_stbi__get8($8)|0); + $35 = $34&255; + HEAP32[$17>>2] = $35; + switch ($34<<24>>24) { + case 16: case 8: case 4: case 2: case 1: { + break; + } + default: { + label = 15; + break L7; + } + } + $36 = (_stbi__get8($8)|0); + $37 = $36&255; + $38 = ($36&255)>(6); + if ($38) { + label = 17; + break L7; + } + $39 = ($36<<24>>24)==(3); + if ($39) { + $40 = HEAP32[$17>>2]|0; + $41 = ($40|0)==(16); + if ($41) { + label = 20; + break L7; + } else { + $$1207 = 3; + } + } else { + $42 = $37 & 1; + $43 = ($42|0)==(0); + if ($43) { + $$1207 = $$0206; + } else { + label = 22; + break L7; + } + } + $44 = (_stbi__get8($8)|0); + $45 = ($44<<24>>24)==(0); + if (!($45)) { + label = 24; + break L7; + } + $46 = (_stbi__get8($8)|0); + $47 = ($46<<24>>24)==(0); + if (!($47)) { + label = 26; + break L7; + } + $48 = (_stbi__get8($8)|0); + $49 = $48&255; + $50 = ($48&255)>(1); + if ($50) { + label = 28; + break L7; + } + $51 = HEAP32[$8>>2]|0; + $52 = ($51|0)==(0); + if ($52) { + label = 31; + break L7; + } + $53 = HEAP32[$16>>2]|0; + $54 = ($53|0)==(0); + if ($54) { + label = 31; + break L7; + } + $55 = ($$1207<<24>>24)==(0); + $56 = (1073741824 / ($51>>>0))&-1; + if (!($55)) { + HEAP32[$20>>2] = 1; + $63 = $56 >>> 2; + $64 = ($63>>>0)<($53>>>0); + if ($64) { + label = 37; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = $$1207;$$3220 = $$0217; + break; + } + } + $57 = $37 & 2; + $58 = $57 | 1; + $59 = $37 >>> 2; + $$lobit = $59 & 1; + $60 = (($58) + ($$lobit))|0; + HEAP32[$18>>2] = $60; + $61 = (($56>>>0) / ($60>>>0))&-1; + $62 = ($61>>>0)<($53>>>0); + if ($62) { + label = 34; + break L7; + } + if ($19) { + $$6$ph = 1; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + } + $switch$split142D = ($25|0)<(1951551059); + if ($switch$split142D) { + switch ($25|0) { + case 1347179589: { + break; + } + default: { + label = 103; + break L9; + } + } + $65 = ($$0241|0)==(0); + if (!($65)) { + label = 39; + break L7; + } + $66 = HEAP32[$6>>2]|0; + $67 = ($66>>>0)>(768); + if ($67) { + label = 41; + break L7; + } + $68 = (($66>>>0) / 3)&-1; + $69 = ($68*3)|0; + $70 = ($69|0)==($66|0); + if (!($70)) { + label = 44; + break L7; + } + $71 = ($66>>>0)>(2); + if ($71) { + $$0226593 = 0; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + break; + } + while(1) { + $72 = (_stbi__get8($8)|0); + $73 = $$0226593 << 2; + $74 = (($3) + ($73)|0); + HEAP8[$74>>0] = $72; + $75 = (_stbi__get8($8)|0); + $76 = $73 | 1; + $77 = (($3) + ($76)|0); + HEAP8[$77>>0] = $75; + $78 = (_stbi__get8($8)|0); + $79 = $73 | 2; + $80 = (($3) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = $73 | 3; + $82 = (($3) + ($81)|0); + HEAP8[$82>>0] = -1; + $83 = (($$0226593) + 1)|0; + $84 = ($83>>>0)<($68>>>0); + if ($84) { + $$0226593 = $83; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break L9; + } + } + } + switch ($25|0) { + case 1951551059: { + break; + } + default: { + label = 103; + break L9; + } + } + $85 = ($$0241|0)==(0); + if (!($85)) { + label = 47; + break L7; + } + $86 = HEAP32[$10>>2]|0; + $87 = ($86|0)==(0|0); + if (!($87)) { + label = 49; + break L7; + } + $88 = ($$0206<<24>>24)==(0); + if (!($88)) { + if ($23) { + label = 52; + break L7; + } + $90 = ($$0245|0)==(0); + if ($90) { + label = 54; + break L7; + } + $91 = HEAP32[$6>>2]|0; + $92 = ($91>>>0)>($$0245>>>0); + if ($92) { + label = 58; + break L7; + } + $93 = HEAP32[$6>>2]|0; + $94 = ($93|0)==(0); + if ($94) { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 4;$$3220 = $$0217; + break; + } + $95 = HEAP32[$6>>2]|0; + $$1227588 = 0; + while(1) { + $96 = (_stbi__get8($8)|0); + $97 = $$1227588 << 2; + $98 = $97 | 3; + $99 = (($3) + ($98)|0); + HEAP8[$99>>0] = $96; + $100 = (($$1227588) + 1)|0; + $101 = ($100>>>0)<($95>>>0); + if ($101) { + $$1227588 = $100; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = 4;$$3220 = $$0217; + break L9; + } + } + } + $102 = HEAP32[$21>>2]|0; + $103 = $102 & 1; + $104 = ($103|0)==(0); + if ($104) { + label = 61; + break L7; + } + $105 = HEAP32[$6>>2]|0; + $106 = $102 << 1; + $107 = ($105|0)==($106|0); + if (!($107)) { + label = 63; + break L7; + } + $108 = HEAP32[$22>>2]|0; + $109 = ($108|0)==(16); + $110 = HEAP32[$21>>2]|0; + $111 = ($110|0)>(0); + if ($109) { + if ($111) { + $$0239591 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $112 = (_stbi__get16be($8)|0); + $113 = $112&65535; + $114 = (($5) + ($$0239591<<1)|0); + HEAP16[$114>>1] = $113; + $115 = (($$0239591) + 1)|0; + $116 = HEAP32[$21>>2]|0; + $117 = ($115|0)<($116|0); + if ($117) { + $$0239591 = $115; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } else { + if ($111) { + $$1240589 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $118 = (_stbi__get16be($8)|0); + $119 = $118 & 255; + $120 = HEAP32[$22>>2]|0; + $121 = (9527 + ($120)|0); + $122 = HEAP8[$121>>0]|0; + $123 = $122&255; + $124 = Math_imul($123, $119)|0; + $125 = $124&255; + $126 = (($4) + ($$1240589)|0); + HEAP8[$126>>0] = $125; + $127 = (($$1240589) + 1)|0; + $128 = HEAP32[$21>>2]|0; + $129 = ($127|0)<($128|0); + if ($129) { + $$1240589 = $127; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } + } + } while(0); + if ((label|0) == 103) { + label = 0; + $202 = ($$0241|0)==(0); + if (!($202)) { + label = 104; + break; + } + $203 = $25 & 536870912; + $204 = ($203|0)==(0); + if ($204) { + label = 106; + break; + } + $213 = HEAP32[$6>>2]|0; + _stbi__skip($8,$213); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + } + (_stbi__get32be($8)|0); + $$0206 = $$3209;$$0211 = $$1212;$$0214 = $$1215;$$0217 = $$3220;$$0228 = $$1229;$$0231 = $$2233;$$0235 = $$2237;$$0241 = $$2243;$$0245 = $$1246; + } + switch (label|0) { + case 7: { + _stbi__err(9301); + $$6$ph = 0; + break; + } + case 9: { + _stbi__err(9315); + $$6$ph = 0; + break; + } + case 11: { + _stbi__err(9328); + $$6$ph = 0; + break; + } + case 13: { + _stbi__err(9328); + $$6$ph = 0; + break; + } + case 15: { + _stbi__err(9338); + $$6$ph = 0; + break; + } + case 17: { + _stbi__err(9358); + $$6$ph = 0; + break; + } + case 20: { + _stbi__err(9358); + $$6$ph = 0; + break; + } + case 22: { + _stbi__err(9358); + $$6$ph = 0; + break; + } + case 24: { + _stbi__err(9368); + $$6$ph = 0; + break; + } + case 26: { + _stbi__err(9384); + $$6$ph = 0; + break; + } + case 28: { + _stbi__err(9402); + $$6$ph = 0; + break; + } + case 31: { + _stbi__err(9423); + $$6$ph = 0; + break; + } + case 34: { + _stbi__err(9328); + $$6$ph = 0; + break; + } + case 37: { + _stbi__err(9328); + $$6$ph = 0; + break; + } + case 39: { + _stbi__err(9437); + $$6$ph = 0; + break; + } + case 41: { + _stbi__err(9452); + $$6$ph = 0; + break; + } + case 44: { + _stbi__err(9452); + $$6$ph = 0; + break; + } + case 47: { + _stbi__err(9437); + $$6$ph = 0; + break; + } + case 49: { + _stbi__err(9465); + $$6$ph = 0; + break; + } + case 52: { + $89 = ((($8)) + 8|0); + HEAP32[$89>>2] = 4; + $$6$ph = 1; + break; + } + case 54: { + _stbi__err(9481); + $$6$ph = 0; + break; + } + case 58: { + _stbi__err(9498); + $$6$ph = 0; + break; + } + case 61: { + _stbi__err(9511); + $$6$ph = 0; + break; + } + case 63: { + _stbi__err(9498); + $$6$ph = 0; + break; + } + case 70: { + _stbi__err(9437); + $$6$ph = 0; + break; + } + case 72: { + _stbi__err(9536); + $$6$ph = 0; + break; + } + case 74: { + $133 = $$0206&255; + $134 = ((($8)) + 8|0); + HEAP32[$134>>2] = $133; + $$6$ph = 1; + break; + } + case 81: { + _stbi__err(9183); + $$6$ph = 0; + break; + } + case 83: { + _stbi__err(9544); + $$6$ph = 0; + break; + } + case 85: { + $156 = ($$0241|0)==(0); + do { + if ($156) { + $157 = ($1|0)==(0); + if ($157) { + $158 = HEAP32[$10>>2]|0; + $159 = ($158|0)==(0|0); + if ($159) { + _stbi__err(9554); + $$4 = 0; + break; + } + $160 = HEAP32[$8>>2]|0; + $161 = ((($0)) + 16|0); + $162 = HEAP32[$161>>2]|0; + $163 = Math_imul($162, $160)|0; + $164 = (($163) + 7)|0; + $165 = $164 >>> 3; + $166 = ((($8)) + 4|0); + $167 = HEAP32[$166>>2]|0; + $168 = ((($8)) + 8|0); + $169 = HEAP32[$168>>2]|0; + $170 = Math_imul($169, $167)|0; + $171 = Math_imul($170, $165)|0; + $172 = (($171) + ($167))|0; + HEAP32[$7>>2] = $172; + $173 = ($$0228|0)!=(0); + $174 = $173 ^ 1; + $175 = $174&1; + $176 = (_stbi_zlib_decode_malloc_guesssize_headerflag($158,$$0214,$172,$7,$175)|0); + HEAP32[$9>>2] = $176; + $177 = ($176|0)==(0|0); + if ($177) { + $$4 = 0; + } else { + $178 = HEAP32[$10>>2]|0; + _free($178); + HEAP32[$10>>2] = 0; + $179 = HEAP32[$168>>2]|0; + $180 = (($179) + 1)|0; + $notlhs = ($180|0)!=($2|0); + $notrhs = ($2|0)==(3); + $or$cond5$not = $notrhs | $notlhs; + $181 = ($$0206<<24>>24)!=(0); + $or$cond7 = $181 | $or$cond5$not; + $182 = ($$0211<<24>>24)==(0); + $or$cond248 = $182 & $or$cond7; + $$254 = $or$cond248 ? $179 : $180; + $183 = ((($8)) + 12|0); + HEAP32[$183>>2] = $$254; + $184 = HEAP32[$9>>2]|0; + $185 = HEAP32[$7>>2]|0; + $186 = HEAP32[$161>>2]|0; + $187 = (_stbi__create_png_image($0,$184,$185,$$254,$186,$$0231,$$0235)|0); + $188 = ($187|0)==(0); + if ($188) { + $$4 = 0; + } else { + do { + if (!($182)) { + $189 = HEAP32[$161>>2]|0; + $190 = ($189|0)==(16); + if ($190) { + $191 = HEAP32[$183>>2]|0; + _stbi__compute_transparency16($0,$5,$191); + break; + } else { + $192 = HEAP32[$183>>2]|0; + _stbi__compute_transparency($0,$4,$192); + break; + } + } + } while(0); + $193 = HEAP32[4812]|0; + $194 = ($193|0)!=(0); + $or$cond11 = $173 & $194; + if ($or$cond11) { + $195 = HEAP32[$183>>2]|0; + $196 = ($195|0)>(2); + if ($196) { + _stbi__de_iphone($0); + } + } + if ($181) { + $197 = $$0206&255; + HEAP32[$168>>2] = $197; + $198 = ($2|0)>(2); + $$ = $198 ? $2 : $197; + HEAP32[$183>>2] = $$; + $199 = (_stbi__expand_png_palette($0,$3,$$)|0); + $200 = ($199|0)==(0); + if ($200) { + $$4 = 0; + break; + } + } + $201 = HEAP32[$9>>2]|0; + _free($201); + HEAP32[$9>>2] = 0; + $$4 = 1; + } + } + } else { + $$4 = 1; + } + } else { + _stbi__err(9437); + $$4 = 0; + } + } while(0); + $$6$ph = $$4; + break; + } + case 104: { + _stbi__err(9437); + $$6$ph = 0; + break; + } + case 106: { + $205 = $25 >>> 24; + $206 = $205&255; + HEAP8[9562] = $206; + $207 = HEAP32[$15>>2]|0; + $208 = $207 >>> 16; + $209 = $208&255; + HEAP8[(9563)>>0] = $209; + $210 = $207 >>> 8; + $211 = $210&255; + HEAP8[(9564)>>0] = $211; + $212 = $207&255; + HEAP8[(9565)>>0] = $212; + _stbi__err(9562); + $$6$ph = 0; + break; + } + } + $$7 = $$6$ph; + STACKTOP = sp;return ($$7|0); +} +function _stbi__convert_format($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9224|0),(9128|0),1477,(9280|0)); + // unreachable; + } + $7 = (_stbi__malloc_mad3($2,$3,$4)|0); + $8 = ($7|0)==(0|0); + if ($8) { + _free($0); + _stbi__err(9183); + $$0163 = 0; + return ($$0163|0); + } + $9 = ($4|0)>(0); + L11: do { + if ($9) { + $10 = $1 << 3; + $11 = (($10) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $12 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $13 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $14 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $15 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $16 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $17 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $18 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $19 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $20 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $21 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $22 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $23 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $24 = Math_imul($$0164259, $3)|0; + $25 = Math_imul($24, $1)|0; + $26 = (($0) + ($25)|0); + $27 = Math_imul($24, $2)|0; + $28 = (($7) + ($27)|0); + do { + switch ($11|0) { + case 10: { + if ($12) { + $$0151255 = $26;$$0165257 = $$0165254;$$0256 = $28; + while(1) { + $29 = HEAP8[$$0151255>>0]|0; + HEAP8[$$0256>>0] = $29; + $30 = ((($$0256)) + 1|0); + HEAP8[$30>>0] = -1; + $31 = ((($$0151255)) + 1|0); + $32 = ((($$0256)) + 2|0); + $$0165 = (($$0165257) + -1)|0; + $33 = ($$0165|0)>(-1); + if ($33) { + $$0151255 = $31;$$0165257 = $$0165;$$0256 = $32; + } else { + break; + } + } + } + break; + } + case 11: { + if ($13) { + $$1152250 = $26;$$1166252 = $$1166249;$$1251 = $28; + while(1) { + $34 = HEAP8[$$1152250>>0]|0; + $35 = ((($$1251)) + 2|0); + HEAP8[$35>>0] = $34; + $36 = ((($$1251)) + 1|0); + HEAP8[$36>>0] = $34; + HEAP8[$$1251>>0] = $34; + $37 = ((($$1152250)) + 1|0); + $38 = ((($$1251)) + 3|0); + $$1166 = (($$1166252) + -1)|0; + $39 = ($$1166|0)>(-1); + if ($39) { + $$1152250 = $37;$$1166252 = $$1166;$$1251 = $38; + } else { + break; + } + } + } + break; + } + case 12: { + if ($14) { + $$2153245 = $26;$$2167247 = $$2167244;$$2246 = $28; + while(1) { + $40 = HEAP8[$$2153245>>0]|0; + $41 = ((($$2246)) + 2|0); + HEAP8[$41>>0] = $40; + $42 = ((($$2246)) + 1|0); + HEAP8[$42>>0] = $40; + HEAP8[$$2246>>0] = $40; + $43 = ((($$2246)) + 3|0); + HEAP8[$43>>0] = -1; + $44 = ((($$2153245)) + 1|0); + $45 = ((($$2246)) + 4|0); + $$2167 = (($$2167247) + -1)|0; + $46 = ($$2167|0)>(-1); + if ($46) { + $$2153245 = $44;$$2167247 = $$2167;$$2246 = $45; + } else { + break; + } + } + } + break; + } + case 17: { + if ($15) { + $$3154240 = $26;$$3168242 = $$3168239;$$3241 = $28; + while(1) { + $47 = HEAP8[$$3154240>>0]|0; + HEAP8[$$3241>>0] = $47; + $48 = ((($$3154240)) + 2|0); + $49 = ((($$3241)) + 1|0); + $$3168 = (($$3168242) + -1)|0; + $50 = ($$3168|0)>(-1); + if ($50) { + $$3154240 = $48;$$3168242 = $$3168;$$3241 = $49; + } else { + break; + } + } + } + break; + } + case 19: { + if ($16) { + $$4155235 = $26;$$4169237 = $$4169234;$$4236 = $28; + while(1) { + $51 = HEAP8[$$4155235>>0]|0; + $52 = ((($$4236)) + 2|0); + HEAP8[$52>>0] = $51; + $53 = ((($$4236)) + 1|0); + HEAP8[$53>>0] = $51; + HEAP8[$$4236>>0] = $51; + $54 = ((($$4155235)) + 2|0); + $55 = ((($$4236)) + 3|0); + $$4169 = (($$4169237) + -1)|0; + $56 = ($$4169|0)>(-1); + if ($56) { + $$4155235 = $54;$$4169237 = $$4169;$$4236 = $55; + } else { + break; + } + } + } + break; + } + case 20: { + if ($17) { + $$5156230 = $26;$$5170232 = $$5170229;$$5231 = $28; + while(1) { + $57 = HEAP8[$$5156230>>0]|0; + $58 = ((($$5231)) + 2|0); + HEAP8[$58>>0] = $57; + $59 = ((($$5231)) + 1|0); + HEAP8[$59>>0] = $57; + HEAP8[$$5231>>0] = $57; + $60 = ((($$5156230)) + 1|0); + $61 = HEAP8[$60>>0]|0; + $62 = ((($$5231)) + 3|0); + HEAP8[$62>>0] = $61; + $63 = ((($$5156230)) + 2|0); + $64 = ((($$5231)) + 4|0); + $$5170 = (($$5170232) + -1)|0; + $65 = ($$5170|0)>(-1); + if ($65) { + $$5156230 = $63;$$5170232 = $$5170;$$5231 = $64; + } else { + break; + } + } + } + break; + } + case 28: { + if ($18) { + $$6157225 = $26;$$6171227 = $$6171224;$$6226 = $28; + while(1) { + $66 = HEAP8[$$6157225>>0]|0; + HEAP8[$$6226>>0] = $66; + $67 = ((($$6157225)) + 1|0); + $68 = HEAP8[$67>>0]|0; + $69 = ((($$6226)) + 1|0); + HEAP8[$69>>0] = $68; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP8[$70>>0]|0; + $72 = ((($$6226)) + 2|0); + HEAP8[$72>>0] = $71; + $73 = ((($$6226)) + 3|0); + HEAP8[$73>>0] = -1; + $74 = ((($$6157225)) + 3|0); + $75 = ((($$6226)) + 4|0); + $$6171 = (($$6171227) + -1)|0; + $76 = ($$6171|0)>(-1); + if ($76) { + $$6157225 = $74;$$6171227 = $$6171;$$6226 = $75; + } else { + break; + } + } + } + break; + } + case 25: { + if ($19) { + $$7158220 = $26;$$7172222 = $$7172219;$$7221 = $28; + while(1) { + $77 = HEAP8[$$7158220>>0]|0; + $78 = $77&255; + $79 = ((($$7158220)) + 1|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP8[$82>>0]|0; + $84 = $83&255; + $85 = (_stbi__compute_y($78,$81,$84)|0); + HEAP8[$$7221>>0] = $85; + $86 = ((($$7158220)) + 3|0); + $87 = ((($$7221)) + 1|0); + $$7172 = (($$7172222) + -1)|0; + $88 = ($$7172|0)>(-1); + if ($88) { + $$7158220 = $86;$$7172222 = $$7172;$$7221 = $87; + } else { + break; + } + } + } + break; + } + case 26: { + if ($20) { + $$8159215 = $26;$$8173217 = $$8173214;$$8216 = $28; + while(1) { + $89 = HEAP8[$$8159215>>0]|0; + $90 = $89&255; + $91 = ((($$8159215)) + 1|0); + $92 = HEAP8[$91>>0]|0; + $93 = $92&255; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP8[$94>>0]|0; + $96 = $95&255; + $97 = (_stbi__compute_y($90,$93,$96)|0); + HEAP8[$$8216>>0] = $97; + $98 = ((($$8216)) + 1|0); + HEAP8[$98>>0] = -1; + $99 = ((($$8159215)) + 3|0); + $100 = ((($$8216)) + 2|0); + $$8173 = (($$8173217) + -1)|0; + $101 = ($$8173|0)>(-1); + if ($101) { + $$8159215 = $99;$$8173217 = $$8173;$$8216 = $100; + } else { + break; + } + } + } + break; + } + case 33: { + if ($21) { + $$9160210 = $26;$$9174212 = $$9174209;$$9211 = $28; + while(1) { + $102 = HEAP8[$$9160210>>0]|0; + $103 = $102&255; + $104 = ((($$9160210)) + 1|0); + $105 = HEAP8[$104>>0]|0; + $106 = $105&255; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP8[$107>>0]|0; + $109 = $108&255; + $110 = (_stbi__compute_y($103,$106,$109)|0); + HEAP8[$$9211>>0] = $110; + $111 = ((($$9160210)) + 4|0); + $112 = ((($$9211)) + 1|0); + $$9174 = (($$9174212) + -1)|0; + $113 = ($$9174|0)>(-1); + if ($113) { + $$9160210 = $111;$$9174212 = $$9174;$$9211 = $112; + } else { + break; + } + } + } + break; + } + case 34: { + if ($22) { + $$10161205 = $26;$$10175207 = $$10175204;$$10206 = $28; + while(1) { + $114 = HEAP8[$$10161205>>0]|0; + $115 = $114&255; + $116 = ((($$10161205)) + 1|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP8[$119>>0]|0; + $121 = $120&255; + $122 = (_stbi__compute_y($115,$118,$121)|0); + HEAP8[$$10206>>0] = $122; + $123 = ((($$10161205)) + 3|0); + $124 = HEAP8[$123>>0]|0; + $125 = ((($$10206)) + 1|0); + HEAP8[$125>>0] = $124; + $126 = ((($$10161205)) + 4|0); + $127 = ((($$10206)) + 2|0); + $$10175 = (($$10175207) + -1)|0; + $128 = ($$10175|0)>(-1); + if ($128) { + $$10161205 = $126;$$10175207 = $$10175;$$10206 = $127; + } else { + break; + } + } + } + break; + } + case 35: { + if ($23) { + $$11162201 = $26;$$11176203 = $$11176200;$$11202 = $28; + while(1) { + $129 = HEAP8[$$11162201>>0]|0; + HEAP8[$$11202>>0] = $129; + $130 = ((($$11162201)) + 1|0); + $131 = HEAP8[$130>>0]|0; + $132 = ((($$11202)) + 1|0); + HEAP8[$132>>0] = $131; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP8[$133>>0]|0; + $135 = ((($$11202)) + 2|0); + HEAP8[$135>>0] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = ((($$11202)) + 3|0); + $$11176 = (($$11176203) + -1)|0; + $138 = ($$11176|0)>(-1); + if ($138) { + $$11162201 = $136;$$11176203 = $$11176;$$11202 = $137; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $139 = (($$0164259) + 1)|0; + $140 = ($139|0)<($4|0); + if ($140) { + $$0164259 = $139; + } else { + break L11; + } + } + ___assert_fail((9278|0),(9128|0),1506,(9280|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $7; + return ($$0163|0); +} +function _stbi__convert_format16($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9224|0),(9128|0),1526,(9255|0)); + // unreachable; + } + $7 = $2 << 1; + $8 = Math_imul($7, $3)|0; + $9 = Math_imul($8, $4)|0; + $10 = (_stbi__malloc($9)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _free($0); + _stbi__err(9183); + $$0163 = 0; + return ($$0163|0); + } + $12 = ($4|0)>(0); + L11: do { + if ($12) { + $13 = $1 << 3; + $14 = (($13) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $15 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $16 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $17 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $18 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $19 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $20 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $21 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $22 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $23 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $24 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $25 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $26 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $27 = Math_imul($$0164259, $3)|0; + $28 = Math_imul($27, $1)|0; + $29 = (($0) + ($28<<1)|0); + $30 = Math_imul($27, $2)|0; + $31 = (($10) + ($30<<1)|0); + do { + switch ($14|0) { + case 10: { + if ($15) { + $$0151255 = $29;$$0165257 = $$0165254;$$0256 = $31; + while(1) { + $32 = HEAP16[$$0151255>>1]|0; + HEAP16[$$0256>>1] = $32; + $33 = ((($$0256)) + 2|0); + HEAP16[$33>>1] = -1; + $34 = ((($$0151255)) + 2|0); + $35 = ((($$0256)) + 4|0); + $$0165 = (($$0165257) + -1)|0; + $36 = ($$0165|0)>(-1); + if ($36) { + $$0151255 = $34;$$0165257 = $$0165;$$0256 = $35; + } else { + break; + } + } + } + break; + } + case 11: { + if ($16) { + $$1152250 = $29;$$1166252 = $$1166249;$$1251 = $31; + while(1) { + $37 = HEAP16[$$1152250>>1]|0; + $38 = ((($$1251)) + 4|0); + HEAP16[$38>>1] = $37; + $39 = ((($$1251)) + 2|0); + HEAP16[$39>>1] = $37; + HEAP16[$$1251>>1] = $37; + $40 = ((($$1152250)) + 2|0); + $41 = ((($$1251)) + 6|0); + $$1166 = (($$1166252) + -1)|0; + $42 = ($$1166|0)>(-1); + if ($42) { + $$1152250 = $40;$$1166252 = $$1166;$$1251 = $41; + } else { + break; + } + } + } + break; + } + case 12: { + if ($17) { + $$2153245 = $29;$$2167247 = $$2167244;$$2246 = $31; + while(1) { + $43 = HEAP16[$$2153245>>1]|0; + $44 = ((($$2246)) + 4|0); + HEAP16[$44>>1] = $43; + $45 = ((($$2246)) + 2|0); + HEAP16[$45>>1] = $43; + HEAP16[$$2246>>1] = $43; + $46 = ((($$2246)) + 6|0); + HEAP16[$46>>1] = -1; + $47 = ((($$2153245)) + 2|0); + $48 = ((($$2246)) + 8|0); + $$2167 = (($$2167247) + -1)|0; + $49 = ($$2167|0)>(-1); + if ($49) { + $$2153245 = $47;$$2167247 = $$2167;$$2246 = $48; + } else { + break; + } + } + } + break; + } + case 17: { + if ($18) { + $$3154240 = $29;$$3168242 = $$3168239;$$3241 = $31; + while(1) { + $50 = HEAP16[$$3154240>>1]|0; + HEAP16[$$3241>>1] = $50; + $51 = ((($$3154240)) + 4|0); + $52 = ((($$3241)) + 2|0); + $$3168 = (($$3168242) + -1)|0; + $53 = ($$3168|0)>(-1); + if ($53) { + $$3154240 = $51;$$3168242 = $$3168;$$3241 = $52; + } else { + break; + } + } + } + break; + } + case 19: { + if ($19) { + $$4155235 = $29;$$4169237 = $$4169234;$$4236 = $31; + while(1) { + $54 = HEAP16[$$4155235>>1]|0; + $55 = ((($$4236)) + 4|0); + HEAP16[$55>>1] = $54; + $56 = ((($$4236)) + 2|0); + HEAP16[$56>>1] = $54; + HEAP16[$$4236>>1] = $54; + $57 = ((($$4155235)) + 4|0); + $58 = ((($$4236)) + 6|0); + $$4169 = (($$4169237) + -1)|0; + $59 = ($$4169|0)>(-1); + if ($59) { + $$4155235 = $57;$$4169237 = $$4169;$$4236 = $58; + } else { + break; + } + } + } + break; + } + case 20: { + if ($20) { + $$5156230 = $29;$$5170232 = $$5170229;$$5231 = $31; + while(1) { + $60 = HEAP16[$$5156230>>1]|0; + $61 = ((($$5231)) + 4|0); + HEAP16[$61>>1] = $60; + $62 = ((($$5231)) + 2|0); + HEAP16[$62>>1] = $60; + HEAP16[$$5231>>1] = $60; + $63 = ((($$5156230)) + 2|0); + $64 = HEAP16[$63>>1]|0; + $65 = ((($$5231)) + 6|0); + HEAP16[$65>>1] = $64; + $66 = ((($$5156230)) + 4|0); + $67 = ((($$5231)) + 8|0); + $$5170 = (($$5170232) + -1)|0; + $68 = ($$5170|0)>(-1); + if ($68) { + $$5156230 = $66;$$5170232 = $$5170;$$5231 = $67; + } else { + break; + } + } + } + break; + } + case 28: { + if ($21) { + $$6157225 = $29;$$6171227 = $$6171224;$$6226 = $31; + while(1) { + $69 = HEAP16[$$6157225>>1]|0; + HEAP16[$$6226>>1] = $69; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP16[$70>>1]|0; + $72 = ((($$6226)) + 2|0); + HEAP16[$72>>1] = $71; + $73 = ((($$6157225)) + 4|0); + $74 = HEAP16[$73>>1]|0; + $75 = ((($$6226)) + 4|0); + HEAP16[$75>>1] = $74; + $76 = ((($$6226)) + 6|0); + HEAP16[$76>>1] = -1; + $77 = ((($$6157225)) + 6|0); + $78 = ((($$6226)) + 8|0); + $$6171 = (($$6171227) + -1)|0; + $79 = ($$6171|0)>(-1); + if ($79) { + $$6157225 = $77;$$6171227 = $$6171;$$6226 = $78; + } else { + break; + } + } + } + break; + } + case 25: { + if ($22) { + $$7158220 = $29;$$7172222 = $$7172219;$$7221 = $31; + while(1) { + $80 = HEAP16[$$7158220>>1]|0; + $81 = $80&65535; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP16[$82>>1]|0; + $84 = $83&65535; + $85 = ((($$7158220)) + 4|0); + $86 = HEAP16[$85>>1]|0; + $87 = $86&65535; + $88 = (_stbi__compute_y_16($81,$84,$87)|0); + HEAP16[$$7221>>1] = $88; + $89 = ((($$7158220)) + 6|0); + $90 = ((($$7221)) + 2|0); + $$7172 = (($$7172222) + -1)|0; + $91 = ($$7172|0)>(-1); + if ($91) { + $$7158220 = $89;$$7172222 = $$7172;$$7221 = $90; + } else { + break; + } + } + } + break; + } + case 26: { + if ($23) { + $$8159215 = $29;$$8173217 = $$8173214;$$8216 = $31; + while(1) { + $92 = HEAP16[$$8159215>>1]|0; + $93 = $92&65535; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP16[$94>>1]|0; + $96 = $95&65535; + $97 = ((($$8159215)) + 4|0); + $98 = HEAP16[$97>>1]|0; + $99 = $98&65535; + $100 = (_stbi__compute_y_16($93,$96,$99)|0); + HEAP16[$$8216>>1] = $100; + $101 = ((($$8216)) + 2|0); + HEAP16[$101>>1] = -1; + $102 = ((($$8159215)) + 6|0); + $103 = ((($$8216)) + 4|0); + $$8173 = (($$8173217) + -1)|0; + $104 = ($$8173|0)>(-1); + if ($104) { + $$8159215 = $102;$$8173217 = $$8173;$$8216 = $103; + } else { + break; + } + } + } + break; + } + case 33: { + if ($24) { + $$9160210 = $29;$$9174212 = $$9174209;$$9211 = $31; + while(1) { + $105 = HEAP16[$$9160210>>1]|0; + $106 = $105&65535; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP16[$107>>1]|0; + $109 = $108&65535; + $110 = ((($$9160210)) + 4|0); + $111 = HEAP16[$110>>1]|0; + $112 = $111&65535; + $113 = (_stbi__compute_y_16($106,$109,$112)|0); + HEAP16[$$9211>>1] = $113; + $114 = ((($$9160210)) + 8|0); + $115 = ((($$9211)) + 2|0); + $$9174 = (($$9174212) + -1)|0; + $116 = ($$9174|0)>(-1); + if ($116) { + $$9160210 = $114;$$9174212 = $$9174;$$9211 = $115; + } else { + break; + } + } + } + break; + } + case 34: { + if ($25) { + $$10161205 = $29;$$10175207 = $$10175204;$$10206 = $31; + while(1) { + $117 = HEAP16[$$10161205>>1]|0; + $118 = $117&65535; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP16[$119>>1]|0; + $121 = $120&65535; + $122 = ((($$10161205)) + 4|0); + $123 = HEAP16[$122>>1]|0; + $124 = $123&65535; + $125 = (_stbi__compute_y_16($118,$121,$124)|0); + HEAP16[$$10206>>1] = $125; + $126 = ((($$10161205)) + 6|0); + $127 = HEAP16[$126>>1]|0; + $128 = ((($$10206)) + 2|0); + HEAP16[$128>>1] = $127; + $129 = ((($$10161205)) + 8|0); + $130 = ((($$10206)) + 4|0); + $$10175 = (($$10175207) + -1)|0; + $131 = ($$10175|0)>(-1); + if ($131) { + $$10161205 = $129;$$10175207 = $$10175;$$10206 = $130; + } else { + break; + } + } + } + break; + } + case 35: { + if ($26) { + $$11162201 = $29;$$11176203 = $$11176200;$$11202 = $31; + while(1) { + $132 = HEAP16[$$11162201>>1]|0; + HEAP16[$$11202>>1] = $132; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP16[$133>>1]|0; + $135 = ((($$11202)) + 2|0); + HEAP16[$135>>1] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = HEAP16[$136>>1]|0; + $138 = ((($$11202)) + 4|0); + HEAP16[$138>>1] = $137; + $139 = ((($$11162201)) + 8|0); + $140 = ((($$11202)) + 6|0); + $$11176 = (($$11176203) + -1)|0; + $141 = ($$11176|0)>(-1); + if ($141) { + $$11162201 = $139;$$11176203 = $$11176;$$11202 = $140; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $142 = (($$0164259) + 1)|0; + $143 = ($142|0)<($4|0); + if ($143) { + $$0164259 = $142; + } else { + break L11; + } + } + ___assert_fail((9278|0),(9128|0),1555,(9255|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $10; + return ($$0163|0); +} +function _stbi__compute_y_16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&65535; + return ($9|0); +} +function _stbi__malloc_mad3($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mad3sizes_valid($0,$1,$2)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + $5 = Math_imul($1, $0)|0; + $6 = Math_imul($5, $2)|0; + $7 = (_stbi__malloc($6)|0); + $$0 = $7; + return ($$0|0); +} +function _stbi__compute_y($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&255; + return ($9|0); +} +function _stbi__mad3sizes_valid($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mul2sizes_valid($0,$1)|0); + $4 = ($3|0)==(0); + if ($4) { + $12 = 0; + } else { + $5 = Math_imul($1, $0)|0; + $6 = (_stbi__mul2sizes_valid($5,$2)|0); + $7 = ($6|0)==(0); + if ($7) { + $12 = 0; + } else { + $8 = Math_imul($5, $2)|0; + $9 = (_stbi__addsizes_valid($8)|0); + $10 = ($9|0)!=(0); + $12 = $10; + } + } + $11 = $12&1; + return ($11|0); +} +function _stbi__mul2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 | $0; + $3 = ($2|0)<(0); + if ($3) { + $$0 = 0; + } else { + $4 = ($1|0)==(0); + if ($4) { + $$0 = 1; + } else { + $5 = (2147483647 / ($1|0))&-1; + $6 = ($5|0)>=($0|0); + $7 = $6&1; + $$0 = $7; + } + } + return ($$0|0); +} +function _stbi__addsizes_valid($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 1; +} +function _stbi__check_png_header($0) { + $0 = $0|0; + var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = ($1<<24>>24)==(-119); + if ($2) { + $3 = (_stbi__get8($0)|0); + $4 = ($3<<24>>24)==(80); + if ($4) { + $5 = (_stbi__get8($0)|0); + $6 = ($5<<24>>24)==(78); + if ($6) { + $7 = (_stbi__get8($0)|0); + $8 = ($7<<24>>24)==(71); + if ($8) { + $9 = (_stbi__get8($0)|0); + $10 = ($9<<24>>24)==(13); + if ($10) { + $11 = (_stbi__get8($0)|0); + $12 = ($11<<24>>24)==(10); + if ($12) { + $13 = (_stbi__get8($0)|0); + $14 = ($13<<24>>24)==(26); + if ($14) { + $15 = (_stbi__get8($0)|0); + $16 = ($15<<24>>24)==(10); + if ($16) { + $$05 = 1; + return ($$05|0); + } + } + } + } + } + } + } + } + _stbi__err(10539); + $$05 = 0; + return ($$05|0); +} +function _stbi__get_chunk_header($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$4$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__get32be($1)|0); + $3 = (_stbi__get32be($1)|0); + HEAP32[$0>>2] = $2; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $3; + return; +} +function _stbi__skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(0); + if ($2) { + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 168|0); + HEAP32[$5>>2] = $4; + return; + } + $6 = ((($0)) + 16|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0|0); + if (!($8)) { + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 168|0); + $12 = HEAP32[$11>>2]|0; + $13 = $10; + $14 = (($13) - ($12))|0; + $15 = ($14|0)<($1|0); + if ($15) { + HEAP32[$11>>2] = $10; + $16 = ((($0)) + 20|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($0)) + 28|0); + $19 = HEAP32[$18>>2]|0; + $20 = (($1) - ($14))|0; + FUNCTION_TABLE_vii[$17 & 63]($19,$20); + return; + } + } + $21 = ((($0)) + 168|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($22) + ($1)|0); + HEAP32[$21>>2] = $23; + return; +} +function _stbi__get32be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get16be($0)|0); + $2 = $1 << 16; + $3 = (_stbi__get16be($0)|0); + $4 = (($2) + ($3))|0; + return ($4|0); +} +function _stbi__get8($0) { + $0 = $0|0; + var $$0 = 0, $$sink6 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 168|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)<($4>>>0); + do { + if ($5) { + $$sink6 = $2; + } else { + $6 = ((($0)) + 32|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0); + if ($8) { + $$0 = 0; + return ($$0|0); + } else { + _stbi__refill_buffer($0); + $9 = HEAP32[$1>>2]|0; + $$sink6 = $9; + break; + } + } + } while(0); + $10 = ((($$sink6)) + 1|0); + HEAP32[$1>>2] = $10; + $11 = HEAP8[$$sink6>>0]|0; + $$0 = $11; + return ($$0|0); +} +function _stbi__get16be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = $1&255; + $3 = $2 << 8; + $4 = (_stbi__get8($0)|0); + $5 = $4&255; + $6 = $3 | $5; + return ($6|0); +} +function _stbi__getn($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($0)) + 172|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($0)) + 168|0); + $9 = HEAP32[$8>>2]|0; + $10 = $9; + $11 = (($7) - ($10))|0; + $12 = ($11|0)<($2|0); + if ($12) { + _memcpy(($1|0),($9|0),($11|0))|0; + $13 = HEAP32[$3>>2]|0; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + $16 = (($1) + ($11)|0); + $17 = (($2) - ($11))|0; + $18 = (FUNCTION_TABLE_iiii[$13 & 15]($15,$16,$17)|0); + $19 = ($18|0)==($17|0); + $20 = $19&1; + $21 = HEAP32[$6>>2]|0; + HEAP32[$8>>2] = $21; + $$1 = $20; + return ($$1|0); + } + } + $22 = ((($0)) + 168|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($23) + ($2)|0); + $25 = ((($0)) + 172|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($24>>>0)>($26>>>0); + if ($27) { + $$1 = 0; + return ($$1|0); + } + _memcpy(($1|0),($23|0),($2|0))|0; + $28 = HEAP32[$22>>2]|0; + $29 = (($28) + ($2)|0); + HEAP32[$22>>2] = $29; + $$1 = 1; + return ($$1|0); +} +function _stbi_zlib_decode_malloc_guesssize_headerflag($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 4080|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(4080|0); + $5 = sp; + $6 = (_stbi__malloc($2)|0); + $7 = ($6|0)==(0|0); + do { + if ($7) { + $$0 = 0; + } else { + HEAP32[$5>>2] = $0; + $8 = (($0) + ($1)|0); + $9 = ((($5)) + 4|0); + HEAP32[$9>>2] = $8; + $10 = (_stbi__do_zlib($5,$6,$2,1,$4)|0); + $11 = ($10|0)==(0); + $12 = ((($5)) + 20|0); + $13 = HEAP32[$12>>2]|0; + if ($11) { + _free($13); + $$0 = 0; + break; + } + $14 = ($3|0)==(0|0); + if ($14) { + $$0 = $13; + } else { + $15 = ((($5)) + 16|0); + $16 = HEAP32[$15>>2]|0; + $17 = $13; + $18 = (($16) - ($17))|0; + HEAP32[$3>>2] = $18; + $$0 = $13; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _stbi__create_png_image($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$0103117 = 0, $$0106116 = 0, $$0107115 = 0, $$095119 = 0, $$099118 = 0, $$3102$ph = 0, $$398$ph = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $7 = ($4|0)==(16); + $8 = $7 ? 2 : 1; + $9 = Math_imul($8, $3)|0; + $10 = ($6|0)==(0); + $11 = HEAP32[$0>>2]|0; + $12 = HEAP32[$11>>2]|0; + $13 = ((($11)) + 4|0); + $14 = HEAP32[$13>>2]|0; + if ($10) { + $15 = (_stbi__create_png_image_raw($0,$1,$2,$3,$12,$14,$4,$5)|0); + $$4 = $15; + return ($$4|0); + } + $16 = (_stbi__malloc_mad3($12,$14,$9)|0); + $17 = ((($0)) + 12|0); + $18 = ((($0)) + 12|0); + $$0103117 = 0;$$095119 = $1;$$099118 = $2; + while(1) { + $19 = HEAP32[$0>>2]|0; + $20 = HEAP32[$19>>2]|0; + $21 = (3072 + ($$0103117<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = (3100 + ($$0103117<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (($20) + -1)|0; + $26 = (($25) - ($22))|0; + $27 = (($26) + ($24))|0; + $28 = (($27>>>0) / ($24>>>0))&-1; + $29 = ((($19)) + 4|0); + $30 = HEAP32[$29>>2]|0; + $31 = (3128 + ($$0103117<<2)|0); + $32 = HEAP32[$31>>2]|0; + $33 = (3156 + ($$0103117<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (($30) + -1)|0; + $36 = (($35) - ($32))|0; + $37 = (($36) + ($34))|0; + $38 = (($37>>>0) / ($34>>>0))&-1; + $39 = ($24>>>0)<=($27>>>0); + $40 = ($34>>>0)<=($37>>>0); + $or$cond = $39 & $40; + if ($or$cond) { + $41 = ((($19)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = Math_imul($28, $4)|0; + $44 = Math_imul($43, $42)|0; + $45 = (($44) + 7)|0; + $46 = $45 >> 3; + $47 = (($46) + 1)|0; + $48 = Math_imul($47, $38)|0; + $49 = (_stbi__create_png_image_raw($0,$$095119,$$099118,$3,$28,$38,$4,$5)|0); + $50 = ($49|0)==(0); + if ($50) { + label = 13; + break; + } + $51 = ($38|0)>(0); + if ($51) { + $52 = ($28|0)>(0); + $$0106116 = 0; + while(1) { + if ($52) { + $53 = HEAP32[$33>>2]|0; + $54 = Math_imul($53, $$0106116)|0; + $55 = HEAP32[$31>>2]|0; + $56 = (($54) + ($55))|0; + $57 = HEAP32[$23>>2]|0; + $58 = HEAP32[$21>>2]|0; + $59 = Math_imul($56, $9)|0; + $60 = Math_imul($$0106116, $28)|0; + $$0107115 = 0; + while(1) { + $61 = Math_imul($57, $$0107115)|0; + $62 = (($61) + ($58))|0; + $63 = HEAP32[$0>>2]|0; + $64 = HEAP32[$63>>2]|0; + $65 = Math_imul($59, $64)|0; + $66 = (($16) + ($65)|0); + $67 = Math_imul($62, $9)|0; + $68 = (($66) + ($67)|0); + $69 = HEAP32[$18>>2]|0; + $70 = (($$0107115) + ($60))|0; + $71 = Math_imul($70, $9)|0; + $72 = (($69) + ($71)|0); + _memcpy(($68|0),($72|0),($9|0))|0; + $73 = (($$0107115) + 1)|0; + $74 = ($73|0)<($28|0); + if ($74) { + $$0107115 = $73; + } else { + break; + } + } + } + $75 = (($$0106116) + 1)|0; + $76 = ($75|0)<($38|0); + if ($76) { + $$0106116 = $75; + } else { + break; + } + } + } + $77 = HEAP32[$17>>2]|0; + _free($77); + $78 = (($$095119) + ($48)|0); + $79 = (($$099118) - ($48))|0; + $$3102$ph = $79;$$398$ph = $78; + } else { + $$3102$ph = $$099118;$$398$ph = $$095119; + } + $80 = (($$0103117) + 1)|0; + $81 = ($80|0)<(7); + if ($81) { + $$0103117 = $80;$$095119 = $$398$ph;$$099118 = $$3102$ph; + } else { + label = 15; + break; + } + } + if ((label|0) == 13) { + _free($16); + $$4 = 0; + return ($$4|0); + } + else if ((label|0) == 15) { + $82 = ((($0)) + 12|0); + HEAP32[$82>>2] = $16; + $$4 = 1; + return ($$4|0); + } + return (0)|0; +} +function _stbi__compute_transparency16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP16[$$04>>1]|0; + $15 = HEAP16[$1>>1]|0; + $not$ = ($14<<16>>16)!=($15<<16>>16); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 2|0); + HEAP16[$17>>1] = $16; + $18 = ((($$04)) + 4|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 2|0); + $12 = ((($1)) + 4|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP16[$$16>>1]|0; + $21 = HEAP16[$1>>1]|0; + $22 = ($20<<16>>16)==($21<<16>>16); + if ($22) { + $23 = ((($$16)) + 2|0); + $24 = HEAP16[$23>>1]|0; + $25 = HEAP16[$11>>1]|0; + $26 = ($24<<16>>16)==($25<<16>>16); + if ($26) { + $27 = ((($$16)) + 4|0); + $28 = HEAP16[$27>>1]|0; + $29 = HEAP16[$12>>1]|0; + $30 = ($28<<16>>16)==($29<<16>>16); + if ($30) { + $31 = ((($$16)) + 6|0); + HEAP16[$31>>1] = 0; + } + } + } + $32 = ((($$16)) + 8|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((9621|0),(9128|0),4569,(9673|0)); + // unreachable; + } + } +} +function _stbi__compute_transparency($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP8[$$04>>0]|0; + $15 = HEAP8[$1>>0]|0; + $not$ = ($14<<24>>24)!=($15<<24>>24); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 1|0); + HEAP8[$17>>0] = $16; + $18 = ((($$04)) + 2|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 1|0); + $12 = ((($1)) + 2|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP8[$$16>>0]|0; + $21 = HEAP8[$1>>0]|0; + $22 = ($20<<24>>24)==($21<<24>>24); + if ($22) { + $23 = ((($$16)) + 1|0); + $24 = HEAP8[$23>>0]|0; + $25 = HEAP8[$11>>0]|0; + $26 = ($24<<24>>24)==($25<<24>>24); + if ($26) { + $27 = ((($$16)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = HEAP8[$12>>0]|0; + $30 = ($28<<24>>24)==($29<<24>>24); + if ($30) { + $31 = ((($$16)) + 3|0); + HEAP8[$31>>0] = 0; + } + } + } + $32 = ((($$16)) + 4|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((9621|0),(9128|0),4544,(9646|0)); + // unreachable; + } + } +} +function _stbi__de_iphone($0) { + $0 = $0|0; + var $$05158 = 0, $$059 = 0, $$15263 = 0, $$164 = 0, $$25360 = 0, $$261 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond68 = 0, $exitcond69 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = Math_imul($4, $2)|0; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($1)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($9|0) { + case 3: { + $10 = ($5|0)==(0); + if ($10) { + return; + } else { + $$05158 = $7;$$059 = 0; + } + while(1) { + $11 = HEAP8[$$05158>>0]|0; + $12 = ((($$05158)) + 2|0); + $13 = HEAP8[$12>>0]|0; + HEAP8[$$05158>>0] = $13; + HEAP8[$12>>0] = $11; + $14 = ((($$05158)) + 3|0); + $15 = (($$059) + 1)|0; + $exitcond = ($15|0)==($5|0); + if ($exitcond) { + break; + } else { + $$05158 = $14;$$059 = $15; + } + } + return; + break; + } + case 4: { + $16 = HEAP32[4813]|0; + $17 = ($16|0)==(0); + $18 = ($5|0)!=(0); + if ($17) { + if ($18) { + $$25360 = $7;$$261 = 0; + } else { + return; + } + while(1) { + $42 = HEAP8[$$25360>>0]|0; + $43 = ((($$25360)) + 2|0); + $44 = HEAP8[$43>>0]|0; + HEAP8[$$25360>>0] = $44; + HEAP8[$43>>0] = $42; + $45 = ((($$25360)) + 4|0); + $46 = (($$261) + 1)|0; + $exitcond68 = ($46|0)==($5|0); + if ($exitcond68) { + break; + } else { + $$25360 = $45;$$261 = $46; + } + } + return; + } + if ($18) { + $$15263 = $7;$$164 = 0; + } else { + return; + } + while(1) { + $19 = ((($$15263)) + 3|0); + $20 = HEAP8[$19>>0]|0; + $21 = HEAP8[$$15263>>0]|0; + $22 = ($20<<24>>24)==(0); + $23 = ((($$15263)) + 2|0); + $24 = HEAP8[$23>>0]|0; + if ($22) { + HEAP8[$$15263>>0] = $24; + $$sink = $21; + } else { + $25 = $24&255; + $26 = ($25*255)|0; + $27 = $20&255; + $28 = (($26>>>0) / ($27>>>0))&-1; + $29 = $28&255; + HEAP8[$$15263>>0] = $29; + $30 = ((($$15263)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = ($32*255)|0; + $34 = (($33>>>0) / ($27>>>0))&-1; + $35 = $34&255; + HEAP8[$30>>0] = $35; + $36 = $21&255; + $37 = ($36*255)|0; + $38 = (($37>>>0) / ($27>>>0))&-1; + $39 = $38&255; + $$sink = $39; + } + HEAP8[$23>>0] = $$sink; + $40 = ((($$15263)) + 4|0); + $41 = (($$164) + 1)|0; + $exitcond69 = ($41|0)==($5|0); + if ($exitcond69) { + break; + } else { + $$15263 = $40;$$164 = $41; + } + } + return; + break; + } + default: { + ___assert_fail((9587|0),(9128|0),4650,(9605|0)); + // unreachable; + } + } +} +function _stbi__expand_png_palette($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0574 = 0, $$0583 = 0, $$1595 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_stbi__malloc_mad2($7,$2)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _stbi__err(9183); + $$0 = 0; + return ($$0|0); + } + $12 = ($2|0)==(3); + $13 = ($7|0)!=(0); + if ($12) { + if ($13) { + $$0574 = 0;$$0583 = $10; + while(1) { + $14 = (($9) + ($$0574)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = $16 << 2; + $18 = (($1) + ($17)|0); + $19 = HEAP8[$18>>0]|0; + HEAP8[$$0583>>0] = $19; + $20 = $17 | 1; + $21 = (($1) + ($20)|0); + $22 = HEAP8[$21>>0]|0; + $23 = ((($$0583)) + 1|0); + HEAP8[$23>>0] = $22; + $24 = $17 | 2; + $25 = (($1) + ($24)|0); + $26 = HEAP8[$25>>0]|0; + $27 = ((($$0583)) + 2|0); + HEAP8[$27>>0] = $26; + $28 = ((($$0583)) + 3|0); + $29 = (($$0574) + 1)|0; + $exitcond = ($29|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0574 = $29;$$0583 = $28; + } + } + } + } else { + if ($13) { + $$1595 = $10;$$16 = 0; + while(1) { + $30 = (($9) + ($$16)|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 << 2; + $34 = (($1) + ($33)|0); + $35 = HEAP8[$34>>0]|0; + HEAP8[$$1595>>0] = $35; + $36 = $33 | 1; + $37 = (($1) + ($36)|0); + $38 = HEAP8[$37>>0]|0; + $39 = ((($$1595)) + 1|0); + HEAP8[$39>>0] = $38; + $40 = $33 | 2; + $41 = (($1) + ($40)|0); + $42 = HEAP8[$41>>0]|0; + $43 = ((($$1595)) + 2|0); + HEAP8[$43>>0] = $42; + $44 = $33 | 3; + $45 = (($1) + ($44)|0); + $46 = HEAP8[$45>>0]|0; + $47 = ((($$1595)) + 3|0); + HEAP8[$47>>0] = $46; + $48 = ((($$1595)) + 4|0); + $49 = (($$16) + 1)|0; + $exitcond9 = ($49|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1595 = $48;$$16 = $49; + } + } + } + } + $50 = HEAP32[$8>>2]|0; + _free($50); + HEAP32[$8>>2] = $10; + $$0 = 1; + return ($$0|0); +} +function _stbi__malloc_mad2($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mad2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $$0 = 0; + return ($$0|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__malloc($4)|0); + $$0 = $5; + return ($$0|0); +} +function _stbi__mad2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mul2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $8 = 0; + $7 = $8&1; + return ($7|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__addsizes_valid($4)|0); + $6 = ($5|0)!=(0); + $8 = $6; + $7 = $8&1; + return ($7|0); +} +function _stbi__create_png_image_raw($0,$1,$2,$3,$4,$5,$6,$7) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + $7 = $7|0; + var $$0568 = 0, $$0568724 = 0, $$0568725 = 0, $$0571$lcssa = 0, $$0571715 = 0, $$0574$lcssa = 0, $$0574714 = 0, $$0577817 = 0, $$0588 = 0, $$0597 = 0, $$0608816 = 0, $$0611815 = 0, $$0614 = 0, $$0614793 = 0, $$0614796 = 0, $$0623814 = 0, $$0625734 = 0, $$0731 = 0, $$1 = 0, $$10635764 = 0; + var $$11$ph = 0, $$11636755 = 0, $$12747 = 0, $$13739 = 0, $$14$lcssa = 0, $$14713 = 0, $$15$lcssa = 0, $$15705 = 0, $$1572$lcssa = 0, $$1572707 = 0, $$1575$lcssa = 0, $$1575706 = 0, $$1578 = 0, $$16$lcssa = 0, $$1609 = 0, $$1612 = 0, $$1615 = 0, $$1615785 = 0, $$1615788 = 0, $$1624727 = 0; + var $$1626812 = 0, $$16700 = 0, $$1721 = 0, $$1722 = 0, $$2 = 0, $$2573$lcssa = 0, $$2573702 = 0, $$2579795 = 0, $$2599794 = 0, $$2616 = 0, $$2616776 = 0, $$2616780 = 0, $$2627810 = 0, $$3580787 = 0, $$3592778 = 0, $$3600786 = 0, $$3617 = 0, $$3617767 = 0, $$3617771 = 0, $$3628808 = 0; + var $$4$lcssa = 0, $$4581779 = 0, $$4593769 = 0, $$4601777 = 0, $$4618 = 0, $$4618758 = 0, $$4618762 = 0, $$4629806 = 0, $$4701 = 0, $$5582770 = 0, $$5594760 = 0, $$5602768 = 0, $$5619 = 0, $$5619750 = 0, $$5619753 = 0, $$5630804 = 0, $$6583761 = 0, $$6603759 = 0, $$6620 = 0, $$6620742 = 0; + var $$6620745 = 0, $$6631802 = 0, $$7584752 = 0, $$7604751 = 0, $$7621798 = 0, $$7632790 = 0, $$8585744 = 0, $$8605743 = 0, $$8622729 = 0, $$8633782 = 0, $$9586 = 0, $$9606799 = 0, $$9634773 = 0, $$not = 0, $$sink = 0, $$sink1 = 0, $$sink641 = 0, $10 = 0, $100 = 0, $101 = 0; + var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; + var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; + var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; + var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; + var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; + var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; + var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; + var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; + var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; + var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; + var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0; + var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0; + var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0; + var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0; + var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0; + var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0; + var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0; + var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0; + var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0; + var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0; + var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0; + var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0; + var $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0; + var $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0; + var $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0; + var $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0; + var $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0; + var $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0; + var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; + var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; + var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge894 = 0, $exitcond = 0, $exitcond864 = 0, $exitcond865 = 0, $exitcond867 = 0, $exitcond869 = 0, $exitcond871 = 0, $exitcond873 = 0, $exitcond875 = 0, $exitcond877 = 0, $exitcond880 = 0, $exitcond881 = 0, $exitcond882 = 0, $exitcond883 = 0, $exitcond884 = 0; + var $exitcond885 = 0, $exitcond886 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next849 = 0, $indvars$iv$next852 = 0, $indvars$iv$next855 = 0, $indvars$iv$next858 = 0, $indvars$iv$next861 = 0, $indvars$iv848 = 0, $indvars$iv851 = 0, $indvars$iv854 = 0, $indvars$iv857 = 0, $indvars$iv860 = 0, $or$cond = 0, $scevgep = 0, $scevgep850 = 0, $scevgep853 = 0, $scevgep856 = 0, $scevgep859 = 0; + var $scevgep862 = 0, $scevgep866 = 0, $scevgep868 = 0, $scevgep870 = 0, $scevgep872 = 0, $scevgep874 = 0, $scevgep876 = 0, $scevgep879 = 0, $trunc = 0, $trunc637 = 0, $trunc638 = 0, label = 0, sp = 0; + sp = STACKTOP; + $8 = ($6|0)==(16); + $9 = $8 ? 2 : 1; + $10 = HEAP32[$0>>2]|0; + $11 = Math_imul($4, $3)|0; + $12 = Math_imul($9, $11)|0; + $13 = ((($10)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = Math_imul($9, $3)|0; + $16 = Math_imul($14, $9)|0; + $17 = ($14|0)==($3|0); + $18 = (($14) + 1)|0; + $19 = ($18|0)==($3|0); + $or$cond = $17 | $19; + if (!($or$cond)) { + ___assert_fail((9702|0),(9128|0),4294,(9743|0)); + // unreachable; + } + $20 = (_stbi__malloc_mad3($4,$5,$15)|0); + $21 = ((($0)) + 12|0); + HEAP32[$21>>2] = $20; + $22 = ($20|0)==(0|0); + if ($22) { + _stbi__err(9183); + $$2 = 0; + return ($$2|0); + } + $23 = Math_imul($14, $4)|0; + $24 = Math_imul($23, $6)|0; + $25 = (($24) + 7)|0; + $26 = $25 >>> 3; + $27 = (($26) + 1)|0; + $28 = Math_imul($27, $5)|0; + $29 = HEAP32[$10>>2]|0; + $30 = ($29|0)==($4|0); + if ($30) { + $31 = ((($10)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($5|0); + if ($33) { + $34 = ($28|0)==($2|0); + if (!($34)) { + _stbi__err(9770); + $$2 = 0; + return ($$2|0); + } + } else { + label = 9; + } + } else { + label = 9; + } + if ((label|0) == 9) { + $35 = ($28>>>0)>($2>>>0); + if ($35) { + _stbi__err(9770); + $$2 = 0; + return ($$2|0); + } + } + $36 = ($5|0)==(0); + L18: do { + if (!($36)) { + $37 = ($6|0)<(8); + $38 = ($26>>>0)>($4>>>0); + $39 = (($11) - ($26))|0; + $40 = (0 - ($12))|0; + $41 = ($6|0)==(8); + $brmerge = $37 | $17; + $42 = ($4|0)==(0); + $$0614793 = (($4) + -1)|0; + $43 = ($$0614793|0)==(0); + $$1615785 = (($4) + -1)|0; + $44 = ($$1615785|0)==(0); + $$2616776 = (($4) + -1)|0; + $45 = ($$2616776|0)==(0); + $$3617767 = (($4) + -1)|0; + $46 = ($$3617767|0)==(0); + $$4618758 = (($4) + -1)|0; + $47 = ($$4618758|0)==(0); + $$5619750 = (($4) + -1)|0; + $48 = ($$5619750|0)==(0); + $$6620742 = (($4) + -1)|0; + $49 = ($$6620742|0)==(0); + $$not = $8 ^ 1; + $brmerge894 = $42 | $$not; + $$0577817 = $1;$$0608816 = $4;$$0611815 = $16;$$0623814 = 0; + while(1) { + $50 = HEAP32[$21>>2]|0; + $51 = Math_imul($$0623814, $12)|0; + $52 = (($50) + ($51)|0); + $53 = ((($$0577817)) + 1|0); + $54 = HEAP8[$$0577817>>0]|0; + $55 = $54&255; + $56 = ($54&255)>(4); + if ($56) { + label = 105; + break; + } + if ($37) { + if ($38) { + label = 16; + break; + } + $57 = (($52) + ($39)|0); + $$0597 = $57;$$1609 = $26;$$1612 = 1; + } else { + $$0597 = $52;$$1609 = $$0608816;$$1612 = $$0611815; + } + $58 = (($$0597) + ($40)|0); + $59 = ($$0623814|0)==(0); + if ($59) { + $60 = (9809 + ($55)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $$0588 = $62; + } else { + $$0588 = $55; + } + $63 = ($$1612|0)>(0); + L30: do { + if ($63) { + $trunc638 = $$0588&255; + $$0625734 = 0; + while(1) { + switch ($trunc638<<24>>24) { + case 0: { + $64 = (($53) + ($$0625734)|0); + $65 = HEAP8[$64>>0]|0; + $$sink = $65; + label = 30; + break; + } + case 1: { + $66 = (($53) + ($$0625734)|0); + $67 = HEAP8[$66>>0]|0; + $$sink = $67; + label = 30; + break; + } + case 2: { + $68 = (($53) + ($$0625734)|0); + $69 = HEAP8[$68>>0]|0; + $70 = $69&255; + $71 = (($58) + ($$0625734)|0); + $72 = HEAP8[$71>>0]|0; + $73 = $72&255; + $74 = (($73) + ($70))|0; + $75 = $74&255; + $$sink = $75; + label = 30; + break; + } + case 3: { + $76 = (($53) + ($$0625734)|0); + $77 = HEAP8[$76>>0]|0; + $78 = $77&255; + $79 = (($58) + ($$0625734)|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = $81 >>> 1; + $83 = (($82) + ($78))|0; + $84 = $83&255; + $$sink = $84; + label = 30; + break; + } + case 4: { + $85 = (($53) + ($$0625734)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $86&255; + $88 = (($58) + ($$0625734)|0); + $89 = HEAP8[$88>>0]|0; + $90 = $89&255; + $91 = (_stbi__paeth(0,$90,0)|0); + $92 = (($91) + ($87))|0; + $93 = $92&255; + $$sink = $93; + label = 30; + break; + } + case 5: { + $94 = (($53) + ($$0625734)|0); + $95 = HEAP8[$94>>0]|0; + $$sink = $95; + label = 30; + break; + } + case 6: { + $96 = (($53) + ($$0625734)|0); + $97 = HEAP8[$96>>0]|0; + $$sink = $97; + label = 30; + break; + } + default: { + } + } + if ((label|0) == 30) { + label = 0; + $$sink1 = (($$0597) + ($$0625734)|0); + HEAP8[$$sink1>>0] = $$sink; + } + $98 = (($$0625734) + 1)|0; + $exitcond864 = ($98|0)==($$1612|0); + if ($exitcond864) { + break L30; + } else { + $$0625734 = $98; + } + } + } + } while(0); + do { + if ($41) { + if (!($17)) { + $99 = (($$0597) + ($14)|0); + HEAP8[$99>>0] = -1; + } + $100 = (($53) + ($14)|0); + $$1578 = $100;$$sink641 = $3; + } else { + if (!($8)) { + $105 = ((($$0577817)) + 2|0); + $$1578 = $105;$$sink641 = 1; + break; + } + if (!($17)) { + $101 = (($$1612) + 1)|0; + $102 = (($$0597) + ($101)|0); + $103 = (($$0597) + ($$1612)|0); + HEAP8[$103>>0] = -1; + HEAP8[$102>>0] = -1; + } + $104 = (($53) + ($$1612)|0); + $$1578 = $104;$$sink641 = $15; + } + } while(0); + $106 = (($$0597) + ($$sink641)|0); + $107 = (($58) + ($$sink641)|0); + if ($brmerge) { + $108 = (($$1609) + -1)|0; + $109 = Math_imul($108, $$1612)|0; + $trunc637 = $$0588&255; + switch ($trunc637<<24>>24) { + case 0: { + _memcpy(($106|0),($$1578|0),($109|0))|0; + break; + } + case 1: { + $115 = ($109|0)>(0); + if ($115) { + $$1626812 = 0; + while(1) { + $116 = (($$1578) + ($$1626812)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = (($$1626812) - ($$1612))|0; + $120 = (($106) + ($119)|0); + $121 = HEAP8[$120>>0]|0; + $122 = $121&255; + $123 = (($122) + ($118))|0; + $124 = $123&255; + $125 = (($106) + ($$1626812)|0); + HEAP8[$125>>0] = $124; + $126 = (($$1626812) + 1)|0; + $exitcond886 = ($126|0)==($109|0); + if ($exitcond886) { + break; + } else { + $$1626812 = $126; + } + } + } + break; + } + case 2: { + $114 = ($109|0)>(0); + if ($114) { + $$2627810 = 0; + while(1) { + $127 = (($$1578) + ($$2627810)|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = (($107) + ($$2627810)|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = (($132) + ($129))|0; + $134 = $133&255; + $135 = (($106) + ($$2627810)|0); + HEAP8[$135>>0] = $134; + $136 = (($$2627810) + 1)|0; + $exitcond885 = ($136|0)==($109|0); + if ($exitcond885) { + break; + } else { + $$2627810 = $136; + } + } + } + break; + } + case 3: { + $113 = ($109|0)>(0); + if ($113) { + $$3628808 = 0; + while(1) { + $137 = (($$1578) + ($$3628808)|0); + $138 = HEAP8[$137>>0]|0; + $139 = $138&255; + $140 = (($107) + ($$3628808)|0); + $141 = HEAP8[$140>>0]|0; + $142 = $141&255; + $143 = (($$3628808) - ($$1612))|0; + $144 = (($106) + ($143)|0); + $145 = HEAP8[$144>>0]|0; + $146 = $145&255; + $147 = (($146) + ($142))|0; + $148 = $147 >>> 1; + $149 = (($148) + ($139))|0; + $150 = $149&255; + $151 = (($106) + ($$3628808)|0); + HEAP8[$151>>0] = $150; + $152 = (($$3628808) + 1)|0; + $exitcond884 = ($152|0)==($109|0); + if ($exitcond884) { + break; + } else { + $$3628808 = $152; + } + } + } + break; + } + case 4: { + $112 = ($109|0)>(0); + if ($112) { + $$4629806 = 0; + while(1) { + $153 = (($$1578) + ($$4629806)|0); + $154 = HEAP8[$153>>0]|0; + $155 = $154&255; + $156 = (($$4629806) - ($$1612))|0; + $157 = (($106) + ($156)|0); + $158 = HEAP8[$157>>0]|0; + $159 = $158&255; + $160 = (($107) + ($$4629806)|0); + $161 = HEAP8[$160>>0]|0; + $162 = $161&255; + $163 = (($107) + ($156)|0); + $164 = HEAP8[$163>>0]|0; + $165 = $164&255; + $166 = (_stbi__paeth($159,$162,$165)|0); + $167 = (($166) + ($155))|0; + $168 = $167&255; + $169 = (($106) + ($$4629806)|0); + HEAP8[$169>>0] = $168; + $170 = (($$4629806) + 1)|0; + $exitcond883 = ($170|0)==($109|0); + if ($exitcond883) { + break; + } else { + $$4629806 = $170; + } + } + } + break; + } + case 5: { + $111 = ($109|0)>(0); + if ($111) { + $$5630804 = 0; + while(1) { + $171 = (($$1578) + ($$5630804)|0); + $172 = HEAP8[$171>>0]|0; + $173 = $172&255; + $174 = (($$5630804) - ($$1612))|0; + $175 = (($106) + ($174)|0); + $176 = HEAP8[$175>>0]|0; + $177 = $176&255; + $178 = $177 >>> 1; + $179 = (($178) + ($173))|0; + $180 = $179&255; + $181 = (($106) + ($$5630804)|0); + HEAP8[$181>>0] = $180; + $182 = (($$5630804) + 1)|0; + $exitcond882 = ($182|0)==($109|0); + if ($exitcond882) { + break; + } else { + $$5630804 = $182; + } + } + } + break; + } + case 6: { + $110 = ($109|0)>(0); + if ($110) { + $$6631802 = 0; + while(1) { + $183 = (($$1578) + ($$6631802)|0); + $184 = HEAP8[$183>>0]|0; + $185 = $184&255; + $186 = (($$6631802) - ($$1612))|0; + $187 = (($106) + ($186)|0); + $188 = HEAP8[$187>>0]|0; + $189 = $188&255; + $190 = (_stbi__paeth($189,0,0)|0); + $191 = (($190) + ($185))|0; + $192 = $191&255; + $193 = (($106) + ($$6631802)|0); + HEAP8[$193>>0] = $192; + $194 = (($$6631802) + 1)|0; + $exitcond881 = ($194|0)==($109|0); + if ($exitcond881) { + break; + } else { + $$6631802 = $194; + } + } + } + break; + } + default: { + } + } + $195 = (($$1578) + ($109)|0); + $$11$ph = $195; + } else { + if (!($19)) { + label = 58; + break; + } + $trunc = $$0588&255; + switch ($trunc<<24>>24) { + case 0: { + if ($43) { + $$9586 = $$1578; + } else { + $208 = ($$1612|0)>(0); + $209 = Math_imul($$6620742, $$1612)|0; + $$0614796 = $$0614793;$$2579795 = $$1578;$$2599794 = $106; + while(1) { + if ($208) { + $$7632790 = 0; + while(1) { + $210 = (($$2579795) + ($$7632790)|0); + $211 = HEAP8[$210>>0]|0; + $212 = (($$2599794) + ($$7632790)|0); + HEAP8[$212>>0] = $211; + $213 = (($$7632790) + 1)|0; + $exitcond877 = ($213|0)==($$1612|0); + if ($exitcond877) { + break; + } else { + $$7632790 = $213; + } + } + } + $214 = (($$2599794) + ($$1612)|0); + HEAP8[$214>>0] = -1; + $215 = (($$2579795) + ($$1612)|0); + $216 = (($$2599794) + ($15)|0); + $$0614 = (($$0614796) + -1)|0; + $217 = ($$0614|0)==(0); + if ($217) { + break; + } else { + $$0614796 = $$0614;$$2579795 = $215;$$2599794 = $216; + } + } + $scevgep879 = (($$1578) + ($209)|0); + $$9586 = $scevgep879; + } + break; + } + case 1: { + if ($44) { + $$9586 = $$1578; + } else { + $206 = ($$1612|0)>(0); + $207 = Math_imul($$6620742, $$1612)|0; + $$1615788 = $$1615785;$$3580787 = $$1578;$$3600786 = $106; + while(1) { + if ($206) { + $$8633782 = 0; + while(1) { + $218 = (($$3580787) + ($$8633782)|0); + $219 = HEAP8[$218>>0]|0; + $220 = $219&255; + $221 = (($$8633782) - ($15))|0; + $222 = (($$3600786) + ($221)|0); + $223 = HEAP8[$222>>0]|0; + $224 = $223&255; + $225 = (($224) + ($220))|0; + $226 = $225&255; + $227 = (($$3600786) + ($$8633782)|0); + HEAP8[$227>>0] = $226; + $228 = (($$8633782) + 1)|0; + $exitcond875 = ($228|0)==($$1612|0); + if ($exitcond875) { + break; + } else { + $$8633782 = $228; + } + } + } + $229 = (($$3600786) + ($$1612)|0); + HEAP8[$229>>0] = -1; + $230 = (($$3580787) + ($$1612)|0); + $231 = (($$3600786) + ($15)|0); + $$1615 = (($$1615788) + -1)|0; + $232 = ($$1615|0)==(0); + if ($232) { + break; + } else { + $$1615788 = $$1615;$$3580787 = $230;$$3600786 = $231; + } + } + $scevgep876 = (($$1578) + ($207)|0); + $$9586 = $scevgep876; + } + break; + } + case 2: { + if ($45) { + $$9586 = $$1578; + } else { + $204 = ($$1612|0)>(0); + $205 = Math_imul($$6620742, $$1612)|0; + $$2616780 = $$2616776;$$3592778 = $107;$$4581779 = $$1578;$$4601777 = $106; + while(1) { + if ($204) { + $$9634773 = 0; + while(1) { + $233 = (($$4581779) + ($$9634773)|0); + $234 = HEAP8[$233>>0]|0; + $235 = $234&255; + $236 = (($$3592778) + ($$9634773)|0); + $237 = HEAP8[$236>>0]|0; + $238 = $237&255; + $239 = (($238) + ($235))|0; + $240 = $239&255; + $241 = (($$4601777) + ($$9634773)|0); + HEAP8[$241>>0] = $240; + $242 = (($$9634773) + 1)|0; + $exitcond873 = ($242|0)==($$1612|0); + if ($exitcond873) { + break; + } else { + $$9634773 = $242; + } + } + } + $243 = (($$4601777) + ($$1612)|0); + HEAP8[$243>>0] = -1; + $244 = (($$4581779) + ($$1612)|0); + $245 = (($$4601777) + ($15)|0); + $246 = (($$3592778) + ($15)|0); + $$2616 = (($$2616780) + -1)|0; + $247 = ($$2616|0)==(0); + if ($247) { + break; + } else { + $$2616780 = $$2616;$$3592778 = $246;$$4581779 = $244;$$4601777 = $245; + } + } + $scevgep874 = (($$1578) + ($205)|0); + $$9586 = $scevgep874; + } + break; + } + case 3: { + if ($46) { + $$9586 = $$1578; + } else { + $202 = ($$1612|0)>(0); + $203 = Math_imul($$6620742, $$1612)|0; + $$3617771 = $$3617767;$$4593769 = $107;$$5582770 = $$1578;$$5602768 = $106; + while(1) { + if ($202) { + $$10635764 = 0; + while(1) { + $248 = (($$5582770) + ($$10635764)|0); + $249 = HEAP8[$248>>0]|0; + $250 = $249&255; + $251 = (($$4593769) + ($$10635764)|0); + $252 = HEAP8[$251>>0]|0; + $253 = $252&255; + $254 = (($$10635764) - ($15))|0; + $255 = (($$5602768) + ($254)|0); + $256 = HEAP8[$255>>0]|0; + $257 = $256&255; + $258 = (($257) + ($253))|0; + $259 = $258 >>> 1; + $260 = (($259) + ($250))|0; + $261 = $260&255; + $262 = (($$5602768) + ($$10635764)|0); + HEAP8[$262>>0] = $261; + $263 = (($$10635764) + 1)|0; + $exitcond871 = ($263|0)==($$1612|0); + if ($exitcond871) { + break; + } else { + $$10635764 = $263; + } + } + } + $264 = (($$5602768) + ($$1612)|0); + HEAP8[$264>>0] = -1; + $265 = (($$5582770) + ($$1612)|0); + $266 = (($$5602768) + ($15)|0); + $267 = (($$4593769) + ($15)|0); + $$3617 = (($$3617771) + -1)|0; + $268 = ($$3617|0)==(0); + if ($268) { + break; + } else { + $$3617771 = $$3617;$$4593769 = $267;$$5582770 = $265;$$5602768 = $266; + } + } + $scevgep872 = (($$1578) + ($203)|0); + $$9586 = $scevgep872; + } + break; + } + case 4: { + if ($47) { + $$9586 = $$1578; + } else { + $200 = ($$1612|0)>(0); + $201 = Math_imul($$6620742, $$1612)|0; + $$4618762 = $$4618758;$$5594760 = $107;$$6583761 = $$1578;$$6603759 = $106; + while(1) { + if ($200) { + $$11636755 = 0; + while(1) { + $269 = (($$6583761) + ($$11636755)|0); + $270 = HEAP8[$269>>0]|0; + $271 = $270&255; + $272 = (($$11636755) - ($15))|0; + $273 = (($$6603759) + ($272)|0); + $274 = HEAP8[$273>>0]|0; + $275 = $274&255; + $276 = (($$5594760) + ($$11636755)|0); + $277 = HEAP8[$276>>0]|0; + $278 = $277&255; + $279 = (($$5594760) + ($272)|0); + $280 = HEAP8[$279>>0]|0; + $281 = $280&255; + $282 = (_stbi__paeth($275,$278,$281)|0); + $283 = (($282) + ($271))|0; + $284 = $283&255; + $285 = (($$6603759) + ($$11636755)|0); + HEAP8[$285>>0] = $284; + $286 = (($$11636755) + 1)|0; + $exitcond869 = ($286|0)==($$1612|0); + if ($exitcond869) { + break; + } else { + $$11636755 = $286; + } + } + } + $287 = (($$6603759) + ($$1612)|0); + HEAP8[$287>>0] = -1; + $288 = (($$6583761) + ($$1612)|0); + $289 = (($$6603759) + ($15)|0); + $290 = (($$5594760) + ($15)|0); + $$4618 = (($$4618762) + -1)|0; + $291 = ($$4618|0)==(0); + if ($291) { + break; + } else { + $$4618762 = $$4618;$$5594760 = $290;$$6583761 = $288;$$6603759 = $289; + } + } + $scevgep870 = (($$1578) + ($201)|0); + $$9586 = $scevgep870; + } + break; + } + case 5: { + if ($48) { + $$9586 = $$1578; + } else { + $198 = ($$1612|0)>(0); + $199 = Math_imul($$6620742, $$1612)|0; + $$5619753 = $$5619750;$$7584752 = $$1578;$$7604751 = $106; + while(1) { + if ($198) { + $$12747 = 0; + while(1) { + $292 = (($$7584752) + ($$12747)|0); + $293 = HEAP8[$292>>0]|0; + $294 = $293&255; + $295 = (($$12747) - ($15))|0; + $296 = (($$7604751) + ($295)|0); + $297 = HEAP8[$296>>0]|0; + $298 = $297&255; + $299 = $298 >>> 1; + $300 = (($299) + ($294))|0; + $301 = $300&255; + $302 = (($$7604751) + ($$12747)|0); + HEAP8[$302>>0] = $301; + $303 = (($$12747) + 1)|0; + $exitcond867 = ($303|0)==($$1612|0); + if ($exitcond867) { + break; + } else { + $$12747 = $303; + } + } + } + $304 = (($$7604751) + ($$1612)|0); + HEAP8[$304>>0] = -1; + $305 = (($$7584752) + ($$1612)|0); + $306 = (($$7604751) + ($15)|0); + $$5619 = (($$5619753) + -1)|0; + $307 = ($$5619|0)==(0); + if ($307) { + break; + } else { + $$5619753 = $$5619;$$7584752 = $305;$$7604751 = $306; + } + } + $scevgep868 = (($$1578) + ($199)|0); + $$9586 = $scevgep868; + } + break; + } + case 6: { + if ($49) { + $$9586 = $$1578; + } else { + $196 = ($$1612|0)>(0); + $197 = Math_imul($$6620742, $$1612)|0; + $$6620745 = $$6620742;$$8585744 = $$1578;$$8605743 = $106; + while(1) { + if ($196) { + $$13739 = 0; + while(1) { + $308 = (($$8585744) + ($$13739)|0); + $309 = HEAP8[$308>>0]|0; + $310 = $309&255; + $311 = (($$13739) - ($15))|0; + $312 = (($$8605743) + ($311)|0); + $313 = HEAP8[$312>>0]|0; + $314 = $313&255; + $315 = (_stbi__paeth($314,0,0)|0); + $316 = (($315) + ($310))|0; + $317 = $316&255; + $318 = (($$8605743) + ($$13739)|0); + HEAP8[$318>>0] = $317; + $319 = (($$13739) + 1)|0; + $exitcond865 = ($319|0)==($$1612|0); + if ($exitcond865) { + break; + } else { + $$13739 = $319; + } + } + } + $320 = (($$8605743) + ($$1612)|0); + HEAP8[$320>>0] = -1; + $321 = (($$8585744) + ($$1612)|0); + $322 = (($$8605743) + ($15)|0); + $$6620 = (($$6620745) + -1)|0; + $323 = ($$6620|0)==(0); + if ($323) { + break; + } else { + $$6620745 = $$6620;$$8585744 = $321;$$8605743 = $322; + } + } + $scevgep866 = (($$1578) + ($197)|0); + $$9586 = $scevgep866; + } + break; + } + default: { + $$9586 = $$1578; + } + } + if ($brmerge894) { + $$11$ph = $$9586; + } else { + $324 = HEAP32[$21>>2]|0; + $325 = (($324) + ($51)|0); + $326 = (($$1612) + 1)|0; + $$7621798 = 0;$$9606799 = $325; + while(1) { + $327 = (($$9606799) + ($326)|0); + HEAP8[$327>>0] = -1; + $328 = (($$7621798) + 1)|0; + $329 = (($$9606799) + ($15)|0); + $exitcond880 = ($328|0)==($4|0); + if ($exitcond880) { + $$11$ph = $$9586; + break; + } else { + $$7621798 = $328;$$9606799 = $329; + } + } + } + } + $330 = (($$0623814) + 1)|0; + $331 = ($330>>>0)<($5>>>0); + if ($331) { + $$0577817 = $$11$ph;$$0608816 = $$1609;$$0611815 = $$1612;$$0623814 = $330; + } else { + break L18; + } + } + if ((label|0) == 16) { + ___assert_fail((9788|0),(9128|0),4315,(9743|0)); + // unreachable; + } + else if ((label|0) == 58) { + ___assert_fail((9814|0),(9128|0),4377,(9743|0)); + // unreachable; + } + else if ((label|0) == 105) { + _stbi__err(9831); + $$2 = 0; + return ($$2|0); + } + } + } while(0); + $332 = ($6|0)<(8); + if (!($332)) { + if (!($8)) { + $$2 = 1; + return ($$2|0); + } + $601 = Math_imul($4, $3)|0; + $602 = Math_imul($601, $5)|0; + $603 = ($602|0)==(0); + if ($603) { + $$2 = 1; + return ($$2|0); + } + $604 = HEAP32[$21>>2]|0; + $$0731 = $604;$$8622729 = 0; + while(1) { + $605 = HEAP8[$$0731>>0]|0; + $606 = $605&255; + $607 = $606 << 8; + $608 = ((($$0731)) + 1|0); + $609 = HEAP8[$608>>0]|0; + $610 = $609&255; + $611 = $607 | $610; + $612 = $611&65535; + HEAP16[$$0731>>1] = $612; + $613 = (($$8622729) + 1)|0; + $614 = ((($$0731)) + 2|0); + $exitcond = ($613|0)==($602|0); + if ($exitcond) { + $$2 = 1; + break; + } else { + $$0731 = $614;$$8622729 = $613; + } + } + return ($$2|0); + } + $333 = ($5|0)==(0); + if ($333) { + $$2 = 1; + return ($$2|0); + } + $334 = (0 - ($26))|0; + $335 = ($7|0)==(0); + $336 = (9527 + ($6)|0); + $$0568724 = (($4) + -1)|0; + $337 = ($$0568724|0)>(-1); + $$1721 = (($4) + -1)|0; + $338 = ($$1721|0)>(-1); + $339 = ($23|0)>(1); + $340 = ($23|0)>(3); + $341 = ($23|0)>(7); + $342 = (($23) + -8)|0; + $343 = $342 >>> 3; + $344 = $343 << 3; + $345 = (($344) + 8)|0; + $346 = (($342) - ($344))|0; + $347 = (($343) + ($11))|0; + $348 = (($347) + 1)|0; + $349 = (($348) - ($26))|0; + $350 = (($23) + -4)|0; + $351 = $350 >>> 2; + $352 = $351 << 2; + $353 = (($352) + 4)|0; + $354 = (($350) - ($352))|0; + $355 = (($351) + ($11))|0; + $356 = (($355) + 1)|0; + $357 = (($356) - ($26))|0; + $358 = (($23) + -2)|0; + $359 = $358 >>> 1; + $360 = $359 << 1; + $361 = (($360) + 2)|0; + $362 = (($358) - ($360))|0; + $363 = (($359) + ($11))|0; + $364 = (($363) + 1)|0; + $365 = (($364) - ($26))|0; + $$1624727 = 0;$indvars$iv = $345;$indvars$iv848 = $349;$indvars$iv851 = $353;$indvars$iv854 = $357;$indvars$iv857 = $361;$indvars$iv860 = $365; + L174: while(1) { + $366 = HEAP32[$21>>2]|0; + $367 = Math_imul($$1624727, $12)|0; + $368 = (($366) + ($367)|0); + $369 = (($368) + ($11)|0); + $370 = (($369) + ($334)|0); + if ($335) { + $371 = HEAP8[$336>>0]|0; + $372 = $371&255; + $377 = $372; + } else { + $377 = 1; + } + switch ($6|0) { + case 4: { + if ($339) { + $scevgep859 = (($366) + ($indvars$iv857)|0); + $$0571715 = $370;$$0574714 = $368;$$14713 = $23; + while(1) { + $373 = HEAP8[$$0571715>>0]|0; + $374 = $373&255; + $375 = $374 >>> 4; + $376 = Math_imul($375, $377)|0; + $378 = $376&255; + $379 = ((($$0574714)) + 1|0); + HEAP8[$$0574714>>0] = $378; + $380 = HEAP8[$$0571715>>0]|0; + $381 = $380 & 15; + $382 = $381&255; + $383 = Math_imul($382, $377)|0; + $384 = $383&255; + $385 = ((($$0574714)) + 2|0); + HEAP8[$379>>0] = $384; + $386 = (($$14713) + -2)|0; + $387 = ((($$0571715)) + 1|0); + $388 = ($386|0)>(1); + if ($388) { + $$0571715 = $387;$$0574714 = $385;$$14713 = $386; + } else { + break; + } + } + $scevgep862 = (($366) + ($indvars$iv860)|0); + $$0571$lcssa = $scevgep862;$$0574$lcssa = $scevgep859;$$14$lcssa = $362; + } else { + $$0571$lcssa = $370;$$0574$lcssa = $368;$$14$lcssa = $23; + } + $389 = ($$14$lcssa|0)==(1); + if ($389) { + $390 = HEAP8[$$0571$lcssa>>0]|0; + $391 = $390&255; + $392 = $391 >>> 4; + $393 = Math_imul($392, $377)|0; + $394 = $393&255; + HEAP8[$$0574$lcssa>>0] = $394; + } + break; + } + case 2: { + if ($340) { + $scevgep853 = (($366) + ($indvars$iv851)|0); + $$15705 = $23;$$1572707 = $370;$$1575706 = $368; + while(1) { + $395 = HEAP8[$$1572707>>0]|0; + $396 = $395&255; + $397 = $396 >>> 6; + $398 = Math_imul($397, $377)|0; + $399 = $398&255; + $400 = ((($$1575706)) + 1|0); + HEAP8[$$1575706>>0] = $399; + $401 = HEAP8[$$1572707>>0]|0; + $402 = $401&255; + $403 = $402 >>> 4; + $404 = $403 & 3; + $405 = Math_imul($404, $377)|0; + $406 = $405&255; + $407 = ((($$1575706)) + 2|0); + HEAP8[$400>>0] = $406; + $408 = HEAP8[$$1572707>>0]|0; + $409 = $408&255; + $410 = $409 >>> 2; + $411 = $410 & 3; + $412 = Math_imul($411, $377)|0; + $413 = $412&255; + $414 = ((($$1575706)) + 3|0); + HEAP8[$407>>0] = $413; + $415 = HEAP8[$$1572707>>0]|0; + $416 = $415 & 3; + $417 = $416&255; + $418 = Math_imul($417, $377)|0; + $419 = $418&255; + $420 = ((($$1575706)) + 4|0); + HEAP8[$414>>0] = $419; + $421 = (($$15705) + -4)|0; + $422 = ((($$1572707)) + 1|0); + $423 = ($421|0)>(3); + if ($423) { + $$15705 = $421;$$1572707 = $422;$$1575706 = $420; + } else { + break; + } + } + $scevgep856 = (($366) + ($indvars$iv854)|0); + $$15$lcssa = $354;$$1572$lcssa = $scevgep856;$$1575$lcssa = $scevgep853; + } else { + $$15$lcssa = $23;$$1572$lcssa = $370;$$1575$lcssa = $368; + } + $424 = ($$15$lcssa|0)>(0); + if ($424) { + $425 = HEAP8[$$1572$lcssa>>0]|0; + $426 = $425&255; + $427 = $426 >>> 6; + $428 = Math_imul($427, $377)|0; + $429 = $428&255; + HEAP8[$$1575$lcssa>>0] = $429; + $430 = ($$15$lcssa|0)==(1); + if (!($430)) { + $431 = ((($$1575$lcssa)) + 1|0); + $432 = HEAP8[$$1572$lcssa>>0]|0; + $433 = $432&255; + $434 = $433 >>> 4; + $435 = $434 & 3; + $436 = Math_imul($435, $377)|0; + $437 = $436&255; + HEAP8[$431>>0] = $437; + $438 = ($$15$lcssa|0)>(2); + if ($438) { + $439 = ((($$1575$lcssa)) + 2|0); + $440 = HEAP8[$$1572$lcssa>>0]|0; + $441 = $440&255; + $442 = $441 >>> 2; + $443 = $442 & 3; + $444 = Math_imul($443, $377)|0; + $445 = $444&255; + HEAP8[$439>>0] = $445; + } + } + } + break; + } + case 1: { + if ($341) { + $scevgep = (($366) + ($indvars$iv)|0); + $$16700 = $23;$$2573702 = $370;$$4701 = $368; + while(1) { + $446 = HEAP8[$$2573702>>0]|0; + $447 = $446&255; + $448 = $447 >>> 7; + $449 = (0 - ($448))|0; + $450 = $377 & $449; + $451 = $450&255; + $452 = ((($$4701)) + 1|0); + HEAP8[$$4701>>0] = $451; + $453 = HEAP8[$$2573702>>0]|0; + $454 = $453&255; + $455 = $454 >>> 6; + $456 = $455 & 1; + $457 = (0 - ($456))|0; + $458 = $377 & $457; + $459 = $458&255; + $460 = ((($$4701)) + 2|0); + HEAP8[$452>>0] = $459; + $461 = HEAP8[$$2573702>>0]|0; + $462 = $461&255; + $463 = $462 >>> 5; + $464 = $463 & 1; + $465 = (0 - ($464))|0; + $466 = $377 & $465; + $467 = $466&255; + $468 = ((($$4701)) + 3|0); + HEAP8[$460>>0] = $467; + $469 = HEAP8[$$2573702>>0]|0; + $470 = $469&255; + $471 = $470 >>> 4; + $472 = $471 & 1; + $473 = (0 - ($472))|0; + $474 = $377 & $473; + $475 = $474&255; + $476 = ((($$4701)) + 4|0); + HEAP8[$468>>0] = $475; + $477 = HEAP8[$$2573702>>0]|0; + $478 = $477&255; + $479 = $478 >>> 3; + $480 = $479 & 1; + $481 = (0 - ($480))|0; + $482 = $377 & $481; + $483 = $482&255; + $484 = ((($$4701)) + 5|0); + HEAP8[$476>>0] = $483; + $485 = HEAP8[$$2573702>>0]|0; + $486 = $485&255; + $487 = $486 >>> 2; + $488 = $487 & 1; + $489 = (0 - ($488))|0; + $490 = $377 & $489; + $491 = $490&255; + $492 = ((($$4701)) + 6|0); + HEAP8[$484>>0] = $491; + $493 = HEAP8[$$2573702>>0]|0; + $494 = $493&255; + $495 = $494 >>> 1; + $496 = $495 & 1; + $497 = (0 - ($496))|0; + $498 = $377 & $497; + $499 = $498&255; + $500 = ((($$4701)) + 7|0); + HEAP8[$492>>0] = $499; + $501 = HEAP8[$$2573702>>0]|0; + $502 = $501 & 1; + $503 = $502&255; + $504 = (0 - ($503))|0; + $505 = $377 & $504; + $506 = $505&255; + $507 = ((($$4701)) + 8|0); + HEAP8[$500>>0] = $506; + $508 = (($$16700) + -8)|0; + $509 = ((($$2573702)) + 1|0); + $510 = ($508|0)>(7); + if ($510) { + $$16700 = $508;$$2573702 = $509;$$4701 = $507; + } else { + break; + } + } + $scevgep850 = (($366) + ($indvars$iv848)|0); + $$16$lcssa = $346;$$2573$lcssa = $scevgep850;$$4$lcssa = $scevgep; + } else { + $$16$lcssa = $23;$$2573$lcssa = $370;$$4$lcssa = $368; + } + $511 = ($$16$lcssa|0)>(0); + if ($511) { + $512 = HEAP8[$$2573$lcssa>>0]|0; + $513 = $512&255; + $514 = $513 >>> 7; + $515 = (0 - ($514))|0; + $516 = $377 & $515; + $517 = $516&255; + HEAP8[$$4$lcssa>>0] = $517; + $518 = ($$16$lcssa|0)==(1); + if (!($518)) { + $519 = ((($$4$lcssa)) + 1|0); + $520 = HEAP8[$$2573$lcssa>>0]|0; + $521 = $520&255; + $522 = $521 >>> 6; + $523 = $522 & 1; + $524 = (0 - ($523))|0; + $525 = $377 & $524; + $526 = $525&255; + HEAP8[$519>>0] = $526; + $527 = ($$16$lcssa|0)>(2); + if ($527) { + $528 = ((($$4$lcssa)) + 2|0); + $529 = HEAP8[$$2573$lcssa>>0]|0; + $530 = $529&255; + $531 = $530 >>> 5; + $532 = $531 & 1; + $533 = (0 - ($532))|0; + $534 = $377 & $533; + $535 = $534&255; + HEAP8[$528>>0] = $535; + $536 = ($$16$lcssa|0)==(3); + if (!($536)) { + $537 = ((($$4$lcssa)) + 3|0); + $538 = HEAP8[$$2573$lcssa>>0]|0; + $539 = $538&255; + $540 = $539 >>> 4; + $541 = $540 & 1; + $542 = (0 - ($541))|0; + $543 = $377 & $542; + $544 = $543&255; + HEAP8[$537>>0] = $544; + $545 = ($$16$lcssa|0)>(4); + if ($545) { + $546 = ((($$4$lcssa)) + 4|0); + $547 = HEAP8[$$2573$lcssa>>0]|0; + $548 = $547&255; + $549 = $548 >>> 3; + $550 = $549 & 1; + $551 = (0 - ($550))|0; + $552 = $377 & $551; + $553 = $552&255; + HEAP8[$546>>0] = $553; + $554 = ($$16$lcssa|0)==(5); + if (!($554)) { + $555 = ((($$4$lcssa)) + 5|0); + $556 = HEAP8[$$2573$lcssa>>0]|0; + $557 = $556&255; + $558 = $557 >>> 2; + $559 = $558 & 1; + $560 = (0 - ($559))|0; + $561 = $377 & $560; + $562 = $561&255; + HEAP8[$555>>0] = $562; + $563 = ($$16$lcssa|0)>(6); + if ($563) { + $564 = ((($$4$lcssa)) + 6|0); + $565 = HEAP8[$$2573$lcssa>>0]|0; + $566 = $565&255; + $567 = $566 >>> 1; + $568 = $567 & 1; + $569 = (0 - ($568))|0; + $570 = $377 & $569; + $571 = $570&255; + HEAP8[$564>>0] = $571; + } + } + } + } + } + } + } + break; + } + default: { + } + } + L213: do { + if (!($17)) { + $572 = HEAP32[$21>>2]|0; + $573 = (($572) + ($367)|0); + switch ($14|0) { + case 1: { + if ($337) { + $$0568725 = $$0568724; + } else { + break L213; + } + while(1) { + $574 = $$0568725 << 1; + $575 = $574 | 1; + $576 = (($573) + ($575)|0); + HEAP8[$576>>0] = -1; + $577 = (($573) + ($$0568725)|0); + $578 = HEAP8[$577>>0]|0; + $579 = (($573) + ($574)|0); + HEAP8[$579>>0] = $578; + $$0568 = (($$0568725) + -1)|0; + $580 = ($$0568|0)>(-1); + if ($580) { + $$0568725 = $$0568; + } else { + break; + } + } + break; + } + case 3: { + if ($338) { + $$1722 = $$1721; + } else { + break L213; + } + while(1) { + $581 = $$1722 << 2; + $582 = $581 | 3; + $583 = (($573) + ($582)|0); + HEAP8[$583>>0] = -1; + $584 = ($$1722*3)|0; + $585 = (($584) + 2)|0; + $586 = (($573) + ($585)|0); + $587 = HEAP8[$586>>0]|0; + $588 = $581 | 2; + $589 = (($573) + ($588)|0); + HEAP8[$589>>0] = $587; + $590 = (($584) + 1)|0; + $591 = (($573) + ($590)|0); + $592 = HEAP8[$591>>0]|0; + $593 = $581 | 1; + $594 = (($573) + ($593)|0); + HEAP8[$594>>0] = $592; + $595 = (($573) + ($584)|0); + $596 = HEAP8[$595>>0]|0; + $597 = (($573) + ($581)|0); + HEAP8[$597>>0] = $596; + $$1 = (($$1722) + -1)|0; + $598 = ($$1|0)>(-1); + if ($598) { + $$1722 = $$1; + } else { + break; + } + } + break; + } + default: { + label = 144; + break L174; + } + } + } + } while(0); + $599 = (($$1624727) + 1)|0; + $600 = ($599>>>0)<($5>>>0); + $indvars$iv$next = (($indvars$iv) + ($12))|0; + $indvars$iv$next849 = (($indvars$iv848) + ($12))|0; + $indvars$iv$next852 = (($indvars$iv851) + ($12))|0; + $indvars$iv$next855 = (($indvars$iv854) + ($12))|0; + $indvars$iv$next858 = (($indvars$iv857) + ($12))|0; + $indvars$iv$next861 = (($indvars$iv860) + ($12))|0; + if ($600) { + $$1624727 = $599;$indvars$iv = $indvars$iv$next;$indvars$iv848 = $indvars$iv$next849;$indvars$iv851 = $indvars$iv$next852;$indvars$iv854 = $indvars$iv$next855;$indvars$iv857 = $indvars$iv$next858;$indvars$iv860 = $indvars$iv$next861; + } else { + $$2 = 1; + label = 151; + break; + } + } + if ((label|0) == 144) { + ___assert_fail((9846|0),(9128|0),4466,(9743|0)); + // unreachable; + } + else if ((label|0) == 151) { + return ($$2|0); + } + return (0)|0; +} +function _stbi__paeth($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ispos = 0, $ispos26 = 0, $ispos28 = 0, $neg = 0, $neg27 = 0, $neg29 = 0, $or$cond = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = (($1) + ($0))|0; + $4 = (($3) - ($2))|0; + $5 = (($4) - ($0))|0; + $ispos = ($5|0)>(-1); + $neg = (0 - ($5))|0; + $6 = $ispos ? $5 : $neg; + $7 = (($4) - ($1))|0; + $ispos26 = ($7|0)>(-1); + $neg27 = (0 - ($7))|0; + $8 = $ispos26 ? $7 : $neg27; + $9 = (($4) - ($2))|0; + $ispos28 = ($9|0)>(-1); + $neg29 = (0 - ($9))|0; + $10 = $ispos28 ? $9 : $neg29; + $11 = ($6|0)>($8|0); + $12 = ($6|0)>($10|0); + $or$cond = $11 | $12; + $13 = ($8|0)>($10|0); + $$ = $13 ? $2 : $1; + $$0 = $or$cond ? $$ : $0; + return ($$0|0); +} +function _stbi__do_zlib($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 20|0); + HEAP32[$5>>2] = $1; + $6 = ((($0)) + 16|0); + HEAP32[$6>>2] = $1; + $7 = (($1) + ($2)|0); + $8 = ((($0)) + 24|0); + HEAP32[$8>>2] = $7; + $9 = ((($0)) + 28|0); + HEAP32[$9>>2] = $3; + $10 = (_stbi__parse_zlib($0,$4)|0); + return ($10|0); +} +function _stbi__parse_zlib($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + if (!($2)) { + $3 = (_stbi__parse_zlib_header($0)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + } + $5 = ((($0)) + 8|0); + HEAP32[$5>>2] = 0; + $6 = ((($0)) + 12|0); + HEAP32[$6>>2] = 0; + $7 = ((($0)) + 32|0); + $8 = ((($0)) + 2052|0); + L5: while(1) { + $9 = (_stbi__zreceive($0,1)|0); + $10 = (_stbi__zreceive($0,2)|0); + switch ($10|0) { + case 3: { + $$0 = 0; + label = 11; + break L5; + break; + } + case 0: { + $11 = (_stbi__parse_uncompressed_block($0)|0); + $12 = ($11|0)==(0); + if ($12) { + $$0 = 0; + label = 11; + break L5; + } + break; + } + case 1: { + $13 = (_stbi__zbuild_huffman($7,9857,288)|0); + $14 = ($13|0)==(0); + if ($14) { + $$0 = 0; + label = 11; + break L5; + } + $15 = (_stbi__zbuild_huffman($8,10145,32)|0); + $16 = ($15|0)==(0); + if ($16) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + break; + } + default: { + $17 = (_stbi__compute_huffman_codes($0)|0); + $18 = ($17|0)==(0); + if ($18) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + } + } + if ((label|0) == 9) { + label = 0; + $19 = (_stbi__parse_huffman_block($0)|0); + $20 = ($19|0)==(0); + if ($20) { + $$0 = 0; + label = 11; + break; + } + } + $21 = ($9|0)==(0); + if (!($21)) { + $$0 = 1; + label = 11; + break; + } + } + if ((label|0) == 11) { + return ($$0|0); + } + return (0)|0; +} +function _stbi__parse_zlib_header($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__zget8($0)|0); + $2 = $1&255; + $3 = $2 & 15; + $4 = (_stbi__zget8($0)|0); + $5 = $4&255; + $6 = $2 << 8; + $7 = $6 | $5; + $8 = (($7>>>0) % 31)&-1; + $9 = ($8|0)==(0); + if (!($9)) { + _stbi__err(10492); + $$0 = 0; + return ($$0|0); + } + $10 = $5 & 32; + $11 = ($10|0)==(0); + if (!($11)) { + _stbi__err(10508); + $$0 = 0; + return ($$0|0); + } + $12 = ($3|0)==(8); + if ($12) { + $$0 = 1; + return ($$0|0); + } + _stbi__err(10523); + $$0 = 0; + return ($$0|0); +} +function _stbi__zreceive($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<($1|0); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = 1 << $1; + $8 = (($7) + -1)|0; + $9 = $6 & $8; + $10 = $6 >>> $1; + HEAP32[$5>>2] = $10; + $11 = HEAP32[$2>>2]|0; + $12 = (($11) - ($1))|0; + HEAP32[$2>>2] = $12; + return ($9|0); +} +function _stbi__parse_uncompressed_block($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$034 = 0, $$037 = 0, $$136 = 0, $$lcssa = 0, $$ph = 0, $$pr = 0, $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; + var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond47 = 0, $smax = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & 7; + $5 = ($4|0)==(0); + if ($5) { + $$ph = $3; + } else { + (_stbi__zreceive($0,$4)|0); + $$pr = HEAP32[$2>>2]|0; + $$ph = $$pr; + } + $6 = ($$ph|0)>(0); + if ($6) { + $7 = ((($0)) + 12|0); + $$promoted = HEAP32[$7>>2]|0; + $8 = $$ph ^ -1; + $9 = ($8|0)>(-9); + $smax = $9 ? $8 : -9; + $10 = (($$ph) + ($smax))|0; + $11 = (($10) + 8)|0; + $12 = $11 >>> 3; + $13 = (($12) + 1)|0; + $14 = $12 << 3; + $$037 = 0;$16 = $$promoted; + while(1) { + $15 = $16&255; + $17 = (($$037) + 1)|0; + $18 = (($1) + ($$037)|0); + HEAP8[$18>>0] = $15; + $19 = $16 >>> 8; + $exitcond47 = ($17|0)==($13|0); + if ($exitcond47) { + break; + } else { + $$037 = $17;$16 = $19; + } + } + $20 = (($$ph) + -8)|0; + $21 = (($20) - ($14))|0; + HEAP32[$7>>2] = $19; + HEAP32[$2>>2] = $21; + $$0$lcssa = $13;$$lcssa = $21; + } else { + $$0$lcssa = 0;$$lcssa = $$ph; + } + $22 = ($$lcssa|0)==(0); + if (!($22)) { + ___assert_fail((10414|0),(9128|0),4033,(10431|0)); + // unreachable; + } + $23 = ($$0$lcssa|0)<(4); + if ($23) { + $$136 = $$0$lcssa; + while(1) { + $24 = (_stbi__zget8($0)|0); + $25 = (($$136) + 1)|0; + $26 = (($1) + ($$136)|0); + HEAP8[$26>>0] = $24; + $exitcond = ($25|0)==(4); + if ($exitcond) { + break; + } else { + $$136 = $25; + } + } + } + $27 = ((($1)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = HEAP8[$1>>0]|0; + $32 = $31&255; + $33 = $30 | $32; + $34 = ((($1)) + 3|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = $36 << 8; + $38 = ((($1)) + 2|0); + $39 = HEAP8[$38>>0]|0; + $40 = $39&255; + $41 = $37 | $40; + $42 = $33 ^ 65535; + $43 = ($41|0)==($42|0); + if (!($43)) { + _stbi__err(10462); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $44 = HEAP32[$0>>2]|0; + $45 = (($44) + ($33)|0); + $46 = ((($0)) + 4|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($45>>>0)>($47>>>0); + if ($48) { + _stbi__err(10475); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $49 = ((($0)) + 16|0); + $50 = HEAP32[$49>>2]|0; + $51 = (($50) + ($33)|0); + $52 = ((($0)) + 24|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51>>>0)>($53>>>0); + if ($54) { + $55 = (_stbi__zexpand($0,$50,$33)|0); + $56 = ($55|0)==(0); + if ($56) { + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + } + $57 = HEAP32[$49>>2]|0; + $58 = HEAP32[$0>>2]|0; + _memcpy(($57|0),($58|0),($33|0))|0; + $59 = HEAP32[$0>>2]|0; + $60 = (($59) + ($33)|0); + HEAP32[$0>>2] = $60; + $61 = HEAP32[$49>>2]|0; + $62 = (($61) + ($33)|0); + HEAP32[$49>>2] = $62; + $$034 = 1; + STACKTOP = sp;return ($$034|0); +} +function _stbi__zbuild_huffman($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$075 = 0, $$07688 = 0, $$07785 = 0, $$07884 = 0, $$081 = 0, $$286 = 0, $$382 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond91 = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $3 = sp + 72|0; + $4 = sp; + dest=$4; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _memset(($0|0),0,1024)|0; + $5 = ($2|0)>(0); + if ($5) { + $$07688 = 0; + while(1) { + $6 = (($1) + ($$07688)|0); + $7 = HEAP8[$6>>0]|0; + $8 = $7&255; + $9 = (($4) + ($8<<2)|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($10) + 1)|0; + HEAP32[$9>>2] = $11; + $12 = (($$07688) + 1)|0; + $exitcond91 = ($12|0)==($2|0); + if ($exitcond91) { + break; + } else { + $$07688 = $12; + } + } + } + HEAP32[$4>>2] = 0; + $16 = ((($4)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)>(2); + if (!($18)) { + $13 = ((($4)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)>(4); + if (!($15)) { + $69 = ((($4)) + 12|0); + $70 = HEAP32[$69>>2]|0; + $71 = ($70|0)>(8); + if (!($71)) { + $72 = ((($4)) + 16|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)>(16); + if (!($74)) { + $75 = ((($4)) + 20|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($76|0)>(32); + if (!($77)) { + $78 = ((($4)) + 24|0); + $79 = HEAP32[$78>>2]|0; + $80 = ($79|0)>(64); + if (!($80)) { + $81 = ((($4)) + 28|0); + $82 = HEAP32[$81>>2]|0; + $83 = ($82|0)>(128); + if (!($83)) { + $84 = ((($4)) + 32|0); + $85 = HEAP32[$84>>2]|0; + $86 = ($85|0)>(256); + if (!($86)) { + $87 = ((($4)) + 36|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)>(512); + if (!($89)) { + $90 = ((($4)) + 40|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)>(1024); + if (!($92)) { + $93 = ((($4)) + 44|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)>(2048); + if (!($95)) { + $96 = ((($4)) + 48|0); + $97 = HEAP32[$96>>2]|0; + $98 = ($97|0)>(4096); + if (!($98)) { + $99 = ((($4)) + 52|0); + $100 = HEAP32[$99>>2]|0; + $101 = ($100|0)>(8192); + if (!($101)) { + $102 = ((($4)) + 56|0); + $103 = HEAP32[$102>>2]|0; + $104 = ($103|0)>(16384); + if (!($104)) { + $105 = ((($4)) + 60|0); + $106 = HEAP32[$105>>2]|0; + $107 = ($106|0)>(32768); + if (!($107)) { + $$07785 = 0;$$07884 = 0;$$286 = 1; + while(1) { + $19 = (($3) + ($$286<<2)|0); + HEAP32[$19>>2] = $$07884; + $20 = $$07884&65535; + $21 = (((($0)) + 1024|0) + ($$286<<1)|0); + HEAP16[$21>>1] = $20; + $22 = $$07785&65535; + $23 = (((($0)) + 1124|0) + ($$286<<1)|0); + HEAP16[$23>>1] = $22; + $24 = (($4) + ($$286<<2)|0); + $25 = HEAP32[$24>>2]|0; + $26 = (($25) + ($$07884))|0; + $27 = ($25|0)!=(0); + $28 = 1 << $$286; + $29 = ($26|0)>($28|0); + $or$cond = $27 & $29; + if ($or$cond) { + label = 7; + break; + } + $30 = (16 - ($$286))|0; + $31 = $26 << $30; + $32 = (((($0)) + 1056|0) + ($$286<<2)|0); + HEAP32[$32>>2] = $31; + $33 = $26 << 1; + $34 = (($25) + ($$07785))|0; + $35 = (($$286) + 1)|0; + $36 = ($35|0)<(16); + if ($36) { + $$07785 = $34;$$07884 = $33;$$286 = $35; + } else { + break; + } + } + if ((label|0) == 7) { + _stbi__err(10352); + $$075 = 0; + STACKTOP = sp;return ($$075|0); + } + $37 = ((($0)) + 1120|0); + HEAP32[$37>>2] = 65536; + $38 = ($2|0)>(0); + if ($38) { + $$382 = 0; + } else { + $$075 = 1; + STACKTOP = sp;return ($$075|0); + } + while(1) { + $39 = (($1) + ($$382)|0); + $40 = HEAP8[$39>>0]|0; + $41 = $40&255; + $42 = ($40<<24>>24)==(0); + if (!($42)) { + $43 = (($3) + ($41<<2)|0); + $44 = HEAP32[$43>>2]|0; + $45 = (((($0)) + 1024|0) + ($41<<1)|0); + $46 = HEAP16[$45>>1]|0; + $47 = $46&65535; + $48 = (($44) - ($47))|0; + $49 = (((($0)) + 1124|0) + ($41<<1)|0); + $50 = HEAP16[$49>>1]|0; + $51 = $50&65535; + $52 = (($48) + ($51))|0; + $53 = $41 << 9; + $54 = $53 | $$382; + $55 = $54&65535; + $56 = (((($0)) + 1156|0) + ($52)|0); + HEAP8[$56>>0] = $40; + $57 = $$382&65535; + $58 = (((($0)) + 1444|0) + ($52<<1)|0); + HEAP16[$58>>1] = $57; + $59 = ($40&255)<(10); + do { + if ($59) { + $60 = (_stbi__bit_reverse($44,$41)|0); + $61 = ($60|0)<(512); + if (!($61)) { + break; + } + $62 = 1 << $41; + $$081 = $60; + while(1) { + $63 = (($0) + ($$081<<1)|0); + HEAP16[$63>>1] = $55; + $64 = (($$081) + ($62))|0; + $65 = ($64|0)<(512); + if ($65) { + $$081 = $64; + } else { + break; + } + } + } + } while(0); + $66 = HEAP32[$43>>2]|0; + $67 = (($66) + 1)|0; + HEAP32[$43>>2] = $67; + } + $68 = (($$382) + 1)|0; + $exitcond = ($68|0)==($2|0); + if ($exitcond) { + $$075 = 1; + break; + } else { + $$382 = $68; + } + } + STACKTOP = sp;return ($$075|0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + _stbi__err(10404); + $$075 = 0; + STACKTOP = sp;return ($$075|0); +} +function _stbi__compute_huffman_codes($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$061 = 0, $$06579 = 0, $$066$be = 0, $$066$lcssa = 0, $$06678 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $not$ = 0, dest = 0; + var label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2496|0); + $1 = sp; + $2 = sp + 2039|0; + $3 = sp + 2020|0; + $4 = (_stbi__zreceive($0,5)|0); + $5 = (($4) + 257)|0; + $6 = (_stbi__zreceive($0,5)|0); + $7 = (($6) + 1)|0; + $8 = (_stbi__zreceive($0,4)|0); + $9 = (($8) + 4)|0; + $10 = (($7) + ($5))|0; + dest=$3; stop=dest+19|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $11 = ($9|0)>(0); + if ($11) { + $$06579 = 0; + while(1) { + $12 = (_stbi__zreceive($0,3)|0); + $13 = $12&255; + $14 = (11198 + ($$06579)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = (($3) + ($16)|0); + HEAP8[$17>>0] = $13; + $18 = (($$06579) + 1)|0; + $exitcond = ($18|0)==($9|0); + if ($exitcond) { + break; + } else { + $$06579 = $18; + } + } + } + $19 = (_stbi__zbuild_huffman($1,$3,19)|0); + $20 = ($19|0)==(0); + if ($20) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $21 = ($10|0)>(0); + L8: do { + if ($21) { + $$06678 = 0; + L9: while(1) { + $22 = (_stbi__zhuffman_decode($0,$1)|0); + $23 = ($22>>>0)>(18); + if ($23) { + label = 6; + break; + } + $24 = ($22|0)<(16); + if ($24) { + $25 = $22&255; + $26 = (($$06678) + 1)|0; + $27 = (($2) + ($$06678)|0); + HEAP8[$27>>0] = $25; + $$066$be = $26; + } else { + switch ($22|0) { + case 16: { + $28 = (_stbi__zreceive($0,2)|0); + $29 = ($$06678|0)==(0); + if ($29) { + label = 11; + break L9; + } + $30 = (($28) + 3)|0; + $31 = (($$06678) + -1)|0; + $32 = (($2) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $$0 = $33;$$061 = $30; + break; + } + case 17: { + $34 = (_stbi__zreceive($0,3)|0); + $35 = (($34) + 3)|0; + $$0 = 0;$$061 = $35; + break; + } + case 18: { + $36 = (_stbi__zreceive($0,7)|0); + $37 = (($36) + 11)|0; + $$0 = 0;$$061 = $37; + break; + } + default: { + label = 14; + break L9; + } + } + $38 = (($10) - ($$06678))|0; + $39 = ($38|0)<($$061|0); + if ($39) { + label = 17; + break; + } + $40 = (($2) + ($$06678)|0); + _memset(($40|0),($$0|0),($$061|0))|0; + $41 = (($$061) + ($$06678))|0; + $$066$be = $41; + } + $42 = ($10|0)>($$066$be|0); + if ($42) { + $$06678 = $$066$be; + } else { + $$066$lcssa = $$066$be; + break L8; + } + } + if ((label|0) == 6) { + _stbi__err(10352); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 11) { + _stbi__err(10352); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 14) { + ___assert_fail((10368|0),(9128|0),4006,(10376|0)); + // unreachable; + } + else if ((label|0) == 17) { + _stbi__err(10352); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + } else { + $$066$lcssa = 0; + } + } while(0); + $43 = ($10|0)==($$066$lcssa|0); + if (!($43)) { + _stbi__err(10352); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $44 = ((($0)) + 32|0); + $45 = (_stbi__zbuild_huffman($44,$2,$5)|0); + $46 = ($45|0)==(0); + if ($46) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $47 = ((($0)) + 2052|0); + $48 = (($2) + ($5)|0); + $49 = (_stbi__zbuild_huffman($47,$48,$7)|0); + $not$ = ($49|0)!=(0); + $$ = $not$&1; + $$4 = $$; + STACKTOP = sp;return ($$4|0); +} +function _stbi__parse_huffman_block($0) { + $0 = $0|0; + var $$063 = 0, $$064 = 0, $$067 = 0, $$070 = 0, $$171 = 0, $$266 = 0, $$272 = 0, $$3$ph = 0, $$5 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep92 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 32|0); + $4 = ((($0)) + 24|0); + $5 = ((($0)) + 2052|0); + $6 = ((($0)) + 20|0); + $7 = ((($0)) + 24|0); + $$070 = $2; + while(1) { + $10 = (_stbi__zhuffman_decode($0,$3)|0); + $11 = ($10|0)<(256); + if ($11) { + $12 = ($10|0)<(0); + if ($12) { + label = 6; + break; + } + $13 = HEAP32[$4>>2]|0; + $14 = ($$070>>>0)<($13>>>0); + if ($14) { + $$171 = $$070; + } else { + $15 = (_stbi__zexpand($0,$$070,1)|0); + $16 = ($15|0)==(0); + if ($16) { + $$3$ph = 0; + label = 28; + break; + } + $17 = HEAP32[$1>>2]|0; + $$171 = $17; + } + $18 = $10&255; + $19 = ((($$171)) + 1|0); + HEAP8[$$171>>0] = $18; + $$070 = $19; + continue; + } + $20 = ($10|0)==(256); + if ($20) { + label = 12; + break; + } + $21 = (($10) + -257)|0; + $22 = (3332 + ($21<<2)|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($10) + -265)|0; + $25 = ($24>>>0)<(20); + if ($25) { + $26 = (3208 + ($21<<2)|0); + $27 = HEAP32[$26>>2]|0; + $28 = (_stbi__zreceive($0,$27)|0); + $29 = (($28) + ($23))|0; + $$064 = $29; + } else { + $$064 = $23; + } + $30 = (_stbi__zhuffman_decode($0,$5)|0); + $31 = ($30|0)<(0); + if ($31) { + label = 16; + break; + } + $32 = (3584 + ($30<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (($30) + -4)|0; + $35 = ($34>>>0)<(26); + if ($35) { + $36 = (3456 + ($30<<2)|0); + $37 = HEAP32[$36>>2]|0; + $38 = (_stbi__zreceive($0,$37)|0); + $39 = (($38) + ($33))|0; + $$063 = $39; + } else { + $$063 = $33; + } + $40 = HEAP32[$6>>2]|0; + $41 = $$070; + $42 = (($41) - ($40))|0; + $43 = ($42|0)<($$063|0); + if ($43) { + label = 20; + break; + } + $44 = (($$070) + ($$064)|0); + $45 = HEAP32[$7>>2]|0; + $46 = ($44>>>0)>($45>>>0); + if ($46) { + $47 = (_stbi__zexpand($0,$$070,$$064)|0); + $48 = ($47|0)==(0); + if ($48) { + $$3$ph = 0; + label = 28; + break; + } + $49 = HEAP32[$1>>2]|0; + $$272 = $49; + } else { + $$272 = $$070; + } + $50 = (0 - ($$063))|0; + $9 = (($$272) + ($50)|0); + $51 = ($$063|0)==(1); + $52 = ($$064|0)!=(0); + if ($51) { + if (!($52)) { + $$070 = $$272; + continue; + } + $8 = HEAP8[$9>>0]|0; + _memset(($$272|0),($8|0),($$064|0))|0; + $scevgep92 = (($$272) + ($$064)|0); + $$070 = $scevgep92; + continue; + } + if ($52) { + $$067 = $9;$$266 = $$064;$$5 = $$272; + } else { + $$070 = $$272; + continue; + } + while(1) { + $53 = ((($$067)) + 1|0); + $54 = HEAP8[$$067>>0]|0; + $55 = ((($$5)) + 1|0); + HEAP8[$$5>>0] = $54; + $56 = (($$266) + -1)|0; + $57 = ($56|0)==(0); + if ($57) { + break; + } else { + $$067 = $53;$$266 = $56;$$5 = $55; + } + } + $scevgep = (($$272) + ($$064)|0); + $$070 = $scevgep; + } + if ((label|0) == 6) { + _stbi__err(10177); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 12) { + HEAP32[$1>>2] = $$070; + $$3$ph = 1; + return ($$3$ph|0); + } + else if ((label|0) == 16) { + _stbi__err(10177); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 20) { + _stbi__err(10194); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 28) { + return ($$3$ph|0); + } + return (0)|0; +} +function _stbi__zhuffman_decode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<(16); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 511; + $8 = (($1) + ($7<<1)|0); + $9 = HEAP16[$8>>1]|0; + $10 = $9&65535; + $11 = ($9<<16>>16)==(0); + if ($11) { + $17 = (_stbi__zhuffman_decode_slowpath($0,$1)|0); + $$0 = $17; + return ($$0|0); + } else { + $12 = $10 >>> 9; + $13 = $6 >>> $12; + HEAP32[$5>>2] = $13; + $14 = HEAP32[$2>>2]|0; + $15 = (($14) - ($12))|0; + HEAP32[$2>>2] = $15; + $16 = $10 & 511; + $$0 = $16; + return ($$0|0); + } + return (0)|0; +} +function _stbi__zexpand($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + HEAP32[$3>>2] = $1; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + _stbi__err(10203); + $$0 = 0; + return ($$0|0); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = $1; + $10 = $8; + $11 = (($9) - ($10))|0; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + $14 = (($13) - ($10))|0; + $15 = (($11) + ($2))|0; + $$029 = $14; + while(1) { + $16 = ($15|0)>($$029|0); + $17 = $$029 << 1; + if ($16) { + $$029 = $17; + } else { + break; + } + } + $18 = (_realloc($8,$$029)|0); + $19 = ($18|0)==(0|0); + if ($19) { + _stbi__err(9183); + $$0 = 0; + return ($$0|0); + } else { + HEAP32[$7>>2] = $18; + $20 = (($18) + ($11)|0); + HEAP32[$3>>2] = $20; + $21 = (($18) + ($$029)|0); + HEAP32[$12>>2] = $21; + $$0 = 1; + return ($$0|0); + } + return (0)|0; +} +function _stbi__fill_bits($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 12|0); + $2 = ((($0)) + 8|0); + while(1) { + $3 = HEAP32[$1>>2]|0; + $4 = HEAP32[$2>>2]|0; + $5 = 1 << $4; + $6 = ($3>>>0)<($5>>>0); + if (!($6)) { + label = 3; + break; + } + $7 = (_stbi__zget8($0)|0); + $8 = $7&255; + $9 = HEAP32[$2>>2]|0; + $10 = $8 << $9; + $11 = HEAP32[$1>>2]|0; + $12 = $11 | $10; + HEAP32[$1>>2] = $12; + $13 = (($9) + 8)|0; + HEAP32[$2>>2] = $13; + $14 = ($13|0)<(25); + if (!($14)) { + label = 5; + break; + } + } + if ((label|0) == 3) { + ___assert_fail((10299|0),(9128|0),3848,(10336|0)); + // unreachable; + } + else if ((label|0) == 5) { + return; + } +} +function _stbi__zhuffman_decode_slowpath($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 12|0); + $3 = HEAP32[$2>>2]|0; + $4 = (_stbi__bit_reverse($3,16)|0); + $$025 = 10; + while(1) { + $5 = (((($1)) + 1056|0) + ($$025<<2)|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($4|0)<($6|0); + $8 = (($$025) + 1)|0; + if ($7) { + break; + } else { + $$025 = $8; + } + } + $9 = ($$025|0)==(16); + if ($9) { + $$0 = -1; + return ($$0|0); + } + $10 = (16 - ($$025))|0; + $11 = $4 >> $10; + $12 = (((($1)) + 1024|0) + ($$025<<1)|0); + $13 = HEAP16[$12>>1]|0; + $14 = $13&65535; + $15 = (($11) - ($14))|0; + $16 = (((($1)) + 1124|0) + ($$025<<1)|0); + $17 = HEAP16[$16>>1]|0; + $18 = $17&65535; + $19 = (($15) + ($18))|0; + $20 = (((($1)) + 1156|0) + ($19)|0); + $21 = HEAP8[$20>>0]|0; + $22 = $21&255; + $23 = ($22|0)==($$025|0); + if (!($23)) { + ___assert_fail((10223|0),(9128|0),3876,(10239|0)); + // unreachable; + } + $24 = HEAP32[$2>>2]|0; + $25 = $24 >>> $$025; + HEAP32[$2>>2] = $25; + $26 = ((($0)) + 8|0); + $27 = HEAP32[$26>>2]|0; + $28 = (($27) - ($$025))|0; + HEAP32[$26>>2] = $28; + $29 = (((($1)) + 1444|0) + ($19<<1)|0); + $30 = HEAP16[$29>>1]|0; + $31 = $30&65535; + $$0 = $31; + return ($$0|0); +} +function _stbi__bit_reverse($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(17); + if ($2) { + $3 = (_stbi__bitreverse16($0)|0); + $4 = (16 - ($1))|0; + $5 = $3 >> $4; + return ($5|0); + } else { + ___assert_fail((10270|0),(9128|0),3766,(10281|0)); + // unreachable; + } + return (0)|0; +} +function _stbi__bitreverse16($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = $0 >>> 1; + $2 = $1 & 21845; + $3 = $0 << 1; + $4 = $3 & 43690; + $5 = $2 | $4; + $6 = $5 >>> 2; + $7 = $6 & 13107; + $8 = $5 << 2; + $9 = $8 & 52428; + $10 = $7 | $9; + $11 = $10 >>> 4; + $12 = $11 & 3855; + $13 = $10 << 4; + $14 = $13 & 61680; + $15 = $12 | $14; + $16 = $15 >>> 8; + $17 = $15 << 8; + $18 = $17 & 65280; + $19 = $18 | $16; + return ($19|0); +} +function _stbi__zget8($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($1>>>0)<($3>>>0); + if (!($4)) { + $$0 = 0; + return ($$0|0); + } + $5 = ((($1)) + 1|0); + HEAP32[$0>>2] = $5; + $6 = HEAP8[$1>>0]|0; + $$0 = $6; + return ($$0|0); +} +function _stbi__refill_buffer($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + $8 = (FUNCTION_TABLE_iiii[$2 & 15]($4,$5,$7)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = ((($0)) + 32|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 168|0); + HEAP32[$11>>2] = $5; + $12 = ((($0)) + 41|0); + $13 = ((($0)) + 172|0); + HEAP32[$13>>2] = $12; + HEAP8[$5>>0] = 0; + return; + } else { + $14 = ((($0)) + 168|0); + HEAP32[$14>>2] = $5; + $15 = (((($0)) + 40|0) + ($8)|0); + $16 = ((($0)) + 172|0); + HEAP32[$16>>2] = $15; + return; + } +} +function _stbi__rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 176|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 168|0); + HEAP32[$3>>2] = $2; + $4 = ((($0)) + 180|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 172|0); + HEAP32[$6>>2] = $5; + return; +} +function _stbi__start_callbacks($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + ;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0; + $4 = ((($0)) + 28|0); + HEAP32[$4>>2] = $2; + $5 = ((($0)) + 36|0); + HEAP32[$5>>2] = 128; + $6 = ((($0)) + 32|0); + HEAP32[$6>>2] = 1; + $7 = ((($0)) + 40|0); + $8 = ((($0)) + 176|0); + HEAP32[$8>>2] = $7; + _stbi__refill_buffer($0); + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 180|0); + HEAP32[$11>>2] = $10; + return; +} +function _stbi__stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_fread($1,1,$2,$0)|0); + return ($3|0); +} +function _stbi__stdio_skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (_fseek($0,$1,1)|0); + return; +} +function _stbi__stdio_eof($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_feof($0)|0); + return ($1|0); +} +function _LoadImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$1 = 0, $$sroa$0$144 = 0, $$sroa$10$0 = 0, $$sroa$10$0$$sroa_idx19 = 0, $$sroa$10$0$$sroa_idx20 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$1 = 0, $$sroa$10$140 = 0, $$sroa$10$141 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx23 = 0, $$sroa$13$0$$sroa_idx24 = 0, $$sroa$13$0$copyload = 0, $$sroa$13$1 = 0, $$sroa$13$146 = 0, $$sroa$13$147 = 0, $$sroa$15$0 = 0; + var $$sroa$15$0$$sroa_idx27 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$copyload = 0, $$sroa$15$1 = 0, $$sroa$15$2 = 0, $$sroa$15$248 = 0, $$sroa$15$249 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx15 = 0, $$sroa$7$0$$sroa_idx16 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$1 = 0, $$sroa$7$142 = 0, $$sroa$7$143 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0; + var $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer9 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer9 = sp + 32|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 44|0; + $4 = sp + 40|0; + $5 = sp + 36|0; + $6 = (_IsFileExtension($1,10551)|0); + $7 = ($6|0)==(0); + do { + if ($7) { + $19 = (_IsFileExtension($1,10604)|0); + $20 = ($19|0)==(0); + if ($20) { + HEAP32[$vararg_buffer1>>2] = $1; + _TraceLog(2,10609,$vararg_buffer1); + $$sroa$10$141 = 0;$$sroa$13$147 = 0;$$sroa$15$249 = 0;$$sroa$7$143 = 0; + break; + } + HEAP32[$3>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$5>>2] = 0; + $21 = (_fopen($1,10743)|0); + $22 = (_stbi_load_from_file($21,$3,$4,$5,0)|0); + (_fclose($21)|0); + $23 = HEAP32[$3>>2]|0; + $24 = HEAP32[$4>>2]|0; + $25 = HEAP32[$5>>2]|0; + switch ($25|0) { + case 1: { + $$sink = 1; + label = 11; + break; + } + case 2: { + $$sink = 2; + label = 11; + break; + } + case 3: { + $$sink = 4; + label = 11; + break; + } + case 4: { + $$sink = 7; + label = 11; + break; + } + default: { + $$sroa$15$1 = 0; + } + } + if ((label|0) == 11) { + $$sroa$15$1 = $$sink; + } + $$sroa$0$1 = $22;$$sroa$10$1 = $24;$$sroa$13$1 = 1;$$sroa$15$2 = $$sroa$15$1;$$sroa$7$1 = $23; + label = 14; + } else { + $8 = (_LoadResource($1,0)|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)==(1); + if ($10) { + $11 = ((($8)) + 20|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($8)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($8)) + 8|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($8)) + 12|0); + $18 = HEAP32[$17>>2]|0; + _LoadImagePro($2,$12,$14,$16,$18); + $$sroa$0$0$copyload = HEAP32[$2>>2]|0; + $$sroa$7$0$$sroa_idx15 = ((($2)) + 4|0); + $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx15>>2]|0; + $$sroa$10$0$$sroa_idx19 = ((($2)) + 8|0); + $$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx19>>2]|0; + $$sroa$13$0$$sroa_idx23 = ((($2)) + 12|0); + $$sroa$13$0$copyload = HEAP32[$$sroa$13$0$$sroa_idx23>>2]|0; + $$sroa$15$0$$sroa_idx27 = ((($2)) + 16|0); + $$sroa$15$0$copyload = HEAP32[$$sroa$15$0$$sroa_idx27>>2]|0; + $$sroa$0$0 = $$sroa$0$0$copyload;$$sroa$10$0 = $$sroa$10$0$copyload;$$sroa$13$0 = $$sroa$13$0$copyload;$$sroa$15$0 = $$sroa$15$0$copyload;$$sroa$7$0 = $$sroa$7$0$copyload; + } else { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,10557,$vararg_buffer); + $$sroa$0$0 = 0;$$sroa$10$0 = 0;$$sroa$13$0 = 0;$$sroa$15$0 = 0;$$sroa$7$0 = 0; + } + _UnloadResource($8); + $$sroa$0$1 = $$sroa$0$0;$$sroa$10$1 = $$sroa$10$0;$$sroa$13$1 = $$sroa$13$0;$$sroa$15$2 = $$sroa$15$0;$$sroa$7$1 = $$sroa$7$0; + label = 14; + } + } while(0); + if ((label|0) == 14) { + $26 = ($$sroa$0$1|0)==(0|0); + if ($26) { + $$sroa$10$141 = $$sroa$10$1;$$sroa$13$147 = $$sroa$13$1;$$sroa$15$249 = $$sroa$15$2;$$sroa$7$143 = $$sroa$7$1; + } else { + HEAP32[$vararg_buffer4>>2] = $1; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $$sroa$7$1; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $$sroa$10$1; + _TraceLog(0,10645,$vararg_buffer4); + $$sroa$0$144 = $$sroa$0$1;$$sroa$10$140 = $$sroa$10$1;$$sroa$13$146 = $$sroa$13$1;$$sroa$15$248 = $$sroa$15$2;$$sroa$7$142 = $$sroa$7$1; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; + } + } + HEAP32[$vararg_buffer9>>2] = $1; + _TraceLog(2,10684,$vararg_buffer9); + $$sroa$0$144 = 0;$$sroa$10$140 = $$sroa$10$141;$$sroa$13$146 = $$sroa$13$147;$$sroa$15$248 = $$sroa$15$249;$$sroa$7$142 = $$sroa$7$143; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; +} +function _LoadResource($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$05665 = 0, $$05764 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond60 = 0; + var $or$cond62 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 64|0; + $3 = sp + 32|0; + $4 = (_fopen($0,10743)|0); + $5 = ($4|0)==(0|0); + if ($5) { + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(2,10746,$vararg_buffer); + $$2 = 0; + STACKTOP = sp;return ($$2|0); + } + (_fread($2,1,1,$4)|0); + $6 = ((($2)) + 1|0); + (_fread($6,1,1,$4)|0); + $7 = ((($2)) + 2|0); + (_fread($7,1,1,$4)|0); + $8 = ((($2)) + 3|0); + (_fread($8,1,1,$4)|0); + $9 = ((($2)) + 4|0); + (_fread($9,2,1,$4)|0); + $10 = ((($2)) + 6|0); + (_fread($10,2,1,$4)|0); + $11 = HEAP8[$2>>0]|0; + $12 = ($11<<24>>24)==(114); + $13 = HEAP8[$6>>0]|0; + $14 = ($13<<24>>24)==(82); + $or$cond = $12 | $14; + $15 = HEAP8[$7>>0]|0; + $16 = ($15<<24>>24)==(69); + $or$cond60 = $or$cond | $16; + $17 = HEAP8[$8>>0]|0; + $18 = ($17<<24>>24)==(83); + $or$cond62 = $or$cond60 | $18; + if ($or$cond62) { + $19 = HEAP16[$10>>1]|0; + $20 = ($19<<16>>16)==(0); + if ($20) { + $$0$lcssa = 0; + } else { + $21 = ((($3)) + 7|0); + $22 = HEAP16[$10>>1]|0; + $23 = $22&65535; + $24 = ((($3)) + 8|0); + $25 = ((($3)) + 4|0); + $26 = ((($3)) + 16|0); + $27 = ((($3)) + 20|0); + $28 = ((($3)) + 24|0); + $29 = ((($3)) + 28|0); + $30 = ((($3)) + 8|0); + $31 = ((($3)) + 5|0); + $32 = ((($3)) + 12|0); + $$05665 = 0; + while(1) { + (_fread($3,32,1,$4)|0); + $36 = HEAP8[$21>>0]|0; + $37 = $36&255; + $38 = ($37*24)|0; + $39 = (_malloc($38)|0); + $40 = HEAP32[$3>>2]|0; + $41 = ($40|0)==($1|0); + if ($41) { + $42 = HEAP8[$21>>0]|0; + $43 = ($42<<24>>24)==(0); + if (!($43)) { + $$05764 = 0; + while(1) { + $44 = HEAP8[$25>>0]|0; + $45 = $44&255; + $46 = (($39) + (($$05764*24)|0)|0); + HEAP32[$46>>2] = $45; + $47 = HEAP32[$26>>2]|0; + $48 = (((($39) + (($$05764*24)|0)|0)) + 4|0); + HEAP32[$48>>2] = $47; + $49 = HEAP32[$27>>2]|0; + $50 = (((($39) + (($$05764*24)|0)|0)) + 8|0); + HEAP32[$50>>2] = $49; + $51 = HEAP32[$28>>2]|0; + $52 = (((($39) + (($$05764*24)|0)|0)) + 12|0); + HEAP32[$52>>2] = $51; + $53 = HEAP32[$29>>2]|0; + $54 = (((($39) + (($$05764*24)|0)|0)) + 16|0); + HEAP32[$54>>2] = $53; + $55 = HEAP32[$30>>2]|0; + $56 = (_malloc($55)|0); + (_fread($56,$55,1,$4)|0); + $57 = HEAP8[$31>>0]|0; + $58 = ($57<<24>>24)==(1); + if ($58) { + $59 = HEAP32[$30>>2]|0; + $60 = HEAP32[$32>>2]|0; + $61 = (_DecompressData($56,$59,$60)|0); + $62 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$62>>2] = $61; + _free($56); + } else { + $63 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$63>>2] = $56; + } + $64 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if (!($66)) { + $67 = HEAP32[$3>>2]|0; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $67; + _TraceLog(0,10843,$vararg_buffer4); + } + (_fread($3,32,1,$4)|0); + $68 = (($$05764) + 1)|0; + $69 = HEAP8[$21>>0]|0; + $70 = $69&255; + $71 = ($68|0)<($70|0); + if ($71) { + $$05764 = $68; + } else { + break; + } + } + } + } else { + $72 = HEAP32[$24>>2]|0; + (_fseek($4,$72,1)|0); + } + $73 = (($$05665) + 1)|0; + $74 = ($73|0)<($23|0); + if ($74) { + $$05665 = $73; + } else { + $$0$lcssa = $39; + break; + } + } + } + $33 = ((($$0$lcssa)) + 20|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)==(0|0); + if ($35) { + HEAP32[$vararg_buffer8>>2] = $0; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $1; + _TraceLog(2,10889,$vararg_buffer8); + $$1 = $$0$lcssa; + } else { + $$1 = $$0$lcssa; + } + } else { + HEAP32[$vararg_buffer1>>2] = $0; + _TraceLog(2,10797,$vararg_buffer1); + $$1 = 0; + } + (_fclose($4)|0); + $$2 = $$1; + STACKTOP = sp;return ($$2|0); +} +function _LoadImagePro($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy = sp + 20|0; + $5 = sp; + HEAP32[$5>>2] = $1; + $6 = ((($5)) + 4|0); + HEAP32[$6>>2] = $2; + $7 = ((($5)) + 8|0); + HEAP32[$7>>2] = $3; + $8 = ((($5)) + 12|0); + HEAP32[$8>>2] = 1; + $9 = ((($5)) + 16|0); + HEAP32[$9>>2] = $4; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$5+16>>2]|0; + _ImageCopy($0,$$byval_copy); + STACKTOP = sp;return; +} +function _UnloadResource($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if ($3) { + return; + } + _free($2); + return; +} +function _ImageCopy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$sroa$6$0 = 0, $$sroa$6$0$$sroa_idx10 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx12 = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx14 = 0, $$sroa$9$0 = 0, $$sroa$9$0$$sroa_idx16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $2 = ((($1)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($1)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = Math_imul($5, $3)|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + switch ($8|0) { + case 17: case 14: case 11: case 10: case 1: { + $$0 = $6; + break; + } + case 6: case 5: case 3: case 2: { + $9 = $6 << 1; + $$0 = $9; + break; + } + case 4: { + $10 = ($6*3)|0; + $$0 = $10; + break; + } + case 7: { + $11 = $6 << 2; + $$0 = $11; + break; + } + case 16: case 15: case 13: case 12: case 9: case 8: { + $12 = (($6|0) / 2)&-1; + $$0 = $12; + break; + } + case 18: { + $13 = (($6|0) / 4)&-1; + $$0 = $13; + break; + } + default: { + _TraceLog(2,10715,$vararg_buffer); + $$0 = $6; + } + } + $14 = (_malloc($$0)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$sroa$6$0 = 0;$$sroa$7$0 = 0;$$sroa$8$0 = 0;$$sroa$9$0 = 0; + } else { + $16 = HEAP32[$1>>2]|0; + _memcpy(($14|0),($16|0),($$0|0))|0; + $17 = HEAP32[$2>>2]|0; + $18 = HEAP32[$4>>2]|0; + $19 = ((($1)) + 12|0); + $20 = HEAP32[$19>>2]|0; + $21 = HEAP32[$7>>2]|0; + $$sroa$6$0 = $17;$$sroa$7$0 = $18;$$sroa$8$0 = $20;$$sroa$9$0 = $21; + } + HEAP32[$0>>2] = $14; + $$sroa$6$0$$sroa_idx10 = ((($0)) + 4|0); + HEAP32[$$sroa$6$0$$sroa_idx10>>2] = $$sroa$6$0; + $$sroa$7$0$$sroa_idx12 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx12>>2] = $$sroa$7$0; + $$sroa$8$0$$sroa_idx14 = ((($0)) + 12|0); + HEAP32[$$sroa$8$0$$sroa_idx14>>2] = $$sroa$8$0; + $$sroa$9$0$$sroa_idx16 = ((($0)) + 16|0); + HEAP32[$$sroa$9$0$$sroa_idx16>>2] = $$sroa$9$0; + STACKTOP = sp;return; +} +function _DecompressData($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer10 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = (_malloc($2)|0); + $4 = ($3|0)==(0|0); + if ($4) { + _TraceLog(2,10939,$vararg_buffer); + STACKTOP = sp;return ($3|0); + } + $5 = (_tinfl_decompress_mem_to_mem($3,$2,$0,$1,1)|0); + $6 = ($5|0)==(-1); + if ($6) { + _TraceLog(2,10978,$vararg_buffer1); + _free($3); + } + $7 = ($5|0)==($2|0); + if (!($7)) { + _TraceLog(2,11004,$vararg_buffer3); + HEAP32[$vararg_buffer5>>2] = $2; + _TraceLog(2,11067,$vararg_buffer5); + HEAP32[$vararg_buffer7>>2] = $5; + _TraceLog(2,11102,$vararg_buffer7); + } + HEAP32[$vararg_buffer10>>2] = $1; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $5; + _TraceLog(0,11137,$vararg_buffer10); + STACKTOP = sp;return ($3|0); +} +function _tinfl_decompress_mem_to_mem($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 11008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(11008|0); + $5 = sp + 11000|0; + $6 = sp; + $7 = sp + 8|0; + HEAP32[$5>>2] = $1; + HEAP32[$6>>2] = $3; + HEAP32[$7>>2] = 0; + $8 = $4 & -7; + $9 = $8 | 4; + $10 = (_tinfl_decompress($7,$2,$6,$0,$0,$5,$9)|0); + $11 = ($10|0)!=(0); + $12 = HEAP32[$5>>2]|0; + $13 = $11 ? -1 : $12; + STACKTOP = sp;return ($13|0); +} +function _tinfl_decompress($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$ = 0, $$$301127 = 0, $$010861840 = 0, $$010871839 = 0, $$010881838 = 0, $$010911856 = 0, $$010941846 = 0, $$010951864 = 0, $$01097 = 0, $$01194 = 0, $$011971855 = 0, $$01202 = 0, $$01202$shrunk = 0, $$01203 = 0, $$01300 = 0, $$01300$shrunk = 0, $$01309 = 0, $$01410 = 0, $$01410$shrunk = 0, $$01411 = 0; + var $$01411$shrunk = 0, $$01412 = 0, $$01413 = 0, $$01413$shrunk = 0, $$01416 = 0, $$01507 = 0, $$01607 = 0, $$01834 = 0, $$0937$lcssa = 0, $$09371833 = 0, $$0938$lcssa = 0, $$09381832 = 0, $$0941$lcssa = 0, $$09411816 = 0, $$09431831 = 0, $$09441830 = 0, $$0947 = 0, $$0947$shrunk = 0, $$0948 = 0, $$0949 = 0; + var $$0950 = 0, $$0950$shrunk = 0, $$0951 = 0, $$0952 = 0, $$0952$shrunk = 0, $$0953 = 0, $$0956 = 0, $$0959 = 0, $$0959$shrunk = 0, $$0960 = 0, $$0963 = 0, $$0967 = 0, $$0971 = 0, $$0971$shrunk = 0, $$0972 = 0, $$0975 = 0, $$0978 = 0, $$0979 = 0, $$0979$shrunk = 0, $$0980 = 0; + var $$0980$shrunk = 0, $$0981 = 0, $$0984 = 0, $$0987 = 0, $$0991 = 0, $$1$lcssa = 0, $$100 = 0, $$1001409 = 0, $$101426 = 0, $$101617 = 0, $$110891852 = 0, $$11098 = 0, $$11098$ph = 0, $$111427 = 0, $$111518 = 0, $$111618 = 0, $$11198 = 0, $$11204 = 0, $$11204$ph = 0, $$11310 = 0; + var $$11310$ph = 0, $$11417 = 0, $$11508 = 0, $$11608 = 0, $$11818 = 0, $$121428 = 0, $$121428$ph = 0, $$121519 = 0, $$121619 = 0, $$121619$ph = 0, $$13 = 0, $$131004 = 0, $$131110 = 0, $$131216 = 0, $$131322 = 0, $$131429 = 0, $$131520 = 0, $$131620 = 0, $$14 = 0, $$141005 = 0; + var $$141111 = 0, $$141217 = 0, $$141323 = 0, $$141430 = 0, $$141521 = 0, $$141621 = 0, $$15 = 0, $$151006 = 0, $$151112 = 0, $$151218 = 0, $$151324 = 0, $$151431 = 0, $$151522 = 0, $$151622 = 0, $$16 = 0, $$161007 = 0, $$161113 = 0, $$161113$ph = 0, $$161219 = 0, $$161325 = 0; + var $$161432 = 0, $$161523 = 0, $$161623 = 0, $$17 = 0, $$17$ph = 0, $$171008 = 0, $$171008$ph = 0, $$171114 = 0, $$171220 = 0, $$171220$ph = 0, $$171326 = 0, $$171326$ph = 0, $$171433 = 0, $$171524 = 0, $$171624 = 0, $$1753 = 0, $$1754 = 0, $$18 = 0, $$181009 = 0, $$181115 = 0; + var $$181221 = 0, $$181327 = 0, $$181434 = 0, $$181525 = 0, $$181625 = 0, $$19 = 0, $$191010 = 0, $$191116 = 0, $$191222 = 0, $$191328 = 0, $$191435 = 0, $$191526 = 0, $$191626 = 0, $$1939$lcssa = 0, $$19391817 = 0, $$19421823 = 0, $$1945$lcssa = 0, $$19451815 = 0, $$1954 = 0, $$1957 = 0; + var $$1961 = 0, $$1961$ = 0, $$1964 = 0, $$1968 = 0, $$1973 = 0, $$1976 = 0, $$1982 = 0, $$1985 = 0, $$1988 = 0, $$1988$ph = 0, $$1992 = 0, $$1992$ph = 0, $$2$lcssa = 0, $$20 = 0, $$201011 = 0, $$201117 = 0, $$201223 = 0, $$201329 = 0, $$201436 = 0, $$201527 = 0; + var $$201627 = 0, $$21 = 0, $$21099 = 0, $$211012 = 0, $$211118 = 0, $$211224 = 0, $$211330 = 0, $$211437 = 0, $$211437$ph = 0, $$211528 = 0, $$211628 = 0, $$211628$ph = 0, $$21196 = 0, $$21199$lcssa = 0, $$211991845 = 0, $$21205 = 0, $$21311 = 0, $$21418 = 0, $$21509 = 0, $$21609 = 0; + var $$21825 = 0, $$22 = 0, $$221013 = 0, $$221119 = 0, $$221225 = 0, $$221331 = 0, $$221438 = 0, $$221529 = 0, $$221629 = 0, $$23 = 0, $$231014 = 0, $$231120 = 0, $$231226 = 0, $$231332 = 0, $$231439 = 0, $$231530 = 0, $$231630 = 0, $$24 = 0, $$241015 = 0, $$241121 = 0; + var $$241227 = 0, $$241333 = 0, $$241440 = 0, $$241531 = 0, $$241631 = 0, $$25 = 0, $$251016 = 0, $$251122 = 0, $$251122$ph = 0, $$251228 = 0, $$251334 = 0, $$251441 = 0, $$251532 = 0, $$251632 = 0, $$26 = 0, $$26$ph = 0, $$261017 = 0, $$261017$ph = 0, $$261123 = 0, $$261229 = 0; + var $$261229$ph = 0, $$261335 = 0, $$261335$ph = 0, $$261442 = 0, $$261533 = 0, $$261633 = 0, $$27 = 0, $$271018 = 0, $$271124 = 0, $$271230 = 0, $$271336 = 0, $$271443 = 0, $$271534 = 0, $$271634 = 0, $$28 = 0, $$281019 = 0, $$281125 = 0, $$281231 = 0, $$281337 = 0, $$281444 = 0; + var $$281535 = 0, $$281635 = 0, $$29 = 0, $$291020 = 0, $$291126 = 0, $$291232 = 0, $$291338 = 0, $$291445 = 0, $$291536 = 0, $$291636 = 0, $$2940$lcssa = 0, $$29401824 = 0, $$2946$lcssa = 0, $$29461822 = 0, $$2955 = 0, $$2958 = 0, $$2965 = 0, $$2969 = 0, $$2974 = 0, $$2977 = 0; + var $$2983 = 0, $$2986 = 0, $$2989 = 0, $$2993 = 0, $$30 = 0, $$301021 = 0, $$301127 = 0, $$301233 = 0, $$301339 = 0, $$301446 = 0, $$301537 = 0, $$301637 = 0, $$31 = 0, $$31100$v = 0, $$311022 = 0, $$311128 = 0, $$311234 = 0, $$311340 = 0, $$311447 = 0, $$311538 = 0; + var $$311638 = 0, $$31200 = 0, $$31206 = 0, $$31206$ph = 0, $$31312 = 0, $$31312$ph = 0, $$31419 = 0, $$31419$ph = 0, $$31610 = 0, $$31610$ph = 0, $$32 = 0, $$321023 = 0, $$321129 = 0, $$321235 = 0, $$321341 = 0, $$321448 = 0, $$321448$ph = 0, $$321539 = 0, $$321639 = 0, $$321639$ph = 0; + var $$33 = 0, $$331024 = 0, $$331130 = 0, $$331236 = 0, $$331342 = 0, $$331449 = 0, $$331540 = 0, $$331640 = 0, $$34 = 0, $$341025 = 0, $$341131 = 0, $$341237 = 0, $$341343 = 0, $$341450 = 0, $$341541 = 0, $$341641 = 0, $$35 = 0, $$351026 = 0, $$351132 = 0, $$351238 = 0; + var $$351344 = 0, $$351451 = 0, $$351542 = 0, $$351642 = 0, $$36 = 0, $$361027 = 0, $$361027$ph = 0, $$361133 = 0, $$361133$ph = 0, $$361239 = 0, $$361345 = 0, $$361452 = 0, $$361543 = 0, $$361643 = 0, $$37 = 0, $$37$ph = 0, $$371028 = 0, $$371134 = 0, $$371240 = 0, $$371240$ph = 0; + var $$371346 = 0, $$371346$ph = 0, $$371453 = 0, $$371453$ph = 0, $$371544 = 0, $$371644 = 0, $$371644$ph = 0, $$38 = 0, $$381029 = 0, $$381135 = 0, $$381241 = 0, $$381347 = 0, $$381454 = 0, $$381545 = 0, $$381645 = 0, $$39 = 0, $$391030 = 0, $$391136 = 0, $$391242 = 0, $$391348 = 0; + var $$391455 = 0, $$391546 = 0, $$391646 = 0, $$3966 = 0, $$3970 = 0, $$3990 = 0, $$3990$ph = 0, $$3994 = 0, $$3994$ph = 0, $$40 = 0, $$401031 = 0, $$401137 = 0, $$401243 = 0, $$401349 = 0, $$401456 = 0, $$401547 = 0, $$401647 = 0, $$41 = 0, $$411032 = 0, $$411032$ph = 0; + var $$411138 = 0, $$411138$ph = 0, $$411244 = 0, $$411350 = 0, $$411457 = 0, $$411548 = 0, $$411648 = 0, $$41201 = 0, $$41420 = 0, $$41511 = 0, $$41611 = 0, $$42 = 0, $$42$ph = 0, $$421033 = 0, $$421139 = 0, $$421245 = 0, $$421245$ph = 0, $$421351 = 0, $$421351$ph = 0, $$421458 = 0; + var $$421549 = 0, $$421649 = 0, $$43 = 0, $$431034 = 0, $$431140 = 0, $$431246 = 0, $$431352 = 0, $$431459 = 0, $$431550 = 0, $$431650 = 0, $$44 = 0, $$441035 = 0, $$441141 = 0, $$441247 = 0, $$441353 = 0, $$441460 = 0, $$441460$ph = 0, $$441551 = 0, $$441651 = 0, $$441651$ph = 0; + var $$45 = 0, $$451036 = 0, $$451142 = 0, $$451248 = 0, $$451354 = 0, $$451461 = 0, $$451552 = 0, $$451652 = 0, $$46 = 0, $$461037 = 0, $$461143 = 0, $$461249 = 0, $$461355 = 0, $$461462 = 0, $$461553 = 0, $$461653 = 0, $$47 = 0, $$471038 = 0, $$471144 = 0, $$471250 = 0; + var $$471356 = 0, $$471463 = 0, $$471554 = 0, $$471654 = 0, $$48 = 0, $$481039 = 0, $$481039$ph = 0, $$481145 = 0, $$481145$ph = 0, $$481251 = 0, $$481357 = 0, $$481464 = 0, $$481555 = 0, $$481655 = 0, $$49 = 0, $$49$ph = 0, $$491040 = 0, $$491146 = 0, $$491252 = 0, $$491252$ph = 0; + var $$491358 = 0, $$491358$ph = 0, $$491465 = 0, $$491465$ph = 0, $$491556 = 0, $$491656 = 0, $$491656$ph = 0, $$5 = 0, $$50 = 0, $$501041 = 0, $$501147 = 0, $$501253 = 0, $$501359 = 0, $$501466 = 0, $$501557 = 0, $$501657 = 0, $$51 = 0, $$51102 = 0, $$511042 = 0, $$511148 = 0; + var $$511254 = 0, $$511360 = 0, $$511467 = 0, $$511558 = 0, $$511658 = 0, $$51208 = 0, $$51314 = 0, $$51512 = 0, $$52 = 0, $$521043 = 0, $$521043$ph = 0, $$521149 = 0, $$521255 = 0, $$521361 = 0, $$521468 = 0, $$521559 = 0, $$521659 = 0, $$53 = 0, $$531044 = 0, $$531150 = 0; + var $$531150$ph = 0, $$531256 = 0, $$531362 = 0, $$531469 = 0, $$531560 = 0, $$531660 = 0, $$54 = 0, $$54$ph = 0, $$541045 = 0, $$541151 = 0, $$541257 = 0, $$541257$ph = 0, $$541363 = 0, $$541363$ph = 0, $$541470$ph = 0, $$541561 = 0, $$541661$lcssa = 0, $$541661$ph = 0, $$5416611868 = 0, $$55 = 0; + var $$551046 = 0, $$551152 = 0, $$551258 = 0, $$551364 = 0, $$551471 = 0, $$551562 = 0, $$551662 = 0, $$56 = 0, $$561047 = 0, $$561153 = 0, $$561259 = 0, $$561365 = 0, $$561472 = 0, $$561563 = 0, $$561663 = 0, $$57 = 0, $$571048$ph = 0, $$571154 = 0, $$571260 = 0, $$571366 = 0; + var $$571473 = 0, $$571473$ph = 0, $$571564 = 0, $$571664 = 0, $$571664$ph = 0, $$58 = 0, $$581049 = 0, $$581155$lcssa = 0, $$581155$ph = 0, $$5811551871 = 0, $$581261 = 0, $$581367 = 0, $$581474 = 0, $$581565$lcssa = 0, $$581565$ph = 0, $$5815651869 = 0, $$581665 = 0, $$59$lcssa = 0, $$59$ph = 0, $$591050 = 0; + var $$591156 = 0, $$591262$ph = 0, $$591368$lcssa = 0, $$591368$ph = 0, $$5913681870 = 0, $$591475 = 0, $$591566 = 0, $$591666 = 0, $$591872 = 0, $$5996 = 0, $$6 = 0, $$60 = 0, $$601051 = 0, $$601051$ph = 0, $$601157 = 0, $$601263 = 0, $$601369 = 0, $$601476 = 0, $$601567 = 0, $$61 = 0; + var $$61103 = 0, $$611052 = 0, $$611158 = 0, $$611158$ph = 0, $$611264 = 0, $$611370 = 0, $$611477 = 0, $$611568 = 0, $$611668 = 0, $$61209 = 0, $$61315 = 0, $$61513 = 0, $$62 = 0, $$62$ph = 0, $$621053 = 0, $$621159 = 0, $$621265 = 0, $$621265$ph = 0, $$621371 = 0, $$621371$ph = 0; + var $$621478 = 0, $$621569 = 0, $$621669 = 0, $$63 = 0, $$631054 = 0, $$631266 = 0, $$631372 = 0, $$631479 = 0, $$631479$ph = 0, $$631570 = 0, $$631670 = 0, $$64 = 0, $$641055 = 0, $$641161 = 0, $$641267 = 0, $$641373 = 0, $$641480 = 0, $$641571 = 0, $$641671 = 0, $$641671$ph = 0; + var $$65 = 0, $$651056 = 0, $$651162 = 0, $$651268 = 0, $$651374 = 0, $$651481 = 0, $$651572 = 0, $$651672 = 0, $$66 = 0, $$661057 = 0, $$661057$ph = 0, $$661163 = 0, $$661269 = 0, $$661375 = 0, $$661482 = 0, $$661673 = 0, $$671058 = 0, $$671164 = 0, $$671164$ph = 0, $$671270 = 0; + var $$671483 = 0, $$671574 = 0, $$671674 = 0, $$68 = 0, $$681059 = 0, $$681165 = 0, $$681271 = 0, $$681271$ph = 0, $$681377 = 0, $$681484 = 0, $$681484$ph = 0, $$681575 = 0, $$681675 = 0, $$69 = 0, $$691060 = 0, $$691166 = 0, $$691272 = 0, $$691378 = 0, $$691485 = 0, $$691576 = 0; + var $$691676 = 0, $$691676$ph = 0, $$6997 = 0, $$7 = 0, $$70 = 0, $$701061 = 0, $$701167 = 0, $$701273 = 0, $$701379 = 0, $$701486 = 0, $$701577 = 0, $$701677 = 0, $$71 = 0, $$71$ph = 0, $$71104 = 0, $$711062 = 0, $$711062$ph = 0, $$711168 = 0, $$711274 = 0, $$711380 = 0; + var $$711380$ph = 0, $$711487 = 0, $$711578 = 0, $$711678 = 0, $$71210 = 0, $$71316 = 0, $$71514 = 0, $$72 = 0, $$721063 = 0, $$721169 = 0, $$721169$ph = 0, $$721275 = 0, $$721381 = 0, $$721488 = 0, $$721488$ph = 0, $$721579 = 0, $$721679 = 0, $$73 = 0, $$731064 = 0, $$731170 = 0; + var $$731276 = 0, $$731276$ph = 0, $$731382 = 0, $$731489 = 0, $$731580 = 0, $$731680 = 0, $$731680$ph = 0, $$74 = 0, $$741065 = 0, $$741065$ph = 0, $$741171 = 0, $$741277 = 0, $$741383 = 0, $$741490 = 0, $$741581 = 0, $$741681 = 0, $$75 = 0, $$751066 = 0, $$751172 = 0, $$751278 = 0; + var $$751384 = 0, $$751491 = 0, $$751582 = 0, $$751682 = 0, $$76 = 0, $$76$ph = 0, $$761067 = 0, $$761173 = 0, $$761173$ph = 0, $$761279 = 0, $$761279$ph = 0, $$761385 = 0, $$761385$ph = 0, $$761492 = 0, $$761583 = 0, $$761683 = 0, $$77 = 0, $$771068 = 0, $$771174 = 0, $$771280 = 0; + var $$771386 = 0, $$771584 = 0, $$771684 = 0, $$78 = 0, $$781069 = 0, $$781175 = 0, $$781281 = 0, $$781387 = 0, $$781585 = 0, $$781685 = 0, $$79 = 0, $$791070 = 0, $$791176 = 0, $$791282 = 0, $$791388 = 0, $$791586 = 0, $$791686 = 0, $$7998 = 0, $$8 = 0, $$8$ph = 0; + var $$80 = 0, $$80$ph = 0, $$801071 = 0, $$801177 = 0, $$801283 = 0, $$801389 = 0, $$801389$ph = 0, $$801496 = 0, $$801587 = 0, $$801687 = 0, $$81 = 0, $$81105 = 0, $$81105$ph = 0, $$811178 = 0, $$811284 = 0, $$811390 = 0, $$811497 = 0, $$811588 = 0, $$81211 = 0, $$81211$ph = 0; + var $$81317 = 0, $$81317$ph = 0, $$81424 = 0, $$81515 = 0, $$81615 = 0, $$82 = 0, $$821179 = 0, $$821285 = 0, $$821391 = 0, $$821498 = 0, $$821589 = 0, $$83 = 0, $$831180 = 0, $$831392 = 0, $$831499 = 0, $$831590 = 0, $$84 = 0, $$841075 = 0, $$841393 = 0, $$841500 = 0; + var $$841500$ph = 0, $$841591 = 0, $$841691 = 0, $$85 = 0, $$851076 = 0, $$851394 = 0, $$851501 = 0, $$851592 = 0, $$851692 = 0, $$86 = 0, $$861077 = 0, $$861289 = 0, $$861395 = 0, $$861502 = 0, $$861693 = 0, $$871078 = 0, $$871184 = 0, $$871290 = 0, $$871503 = 0, $$871694 = 0; + var $$881079 = 0, $$881079$ph = 0, $$881185 = 0, $$881291 = 0, $$881504 = 0, $$881595 = 0, $$881695 = 0, $$881695$ph = 0, $$891080 = 0, $$891186 = 0, $$891292 = 0, $$891505 = 0, $$891596 = 0, $$891696 = 0, $$8999 = 0, $$8999$ph = 0, $$9 = 0, $$90 = 0, $$901081 = 0, $$901187 = 0; + var $$901187$ph = 0, $$901293 = 0, $$901293$ph = 0, $$901399 = 0, $$901506 = 0, $$901597 = 0, $$901697 = 0, $$91 = 0, $$91000 = 0, $$91106 = 0, $$911082 = 0, $$911188 = 0, $$911294 = 0, $$911400 = 0, $$911598 = 0, $$911698 = 0, $$91212 = 0, $$91318 = 0, $$91425 = 0, $$91616 = 0; + var $$92 = 0, $$921083 = 0, $$921189 = 0, $$921295 = 0, $$921401 = 0, $$921599 = 0, $$921699 = 0, $$93 = 0, $$931084 = 0, $$931190 = 0, $$931296 = 0, $$931402 = 0, $$931600 = 0, $$931700 = 0, $$94 = 0, $$94$ph = 0, $$941085 = 0, $$941191 = 0, $$941297 = 0, $$941403 = 0; + var $$941403$ph = 0, $$941601 = 0, $$941701 = 0, $$95 = 0, $$951192 = 0, $$951298 = 0, $$951404 = 0, $$951602 = 0, $$96 = 0, $$961193 = 0, $$961299 = 0, $$961405 = 0, $$961603 = 0, $$97 = 0, $$971406 = 0, $$971604 = 0, $$98 = 0, $$981407 = 0, $$981605 = 0, $$99 = 0; + var $$991408 = 0, $$991606 = 0, $$lcssa1778 = 0, $$lcssa1779 = 0, $$lcssa1799 = 0, $$lcssa1802 = 0, $$not = 0, $$not1747 = 0, $$sink12 = 0, $$sink13 = 0, $$sink16 = 0, $$sink17 = 0, $$sink1705 = 0, $$sink1710 = 0, $$sink1713 = 0, $$sink1716 = 0, $$sink1719 = 0, $$sink1722 = 0, $$sink1729 = 0, $$sink1732 = 0; + var $$sink1736 = 0, $$sink1739 = 0, $$sink1743 = 0, $$sink1746 = 0, $$sink1750 = 0, $$sink3 = 0, $$sink3$shrunk = 0, $$sink30 = 0, $$sink9 = 0, $$sink9$shrunk = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; + var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; + var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; + var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; + var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; + var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; + var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; + var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; + var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0; + var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0; + var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0; + var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; + var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; + var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; + var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; + var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; + var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0; + var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0; + var $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0; + var $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0; + var $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0; + var $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; + var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; + var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; + var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; + var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; + var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; + var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; + var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; + var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; + var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; + var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; + var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; + var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; + var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; + var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; + var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; + var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; + var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; + var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; + var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; + var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; + var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $exitcond = 0, $not$ = 0, $not$1755 = 0, $or$cond = 0, $or$cond1702 = 0, $or$cond1752 = 0, $or$cond24 = 0, $or$cond29 = 0, $scevgep = 0; + var $scevgep1947 = 0, $scevgep1948 = 0, $scevgep1955 = 0, $scevgep1957 = 0, $scevgep1959 = 0, $scevgep19611962 = 0, $trunc = 0, $trunc$clear = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $7 = sp + 64|0; + $8 = sp; + $9 = HEAP32[$2>>2]|0; + $10 = (($1) + ($9)|0); + $11 = HEAP32[$5>>2]|0; + $12 = (($4) + ($11)|0); + $13 = $6 & 4; + $14 = ($13|0)!=(0); + $15 = $4; + $16 = $3; + $17 = $16 ^ -1; + $18 = (($15) + ($17))|0; + $19 = (($18) + ($11))|0; + $$1753 = $14 ? -1 : $19; + $20 = (($$1753) + 1)|0; + $21 = $20 & $$1753; + $22 = ($21|0)!=(0); + $23 = ($4>>>0)<($3>>>0); + $or$cond1702 = $23 | $22; + if ($or$cond1702) { + HEAP32[$5>>2] = 0; + HEAP32[$2>>2] = 0; + $$0951 = -3; + STACKTOP = sp;return ($$0951|0); + } + $24 = ((($0)) + 4|0); + $25 = HEAP32[$24>>2]|0; + $26 = ((($0)) + 56|0); + $27 = HEAP32[$26>>2]|0; + $28 = ((($0)) + 32|0); + $29 = HEAP32[$28>>2]|0; + $30 = ((($0)) + 36|0); + $31 = HEAP32[$30>>2]|0; + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + $34 = ((($0)) + 60|0); + $35 = HEAP32[$34>>2]|0; + $36 = HEAP32[$0>>2]|0; + L5: do { + switch ($36|0) { + case 0: { + $37 = ((($0)) + 12|0); + HEAP32[$37>>2] = 0; + $38 = ((($0)) + 8|0); + HEAP32[$38>>2] = 0; + $39 = ((($0)) + 28|0); + HEAP32[$39>>2] = 1; + $40 = ((($0)) + 16|0); + HEAP32[$40>>2] = 1; + $41 = $6 & 1; + $42 = ($41|0)==(0); + if ($42) { + $$01416 = $35;$$01607 = $4;$$41511 = $1;$$5 = 0;$$51102 = 0;$$51208 = 0;$$51314 = 0;$$5996 = 0; + label = 14; + } else { + $43 = ($9|0)<(1); + if ($43) { + $$01097 = 0;$$01203 = 0;$$01309 = 0;$$0987 = 0;$$0991 = 0; + label = 6; + } else { + $$11098$ph = 0;$$11204$ph = 0;$$11310$ph = 0;$$1988$ph = 0;$$1992$ph = 0; + label = 8; + } + } + break; + } + case 1: { + $46 = ($9|0)>(0); + if ($46) { + $$11098$ph = $31;$$11204$ph = $33;$$11310$ph = $27;$$1988$ph = $25;$$1992$ph = $29; + label = 8; + } else { + $$01097 = $31;$$01203 = $33;$$01309 = $27;$$0987 = $25;$$0991 = $29; + label = 6; + } + break; + } + case 2: { + $53 = ($9|0)>(0); + if ($53) { + $$31206$ph = $33;$$31312$ph = $27;$$3990$ph = $25;$$3994$ph = $29;$$sink1705 = $1; + label = 12; + } else { + $$11508 = $1;$$21099 = $31;$$21205 = $33;$$21311 = $27;$$2989 = $25;$$2993 = $29; + label = 10; + } + break; + } + case 36: { + $$0960 = -1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 36; + label = 243; + break; + } + case 3: { + $75 = ($9|0)>(0); + if ($75) { + $$31419$ph = $35;$$31610$ph = $4;$$8$ph = $25;$$81105$ph = $31;$$81211$ph = $33;$$81317$ph = $27;$$8999$ph = $29;$$sink1710 = $1; + label = 18; + } else { + $$21418 = $35;$$21609 = $4;$$61513 = $1;$$7 = $25;$$71104 = $31;$$71210 = $33;$$71316 = $27;$$7998 = $29; + label = 16; + } + break; + } + case 5: { + $90 = ($9|0)>(0); + if ($90) { + $91 = ((($1)) + 1|0); + $92 = HEAP8[$1>>0]|0; + $93 = $92&255; + $$01412 = $93;$$111518 = $91; + } else { + $88 = $6 & 2; + $89 = ($88|0)==(0); + if ($89) { + $$01412 = 0;$$111518 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 5; + label = 243; + break L5; + } + } + $94 = $$01412 << $25; + $95 = $94 | $27; + $96 = (($25) + 8)|0; + $$121519 = $$111518;$$13 = $96;$$131004 = $29;$$131216 = $33;$$131322 = $95;$$81424 = $35;$$81615 = $4; + label = 25; + break; + } + case 6: { + $106 = ($9|0)>(0); + if ($106) { + $$121428$ph = $35;$$121619$ph = $4;$$161113$ph = $31;$$17$ph = $25;$$171008$ph = $29;$$171220$ph = $33;$$171326$ph = $27;$$sink1713 = $1; + label = 32; + } else { + $$111427 = $35;$$111618 = $4;$$151112 = $31;$$151522 = $1;$$16 = $25;$$161007 = $29;$$161219 = $33;$$161325 = $27; + label = 30; + } + break; + } + case 7: { + $120 = ($9|0)>(0); + if ($120) { + $121 = ((($1)) + 1|0); + $122 = HEAP8[$1>>0]|0; + $$151431 = $35;$$151622 = $4;$$191116 = $31;$$191526 = $121;$$20 = $25;$$201011 = $29;$$201223 = $33;$$201329 = $27;$$sink12 = $122; + label = 39; + } else { + $$141430 = $35;$$141621 = $4;$$181115 = $31;$$181525 = $1;$$19 = $25;$$191010 = $29;$$191222 = $33;$$191328 = $27; + label = 36; + } + break; + } + case 39: { + $$171433 = $35;$$171624 = $4;$$211118 = $31;$$211528 = $1;$$22 = $25;$$221013 = $29;$$221225 = $33;$$221331 = $27; + label = 43; + break; + } + case 51: { + $152 = ($9|0)>(0); + if ($152) { + $$211437$ph = $35;$$211628$ph = $4;$$251122$ph = $31;$$26$ph = $25;$$261017$ph = $29;$$261229$ph = $33;$$261335$ph = $27;$$sink1716 = $1; + label = 49; + } else { + $$201436 = $35;$$201627 = $4;$$241121 = $31;$$241531 = $1;$$25 = $25;$$251016 = $29;$$251228 = $33;$$251334 = $27; + label = 47; + } + break; + } + case 52: { + $$231439 = $35;$$231630 = $4;$$271018 = $29;$$271124 = $31;$$271534 = $1;$$28 = $25;$$281231 = $33;$$281337 = $27; + label = 52; + break; + } + case 9: { + $$251441 = $35;$$251632 = $4;$$291020 = $29;$$291126 = $31;$$291536 = $1;$$30 = $25;$$301233 = $33;$$301339 = $27; + label = 55; + break; + } + case 38: { + $$261442 = $35;$$261633 = $4;$$301021 = $29;$$301127 = $31;$$301537 = $1;$$31 = $25;$$311234 = $33;$$311340 = $27; + label = 56; + break; + } + case 40: { + $$271443 = $35;$$271634 = $4;$$311022 = $29;$$311128 = $31;$$311538 = $1;$$32 = $25;$$321235 = $33;$$321341 = $27; + label = 58; + break; + } + case 10: { + $$281444 = $35;$$281635 = $4;$$321023 = $29;$$321129 = $31;$$321539 = $1;$$33 = $25;$$331236 = $33;$$331342 = $27; + label = 60; + break; + } + case 11: { + $193 = ($9|0)>(0); + if ($193) { + $$321448$ph = $35;$$321639$ph = $4;$$361027$ph = $29;$$361133$ph = $31;$$37$ph = $25;$$371240$ph = $33;$$371346$ph = $27;$$sink1719 = $1; + label = 66; + } else { + $$311447 = $35;$$311638 = $4;$$351026 = $29;$$351132 = $31;$$351542 = $1;$$36 = $25;$$361239 = $33;$$361345 = $27; + label = 64; + } + break; + } + case 14: { + $224 = ($9|0)>(0); + if ($224) { + $$371453$ph = $35;$$371644$ph = $4;$$411032$ph = $29;$$411138$ph = $31;$$42$ph = $25;$$421245$ph = $33;$$421351$ph = $27;$$sink1722 = $1; + label = 75; + } else { + $$361452 = $35;$$361643 = $4;$$401031 = $29;$$401137 = $31;$$401547 = $1;$$41 = $25;$$411244 = $33;$$411350 = $27; + label = 73; + } + break; + } + case 35: { + $$401456 = $35;$$401647 = $4;$$441035 = $29;$$441141 = $31;$$441551 = $1;$$45 = $25;$$451248 = $33;$$451354 = $27; + label = 86; + break; + } + case 16: { + $452 = ($9|0)>(0); + if ($452) { + $$441460$ph = $35;$$441651$ph = $4;$$481039$ph = $29;$$481145$ph = $31;$$49$ph = $25;$$491252$ph = $33;$$491358$ph = $27;$$sink1729 = $1; + label = 116; + } else { + $$431459 = $35;$$431650 = $4;$$471038 = $29;$$471144 = $31;$$471554 = $1;$$48 = $25;$$481251 = $33;$$481357 = $27; + label = 114; + } + break; + } + case 17: { + $$461462 = $35;$$461653 = $4;$$491040 = $29;$$501147 = $31;$$501557 = $1;$$51 = $25;$$511254 = $33;$$511360 = $27; + label = 125; + break; + } + case 18: { + $503 = ($9|0)>(0); + if ($503) { + $$491465$ph = $35;$$491656$ph = $4;$$521043$ph = $29;$$531150$ph = $31;$$54$ph = $25;$$541257$ph = $33;$$541363$ph = $27;$$sink1732 = $1; + label = 130; + } else { + $$481464 = $35;$$481655 = $4;$$511042 = $29;$$521149 = $31;$$521559 = $1;$$53 = $25;$$531256 = $33;$$531362 = $27; + label = 128; + } + break; + } + case 21: { + $$511467 = $35;$$511658 = $4;$$541045 = $29;$$551152 = $31;$$551562 = $1;$$56 = $25;$$561259 = $33;$$561365 = $27; + label = 136; + break; + } + case 23: { + $572 = ($9|0)>(0); + if ($572) { + $$571473$ph = $35;$$571664$ph = $4;$$601051$ph = $29;$$611158$ph = $31;$$62$ph = $25;$$621265$ph = $33;$$621371$ph = $27;$$sink1736 = $1; + label = 153; + } else { + $$561472 = $35;$$561663 = $4;$$591050 = $29;$$601157 = $31;$$601567 = $1;$$61 = $25;$$611264 = $33;$$611370 = $27; + label = 151; + } + break; + } + case 24: { + $$591475 = $35;$$591666 = $4;$$621053 = $29;$$621159 = $31;$$631570 = $1;$$64 = $25;$$641267 = $33;$$641373 = $27; + label = 160; + break; + } + case 25: { + $696 = ($9|0)>(0); + if ($696) { + $$631479$ph = $35;$$641671$ph = $4;$$661057$ph = $29;$$671164$ph = $31;$$681271$ph = $33;$$71$ph = $25;$$711380$ph = $27;$$sink1739 = $1; + label = 182; + } else { + $$621478 = $35;$$631670 = $4;$$651056 = $29;$$661163 = $31;$$671270 = $33;$$691576 = $1;$$70 = $25;$$701379 = $27; + label = 180; + } + break; + } + case 26: { + $737 = ($9|0)>(0); + if ($737) { + $$681484$ph = $35;$$691676$ph = $4;$$711062$ph = $29;$$721169$ph = $31;$$731276$ph = $33;$$76$ph = $25;$$761385$ph = $27;$$sink1743 = $1; + label = 195; + } else { + $$671483 = $35;$$681675 = $4;$$701061 = $29;$$711168 = $31;$$721275 = $33;$$741581 = $1;$$75 = $25;$$751384 = $27; + label = 193; + } + break; + } + case 27: { + $784 = ($9|0)>(0); + if ($784) { + $$721488$ph = $35;$$731680$ph = $4;$$741065$ph = $29;$$761173$ph = $31;$$761279$ph = $33;$$80$ph = $25;$$801389$ph = $27;$$sink1746 = $1; + label = 206; + } else { + $$711487 = $35;$$721679 = $4;$$731064 = $29;$$751172 = $31;$$751278 = $33;$$781585 = $1;$$79 = $25;$$791388 = $27; + label = 204; + } + break; + } + case 37: { + $$731489 = $35;$$761683 = $4;$$771068 = $29;$$791176 = $31;$$791282 = $33;$$821589 = $1;$$83 = $25;$$831392 = $27; + label = 210; + break; + } + case 53: { + $$751491 = $35;$$781685 = $4;$$791070 = $29;$$811178 = $31;$$811284 = $33;$$841591 = $1;$$85 = $25;$$851394 = $27; + label = 213; + break; + } + case 32: { + $842 = ($9|0)>(0); + if ($842) { + $843 = ((($1)) + 1|0); + $844 = HEAP8[$1>>0]|0; + $845 = $844&255; + $$0949 = $845;$$881595 = $843; + } else { + $840 = $6 & 2; + $841 = ($840|0)==(0); + if ($841) { + $$0949 = 0;$$881595 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 32; + label = 243; + break L5; + } + } + $846 = $$0949 << $25; + $847 = $846 | $27; + $848 = (($25) + 8)|0; + $$801496 = $35;$$841075 = $29;$$841691 = $4;$$861289 = $33;$$891596 = $$881595;$$90 = $848;$$901399 = $847; + label = 226; + break; + } + case 41: { + $858 = ($9|0)>(0); + if ($858) { + $$841500$ph = $35;$$881079$ph = $29;$$881695$ph = $4;$$901187$ph = $31;$$901293$ph = $33;$$94$ph = $25;$$941403$ph = $27;$$sink1750 = $1; + label = 233; + } else { + $$831499 = $35;$$871078 = $29;$$871694 = $4;$$891186 = $31;$$891292 = $33;$$921599 = $1;$$93 = $25;$$931402 = $27; + label = 231; + } + break; + } + case 42: { + $871 = ($9|0)>(0); + if ($871) { + $872 = ((($1)) + 1|0); + $873 = HEAP8[$1>>0]|0; + $874 = $873&255; + $$0948 = $874;$$871503 = $35;$$911082 = $29;$$911698 = $4;$$931190 = $31;$$931296 = $33;$$961603 = $872;$$97 = $25;$$971406 = $27; + label = 241; + } else { + $$861502 = $35;$$901081 = $29;$$901697 = $4;$$921189 = $31;$$921295 = $33;$$951602 = $1;$$96 = $25;$$961405 = $27; + label = 237; + } + break; + } + case 34: { + $$881504 = $35;$$921083 = $29;$$921699 = $4;$$941191 = $31;$$941297 = $33;$$971604 = $1;$$98 = $25;$$981407 = $27; + label = 242; + break; + } + default: { + $$100 = $25;$$1001409 = $27;$$1961 = -1;$$901506 = $35;$$941085 = $29;$$941701 = $4;$$961193 = $31;$$961299 = $33;$$991606 = $1; + label = 244; + } + } + } while(0); + if ((label|0) == 6) { + $44 = $6 & 2; + $45 = ($44|0)==(0); + if ($45) { + $$01507 = $1;$$11098 = $$01097;$$11204 = $$01203;$$11310 = $$01309;$$1988 = $$0987;$$1992 = $$0991;$$sink3$shrunk = 0; + label = 9; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$0991;$$931700 = $4;$$951192 = $$01097;$$951298 = $$01203;$$981605 = $1;$$99 = $$0987;$$991408 = $$01309;$$sink30 = 1; + label = 243; + } + } + else if ((label|0) == 8) { + $47 = ((($1)) + 1|0); + $48 = HEAP8[$1>>0]|0; + $$01507 = $47;$$11098 = $$11098$ph;$$11204 = $$11204$ph;$$11310 = $$11310$ph;$$1988 = $$1988$ph;$$1992 = $$1992$ph;$$sink3$shrunk = $48; + label = 9; + } + if ((label|0) == 9) { + $$sink3 = $$sink3$shrunk&255; + $49 = ((($0)) + 8|0); + HEAP32[$49>>2] = $$sink3; + $50 = ($$01507>>>0)<($10>>>0); + if ($50) { + $$31206$ph = $$11204;$$31312$ph = $$11310;$$3990$ph = $$1988;$$3994$ph = $$1992;$$sink1705 = $$01507; + label = 12; + } else { + $$11508 = $$01507;$$21099 = $$11098;$$21205 = $$11204;$$21311 = $$11310;$$2989 = $$1988;$$2993 = $$1992; + label = 10; + } + } + if ((label|0) == 10) { + $51 = $6 & 2; + $52 = ($51|0)==(0); + if ($52) { + $$21509 = $$11508;$$31206 = $$21205;$$31312 = $$21311;$$3990 = $$2989;$$3994 = $$2993;$$sink9$shrunk = 0; + label = 13; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$2993;$$931700 = $4;$$951192 = $$21099;$$951298 = $$21205;$$981605 = $$11508;$$99 = $$2989;$$991408 = $$21311;$$sink30 = 2; + label = 243; + } + } + else if ((label|0) == 12) { + $54 = ((($$sink1705)) + 1|0); + $55 = HEAP8[$$sink1705>>0]|0; + $$21509 = $54;$$31206 = $$31206$ph;$$31312 = $$31312$ph;$$3990 = $$3990$ph;$$3994 = $$3994$ph;$$sink9$shrunk = $55; + label = 13; + } + if ((label|0) == 13) { + $$sink9 = $$sink9$shrunk&255; + $56 = ((($0)) + 12|0); + HEAP32[$56>>2] = $$sink9; + $57 = ((($0)) + 8|0); + $58 = HEAP32[$57>>2]|0; + $59 = $58 << 8; + $60 = $59 | $$sink9; + $61 = (($60>>>0) % 31)&-1; + $62 = $$sink9 & 32; + $63 = $61 | $62; + $64 = $58 & 15; + $65 = ($64|0)!=(8); + $not$ = ($63|0)!=(0); + $$1754 = $65 | $not$; + $66 = $58 >>> 4; + $67 = 256 << $66; + $68 = ($67>>>0)>(32768); + $69 = ($20>>>0)<($67>>>0); + $$ = $68 | $69; + $not$1755 = $14 ^ 1; + $70 = $$ & $not$1755; + $$31100$v = $70 | $$1754; + if ($$31100$v) { + $$0960 = -1;$$891505 = $35;$$931084 = $$3994;$$931700 = $4;$$951192 = 1;$$951298 = $$31206;$$981605 = $$21509;$$99 = $$3990;$$991408 = $$31312;$$sink30 = 36; + label = 243; + } else { + $$01416 = $35;$$01607 = $4;$$41511 = $$21509;$$5 = $$3990;$$51102 = 0;$$51208 = $$31206;$$51314 = $$31312;$$5996 = $$3994; + label = 14; + } + } + L46: while(1) { + switch (label|0) { + case 14: { + label = 0; + $71 = ($$5>>>0)<(3); + if ($71) { + $$11417 = $$01416;$$11608 = $$01607;$$51512 = $$41511;$$6 = $$5;$$61103 = $$51102;$$61209 = $$51208;$$61315 = $$51314;$$6997 = $$5996; + label = 15; + } else { + $$41420 = $$01416;$$41611 = $$01607;$$81515 = $$41511;$$9 = $$5;$$91000 = $$5996;$$91106 = $$51102;$$91212 = $$51208;$$91318 = $$51314; + label = 20; + } + break; + } + case 16: { + label = 0; + $73 = $6 & 2; + $74 = ($73|0)==(0); + if ($74) { + $$01413$shrunk = 0;$$31419 = $$21418;$$31610 = $$21609;$$71514 = $$61513;$$8 = $$7;$$81105 = $$71104;$$81211 = $$71210;$$81317 = $$71316;$$8999 = $$7998; + label = 19; + } else { + $$0960 = 1;$$891505 = $$21418;$$931084 = $$7998;$$931700 = $$21609;$$951192 = $$71104;$$951298 = $$71210;$$981605 = $$61513;$$99 = $$7;$$991408 = $$71316;$$sink30 = 3; + label = 243; + continue L46; + } + break; + } + case 18: { + label = 0; + $76 = ((($$sink1710)) + 1|0); + $77 = HEAP8[$$sink1710>>0]|0; + $$01413$shrunk = $77;$$31419 = $$31419$ph;$$31610 = $$31610$ph;$$71514 = $76;$$8 = $$8$ph;$$81105 = $$81105$ph;$$81211 = $$81211$ph;$$81317 = $$81317$ph;$$8999 = $$8999$ph; + label = 19; + break; + } + case 25: { + label = 0; + $97 = $$13 & 7; + $98 = $$131322 >>> $97; + $99 = (($$13) - ($97))|0; + $$131110 = 0;$$131520 = $$121519;$$14 = $99;$$141005 = $$131004;$$141217 = $$131216;$$141323 = $98;$$91425 = $$81424;$$91616 = $$81615; + label = 26; + break; + } + case 30: { + label = 0; + $104 = $6 & 2; + $105 = ($104|0)==(0); + if ($105) { + $$01411$shrunk = 0;$$121428 = $$111427;$$121619 = $$111618;$$161113 = $$151112;$$161523 = $$151522;$$17 = $$16;$$171008 = $$161007;$$171220 = $$161219;$$171326 = $$161325; + label = 33; + } else { + $$0960 = 1;$$891505 = $$111427;$$931084 = $$161007;$$931700 = $$111618;$$951192 = $$151112;$$951298 = $$161219;$$981605 = $$151522;$$99 = $$16;$$991408 = $$161325;$$sink30 = 6; + label = 243; + continue L46; + } + break; + } + case 32: { + label = 0; + $107 = ((($$sink1713)) + 1|0); + $108 = HEAP8[$$sink1713>>0]|0; + $$01411$shrunk = $108;$$121428 = $$121428$ph;$$121619 = $$121619$ph;$$161113 = $$161113$ph;$$161523 = $107;$$17 = $$17$ph;$$171008 = $$171008$ph;$$171220 = $$171220$ph;$$171326 = $$171326$ph; + label = 33; + break; + } + case 36: { + label = 0; + $118 = $6 & 2; + $119 = ($118|0)==(0); + if ($119) { + $$151431 = $$141430;$$151622 = $$141621;$$191116 = $$181115;$$191526 = $$181525;$$20 = $$19;$$201011 = $$191010;$$201223 = $$191222;$$201329 = $$191328;$$sink12 = 0; + label = 39; + continue L46; + } else { + $$0960 = 1;$$891505 = $$141430;$$931084 = $$191010;$$931700 = $$141621;$$951192 = $$181115;$$951298 = $$191222;$$981605 = $$181525;$$99 = $$19;$$991408 = $$191328;$$sink30 = 7; + label = 243; + continue L46; + } + break; + } + case 39: { + label = 0; + $$sink13 = (((($0)) + 10528|0) + ($$191116)|0); + HEAP8[$$sink13>>0] = $$sink12; + $$161432 = $$151431;$$161623 = $$151622;$$201117 = $$191116;$$201527 = $$191526;$$21 = $$20;$$211012 = $$201011;$$211224 = $$201223;$$211330 = $$201329; + label = 41; + break; + } + case 43: { + label = 0; + $$0960 = -1;$$891505 = $$171433;$$931084 = $$221013;$$931700 = $$171624;$$951192 = $$211118;$$951298 = $$221225;$$981605 = $$211528;$$99 = $$22;$$991408 = $$221331;$$sink30 = 39; + label = 243; + continue L46; + break; + } + case 47: { + label = 0; + $150 = $6 & 2; + $151 = ($150|0)==(0); + if ($151) { + $$01410$shrunk = 0;$$211437 = $$201436;$$211628 = $$201627;$$251122 = $$241121;$$251532 = $$241531;$$26 = $$25;$$261017 = $$251016;$$261229 = $$251228;$$261335 = $$251334; + label = 50; + } else { + $$0960 = 1;$$891505 = $$201436;$$931084 = $$251016;$$931700 = $$201627;$$951192 = $$241121;$$951298 = $$251228;$$981605 = $$241531;$$99 = $$25;$$991408 = $$251334;$$sink30 = 51; + label = 243; + continue L46; + } + break; + } + case 49: { + label = 0; + $153 = ((($$sink1716)) + 1|0); + $154 = HEAP8[$$sink1716>>0]|0; + $$01410$shrunk = $154;$$211437 = $$211437$ph;$$211628 = $$211628$ph;$$251122 = $$251122$ph;$$251532 = $153;$$26 = $$26$ph;$$261017 = $$261017$ph;$$261229 = $$261229$ph;$$261335 = $$261335$ph; + label = 50; + break; + } + case 52: { + label = 0; + $162 = ($$231630>>>0)<($12>>>0); + if (!($162)) { + $$0960 = 2;$$891505 = $$231439;$$931084 = $$271018;$$931700 = $$231630;$$951192 = $$271124;$$951298 = $$281231;$$981605 = $$271534;$$99 = $$28;$$991408 = $$281337;$$sink30 = 52; + label = 243; + continue L46; + } + $163 = $$271018&255; + $164 = ((($$231630)) + 1|0); + HEAP8[$$231630>>0] = $163; + $165 = (($$271124) + -1)|0; + $$181434 = $$231439;$$181625 = $164;$$221119 = $165;$$221529 = $$271534;$$23 = $$28;$$231014 = $$271018;$$231226 = $$281231;$$231332 = $$281337; + label = 44; + break; + } + case 55: { + label = 0; + $167 = ($$251632>>>0)<($12>>>0); + if ($167) { + $$261442 = $$251441;$$261633 = $$251632;$$301021 = $$291020;$$301127 = $$291126;$$301537 = $$291536;$$31 = $$30;$$311234 = $$301233;$$311340 = $$301339; + label = 56; + continue L46; + } else { + $$0960 = 2;$$891505 = $$251441;$$931084 = $$291020;$$931700 = $$251632;$$951192 = $$291126;$$951298 = $$301233;$$981605 = $$291536;$$99 = $$30;$$991408 = $$301339;$$sink30 = 9; + label = 243; + continue L46; + } + break; + } + case 56: { + label = 0; + $168 = ($$301537>>>0)<($10>>>0); + if ($168) { + $171 = $12; + $172 = $$261633; + $173 = (($171) - ($172))|0; + $174 = $10; + $175 = $$301537; + $176 = (($174) - ($175))|0; + $177 = ($173>>>0)<($176>>>0); + $$sink17 = $177 ? $12 : $10; + $$sink16 = $177 ? $$261633 : $$301537; + $178 = $$sink17; + $179 = $$sink16; + $180 = (($178) - ($179))|0; + $181 = ($180>>>0)<($$301127>>>0); + $$$301127 = $181 ? $180 : $$301127; + _memcpy(($$261633|0),($$301537|0),($$$301127|0))|0; + $182 = (($$301537) + ($$$301127)|0); + $183 = (($$261633) + ($$$301127)|0); + $184 = (($$301127) - ($$$301127))|0; + $$241440 = $$261442;$$241631 = $183;$$281019 = $$301021;$$281125 = $184;$$281535 = $182;$$29 = $$31;$$291232 = $$311234;$$291338 = $$311340; + label = 54; + break; + } else { + $169 = $6 & 2; + $170 = ($169|0)==(0); + if ($170) { + $$271443 = $$261442;$$271634 = $$261633;$$311022 = $$301021;$$311128 = $$301127;$$311538 = $$301537;$$32 = $$31;$$321235 = $$311234;$$321341 = $$311340; + label = 58; + continue L46; + } else { + $$0960 = 1;$$891505 = $$261442;$$931084 = $$301021;$$931700 = $$261633;$$951192 = $$301127;$$951298 = $$311234;$$981605 = $$301537;$$99 = $$31;$$991408 = $$311340;$$sink30 = 38; + label = 243; + continue L46; + } + } + break; + } + case 58: { + label = 0; + $$0960 = -1;$$891505 = $$271443;$$931084 = $$311022;$$931700 = $$271634;$$951192 = $$311128;$$951298 = $$321235;$$981605 = $$311538;$$99 = $$32;$$991408 = $$321341;$$sink30 = 40; + label = 243; + continue L46; + break; + } + case 60: { + label = 0; + $$0960 = -1;$$891505 = $$281444;$$931084 = $$321023;$$931700 = $$281635;$$951192 = $$321129;$$951298 = $$331236;$$981605 = $$321539;$$99 = $$33;$$991408 = $$331342;$$sink30 = 10; + label = 243; + continue L46; + break; + } + case 64: { + label = 0; + $191 = $6 & 2; + $192 = ($191|0)==(0); + if ($192) { + $$01300$shrunk = 0;$$321448 = $$311447;$$321639 = $$311638;$$361027 = $$351026;$$361133 = $$351132;$$361543 = $$351542;$$37 = $$36;$$371240 = $$361239;$$371346 = $$361345; + label = 67; + } else { + $$0960 = 1;$$891505 = $$311447;$$931084 = $$351026;$$931700 = $$311638;$$951192 = $$351132;$$951298 = $$361239;$$981605 = $$351542;$$99 = $$36;$$991408 = $$361345;$$sink30 = 11; + label = 243; + continue L46; + } + break; + } + case 66: { + label = 0; + $194 = ((($$sink1719)) + 1|0); + $195 = HEAP8[$$sink1719>>0]|0; + $$01300$shrunk = $195;$$321448 = $$321448$ph;$$321639 = $$321639$ph;$$361027 = $$361027$ph;$$361133 = $$361133$ph;$$361543 = $194;$$37 = $$37$ph;$$371240 = $$371240$ph;$$371346 = $$371346$ph; + label = 67; + break; + } + case 73: { + label = 0; + $222 = $6 & 2; + $223 = ($222|0)==(0); + if ($223) { + $$01202$shrunk = 0;$$371453 = $$361452;$$371644 = $$361643;$$411032 = $$401031;$$411138 = $$401137;$$411548 = $$401547;$$42 = $$41;$$421245 = $$411244;$$421351 = $$411350; + label = 76; + } else { + $$0960 = 1;$$891505 = $$361452;$$931084 = $$401031;$$931700 = $$361643;$$951192 = $$401137;$$951298 = $$411244;$$981605 = $$401547;$$99 = $$41;$$991408 = $$411350;$$sink30 = 14; + label = 243; + continue L46; + } + break; + } + case 75: { + label = 0; + $225 = ((($$sink1722)) + 1|0); + $226 = HEAP8[$$sink1722>>0]|0; + $$01202$shrunk = $226;$$371453 = $$371453$ph;$$371644 = $$371644$ph;$$411032 = $$411032$ph;$$411138 = $$411138$ph;$$411548 = $225;$$42 = $$42$ph;$$421245 = $$421245$ph;$$421351 = $$421351$ph; + label = 76; + break; + } + case 86: { + label = 0; + $$0960 = -1;$$891505 = $$401456;$$931084 = $$441035;$$931700 = $$401647;$$951192 = $$441141;$$951298 = $$451248;$$981605 = $$441551;$$99 = $$45;$$991408 = $$451354;$$sink30 = 35; + label = 243; + continue L46; + break; + } + case 114: { + label = 0; + $450 = $6 & 2; + $451 = ($450|0)==(0); + if ($451) { + $$0980$shrunk = 0;$$441460 = $$431459;$$441651 = $$431650;$$481039 = $$471038;$$481145 = $$471144;$$481555 = $$471554;$$49 = $$48;$$491252 = $$481251;$$491358 = $$481357; + label = 117; + } else { + $$0960 = 1;$$891505 = $$431459;$$931084 = $$471038;$$931700 = $$431650;$$951192 = $$471144;$$951298 = $$481251;$$981605 = $$471554;$$99 = $$48;$$991408 = $$481357;$$sink30 = 16; + label = 243; + continue L46; + } + break; + } + case 116: { + label = 0; + $453 = ((($$sink1729)) + 1|0); + $454 = HEAP8[$$sink1729>>0]|0; + $$0980$shrunk = $454;$$441460 = $$441460$ph;$$441651 = $$441651$ph;$$481039 = $$481039$ph;$$481145 = $$481145$ph;$$481555 = $453;$$49 = $$49$ph;$$491252 = $$491252$ph;$$491358 = $$491358$ph; + label = 117; + break; + } + case 125: { + label = 0; + $$0960 = -1;$$891505 = $$461462;$$931084 = $$491040;$$931700 = $$461653;$$951192 = $$501147;$$951298 = $$511254;$$981605 = $$501557;$$99 = $$51;$$991408 = $$511360;$$sink30 = 17; + label = 243; + continue L46; + break; + } + case 128: { + label = 0; + $501 = $6 & 2; + $502 = ($501|0)==(0); + if ($502) { + $$0979$shrunk = 0;$$491465 = $$481464;$$491656 = $$481655;$$521043 = $$511042;$$531150 = $$521149;$$531560 = $$521559;$$54 = $$53;$$541257 = $$531256;$$541363 = $$531362; + label = 131; + } else { + $$0960 = 1;$$891505 = $$481464;$$931084 = $$511042;$$931700 = $$481655;$$951192 = $$521149;$$951298 = $$531256;$$981605 = $$521559;$$99 = $$53;$$991408 = $$531362;$$sink30 = 18; + label = 243; + continue L46; + } + break; + } + case 130: { + label = 0; + $504 = ((($$sink1732)) + 1|0); + $505 = HEAP8[$$sink1732>>0]|0; + $$0979$shrunk = $505;$$491465 = $$491465$ph;$$491656 = $$491656$ph;$$521043 = $$521043$ph;$$531150 = $$531150$ph;$$531560 = $504;$$54 = $$54$ph;$$541257 = $$541257$ph;$$541363 = $$541363$ph; + label = 131; + break; + } + case 136: { + label = 0; + $$0960 = -1;$$891505 = $$511467;$$931084 = $$541045;$$931700 = $$511658;$$951192 = $$551152;$$951298 = $$561259;$$981605 = $$551562;$$99 = $$56;$$991408 = $$561365;$$sink30 = 21; + label = 243; + continue L46; + break; + } + case 151: { + label = 0; + $570 = $6 & 2; + $571 = ($570|0)==(0); + if ($571) { + $$0971$shrunk = 0;$$571473 = $$561472;$$571664 = $$561663;$$601051 = $$591050;$$611158 = $$601157;$$611568 = $$601567;$$62 = $$61;$$621265 = $$611264;$$621371 = $$611370; + label = 154; + } else { + $$0960 = 1;$$891505 = $$561472;$$931084 = $$591050;$$931700 = $$561663;$$951192 = $$601157;$$951298 = $$611264;$$981605 = $$601567;$$99 = $$61;$$991408 = $$611370;$$sink30 = 23; + label = 243; + continue L46; + } + break; + } + case 153: { + label = 0; + $573 = ((($$sink1736)) + 1|0); + $574 = HEAP8[$$sink1736>>0]|0; + $$0971$shrunk = $574;$$571473 = $$571473$ph;$$571664 = $$571664$ph;$$601051 = $$601051$ph;$$611158 = $$611158$ph;$$611568 = $573;$$62 = $$62$ph;$$621265 = $$621265$ph;$$621371 = $$621371$ph; + label = 154; + break; + } + case 160: { + label = 0; + $610 = ($$591666>>>0)<($12>>>0); + if (!($610)) { + $$0960 = 2;$$891505 = $$591475;$$931084 = $$621053;$$931700 = $$591666;$$951192 = $$621159;$$951298 = $$641267;$$981605 = $$631570;$$99 = $$64;$$991408 = $$641373;$$sink30 = 24; + label = 243; + continue L46; + } + $611 = $$621159&255; + $612 = ((($$591666)) + 1|0); + HEAP8[$$591666>>0] = $611; + $$541470$ph = $$591475;$$541661$ph = $612;$$571048$ph = $$621053;$$581155$ph = $$621159;$$581565$ph = $$631570;$$59$ph = $$64;$$591262$ph = $$641267;$$591368$ph = $$641373; + label = 140; + break; + } + case 180: { + label = 0; + $694 = $6 & 2; + $695 = ($694|0)==(0); + if ($695) { + $$0959$shrunk = 0;$$631479 = $$621478;$$641671 = $$631670;$$661057 = $$651056;$$671164 = $$661163;$$681271 = $$671270;$$701577 = $$691576;$$71 = $$70;$$711380 = $$701379; + label = 183; + } else { + $$0960 = 1;$$891505 = $$621478;$$931084 = $$651056;$$931700 = $$631670;$$951192 = $$661163;$$951298 = $$671270;$$981605 = $$691576;$$99 = $$70;$$991408 = $$701379;$$sink30 = 25; + label = 243; + continue L46; + } + break; + } + case 182: { + label = 0; + $697 = ((($$sink1739)) + 1|0); + $698 = HEAP8[$$sink1739>>0]|0; + $$0959$shrunk = $698;$$631479 = $$631479$ph;$$641671 = $$641671$ph;$$661057 = $$661057$ph;$$671164 = $$671164$ph;$$681271 = $$681271$ph;$$701577 = $697;$$71 = $$71$ph;$$711380 = $$711380$ph; + label = 183; + break; + } + case 193: { + label = 0; + $735 = $6 & 2; + $736 = ($735|0)==(0); + if ($736) { + $$0952$shrunk = 0;$$681484 = $$671483;$$691676 = $$681675;$$711062 = $$701061;$$721169 = $$711168;$$731276 = $$721275;$$751582 = $$741581;$$76 = $$75;$$761385 = $$751384; + label = 196; + } else { + $$0960 = 1;$$891505 = $$671483;$$931084 = $$701061;$$931700 = $$681675;$$951192 = $$711168;$$951298 = $$721275;$$981605 = $$741581;$$99 = $$75;$$991408 = $$751384;$$sink30 = 26; + label = 243; + continue L46; + } + break; + } + case 195: { + label = 0; + $738 = ((($$sink1743)) + 1|0); + $739 = HEAP8[$$sink1743>>0]|0; + $$0952$shrunk = $739;$$681484 = $$681484$ph;$$691676 = $$691676$ph;$$711062 = $$711062$ph;$$721169 = $$721169$ph;$$731276 = $$731276$ph;$$751582 = $738;$$76 = $$76$ph;$$761385 = $$761385$ph; + label = 196; + break; + } + case 204: { + label = 0; + $782 = $6 & 2; + $783 = ($782|0)==(0); + if ($783) { + $$0950$shrunk = 0;$$721488 = $$711487;$$731680 = $$721679;$$741065 = $$731064;$$761173 = $$751172;$$761279 = $$751278;$$791586 = $$781585;$$80 = $$79;$$801389 = $$791388; + label = 207; + } else { + $$0960 = 1;$$891505 = $$711487;$$931084 = $$731064;$$931700 = $$721679;$$951192 = $$751172;$$951298 = $$751278;$$981605 = $$781585;$$99 = $$79;$$991408 = $$791388;$$sink30 = 27; + label = 243; + continue L46; + } + break; + } + case 206: { + label = 0; + $785 = ((($$sink1746)) + 1|0); + $786 = HEAP8[$$sink1746>>0]|0; + $$0950$shrunk = $786;$$721488 = $$721488$ph;$$731680 = $$731680$ph;$$741065 = $$741065$ph;$$761173 = $$761173$ph;$$761279 = $$761279$ph;$$791586 = $785;$$80 = $$80$ph;$$801389 = $$801389$ph; + label = 207; + break; + } + case 210: { + label = 0; + $$0960 = -1;$$891505 = $$731489;$$931084 = $$771068;$$931700 = $$761683;$$951192 = $$791176;$$951298 = $$791282;$$981605 = $$821589;$$99 = $$83;$$991408 = $$831392;$$sink30 = 37; + label = 243; + continue L46; + break; + } + case 213: { + label = 0; + $809 = ($$781685>>>0)<($12>>>0); + if (!($809)) { + $$0960 = 2;$$891505 = $$751491;$$931084 = $$791070;$$931700 = $$781685;$$951192 = $$811178;$$951298 = $$811284;$$981605 = $$841591;$$99 = $$85;$$991408 = $$851394;$$sink30 = 53; + label = 243; + continue L46; + } + $810 = (($$751491) + 1)|0; + $811 = (($$751491) - ($$791070))|0; + $812 = $811 & $$1753; + $813 = (($3) + ($812)|0); + $814 = HEAP8[$813>>0]|0; + $815 = ((($$781685)) + 1|0); + HEAP8[$$781685>>0] = $814; + $$741490 = $810;$$771684 = $815;$$781069 = $$791070;$$801177 = $$811178;$$801283 = $$811284;$$831590 = $$841591;$$84 = $$85;$$841393 = $$851394; + label = 212; + break; + } + case 226: { + label = 0; + $849 = $$90 & 7; + $850 = $$901399 >>> $849; + $851 = (($$90) - ($849))|0; + $$811497 = $$801496;$$851076 = $$841075;$$851692 = $$841691;$$871184 = 0;$$871290 = $$861289;$$901597 = $$891596;$$91 = $851;$$911400 = $850; + label = 227; + break; + } + case 231: { + label = 0; + $856 = $6 & 2; + $857 = ($856|0)==(0); + if ($857) { + $$0947$shrunk = 0;$$841500 = $$831499;$$881079 = $$871078;$$881695 = $$871694;$$901187 = $$891186;$$901293 = $$891292;$$931600 = $$921599;$$94 = $$93;$$941403 = $$931402; + label = 234; + } else { + $$0960 = 1;$$891505 = $$831499;$$931084 = $$871078;$$931700 = $$871694;$$951192 = $$891186;$$951298 = $$891292;$$981605 = $$921599;$$99 = $$93;$$991408 = $$931402;$$sink30 = 41; + label = 243; + continue L46; + } + break; + } + case 233: { + label = 0; + $859 = ((($$sink1750)) + 1|0); + $860 = HEAP8[$$sink1750>>0]|0; + $$0947$shrunk = $860;$$841500 = $$841500$ph;$$881079 = $$881079$ph;$$881695 = $$881695$ph;$$901187 = $$901187$ph;$$901293 = $$901293$ph;$$931600 = $859;$$94 = $$94$ph;$$941403 = $$941403$ph; + label = 234; + break; + } + case 237: { + label = 0; + $869 = $6 & 2; + $870 = ($869|0)==(0); + if ($870) { + $$0948 = 0;$$871503 = $$861502;$$911082 = $$901081;$$911698 = $$901697;$$931190 = $$921189;$$931296 = $$921295;$$961603 = $$951602;$$97 = $$96;$$971406 = $$961405; + label = 241; + continue L46; + } else { + $$0960 = 1;$$891505 = $$861502;$$931084 = $$901081;$$931700 = $$901697;$$951192 = $$921189;$$951298 = $$921295;$$981605 = $$951602;$$99 = $$96;$$991408 = $$961405;$$sink30 = 42; + label = 243; + continue L46; + } + break; + } + case 241: { + label = 0; + $878 = ((($0)) + 16|0); + $879 = HEAP32[$878>>2]|0; + $880 = $879 << 8; + $881 = $880 | $$0948; + HEAP32[$878>>2] = $881; + $882 = (($$931190) + 1)|0; + $$811497 = $$871503;$$851076 = $$911082;$$851692 = $$911698;$$871184 = $882;$$871290 = $$931296;$$901597 = $$961603;$$91 = $$97;$$911400 = $$971406; + label = 227; + break; + } + case 242: { + label = 0; + $$0960 = 0;$$891505 = $$881504;$$931084 = $$921083;$$931700 = $$921699;$$951192 = $$941191;$$951298 = $$941297;$$981605 = $$971604;$$99 = $$98;$$991408 = $$981407;$$sink30 = 34; + label = 243; + continue L46; + break; + } + case 243: { + label = 0; + HEAP32[$0>>2] = $$sink30; + $$100 = $$99;$$1001409 = $$991408;$$1961 = $$0960;$$901506 = $$891505;$$941085 = $$931084;$$941701 = $$931700;$$961193 = $$951192;$$961299 = $$951298;$$991606 = $$981605; + label = 244; + continue L46; + break; + } + case 244: { + label = 0; + HEAP32[$24>>2] = $$100; + HEAP32[$26>>2] = $$1001409; + HEAP32[$28>>2] = $$941085; + HEAP32[$30>>2] = $$961193; + HEAP32[$32>>2] = $$961299; + HEAP32[$34>>2] = $$901506; + $883 = $$991606; + $884 = $1; + $885 = (($883) - ($884))|0; + HEAP32[$2>>2] = $885; + $886 = $$941701; + $887 = $4; + $888 = (($886) - ($887))|0; + HEAP32[$5>>2] = $888; + $889 = $6 & 9; + $890 = ($889|0)!=(0); + $891 = ($$1961|0)>(-1); + $or$cond29 = $890 & $891; + if ($or$cond29) { + break L46; + } else { + $$0951 = $$1961; + label = 258; + break L46; + } + break; + } + } + switch (label|0) { + case 19: { + label = 0; + $$01413 = $$01413$shrunk&255; + $78 = $$01413 << $$8; + $79 = $78 | $$81317; + $80 = (($$8) + 8)|0; + $81 = ($80>>>0)<(3); + if ($81) { + $$11417 = $$31419;$$11608 = $$31610;$$51512 = $$71514;$$6 = $80;$$61103 = $$81105;$$61209 = $$81211;$$61315 = $79;$$6997 = $$8999; + label = 15; + } else { + $$41420 = $$31419;$$41611 = $$31610;$$81515 = $$71514;$$9 = $80;$$91000 = $$8999;$$91106 = $$81105;$$91212 = $$81211;$$91318 = $79; + label = 20; + } + break; + } + case 33: { + label = 0; + $$01411 = $$01411$shrunk&255; + $109 = $$01411 << $$17; + $110 = $109 | $$171326; + $111 = (($$17) + 8)|0; + $112 = ($$17>>>0)>(4294967287); + if ($112) { + $$101426 = $$121428;$$101617 = $$121619;$$141111 = $$161113;$$141521 = $$161523;$$15 = $111;$$151006 = $$171008;$$151218 = $$171220;$$151324 = $110; + label = 29; + } else { + $$131429 = $$121428;$$131620 = $$121619;$$171114 = $$161113;$$171524 = $$161523;$$18 = $111;$$181009 = $$171008;$$181221 = $$171220;$$181327 = $110; + label = 34; + } + break; + } + case 50: { + label = 0; + $$01410 = $$01410$shrunk&255; + $155 = $$01410 << $$26; + $156 = $155 | $$261335; + $157 = (($$26) + 8)|0; + $158 = ($$26>>>0)>(4294967287); + if ($158) { + $$191435 = $$211437;$$191626 = $$211628;$$231120 = $$251122;$$231530 = $$251532;$$24 = $157;$$241015 = $$261017;$$241227 = $$261229;$$241333 = $156; + label = 46; + } else { + $$221438 = $$211437;$$221629 = $$211628;$$261123 = $$251122;$$261533 = $$251532;$$27 = $157;$$271230 = $$261229;$$271336 = $156; + label = 51; + } + break; + } + case 67: { + label = 0; + $$01300 = $$01300$shrunk&255; + $196 = $$01300 << $$37; + $197 = $196 | $$371346; + $198 = (($$37) + 8)|0; + $199 = (11194 + ($$361133)|0); + $200 = HEAP8[$199>>0]|0; + $201 = $200 << 24 >> 24; + $202 = ($198>>>0)<($201>>>0); + if ($202) { + $$301446 = $$321448;$$301637 = $$321639;$$341025 = $$361027;$$341131 = $$361133;$$341541 = $$361543;$$35 = $198;$$351238 = $$371240;$$351344 = $197; + label = 63; + } else { + $$331449 = $$321448;$$331640 = $$321639;$$371028 = $$361027;$$371134 = $$361133;$$371544 = $$361543;$$38 = $198;$$381241 = $$371240;$$381347 = $197; + label = 68; + } + break; + } + case 76: { + label = 0; + $$01202 = $$01202$shrunk&255; + $227 = $$01202 << $$42; + $228 = $227 | $$421351; + $229 = (($$42) + 8)|0; + $230 = ($229>>>0)<(3); + if ($230) { + $$351451 = $$371453;$$351642 = $$371644;$$391030 = $$411032;$$391136 = $$411138;$$391546 = $$411548;$$40 = $229;$$401243 = $$421245;$$401349 = $228; + label = 72; + } else { + $$381454 = $$371453;$$381645 = $$371644;$$421033 = $$411032;$$421139 = $$411138;$$421549 = $$411548;$$43 = $229;$$431246 = $$421245;$$431352 = $228; + label = 77; + } + break; + } + case 117: { + label = 0; + $$0980 = $$0980$shrunk&255; + $455 = $$0980 << $$49; + $456 = $455 | $$491358; + $457 = (($$49) + 8)|0; + $458 = ($457>>>0)<(15); + if ($458) { + $$421458 = $$441460;$$421649 = $$441651;$$461037 = $$481039;$$461143 = $$481145;$$461553 = $$481555;$$47 = $457;$$471250 = $$491252;$$471356 = $456; + label = 108; + } else { + $$451461 = $$441460;$$451652 = $$441651;$$491146 = $$481145;$$491556 = $$481555;$$50 = $457;$$501253 = $$491252;$$501359 = $456; + label = 119; + } + break; + } + case 131: { + label = 0; + $$0979 = $$0979$shrunk&255; + $506 = $$0979 << $$54; + $507 = $506 | $$541363; + $508 = (($$54) + 8)|0; + $509 = ($508>>>0)<($$541257>>>0); + if ($509) { + $$471463 = $$491465;$$471654 = $$491656;$$501041 = $$521043;$$511148 = $$531150;$$511558 = $$531560;$$52 = $508;$$521255 = $$541257;$$521361 = $507; + label = 127; + } else { + $$501466 = $$491465;$$501657 = $$491656;$$531044 = $$521043;$$541151 = $$531150;$$541561 = $$531560;$$55 = $508;$$551258 = $$541257;$$551364 = $507; + label = 132; + } + break; + } + case 154: { + label = 0; + $$0971 = $$0971$shrunk&255; + $575 = $$0971 << $$62; + $576 = $575 | $$621371; + $577 = (($$62) + 8)|0; + $578 = ($577>>>0)<(15); + if ($578) { + $$551471 = $$571473;$$551662 = $$571664;$$581049 = $$601051;$$591156 = $$611158;$$591566 = $$611568;$$60 = $577;$$601263 = $$621265;$$601369 = $576; + label = 145; + } else { + $$581474 = $$571473;$$581665 = $$571664;$$611052 = $$601051;$$621569 = $$611568;$$63 = $577;$$631266 = $$621265;$$631372 = $576; + label = 156; + } + break; + } + case 183: { + label = 0; + $$0959 = $$0959$shrunk&255; + $699 = $$0959 << $$71; + $700 = $699 | $$711380; + $701 = (($$71) + 8)|0; + $702 = ($701>>>0)<($$681271>>>0); + if ($702) { + $$611477 = $$631479;$$621669 = $$641671;$$641055 = $$661057;$$651162 = $$671164;$$661269 = $$681271;$$681575 = $$701577;$$69 = $701;$$691378 = $700; + label = 179; + } else { + $$641480 = $$631479;$$651672 = $$641671;$$671058 = $$661057;$$681165 = $$671164;$$691272 = $$681271;$$711578 = $$701577;$$72 = $701;$$721381 = $700; + label = 184; + } + break; + } + case 196: { + label = 0; + $$0952 = $$0952$shrunk&255; + $740 = $$0952 << $$76; + $741 = $740 | $$761385; + $742 = (($$76) + 8)|0; + $743 = ($742>>>0)<(15); + if ($743) { + $$661482 = $$681484;$$671674 = $$691676;$$691060 = $$711062;$$701167 = $$721169;$$711274 = $$731276;$$731580 = $$751582;$$74 = $742;$$741383 = $741; + label = 187; + } else { + $$691485 = $$681484;$$701677 = $$691676;$$731170 = $$721169;$$761583 = $$751582;$$77 = $742;$$771386 = $741; + label = 198; + } + break; + } + case 207: { + label = 0; + $$0950 = $$0950$shrunk&255; + $787 = $$0950 << $$80; + $788 = $787 | $$801389; + $789 = (($$80) + 8)|0; + $790 = ($789>>>0)<($$761279>>>0); + if ($790) { + $$701486 = $$721488;$$711678 = $$731680;$$721063 = $$741065;$$741171 = $$761173;$$741277 = $$761279;$$771584 = $$791586;$$78 = $789;$$781387 = $788; + label = 203; + } else { + $$741681 = $$731680;$$751066 = $$741065;$$771174 = $$761173;$$771280 = $$761279;$$801587 = $$791586;$$81 = $789;$$811390 = $788; + label = 208; + } + break; + } + case 227: { + label = 0; + $852 = ($$871184>>>0)<(4); + if (!($852)) { + $$881504 = $$811497;$$921083 = $$851076;$$921699 = $$851692;$$941191 = $$871184;$$941297 = $$871290;$$971604 = $$901597;$$98 = $$91;$$981407 = $$911400; + label = 242; + continue L46; + } + $853 = ($$91|0)==(0); + if (!($853)) { + $854 = ($$91>>>0)<(8); + if ($854) { + $$821498 = $$811497;$$861077 = $$851076;$$861693 = $$851692;$$881185 = $$871184;$$881291 = $$871290;$$911598 = $$901597;$$92 = $$91;$$921401 = $$911400; + label = 230; + break; + } else { + $$851501 = $$811497;$$891080 = $$851076;$$891696 = $$851692;$$911188 = $$871184;$$911294 = $$871290;$$941601 = $$901597;$$95 = $$91;$$951404 = $$911400; + label = 235; + break; + } + } + $868 = ($$901597>>>0)<($10>>>0); + if (!($868)) { + $$861502 = $$811497;$$901081 = $$851076;$$901697 = $$851692;$$921189 = $$871184;$$921295 = $$871290;$$951602 = $$901597;$$96 = 0;$$961405 = $$911400; + label = 237; + continue L46; + } + $875 = ((($$901597)) + 1|0); + $876 = HEAP8[$$901597>>0]|0; + $877 = $876&255; + $$0948 = $877;$$871503 = $$811497;$$911082 = $$851076;$$911698 = $$851692;$$931190 = $$871184;$$931296 = $$871290;$$961603 = $875;$$97 = 0;$$971406 = $$911400; + label = 241; + continue L46; + break; + } + case 234: { + label = 0; + $$0947 = $$0947$shrunk&255; + $861 = $$0947 << $$94; + $862 = $861 | $$941403; + $863 = (($$94) + 8)|0; + $864 = ($$94>>>0)>(4294967287); + if ($864) { + $$821498 = $$841500;$$861077 = $$881079;$$861693 = $$881695;$$881185 = $$901187;$$881291 = $$901293;$$911598 = $$931600;$$92 = $863;$$921401 = $862; + label = 230; + } else { + $$851501 = $$841500;$$891080 = $$881079;$$891696 = $$881695;$$911188 = $$901187;$$911294 = $$901293;$$941601 = $$931600;$$95 = $863;$$951404 = $862; + label = 235; + } + break; + } + } + L119: do { + if ((label|0) == 15) { + label = 0; + $72 = ($$51512>>>0)<($10>>>0); + if ($72) { + $$31419$ph = $$11417;$$31610$ph = $$11608;$$8$ph = $$6;$$81105$ph = $$61103;$$81211$ph = $$61209;$$81317$ph = $$61315;$$8999$ph = $$6997;$$sink1710 = $$51512; + label = 18; + continue L46; + } else { + $$21418 = $$11417;$$21609 = $$11608;$$61513 = $$51512;$$7 = $$6;$$71104 = $$61103;$$71210 = $$61209;$$71316 = $$61315;$$7998 = $$6997; + label = 16; + continue L46; + } + } + else if ((label|0) == 20) { + label = 0; + $82 = $$91318 & 7; + $83 = ((($0)) + 20|0); + HEAP32[$83>>2] = $82; + $84 = $$91318 >>> 3; + $85 = (($$9) + -3)|0; + $86 = $82 >>> 1; + $87 = ((($0)) + 24|0); + HEAP32[$87>>2] = $86; + $trunc = $86&255; + $trunc$clear = $trunc & 3; + switch ($trunc$clear<<24>>24) { + case 0: { + $$121519 = $$81515;$$13 = $85;$$131004 = $$91000;$$131216 = $$91212;$$131322 = $84;$$81424 = $$41420;$$81615 = $$41611; + label = 25; + continue L46; + break; + } + case 3: { + $$281444 = $$41420;$$281635 = $$41611;$$321023 = $$91000;$$321129 = $$91106;$$321539 = $$81515;$$33 = $85;$$331236 = $$91212;$$331342 = $84; + label = 60; + continue L46; + break; + } + case 1: { + break; + } + default: { + $$291445 = $$41420;$$291636 = $$41611;$$331024 = $$91000;$$331130 = 0;$$331540 = $$81515;$$34 = $85;$$341237 = $$91212;$$341343 = $84; + label = 61; + break L119; + } + } + $240 = ((($0)) + 44|0); + HEAP32[$240>>2] = 288; + $241 = ((($0)) + 48|0); + HEAP32[$241>>2] = 32; + $242 = ((($0)) + 3552|0); + ;HEAP32[$242>>2]=84215045|0;HEAP32[$242+4>>2]=84215045|0;HEAP32[$242+8>>2]=84215045|0;HEAP32[$242+12>>2]=84215045|0;HEAP32[$242+16>>2]=84215045|0;HEAP32[$242+20>>2]=84215045|0;HEAP32[$242+24>>2]=84215045|0;HEAP32[$242+28>>2]=84215045|0; + $scevgep19611962 = ((($0)) + 64|0); + _memset(($scevgep19611962|0),8,144)|0; + $scevgep1959 = ((($0)) + 208|0); + dest=$scevgep1959; stop=dest+112|0; do { HEAP8[dest>>0]=9|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1957 = ((($0)) + 320|0); + dest=$scevgep1957; stop=dest+24|0; do { HEAP8[dest>>0]=7|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1955 = ((($0)) + 344|0); + $243 = $scevgep1955; + $244 = $243; + HEAP8[$244>>0]=134744072&255;HEAP8[$244+1>>0]=(134744072>>8)&255;HEAP8[$244+2>>0]=(134744072>>16)&255;HEAP8[$244+3>>0]=134744072>>24; + $245 = (($243) + 4)|0; + $246 = $245; + HEAP8[$246>>0]=134744072&255;HEAP8[$246+1>>0]=(134744072>>8)&255;HEAP8[$246+2>>0]=(134744072>>16)&255;HEAP8[$246+3>>0]=134744072>>24; + $$391455 = $$41420;$$391646 = $$41611;$$431034 = $$91000;$$431140 = $$91106;$$431550 = $$81515;$$44 = $85;$$441247 = $$91212;$$441353 = $84; + label = 80; + } + else if ((label|0) == 230) { + label = 0; + $855 = ($$911598>>>0)<($10>>>0); + if ($855) { + $$841500$ph = $$821498;$$881079$ph = $$861077;$$881695$ph = $$861693;$$901187$ph = $$881185;$$901293$ph = $$881291;$$94$ph = $$92;$$941403$ph = $$921401;$$sink1750 = $$911598; + label = 233; + continue L46; + } else { + $$831499 = $$821498;$$871078 = $$861077;$$871694 = $$861693;$$891186 = $$881185;$$891292 = $$881291;$$921599 = $$911598;$$93 = $$92;$$931402 = $$921401; + label = 231; + continue L46; + } + } + else if ((label|0) == 235) { + label = 0; + $865 = $$951404 & 255; + $866 = $$951404 >>> 8; + $867 = (($$95) + -8)|0; + $$0948 = $865;$$871503 = $$851501;$$911082 = $$891080;$$911698 = $$891696;$$931190 = $$911188;$$931296 = $$911294;$$961603 = $$941601;$$97 = $867;$$971406 = $866; + label = 241; + continue L46; + } + } while(0); + L125: while(1) { + L126: switch (label|0) { + case 26: { + label = 0; + $100 = ($$131110>>>0)<(4); + if (!($100)) { + $127 = ((($0)) + 10528|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = ((($0)) + 10529|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = $132 << 8; + $134 = $133 | $129; + $135 = ((($0)) + 10530|0); + $136 = HEAP8[$135>>0]|0; + $137 = $136&255; + $138 = ((($0)) + 10531|0); + $139 = HEAP8[$138>>0]|0; + $140 = $139&255; + $141 = $140 << 8; + $142 = $141 | $137; + $143 = $142 ^ 65535; + $144 = ($134|0)==($143|0); + if ($144) { + $$181434 = $$91425;$$181625 = $$91616;$$221119 = $134;$$221529 = $$131520;$$23 = $$14;$$231014 = $$141005;$$231226 = $$141217;$$231332 = $$141323; + label = 44; + continue L125; + } else { + $$171433 = $$91425;$$171624 = $$91616;$$211118 = $134;$$211528 = $$131520;$$22 = $$14;$$221013 = $$141005;$$221225 = $$141217;$$221331 = $$141323; + label = 43; + continue L46; + } + } + $101 = ($$14|0)==(0); + if (!($101)) { + $102 = ($$14>>>0)<(8); + if ($102) { + $$101426 = $$91425;$$101617 = $$91616;$$141111 = $$131110;$$141521 = $$131520;$$15 = $$14;$$151006 = $$141005;$$151218 = $$141217;$$151324 = $$141323; + label = 29; + continue L125; + } else { + $$131429 = $$91425;$$131620 = $$91616;$$171114 = $$131110;$$171524 = $$131520;$$18 = $$14;$$181009 = $$141005;$$181221 = $$141217;$$181327 = $$141323; + label = 34; + continue L125; + } + } + $117 = ($$131520>>>0)<($10>>>0); + if (!($117)) { + $$141430 = $$91425;$$141621 = $$91616;$$181115 = $$131110;$$181525 = $$131520;$$19 = 0;$$191010 = $$141005;$$191222 = $$141217;$$191328 = $$141323; + label = 36; + continue L46; + } + $123 = ((($$131520)) + 1|0); + $124 = HEAP8[$$131520>>0]|0; + $125 = (((($0)) + 10528|0) + ($$131110)|0); + HEAP8[$125>>0] = $124; + $$161432 = $$91425;$$161623 = $$91616;$$201117 = $$131110;$$201527 = $123;$$21 = 0;$$211012 = $$141005;$$211224 = $$141217;$$211330 = $$141323; + label = 41; + continue L125; + break; + } + case 29: { + label = 0; + $103 = ($$141521>>>0)<($10>>>0); + if ($103) { + $$121428$ph = $$101426;$$121619$ph = $$101617;$$161113$ph = $$141111;$$17$ph = $$15;$$171008$ph = $$151006;$$171220$ph = $$151218;$$171326$ph = $$151324;$$sink1713 = $$141521; + label = 32; + continue L46; + } else { + $$111427 = $$101426;$$111618 = $$101617;$$151112 = $$141111;$$151522 = $$141521;$$16 = $$15;$$161007 = $$151006;$$161219 = $$151218;$$161325 = $$151324; + label = 30; + continue L46; + } + break; + } + case 34: { + label = 0; + $113 = $$181327&255; + $114 = (((($0)) + 10528|0) + ($$171114)|0); + HEAP8[$114>>0] = $113; + $115 = $$181327 >>> 8; + $116 = (($$18) + -8)|0; + $$161432 = $$131429;$$161623 = $$131620;$$201117 = $$171114;$$201527 = $$171524;$$21 = $116;$$211012 = $$181009;$$211224 = $$181221;$$211330 = $115; + label = 41; + continue L125; + break; + } + case 41: { + label = 0; + $126 = (($$201117) + 1)|0; + $$131110 = $126;$$131520 = $$201527;$$14 = $$21;$$141005 = $$211012;$$141217 = $$211224;$$141323 = $$211330;$$91425 = $$161432;$$91616 = $$161623; + label = 26; + continue L125; + break; + } + case 44: { + label = 0; + $145 = ($$221119|0)!=(0); + $146 = ($$23|0)!=(0); + $147 = $145 & $146; + if (!($147)) { + $$241440 = $$181434;$$241631 = $$181625;$$281019 = $$231014;$$281125 = $$221119;$$281535 = $$221529;$$29 = $$23;$$291232 = $$231226;$$291338 = $$231332; + label = 54; + continue L125; + } + $148 = ($$23>>>0)<(8); + if ($148) { + $$191435 = $$181434;$$191626 = $$181625;$$231120 = $$221119;$$231530 = $$221529;$$24 = $$23;$$241015 = $$231014;$$241227 = $$231226;$$241333 = $$231332; + label = 46; + continue L125; + } else { + $$221438 = $$181434;$$221629 = $$181625;$$261123 = $$221119;$$261533 = $$221529;$$27 = $$23;$$271230 = $$231226;$$271336 = $$231332; + label = 51; + continue L125; + } + break; + } + case 46: { + label = 0; + $149 = ($$231530>>>0)<($10>>>0); + if ($149) { + $$211437$ph = $$191435;$$211628$ph = $$191626;$$251122$ph = $$231120;$$26$ph = $$24;$$261017$ph = $$241015;$$261229$ph = $$241227;$$261335$ph = $$241333;$$sink1716 = $$231530; + label = 49; + continue L46; + } else { + $$201436 = $$191435;$$201627 = $$191626;$$241121 = $$231120;$$241531 = $$231530;$$25 = $$24;$$251016 = $$241015;$$251228 = $$241227;$$251334 = $$241333; + label = 47; + continue L46; + } + break; + } + case 51: { + label = 0; + $159 = $$271336 & 255; + $160 = $$271336 >>> 8; + $161 = (($$27) + -8)|0; + $$231439 = $$221438;$$231630 = $$221629;$$271018 = $159;$$271124 = $$261123;$$271534 = $$261533;$$28 = $161;$$281231 = $$271230;$$281337 = $160; + label = 52; + continue L46; + break; + } + case 54: { + label = 0; + $166 = ($$281125|0)==(0); + if ($166) { + $$761492 = $$241440;$$801071 = $$281019;$$801687 = $$241631;$$821285 = $$291232;$$831180 = 0;$$851592 = $$281535;$$86 = $$29;$$861395 = $$291338; + label = 220; + break L125; + } else { + $$251441 = $$241440;$$251632 = $$241631;$$291020 = $$281019;$$291126 = $$281125;$$291536 = $$281535;$$30 = $$29;$$301233 = $$291232;$$301339 = $$291338; + label = 55; + continue L46; + } + break; + } + case 61: { + label = 0; + $185 = ($$331130>>>0)<(3); + if ($185) { + $186 = (11194 + ($$331130)|0); + $187 = HEAP8[$186>>0]|0; + $188 = $187 << 24 >> 24; + $189 = ($$34>>>0)<($188>>>0); + if ($189) { + $$301446 = $$291445;$$301637 = $$291636;$$341025 = $$331024;$$341131 = $$331130;$$341541 = $$331540;$$35 = $$34;$$351238 = $$341237;$$351344 = $$341343; + label = 63; + continue L125; + } else { + $$331449 = $$291445;$$331640 = $$291636;$$371028 = $$331024;$$371134 = $$331130;$$371544 = $$331540;$$38 = $$34;$$381241 = $$341237;$$381347 = $$341343; + label = 68; + continue L125; + } + } else { + $216 = ((($0)) + 7040|0); + _memset(($216|0),0,288)|0; + $$341450 = $$291445;$$341641 = $$291636;$$381029 = $$331024;$$381135 = 0;$$381545 = $$331540;$$39 = $$34;$$391242 = $$341237;$$391348 = $$341343; + label = 70; + break; + } + break; + } + case 63: { + label = 0; + $190 = ($$341541>>>0)<($10>>>0); + if ($190) { + $$321448$ph = $$301446;$$321639$ph = $$301637;$$361027$ph = $$341025;$$361133$ph = $$341131;$$37$ph = $$35;$$371240$ph = $$351238;$$371346$ph = $$351344;$$sink1719 = $$341541; + label = 66; + continue L46; + } else { + $$311447 = $$301446;$$311638 = $$301637;$$351026 = $$341025;$$351132 = $$341131;$$351542 = $$341541;$$36 = $$35;$$361239 = $$351238;$$361345 = $$351344; + label = 64; + continue L46; + } + break; + } + case 68: { + label = 0; + $203 = (11194 + ($$371134)|0); + $204 = HEAP8[$203>>0]|0; + $205 = $204 << 24 >> 24; + $206 = 1 << $205; + $207 = (($206) + -1)|0; + $208 = $207 & $$381347; + $209 = (((($0)) + 44|0) + ($$371134<<2)|0); + $210 = $$381347 >>> $205; + $211 = (($$38) - ($205))|0; + $212 = (3196 + ($$371134<<2)|0); + $213 = HEAP32[$212>>2]|0; + $214 = (($208) + ($213))|0; + HEAP32[$209>>2] = $214; + $215 = (($$371134) + 1)|0; + $$291445 = $$331449;$$291636 = $$331640;$$331024 = $$371028;$$331130 = $215;$$331540 = $$371544;$$34 = $211;$$341237 = $$381241;$$341343 = $210; + label = 61; + continue L125; + break; + } + case 72: { + label = 0; + $221 = ($$391546>>>0)<($10>>>0); + if ($221) { + $$371453$ph = $$351451;$$371644$ph = $$351642;$$411032$ph = $$391030;$$411138$ph = $$391136;$$42$ph = $$40;$$421245$ph = $$401243;$$421351$ph = $$401349;$$sink1722 = $$391546; + label = 75; + continue L46; + } else { + $$361452 = $$351451;$$361643 = $$351642;$$401031 = $$391030;$$401137 = $$391136;$$401547 = $$391546;$$41 = $$40;$$411244 = $$401243;$$411350 = $$401349; + label = 73; + continue L46; + } + break; + } + case 77: { + label = 0; + $231 = $$431352 & 7; + $232 = $$431352 >>> 3; + $233 = (($$43) + -3)|0; + $234 = $231&255; + $235 = (11198 + ($$421139)|0); + $236 = HEAP8[$235>>0]|0; + $237 = $236&255; + $238 = (((($0)) + 7040|0) + ($237)|0); + HEAP8[$238>>0] = $234; + $239 = (($$421139) + 1)|0; + $$341450 = $$381454;$$341641 = $$381645;$$381029 = $$421033;$$381135 = $239;$$381545 = $$421549;$$39 = $233;$$391242 = $$431246;$$391348 = $232; + label = 70; + break; + } + case 80: { + label = 0; + $247 = ((($0)) + 24|0); + $248 = HEAP32[$247>>2]|0; + $249 = ($248|0)>(-1); + if ($249) { + dest=$8; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $250 = (((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0); + _memset(($250|0),0,3200)|0; + $251 = HEAP32[$247>>2]|0; + $252 = (((($0)) + 44|0) + ($251<<2)|0); + $253 = HEAP32[$252>>2]|0; + $254 = ($253|0)==(0); + if (!($254)) { + $255 = HEAP32[$247>>2]|0; + $256 = (((($0)) + 44|0) + ($255<<2)|0); + $257 = HEAP32[$256>>2]|0; + $$010951864 = 0; + while(1) { + $258 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010951864)|0); + $259 = HEAP8[$258>>0]|0; + $260 = $259&255; + $261 = (($8) + ($260<<2)|0); + $262 = HEAP32[$261>>2]|0; + $263 = (($262) + 1)|0; + HEAP32[$261>>2] = $263; + $264 = (($$010951864) + 1)|0; + $265 = ($264>>>0)<($257>>>0); + if ($265) { + $$010951864 = $264; + } else { + break; + } + } + } + $266 = ((($7)) + 4|0); + HEAP32[$266>>2] = 0; + HEAP32[$7>>2] = 0; + $267 = ((($8)) + 4|0); + $268 = HEAP32[$267>>2]|0; + $269 = $268 << 1; + $270 = ((($7)) + 8|0); + HEAP32[$270>>2] = $269; + $271 = ((($8)) + 8|0); + $272 = HEAP32[$271>>2]|0; + $273 = (($272) + ($268))|0; + $274 = (($272) + ($269))|0; + $275 = $274 << 1; + $276 = ((($7)) + 12|0); + HEAP32[$276>>2] = $275; + $277 = ((($8)) + 12|0); + $278 = HEAP32[$277>>2]|0; + $279 = (($278) + ($273))|0; + $280 = (($278) + ($275))|0; + $281 = $280 << 1; + $282 = ((($7)) + 16|0); + HEAP32[$282>>2] = $281; + $283 = ((($8)) + 16|0); + $284 = HEAP32[$283>>2]|0; + $285 = (($284) + ($279))|0; + $286 = (($284) + ($281))|0; + $287 = $286 << 1; + $288 = ((($7)) + 20|0); + HEAP32[$288>>2] = $287; + $289 = ((($8)) + 20|0); + $290 = HEAP32[$289>>2]|0; + $291 = (($290) + ($285))|0; + $292 = (($290) + ($287))|0; + $293 = $292 << 1; + $294 = ((($7)) + 24|0); + HEAP32[$294>>2] = $293; + $295 = ((($8)) + 24|0); + $296 = HEAP32[$295>>2]|0; + $297 = (($296) + ($291))|0; + $298 = (($296) + ($293))|0; + $299 = $298 << 1; + $300 = ((($7)) + 28|0); + HEAP32[$300>>2] = $299; + $301 = ((($8)) + 28|0); + $302 = HEAP32[$301>>2]|0; + $303 = (($302) + ($297))|0; + $304 = (($302) + ($299))|0; + $305 = $304 << 1; + $306 = ((($7)) + 32|0); + HEAP32[$306>>2] = $305; + $307 = ((($8)) + 32|0); + $308 = HEAP32[$307>>2]|0; + $309 = (($308) + ($303))|0; + $310 = (($308) + ($305))|0; + $311 = $310 << 1; + $312 = ((($7)) + 36|0); + HEAP32[$312>>2] = $311; + $313 = ((($8)) + 36|0); + $314 = HEAP32[$313>>2]|0; + $315 = (($314) + ($309))|0; + $316 = (($314) + ($311))|0; + $317 = $316 << 1; + $318 = ((($7)) + 40|0); + HEAP32[$318>>2] = $317; + $319 = ((($8)) + 40|0); + $320 = HEAP32[$319>>2]|0; + $321 = (($320) + ($315))|0; + $322 = (($320) + ($317))|0; + $323 = $322 << 1; + $324 = ((($7)) + 44|0); + HEAP32[$324>>2] = $323; + $325 = ((($8)) + 44|0); + $326 = HEAP32[$325>>2]|0; + $327 = (($326) + ($321))|0; + $328 = (($326) + ($323))|0; + $329 = $328 << 1; + $330 = ((($7)) + 48|0); + HEAP32[$330>>2] = $329; + $331 = ((($8)) + 48|0); + $332 = HEAP32[$331>>2]|0; + $333 = (($332) + ($327))|0; + $334 = (($332) + ($329))|0; + $335 = $334 << 1; + $336 = ((($7)) + 52|0); + HEAP32[$336>>2] = $335; + $337 = ((($8)) + 52|0); + $338 = HEAP32[$337>>2]|0; + $339 = (($338) + ($333))|0; + $340 = (($338) + ($335))|0; + $341 = $340 << 1; + $342 = ((($7)) + 56|0); + HEAP32[$342>>2] = $341; + $343 = ((($8)) + 56|0); + $344 = HEAP32[$343>>2]|0; + $345 = (($344) + ($339))|0; + $346 = (($344) + ($341))|0; + $347 = $346 << 1; + $348 = ((($7)) + 60|0); + HEAP32[$348>>2] = $347; + $349 = ((($8)) + 60|0); + $350 = HEAP32[$349>>2]|0; + $351 = (($350) + ($345))|0; + $352 = (($350) + ($347))|0; + $353 = $352 << 1; + $354 = ((($7)) + 64|0); + HEAP32[$354>>2] = $353; + $355 = ($353|0)!=(65536); + $356 = ($351>>>0)>(1); + $or$cond = $355 & $356; + if ($or$cond) { + $$401456 = $$391455;$$401647 = $$391646;$$441035 = $$431034;$$441141 = $$431140;$$441551 = $$431550;$$45 = $$44;$$451248 = $$441247;$$451354 = $$441353; + label = 86; + continue L46; + } + $357 = HEAP32[$247>>2]|0; + $358 = (((($0)) + 44|0) + ($357<<2)|0); + $359 = HEAP32[$358>>2]|0; + $360 = ($359|0)==(0); + if ($360) { + $$lcssa1779 = $357; + } else { + $$010911856 = 0;$$011971855 = -1; + while(1) { + $361 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010911856)|0); + $362 = HEAP8[$361>>0]|0; + $363 = $362&255; + $364 = ($362<<24>>24)==(0); + L142: do { + if ($364) { + $$41201 = $$011971855; + } else { + $365 = (($7) + ($363<<2)|0); + $366 = HEAP32[$365>>2]|0; + $367 = (($366) + 1)|0; + HEAP32[$365>>2] = $367; + $$010861840 = $366;$$010871839 = $363;$$010881838 = 0; + while(1) { + $368 = $$010881838 << 1; + $369 = $$010861840 & 1; + $370 = $369 | $368; + $371 = (($$010871839) + -1)|0; + $372 = $$010861840 >>> 1; + $373 = ($371|0)==(0); + if ($373) { + break; + } else { + $$010861840 = $372;$$010871839 = $371;$$010881838 = $370; + } + } + $374 = ($362&255)<(11); + if ($374) { + $375 = $363 << 9; + $376 = $375 | $$010911856; + $377 = $376&65535; + $378 = ($370>>>0)<(1024); + if (!($378)) { + $$41201 = $$011971855; + break; + } + $379 = 1 << $363; + $$110891852 = $370; + while(1) { + $380 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($$110891852<<1)|0); + HEAP16[$380>>1] = $377; + $381 = (($$110891852) + ($379))|0; + $382 = ($381>>>0)<(1024); + if ($382) { + $$110891852 = $381; + } else { + $$41201 = $$011971855; + break L142; + } + } + } + $383 = $370 & 1023; + $384 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($383<<1)|0); + $385 = HEAP16[$384>>1]|0; + $386 = $385 << 16 >> 16; + $387 = ($385<<16>>16)==(0); + if ($387) { + $388 = (($$011971855) + -2)|0; + $389 = $$011971855&65535; + HEAP16[$384>>1] = $389; + $$01194 = $$011971855;$$11198 = $388; + } else { + $$01194 = $386;$$11198 = $$011971855; + } + $390 = $$010881838 >>> 9; + $391 = ($362&255)>(11); + $392 = $390 & 1; + $393 = (($392) - ($$01194))|0; + $394 = (($393) + -1)|0; + if ($391) { + $395 = $390 & 4194303; + $$010941846 = $363;$$211991845 = $$11198;$397 = $394;$406 = $395; + while(1) { + $396 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($397<<1)|0); + $398 = HEAP16[$396>>1]|0; + $399 = ($398<<16>>16)==(0); + if ($399) { + $400 = $$211991845&65535; + HEAP16[$396>>1] = $400; + $401 = (($$211991845) + -2)|0; + $$21196 = $$211991845;$$31200 = $401; + } else { + $402 = $398 << 16 >> 16; + $$21196 = $402;$$31200 = $$211991845; + } + $403 = (($$010941846) + -1)|0; + $404 = ($403>>>0)>(11); + $405 = $406 >>> 1; + $407 = $405 & 1; + $408 = (($407) - ($$21196))|0; + $409 = (($408) + -1)|0; + if ($404) { + $$010941846 = $403;$$211991845 = $$31200;$397 = $409;$406 = $405; + } else { + $$21199$lcssa = $$31200;$$lcssa1778 = $409; + break; + } + } + } else { + $$21199$lcssa = $$11198;$$lcssa1778 = $394; + } + $410 = $$010911856&65535; + $411 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($$lcssa1778<<1)|0); + HEAP16[$411>>1] = $410; + $$41201 = $$21199$lcssa; + } + } while(0); + $412 = (($$010911856) + 1)|0; + $413 = HEAP32[$247>>2]|0; + $414 = (((($0)) + 44|0) + ($413<<2)|0); + $415 = HEAP32[$414>>2]|0; + $416 = ($412>>>0)<($415>>>0); + if ($416) { + $$010911856 = $412;$$011971855 = $$41201; + } else { + $$lcssa1779 = $413; + break; + } + } + } + $417 = ($$lcssa1779|0)==(2); + if ($417) { + $$411457 = $$391455;$$411648 = $$391646;$$451036 = $$431034;$$451142 = 0;$$451552 = $$431550;$$46 = $$44;$$461249 = $$441247;$$461355 = $$441353; + label = 105; + } else { + $$521468 = $$391455;$$521659 = $$391646;$$551046 = $$431034;$$561153 = $$431140;$$561563 = $$431550;$$57 = $$44;$$571260 = $$441247;$$571366 = $$441353; + label = 138; + } + } else { + $$531469 = $$391455;$$531660 = $$391646;$$561047 = $$431034;$$571154 = $$431140;$$571564 = $$431550;$$58 = $$44;$$581261 = $$441247;$$581367 = $$441353; + label = 139; + } + break; + } + case 108: { + label = 0; + $429 = $$471356 & 1023; + $430 = (((($0)) + 7328|0) + ($429<<1)|0); + $431 = HEAP16[$430>>1]|0; + $432 = $431 << 16 >> 16; + $433 = ($431<<16>>16)>(-1); + if ($433) { + $434 = $432 >> 9; + $435 = (($434) + -1)|0; + $436 = ($435>>>0)<($$47>>>0); + if ($436) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } else { + label = 113; + break L125; + } + } + $437 = ($$47>>>0)>(10); + if ($437) { + $$0981 = 10;$$0984 = $432; + } else { + label = 113; + break L125; + } + while(1) { + $438 = $$0984 ^ -1; + $439 = $$471356 >>> $$0981; + $440 = $439 & 1; + $441 = (($440) + ($438))|0; + $442 = (((($0)) + 9376|0) + ($441<<1)|0); + $443 = HEAP16[$442>>1]|0; + $444 = ($443<<16>>16)<(0); + if (!($444)) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } + $445 = (($$0981) + 1)|0; + $446 = $443 << 16 >> 16; + $447 = (($$0981) + 2)|0; + $448 = ($$47>>>0)<($447>>>0); + if ($448) { + label = 113; + break L125; + } else { + $$0981 = $445;$$0984 = $446; + } + } + break; + } + case 119: { + label = 0; + $471 = $$501359 & 1023; + $472 = (((($0)) + 7328|0) + ($471<<1)|0); + $473 = HEAP16[$472>>1]|0; + $474 = $473 << 16 >> 16; + $475 = ($473<<16>>16)>(-1); + if ($475) { + $476 = $474 >> 9; + $477 = $474 & 511; + $$2983 = $476;$$2986 = $477; + } else { + $$1982 = 10;$$1985 = $474; + while(1) { + $478 = $$1985 ^ -1; + $479 = (($$1982) + 1)|0; + $480 = $$501359 >>> $$1982; + $481 = $480 & 1; + $482 = (($481) + ($478))|0; + $483 = (((($0)) + 9376|0) + ($482<<1)|0); + $484 = HEAP16[$483>>1]|0; + $485 = $484 << 16 >> 16; + $486 = ($484<<16>>16)<(0); + if ($486) { + $$1982 = $479;$$1985 = $485; + } else { + $$2983 = $479;$$2986 = $485; + break; + } + } + } + $487 = $$501359 >>> $$2983; + $488 = (($$50) - ($$2983))|0; + $489 = ($$2986>>>0)<(16); + if ($489) { + $490 = $$2986&255; + $491 = (($$491146) + 1)|0; + $492 = (((($0)) + 10532|0) + ($$491146)|0); + HEAP8[$492>>0] = $490; + $$411457 = $$451461;$$411648 = $$451652;$$451036 = $$2986;$$451142 = $491;$$451552 = $$491556;$$46 = $488;$$461249 = $$501253;$$461355 = $487; + label = 105; + break; + } + $493 = ($$2986|0)!=(16); + $494 = ($$491146|0)!=(0); + $or$cond24 = $494 | $493; + if (!($or$cond24)) { + $$461462 = $$451461;$$461653 = $$451652;$$491040 = $$2986;$$501147 = $$491146;$$501557 = $$491556;$$51 = $488;$$511254 = $$501253;$$511360 = $487; + label = 125; + continue L46; + } + $495 = (($$2986) + -16)|0; + $496 = (11217 + ($495)|0); + $497 = HEAP8[$496>>0]|0; + $498 = $497 << 24 >> 24; + $499 = ($488>>>0)<($498>>>0); + if ($499) { + $$471463 = $$451461;$$471654 = $$451652;$$501041 = $$2986;$$511148 = $$491146;$$511558 = $$491556;$$52 = $488;$$521255 = $498;$$521361 = $487; + label = 127; + continue L125; + } else { + $$501466 = $$451461;$$501657 = $$451652;$$531044 = $$2986;$$541151 = $$491146;$$541561 = $$491556;$$55 = $488;$$551258 = $498;$$551364 = $487; + label = 132; + continue L125; + } + break; + } + case 127: { + label = 0; + $500 = ($$511558>>>0)<($10>>>0); + if ($500) { + $$491465$ph = $$471463;$$491656$ph = $$471654;$$521043$ph = $$501041;$$531150$ph = $$511148;$$54$ph = $$52;$$541257$ph = $$521255;$$541363$ph = $$521361;$$sink1732 = $$511558; + label = 130; + continue L46; + } else { + $$481464 = $$471463;$$481655 = $$471654;$$511042 = $$501041;$$521149 = $$511148;$$521559 = $$511558;$$53 = $$52;$$531256 = $$521255;$$531362 = $$521361; + label = 128; + continue L46; + } + break; + } + case 132: { + label = 0; + $510 = 1 << $$551258; + $511 = (($510) + -1)|0; + $512 = $511 & $$551364; + $513 = $$551364 >>> $$551258; + $514 = (($$55) - ($$551258))|0; + $515 = (($$531044) + -16)|0; + $516 = (11221 + ($515)|0); + $517 = HEAP8[$516>>0]|0; + $518 = $517 << 24 >> 24; + $519 = (($518) + ($512))|0; + $520 = (((($0)) + 10532|0) + ($$541151)|0); + $521 = ($$531044|0)==(16); + if ($521) { + $522 = (($$541151) + -1)|0; + $523 = (((($0)) + 10532|0) + ($522)|0); + $524 = HEAP8[$523>>0]|0; + $525 = $524&255; + $527 = $525; + } else { + $527 = 0; + } + $526 = $527&255; + _memset(($520|0),($526|0),($519|0))|0; + $528 = (($519) + ($$541151))|0; + $$411457 = $$501466;$$411648 = $$501657;$$451036 = $$531044;$$451142 = $528;$$451552 = $$541561;$$46 = $514;$$461249 = $$551258;$$461355 = $513; + label = 105; + break; + } + case 140: { + label = 0; + $539 = $10; + $540 = $$581565$ph; + $541 = (($539) - ($540))|0; + $542 = ($541|0)<(4); + $543 = ($$59$ph>>>0)<(15); + L241: do { + if ($542) { + $$541661$lcssa = $$541661$ph;$$581155$lcssa = $$581155$ph;$$581565$lcssa = $$581565$ph;$$59$lcssa = $$59$ph;$$591368$lcssa = $$591368$ph;$$lcssa1799 = $543;$$lcssa1802 = $541; + } else { + $544 = $12; + $$5416611868 = $$541661$ph;$$5811551871 = $$581155$ph;$$5815651869 = $$581565$ph;$$5913681870 = $$591368$ph;$$591872 = $$59$ph;$965 = $543;$966 = $541; + while(1) { + $545 = $$5416611868; + $546 = (($544) - ($545))|0; + $547 = ($546|0)<(2); + if ($547) { + $$541661$lcssa = $$5416611868;$$581155$lcssa = $$5811551871;$$581565$lcssa = $$5815651869;$$59$lcssa = $$591872;$$591368$lcssa = $$5913681870;$$lcssa1799 = $965;$$lcssa1802 = $966; + break L241; + } + if ($965) { + $613 = HEAP8[$$5815651869>>0]|0; + $614 = $613&255; + $615 = ((($$5815651869)) + 1|0); + $616 = HEAP8[$615>>0]|0; + $617 = $616&255; + $618 = $617 << 8; + $619 = $618 | $614; + $620 = $619 << $$591872; + $621 = $620 | $$5913681870; + $622 = ((($$5815651869)) + 2|0); + $623 = (($$591872) + 16)|0; + $$641571 = $622;$$65 = $623;$$651374 = $621; + } else { + $$641571 = $$5815651869;$$65 = $$591872;$$651374 = $$5913681870; + } + $624 = $$651374 & 1023; + $625 = (((($0)) + 352|0) + ($624<<1)|0); + $626 = HEAP16[$625>>1]|0; + $627 = $626 << 16 >> 16; + $628 = ($626<<16>>16)>(-1); + if ($628) { + $629 = $627 >> 9; + $$1964 = $629;$$1968 = $627; + } else { + $$0963 = 10;$$0967 = $627; + while(1) { + $630 = $$0967 ^ -1; + $631 = (($$0963) + 1)|0; + $632 = $$651374 >>> $$0963; + $633 = $632 & 1; + $634 = (($633) + ($630))|0; + $635 = (((($0)) + 2400|0) + ($634<<1)|0); + $636 = HEAP16[$635>>1]|0; + $637 = $636 << 16 >> 16; + $638 = ($636<<16>>16)<(0); + if ($638) { + $$0963 = $631;$$0967 = $637; + } else { + $$1964 = $631;$$1968 = $637; + break; + } + } + } + $639 = $$651374 >>> $$1964; + $640 = (($$65) - ($$1964))|0; + $641 = $$1968 & 256; + $642 = ($641|0)==(0); + if (!($642)) { + $$601476 = $$541470$ph;$$611668 = $$5416611868;$$631054 = $$571048$ph;$$641161 = $$1968;$$651268 = $$591262$ph;$$671574 = $$641571;$$68 = $640;$$681377 = $639; + label = 176; + break L126; + } + $643 = ($640>>>0)<(15); + if ($643) { + $644 = HEAP8[$$641571>>0]|0; + $645 = $644&255; + $646 = ((($$641571)) + 1|0); + $647 = HEAP8[$646>>0]|0; + $648 = $647&255; + $649 = $648 << 8; + $650 = $649 | $645; + $651 = $650 << $640; + $652 = $651 | $639; + $653 = ((($$641571)) + 2|0); + $654 = (($640) + 16)|0; + $$651572 = $653;$$66 = $654;$$661375 = $652; + } else { + $$651572 = $$641571;$$66 = $640;$$661375 = $639; + } + $655 = $$661375 & 1023; + $656 = (((($0)) + 352|0) + ($655<<1)|0); + $657 = HEAP16[$656>>1]|0; + $658 = $657 << 16 >> 16; + $659 = ($657<<16>>16)>(-1); + if ($659) { + $660 = $658 >> 9; + $$3966 = $660;$$3970 = $658; + } else { + $$2965 = 10;$$2969 = $658; + while(1) { + $661 = $$2969 ^ -1; + $662 = (($$2965) + 1)|0; + $663 = $$661375 >>> $$2965; + $664 = $663 & 1; + $665 = (($664) + ($661))|0; + $666 = (((($0)) + 2400|0) + ($665<<1)|0); + $667 = HEAP16[$666>>1]|0; + $668 = $667 << 16 >> 16; + $669 = ($667<<16>>16)<(0); + if ($669) { + $$2965 = $662;$$2969 = $668; + } else { + $$3966 = $662;$$3970 = $668; + break; + } + } + } + $670 = $$661375 >>> $$3966; + $671 = (($$66) - ($$3966))|0; + $672 = $$1968&255; + HEAP8[$$5416611868>>0] = $672; + $673 = $$3970 & 256; + $674 = ($673|0)==(0); + if (!($674)) { + break; + } + $676 = $$3970&255; + $677 = ((($$5416611868)) + 1|0); + HEAP8[$677>>0] = $676; + $678 = ((($$5416611868)) + 2|0); + $679 = $$651572; + $680 = (($539) - ($679))|0; + $681 = ($680|0)<(4); + $682 = ($671>>>0)<(15); + if ($681) { + $$541661$lcssa = $678;$$581155$lcssa = $$1968;$$581565$lcssa = $$651572;$$59$lcssa = $671;$$591368$lcssa = $670;$$lcssa1799 = $682;$$lcssa1802 = $680; + break L241; + } else { + $$5416611868 = $678;$$5811551871 = $$1968;$$5815651869 = $$651572;$$5913681870 = $670;$$591872 = $671;$965 = $682;$966 = $680; + } + } + $675 = ((($$5416611868)) + 1|0); + $$601476 = $$541470$ph;$$611668 = $675;$$631054 = $$571048$ph;$$641161 = $$3970;$$651268 = $$591262$ph;$$671574 = $$651572;$$68 = $671;$$681377 = $670; + label = 176; + break L126; + } + } while(0); + if (!($$lcssa1799)) { + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $$581565$lcssa;$$63 = $$59$lcssa;$$631266 = $$591262$ph;$$631372 = $$591368$lcssa; + label = 156; + continue L125; + } + $548 = ($$lcssa1802|0)<(2); + if ($548) { + $$551471 = $$541470$ph;$$551662 = $$541661$lcssa;$$581049 = $$571048$ph;$$591156 = $$581155$lcssa;$$591566 = $$581565$lcssa;$$60 = $$59$lcssa;$$601263 = $$591262$ph;$$601369 = $$591368$lcssa; + label = 145; + continue L125; + } + $579 = HEAP8[$$581565$lcssa>>0]|0; + $580 = $579&255; + $581 = $580 << $$59$lcssa; + $582 = ((($$581565$lcssa)) + 1|0); + $583 = HEAP8[$582>>0]|0; + $584 = $583&255; + $585 = (($$59$lcssa) + 8)|0; + $586 = $584 << $585; + $587 = $581 | $$591368$lcssa; + $588 = $587 | $586; + $589 = ((($$581565$lcssa)) + 2|0); + $590 = (($$59$lcssa) + 16)|0; + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $589;$$63 = $590;$$631266 = $$591262$ph;$$631372 = $588; + label = 156; + continue L125; + break; + } + case 145: { + label = 0; + $549 = $$601369 & 1023; + $550 = (((($0)) + 352|0) + ($549<<1)|0); + $551 = HEAP16[$550>>1]|0; + $552 = $551 << 16 >> 16; + $553 = ($551<<16>>16)>(-1); + if ($553) { + $554 = $552 >> 9; + $555 = (($554) + -1)|0; + $556 = ($555>>>0)<($$60>>>0); + if ($556) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } else { + label = 150; + break L125; + } + } + $557 = ($$60>>>0)>(10); + if ($557) { + $$0972 = 10;$$0975 = $552; + } else { + label = 150; + break L125; + } + while(1) { + $558 = $$0975 ^ -1; + $559 = $$601369 >>> $$0972; + $560 = $559 & 1; + $561 = (($560) + ($558))|0; + $562 = (((($0)) + 2400|0) + ($561<<1)|0); + $563 = HEAP16[$562>>1]|0; + $564 = ($563<<16>>16)<(0); + if (!($564)) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } + $565 = (($$0972) + 1)|0; + $566 = $563 << 16 >> 16; + $567 = (($$0972) + 2)|0; + $568 = ($$60>>>0)<($567>>>0); + if ($568) { + label = 150; + break L125; + } else { + $$0972 = $565;$$0975 = $566; + } + } + break; + } + case 156: { + label = 0; + $591 = $$631372 & 1023; + $592 = (((($0)) + 352|0) + ($591<<1)|0); + $593 = HEAP16[$592>>1]|0; + $594 = $593 << 16 >> 16; + $595 = ($593<<16>>16)>(-1); + if ($595) { + $596 = $594 >> 9; + $597 = $594 & 511; + $$2974 = $596;$$2977 = $597; + } else { + $$1973 = 10;$$1976 = $594; + while(1) { + $598 = $$1976 ^ -1; + $599 = (($$1973) + 1)|0; + $600 = $$631372 >>> $$1973; + $601 = $600 & 1; + $602 = (($601) + ($598))|0; + $603 = (((($0)) + 2400|0) + ($602<<1)|0); + $604 = HEAP16[$603>>1]|0; + $605 = $604 << 16 >> 16; + $606 = ($604<<16>>16)<(0); + if ($606) { + $$1973 = $599;$$1976 = $605; + } else { + $$2974 = $599;$$2977 = $605; + break; + } + } + } + $607 = $$631372 >>> $$2974; + $608 = (($$63) - ($$2974))|0; + $609 = ($$2977>>>0)>(255); + if ($609) { + $$601476 = $$581474;$$611668 = $$581665;$$631054 = $$611052;$$641161 = $$2977;$$651268 = $$631266;$$671574 = $$621569;$$68 = $608;$$681377 = $607; + label = 176; + } else { + $$591475 = $$581474;$$591666 = $$581665;$$621053 = $$611052;$$621159 = $$2977;$$631570 = $$621569;$$64 = $608;$$641267 = $$631266;$$641373 = $607; + label = 160; + continue L46; + } + break; + } + case 179: { + label = 0; + $693 = ($$681575>>>0)<($10>>>0); + if ($693) { + $$631479$ph = $$611477;$$641671$ph = $$621669;$$661057$ph = $$641055;$$671164$ph = $$651162;$$681271$ph = $$661269;$$71$ph = $$69;$$711380$ph = $$691378;$$sink1739 = $$681575; + label = 182; + continue L46; + } else { + $$621478 = $$611477;$$631670 = $$621669;$$651056 = $$641055;$$661163 = $$651162;$$671270 = $$661269;$$691576 = $$681575;$$70 = $$69;$$701379 = $$691378; + label = 180; + continue L46; + } + break; + } + case 184: { + label = 0; + $703 = 1 << $$691272; + $704 = (($703) + -1)|0; + $705 = $704 & $$721381; + $706 = $$721381 >>> $$691272; + $707 = (($$72) - ($$691272))|0; + $708 = (($705) + ($$681165))|0; + $$651481 = $$641480;$$661673 = $$651672;$$681059 = $$671058;$$691166 = $708;$$701273 = $$691272;$$721579 = $$711578;$$73 = $707;$$731382 = $706; + label = 185; + break; + } + case 187: { + label = 0; + $714 = $$741383 & 1023; + $715 = (((($0)) + 3840|0) + ($714<<1)|0); + $716 = HEAP16[$715>>1]|0; + $717 = $716 << 16 >> 16; + $718 = ($716<<16>>16)>(-1); + if ($718) { + $719 = $717 >> 9; + $720 = (($719) + -1)|0; + $721 = ($720>>>0)<($$74>>>0); + if ($721) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } else { + label = 192; + break L125; + } + } + $722 = ($$74>>>0)>(10); + if ($722) { + $$0953 = 10;$$0956 = $717; + } else { + label = 192; + break L125; + } + while(1) { + $723 = $$0956 ^ -1; + $724 = $$741383 >>> $$0953; + $725 = $724 & 1; + $726 = (($725) + ($723))|0; + $727 = (((($0)) + 5888|0) + ($726<<1)|0); + $728 = HEAP16[$727>>1]|0; + $729 = ($728<<16>>16)<(0); + if (!($729)) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } + $730 = (($$0953) + 1)|0; + $731 = $728 << 16 >> 16; + $732 = (($$0953) + 2)|0; + $733 = ($$74>>>0)<($732>>>0); + if ($733) { + label = 192; + break L125; + } else { + $$0953 = $730;$$0956 = $731; + } + } + break; + } + case 198: { + label = 0; + $756 = $$771386 & 1023; + $757 = (((($0)) + 3840|0) + ($756<<1)|0); + $758 = HEAP16[$757>>1]|0; + $759 = $758 << 16 >> 16; + $760 = ($758<<16>>16)>(-1); + if ($760) { + $761 = $759 >> 9; + $762 = $759 & 511; + $$2955 = $761;$$2958 = $762; + } else { + $$1954 = 10;$$1957 = $759; + while(1) { + $763 = $$1957 ^ -1; + $764 = (($$1954) + 1)|0; + $765 = $$771386 >>> $$1954; + $766 = $765 & 1; + $767 = (($766) + ($763))|0; + $768 = (((($0)) + 5888|0) + ($767<<1)|0); + $769 = HEAP16[$768>>1]|0; + $770 = $769 << 16 >> 16; + $771 = ($769<<16>>16)<(0); + if ($771) { + $$1954 = $764;$$1957 = $770; + } else { + $$2955 = $764;$$2958 = $770; + break; + } + } + } + $772 = $$771386 >>> $$2955; + $773 = (($$77) - ($$2955))|0; + $774 = (3456 + ($$2958<<2)|0); + $775 = HEAP32[$774>>2]|0; + $776 = (3584 + ($$2958<<2)|0); + $777 = HEAP32[$776>>2]|0; + $778 = (($$2958) + -4)|0; + $779 = ($778>>>0)<(26); + if ($779) { + $780 = ($773>>>0)<($775>>>0); + if ($780) { + $$701486 = $$691485;$$711678 = $$701677;$$721063 = $777;$$741171 = $$731170;$$741277 = $775;$$771584 = $$761583;$$78 = $773;$$781387 = $772; + label = 203; + continue L125; + } else { + $$741681 = $$701677;$$751066 = $777;$$771174 = $$731170;$$771280 = $775;$$801587 = $$761583;$$81 = $773;$$811390 = $772; + label = 208; + continue L125; + } + } else { + $$751682 = $$701677;$$761067 = $777;$$781175 = $$731170;$$781281 = $775;$$811588 = $$761583;$$82 = $773;$$821391 = $772; + label = 209; + } + break; + } + case 203: { + label = 0; + $781 = ($$771584>>>0)<($10>>>0); + if ($781) { + $$721488$ph = $$701486;$$731680$ph = $$711678;$$741065$ph = $$721063;$$761173$ph = $$741171;$$761279$ph = $$741277;$$80$ph = $$78;$$801389$ph = $$781387;$$sink1746 = $$771584; + label = 206; + continue L46; + } else { + $$711487 = $$701486;$$721679 = $$711678;$$731064 = $$721063;$$751172 = $$741171;$$751278 = $$741277;$$781585 = $$771584;$$79 = $$78;$$791388 = $$781387; + label = 204; + continue L46; + } + break; + } + case 208: { + label = 0; + $791 = 1 << $$771280; + $792 = (($791) + -1)|0; + $793 = $792 & $$811390; + $794 = $$811390 >>> $$771280; + $795 = (($$81) - ($$771280))|0; + $796 = (($793) + ($$751066))|0; + $$751682 = $$741681;$$761067 = $796;$$781175 = $$771174;$$781281 = $$771280;$$811588 = $$801587;$$82 = $795;$$821391 = $794; + label = 209; + break; + } + case 212: { + label = 0; + $807 = (($$801177) + -1)|0; + $808 = ($$801177|0)==(0); + if ($808) { + $$531469 = $$741490;$$531660 = $$771684;$$561047 = $$781069;$$571154 = $807;$$571564 = $$831590;$$58 = $$84;$$581261 = $$801283;$$581367 = $$841393; + label = 139; + } else { + $$751491 = $$741490;$$781685 = $$771684;$$791070 = $$781069;$$811178 = $807;$$811284 = $$801283;$$841591 = $$831590;$$85 = $$84;$$851394 = $$841393; + label = 213; + continue L46; + } + break; + } + } + do { + if ((label|0) == 70) { + label = 0; + $217 = ((($0)) + 52|0); + $218 = HEAP32[$217>>2]|0; + $219 = ($$381135>>>0)<($218>>>0); + if ($219) { + $220 = ($$39>>>0)<(3); + if ($220) { + $$351451 = $$341450;$$351642 = $$341641;$$391030 = $$381029;$$391136 = $$381135;$$391546 = $$381545;$$40 = $$39;$$401243 = $$391242;$$401349 = $$391348; + label = 72; + continue L125; + } else { + $$381454 = $$341450;$$381645 = $$341641;$$421033 = $$381029;$$421139 = $$381135;$$421549 = $$381545;$$43 = $$39;$$431246 = $$391242;$$431352 = $$391348; + label = 77; + continue L125; + } + } else { + HEAP32[$217>>2] = 19; + $$391455 = $$341450;$$391646 = $$341641;$$431034 = $$381029;$$431140 = $$381135;$$431550 = $$381545;$$44 = $$39;$$441247 = $$391242;$$441353 = $$391348; + label = 80; + continue L125; + } + } + else if ((label|0) == 105) { + label = 0; + $418 = ((($0)) + 44|0); + $419 = HEAP32[$418>>2]|0; + $420 = ((($0)) + 48|0); + $421 = HEAP32[$420>>2]|0; + $422 = (($421) + ($419))|0; + $423 = ($$451142>>>0)<($422>>>0); + if (!($423)) { + $529 = ($422|0)==($$451142|0); + if (!($529)) { + $$511467 = $$411457;$$511658 = $$411648;$$541045 = $$451036;$$551152 = $$451142;$$551562 = $$451552;$$56 = $$46;$$561259 = $$461249;$$561365 = $$461355; + label = 136; + continue L46; + } + $530 = ((($0)) + 64|0); + $531 = ((($0)) + 10532|0); + _memcpy(($530|0),($531|0),($419|0))|0; + $532 = ((($0)) + 3552|0); + $533 = HEAP32[$418>>2]|0; + $534 = (((($0)) + 10532|0) + ($533)|0); + $535 = HEAP32[$420>>2]|0; + _memcpy(($532|0),($534|0),($535|0))|0; + $$521468 = $$411457;$$521659 = $$411648;$$551046 = $$451036;$$561153 = $$451142;$$561563 = $$451552;$$57 = $$46;$$571260 = $$461249;$$571366 = $$461355; + label = 138; + break; + } + $424 = ($$46>>>0)<(15); + if (!($424)) { + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $$451552;$$50 = $$46;$$501253 = $$461249;$$501359 = $$461355; + label = 119; + continue L125; + } + $425 = $10; + $426 = $$451552; + $427 = (($425) - ($426))|0; + $428 = ($427|0)<(2); + if ($428) { + $$421458 = $$411457;$$421649 = $$411648;$$461037 = $$451036;$$461143 = $$451142;$$461553 = $$451552;$$47 = $$46;$$471250 = $$461249;$$471356 = $$461355; + label = 108; + continue L125; + } + $459 = HEAP8[$$451552>>0]|0; + $460 = $459&255; + $461 = $460 << $$46; + $462 = ((($$451552)) + 1|0); + $463 = HEAP8[$462>>0]|0; + $464 = $463&255; + $465 = (($$46) + 8)|0; + $466 = $464 << $465; + $467 = $461 | $$461355; + $468 = $467 | $466; + $469 = ((($$451552)) + 2|0); + $470 = (($$46) + 16)|0; + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $469;$$50 = $470;$$501253 = $$461249;$$501359 = $468; + label = 119; + continue L125; + } + else if ((label|0) == 176) { + label = 0; + $683 = $$641161 & 511; + $684 = ($683|0)==(256); + if ($684) { + $$761492 = $$601476;$$801071 = $$631054;$$801687 = $$611668;$$821285 = $$651268;$$831180 = 256;$$851592 = $$671574;$$86 = $$68;$$861395 = $$681377; + label = 220; + break L125; + } + $685 = (($683) + -257)|0; + $686 = (3208 + ($685<<2)|0); + $687 = HEAP32[$686>>2]|0; + $688 = (3332 + ($685<<2)|0); + $689 = HEAP32[$688>>2]|0; + $690 = (($683) + -265)|0; + $691 = ($690>>>0)<(20); + if ($691) { + $692 = ($$68>>>0)<($687>>>0); + if ($692) { + $$611477 = $$601476;$$621669 = $$611668;$$641055 = $$631054;$$651162 = $689;$$661269 = $687;$$681575 = $$671574;$$69 = $$68;$$691378 = $$681377; + label = 179; + continue L125; + } else { + $$641480 = $$601476;$$651672 = $$611668;$$671058 = $$631054;$$681165 = $689;$$691272 = $687;$$711578 = $$671574;$$72 = $$68;$$721381 = $$681377; + label = 184; + continue L125; + } + } else { + $$651481 = $$601476;$$661673 = $$611668;$$681059 = $$631054;$$691166 = $689;$$701273 = $687;$$721579 = $$671574;$$73 = $$68;$$731382 = $$681377; + label = 185; + } + } + else if ((label|0) == 209) { + label = 0; + $797 = $$751682; + $798 = $3; + $799 = (($797) - ($798))|0; + $$not = ($799>>>0)>=($$761067>>>0); + $$not1747 = $14 ^ 1; + $brmerge = $$not | $$not1747; + if (!($brmerge)) { + $$731489 = $799;$$761683 = $$751682;$$771068 = $$761067;$$791176 = $$781175;$$791282 = $$781281;$$821589 = $$811588;$$83 = $$82;$$831392 = $$821391; + label = 210; + continue L46; + } + $800 = (($799) - ($$761067))|0; + $801 = $800 & $$1753; + $802 = (($3) + ($801)|0); + $803 = ($$751682>>>0)>($802>>>0); + $804 = $803 ? $$751682 : $802; + $805 = (($804) + ($$781175)|0); + $806 = ($805>>>0)>($12>>>0); + if ($806) { + $$741490 = $799;$$771684 = $$751682;$$781069 = $$761067;$$801177 = $$781175;$$801283 = $$781281;$$831590 = $$811588;$$84 = $$82;$$841393 = $$821391; + label = 212; + continue L125; + } else { + $$0978 = $802;$$791686 = $$751682;$$821179 = $$781175; + } + while(1) { + $816 = HEAP8[$$0978>>0]|0; + HEAP8[$$791686>>0] = $816; + $817 = ((($$0978)) + 1|0); + $818 = HEAP8[$817>>0]|0; + $819 = ((($$791686)) + 1|0); + HEAP8[$819>>0] = $818; + $820 = ((($$0978)) + 2|0); + $821 = HEAP8[$820>>0]|0; + $822 = ((($$791686)) + 2|0); + HEAP8[$822>>0] = $821; + $823 = ((($$791686)) + 3|0); + $824 = ((($$0978)) + 3|0); + $825 = (($$821179) + -3)|0; + $826 = ($825|0)>(2); + if ($826) { + $$0978 = $824;$$791686 = $823;$$821179 = $825; + } else { + break; + } + } + $827 = ($825|0)>(0); + if ($827) { + $828 = HEAP8[$824>>0]|0; + HEAP8[$823>>0] = $828; + $829 = ($825|0)==(1); + if (!($829)) { + $830 = ((($$0978)) + 4|0); + $831 = HEAP8[$830>>0]|0; + $832 = ((($$791686)) + 4|0); + HEAP8[$832>>0] = $831; + } + $833 = (($823) + ($825)|0); + $$531469 = $799;$$531660 = $833;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } else { + $$531469 = $799;$$531660 = $823;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } + } + } while(0); + if ((label|0) == 138) { + label = 0; + $536 = ((($0)) + 24|0); + $537 = HEAP32[$536>>2]|0; + $538 = (($537) + -1)|0; + HEAP32[$536>>2] = $538; + $$391455 = $$521468;$$391646 = $$521659;$$431034 = $$551046;$$431140 = $$561153;$$431550 = $$561563;$$44 = $$57;$$441247 = $$571260;$$441353 = $$571366; + label = 80; + continue; + } + else if ((label|0) == 139) { + label = 0; + $$541470$ph = $$531469;$$541661$ph = $$531660;$$571048$ph = $$561047;$$581155$ph = $$571154;$$581565$ph = $$571564;$$59$ph = $$58;$$591262$ph = $$581261;$$591368$ph = $$581367; + label = 140; + continue; + } + else if ((label|0) == 185) { + label = 0; + $709 = ($$73>>>0)<(15); + if (!($709)) { + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $$721579;$$77 = $$73;$$771386 = $$731382; + label = 198; + continue; + } + $710 = $10; + $711 = $$721579; + $712 = (($710) - ($711))|0; + $713 = ($712|0)<(2); + if ($713) { + $$661482 = $$651481;$$671674 = $$661673;$$691060 = $$681059;$$701167 = $$691166;$$711274 = $$701273;$$731580 = $$721579;$$74 = $$73;$$741383 = $$731382; + label = 187; + continue; + } + $744 = HEAP8[$$721579>>0]|0; + $745 = $744&255; + $746 = $745 << $$73; + $747 = ((($$721579)) + 1|0); + $748 = HEAP8[$747>>0]|0; + $749 = $748&255; + $750 = (($$73) + 8)|0; + $751 = $749 << $750; + $752 = $746 | $$731382; + $753 = $752 | $751; + $754 = ((($$721579)) + 2|0); + $755 = (($$73) + 16)|0; + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $754;$$77 = $755;$$771386 = $753; + label = 198; + continue; + } + } + if ((label|0) == 113) { + label = 0; + $449 = ($$461553>>>0)<($10>>>0); + if ($449) { + $$441460$ph = $$421458;$$441651$ph = $$421649;$$481039$ph = $$461037;$$481145$ph = $$461143;$$49$ph = $$47;$$491252$ph = $$471250;$$491358$ph = $$471356;$$sink1729 = $$461553; + label = 116; + continue; + } else { + $$431459 = $$421458;$$431650 = $$421649;$$471038 = $$461037;$$471144 = $$461143;$$471554 = $$461553;$$48 = $$47;$$481251 = $$471250;$$481357 = $$471356; + label = 114; + continue; + } + } + else if ((label|0) == 150) { + label = 0; + $569 = ($$591566>>>0)<($10>>>0); + if ($569) { + $$571473$ph = $$551471;$$571664$ph = $$551662;$$601051$ph = $$581049;$$611158$ph = $$591156;$$62$ph = $$60;$$621265$ph = $$601263;$$621371$ph = $$601369;$$sink1736 = $$591566; + label = 153; + continue; + } else { + $$561472 = $$551471;$$561663 = $$551662;$$591050 = $$581049;$$601157 = $$591156;$$601567 = $$591566;$$61 = $$60;$$611264 = $$601263;$$611370 = $$601369; + label = 151; + continue; + } + } + else if ((label|0) == 192) { + label = 0; + $734 = ($$731580>>>0)<($10>>>0); + if ($734) { + $$681484$ph = $$661482;$$691676$ph = $$671674;$$711062$ph = $$691060;$$721169$ph = $$701167;$$731276$ph = $$711274;$$76$ph = $$74;$$761385$ph = $$741383;$$sink1743 = $$731580; + label = 195; + continue; + } else { + $$671483 = $$661482;$$681675 = $$671674;$$701061 = $$691060;$$711168 = $$701167;$$721275 = $$711274;$$741581 = $$731580;$$75 = $$74;$$751384 = $$741383; + label = 193; + continue; + } + } + else if ((label|0) == 220) { + label = 0; + $834 = ((($0)) + 20|0); + $835 = HEAP32[$834>>2]|0; + $836 = $835 & 1; + $837 = ($836|0)==(0); + if ($837) { + $$01416 = $$761492;$$01607 = $$801687;$$41511 = $$851592;$$5 = $$86;$$51102 = $$831180;$$51208 = $$821285;$$51314 = $$861395;$$5996 = $$801071; + label = 14; + continue; + } + $838 = $6 & 1; + $839 = ($838|0)==(0); + if ($839) { + $$881504 = $$761492;$$921083 = $$801071;$$921699 = $$801687;$$941191 = $$831180;$$941297 = $$821285;$$971604 = $$851592;$$98 = $$86;$$981407 = $$861395; + label = 242; + continue; + } else { + $$801496 = $$761492;$$841075 = $$801071;$$841691 = $$801687;$$861289 = $$821285;$$891596 = $$851592;$$90 = $$86;$$901399 = $$861395; + label = 226; + continue; + } + } + } + if ((label|0) == 258) { + STACKTOP = sp;return ($$0951|0); + } + $892 = ((($0)) + 28|0); + $893 = HEAP32[$892>>2]|0; + $894 = $893 & 65535; + $895 = $893 >>> 16; + $896 = ($888|0)==(0); + if ($896) { + $$0937$lcssa = $895;$$0938$lcssa = $894; + } else { + $897 = (($888>>>0) % 5552)&-1; + $$01834 = $897;$$09371833 = $895;$$09381832 = $894;$$09431831 = $888;$$09441830 = $4; + while(1) { + $898 = ($$01834>>>0)>(7); + if ($898) { + $899 = (($$01834) + -8)|0; + $900 = $899 & -8; + $scevgep = ((($$09441830)) + 8|0); + $$09411816 = 0;$$11818 = $$09371833;$$19391817 = $$09381832;$$19451815 = $$09441830; + while(1) { + $904 = HEAP8[$$19451815>>0]|0; + $905 = $904&255; + $906 = (($905) + ($$19391817))|0; + $907 = (($906) + ($$11818))|0; + $908 = ((($$19451815)) + 1|0); + $909 = HEAP8[$908>>0]|0; + $910 = $909&255; + $911 = (($906) + ($910))|0; + $912 = (($907) + ($911))|0; + $913 = ((($$19451815)) + 2|0); + $914 = HEAP8[$913>>0]|0; + $915 = $914&255; + $916 = (($911) + ($915))|0; + $917 = (($912) + ($916))|0; + $918 = ((($$19451815)) + 3|0); + $919 = HEAP8[$918>>0]|0; + $920 = $919&255; + $921 = (($916) + ($920))|0; + $922 = (($917) + ($921))|0; + $923 = ((($$19451815)) + 4|0); + $924 = HEAP8[$923>>0]|0; + $925 = $924&255; + $926 = (($921) + ($925))|0; + $927 = (($922) + ($926))|0; + $928 = ((($$19451815)) + 5|0); + $929 = HEAP8[$928>>0]|0; + $930 = $929&255; + $931 = (($926) + ($930))|0; + $932 = (($927) + ($931))|0; + $933 = ((($$19451815)) + 6|0); + $934 = HEAP8[$933>>0]|0; + $935 = $934&255; + $936 = (($931) + ($935))|0; + $937 = (($932) + ($936))|0; + $938 = ((($$19451815)) + 7|0); + $939 = HEAP8[$938>>0]|0; + $940 = $939&255; + $941 = (($936) + ($940))|0; + $942 = (($937) + ($941))|0; + $943 = (($$09411816) + 8)|0; + $944 = ((($$19451815)) + 8|0); + $945 = $943 | 7; + $946 = ($945>>>0)<($$01834>>>0); + if ($946) { + $$09411816 = $943;$$11818 = $942;$$19391817 = $941;$$19451815 = $944; + } else { + break; + } + } + $901 = (($900) + 8)|0; + $scevgep1947 = (($scevgep) + ($900)|0); + $$0941$lcssa = $901;$$1$lcssa = $942;$$1939$lcssa = $941;$$1945$lcssa = $scevgep1947; + } else { + $$0941$lcssa = 0;$$1$lcssa = $$09371833;$$1939$lcssa = $$09381832;$$1945$lcssa = $$09441830; + } + $902 = ($$01834>>>0)>($$0941$lcssa>>>0); + if ($902) { + $903 = (($$01834) - ($$0941$lcssa))|0; + $$19421823 = $$0941$lcssa;$$21825 = $$1$lcssa;$$29401824 = $$1939$lcssa;$$29461822 = $$1945$lcssa; + while(1) { + $947 = ((($$29461822)) + 1|0); + $948 = HEAP8[$$29461822>>0]|0; + $949 = $948&255; + $950 = (($949) + ($$29401824))|0; + $951 = (($950) + ($$21825))|0; + $952 = (($$19421823) + 1)|0; + $exitcond = ($952|0)==($$01834|0); + if ($exitcond) { + break; + } else { + $$19421823 = $952;$$21825 = $951;$$29401824 = $950;$$29461822 = $947; + } + } + $scevgep1948 = (($$1945$lcssa) + ($903)|0); + $$2$lcssa = $951;$$2940$lcssa = $950;$$2946$lcssa = $scevgep1948; + } else { + $$2$lcssa = $$1$lcssa;$$2940$lcssa = $$1939$lcssa;$$2946$lcssa = $$1945$lcssa; + } + $953 = (($$2940$lcssa>>>0) % 65521)&-1; + $954 = (($$2$lcssa>>>0) % 65521)&-1; + $955 = (($$09431831) - ($$01834))|0; + $956 = ($955|0)==(0); + if ($956) { + $$0937$lcssa = $954;$$0938$lcssa = $953; + break; + } else { + $$01834 = 5552;$$09371833 = $954;$$09381832 = $953;$$09431831 = $955;$$09441830 = $$2946$lcssa; + } + } + } + $957 = $$0937$lcssa << 16; + $958 = $957 | $$0938$lcssa; + HEAP32[$892>>2] = $958; + $959 = ($$1961|0)!=(0); + $960 = $6 & 1; + $961 = ($960|0)==(0); + $or$cond1752 = $961 | $959; + if ($or$cond1752) { + $$0951 = $$1961; + STACKTOP = sp;return ($$0951|0); + } else { + $962 = ((($0)) + 16|0); + $963 = HEAP32[$962>>2]|0; + $964 = ($958|0)==($963|0); + $$1961$ = $964 ? $$1961 : -2; + STACKTOP = sp;return ($$1961$|0); + } + return (0)|0; +} +function _LoadTexture($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy1 = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$5 = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx5 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy1 = sp + 60|0; + $vararg_buffer = sp + 16|0; + $$sroa$5 = sp; + $2 = sp + 20|0; + $3 = sp + 40|0; + _LoadImage($2,$1); + $4 = HEAP32[$2>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + _TraceLog(2,11225,$vararg_buffer); + $$sroa$0$0 = 0; + } else { + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _LoadTextureFromImage($3,$$byval_copy1); + $$sroa$0$0$copyload = HEAP32[$3>>2]|0; + $$sroa$5$0$$sroa_idx = ((($3)) + 4|0); + ;HEAP32[$$sroa$5>>2]=HEAP32[$$sroa$5$0$$sroa_idx>>2]|0;HEAP32[$$sroa$5+4>>2]=HEAP32[$$sroa$5$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$5+8>>2]=HEAP32[$$sroa$5$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$5+12>>2]=HEAP32[$$sroa$5$0$$sroa_idx+12>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _UnloadImage($$byval_copy1); + $$sroa$0$0 = $$sroa$0$0$copyload; + } + HEAP32[$0>>2] = $$sroa$0$0; + $$sroa$5$0$$sroa_idx5 = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx5>>2]=HEAP32[$$sroa$5>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+4>>2]=HEAP32[$$sroa$5+4>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+8>>2]=HEAP32[$$sroa$5+8>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+12>>2]=HEAP32[$$sroa$5+12>>2]|0; + STACKTOP = sp;return; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[17044>>2]|0;HEAP32[$0+4>>2]=HEAP32[17044+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[17044+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[17044+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[17044+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[17044+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[17044+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[17044+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(21127,$0,$1)|0); + STACKTOP = sp;return (21127|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[4814]|0; + $4 = HEAP32[928]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[4815] = $7; + HEAP32[928] = $7; + $$sink = 0; + } + HEAP32[4814] = $$sink; + $8 = HEAP32[4815]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(11254,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(21127,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _DrawGrid($0,$1) { + $0 = $0|0; + $1 = +$1; + var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0|0) / 2)&-1; + _rlBegin(1); + $3 = (0 - ($2))|0; + $4 = ($2|0)<($3|0); + if ($4) { + _rlEnd(); + return; + } + $5 = (+($3|0)); + $6 = $5 * $1; + $7 = (+($2|0)); + $8 = $7 * $1; + $$024 = $3; + while(1) { + $9 = ($$024|0)==(0); + if ($9) { + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + } else { + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + } + $10 = (+($$024|0)); + $11 = $10 * $1; + _rlVertex3f($11,0.0,$6); + _rlVertex3f($11,0.0,$8); + _rlVertex3f($6,0.0,$11); + _rlVertex3f($8,0.0,$11); + $12 = (($$024) + 1)|0; + $13 = ($$024|0)<($2|0); + if ($13) { + $$024 = $12; + } else { + break; + } + } + _rlEnd(); + return; +} +function _DrawBillboard($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy4 = sp + 108|0; + $$byval_copy3 = sp + 96|0; + $$byval_copy2 = sp + 80|0; + $$byval_copy1 = sp + 56|0; + $$byval_copy = sp + 16|0; + $5 = sp; + HEAP32[$5>>2] = 0; + $6 = ((($5)) + 4|0); + HEAP32[$6>>2] = 0; + $7 = ((($5)) + 8|0); + $8 = ((($1)) + 4|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($5)) + 12|0); + $11 = ((($1)) + 8|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + dest=$$byval_copy; src=$0; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$5+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$2+8>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$4+3>>0]|0; + _DrawBillboardRec($$byval_copy,$$byval_copy1,$$byval_copy2,$$byval_copy3,$3,$$byval_copy4); + STACKTOP = sp;return; +} +function _DrawBillboardRec($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $$byval_copy = 0, $$byval_copy13 = 0, $$byval_copy14 = 0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0, $103 = 0.0, $104 = 0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0.0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0.0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0; + var $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0.0, $68 = 0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0, $78 = 0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $86 = 0.0, $87 = 0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0.0; + var $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0, $98 = 0.0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $$byval_copy14 = sp + 176|0; + $$byval_copy13 = sp + 164|0; + $$byval_copy = sp + 152|0; + $6 = sp + 88|0; + $7 = sp + 72|0; + $8 = sp + 60|0; + $9 = sp + 48|0; + $10 = sp + 36|0; + $11 = sp + 24|0; + $12 = sp + 12|0; + $13 = sp; + $14 = ((($2)) + 12|0); + $15 = HEAP32[$14>>2]|0; + $16 = (+($15|0)); + $17 = $16 * $4; + $18 = ((($2)) + 8|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = $17 / $20; + $22 = ((($0)) + 12|0); + $23 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy13>>2]=HEAP32[$22>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$22+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$22+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$23>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$23+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$23+8>>2]|0; + _MatrixLookAt($6,$$byval_copy,$$byval_copy13,$$byval_copy14); + _MatrixTranspose($6); + $24 = HEAP32[$6>>2]|0; + HEAP32[$$byval_copy>>2] = $24; + $25 = ((($$byval_copy)) + 4|0); + $26 = ((($6)) + 4|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($$byval_copy)) + 8|0); + $29 = ((($6)) + 8|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + ;HEAP32[$7>>2]=HEAP32[3716>>2]|0;HEAP32[$7+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[3716+8>>2]|0; + $31 = $4 * 0.5; + _VectorScale($$byval_copy,$31); + $32 = $21 * 0.5; + _VectorScale($7,$32); + ;HEAP32[$$byval_copy13>>2]=HEAP32[$$byval_copy>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$$byval_copy+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$$byval_copy+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$7+8>>2]|0; + _VectorAdd($8,$$byval_copy13,$$byval_copy14); + ;HEAP32[$$byval_copy13>>2]=HEAP32[$$byval_copy>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$$byval_copy+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$$byval_copy+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$7+8>>2]|0; + _VectorSubtract($9,$$byval_copy13,$$byval_copy14); + ;HEAP32[$$byval_copy13>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$9+8>>2]|0; + _VectorSubtract($10,$$byval_copy13,$$byval_copy14); + ;HEAP32[$$byval_copy13>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$8>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$8+8>>2]|0; + _VectorAdd($11,$$byval_copy13,$$byval_copy14); + ;HEAP32[$$byval_copy13>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$9+8>>2]|0; + _VectorAdd($12,$$byval_copy13,$$byval_copy14); + ;HEAP32[$$byval_copy13>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy13+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy13+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$8>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$8+8>>2]|0; + _VectorSubtract($13,$$byval_copy13,$$byval_copy14); + $33 = HEAP32[$1>>2]|0; + _rlEnableTexture($33); + _rlBegin(7); + $34 = HEAP8[$5>>0]|0; + $35 = ((($5)) + 1|0); + $36 = HEAP8[$35>>0]|0; + $37 = ((($5)) + 2|0); + $38 = HEAP8[$37>>0]|0; + $39 = ((($5)) + 3|0); + $40 = HEAP8[$39>>0]|0; + _rlColor4ub($34,$36,$38,$40); + $41 = HEAP32[$2>>2]|0; + $42 = (+($41|0)); + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = $42 / $45; + $47 = ((($2)) + 4|0); + $48 = HEAP32[$47>>2]|0; + $49 = (+($48|0)); + $50 = ((($1)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = (+($51|0)); + $53 = $49 / $52; + _rlTexCoord2f($46,$53); + $54 = +HEAPF32[$10>>2]; + $55 = ((($10)) + 4|0); + $56 = +HEAPF32[$55>>2]; + $57 = ((($10)) + 8|0); + $58 = +HEAPF32[$57>>2]; + _rlVertex3f($54,$56,$58); + $59 = HEAP32[$2>>2]|0; + $60 = (+($59|0)); + $61 = HEAP32[$43>>2]|0; + $62 = (+($61|0)); + $63 = $60 / $62; + $64 = HEAP32[$47>>2]|0; + $65 = HEAP32[$14>>2]|0; + $66 = (($65) + ($64))|0; + $67 = (+($66|0)); + $68 = HEAP32[$50>>2]|0; + $69 = (+($68|0)); + $70 = $67 / $69; + _rlTexCoord2f($63,$70); + $71 = +HEAPF32[$13>>2]; + $72 = ((($13)) + 4|0); + $73 = +HEAPF32[$72>>2]; + $74 = ((($13)) + 8|0); + $75 = +HEAPF32[$74>>2]; + _rlVertex3f($71,$73,$75); + $76 = HEAP32[$2>>2]|0; + $77 = HEAP32[$18>>2]|0; + $78 = (($77) + ($76))|0; + $79 = (+($78|0)); + $80 = HEAP32[$43>>2]|0; + $81 = (+($80|0)); + $82 = $79 / $81; + $83 = HEAP32[$47>>2]|0; + $84 = HEAP32[$14>>2]|0; + $85 = (($84) + ($83))|0; + $86 = (+($85|0)); + $87 = HEAP32[$50>>2]|0; + $88 = (+($87|0)); + $89 = $86 / $88; + _rlTexCoord2f($82,$89); + $90 = +HEAPF32[$12>>2]; + $91 = ((($12)) + 4|0); + $92 = +HEAPF32[$91>>2]; + $93 = ((($12)) + 8|0); + $94 = +HEAPF32[$93>>2]; + _rlVertex3f($90,$92,$94); + $95 = HEAP32[$2>>2]|0; + $96 = HEAP32[$18>>2]|0; + $97 = (($96) + ($95))|0; + $98 = (+($97|0)); + $99 = HEAP32[$43>>2]|0; + $100 = (+($99|0)); + $101 = $98 / $100; + $102 = HEAP32[$47>>2]|0; + $103 = (+($102|0)); + $104 = HEAP32[$50>>2]|0; + $105 = (+($104|0)); + $106 = $103 / $105; + _rlTexCoord2f($101,$106); + $107 = +HEAPF32[$11>>2]; + $108 = ((($11)) + 4|0); + $109 = +HEAPF32[$108>>2]; + $110 = ((($11)) + 8|0); + $111 = +HEAPF32[$110>>2]; + _rlVertex3f($107,$109,$111); + _rlEnd(); + _rlDisableTexture(); + STACKTOP = sp;return; +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,11262)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,11266)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,11270)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,11274)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,11280)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,11318)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 11337; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,11350)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 11371; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,11386)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 11401; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,11416)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 11431; + } + } else { + HEAP32[$3>>2] = 11302; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,11446)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,11460)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 3; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,11472)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 7; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,11486)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 8; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,11498)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 9; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,11512)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 10; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,11526)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 11; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,11543)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,11566)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,11592)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,11605)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,11621)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,11634)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 12; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,11648)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,11668)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,11688)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,11705)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,11722)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 4; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,11734)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 13; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,11747)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 14; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,11763)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,11786)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,11799)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,11815)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 5; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,11826)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 15; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,11845)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 16; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,11867)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 17; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,11886)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,11915)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 6; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,11932)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,11947)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,11962)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,11983)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,12003)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,12023)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,12049)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,12068)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,12080)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,12092)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,12104)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,12116)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 18; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,12128)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,12140)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,12152)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,12164)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,12177)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,12190)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,12203)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,12216)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,12229)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,12242)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,12255)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,12268)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,12287)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,12306)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,12325)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 19; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,12338)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 20; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,12356)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 21; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,12374)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 22; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,12392)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 23; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,12410)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,12430)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,11371)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 7; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,12448)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,12463)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,12484)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,12499)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,12517)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,12533)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,12552)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,12566)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,12581)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 8; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,11302)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,12592)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,11401)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 24; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,11431)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 25; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,12608)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,12635)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,12649)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,11337)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,12669)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,12687)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 9; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,12699)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,12720)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 26; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,12738)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 27; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,12756)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 28; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,12777)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,12803)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,12826)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,12864)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 10; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,12880)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,12895)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,12918)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,12931)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 29; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,12945)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 30; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,12959)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,12979)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,12999)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,13015)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,13033)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,13049)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,13064)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,13086)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 31; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,13104)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 32; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,13125)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,13143)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,13156)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,13171)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,13185)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,13195)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,13205)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,13227)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,13253)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,13280)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,13293)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,13308)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,13323)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,13347)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,13358)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 33; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,13380)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,13402)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,13426)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,13435)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,13443)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,13456)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,13470)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,13482)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,13491)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,13501)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,13513)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,13524)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,13532)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,13544)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,13559)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,13571)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,13585)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 11; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,13610)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,13627)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,13643)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,13659)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 12; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,13671)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 34; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,13683)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 35; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,13707)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,13720)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,13734)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 36; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,13756)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 37; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,13763)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,13779)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,13796)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,13813)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,13829)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,13845)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,13862)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,13876)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,13888)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,13899)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,13912)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,13922)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,13939)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,13951)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,13973)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,13993)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,14006)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,14028)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,14048)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,14065)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,14082)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,14102)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 38; + break; + } + } else { + HEAP32[$1>>2] = 6; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (19264|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3728|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + HEAP32[$3>>2] = $1; + $4 = ((($3)) + 4|0); + $5 = ((($0)) + 48|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($6|0)!=(0); + $8 = $7&1; + $9 = (($2) - ($8))|0; + HEAP32[$4>>2] = $9; + $10 = ((($3)) + 8|0); + $11 = ((($0)) + 44|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($3)) + 12|0); + HEAP32[$13>>2] = $6; + $14 = ((($0)) + 60|0); + $15 = HEAP32[$14>>2]|0; + $16 = $3; + HEAP32[$vararg_buffer>>2] = $15; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $16; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $17 = (___syscall145(145,($vararg_buffer|0))|0); + $18 = (___syscall_ret($17)|0); + $19 = ($18|0)<(1); + if ($19) { + $20 = $18 & 48; + $21 = $20 ^ 16; + $22 = HEAP32[$0>>2]|0; + $23 = $22 | $21; + HEAP32[$0>>2] = $23; + $$0 = $18; + } else { + $24 = HEAP32[$4>>2]|0; + $25 = ($18>>>0)>($24>>>0); + if ($25) { + $26 = (($18) - ($24))|0; + $27 = HEAP32[$11>>2]|0; + $28 = ((($0)) + 4|0); + HEAP32[$28>>2] = $27; + $29 = (($27) + ($26)|0); + $30 = ((($0)) + 8|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$5>>2]|0; + $32 = ($31|0)==(0); + if ($32) { + $$0 = $2; + } else { + $33 = ((($27)) + 1|0); + HEAP32[$28>>2] = $33; + $34 = HEAP8[$27>>0]|0; + $35 = (($2) + -1)|0; + $36 = (($1) + ($35)|0); + HEAP8[$36>>0] = $34; + $$0 = $2; + } + } else { + $$0 = $18; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 10; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function ___toread($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 28|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($8>>>0)>($10>>>0); + if ($11) { + $12 = ((($0)) + 36|0); + $13 = HEAP32[$12>>2]|0; + (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0); + } + $14 = ((($0)) + 16|0); + HEAP32[$14>>2] = 0; + HEAP32[$9>>2] = 0; + HEAP32[$7>>2] = 0; + $15 = HEAP32[$0>>2]|0; + $16 = $15 & 4; + $17 = ($16|0)==(0); + if ($17) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = $23; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = $23; + $26 = $15 << 27; + $sext = $26 >> 31; + $$0 = $sext; + } else { + $18 = $15 | 32; + HEAP32[$0>>2] = $18; + $$0 = -1; + } + return ($$0|0); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=4104; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((14218 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 14682;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 14682;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 14682 : (14684); + $$$ = $238 ? $$ : (14683); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 14682;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 14682;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 14692; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 14682;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (14682 + ($208)|0); + $$289 = $or$cond283 ? 14682 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 14682;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (14734 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 14699; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (14700) : (14705); + $$$ = $16 ? $$ : (14702); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (14734 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,14750,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,14750,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 14718 : 14722; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 14726 : 14730; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (14752 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 14840;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 14840; + } else { + $$01214 = 14840;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function ___unlist_locked_file($0) { + $0 = $0|0; + var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 68|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = ((($0)) + 116|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + $$pre = ((($0)) + 112|0); + if (!($6)) { + $7 = HEAP32[$$pre>>2]|0; + $8 = ((($5)) + 112|0); + HEAP32[$8>>2] = $7; + } + $9 = HEAP32[$$pre>>2]|0; + $10 = ($9|0)==(0|0); + if ($10) { + $12 = (___pthread_self_607()|0); + $13 = ((($12)) + 232|0); + $$sink = $13; + } else { + $11 = ((($9)) + 116|0); + $$sink = $11; + } + HEAP32[$$sink>>2] = $5; + } + return; +} +function ___pthread_self_607() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _fopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0; + var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer8 = sp + 32|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $memchr = (_memchr(16644,$3,4)|0); + $4 = ($memchr|0)==(0|0); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 22; + $$0 = 0; + } else { + $6 = (___fmodeflags($1)|0); + $7 = $0; + $8 = $6 | 32768; + HEAP32[$vararg_buffer>>2] = $7; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 438; + $9 = (___syscall5(5,($vararg_buffer|0))|0); + $10 = (___syscall_ret($9)|0); + $11 = ($10|0)<(0); + if ($11) { + $$0 = 0; + } else { + $12 = $6 & 524288; + $13 = ($12|0)==(0); + if (!($13)) { + HEAP32[$vararg_buffer3>>2] = $10; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 2; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = 1; + (___syscall221(221,($vararg_buffer3|0))|0); + } + $14 = (___fdopen($10,$1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + HEAP32[$vararg_buffer8>>2] = $10; + (___syscall6(6,($vararg_buffer8|0))|0); + $$0 = 0; + } else { + $$0 = $14; + } + } + } + STACKTOP = sp;return ($$0|0); +} +function ___fmodeflags($0) { + $0 = $0|0; + var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_strchr($0,43)|0); + $2 = ($1|0)==(0|0); + $3 = HEAP8[$0>>0]|0; + $not$ = ($3<<24>>24)!=(114); + $$ = $not$&1; + $$0 = $2 ? $$ : 2; + $4 = (_strchr($0,120)|0); + $5 = ($4|0)==(0|0); + $6 = $$0 | 128; + $$0$ = $5 ? $$0 : $6; + $7 = (_strchr($0,101)|0); + $8 = ($7|0)==(0|0); + $9 = $$0$ | 524288; + $$2 = $8 ? $$0$ : $9; + $10 = ($3<<24>>24)==(114); + $11 = $$2 | 64; + $$2$ = $10 ? $$2 : $11; + $12 = ($3<<24>>24)==(119); + $13 = $$2$ | 512; + $$4 = $12 ? $13 : $$2$; + $14 = ($3<<24>>24)==(97); + $15 = $$4 | 1024; + $$$4 = $14 ? $15 : $$4; + return ($$$4|0); +} +function ___fdopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer12 = sp + 40|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 56|0; + $3 = HEAP8[$1>>0]|0; + $4 = $3 << 24 >> 24; + $memchr = (_memchr(16644,$4,4)|0); + $5 = ($memchr|0)==(0|0); + if ($5) { + $6 = (___errno_location()|0); + HEAP32[$6>>2] = 22; + $$0 = 0; + } else { + $7 = (_malloc(1156)|0); + $8 = ($7|0)==(0|0); + if ($8) { + $$0 = 0; + } else { + dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $9 = (_strchr($1,43)|0); + $10 = ($9|0)==(0|0); + if ($10) { + $11 = ($3<<24>>24)==(114); + $12 = $11 ? 8 : 4; + HEAP32[$7>>2] = $12; + } + $13 = (_strchr($1,101)|0); + $14 = ($13|0)==(0|0); + if ($14) { + $16 = $3; + } else { + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 2; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 1; + (___syscall221(221,($vararg_buffer|0))|0); + $$pre = HEAP8[$1>>0]|0; + $16 = $$pre; + } + $15 = ($16<<24>>24)==(97); + if ($15) { + HEAP32[$vararg_buffer3>>2] = $0; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 3; + $17 = (___syscall221(221,($vararg_buffer3|0))|0); + $18 = $17 & 1024; + $19 = ($18|0)==(0); + if ($19) { + $20 = $17 | 1024; + HEAP32[$vararg_buffer7>>2] = $0; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = 4; + $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); + HEAP32[$vararg_ptr11>>2] = $20; + (___syscall221(221,($vararg_buffer7|0))|0); + } + $21 = HEAP32[$7>>2]|0; + $22 = $21 | 128; + HEAP32[$7>>2] = $22; + $29 = $22; + } else { + $$pre31 = HEAP32[$7>>2]|0; + $29 = $$pre31; + } + $23 = ((($7)) + 60|0); + HEAP32[$23>>2] = $0; + $24 = ((($7)) + 132|0); + $25 = ((($7)) + 44|0); + HEAP32[$25>>2] = $24; + $26 = ((($7)) + 48|0); + HEAP32[$26>>2] = 1024; + $27 = ((($7)) + 75|0); + HEAP8[$27>>0] = -1; + $28 = $29 & 8; + $30 = ($28|0)==(0); + if ($30) { + $31 = $2; + HEAP32[$vararg_buffer12>>2] = $0; + $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); + HEAP32[$vararg_ptr15>>2] = 21523; + $vararg_ptr16 = ((($vararg_buffer12)) + 8|0); + HEAP32[$vararg_ptr16>>2] = $31; + $32 = (___syscall54(54,($vararg_buffer12|0))|0); + $33 = ($32|0)==(0); + if ($33) { + HEAP8[$27>>0] = 10; + } + } + $34 = ((($7)) + 32|0); + HEAP32[$34>>2] = 11; + $35 = ((($7)) + 36|0); + HEAP32[$35>>2] = 10; + $36 = ((($7)) + 40|0); + HEAP32[$36>>2] = 3; + $37 = ((($7)) + 12|0); + HEAP32[$37>>2] = 2; + $38 = HEAP32[(19268)>>2]|0; + $39 = ($38|0)==(0); + if ($39) { + $40 = ((($7)) + 76|0); + HEAP32[$40>>2] = -1; + } + $41 = (___ofl_add($7)|0); + $$0 = $7; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___ofl_add($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___ofl_lock()|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 56|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$1>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($4)) + 52|0); + HEAP32[$6>>2] = $0; + } + HEAP32[$1>>2] = $0; + ___ofl_unlock(); + return ($0|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((19328|0)); + return (19336|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((19328|0)); + return; +} +function _fclose($0) { + $0 = $0|0; + var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $29 = $4; + } else { + $29 = 0; + } + ___unlist_locked_file($0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 1; + $7 = ($6|0)!=(0); + if (!($7)) { + $8 = (___ofl_lock()|0); + $9 = ((($0)) + 52|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)==(0|0); + $12 = $10; + $$pre = ((($0)) + 56|0); + if (!($11)) { + $13 = HEAP32[$$pre>>2]|0; + $14 = ((($10)) + 56|0); + HEAP32[$14>>2] = $13; + } + $15 = HEAP32[$$pre>>2]|0; + $16 = ($15|0)==(0|0); + if (!($16)) { + $17 = ((($15)) + 52|0); + HEAP32[$17>>2] = $12; + } + $18 = HEAP32[$8>>2]|0; + $19 = ($18|0)==($0|0); + if ($19) { + HEAP32[$8>>2] = $15; + } + ___ofl_unlock(); + } + $20 = (_fflush($0)|0); + $21 = ((($0)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = (FUNCTION_TABLE_ii[$22 & 15]($0)|0); + $24 = $23 | $20; + $25 = ((($0)) + 92|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($26|0)==(0|0); + if (!($27)) { + _free($26); + } + if ($7) { + $28 = ($29|0)==(0); + if (!($28)) { + ___unlockfile($0); + } + } else { + _free($0); + } + return ($24|0); +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[1025]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[1025]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _feof($0) { + $0 = $0|0; + var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 >>> 4; + $$lobit = $8 & 1; + if ($phitmp) { + $$lobit9 = $$lobit; + } else { + ___unlockfile($0); + $$lobit9 = $$lobit; + } + } else { + $4 = HEAP32[$0>>2]|0; + $5 = $4 >>> 4; + $$lobit8 = $5 & 1; + $$lobit9 = $$lobit8; + } + return ($$lobit9|0); +} +function _fseek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (___fseeko($0,$1,$2)|0); + return ($3|0); +} +function ___fseeko($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $7 = (___lockfile($0)|0); + $phitmp = ($7|0)==(0); + $8 = (___fseeko_unlocked($0,$1,$2)|0); + if ($phitmp) { + $9 = $8; + } else { + ___unlockfile($0); + $9 = $8; + } + } else { + $6 = (___fseeko_unlocked($0,$1,$2)|0); + $9 = $6; + } + return ($9|0); +} +function ___fseeko_unlocked($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(1); + if ($3) { + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 4|0); + $7 = HEAP32[$6>>2]|0; + $8 = (($1) - ($5))|0; + $9 = (($8) + ($7))|0; + $$019 = $9; + } else { + $$019 = $1; + } + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 28|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)>($13>>>0); + if ($14) { + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + (FUNCTION_TABLE_iiii[$16 & 15]($0,0,0)|0); + $17 = HEAP32[$10>>2]|0; + $18 = ($17|0)==(0|0); + if ($18) { + $$0 = -1; + } else { + label = 5; + } + } else { + label = 5; + } + if ((label|0) == 5) { + $19 = ((($0)) + 16|0); + HEAP32[$19>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + $22 = (FUNCTION_TABLE_iiii[$21 & 15]($0,$$019,$2)|0); + $23 = ($22|0)<(0); + if ($23) { + $$0 = -1; + } else { + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = 0; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = 0; + $26 = HEAP32[$0>>2]|0; + $27 = $26 & -17; + HEAP32[$0>>2] = $27; + $$0 = 0; + } + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strrchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($2) + 1)|0; + $4 = (___memrchr($0,$1,$3)|0); + return ($4|0); +} +function ___memrchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1&255; + $$09 = $2; + while(1) { + $4 = (($$09) + -1)|0; + $5 = ($$09|0)==(0); + if ($5) { + $$0 = 0; + break; + } + $6 = (($0) + ($4)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==($3<<24>>24); + if ($8) { + $$0 = $6; + break; + } else { + $$09 = $4; + } + } + return ($$0|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 16920; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _fread($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = ($1|0)==(0); + $$ = $5 ? 0 : $2; + $6 = ((($3)) + 76|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)>(-1); + if ($8) { + $9 = (___lockfile($3)|0); + $36 = $9; + } else { + $36 = 0; + } + $10 = ((($3)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ((($3)) + 8|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($3)) + 4|0); + $19 = HEAP32[$18>>2]|0; + $20 = $19; + $21 = (($17) - ($20))|0; + $22 = ($21|0)>(0); + $23 = ($21>>>0)<($4>>>0); + $$57 = $23 ? $21 : $4; + if ($22) { + $24 = (($4) - ($$57))|0; + $25 = (($0) + ($$57)|0); + _memcpy(($0|0),($19|0),($$57|0))|0; + $26 = (($19) + ($$57)|0); + HEAP32[$18>>2] = $26; + $$054$ph = $24;$$056$ph = $25; + } else { + $$054$ph = $4;$$056$ph = $0; + } + $27 = ($$054$ph|0)==(0); + L7: do { + if ($27) { + label = 13; + } else { + $28 = ((($3)) + 32|0); + $$05460 = $$054$ph;$$05659 = $$056$ph; + while(1) { + $29 = (___toread($3)|0); + $30 = ($29|0)==(0); + if (!($30)) { + break; + } + $31 = HEAP32[$28>>2]|0; + $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0); + $33 = (($32) + 1)|0; + $34 = ($33>>>0)<(2); + if ($34) { + break; + } + $39 = (($$05460) - ($32))|0; + $40 = (($$05659) + ($32)|0); + $41 = ($39|0)==(0); + if ($41) { + label = 13; + break L7; + } else { + $$05460 = $39;$$05659 = $40; + } + } + $35 = ($36|0)==(0); + if (!($35)) { + ___unlockfile($3); + } + $37 = (($4) - ($$05460))|0; + $38 = (($37>>>0) / ($1>>>0))&-1; + $$0 = $38; + } + } while(0); + if ((label|0) == 13) { + $42 = ($36|0)==(0); + if ($42) { + $$0 = $$; + } else { + ___unlockfile($3); + $$0 = $$; + } + } + return ($$0|0); +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[993]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[4835]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[4835] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[4835] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[4835] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[4835] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[4836]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (19384 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[4836] = $24; + } else { + $25 = HEAP32[(19360)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(19352)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (19384 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[4836] = $77; + $98 = $77; + } else { + $78 = HEAP32[(19360)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(19364)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (19384 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[4836] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(19360)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(19352)>>2] = $84; + HEAP32[(19364)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(19348)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (19648 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(19360)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (19648 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(19348)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(19360)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(19360)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(19360)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(19364)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (19384 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[4836] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(19360)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(19352)>>2] = $$0193$lcssa$i; + HEAP32[(19364)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(19348)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (19648 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (19648 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(19352)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(19360)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (19648 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(19348)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(19360)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(19360)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(19360)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (19384 + ($425<<2)|0); + $427 = HEAP32[4836]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[4836] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(19360)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (19648 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(19348)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(19360)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(19360)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(19352)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(19364)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(19364)>>2] = $511; + HEAP32[(19352)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(19352)>>2] = 0; + HEAP32[(19364)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(19356)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(19356)>>2] = $526; + $527 = HEAP32[(19368)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(19368)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[4954]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(19824)>>2] = 4096; + HEAP32[(19820)>>2] = 4096; + HEAP32[(19828)>>2] = -1; + HEAP32[(19832)>>2] = -1; + HEAP32[(19836)>>2] = 0; + HEAP32[(19788)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[4954] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(19824)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(19784)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(19776)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(19788)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(19368)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (19792); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(19820)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(19776)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(19784)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(19824)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(19788)>>2]|0; + $612 = $611 | 4; + HEAP32[(19788)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(19776)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(19776)>>2] = $627; + $628 = HEAP32[(19780)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(19780)>>2] = $627; + } + $630 = HEAP32[(19368)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(19360)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(19360)>>2] = $$749$i; + } + HEAP32[(19792)>>2] = $$749$i; + HEAP32[(19796)>>2] = $$723948$i; + HEAP32[(19804)>>2] = 0; + $635 = HEAP32[4954]|0; + HEAP32[(19380)>>2] = $635; + HEAP32[(19376)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (19384 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(19368)>>2] = $649; + HEAP32[(19356)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(19832)>>2]|0; + HEAP32[(19372)>>2] = $655; + } else { + $$024371$i = (19792); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(19356)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(19368)>>2] = $679; + HEAP32[(19356)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(19832)>>2]|0; + HEAP32[(19372)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(19360)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(19360)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (19792); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(19356)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(19356)>>2] = $727; + HEAP32[(19368)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(19364)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(19352)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(19352)>>2] = $733; + HEAP32[(19364)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (19384 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[4836]|0; + $760 = $759 & $758; + HEAP32[4836] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (19648 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(19348)>>2]|0; + $803 = $802 & $801; + HEAP32[(19348)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(19360)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(19360)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(19360)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (19384 + ($836<<2)|0); + $838 = HEAP32[4836]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[4836] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(19360)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (19648 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(19348)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(19348)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(19360)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(19360)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (19792); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(19368)>>2] = $946; + HEAP32[(19356)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(19832)>>2]|0; + HEAP32[(19372)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(19792)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(19792)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(19792)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(19792)+12>>2]|0; + HEAP32[(19792)>>2] = $$749$i; + HEAP32[(19796)>>2] = $$723948$i; + HEAP32[(19804)>>2] = 0; + HEAP32[(19800)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (19384 + ($968<<2)|0); + $970 = HEAP32[4836]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[4836] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(19360)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (19648 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(19348)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(19348)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(19360)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(19360)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(19356)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(19356)>>2] = $1050; + $1051 = HEAP32[(19368)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(19368)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(19360)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(19364)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(19352)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (19384 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[4836]|0; + $38 = $37 & $36; + HEAP32[4836] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (19648 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(19348)>>2]|0; + $81 = $80 & $79; + HEAP32[(19348)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(19360)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(19360)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(19360)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(19368)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(19364)>>2]|0; + if ($121) { + $123 = HEAP32[(19356)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(19356)>>2] = $124; + HEAP32[(19368)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(19364)>>2] = 0; + HEAP32[(19352)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(19352)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(19352)>>2] = $130; + HEAP32[(19364)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (19384 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(19360)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[4836]|0; + $154 = $153 & $152; + HEAP32[4836] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(19360)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(19360)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(19360)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (19648 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(19348)>>2]|0; + $200 = $199 & $198; + HEAP32[(19348)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(19360)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(19360)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(19360)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(19364)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(19352)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (19384 + ($234<<2)|0); + $236 = HEAP32[4836]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[4836] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(19360)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (19648 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(19348)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(19348)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(19360)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(19360)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(19376)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(19376)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (19800); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(19376)>>2] = -1; + return; +} +function _realloc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = (_malloc($1)|0); + $$1 = $3; + return ($$1|0); + } + $4 = ($1>>>0)>(4294967231); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 12; + $$1 = 0; + return ($$1|0); + } + $6 = ($1>>>0)<(11); + $7 = (($1) + 11)|0; + $8 = $7 & -8; + $9 = $6 ? 16 : $8; + $10 = ((($0)) + -8|0); + $11 = (_try_realloc_chunk($10,$9)|0); + $12 = ($11|0)==(0|0); + if (!($12)) { + $13 = ((($11)) + 8|0); + $$1 = $13; + return ($$1|0); + } + $14 = (_malloc($1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$1 = 0; + return ($$1|0); + } + $16 = ((($0)) + -4|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 & -8; + $19 = $17 & 3; + $20 = ($19|0)==(0); + $21 = $20 ? 8 : 4; + $22 = (($18) - ($21))|0; + $23 = ($22>>>0)<($1>>>0); + $24 = $23 ? $22 : $1; + _memcpy(($14|0),($0|0),($24|0))|0; + _free($0); + $$1 = $14; + return ($$1|0); +} +function _try_realloc_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1272 = 0, $$1275 = 0, $$2 = 0, $$3 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $cond = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & -8; + $5 = (($0) + ($4)|0); + $6 = HEAP32[(19360)>>2]|0; + $7 = $3 & 3; + $notlhs = ($0>>>0)>=($6>>>0); + $notrhs = ($7|0)!=(1); + $or$cond$not = $notrhs & $notlhs; + $8 = ($0>>>0)<($5>>>0); + $or$cond3 = $or$cond$not & $8; + if (!($or$cond3)) { + _abort(); + // unreachable; + } + $9 = ((($5)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = $10 & 1; + $12 = ($11|0)==(0); + if ($12) { + _abort(); + // unreachable; + } + $13 = ($7|0)==(0); + if ($13) { + $14 = ($1>>>0)<(256); + if ($14) { + $$2 = 0; + return ($$2|0); + } + $15 = (($1) + 4)|0; + $16 = ($4>>>0)<($15>>>0); + if (!($16)) { + $17 = (($4) - ($1))|0; + $18 = HEAP32[(19824)>>2]|0; + $19 = $18 << 1; + $20 = ($17>>>0)>($19>>>0); + if (!($20)) { + $$2 = $0; + return ($$2|0); + } + } + $$2 = 0; + return ($$2|0); + } + $21 = ($4>>>0)<($1>>>0); + if (!($21)) { + $22 = (($4) - ($1))|0; + $23 = ($22>>>0)>(15); + if (!($23)) { + $$2 = $0; + return ($$2|0); + } + $24 = (($0) + ($1)|0); + $25 = $3 & 1; + $26 = $25 | $1; + $27 = $26 | 2; + HEAP32[$2>>2] = $27; + $28 = ((($24)) + 4|0); + $29 = $22 | 3; + HEAP32[$28>>2] = $29; + $30 = (($24) + ($22)|0); + $31 = ((($30)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = $32 | 1; + HEAP32[$31>>2] = $33; + _dispose_chunk($24,$22); + $$2 = $0; + return ($$2|0); + } + $34 = HEAP32[(19368)>>2]|0; + $35 = ($5|0)==($34|0); + if ($35) { + $36 = HEAP32[(19356)>>2]|0; + $37 = (($36) + ($4))|0; + $38 = ($37>>>0)>($1>>>0); + $39 = (($37) - ($1))|0; + $40 = (($0) + ($1)|0); + if (!($38)) { + $$2 = 0; + return ($$2|0); + } + $41 = $39 | 1; + $42 = ((($40)) + 4|0); + $43 = $3 & 1; + $44 = $43 | $1; + $45 = $44 | 2; + HEAP32[$2>>2] = $45; + HEAP32[$42>>2] = $41; + HEAP32[(19368)>>2] = $40; + HEAP32[(19356)>>2] = $39; + $$2 = $0; + return ($$2|0); + } + $46 = HEAP32[(19364)>>2]|0; + $47 = ($5|0)==($46|0); + if ($47) { + $48 = HEAP32[(19352)>>2]|0; + $49 = (($48) + ($4))|0; + $50 = ($49>>>0)<($1>>>0); + if ($50) { + $$2 = 0; + return ($$2|0); + } + $51 = (($49) - ($1))|0; + $52 = ($51>>>0)>(15); + $53 = $3 & 1; + if ($52) { + $54 = (($0) + ($1)|0); + $55 = (($54) + ($51)|0); + $56 = $53 | $1; + $57 = $56 | 2; + HEAP32[$2>>2] = $57; + $58 = ((($54)) + 4|0); + $59 = $51 | 1; + HEAP32[$58>>2] = $59; + HEAP32[$55>>2] = $51; + $60 = ((($55)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = $61 & -2; + HEAP32[$60>>2] = $62; + $storemerge = $54;$storemerge1 = $51; + } else { + $63 = $53 | $49; + $64 = $63 | 2; + HEAP32[$2>>2] = $64; + $65 = (($0) + ($49)|0); + $66 = ((($65)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = $67 | 1; + HEAP32[$66>>2] = $68; + $storemerge = 0;$storemerge1 = 0; + } + HEAP32[(19352)>>2] = $storemerge1; + HEAP32[(19364)>>2] = $storemerge; + $$2 = $0; + return ($$2|0); + } + $69 = $10 & 2; + $70 = ($69|0)==(0); + if (!($70)) { + $$2 = 0; + return ($$2|0); + } + $71 = $10 & -8; + $72 = (($71) + ($4))|0; + $73 = ($72>>>0)<($1>>>0); + if ($73) { + $$2 = 0; + return ($$2|0); + } + $74 = (($72) - ($1))|0; + $75 = $10 >>> 3; + $76 = ($10>>>0)<(256); + L49: do { + if ($76) { + $77 = ((($5)) + 8|0); + $78 = HEAP32[$77>>2]|0; + $79 = ((($5)) + 12|0); + $80 = HEAP32[$79>>2]|0; + $81 = $75 << 1; + $82 = (19384 + ($81<<2)|0); + $83 = ($78|0)==($82|0); + if (!($83)) { + $84 = ($78>>>0)<($6>>>0); + if ($84) { + _abort(); + // unreachable; + } + $85 = ((($78)) + 12|0); + $86 = HEAP32[$85>>2]|0; + $87 = ($86|0)==($5|0); + if (!($87)) { + _abort(); + // unreachable; + } + } + $88 = ($80|0)==($78|0); + if ($88) { + $89 = 1 << $75; + $90 = $89 ^ -1; + $91 = HEAP32[4836]|0; + $92 = $91 & $90; + HEAP32[4836] = $92; + break; + } + $93 = ($80|0)==($82|0); + if ($93) { + $$pre = ((($80)) + 8|0); + $$pre$phiZ2D = $$pre; + } else { + $94 = ($80>>>0)<($6>>>0); + if ($94) { + _abort(); + // unreachable; + } + $95 = ((($80)) + 8|0); + $96 = HEAP32[$95>>2]|0; + $97 = ($96|0)==($5|0); + if ($97) { + $$pre$phiZ2D = $95; + } else { + _abort(); + // unreachable; + } + } + $98 = ((($78)) + 12|0); + HEAP32[$98>>2] = $80; + HEAP32[$$pre$phiZ2D>>2] = $78; + } else { + $99 = ((($5)) + 24|0); + $100 = HEAP32[$99>>2]|0; + $101 = ((($5)) + 12|0); + $102 = HEAP32[$101>>2]|0; + $103 = ($102|0)==($5|0); + do { + if ($103) { + $113 = ((($5)) + 16|0); + $114 = ((($113)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = ($115|0)==(0|0); + if ($116) { + $117 = HEAP32[$113>>2]|0; + $118 = ($117|0)==(0|0); + if ($118) { + $$3 = 0; + break; + } else { + $$1272 = $117;$$1275 = $113; + } + } else { + $$1272 = $115;$$1275 = $114; + } + while(1) { + $119 = ((($$1272)) + 20|0); + $120 = HEAP32[$119>>2]|0; + $121 = ($120|0)==(0|0); + if (!($121)) { + $$1272 = $120;$$1275 = $119; + continue; + } + $122 = ((($$1272)) + 16|0); + $123 = HEAP32[$122>>2]|0; + $124 = ($123|0)==(0|0); + if ($124) { + break; + } else { + $$1272 = $123;$$1275 = $122; + } + } + $125 = ($$1275>>>0)<($6>>>0); + if ($125) { + _abort(); + // unreachable; + } else { + HEAP32[$$1275>>2] = 0; + $$3 = $$1272; + break; + } + } else { + $104 = ((($5)) + 8|0); + $105 = HEAP32[$104>>2]|0; + $106 = ($105>>>0)<($6>>>0); + if ($106) { + _abort(); + // unreachable; + } + $107 = ((($105)) + 12|0); + $108 = HEAP32[$107>>2]|0; + $109 = ($108|0)==($5|0); + if (!($109)) { + _abort(); + // unreachable; + } + $110 = ((($102)) + 8|0); + $111 = HEAP32[$110>>2]|0; + $112 = ($111|0)==($5|0); + if ($112) { + HEAP32[$107>>2] = $102; + HEAP32[$110>>2] = $105; + $$3 = $102; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $126 = ($100|0)==(0|0); + if (!($126)) { + $127 = ((($5)) + 28|0); + $128 = HEAP32[$127>>2]|0; + $129 = (19648 + ($128<<2)|0); + $130 = HEAP32[$129>>2]|0; + $131 = ($5|0)==($130|0); + do { + if ($131) { + HEAP32[$129>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $132 = 1 << $128; + $133 = $132 ^ -1; + $134 = HEAP32[(19348)>>2]|0; + $135 = $134 & $133; + HEAP32[(19348)>>2] = $135; + break L49; + } + } else { + $136 = HEAP32[(19360)>>2]|0; + $137 = ($100>>>0)<($136>>>0); + if ($137) { + _abort(); + // unreachable; + } else { + $138 = ((($100)) + 16|0); + $139 = HEAP32[$138>>2]|0; + $not$ = ($139|0)!=($5|0); + $$sink1 = $not$&1; + $140 = (((($100)) + 16|0) + ($$sink1<<2)|0); + HEAP32[$140>>2] = $$3; + $141 = ($$3|0)==(0|0); + if ($141) { + break L49; + } else { + break; + } + } + } + } while(0); + $142 = HEAP32[(19360)>>2]|0; + $143 = ($$3>>>0)<($142>>>0); + if ($143) { + _abort(); + // unreachable; + } + $144 = ((($$3)) + 24|0); + HEAP32[$144>>2] = $100; + $145 = ((($5)) + 16|0); + $146 = HEAP32[$145>>2]|0; + $147 = ($146|0)==(0|0); + do { + if (!($147)) { + $148 = ($146>>>0)<($142>>>0); + if ($148) { + _abort(); + // unreachable; + } else { + $149 = ((($$3)) + 16|0); + HEAP32[$149>>2] = $146; + $150 = ((($146)) + 24|0); + HEAP32[$150>>2] = $$3; + break; + } + } + } while(0); + $151 = ((($145)) + 4|0); + $152 = HEAP32[$151>>2]|0; + $153 = ($152|0)==(0|0); + if (!($153)) { + $154 = HEAP32[(19360)>>2]|0; + $155 = ($152>>>0)<($154>>>0); + if ($155) { + _abort(); + // unreachable; + } else { + $156 = ((($$3)) + 20|0); + HEAP32[$156>>2] = $152; + $157 = ((($152)) + 24|0); + HEAP32[$157>>2] = $$3; + break; + } + } + } + } + } while(0); + $158 = ($74>>>0)<(16); + $159 = $3 & 1; + if ($158) { + $160 = $72 | $159; + $161 = $160 | 2; + HEAP32[$2>>2] = $161; + $162 = (($0) + ($72)|0); + $163 = ((($162)) + 4|0); + $164 = HEAP32[$163>>2]|0; + $165 = $164 | 1; + HEAP32[$163>>2] = $165; + $$2 = $0; + return ($$2|0); + } else { + $166 = (($0) + ($1)|0); + $167 = $159 | $1; + $168 = $167 | 2; + HEAP32[$2>>2] = $168; + $169 = ((($166)) + 4|0); + $170 = $74 | 3; + HEAP32[$169>>2] = $170; + $171 = (($166) + ($74)|0); + $172 = ((($171)) + 4|0); + $173 = HEAP32[$172>>2]|0; + $174 = $173 | 1; + HEAP32[$172>>2] = $174; + _dispose_chunk($166,$74); + $$2 = $0; + return ($$2|0); + } + return (0)|0; +} +function _dispose_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0419 = 0, $$0420 = 0, $$0431 = 0, $$0438 = 0, $$1 = 0, $$1418 = 0, $$1426 = 0, $$1429 = 0, $$1433 = 0, $$1437 = 0, $$2 = 0, $$3 = 0, $$3435 = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $$pre23 = 0, $$pre25 = 0, $$sink2 = 0; + var $$sink4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond17 = 0, $not$ = 0, $not$1 = 0, $not$19 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0) + ($1)|0); + $3 = ((($0)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = $4 & 1; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = HEAP32[$0>>2]|0; + $8 = $4 & 3; + $9 = ($8|0)==(0); + if ($9) { + return; + } + $10 = (0 - ($7))|0; + $11 = (($0) + ($10)|0); + $12 = (($7) + ($1))|0; + $13 = HEAP32[(19360)>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + _abort(); + // unreachable; + } + $15 = HEAP32[(19364)>>2]|0; + $16 = ($11|0)==($15|0); + if ($16) { + $100 = ((($2)) + 4|0); + $101 = HEAP32[$100>>2]|0; + $102 = $101 & 3; + $103 = ($102|0)==(3); + if (!($103)) { + $$1 = $11;$$1418 = $12; + break; + } + $104 = (($11) + ($12)|0); + $105 = ((($11)) + 4|0); + $106 = $12 | 1; + $107 = $101 & -2; + HEAP32[(19352)>>2] = $12; + HEAP32[$100>>2] = $107; + HEAP32[$105>>2] = $106; + HEAP32[$104>>2] = $12; + return; + } + $17 = $7 >>> 3; + $18 = ($7>>>0)<(256); + if ($18) { + $19 = ((($11)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($11)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = $17 << 1; + $24 = (19384 + ($23<<2)|0); + $25 = ($20|0)==($24|0); + if (!($25)) { + $26 = ($20>>>0)<($13>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($11|0); + if (!($29)) { + _abort(); + // unreachable; + } + } + $30 = ($22|0)==($20|0); + if ($30) { + $31 = 1 << $17; + $32 = $31 ^ -1; + $33 = HEAP32[4836]|0; + $34 = $33 & $32; + HEAP32[4836] = $34; + $$1 = $11;$$1418 = $12; + break; + } + $35 = ($22|0)==($24|0); + if ($35) { + $$pre25 = ((($22)) + 8|0); + $$pre$phi26Z2D = $$pre25; + } else { + $36 = ($22>>>0)<($13>>>0); + if ($36) { + _abort(); + // unreachable; + } + $37 = ((($22)) + 8|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==($11|0); + if ($39) { + $$pre$phi26Z2D = $37; + } else { + _abort(); + // unreachable; + } + } + $40 = ((($20)) + 12|0); + HEAP32[$40>>2] = $22; + HEAP32[$$pre$phi26Z2D>>2] = $20; + $$1 = $11;$$1418 = $12; + break; + } + $41 = ((($11)) + 24|0); + $42 = HEAP32[$41>>2]|0; + $43 = ((($11)) + 12|0); + $44 = HEAP32[$43>>2]|0; + $45 = ($44|0)==($11|0); + do { + if ($45) { + $55 = ((($11)) + 16|0); + $56 = ((($55)) + 4|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==(0|0); + if ($58) { + $59 = HEAP32[$55>>2]|0; + $60 = ($59|0)==(0|0); + if ($60) { + $$3 = 0; + break; + } else { + $$1426 = $59;$$1429 = $55; + } + } else { + $$1426 = $57;$$1429 = $56; + } + while(1) { + $61 = ((($$1426)) + 20|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $$1426 = $62;$$1429 = $61; + continue; + } + $64 = ((($$1426)) + 16|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if ($66) { + break; + } else { + $$1426 = $65;$$1429 = $64; + } + } + $67 = ($$1429>>>0)<($13>>>0); + if ($67) { + _abort(); + // unreachable; + } else { + HEAP32[$$1429>>2] = 0; + $$3 = $$1426; + break; + } + } else { + $46 = ((($11)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($47>>>0)<($13>>>0); + if ($48) { + _abort(); + // unreachable; + } + $49 = ((($47)) + 12|0); + $50 = HEAP32[$49>>2]|0; + $51 = ($50|0)==($11|0); + if (!($51)) { + _abort(); + // unreachable; + } + $52 = ((($44)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($53|0)==($11|0); + if ($54) { + HEAP32[$49>>2] = $44; + HEAP32[$52>>2] = $47; + $$3 = $44; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $68 = ($42|0)==(0|0); + if ($68) { + $$1 = $11;$$1418 = $12; + } else { + $69 = ((($11)) + 28|0); + $70 = HEAP32[$69>>2]|0; + $71 = (19648 + ($70<<2)|0); + $72 = HEAP32[$71>>2]|0; + $73 = ($11|0)==($72|0); + do { + if ($73) { + HEAP32[$71>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $74 = 1 << $70; + $75 = $74 ^ -1; + $76 = HEAP32[(19348)>>2]|0; + $77 = $76 & $75; + HEAP32[(19348)>>2] = $77; + $$1 = $11;$$1418 = $12; + break L1; + } + } else { + $78 = HEAP32[(19360)>>2]|0; + $79 = ($42>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } else { + $80 = ((($42)) + 16|0); + $81 = HEAP32[$80>>2]|0; + $not$1 = ($81|0)!=($11|0); + $$sink2 = $not$1&1; + $82 = (((($42)) + 16|0) + ($$sink2<<2)|0); + HEAP32[$82>>2] = $$3; + $83 = ($$3|0)==(0|0); + if ($83) { + $$1 = $11;$$1418 = $12; + break L1; + } else { + break; + } + } + } + } while(0); + $84 = HEAP32[(19360)>>2]|0; + $85 = ($$3>>>0)<($84>>>0); + if ($85) { + _abort(); + // unreachable; + } + $86 = ((($$3)) + 24|0); + HEAP32[$86>>2] = $42; + $87 = ((($11)) + 16|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0|0); + do { + if (!($89)) { + $90 = ($88>>>0)<($84>>>0); + if ($90) { + _abort(); + // unreachable; + } else { + $91 = ((($$3)) + 16|0); + HEAP32[$91>>2] = $88; + $92 = ((($88)) + 24|0); + HEAP32[$92>>2] = $$3; + break; + } + } + } while(0); + $93 = ((($87)) + 4|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)==(0|0); + if ($95) { + $$1 = $11;$$1418 = $12; + } else { + $96 = HEAP32[(19360)>>2]|0; + $97 = ($94>>>0)<($96>>>0); + if ($97) { + _abort(); + // unreachable; + } else { + $98 = ((($$3)) + 20|0); + HEAP32[$98>>2] = $94; + $99 = ((($94)) + 24|0); + HEAP32[$99>>2] = $$3; + $$1 = $11;$$1418 = $12; + break; + } + } + } + } else { + $$1 = $0;$$1418 = $1; + } + } while(0); + $108 = HEAP32[(19360)>>2]|0; + $109 = ($2>>>0)<($108>>>0); + if ($109) { + _abort(); + // unreachable; + } + $110 = ((($2)) + 4|0); + $111 = HEAP32[$110>>2]|0; + $112 = $111 & 2; + $113 = ($112|0)==(0); + if ($113) { + $114 = HEAP32[(19368)>>2]|0; + $115 = ($2|0)==($114|0); + $116 = HEAP32[(19364)>>2]|0; + if ($115) { + $117 = HEAP32[(19356)>>2]|0; + $118 = (($117) + ($$1418))|0; + HEAP32[(19356)>>2] = $118; + HEAP32[(19368)>>2] = $$1; + $119 = $118 | 1; + $120 = ((($$1)) + 4|0); + HEAP32[$120>>2] = $119; + $121 = ($$1|0)==($116|0); + if (!($121)) { + return; + } + HEAP32[(19364)>>2] = 0; + HEAP32[(19352)>>2] = 0; + return; + } + $122 = ($2|0)==($116|0); + if ($122) { + $123 = HEAP32[(19352)>>2]|0; + $124 = (($123) + ($$1418))|0; + HEAP32[(19352)>>2] = $124; + HEAP32[(19364)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = (($$1) + ($124)|0); + HEAP32[$127>>2] = $124; + return; + } + $128 = $111 & -8; + $129 = (($128) + ($$1418))|0; + $130 = $111 >>> 3; + $131 = ($111>>>0)<(256); + L96: do { + if ($131) { + $132 = ((($2)) + 8|0); + $133 = HEAP32[$132>>2]|0; + $134 = ((($2)) + 12|0); + $135 = HEAP32[$134>>2]|0; + $136 = $130 << 1; + $137 = (19384 + ($136<<2)|0); + $138 = ($133|0)==($137|0); + if (!($138)) { + $139 = ($133>>>0)<($108>>>0); + if ($139) { + _abort(); + // unreachable; + } + $140 = ((($133)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = ($141|0)==($2|0); + if (!($142)) { + _abort(); + // unreachable; + } + } + $143 = ($135|0)==($133|0); + if ($143) { + $144 = 1 << $130; + $145 = $144 ^ -1; + $146 = HEAP32[4836]|0; + $147 = $146 & $145; + HEAP32[4836] = $147; + break; + } + $148 = ($135|0)==($137|0); + if ($148) { + $$pre23 = ((($135)) + 8|0); + $$pre$phi24Z2D = $$pre23; + } else { + $149 = ($135>>>0)<($108>>>0); + if ($149) { + _abort(); + // unreachable; + } + $150 = ((($135)) + 8|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==($2|0); + if ($152) { + $$pre$phi24Z2D = $150; + } else { + _abort(); + // unreachable; + } + } + $153 = ((($133)) + 12|0); + HEAP32[$153>>2] = $135; + HEAP32[$$pre$phi24Z2D>>2] = $133; + } else { + $154 = ((($2)) + 24|0); + $155 = HEAP32[$154>>2]|0; + $156 = ((($2)) + 12|0); + $157 = HEAP32[$156>>2]|0; + $158 = ($157|0)==($2|0); + do { + if ($158) { + $168 = ((($2)) + 16|0); + $169 = ((($168)) + 4|0); + $170 = HEAP32[$169>>2]|0; + $171 = ($170|0)==(0|0); + if ($171) { + $172 = HEAP32[$168>>2]|0; + $173 = ($172|0)==(0|0); + if ($173) { + $$3435 = 0; + break; + } else { + $$1433 = $172;$$1437 = $168; + } + } else { + $$1433 = $170;$$1437 = $169; + } + while(1) { + $174 = ((($$1433)) + 20|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==(0|0); + if (!($176)) { + $$1433 = $175;$$1437 = $174; + continue; + } + $177 = ((($$1433)) + 16|0); + $178 = HEAP32[$177>>2]|0; + $179 = ($178|0)==(0|0); + if ($179) { + break; + } else { + $$1433 = $178;$$1437 = $177; + } + } + $180 = ($$1437>>>0)<($108>>>0); + if ($180) { + _abort(); + // unreachable; + } else { + HEAP32[$$1437>>2] = 0; + $$3435 = $$1433; + break; + } + } else { + $159 = ((($2)) + 8|0); + $160 = HEAP32[$159>>2]|0; + $161 = ($160>>>0)<($108>>>0); + if ($161) { + _abort(); + // unreachable; + } + $162 = ((($160)) + 12|0); + $163 = HEAP32[$162>>2]|0; + $164 = ($163|0)==($2|0); + if (!($164)) { + _abort(); + // unreachable; + } + $165 = ((($157)) + 8|0); + $166 = HEAP32[$165>>2]|0; + $167 = ($166|0)==($2|0); + if ($167) { + HEAP32[$162>>2] = $157; + HEAP32[$165>>2] = $160; + $$3435 = $157; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $181 = ($155|0)==(0|0); + if (!($181)) { + $182 = ((($2)) + 28|0); + $183 = HEAP32[$182>>2]|0; + $184 = (19648 + ($183<<2)|0); + $185 = HEAP32[$184>>2]|0; + $186 = ($2|0)==($185|0); + do { + if ($186) { + HEAP32[$184>>2] = $$3435; + $cond17 = ($$3435|0)==(0|0); + if ($cond17) { + $187 = 1 << $183; + $188 = $187 ^ -1; + $189 = HEAP32[(19348)>>2]|0; + $190 = $189 & $188; + HEAP32[(19348)>>2] = $190; + break L96; + } + } else { + $191 = HEAP32[(19360)>>2]|0; + $192 = ($155>>>0)<($191>>>0); + if ($192) { + _abort(); + // unreachable; + } else { + $193 = ((($155)) + 16|0); + $194 = HEAP32[$193>>2]|0; + $not$ = ($194|0)!=($2|0); + $$sink4 = $not$&1; + $195 = (((($155)) + 16|0) + ($$sink4<<2)|0); + HEAP32[$195>>2] = $$3435; + $196 = ($$3435|0)==(0|0); + if ($196) { + break L96; + } else { + break; + } + } + } + } while(0); + $197 = HEAP32[(19360)>>2]|0; + $198 = ($$3435>>>0)<($197>>>0); + if ($198) { + _abort(); + // unreachable; + } + $199 = ((($$3435)) + 24|0); + HEAP32[$199>>2] = $155; + $200 = ((($2)) + 16|0); + $201 = HEAP32[$200>>2]|0; + $202 = ($201|0)==(0|0); + do { + if (!($202)) { + $203 = ($201>>>0)<($197>>>0); + if ($203) { + _abort(); + // unreachable; + } else { + $204 = ((($$3435)) + 16|0); + HEAP32[$204>>2] = $201; + $205 = ((($201)) + 24|0); + HEAP32[$205>>2] = $$3435; + break; + } + } + } while(0); + $206 = ((($200)) + 4|0); + $207 = HEAP32[$206>>2]|0; + $208 = ($207|0)==(0|0); + if (!($208)) { + $209 = HEAP32[(19360)>>2]|0; + $210 = ($207>>>0)<($209>>>0); + if ($210) { + _abort(); + // unreachable; + } else { + $211 = ((($$3435)) + 20|0); + HEAP32[$211>>2] = $207; + $212 = ((($207)) + 24|0); + HEAP32[$212>>2] = $$3435; + break; + } + } + } + } + } while(0); + $213 = $129 | 1; + $214 = ((($$1)) + 4|0); + HEAP32[$214>>2] = $213; + $215 = (($$1) + ($129)|0); + HEAP32[$215>>2] = $129; + $216 = HEAP32[(19364)>>2]|0; + $217 = ($$1|0)==($216|0); + if ($217) { + HEAP32[(19352)>>2] = $129; + return; + } else { + $$2 = $129; + } + } else { + $218 = $111 & -2; + HEAP32[$110>>2] = $218; + $219 = $$1418 | 1; + $220 = ((($$1)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$1) + ($$1418)|0); + HEAP32[$221>>2] = $$1418; + $$2 = $$1418; + } + $222 = $$2 >>> 3; + $223 = ($$2>>>0)<(256); + if ($223) { + $224 = $222 << 1; + $225 = (19384 + ($224<<2)|0); + $226 = HEAP32[4836]|0; + $227 = 1 << $222; + $228 = $226 & $227; + $229 = ($228|0)==(0); + if ($229) { + $230 = $226 | $227; + HEAP32[4836] = $230; + $$pre = ((($225)) + 8|0); + $$0438 = $225;$$pre$phiZ2D = $$pre; + } else { + $231 = ((($225)) + 8|0); + $232 = HEAP32[$231>>2]|0; + $233 = HEAP32[(19360)>>2]|0; + $234 = ($232>>>0)<($233>>>0); + if ($234) { + _abort(); + // unreachable; + } else { + $$0438 = $232;$$pre$phiZ2D = $231; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $235 = ((($$0438)) + 12|0); + HEAP32[$235>>2] = $$1; + $236 = ((($$1)) + 8|0); + HEAP32[$236>>2] = $$0438; + $237 = ((($$1)) + 12|0); + HEAP32[$237>>2] = $225; + return; + } + $238 = $$2 >>> 8; + $239 = ($238|0)==(0); + if ($239) { + $$0431 = 0; + } else { + $240 = ($$2>>>0)>(16777215); + if ($240) { + $$0431 = 31; + } else { + $241 = (($238) + 1048320)|0; + $242 = $241 >>> 16; + $243 = $242 & 8; + $244 = $238 << $243; + $245 = (($244) + 520192)|0; + $246 = $245 >>> 16; + $247 = $246 & 4; + $248 = $247 | $243; + $249 = $244 << $247; + $250 = (($249) + 245760)|0; + $251 = $250 >>> 16; + $252 = $251 & 2; + $253 = $248 | $252; + $254 = (14 - ($253))|0; + $255 = $249 << $252; + $256 = $255 >>> 15; + $257 = (($254) + ($256))|0; + $258 = $257 << 1; + $259 = (($257) + 7)|0; + $260 = $$2 >>> $259; + $261 = $260 & 1; + $262 = $261 | $258; + $$0431 = $262; + } + } + $263 = (19648 + ($$0431<<2)|0); + $264 = ((($$1)) + 28|0); + HEAP32[$264>>2] = $$0431; + $265 = ((($$1)) + 16|0); + $266 = ((($$1)) + 20|0); + HEAP32[$266>>2] = 0; + HEAP32[$265>>2] = 0; + $267 = HEAP32[(19348)>>2]|0; + $268 = 1 << $$0431; + $269 = $267 & $268; + $270 = ($269|0)==(0); + if ($270) { + $271 = $267 | $268; + HEAP32[(19348)>>2] = $271; + HEAP32[$263>>2] = $$1; + $272 = ((($$1)) + 24|0); + HEAP32[$272>>2] = $263; + $273 = ((($$1)) + 12|0); + HEAP32[$273>>2] = $$1; + $274 = ((($$1)) + 8|0); + HEAP32[$274>>2] = $$1; + return; + } + $275 = HEAP32[$263>>2]|0; + $276 = ($$0431|0)==(31); + $277 = $$0431 >>> 1; + $278 = (25 - ($277))|0; + $279 = $276 ? 0 : $278; + $280 = $$2 << $279; + $$0419 = $280;$$0420 = $275; + while(1) { + $281 = ((($$0420)) + 4|0); + $282 = HEAP32[$281>>2]|0; + $283 = $282 & -8; + $284 = ($283|0)==($$2|0); + if ($284) { + label = 121; + break; + } + $285 = $$0419 >>> 31; + $286 = (((($$0420)) + 16|0) + ($285<<2)|0); + $287 = $$0419 << 1; + $288 = HEAP32[$286>>2]|0; + $289 = ($288|0)==(0|0); + if ($289) { + label = 118; + break; + } else { + $$0419 = $287;$$0420 = $288; + } + } + if ((label|0) == 118) { + $290 = HEAP32[(19360)>>2]|0; + $291 = ($286>>>0)<($290>>>0); + if ($291) { + _abort(); + // unreachable; + } + HEAP32[$286>>2] = $$1; + $292 = ((($$1)) + 24|0); + HEAP32[$292>>2] = $$0420; + $293 = ((($$1)) + 12|0); + HEAP32[$293>>2] = $$1; + $294 = ((($$1)) + 8|0); + HEAP32[$294>>2] = $$1; + return; + } + else if ((label|0) == 121) { + $295 = ((($$0420)) + 8|0); + $296 = HEAP32[$295>>2]|0; + $297 = HEAP32[(19360)>>2]|0; + $298 = ($296>>>0)>=($297>>>0); + $not$19 = ($$0420>>>0)>=($297>>>0); + $299 = $298 & $not$19; + if (!($299)) { + _abort(); + // unreachable; + } + $300 = ((($296)) + 12|0); + HEAP32[$300>>2] = $$1; + HEAP32[$295>>2] = $$1; + $301 = ((($$1)) + 8|0); + HEAP32[$301>>2] = $296; + $302 = ((($$1)) + 12|0); + HEAP32[$302>>2] = $$0420; + $303 = ((($$1)) + 24|0); + HEAP32[$303>>2] = 0; + return; + } +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_stbi__stdio_skip,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,_stbi__stdio_eof,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,_stbi__stdio_read,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _llvm_cttz_i32: _llvm_cttz_i32, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _memset = Module["_memset"] = asm["_memset"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_billboard.png b/examples/web/models/models_billboard.png new file mode 100644 index 0000000..dad1e55 Binary files /dev/null and b/examples/web/models/models_billboard.png differ diff --git a/examples/web/models/models_box_collisions.c b/examples/web/models/models_box_collisions.c new file mode 100644 index 0000000..97f0731 --- /dev/null +++ b/examples/web/models/models_box_collisions.c @@ -0,0 +1,152 @@ +/******************************************************************************************* +* +* raylib [models] example - Detect basic 3d collisions (box vs sphere vs box) (adapted for HTML5 platform) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int screenWidth = 800; +int screenHeight = 450; + + +// Define the camera to look into our 3d world +Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + +Vector3 playerPosition = { 0.0f, 1.0f, 2.0f }; +Vector3 playerSize = { 1.0f, 2.0f, 1.0f }; +Color playerColor; + +Vector3 enemyBoxPos = { -4.0f, 1.0f, 0.0f }; +Vector3 enemyBoxSize = { 2.0f, 2.0f, 2.0f }; + +Vector3 enemySpherePos = { 4.0f, 0.0f, 0.0f }; +float enemySphereSize = 1.5f; + +bool collision = false; + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions"); + + playerColor = GREEN; + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + + // Move player + if (IsKeyDown(KEY_RIGHT)) playerPosition.x += 0.2f; + else if (IsKeyDown(KEY_LEFT)) playerPosition.x -= 0.2f; + else if (IsKeyDown(KEY_DOWN)) playerPosition.z += 0.2f; + else if (IsKeyDown(KEY_UP)) playerPosition.z -= 0.2f; + + collision = false; + + // Check collisions player vs enemy-box + if (CheckCollisionBoxes( + (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, + playerPosition.y - playerSize.y/2, + playerPosition.z - playerSize.z/2 }, + (Vector3){ playerPosition.x + playerSize.x/2, + playerPosition.y + playerSize.y/2, + playerPosition.z + playerSize.z/2 }}, + (BoundingBox){(Vector3){ enemyBoxPos.x - enemyBoxSize.x/2, + enemyBoxPos.y - enemyBoxSize.y/2, + enemyBoxPos.z - enemyBoxSize.z/2 }, + (Vector3){ enemyBoxPos.x + enemyBoxSize.x/2, + enemyBoxPos.y + enemyBoxSize.y/2, + enemyBoxPos.z + enemyBoxSize.z/2 }})) collision = true; + + // Check collisions player vs enemy-sphere + if (CheckCollisionBoxSphere( + (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, + playerPosition.y - playerSize.y/2, + playerPosition.z - playerSize.z/2 }, + (Vector3){ playerPosition.x + playerSize.x/2, + playerPosition.y + playerSize.y/2, + playerPosition.z + playerSize.z/2 }}, + enemySpherePos, enemySphereSize)) collision = true; + + if (collision) playerColor = RED; + else playerColor = GREEN; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + // Draw enemy-box + DrawCube(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, GRAY); + DrawCubeWires(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, DARKGRAY); + + // Draw enemy-sphere + DrawSphere(enemySpherePos, enemySphereSize, GRAY); + DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, DARKGRAY); + + // Draw player + DrawCubeV(playerPosition, playerSize, playerColor); + + DrawGrid(10, 1.0f); // Draw a grid + + End3dMode(); + + DrawText("Move player with cursors to collide", 220, 40, 20, GRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + +} \ No newline at end of file diff --git a/examples/web/models/models_box_collisions.html b/examples/web/models/models_box_collisions.html new file mode 100644 index 0000000..6a1d8ae --- /dev/null +++ b/examples/web/models/models_box_collisions.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_box_collisions.js b/examples/web/models/models_box_collisions.js new file mode 100644 index 0000000..d3f1513 --- /dev/null +++ b/examples/web/models/models_box_collisions.js @@ -0,0 +1,25341 @@ +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + +var /* show errors on likely calls to FS when it was not included */ FS = { + error: function() { + abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); + }, + init: function() { FS.error() }, + createDataFile: function() { FS.error() }, + createPreloadedFile: function() { FS.error() }, + createLazyFile: function() { FS.error() }, + open: function() { FS.error() }, + mkdev: function() { FS.error() }, + registerDevice: function() { FS.error() }, + analyzePath: function() { FS.error() }, + loadFilesFromDB: function() { FS.error() }, + + ErrnoError: function ErrnoError() { FS.error() }, +}; +Module['FS_createDataFile'] = FS.createDataFile; +Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 19424; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,0,0,0,0,32,65,0,0,32,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,52,66,0,0,0,0,0,0,128,63,0,0,0,64,0,0,128,63,0,0,0,64,0,0,128,63,0,0,128,192,0,0,128,63,0,0,0,0,0,0,0,64,0,0,0,64,0,0,0,64,0,0,128,64,0,0,0,0,0,0,0,0,0,0,192,63,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,13,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,211,71,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,98,111,120,32,99,111,108,108,105,115,105,111,110,115,0,77,111,118,101,32,112,108,97,121,101,114,32,119,105,116,104,32,99,117,114,115,111,114,115,32,116,111,32,99,111,108,108,105,100,101,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,37,50,105,32,70,80,83,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + var SYSCALLS={varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + // hack to support printf in NO_FILESYSTEM + var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + var ret = 0; + if (!___syscall146.buffer) { + ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr + ___syscall146.printChar = function(stream, curr) { + var buffer = ___syscall146.buffers[stream]; + assert(buffer); + if (curr === 0 || curr === 10) { + (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } + }; + } + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + for (var j = 0; j < len; j++) { + ___syscall146.printChar(stream, HEAPU8[ptr+j]); + } + ret += len; + } + return ret; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + + Module["___udivdi3"] = ___udivdi3; + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _glfwGetKey(winid, key) { + return GLFW.getKey(winid, key); + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +JSEvents.staticInit();; +/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "___syscall146": ___syscall146, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _glGenTextures=env._glGenTextures; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var ___syscall146=env.___syscall146; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _emscripten_glHint=env._emscripten_glHint; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _glfwGetKey=env._glfwGetKey; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[2]|0; + $1 = HEAP32[3]|0; + _InitWindow($0,$1,3588); + HEAP8[17024] = 0; + HEAP8[(17025)>>0] = -28; + HEAP8[(17026)>>0] = 48; + HEAP8[(17027)>>0] = -1; + _emscripten_set_main_loop((1|0),0,1); + _CloseWindow(); + return 0; +} +function _UpdateDrawFrame() { + var $$ = 0, $$10 = 0, $$11 = 0, $$byval_copy11 = 0, $$sink = 0, $$sink9 = 0.0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0.0, $102 = 0, $103 = 0, $104 = 0, $105 = 0.0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0; + var $110 = 0, $111 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0.0; + var $47 = 0.0, $48 = 0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0.0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0; + var $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0.0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0, $99 = 0, $playerPosition$byval_copy = 0, $playerSize$byval_copy = 0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(176|0); + $$byval_copy11 = sp + 112|0; + $playerSize$byval_copy = sp + 88|0; + $playerPosition$byval_copy = sp + 72|0; + $0 = sp + 48|0; + $1 = sp + 24|0; + $2 = sp; + $3 = sp + 172|0; + $4 = sp + 168|0; + $5 = sp + 164|0; + $6 = sp + 160|0; + $7 = sp + 156|0; + $8 = sp + 152|0; + $9 = (_IsKeyDown(262)|0); + $10 = ($9|0)==(0); + if ($10) { + $11 = (_IsKeyDown(263)|0); + $12 = ($11|0)==(0); + if ($12) { + $13 = (_IsKeyDown(264)|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = (_IsKeyDown(265)|0); + $16 = ($15|0)==(0); + if (!($16)) { + $$sink = (64);$$sink9 = -0.20000000298023224; + label = 5; + } + } else { + $$sink = (64);$$sink9 = 0.20000000298023224; + label = 5; + } + } else { + $$sink = 56;$$sink9 = -0.20000000298023224; + label = 5; + } + } else { + $$sink = 56;$$sink9 = 0.20000000298023224; + label = 5; + } + if ((label|0) == 5) { + $17 = +HEAPF32[$$sink>>2]; + $18 = $$sink9 + $17; + HEAPF32[$$sink>>2] = $18; + } + HEAP32[3542] = 0; + $19 = +HEAPF32[14]; + $20 = +HEAPF32[17]; + $21 = $20 * 0.5; + $22 = $19 - $21; + HEAPF32[$0>>2] = $22; + $23 = ((($0)) + 4|0); + $24 = +HEAPF32[(60)>>2]; + $25 = +HEAPF32[(72)>>2]; + $26 = $25 * 0.5; + $27 = $24 - $26; + HEAPF32[$23>>2] = $27; + $28 = ((($0)) + 8|0); + $29 = +HEAPF32[(64)>>2]; + $30 = +HEAPF32[(76)>>2]; + $31 = $30 * 0.5; + $32 = $29 - $31; + HEAPF32[$28>>2] = $32; + $33 = ((($0)) + 12|0); + $34 = $19 + $21; + HEAPF32[$33>>2] = $34; + $35 = ((($0)) + 16|0); + $36 = $24 + $26; + HEAPF32[$35>>2] = $36; + $37 = ((($0)) + 20|0); + $38 = $29 + $31; + HEAPF32[$37>>2] = $38; + $39 = +HEAPF32[20]; + $40 = +HEAPF32[23]; + $41 = $40 * 0.5; + $42 = $39 - $41; + HEAPF32[$1>>2] = $42; + $43 = ((($1)) + 4|0); + $44 = +HEAPF32[(84)>>2]; + $45 = +HEAPF32[(96)>>2]; + $46 = $45 * 0.5; + $47 = $44 - $46; + HEAPF32[$43>>2] = $47; + $48 = ((($1)) + 8|0); + $49 = +HEAPF32[(88)>>2]; + $50 = +HEAPF32[(100)>>2]; + $51 = $50 * 0.5; + $52 = $49 - $51; + HEAPF32[$48>>2] = $52; + $53 = ((($1)) + 12|0); + $54 = $39 + $41; + HEAPF32[$53>>2] = $54; + $55 = ((($1)) + 16|0); + $56 = $44 + $46; + HEAPF32[$55>>2] = $56; + $57 = ((($1)) + 20|0); + $58 = $49 + $51; + HEAPF32[$57>>2] = $58; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$playerSize$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$playerSize$byval_copy+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$playerSize$byval_copy+20>>2]=HEAP32[$0+20>>2]|0; + ;HEAP32[$$byval_copy11>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy11+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy11+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy11+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy11+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$$byval_copy11+20>>2]=HEAP32[$1+20>>2]|0; + $59 = (_CheckCollisionBoxes($playerSize$byval_copy,$$byval_copy11)|0); + $60 = ($59|0)==(0); + if (!($60)) { + HEAP32[3542] = 1; + } + $61 = +HEAPF32[14]; + $62 = +HEAPF32[17]; + $63 = $62 * 0.5; + $64 = $61 - $63; + HEAPF32[$2>>2] = $64; + $65 = ((($2)) + 4|0); + $66 = +HEAPF32[(60)>>2]; + $67 = +HEAPF32[(72)>>2]; + $68 = $67 * 0.5; + $69 = $66 - $68; + HEAPF32[$65>>2] = $69; + $70 = ((($2)) + 8|0); + $71 = +HEAPF32[(64)>>2]; + $72 = +HEAPF32[(76)>>2]; + $73 = $72 * 0.5; + $74 = $71 - $73; + HEAPF32[$70>>2] = $74; + $75 = ((($2)) + 12|0); + $76 = $61 + $63; + HEAPF32[$75>>2] = $76; + $77 = ((($2)) + 16|0); + $78 = $66 + $68; + HEAPF32[$77>>2] = $78; + $79 = ((($2)) + 20|0); + $80 = $71 + $73; + HEAPF32[$79>>2] = $80; + $81 = +HEAPF32[29]; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$playerSize$byval_copy+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$playerSize$byval_copy+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[$playerSize$byval_copy+20>>2]=HEAP32[$2+20>>2]|0; + ;HEAP32[$$byval_copy11>>2]=HEAP32[104>>2]|0;HEAP32[$$byval_copy11+4>>2]=HEAP32[104+4>>2]|0;HEAP32[$$byval_copy11+8>>2]=HEAP32[104+8>>2]|0; + $82 = (_CheckCollisionBoxSphere($playerSize$byval_copy,$$byval_copy11,$81)|0); + $83 = ($82|0)==(0); + if (!($83)) { + HEAP32[3542] = 1; + } + $84 = HEAP32[3542]|0; + $85 = ($84|0)==(0); + $$ = $85 ? 0 : -26; + $$10 = $85 ? -28 : 41; + $$11 = $85 ? 48 : 55; + HEAP8[17024] = $$; + HEAP8[(17025)>>0] = $$10; + HEAP8[(17026)>>0] = $$11; + HEAP8[(17027)>>0] = -1; + _BeginDrawing(); + HEAP8[$3>>0] = -11; + $86 = ((($3)) + 1|0); + HEAP8[$86>>0] = -11; + $87 = ((($3)) + 2|0); + HEAP8[$87>>0] = -11; + $88 = ((($3)) + 3|0); + HEAP8[$88>>0] = -1; + ;HEAP8[$$byval_copy11>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy11); + dest=$$byval_copy11; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($$byval_copy11); + $89 = +HEAPF32[23]; + $90 = +HEAPF32[(96)>>2]; + $91 = +HEAPF32[(100)>>2]; + HEAP8[$4>>0] = -126; + $92 = ((($4)) + 1|0); + HEAP8[$92>>0] = -126; + $93 = ((($4)) + 2|0); + HEAP8[$93>>0] = -126; + $94 = ((($4)) + 3|0); + HEAP8[$94>>0] = -1; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[80>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[80+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[80+8>>2]|0; + ;HEAP8[$$byval_copy11>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[$4+3>>0]|0; + _DrawCube($playerSize$byval_copy,$89,$90,$91,$$byval_copy11); + $95 = +HEAPF32[23]; + $96 = +HEAPF32[(96)>>2]; + $97 = +HEAPF32[(100)>>2]; + HEAP8[$5>>0] = 80; + $98 = ((($5)) + 1|0); + HEAP8[$98>>0] = 80; + $99 = ((($5)) + 2|0); + HEAP8[$99>>0] = 80; + $100 = ((($5)) + 3|0); + HEAP8[$100>>0] = -1; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[80>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[80+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[80+8>>2]|0; + ;HEAP8[$$byval_copy11>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[$5+3>>0]|0; + _DrawCubeWires($playerSize$byval_copy,$95,$96,$97,$$byval_copy11); + $101 = +HEAPF32[29]; + HEAP8[$6>>0] = -126; + $102 = ((($6)) + 1|0); + HEAP8[$102>>0] = -126; + $103 = ((($6)) + 2|0); + HEAP8[$103>>0] = -126; + $104 = ((($6)) + 3|0); + HEAP8[$104>>0] = -1; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[104>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[104+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[104+8>>2]|0; + ;HEAP8[$$byval_copy11>>0]=HEAP8[$6>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[$6+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[$6+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[$6+3>>0]|0; + _DrawSphere($playerSize$byval_copy,$101,$$byval_copy11); + $105 = +HEAPF32[29]; + HEAP8[$7>>0] = 80; + $106 = ((($7)) + 1|0); + HEAP8[$106>>0] = 80; + $107 = ((($7)) + 2|0); + HEAP8[$107>>0] = 80; + $108 = ((($7)) + 3|0); + HEAP8[$108>>0] = -1; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[104>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[104+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[104+8>>2]|0; + ;HEAP8[$$byval_copy11>>0]=HEAP8[$7>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[$7+3>>0]|0; + _DrawSphereWires($playerSize$byval_copy,$105,16,16,$$byval_copy11); + ;HEAP32[$playerPosition$byval_copy>>2]=HEAP32[56>>2]|0;HEAP32[$playerPosition$byval_copy+4>>2]=HEAP32[56+4>>2]|0;HEAP32[$playerPosition$byval_copy+8>>2]=HEAP32[56+8>>2]|0; + ;HEAP32[$playerSize$byval_copy>>2]=HEAP32[68>>2]|0;HEAP32[$playerSize$byval_copy+4>>2]=HEAP32[68+4>>2]|0;HEAP32[$playerSize$byval_copy+8>>2]=HEAP32[68+8>>2]|0; + ;HEAP8[$$byval_copy11>>0]=HEAP8[17024>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[17024+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[17024+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[17024+3>>0]|0; + _DrawCubeV($playerPosition$byval_copy,$playerSize$byval_copy,$$byval_copy11); + _DrawGrid(10,1.0); + _End3dMode(); + HEAP8[$8>>0] = -126; + $109 = ((($8)) + 1|0); + HEAP8[$109>>0] = -126; + $110 = ((($8)) + 2|0); + HEAP8[$110>>0] = -126; + $111 = ((($8)) + 3|0); + HEAP8[$111>>0] = -1; + ;HEAP8[$$byval_copy11>>0]=HEAP8[$8>>0]|0;HEAP8[$$byval_copy11+1>>0]=HEAP8[$8+1>>0]|0;HEAP8[$$byval_copy11+2>>0]=HEAP8[$8+2>>0]|0;HEAP8[$$byval_copy11+3>>0]=HEAP8[$8+3>>0]|0; + _DrawText(3629,220,40,20,$$byval_copy11); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[3544] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 13896; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 13936; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[3484]; + $111 = +HEAPF32[3474]; + $112 = $110 - $111; + HEAPF32[3486] = $112; + $113 = +HEAPF32[(13940)>>2]; + $114 = +HEAPF32[(13900)>>2]; + $115 = $113 - $114; + HEAPF32[(13948)>>2] = $115; + HEAP32[3543] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13952+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[3549] = $116; + $117 = 13928; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 13896; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 13952; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 13936; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 13928; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 13952; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[3488]; + $160 = +HEAPF32[3482]; + $161 = $159 - $160; + HEAPF32[3486] = $161; + $162 = +HEAPF32[(13956)>>2]; + $163 = +HEAPF32[(13932)>>2]; + $164 = $162 - $163; + HEAPF32[(13948)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13896>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13896+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13928>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13928+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13936>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13936+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13952+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13952+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[3549]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[3543] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13952>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13952+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[3550] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[3549] = 0.0; + HEAPF32[3550] = 0.0; + HEAPF32[3486] = 0.0; + HEAPF32[(13948)>>2] = 0.0; + HEAP32[3544] = 0; + HEAP32[3543] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[3545]|0; + $7 = (($6) + 1)|0; + HEAP32[3545] = $7; + $8 = HEAP32[3543]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13896>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13896+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[3543] = 2; + HEAP32[3545] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[3545] = 1; + HEAP32[3543] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 13896; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 13904; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 13912; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[30] = $34; + HEAPF32[3480] = 0.0; + HEAPF32[(13924)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[3543]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 13912; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13896>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13896+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13912>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13912+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[3546] = $49; + HEAP32[3547] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[30]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13896>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13896+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13912>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13912+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[3548] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[3546] = 0.0; + HEAPF32[3548] = 0.0; + $$sink10 = 0; + } + HEAP32[3543] = $$sink10; + HEAPF32[3476] = 0.0; + HEAPF32[(13908)>>2] = 0.0; + HEAP32[3544] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[3547]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[3547] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 13928; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[3543]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13896>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13896+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13928>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13928+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[3543] = 8; + } + } + $82 = +HEAPF32[3482]; + $83 = +HEAPF32[3476]; + $84 = $82 - $83; + HEAPF32[3480] = $84; + $85 = +HEAPF32[(13932)>>2]; + $86 = +HEAPF32[(13908)>>2]; + $87 = $85 - $86; + HEAPF32[(13924)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3543]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[3544]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[3543] = 4; + } + $4 = HEAP32[3543]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[3543] = 0; + return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 13960; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _IsKeyDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetKeyStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3553]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3552]|0; + return ($0|0); +} +function _GetKeyStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[3551]|0; + $2 = (_glfwGetKey(($1|0),($0|0))|0); + return ($2|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,3665,$vararg_buffer); + HEAP32[3555] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(4|0))|0); + (_emscripten_set_keypress_callback((3694|0),(0|0),1,(5|0))|0); + (_emscripten_set_click_callback((3694|0),(0|0),1,(6|0))|0); + (_emscripten_set_touchstart_callback((3694|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchend_callback((3694|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchmove_callback((3694|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchcancel_callback((3694|0),(0|0),1,(7|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(8|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(8|0))|0); + $3 = HEAP32[3553]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[3490] = $5; + $6 = HEAP32[3552]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(13964)>>2] = $8; + $9 = HEAP32[3556]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[14000>>0]=HEAP8[8223>>0]|0;HEAP8[14000+1>>0]=HEAP8[8223+1>>0]|0;HEAP8[14000+2>>0]=HEAP8[8223+2>>0]|0;HEAP8[14000+3>>0]=HEAP8[8223+3>>0]|0;HEAP8[14000+4>>0]=HEAP8[8223+4>>0]|0;HEAP8[14000+5>>0]=HEAP8[8223+5>>0]|0;HEAP8[14000+6>>0]=HEAP8[8223+6>>0]|0; + break; + } + case 1: { + $3 = 14000; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=14000; src=8230; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 14000; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(14000,$1)|0); + $strlen = (_strlen(14000)|0); + $endptr = (14000 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(14000,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[3553] = $0; + HEAP32[3552] = $1; + _MatrixIdentity($2); + dest=14300; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((1|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,4365,$vararg_buffer); + } + $6 = HEAP32[3553]|0; + HEAP32[3591] = $6; + $7 = HEAP32[3552]|0; + HEAP32[3592] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[17028]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[17028]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[17028]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,4391,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[3593]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[3553]|0; + $48 = HEAP32[3552]|0; + $49 = HEAP32[3555]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[3551] = $50; + $51 = HEAP32[3553]|0; + HEAP32[3594] = $51; + $52 = HEAP32[3552]|0; + HEAP32[3595] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[3553]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[3552]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[3591] = $31; + HEAP32[3592] = $34; + } + } while(0); + $38 = HEAP32[3591]|0; + $39 = HEAP32[3592]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,4416,$vararg_buffer3); + $40 = HEAP32[3591]|0; + $41 = HEAP32[3592]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[3591]|0; + $43 = HEAP32[3592]|0; + $44 = HEAP32[3555]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[3551] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,4454,$vararg_buffer6); + } else { + _TraceLog(0,4487,$vararg_buffer8); + $55 = HEAP32[3594]|0; + $56 = HEAP32[3595]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,4527,$vararg_buffer10); + $57 = HEAP32[3553]|0; + $58 = HEAP32[3552]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,4548,$vararg_buffer14); + $59 = HEAP32[3596]|0; + $60 = HEAP32[3597]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,4569,$vararg_buffer18); + } + $61 = HEAP32[3551]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[3551]|0; + (_glfwSetCursorEnterCallback(($62|0),(2|0))|0); + $63 = HEAP32[3551]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[3551]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[3551]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[3551]|0; + (_glfwSetCharCallback(($66|0),(3|0))|0); + $67 = HEAP32[3551]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[3551]|0; + (_glfwSetWindowIconifyCallback(($68|0),(4|0))|0); + $69 = HEAP32[3551]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[17028]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[3553]|0; + $74 = HEAP32[3552]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[3594]|0; + $76 = HEAP32[3596]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[3595]|0; + $80 = HEAP32[3597]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,4594,$vararg_buffer22); + $73 = HEAP32[3553]|0; + $74 = HEAP32[3552]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[3594]|0; + $76 = HEAP32[3596]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[3595]|0; + $80 = HEAP32[3597]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(14268)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (124 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[14244>>2]=HEAP32[$1>>2]|0;HEAP32[14244+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[14244+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[14244+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[14244+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(14268)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(14272)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(14264)>>2] = $23; + $24 = HEAP32[3561]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,3889,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(14248)>>2]|0; + $10 = HEAP32[(14268)>>2]|0; + $11 = HEAP32[(14272)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2172 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(14264)>>2] = $23; + $24 = HEAP32[3561]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,3889,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[1749] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,3822,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,3753,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,3746)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 13976; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (13984); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (14228 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[1746] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,3702,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[3556] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,4265,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[3569]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,3934,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[3570]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,3978,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[3571]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,4023,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[3572]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,4068,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[3573]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,4113,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[3569]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[3569]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[3569]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[3569]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[3570]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[3571]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[3571]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[3572]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[3572]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[3573]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[3573]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,4158,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[3574]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,4236,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,4187,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,4319,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,8185,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[3553]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[3552]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[3594] = $3; + HEAP32[3595] = $5; + HEAP32[3596] = 0; + HEAP32[3597] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,8119,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[3553]|0; + $36 = (+($35|0)); + $37 = HEAP32[3552]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[3594] = $45; + HEAP32[3595] = $37; + $46 = (($45) - ($35))|0; + HEAP32[3596] = $46; + $$sink1 = 0; + } else { + HEAP32[3594] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[3595] = $42; + HEAP32[3596] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[3597] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[3552]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,7976,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[3553]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[3552]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[3594] = $23; + HEAP32[3595] = $1; + $24 = (($0) - ($23))|0; + HEAP32[3596] = $24; + $$sink = 0; + } else { + HEAP32[3594] = $0; + $17 = HEAP32[3552]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[3595] = $20; + HEAP32[3596] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[3597] = $$sink; + $25 = HEAP32[3594]|0; + $26 = (+($25|0)); + $27 = HEAP32[3553]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=14300; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[3594] = $0; + HEAP32[3595] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,8054,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[3553] = $1; + HEAP32[3552] = $2; + HEAP32[3594] = $1; + HEAP32[3595] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[768]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (17035 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[767] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (17029 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 13976; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[767] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[3967] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[3966] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,4617,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,4635,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,4653,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,4671,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,4689)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,4691,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,4726)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[3632] = 1; + $27 = (_eglGetProcAddress((4753|0))|0); + HEAP32[3633] = $27; + $28 = (_eglGetProcAddress((4774|0))|0); + HEAP32[3634] = $28; + $29 = (_eglGetProcAddress((4795|0))|0); + HEAP32[3635] = $29; + } + $30 = (_strcmp($24,4819)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[3574] = 1; + } + $32 = (_strcmp($24,4839)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,4871)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,4904)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[3569] = 1; + } + $39 = (_strcmp($24,4944)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,4980)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[3570] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,5013)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[3571] = 1; + } + $47 = (_strcmp($44,5038)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[3572] = 1; + } + $49 = (_strcmp($44,5071)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[3573] = 1; + } + $51 = (_strcmp($44,5107)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[3636] = 1; + _glGetFloatv(34047,(14548|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,5141)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[3638] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[3632]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,5244,$vararg_buffer15); + } else { + _TraceLog(0,5169,$vararg_buffer13); + } + $57 = HEAP32[3574]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,5380,$vararg_buffer19); + } else { + _TraceLog(0,5305,$vararg_buffer17); + } + $59 = HEAP32[3569]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,5472,$vararg_buffer21); + } + $61 = HEAP32[3570]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,5518,$vararg_buffer23); + } + $63 = HEAP32[3571]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,5565,$vararg_buffer25); + } + $65 = HEAP32[3572]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,5616,$vararg_buffer27); + } + $67 = HEAP32[3573]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,5663,$vararg_buffer29); + } + $69 = HEAP32[3636]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[3637]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,5710,$vararg_buffer31); + } + $73 = HEAP32[3638]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,5776,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[3639] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,5880,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,5829,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=14560; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=14616; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[3668] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[3668]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[3669] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[3670] = 1; + $85 = HEAP32[3639]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[3671] = 4; + _MatrixIdentity($4); + dest=14688; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14752); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14816); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14880); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14944); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15008); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15072); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15136); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15200); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15264); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15328); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15392); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15456); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15520); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15584); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15648); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=14396; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=14460; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[3598] = 14460; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[3928] = $0; + HEAP32[3929] = $1; + _TraceLog(0,5919,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3596]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[3597]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[3594]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[3595]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 14396; + label = 3; + break; + } + case 5888: { + $modelview$sink = 14460; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[3598] = $modelview$sink; + } + HEAP32[3631] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[3598]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[3598]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(6495|0),489)|0; + _memcpy(($3|0),(6984|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,7473,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,7425,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(15732)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(15740)>>2] = $1; + HEAP32[(15736)>>2] = 0; + HEAP32[(15744)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(15740)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[3930] = 0; + HEAP32[(15728)>>2] = 0; + HEAP32[(15724)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(15780)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(15788)>>2] = $6; + HEAP32[(15784)>>2] = 0; + HEAP32[(15792)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(15788)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[3942] = 0; + HEAP32[(15776)>>2] = 0; + HEAP32[(15772)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(15828)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(15832)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(15836)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(15840)>>2] = $13; + $14 = HEAP32[(15828)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(15832)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(15836)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(15840)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[3954] = 0; + HEAP32[(15820)>>2] = 0; + HEAP32[(15824)>>2] = 0; + _TraceLog(0,5966,$vararg_buffer); + $20 = HEAP32[3632]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[3633]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(15748)); + $44 = HEAP32[3634]|0; + $45 = HEAP32[(15748)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((15752)|0)); + $46 = HEAP32[(15752)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(15732)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(14620)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(14620)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((15756)|0)); + $50 = HEAP32[(15756)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(15740)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(14640)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(14640)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[3632]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(15752)>>2]|0; + $58 = HEAP32[(15756)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,6104,$vararg_buffer3); + } else { + $56 = HEAP32[(15748)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,6039,$vararg_buffer1); + } + $59 = HEAP32[3632]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[3633]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(15796)); + $62 = HEAP32[3634]|0; + $63 = HEAP32[(15796)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((15800)|0)); + $64 = HEAP32[(15800)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(15780)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(14620)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(14620)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((15804)|0)); + $68 = HEAP32[(15804)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(15788)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(14640)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(14640)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[3632]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(15800)>>2]|0; + $76 = HEAP32[(15804)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,6250,$vararg_buffer10); + } else { + $74 = HEAP32[(15796)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,6181,$vararg_buffer7); + } + $77 = HEAP32[3632]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[3633]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(15844)); + $80 = HEAP32[3634]|0; + $81 = HEAP32[(15844)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((15848)|0)); + $82 = HEAP32[(15848)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(15828)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(14620)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(14620)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((15852)|0)); + $86 = HEAP32[(15852)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(15832)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(14624)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(14624)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((15856)|0)); + $90 = HEAP32[(15856)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(15836)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(14640)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(14640)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((15860)|0)); + $94 = HEAP32[(15860)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(15840)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[3632]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(15848)>>2]|0; + $100 = HEAP32[(15852)>>2]|0; + $101 = HEAP32[(15856)>>2]|0; + $102 = HEAP32[(15860)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,6396,$vararg_buffer17); + } else { + $98 = HEAP32[(15844)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,6331,$vararg_buffer14); + } + $103 = HEAP32[3632]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[3634]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,7729,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,7677,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,7726,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,7830,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,7779,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,7726,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(7521|0)); + _glBindAttribLocation(($20|0),1,(7536|0)); + _glBindAttribLocation(($20|0),2,(7567|0)); + _glBindAttribLocation(($20|0),3,(7594|0)); + _glBindAttribLocation(($20|0),4,(7580|0)); + _glBindAttribLocation(($20|0),5,(7551|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,7882,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,7726,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,7928,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(7521|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(7536|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(7551|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(7567|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(7580|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(7594|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(7606|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(7616|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(7627|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(7638|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(7650|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(7659|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(7668|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (17029 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (17032 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (17029 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (17032 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[3551]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,8240,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[14244>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[14244+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[14244+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[14244+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[14244+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(14272)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(14556|0)); + $0 = HEAP32[3639]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,8267,$vararg_buffer); + $1 = HEAP32[3669]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[3640]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3632]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[3634]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((15752)|0)); + _glDeleteBuffers(1,((15756)|0)); + _glDeleteBuffers(1,((15800)|0)); + _glDeleteBuffers(1,((15804)|0)); + _glDeleteBuffers(1,((15848)|0)); + _glDeleteBuffers(1,((15852)|0)); + _glDeleteBuffers(1,((15856)|0)); + _glDeleteBuffers(1,((15860)|0)); + $3 = HEAP32[3632]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[3635]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(15748)); + $6 = HEAP32[3635]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(15796)); + $7 = HEAP32[3635]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(15844)); + } + $8 = HEAP32[(15732)>>2]|0; + _free($8); + $9 = HEAP32[(15740)>>2]|0; + _free($9); + $10 = HEAP32[(15780)>>2]|0; + _free($10); + $11 = HEAP32[(15788)>>2]|0; + _free($11); + $12 = HEAP32[(15828)>>2]|0; + _free($12); + $13 = HEAP32[(15832)>>2]|0; + _free($13); + $14 = HEAP32[(15836)>>2]|0; + _free($14); + $15 = HEAP32[(15840)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,8332,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[1766] = $0; + $1 = +HEAPF64[1749]; + $2 = $0 - $1; + HEAPF64[1767] = $2; + HEAPF64[1749] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=14300; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(15872); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[3968] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(15876)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(15880)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(15884)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(15888)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(15892)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(15896)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(15900)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(15904)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(15908)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(15912)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(15916)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(15920)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(15924)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(15928)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(15932)>>2] = $31; + return (15872|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[3598]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[1766] = $0; + $1 = +HEAPF64[1749]; + $2 = $0 - $1; + HEAPF64[1768] = $2; + HEAPF64[1749] = $0; + $3 = +HEAPF64[1767]; + $4 = $2 + $3; + HEAPF64[1769] = $4; + $5 = +HEAPF64[1746]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[1766] = $10; + $11 = +HEAPF64[1749]; + $12 = $10 - $11; + HEAPF64[1749] = $10; + $13 = +HEAPF64[1769]; + $14 = $12 + $13; + HEAPF64[1769] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3551]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[767] = -1; + HEAP32[769] = -1; + HEAP32[3984] = 0; + $3 = HEAP32[3551]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[3490] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(13964)>>2] = $7; + _memcpy((17547|0),(17035|0),512)|0; + ;HEAP8[17032>>0]=HEAP8[17029>>0]|0;HEAP8[17032+1>>0]=HEAP8[17029+1>>0]|0;HEAP8[17032+2>>0]=HEAP8[17029+2>>0]|0; + $8 = HEAP32[3967]|0; + HEAP32[3554] = $8; + HEAP32[3967] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (18059 + ($$05160<<5)|0); + $scevgep67 = (18187 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((18187 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[769] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((15940 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[3984] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3930]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[3632]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[3634]|0; + $5 = HEAP32[(15748)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(15752)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[3930]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(15732)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(15756)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(15728)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(15740)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[3942]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[3632]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[3634]|0; + $19 = HEAP32[(15796)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(15800)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[3942]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(15780)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(15804)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(15776)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(15788)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[3954]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[3632]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[3634]|0; + $33 = HEAP32[(15844)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(15848)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[3954]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(15828)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(15852)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[3954]|0; + $40 = $39 << 3; + $41 = HEAP32[(15832)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(15856)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[3954]|0; + $44 = $43 << 2; + $45 = HEAP32[(15836)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[3632]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[3634]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=14396; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=14460; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[4017]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[3930]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[3942]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[3954]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[3654]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=14460; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=14396; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(14644)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(14648)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(14660)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[3930]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[3639]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[3632]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(15752)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(14620)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(14620)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(15756)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(14640)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(14640)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[3634]|0; + $25 = HEAP32[(15748)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[3930]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[3632]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[3942]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[3639]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[3632]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(15800)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(14620)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(14620)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(15804)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(14640)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(14640)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[3634]|0; + $41 = HEAP32[(15796)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[3942]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[3632]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[3954]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[3632]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(15848)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(14620)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(14620)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(15852)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(14624)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(14624)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(15856)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(14640)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(14640)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(15860)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[3634]|0; + $56 = HEAP32[(15844)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[3670]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[3669]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[3669]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[3670]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[3632]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[3632]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[3634]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[3670] = 1; + $5 = HEAP32[3639]|0; + $6 = HEAP32[3669]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[3930] = 0; + HEAP32[(15728)>>2] = 0; + HEAP32[3942] = 0; + HEAP32[(15776)>>2] = 0; + HEAP32[3954] = 0; + HEAP32[(15820)>>2] = 0; + HEAP32[(15824)>>2] = 0; + HEAPF32[770] = -1.0; + dest=14396; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=14460; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[3928]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[3929]|0; + _rlViewport($7,0,$8,$9); + $10 = (16300 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (16172 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=14460; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=14396; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[3553]|0; + $3 = (+($2|0)); + $4 = HEAP32[3552]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(15872); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[4107]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,8382,$vararg_buffer); + } + $2 = HEAP32[4107]|0; + $3 = (14688 + ($2<<6)|0); + $4 = HEAP32[3598]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[4107]|0; + $6 = (($5) + 1)|0; + HEAP32[4107] = $6; + $7 = HEAP32[3631]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[4108] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[3598]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4107]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[4107]|0; + $3 = (($2) + -1)|0; + $4 = (14688 + ($3<<6)|0); + $5 = HEAP32[3598]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[4107] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[1769]; + $1 = $0; + return (+$1); +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[3598]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[3598]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlScalef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixScale($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[3598]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[3671] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[4108]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4109]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[3668]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[3598]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[4109]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[4108] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[3668]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[4109]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[4108] = 0; + } + HEAP32[4109] = 0; + } + $21 = HEAP32[3671]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[3930]|0; + $23 = HEAP32[(15728)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(15740)>>2]|0; + $28 = HEAP32[(15728)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(15740)>>2]|0; + $35 = HEAP32[(15728)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(15740)>>2]|0; + $43 = HEAP32[(15728)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(15740)>>2]|0; + $51 = HEAP32[(15728)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(15728)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(15728)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[3942]|0; + $62 = HEAP32[(15776)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(15788)>>2]|0; + $67 = HEAP32[(15776)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(15788)>>2]|0; + $74 = HEAP32[(15776)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(15788)>>2]|0; + $82 = HEAP32[(15776)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(15788)>>2]|0; + $90 = HEAP32[(15776)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(15776)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(15776)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[3954]|0; + $101 = HEAP32[(15824)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(15836)>>2]|0; + $106 = HEAP32[(15824)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(15836)>>2]|0; + $113 = HEAP32[(15824)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(15836)>>2]|0; + $121 = HEAP32[(15824)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(15836)>>2]|0; + $129 = HEAP32[(15824)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(15824)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(15824)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[3954]|0; + $140 = HEAP32[(15820)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(15832)>>2]|0; + $$promoted = HEAP32[(15820)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(15820)>>2] = $147; + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[770]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[770] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[4108]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[3668]|0; + $6 = HEAP32[4109]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[4109] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[3671]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[3930]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(15732)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[3930] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,8420,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[3942]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(15780)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[3942] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,8445,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[3954]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(15828)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[3954] = $41; + $42 = HEAP32[3669]|0; + $43 = HEAP32[3670]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,8474,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[770]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[3671]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(15832)>>2]|0; + $5 = HEAP32[(15820)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(15820)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[3671]|0; + switch ($4|0) { + case 1: { + $$sink37 = (15728);$$sink38 = (15740); + break; + } + case 4: { + $$sink37 = (15776);$$sink38 = (15788); + break; + } + case 7: { + $$sink37 = (15824);$$sink38 = (15836); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlColor3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $0 * 255.0; + $4 = (~~(($3))&255); + $5 = $1 * 255.0; + $6 = (~~(($5))&255); + $7 = $2 * 255.0; + $8 = (~~(($7))&255); + _rlColor4ub($4,$6,$8,-1); + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[3669]|0; + $2 = HEAP32[3670]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[3670] = $10; + } + $11 = HEAP32[3670]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3954]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[14244>>2]|0;HEAP32[$0+4>>2]=HEAP32[14244+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[14244+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[14244+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[14244+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[14244+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[14244+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[14244+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(18315,$0,$1)|0); + STACKTOP = sp;return (18315|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[4110]|0; + $4 = HEAP32[771]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[4111] = $7; + HEAP32[771] = $7; + $$sink = 0; + } + HEAP32[4110] = $$sink; + $8 = HEAP32[4111]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(8499,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(18315,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _DrawCube($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlBegin(4); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = $1 * 0.5; + $18 = 0.0 - $17; + $19 = $2 * 0.5; + $20 = 0.0 - $19; + $21 = $3 * 0.5; + $22 = $21 + 0.0; + _rlVertex3f($18,$20,$22); + $23 = $17 + 0.0; + _rlVertex3f($23,$20,$22); + $24 = $19 + 0.0; + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$20,$22); + $25 = 0.0 - $21; + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($18,$20,$22); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$20,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$20,$25); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawCubeV($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy1 = sp + 12|0; + $$byval_copy = sp; + $3 = +HEAPF32[$1>>2]; + $4 = ((($1)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = ((($1)) + 8|0); + $7 = +HEAPF32[$6>>2]; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP8[$$byval_copy1>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy1+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy1+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy1+3>>0]=HEAP8[$2+3>>0]|0; + _DrawCube($$byval_copy,$3,$5,$7,$$byval_copy1); + STACKTOP = sp;return; +} +function _DrawCubeWires($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlBegin(1); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = $1 * 0.5; + $18 = 0.0 - $17; + $19 = $2 * 0.5; + $20 = 0.0 - $19; + $21 = $3 * 0.5; + $22 = $21 + 0.0; + _rlVertex3f($18,$20,$22); + $23 = $17 + 0.0; + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$22); + $24 = $19 + 0.0; + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$20,$22); + $25 = 0.0 - $21; + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$20,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$25); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawSphere($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy1 = sp + 12|0; + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP8[$$byval_copy1>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy1+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy1+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy1+3>>0]=HEAP8[$2+3>>0]|0; + _DrawSphereEx($$byval_copy,$1,16,16,$$byval_copy1); + STACKTOP = sp;return; +} +function _DrawSphereEx($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$07173 = 0, $$072 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $exitcond = 0, $exitcond76 = 0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlScalef($1,$1,$1); + _rlBegin(4); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = ($2|0)>(-2); + if (!($17)) { + _rlEnd(); + _rlPopMatrix(); + return; + } + $18 = ($3|0)>(0); + $19 = (($2) + 1)|0; + $20 = (($2) + 1)|0; + $$07173 = 0; + while(1) { + if ($18) { + $21 = (($$07173) + 1)|0; + $$072 = 0; + while(1) { + $23 = (180 / ($19|0))&-1; + $24 = Math_imul($23, $$07173)|0; + $25 = (($24) + 270)|0; + $26 = (+($25|0)); + $27 = $26 * 0.01745329238474369; + $28 = (+Math_cos((+$27))); + $29 = ($$072*360)|0; + $30 = (($29|0) / ($3|0))&-1; + $31 = (+($30|0)); + $32 = $31 * 0.01745329238474369; + $33 = (+Math_sin((+$32))); + $34 = $28 * $33; + $35 = (+Math_sin((+$27))); + $36 = (+Math_cos((+$32))); + $37 = $28 * $36; + _rlVertex3f($34,$35,$37); + $38 = Math_imul($23, $21)|0; + $39 = (($38) + 270)|0; + $40 = (+($39|0)); + $41 = $40 * 0.01745329238474369; + $42 = (+Math_cos((+$41))); + $43 = (($$072) + 1)|0; + $44 = ($43*360)|0; + $45 = (($44|0) / ($3|0))&-1; + $46 = (+($45|0)); + $47 = $46 * 0.01745329238474369; + $48 = (+Math_sin((+$47))); + $49 = $42 * $48; + $50 = (+Math_sin((+$41))); + $51 = (+Math_cos((+$47))); + $52 = $42 * $51; + _rlVertex3f($49,$50,$52); + $53 = $33 * $42; + $54 = $36 * $42; + _rlVertex3f($53,$50,$54); + _rlVertex3f($34,$35,$37); + $55 = $28 * $48; + $56 = $28 * $51; + _rlVertex3f($55,$35,$56); + _rlVertex3f($49,$50,$52); + $exitcond = ($43|0)==($3|0); + if ($exitcond) { + break; + } else { + $$072 = $43; + } + } + } + $22 = (($$07173) + 1)|0; + $exitcond76 = ($$07173|0)==($20|0); + if ($exitcond76) { + break; + } else { + $$07173 = $22; + } + } + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawSphereWires($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$07173 = 0, $$072 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $exitcond = 0, $exitcond76 = 0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlScalef($1,$1,$1); + _rlBegin(1); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = ($2|0)>(-2); + if (!($17)) { + _rlEnd(); + _rlPopMatrix(); + return; + } + $18 = ($3|0)>(0); + $19 = (($2) + 1)|0; + $20 = (($2) + 1)|0; + $$07173 = 0; + while(1) { + if ($18) { + $21 = (($$07173) + 1)|0; + $$072 = 0; + while(1) { + $23 = (180 / ($19|0))&-1; + $24 = Math_imul($23, $$07173)|0; + $25 = (($24) + 270)|0; + $26 = (+($25|0)); + $27 = $26 * 0.01745329238474369; + $28 = (+Math_cos((+$27))); + $29 = ($$072*360)|0; + $30 = (($29|0) / ($3|0))&-1; + $31 = (+($30|0)); + $32 = $31 * 0.01745329238474369; + $33 = (+Math_sin((+$32))); + $34 = $28 * $33; + $35 = (+Math_sin((+$27))); + $36 = (+Math_cos((+$32))); + $37 = $28 * $36; + _rlVertex3f($34,$35,$37); + $38 = Math_imul($23, $21)|0; + $39 = (($38) + 270)|0; + $40 = (+($39|0)); + $41 = $40 * 0.01745329238474369; + $42 = (+Math_cos((+$41))); + $43 = (($$072) + 1)|0; + $44 = ($43*360)|0; + $45 = (($44|0) / ($3|0))&-1; + $46 = (+($45|0)); + $47 = $46 * 0.01745329238474369; + $48 = (+Math_sin((+$47))); + $49 = $42 * $48; + $50 = (+Math_sin((+$41))); + $51 = (+Math_cos((+$47))); + $52 = $42 * $51; + _rlVertex3f($49,$50,$52); + _rlVertex3f($49,$50,$52); + $53 = $33 * $42; + $54 = $36 * $42; + _rlVertex3f($53,$50,$54); + _rlVertex3f($53,$50,$54); + _rlVertex3f($34,$35,$37); + $exitcond = ($43|0)==($3|0); + if ($exitcond) { + break; + } else { + $$072 = $43; + } + } + } + $22 = (($$07173) + 1)|0; + $exitcond76 = ($$07173|0)==($20|0); + if ($exitcond76) { + break; + } else { + $$07173 = $22; + } + } + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawGrid($0,$1) { + $0 = $0|0; + $1 = +$1; + var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0|0) / 2)&-1; + _rlBegin(1); + $3 = (0 - ($2))|0; + $4 = ($2|0)<($3|0); + if ($4) { + _rlEnd(); + return; + } + $5 = (+($3|0)); + $6 = $5 * $1; + $7 = (+($2|0)); + $8 = $7 * $1; + $$024 = $3; + while(1) { + $9 = ($$024|0)==(0); + if ($9) { + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + } else { + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + } + $10 = (+($$024|0)); + $11 = $10 * $1; + _rlVertex3f($11,0.0,$6); + _rlVertex3f($11,0.0,$8); + _rlVertex3f($6,0.0,$11); + _rlVertex3f($8,0.0,$11); + $12 = (($$024) + 1)|0; + $13 = ($$024|0)<($2|0); + if ($13) { + $$024 = $12; + } else { + break; + } + } + _rlEnd(); + return; +} +function _CheckCollisionBoxes($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 12|0); + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = !($3 >= $4); + if ($5) { + $$1 = 0; + return ($$1|0); + } + $6 = +HEAPF32[$0>>2]; + $7 = ((($1)) + 12|0); + $8 = +HEAPF32[$7>>2]; + $9 = !($6 <= $8); + if ($9) { + $$1 = 0; + return ($$1|0); + } + $10 = ((($0)) + 16|0); + $11 = +HEAPF32[$10>>2]; + $12 = ((($1)) + 4|0); + $13 = +HEAPF32[$12>>2]; + $14 = $11 < $13; + if ($14) { + label = 5; + } else { + $15 = ((($0)) + 4|0); + $16 = +HEAPF32[$15>>2]; + $17 = ((($1)) + 16|0); + $18 = +HEAPF32[$17>>2]; + $19 = $16 > $18; + if ($19) { + label = 5; + } else { + $$0 = 1; + } + } + if ((label|0) == 5) { + $$0 = 0; + } + $20 = ((($0)) + 20|0); + $21 = +HEAPF32[$20>>2]; + $22 = ((($1)) + 8|0); + $23 = +HEAPF32[$22>>2]; + $24 = $21 < $23; + if (!($24)) { + $25 = ((($0)) + 8|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $26 > $28; + if (!($29)) { + $$1 = $$0; + return ($$1|0); + } + } + $$1 = 0; + return ($$1|0); +} +function _CheckCollisionBoxSphere($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$0 = 0.0, $$012 = 0, $$1 = 0.0, $$2 = 0.0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0; + var $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0.0, $not$ = 0; + var $pow2 = 0.0, $pow213 = 0.0, $pow214 = 0.0, $pow215 = 0.0, $pow216 = 0.0, $pow217 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$0>>2]; + $5 = $3 < $4; + if ($5) { + $6 = $3 - $4; + $pow217 = $6 * $6; + $7 = $pow217 + 0.0; + $$0 = $7; + } else { + $8 = ((($0)) + 12|0); + $9 = +HEAPF32[$8>>2]; + $10 = $3 > $9; + $11 = $3 - $9; + if ($10) { + $pow216 = $11 * $11; + $12 = $pow216 + 0.0; + $$0 = $12; + } else { + $$0 = 0.0; + } + } + $13 = ((($1)) + 4|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($0)) + 4|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 < $16; + if ($17) { + $18 = $14 - $16; + $pow215 = $18 * $18; + $19 = $$0 + $pow215; + $$1 = $19; + } else { + $20 = ((($0)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $14 > $21; + $23 = $14 - $21; + if ($22) { + $pow214 = $23 * $23; + $24 = $$0 + $pow214; + $$1 = $24; + } else { + $$1 = $$0; + } + } + $25 = ((($1)) + 8|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($0)) + 8|0); + $28 = +HEAPF32[$27>>2]; + $29 = $26 < $28; + if ($29) { + $30 = $26 - $28; + $pow213 = $30 * $30; + $31 = $$1 + $pow213; + $$2 = $31; + $37 = $2 * $2; + $not$ = $$2 <= $37; + $$012 = $not$&1; + return ($$012|0); + } + $32 = ((($0)) + 20|0); + $33 = +HEAPF32[$32>>2]; + $34 = $26 > $33; + $35 = $26 - $33; + if (!($34)) { + $$2 = $$1; + $37 = $2 * $2; + $not$ = $$2 <= $37; + $$012 = $not$&1; + return ($$012|0); + } + $pow2 = $35 * $35; + $36 = $$1 + $pow2; + $$2 = $36; + $37 = $2 * $2; + $not$ = $$2 <= $37; + $$012 = $not$&1; + return ($$012|0); +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,8507)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,8511)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,8515)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,8519)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,8525)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,8563)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 8582; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,8595)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 8616; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,8631)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 8646; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,8661)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 8676; + } + } else { + HEAP32[$3>>2] = 8547; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,8691)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,8705)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 2; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,8717)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 6; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,8731)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 7; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,8743)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 8; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,8757)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 9; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,8771)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 10; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,8788)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,8811)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,8837)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,8850)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,8866)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,8879)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 11; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,8893)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,8913)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,8933)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,8950)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,8967)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 3; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,8979)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 12; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,8992)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 13; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,9008)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,9031)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,9044)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,9060)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 4; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,9071)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 14; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,9090)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 15; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,9112)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 16; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,9131)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,9160)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 5; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,9177)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,9192)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,9207)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,9228)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,9248)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,9268)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,9294)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,9313)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,9325)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,9337)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,9349)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,9361)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 17; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,9373)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,9385)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,9397)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,9409)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,9422)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,9435)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,9448)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,9461)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,9474)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,9487)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,9500)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,9513)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,9532)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,9551)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,9570)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 18; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,9583)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 19; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,9601)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 20; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,9619)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 21; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,9637)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 22; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,9655)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,9675)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,8616)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 6; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,9693)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,9708)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,9729)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,9744)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,9762)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,9778)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,9797)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,9811)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,9826)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 7; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,8547)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,9837)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,8646)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 23; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,8676)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 24; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,9853)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,9880)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,9894)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,8582)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,9914)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,9932)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 8; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,9944)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,9965)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 25; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,9983)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 26; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,10001)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 27; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,10022)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,10048)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,10071)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,10109)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 9; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,10125)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,10140)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,10163)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,10176)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 28; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,10190)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 29; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,10204)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,10224)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,10244)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,10260)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,10278)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,10294)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,10309)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,10331)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 30; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,10349)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 31; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,10370)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,10388)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,10401)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,10416)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,10430)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,10440)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,10450)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,10472)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,10498)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,10525)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,10538)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,10553)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,10568)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,10592)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,10603)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 32; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,10625)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,10647)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,10671)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,10680)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,10688)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,10701)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,10715)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,10727)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,10736)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,10746)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,10758)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,10769)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,10777)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,10789)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,10804)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,10816)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,10830)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 10; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,10855)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,10872)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,10888)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,10904)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 11; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,10916)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 33; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,10928)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 34; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,10952)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,10965)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,10979)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 35; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,11001)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 36; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,11008)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,11024)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,11041)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,11058)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,11074)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,11090)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,11107)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,11121)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,11133)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,11144)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,11157)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,11167)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,11184)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,11196)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,11218)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,11238)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,11251)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,11273)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,11293)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,11310)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,11327)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,11347)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 37; + break; + } + } else { + HEAP32[$1>>2] = 5; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (16448|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3088|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 9; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=3464; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((11463 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 11927;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 11927;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 11927 : (11929); + $$$ = $238 ? $$ : (11928); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 11927;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 11927;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 11937; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 11927;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (11927 + ($208)|0); + $$289 = $or$cond283 ? 11927 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 11927;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (11979 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 11944; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (11945) : (11950); + $$$ = $16 ? $$ : (11947); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (11979 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,11995,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,11995,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 11963 : 11967; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 11971 : 11975; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (11997 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 12085;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 12085; + } else { + $$01214 = 12085;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((16512|0)); + return (16520|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((16512|0)); + return; +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[865]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[865]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 14160; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[833]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[4131]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[4131] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[4131] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[4131] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[4131] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[4132]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (16568 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[4132] = $24; + } else { + $25 = HEAP32[(16544)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(16536)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (16568 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[4132] = $77; + $98 = $77; + } else { + $78 = HEAP32[(16544)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(16548)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (16568 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[4132] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(16544)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(16536)>>2] = $84; + HEAP32[(16548)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(16532)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (16832 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(16544)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (16832 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(16532)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(16544)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(16544)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(16544)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(16548)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (16568 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[4132] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(16544)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(16536)>>2] = $$0193$lcssa$i; + HEAP32[(16548)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(16532)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (16832 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (16832 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(16536)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(16544)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (16832 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(16532)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(16544)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(16544)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(16544)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (16568 + ($425<<2)|0); + $427 = HEAP32[4132]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[4132] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(16544)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (16832 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(16532)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(16544)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(16544)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(16536)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(16548)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(16548)>>2] = $511; + HEAP32[(16536)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(16536)>>2] = 0; + HEAP32[(16548)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(16540)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(16540)>>2] = $526; + $527 = HEAP32[(16552)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(16552)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[4250]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(17008)>>2] = 4096; + HEAP32[(17004)>>2] = 4096; + HEAP32[(17012)>>2] = -1; + HEAP32[(17016)>>2] = -1; + HEAP32[(17020)>>2] = 0; + HEAP32[(16972)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[4250] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(17008)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(16968)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(16960)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(16972)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(16552)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (16976); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(17004)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(16960)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(16968)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(17008)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(16972)>>2]|0; + $612 = $611 | 4; + HEAP32[(16972)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(16960)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(16960)>>2] = $627; + $628 = HEAP32[(16964)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(16964)>>2] = $627; + } + $630 = HEAP32[(16552)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(16544)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(16544)>>2] = $$749$i; + } + HEAP32[(16976)>>2] = $$749$i; + HEAP32[(16980)>>2] = $$723948$i; + HEAP32[(16988)>>2] = 0; + $635 = HEAP32[4250]|0; + HEAP32[(16564)>>2] = $635; + HEAP32[(16560)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (16568 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(16552)>>2] = $649; + HEAP32[(16540)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(17016)>>2]|0; + HEAP32[(16556)>>2] = $655; + } else { + $$024371$i = (16976); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(16540)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(16552)>>2] = $679; + HEAP32[(16540)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(17016)>>2]|0; + HEAP32[(16556)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(16544)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(16544)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (16976); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(16540)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(16540)>>2] = $727; + HEAP32[(16552)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(16548)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(16536)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(16536)>>2] = $733; + HEAP32[(16548)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (16568 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[4132]|0; + $760 = $759 & $758; + HEAP32[4132] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (16832 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(16532)>>2]|0; + $803 = $802 & $801; + HEAP32[(16532)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(16544)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(16544)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(16544)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (16568 + ($836<<2)|0); + $838 = HEAP32[4132]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[4132] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(16544)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (16832 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(16532)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(16532)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(16544)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(16544)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (16976); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(16552)>>2] = $946; + HEAP32[(16540)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(17016)>>2]|0; + HEAP32[(16556)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(16976)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(16976)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(16976)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(16976)+12>>2]|0; + HEAP32[(16976)>>2] = $$749$i; + HEAP32[(16980)>>2] = $$723948$i; + HEAP32[(16988)>>2] = 0; + HEAP32[(16984)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (16568 + ($968<<2)|0); + $970 = HEAP32[4132]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[4132] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(16544)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (16832 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(16532)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(16532)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(16544)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(16544)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(16540)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(16540)>>2] = $1050; + $1051 = HEAP32[(16552)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(16552)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(16544)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(16548)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(16536)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (16568 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[4132]|0; + $38 = $37 & $36; + HEAP32[4132] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (16832 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(16532)>>2]|0; + $81 = $80 & $79; + HEAP32[(16532)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(16544)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(16544)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(16544)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(16552)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(16548)>>2]|0; + if ($121) { + $123 = HEAP32[(16540)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(16540)>>2] = $124; + HEAP32[(16552)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(16548)>>2] = 0; + HEAP32[(16536)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(16536)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(16536)>>2] = $130; + HEAP32[(16548)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (16568 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(16544)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[4132]|0; + $154 = $153 & $152; + HEAP32[4132] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(16544)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(16544)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(16544)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (16832 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(16532)>>2]|0; + $200 = $199 & $198; + HEAP32[(16532)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(16544)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(16544)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(16544)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(16548)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(16536)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (16568 + ($234<<2)|0); + $236 = HEAP32[4132]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[4132] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(16544)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (16832 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(16532)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(16532)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(16544)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(16544)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(16560)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(16560)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (16984); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(16560)>>2] = -1; + return; +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,b8,b8,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _llvm_cttz_i32: _llvm_cttz_i32, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _memset = Module["_memset"] = asm["_memset"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_box_collisions.png b/examples/web/models/models_box_collisions.png new file mode 100644 index 0000000..d01fd9d Binary files /dev/null and b/examples/web/models/models_box_collisions.png differ diff --git a/examples/web/models/models_cubicmap.c b/examples/web/models/models_cubicmap.c new file mode 100644 index 0000000..4e0dddd --- /dev/null +++ b/examples/web/models/models_cubicmap.c @@ -0,0 +1,115 @@ +/******************************************************************************************* +* +* raylib [models] example - Cubicmap loading and drawing (adapted for HTML5 platform) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int screenWidth = 800; +int screenHeight = 450; + +// Define the camera to look into our 3d world +Camera camera = {{ 16.0f, 14.0f, 16.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + +Texture2D cubicmap; +Model map; + +Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [models] example - cubesmap loading and drawing"); + + Image image = LoadImage("resources/cubicmap.png"); // Load cubicmap image (RAM) + cubicmap = LoadTextureFromImage(image); // Convert image to texture to display (VRAM) + map = LoadCubicmap(image); // Load cubicmap model (generate model from image) + + // NOTE: By default each cube is mapped to one part of texture atlas + Texture2D texture = LoadTexture("resources/cubicmap_atlas.png"); // Load map texture + map.material.texDiffuse = texture; // Set map diffuse texture + + UnloadImage(image); // Unload cubesmap image from RAM, already uploaded to VRAM + + SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(cubicmap); // Unload cubicmap texture + UnloadTexture(texture); // Unload map texture + UnloadModel(map); // Unload map model + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update internal camera and our camera + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + DrawModel(map, mapPosition, 1.0f, WHITE); + + End3dMode(); + + DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4 - 20, 20 }, 0.0f, 4.0f, WHITE); + DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); + + DrawText("cubicmap image used to", 658, 90, 10, GRAY); + DrawText("generate map 3d model", 658, 104, 10, GRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- +} diff --git a/examples/web/models/models_cubicmap.data b/examples/web/models/models_cubicmap.data new file mode 100644 index 0000000..c7df666 Binary files /dev/null and b/examples/web/models/models_cubicmap.data differ diff --git a/examples/web/models/models_cubicmap.html b/examples/web/models/models_cubicmap.html new file mode 100644 index 0000000..77a0dc9 --- /dev/null +++ b/examples/web/models/models_cubicmap.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_cubicmap.js b/examples/web/models/models_cubicmap.js new file mode 100644 index 0000000..5e93d6a --- /dev/null +++ b/examples/web/models/models_cubicmap.js @@ -0,0 +1,42217 @@ + +var Module; + +if (typeof Module === 'undefined') Module = {}; + +if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + Module.finishedDataFileDownloads = 0; +} +Module.expectedDataFileDownloads++; +(function() { + var loadPackage = function(metadata) { + + var PACKAGE_PATH; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); + } else if (typeof location !== 'undefined') { + // worker + PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); + } else { + throw 'using preloaded data can only be done on a web page or in a web worker'; + } + var PACKAGE_NAME = 'models/models_cubicmap.data'; + var REMOTE_PACKAGE_BASE = 'models_cubicmap.data'; + if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) { + Module['locateFile'] = Module['locateFilePackage']; + Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'); + } + var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ? + Module['locateFile'](REMOTE_PACKAGE_BASE) : + ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE); + + var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; + var PACKAGE_UUID = metadata.package_uuid; + + function fetchRemotePackage(packageName, packageSize, callback, errback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function(event) { + var url = packageName; + var size = packageSize; + if (event.total) size = event.total; + if (event.loaded) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: size + }; + } else { + Module.dataFileDownloads[url].loaded = event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil(total * Module.expectedDataFileDownloads/num); + if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) Module['setStatus']('Downloading data...'); + } + }; + xhr.onerror = function(event) { + throw new Error("NetworkError for: " + packageName); + } + xhr.onload = function(event) { + if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + var packageData = xhr.response; + callback(packageData); + } else { + throw new Error(xhr.statusText + " : " + xhr.responseURL); + } + }; + xhr.send(null); + }; + + function handleError(error) { + console.error('package error:', error); + }; + + var fetchedCallback = null; + var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; + + if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, handleError); + + function runWithFS() { + + function assert(check, msg) { + if (!check) throw msg + new Error().stack; + } +Module['FS_createPath']('/', 'resources', true, true); + + function DataRequest(start, end, crunched, audio) { + this.start = start; + this.end = end; + this.crunched = crunched; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function(mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency']('fp ' + this.name); + }, + send: function() {}, + onload: function() { + var byteArray = this.byteArray.subarray(this.start, this.end); + + this.finish(byteArray); + + }, + finish: function(byteArray) { + var that = this; + + Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change + Module['removeRunDependency']('fp ' + that.name); + + this.requests[this.name] = null; + } + }; + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename); + } + + + function processPackageData(arrayBuffer) { + Module.finishedDataFileDownloads++; + assert(arrayBuffer, 'Loading data file failed.'); + assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData'); + var byteArray = new Uint8Array(arrayBuffer); + var curr; + + // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though + // (we may be allocating before malloc is ready, during startup). + if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting'); + var ptr = Module['getMemory'](byteArray.length); + Module['HEAPU8'].set(byteArray, ptr); + DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + DataRequest.prototype.requests[files[i].filename].onload(); + } + Module['removeRunDependency']('datafile_models/models_cubicmap.data'); + + }; + Module['addRunDependency']('datafile_models/models_cubicmap.data'); + + if (!Module.preloadResults) Module.preloadResults = {}; + + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it + } + + } + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 201, "filename": "/resources/cubicmap.png"}, {"audio": 0, "start": 201, "crunched": 0, "end": 37426, "filename": "/resources/cubicmap_atlas.png"}], "remote_package_size": 37426, "package_uuid": "68436111-ec50-4203-a7c7-1199499cedf4"}); + +})(); + +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 22992; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,128,65,0,0,96,65,0,0,128,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,52,66,0,0,128,193,0,0,0,0,0,0,0,193,255,255,255,255,205,204,236,63,2,0,0,0,86,1,0,0,85,1,0,0,87,0,0,0,83,0,0,0,68,0,0,0,65,0,0,0,69,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,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,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,0,0,0,0,0,0,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,15,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,207,85,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,99,117,98,101,115,109,97,112,32,108,111,97,100,105,110,103,32,97,110,100,32,100,114,97,119,105,110,103,0,114,101,115,111,117,114,99,101,115,47,99,117,98,105,99,109,97,112,46,112,110,103,0,114,101,115,111,117,114,99,101,115,47,99,117,98,105,99,109,97,112,95,97,116,108,97,115,46,112,110,103,0,99,117,98,105,99,109,97,112,32,105,109,97,103,101,32,117,115,101,100,32,116,111,0,103,101,110,101,114,97,116,101,32,109,97,112,32,51,100,32,109,111,100,101,108,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,91,86,65,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,118,101,114,116,101,120,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,65,79,32,73,68,32,37,105,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,77,101,115,104,32,99,111,117,108,100,32,110,111,116,32,98,101,32,117,112,108,111,97,100,101,100,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,115,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,109,111,100,101,108,77,97,116,114,105,120,0,118,105,101,119,68,105,114,0,103,108,111,115,115,105,110,101,115,115,0,117,115,101,78,111,114,109,97,108,0,117,115,101,83,112,101,99,117,108,97,114,0,114,105,46,98,105,116,115,95,112,101,114,95,99,104,97,110,110,101,108,32,61,61,32,49,54,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,105,109,97,103,101,46,104,0,115,116,98,105,95,95,108,111,97,100,95,97,110,100,95,112,111,115,116,112,114,111,99,101,115,115,95,56,98,105,116,0,111,117,116,111,102,109,101,109,0,117,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,98,97,100,32,114,101,113,95,99,111,109,112,0,114,101,113,95,99,111,109,112,32,62,61,32,49,32,38,38,32,114,101,113,95,99,111,109,112,32,60,61,32,52,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,49,54,0,48,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,0,109,117,108,116,105,112,108,101,32,73,72,68,82,0,98,97,100,32,73,72,68,82,32,108,101,110,0,116,111,111,32,108,97,114,103,101,0,49,47,50,47,52,47,56,47,49,54,45,98,105,116,32,111,110,108,121,0,98,97,100,32,99,116,121,112,101,0,98,97,100,32,99,111,109,112,32,109,101,116,104,111,100,0,98,97,100,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,98,97,100,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,48,45,112,105,120,101,108,32,105,109,97,103,101,0,102,105,114,115,116,32,110,111,116,32,73,72,68,82,0,105,110,118,97,108,105,100,32,80,76,84,69,0,116,82,78,83,32,97,102,116,101,114,32,73,68,65,84,0,116,82,78,83,32,98,101,102,111,114,101,32,80,76,84,69,0,98,97,100,32,116,82,78,83,32,108,101,110,0,116,82,78,83,32,119,105,116,104,32,97,108,112,104,97,0,0,255,85,0,17,0,0,0,1,110,111,32,80,76,84,69,0,111,117,116,111,102,100,97,116,97,0,110,111,32,73,68,65,84,0,88,88,88,88,32,80,78,71,32,99,104,117,110,107,32,110,111,116,32,107,110,111,119,110,0,115,45,62,105,109,103,95,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,100,101,95,105,112,104,111,110,101,0,111,117,116,95,110,32,61,61,32,50,32,124,124,32,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,49,54,0,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,32,124,124,32,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,43,49,0,115,116,98,105,95,95,99,114,101,97,116,101,95,112,110,103,95,105,109,97,103,101,95,114,97,119,0,110,111,116,32,101,110,111,117,103,104,32,112,105,120,101,108,115,0,105,109,103,95,119,105,100,116,104,95,98,121,116,101,115,32,60,61,32], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([120,0,0,1,0,5,6,105,109,103,95,110,43,49,32,61,61,32,111,117,116,95,110,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,0,105,109,103,95,110,32,61,61,32,51,0,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,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,98,97,100,32,104,117,102,102,109,97,110,32,99,111,100,101,0,98,97,100,32,100,105,115,116,0,111,117,116,112,117,116,32,98,117,102,102,101,114,32,108,105,109,105,116,0,122,45,62,115,105,122,101,91,98,93,32,61,61,32,115,0,115,116,98,105,95,95,122,104,117,102,102,109,97,110,95,100,101,99,111,100,101,95,115,108,111,119,112,97,116,104,0,98,105,116,115,32,60,61,32,49,54,0,115,116,98,105,95,95,98,105,116,95,114,101,118,101,114,115,101,0,122,45,62,99,111,100,101,95,98,117,102,102,101,114,32,60,32,40,49,85,32,60,60,32,122,45,62,110,117,109,95,98,105,116,115,41,0,115,116,98,105,95,95,102,105,108,108,95,98,105,116,115,0,98,97,100,32,99,111,100,101,108,101,110,103,116,104,115,0,99,32,61,61,32,49,56,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,104,117,102,102,109,97,110,95,99,111,100,101,115,0,98,97,100,32,115,105,122,101,115,0,97,45,62,110,117,109,95,98,105,116,115,32,61,61,32,48,0,115,116,98,105,95,95,112,97,114,115,101,95,117,110,99,111,109,112,114,101,115,115,101,100,95,98,108,111,99,107,0,122,108,105,98,32,99,111,114,114,117,112,116,0,114,101,97,100,32,112,97,115,116,32,98,117,102,102,101,114,0,98,97,100,32,122,108,105,98,32,104,101,97,100,101,114,0,110,111,32,112,114,101,115,101,116,32,100,105,99,116,0,98,97,100,32,99,111,109,112,114,101,115,115,105,111,110,0,98,97,100,32,112,110,103,32,115,105,103,0,46,114,114,101,115,0,91,37,115,93,32,82,101,115,111,117,114,99,101,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,105,109,97,103,101,32,100,97,116,97,0,46,112,110,103,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,37,115,93,32,73,109,97,103,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,91,37,115,93,32,73,109,97,103,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,73,109,97,103,101,32,102,111,114,109,97,116,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,0,114,98,0,91,37,115,93,32,114,82,69,83,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,91,37,115,93,32,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,115,111,117,114,99,101,32,100,97,116,97,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,113,117,101,115,116,101,100,32,114,101,115,111,117,114,99,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,102,111,117,110,100,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,119,104,105,108,101,32,100,101,99,111,109,112,114,101,115,115,105,110,103,32,100,97,116,97,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,32,110,111,116,32,109,97,116,99,104,44,32,100,97,116,97,32,109,97,121,32,98,101,32,99,111,114,114,117,112,116,101,100,0,32,45,45,32,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,32,45,45,32,82,101,116,117,114,110,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,114,111,109,32,37,117,32,98,121,116,101,115,32,116,111,32,37,117,32,98,121,116,101,115,0,5,5,4,0,16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,2,3,7,0,3,3,11,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,37,50,105,32,70,80,83,0,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,40,109,101,115,104,32,97,110,100,32,109,97,116,101,114,105,97,108,41,32,102,114,111,109,32,82,65,77,32,97,110,100,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; + + var ERRNO_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"}; + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + + var PATH={splitPath:function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function (parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + return parts; + },normalize:function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function (path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function (path) { + return PATH.splitPath(path)[3]; + },join:function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function (l, r) { + return PATH.normalize(l + '/' + r); + },resolve:function () { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function (from, to) { + from = PATH.resolve(from).substr(1); + to = PATH.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + stream.tty = tty; + stream.seekable = false; + },close:function (stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function (stream) { + stream.tty.ops.flush(stream.tty); + },read:function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + for (var i = 0; i < length; i++) { + try { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = new Buffer(BUFSIZE); + var bytesRead = 0; + + var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion + + var fd = process.stdin.fd; + if (isPosixPlatform) { + // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) + var usingDevice = false; + try { + fd = fs.openSync('/dev/stdin', 'r'); + usingDevice = true; + } catch (e) {} + } + + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().indexOf('EOF') != -1) bytesRead = 0; + else throw e; + } + + if (usingDevice) { fs.closeSync(fd); } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + + } else if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function (tty, val) { + if (val === null || val === 10) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function (tty, val) { + if (val === null || val === 10) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + var MEMFS={ops_table:null,mount:function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },getFileDataAsRegularArray:function (node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr; // Returns a copy of the original data. + } + return node.contents; // No-op, the file contents are already in a JS array. Return as-is. + },getFileDataAsTypedArray:function (node) { + if (!node.contents) return new Uint8Array; + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function (node, newCapacity) { + // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file + // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to + // increase the size. + if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { + node.contents = MEMFS.getFileDataAsRegularArray(node); + node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. + } + + if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + return; + } + // Not using a typed array to back the file storage. Use a standard JS array instead. + if (!node.contents && newCapacity > 0) node.contents = []; + while (node.contents.length < newCapacity) node.contents.push(0); + },resizeFileStorage:function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + return; + } + if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. + var oldContents = node.contents; + node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + return; + } + // Backing with a JS array. + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; + else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize; + },node_ops:{getattr:function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function (parent, name) { + throw FS.genericErrors[ERRNO_CODES.ENOENT]; + },mknod:function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function (parent, name) { + delete parent.contents[name]; + },rmdir:function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + delete parent.contents[name]; + },readdir:function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return node.link; + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. + else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position+length); + return length; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + },allocate:function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < stream.node.usedBytes) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); + } + buffer.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + var IDBFS={dbs:{},indexedDB:function () { + if (typeof indexedDB !== 'undefined') return indexedDB; + var ret = null; + if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + assert(ret, 'IDBFS used, but indexedDB not supported'); + return ret; + },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { + // reuse all of the core MEMFS functionality + return MEMFS.mount.apply(null, arguments); + },syncfs:function (mount, populate, callback) { + IDBFS.getLocalSet(mount, function(err, local) { + if (err) return callback(err); + + IDBFS.getRemoteSet(mount, function(err, remote) { + if (err) return callback(err); + + var src = populate ? remote : local; + var dst = populate ? local : remote; + + IDBFS.reconcile(src, dst, callback); + }); + }); + },getDB:function (name, callback) { + // check the cache first + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + if (!req) { + return callback("Unable to connect to IndexedDB"); + } + req.onupgradeneeded = function(e) { + var db = e.target.result; + var transaction = e.target.transaction; + + var fileStore; + + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + + if (!fileStore.indexNames.contains('timestamp')) { + fileStore.createIndex('timestamp', 'timestamp', { unique: false }); + } + }; + req.onsuccess = function() { + db = req.result; + + // add to the cache + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },getLocalSet:function (mount, callback) { + var entries = {}; + + function isRealDir(p) { + return p !== '.' && p !== '..'; + }; + function toAbsolute(root) { + return function(p) { + return PATH.join2(root, p); + } + }; + + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + + while (check.length) { + var path = check.pop(); + var stat; + + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + + entries[path] = { timestamp: stat.mtime }; + } + + return callback(null, { type: 'local', entries: entries }); + },getRemoteSet:function (mount, callback) { + var entries = {}; + + IDBFS.getDB(mount.mountpoint, function(err, db) { + if (err) return callback(err); + + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); + transaction.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index('timestamp'); + + index.openKeyCursor().onsuccess = function(event) { + var cursor = event.target.result; + + if (!cursor) { + return callback(null, { type: 'remote', db: db, entries: entries }); + } + + entries[cursor.primaryKey] = { timestamp: cursor.key }; + + cursor.continue(); + }; + }); + },loadLocalEntry:function (path, callback) { + var stat, node; + + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode }); + } else if (FS.isFile(stat.mode)) { + // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. + // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. + node.contents = MEMFS.getFileDataAsTypedArray(node); + return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); + } else { + return callback(new Error('node type not supported')); + } + },storeLocalEntry:function (path, entry, callback) { + try { + if (FS.isDir(entry.mode)) { + FS.mkdir(path, entry.mode); + } else if (FS.isFile(entry.mode)) { + FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); + } else { + return callback(new Error('node type not supported')); + } + + FS.chmod(path, entry.mode); + FS.utime(path, entry.timestamp, entry.timestamp); + } catch (e) { + return callback(e); + } + + callback(null); + },removeLocalEntry:function (path, callback) { + try { + var lookup = FS.lookupPath(path); + var stat = FS.stat(path); + + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + + callback(null); + },loadRemoteEntry:function (store, path, callback) { + var req = store.get(path); + req.onsuccess = function(event) { callback(null, event.target.result); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },storeRemoteEntry:function (store, path, entry, callback) { + var req = store.put(entry, path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },removeRemoteEntry:function (store, path, callback) { + var req = store.delete(path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },reconcile:function (src, dst, callback) { + var total = 0; + + var create = []; + Object.keys(src.entries).forEach(function (key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e.timestamp > e2.timestamp) { + create.push(key); + total++; + } + }); + + var remove = []; + Object.keys(dst.entries).forEach(function (key) { + var e = dst.entries[key]; + var e2 = src.entries[key]; + if (!e2) { + remove.push(key); + total++; + } + }); + + if (!total) { + return callback(null); + } + + var errored = false; + var completed = 0; + var db = src.type === 'remote' ? src.db : dst.db; + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= total) { + return callback(null); + } + }; + + transaction.onerror = function(e) { + done(this.error); + e.preventDefault(); + }; + + // sort paths in ascending order so directory entries are created + // before the files inside them + create.sort().forEach(function (path) { + if (dst.type === 'local') { + IDBFS.loadRemoteEntry(store, path, function (err, entry) { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, function (err, entry) { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + + // sort paths in descending order so files are deleted before their + // parent directories + remove.sort().reverse().forEach(function(path) { + if (dst.type === 'local') { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + }}; + + var NODEFS={isWindows:false,staticInit:function () { + NODEFS.isWindows = !!process.platform.match(/^win/); + },mount:function (mount) { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + },getMode:function (path) { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so + // propagate write bits to execute bits. + stat.mode = stat.mode | ((stat.mode & 146) >> 1); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return stat.mode; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { + flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. + if (flags in NODEFS.flagsToPermissionStringMap) { + return NODEFS.flagsToPermissionStringMap[flags]; + } else { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },node_ops:{getattr:function (node) { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. + // See http://support.microsoft.com/kb/140365 + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function (node, attr) { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + },mknod:function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function (node) { + var path = NODEFS.realPath(node); + try { + path = fs.readlinkSync(path); + path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); + return path; + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + if (length === 0) return 0; // node errors on 0 length reads + // FIXME this is terrible. + var nbuffer = new Buffer(length); + var res; + try { + res = fs.readSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + if (res > 0) { + for (var i = 0; i < res; i++) { + buffer[offset + i] = nbuffer[i]; + } + } + return res; + },write:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); + var res; + try { + res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return res; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + return position; + }}}; + + var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { + assert(ENVIRONMENT_IS_WORKER); + if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); + var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); + var createdParents = {}; + function ensureParent(path) { + // return the parent node, creating subdirs as necessary + var parts = path.split('/'); + var parent = root; + for (var i = 0; i < parts.length-1; i++) { + var curr = parts.slice(0, i+1).join('/'); + // Issue 4254: Using curr as a node name will prevent the node + // from being found in FS.nameTable when FS.open is called on + // a path which holds a child of this node, + // given that all FS functions assume node names + // are just their corresponding parts within their given path, + // rather than incremental aggregates which include their parent's + // directories. + if (!createdParents[curr]) { + createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); + } + parent = createdParents[curr]; + } + return parent; + } + function base(path) { + var parts = path.split('/'); + return parts[parts.length-1]; + } + // We also accept FileList here, by using Array.prototype + Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { + WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); + }); + (mount.opts["blobs"] || []).forEach(function(obj) { + WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + }); + (mount.opts["packages"] || []).forEach(function(pack) { + pack['metadata'].files.forEach(function(file) { + var name = file.filename.substr(1); // remove initial slash + WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); + }); + }); + return root; + },createNode:function (parent, name, mode, dev, contents, mtime) { + var node = FS.createNode(parent, name, mode); + node.mode = mode; + node.node_ops = WORKERFS.node_ops; + node.stream_ops = WORKERFS.stream_ops; + node.timestamp = (mtime || new Date).getTime(); + assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); + if (mode === WORKERFS.FILE_MODE) { + node.size = contents.size; + node.contents = contents; + } else { + node.size = 4096; + node.contents = {}; + } + if (parent) { + parent.contents[name] = node; + } + return node; + },node_ops:{getattr:function (node) { + return { + dev: 1, + ino: undefined, + mode: node.mode, + nlink: 1, + uid: 0, + gid: 0, + rdev: undefined, + size: node.size, + atime: new Date(node.timestamp), + mtime: new Date(node.timestamp), + ctime: new Date(node.timestamp), + blksize: 4096, + blocks: Math.ceil(node.size / 4096), + }; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + },lookup:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + },mknod:function (parent, name, mode, dev) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rename:function (oldNode, newDir, newName) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },unlink:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rmdir:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readdir:function (node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newName, oldPath) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readlink:function (node) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + if (position >= stream.node.size) return 0; + var chunk = stream.node.contents.slice(position, position + length); + var ab = WORKERFS.reader.readAsArrayBuffer(chunk); + buffer.set(new Uint8Array(ab), offset); + return chunk.size; + },write:function (stream, buffer, offset, length, position) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.size; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + }}}; + + var _stdin=STATICTOP; STATICTOP += 16;; + + var _stdout=STATICTOP; STATICTOP += 16;; + + var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return ___setErrNo(e.errno); + },lookupPath:function (path, opts) { + path = PATH.resolve(FS.cwd(), path); + opts = opts || {}; + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function (parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function (parent, name) { + var err = FS.mayLookup(parent); + if (err) { + throw new FS.ErrnoError(err, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function (parent, name, mode, rdev) { + if (!FS.FSNode) { + FS.FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + + FS.FSNode.prototype = {}; + + // compatibility + var readMode = 292 | 73; + var writeMode = 146; + + // NOTE we must use Object.defineProperties instead of individual calls to + // Object.defineProperty in order to make closure compiler happy + Object.defineProperties(FS.FSNode.prototype, { + read: { + get: function() { return (this.mode & readMode) === readMode; }, + set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } + }, + write: { + get: function() { return (this.mode & writeMode) === writeMode; }, + set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } + }, + isFolder: { + get: function() { return FS.isDir(this.mode); } + }, + isDevice: { + get: function() { return FS.isChrdev(this.mode); } + } + }); + } + + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function (node) { + FS.hashRemoveNode(node); + },isRoot:function (node) { + return node === node.parent; + },isMountpoint:function (node) { + return !!node.mounted; + },isFile:function (mode) { + return (mode & 61440) === 32768; + },isDir:function (mode) { + return (mode & 61440) === 16384; + },isLink:function (mode) { + return (mode & 61440) === 40960; + },isChrdev:function (mode) { + return (mode & 61440) === 8192; + },isBlkdev:function (mode) { + return (mode & 61440) === 24576; + },isFIFO:function (mode) { + return (mode & 61440) === 4096; + },isSocket:function (mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function (flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function (node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return ERRNO_CODES.EACCES; + } + return 0; + },mayLookup:function (dir) { + var err = FS.nodePermissions(dir, 'x'); + if (err) return err; + if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; + return 0; + },mayCreate:function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return ERRNO_CODES.EEXIST; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var err = FS.nodePermissions(dir, 'wx'); + if (err) { + return err; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return ERRNO_CODES.ENOTDIR; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return ERRNO_CODES.EBUSY; + } + } else { + if (FS.isDir(node.mode)) { + return ERRNO_CODES.EISDIR; + } + } + return 0; + },mayOpen:function (node, flags) { + if (!node) { + return ERRNO_CODES.ENOENT; + } + if (FS.isLink(node.mode)) { + return ERRNO_CODES.ELOOP; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return ERRNO_CODES.EISDIR; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(ERRNO_CODES.EMFILE); + },getStream:function (fd) { + return FS.streams[fd]; + },createStream:function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function(){}; + FS.FSStream.prototype = {}; + // compatibility + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }); + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function (fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function (stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function () { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + }},major:function (dev) { + return ((dev) >> 8); + },minor:function (dev) { + return ((dev) & 0xff); + },makedev:function (ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function (dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function (dev) { + return FS.devices[dev]; + },getMounts:function (mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function (populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(err) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(err); + } + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return doCallback(err); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function (type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function (parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.mayCreate(parent, name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function (path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function (path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function (path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != ERRNO_CODES.EEXIST) throw e; + } + } + },mkdev:function (path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function (oldpath, newpath) { + if (!PATH.resolve(oldpath)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var newname = PATH.basename(newpath); + var err = FS.mayCreate(parent, newname); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(ERRNO_CODES.EXDEV); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + // new path should not be an ancestor of the old path + relative = PATH.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var err = FS.mayDelete(old_dir, old_name, isdir); + if (err) { + throw new FS.ErrnoError(err); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + err = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + err = FS.nodePermissions(old_dir, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, true); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + },unlink:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, false); + if (err) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return node.node_ops.getattr(node); + },lstat:function (path) { + return FS.stat(path, true); + },chmod:function (path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function (path, mode) { + FS.chmod(path, mode, true); + },fchmod:function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chmod(stream.node, mode); + },chown:function (path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function (path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chown(stream.node, uid, gid); + },truncate:function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.nodePermissions(node, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + FS.truncate(stream.node, len); + },utime:function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function (path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(ERRNO_CODES.EEXIST); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var err = FS.mayOpen(node, flags); + if (err) { + throw new FS.ErrnoError(err); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + Module['printErr']('read file: ' + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function (stream) { + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + },llseek:function (stream, offset, whence) { + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if (stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function (stream, offset, length) { + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + // TODO if PROT is PROT_WRITE, make sure we have write access + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EACCES); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function (stream) { + return 0; + },ioctl:function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + opts.encoding = opts.encoding || 'utf8'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var stream = FS.open(path, opts.flags, opts.mode); + if (opts.encoding === 'utf8') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); + } else if (opts.encoding === 'binary') { + FS.write(stream, data, 0, data.length, 0, opts.canOwn); + } + FS.close(stream); + },cwd:function () { + return FS.currentPath; + },chdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + var err = FS.nodePermissions(lookup.node, 'x'); + if (err) { + throw new FS.ErrnoError(err); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function () { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function () { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device; + if (typeof crypto !== 'undefined') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs + random_device = function() { return require('crypto').randomBytes(1)[0]; }; + } else { + // default for ES5 platforms + random_device = function() { return (Math.random()*256)|0; }; + } + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function () { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function () { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + + var stdout = FS.open('/dev/stdout', 'w'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + + var stderr = FS.open('/dev/stderr', 'w'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + //Module.printErr(stackTrace()); // useful for debugging + this.node = node; + this.setErrno = function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) this.stack = demangleAll(this.stack); + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [ERRNO_CODES.ENOENT].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function () { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + 'IDBFS': IDBFS, + 'NODEFS': NODEFS, + 'WORKERFS': WORKERFS, + }; + },init:function (input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function () { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function (relative, base) { + return PATH.resolve(base, relative); + },standardizePath:function (path) { + return PATH.normalize(path); + },findObject:function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + ___setErrNo(ret.error); + return null; + } + },analyzePath:function (path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function (parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (Module['read']) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(Module['read'](obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) ___setErrNo(ERRNO_CODES.EIO); + return success; + },createLazyFile:function (parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + } + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + } + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function () { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + console.log('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { + if (path[0] !== '/') { + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + dir = dirstream.path; + } + path = PATH.join2(dir, path); + } + return path; + },doStat:function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -ERRNO_CODES.ENOTDIR; + } + throw e; + } + HEAP32[((buf)>>2)]=stat.dev; + HEAP32[(((buf)+(4))>>2)]=0; + HEAP32[(((buf)+(8))>>2)]=stat.ino; + HEAP32[(((buf)+(12))>>2)]=stat.mode; + HEAP32[(((buf)+(16))>>2)]=stat.nlink; + HEAP32[(((buf)+(20))>>2)]=stat.uid; + HEAP32[(((buf)+(24))>>2)]=stat.gid; + HEAP32[(((buf)+(28))>>2)]=stat.rdev; + HEAP32[(((buf)+(32))>>2)]=0; + HEAP32[(((buf)+(36))>>2)]=stat.size; + HEAP32[(((buf)+(40))>>2)]=4096; + HEAP32[(((buf)+(44))>>2)]=stat.blocks; + HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(52))>>2)]=0; + HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)]=0; + HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)]=0; + HEAP32[(((buf)+(72))>>2)]=stat.ino; + return 0; + },doMsync:function (addr, stream, len, flags) { + var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); + FS.msync(stream, buffer, 0, len, flags); + },doMkdir:function (path, mode) { + // remove a trailing slash, if one - /a/b/ has basename of '', but + // we want to create b in the context of this function + path = PATH.normalize(path); + if (path[path.length-1] === '/') path = path.substr(0, path.length-1); + FS.mkdir(path, mode, 0); + return 0; + },doMknod:function (path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -ERRNO_CODES.EINVAL; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function (path, buf, bufsize) { + if (bufsize <= 0) return -ERRNO_CODES.EINVAL; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function (path, amode) { + if (amode & ~7) { + // need a valid mode + return -ERRNO_CODES.EINVAL; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -ERRNO_CODES.EACCES; + } + return 0; + },doDup:function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },getStreamFromFD:function () { + var stream = FS.getStream(SYSCALLS.get()); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return stream; + },getSocketFromFD:function () { + var socket = SOCKFS.getSocket(SYSCALLS.get()); + if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return socket; + },getSocketAddress:function (allowNull) { + var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); + if (allowNull && addrp === 0) return null; + var info = __read_sockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); + switch (op) { + case 21505: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + case 21506: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return -ERRNO_CODES.EINVAL; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _glfwGetMouseButton(winid, button) { + return GLFW.getMouseButton(winid, button); + } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + try { + // open + var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doWritev(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; + try { + // readv + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___udivdi3"] = ___udivdi3; + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function ___assert_fail(condition, filename, line, func) { + ABORT = true; + throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _glfwSetCursorPos(winid, x, y) { + GLFW.setCursorPos(winid, x, y); + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _glfwGetKey(winid, key) { + return GLFW.getKey(winid, key); + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; + try { + // fcntl64 + var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -ERRNO_CODES.EINVAL; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + case 12: { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + } + case 13: + case 14: + case 13: + case 14: + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: { + return -ERRNO_CODES.EINVAL; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(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;Module["FS_unlink"] = FS.unlink;; +__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; +JSEvents.staticInit();; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_glVertexAttrib4f": _glVertexAttrib4f, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_glVertexAttrib3f": _glVertexAttrib3f, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glHint": _emscripten_glHint, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_glUniform3f": _glUniform3f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glVertexAttrib2f": _glVertexAttrib2f, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_glfwSetCursorPos": _glfwSetCursorPos, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_glfwGetMouseButton": _glfwGetMouseButton, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_glUniform1f": _glUniform1f, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var ___assert_fail=env.___assert_fail; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _glVertexAttrib4f=env._glVertexAttrib4f; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _glVertexAttrib3f=env._glVertexAttrib3f; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var ___syscall145=env.___syscall145; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glHint=env._emscripten_glHint; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var ___syscall146=env.___syscall146; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _glUniform3f=env._glUniform3f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _glVertexAttrib2f=env._glVertexAttrib2f; + var _glGenTextures=env._glGenTextures; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var ___syscall5=env.___syscall5; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var ___syscall221=env.___syscall221; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _glfwSetCursorPos=env._glfwSetCursorPos; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _glfwGetMouseButton=env._glfwGetMouseButton; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _glActiveTexture=env._glActiveTexture; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _glUniform1f=env._glUniform1f; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _glfwGetKey=env._glfwGetKey; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $map$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 592|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(592|0); + $map$byval_copy = sp + 328|0; + $0 = sp + 20|0; + $1 = sp + 304|0; + $2 = sp + 40|0; + $3 = sp; + $4 = HEAP32[2]|0; + $5 = HEAP32[3]|0; + _InitWindow($4,$5,4288); + _LoadImage($0,4343); + ;HEAP32[$map$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$map$byval_copy); + ;HEAP32[17432>>2]=HEAP32[$1>>2]|0;HEAP32[17432+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[17432+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[17432+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[17432+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$map$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + _LoadCubicmap($2,$map$byval_copy); + _memcpy((17452|0),($2|0),264)|0; + _LoadTexture($3,4366); + ;HEAP32[(17640)>>2]=HEAP32[$3>>2]|0;HEAP32[(17640)+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[(17640)+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[(17640)+12>>2]=HEAP32[$3+12>>2]|0;HEAP32[(17640)+16>>2]=HEAP32[$3+16>>2]|0; + ;HEAP32[$map$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($map$byval_copy); + dest=$map$byval_copy; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetCameraMode($map$byval_copy,2); + _emscripten_set_main_loop((1|0),0,1); + ;HEAP32[$map$byval_copy>>2]=HEAP32[17432>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[17432+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[17432+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[17432+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[17432+16>>2]|0; + _UnloadTexture($map$byval_copy); + ;HEAP32[$map$byval_copy>>2]=HEAP32[$3>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[$3+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[$3+16>>2]|0; + _UnloadTexture($map$byval_copy); + _memcpy(($map$byval_copy|0),(17452|0),264)|0; + _UnloadModel($map$byval_copy); + _CloseWindow(); + STACKTOP = sp;return 0; +} +function _UpdateDrawFrame() { + var $$byval_copy1 = 0, $$byval_copy4 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cubicmap$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0; + var stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); + $$byval_copy4 = sp + 296|0; + $$byval_copy1 = sp + 284|0; + $cubicmap$byval_copy = sp + 8|0; + $0 = sp + 348|0; + $1 = sp + 280|0; + $2 = sp + 272|0; + $3 = sp; + $4 = sp + 344|0; + $5 = sp + 340|0; + $6 = sp + 336|0; + _UpdateCamera(16); + _BeginDrawing(); + HEAP8[$0>>0] = -11; + $7 = ((($0)) + 1|0); + HEAP8[$7>>0] = -11; + $8 = ((($0)) + 2|0); + HEAP8[$8>>0] = -11; + $9 = ((($0)) + 3|0); + HEAP8[$9>>0] = -1; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$0+3>>0]|0; + _ClearBackground($$byval_copy4); + dest=$$byval_copy4; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($$byval_copy4); + HEAP32[$1>>2] = -1; + _memcpy(($cubicmap$byval_copy|0),(17452|0),264)|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[56>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[56+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[56+8>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$1+3>>0]|0; + _DrawModel($cubicmap$byval_copy,$$byval_copy1,1.0,$$byval_copy4); + _End3dMode(); + $10 = HEAP32[2]|0; + $11 = HEAP32[(17436)>>2]|0; + $12 = $11 << 2; + $13 = (($10) + -20)|0; + $14 = (($13) - ($12))|0; + $15 = (+($14|0)); + HEAPF32[$2>>2] = $15; + $16 = ((($2)) + 4|0); + HEAPF32[$16>>2] = 20.0; + HEAP32[$3>>2] = -1; + ;HEAP32[$cubicmap$byval_copy>>2]=HEAP32[17432>>2]|0;HEAP32[$cubicmap$byval_copy+4>>2]=HEAP32[17432+4>>2]|0;HEAP32[$cubicmap$byval_copy+8>>2]=HEAP32[17432+8>>2]|0;HEAP32[$cubicmap$byval_copy+12>>2]=HEAP32[17432+12>>2]|0;HEAP32[$cubicmap$byval_copy+16>>2]=HEAP32[17432+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$3+3>>0]|0; + _DrawTextureEx($cubicmap$byval_copy,$$byval_copy1,0.0,4.0,$$byval_copy4); + $17 = HEAP32[2]|0; + $18 = HEAP32[(17436)>>2]|0; + $19 = $18 << 2; + $20 = (($17) + -20)|0; + $21 = (($20) - ($19))|0; + $22 = HEAP32[(17440)>>2]|0; + $23 = $22 << 2; + HEAP8[$4>>0] = 0; + $24 = ((($4)) + 1|0); + HEAP8[$24>>0] = -28; + $25 = ((($4)) + 2|0); + HEAP8[$25>>0] = 48; + $26 = ((($4)) + 3|0); + HEAP8[$26>>0] = -1; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangleLines($21,20,$19,$23,$$byval_copy4); + HEAP8[$5>>0] = -126; + $27 = ((($5)) + 1|0); + HEAP8[$27>>0] = -126; + $28 = ((($5)) + 2|0); + HEAP8[$28>>0] = -126; + $29 = ((($5)) + 3|0); + HEAP8[$29>>0] = -1; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$5+3>>0]|0; + _DrawText(4395,658,90,10,$$byval_copy4); + HEAP8[$6>>0] = -126; + $30 = ((($6)) + 1|0); + HEAP8[$30>>0] = -126; + $31 = ((($6)) + 2|0); + HEAP8[$31>>0] = -126; + $32 = ((($6)) + 3|0); + HEAP8[$32>>0] = -1; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$6>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$6+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$6+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$6+3>>0]|0; + _DrawText(4418,658,104,10,$$byval_copy4); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixInvert($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0; + var $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0; + var $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0.0; + var $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0; + var $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0; + var $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0; + var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0; + var $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = ((($0)) + 16|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 32|0); + $5 = +HEAPF32[$4>>2]; + $6 = ((($0)) + 48|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 20|0); + $11 = +HEAPF32[$10>>2]; + $12 = ((($0)) + 36|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($0)) + 52|0); + $15 = +HEAPF32[$14>>2]; + $16 = ((($0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + $18 = ((($0)) + 24|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($0)) + 40|0); + $21 = +HEAPF32[$20>>2]; + $22 = ((($0)) + 56|0); + $23 = +HEAPF32[$22>>2]; + $24 = ((($0)) + 12|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($0)) + 28|0); + $27 = +HEAPF32[$26>>2]; + $28 = ((($0)) + 44|0); + $29 = +HEAPF32[$28>>2]; + $30 = ((($0)) + 60|0); + $31 = +HEAPF32[$30>>2]; + $32 = $1 * $11; + $33 = $3 * $9; + $34 = $32 - $33; + $35 = $1 * $13; + $36 = $5 * $9; + $37 = $35 - $36; + $38 = $1 * $15; + $39 = $7 * $9; + $40 = $38 - $39; + $41 = $3 * $13; + $42 = $5 * $11; + $43 = $41 - $42; + $44 = $3 * $15; + $45 = $7 * $11; + $46 = $44 - $45; + $47 = $5 * $15; + $48 = $7 * $13; + $49 = $47 - $48; + $50 = $17 * $27; + $51 = $19 * $25; + $52 = $50 - $51; + $53 = $17 * $29; + $54 = $21 * $25; + $55 = $53 - $54; + $56 = $17 * $31; + $57 = $23 * $25; + $58 = $56 - $57; + $59 = $19 * $29; + $60 = $21 * $27; + $61 = $59 - $60; + $62 = $19 * $31; + $63 = $23 * $27; + $64 = $62 - $63; + $65 = $21 * $31; + $66 = $23 * $29; + $67 = $65 - $66; + $68 = $34 * $67; + $69 = $37 * $64; + $70 = $68 - $69; + $71 = $40 * $61; + $72 = $71 + $70; + $73 = $43 * $58; + $74 = $73 + $72; + $75 = $46 * $55; + $76 = $74 - $75; + $77 = $49 * $52; + $78 = $77 + $76; + $79 = 1.0 / $78; + $80 = $11 * $67; + $81 = $13 * $64; + $82 = $80 - $81; + $83 = $15 * $61; + $84 = $83 + $82; + $85 = $84 * $79; + $86 = $3 * $67; + $87 = $5 * $64; + $88 = $87 - $86; + $89 = $7 * $61; + $90 = $88 - $89; + $91 = $90 * $79; + $92 = $49 * $27; + $93 = $46 * $29; + $94 = $92 - $93; + $95 = $43 * $31; + $96 = $94 + $95; + $97 = $96 * $79; + $98 = $19 * $49; + $99 = $46 * $21; + $100 = $99 - $98; + $101 = $43 * $23; + $102 = $100 - $101; + $103 = $102 * $79; + $104 = -$9; + $105 = $67 * $104; + $106 = $13 * $58; + $107 = $105 + $106; + $108 = $15 * $55; + $109 = $107 - $108; + $110 = $109 * $79; + $111 = $1 * $67; + $112 = $5 * $58; + $113 = $111 - $112; + $114 = $7 * $55; + $115 = $114 + $113; + $116 = $115 * $79; + $117 = -$25; + $118 = $49 * $117; + $119 = $40 * $29; + $120 = $118 + $119; + $121 = $37 * $31; + $122 = $120 - $121; + $123 = $122 * $79; + $124 = $17 * $49; + $125 = $40 * $21; + $126 = $124 - $125; + $127 = $37 * $23; + $128 = $126 + $127; + $129 = $128 * $79; + $130 = $9 * $64; + $131 = $11 * $58; + $132 = $130 - $131; + $133 = $15 * $52; + $134 = $133 + $132; + $135 = $134 * $79; + $136 = $1 * $64; + $137 = $3 * $58; + $138 = $137 - $136; + $139 = $7 * $52; + $140 = $138 - $139; + $141 = $140 * $79; + $142 = $46 * $25; + $143 = $40 * $27; + $144 = $142 - $143; + $145 = $34 * $31; + $146 = $144 + $145; + $147 = $146 * $79; + $148 = $17 * $46; + $149 = $19 * $40; + $150 = $149 - $148; + $151 = $34 * $23; + $152 = $150 - $151; + $153 = $152 * $79; + $154 = $61 * $104; + $155 = $11 * $55; + $156 = $154 + $155; + $157 = $13 * $52; + $158 = $156 - $157; + $159 = $158 * $79; + $160 = $1 * $61; + $161 = $3 * $55; + $162 = $160 - $161; + $163 = $5 * $52; + $164 = $163 + $162; + $165 = $164 * $79; + $166 = $43 * $117; + $167 = $37 * $27; + $168 = $166 + $167; + $169 = $34 * $29; + $170 = $168 - $169; + $171 = $170 * $79; + $172 = $17 * $43; + $173 = $37 * $19; + $174 = $172 - $173; + $175 = $34 * $21; + $176 = $174 + $175; + $177 = $176 * $79; + HEAPF32[$0>>2] = $85; + HEAPF32[$8>>2] = $110; + HEAPF32[$16>>2] = $135; + HEAPF32[$24>>2] = $159; + HEAPF32[$2>>2] = $91; + HEAPF32[$10>>2] = $116; + HEAPF32[$18>>2] = $141; + HEAPF32[$26>>2] = $165; + HEAPF32[$4>>2] = $97; + HEAPF32[$12>>2] = $123; + HEAPF32[$20>>2] = $147; + HEAPF32[$28>>2] = $171; + HEAPF32[$6>>2] = $103; + HEAPF32[$14>>2] = $129; + HEAPF32[$22>>2] = $153; + HEAPF32[$30>>2] = $177; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[4430] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 17152; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 17192; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[4298]; + $111 = +HEAPF32[4288]; + $112 = $110 - $111; + HEAPF32[4300] = $112; + $113 = +HEAPF32[(17196)>>2]; + $114 = +HEAPF32[(17156)>>2]; + $115 = $113 - $114; + HEAPF32[(17204)>>2] = $115; + HEAP32[4429] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17184>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17184+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17208>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17208+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[4435] = $116; + $117 = 17184; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 17152; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 17208; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 17192; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 17184; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 17208; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[4302]; + $160 = +HEAPF32[4296]; + $161 = $159 - $160; + HEAPF32[4300] = $161; + $162 = +HEAPF32[(17212)>>2]; + $163 = +HEAPF32[(17188)>>2]; + $164 = $162 - $163; + HEAPF32[(17204)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17152>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17152+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17184>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17184+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17192>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17192+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17208>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17208+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17184>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17184+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17208>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17208+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[4435]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[4429] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17184>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17184+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17208>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17208+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[4436] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[4435] = 0.0; + HEAPF32[4436] = 0.0; + HEAPF32[4300] = 0.0; + HEAPF32[(17204)>>2] = 0.0; + HEAP32[4430] = 0; + HEAP32[4429] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[4431]|0; + $7 = (($6) + 1)|0; + HEAP32[4431] = $7; + $8 = HEAP32[4429]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17152>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17152+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[4429] = 2; + HEAP32[4431] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[4431] = 1; + HEAP32[4429] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 17152; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 17160; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 17168; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[17] = $34; + HEAPF32[4294] = 0.0; + HEAPF32[(17180)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[4429]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 17168; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17152>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17152+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17168>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17168+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[4432] = $49; + HEAP32[4433] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[17]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17152>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17152+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17168>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17168+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[4434] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[4432] = 0.0; + HEAPF32[4434] = 0.0; + $$sink10 = 0; + } + HEAP32[4429] = $$sink10; + HEAPF32[4290] = 0.0; + HEAPF32[(17164)>>2] = 0.0; + HEAP32[4430] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[4433]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[4433] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 17184; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[4429]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17152>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17152+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17184>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17184+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[4429] = 8; + } + } + $82 = +HEAPF32[4296]; + $83 = +HEAPF32[4290]; + $84 = $82 - $83; + HEAPF32[4294] = $84; + $85 = +HEAPF32[(17188)>>2]; + $86 = +HEAPF32[(17164)>>2]; + $87 = $85 - $86; + HEAPF32[(17180)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4429]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[4430]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[4429] = 4; + } + $4 = HEAP32[4429]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[4429] = 0; + return; +} +function _SetCameraMode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$023$0$$sroa_idx = 0, $$sroa$023$0$copyload = 0.0, $$sroa$030$0$copyload = 0.0, $$sroa$4$0$$sroa_idx25 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$432$0$$sroa_idx33 = 0, $$sroa$432$0$copyload = 0.0, $$sroa$527$0$$sroa_idx28 = 0, $$sroa$527$0$copyload = 0.0, $$sroa$535$0$$sroa_idx36 = 0, $$sroa$535$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0; + var $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $$sroa$030$0$copyload = +HEAPF32[$0>>2]; + $$sroa$432$0$$sroa_idx33 = ((($0)) + 4|0); + $$sroa$432$0$copyload = +HEAPF32[$$sroa$432$0$$sroa_idx33>>2]; + $$sroa$535$0$$sroa_idx36 = ((($0)) + 8|0); + $$sroa$535$0$copyload = +HEAPF32[$$sroa$535$0$$sroa_idx36>>2]; + $$sroa$023$0$$sroa_idx = ((($0)) + 12|0); + $$sroa$023$0$copyload = +HEAPF32[$$sroa$023$0$$sroa_idx>>2]; + $$sroa$4$0$$sroa_idx25 = ((($0)) + 16|0); + $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx25>>2]; + $$sroa$527$0$$sroa_idx28 = ((($0)) + 20|0); + $$sroa$527$0$copyload = +HEAPF32[$$sroa$527$0$$sroa_idx28>>2]; + $2 = $$sroa$023$0$copyload - $$sroa$030$0$copyload; + $3 = $$sroa$4$0$copyload - $$sroa$432$0$copyload; + $4 = $$sroa$527$0$copyload - $$sroa$535$0$copyload; + $5 = $2 * $2; + $6 = $3 * $3; + $7 = $5 + $6; + $8 = $4 * $4; + $9 = $7 + $8; + $10 = (+Math_sqrt((+$9))); + HEAPF32[4437] = $10; + $11 = $5 + $8; + $12 = (+Math_sqrt((+$11))); + $13 = (+Math_sqrt((+$7))); + $14 = (+Math_abs((+$2))); + $15 = $14 / $12; + $16 = (+Math_asin((+$15))); + HEAPF32[4438] = $16; + $17 = (+Math_abs((+$3))); + $18 = $17 / $13; + $19 = (+Math_asin((+$18))); + $20 = -$19; + HEAPF32[4439] = $20; + $21 = HEAP32[$$sroa$432$0$$sroa_idx33>>2]|0; + HEAP32[18] = $21; + HEAP32[4440] = $1; + return; +} +function _UpdateCamera($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$byval_copy3 = 0, $$not = 0, $$not188 = 0, $$off187 = 0, $$pr = 0, $$pr190 = 0, $$sink = 0.0, $$sink17 = 0, $$sink22 = 0.0, $$sink22$p = 0.0, $$sink26 = 0.0, $$sink28 = 0.0, $$sroa$095$0 = 0.0, $$sroa$9$0 = 0.0, $1 = 0, $10 = 0, $100 = 0.0, $101 = 0.0; + var $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0; + var $120 = 0.0, $121 = 0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0.0; + var $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0, $152 = 0.0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0; + var $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0, $168 = 0.0, $169 = 0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0; + var $175 = 0.0, $176 = 0, $177 = 0.0, $178 = 0.0, $179 = 0.0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0.0, $185 = 0.0, $186 = 0.0, $187 = 0.0, $188 = 0.0, $189 = 0.0, $19 = 0, $190 = 0.0, $191 = 0, $192 = 0.0; + var $193 = 0, $194 = 0.0, $195 = 0.0, $196 = 0.0, $197 = 0.0, $198 = 0.0, $199 = 0.0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0.0, $205 = 0.0, $206 = 0.0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; + var $210 = 0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $214 = 0.0, $215 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0.0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0.0, $228 = 0.0; + var $229 = 0.0, $23 = 0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0.0, $234 = 0.0, $235 = 0.0, $236 = 0, $237 = 0.0, $238 = 0.0, $239 = 0.0, $24 = 0, $240 = 0.0, $241 = 0.0, $242 = 0, $243 = 0.0, $244 = 0.0, $245 = 0.0, $246 = 0.0; + var $247 = 0.0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0.0, $251 = 0, $252 = 0.0, $253 = 0.0, $254 = 0.0, $255 = 0.0, $256 = 0.0, $257 = 0.0, $258 = 0.0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0.0; + var $265 = 0.0, $266 = 0, $267 = 0.0, $268 = 0.0, $269 = 0, $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0.0, $273 = 0.0, $274 = 0, $275 = 0.0, $276 = 0.0, $277 = 0.0, $278 = 0, $279 = 0.0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0.0; + var $283 = 0.0, $284 = 0.0, $285 = 0.0, $286 = 0.0, $287 = 0.0, $288 = 0.0, $289 = 0.0, $29 = 0, $290 = 0, $291 = 0.0, $292 = 0.0, $293 = 0, $294 = 0.0, $295 = 0.0, $296 = 0.0, $297 = 0, $298 = 0.0, $299 = 0.0, $3 = 0, $30 = 0; + var $300 = 0.0, $301 = 0.0, $302 = 0.0, $303 = 0.0, $304 = 0.0, $305 = 0.0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0.0, $314 = 0.0, $315 = 0.0, $316 = 0.0, $317 = 0.0, $318 = 0.0; + var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0.0, $324 = 0.0, $325 = 0.0, $326 = 0.0, $327 = 0, $328 = 0.0, $329 = 0.0, $33 = 0, $330 = 0.0, $331 = 0.0, $332 = 0.0, $333 = 0.0, $334 = 0.0, $335 = 0.0, $336 = 0; + var $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0.0, $341 = 0.0, $342 = 0.0, $343 = 0.0, $344 = 0, $345 = 0, $346 = 0.0, $347 = 0.0, $348 = 0.0, $349 = 0.0, $35 = 0, $350 = 0.0, $351 = 0, $352 = 0.0, $353 = 0.0, $354 = 0.0; + var $355 = 0.0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0.0, $36 = 0, $360 = 0.0, $361 = 0.0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0.0, $367 = 0, $368 = 0.0, $369 = 0.0, $37 = 0.0, $370 = 0.0, $371 = 0.0, $372 = 0.0; + var $373 = 0.0, $374 = 0.0, $375 = 0.0, $376 = 0, $377 = 0.0, $378 = 0.0, $379 = 0, $38 = 0.0, $380 = 0, $381 = 0.0, $382 = 0.0, $383 = 0.0, $384 = 0.0, $385 = 0.0, $386 = 0.0, $387 = 0.0, $388 = 0, $389 = 0.0, $39 = 0.0, $390 = 0.0; + var $391 = 0, $392 = 0.0, $393 = 0.0, $394 = 0, $395 = 0.0, $396 = 0.0, $397 = 0.0, $398 = 0.0, $399 = 0, $4 = 0, $40 = 0, $400 = 0.0, $401 = 0.0, $402 = 0.0, $403 = 0, $404 = 0.0, $405 = 0.0, $406 = 0, $407 = 0, $408 = 0; + var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; + var $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0; + var $7 = 0, $70 = 0.0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0, $87 = 0; + var $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0.0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond189 = 0, $or$cond3 = 0; + var $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $storemerge = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy3 = sp + 72|0; + $1 = sp + 56|0; + $2 = sp + 16|0; + $3 = sp + 64|0; + $4 = sp + 48|0; + $5 = sp + 40|0; + $6 = sp + 8|0; + $7 = sp; + _GetMousePosition($1); + $8 = (_GetMouseWheelMove()|0); + $9 = HEAP32[19]|0; + $10 = (_IsMouseButtonDown($9)|0); + $11 = HEAP32[20]|0; + $12 = (_IsKeyDown($11)|0); + $13 = HEAP32[21]|0; + $14 = (_IsKeyDown($13)|0); + $15 = HEAP32[22]|0; + $16 = (_IsKeyDown($15)|0); + HEAP32[$2>>2] = $16; + $17 = ((($2)) + 4|0); + $18 = HEAP32[23]|0; + $19 = (_IsKeyDown($18)|0); + HEAP32[$17>>2] = $19; + $20 = ((($2)) + 8|0); + $21 = HEAP32[24]|0; + $22 = (_IsKeyDown($21)|0); + HEAP32[$20>>2] = $22; + $23 = ((($2)) + 12|0); + $24 = HEAP32[25]|0; + $25 = (_IsKeyDown($24)|0); + HEAP32[$23>>2] = $25; + $26 = ((($2)) + 16|0); + $27 = HEAP32[26]|0; + $28 = (_IsKeyDown($27)|0); + HEAP32[$26>>2] = $28; + $29 = ((($2)) + 20|0); + $30 = HEAP32[27]|0; + $31 = (_IsKeyDown($30)|0); + HEAP32[$29>>2] = $31; + $32 = HEAP32[4440]|0; + $33 = ($32|0)==(0); + L1: do { + if ($33) { + label = 58; + } else { + $34 = (_GetScreenWidth()|0); + $35 = (_GetScreenHeight()|0); + $$off187 = (($32) + -3)|0; + $36 = ($$off187>>>0)<(2); + do { + if ($36) { + _HideCursor(); + $37 = +HEAPF32[$1>>2]; + $38 = (+($35|0)); + $39 = $38 / 3.0; + $40 = $37 < $39; + $41 = ((($1)) + 4|0); + $42 = +HEAPF32[$41>>2]; + if ($40) { + $43 = (($35|0) / 3)&-1; + $44 = (($34) - ($43))|0; + $45 = (+($44|0)); + HEAPF32[$3>>2] = $45; + $46 = ((($3)) + 4|0); + HEAPF32[$46>>2] = $42; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$3+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $47 = $42 < $39; + if ($47) { + HEAPF32[$4>>2] = $37; + $48 = ((($4)) + 4|0); + $49 = (($35|0) / 3)&-1; + $50 = (($35) - ($49))|0; + $51 = (+($50|0)); + HEAPF32[$48>>2] = $51; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $52 = (+($34|0)); + $53 = $52 - $39; + $54 = $37 > $53; + if ($54) { + $55 = (($35|0) / 3)&-1; + $56 = (+($55|0)); + HEAPF32[$5>>2] = $56; + $57 = ((($5)) + 4|0); + $58 = HEAP32[$41>>2]|0; + HEAP32[$57>>2] = $58; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$5+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $59 = $38 - $39; + $60 = $42 > $59; + if ($60) { + HEAPF32[$6>>2] = $37; + $61 = ((($6)) + 4|0); + $62 = (($35|0) / 3)&-1; + $63 = (+($62|0)); + HEAPF32[$61>>2] = $63; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } else { + $64 = +HEAPF32[4304]; + $65 = $37 - $64; + $66 = +HEAPF32[(17220)>>2]; + $67 = $42 - $66; + $$sroa$095$0 = $65;$$sroa$9$0 = $67; + break; + } + } else { + _ShowCursor(); + $68 = +HEAPF32[$1>>2]; + $69 = +HEAPF32[4304]; + $70 = $68 - $69; + $71 = ((($1)) + 4|0); + $72 = +HEAPF32[$71>>2]; + $73 = +HEAPF32[(17220)>>2]; + $74 = $72 - $73; + $$sroa$095$0 = $70;$$sroa$9$0 = $74; + } + } while(0); + _GetMousePosition($7); + $75 = $7; + $76 = $75; + $77 = HEAP32[$76>>2]|0; + $78 = (($75) + 4)|0; + $79 = $78; + $80 = HEAP32[$79>>2]|0; + $81 = 17216; + $82 = $81; + HEAP32[$82>>2] = $77; + $83 = (($81) + 4)|0; + $84 = $83; + HEAP32[$84>>2] = $80; + $$pr = HEAP32[4440]|0; + switch ($$pr|0) { + case 1: { + $85 = +HEAPF32[4437]; + $86 = $85 < 120.0; + $87 = ($8|0)<(0); + $or$cond3 = $87 & $86; + do { + if ($or$cond3) { + $88 = (+($8|0)); + $89 = $88 * 1.5; + $90 = $85 - $89; + HEAPF32[4437] = $90; + $91 = $90 > 120.0; + if ($91) { + HEAPF32[4437] = 120.0; + } + } else { + $92 = ((($0)) + 4|0); + $93 = +HEAPF32[$92>>2]; + $94 = ((($0)) + 12|0); + $95 = ((($0)) + 16|0); + $96 = +HEAPF32[$95>>2]; + $97 = $93 > $96; + $98 = $85 == 120.0; + $or$cond5 = $98 & $97; + $or$cond7 = $87 & $or$cond5; + if ($or$cond7) { + $99 = (+($8|0)); + $100 = +HEAPF32[$94>>2]; + $101 = +HEAPF32[$0>>2]; + $102 = $100 - $101; + $103 = $99 * $102; + $104 = $103 * 1.5; + $105 = $104 / $85; + $106 = $100 + $105; + HEAPF32[$94>>2] = $106; + $107 = $96 - $93; + $108 = $99 * $107; + $109 = $108 * 1.5; + $110 = $109 / $85; + $111 = $96 + $110; + HEAPF32[$95>>2] = $111; + $112 = ((($0)) + 20|0); + $113 = +HEAPF32[$112>>2]; + $114 = ((($0)) + 8|0); + $115 = +HEAPF32[$114>>2]; + $116 = $113 - $115; + $117 = $99 * $116; + $118 = $117 * 1.5; + $119 = $118 / $85; + $120 = $113 + $119; + HEAPF32[$112>>2] = $120; + break; + } + $$not = $97 ^ 1; + $121 = !($96 >= 0.0); + $or$cond = $121 | $$not; + if (!($or$cond)) { + $122 = (+($8|0)); + $123 = +HEAPF32[$94>>2]; + $124 = +HEAPF32[$0>>2]; + $125 = $123 - $124; + $126 = $122 * $125; + $127 = $126 * 1.5; + $128 = $127 / $85; + $129 = $123 + $128; + HEAPF32[$94>>2] = $129; + $130 = $96 - $93; + $131 = $122 * $130; + $132 = $131 * 1.5; + $133 = $132 / $85; + $134 = $96 + $133; + HEAPF32[$95>>2] = $134; + $135 = ((($0)) + 20|0); + $136 = +HEAPF32[$135>>2]; + $137 = ((($0)) + 8|0); + $138 = +HEAPF32[$137>>2]; + $139 = $136 - $138; + $140 = $122 * $139; + $141 = $140 * 1.5; + $142 = $141 / $85; + $143 = $136 + $142; + HEAPF32[$135>>2] = $143; + break; + } + if ($97) { + $144 = $96 < 0.0; + $145 = ($8|0)>(0); + $or$cond9 = $145 & $144; + if ($or$cond9) { + $146 = (+($8|0)); + $147 = $146 * 1.5; + $148 = $85 - $147; + HEAPF32[4437] = $148; + $149 = $148 < 0.30000001192092896; + if (!($149)) { + break; + } + HEAPF32[4437] = 0.30000001192092896; + break; + } + } + $150 = $93 < $96; + $or$cond11 = $98 & $150; + $or$cond13 = $87 & $or$cond11; + $151 = +HEAPF32[$95>>2]; + $152 = +HEAPF32[$92>>2]; + if ($or$cond13) { + $153 = (+($8|0)); + $154 = +HEAPF32[$94>>2]; + $155 = +HEAPF32[$0>>2]; + $156 = $154 - $155; + $157 = $153 * $156; + $158 = $157 * 1.5; + $159 = $158 / $85; + $160 = $154 + $159; + HEAPF32[$94>>2] = $160; + $161 = $151 - $152; + $162 = $153 * $161; + $163 = $162 * 1.5; + $164 = +HEAPF32[4437]; + $165 = $163 / $164; + $166 = $151 + $165; + HEAPF32[$95>>2] = $166; + $167 = ((($0)) + 20|0); + $168 = +HEAPF32[$167>>2]; + $169 = ((($0)) + 8|0); + $170 = +HEAPF32[$169>>2]; + $171 = $168 - $170; + $172 = $153 * $171; + $173 = $172 * 1.5; + $174 = $173 / $164; + $175 = $168 + $174; + HEAPF32[$167>>2] = $175; + break; + } + $$not188 = $150 ^ 1; + $176 = !($96 <= 0.0); + $or$cond189 = $176 | $$not188; + if (!($or$cond189)) { + $177 = (+($8|0)); + $178 = +HEAPF32[$94>>2]; + $179 = +HEAPF32[$0>>2]; + $180 = $178 - $179; + $181 = $177 * $180; + $182 = $181 * 1.5; + $183 = $182 / $85; + $184 = $178 + $183; + HEAPF32[$94>>2] = $184; + $185 = $151 - $152; + $186 = $177 * $185; + $187 = $186 * 1.5; + $188 = +HEAPF32[4437]; + $189 = $187 / $188; + $190 = $151 + $189; + HEAPF32[$95>>2] = $190; + $191 = ((($0)) + 20|0); + $192 = +HEAPF32[$191>>2]; + $193 = ((($0)) + 8|0); + $194 = +HEAPF32[$193>>2]; + $195 = $192 - $194; + $196 = $177 * $195; + $197 = $196 * 1.5; + $198 = $197 / $188; + $199 = $192 + $198; + HEAPF32[$191>>2] = $199; + break; + } + $200 = $152 < $151; + if ($200) { + $201 = $151 > 0.0; + $202 = ($8|0)>(0); + $or$cond15 = $202 & $201; + if ($or$cond15) { + $203 = (+($8|0)); + $204 = $203 * 1.5; + $205 = +HEAPF32[4437]; + $206 = $205 - $204; + HEAPF32[4437] = $206; + $207 = $206 < 0.30000001192092896; + if ($207) { + HEAPF32[4437] = 0.30000001192092896; + } + } + } + } + } while(0); + $208 = ($10|0)==(0); + if ($208) { + label = 58; + break L1; + } + $209 = ($12|0)==(0); + if ($209) { + $222 = $$sroa$095$0 * -0.0099999997764825821; + $223 = +HEAPF32[4438]; + $224 = (+Math_cos((+$223))); + $225 = $222 * $224; + $226 = $$sroa$9$0 * 0.0099999997764825821; + $227 = (+Math_sin((+$223))); + $228 = $226 * $227; + $229 = +HEAPF32[4439]; + $230 = (+Math_sin((+$229))); + $231 = $228 * $230; + $232 = $225 + $231; + $233 = +HEAPF32[4437]; + $234 = $233 / 5.0999999046325684; + $235 = $232 * $234; + $236 = ((($0)) + 12|0); + $237 = +HEAPF32[$236>>2]; + $238 = $237 + $235; + HEAPF32[$236>>2] = $238; + $239 = (+Math_cos((+$229))); + $240 = $226 * $239; + $241 = $234 * $240; + $242 = ((($0)) + 16|0); + $243 = +HEAPF32[$242>>2]; + $244 = $243 + $241; + HEAPF32[$242>>2] = $244; + $245 = $$sroa$095$0 * 0.0099999997764825821; + $246 = $245 * $227; + $247 = $226 * $224; + $248 = $247 * $230; + $249 = $246 + $248; + $250 = $249 * $234; + $251 = ((($0)) + 20|0); + $252 = +HEAPF32[$251>>2]; + $253 = $250 + $252; + HEAPF32[$251>>2] = $253; + label = 58; + break L1; + } + $210 = ($14|0)==(0); + if (!($210)) { + $211 = $$sroa$9$0 * 0.05000000074505806; + $212 = +HEAPF32[4437]; + $213 = $211 + $212; + HEAPF32[4437] = $213; + label = 58; + break L1; + } + $214 = $$sroa$095$0 * 0.0099999997764825821; + $215 = +HEAPF32[4438]; + $216 = $215 - $214; + HEAPF32[4438] = $216; + $217 = $$sroa$9$0 * 0.0099999997764825821; + $218 = +HEAPF32[4439]; + $219 = $218 - $217; + HEAPF32[4439] = $219; + $220 = $219 > 1.483529806137085; + if ($220) { + HEAPF32[4439] = 1.483529806137085; + label = 58; + break L1; + } + $221 = $219 < -1.483529806137085; + if (!($221)) { + label = 58; + break L1; + } + HEAPF32[4439] = -1.483529806137085; + label = 58; + break L1; + break; + } + case 2: { + $254 = +HEAPF32[4438]; + $255 = $254 + 0.0099999997764825821; + HEAPF32[4438] = $255; + $256 = (+($8|0)); + $257 = $256 * 1.5; + $258 = +HEAPF32[4437]; + $259 = $258 - $257; + HEAPF32[4437] = $259; + $260 = $259 < 1.2000000476837158; + if (!($260)) { + label = 58; + break L1; + } + HEAPF32[4437] = 1.2000000476837158; + label = 58; + break L1; + break; + } + case 4: case 3: { + $264 = +HEAPF32[4438]; + $265 = (+Math_sin((+$264))); + $266 = HEAP32[$17>>2]|0; + $267 = (+($266>>>0)); + $268 = $265 * $267; + $269 = HEAP32[$2>>2]|0; + $270 = (+($269>>>0)); + $271 = $265 * $270; + $272 = $268 - $271; + $273 = (+Math_cos((+$264))); + $274 = HEAP32[$23>>2]|0; + $275 = (+($274>>>0)); + $276 = $273 * $275; + $277 = $272 - $276; + $278 = HEAP32[$20>>2]|0; + $279 = (+($278>>>0)); + $280 = $273 * $279; + $281 = $277 + $280; + $282 = $281 / 20.0; + $283 = +HEAPF32[$0>>2]; + $284 = $283 + $282; + HEAPF32[$0>>2] = $284; + $285 = +HEAPF32[4439]; + $286 = (+Math_sin((+$285))); + $287 = $270 * $286; + $288 = $267 * $286; + $289 = $287 - $288; + $290 = HEAP32[$26>>2]|0; + $291 = (+($290>>>0)); + $292 = $289 + $291; + $293 = HEAP32[$29>>2]|0; + $294 = (+($293>>>0)); + $295 = $292 - $294; + $296 = $295 / 20.0; + $297 = ((($0)) + 4|0); + $298 = +HEAPF32[$297>>2]; + $299 = $298 + $296; + HEAPF32[$297>>2] = $299; + $300 = $267 * $273; + $301 = $273 * $270; + $302 = $300 - $301; + $303 = $265 * $275; + $304 = $302 + $303; + $305 = $265 * $279; + $306 = $304 - $305; + $307 = $306 / 20.0; + $308 = ((($0)) + 8|0); + $309 = +HEAPF32[$308>>2]; + $310 = $307 + $309; + HEAPF32[$308>>2] = $310; + $311 = HEAP32[$2>>2]|0; + $312 = ($311|0)==(0); + if ($312) { + $261 = ((($2)) + 4|0); + $262 = HEAP32[$261>>2]|0; + $263 = ($262|0)==(0); + if ($263) { + $407 = ((($2)) + 8|0); + $408 = HEAP32[$407>>2]|0; + $409 = ($408|0)==(0); + if ($409) { + $410 = ((($2)) + 12|0); + $411 = HEAP32[$410>>2]|0; + $412 = ($411|0)==(0); + if ($412) { + $413 = ((($2)) + 16|0); + $414 = HEAP32[$413>>2]|0; + $415 = ($414|0)==(0); + if ($415) { + $416 = ((($2)) + 20|0); + $417 = HEAP32[$416>>2]|0; + $not$ = ($417|0)!=(0); + $$ = $not$&1; + $$0 = $$; + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + $313 = $$sroa$095$0 * 0.0030000000260770321; + $314 = +HEAPF32[4438]; + $315 = $314 - $313; + HEAPF32[4438] = $315; + $316 = $$sroa$9$0 * 0.0030000000260770321; + $317 = +HEAPF32[4439]; + $318 = $317 - $316; + HEAPF32[4439] = $318; + $319 = HEAP32[4440]|0; + $320 = ($319|0)==(4); + if ($320) { + $321 = $318 > 0.087266460061073303; + if ($321) { + $$sink26 = 0.087266460061073303; + label = 49; + } else { + $322 = $318 < -1.483529806137085; + if ($322) { + $$sink26 = -1.483529806137085; + label = 49; + } + } + if ((label|0) == 49) { + HEAPF32[4439] = $$sink26; + } + $323 = (+($8|0)); + $324 = $323 * 1.5; + $325 = +HEAPF32[4437]; + $326 = $325 - $324; + $327 = $326 < 1.2000000476837158; + $storemerge = $327 ? 1.2000000476837158 : $326; + HEAPF32[4437] = $storemerge; + $328 = +HEAPF32[$0>>2]; + $329 = +HEAPF32[4438]; + $330 = (+Math_cos((+$329))); + $331 = $330 * 0.40000000596046448; + $332 = $328 + $331; + $333 = (+Math_sin((+$329))); + $334 = $333 * 0.0; + $335 = $332 + $334; + $336 = ((($0)) + 12|0); + HEAPF32[$336>>2] = $335; + $337 = +HEAPF32[$297>>2]; + $338 = $337 + 0.0; + $339 = ((($0)) + 16|0); + HEAPF32[$339>>2] = $338; + $340 = +HEAPF32[$308>>2]; + $341 = $334 + $340; + $342 = $333 * 0.40000000596046448; + $343 = $341 - $342; + $$sink = $343;$$sink17 = $336; + } else { + $344 = $318 > 1.483529806137085; + if ($344) { + $$sink28 = 1.483529806137085; + label = 53; + } else { + $345 = $318 < -1.483529806137085; + if ($345) { + $$sink28 = -1.483529806137085; + label = 53; + } + } + if ((label|0) == 53) { + HEAPF32[4439] = $$sink28; + } + $346 = +HEAPF32[$0>>2]; + $347 = +HEAPF32[4438]; + $348 = (+Math_sin((+$347))); + $349 = $348 * 25.0; + $350 = $346 - $349; + $351 = ((($0)) + 12|0); + HEAPF32[$351>>2] = $350; + $352 = +HEAPF32[$297>>2]; + $353 = +HEAPF32[4439]; + $354 = (+Math_sin((+$353))); + $355 = $354 * 25.0; + $356 = $352 + $355; + $357 = ((($0)) + 16|0); + HEAPF32[$357>>2] = $356; + $358 = +HEAPF32[$308>>2]; + $359 = (+Math_cos((+$347))); + $360 = $359 * 25.0; + $361 = $358 - $360; + $362 = ((($0)) + 20|0); + HEAPF32[$362>>2] = $361; + $363 = ($$0|0)==(0); + if (!($363)) { + $364 = HEAP32[4441]|0; + $365 = (($364) + 1)|0; + HEAP32[4441] = $365; + } + $366 = +HEAPF32[18]; + $367 = HEAP32[4441]|0; + $368 = (+($367|0)); + $369 = $368 / 5.0; + $370 = (+Math_sin((+$369))); + $371 = $370 / 30.0; + $372 = $366 - $371; + HEAPF32[$297>>2] = $372; + $373 = $368 / 10.0; + $374 = (+Math_sin((+$373))); + $375 = $374 / 200.0; + $376 = ((($0)) + 24|0); + HEAPF32[$376>>2] = $375; + $377 = -$374; + $378 = $377 / 200.0; + $$sink = $378;$$sink17 = $376; + } + $379 = ((($$sink17)) + 8|0); + HEAPF32[$379>>2] = $$sink; + label = 58; + break L1; + break; + } + default: { + $380 = $$pr; + break L1; + } + } + } + } while(0); + if ((label|0) == 58) { + $$pr190 = HEAP32[4440]|0; + $380 = $$pr190; + } + switch ($380|0) { + case 1: case 2: case 4: { + break; + } + default: { + STACKTOP = sp;return; + } + } + $381 = +HEAPF32[4438]; + $382 = (+Math_sin((+$381))); + $383 = +HEAPF32[4437]; + $384 = $382 * $383; + $385 = +HEAPF32[4439]; + $386 = (+Math_cos((+$385))); + $387 = $384 * $386; + $388 = ((($0)) + 12|0); + $389 = +HEAPF32[$388>>2]; + $390 = $387 + $389; + HEAPF32[$0>>2] = $390; + $391 = !($385 <= 0.0); + $392 = (+Math_sin((+$385))); + $393 = +HEAPF32[4437]; + $394 = ((($0)) + 16|0); + $395 = +HEAPF32[$394>>2]; + $396 = $392 * $393; + $397 = $392 * $396; + $398 = -$397; + $$sink22$p = $391 ? $398 : $397; + $$sink22 = $395 + $$sink22$p; + $399 = ((($0)) + 4|0); + HEAPF32[$399>>2] = $$sink22; + $400 = (+Math_cos((+$381))); + $401 = $393 * $400; + $402 = $386 * $401; + $403 = ((($0)) + 20|0); + $404 = +HEAPF32[$403>>2]; + $405 = $404 + $402; + $406 = ((($0)) + 8|0); + HEAPF32[$406>>2] = $405; + STACKTOP = sp;return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 17224; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _GetMouseWheelMove() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4446]|0; + $1 = (($0|0) / 100)&-1; + return ($1|0); +} +function _IsMouseButtonDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetMouseButtonStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _IsKeyDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetKeyStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4445]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4444]|0; + return ($0|0); +} +function _HideCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4442] = 1; + return; +} +function _SetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = 17224; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + $11 = HEAP32[4443]|0; + $12 = +HEAPF32[$0>>2]; + $13 = $12; + $14 = ((($0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $15; + _glfwSetCursorPos(($11|0),(+$13),(+$16)); + return; +} +function _ShowCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4442] = 0; + return; +} +function _GetKeyStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4443]|0; + $2 = (_glfwGetKey(($1|0),($0|0))|0); + return ($2|0); +} +function _GetMouseButtonStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4443]|0; + $2 = (_glfwGetMouseButton(($1|0),($0|0))|0); + return ($2|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,4440,$vararg_buffer); + HEAP32[4447] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(5|0))|0); + (_emscripten_set_keypress_callback((4469|0),(0|0),1,(6|0))|0); + (_emscripten_set_click_callback((4469|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchstart_callback((4469|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchend_callback((4469|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchmove_callback((4469|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchcancel_callback((4469|0),(0|0),1,(8|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(9|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(9|0))|0); + $3 = HEAP32[4445]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[4306] = $5; + $6 = HEAP32[4444]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(17228)>>2] = $8; + $9 = HEAP32[4448]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[17264>>0]=HEAP8[8969>>0]|0;HEAP8[17264+1>>0]=HEAP8[8969+1>>0]|0;HEAP8[17264+2>>0]=HEAP8[8969+2>>0]|0;HEAP8[17264+3>>0]=HEAP8[8969+3>>0]|0;HEAP8[17264+4>>0]=HEAP8[8969+4>>0]|0;HEAP8[17264+5>>0]=HEAP8[8969+5>>0]|0;HEAP8[17264+6>>0]=HEAP8[8969+6>>0]|0; + break; + } + case 1: { + $3 = 17264; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=17264; src=8976; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 17264; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(17264,$1)|0); + $strlen = (_strlen(17264)|0); + $endptr = (17264 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(17264,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[4445] = $0; + HEAP32[4444] = $1; + _MatrixIdentity($2); + dest=17868; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((2|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,5111,$vararg_buffer); + } + $6 = HEAP32[4445]|0; + HEAP32[4483] = $6; + $7 = HEAP32[4444]|0; + HEAP32[4484] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[20608]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[20608]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[20608]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,5137,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[4485]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[4445]|0; + $48 = HEAP32[4444]|0; + $49 = HEAP32[4447]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[4443] = $50; + $51 = HEAP32[4445]|0; + HEAP32[4486] = $51; + $52 = HEAP32[4444]|0; + HEAP32[4487] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[4445]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[4444]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[4483] = $31; + HEAP32[4484] = $34; + } + } while(0); + $38 = HEAP32[4483]|0; + $39 = HEAP32[4484]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,5162,$vararg_buffer3); + $40 = HEAP32[4483]|0; + $41 = HEAP32[4484]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[4483]|0; + $43 = HEAP32[4484]|0; + $44 = HEAP32[4447]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[4443] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,5200,$vararg_buffer6); + } else { + _TraceLog(0,5233,$vararg_buffer8); + $55 = HEAP32[4486]|0; + $56 = HEAP32[4487]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,5273,$vararg_buffer10); + $57 = HEAP32[4445]|0; + $58 = HEAP32[4444]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,5294,$vararg_buffer14); + $59 = HEAP32[4488]|0; + $60 = HEAP32[4489]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,5315,$vararg_buffer18); + } + $61 = HEAP32[4443]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[4443]|0; + (_glfwSetCursorEnterCallback(($62|0),(3|0))|0); + $63 = HEAP32[4443]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[4443]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[4443]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[4443]|0; + (_glfwSetCharCallback(($66|0),(4|0))|0); + $67 = HEAP32[4443]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[4443]|0; + (_glfwSetWindowIconifyCallback(($68|0),(5|0))|0); + $69 = HEAP32[4443]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[20608]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[4445]|0; + $74 = HEAP32[4444]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4486]|0; + $76 = HEAP32[4488]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4487]|0; + $80 = HEAP32[4489]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,5340,$vararg_buffer22); + $73 = HEAP32[4445]|0; + $74 = HEAP32[4444]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4486]|0; + $76 = HEAP32[4488]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4487]|0; + $80 = HEAP32[4489]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(17836)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (112 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[17812>>2]=HEAP32[$1>>2]|0;HEAP32[17812+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[17812+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[17812+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[17812+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(17836)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(17840)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(17832)>>2] = $23; + $24 = HEAP32[4453]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4664,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(17816)>>2]|0; + $10 = HEAP32[(17836)>>2]|0; + $11 = HEAP32[(17840)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2160 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(17832)>>2] = $23; + $24 = HEAP32[4453]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4664,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[2157] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,4597,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,4528,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,4521)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 17240; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (17248); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (17796 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[2154] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,4477,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4448] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,5011,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[4461]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,4709,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[4462]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,4753,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[4463]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,4798,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[4464]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,4843,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[4465]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,4888,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[4461]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[4461]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[4461]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[4461]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[4462]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[4463]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[4463]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[4464]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[4464]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[4465]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[4465]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,4933,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[4466]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,11666,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,4962,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,5065,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,8931,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[4445]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[4444]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[4486] = $3; + HEAP32[4487] = $5; + HEAP32[4488] = 0; + HEAP32[4489] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,8865,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[4445]|0; + $36 = (+($35|0)); + $37 = HEAP32[4444]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[4486] = $45; + HEAP32[4487] = $37; + $46 = (($45) - ($35))|0; + HEAP32[4488] = $46; + $$sink1 = 0; + } else { + HEAP32[4486] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[4487] = $42; + HEAP32[4488] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[4489] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[4444]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,8722,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[4445]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[4444]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[4486] = $23; + HEAP32[4487] = $1; + $24 = (($0) - ($23))|0; + HEAP32[4488] = $24; + $$sink = 0; + } else { + HEAP32[4486] = $0; + $17 = HEAP32[4444]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[4487] = $20; + HEAP32[4488] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[4489] = $$sink; + $25 = HEAP32[4486]|0; + $26 = (+($25|0)); + $27 = HEAP32[4445]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=17868; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4486] = $0; + HEAP32[4487] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,8800,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[4445] = $1; + HEAP32[4444] = $2; + HEAP32[4486] = $1; + HEAP32[4487] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[765]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (20615 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[764] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (20609 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 17240; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[764] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[4859] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[4858] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,5363,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,5381,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,5399,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,5417,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,5435)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,5437,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,5472)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[4524] = 1; + $27 = (_eglGetProcAddress((5499|0))|0); + HEAP32[4525] = $27; + $28 = (_eglGetProcAddress((5520|0))|0); + HEAP32[4526] = $28; + $29 = (_eglGetProcAddress((5541|0))|0); + HEAP32[4527] = $29; + } + $30 = (_strcmp($24,5565)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[4466] = 1; + } + $32 = (_strcmp($24,5585)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,5617)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,5650)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[4461] = 1; + } + $39 = (_strcmp($24,5690)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,5726)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[4462] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,5759)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[4463] = 1; + } + $47 = (_strcmp($44,5784)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[4464] = 1; + } + $49 = (_strcmp($44,5817)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[4465] = 1; + } + $51 = (_strcmp($44,5853)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[4528] = 1; + _glGetFloatv(34047,(18116|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,5887)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[4530] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[4524]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,5990,$vararg_buffer15); + } else { + _TraceLog(0,5915,$vararg_buffer13); + } + $57 = HEAP32[4466]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,6126,$vararg_buffer19); + } else { + _TraceLog(0,6051,$vararg_buffer17); + } + $59 = HEAP32[4461]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,6218,$vararg_buffer21); + } + $61 = HEAP32[4462]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,6264,$vararg_buffer23); + } + $63 = HEAP32[4463]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,6311,$vararg_buffer25); + } + $65 = HEAP32[4464]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,6362,$vararg_buffer27); + } + $67 = HEAP32[4465]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,6409,$vararg_buffer29); + } + $69 = HEAP32[4528]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[4529]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,6456,$vararg_buffer31); + } + $73 = HEAP32[4530]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,6522,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[4531] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,6626,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,6575,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=18128; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18184; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[4560] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[4560]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[4561] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[4562] = 1; + $85 = HEAP32[4531]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[4563] = 4; + _MatrixIdentity($4); + dest=18256; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18320); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18384); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18448); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18512); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18576); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18640); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18704); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18768); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18832); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18896); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18960); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19024); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19088); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19152); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19216); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=17964; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=18028; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4490] = 18028; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[4820] = $0; + HEAP32[4821] = $1; + _TraceLog(0,6665,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4488]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[4489]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[4486]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[4487]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 17964; + label = 3; + break; + } + case 5888: { + $modelview$sink = 18028; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[4490] = $modelview$sink; + } + HEAP32[4523] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[4490]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4490]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(7241|0),489)|0; + _memcpy(($3|0),(7730|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,8219,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,8171,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(19300)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(19308)>>2] = $1; + HEAP32[(19304)>>2] = 0; + HEAP32[(19312)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(19308)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[4822] = 0; + HEAP32[(19296)>>2] = 0; + HEAP32[(19292)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(19348)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(19356)>>2] = $6; + HEAP32[(19352)>>2] = 0; + HEAP32[(19360)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(19356)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[4834] = 0; + HEAP32[(19344)>>2] = 0; + HEAP32[(19340)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(19396)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(19400)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(19404)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(19408)>>2] = $13; + $14 = HEAP32[(19396)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(19400)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(19404)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(19408)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[4846] = 0; + HEAP32[(19388)>>2] = 0; + HEAP32[(19392)>>2] = 0; + _TraceLog(0,6712,$vararg_buffer); + $20 = HEAP32[4524]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[4525]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(19316)); + $44 = HEAP32[4526]|0; + $45 = HEAP32[(19316)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((19320)|0)); + $46 = HEAP32[(19320)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(19300)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(18188)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(18188)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((19324)|0)); + $50 = HEAP32[(19324)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(19308)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(18208)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(18208)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[4524]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(19320)>>2]|0; + $58 = HEAP32[(19324)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,6850,$vararg_buffer3); + } else { + $56 = HEAP32[(19316)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,6785,$vararg_buffer1); + } + $59 = HEAP32[4524]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[4525]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(19364)); + $62 = HEAP32[4526]|0; + $63 = HEAP32[(19364)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((19368)|0)); + $64 = HEAP32[(19368)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(19348)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(18188)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(18188)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((19372)|0)); + $68 = HEAP32[(19372)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(19356)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(18208)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(18208)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[4524]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(19368)>>2]|0; + $76 = HEAP32[(19372)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,6996,$vararg_buffer10); + } else { + $74 = HEAP32[(19364)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,6927,$vararg_buffer7); + } + $77 = HEAP32[4524]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[4525]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(19412)); + $80 = HEAP32[4526]|0; + $81 = HEAP32[(19412)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((19416)|0)); + $82 = HEAP32[(19416)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(19396)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(18188)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(18188)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((19420)|0)); + $86 = HEAP32[(19420)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(19400)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(18192)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(18192)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((19424)|0)); + $90 = HEAP32[(19424)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(19404)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(18208)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(18208)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((19428)|0)); + $94 = HEAP32[(19428)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(19408)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[4524]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(19416)>>2]|0; + $100 = HEAP32[(19420)>>2]|0; + $101 = HEAP32[(19424)>>2]|0; + $102 = HEAP32[(19428)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,7142,$vararg_buffer17); + } else { + $98 = HEAP32[(19412)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,7077,$vararg_buffer14); + } + $103 = HEAP32[4524]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[4526]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,8475,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,8423,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,8472,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,8576,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,8525,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,8472,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(8267|0)); + _glBindAttribLocation(($20|0),1,(8282|0)); + _glBindAttribLocation(($20|0),2,(8313|0)); + _glBindAttribLocation(($20|0),3,(8340|0)); + _glBindAttribLocation(($20|0),4,(8326|0)); + _glBindAttribLocation(($20|0),5,(8297|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,8628,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,8472,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,8674,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(8267|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(8282|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(8297|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(8313|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(8326|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(8340|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(8352|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(8362|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(8373|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(8384|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(8396|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(8405|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(8414|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (20609 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (20612 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (20609 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (20612 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[4443]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,8986,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[17812>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[17812+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[17812+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[17812+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[17812+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(17840)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(18124|0)); + $0 = HEAP32[4531]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,9013,$vararg_buffer); + $1 = HEAP32[4561]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[4532]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4524]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4526]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((19320)|0)); + _glDeleteBuffers(1,((19324)|0)); + _glDeleteBuffers(1,((19368)|0)); + _glDeleteBuffers(1,((19372)|0)); + _glDeleteBuffers(1,((19416)|0)); + _glDeleteBuffers(1,((19420)|0)); + _glDeleteBuffers(1,((19424)|0)); + _glDeleteBuffers(1,((19428)|0)); + $3 = HEAP32[4524]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4527]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(19316)); + $6 = HEAP32[4527]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(19364)); + $7 = HEAP32[4527]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(19412)); + } + $8 = HEAP32[(19300)>>2]|0; + _free($8); + $9 = HEAP32[(19308)>>2]|0; + _free($9); + $10 = HEAP32[(19348)>>2]|0; + _free($10); + $11 = HEAP32[(19356)>>2]|0; + _free($11); + $12 = HEAP32[(19396)>>2]|0; + _free($12); + $13 = HEAP32[(19400)>>2]|0; + _free($13); + $14 = HEAP32[(19404)>>2]|0; + _free($14); + $15 = HEAP32[(19408)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,9078,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[2174] = $0; + $1 = +HEAPF64[2157]; + $2 = $0 - $1; + HEAPF64[2175] = $2; + HEAPF64[2157] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=17868; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(19440); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[4860] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(19444)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(19448)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(19452)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(19456)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(19460)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(19464)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(19468)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(19472)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(19476)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(19480)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(19484)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(19488)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(19492)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(19496)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(19500)>>2] = $31; + return (19440|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[4490]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[2174] = $0; + $1 = +HEAPF64[2157]; + $2 = $0 - $1; + HEAPF64[2176] = $2; + HEAPF64[2157] = $0; + $3 = +HEAPF64[2175]; + $4 = $2 + $3; + HEAPF64[2177] = $4; + $5 = +HEAPF64[2154]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[2174] = $10; + $11 = +HEAPF64[2157]; + $12 = $10 - $11; + HEAPF64[2157] = $10; + $13 = +HEAPF64[2177]; + $14 = $12 + $13; + HEAPF64[2177] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4443]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[764] = -1; + HEAP32[766] = -1; + HEAP32[4876] = 0; + $3 = HEAP32[4443]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[4306] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(17228)>>2] = $7; + _memcpy((21127|0),(20615|0),512)|0; + ;HEAP8[20612>>0]=HEAP8[20609>>0]|0;HEAP8[20612+1>>0]=HEAP8[20609+1>>0]|0;HEAP8[20612+2>>0]=HEAP8[20609+2>>0]|0; + $8 = HEAP32[4859]|0; + HEAP32[4446] = $8; + HEAP32[4859] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (21639 + ($$05160<<5)|0); + $scevgep67 = (21767 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((21767 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[766] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((19508 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[4876] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4822]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[4524]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[4526]|0; + $5 = HEAP32[(19316)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(19320)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[4822]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(19300)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(19324)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(19296)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(19308)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[4834]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[4524]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[4526]|0; + $19 = HEAP32[(19364)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(19368)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[4834]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(19348)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(19372)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(19344)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(19356)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[4846]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[4524]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[4526]|0; + $33 = HEAP32[(19412)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(19416)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[4846]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(19396)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(19420)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[4846]|0; + $40 = $39 << 3; + $41 = HEAP32[(19400)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(19424)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[4846]|0; + $44 = $43 << 2; + $45 = HEAP32[(19404)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[4524]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[4526]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=17964; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=18028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[4909]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[4822]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[4834]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[4846]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[4546]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=18028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=17964; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(18212)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(18216)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(18228)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[4822]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[4531]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[4524]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(19320)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(18188)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(18188)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(19324)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(18208)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(18208)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[4526]|0; + $25 = HEAP32[(19316)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[4822]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[4524]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[4834]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[4531]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[4524]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(19368)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(18188)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(18188)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(19372)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(18208)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(18208)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[4526]|0; + $41 = HEAP32[(19364)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[4834]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[4524]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[4846]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[4524]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(19416)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(18188)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(18188)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(19420)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(18192)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(18192)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(19424)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(18208)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(18208)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(19428)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[4526]|0; + $56 = HEAP32[(19412)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[4562]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[4561]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[4561]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[4562]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[4524]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[4524]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[4526]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[4562] = 1; + $5 = HEAP32[4531]|0; + $6 = HEAP32[4561]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[4822] = 0; + HEAP32[(19296)>>2] = 0; + HEAP32[4834] = 0; + HEAP32[(19344)>>2] = 0; + HEAP32[4846] = 0; + HEAP32[(19388)>>2] = 0; + HEAP32[(19392)>>2] = 0; + HEAPF32[767] = -1.0; + dest=17964; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18028; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[4820]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[4821]|0; + _rlViewport($7,0,$8,$9); + $10 = (19868 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (19740 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=18028; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=17964; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[4445]|0; + $3 = (+($2|0)); + $4 = HEAP32[4444]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(19440); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[4999]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,9128,$vararg_buffer); + } + $2 = HEAP32[4999]|0; + $3 = (18256 + ($2<<6)|0); + $4 = HEAP32[4490]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[4999]|0; + $6 = (($5) + 1)|0; + HEAP32[4999] = $6; + $7 = HEAP32[4523]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[5000] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4490]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4999]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[4999]|0; + $3 = (($2) + -1)|0; + $4 = (18256 + ($3<<6)|0); + $5 = HEAP32[4490]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[4999] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[2177]; + $1 = $0; + return (+$1); +} +function _IsFileExtension($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strrchr($0,46)|0); + $3 = ($2|0)==(0|0); + if ($3) { + return 0; + } else { + $4 = (_strcmp($2,$1)|0); + $5 = ($4|0)==(0); + $$ = $5&1; + return ($$|0); + } + return (0)|0; +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[4490]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[4490]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4563] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[5000]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[5001]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[4560]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[4490]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[5001]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[5000] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[4560]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[5001]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[5000] = 0; + } + HEAP32[5001] = 0; + } + $21 = HEAP32[4563]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[4822]|0; + $23 = HEAP32[(19296)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(19308)>>2]|0; + $28 = HEAP32[(19296)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(19308)>>2]|0; + $35 = HEAP32[(19296)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(19308)>>2]|0; + $43 = HEAP32[(19296)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(19308)>>2]|0; + $51 = HEAP32[(19296)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(19296)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(19296)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[4834]|0; + $62 = HEAP32[(19344)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(19356)>>2]|0; + $67 = HEAP32[(19344)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(19356)>>2]|0; + $74 = HEAP32[(19344)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(19356)>>2]|0; + $82 = HEAP32[(19344)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(19356)>>2]|0; + $90 = HEAP32[(19344)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(19344)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(19344)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[4846]|0; + $101 = HEAP32[(19392)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(19404)>>2]|0; + $106 = HEAP32[(19392)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(19404)>>2]|0; + $113 = HEAP32[(19392)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(19404)>>2]|0; + $121 = HEAP32[(19392)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(19404)>>2]|0; + $129 = HEAP32[(19392)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(19392)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(19392)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[4846]|0; + $140 = HEAP32[(19388)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(19400)>>2]|0; + $$promoted = HEAP32[(19388)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(19388)>>2] = $147; + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[5000]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4560]|0; + $6 = HEAP32[5001]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[5001] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[4563]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[4822]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(19300)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[4822] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,9166,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[4834]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(19348)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[4834] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,9191,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[4846]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(19396)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[4846] = $41; + $42 = HEAP32[4561]|0; + $43 = HEAP32[4562]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,9220,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[767]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlVertex2i($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+($0|0)); + $3 = (+($1|0)); + $4 = +HEAPF32[767]; + _rlVertex3f($2,$3,$4); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[4563]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(19400)>>2]|0; + $5 = HEAP32[(19388)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(19388)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[4563]|0; + switch ($4|0) { + case 1: { + $$sink37 = (19296);$$sink38 = (19308); + break; + } + case 4: { + $$sink37 = (19344);$$sink38 = (19356); + break; + } + case 7: { + $$sink37 = (19392);$$sink38 = (19404); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4561]|0; + $2 = HEAP32[4562]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[4562] = $10; + } + $11 = HEAP32[4562]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4846]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _rlDeleteVertexArrays($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = HEAP32[4524]|0; + $3 = ($2|0)==(0); + if ($3) { + STACKTOP = sp;return; + } + $4 = ($0|0)==(0); + if (!($4)) { + $5 = HEAP32[4527]|0; + FUNCTION_TABLE_vii[$5 & 63](1,$1); + } + $6 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(0,9245,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteBuffers($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _glDeleteBuffers(1,($1|0)); + $3 = HEAP32[4524]|0; + $4 = ($3|0)==(0); + if (!($4)) { + STACKTOP = sp;return; + } + $5 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $5; + _TraceLog(0,9293,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlglLoadMesh($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 20|0; + $4 = ((($0)) + 36|0); + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 44|0); + $7 = ((($0)) + 48|0); + $8 = ((($0)) + 52|0); + $9 = ((($0)) + 56|0); + $10 = ((($0)) + 60|0); + $11 = ((($0)) + 64|0); + $12 = ($1|0)!=(0); + $$ = $12 ? 35048 : 35044; + ;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;HEAP32[$4+28>>2]=0|0; + HEAP32[$2>>2] = 0; + ;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;HEAP32[$3+16>>2]=0|0;HEAP32[$3+20>>2]=0|0;HEAP32[$3+24>>2]=0|0; + $13 = HEAP32[4524]|0; + $14 = ($13|0)==(0); + if (!($14)) { + $15 = HEAP32[4525]|0; + FUNCTION_TABLE_vii[$15 & 63](1,$2); + $16 = HEAP32[4526]|0; + $17 = HEAP32[$2>>2]|0; + FUNCTION_TABLE_vi[$16 & 31]($17); + } + _glGenBuffers(1,($3|0)); + $18 = HEAP32[$3>>2]|0; + _glBindBuffer(34962,($18|0)); + $19 = HEAP32[$0>>2]|0; + $20 = ($19*12)|0; + $21 = ((($0)) + 8|0); + $22 = HEAP32[$21>>2]|0; + _glBufferData(34962,($20|0),($22|0),($$|0)); + _glVertexAttribPointer(0,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(0); + $23 = ((($3)) + 4|0); + _glGenBuffers(1,($23|0)); + $24 = HEAP32[$23>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[$0>>2]|0; + $26 = $25 << 3; + $27 = ((($0)) + 12|0); + $28 = HEAP32[$27>>2]|0; + _glBufferData(34962,($26|0),($28|0),($$|0)); + _glVertexAttribPointer(1,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(1); + $29 = ((($0)) + 20|0); + $30 = HEAP32[$29>>2]|0; + $31 = ($30|0)==(0|0); + if ($31) { + _glVertexAttrib3f(2,1.0,1.0,1.0); + _glDisableVertexAttribArray(2); + } else { + $32 = ((($3)) + 8|0); + _glGenBuffers(1,($32|0)); + $33 = HEAP32[$32>>2]|0; + _glBindBuffer(34962,($33|0)); + $34 = HEAP32[$0>>2]|0; + $35 = ($34*12)|0; + $36 = HEAP32[$29>>2]|0; + _glBufferData(34962,($35|0),($36|0),($$|0)); + _glVertexAttribPointer(2,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(2); + } + $37 = ((($0)) + 28|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==(0|0); + if ($39) { + _glVertexAttrib4f(3,1.0,1.0,1.0,1.0); + _glDisableVertexAttribArray(3); + } else { + $40 = ((($3)) + 12|0); + _glGenBuffers(1,($40|0)); + $41 = HEAP32[$40>>2]|0; + _glBindBuffer(34962,($41|0)); + $42 = HEAP32[$0>>2]|0; + $43 = $42 << 2; + $44 = HEAP32[$37>>2]|0; + _glBufferData(34962,($43|0),($44|0),($$|0)); + _glVertexAttribPointer(3,4,5121,1,0,(0|0)); + _glEnableVertexAttribArray(3); + } + $45 = ((($0)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(0|0); + if ($47) { + _glVertexAttrib3f(4,0.0,0.0,0.0); + _glDisableVertexAttribArray(4); + } else { + $48 = ((($3)) + 16|0); + _glGenBuffers(1,($48|0)); + $49 = HEAP32[$48>>2]|0; + _glBindBuffer(34962,($49|0)); + $50 = HEAP32[$0>>2]|0; + $51 = ($50*12)|0; + $52 = HEAP32[$45>>2]|0; + _glBufferData(34962,($51|0),($52|0),($$|0)); + _glVertexAttribPointer(4,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(4); + } + $53 = ((($0)) + 16|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==(0|0); + if ($55) { + _glVertexAttrib2f(5,0.0,0.0); + _glDisableVertexAttribArray(5); + } else { + $56 = ((($3)) + 20|0); + _glGenBuffers(1,($56|0)); + $57 = HEAP32[$56>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[$0>>2]|0; + $59 = $58 << 3; + $60 = HEAP32[$53>>2]|0; + _glBufferData(34962,($59|0),($60|0),($$|0)); + _glVertexAttribPointer(5,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(5); + } + $61 = ((($0)) + 32|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $64 = ((($3)) + 24|0); + _glGenBuffers(1,($64|0)); + $65 = HEAP32[$64>>2]|0; + _glBindBuffer(34963,($65|0)); + $66 = ((($0)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = ($67*6)|0; + $69 = HEAP32[$61>>2]|0; + _glBufferData(34963,($68|0),($69|0),35044); + } + $70 = HEAP32[$3>>2]|0; + HEAP32[$5>>2] = $70; + $71 = HEAP32[$23>>2]|0; + HEAP32[$6>>2] = $71; + $72 = ((($3)) + 8|0); + $73 = HEAP32[$72>>2]|0; + HEAP32[$7>>2] = $73; + $74 = ((($3)) + 12|0); + $75 = HEAP32[$74>>2]|0; + HEAP32[$8>>2] = $75; + $76 = ((($3)) + 16|0); + $77 = HEAP32[$76>>2]|0; + HEAP32[$9>>2] = $77; + $78 = ((($3)) + 20|0); + $79 = HEAP32[$78>>2]|0; + HEAP32[$10>>2] = $79; + $80 = ((($3)) + 24|0); + $81 = HEAP32[$80>>2]|0; + HEAP32[$11>>2] = $81; + $82 = HEAP32[4524]|0; + $83 = ($82|0)==(0); + if ($83) { + _TraceLog(0,9442,$vararg_buffer3); + STACKTOP = sp;return; + } + $84 = HEAP32[$2>>2]|0; + $85 = ($84|0)==(0); + if ($85) { + _TraceLog(2,9401,$vararg_buffer1); + STACKTOP = sp;return; + } else { + HEAP32[$4>>2] = $84; + HEAP32[$vararg_buffer>>2] = $84; + _TraceLog(0,9348,$vararg_buffer); + STACKTOP = sp;return; + } +} +function _rlglDrawMesh($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$020 = 0, $$byval_copy5 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; + var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0.0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; + var $17 = 0.0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0.0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $modelview$byval_copy4 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); + $$byval_copy5 = sp + 320|0; + $modelview$byval_copy4 = sp + 256|0; + $3 = sp + 192|0; + $4 = sp + 128|0; + $5 = sp + 64|0; + $6 = sp; + $7 = HEAP32[$1>>2]|0; + _glUseProgram(($7|0)); + $8 = ((($1)) + 32|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($1)) + 116|0); + $11 = HEAP8[$10>>0]|0; + $12 = (+($11&255)); + $13 = $12 / 255.0; + $14 = ((($1)) + 117|0); + $15 = HEAP8[$14>>0]|0; + $16 = (+($15&255)); + $17 = $16 / 255.0; + $18 = ((($1)) + 118|0); + $19 = HEAP8[$18>>0]|0; + $20 = (+($19&255)); + $21 = $20 / 255.0; + $22 = ((($1)) + 119|0); + $23 = HEAP8[$22>>0]|0; + $24 = (+($23&255)); + $25 = $24 / 255.0; + _glUniform4f(($9|0),(+$13),(+$17),(+$21),(+$25)); + $26 = ((($1)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = ($27|0)==(-1); + if (!($28)) { + $29 = ((($1)) + 120|0); + $30 = HEAP8[$29>>0]|0; + $31 = (+($30&255)); + $32 = $31 / 255.0; + $33 = ((($1)) + 121|0); + $34 = HEAP8[$33>>0]|0; + $35 = (+($34&255)); + $36 = $35 / 255.0; + $37 = ((($1)) + 122|0); + $38 = HEAP8[$37>>0]|0; + $39 = (+($38&255)); + $40 = $39 / 255.0; + $41 = ((($1)) + 123|0); + $42 = HEAP8[$41>>0]|0; + $43 = (+($42&255)); + $44 = $43 / 255.0; + _glUniform4f(($27|0),(+$32),(+$36),(+$40),(+$44)); + } + $45 = ((($1)) + 40|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(-1); + if (!($47)) { + $48 = ((($1)) + 124|0); + $49 = HEAP8[$48>>0]|0; + $50 = (+($49&255)); + $51 = $50 / 255.0; + $52 = ((($1)) + 125|0); + $53 = HEAP8[$52>>0]|0; + $54 = (+($53&255)); + $55 = $54 / 255.0; + $56 = ((($1)) + 126|0); + $57 = HEAP8[$56>>0]|0; + $58 = (+($57&255)); + $59 = $58 / 255.0; + $60 = ((($1)) + 127|0); + $61 = HEAP8[$60>>0]|0; + $62 = (+($61&255)); + $63 = $62 / 255.0; + _glUniform4f(($46|0),(+$51),(+$55),(+$59),(+$63)); + } + dest=$3; src=18028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$4; src=17964; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=18028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($5,$modelview$byval_copy4,$$byval_copy5); + $64 = HEAP32[$1>>2]|0; + $65 = HEAP32[4532]|0; + $66 = ($64|0)==($65|0); + if (!($66)) { + $67 = (_glGetUniformLocation(($64|0),(9490|0))|0); + $68 = ($67|0)==(-1); + if (!($68)) { + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($modelview$byval_copy4); + _MatrixInvert($modelview$byval_copy4); + dest=$$byval_copy5; src=$modelview$byval_copy4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $69 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($67|0),1,0,($69|0)); + } + $70 = HEAP32[$1>>2]|0; + $71 = (_glGetUniformLocation(($70|0),(9502|0))|0); + $72 = ($71|0)==(-1); + if (!($72)) { + $73 = ((($3)) + 8|0); + $74 = +HEAPF32[$73>>2]; + $75 = ((($3)) + 24|0); + $76 = +HEAPF32[$75>>2]; + $77 = ((($3)) + 40|0); + $78 = +HEAPF32[$77>>2]; + _glUniform3f(($71|0),(+$74),(+$76),(+$78)); + } + $79 = (_glGetUniformLocation(($70|0),(9510|0))|0); + $80 = ($79|0)==(-1); + if (!($80)) { + $81 = ((($1)) + 128|0); + $82 = +HEAPF32[$81>>2]; + _glUniform1f(($79|0),(+$82)); + } + } + _glActiveTexture(33984); + $83 = ((($1)) + 56|0); + $84 = HEAP32[$83>>2]|0; + _glBindTexture(3553,($84|0)); + $85 = ((($1)) + 44|0); + $86 = HEAP32[$85>>2]|0; + _glUniform1i(($86|0),0); + $87 = ((($1)) + 76|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0); + if (!($89)) { + $90 = ((($1)) + 48|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)==(-1); + if (!($92)) { + $93 = HEAP32[$1>>2]|0; + $94 = (_glGetUniformLocation(($93|0),(9521|0))|0); + _glUniform1i(($94|0),1); + _glActiveTexture(33985); + $95 = HEAP32[$87>>2]|0; + _glBindTexture(3553,($95|0)); + $96 = HEAP32[$90>>2]|0; + _glUniform1i(($96|0),1); + } + } + $97 = ((($1)) + 96|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0); + if (!($99)) { + $100 = ((($1)) + 52|0); + $101 = HEAP32[$100>>2]|0; + $102 = ($101|0)==(-1); + if (!($102)) { + $103 = HEAP32[$1>>2]|0; + $104 = (_glGetUniformLocation(($103|0),(9531|0))|0); + _glUniform1i(($104|0),1); + _glActiveTexture(33986); + $105 = HEAP32[$97>>2]|0; + _glBindTexture(3553,($105|0)); + $106 = HEAP32[$100>>2]|0; + _glUniform1i(($106|0),2); + } + } + $107 = HEAP32[4524]|0; + $108 = ($107|0)==(0); + if ($108) { + $112 = ((($0)) + 40|0); + $113 = HEAP32[$112>>2]|0; + _glBindBuffer(34962,($113|0)); + $114 = ((($1)) + 4|0); + $115 = HEAP32[$114>>2]|0; + _glVertexAttribPointer(($115|0),3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($115|0)); + $116 = ((($0)) + 44|0); + $117 = HEAP32[$116>>2]|0; + _glBindBuffer(34962,($117|0)); + $118 = ((($1)) + 8|0); + $119 = HEAP32[$118>>2]|0; + _glVertexAttribPointer(($119|0),2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($119|0)); + $120 = ((($1)) + 16|0); + $121 = HEAP32[$120>>2]|0; + $122 = ($121|0)==(-1); + if (!($122)) { + $123 = ((($0)) + 48|0); + $124 = HEAP32[$123>>2]|0; + _glBindBuffer(34962,($124|0)); + $125 = HEAP32[$120>>2]|0; + _glVertexAttribPointer(($125|0),3,5126,0,0,(0|0)); + $126 = HEAP32[$120>>2]|0; + _glEnableVertexAttribArray(($126|0)); + } + $127 = ((($1)) + 24|0); + $128 = HEAP32[$127>>2]|0; + $129 = ($128|0)==(-1); + do { + if (!($129)) { + $130 = ((($0)) + 52|0); + $131 = HEAP32[$130>>2]|0; + $132 = ($131|0)==(0); + if ($132) { + _glVertexAttrib4f(($128|0),1.0,1.0,1.0,1.0); + $135 = HEAP32[$127>>2]|0; + _glDisableVertexAttribArray(($135|0)); + break; + } else { + _glBindBuffer(34962,($131|0)); + $133 = HEAP32[$127>>2]|0; + _glVertexAttribPointer(($133|0),4,5121,1,0,(0|0)); + $134 = HEAP32[$127>>2]|0; + _glEnableVertexAttribArray(($134|0)); + break; + } + } + } while(0); + $136 = ((($1)) + 20|0); + $137 = HEAP32[$136>>2]|0; + $138 = ($137|0)==(-1); + if (!($138)) { + $139 = ((($0)) + 56|0); + $140 = HEAP32[$139>>2]|0; + _glBindBuffer(34962,($140|0)); + $141 = HEAP32[$136>>2]|0; + _glVertexAttribPointer(($141|0),3,5126,0,0,(0|0)); + $142 = HEAP32[$136>>2]|0; + _glEnableVertexAttribArray(($142|0)); + } + $143 = ((($1)) + 12|0); + $144 = HEAP32[$143>>2]|0; + $145 = ($144|0)==(-1); + if (!($145)) { + $146 = ((($0)) + 60|0); + $147 = HEAP32[$146>>2]|0; + _glBindBuffer(34962,($147|0)); + $148 = HEAP32[$143>>2]|0; + _glVertexAttribPointer(($148|0),2,5126,0,0,(0|0)); + $149 = HEAP32[$143>>2]|0; + _glEnableVertexAttribArray(($149|0)); + } + $150 = ((($0)) + 32|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==(0|0); + if (!($152)) { + $153 = HEAP32[(19428)>>2]|0; + _glBindBuffer(34963,($153|0)); + } + } else { + $109 = HEAP32[4526]|0; + $110 = ((($0)) + 36|0); + $111 = HEAP32[$110>>2]|0; + FUNCTION_TABLE_vi[$109 & 31]($111); + } + $154 = HEAP32[4909]|0; + $155 = ($154|0)!=(0); + $$ = $155 ? 2 : 1; + $156 = ((($1)) + 28|0); + $157 = ((($0)) + 32|0); + $158 = HEAP32[$0>>2]|0; + $159 = ((($0)) + 4|0); + $$020 = 0; + while(1) { + if ($155) { + dest=$modelview$byval_copy4; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$020,$modelview$byval_copy4,$$byval_copy5); + } else { + dest=18028; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + } + dest=$modelview$byval_copy4; src=18028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=17964; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($6,$modelview$byval_copy4,$$byval_copy5); + $162 = HEAP32[$156>>2]|0; + dest=$$byval_copy5; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $163 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($162|0),1,0,($163|0)); + $164 = HEAP32[$157>>2]|0; + $165 = ($164|0)==(0|0); + if ($165) { + _glDrawArrays(4,0,($158|0)); + } else { + $166 = HEAP32[$159>>2]|0; + $167 = ($166*3)|0; + _glDrawElements(4,($167|0),5123,(0|0)); + } + $168 = (($$020) + 1)|0; + $169 = ($168|0)<($$|0); + if ($169) { + $$020 = $168; + } else { + break; + } + } + $160 = HEAP32[$87>>2]|0; + $161 = ($160|0)==(0); + if (!($161)) { + _glActiveTexture(33985); + _glBindTexture(3553,0); + } + $170 = HEAP32[$97>>2]|0; + $171 = ($170|0)==(0); + if (!($171)) { + _glActiveTexture(33986); + _glBindTexture(3553,0); + } + _glActiveTexture(33984); + _glBindTexture(3553,0); + $172 = HEAP32[4524]|0; + $173 = ($172|0)==(0); + if (!($173)) { + $174 = HEAP32[4526]|0; + FUNCTION_TABLE_vi[$174 & 31](0); + _glUseProgram(0); + dest=17964; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18028; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34962,0); + $175 = ((($0)) + 32|0); + $176 = HEAP32[$175>>2]|0; + $177 = ($176|0)==(0|0); + if ($177) { + _glUseProgram(0); + dest=17964; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18028; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34963,0); + _glUseProgram(0); + dest=17964; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18028; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlglUnloadMesh($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 8|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if (!($3)) { + _free($2); + } + $4 = ((($0)) + 12|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + if (!($6)) { + _free($5); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==(0|0); + if (!($9)) { + _free($8); + } + $10 = ((($0)) + 28|0); + $11 = HEAP32[$10>>2]|0; + $12 = ($11|0)==(0|0); + if (!($12)) { + _free($11); + } + $13 = ((($0)) + 24|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)==(0|0); + if (!($15)) { + _free($14); + } + $16 = ((($0)) + 16|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==(0|0); + if (!($18)) { + _free($17); + } + $19 = ((($0)) + 32|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0|0); + if (!($21)) { + _free($20); + } + $22 = ((($0)) + 40|0); + $23 = HEAP32[$22>>2]|0; + _rlDeleteBuffers($23); + $24 = ((($0)) + 44|0); + $25 = HEAP32[$24>>2]|0; + _rlDeleteBuffers($25); + $26 = ((($0)) + 48|0); + $27 = HEAP32[$26>>2]|0; + _rlDeleteBuffers($27); + $28 = ((($0)) + 52|0); + $29 = HEAP32[$28>>2]|0; + _rlDeleteBuffers($29); + $30 = ((($0)) + 56|0); + $31 = HEAP32[$30>>2]|0; + _rlDeleteBuffers($31); + $32 = ((($0)) + 60|0); + $33 = HEAP32[$32>>2]|0; + _rlDeleteBuffers($33); + $34 = ((($0)) + 64|0); + $35 = HEAP32[$34>>2]|0; + _rlDeleteBuffers($35); + $36 = ((($0)) + 36|0); + $37 = HEAP32[$36>>2]|0; + _rlDeleteVertexArrays($37); + return; +} +function _GetDefaultTexture($0) { + $0 = $0|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4531]|0; + HEAP32[$0>>2] = $1; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$5$0$$sroa_idx4>>2] = 1; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx6>>2] = 1; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$7$0$$sroa_idx8>>2] = 7; + return; +} +function _GetDefaultShader($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=$0; src=18128; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _DrawRectangle($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy2 = sp + 32|0; + $$byval_copy1 = sp + 24|0; + $$byval_copy = sp + 16|0; + $5 = sp + 8|0; + $6 = sp; + $7 = (+($0|0)); + HEAPF32[$5>>2] = $7; + $8 = ((($5)) + 4|0); + $9 = (+($1|0)); + HEAPF32[$8>>2] = $9; + $10 = (+($2|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($3|0)); + HEAPF32[$11>>2] = $12; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangleV($$byval_copy,$$byval_copy1,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawRectangleV($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0; + var $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0, $64 = 0.0, $65 = 0.0; + var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $3 = sp; + $4 = (_rlGetVersion()|0); + $5 = ($4|0)==(1); + if ($5) { + _rlBegin(4); + $6 = HEAP8[$2>>0]|0; + $7 = ((($2)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ((($2)) + 2|0); + $10 = HEAP8[$9>>0]|0; + $11 = ((($2)) + 3|0); + $12 = HEAP8[$11>>0]|0; + _rlColor4ub($6,$8,$10,$12); + $13 = +HEAPF32[$0>>2]; + $14 = (~~(($13))); + $15 = ((($0)) + 4|0); + $16 = +HEAPF32[$15>>2]; + $17 = (~~(($16))); + _rlVertex2i($14,$17); + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = $16 + $19; + $21 = (~~(($20))); + _rlVertex2i($14,$21); + $22 = +HEAPF32[$0>>2]; + $23 = +HEAPF32[$1>>2]; + $24 = $22 + $23; + $25 = (~~(($24))); + $26 = +HEAPF32[$15>>2]; + $27 = +HEAPF32[$18>>2]; + $28 = $26 + $27; + $29 = (~~(($28))); + _rlVertex2i($25,$29); + $30 = +HEAPF32[$0>>2]; + $31 = (~~(($30))); + $32 = +HEAPF32[$15>>2]; + $33 = (~~(($32))); + _rlVertex2i($31,$33); + $34 = +HEAPF32[$1>>2]; + $35 = $30 + $34; + $36 = (~~(($35))); + $37 = +HEAPF32[$18>>2]; + $38 = $32 + $37; + $39 = (~~(($38))); + _rlVertex2i($36,$39); + $40 = +HEAPF32[$0>>2]; + $41 = +HEAPF32[$1>>2]; + $42 = $40 + $41; + $43 = (~~(($42))); + $44 = +HEAPF32[$15>>2]; + $45 = (~~(($44))); + _rlVertex2i($43,$45); + _rlEnd(); + STACKTOP = sp;return; + } + $46 = (_rlGetVersion()|0); + $47 = ($46|0)==(2); + if (!($47)) { + $48 = (_rlGetVersion()|0); + $49 = ($48|0)==(3); + if (!($49)) { + $50 = (_rlGetVersion()|0); + $51 = ($50|0)==(4); + if (!($51)) { + STACKTOP = sp;return; + } + } + } + _GetDefaultTexture($3); + $52 = HEAP32[$3>>2]|0; + _rlEnableTexture($52); + _rlBegin(7); + $53 = HEAP8[$2>>0]|0; + $54 = ((($2)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = ((($2)) + 2|0); + $57 = HEAP8[$56>>0]|0; + $58 = ((($2)) + 3|0); + $59 = HEAP8[$58>>0]|0; + _rlColor4ub($53,$55,$57,$59); + _rlTexCoord2f(0.0,0.0); + $60 = +HEAPF32[$0>>2]; + $61 = ((($0)) + 4|0); + $62 = +HEAPF32[$61>>2]; + _rlVertex2f($60,$62); + _rlTexCoord2f(0.0,1.0); + $63 = ((($1)) + 4|0); + $64 = +HEAPF32[$63>>2]; + $65 = $62 + $64; + _rlVertex2f($60,$65); + _rlTexCoord2f(1.0,1.0); + $66 = +HEAPF32[$0>>2]; + $67 = +HEAPF32[$1>>2]; + $68 = $66 + $67; + $69 = +HEAPF32[$61>>2]; + $70 = +HEAPF32[$63>>2]; + $71 = $69 + $70; + _rlVertex2f($68,$71); + _rlTexCoord2f(1.0,0.0); + $72 = +HEAPF32[$0>>2]; + $73 = +HEAPF32[$1>>2]; + $74 = $72 + $73; + $75 = +HEAPF32[$61>>2]; + _rlVertex2f($74,$75); + _rlEnd(); + _rlDisableTexture(); + STACKTOP = sp;return; +} +function _DrawRectangleLines($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy3 = sp; + $5 = (_rlGetVersion()|0); + $6 = ($5|0)==(1); + if ($6) { + _rlBegin(1); + $7 = HEAP8[$4>>0]|0; + $8 = ((($4)) + 1|0); + $9 = HEAP8[$8>>0]|0; + $10 = ((($4)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = ((($4)) + 3|0); + $13 = HEAP8[$12>>0]|0; + _rlColor4ub($7,$9,$11,$13); + $14 = (($0) + 1)|0; + $15 = (($1) + 1)|0; + _rlVertex2i($14,$15); + $16 = (($2) + ($0))|0; + _rlVertex2i($16,$15); + _rlVertex2i($16,$15); + $17 = (($3) + ($1))|0; + _rlVertex2i($16,$17); + _rlVertex2i($16,$17); + _rlVertex2i($14,$17); + _rlVertex2i($14,$17); + _rlVertex2i($14,$15); + _rlEnd(); + STACKTOP = sp;return; + } + $18 = (_rlGetVersion()|0); + $19 = ($18|0)==(2); + if (!($19)) { + $20 = (_rlGetVersion()|0); + $21 = ($20|0)==(3); + if (!($21)) { + $22 = (_rlGetVersion()|0); + $23 = ($22|0)==(4); + if (!($23)) { + STACKTOP = sp;return; + } + } + } + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($0,$1,$2,1,$$byval_copy3); + $24 = (($0) + -1)|0; + $25 = (($24) + ($2))|0; + $26 = (($1) + 1)|0; + $27 = (($3) + -2)|0; + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($25,$26,1,$27,$$byval_copy3); + $28 = (($1) + -1)|0; + $29 = (($28) + ($3))|0; + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($0,$29,$2,1,$$byval_copy3); + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($0,$26,1,$27,$$byval_copy3); + STACKTOP = sp;return; +} +function _stbi__err($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[5002] = $0; + return; +} +function _stbi_load_from_file($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $5 = sp; + _stbi__start_file($5,$0); + $6 = (_stbi__load_and_postprocess_8bit($5,$1,$2,$3,$4)|0); + $7 = ($6|0)==(0|0); + if ($7) { + STACKTOP = sp;return ($6|0); + } + $8 = ((($5)) + 172|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($5)) + 168|0); + $11 = HEAP32[$10>>2]|0; + $12 = (($11) - ($9))|0; + (_fseek($0,$12,1)|0); + STACKTOP = sp;return ($6|0); +} +function _stbi__start_file($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + _stbi__start_callbacks($0,3184,$1); + return; +} +function _stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$070 = 0, $$07175 = 0, $$07276 = 0, $$07378 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond79 = 0, $exitcond80 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $5 = sp; + $6 = (_stbi__load_main($0,$1,$2,$3,$4,$5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $8 = HEAP32[$5>>2]|0; + switch ($8|0) { + case 8: { + $$070 = $6; + break; + } + case 16: { + label = 4; + break; + } + default: { + ___assert_fail((9543|0),(9569|0),1041,(9592|0)); + // unreachable; + } + } + if ((label|0) == 4) { + $9 = HEAP32[$1>>2]|0; + $10 = HEAP32[$2>>2]|0; + $11 = ($4|0)==(0); + if ($11) { + $12 = HEAP32[$3>>2]|0; + $13 = $12; + } else { + $13 = $4; + } + $14 = (_stbi__convert_16_to_8($6,$9,$10,$13)|0); + HEAP32[$5>>2] = 8; + $$070 = $14; + } + $15 = HEAP32[5003]|0; + $16 = ($15|0)==(0); + if ($16) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $17 = HEAP32[$1>>2]|0; + $18 = HEAP32[$2>>2]|0; + $19 = ($4|0)==(0); + if ($19) { + $20 = HEAP32[$3>>2]|0; + $25 = $20; + } else { + $25 = $4; + } + $21 = $18 >> 1; + $22 = ($21|0)>(0); + if (!($22)) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $23 = ($17|0)>(0); + $24 = ($25|0)>(0); + $26 = (($18) + -1)|0; + $$07378 = 0; + while(1) { + if ($23) { + $27 = Math_imul($$07378, $17)|0; + $28 = (($26) - ($$07378))|0; + $29 = Math_imul($28, $17)|0; + $$07276 = 0; + while(1) { + if ($24) { + $30 = (($$07276) + ($27))|0; + $31 = Math_imul($30, $25)|0; + $32 = (($$07276) + ($29))|0; + $33 = Math_imul($32, $25)|0; + $$07175 = 0; + while(1) { + $34 = (($$07175) + ($31))|0; + $35 = (($$070) + ($34)|0); + $36 = HEAP8[$35>>0]|0; + $37 = (($$07175) + ($33))|0; + $38 = (($$070) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + HEAP8[$35>>0] = $39; + HEAP8[$38>>0] = $36; + $40 = (($$07175) + 1)|0; + $exitcond = ($40|0)==($25|0); + if ($exitcond) { + break; + } else { + $$07175 = $40; + } + } + } + $41 = (($$07276) + 1)|0; + $exitcond79 = ($41|0)==($17|0); + if ($exitcond79) { + break; + } else { + $$07276 = $41; + } + } + } + $42 = (($$07378) + 1)|0; + $exitcond80 = ($42|0)==($21|0); + if ($exitcond80) { + $$0 = $$070; + break; + } else { + $$07378 = $42; + } + } + STACKTOP = sp;return ($$0|0); +} +function _stbi__load_main($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$0 = 0, $10 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAP32[$5>>2] = 8; + $6 = ((($5)) + 8|0); + HEAP32[$6>>2] = 0; + $7 = ((($5)) + 4|0); + HEAP32[$7>>2] = 0; + $8 = (_stbi__png_test($0)|0); + $9 = ($8|0)==(0); + if ($9) { + _stbi__err(9633); + $$0 = 0; + return ($$0|0); + } else { + $10 = (_stbi__png_load($0,$1,$2,$3,$4,$5)|0); + $$0 = $10; + return ($$0|0); + } + return (0)|0; +} +function _stbi__convert_16_to_8($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$0 = 0, $$01819 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = Math_imul($4, $3)|0; + $6 = (_stbi__malloc($5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + _stbi__err(9624); + $$0 = 0; + return ($$0|0); + } + $8 = ($5|0)>(0); + if ($8) { + $$01819 = 0; + while(1) { + $9 = (($0) + ($$01819<<1)|0); + $10 = HEAP16[$9>>1]|0; + $11 = ($10&65535) >>> 8; + $12 = $11&255; + $13 = (($6) + ($$01819)|0); + HEAP8[$13>>0] = $12; + $14 = (($$01819) + 1)|0; + $exitcond = ($14|0)==($5|0); + if ($exitcond) { + break; + } else { + $$01819 = $14; + } + } + } + _free($0); + $$0 = $6; + return ($$0|0); +} +function _stbi__malloc($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_malloc($0)|0); + return ($1|0); +} +function _stbi__png_test($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__check_png_header($0)|0); + _stbi__rewind($0); + return ($1|0); +} +function _stbi__png_load($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $6 = sp; + HEAP32[$6>>2] = $0; + $7 = (_stbi__do_png($6,$1,$2,$3,$4,$5)|0); + STACKTOP = sp;return ($7|0); +} +function _stbi__do_png($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$0 = 0, $$045 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4>>>0)>(4); + if ($6) { + _stbi__err(9652); + $$045 = 0; + return ($$045|0); + } + $7 = (_stbi__parse_png_file($0,0,$4)|0); + $8 = ($7|0)==(0); + if ($8) { + $$2 = 0; + } else { + $9 = ((($0)) + 16|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(8); + $$ = $11 ? $10 : 8; + HEAP32[$5>>2] = $$; + $12 = ((($0)) + 12|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[$12>>2] = 0; + $14 = ($4|0)==(0); + if ($14) { + $$1 = $13; + } else { + $15 = HEAP32[$0>>2]|0; + $16 = ((($15)) + 12|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==($4|0); + if ($18) { + $$1 = $13; + } else { + $19 = HEAP32[$5>>2]|0; + $20 = ($19|0)==(8); + $21 = ((($15)) + 4|0); + $22 = HEAP32[$21>>2]|0; + $23 = HEAP32[$15>>2]|0; + if ($20) { + $24 = (_stbi__convert_format($13,$17,$4,$23,$22)|0); + $$0 = $24; + } else { + $25 = (_stbi__convert_format16($13,$17,$4,$23,$22)|0); + $$0 = $25; + } + $26 = HEAP32[$0>>2]|0; + $27 = ((($26)) + 12|0); + HEAP32[$27>>2] = $4; + $28 = ($$0|0)==(0|0); + if ($28) { + $$045 = 0; + return ($$045|0); + } else { + $$1 = $$0; + } + } + } + $29 = HEAP32[$0>>2]|0; + $30 = HEAP32[$29>>2]|0; + HEAP32[$1>>2] = $30; + $31 = ((($29)) + 4|0); + $32 = HEAP32[$31>>2]|0; + HEAP32[$2>>2] = $32; + $33 = ($3|0)==(0|0); + if ($33) { + $$2 = $$1; + } else { + $34 = ((($29)) + 8|0); + $35 = HEAP32[$34>>2]|0; + HEAP32[$3>>2] = $35; + $$2 = $$1; + } + } + $36 = ((($0)) + 12|0); + $37 = HEAP32[$36>>2]|0; + _free($37); + HEAP32[$36>>2] = 0; + $38 = ((($0)) + 8|0); + $39 = HEAP32[$38>>2]|0; + _free($39); + HEAP32[$38>>2] = 0; + $40 = ((($0)) + 4|0); + $41 = HEAP32[$40>>2]|0; + _free($41); + HEAP32[$40>>2] = 0; + $$045 = $$2; + return ($$045|0); +} +function _stbi__parse_png_file($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0217 = 0, $$0206 = 0, $$0211 = 0, $$0214 = 0, $$0217 = 0, $$0226593 = 0, $$0228 = 0, $$0231 = 0, $$0235 = 0, $$0239591 = 0, $$0241 = 0, $$0245 = 0, $$1207 = 0, $$1212 = 0, $$1215 = 0, $$1218 = 0, $$1227588 = 0, $$1229 = 0, $$1240589 = 0; + var $$1246 = 0, $$2219 = 0, $$2233 = 0, $$2237 = 0, $$2243 = 0, $$254 = 0, $$3209 = 0, $$3220 = 0, $$4 = 0, $$6$ph = 0, $$7 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; + var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; + var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; + var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0; + var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0; + var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0; + var $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond248 = 0, $or$cond5$not = 0, $or$cond7 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $3 = sp + 32|0; + $4 = sp + 22|0; + $5 = sp + 16|0; + $6 = sp + 8|0; + $7 = sp; + $8 = HEAP32[$0>>2]|0; + $9 = ((($0)) + 8|0); + HEAP32[$9>>2] = 0; + $10 = ((($0)) + 4|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 12|0); + HEAP32[$11>>2] = 0; + $12 = (_stbi__check_png_header($8)|0); + $13 = ($12|0)==(0); + if ($13) { + $$7 = 0; + STACKTOP = sp;return ($$7|0); + } + $14 = ($1|0)==(1); + if ($14) { + $$7 = 1; + STACKTOP = sp;return ($$7|0); + } + $15 = ((($6)) + 4|0); + $16 = ((($8)) + 4|0); + $17 = ((($0)) + 16|0); + $18 = ((($8)) + 8|0); + $19 = ($1|0)==(2); + $20 = ((($8)) + 8|0); + $21 = ((($8)) + 8|0); + $22 = ((($0)) + 16|0); + $23 = ($1|0)==(2); + $24 = ($1|0)==(2); + $$0206 = 0;$$0211 = 0;$$0214 = 0;$$0217 = 0;$$0228 = 0;$$0231 = 0;$$0235 = 0;$$0241 = 1;$$0245 = 0; + L7: while(1) { + _stbi__get_chunk_header($6,$8); + $25 = HEAP32[$15>>2]|0; + $switch$split2D = ($25|0)<(1229472850); + L9: do { + if ($switch$split2D) { + $switch$split52D = ($25|0)<(1229209940); + if ($switch$split52D) { + switch ($25|0) { + case 1130840649: { + break; + } + default: { + label = 103; + break L9; + } + } + $26 = HEAP32[$6>>2]|0; + _stbi__skip($8,$26); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = 1;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + $switch$split112D = ($25|0)<(1229278788); + if (!($switch$split112D)) { + switch ($25|0) { + case 1229278788: { + label = 85; + break L7; + break; + } + default: { + label = 103; + break L9; + } + } + } + switch ($25|0) { + case 1229209940: { + break; + } + default: { + label = 103; + break L9; + } + } + $130 = ($$0241|0)==(0); + if (!($130)) { + label = 70; + break L7; + } + $131 = ($$0206<<24>>24)==(0); + $132 = ($$0245|0)!=(0); + $or$cond = $132 | $131; + if (!($or$cond)) { + label = 72; + break L7; + } + if ($24) { + label = 74; + break L7; + } + $135 = HEAP32[$6>>2]|0; + $136 = (($135) + ($$0214))|0; + $137 = ($136|0)<($$0214|0); + if ($137) { + $$6$ph = 0; + break L7; + } + $138 = ($136>>>0)>($$0217>>>0); + if ($138) { + $139 = ($$0217|0)==(0); + $140 = ($135>>>0)>(4096); + $141 = $140 ? $135 : 4096; + $$$0217 = $139 ? $141 : $$0217; + $142 = HEAP32[$6>>2]|0; + $143 = (($142) + ($$0214))|0; + $$1218 = $$$0217; + while(1) { + $144 = ($143>>>0)>($$1218>>>0); + $145 = $$1218 << 1; + if ($144) { + $$1218 = $145; + } else { + break; + } + } + $146 = HEAP32[$10>>2]|0; + $147 = (_realloc($146,$$1218)|0); + $148 = ($147|0)==(0|0); + if ($148) { + label = 81; + break L7; + } + HEAP32[$10>>2] = $147; + $$2219 = $$1218; + } else { + $$2219 = $$0217; + } + $149 = HEAP32[$10>>2]|0; + $150 = (($149) + ($$0214)|0); + $151 = HEAP32[$6>>2]|0; + $152 = (_stbi__getn($8,$150,$151)|0); + $153 = ($152|0)==(0); + if ($153) { + label = 83; + break L7; + } + $154 = HEAP32[$6>>2]|0; + $155 = (($154) + ($$0214))|0; + $$1212 = $$0211;$$1215 = $155;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$2219; + } else { + $switch$split82D = ($25|0)<(1347179589); + if ($switch$split82D) { + switch ($25|0) { + case 1229472850: { + break; + } + default: { + label = 103; + break L9; + } + } + $27 = ($$0241|0)==(0); + if ($27) { + label = 7; + break L7; + } + $28 = HEAP32[$6>>2]|0; + $29 = ($28|0)==(13); + if (!($29)) { + label = 9; + break L7; + } + $30 = (_stbi__get32be($8)|0); + HEAP32[$8>>2] = $30; + $31 = ($30>>>0)>(16777216); + if ($31) { + label = 11; + break L7; + } + $32 = (_stbi__get32be($8)|0); + HEAP32[$16>>2] = $32; + $33 = ($32>>>0)>(16777216); + if ($33) { + label = 13; + break L7; + } + $34 = (_stbi__get8($8)|0); + $35 = $34&255; + HEAP32[$17>>2] = $35; + switch ($34<<24>>24) { + case 16: case 8: case 4: case 2: case 1: { + break; + } + default: { + label = 15; + break L7; + } + } + $36 = (_stbi__get8($8)|0); + $37 = $36&255; + $38 = ($36&255)>(6); + if ($38) { + label = 17; + break L7; + } + $39 = ($36<<24>>24)==(3); + if ($39) { + $40 = HEAP32[$17>>2]|0; + $41 = ($40|0)==(16); + if ($41) { + label = 20; + break L7; + } else { + $$1207 = 3; + } + } else { + $42 = $37 & 1; + $43 = ($42|0)==(0); + if ($43) { + $$1207 = $$0206; + } else { + label = 22; + break L7; + } + } + $44 = (_stbi__get8($8)|0); + $45 = ($44<<24>>24)==(0); + if (!($45)) { + label = 24; + break L7; + } + $46 = (_stbi__get8($8)|0); + $47 = ($46<<24>>24)==(0); + if (!($47)) { + label = 26; + break L7; + } + $48 = (_stbi__get8($8)|0); + $49 = $48&255; + $50 = ($48&255)>(1); + if ($50) { + label = 28; + break L7; + } + $51 = HEAP32[$8>>2]|0; + $52 = ($51|0)==(0); + if ($52) { + label = 31; + break L7; + } + $53 = HEAP32[$16>>2]|0; + $54 = ($53|0)==(0); + if ($54) { + label = 31; + break L7; + } + $55 = ($$1207<<24>>24)==(0); + $56 = (1073741824 / ($51>>>0))&-1; + if (!($55)) { + HEAP32[$20>>2] = 1; + $63 = $56 >>> 2; + $64 = ($63>>>0)<($53>>>0); + if ($64) { + label = 37; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = $$1207;$$3220 = $$0217; + break; + } + } + $57 = $37 & 2; + $58 = $57 | 1; + $59 = $37 >>> 2; + $$lobit = $59 & 1; + $60 = (($58) + ($$lobit))|0; + HEAP32[$18>>2] = $60; + $61 = (($56>>>0) / ($60>>>0))&-1; + $62 = ($61>>>0)<($53>>>0); + if ($62) { + label = 34; + break L7; + } + if ($19) { + $$6$ph = 1; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + } + $switch$split142D = ($25|0)<(1951551059); + if ($switch$split142D) { + switch ($25|0) { + case 1347179589: { + break; + } + default: { + label = 103; + break L9; + } + } + $65 = ($$0241|0)==(0); + if (!($65)) { + label = 39; + break L7; + } + $66 = HEAP32[$6>>2]|0; + $67 = ($66>>>0)>(768); + if ($67) { + label = 41; + break L7; + } + $68 = (($66>>>0) / 3)&-1; + $69 = ($68*3)|0; + $70 = ($69|0)==($66|0); + if (!($70)) { + label = 44; + break L7; + } + $71 = ($66>>>0)>(2); + if ($71) { + $$0226593 = 0; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + break; + } + while(1) { + $72 = (_stbi__get8($8)|0); + $73 = $$0226593 << 2; + $74 = (($3) + ($73)|0); + HEAP8[$74>>0] = $72; + $75 = (_stbi__get8($8)|0); + $76 = $73 | 1; + $77 = (($3) + ($76)|0); + HEAP8[$77>>0] = $75; + $78 = (_stbi__get8($8)|0); + $79 = $73 | 2; + $80 = (($3) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = $73 | 3; + $82 = (($3) + ($81)|0); + HEAP8[$82>>0] = -1; + $83 = (($$0226593) + 1)|0; + $84 = ($83>>>0)<($68>>>0); + if ($84) { + $$0226593 = $83; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break L9; + } + } + } + switch ($25|0) { + case 1951551059: { + break; + } + default: { + label = 103; + break L9; + } + } + $85 = ($$0241|0)==(0); + if (!($85)) { + label = 47; + break L7; + } + $86 = HEAP32[$10>>2]|0; + $87 = ($86|0)==(0|0); + if (!($87)) { + label = 49; + break L7; + } + $88 = ($$0206<<24>>24)==(0); + if (!($88)) { + if ($23) { + label = 52; + break L7; + } + $90 = ($$0245|0)==(0); + if ($90) { + label = 54; + break L7; + } + $91 = HEAP32[$6>>2]|0; + $92 = ($91>>>0)>($$0245>>>0); + if ($92) { + label = 58; + break L7; + } + $93 = HEAP32[$6>>2]|0; + $94 = ($93|0)==(0); + if ($94) { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 4;$$3220 = $$0217; + break; + } + $95 = HEAP32[$6>>2]|0; + $$1227588 = 0; + while(1) { + $96 = (_stbi__get8($8)|0); + $97 = $$1227588 << 2; + $98 = $97 | 3; + $99 = (($3) + ($98)|0); + HEAP8[$99>>0] = $96; + $100 = (($$1227588) + 1)|0; + $101 = ($100>>>0)<($95>>>0); + if ($101) { + $$1227588 = $100; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = 4;$$3220 = $$0217; + break L9; + } + } + } + $102 = HEAP32[$21>>2]|0; + $103 = $102 & 1; + $104 = ($103|0)==(0); + if ($104) { + label = 61; + break L7; + } + $105 = HEAP32[$6>>2]|0; + $106 = $102 << 1; + $107 = ($105|0)==($106|0); + if (!($107)) { + label = 63; + break L7; + } + $108 = HEAP32[$22>>2]|0; + $109 = ($108|0)==(16); + $110 = HEAP32[$21>>2]|0; + $111 = ($110|0)>(0); + if ($109) { + if ($111) { + $$0239591 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $112 = (_stbi__get16be($8)|0); + $113 = $112&65535; + $114 = (($5) + ($$0239591<<1)|0); + HEAP16[$114>>1] = $113; + $115 = (($$0239591) + 1)|0; + $116 = HEAP32[$21>>2]|0; + $117 = ($115|0)<($116|0); + if ($117) { + $$0239591 = $115; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } else { + if ($111) { + $$1240589 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $118 = (_stbi__get16be($8)|0); + $119 = $118 & 255; + $120 = HEAP32[$22>>2]|0; + $121 = (9968 + ($120)|0); + $122 = HEAP8[$121>>0]|0; + $123 = $122&255; + $124 = Math_imul($123, $119)|0; + $125 = $124&255; + $126 = (($4) + ($$1240589)|0); + HEAP8[$126>>0] = $125; + $127 = (($$1240589) + 1)|0; + $128 = HEAP32[$21>>2]|0; + $129 = ($127|0)<($128|0); + if ($129) { + $$1240589 = $127; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } + } + } while(0); + if ((label|0) == 103) { + label = 0; + $202 = ($$0241|0)==(0); + if (!($202)) { + label = 104; + break; + } + $203 = $25 & 536870912; + $204 = ($203|0)==(0); + if ($204) { + label = 106; + break; + } + $213 = HEAP32[$6>>2]|0; + _stbi__skip($8,$213); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + } + (_stbi__get32be($8)|0); + $$0206 = $$3209;$$0211 = $$1212;$$0214 = $$1215;$$0217 = $$3220;$$0228 = $$1229;$$0231 = $$2233;$$0235 = $$2237;$$0241 = $$2243;$$0245 = $$1246; + } + switch (label|0) { + case 7: { + _stbi__err(9742); + $$6$ph = 0; + break; + } + case 9: { + _stbi__err(9756); + $$6$ph = 0; + break; + } + case 11: { + _stbi__err(9769); + $$6$ph = 0; + break; + } + case 13: { + _stbi__err(9769); + $$6$ph = 0; + break; + } + case 15: { + _stbi__err(9779); + $$6$ph = 0; + break; + } + case 17: { + _stbi__err(9799); + $$6$ph = 0; + break; + } + case 20: { + _stbi__err(9799); + $$6$ph = 0; + break; + } + case 22: { + _stbi__err(9799); + $$6$ph = 0; + break; + } + case 24: { + _stbi__err(9809); + $$6$ph = 0; + break; + } + case 26: { + _stbi__err(9825); + $$6$ph = 0; + break; + } + case 28: { + _stbi__err(9843); + $$6$ph = 0; + break; + } + case 31: { + _stbi__err(9864); + $$6$ph = 0; + break; + } + case 34: { + _stbi__err(9769); + $$6$ph = 0; + break; + } + case 37: { + _stbi__err(9769); + $$6$ph = 0; + break; + } + case 39: { + _stbi__err(9878); + $$6$ph = 0; + break; + } + case 41: { + _stbi__err(9893); + $$6$ph = 0; + break; + } + case 44: { + _stbi__err(9893); + $$6$ph = 0; + break; + } + case 47: { + _stbi__err(9878); + $$6$ph = 0; + break; + } + case 49: { + _stbi__err(9906); + $$6$ph = 0; + break; + } + case 52: { + $89 = ((($8)) + 8|0); + HEAP32[$89>>2] = 4; + $$6$ph = 1; + break; + } + case 54: { + _stbi__err(9922); + $$6$ph = 0; + break; + } + case 58: { + _stbi__err(9939); + $$6$ph = 0; + break; + } + case 61: { + _stbi__err(9952); + $$6$ph = 0; + break; + } + case 63: { + _stbi__err(9939); + $$6$ph = 0; + break; + } + case 70: { + _stbi__err(9878); + $$6$ph = 0; + break; + } + case 72: { + _stbi__err(9977); + $$6$ph = 0; + break; + } + case 74: { + $133 = $$0206&255; + $134 = ((($8)) + 8|0); + HEAP32[$134>>2] = $133; + $$6$ph = 1; + break; + } + case 81: { + _stbi__err(9624); + $$6$ph = 0; + break; + } + case 83: { + _stbi__err(9985); + $$6$ph = 0; + break; + } + case 85: { + $156 = ($$0241|0)==(0); + do { + if ($156) { + $157 = ($1|0)==(0); + if ($157) { + $158 = HEAP32[$10>>2]|0; + $159 = ($158|0)==(0|0); + if ($159) { + _stbi__err(9995); + $$4 = 0; + break; + } + $160 = HEAP32[$8>>2]|0; + $161 = ((($0)) + 16|0); + $162 = HEAP32[$161>>2]|0; + $163 = Math_imul($162, $160)|0; + $164 = (($163) + 7)|0; + $165 = $164 >>> 3; + $166 = ((($8)) + 4|0); + $167 = HEAP32[$166>>2]|0; + $168 = ((($8)) + 8|0); + $169 = HEAP32[$168>>2]|0; + $170 = Math_imul($169, $167)|0; + $171 = Math_imul($170, $165)|0; + $172 = (($171) + ($167))|0; + HEAP32[$7>>2] = $172; + $173 = ($$0228|0)!=(0); + $174 = $173 ^ 1; + $175 = $174&1; + $176 = (_stbi_zlib_decode_malloc_guesssize_headerflag($158,$$0214,$172,$7,$175)|0); + HEAP32[$9>>2] = $176; + $177 = ($176|0)==(0|0); + if ($177) { + $$4 = 0; + } else { + $178 = HEAP32[$10>>2]|0; + _free($178); + HEAP32[$10>>2] = 0; + $179 = HEAP32[$168>>2]|0; + $180 = (($179) + 1)|0; + $notlhs = ($180|0)!=($2|0); + $notrhs = ($2|0)==(3); + $or$cond5$not = $notrhs | $notlhs; + $181 = ($$0206<<24>>24)!=(0); + $or$cond7 = $181 | $or$cond5$not; + $182 = ($$0211<<24>>24)==(0); + $or$cond248 = $182 & $or$cond7; + $$254 = $or$cond248 ? $179 : $180; + $183 = ((($8)) + 12|0); + HEAP32[$183>>2] = $$254; + $184 = HEAP32[$9>>2]|0; + $185 = HEAP32[$7>>2]|0; + $186 = HEAP32[$161>>2]|0; + $187 = (_stbi__create_png_image($0,$184,$185,$$254,$186,$$0231,$$0235)|0); + $188 = ($187|0)==(0); + if ($188) { + $$4 = 0; + } else { + do { + if (!($182)) { + $189 = HEAP32[$161>>2]|0; + $190 = ($189|0)==(16); + if ($190) { + $191 = HEAP32[$183>>2]|0; + _stbi__compute_transparency16($0,$5,$191); + break; + } else { + $192 = HEAP32[$183>>2]|0; + _stbi__compute_transparency($0,$4,$192); + break; + } + } + } while(0); + $193 = HEAP32[5004]|0; + $194 = ($193|0)!=(0); + $or$cond11 = $173 & $194; + if ($or$cond11) { + $195 = HEAP32[$183>>2]|0; + $196 = ($195|0)>(2); + if ($196) { + _stbi__de_iphone($0); + } + } + if ($181) { + $197 = $$0206&255; + HEAP32[$168>>2] = $197; + $198 = ($2|0)>(2); + $$ = $198 ? $2 : $197; + HEAP32[$183>>2] = $$; + $199 = (_stbi__expand_png_palette($0,$3,$$)|0); + $200 = ($199|0)==(0); + if ($200) { + $$4 = 0; + break; + } + } + $201 = HEAP32[$9>>2]|0; + _free($201); + HEAP32[$9>>2] = 0; + $$4 = 1; + } + } + } else { + $$4 = 1; + } + } else { + _stbi__err(9878); + $$4 = 0; + } + } while(0); + $$6$ph = $$4; + break; + } + case 104: { + _stbi__err(9878); + $$6$ph = 0; + break; + } + case 106: { + $205 = $25 >>> 24; + $206 = $205&255; + HEAP8[10003] = $206; + $207 = HEAP32[$15>>2]|0; + $208 = $207 >>> 16; + $209 = $208&255; + HEAP8[(10004)>>0] = $209; + $210 = $207 >>> 8; + $211 = $210&255; + HEAP8[(10005)>>0] = $211; + $212 = $207&255; + HEAP8[(10006)>>0] = $212; + _stbi__err(10003); + $$6$ph = 0; + break; + } + } + $$7 = $$6$ph; + STACKTOP = sp;return ($$7|0); +} +function _stbi__convert_format($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9665|0),(9569|0),1477,(9721|0)); + // unreachable; + } + $7 = (_stbi__malloc_mad3($2,$3,$4)|0); + $8 = ($7|0)==(0|0); + if ($8) { + _free($0); + _stbi__err(9624); + $$0163 = 0; + return ($$0163|0); + } + $9 = ($4|0)>(0); + L11: do { + if ($9) { + $10 = $1 << 3; + $11 = (($10) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $12 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $13 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $14 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $15 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $16 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $17 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $18 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $19 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $20 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $21 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $22 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $23 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $24 = Math_imul($$0164259, $3)|0; + $25 = Math_imul($24, $1)|0; + $26 = (($0) + ($25)|0); + $27 = Math_imul($24, $2)|0; + $28 = (($7) + ($27)|0); + do { + switch ($11|0) { + case 10: { + if ($12) { + $$0151255 = $26;$$0165257 = $$0165254;$$0256 = $28; + while(1) { + $29 = HEAP8[$$0151255>>0]|0; + HEAP8[$$0256>>0] = $29; + $30 = ((($$0256)) + 1|0); + HEAP8[$30>>0] = -1; + $31 = ((($$0151255)) + 1|0); + $32 = ((($$0256)) + 2|0); + $$0165 = (($$0165257) + -1)|0; + $33 = ($$0165|0)>(-1); + if ($33) { + $$0151255 = $31;$$0165257 = $$0165;$$0256 = $32; + } else { + break; + } + } + } + break; + } + case 11: { + if ($13) { + $$1152250 = $26;$$1166252 = $$1166249;$$1251 = $28; + while(1) { + $34 = HEAP8[$$1152250>>0]|0; + $35 = ((($$1251)) + 2|0); + HEAP8[$35>>0] = $34; + $36 = ((($$1251)) + 1|0); + HEAP8[$36>>0] = $34; + HEAP8[$$1251>>0] = $34; + $37 = ((($$1152250)) + 1|0); + $38 = ((($$1251)) + 3|0); + $$1166 = (($$1166252) + -1)|0; + $39 = ($$1166|0)>(-1); + if ($39) { + $$1152250 = $37;$$1166252 = $$1166;$$1251 = $38; + } else { + break; + } + } + } + break; + } + case 12: { + if ($14) { + $$2153245 = $26;$$2167247 = $$2167244;$$2246 = $28; + while(1) { + $40 = HEAP8[$$2153245>>0]|0; + $41 = ((($$2246)) + 2|0); + HEAP8[$41>>0] = $40; + $42 = ((($$2246)) + 1|0); + HEAP8[$42>>0] = $40; + HEAP8[$$2246>>0] = $40; + $43 = ((($$2246)) + 3|0); + HEAP8[$43>>0] = -1; + $44 = ((($$2153245)) + 1|0); + $45 = ((($$2246)) + 4|0); + $$2167 = (($$2167247) + -1)|0; + $46 = ($$2167|0)>(-1); + if ($46) { + $$2153245 = $44;$$2167247 = $$2167;$$2246 = $45; + } else { + break; + } + } + } + break; + } + case 17: { + if ($15) { + $$3154240 = $26;$$3168242 = $$3168239;$$3241 = $28; + while(1) { + $47 = HEAP8[$$3154240>>0]|0; + HEAP8[$$3241>>0] = $47; + $48 = ((($$3154240)) + 2|0); + $49 = ((($$3241)) + 1|0); + $$3168 = (($$3168242) + -1)|0; + $50 = ($$3168|0)>(-1); + if ($50) { + $$3154240 = $48;$$3168242 = $$3168;$$3241 = $49; + } else { + break; + } + } + } + break; + } + case 19: { + if ($16) { + $$4155235 = $26;$$4169237 = $$4169234;$$4236 = $28; + while(1) { + $51 = HEAP8[$$4155235>>0]|0; + $52 = ((($$4236)) + 2|0); + HEAP8[$52>>0] = $51; + $53 = ((($$4236)) + 1|0); + HEAP8[$53>>0] = $51; + HEAP8[$$4236>>0] = $51; + $54 = ((($$4155235)) + 2|0); + $55 = ((($$4236)) + 3|0); + $$4169 = (($$4169237) + -1)|0; + $56 = ($$4169|0)>(-1); + if ($56) { + $$4155235 = $54;$$4169237 = $$4169;$$4236 = $55; + } else { + break; + } + } + } + break; + } + case 20: { + if ($17) { + $$5156230 = $26;$$5170232 = $$5170229;$$5231 = $28; + while(1) { + $57 = HEAP8[$$5156230>>0]|0; + $58 = ((($$5231)) + 2|0); + HEAP8[$58>>0] = $57; + $59 = ((($$5231)) + 1|0); + HEAP8[$59>>0] = $57; + HEAP8[$$5231>>0] = $57; + $60 = ((($$5156230)) + 1|0); + $61 = HEAP8[$60>>0]|0; + $62 = ((($$5231)) + 3|0); + HEAP8[$62>>0] = $61; + $63 = ((($$5156230)) + 2|0); + $64 = ((($$5231)) + 4|0); + $$5170 = (($$5170232) + -1)|0; + $65 = ($$5170|0)>(-1); + if ($65) { + $$5156230 = $63;$$5170232 = $$5170;$$5231 = $64; + } else { + break; + } + } + } + break; + } + case 28: { + if ($18) { + $$6157225 = $26;$$6171227 = $$6171224;$$6226 = $28; + while(1) { + $66 = HEAP8[$$6157225>>0]|0; + HEAP8[$$6226>>0] = $66; + $67 = ((($$6157225)) + 1|0); + $68 = HEAP8[$67>>0]|0; + $69 = ((($$6226)) + 1|0); + HEAP8[$69>>0] = $68; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP8[$70>>0]|0; + $72 = ((($$6226)) + 2|0); + HEAP8[$72>>0] = $71; + $73 = ((($$6226)) + 3|0); + HEAP8[$73>>0] = -1; + $74 = ((($$6157225)) + 3|0); + $75 = ((($$6226)) + 4|0); + $$6171 = (($$6171227) + -1)|0; + $76 = ($$6171|0)>(-1); + if ($76) { + $$6157225 = $74;$$6171227 = $$6171;$$6226 = $75; + } else { + break; + } + } + } + break; + } + case 25: { + if ($19) { + $$7158220 = $26;$$7172222 = $$7172219;$$7221 = $28; + while(1) { + $77 = HEAP8[$$7158220>>0]|0; + $78 = $77&255; + $79 = ((($$7158220)) + 1|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP8[$82>>0]|0; + $84 = $83&255; + $85 = (_stbi__compute_y($78,$81,$84)|0); + HEAP8[$$7221>>0] = $85; + $86 = ((($$7158220)) + 3|0); + $87 = ((($$7221)) + 1|0); + $$7172 = (($$7172222) + -1)|0; + $88 = ($$7172|0)>(-1); + if ($88) { + $$7158220 = $86;$$7172222 = $$7172;$$7221 = $87; + } else { + break; + } + } + } + break; + } + case 26: { + if ($20) { + $$8159215 = $26;$$8173217 = $$8173214;$$8216 = $28; + while(1) { + $89 = HEAP8[$$8159215>>0]|0; + $90 = $89&255; + $91 = ((($$8159215)) + 1|0); + $92 = HEAP8[$91>>0]|0; + $93 = $92&255; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP8[$94>>0]|0; + $96 = $95&255; + $97 = (_stbi__compute_y($90,$93,$96)|0); + HEAP8[$$8216>>0] = $97; + $98 = ((($$8216)) + 1|0); + HEAP8[$98>>0] = -1; + $99 = ((($$8159215)) + 3|0); + $100 = ((($$8216)) + 2|0); + $$8173 = (($$8173217) + -1)|0; + $101 = ($$8173|0)>(-1); + if ($101) { + $$8159215 = $99;$$8173217 = $$8173;$$8216 = $100; + } else { + break; + } + } + } + break; + } + case 33: { + if ($21) { + $$9160210 = $26;$$9174212 = $$9174209;$$9211 = $28; + while(1) { + $102 = HEAP8[$$9160210>>0]|0; + $103 = $102&255; + $104 = ((($$9160210)) + 1|0); + $105 = HEAP8[$104>>0]|0; + $106 = $105&255; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP8[$107>>0]|0; + $109 = $108&255; + $110 = (_stbi__compute_y($103,$106,$109)|0); + HEAP8[$$9211>>0] = $110; + $111 = ((($$9160210)) + 4|0); + $112 = ((($$9211)) + 1|0); + $$9174 = (($$9174212) + -1)|0; + $113 = ($$9174|0)>(-1); + if ($113) { + $$9160210 = $111;$$9174212 = $$9174;$$9211 = $112; + } else { + break; + } + } + } + break; + } + case 34: { + if ($22) { + $$10161205 = $26;$$10175207 = $$10175204;$$10206 = $28; + while(1) { + $114 = HEAP8[$$10161205>>0]|0; + $115 = $114&255; + $116 = ((($$10161205)) + 1|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP8[$119>>0]|0; + $121 = $120&255; + $122 = (_stbi__compute_y($115,$118,$121)|0); + HEAP8[$$10206>>0] = $122; + $123 = ((($$10161205)) + 3|0); + $124 = HEAP8[$123>>0]|0; + $125 = ((($$10206)) + 1|0); + HEAP8[$125>>0] = $124; + $126 = ((($$10161205)) + 4|0); + $127 = ((($$10206)) + 2|0); + $$10175 = (($$10175207) + -1)|0; + $128 = ($$10175|0)>(-1); + if ($128) { + $$10161205 = $126;$$10175207 = $$10175;$$10206 = $127; + } else { + break; + } + } + } + break; + } + case 35: { + if ($23) { + $$11162201 = $26;$$11176203 = $$11176200;$$11202 = $28; + while(1) { + $129 = HEAP8[$$11162201>>0]|0; + HEAP8[$$11202>>0] = $129; + $130 = ((($$11162201)) + 1|0); + $131 = HEAP8[$130>>0]|0; + $132 = ((($$11202)) + 1|0); + HEAP8[$132>>0] = $131; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP8[$133>>0]|0; + $135 = ((($$11202)) + 2|0); + HEAP8[$135>>0] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = ((($$11202)) + 3|0); + $$11176 = (($$11176203) + -1)|0; + $138 = ($$11176|0)>(-1); + if ($138) { + $$11162201 = $136;$$11176203 = $$11176;$$11202 = $137; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $139 = (($$0164259) + 1)|0; + $140 = ($139|0)<($4|0); + if ($140) { + $$0164259 = $139; + } else { + break L11; + } + } + ___assert_fail((9719|0),(9569|0),1506,(9721|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $7; + return ($$0163|0); +} +function _stbi__convert_format16($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9665|0),(9569|0),1526,(9696|0)); + // unreachable; + } + $7 = $2 << 1; + $8 = Math_imul($7, $3)|0; + $9 = Math_imul($8, $4)|0; + $10 = (_stbi__malloc($9)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _free($0); + _stbi__err(9624); + $$0163 = 0; + return ($$0163|0); + } + $12 = ($4|0)>(0); + L11: do { + if ($12) { + $13 = $1 << 3; + $14 = (($13) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $15 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $16 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $17 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $18 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $19 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $20 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $21 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $22 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $23 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $24 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $25 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $26 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $27 = Math_imul($$0164259, $3)|0; + $28 = Math_imul($27, $1)|0; + $29 = (($0) + ($28<<1)|0); + $30 = Math_imul($27, $2)|0; + $31 = (($10) + ($30<<1)|0); + do { + switch ($14|0) { + case 10: { + if ($15) { + $$0151255 = $29;$$0165257 = $$0165254;$$0256 = $31; + while(1) { + $32 = HEAP16[$$0151255>>1]|0; + HEAP16[$$0256>>1] = $32; + $33 = ((($$0256)) + 2|0); + HEAP16[$33>>1] = -1; + $34 = ((($$0151255)) + 2|0); + $35 = ((($$0256)) + 4|0); + $$0165 = (($$0165257) + -1)|0; + $36 = ($$0165|0)>(-1); + if ($36) { + $$0151255 = $34;$$0165257 = $$0165;$$0256 = $35; + } else { + break; + } + } + } + break; + } + case 11: { + if ($16) { + $$1152250 = $29;$$1166252 = $$1166249;$$1251 = $31; + while(1) { + $37 = HEAP16[$$1152250>>1]|0; + $38 = ((($$1251)) + 4|0); + HEAP16[$38>>1] = $37; + $39 = ((($$1251)) + 2|0); + HEAP16[$39>>1] = $37; + HEAP16[$$1251>>1] = $37; + $40 = ((($$1152250)) + 2|0); + $41 = ((($$1251)) + 6|0); + $$1166 = (($$1166252) + -1)|0; + $42 = ($$1166|0)>(-1); + if ($42) { + $$1152250 = $40;$$1166252 = $$1166;$$1251 = $41; + } else { + break; + } + } + } + break; + } + case 12: { + if ($17) { + $$2153245 = $29;$$2167247 = $$2167244;$$2246 = $31; + while(1) { + $43 = HEAP16[$$2153245>>1]|0; + $44 = ((($$2246)) + 4|0); + HEAP16[$44>>1] = $43; + $45 = ((($$2246)) + 2|0); + HEAP16[$45>>1] = $43; + HEAP16[$$2246>>1] = $43; + $46 = ((($$2246)) + 6|0); + HEAP16[$46>>1] = -1; + $47 = ((($$2153245)) + 2|0); + $48 = ((($$2246)) + 8|0); + $$2167 = (($$2167247) + -1)|0; + $49 = ($$2167|0)>(-1); + if ($49) { + $$2153245 = $47;$$2167247 = $$2167;$$2246 = $48; + } else { + break; + } + } + } + break; + } + case 17: { + if ($18) { + $$3154240 = $29;$$3168242 = $$3168239;$$3241 = $31; + while(1) { + $50 = HEAP16[$$3154240>>1]|0; + HEAP16[$$3241>>1] = $50; + $51 = ((($$3154240)) + 4|0); + $52 = ((($$3241)) + 2|0); + $$3168 = (($$3168242) + -1)|0; + $53 = ($$3168|0)>(-1); + if ($53) { + $$3154240 = $51;$$3168242 = $$3168;$$3241 = $52; + } else { + break; + } + } + } + break; + } + case 19: { + if ($19) { + $$4155235 = $29;$$4169237 = $$4169234;$$4236 = $31; + while(1) { + $54 = HEAP16[$$4155235>>1]|0; + $55 = ((($$4236)) + 4|0); + HEAP16[$55>>1] = $54; + $56 = ((($$4236)) + 2|0); + HEAP16[$56>>1] = $54; + HEAP16[$$4236>>1] = $54; + $57 = ((($$4155235)) + 4|0); + $58 = ((($$4236)) + 6|0); + $$4169 = (($$4169237) + -1)|0; + $59 = ($$4169|0)>(-1); + if ($59) { + $$4155235 = $57;$$4169237 = $$4169;$$4236 = $58; + } else { + break; + } + } + } + break; + } + case 20: { + if ($20) { + $$5156230 = $29;$$5170232 = $$5170229;$$5231 = $31; + while(1) { + $60 = HEAP16[$$5156230>>1]|0; + $61 = ((($$5231)) + 4|0); + HEAP16[$61>>1] = $60; + $62 = ((($$5231)) + 2|0); + HEAP16[$62>>1] = $60; + HEAP16[$$5231>>1] = $60; + $63 = ((($$5156230)) + 2|0); + $64 = HEAP16[$63>>1]|0; + $65 = ((($$5231)) + 6|0); + HEAP16[$65>>1] = $64; + $66 = ((($$5156230)) + 4|0); + $67 = ((($$5231)) + 8|0); + $$5170 = (($$5170232) + -1)|0; + $68 = ($$5170|0)>(-1); + if ($68) { + $$5156230 = $66;$$5170232 = $$5170;$$5231 = $67; + } else { + break; + } + } + } + break; + } + case 28: { + if ($21) { + $$6157225 = $29;$$6171227 = $$6171224;$$6226 = $31; + while(1) { + $69 = HEAP16[$$6157225>>1]|0; + HEAP16[$$6226>>1] = $69; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP16[$70>>1]|0; + $72 = ((($$6226)) + 2|0); + HEAP16[$72>>1] = $71; + $73 = ((($$6157225)) + 4|0); + $74 = HEAP16[$73>>1]|0; + $75 = ((($$6226)) + 4|0); + HEAP16[$75>>1] = $74; + $76 = ((($$6226)) + 6|0); + HEAP16[$76>>1] = -1; + $77 = ((($$6157225)) + 6|0); + $78 = ((($$6226)) + 8|0); + $$6171 = (($$6171227) + -1)|0; + $79 = ($$6171|0)>(-1); + if ($79) { + $$6157225 = $77;$$6171227 = $$6171;$$6226 = $78; + } else { + break; + } + } + } + break; + } + case 25: { + if ($22) { + $$7158220 = $29;$$7172222 = $$7172219;$$7221 = $31; + while(1) { + $80 = HEAP16[$$7158220>>1]|0; + $81 = $80&65535; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP16[$82>>1]|0; + $84 = $83&65535; + $85 = ((($$7158220)) + 4|0); + $86 = HEAP16[$85>>1]|0; + $87 = $86&65535; + $88 = (_stbi__compute_y_16($81,$84,$87)|0); + HEAP16[$$7221>>1] = $88; + $89 = ((($$7158220)) + 6|0); + $90 = ((($$7221)) + 2|0); + $$7172 = (($$7172222) + -1)|0; + $91 = ($$7172|0)>(-1); + if ($91) { + $$7158220 = $89;$$7172222 = $$7172;$$7221 = $90; + } else { + break; + } + } + } + break; + } + case 26: { + if ($23) { + $$8159215 = $29;$$8173217 = $$8173214;$$8216 = $31; + while(1) { + $92 = HEAP16[$$8159215>>1]|0; + $93 = $92&65535; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP16[$94>>1]|0; + $96 = $95&65535; + $97 = ((($$8159215)) + 4|0); + $98 = HEAP16[$97>>1]|0; + $99 = $98&65535; + $100 = (_stbi__compute_y_16($93,$96,$99)|0); + HEAP16[$$8216>>1] = $100; + $101 = ((($$8216)) + 2|0); + HEAP16[$101>>1] = -1; + $102 = ((($$8159215)) + 6|0); + $103 = ((($$8216)) + 4|0); + $$8173 = (($$8173217) + -1)|0; + $104 = ($$8173|0)>(-1); + if ($104) { + $$8159215 = $102;$$8173217 = $$8173;$$8216 = $103; + } else { + break; + } + } + } + break; + } + case 33: { + if ($24) { + $$9160210 = $29;$$9174212 = $$9174209;$$9211 = $31; + while(1) { + $105 = HEAP16[$$9160210>>1]|0; + $106 = $105&65535; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP16[$107>>1]|0; + $109 = $108&65535; + $110 = ((($$9160210)) + 4|0); + $111 = HEAP16[$110>>1]|0; + $112 = $111&65535; + $113 = (_stbi__compute_y_16($106,$109,$112)|0); + HEAP16[$$9211>>1] = $113; + $114 = ((($$9160210)) + 8|0); + $115 = ((($$9211)) + 2|0); + $$9174 = (($$9174212) + -1)|0; + $116 = ($$9174|0)>(-1); + if ($116) { + $$9160210 = $114;$$9174212 = $$9174;$$9211 = $115; + } else { + break; + } + } + } + break; + } + case 34: { + if ($25) { + $$10161205 = $29;$$10175207 = $$10175204;$$10206 = $31; + while(1) { + $117 = HEAP16[$$10161205>>1]|0; + $118 = $117&65535; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP16[$119>>1]|0; + $121 = $120&65535; + $122 = ((($$10161205)) + 4|0); + $123 = HEAP16[$122>>1]|0; + $124 = $123&65535; + $125 = (_stbi__compute_y_16($118,$121,$124)|0); + HEAP16[$$10206>>1] = $125; + $126 = ((($$10161205)) + 6|0); + $127 = HEAP16[$126>>1]|0; + $128 = ((($$10206)) + 2|0); + HEAP16[$128>>1] = $127; + $129 = ((($$10161205)) + 8|0); + $130 = ((($$10206)) + 4|0); + $$10175 = (($$10175207) + -1)|0; + $131 = ($$10175|0)>(-1); + if ($131) { + $$10161205 = $129;$$10175207 = $$10175;$$10206 = $130; + } else { + break; + } + } + } + break; + } + case 35: { + if ($26) { + $$11162201 = $29;$$11176203 = $$11176200;$$11202 = $31; + while(1) { + $132 = HEAP16[$$11162201>>1]|0; + HEAP16[$$11202>>1] = $132; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP16[$133>>1]|0; + $135 = ((($$11202)) + 2|0); + HEAP16[$135>>1] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = HEAP16[$136>>1]|0; + $138 = ((($$11202)) + 4|0); + HEAP16[$138>>1] = $137; + $139 = ((($$11162201)) + 8|0); + $140 = ((($$11202)) + 6|0); + $$11176 = (($$11176203) + -1)|0; + $141 = ($$11176|0)>(-1); + if ($141) { + $$11162201 = $139;$$11176203 = $$11176;$$11202 = $140; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $142 = (($$0164259) + 1)|0; + $143 = ($142|0)<($4|0); + if ($143) { + $$0164259 = $142; + } else { + break L11; + } + } + ___assert_fail((9719|0),(9569|0),1555,(9696|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $10; + return ($$0163|0); +} +function _stbi__compute_y_16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&65535; + return ($9|0); +} +function _stbi__malloc_mad3($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mad3sizes_valid($0,$1,$2)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + $5 = Math_imul($1, $0)|0; + $6 = Math_imul($5, $2)|0; + $7 = (_stbi__malloc($6)|0); + $$0 = $7; + return ($$0|0); +} +function _stbi__compute_y($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&255; + return ($9|0); +} +function _stbi__mad3sizes_valid($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mul2sizes_valid($0,$1)|0); + $4 = ($3|0)==(0); + if ($4) { + $12 = 0; + } else { + $5 = Math_imul($1, $0)|0; + $6 = (_stbi__mul2sizes_valid($5,$2)|0); + $7 = ($6|0)==(0); + if ($7) { + $12 = 0; + } else { + $8 = Math_imul($5, $2)|0; + $9 = (_stbi__addsizes_valid($8)|0); + $10 = ($9|0)!=(0); + $12 = $10; + } + } + $11 = $12&1; + return ($11|0); +} +function _stbi__mul2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 | $0; + $3 = ($2|0)<(0); + if ($3) { + $$0 = 0; + } else { + $4 = ($1|0)==(0); + if ($4) { + $$0 = 1; + } else { + $5 = (2147483647 / ($1|0))&-1; + $6 = ($5|0)>=($0|0); + $7 = $6&1; + $$0 = $7; + } + } + return ($$0|0); +} +function _stbi__addsizes_valid($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 1; +} +function _stbi__check_png_header($0) { + $0 = $0|0; + var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = ($1<<24>>24)==(-119); + if ($2) { + $3 = (_stbi__get8($0)|0); + $4 = ($3<<24>>24)==(80); + if ($4) { + $5 = (_stbi__get8($0)|0); + $6 = ($5<<24>>24)==(78); + if ($6) { + $7 = (_stbi__get8($0)|0); + $8 = ($7<<24>>24)==(71); + if ($8) { + $9 = (_stbi__get8($0)|0); + $10 = ($9<<24>>24)==(13); + if ($10) { + $11 = (_stbi__get8($0)|0); + $12 = ($11<<24>>24)==(10); + if ($12) { + $13 = (_stbi__get8($0)|0); + $14 = ($13<<24>>24)==(26); + if ($14) { + $15 = (_stbi__get8($0)|0); + $16 = ($15<<24>>24)==(10); + if ($16) { + $$05 = 1; + return ($$05|0); + } + } + } + } + } + } + } + } + _stbi__err(10980); + $$05 = 0; + return ($$05|0); +} +function _stbi__get_chunk_header($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$4$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__get32be($1)|0); + $3 = (_stbi__get32be($1)|0); + HEAP32[$0>>2] = $2; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $3; + return; +} +function _stbi__skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(0); + if ($2) { + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 168|0); + HEAP32[$5>>2] = $4; + return; + } + $6 = ((($0)) + 16|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0|0); + if (!($8)) { + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 168|0); + $12 = HEAP32[$11>>2]|0; + $13 = $10; + $14 = (($13) - ($12))|0; + $15 = ($14|0)<($1|0); + if ($15) { + HEAP32[$11>>2] = $10; + $16 = ((($0)) + 20|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($0)) + 28|0); + $19 = HEAP32[$18>>2]|0; + $20 = (($1) - ($14))|0; + FUNCTION_TABLE_vii[$17 & 63]($19,$20); + return; + } + } + $21 = ((($0)) + 168|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($22) + ($1)|0); + HEAP32[$21>>2] = $23; + return; +} +function _stbi__get32be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get16be($0)|0); + $2 = $1 << 16; + $3 = (_stbi__get16be($0)|0); + $4 = (($2) + ($3))|0; + return ($4|0); +} +function _stbi__get8($0) { + $0 = $0|0; + var $$0 = 0, $$sink6 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 168|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)<($4>>>0); + do { + if ($5) { + $$sink6 = $2; + } else { + $6 = ((($0)) + 32|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0); + if ($8) { + $$0 = 0; + return ($$0|0); + } else { + _stbi__refill_buffer($0); + $9 = HEAP32[$1>>2]|0; + $$sink6 = $9; + break; + } + } + } while(0); + $10 = ((($$sink6)) + 1|0); + HEAP32[$1>>2] = $10; + $11 = HEAP8[$$sink6>>0]|0; + $$0 = $11; + return ($$0|0); +} +function _stbi__get16be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = $1&255; + $3 = $2 << 8; + $4 = (_stbi__get8($0)|0); + $5 = $4&255; + $6 = $3 | $5; + return ($6|0); +} +function _stbi__getn($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($0)) + 172|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($0)) + 168|0); + $9 = HEAP32[$8>>2]|0; + $10 = $9; + $11 = (($7) - ($10))|0; + $12 = ($11|0)<($2|0); + if ($12) { + _memcpy(($1|0),($9|0),($11|0))|0; + $13 = HEAP32[$3>>2]|0; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + $16 = (($1) + ($11)|0); + $17 = (($2) - ($11))|0; + $18 = (FUNCTION_TABLE_iiii[$13 & 15]($15,$16,$17)|0); + $19 = ($18|0)==($17|0); + $20 = $19&1; + $21 = HEAP32[$6>>2]|0; + HEAP32[$8>>2] = $21; + $$1 = $20; + return ($$1|0); + } + } + $22 = ((($0)) + 168|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($23) + ($2)|0); + $25 = ((($0)) + 172|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($24>>>0)>($26>>>0); + if ($27) { + $$1 = 0; + return ($$1|0); + } + _memcpy(($1|0),($23|0),($2|0))|0; + $28 = HEAP32[$22>>2]|0; + $29 = (($28) + ($2)|0); + HEAP32[$22>>2] = $29; + $$1 = 1; + return ($$1|0); +} +function _stbi_zlib_decode_malloc_guesssize_headerflag($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 4080|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(4080|0); + $5 = sp; + $6 = (_stbi__malloc($2)|0); + $7 = ($6|0)==(0|0); + do { + if ($7) { + $$0 = 0; + } else { + HEAP32[$5>>2] = $0; + $8 = (($0) + ($1)|0); + $9 = ((($5)) + 4|0); + HEAP32[$9>>2] = $8; + $10 = (_stbi__do_zlib($5,$6,$2,1,$4)|0); + $11 = ($10|0)==(0); + $12 = ((($5)) + 20|0); + $13 = HEAP32[$12>>2]|0; + if ($11) { + _free($13); + $$0 = 0; + break; + } + $14 = ($3|0)==(0|0); + if ($14) { + $$0 = $13; + } else { + $15 = ((($5)) + 16|0); + $16 = HEAP32[$15>>2]|0; + $17 = $13; + $18 = (($16) - ($17))|0; + HEAP32[$3>>2] = $18; + $$0 = $13; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _stbi__create_png_image($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$0103117 = 0, $$0106116 = 0, $$0107115 = 0, $$095119 = 0, $$099118 = 0, $$3102$ph = 0, $$398$ph = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $7 = ($4|0)==(16); + $8 = $7 ? 2 : 1; + $9 = Math_imul($8, $3)|0; + $10 = ($6|0)==(0); + $11 = HEAP32[$0>>2]|0; + $12 = HEAP32[$11>>2]|0; + $13 = ((($11)) + 4|0); + $14 = HEAP32[$13>>2]|0; + if ($10) { + $15 = (_stbi__create_png_image_raw($0,$1,$2,$3,$12,$14,$4,$5)|0); + $$4 = $15; + return ($$4|0); + } + $16 = (_stbi__malloc_mad3($12,$14,$9)|0); + $17 = ((($0)) + 12|0); + $18 = ((($0)) + 12|0); + $$0103117 = 0;$$095119 = $1;$$099118 = $2; + while(1) { + $19 = HEAP32[$0>>2]|0; + $20 = HEAP32[$19>>2]|0; + $21 = (3072 + ($$0103117<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = (3100 + ($$0103117<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (($20) + -1)|0; + $26 = (($25) - ($22))|0; + $27 = (($26) + ($24))|0; + $28 = (($27>>>0) / ($24>>>0))&-1; + $29 = ((($19)) + 4|0); + $30 = HEAP32[$29>>2]|0; + $31 = (3128 + ($$0103117<<2)|0); + $32 = HEAP32[$31>>2]|0; + $33 = (3156 + ($$0103117<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (($30) + -1)|0; + $36 = (($35) - ($32))|0; + $37 = (($36) + ($34))|0; + $38 = (($37>>>0) / ($34>>>0))&-1; + $39 = ($24>>>0)<=($27>>>0); + $40 = ($34>>>0)<=($37>>>0); + $or$cond = $39 & $40; + if ($or$cond) { + $41 = ((($19)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = Math_imul($28, $4)|0; + $44 = Math_imul($43, $42)|0; + $45 = (($44) + 7)|0; + $46 = $45 >> 3; + $47 = (($46) + 1)|0; + $48 = Math_imul($47, $38)|0; + $49 = (_stbi__create_png_image_raw($0,$$095119,$$099118,$3,$28,$38,$4,$5)|0); + $50 = ($49|0)==(0); + if ($50) { + label = 13; + break; + } + $51 = ($38|0)>(0); + if ($51) { + $52 = ($28|0)>(0); + $$0106116 = 0; + while(1) { + if ($52) { + $53 = HEAP32[$33>>2]|0; + $54 = Math_imul($53, $$0106116)|0; + $55 = HEAP32[$31>>2]|0; + $56 = (($54) + ($55))|0; + $57 = HEAP32[$23>>2]|0; + $58 = HEAP32[$21>>2]|0; + $59 = Math_imul($56, $9)|0; + $60 = Math_imul($$0106116, $28)|0; + $$0107115 = 0; + while(1) { + $61 = Math_imul($57, $$0107115)|0; + $62 = (($61) + ($58))|0; + $63 = HEAP32[$0>>2]|0; + $64 = HEAP32[$63>>2]|0; + $65 = Math_imul($59, $64)|0; + $66 = (($16) + ($65)|0); + $67 = Math_imul($62, $9)|0; + $68 = (($66) + ($67)|0); + $69 = HEAP32[$18>>2]|0; + $70 = (($$0107115) + ($60))|0; + $71 = Math_imul($70, $9)|0; + $72 = (($69) + ($71)|0); + _memcpy(($68|0),($72|0),($9|0))|0; + $73 = (($$0107115) + 1)|0; + $74 = ($73|0)<($28|0); + if ($74) { + $$0107115 = $73; + } else { + break; + } + } + } + $75 = (($$0106116) + 1)|0; + $76 = ($75|0)<($38|0); + if ($76) { + $$0106116 = $75; + } else { + break; + } + } + } + $77 = HEAP32[$17>>2]|0; + _free($77); + $78 = (($$095119) + ($48)|0); + $79 = (($$099118) - ($48))|0; + $$3102$ph = $79;$$398$ph = $78; + } else { + $$3102$ph = $$099118;$$398$ph = $$095119; + } + $80 = (($$0103117) + 1)|0; + $81 = ($80|0)<(7); + if ($81) { + $$0103117 = $80;$$095119 = $$398$ph;$$099118 = $$3102$ph; + } else { + label = 15; + break; + } + } + if ((label|0) == 13) { + _free($16); + $$4 = 0; + return ($$4|0); + } + else if ((label|0) == 15) { + $82 = ((($0)) + 12|0); + HEAP32[$82>>2] = $16; + $$4 = 1; + return ($$4|0); + } + return (0)|0; +} +function _stbi__compute_transparency16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP16[$$04>>1]|0; + $15 = HEAP16[$1>>1]|0; + $not$ = ($14<<16>>16)!=($15<<16>>16); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 2|0); + HEAP16[$17>>1] = $16; + $18 = ((($$04)) + 4|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 2|0); + $12 = ((($1)) + 4|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP16[$$16>>1]|0; + $21 = HEAP16[$1>>1]|0; + $22 = ($20<<16>>16)==($21<<16>>16); + if ($22) { + $23 = ((($$16)) + 2|0); + $24 = HEAP16[$23>>1]|0; + $25 = HEAP16[$11>>1]|0; + $26 = ($24<<16>>16)==($25<<16>>16); + if ($26) { + $27 = ((($$16)) + 4|0); + $28 = HEAP16[$27>>1]|0; + $29 = HEAP16[$12>>1]|0; + $30 = ($28<<16>>16)==($29<<16>>16); + if ($30) { + $31 = ((($$16)) + 6|0); + HEAP16[$31>>1] = 0; + } + } + } + $32 = ((($$16)) + 8|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((10062|0),(9569|0),4569,(10114|0)); + // unreachable; + } + } +} +function _stbi__compute_transparency($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP8[$$04>>0]|0; + $15 = HEAP8[$1>>0]|0; + $not$ = ($14<<24>>24)!=($15<<24>>24); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 1|0); + HEAP8[$17>>0] = $16; + $18 = ((($$04)) + 2|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 1|0); + $12 = ((($1)) + 2|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP8[$$16>>0]|0; + $21 = HEAP8[$1>>0]|0; + $22 = ($20<<24>>24)==($21<<24>>24); + if ($22) { + $23 = ((($$16)) + 1|0); + $24 = HEAP8[$23>>0]|0; + $25 = HEAP8[$11>>0]|0; + $26 = ($24<<24>>24)==($25<<24>>24); + if ($26) { + $27 = ((($$16)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = HEAP8[$12>>0]|0; + $30 = ($28<<24>>24)==($29<<24>>24); + if ($30) { + $31 = ((($$16)) + 3|0); + HEAP8[$31>>0] = 0; + } + } + } + $32 = ((($$16)) + 4|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((10062|0),(9569|0),4544,(10087|0)); + // unreachable; + } + } +} +function _stbi__de_iphone($0) { + $0 = $0|0; + var $$05158 = 0, $$059 = 0, $$15263 = 0, $$164 = 0, $$25360 = 0, $$261 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond68 = 0, $exitcond69 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = Math_imul($4, $2)|0; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($1)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($9|0) { + case 3: { + $10 = ($5|0)==(0); + if ($10) { + return; + } else { + $$05158 = $7;$$059 = 0; + } + while(1) { + $11 = HEAP8[$$05158>>0]|0; + $12 = ((($$05158)) + 2|0); + $13 = HEAP8[$12>>0]|0; + HEAP8[$$05158>>0] = $13; + HEAP8[$12>>0] = $11; + $14 = ((($$05158)) + 3|0); + $15 = (($$059) + 1)|0; + $exitcond = ($15|0)==($5|0); + if ($exitcond) { + break; + } else { + $$05158 = $14;$$059 = $15; + } + } + return; + break; + } + case 4: { + $16 = HEAP32[5005]|0; + $17 = ($16|0)==(0); + $18 = ($5|0)!=(0); + if ($17) { + if ($18) { + $$25360 = $7;$$261 = 0; + } else { + return; + } + while(1) { + $42 = HEAP8[$$25360>>0]|0; + $43 = ((($$25360)) + 2|0); + $44 = HEAP8[$43>>0]|0; + HEAP8[$$25360>>0] = $44; + HEAP8[$43>>0] = $42; + $45 = ((($$25360)) + 4|0); + $46 = (($$261) + 1)|0; + $exitcond68 = ($46|0)==($5|0); + if ($exitcond68) { + break; + } else { + $$25360 = $45;$$261 = $46; + } + } + return; + } + if ($18) { + $$15263 = $7;$$164 = 0; + } else { + return; + } + while(1) { + $19 = ((($$15263)) + 3|0); + $20 = HEAP8[$19>>0]|0; + $21 = HEAP8[$$15263>>0]|0; + $22 = ($20<<24>>24)==(0); + $23 = ((($$15263)) + 2|0); + $24 = HEAP8[$23>>0]|0; + if ($22) { + HEAP8[$$15263>>0] = $24; + $$sink = $21; + } else { + $25 = $24&255; + $26 = ($25*255)|0; + $27 = $20&255; + $28 = (($26>>>0) / ($27>>>0))&-1; + $29 = $28&255; + HEAP8[$$15263>>0] = $29; + $30 = ((($$15263)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = ($32*255)|0; + $34 = (($33>>>0) / ($27>>>0))&-1; + $35 = $34&255; + HEAP8[$30>>0] = $35; + $36 = $21&255; + $37 = ($36*255)|0; + $38 = (($37>>>0) / ($27>>>0))&-1; + $39 = $38&255; + $$sink = $39; + } + HEAP8[$23>>0] = $$sink; + $40 = ((($$15263)) + 4|0); + $41 = (($$164) + 1)|0; + $exitcond69 = ($41|0)==($5|0); + if ($exitcond69) { + break; + } else { + $$15263 = $40;$$164 = $41; + } + } + return; + break; + } + default: { + ___assert_fail((10028|0),(9569|0),4650,(10046|0)); + // unreachable; + } + } +} +function _stbi__expand_png_palette($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0574 = 0, $$0583 = 0, $$1595 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_stbi__malloc_mad2($7,$2)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _stbi__err(9624); + $$0 = 0; + return ($$0|0); + } + $12 = ($2|0)==(3); + $13 = ($7|0)!=(0); + if ($12) { + if ($13) { + $$0574 = 0;$$0583 = $10; + while(1) { + $14 = (($9) + ($$0574)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = $16 << 2; + $18 = (($1) + ($17)|0); + $19 = HEAP8[$18>>0]|0; + HEAP8[$$0583>>0] = $19; + $20 = $17 | 1; + $21 = (($1) + ($20)|0); + $22 = HEAP8[$21>>0]|0; + $23 = ((($$0583)) + 1|0); + HEAP8[$23>>0] = $22; + $24 = $17 | 2; + $25 = (($1) + ($24)|0); + $26 = HEAP8[$25>>0]|0; + $27 = ((($$0583)) + 2|0); + HEAP8[$27>>0] = $26; + $28 = ((($$0583)) + 3|0); + $29 = (($$0574) + 1)|0; + $exitcond = ($29|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0574 = $29;$$0583 = $28; + } + } + } + } else { + if ($13) { + $$1595 = $10;$$16 = 0; + while(1) { + $30 = (($9) + ($$16)|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 << 2; + $34 = (($1) + ($33)|0); + $35 = HEAP8[$34>>0]|0; + HEAP8[$$1595>>0] = $35; + $36 = $33 | 1; + $37 = (($1) + ($36)|0); + $38 = HEAP8[$37>>0]|0; + $39 = ((($$1595)) + 1|0); + HEAP8[$39>>0] = $38; + $40 = $33 | 2; + $41 = (($1) + ($40)|0); + $42 = HEAP8[$41>>0]|0; + $43 = ((($$1595)) + 2|0); + HEAP8[$43>>0] = $42; + $44 = $33 | 3; + $45 = (($1) + ($44)|0); + $46 = HEAP8[$45>>0]|0; + $47 = ((($$1595)) + 3|0); + HEAP8[$47>>0] = $46; + $48 = ((($$1595)) + 4|0); + $49 = (($$16) + 1)|0; + $exitcond9 = ($49|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1595 = $48;$$16 = $49; + } + } + } + } + $50 = HEAP32[$8>>2]|0; + _free($50); + HEAP32[$8>>2] = $10; + $$0 = 1; + return ($$0|0); +} +function _stbi__malloc_mad2($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mad2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $$0 = 0; + return ($$0|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__malloc($4)|0); + $$0 = $5; + return ($$0|0); +} +function _stbi__mad2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mul2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $8 = 0; + $7 = $8&1; + return ($7|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__addsizes_valid($4)|0); + $6 = ($5|0)!=(0); + $8 = $6; + $7 = $8&1; + return ($7|0); +} +function _stbi__create_png_image_raw($0,$1,$2,$3,$4,$5,$6,$7) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + $7 = $7|0; + var $$0568 = 0, $$0568724 = 0, $$0568725 = 0, $$0571$lcssa = 0, $$0571715 = 0, $$0574$lcssa = 0, $$0574714 = 0, $$0577817 = 0, $$0588 = 0, $$0597 = 0, $$0608816 = 0, $$0611815 = 0, $$0614 = 0, $$0614793 = 0, $$0614796 = 0, $$0623814 = 0, $$0625734 = 0, $$0731 = 0, $$1 = 0, $$10635764 = 0; + var $$11$ph = 0, $$11636755 = 0, $$12747 = 0, $$13739 = 0, $$14$lcssa = 0, $$14713 = 0, $$15$lcssa = 0, $$15705 = 0, $$1572$lcssa = 0, $$1572707 = 0, $$1575$lcssa = 0, $$1575706 = 0, $$1578 = 0, $$16$lcssa = 0, $$1609 = 0, $$1612 = 0, $$1615 = 0, $$1615785 = 0, $$1615788 = 0, $$1624727 = 0; + var $$1626812 = 0, $$16700 = 0, $$1721 = 0, $$1722 = 0, $$2 = 0, $$2573$lcssa = 0, $$2573702 = 0, $$2579795 = 0, $$2599794 = 0, $$2616 = 0, $$2616776 = 0, $$2616780 = 0, $$2627810 = 0, $$3580787 = 0, $$3592778 = 0, $$3600786 = 0, $$3617 = 0, $$3617767 = 0, $$3617771 = 0, $$3628808 = 0; + var $$4$lcssa = 0, $$4581779 = 0, $$4593769 = 0, $$4601777 = 0, $$4618 = 0, $$4618758 = 0, $$4618762 = 0, $$4629806 = 0, $$4701 = 0, $$5582770 = 0, $$5594760 = 0, $$5602768 = 0, $$5619 = 0, $$5619750 = 0, $$5619753 = 0, $$5630804 = 0, $$6583761 = 0, $$6603759 = 0, $$6620 = 0, $$6620742 = 0; + var $$6620745 = 0, $$6631802 = 0, $$7584752 = 0, $$7604751 = 0, $$7621798 = 0, $$7632790 = 0, $$8585744 = 0, $$8605743 = 0, $$8622729 = 0, $$8633782 = 0, $$9586 = 0, $$9606799 = 0, $$9634773 = 0, $$not = 0, $$sink = 0, $$sink1 = 0, $$sink641 = 0, $10 = 0, $100 = 0, $101 = 0; + var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; + var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; + var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; + var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; + var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; + var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; + var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; + var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; + var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; + var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; + var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0; + var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0; + var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0; + var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0; + var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0; + var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0; + var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0; + var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0; + var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0; + var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0; + var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0; + var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0; + var $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0; + var $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0; + var $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0; + var $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0; + var $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0; + var $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0; + var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; + var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; + var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge894 = 0, $exitcond = 0, $exitcond864 = 0, $exitcond865 = 0, $exitcond867 = 0, $exitcond869 = 0, $exitcond871 = 0, $exitcond873 = 0, $exitcond875 = 0, $exitcond877 = 0, $exitcond880 = 0, $exitcond881 = 0, $exitcond882 = 0, $exitcond883 = 0, $exitcond884 = 0; + var $exitcond885 = 0, $exitcond886 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next849 = 0, $indvars$iv$next852 = 0, $indvars$iv$next855 = 0, $indvars$iv$next858 = 0, $indvars$iv$next861 = 0, $indvars$iv848 = 0, $indvars$iv851 = 0, $indvars$iv854 = 0, $indvars$iv857 = 0, $indvars$iv860 = 0, $or$cond = 0, $scevgep = 0, $scevgep850 = 0, $scevgep853 = 0, $scevgep856 = 0, $scevgep859 = 0; + var $scevgep862 = 0, $scevgep866 = 0, $scevgep868 = 0, $scevgep870 = 0, $scevgep872 = 0, $scevgep874 = 0, $scevgep876 = 0, $scevgep879 = 0, $trunc = 0, $trunc637 = 0, $trunc638 = 0, label = 0, sp = 0; + sp = STACKTOP; + $8 = ($6|0)==(16); + $9 = $8 ? 2 : 1; + $10 = HEAP32[$0>>2]|0; + $11 = Math_imul($4, $3)|0; + $12 = Math_imul($9, $11)|0; + $13 = ((($10)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = Math_imul($9, $3)|0; + $16 = Math_imul($14, $9)|0; + $17 = ($14|0)==($3|0); + $18 = (($14) + 1)|0; + $19 = ($18|0)==($3|0); + $or$cond = $17 | $19; + if (!($or$cond)) { + ___assert_fail((10143|0),(9569|0),4294,(10184|0)); + // unreachable; + } + $20 = (_stbi__malloc_mad3($4,$5,$15)|0); + $21 = ((($0)) + 12|0); + HEAP32[$21>>2] = $20; + $22 = ($20|0)==(0|0); + if ($22) { + _stbi__err(9624); + $$2 = 0; + return ($$2|0); + } + $23 = Math_imul($14, $4)|0; + $24 = Math_imul($23, $6)|0; + $25 = (($24) + 7)|0; + $26 = $25 >>> 3; + $27 = (($26) + 1)|0; + $28 = Math_imul($27, $5)|0; + $29 = HEAP32[$10>>2]|0; + $30 = ($29|0)==($4|0); + if ($30) { + $31 = ((($10)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($5|0); + if ($33) { + $34 = ($28|0)==($2|0); + if (!($34)) { + _stbi__err(10211); + $$2 = 0; + return ($$2|0); + } + } else { + label = 9; + } + } else { + label = 9; + } + if ((label|0) == 9) { + $35 = ($28>>>0)>($2>>>0); + if ($35) { + _stbi__err(10211); + $$2 = 0; + return ($$2|0); + } + } + $36 = ($5|0)==(0); + L18: do { + if (!($36)) { + $37 = ($6|0)<(8); + $38 = ($26>>>0)>($4>>>0); + $39 = (($11) - ($26))|0; + $40 = (0 - ($12))|0; + $41 = ($6|0)==(8); + $brmerge = $37 | $17; + $42 = ($4|0)==(0); + $$0614793 = (($4) + -1)|0; + $43 = ($$0614793|0)==(0); + $$1615785 = (($4) + -1)|0; + $44 = ($$1615785|0)==(0); + $$2616776 = (($4) + -1)|0; + $45 = ($$2616776|0)==(0); + $$3617767 = (($4) + -1)|0; + $46 = ($$3617767|0)==(0); + $$4618758 = (($4) + -1)|0; + $47 = ($$4618758|0)==(0); + $$5619750 = (($4) + -1)|0; + $48 = ($$5619750|0)==(0); + $$6620742 = (($4) + -1)|0; + $49 = ($$6620742|0)==(0); + $$not = $8 ^ 1; + $brmerge894 = $42 | $$not; + $$0577817 = $1;$$0608816 = $4;$$0611815 = $16;$$0623814 = 0; + while(1) { + $50 = HEAP32[$21>>2]|0; + $51 = Math_imul($$0623814, $12)|0; + $52 = (($50) + ($51)|0); + $53 = ((($$0577817)) + 1|0); + $54 = HEAP8[$$0577817>>0]|0; + $55 = $54&255; + $56 = ($54&255)>(4); + if ($56) { + label = 105; + break; + } + if ($37) { + if ($38) { + label = 16; + break; + } + $57 = (($52) + ($39)|0); + $$0597 = $57;$$1609 = $26;$$1612 = 1; + } else { + $$0597 = $52;$$1609 = $$0608816;$$1612 = $$0611815; + } + $58 = (($$0597) + ($40)|0); + $59 = ($$0623814|0)==(0); + if ($59) { + $60 = (10250 + ($55)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $$0588 = $62; + } else { + $$0588 = $55; + } + $63 = ($$1612|0)>(0); + L30: do { + if ($63) { + $trunc638 = $$0588&255; + $$0625734 = 0; + while(1) { + switch ($trunc638<<24>>24) { + case 0: { + $64 = (($53) + ($$0625734)|0); + $65 = HEAP8[$64>>0]|0; + $$sink = $65; + label = 30; + break; + } + case 1: { + $66 = (($53) + ($$0625734)|0); + $67 = HEAP8[$66>>0]|0; + $$sink = $67; + label = 30; + break; + } + case 2: { + $68 = (($53) + ($$0625734)|0); + $69 = HEAP8[$68>>0]|0; + $70 = $69&255; + $71 = (($58) + ($$0625734)|0); + $72 = HEAP8[$71>>0]|0; + $73 = $72&255; + $74 = (($73) + ($70))|0; + $75 = $74&255; + $$sink = $75; + label = 30; + break; + } + case 3: { + $76 = (($53) + ($$0625734)|0); + $77 = HEAP8[$76>>0]|0; + $78 = $77&255; + $79 = (($58) + ($$0625734)|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = $81 >>> 1; + $83 = (($82) + ($78))|0; + $84 = $83&255; + $$sink = $84; + label = 30; + break; + } + case 4: { + $85 = (($53) + ($$0625734)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $86&255; + $88 = (($58) + ($$0625734)|0); + $89 = HEAP8[$88>>0]|0; + $90 = $89&255; + $91 = (_stbi__paeth(0,$90,0)|0); + $92 = (($91) + ($87))|0; + $93 = $92&255; + $$sink = $93; + label = 30; + break; + } + case 5: { + $94 = (($53) + ($$0625734)|0); + $95 = HEAP8[$94>>0]|0; + $$sink = $95; + label = 30; + break; + } + case 6: { + $96 = (($53) + ($$0625734)|0); + $97 = HEAP8[$96>>0]|0; + $$sink = $97; + label = 30; + break; + } + default: { + } + } + if ((label|0) == 30) { + label = 0; + $$sink1 = (($$0597) + ($$0625734)|0); + HEAP8[$$sink1>>0] = $$sink; + } + $98 = (($$0625734) + 1)|0; + $exitcond864 = ($98|0)==($$1612|0); + if ($exitcond864) { + break L30; + } else { + $$0625734 = $98; + } + } + } + } while(0); + do { + if ($41) { + if (!($17)) { + $99 = (($$0597) + ($14)|0); + HEAP8[$99>>0] = -1; + } + $100 = (($53) + ($14)|0); + $$1578 = $100;$$sink641 = $3; + } else { + if (!($8)) { + $105 = ((($$0577817)) + 2|0); + $$1578 = $105;$$sink641 = 1; + break; + } + if (!($17)) { + $101 = (($$1612) + 1)|0; + $102 = (($$0597) + ($101)|0); + $103 = (($$0597) + ($$1612)|0); + HEAP8[$103>>0] = -1; + HEAP8[$102>>0] = -1; + } + $104 = (($53) + ($$1612)|0); + $$1578 = $104;$$sink641 = $15; + } + } while(0); + $106 = (($$0597) + ($$sink641)|0); + $107 = (($58) + ($$sink641)|0); + if ($brmerge) { + $108 = (($$1609) + -1)|0; + $109 = Math_imul($108, $$1612)|0; + $trunc637 = $$0588&255; + switch ($trunc637<<24>>24) { + case 0: { + _memcpy(($106|0),($$1578|0),($109|0))|0; + break; + } + case 1: { + $115 = ($109|0)>(0); + if ($115) { + $$1626812 = 0; + while(1) { + $116 = (($$1578) + ($$1626812)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = (($$1626812) - ($$1612))|0; + $120 = (($106) + ($119)|0); + $121 = HEAP8[$120>>0]|0; + $122 = $121&255; + $123 = (($122) + ($118))|0; + $124 = $123&255; + $125 = (($106) + ($$1626812)|0); + HEAP8[$125>>0] = $124; + $126 = (($$1626812) + 1)|0; + $exitcond886 = ($126|0)==($109|0); + if ($exitcond886) { + break; + } else { + $$1626812 = $126; + } + } + } + break; + } + case 2: { + $114 = ($109|0)>(0); + if ($114) { + $$2627810 = 0; + while(1) { + $127 = (($$1578) + ($$2627810)|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = (($107) + ($$2627810)|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = (($132) + ($129))|0; + $134 = $133&255; + $135 = (($106) + ($$2627810)|0); + HEAP8[$135>>0] = $134; + $136 = (($$2627810) + 1)|0; + $exitcond885 = ($136|0)==($109|0); + if ($exitcond885) { + break; + } else { + $$2627810 = $136; + } + } + } + break; + } + case 3: { + $113 = ($109|0)>(0); + if ($113) { + $$3628808 = 0; + while(1) { + $137 = (($$1578) + ($$3628808)|0); + $138 = HEAP8[$137>>0]|0; + $139 = $138&255; + $140 = (($107) + ($$3628808)|0); + $141 = HEAP8[$140>>0]|0; + $142 = $141&255; + $143 = (($$3628808) - ($$1612))|0; + $144 = (($106) + ($143)|0); + $145 = HEAP8[$144>>0]|0; + $146 = $145&255; + $147 = (($146) + ($142))|0; + $148 = $147 >>> 1; + $149 = (($148) + ($139))|0; + $150 = $149&255; + $151 = (($106) + ($$3628808)|0); + HEAP8[$151>>0] = $150; + $152 = (($$3628808) + 1)|0; + $exitcond884 = ($152|0)==($109|0); + if ($exitcond884) { + break; + } else { + $$3628808 = $152; + } + } + } + break; + } + case 4: { + $112 = ($109|0)>(0); + if ($112) { + $$4629806 = 0; + while(1) { + $153 = (($$1578) + ($$4629806)|0); + $154 = HEAP8[$153>>0]|0; + $155 = $154&255; + $156 = (($$4629806) - ($$1612))|0; + $157 = (($106) + ($156)|0); + $158 = HEAP8[$157>>0]|0; + $159 = $158&255; + $160 = (($107) + ($$4629806)|0); + $161 = HEAP8[$160>>0]|0; + $162 = $161&255; + $163 = (($107) + ($156)|0); + $164 = HEAP8[$163>>0]|0; + $165 = $164&255; + $166 = (_stbi__paeth($159,$162,$165)|0); + $167 = (($166) + ($155))|0; + $168 = $167&255; + $169 = (($106) + ($$4629806)|0); + HEAP8[$169>>0] = $168; + $170 = (($$4629806) + 1)|0; + $exitcond883 = ($170|0)==($109|0); + if ($exitcond883) { + break; + } else { + $$4629806 = $170; + } + } + } + break; + } + case 5: { + $111 = ($109|0)>(0); + if ($111) { + $$5630804 = 0; + while(1) { + $171 = (($$1578) + ($$5630804)|0); + $172 = HEAP8[$171>>0]|0; + $173 = $172&255; + $174 = (($$5630804) - ($$1612))|0; + $175 = (($106) + ($174)|0); + $176 = HEAP8[$175>>0]|0; + $177 = $176&255; + $178 = $177 >>> 1; + $179 = (($178) + ($173))|0; + $180 = $179&255; + $181 = (($106) + ($$5630804)|0); + HEAP8[$181>>0] = $180; + $182 = (($$5630804) + 1)|0; + $exitcond882 = ($182|0)==($109|0); + if ($exitcond882) { + break; + } else { + $$5630804 = $182; + } + } + } + break; + } + case 6: { + $110 = ($109|0)>(0); + if ($110) { + $$6631802 = 0; + while(1) { + $183 = (($$1578) + ($$6631802)|0); + $184 = HEAP8[$183>>0]|0; + $185 = $184&255; + $186 = (($$6631802) - ($$1612))|0; + $187 = (($106) + ($186)|0); + $188 = HEAP8[$187>>0]|0; + $189 = $188&255; + $190 = (_stbi__paeth($189,0,0)|0); + $191 = (($190) + ($185))|0; + $192 = $191&255; + $193 = (($106) + ($$6631802)|0); + HEAP8[$193>>0] = $192; + $194 = (($$6631802) + 1)|0; + $exitcond881 = ($194|0)==($109|0); + if ($exitcond881) { + break; + } else { + $$6631802 = $194; + } + } + } + break; + } + default: { + } + } + $195 = (($$1578) + ($109)|0); + $$11$ph = $195; + } else { + if (!($19)) { + label = 58; + break; + } + $trunc = $$0588&255; + switch ($trunc<<24>>24) { + case 0: { + if ($43) { + $$9586 = $$1578; + } else { + $208 = ($$1612|0)>(0); + $209 = Math_imul($$6620742, $$1612)|0; + $$0614796 = $$0614793;$$2579795 = $$1578;$$2599794 = $106; + while(1) { + if ($208) { + $$7632790 = 0; + while(1) { + $210 = (($$2579795) + ($$7632790)|0); + $211 = HEAP8[$210>>0]|0; + $212 = (($$2599794) + ($$7632790)|0); + HEAP8[$212>>0] = $211; + $213 = (($$7632790) + 1)|0; + $exitcond877 = ($213|0)==($$1612|0); + if ($exitcond877) { + break; + } else { + $$7632790 = $213; + } + } + } + $214 = (($$2599794) + ($$1612)|0); + HEAP8[$214>>0] = -1; + $215 = (($$2579795) + ($$1612)|0); + $216 = (($$2599794) + ($15)|0); + $$0614 = (($$0614796) + -1)|0; + $217 = ($$0614|0)==(0); + if ($217) { + break; + } else { + $$0614796 = $$0614;$$2579795 = $215;$$2599794 = $216; + } + } + $scevgep879 = (($$1578) + ($209)|0); + $$9586 = $scevgep879; + } + break; + } + case 1: { + if ($44) { + $$9586 = $$1578; + } else { + $206 = ($$1612|0)>(0); + $207 = Math_imul($$6620742, $$1612)|0; + $$1615788 = $$1615785;$$3580787 = $$1578;$$3600786 = $106; + while(1) { + if ($206) { + $$8633782 = 0; + while(1) { + $218 = (($$3580787) + ($$8633782)|0); + $219 = HEAP8[$218>>0]|0; + $220 = $219&255; + $221 = (($$8633782) - ($15))|0; + $222 = (($$3600786) + ($221)|0); + $223 = HEAP8[$222>>0]|0; + $224 = $223&255; + $225 = (($224) + ($220))|0; + $226 = $225&255; + $227 = (($$3600786) + ($$8633782)|0); + HEAP8[$227>>0] = $226; + $228 = (($$8633782) + 1)|0; + $exitcond875 = ($228|0)==($$1612|0); + if ($exitcond875) { + break; + } else { + $$8633782 = $228; + } + } + } + $229 = (($$3600786) + ($$1612)|0); + HEAP8[$229>>0] = -1; + $230 = (($$3580787) + ($$1612)|0); + $231 = (($$3600786) + ($15)|0); + $$1615 = (($$1615788) + -1)|0; + $232 = ($$1615|0)==(0); + if ($232) { + break; + } else { + $$1615788 = $$1615;$$3580787 = $230;$$3600786 = $231; + } + } + $scevgep876 = (($$1578) + ($207)|0); + $$9586 = $scevgep876; + } + break; + } + case 2: { + if ($45) { + $$9586 = $$1578; + } else { + $204 = ($$1612|0)>(0); + $205 = Math_imul($$6620742, $$1612)|0; + $$2616780 = $$2616776;$$3592778 = $107;$$4581779 = $$1578;$$4601777 = $106; + while(1) { + if ($204) { + $$9634773 = 0; + while(1) { + $233 = (($$4581779) + ($$9634773)|0); + $234 = HEAP8[$233>>0]|0; + $235 = $234&255; + $236 = (($$3592778) + ($$9634773)|0); + $237 = HEAP8[$236>>0]|0; + $238 = $237&255; + $239 = (($238) + ($235))|0; + $240 = $239&255; + $241 = (($$4601777) + ($$9634773)|0); + HEAP8[$241>>0] = $240; + $242 = (($$9634773) + 1)|0; + $exitcond873 = ($242|0)==($$1612|0); + if ($exitcond873) { + break; + } else { + $$9634773 = $242; + } + } + } + $243 = (($$4601777) + ($$1612)|0); + HEAP8[$243>>0] = -1; + $244 = (($$4581779) + ($$1612)|0); + $245 = (($$4601777) + ($15)|0); + $246 = (($$3592778) + ($15)|0); + $$2616 = (($$2616780) + -1)|0; + $247 = ($$2616|0)==(0); + if ($247) { + break; + } else { + $$2616780 = $$2616;$$3592778 = $246;$$4581779 = $244;$$4601777 = $245; + } + } + $scevgep874 = (($$1578) + ($205)|0); + $$9586 = $scevgep874; + } + break; + } + case 3: { + if ($46) { + $$9586 = $$1578; + } else { + $202 = ($$1612|0)>(0); + $203 = Math_imul($$6620742, $$1612)|0; + $$3617771 = $$3617767;$$4593769 = $107;$$5582770 = $$1578;$$5602768 = $106; + while(1) { + if ($202) { + $$10635764 = 0; + while(1) { + $248 = (($$5582770) + ($$10635764)|0); + $249 = HEAP8[$248>>0]|0; + $250 = $249&255; + $251 = (($$4593769) + ($$10635764)|0); + $252 = HEAP8[$251>>0]|0; + $253 = $252&255; + $254 = (($$10635764) - ($15))|0; + $255 = (($$5602768) + ($254)|0); + $256 = HEAP8[$255>>0]|0; + $257 = $256&255; + $258 = (($257) + ($253))|0; + $259 = $258 >>> 1; + $260 = (($259) + ($250))|0; + $261 = $260&255; + $262 = (($$5602768) + ($$10635764)|0); + HEAP8[$262>>0] = $261; + $263 = (($$10635764) + 1)|0; + $exitcond871 = ($263|0)==($$1612|0); + if ($exitcond871) { + break; + } else { + $$10635764 = $263; + } + } + } + $264 = (($$5602768) + ($$1612)|0); + HEAP8[$264>>0] = -1; + $265 = (($$5582770) + ($$1612)|0); + $266 = (($$5602768) + ($15)|0); + $267 = (($$4593769) + ($15)|0); + $$3617 = (($$3617771) + -1)|0; + $268 = ($$3617|0)==(0); + if ($268) { + break; + } else { + $$3617771 = $$3617;$$4593769 = $267;$$5582770 = $265;$$5602768 = $266; + } + } + $scevgep872 = (($$1578) + ($203)|0); + $$9586 = $scevgep872; + } + break; + } + case 4: { + if ($47) { + $$9586 = $$1578; + } else { + $200 = ($$1612|0)>(0); + $201 = Math_imul($$6620742, $$1612)|0; + $$4618762 = $$4618758;$$5594760 = $107;$$6583761 = $$1578;$$6603759 = $106; + while(1) { + if ($200) { + $$11636755 = 0; + while(1) { + $269 = (($$6583761) + ($$11636755)|0); + $270 = HEAP8[$269>>0]|0; + $271 = $270&255; + $272 = (($$11636755) - ($15))|0; + $273 = (($$6603759) + ($272)|0); + $274 = HEAP8[$273>>0]|0; + $275 = $274&255; + $276 = (($$5594760) + ($$11636755)|0); + $277 = HEAP8[$276>>0]|0; + $278 = $277&255; + $279 = (($$5594760) + ($272)|0); + $280 = HEAP8[$279>>0]|0; + $281 = $280&255; + $282 = (_stbi__paeth($275,$278,$281)|0); + $283 = (($282) + ($271))|0; + $284 = $283&255; + $285 = (($$6603759) + ($$11636755)|0); + HEAP8[$285>>0] = $284; + $286 = (($$11636755) + 1)|0; + $exitcond869 = ($286|0)==($$1612|0); + if ($exitcond869) { + break; + } else { + $$11636755 = $286; + } + } + } + $287 = (($$6603759) + ($$1612)|0); + HEAP8[$287>>0] = -1; + $288 = (($$6583761) + ($$1612)|0); + $289 = (($$6603759) + ($15)|0); + $290 = (($$5594760) + ($15)|0); + $$4618 = (($$4618762) + -1)|0; + $291 = ($$4618|0)==(0); + if ($291) { + break; + } else { + $$4618762 = $$4618;$$5594760 = $290;$$6583761 = $288;$$6603759 = $289; + } + } + $scevgep870 = (($$1578) + ($201)|0); + $$9586 = $scevgep870; + } + break; + } + case 5: { + if ($48) { + $$9586 = $$1578; + } else { + $198 = ($$1612|0)>(0); + $199 = Math_imul($$6620742, $$1612)|0; + $$5619753 = $$5619750;$$7584752 = $$1578;$$7604751 = $106; + while(1) { + if ($198) { + $$12747 = 0; + while(1) { + $292 = (($$7584752) + ($$12747)|0); + $293 = HEAP8[$292>>0]|0; + $294 = $293&255; + $295 = (($$12747) - ($15))|0; + $296 = (($$7604751) + ($295)|0); + $297 = HEAP8[$296>>0]|0; + $298 = $297&255; + $299 = $298 >>> 1; + $300 = (($299) + ($294))|0; + $301 = $300&255; + $302 = (($$7604751) + ($$12747)|0); + HEAP8[$302>>0] = $301; + $303 = (($$12747) + 1)|0; + $exitcond867 = ($303|0)==($$1612|0); + if ($exitcond867) { + break; + } else { + $$12747 = $303; + } + } + } + $304 = (($$7604751) + ($$1612)|0); + HEAP8[$304>>0] = -1; + $305 = (($$7584752) + ($$1612)|0); + $306 = (($$7604751) + ($15)|0); + $$5619 = (($$5619753) + -1)|0; + $307 = ($$5619|0)==(0); + if ($307) { + break; + } else { + $$5619753 = $$5619;$$7584752 = $305;$$7604751 = $306; + } + } + $scevgep868 = (($$1578) + ($199)|0); + $$9586 = $scevgep868; + } + break; + } + case 6: { + if ($49) { + $$9586 = $$1578; + } else { + $196 = ($$1612|0)>(0); + $197 = Math_imul($$6620742, $$1612)|0; + $$6620745 = $$6620742;$$8585744 = $$1578;$$8605743 = $106; + while(1) { + if ($196) { + $$13739 = 0; + while(1) { + $308 = (($$8585744) + ($$13739)|0); + $309 = HEAP8[$308>>0]|0; + $310 = $309&255; + $311 = (($$13739) - ($15))|0; + $312 = (($$8605743) + ($311)|0); + $313 = HEAP8[$312>>0]|0; + $314 = $313&255; + $315 = (_stbi__paeth($314,0,0)|0); + $316 = (($315) + ($310))|0; + $317 = $316&255; + $318 = (($$8605743) + ($$13739)|0); + HEAP8[$318>>0] = $317; + $319 = (($$13739) + 1)|0; + $exitcond865 = ($319|0)==($$1612|0); + if ($exitcond865) { + break; + } else { + $$13739 = $319; + } + } + } + $320 = (($$8605743) + ($$1612)|0); + HEAP8[$320>>0] = -1; + $321 = (($$8585744) + ($$1612)|0); + $322 = (($$8605743) + ($15)|0); + $$6620 = (($$6620745) + -1)|0; + $323 = ($$6620|0)==(0); + if ($323) { + break; + } else { + $$6620745 = $$6620;$$8585744 = $321;$$8605743 = $322; + } + } + $scevgep866 = (($$1578) + ($197)|0); + $$9586 = $scevgep866; + } + break; + } + default: { + $$9586 = $$1578; + } + } + if ($brmerge894) { + $$11$ph = $$9586; + } else { + $324 = HEAP32[$21>>2]|0; + $325 = (($324) + ($51)|0); + $326 = (($$1612) + 1)|0; + $$7621798 = 0;$$9606799 = $325; + while(1) { + $327 = (($$9606799) + ($326)|0); + HEAP8[$327>>0] = -1; + $328 = (($$7621798) + 1)|0; + $329 = (($$9606799) + ($15)|0); + $exitcond880 = ($328|0)==($4|0); + if ($exitcond880) { + $$11$ph = $$9586; + break; + } else { + $$7621798 = $328;$$9606799 = $329; + } + } + } + } + $330 = (($$0623814) + 1)|0; + $331 = ($330>>>0)<($5>>>0); + if ($331) { + $$0577817 = $$11$ph;$$0608816 = $$1609;$$0611815 = $$1612;$$0623814 = $330; + } else { + break L18; + } + } + if ((label|0) == 16) { + ___assert_fail((10229|0),(9569|0),4315,(10184|0)); + // unreachable; + } + else if ((label|0) == 58) { + ___assert_fail((10255|0),(9569|0),4377,(10184|0)); + // unreachable; + } + else if ((label|0) == 105) { + _stbi__err(10272); + $$2 = 0; + return ($$2|0); + } + } + } while(0); + $332 = ($6|0)<(8); + if (!($332)) { + if (!($8)) { + $$2 = 1; + return ($$2|0); + } + $601 = Math_imul($4, $3)|0; + $602 = Math_imul($601, $5)|0; + $603 = ($602|0)==(0); + if ($603) { + $$2 = 1; + return ($$2|0); + } + $604 = HEAP32[$21>>2]|0; + $$0731 = $604;$$8622729 = 0; + while(1) { + $605 = HEAP8[$$0731>>0]|0; + $606 = $605&255; + $607 = $606 << 8; + $608 = ((($$0731)) + 1|0); + $609 = HEAP8[$608>>0]|0; + $610 = $609&255; + $611 = $607 | $610; + $612 = $611&65535; + HEAP16[$$0731>>1] = $612; + $613 = (($$8622729) + 1)|0; + $614 = ((($$0731)) + 2|0); + $exitcond = ($613|0)==($602|0); + if ($exitcond) { + $$2 = 1; + break; + } else { + $$0731 = $614;$$8622729 = $613; + } + } + return ($$2|0); + } + $333 = ($5|0)==(0); + if ($333) { + $$2 = 1; + return ($$2|0); + } + $334 = (0 - ($26))|0; + $335 = ($7|0)==(0); + $336 = (9968 + ($6)|0); + $$0568724 = (($4) + -1)|0; + $337 = ($$0568724|0)>(-1); + $$1721 = (($4) + -1)|0; + $338 = ($$1721|0)>(-1); + $339 = ($23|0)>(1); + $340 = ($23|0)>(3); + $341 = ($23|0)>(7); + $342 = (($23) + -8)|0; + $343 = $342 >>> 3; + $344 = $343 << 3; + $345 = (($344) + 8)|0; + $346 = (($342) - ($344))|0; + $347 = (($343) + ($11))|0; + $348 = (($347) + 1)|0; + $349 = (($348) - ($26))|0; + $350 = (($23) + -4)|0; + $351 = $350 >>> 2; + $352 = $351 << 2; + $353 = (($352) + 4)|0; + $354 = (($350) - ($352))|0; + $355 = (($351) + ($11))|0; + $356 = (($355) + 1)|0; + $357 = (($356) - ($26))|0; + $358 = (($23) + -2)|0; + $359 = $358 >>> 1; + $360 = $359 << 1; + $361 = (($360) + 2)|0; + $362 = (($358) - ($360))|0; + $363 = (($359) + ($11))|0; + $364 = (($363) + 1)|0; + $365 = (($364) - ($26))|0; + $$1624727 = 0;$indvars$iv = $345;$indvars$iv848 = $349;$indvars$iv851 = $353;$indvars$iv854 = $357;$indvars$iv857 = $361;$indvars$iv860 = $365; + L174: while(1) { + $366 = HEAP32[$21>>2]|0; + $367 = Math_imul($$1624727, $12)|0; + $368 = (($366) + ($367)|0); + $369 = (($368) + ($11)|0); + $370 = (($369) + ($334)|0); + if ($335) { + $371 = HEAP8[$336>>0]|0; + $372 = $371&255; + $377 = $372; + } else { + $377 = 1; + } + switch ($6|0) { + case 4: { + if ($339) { + $scevgep859 = (($366) + ($indvars$iv857)|0); + $$0571715 = $370;$$0574714 = $368;$$14713 = $23; + while(1) { + $373 = HEAP8[$$0571715>>0]|0; + $374 = $373&255; + $375 = $374 >>> 4; + $376 = Math_imul($375, $377)|0; + $378 = $376&255; + $379 = ((($$0574714)) + 1|0); + HEAP8[$$0574714>>0] = $378; + $380 = HEAP8[$$0571715>>0]|0; + $381 = $380 & 15; + $382 = $381&255; + $383 = Math_imul($382, $377)|0; + $384 = $383&255; + $385 = ((($$0574714)) + 2|0); + HEAP8[$379>>0] = $384; + $386 = (($$14713) + -2)|0; + $387 = ((($$0571715)) + 1|0); + $388 = ($386|0)>(1); + if ($388) { + $$0571715 = $387;$$0574714 = $385;$$14713 = $386; + } else { + break; + } + } + $scevgep862 = (($366) + ($indvars$iv860)|0); + $$0571$lcssa = $scevgep862;$$0574$lcssa = $scevgep859;$$14$lcssa = $362; + } else { + $$0571$lcssa = $370;$$0574$lcssa = $368;$$14$lcssa = $23; + } + $389 = ($$14$lcssa|0)==(1); + if ($389) { + $390 = HEAP8[$$0571$lcssa>>0]|0; + $391 = $390&255; + $392 = $391 >>> 4; + $393 = Math_imul($392, $377)|0; + $394 = $393&255; + HEAP8[$$0574$lcssa>>0] = $394; + } + break; + } + case 2: { + if ($340) { + $scevgep853 = (($366) + ($indvars$iv851)|0); + $$15705 = $23;$$1572707 = $370;$$1575706 = $368; + while(1) { + $395 = HEAP8[$$1572707>>0]|0; + $396 = $395&255; + $397 = $396 >>> 6; + $398 = Math_imul($397, $377)|0; + $399 = $398&255; + $400 = ((($$1575706)) + 1|0); + HEAP8[$$1575706>>0] = $399; + $401 = HEAP8[$$1572707>>0]|0; + $402 = $401&255; + $403 = $402 >>> 4; + $404 = $403 & 3; + $405 = Math_imul($404, $377)|0; + $406 = $405&255; + $407 = ((($$1575706)) + 2|0); + HEAP8[$400>>0] = $406; + $408 = HEAP8[$$1572707>>0]|0; + $409 = $408&255; + $410 = $409 >>> 2; + $411 = $410 & 3; + $412 = Math_imul($411, $377)|0; + $413 = $412&255; + $414 = ((($$1575706)) + 3|0); + HEAP8[$407>>0] = $413; + $415 = HEAP8[$$1572707>>0]|0; + $416 = $415 & 3; + $417 = $416&255; + $418 = Math_imul($417, $377)|0; + $419 = $418&255; + $420 = ((($$1575706)) + 4|0); + HEAP8[$414>>0] = $419; + $421 = (($$15705) + -4)|0; + $422 = ((($$1572707)) + 1|0); + $423 = ($421|0)>(3); + if ($423) { + $$15705 = $421;$$1572707 = $422;$$1575706 = $420; + } else { + break; + } + } + $scevgep856 = (($366) + ($indvars$iv854)|0); + $$15$lcssa = $354;$$1572$lcssa = $scevgep856;$$1575$lcssa = $scevgep853; + } else { + $$15$lcssa = $23;$$1572$lcssa = $370;$$1575$lcssa = $368; + } + $424 = ($$15$lcssa|0)>(0); + if ($424) { + $425 = HEAP8[$$1572$lcssa>>0]|0; + $426 = $425&255; + $427 = $426 >>> 6; + $428 = Math_imul($427, $377)|0; + $429 = $428&255; + HEAP8[$$1575$lcssa>>0] = $429; + $430 = ($$15$lcssa|0)==(1); + if (!($430)) { + $431 = ((($$1575$lcssa)) + 1|0); + $432 = HEAP8[$$1572$lcssa>>0]|0; + $433 = $432&255; + $434 = $433 >>> 4; + $435 = $434 & 3; + $436 = Math_imul($435, $377)|0; + $437 = $436&255; + HEAP8[$431>>0] = $437; + $438 = ($$15$lcssa|0)>(2); + if ($438) { + $439 = ((($$1575$lcssa)) + 2|0); + $440 = HEAP8[$$1572$lcssa>>0]|0; + $441 = $440&255; + $442 = $441 >>> 2; + $443 = $442 & 3; + $444 = Math_imul($443, $377)|0; + $445 = $444&255; + HEAP8[$439>>0] = $445; + } + } + } + break; + } + case 1: { + if ($341) { + $scevgep = (($366) + ($indvars$iv)|0); + $$16700 = $23;$$2573702 = $370;$$4701 = $368; + while(1) { + $446 = HEAP8[$$2573702>>0]|0; + $447 = $446&255; + $448 = $447 >>> 7; + $449 = (0 - ($448))|0; + $450 = $377 & $449; + $451 = $450&255; + $452 = ((($$4701)) + 1|0); + HEAP8[$$4701>>0] = $451; + $453 = HEAP8[$$2573702>>0]|0; + $454 = $453&255; + $455 = $454 >>> 6; + $456 = $455 & 1; + $457 = (0 - ($456))|0; + $458 = $377 & $457; + $459 = $458&255; + $460 = ((($$4701)) + 2|0); + HEAP8[$452>>0] = $459; + $461 = HEAP8[$$2573702>>0]|0; + $462 = $461&255; + $463 = $462 >>> 5; + $464 = $463 & 1; + $465 = (0 - ($464))|0; + $466 = $377 & $465; + $467 = $466&255; + $468 = ((($$4701)) + 3|0); + HEAP8[$460>>0] = $467; + $469 = HEAP8[$$2573702>>0]|0; + $470 = $469&255; + $471 = $470 >>> 4; + $472 = $471 & 1; + $473 = (0 - ($472))|0; + $474 = $377 & $473; + $475 = $474&255; + $476 = ((($$4701)) + 4|0); + HEAP8[$468>>0] = $475; + $477 = HEAP8[$$2573702>>0]|0; + $478 = $477&255; + $479 = $478 >>> 3; + $480 = $479 & 1; + $481 = (0 - ($480))|0; + $482 = $377 & $481; + $483 = $482&255; + $484 = ((($$4701)) + 5|0); + HEAP8[$476>>0] = $483; + $485 = HEAP8[$$2573702>>0]|0; + $486 = $485&255; + $487 = $486 >>> 2; + $488 = $487 & 1; + $489 = (0 - ($488))|0; + $490 = $377 & $489; + $491 = $490&255; + $492 = ((($$4701)) + 6|0); + HEAP8[$484>>0] = $491; + $493 = HEAP8[$$2573702>>0]|0; + $494 = $493&255; + $495 = $494 >>> 1; + $496 = $495 & 1; + $497 = (0 - ($496))|0; + $498 = $377 & $497; + $499 = $498&255; + $500 = ((($$4701)) + 7|0); + HEAP8[$492>>0] = $499; + $501 = HEAP8[$$2573702>>0]|0; + $502 = $501 & 1; + $503 = $502&255; + $504 = (0 - ($503))|0; + $505 = $377 & $504; + $506 = $505&255; + $507 = ((($$4701)) + 8|0); + HEAP8[$500>>0] = $506; + $508 = (($$16700) + -8)|0; + $509 = ((($$2573702)) + 1|0); + $510 = ($508|0)>(7); + if ($510) { + $$16700 = $508;$$2573702 = $509;$$4701 = $507; + } else { + break; + } + } + $scevgep850 = (($366) + ($indvars$iv848)|0); + $$16$lcssa = $346;$$2573$lcssa = $scevgep850;$$4$lcssa = $scevgep; + } else { + $$16$lcssa = $23;$$2573$lcssa = $370;$$4$lcssa = $368; + } + $511 = ($$16$lcssa|0)>(0); + if ($511) { + $512 = HEAP8[$$2573$lcssa>>0]|0; + $513 = $512&255; + $514 = $513 >>> 7; + $515 = (0 - ($514))|0; + $516 = $377 & $515; + $517 = $516&255; + HEAP8[$$4$lcssa>>0] = $517; + $518 = ($$16$lcssa|0)==(1); + if (!($518)) { + $519 = ((($$4$lcssa)) + 1|0); + $520 = HEAP8[$$2573$lcssa>>0]|0; + $521 = $520&255; + $522 = $521 >>> 6; + $523 = $522 & 1; + $524 = (0 - ($523))|0; + $525 = $377 & $524; + $526 = $525&255; + HEAP8[$519>>0] = $526; + $527 = ($$16$lcssa|0)>(2); + if ($527) { + $528 = ((($$4$lcssa)) + 2|0); + $529 = HEAP8[$$2573$lcssa>>0]|0; + $530 = $529&255; + $531 = $530 >>> 5; + $532 = $531 & 1; + $533 = (0 - ($532))|0; + $534 = $377 & $533; + $535 = $534&255; + HEAP8[$528>>0] = $535; + $536 = ($$16$lcssa|0)==(3); + if (!($536)) { + $537 = ((($$4$lcssa)) + 3|0); + $538 = HEAP8[$$2573$lcssa>>0]|0; + $539 = $538&255; + $540 = $539 >>> 4; + $541 = $540 & 1; + $542 = (0 - ($541))|0; + $543 = $377 & $542; + $544 = $543&255; + HEAP8[$537>>0] = $544; + $545 = ($$16$lcssa|0)>(4); + if ($545) { + $546 = ((($$4$lcssa)) + 4|0); + $547 = HEAP8[$$2573$lcssa>>0]|0; + $548 = $547&255; + $549 = $548 >>> 3; + $550 = $549 & 1; + $551 = (0 - ($550))|0; + $552 = $377 & $551; + $553 = $552&255; + HEAP8[$546>>0] = $553; + $554 = ($$16$lcssa|0)==(5); + if (!($554)) { + $555 = ((($$4$lcssa)) + 5|0); + $556 = HEAP8[$$2573$lcssa>>0]|0; + $557 = $556&255; + $558 = $557 >>> 2; + $559 = $558 & 1; + $560 = (0 - ($559))|0; + $561 = $377 & $560; + $562 = $561&255; + HEAP8[$555>>0] = $562; + $563 = ($$16$lcssa|0)>(6); + if ($563) { + $564 = ((($$4$lcssa)) + 6|0); + $565 = HEAP8[$$2573$lcssa>>0]|0; + $566 = $565&255; + $567 = $566 >>> 1; + $568 = $567 & 1; + $569 = (0 - ($568))|0; + $570 = $377 & $569; + $571 = $570&255; + HEAP8[$564>>0] = $571; + } + } + } + } + } + } + } + break; + } + default: { + } + } + L213: do { + if (!($17)) { + $572 = HEAP32[$21>>2]|0; + $573 = (($572) + ($367)|0); + switch ($14|0) { + case 1: { + if ($337) { + $$0568725 = $$0568724; + } else { + break L213; + } + while(1) { + $574 = $$0568725 << 1; + $575 = $574 | 1; + $576 = (($573) + ($575)|0); + HEAP8[$576>>0] = -1; + $577 = (($573) + ($$0568725)|0); + $578 = HEAP8[$577>>0]|0; + $579 = (($573) + ($574)|0); + HEAP8[$579>>0] = $578; + $$0568 = (($$0568725) + -1)|0; + $580 = ($$0568|0)>(-1); + if ($580) { + $$0568725 = $$0568; + } else { + break; + } + } + break; + } + case 3: { + if ($338) { + $$1722 = $$1721; + } else { + break L213; + } + while(1) { + $581 = $$1722 << 2; + $582 = $581 | 3; + $583 = (($573) + ($582)|0); + HEAP8[$583>>0] = -1; + $584 = ($$1722*3)|0; + $585 = (($584) + 2)|0; + $586 = (($573) + ($585)|0); + $587 = HEAP8[$586>>0]|0; + $588 = $581 | 2; + $589 = (($573) + ($588)|0); + HEAP8[$589>>0] = $587; + $590 = (($584) + 1)|0; + $591 = (($573) + ($590)|0); + $592 = HEAP8[$591>>0]|0; + $593 = $581 | 1; + $594 = (($573) + ($593)|0); + HEAP8[$594>>0] = $592; + $595 = (($573) + ($584)|0); + $596 = HEAP8[$595>>0]|0; + $597 = (($573) + ($581)|0); + HEAP8[$597>>0] = $596; + $$1 = (($$1722) + -1)|0; + $598 = ($$1|0)>(-1); + if ($598) { + $$1722 = $$1; + } else { + break; + } + } + break; + } + default: { + label = 144; + break L174; + } + } + } + } while(0); + $599 = (($$1624727) + 1)|0; + $600 = ($599>>>0)<($5>>>0); + $indvars$iv$next = (($indvars$iv) + ($12))|0; + $indvars$iv$next849 = (($indvars$iv848) + ($12))|0; + $indvars$iv$next852 = (($indvars$iv851) + ($12))|0; + $indvars$iv$next855 = (($indvars$iv854) + ($12))|0; + $indvars$iv$next858 = (($indvars$iv857) + ($12))|0; + $indvars$iv$next861 = (($indvars$iv860) + ($12))|0; + if ($600) { + $$1624727 = $599;$indvars$iv = $indvars$iv$next;$indvars$iv848 = $indvars$iv$next849;$indvars$iv851 = $indvars$iv$next852;$indvars$iv854 = $indvars$iv$next855;$indvars$iv857 = $indvars$iv$next858;$indvars$iv860 = $indvars$iv$next861; + } else { + $$2 = 1; + label = 151; + break; + } + } + if ((label|0) == 144) { + ___assert_fail((10287|0),(9569|0),4466,(10184|0)); + // unreachable; + } + else if ((label|0) == 151) { + return ($$2|0); + } + return (0)|0; +} +function _stbi__paeth($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ispos = 0, $ispos26 = 0, $ispos28 = 0, $neg = 0, $neg27 = 0, $neg29 = 0, $or$cond = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = (($1) + ($0))|0; + $4 = (($3) - ($2))|0; + $5 = (($4) - ($0))|0; + $ispos = ($5|0)>(-1); + $neg = (0 - ($5))|0; + $6 = $ispos ? $5 : $neg; + $7 = (($4) - ($1))|0; + $ispos26 = ($7|0)>(-1); + $neg27 = (0 - ($7))|0; + $8 = $ispos26 ? $7 : $neg27; + $9 = (($4) - ($2))|0; + $ispos28 = ($9|0)>(-1); + $neg29 = (0 - ($9))|0; + $10 = $ispos28 ? $9 : $neg29; + $11 = ($6|0)>($8|0); + $12 = ($6|0)>($10|0); + $or$cond = $11 | $12; + $13 = ($8|0)>($10|0); + $$ = $13 ? $2 : $1; + $$0 = $or$cond ? $$ : $0; + return ($$0|0); +} +function _stbi__do_zlib($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 20|0); + HEAP32[$5>>2] = $1; + $6 = ((($0)) + 16|0); + HEAP32[$6>>2] = $1; + $7 = (($1) + ($2)|0); + $8 = ((($0)) + 24|0); + HEAP32[$8>>2] = $7; + $9 = ((($0)) + 28|0); + HEAP32[$9>>2] = $3; + $10 = (_stbi__parse_zlib($0,$4)|0); + return ($10|0); +} +function _stbi__parse_zlib($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + if (!($2)) { + $3 = (_stbi__parse_zlib_header($0)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + } + $5 = ((($0)) + 8|0); + HEAP32[$5>>2] = 0; + $6 = ((($0)) + 12|0); + HEAP32[$6>>2] = 0; + $7 = ((($0)) + 32|0); + $8 = ((($0)) + 2052|0); + L5: while(1) { + $9 = (_stbi__zreceive($0,1)|0); + $10 = (_stbi__zreceive($0,2)|0); + switch ($10|0) { + case 3: { + $$0 = 0; + label = 11; + break L5; + break; + } + case 0: { + $11 = (_stbi__parse_uncompressed_block($0)|0); + $12 = ($11|0)==(0); + if ($12) { + $$0 = 0; + label = 11; + break L5; + } + break; + } + case 1: { + $13 = (_stbi__zbuild_huffman($7,10298,288)|0); + $14 = ($13|0)==(0); + if ($14) { + $$0 = 0; + label = 11; + break L5; + } + $15 = (_stbi__zbuild_huffman($8,10586,32)|0); + $16 = ($15|0)==(0); + if ($16) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + break; + } + default: { + $17 = (_stbi__compute_huffman_codes($0)|0); + $18 = ($17|0)==(0); + if ($18) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + } + } + if ((label|0) == 9) { + label = 0; + $19 = (_stbi__parse_huffman_block($0)|0); + $20 = ($19|0)==(0); + if ($20) { + $$0 = 0; + label = 11; + break; + } + } + $21 = ($9|0)==(0); + if (!($21)) { + $$0 = 1; + label = 11; + break; + } + } + if ((label|0) == 11) { + return ($$0|0); + } + return (0)|0; +} +function _stbi__parse_zlib_header($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__zget8($0)|0); + $2 = $1&255; + $3 = $2 & 15; + $4 = (_stbi__zget8($0)|0); + $5 = $4&255; + $6 = $2 << 8; + $7 = $6 | $5; + $8 = (($7>>>0) % 31)&-1; + $9 = ($8|0)==(0); + if (!($9)) { + _stbi__err(10933); + $$0 = 0; + return ($$0|0); + } + $10 = $5 & 32; + $11 = ($10|0)==(0); + if (!($11)) { + _stbi__err(10949); + $$0 = 0; + return ($$0|0); + } + $12 = ($3|0)==(8); + if ($12) { + $$0 = 1; + return ($$0|0); + } + _stbi__err(10964); + $$0 = 0; + return ($$0|0); +} +function _stbi__zreceive($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<($1|0); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = 1 << $1; + $8 = (($7) + -1)|0; + $9 = $6 & $8; + $10 = $6 >>> $1; + HEAP32[$5>>2] = $10; + $11 = HEAP32[$2>>2]|0; + $12 = (($11) - ($1))|0; + HEAP32[$2>>2] = $12; + return ($9|0); +} +function _stbi__parse_uncompressed_block($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$034 = 0, $$037 = 0, $$136 = 0, $$lcssa = 0, $$ph = 0, $$pr = 0, $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; + var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond47 = 0, $smax = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & 7; + $5 = ($4|0)==(0); + if ($5) { + $$ph = $3; + } else { + (_stbi__zreceive($0,$4)|0); + $$pr = HEAP32[$2>>2]|0; + $$ph = $$pr; + } + $6 = ($$ph|0)>(0); + if ($6) { + $7 = ((($0)) + 12|0); + $$promoted = HEAP32[$7>>2]|0; + $8 = $$ph ^ -1; + $9 = ($8|0)>(-9); + $smax = $9 ? $8 : -9; + $10 = (($$ph) + ($smax))|0; + $11 = (($10) + 8)|0; + $12 = $11 >>> 3; + $13 = (($12) + 1)|0; + $14 = $12 << 3; + $$037 = 0;$16 = $$promoted; + while(1) { + $15 = $16&255; + $17 = (($$037) + 1)|0; + $18 = (($1) + ($$037)|0); + HEAP8[$18>>0] = $15; + $19 = $16 >>> 8; + $exitcond47 = ($17|0)==($13|0); + if ($exitcond47) { + break; + } else { + $$037 = $17;$16 = $19; + } + } + $20 = (($$ph) + -8)|0; + $21 = (($20) - ($14))|0; + HEAP32[$7>>2] = $19; + HEAP32[$2>>2] = $21; + $$0$lcssa = $13;$$lcssa = $21; + } else { + $$0$lcssa = 0;$$lcssa = $$ph; + } + $22 = ($$lcssa|0)==(0); + if (!($22)) { + ___assert_fail((10855|0),(9569|0),4033,(10872|0)); + // unreachable; + } + $23 = ($$0$lcssa|0)<(4); + if ($23) { + $$136 = $$0$lcssa; + while(1) { + $24 = (_stbi__zget8($0)|0); + $25 = (($$136) + 1)|0; + $26 = (($1) + ($$136)|0); + HEAP8[$26>>0] = $24; + $exitcond = ($25|0)==(4); + if ($exitcond) { + break; + } else { + $$136 = $25; + } + } + } + $27 = ((($1)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = HEAP8[$1>>0]|0; + $32 = $31&255; + $33 = $30 | $32; + $34 = ((($1)) + 3|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = $36 << 8; + $38 = ((($1)) + 2|0); + $39 = HEAP8[$38>>0]|0; + $40 = $39&255; + $41 = $37 | $40; + $42 = $33 ^ 65535; + $43 = ($41|0)==($42|0); + if (!($43)) { + _stbi__err(10903); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $44 = HEAP32[$0>>2]|0; + $45 = (($44) + ($33)|0); + $46 = ((($0)) + 4|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($45>>>0)>($47>>>0); + if ($48) { + _stbi__err(10916); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $49 = ((($0)) + 16|0); + $50 = HEAP32[$49>>2]|0; + $51 = (($50) + ($33)|0); + $52 = ((($0)) + 24|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51>>>0)>($53>>>0); + if ($54) { + $55 = (_stbi__zexpand($0,$50,$33)|0); + $56 = ($55|0)==(0); + if ($56) { + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + } + $57 = HEAP32[$49>>2]|0; + $58 = HEAP32[$0>>2]|0; + _memcpy(($57|0),($58|0),($33|0))|0; + $59 = HEAP32[$0>>2]|0; + $60 = (($59) + ($33)|0); + HEAP32[$0>>2] = $60; + $61 = HEAP32[$49>>2]|0; + $62 = (($61) + ($33)|0); + HEAP32[$49>>2] = $62; + $$034 = 1; + STACKTOP = sp;return ($$034|0); +} +function _stbi__zbuild_huffman($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$075 = 0, $$07688 = 0, $$07785 = 0, $$07884 = 0, $$081 = 0, $$286 = 0, $$382 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond91 = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $3 = sp + 72|0; + $4 = sp; + dest=$4; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _memset(($0|0),0,1024)|0; + $5 = ($2|0)>(0); + if ($5) { + $$07688 = 0; + while(1) { + $6 = (($1) + ($$07688)|0); + $7 = HEAP8[$6>>0]|0; + $8 = $7&255; + $9 = (($4) + ($8<<2)|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($10) + 1)|0; + HEAP32[$9>>2] = $11; + $12 = (($$07688) + 1)|0; + $exitcond91 = ($12|0)==($2|0); + if ($exitcond91) { + break; + } else { + $$07688 = $12; + } + } + } + HEAP32[$4>>2] = 0; + $16 = ((($4)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)>(2); + if (!($18)) { + $13 = ((($4)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)>(4); + if (!($15)) { + $69 = ((($4)) + 12|0); + $70 = HEAP32[$69>>2]|0; + $71 = ($70|0)>(8); + if (!($71)) { + $72 = ((($4)) + 16|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)>(16); + if (!($74)) { + $75 = ((($4)) + 20|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($76|0)>(32); + if (!($77)) { + $78 = ((($4)) + 24|0); + $79 = HEAP32[$78>>2]|0; + $80 = ($79|0)>(64); + if (!($80)) { + $81 = ((($4)) + 28|0); + $82 = HEAP32[$81>>2]|0; + $83 = ($82|0)>(128); + if (!($83)) { + $84 = ((($4)) + 32|0); + $85 = HEAP32[$84>>2]|0; + $86 = ($85|0)>(256); + if (!($86)) { + $87 = ((($4)) + 36|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)>(512); + if (!($89)) { + $90 = ((($4)) + 40|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)>(1024); + if (!($92)) { + $93 = ((($4)) + 44|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)>(2048); + if (!($95)) { + $96 = ((($4)) + 48|0); + $97 = HEAP32[$96>>2]|0; + $98 = ($97|0)>(4096); + if (!($98)) { + $99 = ((($4)) + 52|0); + $100 = HEAP32[$99>>2]|0; + $101 = ($100|0)>(8192); + if (!($101)) { + $102 = ((($4)) + 56|0); + $103 = HEAP32[$102>>2]|0; + $104 = ($103|0)>(16384); + if (!($104)) { + $105 = ((($4)) + 60|0); + $106 = HEAP32[$105>>2]|0; + $107 = ($106|0)>(32768); + if (!($107)) { + $$07785 = 0;$$07884 = 0;$$286 = 1; + while(1) { + $19 = (($3) + ($$286<<2)|0); + HEAP32[$19>>2] = $$07884; + $20 = $$07884&65535; + $21 = (((($0)) + 1024|0) + ($$286<<1)|0); + HEAP16[$21>>1] = $20; + $22 = $$07785&65535; + $23 = (((($0)) + 1124|0) + ($$286<<1)|0); + HEAP16[$23>>1] = $22; + $24 = (($4) + ($$286<<2)|0); + $25 = HEAP32[$24>>2]|0; + $26 = (($25) + ($$07884))|0; + $27 = ($25|0)!=(0); + $28 = 1 << $$286; + $29 = ($26|0)>($28|0); + $or$cond = $27 & $29; + if ($or$cond) { + label = 7; + break; + } + $30 = (16 - ($$286))|0; + $31 = $26 << $30; + $32 = (((($0)) + 1056|0) + ($$286<<2)|0); + HEAP32[$32>>2] = $31; + $33 = $26 << 1; + $34 = (($25) + ($$07785))|0; + $35 = (($$286) + 1)|0; + $36 = ($35|0)<(16); + if ($36) { + $$07785 = $34;$$07884 = $33;$$286 = $35; + } else { + break; + } + } + if ((label|0) == 7) { + _stbi__err(10793); + $$075 = 0; + STACKTOP = sp;return ($$075|0); + } + $37 = ((($0)) + 1120|0); + HEAP32[$37>>2] = 65536; + $38 = ($2|0)>(0); + if ($38) { + $$382 = 0; + } else { + $$075 = 1; + STACKTOP = sp;return ($$075|0); + } + while(1) { + $39 = (($1) + ($$382)|0); + $40 = HEAP8[$39>>0]|0; + $41 = $40&255; + $42 = ($40<<24>>24)==(0); + if (!($42)) { + $43 = (($3) + ($41<<2)|0); + $44 = HEAP32[$43>>2]|0; + $45 = (((($0)) + 1024|0) + ($41<<1)|0); + $46 = HEAP16[$45>>1]|0; + $47 = $46&65535; + $48 = (($44) - ($47))|0; + $49 = (((($0)) + 1124|0) + ($41<<1)|0); + $50 = HEAP16[$49>>1]|0; + $51 = $50&65535; + $52 = (($48) + ($51))|0; + $53 = $41 << 9; + $54 = $53 | $$382; + $55 = $54&65535; + $56 = (((($0)) + 1156|0) + ($52)|0); + HEAP8[$56>>0] = $40; + $57 = $$382&65535; + $58 = (((($0)) + 1444|0) + ($52<<1)|0); + HEAP16[$58>>1] = $57; + $59 = ($40&255)<(10); + do { + if ($59) { + $60 = (_stbi__bit_reverse($44,$41)|0); + $61 = ($60|0)<(512); + if (!($61)) { + break; + } + $62 = 1 << $41; + $$081 = $60; + while(1) { + $63 = (($0) + ($$081<<1)|0); + HEAP16[$63>>1] = $55; + $64 = (($$081) + ($62))|0; + $65 = ($64|0)<(512); + if ($65) { + $$081 = $64; + } else { + break; + } + } + } + } while(0); + $66 = HEAP32[$43>>2]|0; + $67 = (($66) + 1)|0; + HEAP32[$43>>2] = $67; + } + $68 = (($$382) + 1)|0; + $exitcond = ($68|0)==($2|0); + if ($exitcond) { + $$075 = 1; + break; + } else { + $$382 = $68; + } + } + STACKTOP = sp;return ($$075|0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + _stbi__err(10845); + $$075 = 0; + STACKTOP = sp;return ($$075|0); +} +function _stbi__compute_huffman_codes($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$061 = 0, $$06579 = 0, $$066$be = 0, $$066$lcssa = 0, $$06678 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $not$ = 0, dest = 0; + var label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2496|0); + $1 = sp; + $2 = sp + 2039|0; + $3 = sp + 2020|0; + $4 = (_stbi__zreceive($0,5)|0); + $5 = (($4) + 257)|0; + $6 = (_stbi__zreceive($0,5)|0); + $7 = (($6) + 1)|0; + $8 = (_stbi__zreceive($0,4)|0); + $9 = (($8) + 4)|0; + $10 = (($7) + ($5))|0; + dest=$3; stop=dest+19|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $11 = ($9|0)>(0); + if ($11) { + $$06579 = 0; + while(1) { + $12 = (_stbi__zreceive($0,3)|0); + $13 = $12&255; + $14 = (11639 + ($$06579)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = (($3) + ($16)|0); + HEAP8[$17>>0] = $13; + $18 = (($$06579) + 1)|0; + $exitcond = ($18|0)==($9|0); + if ($exitcond) { + break; + } else { + $$06579 = $18; + } + } + } + $19 = (_stbi__zbuild_huffman($1,$3,19)|0); + $20 = ($19|0)==(0); + if ($20) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $21 = ($10|0)>(0); + L8: do { + if ($21) { + $$06678 = 0; + L9: while(1) { + $22 = (_stbi__zhuffman_decode($0,$1)|0); + $23 = ($22>>>0)>(18); + if ($23) { + label = 6; + break; + } + $24 = ($22|0)<(16); + if ($24) { + $25 = $22&255; + $26 = (($$06678) + 1)|0; + $27 = (($2) + ($$06678)|0); + HEAP8[$27>>0] = $25; + $$066$be = $26; + } else { + switch ($22|0) { + case 16: { + $28 = (_stbi__zreceive($0,2)|0); + $29 = ($$06678|0)==(0); + if ($29) { + label = 11; + break L9; + } + $30 = (($28) + 3)|0; + $31 = (($$06678) + -1)|0; + $32 = (($2) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $$0 = $33;$$061 = $30; + break; + } + case 17: { + $34 = (_stbi__zreceive($0,3)|0); + $35 = (($34) + 3)|0; + $$0 = 0;$$061 = $35; + break; + } + case 18: { + $36 = (_stbi__zreceive($0,7)|0); + $37 = (($36) + 11)|0; + $$0 = 0;$$061 = $37; + break; + } + default: { + label = 14; + break L9; + } + } + $38 = (($10) - ($$06678))|0; + $39 = ($38|0)<($$061|0); + if ($39) { + label = 17; + break; + } + $40 = (($2) + ($$06678)|0); + _memset(($40|0),($$0|0),($$061|0))|0; + $41 = (($$061) + ($$06678))|0; + $$066$be = $41; + } + $42 = ($10|0)>($$066$be|0); + if ($42) { + $$06678 = $$066$be; + } else { + $$066$lcssa = $$066$be; + break L8; + } + } + if ((label|0) == 6) { + _stbi__err(10793); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 11) { + _stbi__err(10793); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 14) { + ___assert_fail((10809|0),(9569|0),4006,(10817|0)); + // unreachable; + } + else if ((label|0) == 17) { + _stbi__err(10793); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + } else { + $$066$lcssa = 0; + } + } while(0); + $43 = ($10|0)==($$066$lcssa|0); + if (!($43)) { + _stbi__err(10793); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $44 = ((($0)) + 32|0); + $45 = (_stbi__zbuild_huffman($44,$2,$5)|0); + $46 = ($45|0)==(0); + if ($46) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $47 = ((($0)) + 2052|0); + $48 = (($2) + ($5)|0); + $49 = (_stbi__zbuild_huffman($47,$48,$7)|0); + $not$ = ($49|0)!=(0); + $$ = $not$&1; + $$4 = $$; + STACKTOP = sp;return ($$4|0); +} +function _stbi__parse_huffman_block($0) { + $0 = $0|0; + var $$063 = 0, $$064 = 0, $$067 = 0, $$070 = 0, $$171 = 0, $$266 = 0, $$272 = 0, $$3$ph = 0, $$5 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep92 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 32|0); + $4 = ((($0)) + 24|0); + $5 = ((($0)) + 2052|0); + $6 = ((($0)) + 20|0); + $7 = ((($0)) + 24|0); + $$070 = $2; + while(1) { + $10 = (_stbi__zhuffman_decode($0,$3)|0); + $11 = ($10|0)<(256); + if ($11) { + $12 = ($10|0)<(0); + if ($12) { + label = 6; + break; + } + $13 = HEAP32[$4>>2]|0; + $14 = ($$070>>>0)<($13>>>0); + if ($14) { + $$171 = $$070; + } else { + $15 = (_stbi__zexpand($0,$$070,1)|0); + $16 = ($15|0)==(0); + if ($16) { + $$3$ph = 0; + label = 28; + break; + } + $17 = HEAP32[$1>>2]|0; + $$171 = $17; + } + $18 = $10&255; + $19 = ((($$171)) + 1|0); + HEAP8[$$171>>0] = $18; + $$070 = $19; + continue; + } + $20 = ($10|0)==(256); + if ($20) { + label = 12; + break; + } + $21 = (($10) + -257)|0; + $22 = (3332 + ($21<<2)|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($10) + -265)|0; + $25 = ($24>>>0)<(20); + if ($25) { + $26 = (3208 + ($21<<2)|0); + $27 = HEAP32[$26>>2]|0; + $28 = (_stbi__zreceive($0,$27)|0); + $29 = (($28) + ($23))|0; + $$064 = $29; + } else { + $$064 = $23; + } + $30 = (_stbi__zhuffman_decode($0,$5)|0); + $31 = ($30|0)<(0); + if ($31) { + label = 16; + break; + } + $32 = (3584 + ($30<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (($30) + -4)|0; + $35 = ($34>>>0)<(26); + if ($35) { + $36 = (3456 + ($30<<2)|0); + $37 = HEAP32[$36>>2]|0; + $38 = (_stbi__zreceive($0,$37)|0); + $39 = (($38) + ($33))|0; + $$063 = $39; + } else { + $$063 = $33; + } + $40 = HEAP32[$6>>2]|0; + $41 = $$070; + $42 = (($41) - ($40))|0; + $43 = ($42|0)<($$063|0); + if ($43) { + label = 20; + break; + } + $44 = (($$070) + ($$064)|0); + $45 = HEAP32[$7>>2]|0; + $46 = ($44>>>0)>($45>>>0); + if ($46) { + $47 = (_stbi__zexpand($0,$$070,$$064)|0); + $48 = ($47|0)==(0); + if ($48) { + $$3$ph = 0; + label = 28; + break; + } + $49 = HEAP32[$1>>2]|0; + $$272 = $49; + } else { + $$272 = $$070; + } + $50 = (0 - ($$063))|0; + $9 = (($$272) + ($50)|0); + $51 = ($$063|0)==(1); + $52 = ($$064|0)!=(0); + if ($51) { + if (!($52)) { + $$070 = $$272; + continue; + } + $8 = HEAP8[$9>>0]|0; + _memset(($$272|0),($8|0),($$064|0))|0; + $scevgep92 = (($$272) + ($$064)|0); + $$070 = $scevgep92; + continue; + } + if ($52) { + $$067 = $9;$$266 = $$064;$$5 = $$272; + } else { + $$070 = $$272; + continue; + } + while(1) { + $53 = ((($$067)) + 1|0); + $54 = HEAP8[$$067>>0]|0; + $55 = ((($$5)) + 1|0); + HEAP8[$$5>>0] = $54; + $56 = (($$266) + -1)|0; + $57 = ($56|0)==(0); + if ($57) { + break; + } else { + $$067 = $53;$$266 = $56;$$5 = $55; + } + } + $scevgep = (($$272) + ($$064)|0); + $$070 = $scevgep; + } + if ((label|0) == 6) { + _stbi__err(10618); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 12) { + HEAP32[$1>>2] = $$070; + $$3$ph = 1; + return ($$3$ph|0); + } + else if ((label|0) == 16) { + _stbi__err(10618); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 20) { + _stbi__err(10635); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 28) { + return ($$3$ph|0); + } + return (0)|0; +} +function _stbi__zhuffman_decode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<(16); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 511; + $8 = (($1) + ($7<<1)|0); + $9 = HEAP16[$8>>1]|0; + $10 = $9&65535; + $11 = ($9<<16>>16)==(0); + if ($11) { + $17 = (_stbi__zhuffman_decode_slowpath($0,$1)|0); + $$0 = $17; + return ($$0|0); + } else { + $12 = $10 >>> 9; + $13 = $6 >>> $12; + HEAP32[$5>>2] = $13; + $14 = HEAP32[$2>>2]|0; + $15 = (($14) - ($12))|0; + HEAP32[$2>>2] = $15; + $16 = $10 & 511; + $$0 = $16; + return ($$0|0); + } + return (0)|0; +} +function _stbi__zexpand($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + HEAP32[$3>>2] = $1; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + _stbi__err(10644); + $$0 = 0; + return ($$0|0); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = $1; + $10 = $8; + $11 = (($9) - ($10))|0; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + $14 = (($13) - ($10))|0; + $15 = (($11) + ($2))|0; + $$029 = $14; + while(1) { + $16 = ($15|0)>($$029|0); + $17 = $$029 << 1; + if ($16) { + $$029 = $17; + } else { + break; + } + } + $18 = (_realloc($8,$$029)|0); + $19 = ($18|0)==(0|0); + if ($19) { + _stbi__err(9624); + $$0 = 0; + return ($$0|0); + } else { + HEAP32[$7>>2] = $18; + $20 = (($18) + ($11)|0); + HEAP32[$3>>2] = $20; + $21 = (($18) + ($$029)|0); + HEAP32[$12>>2] = $21; + $$0 = 1; + return ($$0|0); + } + return (0)|0; +} +function _stbi__fill_bits($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 12|0); + $2 = ((($0)) + 8|0); + while(1) { + $3 = HEAP32[$1>>2]|0; + $4 = HEAP32[$2>>2]|0; + $5 = 1 << $4; + $6 = ($3>>>0)<($5>>>0); + if (!($6)) { + label = 3; + break; + } + $7 = (_stbi__zget8($0)|0); + $8 = $7&255; + $9 = HEAP32[$2>>2]|0; + $10 = $8 << $9; + $11 = HEAP32[$1>>2]|0; + $12 = $11 | $10; + HEAP32[$1>>2] = $12; + $13 = (($9) + 8)|0; + HEAP32[$2>>2] = $13; + $14 = ($13|0)<(25); + if (!($14)) { + label = 5; + break; + } + } + if ((label|0) == 3) { + ___assert_fail((10740|0),(9569|0),3848,(10777|0)); + // unreachable; + } + else if ((label|0) == 5) { + return; + } +} +function _stbi__zhuffman_decode_slowpath($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 12|0); + $3 = HEAP32[$2>>2]|0; + $4 = (_stbi__bit_reverse($3,16)|0); + $$025 = 10; + while(1) { + $5 = (((($1)) + 1056|0) + ($$025<<2)|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($4|0)<($6|0); + $8 = (($$025) + 1)|0; + if ($7) { + break; + } else { + $$025 = $8; + } + } + $9 = ($$025|0)==(16); + if ($9) { + $$0 = -1; + return ($$0|0); + } + $10 = (16 - ($$025))|0; + $11 = $4 >> $10; + $12 = (((($1)) + 1024|0) + ($$025<<1)|0); + $13 = HEAP16[$12>>1]|0; + $14 = $13&65535; + $15 = (($11) - ($14))|0; + $16 = (((($1)) + 1124|0) + ($$025<<1)|0); + $17 = HEAP16[$16>>1]|0; + $18 = $17&65535; + $19 = (($15) + ($18))|0; + $20 = (((($1)) + 1156|0) + ($19)|0); + $21 = HEAP8[$20>>0]|0; + $22 = $21&255; + $23 = ($22|0)==($$025|0); + if (!($23)) { + ___assert_fail((10664|0),(9569|0),3876,(10680|0)); + // unreachable; + } + $24 = HEAP32[$2>>2]|0; + $25 = $24 >>> $$025; + HEAP32[$2>>2] = $25; + $26 = ((($0)) + 8|0); + $27 = HEAP32[$26>>2]|0; + $28 = (($27) - ($$025))|0; + HEAP32[$26>>2] = $28; + $29 = (((($1)) + 1444|0) + ($19<<1)|0); + $30 = HEAP16[$29>>1]|0; + $31 = $30&65535; + $$0 = $31; + return ($$0|0); +} +function _stbi__bit_reverse($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(17); + if ($2) { + $3 = (_stbi__bitreverse16($0)|0); + $4 = (16 - ($1))|0; + $5 = $3 >> $4; + return ($5|0); + } else { + ___assert_fail((10711|0),(9569|0),3766,(10722|0)); + // unreachable; + } + return (0)|0; +} +function _stbi__bitreverse16($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = $0 >>> 1; + $2 = $1 & 21845; + $3 = $0 << 1; + $4 = $3 & 43690; + $5 = $2 | $4; + $6 = $5 >>> 2; + $7 = $6 & 13107; + $8 = $5 << 2; + $9 = $8 & 52428; + $10 = $7 | $9; + $11 = $10 >>> 4; + $12 = $11 & 3855; + $13 = $10 << 4; + $14 = $13 & 61680; + $15 = $12 | $14; + $16 = $15 >>> 8; + $17 = $15 << 8; + $18 = $17 & 65280; + $19 = $18 | $16; + return ($19|0); +} +function _stbi__zget8($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($1>>>0)<($3>>>0); + if (!($4)) { + $$0 = 0; + return ($$0|0); + } + $5 = ((($1)) + 1|0); + HEAP32[$0>>2] = $5; + $6 = HEAP8[$1>>0]|0; + $$0 = $6; + return ($$0|0); +} +function _stbi__refill_buffer($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + $8 = (FUNCTION_TABLE_iiii[$2 & 15]($4,$5,$7)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = ((($0)) + 32|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 168|0); + HEAP32[$11>>2] = $5; + $12 = ((($0)) + 41|0); + $13 = ((($0)) + 172|0); + HEAP32[$13>>2] = $12; + HEAP8[$5>>0] = 0; + return; + } else { + $14 = ((($0)) + 168|0); + HEAP32[$14>>2] = $5; + $15 = (((($0)) + 40|0) + ($8)|0); + $16 = ((($0)) + 172|0); + HEAP32[$16>>2] = $15; + return; + } +} +function _stbi__rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 176|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 168|0); + HEAP32[$3>>2] = $2; + $4 = ((($0)) + 180|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 172|0); + HEAP32[$6>>2] = $5; + return; +} +function _stbi__start_callbacks($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + ;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0; + $4 = ((($0)) + 28|0); + HEAP32[$4>>2] = $2; + $5 = ((($0)) + 36|0); + HEAP32[$5>>2] = 128; + $6 = ((($0)) + 32|0); + HEAP32[$6>>2] = 1; + $7 = ((($0)) + 40|0); + $8 = ((($0)) + 176|0); + HEAP32[$8>>2] = $7; + _stbi__refill_buffer($0); + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 180|0); + HEAP32[$11>>2] = $10; + return; +} +function _stbi__stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_fread($1,1,$2,$0)|0); + return ($3|0); +} +function _stbi__stdio_skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (_fseek($0,$1,1)|0); + return; +} +function _stbi__stdio_eof($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_feof($0)|0); + return ($1|0); +} +function _LoadImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$1 = 0, $$sroa$0$144 = 0, $$sroa$10$0 = 0, $$sroa$10$0$$sroa_idx19 = 0, $$sroa$10$0$$sroa_idx20 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$1 = 0, $$sroa$10$140 = 0, $$sroa$10$141 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx23 = 0, $$sroa$13$0$$sroa_idx24 = 0, $$sroa$13$0$copyload = 0, $$sroa$13$1 = 0, $$sroa$13$146 = 0, $$sroa$13$147 = 0, $$sroa$15$0 = 0; + var $$sroa$15$0$$sroa_idx27 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$copyload = 0, $$sroa$15$1 = 0, $$sroa$15$2 = 0, $$sroa$15$248 = 0, $$sroa$15$249 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx15 = 0, $$sroa$7$0$$sroa_idx16 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$1 = 0, $$sroa$7$142 = 0, $$sroa$7$143 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0; + var $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer9 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer9 = sp + 32|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 44|0; + $4 = sp + 40|0; + $5 = sp + 36|0; + $6 = (_IsFileExtension($1,10992)|0); + $7 = ($6|0)==(0); + do { + if ($7) { + $19 = (_IsFileExtension($1,11045)|0); + $20 = ($19|0)==(0); + if ($20) { + HEAP32[$vararg_buffer1>>2] = $1; + _TraceLog(2,11050,$vararg_buffer1); + $$sroa$10$141 = 0;$$sroa$13$147 = 0;$$sroa$15$249 = 0;$$sroa$7$143 = 0; + break; + } + HEAP32[$3>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$5>>2] = 0; + $21 = (_fopen($1,11184)|0); + $22 = (_stbi_load_from_file($21,$3,$4,$5,0)|0); + (_fclose($21)|0); + $23 = HEAP32[$3>>2]|0; + $24 = HEAP32[$4>>2]|0; + $25 = HEAP32[$5>>2]|0; + switch ($25|0) { + case 1: { + $$sink = 1; + label = 11; + break; + } + case 2: { + $$sink = 2; + label = 11; + break; + } + case 3: { + $$sink = 4; + label = 11; + break; + } + case 4: { + $$sink = 7; + label = 11; + break; + } + default: { + $$sroa$15$1 = 0; + } + } + if ((label|0) == 11) { + $$sroa$15$1 = $$sink; + } + $$sroa$0$1 = $22;$$sroa$10$1 = $24;$$sroa$13$1 = 1;$$sroa$15$2 = $$sroa$15$1;$$sroa$7$1 = $23; + label = 14; + } else { + $8 = (_LoadResource($1,0)|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)==(1); + if ($10) { + $11 = ((($8)) + 20|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($8)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($8)) + 8|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($8)) + 12|0); + $18 = HEAP32[$17>>2]|0; + _LoadImagePro($2,$12,$14,$16,$18); + $$sroa$0$0$copyload = HEAP32[$2>>2]|0; + $$sroa$7$0$$sroa_idx15 = ((($2)) + 4|0); + $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx15>>2]|0; + $$sroa$10$0$$sroa_idx19 = ((($2)) + 8|0); + $$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx19>>2]|0; + $$sroa$13$0$$sroa_idx23 = ((($2)) + 12|0); + $$sroa$13$0$copyload = HEAP32[$$sroa$13$0$$sroa_idx23>>2]|0; + $$sroa$15$0$$sroa_idx27 = ((($2)) + 16|0); + $$sroa$15$0$copyload = HEAP32[$$sroa$15$0$$sroa_idx27>>2]|0; + $$sroa$0$0 = $$sroa$0$0$copyload;$$sroa$10$0 = $$sroa$10$0$copyload;$$sroa$13$0 = $$sroa$13$0$copyload;$$sroa$15$0 = $$sroa$15$0$copyload;$$sroa$7$0 = $$sroa$7$0$copyload; + } else { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,10998,$vararg_buffer); + $$sroa$0$0 = 0;$$sroa$10$0 = 0;$$sroa$13$0 = 0;$$sroa$15$0 = 0;$$sroa$7$0 = 0; + } + _UnloadResource($8); + $$sroa$0$1 = $$sroa$0$0;$$sroa$10$1 = $$sroa$10$0;$$sroa$13$1 = $$sroa$13$0;$$sroa$15$2 = $$sroa$15$0;$$sroa$7$1 = $$sroa$7$0; + label = 14; + } + } while(0); + if ((label|0) == 14) { + $26 = ($$sroa$0$1|0)==(0|0); + if ($26) { + $$sroa$10$141 = $$sroa$10$1;$$sroa$13$147 = $$sroa$13$1;$$sroa$15$249 = $$sroa$15$2;$$sroa$7$143 = $$sroa$7$1; + } else { + HEAP32[$vararg_buffer4>>2] = $1; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $$sroa$7$1; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $$sroa$10$1; + _TraceLog(0,11086,$vararg_buffer4); + $$sroa$0$144 = $$sroa$0$1;$$sroa$10$140 = $$sroa$10$1;$$sroa$13$146 = $$sroa$13$1;$$sroa$15$248 = $$sroa$15$2;$$sroa$7$142 = $$sroa$7$1; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; + } + } + HEAP32[$vararg_buffer9>>2] = $1; + _TraceLog(2,11125,$vararg_buffer9); + $$sroa$0$144 = 0;$$sroa$10$140 = $$sroa$10$141;$$sroa$13$146 = $$sroa$13$147;$$sroa$15$248 = $$sroa$15$249;$$sroa$7$142 = $$sroa$7$143; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; +} +function _LoadResource($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$05665 = 0, $$05764 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond60 = 0; + var $or$cond62 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 64|0; + $3 = sp + 32|0; + $4 = (_fopen($0,11184)|0); + $5 = ($4|0)==(0|0); + if ($5) { + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(2,11187,$vararg_buffer); + $$2 = 0; + STACKTOP = sp;return ($$2|0); + } + (_fread($2,1,1,$4)|0); + $6 = ((($2)) + 1|0); + (_fread($6,1,1,$4)|0); + $7 = ((($2)) + 2|0); + (_fread($7,1,1,$4)|0); + $8 = ((($2)) + 3|0); + (_fread($8,1,1,$4)|0); + $9 = ((($2)) + 4|0); + (_fread($9,2,1,$4)|0); + $10 = ((($2)) + 6|0); + (_fread($10,2,1,$4)|0); + $11 = HEAP8[$2>>0]|0; + $12 = ($11<<24>>24)==(114); + $13 = HEAP8[$6>>0]|0; + $14 = ($13<<24>>24)==(82); + $or$cond = $12 | $14; + $15 = HEAP8[$7>>0]|0; + $16 = ($15<<24>>24)==(69); + $or$cond60 = $or$cond | $16; + $17 = HEAP8[$8>>0]|0; + $18 = ($17<<24>>24)==(83); + $or$cond62 = $or$cond60 | $18; + if ($or$cond62) { + $19 = HEAP16[$10>>1]|0; + $20 = ($19<<16>>16)==(0); + if ($20) { + $$0$lcssa = 0; + } else { + $21 = ((($3)) + 7|0); + $22 = HEAP16[$10>>1]|0; + $23 = $22&65535; + $24 = ((($3)) + 8|0); + $25 = ((($3)) + 4|0); + $26 = ((($3)) + 16|0); + $27 = ((($3)) + 20|0); + $28 = ((($3)) + 24|0); + $29 = ((($3)) + 28|0); + $30 = ((($3)) + 8|0); + $31 = ((($3)) + 5|0); + $32 = ((($3)) + 12|0); + $$05665 = 0; + while(1) { + (_fread($3,32,1,$4)|0); + $36 = HEAP8[$21>>0]|0; + $37 = $36&255; + $38 = ($37*24)|0; + $39 = (_malloc($38)|0); + $40 = HEAP32[$3>>2]|0; + $41 = ($40|0)==($1|0); + if ($41) { + $42 = HEAP8[$21>>0]|0; + $43 = ($42<<24>>24)==(0); + if (!($43)) { + $$05764 = 0; + while(1) { + $44 = HEAP8[$25>>0]|0; + $45 = $44&255; + $46 = (($39) + (($$05764*24)|0)|0); + HEAP32[$46>>2] = $45; + $47 = HEAP32[$26>>2]|0; + $48 = (((($39) + (($$05764*24)|0)|0)) + 4|0); + HEAP32[$48>>2] = $47; + $49 = HEAP32[$27>>2]|0; + $50 = (((($39) + (($$05764*24)|0)|0)) + 8|0); + HEAP32[$50>>2] = $49; + $51 = HEAP32[$28>>2]|0; + $52 = (((($39) + (($$05764*24)|0)|0)) + 12|0); + HEAP32[$52>>2] = $51; + $53 = HEAP32[$29>>2]|0; + $54 = (((($39) + (($$05764*24)|0)|0)) + 16|0); + HEAP32[$54>>2] = $53; + $55 = HEAP32[$30>>2]|0; + $56 = (_malloc($55)|0); + (_fread($56,$55,1,$4)|0); + $57 = HEAP8[$31>>0]|0; + $58 = ($57<<24>>24)==(1); + if ($58) { + $59 = HEAP32[$30>>2]|0; + $60 = HEAP32[$32>>2]|0; + $61 = (_DecompressData($56,$59,$60)|0); + $62 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$62>>2] = $61; + _free($56); + } else { + $63 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$63>>2] = $56; + } + $64 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if (!($66)) { + $67 = HEAP32[$3>>2]|0; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $67; + _TraceLog(0,11284,$vararg_buffer4); + } + (_fread($3,32,1,$4)|0); + $68 = (($$05764) + 1)|0; + $69 = HEAP8[$21>>0]|0; + $70 = $69&255; + $71 = ($68|0)<($70|0); + if ($71) { + $$05764 = $68; + } else { + break; + } + } + } + } else { + $72 = HEAP32[$24>>2]|0; + (_fseek($4,$72,1)|0); + } + $73 = (($$05665) + 1)|0; + $74 = ($73|0)<($23|0); + if ($74) { + $$05665 = $73; + } else { + $$0$lcssa = $39; + break; + } + } + } + $33 = ((($$0$lcssa)) + 20|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)==(0|0); + if ($35) { + HEAP32[$vararg_buffer8>>2] = $0; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $1; + _TraceLog(2,11330,$vararg_buffer8); + $$1 = $$0$lcssa; + } else { + $$1 = $$0$lcssa; + } + } else { + HEAP32[$vararg_buffer1>>2] = $0; + _TraceLog(2,11238,$vararg_buffer1); + $$1 = 0; + } + (_fclose($4)|0); + $$2 = $$1; + STACKTOP = sp;return ($$2|0); +} +function _LoadImagePro($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy = sp + 20|0; + $5 = sp; + HEAP32[$5>>2] = $1; + $6 = ((($5)) + 4|0); + HEAP32[$6>>2] = $2; + $7 = ((($5)) + 8|0); + HEAP32[$7>>2] = $3; + $8 = ((($5)) + 12|0); + HEAP32[$8>>2] = 1; + $9 = ((($5)) + 16|0); + HEAP32[$9>>2] = $4; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$5+16>>2]|0; + _ImageCopy($0,$$byval_copy); + STACKTOP = sp;return; +} +function _UnloadResource($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if ($3) { + return; + } + _free($2); + return; +} +function _ImageCopy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$sroa$6$0 = 0, $$sroa$6$0$$sroa_idx10 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx12 = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx14 = 0, $$sroa$9$0 = 0, $$sroa$9$0$$sroa_idx16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $2 = ((($1)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($1)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = Math_imul($5, $3)|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + switch ($8|0) { + case 17: case 14: case 11: case 10: case 1: { + $$0 = $6; + break; + } + case 6: case 5: case 3: case 2: { + $9 = $6 << 1; + $$0 = $9; + break; + } + case 4: { + $10 = ($6*3)|0; + $$0 = $10; + break; + } + case 7: { + $11 = $6 << 2; + $$0 = $11; + break; + } + case 16: case 15: case 13: case 12: case 9: case 8: { + $12 = (($6|0) / 2)&-1; + $$0 = $12; + break; + } + case 18: { + $13 = (($6|0) / 4)&-1; + $$0 = $13; + break; + } + default: { + _TraceLog(2,11156,$vararg_buffer); + $$0 = $6; + } + } + $14 = (_malloc($$0)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$sroa$6$0 = 0;$$sroa$7$0 = 0;$$sroa$8$0 = 0;$$sroa$9$0 = 0; + } else { + $16 = HEAP32[$1>>2]|0; + _memcpy(($14|0),($16|0),($$0|0))|0; + $17 = HEAP32[$2>>2]|0; + $18 = HEAP32[$4>>2]|0; + $19 = ((($1)) + 12|0); + $20 = HEAP32[$19>>2]|0; + $21 = HEAP32[$7>>2]|0; + $$sroa$6$0 = $17;$$sroa$7$0 = $18;$$sroa$8$0 = $20;$$sroa$9$0 = $21; + } + HEAP32[$0>>2] = $14; + $$sroa$6$0$$sroa_idx10 = ((($0)) + 4|0); + HEAP32[$$sroa$6$0$$sroa_idx10>>2] = $$sroa$6$0; + $$sroa$7$0$$sroa_idx12 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx12>>2] = $$sroa$7$0; + $$sroa$8$0$$sroa_idx14 = ((($0)) + 12|0); + HEAP32[$$sroa$8$0$$sroa_idx14>>2] = $$sroa$8$0; + $$sroa$9$0$$sroa_idx16 = ((($0)) + 16|0); + HEAP32[$$sroa$9$0$$sroa_idx16>>2] = $$sroa$9$0; + STACKTOP = sp;return; +} +function _DecompressData($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer10 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = (_malloc($2)|0); + $4 = ($3|0)==(0|0); + if ($4) { + _TraceLog(2,11380,$vararg_buffer); + STACKTOP = sp;return ($3|0); + } + $5 = (_tinfl_decompress_mem_to_mem($3,$2,$0,$1,1)|0); + $6 = ($5|0)==(-1); + if ($6) { + _TraceLog(2,11419,$vararg_buffer1); + _free($3); + } + $7 = ($5|0)==($2|0); + if (!($7)) { + _TraceLog(2,11445,$vararg_buffer3); + HEAP32[$vararg_buffer5>>2] = $2; + _TraceLog(2,11508,$vararg_buffer5); + HEAP32[$vararg_buffer7>>2] = $5; + _TraceLog(2,11543,$vararg_buffer7); + } + HEAP32[$vararg_buffer10>>2] = $1; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $5; + _TraceLog(0,11578,$vararg_buffer10); + STACKTOP = sp;return ($3|0); +} +function _tinfl_decompress_mem_to_mem($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 11008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(11008|0); + $5 = sp + 11000|0; + $6 = sp; + $7 = sp + 8|0; + HEAP32[$5>>2] = $1; + HEAP32[$6>>2] = $3; + HEAP32[$7>>2] = 0; + $8 = $4 & -7; + $9 = $8 | 4; + $10 = (_tinfl_decompress($7,$2,$6,$0,$0,$5,$9)|0); + $11 = ($10|0)!=(0); + $12 = HEAP32[$5>>2]|0; + $13 = $11 ? -1 : $12; + STACKTOP = sp;return ($13|0); +} +function _tinfl_decompress($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$ = 0, $$$301127 = 0, $$010861840 = 0, $$010871839 = 0, $$010881838 = 0, $$010911856 = 0, $$010941846 = 0, $$010951864 = 0, $$01097 = 0, $$01194 = 0, $$011971855 = 0, $$01202 = 0, $$01202$shrunk = 0, $$01203 = 0, $$01300 = 0, $$01300$shrunk = 0, $$01309 = 0, $$01410 = 0, $$01410$shrunk = 0, $$01411 = 0; + var $$01411$shrunk = 0, $$01412 = 0, $$01413 = 0, $$01413$shrunk = 0, $$01416 = 0, $$01507 = 0, $$01607 = 0, $$01834 = 0, $$0937$lcssa = 0, $$09371833 = 0, $$0938$lcssa = 0, $$09381832 = 0, $$0941$lcssa = 0, $$09411816 = 0, $$09431831 = 0, $$09441830 = 0, $$0947 = 0, $$0947$shrunk = 0, $$0948 = 0, $$0949 = 0; + var $$0950 = 0, $$0950$shrunk = 0, $$0951 = 0, $$0952 = 0, $$0952$shrunk = 0, $$0953 = 0, $$0956 = 0, $$0959 = 0, $$0959$shrunk = 0, $$0960 = 0, $$0963 = 0, $$0967 = 0, $$0971 = 0, $$0971$shrunk = 0, $$0972 = 0, $$0975 = 0, $$0978 = 0, $$0979 = 0, $$0979$shrunk = 0, $$0980 = 0; + var $$0980$shrunk = 0, $$0981 = 0, $$0984 = 0, $$0987 = 0, $$0991 = 0, $$1$lcssa = 0, $$100 = 0, $$1001409 = 0, $$101426 = 0, $$101617 = 0, $$110891852 = 0, $$11098 = 0, $$11098$ph = 0, $$111427 = 0, $$111518 = 0, $$111618 = 0, $$11198 = 0, $$11204 = 0, $$11204$ph = 0, $$11310 = 0; + var $$11310$ph = 0, $$11417 = 0, $$11508 = 0, $$11608 = 0, $$11818 = 0, $$121428 = 0, $$121428$ph = 0, $$121519 = 0, $$121619 = 0, $$121619$ph = 0, $$13 = 0, $$131004 = 0, $$131110 = 0, $$131216 = 0, $$131322 = 0, $$131429 = 0, $$131520 = 0, $$131620 = 0, $$14 = 0, $$141005 = 0; + var $$141111 = 0, $$141217 = 0, $$141323 = 0, $$141430 = 0, $$141521 = 0, $$141621 = 0, $$15 = 0, $$151006 = 0, $$151112 = 0, $$151218 = 0, $$151324 = 0, $$151431 = 0, $$151522 = 0, $$151622 = 0, $$16 = 0, $$161007 = 0, $$161113 = 0, $$161113$ph = 0, $$161219 = 0, $$161325 = 0; + var $$161432 = 0, $$161523 = 0, $$161623 = 0, $$17 = 0, $$17$ph = 0, $$171008 = 0, $$171008$ph = 0, $$171114 = 0, $$171220 = 0, $$171220$ph = 0, $$171326 = 0, $$171326$ph = 0, $$171433 = 0, $$171524 = 0, $$171624 = 0, $$1753 = 0, $$1754 = 0, $$18 = 0, $$181009 = 0, $$181115 = 0; + var $$181221 = 0, $$181327 = 0, $$181434 = 0, $$181525 = 0, $$181625 = 0, $$19 = 0, $$191010 = 0, $$191116 = 0, $$191222 = 0, $$191328 = 0, $$191435 = 0, $$191526 = 0, $$191626 = 0, $$1939$lcssa = 0, $$19391817 = 0, $$19421823 = 0, $$1945$lcssa = 0, $$19451815 = 0, $$1954 = 0, $$1957 = 0; + var $$1961 = 0, $$1961$ = 0, $$1964 = 0, $$1968 = 0, $$1973 = 0, $$1976 = 0, $$1982 = 0, $$1985 = 0, $$1988 = 0, $$1988$ph = 0, $$1992 = 0, $$1992$ph = 0, $$2$lcssa = 0, $$20 = 0, $$201011 = 0, $$201117 = 0, $$201223 = 0, $$201329 = 0, $$201436 = 0, $$201527 = 0; + var $$201627 = 0, $$21 = 0, $$21099 = 0, $$211012 = 0, $$211118 = 0, $$211224 = 0, $$211330 = 0, $$211437 = 0, $$211437$ph = 0, $$211528 = 0, $$211628 = 0, $$211628$ph = 0, $$21196 = 0, $$21199$lcssa = 0, $$211991845 = 0, $$21205 = 0, $$21311 = 0, $$21418 = 0, $$21509 = 0, $$21609 = 0; + var $$21825 = 0, $$22 = 0, $$221013 = 0, $$221119 = 0, $$221225 = 0, $$221331 = 0, $$221438 = 0, $$221529 = 0, $$221629 = 0, $$23 = 0, $$231014 = 0, $$231120 = 0, $$231226 = 0, $$231332 = 0, $$231439 = 0, $$231530 = 0, $$231630 = 0, $$24 = 0, $$241015 = 0, $$241121 = 0; + var $$241227 = 0, $$241333 = 0, $$241440 = 0, $$241531 = 0, $$241631 = 0, $$25 = 0, $$251016 = 0, $$251122 = 0, $$251122$ph = 0, $$251228 = 0, $$251334 = 0, $$251441 = 0, $$251532 = 0, $$251632 = 0, $$26 = 0, $$26$ph = 0, $$261017 = 0, $$261017$ph = 0, $$261123 = 0, $$261229 = 0; + var $$261229$ph = 0, $$261335 = 0, $$261335$ph = 0, $$261442 = 0, $$261533 = 0, $$261633 = 0, $$27 = 0, $$271018 = 0, $$271124 = 0, $$271230 = 0, $$271336 = 0, $$271443 = 0, $$271534 = 0, $$271634 = 0, $$28 = 0, $$281019 = 0, $$281125 = 0, $$281231 = 0, $$281337 = 0, $$281444 = 0; + var $$281535 = 0, $$281635 = 0, $$29 = 0, $$291020 = 0, $$291126 = 0, $$291232 = 0, $$291338 = 0, $$291445 = 0, $$291536 = 0, $$291636 = 0, $$2940$lcssa = 0, $$29401824 = 0, $$2946$lcssa = 0, $$29461822 = 0, $$2955 = 0, $$2958 = 0, $$2965 = 0, $$2969 = 0, $$2974 = 0, $$2977 = 0; + var $$2983 = 0, $$2986 = 0, $$2989 = 0, $$2993 = 0, $$30 = 0, $$301021 = 0, $$301127 = 0, $$301233 = 0, $$301339 = 0, $$301446 = 0, $$301537 = 0, $$301637 = 0, $$31 = 0, $$31100$v = 0, $$311022 = 0, $$311128 = 0, $$311234 = 0, $$311340 = 0, $$311447 = 0, $$311538 = 0; + var $$311638 = 0, $$31200 = 0, $$31206 = 0, $$31206$ph = 0, $$31312 = 0, $$31312$ph = 0, $$31419 = 0, $$31419$ph = 0, $$31610 = 0, $$31610$ph = 0, $$32 = 0, $$321023 = 0, $$321129 = 0, $$321235 = 0, $$321341 = 0, $$321448 = 0, $$321448$ph = 0, $$321539 = 0, $$321639 = 0, $$321639$ph = 0; + var $$33 = 0, $$331024 = 0, $$331130 = 0, $$331236 = 0, $$331342 = 0, $$331449 = 0, $$331540 = 0, $$331640 = 0, $$34 = 0, $$341025 = 0, $$341131 = 0, $$341237 = 0, $$341343 = 0, $$341450 = 0, $$341541 = 0, $$341641 = 0, $$35 = 0, $$351026 = 0, $$351132 = 0, $$351238 = 0; + var $$351344 = 0, $$351451 = 0, $$351542 = 0, $$351642 = 0, $$36 = 0, $$361027 = 0, $$361027$ph = 0, $$361133 = 0, $$361133$ph = 0, $$361239 = 0, $$361345 = 0, $$361452 = 0, $$361543 = 0, $$361643 = 0, $$37 = 0, $$37$ph = 0, $$371028 = 0, $$371134 = 0, $$371240 = 0, $$371240$ph = 0; + var $$371346 = 0, $$371346$ph = 0, $$371453 = 0, $$371453$ph = 0, $$371544 = 0, $$371644 = 0, $$371644$ph = 0, $$38 = 0, $$381029 = 0, $$381135 = 0, $$381241 = 0, $$381347 = 0, $$381454 = 0, $$381545 = 0, $$381645 = 0, $$39 = 0, $$391030 = 0, $$391136 = 0, $$391242 = 0, $$391348 = 0; + var $$391455 = 0, $$391546 = 0, $$391646 = 0, $$3966 = 0, $$3970 = 0, $$3990 = 0, $$3990$ph = 0, $$3994 = 0, $$3994$ph = 0, $$40 = 0, $$401031 = 0, $$401137 = 0, $$401243 = 0, $$401349 = 0, $$401456 = 0, $$401547 = 0, $$401647 = 0, $$41 = 0, $$411032 = 0, $$411032$ph = 0; + var $$411138 = 0, $$411138$ph = 0, $$411244 = 0, $$411350 = 0, $$411457 = 0, $$411548 = 0, $$411648 = 0, $$41201 = 0, $$41420 = 0, $$41511 = 0, $$41611 = 0, $$42 = 0, $$42$ph = 0, $$421033 = 0, $$421139 = 0, $$421245 = 0, $$421245$ph = 0, $$421351 = 0, $$421351$ph = 0, $$421458 = 0; + var $$421549 = 0, $$421649 = 0, $$43 = 0, $$431034 = 0, $$431140 = 0, $$431246 = 0, $$431352 = 0, $$431459 = 0, $$431550 = 0, $$431650 = 0, $$44 = 0, $$441035 = 0, $$441141 = 0, $$441247 = 0, $$441353 = 0, $$441460 = 0, $$441460$ph = 0, $$441551 = 0, $$441651 = 0, $$441651$ph = 0; + var $$45 = 0, $$451036 = 0, $$451142 = 0, $$451248 = 0, $$451354 = 0, $$451461 = 0, $$451552 = 0, $$451652 = 0, $$46 = 0, $$461037 = 0, $$461143 = 0, $$461249 = 0, $$461355 = 0, $$461462 = 0, $$461553 = 0, $$461653 = 0, $$47 = 0, $$471038 = 0, $$471144 = 0, $$471250 = 0; + var $$471356 = 0, $$471463 = 0, $$471554 = 0, $$471654 = 0, $$48 = 0, $$481039 = 0, $$481039$ph = 0, $$481145 = 0, $$481145$ph = 0, $$481251 = 0, $$481357 = 0, $$481464 = 0, $$481555 = 0, $$481655 = 0, $$49 = 0, $$49$ph = 0, $$491040 = 0, $$491146 = 0, $$491252 = 0, $$491252$ph = 0; + var $$491358 = 0, $$491358$ph = 0, $$491465 = 0, $$491465$ph = 0, $$491556 = 0, $$491656 = 0, $$491656$ph = 0, $$5 = 0, $$50 = 0, $$501041 = 0, $$501147 = 0, $$501253 = 0, $$501359 = 0, $$501466 = 0, $$501557 = 0, $$501657 = 0, $$51 = 0, $$51102 = 0, $$511042 = 0, $$511148 = 0; + var $$511254 = 0, $$511360 = 0, $$511467 = 0, $$511558 = 0, $$511658 = 0, $$51208 = 0, $$51314 = 0, $$51512 = 0, $$52 = 0, $$521043 = 0, $$521043$ph = 0, $$521149 = 0, $$521255 = 0, $$521361 = 0, $$521468 = 0, $$521559 = 0, $$521659 = 0, $$53 = 0, $$531044 = 0, $$531150 = 0; + var $$531150$ph = 0, $$531256 = 0, $$531362 = 0, $$531469 = 0, $$531560 = 0, $$531660 = 0, $$54 = 0, $$54$ph = 0, $$541045 = 0, $$541151 = 0, $$541257 = 0, $$541257$ph = 0, $$541363 = 0, $$541363$ph = 0, $$541470$ph = 0, $$541561 = 0, $$541661$lcssa = 0, $$541661$ph = 0, $$5416611868 = 0, $$55 = 0; + var $$551046 = 0, $$551152 = 0, $$551258 = 0, $$551364 = 0, $$551471 = 0, $$551562 = 0, $$551662 = 0, $$56 = 0, $$561047 = 0, $$561153 = 0, $$561259 = 0, $$561365 = 0, $$561472 = 0, $$561563 = 0, $$561663 = 0, $$57 = 0, $$571048$ph = 0, $$571154 = 0, $$571260 = 0, $$571366 = 0; + var $$571473 = 0, $$571473$ph = 0, $$571564 = 0, $$571664 = 0, $$571664$ph = 0, $$58 = 0, $$581049 = 0, $$581155$lcssa = 0, $$581155$ph = 0, $$5811551871 = 0, $$581261 = 0, $$581367 = 0, $$581474 = 0, $$581565$lcssa = 0, $$581565$ph = 0, $$5815651869 = 0, $$581665 = 0, $$59$lcssa = 0, $$59$ph = 0, $$591050 = 0; + var $$591156 = 0, $$591262$ph = 0, $$591368$lcssa = 0, $$591368$ph = 0, $$5913681870 = 0, $$591475 = 0, $$591566 = 0, $$591666 = 0, $$591872 = 0, $$5996 = 0, $$6 = 0, $$60 = 0, $$601051 = 0, $$601051$ph = 0, $$601157 = 0, $$601263 = 0, $$601369 = 0, $$601476 = 0, $$601567 = 0, $$61 = 0; + var $$61103 = 0, $$611052 = 0, $$611158 = 0, $$611158$ph = 0, $$611264 = 0, $$611370 = 0, $$611477 = 0, $$611568 = 0, $$611668 = 0, $$61209 = 0, $$61315 = 0, $$61513 = 0, $$62 = 0, $$62$ph = 0, $$621053 = 0, $$621159 = 0, $$621265 = 0, $$621265$ph = 0, $$621371 = 0, $$621371$ph = 0; + var $$621478 = 0, $$621569 = 0, $$621669 = 0, $$63 = 0, $$631054 = 0, $$631266 = 0, $$631372 = 0, $$631479 = 0, $$631479$ph = 0, $$631570 = 0, $$631670 = 0, $$64 = 0, $$641055 = 0, $$641161 = 0, $$641267 = 0, $$641373 = 0, $$641480 = 0, $$641571 = 0, $$641671 = 0, $$641671$ph = 0; + var $$65 = 0, $$651056 = 0, $$651162 = 0, $$651268 = 0, $$651374 = 0, $$651481 = 0, $$651572 = 0, $$651672 = 0, $$66 = 0, $$661057 = 0, $$661057$ph = 0, $$661163 = 0, $$661269 = 0, $$661375 = 0, $$661482 = 0, $$661673 = 0, $$671058 = 0, $$671164 = 0, $$671164$ph = 0, $$671270 = 0; + var $$671483 = 0, $$671574 = 0, $$671674 = 0, $$68 = 0, $$681059 = 0, $$681165 = 0, $$681271 = 0, $$681271$ph = 0, $$681377 = 0, $$681484 = 0, $$681484$ph = 0, $$681575 = 0, $$681675 = 0, $$69 = 0, $$691060 = 0, $$691166 = 0, $$691272 = 0, $$691378 = 0, $$691485 = 0, $$691576 = 0; + var $$691676 = 0, $$691676$ph = 0, $$6997 = 0, $$7 = 0, $$70 = 0, $$701061 = 0, $$701167 = 0, $$701273 = 0, $$701379 = 0, $$701486 = 0, $$701577 = 0, $$701677 = 0, $$71 = 0, $$71$ph = 0, $$71104 = 0, $$711062 = 0, $$711062$ph = 0, $$711168 = 0, $$711274 = 0, $$711380 = 0; + var $$711380$ph = 0, $$711487 = 0, $$711578 = 0, $$711678 = 0, $$71210 = 0, $$71316 = 0, $$71514 = 0, $$72 = 0, $$721063 = 0, $$721169 = 0, $$721169$ph = 0, $$721275 = 0, $$721381 = 0, $$721488 = 0, $$721488$ph = 0, $$721579 = 0, $$721679 = 0, $$73 = 0, $$731064 = 0, $$731170 = 0; + var $$731276 = 0, $$731276$ph = 0, $$731382 = 0, $$731489 = 0, $$731580 = 0, $$731680 = 0, $$731680$ph = 0, $$74 = 0, $$741065 = 0, $$741065$ph = 0, $$741171 = 0, $$741277 = 0, $$741383 = 0, $$741490 = 0, $$741581 = 0, $$741681 = 0, $$75 = 0, $$751066 = 0, $$751172 = 0, $$751278 = 0; + var $$751384 = 0, $$751491 = 0, $$751582 = 0, $$751682 = 0, $$76 = 0, $$76$ph = 0, $$761067 = 0, $$761173 = 0, $$761173$ph = 0, $$761279 = 0, $$761279$ph = 0, $$761385 = 0, $$761385$ph = 0, $$761492 = 0, $$761583 = 0, $$761683 = 0, $$77 = 0, $$771068 = 0, $$771174 = 0, $$771280 = 0; + var $$771386 = 0, $$771584 = 0, $$771684 = 0, $$78 = 0, $$781069 = 0, $$781175 = 0, $$781281 = 0, $$781387 = 0, $$781585 = 0, $$781685 = 0, $$79 = 0, $$791070 = 0, $$791176 = 0, $$791282 = 0, $$791388 = 0, $$791586 = 0, $$791686 = 0, $$7998 = 0, $$8 = 0, $$8$ph = 0; + var $$80 = 0, $$80$ph = 0, $$801071 = 0, $$801177 = 0, $$801283 = 0, $$801389 = 0, $$801389$ph = 0, $$801496 = 0, $$801587 = 0, $$801687 = 0, $$81 = 0, $$81105 = 0, $$81105$ph = 0, $$811178 = 0, $$811284 = 0, $$811390 = 0, $$811497 = 0, $$811588 = 0, $$81211 = 0, $$81211$ph = 0; + var $$81317 = 0, $$81317$ph = 0, $$81424 = 0, $$81515 = 0, $$81615 = 0, $$82 = 0, $$821179 = 0, $$821285 = 0, $$821391 = 0, $$821498 = 0, $$821589 = 0, $$83 = 0, $$831180 = 0, $$831392 = 0, $$831499 = 0, $$831590 = 0, $$84 = 0, $$841075 = 0, $$841393 = 0, $$841500 = 0; + var $$841500$ph = 0, $$841591 = 0, $$841691 = 0, $$85 = 0, $$851076 = 0, $$851394 = 0, $$851501 = 0, $$851592 = 0, $$851692 = 0, $$86 = 0, $$861077 = 0, $$861289 = 0, $$861395 = 0, $$861502 = 0, $$861693 = 0, $$871078 = 0, $$871184 = 0, $$871290 = 0, $$871503 = 0, $$871694 = 0; + var $$881079 = 0, $$881079$ph = 0, $$881185 = 0, $$881291 = 0, $$881504 = 0, $$881595 = 0, $$881695 = 0, $$881695$ph = 0, $$891080 = 0, $$891186 = 0, $$891292 = 0, $$891505 = 0, $$891596 = 0, $$891696 = 0, $$8999 = 0, $$8999$ph = 0, $$9 = 0, $$90 = 0, $$901081 = 0, $$901187 = 0; + var $$901187$ph = 0, $$901293 = 0, $$901293$ph = 0, $$901399 = 0, $$901506 = 0, $$901597 = 0, $$901697 = 0, $$91 = 0, $$91000 = 0, $$91106 = 0, $$911082 = 0, $$911188 = 0, $$911294 = 0, $$911400 = 0, $$911598 = 0, $$911698 = 0, $$91212 = 0, $$91318 = 0, $$91425 = 0, $$91616 = 0; + var $$92 = 0, $$921083 = 0, $$921189 = 0, $$921295 = 0, $$921401 = 0, $$921599 = 0, $$921699 = 0, $$93 = 0, $$931084 = 0, $$931190 = 0, $$931296 = 0, $$931402 = 0, $$931600 = 0, $$931700 = 0, $$94 = 0, $$94$ph = 0, $$941085 = 0, $$941191 = 0, $$941297 = 0, $$941403 = 0; + var $$941403$ph = 0, $$941601 = 0, $$941701 = 0, $$95 = 0, $$951192 = 0, $$951298 = 0, $$951404 = 0, $$951602 = 0, $$96 = 0, $$961193 = 0, $$961299 = 0, $$961405 = 0, $$961603 = 0, $$97 = 0, $$971406 = 0, $$971604 = 0, $$98 = 0, $$981407 = 0, $$981605 = 0, $$99 = 0; + var $$991408 = 0, $$991606 = 0, $$lcssa1778 = 0, $$lcssa1779 = 0, $$lcssa1799 = 0, $$lcssa1802 = 0, $$not = 0, $$not1747 = 0, $$sink12 = 0, $$sink13 = 0, $$sink16 = 0, $$sink17 = 0, $$sink1705 = 0, $$sink1710 = 0, $$sink1713 = 0, $$sink1716 = 0, $$sink1719 = 0, $$sink1722 = 0, $$sink1729 = 0, $$sink1732 = 0; + var $$sink1736 = 0, $$sink1739 = 0, $$sink1743 = 0, $$sink1746 = 0, $$sink1750 = 0, $$sink3 = 0, $$sink3$shrunk = 0, $$sink30 = 0, $$sink9 = 0, $$sink9$shrunk = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; + var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; + var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; + var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; + var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; + var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; + var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; + var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; + var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0; + var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0; + var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0; + var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; + var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; + var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; + var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; + var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; + var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0; + var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0; + var $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0; + var $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0; + var $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0; + var $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; + var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; + var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; + var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; + var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; + var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; + var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; + var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; + var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; + var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; + var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; + var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; + var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; + var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; + var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; + var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; + var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; + var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; + var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; + var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; + var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; + var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $exitcond = 0, $not$ = 0, $not$1755 = 0, $or$cond = 0, $or$cond1702 = 0, $or$cond1752 = 0, $or$cond24 = 0, $or$cond29 = 0, $scevgep = 0; + var $scevgep1947 = 0, $scevgep1948 = 0, $scevgep1955 = 0, $scevgep1957 = 0, $scevgep1959 = 0, $scevgep19611962 = 0, $trunc = 0, $trunc$clear = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $7 = sp + 64|0; + $8 = sp; + $9 = HEAP32[$2>>2]|0; + $10 = (($1) + ($9)|0); + $11 = HEAP32[$5>>2]|0; + $12 = (($4) + ($11)|0); + $13 = $6 & 4; + $14 = ($13|0)!=(0); + $15 = $4; + $16 = $3; + $17 = $16 ^ -1; + $18 = (($15) + ($17))|0; + $19 = (($18) + ($11))|0; + $$1753 = $14 ? -1 : $19; + $20 = (($$1753) + 1)|0; + $21 = $20 & $$1753; + $22 = ($21|0)!=(0); + $23 = ($4>>>0)<($3>>>0); + $or$cond1702 = $23 | $22; + if ($or$cond1702) { + HEAP32[$5>>2] = 0; + HEAP32[$2>>2] = 0; + $$0951 = -3; + STACKTOP = sp;return ($$0951|0); + } + $24 = ((($0)) + 4|0); + $25 = HEAP32[$24>>2]|0; + $26 = ((($0)) + 56|0); + $27 = HEAP32[$26>>2]|0; + $28 = ((($0)) + 32|0); + $29 = HEAP32[$28>>2]|0; + $30 = ((($0)) + 36|0); + $31 = HEAP32[$30>>2]|0; + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + $34 = ((($0)) + 60|0); + $35 = HEAP32[$34>>2]|0; + $36 = HEAP32[$0>>2]|0; + L5: do { + switch ($36|0) { + case 0: { + $37 = ((($0)) + 12|0); + HEAP32[$37>>2] = 0; + $38 = ((($0)) + 8|0); + HEAP32[$38>>2] = 0; + $39 = ((($0)) + 28|0); + HEAP32[$39>>2] = 1; + $40 = ((($0)) + 16|0); + HEAP32[$40>>2] = 1; + $41 = $6 & 1; + $42 = ($41|0)==(0); + if ($42) { + $$01416 = $35;$$01607 = $4;$$41511 = $1;$$5 = 0;$$51102 = 0;$$51208 = 0;$$51314 = 0;$$5996 = 0; + label = 14; + } else { + $43 = ($9|0)<(1); + if ($43) { + $$01097 = 0;$$01203 = 0;$$01309 = 0;$$0987 = 0;$$0991 = 0; + label = 6; + } else { + $$11098$ph = 0;$$11204$ph = 0;$$11310$ph = 0;$$1988$ph = 0;$$1992$ph = 0; + label = 8; + } + } + break; + } + case 1: { + $46 = ($9|0)>(0); + if ($46) { + $$11098$ph = $31;$$11204$ph = $33;$$11310$ph = $27;$$1988$ph = $25;$$1992$ph = $29; + label = 8; + } else { + $$01097 = $31;$$01203 = $33;$$01309 = $27;$$0987 = $25;$$0991 = $29; + label = 6; + } + break; + } + case 2: { + $53 = ($9|0)>(0); + if ($53) { + $$31206$ph = $33;$$31312$ph = $27;$$3990$ph = $25;$$3994$ph = $29;$$sink1705 = $1; + label = 12; + } else { + $$11508 = $1;$$21099 = $31;$$21205 = $33;$$21311 = $27;$$2989 = $25;$$2993 = $29; + label = 10; + } + break; + } + case 36: { + $$0960 = -1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 36; + label = 243; + break; + } + case 3: { + $75 = ($9|0)>(0); + if ($75) { + $$31419$ph = $35;$$31610$ph = $4;$$8$ph = $25;$$81105$ph = $31;$$81211$ph = $33;$$81317$ph = $27;$$8999$ph = $29;$$sink1710 = $1; + label = 18; + } else { + $$21418 = $35;$$21609 = $4;$$61513 = $1;$$7 = $25;$$71104 = $31;$$71210 = $33;$$71316 = $27;$$7998 = $29; + label = 16; + } + break; + } + case 5: { + $90 = ($9|0)>(0); + if ($90) { + $91 = ((($1)) + 1|0); + $92 = HEAP8[$1>>0]|0; + $93 = $92&255; + $$01412 = $93;$$111518 = $91; + } else { + $88 = $6 & 2; + $89 = ($88|0)==(0); + if ($89) { + $$01412 = 0;$$111518 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 5; + label = 243; + break L5; + } + } + $94 = $$01412 << $25; + $95 = $94 | $27; + $96 = (($25) + 8)|0; + $$121519 = $$111518;$$13 = $96;$$131004 = $29;$$131216 = $33;$$131322 = $95;$$81424 = $35;$$81615 = $4; + label = 25; + break; + } + case 6: { + $106 = ($9|0)>(0); + if ($106) { + $$121428$ph = $35;$$121619$ph = $4;$$161113$ph = $31;$$17$ph = $25;$$171008$ph = $29;$$171220$ph = $33;$$171326$ph = $27;$$sink1713 = $1; + label = 32; + } else { + $$111427 = $35;$$111618 = $4;$$151112 = $31;$$151522 = $1;$$16 = $25;$$161007 = $29;$$161219 = $33;$$161325 = $27; + label = 30; + } + break; + } + case 7: { + $120 = ($9|0)>(0); + if ($120) { + $121 = ((($1)) + 1|0); + $122 = HEAP8[$1>>0]|0; + $$151431 = $35;$$151622 = $4;$$191116 = $31;$$191526 = $121;$$20 = $25;$$201011 = $29;$$201223 = $33;$$201329 = $27;$$sink12 = $122; + label = 39; + } else { + $$141430 = $35;$$141621 = $4;$$181115 = $31;$$181525 = $1;$$19 = $25;$$191010 = $29;$$191222 = $33;$$191328 = $27; + label = 36; + } + break; + } + case 39: { + $$171433 = $35;$$171624 = $4;$$211118 = $31;$$211528 = $1;$$22 = $25;$$221013 = $29;$$221225 = $33;$$221331 = $27; + label = 43; + break; + } + case 51: { + $152 = ($9|0)>(0); + if ($152) { + $$211437$ph = $35;$$211628$ph = $4;$$251122$ph = $31;$$26$ph = $25;$$261017$ph = $29;$$261229$ph = $33;$$261335$ph = $27;$$sink1716 = $1; + label = 49; + } else { + $$201436 = $35;$$201627 = $4;$$241121 = $31;$$241531 = $1;$$25 = $25;$$251016 = $29;$$251228 = $33;$$251334 = $27; + label = 47; + } + break; + } + case 52: { + $$231439 = $35;$$231630 = $4;$$271018 = $29;$$271124 = $31;$$271534 = $1;$$28 = $25;$$281231 = $33;$$281337 = $27; + label = 52; + break; + } + case 9: { + $$251441 = $35;$$251632 = $4;$$291020 = $29;$$291126 = $31;$$291536 = $1;$$30 = $25;$$301233 = $33;$$301339 = $27; + label = 55; + break; + } + case 38: { + $$261442 = $35;$$261633 = $4;$$301021 = $29;$$301127 = $31;$$301537 = $1;$$31 = $25;$$311234 = $33;$$311340 = $27; + label = 56; + break; + } + case 40: { + $$271443 = $35;$$271634 = $4;$$311022 = $29;$$311128 = $31;$$311538 = $1;$$32 = $25;$$321235 = $33;$$321341 = $27; + label = 58; + break; + } + case 10: { + $$281444 = $35;$$281635 = $4;$$321023 = $29;$$321129 = $31;$$321539 = $1;$$33 = $25;$$331236 = $33;$$331342 = $27; + label = 60; + break; + } + case 11: { + $193 = ($9|0)>(0); + if ($193) { + $$321448$ph = $35;$$321639$ph = $4;$$361027$ph = $29;$$361133$ph = $31;$$37$ph = $25;$$371240$ph = $33;$$371346$ph = $27;$$sink1719 = $1; + label = 66; + } else { + $$311447 = $35;$$311638 = $4;$$351026 = $29;$$351132 = $31;$$351542 = $1;$$36 = $25;$$361239 = $33;$$361345 = $27; + label = 64; + } + break; + } + case 14: { + $224 = ($9|0)>(0); + if ($224) { + $$371453$ph = $35;$$371644$ph = $4;$$411032$ph = $29;$$411138$ph = $31;$$42$ph = $25;$$421245$ph = $33;$$421351$ph = $27;$$sink1722 = $1; + label = 75; + } else { + $$361452 = $35;$$361643 = $4;$$401031 = $29;$$401137 = $31;$$401547 = $1;$$41 = $25;$$411244 = $33;$$411350 = $27; + label = 73; + } + break; + } + case 35: { + $$401456 = $35;$$401647 = $4;$$441035 = $29;$$441141 = $31;$$441551 = $1;$$45 = $25;$$451248 = $33;$$451354 = $27; + label = 86; + break; + } + case 16: { + $452 = ($9|0)>(0); + if ($452) { + $$441460$ph = $35;$$441651$ph = $4;$$481039$ph = $29;$$481145$ph = $31;$$49$ph = $25;$$491252$ph = $33;$$491358$ph = $27;$$sink1729 = $1; + label = 116; + } else { + $$431459 = $35;$$431650 = $4;$$471038 = $29;$$471144 = $31;$$471554 = $1;$$48 = $25;$$481251 = $33;$$481357 = $27; + label = 114; + } + break; + } + case 17: { + $$461462 = $35;$$461653 = $4;$$491040 = $29;$$501147 = $31;$$501557 = $1;$$51 = $25;$$511254 = $33;$$511360 = $27; + label = 125; + break; + } + case 18: { + $503 = ($9|0)>(0); + if ($503) { + $$491465$ph = $35;$$491656$ph = $4;$$521043$ph = $29;$$531150$ph = $31;$$54$ph = $25;$$541257$ph = $33;$$541363$ph = $27;$$sink1732 = $1; + label = 130; + } else { + $$481464 = $35;$$481655 = $4;$$511042 = $29;$$521149 = $31;$$521559 = $1;$$53 = $25;$$531256 = $33;$$531362 = $27; + label = 128; + } + break; + } + case 21: { + $$511467 = $35;$$511658 = $4;$$541045 = $29;$$551152 = $31;$$551562 = $1;$$56 = $25;$$561259 = $33;$$561365 = $27; + label = 136; + break; + } + case 23: { + $572 = ($9|0)>(0); + if ($572) { + $$571473$ph = $35;$$571664$ph = $4;$$601051$ph = $29;$$611158$ph = $31;$$62$ph = $25;$$621265$ph = $33;$$621371$ph = $27;$$sink1736 = $1; + label = 153; + } else { + $$561472 = $35;$$561663 = $4;$$591050 = $29;$$601157 = $31;$$601567 = $1;$$61 = $25;$$611264 = $33;$$611370 = $27; + label = 151; + } + break; + } + case 24: { + $$591475 = $35;$$591666 = $4;$$621053 = $29;$$621159 = $31;$$631570 = $1;$$64 = $25;$$641267 = $33;$$641373 = $27; + label = 160; + break; + } + case 25: { + $696 = ($9|0)>(0); + if ($696) { + $$631479$ph = $35;$$641671$ph = $4;$$661057$ph = $29;$$671164$ph = $31;$$681271$ph = $33;$$71$ph = $25;$$711380$ph = $27;$$sink1739 = $1; + label = 182; + } else { + $$621478 = $35;$$631670 = $4;$$651056 = $29;$$661163 = $31;$$671270 = $33;$$691576 = $1;$$70 = $25;$$701379 = $27; + label = 180; + } + break; + } + case 26: { + $737 = ($9|0)>(0); + if ($737) { + $$681484$ph = $35;$$691676$ph = $4;$$711062$ph = $29;$$721169$ph = $31;$$731276$ph = $33;$$76$ph = $25;$$761385$ph = $27;$$sink1743 = $1; + label = 195; + } else { + $$671483 = $35;$$681675 = $4;$$701061 = $29;$$711168 = $31;$$721275 = $33;$$741581 = $1;$$75 = $25;$$751384 = $27; + label = 193; + } + break; + } + case 27: { + $784 = ($9|0)>(0); + if ($784) { + $$721488$ph = $35;$$731680$ph = $4;$$741065$ph = $29;$$761173$ph = $31;$$761279$ph = $33;$$80$ph = $25;$$801389$ph = $27;$$sink1746 = $1; + label = 206; + } else { + $$711487 = $35;$$721679 = $4;$$731064 = $29;$$751172 = $31;$$751278 = $33;$$781585 = $1;$$79 = $25;$$791388 = $27; + label = 204; + } + break; + } + case 37: { + $$731489 = $35;$$761683 = $4;$$771068 = $29;$$791176 = $31;$$791282 = $33;$$821589 = $1;$$83 = $25;$$831392 = $27; + label = 210; + break; + } + case 53: { + $$751491 = $35;$$781685 = $4;$$791070 = $29;$$811178 = $31;$$811284 = $33;$$841591 = $1;$$85 = $25;$$851394 = $27; + label = 213; + break; + } + case 32: { + $842 = ($9|0)>(0); + if ($842) { + $843 = ((($1)) + 1|0); + $844 = HEAP8[$1>>0]|0; + $845 = $844&255; + $$0949 = $845;$$881595 = $843; + } else { + $840 = $6 & 2; + $841 = ($840|0)==(0); + if ($841) { + $$0949 = 0;$$881595 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 32; + label = 243; + break L5; + } + } + $846 = $$0949 << $25; + $847 = $846 | $27; + $848 = (($25) + 8)|0; + $$801496 = $35;$$841075 = $29;$$841691 = $4;$$861289 = $33;$$891596 = $$881595;$$90 = $848;$$901399 = $847; + label = 226; + break; + } + case 41: { + $858 = ($9|0)>(0); + if ($858) { + $$841500$ph = $35;$$881079$ph = $29;$$881695$ph = $4;$$901187$ph = $31;$$901293$ph = $33;$$94$ph = $25;$$941403$ph = $27;$$sink1750 = $1; + label = 233; + } else { + $$831499 = $35;$$871078 = $29;$$871694 = $4;$$891186 = $31;$$891292 = $33;$$921599 = $1;$$93 = $25;$$931402 = $27; + label = 231; + } + break; + } + case 42: { + $871 = ($9|0)>(0); + if ($871) { + $872 = ((($1)) + 1|0); + $873 = HEAP8[$1>>0]|0; + $874 = $873&255; + $$0948 = $874;$$871503 = $35;$$911082 = $29;$$911698 = $4;$$931190 = $31;$$931296 = $33;$$961603 = $872;$$97 = $25;$$971406 = $27; + label = 241; + } else { + $$861502 = $35;$$901081 = $29;$$901697 = $4;$$921189 = $31;$$921295 = $33;$$951602 = $1;$$96 = $25;$$961405 = $27; + label = 237; + } + break; + } + case 34: { + $$881504 = $35;$$921083 = $29;$$921699 = $4;$$941191 = $31;$$941297 = $33;$$971604 = $1;$$98 = $25;$$981407 = $27; + label = 242; + break; + } + default: { + $$100 = $25;$$1001409 = $27;$$1961 = -1;$$901506 = $35;$$941085 = $29;$$941701 = $4;$$961193 = $31;$$961299 = $33;$$991606 = $1; + label = 244; + } + } + } while(0); + if ((label|0) == 6) { + $44 = $6 & 2; + $45 = ($44|0)==(0); + if ($45) { + $$01507 = $1;$$11098 = $$01097;$$11204 = $$01203;$$11310 = $$01309;$$1988 = $$0987;$$1992 = $$0991;$$sink3$shrunk = 0; + label = 9; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$0991;$$931700 = $4;$$951192 = $$01097;$$951298 = $$01203;$$981605 = $1;$$99 = $$0987;$$991408 = $$01309;$$sink30 = 1; + label = 243; + } + } + else if ((label|0) == 8) { + $47 = ((($1)) + 1|0); + $48 = HEAP8[$1>>0]|0; + $$01507 = $47;$$11098 = $$11098$ph;$$11204 = $$11204$ph;$$11310 = $$11310$ph;$$1988 = $$1988$ph;$$1992 = $$1992$ph;$$sink3$shrunk = $48; + label = 9; + } + if ((label|0) == 9) { + $$sink3 = $$sink3$shrunk&255; + $49 = ((($0)) + 8|0); + HEAP32[$49>>2] = $$sink3; + $50 = ($$01507>>>0)<($10>>>0); + if ($50) { + $$31206$ph = $$11204;$$31312$ph = $$11310;$$3990$ph = $$1988;$$3994$ph = $$1992;$$sink1705 = $$01507; + label = 12; + } else { + $$11508 = $$01507;$$21099 = $$11098;$$21205 = $$11204;$$21311 = $$11310;$$2989 = $$1988;$$2993 = $$1992; + label = 10; + } + } + if ((label|0) == 10) { + $51 = $6 & 2; + $52 = ($51|0)==(0); + if ($52) { + $$21509 = $$11508;$$31206 = $$21205;$$31312 = $$21311;$$3990 = $$2989;$$3994 = $$2993;$$sink9$shrunk = 0; + label = 13; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$2993;$$931700 = $4;$$951192 = $$21099;$$951298 = $$21205;$$981605 = $$11508;$$99 = $$2989;$$991408 = $$21311;$$sink30 = 2; + label = 243; + } + } + else if ((label|0) == 12) { + $54 = ((($$sink1705)) + 1|0); + $55 = HEAP8[$$sink1705>>0]|0; + $$21509 = $54;$$31206 = $$31206$ph;$$31312 = $$31312$ph;$$3990 = $$3990$ph;$$3994 = $$3994$ph;$$sink9$shrunk = $55; + label = 13; + } + if ((label|0) == 13) { + $$sink9 = $$sink9$shrunk&255; + $56 = ((($0)) + 12|0); + HEAP32[$56>>2] = $$sink9; + $57 = ((($0)) + 8|0); + $58 = HEAP32[$57>>2]|0; + $59 = $58 << 8; + $60 = $59 | $$sink9; + $61 = (($60>>>0) % 31)&-1; + $62 = $$sink9 & 32; + $63 = $61 | $62; + $64 = $58 & 15; + $65 = ($64|0)!=(8); + $not$ = ($63|0)!=(0); + $$1754 = $65 | $not$; + $66 = $58 >>> 4; + $67 = 256 << $66; + $68 = ($67>>>0)>(32768); + $69 = ($20>>>0)<($67>>>0); + $$ = $68 | $69; + $not$1755 = $14 ^ 1; + $70 = $$ & $not$1755; + $$31100$v = $70 | $$1754; + if ($$31100$v) { + $$0960 = -1;$$891505 = $35;$$931084 = $$3994;$$931700 = $4;$$951192 = 1;$$951298 = $$31206;$$981605 = $$21509;$$99 = $$3990;$$991408 = $$31312;$$sink30 = 36; + label = 243; + } else { + $$01416 = $35;$$01607 = $4;$$41511 = $$21509;$$5 = $$3990;$$51102 = 0;$$51208 = $$31206;$$51314 = $$31312;$$5996 = $$3994; + label = 14; + } + } + L46: while(1) { + switch (label|0) { + case 14: { + label = 0; + $71 = ($$5>>>0)<(3); + if ($71) { + $$11417 = $$01416;$$11608 = $$01607;$$51512 = $$41511;$$6 = $$5;$$61103 = $$51102;$$61209 = $$51208;$$61315 = $$51314;$$6997 = $$5996; + label = 15; + } else { + $$41420 = $$01416;$$41611 = $$01607;$$81515 = $$41511;$$9 = $$5;$$91000 = $$5996;$$91106 = $$51102;$$91212 = $$51208;$$91318 = $$51314; + label = 20; + } + break; + } + case 16: { + label = 0; + $73 = $6 & 2; + $74 = ($73|0)==(0); + if ($74) { + $$01413$shrunk = 0;$$31419 = $$21418;$$31610 = $$21609;$$71514 = $$61513;$$8 = $$7;$$81105 = $$71104;$$81211 = $$71210;$$81317 = $$71316;$$8999 = $$7998; + label = 19; + } else { + $$0960 = 1;$$891505 = $$21418;$$931084 = $$7998;$$931700 = $$21609;$$951192 = $$71104;$$951298 = $$71210;$$981605 = $$61513;$$99 = $$7;$$991408 = $$71316;$$sink30 = 3; + label = 243; + continue L46; + } + break; + } + case 18: { + label = 0; + $76 = ((($$sink1710)) + 1|0); + $77 = HEAP8[$$sink1710>>0]|0; + $$01413$shrunk = $77;$$31419 = $$31419$ph;$$31610 = $$31610$ph;$$71514 = $76;$$8 = $$8$ph;$$81105 = $$81105$ph;$$81211 = $$81211$ph;$$81317 = $$81317$ph;$$8999 = $$8999$ph; + label = 19; + break; + } + case 25: { + label = 0; + $97 = $$13 & 7; + $98 = $$131322 >>> $97; + $99 = (($$13) - ($97))|0; + $$131110 = 0;$$131520 = $$121519;$$14 = $99;$$141005 = $$131004;$$141217 = $$131216;$$141323 = $98;$$91425 = $$81424;$$91616 = $$81615; + label = 26; + break; + } + case 30: { + label = 0; + $104 = $6 & 2; + $105 = ($104|0)==(0); + if ($105) { + $$01411$shrunk = 0;$$121428 = $$111427;$$121619 = $$111618;$$161113 = $$151112;$$161523 = $$151522;$$17 = $$16;$$171008 = $$161007;$$171220 = $$161219;$$171326 = $$161325; + label = 33; + } else { + $$0960 = 1;$$891505 = $$111427;$$931084 = $$161007;$$931700 = $$111618;$$951192 = $$151112;$$951298 = $$161219;$$981605 = $$151522;$$99 = $$16;$$991408 = $$161325;$$sink30 = 6; + label = 243; + continue L46; + } + break; + } + case 32: { + label = 0; + $107 = ((($$sink1713)) + 1|0); + $108 = HEAP8[$$sink1713>>0]|0; + $$01411$shrunk = $108;$$121428 = $$121428$ph;$$121619 = $$121619$ph;$$161113 = $$161113$ph;$$161523 = $107;$$17 = $$17$ph;$$171008 = $$171008$ph;$$171220 = $$171220$ph;$$171326 = $$171326$ph; + label = 33; + break; + } + case 36: { + label = 0; + $118 = $6 & 2; + $119 = ($118|0)==(0); + if ($119) { + $$151431 = $$141430;$$151622 = $$141621;$$191116 = $$181115;$$191526 = $$181525;$$20 = $$19;$$201011 = $$191010;$$201223 = $$191222;$$201329 = $$191328;$$sink12 = 0; + label = 39; + continue L46; + } else { + $$0960 = 1;$$891505 = $$141430;$$931084 = $$191010;$$931700 = $$141621;$$951192 = $$181115;$$951298 = $$191222;$$981605 = $$181525;$$99 = $$19;$$991408 = $$191328;$$sink30 = 7; + label = 243; + continue L46; + } + break; + } + case 39: { + label = 0; + $$sink13 = (((($0)) + 10528|0) + ($$191116)|0); + HEAP8[$$sink13>>0] = $$sink12; + $$161432 = $$151431;$$161623 = $$151622;$$201117 = $$191116;$$201527 = $$191526;$$21 = $$20;$$211012 = $$201011;$$211224 = $$201223;$$211330 = $$201329; + label = 41; + break; + } + case 43: { + label = 0; + $$0960 = -1;$$891505 = $$171433;$$931084 = $$221013;$$931700 = $$171624;$$951192 = $$211118;$$951298 = $$221225;$$981605 = $$211528;$$99 = $$22;$$991408 = $$221331;$$sink30 = 39; + label = 243; + continue L46; + break; + } + case 47: { + label = 0; + $150 = $6 & 2; + $151 = ($150|0)==(0); + if ($151) { + $$01410$shrunk = 0;$$211437 = $$201436;$$211628 = $$201627;$$251122 = $$241121;$$251532 = $$241531;$$26 = $$25;$$261017 = $$251016;$$261229 = $$251228;$$261335 = $$251334; + label = 50; + } else { + $$0960 = 1;$$891505 = $$201436;$$931084 = $$251016;$$931700 = $$201627;$$951192 = $$241121;$$951298 = $$251228;$$981605 = $$241531;$$99 = $$25;$$991408 = $$251334;$$sink30 = 51; + label = 243; + continue L46; + } + break; + } + case 49: { + label = 0; + $153 = ((($$sink1716)) + 1|0); + $154 = HEAP8[$$sink1716>>0]|0; + $$01410$shrunk = $154;$$211437 = $$211437$ph;$$211628 = $$211628$ph;$$251122 = $$251122$ph;$$251532 = $153;$$26 = $$26$ph;$$261017 = $$261017$ph;$$261229 = $$261229$ph;$$261335 = $$261335$ph; + label = 50; + break; + } + case 52: { + label = 0; + $162 = ($$231630>>>0)<($12>>>0); + if (!($162)) { + $$0960 = 2;$$891505 = $$231439;$$931084 = $$271018;$$931700 = $$231630;$$951192 = $$271124;$$951298 = $$281231;$$981605 = $$271534;$$99 = $$28;$$991408 = $$281337;$$sink30 = 52; + label = 243; + continue L46; + } + $163 = $$271018&255; + $164 = ((($$231630)) + 1|0); + HEAP8[$$231630>>0] = $163; + $165 = (($$271124) + -1)|0; + $$181434 = $$231439;$$181625 = $164;$$221119 = $165;$$221529 = $$271534;$$23 = $$28;$$231014 = $$271018;$$231226 = $$281231;$$231332 = $$281337; + label = 44; + break; + } + case 55: { + label = 0; + $167 = ($$251632>>>0)<($12>>>0); + if ($167) { + $$261442 = $$251441;$$261633 = $$251632;$$301021 = $$291020;$$301127 = $$291126;$$301537 = $$291536;$$31 = $$30;$$311234 = $$301233;$$311340 = $$301339; + label = 56; + continue L46; + } else { + $$0960 = 2;$$891505 = $$251441;$$931084 = $$291020;$$931700 = $$251632;$$951192 = $$291126;$$951298 = $$301233;$$981605 = $$291536;$$99 = $$30;$$991408 = $$301339;$$sink30 = 9; + label = 243; + continue L46; + } + break; + } + case 56: { + label = 0; + $168 = ($$301537>>>0)<($10>>>0); + if ($168) { + $171 = $12; + $172 = $$261633; + $173 = (($171) - ($172))|0; + $174 = $10; + $175 = $$301537; + $176 = (($174) - ($175))|0; + $177 = ($173>>>0)<($176>>>0); + $$sink17 = $177 ? $12 : $10; + $$sink16 = $177 ? $$261633 : $$301537; + $178 = $$sink17; + $179 = $$sink16; + $180 = (($178) - ($179))|0; + $181 = ($180>>>0)<($$301127>>>0); + $$$301127 = $181 ? $180 : $$301127; + _memcpy(($$261633|0),($$301537|0),($$$301127|0))|0; + $182 = (($$301537) + ($$$301127)|0); + $183 = (($$261633) + ($$$301127)|0); + $184 = (($$301127) - ($$$301127))|0; + $$241440 = $$261442;$$241631 = $183;$$281019 = $$301021;$$281125 = $184;$$281535 = $182;$$29 = $$31;$$291232 = $$311234;$$291338 = $$311340; + label = 54; + break; + } else { + $169 = $6 & 2; + $170 = ($169|0)==(0); + if ($170) { + $$271443 = $$261442;$$271634 = $$261633;$$311022 = $$301021;$$311128 = $$301127;$$311538 = $$301537;$$32 = $$31;$$321235 = $$311234;$$321341 = $$311340; + label = 58; + continue L46; + } else { + $$0960 = 1;$$891505 = $$261442;$$931084 = $$301021;$$931700 = $$261633;$$951192 = $$301127;$$951298 = $$311234;$$981605 = $$301537;$$99 = $$31;$$991408 = $$311340;$$sink30 = 38; + label = 243; + continue L46; + } + } + break; + } + case 58: { + label = 0; + $$0960 = -1;$$891505 = $$271443;$$931084 = $$311022;$$931700 = $$271634;$$951192 = $$311128;$$951298 = $$321235;$$981605 = $$311538;$$99 = $$32;$$991408 = $$321341;$$sink30 = 40; + label = 243; + continue L46; + break; + } + case 60: { + label = 0; + $$0960 = -1;$$891505 = $$281444;$$931084 = $$321023;$$931700 = $$281635;$$951192 = $$321129;$$951298 = $$331236;$$981605 = $$321539;$$99 = $$33;$$991408 = $$331342;$$sink30 = 10; + label = 243; + continue L46; + break; + } + case 64: { + label = 0; + $191 = $6 & 2; + $192 = ($191|0)==(0); + if ($192) { + $$01300$shrunk = 0;$$321448 = $$311447;$$321639 = $$311638;$$361027 = $$351026;$$361133 = $$351132;$$361543 = $$351542;$$37 = $$36;$$371240 = $$361239;$$371346 = $$361345; + label = 67; + } else { + $$0960 = 1;$$891505 = $$311447;$$931084 = $$351026;$$931700 = $$311638;$$951192 = $$351132;$$951298 = $$361239;$$981605 = $$351542;$$99 = $$36;$$991408 = $$361345;$$sink30 = 11; + label = 243; + continue L46; + } + break; + } + case 66: { + label = 0; + $194 = ((($$sink1719)) + 1|0); + $195 = HEAP8[$$sink1719>>0]|0; + $$01300$shrunk = $195;$$321448 = $$321448$ph;$$321639 = $$321639$ph;$$361027 = $$361027$ph;$$361133 = $$361133$ph;$$361543 = $194;$$37 = $$37$ph;$$371240 = $$371240$ph;$$371346 = $$371346$ph; + label = 67; + break; + } + case 73: { + label = 0; + $222 = $6 & 2; + $223 = ($222|0)==(0); + if ($223) { + $$01202$shrunk = 0;$$371453 = $$361452;$$371644 = $$361643;$$411032 = $$401031;$$411138 = $$401137;$$411548 = $$401547;$$42 = $$41;$$421245 = $$411244;$$421351 = $$411350; + label = 76; + } else { + $$0960 = 1;$$891505 = $$361452;$$931084 = $$401031;$$931700 = $$361643;$$951192 = $$401137;$$951298 = $$411244;$$981605 = $$401547;$$99 = $$41;$$991408 = $$411350;$$sink30 = 14; + label = 243; + continue L46; + } + break; + } + case 75: { + label = 0; + $225 = ((($$sink1722)) + 1|0); + $226 = HEAP8[$$sink1722>>0]|0; + $$01202$shrunk = $226;$$371453 = $$371453$ph;$$371644 = $$371644$ph;$$411032 = $$411032$ph;$$411138 = $$411138$ph;$$411548 = $225;$$42 = $$42$ph;$$421245 = $$421245$ph;$$421351 = $$421351$ph; + label = 76; + break; + } + case 86: { + label = 0; + $$0960 = -1;$$891505 = $$401456;$$931084 = $$441035;$$931700 = $$401647;$$951192 = $$441141;$$951298 = $$451248;$$981605 = $$441551;$$99 = $$45;$$991408 = $$451354;$$sink30 = 35; + label = 243; + continue L46; + break; + } + case 114: { + label = 0; + $450 = $6 & 2; + $451 = ($450|0)==(0); + if ($451) { + $$0980$shrunk = 0;$$441460 = $$431459;$$441651 = $$431650;$$481039 = $$471038;$$481145 = $$471144;$$481555 = $$471554;$$49 = $$48;$$491252 = $$481251;$$491358 = $$481357; + label = 117; + } else { + $$0960 = 1;$$891505 = $$431459;$$931084 = $$471038;$$931700 = $$431650;$$951192 = $$471144;$$951298 = $$481251;$$981605 = $$471554;$$99 = $$48;$$991408 = $$481357;$$sink30 = 16; + label = 243; + continue L46; + } + break; + } + case 116: { + label = 0; + $453 = ((($$sink1729)) + 1|0); + $454 = HEAP8[$$sink1729>>0]|0; + $$0980$shrunk = $454;$$441460 = $$441460$ph;$$441651 = $$441651$ph;$$481039 = $$481039$ph;$$481145 = $$481145$ph;$$481555 = $453;$$49 = $$49$ph;$$491252 = $$491252$ph;$$491358 = $$491358$ph; + label = 117; + break; + } + case 125: { + label = 0; + $$0960 = -1;$$891505 = $$461462;$$931084 = $$491040;$$931700 = $$461653;$$951192 = $$501147;$$951298 = $$511254;$$981605 = $$501557;$$99 = $$51;$$991408 = $$511360;$$sink30 = 17; + label = 243; + continue L46; + break; + } + case 128: { + label = 0; + $501 = $6 & 2; + $502 = ($501|0)==(0); + if ($502) { + $$0979$shrunk = 0;$$491465 = $$481464;$$491656 = $$481655;$$521043 = $$511042;$$531150 = $$521149;$$531560 = $$521559;$$54 = $$53;$$541257 = $$531256;$$541363 = $$531362; + label = 131; + } else { + $$0960 = 1;$$891505 = $$481464;$$931084 = $$511042;$$931700 = $$481655;$$951192 = $$521149;$$951298 = $$531256;$$981605 = $$521559;$$99 = $$53;$$991408 = $$531362;$$sink30 = 18; + label = 243; + continue L46; + } + break; + } + case 130: { + label = 0; + $504 = ((($$sink1732)) + 1|0); + $505 = HEAP8[$$sink1732>>0]|0; + $$0979$shrunk = $505;$$491465 = $$491465$ph;$$491656 = $$491656$ph;$$521043 = $$521043$ph;$$531150 = $$531150$ph;$$531560 = $504;$$54 = $$54$ph;$$541257 = $$541257$ph;$$541363 = $$541363$ph; + label = 131; + break; + } + case 136: { + label = 0; + $$0960 = -1;$$891505 = $$511467;$$931084 = $$541045;$$931700 = $$511658;$$951192 = $$551152;$$951298 = $$561259;$$981605 = $$551562;$$99 = $$56;$$991408 = $$561365;$$sink30 = 21; + label = 243; + continue L46; + break; + } + case 151: { + label = 0; + $570 = $6 & 2; + $571 = ($570|0)==(0); + if ($571) { + $$0971$shrunk = 0;$$571473 = $$561472;$$571664 = $$561663;$$601051 = $$591050;$$611158 = $$601157;$$611568 = $$601567;$$62 = $$61;$$621265 = $$611264;$$621371 = $$611370; + label = 154; + } else { + $$0960 = 1;$$891505 = $$561472;$$931084 = $$591050;$$931700 = $$561663;$$951192 = $$601157;$$951298 = $$611264;$$981605 = $$601567;$$99 = $$61;$$991408 = $$611370;$$sink30 = 23; + label = 243; + continue L46; + } + break; + } + case 153: { + label = 0; + $573 = ((($$sink1736)) + 1|0); + $574 = HEAP8[$$sink1736>>0]|0; + $$0971$shrunk = $574;$$571473 = $$571473$ph;$$571664 = $$571664$ph;$$601051 = $$601051$ph;$$611158 = $$611158$ph;$$611568 = $573;$$62 = $$62$ph;$$621265 = $$621265$ph;$$621371 = $$621371$ph; + label = 154; + break; + } + case 160: { + label = 0; + $610 = ($$591666>>>0)<($12>>>0); + if (!($610)) { + $$0960 = 2;$$891505 = $$591475;$$931084 = $$621053;$$931700 = $$591666;$$951192 = $$621159;$$951298 = $$641267;$$981605 = $$631570;$$99 = $$64;$$991408 = $$641373;$$sink30 = 24; + label = 243; + continue L46; + } + $611 = $$621159&255; + $612 = ((($$591666)) + 1|0); + HEAP8[$$591666>>0] = $611; + $$541470$ph = $$591475;$$541661$ph = $612;$$571048$ph = $$621053;$$581155$ph = $$621159;$$581565$ph = $$631570;$$59$ph = $$64;$$591262$ph = $$641267;$$591368$ph = $$641373; + label = 140; + break; + } + case 180: { + label = 0; + $694 = $6 & 2; + $695 = ($694|0)==(0); + if ($695) { + $$0959$shrunk = 0;$$631479 = $$621478;$$641671 = $$631670;$$661057 = $$651056;$$671164 = $$661163;$$681271 = $$671270;$$701577 = $$691576;$$71 = $$70;$$711380 = $$701379; + label = 183; + } else { + $$0960 = 1;$$891505 = $$621478;$$931084 = $$651056;$$931700 = $$631670;$$951192 = $$661163;$$951298 = $$671270;$$981605 = $$691576;$$99 = $$70;$$991408 = $$701379;$$sink30 = 25; + label = 243; + continue L46; + } + break; + } + case 182: { + label = 0; + $697 = ((($$sink1739)) + 1|0); + $698 = HEAP8[$$sink1739>>0]|0; + $$0959$shrunk = $698;$$631479 = $$631479$ph;$$641671 = $$641671$ph;$$661057 = $$661057$ph;$$671164 = $$671164$ph;$$681271 = $$681271$ph;$$701577 = $697;$$71 = $$71$ph;$$711380 = $$711380$ph; + label = 183; + break; + } + case 193: { + label = 0; + $735 = $6 & 2; + $736 = ($735|0)==(0); + if ($736) { + $$0952$shrunk = 0;$$681484 = $$671483;$$691676 = $$681675;$$711062 = $$701061;$$721169 = $$711168;$$731276 = $$721275;$$751582 = $$741581;$$76 = $$75;$$761385 = $$751384; + label = 196; + } else { + $$0960 = 1;$$891505 = $$671483;$$931084 = $$701061;$$931700 = $$681675;$$951192 = $$711168;$$951298 = $$721275;$$981605 = $$741581;$$99 = $$75;$$991408 = $$751384;$$sink30 = 26; + label = 243; + continue L46; + } + break; + } + case 195: { + label = 0; + $738 = ((($$sink1743)) + 1|0); + $739 = HEAP8[$$sink1743>>0]|0; + $$0952$shrunk = $739;$$681484 = $$681484$ph;$$691676 = $$691676$ph;$$711062 = $$711062$ph;$$721169 = $$721169$ph;$$731276 = $$731276$ph;$$751582 = $738;$$76 = $$76$ph;$$761385 = $$761385$ph; + label = 196; + break; + } + case 204: { + label = 0; + $782 = $6 & 2; + $783 = ($782|0)==(0); + if ($783) { + $$0950$shrunk = 0;$$721488 = $$711487;$$731680 = $$721679;$$741065 = $$731064;$$761173 = $$751172;$$761279 = $$751278;$$791586 = $$781585;$$80 = $$79;$$801389 = $$791388; + label = 207; + } else { + $$0960 = 1;$$891505 = $$711487;$$931084 = $$731064;$$931700 = $$721679;$$951192 = $$751172;$$951298 = $$751278;$$981605 = $$781585;$$99 = $$79;$$991408 = $$791388;$$sink30 = 27; + label = 243; + continue L46; + } + break; + } + case 206: { + label = 0; + $785 = ((($$sink1746)) + 1|0); + $786 = HEAP8[$$sink1746>>0]|0; + $$0950$shrunk = $786;$$721488 = $$721488$ph;$$731680 = $$731680$ph;$$741065 = $$741065$ph;$$761173 = $$761173$ph;$$761279 = $$761279$ph;$$791586 = $785;$$80 = $$80$ph;$$801389 = $$801389$ph; + label = 207; + break; + } + case 210: { + label = 0; + $$0960 = -1;$$891505 = $$731489;$$931084 = $$771068;$$931700 = $$761683;$$951192 = $$791176;$$951298 = $$791282;$$981605 = $$821589;$$99 = $$83;$$991408 = $$831392;$$sink30 = 37; + label = 243; + continue L46; + break; + } + case 213: { + label = 0; + $809 = ($$781685>>>0)<($12>>>0); + if (!($809)) { + $$0960 = 2;$$891505 = $$751491;$$931084 = $$791070;$$931700 = $$781685;$$951192 = $$811178;$$951298 = $$811284;$$981605 = $$841591;$$99 = $$85;$$991408 = $$851394;$$sink30 = 53; + label = 243; + continue L46; + } + $810 = (($$751491) + 1)|0; + $811 = (($$751491) - ($$791070))|0; + $812 = $811 & $$1753; + $813 = (($3) + ($812)|0); + $814 = HEAP8[$813>>0]|0; + $815 = ((($$781685)) + 1|0); + HEAP8[$$781685>>0] = $814; + $$741490 = $810;$$771684 = $815;$$781069 = $$791070;$$801177 = $$811178;$$801283 = $$811284;$$831590 = $$841591;$$84 = $$85;$$841393 = $$851394; + label = 212; + break; + } + case 226: { + label = 0; + $849 = $$90 & 7; + $850 = $$901399 >>> $849; + $851 = (($$90) - ($849))|0; + $$811497 = $$801496;$$851076 = $$841075;$$851692 = $$841691;$$871184 = 0;$$871290 = $$861289;$$901597 = $$891596;$$91 = $851;$$911400 = $850; + label = 227; + break; + } + case 231: { + label = 0; + $856 = $6 & 2; + $857 = ($856|0)==(0); + if ($857) { + $$0947$shrunk = 0;$$841500 = $$831499;$$881079 = $$871078;$$881695 = $$871694;$$901187 = $$891186;$$901293 = $$891292;$$931600 = $$921599;$$94 = $$93;$$941403 = $$931402; + label = 234; + } else { + $$0960 = 1;$$891505 = $$831499;$$931084 = $$871078;$$931700 = $$871694;$$951192 = $$891186;$$951298 = $$891292;$$981605 = $$921599;$$99 = $$93;$$991408 = $$931402;$$sink30 = 41; + label = 243; + continue L46; + } + break; + } + case 233: { + label = 0; + $859 = ((($$sink1750)) + 1|0); + $860 = HEAP8[$$sink1750>>0]|0; + $$0947$shrunk = $860;$$841500 = $$841500$ph;$$881079 = $$881079$ph;$$881695 = $$881695$ph;$$901187 = $$901187$ph;$$901293 = $$901293$ph;$$931600 = $859;$$94 = $$94$ph;$$941403 = $$941403$ph; + label = 234; + break; + } + case 237: { + label = 0; + $869 = $6 & 2; + $870 = ($869|0)==(0); + if ($870) { + $$0948 = 0;$$871503 = $$861502;$$911082 = $$901081;$$911698 = $$901697;$$931190 = $$921189;$$931296 = $$921295;$$961603 = $$951602;$$97 = $$96;$$971406 = $$961405; + label = 241; + continue L46; + } else { + $$0960 = 1;$$891505 = $$861502;$$931084 = $$901081;$$931700 = $$901697;$$951192 = $$921189;$$951298 = $$921295;$$981605 = $$951602;$$99 = $$96;$$991408 = $$961405;$$sink30 = 42; + label = 243; + continue L46; + } + break; + } + case 241: { + label = 0; + $878 = ((($0)) + 16|0); + $879 = HEAP32[$878>>2]|0; + $880 = $879 << 8; + $881 = $880 | $$0948; + HEAP32[$878>>2] = $881; + $882 = (($$931190) + 1)|0; + $$811497 = $$871503;$$851076 = $$911082;$$851692 = $$911698;$$871184 = $882;$$871290 = $$931296;$$901597 = $$961603;$$91 = $$97;$$911400 = $$971406; + label = 227; + break; + } + case 242: { + label = 0; + $$0960 = 0;$$891505 = $$881504;$$931084 = $$921083;$$931700 = $$921699;$$951192 = $$941191;$$951298 = $$941297;$$981605 = $$971604;$$99 = $$98;$$991408 = $$981407;$$sink30 = 34; + label = 243; + continue L46; + break; + } + case 243: { + label = 0; + HEAP32[$0>>2] = $$sink30; + $$100 = $$99;$$1001409 = $$991408;$$1961 = $$0960;$$901506 = $$891505;$$941085 = $$931084;$$941701 = $$931700;$$961193 = $$951192;$$961299 = $$951298;$$991606 = $$981605; + label = 244; + continue L46; + break; + } + case 244: { + label = 0; + HEAP32[$24>>2] = $$100; + HEAP32[$26>>2] = $$1001409; + HEAP32[$28>>2] = $$941085; + HEAP32[$30>>2] = $$961193; + HEAP32[$32>>2] = $$961299; + HEAP32[$34>>2] = $$901506; + $883 = $$991606; + $884 = $1; + $885 = (($883) - ($884))|0; + HEAP32[$2>>2] = $885; + $886 = $$941701; + $887 = $4; + $888 = (($886) - ($887))|0; + HEAP32[$5>>2] = $888; + $889 = $6 & 9; + $890 = ($889|0)!=(0); + $891 = ($$1961|0)>(-1); + $or$cond29 = $890 & $891; + if ($or$cond29) { + break L46; + } else { + $$0951 = $$1961; + label = 258; + break L46; + } + break; + } + } + switch (label|0) { + case 19: { + label = 0; + $$01413 = $$01413$shrunk&255; + $78 = $$01413 << $$8; + $79 = $78 | $$81317; + $80 = (($$8) + 8)|0; + $81 = ($80>>>0)<(3); + if ($81) { + $$11417 = $$31419;$$11608 = $$31610;$$51512 = $$71514;$$6 = $80;$$61103 = $$81105;$$61209 = $$81211;$$61315 = $79;$$6997 = $$8999; + label = 15; + } else { + $$41420 = $$31419;$$41611 = $$31610;$$81515 = $$71514;$$9 = $80;$$91000 = $$8999;$$91106 = $$81105;$$91212 = $$81211;$$91318 = $79; + label = 20; + } + break; + } + case 33: { + label = 0; + $$01411 = $$01411$shrunk&255; + $109 = $$01411 << $$17; + $110 = $109 | $$171326; + $111 = (($$17) + 8)|0; + $112 = ($$17>>>0)>(4294967287); + if ($112) { + $$101426 = $$121428;$$101617 = $$121619;$$141111 = $$161113;$$141521 = $$161523;$$15 = $111;$$151006 = $$171008;$$151218 = $$171220;$$151324 = $110; + label = 29; + } else { + $$131429 = $$121428;$$131620 = $$121619;$$171114 = $$161113;$$171524 = $$161523;$$18 = $111;$$181009 = $$171008;$$181221 = $$171220;$$181327 = $110; + label = 34; + } + break; + } + case 50: { + label = 0; + $$01410 = $$01410$shrunk&255; + $155 = $$01410 << $$26; + $156 = $155 | $$261335; + $157 = (($$26) + 8)|0; + $158 = ($$26>>>0)>(4294967287); + if ($158) { + $$191435 = $$211437;$$191626 = $$211628;$$231120 = $$251122;$$231530 = $$251532;$$24 = $157;$$241015 = $$261017;$$241227 = $$261229;$$241333 = $156; + label = 46; + } else { + $$221438 = $$211437;$$221629 = $$211628;$$261123 = $$251122;$$261533 = $$251532;$$27 = $157;$$271230 = $$261229;$$271336 = $156; + label = 51; + } + break; + } + case 67: { + label = 0; + $$01300 = $$01300$shrunk&255; + $196 = $$01300 << $$37; + $197 = $196 | $$371346; + $198 = (($$37) + 8)|0; + $199 = (11635 + ($$361133)|0); + $200 = HEAP8[$199>>0]|0; + $201 = $200 << 24 >> 24; + $202 = ($198>>>0)<($201>>>0); + if ($202) { + $$301446 = $$321448;$$301637 = $$321639;$$341025 = $$361027;$$341131 = $$361133;$$341541 = $$361543;$$35 = $198;$$351238 = $$371240;$$351344 = $197; + label = 63; + } else { + $$331449 = $$321448;$$331640 = $$321639;$$371028 = $$361027;$$371134 = $$361133;$$371544 = $$361543;$$38 = $198;$$381241 = $$371240;$$381347 = $197; + label = 68; + } + break; + } + case 76: { + label = 0; + $$01202 = $$01202$shrunk&255; + $227 = $$01202 << $$42; + $228 = $227 | $$421351; + $229 = (($$42) + 8)|0; + $230 = ($229>>>0)<(3); + if ($230) { + $$351451 = $$371453;$$351642 = $$371644;$$391030 = $$411032;$$391136 = $$411138;$$391546 = $$411548;$$40 = $229;$$401243 = $$421245;$$401349 = $228; + label = 72; + } else { + $$381454 = $$371453;$$381645 = $$371644;$$421033 = $$411032;$$421139 = $$411138;$$421549 = $$411548;$$43 = $229;$$431246 = $$421245;$$431352 = $228; + label = 77; + } + break; + } + case 117: { + label = 0; + $$0980 = $$0980$shrunk&255; + $455 = $$0980 << $$49; + $456 = $455 | $$491358; + $457 = (($$49) + 8)|0; + $458 = ($457>>>0)<(15); + if ($458) { + $$421458 = $$441460;$$421649 = $$441651;$$461037 = $$481039;$$461143 = $$481145;$$461553 = $$481555;$$47 = $457;$$471250 = $$491252;$$471356 = $456; + label = 108; + } else { + $$451461 = $$441460;$$451652 = $$441651;$$491146 = $$481145;$$491556 = $$481555;$$50 = $457;$$501253 = $$491252;$$501359 = $456; + label = 119; + } + break; + } + case 131: { + label = 0; + $$0979 = $$0979$shrunk&255; + $506 = $$0979 << $$54; + $507 = $506 | $$541363; + $508 = (($$54) + 8)|0; + $509 = ($508>>>0)<($$541257>>>0); + if ($509) { + $$471463 = $$491465;$$471654 = $$491656;$$501041 = $$521043;$$511148 = $$531150;$$511558 = $$531560;$$52 = $508;$$521255 = $$541257;$$521361 = $507; + label = 127; + } else { + $$501466 = $$491465;$$501657 = $$491656;$$531044 = $$521043;$$541151 = $$531150;$$541561 = $$531560;$$55 = $508;$$551258 = $$541257;$$551364 = $507; + label = 132; + } + break; + } + case 154: { + label = 0; + $$0971 = $$0971$shrunk&255; + $575 = $$0971 << $$62; + $576 = $575 | $$621371; + $577 = (($$62) + 8)|0; + $578 = ($577>>>0)<(15); + if ($578) { + $$551471 = $$571473;$$551662 = $$571664;$$581049 = $$601051;$$591156 = $$611158;$$591566 = $$611568;$$60 = $577;$$601263 = $$621265;$$601369 = $576; + label = 145; + } else { + $$581474 = $$571473;$$581665 = $$571664;$$611052 = $$601051;$$621569 = $$611568;$$63 = $577;$$631266 = $$621265;$$631372 = $576; + label = 156; + } + break; + } + case 183: { + label = 0; + $$0959 = $$0959$shrunk&255; + $699 = $$0959 << $$71; + $700 = $699 | $$711380; + $701 = (($$71) + 8)|0; + $702 = ($701>>>0)<($$681271>>>0); + if ($702) { + $$611477 = $$631479;$$621669 = $$641671;$$641055 = $$661057;$$651162 = $$671164;$$661269 = $$681271;$$681575 = $$701577;$$69 = $701;$$691378 = $700; + label = 179; + } else { + $$641480 = $$631479;$$651672 = $$641671;$$671058 = $$661057;$$681165 = $$671164;$$691272 = $$681271;$$711578 = $$701577;$$72 = $701;$$721381 = $700; + label = 184; + } + break; + } + case 196: { + label = 0; + $$0952 = $$0952$shrunk&255; + $740 = $$0952 << $$76; + $741 = $740 | $$761385; + $742 = (($$76) + 8)|0; + $743 = ($742>>>0)<(15); + if ($743) { + $$661482 = $$681484;$$671674 = $$691676;$$691060 = $$711062;$$701167 = $$721169;$$711274 = $$731276;$$731580 = $$751582;$$74 = $742;$$741383 = $741; + label = 187; + } else { + $$691485 = $$681484;$$701677 = $$691676;$$731170 = $$721169;$$761583 = $$751582;$$77 = $742;$$771386 = $741; + label = 198; + } + break; + } + case 207: { + label = 0; + $$0950 = $$0950$shrunk&255; + $787 = $$0950 << $$80; + $788 = $787 | $$801389; + $789 = (($$80) + 8)|0; + $790 = ($789>>>0)<($$761279>>>0); + if ($790) { + $$701486 = $$721488;$$711678 = $$731680;$$721063 = $$741065;$$741171 = $$761173;$$741277 = $$761279;$$771584 = $$791586;$$78 = $789;$$781387 = $788; + label = 203; + } else { + $$741681 = $$731680;$$751066 = $$741065;$$771174 = $$761173;$$771280 = $$761279;$$801587 = $$791586;$$81 = $789;$$811390 = $788; + label = 208; + } + break; + } + case 227: { + label = 0; + $852 = ($$871184>>>0)<(4); + if (!($852)) { + $$881504 = $$811497;$$921083 = $$851076;$$921699 = $$851692;$$941191 = $$871184;$$941297 = $$871290;$$971604 = $$901597;$$98 = $$91;$$981407 = $$911400; + label = 242; + continue L46; + } + $853 = ($$91|0)==(0); + if (!($853)) { + $854 = ($$91>>>0)<(8); + if ($854) { + $$821498 = $$811497;$$861077 = $$851076;$$861693 = $$851692;$$881185 = $$871184;$$881291 = $$871290;$$911598 = $$901597;$$92 = $$91;$$921401 = $$911400; + label = 230; + break; + } else { + $$851501 = $$811497;$$891080 = $$851076;$$891696 = $$851692;$$911188 = $$871184;$$911294 = $$871290;$$941601 = $$901597;$$95 = $$91;$$951404 = $$911400; + label = 235; + break; + } + } + $868 = ($$901597>>>0)<($10>>>0); + if (!($868)) { + $$861502 = $$811497;$$901081 = $$851076;$$901697 = $$851692;$$921189 = $$871184;$$921295 = $$871290;$$951602 = $$901597;$$96 = 0;$$961405 = $$911400; + label = 237; + continue L46; + } + $875 = ((($$901597)) + 1|0); + $876 = HEAP8[$$901597>>0]|0; + $877 = $876&255; + $$0948 = $877;$$871503 = $$811497;$$911082 = $$851076;$$911698 = $$851692;$$931190 = $$871184;$$931296 = $$871290;$$961603 = $875;$$97 = 0;$$971406 = $$911400; + label = 241; + continue L46; + break; + } + case 234: { + label = 0; + $$0947 = $$0947$shrunk&255; + $861 = $$0947 << $$94; + $862 = $861 | $$941403; + $863 = (($$94) + 8)|0; + $864 = ($$94>>>0)>(4294967287); + if ($864) { + $$821498 = $$841500;$$861077 = $$881079;$$861693 = $$881695;$$881185 = $$901187;$$881291 = $$901293;$$911598 = $$931600;$$92 = $863;$$921401 = $862; + label = 230; + } else { + $$851501 = $$841500;$$891080 = $$881079;$$891696 = $$881695;$$911188 = $$901187;$$911294 = $$901293;$$941601 = $$931600;$$95 = $863;$$951404 = $862; + label = 235; + } + break; + } + } + L119: do { + if ((label|0) == 15) { + label = 0; + $72 = ($$51512>>>0)<($10>>>0); + if ($72) { + $$31419$ph = $$11417;$$31610$ph = $$11608;$$8$ph = $$6;$$81105$ph = $$61103;$$81211$ph = $$61209;$$81317$ph = $$61315;$$8999$ph = $$6997;$$sink1710 = $$51512; + label = 18; + continue L46; + } else { + $$21418 = $$11417;$$21609 = $$11608;$$61513 = $$51512;$$7 = $$6;$$71104 = $$61103;$$71210 = $$61209;$$71316 = $$61315;$$7998 = $$6997; + label = 16; + continue L46; + } + } + else if ((label|0) == 20) { + label = 0; + $82 = $$91318 & 7; + $83 = ((($0)) + 20|0); + HEAP32[$83>>2] = $82; + $84 = $$91318 >>> 3; + $85 = (($$9) + -3)|0; + $86 = $82 >>> 1; + $87 = ((($0)) + 24|0); + HEAP32[$87>>2] = $86; + $trunc = $86&255; + $trunc$clear = $trunc & 3; + switch ($trunc$clear<<24>>24) { + case 0: { + $$121519 = $$81515;$$13 = $85;$$131004 = $$91000;$$131216 = $$91212;$$131322 = $84;$$81424 = $$41420;$$81615 = $$41611; + label = 25; + continue L46; + break; + } + case 3: { + $$281444 = $$41420;$$281635 = $$41611;$$321023 = $$91000;$$321129 = $$91106;$$321539 = $$81515;$$33 = $85;$$331236 = $$91212;$$331342 = $84; + label = 60; + continue L46; + break; + } + case 1: { + break; + } + default: { + $$291445 = $$41420;$$291636 = $$41611;$$331024 = $$91000;$$331130 = 0;$$331540 = $$81515;$$34 = $85;$$341237 = $$91212;$$341343 = $84; + label = 61; + break L119; + } + } + $240 = ((($0)) + 44|0); + HEAP32[$240>>2] = 288; + $241 = ((($0)) + 48|0); + HEAP32[$241>>2] = 32; + $242 = ((($0)) + 3552|0); + ;HEAP32[$242>>2]=84215045|0;HEAP32[$242+4>>2]=84215045|0;HEAP32[$242+8>>2]=84215045|0;HEAP32[$242+12>>2]=84215045|0;HEAP32[$242+16>>2]=84215045|0;HEAP32[$242+20>>2]=84215045|0;HEAP32[$242+24>>2]=84215045|0;HEAP32[$242+28>>2]=84215045|0; + $scevgep19611962 = ((($0)) + 64|0); + _memset(($scevgep19611962|0),8,144)|0; + $scevgep1959 = ((($0)) + 208|0); + dest=$scevgep1959; stop=dest+112|0; do { HEAP8[dest>>0]=9|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1957 = ((($0)) + 320|0); + dest=$scevgep1957; stop=dest+24|0; do { HEAP8[dest>>0]=7|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1955 = ((($0)) + 344|0); + $243 = $scevgep1955; + $244 = $243; + HEAP8[$244>>0]=134744072&255;HEAP8[$244+1>>0]=(134744072>>8)&255;HEAP8[$244+2>>0]=(134744072>>16)&255;HEAP8[$244+3>>0]=134744072>>24; + $245 = (($243) + 4)|0; + $246 = $245; + HEAP8[$246>>0]=134744072&255;HEAP8[$246+1>>0]=(134744072>>8)&255;HEAP8[$246+2>>0]=(134744072>>16)&255;HEAP8[$246+3>>0]=134744072>>24; + $$391455 = $$41420;$$391646 = $$41611;$$431034 = $$91000;$$431140 = $$91106;$$431550 = $$81515;$$44 = $85;$$441247 = $$91212;$$441353 = $84; + label = 80; + } + else if ((label|0) == 230) { + label = 0; + $855 = ($$911598>>>0)<($10>>>0); + if ($855) { + $$841500$ph = $$821498;$$881079$ph = $$861077;$$881695$ph = $$861693;$$901187$ph = $$881185;$$901293$ph = $$881291;$$94$ph = $$92;$$941403$ph = $$921401;$$sink1750 = $$911598; + label = 233; + continue L46; + } else { + $$831499 = $$821498;$$871078 = $$861077;$$871694 = $$861693;$$891186 = $$881185;$$891292 = $$881291;$$921599 = $$911598;$$93 = $$92;$$931402 = $$921401; + label = 231; + continue L46; + } + } + else if ((label|0) == 235) { + label = 0; + $865 = $$951404 & 255; + $866 = $$951404 >>> 8; + $867 = (($$95) + -8)|0; + $$0948 = $865;$$871503 = $$851501;$$911082 = $$891080;$$911698 = $$891696;$$931190 = $$911188;$$931296 = $$911294;$$961603 = $$941601;$$97 = $867;$$971406 = $866; + label = 241; + continue L46; + } + } while(0); + L125: while(1) { + L126: switch (label|0) { + case 26: { + label = 0; + $100 = ($$131110>>>0)<(4); + if (!($100)) { + $127 = ((($0)) + 10528|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = ((($0)) + 10529|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = $132 << 8; + $134 = $133 | $129; + $135 = ((($0)) + 10530|0); + $136 = HEAP8[$135>>0]|0; + $137 = $136&255; + $138 = ((($0)) + 10531|0); + $139 = HEAP8[$138>>0]|0; + $140 = $139&255; + $141 = $140 << 8; + $142 = $141 | $137; + $143 = $142 ^ 65535; + $144 = ($134|0)==($143|0); + if ($144) { + $$181434 = $$91425;$$181625 = $$91616;$$221119 = $134;$$221529 = $$131520;$$23 = $$14;$$231014 = $$141005;$$231226 = $$141217;$$231332 = $$141323; + label = 44; + continue L125; + } else { + $$171433 = $$91425;$$171624 = $$91616;$$211118 = $134;$$211528 = $$131520;$$22 = $$14;$$221013 = $$141005;$$221225 = $$141217;$$221331 = $$141323; + label = 43; + continue L46; + } + } + $101 = ($$14|0)==(0); + if (!($101)) { + $102 = ($$14>>>0)<(8); + if ($102) { + $$101426 = $$91425;$$101617 = $$91616;$$141111 = $$131110;$$141521 = $$131520;$$15 = $$14;$$151006 = $$141005;$$151218 = $$141217;$$151324 = $$141323; + label = 29; + continue L125; + } else { + $$131429 = $$91425;$$131620 = $$91616;$$171114 = $$131110;$$171524 = $$131520;$$18 = $$14;$$181009 = $$141005;$$181221 = $$141217;$$181327 = $$141323; + label = 34; + continue L125; + } + } + $117 = ($$131520>>>0)<($10>>>0); + if (!($117)) { + $$141430 = $$91425;$$141621 = $$91616;$$181115 = $$131110;$$181525 = $$131520;$$19 = 0;$$191010 = $$141005;$$191222 = $$141217;$$191328 = $$141323; + label = 36; + continue L46; + } + $123 = ((($$131520)) + 1|0); + $124 = HEAP8[$$131520>>0]|0; + $125 = (((($0)) + 10528|0) + ($$131110)|0); + HEAP8[$125>>0] = $124; + $$161432 = $$91425;$$161623 = $$91616;$$201117 = $$131110;$$201527 = $123;$$21 = 0;$$211012 = $$141005;$$211224 = $$141217;$$211330 = $$141323; + label = 41; + continue L125; + break; + } + case 29: { + label = 0; + $103 = ($$141521>>>0)<($10>>>0); + if ($103) { + $$121428$ph = $$101426;$$121619$ph = $$101617;$$161113$ph = $$141111;$$17$ph = $$15;$$171008$ph = $$151006;$$171220$ph = $$151218;$$171326$ph = $$151324;$$sink1713 = $$141521; + label = 32; + continue L46; + } else { + $$111427 = $$101426;$$111618 = $$101617;$$151112 = $$141111;$$151522 = $$141521;$$16 = $$15;$$161007 = $$151006;$$161219 = $$151218;$$161325 = $$151324; + label = 30; + continue L46; + } + break; + } + case 34: { + label = 0; + $113 = $$181327&255; + $114 = (((($0)) + 10528|0) + ($$171114)|0); + HEAP8[$114>>0] = $113; + $115 = $$181327 >>> 8; + $116 = (($$18) + -8)|0; + $$161432 = $$131429;$$161623 = $$131620;$$201117 = $$171114;$$201527 = $$171524;$$21 = $116;$$211012 = $$181009;$$211224 = $$181221;$$211330 = $115; + label = 41; + continue L125; + break; + } + case 41: { + label = 0; + $126 = (($$201117) + 1)|0; + $$131110 = $126;$$131520 = $$201527;$$14 = $$21;$$141005 = $$211012;$$141217 = $$211224;$$141323 = $$211330;$$91425 = $$161432;$$91616 = $$161623; + label = 26; + continue L125; + break; + } + case 44: { + label = 0; + $145 = ($$221119|0)!=(0); + $146 = ($$23|0)!=(0); + $147 = $145 & $146; + if (!($147)) { + $$241440 = $$181434;$$241631 = $$181625;$$281019 = $$231014;$$281125 = $$221119;$$281535 = $$221529;$$29 = $$23;$$291232 = $$231226;$$291338 = $$231332; + label = 54; + continue L125; + } + $148 = ($$23>>>0)<(8); + if ($148) { + $$191435 = $$181434;$$191626 = $$181625;$$231120 = $$221119;$$231530 = $$221529;$$24 = $$23;$$241015 = $$231014;$$241227 = $$231226;$$241333 = $$231332; + label = 46; + continue L125; + } else { + $$221438 = $$181434;$$221629 = $$181625;$$261123 = $$221119;$$261533 = $$221529;$$27 = $$23;$$271230 = $$231226;$$271336 = $$231332; + label = 51; + continue L125; + } + break; + } + case 46: { + label = 0; + $149 = ($$231530>>>0)<($10>>>0); + if ($149) { + $$211437$ph = $$191435;$$211628$ph = $$191626;$$251122$ph = $$231120;$$26$ph = $$24;$$261017$ph = $$241015;$$261229$ph = $$241227;$$261335$ph = $$241333;$$sink1716 = $$231530; + label = 49; + continue L46; + } else { + $$201436 = $$191435;$$201627 = $$191626;$$241121 = $$231120;$$241531 = $$231530;$$25 = $$24;$$251016 = $$241015;$$251228 = $$241227;$$251334 = $$241333; + label = 47; + continue L46; + } + break; + } + case 51: { + label = 0; + $159 = $$271336 & 255; + $160 = $$271336 >>> 8; + $161 = (($$27) + -8)|0; + $$231439 = $$221438;$$231630 = $$221629;$$271018 = $159;$$271124 = $$261123;$$271534 = $$261533;$$28 = $161;$$281231 = $$271230;$$281337 = $160; + label = 52; + continue L46; + break; + } + case 54: { + label = 0; + $166 = ($$281125|0)==(0); + if ($166) { + $$761492 = $$241440;$$801071 = $$281019;$$801687 = $$241631;$$821285 = $$291232;$$831180 = 0;$$851592 = $$281535;$$86 = $$29;$$861395 = $$291338; + label = 220; + break L125; + } else { + $$251441 = $$241440;$$251632 = $$241631;$$291020 = $$281019;$$291126 = $$281125;$$291536 = $$281535;$$30 = $$29;$$301233 = $$291232;$$301339 = $$291338; + label = 55; + continue L46; + } + break; + } + case 61: { + label = 0; + $185 = ($$331130>>>0)<(3); + if ($185) { + $186 = (11635 + ($$331130)|0); + $187 = HEAP8[$186>>0]|0; + $188 = $187 << 24 >> 24; + $189 = ($$34>>>0)<($188>>>0); + if ($189) { + $$301446 = $$291445;$$301637 = $$291636;$$341025 = $$331024;$$341131 = $$331130;$$341541 = $$331540;$$35 = $$34;$$351238 = $$341237;$$351344 = $$341343; + label = 63; + continue L125; + } else { + $$331449 = $$291445;$$331640 = $$291636;$$371028 = $$331024;$$371134 = $$331130;$$371544 = $$331540;$$38 = $$34;$$381241 = $$341237;$$381347 = $$341343; + label = 68; + continue L125; + } + } else { + $216 = ((($0)) + 7040|0); + _memset(($216|0),0,288)|0; + $$341450 = $$291445;$$341641 = $$291636;$$381029 = $$331024;$$381135 = 0;$$381545 = $$331540;$$39 = $$34;$$391242 = $$341237;$$391348 = $$341343; + label = 70; + break; + } + break; + } + case 63: { + label = 0; + $190 = ($$341541>>>0)<($10>>>0); + if ($190) { + $$321448$ph = $$301446;$$321639$ph = $$301637;$$361027$ph = $$341025;$$361133$ph = $$341131;$$37$ph = $$35;$$371240$ph = $$351238;$$371346$ph = $$351344;$$sink1719 = $$341541; + label = 66; + continue L46; + } else { + $$311447 = $$301446;$$311638 = $$301637;$$351026 = $$341025;$$351132 = $$341131;$$351542 = $$341541;$$36 = $$35;$$361239 = $$351238;$$361345 = $$351344; + label = 64; + continue L46; + } + break; + } + case 68: { + label = 0; + $203 = (11635 + ($$371134)|0); + $204 = HEAP8[$203>>0]|0; + $205 = $204 << 24 >> 24; + $206 = 1 << $205; + $207 = (($206) + -1)|0; + $208 = $207 & $$381347; + $209 = (((($0)) + 44|0) + ($$371134<<2)|0); + $210 = $$381347 >>> $205; + $211 = (($$38) - ($205))|0; + $212 = (3196 + ($$371134<<2)|0); + $213 = HEAP32[$212>>2]|0; + $214 = (($208) + ($213))|0; + HEAP32[$209>>2] = $214; + $215 = (($$371134) + 1)|0; + $$291445 = $$331449;$$291636 = $$331640;$$331024 = $$371028;$$331130 = $215;$$331540 = $$371544;$$34 = $211;$$341237 = $$381241;$$341343 = $210; + label = 61; + continue L125; + break; + } + case 72: { + label = 0; + $221 = ($$391546>>>0)<($10>>>0); + if ($221) { + $$371453$ph = $$351451;$$371644$ph = $$351642;$$411032$ph = $$391030;$$411138$ph = $$391136;$$42$ph = $$40;$$421245$ph = $$401243;$$421351$ph = $$401349;$$sink1722 = $$391546; + label = 75; + continue L46; + } else { + $$361452 = $$351451;$$361643 = $$351642;$$401031 = $$391030;$$401137 = $$391136;$$401547 = $$391546;$$41 = $$40;$$411244 = $$401243;$$411350 = $$401349; + label = 73; + continue L46; + } + break; + } + case 77: { + label = 0; + $231 = $$431352 & 7; + $232 = $$431352 >>> 3; + $233 = (($$43) + -3)|0; + $234 = $231&255; + $235 = (11639 + ($$421139)|0); + $236 = HEAP8[$235>>0]|0; + $237 = $236&255; + $238 = (((($0)) + 7040|0) + ($237)|0); + HEAP8[$238>>0] = $234; + $239 = (($$421139) + 1)|0; + $$341450 = $$381454;$$341641 = $$381645;$$381029 = $$421033;$$381135 = $239;$$381545 = $$421549;$$39 = $233;$$391242 = $$431246;$$391348 = $232; + label = 70; + break; + } + case 80: { + label = 0; + $247 = ((($0)) + 24|0); + $248 = HEAP32[$247>>2]|0; + $249 = ($248|0)>(-1); + if ($249) { + dest=$8; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $250 = (((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0); + _memset(($250|0),0,3200)|0; + $251 = HEAP32[$247>>2]|0; + $252 = (((($0)) + 44|0) + ($251<<2)|0); + $253 = HEAP32[$252>>2]|0; + $254 = ($253|0)==(0); + if (!($254)) { + $255 = HEAP32[$247>>2]|0; + $256 = (((($0)) + 44|0) + ($255<<2)|0); + $257 = HEAP32[$256>>2]|0; + $$010951864 = 0; + while(1) { + $258 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010951864)|0); + $259 = HEAP8[$258>>0]|0; + $260 = $259&255; + $261 = (($8) + ($260<<2)|0); + $262 = HEAP32[$261>>2]|0; + $263 = (($262) + 1)|0; + HEAP32[$261>>2] = $263; + $264 = (($$010951864) + 1)|0; + $265 = ($264>>>0)<($257>>>0); + if ($265) { + $$010951864 = $264; + } else { + break; + } + } + } + $266 = ((($7)) + 4|0); + HEAP32[$266>>2] = 0; + HEAP32[$7>>2] = 0; + $267 = ((($8)) + 4|0); + $268 = HEAP32[$267>>2]|0; + $269 = $268 << 1; + $270 = ((($7)) + 8|0); + HEAP32[$270>>2] = $269; + $271 = ((($8)) + 8|0); + $272 = HEAP32[$271>>2]|0; + $273 = (($272) + ($268))|0; + $274 = (($272) + ($269))|0; + $275 = $274 << 1; + $276 = ((($7)) + 12|0); + HEAP32[$276>>2] = $275; + $277 = ((($8)) + 12|0); + $278 = HEAP32[$277>>2]|0; + $279 = (($278) + ($273))|0; + $280 = (($278) + ($275))|0; + $281 = $280 << 1; + $282 = ((($7)) + 16|0); + HEAP32[$282>>2] = $281; + $283 = ((($8)) + 16|0); + $284 = HEAP32[$283>>2]|0; + $285 = (($284) + ($279))|0; + $286 = (($284) + ($281))|0; + $287 = $286 << 1; + $288 = ((($7)) + 20|0); + HEAP32[$288>>2] = $287; + $289 = ((($8)) + 20|0); + $290 = HEAP32[$289>>2]|0; + $291 = (($290) + ($285))|0; + $292 = (($290) + ($287))|0; + $293 = $292 << 1; + $294 = ((($7)) + 24|0); + HEAP32[$294>>2] = $293; + $295 = ((($8)) + 24|0); + $296 = HEAP32[$295>>2]|0; + $297 = (($296) + ($291))|0; + $298 = (($296) + ($293))|0; + $299 = $298 << 1; + $300 = ((($7)) + 28|0); + HEAP32[$300>>2] = $299; + $301 = ((($8)) + 28|0); + $302 = HEAP32[$301>>2]|0; + $303 = (($302) + ($297))|0; + $304 = (($302) + ($299))|0; + $305 = $304 << 1; + $306 = ((($7)) + 32|0); + HEAP32[$306>>2] = $305; + $307 = ((($8)) + 32|0); + $308 = HEAP32[$307>>2]|0; + $309 = (($308) + ($303))|0; + $310 = (($308) + ($305))|0; + $311 = $310 << 1; + $312 = ((($7)) + 36|0); + HEAP32[$312>>2] = $311; + $313 = ((($8)) + 36|0); + $314 = HEAP32[$313>>2]|0; + $315 = (($314) + ($309))|0; + $316 = (($314) + ($311))|0; + $317 = $316 << 1; + $318 = ((($7)) + 40|0); + HEAP32[$318>>2] = $317; + $319 = ((($8)) + 40|0); + $320 = HEAP32[$319>>2]|0; + $321 = (($320) + ($315))|0; + $322 = (($320) + ($317))|0; + $323 = $322 << 1; + $324 = ((($7)) + 44|0); + HEAP32[$324>>2] = $323; + $325 = ((($8)) + 44|0); + $326 = HEAP32[$325>>2]|0; + $327 = (($326) + ($321))|0; + $328 = (($326) + ($323))|0; + $329 = $328 << 1; + $330 = ((($7)) + 48|0); + HEAP32[$330>>2] = $329; + $331 = ((($8)) + 48|0); + $332 = HEAP32[$331>>2]|0; + $333 = (($332) + ($327))|0; + $334 = (($332) + ($329))|0; + $335 = $334 << 1; + $336 = ((($7)) + 52|0); + HEAP32[$336>>2] = $335; + $337 = ((($8)) + 52|0); + $338 = HEAP32[$337>>2]|0; + $339 = (($338) + ($333))|0; + $340 = (($338) + ($335))|0; + $341 = $340 << 1; + $342 = ((($7)) + 56|0); + HEAP32[$342>>2] = $341; + $343 = ((($8)) + 56|0); + $344 = HEAP32[$343>>2]|0; + $345 = (($344) + ($339))|0; + $346 = (($344) + ($341))|0; + $347 = $346 << 1; + $348 = ((($7)) + 60|0); + HEAP32[$348>>2] = $347; + $349 = ((($8)) + 60|0); + $350 = HEAP32[$349>>2]|0; + $351 = (($350) + ($345))|0; + $352 = (($350) + ($347))|0; + $353 = $352 << 1; + $354 = ((($7)) + 64|0); + HEAP32[$354>>2] = $353; + $355 = ($353|0)!=(65536); + $356 = ($351>>>0)>(1); + $or$cond = $355 & $356; + if ($or$cond) { + $$401456 = $$391455;$$401647 = $$391646;$$441035 = $$431034;$$441141 = $$431140;$$441551 = $$431550;$$45 = $$44;$$451248 = $$441247;$$451354 = $$441353; + label = 86; + continue L46; + } + $357 = HEAP32[$247>>2]|0; + $358 = (((($0)) + 44|0) + ($357<<2)|0); + $359 = HEAP32[$358>>2]|0; + $360 = ($359|0)==(0); + if ($360) { + $$lcssa1779 = $357; + } else { + $$010911856 = 0;$$011971855 = -1; + while(1) { + $361 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010911856)|0); + $362 = HEAP8[$361>>0]|0; + $363 = $362&255; + $364 = ($362<<24>>24)==(0); + L142: do { + if ($364) { + $$41201 = $$011971855; + } else { + $365 = (($7) + ($363<<2)|0); + $366 = HEAP32[$365>>2]|0; + $367 = (($366) + 1)|0; + HEAP32[$365>>2] = $367; + $$010861840 = $366;$$010871839 = $363;$$010881838 = 0; + while(1) { + $368 = $$010881838 << 1; + $369 = $$010861840 & 1; + $370 = $369 | $368; + $371 = (($$010871839) + -1)|0; + $372 = $$010861840 >>> 1; + $373 = ($371|0)==(0); + if ($373) { + break; + } else { + $$010861840 = $372;$$010871839 = $371;$$010881838 = $370; + } + } + $374 = ($362&255)<(11); + if ($374) { + $375 = $363 << 9; + $376 = $375 | $$010911856; + $377 = $376&65535; + $378 = ($370>>>0)<(1024); + if (!($378)) { + $$41201 = $$011971855; + break; + } + $379 = 1 << $363; + $$110891852 = $370; + while(1) { + $380 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($$110891852<<1)|0); + HEAP16[$380>>1] = $377; + $381 = (($$110891852) + ($379))|0; + $382 = ($381>>>0)<(1024); + if ($382) { + $$110891852 = $381; + } else { + $$41201 = $$011971855; + break L142; + } + } + } + $383 = $370 & 1023; + $384 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($383<<1)|0); + $385 = HEAP16[$384>>1]|0; + $386 = $385 << 16 >> 16; + $387 = ($385<<16>>16)==(0); + if ($387) { + $388 = (($$011971855) + -2)|0; + $389 = $$011971855&65535; + HEAP16[$384>>1] = $389; + $$01194 = $$011971855;$$11198 = $388; + } else { + $$01194 = $386;$$11198 = $$011971855; + } + $390 = $$010881838 >>> 9; + $391 = ($362&255)>(11); + $392 = $390 & 1; + $393 = (($392) - ($$01194))|0; + $394 = (($393) + -1)|0; + if ($391) { + $395 = $390 & 4194303; + $$010941846 = $363;$$211991845 = $$11198;$397 = $394;$406 = $395; + while(1) { + $396 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($397<<1)|0); + $398 = HEAP16[$396>>1]|0; + $399 = ($398<<16>>16)==(0); + if ($399) { + $400 = $$211991845&65535; + HEAP16[$396>>1] = $400; + $401 = (($$211991845) + -2)|0; + $$21196 = $$211991845;$$31200 = $401; + } else { + $402 = $398 << 16 >> 16; + $$21196 = $402;$$31200 = $$211991845; + } + $403 = (($$010941846) + -1)|0; + $404 = ($403>>>0)>(11); + $405 = $406 >>> 1; + $407 = $405 & 1; + $408 = (($407) - ($$21196))|0; + $409 = (($408) + -1)|0; + if ($404) { + $$010941846 = $403;$$211991845 = $$31200;$397 = $409;$406 = $405; + } else { + $$21199$lcssa = $$31200;$$lcssa1778 = $409; + break; + } + } + } else { + $$21199$lcssa = $$11198;$$lcssa1778 = $394; + } + $410 = $$010911856&65535; + $411 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($$lcssa1778<<1)|0); + HEAP16[$411>>1] = $410; + $$41201 = $$21199$lcssa; + } + } while(0); + $412 = (($$010911856) + 1)|0; + $413 = HEAP32[$247>>2]|0; + $414 = (((($0)) + 44|0) + ($413<<2)|0); + $415 = HEAP32[$414>>2]|0; + $416 = ($412>>>0)<($415>>>0); + if ($416) { + $$010911856 = $412;$$011971855 = $$41201; + } else { + $$lcssa1779 = $413; + break; + } + } + } + $417 = ($$lcssa1779|0)==(2); + if ($417) { + $$411457 = $$391455;$$411648 = $$391646;$$451036 = $$431034;$$451142 = 0;$$451552 = $$431550;$$46 = $$44;$$461249 = $$441247;$$461355 = $$441353; + label = 105; + } else { + $$521468 = $$391455;$$521659 = $$391646;$$551046 = $$431034;$$561153 = $$431140;$$561563 = $$431550;$$57 = $$44;$$571260 = $$441247;$$571366 = $$441353; + label = 138; + } + } else { + $$531469 = $$391455;$$531660 = $$391646;$$561047 = $$431034;$$571154 = $$431140;$$571564 = $$431550;$$58 = $$44;$$581261 = $$441247;$$581367 = $$441353; + label = 139; + } + break; + } + case 108: { + label = 0; + $429 = $$471356 & 1023; + $430 = (((($0)) + 7328|0) + ($429<<1)|0); + $431 = HEAP16[$430>>1]|0; + $432 = $431 << 16 >> 16; + $433 = ($431<<16>>16)>(-1); + if ($433) { + $434 = $432 >> 9; + $435 = (($434) + -1)|0; + $436 = ($435>>>0)<($$47>>>0); + if ($436) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } else { + label = 113; + break L125; + } + } + $437 = ($$47>>>0)>(10); + if ($437) { + $$0981 = 10;$$0984 = $432; + } else { + label = 113; + break L125; + } + while(1) { + $438 = $$0984 ^ -1; + $439 = $$471356 >>> $$0981; + $440 = $439 & 1; + $441 = (($440) + ($438))|0; + $442 = (((($0)) + 9376|0) + ($441<<1)|0); + $443 = HEAP16[$442>>1]|0; + $444 = ($443<<16>>16)<(0); + if (!($444)) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } + $445 = (($$0981) + 1)|0; + $446 = $443 << 16 >> 16; + $447 = (($$0981) + 2)|0; + $448 = ($$47>>>0)<($447>>>0); + if ($448) { + label = 113; + break L125; + } else { + $$0981 = $445;$$0984 = $446; + } + } + break; + } + case 119: { + label = 0; + $471 = $$501359 & 1023; + $472 = (((($0)) + 7328|0) + ($471<<1)|0); + $473 = HEAP16[$472>>1]|0; + $474 = $473 << 16 >> 16; + $475 = ($473<<16>>16)>(-1); + if ($475) { + $476 = $474 >> 9; + $477 = $474 & 511; + $$2983 = $476;$$2986 = $477; + } else { + $$1982 = 10;$$1985 = $474; + while(1) { + $478 = $$1985 ^ -1; + $479 = (($$1982) + 1)|0; + $480 = $$501359 >>> $$1982; + $481 = $480 & 1; + $482 = (($481) + ($478))|0; + $483 = (((($0)) + 9376|0) + ($482<<1)|0); + $484 = HEAP16[$483>>1]|0; + $485 = $484 << 16 >> 16; + $486 = ($484<<16>>16)<(0); + if ($486) { + $$1982 = $479;$$1985 = $485; + } else { + $$2983 = $479;$$2986 = $485; + break; + } + } + } + $487 = $$501359 >>> $$2983; + $488 = (($$50) - ($$2983))|0; + $489 = ($$2986>>>0)<(16); + if ($489) { + $490 = $$2986&255; + $491 = (($$491146) + 1)|0; + $492 = (((($0)) + 10532|0) + ($$491146)|0); + HEAP8[$492>>0] = $490; + $$411457 = $$451461;$$411648 = $$451652;$$451036 = $$2986;$$451142 = $491;$$451552 = $$491556;$$46 = $488;$$461249 = $$501253;$$461355 = $487; + label = 105; + break; + } + $493 = ($$2986|0)!=(16); + $494 = ($$491146|0)!=(0); + $or$cond24 = $494 | $493; + if (!($or$cond24)) { + $$461462 = $$451461;$$461653 = $$451652;$$491040 = $$2986;$$501147 = $$491146;$$501557 = $$491556;$$51 = $488;$$511254 = $$501253;$$511360 = $487; + label = 125; + continue L46; + } + $495 = (($$2986) + -16)|0; + $496 = (11658 + ($495)|0); + $497 = HEAP8[$496>>0]|0; + $498 = $497 << 24 >> 24; + $499 = ($488>>>0)<($498>>>0); + if ($499) { + $$471463 = $$451461;$$471654 = $$451652;$$501041 = $$2986;$$511148 = $$491146;$$511558 = $$491556;$$52 = $488;$$521255 = $498;$$521361 = $487; + label = 127; + continue L125; + } else { + $$501466 = $$451461;$$501657 = $$451652;$$531044 = $$2986;$$541151 = $$491146;$$541561 = $$491556;$$55 = $488;$$551258 = $498;$$551364 = $487; + label = 132; + continue L125; + } + break; + } + case 127: { + label = 0; + $500 = ($$511558>>>0)<($10>>>0); + if ($500) { + $$491465$ph = $$471463;$$491656$ph = $$471654;$$521043$ph = $$501041;$$531150$ph = $$511148;$$54$ph = $$52;$$541257$ph = $$521255;$$541363$ph = $$521361;$$sink1732 = $$511558; + label = 130; + continue L46; + } else { + $$481464 = $$471463;$$481655 = $$471654;$$511042 = $$501041;$$521149 = $$511148;$$521559 = $$511558;$$53 = $$52;$$531256 = $$521255;$$531362 = $$521361; + label = 128; + continue L46; + } + break; + } + case 132: { + label = 0; + $510 = 1 << $$551258; + $511 = (($510) + -1)|0; + $512 = $511 & $$551364; + $513 = $$551364 >>> $$551258; + $514 = (($$55) - ($$551258))|0; + $515 = (($$531044) + -16)|0; + $516 = (11662 + ($515)|0); + $517 = HEAP8[$516>>0]|0; + $518 = $517 << 24 >> 24; + $519 = (($518) + ($512))|0; + $520 = (((($0)) + 10532|0) + ($$541151)|0); + $521 = ($$531044|0)==(16); + if ($521) { + $522 = (($$541151) + -1)|0; + $523 = (((($0)) + 10532|0) + ($522)|0); + $524 = HEAP8[$523>>0]|0; + $525 = $524&255; + $527 = $525; + } else { + $527 = 0; + } + $526 = $527&255; + _memset(($520|0),($526|0),($519|0))|0; + $528 = (($519) + ($$541151))|0; + $$411457 = $$501466;$$411648 = $$501657;$$451036 = $$531044;$$451142 = $528;$$451552 = $$541561;$$46 = $514;$$461249 = $$551258;$$461355 = $513; + label = 105; + break; + } + case 140: { + label = 0; + $539 = $10; + $540 = $$581565$ph; + $541 = (($539) - ($540))|0; + $542 = ($541|0)<(4); + $543 = ($$59$ph>>>0)<(15); + L241: do { + if ($542) { + $$541661$lcssa = $$541661$ph;$$581155$lcssa = $$581155$ph;$$581565$lcssa = $$581565$ph;$$59$lcssa = $$59$ph;$$591368$lcssa = $$591368$ph;$$lcssa1799 = $543;$$lcssa1802 = $541; + } else { + $544 = $12; + $$5416611868 = $$541661$ph;$$5811551871 = $$581155$ph;$$5815651869 = $$581565$ph;$$5913681870 = $$591368$ph;$$591872 = $$59$ph;$965 = $543;$966 = $541; + while(1) { + $545 = $$5416611868; + $546 = (($544) - ($545))|0; + $547 = ($546|0)<(2); + if ($547) { + $$541661$lcssa = $$5416611868;$$581155$lcssa = $$5811551871;$$581565$lcssa = $$5815651869;$$59$lcssa = $$591872;$$591368$lcssa = $$5913681870;$$lcssa1799 = $965;$$lcssa1802 = $966; + break L241; + } + if ($965) { + $613 = HEAP8[$$5815651869>>0]|0; + $614 = $613&255; + $615 = ((($$5815651869)) + 1|0); + $616 = HEAP8[$615>>0]|0; + $617 = $616&255; + $618 = $617 << 8; + $619 = $618 | $614; + $620 = $619 << $$591872; + $621 = $620 | $$5913681870; + $622 = ((($$5815651869)) + 2|0); + $623 = (($$591872) + 16)|0; + $$641571 = $622;$$65 = $623;$$651374 = $621; + } else { + $$641571 = $$5815651869;$$65 = $$591872;$$651374 = $$5913681870; + } + $624 = $$651374 & 1023; + $625 = (((($0)) + 352|0) + ($624<<1)|0); + $626 = HEAP16[$625>>1]|0; + $627 = $626 << 16 >> 16; + $628 = ($626<<16>>16)>(-1); + if ($628) { + $629 = $627 >> 9; + $$1964 = $629;$$1968 = $627; + } else { + $$0963 = 10;$$0967 = $627; + while(1) { + $630 = $$0967 ^ -1; + $631 = (($$0963) + 1)|0; + $632 = $$651374 >>> $$0963; + $633 = $632 & 1; + $634 = (($633) + ($630))|0; + $635 = (((($0)) + 2400|0) + ($634<<1)|0); + $636 = HEAP16[$635>>1]|0; + $637 = $636 << 16 >> 16; + $638 = ($636<<16>>16)<(0); + if ($638) { + $$0963 = $631;$$0967 = $637; + } else { + $$1964 = $631;$$1968 = $637; + break; + } + } + } + $639 = $$651374 >>> $$1964; + $640 = (($$65) - ($$1964))|0; + $641 = $$1968 & 256; + $642 = ($641|0)==(0); + if (!($642)) { + $$601476 = $$541470$ph;$$611668 = $$5416611868;$$631054 = $$571048$ph;$$641161 = $$1968;$$651268 = $$591262$ph;$$671574 = $$641571;$$68 = $640;$$681377 = $639; + label = 176; + break L126; + } + $643 = ($640>>>0)<(15); + if ($643) { + $644 = HEAP8[$$641571>>0]|0; + $645 = $644&255; + $646 = ((($$641571)) + 1|0); + $647 = HEAP8[$646>>0]|0; + $648 = $647&255; + $649 = $648 << 8; + $650 = $649 | $645; + $651 = $650 << $640; + $652 = $651 | $639; + $653 = ((($$641571)) + 2|0); + $654 = (($640) + 16)|0; + $$651572 = $653;$$66 = $654;$$661375 = $652; + } else { + $$651572 = $$641571;$$66 = $640;$$661375 = $639; + } + $655 = $$661375 & 1023; + $656 = (((($0)) + 352|0) + ($655<<1)|0); + $657 = HEAP16[$656>>1]|0; + $658 = $657 << 16 >> 16; + $659 = ($657<<16>>16)>(-1); + if ($659) { + $660 = $658 >> 9; + $$3966 = $660;$$3970 = $658; + } else { + $$2965 = 10;$$2969 = $658; + while(1) { + $661 = $$2969 ^ -1; + $662 = (($$2965) + 1)|0; + $663 = $$661375 >>> $$2965; + $664 = $663 & 1; + $665 = (($664) + ($661))|0; + $666 = (((($0)) + 2400|0) + ($665<<1)|0); + $667 = HEAP16[$666>>1]|0; + $668 = $667 << 16 >> 16; + $669 = ($667<<16>>16)<(0); + if ($669) { + $$2965 = $662;$$2969 = $668; + } else { + $$3966 = $662;$$3970 = $668; + break; + } + } + } + $670 = $$661375 >>> $$3966; + $671 = (($$66) - ($$3966))|0; + $672 = $$1968&255; + HEAP8[$$5416611868>>0] = $672; + $673 = $$3970 & 256; + $674 = ($673|0)==(0); + if (!($674)) { + break; + } + $676 = $$3970&255; + $677 = ((($$5416611868)) + 1|0); + HEAP8[$677>>0] = $676; + $678 = ((($$5416611868)) + 2|0); + $679 = $$651572; + $680 = (($539) - ($679))|0; + $681 = ($680|0)<(4); + $682 = ($671>>>0)<(15); + if ($681) { + $$541661$lcssa = $678;$$581155$lcssa = $$1968;$$581565$lcssa = $$651572;$$59$lcssa = $671;$$591368$lcssa = $670;$$lcssa1799 = $682;$$lcssa1802 = $680; + break L241; + } else { + $$5416611868 = $678;$$5811551871 = $$1968;$$5815651869 = $$651572;$$5913681870 = $670;$$591872 = $671;$965 = $682;$966 = $680; + } + } + $675 = ((($$5416611868)) + 1|0); + $$601476 = $$541470$ph;$$611668 = $675;$$631054 = $$571048$ph;$$641161 = $$3970;$$651268 = $$591262$ph;$$671574 = $$651572;$$68 = $671;$$681377 = $670; + label = 176; + break L126; + } + } while(0); + if (!($$lcssa1799)) { + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $$581565$lcssa;$$63 = $$59$lcssa;$$631266 = $$591262$ph;$$631372 = $$591368$lcssa; + label = 156; + continue L125; + } + $548 = ($$lcssa1802|0)<(2); + if ($548) { + $$551471 = $$541470$ph;$$551662 = $$541661$lcssa;$$581049 = $$571048$ph;$$591156 = $$581155$lcssa;$$591566 = $$581565$lcssa;$$60 = $$59$lcssa;$$601263 = $$591262$ph;$$601369 = $$591368$lcssa; + label = 145; + continue L125; + } + $579 = HEAP8[$$581565$lcssa>>0]|0; + $580 = $579&255; + $581 = $580 << $$59$lcssa; + $582 = ((($$581565$lcssa)) + 1|0); + $583 = HEAP8[$582>>0]|0; + $584 = $583&255; + $585 = (($$59$lcssa) + 8)|0; + $586 = $584 << $585; + $587 = $581 | $$591368$lcssa; + $588 = $587 | $586; + $589 = ((($$581565$lcssa)) + 2|0); + $590 = (($$59$lcssa) + 16)|0; + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $589;$$63 = $590;$$631266 = $$591262$ph;$$631372 = $588; + label = 156; + continue L125; + break; + } + case 145: { + label = 0; + $549 = $$601369 & 1023; + $550 = (((($0)) + 352|0) + ($549<<1)|0); + $551 = HEAP16[$550>>1]|0; + $552 = $551 << 16 >> 16; + $553 = ($551<<16>>16)>(-1); + if ($553) { + $554 = $552 >> 9; + $555 = (($554) + -1)|0; + $556 = ($555>>>0)<($$60>>>0); + if ($556) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } else { + label = 150; + break L125; + } + } + $557 = ($$60>>>0)>(10); + if ($557) { + $$0972 = 10;$$0975 = $552; + } else { + label = 150; + break L125; + } + while(1) { + $558 = $$0975 ^ -1; + $559 = $$601369 >>> $$0972; + $560 = $559 & 1; + $561 = (($560) + ($558))|0; + $562 = (((($0)) + 2400|0) + ($561<<1)|0); + $563 = HEAP16[$562>>1]|0; + $564 = ($563<<16>>16)<(0); + if (!($564)) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } + $565 = (($$0972) + 1)|0; + $566 = $563 << 16 >> 16; + $567 = (($$0972) + 2)|0; + $568 = ($$60>>>0)<($567>>>0); + if ($568) { + label = 150; + break L125; + } else { + $$0972 = $565;$$0975 = $566; + } + } + break; + } + case 156: { + label = 0; + $591 = $$631372 & 1023; + $592 = (((($0)) + 352|0) + ($591<<1)|0); + $593 = HEAP16[$592>>1]|0; + $594 = $593 << 16 >> 16; + $595 = ($593<<16>>16)>(-1); + if ($595) { + $596 = $594 >> 9; + $597 = $594 & 511; + $$2974 = $596;$$2977 = $597; + } else { + $$1973 = 10;$$1976 = $594; + while(1) { + $598 = $$1976 ^ -1; + $599 = (($$1973) + 1)|0; + $600 = $$631372 >>> $$1973; + $601 = $600 & 1; + $602 = (($601) + ($598))|0; + $603 = (((($0)) + 2400|0) + ($602<<1)|0); + $604 = HEAP16[$603>>1]|0; + $605 = $604 << 16 >> 16; + $606 = ($604<<16>>16)<(0); + if ($606) { + $$1973 = $599;$$1976 = $605; + } else { + $$2974 = $599;$$2977 = $605; + break; + } + } + } + $607 = $$631372 >>> $$2974; + $608 = (($$63) - ($$2974))|0; + $609 = ($$2977>>>0)>(255); + if ($609) { + $$601476 = $$581474;$$611668 = $$581665;$$631054 = $$611052;$$641161 = $$2977;$$651268 = $$631266;$$671574 = $$621569;$$68 = $608;$$681377 = $607; + label = 176; + } else { + $$591475 = $$581474;$$591666 = $$581665;$$621053 = $$611052;$$621159 = $$2977;$$631570 = $$621569;$$64 = $608;$$641267 = $$631266;$$641373 = $607; + label = 160; + continue L46; + } + break; + } + case 179: { + label = 0; + $693 = ($$681575>>>0)<($10>>>0); + if ($693) { + $$631479$ph = $$611477;$$641671$ph = $$621669;$$661057$ph = $$641055;$$671164$ph = $$651162;$$681271$ph = $$661269;$$71$ph = $$69;$$711380$ph = $$691378;$$sink1739 = $$681575; + label = 182; + continue L46; + } else { + $$621478 = $$611477;$$631670 = $$621669;$$651056 = $$641055;$$661163 = $$651162;$$671270 = $$661269;$$691576 = $$681575;$$70 = $$69;$$701379 = $$691378; + label = 180; + continue L46; + } + break; + } + case 184: { + label = 0; + $703 = 1 << $$691272; + $704 = (($703) + -1)|0; + $705 = $704 & $$721381; + $706 = $$721381 >>> $$691272; + $707 = (($$72) - ($$691272))|0; + $708 = (($705) + ($$681165))|0; + $$651481 = $$641480;$$661673 = $$651672;$$681059 = $$671058;$$691166 = $708;$$701273 = $$691272;$$721579 = $$711578;$$73 = $707;$$731382 = $706; + label = 185; + break; + } + case 187: { + label = 0; + $714 = $$741383 & 1023; + $715 = (((($0)) + 3840|0) + ($714<<1)|0); + $716 = HEAP16[$715>>1]|0; + $717 = $716 << 16 >> 16; + $718 = ($716<<16>>16)>(-1); + if ($718) { + $719 = $717 >> 9; + $720 = (($719) + -1)|0; + $721 = ($720>>>0)<($$74>>>0); + if ($721) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } else { + label = 192; + break L125; + } + } + $722 = ($$74>>>0)>(10); + if ($722) { + $$0953 = 10;$$0956 = $717; + } else { + label = 192; + break L125; + } + while(1) { + $723 = $$0956 ^ -1; + $724 = $$741383 >>> $$0953; + $725 = $724 & 1; + $726 = (($725) + ($723))|0; + $727 = (((($0)) + 5888|0) + ($726<<1)|0); + $728 = HEAP16[$727>>1]|0; + $729 = ($728<<16>>16)<(0); + if (!($729)) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } + $730 = (($$0953) + 1)|0; + $731 = $728 << 16 >> 16; + $732 = (($$0953) + 2)|0; + $733 = ($$74>>>0)<($732>>>0); + if ($733) { + label = 192; + break L125; + } else { + $$0953 = $730;$$0956 = $731; + } + } + break; + } + case 198: { + label = 0; + $756 = $$771386 & 1023; + $757 = (((($0)) + 3840|0) + ($756<<1)|0); + $758 = HEAP16[$757>>1]|0; + $759 = $758 << 16 >> 16; + $760 = ($758<<16>>16)>(-1); + if ($760) { + $761 = $759 >> 9; + $762 = $759 & 511; + $$2955 = $761;$$2958 = $762; + } else { + $$1954 = 10;$$1957 = $759; + while(1) { + $763 = $$1957 ^ -1; + $764 = (($$1954) + 1)|0; + $765 = $$771386 >>> $$1954; + $766 = $765 & 1; + $767 = (($766) + ($763))|0; + $768 = (((($0)) + 5888|0) + ($767<<1)|0); + $769 = HEAP16[$768>>1]|0; + $770 = $769 << 16 >> 16; + $771 = ($769<<16>>16)<(0); + if ($771) { + $$1954 = $764;$$1957 = $770; + } else { + $$2955 = $764;$$2958 = $770; + break; + } + } + } + $772 = $$771386 >>> $$2955; + $773 = (($$77) - ($$2955))|0; + $774 = (3456 + ($$2958<<2)|0); + $775 = HEAP32[$774>>2]|0; + $776 = (3584 + ($$2958<<2)|0); + $777 = HEAP32[$776>>2]|0; + $778 = (($$2958) + -4)|0; + $779 = ($778>>>0)<(26); + if ($779) { + $780 = ($773>>>0)<($775>>>0); + if ($780) { + $$701486 = $$691485;$$711678 = $$701677;$$721063 = $777;$$741171 = $$731170;$$741277 = $775;$$771584 = $$761583;$$78 = $773;$$781387 = $772; + label = 203; + continue L125; + } else { + $$741681 = $$701677;$$751066 = $777;$$771174 = $$731170;$$771280 = $775;$$801587 = $$761583;$$81 = $773;$$811390 = $772; + label = 208; + continue L125; + } + } else { + $$751682 = $$701677;$$761067 = $777;$$781175 = $$731170;$$781281 = $775;$$811588 = $$761583;$$82 = $773;$$821391 = $772; + label = 209; + } + break; + } + case 203: { + label = 0; + $781 = ($$771584>>>0)<($10>>>0); + if ($781) { + $$721488$ph = $$701486;$$731680$ph = $$711678;$$741065$ph = $$721063;$$761173$ph = $$741171;$$761279$ph = $$741277;$$80$ph = $$78;$$801389$ph = $$781387;$$sink1746 = $$771584; + label = 206; + continue L46; + } else { + $$711487 = $$701486;$$721679 = $$711678;$$731064 = $$721063;$$751172 = $$741171;$$751278 = $$741277;$$781585 = $$771584;$$79 = $$78;$$791388 = $$781387; + label = 204; + continue L46; + } + break; + } + case 208: { + label = 0; + $791 = 1 << $$771280; + $792 = (($791) + -1)|0; + $793 = $792 & $$811390; + $794 = $$811390 >>> $$771280; + $795 = (($$81) - ($$771280))|0; + $796 = (($793) + ($$751066))|0; + $$751682 = $$741681;$$761067 = $796;$$781175 = $$771174;$$781281 = $$771280;$$811588 = $$801587;$$82 = $795;$$821391 = $794; + label = 209; + break; + } + case 212: { + label = 0; + $807 = (($$801177) + -1)|0; + $808 = ($$801177|0)==(0); + if ($808) { + $$531469 = $$741490;$$531660 = $$771684;$$561047 = $$781069;$$571154 = $807;$$571564 = $$831590;$$58 = $$84;$$581261 = $$801283;$$581367 = $$841393; + label = 139; + } else { + $$751491 = $$741490;$$781685 = $$771684;$$791070 = $$781069;$$811178 = $807;$$811284 = $$801283;$$841591 = $$831590;$$85 = $$84;$$851394 = $$841393; + label = 213; + continue L46; + } + break; + } + } + do { + if ((label|0) == 70) { + label = 0; + $217 = ((($0)) + 52|0); + $218 = HEAP32[$217>>2]|0; + $219 = ($$381135>>>0)<($218>>>0); + if ($219) { + $220 = ($$39>>>0)<(3); + if ($220) { + $$351451 = $$341450;$$351642 = $$341641;$$391030 = $$381029;$$391136 = $$381135;$$391546 = $$381545;$$40 = $$39;$$401243 = $$391242;$$401349 = $$391348; + label = 72; + continue L125; + } else { + $$381454 = $$341450;$$381645 = $$341641;$$421033 = $$381029;$$421139 = $$381135;$$421549 = $$381545;$$43 = $$39;$$431246 = $$391242;$$431352 = $$391348; + label = 77; + continue L125; + } + } else { + HEAP32[$217>>2] = 19; + $$391455 = $$341450;$$391646 = $$341641;$$431034 = $$381029;$$431140 = $$381135;$$431550 = $$381545;$$44 = $$39;$$441247 = $$391242;$$441353 = $$391348; + label = 80; + continue L125; + } + } + else if ((label|0) == 105) { + label = 0; + $418 = ((($0)) + 44|0); + $419 = HEAP32[$418>>2]|0; + $420 = ((($0)) + 48|0); + $421 = HEAP32[$420>>2]|0; + $422 = (($421) + ($419))|0; + $423 = ($$451142>>>0)<($422>>>0); + if (!($423)) { + $529 = ($422|0)==($$451142|0); + if (!($529)) { + $$511467 = $$411457;$$511658 = $$411648;$$541045 = $$451036;$$551152 = $$451142;$$551562 = $$451552;$$56 = $$46;$$561259 = $$461249;$$561365 = $$461355; + label = 136; + continue L46; + } + $530 = ((($0)) + 64|0); + $531 = ((($0)) + 10532|0); + _memcpy(($530|0),($531|0),($419|0))|0; + $532 = ((($0)) + 3552|0); + $533 = HEAP32[$418>>2]|0; + $534 = (((($0)) + 10532|0) + ($533)|0); + $535 = HEAP32[$420>>2]|0; + _memcpy(($532|0),($534|0),($535|0))|0; + $$521468 = $$411457;$$521659 = $$411648;$$551046 = $$451036;$$561153 = $$451142;$$561563 = $$451552;$$57 = $$46;$$571260 = $$461249;$$571366 = $$461355; + label = 138; + break; + } + $424 = ($$46>>>0)<(15); + if (!($424)) { + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $$451552;$$50 = $$46;$$501253 = $$461249;$$501359 = $$461355; + label = 119; + continue L125; + } + $425 = $10; + $426 = $$451552; + $427 = (($425) - ($426))|0; + $428 = ($427|0)<(2); + if ($428) { + $$421458 = $$411457;$$421649 = $$411648;$$461037 = $$451036;$$461143 = $$451142;$$461553 = $$451552;$$47 = $$46;$$471250 = $$461249;$$471356 = $$461355; + label = 108; + continue L125; + } + $459 = HEAP8[$$451552>>0]|0; + $460 = $459&255; + $461 = $460 << $$46; + $462 = ((($$451552)) + 1|0); + $463 = HEAP8[$462>>0]|0; + $464 = $463&255; + $465 = (($$46) + 8)|0; + $466 = $464 << $465; + $467 = $461 | $$461355; + $468 = $467 | $466; + $469 = ((($$451552)) + 2|0); + $470 = (($$46) + 16)|0; + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $469;$$50 = $470;$$501253 = $$461249;$$501359 = $468; + label = 119; + continue L125; + } + else if ((label|0) == 176) { + label = 0; + $683 = $$641161 & 511; + $684 = ($683|0)==(256); + if ($684) { + $$761492 = $$601476;$$801071 = $$631054;$$801687 = $$611668;$$821285 = $$651268;$$831180 = 256;$$851592 = $$671574;$$86 = $$68;$$861395 = $$681377; + label = 220; + break L125; + } + $685 = (($683) + -257)|0; + $686 = (3208 + ($685<<2)|0); + $687 = HEAP32[$686>>2]|0; + $688 = (3332 + ($685<<2)|0); + $689 = HEAP32[$688>>2]|0; + $690 = (($683) + -265)|0; + $691 = ($690>>>0)<(20); + if ($691) { + $692 = ($$68>>>0)<($687>>>0); + if ($692) { + $$611477 = $$601476;$$621669 = $$611668;$$641055 = $$631054;$$651162 = $689;$$661269 = $687;$$681575 = $$671574;$$69 = $$68;$$691378 = $$681377; + label = 179; + continue L125; + } else { + $$641480 = $$601476;$$651672 = $$611668;$$671058 = $$631054;$$681165 = $689;$$691272 = $687;$$711578 = $$671574;$$72 = $$68;$$721381 = $$681377; + label = 184; + continue L125; + } + } else { + $$651481 = $$601476;$$661673 = $$611668;$$681059 = $$631054;$$691166 = $689;$$701273 = $687;$$721579 = $$671574;$$73 = $$68;$$731382 = $$681377; + label = 185; + } + } + else if ((label|0) == 209) { + label = 0; + $797 = $$751682; + $798 = $3; + $799 = (($797) - ($798))|0; + $$not = ($799>>>0)>=($$761067>>>0); + $$not1747 = $14 ^ 1; + $brmerge = $$not | $$not1747; + if (!($brmerge)) { + $$731489 = $799;$$761683 = $$751682;$$771068 = $$761067;$$791176 = $$781175;$$791282 = $$781281;$$821589 = $$811588;$$83 = $$82;$$831392 = $$821391; + label = 210; + continue L46; + } + $800 = (($799) - ($$761067))|0; + $801 = $800 & $$1753; + $802 = (($3) + ($801)|0); + $803 = ($$751682>>>0)>($802>>>0); + $804 = $803 ? $$751682 : $802; + $805 = (($804) + ($$781175)|0); + $806 = ($805>>>0)>($12>>>0); + if ($806) { + $$741490 = $799;$$771684 = $$751682;$$781069 = $$761067;$$801177 = $$781175;$$801283 = $$781281;$$831590 = $$811588;$$84 = $$82;$$841393 = $$821391; + label = 212; + continue L125; + } else { + $$0978 = $802;$$791686 = $$751682;$$821179 = $$781175; + } + while(1) { + $816 = HEAP8[$$0978>>0]|0; + HEAP8[$$791686>>0] = $816; + $817 = ((($$0978)) + 1|0); + $818 = HEAP8[$817>>0]|0; + $819 = ((($$791686)) + 1|0); + HEAP8[$819>>0] = $818; + $820 = ((($$0978)) + 2|0); + $821 = HEAP8[$820>>0]|0; + $822 = ((($$791686)) + 2|0); + HEAP8[$822>>0] = $821; + $823 = ((($$791686)) + 3|0); + $824 = ((($$0978)) + 3|0); + $825 = (($$821179) + -3)|0; + $826 = ($825|0)>(2); + if ($826) { + $$0978 = $824;$$791686 = $823;$$821179 = $825; + } else { + break; + } + } + $827 = ($825|0)>(0); + if ($827) { + $828 = HEAP8[$824>>0]|0; + HEAP8[$823>>0] = $828; + $829 = ($825|0)==(1); + if (!($829)) { + $830 = ((($$0978)) + 4|0); + $831 = HEAP8[$830>>0]|0; + $832 = ((($$791686)) + 4|0); + HEAP8[$832>>0] = $831; + } + $833 = (($823) + ($825)|0); + $$531469 = $799;$$531660 = $833;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } else { + $$531469 = $799;$$531660 = $823;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } + } + } while(0); + if ((label|0) == 138) { + label = 0; + $536 = ((($0)) + 24|0); + $537 = HEAP32[$536>>2]|0; + $538 = (($537) + -1)|0; + HEAP32[$536>>2] = $538; + $$391455 = $$521468;$$391646 = $$521659;$$431034 = $$551046;$$431140 = $$561153;$$431550 = $$561563;$$44 = $$57;$$441247 = $$571260;$$441353 = $$571366; + label = 80; + continue; + } + else if ((label|0) == 139) { + label = 0; + $$541470$ph = $$531469;$$541661$ph = $$531660;$$571048$ph = $$561047;$$581155$ph = $$571154;$$581565$ph = $$571564;$$59$ph = $$58;$$591262$ph = $$581261;$$591368$ph = $$581367; + label = 140; + continue; + } + else if ((label|0) == 185) { + label = 0; + $709 = ($$73>>>0)<(15); + if (!($709)) { + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $$721579;$$77 = $$73;$$771386 = $$731382; + label = 198; + continue; + } + $710 = $10; + $711 = $$721579; + $712 = (($710) - ($711))|0; + $713 = ($712|0)<(2); + if ($713) { + $$661482 = $$651481;$$671674 = $$661673;$$691060 = $$681059;$$701167 = $$691166;$$711274 = $$701273;$$731580 = $$721579;$$74 = $$73;$$741383 = $$731382; + label = 187; + continue; + } + $744 = HEAP8[$$721579>>0]|0; + $745 = $744&255; + $746 = $745 << $$73; + $747 = ((($$721579)) + 1|0); + $748 = HEAP8[$747>>0]|0; + $749 = $748&255; + $750 = (($$73) + 8)|0; + $751 = $749 << $750; + $752 = $746 | $$731382; + $753 = $752 | $751; + $754 = ((($$721579)) + 2|0); + $755 = (($$73) + 16)|0; + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $754;$$77 = $755;$$771386 = $753; + label = 198; + continue; + } + } + if ((label|0) == 113) { + label = 0; + $449 = ($$461553>>>0)<($10>>>0); + if ($449) { + $$441460$ph = $$421458;$$441651$ph = $$421649;$$481039$ph = $$461037;$$481145$ph = $$461143;$$49$ph = $$47;$$491252$ph = $$471250;$$491358$ph = $$471356;$$sink1729 = $$461553; + label = 116; + continue; + } else { + $$431459 = $$421458;$$431650 = $$421649;$$471038 = $$461037;$$471144 = $$461143;$$471554 = $$461553;$$48 = $$47;$$481251 = $$471250;$$481357 = $$471356; + label = 114; + continue; + } + } + else if ((label|0) == 150) { + label = 0; + $569 = ($$591566>>>0)<($10>>>0); + if ($569) { + $$571473$ph = $$551471;$$571664$ph = $$551662;$$601051$ph = $$581049;$$611158$ph = $$591156;$$62$ph = $$60;$$621265$ph = $$601263;$$621371$ph = $$601369;$$sink1736 = $$591566; + label = 153; + continue; + } else { + $$561472 = $$551471;$$561663 = $$551662;$$591050 = $$581049;$$601157 = $$591156;$$601567 = $$591566;$$61 = $$60;$$611264 = $$601263;$$611370 = $$601369; + label = 151; + continue; + } + } + else if ((label|0) == 192) { + label = 0; + $734 = ($$731580>>>0)<($10>>>0); + if ($734) { + $$681484$ph = $$661482;$$691676$ph = $$671674;$$711062$ph = $$691060;$$721169$ph = $$701167;$$731276$ph = $$711274;$$76$ph = $$74;$$761385$ph = $$741383;$$sink1743 = $$731580; + label = 195; + continue; + } else { + $$671483 = $$661482;$$681675 = $$671674;$$701061 = $$691060;$$711168 = $$701167;$$721275 = $$711274;$$741581 = $$731580;$$75 = $$74;$$751384 = $$741383; + label = 193; + continue; + } + } + else if ((label|0) == 220) { + label = 0; + $834 = ((($0)) + 20|0); + $835 = HEAP32[$834>>2]|0; + $836 = $835 & 1; + $837 = ($836|0)==(0); + if ($837) { + $$01416 = $$761492;$$01607 = $$801687;$$41511 = $$851592;$$5 = $$86;$$51102 = $$831180;$$51208 = $$821285;$$51314 = $$861395;$$5996 = $$801071; + label = 14; + continue; + } + $838 = $6 & 1; + $839 = ($838|0)==(0); + if ($839) { + $$881504 = $$761492;$$921083 = $$801071;$$921699 = $$801687;$$941191 = $$831180;$$941297 = $$821285;$$971604 = $$851592;$$98 = $$86;$$981407 = $$861395; + label = 242; + continue; + } else { + $$801496 = $$761492;$$841075 = $$801071;$$841691 = $$801687;$$861289 = $$821285;$$891596 = $$851592;$$90 = $$86;$$901399 = $$861395; + label = 226; + continue; + } + } + } + if ((label|0) == 258) { + STACKTOP = sp;return ($$0951|0); + } + $892 = ((($0)) + 28|0); + $893 = HEAP32[$892>>2]|0; + $894 = $893 & 65535; + $895 = $893 >>> 16; + $896 = ($888|0)==(0); + if ($896) { + $$0937$lcssa = $895;$$0938$lcssa = $894; + } else { + $897 = (($888>>>0) % 5552)&-1; + $$01834 = $897;$$09371833 = $895;$$09381832 = $894;$$09431831 = $888;$$09441830 = $4; + while(1) { + $898 = ($$01834>>>0)>(7); + if ($898) { + $899 = (($$01834) + -8)|0; + $900 = $899 & -8; + $scevgep = ((($$09441830)) + 8|0); + $$09411816 = 0;$$11818 = $$09371833;$$19391817 = $$09381832;$$19451815 = $$09441830; + while(1) { + $904 = HEAP8[$$19451815>>0]|0; + $905 = $904&255; + $906 = (($905) + ($$19391817))|0; + $907 = (($906) + ($$11818))|0; + $908 = ((($$19451815)) + 1|0); + $909 = HEAP8[$908>>0]|0; + $910 = $909&255; + $911 = (($906) + ($910))|0; + $912 = (($907) + ($911))|0; + $913 = ((($$19451815)) + 2|0); + $914 = HEAP8[$913>>0]|0; + $915 = $914&255; + $916 = (($911) + ($915))|0; + $917 = (($912) + ($916))|0; + $918 = ((($$19451815)) + 3|0); + $919 = HEAP8[$918>>0]|0; + $920 = $919&255; + $921 = (($916) + ($920))|0; + $922 = (($917) + ($921))|0; + $923 = ((($$19451815)) + 4|0); + $924 = HEAP8[$923>>0]|0; + $925 = $924&255; + $926 = (($921) + ($925))|0; + $927 = (($922) + ($926))|0; + $928 = ((($$19451815)) + 5|0); + $929 = HEAP8[$928>>0]|0; + $930 = $929&255; + $931 = (($926) + ($930))|0; + $932 = (($927) + ($931))|0; + $933 = ((($$19451815)) + 6|0); + $934 = HEAP8[$933>>0]|0; + $935 = $934&255; + $936 = (($931) + ($935))|0; + $937 = (($932) + ($936))|0; + $938 = ((($$19451815)) + 7|0); + $939 = HEAP8[$938>>0]|0; + $940 = $939&255; + $941 = (($936) + ($940))|0; + $942 = (($937) + ($941))|0; + $943 = (($$09411816) + 8)|0; + $944 = ((($$19451815)) + 8|0); + $945 = $943 | 7; + $946 = ($945>>>0)<($$01834>>>0); + if ($946) { + $$09411816 = $943;$$11818 = $942;$$19391817 = $941;$$19451815 = $944; + } else { + break; + } + } + $901 = (($900) + 8)|0; + $scevgep1947 = (($scevgep) + ($900)|0); + $$0941$lcssa = $901;$$1$lcssa = $942;$$1939$lcssa = $941;$$1945$lcssa = $scevgep1947; + } else { + $$0941$lcssa = 0;$$1$lcssa = $$09371833;$$1939$lcssa = $$09381832;$$1945$lcssa = $$09441830; + } + $902 = ($$01834>>>0)>($$0941$lcssa>>>0); + if ($902) { + $903 = (($$01834) - ($$0941$lcssa))|0; + $$19421823 = $$0941$lcssa;$$21825 = $$1$lcssa;$$29401824 = $$1939$lcssa;$$29461822 = $$1945$lcssa; + while(1) { + $947 = ((($$29461822)) + 1|0); + $948 = HEAP8[$$29461822>>0]|0; + $949 = $948&255; + $950 = (($949) + ($$29401824))|0; + $951 = (($950) + ($$21825))|0; + $952 = (($$19421823) + 1)|0; + $exitcond = ($952|0)==($$01834|0); + if ($exitcond) { + break; + } else { + $$19421823 = $952;$$21825 = $951;$$29401824 = $950;$$29461822 = $947; + } + } + $scevgep1948 = (($$1945$lcssa) + ($903)|0); + $$2$lcssa = $951;$$2940$lcssa = $950;$$2946$lcssa = $scevgep1948; + } else { + $$2$lcssa = $$1$lcssa;$$2940$lcssa = $$1939$lcssa;$$2946$lcssa = $$1945$lcssa; + } + $953 = (($$2940$lcssa>>>0) % 65521)&-1; + $954 = (($$2$lcssa>>>0) % 65521)&-1; + $955 = (($$09431831) - ($$01834))|0; + $956 = ($955|0)==(0); + if ($956) { + $$0937$lcssa = $954;$$0938$lcssa = $953; + break; + } else { + $$01834 = 5552;$$09371833 = $954;$$09381832 = $953;$$09431831 = $955;$$09441830 = $$2946$lcssa; + } + } + } + $957 = $$0937$lcssa << 16; + $958 = $957 | $$0938$lcssa; + HEAP32[$892>>2] = $958; + $959 = ($$1961|0)!=(0); + $960 = $6 & 1; + $961 = ($960|0)==(0); + $or$cond1752 = $961 | $959; + if ($or$cond1752) { + $$0951 = $$1961; + STACKTOP = sp;return ($$0951|0); + } else { + $962 = ((($0)) + 16|0); + $963 = HEAP32[$962>>2]|0; + $964 = ($958|0)==($963|0); + $$1961$ = $964 ? $$1961 : -2; + STACKTOP = sp;return ($$1961$|0); + } + return (0)|0; +} +function _LoadTexture($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy1 = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$5 = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx5 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy1 = sp + 60|0; + $vararg_buffer = sp + 16|0; + $$sroa$5 = sp; + $2 = sp + 20|0; + $3 = sp + 40|0; + _LoadImage($2,$1); + $4 = HEAP32[$2>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + _TraceLog(2,11666,$vararg_buffer); + $$sroa$0$0 = 0; + } else { + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _LoadTextureFromImage($3,$$byval_copy1); + $$sroa$0$0$copyload = HEAP32[$3>>2]|0; + $$sroa$5$0$$sroa_idx = ((($3)) + 4|0); + ;HEAP32[$$sroa$5>>2]=HEAP32[$$sroa$5$0$$sroa_idx>>2]|0;HEAP32[$$sroa$5+4>>2]=HEAP32[$$sroa$5$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$5+8>>2]=HEAP32[$$sroa$5$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$5+12>>2]=HEAP32[$$sroa$5$0$$sroa_idx+12>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _UnloadImage($$byval_copy1); + $$sroa$0$0 = $$sroa$0$0$copyload; + } + HEAP32[$0>>2] = $$sroa$0$0; + $$sroa$5$0$$sroa_idx5 = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx5>>2]=HEAP32[$$sroa$5>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+4>>2]=HEAP32[$$sroa$5+4>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+8>>2]=HEAP32[$$sroa$5+8>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+12>>2]=HEAP32[$$sroa$5+12>>2]|0; + STACKTOP = sp;return; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[17812>>2]|0;HEAP32[$0+4>>2]=HEAP32[17812+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[17812+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[17812+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[17812+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[17812+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[17812+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[17812+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTextureEx($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tmpcast$byval_copy = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy3 = sp + 104|0; + $tmpcast$byval_copy = sp + 96|0; + $$byval_copy2 = sp + 80|0; + $$byval_copy1 = sp + 64|0; + $$byval_copy = sp + 40|0; + $5 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + HEAP32[$5>>2] = 0; + $8 = ((($5)) + 4|0); + HEAP32[$8>>2] = 0; + $9 = ((($5)) + 8|0); + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[$9>>2] = $11; + $12 = ((($5)) + 12|0); + $13 = ((($0)) + 8|0); + $14 = HEAP32[$13>>2]|0; + HEAP32[$12>>2] = $14; + $15 = +HEAPF32[$1>>2]; + $16 = (~~(($15))); + HEAP32[$6>>2] = $16; + $17 = ((($6)) + 4|0); + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = (~~(($19))); + HEAP32[$17>>2] = $20; + $21 = ((($6)) + 8|0); + $22 = HEAP32[$10>>2]|0; + $23 = (+($22|0)); + $24 = $23 * $3; + $25 = (~~(($24))); + HEAP32[$21>>2] = $25; + $26 = ((($6)) + 12|0); + $27 = HEAP32[$13>>2]|0; + $28 = (+($27|0)); + $29 = $28 * $3; + $30 = (~~(($29))); + HEAP32[$26>>2] = $30; + $31 = $7; + $32 = $31; + HEAP32[$32>>2] = 0; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$5+12>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$tmpcast$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$tmpcast$byval_copy+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTexturePro($$byval_copy,$$byval_copy1,$$byval_copy2,$tmpcast$byval_copy,$2,$$byval_copy3); + STACKTOP = sp;return; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(21895,$0,$1)|0); + STACKTOP = sp;return (21895|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[5006]|0; + $4 = HEAP32[928]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[5007] = $7; + HEAP32[928] = $7; + $$sink = 0; + } + HEAP32[5006] = $$sink; + $8 = HEAP32[5007]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(11695,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(21895,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultMaterial($0) { + $0 = $0|0; + var $$sroa$09 = 0, $$sroa$09$56$sroa_idx = 0, $$sroa$18$0$$sroa_idx15 = 0, $$sroa$6$0$$sroa_idx = 0, $1 = 0, $2 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $$sroa$09 = sp; + $1 = sp + 136|0; + $2 = sp + 116|0; + dest=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultShader($1); + dest=$$sroa$09; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultTexture($2); + $$sroa$09$56$sroa_idx = ((($$sroa$09)) + 56|0); + ;HEAP32[$$sroa$09$56$sroa_idx>>2]=HEAP32[$2>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+16>>2]=HEAP32[$2+16>>2]|0; + dest=$0; src=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $$sroa$6$0$$sroa_idx = ((($0)) + 116|0); + $$sroa$18$0$$sroa_idx15 = ((($0)) + 128|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=4294967295|0; + HEAPF32[$$sroa$18$0$$sroa_idx15>>2] = 100.0; + STACKTOP = sp;return; +} +function _LoadCubicmap($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(512|0); + $$byval_copy1 = sp + 500|0; + $$byval_copy = sp + 480|0; + $2 = sp + 216|0; + $3 = sp + 200|0; + $4 = sp + 136|0; + $5 = sp; + _memset(($2|0),0,264)|0; + HEAPF32[$3>>2] = 1.0; + $6 = ((($3)) + 4|0); + HEAPF32[$6>>2] = 1.5; + $7 = ((($3)) + 8|0); + HEAPF32[$7>>2] = 1.0; + ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0; + _GenMeshCubicmap($2,$$byval_copy,$$byval_copy1); + _rlglLoadMesh($2,0); + $8 = ((($2)) + 68|0); + _MatrixIdentity($4); + dest=$8; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $9 = ((($2)) + 132|0); + _LoadDefaultMaterial($5); + _memcpy(($9|0),($5|0),132)|0; + _memcpy(($0|0),($2|0),264)|0; + STACKTOP = sp;return; +} +function _GenMeshCubicmap($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$011531184 = 0, $$011541187 = 0, $$011551186 = 0, $$01156$lcssa = 0, $$011561203 = 0, $$01159$lcssa = 0, $$011591202 = 0, $$01165$lcssa = 0, $$011651201 = 0, $$011711199 = 0, $$011721190 = 0, $$01182 = 0, $$11157$lcssa = 0, $$111571194 = 0, $$11160$lcssa = 0, $$111601193 = 0, $$11166$lcssa = 0, $$111661192 = 0, $$11183 = 0, $$21158 = 0; + var $$21161 = 0, $$21167 = 0, $$21181 = 0, $$3 = 0, $$31162 = 0, $$31168 = 0, $$4 = 0, $$41163 = 0, $$41169 = 0, $$5 = 0, $$51164 = 0, $$51170 = 0, $$byval_copy = 0, $$old1 = 0, $$old3 = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$0100$0$$sroa_idx = 0, $$sroa$0103$0$$sroa_idx = 0, $$sroa$0106$0$$sroa_idx = 0, $$sroa$0109$0$$sroa_idx = 0; + var $$sroa$0112$0$$sroa_idx = 0, $$sroa$0115$0$$sroa_idx = 0, $$sroa$0118$0$$sroa_idx = 0, $$sroa$0121$0$$sroa_idx = 0, $$sroa$0124$0$$sroa_idx = 0, $$sroa$0127$0$$sroa_idx = 0, $$sroa$0130$0$$sroa_idx = 0, $$sroa$0133$0$$sroa_idx = 0, $$sroa$0136$0$$sroa_idx = 0, $$sroa$0139$0$$sroa_idx = 0, $$sroa$0142$0$$sroa_idx = 0, $$sroa$0145$0$$sroa_idx = 0, $$sroa$0148$0$$sroa_idx = 0, $$sroa$0151$0$$sroa_idx = 0, $$sroa$0154$0$$sroa_idx = 0, $$sroa$0157$0$$sroa_idx = 0, $$sroa$0160$0$$sroa_idx = 0, $$sroa$0163$0$$sroa_idx = 0, $$sroa$0166$0$$sroa_idx = 0, $$sroa$0169$0$$sroa_idx = 0; + var $$sroa$0172$0$$sroa_idx = 0, $$sroa$0175$0$$sroa_idx = 0, $$sroa$0178$0$$sroa_idx = 0, $$sroa$0178$0$$sroa_idx179 = 0, $$sroa$0178$0$$sroa_idx181 = 0, $$sroa$0178$0$$sroa_idx183 = 0, $$sroa$0178$0$$sroa_idx185 = 0, $$sroa$0178$0$$sroa_idx187 = 0, $$sroa$0178$0$$sroa_idx189 = 0, $$sroa$0220$0$$sroa_idx = 0, $$sroa$0220$0$$sroa_idx221 = 0, $$sroa$0220$0$$sroa_idx223 = 0, $$sroa$0220$0$$sroa_idx225 = 0, $$sroa$0220$0$$sroa_idx227 = 0, $$sroa$0220$0$$sroa_idx229 = 0, $$sroa$0257$0$$sroa_idx = 0, $$sroa$0257$0$$sroa_idx258 = 0, $$sroa$0257$0$$sroa_idx260 = 0, $$sroa$0257$0$$sroa_idx262 = 0, $$sroa$0257$0$$sroa_idx264 = 0; + var $$sroa$0257$0$$sroa_idx266 = 0, $$sroa$0295$0$$sroa_idx = 0, $$sroa$0295$0$$sroa_idx296 = 0, $$sroa$0295$0$$sroa_idx298 = 0, $$sroa$0295$0$$sroa_idx300 = 0, $$sroa$0295$0$$sroa_idx302 = 0, $$sroa$0326$0$$sroa_idx = 0, $$sroa$0326$0$$sroa_idx327 = 0, $$sroa$0326$0$$sroa_idx329 = 0, $$sroa$0326$0$$sroa_idx331 = 0, $$sroa$0326$0$$sroa_idx333 = 0, $$sroa$0358$0$$sroa_idx = 0, $$sroa$0358$0$$sroa_idx359 = 0, $$sroa$0358$0$$sroa_idx361 = 0, $$sroa$0358$0$$sroa_idx363 = 0, $$sroa$0358$0$$sroa_idx365 = 0, $$sroa$0358$0$$sroa_idx367 = 0, $$sroa$0358$0$$sroa_idx369 = 0, $$sroa$037$0$$sroa_idx = 0, $$sroa$040$0$$sroa_idx = 0; + var $$sroa$0402$0$$sroa_idx = 0, $$sroa$0402$0$$sroa_idx403 = 0, $$sroa$0402$0$$sroa_idx405 = 0, $$sroa$0402$0$$sroa_idx407 = 0, $$sroa$0427$0$$sroa_idx = 0, $$sroa$0427$0$$sroa_idx428 = 0, $$sroa$0427$0$$sroa_idx430 = 0, $$sroa$0427$0$$sroa_idx432 = 0, $$sroa$0427$0$$sroa_idx434 = 0, $$sroa$0427$0$$sroa_idx436 = 0, $$sroa$0427$0$$sroa_idx438 = 0, $$sroa$0427$0$$sroa_idx440 = 0, $$sroa$043$0$$sroa_idx = 0, $$sroa$046$0$$sroa_idx = 0, $$sroa$049$0$$sroa_idx = 0, $$sroa$052$0$$sroa_idx = 0, $$sroa$055$0$$sroa_idx = 0, $$sroa$058$0$$sroa_idx = 0, $$sroa$061$0$$sroa_idx = 0, $$sroa$064$0$$sroa_idx = 0; + var $$sroa$067$0$$sroa_idx = 0, $$sroa$070$0$$sroa_idx = 0, $$sroa$073$0$$sroa_idx = 0, $$sroa$076$0$$sroa_idx = 0, $$sroa$079$0$$sroa_idx = 0, $$sroa$082$0$$sroa_idx = 0, $$sroa$085$0$$sroa_idx = 0, $$sroa$088$0$$sroa_idx = 0, $$sroa$091$0$$sroa_idx = 0, $$sroa$094$0$$sroa_idx = 0, $$sroa$097$0$$sroa_idx = 0, $$sroa$10$0$$sroa_idx192 = 0, $$sroa$10$0$$sroa_idx193 = 0, $$sroa$10$0$$sroa_idx195 = 0, $$sroa$10$0$$sroa_idx197 = 0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$10$0$$sroa_idx201 = 0, $$sroa$10$0$$sroa_idx203 = 0, $$sroa$10244$0$$sroa_idx245 = 0, $$sroa$10244$0$$sroa_idx246 = 0; + var $$sroa$10244$0$$sroa_idx248 = 0, $$sroa$10244$0$$sroa_idx250 = 0, $$sroa$10244$0$$sroa_idx252 = 0, $$sroa$10244$0$$sroa_idx254 = 0, $$sroa$10282$0$$sroa_idx283 = 0, $$sroa$10282$0$$sroa_idx284 = 0, $$sroa$10282$0$$sroa_idx286 = 0, $$sroa$10282$0$$sroa_idx288 = 0, $$sroa$10282$0$$sroa_idx290 = 0, $$sroa$10282$0$$sroa_idx292 = 0, $$sroa$10372$0$$sroa_idx373 = 0, $$sroa$10372$0$$sroa_idx374 = 0, $$sroa$10372$0$$sroa_idx376 = 0, $$sroa$10372$0$$sroa_idx378 = 0, $$sroa$10372$0$$sroa_idx380 = 0, $$sroa$10372$0$$sroa_idx382 = 0, $$sroa$10372$0$$sroa_idx384 = 0, $$sroa$11$0$$sroa_idx206 = 0, $$sroa$11$0$$sroa_idx207 = 0, $$sroa$11$0$$sroa_idx209 = 0; + var $$sroa$11$0$$sroa_idx211 = 0, $$sroa$11$0$$sroa_idx213 = 0, $$sroa$11$0$$sroa_idx215 = 0, $$sroa$11$0$$sroa_idx217 = 0, $$sroa$11387$0$$sroa_idx388 = 0, $$sroa$11387$0$$sroa_idx389 = 0, $$sroa$11387$0$$sroa_idx391 = 0, $$sroa$11387$0$$sroa_idx393 = 0, $$sroa$11387$0$$sroa_idx395 = 0, $$sroa$11387$0$$sroa_idx397 = 0, $$sroa$11387$0$$sroa_idx399 = 0, $$sroa$11443$0$$sroa_idx444 = 0, $$sroa$11443$0$$sroa_idx445 = 0, $$sroa$11443$0$$sroa_idx447 = 0, $$sroa$11443$0$$sroa_idx449 = 0, $$sroa$11443$0$$sroa_idx451 = 0, $$sroa$11443$0$$sroa_idx453 = 0, $$sroa$11443$0$$sroa_idx455 = 0, $$sroa$11443$0$$sroa_idx457 = 0, $$sroa$12$0$$sroa_idx460 = 0; + var $$sroa$12$0$$sroa_idx461 = 0, $$sroa$12$0$$sroa_idx463 = 0, $$sroa$12$0$$sroa_idx465 = 0, $$sroa$12$0$$sroa_idx467 = 0, $$sroa$12$0$$sroa_idx469 = 0, $$sroa$12$0$$sroa_idx471 = 0, $$sroa$12$0$$sroa_idx473 = 0, $$sroa$121130$0$$sroa_idx1131 = 0, $$sroa$151134$0$$sroa_idx1135 = 0, $$sroa$151137$0$$sroa_idx1138 = 0, $$sroa$19$0$$sroa_idx1142 = 0, $$sroa$191144$0$$sroa_idx1145 = 0, $$sroa$2$0$$sroa_idx36 = 0, $$sroa$20 = 0, $$sroa$20$0$$sroa_idx = 0, $$sroa$2101$0$$sroa_idx102 = 0, $$sroa$2104$0$$sroa_idx105 = 0, $$sroa$2107$0$$sroa_idx108 = 0, $$sroa$2110$0$$sroa_idx111 = 0, $$sroa$2113$0$$sroa_idx114 = 0; + var $$sroa$2116$0$$sroa_idx117 = 0, $$sroa$2119$0$$sroa_idx120 = 0, $$sroa$2122$0$$sroa_idx123 = 0, $$sroa$2125$0$$sroa_idx126 = 0, $$sroa$2128$0$$sroa_idx129 = 0, $$sroa$2131$0$$sroa_idx132 = 0, $$sroa$2134$0$$sroa_idx135 = 0, $$sroa$2137$0$$sroa_idx138 = 0, $$sroa$2140$0$$sroa_idx141 = 0, $$sroa$2143$0$$sroa_idx144 = 0, $$sroa$2146$0$$sroa_idx147 = 0, $$sroa$2149$0$$sroa_idx150 = 0, $$sroa$2152$0$$sroa_idx153 = 0, $$sroa$2155$0$$sroa_idx156 = 0, $$sroa$2158$0$$sroa_idx159 = 0, $$sroa$2161$0$$sroa_idx162 = 0, $$sroa$2164$0$$sroa_idx165 = 0, $$sroa$2167$0$$sroa_idx168 = 0, $$sroa$2170$0$$sroa_idx171 = 0, $$sroa$2173$0$$sroa_idx174 = 0; + var $$sroa$2176$0$$sroa_idx177 = 0, $$sroa$238$0$$sroa_idx39 = 0, $$sroa$241$0$$sroa_idx42 = 0, $$sroa$244$0$$sroa_idx45 = 0, $$sroa$247$0$$sroa_idx48 = 0, $$sroa$250$0$$sroa_idx51 = 0, $$sroa$253$0$$sroa_idx54 = 0, $$sroa$256$0$$sroa_idx57 = 0, $$sroa$259$0$$sroa_idx60 = 0, $$sroa$262$0$$sroa_idx63 = 0, $$sroa$265$0$$sroa_idx66 = 0, $$sroa$268$0$$sroa_idx69 = 0, $$sroa$271$0$$sroa_idx72 = 0, $$sroa$274$0$$sroa_idx75 = 0, $$sroa$277$0$$sroa_idx78 = 0, $$sroa$280$0$$sroa_idx81 = 0, $$sroa$283$0$$sroa_idx84 = 0, $$sroa$286$0$$sroa_idx87 = 0, $$sroa$289$0$$sroa_idx90 = 0, $$sroa$292$0$$sroa_idx93 = 0; + var $$sroa$295$0$$sroa_idx96 = 0, $$sroa$298$0$$sroa_idx99 = 0, $$sroa$7$0$$sroa_idx410 = 0, $$sroa$7$0$$sroa_idx411 = 0, $$sroa$7$0$$sroa_idx413 = 0, $$sroa$7$0$$sroa_idx415 = 0, $$sroa$8$0$$sroa_idx305 = 0, $$sroa$8$0$$sroa_idx306 = 0, $$sroa$8$0$$sroa_idx308 = 0, $$sroa$8$0$$sroa_idx310 = 0, $$sroa$8$0$$sroa_idx312 = 0, $$sroa$81122$0$$sroa_idx1123 = 0, $$sroa$81125$0$$sroa_idx1126 = 0, $$sroa$8336$0$$sroa_idx337 = 0, $$sroa$8336$0$$sroa_idx338 = 0, $$sroa$8336$0$$sroa_idx340 = 0, $$sroa$8336$0$$sroa_idx342 = 0, $$sroa$8336$0$$sroa_idx344 = 0, $$sroa$8418$0$$sroa_idx419 = 0, $$sroa$8418$0$$sroa_idx420 = 0; + var $$sroa$8418$0$$sroa_idx422 = 0, $$sroa$8418$0$$sroa_idx424 = 0, $$sroa$9$0$$sroa_idx232 = 0, $$sroa$9$0$$sroa_idx233 = 0, $$sroa$9$0$$sroa_idx235 = 0, $$sroa$9$0$$sroa_idx237 = 0, $$sroa$9$0$$sroa_idx239 = 0, $$sroa$9$0$$sroa_idx241 = 0, $$sroa$9269$0$$sroa_idx270 = 0, $$sroa$9269$0$$sroa_idx271 = 0, $$sroa$9269$0$$sroa_idx273 = 0, $$sroa$9269$0$$sroa_idx275 = 0, $$sroa$9269$0$$sroa_idx277 = 0, $$sroa$9269$0$$sroa_idx279 = 0, $$sroa$9315$0$$sroa_idx316 = 0, $$sroa$9315$0$$sroa_idx317 = 0, $$sroa$9315$0$$sroa_idx319 = 0, $$sroa$9315$0$$sroa_idx321 = 0, $$sroa$9315$0$$sroa_idx323 = 0, $$sroa$9347$0$$sroa_idx348 = 0; + var $$sroa$9347$0$$sroa_idx349 = 0, $$sroa$9347$0$$sroa_idx351 = 0, $$sroa$9347$0$$sroa_idx353 = 0, $$sroa$9347$0$$sroa_idx355 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0.0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0; + var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0.0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0.0, $220 = 0, $221 = 0, $222 = 0; + var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0.0, $240 = 0; + var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0; + var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0; + var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0; + var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0; + var $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0; + var $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0; + var $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0.0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond1208 = 0; + var $exitcond1209 = 0, $exitcond1210 = 0, $exitcond1211 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp + 36|0; + $$sroa$20 = sp; + dest=$$sroa$20; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$1+16>>2]|0; + $3 = (_GetImageData($$byval_copy)|0); + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($1)) + 8|0); + $7 = HEAP32[$6>>2]|0; + $8 = Math_imul($7, $5)|0; + $9 = +HEAPF32[$2>>2]; + $10 = ((($2)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = ((($2)) + 4|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($8*432)|0; + $15 = (_malloc($14)|0); + $16 = ($8*288)|0; + $17 = (_malloc($16)|0); + $18 = (_malloc($14)|0); + $19 = ($7|0)>(0); + if ($19) { + $20 = ($5|0)>(0); + $$011561203 = 0;$$011591202 = 0;$$011651201 = 0;$$011711199 = 0; + while(1) { + if ($20) { + $21 = (+($$011711199|0)); + $22 = $21 + -0.5; + $23 = $11 * $22; + $24 = $21 + 0.5; + $25 = $11 * $24; + $26 = (($$011711199) + 1)|0; + $27 = ($$011711199|0)>(0); + $28 = (($$011711199) + -1)|0; + $$old1 = ($$011711199|0)==(0); + $$011721190 = 0;$$111571194 = $$011561203;$$111601193 = $$011591202;$$111661192 = $$011651201; + while(1) { + $36 = (+($$011721190|0)); + $37 = $36 + -0.5; + $38 = $9 * $37; + $39 = $36 + 0.5; + $40 = $9 * $39; + $41 = HEAP32[$4>>2]|0; + $42 = Math_imul($41, $$011711199)|0; + $43 = (($42) + ($$011721190))|0; + $44 = (($3) + ($43<<2)|0); + $45 = HEAP8[$44>>0]|0; + $46 = ($45<<24>>24)==(-1); + do { + if ($46) { + $47 = (((($3) + ($43<<2)|0)) + 1|0); + $48 = HEAP8[$47>>0]|0; + $49 = ($48<<24>>24)==(-1); + if ($49) { + $50 = (((($3) + ($43<<2)|0)) + 2|0); + $51 = HEAP8[$50>>0]|0; + $52 = ($51<<24>>24)==(-1); + if ($52) { + $$sroa$0427$0$$sroa_idx = (($15) + (($$111571194*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx>>2] = $38; + $$sroa$11443$0$$sroa_idx444 = (((($15) + (($$111571194*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx444>>2] = $13; + $$sroa$12$0$$sroa_idx460 = (((($15) + (($$111571194*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx460>>2] = $23; + $53 = (($$111571194) + 1)|0; + $$sroa$0402$0$$sroa_idx = (($15) + (($53*12)|0)|0); + HEAPF32[$$sroa$0402$0$$sroa_idx>>2] = $38; + $$sroa$7$0$$sroa_idx410 = (((($15) + (($53*12)|0)|0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx410>>2] = $13; + $$sroa$8418$0$$sroa_idx419 = (((($15) + (($53*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$8418$0$$sroa_idx419>>2] = $25; + $54 = (($$111571194) + 2)|0; + $$sroa$0358$0$$sroa_idx = (($15) + (($54*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx>>2] = $40; + $$sroa$10372$0$$sroa_idx373 = (((($15) + (($54*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx373>>2] = $13; + $$sroa$11387$0$$sroa_idx388 = (((($15) + (($54*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx388>>2] = $25; + $55 = (($$111571194) + 3)|0; + $$sroa$0427$0$$sroa_idx428 = (($15) + (($55*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx428>>2] = $38; + $$sroa$11443$0$$sroa_idx445 = (((($15) + (($55*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx445>>2] = $13; + $$sroa$12$0$$sroa_idx461 = (((($15) + (($55*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx461>>2] = $23; + $56 = (($$111571194) + 4)|0; + $$sroa$0358$0$$sroa_idx359 = (($15) + (($56*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx359>>2] = $40; + $$sroa$10372$0$$sroa_idx374 = (((($15) + (($56*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx374>>2] = $13; + $$sroa$11387$0$$sroa_idx389 = (((($15) + (($56*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx389>>2] = $25; + $57 = (($$111571194) + 5)|0; + $$sroa$0326$0$$sroa_idx = (($15) + (($57*12)|0)|0); + HEAPF32[$$sroa$0326$0$$sroa_idx>>2] = $40; + $$sroa$8336$0$$sroa_idx337 = (((($15) + (($57*12)|0)|0)) + 4|0); + HEAP32[$$sroa$8336$0$$sroa_idx337>>2] = $13; + $$sroa$9347$0$$sroa_idx348 = (((($15) + (($57*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9347$0$$sroa_idx348>>2] = $23; + $58 = (($$111571194) + 6)|0; + $59 = (($18) + (($$111661192*12)|0)|0); + ;HEAP32[$59>>2]=HEAP32[3716>>2]|0;HEAP32[$59+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$59+8>>2]=HEAP32[3716+8>>2]|0; + $60 = (($$111661192) + 1)|0; + $61 = (($18) + (($60*12)|0)|0); + ;HEAP32[$61>>2]=HEAP32[3716>>2]|0;HEAP32[$61+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$61+8>>2]=HEAP32[3716+8>>2]|0; + $62 = (($$111661192) + 2)|0; + $63 = (($18) + (($62*12)|0)|0); + ;HEAP32[$63>>2]=HEAP32[3716>>2]|0;HEAP32[$63+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$63+8>>2]=HEAP32[3716+8>>2]|0; + $64 = (($$111661192) + 3)|0; + $65 = (($18) + (($64*12)|0)|0); + ;HEAP32[$65>>2]=HEAP32[3716>>2]|0;HEAP32[$65+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$65+8>>2]=HEAP32[3716+8>>2]|0; + $66 = (($$111661192) + 4)|0; + $67 = (($18) + (($66*12)|0)|0); + ;HEAP32[$67>>2]=HEAP32[3716>>2]|0;HEAP32[$67+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$67+8>>2]=HEAP32[3716+8>>2]|0; + $68 = (($$111661192) + 5)|0; + $69 = (($18) + (($68*12)|0)|0); + ;HEAP32[$69>>2]=HEAP32[3716>>2]|0;HEAP32[$69+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$69+8>>2]=HEAP32[3716+8>>2]|0; + $70 = (($$111661192) + 6)|0; + $$sroa$0175$0$$sroa_idx = (($17) + ($$111601193<<3)|0); + HEAPF32[$$sroa$0175$0$$sroa_idx>>2] = 0.0; + $$sroa$2176$0$$sroa_idx177 = (((($17) + ($$111601193<<3)|0)) + 4|0); + HEAPF32[$$sroa$2176$0$$sroa_idx177>>2] = 0.5; + $71 = (($$111601193) + 1)|0; + $$sroa$0172$0$$sroa_idx = (($17) + ($71<<3)|0); + HEAPF32[$$sroa$0172$0$$sroa_idx>>2] = 0.0; + $$sroa$2173$0$$sroa_idx174 = (((($17) + ($71<<3)|0)) + 4|0); + HEAPF32[$$sroa$2173$0$$sroa_idx174>>2] = 1.0; + $72 = (($$111601193) + 2)|0; + $$sroa$0169$0$$sroa_idx = (($17) + ($72<<3)|0); + HEAPF32[$$sroa$0169$0$$sroa_idx>>2] = 0.5; + $$sroa$2170$0$$sroa_idx171 = (((($17) + ($72<<3)|0)) + 4|0); + HEAPF32[$$sroa$2170$0$$sroa_idx171>>2] = 1.0; + $73 = (($$111601193) + 3)|0; + $$sroa$0166$0$$sroa_idx = (($17) + ($73<<3)|0); + HEAPF32[$$sroa$0166$0$$sroa_idx>>2] = 0.0; + $$sroa$2167$0$$sroa_idx168 = (((($17) + ($73<<3)|0)) + 4|0); + HEAPF32[$$sroa$2167$0$$sroa_idx168>>2] = 0.5; + $74 = (($$111601193) + 4)|0; + $$sroa$0163$0$$sroa_idx = (($17) + ($74<<3)|0); + HEAPF32[$$sroa$0163$0$$sroa_idx>>2] = 0.5; + $$sroa$2164$0$$sroa_idx165 = (((($17) + ($74<<3)|0)) + 4|0); + HEAPF32[$$sroa$2164$0$$sroa_idx165>>2] = 1.0; + $75 = (($$111601193) + 5)|0; + $$sroa$0160$0$$sroa_idx = (($17) + ($75<<3)|0); + HEAPF32[$$sroa$0160$0$$sroa_idx>>2] = 0.5; + $$sroa$2161$0$$sroa_idx162 = (((($17) + ($75<<3)|0)) + 4|0); + HEAPF32[$$sroa$2161$0$$sroa_idx162>>2] = 0.5; + $76 = (($$111601193) + 6)|0; + $$sroa$0257$0$$sroa_idx = (($15) + (($58*12)|0)|0); + HEAPF32[$$sroa$0257$0$$sroa_idx>>2] = $38; + $$sroa$9269$0$$sroa_idx270 = (((($15) + (($58*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9269$0$$sroa_idx270>>2] = 0.0; + $$sroa$10282$0$$sroa_idx283 = (((($15) + (($58*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10282$0$$sroa_idx283>>2] = $23; + $77 = (($$111571194) + 7)|0; + $$sroa$0178$0$$sroa_idx = (($15) + (($77*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx>>2] = $40; + $$sroa$10$0$$sroa_idx192 = (((($15) + (($77*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx192>>2] = 0.0; + $$sroa$11$0$$sroa_idx206 = (((($15) + (($77*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx206>>2] = $25; + $78 = (($$111571194) + 8)|0; + $$sroa$0220$0$$sroa_idx = (($15) + (($78*12)|0)|0); + HEAPF32[$$sroa$0220$0$$sroa_idx>>2] = $38; + $$sroa$9$0$$sroa_idx232 = (((($15) + (($78*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9$0$$sroa_idx232>>2] = 0.0; + $$sroa$10244$0$$sroa_idx245 = (((($15) + (($78*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10244$0$$sroa_idx245>>2] = $25; + $79 = (($$111571194) + 9)|0; + $$sroa$0257$0$$sroa_idx258 = (($15) + (($79*12)|0)|0); + HEAPF32[$$sroa$0257$0$$sroa_idx258>>2] = $38; + $$sroa$9269$0$$sroa_idx271 = (((($15) + (($79*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9269$0$$sroa_idx271>>2] = 0.0; + $$sroa$10282$0$$sroa_idx284 = (((($15) + (($79*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10282$0$$sroa_idx284>>2] = $23; + $80 = (($$111571194) + 10)|0; + $$sroa$0295$0$$sroa_idx = (($15) + (($80*12)|0)|0); + HEAPF32[$$sroa$0295$0$$sroa_idx>>2] = $40; + $$sroa$8$0$$sroa_idx305 = (((($15) + (($80*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$8$0$$sroa_idx305>>2] = 0.0; + $$sroa$9315$0$$sroa_idx316 = (((($15) + (($80*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9315$0$$sroa_idx316>>2] = $23; + $81 = (($$111571194) + 11)|0; + $$sroa$0178$0$$sroa_idx179 = (($15) + (($81*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx179>>2] = $40; + $$sroa$10$0$$sroa_idx193 = (((($15) + (($81*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx193>>2] = 0.0; + $$sroa$11$0$$sroa_idx207 = (((($15) + (($81*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx207>>2] = $25; + $82 = (($$111571194) + 12)|0; + $83 = (($18) + (($70*12)|0)|0); + ;HEAP32[$83>>2]=HEAP32[3728>>2]|0;HEAP32[$83+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$83+8>>2]=HEAP32[3728+8>>2]|0; + $84 = (($$111661192) + 7)|0; + $85 = (($18) + (($84*12)|0)|0); + ;HEAP32[$85>>2]=HEAP32[3728>>2]|0;HEAP32[$85+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$85+8>>2]=HEAP32[3728+8>>2]|0; + $86 = (($$111661192) + 8)|0; + $87 = (($18) + (($86*12)|0)|0); + ;HEAP32[$87>>2]=HEAP32[3728>>2]|0;HEAP32[$87+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$87+8>>2]=HEAP32[3728+8>>2]|0; + $88 = (($$111661192) + 9)|0; + $89 = (($18) + (($88*12)|0)|0); + ;HEAP32[$89>>2]=HEAP32[3728>>2]|0;HEAP32[$89+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$89+8>>2]=HEAP32[3728+8>>2]|0; + $90 = (($$111661192) + 10)|0; + $91 = (($18) + (($90*12)|0)|0); + ;HEAP32[$91>>2]=HEAP32[3728>>2]|0;HEAP32[$91+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$91+8>>2]=HEAP32[3728+8>>2]|0; + $92 = (($$111661192) + 11)|0; + $93 = (($18) + (($92*12)|0)|0); + ;HEAP32[$93>>2]=HEAP32[3728>>2]|0;HEAP32[$93+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$93+8>>2]=HEAP32[3728+8>>2]|0; + $94 = (($$111661192) + 12)|0; + $$sroa$0157$0$$sroa_idx = (($17) + ($76<<3)|0); + HEAPF32[$$sroa$0157$0$$sroa_idx>>2] = 1.0; + $$sroa$2158$0$$sroa_idx159 = (((($17) + ($76<<3)|0)) + 4|0); + HEAPF32[$$sroa$2158$0$$sroa_idx159>>2] = 0.5; + $95 = (($$111601193) + 7)|0; + $$sroa$0154$0$$sroa_idx = (($17) + ($95<<3)|0); + HEAPF32[$$sroa$0154$0$$sroa_idx>>2] = 0.5; + $$sroa$2155$0$$sroa_idx156 = (((($17) + ($95<<3)|0)) + 4|0); + HEAPF32[$$sroa$2155$0$$sroa_idx156>>2] = 1.0; + $96 = (($$111601193) + 8)|0; + $$sroa$0151$0$$sroa_idx = (($17) + ($96<<3)|0); + HEAPF32[$$sroa$0151$0$$sroa_idx>>2] = 1.0; + $$sroa$2152$0$$sroa_idx153 = (((($17) + ($96<<3)|0)) + 4|0); + HEAPF32[$$sroa$2152$0$$sroa_idx153>>2] = 1.0; + $97 = (($$111601193) + 9)|0; + $$sroa$0148$0$$sroa_idx = (($17) + ($97<<3)|0); + HEAPF32[$$sroa$0148$0$$sroa_idx>>2] = 1.0; + $$sroa$2149$0$$sroa_idx150 = (((($17) + ($97<<3)|0)) + 4|0); + HEAPF32[$$sroa$2149$0$$sroa_idx150>>2] = 0.5; + $98 = (($$111601193) + 10)|0; + $$sroa$0145$0$$sroa_idx = (($17) + ($98<<3)|0); + HEAPF32[$$sroa$0145$0$$sroa_idx>>2] = 0.5; + $$sroa$2146$0$$sroa_idx147 = (((($17) + ($98<<3)|0)) + 4|0); + HEAPF32[$$sroa$2146$0$$sroa_idx147>>2] = 0.5; + $99 = (($$111601193) + 11)|0; + $$sroa$0142$0$$sroa_idx = (($17) + ($99<<3)|0); + HEAPF32[$$sroa$0142$0$$sroa_idx>>2] = 0.5; + $$sroa$2143$0$$sroa_idx144 = (((($17) + ($99<<3)|0)) + 4|0); + HEAPF32[$$sroa$2143$0$$sroa_idx144>>2] = 1.0; + $100 = (($$111601193) + 12)|0; + $101 = HEAP32[$6>>2]|0; + $102 = (($101) + -1)|0; + $103 = ($$011711199|0)<($102|0); + if ($103) { + $104 = HEAP32[$4>>2]|0; + $105 = Math_imul($104, $26)|0; + $106 = (($105) + ($$011721190))|0; + $107 = (($3) + ($106<<2)|0); + $108 = HEAP8[$107>>0]|0; + $109 = ($108<<24>>24)==(0); + if ($109) { + $110 = (((($3) + ($106<<2)|0)) + 1|0); + $111 = HEAP8[$110>>0]|0; + $112 = ($111<<24>>24)==(0); + if ($112) { + $113 = (((($3) + ($106<<2)|0)) + 2|0); + $114 = HEAP8[$113>>0]|0; + $115 = ($114<<24>>24)==(0); + if ($115) { + label = 15; + } else { + label = 14; + } + } else { + label = 14; + } + } else { + label = 14; + } + } else { + label = 14; + } + if ((label|0) == 14) { + label = 0; + $116 = HEAP32[$6>>2]|0; + $117 = (($116) + -1)|0; + $118 = ($$011711199|0)==($117|0); + if ($118) { + label = 15; + } else { + $$21158 = $82;$$21161 = $100;$$21167 = $94; + } + } + if ((label|0) == 15) { + label = 0; + $$sroa$0402$0$$sroa_idx403 = (($15) + (($82*12)|0)|0); + HEAPF32[$$sroa$0402$0$$sroa_idx403>>2] = $38; + $$sroa$7$0$$sroa_idx411 = (((($15) + (($82*12)|0)|0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx411>>2] = $13; + $$sroa$8418$0$$sroa_idx420 = (((($15) + (($82*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$8418$0$$sroa_idx420>>2] = $25; + $119 = (($$111571194) + 13)|0; + $$sroa$0220$0$$sroa_idx221 = (($15) + (($119*12)|0)|0); + HEAPF32[$$sroa$0220$0$$sroa_idx221>>2] = $38; + $$sroa$9$0$$sroa_idx233 = (((($15) + (($119*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9$0$$sroa_idx233>>2] = 0.0; + $$sroa$10244$0$$sroa_idx246 = (((($15) + (($119*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10244$0$$sroa_idx246>>2] = $25; + $120 = (($$111571194) + 14)|0; + $$sroa$0358$0$$sroa_idx361 = (($15) + (($120*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx361>>2] = $40; + $$sroa$10372$0$$sroa_idx376 = (((($15) + (($120*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx376>>2] = $13; + $$sroa$11387$0$$sroa_idx391 = (((($15) + (($120*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx391>>2] = $25; + $121 = (($$111571194) + 15)|0; + $$sroa$0358$0$$sroa_idx363 = (($15) + (($121*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx363>>2] = $40; + $$sroa$10372$0$$sroa_idx378 = (((($15) + (($121*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx378>>2] = $13; + $$sroa$11387$0$$sroa_idx393 = (((($15) + (($121*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx393>>2] = $25; + $122 = (($$111571194) + 16)|0; + $$sroa$0220$0$$sroa_idx223 = (($15) + (($122*12)|0)|0); + HEAPF32[$$sroa$0220$0$$sroa_idx223>>2] = $38; + $$sroa$9$0$$sroa_idx235 = (((($15) + (($122*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9$0$$sroa_idx235>>2] = 0.0; + $$sroa$10244$0$$sroa_idx248 = (((($15) + (($122*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10244$0$$sroa_idx248>>2] = $25; + $123 = (($$111571194) + 17)|0; + $$sroa$0178$0$$sroa_idx181 = (($15) + (($123*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx181>>2] = $40; + $$sroa$10$0$$sroa_idx195 = (((($15) + (($123*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx195>>2] = 0.0; + $$sroa$11$0$$sroa_idx209 = (((($15) + (($123*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx209>>2] = $25; + $124 = (($$111571194) + 18)|0; + $125 = (($18) + (($94*12)|0)|0); + ;HEAP32[$125>>2]=HEAP32[3740>>2]|0;HEAP32[$125+4>>2]=HEAP32[3740+4>>2]|0;HEAP32[$125+8>>2]=HEAP32[3740+8>>2]|0; + $126 = (($$111661192) + 13)|0; + $127 = (($18) + (($126*12)|0)|0); + ;HEAP32[$127>>2]=HEAP32[3740>>2]|0;HEAP32[$127+4>>2]=HEAP32[3740+4>>2]|0;HEAP32[$127+8>>2]=HEAP32[3740+8>>2]|0; + $128 = (($$111661192) + 14)|0; + $129 = (($18) + (($128*12)|0)|0); + ;HEAP32[$129>>2]=HEAP32[3740>>2]|0;HEAP32[$129+4>>2]=HEAP32[3740+4>>2]|0;HEAP32[$129+8>>2]=HEAP32[3740+8>>2]|0; + $130 = (($$111661192) + 15)|0; + $131 = (($18) + (($130*12)|0)|0); + ;HEAP32[$131>>2]=HEAP32[3740>>2]|0;HEAP32[$131+4>>2]=HEAP32[3740+4>>2]|0;HEAP32[$131+8>>2]=HEAP32[3740+8>>2]|0; + $132 = (($$111661192) + 16)|0; + $133 = (($18) + (($132*12)|0)|0); + ;HEAP32[$133>>2]=HEAP32[3740>>2]|0;HEAP32[$133+4>>2]=HEAP32[3740+4>>2]|0;HEAP32[$133+8>>2]=HEAP32[3740+8>>2]|0; + $134 = (($$111661192) + 17)|0; + $135 = (($18) + (($134*12)|0)|0); + ;HEAP32[$135>>2]=HEAP32[3740>>2]|0;HEAP32[$135+4>>2]=HEAP32[3740+4>>2]|0;HEAP32[$135+8>>2]=HEAP32[3740+8>>2]|0; + $136 = (($$111661192) + 18)|0; + $$sroa$0139$0$$sroa_idx = (($17) + ($100<<3)|0); + HEAPF32[$$sroa$0139$0$$sroa_idx>>2] = 0.0; + $$sroa$2140$0$$sroa_idx141 = (((($17) + ($100<<3)|0)) + 4|0); + HEAPF32[$$sroa$2140$0$$sroa_idx141>>2] = 0.0; + $137 = (($$111601193) + 13)|0; + $$sroa$0136$0$$sroa_idx = (($17) + ($137<<3)|0); + HEAPF32[$$sroa$0136$0$$sroa_idx>>2] = 0.0; + $$sroa$2137$0$$sroa_idx138 = (((($17) + ($137<<3)|0)) + 4|0); + HEAPF32[$$sroa$2137$0$$sroa_idx138>>2] = 0.5; + $138 = (($$111601193) + 14)|0; + $$sroa$0133$0$$sroa_idx = (($17) + ($138<<3)|0); + HEAPF32[$$sroa$0133$0$$sroa_idx>>2] = 0.5; + $$sroa$2134$0$$sroa_idx135 = (((($17) + ($138<<3)|0)) + 4|0); + HEAPF32[$$sroa$2134$0$$sroa_idx135>>2] = 0.0; + $139 = (($$111601193) + 15)|0; + $$sroa$0130$0$$sroa_idx = (($17) + ($139<<3)|0); + HEAPF32[$$sroa$0130$0$$sroa_idx>>2] = 0.5; + $$sroa$2131$0$$sroa_idx132 = (((($17) + ($139<<3)|0)) + 4|0); + HEAPF32[$$sroa$2131$0$$sroa_idx132>>2] = 0.0; + $140 = (($$111601193) + 16)|0; + $$sroa$0127$0$$sroa_idx = (($17) + ($140<<3)|0); + HEAPF32[$$sroa$0127$0$$sroa_idx>>2] = 0.0; + $$sroa$2128$0$$sroa_idx129 = (((($17) + ($140<<3)|0)) + 4|0); + HEAPF32[$$sroa$2128$0$$sroa_idx129>>2] = 0.5; + $141 = (($$111601193) + 17)|0; + $$sroa$0124$0$$sroa_idx = (($17) + ($141<<3)|0); + HEAPF32[$$sroa$0124$0$$sroa_idx>>2] = 0.5; + $$sroa$2125$0$$sroa_idx126 = (((($17) + ($141<<3)|0)) + 4|0); + HEAPF32[$$sroa$2125$0$$sroa_idx126>>2] = 0.5; + $142 = (($$111601193) + 18)|0; + $$21158 = $124;$$21161 = $142;$$21167 = $136; + } + if ($27) { + $143 = HEAP32[$4>>2]|0; + $144 = Math_imul($143, $28)|0; + $145 = (($144) + ($$011721190))|0; + $146 = (($3) + ($145<<2)|0); + $147 = HEAP8[$146>>0]|0; + $148 = ($147<<24>>24)==(0); + if ($148) { + $149 = (((($3) + ($145<<2)|0)) + 1|0); + $150 = HEAP8[$149>>0]|0; + $151 = ($150<<24>>24)==(0); + if ($151) { + $152 = (((($3) + ($145<<2)|0)) + 2|0); + $153 = HEAP8[$152>>0]|0; + $154 = ($153<<24>>24)==(0); + if ($154) { + label = 21; + } else { + $$3 = $$21158;$$31162 = $$21161;$$31168 = $$21167; + } + } else { + $$3 = $$21158;$$31162 = $$21161;$$31168 = $$21167; + } + } else { + $$3 = $$21158;$$31162 = $$21161;$$31168 = $$21167; + } + } else { + if ($$old1) { + label = 21; + } else { + $$3 = $$21158;$$31162 = $$21161;$$31168 = $$21167; + } + } + if ((label|0) == 21) { + label = 0; + $$sroa$0427$0$$sroa_idx430 = (($15) + (($$21158*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx430>>2] = $38; + $$sroa$11443$0$$sroa_idx447 = (((($15) + (($$21158*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx447>>2] = $13; + $$sroa$12$0$$sroa_idx463 = (((($15) + (($$21158*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx463>>2] = $23; + $155 = (($$21158) + 1)|0; + $$sroa$0295$0$$sroa_idx296 = (($15) + (($155*12)|0)|0); + HEAPF32[$$sroa$0295$0$$sroa_idx296>>2] = $40; + $$sroa$8$0$$sroa_idx306 = (((($15) + (($155*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$8$0$$sroa_idx306>>2] = 0.0; + $$sroa$9315$0$$sroa_idx317 = (((($15) + (($155*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9315$0$$sroa_idx317>>2] = $23; + $156 = (($$21158) + 2)|0; + $$sroa$0257$0$$sroa_idx260 = (($15) + (($156*12)|0)|0); + HEAPF32[$$sroa$0257$0$$sroa_idx260>>2] = $38; + $$sroa$9269$0$$sroa_idx273 = (((($15) + (($156*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9269$0$$sroa_idx273>>2] = 0.0; + $$sroa$10282$0$$sroa_idx286 = (((($15) + (($156*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10282$0$$sroa_idx286>>2] = $23; + $157 = (($$21158) + 3)|0; + $$sroa$0427$0$$sroa_idx432 = (($15) + (($157*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx432>>2] = $38; + $$sroa$11443$0$$sroa_idx449 = (((($15) + (($157*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx449>>2] = $13; + $$sroa$12$0$$sroa_idx465 = (((($15) + (($157*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx465>>2] = $23; + $158 = (($$21158) + 4)|0; + $$sroa$0326$0$$sroa_idx327 = (($15) + (($158*12)|0)|0); + HEAPF32[$$sroa$0326$0$$sroa_idx327>>2] = $40; + $$sroa$8336$0$$sroa_idx338 = (((($15) + (($158*12)|0)|0)) + 4|0); + HEAP32[$$sroa$8336$0$$sroa_idx338>>2] = $13; + $$sroa$9347$0$$sroa_idx349 = (((($15) + (($158*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9347$0$$sroa_idx349>>2] = $23; + $159 = (($$21158) + 5)|0; + $$sroa$0295$0$$sroa_idx298 = (($15) + (($159*12)|0)|0); + HEAPF32[$$sroa$0295$0$$sroa_idx298>>2] = $40; + $$sroa$8$0$$sroa_idx308 = (((($15) + (($159*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$8$0$$sroa_idx308>>2] = 0.0; + $$sroa$9315$0$$sroa_idx319 = (((($15) + (($159*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9315$0$$sroa_idx319>>2] = $23; + $160 = (($$21158) + 6)|0; + $161 = (($18) + (($$21167*12)|0)|0); + ;HEAP32[$161>>2]=HEAP32[3752>>2]|0;HEAP32[$161+4>>2]=HEAP32[3752+4>>2]|0;HEAP32[$161+8>>2]=HEAP32[3752+8>>2]|0; + $162 = (($$21167) + 1)|0; + $163 = (($18) + (($162*12)|0)|0); + ;HEAP32[$163>>2]=HEAP32[3752>>2]|0;HEAP32[$163+4>>2]=HEAP32[3752+4>>2]|0;HEAP32[$163+8>>2]=HEAP32[3752+8>>2]|0; + $164 = (($$21167) + 2)|0; + $165 = (($18) + (($164*12)|0)|0); + ;HEAP32[$165>>2]=HEAP32[3752>>2]|0;HEAP32[$165+4>>2]=HEAP32[3752+4>>2]|0;HEAP32[$165+8>>2]=HEAP32[3752+8>>2]|0; + $166 = (($$21167) + 3)|0; + $167 = (($18) + (($166*12)|0)|0); + ;HEAP32[$167>>2]=HEAP32[3752>>2]|0;HEAP32[$167+4>>2]=HEAP32[3752+4>>2]|0;HEAP32[$167+8>>2]=HEAP32[3752+8>>2]|0; + $168 = (($$21167) + 4)|0; + $169 = (($18) + (($168*12)|0)|0); + ;HEAP32[$169>>2]=HEAP32[3752>>2]|0;HEAP32[$169+4>>2]=HEAP32[3752+4>>2]|0;HEAP32[$169+8>>2]=HEAP32[3752+8>>2]|0; + $170 = (($$21167) + 5)|0; + $171 = (($18) + (($170*12)|0)|0); + ;HEAP32[$171>>2]=HEAP32[3752>>2]|0;HEAP32[$171+4>>2]=HEAP32[3752+4>>2]|0;HEAP32[$171+8>>2]=HEAP32[3752+8>>2]|0; + $172 = (($$21167) + 6)|0; + $$sroa$0121$0$$sroa_idx = (($17) + ($$21161<<3)|0); + HEAPF32[$$sroa$0121$0$$sroa_idx>>2] = 1.0; + $$sroa$2122$0$$sroa_idx123 = (((($17) + ($$21161<<3)|0)) + 4|0); + HEAPF32[$$sroa$2122$0$$sroa_idx123>>2] = 0.0; + $173 = (($$21161) + 1)|0; + $$sroa$0118$0$$sroa_idx = (($17) + ($173<<3)|0); + HEAPF32[$$sroa$0118$0$$sroa_idx>>2] = 0.5; + $$sroa$2119$0$$sroa_idx120 = (((($17) + ($173<<3)|0)) + 4|0); + HEAPF32[$$sroa$2119$0$$sroa_idx120>>2] = 0.5; + $174 = (($$21161) + 2)|0; + $$sroa$0115$0$$sroa_idx = (($17) + ($174<<3)|0); + HEAPF32[$$sroa$0115$0$$sroa_idx>>2] = 1.0; + $$sroa$2116$0$$sroa_idx117 = (((($17) + ($174<<3)|0)) + 4|0); + HEAPF32[$$sroa$2116$0$$sroa_idx117>>2] = 0.5; + $175 = (($$21161) + 3)|0; + $$sroa$0112$0$$sroa_idx = (($17) + ($175<<3)|0); + HEAPF32[$$sroa$0112$0$$sroa_idx>>2] = 1.0; + $$sroa$2113$0$$sroa_idx114 = (((($17) + ($175<<3)|0)) + 4|0); + HEAPF32[$$sroa$2113$0$$sroa_idx114>>2] = 0.0; + $176 = (($$21161) + 4)|0; + $$sroa$0109$0$$sroa_idx = (($17) + ($176<<3)|0); + HEAPF32[$$sroa$0109$0$$sroa_idx>>2] = 0.5; + $$sroa$2110$0$$sroa_idx111 = (((($17) + ($176<<3)|0)) + 4|0); + HEAPF32[$$sroa$2110$0$$sroa_idx111>>2] = 0.0; + $177 = (($$21161) + 5)|0; + $$sroa$0106$0$$sroa_idx = (($17) + ($177<<3)|0); + HEAPF32[$$sroa$0106$0$$sroa_idx>>2] = 0.5; + $$sroa$2107$0$$sroa_idx108 = (((($17) + ($177<<3)|0)) + 4|0); + HEAPF32[$$sroa$2107$0$$sroa_idx108>>2] = 0.5; + $178 = (($$21161) + 6)|0; + $$3 = $160;$$31162 = $178;$$31168 = $172; + } + $179 = HEAP32[$4>>2]|0; + $180 = (($179) + -1)|0; + $181 = ($$011721190|0)<($180|0); + if ($181) { + $182 = Math_imul($179, $$011711199)|0; + $183 = (($$011721190) + 1)|0; + $184 = (($183) + ($182))|0; + $185 = (($3) + ($184<<2)|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186<<24>>24)==(0); + if ($187) { + $188 = (((($3) + ($184<<2)|0)) + 1|0); + $189 = HEAP8[$188>>0]|0; + $190 = ($189<<24>>24)==(0); + if ($190) { + $191 = (((($3) + ($184<<2)|0)) + 2|0); + $192 = HEAP8[$191>>0]|0; + $193 = ($192<<24>>24)==(0); + if ($193) { + label = 27; + } else { + label = 26; + } + } else { + label = 26; + } + } else { + label = 26; + } + } else { + label = 26; + } + if ((label|0) == 26) { + label = 0; + $194 = HEAP32[$4>>2]|0; + $195 = (($194) + -1)|0; + $196 = ($$011721190|0)==($195|0); + if ($196) { + label = 27; + } else { + $$4 = $$3;$$41163 = $$31162;$$41169 = $$31168; + } + } + if ((label|0) == 27) { + label = 0; + $$sroa$0358$0$$sroa_idx365 = (($15) + (($$3*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx365>>2] = $40; + $$sroa$10372$0$$sroa_idx380 = (((($15) + (($$3*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx380>>2] = $13; + $$sroa$11387$0$$sroa_idx395 = (((($15) + (($$3*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx395>>2] = $25; + $197 = (($$3) + 1)|0; + $$sroa$0178$0$$sroa_idx183 = (($15) + (($197*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx183>>2] = $40; + $$sroa$10$0$$sroa_idx197 = (((($15) + (($197*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx197>>2] = 0.0; + $$sroa$11$0$$sroa_idx211 = (((($15) + (($197*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx211>>2] = $25; + $198 = (($$3) + 2)|0; + $$sroa$0326$0$$sroa_idx329 = (($15) + (($198*12)|0)|0); + HEAPF32[$$sroa$0326$0$$sroa_idx329>>2] = $40; + $$sroa$8336$0$$sroa_idx340 = (((($15) + (($198*12)|0)|0)) + 4|0); + HEAP32[$$sroa$8336$0$$sroa_idx340>>2] = $13; + $$sroa$9347$0$$sroa_idx351 = (((($15) + (($198*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9347$0$$sroa_idx351>>2] = $23; + $199 = (($$3) + 3)|0; + $$sroa$0326$0$$sroa_idx331 = (($15) + (($199*12)|0)|0); + HEAPF32[$$sroa$0326$0$$sroa_idx331>>2] = $40; + $$sroa$8336$0$$sroa_idx342 = (((($15) + (($199*12)|0)|0)) + 4|0); + HEAP32[$$sroa$8336$0$$sroa_idx342>>2] = $13; + $$sroa$9347$0$$sroa_idx353 = (((($15) + (($199*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9347$0$$sroa_idx353>>2] = $23; + $200 = (($$3) + 4)|0; + $$sroa$0178$0$$sroa_idx185 = (($15) + (($200*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx185>>2] = $40; + $$sroa$10$0$$sroa_idx199 = (((($15) + (($200*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx199>>2] = 0.0; + $$sroa$11$0$$sroa_idx213 = (((($15) + (($200*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx213>>2] = $25; + $201 = (($$3) + 5)|0; + $$sroa$0295$0$$sroa_idx300 = (($15) + (($201*12)|0)|0); + HEAPF32[$$sroa$0295$0$$sroa_idx300>>2] = $40; + $$sroa$8$0$$sroa_idx310 = (((($15) + (($201*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$8$0$$sroa_idx310>>2] = 0.0; + $$sroa$9315$0$$sroa_idx321 = (((($15) + (($201*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9315$0$$sroa_idx321>>2] = $23; + $202 = (($$3) + 6)|0; + $203 = (($18) + (($$31168*12)|0)|0); + ;HEAP32[$203>>2]=HEAP32[3764>>2]|0;HEAP32[$203+4>>2]=HEAP32[3764+4>>2]|0;HEAP32[$203+8>>2]=HEAP32[3764+8>>2]|0; + $204 = (($$31168) + 1)|0; + $205 = (($18) + (($204*12)|0)|0); + ;HEAP32[$205>>2]=HEAP32[3764>>2]|0;HEAP32[$205+4>>2]=HEAP32[3764+4>>2]|0;HEAP32[$205+8>>2]=HEAP32[3764+8>>2]|0; + $206 = (($$31168) + 2)|0; + $207 = (($18) + (($206*12)|0)|0); + ;HEAP32[$207>>2]=HEAP32[3764>>2]|0;HEAP32[$207+4>>2]=HEAP32[3764+4>>2]|0;HEAP32[$207+8>>2]=HEAP32[3764+8>>2]|0; + $208 = (($$31168) + 3)|0; + $209 = (($18) + (($208*12)|0)|0); + ;HEAP32[$209>>2]=HEAP32[3764>>2]|0;HEAP32[$209+4>>2]=HEAP32[3764+4>>2]|0;HEAP32[$209+8>>2]=HEAP32[3764+8>>2]|0; + $210 = (($$31168) + 4)|0; + $211 = (($18) + (($210*12)|0)|0); + ;HEAP32[$211>>2]=HEAP32[3764>>2]|0;HEAP32[$211+4>>2]=HEAP32[3764+4>>2]|0;HEAP32[$211+8>>2]=HEAP32[3764+8>>2]|0; + $212 = (($$31168) + 5)|0; + $213 = (($18) + (($212*12)|0)|0); + ;HEAP32[$213>>2]=HEAP32[3764>>2]|0;HEAP32[$213+4>>2]=HEAP32[3764+4>>2]|0;HEAP32[$213+8>>2]=HEAP32[3764+8>>2]|0; + $214 = (($$31168) + 6)|0; + $$sroa$0103$0$$sroa_idx = (($17) + ($$31162<<3)|0); + HEAPF32[$$sroa$0103$0$$sroa_idx>>2] = 0.0; + $$sroa$2104$0$$sroa_idx105 = (((($17) + ($$31162<<3)|0)) + 4|0); + HEAPF32[$$sroa$2104$0$$sroa_idx105>>2] = 0.0; + $215 = (($$31162) + 1)|0; + $$sroa$0100$0$$sroa_idx = (($17) + ($215<<3)|0); + HEAPF32[$$sroa$0100$0$$sroa_idx>>2] = 0.0; + $$sroa$2101$0$$sroa_idx102 = (((($17) + ($215<<3)|0)) + 4|0); + HEAPF32[$$sroa$2101$0$$sroa_idx102>>2] = 0.5; + $216 = (($$31162) + 2)|0; + $$sroa$097$0$$sroa_idx = (($17) + ($216<<3)|0); + HEAPF32[$$sroa$097$0$$sroa_idx>>2] = 0.5; + $$sroa$298$0$$sroa_idx99 = (((($17) + ($216<<3)|0)) + 4|0); + HEAPF32[$$sroa$298$0$$sroa_idx99>>2] = 0.0; + $217 = (($$31162) + 3)|0; + $$sroa$094$0$$sroa_idx = (($17) + ($217<<3)|0); + HEAPF32[$$sroa$094$0$$sroa_idx>>2] = 0.5; + $$sroa$295$0$$sroa_idx96 = (((($17) + ($217<<3)|0)) + 4|0); + HEAPF32[$$sroa$295$0$$sroa_idx96>>2] = 0.0; + $218 = (($$31162) + 4)|0; + $$sroa$091$0$$sroa_idx = (($17) + ($218<<3)|0); + HEAPF32[$$sroa$091$0$$sroa_idx>>2] = 0.0; + $$sroa$292$0$$sroa_idx93 = (((($17) + ($218<<3)|0)) + 4|0); + HEAPF32[$$sroa$292$0$$sroa_idx93>>2] = 0.5; + $219 = (($$31162) + 5)|0; + $$sroa$088$0$$sroa_idx = (($17) + ($219<<3)|0); + HEAPF32[$$sroa$088$0$$sroa_idx>>2] = 0.5; + $$sroa$289$0$$sroa_idx90 = (((($17) + ($219<<3)|0)) + 4|0); + HEAPF32[$$sroa$289$0$$sroa_idx90>>2] = 0.5; + $220 = (($$31162) + 6)|0; + $$4 = $202;$$41163 = $220;$$41169 = $214; + } + $221 = ($$011721190|0)>(0); + if ($221) { + $222 = HEAP32[$4>>2]|0; + $223 = Math_imul($222, $$011711199)|0; + $224 = (($$011721190) + -1)|0; + $225 = (($224) + ($223))|0; + $226 = (($3) + ($225<<2)|0); + $227 = HEAP8[$226>>0]|0; + $228 = ($227<<24>>24)==(0); + if (!($228)) { + $$5 = $$4;$$51164 = $$41163;$$51170 = $$41169; + break; + } + $229 = (((($3) + ($225<<2)|0)) + 1|0); + $230 = HEAP8[$229>>0]|0; + $231 = ($230<<24>>24)==(0); + if (!($231)) { + $$5 = $$4;$$51164 = $$41163;$$51170 = $$41169; + break; + } + $232 = (((($3) + ($225<<2)|0)) + 2|0); + $233 = HEAP8[$232>>0]|0; + $234 = ($233<<24>>24)==(0); + if (!($234)) { + $$5 = $$4;$$51164 = $$41163;$$51170 = $$41169; + break; + } + } else { + $$old3 = ($$011721190|0)==(0); + if (!($$old3)) { + $$5 = $$4;$$51164 = $$41163;$$51170 = $$41169; + break; + } + } + $$sroa$0427$0$$sroa_idx434 = (($15) + (($$4*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx434>>2] = $38; + $$sroa$11443$0$$sroa_idx451 = (((($15) + (($$4*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx451>>2] = $13; + $$sroa$12$0$$sroa_idx467 = (((($15) + (($$4*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx467>>2] = $23; + $235 = (($$4) + 1)|0; + $$sroa$0220$0$$sroa_idx225 = (($15) + (($235*12)|0)|0); + HEAPF32[$$sroa$0220$0$$sroa_idx225>>2] = $38; + $$sroa$9$0$$sroa_idx237 = (((($15) + (($235*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9$0$$sroa_idx237>>2] = 0.0; + $$sroa$10244$0$$sroa_idx250 = (((($15) + (($235*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10244$0$$sroa_idx250>>2] = $25; + $236 = (($$4) + 2)|0; + $$sroa$0402$0$$sroa_idx405 = (($15) + (($236*12)|0)|0); + HEAPF32[$$sroa$0402$0$$sroa_idx405>>2] = $38; + $$sroa$7$0$$sroa_idx413 = (((($15) + (($236*12)|0)|0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx413>>2] = $13; + $$sroa$8418$0$$sroa_idx422 = (((($15) + (($236*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$8418$0$$sroa_idx422>>2] = $25; + $237 = (($$4) + 3)|0; + $$sroa$0427$0$$sroa_idx436 = (($15) + (($237*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx436>>2] = $38; + $$sroa$11443$0$$sroa_idx453 = (((($15) + (($237*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx453>>2] = $13; + $$sroa$12$0$$sroa_idx469 = (((($15) + (($237*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx469>>2] = $23; + $238 = (($$4) + 4)|0; + $$sroa$0257$0$$sroa_idx262 = (($15) + (($238*12)|0)|0); + HEAPF32[$$sroa$0257$0$$sroa_idx262>>2] = $38; + $$sroa$9269$0$$sroa_idx275 = (((($15) + (($238*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9269$0$$sroa_idx275>>2] = 0.0; + $$sroa$10282$0$$sroa_idx288 = (((($15) + (($238*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10282$0$$sroa_idx288>>2] = $23; + $239 = (($$4) + 5)|0; + $$sroa$0220$0$$sroa_idx227 = (($15) + (($239*12)|0)|0); + HEAPF32[$$sroa$0220$0$$sroa_idx227>>2] = $38; + $$sroa$9$0$$sroa_idx239 = (((($15) + (($239*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9$0$$sroa_idx239>>2] = 0.0; + $$sroa$10244$0$$sroa_idx252 = (((($15) + (($239*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10244$0$$sroa_idx252>>2] = $25; + $240 = (($$4) + 6)|0; + $241 = (($18) + (($$41169*12)|0)|0); + ;HEAP32[$241>>2]=HEAP32[3776>>2]|0;HEAP32[$241+4>>2]=HEAP32[3776+4>>2]|0;HEAP32[$241+8>>2]=HEAP32[3776+8>>2]|0; + $242 = (($$41169) + 1)|0; + $243 = (($18) + (($242*12)|0)|0); + ;HEAP32[$243>>2]=HEAP32[3776>>2]|0;HEAP32[$243+4>>2]=HEAP32[3776+4>>2]|0;HEAP32[$243+8>>2]=HEAP32[3776+8>>2]|0; + $244 = (($$41169) + 2)|0; + $245 = (($18) + (($244*12)|0)|0); + ;HEAP32[$245>>2]=HEAP32[3776>>2]|0;HEAP32[$245+4>>2]=HEAP32[3776+4>>2]|0;HEAP32[$245+8>>2]=HEAP32[3776+8>>2]|0; + $246 = (($$41169) + 3)|0; + $247 = (($18) + (($246*12)|0)|0); + ;HEAP32[$247>>2]=HEAP32[3776>>2]|0;HEAP32[$247+4>>2]=HEAP32[3776+4>>2]|0;HEAP32[$247+8>>2]=HEAP32[3776+8>>2]|0; + $248 = (($$41169) + 4)|0; + $249 = (($18) + (($248*12)|0)|0); + ;HEAP32[$249>>2]=HEAP32[3776>>2]|0;HEAP32[$249+4>>2]=HEAP32[3776+4>>2]|0;HEAP32[$249+8>>2]=HEAP32[3776+8>>2]|0; + $250 = (($$41169) + 5)|0; + $251 = (($18) + (($250*12)|0)|0); + ;HEAP32[$251>>2]=HEAP32[3776>>2]|0;HEAP32[$251+4>>2]=HEAP32[3776+4>>2]|0;HEAP32[$251+8>>2]=HEAP32[3776+8>>2]|0; + $252 = (($$41169) + 6)|0; + $$sroa$085$0$$sroa_idx = (($17) + ($$41163<<3)|0); + HEAPF32[$$sroa$085$0$$sroa_idx>>2] = 0.5; + $$sroa$286$0$$sroa_idx87 = (((($17) + ($$41163<<3)|0)) + 4|0); + HEAPF32[$$sroa$286$0$$sroa_idx87>>2] = 0.0; + $253 = (($$41163) + 1)|0; + $$sroa$082$0$$sroa_idx = (($17) + ($253<<3)|0); + HEAPF32[$$sroa$082$0$$sroa_idx>>2] = 1.0; + $$sroa$283$0$$sroa_idx84 = (((($17) + ($253<<3)|0)) + 4|0); + HEAPF32[$$sroa$283$0$$sroa_idx84>>2] = 0.5; + $254 = (($$41163) + 2)|0; + $$sroa$079$0$$sroa_idx = (($17) + ($254<<3)|0); + HEAPF32[$$sroa$079$0$$sroa_idx>>2] = 1.0; + $$sroa$280$0$$sroa_idx81 = (((($17) + ($254<<3)|0)) + 4|0); + HEAPF32[$$sroa$280$0$$sroa_idx81>>2] = 0.0; + $255 = (($$41163) + 3)|0; + $$sroa$076$0$$sroa_idx = (($17) + ($255<<3)|0); + HEAPF32[$$sroa$076$0$$sroa_idx>>2] = 0.5; + $$sroa$277$0$$sroa_idx78 = (((($17) + ($255<<3)|0)) + 4|0); + HEAPF32[$$sroa$277$0$$sroa_idx78>>2] = 0.0; + $256 = (($$41163) + 4)|0; + $$sroa$073$0$$sroa_idx = (($17) + ($256<<3)|0); + HEAPF32[$$sroa$073$0$$sroa_idx>>2] = 0.5; + $$sroa$274$0$$sroa_idx75 = (((($17) + ($256<<3)|0)) + 4|0); + HEAPF32[$$sroa$274$0$$sroa_idx75>>2] = 0.5; + $257 = (($$41163) + 5)|0; + $$sroa$070$0$$sroa_idx = (($17) + ($257<<3)|0); + HEAPF32[$$sroa$070$0$$sroa_idx>>2] = 1.0; + $$sroa$271$0$$sroa_idx72 = (((($17) + ($257<<3)|0)) + 4|0); + HEAPF32[$$sroa$271$0$$sroa_idx72>>2] = 0.5; + $258 = (($$41163) + 6)|0; + $$5 = $240;$$51164 = $258;$$51170 = $252; + } else { + label = 34; + } + } else { + label = 34; + } + } else { + label = 34; + } + } while(0); + if ((label|0) == 34) { + label = 0; + $259 = HEAP32[$4>>2]|0; + $260 = Math_imul($259, $$011711199)|0; + $261 = (($260) + ($$011721190))|0; + $262 = (($3) + ($261<<2)|0); + $263 = HEAP8[$262>>0]|0; + $264 = ($263<<24>>24)==(0); + if ($264) { + $265 = (((($3) + ($261<<2)|0)) + 1|0); + $266 = HEAP8[$265>>0]|0; + $267 = ($266<<24>>24)==(0); + if ($267) { + $268 = (((($3) + ($261<<2)|0)) + 2|0); + $269 = HEAP8[$268>>0]|0; + $270 = ($269<<24>>24)==(0); + if ($270) { + $$sroa$0427$0$$sroa_idx438 = (($15) + (($$111571194*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx438>>2] = $38; + $$sroa$11443$0$$sroa_idx455 = (((($15) + (($$111571194*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx455>>2] = $13; + $$sroa$12$0$$sroa_idx471 = (((($15) + (($$111571194*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx471>>2] = $23; + $271 = (($$111571194) + 1)|0; + $$sroa$0358$0$$sroa_idx367 = (($15) + (($271*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx367>>2] = $40; + $$sroa$10372$0$$sroa_idx382 = (((($15) + (($271*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx382>>2] = $13; + $$sroa$11387$0$$sroa_idx397 = (((($15) + (($271*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx397>>2] = $25; + $272 = (($$111571194) + 2)|0; + $$sroa$0402$0$$sroa_idx407 = (($15) + (($272*12)|0)|0); + HEAPF32[$$sroa$0402$0$$sroa_idx407>>2] = $38; + $$sroa$7$0$$sroa_idx415 = (((($15) + (($272*12)|0)|0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx415>>2] = $13; + $$sroa$8418$0$$sroa_idx424 = (((($15) + (($272*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$8418$0$$sroa_idx424>>2] = $25; + $273 = (($$111571194) + 3)|0; + $$sroa$0427$0$$sroa_idx440 = (($15) + (($273*12)|0)|0); + HEAPF32[$$sroa$0427$0$$sroa_idx440>>2] = $38; + $$sroa$11443$0$$sroa_idx457 = (((($15) + (($273*12)|0)|0)) + 4|0); + HEAP32[$$sroa$11443$0$$sroa_idx457>>2] = $13; + $$sroa$12$0$$sroa_idx473 = (((($15) + (($273*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$12$0$$sroa_idx473>>2] = $23; + $274 = (($$111571194) + 4)|0; + $$sroa$0326$0$$sroa_idx333 = (($15) + (($274*12)|0)|0); + HEAPF32[$$sroa$0326$0$$sroa_idx333>>2] = $40; + $$sroa$8336$0$$sroa_idx344 = (((($15) + (($274*12)|0)|0)) + 4|0); + HEAP32[$$sroa$8336$0$$sroa_idx344>>2] = $13; + $$sroa$9347$0$$sroa_idx355 = (((($15) + (($274*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9347$0$$sroa_idx355>>2] = $23; + $275 = (($$111571194) + 5)|0; + $$sroa$0358$0$$sroa_idx369 = (($15) + (($275*12)|0)|0); + HEAPF32[$$sroa$0358$0$$sroa_idx369>>2] = $40; + $$sroa$10372$0$$sroa_idx384 = (((($15) + (($275*12)|0)|0)) + 4|0); + HEAP32[$$sroa$10372$0$$sroa_idx384>>2] = $13; + $$sroa$11387$0$$sroa_idx399 = (((($15) + (($275*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11387$0$$sroa_idx399>>2] = $25; + $276 = (($$111571194) + 6)|0; + $277 = (($18) + (($$111661192*12)|0)|0); + ;HEAP32[$277>>2]=HEAP32[3728>>2]|0;HEAP32[$277+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$277+8>>2]=HEAP32[3728+8>>2]|0; + $278 = (($$111661192) + 1)|0; + $279 = (($18) + (($278*12)|0)|0); + ;HEAP32[$279>>2]=HEAP32[3728>>2]|0;HEAP32[$279+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$279+8>>2]=HEAP32[3728+8>>2]|0; + $280 = (($$111661192) + 2)|0; + $281 = (($18) + (($280*12)|0)|0); + ;HEAP32[$281>>2]=HEAP32[3728>>2]|0;HEAP32[$281+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$281+8>>2]=HEAP32[3728+8>>2]|0; + $282 = (($$111661192) + 3)|0; + $283 = (($18) + (($282*12)|0)|0); + ;HEAP32[$283>>2]=HEAP32[3728>>2]|0;HEAP32[$283+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$283+8>>2]=HEAP32[3728+8>>2]|0; + $284 = (($$111661192) + 4)|0; + $285 = (($18) + (($284*12)|0)|0); + ;HEAP32[$285>>2]=HEAP32[3728>>2]|0;HEAP32[$285+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$285+8>>2]=HEAP32[3728+8>>2]|0; + $286 = (($$111661192) + 5)|0; + $287 = (($18) + (($286*12)|0)|0); + ;HEAP32[$287>>2]=HEAP32[3728>>2]|0;HEAP32[$287+4>>2]=HEAP32[3728+4>>2]|0;HEAP32[$287+8>>2]=HEAP32[3728+8>>2]|0; + $288 = (($$111661192) + 6)|0; + $$sroa$067$0$$sroa_idx = (($17) + ($$111601193<<3)|0); + HEAPF32[$$sroa$067$0$$sroa_idx>>2] = 0.0; + $$sroa$268$0$$sroa_idx69 = (((($17) + ($$111601193<<3)|0)) + 4|0); + HEAPF32[$$sroa$268$0$$sroa_idx69>>2] = 0.5; + $289 = (($$111601193) + 1)|0; + $$sroa$064$0$$sroa_idx = (($17) + ($289<<3)|0); + HEAPF32[$$sroa$064$0$$sroa_idx>>2] = 0.5; + $$sroa$265$0$$sroa_idx66 = (((($17) + ($289<<3)|0)) + 4|0); + HEAPF32[$$sroa$265$0$$sroa_idx66>>2] = 1.0; + $290 = (($$111601193) + 2)|0; + $$sroa$061$0$$sroa_idx = (($17) + ($290<<3)|0); + HEAPF32[$$sroa$061$0$$sroa_idx>>2] = 0.0; + $$sroa$262$0$$sroa_idx63 = (((($17) + ($290<<3)|0)) + 4|0); + HEAPF32[$$sroa$262$0$$sroa_idx63>>2] = 1.0; + $291 = (($$111601193) + 3)|0; + $$sroa$058$0$$sroa_idx = (($17) + ($291<<3)|0); + HEAPF32[$$sroa$058$0$$sroa_idx>>2] = 0.0; + $$sroa$259$0$$sroa_idx60 = (((($17) + ($291<<3)|0)) + 4|0); + HEAPF32[$$sroa$259$0$$sroa_idx60>>2] = 0.5; + $292 = (($$111601193) + 4)|0; + $$sroa$055$0$$sroa_idx = (($17) + ($292<<3)|0); + HEAPF32[$$sroa$055$0$$sroa_idx>>2] = 0.5; + $$sroa$256$0$$sroa_idx57 = (((($17) + ($292<<3)|0)) + 4|0); + HEAPF32[$$sroa$256$0$$sroa_idx57>>2] = 0.5; + $293 = (($$111601193) + 5)|0; + $$sroa$052$0$$sroa_idx = (($17) + ($293<<3)|0); + HEAPF32[$$sroa$052$0$$sroa_idx>>2] = 0.5; + $$sroa$253$0$$sroa_idx54 = (((($17) + ($293<<3)|0)) + 4|0); + HEAPF32[$$sroa$253$0$$sroa_idx54>>2] = 1.0; + $294 = (($$111601193) + 6)|0; + $$sroa$0257$0$$sroa_idx264 = (($15) + (($276*12)|0)|0); + HEAPF32[$$sroa$0257$0$$sroa_idx264>>2] = $38; + $$sroa$9269$0$$sroa_idx277 = (((($15) + (($276*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9269$0$$sroa_idx277>>2] = 0.0; + $$sroa$10282$0$$sroa_idx290 = (((($15) + (($276*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10282$0$$sroa_idx290>>2] = $23; + $295 = (($$111571194) + 7)|0; + $$sroa$0220$0$$sroa_idx229 = (($15) + (($295*12)|0)|0); + HEAPF32[$$sroa$0220$0$$sroa_idx229>>2] = $38; + $$sroa$9$0$$sroa_idx241 = (((($15) + (($295*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9$0$$sroa_idx241>>2] = 0.0; + $$sroa$10244$0$$sroa_idx254 = (((($15) + (($295*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10244$0$$sroa_idx254>>2] = $25; + $296 = (($$111571194) + 8)|0; + $$sroa$0178$0$$sroa_idx187 = (($15) + (($296*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx187>>2] = $40; + $$sroa$10$0$$sroa_idx201 = (((($15) + (($296*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx201>>2] = 0.0; + $$sroa$11$0$$sroa_idx215 = (((($15) + (($296*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx215>>2] = $25; + $297 = (($$111571194) + 9)|0; + $$sroa$0257$0$$sroa_idx266 = (($15) + (($297*12)|0)|0); + HEAPF32[$$sroa$0257$0$$sroa_idx266>>2] = $38; + $$sroa$9269$0$$sroa_idx279 = (((($15) + (($297*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$9269$0$$sroa_idx279>>2] = 0.0; + $$sroa$10282$0$$sroa_idx292 = (((($15) + (($297*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$10282$0$$sroa_idx292>>2] = $23; + $298 = (($$111571194) + 10)|0; + $$sroa$0178$0$$sroa_idx189 = (($15) + (($298*12)|0)|0); + HEAPF32[$$sroa$0178$0$$sroa_idx189>>2] = $40; + $$sroa$10$0$$sroa_idx203 = (((($15) + (($298*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$10$0$$sroa_idx203>>2] = 0.0; + $$sroa$11$0$$sroa_idx217 = (((($15) + (($298*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$11$0$$sroa_idx217>>2] = $25; + $299 = (($$111571194) + 11)|0; + $$sroa$0295$0$$sroa_idx302 = (($15) + (($299*12)|0)|0); + HEAPF32[$$sroa$0295$0$$sroa_idx302>>2] = $40; + $$sroa$8$0$$sroa_idx312 = (((($15) + (($299*12)|0)|0)) + 4|0); + HEAPF32[$$sroa$8$0$$sroa_idx312>>2] = 0.0; + $$sroa$9315$0$$sroa_idx323 = (((($15) + (($299*12)|0)|0)) + 8|0); + HEAPF32[$$sroa$9315$0$$sroa_idx323>>2] = $23; + $300 = (($$111571194) + 12)|0; + $301 = (($18) + (($288*12)|0)|0); + ;HEAP32[$301>>2]=HEAP32[3716>>2]|0;HEAP32[$301+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$301+8>>2]=HEAP32[3716+8>>2]|0; + $302 = (($$111661192) + 7)|0; + $303 = (($18) + (($302*12)|0)|0); + ;HEAP32[$303>>2]=HEAP32[3716>>2]|0;HEAP32[$303+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$303+8>>2]=HEAP32[3716+8>>2]|0; + $304 = (($$111661192) + 8)|0; + $305 = (($18) + (($304*12)|0)|0); + ;HEAP32[$305>>2]=HEAP32[3716>>2]|0;HEAP32[$305+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$305+8>>2]=HEAP32[3716+8>>2]|0; + $306 = (($$111661192) + 9)|0; + $307 = (($18) + (($306*12)|0)|0); + ;HEAP32[$307>>2]=HEAP32[3716>>2]|0;HEAP32[$307+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$307+8>>2]=HEAP32[3716+8>>2]|0; + $308 = (($$111661192) + 10)|0; + $309 = (($18) + (($308*12)|0)|0); + ;HEAP32[$309>>2]=HEAP32[3716>>2]|0;HEAP32[$309+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$309+8>>2]=HEAP32[3716+8>>2]|0; + $310 = (($$111661192) + 11)|0; + $311 = (($18) + (($310*12)|0)|0); + ;HEAP32[$311>>2]=HEAP32[3716>>2]|0;HEAP32[$311+4>>2]=HEAP32[3716+4>>2]|0;HEAP32[$311+8>>2]=HEAP32[3716+8>>2]|0; + $312 = (($$111661192) + 12)|0; + $$sroa$049$0$$sroa_idx = (($17) + ($294<<3)|0); + HEAPF32[$$sroa$049$0$$sroa_idx>>2] = 1.0; + $$sroa$250$0$$sroa_idx51 = (((($17) + ($294<<3)|0)) + 4|0); + HEAPF32[$$sroa$250$0$$sroa_idx51>>2] = 0.5; + $313 = (($$111601193) + 7)|0; + $$sroa$046$0$$sroa_idx = (($17) + ($313<<3)|0); + HEAPF32[$$sroa$046$0$$sroa_idx>>2] = 1.0; + $$sroa$247$0$$sroa_idx48 = (((($17) + ($313<<3)|0)) + 4|0); + HEAPF32[$$sroa$247$0$$sroa_idx48>>2] = 1.0; + $314 = (($$111601193) + 8)|0; + $$sroa$043$0$$sroa_idx = (($17) + ($314<<3)|0); + HEAPF32[$$sroa$043$0$$sroa_idx>>2] = 0.5; + $$sroa$244$0$$sroa_idx45 = (((($17) + ($314<<3)|0)) + 4|0); + HEAPF32[$$sroa$244$0$$sroa_idx45>>2] = 1.0; + $315 = (($$111601193) + 9)|0; + $$sroa$040$0$$sroa_idx = (($17) + ($315<<3)|0); + HEAPF32[$$sroa$040$0$$sroa_idx>>2] = 1.0; + $$sroa$241$0$$sroa_idx42 = (((($17) + ($315<<3)|0)) + 4|0); + HEAPF32[$$sroa$241$0$$sroa_idx42>>2] = 0.5; + $316 = (($$111601193) + 10)|0; + $$sroa$037$0$$sroa_idx = (($17) + ($316<<3)|0); + HEAPF32[$$sroa$037$0$$sroa_idx>>2] = 0.5; + $$sroa$238$0$$sroa_idx39 = (((($17) + ($316<<3)|0)) + 4|0); + HEAPF32[$$sroa$238$0$$sroa_idx39>>2] = 1.0; + $317 = (($$111601193) + 11)|0; + $$sroa$0$0$$sroa_idx = (($17) + ($317<<3)|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = 0.5; + $$sroa$2$0$$sroa_idx36 = (((($17) + ($317<<3)|0)) + 4|0); + HEAPF32[$$sroa$2$0$$sroa_idx36>>2] = 0.5; + $318 = (($$111601193) + 12)|0; + $$5 = $300;$$51164 = $318;$$51170 = $312; + } else { + $$5 = $$111571194;$$51164 = $$111601193;$$51170 = $$111661192; + } + } else { + $$5 = $$111571194;$$51164 = $$111601193;$$51170 = $$111661192; + } + } else { + $$5 = $$111571194;$$51164 = $$111601193;$$51170 = $$111661192; + } + } + $319 = (($$011721190) + 1)|0; + $exitcond1210 = ($319|0)==($5|0); + if ($exitcond1210) { + $$11157$lcssa = $$5;$$11160$lcssa = $$51164;$$11166$lcssa = $$51170; + break; + } else { + $$011721190 = $319;$$111571194 = $$5;$$111601193 = $$51164;$$111661192 = $$51170; + } + } + } else { + $$11157$lcssa = $$011561203;$$11160$lcssa = $$011591202;$$11166$lcssa = $$011651201; + } + $35 = (($$011711199) + 1)|0; + $exitcond1211 = ($35|0)==($7|0); + if ($exitcond1211) { + $$01156$lcssa = $$11157$lcssa;$$01159$lcssa = $$11160$lcssa;$$01165$lcssa = $$11166$lcssa; + break; + } else { + $$011561203 = $$11157$lcssa;$$011591202 = $$11160$lcssa;$$011651201 = $$11166$lcssa;$$011711199 = $35; + } + } + } else { + $$01156$lcssa = 0;$$01159$lcssa = 0;$$01165$lcssa = 0; + } + $29 = ($$01156$lcssa*12)|0; + $30 = (_malloc($29)|0); + $31 = (_malloc($29)|0); + $32 = $$01156$lcssa << 3; + $33 = (_malloc($32)|0); + $34 = ($$01156$lcssa|0)>(0); + if ($34) { + $$011541187 = 0;$$011551186 = 0; + while(1) { + $321 = (($15) + (($$011541187*12)|0)|0); + $322 = HEAP32[$321>>2]|0; + $323 = (($30) + ($$011551186<<2)|0); + HEAP32[$323>>2] = $322; + $324 = (((($15) + (($$011541187*12)|0)|0)) + 4|0); + $325 = HEAP32[$324>>2]|0; + $326 = (($$011551186) + 1)|0; + $327 = (($30) + ($326<<2)|0); + HEAP32[$327>>2] = $325; + $328 = (((($15) + (($$011541187*12)|0)|0)) + 8|0); + $329 = HEAP32[$328>>2]|0; + $330 = (($$011551186) + 2)|0; + $331 = (($30) + ($330<<2)|0); + HEAP32[$331>>2] = $329; + $332 = (($$011551186) + 3)|0; + $333 = (($$011541187) + 1)|0; + $exitcond1209 = ($333|0)==($$01156$lcssa|0); + if ($exitcond1209) { + break; + } else { + $$011541187 = $333;$$011551186 = $332; + } + } + } + $320 = ($$01165$lcssa|0)>(0); + if ($320) { + $$011531184 = 0;$$11183 = 0; + while(1) { + $335 = (($18) + (($$011531184*12)|0)|0); + $336 = HEAP32[$335>>2]|0; + $337 = (($31) + ($$11183<<2)|0); + HEAP32[$337>>2] = $336; + $338 = (((($18) + (($$011531184*12)|0)|0)) + 4|0); + $339 = HEAP32[$338>>2]|0; + $340 = (($$11183) + 1)|0; + $341 = (($31) + ($340<<2)|0); + HEAP32[$341>>2] = $339; + $342 = (((($18) + (($$011531184*12)|0)|0)) + 8|0); + $343 = HEAP32[$342>>2]|0; + $344 = (($$11183) + 2)|0; + $345 = (($31) + ($344<<2)|0); + HEAP32[$345>>2] = $343; + $346 = (($$11183) + 3)|0; + $347 = (($$011531184) + 1)|0; + $exitcond1208 = ($347|0)==($$01165$lcssa|0); + if ($exitcond1208) { + break; + } else { + $$011531184 = $347;$$11183 = $346; + } + } + } + $334 = ($$01159$lcssa|0)>(0); + if ($334) { + $$01182 = 0;$$21181 = 0; + } else { + _free($15); + _free($18); + _free($17); + _free($3); + HEAP32[$0>>2] = $$01156$lcssa; + $$sroa$81122$0$$sroa_idx1123 = ((($0)) + 4|0); + HEAP32[$$sroa$81122$0$$sroa_idx1123>>2] = 0; + $$sroa$81125$0$$sroa_idx1126 = ((($0)) + 8|0); + HEAP32[$$sroa$81125$0$$sroa_idx1126>>2] = $30; + $$sroa$121130$0$$sroa_idx1131 = ((($0)) + 12|0); + HEAP32[$$sroa$121130$0$$sroa_idx1131>>2] = $33; + $$sroa$151134$0$$sroa_idx1135 = ((($0)) + 16|0); + HEAP32[$$sroa$151134$0$$sroa_idx1135>>2] = 0; + $$sroa$151137$0$$sroa_idx1138 = ((($0)) + 20|0); + HEAP32[$$sroa$151137$0$$sroa_idx1138>>2] = $31; + $$sroa$19$0$$sroa_idx1142 = ((($0)) + 24|0); + HEAP32[$$sroa$19$0$$sroa_idx1142>>2] = 0; + $$sroa$191144$0$$sroa_idx1145 = ((($0)) + 28|0); + HEAP32[$$sroa$191144$0$$sroa_idx1145>>2] = 0; + $$sroa$20$0$$sroa_idx = ((($0)) + 32|0); + dest=$$sroa$20$0$$sroa_idx; src=$$sroa$20; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + while(1) { + $348 = (($17) + ($$01182<<3)|0); + $349 = HEAP32[$348>>2]|0; + $350 = (($33) + ($$21181<<2)|0); + HEAP32[$350>>2] = $349; + $351 = (((($17) + ($$01182<<3)|0)) + 4|0); + $352 = HEAP32[$351>>2]|0; + $353 = $$21181 | 1; + $354 = (($33) + ($353<<2)|0); + HEAP32[$354>>2] = $352; + $355 = (($$21181) + 2)|0; + $356 = (($$01182) + 1)|0; + $exitcond = ($356|0)==($$01159$lcssa|0); + if ($exitcond) { + break; + } else { + $$01182 = $356;$$21181 = $355; + } + } + _free($15); + _free($18); + _free($17); + _free($3); + HEAP32[$0>>2] = $$01156$lcssa; + $$sroa$81122$0$$sroa_idx1123 = ((($0)) + 4|0); + HEAP32[$$sroa$81122$0$$sroa_idx1123>>2] = 0; + $$sroa$81125$0$$sroa_idx1126 = ((($0)) + 8|0); + HEAP32[$$sroa$81125$0$$sroa_idx1126>>2] = $30; + $$sroa$121130$0$$sroa_idx1131 = ((($0)) + 12|0); + HEAP32[$$sroa$121130$0$$sroa_idx1131>>2] = $33; + $$sroa$151134$0$$sroa_idx1135 = ((($0)) + 16|0); + HEAP32[$$sroa$151134$0$$sroa_idx1135>>2] = 0; + $$sroa$151137$0$$sroa_idx1138 = ((($0)) + 20|0); + HEAP32[$$sroa$151137$0$$sroa_idx1138>>2] = $31; + $$sroa$19$0$$sroa_idx1142 = ((($0)) + 24|0); + HEAP32[$$sroa$19$0$$sroa_idx1142>>2] = 0; + $$sroa$191144$0$$sroa_idx1145 = ((($0)) + 28|0); + HEAP32[$$sroa$191144$0$$sroa_idx1145>>2] = 0; + $$sroa$20$0$$sroa_idx = ((($0)) + 32|0); + dest=$$sroa$20$0$$sroa_idx; src=$$sroa$20; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _UnloadMesh($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + _rlglUnloadMesh($0); + return; +} +function _UnloadModel($0) { + $0 = $0|0; + var $$byval_copy = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + _UnloadMesh($0); + $1 = ((($0)) + 132|0); + _memcpy(($$byval_copy|0),($1|0),132)|0; + _UnloadMaterial($$byval_copy); + _TraceLog(0,11703,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadMaterial($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 56|0); + $2 = HEAP32[$1>>2]|0; + _rlDeleteTextures($2); + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + _rlDeleteTextures($4); + $5 = ((($0)) + 96|0); + $6 = HEAP32[$5>>2]|0; + _rlDeleteTextures($6); + return; +} +function _DrawModel($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + $3 = $3|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy4 = sp + 324|0; + $$byval_copy3 = sp + 312|0; + $$byval_copy2 = sp + 300|0; + $$byval_copy1 = sp + 288|0; + $$byval_copy = sp + 24|0; + $4 = sp + 12|0; + $5 = sp; + HEAPF32[$4>>2] = $2; + $6 = ((($4)) + 4|0); + HEAPF32[$6>>2] = $2; + $7 = ((($4)) + 8|0); + HEAPF32[$7>>2] = $2; + ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0; + _memcpy(($$byval_copy|0),($0|0),264)|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$3+3>>0]|0; + _DrawModelEx($$byval_copy,$$byval_copy1,$$byval_copy2,0.0,$$byval_copy3,$$byval_copy4); + STACKTOP = sp;return; +} +function _DrawModelEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$byval_copy5 = 0, $$byval_copy6 = 0, $$byval_copy7 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 592|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(592|0); + $$byval_copy7 = sp + 520|0; + $$byval_copy6 = sp + 388|0; + $$byval_copy5 = sp + 320|0; + $6 = sp + 128|0; + $7 = sp + 64|0; + $8 = sp; + $9 = sp + 256|0; + $10 = sp + 192|0; + $11 = $3 * 0.01745329238474369; + ;HEAP32[$$byval_copy7>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy7+8>>2]=HEAP32[$2+8>>2]|0; + _MatrixRotate($6,$$byval_copy7,$11); + $12 = +HEAPF32[$4>>2]; + $13 = ((($4)) + 4|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($4)) + 8|0); + $16 = +HEAPF32[$15>>2]; + _MatrixScale($7,$12,$14,$16); + $17 = +HEAPF32[$1>>2]; + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 8|0); + $21 = +HEAPF32[$20>>2]; + _MatrixTranslate($8,$17,$19,$21); + $22 = ((($0)) + 68|0); + dest=$$byval_copy6; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($9,$$byval_copy6,$$byval_copy7); + dest=$$byval_copy6; src=$9; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($10,$$byval_copy6,$$byval_copy7); + dest=$22; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $23 = ((($0)) + 132|0); + $24 = ((($0)) + 248|0); + $25 = HEAPU8[$5>>0]|(HEAPU8[$5+1>>0]<<8)|(HEAPU8[$5+2>>0]<<16)|(HEAPU8[$5+3>>0]<<24); + HEAP32[$24>>2] = $25; + dest=$$byval_copy5; src=$0; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _memcpy(($$byval_copy6|0),($23|0),132)|0; + dest=$$byval_copy7; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlglDrawMesh($$byval_copy5,$$byval_copy6,$$byval_copy7); + STACKTOP = sp;return; +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,11761)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,11765)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,11769)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,11773)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,11779)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,11817)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 11836; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,11849)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 11870; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,11885)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 11900; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,11915)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 11930; + } + } else { + HEAP32[$3>>2] = 11801; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,11945)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,11959)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 3; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,11971)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 7; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,11985)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 8; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,11997)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 9; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,12011)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 10; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,12025)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 11; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,12042)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,12065)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,12091)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,12104)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,12120)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,12133)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 12; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,12147)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,12167)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,12187)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,12204)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,12221)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 4; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,12233)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 13; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,12246)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 14; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,12262)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,12285)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,12298)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,12314)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 5; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,12325)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 15; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,12344)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 16; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,12366)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 17; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,12385)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,12414)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 6; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,12431)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,12446)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,12461)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,12482)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,12502)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,12522)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,12548)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,12567)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,12579)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,12591)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,12603)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,12615)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 18; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,12627)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,12639)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,12651)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,12663)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,12676)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,12689)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,12702)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,12715)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,12728)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,12741)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,12754)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,12767)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,12786)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,12805)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,12824)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 19; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,12837)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 20; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,12855)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 21; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,12873)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 22; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,12891)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 23; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,12909)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,12929)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,11870)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 7; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,12947)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,12962)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,12983)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,12998)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,13016)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,13032)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,13051)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,13065)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,13080)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 8; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,11801)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,13091)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,11900)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 24; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,11930)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 25; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,13107)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,13134)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,13148)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,11836)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,13168)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,13186)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 9; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,13198)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,13219)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 26; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,13237)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 27; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,13255)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 28; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,13276)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,13302)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,13325)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,13363)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 10; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,13379)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,13394)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,13417)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,13430)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 29; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,13444)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 30; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,13458)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,13478)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,13498)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,13514)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,13532)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,13548)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,13563)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,13585)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 31; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,13603)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 32; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,13624)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,13642)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,13655)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,13670)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,13684)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,13694)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,13704)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,13726)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,13752)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,13779)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,13792)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,13807)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,13822)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,13846)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,13857)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 33; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,13879)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,13901)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,13925)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,13934)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,13942)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,13955)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,13969)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,13981)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,13990)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,14000)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,14012)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,14023)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,14031)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,14043)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,14058)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,14070)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,14084)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 11; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,14109)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,14126)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,14142)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,14158)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 12; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,14170)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 34; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,14182)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 35; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,14206)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,14219)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,14233)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 36; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,14255)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 37; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,14262)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,14278)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,14295)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,14312)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,14328)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,14344)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,14361)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,14375)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,14387)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,14398)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,14411)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,14421)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,14438)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,14450)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,14472)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,14492)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,14505)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,14527)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,14547)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,14564)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,14581)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,14601)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 38; + break; + } + } else { + HEAP32[$1>>2] = 6; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (20032|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3788|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + HEAP32[$3>>2] = $1; + $4 = ((($3)) + 4|0); + $5 = ((($0)) + 48|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($6|0)!=(0); + $8 = $7&1; + $9 = (($2) - ($8))|0; + HEAP32[$4>>2] = $9; + $10 = ((($3)) + 8|0); + $11 = ((($0)) + 44|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($3)) + 12|0); + HEAP32[$13>>2] = $6; + $14 = ((($0)) + 60|0); + $15 = HEAP32[$14>>2]|0; + $16 = $3; + HEAP32[$vararg_buffer>>2] = $15; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $16; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $17 = (___syscall145(145,($vararg_buffer|0))|0); + $18 = (___syscall_ret($17)|0); + $19 = ($18|0)<(1); + if ($19) { + $20 = $18 & 48; + $21 = $20 ^ 16; + $22 = HEAP32[$0>>2]|0; + $23 = $22 | $21; + HEAP32[$0>>2] = $23; + $$0 = $18; + } else { + $24 = HEAP32[$4>>2]|0; + $25 = ($18>>>0)>($24>>>0); + if ($25) { + $26 = (($18) - ($24))|0; + $27 = HEAP32[$11>>2]|0; + $28 = ((($0)) + 4|0); + HEAP32[$28>>2] = $27; + $29 = (($27) + ($26)|0); + $30 = ((($0)) + 8|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$5>>2]|0; + $32 = ($31|0)==(0); + if ($32) { + $$0 = $2; + } else { + $33 = ((($27)) + 1|0); + HEAP32[$28>>2] = $33; + $34 = HEAP8[$27>>0]|0; + $35 = (($2) + -1)|0; + $36 = (($1) + ($35)|0); + HEAP8[$36>>0] = $34; + $$0 = $2; + } + } else { + $$0 = $18; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 10; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function ___toread($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 28|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($8>>>0)>($10>>>0); + if ($11) { + $12 = ((($0)) + 36|0); + $13 = HEAP32[$12>>2]|0; + (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0); + } + $14 = ((($0)) + 16|0); + HEAP32[$14>>2] = 0; + HEAP32[$9>>2] = 0; + HEAP32[$7>>2] = 0; + $15 = HEAP32[$0>>2]|0; + $16 = $15 & 4; + $17 = ($16|0)==(0); + if ($17) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = $23; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = $23; + $26 = $15 << 27; + $sext = $26 >> 31; + $$0 = $sext; + } else { + $18 = $15 | 32; + HEAP32[$0>>2] = $18; + $$0 = -1; + } + return ($$0|0); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=4164; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((14717 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 15181;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 15181;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 15181 : (15183); + $$$ = $238 ? $$ : (15182); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 15181;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 15181;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 15191; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 15181;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (15181 + ($208)|0); + $$289 = $or$cond283 ? 15181 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 15181;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (15233 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 15198; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (15199) : (15204); + $$$ = $16 ? $$ : (15201); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (15233 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,15249,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,15249,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 15217 : 15221; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 15225 : 15229; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (15251 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 15339;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 15339; + } else { + $$01214 = 15339;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function ___unlist_locked_file($0) { + $0 = $0|0; + var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 68|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = ((($0)) + 116|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + $$pre = ((($0)) + 112|0); + if (!($6)) { + $7 = HEAP32[$$pre>>2]|0; + $8 = ((($5)) + 112|0); + HEAP32[$8>>2] = $7; + } + $9 = HEAP32[$$pre>>2]|0; + $10 = ($9|0)==(0|0); + if ($10) { + $12 = (___pthread_self_607()|0); + $13 = ((($12)) + 232|0); + $$sink = $13; + } else { + $11 = ((($9)) + 116|0); + $$sink = $11; + } + HEAP32[$$sink>>2] = $5; + } + return; +} +function ___pthread_self_607() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _fopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0; + var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer8 = sp + 32|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $memchr = (_memchr(17143,$3,4)|0); + $4 = ($memchr|0)==(0|0); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 22; + $$0 = 0; + } else { + $6 = (___fmodeflags($1)|0); + $7 = $0; + $8 = $6 | 32768; + HEAP32[$vararg_buffer>>2] = $7; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 438; + $9 = (___syscall5(5,($vararg_buffer|0))|0); + $10 = (___syscall_ret($9)|0); + $11 = ($10|0)<(0); + if ($11) { + $$0 = 0; + } else { + $12 = $6 & 524288; + $13 = ($12|0)==(0); + if (!($13)) { + HEAP32[$vararg_buffer3>>2] = $10; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 2; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = 1; + (___syscall221(221,($vararg_buffer3|0))|0); + } + $14 = (___fdopen($10,$1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + HEAP32[$vararg_buffer8>>2] = $10; + (___syscall6(6,($vararg_buffer8|0))|0); + $$0 = 0; + } else { + $$0 = $14; + } + } + } + STACKTOP = sp;return ($$0|0); +} +function ___fmodeflags($0) { + $0 = $0|0; + var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_strchr($0,43)|0); + $2 = ($1|0)==(0|0); + $3 = HEAP8[$0>>0]|0; + $not$ = ($3<<24>>24)!=(114); + $$ = $not$&1; + $$0 = $2 ? $$ : 2; + $4 = (_strchr($0,120)|0); + $5 = ($4|0)==(0|0); + $6 = $$0 | 128; + $$0$ = $5 ? $$0 : $6; + $7 = (_strchr($0,101)|0); + $8 = ($7|0)==(0|0); + $9 = $$0$ | 524288; + $$2 = $8 ? $$0$ : $9; + $10 = ($3<<24>>24)==(114); + $11 = $$2 | 64; + $$2$ = $10 ? $$2 : $11; + $12 = ($3<<24>>24)==(119); + $13 = $$2$ | 512; + $$4 = $12 ? $13 : $$2$; + $14 = ($3<<24>>24)==(97); + $15 = $$4 | 1024; + $$$4 = $14 ? $15 : $$4; + return ($$$4|0); +} +function ___fdopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer12 = sp + 40|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 56|0; + $3 = HEAP8[$1>>0]|0; + $4 = $3 << 24 >> 24; + $memchr = (_memchr(17143,$4,4)|0); + $5 = ($memchr|0)==(0|0); + if ($5) { + $6 = (___errno_location()|0); + HEAP32[$6>>2] = 22; + $$0 = 0; + } else { + $7 = (_malloc(1156)|0); + $8 = ($7|0)==(0|0); + if ($8) { + $$0 = 0; + } else { + dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $9 = (_strchr($1,43)|0); + $10 = ($9|0)==(0|0); + if ($10) { + $11 = ($3<<24>>24)==(114); + $12 = $11 ? 8 : 4; + HEAP32[$7>>2] = $12; + } + $13 = (_strchr($1,101)|0); + $14 = ($13|0)==(0|0); + if ($14) { + $16 = $3; + } else { + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 2; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 1; + (___syscall221(221,($vararg_buffer|0))|0); + $$pre = HEAP8[$1>>0]|0; + $16 = $$pre; + } + $15 = ($16<<24>>24)==(97); + if ($15) { + HEAP32[$vararg_buffer3>>2] = $0; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 3; + $17 = (___syscall221(221,($vararg_buffer3|0))|0); + $18 = $17 & 1024; + $19 = ($18|0)==(0); + if ($19) { + $20 = $17 | 1024; + HEAP32[$vararg_buffer7>>2] = $0; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = 4; + $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); + HEAP32[$vararg_ptr11>>2] = $20; + (___syscall221(221,($vararg_buffer7|0))|0); + } + $21 = HEAP32[$7>>2]|0; + $22 = $21 | 128; + HEAP32[$7>>2] = $22; + $29 = $22; + } else { + $$pre31 = HEAP32[$7>>2]|0; + $29 = $$pre31; + } + $23 = ((($7)) + 60|0); + HEAP32[$23>>2] = $0; + $24 = ((($7)) + 132|0); + $25 = ((($7)) + 44|0); + HEAP32[$25>>2] = $24; + $26 = ((($7)) + 48|0); + HEAP32[$26>>2] = 1024; + $27 = ((($7)) + 75|0); + HEAP8[$27>>0] = -1; + $28 = $29 & 8; + $30 = ($28|0)==(0); + if ($30) { + $31 = $2; + HEAP32[$vararg_buffer12>>2] = $0; + $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); + HEAP32[$vararg_ptr15>>2] = 21523; + $vararg_ptr16 = ((($vararg_buffer12)) + 8|0); + HEAP32[$vararg_ptr16>>2] = $31; + $32 = (___syscall54(54,($vararg_buffer12|0))|0); + $33 = ($32|0)==(0); + if ($33) { + HEAP8[$27>>0] = 10; + } + } + $34 = ((($7)) + 32|0); + HEAP32[$34>>2] = 11; + $35 = ((($7)) + 36|0); + HEAP32[$35>>2] = 10; + $36 = ((($7)) + 40|0); + HEAP32[$36>>2] = 3; + $37 = ((($7)) + 12|0); + HEAP32[$37>>2] = 2; + $38 = HEAP32[(20036)>>2]|0; + $39 = ($38|0)==(0); + if ($39) { + $40 = ((($7)) + 76|0); + HEAP32[$40>>2] = -1; + } + $41 = (___ofl_add($7)|0); + $$0 = $7; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___ofl_add($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___ofl_lock()|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 56|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$1>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($4)) + 52|0); + HEAP32[$6>>2] = $0; + } + HEAP32[$1>>2] = $0; + ___ofl_unlock(); + return ($0|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((20096|0)); + return (20104|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((20096|0)); + return; +} +function _fclose($0) { + $0 = $0|0; + var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $29 = $4; + } else { + $29 = 0; + } + ___unlist_locked_file($0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 1; + $7 = ($6|0)!=(0); + if (!($7)) { + $8 = (___ofl_lock()|0); + $9 = ((($0)) + 52|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)==(0|0); + $12 = $10; + $$pre = ((($0)) + 56|0); + if (!($11)) { + $13 = HEAP32[$$pre>>2]|0; + $14 = ((($10)) + 56|0); + HEAP32[$14>>2] = $13; + } + $15 = HEAP32[$$pre>>2]|0; + $16 = ($15|0)==(0|0); + if (!($16)) { + $17 = ((($15)) + 52|0); + HEAP32[$17>>2] = $12; + } + $18 = HEAP32[$8>>2]|0; + $19 = ($18|0)==($0|0); + if ($19) { + HEAP32[$8>>2] = $15; + } + ___ofl_unlock(); + } + $20 = (_fflush($0)|0); + $21 = ((($0)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = (FUNCTION_TABLE_ii[$22 & 15]($0)|0); + $24 = $23 | $20; + $25 = ((($0)) + 92|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($26|0)==(0|0); + if (!($27)) { + _free($26); + } + if ($7) { + $28 = ($29|0)==(0); + if (!($28)) { + ___unlockfile($0); + } + } else { + _free($0); + } + return ($24|0); +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[1040]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[1040]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _feof($0) { + $0 = $0|0; + var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 >>> 4; + $$lobit = $8 & 1; + if ($phitmp) { + $$lobit9 = $$lobit; + } else { + ___unlockfile($0); + $$lobit9 = $$lobit; + } + } else { + $4 = HEAP32[$0>>2]|0; + $5 = $4 >>> 4; + $$lobit8 = $5 & 1; + $$lobit9 = $$lobit8; + } + return ($$lobit9|0); +} +function _fseek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (___fseeko($0,$1,$2)|0); + return ($3|0); +} +function ___fseeko($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $7 = (___lockfile($0)|0); + $phitmp = ($7|0)==(0); + $8 = (___fseeko_unlocked($0,$1,$2)|0); + if ($phitmp) { + $9 = $8; + } else { + ___unlockfile($0); + $9 = $8; + } + } else { + $6 = (___fseeko_unlocked($0,$1,$2)|0); + $9 = $6; + } + return ($9|0); +} +function ___fseeko_unlocked($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(1); + if ($3) { + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 4|0); + $7 = HEAP32[$6>>2]|0; + $8 = (($1) - ($5))|0; + $9 = (($8) + ($7))|0; + $$019 = $9; + } else { + $$019 = $1; + } + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 28|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)>($13>>>0); + if ($14) { + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + (FUNCTION_TABLE_iiii[$16 & 15]($0,0,0)|0); + $17 = HEAP32[$10>>2]|0; + $18 = ($17|0)==(0|0); + if ($18) { + $$0 = -1; + } else { + label = 5; + } + } else { + label = 5; + } + if ((label|0) == 5) { + $19 = ((($0)) + 16|0); + HEAP32[$19>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + $22 = (FUNCTION_TABLE_iiii[$21 & 15]($0,$$019,$2)|0); + $23 = ($22|0)<(0); + if ($23) { + $$0 = -1; + } else { + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = 0; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = 0; + $26 = HEAP32[$0>>2]|0; + $27 = $26 & -17; + HEAP32[$0>>2] = $27; + $$0 = 0; + } + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strrchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($2) + 1)|0; + $4 = (___memrchr($0,$1,$3)|0); + return ($4|0); +} +function ___memrchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1&255; + $$09 = $2; + while(1) { + $4 = (($$09) + -1)|0; + $5 = ($$09|0)==(0); + if ($5) { + $$0 = 0; + break; + } + $6 = (($0) + ($4)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==($3<<24>>24); + if ($8) { + $$0 = $6; + break; + } else { + $$09 = $4; + } + } + return ($$0|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 17424; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _fread($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = ($1|0)==(0); + $$ = $5 ? 0 : $2; + $6 = ((($3)) + 76|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)>(-1); + if ($8) { + $9 = (___lockfile($3)|0); + $36 = $9; + } else { + $36 = 0; + } + $10 = ((($3)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ((($3)) + 8|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($3)) + 4|0); + $19 = HEAP32[$18>>2]|0; + $20 = $19; + $21 = (($17) - ($20))|0; + $22 = ($21|0)>(0); + $23 = ($21>>>0)<($4>>>0); + $$57 = $23 ? $21 : $4; + if ($22) { + $24 = (($4) - ($$57))|0; + $25 = (($0) + ($$57)|0); + _memcpy(($0|0),($19|0),($$57|0))|0; + $26 = (($19) + ($$57)|0); + HEAP32[$18>>2] = $26; + $$054$ph = $24;$$056$ph = $25; + } else { + $$054$ph = $4;$$056$ph = $0; + } + $27 = ($$054$ph|0)==(0); + L7: do { + if ($27) { + label = 13; + } else { + $28 = ((($3)) + 32|0); + $$05460 = $$054$ph;$$05659 = $$056$ph; + while(1) { + $29 = (___toread($3)|0); + $30 = ($29|0)==(0); + if (!($30)) { + break; + } + $31 = HEAP32[$28>>2]|0; + $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0); + $33 = (($32) + 1)|0; + $34 = ($33>>>0)<(2); + if ($34) { + break; + } + $39 = (($$05460) - ($32))|0; + $40 = (($$05659) + ($32)|0); + $41 = ($39|0)==(0); + if ($41) { + label = 13; + break L7; + } else { + $$05460 = $39;$$05659 = $40; + } + } + $35 = ($36|0)==(0); + if (!($35)) { + ___unlockfile($3); + } + $37 = (($4) - ($$05460))|0; + $38 = (($37>>>0) / ($1>>>0))&-1; + $$0 = $38; + } + } while(0); + if ((label|0) == 13) { + $42 = ($36|0)==(0); + if ($42) { + $$0 = $$; + } else { + ___unlockfile($3); + $$0 = $$; + } + } + return ($$0|0); +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[1008]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[5027]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[5027] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[5027] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[5027] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[5027] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[5028]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (20152 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[5028] = $24; + } else { + $25 = HEAP32[(20128)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(20120)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (20152 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[5028] = $77; + $98 = $77; + } else { + $78 = HEAP32[(20128)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(20132)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (20152 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[5028] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(20128)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(20120)>>2] = $84; + HEAP32[(20132)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(20116)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (20416 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(20128)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (20416 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(20116)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(20128)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(20128)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(20128)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(20132)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (20152 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[5028] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(20128)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(20120)>>2] = $$0193$lcssa$i; + HEAP32[(20132)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(20116)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (20416 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (20416 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(20120)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(20128)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (20416 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(20116)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(20128)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(20128)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(20128)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (20152 + ($425<<2)|0); + $427 = HEAP32[5028]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[5028] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(20128)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (20416 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(20116)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(20128)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(20128)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(20120)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(20132)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(20132)>>2] = $511; + HEAP32[(20120)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(20120)>>2] = 0; + HEAP32[(20132)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(20124)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(20124)>>2] = $526; + $527 = HEAP32[(20136)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(20136)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[5146]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(20592)>>2] = 4096; + HEAP32[(20588)>>2] = 4096; + HEAP32[(20596)>>2] = -1; + HEAP32[(20600)>>2] = -1; + HEAP32[(20604)>>2] = 0; + HEAP32[(20556)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[5146] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(20592)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(20552)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(20544)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(20556)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(20136)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (20560); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(20588)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(20544)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(20552)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(20592)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(20556)>>2]|0; + $612 = $611 | 4; + HEAP32[(20556)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(20544)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(20544)>>2] = $627; + $628 = HEAP32[(20548)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(20548)>>2] = $627; + } + $630 = HEAP32[(20136)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(20128)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(20128)>>2] = $$749$i; + } + HEAP32[(20560)>>2] = $$749$i; + HEAP32[(20564)>>2] = $$723948$i; + HEAP32[(20572)>>2] = 0; + $635 = HEAP32[5146]|0; + HEAP32[(20148)>>2] = $635; + HEAP32[(20144)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (20152 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(20136)>>2] = $649; + HEAP32[(20124)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(20600)>>2]|0; + HEAP32[(20140)>>2] = $655; + } else { + $$024371$i = (20560); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(20124)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(20136)>>2] = $679; + HEAP32[(20124)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(20600)>>2]|0; + HEAP32[(20140)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(20128)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(20128)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (20560); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(20124)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(20124)>>2] = $727; + HEAP32[(20136)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(20132)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(20120)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(20120)>>2] = $733; + HEAP32[(20132)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (20152 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[5028]|0; + $760 = $759 & $758; + HEAP32[5028] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (20416 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(20116)>>2]|0; + $803 = $802 & $801; + HEAP32[(20116)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(20128)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(20128)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(20128)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (20152 + ($836<<2)|0); + $838 = HEAP32[5028]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[5028] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(20128)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (20416 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(20116)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(20116)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(20128)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(20128)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (20560); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(20136)>>2] = $946; + HEAP32[(20124)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(20600)>>2]|0; + HEAP32[(20140)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(20560)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(20560)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(20560)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(20560)+12>>2]|0; + HEAP32[(20560)>>2] = $$749$i; + HEAP32[(20564)>>2] = $$723948$i; + HEAP32[(20572)>>2] = 0; + HEAP32[(20568)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (20152 + ($968<<2)|0); + $970 = HEAP32[5028]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[5028] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(20128)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (20416 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(20116)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(20116)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(20128)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(20128)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(20124)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(20124)>>2] = $1050; + $1051 = HEAP32[(20136)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(20136)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(20128)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(20132)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(20120)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (20152 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[5028]|0; + $38 = $37 & $36; + HEAP32[5028] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (20416 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(20116)>>2]|0; + $81 = $80 & $79; + HEAP32[(20116)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(20128)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(20128)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(20128)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(20136)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(20132)>>2]|0; + if ($121) { + $123 = HEAP32[(20124)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(20124)>>2] = $124; + HEAP32[(20136)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(20132)>>2] = 0; + HEAP32[(20120)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(20120)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(20120)>>2] = $130; + HEAP32[(20132)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (20152 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(20128)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[5028]|0; + $154 = $153 & $152; + HEAP32[5028] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(20128)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(20128)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(20128)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (20416 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(20116)>>2]|0; + $200 = $199 & $198; + HEAP32[(20116)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(20128)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(20128)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(20128)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(20132)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(20120)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (20152 + ($234<<2)|0); + $236 = HEAP32[5028]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[5028] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(20128)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (20416 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(20116)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(20116)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(20128)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(20128)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(20144)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(20144)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (20568); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(20144)>>2] = -1; + return; +} +function _realloc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = (_malloc($1)|0); + $$1 = $3; + return ($$1|0); + } + $4 = ($1>>>0)>(4294967231); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 12; + $$1 = 0; + return ($$1|0); + } + $6 = ($1>>>0)<(11); + $7 = (($1) + 11)|0; + $8 = $7 & -8; + $9 = $6 ? 16 : $8; + $10 = ((($0)) + -8|0); + $11 = (_try_realloc_chunk($10,$9)|0); + $12 = ($11|0)==(0|0); + if (!($12)) { + $13 = ((($11)) + 8|0); + $$1 = $13; + return ($$1|0); + } + $14 = (_malloc($1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$1 = 0; + return ($$1|0); + } + $16 = ((($0)) + -4|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 & -8; + $19 = $17 & 3; + $20 = ($19|0)==(0); + $21 = $20 ? 8 : 4; + $22 = (($18) - ($21))|0; + $23 = ($22>>>0)<($1>>>0); + $24 = $23 ? $22 : $1; + _memcpy(($14|0),($0|0),($24|0))|0; + _free($0); + $$1 = $14; + return ($$1|0); +} +function _try_realloc_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1272 = 0, $$1275 = 0, $$2 = 0, $$3 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $cond = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & -8; + $5 = (($0) + ($4)|0); + $6 = HEAP32[(20128)>>2]|0; + $7 = $3 & 3; + $notlhs = ($0>>>0)>=($6>>>0); + $notrhs = ($7|0)!=(1); + $or$cond$not = $notrhs & $notlhs; + $8 = ($0>>>0)<($5>>>0); + $or$cond3 = $or$cond$not & $8; + if (!($or$cond3)) { + _abort(); + // unreachable; + } + $9 = ((($5)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = $10 & 1; + $12 = ($11|0)==(0); + if ($12) { + _abort(); + // unreachable; + } + $13 = ($7|0)==(0); + if ($13) { + $14 = ($1>>>0)<(256); + if ($14) { + $$2 = 0; + return ($$2|0); + } + $15 = (($1) + 4)|0; + $16 = ($4>>>0)<($15>>>0); + if (!($16)) { + $17 = (($4) - ($1))|0; + $18 = HEAP32[(20592)>>2]|0; + $19 = $18 << 1; + $20 = ($17>>>0)>($19>>>0); + if (!($20)) { + $$2 = $0; + return ($$2|0); + } + } + $$2 = 0; + return ($$2|0); + } + $21 = ($4>>>0)<($1>>>0); + if (!($21)) { + $22 = (($4) - ($1))|0; + $23 = ($22>>>0)>(15); + if (!($23)) { + $$2 = $0; + return ($$2|0); + } + $24 = (($0) + ($1)|0); + $25 = $3 & 1; + $26 = $25 | $1; + $27 = $26 | 2; + HEAP32[$2>>2] = $27; + $28 = ((($24)) + 4|0); + $29 = $22 | 3; + HEAP32[$28>>2] = $29; + $30 = (($24) + ($22)|0); + $31 = ((($30)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = $32 | 1; + HEAP32[$31>>2] = $33; + _dispose_chunk($24,$22); + $$2 = $0; + return ($$2|0); + } + $34 = HEAP32[(20136)>>2]|0; + $35 = ($5|0)==($34|0); + if ($35) { + $36 = HEAP32[(20124)>>2]|0; + $37 = (($36) + ($4))|0; + $38 = ($37>>>0)>($1>>>0); + $39 = (($37) - ($1))|0; + $40 = (($0) + ($1)|0); + if (!($38)) { + $$2 = 0; + return ($$2|0); + } + $41 = $39 | 1; + $42 = ((($40)) + 4|0); + $43 = $3 & 1; + $44 = $43 | $1; + $45 = $44 | 2; + HEAP32[$2>>2] = $45; + HEAP32[$42>>2] = $41; + HEAP32[(20136)>>2] = $40; + HEAP32[(20124)>>2] = $39; + $$2 = $0; + return ($$2|0); + } + $46 = HEAP32[(20132)>>2]|0; + $47 = ($5|0)==($46|0); + if ($47) { + $48 = HEAP32[(20120)>>2]|0; + $49 = (($48) + ($4))|0; + $50 = ($49>>>0)<($1>>>0); + if ($50) { + $$2 = 0; + return ($$2|0); + } + $51 = (($49) - ($1))|0; + $52 = ($51>>>0)>(15); + $53 = $3 & 1; + if ($52) { + $54 = (($0) + ($1)|0); + $55 = (($54) + ($51)|0); + $56 = $53 | $1; + $57 = $56 | 2; + HEAP32[$2>>2] = $57; + $58 = ((($54)) + 4|0); + $59 = $51 | 1; + HEAP32[$58>>2] = $59; + HEAP32[$55>>2] = $51; + $60 = ((($55)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = $61 & -2; + HEAP32[$60>>2] = $62; + $storemerge = $54;$storemerge1 = $51; + } else { + $63 = $53 | $49; + $64 = $63 | 2; + HEAP32[$2>>2] = $64; + $65 = (($0) + ($49)|0); + $66 = ((($65)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = $67 | 1; + HEAP32[$66>>2] = $68; + $storemerge = 0;$storemerge1 = 0; + } + HEAP32[(20120)>>2] = $storemerge1; + HEAP32[(20132)>>2] = $storemerge; + $$2 = $0; + return ($$2|0); + } + $69 = $10 & 2; + $70 = ($69|0)==(0); + if (!($70)) { + $$2 = 0; + return ($$2|0); + } + $71 = $10 & -8; + $72 = (($71) + ($4))|0; + $73 = ($72>>>0)<($1>>>0); + if ($73) { + $$2 = 0; + return ($$2|0); + } + $74 = (($72) - ($1))|0; + $75 = $10 >>> 3; + $76 = ($10>>>0)<(256); + L49: do { + if ($76) { + $77 = ((($5)) + 8|0); + $78 = HEAP32[$77>>2]|0; + $79 = ((($5)) + 12|0); + $80 = HEAP32[$79>>2]|0; + $81 = $75 << 1; + $82 = (20152 + ($81<<2)|0); + $83 = ($78|0)==($82|0); + if (!($83)) { + $84 = ($78>>>0)<($6>>>0); + if ($84) { + _abort(); + // unreachable; + } + $85 = ((($78)) + 12|0); + $86 = HEAP32[$85>>2]|0; + $87 = ($86|0)==($5|0); + if (!($87)) { + _abort(); + // unreachable; + } + } + $88 = ($80|0)==($78|0); + if ($88) { + $89 = 1 << $75; + $90 = $89 ^ -1; + $91 = HEAP32[5028]|0; + $92 = $91 & $90; + HEAP32[5028] = $92; + break; + } + $93 = ($80|0)==($82|0); + if ($93) { + $$pre = ((($80)) + 8|0); + $$pre$phiZ2D = $$pre; + } else { + $94 = ($80>>>0)<($6>>>0); + if ($94) { + _abort(); + // unreachable; + } + $95 = ((($80)) + 8|0); + $96 = HEAP32[$95>>2]|0; + $97 = ($96|0)==($5|0); + if ($97) { + $$pre$phiZ2D = $95; + } else { + _abort(); + // unreachable; + } + } + $98 = ((($78)) + 12|0); + HEAP32[$98>>2] = $80; + HEAP32[$$pre$phiZ2D>>2] = $78; + } else { + $99 = ((($5)) + 24|0); + $100 = HEAP32[$99>>2]|0; + $101 = ((($5)) + 12|0); + $102 = HEAP32[$101>>2]|0; + $103 = ($102|0)==($5|0); + do { + if ($103) { + $113 = ((($5)) + 16|0); + $114 = ((($113)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = ($115|0)==(0|0); + if ($116) { + $117 = HEAP32[$113>>2]|0; + $118 = ($117|0)==(0|0); + if ($118) { + $$3 = 0; + break; + } else { + $$1272 = $117;$$1275 = $113; + } + } else { + $$1272 = $115;$$1275 = $114; + } + while(1) { + $119 = ((($$1272)) + 20|0); + $120 = HEAP32[$119>>2]|0; + $121 = ($120|0)==(0|0); + if (!($121)) { + $$1272 = $120;$$1275 = $119; + continue; + } + $122 = ((($$1272)) + 16|0); + $123 = HEAP32[$122>>2]|0; + $124 = ($123|0)==(0|0); + if ($124) { + break; + } else { + $$1272 = $123;$$1275 = $122; + } + } + $125 = ($$1275>>>0)<($6>>>0); + if ($125) { + _abort(); + // unreachable; + } else { + HEAP32[$$1275>>2] = 0; + $$3 = $$1272; + break; + } + } else { + $104 = ((($5)) + 8|0); + $105 = HEAP32[$104>>2]|0; + $106 = ($105>>>0)<($6>>>0); + if ($106) { + _abort(); + // unreachable; + } + $107 = ((($105)) + 12|0); + $108 = HEAP32[$107>>2]|0; + $109 = ($108|0)==($5|0); + if (!($109)) { + _abort(); + // unreachable; + } + $110 = ((($102)) + 8|0); + $111 = HEAP32[$110>>2]|0; + $112 = ($111|0)==($5|0); + if ($112) { + HEAP32[$107>>2] = $102; + HEAP32[$110>>2] = $105; + $$3 = $102; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $126 = ($100|0)==(0|0); + if (!($126)) { + $127 = ((($5)) + 28|0); + $128 = HEAP32[$127>>2]|0; + $129 = (20416 + ($128<<2)|0); + $130 = HEAP32[$129>>2]|0; + $131 = ($5|0)==($130|0); + do { + if ($131) { + HEAP32[$129>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $132 = 1 << $128; + $133 = $132 ^ -1; + $134 = HEAP32[(20116)>>2]|0; + $135 = $134 & $133; + HEAP32[(20116)>>2] = $135; + break L49; + } + } else { + $136 = HEAP32[(20128)>>2]|0; + $137 = ($100>>>0)<($136>>>0); + if ($137) { + _abort(); + // unreachable; + } else { + $138 = ((($100)) + 16|0); + $139 = HEAP32[$138>>2]|0; + $not$ = ($139|0)!=($5|0); + $$sink1 = $not$&1; + $140 = (((($100)) + 16|0) + ($$sink1<<2)|0); + HEAP32[$140>>2] = $$3; + $141 = ($$3|0)==(0|0); + if ($141) { + break L49; + } else { + break; + } + } + } + } while(0); + $142 = HEAP32[(20128)>>2]|0; + $143 = ($$3>>>0)<($142>>>0); + if ($143) { + _abort(); + // unreachable; + } + $144 = ((($$3)) + 24|0); + HEAP32[$144>>2] = $100; + $145 = ((($5)) + 16|0); + $146 = HEAP32[$145>>2]|0; + $147 = ($146|0)==(0|0); + do { + if (!($147)) { + $148 = ($146>>>0)<($142>>>0); + if ($148) { + _abort(); + // unreachable; + } else { + $149 = ((($$3)) + 16|0); + HEAP32[$149>>2] = $146; + $150 = ((($146)) + 24|0); + HEAP32[$150>>2] = $$3; + break; + } + } + } while(0); + $151 = ((($145)) + 4|0); + $152 = HEAP32[$151>>2]|0; + $153 = ($152|0)==(0|0); + if (!($153)) { + $154 = HEAP32[(20128)>>2]|0; + $155 = ($152>>>0)<($154>>>0); + if ($155) { + _abort(); + // unreachable; + } else { + $156 = ((($$3)) + 20|0); + HEAP32[$156>>2] = $152; + $157 = ((($152)) + 24|0); + HEAP32[$157>>2] = $$3; + break; + } + } + } + } + } while(0); + $158 = ($74>>>0)<(16); + $159 = $3 & 1; + if ($158) { + $160 = $72 | $159; + $161 = $160 | 2; + HEAP32[$2>>2] = $161; + $162 = (($0) + ($72)|0); + $163 = ((($162)) + 4|0); + $164 = HEAP32[$163>>2]|0; + $165 = $164 | 1; + HEAP32[$163>>2] = $165; + $$2 = $0; + return ($$2|0); + } else { + $166 = (($0) + ($1)|0); + $167 = $159 | $1; + $168 = $167 | 2; + HEAP32[$2>>2] = $168; + $169 = ((($166)) + 4|0); + $170 = $74 | 3; + HEAP32[$169>>2] = $170; + $171 = (($166) + ($74)|0); + $172 = ((($171)) + 4|0); + $173 = HEAP32[$172>>2]|0; + $174 = $173 | 1; + HEAP32[$172>>2] = $174; + _dispose_chunk($166,$74); + $$2 = $0; + return ($$2|0); + } + return (0)|0; +} +function _dispose_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0419 = 0, $$0420 = 0, $$0431 = 0, $$0438 = 0, $$1 = 0, $$1418 = 0, $$1426 = 0, $$1429 = 0, $$1433 = 0, $$1437 = 0, $$2 = 0, $$3 = 0, $$3435 = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $$pre23 = 0, $$pre25 = 0, $$sink2 = 0; + var $$sink4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond17 = 0, $not$ = 0, $not$1 = 0, $not$19 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0) + ($1)|0); + $3 = ((($0)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = $4 & 1; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = HEAP32[$0>>2]|0; + $8 = $4 & 3; + $9 = ($8|0)==(0); + if ($9) { + return; + } + $10 = (0 - ($7))|0; + $11 = (($0) + ($10)|0); + $12 = (($7) + ($1))|0; + $13 = HEAP32[(20128)>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + _abort(); + // unreachable; + } + $15 = HEAP32[(20132)>>2]|0; + $16 = ($11|0)==($15|0); + if ($16) { + $100 = ((($2)) + 4|0); + $101 = HEAP32[$100>>2]|0; + $102 = $101 & 3; + $103 = ($102|0)==(3); + if (!($103)) { + $$1 = $11;$$1418 = $12; + break; + } + $104 = (($11) + ($12)|0); + $105 = ((($11)) + 4|0); + $106 = $12 | 1; + $107 = $101 & -2; + HEAP32[(20120)>>2] = $12; + HEAP32[$100>>2] = $107; + HEAP32[$105>>2] = $106; + HEAP32[$104>>2] = $12; + return; + } + $17 = $7 >>> 3; + $18 = ($7>>>0)<(256); + if ($18) { + $19 = ((($11)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($11)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = $17 << 1; + $24 = (20152 + ($23<<2)|0); + $25 = ($20|0)==($24|0); + if (!($25)) { + $26 = ($20>>>0)<($13>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($11|0); + if (!($29)) { + _abort(); + // unreachable; + } + } + $30 = ($22|0)==($20|0); + if ($30) { + $31 = 1 << $17; + $32 = $31 ^ -1; + $33 = HEAP32[5028]|0; + $34 = $33 & $32; + HEAP32[5028] = $34; + $$1 = $11;$$1418 = $12; + break; + } + $35 = ($22|0)==($24|0); + if ($35) { + $$pre25 = ((($22)) + 8|0); + $$pre$phi26Z2D = $$pre25; + } else { + $36 = ($22>>>0)<($13>>>0); + if ($36) { + _abort(); + // unreachable; + } + $37 = ((($22)) + 8|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==($11|0); + if ($39) { + $$pre$phi26Z2D = $37; + } else { + _abort(); + // unreachable; + } + } + $40 = ((($20)) + 12|0); + HEAP32[$40>>2] = $22; + HEAP32[$$pre$phi26Z2D>>2] = $20; + $$1 = $11;$$1418 = $12; + break; + } + $41 = ((($11)) + 24|0); + $42 = HEAP32[$41>>2]|0; + $43 = ((($11)) + 12|0); + $44 = HEAP32[$43>>2]|0; + $45 = ($44|0)==($11|0); + do { + if ($45) { + $55 = ((($11)) + 16|0); + $56 = ((($55)) + 4|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==(0|0); + if ($58) { + $59 = HEAP32[$55>>2]|0; + $60 = ($59|0)==(0|0); + if ($60) { + $$3 = 0; + break; + } else { + $$1426 = $59;$$1429 = $55; + } + } else { + $$1426 = $57;$$1429 = $56; + } + while(1) { + $61 = ((($$1426)) + 20|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $$1426 = $62;$$1429 = $61; + continue; + } + $64 = ((($$1426)) + 16|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if ($66) { + break; + } else { + $$1426 = $65;$$1429 = $64; + } + } + $67 = ($$1429>>>0)<($13>>>0); + if ($67) { + _abort(); + // unreachable; + } else { + HEAP32[$$1429>>2] = 0; + $$3 = $$1426; + break; + } + } else { + $46 = ((($11)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($47>>>0)<($13>>>0); + if ($48) { + _abort(); + // unreachable; + } + $49 = ((($47)) + 12|0); + $50 = HEAP32[$49>>2]|0; + $51 = ($50|0)==($11|0); + if (!($51)) { + _abort(); + // unreachable; + } + $52 = ((($44)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($53|0)==($11|0); + if ($54) { + HEAP32[$49>>2] = $44; + HEAP32[$52>>2] = $47; + $$3 = $44; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $68 = ($42|0)==(0|0); + if ($68) { + $$1 = $11;$$1418 = $12; + } else { + $69 = ((($11)) + 28|0); + $70 = HEAP32[$69>>2]|0; + $71 = (20416 + ($70<<2)|0); + $72 = HEAP32[$71>>2]|0; + $73 = ($11|0)==($72|0); + do { + if ($73) { + HEAP32[$71>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $74 = 1 << $70; + $75 = $74 ^ -1; + $76 = HEAP32[(20116)>>2]|0; + $77 = $76 & $75; + HEAP32[(20116)>>2] = $77; + $$1 = $11;$$1418 = $12; + break L1; + } + } else { + $78 = HEAP32[(20128)>>2]|0; + $79 = ($42>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } else { + $80 = ((($42)) + 16|0); + $81 = HEAP32[$80>>2]|0; + $not$1 = ($81|0)!=($11|0); + $$sink2 = $not$1&1; + $82 = (((($42)) + 16|0) + ($$sink2<<2)|0); + HEAP32[$82>>2] = $$3; + $83 = ($$3|0)==(0|0); + if ($83) { + $$1 = $11;$$1418 = $12; + break L1; + } else { + break; + } + } + } + } while(0); + $84 = HEAP32[(20128)>>2]|0; + $85 = ($$3>>>0)<($84>>>0); + if ($85) { + _abort(); + // unreachable; + } + $86 = ((($$3)) + 24|0); + HEAP32[$86>>2] = $42; + $87 = ((($11)) + 16|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0|0); + do { + if (!($89)) { + $90 = ($88>>>0)<($84>>>0); + if ($90) { + _abort(); + // unreachable; + } else { + $91 = ((($$3)) + 16|0); + HEAP32[$91>>2] = $88; + $92 = ((($88)) + 24|0); + HEAP32[$92>>2] = $$3; + break; + } + } + } while(0); + $93 = ((($87)) + 4|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)==(0|0); + if ($95) { + $$1 = $11;$$1418 = $12; + } else { + $96 = HEAP32[(20128)>>2]|0; + $97 = ($94>>>0)<($96>>>0); + if ($97) { + _abort(); + // unreachable; + } else { + $98 = ((($$3)) + 20|0); + HEAP32[$98>>2] = $94; + $99 = ((($94)) + 24|0); + HEAP32[$99>>2] = $$3; + $$1 = $11;$$1418 = $12; + break; + } + } + } + } else { + $$1 = $0;$$1418 = $1; + } + } while(0); + $108 = HEAP32[(20128)>>2]|0; + $109 = ($2>>>0)<($108>>>0); + if ($109) { + _abort(); + // unreachable; + } + $110 = ((($2)) + 4|0); + $111 = HEAP32[$110>>2]|0; + $112 = $111 & 2; + $113 = ($112|0)==(0); + if ($113) { + $114 = HEAP32[(20136)>>2]|0; + $115 = ($2|0)==($114|0); + $116 = HEAP32[(20132)>>2]|0; + if ($115) { + $117 = HEAP32[(20124)>>2]|0; + $118 = (($117) + ($$1418))|0; + HEAP32[(20124)>>2] = $118; + HEAP32[(20136)>>2] = $$1; + $119 = $118 | 1; + $120 = ((($$1)) + 4|0); + HEAP32[$120>>2] = $119; + $121 = ($$1|0)==($116|0); + if (!($121)) { + return; + } + HEAP32[(20132)>>2] = 0; + HEAP32[(20120)>>2] = 0; + return; + } + $122 = ($2|0)==($116|0); + if ($122) { + $123 = HEAP32[(20120)>>2]|0; + $124 = (($123) + ($$1418))|0; + HEAP32[(20120)>>2] = $124; + HEAP32[(20132)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = (($$1) + ($124)|0); + HEAP32[$127>>2] = $124; + return; + } + $128 = $111 & -8; + $129 = (($128) + ($$1418))|0; + $130 = $111 >>> 3; + $131 = ($111>>>0)<(256); + L96: do { + if ($131) { + $132 = ((($2)) + 8|0); + $133 = HEAP32[$132>>2]|0; + $134 = ((($2)) + 12|0); + $135 = HEAP32[$134>>2]|0; + $136 = $130 << 1; + $137 = (20152 + ($136<<2)|0); + $138 = ($133|0)==($137|0); + if (!($138)) { + $139 = ($133>>>0)<($108>>>0); + if ($139) { + _abort(); + // unreachable; + } + $140 = ((($133)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = ($141|0)==($2|0); + if (!($142)) { + _abort(); + // unreachable; + } + } + $143 = ($135|0)==($133|0); + if ($143) { + $144 = 1 << $130; + $145 = $144 ^ -1; + $146 = HEAP32[5028]|0; + $147 = $146 & $145; + HEAP32[5028] = $147; + break; + } + $148 = ($135|0)==($137|0); + if ($148) { + $$pre23 = ((($135)) + 8|0); + $$pre$phi24Z2D = $$pre23; + } else { + $149 = ($135>>>0)<($108>>>0); + if ($149) { + _abort(); + // unreachable; + } + $150 = ((($135)) + 8|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==($2|0); + if ($152) { + $$pre$phi24Z2D = $150; + } else { + _abort(); + // unreachable; + } + } + $153 = ((($133)) + 12|0); + HEAP32[$153>>2] = $135; + HEAP32[$$pre$phi24Z2D>>2] = $133; + } else { + $154 = ((($2)) + 24|0); + $155 = HEAP32[$154>>2]|0; + $156 = ((($2)) + 12|0); + $157 = HEAP32[$156>>2]|0; + $158 = ($157|0)==($2|0); + do { + if ($158) { + $168 = ((($2)) + 16|0); + $169 = ((($168)) + 4|0); + $170 = HEAP32[$169>>2]|0; + $171 = ($170|0)==(0|0); + if ($171) { + $172 = HEAP32[$168>>2]|0; + $173 = ($172|0)==(0|0); + if ($173) { + $$3435 = 0; + break; + } else { + $$1433 = $172;$$1437 = $168; + } + } else { + $$1433 = $170;$$1437 = $169; + } + while(1) { + $174 = ((($$1433)) + 20|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==(0|0); + if (!($176)) { + $$1433 = $175;$$1437 = $174; + continue; + } + $177 = ((($$1433)) + 16|0); + $178 = HEAP32[$177>>2]|0; + $179 = ($178|0)==(0|0); + if ($179) { + break; + } else { + $$1433 = $178;$$1437 = $177; + } + } + $180 = ($$1437>>>0)<($108>>>0); + if ($180) { + _abort(); + // unreachable; + } else { + HEAP32[$$1437>>2] = 0; + $$3435 = $$1433; + break; + } + } else { + $159 = ((($2)) + 8|0); + $160 = HEAP32[$159>>2]|0; + $161 = ($160>>>0)<($108>>>0); + if ($161) { + _abort(); + // unreachable; + } + $162 = ((($160)) + 12|0); + $163 = HEAP32[$162>>2]|0; + $164 = ($163|0)==($2|0); + if (!($164)) { + _abort(); + // unreachable; + } + $165 = ((($157)) + 8|0); + $166 = HEAP32[$165>>2]|0; + $167 = ($166|0)==($2|0); + if ($167) { + HEAP32[$162>>2] = $157; + HEAP32[$165>>2] = $160; + $$3435 = $157; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $181 = ($155|0)==(0|0); + if (!($181)) { + $182 = ((($2)) + 28|0); + $183 = HEAP32[$182>>2]|0; + $184 = (20416 + ($183<<2)|0); + $185 = HEAP32[$184>>2]|0; + $186 = ($2|0)==($185|0); + do { + if ($186) { + HEAP32[$184>>2] = $$3435; + $cond17 = ($$3435|0)==(0|0); + if ($cond17) { + $187 = 1 << $183; + $188 = $187 ^ -1; + $189 = HEAP32[(20116)>>2]|0; + $190 = $189 & $188; + HEAP32[(20116)>>2] = $190; + break L96; + } + } else { + $191 = HEAP32[(20128)>>2]|0; + $192 = ($155>>>0)<($191>>>0); + if ($192) { + _abort(); + // unreachable; + } else { + $193 = ((($155)) + 16|0); + $194 = HEAP32[$193>>2]|0; + $not$ = ($194|0)!=($2|0); + $$sink4 = $not$&1; + $195 = (((($155)) + 16|0) + ($$sink4<<2)|0); + HEAP32[$195>>2] = $$3435; + $196 = ($$3435|0)==(0|0); + if ($196) { + break L96; + } else { + break; + } + } + } + } while(0); + $197 = HEAP32[(20128)>>2]|0; + $198 = ($$3435>>>0)<($197>>>0); + if ($198) { + _abort(); + // unreachable; + } + $199 = ((($$3435)) + 24|0); + HEAP32[$199>>2] = $155; + $200 = ((($2)) + 16|0); + $201 = HEAP32[$200>>2]|0; + $202 = ($201|0)==(0|0); + do { + if (!($202)) { + $203 = ($201>>>0)<($197>>>0); + if ($203) { + _abort(); + // unreachable; + } else { + $204 = ((($$3435)) + 16|0); + HEAP32[$204>>2] = $201; + $205 = ((($201)) + 24|0); + HEAP32[$205>>2] = $$3435; + break; + } + } + } while(0); + $206 = ((($200)) + 4|0); + $207 = HEAP32[$206>>2]|0; + $208 = ($207|0)==(0|0); + if (!($208)) { + $209 = HEAP32[(20128)>>2]|0; + $210 = ($207>>>0)<($209>>>0); + if ($210) { + _abort(); + // unreachable; + } else { + $211 = ((($$3435)) + 20|0); + HEAP32[$211>>2] = $207; + $212 = ((($207)) + 24|0); + HEAP32[$212>>2] = $$3435; + break; + } + } + } + } + } while(0); + $213 = $129 | 1; + $214 = ((($$1)) + 4|0); + HEAP32[$214>>2] = $213; + $215 = (($$1) + ($129)|0); + HEAP32[$215>>2] = $129; + $216 = HEAP32[(20132)>>2]|0; + $217 = ($$1|0)==($216|0); + if ($217) { + HEAP32[(20120)>>2] = $129; + return; + } else { + $$2 = $129; + } + } else { + $218 = $111 & -2; + HEAP32[$110>>2] = $218; + $219 = $$1418 | 1; + $220 = ((($$1)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$1) + ($$1418)|0); + HEAP32[$221>>2] = $$1418; + $$2 = $$1418; + } + $222 = $$2 >>> 3; + $223 = ($$2>>>0)<(256); + if ($223) { + $224 = $222 << 1; + $225 = (20152 + ($224<<2)|0); + $226 = HEAP32[5028]|0; + $227 = 1 << $222; + $228 = $226 & $227; + $229 = ($228|0)==(0); + if ($229) { + $230 = $226 | $227; + HEAP32[5028] = $230; + $$pre = ((($225)) + 8|0); + $$0438 = $225;$$pre$phiZ2D = $$pre; + } else { + $231 = ((($225)) + 8|0); + $232 = HEAP32[$231>>2]|0; + $233 = HEAP32[(20128)>>2]|0; + $234 = ($232>>>0)<($233>>>0); + if ($234) { + _abort(); + // unreachable; + } else { + $$0438 = $232;$$pre$phiZ2D = $231; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $235 = ((($$0438)) + 12|0); + HEAP32[$235>>2] = $$1; + $236 = ((($$1)) + 8|0); + HEAP32[$236>>2] = $$0438; + $237 = ((($$1)) + 12|0); + HEAP32[$237>>2] = $225; + return; + } + $238 = $$2 >>> 8; + $239 = ($238|0)==(0); + if ($239) { + $$0431 = 0; + } else { + $240 = ($$2>>>0)>(16777215); + if ($240) { + $$0431 = 31; + } else { + $241 = (($238) + 1048320)|0; + $242 = $241 >>> 16; + $243 = $242 & 8; + $244 = $238 << $243; + $245 = (($244) + 520192)|0; + $246 = $245 >>> 16; + $247 = $246 & 4; + $248 = $247 | $243; + $249 = $244 << $247; + $250 = (($249) + 245760)|0; + $251 = $250 >>> 16; + $252 = $251 & 2; + $253 = $248 | $252; + $254 = (14 - ($253))|0; + $255 = $249 << $252; + $256 = $255 >>> 15; + $257 = (($254) + ($256))|0; + $258 = $257 << 1; + $259 = (($257) + 7)|0; + $260 = $$2 >>> $259; + $261 = $260 & 1; + $262 = $261 | $258; + $$0431 = $262; + } + } + $263 = (20416 + ($$0431<<2)|0); + $264 = ((($$1)) + 28|0); + HEAP32[$264>>2] = $$0431; + $265 = ((($$1)) + 16|0); + $266 = ((($$1)) + 20|0); + HEAP32[$266>>2] = 0; + HEAP32[$265>>2] = 0; + $267 = HEAP32[(20116)>>2]|0; + $268 = 1 << $$0431; + $269 = $267 & $268; + $270 = ($269|0)==(0); + if ($270) { + $271 = $267 | $268; + HEAP32[(20116)>>2] = $271; + HEAP32[$263>>2] = $$1; + $272 = ((($$1)) + 24|0); + HEAP32[$272>>2] = $263; + $273 = ((($$1)) + 12|0); + HEAP32[$273>>2] = $$1; + $274 = ((($$1)) + 8|0); + HEAP32[$274>>2] = $$1; + return; + } + $275 = HEAP32[$263>>2]|0; + $276 = ($$0431|0)==(31); + $277 = $$0431 >>> 1; + $278 = (25 - ($277))|0; + $279 = $276 ? 0 : $278; + $280 = $$2 << $279; + $$0419 = $280;$$0420 = $275; + while(1) { + $281 = ((($$0420)) + 4|0); + $282 = HEAP32[$281>>2]|0; + $283 = $282 & -8; + $284 = ($283|0)==($$2|0); + if ($284) { + label = 121; + break; + } + $285 = $$0419 >>> 31; + $286 = (((($$0420)) + 16|0) + ($285<<2)|0); + $287 = $$0419 << 1; + $288 = HEAP32[$286>>2]|0; + $289 = ($288|0)==(0|0); + if ($289) { + label = 118; + break; + } else { + $$0419 = $287;$$0420 = $288; + } + } + if ((label|0) == 118) { + $290 = HEAP32[(20128)>>2]|0; + $291 = ($286>>>0)<($290>>>0); + if ($291) { + _abort(); + // unreachable; + } + HEAP32[$286>>2] = $$1; + $292 = ((($$1)) + 24|0); + HEAP32[$292>>2] = $$0420; + $293 = ((($$1)) + 12|0); + HEAP32[$293>>2] = $$1; + $294 = ((($$1)) + 8|0); + HEAP32[$294>>2] = $$1; + return; + } + else if ((label|0) == 121) { + $295 = ((($$0420)) + 8|0); + $296 = HEAP32[$295>>2]|0; + $297 = HEAP32[(20128)>>2]|0; + $298 = ($296>>>0)>=($297>>>0); + $not$19 = ($$0420>>>0)>=($297>>>0); + $299 = $298 & $not$19; + if (!($299)) { + _abort(); + // unreachable; + } + $300 = ((($296)) + 12|0); + HEAP32[$300>>2] = $$1; + HEAP32[$295>>2] = $$1; + $301 = ((($$1)) + 8|0); + HEAP32[$301>>2] = $296; + $302 = ((($$1)) + 12|0); + HEAP32[$302>>2] = $$0420; + $303 = ((($$1)) + 24|0); + HEAP32[$303>>2] = 0; + return; + } +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_stbi__stdio_skip,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,_stbi__stdio_eof,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,_stbi__stdio_read,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _memset: _memset, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _llvm_cttz_i32: _llvm_cttz_i32, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _memset = Module["_memset"] = asm["_memset"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_cubicmap.png b/examples/web/models/models_cubicmap.png new file mode 100644 index 0000000..9cb854c Binary files /dev/null and b/examples/web/models/models_cubicmap.png differ diff --git a/examples/web/models/models_geometric_shapes.c b/examples/web/models/models_geometric_shapes.c new file mode 100644 index 0000000..9247f51 --- /dev/null +++ b/examples/web/models/models_geometric_shapes.c @@ -0,0 +1,102 @@ +/******************************************************************************************* +* +* raylib [models] example - Draw some basic geometric shapes (cube, sphere, cylinder...) (adapted for HTML5 platform) +* +* This example has been created using raylib 1.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int screenWidth = 800; +int screenHeight = 450; + +// Define the camera to look into our 3d world +Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes"); + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED); + DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD); + DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON); + + DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN); + DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME); + + DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE); + DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE); + DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN); + + DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD); + DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK); + + DrawGrid(10, 1.0f); // Draw a grid + + End3dMode(); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- +} \ No newline at end of file diff --git a/examples/web/models/models_geometric_shapes.html b/examples/web/models/models_geometric_shapes.html new file mode 100644 index 0000000..9298b16 --- /dev/null +++ b/examples/web/models/models_geometric_shapes.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_geometric_shapes.js b/examples/web/models/models_geometric_shapes.js new file mode 100644 index 0000000..7520291 --- /dev/null +++ b/examples/web/models/models_geometric_shapes.js @@ -0,0 +1,25328 @@ +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + +var /* show errors on likely calls to FS when it was not included */ FS = { + error: function() { + abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); + }, + init: function() { FS.error() }, + createDataFile: function() { FS.error() }, + createPreloadedFile: function() { FS.error() }, + createLazyFile: function() { FS.error() }, + open: function() { FS.error() }, + mkdev: function() { FS.error() }, + registerDevice: function() { FS.error() }, + analyzePath: function() { FS.error() }, + loadFilesFromDB: function() { FS.error() }, + + ErrnoError: function ErrnoError() { FS.error() }, +}; +Module['FS_createDataFile'] = FS.createDataFile; +Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 19312; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,0,0,0,0,32,65,0,0,32,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,52,66,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,12,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,99,71,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,103,101,111,109,101,116,114,105,99,32,115,104,97,112,101,115,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,37,50,105,32,70,80,83,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + var SYSCALLS={varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + // hack to support printf in NO_FILESYSTEM + var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + var ret = 0; + if (!___syscall146.buffer) { + ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr + ___syscall146.printChar = function(stream, curr) { + var buffer = ___syscall146.buffers[stream]; + assert(buffer); + if (curr === 0 || curr === 10) { + (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } + }; + } + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + for (var j = 0; j < len; j++) { + ___syscall146.printChar(stream, HEAPU8[ptr+j]); + } + ret += len; + } + return ret; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + + Module["___udivdi3"] = ___udivdi3; + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +JSEvents.staticInit();; +/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "___syscall146": ___syscall146, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_glGetFloatv": _glGetFloatv, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_glGenTextures": _glGenTextures, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var ___syscall146=env.___syscall146; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _emscripten_glHint=env._emscripten_glHint; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _glGenTextures=env._glGenTextures; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[2]|0; + $1 = HEAP32[3]|0; + _InitWindow($0,$1,3524); + _emscripten_set_main_loop((1|0),0,1); + _CloseWindow(); + return 0; +} +function _UpdateDrawFrame() { + var $$byval_copy19 = 0, $$byval_copy20 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0; + var stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $$byval_copy20 = sp + 136|0; + $$byval_copy19 = sp + 120|0; + $0 = sp + 216|0; + $1 = sp + 108|0; + $2 = sp + 212|0; + $3 = sp + 96|0; + $4 = sp + 208|0; + $5 = sp + 84|0; + $6 = sp + 204|0; + $7 = sp + 72|0; + $8 = sp + 200|0; + $9 = sp + 60|0; + $10 = sp + 196|0; + $11 = sp + 48|0; + $12 = sp + 192|0; + $13 = sp + 36|0; + $14 = sp + 188|0; + $15 = sp + 24|0; + $16 = sp + 184|0; + $17 = sp + 12|0; + $18 = sp + 180|0; + $19 = sp; + $20 = sp + 176|0; + _BeginDrawing(); + HEAP8[$0>>0] = -11; + $21 = ((($0)) + 1|0); + HEAP8[$21>>0] = -11; + $22 = ((($0)) + 2|0); + HEAP8[$22>>0] = -11; + $23 = ((($0)) + 3|0); + HEAP8[$23>>0] = -1; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$0+3>>0]|0; + _ClearBackground($$byval_copy20); + dest=$$byval_copy20; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($$byval_copy20); + HEAPF32[$1>>2] = -4.0; + $24 = ((($1)) + 4|0); + HEAPF32[$24>>2] = 0.0; + $25 = ((($1)) + 8|0); + HEAPF32[$25>>2] = 2.0; + HEAP8[$2>>0] = -26; + $26 = ((($2)) + 1|0); + HEAP8[$26>>0] = 41; + $27 = ((($2)) + 2|0); + HEAP8[$27>>0] = 55; + $28 = ((($2)) + 3|0); + HEAP8[$28>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$2+3>>0]|0; + _DrawCube($$byval_copy19,2.0,5.0,2.0,$$byval_copy20); + HEAPF32[$3>>2] = -4.0; + $29 = ((($3)) + 4|0); + HEAPF32[$29>>2] = 0.0; + $30 = ((($3)) + 8|0); + HEAPF32[$30>>2] = 2.0; + HEAP8[$4>>0] = -1; + $31 = ((($4)) + 1|0); + HEAP8[$31>>0] = -53; + $32 = ((($4)) + 2|0); + HEAP8[$32>>0] = 0; + $33 = ((($4)) + 3|0); + HEAP8[$33>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$4+3>>0]|0; + _DrawCubeWires($$byval_copy19,2.0,5.0,2.0,$$byval_copy20); + HEAPF32[$5>>2] = -4.0; + $34 = ((($5)) + 4|0); + HEAPF32[$34>>2] = 0.0; + $35 = ((($5)) + 8|0); + HEAPF32[$35>>2] = -2.0; + HEAP8[$6>>0] = -66; + $36 = ((($6)) + 1|0); + HEAP8[$36>>0] = 33; + $37 = ((($6)) + 2|0); + HEAP8[$37>>0] = 55; + $38 = ((($6)) + 3|0); + HEAP8[$38>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$6>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$6+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$6+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$6+3>>0]|0; + _DrawCubeWires($$byval_copy19,3.0,6.0,2.0,$$byval_copy20); + HEAPF32[$7>>2] = -1.0; + $39 = ((($7)) + 4|0); + HEAPF32[$39>>2] = 0.0; + $40 = ((($7)) + 8|0); + HEAPF32[$40>>2] = -2.0; + HEAP8[$8>>0] = 0; + $41 = ((($8)) + 1|0); + HEAP8[$41>>0] = -28; + $42 = ((($8)) + 2|0); + HEAP8[$42>>0] = 48; + $43 = ((($8)) + 3|0); + HEAP8[$43>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$7+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$8>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$8+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$8+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$8+3>>0]|0; + _DrawSphere($$byval_copy19,1.0,$$byval_copy20); + HEAPF32[$9>>2] = 1.0; + $44 = ((($9)) + 4|0); + HEAPF32[$44>>2] = 0.0; + $45 = ((($9)) + 8|0); + HEAPF32[$45>>2] = 2.0; + HEAP8[$10>>0] = 0; + $46 = ((($10)) + 1|0); + HEAP8[$46>>0] = -98; + $47 = ((($10)) + 2|0); + HEAP8[$47>>0] = 47; + $48 = ((($10)) + 3|0); + HEAP8[$48>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$9+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$10>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$10+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$10+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$10+3>>0]|0; + _DrawSphereWires($$byval_copy19,2.0,16,16,$$byval_copy20); + HEAPF32[$11>>2] = 4.0; + $49 = ((($11)) + 4|0); + HEAPF32[$49>>2] = 0.0; + $50 = ((($11)) + 8|0); + HEAPF32[$50>>2] = -2.0; + HEAP8[$12>>0] = 102; + $51 = ((($12)) + 1|0); + HEAP8[$51>>0] = -65; + $52 = ((($12)) + 2|0); + HEAP8[$52>>0] = -1; + $53 = ((($12)) + 3|0); + HEAP8[$53>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$11>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$11+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$11+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$12>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$12+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$12+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$12+3>>0]|0; + _DrawCylinder($$byval_copy19,1.0,2.0,3.0,4,$$byval_copy20); + HEAPF32[$13>>2] = 4.0; + $54 = ((($13)) + 4|0); + HEAPF32[$54>>2] = 0.0; + $55 = ((($13)) + 8|0); + HEAPF32[$55>>2] = -2.0; + HEAP8[$14>>0] = 0; + $56 = ((($14)) + 1|0); + HEAP8[$56>>0] = 82; + $57 = ((($14)) + 2|0); + HEAP8[$57>>0] = -84; + $58 = ((($14)) + 3|0); + HEAP8[$58>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$13>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$13+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$14>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$14+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$14+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$14+3>>0]|0; + _DrawCylinderWires($$byval_copy19,1.0,2.0,3.0,4,$$byval_copy20); + HEAPF32[$15>>2] = 4.5; + $59 = ((($15)) + 4|0); + HEAPF32[$59>>2] = -1.0; + $60 = ((($15)) + 8|0); + HEAPF32[$60>>2] = 2.0; + HEAP8[$16>>0] = 127; + $61 = ((($16)) + 1|0); + HEAP8[$61>>0] = 106; + $62 = ((($16)) + 2|0); + HEAP8[$62>>0] = 79; + $63 = ((($16)) + 3|0); + HEAP8[$63>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$15>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$15+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$16>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$16+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$16+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$16+3>>0]|0; + _DrawCylinderWires($$byval_copy19,1.0,1.0,2.0,6,$$byval_copy20); + HEAPF32[$17>>2] = 1.0; + $64 = ((($17)) + 4|0); + HEAPF32[$64>>2] = 0.0; + $65 = ((($17)) + 8|0); + HEAPF32[$65>>2] = -4.0; + HEAP8[$18>>0] = -1; + $66 = ((($18)) + 1|0); + HEAP8[$66>>0] = -53; + $67 = ((($18)) + 2|0); + HEAP8[$67>>0] = 0; + $68 = ((($18)) + 3|0); + HEAP8[$68>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$17>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$17+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$18>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$18+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$18+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$18+3>>0]|0; + _DrawCylinder($$byval_copy19,0.0,1.5,3.0,8,$$byval_copy20); + HEAPF32[$19>>2] = 1.0; + $69 = ((($19)) + 4|0); + HEAPF32[$69>>2] = 0.0; + $70 = ((($19)) + 8|0); + HEAPF32[$70>>2] = -4.0; + HEAP8[$20>>0] = -1; + $71 = ((($20)) + 1|0); + HEAP8[$71>>0] = 109; + $72 = ((($20)) + 2|0); + HEAP8[$72>>0] = -62; + $73 = ((($20)) + 3|0); + HEAP8[$73>>0] = -1; + ;HEAP32[$$byval_copy19>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy19+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy19+8>>2]=HEAP32[$19+8>>2]|0; + ;HEAP8[$$byval_copy20>>0]=HEAP8[$20>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$20+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$20+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$20+3>>0]|0; + _DrawCylinderWires($$byval_copy19,0.0,1.5,3.0,8,$$byval_copy20); + _DrawGrid(10,1.0); + _End3dMode(); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[3517] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 13792; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 13832; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[3458]; + $111 = +HEAPF32[3448]; + $112 = $110 - $111; + HEAPF32[3460] = $112; + $113 = +HEAPF32[(13836)>>2]; + $114 = +HEAPF32[(13796)>>2]; + $115 = $113 - $114; + HEAPF32[(13844)>>2] = $115; + HEAP32[3516] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13824>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13824+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13848>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13848+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[3522] = $116; + $117 = 13824; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 13792; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 13848; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 13832; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 13824; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 13848; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[3462]; + $160 = +HEAPF32[3456]; + $161 = $159 - $160; + HEAPF32[3460] = $161; + $162 = +HEAPF32[(13852)>>2]; + $163 = +HEAPF32[(13828)>>2]; + $164 = $162 - $163; + HEAPF32[(13844)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13792>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13792+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13824>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13824+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13832>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13832+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13848>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13848+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13824>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13824+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13848>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13848+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[3522]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[3516] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13824>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13824+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13848>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13848+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[3523] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[3522] = 0.0; + HEAPF32[3523] = 0.0; + HEAPF32[3460] = 0.0; + HEAPF32[(13844)>>2] = 0.0; + HEAP32[3517] = 0; + HEAP32[3516] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[3518]|0; + $7 = (($6) + 1)|0; + HEAP32[3518] = $7; + $8 = HEAP32[3516]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13792>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13792+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[3516] = 2; + HEAP32[3518] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[3518] = 1; + HEAP32[3516] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 13792; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 13800; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 13808; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[14] = $34; + HEAPF32[3454] = 0.0; + HEAPF32[(13820)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[3516]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 13808; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13792>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13792+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13808>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13808+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[3519] = $49; + HEAP32[3520] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[14]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13792>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13792+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13808>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13808+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[3521] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[3519] = 0.0; + HEAPF32[3521] = 0.0; + $$sink10 = 0; + } + HEAP32[3516] = $$sink10; + HEAPF32[3450] = 0.0; + HEAPF32[(13804)>>2] = 0.0; + HEAP32[3517] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[3520]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[3520] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 13824; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[3516]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[13792>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[13792+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[13824>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[13824+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[3516] = 8; + } + } + $82 = +HEAPF32[3456]; + $83 = +HEAPF32[3450]; + $84 = $82 - $83; + HEAPF32[3454] = $84; + $85 = +HEAPF32[(13828)>>2]; + $86 = +HEAPF32[(13804)>>2]; + $87 = $85 - $86; + HEAPF32[(13820)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3516]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[3517]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[3516] = 4; + } + $4 = HEAP32[3516]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[3516] = 0; + return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 13856; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3526]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3525]|0; + return ($0|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,3567,$vararg_buffer); + HEAP32[3528] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(4|0))|0); + (_emscripten_set_keypress_callback((3596|0),(0|0),1,(5|0))|0); + (_emscripten_set_click_callback((3596|0),(0|0),1,(6|0))|0); + (_emscripten_set_touchstart_callback((3596|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchend_callback((3596|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchmove_callback((3596|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchcancel_callback((3596|0),(0|0),1,(7|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(8|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(8|0))|0); + $3 = HEAP32[3526]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[3464] = $5; + $6 = HEAP32[3525]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(13860)>>2] = $8; + $9 = HEAP32[3529]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[13896>>0]=HEAP8[8125>>0]|0;HEAP8[13896+1>>0]=HEAP8[8125+1>>0]|0;HEAP8[13896+2>>0]=HEAP8[8125+2>>0]|0;HEAP8[13896+3>>0]=HEAP8[8125+3>>0]|0;HEAP8[13896+4>>0]=HEAP8[8125+4>>0]|0;HEAP8[13896+5>>0]=HEAP8[8125+5>>0]|0;HEAP8[13896+6>>0]=HEAP8[8125+6>>0]|0; + break; + } + case 1: { + $3 = 13896; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=13896; src=8132; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 13896; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(13896,$1)|0); + $strlen = (_strlen(13896)|0); + $endptr = (13896 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(13896,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[3526] = $0; + HEAP32[3525] = $1; + _MatrixIdentity($2); + dest=14192; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((1|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,4267,$vararg_buffer); + } + $6 = HEAP32[3526]|0; + HEAP32[3564] = $6; + $7 = HEAP32[3525]|0; + HEAP32[3565] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[16916]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[16916]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[16916]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,4293,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[3566]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[3526]|0; + $48 = HEAP32[3525]|0; + $49 = HEAP32[3528]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[3524] = $50; + $51 = HEAP32[3526]|0; + HEAP32[3567] = $51; + $52 = HEAP32[3525]|0; + HEAP32[3568] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[3526]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[3525]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[3564] = $31; + HEAP32[3565] = $34; + } + } while(0); + $38 = HEAP32[3564]|0; + $39 = HEAP32[3565]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,4318,$vararg_buffer3); + $40 = HEAP32[3564]|0; + $41 = HEAP32[3565]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[3564]|0; + $43 = HEAP32[3565]|0; + $44 = HEAP32[3528]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[3524] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,4356,$vararg_buffer6); + } else { + _TraceLog(0,4389,$vararg_buffer8); + $55 = HEAP32[3567]|0; + $56 = HEAP32[3568]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,4429,$vararg_buffer10); + $57 = HEAP32[3526]|0; + $58 = HEAP32[3525]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,4450,$vararg_buffer14); + $59 = HEAP32[3569]|0; + $60 = HEAP32[3570]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,4471,$vararg_buffer18); + } + $61 = HEAP32[3524]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[3524]|0; + (_glfwSetCursorEnterCallback(($62|0),(2|0))|0); + $63 = HEAP32[3524]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[3524]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[3524]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[3524]|0; + (_glfwSetCharCallback(($66|0),(3|0))|0); + $67 = HEAP32[3524]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[3524]|0; + (_glfwSetWindowIconifyCallback(($68|0),(4|0))|0); + $69 = HEAP32[3524]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[16916]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[3526]|0; + $74 = HEAP32[3525]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[3567]|0; + $76 = HEAP32[3569]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[3568]|0; + $80 = HEAP32[3570]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,4496,$vararg_buffer22); + $73 = HEAP32[3526]|0; + $74 = HEAP32[3525]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[3567]|0; + $76 = HEAP32[3569]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[3568]|0; + $80 = HEAP32[3570]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(14160)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (60 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[14136>>2]=HEAP32[$1>>2]|0;HEAP32[14136+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[14136+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[14136+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[14136+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(14160)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(14164)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(14156)>>2] = $23; + $24 = HEAP32[3534]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,3791,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(14140)>>2]|0; + $10 = HEAP32[(14160)>>2]|0; + $11 = HEAP32[(14164)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2108 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(14156)>>2] = $23; + $24 = HEAP32[3534]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,3791,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[1736] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,3724,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,3655,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,3648)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 13872; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (13880); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (14120 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[1733] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,3604,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[3529] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,4167,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[3542]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,3836,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[3543]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,3880,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[3544]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,3925,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[3545]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,3970,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[3546]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,4015,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[3542]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[3542]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[3542]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[3542]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[3543]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[3544]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[3544]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[3545]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[3545]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[3546]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[3546]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,4060,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[3547]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,4138,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,4089,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,4221,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,8087,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[3526]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[3525]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[3567] = $3; + HEAP32[3568] = $5; + HEAP32[3569] = 0; + HEAP32[3570] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,8021,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[3526]|0; + $36 = (+($35|0)); + $37 = HEAP32[3525]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[3567] = $45; + HEAP32[3568] = $37; + $46 = (($45) - ($35))|0; + HEAP32[3569] = $46; + $$sink1 = 0; + } else { + HEAP32[3567] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[3568] = $42; + HEAP32[3569] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[3570] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[3525]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,7878,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[3526]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[3525]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[3567] = $23; + HEAP32[3568] = $1; + $24 = (($0) - ($23))|0; + HEAP32[3569] = $24; + $$sink = 0; + } else { + HEAP32[3567] = $0; + $17 = HEAP32[3525]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[3568] = $20; + HEAP32[3569] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[3570] = $$sink; + $25 = HEAP32[3567]|0; + $26 = (+($25|0)); + $27 = HEAP32[3526]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=14192; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[3567] = $0; + HEAP32[3568] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,7956,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[3526] = $1; + HEAP32[3525] = $2; + HEAP32[3567] = $1; + HEAP32[3568] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[752]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (16923 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[751] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (16917 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 13872; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[751] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[3940] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[3939] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,4519,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,4537,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,4555,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,4573,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,4591)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,4593,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,4628)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[3605] = 1; + $27 = (_eglGetProcAddress((4655|0))|0); + HEAP32[3606] = $27; + $28 = (_eglGetProcAddress((4676|0))|0); + HEAP32[3607] = $28; + $29 = (_eglGetProcAddress((4697|0))|0); + HEAP32[3608] = $29; + } + $30 = (_strcmp($24,4721)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[3547] = 1; + } + $32 = (_strcmp($24,4741)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,4773)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,4806)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[3542] = 1; + } + $39 = (_strcmp($24,4846)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,4882)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[3543] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,4915)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[3544] = 1; + } + $47 = (_strcmp($44,4940)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[3545] = 1; + } + $49 = (_strcmp($44,4973)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[3546] = 1; + } + $51 = (_strcmp($44,5009)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[3609] = 1; + _glGetFloatv(34047,(14440|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,5043)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[3611] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[3605]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,5146,$vararg_buffer15); + } else { + _TraceLog(0,5071,$vararg_buffer13); + } + $57 = HEAP32[3547]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,5282,$vararg_buffer19); + } else { + _TraceLog(0,5207,$vararg_buffer17); + } + $59 = HEAP32[3542]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,5374,$vararg_buffer21); + } + $61 = HEAP32[3543]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,5420,$vararg_buffer23); + } + $63 = HEAP32[3544]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,5467,$vararg_buffer25); + } + $65 = HEAP32[3545]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,5518,$vararg_buffer27); + } + $67 = HEAP32[3546]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,5565,$vararg_buffer29); + } + $69 = HEAP32[3609]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[3610]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,5612,$vararg_buffer31); + } + $73 = HEAP32[3611]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,5678,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[3612] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,5782,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,5731,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=14452; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=14508; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[3641] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[3641]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[3642] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[3643] = 1; + $85 = HEAP32[3612]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[3644] = 4; + _MatrixIdentity($4); + dest=14580; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14644); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14708); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14772); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14836); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14900); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(14964); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15028); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15092); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15156); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15220); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15284); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15348); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15412); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15476); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(15540); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=14288; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=14352; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[3571] = 14352; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[3901] = $0; + HEAP32[3902] = $1; + _TraceLog(0,5821,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3569]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[3570]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[3567]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[3568]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 14288; + label = 3; + break; + } + case 5888: { + $modelview$sink = 14352; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[3571] = $modelview$sink; + } + HEAP32[3604] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[3571]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[3571]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(6397|0),489)|0; + _memcpy(($3|0),(6886|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,7375,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,7327,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(15624)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(15632)>>2] = $1; + HEAP32[(15628)>>2] = 0; + HEAP32[(15636)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(15632)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[3903] = 0; + HEAP32[(15620)>>2] = 0; + HEAP32[(15616)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(15672)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(15680)>>2] = $6; + HEAP32[(15676)>>2] = 0; + HEAP32[(15684)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(15680)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[3915] = 0; + HEAP32[(15668)>>2] = 0; + HEAP32[(15664)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(15720)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(15724)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(15728)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(15732)>>2] = $13; + $14 = HEAP32[(15720)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(15724)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(15728)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(15732)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[3927] = 0; + HEAP32[(15712)>>2] = 0; + HEAP32[(15716)>>2] = 0; + _TraceLog(0,5868,$vararg_buffer); + $20 = HEAP32[3605]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[3606]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(15640)); + $44 = HEAP32[3607]|0; + $45 = HEAP32[(15640)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((15644)|0)); + $46 = HEAP32[(15644)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(15624)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(14512)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(14512)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((15648)|0)); + $50 = HEAP32[(15648)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(15632)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(14532)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(14532)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[3605]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(15644)>>2]|0; + $58 = HEAP32[(15648)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,6006,$vararg_buffer3); + } else { + $56 = HEAP32[(15640)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,5941,$vararg_buffer1); + } + $59 = HEAP32[3605]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[3606]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(15688)); + $62 = HEAP32[3607]|0; + $63 = HEAP32[(15688)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((15692)|0)); + $64 = HEAP32[(15692)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(15672)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(14512)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(14512)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((15696)|0)); + $68 = HEAP32[(15696)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(15680)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(14532)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(14532)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[3605]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(15692)>>2]|0; + $76 = HEAP32[(15696)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,6152,$vararg_buffer10); + } else { + $74 = HEAP32[(15688)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,6083,$vararg_buffer7); + } + $77 = HEAP32[3605]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[3606]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(15736)); + $80 = HEAP32[3607]|0; + $81 = HEAP32[(15736)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((15740)|0)); + $82 = HEAP32[(15740)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(15720)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(14512)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(14512)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((15744)|0)); + $86 = HEAP32[(15744)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(15724)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(14516)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(14516)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((15748)|0)); + $90 = HEAP32[(15748)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(15728)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(14532)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(14532)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((15752)|0)); + $94 = HEAP32[(15752)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(15732)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[3605]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(15740)>>2]|0; + $100 = HEAP32[(15744)>>2]|0; + $101 = HEAP32[(15748)>>2]|0; + $102 = HEAP32[(15752)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,6298,$vararg_buffer17); + } else { + $98 = HEAP32[(15736)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,6233,$vararg_buffer14); + } + $103 = HEAP32[3605]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[3607]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,7631,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,7579,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,7628,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,7732,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,7681,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,7628,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(7423|0)); + _glBindAttribLocation(($20|0),1,(7438|0)); + _glBindAttribLocation(($20|0),2,(7469|0)); + _glBindAttribLocation(($20|0),3,(7496|0)); + _glBindAttribLocation(($20|0),4,(7482|0)); + _glBindAttribLocation(($20|0),5,(7453|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,7784,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,7628,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,7830,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(7423|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(7438|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(7453|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(7469|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(7482|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(7496|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(7508|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(7518|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(7529|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(7540|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(7552|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(7561|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(7570|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (16917 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (16920 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (16917 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (16920 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[3524]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,8142,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[14136>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[14136+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[14136+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[14136+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[14136+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(14164)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(14448|0)); + $0 = HEAP32[3612]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,8169,$vararg_buffer); + $1 = HEAP32[3642]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[3613]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3605]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[3607]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((15644)|0)); + _glDeleteBuffers(1,((15648)|0)); + _glDeleteBuffers(1,((15692)|0)); + _glDeleteBuffers(1,((15696)|0)); + _glDeleteBuffers(1,((15740)|0)); + _glDeleteBuffers(1,((15744)|0)); + _glDeleteBuffers(1,((15748)|0)); + _glDeleteBuffers(1,((15752)|0)); + $3 = HEAP32[3605]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[3608]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(15640)); + $6 = HEAP32[3608]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(15688)); + $7 = HEAP32[3608]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(15736)); + } + $8 = HEAP32[(15624)>>2]|0; + _free($8); + $9 = HEAP32[(15632)>>2]|0; + _free($9); + $10 = HEAP32[(15672)>>2]|0; + _free($10); + $11 = HEAP32[(15680)>>2]|0; + _free($11); + $12 = HEAP32[(15720)>>2]|0; + _free($12); + $13 = HEAP32[(15724)>>2]|0; + _free($13); + $14 = HEAP32[(15728)>>2]|0; + _free($14); + $15 = HEAP32[(15732)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,8234,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[1753] = $0; + $1 = +HEAPF64[1736]; + $2 = $0 - $1; + HEAPF64[1754] = $2; + HEAPF64[1736] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=14192; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(15764); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[3941] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(15768)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(15772)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(15776)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(15780)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(15784)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(15788)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(15792)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(15796)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(15800)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(15804)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(15808)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(15812)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(15816)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(15820)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(15824)>>2] = $31; + return (15764|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[3571]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[1753] = $0; + $1 = +HEAPF64[1736]; + $2 = $0 - $1; + HEAPF64[1755] = $2; + HEAPF64[1736] = $0; + $3 = +HEAPF64[1754]; + $4 = $2 + $3; + HEAPF64[1756] = $4; + $5 = +HEAPF64[1733]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[1753] = $10; + $11 = +HEAPF64[1736]; + $12 = $10 - $11; + HEAPF64[1736] = $10; + $13 = +HEAPF64[1756]; + $14 = $12 + $13; + HEAPF64[1756] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3524]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[751] = -1; + HEAP32[753] = -1; + HEAP32[3957] = 0; + $3 = HEAP32[3524]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[3464] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(13860)>>2] = $7; + _memcpy((17435|0),(16923|0),512)|0; + ;HEAP8[16920>>0]=HEAP8[16917>>0]|0;HEAP8[16920+1>>0]=HEAP8[16917+1>>0]|0;HEAP8[16920+2>>0]=HEAP8[16917+2>>0]|0; + $8 = HEAP32[3940]|0; + HEAP32[3527] = $8; + HEAP32[3940] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (17947 + ($$05160<<5)|0); + $scevgep67 = (18075 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((18075 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[753] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((15832 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[3957] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3903]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[3605]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[3607]|0; + $5 = HEAP32[(15640)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(15644)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[3903]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(15624)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(15648)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(15620)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(15632)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[3915]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[3605]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[3607]|0; + $19 = HEAP32[(15688)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(15692)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[3915]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(15672)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(15696)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(15668)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(15680)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[3927]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[3605]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[3607]|0; + $33 = HEAP32[(15736)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(15740)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[3927]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(15720)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(15744)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[3927]|0; + $40 = $39 << 3; + $41 = HEAP32[(15724)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(15748)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[3927]|0; + $44 = $43 << 2; + $45 = HEAP32[(15728)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[3605]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[3607]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=14288; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=14352; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[3990]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[3903]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[3915]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[3927]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[3627]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=14352; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=14288; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(14536)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(14540)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(14552)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[3903]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[3612]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[3605]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(15644)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(14512)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(14512)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(15648)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(14532)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(14532)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[3607]|0; + $25 = HEAP32[(15640)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[3903]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[3605]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[3915]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[3612]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[3605]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(15692)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(14512)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(14512)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(15696)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(14532)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(14532)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[3607]|0; + $41 = HEAP32[(15688)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[3915]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[3605]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[3927]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[3605]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(15740)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(14512)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(14512)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(15744)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(14516)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(14516)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(15748)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(14532)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(14532)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(15752)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[3607]|0; + $56 = HEAP32[(15736)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[3643]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[3642]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[3642]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[3643]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[3605]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[3605]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[3607]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[3643] = 1; + $5 = HEAP32[3612]|0; + $6 = HEAP32[3642]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[3903] = 0; + HEAP32[(15620)>>2] = 0; + HEAP32[3915] = 0; + HEAP32[(15668)>>2] = 0; + HEAP32[3927] = 0; + HEAP32[(15712)>>2] = 0; + HEAP32[(15716)>>2] = 0; + HEAPF32[754] = -1.0; + dest=14288; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=14352; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[3901]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[3902]|0; + _rlViewport($7,0,$8,$9); + $10 = (16192 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (16064 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=14352; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=14288; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[3526]|0; + $3 = (+($2|0)); + $4 = HEAP32[3525]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(15764); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[4080]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,8284,$vararg_buffer); + } + $2 = HEAP32[4080]|0; + $3 = (14580 + ($2<<6)|0); + $4 = HEAP32[3571]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[4080]|0; + $6 = (($5) + 1)|0; + HEAP32[4080] = $6; + $7 = HEAP32[3604]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[4081] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[3571]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4080]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[4080]|0; + $3 = (($2) + -1)|0; + $4 = (14580 + ($3<<6)|0); + $5 = HEAP32[3571]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[4080] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[1756]; + $1 = $0; + return (+$1); +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[3571]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[3571]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlScalef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixScale($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[3571]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[3644] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[4081]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4082]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[3641]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[3571]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[4082]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[4081] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[3641]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[4082]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[4081] = 0; + } + HEAP32[4082] = 0; + } + $21 = HEAP32[3644]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[3903]|0; + $23 = HEAP32[(15620)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(15632)>>2]|0; + $28 = HEAP32[(15620)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(15632)>>2]|0; + $35 = HEAP32[(15620)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(15632)>>2]|0; + $43 = HEAP32[(15620)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(15632)>>2]|0; + $51 = HEAP32[(15620)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(15620)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(15620)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[3915]|0; + $62 = HEAP32[(15668)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(15680)>>2]|0; + $67 = HEAP32[(15668)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(15680)>>2]|0; + $74 = HEAP32[(15668)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(15680)>>2]|0; + $82 = HEAP32[(15668)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(15680)>>2]|0; + $90 = HEAP32[(15668)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(15668)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(15668)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[3927]|0; + $101 = HEAP32[(15716)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(15728)>>2]|0; + $106 = HEAP32[(15716)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(15728)>>2]|0; + $113 = HEAP32[(15716)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(15728)>>2]|0; + $121 = HEAP32[(15716)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(15728)>>2]|0; + $129 = HEAP32[(15716)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(15716)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(15716)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[3927]|0; + $140 = HEAP32[(15712)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(15724)>>2]|0; + $$promoted = HEAP32[(15712)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(15712)>>2] = $147; + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[4081]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[3641]|0; + $6 = HEAP32[4082]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[4082] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[3644]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[3903]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(15624)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[3903] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,8322,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[3915]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(15672)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[3915] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,8347,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[3927]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(15720)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[3927] = $41; + $42 = HEAP32[3642]|0; + $43 = HEAP32[3643]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,8376,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[754]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[3644]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(15724)>>2]|0; + $5 = HEAP32[(15712)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(15712)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[3644]|0; + switch ($4|0) { + case 1: { + $$sink37 = (15620);$$sink38 = (15632); + break; + } + case 4: { + $$sink37 = (15668);$$sink38 = (15680); + break; + } + case 7: { + $$sink37 = (15716);$$sink38 = (15728); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlColor3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $0 * 255.0; + $4 = (~~(($3))&255); + $5 = $1 * 255.0; + $6 = (~~(($5))&255); + $7 = $2 * 255.0; + $8 = (~~(($7))&255); + _rlColor4ub($4,$6,$8,-1); + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[3642]|0; + $2 = HEAP32[3643]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[3643] = $10; + } + $11 = HEAP32[3643]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[3927]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[14136>>2]|0;HEAP32[$0+4>>2]=HEAP32[14136+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[14136+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[14136+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[14136+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[14136+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[14136+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[14136+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(18203,$0,$1)|0); + STACKTOP = sp;return (18203|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[4083]|0; + $4 = HEAP32[755]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[4084] = $7; + HEAP32[755] = $7; + $$sink = 0; + } + HEAP32[4083] = $$sink; + $8 = HEAP32[4084]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(8401,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(18203,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _DrawCube($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlBegin(4); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = $1 * 0.5; + $18 = 0.0 - $17; + $19 = $2 * 0.5; + $20 = 0.0 - $19; + $21 = $3 * 0.5; + $22 = $21 + 0.0; + _rlVertex3f($18,$20,$22); + $23 = $17 + 0.0; + _rlVertex3f($23,$20,$22); + $24 = $19 + 0.0; + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$20,$22); + $25 = 0.0 - $21; + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($18,$20,$22); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$20,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$20,$25); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawCubeWires($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlBegin(1); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = $1 * 0.5; + $18 = 0.0 - $17; + $19 = $2 * 0.5; + $20 = 0.0 - $19; + $21 = $3 * 0.5; + $22 = $21 + 0.0; + _rlVertex3f($18,$20,$22); + $23 = $17 + 0.0; + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$22); + $24 = $19 + 0.0; + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$20,$22); + $25 = 0.0 - $21; + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$20,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$25); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawSphere($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy1 = sp + 12|0; + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP8[$$byval_copy1>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy1+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy1+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy1+3>>0]=HEAP8[$2+3>>0]|0; + _DrawSphereEx($$byval_copy,$1,16,16,$$byval_copy1); + STACKTOP = sp;return; +} +function _DrawSphereEx($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$07173 = 0, $$072 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $exitcond = 0, $exitcond76 = 0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlScalef($1,$1,$1); + _rlBegin(4); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = ($2|0)>(-2); + if (!($17)) { + _rlEnd(); + _rlPopMatrix(); + return; + } + $18 = ($3|0)>(0); + $19 = (($2) + 1)|0; + $20 = (($2) + 1)|0; + $$07173 = 0; + while(1) { + if ($18) { + $21 = (($$07173) + 1)|0; + $$072 = 0; + while(1) { + $23 = (180 / ($19|0))&-1; + $24 = Math_imul($23, $$07173)|0; + $25 = (($24) + 270)|0; + $26 = (+($25|0)); + $27 = $26 * 0.01745329238474369; + $28 = (+Math_cos((+$27))); + $29 = ($$072*360)|0; + $30 = (($29|0) / ($3|0))&-1; + $31 = (+($30|0)); + $32 = $31 * 0.01745329238474369; + $33 = (+Math_sin((+$32))); + $34 = $28 * $33; + $35 = (+Math_sin((+$27))); + $36 = (+Math_cos((+$32))); + $37 = $28 * $36; + _rlVertex3f($34,$35,$37); + $38 = Math_imul($23, $21)|0; + $39 = (($38) + 270)|0; + $40 = (+($39|0)); + $41 = $40 * 0.01745329238474369; + $42 = (+Math_cos((+$41))); + $43 = (($$072) + 1)|0; + $44 = ($43*360)|0; + $45 = (($44|0) / ($3|0))&-1; + $46 = (+($45|0)); + $47 = $46 * 0.01745329238474369; + $48 = (+Math_sin((+$47))); + $49 = $42 * $48; + $50 = (+Math_sin((+$41))); + $51 = (+Math_cos((+$47))); + $52 = $42 * $51; + _rlVertex3f($49,$50,$52); + $53 = $33 * $42; + $54 = $36 * $42; + _rlVertex3f($53,$50,$54); + _rlVertex3f($34,$35,$37); + $55 = $28 * $48; + $56 = $28 * $51; + _rlVertex3f($55,$35,$56); + _rlVertex3f($49,$50,$52); + $exitcond = ($43|0)==($3|0); + if ($exitcond) { + break; + } else { + $$072 = $43; + } + } + } + $22 = (($$07173) + 1)|0; + $exitcond76 = ($$07173|0)==($20|0); + if ($exitcond76) { + break; + } else { + $$07173 = $22; + } + } + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawSphereWires($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$07173 = 0, $$072 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, $exitcond = 0, $exitcond76 = 0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlScalef($1,$1,$1); + _rlBegin(1); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = ($2|0)>(-2); + if (!($17)) { + _rlEnd(); + _rlPopMatrix(); + return; + } + $18 = ($3|0)>(0); + $19 = (($2) + 1)|0; + $20 = (($2) + 1)|0; + $$07173 = 0; + while(1) { + if ($18) { + $21 = (($$07173) + 1)|0; + $$072 = 0; + while(1) { + $23 = (180 / ($19|0))&-1; + $24 = Math_imul($23, $$07173)|0; + $25 = (($24) + 270)|0; + $26 = (+($25|0)); + $27 = $26 * 0.01745329238474369; + $28 = (+Math_cos((+$27))); + $29 = ($$072*360)|0; + $30 = (($29|0) / ($3|0))&-1; + $31 = (+($30|0)); + $32 = $31 * 0.01745329238474369; + $33 = (+Math_sin((+$32))); + $34 = $28 * $33; + $35 = (+Math_sin((+$27))); + $36 = (+Math_cos((+$32))); + $37 = $28 * $36; + _rlVertex3f($34,$35,$37); + $38 = Math_imul($23, $21)|0; + $39 = (($38) + 270)|0; + $40 = (+($39|0)); + $41 = $40 * 0.01745329238474369; + $42 = (+Math_cos((+$41))); + $43 = (($$072) + 1)|0; + $44 = ($43*360)|0; + $45 = (($44|0) / ($3|0))&-1; + $46 = (+($45|0)); + $47 = $46 * 0.01745329238474369; + $48 = (+Math_sin((+$47))); + $49 = $42 * $48; + $50 = (+Math_sin((+$41))); + $51 = (+Math_cos((+$47))); + $52 = $42 * $51; + _rlVertex3f($49,$50,$52); + _rlVertex3f($49,$50,$52); + $53 = $33 * $42; + $54 = $36 * $42; + _rlVertex3f($53,$50,$54); + _rlVertex3f($53,$50,$54); + _rlVertex3f($34,$35,$37); + $exitcond = ($43|0)==($3|0); + if ($exitcond) { + break; + } else { + $$072 = $43; + } + } + } + $22 = (($$07173) + 1)|0; + $exitcond76 = ($$07173|0)==($20|0); + if ($exitcond76) { + break; + } else { + $$07173 = $22; + } + } + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawCylinder($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$08797 = 0, $$08895 = 0, $$08996 = 0, $$094 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0; + var $25 = 0.0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0; + var $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0; + var $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0, $69 = 0, $7 = 0.0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0; + var $82 = 0.0, $83 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4|0)>(3); + $$ = $6 ? $4 : 3; + _rlPushMatrix(); + $7 = +HEAPF32[$0>>2]; + $8 = ((($0)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 8|0); + $11 = +HEAPF32[$10>>2]; + _rlTranslatef($7,$9,$11); + _rlBegin(4); + $12 = HEAP8[$5>>0]|0; + $13 = ((($5)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($5)) + 2|0); + $16 = HEAP8[$15>>0]|0; + $17 = ((($5)) + 3|0); + $18 = HEAP8[$17>>0]|0; + _rlColor4ub($12,$14,$16,$18); + $19 = $1 > 0.0; + if ($19) { + $$08996 = 0; + while(1) { + $20 = (+($$08996|0)); + $21 = $20 * 0.01745329238474369; + $22 = (+Math_sin((+$21))); + $23 = $22 * $2; + $24 = (+Math_cos((+$21))); + $25 = $24 * $2; + _rlVertex3f($23,0.0,$25); + $26 = (360 / ($$>>>0))&-1; + $27 = (($26) + ($$08996))|0; + $28 = (+($27|0)); + $29 = $28 * 0.01745329238474369; + $30 = (+Math_sin((+$29))); + $31 = $30 * $2; + $32 = (+Math_cos((+$29))); + $33 = $32 * $2; + _rlVertex3f($31,0.0,$33); + $34 = $30 * $1; + $35 = $32 * $1; + _rlVertex3f($34,$3,$35); + $36 = $22 * $1; + $37 = $24 * $1; + _rlVertex3f($36,$3,$37); + _rlVertex3f($23,0.0,$25); + _rlVertex3f($34,$3,$35); + $38 = ($27|0)<(360); + if ($38) { + $$08996 = $27; + } else { + $$08895 = 0; + break; + } + } + while(1) { + _rlVertex3f(0.0,$3,0.0); + $39 = (+($$08895|0)); + $40 = $39 * 0.01745329238474369; + $41 = (+Math_sin((+$40))); + $42 = $41 * $1; + $43 = (+Math_cos((+$40))); + $44 = $43 * $1; + _rlVertex3f($42,$3,$44); + $45 = (360 / ($$>>>0))&-1; + $46 = (($45) + ($$08895))|0; + $47 = (+($46|0)); + $48 = $47 * 0.01745329238474369; + $49 = (+Math_sin((+$48))); + $50 = $49 * $1; + $51 = (+Math_cos((+$48))); + $52 = $51 * $1; + _rlVertex3f($50,$3,$52); + $53 = ($46|0)<(360); + if ($53) { + $$08895 = $46; + } else { + $$094 = 0; + break; + } + } + } else { + $$08797 = 0; + while(1) { + _rlVertex3f(0.0,$3,0.0); + $54 = (+($$08797|0)); + $55 = $54 * 0.01745329238474369; + $56 = (+Math_sin((+$55))); + $57 = $56 * $2; + $58 = (+Math_cos((+$55))); + $59 = $58 * $2; + _rlVertex3f($57,0.0,$59); + $60 = (360 / ($$>>>0))&-1; + $61 = (($60) + ($$08797))|0; + $62 = (+($61|0)); + $63 = $62 * 0.01745329238474369; + $64 = (+Math_sin((+$63))); + $65 = $64 * $2; + $66 = (+Math_cos((+$63))); + $67 = $66 * $2; + _rlVertex3f($65,0.0,$67); + $68 = ($61|0)<(360); + if ($68) { + $$08797 = $61; + } else { + $$094 = 0; + break; + } + } + } + while(1) { + _rlVertex3f(0.0,0.0,0.0); + $69 = (360 / ($$>>>0))&-1; + $70 = (($69) + ($$094))|0; + $71 = (+($70|0)); + $72 = $71 * 0.01745329238474369; + $73 = (+Math_sin((+$72))); + $74 = $73 * $2; + $75 = (+Math_cos((+$72))); + $76 = $75 * $2; + _rlVertex3f($74,0.0,$76); + $77 = (+($$094|0)); + $78 = $77 * 0.01745329238474369; + $79 = (+Math_sin((+$78))); + $80 = $79 * $2; + $81 = (+Math_cos((+$78))); + $82 = $81 * $2; + _rlVertex3f($80,0.0,$82); + $83 = ($70|0)<(360); + if ($83) { + $$094 = $70; + } else { + break; + } + } + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawCylinderWires($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$048 = 0, $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0.0; + var $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4|0)>(3); + $$ = $6 ? $4 : 3; + _rlPushMatrix(); + $7 = +HEAPF32[$0>>2]; + $8 = ((($0)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 8|0); + $11 = +HEAPF32[$10>>2]; + _rlTranslatef($7,$9,$11); + _rlBegin(1); + $12 = HEAP8[$5>>0]|0; + $13 = ((($5)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($5)) + 2|0); + $16 = HEAP8[$15>>0]|0; + $17 = ((($5)) + 3|0); + $18 = HEAP8[$17>>0]|0; + _rlColor4ub($12,$14,$16,$18); + $$048 = 0; + while(1) { + $19 = (+($$048|0)); + $20 = $19 * 0.01745329238474369; + $21 = (+Math_sin((+$20))); + $22 = $21 * $2; + $23 = (+Math_cos((+$20))); + $24 = $23 * $2; + _rlVertex3f($22,0.0,$24); + $25 = (360 / ($$>>>0))&-1; + $26 = (($25) + ($$048))|0; + $27 = (+($26|0)); + $28 = $27 * 0.01745329238474369; + $29 = (+Math_sin((+$28))); + $30 = $29 * $2; + $31 = (+Math_cos((+$28))); + $32 = $31 * $2; + _rlVertex3f($30,0.0,$32); + _rlVertex3f($30,0.0,$32); + $33 = $29 * $1; + $34 = $31 * $1; + _rlVertex3f($33,$3,$34); + _rlVertex3f($33,$3,$34); + $35 = $21 * $1; + $36 = $23 * $1; + _rlVertex3f($35,$3,$36); + _rlVertex3f($35,$3,$36); + _rlVertex3f($22,0.0,$24); + $37 = ($26|0)<(360); + if ($37) { + $$048 = $26; + } else { + break; + } + } + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawGrid($0,$1) { + $0 = $0|0; + $1 = +$1; + var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0|0) / 2)&-1; + _rlBegin(1); + $3 = (0 - ($2))|0; + $4 = ($2|0)<($3|0); + if ($4) { + _rlEnd(); + return; + } + $5 = (+($3|0)); + $6 = $5 * $1; + $7 = (+($2|0)); + $8 = $7 * $1; + $$024 = $3; + while(1) { + $9 = ($$024|0)==(0); + if ($9) { + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + } else { + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + } + $10 = (+($$024|0)); + $11 = $10 * $1; + _rlVertex3f($11,0.0,$6); + _rlVertex3f($11,0.0,$8); + _rlVertex3f($6,0.0,$11); + _rlVertex3f($8,0.0,$11); + $12 = (($$024) + 1)|0; + $13 = ($$024|0)<($2|0); + if ($13) { + $$024 = $12; + } else { + break; + } + } + _rlEnd(); + return; +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,8409)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,8413)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,8417)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,8421)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,8427)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,8465)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 8484; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,8497)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 8518; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,8533)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 8548; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,8563)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 8578; + } + } else { + HEAP32[$3>>2] = 8449; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,8593)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,8607)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 2; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,8619)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 6; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,8633)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 7; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,8645)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 8; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,8659)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 9; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,8673)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 10; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,8690)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,8713)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,8739)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,8752)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,8768)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,8781)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 11; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,8795)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,8815)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,8835)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,8852)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,8869)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 3; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,8881)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 12; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,8894)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 13; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,8910)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,8933)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,8946)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,8962)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 4; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,8973)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 14; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,8992)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 15; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,9014)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 16; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,9033)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,9062)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 5; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,9079)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,9094)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,9109)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,9130)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,9150)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,9170)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,9196)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,9215)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,9227)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,9239)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,9251)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,9263)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 17; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,9275)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,9287)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,9299)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,9311)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,9324)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,9337)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,9350)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,9363)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,9376)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,9389)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,9402)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,9415)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,9434)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,9453)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,9472)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 18; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,9485)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 19; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,9503)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 20; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,9521)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 21; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,9539)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 22; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,9557)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,9577)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,8518)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 6; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,9595)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,9610)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,9631)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,9646)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,9664)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,9680)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,9699)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,9713)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,9728)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 7; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,8449)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,9739)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,8548)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 23; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,8578)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 24; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,9755)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,9782)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,9796)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,8484)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,9816)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,9834)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 8; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,9846)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,9867)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 25; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,9885)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 26; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,9903)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 27; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,9924)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,9950)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,9973)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,10011)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 9; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,10027)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,10042)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,10065)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,10078)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 28; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,10092)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 29; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,10106)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,10126)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,10146)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,10162)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,10180)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,10196)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,10211)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,10233)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 30; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,10251)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 31; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,10272)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,10290)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,10303)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,10318)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,10332)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,10342)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,10352)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,10374)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,10400)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,10427)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,10440)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,10455)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,10470)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,10494)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,10505)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 32; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,10527)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,10549)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,10573)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,10582)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,10590)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,10603)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,10617)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,10629)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,10638)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,10648)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,10660)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,10671)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,10679)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,10691)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,10706)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,10718)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,10732)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 10; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,10757)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,10774)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,10790)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,10806)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 11; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,10818)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 33; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,10830)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 34; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,10854)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,10867)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,10881)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 35; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,10903)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 36; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,10910)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,10926)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,10943)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,10960)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,10976)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,10992)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,11009)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,11023)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,11035)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,11046)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,11059)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,11069)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,11086)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,11098)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,11120)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,11140)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,11153)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,11175)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,11195)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,11212)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,11229)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,11249)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 37; + break; + } + } else { + HEAP32[$1>>2] = 5; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (16340|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3024|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 9; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=3400; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((11365 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 11829;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 11829;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 11829 : (11831); + $$$ = $238 ? $$ : (11830); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 11829;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 11829;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 11839; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 11829;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (11829 + ($208)|0); + $$289 = $or$cond283 ? 11829 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 11829;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (11881 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 11846; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (11847) : (11852); + $$$ = $16 ? $$ : (11849); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (11881 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,11897,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,11897,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 11865 : 11869; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 11873 : 11877; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (11899 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 11987;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 11987; + } else { + $$01214 = 11987;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((16404|0)); + return (16412|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((16404|0)); + return; +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[849]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[849]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 14056; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[817]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[4104]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[4104] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[4104] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[4104] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[4104] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[4105]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (16460 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[4105] = $24; + } else { + $25 = HEAP32[(16436)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(16428)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (16460 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[4105] = $77; + $98 = $77; + } else { + $78 = HEAP32[(16436)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(16440)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (16460 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[4105] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(16436)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(16428)>>2] = $84; + HEAP32[(16440)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(16424)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (16724 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(16436)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (16724 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(16424)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(16436)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(16436)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(16436)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(16440)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (16460 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[4105] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(16436)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(16428)>>2] = $$0193$lcssa$i; + HEAP32[(16440)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(16424)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (16724 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (16724 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(16428)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(16436)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (16724 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(16424)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(16436)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(16436)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(16436)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (16460 + ($425<<2)|0); + $427 = HEAP32[4105]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[4105] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(16436)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (16724 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(16424)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(16436)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(16436)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(16428)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(16440)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(16440)>>2] = $511; + HEAP32[(16428)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(16428)>>2] = 0; + HEAP32[(16440)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(16432)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(16432)>>2] = $526; + $527 = HEAP32[(16444)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(16444)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[4223]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(16900)>>2] = 4096; + HEAP32[(16896)>>2] = 4096; + HEAP32[(16904)>>2] = -1; + HEAP32[(16908)>>2] = -1; + HEAP32[(16912)>>2] = 0; + HEAP32[(16864)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[4223] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(16900)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(16860)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(16852)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(16864)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(16444)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (16868); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(16896)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(16852)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(16860)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(16900)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(16864)>>2]|0; + $612 = $611 | 4; + HEAP32[(16864)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(16852)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(16852)>>2] = $627; + $628 = HEAP32[(16856)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(16856)>>2] = $627; + } + $630 = HEAP32[(16444)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(16436)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(16436)>>2] = $$749$i; + } + HEAP32[(16868)>>2] = $$749$i; + HEAP32[(16872)>>2] = $$723948$i; + HEAP32[(16880)>>2] = 0; + $635 = HEAP32[4223]|0; + HEAP32[(16456)>>2] = $635; + HEAP32[(16452)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (16460 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(16444)>>2] = $649; + HEAP32[(16432)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(16908)>>2]|0; + HEAP32[(16448)>>2] = $655; + } else { + $$024371$i = (16868); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(16432)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(16444)>>2] = $679; + HEAP32[(16432)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(16908)>>2]|0; + HEAP32[(16448)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(16436)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(16436)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (16868); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(16432)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(16432)>>2] = $727; + HEAP32[(16444)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(16440)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(16428)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(16428)>>2] = $733; + HEAP32[(16440)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (16460 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[4105]|0; + $760 = $759 & $758; + HEAP32[4105] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (16724 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(16424)>>2]|0; + $803 = $802 & $801; + HEAP32[(16424)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(16436)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(16436)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(16436)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (16460 + ($836<<2)|0); + $838 = HEAP32[4105]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[4105] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(16436)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (16724 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(16424)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(16424)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(16436)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(16436)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (16868); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(16444)>>2] = $946; + HEAP32[(16432)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(16908)>>2]|0; + HEAP32[(16448)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(16868)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(16868)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(16868)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(16868)+12>>2]|0; + HEAP32[(16868)>>2] = $$749$i; + HEAP32[(16872)>>2] = $$723948$i; + HEAP32[(16880)>>2] = 0; + HEAP32[(16876)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (16460 + ($968<<2)|0); + $970 = HEAP32[4105]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[4105] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(16436)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (16724 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(16424)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(16424)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(16436)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(16436)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(16432)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(16432)>>2] = $1050; + $1051 = HEAP32[(16444)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(16444)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(16436)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(16440)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(16428)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (16460 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[4105]|0; + $38 = $37 & $36; + HEAP32[4105] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (16724 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(16424)>>2]|0; + $81 = $80 & $79; + HEAP32[(16424)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(16436)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(16436)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(16436)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(16444)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(16440)>>2]|0; + if ($121) { + $123 = HEAP32[(16432)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(16432)>>2] = $124; + HEAP32[(16444)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(16440)>>2] = 0; + HEAP32[(16428)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(16428)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(16428)>>2] = $130; + HEAP32[(16440)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (16460 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(16436)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[4105]|0; + $154 = $153 & $152; + HEAP32[4105] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(16436)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(16436)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(16436)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (16724 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(16424)>>2]|0; + $200 = $199 & $198; + HEAP32[(16424)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(16436)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(16436)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(16436)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(16440)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(16428)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (16460 + ($234<<2)|0); + $236 = HEAP32[4105]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[4105] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(16436)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (16724 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(16424)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(16424)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(16436)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(16436)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(16452)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(16452)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (16876); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(16452)>>2] = -1; + return; +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,b8,b8,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _llvm_cttz_i32: _llvm_cttz_i32, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _memset = Module["_memset"] = asm["_memset"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_geometric_shapes.png b/examples/web/models/models_geometric_shapes.png new file mode 100644 index 0000000..6076b42 Binary files /dev/null and b/examples/web/models/models_geometric_shapes.png differ diff --git a/examples/web/models/models_heightmap.c b/examples/web/models/models_heightmap.c new file mode 100644 index 0000000..bc51453 --- /dev/null +++ b/examples/web/models/models_heightmap.c @@ -0,0 +1,111 @@ +/******************************************************************************************* +* +* raylib [models] example - Heightmap loading and drawing (adapted for HTML5 platform) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int screenWidth = 800; +int screenHeight = 450; + +// Define our custom camera to look into our 3d world +Camera camera = {{ 18.0f, 16.0f, 18.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + +Texture2D texture; +Model map; + +Vector3 mapPosition = { -8.0f, 0.0f, -8.0f }; // Set model position (depends on model scaling!) + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap loading and drawing"); + + Image image = LoadImage("resources/heightmap.png"); // Load heightmap image (RAM) + texture = LoadTextureFromImage(image); // Convert image to texture (VRAM) + map = LoadHeightmap(image, (Vector3){ 16, 8, 16 }); // Load heightmap model with defined size + map.material.texDiffuse = texture; // Set map diffuse texture + + UnloadImage(image); // Unload heightmap image from RAM, already uploaded to VRAM + + SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + UnloadModel(map); // Unload model + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update internal camera and our camera + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + // NOTE: Model is scaled to 1/4 of its original size (128x128 units) + DrawModel(map, mapPosition, 1.0f, RED); + + DrawGrid(20, 1.0f); + + End3dMode(); + + DrawTexture(texture, screenWidth - texture.width - 20, 20, WHITE); + DrawRectangleLines(screenWidth - texture.width - 20, 20, texture.width, texture.height, GREEN); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- +} \ No newline at end of file diff --git a/examples/web/models/models_heightmap.data b/examples/web/models/models_heightmap.data new file mode 100644 index 0000000..fe30f67 Binary files /dev/null and b/examples/web/models/models_heightmap.data differ diff --git a/examples/web/models/models_heightmap.html b/examples/web/models/models_heightmap.html new file mode 100644 index 0000000..ba90b48 --- /dev/null +++ b/examples/web/models/models_heightmap.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_heightmap.js b/examples/web/models/models_heightmap.js new file mode 100644 index 0000000..391a231 --- /dev/null +++ b/examples/web/models/models_heightmap.js @@ -0,0 +1,41423 @@ + +var Module; + +if (typeof Module === 'undefined') Module = {}; + +if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + Module.finishedDataFileDownloads = 0; +} +Module.expectedDataFileDownloads++; +(function() { + var loadPackage = function(metadata) { + + var PACKAGE_PATH; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); + } else if (typeof location !== 'undefined') { + // worker + PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); + } else { + throw 'using preloaded data can only be done on a web page or in a web worker'; + } + var PACKAGE_NAME = 'models/models_heightmap.data'; + var REMOTE_PACKAGE_BASE = 'models_heightmap.data'; + if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) { + Module['locateFile'] = Module['locateFilePackage']; + Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'); + } + var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ? + Module['locateFile'](REMOTE_PACKAGE_BASE) : + ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE); + + var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; + var PACKAGE_UUID = metadata.package_uuid; + + function fetchRemotePackage(packageName, packageSize, callback, errback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function(event) { + var url = packageName; + var size = packageSize; + if (event.total) size = event.total; + if (event.loaded) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: size + }; + } else { + Module.dataFileDownloads[url].loaded = event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil(total * Module.expectedDataFileDownloads/num); + if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) Module['setStatus']('Downloading data...'); + } + }; + xhr.onerror = function(event) { + throw new Error("NetworkError for: " + packageName); + } + xhr.onload = function(event) { + if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + var packageData = xhr.response; + callback(packageData); + } else { + throw new Error(xhr.statusText + " : " + xhr.responseURL); + } + }; + xhr.send(null); + }; + + function handleError(error) { + console.error('package error:', error); + }; + + var fetchedCallback = null; + var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; + + if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, handleError); + + function runWithFS() { + + function assert(check, msg) { + if (!check) throw msg + new Error().stack; + } +Module['FS_createPath']('/', 'resources', true, true); + + function DataRequest(start, end, crunched, audio) { + this.start = start; + this.end = end; + this.crunched = crunched; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function(mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency']('fp ' + this.name); + }, + send: function() {}, + onload: function() { + var byteArray = this.byteArray.subarray(this.start, this.end); + + this.finish(byteArray); + + }, + finish: function(byteArray) { + var that = this; + + Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change + Module['removeRunDependency']('fp ' + that.name); + + this.requests[this.name] = null; + } + }; + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename); + } + + + function processPackageData(arrayBuffer) { + Module.finishedDataFileDownloads++; + assert(arrayBuffer, 'Loading data file failed.'); + assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData'); + var byteArray = new Uint8Array(arrayBuffer); + var curr; + + // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though + // (we may be allocating before malloc is ready, during startup). + if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting'); + var ptr = Module['getMemory'](byteArray.length); + Module['HEAPU8'].set(byteArray, ptr); + DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + DataRequest.prototype.requests[files[i].filename].onload(); + } + Module['removeRunDependency']('datafile_models/models_heightmap.data'); + + }; + Module['addRunDependency']('datafile_models/models_heightmap.data'); + + if (!Module.preloadResults) Module.preloadResults = {}; + + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it + } + + } + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 10920, "filename": "/resources/heightmap.png"}], "remote_package_size": 10920, "package_uuid": "706b22d7-42c7-4f1a-b627-ecca0390bb5a"}); + +})(); + +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 22848; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,144,65,0,0,128,65,0,0,144,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,52,66,0,0,0,193,0,0,0,0,0,0,0,193,255,255,255,255,205,204,236,63,2,0,0,0,86,1,0,0,85,1,0,0,87,0,0,0,83,0,0,0,68,0,0,0,65,0,0,0,69,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,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,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,15,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,63,85,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,104,101,105,103,104,116,109,97,112,32,108,111,97,100,105,110,103,32,97,110,100,32,100,114,97,119,105,110,103,0,114,101,115,111,117,114,99,101,115,47,104,101,105,103,104,116,109,97,112,46,112,110,103,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,91,86,65,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,118,101,114,116,101,120,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,65,79,32,73,68,32,37,105,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,77,101,115,104,32,99,111,117,108,100,32,110,111,116,32,98,101,32,117,112,108,111,97,100,101,100,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,115,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,109,111,100,101,108,77,97,116,114,105,120,0,118,105,101,119,68,105,114,0,103,108,111,115,115,105,110,101,115,115,0,117,115,101,78,111,114,109,97,108,0,117,115,101,83,112,101,99,117,108,97,114,0,114,105,46,98,105,116,115,95,112,101,114,95,99,104,97,110,110,101,108,32,61,61,32,49,54,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,105,109,97,103,101,46,104,0,115,116,98,105,95,95,108,111,97,100,95,97,110,100,95,112,111,115,116,112,114,111,99,101,115,115,95,56,98,105,116,0,111,117,116,111,102,109,101,109,0,117,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,98,97,100,32,114,101,113,95,99,111,109,112,0,114,101,113,95,99,111,109,112,32,62,61,32,49,32,38,38,32,114,101,113,95,99,111,109,112,32,60,61,32,52,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,49,54,0,48,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,0,109,117,108,116,105,112,108,101,32,73,72,68,82,0,98,97,100,32,73,72,68,82,32,108,101,110,0,116,111,111,32,108,97,114,103,101,0,49,47,50,47,52,47,56,47,49,54,45,98,105,116,32,111,110,108,121,0,98,97,100,32,99,116,121,112,101,0,98,97,100,32,99,111,109,112,32,109,101,116,104,111,100,0,98,97,100,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,98,97,100,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,48,45,112,105,120,101,108,32,105,109,97,103,101,0,102,105,114,115,116,32,110,111,116,32,73,72,68,82,0,105,110,118,97,108,105,100,32,80,76,84,69,0,116,82,78,83,32,97,102,116,101,114,32,73,68,65,84,0,116,82,78,83,32,98,101,102,111,114,101,32,80,76,84,69,0,98,97,100,32,116,82,78,83,32,108,101,110,0,116,82,78,83,32,119,105,116,104,32,97,108,112,104,97,0,0,255,85,0,17,0,0,0,1,110,111,32,80,76,84,69,0,111,117,116,111,102,100,97,116,97,0,110,111,32,73,68,65,84,0,88,88,88,88,32,80,78,71,32,99,104,117,110,107,32,110,111,116,32,107,110,111,119,110,0,115,45,62,105,109,103,95,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,100,101,95,105,112,104,111,110,101,0,111,117,116,95,110,32,61,61,32,50,32,124,124,32,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,49,54,0,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,32,124,124,32,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,43,49,0,115,116,98,105,95,95,99,114,101,97,116,101,95,112,110,103,95,105,109,97,103,101,95,114,97,119,0,110,111,116,32,101,110,111,117,103,104,32,112,105,120,101,108,115,0,105,109,103,95,119,105,100,116,104,95,98,121,116,101,115,32,60,61,32,120,0,0,1,0,5,6,105,109,103,95,110,43,49,32,61,61,32,111,117,116,95,110,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,0,105,109,103,95,110,32,61,61,32,51,0,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([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,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,98,97,100,32,104,117,102,102,109,97,110,32,99,111,100,101,0,98,97,100,32,100,105,115,116,0,111,117,116,112,117,116,32,98,117,102,102,101,114,32,108,105,109,105,116,0,122,45,62,115,105,122,101,91,98,93,32,61,61,32,115,0,115,116,98,105,95,95,122,104,117,102,102,109,97,110,95,100,101,99,111,100,101,95,115,108,111,119,112,97,116,104,0,98,105,116,115,32,60,61,32,49,54,0,115,116,98,105,95,95,98,105,116,95,114,101,118,101,114,115,101,0,122,45,62,99,111,100,101,95,98,117,102,102,101,114,32,60,32,40,49,85,32,60,60,32,122,45,62,110,117,109,95,98,105,116,115,41,0,115,116,98,105,95,95,102,105,108,108,95,98,105,116,115,0,98,97,100,32,99,111,100,101,108,101,110,103,116,104,115,0,99,32,61,61,32,49,56,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,104,117,102,102,109,97,110,95,99,111,100,101,115,0,98,97,100,32,115,105,122,101,115,0,97,45,62,110,117,109,95,98,105,116,115,32,61,61,32,48,0,115,116,98,105,95,95,112,97,114,115,101,95,117,110,99,111,109,112,114,101,115,115,101,100,95,98,108,111,99,107,0,122,108,105,98,32,99,111,114,114,117,112,116,0,114,101,97,100,32,112,97,115,116,32,98,117,102,102,101,114,0,98,97,100,32,122,108,105,98,32,104,101,97,100,101,114,0,110,111,32,112,114,101,115,101,116,32,100,105,99,116,0,98,97,100,32,99,111,109,112,114,101,115,115,105,111,110,0,98,97,100,32,112,110,103,32,115,105,103,0,46,114,114,101,115,0,91,37,115,93,32,82,101,115,111,117,114,99,101,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,105,109,97,103,101,32,100,97,116,97,0,46,112,110,103,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,37,115,93,32,73,109,97,103,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,91,37,115,93,32,73,109,97,103,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,73,109,97,103,101,32,102,111,114,109,97,116,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,0,114,98,0,91,37,115,93,32,114,82,69,83,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,91,37,115,93,32,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,115,111,117,114,99,101,32,100,97,116,97,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,113,117,101,115,116,101,100,32,114,101,115,111,117,114,99,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,102,111,117,110,100,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,119,104,105,108,101,32,100,101,99,111,109,112,114,101,115,115,105,110,103,32,100,97,116,97,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,32,110,111,116,32,109,97,116,99,104,44,32,100,97,116,97,32,109,97,121,32,98,101,32,99,111,114,114,117,112,116,101,100,0,32,45,45,32,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,32,45,45,32,82,101,116,117,114,110,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,114,111,109,32,37,117,32,98,121,116,101,115,32,116,111,32,37,117,32,98,121,116,101,115,0,5,5,4,0,16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,2,3,7,0,3,3,11,0,37,50,105,32,70,80,83,0,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,40,109,101,115,104,32,97,110,100,32,109,97,116,101,114,105,97,108,41,32,102,114,111,109,32,82,65,77,32,97,110,100,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; + + var ERRNO_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"}; + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + + var PATH={splitPath:function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function (parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + return parts; + },normalize:function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function (path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function (path) { + return PATH.splitPath(path)[3]; + },join:function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function (l, r) { + return PATH.normalize(l + '/' + r); + },resolve:function () { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function (from, to) { + from = PATH.resolve(from).substr(1); + to = PATH.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + stream.tty = tty; + stream.seekable = false; + },close:function (stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function (stream) { + stream.tty.ops.flush(stream.tty); + },read:function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + for (var i = 0; i < length; i++) { + try { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = new Buffer(BUFSIZE); + var bytesRead = 0; + + var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion + + var fd = process.stdin.fd; + if (isPosixPlatform) { + // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) + var usingDevice = false; + try { + fd = fs.openSync('/dev/stdin', 'r'); + usingDevice = true; + } catch (e) {} + } + + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().indexOf('EOF') != -1) bytesRead = 0; + else throw e; + } + + if (usingDevice) { fs.closeSync(fd); } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + + } else if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function (tty, val) { + if (val === null || val === 10) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function (tty, val) { + if (val === null || val === 10) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + var MEMFS={ops_table:null,mount:function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },getFileDataAsRegularArray:function (node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr; // Returns a copy of the original data. + } + return node.contents; // No-op, the file contents are already in a JS array. Return as-is. + },getFileDataAsTypedArray:function (node) { + if (!node.contents) return new Uint8Array; + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function (node, newCapacity) { + // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file + // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to + // increase the size. + if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { + node.contents = MEMFS.getFileDataAsRegularArray(node); + node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. + } + + if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + return; + } + // Not using a typed array to back the file storage. Use a standard JS array instead. + if (!node.contents && newCapacity > 0) node.contents = []; + while (node.contents.length < newCapacity) node.contents.push(0); + },resizeFileStorage:function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + return; + } + if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. + var oldContents = node.contents; + node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + return; + } + // Backing with a JS array. + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; + else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize; + },node_ops:{getattr:function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function (parent, name) { + throw FS.genericErrors[ERRNO_CODES.ENOENT]; + },mknod:function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function (parent, name) { + delete parent.contents[name]; + },rmdir:function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + delete parent.contents[name]; + },readdir:function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return node.link; + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. + else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position+length); + return length; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + },allocate:function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < stream.node.usedBytes) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); + } + buffer.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + var IDBFS={dbs:{},indexedDB:function () { + if (typeof indexedDB !== 'undefined') return indexedDB; + var ret = null; + if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + assert(ret, 'IDBFS used, but indexedDB not supported'); + return ret; + },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { + // reuse all of the core MEMFS functionality + return MEMFS.mount.apply(null, arguments); + },syncfs:function (mount, populate, callback) { + IDBFS.getLocalSet(mount, function(err, local) { + if (err) return callback(err); + + IDBFS.getRemoteSet(mount, function(err, remote) { + if (err) return callback(err); + + var src = populate ? remote : local; + var dst = populate ? local : remote; + + IDBFS.reconcile(src, dst, callback); + }); + }); + },getDB:function (name, callback) { + // check the cache first + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + if (!req) { + return callback("Unable to connect to IndexedDB"); + } + req.onupgradeneeded = function(e) { + var db = e.target.result; + var transaction = e.target.transaction; + + var fileStore; + + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + + if (!fileStore.indexNames.contains('timestamp')) { + fileStore.createIndex('timestamp', 'timestamp', { unique: false }); + } + }; + req.onsuccess = function() { + db = req.result; + + // add to the cache + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },getLocalSet:function (mount, callback) { + var entries = {}; + + function isRealDir(p) { + return p !== '.' && p !== '..'; + }; + function toAbsolute(root) { + return function(p) { + return PATH.join2(root, p); + } + }; + + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + + while (check.length) { + var path = check.pop(); + var stat; + + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + + entries[path] = { timestamp: stat.mtime }; + } + + return callback(null, { type: 'local', entries: entries }); + },getRemoteSet:function (mount, callback) { + var entries = {}; + + IDBFS.getDB(mount.mountpoint, function(err, db) { + if (err) return callback(err); + + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); + transaction.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index('timestamp'); + + index.openKeyCursor().onsuccess = function(event) { + var cursor = event.target.result; + + if (!cursor) { + return callback(null, { type: 'remote', db: db, entries: entries }); + } + + entries[cursor.primaryKey] = { timestamp: cursor.key }; + + cursor.continue(); + }; + }); + },loadLocalEntry:function (path, callback) { + var stat, node; + + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode }); + } else if (FS.isFile(stat.mode)) { + // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. + // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. + node.contents = MEMFS.getFileDataAsTypedArray(node); + return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); + } else { + return callback(new Error('node type not supported')); + } + },storeLocalEntry:function (path, entry, callback) { + try { + if (FS.isDir(entry.mode)) { + FS.mkdir(path, entry.mode); + } else if (FS.isFile(entry.mode)) { + FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); + } else { + return callback(new Error('node type not supported')); + } + + FS.chmod(path, entry.mode); + FS.utime(path, entry.timestamp, entry.timestamp); + } catch (e) { + return callback(e); + } + + callback(null); + },removeLocalEntry:function (path, callback) { + try { + var lookup = FS.lookupPath(path); + var stat = FS.stat(path); + + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + + callback(null); + },loadRemoteEntry:function (store, path, callback) { + var req = store.get(path); + req.onsuccess = function(event) { callback(null, event.target.result); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },storeRemoteEntry:function (store, path, entry, callback) { + var req = store.put(entry, path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },removeRemoteEntry:function (store, path, callback) { + var req = store.delete(path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },reconcile:function (src, dst, callback) { + var total = 0; + + var create = []; + Object.keys(src.entries).forEach(function (key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e.timestamp > e2.timestamp) { + create.push(key); + total++; + } + }); + + var remove = []; + Object.keys(dst.entries).forEach(function (key) { + var e = dst.entries[key]; + var e2 = src.entries[key]; + if (!e2) { + remove.push(key); + total++; + } + }); + + if (!total) { + return callback(null); + } + + var errored = false; + var completed = 0; + var db = src.type === 'remote' ? src.db : dst.db; + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= total) { + return callback(null); + } + }; + + transaction.onerror = function(e) { + done(this.error); + e.preventDefault(); + }; + + // sort paths in ascending order so directory entries are created + // before the files inside them + create.sort().forEach(function (path) { + if (dst.type === 'local') { + IDBFS.loadRemoteEntry(store, path, function (err, entry) { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, function (err, entry) { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + + // sort paths in descending order so files are deleted before their + // parent directories + remove.sort().reverse().forEach(function(path) { + if (dst.type === 'local') { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + }}; + + var NODEFS={isWindows:false,staticInit:function () { + NODEFS.isWindows = !!process.platform.match(/^win/); + },mount:function (mount) { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + },getMode:function (path) { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so + // propagate write bits to execute bits. + stat.mode = stat.mode | ((stat.mode & 146) >> 1); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return stat.mode; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { + flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. + if (flags in NODEFS.flagsToPermissionStringMap) { + return NODEFS.flagsToPermissionStringMap[flags]; + } else { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },node_ops:{getattr:function (node) { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. + // See http://support.microsoft.com/kb/140365 + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function (node, attr) { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + },mknod:function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function (node) { + var path = NODEFS.realPath(node); + try { + path = fs.readlinkSync(path); + path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); + return path; + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + if (length === 0) return 0; // node errors on 0 length reads + // FIXME this is terrible. + var nbuffer = new Buffer(length); + var res; + try { + res = fs.readSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + if (res > 0) { + for (var i = 0; i < res; i++) { + buffer[offset + i] = nbuffer[i]; + } + } + return res; + },write:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); + var res; + try { + res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return res; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + return position; + }}}; + + var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { + assert(ENVIRONMENT_IS_WORKER); + if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); + var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); + var createdParents = {}; + function ensureParent(path) { + // return the parent node, creating subdirs as necessary + var parts = path.split('/'); + var parent = root; + for (var i = 0; i < parts.length-1; i++) { + var curr = parts.slice(0, i+1).join('/'); + // Issue 4254: Using curr as a node name will prevent the node + // from being found in FS.nameTable when FS.open is called on + // a path which holds a child of this node, + // given that all FS functions assume node names + // are just their corresponding parts within their given path, + // rather than incremental aggregates which include their parent's + // directories. + if (!createdParents[curr]) { + createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); + } + parent = createdParents[curr]; + } + return parent; + } + function base(path) { + var parts = path.split('/'); + return parts[parts.length-1]; + } + // We also accept FileList here, by using Array.prototype + Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { + WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); + }); + (mount.opts["blobs"] || []).forEach(function(obj) { + WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + }); + (mount.opts["packages"] || []).forEach(function(pack) { + pack['metadata'].files.forEach(function(file) { + var name = file.filename.substr(1); // remove initial slash + WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); + }); + }); + return root; + },createNode:function (parent, name, mode, dev, contents, mtime) { + var node = FS.createNode(parent, name, mode); + node.mode = mode; + node.node_ops = WORKERFS.node_ops; + node.stream_ops = WORKERFS.stream_ops; + node.timestamp = (mtime || new Date).getTime(); + assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); + if (mode === WORKERFS.FILE_MODE) { + node.size = contents.size; + node.contents = contents; + } else { + node.size = 4096; + node.contents = {}; + } + if (parent) { + parent.contents[name] = node; + } + return node; + },node_ops:{getattr:function (node) { + return { + dev: 1, + ino: undefined, + mode: node.mode, + nlink: 1, + uid: 0, + gid: 0, + rdev: undefined, + size: node.size, + atime: new Date(node.timestamp), + mtime: new Date(node.timestamp), + ctime: new Date(node.timestamp), + blksize: 4096, + blocks: Math.ceil(node.size / 4096), + }; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + },lookup:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + },mknod:function (parent, name, mode, dev) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rename:function (oldNode, newDir, newName) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },unlink:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rmdir:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readdir:function (node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newName, oldPath) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readlink:function (node) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + if (position >= stream.node.size) return 0; + var chunk = stream.node.contents.slice(position, position + length); + var ab = WORKERFS.reader.readAsArrayBuffer(chunk); + buffer.set(new Uint8Array(ab), offset); + return chunk.size; + },write:function (stream, buffer, offset, length, position) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.size; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + }}}; + + var _stdin=STATICTOP; STATICTOP += 16;; + + var _stdout=STATICTOP; STATICTOP += 16;; + + var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return ___setErrNo(e.errno); + },lookupPath:function (path, opts) { + path = PATH.resolve(FS.cwd(), path); + opts = opts || {}; + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function (parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function (parent, name) { + var err = FS.mayLookup(parent); + if (err) { + throw new FS.ErrnoError(err, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function (parent, name, mode, rdev) { + if (!FS.FSNode) { + FS.FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + + FS.FSNode.prototype = {}; + + // compatibility + var readMode = 292 | 73; + var writeMode = 146; + + // NOTE we must use Object.defineProperties instead of individual calls to + // Object.defineProperty in order to make closure compiler happy + Object.defineProperties(FS.FSNode.prototype, { + read: { + get: function() { return (this.mode & readMode) === readMode; }, + set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } + }, + write: { + get: function() { return (this.mode & writeMode) === writeMode; }, + set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } + }, + isFolder: { + get: function() { return FS.isDir(this.mode); } + }, + isDevice: { + get: function() { return FS.isChrdev(this.mode); } + } + }); + } + + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function (node) { + FS.hashRemoveNode(node); + },isRoot:function (node) { + return node === node.parent; + },isMountpoint:function (node) { + return !!node.mounted; + },isFile:function (mode) { + return (mode & 61440) === 32768; + },isDir:function (mode) { + return (mode & 61440) === 16384; + },isLink:function (mode) { + return (mode & 61440) === 40960; + },isChrdev:function (mode) { + return (mode & 61440) === 8192; + },isBlkdev:function (mode) { + return (mode & 61440) === 24576; + },isFIFO:function (mode) { + return (mode & 61440) === 4096; + },isSocket:function (mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function (flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function (node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return ERRNO_CODES.EACCES; + } + return 0; + },mayLookup:function (dir) { + var err = FS.nodePermissions(dir, 'x'); + if (err) return err; + if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; + return 0; + },mayCreate:function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return ERRNO_CODES.EEXIST; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var err = FS.nodePermissions(dir, 'wx'); + if (err) { + return err; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return ERRNO_CODES.ENOTDIR; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return ERRNO_CODES.EBUSY; + } + } else { + if (FS.isDir(node.mode)) { + return ERRNO_CODES.EISDIR; + } + } + return 0; + },mayOpen:function (node, flags) { + if (!node) { + return ERRNO_CODES.ENOENT; + } + if (FS.isLink(node.mode)) { + return ERRNO_CODES.ELOOP; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return ERRNO_CODES.EISDIR; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(ERRNO_CODES.EMFILE); + },getStream:function (fd) { + return FS.streams[fd]; + },createStream:function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function(){}; + FS.FSStream.prototype = {}; + // compatibility + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }); + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function (fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function (stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function () { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + }},major:function (dev) { + return ((dev) >> 8); + },minor:function (dev) { + return ((dev) & 0xff); + },makedev:function (ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function (dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function (dev) { + return FS.devices[dev]; + },getMounts:function (mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function (populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(err) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(err); + } + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return doCallback(err); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function (type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function (parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.mayCreate(parent, name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function (path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function (path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function (path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != ERRNO_CODES.EEXIST) throw e; + } + } + },mkdev:function (path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function (oldpath, newpath) { + if (!PATH.resolve(oldpath)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var newname = PATH.basename(newpath); + var err = FS.mayCreate(parent, newname); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(ERRNO_CODES.EXDEV); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + // new path should not be an ancestor of the old path + relative = PATH.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var err = FS.mayDelete(old_dir, old_name, isdir); + if (err) { + throw new FS.ErrnoError(err); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + err = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + err = FS.nodePermissions(old_dir, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, true); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + },unlink:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, false); + if (err) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return node.node_ops.getattr(node); + },lstat:function (path) { + return FS.stat(path, true); + },chmod:function (path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function (path, mode) { + FS.chmod(path, mode, true); + },fchmod:function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chmod(stream.node, mode); + },chown:function (path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function (path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chown(stream.node, uid, gid); + },truncate:function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.nodePermissions(node, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + FS.truncate(stream.node, len); + },utime:function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function (path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(ERRNO_CODES.EEXIST); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var err = FS.mayOpen(node, flags); + if (err) { + throw new FS.ErrnoError(err); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + Module['printErr']('read file: ' + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function (stream) { + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + },llseek:function (stream, offset, whence) { + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if (stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function (stream, offset, length) { + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + // TODO if PROT is PROT_WRITE, make sure we have write access + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EACCES); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function (stream) { + return 0; + },ioctl:function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + opts.encoding = opts.encoding || 'utf8'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var stream = FS.open(path, opts.flags, opts.mode); + if (opts.encoding === 'utf8') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); + } else if (opts.encoding === 'binary') { + FS.write(stream, data, 0, data.length, 0, opts.canOwn); + } + FS.close(stream); + },cwd:function () { + return FS.currentPath; + },chdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + var err = FS.nodePermissions(lookup.node, 'x'); + if (err) { + throw new FS.ErrnoError(err); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function () { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function () { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device; + if (typeof crypto !== 'undefined') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs + random_device = function() { return require('crypto').randomBytes(1)[0]; }; + } else { + // default for ES5 platforms + random_device = function() { return (Math.random()*256)|0; }; + } + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function () { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function () { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + + var stdout = FS.open('/dev/stdout', 'w'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + + var stderr = FS.open('/dev/stderr', 'w'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + //Module.printErr(stackTrace()); // useful for debugging + this.node = node; + this.setErrno = function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) this.stack = demangleAll(this.stack); + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [ERRNO_CODES.ENOENT].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function () { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + 'IDBFS': IDBFS, + 'NODEFS': NODEFS, + 'WORKERFS': WORKERFS, + }; + },init:function (input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function () { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function (relative, base) { + return PATH.resolve(base, relative); + },standardizePath:function (path) { + return PATH.normalize(path); + },findObject:function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + ___setErrNo(ret.error); + return null; + } + },analyzePath:function (path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function (parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (Module['read']) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(Module['read'](obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) ___setErrNo(ERRNO_CODES.EIO); + return success; + },createLazyFile:function (parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + } + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + } + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function () { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + console.log('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { + if (path[0] !== '/') { + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + dir = dirstream.path; + } + path = PATH.join2(dir, path); + } + return path; + },doStat:function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -ERRNO_CODES.ENOTDIR; + } + throw e; + } + HEAP32[((buf)>>2)]=stat.dev; + HEAP32[(((buf)+(4))>>2)]=0; + HEAP32[(((buf)+(8))>>2)]=stat.ino; + HEAP32[(((buf)+(12))>>2)]=stat.mode; + HEAP32[(((buf)+(16))>>2)]=stat.nlink; + HEAP32[(((buf)+(20))>>2)]=stat.uid; + HEAP32[(((buf)+(24))>>2)]=stat.gid; + HEAP32[(((buf)+(28))>>2)]=stat.rdev; + HEAP32[(((buf)+(32))>>2)]=0; + HEAP32[(((buf)+(36))>>2)]=stat.size; + HEAP32[(((buf)+(40))>>2)]=4096; + HEAP32[(((buf)+(44))>>2)]=stat.blocks; + HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(52))>>2)]=0; + HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)]=0; + HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)]=0; + HEAP32[(((buf)+(72))>>2)]=stat.ino; + return 0; + },doMsync:function (addr, stream, len, flags) { + var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); + FS.msync(stream, buffer, 0, len, flags); + },doMkdir:function (path, mode) { + // remove a trailing slash, if one - /a/b/ has basename of '', but + // we want to create b in the context of this function + path = PATH.normalize(path); + if (path[path.length-1] === '/') path = path.substr(0, path.length-1); + FS.mkdir(path, mode, 0); + return 0; + },doMknod:function (path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -ERRNO_CODES.EINVAL; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function (path, buf, bufsize) { + if (bufsize <= 0) return -ERRNO_CODES.EINVAL; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function (path, amode) { + if (amode & ~7) { + // need a valid mode + return -ERRNO_CODES.EINVAL; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -ERRNO_CODES.EACCES; + } + return 0; + },doDup:function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },getStreamFromFD:function () { + var stream = FS.getStream(SYSCALLS.get()); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return stream; + },getSocketFromFD:function () { + var socket = SOCKFS.getSocket(SYSCALLS.get()); + if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return socket; + },getSocketAddress:function (allowNull) { + var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); + if (allowNull && addrp === 0) return null; + var info = __read_sockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); + switch (op) { + case 21505: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + case 21506: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return -ERRNO_CODES.EINVAL; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _glfwGetMouseButton(winid, button) { + return GLFW.getMouseButton(winid, button); + } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + try { + // open + var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doWritev(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; + try { + // readv + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___udivdi3"] = ___udivdi3; + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function ___assert_fail(condition, filename, line, func) { + ABORT = true; + throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _glfwSetCursorPos(winid, x, y) { + GLFW.setCursorPos(winid, x, y); + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _glfwGetKey(winid, key) { + return GLFW.getKey(winid, key); + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; + try { + // fcntl64 + var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -ERRNO_CODES.EINVAL; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + case 12: { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + } + case 13: + case 14: + case 13: + case 14: + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: { + return -ERRNO_CODES.EINVAL; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(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;Module["FS_unlink"] = FS.unlink;; +__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; +JSEvents.staticInit();; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_glVertexAttrib4f": _glVertexAttrib4f, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_glVertexAttrib3f": _glVertexAttrib3f, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glHint": _emscripten_glHint, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_glUniform3f": _glUniform3f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glVertexAttrib2f": _glVertexAttrib2f, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_glfwSetCursorPos": _glfwSetCursorPos, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_glfwGetMouseButton": _glfwGetMouseButton, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_glUniform1f": _glUniform1f, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var ___assert_fail=env.___assert_fail; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _glVertexAttrib4f=env._glVertexAttrib4f; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _glVertexAttrib3f=env._glVertexAttrib3f; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var ___syscall145=env.___syscall145; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glHint=env._emscripten_glHint; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var ___syscall146=env.___syscall146; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _glUniform3f=env._glUniform3f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _glVertexAttrib2f=env._glVertexAttrib2f; + var _glGenTextures=env._glGenTextures; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var ___syscall5=env.___syscall5; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var ___syscall221=env.___syscall221; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _glfwSetCursorPos=env._glfwSetCursorPos; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _glfwGetMouseButton=env._glfwGetMouseButton; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _glActiveTexture=env._glActiveTexture; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _glUniform1f=env._glUniform1f; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _glfwGetKey=env._glfwGetKey; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $$byval_copy1 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $map$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 608|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(608|0); + $map$byval_copy = sp + 336|0; + $$byval_copy1 = sp + 20|0; + $0 = sp; + $1 = sp + 316|0; + $2 = sp + 304|0; + $3 = sp + 40|0; + $4 = HEAP32[2]|0; + $5 = HEAP32[3]|0; + _InitWindow($4,$5,4216); + _LoadImage($0,4272); + ;HEAP32[$map$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$map$byval_copy); + ;HEAP32[17288>>2]=HEAP32[$1>>2]|0;HEAP32[17288+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[17288+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[17288+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[17288+16>>2]=HEAP32[$1+16>>2]|0; + HEAPF32[$2>>2] = 16.0; + $6 = ((($2)) + 4|0); + HEAPF32[$6>>2] = 8.0; + $7 = ((($2)) + 8|0); + HEAPF32[$7>>2] = 16.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$map$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$2+8>>2]|0; + _LoadHeightmap($3,$$byval_copy1,$map$byval_copy); + _memcpy((17308|0),($3|0),264)|0; + ;HEAP32[(17496)>>2]=HEAP32[17288>>2]|0;HEAP32[(17496)+4>>2]=HEAP32[17288+4>>2]|0;HEAP32[(17496)+8>>2]=HEAP32[17288+8>>2]|0;HEAP32[(17496)+12>>2]=HEAP32[17288+12>>2]|0;HEAP32[(17496)+16>>2]=HEAP32[17288+16>>2]|0; + ;HEAP32[$map$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($map$byval_copy); + dest=$map$byval_copy; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetCameraMode($map$byval_copy,2); + _emscripten_set_main_loop((1|0),0,1); + ;HEAP32[$map$byval_copy>>2]=HEAP32[17288>>2]|0;HEAP32[$map$byval_copy+4>>2]=HEAP32[17288+4>>2]|0;HEAP32[$map$byval_copy+8>>2]=HEAP32[17288+8>>2]|0;HEAP32[$map$byval_copy+12>>2]=HEAP32[17288+12>>2]|0;HEAP32[$map$byval_copy+16>>2]=HEAP32[17288+16>>2]|0; + _UnloadTexture($map$byval_copy); + _memcpy(($map$byval_copy|0),(17308|0),264)|0; + _UnloadModel($map$byval_copy); + _CloseWindow(); + STACKTOP = sp;return 0; +} +function _UpdateDrawFrame() { + var $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $map$byval_copy = 0, $texture$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); + $$byval_copy2 = sp + 288|0; + $texture$byval_copy = sp + 268|0; + $map$byval_copy = sp; + $0 = sp + 336|0; + $1 = sp + 332|0; + $2 = sp + 264|0; + $3 = sp + 328|0; + _UpdateCamera(16); + _BeginDrawing(); + HEAP8[$0>>0] = -11; + $4 = ((($0)) + 1|0); + HEAP8[$4>>0] = -11; + $5 = ((($0)) + 2|0); + HEAP8[$5>>0] = -11; + $6 = ((($0)) + 3|0); + HEAP8[$6>>0] = -1; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$0+3>>0]|0; + _ClearBackground($$byval_copy2); + dest=$$byval_copy2; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($$byval_copy2); + HEAP8[$1>>0] = -26; + $7 = ((($1)) + 1|0); + HEAP8[$7>>0] = 41; + $8 = ((($1)) + 2|0); + HEAP8[$8>>0] = 55; + $9 = ((($1)) + 3|0); + HEAP8[$9>>0] = -1; + _memcpy(($map$byval_copy|0),(17308|0),264)|0; + ;HEAP32[$texture$byval_copy>>2]=HEAP32[56>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[56+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[56+8>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$1+3>>0]|0; + _DrawModel($map$byval_copy,$texture$byval_copy,1.0,$$byval_copy2); + _DrawGrid(20,1.0); + _End3dMode(); + $10 = HEAP32[2]|0; + $11 = HEAP32[(17292)>>2]|0; + $12 = (($10) + -20)|0; + $13 = (($12) - ($11))|0; + HEAP32[$2>>2] = -1; + ;HEAP32[$texture$byval_copy>>2]=HEAP32[17288>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[17288+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[17288+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[17288+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[17288+16>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$2+3>>0]|0; + _DrawTexture($texture$byval_copy,$13,20,$$byval_copy2); + $14 = HEAP32[2]|0; + $15 = HEAP32[(17292)>>2]|0; + $16 = (($14) + -20)|0; + $17 = (($16) - ($15))|0; + $18 = HEAP32[(17296)>>2]|0; + HEAP8[$3>>0] = 0; + $19 = ((($3)) + 1|0); + HEAP8[$19>>0] = -28; + $20 = ((($3)) + 2|0); + HEAP8[$20>>0] = 48; + $21 = ((($3)) + 3|0); + HEAP8[$21>>0] = -1; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$3+3>>0]|0; + _DrawRectangleLines($17,20,$15,$18,$$byval_copy2); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixInvert($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0; + var $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0; + var $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0.0; + var $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0; + var $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0; + var $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0; + var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0; + var $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = ((($0)) + 16|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 32|0); + $5 = +HEAPF32[$4>>2]; + $6 = ((($0)) + 48|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 20|0); + $11 = +HEAPF32[$10>>2]; + $12 = ((($0)) + 36|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($0)) + 52|0); + $15 = +HEAPF32[$14>>2]; + $16 = ((($0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + $18 = ((($0)) + 24|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($0)) + 40|0); + $21 = +HEAPF32[$20>>2]; + $22 = ((($0)) + 56|0); + $23 = +HEAPF32[$22>>2]; + $24 = ((($0)) + 12|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($0)) + 28|0); + $27 = +HEAPF32[$26>>2]; + $28 = ((($0)) + 44|0); + $29 = +HEAPF32[$28>>2]; + $30 = ((($0)) + 60|0); + $31 = +HEAPF32[$30>>2]; + $32 = $1 * $11; + $33 = $3 * $9; + $34 = $32 - $33; + $35 = $1 * $13; + $36 = $5 * $9; + $37 = $35 - $36; + $38 = $1 * $15; + $39 = $7 * $9; + $40 = $38 - $39; + $41 = $3 * $13; + $42 = $5 * $11; + $43 = $41 - $42; + $44 = $3 * $15; + $45 = $7 * $11; + $46 = $44 - $45; + $47 = $5 * $15; + $48 = $7 * $13; + $49 = $47 - $48; + $50 = $17 * $27; + $51 = $19 * $25; + $52 = $50 - $51; + $53 = $17 * $29; + $54 = $21 * $25; + $55 = $53 - $54; + $56 = $17 * $31; + $57 = $23 * $25; + $58 = $56 - $57; + $59 = $19 * $29; + $60 = $21 * $27; + $61 = $59 - $60; + $62 = $19 * $31; + $63 = $23 * $27; + $64 = $62 - $63; + $65 = $21 * $31; + $66 = $23 * $29; + $67 = $65 - $66; + $68 = $34 * $67; + $69 = $37 * $64; + $70 = $68 - $69; + $71 = $40 * $61; + $72 = $71 + $70; + $73 = $43 * $58; + $74 = $73 + $72; + $75 = $46 * $55; + $76 = $74 - $75; + $77 = $49 * $52; + $78 = $77 + $76; + $79 = 1.0 / $78; + $80 = $11 * $67; + $81 = $13 * $64; + $82 = $80 - $81; + $83 = $15 * $61; + $84 = $83 + $82; + $85 = $84 * $79; + $86 = $3 * $67; + $87 = $5 * $64; + $88 = $87 - $86; + $89 = $7 * $61; + $90 = $88 - $89; + $91 = $90 * $79; + $92 = $49 * $27; + $93 = $46 * $29; + $94 = $92 - $93; + $95 = $43 * $31; + $96 = $94 + $95; + $97 = $96 * $79; + $98 = $19 * $49; + $99 = $46 * $21; + $100 = $99 - $98; + $101 = $43 * $23; + $102 = $100 - $101; + $103 = $102 * $79; + $104 = -$9; + $105 = $67 * $104; + $106 = $13 * $58; + $107 = $105 + $106; + $108 = $15 * $55; + $109 = $107 - $108; + $110 = $109 * $79; + $111 = $1 * $67; + $112 = $5 * $58; + $113 = $111 - $112; + $114 = $7 * $55; + $115 = $114 + $113; + $116 = $115 * $79; + $117 = -$25; + $118 = $49 * $117; + $119 = $40 * $29; + $120 = $118 + $119; + $121 = $37 * $31; + $122 = $120 - $121; + $123 = $122 * $79; + $124 = $17 * $49; + $125 = $40 * $21; + $126 = $124 - $125; + $127 = $37 * $23; + $128 = $126 + $127; + $129 = $128 * $79; + $130 = $9 * $64; + $131 = $11 * $58; + $132 = $130 - $131; + $133 = $15 * $52; + $134 = $133 + $132; + $135 = $134 * $79; + $136 = $1 * $64; + $137 = $3 * $58; + $138 = $137 - $136; + $139 = $7 * $52; + $140 = $138 - $139; + $141 = $140 * $79; + $142 = $46 * $25; + $143 = $40 * $27; + $144 = $142 - $143; + $145 = $34 * $31; + $146 = $144 + $145; + $147 = $146 * $79; + $148 = $17 * $46; + $149 = $19 * $40; + $150 = $149 - $148; + $151 = $34 * $23; + $152 = $150 - $151; + $153 = $152 * $79; + $154 = $61 * $104; + $155 = $11 * $55; + $156 = $154 + $155; + $157 = $13 * $52; + $158 = $156 - $157; + $159 = $158 * $79; + $160 = $1 * $61; + $161 = $3 * $55; + $162 = $160 - $161; + $163 = $5 * $52; + $164 = $163 + $162; + $165 = $164 * $79; + $166 = $43 * $117; + $167 = $37 * $27; + $168 = $166 + $167; + $169 = $34 * $29; + $170 = $168 - $169; + $171 = $170 * $79; + $172 = $17 * $43; + $173 = $37 * $19; + $174 = $172 - $173; + $175 = $34 * $21; + $176 = $174 + $175; + $177 = $176 * $79; + HEAPF32[$0>>2] = $85; + HEAPF32[$8>>2] = $110; + HEAPF32[$16>>2] = $135; + HEAPF32[$24>>2] = $159; + HEAPF32[$2>>2] = $91; + HEAPF32[$10>>2] = $116; + HEAPF32[$18>>2] = $141; + HEAPF32[$26>>2] = $165; + HEAPF32[$4>>2] = $97; + HEAPF32[$12>>2] = $123; + HEAPF32[$20>>2] = $147; + HEAPF32[$28>>2] = $171; + HEAPF32[$6>>2] = $103; + HEAPF32[$14>>2] = $129; + HEAPF32[$22>>2] = $153; + HEAPF32[$30>>2] = $177; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[4394] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 17008; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 17048; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[4262]; + $111 = +HEAPF32[4252]; + $112 = $110 - $111; + HEAPF32[4264] = $112; + $113 = +HEAPF32[(17052)>>2]; + $114 = +HEAPF32[(17012)>>2]; + $115 = $113 - $114; + HEAPF32[(17060)>>2] = $115; + HEAP32[4393] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17040>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17040+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17064>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17064+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[4399] = $116; + $117 = 17040; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 17008; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 17064; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 17048; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 17040; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 17064; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[4266]; + $160 = +HEAPF32[4260]; + $161 = $159 - $160; + HEAPF32[4264] = $161; + $162 = +HEAPF32[(17068)>>2]; + $163 = +HEAPF32[(17044)>>2]; + $164 = $162 - $163; + HEAPF32[(17060)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17008>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17008+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17040>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17040+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17048>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17048+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17064>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17064+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17040>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17040+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17064>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17064+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[4399]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[4393] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17040>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17040+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17064>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17064+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[4400] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[4399] = 0.0; + HEAPF32[4400] = 0.0; + HEAPF32[4264] = 0.0; + HEAPF32[(17060)>>2] = 0.0; + HEAP32[4394] = 0; + HEAP32[4393] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[4395]|0; + $7 = (($6) + 1)|0; + HEAP32[4395] = $7; + $8 = HEAP32[4393]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17008>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17008+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[4393] = 2; + HEAP32[4395] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[4395] = 1; + HEAP32[4393] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 17008; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 17016; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 17024; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[17] = $34; + HEAPF32[4258] = 0.0; + HEAPF32[(17036)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[4393]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 17024; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17008>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17008+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17024>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17024+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[4396] = $49; + HEAP32[4397] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[17]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17008>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17008+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17024>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17024+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[4398] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[4396] = 0.0; + HEAPF32[4398] = 0.0; + $$sink10 = 0; + } + HEAP32[4393] = $$sink10; + HEAPF32[4254] = 0.0; + HEAPF32[(17020)>>2] = 0.0; + HEAP32[4394] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[4397]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[4397] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 17040; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[4393]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17008>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17008+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17040>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17040+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[4393] = 8; + } + } + $82 = +HEAPF32[4260]; + $83 = +HEAPF32[4254]; + $84 = $82 - $83; + HEAPF32[4258] = $84; + $85 = +HEAPF32[(17044)>>2]; + $86 = +HEAPF32[(17020)>>2]; + $87 = $85 - $86; + HEAPF32[(17036)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4393]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[4394]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[4393] = 4; + } + $4 = HEAP32[4393]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[4393] = 0; + return; +} +function _SetCameraMode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$023$0$$sroa_idx = 0, $$sroa$023$0$copyload = 0.0, $$sroa$030$0$copyload = 0.0, $$sroa$4$0$$sroa_idx25 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$432$0$$sroa_idx33 = 0, $$sroa$432$0$copyload = 0.0, $$sroa$527$0$$sroa_idx28 = 0, $$sroa$527$0$copyload = 0.0, $$sroa$535$0$$sroa_idx36 = 0, $$sroa$535$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0; + var $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $$sroa$030$0$copyload = +HEAPF32[$0>>2]; + $$sroa$432$0$$sroa_idx33 = ((($0)) + 4|0); + $$sroa$432$0$copyload = +HEAPF32[$$sroa$432$0$$sroa_idx33>>2]; + $$sroa$535$0$$sroa_idx36 = ((($0)) + 8|0); + $$sroa$535$0$copyload = +HEAPF32[$$sroa$535$0$$sroa_idx36>>2]; + $$sroa$023$0$$sroa_idx = ((($0)) + 12|0); + $$sroa$023$0$copyload = +HEAPF32[$$sroa$023$0$$sroa_idx>>2]; + $$sroa$4$0$$sroa_idx25 = ((($0)) + 16|0); + $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx25>>2]; + $$sroa$527$0$$sroa_idx28 = ((($0)) + 20|0); + $$sroa$527$0$copyload = +HEAPF32[$$sroa$527$0$$sroa_idx28>>2]; + $2 = $$sroa$023$0$copyload - $$sroa$030$0$copyload; + $3 = $$sroa$4$0$copyload - $$sroa$432$0$copyload; + $4 = $$sroa$527$0$copyload - $$sroa$535$0$copyload; + $5 = $2 * $2; + $6 = $3 * $3; + $7 = $5 + $6; + $8 = $4 * $4; + $9 = $7 + $8; + $10 = (+Math_sqrt((+$9))); + HEAPF32[4401] = $10; + $11 = $5 + $8; + $12 = (+Math_sqrt((+$11))); + $13 = (+Math_sqrt((+$7))); + $14 = (+Math_abs((+$2))); + $15 = $14 / $12; + $16 = (+Math_asin((+$15))); + HEAPF32[4402] = $16; + $17 = (+Math_abs((+$3))); + $18 = $17 / $13; + $19 = (+Math_asin((+$18))); + $20 = -$19; + HEAPF32[4403] = $20; + $21 = HEAP32[$$sroa$432$0$$sroa_idx33>>2]|0; + HEAP32[18] = $21; + HEAP32[4404] = $1; + return; +} +function _UpdateCamera($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$byval_copy3 = 0, $$not = 0, $$not188 = 0, $$off187 = 0, $$pr = 0, $$pr190 = 0, $$sink = 0.0, $$sink17 = 0, $$sink22 = 0.0, $$sink22$p = 0.0, $$sink26 = 0.0, $$sink28 = 0.0, $$sroa$095$0 = 0.0, $$sroa$9$0 = 0.0, $1 = 0, $10 = 0, $100 = 0.0, $101 = 0.0; + var $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0; + var $120 = 0.0, $121 = 0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0.0; + var $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0, $152 = 0.0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0; + var $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0, $168 = 0.0, $169 = 0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0; + var $175 = 0.0, $176 = 0, $177 = 0.0, $178 = 0.0, $179 = 0.0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0.0, $185 = 0.0, $186 = 0.0, $187 = 0.0, $188 = 0.0, $189 = 0.0, $19 = 0, $190 = 0.0, $191 = 0, $192 = 0.0; + var $193 = 0, $194 = 0.0, $195 = 0.0, $196 = 0.0, $197 = 0.0, $198 = 0.0, $199 = 0.0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0.0, $205 = 0.0, $206 = 0.0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; + var $210 = 0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $214 = 0.0, $215 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0.0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0.0, $228 = 0.0; + var $229 = 0.0, $23 = 0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0.0, $234 = 0.0, $235 = 0.0, $236 = 0, $237 = 0.0, $238 = 0.0, $239 = 0.0, $24 = 0, $240 = 0.0, $241 = 0.0, $242 = 0, $243 = 0.0, $244 = 0.0, $245 = 0.0, $246 = 0.0; + var $247 = 0.0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0.0, $251 = 0, $252 = 0.0, $253 = 0.0, $254 = 0.0, $255 = 0.0, $256 = 0.0, $257 = 0.0, $258 = 0.0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0.0; + var $265 = 0.0, $266 = 0, $267 = 0.0, $268 = 0.0, $269 = 0, $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0.0, $273 = 0.0, $274 = 0, $275 = 0.0, $276 = 0.0, $277 = 0.0, $278 = 0, $279 = 0.0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0.0; + var $283 = 0.0, $284 = 0.0, $285 = 0.0, $286 = 0.0, $287 = 0.0, $288 = 0.0, $289 = 0.0, $29 = 0, $290 = 0, $291 = 0.0, $292 = 0.0, $293 = 0, $294 = 0.0, $295 = 0.0, $296 = 0.0, $297 = 0, $298 = 0.0, $299 = 0.0, $3 = 0, $30 = 0; + var $300 = 0.0, $301 = 0.0, $302 = 0.0, $303 = 0.0, $304 = 0.0, $305 = 0.0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0.0, $314 = 0.0, $315 = 0.0, $316 = 0.0, $317 = 0.0, $318 = 0.0; + var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0.0, $324 = 0.0, $325 = 0.0, $326 = 0.0, $327 = 0, $328 = 0.0, $329 = 0.0, $33 = 0, $330 = 0.0, $331 = 0.0, $332 = 0.0, $333 = 0.0, $334 = 0.0, $335 = 0.0, $336 = 0; + var $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0.0, $341 = 0.0, $342 = 0.0, $343 = 0.0, $344 = 0, $345 = 0, $346 = 0.0, $347 = 0.0, $348 = 0.0, $349 = 0.0, $35 = 0, $350 = 0.0, $351 = 0, $352 = 0.0, $353 = 0.0, $354 = 0.0; + var $355 = 0.0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0.0, $36 = 0, $360 = 0.0, $361 = 0.0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0.0, $367 = 0, $368 = 0.0, $369 = 0.0, $37 = 0.0, $370 = 0.0, $371 = 0.0, $372 = 0.0; + var $373 = 0.0, $374 = 0.0, $375 = 0.0, $376 = 0, $377 = 0.0, $378 = 0.0, $379 = 0, $38 = 0.0, $380 = 0, $381 = 0.0, $382 = 0.0, $383 = 0.0, $384 = 0.0, $385 = 0.0, $386 = 0.0, $387 = 0.0, $388 = 0, $389 = 0.0, $39 = 0.0, $390 = 0.0; + var $391 = 0, $392 = 0.0, $393 = 0.0, $394 = 0, $395 = 0.0, $396 = 0.0, $397 = 0.0, $398 = 0.0, $399 = 0, $4 = 0, $40 = 0, $400 = 0.0, $401 = 0.0, $402 = 0.0, $403 = 0, $404 = 0.0, $405 = 0.0, $406 = 0, $407 = 0, $408 = 0; + var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; + var $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0; + var $7 = 0, $70 = 0.0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0, $87 = 0; + var $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0.0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond189 = 0, $or$cond3 = 0; + var $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $storemerge = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy3 = sp + 72|0; + $1 = sp + 56|0; + $2 = sp + 16|0; + $3 = sp + 64|0; + $4 = sp + 48|0; + $5 = sp + 40|0; + $6 = sp + 8|0; + $7 = sp; + _GetMousePosition($1); + $8 = (_GetMouseWheelMove()|0); + $9 = HEAP32[19]|0; + $10 = (_IsMouseButtonDown($9)|0); + $11 = HEAP32[20]|0; + $12 = (_IsKeyDown($11)|0); + $13 = HEAP32[21]|0; + $14 = (_IsKeyDown($13)|0); + $15 = HEAP32[22]|0; + $16 = (_IsKeyDown($15)|0); + HEAP32[$2>>2] = $16; + $17 = ((($2)) + 4|0); + $18 = HEAP32[23]|0; + $19 = (_IsKeyDown($18)|0); + HEAP32[$17>>2] = $19; + $20 = ((($2)) + 8|0); + $21 = HEAP32[24]|0; + $22 = (_IsKeyDown($21)|0); + HEAP32[$20>>2] = $22; + $23 = ((($2)) + 12|0); + $24 = HEAP32[25]|0; + $25 = (_IsKeyDown($24)|0); + HEAP32[$23>>2] = $25; + $26 = ((($2)) + 16|0); + $27 = HEAP32[26]|0; + $28 = (_IsKeyDown($27)|0); + HEAP32[$26>>2] = $28; + $29 = ((($2)) + 20|0); + $30 = HEAP32[27]|0; + $31 = (_IsKeyDown($30)|0); + HEAP32[$29>>2] = $31; + $32 = HEAP32[4404]|0; + $33 = ($32|0)==(0); + L1: do { + if ($33) { + label = 58; + } else { + $34 = (_GetScreenWidth()|0); + $35 = (_GetScreenHeight()|0); + $$off187 = (($32) + -3)|0; + $36 = ($$off187>>>0)<(2); + do { + if ($36) { + _HideCursor(); + $37 = +HEAPF32[$1>>2]; + $38 = (+($35|0)); + $39 = $38 / 3.0; + $40 = $37 < $39; + $41 = ((($1)) + 4|0); + $42 = +HEAPF32[$41>>2]; + if ($40) { + $43 = (($35|0) / 3)&-1; + $44 = (($34) - ($43))|0; + $45 = (+($44|0)); + HEAPF32[$3>>2] = $45; + $46 = ((($3)) + 4|0); + HEAPF32[$46>>2] = $42; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$3+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $47 = $42 < $39; + if ($47) { + HEAPF32[$4>>2] = $37; + $48 = ((($4)) + 4|0); + $49 = (($35|0) / 3)&-1; + $50 = (($35) - ($49))|0; + $51 = (+($50|0)); + HEAPF32[$48>>2] = $51; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $52 = (+($34|0)); + $53 = $52 - $39; + $54 = $37 > $53; + if ($54) { + $55 = (($35|0) / 3)&-1; + $56 = (+($55|0)); + HEAPF32[$5>>2] = $56; + $57 = ((($5)) + 4|0); + $58 = HEAP32[$41>>2]|0; + HEAP32[$57>>2] = $58; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$5+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $59 = $38 - $39; + $60 = $42 > $59; + if ($60) { + HEAPF32[$6>>2] = $37; + $61 = ((($6)) + 4|0); + $62 = (($35|0) / 3)&-1; + $63 = (+($62|0)); + HEAPF32[$61>>2] = $63; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } else { + $64 = +HEAPF32[4268]; + $65 = $37 - $64; + $66 = +HEAPF32[(17076)>>2]; + $67 = $42 - $66; + $$sroa$095$0 = $65;$$sroa$9$0 = $67; + break; + } + } else { + _ShowCursor(); + $68 = +HEAPF32[$1>>2]; + $69 = +HEAPF32[4268]; + $70 = $68 - $69; + $71 = ((($1)) + 4|0); + $72 = +HEAPF32[$71>>2]; + $73 = +HEAPF32[(17076)>>2]; + $74 = $72 - $73; + $$sroa$095$0 = $70;$$sroa$9$0 = $74; + } + } while(0); + _GetMousePosition($7); + $75 = $7; + $76 = $75; + $77 = HEAP32[$76>>2]|0; + $78 = (($75) + 4)|0; + $79 = $78; + $80 = HEAP32[$79>>2]|0; + $81 = 17072; + $82 = $81; + HEAP32[$82>>2] = $77; + $83 = (($81) + 4)|0; + $84 = $83; + HEAP32[$84>>2] = $80; + $$pr = HEAP32[4404]|0; + switch ($$pr|0) { + case 1: { + $85 = +HEAPF32[4401]; + $86 = $85 < 120.0; + $87 = ($8|0)<(0); + $or$cond3 = $87 & $86; + do { + if ($or$cond3) { + $88 = (+($8|0)); + $89 = $88 * 1.5; + $90 = $85 - $89; + HEAPF32[4401] = $90; + $91 = $90 > 120.0; + if ($91) { + HEAPF32[4401] = 120.0; + } + } else { + $92 = ((($0)) + 4|0); + $93 = +HEAPF32[$92>>2]; + $94 = ((($0)) + 12|0); + $95 = ((($0)) + 16|0); + $96 = +HEAPF32[$95>>2]; + $97 = $93 > $96; + $98 = $85 == 120.0; + $or$cond5 = $98 & $97; + $or$cond7 = $87 & $or$cond5; + if ($or$cond7) { + $99 = (+($8|0)); + $100 = +HEAPF32[$94>>2]; + $101 = +HEAPF32[$0>>2]; + $102 = $100 - $101; + $103 = $99 * $102; + $104 = $103 * 1.5; + $105 = $104 / $85; + $106 = $100 + $105; + HEAPF32[$94>>2] = $106; + $107 = $96 - $93; + $108 = $99 * $107; + $109 = $108 * 1.5; + $110 = $109 / $85; + $111 = $96 + $110; + HEAPF32[$95>>2] = $111; + $112 = ((($0)) + 20|0); + $113 = +HEAPF32[$112>>2]; + $114 = ((($0)) + 8|0); + $115 = +HEAPF32[$114>>2]; + $116 = $113 - $115; + $117 = $99 * $116; + $118 = $117 * 1.5; + $119 = $118 / $85; + $120 = $113 + $119; + HEAPF32[$112>>2] = $120; + break; + } + $$not = $97 ^ 1; + $121 = !($96 >= 0.0); + $or$cond = $121 | $$not; + if (!($or$cond)) { + $122 = (+($8|0)); + $123 = +HEAPF32[$94>>2]; + $124 = +HEAPF32[$0>>2]; + $125 = $123 - $124; + $126 = $122 * $125; + $127 = $126 * 1.5; + $128 = $127 / $85; + $129 = $123 + $128; + HEAPF32[$94>>2] = $129; + $130 = $96 - $93; + $131 = $122 * $130; + $132 = $131 * 1.5; + $133 = $132 / $85; + $134 = $96 + $133; + HEAPF32[$95>>2] = $134; + $135 = ((($0)) + 20|0); + $136 = +HEAPF32[$135>>2]; + $137 = ((($0)) + 8|0); + $138 = +HEAPF32[$137>>2]; + $139 = $136 - $138; + $140 = $122 * $139; + $141 = $140 * 1.5; + $142 = $141 / $85; + $143 = $136 + $142; + HEAPF32[$135>>2] = $143; + break; + } + if ($97) { + $144 = $96 < 0.0; + $145 = ($8|0)>(0); + $or$cond9 = $145 & $144; + if ($or$cond9) { + $146 = (+($8|0)); + $147 = $146 * 1.5; + $148 = $85 - $147; + HEAPF32[4401] = $148; + $149 = $148 < 0.30000001192092896; + if (!($149)) { + break; + } + HEAPF32[4401] = 0.30000001192092896; + break; + } + } + $150 = $93 < $96; + $or$cond11 = $98 & $150; + $or$cond13 = $87 & $or$cond11; + $151 = +HEAPF32[$95>>2]; + $152 = +HEAPF32[$92>>2]; + if ($or$cond13) { + $153 = (+($8|0)); + $154 = +HEAPF32[$94>>2]; + $155 = +HEAPF32[$0>>2]; + $156 = $154 - $155; + $157 = $153 * $156; + $158 = $157 * 1.5; + $159 = $158 / $85; + $160 = $154 + $159; + HEAPF32[$94>>2] = $160; + $161 = $151 - $152; + $162 = $153 * $161; + $163 = $162 * 1.5; + $164 = +HEAPF32[4401]; + $165 = $163 / $164; + $166 = $151 + $165; + HEAPF32[$95>>2] = $166; + $167 = ((($0)) + 20|0); + $168 = +HEAPF32[$167>>2]; + $169 = ((($0)) + 8|0); + $170 = +HEAPF32[$169>>2]; + $171 = $168 - $170; + $172 = $153 * $171; + $173 = $172 * 1.5; + $174 = $173 / $164; + $175 = $168 + $174; + HEAPF32[$167>>2] = $175; + break; + } + $$not188 = $150 ^ 1; + $176 = !($96 <= 0.0); + $or$cond189 = $176 | $$not188; + if (!($or$cond189)) { + $177 = (+($8|0)); + $178 = +HEAPF32[$94>>2]; + $179 = +HEAPF32[$0>>2]; + $180 = $178 - $179; + $181 = $177 * $180; + $182 = $181 * 1.5; + $183 = $182 / $85; + $184 = $178 + $183; + HEAPF32[$94>>2] = $184; + $185 = $151 - $152; + $186 = $177 * $185; + $187 = $186 * 1.5; + $188 = +HEAPF32[4401]; + $189 = $187 / $188; + $190 = $151 + $189; + HEAPF32[$95>>2] = $190; + $191 = ((($0)) + 20|0); + $192 = +HEAPF32[$191>>2]; + $193 = ((($0)) + 8|0); + $194 = +HEAPF32[$193>>2]; + $195 = $192 - $194; + $196 = $177 * $195; + $197 = $196 * 1.5; + $198 = $197 / $188; + $199 = $192 + $198; + HEAPF32[$191>>2] = $199; + break; + } + $200 = $152 < $151; + if ($200) { + $201 = $151 > 0.0; + $202 = ($8|0)>(0); + $or$cond15 = $202 & $201; + if ($or$cond15) { + $203 = (+($8|0)); + $204 = $203 * 1.5; + $205 = +HEAPF32[4401]; + $206 = $205 - $204; + HEAPF32[4401] = $206; + $207 = $206 < 0.30000001192092896; + if ($207) { + HEAPF32[4401] = 0.30000001192092896; + } + } + } + } + } while(0); + $208 = ($10|0)==(0); + if ($208) { + label = 58; + break L1; + } + $209 = ($12|0)==(0); + if ($209) { + $222 = $$sroa$095$0 * -0.0099999997764825821; + $223 = +HEAPF32[4402]; + $224 = (+Math_cos((+$223))); + $225 = $222 * $224; + $226 = $$sroa$9$0 * 0.0099999997764825821; + $227 = (+Math_sin((+$223))); + $228 = $226 * $227; + $229 = +HEAPF32[4403]; + $230 = (+Math_sin((+$229))); + $231 = $228 * $230; + $232 = $225 + $231; + $233 = +HEAPF32[4401]; + $234 = $233 / 5.0999999046325684; + $235 = $232 * $234; + $236 = ((($0)) + 12|0); + $237 = +HEAPF32[$236>>2]; + $238 = $237 + $235; + HEAPF32[$236>>2] = $238; + $239 = (+Math_cos((+$229))); + $240 = $226 * $239; + $241 = $234 * $240; + $242 = ((($0)) + 16|0); + $243 = +HEAPF32[$242>>2]; + $244 = $243 + $241; + HEAPF32[$242>>2] = $244; + $245 = $$sroa$095$0 * 0.0099999997764825821; + $246 = $245 * $227; + $247 = $226 * $224; + $248 = $247 * $230; + $249 = $246 + $248; + $250 = $249 * $234; + $251 = ((($0)) + 20|0); + $252 = +HEAPF32[$251>>2]; + $253 = $250 + $252; + HEAPF32[$251>>2] = $253; + label = 58; + break L1; + } + $210 = ($14|0)==(0); + if (!($210)) { + $211 = $$sroa$9$0 * 0.05000000074505806; + $212 = +HEAPF32[4401]; + $213 = $211 + $212; + HEAPF32[4401] = $213; + label = 58; + break L1; + } + $214 = $$sroa$095$0 * 0.0099999997764825821; + $215 = +HEAPF32[4402]; + $216 = $215 - $214; + HEAPF32[4402] = $216; + $217 = $$sroa$9$0 * 0.0099999997764825821; + $218 = +HEAPF32[4403]; + $219 = $218 - $217; + HEAPF32[4403] = $219; + $220 = $219 > 1.483529806137085; + if ($220) { + HEAPF32[4403] = 1.483529806137085; + label = 58; + break L1; + } + $221 = $219 < -1.483529806137085; + if (!($221)) { + label = 58; + break L1; + } + HEAPF32[4403] = -1.483529806137085; + label = 58; + break L1; + break; + } + case 2: { + $254 = +HEAPF32[4402]; + $255 = $254 + 0.0099999997764825821; + HEAPF32[4402] = $255; + $256 = (+($8|0)); + $257 = $256 * 1.5; + $258 = +HEAPF32[4401]; + $259 = $258 - $257; + HEAPF32[4401] = $259; + $260 = $259 < 1.2000000476837158; + if (!($260)) { + label = 58; + break L1; + } + HEAPF32[4401] = 1.2000000476837158; + label = 58; + break L1; + break; + } + case 4: case 3: { + $264 = +HEAPF32[4402]; + $265 = (+Math_sin((+$264))); + $266 = HEAP32[$17>>2]|0; + $267 = (+($266>>>0)); + $268 = $265 * $267; + $269 = HEAP32[$2>>2]|0; + $270 = (+($269>>>0)); + $271 = $265 * $270; + $272 = $268 - $271; + $273 = (+Math_cos((+$264))); + $274 = HEAP32[$23>>2]|0; + $275 = (+($274>>>0)); + $276 = $273 * $275; + $277 = $272 - $276; + $278 = HEAP32[$20>>2]|0; + $279 = (+($278>>>0)); + $280 = $273 * $279; + $281 = $277 + $280; + $282 = $281 / 20.0; + $283 = +HEAPF32[$0>>2]; + $284 = $283 + $282; + HEAPF32[$0>>2] = $284; + $285 = +HEAPF32[4403]; + $286 = (+Math_sin((+$285))); + $287 = $270 * $286; + $288 = $267 * $286; + $289 = $287 - $288; + $290 = HEAP32[$26>>2]|0; + $291 = (+($290>>>0)); + $292 = $289 + $291; + $293 = HEAP32[$29>>2]|0; + $294 = (+($293>>>0)); + $295 = $292 - $294; + $296 = $295 / 20.0; + $297 = ((($0)) + 4|0); + $298 = +HEAPF32[$297>>2]; + $299 = $298 + $296; + HEAPF32[$297>>2] = $299; + $300 = $267 * $273; + $301 = $273 * $270; + $302 = $300 - $301; + $303 = $265 * $275; + $304 = $302 + $303; + $305 = $265 * $279; + $306 = $304 - $305; + $307 = $306 / 20.0; + $308 = ((($0)) + 8|0); + $309 = +HEAPF32[$308>>2]; + $310 = $307 + $309; + HEAPF32[$308>>2] = $310; + $311 = HEAP32[$2>>2]|0; + $312 = ($311|0)==(0); + if ($312) { + $261 = ((($2)) + 4|0); + $262 = HEAP32[$261>>2]|0; + $263 = ($262|0)==(0); + if ($263) { + $407 = ((($2)) + 8|0); + $408 = HEAP32[$407>>2]|0; + $409 = ($408|0)==(0); + if ($409) { + $410 = ((($2)) + 12|0); + $411 = HEAP32[$410>>2]|0; + $412 = ($411|0)==(0); + if ($412) { + $413 = ((($2)) + 16|0); + $414 = HEAP32[$413>>2]|0; + $415 = ($414|0)==(0); + if ($415) { + $416 = ((($2)) + 20|0); + $417 = HEAP32[$416>>2]|0; + $not$ = ($417|0)!=(0); + $$ = $not$&1; + $$0 = $$; + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + $313 = $$sroa$095$0 * 0.0030000000260770321; + $314 = +HEAPF32[4402]; + $315 = $314 - $313; + HEAPF32[4402] = $315; + $316 = $$sroa$9$0 * 0.0030000000260770321; + $317 = +HEAPF32[4403]; + $318 = $317 - $316; + HEAPF32[4403] = $318; + $319 = HEAP32[4404]|0; + $320 = ($319|0)==(4); + if ($320) { + $321 = $318 > 0.087266460061073303; + if ($321) { + $$sink26 = 0.087266460061073303; + label = 49; + } else { + $322 = $318 < -1.483529806137085; + if ($322) { + $$sink26 = -1.483529806137085; + label = 49; + } + } + if ((label|0) == 49) { + HEAPF32[4403] = $$sink26; + } + $323 = (+($8|0)); + $324 = $323 * 1.5; + $325 = +HEAPF32[4401]; + $326 = $325 - $324; + $327 = $326 < 1.2000000476837158; + $storemerge = $327 ? 1.2000000476837158 : $326; + HEAPF32[4401] = $storemerge; + $328 = +HEAPF32[$0>>2]; + $329 = +HEAPF32[4402]; + $330 = (+Math_cos((+$329))); + $331 = $330 * 0.40000000596046448; + $332 = $328 + $331; + $333 = (+Math_sin((+$329))); + $334 = $333 * 0.0; + $335 = $332 + $334; + $336 = ((($0)) + 12|0); + HEAPF32[$336>>2] = $335; + $337 = +HEAPF32[$297>>2]; + $338 = $337 + 0.0; + $339 = ((($0)) + 16|0); + HEAPF32[$339>>2] = $338; + $340 = +HEAPF32[$308>>2]; + $341 = $334 + $340; + $342 = $333 * 0.40000000596046448; + $343 = $341 - $342; + $$sink = $343;$$sink17 = $336; + } else { + $344 = $318 > 1.483529806137085; + if ($344) { + $$sink28 = 1.483529806137085; + label = 53; + } else { + $345 = $318 < -1.483529806137085; + if ($345) { + $$sink28 = -1.483529806137085; + label = 53; + } + } + if ((label|0) == 53) { + HEAPF32[4403] = $$sink28; + } + $346 = +HEAPF32[$0>>2]; + $347 = +HEAPF32[4402]; + $348 = (+Math_sin((+$347))); + $349 = $348 * 25.0; + $350 = $346 - $349; + $351 = ((($0)) + 12|0); + HEAPF32[$351>>2] = $350; + $352 = +HEAPF32[$297>>2]; + $353 = +HEAPF32[4403]; + $354 = (+Math_sin((+$353))); + $355 = $354 * 25.0; + $356 = $352 + $355; + $357 = ((($0)) + 16|0); + HEAPF32[$357>>2] = $356; + $358 = +HEAPF32[$308>>2]; + $359 = (+Math_cos((+$347))); + $360 = $359 * 25.0; + $361 = $358 - $360; + $362 = ((($0)) + 20|0); + HEAPF32[$362>>2] = $361; + $363 = ($$0|0)==(0); + if (!($363)) { + $364 = HEAP32[4405]|0; + $365 = (($364) + 1)|0; + HEAP32[4405] = $365; + } + $366 = +HEAPF32[18]; + $367 = HEAP32[4405]|0; + $368 = (+($367|0)); + $369 = $368 / 5.0; + $370 = (+Math_sin((+$369))); + $371 = $370 / 30.0; + $372 = $366 - $371; + HEAPF32[$297>>2] = $372; + $373 = $368 / 10.0; + $374 = (+Math_sin((+$373))); + $375 = $374 / 200.0; + $376 = ((($0)) + 24|0); + HEAPF32[$376>>2] = $375; + $377 = -$374; + $378 = $377 / 200.0; + $$sink = $378;$$sink17 = $376; + } + $379 = ((($$sink17)) + 8|0); + HEAPF32[$379>>2] = $$sink; + label = 58; + break L1; + break; + } + default: { + $380 = $$pr; + break L1; + } + } + } + } while(0); + if ((label|0) == 58) { + $$pr190 = HEAP32[4404]|0; + $380 = $$pr190; + } + switch ($380|0) { + case 1: case 2: case 4: { + break; + } + default: { + STACKTOP = sp;return; + } + } + $381 = +HEAPF32[4402]; + $382 = (+Math_sin((+$381))); + $383 = +HEAPF32[4401]; + $384 = $382 * $383; + $385 = +HEAPF32[4403]; + $386 = (+Math_cos((+$385))); + $387 = $384 * $386; + $388 = ((($0)) + 12|0); + $389 = +HEAPF32[$388>>2]; + $390 = $387 + $389; + HEAPF32[$0>>2] = $390; + $391 = !($385 <= 0.0); + $392 = (+Math_sin((+$385))); + $393 = +HEAPF32[4401]; + $394 = ((($0)) + 16|0); + $395 = +HEAPF32[$394>>2]; + $396 = $392 * $393; + $397 = $392 * $396; + $398 = -$397; + $$sink22$p = $391 ? $398 : $397; + $$sink22 = $395 + $$sink22$p; + $399 = ((($0)) + 4|0); + HEAPF32[$399>>2] = $$sink22; + $400 = (+Math_cos((+$381))); + $401 = $393 * $400; + $402 = $386 * $401; + $403 = ((($0)) + 20|0); + $404 = +HEAPF32[$403>>2]; + $405 = $404 + $402; + $406 = ((($0)) + 8|0); + HEAPF32[$406>>2] = $405; + STACKTOP = sp;return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 17080; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _GetMouseWheelMove() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4410]|0; + $1 = (($0|0) / 100)&-1; + return ($1|0); +} +function _IsMouseButtonDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetMouseButtonStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _IsKeyDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetKeyStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4409]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4408]|0; + return ($0|0); +} +function _HideCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4406] = 1; + return; +} +function _SetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = 17080; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + $11 = HEAP32[4407]|0; + $12 = +HEAPF32[$0>>2]; + $13 = $12; + $14 = ((($0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $15; + _glfwSetCursorPos(($11|0),(+$13),(+$16)); + return; +} +function _ShowCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4406] = 0; + return; +} +function _GetKeyStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4407]|0; + $2 = (_glfwGetKey(($1|0),($0|0))|0); + return ($2|0); +} +function _GetMouseButtonStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4407]|0; + $2 = (_glfwGetMouseButton(($1|0),($0|0))|0); + return ($2|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,4296,$vararg_buffer); + HEAP32[4411] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(5|0))|0); + (_emscripten_set_keypress_callback((4325|0),(0|0),1,(6|0))|0); + (_emscripten_set_click_callback((4325|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchstart_callback((4325|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchend_callback((4325|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchmove_callback((4325|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchcancel_callback((4325|0),(0|0),1,(8|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(9|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(9|0))|0); + $3 = HEAP32[4409]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[4270] = $5; + $6 = HEAP32[4408]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(17084)>>2] = $8; + $9 = HEAP32[4412]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[17120>>0]=HEAP8[8854>>0]|0;HEAP8[17120+1>>0]=HEAP8[8854+1>>0]|0;HEAP8[17120+2>>0]=HEAP8[8854+2>>0]|0;HEAP8[17120+3>>0]=HEAP8[8854+3>>0]|0;HEAP8[17120+4>>0]=HEAP8[8854+4>>0]|0;HEAP8[17120+5>>0]=HEAP8[8854+5>>0]|0;HEAP8[17120+6>>0]=HEAP8[8854+6>>0]|0; + break; + } + case 1: { + $3 = 17120; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=17120; src=8861; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 17120; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(17120,$1)|0); + $strlen = (_strlen(17120)|0); + $endptr = (17120 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(17120,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[4409] = $0; + HEAP32[4408] = $1; + _MatrixIdentity($2); + dest=17724; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((2|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,4996,$vararg_buffer); + } + $6 = HEAP32[4409]|0; + HEAP32[4447] = $6; + $7 = HEAP32[4408]|0; + HEAP32[4448] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[20464]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[20464]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[20464]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,5022,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[4449]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[4409]|0; + $48 = HEAP32[4408]|0; + $49 = HEAP32[4411]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[4407] = $50; + $51 = HEAP32[4409]|0; + HEAP32[4450] = $51; + $52 = HEAP32[4408]|0; + HEAP32[4451] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[4409]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[4408]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[4447] = $31; + HEAP32[4448] = $34; + } + } while(0); + $38 = HEAP32[4447]|0; + $39 = HEAP32[4448]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,5047,$vararg_buffer3); + $40 = HEAP32[4447]|0; + $41 = HEAP32[4448]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[4447]|0; + $43 = HEAP32[4448]|0; + $44 = HEAP32[4411]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[4407] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,5085,$vararg_buffer6); + } else { + _TraceLog(0,5118,$vararg_buffer8); + $55 = HEAP32[4450]|0; + $56 = HEAP32[4451]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,5158,$vararg_buffer10); + $57 = HEAP32[4409]|0; + $58 = HEAP32[4408]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,5179,$vararg_buffer14); + $59 = HEAP32[4452]|0; + $60 = HEAP32[4453]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,5200,$vararg_buffer18); + } + $61 = HEAP32[4407]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[4407]|0; + (_glfwSetCursorEnterCallback(($62|0),(3|0))|0); + $63 = HEAP32[4407]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[4407]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[4407]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[4407]|0; + (_glfwSetCharCallback(($66|0),(4|0))|0); + $67 = HEAP32[4407]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[4407]|0; + (_glfwSetWindowIconifyCallback(($68|0),(5|0))|0); + $69 = HEAP32[4407]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[20464]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[4409]|0; + $74 = HEAP32[4408]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4450]|0; + $76 = HEAP32[4452]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4451]|0; + $80 = HEAP32[4453]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,5225,$vararg_buffer22); + $73 = HEAP32[4409]|0; + $74 = HEAP32[4408]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4450]|0; + $76 = HEAP32[4452]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4451]|0; + $80 = HEAP32[4453]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(17692)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (112 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[17668>>2]=HEAP32[$1>>2]|0;HEAP32[17668+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[17668+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[17668+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[17668+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(17692)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(17696)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(17688)>>2] = $23; + $24 = HEAP32[4417]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4520,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(17672)>>2]|0; + $10 = HEAP32[(17692)>>2]|0; + $11 = HEAP32[(17696)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2160 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(17688)>>2] = $23; + $24 = HEAP32[4417]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4520,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[2139] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,4453,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,4384,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,4377)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 17096; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (17104); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (17652 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[2136] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,4333,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4412] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,4896,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[4425]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,4565,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[4426]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,4609,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[4427]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,4654,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[4428]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,4699,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[4429]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,4744,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[4425]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[4425]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[4425]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[4425]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[4426]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[4427]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[4427]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[4428]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[4428]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[4429]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[4429]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,4789,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[4430]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,4867,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,4818,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,4950,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,8816,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[4409]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[4408]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[4450] = $3; + HEAP32[4451] = $5; + HEAP32[4452] = 0; + HEAP32[4453] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,8750,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[4409]|0; + $36 = (+($35|0)); + $37 = HEAP32[4408]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[4450] = $45; + HEAP32[4451] = $37; + $46 = (($45) - ($35))|0; + HEAP32[4452] = $46; + $$sink1 = 0; + } else { + HEAP32[4450] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[4451] = $42; + HEAP32[4452] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[4453] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[4408]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,8607,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[4409]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[4408]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[4450] = $23; + HEAP32[4451] = $1; + $24 = (($0) - ($23))|0; + HEAP32[4452] = $24; + $$sink = 0; + } else { + HEAP32[4450] = $0; + $17 = HEAP32[4408]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[4451] = $20; + HEAP32[4452] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[4453] = $$sink; + $25 = HEAP32[4450]|0; + $26 = (+($25|0)); + $27 = HEAP32[4409]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=17724; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4450] = $0; + HEAP32[4451] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,8685,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[4409] = $1; + HEAP32[4408] = $2; + HEAP32[4450] = $1; + HEAP32[4451] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[765]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (20471 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[764] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (20465 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 17096; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[764] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[4823] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[4822] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,5248,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,5266,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,5284,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,5302,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,5320)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,5322,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,5357)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[4488] = 1; + $27 = (_eglGetProcAddress((5384|0))|0); + HEAP32[4489] = $27; + $28 = (_eglGetProcAddress((5405|0))|0); + HEAP32[4490] = $28; + $29 = (_eglGetProcAddress((5426|0))|0); + HEAP32[4491] = $29; + } + $30 = (_strcmp($24,5450)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[4430] = 1; + } + $32 = (_strcmp($24,5470)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,5502)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,5535)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[4425] = 1; + } + $39 = (_strcmp($24,5575)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,5611)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[4426] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,5644)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[4427] = 1; + } + $47 = (_strcmp($44,5669)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[4428] = 1; + } + $49 = (_strcmp($44,5702)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[4429] = 1; + } + $51 = (_strcmp($44,5738)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[4492] = 1; + _glGetFloatv(34047,(17972|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,5772)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[4494] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[4488]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,5875,$vararg_buffer15); + } else { + _TraceLog(0,5800,$vararg_buffer13); + } + $57 = HEAP32[4430]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,6011,$vararg_buffer19); + } else { + _TraceLog(0,5936,$vararg_buffer17); + } + $59 = HEAP32[4425]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,6103,$vararg_buffer21); + } + $61 = HEAP32[4426]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,6149,$vararg_buffer23); + } + $63 = HEAP32[4427]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,6196,$vararg_buffer25); + } + $65 = HEAP32[4428]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,6247,$vararg_buffer27); + } + $67 = HEAP32[4429]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,6294,$vararg_buffer29); + } + $69 = HEAP32[4492]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[4493]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,6341,$vararg_buffer31); + } + $73 = HEAP32[4494]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,6407,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[4495] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,6511,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,6460,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=17984; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18040; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[4524] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[4524]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[4525] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[4526] = 1; + $85 = HEAP32[4495]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[4527] = 4; + _MatrixIdentity($4); + dest=18112; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18176); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18240); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18304); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18368); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18432); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18496); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18560); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18624); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18688); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18752); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18816); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18880); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(18944); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19008); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19072); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=17820; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=17884; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4454] = 17884; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[4784] = $0; + HEAP32[4785] = $1; + _TraceLog(0,6550,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4452]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[4453]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[4450]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[4451]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 17820; + label = 3; + break; + } + case 5888: { + $modelview$sink = 17884; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[4454] = $modelview$sink; + } + HEAP32[4487] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[4454]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4454]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(7126|0),489)|0; + _memcpy(($3|0),(7615|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,8104,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,8056,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(19156)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(19164)>>2] = $1; + HEAP32[(19160)>>2] = 0; + HEAP32[(19168)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(19164)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[4786] = 0; + HEAP32[(19152)>>2] = 0; + HEAP32[(19148)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(19204)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(19212)>>2] = $6; + HEAP32[(19208)>>2] = 0; + HEAP32[(19216)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(19212)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[4798] = 0; + HEAP32[(19200)>>2] = 0; + HEAP32[(19196)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(19252)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(19256)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(19260)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(19264)>>2] = $13; + $14 = HEAP32[(19252)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(19256)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(19260)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(19264)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[4810] = 0; + HEAP32[(19244)>>2] = 0; + HEAP32[(19248)>>2] = 0; + _TraceLog(0,6597,$vararg_buffer); + $20 = HEAP32[4488]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[4489]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(19172)); + $44 = HEAP32[4490]|0; + $45 = HEAP32[(19172)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((19176)|0)); + $46 = HEAP32[(19176)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(19156)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(18044)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(18044)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((19180)|0)); + $50 = HEAP32[(19180)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(19164)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(18064)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(18064)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[4488]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(19176)>>2]|0; + $58 = HEAP32[(19180)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,6735,$vararg_buffer3); + } else { + $56 = HEAP32[(19172)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,6670,$vararg_buffer1); + } + $59 = HEAP32[4488]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[4489]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(19220)); + $62 = HEAP32[4490]|0; + $63 = HEAP32[(19220)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((19224)|0)); + $64 = HEAP32[(19224)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(19204)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(18044)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(18044)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((19228)|0)); + $68 = HEAP32[(19228)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(19212)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(18064)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(18064)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[4488]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(19224)>>2]|0; + $76 = HEAP32[(19228)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,6881,$vararg_buffer10); + } else { + $74 = HEAP32[(19220)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,6812,$vararg_buffer7); + } + $77 = HEAP32[4488]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[4489]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(19268)); + $80 = HEAP32[4490]|0; + $81 = HEAP32[(19268)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((19272)|0)); + $82 = HEAP32[(19272)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(19252)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(18044)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(18044)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((19276)|0)); + $86 = HEAP32[(19276)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(19256)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(18048)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(18048)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((19280)|0)); + $90 = HEAP32[(19280)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(19260)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(18064)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(18064)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((19284)|0)); + $94 = HEAP32[(19284)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(19264)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[4488]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(19272)>>2]|0; + $100 = HEAP32[(19276)>>2]|0; + $101 = HEAP32[(19280)>>2]|0; + $102 = HEAP32[(19284)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,7027,$vararg_buffer17); + } else { + $98 = HEAP32[(19268)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,6962,$vararg_buffer14); + } + $103 = HEAP32[4488]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[4490]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,8360,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,8308,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,8357,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,8461,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,8410,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,8357,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(8152|0)); + _glBindAttribLocation(($20|0),1,(8167|0)); + _glBindAttribLocation(($20|0),2,(8198|0)); + _glBindAttribLocation(($20|0),3,(8225|0)); + _glBindAttribLocation(($20|0),4,(8211|0)); + _glBindAttribLocation(($20|0),5,(8182|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,8513,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,8357,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,8559,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(8152|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(8167|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(8182|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(8198|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(8211|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(8225|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(8237|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(8247|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(8258|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(8269|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(8281|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(8290|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(8299|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (20465 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (20468 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (20465 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (20468 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[4407]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,8871,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[17668>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[17668+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[17668+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[17668+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[17668+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(17696)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(17980|0)); + $0 = HEAP32[4495]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,8898,$vararg_buffer); + $1 = HEAP32[4525]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[4496]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4488]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4490]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((19176)|0)); + _glDeleteBuffers(1,((19180)|0)); + _glDeleteBuffers(1,((19224)|0)); + _glDeleteBuffers(1,((19228)|0)); + _glDeleteBuffers(1,((19272)|0)); + _glDeleteBuffers(1,((19276)|0)); + _glDeleteBuffers(1,((19280)|0)); + _glDeleteBuffers(1,((19284)|0)); + $3 = HEAP32[4488]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4491]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(19172)); + $6 = HEAP32[4491]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(19220)); + $7 = HEAP32[4491]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(19268)); + } + $8 = HEAP32[(19156)>>2]|0; + _free($8); + $9 = HEAP32[(19164)>>2]|0; + _free($9); + $10 = HEAP32[(19204)>>2]|0; + _free($10); + $11 = HEAP32[(19212)>>2]|0; + _free($11); + $12 = HEAP32[(19252)>>2]|0; + _free($12); + $13 = HEAP32[(19256)>>2]|0; + _free($13); + $14 = HEAP32[(19260)>>2]|0; + _free($14); + $15 = HEAP32[(19264)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,8963,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[2156] = $0; + $1 = +HEAPF64[2139]; + $2 = $0 - $1; + HEAPF64[2157] = $2; + HEAPF64[2139] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=17724; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(19296); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[4824] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(19300)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(19304)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(19308)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(19312)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(19316)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(19320)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(19324)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(19328)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(19332)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(19336)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(19340)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(19344)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(19348)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(19352)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(19356)>>2] = $31; + return (19296|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[4454]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[2156] = $0; + $1 = +HEAPF64[2139]; + $2 = $0 - $1; + HEAPF64[2158] = $2; + HEAPF64[2139] = $0; + $3 = +HEAPF64[2157]; + $4 = $2 + $3; + HEAPF64[2159] = $4; + $5 = +HEAPF64[2136]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[2156] = $10; + $11 = +HEAPF64[2139]; + $12 = $10 - $11; + HEAPF64[2139] = $10; + $13 = +HEAPF64[2159]; + $14 = $12 + $13; + HEAPF64[2159] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4407]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[764] = -1; + HEAP32[766] = -1; + HEAP32[4840] = 0; + $3 = HEAP32[4407]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[4270] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(17084)>>2] = $7; + _memcpy((20983|0),(20471|0),512)|0; + ;HEAP8[20468>>0]=HEAP8[20465>>0]|0;HEAP8[20468+1>>0]=HEAP8[20465+1>>0]|0;HEAP8[20468+2>>0]=HEAP8[20465+2>>0]|0; + $8 = HEAP32[4823]|0; + HEAP32[4410] = $8; + HEAP32[4823] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (21495 + ($$05160<<5)|0); + $scevgep67 = (21623 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((21623 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[766] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((19364 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[4840] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4786]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[4488]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[4490]|0; + $5 = HEAP32[(19172)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(19176)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[4786]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(19156)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(19180)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(19152)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(19164)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[4798]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[4488]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[4490]|0; + $19 = HEAP32[(19220)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(19224)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[4798]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(19204)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(19228)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(19200)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(19212)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[4810]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[4488]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[4490]|0; + $33 = HEAP32[(19268)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(19272)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[4810]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(19252)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(19276)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[4810]|0; + $40 = $39 << 3; + $41 = HEAP32[(19256)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(19280)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[4810]|0; + $44 = $43 << 2; + $45 = HEAP32[(19260)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[4488]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[4490]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=17820; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=17884; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[4873]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[4786]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[4798]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[4810]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[4510]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=17884; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=17820; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(18068)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(18072)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(18084)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[4786]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[4495]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[4488]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(19176)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(18044)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(18044)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(19180)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(18064)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(18064)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[4490]|0; + $25 = HEAP32[(19172)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[4786]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[4488]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[4798]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[4495]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[4488]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(19224)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(18044)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(18044)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(19228)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(18064)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(18064)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[4490]|0; + $41 = HEAP32[(19220)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[4798]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[4488]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[4810]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[4488]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(19272)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(18044)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(18044)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(19276)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(18048)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(18048)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(19280)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(18064)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(18064)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(19284)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[4490]|0; + $56 = HEAP32[(19268)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[4526]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[4525]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[4525]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[4526]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[4488]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[4488]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[4490]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[4526] = 1; + $5 = HEAP32[4495]|0; + $6 = HEAP32[4525]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[4786] = 0; + HEAP32[(19152)>>2] = 0; + HEAP32[4798] = 0; + HEAP32[(19200)>>2] = 0; + HEAP32[4810] = 0; + HEAP32[(19244)>>2] = 0; + HEAP32[(19248)>>2] = 0; + HEAPF32[767] = -1.0; + dest=17820; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=17884; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[4784]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[4785]|0; + _rlViewport($7,0,$8,$9); + $10 = (19724 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (19596 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=17884; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=17820; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[4409]|0; + $3 = (+($2|0)); + $4 = HEAP32[4408]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(19296); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[4963]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,9013,$vararg_buffer); + } + $2 = HEAP32[4963]|0; + $3 = (18112 + ($2<<6)|0); + $4 = HEAP32[4454]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[4963]|0; + $6 = (($5) + 1)|0; + HEAP32[4963] = $6; + $7 = HEAP32[4487]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[4964] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4454]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4963]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[4963]|0; + $3 = (($2) + -1)|0; + $4 = (18112 + ($3<<6)|0); + $5 = HEAP32[4454]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[4963] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[2159]; + $1 = $0; + return (+$1); +} +function _IsFileExtension($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strrchr($0,46)|0); + $3 = ($2|0)==(0|0); + if ($3) { + return 0; + } else { + $4 = (_strcmp($2,$1)|0); + $5 = ($4|0)==(0); + $$ = $5&1; + return ($$|0); + } + return (0)|0; +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[4454]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[4454]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4527] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[4964]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4965]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[4524]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[4454]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[4965]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[4964] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[4524]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[4965]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[4964] = 0; + } + HEAP32[4965] = 0; + } + $21 = HEAP32[4527]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[4786]|0; + $23 = HEAP32[(19152)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(19164)>>2]|0; + $28 = HEAP32[(19152)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(19164)>>2]|0; + $35 = HEAP32[(19152)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(19164)>>2]|0; + $43 = HEAP32[(19152)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(19164)>>2]|0; + $51 = HEAP32[(19152)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(19152)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(19152)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[4798]|0; + $62 = HEAP32[(19200)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(19212)>>2]|0; + $67 = HEAP32[(19200)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(19212)>>2]|0; + $74 = HEAP32[(19200)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(19212)>>2]|0; + $82 = HEAP32[(19200)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(19212)>>2]|0; + $90 = HEAP32[(19200)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(19200)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(19200)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[4810]|0; + $101 = HEAP32[(19248)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(19260)>>2]|0; + $106 = HEAP32[(19248)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(19260)>>2]|0; + $113 = HEAP32[(19248)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(19260)>>2]|0; + $121 = HEAP32[(19248)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(19260)>>2]|0; + $129 = HEAP32[(19248)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(19248)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(19248)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[4810]|0; + $140 = HEAP32[(19244)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(19256)>>2]|0; + $$promoted = HEAP32[(19244)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(19244)>>2] = $147; + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[767]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[767] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[4964]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4524]|0; + $6 = HEAP32[4965]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[4965] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[4527]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[4786]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(19156)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[4786] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,9051,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[4798]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(19204)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[4798] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,9076,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[4810]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(19252)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[4810] = $41; + $42 = HEAP32[4525]|0; + $43 = HEAP32[4526]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,9105,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[767]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlVertex2i($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0.0, $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+($0|0)); + $3 = (+($1|0)); + $4 = +HEAPF32[767]; + _rlVertex3f($2,$3,$4); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[4527]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(19256)>>2]|0; + $5 = HEAP32[(19244)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(19244)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[4527]|0; + switch ($4|0) { + case 1: { + $$sink37 = (19152);$$sink38 = (19164); + break; + } + case 4: { + $$sink37 = (19200);$$sink38 = (19212); + break; + } + case 7: { + $$sink37 = (19248);$$sink38 = (19260); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlColor3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $0 * 255.0; + $4 = (~~(($3))&255); + $5 = $1 * 255.0; + $6 = (~~(($5))&255); + $7 = $2 * 255.0; + $8 = (~~(($7))&255); + _rlColor4ub($4,$6,$8,-1); + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4525]|0; + $2 = HEAP32[4526]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[4526] = $10; + } + $11 = HEAP32[4526]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4810]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _rlDeleteVertexArrays($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = HEAP32[4488]|0; + $3 = ($2|0)==(0); + if ($3) { + STACKTOP = sp;return; + } + $4 = ($0|0)==(0); + if (!($4)) { + $5 = HEAP32[4491]|0; + FUNCTION_TABLE_vii[$5 & 63](1,$1); + } + $6 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(0,9130,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteBuffers($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _glDeleteBuffers(1,($1|0)); + $3 = HEAP32[4488]|0; + $4 = ($3|0)==(0); + if (!($4)) { + STACKTOP = sp;return; + } + $5 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $5; + _TraceLog(0,9178,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlglLoadMesh($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 20|0; + $4 = ((($0)) + 36|0); + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 44|0); + $7 = ((($0)) + 48|0); + $8 = ((($0)) + 52|0); + $9 = ((($0)) + 56|0); + $10 = ((($0)) + 60|0); + $11 = ((($0)) + 64|0); + $12 = ($1|0)!=(0); + $$ = $12 ? 35048 : 35044; + ;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;HEAP32[$4+28>>2]=0|0; + HEAP32[$2>>2] = 0; + ;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;HEAP32[$3+16>>2]=0|0;HEAP32[$3+20>>2]=0|0;HEAP32[$3+24>>2]=0|0; + $13 = HEAP32[4488]|0; + $14 = ($13|0)==(0); + if (!($14)) { + $15 = HEAP32[4489]|0; + FUNCTION_TABLE_vii[$15 & 63](1,$2); + $16 = HEAP32[4490]|0; + $17 = HEAP32[$2>>2]|0; + FUNCTION_TABLE_vi[$16 & 31]($17); + } + _glGenBuffers(1,($3|0)); + $18 = HEAP32[$3>>2]|0; + _glBindBuffer(34962,($18|0)); + $19 = HEAP32[$0>>2]|0; + $20 = ($19*12)|0; + $21 = ((($0)) + 8|0); + $22 = HEAP32[$21>>2]|0; + _glBufferData(34962,($20|0),($22|0),($$|0)); + _glVertexAttribPointer(0,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(0); + $23 = ((($3)) + 4|0); + _glGenBuffers(1,($23|0)); + $24 = HEAP32[$23>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[$0>>2]|0; + $26 = $25 << 3; + $27 = ((($0)) + 12|0); + $28 = HEAP32[$27>>2]|0; + _glBufferData(34962,($26|0),($28|0),($$|0)); + _glVertexAttribPointer(1,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(1); + $29 = ((($0)) + 20|0); + $30 = HEAP32[$29>>2]|0; + $31 = ($30|0)==(0|0); + if ($31) { + _glVertexAttrib3f(2,1.0,1.0,1.0); + _glDisableVertexAttribArray(2); + } else { + $32 = ((($3)) + 8|0); + _glGenBuffers(1,($32|0)); + $33 = HEAP32[$32>>2]|0; + _glBindBuffer(34962,($33|0)); + $34 = HEAP32[$0>>2]|0; + $35 = ($34*12)|0; + $36 = HEAP32[$29>>2]|0; + _glBufferData(34962,($35|0),($36|0),($$|0)); + _glVertexAttribPointer(2,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(2); + } + $37 = ((($0)) + 28|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==(0|0); + if ($39) { + _glVertexAttrib4f(3,1.0,1.0,1.0,1.0); + _glDisableVertexAttribArray(3); + } else { + $40 = ((($3)) + 12|0); + _glGenBuffers(1,($40|0)); + $41 = HEAP32[$40>>2]|0; + _glBindBuffer(34962,($41|0)); + $42 = HEAP32[$0>>2]|0; + $43 = $42 << 2; + $44 = HEAP32[$37>>2]|0; + _glBufferData(34962,($43|0),($44|0),($$|0)); + _glVertexAttribPointer(3,4,5121,1,0,(0|0)); + _glEnableVertexAttribArray(3); + } + $45 = ((($0)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(0|0); + if ($47) { + _glVertexAttrib3f(4,0.0,0.0,0.0); + _glDisableVertexAttribArray(4); + } else { + $48 = ((($3)) + 16|0); + _glGenBuffers(1,($48|0)); + $49 = HEAP32[$48>>2]|0; + _glBindBuffer(34962,($49|0)); + $50 = HEAP32[$0>>2]|0; + $51 = ($50*12)|0; + $52 = HEAP32[$45>>2]|0; + _glBufferData(34962,($51|0),($52|0),($$|0)); + _glVertexAttribPointer(4,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(4); + } + $53 = ((($0)) + 16|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==(0|0); + if ($55) { + _glVertexAttrib2f(5,0.0,0.0); + _glDisableVertexAttribArray(5); + } else { + $56 = ((($3)) + 20|0); + _glGenBuffers(1,($56|0)); + $57 = HEAP32[$56>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[$0>>2]|0; + $59 = $58 << 3; + $60 = HEAP32[$53>>2]|0; + _glBufferData(34962,($59|0),($60|0),($$|0)); + _glVertexAttribPointer(5,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(5); + } + $61 = ((($0)) + 32|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $64 = ((($3)) + 24|0); + _glGenBuffers(1,($64|0)); + $65 = HEAP32[$64>>2]|0; + _glBindBuffer(34963,($65|0)); + $66 = ((($0)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = ($67*6)|0; + $69 = HEAP32[$61>>2]|0; + _glBufferData(34963,($68|0),($69|0),35044); + } + $70 = HEAP32[$3>>2]|0; + HEAP32[$5>>2] = $70; + $71 = HEAP32[$23>>2]|0; + HEAP32[$6>>2] = $71; + $72 = ((($3)) + 8|0); + $73 = HEAP32[$72>>2]|0; + HEAP32[$7>>2] = $73; + $74 = ((($3)) + 12|0); + $75 = HEAP32[$74>>2]|0; + HEAP32[$8>>2] = $75; + $76 = ((($3)) + 16|0); + $77 = HEAP32[$76>>2]|0; + HEAP32[$9>>2] = $77; + $78 = ((($3)) + 20|0); + $79 = HEAP32[$78>>2]|0; + HEAP32[$10>>2] = $79; + $80 = ((($3)) + 24|0); + $81 = HEAP32[$80>>2]|0; + HEAP32[$11>>2] = $81; + $82 = HEAP32[4488]|0; + $83 = ($82|0)==(0); + if ($83) { + _TraceLog(0,9327,$vararg_buffer3); + STACKTOP = sp;return; + } + $84 = HEAP32[$2>>2]|0; + $85 = ($84|0)==(0); + if ($85) { + _TraceLog(2,9286,$vararg_buffer1); + STACKTOP = sp;return; + } else { + HEAP32[$4>>2] = $84; + HEAP32[$vararg_buffer>>2] = $84; + _TraceLog(0,9233,$vararg_buffer); + STACKTOP = sp;return; + } +} +function _rlglDrawMesh($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$020 = 0, $$byval_copy5 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; + var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0.0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; + var $17 = 0.0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0.0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $modelview$byval_copy4 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); + $$byval_copy5 = sp + 320|0; + $modelview$byval_copy4 = sp + 256|0; + $3 = sp + 192|0; + $4 = sp + 128|0; + $5 = sp + 64|0; + $6 = sp; + $7 = HEAP32[$1>>2]|0; + _glUseProgram(($7|0)); + $8 = ((($1)) + 32|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($1)) + 116|0); + $11 = HEAP8[$10>>0]|0; + $12 = (+($11&255)); + $13 = $12 / 255.0; + $14 = ((($1)) + 117|0); + $15 = HEAP8[$14>>0]|0; + $16 = (+($15&255)); + $17 = $16 / 255.0; + $18 = ((($1)) + 118|0); + $19 = HEAP8[$18>>0]|0; + $20 = (+($19&255)); + $21 = $20 / 255.0; + $22 = ((($1)) + 119|0); + $23 = HEAP8[$22>>0]|0; + $24 = (+($23&255)); + $25 = $24 / 255.0; + _glUniform4f(($9|0),(+$13),(+$17),(+$21),(+$25)); + $26 = ((($1)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = ($27|0)==(-1); + if (!($28)) { + $29 = ((($1)) + 120|0); + $30 = HEAP8[$29>>0]|0; + $31 = (+($30&255)); + $32 = $31 / 255.0; + $33 = ((($1)) + 121|0); + $34 = HEAP8[$33>>0]|0; + $35 = (+($34&255)); + $36 = $35 / 255.0; + $37 = ((($1)) + 122|0); + $38 = HEAP8[$37>>0]|0; + $39 = (+($38&255)); + $40 = $39 / 255.0; + $41 = ((($1)) + 123|0); + $42 = HEAP8[$41>>0]|0; + $43 = (+($42&255)); + $44 = $43 / 255.0; + _glUniform4f(($27|0),(+$32),(+$36),(+$40),(+$44)); + } + $45 = ((($1)) + 40|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(-1); + if (!($47)) { + $48 = ((($1)) + 124|0); + $49 = HEAP8[$48>>0]|0; + $50 = (+($49&255)); + $51 = $50 / 255.0; + $52 = ((($1)) + 125|0); + $53 = HEAP8[$52>>0]|0; + $54 = (+($53&255)); + $55 = $54 / 255.0; + $56 = ((($1)) + 126|0); + $57 = HEAP8[$56>>0]|0; + $58 = (+($57&255)); + $59 = $58 / 255.0; + $60 = ((($1)) + 127|0); + $61 = HEAP8[$60>>0]|0; + $62 = (+($61&255)); + $63 = $62 / 255.0; + _glUniform4f(($46|0),(+$51),(+$55),(+$59),(+$63)); + } + dest=$3; src=17884; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$4; src=17820; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=17884; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($5,$modelview$byval_copy4,$$byval_copy5); + $64 = HEAP32[$1>>2]|0; + $65 = HEAP32[4496]|0; + $66 = ($64|0)==($65|0); + if (!($66)) { + $67 = (_glGetUniformLocation(($64|0),(9375|0))|0); + $68 = ($67|0)==(-1); + if (!($68)) { + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($modelview$byval_copy4); + _MatrixInvert($modelview$byval_copy4); + dest=$$byval_copy5; src=$modelview$byval_copy4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $69 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($67|0),1,0,($69|0)); + } + $70 = HEAP32[$1>>2]|0; + $71 = (_glGetUniformLocation(($70|0),(9387|0))|0); + $72 = ($71|0)==(-1); + if (!($72)) { + $73 = ((($3)) + 8|0); + $74 = +HEAPF32[$73>>2]; + $75 = ((($3)) + 24|0); + $76 = +HEAPF32[$75>>2]; + $77 = ((($3)) + 40|0); + $78 = +HEAPF32[$77>>2]; + _glUniform3f(($71|0),(+$74),(+$76),(+$78)); + } + $79 = (_glGetUniformLocation(($70|0),(9395|0))|0); + $80 = ($79|0)==(-1); + if (!($80)) { + $81 = ((($1)) + 128|0); + $82 = +HEAPF32[$81>>2]; + _glUniform1f(($79|0),(+$82)); + } + } + _glActiveTexture(33984); + $83 = ((($1)) + 56|0); + $84 = HEAP32[$83>>2]|0; + _glBindTexture(3553,($84|0)); + $85 = ((($1)) + 44|0); + $86 = HEAP32[$85>>2]|0; + _glUniform1i(($86|0),0); + $87 = ((($1)) + 76|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0); + if (!($89)) { + $90 = ((($1)) + 48|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)==(-1); + if (!($92)) { + $93 = HEAP32[$1>>2]|0; + $94 = (_glGetUniformLocation(($93|0),(9406|0))|0); + _glUniform1i(($94|0),1); + _glActiveTexture(33985); + $95 = HEAP32[$87>>2]|0; + _glBindTexture(3553,($95|0)); + $96 = HEAP32[$90>>2]|0; + _glUniform1i(($96|0),1); + } + } + $97 = ((($1)) + 96|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0); + if (!($99)) { + $100 = ((($1)) + 52|0); + $101 = HEAP32[$100>>2]|0; + $102 = ($101|0)==(-1); + if (!($102)) { + $103 = HEAP32[$1>>2]|0; + $104 = (_glGetUniformLocation(($103|0),(9416|0))|0); + _glUniform1i(($104|0),1); + _glActiveTexture(33986); + $105 = HEAP32[$97>>2]|0; + _glBindTexture(3553,($105|0)); + $106 = HEAP32[$100>>2]|0; + _glUniform1i(($106|0),2); + } + } + $107 = HEAP32[4488]|0; + $108 = ($107|0)==(0); + if ($108) { + $112 = ((($0)) + 40|0); + $113 = HEAP32[$112>>2]|0; + _glBindBuffer(34962,($113|0)); + $114 = ((($1)) + 4|0); + $115 = HEAP32[$114>>2]|0; + _glVertexAttribPointer(($115|0),3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($115|0)); + $116 = ((($0)) + 44|0); + $117 = HEAP32[$116>>2]|0; + _glBindBuffer(34962,($117|0)); + $118 = ((($1)) + 8|0); + $119 = HEAP32[$118>>2]|0; + _glVertexAttribPointer(($119|0),2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($119|0)); + $120 = ((($1)) + 16|0); + $121 = HEAP32[$120>>2]|0; + $122 = ($121|0)==(-1); + if (!($122)) { + $123 = ((($0)) + 48|0); + $124 = HEAP32[$123>>2]|0; + _glBindBuffer(34962,($124|0)); + $125 = HEAP32[$120>>2]|0; + _glVertexAttribPointer(($125|0),3,5126,0,0,(0|0)); + $126 = HEAP32[$120>>2]|0; + _glEnableVertexAttribArray(($126|0)); + } + $127 = ((($1)) + 24|0); + $128 = HEAP32[$127>>2]|0; + $129 = ($128|0)==(-1); + do { + if (!($129)) { + $130 = ((($0)) + 52|0); + $131 = HEAP32[$130>>2]|0; + $132 = ($131|0)==(0); + if ($132) { + _glVertexAttrib4f(($128|0),1.0,1.0,1.0,1.0); + $135 = HEAP32[$127>>2]|0; + _glDisableVertexAttribArray(($135|0)); + break; + } else { + _glBindBuffer(34962,($131|0)); + $133 = HEAP32[$127>>2]|0; + _glVertexAttribPointer(($133|0),4,5121,1,0,(0|0)); + $134 = HEAP32[$127>>2]|0; + _glEnableVertexAttribArray(($134|0)); + break; + } + } + } while(0); + $136 = ((($1)) + 20|0); + $137 = HEAP32[$136>>2]|0; + $138 = ($137|0)==(-1); + if (!($138)) { + $139 = ((($0)) + 56|0); + $140 = HEAP32[$139>>2]|0; + _glBindBuffer(34962,($140|0)); + $141 = HEAP32[$136>>2]|0; + _glVertexAttribPointer(($141|0),3,5126,0,0,(0|0)); + $142 = HEAP32[$136>>2]|0; + _glEnableVertexAttribArray(($142|0)); + } + $143 = ((($1)) + 12|0); + $144 = HEAP32[$143>>2]|0; + $145 = ($144|0)==(-1); + if (!($145)) { + $146 = ((($0)) + 60|0); + $147 = HEAP32[$146>>2]|0; + _glBindBuffer(34962,($147|0)); + $148 = HEAP32[$143>>2]|0; + _glVertexAttribPointer(($148|0),2,5126,0,0,(0|0)); + $149 = HEAP32[$143>>2]|0; + _glEnableVertexAttribArray(($149|0)); + } + $150 = ((($0)) + 32|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==(0|0); + if (!($152)) { + $153 = HEAP32[(19284)>>2]|0; + _glBindBuffer(34963,($153|0)); + } + } else { + $109 = HEAP32[4490]|0; + $110 = ((($0)) + 36|0); + $111 = HEAP32[$110>>2]|0; + FUNCTION_TABLE_vi[$109 & 31]($111); + } + $154 = HEAP32[4873]|0; + $155 = ($154|0)!=(0); + $$ = $155 ? 2 : 1; + $156 = ((($1)) + 28|0); + $157 = ((($0)) + 32|0); + $158 = HEAP32[$0>>2]|0; + $159 = ((($0)) + 4|0); + $$020 = 0; + while(1) { + if ($155) { + dest=$modelview$byval_copy4; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$020,$modelview$byval_copy4,$$byval_copy5); + } else { + dest=17884; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + } + dest=$modelview$byval_copy4; src=17884; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=17820; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($6,$modelview$byval_copy4,$$byval_copy5); + $162 = HEAP32[$156>>2]|0; + dest=$$byval_copy5; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $163 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($162|0),1,0,($163|0)); + $164 = HEAP32[$157>>2]|0; + $165 = ($164|0)==(0|0); + if ($165) { + _glDrawArrays(4,0,($158|0)); + } else { + $166 = HEAP32[$159>>2]|0; + $167 = ($166*3)|0; + _glDrawElements(4,($167|0),5123,(0|0)); + } + $168 = (($$020) + 1)|0; + $169 = ($168|0)<($$|0); + if ($169) { + $$020 = $168; + } else { + break; + } + } + $160 = HEAP32[$87>>2]|0; + $161 = ($160|0)==(0); + if (!($161)) { + _glActiveTexture(33985); + _glBindTexture(3553,0); + } + $170 = HEAP32[$97>>2]|0; + $171 = ($170|0)==(0); + if (!($171)) { + _glActiveTexture(33986); + _glBindTexture(3553,0); + } + _glActiveTexture(33984); + _glBindTexture(3553,0); + $172 = HEAP32[4488]|0; + $173 = ($172|0)==(0); + if (!($173)) { + $174 = HEAP32[4490]|0; + FUNCTION_TABLE_vi[$174 & 31](0); + _glUseProgram(0); + dest=17820; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=17884; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34962,0); + $175 = ((($0)) + 32|0); + $176 = HEAP32[$175>>2]|0; + $177 = ($176|0)==(0|0); + if ($177) { + _glUseProgram(0); + dest=17820; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=17884; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34963,0); + _glUseProgram(0); + dest=17820; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=17884; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlglUnloadMesh($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 8|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if (!($3)) { + _free($2); + } + $4 = ((($0)) + 12|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + if (!($6)) { + _free($5); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==(0|0); + if (!($9)) { + _free($8); + } + $10 = ((($0)) + 28|0); + $11 = HEAP32[$10>>2]|0; + $12 = ($11|0)==(0|0); + if (!($12)) { + _free($11); + } + $13 = ((($0)) + 24|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)==(0|0); + if (!($15)) { + _free($14); + } + $16 = ((($0)) + 16|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==(0|0); + if (!($18)) { + _free($17); + } + $19 = ((($0)) + 32|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0|0); + if (!($21)) { + _free($20); + } + $22 = ((($0)) + 40|0); + $23 = HEAP32[$22>>2]|0; + _rlDeleteBuffers($23); + $24 = ((($0)) + 44|0); + $25 = HEAP32[$24>>2]|0; + _rlDeleteBuffers($25); + $26 = ((($0)) + 48|0); + $27 = HEAP32[$26>>2]|0; + _rlDeleteBuffers($27); + $28 = ((($0)) + 52|0); + $29 = HEAP32[$28>>2]|0; + _rlDeleteBuffers($29); + $30 = ((($0)) + 56|0); + $31 = HEAP32[$30>>2]|0; + _rlDeleteBuffers($31); + $32 = ((($0)) + 60|0); + $33 = HEAP32[$32>>2]|0; + _rlDeleteBuffers($33); + $34 = ((($0)) + 64|0); + $35 = HEAP32[$34>>2]|0; + _rlDeleteBuffers($35); + $36 = ((($0)) + 36|0); + $37 = HEAP32[$36>>2]|0; + _rlDeleteVertexArrays($37); + return; +} +function _GetDefaultTexture($0) { + $0 = $0|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4495]|0; + HEAP32[$0>>2] = $1; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$5$0$$sroa_idx4>>2] = 1; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx6>>2] = 1; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$7$0$$sroa_idx8>>2] = 7; + return; +} +function _GetDefaultShader($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=$0; src=17984; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _DrawRectangle($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy2 = sp + 32|0; + $$byval_copy1 = sp + 24|0; + $$byval_copy = sp + 16|0; + $5 = sp + 8|0; + $6 = sp; + $7 = (+($0|0)); + HEAPF32[$5>>2] = $7; + $8 = ((($5)) + 4|0); + $9 = (+($1|0)); + HEAPF32[$8>>2] = $9; + $10 = (+($2|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($3|0)); + HEAPF32[$11>>2] = $12; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangleV($$byval_copy,$$byval_copy1,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawRectangleV($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0; + var $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0, $64 = 0.0, $65 = 0.0; + var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $3 = sp; + $4 = (_rlGetVersion()|0); + $5 = ($4|0)==(1); + if ($5) { + _rlBegin(4); + $6 = HEAP8[$2>>0]|0; + $7 = ((($2)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ((($2)) + 2|0); + $10 = HEAP8[$9>>0]|0; + $11 = ((($2)) + 3|0); + $12 = HEAP8[$11>>0]|0; + _rlColor4ub($6,$8,$10,$12); + $13 = +HEAPF32[$0>>2]; + $14 = (~~(($13))); + $15 = ((($0)) + 4|0); + $16 = +HEAPF32[$15>>2]; + $17 = (~~(($16))); + _rlVertex2i($14,$17); + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = $16 + $19; + $21 = (~~(($20))); + _rlVertex2i($14,$21); + $22 = +HEAPF32[$0>>2]; + $23 = +HEAPF32[$1>>2]; + $24 = $22 + $23; + $25 = (~~(($24))); + $26 = +HEAPF32[$15>>2]; + $27 = +HEAPF32[$18>>2]; + $28 = $26 + $27; + $29 = (~~(($28))); + _rlVertex2i($25,$29); + $30 = +HEAPF32[$0>>2]; + $31 = (~~(($30))); + $32 = +HEAPF32[$15>>2]; + $33 = (~~(($32))); + _rlVertex2i($31,$33); + $34 = +HEAPF32[$1>>2]; + $35 = $30 + $34; + $36 = (~~(($35))); + $37 = +HEAPF32[$18>>2]; + $38 = $32 + $37; + $39 = (~~(($38))); + _rlVertex2i($36,$39); + $40 = +HEAPF32[$0>>2]; + $41 = +HEAPF32[$1>>2]; + $42 = $40 + $41; + $43 = (~~(($42))); + $44 = +HEAPF32[$15>>2]; + $45 = (~~(($44))); + _rlVertex2i($43,$45); + _rlEnd(); + STACKTOP = sp;return; + } + $46 = (_rlGetVersion()|0); + $47 = ($46|0)==(2); + if (!($47)) { + $48 = (_rlGetVersion()|0); + $49 = ($48|0)==(3); + if (!($49)) { + $50 = (_rlGetVersion()|0); + $51 = ($50|0)==(4); + if (!($51)) { + STACKTOP = sp;return; + } + } + } + _GetDefaultTexture($3); + $52 = HEAP32[$3>>2]|0; + _rlEnableTexture($52); + _rlBegin(7); + $53 = HEAP8[$2>>0]|0; + $54 = ((($2)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = ((($2)) + 2|0); + $57 = HEAP8[$56>>0]|0; + $58 = ((($2)) + 3|0); + $59 = HEAP8[$58>>0]|0; + _rlColor4ub($53,$55,$57,$59); + _rlTexCoord2f(0.0,0.0); + $60 = +HEAPF32[$0>>2]; + $61 = ((($0)) + 4|0); + $62 = +HEAPF32[$61>>2]; + _rlVertex2f($60,$62); + _rlTexCoord2f(0.0,1.0); + $63 = ((($1)) + 4|0); + $64 = +HEAPF32[$63>>2]; + $65 = $62 + $64; + _rlVertex2f($60,$65); + _rlTexCoord2f(1.0,1.0); + $66 = +HEAPF32[$0>>2]; + $67 = +HEAPF32[$1>>2]; + $68 = $66 + $67; + $69 = +HEAPF32[$61>>2]; + $70 = +HEAPF32[$63>>2]; + $71 = $69 + $70; + _rlVertex2f($68,$71); + _rlTexCoord2f(1.0,0.0); + $72 = +HEAPF32[$0>>2]; + $73 = +HEAPF32[$1>>2]; + $74 = $72 + $73; + $75 = +HEAPF32[$61>>2]; + _rlVertex2f($74,$75); + _rlEnd(); + _rlDisableTexture(); + STACKTOP = sp;return; +} +function _DrawRectangleLines($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy3 = sp; + $5 = (_rlGetVersion()|0); + $6 = ($5|0)==(1); + if ($6) { + _rlBegin(1); + $7 = HEAP8[$4>>0]|0; + $8 = ((($4)) + 1|0); + $9 = HEAP8[$8>>0]|0; + $10 = ((($4)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = ((($4)) + 3|0); + $13 = HEAP8[$12>>0]|0; + _rlColor4ub($7,$9,$11,$13); + $14 = (($0) + 1)|0; + $15 = (($1) + 1)|0; + _rlVertex2i($14,$15); + $16 = (($2) + ($0))|0; + _rlVertex2i($16,$15); + _rlVertex2i($16,$15); + $17 = (($3) + ($1))|0; + _rlVertex2i($16,$17); + _rlVertex2i($16,$17); + _rlVertex2i($14,$17); + _rlVertex2i($14,$17); + _rlVertex2i($14,$15); + _rlEnd(); + STACKTOP = sp;return; + } + $18 = (_rlGetVersion()|0); + $19 = ($18|0)==(2); + if (!($19)) { + $20 = (_rlGetVersion()|0); + $21 = ($20|0)==(3); + if (!($21)) { + $22 = (_rlGetVersion()|0); + $23 = ($22|0)==(4); + if (!($23)) { + STACKTOP = sp;return; + } + } + } + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($0,$1,$2,1,$$byval_copy3); + $24 = (($0) + -1)|0; + $25 = (($24) + ($2))|0; + $26 = (($1) + 1)|0; + $27 = (($3) + -2)|0; + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($25,$26,1,$27,$$byval_copy3); + $28 = (($1) + -1)|0; + $29 = (($28) + ($3))|0; + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($0,$29,$2,1,$$byval_copy3); + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawRectangle($0,$26,1,$27,$$byval_copy3); + STACKTOP = sp;return; +} +function _stbi__err($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4966] = $0; + return; +} +function _stbi_load_from_file($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $5 = sp; + _stbi__start_file($5,$0); + $6 = (_stbi__load_and_postprocess_8bit($5,$1,$2,$3,$4)|0); + $7 = ($6|0)==(0|0); + if ($7) { + STACKTOP = sp;return ($6|0); + } + $8 = ((($5)) + 172|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($5)) + 168|0); + $11 = HEAP32[$10>>2]|0; + $12 = (($11) - ($9))|0; + (_fseek($0,$12,1)|0); + STACKTOP = sp;return ($6|0); +} +function _stbi__start_file($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + _stbi__start_callbacks($0,3184,$1); + return; +} +function _stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$070 = 0, $$07175 = 0, $$07276 = 0, $$07378 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond79 = 0, $exitcond80 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $5 = sp; + $6 = (_stbi__load_main($0,$1,$2,$3,$4,$5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $8 = HEAP32[$5>>2]|0; + switch ($8|0) { + case 8: { + $$070 = $6; + break; + } + case 16: { + label = 4; + break; + } + default: { + ___assert_fail((9428|0),(9454|0),1041,(9477|0)); + // unreachable; + } + } + if ((label|0) == 4) { + $9 = HEAP32[$1>>2]|0; + $10 = HEAP32[$2>>2]|0; + $11 = ($4|0)==(0); + if ($11) { + $12 = HEAP32[$3>>2]|0; + $13 = $12; + } else { + $13 = $4; + } + $14 = (_stbi__convert_16_to_8($6,$9,$10,$13)|0); + HEAP32[$5>>2] = 8; + $$070 = $14; + } + $15 = HEAP32[4967]|0; + $16 = ($15|0)==(0); + if ($16) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $17 = HEAP32[$1>>2]|0; + $18 = HEAP32[$2>>2]|0; + $19 = ($4|0)==(0); + if ($19) { + $20 = HEAP32[$3>>2]|0; + $25 = $20; + } else { + $25 = $4; + } + $21 = $18 >> 1; + $22 = ($21|0)>(0); + if (!($22)) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $23 = ($17|0)>(0); + $24 = ($25|0)>(0); + $26 = (($18) + -1)|0; + $$07378 = 0; + while(1) { + if ($23) { + $27 = Math_imul($$07378, $17)|0; + $28 = (($26) - ($$07378))|0; + $29 = Math_imul($28, $17)|0; + $$07276 = 0; + while(1) { + if ($24) { + $30 = (($$07276) + ($27))|0; + $31 = Math_imul($30, $25)|0; + $32 = (($$07276) + ($29))|0; + $33 = Math_imul($32, $25)|0; + $$07175 = 0; + while(1) { + $34 = (($$07175) + ($31))|0; + $35 = (($$070) + ($34)|0); + $36 = HEAP8[$35>>0]|0; + $37 = (($$07175) + ($33))|0; + $38 = (($$070) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + HEAP8[$35>>0] = $39; + HEAP8[$38>>0] = $36; + $40 = (($$07175) + 1)|0; + $exitcond = ($40|0)==($25|0); + if ($exitcond) { + break; + } else { + $$07175 = $40; + } + } + } + $41 = (($$07276) + 1)|0; + $exitcond79 = ($41|0)==($17|0); + if ($exitcond79) { + break; + } else { + $$07276 = $41; + } + } + } + $42 = (($$07378) + 1)|0; + $exitcond80 = ($42|0)==($21|0); + if ($exitcond80) { + $$0 = $$070; + break; + } else { + $$07378 = $42; + } + } + STACKTOP = sp;return ($$0|0); +} +function _stbi__load_main($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$0 = 0, $10 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAP32[$5>>2] = 8; + $6 = ((($5)) + 8|0); + HEAP32[$6>>2] = 0; + $7 = ((($5)) + 4|0); + HEAP32[$7>>2] = 0; + $8 = (_stbi__png_test($0)|0); + $9 = ($8|0)==(0); + if ($9) { + _stbi__err(9518); + $$0 = 0; + return ($$0|0); + } else { + $10 = (_stbi__png_load($0,$1,$2,$3,$4,$5)|0); + $$0 = $10; + return ($$0|0); + } + return (0)|0; +} +function _stbi__convert_16_to_8($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$0 = 0, $$01819 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = Math_imul($4, $3)|0; + $6 = (_stbi__malloc($5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + _stbi__err(9509); + $$0 = 0; + return ($$0|0); + } + $8 = ($5|0)>(0); + if ($8) { + $$01819 = 0; + while(1) { + $9 = (($0) + ($$01819<<1)|0); + $10 = HEAP16[$9>>1]|0; + $11 = ($10&65535) >>> 8; + $12 = $11&255; + $13 = (($6) + ($$01819)|0); + HEAP8[$13>>0] = $12; + $14 = (($$01819) + 1)|0; + $exitcond = ($14|0)==($5|0); + if ($exitcond) { + break; + } else { + $$01819 = $14; + } + } + } + _free($0); + $$0 = $6; + return ($$0|0); +} +function _stbi__malloc($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_malloc($0)|0); + return ($1|0); +} +function _stbi__png_test($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__check_png_header($0)|0); + _stbi__rewind($0); + return ($1|0); +} +function _stbi__png_load($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $6 = sp; + HEAP32[$6>>2] = $0; + $7 = (_stbi__do_png($6,$1,$2,$3,$4,$5)|0); + STACKTOP = sp;return ($7|0); +} +function _stbi__do_png($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$0 = 0, $$045 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4>>>0)>(4); + if ($6) { + _stbi__err(9537); + $$045 = 0; + return ($$045|0); + } + $7 = (_stbi__parse_png_file($0,0,$4)|0); + $8 = ($7|0)==(0); + if ($8) { + $$2 = 0; + } else { + $9 = ((($0)) + 16|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(8); + $$ = $11 ? $10 : 8; + HEAP32[$5>>2] = $$; + $12 = ((($0)) + 12|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[$12>>2] = 0; + $14 = ($4|0)==(0); + if ($14) { + $$1 = $13; + } else { + $15 = HEAP32[$0>>2]|0; + $16 = ((($15)) + 12|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==($4|0); + if ($18) { + $$1 = $13; + } else { + $19 = HEAP32[$5>>2]|0; + $20 = ($19|0)==(8); + $21 = ((($15)) + 4|0); + $22 = HEAP32[$21>>2]|0; + $23 = HEAP32[$15>>2]|0; + if ($20) { + $24 = (_stbi__convert_format($13,$17,$4,$23,$22)|0); + $$0 = $24; + } else { + $25 = (_stbi__convert_format16($13,$17,$4,$23,$22)|0); + $$0 = $25; + } + $26 = HEAP32[$0>>2]|0; + $27 = ((($26)) + 12|0); + HEAP32[$27>>2] = $4; + $28 = ($$0|0)==(0|0); + if ($28) { + $$045 = 0; + return ($$045|0); + } else { + $$1 = $$0; + } + } + } + $29 = HEAP32[$0>>2]|0; + $30 = HEAP32[$29>>2]|0; + HEAP32[$1>>2] = $30; + $31 = ((($29)) + 4|0); + $32 = HEAP32[$31>>2]|0; + HEAP32[$2>>2] = $32; + $33 = ($3|0)==(0|0); + if ($33) { + $$2 = $$1; + } else { + $34 = ((($29)) + 8|0); + $35 = HEAP32[$34>>2]|0; + HEAP32[$3>>2] = $35; + $$2 = $$1; + } + } + $36 = ((($0)) + 12|0); + $37 = HEAP32[$36>>2]|0; + _free($37); + HEAP32[$36>>2] = 0; + $38 = ((($0)) + 8|0); + $39 = HEAP32[$38>>2]|0; + _free($39); + HEAP32[$38>>2] = 0; + $40 = ((($0)) + 4|0); + $41 = HEAP32[$40>>2]|0; + _free($41); + HEAP32[$40>>2] = 0; + $$045 = $$2; + return ($$045|0); +} +function _stbi__parse_png_file($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0217 = 0, $$0206 = 0, $$0211 = 0, $$0214 = 0, $$0217 = 0, $$0226593 = 0, $$0228 = 0, $$0231 = 0, $$0235 = 0, $$0239591 = 0, $$0241 = 0, $$0245 = 0, $$1207 = 0, $$1212 = 0, $$1215 = 0, $$1218 = 0, $$1227588 = 0, $$1229 = 0, $$1240589 = 0; + var $$1246 = 0, $$2219 = 0, $$2233 = 0, $$2237 = 0, $$2243 = 0, $$254 = 0, $$3209 = 0, $$3220 = 0, $$4 = 0, $$6$ph = 0, $$7 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; + var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; + var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; + var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0; + var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0; + var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0; + var $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond248 = 0, $or$cond5$not = 0, $or$cond7 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $3 = sp + 32|0; + $4 = sp + 22|0; + $5 = sp + 16|0; + $6 = sp + 8|0; + $7 = sp; + $8 = HEAP32[$0>>2]|0; + $9 = ((($0)) + 8|0); + HEAP32[$9>>2] = 0; + $10 = ((($0)) + 4|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 12|0); + HEAP32[$11>>2] = 0; + $12 = (_stbi__check_png_header($8)|0); + $13 = ($12|0)==(0); + if ($13) { + $$7 = 0; + STACKTOP = sp;return ($$7|0); + } + $14 = ($1|0)==(1); + if ($14) { + $$7 = 1; + STACKTOP = sp;return ($$7|0); + } + $15 = ((($6)) + 4|0); + $16 = ((($8)) + 4|0); + $17 = ((($0)) + 16|0); + $18 = ((($8)) + 8|0); + $19 = ($1|0)==(2); + $20 = ((($8)) + 8|0); + $21 = ((($8)) + 8|0); + $22 = ((($0)) + 16|0); + $23 = ($1|0)==(2); + $24 = ($1|0)==(2); + $$0206 = 0;$$0211 = 0;$$0214 = 0;$$0217 = 0;$$0228 = 0;$$0231 = 0;$$0235 = 0;$$0241 = 1;$$0245 = 0; + L7: while(1) { + _stbi__get_chunk_header($6,$8); + $25 = HEAP32[$15>>2]|0; + $switch$split2D = ($25|0)<(1229472850); + L9: do { + if ($switch$split2D) { + $switch$split52D = ($25|0)<(1229209940); + if ($switch$split52D) { + switch ($25|0) { + case 1130840649: { + break; + } + default: { + label = 103; + break L9; + } + } + $26 = HEAP32[$6>>2]|0; + _stbi__skip($8,$26); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = 1;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + $switch$split112D = ($25|0)<(1229278788); + if (!($switch$split112D)) { + switch ($25|0) { + case 1229278788: { + label = 85; + break L7; + break; + } + default: { + label = 103; + break L9; + } + } + } + switch ($25|0) { + case 1229209940: { + break; + } + default: { + label = 103; + break L9; + } + } + $130 = ($$0241|0)==(0); + if (!($130)) { + label = 70; + break L7; + } + $131 = ($$0206<<24>>24)==(0); + $132 = ($$0245|0)!=(0); + $or$cond = $132 | $131; + if (!($or$cond)) { + label = 72; + break L7; + } + if ($24) { + label = 74; + break L7; + } + $135 = HEAP32[$6>>2]|0; + $136 = (($135) + ($$0214))|0; + $137 = ($136|0)<($$0214|0); + if ($137) { + $$6$ph = 0; + break L7; + } + $138 = ($136>>>0)>($$0217>>>0); + if ($138) { + $139 = ($$0217|0)==(0); + $140 = ($135>>>0)>(4096); + $141 = $140 ? $135 : 4096; + $$$0217 = $139 ? $141 : $$0217; + $142 = HEAP32[$6>>2]|0; + $143 = (($142) + ($$0214))|0; + $$1218 = $$$0217; + while(1) { + $144 = ($143>>>0)>($$1218>>>0); + $145 = $$1218 << 1; + if ($144) { + $$1218 = $145; + } else { + break; + } + } + $146 = HEAP32[$10>>2]|0; + $147 = (_realloc($146,$$1218)|0); + $148 = ($147|0)==(0|0); + if ($148) { + label = 81; + break L7; + } + HEAP32[$10>>2] = $147; + $$2219 = $$1218; + } else { + $$2219 = $$0217; + } + $149 = HEAP32[$10>>2]|0; + $150 = (($149) + ($$0214)|0); + $151 = HEAP32[$6>>2]|0; + $152 = (_stbi__getn($8,$150,$151)|0); + $153 = ($152|0)==(0); + if ($153) { + label = 83; + break L7; + } + $154 = HEAP32[$6>>2]|0; + $155 = (($154) + ($$0214))|0; + $$1212 = $$0211;$$1215 = $155;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$2219; + } else { + $switch$split82D = ($25|0)<(1347179589); + if ($switch$split82D) { + switch ($25|0) { + case 1229472850: { + break; + } + default: { + label = 103; + break L9; + } + } + $27 = ($$0241|0)==(0); + if ($27) { + label = 7; + break L7; + } + $28 = HEAP32[$6>>2]|0; + $29 = ($28|0)==(13); + if (!($29)) { + label = 9; + break L7; + } + $30 = (_stbi__get32be($8)|0); + HEAP32[$8>>2] = $30; + $31 = ($30>>>0)>(16777216); + if ($31) { + label = 11; + break L7; + } + $32 = (_stbi__get32be($8)|0); + HEAP32[$16>>2] = $32; + $33 = ($32>>>0)>(16777216); + if ($33) { + label = 13; + break L7; + } + $34 = (_stbi__get8($8)|0); + $35 = $34&255; + HEAP32[$17>>2] = $35; + switch ($34<<24>>24) { + case 16: case 8: case 4: case 2: case 1: { + break; + } + default: { + label = 15; + break L7; + } + } + $36 = (_stbi__get8($8)|0); + $37 = $36&255; + $38 = ($36&255)>(6); + if ($38) { + label = 17; + break L7; + } + $39 = ($36<<24>>24)==(3); + if ($39) { + $40 = HEAP32[$17>>2]|0; + $41 = ($40|0)==(16); + if ($41) { + label = 20; + break L7; + } else { + $$1207 = 3; + } + } else { + $42 = $37 & 1; + $43 = ($42|0)==(0); + if ($43) { + $$1207 = $$0206; + } else { + label = 22; + break L7; + } + } + $44 = (_stbi__get8($8)|0); + $45 = ($44<<24>>24)==(0); + if (!($45)) { + label = 24; + break L7; + } + $46 = (_stbi__get8($8)|0); + $47 = ($46<<24>>24)==(0); + if (!($47)) { + label = 26; + break L7; + } + $48 = (_stbi__get8($8)|0); + $49 = $48&255; + $50 = ($48&255)>(1); + if ($50) { + label = 28; + break L7; + } + $51 = HEAP32[$8>>2]|0; + $52 = ($51|0)==(0); + if ($52) { + label = 31; + break L7; + } + $53 = HEAP32[$16>>2]|0; + $54 = ($53|0)==(0); + if ($54) { + label = 31; + break L7; + } + $55 = ($$1207<<24>>24)==(0); + $56 = (1073741824 / ($51>>>0))&-1; + if (!($55)) { + HEAP32[$20>>2] = 1; + $63 = $56 >>> 2; + $64 = ($63>>>0)<($53>>>0); + if ($64) { + label = 37; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = $$1207;$$3220 = $$0217; + break; + } + } + $57 = $37 & 2; + $58 = $57 | 1; + $59 = $37 >>> 2; + $$lobit = $59 & 1; + $60 = (($58) + ($$lobit))|0; + HEAP32[$18>>2] = $60; + $61 = (($56>>>0) / ($60>>>0))&-1; + $62 = ($61>>>0)<($53>>>0); + if ($62) { + label = 34; + break L7; + } + if ($19) { + $$6$ph = 1; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + } + $switch$split142D = ($25|0)<(1951551059); + if ($switch$split142D) { + switch ($25|0) { + case 1347179589: { + break; + } + default: { + label = 103; + break L9; + } + } + $65 = ($$0241|0)==(0); + if (!($65)) { + label = 39; + break L7; + } + $66 = HEAP32[$6>>2]|0; + $67 = ($66>>>0)>(768); + if ($67) { + label = 41; + break L7; + } + $68 = (($66>>>0) / 3)&-1; + $69 = ($68*3)|0; + $70 = ($69|0)==($66|0); + if (!($70)) { + label = 44; + break L7; + } + $71 = ($66>>>0)>(2); + if ($71) { + $$0226593 = 0; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + break; + } + while(1) { + $72 = (_stbi__get8($8)|0); + $73 = $$0226593 << 2; + $74 = (($3) + ($73)|0); + HEAP8[$74>>0] = $72; + $75 = (_stbi__get8($8)|0); + $76 = $73 | 1; + $77 = (($3) + ($76)|0); + HEAP8[$77>>0] = $75; + $78 = (_stbi__get8($8)|0); + $79 = $73 | 2; + $80 = (($3) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = $73 | 3; + $82 = (($3) + ($81)|0); + HEAP8[$82>>0] = -1; + $83 = (($$0226593) + 1)|0; + $84 = ($83>>>0)<($68>>>0); + if ($84) { + $$0226593 = $83; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break L9; + } + } + } + switch ($25|0) { + case 1951551059: { + break; + } + default: { + label = 103; + break L9; + } + } + $85 = ($$0241|0)==(0); + if (!($85)) { + label = 47; + break L7; + } + $86 = HEAP32[$10>>2]|0; + $87 = ($86|0)==(0|0); + if (!($87)) { + label = 49; + break L7; + } + $88 = ($$0206<<24>>24)==(0); + if (!($88)) { + if ($23) { + label = 52; + break L7; + } + $90 = ($$0245|0)==(0); + if ($90) { + label = 54; + break L7; + } + $91 = HEAP32[$6>>2]|0; + $92 = ($91>>>0)>($$0245>>>0); + if ($92) { + label = 58; + break L7; + } + $93 = HEAP32[$6>>2]|0; + $94 = ($93|0)==(0); + if ($94) { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 4;$$3220 = $$0217; + break; + } + $95 = HEAP32[$6>>2]|0; + $$1227588 = 0; + while(1) { + $96 = (_stbi__get8($8)|0); + $97 = $$1227588 << 2; + $98 = $97 | 3; + $99 = (($3) + ($98)|0); + HEAP8[$99>>0] = $96; + $100 = (($$1227588) + 1)|0; + $101 = ($100>>>0)<($95>>>0); + if ($101) { + $$1227588 = $100; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = 4;$$3220 = $$0217; + break L9; + } + } + } + $102 = HEAP32[$21>>2]|0; + $103 = $102 & 1; + $104 = ($103|0)==(0); + if ($104) { + label = 61; + break L7; + } + $105 = HEAP32[$6>>2]|0; + $106 = $102 << 1; + $107 = ($105|0)==($106|0); + if (!($107)) { + label = 63; + break L7; + } + $108 = HEAP32[$22>>2]|0; + $109 = ($108|0)==(16); + $110 = HEAP32[$21>>2]|0; + $111 = ($110|0)>(0); + if ($109) { + if ($111) { + $$0239591 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $112 = (_stbi__get16be($8)|0); + $113 = $112&65535; + $114 = (($5) + ($$0239591<<1)|0); + HEAP16[$114>>1] = $113; + $115 = (($$0239591) + 1)|0; + $116 = HEAP32[$21>>2]|0; + $117 = ($115|0)<($116|0); + if ($117) { + $$0239591 = $115; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } else { + if ($111) { + $$1240589 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $118 = (_stbi__get16be($8)|0); + $119 = $118 & 255; + $120 = HEAP32[$22>>2]|0; + $121 = (9853 + ($120)|0); + $122 = HEAP8[$121>>0]|0; + $123 = $122&255; + $124 = Math_imul($123, $119)|0; + $125 = $124&255; + $126 = (($4) + ($$1240589)|0); + HEAP8[$126>>0] = $125; + $127 = (($$1240589) + 1)|0; + $128 = HEAP32[$21>>2]|0; + $129 = ($127|0)<($128|0); + if ($129) { + $$1240589 = $127; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } + } + } while(0); + if ((label|0) == 103) { + label = 0; + $202 = ($$0241|0)==(0); + if (!($202)) { + label = 104; + break; + } + $203 = $25 & 536870912; + $204 = ($203|0)==(0); + if ($204) { + label = 106; + break; + } + $213 = HEAP32[$6>>2]|0; + _stbi__skip($8,$213); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + } + (_stbi__get32be($8)|0); + $$0206 = $$3209;$$0211 = $$1212;$$0214 = $$1215;$$0217 = $$3220;$$0228 = $$1229;$$0231 = $$2233;$$0235 = $$2237;$$0241 = $$2243;$$0245 = $$1246; + } + switch (label|0) { + case 7: { + _stbi__err(9627); + $$6$ph = 0; + break; + } + case 9: { + _stbi__err(9641); + $$6$ph = 0; + break; + } + case 11: { + _stbi__err(9654); + $$6$ph = 0; + break; + } + case 13: { + _stbi__err(9654); + $$6$ph = 0; + break; + } + case 15: { + _stbi__err(9664); + $$6$ph = 0; + break; + } + case 17: { + _stbi__err(9684); + $$6$ph = 0; + break; + } + case 20: { + _stbi__err(9684); + $$6$ph = 0; + break; + } + case 22: { + _stbi__err(9684); + $$6$ph = 0; + break; + } + case 24: { + _stbi__err(9694); + $$6$ph = 0; + break; + } + case 26: { + _stbi__err(9710); + $$6$ph = 0; + break; + } + case 28: { + _stbi__err(9728); + $$6$ph = 0; + break; + } + case 31: { + _stbi__err(9749); + $$6$ph = 0; + break; + } + case 34: { + _stbi__err(9654); + $$6$ph = 0; + break; + } + case 37: { + _stbi__err(9654); + $$6$ph = 0; + break; + } + case 39: { + _stbi__err(9763); + $$6$ph = 0; + break; + } + case 41: { + _stbi__err(9778); + $$6$ph = 0; + break; + } + case 44: { + _stbi__err(9778); + $$6$ph = 0; + break; + } + case 47: { + _stbi__err(9763); + $$6$ph = 0; + break; + } + case 49: { + _stbi__err(9791); + $$6$ph = 0; + break; + } + case 52: { + $89 = ((($8)) + 8|0); + HEAP32[$89>>2] = 4; + $$6$ph = 1; + break; + } + case 54: { + _stbi__err(9807); + $$6$ph = 0; + break; + } + case 58: { + _stbi__err(9824); + $$6$ph = 0; + break; + } + case 61: { + _stbi__err(9837); + $$6$ph = 0; + break; + } + case 63: { + _stbi__err(9824); + $$6$ph = 0; + break; + } + case 70: { + _stbi__err(9763); + $$6$ph = 0; + break; + } + case 72: { + _stbi__err(9862); + $$6$ph = 0; + break; + } + case 74: { + $133 = $$0206&255; + $134 = ((($8)) + 8|0); + HEAP32[$134>>2] = $133; + $$6$ph = 1; + break; + } + case 81: { + _stbi__err(9509); + $$6$ph = 0; + break; + } + case 83: { + _stbi__err(9870); + $$6$ph = 0; + break; + } + case 85: { + $156 = ($$0241|0)==(0); + do { + if ($156) { + $157 = ($1|0)==(0); + if ($157) { + $158 = HEAP32[$10>>2]|0; + $159 = ($158|0)==(0|0); + if ($159) { + _stbi__err(9880); + $$4 = 0; + break; + } + $160 = HEAP32[$8>>2]|0; + $161 = ((($0)) + 16|0); + $162 = HEAP32[$161>>2]|0; + $163 = Math_imul($162, $160)|0; + $164 = (($163) + 7)|0; + $165 = $164 >>> 3; + $166 = ((($8)) + 4|0); + $167 = HEAP32[$166>>2]|0; + $168 = ((($8)) + 8|0); + $169 = HEAP32[$168>>2]|0; + $170 = Math_imul($169, $167)|0; + $171 = Math_imul($170, $165)|0; + $172 = (($171) + ($167))|0; + HEAP32[$7>>2] = $172; + $173 = ($$0228|0)!=(0); + $174 = $173 ^ 1; + $175 = $174&1; + $176 = (_stbi_zlib_decode_malloc_guesssize_headerflag($158,$$0214,$172,$7,$175)|0); + HEAP32[$9>>2] = $176; + $177 = ($176|0)==(0|0); + if ($177) { + $$4 = 0; + } else { + $178 = HEAP32[$10>>2]|0; + _free($178); + HEAP32[$10>>2] = 0; + $179 = HEAP32[$168>>2]|0; + $180 = (($179) + 1)|0; + $notlhs = ($180|0)!=($2|0); + $notrhs = ($2|0)==(3); + $or$cond5$not = $notrhs | $notlhs; + $181 = ($$0206<<24>>24)!=(0); + $or$cond7 = $181 | $or$cond5$not; + $182 = ($$0211<<24>>24)==(0); + $or$cond248 = $182 & $or$cond7; + $$254 = $or$cond248 ? $179 : $180; + $183 = ((($8)) + 12|0); + HEAP32[$183>>2] = $$254; + $184 = HEAP32[$9>>2]|0; + $185 = HEAP32[$7>>2]|0; + $186 = HEAP32[$161>>2]|0; + $187 = (_stbi__create_png_image($0,$184,$185,$$254,$186,$$0231,$$0235)|0); + $188 = ($187|0)==(0); + if ($188) { + $$4 = 0; + } else { + do { + if (!($182)) { + $189 = HEAP32[$161>>2]|0; + $190 = ($189|0)==(16); + if ($190) { + $191 = HEAP32[$183>>2]|0; + _stbi__compute_transparency16($0,$5,$191); + break; + } else { + $192 = HEAP32[$183>>2]|0; + _stbi__compute_transparency($0,$4,$192); + break; + } + } + } while(0); + $193 = HEAP32[4968]|0; + $194 = ($193|0)!=(0); + $or$cond11 = $173 & $194; + if ($or$cond11) { + $195 = HEAP32[$183>>2]|0; + $196 = ($195|0)>(2); + if ($196) { + _stbi__de_iphone($0); + } + } + if ($181) { + $197 = $$0206&255; + HEAP32[$168>>2] = $197; + $198 = ($2|0)>(2); + $$ = $198 ? $2 : $197; + HEAP32[$183>>2] = $$; + $199 = (_stbi__expand_png_palette($0,$3,$$)|0); + $200 = ($199|0)==(0); + if ($200) { + $$4 = 0; + break; + } + } + $201 = HEAP32[$9>>2]|0; + _free($201); + HEAP32[$9>>2] = 0; + $$4 = 1; + } + } + } else { + $$4 = 1; + } + } else { + _stbi__err(9763); + $$4 = 0; + } + } while(0); + $$6$ph = $$4; + break; + } + case 104: { + _stbi__err(9763); + $$6$ph = 0; + break; + } + case 106: { + $205 = $25 >>> 24; + $206 = $205&255; + HEAP8[9888] = $206; + $207 = HEAP32[$15>>2]|0; + $208 = $207 >>> 16; + $209 = $208&255; + HEAP8[(9889)>>0] = $209; + $210 = $207 >>> 8; + $211 = $210&255; + HEAP8[(9890)>>0] = $211; + $212 = $207&255; + HEAP8[(9891)>>0] = $212; + _stbi__err(9888); + $$6$ph = 0; + break; + } + } + $$7 = $$6$ph; + STACKTOP = sp;return ($$7|0); +} +function _stbi__convert_format($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9550|0),(9454|0),1477,(9606|0)); + // unreachable; + } + $7 = (_stbi__malloc_mad3($2,$3,$4)|0); + $8 = ($7|0)==(0|0); + if ($8) { + _free($0); + _stbi__err(9509); + $$0163 = 0; + return ($$0163|0); + } + $9 = ($4|0)>(0); + L11: do { + if ($9) { + $10 = $1 << 3; + $11 = (($10) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $12 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $13 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $14 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $15 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $16 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $17 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $18 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $19 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $20 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $21 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $22 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $23 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $24 = Math_imul($$0164259, $3)|0; + $25 = Math_imul($24, $1)|0; + $26 = (($0) + ($25)|0); + $27 = Math_imul($24, $2)|0; + $28 = (($7) + ($27)|0); + do { + switch ($11|0) { + case 10: { + if ($12) { + $$0151255 = $26;$$0165257 = $$0165254;$$0256 = $28; + while(1) { + $29 = HEAP8[$$0151255>>0]|0; + HEAP8[$$0256>>0] = $29; + $30 = ((($$0256)) + 1|0); + HEAP8[$30>>0] = -1; + $31 = ((($$0151255)) + 1|0); + $32 = ((($$0256)) + 2|0); + $$0165 = (($$0165257) + -1)|0; + $33 = ($$0165|0)>(-1); + if ($33) { + $$0151255 = $31;$$0165257 = $$0165;$$0256 = $32; + } else { + break; + } + } + } + break; + } + case 11: { + if ($13) { + $$1152250 = $26;$$1166252 = $$1166249;$$1251 = $28; + while(1) { + $34 = HEAP8[$$1152250>>0]|0; + $35 = ((($$1251)) + 2|0); + HEAP8[$35>>0] = $34; + $36 = ((($$1251)) + 1|0); + HEAP8[$36>>0] = $34; + HEAP8[$$1251>>0] = $34; + $37 = ((($$1152250)) + 1|0); + $38 = ((($$1251)) + 3|0); + $$1166 = (($$1166252) + -1)|0; + $39 = ($$1166|0)>(-1); + if ($39) { + $$1152250 = $37;$$1166252 = $$1166;$$1251 = $38; + } else { + break; + } + } + } + break; + } + case 12: { + if ($14) { + $$2153245 = $26;$$2167247 = $$2167244;$$2246 = $28; + while(1) { + $40 = HEAP8[$$2153245>>0]|0; + $41 = ((($$2246)) + 2|0); + HEAP8[$41>>0] = $40; + $42 = ((($$2246)) + 1|0); + HEAP8[$42>>0] = $40; + HEAP8[$$2246>>0] = $40; + $43 = ((($$2246)) + 3|0); + HEAP8[$43>>0] = -1; + $44 = ((($$2153245)) + 1|0); + $45 = ((($$2246)) + 4|0); + $$2167 = (($$2167247) + -1)|0; + $46 = ($$2167|0)>(-1); + if ($46) { + $$2153245 = $44;$$2167247 = $$2167;$$2246 = $45; + } else { + break; + } + } + } + break; + } + case 17: { + if ($15) { + $$3154240 = $26;$$3168242 = $$3168239;$$3241 = $28; + while(1) { + $47 = HEAP8[$$3154240>>0]|0; + HEAP8[$$3241>>0] = $47; + $48 = ((($$3154240)) + 2|0); + $49 = ((($$3241)) + 1|0); + $$3168 = (($$3168242) + -1)|0; + $50 = ($$3168|0)>(-1); + if ($50) { + $$3154240 = $48;$$3168242 = $$3168;$$3241 = $49; + } else { + break; + } + } + } + break; + } + case 19: { + if ($16) { + $$4155235 = $26;$$4169237 = $$4169234;$$4236 = $28; + while(1) { + $51 = HEAP8[$$4155235>>0]|0; + $52 = ((($$4236)) + 2|0); + HEAP8[$52>>0] = $51; + $53 = ((($$4236)) + 1|0); + HEAP8[$53>>0] = $51; + HEAP8[$$4236>>0] = $51; + $54 = ((($$4155235)) + 2|0); + $55 = ((($$4236)) + 3|0); + $$4169 = (($$4169237) + -1)|0; + $56 = ($$4169|0)>(-1); + if ($56) { + $$4155235 = $54;$$4169237 = $$4169;$$4236 = $55; + } else { + break; + } + } + } + break; + } + case 20: { + if ($17) { + $$5156230 = $26;$$5170232 = $$5170229;$$5231 = $28; + while(1) { + $57 = HEAP8[$$5156230>>0]|0; + $58 = ((($$5231)) + 2|0); + HEAP8[$58>>0] = $57; + $59 = ((($$5231)) + 1|0); + HEAP8[$59>>0] = $57; + HEAP8[$$5231>>0] = $57; + $60 = ((($$5156230)) + 1|0); + $61 = HEAP8[$60>>0]|0; + $62 = ((($$5231)) + 3|0); + HEAP8[$62>>0] = $61; + $63 = ((($$5156230)) + 2|0); + $64 = ((($$5231)) + 4|0); + $$5170 = (($$5170232) + -1)|0; + $65 = ($$5170|0)>(-1); + if ($65) { + $$5156230 = $63;$$5170232 = $$5170;$$5231 = $64; + } else { + break; + } + } + } + break; + } + case 28: { + if ($18) { + $$6157225 = $26;$$6171227 = $$6171224;$$6226 = $28; + while(1) { + $66 = HEAP8[$$6157225>>0]|0; + HEAP8[$$6226>>0] = $66; + $67 = ((($$6157225)) + 1|0); + $68 = HEAP8[$67>>0]|0; + $69 = ((($$6226)) + 1|0); + HEAP8[$69>>0] = $68; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP8[$70>>0]|0; + $72 = ((($$6226)) + 2|0); + HEAP8[$72>>0] = $71; + $73 = ((($$6226)) + 3|0); + HEAP8[$73>>0] = -1; + $74 = ((($$6157225)) + 3|0); + $75 = ((($$6226)) + 4|0); + $$6171 = (($$6171227) + -1)|0; + $76 = ($$6171|0)>(-1); + if ($76) { + $$6157225 = $74;$$6171227 = $$6171;$$6226 = $75; + } else { + break; + } + } + } + break; + } + case 25: { + if ($19) { + $$7158220 = $26;$$7172222 = $$7172219;$$7221 = $28; + while(1) { + $77 = HEAP8[$$7158220>>0]|0; + $78 = $77&255; + $79 = ((($$7158220)) + 1|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP8[$82>>0]|0; + $84 = $83&255; + $85 = (_stbi__compute_y($78,$81,$84)|0); + HEAP8[$$7221>>0] = $85; + $86 = ((($$7158220)) + 3|0); + $87 = ((($$7221)) + 1|0); + $$7172 = (($$7172222) + -1)|0; + $88 = ($$7172|0)>(-1); + if ($88) { + $$7158220 = $86;$$7172222 = $$7172;$$7221 = $87; + } else { + break; + } + } + } + break; + } + case 26: { + if ($20) { + $$8159215 = $26;$$8173217 = $$8173214;$$8216 = $28; + while(1) { + $89 = HEAP8[$$8159215>>0]|0; + $90 = $89&255; + $91 = ((($$8159215)) + 1|0); + $92 = HEAP8[$91>>0]|0; + $93 = $92&255; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP8[$94>>0]|0; + $96 = $95&255; + $97 = (_stbi__compute_y($90,$93,$96)|0); + HEAP8[$$8216>>0] = $97; + $98 = ((($$8216)) + 1|0); + HEAP8[$98>>0] = -1; + $99 = ((($$8159215)) + 3|0); + $100 = ((($$8216)) + 2|0); + $$8173 = (($$8173217) + -1)|0; + $101 = ($$8173|0)>(-1); + if ($101) { + $$8159215 = $99;$$8173217 = $$8173;$$8216 = $100; + } else { + break; + } + } + } + break; + } + case 33: { + if ($21) { + $$9160210 = $26;$$9174212 = $$9174209;$$9211 = $28; + while(1) { + $102 = HEAP8[$$9160210>>0]|0; + $103 = $102&255; + $104 = ((($$9160210)) + 1|0); + $105 = HEAP8[$104>>0]|0; + $106 = $105&255; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP8[$107>>0]|0; + $109 = $108&255; + $110 = (_stbi__compute_y($103,$106,$109)|0); + HEAP8[$$9211>>0] = $110; + $111 = ((($$9160210)) + 4|0); + $112 = ((($$9211)) + 1|0); + $$9174 = (($$9174212) + -1)|0; + $113 = ($$9174|0)>(-1); + if ($113) { + $$9160210 = $111;$$9174212 = $$9174;$$9211 = $112; + } else { + break; + } + } + } + break; + } + case 34: { + if ($22) { + $$10161205 = $26;$$10175207 = $$10175204;$$10206 = $28; + while(1) { + $114 = HEAP8[$$10161205>>0]|0; + $115 = $114&255; + $116 = ((($$10161205)) + 1|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP8[$119>>0]|0; + $121 = $120&255; + $122 = (_stbi__compute_y($115,$118,$121)|0); + HEAP8[$$10206>>0] = $122; + $123 = ((($$10161205)) + 3|0); + $124 = HEAP8[$123>>0]|0; + $125 = ((($$10206)) + 1|0); + HEAP8[$125>>0] = $124; + $126 = ((($$10161205)) + 4|0); + $127 = ((($$10206)) + 2|0); + $$10175 = (($$10175207) + -1)|0; + $128 = ($$10175|0)>(-1); + if ($128) { + $$10161205 = $126;$$10175207 = $$10175;$$10206 = $127; + } else { + break; + } + } + } + break; + } + case 35: { + if ($23) { + $$11162201 = $26;$$11176203 = $$11176200;$$11202 = $28; + while(1) { + $129 = HEAP8[$$11162201>>0]|0; + HEAP8[$$11202>>0] = $129; + $130 = ((($$11162201)) + 1|0); + $131 = HEAP8[$130>>0]|0; + $132 = ((($$11202)) + 1|0); + HEAP8[$132>>0] = $131; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP8[$133>>0]|0; + $135 = ((($$11202)) + 2|0); + HEAP8[$135>>0] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = ((($$11202)) + 3|0); + $$11176 = (($$11176203) + -1)|0; + $138 = ($$11176|0)>(-1); + if ($138) { + $$11162201 = $136;$$11176203 = $$11176;$$11202 = $137; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $139 = (($$0164259) + 1)|0; + $140 = ($139|0)<($4|0); + if ($140) { + $$0164259 = $139; + } else { + break L11; + } + } + ___assert_fail((9604|0),(9454|0),1506,(9606|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $7; + return ($$0163|0); +} +function _stbi__convert_format16($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9550|0),(9454|0),1526,(9581|0)); + // unreachable; + } + $7 = $2 << 1; + $8 = Math_imul($7, $3)|0; + $9 = Math_imul($8, $4)|0; + $10 = (_stbi__malloc($9)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _free($0); + _stbi__err(9509); + $$0163 = 0; + return ($$0163|0); + } + $12 = ($4|0)>(0); + L11: do { + if ($12) { + $13 = $1 << 3; + $14 = (($13) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $15 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $16 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $17 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $18 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $19 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $20 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $21 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $22 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $23 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $24 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $25 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $26 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $27 = Math_imul($$0164259, $3)|0; + $28 = Math_imul($27, $1)|0; + $29 = (($0) + ($28<<1)|0); + $30 = Math_imul($27, $2)|0; + $31 = (($10) + ($30<<1)|0); + do { + switch ($14|0) { + case 10: { + if ($15) { + $$0151255 = $29;$$0165257 = $$0165254;$$0256 = $31; + while(1) { + $32 = HEAP16[$$0151255>>1]|0; + HEAP16[$$0256>>1] = $32; + $33 = ((($$0256)) + 2|0); + HEAP16[$33>>1] = -1; + $34 = ((($$0151255)) + 2|0); + $35 = ((($$0256)) + 4|0); + $$0165 = (($$0165257) + -1)|0; + $36 = ($$0165|0)>(-1); + if ($36) { + $$0151255 = $34;$$0165257 = $$0165;$$0256 = $35; + } else { + break; + } + } + } + break; + } + case 11: { + if ($16) { + $$1152250 = $29;$$1166252 = $$1166249;$$1251 = $31; + while(1) { + $37 = HEAP16[$$1152250>>1]|0; + $38 = ((($$1251)) + 4|0); + HEAP16[$38>>1] = $37; + $39 = ((($$1251)) + 2|0); + HEAP16[$39>>1] = $37; + HEAP16[$$1251>>1] = $37; + $40 = ((($$1152250)) + 2|0); + $41 = ((($$1251)) + 6|0); + $$1166 = (($$1166252) + -1)|0; + $42 = ($$1166|0)>(-1); + if ($42) { + $$1152250 = $40;$$1166252 = $$1166;$$1251 = $41; + } else { + break; + } + } + } + break; + } + case 12: { + if ($17) { + $$2153245 = $29;$$2167247 = $$2167244;$$2246 = $31; + while(1) { + $43 = HEAP16[$$2153245>>1]|0; + $44 = ((($$2246)) + 4|0); + HEAP16[$44>>1] = $43; + $45 = ((($$2246)) + 2|0); + HEAP16[$45>>1] = $43; + HEAP16[$$2246>>1] = $43; + $46 = ((($$2246)) + 6|0); + HEAP16[$46>>1] = -1; + $47 = ((($$2153245)) + 2|0); + $48 = ((($$2246)) + 8|0); + $$2167 = (($$2167247) + -1)|0; + $49 = ($$2167|0)>(-1); + if ($49) { + $$2153245 = $47;$$2167247 = $$2167;$$2246 = $48; + } else { + break; + } + } + } + break; + } + case 17: { + if ($18) { + $$3154240 = $29;$$3168242 = $$3168239;$$3241 = $31; + while(1) { + $50 = HEAP16[$$3154240>>1]|0; + HEAP16[$$3241>>1] = $50; + $51 = ((($$3154240)) + 4|0); + $52 = ((($$3241)) + 2|0); + $$3168 = (($$3168242) + -1)|0; + $53 = ($$3168|0)>(-1); + if ($53) { + $$3154240 = $51;$$3168242 = $$3168;$$3241 = $52; + } else { + break; + } + } + } + break; + } + case 19: { + if ($19) { + $$4155235 = $29;$$4169237 = $$4169234;$$4236 = $31; + while(1) { + $54 = HEAP16[$$4155235>>1]|0; + $55 = ((($$4236)) + 4|0); + HEAP16[$55>>1] = $54; + $56 = ((($$4236)) + 2|0); + HEAP16[$56>>1] = $54; + HEAP16[$$4236>>1] = $54; + $57 = ((($$4155235)) + 4|0); + $58 = ((($$4236)) + 6|0); + $$4169 = (($$4169237) + -1)|0; + $59 = ($$4169|0)>(-1); + if ($59) { + $$4155235 = $57;$$4169237 = $$4169;$$4236 = $58; + } else { + break; + } + } + } + break; + } + case 20: { + if ($20) { + $$5156230 = $29;$$5170232 = $$5170229;$$5231 = $31; + while(1) { + $60 = HEAP16[$$5156230>>1]|0; + $61 = ((($$5231)) + 4|0); + HEAP16[$61>>1] = $60; + $62 = ((($$5231)) + 2|0); + HEAP16[$62>>1] = $60; + HEAP16[$$5231>>1] = $60; + $63 = ((($$5156230)) + 2|0); + $64 = HEAP16[$63>>1]|0; + $65 = ((($$5231)) + 6|0); + HEAP16[$65>>1] = $64; + $66 = ((($$5156230)) + 4|0); + $67 = ((($$5231)) + 8|0); + $$5170 = (($$5170232) + -1)|0; + $68 = ($$5170|0)>(-1); + if ($68) { + $$5156230 = $66;$$5170232 = $$5170;$$5231 = $67; + } else { + break; + } + } + } + break; + } + case 28: { + if ($21) { + $$6157225 = $29;$$6171227 = $$6171224;$$6226 = $31; + while(1) { + $69 = HEAP16[$$6157225>>1]|0; + HEAP16[$$6226>>1] = $69; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP16[$70>>1]|0; + $72 = ((($$6226)) + 2|0); + HEAP16[$72>>1] = $71; + $73 = ((($$6157225)) + 4|0); + $74 = HEAP16[$73>>1]|0; + $75 = ((($$6226)) + 4|0); + HEAP16[$75>>1] = $74; + $76 = ((($$6226)) + 6|0); + HEAP16[$76>>1] = -1; + $77 = ((($$6157225)) + 6|0); + $78 = ((($$6226)) + 8|0); + $$6171 = (($$6171227) + -1)|0; + $79 = ($$6171|0)>(-1); + if ($79) { + $$6157225 = $77;$$6171227 = $$6171;$$6226 = $78; + } else { + break; + } + } + } + break; + } + case 25: { + if ($22) { + $$7158220 = $29;$$7172222 = $$7172219;$$7221 = $31; + while(1) { + $80 = HEAP16[$$7158220>>1]|0; + $81 = $80&65535; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP16[$82>>1]|0; + $84 = $83&65535; + $85 = ((($$7158220)) + 4|0); + $86 = HEAP16[$85>>1]|0; + $87 = $86&65535; + $88 = (_stbi__compute_y_16($81,$84,$87)|0); + HEAP16[$$7221>>1] = $88; + $89 = ((($$7158220)) + 6|0); + $90 = ((($$7221)) + 2|0); + $$7172 = (($$7172222) + -1)|0; + $91 = ($$7172|0)>(-1); + if ($91) { + $$7158220 = $89;$$7172222 = $$7172;$$7221 = $90; + } else { + break; + } + } + } + break; + } + case 26: { + if ($23) { + $$8159215 = $29;$$8173217 = $$8173214;$$8216 = $31; + while(1) { + $92 = HEAP16[$$8159215>>1]|0; + $93 = $92&65535; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP16[$94>>1]|0; + $96 = $95&65535; + $97 = ((($$8159215)) + 4|0); + $98 = HEAP16[$97>>1]|0; + $99 = $98&65535; + $100 = (_stbi__compute_y_16($93,$96,$99)|0); + HEAP16[$$8216>>1] = $100; + $101 = ((($$8216)) + 2|0); + HEAP16[$101>>1] = -1; + $102 = ((($$8159215)) + 6|0); + $103 = ((($$8216)) + 4|0); + $$8173 = (($$8173217) + -1)|0; + $104 = ($$8173|0)>(-1); + if ($104) { + $$8159215 = $102;$$8173217 = $$8173;$$8216 = $103; + } else { + break; + } + } + } + break; + } + case 33: { + if ($24) { + $$9160210 = $29;$$9174212 = $$9174209;$$9211 = $31; + while(1) { + $105 = HEAP16[$$9160210>>1]|0; + $106 = $105&65535; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP16[$107>>1]|0; + $109 = $108&65535; + $110 = ((($$9160210)) + 4|0); + $111 = HEAP16[$110>>1]|0; + $112 = $111&65535; + $113 = (_stbi__compute_y_16($106,$109,$112)|0); + HEAP16[$$9211>>1] = $113; + $114 = ((($$9160210)) + 8|0); + $115 = ((($$9211)) + 2|0); + $$9174 = (($$9174212) + -1)|0; + $116 = ($$9174|0)>(-1); + if ($116) { + $$9160210 = $114;$$9174212 = $$9174;$$9211 = $115; + } else { + break; + } + } + } + break; + } + case 34: { + if ($25) { + $$10161205 = $29;$$10175207 = $$10175204;$$10206 = $31; + while(1) { + $117 = HEAP16[$$10161205>>1]|0; + $118 = $117&65535; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP16[$119>>1]|0; + $121 = $120&65535; + $122 = ((($$10161205)) + 4|0); + $123 = HEAP16[$122>>1]|0; + $124 = $123&65535; + $125 = (_stbi__compute_y_16($118,$121,$124)|0); + HEAP16[$$10206>>1] = $125; + $126 = ((($$10161205)) + 6|0); + $127 = HEAP16[$126>>1]|0; + $128 = ((($$10206)) + 2|0); + HEAP16[$128>>1] = $127; + $129 = ((($$10161205)) + 8|0); + $130 = ((($$10206)) + 4|0); + $$10175 = (($$10175207) + -1)|0; + $131 = ($$10175|0)>(-1); + if ($131) { + $$10161205 = $129;$$10175207 = $$10175;$$10206 = $130; + } else { + break; + } + } + } + break; + } + case 35: { + if ($26) { + $$11162201 = $29;$$11176203 = $$11176200;$$11202 = $31; + while(1) { + $132 = HEAP16[$$11162201>>1]|0; + HEAP16[$$11202>>1] = $132; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP16[$133>>1]|0; + $135 = ((($$11202)) + 2|0); + HEAP16[$135>>1] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = HEAP16[$136>>1]|0; + $138 = ((($$11202)) + 4|0); + HEAP16[$138>>1] = $137; + $139 = ((($$11162201)) + 8|0); + $140 = ((($$11202)) + 6|0); + $$11176 = (($$11176203) + -1)|0; + $141 = ($$11176|0)>(-1); + if ($141) { + $$11162201 = $139;$$11176203 = $$11176;$$11202 = $140; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $142 = (($$0164259) + 1)|0; + $143 = ($142|0)<($4|0); + if ($143) { + $$0164259 = $142; + } else { + break L11; + } + } + ___assert_fail((9604|0),(9454|0),1555,(9581|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $10; + return ($$0163|0); +} +function _stbi__compute_y_16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&65535; + return ($9|0); +} +function _stbi__malloc_mad3($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mad3sizes_valid($0,$1,$2)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + $5 = Math_imul($1, $0)|0; + $6 = Math_imul($5, $2)|0; + $7 = (_stbi__malloc($6)|0); + $$0 = $7; + return ($$0|0); +} +function _stbi__compute_y($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&255; + return ($9|0); +} +function _stbi__mad3sizes_valid($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mul2sizes_valid($0,$1)|0); + $4 = ($3|0)==(0); + if ($4) { + $12 = 0; + } else { + $5 = Math_imul($1, $0)|0; + $6 = (_stbi__mul2sizes_valid($5,$2)|0); + $7 = ($6|0)==(0); + if ($7) { + $12 = 0; + } else { + $8 = Math_imul($5, $2)|0; + $9 = (_stbi__addsizes_valid($8)|0); + $10 = ($9|0)!=(0); + $12 = $10; + } + } + $11 = $12&1; + return ($11|0); +} +function _stbi__mul2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 | $0; + $3 = ($2|0)<(0); + if ($3) { + $$0 = 0; + } else { + $4 = ($1|0)==(0); + if ($4) { + $$0 = 1; + } else { + $5 = (2147483647 / ($1|0))&-1; + $6 = ($5|0)>=($0|0); + $7 = $6&1; + $$0 = $7; + } + } + return ($$0|0); +} +function _stbi__addsizes_valid($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 1; +} +function _stbi__check_png_header($0) { + $0 = $0|0; + var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = ($1<<24>>24)==(-119); + if ($2) { + $3 = (_stbi__get8($0)|0); + $4 = ($3<<24>>24)==(80); + if ($4) { + $5 = (_stbi__get8($0)|0); + $6 = ($5<<24>>24)==(78); + if ($6) { + $7 = (_stbi__get8($0)|0); + $8 = ($7<<24>>24)==(71); + if ($8) { + $9 = (_stbi__get8($0)|0); + $10 = ($9<<24>>24)==(13); + if ($10) { + $11 = (_stbi__get8($0)|0); + $12 = ($11<<24>>24)==(10); + if ($12) { + $13 = (_stbi__get8($0)|0); + $14 = ($13<<24>>24)==(26); + if ($14) { + $15 = (_stbi__get8($0)|0); + $16 = ($15<<24>>24)==(10); + if ($16) { + $$05 = 1; + return ($$05|0); + } + } + } + } + } + } + } + } + _stbi__err(10865); + $$05 = 0; + return ($$05|0); +} +function _stbi__get_chunk_header($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$4$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__get32be($1)|0); + $3 = (_stbi__get32be($1)|0); + HEAP32[$0>>2] = $2; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $3; + return; +} +function _stbi__skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(0); + if ($2) { + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 168|0); + HEAP32[$5>>2] = $4; + return; + } + $6 = ((($0)) + 16|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0|0); + if (!($8)) { + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 168|0); + $12 = HEAP32[$11>>2]|0; + $13 = $10; + $14 = (($13) - ($12))|0; + $15 = ($14|0)<($1|0); + if ($15) { + HEAP32[$11>>2] = $10; + $16 = ((($0)) + 20|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($0)) + 28|0); + $19 = HEAP32[$18>>2]|0; + $20 = (($1) - ($14))|0; + FUNCTION_TABLE_vii[$17 & 63]($19,$20); + return; + } + } + $21 = ((($0)) + 168|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($22) + ($1)|0); + HEAP32[$21>>2] = $23; + return; +} +function _stbi__get32be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get16be($0)|0); + $2 = $1 << 16; + $3 = (_stbi__get16be($0)|0); + $4 = (($2) + ($3))|0; + return ($4|0); +} +function _stbi__get8($0) { + $0 = $0|0; + var $$0 = 0, $$sink6 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 168|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)<($4>>>0); + do { + if ($5) { + $$sink6 = $2; + } else { + $6 = ((($0)) + 32|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0); + if ($8) { + $$0 = 0; + return ($$0|0); + } else { + _stbi__refill_buffer($0); + $9 = HEAP32[$1>>2]|0; + $$sink6 = $9; + break; + } + } + } while(0); + $10 = ((($$sink6)) + 1|0); + HEAP32[$1>>2] = $10; + $11 = HEAP8[$$sink6>>0]|0; + $$0 = $11; + return ($$0|0); +} +function _stbi__get16be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = $1&255; + $3 = $2 << 8; + $4 = (_stbi__get8($0)|0); + $5 = $4&255; + $6 = $3 | $5; + return ($6|0); +} +function _stbi__getn($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($0)) + 172|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($0)) + 168|0); + $9 = HEAP32[$8>>2]|0; + $10 = $9; + $11 = (($7) - ($10))|0; + $12 = ($11|0)<($2|0); + if ($12) { + _memcpy(($1|0),($9|0),($11|0))|0; + $13 = HEAP32[$3>>2]|0; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + $16 = (($1) + ($11)|0); + $17 = (($2) - ($11))|0; + $18 = (FUNCTION_TABLE_iiii[$13 & 15]($15,$16,$17)|0); + $19 = ($18|0)==($17|0); + $20 = $19&1; + $21 = HEAP32[$6>>2]|0; + HEAP32[$8>>2] = $21; + $$1 = $20; + return ($$1|0); + } + } + $22 = ((($0)) + 168|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($23) + ($2)|0); + $25 = ((($0)) + 172|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($24>>>0)>($26>>>0); + if ($27) { + $$1 = 0; + return ($$1|0); + } + _memcpy(($1|0),($23|0),($2|0))|0; + $28 = HEAP32[$22>>2]|0; + $29 = (($28) + ($2)|0); + HEAP32[$22>>2] = $29; + $$1 = 1; + return ($$1|0); +} +function _stbi_zlib_decode_malloc_guesssize_headerflag($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 4080|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(4080|0); + $5 = sp; + $6 = (_stbi__malloc($2)|0); + $7 = ($6|0)==(0|0); + do { + if ($7) { + $$0 = 0; + } else { + HEAP32[$5>>2] = $0; + $8 = (($0) + ($1)|0); + $9 = ((($5)) + 4|0); + HEAP32[$9>>2] = $8; + $10 = (_stbi__do_zlib($5,$6,$2,1,$4)|0); + $11 = ($10|0)==(0); + $12 = ((($5)) + 20|0); + $13 = HEAP32[$12>>2]|0; + if ($11) { + _free($13); + $$0 = 0; + break; + } + $14 = ($3|0)==(0|0); + if ($14) { + $$0 = $13; + } else { + $15 = ((($5)) + 16|0); + $16 = HEAP32[$15>>2]|0; + $17 = $13; + $18 = (($16) - ($17))|0; + HEAP32[$3>>2] = $18; + $$0 = $13; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _stbi__create_png_image($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$0103117 = 0, $$0106116 = 0, $$0107115 = 0, $$095119 = 0, $$099118 = 0, $$3102$ph = 0, $$398$ph = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $7 = ($4|0)==(16); + $8 = $7 ? 2 : 1; + $9 = Math_imul($8, $3)|0; + $10 = ($6|0)==(0); + $11 = HEAP32[$0>>2]|0; + $12 = HEAP32[$11>>2]|0; + $13 = ((($11)) + 4|0); + $14 = HEAP32[$13>>2]|0; + if ($10) { + $15 = (_stbi__create_png_image_raw($0,$1,$2,$3,$12,$14,$4,$5)|0); + $$4 = $15; + return ($$4|0); + } + $16 = (_stbi__malloc_mad3($12,$14,$9)|0); + $17 = ((($0)) + 12|0); + $18 = ((($0)) + 12|0); + $$0103117 = 0;$$095119 = $1;$$099118 = $2; + while(1) { + $19 = HEAP32[$0>>2]|0; + $20 = HEAP32[$19>>2]|0; + $21 = (3072 + ($$0103117<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = (3100 + ($$0103117<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (($20) + -1)|0; + $26 = (($25) - ($22))|0; + $27 = (($26) + ($24))|0; + $28 = (($27>>>0) / ($24>>>0))&-1; + $29 = ((($19)) + 4|0); + $30 = HEAP32[$29>>2]|0; + $31 = (3128 + ($$0103117<<2)|0); + $32 = HEAP32[$31>>2]|0; + $33 = (3156 + ($$0103117<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (($30) + -1)|0; + $36 = (($35) - ($32))|0; + $37 = (($36) + ($34))|0; + $38 = (($37>>>0) / ($34>>>0))&-1; + $39 = ($24>>>0)<=($27>>>0); + $40 = ($34>>>0)<=($37>>>0); + $or$cond = $39 & $40; + if ($or$cond) { + $41 = ((($19)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = Math_imul($28, $4)|0; + $44 = Math_imul($43, $42)|0; + $45 = (($44) + 7)|0; + $46 = $45 >> 3; + $47 = (($46) + 1)|0; + $48 = Math_imul($47, $38)|0; + $49 = (_stbi__create_png_image_raw($0,$$095119,$$099118,$3,$28,$38,$4,$5)|0); + $50 = ($49|0)==(0); + if ($50) { + label = 13; + break; + } + $51 = ($38|0)>(0); + if ($51) { + $52 = ($28|0)>(0); + $$0106116 = 0; + while(1) { + if ($52) { + $53 = HEAP32[$33>>2]|0; + $54 = Math_imul($53, $$0106116)|0; + $55 = HEAP32[$31>>2]|0; + $56 = (($54) + ($55))|0; + $57 = HEAP32[$23>>2]|0; + $58 = HEAP32[$21>>2]|0; + $59 = Math_imul($56, $9)|0; + $60 = Math_imul($$0106116, $28)|0; + $$0107115 = 0; + while(1) { + $61 = Math_imul($57, $$0107115)|0; + $62 = (($61) + ($58))|0; + $63 = HEAP32[$0>>2]|0; + $64 = HEAP32[$63>>2]|0; + $65 = Math_imul($59, $64)|0; + $66 = (($16) + ($65)|0); + $67 = Math_imul($62, $9)|0; + $68 = (($66) + ($67)|0); + $69 = HEAP32[$18>>2]|0; + $70 = (($$0107115) + ($60))|0; + $71 = Math_imul($70, $9)|0; + $72 = (($69) + ($71)|0); + _memcpy(($68|0),($72|0),($9|0))|0; + $73 = (($$0107115) + 1)|0; + $74 = ($73|0)<($28|0); + if ($74) { + $$0107115 = $73; + } else { + break; + } + } + } + $75 = (($$0106116) + 1)|0; + $76 = ($75|0)<($38|0); + if ($76) { + $$0106116 = $75; + } else { + break; + } + } + } + $77 = HEAP32[$17>>2]|0; + _free($77); + $78 = (($$095119) + ($48)|0); + $79 = (($$099118) - ($48))|0; + $$3102$ph = $79;$$398$ph = $78; + } else { + $$3102$ph = $$099118;$$398$ph = $$095119; + } + $80 = (($$0103117) + 1)|0; + $81 = ($80|0)<(7); + if ($81) { + $$0103117 = $80;$$095119 = $$398$ph;$$099118 = $$3102$ph; + } else { + label = 15; + break; + } + } + if ((label|0) == 13) { + _free($16); + $$4 = 0; + return ($$4|0); + } + else if ((label|0) == 15) { + $82 = ((($0)) + 12|0); + HEAP32[$82>>2] = $16; + $$4 = 1; + return ($$4|0); + } + return (0)|0; +} +function _stbi__compute_transparency16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP16[$$04>>1]|0; + $15 = HEAP16[$1>>1]|0; + $not$ = ($14<<16>>16)!=($15<<16>>16); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 2|0); + HEAP16[$17>>1] = $16; + $18 = ((($$04)) + 4|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 2|0); + $12 = ((($1)) + 4|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP16[$$16>>1]|0; + $21 = HEAP16[$1>>1]|0; + $22 = ($20<<16>>16)==($21<<16>>16); + if ($22) { + $23 = ((($$16)) + 2|0); + $24 = HEAP16[$23>>1]|0; + $25 = HEAP16[$11>>1]|0; + $26 = ($24<<16>>16)==($25<<16>>16); + if ($26) { + $27 = ((($$16)) + 4|0); + $28 = HEAP16[$27>>1]|0; + $29 = HEAP16[$12>>1]|0; + $30 = ($28<<16>>16)==($29<<16>>16); + if ($30) { + $31 = ((($$16)) + 6|0); + HEAP16[$31>>1] = 0; + } + } + } + $32 = ((($$16)) + 8|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((9947|0),(9454|0),4569,(9999|0)); + // unreachable; + } + } +} +function _stbi__compute_transparency($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP8[$$04>>0]|0; + $15 = HEAP8[$1>>0]|0; + $not$ = ($14<<24>>24)!=($15<<24>>24); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 1|0); + HEAP8[$17>>0] = $16; + $18 = ((($$04)) + 2|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 1|0); + $12 = ((($1)) + 2|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP8[$$16>>0]|0; + $21 = HEAP8[$1>>0]|0; + $22 = ($20<<24>>24)==($21<<24>>24); + if ($22) { + $23 = ((($$16)) + 1|0); + $24 = HEAP8[$23>>0]|0; + $25 = HEAP8[$11>>0]|0; + $26 = ($24<<24>>24)==($25<<24>>24); + if ($26) { + $27 = ((($$16)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = HEAP8[$12>>0]|0; + $30 = ($28<<24>>24)==($29<<24>>24); + if ($30) { + $31 = ((($$16)) + 3|0); + HEAP8[$31>>0] = 0; + } + } + } + $32 = ((($$16)) + 4|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((9947|0),(9454|0),4544,(9972|0)); + // unreachable; + } + } +} +function _stbi__de_iphone($0) { + $0 = $0|0; + var $$05158 = 0, $$059 = 0, $$15263 = 0, $$164 = 0, $$25360 = 0, $$261 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond68 = 0, $exitcond69 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = Math_imul($4, $2)|0; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($1)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($9|0) { + case 3: { + $10 = ($5|0)==(0); + if ($10) { + return; + } else { + $$05158 = $7;$$059 = 0; + } + while(1) { + $11 = HEAP8[$$05158>>0]|0; + $12 = ((($$05158)) + 2|0); + $13 = HEAP8[$12>>0]|0; + HEAP8[$$05158>>0] = $13; + HEAP8[$12>>0] = $11; + $14 = ((($$05158)) + 3|0); + $15 = (($$059) + 1)|0; + $exitcond = ($15|0)==($5|0); + if ($exitcond) { + break; + } else { + $$05158 = $14;$$059 = $15; + } + } + return; + break; + } + case 4: { + $16 = HEAP32[4969]|0; + $17 = ($16|0)==(0); + $18 = ($5|0)!=(0); + if ($17) { + if ($18) { + $$25360 = $7;$$261 = 0; + } else { + return; + } + while(1) { + $42 = HEAP8[$$25360>>0]|0; + $43 = ((($$25360)) + 2|0); + $44 = HEAP8[$43>>0]|0; + HEAP8[$$25360>>0] = $44; + HEAP8[$43>>0] = $42; + $45 = ((($$25360)) + 4|0); + $46 = (($$261) + 1)|0; + $exitcond68 = ($46|0)==($5|0); + if ($exitcond68) { + break; + } else { + $$25360 = $45;$$261 = $46; + } + } + return; + } + if ($18) { + $$15263 = $7;$$164 = 0; + } else { + return; + } + while(1) { + $19 = ((($$15263)) + 3|0); + $20 = HEAP8[$19>>0]|0; + $21 = HEAP8[$$15263>>0]|0; + $22 = ($20<<24>>24)==(0); + $23 = ((($$15263)) + 2|0); + $24 = HEAP8[$23>>0]|0; + if ($22) { + HEAP8[$$15263>>0] = $24; + $$sink = $21; + } else { + $25 = $24&255; + $26 = ($25*255)|0; + $27 = $20&255; + $28 = (($26>>>0) / ($27>>>0))&-1; + $29 = $28&255; + HEAP8[$$15263>>0] = $29; + $30 = ((($$15263)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = ($32*255)|0; + $34 = (($33>>>0) / ($27>>>0))&-1; + $35 = $34&255; + HEAP8[$30>>0] = $35; + $36 = $21&255; + $37 = ($36*255)|0; + $38 = (($37>>>0) / ($27>>>0))&-1; + $39 = $38&255; + $$sink = $39; + } + HEAP8[$23>>0] = $$sink; + $40 = ((($$15263)) + 4|0); + $41 = (($$164) + 1)|0; + $exitcond69 = ($41|0)==($5|0); + if ($exitcond69) { + break; + } else { + $$15263 = $40;$$164 = $41; + } + } + return; + break; + } + default: { + ___assert_fail((9913|0),(9454|0),4650,(9931|0)); + // unreachable; + } + } +} +function _stbi__expand_png_palette($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0574 = 0, $$0583 = 0, $$1595 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_stbi__malloc_mad2($7,$2)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _stbi__err(9509); + $$0 = 0; + return ($$0|0); + } + $12 = ($2|0)==(3); + $13 = ($7|0)!=(0); + if ($12) { + if ($13) { + $$0574 = 0;$$0583 = $10; + while(1) { + $14 = (($9) + ($$0574)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = $16 << 2; + $18 = (($1) + ($17)|0); + $19 = HEAP8[$18>>0]|0; + HEAP8[$$0583>>0] = $19; + $20 = $17 | 1; + $21 = (($1) + ($20)|0); + $22 = HEAP8[$21>>0]|0; + $23 = ((($$0583)) + 1|0); + HEAP8[$23>>0] = $22; + $24 = $17 | 2; + $25 = (($1) + ($24)|0); + $26 = HEAP8[$25>>0]|0; + $27 = ((($$0583)) + 2|0); + HEAP8[$27>>0] = $26; + $28 = ((($$0583)) + 3|0); + $29 = (($$0574) + 1)|0; + $exitcond = ($29|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0574 = $29;$$0583 = $28; + } + } + } + } else { + if ($13) { + $$1595 = $10;$$16 = 0; + while(1) { + $30 = (($9) + ($$16)|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 << 2; + $34 = (($1) + ($33)|0); + $35 = HEAP8[$34>>0]|0; + HEAP8[$$1595>>0] = $35; + $36 = $33 | 1; + $37 = (($1) + ($36)|0); + $38 = HEAP8[$37>>0]|0; + $39 = ((($$1595)) + 1|0); + HEAP8[$39>>0] = $38; + $40 = $33 | 2; + $41 = (($1) + ($40)|0); + $42 = HEAP8[$41>>0]|0; + $43 = ((($$1595)) + 2|0); + HEAP8[$43>>0] = $42; + $44 = $33 | 3; + $45 = (($1) + ($44)|0); + $46 = HEAP8[$45>>0]|0; + $47 = ((($$1595)) + 3|0); + HEAP8[$47>>0] = $46; + $48 = ((($$1595)) + 4|0); + $49 = (($$16) + 1)|0; + $exitcond9 = ($49|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1595 = $48;$$16 = $49; + } + } + } + } + $50 = HEAP32[$8>>2]|0; + _free($50); + HEAP32[$8>>2] = $10; + $$0 = 1; + return ($$0|0); +} +function _stbi__malloc_mad2($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mad2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $$0 = 0; + return ($$0|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__malloc($4)|0); + $$0 = $5; + return ($$0|0); +} +function _stbi__mad2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mul2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $8 = 0; + $7 = $8&1; + return ($7|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__addsizes_valid($4)|0); + $6 = ($5|0)!=(0); + $8 = $6; + $7 = $8&1; + return ($7|0); +} +function _stbi__create_png_image_raw($0,$1,$2,$3,$4,$5,$6,$7) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + $7 = $7|0; + var $$0568 = 0, $$0568724 = 0, $$0568725 = 0, $$0571$lcssa = 0, $$0571715 = 0, $$0574$lcssa = 0, $$0574714 = 0, $$0577817 = 0, $$0588 = 0, $$0597 = 0, $$0608816 = 0, $$0611815 = 0, $$0614 = 0, $$0614793 = 0, $$0614796 = 0, $$0623814 = 0, $$0625734 = 0, $$0731 = 0, $$1 = 0, $$10635764 = 0; + var $$11$ph = 0, $$11636755 = 0, $$12747 = 0, $$13739 = 0, $$14$lcssa = 0, $$14713 = 0, $$15$lcssa = 0, $$15705 = 0, $$1572$lcssa = 0, $$1572707 = 0, $$1575$lcssa = 0, $$1575706 = 0, $$1578 = 0, $$16$lcssa = 0, $$1609 = 0, $$1612 = 0, $$1615 = 0, $$1615785 = 0, $$1615788 = 0, $$1624727 = 0; + var $$1626812 = 0, $$16700 = 0, $$1721 = 0, $$1722 = 0, $$2 = 0, $$2573$lcssa = 0, $$2573702 = 0, $$2579795 = 0, $$2599794 = 0, $$2616 = 0, $$2616776 = 0, $$2616780 = 0, $$2627810 = 0, $$3580787 = 0, $$3592778 = 0, $$3600786 = 0, $$3617 = 0, $$3617767 = 0, $$3617771 = 0, $$3628808 = 0; + var $$4$lcssa = 0, $$4581779 = 0, $$4593769 = 0, $$4601777 = 0, $$4618 = 0, $$4618758 = 0, $$4618762 = 0, $$4629806 = 0, $$4701 = 0, $$5582770 = 0, $$5594760 = 0, $$5602768 = 0, $$5619 = 0, $$5619750 = 0, $$5619753 = 0, $$5630804 = 0, $$6583761 = 0, $$6603759 = 0, $$6620 = 0, $$6620742 = 0; + var $$6620745 = 0, $$6631802 = 0, $$7584752 = 0, $$7604751 = 0, $$7621798 = 0, $$7632790 = 0, $$8585744 = 0, $$8605743 = 0, $$8622729 = 0, $$8633782 = 0, $$9586 = 0, $$9606799 = 0, $$9634773 = 0, $$not = 0, $$sink = 0, $$sink1 = 0, $$sink641 = 0, $10 = 0, $100 = 0, $101 = 0; + var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; + var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; + var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; + var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; + var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; + var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; + var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; + var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; + var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; + var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; + var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0; + var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0; + var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0; + var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0; + var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0; + var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0; + var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0; + var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0; + var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0; + var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0; + var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0; + var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0; + var $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0; + var $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0; + var $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0; + var $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0; + var $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0; + var $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0; + var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; + var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; + var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge894 = 0, $exitcond = 0, $exitcond864 = 0, $exitcond865 = 0, $exitcond867 = 0, $exitcond869 = 0, $exitcond871 = 0, $exitcond873 = 0, $exitcond875 = 0, $exitcond877 = 0, $exitcond880 = 0, $exitcond881 = 0, $exitcond882 = 0, $exitcond883 = 0, $exitcond884 = 0; + var $exitcond885 = 0, $exitcond886 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next849 = 0, $indvars$iv$next852 = 0, $indvars$iv$next855 = 0, $indvars$iv$next858 = 0, $indvars$iv$next861 = 0, $indvars$iv848 = 0, $indvars$iv851 = 0, $indvars$iv854 = 0, $indvars$iv857 = 0, $indvars$iv860 = 0, $or$cond = 0, $scevgep = 0, $scevgep850 = 0, $scevgep853 = 0, $scevgep856 = 0, $scevgep859 = 0; + var $scevgep862 = 0, $scevgep866 = 0, $scevgep868 = 0, $scevgep870 = 0, $scevgep872 = 0, $scevgep874 = 0, $scevgep876 = 0, $scevgep879 = 0, $trunc = 0, $trunc637 = 0, $trunc638 = 0, label = 0, sp = 0; + sp = STACKTOP; + $8 = ($6|0)==(16); + $9 = $8 ? 2 : 1; + $10 = HEAP32[$0>>2]|0; + $11 = Math_imul($4, $3)|0; + $12 = Math_imul($9, $11)|0; + $13 = ((($10)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = Math_imul($9, $3)|0; + $16 = Math_imul($14, $9)|0; + $17 = ($14|0)==($3|0); + $18 = (($14) + 1)|0; + $19 = ($18|0)==($3|0); + $or$cond = $17 | $19; + if (!($or$cond)) { + ___assert_fail((10028|0),(9454|0),4294,(10069|0)); + // unreachable; + } + $20 = (_stbi__malloc_mad3($4,$5,$15)|0); + $21 = ((($0)) + 12|0); + HEAP32[$21>>2] = $20; + $22 = ($20|0)==(0|0); + if ($22) { + _stbi__err(9509); + $$2 = 0; + return ($$2|0); + } + $23 = Math_imul($14, $4)|0; + $24 = Math_imul($23, $6)|0; + $25 = (($24) + 7)|0; + $26 = $25 >>> 3; + $27 = (($26) + 1)|0; + $28 = Math_imul($27, $5)|0; + $29 = HEAP32[$10>>2]|0; + $30 = ($29|0)==($4|0); + if ($30) { + $31 = ((($10)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($5|0); + if ($33) { + $34 = ($28|0)==($2|0); + if (!($34)) { + _stbi__err(10096); + $$2 = 0; + return ($$2|0); + } + } else { + label = 9; + } + } else { + label = 9; + } + if ((label|0) == 9) { + $35 = ($28>>>0)>($2>>>0); + if ($35) { + _stbi__err(10096); + $$2 = 0; + return ($$2|0); + } + } + $36 = ($5|0)==(0); + L18: do { + if (!($36)) { + $37 = ($6|0)<(8); + $38 = ($26>>>0)>($4>>>0); + $39 = (($11) - ($26))|0; + $40 = (0 - ($12))|0; + $41 = ($6|0)==(8); + $brmerge = $37 | $17; + $42 = ($4|0)==(0); + $$0614793 = (($4) + -1)|0; + $43 = ($$0614793|0)==(0); + $$1615785 = (($4) + -1)|0; + $44 = ($$1615785|0)==(0); + $$2616776 = (($4) + -1)|0; + $45 = ($$2616776|0)==(0); + $$3617767 = (($4) + -1)|0; + $46 = ($$3617767|0)==(0); + $$4618758 = (($4) + -1)|0; + $47 = ($$4618758|0)==(0); + $$5619750 = (($4) + -1)|0; + $48 = ($$5619750|0)==(0); + $$6620742 = (($4) + -1)|0; + $49 = ($$6620742|0)==(0); + $$not = $8 ^ 1; + $brmerge894 = $42 | $$not; + $$0577817 = $1;$$0608816 = $4;$$0611815 = $16;$$0623814 = 0; + while(1) { + $50 = HEAP32[$21>>2]|0; + $51 = Math_imul($$0623814, $12)|0; + $52 = (($50) + ($51)|0); + $53 = ((($$0577817)) + 1|0); + $54 = HEAP8[$$0577817>>0]|0; + $55 = $54&255; + $56 = ($54&255)>(4); + if ($56) { + label = 105; + break; + } + if ($37) { + if ($38) { + label = 16; + break; + } + $57 = (($52) + ($39)|0); + $$0597 = $57;$$1609 = $26;$$1612 = 1; + } else { + $$0597 = $52;$$1609 = $$0608816;$$1612 = $$0611815; + } + $58 = (($$0597) + ($40)|0); + $59 = ($$0623814|0)==(0); + if ($59) { + $60 = (10135 + ($55)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $$0588 = $62; + } else { + $$0588 = $55; + } + $63 = ($$1612|0)>(0); + L30: do { + if ($63) { + $trunc638 = $$0588&255; + $$0625734 = 0; + while(1) { + switch ($trunc638<<24>>24) { + case 0: { + $64 = (($53) + ($$0625734)|0); + $65 = HEAP8[$64>>0]|0; + $$sink = $65; + label = 30; + break; + } + case 1: { + $66 = (($53) + ($$0625734)|0); + $67 = HEAP8[$66>>0]|0; + $$sink = $67; + label = 30; + break; + } + case 2: { + $68 = (($53) + ($$0625734)|0); + $69 = HEAP8[$68>>0]|0; + $70 = $69&255; + $71 = (($58) + ($$0625734)|0); + $72 = HEAP8[$71>>0]|0; + $73 = $72&255; + $74 = (($73) + ($70))|0; + $75 = $74&255; + $$sink = $75; + label = 30; + break; + } + case 3: { + $76 = (($53) + ($$0625734)|0); + $77 = HEAP8[$76>>0]|0; + $78 = $77&255; + $79 = (($58) + ($$0625734)|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = $81 >>> 1; + $83 = (($82) + ($78))|0; + $84 = $83&255; + $$sink = $84; + label = 30; + break; + } + case 4: { + $85 = (($53) + ($$0625734)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $86&255; + $88 = (($58) + ($$0625734)|0); + $89 = HEAP8[$88>>0]|0; + $90 = $89&255; + $91 = (_stbi__paeth(0,$90,0)|0); + $92 = (($91) + ($87))|0; + $93 = $92&255; + $$sink = $93; + label = 30; + break; + } + case 5: { + $94 = (($53) + ($$0625734)|0); + $95 = HEAP8[$94>>0]|0; + $$sink = $95; + label = 30; + break; + } + case 6: { + $96 = (($53) + ($$0625734)|0); + $97 = HEAP8[$96>>0]|0; + $$sink = $97; + label = 30; + break; + } + default: { + } + } + if ((label|0) == 30) { + label = 0; + $$sink1 = (($$0597) + ($$0625734)|0); + HEAP8[$$sink1>>0] = $$sink; + } + $98 = (($$0625734) + 1)|0; + $exitcond864 = ($98|0)==($$1612|0); + if ($exitcond864) { + break L30; + } else { + $$0625734 = $98; + } + } + } + } while(0); + do { + if ($41) { + if (!($17)) { + $99 = (($$0597) + ($14)|0); + HEAP8[$99>>0] = -1; + } + $100 = (($53) + ($14)|0); + $$1578 = $100;$$sink641 = $3; + } else { + if (!($8)) { + $105 = ((($$0577817)) + 2|0); + $$1578 = $105;$$sink641 = 1; + break; + } + if (!($17)) { + $101 = (($$1612) + 1)|0; + $102 = (($$0597) + ($101)|0); + $103 = (($$0597) + ($$1612)|0); + HEAP8[$103>>0] = -1; + HEAP8[$102>>0] = -1; + } + $104 = (($53) + ($$1612)|0); + $$1578 = $104;$$sink641 = $15; + } + } while(0); + $106 = (($$0597) + ($$sink641)|0); + $107 = (($58) + ($$sink641)|0); + if ($brmerge) { + $108 = (($$1609) + -1)|0; + $109 = Math_imul($108, $$1612)|0; + $trunc637 = $$0588&255; + switch ($trunc637<<24>>24) { + case 0: { + _memcpy(($106|0),($$1578|0),($109|0))|0; + break; + } + case 1: { + $115 = ($109|0)>(0); + if ($115) { + $$1626812 = 0; + while(1) { + $116 = (($$1578) + ($$1626812)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = (($$1626812) - ($$1612))|0; + $120 = (($106) + ($119)|0); + $121 = HEAP8[$120>>0]|0; + $122 = $121&255; + $123 = (($122) + ($118))|0; + $124 = $123&255; + $125 = (($106) + ($$1626812)|0); + HEAP8[$125>>0] = $124; + $126 = (($$1626812) + 1)|0; + $exitcond886 = ($126|0)==($109|0); + if ($exitcond886) { + break; + } else { + $$1626812 = $126; + } + } + } + break; + } + case 2: { + $114 = ($109|0)>(0); + if ($114) { + $$2627810 = 0; + while(1) { + $127 = (($$1578) + ($$2627810)|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = (($107) + ($$2627810)|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = (($132) + ($129))|0; + $134 = $133&255; + $135 = (($106) + ($$2627810)|0); + HEAP8[$135>>0] = $134; + $136 = (($$2627810) + 1)|0; + $exitcond885 = ($136|0)==($109|0); + if ($exitcond885) { + break; + } else { + $$2627810 = $136; + } + } + } + break; + } + case 3: { + $113 = ($109|0)>(0); + if ($113) { + $$3628808 = 0; + while(1) { + $137 = (($$1578) + ($$3628808)|0); + $138 = HEAP8[$137>>0]|0; + $139 = $138&255; + $140 = (($107) + ($$3628808)|0); + $141 = HEAP8[$140>>0]|0; + $142 = $141&255; + $143 = (($$3628808) - ($$1612))|0; + $144 = (($106) + ($143)|0); + $145 = HEAP8[$144>>0]|0; + $146 = $145&255; + $147 = (($146) + ($142))|0; + $148 = $147 >>> 1; + $149 = (($148) + ($139))|0; + $150 = $149&255; + $151 = (($106) + ($$3628808)|0); + HEAP8[$151>>0] = $150; + $152 = (($$3628808) + 1)|0; + $exitcond884 = ($152|0)==($109|0); + if ($exitcond884) { + break; + } else { + $$3628808 = $152; + } + } + } + break; + } + case 4: { + $112 = ($109|0)>(0); + if ($112) { + $$4629806 = 0; + while(1) { + $153 = (($$1578) + ($$4629806)|0); + $154 = HEAP8[$153>>0]|0; + $155 = $154&255; + $156 = (($$4629806) - ($$1612))|0; + $157 = (($106) + ($156)|0); + $158 = HEAP8[$157>>0]|0; + $159 = $158&255; + $160 = (($107) + ($$4629806)|0); + $161 = HEAP8[$160>>0]|0; + $162 = $161&255; + $163 = (($107) + ($156)|0); + $164 = HEAP8[$163>>0]|0; + $165 = $164&255; + $166 = (_stbi__paeth($159,$162,$165)|0); + $167 = (($166) + ($155))|0; + $168 = $167&255; + $169 = (($106) + ($$4629806)|0); + HEAP8[$169>>0] = $168; + $170 = (($$4629806) + 1)|0; + $exitcond883 = ($170|0)==($109|0); + if ($exitcond883) { + break; + } else { + $$4629806 = $170; + } + } + } + break; + } + case 5: { + $111 = ($109|0)>(0); + if ($111) { + $$5630804 = 0; + while(1) { + $171 = (($$1578) + ($$5630804)|0); + $172 = HEAP8[$171>>0]|0; + $173 = $172&255; + $174 = (($$5630804) - ($$1612))|0; + $175 = (($106) + ($174)|0); + $176 = HEAP8[$175>>0]|0; + $177 = $176&255; + $178 = $177 >>> 1; + $179 = (($178) + ($173))|0; + $180 = $179&255; + $181 = (($106) + ($$5630804)|0); + HEAP8[$181>>0] = $180; + $182 = (($$5630804) + 1)|0; + $exitcond882 = ($182|0)==($109|0); + if ($exitcond882) { + break; + } else { + $$5630804 = $182; + } + } + } + break; + } + case 6: { + $110 = ($109|0)>(0); + if ($110) { + $$6631802 = 0; + while(1) { + $183 = (($$1578) + ($$6631802)|0); + $184 = HEAP8[$183>>0]|0; + $185 = $184&255; + $186 = (($$6631802) - ($$1612))|0; + $187 = (($106) + ($186)|0); + $188 = HEAP8[$187>>0]|0; + $189 = $188&255; + $190 = (_stbi__paeth($189,0,0)|0); + $191 = (($190) + ($185))|0; + $192 = $191&255; + $193 = (($106) + ($$6631802)|0); + HEAP8[$193>>0] = $192; + $194 = (($$6631802) + 1)|0; + $exitcond881 = ($194|0)==($109|0); + if ($exitcond881) { + break; + } else { + $$6631802 = $194; + } + } + } + break; + } + default: { + } + } + $195 = (($$1578) + ($109)|0); + $$11$ph = $195; + } else { + if (!($19)) { + label = 58; + break; + } + $trunc = $$0588&255; + switch ($trunc<<24>>24) { + case 0: { + if ($43) { + $$9586 = $$1578; + } else { + $208 = ($$1612|0)>(0); + $209 = Math_imul($$6620742, $$1612)|0; + $$0614796 = $$0614793;$$2579795 = $$1578;$$2599794 = $106; + while(1) { + if ($208) { + $$7632790 = 0; + while(1) { + $210 = (($$2579795) + ($$7632790)|0); + $211 = HEAP8[$210>>0]|0; + $212 = (($$2599794) + ($$7632790)|0); + HEAP8[$212>>0] = $211; + $213 = (($$7632790) + 1)|0; + $exitcond877 = ($213|0)==($$1612|0); + if ($exitcond877) { + break; + } else { + $$7632790 = $213; + } + } + } + $214 = (($$2599794) + ($$1612)|0); + HEAP8[$214>>0] = -1; + $215 = (($$2579795) + ($$1612)|0); + $216 = (($$2599794) + ($15)|0); + $$0614 = (($$0614796) + -1)|0; + $217 = ($$0614|0)==(0); + if ($217) { + break; + } else { + $$0614796 = $$0614;$$2579795 = $215;$$2599794 = $216; + } + } + $scevgep879 = (($$1578) + ($209)|0); + $$9586 = $scevgep879; + } + break; + } + case 1: { + if ($44) { + $$9586 = $$1578; + } else { + $206 = ($$1612|0)>(0); + $207 = Math_imul($$6620742, $$1612)|0; + $$1615788 = $$1615785;$$3580787 = $$1578;$$3600786 = $106; + while(1) { + if ($206) { + $$8633782 = 0; + while(1) { + $218 = (($$3580787) + ($$8633782)|0); + $219 = HEAP8[$218>>0]|0; + $220 = $219&255; + $221 = (($$8633782) - ($15))|0; + $222 = (($$3600786) + ($221)|0); + $223 = HEAP8[$222>>0]|0; + $224 = $223&255; + $225 = (($224) + ($220))|0; + $226 = $225&255; + $227 = (($$3600786) + ($$8633782)|0); + HEAP8[$227>>0] = $226; + $228 = (($$8633782) + 1)|0; + $exitcond875 = ($228|0)==($$1612|0); + if ($exitcond875) { + break; + } else { + $$8633782 = $228; + } + } + } + $229 = (($$3600786) + ($$1612)|0); + HEAP8[$229>>0] = -1; + $230 = (($$3580787) + ($$1612)|0); + $231 = (($$3600786) + ($15)|0); + $$1615 = (($$1615788) + -1)|0; + $232 = ($$1615|0)==(0); + if ($232) { + break; + } else { + $$1615788 = $$1615;$$3580787 = $230;$$3600786 = $231; + } + } + $scevgep876 = (($$1578) + ($207)|0); + $$9586 = $scevgep876; + } + break; + } + case 2: { + if ($45) { + $$9586 = $$1578; + } else { + $204 = ($$1612|0)>(0); + $205 = Math_imul($$6620742, $$1612)|0; + $$2616780 = $$2616776;$$3592778 = $107;$$4581779 = $$1578;$$4601777 = $106; + while(1) { + if ($204) { + $$9634773 = 0; + while(1) { + $233 = (($$4581779) + ($$9634773)|0); + $234 = HEAP8[$233>>0]|0; + $235 = $234&255; + $236 = (($$3592778) + ($$9634773)|0); + $237 = HEAP8[$236>>0]|0; + $238 = $237&255; + $239 = (($238) + ($235))|0; + $240 = $239&255; + $241 = (($$4601777) + ($$9634773)|0); + HEAP8[$241>>0] = $240; + $242 = (($$9634773) + 1)|0; + $exitcond873 = ($242|0)==($$1612|0); + if ($exitcond873) { + break; + } else { + $$9634773 = $242; + } + } + } + $243 = (($$4601777) + ($$1612)|0); + HEAP8[$243>>0] = -1; + $244 = (($$4581779) + ($$1612)|0); + $245 = (($$4601777) + ($15)|0); + $246 = (($$3592778) + ($15)|0); + $$2616 = (($$2616780) + -1)|0; + $247 = ($$2616|0)==(0); + if ($247) { + break; + } else { + $$2616780 = $$2616;$$3592778 = $246;$$4581779 = $244;$$4601777 = $245; + } + } + $scevgep874 = (($$1578) + ($205)|0); + $$9586 = $scevgep874; + } + break; + } + case 3: { + if ($46) { + $$9586 = $$1578; + } else { + $202 = ($$1612|0)>(0); + $203 = Math_imul($$6620742, $$1612)|0; + $$3617771 = $$3617767;$$4593769 = $107;$$5582770 = $$1578;$$5602768 = $106; + while(1) { + if ($202) { + $$10635764 = 0; + while(1) { + $248 = (($$5582770) + ($$10635764)|0); + $249 = HEAP8[$248>>0]|0; + $250 = $249&255; + $251 = (($$4593769) + ($$10635764)|0); + $252 = HEAP8[$251>>0]|0; + $253 = $252&255; + $254 = (($$10635764) - ($15))|0; + $255 = (($$5602768) + ($254)|0); + $256 = HEAP8[$255>>0]|0; + $257 = $256&255; + $258 = (($257) + ($253))|0; + $259 = $258 >>> 1; + $260 = (($259) + ($250))|0; + $261 = $260&255; + $262 = (($$5602768) + ($$10635764)|0); + HEAP8[$262>>0] = $261; + $263 = (($$10635764) + 1)|0; + $exitcond871 = ($263|0)==($$1612|0); + if ($exitcond871) { + break; + } else { + $$10635764 = $263; + } + } + } + $264 = (($$5602768) + ($$1612)|0); + HEAP8[$264>>0] = -1; + $265 = (($$5582770) + ($$1612)|0); + $266 = (($$5602768) + ($15)|0); + $267 = (($$4593769) + ($15)|0); + $$3617 = (($$3617771) + -1)|0; + $268 = ($$3617|0)==(0); + if ($268) { + break; + } else { + $$3617771 = $$3617;$$4593769 = $267;$$5582770 = $265;$$5602768 = $266; + } + } + $scevgep872 = (($$1578) + ($203)|0); + $$9586 = $scevgep872; + } + break; + } + case 4: { + if ($47) { + $$9586 = $$1578; + } else { + $200 = ($$1612|0)>(0); + $201 = Math_imul($$6620742, $$1612)|0; + $$4618762 = $$4618758;$$5594760 = $107;$$6583761 = $$1578;$$6603759 = $106; + while(1) { + if ($200) { + $$11636755 = 0; + while(1) { + $269 = (($$6583761) + ($$11636755)|0); + $270 = HEAP8[$269>>0]|0; + $271 = $270&255; + $272 = (($$11636755) - ($15))|0; + $273 = (($$6603759) + ($272)|0); + $274 = HEAP8[$273>>0]|0; + $275 = $274&255; + $276 = (($$5594760) + ($$11636755)|0); + $277 = HEAP8[$276>>0]|0; + $278 = $277&255; + $279 = (($$5594760) + ($272)|0); + $280 = HEAP8[$279>>0]|0; + $281 = $280&255; + $282 = (_stbi__paeth($275,$278,$281)|0); + $283 = (($282) + ($271))|0; + $284 = $283&255; + $285 = (($$6603759) + ($$11636755)|0); + HEAP8[$285>>0] = $284; + $286 = (($$11636755) + 1)|0; + $exitcond869 = ($286|0)==($$1612|0); + if ($exitcond869) { + break; + } else { + $$11636755 = $286; + } + } + } + $287 = (($$6603759) + ($$1612)|0); + HEAP8[$287>>0] = -1; + $288 = (($$6583761) + ($$1612)|0); + $289 = (($$6603759) + ($15)|0); + $290 = (($$5594760) + ($15)|0); + $$4618 = (($$4618762) + -1)|0; + $291 = ($$4618|0)==(0); + if ($291) { + break; + } else { + $$4618762 = $$4618;$$5594760 = $290;$$6583761 = $288;$$6603759 = $289; + } + } + $scevgep870 = (($$1578) + ($201)|0); + $$9586 = $scevgep870; + } + break; + } + case 5: { + if ($48) { + $$9586 = $$1578; + } else { + $198 = ($$1612|0)>(0); + $199 = Math_imul($$6620742, $$1612)|0; + $$5619753 = $$5619750;$$7584752 = $$1578;$$7604751 = $106; + while(1) { + if ($198) { + $$12747 = 0; + while(1) { + $292 = (($$7584752) + ($$12747)|0); + $293 = HEAP8[$292>>0]|0; + $294 = $293&255; + $295 = (($$12747) - ($15))|0; + $296 = (($$7604751) + ($295)|0); + $297 = HEAP8[$296>>0]|0; + $298 = $297&255; + $299 = $298 >>> 1; + $300 = (($299) + ($294))|0; + $301 = $300&255; + $302 = (($$7604751) + ($$12747)|0); + HEAP8[$302>>0] = $301; + $303 = (($$12747) + 1)|0; + $exitcond867 = ($303|0)==($$1612|0); + if ($exitcond867) { + break; + } else { + $$12747 = $303; + } + } + } + $304 = (($$7604751) + ($$1612)|0); + HEAP8[$304>>0] = -1; + $305 = (($$7584752) + ($$1612)|0); + $306 = (($$7604751) + ($15)|0); + $$5619 = (($$5619753) + -1)|0; + $307 = ($$5619|0)==(0); + if ($307) { + break; + } else { + $$5619753 = $$5619;$$7584752 = $305;$$7604751 = $306; + } + } + $scevgep868 = (($$1578) + ($199)|0); + $$9586 = $scevgep868; + } + break; + } + case 6: { + if ($49) { + $$9586 = $$1578; + } else { + $196 = ($$1612|0)>(0); + $197 = Math_imul($$6620742, $$1612)|0; + $$6620745 = $$6620742;$$8585744 = $$1578;$$8605743 = $106; + while(1) { + if ($196) { + $$13739 = 0; + while(1) { + $308 = (($$8585744) + ($$13739)|0); + $309 = HEAP8[$308>>0]|0; + $310 = $309&255; + $311 = (($$13739) - ($15))|0; + $312 = (($$8605743) + ($311)|0); + $313 = HEAP8[$312>>0]|0; + $314 = $313&255; + $315 = (_stbi__paeth($314,0,0)|0); + $316 = (($315) + ($310))|0; + $317 = $316&255; + $318 = (($$8605743) + ($$13739)|0); + HEAP8[$318>>0] = $317; + $319 = (($$13739) + 1)|0; + $exitcond865 = ($319|0)==($$1612|0); + if ($exitcond865) { + break; + } else { + $$13739 = $319; + } + } + } + $320 = (($$8605743) + ($$1612)|0); + HEAP8[$320>>0] = -1; + $321 = (($$8585744) + ($$1612)|0); + $322 = (($$8605743) + ($15)|0); + $$6620 = (($$6620745) + -1)|0; + $323 = ($$6620|0)==(0); + if ($323) { + break; + } else { + $$6620745 = $$6620;$$8585744 = $321;$$8605743 = $322; + } + } + $scevgep866 = (($$1578) + ($197)|0); + $$9586 = $scevgep866; + } + break; + } + default: { + $$9586 = $$1578; + } + } + if ($brmerge894) { + $$11$ph = $$9586; + } else { + $324 = HEAP32[$21>>2]|0; + $325 = (($324) + ($51)|0); + $326 = (($$1612) + 1)|0; + $$7621798 = 0;$$9606799 = $325; + while(1) { + $327 = (($$9606799) + ($326)|0); + HEAP8[$327>>0] = -1; + $328 = (($$7621798) + 1)|0; + $329 = (($$9606799) + ($15)|0); + $exitcond880 = ($328|0)==($4|0); + if ($exitcond880) { + $$11$ph = $$9586; + break; + } else { + $$7621798 = $328;$$9606799 = $329; + } + } + } + } + $330 = (($$0623814) + 1)|0; + $331 = ($330>>>0)<($5>>>0); + if ($331) { + $$0577817 = $$11$ph;$$0608816 = $$1609;$$0611815 = $$1612;$$0623814 = $330; + } else { + break L18; + } + } + if ((label|0) == 16) { + ___assert_fail((10114|0),(9454|0),4315,(10069|0)); + // unreachable; + } + else if ((label|0) == 58) { + ___assert_fail((10140|0),(9454|0),4377,(10069|0)); + // unreachable; + } + else if ((label|0) == 105) { + _stbi__err(10157); + $$2 = 0; + return ($$2|0); + } + } + } while(0); + $332 = ($6|0)<(8); + if (!($332)) { + if (!($8)) { + $$2 = 1; + return ($$2|0); + } + $601 = Math_imul($4, $3)|0; + $602 = Math_imul($601, $5)|0; + $603 = ($602|0)==(0); + if ($603) { + $$2 = 1; + return ($$2|0); + } + $604 = HEAP32[$21>>2]|0; + $$0731 = $604;$$8622729 = 0; + while(1) { + $605 = HEAP8[$$0731>>0]|0; + $606 = $605&255; + $607 = $606 << 8; + $608 = ((($$0731)) + 1|0); + $609 = HEAP8[$608>>0]|0; + $610 = $609&255; + $611 = $607 | $610; + $612 = $611&65535; + HEAP16[$$0731>>1] = $612; + $613 = (($$8622729) + 1)|0; + $614 = ((($$0731)) + 2|0); + $exitcond = ($613|0)==($602|0); + if ($exitcond) { + $$2 = 1; + break; + } else { + $$0731 = $614;$$8622729 = $613; + } + } + return ($$2|0); + } + $333 = ($5|0)==(0); + if ($333) { + $$2 = 1; + return ($$2|0); + } + $334 = (0 - ($26))|0; + $335 = ($7|0)==(0); + $336 = (9853 + ($6)|0); + $$0568724 = (($4) + -1)|0; + $337 = ($$0568724|0)>(-1); + $$1721 = (($4) + -1)|0; + $338 = ($$1721|0)>(-1); + $339 = ($23|0)>(1); + $340 = ($23|0)>(3); + $341 = ($23|0)>(7); + $342 = (($23) + -8)|0; + $343 = $342 >>> 3; + $344 = $343 << 3; + $345 = (($344) + 8)|0; + $346 = (($342) - ($344))|0; + $347 = (($343) + ($11))|0; + $348 = (($347) + 1)|0; + $349 = (($348) - ($26))|0; + $350 = (($23) + -4)|0; + $351 = $350 >>> 2; + $352 = $351 << 2; + $353 = (($352) + 4)|0; + $354 = (($350) - ($352))|0; + $355 = (($351) + ($11))|0; + $356 = (($355) + 1)|0; + $357 = (($356) - ($26))|0; + $358 = (($23) + -2)|0; + $359 = $358 >>> 1; + $360 = $359 << 1; + $361 = (($360) + 2)|0; + $362 = (($358) - ($360))|0; + $363 = (($359) + ($11))|0; + $364 = (($363) + 1)|0; + $365 = (($364) - ($26))|0; + $$1624727 = 0;$indvars$iv = $345;$indvars$iv848 = $349;$indvars$iv851 = $353;$indvars$iv854 = $357;$indvars$iv857 = $361;$indvars$iv860 = $365; + L174: while(1) { + $366 = HEAP32[$21>>2]|0; + $367 = Math_imul($$1624727, $12)|0; + $368 = (($366) + ($367)|0); + $369 = (($368) + ($11)|0); + $370 = (($369) + ($334)|0); + if ($335) { + $371 = HEAP8[$336>>0]|0; + $372 = $371&255; + $377 = $372; + } else { + $377 = 1; + } + switch ($6|0) { + case 4: { + if ($339) { + $scevgep859 = (($366) + ($indvars$iv857)|0); + $$0571715 = $370;$$0574714 = $368;$$14713 = $23; + while(1) { + $373 = HEAP8[$$0571715>>0]|0; + $374 = $373&255; + $375 = $374 >>> 4; + $376 = Math_imul($375, $377)|0; + $378 = $376&255; + $379 = ((($$0574714)) + 1|0); + HEAP8[$$0574714>>0] = $378; + $380 = HEAP8[$$0571715>>0]|0; + $381 = $380 & 15; + $382 = $381&255; + $383 = Math_imul($382, $377)|0; + $384 = $383&255; + $385 = ((($$0574714)) + 2|0); + HEAP8[$379>>0] = $384; + $386 = (($$14713) + -2)|0; + $387 = ((($$0571715)) + 1|0); + $388 = ($386|0)>(1); + if ($388) { + $$0571715 = $387;$$0574714 = $385;$$14713 = $386; + } else { + break; + } + } + $scevgep862 = (($366) + ($indvars$iv860)|0); + $$0571$lcssa = $scevgep862;$$0574$lcssa = $scevgep859;$$14$lcssa = $362; + } else { + $$0571$lcssa = $370;$$0574$lcssa = $368;$$14$lcssa = $23; + } + $389 = ($$14$lcssa|0)==(1); + if ($389) { + $390 = HEAP8[$$0571$lcssa>>0]|0; + $391 = $390&255; + $392 = $391 >>> 4; + $393 = Math_imul($392, $377)|0; + $394 = $393&255; + HEAP8[$$0574$lcssa>>0] = $394; + } + break; + } + case 2: { + if ($340) { + $scevgep853 = (($366) + ($indvars$iv851)|0); + $$15705 = $23;$$1572707 = $370;$$1575706 = $368; + while(1) { + $395 = HEAP8[$$1572707>>0]|0; + $396 = $395&255; + $397 = $396 >>> 6; + $398 = Math_imul($397, $377)|0; + $399 = $398&255; + $400 = ((($$1575706)) + 1|0); + HEAP8[$$1575706>>0] = $399; + $401 = HEAP8[$$1572707>>0]|0; + $402 = $401&255; + $403 = $402 >>> 4; + $404 = $403 & 3; + $405 = Math_imul($404, $377)|0; + $406 = $405&255; + $407 = ((($$1575706)) + 2|0); + HEAP8[$400>>0] = $406; + $408 = HEAP8[$$1572707>>0]|0; + $409 = $408&255; + $410 = $409 >>> 2; + $411 = $410 & 3; + $412 = Math_imul($411, $377)|0; + $413 = $412&255; + $414 = ((($$1575706)) + 3|0); + HEAP8[$407>>0] = $413; + $415 = HEAP8[$$1572707>>0]|0; + $416 = $415 & 3; + $417 = $416&255; + $418 = Math_imul($417, $377)|0; + $419 = $418&255; + $420 = ((($$1575706)) + 4|0); + HEAP8[$414>>0] = $419; + $421 = (($$15705) + -4)|0; + $422 = ((($$1572707)) + 1|0); + $423 = ($421|0)>(3); + if ($423) { + $$15705 = $421;$$1572707 = $422;$$1575706 = $420; + } else { + break; + } + } + $scevgep856 = (($366) + ($indvars$iv854)|0); + $$15$lcssa = $354;$$1572$lcssa = $scevgep856;$$1575$lcssa = $scevgep853; + } else { + $$15$lcssa = $23;$$1572$lcssa = $370;$$1575$lcssa = $368; + } + $424 = ($$15$lcssa|0)>(0); + if ($424) { + $425 = HEAP8[$$1572$lcssa>>0]|0; + $426 = $425&255; + $427 = $426 >>> 6; + $428 = Math_imul($427, $377)|0; + $429 = $428&255; + HEAP8[$$1575$lcssa>>0] = $429; + $430 = ($$15$lcssa|0)==(1); + if (!($430)) { + $431 = ((($$1575$lcssa)) + 1|0); + $432 = HEAP8[$$1572$lcssa>>0]|0; + $433 = $432&255; + $434 = $433 >>> 4; + $435 = $434 & 3; + $436 = Math_imul($435, $377)|0; + $437 = $436&255; + HEAP8[$431>>0] = $437; + $438 = ($$15$lcssa|0)>(2); + if ($438) { + $439 = ((($$1575$lcssa)) + 2|0); + $440 = HEAP8[$$1572$lcssa>>0]|0; + $441 = $440&255; + $442 = $441 >>> 2; + $443 = $442 & 3; + $444 = Math_imul($443, $377)|0; + $445 = $444&255; + HEAP8[$439>>0] = $445; + } + } + } + break; + } + case 1: { + if ($341) { + $scevgep = (($366) + ($indvars$iv)|0); + $$16700 = $23;$$2573702 = $370;$$4701 = $368; + while(1) { + $446 = HEAP8[$$2573702>>0]|0; + $447 = $446&255; + $448 = $447 >>> 7; + $449 = (0 - ($448))|0; + $450 = $377 & $449; + $451 = $450&255; + $452 = ((($$4701)) + 1|0); + HEAP8[$$4701>>0] = $451; + $453 = HEAP8[$$2573702>>0]|0; + $454 = $453&255; + $455 = $454 >>> 6; + $456 = $455 & 1; + $457 = (0 - ($456))|0; + $458 = $377 & $457; + $459 = $458&255; + $460 = ((($$4701)) + 2|0); + HEAP8[$452>>0] = $459; + $461 = HEAP8[$$2573702>>0]|0; + $462 = $461&255; + $463 = $462 >>> 5; + $464 = $463 & 1; + $465 = (0 - ($464))|0; + $466 = $377 & $465; + $467 = $466&255; + $468 = ((($$4701)) + 3|0); + HEAP8[$460>>0] = $467; + $469 = HEAP8[$$2573702>>0]|0; + $470 = $469&255; + $471 = $470 >>> 4; + $472 = $471 & 1; + $473 = (0 - ($472))|0; + $474 = $377 & $473; + $475 = $474&255; + $476 = ((($$4701)) + 4|0); + HEAP8[$468>>0] = $475; + $477 = HEAP8[$$2573702>>0]|0; + $478 = $477&255; + $479 = $478 >>> 3; + $480 = $479 & 1; + $481 = (0 - ($480))|0; + $482 = $377 & $481; + $483 = $482&255; + $484 = ((($$4701)) + 5|0); + HEAP8[$476>>0] = $483; + $485 = HEAP8[$$2573702>>0]|0; + $486 = $485&255; + $487 = $486 >>> 2; + $488 = $487 & 1; + $489 = (0 - ($488))|0; + $490 = $377 & $489; + $491 = $490&255; + $492 = ((($$4701)) + 6|0); + HEAP8[$484>>0] = $491; + $493 = HEAP8[$$2573702>>0]|0; + $494 = $493&255; + $495 = $494 >>> 1; + $496 = $495 & 1; + $497 = (0 - ($496))|0; + $498 = $377 & $497; + $499 = $498&255; + $500 = ((($$4701)) + 7|0); + HEAP8[$492>>0] = $499; + $501 = HEAP8[$$2573702>>0]|0; + $502 = $501 & 1; + $503 = $502&255; + $504 = (0 - ($503))|0; + $505 = $377 & $504; + $506 = $505&255; + $507 = ((($$4701)) + 8|0); + HEAP8[$500>>0] = $506; + $508 = (($$16700) + -8)|0; + $509 = ((($$2573702)) + 1|0); + $510 = ($508|0)>(7); + if ($510) { + $$16700 = $508;$$2573702 = $509;$$4701 = $507; + } else { + break; + } + } + $scevgep850 = (($366) + ($indvars$iv848)|0); + $$16$lcssa = $346;$$2573$lcssa = $scevgep850;$$4$lcssa = $scevgep; + } else { + $$16$lcssa = $23;$$2573$lcssa = $370;$$4$lcssa = $368; + } + $511 = ($$16$lcssa|0)>(0); + if ($511) { + $512 = HEAP8[$$2573$lcssa>>0]|0; + $513 = $512&255; + $514 = $513 >>> 7; + $515 = (0 - ($514))|0; + $516 = $377 & $515; + $517 = $516&255; + HEAP8[$$4$lcssa>>0] = $517; + $518 = ($$16$lcssa|0)==(1); + if (!($518)) { + $519 = ((($$4$lcssa)) + 1|0); + $520 = HEAP8[$$2573$lcssa>>0]|0; + $521 = $520&255; + $522 = $521 >>> 6; + $523 = $522 & 1; + $524 = (0 - ($523))|0; + $525 = $377 & $524; + $526 = $525&255; + HEAP8[$519>>0] = $526; + $527 = ($$16$lcssa|0)>(2); + if ($527) { + $528 = ((($$4$lcssa)) + 2|0); + $529 = HEAP8[$$2573$lcssa>>0]|0; + $530 = $529&255; + $531 = $530 >>> 5; + $532 = $531 & 1; + $533 = (0 - ($532))|0; + $534 = $377 & $533; + $535 = $534&255; + HEAP8[$528>>0] = $535; + $536 = ($$16$lcssa|0)==(3); + if (!($536)) { + $537 = ((($$4$lcssa)) + 3|0); + $538 = HEAP8[$$2573$lcssa>>0]|0; + $539 = $538&255; + $540 = $539 >>> 4; + $541 = $540 & 1; + $542 = (0 - ($541))|0; + $543 = $377 & $542; + $544 = $543&255; + HEAP8[$537>>0] = $544; + $545 = ($$16$lcssa|0)>(4); + if ($545) { + $546 = ((($$4$lcssa)) + 4|0); + $547 = HEAP8[$$2573$lcssa>>0]|0; + $548 = $547&255; + $549 = $548 >>> 3; + $550 = $549 & 1; + $551 = (0 - ($550))|0; + $552 = $377 & $551; + $553 = $552&255; + HEAP8[$546>>0] = $553; + $554 = ($$16$lcssa|0)==(5); + if (!($554)) { + $555 = ((($$4$lcssa)) + 5|0); + $556 = HEAP8[$$2573$lcssa>>0]|0; + $557 = $556&255; + $558 = $557 >>> 2; + $559 = $558 & 1; + $560 = (0 - ($559))|0; + $561 = $377 & $560; + $562 = $561&255; + HEAP8[$555>>0] = $562; + $563 = ($$16$lcssa|0)>(6); + if ($563) { + $564 = ((($$4$lcssa)) + 6|0); + $565 = HEAP8[$$2573$lcssa>>0]|0; + $566 = $565&255; + $567 = $566 >>> 1; + $568 = $567 & 1; + $569 = (0 - ($568))|0; + $570 = $377 & $569; + $571 = $570&255; + HEAP8[$564>>0] = $571; + } + } + } + } + } + } + } + break; + } + default: { + } + } + L213: do { + if (!($17)) { + $572 = HEAP32[$21>>2]|0; + $573 = (($572) + ($367)|0); + switch ($14|0) { + case 1: { + if ($337) { + $$0568725 = $$0568724; + } else { + break L213; + } + while(1) { + $574 = $$0568725 << 1; + $575 = $574 | 1; + $576 = (($573) + ($575)|0); + HEAP8[$576>>0] = -1; + $577 = (($573) + ($$0568725)|0); + $578 = HEAP8[$577>>0]|0; + $579 = (($573) + ($574)|0); + HEAP8[$579>>0] = $578; + $$0568 = (($$0568725) + -1)|0; + $580 = ($$0568|0)>(-1); + if ($580) { + $$0568725 = $$0568; + } else { + break; + } + } + break; + } + case 3: { + if ($338) { + $$1722 = $$1721; + } else { + break L213; + } + while(1) { + $581 = $$1722 << 2; + $582 = $581 | 3; + $583 = (($573) + ($582)|0); + HEAP8[$583>>0] = -1; + $584 = ($$1722*3)|0; + $585 = (($584) + 2)|0; + $586 = (($573) + ($585)|0); + $587 = HEAP8[$586>>0]|0; + $588 = $581 | 2; + $589 = (($573) + ($588)|0); + HEAP8[$589>>0] = $587; + $590 = (($584) + 1)|0; + $591 = (($573) + ($590)|0); + $592 = HEAP8[$591>>0]|0; + $593 = $581 | 1; + $594 = (($573) + ($593)|0); + HEAP8[$594>>0] = $592; + $595 = (($573) + ($584)|0); + $596 = HEAP8[$595>>0]|0; + $597 = (($573) + ($581)|0); + HEAP8[$597>>0] = $596; + $$1 = (($$1722) + -1)|0; + $598 = ($$1|0)>(-1); + if ($598) { + $$1722 = $$1; + } else { + break; + } + } + break; + } + default: { + label = 144; + break L174; + } + } + } + } while(0); + $599 = (($$1624727) + 1)|0; + $600 = ($599>>>0)<($5>>>0); + $indvars$iv$next = (($indvars$iv) + ($12))|0; + $indvars$iv$next849 = (($indvars$iv848) + ($12))|0; + $indvars$iv$next852 = (($indvars$iv851) + ($12))|0; + $indvars$iv$next855 = (($indvars$iv854) + ($12))|0; + $indvars$iv$next858 = (($indvars$iv857) + ($12))|0; + $indvars$iv$next861 = (($indvars$iv860) + ($12))|0; + if ($600) { + $$1624727 = $599;$indvars$iv = $indvars$iv$next;$indvars$iv848 = $indvars$iv$next849;$indvars$iv851 = $indvars$iv$next852;$indvars$iv854 = $indvars$iv$next855;$indvars$iv857 = $indvars$iv$next858;$indvars$iv860 = $indvars$iv$next861; + } else { + $$2 = 1; + label = 151; + break; + } + } + if ((label|0) == 144) { + ___assert_fail((10172|0),(9454|0),4466,(10069|0)); + // unreachable; + } + else if ((label|0) == 151) { + return ($$2|0); + } + return (0)|0; +} +function _stbi__paeth($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ispos = 0, $ispos26 = 0, $ispos28 = 0, $neg = 0, $neg27 = 0, $neg29 = 0, $or$cond = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = (($1) + ($0))|0; + $4 = (($3) - ($2))|0; + $5 = (($4) - ($0))|0; + $ispos = ($5|0)>(-1); + $neg = (0 - ($5))|0; + $6 = $ispos ? $5 : $neg; + $7 = (($4) - ($1))|0; + $ispos26 = ($7|0)>(-1); + $neg27 = (0 - ($7))|0; + $8 = $ispos26 ? $7 : $neg27; + $9 = (($4) - ($2))|0; + $ispos28 = ($9|0)>(-1); + $neg29 = (0 - ($9))|0; + $10 = $ispos28 ? $9 : $neg29; + $11 = ($6|0)>($8|0); + $12 = ($6|0)>($10|0); + $or$cond = $11 | $12; + $13 = ($8|0)>($10|0); + $$ = $13 ? $2 : $1; + $$0 = $or$cond ? $$ : $0; + return ($$0|0); +} +function _stbi__do_zlib($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 20|0); + HEAP32[$5>>2] = $1; + $6 = ((($0)) + 16|0); + HEAP32[$6>>2] = $1; + $7 = (($1) + ($2)|0); + $8 = ((($0)) + 24|0); + HEAP32[$8>>2] = $7; + $9 = ((($0)) + 28|0); + HEAP32[$9>>2] = $3; + $10 = (_stbi__parse_zlib($0,$4)|0); + return ($10|0); +} +function _stbi__parse_zlib($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + if (!($2)) { + $3 = (_stbi__parse_zlib_header($0)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + } + $5 = ((($0)) + 8|0); + HEAP32[$5>>2] = 0; + $6 = ((($0)) + 12|0); + HEAP32[$6>>2] = 0; + $7 = ((($0)) + 32|0); + $8 = ((($0)) + 2052|0); + L5: while(1) { + $9 = (_stbi__zreceive($0,1)|0); + $10 = (_stbi__zreceive($0,2)|0); + switch ($10|0) { + case 3: { + $$0 = 0; + label = 11; + break L5; + break; + } + case 0: { + $11 = (_stbi__parse_uncompressed_block($0)|0); + $12 = ($11|0)==(0); + if ($12) { + $$0 = 0; + label = 11; + break L5; + } + break; + } + case 1: { + $13 = (_stbi__zbuild_huffman($7,10183,288)|0); + $14 = ($13|0)==(0); + if ($14) { + $$0 = 0; + label = 11; + break L5; + } + $15 = (_stbi__zbuild_huffman($8,10471,32)|0); + $16 = ($15|0)==(0); + if ($16) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + break; + } + default: { + $17 = (_stbi__compute_huffman_codes($0)|0); + $18 = ($17|0)==(0); + if ($18) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + } + } + if ((label|0) == 9) { + label = 0; + $19 = (_stbi__parse_huffman_block($0)|0); + $20 = ($19|0)==(0); + if ($20) { + $$0 = 0; + label = 11; + break; + } + } + $21 = ($9|0)==(0); + if (!($21)) { + $$0 = 1; + label = 11; + break; + } + } + if ((label|0) == 11) { + return ($$0|0); + } + return (0)|0; +} +function _stbi__parse_zlib_header($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__zget8($0)|0); + $2 = $1&255; + $3 = $2 & 15; + $4 = (_stbi__zget8($0)|0); + $5 = $4&255; + $6 = $2 << 8; + $7 = $6 | $5; + $8 = (($7>>>0) % 31)&-1; + $9 = ($8|0)==(0); + if (!($9)) { + _stbi__err(10818); + $$0 = 0; + return ($$0|0); + } + $10 = $5 & 32; + $11 = ($10|0)==(0); + if (!($11)) { + _stbi__err(10834); + $$0 = 0; + return ($$0|0); + } + $12 = ($3|0)==(8); + if ($12) { + $$0 = 1; + return ($$0|0); + } + _stbi__err(10849); + $$0 = 0; + return ($$0|0); +} +function _stbi__zreceive($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<($1|0); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = 1 << $1; + $8 = (($7) + -1)|0; + $9 = $6 & $8; + $10 = $6 >>> $1; + HEAP32[$5>>2] = $10; + $11 = HEAP32[$2>>2]|0; + $12 = (($11) - ($1))|0; + HEAP32[$2>>2] = $12; + return ($9|0); +} +function _stbi__parse_uncompressed_block($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$034 = 0, $$037 = 0, $$136 = 0, $$lcssa = 0, $$ph = 0, $$pr = 0, $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; + var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond47 = 0, $smax = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & 7; + $5 = ($4|0)==(0); + if ($5) { + $$ph = $3; + } else { + (_stbi__zreceive($0,$4)|0); + $$pr = HEAP32[$2>>2]|0; + $$ph = $$pr; + } + $6 = ($$ph|0)>(0); + if ($6) { + $7 = ((($0)) + 12|0); + $$promoted = HEAP32[$7>>2]|0; + $8 = $$ph ^ -1; + $9 = ($8|0)>(-9); + $smax = $9 ? $8 : -9; + $10 = (($$ph) + ($smax))|0; + $11 = (($10) + 8)|0; + $12 = $11 >>> 3; + $13 = (($12) + 1)|0; + $14 = $12 << 3; + $$037 = 0;$16 = $$promoted; + while(1) { + $15 = $16&255; + $17 = (($$037) + 1)|0; + $18 = (($1) + ($$037)|0); + HEAP8[$18>>0] = $15; + $19 = $16 >>> 8; + $exitcond47 = ($17|0)==($13|0); + if ($exitcond47) { + break; + } else { + $$037 = $17;$16 = $19; + } + } + $20 = (($$ph) + -8)|0; + $21 = (($20) - ($14))|0; + HEAP32[$7>>2] = $19; + HEAP32[$2>>2] = $21; + $$0$lcssa = $13;$$lcssa = $21; + } else { + $$0$lcssa = 0;$$lcssa = $$ph; + } + $22 = ($$lcssa|0)==(0); + if (!($22)) { + ___assert_fail((10740|0),(9454|0),4033,(10757|0)); + // unreachable; + } + $23 = ($$0$lcssa|0)<(4); + if ($23) { + $$136 = $$0$lcssa; + while(1) { + $24 = (_stbi__zget8($0)|0); + $25 = (($$136) + 1)|0; + $26 = (($1) + ($$136)|0); + HEAP8[$26>>0] = $24; + $exitcond = ($25|0)==(4); + if ($exitcond) { + break; + } else { + $$136 = $25; + } + } + } + $27 = ((($1)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = HEAP8[$1>>0]|0; + $32 = $31&255; + $33 = $30 | $32; + $34 = ((($1)) + 3|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = $36 << 8; + $38 = ((($1)) + 2|0); + $39 = HEAP8[$38>>0]|0; + $40 = $39&255; + $41 = $37 | $40; + $42 = $33 ^ 65535; + $43 = ($41|0)==($42|0); + if (!($43)) { + _stbi__err(10788); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $44 = HEAP32[$0>>2]|0; + $45 = (($44) + ($33)|0); + $46 = ((($0)) + 4|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($45>>>0)>($47>>>0); + if ($48) { + _stbi__err(10801); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $49 = ((($0)) + 16|0); + $50 = HEAP32[$49>>2]|0; + $51 = (($50) + ($33)|0); + $52 = ((($0)) + 24|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51>>>0)>($53>>>0); + if ($54) { + $55 = (_stbi__zexpand($0,$50,$33)|0); + $56 = ($55|0)==(0); + if ($56) { + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + } + $57 = HEAP32[$49>>2]|0; + $58 = HEAP32[$0>>2]|0; + _memcpy(($57|0),($58|0),($33|0))|0; + $59 = HEAP32[$0>>2]|0; + $60 = (($59) + ($33)|0); + HEAP32[$0>>2] = $60; + $61 = HEAP32[$49>>2]|0; + $62 = (($61) + ($33)|0); + HEAP32[$49>>2] = $62; + $$034 = 1; + STACKTOP = sp;return ($$034|0); +} +function _stbi__zbuild_huffman($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$075 = 0, $$07688 = 0, $$07785 = 0, $$07884 = 0, $$081 = 0, $$286 = 0, $$382 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond91 = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $3 = sp + 72|0; + $4 = sp; + dest=$4; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _memset(($0|0),0,1024)|0; + $5 = ($2|0)>(0); + if ($5) { + $$07688 = 0; + while(1) { + $6 = (($1) + ($$07688)|0); + $7 = HEAP8[$6>>0]|0; + $8 = $7&255; + $9 = (($4) + ($8<<2)|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($10) + 1)|0; + HEAP32[$9>>2] = $11; + $12 = (($$07688) + 1)|0; + $exitcond91 = ($12|0)==($2|0); + if ($exitcond91) { + break; + } else { + $$07688 = $12; + } + } + } + HEAP32[$4>>2] = 0; + $16 = ((($4)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)>(2); + if (!($18)) { + $13 = ((($4)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)>(4); + if (!($15)) { + $69 = ((($4)) + 12|0); + $70 = HEAP32[$69>>2]|0; + $71 = ($70|0)>(8); + if (!($71)) { + $72 = ((($4)) + 16|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)>(16); + if (!($74)) { + $75 = ((($4)) + 20|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($76|0)>(32); + if (!($77)) { + $78 = ((($4)) + 24|0); + $79 = HEAP32[$78>>2]|0; + $80 = ($79|0)>(64); + if (!($80)) { + $81 = ((($4)) + 28|0); + $82 = HEAP32[$81>>2]|0; + $83 = ($82|0)>(128); + if (!($83)) { + $84 = ((($4)) + 32|0); + $85 = HEAP32[$84>>2]|0; + $86 = ($85|0)>(256); + if (!($86)) { + $87 = ((($4)) + 36|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)>(512); + if (!($89)) { + $90 = ((($4)) + 40|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)>(1024); + if (!($92)) { + $93 = ((($4)) + 44|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)>(2048); + if (!($95)) { + $96 = ((($4)) + 48|0); + $97 = HEAP32[$96>>2]|0; + $98 = ($97|0)>(4096); + if (!($98)) { + $99 = ((($4)) + 52|0); + $100 = HEAP32[$99>>2]|0; + $101 = ($100|0)>(8192); + if (!($101)) { + $102 = ((($4)) + 56|0); + $103 = HEAP32[$102>>2]|0; + $104 = ($103|0)>(16384); + if (!($104)) { + $105 = ((($4)) + 60|0); + $106 = HEAP32[$105>>2]|0; + $107 = ($106|0)>(32768); + if (!($107)) { + $$07785 = 0;$$07884 = 0;$$286 = 1; + while(1) { + $19 = (($3) + ($$286<<2)|0); + HEAP32[$19>>2] = $$07884; + $20 = $$07884&65535; + $21 = (((($0)) + 1024|0) + ($$286<<1)|0); + HEAP16[$21>>1] = $20; + $22 = $$07785&65535; + $23 = (((($0)) + 1124|0) + ($$286<<1)|0); + HEAP16[$23>>1] = $22; + $24 = (($4) + ($$286<<2)|0); + $25 = HEAP32[$24>>2]|0; + $26 = (($25) + ($$07884))|0; + $27 = ($25|0)!=(0); + $28 = 1 << $$286; + $29 = ($26|0)>($28|0); + $or$cond = $27 & $29; + if ($or$cond) { + label = 7; + break; + } + $30 = (16 - ($$286))|0; + $31 = $26 << $30; + $32 = (((($0)) + 1056|0) + ($$286<<2)|0); + HEAP32[$32>>2] = $31; + $33 = $26 << 1; + $34 = (($25) + ($$07785))|0; + $35 = (($$286) + 1)|0; + $36 = ($35|0)<(16); + if ($36) { + $$07785 = $34;$$07884 = $33;$$286 = $35; + } else { + break; + } + } + if ((label|0) == 7) { + _stbi__err(10678); + $$075 = 0; + STACKTOP = sp;return ($$075|0); + } + $37 = ((($0)) + 1120|0); + HEAP32[$37>>2] = 65536; + $38 = ($2|0)>(0); + if ($38) { + $$382 = 0; + } else { + $$075 = 1; + STACKTOP = sp;return ($$075|0); + } + while(1) { + $39 = (($1) + ($$382)|0); + $40 = HEAP8[$39>>0]|0; + $41 = $40&255; + $42 = ($40<<24>>24)==(0); + if (!($42)) { + $43 = (($3) + ($41<<2)|0); + $44 = HEAP32[$43>>2]|0; + $45 = (((($0)) + 1024|0) + ($41<<1)|0); + $46 = HEAP16[$45>>1]|0; + $47 = $46&65535; + $48 = (($44) - ($47))|0; + $49 = (((($0)) + 1124|0) + ($41<<1)|0); + $50 = HEAP16[$49>>1]|0; + $51 = $50&65535; + $52 = (($48) + ($51))|0; + $53 = $41 << 9; + $54 = $53 | $$382; + $55 = $54&65535; + $56 = (((($0)) + 1156|0) + ($52)|0); + HEAP8[$56>>0] = $40; + $57 = $$382&65535; + $58 = (((($0)) + 1444|0) + ($52<<1)|0); + HEAP16[$58>>1] = $57; + $59 = ($40&255)<(10); + do { + if ($59) { + $60 = (_stbi__bit_reverse($44,$41)|0); + $61 = ($60|0)<(512); + if (!($61)) { + break; + } + $62 = 1 << $41; + $$081 = $60; + while(1) { + $63 = (($0) + ($$081<<1)|0); + HEAP16[$63>>1] = $55; + $64 = (($$081) + ($62))|0; + $65 = ($64|0)<(512); + if ($65) { + $$081 = $64; + } else { + break; + } + } + } + } while(0); + $66 = HEAP32[$43>>2]|0; + $67 = (($66) + 1)|0; + HEAP32[$43>>2] = $67; + } + $68 = (($$382) + 1)|0; + $exitcond = ($68|0)==($2|0); + if ($exitcond) { + $$075 = 1; + break; + } else { + $$382 = $68; + } + } + STACKTOP = sp;return ($$075|0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + _stbi__err(10730); + $$075 = 0; + STACKTOP = sp;return ($$075|0); +} +function _stbi__compute_huffman_codes($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$061 = 0, $$06579 = 0, $$066$be = 0, $$066$lcssa = 0, $$06678 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $not$ = 0, dest = 0; + var label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2496|0); + $1 = sp; + $2 = sp + 2039|0; + $3 = sp + 2020|0; + $4 = (_stbi__zreceive($0,5)|0); + $5 = (($4) + 257)|0; + $6 = (_stbi__zreceive($0,5)|0); + $7 = (($6) + 1)|0; + $8 = (_stbi__zreceive($0,4)|0); + $9 = (($8) + 4)|0; + $10 = (($7) + ($5))|0; + dest=$3; stop=dest+19|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $11 = ($9|0)>(0); + if ($11) { + $$06579 = 0; + while(1) { + $12 = (_stbi__zreceive($0,3)|0); + $13 = $12&255; + $14 = (11524 + ($$06579)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = (($3) + ($16)|0); + HEAP8[$17>>0] = $13; + $18 = (($$06579) + 1)|0; + $exitcond = ($18|0)==($9|0); + if ($exitcond) { + break; + } else { + $$06579 = $18; + } + } + } + $19 = (_stbi__zbuild_huffman($1,$3,19)|0); + $20 = ($19|0)==(0); + if ($20) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $21 = ($10|0)>(0); + L8: do { + if ($21) { + $$06678 = 0; + L9: while(1) { + $22 = (_stbi__zhuffman_decode($0,$1)|0); + $23 = ($22>>>0)>(18); + if ($23) { + label = 6; + break; + } + $24 = ($22|0)<(16); + if ($24) { + $25 = $22&255; + $26 = (($$06678) + 1)|0; + $27 = (($2) + ($$06678)|0); + HEAP8[$27>>0] = $25; + $$066$be = $26; + } else { + switch ($22|0) { + case 16: { + $28 = (_stbi__zreceive($0,2)|0); + $29 = ($$06678|0)==(0); + if ($29) { + label = 11; + break L9; + } + $30 = (($28) + 3)|0; + $31 = (($$06678) + -1)|0; + $32 = (($2) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $$0 = $33;$$061 = $30; + break; + } + case 17: { + $34 = (_stbi__zreceive($0,3)|0); + $35 = (($34) + 3)|0; + $$0 = 0;$$061 = $35; + break; + } + case 18: { + $36 = (_stbi__zreceive($0,7)|0); + $37 = (($36) + 11)|0; + $$0 = 0;$$061 = $37; + break; + } + default: { + label = 14; + break L9; + } + } + $38 = (($10) - ($$06678))|0; + $39 = ($38|0)<($$061|0); + if ($39) { + label = 17; + break; + } + $40 = (($2) + ($$06678)|0); + _memset(($40|0),($$0|0),($$061|0))|0; + $41 = (($$061) + ($$06678))|0; + $$066$be = $41; + } + $42 = ($10|0)>($$066$be|0); + if ($42) { + $$06678 = $$066$be; + } else { + $$066$lcssa = $$066$be; + break L8; + } + } + if ((label|0) == 6) { + _stbi__err(10678); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 11) { + _stbi__err(10678); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 14) { + ___assert_fail((10694|0),(9454|0),4006,(10702|0)); + // unreachable; + } + else if ((label|0) == 17) { + _stbi__err(10678); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + } else { + $$066$lcssa = 0; + } + } while(0); + $43 = ($10|0)==($$066$lcssa|0); + if (!($43)) { + _stbi__err(10678); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $44 = ((($0)) + 32|0); + $45 = (_stbi__zbuild_huffman($44,$2,$5)|0); + $46 = ($45|0)==(0); + if ($46) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $47 = ((($0)) + 2052|0); + $48 = (($2) + ($5)|0); + $49 = (_stbi__zbuild_huffman($47,$48,$7)|0); + $not$ = ($49|0)!=(0); + $$ = $not$&1; + $$4 = $$; + STACKTOP = sp;return ($$4|0); +} +function _stbi__parse_huffman_block($0) { + $0 = $0|0; + var $$063 = 0, $$064 = 0, $$067 = 0, $$070 = 0, $$171 = 0, $$266 = 0, $$272 = 0, $$3$ph = 0, $$5 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep92 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 32|0); + $4 = ((($0)) + 24|0); + $5 = ((($0)) + 2052|0); + $6 = ((($0)) + 20|0); + $7 = ((($0)) + 24|0); + $$070 = $2; + while(1) { + $10 = (_stbi__zhuffman_decode($0,$3)|0); + $11 = ($10|0)<(256); + if ($11) { + $12 = ($10|0)<(0); + if ($12) { + label = 6; + break; + } + $13 = HEAP32[$4>>2]|0; + $14 = ($$070>>>0)<($13>>>0); + if ($14) { + $$171 = $$070; + } else { + $15 = (_stbi__zexpand($0,$$070,1)|0); + $16 = ($15|0)==(0); + if ($16) { + $$3$ph = 0; + label = 28; + break; + } + $17 = HEAP32[$1>>2]|0; + $$171 = $17; + } + $18 = $10&255; + $19 = ((($$171)) + 1|0); + HEAP8[$$171>>0] = $18; + $$070 = $19; + continue; + } + $20 = ($10|0)==(256); + if ($20) { + label = 12; + break; + } + $21 = (($10) + -257)|0; + $22 = (3332 + ($21<<2)|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($10) + -265)|0; + $25 = ($24>>>0)<(20); + if ($25) { + $26 = (3208 + ($21<<2)|0); + $27 = HEAP32[$26>>2]|0; + $28 = (_stbi__zreceive($0,$27)|0); + $29 = (($28) + ($23))|0; + $$064 = $29; + } else { + $$064 = $23; + } + $30 = (_stbi__zhuffman_decode($0,$5)|0); + $31 = ($30|0)<(0); + if ($31) { + label = 16; + break; + } + $32 = (3584 + ($30<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (($30) + -4)|0; + $35 = ($34>>>0)<(26); + if ($35) { + $36 = (3456 + ($30<<2)|0); + $37 = HEAP32[$36>>2]|0; + $38 = (_stbi__zreceive($0,$37)|0); + $39 = (($38) + ($33))|0; + $$063 = $39; + } else { + $$063 = $33; + } + $40 = HEAP32[$6>>2]|0; + $41 = $$070; + $42 = (($41) - ($40))|0; + $43 = ($42|0)<($$063|0); + if ($43) { + label = 20; + break; + } + $44 = (($$070) + ($$064)|0); + $45 = HEAP32[$7>>2]|0; + $46 = ($44>>>0)>($45>>>0); + if ($46) { + $47 = (_stbi__zexpand($0,$$070,$$064)|0); + $48 = ($47|0)==(0); + if ($48) { + $$3$ph = 0; + label = 28; + break; + } + $49 = HEAP32[$1>>2]|0; + $$272 = $49; + } else { + $$272 = $$070; + } + $50 = (0 - ($$063))|0; + $9 = (($$272) + ($50)|0); + $51 = ($$063|0)==(1); + $52 = ($$064|0)!=(0); + if ($51) { + if (!($52)) { + $$070 = $$272; + continue; + } + $8 = HEAP8[$9>>0]|0; + _memset(($$272|0),($8|0),($$064|0))|0; + $scevgep92 = (($$272) + ($$064)|0); + $$070 = $scevgep92; + continue; + } + if ($52) { + $$067 = $9;$$266 = $$064;$$5 = $$272; + } else { + $$070 = $$272; + continue; + } + while(1) { + $53 = ((($$067)) + 1|0); + $54 = HEAP8[$$067>>0]|0; + $55 = ((($$5)) + 1|0); + HEAP8[$$5>>0] = $54; + $56 = (($$266) + -1)|0; + $57 = ($56|0)==(0); + if ($57) { + break; + } else { + $$067 = $53;$$266 = $56;$$5 = $55; + } + } + $scevgep = (($$272) + ($$064)|0); + $$070 = $scevgep; + } + if ((label|0) == 6) { + _stbi__err(10503); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 12) { + HEAP32[$1>>2] = $$070; + $$3$ph = 1; + return ($$3$ph|0); + } + else if ((label|0) == 16) { + _stbi__err(10503); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 20) { + _stbi__err(10520); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 28) { + return ($$3$ph|0); + } + return (0)|0; +} +function _stbi__zhuffman_decode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<(16); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 511; + $8 = (($1) + ($7<<1)|0); + $9 = HEAP16[$8>>1]|0; + $10 = $9&65535; + $11 = ($9<<16>>16)==(0); + if ($11) { + $17 = (_stbi__zhuffman_decode_slowpath($0,$1)|0); + $$0 = $17; + return ($$0|0); + } else { + $12 = $10 >>> 9; + $13 = $6 >>> $12; + HEAP32[$5>>2] = $13; + $14 = HEAP32[$2>>2]|0; + $15 = (($14) - ($12))|0; + HEAP32[$2>>2] = $15; + $16 = $10 & 511; + $$0 = $16; + return ($$0|0); + } + return (0)|0; +} +function _stbi__zexpand($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + HEAP32[$3>>2] = $1; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + _stbi__err(10529); + $$0 = 0; + return ($$0|0); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = $1; + $10 = $8; + $11 = (($9) - ($10))|0; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + $14 = (($13) - ($10))|0; + $15 = (($11) + ($2))|0; + $$029 = $14; + while(1) { + $16 = ($15|0)>($$029|0); + $17 = $$029 << 1; + if ($16) { + $$029 = $17; + } else { + break; + } + } + $18 = (_realloc($8,$$029)|0); + $19 = ($18|0)==(0|0); + if ($19) { + _stbi__err(9509); + $$0 = 0; + return ($$0|0); + } else { + HEAP32[$7>>2] = $18; + $20 = (($18) + ($11)|0); + HEAP32[$3>>2] = $20; + $21 = (($18) + ($$029)|0); + HEAP32[$12>>2] = $21; + $$0 = 1; + return ($$0|0); + } + return (0)|0; +} +function _stbi__fill_bits($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 12|0); + $2 = ((($0)) + 8|0); + while(1) { + $3 = HEAP32[$1>>2]|0; + $4 = HEAP32[$2>>2]|0; + $5 = 1 << $4; + $6 = ($3>>>0)<($5>>>0); + if (!($6)) { + label = 3; + break; + } + $7 = (_stbi__zget8($0)|0); + $8 = $7&255; + $9 = HEAP32[$2>>2]|0; + $10 = $8 << $9; + $11 = HEAP32[$1>>2]|0; + $12 = $11 | $10; + HEAP32[$1>>2] = $12; + $13 = (($9) + 8)|0; + HEAP32[$2>>2] = $13; + $14 = ($13|0)<(25); + if (!($14)) { + label = 5; + break; + } + } + if ((label|0) == 3) { + ___assert_fail((10625|0),(9454|0),3848,(10662|0)); + // unreachable; + } + else if ((label|0) == 5) { + return; + } +} +function _stbi__zhuffman_decode_slowpath($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 12|0); + $3 = HEAP32[$2>>2]|0; + $4 = (_stbi__bit_reverse($3,16)|0); + $$025 = 10; + while(1) { + $5 = (((($1)) + 1056|0) + ($$025<<2)|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($4|0)<($6|0); + $8 = (($$025) + 1)|0; + if ($7) { + break; + } else { + $$025 = $8; + } + } + $9 = ($$025|0)==(16); + if ($9) { + $$0 = -1; + return ($$0|0); + } + $10 = (16 - ($$025))|0; + $11 = $4 >> $10; + $12 = (((($1)) + 1024|0) + ($$025<<1)|0); + $13 = HEAP16[$12>>1]|0; + $14 = $13&65535; + $15 = (($11) - ($14))|0; + $16 = (((($1)) + 1124|0) + ($$025<<1)|0); + $17 = HEAP16[$16>>1]|0; + $18 = $17&65535; + $19 = (($15) + ($18))|0; + $20 = (((($1)) + 1156|0) + ($19)|0); + $21 = HEAP8[$20>>0]|0; + $22 = $21&255; + $23 = ($22|0)==($$025|0); + if (!($23)) { + ___assert_fail((10549|0),(9454|0),3876,(10565|0)); + // unreachable; + } + $24 = HEAP32[$2>>2]|0; + $25 = $24 >>> $$025; + HEAP32[$2>>2] = $25; + $26 = ((($0)) + 8|0); + $27 = HEAP32[$26>>2]|0; + $28 = (($27) - ($$025))|0; + HEAP32[$26>>2] = $28; + $29 = (((($1)) + 1444|0) + ($19<<1)|0); + $30 = HEAP16[$29>>1]|0; + $31 = $30&65535; + $$0 = $31; + return ($$0|0); +} +function _stbi__bit_reverse($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(17); + if ($2) { + $3 = (_stbi__bitreverse16($0)|0); + $4 = (16 - ($1))|0; + $5 = $3 >> $4; + return ($5|0); + } else { + ___assert_fail((10596|0),(9454|0),3766,(10607|0)); + // unreachable; + } + return (0)|0; +} +function _stbi__bitreverse16($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = $0 >>> 1; + $2 = $1 & 21845; + $3 = $0 << 1; + $4 = $3 & 43690; + $5 = $2 | $4; + $6 = $5 >>> 2; + $7 = $6 & 13107; + $8 = $5 << 2; + $9 = $8 & 52428; + $10 = $7 | $9; + $11 = $10 >>> 4; + $12 = $11 & 3855; + $13 = $10 << 4; + $14 = $13 & 61680; + $15 = $12 | $14; + $16 = $15 >>> 8; + $17 = $15 << 8; + $18 = $17 & 65280; + $19 = $18 | $16; + return ($19|0); +} +function _stbi__zget8($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($1>>>0)<($3>>>0); + if (!($4)) { + $$0 = 0; + return ($$0|0); + } + $5 = ((($1)) + 1|0); + HEAP32[$0>>2] = $5; + $6 = HEAP8[$1>>0]|0; + $$0 = $6; + return ($$0|0); +} +function _stbi__refill_buffer($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + $8 = (FUNCTION_TABLE_iiii[$2 & 15]($4,$5,$7)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = ((($0)) + 32|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 168|0); + HEAP32[$11>>2] = $5; + $12 = ((($0)) + 41|0); + $13 = ((($0)) + 172|0); + HEAP32[$13>>2] = $12; + HEAP8[$5>>0] = 0; + return; + } else { + $14 = ((($0)) + 168|0); + HEAP32[$14>>2] = $5; + $15 = (((($0)) + 40|0) + ($8)|0); + $16 = ((($0)) + 172|0); + HEAP32[$16>>2] = $15; + return; + } +} +function _stbi__rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 176|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 168|0); + HEAP32[$3>>2] = $2; + $4 = ((($0)) + 180|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 172|0); + HEAP32[$6>>2] = $5; + return; +} +function _stbi__start_callbacks($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + ;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0; + $4 = ((($0)) + 28|0); + HEAP32[$4>>2] = $2; + $5 = ((($0)) + 36|0); + HEAP32[$5>>2] = 128; + $6 = ((($0)) + 32|0); + HEAP32[$6>>2] = 1; + $7 = ((($0)) + 40|0); + $8 = ((($0)) + 176|0); + HEAP32[$8>>2] = $7; + _stbi__refill_buffer($0); + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 180|0); + HEAP32[$11>>2] = $10; + return; +} +function _stbi__stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_fread($1,1,$2,$0)|0); + return ($3|0); +} +function _stbi__stdio_skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (_fseek($0,$1,1)|0); + return; +} +function _stbi__stdio_eof($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_feof($0)|0); + return ($1|0); +} +function _LoadImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$1 = 0, $$sroa$0$144 = 0, $$sroa$10$0 = 0, $$sroa$10$0$$sroa_idx19 = 0, $$sroa$10$0$$sroa_idx20 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$1 = 0, $$sroa$10$140 = 0, $$sroa$10$141 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx23 = 0, $$sroa$13$0$$sroa_idx24 = 0, $$sroa$13$0$copyload = 0, $$sroa$13$1 = 0, $$sroa$13$146 = 0, $$sroa$13$147 = 0, $$sroa$15$0 = 0; + var $$sroa$15$0$$sroa_idx27 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$copyload = 0, $$sroa$15$1 = 0, $$sroa$15$2 = 0, $$sroa$15$248 = 0, $$sroa$15$249 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx15 = 0, $$sroa$7$0$$sroa_idx16 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$1 = 0, $$sroa$7$142 = 0, $$sroa$7$143 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0; + var $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer9 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer9 = sp + 32|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 44|0; + $4 = sp + 40|0; + $5 = sp + 36|0; + $6 = (_IsFileExtension($1,10877)|0); + $7 = ($6|0)==(0); + do { + if ($7) { + $19 = (_IsFileExtension($1,10930)|0); + $20 = ($19|0)==(0); + if ($20) { + HEAP32[$vararg_buffer1>>2] = $1; + _TraceLog(2,10935,$vararg_buffer1); + $$sroa$10$141 = 0;$$sroa$13$147 = 0;$$sroa$15$249 = 0;$$sroa$7$143 = 0; + break; + } + HEAP32[$3>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$5>>2] = 0; + $21 = (_fopen($1,11069)|0); + $22 = (_stbi_load_from_file($21,$3,$4,$5,0)|0); + (_fclose($21)|0); + $23 = HEAP32[$3>>2]|0; + $24 = HEAP32[$4>>2]|0; + $25 = HEAP32[$5>>2]|0; + switch ($25|0) { + case 1: { + $$sink = 1; + label = 11; + break; + } + case 2: { + $$sink = 2; + label = 11; + break; + } + case 3: { + $$sink = 4; + label = 11; + break; + } + case 4: { + $$sink = 7; + label = 11; + break; + } + default: { + $$sroa$15$1 = 0; + } + } + if ((label|0) == 11) { + $$sroa$15$1 = $$sink; + } + $$sroa$0$1 = $22;$$sroa$10$1 = $24;$$sroa$13$1 = 1;$$sroa$15$2 = $$sroa$15$1;$$sroa$7$1 = $23; + label = 14; + } else { + $8 = (_LoadResource($1,0)|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)==(1); + if ($10) { + $11 = ((($8)) + 20|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($8)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($8)) + 8|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($8)) + 12|0); + $18 = HEAP32[$17>>2]|0; + _LoadImagePro($2,$12,$14,$16,$18); + $$sroa$0$0$copyload = HEAP32[$2>>2]|0; + $$sroa$7$0$$sroa_idx15 = ((($2)) + 4|0); + $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx15>>2]|0; + $$sroa$10$0$$sroa_idx19 = ((($2)) + 8|0); + $$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx19>>2]|0; + $$sroa$13$0$$sroa_idx23 = ((($2)) + 12|0); + $$sroa$13$0$copyload = HEAP32[$$sroa$13$0$$sroa_idx23>>2]|0; + $$sroa$15$0$$sroa_idx27 = ((($2)) + 16|0); + $$sroa$15$0$copyload = HEAP32[$$sroa$15$0$$sroa_idx27>>2]|0; + $$sroa$0$0 = $$sroa$0$0$copyload;$$sroa$10$0 = $$sroa$10$0$copyload;$$sroa$13$0 = $$sroa$13$0$copyload;$$sroa$15$0 = $$sroa$15$0$copyload;$$sroa$7$0 = $$sroa$7$0$copyload; + } else { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,10883,$vararg_buffer); + $$sroa$0$0 = 0;$$sroa$10$0 = 0;$$sroa$13$0 = 0;$$sroa$15$0 = 0;$$sroa$7$0 = 0; + } + _UnloadResource($8); + $$sroa$0$1 = $$sroa$0$0;$$sroa$10$1 = $$sroa$10$0;$$sroa$13$1 = $$sroa$13$0;$$sroa$15$2 = $$sroa$15$0;$$sroa$7$1 = $$sroa$7$0; + label = 14; + } + } while(0); + if ((label|0) == 14) { + $26 = ($$sroa$0$1|0)==(0|0); + if ($26) { + $$sroa$10$141 = $$sroa$10$1;$$sroa$13$147 = $$sroa$13$1;$$sroa$15$249 = $$sroa$15$2;$$sroa$7$143 = $$sroa$7$1; + } else { + HEAP32[$vararg_buffer4>>2] = $1; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $$sroa$7$1; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $$sroa$10$1; + _TraceLog(0,10971,$vararg_buffer4); + $$sroa$0$144 = $$sroa$0$1;$$sroa$10$140 = $$sroa$10$1;$$sroa$13$146 = $$sroa$13$1;$$sroa$15$248 = $$sroa$15$2;$$sroa$7$142 = $$sroa$7$1; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; + } + } + HEAP32[$vararg_buffer9>>2] = $1; + _TraceLog(2,11010,$vararg_buffer9); + $$sroa$0$144 = 0;$$sroa$10$140 = $$sroa$10$141;$$sroa$13$146 = $$sroa$13$147;$$sroa$15$248 = $$sroa$15$249;$$sroa$7$142 = $$sroa$7$143; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; +} +function _LoadResource($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$05665 = 0, $$05764 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond60 = 0; + var $or$cond62 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 64|0; + $3 = sp + 32|0; + $4 = (_fopen($0,11069)|0); + $5 = ($4|0)==(0|0); + if ($5) { + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(2,11072,$vararg_buffer); + $$2 = 0; + STACKTOP = sp;return ($$2|0); + } + (_fread($2,1,1,$4)|0); + $6 = ((($2)) + 1|0); + (_fread($6,1,1,$4)|0); + $7 = ((($2)) + 2|0); + (_fread($7,1,1,$4)|0); + $8 = ((($2)) + 3|0); + (_fread($8,1,1,$4)|0); + $9 = ((($2)) + 4|0); + (_fread($9,2,1,$4)|0); + $10 = ((($2)) + 6|0); + (_fread($10,2,1,$4)|0); + $11 = HEAP8[$2>>0]|0; + $12 = ($11<<24>>24)==(114); + $13 = HEAP8[$6>>0]|0; + $14 = ($13<<24>>24)==(82); + $or$cond = $12 | $14; + $15 = HEAP8[$7>>0]|0; + $16 = ($15<<24>>24)==(69); + $or$cond60 = $or$cond | $16; + $17 = HEAP8[$8>>0]|0; + $18 = ($17<<24>>24)==(83); + $or$cond62 = $or$cond60 | $18; + if ($or$cond62) { + $19 = HEAP16[$10>>1]|0; + $20 = ($19<<16>>16)==(0); + if ($20) { + $$0$lcssa = 0; + } else { + $21 = ((($3)) + 7|0); + $22 = HEAP16[$10>>1]|0; + $23 = $22&65535; + $24 = ((($3)) + 8|0); + $25 = ((($3)) + 4|0); + $26 = ((($3)) + 16|0); + $27 = ((($3)) + 20|0); + $28 = ((($3)) + 24|0); + $29 = ((($3)) + 28|0); + $30 = ((($3)) + 8|0); + $31 = ((($3)) + 5|0); + $32 = ((($3)) + 12|0); + $$05665 = 0; + while(1) { + (_fread($3,32,1,$4)|0); + $36 = HEAP8[$21>>0]|0; + $37 = $36&255; + $38 = ($37*24)|0; + $39 = (_malloc($38)|0); + $40 = HEAP32[$3>>2]|0; + $41 = ($40|0)==($1|0); + if ($41) { + $42 = HEAP8[$21>>0]|0; + $43 = ($42<<24>>24)==(0); + if (!($43)) { + $$05764 = 0; + while(1) { + $44 = HEAP8[$25>>0]|0; + $45 = $44&255; + $46 = (($39) + (($$05764*24)|0)|0); + HEAP32[$46>>2] = $45; + $47 = HEAP32[$26>>2]|0; + $48 = (((($39) + (($$05764*24)|0)|0)) + 4|0); + HEAP32[$48>>2] = $47; + $49 = HEAP32[$27>>2]|0; + $50 = (((($39) + (($$05764*24)|0)|0)) + 8|0); + HEAP32[$50>>2] = $49; + $51 = HEAP32[$28>>2]|0; + $52 = (((($39) + (($$05764*24)|0)|0)) + 12|0); + HEAP32[$52>>2] = $51; + $53 = HEAP32[$29>>2]|0; + $54 = (((($39) + (($$05764*24)|0)|0)) + 16|0); + HEAP32[$54>>2] = $53; + $55 = HEAP32[$30>>2]|0; + $56 = (_malloc($55)|0); + (_fread($56,$55,1,$4)|0); + $57 = HEAP8[$31>>0]|0; + $58 = ($57<<24>>24)==(1); + if ($58) { + $59 = HEAP32[$30>>2]|0; + $60 = HEAP32[$32>>2]|0; + $61 = (_DecompressData($56,$59,$60)|0); + $62 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$62>>2] = $61; + _free($56); + } else { + $63 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$63>>2] = $56; + } + $64 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if (!($66)) { + $67 = HEAP32[$3>>2]|0; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $67; + _TraceLog(0,11169,$vararg_buffer4); + } + (_fread($3,32,1,$4)|0); + $68 = (($$05764) + 1)|0; + $69 = HEAP8[$21>>0]|0; + $70 = $69&255; + $71 = ($68|0)<($70|0); + if ($71) { + $$05764 = $68; + } else { + break; + } + } + } + } else { + $72 = HEAP32[$24>>2]|0; + (_fseek($4,$72,1)|0); + } + $73 = (($$05665) + 1)|0; + $74 = ($73|0)<($23|0); + if ($74) { + $$05665 = $73; + } else { + $$0$lcssa = $39; + break; + } + } + } + $33 = ((($$0$lcssa)) + 20|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)==(0|0); + if ($35) { + HEAP32[$vararg_buffer8>>2] = $0; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $1; + _TraceLog(2,11215,$vararg_buffer8); + $$1 = $$0$lcssa; + } else { + $$1 = $$0$lcssa; + } + } else { + HEAP32[$vararg_buffer1>>2] = $0; + _TraceLog(2,11123,$vararg_buffer1); + $$1 = 0; + } + (_fclose($4)|0); + $$2 = $$1; + STACKTOP = sp;return ($$2|0); +} +function _LoadImagePro($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy = sp + 20|0; + $5 = sp; + HEAP32[$5>>2] = $1; + $6 = ((($5)) + 4|0); + HEAP32[$6>>2] = $2; + $7 = ((($5)) + 8|0); + HEAP32[$7>>2] = $3; + $8 = ((($5)) + 12|0); + HEAP32[$8>>2] = 1; + $9 = ((($5)) + 16|0); + HEAP32[$9>>2] = $4; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$5+16>>2]|0; + _ImageCopy($0,$$byval_copy); + STACKTOP = sp;return; +} +function _UnloadResource($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if ($3) { + return; + } + _free($2); + return; +} +function _ImageCopy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$sroa$6$0 = 0, $$sroa$6$0$$sroa_idx10 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx12 = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx14 = 0, $$sroa$9$0 = 0, $$sroa$9$0$$sroa_idx16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $2 = ((($1)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($1)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = Math_imul($5, $3)|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + switch ($8|0) { + case 17: case 14: case 11: case 10: case 1: { + $$0 = $6; + break; + } + case 6: case 5: case 3: case 2: { + $9 = $6 << 1; + $$0 = $9; + break; + } + case 4: { + $10 = ($6*3)|0; + $$0 = $10; + break; + } + case 7: { + $11 = $6 << 2; + $$0 = $11; + break; + } + case 16: case 15: case 13: case 12: case 9: case 8: { + $12 = (($6|0) / 2)&-1; + $$0 = $12; + break; + } + case 18: { + $13 = (($6|0) / 4)&-1; + $$0 = $13; + break; + } + default: { + _TraceLog(2,11041,$vararg_buffer); + $$0 = $6; + } + } + $14 = (_malloc($$0)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$sroa$6$0 = 0;$$sroa$7$0 = 0;$$sroa$8$0 = 0;$$sroa$9$0 = 0; + } else { + $16 = HEAP32[$1>>2]|0; + _memcpy(($14|0),($16|0),($$0|0))|0; + $17 = HEAP32[$2>>2]|0; + $18 = HEAP32[$4>>2]|0; + $19 = ((($1)) + 12|0); + $20 = HEAP32[$19>>2]|0; + $21 = HEAP32[$7>>2]|0; + $$sroa$6$0 = $17;$$sroa$7$0 = $18;$$sroa$8$0 = $20;$$sroa$9$0 = $21; + } + HEAP32[$0>>2] = $14; + $$sroa$6$0$$sroa_idx10 = ((($0)) + 4|0); + HEAP32[$$sroa$6$0$$sroa_idx10>>2] = $$sroa$6$0; + $$sroa$7$0$$sroa_idx12 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx12>>2] = $$sroa$7$0; + $$sroa$8$0$$sroa_idx14 = ((($0)) + 12|0); + HEAP32[$$sroa$8$0$$sroa_idx14>>2] = $$sroa$8$0; + $$sroa$9$0$$sroa_idx16 = ((($0)) + 16|0); + HEAP32[$$sroa$9$0$$sroa_idx16>>2] = $$sroa$9$0; + STACKTOP = sp;return; +} +function _DecompressData($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer10 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = (_malloc($2)|0); + $4 = ($3|0)==(0|0); + if ($4) { + _TraceLog(2,11265,$vararg_buffer); + STACKTOP = sp;return ($3|0); + } + $5 = (_tinfl_decompress_mem_to_mem($3,$2,$0,$1,1)|0); + $6 = ($5|0)==(-1); + if ($6) { + _TraceLog(2,11304,$vararg_buffer1); + _free($3); + } + $7 = ($5|0)==($2|0); + if (!($7)) { + _TraceLog(2,11330,$vararg_buffer3); + HEAP32[$vararg_buffer5>>2] = $2; + _TraceLog(2,11393,$vararg_buffer5); + HEAP32[$vararg_buffer7>>2] = $5; + _TraceLog(2,11428,$vararg_buffer7); + } + HEAP32[$vararg_buffer10>>2] = $1; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $5; + _TraceLog(0,11463,$vararg_buffer10); + STACKTOP = sp;return ($3|0); +} +function _tinfl_decompress_mem_to_mem($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 11008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(11008|0); + $5 = sp + 11000|0; + $6 = sp; + $7 = sp + 8|0; + HEAP32[$5>>2] = $1; + HEAP32[$6>>2] = $3; + HEAP32[$7>>2] = 0; + $8 = $4 & -7; + $9 = $8 | 4; + $10 = (_tinfl_decompress($7,$2,$6,$0,$0,$5,$9)|0); + $11 = ($10|0)!=(0); + $12 = HEAP32[$5>>2]|0; + $13 = $11 ? -1 : $12; + STACKTOP = sp;return ($13|0); +} +function _tinfl_decompress($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$ = 0, $$$301127 = 0, $$010861840 = 0, $$010871839 = 0, $$010881838 = 0, $$010911856 = 0, $$010941846 = 0, $$010951864 = 0, $$01097 = 0, $$01194 = 0, $$011971855 = 0, $$01202 = 0, $$01202$shrunk = 0, $$01203 = 0, $$01300 = 0, $$01300$shrunk = 0, $$01309 = 0, $$01410 = 0, $$01410$shrunk = 0, $$01411 = 0; + var $$01411$shrunk = 0, $$01412 = 0, $$01413 = 0, $$01413$shrunk = 0, $$01416 = 0, $$01507 = 0, $$01607 = 0, $$01834 = 0, $$0937$lcssa = 0, $$09371833 = 0, $$0938$lcssa = 0, $$09381832 = 0, $$0941$lcssa = 0, $$09411816 = 0, $$09431831 = 0, $$09441830 = 0, $$0947 = 0, $$0947$shrunk = 0, $$0948 = 0, $$0949 = 0; + var $$0950 = 0, $$0950$shrunk = 0, $$0951 = 0, $$0952 = 0, $$0952$shrunk = 0, $$0953 = 0, $$0956 = 0, $$0959 = 0, $$0959$shrunk = 0, $$0960 = 0, $$0963 = 0, $$0967 = 0, $$0971 = 0, $$0971$shrunk = 0, $$0972 = 0, $$0975 = 0, $$0978 = 0, $$0979 = 0, $$0979$shrunk = 0, $$0980 = 0; + var $$0980$shrunk = 0, $$0981 = 0, $$0984 = 0, $$0987 = 0, $$0991 = 0, $$1$lcssa = 0, $$100 = 0, $$1001409 = 0, $$101426 = 0, $$101617 = 0, $$110891852 = 0, $$11098 = 0, $$11098$ph = 0, $$111427 = 0, $$111518 = 0, $$111618 = 0, $$11198 = 0, $$11204 = 0, $$11204$ph = 0, $$11310 = 0; + var $$11310$ph = 0, $$11417 = 0, $$11508 = 0, $$11608 = 0, $$11818 = 0, $$121428 = 0, $$121428$ph = 0, $$121519 = 0, $$121619 = 0, $$121619$ph = 0, $$13 = 0, $$131004 = 0, $$131110 = 0, $$131216 = 0, $$131322 = 0, $$131429 = 0, $$131520 = 0, $$131620 = 0, $$14 = 0, $$141005 = 0; + var $$141111 = 0, $$141217 = 0, $$141323 = 0, $$141430 = 0, $$141521 = 0, $$141621 = 0, $$15 = 0, $$151006 = 0, $$151112 = 0, $$151218 = 0, $$151324 = 0, $$151431 = 0, $$151522 = 0, $$151622 = 0, $$16 = 0, $$161007 = 0, $$161113 = 0, $$161113$ph = 0, $$161219 = 0, $$161325 = 0; + var $$161432 = 0, $$161523 = 0, $$161623 = 0, $$17 = 0, $$17$ph = 0, $$171008 = 0, $$171008$ph = 0, $$171114 = 0, $$171220 = 0, $$171220$ph = 0, $$171326 = 0, $$171326$ph = 0, $$171433 = 0, $$171524 = 0, $$171624 = 0, $$1753 = 0, $$1754 = 0, $$18 = 0, $$181009 = 0, $$181115 = 0; + var $$181221 = 0, $$181327 = 0, $$181434 = 0, $$181525 = 0, $$181625 = 0, $$19 = 0, $$191010 = 0, $$191116 = 0, $$191222 = 0, $$191328 = 0, $$191435 = 0, $$191526 = 0, $$191626 = 0, $$1939$lcssa = 0, $$19391817 = 0, $$19421823 = 0, $$1945$lcssa = 0, $$19451815 = 0, $$1954 = 0, $$1957 = 0; + var $$1961 = 0, $$1961$ = 0, $$1964 = 0, $$1968 = 0, $$1973 = 0, $$1976 = 0, $$1982 = 0, $$1985 = 0, $$1988 = 0, $$1988$ph = 0, $$1992 = 0, $$1992$ph = 0, $$2$lcssa = 0, $$20 = 0, $$201011 = 0, $$201117 = 0, $$201223 = 0, $$201329 = 0, $$201436 = 0, $$201527 = 0; + var $$201627 = 0, $$21 = 0, $$21099 = 0, $$211012 = 0, $$211118 = 0, $$211224 = 0, $$211330 = 0, $$211437 = 0, $$211437$ph = 0, $$211528 = 0, $$211628 = 0, $$211628$ph = 0, $$21196 = 0, $$21199$lcssa = 0, $$211991845 = 0, $$21205 = 0, $$21311 = 0, $$21418 = 0, $$21509 = 0, $$21609 = 0; + var $$21825 = 0, $$22 = 0, $$221013 = 0, $$221119 = 0, $$221225 = 0, $$221331 = 0, $$221438 = 0, $$221529 = 0, $$221629 = 0, $$23 = 0, $$231014 = 0, $$231120 = 0, $$231226 = 0, $$231332 = 0, $$231439 = 0, $$231530 = 0, $$231630 = 0, $$24 = 0, $$241015 = 0, $$241121 = 0; + var $$241227 = 0, $$241333 = 0, $$241440 = 0, $$241531 = 0, $$241631 = 0, $$25 = 0, $$251016 = 0, $$251122 = 0, $$251122$ph = 0, $$251228 = 0, $$251334 = 0, $$251441 = 0, $$251532 = 0, $$251632 = 0, $$26 = 0, $$26$ph = 0, $$261017 = 0, $$261017$ph = 0, $$261123 = 0, $$261229 = 0; + var $$261229$ph = 0, $$261335 = 0, $$261335$ph = 0, $$261442 = 0, $$261533 = 0, $$261633 = 0, $$27 = 0, $$271018 = 0, $$271124 = 0, $$271230 = 0, $$271336 = 0, $$271443 = 0, $$271534 = 0, $$271634 = 0, $$28 = 0, $$281019 = 0, $$281125 = 0, $$281231 = 0, $$281337 = 0, $$281444 = 0; + var $$281535 = 0, $$281635 = 0, $$29 = 0, $$291020 = 0, $$291126 = 0, $$291232 = 0, $$291338 = 0, $$291445 = 0, $$291536 = 0, $$291636 = 0, $$2940$lcssa = 0, $$29401824 = 0, $$2946$lcssa = 0, $$29461822 = 0, $$2955 = 0, $$2958 = 0, $$2965 = 0, $$2969 = 0, $$2974 = 0, $$2977 = 0; + var $$2983 = 0, $$2986 = 0, $$2989 = 0, $$2993 = 0, $$30 = 0, $$301021 = 0, $$301127 = 0, $$301233 = 0, $$301339 = 0, $$301446 = 0, $$301537 = 0, $$301637 = 0, $$31 = 0, $$31100$v = 0, $$311022 = 0, $$311128 = 0, $$311234 = 0, $$311340 = 0, $$311447 = 0, $$311538 = 0; + var $$311638 = 0, $$31200 = 0, $$31206 = 0, $$31206$ph = 0, $$31312 = 0, $$31312$ph = 0, $$31419 = 0, $$31419$ph = 0, $$31610 = 0, $$31610$ph = 0, $$32 = 0, $$321023 = 0, $$321129 = 0, $$321235 = 0, $$321341 = 0, $$321448 = 0, $$321448$ph = 0, $$321539 = 0, $$321639 = 0, $$321639$ph = 0; + var $$33 = 0, $$331024 = 0, $$331130 = 0, $$331236 = 0, $$331342 = 0, $$331449 = 0, $$331540 = 0, $$331640 = 0, $$34 = 0, $$341025 = 0, $$341131 = 0, $$341237 = 0, $$341343 = 0, $$341450 = 0, $$341541 = 0, $$341641 = 0, $$35 = 0, $$351026 = 0, $$351132 = 0, $$351238 = 0; + var $$351344 = 0, $$351451 = 0, $$351542 = 0, $$351642 = 0, $$36 = 0, $$361027 = 0, $$361027$ph = 0, $$361133 = 0, $$361133$ph = 0, $$361239 = 0, $$361345 = 0, $$361452 = 0, $$361543 = 0, $$361643 = 0, $$37 = 0, $$37$ph = 0, $$371028 = 0, $$371134 = 0, $$371240 = 0, $$371240$ph = 0; + var $$371346 = 0, $$371346$ph = 0, $$371453 = 0, $$371453$ph = 0, $$371544 = 0, $$371644 = 0, $$371644$ph = 0, $$38 = 0, $$381029 = 0, $$381135 = 0, $$381241 = 0, $$381347 = 0, $$381454 = 0, $$381545 = 0, $$381645 = 0, $$39 = 0, $$391030 = 0, $$391136 = 0, $$391242 = 0, $$391348 = 0; + var $$391455 = 0, $$391546 = 0, $$391646 = 0, $$3966 = 0, $$3970 = 0, $$3990 = 0, $$3990$ph = 0, $$3994 = 0, $$3994$ph = 0, $$40 = 0, $$401031 = 0, $$401137 = 0, $$401243 = 0, $$401349 = 0, $$401456 = 0, $$401547 = 0, $$401647 = 0, $$41 = 0, $$411032 = 0, $$411032$ph = 0; + var $$411138 = 0, $$411138$ph = 0, $$411244 = 0, $$411350 = 0, $$411457 = 0, $$411548 = 0, $$411648 = 0, $$41201 = 0, $$41420 = 0, $$41511 = 0, $$41611 = 0, $$42 = 0, $$42$ph = 0, $$421033 = 0, $$421139 = 0, $$421245 = 0, $$421245$ph = 0, $$421351 = 0, $$421351$ph = 0, $$421458 = 0; + var $$421549 = 0, $$421649 = 0, $$43 = 0, $$431034 = 0, $$431140 = 0, $$431246 = 0, $$431352 = 0, $$431459 = 0, $$431550 = 0, $$431650 = 0, $$44 = 0, $$441035 = 0, $$441141 = 0, $$441247 = 0, $$441353 = 0, $$441460 = 0, $$441460$ph = 0, $$441551 = 0, $$441651 = 0, $$441651$ph = 0; + var $$45 = 0, $$451036 = 0, $$451142 = 0, $$451248 = 0, $$451354 = 0, $$451461 = 0, $$451552 = 0, $$451652 = 0, $$46 = 0, $$461037 = 0, $$461143 = 0, $$461249 = 0, $$461355 = 0, $$461462 = 0, $$461553 = 0, $$461653 = 0, $$47 = 0, $$471038 = 0, $$471144 = 0, $$471250 = 0; + var $$471356 = 0, $$471463 = 0, $$471554 = 0, $$471654 = 0, $$48 = 0, $$481039 = 0, $$481039$ph = 0, $$481145 = 0, $$481145$ph = 0, $$481251 = 0, $$481357 = 0, $$481464 = 0, $$481555 = 0, $$481655 = 0, $$49 = 0, $$49$ph = 0, $$491040 = 0, $$491146 = 0, $$491252 = 0, $$491252$ph = 0; + var $$491358 = 0, $$491358$ph = 0, $$491465 = 0, $$491465$ph = 0, $$491556 = 0, $$491656 = 0, $$491656$ph = 0, $$5 = 0, $$50 = 0, $$501041 = 0, $$501147 = 0, $$501253 = 0, $$501359 = 0, $$501466 = 0, $$501557 = 0, $$501657 = 0, $$51 = 0, $$51102 = 0, $$511042 = 0, $$511148 = 0; + var $$511254 = 0, $$511360 = 0, $$511467 = 0, $$511558 = 0, $$511658 = 0, $$51208 = 0, $$51314 = 0, $$51512 = 0, $$52 = 0, $$521043 = 0, $$521043$ph = 0, $$521149 = 0, $$521255 = 0, $$521361 = 0, $$521468 = 0, $$521559 = 0, $$521659 = 0, $$53 = 0, $$531044 = 0, $$531150 = 0; + var $$531150$ph = 0, $$531256 = 0, $$531362 = 0, $$531469 = 0, $$531560 = 0, $$531660 = 0, $$54 = 0, $$54$ph = 0, $$541045 = 0, $$541151 = 0, $$541257 = 0, $$541257$ph = 0, $$541363 = 0, $$541363$ph = 0, $$541470$ph = 0, $$541561 = 0, $$541661$lcssa = 0, $$541661$ph = 0, $$5416611868 = 0, $$55 = 0; + var $$551046 = 0, $$551152 = 0, $$551258 = 0, $$551364 = 0, $$551471 = 0, $$551562 = 0, $$551662 = 0, $$56 = 0, $$561047 = 0, $$561153 = 0, $$561259 = 0, $$561365 = 0, $$561472 = 0, $$561563 = 0, $$561663 = 0, $$57 = 0, $$571048$ph = 0, $$571154 = 0, $$571260 = 0, $$571366 = 0; + var $$571473 = 0, $$571473$ph = 0, $$571564 = 0, $$571664 = 0, $$571664$ph = 0, $$58 = 0, $$581049 = 0, $$581155$lcssa = 0, $$581155$ph = 0, $$5811551871 = 0, $$581261 = 0, $$581367 = 0, $$581474 = 0, $$581565$lcssa = 0, $$581565$ph = 0, $$5815651869 = 0, $$581665 = 0, $$59$lcssa = 0, $$59$ph = 0, $$591050 = 0; + var $$591156 = 0, $$591262$ph = 0, $$591368$lcssa = 0, $$591368$ph = 0, $$5913681870 = 0, $$591475 = 0, $$591566 = 0, $$591666 = 0, $$591872 = 0, $$5996 = 0, $$6 = 0, $$60 = 0, $$601051 = 0, $$601051$ph = 0, $$601157 = 0, $$601263 = 0, $$601369 = 0, $$601476 = 0, $$601567 = 0, $$61 = 0; + var $$61103 = 0, $$611052 = 0, $$611158 = 0, $$611158$ph = 0, $$611264 = 0, $$611370 = 0, $$611477 = 0, $$611568 = 0, $$611668 = 0, $$61209 = 0, $$61315 = 0, $$61513 = 0, $$62 = 0, $$62$ph = 0, $$621053 = 0, $$621159 = 0, $$621265 = 0, $$621265$ph = 0, $$621371 = 0, $$621371$ph = 0; + var $$621478 = 0, $$621569 = 0, $$621669 = 0, $$63 = 0, $$631054 = 0, $$631266 = 0, $$631372 = 0, $$631479 = 0, $$631479$ph = 0, $$631570 = 0, $$631670 = 0, $$64 = 0, $$641055 = 0, $$641161 = 0, $$641267 = 0, $$641373 = 0, $$641480 = 0, $$641571 = 0, $$641671 = 0, $$641671$ph = 0; + var $$65 = 0, $$651056 = 0, $$651162 = 0, $$651268 = 0, $$651374 = 0, $$651481 = 0, $$651572 = 0, $$651672 = 0, $$66 = 0, $$661057 = 0, $$661057$ph = 0, $$661163 = 0, $$661269 = 0, $$661375 = 0, $$661482 = 0, $$661673 = 0, $$671058 = 0, $$671164 = 0, $$671164$ph = 0, $$671270 = 0; + var $$671483 = 0, $$671574 = 0, $$671674 = 0, $$68 = 0, $$681059 = 0, $$681165 = 0, $$681271 = 0, $$681271$ph = 0, $$681377 = 0, $$681484 = 0, $$681484$ph = 0, $$681575 = 0, $$681675 = 0, $$69 = 0, $$691060 = 0, $$691166 = 0, $$691272 = 0, $$691378 = 0, $$691485 = 0, $$691576 = 0; + var $$691676 = 0, $$691676$ph = 0, $$6997 = 0, $$7 = 0, $$70 = 0, $$701061 = 0, $$701167 = 0, $$701273 = 0, $$701379 = 0, $$701486 = 0, $$701577 = 0, $$701677 = 0, $$71 = 0, $$71$ph = 0, $$71104 = 0, $$711062 = 0, $$711062$ph = 0, $$711168 = 0, $$711274 = 0, $$711380 = 0; + var $$711380$ph = 0, $$711487 = 0, $$711578 = 0, $$711678 = 0, $$71210 = 0, $$71316 = 0, $$71514 = 0, $$72 = 0, $$721063 = 0, $$721169 = 0, $$721169$ph = 0, $$721275 = 0, $$721381 = 0, $$721488 = 0, $$721488$ph = 0, $$721579 = 0, $$721679 = 0, $$73 = 0, $$731064 = 0, $$731170 = 0; + var $$731276 = 0, $$731276$ph = 0, $$731382 = 0, $$731489 = 0, $$731580 = 0, $$731680 = 0, $$731680$ph = 0, $$74 = 0, $$741065 = 0, $$741065$ph = 0, $$741171 = 0, $$741277 = 0, $$741383 = 0, $$741490 = 0, $$741581 = 0, $$741681 = 0, $$75 = 0, $$751066 = 0, $$751172 = 0, $$751278 = 0; + var $$751384 = 0, $$751491 = 0, $$751582 = 0, $$751682 = 0, $$76 = 0, $$76$ph = 0, $$761067 = 0, $$761173 = 0, $$761173$ph = 0, $$761279 = 0, $$761279$ph = 0, $$761385 = 0, $$761385$ph = 0, $$761492 = 0, $$761583 = 0, $$761683 = 0, $$77 = 0, $$771068 = 0, $$771174 = 0, $$771280 = 0; + var $$771386 = 0, $$771584 = 0, $$771684 = 0, $$78 = 0, $$781069 = 0, $$781175 = 0, $$781281 = 0, $$781387 = 0, $$781585 = 0, $$781685 = 0, $$79 = 0, $$791070 = 0, $$791176 = 0, $$791282 = 0, $$791388 = 0, $$791586 = 0, $$791686 = 0, $$7998 = 0, $$8 = 0, $$8$ph = 0; + var $$80 = 0, $$80$ph = 0, $$801071 = 0, $$801177 = 0, $$801283 = 0, $$801389 = 0, $$801389$ph = 0, $$801496 = 0, $$801587 = 0, $$801687 = 0, $$81 = 0, $$81105 = 0, $$81105$ph = 0, $$811178 = 0, $$811284 = 0, $$811390 = 0, $$811497 = 0, $$811588 = 0, $$81211 = 0, $$81211$ph = 0; + var $$81317 = 0, $$81317$ph = 0, $$81424 = 0, $$81515 = 0, $$81615 = 0, $$82 = 0, $$821179 = 0, $$821285 = 0, $$821391 = 0, $$821498 = 0, $$821589 = 0, $$83 = 0, $$831180 = 0, $$831392 = 0, $$831499 = 0, $$831590 = 0, $$84 = 0, $$841075 = 0, $$841393 = 0, $$841500 = 0; + var $$841500$ph = 0, $$841591 = 0, $$841691 = 0, $$85 = 0, $$851076 = 0, $$851394 = 0, $$851501 = 0, $$851592 = 0, $$851692 = 0, $$86 = 0, $$861077 = 0, $$861289 = 0, $$861395 = 0, $$861502 = 0, $$861693 = 0, $$871078 = 0, $$871184 = 0, $$871290 = 0, $$871503 = 0, $$871694 = 0; + var $$881079 = 0, $$881079$ph = 0, $$881185 = 0, $$881291 = 0, $$881504 = 0, $$881595 = 0, $$881695 = 0, $$881695$ph = 0, $$891080 = 0, $$891186 = 0, $$891292 = 0, $$891505 = 0, $$891596 = 0, $$891696 = 0, $$8999 = 0, $$8999$ph = 0, $$9 = 0, $$90 = 0, $$901081 = 0, $$901187 = 0; + var $$901187$ph = 0, $$901293 = 0, $$901293$ph = 0, $$901399 = 0, $$901506 = 0, $$901597 = 0, $$901697 = 0, $$91 = 0, $$91000 = 0, $$91106 = 0, $$911082 = 0, $$911188 = 0, $$911294 = 0, $$911400 = 0, $$911598 = 0, $$911698 = 0, $$91212 = 0, $$91318 = 0, $$91425 = 0, $$91616 = 0; + var $$92 = 0, $$921083 = 0, $$921189 = 0, $$921295 = 0, $$921401 = 0, $$921599 = 0, $$921699 = 0, $$93 = 0, $$931084 = 0, $$931190 = 0, $$931296 = 0, $$931402 = 0, $$931600 = 0, $$931700 = 0, $$94 = 0, $$94$ph = 0, $$941085 = 0, $$941191 = 0, $$941297 = 0, $$941403 = 0; + var $$941403$ph = 0, $$941601 = 0, $$941701 = 0, $$95 = 0, $$951192 = 0, $$951298 = 0, $$951404 = 0, $$951602 = 0, $$96 = 0, $$961193 = 0, $$961299 = 0, $$961405 = 0, $$961603 = 0, $$97 = 0, $$971406 = 0, $$971604 = 0, $$98 = 0, $$981407 = 0, $$981605 = 0, $$99 = 0; + var $$991408 = 0, $$991606 = 0, $$lcssa1778 = 0, $$lcssa1779 = 0, $$lcssa1799 = 0, $$lcssa1802 = 0, $$not = 0, $$not1747 = 0, $$sink12 = 0, $$sink13 = 0, $$sink16 = 0, $$sink17 = 0, $$sink1705 = 0, $$sink1710 = 0, $$sink1713 = 0, $$sink1716 = 0, $$sink1719 = 0, $$sink1722 = 0, $$sink1729 = 0, $$sink1732 = 0; + var $$sink1736 = 0, $$sink1739 = 0, $$sink1743 = 0, $$sink1746 = 0, $$sink1750 = 0, $$sink3 = 0, $$sink3$shrunk = 0, $$sink30 = 0, $$sink9 = 0, $$sink9$shrunk = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; + var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; + var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; + var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; + var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; + var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; + var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; + var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; + var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0; + var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0; + var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0; + var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; + var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; + var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; + var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; + var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; + var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0; + var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0; + var $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0; + var $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0; + var $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0; + var $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; + var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; + var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; + var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; + var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; + var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; + var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; + var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; + var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; + var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; + var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; + var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; + var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; + var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; + var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; + var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; + var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; + var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; + var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; + var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; + var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; + var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $exitcond = 0, $not$ = 0, $not$1755 = 0, $or$cond = 0, $or$cond1702 = 0, $or$cond1752 = 0, $or$cond24 = 0, $or$cond29 = 0, $scevgep = 0; + var $scevgep1947 = 0, $scevgep1948 = 0, $scevgep1955 = 0, $scevgep1957 = 0, $scevgep1959 = 0, $scevgep19611962 = 0, $trunc = 0, $trunc$clear = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $7 = sp + 64|0; + $8 = sp; + $9 = HEAP32[$2>>2]|0; + $10 = (($1) + ($9)|0); + $11 = HEAP32[$5>>2]|0; + $12 = (($4) + ($11)|0); + $13 = $6 & 4; + $14 = ($13|0)!=(0); + $15 = $4; + $16 = $3; + $17 = $16 ^ -1; + $18 = (($15) + ($17))|0; + $19 = (($18) + ($11))|0; + $$1753 = $14 ? -1 : $19; + $20 = (($$1753) + 1)|0; + $21 = $20 & $$1753; + $22 = ($21|0)!=(0); + $23 = ($4>>>0)<($3>>>0); + $or$cond1702 = $23 | $22; + if ($or$cond1702) { + HEAP32[$5>>2] = 0; + HEAP32[$2>>2] = 0; + $$0951 = -3; + STACKTOP = sp;return ($$0951|0); + } + $24 = ((($0)) + 4|0); + $25 = HEAP32[$24>>2]|0; + $26 = ((($0)) + 56|0); + $27 = HEAP32[$26>>2]|0; + $28 = ((($0)) + 32|0); + $29 = HEAP32[$28>>2]|0; + $30 = ((($0)) + 36|0); + $31 = HEAP32[$30>>2]|0; + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + $34 = ((($0)) + 60|0); + $35 = HEAP32[$34>>2]|0; + $36 = HEAP32[$0>>2]|0; + L5: do { + switch ($36|0) { + case 0: { + $37 = ((($0)) + 12|0); + HEAP32[$37>>2] = 0; + $38 = ((($0)) + 8|0); + HEAP32[$38>>2] = 0; + $39 = ((($0)) + 28|0); + HEAP32[$39>>2] = 1; + $40 = ((($0)) + 16|0); + HEAP32[$40>>2] = 1; + $41 = $6 & 1; + $42 = ($41|0)==(0); + if ($42) { + $$01416 = $35;$$01607 = $4;$$41511 = $1;$$5 = 0;$$51102 = 0;$$51208 = 0;$$51314 = 0;$$5996 = 0; + label = 14; + } else { + $43 = ($9|0)<(1); + if ($43) { + $$01097 = 0;$$01203 = 0;$$01309 = 0;$$0987 = 0;$$0991 = 0; + label = 6; + } else { + $$11098$ph = 0;$$11204$ph = 0;$$11310$ph = 0;$$1988$ph = 0;$$1992$ph = 0; + label = 8; + } + } + break; + } + case 1: { + $46 = ($9|0)>(0); + if ($46) { + $$11098$ph = $31;$$11204$ph = $33;$$11310$ph = $27;$$1988$ph = $25;$$1992$ph = $29; + label = 8; + } else { + $$01097 = $31;$$01203 = $33;$$01309 = $27;$$0987 = $25;$$0991 = $29; + label = 6; + } + break; + } + case 2: { + $53 = ($9|0)>(0); + if ($53) { + $$31206$ph = $33;$$31312$ph = $27;$$3990$ph = $25;$$3994$ph = $29;$$sink1705 = $1; + label = 12; + } else { + $$11508 = $1;$$21099 = $31;$$21205 = $33;$$21311 = $27;$$2989 = $25;$$2993 = $29; + label = 10; + } + break; + } + case 36: { + $$0960 = -1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 36; + label = 243; + break; + } + case 3: { + $75 = ($9|0)>(0); + if ($75) { + $$31419$ph = $35;$$31610$ph = $4;$$8$ph = $25;$$81105$ph = $31;$$81211$ph = $33;$$81317$ph = $27;$$8999$ph = $29;$$sink1710 = $1; + label = 18; + } else { + $$21418 = $35;$$21609 = $4;$$61513 = $1;$$7 = $25;$$71104 = $31;$$71210 = $33;$$71316 = $27;$$7998 = $29; + label = 16; + } + break; + } + case 5: { + $90 = ($9|0)>(0); + if ($90) { + $91 = ((($1)) + 1|0); + $92 = HEAP8[$1>>0]|0; + $93 = $92&255; + $$01412 = $93;$$111518 = $91; + } else { + $88 = $6 & 2; + $89 = ($88|0)==(0); + if ($89) { + $$01412 = 0;$$111518 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 5; + label = 243; + break L5; + } + } + $94 = $$01412 << $25; + $95 = $94 | $27; + $96 = (($25) + 8)|0; + $$121519 = $$111518;$$13 = $96;$$131004 = $29;$$131216 = $33;$$131322 = $95;$$81424 = $35;$$81615 = $4; + label = 25; + break; + } + case 6: { + $106 = ($9|0)>(0); + if ($106) { + $$121428$ph = $35;$$121619$ph = $4;$$161113$ph = $31;$$17$ph = $25;$$171008$ph = $29;$$171220$ph = $33;$$171326$ph = $27;$$sink1713 = $1; + label = 32; + } else { + $$111427 = $35;$$111618 = $4;$$151112 = $31;$$151522 = $1;$$16 = $25;$$161007 = $29;$$161219 = $33;$$161325 = $27; + label = 30; + } + break; + } + case 7: { + $120 = ($9|0)>(0); + if ($120) { + $121 = ((($1)) + 1|0); + $122 = HEAP8[$1>>0]|0; + $$151431 = $35;$$151622 = $4;$$191116 = $31;$$191526 = $121;$$20 = $25;$$201011 = $29;$$201223 = $33;$$201329 = $27;$$sink12 = $122; + label = 39; + } else { + $$141430 = $35;$$141621 = $4;$$181115 = $31;$$181525 = $1;$$19 = $25;$$191010 = $29;$$191222 = $33;$$191328 = $27; + label = 36; + } + break; + } + case 39: { + $$171433 = $35;$$171624 = $4;$$211118 = $31;$$211528 = $1;$$22 = $25;$$221013 = $29;$$221225 = $33;$$221331 = $27; + label = 43; + break; + } + case 51: { + $152 = ($9|0)>(0); + if ($152) { + $$211437$ph = $35;$$211628$ph = $4;$$251122$ph = $31;$$26$ph = $25;$$261017$ph = $29;$$261229$ph = $33;$$261335$ph = $27;$$sink1716 = $1; + label = 49; + } else { + $$201436 = $35;$$201627 = $4;$$241121 = $31;$$241531 = $1;$$25 = $25;$$251016 = $29;$$251228 = $33;$$251334 = $27; + label = 47; + } + break; + } + case 52: { + $$231439 = $35;$$231630 = $4;$$271018 = $29;$$271124 = $31;$$271534 = $1;$$28 = $25;$$281231 = $33;$$281337 = $27; + label = 52; + break; + } + case 9: { + $$251441 = $35;$$251632 = $4;$$291020 = $29;$$291126 = $31;$$291536 = $1;$$30 = $25;$$301233 = $33;$$301339 = $27; + label = 55; + break; + } + case 38: { + $$261442 = $35;$$261633 = $4;$$301021 = $29;$$301127 = $31;$$301537 = $1;$$31 = $25;$$311234 = $33;$$311340 = $27; + label = 56; + break; + } + case 40: { + $$271443 = $35;$$271634 = $4;$$311022 = $29;$$311128 = $31;$$311538 = $1;$$32 = $25;$$321235 = $33;$$321341 = $27; + label = 58; + break; + } + case 10: { + $$281444 = $35;$$281635 = $4;$$321023 = $29;$$321129 = $31;$$321539 = $1;$$33 = $25;$$331236 = $33;$$331342 = $27; + label = 60; + break; + } + case 11: { + $193 = ($9|0)>(0); + if ($193) { + $$321448$ph = $35;$$321639$ph = $4;$$361027$ph = $29;$$361133$ph = $31;$$37$ph = $25;$$371240$ph = $33;$$371346$ph = $27;$$sink1719 = $1; + label = 66; + } else { + $$311447 = $35;$$311638 = $4;$$351026 = $29;$$351132 = $31;$$351542 = $1;$$36 = $25;$$361239 = $33;$$361345 = $27; + label = 64; + } + break; + } + case 14: { + $224 = ($9|0)>(0); + if ($224) { + $$371453$ph = $35;$$371644$ph = $4;$$411032$ph = $29;$$411138$ph = $31;$$42$ph = $25;$$421245$ph = $33;$$421351$ph = $27;$$sink1722 = $1; + label = 75; + } else { + $$361452 = $35;$$361643 = $4;$$401031 = $29;$$401137 = $31;$$401547 = $1;$$41 = $25;$$411244 = $33;$$411350 = $27; + label = 73; + } + break; + } + case 35: { + $$401456 = $35;$$401647 = $4;$$441035 = $29;$$441141 = $31;$$441551 = $1;$$45 = $25;$$451248 = $33;$$451354 = $27; + label = 86; + break; + } + case 16: { + $452 = ($9|0)>(0); + if ($452) { + $$441460$ph = $35;$$441651$ph = $4;$$481039$ph = $29;$$481145$ph = $31;$$49$ph = $25;$$491252$ph = $33;$$491358$ph = $27;$$sink1729 = $1; + label = 116; + } else { + $$431459 = $35;$$431650 = $4;$$471038 = $29;$$471144 = $31;$$471554 = $1;$$48 = $25;$$481251 = $33;$$481357 = $27; + label = 114; + } + break; + } + case 17: { + $$461462 = $35;$$461653 = $4;$$491040 = $29;$$501147 = $31;$$501557 = $1;$$51 = $25;$$511254 = $33;$$511360 = $27; + label = 125; + break; + } + case 18: { + $503 = ($9|0)>(0); + if ($503) { + $$491465$ph = $35;$$491656$ph = $4;$$521043$ph = $29;$$531150$ph = $31;$$54$ph = $25;$$541257$ph = $33;$$541363$ph = $27;$$sink1732 = $1; + label = 130; + } else { + $$481464 = $35;$$481655 = $4;$$511042 = $29;$$521149 = $31;$$521559 = $1;$$53 = $25;$$531256 = $33;$$531362 = $27; + label = 128; + } + break; + } + case 21: { + $$511467 = $35;$$511658 = $4;$$541045 = $29;$$551152 = $31;$$551562 = $1;$$56 = $25;$$561259 = $33;$$561365 = $27; + label = 136; + break; + } + case 23: { + $572 = ($9|0)>(0); + if ($572) { + $$571473$ph = $35;$$571664$ph = $4;$$601051$ph = $29;$$611158$ph = $31;$$62$ph = $25;$$621265$ph = $33;$$621371$ph = $27;$$sink1736 = $1; + label = 153; + } else { + $$561472 = $35;$$561663 = $4;$$591050 = $29;$$601157 = $31;$$601567 = $1;$$61 = $25;$$611264 = $33;$$611370 = $27; + label = 151; + } + break; + } + case 24: { + $$591475 = $35;$$591666 = $4;$$621053 = $29;$$621159 = $31;$$631570 = $1;$$64 = $25;$$641267 = $33;$$641373 = $27; + label = 160; + break; + } + case 25: { + $696 = ($9|0)>(0); + if ($696) { + $$631479$ph = $35;$$641671$ph = $4;$$661057$ph = $29;$$671164$ph = $31;$$681271$ph = $33;$$71$ph = $25;$$711380$ph = $27;$$sink1739 = $1; + label = 182; + } else { + $$621478 = $35;$$631670 = $4;$$651056 = $29;$$661163 = $31;$$671270 = $33;$$691576 = $1;$$70 = $25;$$701379 = $27; + label = 180; + } + break; + } + case 26: { + $737 = ($9|0)>(0); + if ($737) { + $$681484$ph = $35;$$691676$ph = $4;$$711062$ph = $29;$$721169$ph = $31;$$731276$ph = $33;$$76$ph = $25;$$761385$ph = $27;$$sink1743 = $1; + label = 195; + } else { + $$671483 = $35;$$681675 = $4;$$701061 = $29;$$711168 = $31;$$721275 = $33;$$741581 = $1;$$75 = $25;$$751384 = $27; + label = 193; + } + break; + } + case 27: { + $784 = ($9|0)>(0); + if ($784) { + $$721488$ph = $35;$$731680$ph = $4;$$741065$ph = $29;$$761173$ph = $31;$$761279$ph = $33;$$80$ph = $25;$$801389$ph = $27;$$sink1746 = $1; + label = 206; + } else { + $$711487 = $35;$$721679 = $4;$$731064 = $29;$$751172 = $31;$$751278 = $33;$$781585 = $1;$$79 = $25;$$791388 = $27; + label = 204; + } + break; + } + case 37: { + $$731489 = $35;$$761683 = $4;$$771068 = $29;$$791176 = $31;$$791282 = $33;$$821589 = $1;$$83 = $25;$$831392 = $27; + label = 210; + break; + } + case 53: { + $$751491 = $35;$$781685 = $4;$$791070 = $29;$$811178 = $31;$$811284 = $33;$$841591 = $1;$$85 = $25;$$851394 = $27; + label = 213; + break; + } + case 32: { + $842 = ($9|0)>(0); + if ($842) { + $843 = ((($1)) + 1|0); + $844 = HEAP8[$1>>0]|0; + $845 = $844&255; + $$0949 = $845;$$881595 = $843; + } else { + $840 = $6 & 2; + $841 = ($840|0)==(0); + if ($841) { + $$0949 = 0;$$881595 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 32; + label = 243; + break L5; + } + } + $846 = $$0949 << $25; + $847 = $846 | $27; + $848 = (($25) + 8)|0; + $$801496 = $35;$$841075 = $29;$$841691 = $4;$$861289 = $33;$$891596 = $$881595;$$90 = $848;$$901399 = $847; + label = 226; + break; + } + case 41: { + $858 = ($9|0)>(0); + if ($858) { + $$841500$ph = $35;$$881079$ph = $29;$$881695$ph = $4;$$901187$ph = $31;$$901293$ph = $33;$$94$ph = $25;$$941403$ph = $27;$$sink1750 = $1; + label = 233; + } else { + $$831499 = $35;$$871078 = $29;$$871694 = $4;$$891186 = $31;$$891292 = $33;$$921599 = $1;$$93 = $25;$$931402 = $27; + label = 231; + } + break; + } + case 42: { + $871 = ($9|0)>(0); + if ($871) { + $872 = ((($1)) + 1|0); + $873 = HEAP8[$1>>0]|0; + $874 = $873&255; + $$0948 = $874;$$871503 = $35;$$911082 = $29;$$911698 = $4;$$931190 = $31;$$931296 = $33;$$961603 = $872;$$97 = $25;$$971406 = $27; + label = 241; + } else { + $$861502 = $35;$$901081 = $29;$$901697 = $4;$$921189 = $31;$$921295 = $33;$$951602 = $1;$$96 = $25;$$961405 = $27; + label = 237; + } + break; + } + case 34: { + $$881504 = $35;$$921083 = $29;$$921699 = $4;$$941191 = $31;$$941297 = $33;$$971604 = $1;$$98 = $25;$$981407 = $27; + label = 242; + break; + } + default: { + $$100 = $25;$$1001409 = $27;$$1961 = -1;$$901506 = $35;$$941085 = $29;$$941701 = $4;$$961193 = $31;$$961299 = $33;$$991606 = $1; + label = 244; + } + } + } while(0); + if ((label|0) == 6) { + $44 = $6 & 2; + $45 = ($44|0)==(0); + if ($45) { + $$01507 = $1;$$11098 = $$01097;$$11204 = $$01203;$$11310 = $$01309;$$1988 = $$0987;$$1992 = $$0991;$$sink3$shrunk = 0; + label = 9; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$0991;$$931700 = $4;$$951192 = $$01097;$$951298 = $$01203;$$981605 = $1;$$99 = $$0987;$$991408 = $$01309;$$sink30 = 1; + label = 243; + } + } + else if ((label|0) == 8) { + $47 = ((($1)) + 1|0); + $48 = HEAP8[$1>>0]|0; + $$01507 = $47;$$11098 = $$11098$ph;$$11204 = $$11204$ph;$$11310 = $$11310$ph;$$1988 = $$1988$ph;$$1992 = $$1992$ph;$$sink3$shrunk = $48; + label = 9; + } + if ((label|0) == 9) { + $$sink3 = $$sink3$shrunk&255; + $49 = ((($0)) + 8|0); + HEAP32[$49>>2] = $$sink3; + $50 = ($$01507>>>0)<($10>>>0); + if ($50) { + $$31206$ph = $$11204;$$31312$ph = $$11310;$$3990$ph = $$1988;$$3994$ph = $$1992;$$sink1705 = $$01507; + label = 12; + } else { + $$11508 = $$01507;$$21099 = $$11098;$$21205 = $$11204;$$21311 = $$11310;$$2989 = $$1988;$$2993 = $$1992; + label = 10; + } + } + if ((label|0) == 10) { + $51 = $6 & 2; + $52 = ($51|0)==(0); + if ($52) { + $$21509 = $$11508;$$31206 = $$21205;$$31312 = $$21311;$$3990 = $$2989;$$3994 = $$2993;$$sink9$shrunk = 0; + label = 13; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$2993;$$931700 = $4;$$951192 = $$21099;$$951298 = $$21205;$$981605 = $$11508;$$99 = $$2989;$$991408 = $$21311;$$sink30 = 2; + label = 243; + } + } + else if ((label|0) == 12) { + $54 = ((($$sink1705)) + 1|0); + $55 = HEAP8[$$sink1705>>0]|0; + $$21509 = $54;$$31206 = $$31206$ph;$$31312 = $$31312$ph;$$3990 = $$3990$ph;$$3994 = $$3994$ph;$$sink9$shrunk = $55; + label = 13; + } + if ((label|0) == 13) { + $$sink9 = $$sink9$shrunk&255; + $56 = ((($0)) + 12|0); + HEAP32[$56>>2] = $$sink9; + $57 = ((($0)) + 8|0); + $58 = HEAP32[$57>>2]|0; + $59 = $58 << 8; + $60 = $59 | $$sink9; + $61 = (($60>>>0) % 31)&-1; + $62 = $$sink9 & 32; + $63 = $61 | $62; + $64 = $58 & 15; + $65 = ($64|0)!=(8); + $not$ = ($63|0)!=(0); + $$1754 = $65 | $not$; + $66 = $58 >>> 4; + $67 = 256 << $66; + $68 = ($67>>>0)>(32768); + $69 = ($20>>>0)<($67>>>0); + $$ = $68 | $69; + $not$1755 = $14 ^ 1; + $70 = $$ & $not$1755; + $$31100$v = $70 | $$1754; + if ($$31100$v) { + $$0960 = -1;$$891505 = $35;$$931084 = $$3994;$$931700 = $4;$$951192 = 1;$$951298 = $$31206;$$981605 = $$21509;$$99 = $$3990;$$991408 = $$31312;$$sink30 = 36; + label = 243; + } else { + $$01416 = $35;$$01607 = $4;$$41511 = $$21509;$$5 = $$3990;$$51102 = 0;$$51208 = $$31206;$$51314 = $$31312;$$5996 = $$3994; + label = 14; + } + } + L46: while(1) { + switch (label|0) { + case 14: { + label = 0; + $71 = ($$5>>>0)<(3); + if ($71) { + $$11417 = $$01416;$$11608 = $$01607;$$51512 = $$41511;$$6 = $$5;$$61103 = $$51102;$$61209 = $$51208;$$61315 = $$51314;$$6997 = $$5996; + label = 15; + } else { + $$41420 = $$01416;$$41611 = $$01607;$$81515 = $$41511;$$9 = $$5;$$91000 = $$5996;$$91106 = $$51102;$$91212 = $$51208;$$91318 = $$51314; + label = 20; + } + break; + } + case 16: { + label = 0; + $73 = $6 & 2; + $74 = ($73|0)==(0); + if ($74) { + $$01413$shrunk = 0;$$31419 = $$21418;$$31610 = $$21609;$$71514 = $$61513;$$8 = $$7;$$81105 = $$71104;$$81211 = $$71210;$$81317 = $$71316;$$8999 = $$7998; + label = 19; + } else { + $$0960 = 1;$$891505 = $$21418;$$931084 = $$7998;$$931700 = $$21609;$$951192 = $$71104;$$951298 = $$71210;$$981605 = $$61513;$$99 = $$7;$$991408 = $$71316;$$sink30 = 3; + label = 243; + continue L46; + } + break; + } + case 18: { + label = 0; + $76 = ((($$sink1710)) + 1|0); + $77 = HEAP8[$$sink1710>>0]|0; + $$01413$shrunk = $77;$$31419 = $$31419$ph;$$31610 = $$31610$ph;$$71514 = $76;$$8 = $$8$ph;$$81105 = $$81105$ph;$$81211 = $$81211$ph;$$81317 = $$81317$ph;$$8999 = $$8999$ph; + label = 19; + break; + } + case 25: { + label = 0; + $97 = $$13 & 7; + $98 = $$131322 >>> $97; + $99 = (($$13) - ($97))|0; + $$131110 = 0;$$131520 = $$121519;$$14 = $99;$$141005 = $$131004;$$141217 = $$131216;$$141323 = $98;$$91425 = $$81424;$$91616 = $$81615; + label = 26; + break; + } + case 30: { + label = 0; + $104 = $6 & 2; + $105 = ($104|0)==(0); + if ($105) { + $$01411$shrunk = 0;$$121428 = $$111427;$$121619 = $$111618;$$161113 = $$151112;$$161523 = $$151522;$$17 = $$16;$$171008 = $$161007;$$171220 = $$161219;$$171326 = $$161325; + label = 33; + } else { + $$0960 = 1;$$891505 = $$111427;$$931084 = $$161007;$$931700 = $$111618;$$951192 = $$151112;$$951298 = $$161219;$$981605 = $$151522;$$99 = $$16;$$991408 = $$161325;$$sink30 = 6; + label = 243; + continue L46; + } + break; + } + case 32: { + label = 0; + $107 = ((($$sink1713)) + 1|0); + $108 = HEAP8[$$sink1713>>0]|0; + $$01411$shrunk = $108;$$121428 = $$121428$ph;$$121619 = $$121619$ph;$$161113 = $$161113$ph;$$161523 = $107;$$17 = $$17$ph;$$171008 = $$171008$ph;$$171220 = $$171220$ph;$$171326 = $$171326$ph; + label = 33; + break; + } + case 36: { + label = 0; + $118 = $6 & 2; + $119 = ($118|0)==(0); + if ($119) { + $$151431 = $$141430;$$151622 = $$141621;$$191116 = $$181115;$$191526 = $$181525;$$20 = $$19;$$201011 = $$191010;$$201223 = $$191222;$$201329 = $$191328;$$sink12 = 0; + label = 39; + continue L46; + } else { + $$0960 = 1;$$891505 = $$141430;$$931084 = $$191010;$$931700 = $$141621;$$951192 = $$181115;$$951298 = $$191222;$$981605 = $$181525;$$99 = $$19;$$991408 = $$191328;$$sink30 = 7; + label = 243; + continue L46; + } + break; + } + case 39: { + label = 0; + $$sink13 = (((($0)) + 10528|0) + ($$191116)|0); + HEAP8[$$sink13>>0] = $$sink12; + $$161432 = $$151431;$$161623 = $$151622;$$201117 = $$191116;$$201527 = $$191526;$$21 = $$20;$$211012 = $$201011;$$211224 = $$201223;$$211330 = $$201329; + label = 41; + break; + } + case 43: { + label = 0; + $$0960 = -1;$$891505 = $$171433;$$931084 = $$221013;$$931700 = $$171624;$$951192 = $$211118;$$951298 = $$221225;$$981605 = $$211528;$$99 = $$22;$$991408 = $$221331;$$sink30 = 39; + label = 243; + continue L46; + break; + } + case 47: { + label = 0; + $150 = $6 & 2; + $151 = ($150|0)==(0); + if ($151) { + $$01410$shrunk = 0;$$211437 = $$201436;$$211628 = $$201627;$$251122 = $$241121;$$251532 = $$241531;$$26 = $$25;$$261017 = $$251016;$$261229 = $$251228;$$261335 = $$251334; + label = 50; + } else { + $$0960 = 1;$$891505 = $$201436;$$931084 = $$251016;$$931700 = $$201627;$$951192 = $$241121;$$951298 = $$251228;$$981605 = $$241531;$$99 = $$25;$$991408 = $$251334;$$sink30 = 51; + label = 243; + continue L46; + } + break; + } + case 49: { + label = 0; + $153 = ((($$sink1716)) + 1|0); + $154 = HEAP8[$$sink1716>>0]|0; + $$01410$shrunk = $154;$$211437 = $$211437$ph;$$211628 = $$211628$ph;$$251122 = $$251122$ph;$$251532 = $153;$$26 = $$26$ph;$$261017 = $$261017$ph;$$261229 = $$261229$ph;$$261335 = $$261335$ph; + label = 50; + break; + } + case 52: { + label = 0; + $162 = ($$231630>>>0)<($12>>>0); + if (!($162)) { + $$0960 = 2;$$891505 = $$231439;$$931084 = $$271018;$$931700 = $$231630;$$951192 = $$271124;$$951298 = $$281231;$$981605 = $$271534;$$99 = $$28;$$991408 = $$281337;$$sink30 = 52; + label = 243; + continue L46; + } + $163 = $$271018&255; + $164 = ((($$231630)) + 1|0); + HEAP8[$$231630>>0] = $163; + $165 = (($$271124) + -1)|0; + $$181434 = $$231439;$$181625 = $164;$$221119 = $165;$$221529 = $$271534;$$23 = $$28;$$231014 = $$271018;$$231226 = $$281231;$$231332 = $$281337; + label = 44; + break; + } + case 55: { + label = 0; + $167 = ($$251632>>>0)<($12>>>0); + if ($167) { + $$261442 = $$251441;$$261633 = $$251632;$$301021 = $$291020;$$301127 = $$291126;$$301537 = $$291536;$$31 = $$30;$$311234 = $$301233;$$311340 = $$301339; + label = 56; + continue L46; + } else { + $$0960 = 2;$$891505 = $$251441;$$931084 = $$291020;$$931700 = $$251632;$$951192 = $$291126;$$951298 = $$301233;$$981605 = $$291536;$$99 = $$30;$$991408 = $$301339;$$sink30 = 9; + label = 243; + continue L46; + } + break; + } + case 56: { + label = 0; + $168 = ($$301537>>>0)<($10>>>0); + if ($168) { + $171 = $12; + $172 = $$261633; + $173 = (($171) - ($172))|0; + $174 = $10; + $175 = $$301537; + $176 = (($174) - ($175))|0; + $177 = ($173>>>0)<($176>>>0); + $$sink17 = $177 ? $12 : $10; + $$sink16 = $177 ? $$261633 : $$301537; + $178 = $$sink17; + $179 = $$sink16; + $180 = (($178) - ($179))|0; + $181 = ($180>>>0)<($$301127>>>0); + $$$301127 = $181 ? $180 : $$301127; + _memcpy(($$261633|0),($$301537|0),($$$301127|0))|0; + $182 = (($$301537) + ($$$301127)|0); + $183 = (($$261633) + ($$$301127)|0); + $184 = (($$301127) - ($$$301127))|0; + $$241440 = $$261442;$$241631 = $183;$$281019 = $$301021;$$281125 = $184;$$281535 = $182;$$29 = $$31;$$291232 = $$311234;$$291338 = $$311340; + label = 54; + break; + } else { + $169 = $6 & 2; + $170 = ($169|0)==(0); + if ($170) { + $$271443 = $$261442;$$271634 = $$261633;$$311022 = $$301021;$$311128 = $$301127;$$311538 = $$301537;$$32 = $$31;$$321235 = $$311234;$$321341 = $$311340; + label = 58; + continue L46; + } else { + $$0960 = 1;$$891505 = $$261442;$$931084 = $$301021;$$931700 = $$261633;$$951192 = $$301127;$$951298 = $$311234;$$981605 = $$301537;$$99 = $$31;$$991408 = $$311340;$$sink30 = 38; + label = 243; + continue L46; + } + } + break; + } + case 58: { + label = 0; + $$0960 = -1;$$891505 = $$271443;$$931084 = $$311022;$$931700 = $$271634;$$951192 = $$311128;$$951298 = $$321235;$$981605 = $$311538;$$99 = $$32;$$991408 = $$321341;$$sink30 = 40; + label = 243; + continue L46; + break; + } + case 60: { + label = 0; + $$0960 = -1;$$891505 = $$281444;$$931084 = $$321023;$$931700 = $$281635;$$951192 = $$321129;$$951298 = $$331236;$$981605 = $$321539;$$99 = $$33;$$991408 = $$331342;$$sink30 = 10; + label = 243; + continue L46; + break; + } + case 64: { + label = 0; + $191 = $6 & 2; + $192 = ($191|0)==(0); + if ($192) { + $$01300$shrunk = 0;$$321448 = $$311447;$$321639 = $$311638;$$361027 = $$351026;$$361133 = $$351132;$$361543 = $$351542;$$37 = $$36;$$371240 = $$361239;$$371346 = $$361345; + label = 67; + } else { + $$0960 = 1;$$891505 = $$311447;$$931084 = $$351026;$$931700 = $$311638;$$951192 = $$351132;$$951298 = $$361239;$$981605 = $$351542;$$99 = $$36;$$991408 = $$361345;$$sink30 = 11; + label = 243; + continue L46; + } + break; + } + case 66: { + label = 0; + $194 = ((($$sink1719)) + 1|0); + $195 = HEAP8[$$sink1719>>0]|0; + $$01300$shrunk = $195;$$321448 = $$321448$ph;$$321639 = $$321639$ph;$$361027 = $$361027$ph;$$361133 = $$361133$ph;$$361543 = $194;$$37 = $$37$ph;$$371240 = $$371240$ph;$$371346 = $$371346$ph; + label = 67; + break; + } + case 73: { + label = 0; + $222 = $6 & 2; + $223 = ($222|0)==(0); + if ($223) { + $$01202$shrunk = 0;$$371453 = $$361452;$$371644 = $$361643;$$411032 = $$401031;$$411138 = $$401137;$$411548 = $$401547;$$42 = $$41;$$421245 = $$411244;$$421351 = $$411350; + label = 76; + } else { + $$0960 = 1;$$891505 = $$361452;$$931084 = $$401031;$$931700 = $$361643;$$951192 = $$401137;$$951298 = $$411244;$$981605 = $$401547;$$99 = $$41;$$991408 = $$411350;$$sink30 = 14; + label = 243; + continue L46; + } + break; + } + case 75: { + label = 0; + $225 = ((($$sink1722)) + 1|0); + $226 = HEAP8[$$sink1722>>0]|0; + $$01202$shrunk = $226;$$371453 = $$371453$ph;$$371644 = $$371644$ph;$$411032 = $$411032$ph;$$411138 = $$411138$ph;$$411548 = $225;$$42 = $$42$ph;$$421245 = $$421245$ph;$$421351 = $$421351$ph; + label = 76; + break; + } + case 86: { + label = 0; + $$0960 = -1;$$891505 = $$401456;$$931084 = $$441035;$$931700 = $$401647;$$951192 = $$441141;$$951298 = $$451248;$$981605 = $$441551;$$99 = $$45;$$991408 = $$451354;$$sink30 = 35; + label = 243; + continue L46; + break; + } + case 114: { + label = 0; + $450 = $6 & 2; + $451 = ($450|0)==(0); + if ($451) { + $$0980$shrunk = 0;$$441460 = $$431459;$$441651 = $$431650;$$481039 = $$471038;$$481145 = $$471144;$$481555 = $$471554;$$49 = $$48;$$491252 = $$481251;$$491358 = $$481357; + label = 117; + } else { + $$0960 = 1;$$891505 = $$431459;$$931084 = $$471038;$$931700 = $$431650;$$951192 = $$471144;$$951298 = $$481251;$$981605 = $$471554;$$99 = $$48;$$991408 = $$481357;$$sink30 = 16; + label = 243; + continue L46; + } + break; + } + case 116: { + label = 0; + $453 = ((($$sink1729)) + 1|0); + $454 = HEAP8[$$sink1729>>0]|0; + $$0980$shrunk = $454;$$441460 = $$441460$ph;$$441651 = $$441651$ph;$$481039 = $$481039$ph;$$481145 = $$481145$ph;$$481555 = $453;$$49 = $$49$ph;$$491252 = $$491252$ph;$$491358 = $$491358$ph; + label = 117; + break; + } + case 125: { + label = 0; + $$0960 = -1;$$891505 = $$461462;$$931084 = $$491040;$$931700 = $$461653;$$951192 = $$501147;$$951298 = $$511254;$$981605 = $$501557;$$99 = $$51;$$991408 = $$511360;$$sink30 = 17; + label = 243; + continue L46; + break; + } + case 128: { + label = 0; + $501 = $6 & 2; + $502 = ($501|0)==(0); + if ($502) { + $$0979$shrunk = 0;$$491465 = $$481464;$$491656 = $$481655;$$521043 = $$511042;$$531150 = $$521149;$$531560 = $$521559;$$54 = $$53;$$541257 = $$531256;$$541363 = $$531362; + label = 131; + } else { + $$0960 = 1;$$891505 = $$481464;$$931084 = $$511042;$$931700 = $$481655;$$951192 = $$521149;$$951298 = $$531256;$$981605 = $$521559;$$99 = $$53;$$991408 = $$531362;$$sink30 = 18; + label = 243; + continue L46; + } + break; + } + case 130: { + label = 0; + $504 = ((($$sink1732)) + 1|0); + $505 = HEAP8[$$sink1732>>0]|0; + $$0979$shrunk = $505;$$491465 = $$491465$ph;$$491656 = $$491656$ph;$$521043 = $$521043$ph;$$531150 = $$531150$ph;$$531560 = $504;$$54 = $$54$ph;$$541257 = $$541257$ph;$$541363 = $$541363$ph; + label = 131; + break; + } + case 136: { + label = 0; + $$0960 = -1;$$891505 = $$511467;$$931084 = $$541045;$$931700 = $$511658;$$951192 = $$551152;$$951298 = $$561259;$$981605 = $$551562;$$99 = $$56;$$991408 = $$561365;$$sink30 = 21; + label = 243; + continue L46; + break; + } + case 151: { + label = 0; + $570 = $6 & 2; + $571 = ($570|0)==(0); + if ($571) { + $$0971$shrunk = 0;$$571473 = $$561472;$$571664 = $$561663;$$601051 = $$591050;$$611158 = $$601157;$$611568 = $$601567;$$62 = $$61;$$621265 = $$611264;$$621371 = $$611370; + label = 154; + } else { + $$0960 = 1;$$891505 = $$561472;$$931084 = $$591050;$$931700 = $$561663;$$951192 = $$601157;$$951298 = $$611264;$$981605 = $$601567;$$99 = $$61;$$991408 = $$611370;$$sink30 = 23; + label = 243; + continue L46; + } + break; + } + case 153: { + label = 0; + $573 = ((($$sink1736)) + 1|0); + $574 = HEAP8[$$sink1736>>0]|0; + $$0971$shrunk = $574;$$571473 = $$571473$ph;$$571664 = $$571664$ph;$$601051 = $$601051$ph;$$611158 = $$611158$ph;$$611568 = $573;$$62 = $$62$ph;$$621265 = $$621265$ph;$$621371 = $$621371$ph; + label = 154; + break; + } + case 160: { + label = 0; + $610 = ($$591666>>>0)<($12>>>0); + if (!($610)) { + $$0960 = 2;$$891505 = $$591475;$$931084 = $$621053;$$931700 = $$591666;$$951192 = $$621159;$$951298 = $$641267;$$981605 = $$631570;$$99 = $$64;$$991408 = $$641373;$$sink30 = 24; + label = 243; + continue L46; + } + $611 = $$621159&255; + $612 = ((($$591666)) + 1|0); + HEAP8[$$591666>>0] = $611; + $$541470$ph = $$591475;$$541661$ph = $612;$$571048$ph = $$621053;$$581155$ph = $$621159;$$581565$ph = $$631570;$$59$ph = $$64;$$591262$ph = $$641267;$$591368$ph = $$641373; + label = 140; + break; + } + case 180: { + label = 0; + $694 = $6 & 2; + $695 = ($694|0)==(0); + if ($695) { + $$0959$shrunk = 0;$$631479 = $$621478;$$641671 = $$631670;$$661057 = $$651056;$$671164 = $$661163;$$681271 = $$671270;$$701577 = $$691576;$$71 = $$70;$$711380 = $$701379; + label = 183; + } else { + $$0960 = 1;$$891505 = $$621478;$$931084 = $$651056;$$931700 = $$631670;$$951192 = $$661163;$$951298 = $$671270;$$981605 = $$691576;$$99 = $$70;$$991408 = $$701379;$$sink30 = 25; + label = 243; + continue L46; + } + break; + } + case 182: { + label = 0; + $697 = ((($$sink1739)) + 1|0); + $698 = HEAP8[$$sink1739>>0]|0; + $$0959$shrunk = $698;$$631479 = $$631479$ph;$$641671 = $$641671$ph;$$661057 = $$661057$ph;$$671164 = $$671164$ph;$$681271 = $$681271$ph;$$701577 = $697;$$71 = $$71$ph;$$711380 = $$711380$ph; + label = 183; + break; + } + case 193: { + label = 0; + $735 = $6 & 2; + $736 = ($735|0)==(0); + if ($736) { + $$0952$shrunk = 0;$$681484 = $$671483;$$691676 = $$681675;$$711062 = $$701061;$$721169 = $$711168;$$731276 = $$721275;$$751582 = $$741581;$$76 = $$75;$$761385 = $$751384; + label = 196; + } else { + $$0960 = 1;$$891505 = $$671483;$$931084 = $$701061;$$931700 = $$681675;$$951192 = $$711168;$$951298 = $$721275;$$981605 = $$741581;$$99 = $$75;$$991408 = $$751384;$$sink30 = 26; + label = 243; + continue L46; + } + break; + } + case 195: { + label = 0; + $738 = ((($$sink1743)) + 1|0); + $739 = HEAP8[$$sink1743>>0]|0; + $$0952$shrunk = $739;$$681484 = $$681484$ph;$$691676 = $$691676$ph;$$711062 = $$711062$ph;$$721169 = $$721169$ph;$$731276 = $$731276$ph;$$751582 = $738;$$76 = $$76$ph;$$761385 = $$761385$ph; + label = 196; + break; + } + case 204: { + label = 0; + $782 = $6 & 2; + $783 = ($782|0)==(0); + if ($783) { + $$0950$shrunk = 0;$$721488 = $$711487;$$731680 = $$721679;$$741065 = $$731064;$$761173 = $$751172;$$761279 = $$751278;$$791586 = $$781585;$$80 = $$79;$$801389 = $$791388; + label = 207; + } else { + $$0960 = 1;$$891505 = $$711487;$$931084 = $$731064;$$931700 = $$721679;$$951192 = $$751172;$$951298 = $$751278;$$981605 = $$781585;$$99 = $$79;$$991408 = $$791388;$$sink30 = 27; + label = 243; + continue L46; + } + break; + } + case 206: { + label = 0; + $785 = ((($$sink1746)) + 1|0); + $786 = HEAP8[$$sink1746>>0]|0; + $$0950$shrunk = $786;$$721488 = $$721488$ph;$$731680 = $$731680$ph;$$741065 = $$741065$ph;$$761173 = $$761173$ph;$$761279 = $$761279$ph;$$791586 = $785;$$80 = $$80$ph;$$801389 = $$801389$ph; + label = 207; + break; + } + case 210: { + label = 0; + $$0960 = -1;$$891505 = $$731489;$$931084 = $$771068;$$931700 = $$761683;$$951192 = $$791176;$$951298 = $$791282;$$981605 = $$821589;$$99 = $$83;$$991408 = $$831392;$$sink30 = 37; + label = 243; + continue L46; + break; + } + case 213: { + label = 0; + $809 = ($$781685>>>0)<($12>>>0); + if (!($809)) { + $$0960 = 2;$$891505 = $$751491;$$931084 = $$791070;$$931700 = $$781685;$$951192 = $$811178;$$951298 = $$811284;$$981605 = $$841591;$$99 = $$85;$$991408 = $$851394;$$sink30 = 53; + label = 243; + continue L46; + } + $810 = (($$751491) + 1)|0; + $811 = (($$751491) - ($$791070))|0; + $812 = $811 & $$1753; + $813 = (($3) + ($812)|0); + $814 = HEAP8[$813>>0]|0; + $815 = ((($$781685)) + 1|0); + HEAP8[$$781685>>0] = $814; + $$741490 = $810;$$771684 = $815;$$781069 = $$791070;$$801177 = $$811178;$$801283 = $$811284;$$831590 = $$841591;$$84 = $$85;$$841393 = $$851394; + label = 212; + break; + } + case 226: { + label = 0; + $849 = $$90 & 7; + $850 = $$901399 >>> $849; + $851 = (($$90) - ($849))|0; + $$811497 = $$801496;$$851076 = $$841075;$$851692 = $$841691;$$871184 = 0;$$871290 = $$861289;$$901597 = $$891596;$$91 = $851;$$911400 = $850; + label = 227; + break; + } + case 231: { + label = 0; + $856 = $6 & 2; + $857 = ($856|0)==(0); + if ($857) { + $$0947$shrunk = 0;$$841500 = $$831499;$$881079 = $$871078;$$881695 = $$871694;$$901187 = $$891186;$$901293 = $$891292;$$931600 = $$921599;$$94 = $$93;$$941403 = $$931402; + label = 234; + } else { + $$0960 = 1;$$891505 = $$831499;$$931084 = $$871078;$$931700 = $$871694;$$951192 = $$891186;$$951298 = $$891292;$$981605 = $$921599;$$99 = $$93;$$991408 = $$931402;$$sink30 = 41; + label = 243; + continue L46; + } + break; + } + case 233: { + label = 0; + $859 = ((($$sink1750)) + 1|0); + $860 = HEAP8[$$sink1750>>0]|0; + $$0947$shrunk = $860;$$841500 = $$841500$ph;$$881079 = $$881079$ph;$$881695 = $$881695$ph;$$901187 = $$901187$ph;$$901293 = $$901293$ph;$$931600 = $859;$$94 = $$94$ph;$$941403 = $$941403$ph; + label = 234; + break; + } + case 237: { + label = 0; + $869 = $6 & 2; + $870 = ($869|0)==(0); + if ($870) { + $$0948 = 0;$$871503 = $$861502;$$911082 = $$901081;$$911698 = $$901697;$$931190 = $$921189;$$931296 = $$921295;$$961603 = $$951602;$$97 = $$96;$$971406 = $$961405; + label = 241; + continue L46; + } else { + $$0960 = 1;$$891505 = $$861502;$$931084 = $$901081;$$931700 = $$901697;$$951192 = $$921189;$$951298 = $$921295;$$981605 = $$951602;$$99 = $$96;$$991408 = $$961405;$$sink30 = 42; + label = 243; + continue L46; + } + break; + } + case 241: { + label = 0; + $878 = ((($0)) + 16|0); + $879 = HEAP32[$878>>2]|0; + $880 = $879 << 8; + $881 = $880 | $$0948; + HEAP32[$878>>2] = $881; + $882 = (($$931190) + 1)|0; + $$811497 = $$871503;$$851076 = $$911082;$$851692 = $$911698;$$871184 = $882;$$871290 = $$931296;$$901597 = $$961603;$$91 = $$97;$$911400 = $$971406; + label = 227; + break; + } + case 242: { + label = 0; + $$0960 = 0;$$891505 = $$881504;$$931084 = $$921083;$$931700 = $$921699;$$951192 = $$941191;$$951298 = $$941297;$$981605 = $$971604;$$99 = $$98;$$991408 = $$981407;$$sink30 = 34; + label = 243; + continue L46; + break; + } + case 243: { + label = 0; + HEAP32[$0>>2] = $$sink30; + $$100 = $$99;$$1001409 = $$991408;$$1961 = $$0960;$$901506 = $$891505;$$941085 = $$931084;$$941701 = $$931700;$$961193 = $$951192;$$961299 = $$951298;$$991606 = $$981605; + label = 244; + continue L46; + break; + } + case 244: { + label = 0; + HEAP32[$24>>2] = $$100; + HEAP32[$26>>2] = $$1001409; + HEAP32[$28>>2] = $$941085; + HEAP32[$30>>2] = $$961193; + HEAP32[$32>>2] = $$961299; + HEAP32[$34>>2] = $$901506; + $883 = $$991606; + $884 = $1; + $885 = (($883) - ($884))|0; + HEAP32[$2>>2] = $885; + $886 = $$941701; + $887 = $4; + $888 = (($886) - ($887))|0; + HEAP32[$5>>2] = $888; + $889 = $6 & 9; + $890 = ($889|0)!=(0); + $891 = ($$1961|0)>(-1); + $or$cond29 = $890 & $891; + if ($or$cond29) { + break L46; + } else { + $$0951 = $$1961; + label = 258; + break L46; + } + break; + } + } + switch (label|0) { + case 19: { + label = 0; + $$01413 = $$01413$shrunk&255; + $78 = $$01413 << $$8; + $79 = $78 | $$81317; + $80 = (($$8) + 8)|0; + $81 = ($80>>>0)<(3); + if ($81) { + $$11417 = $$31419;$$11608 = $$31610;$$51512 = $$71514;$$6 = $80;$$61103 = $$81105;$$61209 = $$81211;$$61315 = $79;$$6997 = $$8999; + label = 15; + } else { + $$41420 = $$31419;$$41611 = $$31610;$$81515 = $$71514;$$9 = $80;$$91000 = $$8999;$$91106 = $$81105;$$91212 = $$81211;$$91318 = $79; + label = 20; + } + break; + } + case 33: { + label = 0; + $$01411 = $$01411$shrunk&255; + $109 = $$01411 << $$17; + $110 = $109 | $$171326; + $111 = (($$17) + 8)|0; + $112 = ($$17>>>0)>(4294967287); + if ($112) { + $$101426 = $$121428;$$101617 = $$121619;$$141111 = $$161113;$$141521 = $$161523;$$15 = $111;$$151006 = $$171008;$$151218 = $$171220;$$151324 = $110; + label = 29; + } else { + $$131429 = $$121428;$$131620 = $$121619;$$171114 = $$161113;$$171524 = $$161523;$$18 = $111;$$181009 = $$171008;$$181221 = $$171220;$$181327 = $110; + label = 34; + } + break; + } + case 50: { + label = 0; + $$01410 = $$01410$shrunk&255; + $155 = $$01410 << $$26; + $156 = $155 | $$261335; + $157 = (($$26) + 8)|0; + $158 = ($$26>>>0)>(4294967287); + if ($158) { + $$191435 = $$211437;$$191626 = $$211628;$$231120 = $$251122;$$231530 = $$251532;$$24 = $157;$$241015 = $$261017;$$241227 = $$261229;$$241333 = $156; + label = 46; + } else { + $$221438 = $$211437;$$221629 = $$211628;$$261123 = $$251122;$$261533 = $$251532;$$27 = $157;$$271230 = $$261229;$$271336 = $156; + label = 51; + } + break; + } + case 67: { + label = 0; + $$01300 = $$01300$shrunk&255; + $196 = $$01300 << $$37; + $197 = $196 | $$371346; + $198 = (($$37) + 8)|0; + $199 = (11520 + ($$361133)|0); + $200 = HEAP8[$199>>0]|0; + $201 = $200 << 24 >> 24; + $202 = ($198>>>0)<($201>>>0); + if ($202) { + $$301446 = $$321448;$$301637 = $$321639;$$341025 = $$361027;$$341131 = $$361133;$$341541 = $$361543;$$35 = $198;$$351238 = $$371240;$$351344 = $197; + label = 63; + } else { + $$331449 = $$321448;$$331640 = $$321639;$$371028 = $$361027;$$371134 = $$361133;$$371544 = $$361543;$$38 = $198;$$381241 = $$371240;$$381347 = $197; + label = 68; + } + break; + } + case 76: { + label = 0; + $$01202 = $$01202$shrunk&255; + $227 = $$01202 << $$42; + $228 = $227 | $$421351; + $229 = (($$42) + 8)|0; + $230 = ($229>>>0)<(3); + if ($230) { + $$351451 = $$371453;$$351642 = $$371644;$$391030 = $$411032;$$391136 = $$411138;$$391546 = $$411548;$$40 = $229;$$401243 = $$421245;$$401349 = $228; + label = 72; + } else { + $$381454 = $$371453;$$381645 = $$371644;$$421033 = $$411032;$$421139 = $$411138;$$421549 = $$411548;$$43 = $229;$$431246 = $$421245;$$431352 = $228; + label = 77; + } + break; + } + case 117: { + label = 0; + $$0980 = $$0980$shrunk&255; + $455 = $$0980 << $$49; + $456 = $455 | $$491358; + $457 = (($$49) + 8)|0; + $458 = ($457>>>0)<(15); + if ($458) { + $$421458 = $$441460;$$421649 = $$441651;$$461037 = $$481039;$$461143 = $$481145;$$461553 = $$481555;$$47 = $457;$$471250 = $$491252;$$471356 = $456; + label = 108; + } else { + $$451461 = $$441460;$$451652 = $$441651;$$491146 = $$481145;$$491556 = $$481555;$$50 = $457;$$501253 = $$491252;$$501359 = $456; + label = 119; + } + break; + } + case 131: { + label = 0; + $$0979 = $$0979$shrunk&255; + $506 = $$0979 << $$54; + $507 = $506 | $$541363; + $508 = (($$54) + 8)|0; + $509 = ($508>>>0)<($$541257>>>0); + if ($509) { + $$471463 = $$491465;$$471654 = $$491656;$$501041 = $$521043;$$511148 = $$531150;$$511558 = $$531560;$$52 = $508;$$521255 = $$541257;$$521361 = $507; + label = 127; + } else { + $$501466 = $$491465;$$501657 = $$491656;$$531044 = $$521043;$$541151 = $$531150;$$541561 = $$531560;$$55 = $508;$$551258 = $$541257;$$551364 = $507; + label = 132; + } + break; + } + case 154: { + label = 0; + $$0971 = $$0971$shrunk&255; + $575 = $$0971 << $$62; + $576 = $575 | $$621371; + $577 = (($$62) + 8)|0; + $578 = ($577>>>0)<(15); + if ($578) { + $$551471 = $$571473;$$551662 = $$571664;$$581049 = $$601051;$$591156 = $$611158;$$591566 = $$611568;$$60 = $577;$$601263 = $$621265;$$601369 = $576; + label = 145; + } else { + $$581474 = $$571473;$$581665 = $$571664;$$611052 = $$601051;$$621569 = $$611568;$$63 = $577;$$631266 = $$621265;$$631372 = $576; + label = 156; + } + break; + } + case 183: { + label = 0; + $$0959 = $$0959$shrunk&255; + $699 = $$0959 << $$71; + $700 = $699 | $$711380; + $701 = (($$71) + 8)|0; + $702 = ($701>>>0)<($$681271>>>0); + if ($702) { + $$611477 = $$631479;$$621669 = $$641671;$$641055 = $$661057;$$651162 = $$671164;$$661269 = $$681271;$$681575 = $$701577;$$69 = $701;$$691378 = $700; + label = 179; + } else { + $$641480 = $$631479;$$651672 = $$641671;$$671058 = $$661057;$$681165 = $$671164;$$691272 = $$681271;$$711578 = $$701577;$$72 = $701;$$721381 = $700; + label = 184; + } + break; + } + case 196: { + label = 0; + $$0952 = $$0952$shrunk&255; + $740 = $$0952 << $$76; + $741 = $740 | $$761385; + $742 = (($$76) + 8)|0; + $743 = ($742>>>0)<(15); + if ($743) { + $$661482 = $$681484;$$671674 = $$691676;$$691060 = $$711062;$$701167 = $$721169;$$711274 = $$731276;$$731580 = $$751582;$$74 = $742;$$741383 = $741; + label = 187; + } else { + $$691485 = $$681484;$$701677 = $$691676;$$731170 = $$721169;$$761583 = $$751582;$$77 = $742;$$771386 = $741; + label = 198; + } + break; + } + case 207: { + label = 0; + $$0950 = $$0950$shrunk&255; + $787 = $$0950 << $$80; + $788 = $787 | $$801389; + $789 = (($$80) + 8)|0; + $790 = ($789>>>0)<($$761279>>>0); + if ($790) { + $$701486 = $$721488;$$711678 = $$731680;$$721063 = $$741065;$$741171 = $$761173;$$741277 = $$761279;$$771584 = $$791586;$$78 = $789;$$781387 = $788; + label = 203; + } else { + $$741681 = $$731680;$$751066 = $$741065;$$771174 = $$761173;$$771280 = $$761279;$$801587 = $$791586;$$81 = $789;$$811390 = $788; + label = 208; + } + break; + } + case 227: { + label = 0; + $852 = ($$871184>>>0)<(4); + if (!($852)) { + $$881504 = $$811497;$$921083 = $$851076;$$921699 = $$851692;$$941191 = $$871184;$$941297 = $$871290;$$971604 = $$901597;$$98 = $$91;$$981407 = $$911400; + label = 242; + continue L46; + } + $853 = ($$91|0)==(0); + if (!($853)) { + $854 = ($$91>>>0)<(8); + if ($854) { + $$821498 = $$811497;$$861077 = $$851076;$$861693 = $$851692;$$881185 = $$871184;$$881291 = $$871290;$$911598 = $$901597;$$92 = $$91;$$921401 = $$911400; + label = 230; + break; + } else { + $$851501 = $$811497;$$891080 = $$851076;$$891696 = $$851692;$$911188 = $$871184;$$911294 = $$871290;$$941601 = $$901597;$$95 = $$91;$$951404 = $$911400; + label = 235; + break; + } + } + $868 = ($$901597>>>0)<($10>>>0); + if (!($868)) { + $$861502 = $$811497;$$901081 = $$851076;$$901697 = $$851692;$$921189 = $$871184;$$921295 = $$871290;$$951602 = $$901597;$$96 = 0;$$961405 = $$911400; + label = 237; + continue L46; + } + $875 = ((($$901597)) + 1|0); + $876 = HEAP8[$$901597>>0]|0; + $877 = $876&255; + $$0948 = $877;$$871503 = $$811497;$$911082 = $$851076;$$911698 = $$851692;$$931190 = $$871184;$$931296 = $$871290;$$961603 = $875;$$97 = 0;$$971406 = $$911400; + label = 241; + continue L46; + break; + } + case 234: { + label = 0; + $$0947 = $$0947$shrunk&255; + $861 = $$0947 << $$94; + $862 = $861 | $$941403; + $863 = (($$94) + 8)|0; + $864 = ($$94>>>0)>(4294967287); + if ($864) { + $$821498 = $$841500;$$861077 = $$881079;$$861693 = $$881695;$$881185 = $$901187;$$881291 = $$901293;$$911598 = $$931600;$$92 = $863;$$921401 = $862; + label = 230; + } else { + $$851501 = $$841500;$$891080 = $$881079;$$891696 = $$881695;$$911188 = $$901187;$$911294 = $$901293;$$941601 = $$931600;$$95 = $863;$$951404 = $862; + label = 235; + } + break; + } + } + L119: do { + if ((label|0) == 15) { + label = 0; + $72 = ($$51512>>>0)<($10>>>0); + if ($72) { + $$31419$ph = $$11417;$$31610$ph = $$11608;$$8$ph = $$6;$$81105$ph = $$61103;$$81211$ph = $$61209;$$81317$ph = $$61315;$$8999$ph = $$6997;$$sink1710 = $$51512; + label = 18; + continue L46; + } else { + $$21418 = $$11417;$$21609 = $$11608;$$61513 = $$51512;$$7 = $$6;$$71104 = $$61103;$$71210 = $$61209;$$71316 = $$61315;$$7998 = $$6997; + label = 16; + continue L46; + } + } + else if ((label|0) == 20) { + label = 0; + $82 = $$91318 & 7; + $83 = ((($0)) + 20|0); + HEAP32[$83>>2] = $82; + $84 = $$91318 >>> 3; + $85 = (($$9) + -3)|0; + $86 = $82 >>> 1; + $87 = ((($0)) + 24|0); + HEAP32[$87>>2] = $86; + $trunc = $86&255; + $trunc$clear = $trunc & 3; + switch ($trunc$clear<<24>>24) { + case 0: { + $$121519 = $$81515;$$13 = $85;$$131004 = $$91000;$$131216 = $$91212;$$131322 = $84;$$81424 = $$41420;$$81615 = $$41611; + label = 25; + continue L46; + break; + } + case 3: { + $$281444 = $$41420;$$281635 = $$41611;$$321023 = $$91000;$$321129 = $$91106;$$321539 = $$81515;$$33 = $85;$$331236 = $$91212;$$331342 = $84; + label = 60; + continue L46; + break; + } + case 1: { + break; + } + default: { + $$291445 = $$41420;$$291636 = $$41611;$$331024 = $$91000;$$331130 = 0;$$331540 = $$81515;$$34 = $85;$$341237 = $$91212;$$341343 = $84; + label = 61; + break L119; + } + } + $240 = ((($0)) + 44|0); + HEAP32[$240>>2] = 288; + $241 = ((($0)) + 48|0); + HEAP32[$241>>2] = 32; + $242 = ((($0)) + 3552|0); + ;HEAP32[$242>>2]=84215045|0;HEAP32[$242+4>>2]=84215045|0;HEAP32[$242+8>>2]=84215045|0;HEAP32[$242+12>>2]=84215045|0;HEAP32[$242+16>>2]=84215045|0;HEAP32[$242+20>>2]=84215045|0;HEAP32[$242+24>>2]=84215045|0;HEAP32[$242+28>>2]=84215045|0; + $scevgep19611962 = ((($0)) + 64|0); + _memset(($scevgep19611962|0),8,144)|0; + $scevgep1959 = ((($0)) + 208|0); + dest=$scevgep1959; stop=dest+112|0; do { HEAP8[dest>>0]=9|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1957 = ((($0)) + 320|0); + dest=$scevgep1957; stop=dest+24|0; do { HEAP8[dest>>0]=7|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1955 = ((($0)) + 344|0); + $243 = $scevgep1955; + $244 = $243; + HEAP8[$244>>0]=134744072&255;HEAP8[$244+1>>0]=(134744072>>8)&255;HEAP8[$244+2>>0]=(134744072>>16)&255;HEAP8[$244+3>>0]=134744072>>24; + $245 = (($243) + 4)|0; + $246 = $245; + HEAP8[$246>>0]=134744072&255;HEAP8[$246+1>>0]=(134744072>>8)&255;HEAP8[$246+2>>0]=(134744072>>16)&255;HEAP8[$246+3>>0]=134744072>>24; + $$391455 = $$41420;$$391646 = $$41611;$$431034 = $$91000;$$431140 = $$91106;$$431550 = $$81515;$$44 = $85;$$441247 = $$91212;$$441353 = $84; + label = 80; + } + else if ((label|0) == 230) { + label = 0; + $855 = ($$911598>>>0)<($10>>>0); + if ($855) { + $$841500$ph = $$821498;$$881079$ph = $$861077;$$881695$ph = $$861693;$$901187$ph = $$881185;$$901293$ph = $$881291;$$94$ph = $$92;$$941403$ph = $$921401;$$sink1750 = $$911598; + label = 233; + continue L46; + } else { + $$831499 = $$821498;$$871078 = $$861077;$$871694 = $$861693;$$891186 = $$881185;$$891292 = $$881291;$$921599 = $$911598;$$93 = $$92;$$931402 = $$921401; + label = 231; + continue L46; + } + } + else if ((label|0) == 235) { + label = 0; + $865 = $$951404 & 255; + $866 = $$951404 >>> 8; + $867 = (($$95) + -8)|0; + $$0948 = $865;$$871503 = $$851501;$$911082 = $$891080;$$911698 = $$891696;$$931190 = $$911188;$$931296 = $$911294;$$961603 = $$941601;$$97 = $867;$$971406 = $866; + label = 241; + continue L46; + } + } while(0); + L125: while(1) { + L126: switch (label|0) { + case 26: { + label = 0; + $100 = ($$131110>>>0)<(4); + if (!($100)) { + $127 = ((($0)) + 10528|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = ((($0)) + 10529|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = $132 << 8; + $134 = $133 | $129; + $135 = ((($0)) + 10530|0); + $136 = HEAP8[$135>>0]|0; + $137 = $136&255; + $138 = ((($0)) + 10531|0); + $139 = HEAP8[$138>>0]|0; + $140 = $139&255; + $141 = $140 << 8; + $142 = $141 | $137; + $143 = $142 ^ 65535; + $144 = ($134|0)==($143|0); + if ($144) { + $$181434 = $$91425;$$181625 = $$91616;$$221119 = $134;$$221529 = $$131520;$$23 = $$14;$$231014 = $$141005;$$231226 = $$141217;$$231332 = $$141323; + label = 44; + continue L125; + } else { + $$171433 = $$91425;$$171624 = $$91616;$$211118 = $134;$$211528 = $$131520;$$22 = $$14;$$221013 = $$141005;$$221225 = $$141217;$$221331 = $$141323; + label = 43; + continue L46; + } + } + $101 = ($$14|0)==(0); + if (!($101)) { + $102 = ($$14>>>0)<(8); + if ($102) { + $$101426 = $$91425;$$101617 = $$91616;$$141111 = $$131110;$$141521 = $$131520;$$15 = $$14;$$151006 = $$141005;$$151218 = $$141217;$$151324 = $$141323; + label = 29; + continue L125; + } else { + $$131429 = $$91425;$$131620 = $$91616;$$171114 = $$131110;$$171524 = $$131520;$$18 = $$14;$$181009 = $$141005;$$181221 = $$141217;$$181327 = $$141323; + label = 34; + continue L125; + } + } + $117 = ($$131520>>>0)<($10>>>0); + if (!($117)) { + $$141430 = $$91425;$$141621 = $$91616;$$181115 = $$131110;$$181525 = $$131520;$$19 = 0;$$191010 = $$141005;$$191222 = $$141217;$$191328 = $$141323; + label = 36; + continue L46; + } + $123 = ((($$131520)) + 1|0); + $124 = HEAP8[$$131520>>0]|0; + $125 = (((($0)) + 10528|0) + ($$131110)|0); + HEAP8[$125>>0] = $124; + $$161432 = $$91425;$$161623 = $$91616;$$201117 = $$131110;$$201527 = $123;$$21 = 0;$$211012 = $$141005;$$211224 = $$141217;$$211330 = $$141323; + label = 41; + continue L125; + break; + } + case 29: { + label = 0; + $103 = ($$141521>>>0)<($10>>>0); + if ($103) { + $$121428$ph = $$101426;$$121619$ph = $$101617;$$161113$ph = $$141111;$$17$ph = $$15;$$171008$ph = $$151006;$$171220$ph = $$151218;$$171326$ph = $$151324;$$sink1713 = $$141521; + label = 32; + continue L46; + } else { + $$111427 = $$101426;$$111618 = $$101617;$$151112 = $$141111;$$151522 = $$141521;$$16 = $$15;$$161007 = $$151006;$$161219 = $$151218;$$161325 = $$151324; + label = 30; + continue L46; + } + break; + } + case 34: { + label = 0; + $113 = $$181327&255; + $114 = (((($0)) + 10528|0) + ($$171114)|0); + HEAP8[$114>>0] = $113; + $115 = $$181327 >>> 8; + $116 = (($$18) + -8)|0; + $$161432 = $$131429;$$161623 = $$131620;$$201117 = $$171114;$$201527 = $$171524;$$21 = $116;$$211012 = $$181009;$$211224 = $$181221;$$211330 = $115; + label = 41; + continue L125; + break; + } + case 41: { + label = 0; + $126 = (($$201117) + 1)|0; + $$131110 = $126;$$131520 = $$201527;$$14 = $$21;$$141005 = $$211012;$$141217 = $$211224;$$141323 = $$211330;$$91425 = $$161432;$$91616 = $$161623; + label = 26; + continue L125; + break; + } + case 44: { + label = 0; + $145 = ($$221119|0)!=(0); + $146 = ($$23|0)!=(0); + $147 = $145 & $146; + if (!($147)) { + $$241440 = $$181434;$$241631 = $$181625;$$281019 = $$231014;$$281125 = $$221119;$$281535 = $$221529;$$29 = $$23;$$291232 = $$231226;$$291338 = $$231332; + label = 54; + continue L125; + } + $148 = ($$23>>>0)<(8); + if ($148) { + $$191435 = $$181434;$$191626 = $$181625;$$231120 = $$221119;$$231530 = $$221529;$$24 = $$23;$$241015 = $$231014;$$241227 = $$231226;$$241333 = $$231332; + label = 46; + continue L125; + } else { + $$221438 = $$181434;$$221629 = $$181625;$$261123 = $$221119;$$261533 = $$221529;$$27 = $$23;$$271230 = $$231226;$$271336 = $$231332; + label = 51; + continue L125; + } + break; + } + case 46: { + label = 0; + $149 = ($$231530>>>0)<($10>>>0); + if ($149) { + $$211437$ph = $$191435;$$211628$ph = $$191626;$$251122$ph = $$231120;$$26$ph = $$24;$$261017$ph = $$241015;$$261229$ph = $$241227;$$261335$ph = $$241333;$$sink1716 = $$231530; + label = 49; + continue L46; + } else { + $$201436 = $$191435;$$201627 = $$191626;$$241121 = $$231120;$$241531 = $$231530;$$25 = $$24;$$251016 = $$241015;$$251228 = $$241227;$$251334 = $$241333; + label = 47; + continue L46; + } + break; + } + case 51: { + label = 0; + $159 = $$271336 & 255; + $160 = $$271336 >>> 8; + $161 = (($$27) + -8)|0; + $$231439 = $$221438;$$231630 = $$221629;$$271018 = $159;$$271124 = $$261123;$$271534 = $$261533;$$28 = $161;$$281231 = $$271230;$$281337 = $160; + label = 52; + continue L46; + break; + } + case 54: { + label = 0; + $166 = ($$281125|0)==(0); + if ($166) { + $$761492 = $$241440;$$801071 = $$281019;$$801687 = $$241631;$$821285 = $$291232;$$831180 = 0;$$851592 = $$281535;$$86 = $$29;$$861395 = $$291338; + label = 220; + break L125; + } else { + $$251441 = $$241440;$$251632 = $$241631;$$291020 = $$281019;$$291126 = $$281125;$$291536 = $$281535;$$30 = $$29;$$301233 = $$291232;$$301339 = $$291338; + label = 55; + continue L46; + } + break; + } + case 61: { + label = 0; + $185 = ($$331130>>>0)<(3); + if ($185) { + $186 = (11520 + ($$331130)|0); + $187 = HEAP8[$186>>0]|0; + $188 = $187 << 24 >> 24; + $189 = ($$34>>>0)<($188>>>0); + if ($189) { + $$301446 = $$291445;$$301637 = $$291636;$$341025 = $$331024;$$341131 = $$331130;$$341541 = $$331540;$$35 = $$34;$$351238 = $$341237;$$351344 = $$341343; + label = 63; + continue L125; + } else { + $$331449 = $$291445;$$331640 = $$291636;$$371028 = $$331024;$$371134 = $$331130;$$371544 = $$331540;$$38 = $$34;$$381241 = $$341237;$$381347 = $$341343; + label = 68; + continue L125; + } + } else { + $216 = ((($0)) + 7040|0); + _memset(($216|0),0,288)|0; + $$341450 = $$291445;$$341641 = $$291636;$$381029 = $$331024;$$381135 = 0;$$381545 = $$331540;$$39 = $$34;$$391242 = $$341237;$$391348 = $$341343; + label = 70; + break; + } + break; + } + case 63: { + label = 0; + $190 = ($$341541>>>0)<($10>>>0); + if ($190) { + $$321448$ph = $$301446;$$321639$ph = $$301637;$$361027$ph = $$341025;$$361133$ph = $$341131;$$37$ph = $$35;$$371240$ph = $$351238;$$371346$ph = $$351344;$$sink1719 = $$341541; + label = 66; + continue L46; + } else { + $$311447 = $$301446;$$311638 = $$301637;$$351026 = $$341025;$$351132 = $$341131;$$351542 = $$341541;$$36 = $$35;$$361239 = $$351238;$$361345 = $$351344; + label = 64; + continue L46; + } + break; + } + case 68: { + label = 0; + $203 = (11520 + ($$371134)|0); + $204 = HEAP8[$203>>0]|0; + $205 = $204 << 24 >> 24; + $206 = 1 << $205; + $207 = (($206) + -1)|0; + $208 = $207 & $$381347; + $209 = (((($0)) + 44|0) + ($$371134<<2)|0); + $210 = $$381347 >>> $205; + $211 = (($$38) - ($205))|0; + $212 = (3196 + ($$371134<<2)|0); + $213 = HEAP32[$212>>2]|0; + $214 = (($208) + ($213))|0; + HEAP32[$209>>2] = $214; + $215 = (($$371134) + 1)|0; + $$291445 = $$331449;$$291636 = $$331640;$$331024 = $$371028;$$331130 = $215;$$331540 = $$371544;$$34 = $211;$$341237 = $$381241;$$341343 = $210; + label = 61; + continue L125; + break; + } + case 72: { + label = 0; + $221 = ($$391546>>>0)<($10>>>0); + if ($221) { + $$371453$ph = $$351451;$$371644$ph = $$351642;$$411032$ph = $$391030;$$411138$ph = $$391136;$$42$ph = $$40;$$421245$ph = $$401243;$$421351$ph = $$401349;$$sink1722 = $$391546; + label = 75; + continue L46; + } else { + $$361452 = $$351451;$$361643 = $$351642;$$401031 = $$391030;$$401137 = $$391136;$$401547 = $$391546;$$41 = $$40;$$411244 = $$401243;$$411350 = $$401349; + label = 73; + continue L46; + } + break; + } + case 77: { + label = 0; + $231 = $$431352 & 7; + $232 = $$431352 >>> 3; + $233 = (($$43) + -3)|0; + $234 = $231&255; + $235 = (11524 + ($$421139)|0); + $236 = HEAP8[$235>>0]|0; + $237 = $236&255; + $238 = (((($0)) + 7040|0) + ($237)|0); + HEAP8[$238>>0] = $234; + $239 = (($$421139) + 1)|0; + $$341450 = $$381454;$$341641 = $$381645;$$381029 = $$421033;$$381135 = $239;$$381545 = $$421549;$$39 = $233;$$391242 = $$431246;$$391348 = $232; + label = 70; + break; + } + case 80: { + label = 0; + $247 = ((($0)) + 24|0); + $248 = HEAP32[$247>>2]|0; + $249 = ($248|0)>(-1); + if ($249) { + dest=$8; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $250 = (((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0); + _memset(($250|0),0,3200)|0; + $251 = HEAP32[$247>>2]|0; + $252 = (((($0)) + 44|0) + ($251<<2)|0); + $253 = HEAP32[$252>>2]|0; + $254 = ($253|0)==(0); + if (!($254)) { + $255 = HEAP32[$247>>2]|0; + $256 = (((($0)) + 44|0) + ($255<<2)|0); + $257 = HEAP32[$256>>2]|0; + $$010951864 = 0; + while(1) { + $258 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010951864)|0); + $259 = HEAP8[$258>>0]|0; + $260 = $259&255; + $261 = (($8) + ($260<<2)|0); + $262 = HEAP32[$261>>2]|0; + $263 = (($262) + 1)|0; + HEAP32[$261>>2] = $263; + $264 = (($$010951864) + 1)|0; + $265 = ($264>>>0)<($257>>>0); + if ($265) { + $$010951864 = $264; + } else { + break; + } + } + } + $266 = ((($7)) + 4|0); + HEAP32[$266>>2] = 0; + HEAP32[$7>>2] = 0; + $267 = ((($8)) + 4|0); + $268 = HEAP32[$267>>2]|0; + $269 = $268 << 1; + $270 = ((($7)) + 8|0); + HEAP32[$270>>2] = $269; + $271 = ((($8)) + 8|0); + $272 = HEAP32[$271>>2]|0; + $273 = (($272) + ($268))|0; + $274 = (($272) + ($269))|0; + $275 = $274 << 1; + $276 = ((($7)) + 12|0); + HEAP32[$276>>2] = $275; + $277 = ((($8)) + 12|0); + $278 = HEAP32[$277>>2]|0; + $279 = (($278) + ($273))|0; + $280 = (($278) + ($275))|0; + $281 = $280 << 1; + $282 = ((($7)) + 16|0); + HEAP32[$282>>2] = $281; + $283 = ((($8)) + 16|0); + $284 = HEAP32[$283>>2]|0; + $285 = (($284) + ($279))|0; + $286 = (($284) + ($281))|0; + $287 = $286 << 1; + $288 = ((($7)) + 20|0); + HEAP32[$288>>2] = $287; + $289 = ((($8)) + 20|0); + $290 = HEAP32[$289>>2]|0; + $291 = (($290) + ($285))|0; + $292 = (($290) + ($287))|0; + $293 = $292 << 1; + $294 = ((($7)) + 24|0); + HEAP32[$294>>2] = $293; + $295 = ((($8)) + 24|0); + $296 = HEAP32[$295>>2]|0; + $297 = (($296) + ($291))|0; + $298 = (($296) + ($293))|0; + $299 = $298 << 1; + $300 = ((($7)) + 28|0); + HEAP32[$300>>2] = $299; + $301 = ((($8)) + 28|0); + $302 = HEAP32[$301>>2]|0; + $303 = (($302) + ($297))|0; + $304 = (($302) + ($299))|0; + $305 = $304 << 1; + $306 = ((($7)) + 32|0); + HEAP32[$306>>2] = $305; + $307 = ((($8)) + 32|0); + $308 = HEAP32[$307>>2]|0; + $309 = (($308) + ($303))|0; + $310 = (($308) + ($305))|0; + $311 = $310 << 1; + $312 = ((($7)) + 36|0); + HEAP32[$312>>2] = $311; + $313 = ((($8)) + 36|0); + $314 = HEAP32[$313>>2]|0; + $315 = (($314) + ($309))|0; + $316 = (($314) + ($311))|0; + $317 = $316 << 1; + $318 = ((($7)) + 40|0); + HEAP32[$318>>2] = $317; + $319 = ((($8)) + 40|0); + $320 = HEAP32[$319>>2]|0; + $321 = (($320) + ($315))|0; + $322 = (($320) + ($317))|0; + $323 = $322 << 1; + $324 = ((($7)) + 44|0); + HEAP32[$324>>2] = $323; + $325 = ((($8)) + 44|0); + $326 = HEAP32[$325>>2]|0; + $327 = (($326) + ($321))|0; + $328 = (($326) + ($323))|0; + $329 = $328 << 1; + $330 = ((($7)) + 48|0); + HEAP32[$330>>2] = $329; + $331 = ((($8)) + 48|0); + $332 = HEAP32[$331>>2]|0; + $333 = (($332) + ($327))|0; + $334 = (($332) + ($329))|0; + $335 = $334 << 1; + $336 = ((($7)) + 52|0); + HEAP32[$336>>2] = $335; + $337 = ((($8)) + 52|0); + $338 = HEAP32[$337>>2]|0; + $339 = (($338) + ($333))|0; + $340 = (($338) + ($335))|0; + $341 = $340 << 1; + $342 = ((($7)) + 56|0); + HEAP32[$342>>2] = $341; + $343 = ((($8)) + 56|0); + $344 = HEAP32[$343>>2]|0; + $345 = (($344) + ($339))|0; + $346 = (($344) + ($341))|0; + $347 = $346 << 1; + $348 = ((($7)) + 60|0); + HEAP32[$348>>2] = $347; + $349 = ((($8)) + 60|0); + $350 = HEAP32[$349>>2]|0; + $351 = (($350) + ($345))|0; + $352 = (($350) + ($347))|0; + $353 = $352 << 1; + $354 = ((($7)) + 64|0); + HEAP32[$354>>2] = $353; + $355 = ($353|0)!=(65536); + $356 = ($351>>>0)>(1); + $or$cond = $355 & $356; + if ($or$cond) { + $$401456 = $$391455;$$401647 = $$391646;$$441035 = $$431034;$$441141 = $$431140;$$441551 = $$431550;$$45 = $$44;$$451248 = $$441247;$$451354 = $$441353; + label = 86; + continue L46; + } + $357 = HEAP32[$247>>2]|0; + $358 = (((($0)) + 44|0) + ($357<<2)|0); + $359 = HEAP32[$358>>2]|0; + $360 = ($359|0)==(0); + if ($360) { + $$lcssa1779 = $357; + } else { + $$010911856 = 0;$$011971855 = -1; + while(1) { + $361 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010911856)|0); + $362 = HEAP8[$361>>0]|0; + $363 = $362&255; + $364 = ($362<<24>>24)==(0); + L142: do { + if ($364) { + $$41201 = $$011971855; + } else { + $365 = (($7) + ($363<<2)|0); + $366 = HEAP32[$365>>2]|0; + $367 = (($366) + 1)|0; + HEAP32[$365>>2] = $367; + $$010861840 = $366;$$010871839 = $363;$$010881838 = 0; + while(1) { + $368 = $$010881838 << 1; + $369 = $$010861840 & 1; + $370 = $369 | $368; + $371 = (($$010871839) + -1)|0; + $372 = $$010861840 >>> 1; + $373 = ($371|0)==(0); + if ($373) { + break; + } else { + $$010861840 = $372;$$010871839 = $371;$$010881838 = $370; + } + } + $374 = ($362&255)<(11); + if ($374) { + $375 = $363 << 9; + $376 = $375 | $$010911856; + $377 = $376&65535; + $378 = ($370>>>0)<(1024); + if (!($378)) { + $$41201 = $$011971855; + break; + } + $379 = 1 << $363; + $$110891852 = $370; + while(1) { + $380 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($$110891852<<1)|0); + HEAP16[$380>>1] = $377; + $381 = (($$110891852) + ($379))|0; + $382 = ($381>>>0)<(1024); + if ($382) { + $$110891852 = $381; + } else { + $$41201 = $$011971855; + break L142; + } + } + } + $383 = $370 & 1023; + $384 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($383<<1)|0); + $385 = HEAP16[$384>>1]|0; + $386 = $385 << 16 >> 16; + $387 = ($385<<16>>16)==(0); + if ($387) { + $388 = (($$011971855) + -2)|0; + $389 = $$011971855&65535; + HEAP16[$384>>1] = $389; + $$01194 = $$011971855;$$11198 = $388; + } else { + $$01194 = $386;$$11198 = $$011971855; + } + $390 = $$010881838 >>> 9; + $391 = ($362&255)>(11); + $392 = $390 & 1; + $393 = (($392) - ($$01194))|0; + $394 = (($393) + -1)|0; + if ($391) { + $395 = $390 & 4194303; + $$010941846 = $363;$$211991845 = $$11198;$397 = $394;$406 = $395; + while(1) { + $396 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($397<<1)|0); + $398 = HEAP16[$396>>1]|0; + $399 = ($398<<16>>16)==(0); + if ($399) { + $400 = $$211991845&65535; + HEAP16[$396>>1] = $400; + $401 = (($$211991845) + -2)|0; + $$21196 = $$211991845;$$31200 = $401; + } else { + $402 = $398 << 16 >> 16; + $$21196 = $402;$$31200 = $$211991845; + } + $403 = (($$010941846) + -1)|0; + $404 = ($403>>>0)>(11); + $405 = $406 >>> 1; + $407 = $405 & 1; + $408 = (($407) - ($$21196))|0; + $409 = (($408) + -1)|0; + if ($404) { + $$010941846 = $403;$$211991845 = $$31200;$397 = $409;$406 = $405; + } else { + $$21199$lcssa = $$31200;$$lcssa1778 = $409; + break; + } + } + } else { + $$21199$lcssa = $$11198;$$lcssa1778 = $394; + } + $410 = $$010911856&65535; + $411 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($$lcssa1778<<1)|0); + HEAP16[$411>>1] = $410; + $$41201 = $$21199$lcssa; + } + } while(0); + $412 = (($$010911856) + 1)|0; + $413 = HEAP32[$247>>2]|0; + $414 = (((($0)) + 44|0) + ($413<<2)|0); + $415 = HEAP32[$414>>2]|0; + $416 = ($412>>>0)<($415>>>0); + if ($416) { + $$010911856 = $412;$$011971855 = $$41201; + } else { + $$lcssa1779 = $413; + break; + } + } + } + $417 = ($$lcssa1779|0)==(2); + if ($417) { + $$411457 = $$391455;$$411648 = $$391646;$$451036 = $$431034;$$451142 = 0;$$451552 = $$431550;$$46 = $$44;$$461249 = $$441247;$$461355 = $$441353; + label = 105; + } else { + $$521468 = $$391455;$$521659 = $$391646;$$551046 = $$431034;$$561153 = $$431140;$$561563 = $$431550;$$57 = $$44;$$571260 = $$441247;$$571366 = $$441353; + label = 138; + } + } else { + $$531469 = $$391455;$$531660 = $$391646;$$561047 = $$431034;$$571154 = $$431140;$$571564 = $$431550;$$58 = $$44;$$581261 = $$441247;$$581367 = $$441353; + label = 139; + } + break; + } + case 108: { + label = 0; + $429 = $$471356 & 1023; + $430 = (((($0)) + 7328|0) + ($429<<1)|0); + $431 = HEAP16[$430>>1]|0; + $432 = $431 << 16 >> 16; + $433 = ($431<<16>>16)>(-1); + if ($433) { + $434 = $432 >> 9; + $435 = (($434) + -1)|0; + $436 = ($435>>>0)<($$47>>>0); + if ($436) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } else { + label = 113; + break L125; + } + } + $437 = ($$47>>>0)>(10); + if ($437) { + $$0981 = 10;$$0984 = $432; + } else { + label = 113; + break L125; + } + while(1) { + $438 = $$0984 ^ -1; + $439 = $$471356 >>> $$0981; + $440 = $439 & 1; + $441 = (($440) + ($438))|0; + $442 = (((($0)) + 9376|0) + ($441<<1)|0); + $443 = HEAP16[$442>>1]|0; + $444 = ($443<<16>>16)<(0); + if (!($444)) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } + $445 = (($$0981) + 1)|0; + $446 = $443 << 16 >> 16; + $447 = (($$0981) + 2)|0; + $448 = ($$47>>>0)<($447>>>0); + if ($448) { + label = 113; + break L125; + } else { + $$0981 = $445;$$0984 = $446; + } + } + break; + } + case 119: { + label = 0; + $471 = $$501359 & 1023; + $472 = (((($0)) + 7328|0) + ($471<<1)|0); + $473 = HEAP16[$472>>1]|0; + $474 = $473 << 16 >> 16; + $475 = ($473<<16>>16)>(-1); + if ($475) { + $476 = $474 >> 9; + $477 = $474 & 511; + $$2983 = $476;$$2986 = $477; + } else { + $$1982 = 10;$$1985 = $474; + while(1) { + $478 = $$1985 ^ -1; + $479 = (($$1982) + 1)|0; + $480 = $$501359 >>> $$1982; + $481 = $480 & 1; + $482 = (($481) + ($478))|0; + $483 = (((($0)) + 9376|0) + ($482<<1)|0); + $484 = HEAP16[$483>>1]|0; + $485 = $484 << 16 >> 16; + $486 = ($484<<16>>16)<(0); + if ($486) { + $$1982 = $479;$$1985 = $485; + } else { + $$2983 = $479;$$2986 = $485; + break; + } + } + } + $487 = $$501359 >>> $$2983; + $488 = (($$50) - ($$2983))|0; + $489 = ($$2986>>>0)<(16); + if ($489) { + $490 = $$2986&255; + $491 = (($$491146) + 1)|0; + $492 = (((($0)) + 10532|0) + ($$491146)|0); + HEAP8[$492>>0] = $490; + $$411457 = $$451461;$$411648 = $$451652;$$451036 = $$2986;$$451142 = $491;$$451552 = $$491556;$$46 = $488;$$461249 = $$501253;$$461355 = $487; + label = 105; + break; + } + $493 = ($$2986|0)!=(16); + $494 = ($$491146|0)!=(0); + $or$cond24 = $494 | $493; + if (!($or$cond24)) { + $$461462 = $$451461;$$461653 = $$451652;$$491040 = $$2986;$$501147 = $$491146;$$501557 = $$491556;$$51 = $488;$$511254 = $$501253;$$511360 = $487; + label = 125; + continue L46; + } + $495 = (($$2986) + -16)|0; + $496 = (11543 + ($495)|0); + $497 = HEAP8[$496>>0]|0; + $498 = $497 << 24 >> 24; + $499 = ($488>>>0)<($498>>>0); + if ($499) { + $$471463 = $$451461;$$471654 = $$451652;$$501041 = $$2986;$$511148 = $$491146;$$511558 = $$491556;$$52 = $488;$$521255 = $498;$$521361 = $487; + label = 127; + continue L125; + } else { + $$501466 = $$451461;$$501657 = $$451652;$$531044 = $$2986;$$541151 = $$491146;$$541561 = $$491556;$$55 = $488;$$551258 = $498;$$551364 = $487; + label = 132; + continue L125; + } + break; + } + case 127: { + label = 0; + $500 = ($$511558>>>0)<($10>>>0); + if ($500) { + $$491465$ph = $$471463;$$491656$ph = $$471654;$$521043$ph = $$501041;$$531150$ph = $$511148;$$54$ph = $$52;$$541257$ph = $$521255;$$541363$ph = $$521361;$$sink1732 = $$511558; + label = 130; + continue L46; + } else { + $$481464 = $$471463;$$481655 = $$471654;$$511042 = $$501041;$$521149 = $$511148;$$521559 = $$511558;$$53 = $$52;$$531256 = $$521255;$$531362 = $$521361; + label = 128; + continue L46; + } + break; + } + case 132: { + label = 0; + $510 = 1 << $$551258; + $511 = (($510) + -1)|0; + $512 = $511 & $$551364; + $513 = $$551364 >>> $$551258; + $514 = (($$55) - ($$551258))|0; + $515 = (($$531044) + -16)|0; + $516 = (11547 + ($515)|0); + $517 = HEAP8[$516>>0]|0; + $518 = $517 << 24 >> 24; + $519 = (($518) + ($512))|0; + $520 = (((($0)) + 10532|0) + ($$541151)|0); + $521 = ($$531044|0)==(16); + if ($521) { + $522 = (($$541151) + -1)|0; + $523 = (((($0)) + 10532|0) + ($522)|0); + $524 = HEAP8[$523>>0]|0; + $525 = $524&255; + $527 = $525; + } else { + $527 = 0; + } + $526 = $527&255; + _memset(($520|0),($526|0),($519|0))|0; + $528 = (($519) + ($$541151))|0; + $$411457 = $$501466;$$411648 = $$501657;$$451036 = $$531044;$$451142 = $528;$$451552 = $$541561;$$46 = $514;$$461249 = $$551258;$$461355 = $513; + label = 105; + break; + } + case 140: { + label = 0; + $539 = $10; + $540 = $$581565$ph; + $541 = (($539) - ($540))|0; + $542 = ($541|0)<(4); + $543 = ($$59$ph>>>0)<(15); + L241: do { + if ($542) { + $$541661$lcssa = $$541661$ph;$$581155$lcssa = $$581155$ph;$$581565$lcssa = $$581565$ph;$$59$lcssa = $$59$ph;$$591368$lcssa = $$591368$ph;$$lcssa1799 = $543;$$lcssa1802 = $541; + } else { + $544 = $12; + $$5416611868 = $$541661$ph;$$5811551871 = $$581155$ph;$$5815651869 = $$581565$ph;$$5913681870 = $$591368$ph;$$591872 = $$59$ph;$965 = $543;$966 = $541; + while(1) { + $545 = $$5416611868; + $546 = (($544) - ($545))|0; + $547 = ($546|0)<(2); + if ($547) { + $$541661$lcssa = $$5416611868;$$581155$lcssa = $$5811551871;$$581565$lcssa = $$5815651869;$$59$lcssa = $$591872;$$591368$lcssa = $$5913681870;$$lcssa1799 = $965;$$lcssa1802 = $966; + break L241; + } + if ($965) { + $613 = HEAP8[$$5815651869>>0]|0; + $614 = $613&255; + $615 = ((($$5815651869)) + 1|0); + $616 = HEAP8[$615>>0]|0; + $617 = $616&255; + $618 = $617 << 8; + $619 = $618 | $614; + $620 = $619 << $$591872; + $621 = $620 | $$5913681870; + $622 = ((($$5815651869)) + 2|0); + $623 = (($$591872) + 16)|0; + $$641571 = $622;$$65 = $623;$$651374 = $621; + } else { + $$641571 = $$5815651869;$$65 = $$591872;$$651374 = $$5913681870; + } + $624 = $$651374 & 1023; + $625 = (((($0)) + 352|0) + ($624<<1)|0); + $626 = HEAP16[$625>>1]|0; + $627 = $626 << 16 >> 16; + $628 = ($626<<16>>16)>(-1); + if ($628) { + $629 = $627 >> 9; + $$1964 = $629;$$1968 = $627; + } else { + $$0963 = 10;$$0967 = $627; + while(1) { + $630 = $$0967 ^ -1; + $631 = (($$0963) + 1)|0; + $632 = $$651374 >>> $$0963; + $633 = $632 & 1; + $634 = (($633) + ($630))|0; + $635 = (((($0)) + 2400|0) + ($634<<1)|0); + $636 = HEAP16[$635>>1]|0; + $637 = $636 << 16 >> 16; + $638 = ($636<<16>>16)<(0); + if ($638) { + $$0963 = $631;$$0967 = $637; + } else { + $$1964 = $631;$$1968 = $637; + break; + } + } + } + $639 = $$651374 >>> $$1964; + $640 = (($$65) - ($$1964))|0; + $641 = $$1968 & 256; + $642 = ($641|0)==(0); + if (!($642)) { + $$601476 = $$541470$ph;$$611668 = $$5416611868;$$631054 = $$571048$ph;$$641161 = $$1968;$$651268 = $$591262$ph;$$671574 = $$641571;$$68 = $640;$$681377 = $639; + label = 176; + break L126; + } + $643 = ($640>>>0)<(15); + if ($643) { + $644 = HEAP8[$$641571>>0]|0; + $645 = $644&255; + $646 = ((($$641571)) + 1|0); + $647 = HEAP8[$646>>0]|0; + $648 = $647&255; + $649 = $648 << 8; + $650 = $649 | $645; + $651 = $650 << $640; + $652 = $651 | $639; + $653 = ((($$641571)) + 2|0); + $654 = (($640) + 16)|0; + $$651572 = $653;$$66 = $654;$$661375 = $652; + } else { + $$651572 = $$641571;$$66 = $640;$$661375 = $639; + } + $655 = $$661375 & 1023; + $656 = (((($0)) + 352|0) + ($655<<1)|0); + $657 = HEAP16[$656>>1]|0; + $658 = $657 << 16 >> 16; + $659 = ($657<<16>>16)>(-1); + if ($659) { + $660 = $658 >> 9; + $$3966 = $660;$$3970 = $658; + } else { + $$2965 = 10;$$2969 = $658; + while(1) { + $661 = $$2969 ^ -1; + $662 = (($$2965) + 1)|0; + $663 = $$661375 >>> $$2965; + $664 = $663 & 1; + $665 = (($664) + ($661))|0; + $666 = (((($0)) + 2400|0) + ($665<<1)|0); + $667 = HEAP16[$666>>1]|0; + $668 = $667 << 16 >> 16; + $669 = ($667<<16>>16)<(0); + if ($669) { + $$2965 = $662;$$2969 = $668; + } else { + $$3966 = $662;$$3970 = $668; + break; + } + } + } + $670 = $$661375 >>> $$3966; + $671 = (($$66) - ($$3966))|0; + $672 = $$1968&255; + HEAP8[$$5416611868>>0] = $672; + $673 = $$3970 & 256; + $674 = ($673|0)==(0); + if (!($674)) { + break; + } + $676 = $$3970&255; + $677 = ((($$5416611868)) + 1|0); + HEAP8[$677>>0] = $676; + $678 = ((($$5416611868)) + 2|0); + $679 = $$651572; + $680 = (($539) - ($679))|0; + $681 = ($680|0)<(4); + $682 = ($671>>>0)<(15); + if ($681) { + $$541661$lcssa = $678;$$581155$lcssa = $$1968;$$581565$lcssa = $$651572;$$59$lcssa = $671;$$591368$lcssa = $670;$$lcssa1799 = $682;$$lcssa1802 = $680; + break L241; + } else { + $$5416611868 = $678;$$5811551871 = $$1968;$$5815651869 = $$651572;$$5913681870 = $670;$$591872 = $671;$965 = $682;$966 = $680; + } + } + $675 = ((($$5416611868)) + 1|0); + $$601476 = $$541470$ph;$$611668 = $675;$$631054 = $$571048$ph;$$641161 = $$3970;$$651268 = $$591262$ph;$$671574 = $$651572;$$68 = $671;$$681377 = $670; + label = 176; + break L126; + } + } while(0); + if (!($$lcssa1799)) { + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $$581565$lcssa;$$63 = $$59$lcssa;$$631266 = $$591262$ph;$$631372 = $$591368$lcssa; + label = 156; + continue L125; + } + $548 = ($$lcssa1802|0)<(2); + if ($548) { + $$551471 = $$541470$ph;$$551662 = $$541661$lcssa;$$581049 = $$571048$ph;$$591156 = $$581155$lcssa;$$591566 = $$581565$lcssa;$$60 = $$59$lcssa;$$601263 = $$591262$ph;$$601369 = $$591368$lcssa; + label = 145; + continue L125; + } + $579 = HEAP8[$$581565$lcssa>>0]|0; + $580 = $579&255; + $581 = $580 << $$59$lcssa; + $582 = ((($$581565$lcssa)) + 1|0); + $583 = HEAP8[$582>>0]|0; + $584 = $583&255; + $585 = (($$59$lcssa) + 8)|0; + $586 = $584 << $585; + $587 = $581 | $$591368$lcssa; + $588 = $587 | $586; + $589 = ((($$581565$lcssa)) + 2|0); + $590 = (($$59$lcssa) + 16)|0; + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $589;$$63 = $590;$$631266 = $$591262$ph;$$631372 = $588; + label = 156; + continue L125; + break; + } + case 145: { + label = 0; + $549 = $$601369 & 1023; + $550 = (((($0)) + 352|0) + ($549<<1)|0); + $551 = HEAP16[$550>>1]|0; + $552 = $551 << 16 >> 16; + $553 = ($551<<16>>16)>(-1); + if ($553) { + $554 = $552 >> 9; + $555 = (($554) + -1)|0; + $556 = ($555>>>0)<($$60>>>0); + if ($556) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } else { + label = 150; + break L125; + } + } + $557 = ($$60>>>0)>(10); + if ($557) { + $$0972 = 10;$$0975 = $552; + } else { + label = 150; + break L125; + } + while(1) { + $558 = $$0975 ^ -1; + $559 = $$601369 >>> $$0972; + $560 = $559 & 1; + $561 = (($560) + ($558))|0; + $562 = (((($0)) + 2400|0) + ($561<<1)|0); + $563 = HEAP16[$562>>1]|0; + $564 = ($563<<16>>16)<(0); + if (!($564)) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } + $565 = (($$0972) + 1)|0; + $566 = $563 << 16 >> 16; + $567 = (($$0972) + 2)|0; + $568 = ($$60>>>0)<($567>>>0); + if ($568) { + label = 150; + break L125; + } else { + $$0972 = $565;$$0975 = $566; + } + } + break; + } + case 156: { + label = 0; + $591 = $$631372 & 1023; + $592 = (((($0)) + 352|0) + ($591<<1)|0); + $593 = HEAP16[$592>>1]|0; + $594 = $593 << 16 >> 16; + $595 = ($593<<16>>16)>(-1); + if ($595) { + $596 = $594 >> 9; + $597 = $594 & 511; + $$2974 = $596;$$2977 = $597; + } else { + $$1973 = 10;$$1976 = $594; + while(1) { + $598 = $$1976 ^ -1; + $599 = (($$1973) + 1)|0; + $600 = $$631372 >>> $$1973; + $601 = $600 & 1; + $602 = (($601) + ($598))|0; + $603 = (((($0)) + 2400|0) + ($602<<1)|0); + $604 = HEAP16[$603>>1]|0; + $605 = $604 << 16 >> 16; + $606 = ($604<<16>>16)<(0); + if ($606) { + $$1973 = $599;$$1976 = $605; + } else { + $$2974 = $599;$$2977 = $605; + break; + } + } + } + $607 = $$631372 >>> $$2974; + $608 = (($$63) - ($$2974))|0; + $609 = ($$2977>>>0)>(255); + if ($609) { + $$601476 = $$581474;$$611668 = $$581665;$$631054 = $$611052;$$641161 = $$2977;$$651268 = $$631266;$$671574 = $$621569;$$68 = $608;$$681377 = $607; + label = 176; + } else { + $$591475 = $$581474;$$591666 = $$581665;$$621053 = $$611052;$$621159 = $$2977;$$631570 = $$621569;$$64 = $608;$$641267 = $$631266;$$641373 = $607; + label = 160; + continue L46; + } + break; + } + case 179: { + label = 0; + $693 = ($$681575>>>0)<($10>>>0); + if ($693) { + $$631479$ph = $$611477;$$641671$ph = $$621669;$$661057$ph = $$641055;$$671164$ph = $$651162;$$681271$ph = $$661269;$$71$ph = $$69;$$711380$ph = $$691378;$$sink1739 = $$681575; + label = 182; + continue L46; + } else { + $$621478 = $$611477;$$631670 = $$621669;$$651056 = $$641055;$$661163 = $$651162;$$671270 = $$661269;$$691576 = $$681575;$$70 = $$69;$$701379 = $$691378; + label = 180; + continue L46; + } + break; + } + case 184: { + label = 0; + $703 = 1 << $$691272; + $704 = (($703) + -1)|0; + $705 = $704 & $$721381; + $706 = $$721381 >>> $$691272; + $707 = (($$72) - ($$691272))|0; + $708 = (($705) + ($$681165))|0; + $$651481 = $$641480;$$661673 = $$651672;$$681059 = $$671058;$$691166 = $708;$$701273 = $$691272;$$721579 = $$711578;$$73 = $707;$$731382 = $706; + label = 185; + break; + } + case 187: { + label = 0; + $714 = $$741383 & 1023; + $715 = (((($0)) + 3840|0) + ($714<<1)|0); + $716 = HEAP16[$715>>1]|0; + $717 = $716 << 16 >> 16; + $718 = ($716<<16>>16)>(-1); + if ($718) { + $719 = $717 >> 9; + $720 = (($719) + -1)|0; + $721 = ($720>>>0)<($$74>>>0); + if ($721) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } else { + label = 192; + break L125; + } + } + $722 = ($$74>>>0)>(10); + if ($722) { + $$0953 = 10;$$0956 = $717; + } else { + label = 192; + break L125; + } + while(1) { + $723 = $$0956 ^ -1; + $724 = $$741383 >>> $$0953; + $725 = $724 & 1; + $726 = (($725) + ($723))|0; + $727 = (((($0)) + 5888|0) + ($726<<1)|0); + $728 = HEAP16[$727>>1]|0; + $729 = ($728<<16>>16)<(0); + if (!($729)) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } + $730 = (($$0953) + 1)|0; + $731 = $728 << 16 >> 16; + $732 = (($$0953) + 2)|0; + $733 = ($$74>>>0)<($732>>>0); + if ($733) { + label = 192; + break L125; + } else { + $$0953 = $730;$$0956 = $731; + } + } + break; + } + case 198: { + label = 0; + $756 = $$771386 & 1023; + $757 = (((($0)) + 3840|0) + ($756<<1)|0); + $758 = HEAP16[$757>>1]|0; + $759 = $758 << 16 >> 16; + $760 = ($758<<16>>16)>(-1); + if ($760) { + $761 = $759 >> 9; + $762 = $759 & 511; + $$2955 = $761;$$2958 = $762; + } else { + $$1954 = 10;$$1957 = $759; + while(1) { + $763 = $$1957 ^ -1; + $764 = (($$1954) + 1)|0; + $765 = $$771386 >>> $$1954; + $766 = $765 & 1; + $767 = (($766) + ($763))|0; + $768 = (((($0)) + 5888|0) + ($767<<1)|0); + $769 = HEAP16[$768>>1]|0; + $770 = $769 << 16 >> 16; + $771 = ($769<<16>>16)<(0); + if ($771) { + $$1954 = $764;$$1957 = $770; + } else { + $$2955 = $764;$$2958 = $770; + break; + } + } + } + $772 = $$771386 >>> $$2955; + $773 = (($$77) - ($$2955))|0; + $774 = (3456 + ($$2958<<2)|0); + $775 = HEAP32[$774>>2]|0; + $776 = (3584 + ($$2958<<2)|0); + $777 = HEAP32[$776>>2]|0; + $778 = (($$2958) + -4)|0; + $779 = ($778>>>0)<(26); + if ($779) { + $780 = ($773>>>0)<($775>>>0); + if ($780) { + $$701486 = $$691485;$$711678 = $$701677;$$721063 = $777;$$741171 = $$731170;$$741277 = $775;$$771584 = $$761583;$$78 = $773;$$781387 = $772; + label = 203; + continue L125; + } else { + $$741681 = $$701677;$$751066 = $777;$$771174 = $$731170;$$771280 = $775;$$801587 = $$761583;$$81 = $773;$$811390 = $772; + label = 208; + continue L125; + } + } else { + $$751682 = $$701677;$$761067 = $777;$$781175 = $$731170;$$781281 = $775;$$811588 = $$761583;$$82 = $773;$$821391 = $772; + label = 209; + } + break; + } + case 203: { + label = 0; + $781 = ($$771584>>>0)<($10>>>0); + if ($781) { + $$721488$ph = $$701486;$$731680$ph = $$711678;$$741065$ph = $$721063;$$761173$ph = $$741171;$$761279$ph = $$741277;$$80$ph = $$78;$$801389$ph = $$781387;$$sink1746 = $$771584; + label = 206; + continue L46; + } else { + $$711487 = $$701486;$$721679 = $$711678;$$731064 = $$721063;$$751172 = $$741171;$$751278 = $$741277;$$781585 = $$771584;$$79 = $$78;$$791388 = $$781387; + label = 204; + continue L46; + } + break; + } + case 208: { + label = 0; + $791 = 1 << $$771280; + $792 = (($791) + -1)|0; + $793 = $792 & $$811390; + $794 = $$811390 >>> $$771280; + $795 = (($$81) - ($$771280))|0; + $796 = (($793) + ($$751066))|0; + $$751682 = $$741681;$$761067 = $796;$$781175 = $$771174;$$781281 = $$771280;$$811588 = $$801587;$$82 = $795;$$821391 = $794; + label = 209; + break; + } + case 212: { + label = 0; + $807 = (($$801177) + -1)|0; + $808 = ($$801177|0)==(0); + if ($808) { + $$531469 = $$741490;$$531660 = $$771684;$$561047 = $$781069;$$571154 = $807;$$571564 = $$831590;$$58 = $$84;$$581261 = $$801283;$$581367 = $$841393; + label = 139; + } else { + $$751491 = $$741490;$$781685 = $$771684;$$791070 = $$781069;$$811178 = $807;$$811284 = $$801283;$$841591 = $$831590;$$85 = $$84;$$851394 = $$841393; + label = 213; + continue L46; + } + break; + } + } + do { + if ((label|0) == 70) { + label = 0; + $217 = ((($0)) + 52|0); + $218 = HEAP32[$217>>2]|0; + $219 = ($$381135>>>0)<($218>>>0); + if ($219) { + $220 = ($$39>>>0)<(3); + if ($220) { + $$351451 = $$341450;$$351642 = $$341641;$$391030 = $$381029;$$391136 = $$381135;$$391546 = $$381545;$$40 = $$39;$$401243 = $$391242;$$401349 = $$391348; + label = 72; + continue L125; + } else { + $$381454 = $$341450;$$381645 = $$341641;$$421033 = $$381029;$$421139 = $$381135;$$421549 = $$381545;$$43 = $$39;$$431246 = $$391242;$$431352 = $$391348; + label = 77; + continue L125; + } + } else { + HEAP32[$217>>2] = 19; + $$391455 = $$341450;$$391646 = $$341641;$$431034 = $$381029;$$431140 = $$381135;$$431550 = $$381545;$$44 = $$39;$$441247 = $$391242;$$441353 = $$391348; + label = 80; + continue L125; + } + } + else if ((label|0) == 105) { + label = 0; + $418 = ((($0)) + 44|0); + $419 = HEAP32[$418>>2]|0; + $420 = ((($0)) + 48|0); + $421 = HEAP32[$420>>2]|0; + $422 = (($421) + ($419))|0; + $423 = ($$451142>>>0)<($422>>>0); + if (!($423)) { + $529 = ($422|0)==($$451142|0); + if (!($529)) { + $$511467 = $$411457;$$511658 = $$411648;$$541045 = $$451036;$$551152 = $$451142;$$551562 = $$451552;$$56 = $$46;$$561259 = $$461249;$$561365 = $$461355; + label = 136; + continue L46; + } + $530 = ((($0)) + 64|0); + $531 = ((($0)) + 10532|0); + _memcpy(($530|0),($531|0),($419|0))|0; + $532 = ((($0)) + 3552|0); + $533 = HEAP32[$418>>2]|0; + $534 = (((($0)) + 10532|0) + ($533)|0); + $535 = HEAP32[$420>>2]|0; + _memcpy(($532|0),($534|0),($535|0))|0; + $$521468 = $$411457;$$521659 = $$411648;$$551046 = $$451036;$$561153 = $$451142;$$561563 = $$451552;$$57 = $$46;$$571260 = $$461249;$$571366 = $$461355; + label = 138; + break; + } + $424 = ($$46>>>0)<(15); + if (!($424)) { + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $$451552;$$50 = $$46;$$501253 = $$461249;$$501359 = $$461355; + label = 119; + continue L125; + } + $425 = $10; + $426 = $$451552; + $427 = (($425) - ($426))|0; + $428 = ($427|0)<(2); + if ($428) { + $$421458 = $$411457;$$421649 = $$411648;$$461037 = $$451036;$$461143 = $$451142;$$461553 = $$451552;$$47 = $$46;$$471250 = $$461249;$$471356 = $$461355; + label = 108; + continue L125; + } + $459 = HEAP8[$$451552>>0]|0; + $460 = $459&255; + $461 = $460 << $$46; + $462 = ((($$451552)) + 1|0); + $463 = HEAP8[$462>>0]|0; + $464 = $463&255; + $465 = (($$46) + 8)|0; + $466 = $464 << $465; + $467 = $461 | $$461355; + $468 = $467 | $466; + $469 = ((($$451552)) + 2|0); + $470 = (($$46) + 16)|0; + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $469;$$50 = $470;$$501253 = $$461249;$$501359 = $468; + label = 119; + continue L125; + } + else if ((label|0) == 176) { + label = 0; + $683 = $$641161 & 511; + $684 = ($683|0)==(256); + if ($684) { + $$761492 = $$601476;$$801071 = $$631054;$$801687 = $$611668;$$821285 = $$651268;$$831180 = 256;$$851592 = $$671574;$$86 = $$68;$$861395 = $$681377; + label = 220; + break L125; + } + $685 = (($683) + -257)|0; + $686 = (3208 + ($685<<2)|0); + $687 = HEAP32[$686>>2]|0; + $688 = (3332 + ($685<<2)|0); + $689 = HEAP32[$688>>2]|0; + $690 = (($683) + -265)|0; + $691 = ($690>>>0)<(20); + if ($691) { + $692 = ($$68>>>0)<($687>>>0); + if ($692) { + $$611477 = $$601476;$$621669 = $$611668;$$641055 = $$631054;$$651162 = $689;$$661269 = $687;$$681575 = $$671574;$$69 = $$68;$$691378 = $$681377; + label = 179; + continue L125; + } else { + $$641480 = $$601476;$$651672 = $$611668;$$671058 = $$631054;$$681165 = $689;$$691272 = $687;$$711578 = $$671574;$$72 = $$68;$$721381 = $$681377; + label = 184; + continue L125; + } + } else { + $$651481 = $$601476;$$661673 = $$611668;$$681059 = $$631054;$$691166 = $689;$$701273 = $687;$$721579 = $$671574;$$73 = $$68;$$731382 = $$681377; + label = 185; + } + } + else if ((label|0) == 209) { + label = 0; + $797 = $$751682; + $798 = $3; + $799 = (($797) - ($798))|0; + $$not = ($799>>>0)>=($$761067>>>0); + $$not1747 = $14 ^ 1; + $brmerge = $$not | $$not1747; + if (!($brmerge)) { + $$731489 = $799;$$761683 = $$751682;$$771068 = $$761067;$$791176 = $$781175;$$791282 = $$781281;$$821589 = $$811588;$$83 = $$82;$$831392 = $$821391; + label = 210; + continue L46; + } + $800 = (($799) - ($$761067))|0; + $801 = $800 & $$1753; + $802 = (($3) + ($801)|0); + $803 = ($$751682>>>0)>($802>>>0); + $804 = $803 ? $$751682 : $802; + $805 = (($804) + ($$781175)|0); + $806 = ($805>>>0)>($12>>>0); + if ($806) { + $$741490 = $799;$$771684 = $$751682;$$781069 = $$761067;$$801177 = $$781175;$$801283 = $$781281;$$831590 = $$811588;$$84 = $$82;$$841393 = $$821391; + label = 212; + continue L125; + } else { + $$0978 = $802;$$791686 = $$751682;$$821179 = $$781175; + } + while(1) { + $816 = HEAP8[$$0978>>0]|0; + HEAP8[$$791686>>0] = $816; + $817 = ((($$0978)) + 1|0); + $818 = HEAP8[$817>>0]|0; + $819 = ((($$791686)) + 1|0); + HEAP8[$819>>0] = $818; + $820 = ((($$0978)) + 2|0); + $821 = HEAP8[$820>>0]|0; + $822 = ((($$791686)) + 2|0); + HEAP8[$822>>0] = $821; + $823 = ((($$791686)) + 3|0); + $824 = ((($$0978)) + 3|0); + $825 = (($$821179) + -3)|0; + $826 = ($825|0)>(2); + if ($826) { + $$0978 = $824;$$791686 = $823;$$821179 = $825; + } else { + break; + } + } + $827 = ($825|0)>(0); + if ($827) { + $828 = HEAP8[$824>>0]|0; + HEAP8[$823>>0] = $828; + $829 = ($825|0)==(1); + if (!($829)) { + $830 = ((($$0978)) + 4|0); + $831 = HEAP8[$830>>0]|0; + $832 = ((($$791686)) + 4|0); + HEAP8[$832>>0] = $831; + } + $833 = (($823) + ($825)|0); + $$531469 = $799;$$531660 = $833;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } else { + $$531469 = $799;$$531660 = $823;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } + } + } while(0); + if ((label|0) == 138) { + label = 0; + $536 = ((($0)) + 24|0); + $537 = HEAP32[$536>>2]|0; + $538 = (($537) + -1)|0; + HEAP32[$536>>2] = $538; + $$391455 = $$521468;$$391646 = $$521659;$$431034 = $$551046;$$431140 = $$561153;$$431550 = $$561563;$$44 = $$57;$$441247 = $$571260;$$441353 = $$571366; + label = 80; + continue; + } + else if ((label|0) == 139) { + label = 0; + $$541470$ph = $$531469;$$541661$ph = $$531660;$$571048$ph = $$561047;$$581155$ph = $$571154;$$581565$ph = $$571564;$$59$ph = $$58;$$591262$ph = $$581261;$$591368$ph = $$581367; + label = 140; + continue; + } + else if ((label|0) == 185) { + label = 0; + $709 = ($$73>>>0)<(15); + if (!($709)) { + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $$721579;$$77 = $$73;$$771386 = $$731382; + label = 198; + continue; + } + $710 = $10; + $711 = $$721579; + $712 = (($710) - ($711))|0; + $713 = ($712|0)<(2); + if ($713) { + $$661482 = $$651481;$$671674 = $$661673;$$691060 = $$681059;$$701167 = $$691166;$$711274 = $$701273;$$731580 = $$721579;$$74 = $$73;$$741383 = $$731382; + label = 187; + continue; + } + $744 = HEAP8[$$721579>>0]|0; + $745 = $744&255; + $746 = $745 << $$73; + $747 = ((($$721579)) + 1|0); + $748 = HEAP8[$747>>0]|0; + $749 = $748&255; + $750 = (($$73) + 8)|0; + $751 = $749 << $750; + $752 = $746 | $$731382; + $753 = $752 | $751; + $754 = ((($$721579)) + 2|0); + $755 = (($$73) + 16)|0; + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $754;$$77 = $755;$$771386 = $753; + label = 198; + continue; + } + } + if ((label|0) == 113) { + label = 0; + $449 = ($$461553>>>0)<($10>>>0); + if ($449) { + $$441460$ph = $$421458;$$441651$ph = $$421649;$$481039$ph = $$461037;$$481145$ph = $$461143;$$49$ph = $$47;$$491252$ph = $$471250;$$491358$ph = $$471356;$$sink1729 = $$461553; + label = 116; + continue; + } else { + $$431459 = $$421458;$$431650 = $$421649;$$471038 = $$461037;$$471144 = $$461143;$$471554 = $$461553;$$48 = $$47;$$481251 = $$471250;$$481357 = $$471356; + label = 114; + continue; + } + } + else if ((label|0) == 150) { + label = 0; + $569 = ($$591566>>>0)<($10>>>0); + if ($569) { + $$571473$ph = $$551471;$$571664$ph = $$551662;$$601051$ph = $$581049;$$611158$ph = $$591156;$$62$ph = $$60;$$621265$ph = $$601263;$$621371$ph = $$601369;$$sink1736 = $$591566; + label = 153; + continue; + } else { + $$561472 = $$551471;$$561663 = $$551662;$$591050 = $$581049;$$601157 = $$591156;$$601567 = $$591566;$$61 = $$60;$$611264 = $$601263;$$611370 = $$601369; + label = 151; + continue; + } + } + else if ((label|0) == 192) { + label = 0; + $734 = ($$731580>>>0)<($10>>>0); + if ($734) { + $$681484$ph = $$661482;$$691676$ph = $$671674;$$711062$ph = $$691060;$$721169$ph = $$701167;$$731276$ph = $$711274;$$76$ph = $$74;$$761385$ph = $$741383;$$sink1743 = $$731580; + label = 195; + continue; + } else { + $$671483 = $$661482;$$681675 = $$671674;$$701061 = $$691060;$$711168 = $$701167;$$721275 = $$711274;$$741581 = $$731580;$$75 = $$74;$$751384 = $$741383; + label = 193; + continue; + } + } + else if ((label|0) == 220) { + label = 0; + $834 = ((($0)) + 20|0); + $835 = HEAP32[$834>>2]|0; + $836 = $835 & 1; + $837 = ($836|0)==(0); + if ($837) { + $$01416 = $$761492;$$01607 = $$801687;$$41511 = $$851592;$$5 = $$86;$$51102 = $$831180;$$51208 = $$821285;$$51314 = $$861395;$$5996 = $$801071; + label = 14; + continue; + } + $838 = $6 & 1; + $839 = ($838|0)==(0); + if ($839) { + $$881504 = $$761492;$$921083 = $$801071;$$921699 = $$801687;$$941191 = $$831180;$$941297 = $$821285;$$971604 = $$851592;$$98 = $$86;$$981407 = $$861395; + label = 242; + continue; + } else { + $$801496 = $$761492;$$841075 = $$801071;$$841691 = $$801687;$$861289 = $$821285;$$891596 = $$851592;$$90 = $$86;$$901399 = $$861395; + label = 226; + continue; + } + } + } + if ((label|0) == 258) { + STACKTOP = sp;return ($$0951|0); + } + $892 = ((($0)) + 28|0); + $893 = HEAP32[$892>>2]|0; + $894 = $893 & 65535; + $895 = $893 >>> 16; + $896 = ($888|0)==(0); + if ($896) { + $$0937$lcssa = $895;$$0938$lcssa = $894; + } else { + $897 = (($888>>>0) % 5552)&-1; + $$01834 = $897;$$09371833 = $895;$$09381832 = $894;$$09431831 = $888;$$09441830 = $4; + while(1) { + $898 = ($$01834>>>0)>(7); + if ($898) { + $899 = (($$01834) + -8)|0; + $900 = $899 & -8; + $scevgep = ((($$09441830)) + 8|0); + $$09411816 = 0;$$11818 = $$09371833;$$19391817 = $$09381832;$$19451815 = $$09441830; + while(1) { + $904 = HEAP8[$$19451815>>0]|0; + $905 = $904&255; + $906 = (($905) + ($$19391817))|0; + $907 = (($906) + ($$11818))|0; + $908 = ((($$19451815)) + 1|0); + $909 = HEAP8[$908>>0]|0; + $910 = $909&255; + $911 = (($906) + ($910))|0; + $912 = (($907) + ($911))|0; + $913 = ((($$19451815)) + 2|0); + $914 = HEAP8[$913>>0]|0; + $915 = $914&255; + $916 = (($911) + ($915))|0; + $917 = (($912) + ($916))|0; + $918 = ((($$19451815)) + 3|0); + $919 = HEAP8[$918>>0]|0; + $920 = $919&255; + $921 = (($916) + ($920))|0; + $922 = (($917) + ($921))|0; + $923 = ((($$19451815)) + 4|0); + $924 = HEAP8[$923>>0]|0; + $925 = $924&255; + $926 = (($921) + ($925))|0; + $927 = (($922) + ($926))|0; + $928 = ((($$19451815)) + 5|0); + $929 = HEAP8[$928>>0]|0; + $930 = $929&255; + $931 = (($926) + ($930))|0; + $932 = (($927) + ($931))|0; + $933 = ((($$19451815)) + 6|0); + $934 = HEAP8[$933>>0]|0; + $935 = $934&255; + $936 = (($931) + ($935))|0; + $937 = (($932) + ($936))|0; + $938 = ((($$19451815)) + 7|0); + $939 = HEAP8[$938>>0]|0; + $940 = $939&255; + $941 = (($936) + ($940))|0; + $942 = (($937) + ($941))|0; + $943 = (($$09411816) + 8)|0; + $944 = ((($$19451815)) + 8|0); + $945 = $943 | 7; + $946 = ($945>>>0)<($$01834>>>0); + if ($946) { + $$09411816 = $943;$$11818 = $942;$$19391817 = $941;$$19451815 = $944; + } else { + break; + } + } + $901 = (($900) + 8)|0; + $scevgep1947 = (($scevgep) + ($900)|0); + $$0941$lcssa = $901;$$1$lcssa = $942;$$1939$lcssa = $941;$$1945$lcssa = $scevgep1947; + } else { + $$0941$lcssa = 0;$$1$lcssa = $$09371833;$$1939$lcssa = $$09381832;$$1945$lcssa = $$09441830; + } + $902 = ($$01834>>>0)>($$0941$lcssa>>>0); + if ($902) { + $903 = (($$01834) - ($$0941$lcssa))|0; + $$19421823 = $$0941$lcssa;$$21825 = $$1$lcssa;$$29401824 = $$1939$lcssa;$$29461822 = $$1945$lcssa; + while(1) { + $947 = ((($$29461822)) + 1|0); + $948 = HEAP8[$$29461822>>0]|0; + $949 = $948&255; + $950 = (($949) + ($$29401824))|0; + $951 = (($950) + ($$21825))|0; + $952 = (($$19421823) + 1)|0; + $exitcond = ($952|0)==($$01834|0); + if ($exitcond) { + break; + } else { + $$19421823 = $952;$$21825 = $951;$$29401824 = $950;$$29461822 = $947; + } + } + $scevgep1948 = (($$1945$lcssa) + ($903)|0); + $$2$lcssa = $951;$$2940$lcssa = $950;$$2946$lcssa = $scevgep1948; + } else { + $$2$lcssa = $$1$lcssa;$$2940$lcssa = $$1939$lcssa;$$2946$lcssa = $$1945$lcssa; + } + $953 = (($$2940$lcssa>>>0) % 65521)&-1; + $954 = (($$2$lcssa>>>0) % 65521)&-1; + $955 = (($$09431831) - ($$01834))|0; + $956 = ($955|0)==(0); + if ($956) { + $$0937$lcssa = $954;$$0938$lcssa = $953; + break; + } else { + $$01834 = 5552;$$09371833 = $954;$$09381832 = $953;$$09431831 = $955;$$09441830 = $$2946$lcssa; + } + } + } + $957 = $$0937$lcssa << 16; + $958 = $957 | $$0938$lcssa; + HEAP32[$892>>2] = $958; + $959 = ($$1961|0)!=(0); + $960 = $6 & 1; + $961 = ($960|0)==(0); + $or$cond1752 = $961 | $959; + if ($or$cond1752) { + $$0951 = $$1961; + STACKTOP = sp;return ($$0951|0); + } else { + $962 = ((($0)) + 16|0); + $963 = HEAP32[$962>>2]|0; + $964 = ($958|0)==($963|0); + $$1961$ = $964 ? $$1961 : -2; + STACKTOP = sp;return ($$1961$|0); + } + return (0)|0; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[17668>>2]|0;HEAP32[$0+4>>2]=HEAP32[17668+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[17668+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[17668+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[17668+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[17668+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[17668+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[17668+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTexture($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy2 = sp + 40|0; + $$byval_copy1 = sp + 32|0; + $$byval_copy = sp + 8|0; + $4 = sp; + $5 = (+($1|0)); + HEAPF32[$4>>2] = $5; + $6 = ((($4)) + 4|0); + $7 = (+($2|0)); + HEAPF32[$6>>2] = $7; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$4+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$3+3>>0]|0; + _DrawTextureEx($$byval_copy,$$byval_copy1,0.0,1.0,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextureEx($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0.0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tmpcast$byval_copy = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy3 = sp + 104|0; + $tmpcast$byval_copy = sp + 96|0; + $$byval_copy2 = sp + 80|0; + $$byval_copy1 = sp + 64|0; + $$byval_copy = sp + 40|0; + $5 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + HEAP32[$5>>2] = 0; + $8 = ((($5)) + 4|0); + HEAP32[$8>>2] = 0; + $9 = ((($5)) + 8|0); + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[$9>>2] = $11; + $12 = ((($5)) + 12|0); + $13 = ((($0)) + 8|0); + $14 = HEAP32[$13>>2]|0; + HEAP32[$12>>2] = $14; + $15 = +HEAPF32[$1>>2]; + $16 = (~~(($15))); + HEAP32[$6>>2] = $16; + $17 = ((($6)) + 4|0); + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = (~~(($19))); + HEAP32[$17>>2] = $20; + $21 = ((($6)) + 8|0); + $22 = HEAP32[$10>>2]|0; + $23 = (+($22|0)); + $24 = $23 * $3; + $25 = (~~(($24))); + HEAP32[$21>>2] = $25; + $26 = ((($6)) + 12|0); + $27 = HEAP32[$13>>2]|0; + $28 = (+($27|0)); + $29 = $28 * $3; + $30 = (~~(($29))); + HEAP32[$26>>2] = $30; + $31 = $7; + $32 = $31; + HEAP32[$32>>2] = 0; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$5+12>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$tmpcast$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$tmpcast$byval_copy+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy3>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy3+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy3+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy3+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTexturePro($$byval_copy,$$byval_copy1,$$byval_copy2,$tmpcast$byval_copy,$2,$$byval_copy3); + STACKTOP = sp;return; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(21751,$0,$1)|0); + STACKTOP = sp;return (21751|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[4970]|0; + $4 = HEAP32[928]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[4971] = $7; + HEAP32[928] = $7; + $$sink = 0; + } + HEAP32[4970] = $$sink; + $8 = HEAP32[4971]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(11551,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(21751,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _DrawGrid($0,$1) { + $0 = $0|0; + $1 = +$1; + var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0|0) / 2)&-1; + _rlBegin(1); + $3 = (0 - ($2))|0; + $4 = ($2|0)<($3|0); + if ($4) { + _rlEnd(); + return; + } + $5 = (+($3|0)); + $6 = $5 * $1; + $7 = (+($2|0)); + $8 = $7 * $1; + $$024 = $3; + while(1) { + $9 = ($$024|0)==(0); + if ($9) { + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + } else { + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + } + $10 = (+($$024|0)); + $11 = $10 * $1; + _rlVertex3f($11,0.0,$6); + _rlVertex3f($11,0.0,$8); + _rlVertex3f($6,0.0,$11); + _rlVertex3f($8,0.0,$11); + $12 = (($$024) + 1)|0; + $13 = ($$024|0)<($2|0); + if ($13) { + $$024 = $12; + } else { + break; + } + } + _rlEnd(); + return; +} +function _LoadDefaultMaterial($0) { + $0 = $0|0; + var $$sroa$09 = 0, $$sroa$09$56$sroa_idx = 0, $$sroa$18$0$$sroa_idx15 = 0, $$sroa$6$0$$sroa_idx = 0, $1 = 0, $2 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $$sroa$09 = sp; + $1 = sp + 136|0; + $2 = sp + 116|0; + dest=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultShader($1); + dest=$$sroa$09; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultTexture($2); + $$sroa$09$56$sroa_idx = ((($$sroa$09)) + 56|0); + ;HEAP32[$$sroa$09$56$sroa_idx>>2]=HEAP32[$2>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+16>>2]=HEAP32[$2+16>>2]|0; + dest=$0; src=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $$sroa$6$0$$sroa_idx = ((($0)) + 116|0); + $$sroa$18$0$$sroa_idx15 = ((($0)) + 128|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=4294967295|0; + HEAPF32[$$sroa$18$0$$sroa_idx15>>2] = 100.0; + STACKTOP = sp;return; +} +function _LoadHeightmap($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(496|0); + $$byval_copy1 = sp + 484|0; + $$byval_copy = sp + 464|0; + $3 = sp + 200|0; + $4 = sp + 136|0; + $5 = sp; + _memset(($3|0),0,264)|0; + ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0; + _GenMeshHeightmap($3,$$byval_copy,$$byval_copy1); + _rlglLoadMesh($3,0); + $6 = ((($3)) + 68|0); + _MatrixIdentity($4); + dest=$6; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $7 = ((($3)) + 132|0); + _LoadDefaultMaterial($5); + _memcpy(($7|0),($5|0),132)|0; + _memcpy(($0|0),($3|0),264)|0; + STACKTOP = sp;return; +} +function _GenMeshHeightmap($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0235251 = 0, $$0236260 = 0, $$0238258 = 0, $$0240257 = 0, $$0242256 = 0, $$1239$lcssa = 0, $$1239249 = 0, $$1241$lcssa = 0, $$1241248 = 0, $$1243$lcssa = 0, $$1243247 = 0, $$byval_copy = 0, $$sroa$33$0$$sroa_idx200 = 0, $$sroa$50$0$$sroa_idx217 = 0, $$sroa$50219$0$$sroa_idx220 = 0, $$sroa$54$0$$sroa_idx224 = 0, $$sroa$54226$0$$sroa_idx227 = 0, $$sroa$55 = 0, $$sroa$55$0$$sroa_idx = 0, $$sroa$8$0$$sroa_idx172 = 0; + var $$sroa$8174$0$$sroa_idx175 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0.0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0.0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0.0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0.0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; + var $208 = 0, $209 = 0, $21 = 0.0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0, $29 = 0.0; + var $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0; + var $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond264 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp + 36|0; + $$sroa$55 = sp; + dest=$$sroa$55; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$1+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = (($4) + -1)|0; + $9 = (($6) + -1)|0; + $10 = Math_imul($9, $8)|0; + $11 = ($10*6)|0; + $12 = ($10*72)|0; + $13 = (_malloc($12)|0); + $14 = (_malloc($12)|0); + $15 = ($10*48)|0; + $16 = (_malloc($15)|0); + $17 = +HEAPF32[$2>>2]; + $18 = (+($4|0)); + $19 = $17 / $18; + $20 = ((($2)) + 4|0); + $21 = +HEAPF32[$20>>2]; + $22 = $21 / 255.0; + $23 = ((($2)) + 8|0); + $24 = +HEAPF32[$23>>2]; + $25 = (+($6|0)); + $26 = $24 / $25; + $27 = ($6|0)>(1); + if (!($27)) { + _free($7); + HEAP32[$0>>2] = $11; + $$sroa$8$0$$sroa_idx172 = ((($0)) + 4|0); + HEAP32[$$sroa$8$0$$sroa_idx172>>2] = 0; + $$sroa$8174$0$$sroa_idx175 = ((($0)) + 8|0); + HEAP32[$$sroa$8174$0$$sroa_idx175>>2] = $13; + $$sroa$33$0$$sroa_idx200 = ((($0)) + 12|0); + HEAP32[$$sroa$33$0$$sroa_idx200>>2] = $16; + $$sroa$50$0$$sroa_idx217 = ((($0)) + 16|0); + HEAP32[$$sroa$50$0$$sroa_idx217>>2] = 0; + $$sroa$50219$0$$sroa_idx220 = ((($0)) + 20|0); + HEAP32[$$sroa$50219$0$$sroa_idx220>>2] = $14; + $$sroa$54$0$$sroa_idx224 = ((($0)) + 24|0); + HEAP32[$$sroa$54$0$$sroa_idx224>>2] = 0; + $$sroa$54226$0$$sroa_idx227 = ((($0)) + 28|0); + HEAP32[$$sroa$54226$0$$sroa_idx227>>2] = 0; + $$sroa$55$0$$sroa_idx = ((($0)) + 32|0); + dest=$$sroa$55$0$$sroa_idx; src=$$sroa$55; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + $28 = ($4|0)>(1); + $29 = (+($8|0)); + $30 = (+($9|0)); + $31 = ($4*18)|0; + $32 = (($31) + -18)|0; + $33 = ($4*12)|0; + $34 = (($33) + -12)|0; + $35 = (($31) + -18)|0; + $$0236260 = 0;$$0238258 = 0;$$0240257 = 0;$$0242256 = 0; + while(1) { + $37 = (($$0236260) + 1)|0; + if ($28) { + $38 = Math_imul($$0236260, $4)|0; + $39 = (+($$0236260|0)); + $40 = $26 * $39; + $41 = Math_imul($37, $4)|0; + $42 = (+($37|0)); + $43 = $26 * $42; + $44 = $39 / $30; + $45 = $42 / $30; + $46 = (($32) + ($$0242256))|0; + $47 = (($35) + ($$0238258))|0; + $$0235251 = 0;$$1239249 = $$0238258;$$1241248 = $$0240257;$$1243247 = $$0242256; + while(1) { + $48 = (+($$0235251|0)); + $49 = $19 * $48; + $50 = (($13) + ($$1243247<<2)|0); + HEAPF32[$50>>2] = $49; + $51 = (($$0235251) + ($38))|0; + $52 = (($7) + ($51<<2)|0); + $53 = HEAP8[$52>>0]|0; + $54 = $53&255; + $55 = (((($7) + ($51<<2)|0)) + 1|0); + $56 = HEAP8[$55>>0]|0; + $57 = $56&255; + $58 = (($57) + ($54))|0; + $59 = (((($7) + ($51<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = $60&255; + $62 = (($58) + ($61))|0; + $63 = (($62>>>0) / 3)&-1; + $64 = (+($63|0)); + $65 = $22 * $64; + $66 = (($$1243247) + 1)|0; + $67 = (($13) + ($66<<2)|0); + HEAPF32[$67>>2] = $65; + $68 = (($$1243247) + 2)|0; + $69 = (($13) + ($68<<2)|0); + HEAPF32[$69>>2] = $40; + $70 = (($$1243247) + 3)|0; + $71 = (($13) + ($70<<2)|0); + HEAPF32[$71>>2] = $49; + $72 = (($$0235251) + ($41))|0; + $73 = (($7) + ($72<<2)|0); + $74 = HEAP8[$73>>0]|0; + $75 = $74&255; + $76 = (((($7) + ($72<<2)|0)) + 1|0); + $77 = HEAP8[$76>>0]|0; + $78 = $77&255; + $79 = (($78) + ($75))|0; + $80 = (((($7) + ($72<<2)|0)) + 2|0); + $81 = HEAP8[$80>>0]|0; + $82 = $81&255; + $83 = (($79) + ($82))|0; + $84 = (($83>>>0) / 3)&-1; + $85 = (+($84|0)); + $86 = $22 * $85; + $87 = (($$1243247) + 4)|0; + $88 = (($13) + ($87<<2)|0); + HEAPF32[$88>>2] = $86; + $89 = (($$1243247) + 5)|0; + $90 = (($13) + ($89<<2)|0); + HEAPF32[$90>>2] = $43; + $91 = (($$0235251) + 1)|0; + $92 = (+($91|0)); + $93 = $19 * $92; + $94 = (($$1243247) + 6)|0; + $95 = (($13) + ($94<<2)|0); + HEAPF32[$95>>2] = $93; + $96 = (($91) + ($38))|0; + $97 = (($7) + ($96<<2)|0); + $98 = HEAP8[$97>>0]|0; + $99 = $98&255; + $100 = (((($7) + ($96<<2)|0)) + 1|0); + $101 = HEAP8[$100>>0]|0; + $102 = $101&255; + $103 = (($102) + ($99))|0; + $104 = (((($7) + ($96<<2)|0)) + 2|0); + $105 = HEAP8[$104>>0]|0; + $106 = $105&255; + $107 = (($103) + ($106))|0; + $108 = (($107>>>0) / 3)&-1; + $109 = (+($108|0)); + $110 = $22 * $109; + $111 = (($$1243247) + 7)|0; + $112 = (($13) + ($111<<2)|0); + HEAPF32[$112>>2] = $110; + $113 = (($$1243247) + 8)|0; + $114 = (($13) + ($113<<2)|0); + HEAPF32[$114>>2] = $40; + $115 = HEAP32[$95>>2]|0; + $116 = (($$1243247) + 9)|0; + $117 = (($13) + ($116<<2)|0); + HEAP32[$117>>2] = $115; + $118 = HEAP32[$112>>2]|0; + $119 = (($$1243247) + 10)|0; + $120 = (($13) + ($119<<2)|0); + HEAP32[$120>>2] = $118; + $121 = HEAP32[$114>>2]|0; + $122 = (($$1243247) + 11)|0; + $123 = (($13) + ($122<<2)|0); + HEAP32[$123>>2] = $121; + $124 = HEAP32[$71>>2]|0; + $125 = (($$1243247) + 12)|0; + $126 = (($13) + ($125<<2)|0); + HEAP32[$126>>2] = $124; + $127 = HEAP32[$88>>2]|0; + $128 = (($$1243247) + 13)|0; + $129 = (($13) + ($128<<2)|0); + HEAP32[$129>>2] = $127; + $130 = HEAP32[$90>>2]|0; + $131 = (($$1243247) + 14)|0; + $132 = (($13) + ($131<<2)|0); + HEAP32[$132>>2] = $130; + $133 = (($$1243247) + 15)|0; + $134 = (($13) + ($133<<2)|0); + HEAPF32[$134>>2] = $93; + $135 = (($91) + ($41))|0; + $136 = (($7) + ($135<<2)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (((($7) + ($135<<2)|0)) + 1|0); + $140 = HEAP8[$139>>0]|0; + $141 = $140&255; + $142 = (($141) + ($138))|0; + $143 = (((($7) + ($135<<2)|0)) + 2|0); + $144 = HEAP8[$143>>0]|0; + $145 = $144&255; + $146 = (($142) + ($145))|0; + $147 = (($146>>>0) / 3)&-1; + $148 = (+($147|0)); + $149 = $22 * $148; + $150 = (($$1243247) + 16)|0; + $151 = (($13) + ($150<<2)|0); + HEAPF32[$151>>2] = $149; + $152 = (($$1243247) + 17)|0; + $153 = (($13) + ($152<<2)|0); + HEAPF32[$153>>2] = $43; + $154 = $48 / $29; + $155 = (($16) + ($$1241248<<2)|0); + HEAPF32[$155>>2] = $154; + $156 = (($$1241248) + 1)|0; + $157 = (($16) + ($156<<2)|0); + HEAPF32[$157>>2] = $44; + $158 = (($$1241248) + 2)|0; + $159 = (($16) + ($158<<2)|0); + HEAPF32[$159>>2] = $154; + $160 = (($$1241248) + 3)|0; + $161 = (($16) + ($160<<2)|0); + HEAPF32[$161>>2] = $45; + $162 = $92 / $29; + $163 = (($$1241248) + 4)|0; + $164 = (($16) + ($163<<2)|0); + HEAPF32[$164>>2] = $162; + $165 = (($$1241248) + 5)|0; + $166 = (($16) + ($165<<2)|0); + HEAPF32[$166>>2] = $44; + $167 = (($$1241248) + 6)|0; + $168 = (($16) + ($167<<2)|0); + HEAPF32[$168>>2] = $162; + $169 = (($$1241248) + 7)|0; + $170 = (($16) + ($169<<2)|0); + HEAPF32[$170>>2] = $44; + $171 = HEAP32[$159>>2]|0; + $172 = (($$1241248) + 8)|0; + $173 = (($16) + ($172<<2)|0); + HEAP32[$173>>2] = $171; + $174 = HEAP32[$161>>2]|0; + $175 = (($$1241248) + 9)|0; + $176 = (($16) + ($175<<2)|0); + HEAP32[$176>>2] = $174; + $177 = (($$1241248) + 10)|0; + $178 = (($16) + ($177<<2)|0); + HEAPF32[$178>>2] = $162; + $179 = (($$1241248) + 11)|0; + $180 = (($16) + ($179<<2)|0); + HEAPF32[$180>>2] = $45; + $181 = (($14) + ($$1239249<<2)|0); + HEAPF32[$181>>2] = 0.0; + $182 = (($$1239249) + 1)|0; + $183 = (($14) + ($182<<2)|0); + HEAPF32[$183>>2] = 1.0; + $184 = (($$1239249) + 2)|0; + $185 = (($14) + ($184<<2)|0); + HEAPF32[$185>>2] = 0.0; + $186 = (($$1239249) + 3)|0; + $187 = (($14) + ($186<<2)|0); + HEAPF32[$187>>2] = 0.0; + $188 = (($$1239249) + 4)|0; + $189 = (($14) + ($188<<2)|0); + HEAPF32[$189>>2] = 1.0; + $190 = (($$1239249) + 5)|0; + $191 = (($14) + ($190<<2)|0); + HEAPF32[$191>>2] = 0.0; + $192 = (($$1239249) + 6)|0; + $193 = (($14) + ($192<<2)|0); + HEAPF32[$193>>2] = 0.0; + $194 = (($$1239249) + 7)|0; + $195 = (($14) + ($194<<2)|0); + HEAPF32[$195>>2] = 1.0; + $196 = (($$1239249) + 8)|0; + $197 = (($14) + ($196<<2)|0); + HEAPF32[$197>>2] = 0.0; + $198 = (($$1239249) + 9)|0; + $199 = (($14) + ($198<<2)|0); + HEAPF32[$199>>2] = 0.0; + $200 = (($$1239249) + 10)|0; + $201 = (($14) + ($200<<2)|0); + HEAPF32[$201>>2] = 1.0; + $202 = (($$1239249) + 11)|0; + $203 = (($14) + ($202<<2)|0); + HEAPF32[$203>>2] = 0.0; + $204 = (($$1239249) + 12)|0; + $205 = (($14) + ($204<<2)|0); + HEAPF32[$205>>2] = 0.0; + $206 = (($$1239249) + 13)|0; + $207 = (($14) + ($206<<2)|0); + HEAPF32[$207>>2] = 1.0; + $208 = (($$1239249) + 14)|0; + $209 = (($14) + ($208<<2)|0); + HEAPF32[$209>>2] = 0.0; + $210 = (($$1239249) + 15)|0; + $211 = (($14) + ($210<<2)|0); + HEAPF32[$211>>2] = 0.0; + $212 = (($$1239249) + 16)|0; + $213 = (($14) + ($212<<2)|0); + HEAPF32[$213>>2] = 1.0; + $214 = (($$1239249) + 17)|0; + $215 = (($14) + ($214<<2)|0); + HEAPF32[$215>>2] = 0.0; + $216 = (($$1243247) + 18)|0; + $217 = (($$1241248) + 12)|0; + $218 = (($$1239249) + 18)|0; + $exitcond = ($91|0)==($8|0); + if ($exitcond) { + break; + } else { + $$0235251 = $91;$$1239249 = $218;$$1241248 = $217;$$1243247 = $216; + } + } + $36 = (($34) + ($$0240257))|0; + $$1239$lcssa = $47;$$1241$lcssa = $36;$$1243$lcssa = $46; + } else { + $$1239$lcssa = $$0238258;$$1241$lcssa = $$0240257;$$1243$lcssa = $$0242256; + } + $exitcond264 = ($37|0)==($9|0); + if ($exitcond264) { + break; + } else { + $$0236260 = $37;$$0238258 = $$1239$lcssa;$$0240257 = $$1241$lcssa;$$0242256 = $$1243$lcssa; + } + } + _free($7); + HEAP32[$0>>2] = $11; + $$sroa$8$0$$sroa_idx172 = ((($0)) + 4|0); + HEAP32[$$sroa$8$0$$sroa_idx172>>2] = 0; + $$sroa$8174$0$$sroa_idx175 = ((($0)) + 8|0); + HEAP32[$$sroa$8174$0$$sroa_idx175>>2] = $13; + $$sroa$33$0$$sroa_idx200 = ((($0)) + 12|0); + HEAP32[$$sroa$33$0$$sroa_idx200>>2] = $16; + $$sroa$50$0$$sroa_idx217 = ((($0)) + 16|0); + HEAP32[$$sroa$50$0$$sroa_idx217>>2] = 0; + $$sroa$50219$0$$sroa_idx220 = ((($0)) + 20|0); + HEAP32[$$sroa$50219$0$$sroa_idx220>>2] = $14; + $$sroa$54$0$$sroa_idx224 = ((($0)) + 24|0); + HEAP32[$$sroa$54$0$$sroa_idx224>>2] = 0; + $$sroa$54226$0$$sroa_idx227 = ((($0)) + 28|0); + HEAP32[$$sroa$54226$0$$sroa_idx227>>2] = 0; + $$sroa$55$0$$sroa_idx = ((($0)) + 32|0); + dest=$$sroa$55$0$$sroa_idx; src=$$sroa$55; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _UnloadMesh($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + _rlglUnloadMesh($0); + return; +} +function _UnloadModel($0) { + $0 = $0|0; + var $$byval_copy = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + _UnloadMesh($0); + $1 = ((($0)) + 132|0); + _memcpy(($$byval_copy|0),($1|0),132)|0; + _UnloadMaterial($$byval_copy); + _TraceLog(0,11559,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadMaterial($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 56|0); + $2 = HEAP32[$1>>2]|0; + _rlDeleteTextures($2); + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + _rlDeleteTextures($4); + $5 = ((($0)) + 96|0); + $6 = HEAP32[$5>>2]|0; + _rlDeleteTextures($6); + return; +} +function _DrawModel($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + $3 = $3|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy4 = sp + 324|0; + $$byval_copy3 = sp + 312|0; + $$byval_copy2 = sp + 300|0; + $$byval_copy1 = sp + 288|0; + $$byval_copy = sp + 24|0; + $4 = sp + 12|0; + $5 = sp; + HEAPF32[$4>>2] = $2; + $6 = ((($4)) + 4|0); + HEAPF32[$6>>2] = $2; + $7 = ((($4)) + 8|0); + HEAPF32[$7>>2] = $2; + ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0; + _memcpy(($$byval_copy|0),($0|0),264)|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$3+3>>0]|0; + _DrawModelEx($$byval_copy,$$byval_copy1,$$byval_copy2,0.0,$$byval_copy3,$$byval_copy4); + STACKTOP = sp;return; +} +function _DrawModelEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$byval_copy5 = 0, $$byval_copy6 = 0, $$byval_copy7 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 592|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(592|0); + $$byval_copy7 = sp + 520|0; + $$byval_copy6 = sp + 388|0; + $$byval_copy5 = sp + 320|0; + $6 = sp + 128|0; + $7 = sp + 64|0; + $8 = sp; + $9 = sp + 256|0; + $10 = sp + 192|0; + $11 = $3 * 0.01745329238474369; + ;HEAP32[$$byval_copy7>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy7+8>>2]=HEAP32[$2+8>>2]|0; + _MatrixRotate($6,$$byval_copy7,$11); + $12 = +HEAPF32[$4>>2]; + $13 = ((($4)) + 4|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($4)) + 8|0); + $16 = +HEAPF32[$15>>2]; + _MatrixScale($7,$12,$14,$16); + $17 = +HEAPF32[$1>>2]; + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 8|0); + $21 = +HEAPF32[$20>>2]; + _MatrixTranslate($8,$17,$19,$21); + $22 = ((($0)) + 68|0); + dest=$$byval_copy6; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($9,$$byval_copy6,$$byval_copy7); + dest=$$byval_copy6; src=$9; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($10,$$byval_copy6,$$byval_copy7); + dest=$22; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $23 = ((($0)) + 132|0); + $24 = ((($0)) + 248|0); + $25 = HEAPU8[$5>>0]|(HEAPU8[$5+1>>0]<<8)|(HEAPU8[$5+2>>0]<<16)|(HEAPU8[$5+3>>0]<<24); + HEAP32[$24>>2] = $25; + dest=$$byval_copy5; src=$0; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _memcpy(($$byval_copy6|0),($23|0),132)|0; + dest=$$byval_copy7; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlglDrawMesh($$byval_copy5,$$byval_copy6,$$byval_copy7); + STACKTOP = sp;return; +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,11617)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,11621)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,11625)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,11629)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,11635)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,11673)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 11692; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,11705)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 11726; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,11741)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 11756; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,11771)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 11786; + } + } else { + HEAP32[$3>>2] = 11657; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,11801)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,11815)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 3; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,11827)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 7; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,11841)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 8; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,11853)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 9; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,11867)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 10; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,11881)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 11; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,11898)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,11921)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,11947)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,11960)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,11976)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,11989)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 12; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,12003)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,12023)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,12043)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,12060)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,12077)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 4; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,12089)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 13; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,12102)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 14; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,12118)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,12141)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,12154)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,12170)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 5; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,12181)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 15; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,12200)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 16; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,12222)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 17; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,12241)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,12270)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 6; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,12287)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,12302)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,12317)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,12338)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,12358)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,12378)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,12404)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,12423)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,12435)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,12447)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,12459)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,12471)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 18; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,12483)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,12495)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,12507)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,12519)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,12532)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,12545)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,12558)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,12571)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,12584)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,12597)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,12610)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,12623)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,12642)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,12661)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,12680)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 19; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,12693)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 20; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,12711)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 21; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,12729)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 22; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,12747)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 23; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,12765)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,12785)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,11726)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 7; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,12803)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,12818)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,12839)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,12854)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,12872)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,12888)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,12907)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,12921)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,12936)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 8; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,11657)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,12947)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,11756)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 24; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,11786)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 25; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,12963)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,12990)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,13004)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,11692)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,13024)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,13042)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 9; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,13054)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,13075)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 26; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,13093)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 27; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,13111)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 28; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,13132)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,13158)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,13181)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,13219)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 10; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,13235)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,13250)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,13273)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,13286)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 29; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,13300)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 30; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,13314)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,13334)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,13354)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,13370)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,13388)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,13404)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,13419)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,13441)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 31; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,13459)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 32; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,13480)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,13498)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,13511)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,13526)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,13540)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,13550)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,13560)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,13582)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,13608)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,13635)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,13648)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,13663)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,13678)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,13702)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,13713)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 33; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,13735)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,13757)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,13781)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,13790)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,13798)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,13811)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,13825)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,13837)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,13846)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,13856)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,13868)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,13879)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,13887)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,13899)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,13914)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,13926)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,13940)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 11; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,13965)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,13982)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,13998)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,14014)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 12; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,14026)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 34; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,14038)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 35; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,14062)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,14075)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,14089)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 36; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,14111)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 37; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,14118)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,14134)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,14151)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,14168)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,14184)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,14200)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,14217)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,14231)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,14243)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,14254)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,14267)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,14277)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,14294)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,14306)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,14328)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,14348)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,14361)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,14383)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,14403)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,14420)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,14437)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,14457)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 38; + break; + } + } else { + HEAP32[$1>>2] = 6; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (19888|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3716|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + HEAP32[$3>>2] = $1; + $4 = ((($3)) + 4|0); + $5 = ((($0)) + 48|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($6|0)!=(0); + $8 = $7&1; + $9 = (($2) - ($8))|0; + HEAP32[$4>>2] = $9; + $10 = ((($3)) + 8|0); + $11 = ((($0)) + 44|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($3)) + 12|0); + HEAP32[$13>>2] = $6; + $14 = ((($0)) + 60|0); + $15 = HEAP32[$14>>2]|0; + $16 = $3; + HEAP32[$vararg_buffer>>2] = $15; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $16; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $17 = (___syscall145(145,($vararg_buffer|0))|0); + $18 = (___syscall_ret($17)|0); + $19 = ($18|0)<(1); + if ($19) { + $20 = $18 & 48; + $21 = $20 ^ 16; + $22 = HEAP32[$0>>2]|0; + $23 = $22 | $21; + HEAP32[$0>>2] = $23; + $$0 = $18; + } else { + $24 = HEAP32[$4>>2]|0; + $25 = ($18>>>0)>($24>>>0); + if ($25) { + $26 = (($18) - ($24))|0; + $27 = HEAP32[$11>>2]|0; + $28 = ((($0)) + 4|0); + HEAP32[$28>>2] = $27; + $29 = (($27) + ($26)|0); + $30 = ((($0)) + 8|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$5>>2]|0; + $32 = ($31|0)==(0); + if ($32) { + $$0 = $2; + } else { + $33 = ((($27)) + 1|0); + HEAP32[$28>>2] = $33; + $34 = HEAP8[$27>>0]|0; + $35 = (($2) + -1)|0; + $36 = (($1) + ($35)|0); + HEAP8[$36>>0] = $34; + $$0 = $2; + } + } else { + $$0 = $18; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 10; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function ___toread($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 28|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($8>>>0)>($10>>>0); + if ($11) { + $12 = ((($0)) + 36|0); + $13 = HEAP32[$12>>2]|0; + (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0); + } + $14 = ((($0)) + 16|0); + HEAP32[$14>>2] = 0; + HEAP32[$9>>2] = 0; + HEAP32[$7>>2] = 0; + $15 = HEAP32[$0>>2]|0; + $16 = $15 & 4; + $17 = ($16|0)==(0); + if ($17) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = $23; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = $23; + $26 = $15 << 27; + $sext = $26 >> 31; + $$0 = $sext; + } else { + $18 = $15 | 32; + HEAP32[$0>>2] = $18; + $$0 = -1; + } + return ($$0|0); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=4092; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((14573 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 15037;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 15037;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 15037 : (15039); + $$$ = $238 ? $$ : (15038); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 15037;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 15037;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 15047; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 15037;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (15037 + ($208)|0); + $$289 = $or$cond283 ? 15037 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 15037;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (15089 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 15054; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (15055) : (15060); + $$$ = $16 ? $$ : (15057); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (15089 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,15105,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,15105,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 15073 : 15077; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 15081 : 15085; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (15107 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 15195;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 15195; + } else { + $$01214 = 15195;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function ___unlist_locked_file($0) { + $0 = $0|0; + var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 68|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = ((($0)) + 116|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + $$pre = ((($0)) + 112|0); + if (!($6)) { + $7 = HEAP32[$$pre>>2]|0; + $8 = ((($5)) + 112|0); + HEAP32[$8>>2] = $7; + } + $9 = HEAP32[$$pre>>2]|0; + $10 = ($9|0)==(0|0); + if ($10) { + $12 = (___pthread_self_607()|0); + $13 = ((($12)) + 232|0); + $$sink = $13; + } else { + $11 = ((($9)) + 116|0); + $$sink = $11; + } + HEAP32[$$sink>>2] = $5; + } + return; +} +function ___pthread_self_607() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _fopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0; + var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer8 = sp + 32|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $memchr = (_memchr(16999,$3,4)|0); + $4 = ($memchr|0)==(0|0); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 22; + $$0 = 0; + } else { + $6 = (___fmodeflags($1)|0); + $7 = $0; + $8 = $6 | 32768; + HEAP32[$vararg_buffer>>2] = $7; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 438; + $9 = (___syscall5(5,($vararg_buffer|0))|0); + $10 = (___syscall_ret($9)|0); + $11 = ($10|0)<(0); + if ($11) { + $$0 = 0; + } else { + $12 = $6 & 524288; + $13 = ($12|0)==(0); + if (!($13)) { + HEAP32[$vararg_buffer3>>2] = $10; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 2; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = 1; + (___syscall221(221,($vararg_buffer3|0))|0); + } + $14 = (___fdopen($10,$1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + HEAP32[$vararg_buffer8>>2] = $10; + (___syscall6(6,($vararg_buffer8|0))|0); + $$0 = 0; + } else { + $$0 = $14; + } + } + } + STACKTOP = sp;return ($$0|0); +} +function ___fmodeflags($0) { + $0 = $0|0; + var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_strchr($0,43)|0); + $2 = ($1|0)==(0|0); + $3 = HEAP8[$0>>0]|0; + $not$ = ($3<<24>>24)!=(114); + $$ = $not$&1; + $$0 = $2 ? $$ : 2; + $4 = (_strchr($0,120)|0); + $5 = ($4|0)==(0|0); + $6 = $$0 | 128; + $$0$ = $5 ? $$0 : $6; + $7 = (_strchr($0,101)|0); + $8 = ($7|0)==(0|0); + $9 = $$0$ | 524288; + $$2 = $8 ? $$0$ : $9; + $10 = ($3<<24>>24)==(114); + $11 = $$2 | 64; + $$2$ = $10 ? $$2 : $11; + $12 = ($3<<24>>24)==(119); + $13 = $$2$ | 512; + $$4 = $12 ? $13 : $$2$; + $14 = ($3<<24>>24)==(97); + $15 = $$4 | 1024; + $$$4 = $14 ? $15 : $$4; + return ($$$4|0); +} +function ___fdopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer12 = sp + 40|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 56|0; + $3 = HEAP8[$1>>0]|0; + $4 = $3 << 24 >> 24; + $memchr = (_memchr(16999,$4,4)|0); + $5 = ($memchr|0)==(0|0); + if ($5) { + $6 = (___errno_location()|0); + HEAP32[$6>>2] = 22; + $$0 = 0; + } else { + $7 = (_malloc(1156)|0); + $8 = ($7|0)==(0|0); + if ($8) { + $$0 = 0; + } else { + dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $9 = (_strchr($1,43)|0); + $10 = ($9|0)==(0|0); + if ($10) { + $11 = ($3<<24>>24)==(114); + $12 = $11 ? 8 : 4; + HEAP32[$7>>2] = $12; + } + $13 = (_strchr($1,101)|0); + $14 = ($13|0)==(0|0); + if ($14) { + $16 = $3; + } else { + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 2; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 1; + (___syscall221(221,($vararg_buffer|0))|0); + $$pre = HEAP8[$1>>0]|0; + $16 = $$pre; + } + $15 = ($16<<24>>24)==(97); + if ($15) { + HEAP32[$vararg_buffer3>>2] = $0; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 3; + $17 = (___syscall221(221,($vararg_buffer3|0))|0); + $18 = $17 & 1024; + $19 = ($18|0)==(0); + if ($19) { + $20 = $17 | 1024; + HEAP32[$vararg_buffer7>>2] = $0; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = 4; + $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); + HEAP32[$vararg_ptr11>>2] = $20; + (___syscall221(221,($vararg_buffer7|0))|0); + } + $21 = HEAP32[$7>>2]|0; + $22 = $21 | 128; + HEAP32[$7>>2] = $22; + $29 = $22; + } else { + $$pre31 = HEAP32[$7>>2]|0; + $29 = $$pre31; + } + $23 = ((($7)) + 60|0); + HEAP32[$23>>2] = $0; + $24 = ((($7)) + 132|0); + $25 = ((($7)) + 44|0); + HEAP32[$25>>2] = $24; + $26 = ((($7)) + 48|0); + HEAP32[$26>>2] = 1024; + $27 = ((($7)) + 75|0); + HEAP8[$27>>0] = -1; + $28 = $29 & 8; + $30 = ($28|0)==(0); + if ($30) { + $31 = $2; + HEAP32[$vararg_buffer12>>2] = $0; + $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); + HEAP32[$vararg_ptr15>>2] = 21523; + $vararg_ptr16 = ((($vararg_buffer12)) + 8|0); + HEAP32[$vararg_ptr16>>2] = $31; + $32 = (___syscall54(54,($vararg_buffer12|0))|0); + $33 = ($32|0)==(0); + if ($33) { + HEAP8[$27>>0] = 10; + } + } + $34 = ((($7)) + 32|0); + HEAP32[$34>>2] = 11; + $35 = ((($7)) + 36|0); + HEAP32[$35>>2] = 10; + $36 = ((($7)) + 40|0); + HEAP32[$36>>2] = 3; + $37 = ((($7)) + 12|0); + HEAP32[$37>>2] = 2; + $38 = HEAP32[(19892)>>2]|0; + $39 = ($38|0)==(0); + if ($39) { + $40 = ((($7)) + 76|0); + HEAP32[$40>>2] = -1; + } + $41 = (___ofl_add($7)|0); + $$0 = $7; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___ofl_add($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___ofl_lock()|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 56|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$1>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($4)) + 52|0); + HEAP32[$6>>2] = $0; + } + HEAP32[$1>>2] = $0; + ___ofl_unlock(); + return ($0|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((19952|0)); + return (19960|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((19952|0)); + return; +} +function _fclose($0) { + $0 = $0|0; + var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $29 = $4; + } else { + $29 = 0; + } + ___unlist_locked_file($0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 1; + $7 = ($6|0)!=(0); + if (!($7)) { + $8 = (___ofl_lock()|0); + $9 = ((($0)) + 52|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)==(0|0); + $12 = $10; + $$pre = ((($0)) + 56|0); + if (!($11)) { + $13 = HEAP32[$$pre>>2]|0; + $14 = ((($10)) + 56|0); + HEAP32[$14>>2] = $13; + } + $15 = HEAP32[$$pre>>2]|0; + $16 = ($15|0)==(0|0); + if (!($16)) { + $17 = ((($15)) + 52|0); + HEAP32[$17>>2] = $12; + } + $18 = HEAP32[$8>>2]|0; + $19 = ($18|0)==($0|0); + if ($19) { + HEAP32[$8>>2] = $15; + } + ___ofl_unlock(); + } + $20 = (_fflush($0)|0); + $21 = ((($0)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = (FUNCTION_TABLE_ii[$22 & 15]($0)|0); + $24 = $23 | $20; + $25 = ((($0)) + 92|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($26|0)==(0|0); + if (!($27)) { + _free($26); + } + if ($7) { + $28 = ($29|0)==(0); + if (!($28)) { + ___unlockfile($0); + } + } else { + _free($0); + } + return ($24|0); +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[1022]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[1022]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _feof($0) { + $0 = $0|0; + var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 >>> 4; + $$lobit = $8 & 1; + if ($phitmp) { + $$lobit9 = $$lobit; + } else { + ___unlockfile($0); + $$lobit9 = $$lobit; + } + } else { + $4 = HEAP32[$0>>2]|0; + $5 = $4 >>> 4; + $$lobit8 = $5 & 1; + $$lobit9 = $$lobit8; + } + return ($$lobit9|0); +} +function _fseek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (___fseeko($0,$1,$2)|0); + return ($3|0); +} +function ___fseeko($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $7 = (___lockfile($0)|0); + $phitmp = ($7|0)==(0); + $8 = (___fseeko_unlocked($0,$1,$2)|0); + if ($phitmp) { + $9 = $8; + } else { + ___unlockfile($0); + $9 = $8; + } + } else { + $6 = (___fseeko_unlocked($0,$1,$2)|0); + $9 = $6; + } + return ($9|0); +} +function ___fseeko_unlocked($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(1); + if ($3) { + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 4|0); + $7 = HEAP32[$6>>2]|0; + $8 = (($1) - ($5))|0; + $9 = (($8) + ($7))|0; + $$019 = $9; + } else { + $$019 = $1; + } + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 28|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)>($13>>>0); + if ($14) { + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + (FUNCTION_TABLE_iiii[$16 & 15]($0,0,0)|0); + $17 = HEAP32[$10>>2]|0; + $18 = ($17|0)==(0|0); + if ($18) { + $$0 = -1; + } else { + label = 5; + } + } else { + label = 5; + } + if ((label|0) == 5) { + $19 = ((($0)) + 16|0); + HEAP32[$19>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + $22 = (FUNCTION_TABLE_iiii[$21 & 15]($0,$$019,$2)|0); + $23 = ($22|0)<(0); + if ($23) { + $$0 = -1; + } else { + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = 0; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = 0; + $26 = HEAP32[$0>>2]|0; + $27 = $26 & -17; + HEAP32[$0>>2] = $27; + $$0 = 0; + } + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strrchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($2) + 1)|0; + $4 = (___memrchr($0,$1,$3)|0); + return ($4|0); +} +function ___memrchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1&255; + $$09 = $2; + while(1) { + $4 = (($$09) + -1)|0; + $5 = ($$09|0)==(0); + if ($5) { + $$0 = 0; + break; + } + $6 = (($0) + ($4)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==($3<<24>>24); + if ($8) { + $$0 = $6; + break; + } else { + $$09 = $4; + } + } + return ($$0|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 17280; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _fread($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = ($1|0)==(0); + $$ = $5 ? 0 : $2; + $6 = ((($3)) + 76|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)>(-1); + if ($8) { + $9 = (___lockfile($3)|0); + $36 = $9; + } else { + $36 = 0; + } + $10 = ((($3)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ((($3)) + 8|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($3)) + 4|0); + $19 = HEAP32[$18>>2]|0; + $20 = $19; + $21 = (($17) - ($20))|0; + $22 = ($21|0)>(0); + $23 = ($21>>>0)<($4>>>0); + $$57 = $23 ? $21 : $4; + if ($22) { + $24 = (($4) - ($$57))|0; + $25 = (($0) + ($$57)|0); + _memcpy(($0|0),($19|0),($$57|0))|0; + $26 = (($19) + ($$57)|0); + HEAP32[$18>>2] = $26; + $$054$ph = $24;$$056$ph = $25; + } else { + $$054$ph = $4;$$056$ph = $0; + } + $27 = ($$054$ph|0)==(0); + L7: do { + if ($27) { + label = 13; + } else { + $28 = ((($3)) + 32|0); + $$05460 = $$054$ph;$$05659 = $$056$ph; + while(1) { + $29 = (___toread($3)|0); + $30 = ($29|0)==(0); + if (!($30)) { + break; + } + $31 = HEAP32[$28>>2]|0; + $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0); + $33 = (($32) + 1)|0; + $34 = ($33>>>0)<(2); + if ($34) { + break; + } + $39 = (($$05460) - ($32))|0; + $40 = (($$05659) + ($32)|0); + $41 = ($39|0)==(0); + if ($41) { + label = 13; + break L7; + } else { + $$05460 = $39;$$05659 = $40; + } + } + $35 = ($36|0)==(0); + if (!($35)) { + ___unlockfile($3); + } + $37 = (($4) - ($$05460))|0; + $38 = (($37>>>0) / ($1>>>0))&-1; + $$0 = $38; + } + } while(0); + if ((label|0) == 13) { + $42 = ($36|0)==(0); + if ($42) { + $$0 = $$; + } else { + ___unlockfile($3); + $$0 = $$; + } + } + return ($$0|0); +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[990]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[4991]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[4991] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[4991] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[4991] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[4991] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[4992]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (20008 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[4992] = $24; + } else { + $25 = HEAP32[(19984)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(19976)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (20008 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[4992] = $77; + $98 = $77; + } else { + $78 = HEAP32[(19984)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(19988)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (20008 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[4992] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(19984)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(19976)>>2] = $84; + HEAP32[(19988)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(19972)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (20272 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(19984)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (20272 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(19972)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(19984)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(19984)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(19984)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(19988)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (20008 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[4992] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(19984)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(19976)>>2] = $$0193$lcssa$i; + HEAP32[(19988)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(19972)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (20272 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (20272 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(19976)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(19984)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (20272 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(19972)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(19984)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(19984)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(19984)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (20008 + ($425<<2)|0); + $427 = HEAP32[4992]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[4992] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(19984)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (20272 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(19972)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(19984)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(19984)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(19976)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(19988)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(19988)>>2] = $511; + HEAP32[(19976)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(19976)>>2] = 0; + HEAP32[(19988)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(19980)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(19980)>>2] = $526; + $527 = HEAP32[(19992)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(19992)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[5110]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(20448)>>2] = 4096; + HEAP32[(20444)>>2] = 4096; + HEAP32[(20452)>>2] = -1; + HEAP32[(20456)>>2] = -1; + HEAP32[(20460)>>2] = 0; + HEAP32[(20412)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[5110] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(20448)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(20408)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(20400)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(20412)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(19992)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (20416); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(20444)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(20400)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(20408)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(20448)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(20412)>>2]|0; + $612 = $611 | 4; + HEAP32[(20412)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(20400)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(20400)>>2] = $627; + $628 = HEAP32[(20404)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(20404)>>2] = $627; + } + $630 = HEAP32[(19992)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(19984)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(19984)>>2] = $$749$i; + } + HEAP32[(20416)>>2] = $$749$i; + HEAP32[(20420)>>2] = $$723948$i; + HEAP32[(20428)>>2] = 0; + $635 = HEAP32[5110]|0; + HEAP32[(20004)>>2] = $635; + HEAP32[(20000)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (20008 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(19992)>>2] = $649; + HEAP32[(19980)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(20456)>>2]|0; + HEAP32[(19996)>>2] = $655; + } else { + $$024371$i = (20416); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(19980)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(19992)>>2] = $679; + HEAP32[(19980)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(20456)>>2]|0; + HEAP32[(19996)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(19984)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(19984)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (20416); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(19980)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(19980)>>2] = $727; + HEAP32[(19992)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(19988)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(19976)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(19976)>>2] = $733; + HEAP32[(19988)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (20008 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[4992]|0; + $760 = $759 & $758; + HEAP32[4992] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (20272 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(19972)>>2]|0; + $803 = $802 & $801; + HEAP32[(19972)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(19984)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(19984)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(19984)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (20008 + ($836<<2)|0); + $838 = HEAP32[4992]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[4992] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(19984)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (20272 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(19972)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(19972)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(19984)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(19984)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (20416); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(19992)>>2] = $946; + HEAP32[(19980)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(20456)>>2]|0; + HEAP32[(19996)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(20416)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(20416)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(20416)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(20416)+12>>2]|0; + HEAP32[(20416)>>2] = $$749$i; + HEAP32[(20420)>>2] = $$723948$i; + HEAP32[(20428)>>2] = 0; + HEAP32[(20424)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (20008 + ($968<<2)|0); + $970 = HEAP32[4992]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[4992] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(19984)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (20272 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(19972)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(19972)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(19984)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(19984)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(19980)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(19980)>>2] = $1050; + $1051 = HEAP32[(19992)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(19992)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(19984)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(19988)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(19976)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (20008 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[4992]|0; + $38 = $37 & $36; + HEAP32[4992] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (20272 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(19972)>>2]|0; + $81 = $80 & $79; + HEAP32[(19972)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(19984)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(19984)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(19984)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(19992)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(19988)>>2]|0; + if ($121) { + $123 = HEAP32[(19980)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(19980)>>2] = $124; + HEAP32[(19992)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(19988)>>2] = 0; + HEAP32[(19976)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(19976)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(19976)>>2] = $130; + HEAP32[(19988)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (20008 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(19984)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[4992]|0; + $154 = $153 & $152; + HEAP32[4992] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(19984)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(19984)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(19984)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (20272 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(19972)>>2]|0; + $200 = $199 & $198; + HEAP32[(19972)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(19984)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(19984)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(19984)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(19988)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(19976)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (20008 + ($234<<2)|0); + $236 = HEAP32[4992]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[4992] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(19984)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (20272 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(19972)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(19972)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(19984)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(19984)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(20000)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(20000)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (20424); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(20000)>>2] = -1; + return; +} +function _realloc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = (_malloc($1)|0); + $$1 = $3; + return ($$1|0); + } + $4 = ($1>>>0)>(4294967231); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 12; + $$1 = 0; + return ($$1|0); + } + $6 = ($1>>>0)<(11); + $7 = (($1) + 11)|0; + $8 = $7 & -8; + $9 = $6 ? 16 : $8; + $10 = ((($0)) + -8|0); + $11 = (_try_realloc_chunk($10,$9)|0); + $12 = ($11|0)==(0|0); + if (!($12)) { + $13 = ((($11)) + 8|0); + $$1 = $13; + return ($$1|0); + } + $14 = (_malloc($1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$1 = 0; + return ($$1|0); + } + $16 = ((($0)) + -4|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 & -8; + $19 = $17 & 3; + $20 = ($19|0)==(0); + $21 = $20 ? 8 : 4; + $22 = (($18) - ($21))|0; + $23 = ($22>>>0)<($1>>>0); + $24 = $23 ? $22 : $1; + _memcpy(($14|0),($0|0),($24|0))|0; + _free($0); + $$1 = $14; + return ($$1|0); +} +function _try_realloc_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1272 = 0, $$1275 = 0, $$2 = 0, $$3 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $cond = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & -8; + $5 = (($0) + ($4)|0); + $6 = HEAP32[(19984)>>2]|0; + $7 = $3 & 3; + $notlhs = ($0>>>0)>=($6>>>0); + $notrhs = ($7|0)!=(1); + $or$cond$not = $notrhs & $notlhs; + $8 = ($0>>>0)<($5>>>0); + $or$cond3 = $or$cond$not & $8; + if (!($or$cond3)) { + _abort(); + // unreachable; + } + $9 = ((($5)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = $10 & 1; + $12 = ($11|0)==(0); + if ($12) { + _abort(); + // unreachable; + } + $13 = ($7|0)==(0); + if ($13) { + $14 = ($1>>>0)<(256); + if ($14) { + $$2 = 0; + return ($$2|0); + } + $15 = (($1) + 4)|0; + $16 = ($4>>>0)<($15>>>0); + if (!($16)) { + $17 = (($4) - ($1))|0; + $18 = HEAP32[(20448)>>2]|0; + $19 = $18 << 1; + $20 = ($17>>>0)>($19>>>0); + if (!($20)) { + $$2 = $0; + return ($$2|0); + } + } + $$2 = 0; + return ($$2|0); + } + $21 = ($4>>>0)<($1>>>0); + if (!($21)) { + $22 = (($4) - ($1))|0; + $23 = ($22>>>0)>(15); + if (!($23)) { + $$2 = $0; + return ($$2|0); + } + $24 = (($0) + ($1)|0); + $25 = $3 & 1; + $26 = $25 | $1; + $27 = $26 | 2; + HEAP32[$2>>2] = $27; + $28 = ((($24)) + 4|0); + $29 = $22 | 3; + HEAP32[$28>>2] = $29; + $30 = (($24) + ($22)|0); + $31 = ((($30)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = $32 | 1; + HEAP32[$31>>2] = $33; + _dispose_chunk($24,$22); + $$2 = $0; + return ($$2|0); + } + $34 = HEAP32[(19992)>>2]|0; + $35 = ($5|0)==($34|0); + if ($35) { + $36 = HEAP32[(19980)>>2]|0; + $37 = (($36) + ($4))|0; + $38 = ($37>>>0)>($1>>>0); + $39 = (($37) - ($1))|0; + $40 = (($0) + ($1)|0); + if (!($38)) { + $$2 = 0; + return ($$2|0); + } + $41 = $39 | 1; + $42 = ((($40)) + 4|0); + $43 = $3 & 1; + $44 = $43 | $1; + $45 = $44 | 2; + HEAP32[$2>>2] = $45; + HEAP32[$42>>2] = $41; + HEAP32[(19992)>>2] = $40; + HEAP32[(19980)>>2] = $39; + $$2 = $0; + return ($$2|0); + } + $46 = HEAP32[(19988)>>2]|0; + $47 = ($5|0)==($46|0); + if ($47) { + $48 = HEAP32[(19976)>>2]|0; + $49 = (($48) + ($4))|0; + $50 = ($49>>>0)<($1>>>0); + if ($50) { + $$2 = 0; + return ($$2|0); + } + $51 = (($49) - ($1))|0; + $52 = ($51>>>0)>(15); + $53 = $3 & 1; + if ($52) { + $54 = (($0) + ($1)|0); + $55 = (($54) + ($51)|0); + $56 = $53 | $1; + $57 = $56 | 2; + HEAP32[$2>>2] = $57; + $58 = ((($54)) + 4|0); + $59 = $51 | 1; + HEAP32[$58>>2] = $59; + HEAP32[$55>>2] = $51; + $60 = ((($55)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = $61 & -2; + HEAP32[$60>>2] = $62; + $storemerge = $54;$storemerge1 = $51; + } else { + $63 = $53 | $49; + $64 = $63 | 2; + HEAP32[$2>>2] = $64; + $65 = (($0) + ($49)|0); + $66 = ((($65)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = $67 | 1; + HEAP32[$66>>2] = $68; + $storemerge = 0;$storemerge1 = 0; + } + HEAP32[(19976)>>2] = $storemerge1; + HEAP32[(19988)>>2] = $storemerge; + $$2 = $0; + return ($$2|0); + } + $69 = $10 & 2; + $70 = ($69|0)==(0); + if (!($70)) { + $$2 = 0; + return ($$2|0); + } + $71 = $10 & -8; + $72 = (($71) + ($4))|0; + $73 = ($72>>>0)<($1>>>0); + if ($73) { + $$2 = 0; + return ($$2|0); + } + $74 = (($72) - ($1))|0; + $75 = $10 >>> 3; + $76 = ($10>>>0)<(256); + L49: do { + if ($76) { + $77 = ((($5)) + 8|0); + $78 = HEAP32[$77>>2]|0; + $79 = ((($5)) + 12|0); + $80 = HEAP32[$79>>2]|0; + $81 = $75 << 1; + $82 = (20008 + ($81<<2)|0); + $83 = ($78|0)==($82|0); + if (!($83)) { + $84 = ($78>>>0)<($6>>>0); + if ($84) { + _abort(); + // unreachable; + } + $85 = ((($78)) + 12|0); + $86 = HEAP32[$85>>2]|0; + $87 = ($86|0)==($5|0); + if (!($87)) { + _abort(); + // unreachable; + } + } + $88 = ($80|0)==($78|0); + if ($88) { + $89 = 1 << $75; + $90 = $89 ^ -1; + $91 = HEAP32[4992]|0; + $92 = $91 & $90; + HEAP32[4992] = $92; + break; + } + $93 = ($80|0)==($82|0); + if ($93) { + $$pre = ((($80)) + 8|0); + $$pre$phiZ2D = $$pre; + } else { + $94 = ($80>>>0)<($6>>>0); + if ($94) { + _abort(); + // unreachable; + } + $95 = ((($80)) + 8|0); + $96 = HEAP32[$95>>2]|0; + $97 = ($96|0)==($5|0); + if ($97) { + $$pre$phiZ2D = $95; + } else { + _abort(); + // unreachable; + } + } + $98 = ((($78)) + 12|0); + HEAP32[$98>>2] = $80; + HEAP32[$$pre$phiZ2D>>2] = $78; + } else { + $99 = ((($5)) + 24|0); + $100 = HEAP32[$99>>2]|0; + $101 = ((($5)) + 12|0); + $102 = HEAP32[$101>>2]|0; + $103 = ($102|0)==($5|0); + do { + if ($103) { + $113 = ((($5)) + 16|0); + $114 = ((($113)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = ($115|0)==(0|0); + if ($116) { + $117 = HEAP32[$113>>2]|0; + $118 = ($117|0)==(0|0); + if ($118) { + $$3 = 0; + break; + } else { + $$1272 = $117;$$1275 = $113; + } + } else { + $$1272 = $115;$$1275 = $114; + } + while(1) { + $119 = ((($$1272)) + 20|0); + $120 = HEAP32[$119>>2]|0; + $121 = ($120|0)==(0|0); + if (!($121)) { + $$1272 = $120;$$1275 = $119; + continue; + } + $122 = ((($$1272)) + 16|0); + $123 = HEAP32[$122>>2]|0; + $124 = ($123|0)==(0|0); + if ($124) { + break; + } else { + $$1272 = $123;$$1275 = $122; + } + } + $125 = ($$1275>>>0)<($6>>>0); + if ($125) { + _abort(); + // unreachable; + } else { + HEAP32[$$1275>>2] = 0; + $$3 = $$1272; + break; + } + } else { + $104 = ((($5)) + 8|0); + $105 = HEAP32[$104>>2]|0; + $106 = ($105>>>0)<($6>>>0); + if ($106) { + _abort(); + // unreachable; + } + $107 = ((($105)) + 12|0); + $108 = HEAP32[$107>>2]|0; + $109 = ($108|0)==($5|0); + if (!($109)) { + _abort(); + // unreachable; + } + $110 = ((($102)) + 8|0); + $111 = HEAP32[$110>>2]|0; + $112 = ($111|0)==($5|0); + if ($112) { + HEAP32[$107>>2] = $102; + HEAP32[$110>>2] = $105; + $$3 = $102; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $126 = ($100|0)==(0|0); + if (!($126)) { + $127 = ((($5)) + 28|0); + $128 = HEAP32[$127>>2]|0; + $129 = (20272 + ($128<<2)|0); + $130 = HEAP32[$129>>2]|0; + $131 = ($5|0)==($130|0); + do { + if ($131) { + HEAP32[$129>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $132 = 1 << $128; + $133 = $132 ^ -1; + $134 = HEAP32[(19972)>>2]|0; + $135 = $134 & $133; + HEAP32[(19972)>>2] = $135; + break L49; + } + } else { + $136 = HEAP32[(19984)>>2]|0; + $137 = ($100>>>0)<($136>>>0); + if ($137) { + _abort(); + // unreachable; + } else { + $138 = ((($100)) + 16|0); + $139 = HEAP32[$138>>2]|0; + $not$ = ($139|0)!=($5|0); + $$sink1 = $not$&1; + $140 = (((($100)) + 16|0) + ($$sink1<<2)|0); + HEAP32[$140>>2] = $$3; + $141 = ($$3|0)==(0|0); + if ($141) { + break L49; + } else { + break; + } + } + } + } while(0); + $142 = HEAP32[(19984)>>2]|0; + $143 = ($$3>>>0)<($142>>>0); + if ($143) { + _abort(); + // unreachable; + } + $144 = ((($$3)) + 24|0); + HEAP32[$144>>2] = $100; + $145 = ((($5)) + 16|0); + $146 = HEAP32[$145>>2]|0; + $147 = ($146|0)==(0|0); + do { + if (!($147)) { + $148 = ($146>>>0)<($142>>>0); + if ($148) { + _abort(); + // unreachable; + } else { + $149 = ((($$3)) + 16|0); + HEAP32[$149>>2] = $146; + $150 = ((($146)) + 24|0); + HEAP32[$150>>2] = $$3; + break; + } + } + } while(0); + $151 = ((($145)) + 4|0); + $152 = HEAP32[$151>>2]|0; + $153 = ($152|0)==(0|0); + if (!($153)) { + $154 = HEAP32[(19984)>>2]|0; + $155 = ($152>>>0)<($154>>>0); + if ($155) { + _abort(); + // unreachable; + } else { + $156 = ((($$3)) + 20|0); + HEAP32[$156>>2] = $152; + $157 = ((($152)) + 24|0); + HEAP32[$157>>2] = $$3; + break; + } + } + } + } + } while(0); + $158 = ($74>>>0)<(16); + $159 = $3 & 1; + if ($158) { + $160 = $72 | $159; + $161 = $160 | 2; + HEAP32[$2>>2] = $161; + $162 = (($0) + ($72)|0); + $163 = ((($162)) + 4|0); + $164 = HEAP32[$163>>2]|0; + $165 = $164 | 1; + HEAP32[$163>>2] = $165; + $$2 = $0; + return ($$2|0); + } else { + $166 = (($0) + ($1)|0); + $167 = $159 | $1; + $168 = $167 | 2; + HEAP32[$2>>2] = $168; + $169 = ((($166)) + 4|0); + $170 = $74 | 3; + HEAP32[$169>>2] = $170; + $171 = (($166) + ($74)|0); + $172 = ((($171)) + 4|0); + $173 = HEAP32[$172>>2]|0; + $174 = $173 | 1; + HEAP32[$172>>2] = $174; + _dispose_chunk($166,$74); + $$2 = $0; + return ($$2|0); + } + return (0)|0; +} +function _dispose_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0419 = 0, $$0420 = 0, $$0431 = 0, $$0438 = 0, $$1 = 0, $$1418 = 0, $$1426 = 0, $$1429 = 0, $$1433 = 0, $$1437 = 0, $$2 = 0, $$3 = 0, $$3435 = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $$pre23 = 0, $$pre25 = 0, $$sink2 = 0; + var $$sink4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond17 = 0, $not$ = 0, $not$1 = 0, $not$19 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0) + ($1)|0); + $3 = ((($0)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = $4 & 1; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = HEAP32[$0>>2]|0; + $8 = $4 & 3; + $9 = ($8|0)==(0); + if ($9) { + return; + } + $10 = (0 - ($7))|0; + $11 = (($0) + ($10)|0); + $12 = (($7) + ($1))|0; + $13 = HEAP32[(19984)>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + _abort(); + // unreachable; + } + $15 = HEAP32[(19988)>>2]|0; + $16 = ($11|0)==($15|0); + if ($16) { + $100 = ((($2)) + 4|0); + $101 = HEAP32[$100>>2]|0; + $102 = $101 & 3; + $103 = ($102|0)==(3); + if (!($103)) { + $$1 = $11;$$1418 = $12; + break; + } + $104 = (($11) + ($12)|0); + $105 = ((($11)) + 4|0); + $106 = $12 | 1; + $107 = $101 & -2; + HEAP32[(19976)>>2] = $12; + HEAP32[$100>>2] = $107; + HEAP32[$105>>2] = $106; + HEAP32[$104>>2] = $12; + return; + } + $17 = $7 >>> 3; + $18 = ($7>>>0)<(256); + if ($18) { + $19 = ((($11)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($11)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = $17 << 1; + $24 = (20008 + ($23<<2)|0); + $25 = ($20|0)==($24|0); + if (!($25)) { + $26 = ($20>>>0)<($13>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($11|0); + if (!($29)) { + _abort(); + // unreachable; + } + } + $30 = ($22|0)==($20|0); + if ($30) { + $31 = 1 << $17; + $32 = $31 ^ -1; + $33 = HEAP32[4992]|0; + $34 = $33 & $32; + HEAP32[4992] = $34; + $$1 = $11;$$1418 = $12; + break; + } + $35 = ($22|0)==($24|0); + if ($35) { + $$pre25 = ((($22)) + 8|0); + $$pre$phi26Z2D = $$pre25; + } else { + $36 = ($22>>>0)<($13>>>0); + if ($36) { + _abort(); + // unreachable; + } + $37 = ((($22)) + 8|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==($11|0); + if ($39) { + $$pre$phi26Z2D = $37; + } else { + _abort(); + // unreachable; + } + } + $40 = ((($20)) + 12|0); + HEAP32[$40>>2] = $22; + HEAP32[$$pre$phi26Z2D>>2] = $20; + $$1 = $11;$$1418 = $12; + break; + } + $41 = ((($11)) + 24|0); + $42 = HEAP32[$41>>2]|0; + $43 = ((($11)) + 12|0); + $44 = HEAP32[$43>>2]|0; + $45 = ($44|0)==($11|0); + do { + if ($45) { + $55 = ((($11)) + 16|0); + $56 = ((($55)) + 4|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==(0|0); + if ($58) { + $59 = HEAP32[$55>>2]|0; + $60 = ($59|0)==(0|0); + if ($60) { + $$3 = 0; + break; + } else { + $$1426 = $59;$$1429 = $55; + } + } else { + $$1426 = $57;$$1429 = $56; + } + while(1) { + $61 = ((($$1426)) + 20|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $$1426 = $62;$$1429 = $61; + continue; + } + $64 = ((($$1426)) + 16|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if ($66) { + break; + } else { + $$1426 = $65;$$1429 = $64; + } + } + $67 = ($$1429>>>0)<($13>>>0); + if ($67) { + _abort(); + // unreachable; + } else { + HEAP32[$$1429>>2] = 0; + $$3 = $$1426; + break; + } + } else { + $46 = ((($11)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($47>>>0)<($13>>>0); + if ($48) { + _abort(); + // unreachable; + } + $49 = ((($47)) + 12|0); + $50 = HEAP32[$49>>2]|0; + $51 = ($50|0)==($11|0); + if (!($51)) { + _abort(); + // unreachable; + } + $52 = ((($44)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($53|0)==($11|0); + if ($54) { + HEAP32[$49>>2] = $44; + HEAP32[$52>>2] = $47; + $$3 = $44; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $68 = ($42|0)==(0|0); + if ($68) { + $$1 = $11;$$1418 = $12; + } else { + $69 = ((($11)) + 28|0); + $70 = HEAP32[$69>>2]|0; + $71 = (20272 + ($70<<2)|0); + $72 = HEAP32[$71>>2]|0; + $73 = ($11|0)==($72|0); + do { + if ($73) { + HEAP32[$71>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $74 = 1 << $70; + $75 = $74 ^ -1; + $76 = HEAP32[(19972)>>2]|0; + $77 = $76 & $75; + HEAP32[(19972)>>2] = $77; + $$1 = $11;$$1418 = $12; + break L1; + } + } else { + $78 = HEAP32[(19984)>>2]|0; + $79 = ($42>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } else { + $80 = ((($42)) + 16|0); + $81 = HEAP32[$80>>2]|0; + $not$1 = ($81|0)!=($11|0); + $$sink2 = $not$1&1; + $82 = (((($42)) + 16|0) + ($$sink2<<2)|0); + HEAP32[$82>>2] = $$3; + $83 = ($$3|0)==(0|0); + if ($83) { + $$1 = $11;$$1418 = $12; + break L1; + } else { + break; + } + } + } + } while(0); + $84 = HEAP32[(19984)>>2]|0; + $85 = ($$3>>>0)<($84>>>0); + if ($85) { + _abort(); + // unreachable; + } + $86 = ((($$3)) + 24|0); + HEAP32[$86>>2] = $42; + $87 = ((($11)) + 16|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0|0); + do { + if (!($89)) { + $90 = ($88>>>0)<($84>>>0); + if ($90) { + _abort(); + // unreachable; + } else { + $91 = ((($$3)) + 16|0); + HEAP32[$91>>2] = $88; + $92 = ((($88)) + 24|0); + HEAP32[$92>>2] = $$3; + break; + } + } + } while(0); + $93 = ((($87)) + 4|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)==(0|0); + if ($95) { + $$1 = $11;$$1418 = $12; + } else { + $96 = HEAP32[(19984)>>2]|0; + $97 = ($94>>>0)<($96>>>0); + if ($97) { + _abort(); + // unreachable; + } else { + $98 = ((($$3)) + 20|0); + HEAP32[$98>>2] = $94; + $99 = ((($94)) + 24|0); + HEAP32[$99>>2] = $$3; + $$1 = $11;$$1418 = $12; + break; + } + } + } + } else { + $$1 = $0;$$1418 = $1; + } + } while(0); + $108 = HEAP32[(19984)>>2]|0; + $109 = ($2>>>0)<($108>>>0); + if ($109) { + _abort(); + // unreachable; + } + $110 = ((($2)) + 4|0); + $111 = HEAP32[$110>>2]|0; + $112 = $111 & 2; + $113 = ($112|0)==(0); + if ($113) { + $114 = HEAP32[(19992)>>2]|0; + $115 = ($2|0)==($114|0); + $116 = HEAP32[(19988)>>2]|0; + if ($115) { + $117 = HEAP32[(19980)>>2]|0; + $118 = (($117) + ($$1418))|0; + HEAP32[(19980)>>2] = $118; + HEAP32[(19992)>>2] = $$1; + $119 = $118 | 1; + $120 = ((($$1)) + 4|0); + HEAP32[$120>>2] = $119; + $121 = ($$1|0)==($116|0); + if (!($121)) { + return; + } + HEAP32[(19988)>>2] = 0; + HEAP32[(19976)>>2] = 0; + return; + } + $122 = ($2|0)==($116|0); + if ($122) { + $123 = HEAP32[(19976)>>2]|0; + $124 = (($123) + ($$1418))|0; + HEAP32[(19976)>>2] = $124; + HEAP32[(19988)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = (($$1) + ($124)|0); + HEAP32[$127>>2] = $124; + return; + } + $128 = $111 & -8; + $129 = (($128) + ($$1418))|0; + $130 = $111 >>> 3; + $131 = ($111>>>0)<(256); + L96: do { + if ($131) { + $132 = ((($2)) + 8|0); + $133 = HEAP32[$132>>2]|0; + $134 = ((($2)) + 12|0); + $135 = HEAP32[$134>>2]|0; + $136 = $130 << 1; + $137 = (20008 + ($136<<2)|0); + $138 = ($133|0)==($137|0); + if (!($138)) { + $139 = ($133>>>0)<($108>>>0); + if ($139) { + _abort(); + // unreachable; + } + $140 = ((($133)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = ($141|0)==($2|0); + if (!($142)) { + _abort(); + // unreachable; + } + } + $143 = ($135|0)==($133|0); + if ($143) { + $144 = 1 << $130; + $145 = $144 ^ -1; + $146 = HEAP32[4992]|0; + $147 = $146 & $145; + HEAP32[4992] = $147; + break; + } + $148 = ($135|0)==($137|0); + if ($148) { + $$pre23 = ((($135)) + 8|0); + $$pre$phi24Z2D = $$pre23; + } else { + $149 = ($135>>>0)<($108>>>0); + if ($149) { + _abort(); + // unreachable; + } + $150 = ((($135)) + 8|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==($2|0); + if ($152) { + $$pre$phi24Z2D = $150; + } else { + _abort(); + // unreachable; + } + } + $153 = ((($133)) + 12|0); + HEAP32[$153>>2] = $135; + HEAP32[$$pre$phi24Z2D>>2] = $133; + } else { + $154 = ((($2)) + 24|0); + $155 = HEAP32[$154>>2]|0; + $156 = ((($2)) + 12|0); + $157 = HEAP32[$156>>2]|0; + $158 = ($157|0)==($2|0); + do { + if ($158) { + $168 = ((($2)) + 16|0); + $169 = ((($168)) + 4|0); + $170 = HEAP32[$169>>2]|0; + $171 = ($170|0)==(0|0); + if ($171) { + $172 = HEAP32[$168>>2]|0; + $173 = ($172|0)==(0|0); + if ($173) { + $$3435 = 0; + break; + } else { + $$1433 = $172;$$1437 = $168; + } + } else { + $$1433 = $170;$$1437 = $169; + } + while(1) { + $174 = ((($$1433)) + 20|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==(0|0); + if (!($176)) { + $$1433 = $175;$$1437 = $174; + continue; + } + $177 = ((($$1433)) + 16|0); + $178 = HEAP32[$177>>2]|0; + $179 = ($178|0)==(0|0); + if ($179) { + break; + } else { + $$1433 = $178;$$1437 = $177; + } + } + $180 = ($$1437>>>0)<($108>>>0); + if ($180) { + _abort(); + // unreachable; + } else { + HEAP32[$$1437>>2] = 0; + $$3435 = $$1433; + break; + } + } else { + $159 = ((($2)) + 8|0); + $160 = HEAP32[$159>>2]|0; + $161 = ($160>>>0)<($108>>>0); + if ($161) { + _abort(); + // unreachable; + } + $162 = ((($160)) + 12|0); + $163 = HEAP32[$162>>2]|0; + $164 = ($163|0)==($2|0); + if (!($164)) { + _abort(); + // unreachable; + } + $165 = ((($157)) + 8|0); + $166 = HEAP32[$165>>2]|0; + $167 = ($166|0)==($2|0); + if ($167) { + HEAP32[$162>>2] = $157; + HEAP32[$165>>2] = $160; + $$3435 = $157; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $181 = ($155|0)==(0|0); + if (!($181)) { + $182 = ((($2)) + 28|0); + $183 = HEAP32[$182>>2]|0; + $184 = (20272 + ($183<<2)|0); + $185 = HEAP32[$184>>2]|0; + $186 = ($2|0)==($185|0); + do { + if ($186) { + HEAP32[$184>>2] = $$3435; + $cond17 = ($$3435|0)==(0|0); + if ($cond17) { + $187 = 1 << $183; + $188 = $187 ^ -1; + $189 = HEAP32[(19972)>>2]|0; + $190 = $189 & $188; + HEAP32[(19972)>>2] = $190; + break L96; + } + } else { + $191 = HEAP32[(19984)>>2]|0; + $192 = ($155>>>0)<($191>>>0); + if ($192) { + _abort(); + // unreachable; + } else { + $193 = ((($155)) + 16|0); + $194 = HEAP32[$193>>2]|0; + $not$ = ($194|0)!=($2|0); + $$sink4 = $not$&1; + $195 = (((($155)) + 16|0) + ($$sink4<<2)|0); + HEAP32[$195>>2] = $$3435; + $196 = ($$3435|0)==(0|0); + if ($196) { + break L96; + } else { + break; + } + } + } + } while(0); + $197 = HEAP32[(19984)>>2]|0; + $198 = ($$3435>>>0)<($197>>>0); + if ($198) { + _abort(); + // unreachable; + } + $199 = ((($$3435)) + 24|0); + HEAP32[$199>>2] = $155; + $200 = ((($2)) + 16|0); + $201 = HEAP32[$200>>2]|0; + $202 = ($201|0)==(0|0); + do { + if (!($202)) { + $203 = ($201>>>0)<($197>>>0); + if ($203) { + _abort(); + // unreachable; + } else { + $204 = ((($$3435)) + 16|0); + HEAP32[$204>>2] = $201; + $205 = ((($201)) + 24|0); + HEAP32[$205>>2] = $$3435; + break; + } + } + } while(0); + $206 = ((($200)) + 4|0); + $207 = HEAP32[$206>>2]|0; + $208 = ($207|0)==(0|0); + if (!($208)) { + $209 = HEAP32[(19984)>>2]|0; + $210 = ($207>>>0)<($209>>>0); + if ($210) { + _abort(); + // unreachable; + } else { + $211 = ((($$3435)) + 20|0); + HEAP32[$211>>2] = $207; + $212 = ((($207)) + 24|0); + HEAP32[$212>>2] = $$3435; + break; + } + } + } + } + } while(0); + $213 = $129 | 1; + $214 = ((($$1)) + 4|0); + HEAP32[$214>>2] = $213; + $215 = (($$1) + ($129)|0); + HEAP32[$215>>2] = $129; + $216 = HEAP32[(19988)>>2]|0; + $217 = ($$1|0)==($216|0); + if ($217) { + HEAP32[(19976)>>2] = $129; + return; + } else { + $$2 = $129; + } + } else { + $218 = $111 & -2; + HEAP32[$110>>2] = $218; + $219 = $$1418 | 1; + $220 = ((($$1)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$1) + ($$1418)|0); + HEAP32[$221>>2] = $$1418; + $$2 = $$1418; + } + $222 = $$2 >>> 3; + $223 = ($$2>>>0)<(256); + if ($223) { + $224 = $222 << 1; + $225 = (20008 + ($224<<2)|0); + $226 = HEAP32[4992]|0; + $227 = 1 << $222; + $228 = $226 & $227; + $229 = ($228|0)==(0); + if ($229) { + $230 = $226 | $227; + HEAP32[4992] = $230; + $$pre = ((($225)) + 8|0); + $$0438 = $225;$$pre$phiZ2D = $$pre; + } else { + $231 = ((($225)) + 8|0); + $232 = HEAP32[$231>>2]|0; + $233 = HEAP32[(19984)>>2]|0; + $234 = ($232>>>0)<($233>>>0); + if ($234) { + _abort(); + // unreachable; + } else { + $$0438 = $232;$$pre$phiZ2D = $231; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $235 = ((($$0438)) + 12|0); + HEAP32[$235>>2] = $$1; + $236 = ((($$1)) + 8|0); + HEAP32[$236>>2] = $$0438; + $237 = ((($$1)) + 12|0); + HEAP32[$237>>2] = $225; + return; + } + $238 = $$2 >>> 8; + $239 = ($238|0)==(0); + if ($239) { + $$0431 = 0; + } else { + $240 = ($$2>>>0)>(16777215); + if ($240) { + $$0431 = 31; + } else { + $241 = (($238) + 1048320)|0; + $242 = $241 >>> 16; + $243 = $242 & 8; + $244 = $238 << $243; + $245 = (($244) + 520192)|0; + $246 = $245 >>> 16; + $247 = $246 & 4; + $248 = $247 | $243; + $249 = $244 << $247; + $250 = (($249) + 245760)|0; + $251 = $250 >>> 16; + $252 = $251 & 2; + $253 = $248 | $252; + $254 = (14 - ($253))|0; + $255 = $249 << $252; + $256 = $255 >>> 15; + $257 = (($254) + ($256))|0; + $258 = $257 << 1; + $259 = (($257) + 7)|0; + $260 = $$2 >>> $259; + $261 = $260 & 1; + $262 = $261 | $258; + $$0431 = $262; + } + } + $263 = (20272 + ($$0431<<2)|0); + $264 = ((($$1)) + 28|0); + HEAP32[$264>>2] = $$0431; + $265 = ((($$1)) + 16|0); + $266 = ((($$1)) + 20|0); + HEAP32[$266>>2] = 0; + HEAP32[$265>>2] = 0; + $267 = HEAP32[(19972)>>2]|0; + $268 = 1 << $$0431; + $269 = $267 & $268; + $270 = ($269|0)==(0); + if ($270) { + $271 = $267 | $268; + HEAP32[(19972)>>2] = $271; + HEAP32[$263>>2] = $$1; + $272 = ((($$1)) + 24|0); + HEAP32[$272>>2] = $263; + $273 = ((($$1)) + 12|0); + HEAP32[$273>>2] = $$1; + $274 = ((($$1)) + 8|0); + HEAP32[$274>>2] = $$1; + return; + } + $275 = HEAP32[$263>>2]|0; + $276 = ($$0431|0)==(31); + $277 = $$0431 >>> 1; + $278 = (25 - ($277))|0; + $279 = $276 ? 0 : $278; + $280 = $$2 << $279; + $$0419 = $280;$$0420 = $275; + while(1) { + $281 = ((($$0420)) + 4|0); + $282 = HEAP32[$281>>2]|0; + $283 = $282 & -8; + $284 = ($283|0)==($$2|0); + if ($284) { + label = 121; + break; + } + $285 = $$0419 >>> 31; + $286 = (((($$0420)) + 16|0) + ($285<<2)|0); + $287 = $$0419 << 1; + $288 = HEAP32[$286>>2]|0; + $289 = ($288|0)==(0|0); + if ($289) { + label = 118; + break; + } else { + $$0419 = $287;$$0420 = $288; + } + } + if ((label|0) == 118) { + $290 = HEAP32[(19984)>>2]|0; + $291 = ($286>>>0)<($290>>>0); + if ($291) { + _abort(); + // unreachable; + } + HEAP32[$286>>2] = $$1; + $292 = ((($$1)) + 24|0); + HEAP32[$292>>2] = $$0420; + $293 = ((($$1)) + 12|0); + HEAP32[$293>>2] = $$1; + $294 = ((($$1)) + 8|0); + HEAP32[$294>>2] = $$1; + return; + } + else if ((label|0) == 121) { + $295 = ((($$0420)) + 8|0); + $296 = HEAP32[$295>>2]|0; + $297 = HEAP32[(19984)>>2]|0; + $298 = ($296>>>0)>=($297>>>0); + $not$19 = ($$0420>>>0)>=($297>>>0); + $299 = $298 & $not$19; + if (!($299)) { + _abort(); + // unreachable; + } + $300 = ((($296)) + 12|0); + HEAP32[$300>>2] = $$1; + HEAP32[$295>>2] = $$1; + $301 = ((($$1)) + 8|0); + HEAP32[$301>>2] = $296; + $302 = ((($$1)) + 12|0); + HEAP32[$302>>2] = $$0420; + $303 = ((($$1)) + 24|0); + HEAP32[$303>>2] = 0; + return; + } +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_stbi__stdio_skip,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,_stbi__stdio_eof,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,_stbi__stdio_read,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _memset: _memset, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _llvm_cttz_i32: _llvm_cttz_i32, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _memset = Module["_memset"] = asm["_memset"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_heightmap.png b/examples/web/models/models_heightmap.png new file mode 100644 index 0000000..6dcf01f Binary files /dev/null and b/examples/web/models/models_heightmap.png differ diff --git a/examples/web/models/models_mesh_picking.c b/examples/web/models/models_mesh_picking.c new file mode 100644 index 0000000..332fa20 --- /dev/null +++ b/examples/web/models/models_mesh_picking.c @@ -0,0 +1,238 @@ +/******************************************************************************************* +* +* raylib [models] example - Mesh picking in 3d mode, ground plane, triangle, mesh +* +* This example has been created using raylib 1.7 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* Example contributed by Joel Davis (@joeld42) +* +********************************************************************************************/ + +#include "raylib.h" +#include "raymath.h" + +#define FLT_MAX 3.40282347E+38F // Maximum value of a float, defined in + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +const int screenWidth = 800; +const int screenHeight = 450; + +Camera camera; + +Vector3 cubePosition = { 0.0f, 1.0f, 0.0f }; +Vector3 cubeSize = { 2.0f, 2.0f, 2.0f }; + +Ray ray; // Picking line ray + +Model tower; +Texture2D texture; + +Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; +BoundingBox towerBBox; +bool hitMeshBBox = false; +bool hitTriangle = false; + +// Test triangle +Vector3 ta = (Vector3){ -25.0, 0.5, 0.0 }; +Vector3 tb = (Vector3){ -4.0, 2.5, 1.0 }; +Vector3 tc = (Vector3){ -8.0, 6.5, 0.0 }; + +Vector3 bary = { 0.0f, 0.0f, 0.0f }; + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - 3d mesh picking"); + + // Define the camera to look into our 3d world + camera.position = (Vector3){ 10.0f, 8.0f, 10.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 2.3f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + + tower = LoadModel("resources/tower.obj"); // Load OBJ model + texture = LoadTexture("resources/tower.png"); // Load model texture + tower.material.texDiffuse = texture; // Set model diffuse texture + + towerBBox = CalculateBoundingBox(tower.mesh); + + SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModel(tower); // Unload model from GPU + UnloadTexture(texture); // Unload texture from GPU + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update camera + + // Display information about closest hit + RayHitInfo nearestHit; + char *hitObjectName = "None"; + nearestHit.distance = FLT_MAX; + nearestHit.hit = false; + Color cursorColor = WHITE; + + // Get ray and test against ground, triangle, and mesh + ray = GetMouseRay(GetMousePosition(), camera); + + // Check ray collision aginst ground plane + RayHitInfo groundHitInfo = GetCollisionRayGround(ray, 0.0f); + + if ((groundHitInfo.hit) && (groundHitInfo.distance < nearestHit.distance)) + { + nearestHit = groundHitInfo; + cursorColor = GREEN; + hitObjectName = "Ground"; + } + + // Check ray collision against test triangle + RayHitInfo triHitInfo = GetCollisionRayTriangle(ray, ta, tb, tc); + + if ((triHitInfo.hit) && (triHitInfo.distance < nearestHit.distance)) + { + nearestHit = triHitInfo; + cursorColor = PURPLE; + hitObjectName = "Triangle"; + + bary = VectorBarycenter(nearestHit.hitPosition, ta, tb, tc); + hitTriangle = true; + } + else hitTriangle = false; + + RayHitInfo meshHitInfo; + + // Check ray collision against bounding box first, before trying the full ray-mesh test + if (CheckCollisionRayBox(ray, towerBBox)) + { + hitMeshBBox = true; + + // Check ray collision against mesh + meshHitInfo = GetCollisionRayMesh(ray, &tower.mesh); + + if ((meshHitInfo.hit) && (meshHitInfo.distance < nearestHit.distance)) + { + nearestHit = meshHitInfo; + cursorColor = ORANGE; + hitObjectName = "Mesh"; + } + + } hitMeshBBox = false; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + // Draw the tower + DrawModel(tower, towerPos, 1.0, WHITE); + + // Draw the test triangle + DrawLine3D(ta, tb, PURPLE); + DrawLine3D(tb, tc, PURPLE); + DrawLine3D(tc, ta, PURPLE); + + // Draw the mesh bbox if we hit it + if (hitMeshBBox) DrawBoundingBox(towerBBox, LIME); + + // If we hit something, draw the cursor at the hit point + if (nearestHit.hit) + { + DrawCube(nearestHit.hitPosition, 0.5, 0.5, 0.5, cursorColor); + DrawCubeWires(nearestHit.hitPosition, 0.5, 0.5, 0.5, YELLOW); + + Vector3 normalEnd; + normalEnd.x = nearestHit.hitPosition.x + nearestHit.hitNormal.x; + normalEnd.y = nearestHit.hitPosition.y + nearestHit.hitNormal.y; + normalEnd.z = nearestHit.hitPosition.z + nearestHit.hitNormal.z; + + DrawLine3D(nearestHit.hitPosition, normalEnd, YELLOW); + } + + DrawRay(ray, MAROON); + + DrawGrid(100, 1.0f); + + End3dMode(); + + // Draw some debug GUI text + DrawText(FormatText("Hit Object: %s", hitObjectName), 10, 50, 10, BLACK); + + if (nearestHit.hit) + { + int ypos = 70; + + DrawText(FormatText("Distance: %3.2f", nearestHit.distance), 10, ypos, 10, BLACK); + + DrawText(FormatText("Hit Pos: %3.2f %3.2f %3.2f", + nearestHit.hitPosition.x, + nearestHit.hitPosition.y, + nearestHit.hitPosition.z), 10, ypos + 15, 10, BLACK); + + DrawText(FormatText("Hit Norm: %3.2f %3.2f %3.2f", + nearestHit.hitNormal.x, + nearestHit.hitNormal.y, + nearestHit.hitNormal.z), 10, ypos + 30, 10, BLACK); + + if (hitTriangle) DrawText(FormatText("Barycenter: %3.2f %3.2f %3.2f", bary.x, bary.y, bary.z), 10, ypos + 45, 10, BLACK); + } + + DrawText("Use Mouse to Move Camera", 10, 430, 10, GRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- +} diff --git a/examples/web/models/models_mesh_picking.data b/examples/web/models/models_mesh_picking.data new file mode 100644 index 0000000..3e8be3b --- /dev/null +++ b/examples/web/models/models_mesh_picking.data @@ -0,0 +1,554 @@ +# Blender v2.78 (sub 0) OBJ File: 'lowpoly-tower.blend' +# www.blender.org +o Grid +v -4.000000 0.000000 4.000000 +v -2.327363 0.000000 4.654725 +v 0.000000 0.000000 4.654725 +v 2.327363 0.000000 4.654725 +v 4.000000 0.000000 4.000000 +v -4.654725 0.955085 2.327363 +v -2.000000 0.815050 2.000000 +v 0.000000 0.476341 2.423448 +v 2.000000 0.476341 2.000000 +v 4.654725 0.000000 2.327363 +v -4.654725 1.649076 0.000000 +v -2.423448 1.092402 0.000000 +v 2.423448 0.198579 0.000000 +v 4.654725 0.000000 0.000000 +v -4.654725 1.649076 -2.327363 +v -2.000000 1.092402 -2.000000 +v 0.000000 0.476341 -2.423448 +v 2.000000 -0.012791 -2.000000 +v 4.654725 0.000000 -2.612731 +v -4.000000 0.955085 -4.000000 +v -2.327363 0.955085 -4.654725 +v 0.000000 0.955085 -4.654725 +v 2.327363 0.000000 -4.654725 +v 4.000000 0.000000 -4.000000 +v 2.423448 0.682825 0.000000 +v 2.000000 0.565423 -2.000000 +v -4.654725 -0.020560 2.327363 +v -4.654725 0.000000 0.000000 +v -4.654725 0.000000 -2.327363 +v -4.000000 0.000000 -4.000000 +v -2.327363 0.000000 -4.654725 +v 0.000000 -0.020560 -4.654725 +v 0.000000 0.709880 -1.230535 +v -0.000000 7.395413 0.000000 +v 0.962071 0.709880 -0.767226 +v -0.533909 0.709880 1.108674 +v -1.199683 0.709880 0.273820 +v -0.962071 0.709880 -0.767226 +v 1.506076 0.859071 1.325337 +v 1.199683 0.709880 0.273820 +v 0.533909 0.709880 1.108674 +v 0.000000 1.875340 -1.177842 +v -0.000000 2.293973 -0.649884 +v -0.000000 4.365648 -0.627970 +v 0.000000 6.167194 -0.942957 +v 0.000000 6.232434 -1.708677 +v 1.335898 6.232434 -1.065343 +v 0.737233 6.167195 -0.587924 +v 0.490966 4.365648 -0.391533 +v 0.508100 2.293973 -0.405196 +v 0.920874 1.875340 -0.734372 +v -0.741367 6.232434 1.539465 +v -0.409133 6.167195 0.849574 +v -0.272466 4.365648 0.565781 +v -0.281974 2.293973 0.585526 +v -0.511047 1.875340 1.061199 +v -1.665837 6.232434 0.380217 +v -0.919314 6.167195 0.209828 +v -0.612225 4.365648 0.139736 +v -0.633590 2.293973 0.144613 +v -1.148311 1.875340 0.262095 +v -1.335898 6.232434 -1.065343 +v -0.737233 6.167195 -0.587924 +v -0.490967 4.365648 -0.391533 +v -0.508100 2.293973 -0.405196 +v -0.920874 1.875340 -0.734372 +v 1.665837 6.232434 0.380216 +v 0.919315 6.167195 0.209828 +v 0.612225 4.365648 0.139736 +v 0.633590 2.293973 0.144613 +v 1.148311 1.875340 0.262095 +v 0.741367 6.232434 1.539465 +v 0.409133 6.167195 0.849575 +v 0.272466 4.365648 0.565781 +v 0.281974 2.293973 0.585526 +v 0.511046 1.875340 1.061199 +v 0.000000 5.012550 -0.969733 +v 0.758168 5.012550 -0.604618 +v -0.420751 5.012550 0.873699 +v -0.945419 5.012550 0.215786 +v -0.758168 5.012550 -0.604618 +v 0.945419 5.012550 0.215786 +v 0.420751 5.012550 0.873699 +vt 0.0523 0.5444 +vt 0.1817 0.4284 +vt 0.1641 0.5859 +vt 0.0177 0.4451 +vt 0.1526 0.3090 +vt 0.0189 0.1737 +vt 0.0188 0.3088 +vt 0.0561 0.0762 +vt 0.1757 0.1924 +vt 0.3024 0.4534 +vt 0.3071 0.5902 +vt 0.3413 0.2459 +vt 0.2906 0.1614 +vt 0.4116 0.1801 +vt 0.2834 0.3774 +vt 0.1526 0.0362 +vt 0.2917 0.1622 +vt 0.4446 0.5865 +vt 0.4443 0.2989 +vt 0.3711 0.3021 +vt 0.4396 0.0275 +vt 0.4094 0.1829 +vt 0.4219 0.4255 +vt 0.5474 0.5381 +vt 0.5811 0.4376 +vt 0.5715 0.1505 +vt 0.5811 0.2997 +vt 0.5272 0.0533 +vt 0.2208 0.2194 +vt 0.3456 0.3610 +vt 0.2878 0.0321 +vt 0.2321 0.3392 +vt 0.4432 0.0177 +vt 0.7347 0.7934 +vt 0.7382 0.7595 +vt 0.8982 0.7768 +vt 0.6169 0.7595 +vt 0.6139 0.7879 +vt 0.4951 0.7634 +vt 0.1551 0.6832 +vt 0.2925 0.6268 +vt 0.2925 0.6832 +vt 0.7795 0.6832 +vt 0.6421 0.6268 +vt 0.7795 0.6255 +vt 0.5046 0.7241 +vt 0.6421 0.7241 +vt 0.3986 0.6268 +vt 0.3986 0.6832 +vt 0.5046 0.6268 +vt 0.0177 0.6268 +vt 0.1551 0.6255 +vt 0.8856 0.6268 +vt 0.1899 0.9579 +vt 0.1194 0.8696 +vt 0.2324 0.8696 +vt 0.1899 0.7813 +vt 0.0943 0.7595 +vt 0.0177 0.8206 +vt 0.0177 0.9186 +vt 0.0943 0.9797 +vt 0.2793 0.2349 +vt 0.2304 0.2758 +vt 0.6597 0.0177 +vt 0.6954 0.0993 +vt 0.6367 0.0768 +vt 0.7558 0.0777 +vt 0.7238 0.0440 +vt 0.8840 0.1330 +vt 0.7385 0.1141 +vt 0.9157 0.0886 +vt 0.9781 0.1232 +vt 0.9224 0.1276 +vt 0.2677 0.8141 +vt 0.3463 0.8037 +vt 0.3086 0.8339 +vt 0.6387 0.3550 +vt 0.7130 0.3801 +vt 0.6596 0.4053 +vt 0.7245 0.3245 +vt 0.6919 0.3383 +vt 0.8655 0.3566 +vt 0.7351 0.3577 +vt 0.9770 0.3365 +vt 0.9078 0.3751 +vt 0.9174 0.3282 +vt 0.2677 0.9018 +vt 0.3086 0.8821 +vt 0.6803 0.2948 +vt 0.6251 0.3035 +vt 0.7194 0.2854 +vt 0.8764 0.2832 +vt 0.9221 0.2861 +vt 0.3363 0.9565 +vt 0.3464 0.9122 +vt 0.6751 0.2482 +vt 0.6178 0.2499 +vt 0.7179 0.2431 +vt 0.9823 0.2484 +vt 0.9247 0.2452 +vt 0.3935 0.9014 +vt 0.6755 0.1996 +vt 0.6164 0.1941 +vt 0.7201 0.1992 +vt 0.8793 0.2446 +vt 0.9823 0.2060 +vt 0.9257 0.2051 +vt 0.4598 0.8580 +vt 0.4144 0.8579 +vt 0.6819 0.1498 +vt 0.6222 0.1361 +vt 0.7266 0.1555 +vt 0.8831 0.1684 +vt 0.9252 0.1659 +vt 0.4218 0.7790 +vt 0.3934 0.8145 +vt 0.3363 0.7595 +vt 0.8815 0.2060 +vt 0.8720 0.3208 +vt 0.8825 0.1012 +vt 0.9735 0.0816 +vt 0.9718 0.3817 +vt 0.9807 0.2918 +vt 0.4218 0.9370 +vt 0.9810 0.1644 +vn 0.1035 0.8806 0.4623 +vn 0.0964 0.9481 0.3030 +vn 0.0000 0.9780 0.2088 +vn 0.0659 0.9835 0.1683 +vn 0.2325 0.9320 0.2779 +vn 0.0553 0.9960 -0.0702 +vn 0.2827 0.9564 0.0728 +vn 0.1873 0.9776 -0.0961 +vn 0.2421 0.9703 0.0000 +vn 0.0921 0.9772 -0.1913 +vn -0.0277 0.9947 -0.0993 +vn 0.2308 0.9274 -0.2944 +vn 0.2771 0.9572 -0.0837 +vn 0.3724 0.9074 0.1947 +vn 0.0777 0.9770 -0.1985 +vn -0.1094 0.9539 0.2794 +vn 0.0364 0.9844 0.1721 +vn 0.1683 0.9835 0.0659 +vn 0.0674 0.9901 0.1230 +vn 0.4338 0.8823 0.1829 +vn 0.2845 0.9565 0.0649 +vn 0.0886 0.9961 0.0000 +vn 0.2000 0.9789 0.0424 +vn 0.1417 0.9830 0.1171 +vn 0.3021 0.9524 0.0412 +vn -0.0193 0.9986 -0.0493 +vn 0.0000 0.9777 0.2098 +vn 0.0005 0.9781 -0.2083 +vn 0.1879 0.9782 -0.0887 +vn 0.2249 0.0000 0.9744 +vn 0.9783 0.0000 -0.2071 +vn 0.9783 0.0000 0.2071 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.3645 0.0000 -0.9312 +vn -0.9312 0.0000 -0.3645 +vn -0.9312 0.0000 0.3645 +vn 0.2615 0.7979 -0.5431 +vn 0.5877 0.7979 -0.1341 +vn 0.4713 0.7979 0.3758 +vn -0.0000 0.7979 0.6028 +vn -0.4713 0.7979 0.3758 +vn -0.5877 0.7979 -0.1341 +vn -0.2615 0.7979 -0.5431 +vn -0.1285 0.9864 -0.1025 +vn 0.0929 0.8937 0.4389 +vn -0.4335 0.0407 -0.9002 +vn -0.2867 0.7507 -0.5952 +vn -0.4339 0.0095 -0.9009 +vn -0.4338 0.0209 -0.9008 +vn -0.0408 -0.9956 -0.0848 +vn -0.9741 0.0407 -0.2223 +vn -0.6441 0.7507 -0.1470 +vn -0.9749 0.0095 -0.2225 +vn -0.9747 0.0209 -0.2225 +vn -0.0918 -0.9956 -0.0209 +vn -0.7812 0.0407 0.6230 +vn -0.5165 0.7507 0.4119 +vn -0.7818 0.0095 0.6235 +vn -0.7817 0.0209 0.6234 +vn -0.0736 -0.9956 0.0587 +vn -0.0000 0.0407 0.9992 +vn 0.0000 0.7507 0.6607 +vn 0.0000 0.0095 1.0000 +vn -0.0000 0.0209 0.9998 +vn -0.0000 -0.9956 0.0941 +vn 0.7812 0.0407 0.6230 +vn 0.5165 0.7507 0.4119 +vn 0.7818 0.0095 0.6235 +vn 0.7817 0.0209 0.6234 +vn 0.0736 -0.9956 0.0587 +vn 0.9741 0.0407 -0.2223 +vn 0.6441 0.7507 -0.1470 +vn 0.9749 0.0095 -0.2225 +vn 0.9747 0.0209 -0.2225 +vn 0.0918 -0.9956 -0.0209 +vn 0.4335 0.0407 -0.9002 +vn 0.2867 0.7507 -0.5952 +vn 0.4339 0.0095 -0.9009 +vn 0.4338 0.0209 -0.9008 +vn 0.0408 -0.9956 -0.0848 +vn 0.3918 -0.4298 -0.8135 +vn 0.8803 -0.4298 -0.2009 +vn 0.7059 -0.4298 0.5630 +vn -0.0000 -0.4298 0.9029 +vn -0.7059 -0.4298 0.5630 +vn -0.8803 -0.4298 -0.2009 +vn -0.3918 -0.4298 -0.8135 +vn 0.0210 0.9998 -0.0048 +vn 0.0482 0.9981 -0.0385 +vn -0.0166 0.9914 -0.1301 +vn -0.0090 0.9904 -0.1379 +vn 0.2820 0.9576 0.0597 +vn -0.0000 0.9846 0.1749 +vn -0.0921 0.9772 -0.1913 +vn -0.1734 0.9794 0.1036 +s off +f 1/1/1 7/2/1 6/3/1 +f 2/4/2 8/5/2 7/2/2 +f 4/6/3 8/5/3 3/7/3 +f 5/8/4 9/9/4 4/6/4 +f 6/3/5 12/10/5 11/11/5 +f 35/12/6 25/13/6 26/14/6 +f 7/2/7 37/15/7 12/10/7 +f 10/16/8 13/17/8 9/9/8 +f 12/10/9 15/18/9 11/11/9 +f 35/12/10 17/19/10 33/20/10 +f 13/17/11 19/21/11 18/22/11 +f 16/23/12 20/24/12 15/18/12 +f 17/19/13 21/25/13 16/23/13 +f 17/19/14 23/26/14 22/27/14 +f 26/14/15 24/28/15 23/26/15 +f 1/1/16 2/4/16 7/2/16 +f 2/4/3 3/7/3 8/5/3 +f 4/6/17 9/9/17 8/5/17 +f 5/8/18 10/16/18 9/9/18 +f 6/3/19 7/2/19 12/10/19 +f 25/13/20 39/29/20 9/9/20 +f 38/30/21 12/10/21 37/15/21 +f 10/16/22 14/31/22 13/17/22 +f 12/10/23 16/23/23 15/18/23 +f 8/5/24 36/32/24 7/2/24 +f 38/30/25 17/19/25 16/23/25 +f 13/17/22 14/31/22 19/21/22 +f 16/23/26 21/25/26 20/24/26 +f 17/19/27 22/27/27 21/25/27 +f 17/19/28 26/14/28 23/26/28 +f 26/14/29 19/33/29 24/28/29 +f 26/34/30 18/35/30 19/36/30 +f 26/34/31 13/37/31 18/35/31 +f 25/38/32 9/39/32 13/37/32 +f 22/40/33 31/41/33 21/42/33 +f 6/43/34 28/44/34 27/45/34 +f 15/46/34 28/44/34 11/47/34 +f 21/42/35 30/48/35 20/49/35 +f 20/49/36 29/50/36 15/46/36 +f 22/40/33 23/51/33 32/52/33 +f 6/43/37 27/45/37 1/53/37 +f 46/54/38 34/55/38 47/56/38 +f 47/56/39 34/55/39 67/57/39 +f 67/57/40 34/55/40 72/58/40 +f 72/58/41 34/55/41 52/59/41 +f 52/59/42 34/55/42 57/60/42 +f 57/60/43 34/55/43 62/61/43 +f 62/61/44 34/55/44 46/54/44 +f 40/62/45 41/63/45 39/29/45 +f 39/29/46 8/5/46 9/9/46 +f 38/64/47 42/65/47 33/66/47 +f 65/67/48 42/65/48 66/68/48 +f 65/67/49 44/69/49 43/70/49 +f 81/71/50 45/72/50 77/73/50 +f 62/74/51 45/75/51 63/76/51 +f 37/77/52 66/78/52 38/79/52 +f 60/80/53 66/78/53 61/81/53 +f 60/80/54 64/82/54 65/83/54 +f 58/84/55 81/85/55 80/86/55 +f 57/87/56 63/76/56 58/88/56 +f 56/89/57 37/77/57 36/90/57 +f 55/91/58 61/81/58 56/89/58 +f 54/92/59 60/80/59 55/91/59 +f 79/93/60 58/84/60 80/86/60 +f 52/94/61 58/88/61 53/95/61 +f 76/96/62 36/90/62 41/97/62 +f 75/98/63 56/89/63 76/96/63 +f 75/98/64 54/92/64 55/91/64 +f 73/99/65 79/93/65 83/100/65 +f 73/101/66 52/94/66 53/95/66 +f 71/102/67 41/97/67 40/103/67 +f 70/104/68 76/96/68 71/102/68 +f 70/104/69 74/105/69 75/98/69 +f 68/106/70 83/100/70 82/107/70 +f 67/108/71 73/101/71 68/109/71 +f 51/110/72 40/103/72 35/111/72 +f 50/112/73 71/102/73 51/110/73 +f 49/113/74 70/104/74 50/112/74 +f 78/114/75 68/106/75 82/107/75 +f 47/115/76 68/109/76 48/116/76 +f 42/65/77 35/111/77 33/66/77 +f 43/70/78 51/110/78 42/65/78 +f 44/69/79 50/112/79 43/70/79 +f 45/72/80 78/114/80 77/73/80 +f 46/117/81 48/116/81 45/75/81 +f 44/69/82 78/114/82 49/113/82 +f 49/113/83 82/107/83 69/118/83 +f 82/107/84 74/105/84 69/118/84 +f 83/100/85 54/92/85 74/105/85 +f 79/93/86 59/119/86 54/92/86 +f 80/86/87 64/82/87 59/119/87 +f 64/120/88 77/73/88 44/69/88 +f 35/12/89 40/62/89 25/13/89 +f 7/2/90 36/32/90 37/15/90 +f 35/12/91 26/14/91 17/19/91 +f 25/13/92 40/62/92 39/29/92 +f 38/30/93 16/23/93 12/10/93 +f 8/5/94 41/63/94 36/32/94 +f 38/30/95 33/20/95 17/19/95 +f 26/34/31 25/38/31 13/37/31 +f 22/40/33 32/52/33 31/41/33 +f 6/43/34 11/47/34 28/44/34 +f 15/46/34 29/50/34 28/44/34 +f 21/42/35 31/41/35 30/48/35 +f 20/49/36 30/48/36 29/50/36 +f 39/29/96 41/63/96 8/5/96 +f 38/64/47 66/68/47 42/65/47 +f 65/67/48 43/70/48 42/65/48 +f 65/67/49 64/120/49 44/69/49 +f 81/71/50 63/121/50 45/72/50 +f 62/74/51 46/117/51 45/75/51 +f 37/77/52 61/81/52 66/78/52 +f 60/80/53 65/83/53 66/78/53 +f 60/80/54 59/119/54 64/82/54 +f 58/84/55 63/122/55 81/85/55 +f 57/87/56 62/74/56 63/76/56 +f 56/89/57 61/81/57 37/77/57 +f 55/91/58 60/80/58 61/81/58 +f 54/92/59 59/119/59 60/80/59 +f 79/93/60 53/123/60 58/84/60 +f 52/94/61 57/87/61 58/88/61 +f 76/96/62 56/89/62 36/90/62 +f 75/98/63 55/91/63 56/89/63 +f 75/98/64 74/105/64 54/92/64 +f 73/99/65 53/123/65 79/93/65 +f 73/101/66 72/124/66 52/94/66 +f 71/102/67 76/96/67 41/97/67 +f 70/104/68 75/98/68 76/96/68 +f 70/104/69 69/118/69 74/105/69 +f 68/106/70 73/99/70 83/100/70 +f 67/108/71 72/124/71 73/101/71 +f 51/110/72 71/102/72 40/103/72 +f 50/112/73 70/104/73 71/102/73 +f 49/113/74 69/118/74 70/104/74 +f 78/114/75 48/125/75 68/106/75 +f 47/115/76 67/108/76 68/109/76 +f 42/65/77 51/110/77 35/111/77 +f 43/70/78 50/112/78 51/110/78 +f 44/69/79 49/113/79 50/112/79 +f 45/72/80 48/125/80 78/114/80 +f 46/117/81 47/115/81 48/116/81 +f 44/69/82 77/73/82 78/114/82 +f 49/113/83 78/114/83 82/107/83 +f 82/107/84 83/100/84 74/105/84 +f 83/100/85 79/93/85 54/92/85 +f 79/93/86 80/86/86 59/119/86 +f 80/86/87 81/85/87 64/82/87 +f 64/120/88 81/71/88 77/73/88 +‰PNG + + IHDR€€Ã>aËgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~ü`ÏIDATxÚíýw|ÕÕø¿ïÙ]­$Iq/˜^L %„FB³Mo JBË“'l“„BǸH¶!FèƒcŒ«Ü­.IVï[fæ~ÿ¸3³»’lLyžäùü~çõ²µ;mïÜsîéç\±öÓ‡¥P(”R @‘ô÷K€@€!BH÷¯`óæ-ìܱó°÷:Ê@ +‰aC ‘úŽ›ÓùúÃÁ5×\û¥Æÿÿ*È/¼B4ú?žg}¥9òâßöâ ¼ðoûíÿ$0ä"\ò;›öšå\ôs›´ìóüs/?`~Á½‡A¾ø÷À¢… ¹êê«ÿ­cø"$.ô?ïSot:ßúƱ)ß3.\Ÿò}û=3üÏãæ­êt¿øB\òˆEûÁå8±i9©}+å;¤…‡l!»Fþ¦M›¾”R`˜Æ×R$˜ß*$#߃d"èˆ|<"HF¾‰à EÀ%¤²}Ló?{ÈOþ©}‹ïþü5~ü¥ÿͱR"¥Ôàk¬ü#Aì‘@2òAs‚ÿ4è +ù‡;ÞºB~—sq¸“ÉÈ÷9×ÿœ¼Ú“¡+‚ÉOu4‘¯œ#[­yØ<“÷O.z?Ïÿ Wÿ—…ŽÈ÷à?‘þ7 KÞqÕ{ìß#»=hBHÉè™à‡Zõ‘Hä°\ü¾MfzM)Ç›ÿOÿsÆào£p¸êlã{þoèß4HÑ1ß¹óMá½{gûŸ”ϑڷˆÔ¾EZÎ>GHæ žI¿ÞY‡ýñƒrðàÁCž*÷ À¡¥­”"c&À.MP¥X´Â扅¯ñä¢×yrÑëä½o'½è<ðŸÃ ºRøwü«‚ôY3ù$#»#Dj×%Ëþd‚¨Ú÷*%[ÿJ¿ÞYàÒ?u6!Ç¢­­½ËßÐȇÌp´ã!*ñ ×;Aú „EÒ¶÷íâ˜y–á¾ä‘!߃ÿT"èø½£ÆŸ|¬+¿«c¦4$w,ŒSZaÓ w)åÛ_"@†Â¾5e¿™Ñ=å +èÝ+ hN9^}°!ÊÑHó”¼gòÏ«*x…ŒAg»ŠƒJZýB€jE‘Fë¾wõ!×·à—E¾ÿ)â #Òïz#Ãÿü‡ [»$ºBxG0ò”‰KÀNAöq—R]]$Ÿ¬ ôÌè@mM 9½z±wž~`ä'Õ[,¹-¡v´´µ!…Ä‘ŽOyt D…^ý"ˆR6®2é¤AýQ$Ÿ9ø;,^¡¸ú\þã`Ù²e\~ùå_xíŽÈØGÊüO—,è¼h_¹ÆHù~Á­IùþÖoOJù.ò·|¦®ÍsèÕ'D]«â@~-ÐYñK CÆ]Jey•ÿ=§W/ªö½J¸Ÿ^­í•+>áG”lý+=ží@sS#«WLKK O,|[®ºEïEÉ ÷¤¥½T„Ö}º¿ Hï?åD2LÛ ‰ãŽ™NÛ5>d :„@rõ¹©"¾¤ :{ÖU޽ÿþ +¥¶DZm'ÁÁ|1ä8؎²mP`;¶mƒJŒA&ÓDJ‰”R„!Àˆ³ïîrL W”Q^ÕÄ¡À#‚ŽÈïŠLÃOST7+úåt£u 4—l cðÑ´îÝMûÁå)&àq—úŸ=Ö_KBùk¯\A¸ßÙ„ûM¿ÞY>òö¯àŠÇÏfém&ݺ÷ ©9ñO-zCOÜ€ÓÈ÷ µ=BúÀ“iÛÿ1(EÛ„ûG©¸|¥´íÿûZQ”Z_A.·¹æšŒÁG©~€êê:bÍøß#µoaE>ö¿{«4H™Š$Þ£Gw”£|… õÀjZÛ»¼áŒc Îgð³§qáÙSùÎÙÇrþ¤1¤8ÞÕb L­{ßäÏóÿ…D{¿Ì?„ÔÈÿ&@}¹àÙáàŠã"_ÿ!.H€¦â þ­kWÑmø4ÿ{·áÓ¡Rd¨”pŸs}½ ÌŒî PY]$ˆ Üïll.{LkóÙ99½{ +Z÷ˆÂ§…ôS÷ŸÌ…gO…$…N ‘.;ÿÁy'Þ¨JEiÝ÷>­{ߢmïÛ‰5 7qäÿ‚À76ÑðÒÀ7xâ„fñ݆O£¹$A2TJ19@‚#˜Ý}¹ŸŒh*«ë©¬®÷9Iѳ‡V$3KßÑ—è.§lÛÿ1m6¢TŒ3Æ88NçÙKUð%ˆ .Gðe±üñ¹¿!_êß7I‡Ã½ú +.î+û¾Óåñ+ú$ˆ¾£Â×Õ1±sÇ&uIžã#z 3غvN˜AiUs +)DÑ^Y’‚ìdðÄ@òyïXF¿³q€Wî0Yºt)ÿø4“–H 8QPqmû>åpö©ã‘.U©W½ …@š†ôl}xåÍO½×ÒÿDÂ,DÀ]7ÿˆ#CšôêÕ Ó4| ÚŽíæGpäJ ­° å€e[ÙIJ Ó@JÃ0S”@謯ø}'bR]°–‹¾sd1Ÿ!µ ¨ßMéï^_±…Mú€´ì}–½o$½©–—Úõ¬”ƒRR$,’×ÌÒ1—ñ‹Q— ƒä{õþÓâ…ã.¨CÔ/¦?ä»ç£ˆ¦¬rðï­~€ýP]]ã ·} ÷±óú³Fú€ãQ¶%·WlåŸ>À[жëHx*Aë¾÷ɬã^\àP¹„ wï¾G<¯ZS¤’À‘ƒrßG p…£Àø¦Sãƒ|^}õ5.¾ø"¤i˜˜?ÏäýÛ‡ø%¯ð®ä¿'û“¯÷þfOœ"ï“?{0xÈ`ù×_Þ!nëj[ƒf€"Œ£[’­d>ð$×Äa1ð @Ѻo9B˜apÕ9]§­KCÒ«W/ä—E€Ò"Hüb™#eŽã …dÍš ¬ß°…Í›·}“1¢#B¾'ûö•(Ó0SdÓ>PôouCBö{Ÿ=sÐ;ï]Û^QâßÿΓSž··¼”wÞy‡ÖÖÖ”ãÏ/sÃÎJ镬â(ógYGþ }àÉNp!Èx­ûWê¯2[‡ƒ»`Ý{ô ;+;1w¾0O\l¦OoÚÂT¼÷þ*„X–E$Á²ºIW¥€ÙòÞ¿}ˆOÉîJö +²Æ $Ü7'j!\ßy2„Óºµ +)¸þŠóY¶*îê’Ö½ïº'ahŒÊPJž`ëþ•îÊ׎¥…Ëã "ú–C!__"p€ï¯ö-„à¦ËNgóÚXS$]½M1ûÓyã¥W)h óè‚÷9aˆƒ±-Û¸æGÓqXð×uضE³eã8J»‡]¢8óøQ˜¦dùÇ»±,Eck›N“S[†$É éÕÚµŸ˜8Nj0éØiSø2 ª*÷}!étÅ º"ˆŽÇþ2Cñ½DxùÛÚÔs'…>xÿ]òó;ë~˜O9,[eѺÿý”Óƒ¾å]ˆAZö¾î}ãÖ뾋RJ#ÿœ$äýûõ#ìlî½»beÊwÇqR¢”âšKNbçç‰ÙÔÔ·SÞÖ;8Nc]Ÿï—8ŽBÊ„µm!ã{iñPÕ¥¢5„ãè¨f<gˆLF5–{  ZÚ"Ô´÷ wz¦!ÙצƒCîs Ãt‰Á3ǧá¯Ã¾2t„¿žÙY›±Û¶PŽF~G"Xùþ{lÉÏïüƒBjVœÄþæ¿ô®‹|OYÔù€×|+¨‘¦´‚•âÛLbûG9ŠÑ£GÑÖÚJcS3¹yÁ0 #U4éîèÔ-`D÷6ÍÆ‡½­ÝÜÕ­¹@O»šòÖBŸU{«QÉèqªÚ¢ØÊ¡¾-ŒãØØ¶ƒãØŒÞh4JÏî™Äí8Óà`kj>¥5‚IÇ…B>/Hó×ÐŽ„’‰ÀC~WïŠÇÖŠL"¨>XAMÍA + Š(,êZHЃàùeËÉt.3ÏL Ì«LÉüí ÑÄСC»ôï·µ¶bÛ6õ 45¶ø:@,#·B" Áªפp.¥ñ¸E4ᤧ£…£×±ä°ö³MþuÁ{Ÿ½ï¡PˆÙ¦”Á I¿ǧ¼‹örêrº@À$ +!…8t4ðKÁÅ_täðU@)…í8 -Øq8p œh¤=e õuõ”••¥‚G^j–”tòê}}”^õGm­­457ÛD"jjê|Ðï’—åXÄb1,+ŽmÙ8v(|îeÙ6ñXŒ¸'·ˆD¢DÛcØ +ÒÒÒHO ƒús0pxFg-E·:B"ðüGTþu@kª’ýûЉ´·u9¸¬ì,²²³:t(5µµ444RZRê#ÿËB·ŒL&NOVvöß“ž‘AzF"ç~ôè/ÿ®e¥¥´G¢Äc1ªkk©©IMŸóœˆíþÕQ¹)ç ½ŠŽR|Ht8,xȇÿA(//Ʋb8¶ƒeYGTÙëÀ¨‘#4W(.=¢ßëÞ³;ÙYYdf¤Ó§oÒÓ3Žè¾?=öÄW~ÇŸßþ³”ç$ï»ví¦©±‘ææÊö©½“XPI)qÁ[åžpX8 $#@|ºæ}Ã0éÑ#‹=¾Ø7ž 55UÔÖTaA¥ï—…úºzêêêinn¢¤´ŒáÆ&B¶fìììCÆð_ñG +‡#¶mßAVÏž 8€Ý»öÐØÜLKS –mû"À4 LÓÄ0ÍNp¨Œ Žâ #òÄÊÞH¹Û³×¥‚P'¢8p œÖÖfâñ8ÿ—à釂#!†ŽPXPD}C‘H;iá0ñx !Œ#'ð‰ +äCÐåEID!ÿ#+ý +¾é×_¬…ýó¯t:wßìqþç9‹·ö]Ý(ø*Ä ¥¥e´4·Ð‰¹JöáQx¸´°#"€ÿKðeVùõ¦WOíG¨iˆ¥ ÑC~MC¬Ó}Þu‡»ÿHáë@YY9ÑhÔ÷a$é§ž~Ø{¿Q%ð©§Ÿ#‹ùΕäÁÜvëOè‡Cà¡&뫬òäÕí!¹ãJî +ùá‹®ù"îÐqì_… †rÈsÕÕ•ô>„ë¾!ðøŸŸD†i¥ÜBåÇØº,ìøßù$¯ÞŽP”ŸHŽ9qÚ!Ÿ™ŒÐC!Øãt¼¦#‡éxþ›à Ép("øZàñ??é¶…ûj}<„åoàýâîG|ßó¯t‰ìdHF¼÷ì÷‹Œnuù_Ä9¾È¬ü²p(Nð•8@W,7y’“‘”Œ8 yÉ÷n"õìäs_Eþ~U¢:ܳŽd‡âJ‡‚o’:Á—"€#•µÉÈ>ä%OÂáXöáîïøüÃý®gH”§w<ß×8«ÿ2× +Ùu’®®û¦!™¾P +éGºzï;«öŽœ8‘¿xÅv|Ž–ç‰£ãï{1râ4â ;ôëÿõîë(ÿ»ºîpc9kDSÊØ=ÄW”nN¹¿+ÝÂÃÅ×%„dq`ÌžuÙwuÑŸ{‚µk×ùƒ™6&‡ »¾íž±R²ûð?—Ô‡è+¥¾Jg–z/髯ªHAÀ´19L“ãß 0Í­<ö (%õ¡NÇë«*(©±aW.™(’Çæ‘åœÓÇûǽß‘eDVÔ÷†]u7yL +r´Þþ³½çt…ü¢ü ŒÈŠvùNÞ8¼s×_<šÆÊ­DÉöŸŸ És~ýÅ£ýÏk×®ãÄŽÿZDÐÖÖBFFfg¬Ø’µäŽ+̃¯#ŸµÊ“¶®¾ƒG|º8°Áûá8‰V5R=ÇvRß/Öç=äw¥Hv5ÎäEðEÜ£ã<&s…o‚TWW&t€;wFرcõõuÄã©}G–”Ì.5™‡R²ÎÑÔå}Þñ®®ïÉ_ 'ûuÝ¡®=’gy×é˜;.œ#YH_•©‰G­« òò§ÇžèRq;ܤH)8c˜®žxÑýG<ޝ ?¿ýgßÈïtŒþoŒûëÂÿs®àÿ?9ôîÝï›Ï0 ÝíâHë’ÕWÜw'/Î{ŒAƒ‡é²oÇáŠn'Þ=üƒ:Ôëýñç¿pëîðcîÿÆý)þãÀ³¾2˜†‰4 î}á ¦ï,6n\OmÁÎün§S›’J$Ìž2–Û,áñ«/gñÆ]‰ón»ÿá3&SS´ŸÌ1þ°æïÄ"QâÑ8Ç̘ÀÎíÛ¨/?È)œÙ)3RšŽ­Ó±¯€Ù£G"uÚKõúãú2{ê8oÚÉc×\Éí –pû‚%8@Îè<~õ~š˜‚[]"˜:e*­ -~ÿ³«6rÓÓ¹mþjŠ+‰†æÓŽaÑçÛ‘~}¢ƒ@2sÊQ,ú\§`Ízë˜|ÒtWö'W”ãpùoîw¯Ä¥ÿõ{Âá @ÑÞÖêZÿwápÈåeE©ú´<ºöo˜Á€O³§ŒãÖ¹ q°ÑÍ’Y“ÇøDP¤œtî Ý}Iòó·ÐTY¯kýæÜÍ¢»´n°As€Í›ÖSSP¡•=±KçÞI}«Vú®¿w~Êœ??÷r?LxŤ”ºžÏ|òÎ*”ã LÉóÞÀïs?Ðà(Š }$7UÔŠ ÇO¥´¬Dw¦stAGs•»CIï,ýõïñ;y¹¥Ú‘H›î÷÷N_„ü. `Þê¿ ˜Áf0à#ù¶KAÀŸ=pçnÚÂ5ñ.õŸoi§¶¸Šd™l¤i•cÙÜ»Ám/hÎQSTŽF:À÷>J¯Ñý‰4¸½„KVÊ¡¾ü (½òÁÕ]\ÂÙµ{§¿³©pK¨šÔ¸mu?!„Ö?Åön9†ËÍZ6¢l›1SuW“¹×ü,ùÞ_¥±Xä?–Žù)pÙ“÷ø'Nœì¯ÄgGîæ]š\O2Õ/à$ Å +Ø´~‚ÊüR̽¥lîžÿþpý¹oÉë‰{îʇ¥ßÁâ »™=íh.¿÷€"ÞE8ù¼3ýn;wo§®ô >~ÁÙHt5®°}ûVw‰M%÷ê=‰ËFÙº'Ñ AƒÙµakBìU;fÊx¤!QŽbîµ·v‰|¿±RÄbÑ#+ØøC~ +ˆmà®ç½ý0nüD¤”ÜxÚ±)D0eÒT¿bkÖ”±>Ø´q#¨.8€ÝeÁÜ[È[[€‚+ŽMî§{˜uâhÂÁLr7ìfóæÔV°ì‘_à8ÁâM{ÀcÅõMìØ¦«‡9fœŸþüéòU à™‡®eÉGE¦ÉÇo­ð‘~Ê…çàÄãÄcqª +Ê)++E9ýû¶¥»ƒ¨Ð"«¿þTVUÒZÓ(ÌP1S'h¢QŠy×ÝvHä'ÿÅ¢ÿv"ø2ÈO!€y«ÿÂÌ´ù—LãÇOG±»dO¢y“€)S¦ú„²qãÆÕ ,˜{3Br×ìÑ2Ö])ÁÌ0üCw¼^:÷~¾Coc;ÁʶùlµÞƒÀqãÆŽ÷ÙÌÎ]ÛýÏÂ)^Á±cÇaÇ-¬hœX{„ƒ%(/+¥èÓ««Ýk‘PYQRŠ~ýû M“ªÊ +ÚZ5q¬~]Gñ»›~Þ%Â}δ¡¶eYÿ6"ø²ÈïD€O(ÅÕ÷>™`ïá cÇ2|ïûÒ9w±xó.ÚZøð_ï‚„…snÁql–¬-ÒÍ–]™ýñ»«X6÷.­ßÉUÇŽaÑú]Zv;ºfîóOÖ€£xøú YúI©–­XóÞÊ”ž{Ž;J‰6禜r<Ñæ6â±8õû²Ÿn\Ñ»W­õ»]5ªÝ-ërzõF55RÐVßÊè‰cüVnŽãðè­w'íœî"ÝÇ}âs]}ÕÕ5Äb1úôéCŸ>=þS®#È[ýykµf·f73O<Šìý|ìÖWbGc¼üè} $·-XJmaÂà/ιËõñëU’5¼/õ%zo¡¼µEÌ:ñ(¼áê=ä ÜU¿Àå¶e# ÉÖm[|âZúq)ÊQ)صgÙƒûP·¯šçç\ÊaÉšR¶mÛBma%Žemi'Q·¿ +'në>€‹ã(…²mª««ýδŽeQ}°ÊßàZÙ6±ö(FÀÀ±t|Á/ní€ð޽%Å%ìÚSH}m.ï’qãÇÒ»W/úôéMNNß4|òW¬xWû8”âÜsÏO9'ÊËŠTòêÏ[[ ÿ®Ùͪ×Þõ/TœþÝsB÷ѹùôc¹má2ª µïŹ¿ðÝÄ +h«oþë=²†÷áw×~%Ÿúıeóf$ ‚&f(ˆ”ºËF]q¥&< ÒØÚée$а¿Æ·oÞïIjí}+Çñ9€θè[þ5žÌw”bwqµ…®˜û ”c#¤Ám –pÔÐQlݾ €ú’JÕd臷ªæ^ýmr?* šì*ÚÀc×ü˜…ëvÑXU‹a˜(Çbö™c¸çù×@Aý^í 8õü³Èß²I·linǶlêÊ¢b:úgÇ,‚™izµ;*ÉœÓë6;+›ú†ä&‚ììlwÏ ­`ÖÕ×RääôB)øÓÝ÷p(xï½÷)(*ô9€4$†ašÍÂ00¤ Ó3«'á4¯+HbGÃp·Ž“RwH7B¾·ÔóÀ: +tÝR¾˜xpî¹çc^þä½þºb·Ï¯”äoË'{D?êŠ+9ã¢o¥ Ý (xø² ¸oé›ÔWpÙ=¿óBÿ8 +*·–’5¼ŸÛyIßfÛ6¿»öb®¾ç) ÃàºûæsÊygbÇl*·•‡P8nŸ>°m‹@0Èâ•{wÌx>~çýp)øèͺ5K$Žã8ØÑ8ʲôÙzwì¬l•G›Ûè?d‡o²³r¨««u?gûÄ¡Ô×UëHH¸ +¥á¬>HAQa§ãRhõÔC¾aº×1R¹þfãòåow¯zý½NŽ‘|×÷¨`üø‰ú£übþ?p”âŹ¿ð#ƒ¹›v°qã¢-íÔ'šGÏøF,;FÞšz€·´gÏm»š5´ßH)¥÷R`[†i²m[>YCûø¦¨p”Eœ0} +íM-”aEc <ˆh{»vþ8YYÙÔ)E¬¹]ÿ†.“qài†Bø@­ $õ,êöîÝ×ù ñ†HA¾ÞÖt_m[ÛoÌ?\§÷йkþß|yïƒ;Q¸î‡¾Ât×scÛ¶|7l«'å7þˆ–ö:þ¶£’YSŽF90eÒTÖ­Y“˜T‹>Ü…Ô j + ˜A+j¹s&xjùzÍ \:ܱS+—åÕ88H¯úØÖ~…É'K¤µÝm«ªh­i"+³§«ˆ$êçcÍîFÕ.këjñº£øà·öOhú½z÷ê|¾Ôvì$ÑûItÛÑICbˆÄ>Gòk®~Ï2úZ÷©–»!xÄàMÔ®ÿykv'lýd¢•‚ß]ó¯Ù(fž0šÜ-»™9e4y[ +7v<ùÑ8 ûjyaÎXv”eŸ•ÆõJêËjä ýY^+e»rÎÏ +r8ùÜE±s÷Nj ö³qõg3eV4޲Òº‡‰Çb®¦ÛÇÏ!Ø-L¬¹¶×óŸˆWxPW_çŸ9ü–/PUU™Âþ¥kNJ†B&o®¬ï8_ù‡#‚#Ý4ÛôÚŽ-YWÈ §j—oÀmd<÷Š }ŸÀb—PÆŸèß¼Ímò¨‘0!7àØ6[·mEM²†÷åîþ¡u†«.à¾ç_óçóù‡®eáÊÝìܹ¬!}¨/;Hmq…¿1ƒ0 ”¼I²†Ö˜R‚º$ݲql›öúVzdêžA]uϨ««%ÚÜN¨[˜h‹û·©Š¦¶ÔŽÌnؘ^ åѲ;W@ïÜÕE¾¾§È¹«ßC¾p•:¤üD@Ç„8ùúÌqå8ˆ[–>œ2CiÝ2Ù¸q½ÚõGïј:e*ï½¢·`q’"@vL—:ç ë«#€R§oi/‹Ãï®ÿw?ÿw½aS2B”­ãöj(¯æ” Ï&ùr೫ýë½( ÖÛóó©Þ³Ÿ£Ç¥¥®½eå81‹ݺ»I¢êêR~:ÖÜNÿ¡Z¬«Oì^’rMKâOù{ôî„Ò PSSÍ?^ýWÊ1C˜f3h‡ ƒ¤ƒCo  +¥Ñ½[f0˜‚¾/cØ–ívGÐ÷yVèrýX,F{{{—V€rl¥þ¦;.ˈ4·Pëfù¼8÷¼8ïôvÓ½6nÚHΨþäŒ@ï£Ð{Tzî bƒ<}ëuüåO÷Ò÷˜¡‚"-Ì»îb}´›y×|ן]Dz†À±,œX\‚­WÙG¯½Çå'ñ.‘tÐ e+Ž?ç4-çmå§|×—é|?oÿ>e;´Õ7k-¾¾Žúº:êêë|–™Õ#+±Èý›Y=³ÉÊÊ!++‡ììbÍíZ_PPQºO_ïO^ê¶#»vw^ýz:…»Ñ•V=ä®OÀ0Œ¯ÌþãpbýðµÕõ/xÈ·ãqÌüüÍ)Ï”¦ ‹óò£÷³xÓðøÕWø¡àÇ®¾Ü߈ñ¶Kt’§ÐnàÖnášã'0yÒd6oÙL´)BS[OÉ"oMcÇcÇ68rè(¼È[<Ó”=Fñéò•Üò«\Ž;ãd®8m¿^¤÷è> ›;v¸ ÂÂç>=dmi§´¸«]A¨[˜ººZßå‰îìžÙ]¹³äÏVRz€¢ßÔÕ×ùJãòý p9A2¬®a÷®Ý¤ÎVJæFц¿ë™Î†2 S·“RÇF¾"xDíHP†ÛFRH ¶î^.…ÀN¹'ü¸mc>zÝ%̾çqrð“;æ/ÞOî¦nògbêoØðøÕ—sÙ½ðgôÚã'ðÂg[™uìQ %bqîûã¿;i"JÁž]; vOmàkÕ+ Ó`Ƕ­ô؋ƽ5\~Ê~5_G ›ö×ù,Ü]À½Ñرц6¬h Dz ¤“&U,;+ÕÿknG•åûé7x`Êó’õÁ`·0ˆµF¨«ÓJáU÷þ’E®K¸¤¤Гì(IKá[€" <ù¤góÒG~Àt·ŠM²º–ä_ Žkátl!*]%*YÏèˆ|+f!s?ÓÊ]î¼ÛÈÞŸ^#û“ãfîþøÎ‡ý›§N +n_ø¢O}‹7ïâÅy¿@Çã 7ìDš&K6o¸=‚u8W)TkjeHÿÁšý»ñv+naE£Zk·lº÷Ïâ¿^XŽr åÕD›[;q<“Ž?–égžÄäeÚé'’Ö=L $" ѳg–ïª6·wB¾‡ØP7Ýl²¢|_¢K'PßXç{ÿPŠììÒzdø;J ©·‹‘¶oßáçEH!BS! }ë+´oZŠi˜ÂpW¾á¶}Ot)ÿ: ÷´Ùëø»Ÿ%ƒÞgÙÝaÝ‹šºÉ¯òcñX´xí.&LšÈ¬ãŽbö}Oø,±½©O?–Åvd${$ÈâM;è=z ·>»„IS¦`L¼±ÔW‚|¶üC²‡÷ó£r—5”eïéÕH ¢”Þ»iÜ_›x1GaEb´Õ6Ò«woö¬ÙB "-#LFv**`Ç,â­ºgtÃ1CºøÃ¶RŒºŠò}ô20iÇ.MàÅ~•åû“ª€Bß' 'ÇõøÃ¿Ôiìuµ¾(†/ ¦»Ó© ´}ò,¦€ìsîÂ0Á ·ï±D}6[!…ÛkØQ`$XBj·¬l@96V<|+niÈ]«C¸³O8šÜµ»é5¼¿ëÏÕ¡Ðg?ZOZfz2}±ióFÊ”µeÙÌ÷Ù¯³éå:–¤¶é¥¡C¿¿}ö=† nc©¢¢Zk›q,‡É§‡R…kóiFéžÙxLOT<§½©…Æê:ššš†DÙñ@š6i\÷tvVõ õþ*h3QHI}]!×L(ÊÝÔ1Ô-¬W¾Ç9„Dš þꉋªªªRÛnmB.—0Ü¿-ïÿ€¬Ï%”¦Çë¸ÄöuÜÁÊq°ÓmYoø²ÀjºBÝ_ï%â@TAÔÐI7bÙ. $³Ž?ŠÅkw1ûø£™ýêr5¬,I„„` ¼[øFb¹$í`ðè¬1ó?*î½ ƒiHâÑf €—aëùêKKŠQŽ"‰1á¸)Ôî­ tÓ®DÚ¹”ÇÑ™?.ïu,‡Œô š››êkkéÙ3Ëw)ƒ gžTíÓnâ:j}B".è?d ;‰zÅWìÝO´¹þCùéãÒ˜“ä@4E&InÃ]ñA –‚4 a÷´‡’ xõ^‚3Ÿ¢½½Ý÷oã {€w|ßPXNœ–Å·’¾£GA›1GÏr‘o±X å(L/±3wí.¶nÍçÎ-ùäŒìÏ£×ýÈ•¥p÷ ¯ø?j¦§ù&Ñã×\Ém –€<~Õe,ܰ“oýðÛ\:q(wÌ…š"íKx纞aØQ#()*ı¢­ ûj5QØŽÎà9P­÷ÌñB³.çJo©÷ r0ý”,ACCƒGøþ²ö8€Fœ–…Ñæ6—½p9ƒÂ0õ¶/iÝÓAéí_„¡moÃËŽöí"+‰bBOòθÛÈi¤ÇØJhŽÐ?¨YqkÞ-¨ï?âÛå]¡_#·kÂðR4¾ò‹ndŽ `íŠc¸Î ÃýívG@‹ Κùd;Kß“üàÚ¢ +;ïV¯Ýíûûkܬ€3¾ó-nœ1”Ãâ Úiû§Ù?fáçÛ¹rÊ(L3È Ÿnõ‹-–EŸïpwÐHXž†ÀQŠïŸÙŸ¿½·Ÿö¦ͪmšuûÍgðöšƒ(ÇÁŠÅ{ò$Ä‹—»ƒÖÑ<JÏX÷î=RGÙ@@Ï=uÒ‰‹ìÁ£‡ƒRÔÖÕinÓç(©·lC@zV&í­(ÛÇ£F`†‚A‚á4D¾_Çrl¼‰šÆ¶­Í~“zUJF¬ˆ{ˆ8þFf…fÓ!‘b…‚åÅ&,¾™€ÔHxEB{\sGAÆø4,KÁÞ8jLÀÝQI?×TZ49àr¸$óS¸ wín?³Ç‹ÕUQSRåï˜iiõµýÛ.cц] u‹yð,¸ó…¿2ûÄQ¬« £l;n3tðPìxœÌ>=˜ÿò_¤xYéü.Áö¤á&=˜†iúÖ‚f‰$  ©¹Y#/-D(=@Z@Zˆ@8ˆ4 ÒÒÃÃ!Ò2Ó ¤¨k¬ÇÈìÓaJö—葉±ž´néÓôs‚á4L3H]]=Ã$`˜nk'-Mpò©aN:3̉ç„ñöƒöø9—€)!œ©‘å!E¸¹'¡;—e…𑵼$@Ô-jñˆÃ­‰¥Û„4ºOJÃ0 ²Us0ÓÐD—ê.ašB\0`bfj, «÷w˜8i²¿‰¦î9GçzM˜8”bå¿–c„Rä[?ü—NÆÌ{þä³ÿ«ï{m)(„r4h¥EŤônøÉ±üí­bj÷Wmis}zäÒ0Ü>Ä .ä}÷²ˆµ}®‰¤±¹ #``¦…0p FÐtW­dÿý´Ö4"Œ?åØHÃàÀ­¯(ËFM„´7´"M£SÐÆjkçÛÓNGÑ´i +èa*¦ž«9czº aí?Z9ó‡pà#ìöF(h„& +SèÏ’„œ x¯$Ày#ã¾"únq€óGÆi™FtgÓÕ7R?£×ÄöŽ8–{}ÄѲ¿ÙÖ2OÓý…Ä©¿ü±òV¾7¹ÈÞÔ–T¤AýòmÀQ,œs ÷.}Ã/ö©Ú¥S°?| ¹k ˜uÂhîxîe”uEûqlå·{I$Fè—íÕ=›Úý‰¶ºà^c˜¦»H0·ùƒ÷×¶÷ZƒPz˜æH+fZ@#SH†4$ÅE^øÛÖÈN\gIÃ`è°a!¤§QVZ‚ +ÐT™ˆõ÷˜CU~ ß9îZ6äêãf‚å{H<ñ’ &NÏ@JÁªGª°hj‚š¨k®»Èw\«Á®½î.]S€)o8xÜO÷ú $ÀŒáqÚG§ÛA +Èœ˜æ­]²L›øŽ8qŒQâ6ÄâPß­UZ7P@·3nG¬+ü›˜}NVÌÞßGpÛÌ!÷‘[ý=pAr÷ £¦è çÜÂ’Ï +¹ìØaüê¥w¨.ÚŠ;,ž{‹?Ýå³sÛŠ³5 ŽRÔìÚ‡‚úSQQ‘P΀°ÑT]ç€aÈ€™‹IáZ/sW&¯P=û÷&gP_ÔTººÔ•Wã³åЭ_MIB¥˜xÒ±H)1CAœ¸E0"QX\€ã(ÆŒËýç_É;ï¼ÁŽ»hߘë²lèfê•’úŸ.¾n„1ô%WØooå㥭V—´"©èÆttÁ‹ T¼QàÛ#âü«(ÀwFÆy»8ÀE#ㄎ SÓ ý0¡ ¨mQ ='ˆÅ@о=Ží@«m64zà,]ìb.^»›ÙÇÍ¢9?sY]b½ÏºçÏÚ"X³ËŸy¥¸î‡Ü5ÿ„\qü–|VÌÃW\Àuÿõ<‹æü”EkvúȰã 7aù·€R\ñý‰¼ÿi5JA¿~š´i­D†ÃDZZÝ]b¥Ÿ¢y8ž#BsÃ4Iï™I÷>Ùô1ˆíù[PJ‘3¢/Ò4ÁQŒ}v,{|'Òƒ5ú(Á +E0D 4MMÃ4!¦ ¹z 8Ò] ’šÄm +v¼Q…R‰AþZ8õÊ gÀŠC8,Üì(ýÝ Àƒ÷ê7NpÊÍ™LiÕc:0Œ ›6; ˆïŒÐ¦À‚8P·9NE Œê¡9‘z,Ñ.üÎâæä|fŸt´6ÑžÁ;çÿ•ß_ýCr×îFx|ËVlݺ…ß_÷C­Ñ^D)$«^]Ž ,|èr?+p‹G%ñ¨.žÌ߸‰Ú¢ +úôêBh‰ÜÁþýûSUXî‰t°…E +@Jé‹!%é=2ÉЛ`8»gŸÎ’OJغi3f(ÈØñ°ã1½Õªƒo.®[µ”ƒ†ïxnÎ ,]S®ÝÛý¡ŽŸ “a2ò«p°Ùö÷X +Ò%= Žé, 4K¸ðv¨Þäš`6lüH‰'Ÿ=‚ÙTdâ`½W²!5—:þÚ ’sa6/jÑD" ¿\Wiø–ô•?ÏúP +úž&º¦¸û;­®üo°|T“yÆíZ œu‚Fºç +žuÂÑ(G‘»n[·æSSTÁŸ›”(غu35E•ÌpÓÅÛfÕëïú¬ìôï| Ã4Ù²E»Œ•å`Å-j÷ìÇŠ[Ñ65Ð_ˆ°G1¶m¥¬üŽÄ`šž3S`dõïE·ÞY>Çè7jkÞù€ìáýùýMßgá*MÜŽ¥³m+Žm;íÁA—ÅûöÚÜ«)®LÉ®¹tâi`hðqºu7èÞMðø¯Z'™U&pçã¬*ƒ!'¶Rº&ƒAǵ²Y—;tE„gÇïÜÄpÔ 8Aו±ko€qCb¾[9æùýyϾ ÃΑ¾w2`„†„pbŸµw´ùG‹€:K_\AÆÉ7{±€Ý!µùç~÷ó lGûìDEœðÔW7mJ 5õœáý5—p`ë¶-Úÿo~]¾ äŒÀÁº€¢¢²‚þý$°éM^ @ -Hïá¨,ÜÛ)KÙ¿\yîb0éÑ'›ÌœžºÒH¶¬YO0$ÒÐFãþjþ²i/·œ3•Eë4ךyì(–m.ãý¾í'À& +>Ç3B&yÝÎâõšxzT +LÓ¤öãf$Œ;/‹;çfbHM0¡ Øtï®ó÷}–P¾.ƒ lõMAÏGà¥8h~©ØVdÒ˜ïÒ+—•+ø{ƒŒ¢w b[#ÚÂPš›dÎûÜÈÖ Ç=ßhéw X1Lßô&N˜˜²9±PSêz'è'¯zõ$¬zu¹ž-GéŒ]a°àáq”âÚûŸq›8)N6%“Nš†ã(º÷ë‰íÀUÇÅ¢u{ÉUÇÅâõàh‹Gºf̯»”ÅŸïÆ0 6mØ@mY%yÝNÞÆ_Ù º-«Á¬¨×.WÓ[‰ÚÏþœ~—ë/Q‚eæ+ž¾³E›€® çà†˜÷ ر7¨d]V`%¦­åÁ„ûyr˜XLÑ#M‚¶ÏÛéÙ'€Èl'Ò’$ТÉVž×Q$¹‚XùêrrFö§¶¨‚œ‘ýýœ{>çýü¢¹·à1;ÛŽñ‹…ÿDÙŠÚ’ +ν…ÅŸîæòéÃÈÞeë"»vr̘c°¢1ßüÃ/³ÒüVZ÷À0 z@Åž²”J'ý€Q83Œ¬î„»wÓ .ûßòézüõ…<ð› tï—ÅmϼÌc7þ) ~þÂËx +…‡üG¯ý1K6b˜F’e!1Œ ß«°~_¶Ù—–·!%xnOƇL+Iv{Iš8ð_75rÙù·>žíœ4±¸¯„àØ°ãÕZ&þ(‡ÿ¬eÜ÷9 Þ;{°üµ6"›u¦s\@`Z˜Ð´0Á@BÏp\N`h±´øÑé˜óÑë~ÀóÿªM@wžkŠ*|¦¼hÎϘ}Ÿn~¬­‚Ý\yü(ò>ÝÃÌbâøIZ”Žcsåq#Éû´y×|—ëîÎ-ËqÌXÍž À¶-úôîã"U`¦¹øŒ¼ùIµÏ†Ó{dÊH#ÒÜ–Ò¥CJISsiÝ3À‰rÛ•cùÛò*ßV–æüö»(åÐc@ûkiª¨gfÙŸ]7®LH yßFîúfO?š%› +ÙðùçS·>›ÇŸo¸’EwÑPYݯqG#Ê”Zæ*ôg—9ù„áE{•ÂÍ+»_¯Ócu{N9Jsï)`Ç?ts»û×oh¢ëo(ÙœNh:¤M#%Ä6µÓ¶¡°† ÍÍêTN Ðz“ï œu‚.ÜœåúrçÞêSš§ þþêï“÷Y3MÞg…~ý¼÷†«^{ǶÒà´ ÏÖ8”bÛÖ|êËvÜ¡­¦eÙXÑ8Ã¥“5„NIïÙÝíâ5 I´=ƾíEØñ¸Op', õÈðë„)¹ûº“†¼ôÖ>ŠKŠ]~#GŽ¢¨¨EÖˆLš<äoÝìѼþRp 3ÈmÏ-C˜F¢!ºÁÕ¥wÍå§g}ŸöŽtOsY««|Aâïñn©…—œ¬løåM&?ú–fæ¦tWR¨Y† ÂŒž¦Óå”rM—Rº9a“ÛØgêÕnÛšƒÄ6êP÷èKzpðF¢Íš`Úl­?Tǵ%àÝO¹YóñY®öïAî¼[Éýl7¹k÷¸¬Úgf …ßGÀµíf¶Ì¸èrFô'{x_}©‘P§{éE½üR+„ ³OOVUQu°’ªª*×Ço¸fòÙWZFÝûdÑÔÒLSS#½‡ä¾Îg챓‘A3B¸Ëï¿~û&?ù!Å%Å.•käÛ¶î ÖTYOÙ§;¸ê8Mð'Lö5÷;æ¿Ì þÊmÏ-`ò¤ÉœýýóÉq‹X.¿ï÷)šALCÛÿ^$Ï[ù†Ë¦ÿ ±šÍ}|w…‚î½ë>OÓæ¨û€Oצ¡€¸…;î»,Ú¤ÝÌÅ›4ò 7†Qh/_tS;Ñ혓µhÛÔH ¤ÓÖ,–ˆ[µmûãMª ˜uüÑ \çÏ\M³Ž?šÜÏv£m÷£`„I +&Í›7Q[Råj´zV[‡vË$ÇÍ8ØSJyi)ÊVØq eÙà ⟞ÃKËK±âq7l«sÛöî/§½¾…´ìLî»ñL^yŸ®¾qƒC‘Ö6JKK@š+êüÉäá‹ùËÛû±mýöe{KQŽÃ°¡Ã:y †ÛdZJ‰0[6mB˜“'Mvi^úbàû½'²kç.¢Ÿü„FfЀ´ ”m3rš^Ç^œd¼léƒuŒ®üû‡ý PÌͰ\‹Àñ¶ãæ$ÐL7±C$Ípº"²¹Ý·*V¸äØ8­ÍšF¨‰C.Ä"óä1 SGï–m*!‰ÑkdfÝ«‰`ñg.Wðd&[·mõWµ£`ÒÄIlÉßB}IR +ι…Ã5÷>CöPF®-©ÄŽY|öÁ'æÉHi0dèPËÁ¶möïÛ‡cÙÓCüaÉ' ê;È_>(-/ÕNž^:þŸ‚|Wp–#M‰º÷Ïöý÷ËÞØË á¥7;o +AÙ–Ýüæú‹È]_ˆã8~¥8Ø–íG6ãѸ>ù•Џûv¤1aZ™š‚’á%¶õÁPë 6d kçœkzùר6x¾.!HAz (Ü„Z0MA4ªuñ‡e+G÷_­$Åä0€oý<‡à#ml+”œ~A[»"³NQÿiÄgê¦í¹š,‡Ù'Í[óé5²?³ïý3‹æüŒ¼u{øàË} à€®¾ï)@°²ø]—· Íý) ?Ú,xøF¬Þ…°Õvüæ mvýÆ6 6”œA}).+Áj‹Pº·,%­É˜. Üý ^Y¹ŸK΄ðÊÊÈHÊD9rÊQ+ESe½|)%ñ˜ESEÈ¯Ü +f––¦ÐÅ’y?gñºÝÁ€ÎETp€»ÿ……{° ¥`à1„€òü0#§´ûÕdWÔæ±›£‚Vø>ú4À€^5¸þ+zNË¢yc==§gQ»®SB÷iY´l¬G9Uv\4¦;'®ùh[€L'45Ý×= hЂöùÇßO¥µ~7ç\>“?ò“B€DJ@îg»™0i"[]ßÀì{žðŸ;÷VÇ&ï³Îý)¿˜ÿ7t_…sÊnQé#W—»_ø'ãÆÇŽÇu´ÍÑ)]5û*E[CŽm3ð˜‘sô˜cؾ)3`€Ò9LÓÐÖš”€`΂¹ÿú3˜»pµßôÁKÕ¾÷æÓxùý‰v°À/ï•É'«µô€A÷þÙ~âªW˜‘=2±Ã€ +`ÇâÁ€ß/±#(ûv¦‘}lÄ7Ýá4]M{[Ô¤ƒÈ-}°'è¦ÞÄ÷œ–EýúzßP÷y½ÏÒ[·ÔãmgÐôy}‚ý› Ï¡£4G1MMdÍëÛÈDÜß9Eç% µ¥Öc ½¶œ©Ç) š\Èß’¯#€I¡arsçÝÊâOv1ó„£É][€÷éÆ3ŽÕo~Àb7`ô‡ë~ÈϾÂ/æÿ!«_;æ…Z%MûªÙT~ô~YL=å8̀ɕgŽbÉ…È€ŸŸêfèѣ)-+ÕZ¾¾µ0gþ*7ö/ü•ñë›Îaá?w&8•Rtï—•R#„ð9Àä“§'¢•¶CIi)HÁ•÷=Ƌ܅mÅX’_ÊUÓDzà³mÌ>öhçá6wðôc¯u 7±1Ë5å\G‘°µÕQ:J÷æŸÚ9å4hÚP”°á“4¦¬}ú=¦eÓ°®ÇJp”쳩_§Åší>3î€é¦þx™BÞyoL×g®å”k ¢±ÄãPS/|î!…ÔpòÀÒGîÄvâ¾0ºó¹¿¢Åì“ǰxÍ.0óøÑä®-`ÛÎíþ}3OÍâw2iò„€•ÿÔÏì9¤ 剷´‘Þ§'ÒÍé»ú¼1†ÉOï_Ì“ÏàWóßöS°¥)™uþh^ú ÄNÈË+÷" IaaOJáwôHë–A¤¥•˾=˜‡ž,¦¥²Žnýu9˜‚¢â"ºÈöµkÛvÜ.ɨ‘#<é(¶åçsÛsËøÓu?aöÔ£Èݸ å(­ÛÅÝ'Op+“•»Óšý›ön ”P²1Œ‚‘V¥b°½'ʉÁ®ž('±os€!Ý ÜÕê-9iP¶Q/ÙAŠô‘)(ÛÒÝwqën•ë{˜ +¡ÉéfB‡øäÉZÖî ðÝiqÊ_ÓîäV7)ÄJÖWnY6Wåço¦¶¨‚Å®ö?ó¸£È[·‡YÇͬ{ݦFnzX¯á®‡Ð·ð çþ”¼µ8–ÅÌG“»F7•\ù÷·iÚ{Ì~ÙwΩÒ`í!‘~e«ÆÖ ž~p¿|üUF9Š‚Ý{hØ_Ë£¿¹„?(G9Ž›†? …º²é×7œRŠöx ?±J‹ ÷Þx2¯¼[J±yÍç€Û%Üm[ãe)¥°,›ÓÆêØn2ûÐmÜ1ÿe–Üô0[¶l$Vr5B +>Ë‹òí;õÄR`š Ï^ŸþALÓï¿…R`+‡y7U2àÇ?íÆËO6sé­ÝüöÒHÈv› $ 5w1 ýþ¶®ö ¦¶,kõ™r2!ƒˆ»–ÛM1U±„@ܲl®ZùOÝ5jñ¼[AîÚ]¾·H§‚áŠüáºK¸kÁßpl‡ºÒ*^øí ,[_•ǻ}•"? íõÍ2Òp,‡ nÕ±­”¸ÎÎ];¨+Ó±†gºš¼ÕÅ!hoj¡ @Àóc–}Pæ"Ü|¹”SP¸G럦A}y ±"WTèe2÷¡‹yùíý'6Ž1|D"µÚ½Î¶¤!(**¤×È ¤ë t)Ý÷¥ƒ£¾¾‘¡ò÷`+¶-o¥›ë¸Ö@Àõ·O?Ï•÷ã j£þ{ílƒkµ5¢5÷ÆrC¼Ó®éƆ…Íçþ•À±×wcÃüfv–7<–Ð'®½‘±Iá„Ê íl'Õ 6›]P—lÞsê™uüQ̾çq?+àŒïÊI¤Š»J`îg»ùÃ5?ô»ˆ\û_ϱðaÝØ/ædÀĎƱ£qj÷V`Åâô5ÛŠëÄ WvJÃàéßÎfÉêb¤ÇÖÒ”wþ÷ËüéÁKYö¾Ž zý“³GŽE¡›¨E¬­àŸÎƒO¬Í•õ¾á\Œ—ŽßúÆç,RR[ZEÖ°¾L7!]o¡ûsÕ«AÀ¦÷Z€Dñ‡Rpôºá((ü‡.X9°&“'·øî^v¥Høé-.dËÒä¶aa³O›æëÏÊe¸~I€…ï kÛ }fRÀ'êš–f’ié%’&›š¢¼¼X=²ú%f¹É»fâ²?^ûc~ªÍ;3``Åm@;‡jŠªHתøÓ?Áv, i²hù”²±ã6ŽåDé;b0Ûvl¥¾ì Ï?|yù"‰âØ»wï¢q zðR–®(ãÊs†óâePS kúúöî£ÓÊ#1*++ õÈLŽ×Ÿ¦œ|›>YG÷94¨óEþ ß ¿èÆ+ôŠ +iKவ_wþü§hùàw¬¨è†át¼ØÑÃw)6¿ÔLÈ€ã·}»Dà*e‘(<ð'ƒË§Ø)5 =ˆ^1‰·Ò󋃘®œò‰akQÐËÏÅV:ÝËC ú©{½~ò5÷>ÍOÈ則f²äƒbÁ–¥wñ ¨0ë?^CÃÞ]Z¸"M«Ätÿ_wf~þ«—P–®Ú´úSÅBlË&-3]Ç ”¢wïÞL:ï¶|¾!#GŒv·”ÓYÆÓÏ:•x{†¤¨¸È_Q#GŒ¤¨¨…¢é@å[÷0tòÑ~"¿o°;+dê¡® ê…Dℌ„ÏÞ‚c¡a»NÍ2Ýsò=D¶—}OŸ»¹úáKˆb[ú¼Ppùo‚è*;…£ ºVÛý! WVµO´èç+ýLËË+ð‡ÒV@Þ:íñË[·›œQýýUÚî¿óù—-•¥AnݺUGÑæÝÎÂO¶ëèàZ]î•3¼/•ÛËøÙKyâ¡+xà©7t¯/ô«FÈD ùÕ%¼ô~9?8µ/°×cLìÎßæ²|­Ì¡€x‘+ƒ€B6Cn™´»¥ki×VEbaLOölZ«QŽbú™'DiªÐ\AÁæOÖR Ÿ>žHS ±hÔç(>ût'Q%Aò9€A§5Ó¸ö¯ÎôWç±91¶•˜®,7]exæoCX174.5QD£W> n9\úë†kžnÑfŸ‚m{ƒÔXŠqƒâ~È ;€ŸfæqÏŒt”ƒ‰Ì<îò>ßÍæ-©-¬ wÞíØ¶Eîº=˜†Á„ “µs°l;Ål´m‹+ŽE®ÛD +ã'N"ÒÒFÃÞj~ö@O>4 Û±p‡_?»„ qo RJ~ùð?øÓoÂÒ÷J˜yÁhz~RÄÛã„{¦£”âçWÄ?WVðƒsò÷w÷ûr»´¬D¿ ) .q›; ¡k+iw¡7Žƒâ’bz ì…rllËÁ …˜6ãDŠK +IÓþŒ@€Ò ;HëžÉšê5LÏ:6EÚeÄZˆ„»óýAM”ì ¢œ{ÊB8À D;í§&q#ï?ã²3xùÙV®øY/>ÙÊÌÛ3°b›¶b+xa‹Áµ“l-ÃÝØ­tÂȸÁ ä38ÆÚÒ™SÂþê7 ˆoj÷%›åŠ•¦¸V3 M`±o_©8÷ç³ü[4çg,ÝPÌåS‡“»v/÷“‰À4 Þûû[,xèf­ý'‹R ¥®‰µËWñäÜY,ý D'p$­ +na˜kßýG)ÿí¥üfÁ¾Ѱ·†Ç~{9uMµ¼üN¹ïóP¶æB%…:$=tè0½;hÌ"ÚÖNc´™Œ>=˜wËwyò¯\ÅTwÿ..)BÙ6ê8öŒ“ü±;–ͦ×u +ÂL9õx~óÃëBðÑêUìß¿_sÁ¥”Zö.’.¸ÖÄ B0 }”KlÌmÀQP_©Ã±Þj5Hdy«WÊ‚Ló >¶–™0$ÆÎ½AÆ Žé|BtzXµ¥8vHÜO˘ÆÌo÷W›­‰§>µV"o1ý¬Ÿ'<ë¯-®BJƒ™ÓG“·n·N’TfÀÀ¶lÜDM‰›)¤×Þÿ§]x³N<ŠÜµ€bÅËoê×ò2v“hölŠ@H·ré9¸ ûj¸ã¿_IÍù—i˜¬Ø%”æ{§öæo+ÝÄQÃÐ"ÓÀ±l~rÁ0þòV)e%º­}FŸžHÃà¾g^Ãq\{*¿þóû.Bl„iðèÜñÒ{ûAAQQNØ‹Æý5‰’J±é£Ï?º€æ–f’áòIFÎ2q-MÒÒ`ÃßÚèlß|£†$ê÷¬¶DưNJ‘(!‹8:ÃxC¹F¾W` + KÜûl-ÛmÓ/0È´Á45[cD6¶Ó#ø Ð9ˆ首ù¢ÁèšäÍ»ƒÜu;™yÜÑZ?pS¦,ÛæÃ½‹£‹æÜÀ]Ïý5µ ˆºÍöé¶îOÑÜA¸¾îw 6CëI9†ö‹7ÔUÁ^¥QÄÑÉ 5VR¿‚³îLp€³~ðm_˜yÏ9ëûç',‚¤íܹï1óœ‘,û°!`÷îZpóÇŒqw&kÞû[~•‹‚'œÍó¯nFH£ÍÕHCò«ŸžÍƒO®ÐŒ!`ºA'ƒgæÌ"oe){’Óh€¨Û”ªû ^ghÚWÃÔ'êlçÙÈÛ¶nÁ‹ž†N¿•æUÆÂB]¤.¸+ÎïÙgC{(Kgm, Ro+®»_+uÞÏ[np'ÓLÎ ,{(Îe÷ç=ãÚµ6-Û"”36@Τ Öö +=.¯Q„÷ª^Bˆrlľ½%þ[^ö´n‚X[XÑ é>òçÜÂâ5ÚjHòŠmÛ·‚•;ÊyjÎL–®Ò!%;wí@xø¦ Èû ”={vú "¥xvÎÕ,ù°8%áQÁÎÛhØ[À“ͦ%RÏož|¥M•uüáÁbÅ-–½S†cYí) ÒÔN 3̳ó®fñ +ÝÂUºÞ–-ë6д¿Æÿi3N`ƒ»Ò¥˜~ÆI)Aý +uÏ㇮¹™-[¶ê-mphþP×íw3µýa™pÈxÕ¸­õ!š£ÊwéÎ|0@,ËŸmõ‹C=Nb»©Û'Á}δÙäç¶úÄrƒÙ@ËQiH©«ƒ “Ķ·ûÙ@Q×ö·”Ö<è6ãVŒ;î¸ý¿½EÑZúõíÇϺˆJJHÏîF{] þ) =vÔp–¼½’]k·0ôè‘~3¯¶oÇÚ-´7´àX6ž=‰IÃ{’_Ú¨‰ªF'z~°¾€ºú:Êijã™y×±fÏ^Î:öh¶”Ö1ëÌQl)©ó½Š½ûô¥Åj'ÒÔÊ[+7³â£Ý´Õ7mi!x÷ƒœwöx¶5‚ôÈìACC=ñ–vÞúhƒGÓáf÷0Ó‚3iF ñ¹Ö€aƒiµ"ÄšÛ©(ÝÇ€áƒý‰ª(ÕæéÏ>ÒÒR­£ °Ê× ùt?ûI—ÀÎýnù}ˆãÎ5ºdÚÙq 6.h¥ÉÖÈö¼|¸÷˜®Žà%‹@Å á'Ÿz-_ÐRe!«-‚Ò0ú˜Dò#~i¹×ÂFsvGÎ<åfÇ9ÔîáŽæ@î¼;Èû|w‚¿;=¢_B!q3Xó·å“3L7…ªÜQŠ’¼÷‹}>8fÌXvíÞ4 æÜp‘Ÿ +ž÷¡^¡7ß¿§¾Š¼•Ez§OËñ9€0 zéËœ¿Í’UÅHCÒ\Ý@AÑ÷×òÒ»:ÛÇ jSpè°an×}†fŸ5Š%û“‹€Pf˜Ù gÉ[e~2J1zÔh +\1 o<±€>×›I¸+¾ç™·Ó¼ò1ÿ:/Ê&= \ uøüÙVßOà)v=Lh¶´þ Ü•n$ü Ê5ßPAH +lÇ!î(?O0® `€Ñ㈭Bû¬Dø‚¸ÒÏVè`âVÜ §ä/IfN?š;^xÉ· +ò>ßub¬yc•¿’VW¢€Ó/ú«^{7U”z£‚+g %oE±Öê¥ÁÃ×›¼• ëÀQ!ÉÖ—[î_ÄÓsôV0÷=û†¦6i¸¦£¾ßƒŒ^=H«É é@B +]Ðé&Ã!0´÷î¦{rÒy3°-Gû Üf¦åeàŠó³ôír + + :!?ZÛÚH2jü ÐÚõ®mÎç_ -›_oãïΑÆuÐÖ@3I…8.E¢Óˆ¶î hP^7P÷Û¿»öÀô!q¿~Pívª^â…Q +[Ù9€wËW—ªÇÆÉß–O]q%9ö¨+®dõëï%öp•;÷ò̼Ùä½_ÌÌ3G÷§h·ÛwG¿À§ oeR +ÆŒËÎ;è9¤/7ÿjQÂvQŠgæ]ÃÒÕ%\qÚp–|Xˆt—Çá—Ÿ;„eï”û›<A“¡Ã‡Í€º²ƒºàÒ‹¸¸3wïS¯1çæ iÖ³ä­2HZùÓÎ8ÉÇß|ÿZÿsSSS'¢(ª øòúŒ‹LºwÓ9{[ßmóëÿ¼Êo¯4Ë+!»|?î*Œ{ü!á·˜;éÇSj“w-±âÑxÇV†Á–?ü’©Cb>qH‘Xý^*X²jÛ¥è5B's:Ž"?³¿•L]I•íó`a’9Xë–‘ÝtÏbž™3 ÌѶÒÝ”ÉQÏÌ»€%«ŠÙ¹sÇ3–;wmi§ÉíTêYÊ^yå%êuWN”[bîиn1¶£È04ƒö|^ë— „âŠçŽÐíÛ¢Ž µìø¼<Èø[Äv-®®ÀÛª#ÐmããÄâ +‡€$0 Ÿâ±8íÑ6š[¨©®!øÏQ¨\þTb7,ÇQÔH ÝýÁ¼5‰âoG±…ó~æ_õÚ»ÄÚ"xNçæ]ƒ—Äqã=/0ÿw7ûQWœ<Œ%« +Ù±kG +1Ϲé"–­)EÅ-®8}J9Ü|ßB@1ÿw7·â!¹é¾’ í¡N9y:»vìÀ‰ZÓ œ¥ƒ0õeyfÞÕ,ù°$•+¸ï¶sÇvªwïK!€dä<óìS>Ò•Û™S9Š–K($Êïýc-Ë!aæTøöÈ8(ÁÖ½šÝOûÕ477cÅuë–¯Bq·+0 ¥%€EÌœ1’Ü•…¾öïÁÇo¬@9ŠcgœÈ¯¿{uÊ»,½io?ºþ¡iürÆ¥„dÀÿ×ø[É¡EƒD÷ÿõÙ²€ÜÕE(ËÆ0MlKç8{²þ™‡®á¥5¥(¥Xúq)Â4?~<ÂX– +–|Xˆ²-®<}¤^õ®9ïú‹È]]ÄÌSF¤Œ©¡´Šº¢J~wó÷ÈÌîNz·ÄÞÏÌ»!$Wž>¼k¥7~ùÅïý¦“ÉÚvcCƒ»õŠê°gHRã4wµÇí{÷‚1Ç5ÑÙ9ão}h¤+C9Ž»Â¥K ‡VB^§µŽÈ÷"¯Žr‰ «Eöí+UšBº^ݬz)‘ïä>0yOaÀW?xõMWH²ñì(ž™s-KW1ûŒ£ô*v54‰æsn¸Ð©1~òö*0óç^ïr|ñ$+OÉ/Ÿy•ºòƒ<ýà,r?(ÆhÏÊÎ;˜{óEä­*ÒD€V=ð«ó®LLœÛtÒqÓÉ”R,^¼ºúúÎïþܵlù  HsƒCeU®†åm†D’´´4ÒÃaÂia–mÅü8ƒ0¾„°}4ŒÁ Þ£Ø¶¶'ÓÚÖJcc Ä¢±”±›‡C>À/g\ŠW¦8oÕ‹þŽ¢ÔWrõ½O=´Ž»s§‡™z7ëwþ\NÕì^ËvŸ…w ú{Ÿ}±ÇŒí4–¬a}¨ß[Âú ®pu ;wîH9³dUqÊ÷dä{ì5ˆp‡-[6PW[×å<ùÛ¶¸AÕAÓ L¿ô&½CºRÒmŠõ7qptûY B}‘Éw(Hˆo,É·-y8äw„_θ”Ë]Å/<‚¨)<À³^Cî* òÉÛ+|iÊUX–|X„Hêþy$P_v¤`Ö©# r?*ÒŠ ¥AÞªÂäßûôk̽Y»¡—¬*æó®<äV°ÉDÐØØô…ÈW8¤û!¥+ÿÉQßú¡kŽtSCŸWŽÀ‘Û¶p7ZÓ;„ÒÜj£#Ç…?N™è”š Þx¿¿bÛÖõª[÷ž‡¿Èëˆâü;´µðöùç½cŽãðÆïæû)[É“é,‰e‡¬B.ûÓ=A·Îé4Ž+ÿ|õ{«yû QJ1gÅ‹)"Àvl۪Ǫà˜1ÇtZýsnº¡i'w[W ”âÝåo³~ÆÃ"ßñ +€ijm<  +¥låo gJ‚áp˜p8ìÎoÒÜ¡ðæS +o“ª€x˲ˆÅb´´¶ÒÒÜÒ¥øÿÊ'«:NbZIEND®B`‚ \ No newline at end of file diff --git a/examples/web/models/models_mesh_picking.html b/examples/web/models/models_mesh_picking.html new file mode 100644 index 0000000..e2a72da --- /dev/null +++ b/examples/web/models/models_mesh_picking.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_mesh_picking.js b/examples/web/models/models_mesh_picking.js new file mode 100644 index 0000000..9638e6d --- /dev/null +++ b/examples/web/models/models_mesh_picking.js @@ -0,0 +1,47546 @@ + +var Module; + +if (typeof Module === 'undefined') Module = {}; + +if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + Module.finishedDataFileDownloads = 0; +} +Module.expectedDataFileDownloads++; +(function() { + var loadPackage = function(metadata) { + + var PACKAGE_PATH; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); + } else if (typeof location !== 'undefined') { + // worker + PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); + } else { + throw 'using preloaded data can only be done on a web page or in a web worker'; + } + var PACKAGE_NAME = 'models/models_mesh_picking.data'; + var REMOTE_PACKAGE_BASE = 'models_mesh_picking.data'; + if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) { + Module['locateFile'] = Module['locateFilePackage']; + Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'); + } + var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ? + Module['locateFile'](REMOTE_PACKAGE_BASE) : + ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE); + + var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; + var PACKAGE_UUID = metadata.package_uuid; + + function fetchRemotePackage(packageName, packageSize, callback, errback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function(event) { + var url = packageName; + var size = packageSize; + if (event.total) size = event.total; + if (event.loaded) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: size + }; + } else { + Module.dataFileDownloads[url].loaded = event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil(total * Module.expectedDataFileDownloads/num); + if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) Module['setStatus']('Downloading data...'); + } + }; + xhr.onerror = function(event) { + throw new Error("NetworkError for: " + packageName); + } + xhr.onload = function(event) { + if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + var packageData = xhr.response; + callback(packageData); + } else { + throw new Error(xhr.statusText + " : " + xhr.responseURL); + } + }; + xhr.send(null); + }; + + function handleError(error) { + console.error('package error:', error); + }; + + var fetchedCallback = null; + var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; + + if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, handleError); + + function runWithFS() { + + function assert(check, msg) { + if (!check) throw msg + new Error().stack; + } +Module['FS_createPath']('/', 'resources', true, true); + + function DataRequest(start, end, crunched, audio) { + this.start = start; + this.end = end; + this.crunched = crunched; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function(mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency']('fp ' + this.name); + }, + send: function() {}, + onload: function() { + var byteArray = this.byteArray.subarray(this.start, this.end); + + this.finish(byteArray); + + }, + finish: function(byteArray) { + var that = this; + + Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change + Module['removeRunDependency']('fp ' + that.name); + + this.requests[this.name] = null; + } + }; + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename); + } + + + function processPackageData(arrayBuffer) { + Module.finishedDataFileDownloads++; + assert(arrayBuffer, 'Loading data file failed.'); + assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData'); + var byteArray = new Uint8Array(arrayBuffer); + var curr; + + // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though + // (we may be allocating before malloc is ready, during startup). + if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting'); + var ptr = Module['getMemory'](byteArray.length); + Module['HEAPU8'].set(byteArray, ptr); + DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + DataRequest.prototype.requests[files[i].filename].onload(); + } + Module['removeRunDependency']('datafile_models/models_mesh_picking.data'); + + }; + Module['addRunDependency']('datafile_models/models_mesh_picking.data'); + + if (!Module.preloadResults) Module.preloadResults = {}; + + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it + } + + } + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 11848, "filename": "/resources/tower.obj"}, {"audio": 0, "start": 11848, "crunched": 0, "end": 36787, "filename": "/resources/tower.png"}], "remote_package_size": 36787, "package_uuid": "df40d522-4e6c-4394-9594-d2d661fba7d0"}); + +})(); + +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 24064; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([0,0,200,193,0,0,0,63,0,0,0,0,0,0,128,192,0,0,32,64,0,0,128,63,0,0,0,193,0,0,208,64,0,0,0,0,255,255,255,255,205,204,236,63,2,0,0,0,86,1,0,0,85,1,0,0,87,0,0,0,83,0,0,0,68,0,0,0,65,0,0,0,69,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,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,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,0,0,0,0,0,0,0,0,0,0,20,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,16,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,251,89,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,95,112,137,0,255,9,47,15,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,51,100,32,109,101,115,104,32,112,105,99,107,105,110,103,0,114,101,115,111,117,114,99,101,115,47,116,111,119,101,114,46,111,98,106,0,114,101,115,111,117,114,99,101,115,47,116,111,119,101,114,46,112,110,103,0,78,111,110,101,0,71,114,111,117,110,100,0,84,114,105,97,110,103,108,101,0,77,101,115,104,0,72,105,116,32,79,98,106,101,99,116,58,32,37,115,0,68,105,115,116,97,110,99,101,58,32,37,51,46,50,102,0,72,105,116,32,80,111,115,58,32,37,51,46,50,102,32,37,51,46,50,102,32,37,51,46,50,102,0,72,105,116,32,78,111,114,109,58,32,37,51,46,50,102,32,37,51,46,50,102,32,37,51,46,50,102,0,66,97,114,121,99,101,110,116,101,114,58,32,37,51,46,50,102,32,37,51,46,50,102,32,37,51,46,50,102,0,85,115,101,32,77,111,117,115,101,32,116,111,32,77,111,118,101,32,67,97,109,101,114,97,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,68,101,118,105,99,101,32,99,111,111,114,100,105,110,97,116,101,115,58,32,40,37,102,44,32,37,102,44,32,37,102,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,91,86,65,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,118,101,114,116,101,120,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,65,79,32,73,68,32,37,105,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,77,101,115,104,32,99,111,117,108,100,32,110,111,116,32,98,101,32,117,112,108,111,97,100,101,100,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,115,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,109,111,100,101,108,77,97,116,114,105,120,0,118,105,101,119,68,105,114,0,103,108,111,115,115,105,110,101,115,115,0,117,115,101,78,111,114,109,97,108,0,117,115,101,83,112,101,99,117,108,97,114,0,114,105,46,98,105,116,115,95,112,101,114,95,99,104,97,110,110,101,108,32,61,61,32,49,54,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,105,109,97,103,101,46,104,0,115,116,98,105,95,95,108,111,97,100,95,97,110,100,95,112,111,115,116,112,114,111,99,101,115,115,95,56,98,105,116,0,111,117,116,111,102,109,101,109,0,117,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,98,97,100,32,114,101,113,95,99,111,109,112,0,114,101,113,95,99,111,109,112,32,62,61,32,49,32,38,38,32,114,101,113,95,99,111,109,112,32,60,61,32,52,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,49,54,0,48,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,0,109,117,108,116,105,112,108,101,32,73,72,68,82,0,98,97,100,32,73,72,68,82,32,108,101,110,0,116,111,111,32,108,97,114,103,101,0,49,47,50,47,52,47,56,47,49,54,45,98,105,116,32,111,110,108,121,0,98,97,100,32,99,116,121,112,101,0,98,97,100,32,99,111,109,112,32,109,101,116,104,111,100,0,98,97,100,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,98,97,100,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,48,45,112,105,120,101,108,32,105,109,97,103,101,0,102,105,114,115,116,32,110,111,116,32,73,72,68,82,0,105,110,118,97,108,105,100,32,80,76,84,69,0,116,82,78,83,32,97,102,116,101,114,32,73,68,65,84,0,116,82,78,83,32,98,101,102,111,114,101,32,80,76,84,69,0,98,97,100,32,116,82,78,83,32,108,101,110,0,116,82,78,83,32,119,105,116,104,32,97,108,112,104,97,0,0,255], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([85,0,17,0,0,0,1,110,111,32,80,76,84,69,0,111,117,116,111,102,100,97,116,97,0,110,111,32,73,68,65,84,0,88,88,88,88,32,80,78,71,32,99,104,117,110,107,32,110,111,116,32,107,110,111,119,110,0,115,45,62,105,109,103,95,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,100,101,95,105,112,104,111,110,101,0,111,117,116,95,110,32,61,61,32,50,32,124,124,32,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,49,54,0,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,32,124,124,32,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,43,49,0,115,116,98,105,95,95,99,114,101,97,116,101,95,112,110,103,95,105,109,97,103,101,95,114,97,119,0,110,111,116,32,101,110,111,117,103,104,32,112,105,120,101,108,115,0,105,109,103,95,119,105,100,116,104,95,98,121,116,101,115,32,60,61,32,120,0,0,1,0,5,6,105,109,103,95,110,43,49,32,61,61,32,111,117,116,95,110,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,0,105,109,103,95,110,32,61,61,32,51,0,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,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,98,97,100,32,104,117,102,102,109,97,110,32,99,111,100,101,0,98,97,100,32,100,105,115,116,0,111,117,116,112,117,116,32,98,117,102,102,101,114,32,108,105,109,105,116,0,122,45,62,115,105,122,101,91,98,93,32,61,61,32,115,0,115,116,98,105,95,95,122,104,117,102,102,109,97,110,95,100,101,99,111,100,101,95,115,108,111,119,112,97,116,104,0,98,105,116,115,32,60,61,32,49,54,0,115,116,98,105,95,95,98,105,116,95,114,101,118,101,114,115,101,0,122,45,62,99,111,100,101,95,98,117,102,102,101,114,32,60,32,40,49,85,32,60,60,32,122,45,62,110,117,109,95,98,105,116,115,41,0,115,116,98,105,95,95,102,105,108,108,95,98,105,116,115,0,98,97,100,32,99,111,100,101,108,101,110,103,116,104,115,0,99,32,61,61,32,49,56,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,104,117,102,102,109,97,110,95,99,111,100,101,115,0,98,97,100,32,115,105,122,101,115,0,97,45,62,110,117,109,95,98,105,116,115,32,61,61,32,48,0,115,116,98,105,95,95,112,97,114,115,101,95,117,110,99,111,109,112,114,101,115,115,101,100,95,98,108,111,99,107,0,122,108,105,98,32,99,111,114,114,117,112,116,0,114,101,97,100,32,112,97,115,116,32,98,117,102,102,101,114,0,98,97,100,32,122,108,105,98,32,104,101,97,100,101,114,0,110,111,32,112,114,101,115,101,116,32,100,105,99,116,0,98,97,100,32,99,111,109,112,114,101,115,115,105,111,110,0,98,97,100,32,112,110,103,32,115,105,103,0,46,114,114,101,115,0,91,37,115,93,32,82,101,115,111,117,114,99,101,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,105,109,97,103,101,32,100,97,116,97,0,46,112,110,103,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,37,115,93,32,73,109,97,103,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,91,37,115,93,32,73,109,97,103,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,73,109,97,103,101,32,102,111,114,109,97,116,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,0,114,98,0,91,37,115,93,32,114,82,69,83,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,91,37,115,93,32,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,115,111,117,114,99,101,32,100,97,116,97,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,113,117,101,115,116,101,100,32,114,101,115,111,117,114,99,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,102,111,117,110,100,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,119,104,105,108,101,32,100,101,99,111,109,112,114,101,115,115,105,110,103,32,100,97,116,97,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,32,110,111,116,32,109,97,116,99,104,44,32,100,97,116,97,32,109,97,121,32,98,101,32,99,111,114,114,117,112,116,101,100,0,32,45,45,32,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,32,45,45,32,82,101,116,117,114,110,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,114,111,109,32,37,117,32,98,121,116,101,115,32,116,111,32,37,117,32,98,121,116,101,115,0,5,5,4,0,16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,2,3,7,0,3,3,11,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,37,50,105,32,70,80,83,0,46,111,98,106,0,77,101,115,104,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,114,116,0,91,37,115,93,32,79,66,74,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,37,99,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,118,101,114,116,105,99,101,115,58,32,37,105,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,116,101,120,99,111,111,114,100,115,58,32,37,105,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,110,111,114,109,97,108,115,58,32,37,105,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,116,114,105,97,110,103,108,101,115,58,32,37,105,0,37,102,32,37,102,37,42,91,94,10,93,115,10,0,37,102,32,37,102,32,37,102,0,91,37,115,93,32,78,111,32,110,111,114,109,97,108,115,32,100,97,116,97,32,111,110,32,79,66,74,44,32,110,111,114,109,97,108,115,32,119,105,108,108,32,98,101,32,103,101,110,101,114,97,116,101,100,32,102,114,111,109,32,102,97,99,101,115,32,100,97,116,97,0,37,105,32,37,105,32,37,105,0,37,105,47,37,105,32,37,105,47,37,105,32,37,105,47,37,105,0,37,105,47,47,37,105,32,37,105,47,47,37,105,32,37,105,47,47,37,105,0,37,105,47,37,105,47,37,105,32,37,105,47,37,105,47,37,105,32,37,105,47,37,105,47,37,105,0,91,37,115,93,32,77,111,100,101,108,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,105,110,32,82,65,77,32,40,67,80,85,41,0,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,40,109,101,115,104,32,97,110,100,32,109,97,116,101,114,105,97,108,41,32,102,114,111,109,32,82,65,77,32,97,110,100,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,110,97,110,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; + + var ERRNO_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"}; + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + + var PATH={splitPath:function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function (parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + return parts; + },normalize:function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function (path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function (path) { + return PATH.splitPath(path)[3]; + },join:function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function (l, r) { + return PATH.normalize(l + '/' + r); + },resolve:function () { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function (from, to) { + from = PATH.resolve(from).substr(1); + to = PATH.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + stream.tty = tty; + stream.seekable = false; + },close:function (stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function (stream) { + stream.tty.ops.flush(stream.tty); + },read:function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + for (var i = 0; i < length; i++) { + try { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = new Buffer(BUFSIZE); + var bytesRead = 0; + + var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion + + var fd = process.stdin.fd; + if (isPosixPlatform) { + // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) + var usingDevice = false; + try { + fd = fs.openSync('/dev/stdin', 'r'); + usingDevice = true; + } catch (e) {} + } + + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().indexOf('EOF') != -1) bytesRead = 0; + else throw e; + } + + if (usingDevice) { fs.closeSync(fd); } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + + } else if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function (tty, val) { + if (val === null || val === 10) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function (tty, val) { + if (val === null || val === 10) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + var MEMFS={ops_table:null,mount:function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },getFileDataAsRegularArray:function (node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr; // Returns a copy of the original data. + } + return node.contents; // No-op, the file contents are already in a JS array. Return as-is. + },getFileDataAsTypedArray:function (node) { + if (!node.contents) return new Uint8Array; + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function (node, newCapacity) { + // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file + // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to + // increase the size. + if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { + node.contents = MEMFS.getFileDataAsRegularArray(node); + node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. + } + + if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + return; + } + // Not using a typed array to back the file storage. Use a standard JS array instead. + if (!node.contents && newCapacity > 0) node.contents = []; + while (node.contents.length < newCapacity) node.contents.push(0); + },resizeFileStorage:function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + return; + } + if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. + var oldContents = node.contents; + node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + return; + } + // Backing with a JS array. + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; + else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize; + },node_ops:{getattr:function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function (parent, name) { + throw FS.genericErrors[ERRNO_CODES.ENOENT]; + },mknod:function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function (parent, name) { + delete parent.contents[name]; + },rmdir:function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + delete parent.contents[name]; + },readdir:function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return node.link; + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. + else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position+length); + return length; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + },allocate:function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < stream.node.usedBytes) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); + } + buffer.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + var IDBFS={dbs:{},indexedDB:function () { + if (typeof indexedDB !== 'undefined') return indexedDB; + var ret = null; + if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + assert(ret, 'IDBFS used, but indexedDB not supported'); + return ret; + },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { + // reuse all of the core MEMFS functionality + return MEMFS.mount.apply(null, arguments); + },syncfs:function (mount, populate, callback) { + IDBFS.getLocalSet(mount, function(err, local) { + if (err) return callback(err); + + IDBFS.getRemoteSet(mount, function(err, remote) { + if (err) return callback(err); + + var src = populate ? remote : local; + var dst = populate ? local : remote; + + IDBFS.reconcile(src, dst, callback); + }); + }); + },getDB:function (name, callback) { + // check the cache first + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + if (!req) { + return callback("Unable to connect to IndexedDB"); + } + req.onupgradeneeded = function(e) { + var db = e.target.result; + var transaction = e.target.transaction; + + var fileStore; + + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + + if (!fileStore.indexNames.contains('timestamp')) { + fileStore.createIndex('timestamp', 'timestamp', { unique: false }); + } + }; + req.onsuccess = function() { + db = req.result; + + // add to the cache + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },getLocalSet:function (mount, callback) { + var entries = {}; + + function isRealDir(p) { + return p !== '.' && p !== '..'; + }; + function toAbsolute(root) { + return function(p) { + return PATH.join2(root, p); + } + }; + + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + + while (check.length) { + var path = check.pop(); + var stat; + + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + + entries[path] = { timestamp: stat.mtime }; + } + + return callback(null, { type: 'local', entries: entries }); + },getRemoteSet:function (mount, callback) { + var entries = {}; + + IDBFS.getDB(mount.mountpoint, function(err, db) { + if (err) return callback(err); + + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); + transaction.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index('timestamp'); + + index.openKeyCursor().onsuccess = function(event) { + var cursor = event.target.result; + + if (!cursor) { + return callback(null, { type: 'remote', db: db, entries: entries }); + } + + entries[cursor.primaryKey] = { timestamp: cursor.key }; + + cursor.continue(); + }; + }); + },loadLocalEntry:function (path, callback) { + var stat, node; + + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode }); + } else if (FS.isFile(stat.mode)) { + // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. + // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. + node.contents = MEMFS.getFileDataAsTypedArray(node); + return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); + } else { + return callback(new Error('node type not supported')); + } + },storeLocalEntry:function (path, entry, callback) { + try { + if (FS.isDir(entry.mode)) { + FS.mkdir(path, entry.mode); + } else if (FS.isFile(entry.mode)) { + FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); + } else { + return callback(new Error('node type not supported')); + } + + FS.chmod(path, entry.mode); + FS.utime(path, entry.timestamp, entry.timestamp); + } catch (e) { + return callback(e); + } + + callback(null); + },removeLocalEntry:function (path, callback) { + try { + var lookup = FS.lookupPath(path); + var stat = FS.stat(path); + + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + + callback(null); + },loadRemoteEntry:function (store, path, callback) { + var req = store.get(path); + req.onsuccess = function(event) { callback(null, event.target.result); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },storeRemoteEntry:function (store, path, entry, callback) { + var req = store.put(entry, path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },removeRemoteEntry:function (store, path, callback) { + var req = store.delete(path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },reconcile:function (src, dst, callback) { + var total = 0; + + var create = []; + Object.keys(src.entries).forEach(function (key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e.timestamp > e2.timestamp) { + create.push(key); + total++; + } + }); + + var remove = []; + Object.keys(dst.entries).forEach(function (key) { + var e = dst.entries[key]; + var e2 = src.entries[key]; + if (!e2) { + remove.push(key); + total++; + } + }); + + if (!total) { + return callback(null); + } + + var errored = false; + var completed = 0; + var db = src.type === 'remote' ? src.db : dst.db; + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= total) { + return callback(null); + } + }; + + transaction.onerror = function(e) { + done(this.error); + e.preventDefault(); + }; + + // sort paths in ascending order so directory entries are created + // before the files inside them + create.sort().forEach(function (path) { + if (dst.type === 'local') { + IDBFS.loadRemoteEntry(store, path, function (err, entry) { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, function (err, entry) { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + + // sort paths in descending order so files are deleted before their + // parent directories + remove.sort().reverse().forEach(function(path) { + if (dst.type === 'local') { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + }}; + + var NODEFS={isWindows:false,staticInit:function () { + NODEFS.isWindows = !!process.platform.match(/^win/); + },mount:function (mount) { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + },getMode:function (path) { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so + // propagate write bits to execute bits. + stat.mode = stat.mode | ((stat.mode & 146) >> 1); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return stat.mode; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { + flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. + if (flags in NODEFS.flagsToPermissionStringMap) { + return NODEFS.flagsToPermissionStringMap[flags]; + } else { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },node_ops:{getattr:function (node) { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. + // See http://support.microsoft.com/kb/140365 + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function (node, attr) { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + },mknod:function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function (node) { + var path = NODEFS.realPath(node); + try { + path = fs.readlinkSync(path); + path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); + return path; + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + if (length === 0) return 0; // node errors on 0 length reads + // FIXME this is terrible. + var nbuffer = new Buffer(length); + var res; + try { + res = fs.readSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + if (res > 0) { + for (var i = 0; i < res; i++) { + buffer[offset + i] = nbuffer[i]; + } + } + return res; + },write:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); + var res; + try { + res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return res; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + return position; + }}}; + + var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { + assert(ENVIRONMENT_IS_WORKER); + if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); + var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); + var createdParents = {}; + function ensureParent(path) { + // return the parent node, creating subdirs as necessary + var parts = path.split('/'); + var parent = root; + for (var i = 0; i < parts.length-1; i++) { + var curr = parts.slice(0, i+1).join('/'); + // Issue 4254: Using curr as a node name will prevent the node + // from being found in FS.nameTable when FS.open is called on + // a path which holds a child of this node, + // given that all FS functions assume node names + // are just their corresponding parts within their given path, + // rather than incremental aggregates which include their parent's + // directories. + if (!createdParents[curr]) { + createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); + } + parent = createdParents[curr]; + } + return parent; + } + function base(path) { + var parts = path.split('/'); + return parts[parts.length-1]; + } + // We also accept FileList here, by using Array.prototype + Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { + WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); + }); + (mount.opts["blobs"] || []).forEach(function(obj) { + WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + }); + (mount.opts["packages"] || []).forEach(function(pack) { + pack['metadata'].files.forEach(function(file) { + var name = file.filename.substr(1); // remove initial slash + WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); + }); + }); + return root; + },createNode:function (parent, name, mode, dev, contents, mtime) { + var node = FS.createNode(parent, name, mode); + node.mode = mode; + node.node_ops = WORKERFS.node_ops; + node.stream_ops = WORKERFS.stream_ops; + node.timestamp = (mtime || new Date).getTime(); + assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); + if (mode === WORKERFS.FILE_MODE) { + node.size = contents.size; + node.contents = contents; + } else { + node.size = 4096; + node.contents = {}; + } + if (parent) { + parent.contents[name] = node; + } + return node; + },node_ops:{getattr:function (node) { + return { + dev: 1, + ino: undefined, + mode: node.mode, + nlink: 1, + uid: 0, + gid: 0, + rdev: undefined, + size: node.size, + atime: new Date(node.timestamp), + mtime: new Date(node.timestamp), + ctime: new Date(node.timestamp), + blksize: 4096, + blocks: Math.ceil(node.size / 4096), + }; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + },lookup:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + },mknod:function (parent, name, mode, dev) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rename:function (oldNode, newDir, newName) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },unlink:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rmdir:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readdir:function (node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newName, oldPath) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readlink:function (node) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + if (position >= stream.node.size) return 0; + var chunk = stream.node.contents.slice(position, position + length); + var ab = WORKERFS.reader.readAsArrayBuffer(chunk); + buffer.set(new Uint8Array(ab), offset); + return chunk.size; + },write:function (stream, buffer, offset, length, position) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.size; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + }}}; + + var _stdin=STATICTOP; STATICTOP += 16;; + + var _stdout=STATICTOP; STATICTOP += 16;; + + var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return ___setErrNo(e.errno); + },lookupPath:function (path, opts) { + path = PATH.resolve(FS.cwd(), path); + opts = opts || {}; + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function (parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function (parent, name) { + var err = FS.mayLookup(parent); + if (err) { + throw new FS.ErrnoError(err, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function (parent, name, mode, rdev) { + if (!FS.FSNode) { + FS.FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + + FS.FSNode.prototype = {}; + + // compatibility + var readMode = 292 | 73; + var writeMode = 146; + + // NOTE we must use Object.defineProperties instead of individual calls to + // Object.defineProperty in order to make closure compiler happy + Object.defineProperties(FS.FSNode.prototype, { + read: { + get: function() { return (this.mode & readMode) === readMode; }, + set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } + }, + write: { + get: function() { return (this.mode & writeMode) === writeMode; }, + set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } + }, + isFolder: { + get: function() { return FS.isDir(this.mode); } + }, + isDevice: { + get: function() { return FS.isChrdev(this.mode); } + } + }); + } + + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function (node) { + FS.hashRemoveNode(node); + },isRoot:function (node) { + return node === node.parent; + },isMountpoint:function (node) { + return !!node.mounted; + },isFile:function (mode) { + return (mode & 61440) === 32768; + },isDir:function (mode) { + return (mode & 61440) === 16384; + },isLink:function (mode) { + return (mode & 61440) === 40960; + },isChrdev:function (mode) { + return (mode & 61440) === 8192; + },isBlkdev:function (mode) { + return (mode & 61440) === 24576; + },isFIFO:function (mode) { + return (mode & 61440) === 4096; + },isSocket:function (mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function (flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function (node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return ERRNO_CODES.EACCES; + } + return 0; + },mayLookup:function (dir) { + var err = FS.nodePermissions(dir, 'x'); + if (err) return err; + if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; + return 0; + },mayCreate:function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return ERRNO_CODES.EEXIST; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var err = FS.nodePermissions(dir, 'wx'); + if (err) { + return err; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return ERRNO_CODES.ENOTDIR; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return ERRNO_CODES.EBUSY; + } + } else { + if (FS.isDir(node.mode)) { + return ERRNO_CODES.EISDIR; + } + } + return 0; + },mayOpen:function (node, flags) { + if (!node) { + return ERRNO_CODES.ENOENT; + } + if (FS.isLink(node.mode)) { + return ERRNO_CODES.ELOOP; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return ERRNO_CODES.EISDIR; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(ERRNO_CODES.EMFILE); + },getStream:function (fd) { + return FS.streams[fd]; + },createStream:function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function(){}; + FS.FSStream.prototype = {}; + // compatibility + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }); + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function (fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function (stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function () { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + }},major:function (dev) { + return ((dev) >> 8); + },minor:function (dev) { + return ((dev) & 0xff); + },makedev:function (ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function (dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function (dev) { + return FS.devices[dev]; + },getMounts:function (mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function (populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(err) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(err); + } + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return doCallback(err); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function (type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function (parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.mayCreate(parent, name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function (path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function (path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function (path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != ERRNO_CODES.EEXIST) throw e; + } + } + },mkdev:function (path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function (oldpath, newpath) { + if (!PATH.resolve(oldpath)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var newname = PATH.basename(newpath); + var err = FS.mayCreate(parent, newname); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(ERRNO_CODES.EXDEV); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + // new path should not be an ancestor of the old path + relative = PATH.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var err = FS.mayDelete(old_dir, old_name, isdir); + if (err) { + throw new FS.ErrnoError(err); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + err = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + err = FS.nodePermissions(old_dir, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, true); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + },unlink:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, false); + if (err) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return node.node_ops.getattr(node); + },lstat:function (path) { + return FS.stat(path, true); + },chmod:function (path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function (path, mode) { + FS.chmod(path, mode, true); + },fchmod:function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chmod(stream.node, mode); + },chown:function (path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function (path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chown(stream.node, uid, gid); + },truncate:function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.nodePermissions(node, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + FS.truncate(stream.node, len); + },utime:function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function (path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(ERRNO_CODES.EEXIST); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var err = FS.mayOpen(node, flags); + if (err) { + throw new FS.ErrnoError(err); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + Module['printErr']('read file: ' + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function (stream) { + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + },llseek:function (stream, offset, whence) { + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if (stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function (stream, offset, length) { + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + // TODO if PROT is PROT_WRITE, make sure we have write access + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EACCES); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function (stream) { + return 0; + },ioctl:function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + opts.encoding = opts.encoding || 'utf8'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var stream = FS.open(path, opts.flags, opts.mode); + if (opts.encoding === 'utf8') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); + } else if (opts.encoding === 'binary') { + FS.write(stream, data, 0, data.length, 0, opts.canOwn); + } + FS.close(stream); + },cwd:function () { + return FS.currentPath; + },chdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + var err = FS.nodePermissions(lookup.node, 'x'); + if (err) { + throw new FS.ErrnoError(err); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function () { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function () { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device; + if (typeof crypto !== 'undefined') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs + random_device = function() { return require('crypto').randomBytes(1)[0]; }; + } else { + // default for ES5 platforms + random_device = function() { return (Math.random()*256)|0; }; + } + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function () { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function () { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + + var stdout = FS.open('/dev/stdout', 'w'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + + var stderr = FS.open('/dev/stderr', 'w'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + //Module.printErr(stackTrace()); // useful for debugging + this.node = node; + this.setErrno = function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) this.stack = demangleAll(this.stack); + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [ERRNO_CODES.ENOENT].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function () { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + 'IDBFS': IDBFS, + 'NODEFS': NODEFS, + 'WORKERFS': WORKERFS, + }; + },init:function (input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function () { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function (relative, base) { + return PATH.resolve(base, relative); + },standardizePath:function (path) { + return PATH.normalize(path); + },findObject:function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + ___setErrNo(ret.error); + return null; + } + },analyzePath:function (path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function (parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (Module['read']) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(Module['read'](obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) ___setErrNo(ERRNO_CODES.EIO); + return success; + },createLazyFile:function (parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + } + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + } + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function () { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + console.log('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { + if (path[0] !== '/') { + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + dir = dirstream.path; + } + path = PATH.join2(dir, path); + } + return path; + },doStat:function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -ERRNO_CODES.ENOTDIR; + } + throw e; + } + HEAP32[((buf)>>2)]=stat.dev; + HEAP32[(((buf)+(4))>>2)]=0; + HEAP32[(((buf)+(8))>>2)]=stat.ino; + HEAP32[(((buf)+(12))>>2)]=stat.mode; + HEAP32[(((buf)+(16))>>2)]=stat.nlink; + HEAP32[(((buf)+(20))>>2)]=stat.uid; + HEAP32[(((buf)+(24))>>2)]=stat.gid; + HEAP32[(((buf)+(28))>>2)]=stat.rdev; + HEAP32[(((buf)+(32))>>2)]=0; + HEAP32[(((buf)+(36))>>2)]=stat.size; + HEAP32[(((buf)+(40))>>2)]=4096; + HEAP32[(((buf)+(44))>>2)]=stat.blocks; + HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(52))>>2)]=0; + HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)]=0; + HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)]=0; + HEAP32[(((buf)+(72))>>2)]=stat.ino; + return 0; + },doMsync:function (addr, stream, len, flags) { + var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); + FS.msync(stream, buffer, 0, len, flags); + },doMkdir:function (path, mode) { + // remove a trailing slash, if one - /a/b/ has basename of '', but + // we want to create b in the context of this function + path = PATH.normalize(path); + if (path[path.length-1] === '/') path = path.substr(0, path.length-1); + FS.mkdir(path, mode, 0); + return 0; + },doMknod:function (path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -ERRNO_CODES.EINVAL; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function (path, buf, bufsize) { + if (bufsize <= 0) return -ERRNO_CODES.EINVAL; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function (path, amode) { + if (amode & ~7) { + // need a valid mode + return -ERRNO_CODES.EINVAL; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -ERRNO_CODES.EACCES; + } + return 0; + },doDup:function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },getStreamFromFD:function () { + var stream = FS.getStream(SYSCALLS.get()); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return stream; + },getSocketFromFD:function () { + var socket = SOCKFS.getSocket(SYSCALLS.get()); + if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return socket; + },getSocketAddress:function (allowNull) { + var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); + if (allowNull && addrp === 0) return null; + var info = __read_sockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); + switch (op) { + case 21505: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + case 21506: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return -ERRNO_CODES.EINVAL; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _glfwGetMouseButton(winid, button) { + return GLFW.getMouseButton(winid, button); + } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + try { + // open + var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doWritev(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; + try { + // readv + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___udivdi3"] = ___udivdi3; + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + + + Module["___muldsi3"] = ___muldsi3; + Module["___muldi3"] = ___muldi3; + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function ___assert_fail(condition, filename, line, func) { + ABORT = true; + throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _glfwSetCursorPos(winid, x, y) { + GLFW.setCursorPos(winid, x, y); + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _glfwGetKey(winid, key) { + return GLFW.getKey(winid, key); + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; + try { + // fcntl64 + var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -ERRNO_CODES.EINVAL; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + case 12: { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + } + case 13: + case 14: + case 13: + case 14: + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: { + return -ERRNO_CODES.EINVAL; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(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;Module["FS_unlink"] = FS.unlink;; +__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; +JSEvents.staticInit();; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_glVertexAttrib4f": _glVertexAttrib4f, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_glVertexAttrib3f": _glVertexAttrib3f, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glHint": _emscripten_glHint, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_glUniform3f": _glUniform3f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glVertexAttrib2f": _glVertexAttrib2f, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_glfwSetCursorPos": _glfwSetCursorPos, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_glfwGetMouseButton": _glfwGetMouseButton, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_glUniform1f": _glUniform1f, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var ___assert_fail=env.___assert_fail; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _glVertexAttrib4f=env._glVertexAttrib4f; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _glVertexAttrib3f=env._glVertexAttrib3f; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var ___syscall145=env.___syscall145; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glHint=env._emscripten_glHint; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var ___syscall146=env.___syscall146; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _glUniform3f=env._glUniform3f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _glVertexAttrib2f=env._glVertexAttrib2f; + var _glGenTextures=env._glGenTextures; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var ___syscall5=env.___syscall5; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var ___syscall221=env.___syscall221; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _glfwSetCursorPos=env._glfwSetCursorPos; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _glfwGetMouseButton=env._glfwGetMouseButton; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _glActiveTexture=env._glActiveTexture; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _glUniform1f=env._glUniform1f; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _glfwGetKey=env._glfwGetKey; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $0 = 0, $1 = 0, $2 = 0, $texture$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 576|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(576|0); + $texture$byval_copy = sp + 312|0; + $0 = sp + 48|0; + $1 = sp + 24|0; + $2 = sp; + _InitWindow(800,450,4436); + HEAPF32[4602] = 10.0; + HEAPF32[(18412)>>2] = 8.0; + HEAPF32[(18416)>>2] = 10.0; + HEAPF32[(18420)>>2] = 0.0; + HEAPF32[(18424)>>2] = 2.2999999523162842; + HEAPF32[(18428)>>2] = 0.0; + HEAPF32[(18432)>>2] = 0.0; + HEAPF32[(18436)>>2] = 1.6000000238418579; + HEAPF32[(18440)>>2] = 0.0; + HEAPF32[(18444)>>2] = 45.0; + _LoadModel($0,4478); + _memcpy((18448|0),($0|0),264)|0; + _LoadTexture($1,4498); + ;HEAP32[18712>>2]=HEAP32[$1>>2]|0;HEAP32[18712+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[18712+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[18712+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[18712+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[(18636)>>2]=HEAP32[$1>>2]|0;HEAP32[(18636)+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[(18636)+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[(18636)+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[(18636)+16>>2]=HEAP32[$1+16>>2]|0; + dest=$texture$byval_copy; src=18448; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _CalculateBoundingBox($2,$texture$byval_copy); + ;HEAP32[18732>>2]=HEAP32[$2>>2]|0;HEAP32[18732+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[18732+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[18732+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[18732+16>>2]=HEAP32[$2+16>>2]|0;HEAP32[18732+20>>2]=HEAP32[$2+20>>2]|0; + dest=$texture$byval_copy; src=18408; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetCameraMode($texture$byval_copy,1); + _SetTargetFPS(60); + _emscripten_set_main_loop((1|0),0,1); + _memcpy(($texture$byval_copy|0),(18448|0),264)|0; + _UnloadModel($texture$byval_copy); + ;HEAP32[$texture$byval_copy>>2]=HEAP32[18712>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[18712+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[18712+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[18712+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[18712+16>>2]|0; + _UnloadTexture($texture$byval_copy); + _CloseWindow(); + STACKTOP = sp;return 0; +} +function _UpdateDrawFrame() { + var $$0 = 0, $$1 = 0, $$2 = 0, $$byval_copy20 = 0, $$byval_copy42 = 0, $$byval_copy52 = 0, $$sink = 0, $$sroa$05$0$copyload = 0, $$sroa$2$0$$sroa_idx = 0, $$sroa$221$0$$sroa_idx = 0, $$sroa$225$0$$sroa_idx = 0, $$sroa$3$0$$sroa_idx = 0, $$sroa$322$0$$sroa_idx = 0, $$sroa$326$0$$sroa_idx = 0, $$sroa$4$0$$sroa_idx = 0, $$sroa$423$0$$sroa_idx = 0, $$sroa$427$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx9 = 0, $$sroa$5$0$copyload = 0.0, $$sroa$6$0$$sroa_idx = 0; + var $$sroa$6$0$$sroa_idx14 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0.0, $102 = 0.0, $103 = 0, $104 = 0.0, $105 = 0.0, $106 = 0, $107 = 0.0, $108 = 0.0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0.0; + var $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0.0, $132 = 0.0; + var $133 = 0.0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0, $79 = 0.0; + var $8 = 0, $80 = 0.0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, $or$cond = 0, $ray$byval_copy45 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer14 = 0, $vararg_buffer4 = 0, $vararg_buffer9 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr18 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 704|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(704|0); + $$byval_copy52 = sp + 608|0; + $ray$byval_copy45 = sp + 584|0; + $$byval_copy42 = sp + 320|0; + $$byval_copy20 = sp + 88|0; + $vararg_buffer14 = sp + 64|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = sp + 200|0; + $1 = sp + 192|0; + $2 = sp + 312|0; + $3 = sp + 288|0; + $4 = sp + 160|0; + $5 = sp + 128|0; + $6 = sp + 272|0; + $7 = sp + 240|0; + $8 = sp + 700|0; + $9 = sp + 232|0; + $10 = sp + 696|0; + $11 = sp + 692|0; + $12 = sp + 688|0; + $13 = sp + 684|0; + $14 = sp + 680|0; + $15 = sp + 112|0; + $16 = sp + 676|0; + $17 = sp + 672|0; + $18 = sp + 668|0; + $19 = sp + 664|0; + $20 = sp + 660|0; + $21 = sp + 656|0; + $22 = sp + 652|0; + $23 = sp + 648|0; + _UpdateCamera(18408); + $24 = ((($0)) + 4|0); + HEAPF32[$24>>2] = 3.4028234663852886E+38; + HEAP32[$0>>2] = 0; + HEAP32[$1>>2] = -1; + _GetMousePosition($2); + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[$2>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[$2+4>>2]|0; + dest=$$byval_copy52; src=18408; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _GetMouseRay($3,$ray$byval_copy45,$$byval_copy52); + ;HEAP32[18756>>2]=HEAP32[$3>>2]|0;HEAP32[18756+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[18756+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[18756+12>>2]=HEAP32[$3+12>>2]|0;HEAP32[18756+16>>2]=HEAP32[$3+16>>2]|0;HEAP32[18756+20>>2]=HEAP32[$3+20>>2]|0; + ;HEAP32[$$byval_copy52>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[$3+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[$3+16>>2]|0;HEAP32[$$byval_copy52+20>>2]=HEAP32[$3+20>>2]|0; + _GetCollisionRayGround($4,$$byval_copy52,0.0); + $25 = HEAP32[$4>>2]|0; + $26 = ($25|0)==(0); + if ($26) { + $$0 = 4518; + } else { + $27 = ((($4)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = +HEAPF32[$24>>2]; + $30 = $28 < $29; + if ($30) { + ;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$4+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$4+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$4+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$4+28>>2]|0; + HEAP8[$1>>0] = 0; + $$sroa$225$0$$sroa_idx = ((($1)) + 1|0); + HEAP8[$$sroa$225$0$$sroa_idx>>0] = -28; + $$sroa$326$0$$sroa_idx = ((($1)) + 2|0); + HEAP8[$$sroa$326$0$$sroa_idx>>0] = 48; + $$sroa$427$0$$sroa_idx = ((($1)) + 3|0); + HEAP8[$$sroa$427$0$$sroa_idx>>0] = -1; + $$0 = 4523; + } else { + $$0 = 4518; + } + } + ;HEAP32[$$byval_copy20>>2]=HEAP32[18756>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[18756+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[18756+8>>2]|0;HEAP32[$$byval_copy20+12>>2]=HEAP32[18756+12>>2]|0;HEAP32[$$byval_copy20+16>>2]=HEAP32[18756+16>>2]|0;HEAP32[$$byval_copy20+20>>2]=HEAP32[18756+20>>2]|0; + ;HEAP32[$$byval_copy42>>2]=HEAP32[8>>2]|0;HEAP32[$$byval_copy42+4>>2]=HEAP32[8+4>>2]|0;HEAP32[$$byval_copy42+8>>2]=HEAP32[8+8>>2]|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[20>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[20+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[20+8>>2]|0; + ;HEAP32[$$byval_copy52>>2]=HEAP32[32>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[32+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[32+8>>2]|0; + _GetCollisionRayTriangle($5,$$byval_copy20,$$byval_copy42,$ray$byval_copy45,$$byval_copy52); + $31 = HEAP32[$5>>2]|0; + $32 = ($31|0)==(0); + if ($32) { + $$1 = $$0;$$sink = 0; + } else { + $33 = ((($5)) + 4|0); + $34 = +HEAPF32[$33>>2]; + $35 = +HEAPF32[$24>>2]; + $36 = $34 < $35; + if ($36) { + ;HEAP32[$0>>2]=HEAP32[$5>>2]|0;HEAP32[$0+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$5+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$5+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$5+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$5+28>>2]|0; + HEAP8[$1>>0] = -56; + $$sroa$221$0$$sroa_idx = ((($1)) + 1|0); + HEAP8[$$sroa$221$0$$sroa_idx>>0] = 122; + $$sroa$322$0$$sroa_idx = ((($1)) + 2|0); + HEAP8[$$sroa$322$0$$sroa_idx>>0] = -1; + $$sroa$423$0$$sroa_idx = ((($1)) + 3|0); + HEAP8[$$sroa$423$0$$sroa_idx>>0] = -1; + $37 = ((($0)) + 8|0); + ;HEAP32[$$byval_copy20>>2]=HEAP32[$37>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$37+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$37+8>>2]|0; + ;HEAP32[$$byval_copy42>>2]=HEAP32[8>>2]|0;HEAP32[$$byval_copy42+4>>2]=HEAP32[8+4>>2]|0;HEAP32[$$byval_copy42+8>>2]=HEAP32[8+8>>2]|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[20>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[20+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[20+8>>2]|0; + ;HEAP32[$$byval_copy52>>2]=HEAP32[32>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[32+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[32+8>>2]|0; + _VectorBarycenter($6,$$byval_copy20,$$byval_copy42,$ray$byval_copy45,$$byval_copy52); + ;HEAP32[18396>>2]=HEAP32[$6>>2]|0;HEAP32[18396+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[18396+8>>2]=HEAP32[$6+8>>2]|0; + $$1 = 4530;$$sink = 1; + } else { + $$1 = $$0;$$sink = 0; + } + } + HEAP32[4598] = $$sink; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[18756>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[18756+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[18756+8>>2]|0;HEAP32[$ray$byval_copy45+12>>2]=HEAP32[18756+12>>2]|0;HEAP32[$ray$byval_copy45+16>>2]=HEAP32[18756+16>>2]|0;HEAP32[$ray$byval_copy45+20>>2]=HEAP32[18756+20>>2]|0; + ;HEAP32[$$byval_copy52>>2]=HEAP32[18732>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[18732+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[18732+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[18732+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[18732+16>>2]|0;HEAP32[$$byval_copy52+20>>2]=HEAP32[18732+20>>2]|0; + $38 = (_CheckCollisionRayBox($ray$byval_copy45,$$byval_copy52)|0); + $39 = ($38|0)==(0); + if ($39) { + $$2 = $$1; + } else { + HEAP32[4597] = 1; + ;HEAP32[$$byval_copy52>>2]=HEAP32[18756>>2]|0;HEAP32[$$byval_copy52+4>>2]=HEAP32[18756+4>>2]|0;HEAP32[$$byval_copy52+8>>2]=HEAP32[18756+8>>2]|0;HEAP32[$$byval_copy52+12>>2]=HEAP32[18756+12>>2]|0;HEAP32[$$byval_copy52+16>>2]=HEAP32[18756+16>>2]|0;HEAP32[$$byval_copy52+20>>2]=HEAP32[18756+20>>2]|0; + _GetCollisionRayMesh($7,$$byval_copy52,18448); + $$sroa$05$0$copyload = HEAP32[$7>>2]|0; + $$sroa$5$0$$sroa_idx9 = ((($7)) + 4|0); + $$sroa$5$0$copyload = +HEAPF32[$$sroa$5$0$$sroa_idx9>>2]; + $$sroa$6$0$$sroa_idx = ((($7)) + 8|0); + ;HEAP32[$$byval_copy20>>2]=HEAP32[$$sroa$6$0$$sroa_idx>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$$sroa$6$0$$sroa_idx+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$$sroa$6$0$$sroa_idx+8>>2]|0;HEAP32[$$byval_copy20+12>>2]=HEAP32[$$sroa$6$0$$sroa_idx+12>>2]|0;HEAP32[$$byval_copy20+16>>2]=HEAP32[$$sroa$6$0$$sroa_idx+16>>2]|0;HEAP32[$$byval_copy20+20>>2]=HEAP32[$$sroa$6$0$$sroa_idx+20>>2]|0; + $40 = ($$sroa$05$0$copyload|0)!=(0); + $41 = +HEAPF32[$24>>2]; + $42 = $$sroa$5$0$copyload < $41; + $or$cond = $40 & $42; + if ($or$cond) { + HEAP32[$0>>2] = $$sroa$05$0$copyload; + HEAPF32[$24>>2] = $$sroa$5$0$copyload; + $$sroa$6$0$$sroa_idx14 = ((($0)) + 8|0); + ;HEAP32[$$sroa$6$0$$sroa_idx14>>2]=HEAP32[$$byval_copy20>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx14+4>>2]=HEAP32[$$byval_copy20+4>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx14+8>>2]=HEAP32[$$byval_copy20+8>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx14+12>>2]=HEAP32[$$byval_copy20+12>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx14+16>>2]=HEAP32[$$byval_copy20+16>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx14+20>>2]=HEAP32[$$byval_copy20+20>>2]|0; + HEAP8[$1>>0] = -1; + $$sroa$2$0$$sroa_idx = ((($1)) + 1|0); + HEAP8[$$sroa$2$0$$sroa_idx>>0] = -95; + $$sroa$3$0$$sroa_idx = ((($1)) + 2|0); + HEAP8[$$sroa$3$0$$sroa_idx>>0] = 0; + $$sroa$4$0$$sroa_idx = ((($1)) + 3|0); + HEAP8[$$sroa$4$0$$sroa_idx>>0] = -1; + $$2 = 4539; + } else { + $$2 = $$1; + } + } + HEAP32[4597] = 0; + _BeginDrawing(); + HEAP8[$8>>0] = -11; + $43 = ((($8)) + 1|0); + HEAP8[$43>>0] = -11; + $44 = ((($8)) + 2|0); + HEAP8[$44>>0] = -11; + $45 = ((($8)) + 3|0); + HEAP8[$45>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$8>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$8+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$8+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$8+3>>0]|0; + _ClearBackground($$byval_copy52); + dest=$$byval_copy52; src=18408; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($$byval_copy52); + HEAP32[$9>>2] = -1; + _memcpy(($$byval_copy42|0),(18448|0),264)|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[18376>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[18376+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[18376+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$9>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$9+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$9+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$9+3>>0]|0; + _DrawModel($$byval_copy42,$ray$byval_copy45,1.0,$$byval_copy52); + HEAP8[$10>>0] = -56; + $46 = ((($10)) + 1|0); + HEAP8[$46>>0] = 122; + $47 = ((($10)) + 2|0); + HEAP8[$47>>0] = -1; + $48 = ((($10)) + 3|0); + HEAP8[$48>>0] = -1; + ;HEAP32[$$byval_copy42>>2]=HEAP32[8>>2]|0;HEAP32[$$byval_copy42+4>>2]=HEAP32[8+4>>2]|0;HEAP32[$$byval_copy42+8>>2]=HEAP32[8+8>>2]|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[20>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[20+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[20+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$10>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$10+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$10+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$10+3>>0]|0; + _DrawLine3D($$byval_copy42,$ray$byval_copy45,$$byval_copy52); + HEAP8[$11>>0] = -56; + $49 = ((($11)) + 1|0); + HEAP8[$49>>0] = 122; + $50 = ((($11)) + 2|0); + HEAP8[$50>>0] = -1; + $51 = ((($11)) + 3|0); + HEAP8[$51>>0] = -1; + ;HEAP32[$$byval_copy42>>2]=HEAP32[20>>2]|0;HEAP32[$$byval_copy42+4>>2]=HEAP32[20+4>>2]|0;HEAP32[$$byval_copy42+8>>2]=HEAP32[20+8>>2]|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[32>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[32+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[32+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$11>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$11+3>>0]|0; + _DrawLine3D($$byval_copy42,$ray$byval_copy45,$$byval_copy52); + HEAP8[$12>>0] = -56; + $52 = ((($12)) + 1|0); + HEAP8[$52>>0] = 122; + $53 = ((($12)) + 2|0); + HEAP8[$53>>0] = -1; + $54 = ((($12)) + 3|0); + HEAP8[$54>>0] = -1; + ;HEAP32[$$byval_copy42>>2]=HEAP32[32>>2]|0;HEAP32[$$byval_copy42+4>>2]=HEAP32[32+4>>2]|0;HEAP32[$$byval_copy42+8>>2]=HEAP32[32+8>>2]|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[8>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[8+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[8+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$12>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$12+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$12+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$12+3>>0]|0; + _DrawLine3D($$byval_copy42,$ray$byval_copy45,$$byval_copy52); + $55 = HEAP32[4597]|0; + $56 = ($55|0)==(0); + if (!($56)) { + HEAP8[$13>>0] = 0; + $57 = ((($13)) + 1|0); + HEAP8[$57>>0] = -98; + $58 = ((($13)) + 2|0); + HEAP8[$58>>0] = 47; + $59 = ((($13)) + 3|0); + HEAP8[$59>>0] = -1; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[18732>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[18732+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[18732+8>>2]|0;HEAP32[$ray$byval_copy45+12>>2]=HEAP32[18732+12>>2]|0;HEAP32[$ray$byval_copy45+16>>2]=HEAP32[18732+16>>2]|0;HEAP32[$ray$byval_copy45+20>>2]=HEAP32[18732+20>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$13>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$13+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$13+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$13+3>>0]|0; + _DrawBoundingBox($ray$byval_copy45,$$byval_copy52); + } + $60 = HEAP32[$0>>2]|0; + $61 = ($60|0)==(0); + if (!($61)) { + $62 = ((($0)) + 8|0); + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[$62>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[$62+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[$62+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$1+3>>0]|0; + _DrawCube($ray$byval_copy45,0.5,0.5,0.5,$$byval_copy52); + HEAP8[$14>>0] = -3; + $63 = ((($14)) + 1|0); + HEAP8[$63>>0] = -7; + $64 = ((($14)) + 2|0); + HEAP8[$64>>0] = 0; + $65 = ((($14)) + 3|0); + HEAP8[$65>>0] = -1; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[$62>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[$62+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[$62+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$14>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$14+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$14+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$14+3>>0]|0; + _DrawCubeWires($ray$byval_copy45,0.5,0.5,0.5,$$byval_copy52); + $66 = +HEAPF32[$62>>2]; + $67 = ((($0)) + 20|0); + $68 = +HEAPF32[$67>>2]; + $69 = $66 + $68; + HEAPF32[$15>>2] = $69; + $70 = ((($0)) + 12|0); + $71 = +HEAPF32[$70>>2]; + $72 = ((($0)) + 24|0); + $73 = +HEAPF32[$72>>2]; + $74 = $71 + $73; + $75 = ((($15)) + 4|0); + HEAPF32[$75>>2] = $74; + $76 = ((($0)) + 16|0); + $77 = +HEAPF32[$76>>2]; + $78 = ((($0)) + 28|0); + $79 = +HEAPF32[$78>>2]; + $80 = $77 + $79; + $81 = ((($15)) + 8|0); + HEAPF32[$81>>2] = $80; + HEAP8[$16>>0] = -3; + $82 = ((($16)) + 1|0); + HEAP8[$82>>0] = -7; + $83 = ((($16)) + 2|0); + HEAP8[$83>>0] = 0; + $84 = ((($16)) + 3|0); + HEAP8[$84>>0] = -1; + ;HEAP32[$$byval_copy42>>2]=HEAP32[$62>>2]|0;HEAP32[$$byval_copy42+4>>2]=HEAP32[$62+4>>2]|0;HEAP32[$$byval_copy42+8>>2]=HEAP32[$62+8>>2]|0; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[$15>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[$15+8>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$16>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$16+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$16+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$16+3>>0]|0; + _DrawLine3D($$byval_copy42,$ray$byval_copy45,$$byval_copy52); + } + HEAP8[$17>>0] = -66; + $85 = ((($17)) + 1|0); + HEAP8[$85>>0] = 33; + $86 = ((($17)) + 2|0); + HEAP8[$86>>0] = 55; + $87 = ((($17)) + 3|0); + HEAP8[$87>>0] = -1; + ;HEAP32[$ray$byval_copy45>>2]=HEAP32[18756>>2]|0;HEAP32[$ray$byval_copy45+4>>2]=HEAP32[18756+4>>2]|0;HEAP32[$ray$byval_copy45+8>>2]=HEAP32[18756+8>>2]|0;HEAP32[$ray$byval_copy45+12>>2]=HEAP32[18756+12>>2]|0;HEAP32[$ray$byval_copy45+16>>2]=HEAP32[18756+16>>2]|0;HEAP32[$ray$byval_copy45+20>>2]=HEAP32[18756+20>>2]|0; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$17>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$17+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$17+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$17+3>>0]|0; + _DrawRay($ray$byval_copy45,$$byval_copy52); + _DrawGrid(100,1.0); + _End3dMode(); + HEAP32[$vararg_buffer>>2] = $$2; + $88 = (_FormatText(4544,$vararg_buffer)|0); + HEAP8[$18>>0] = 0; + $89 = ((($18)) + 1|0); + HEAP8[$89>>0] = 0; + $90 = ((($18)) + 2|0); + HEAP8[$90>>0] = 0; + $91 = ((($18)) + 3|0); + HEAP8[$91>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$18>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$18+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$18+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$18+3>>0]|0; + _DrawText($88,10,50,10,$$byval_copy52); + $92 = HEAP32[$0>>2]|0; + $93 = ($92|0)==(0); + if ($93) { + HEAP8[$23>>0] = -126; + $138 = ((($23)) + 1|0); + HEAP8[$138>>0] = -126; + $139 = ((($23)) + 2|0); + HEAP8[$139>>0] = -126; + $140 = ((($23)) + 3|0); + HEAP8[$140>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$23>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$23+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$23+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$23+3>>0]|0; + _DrawText(4660,10,430,10,$$byval_copy52); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; + } + $94 = +HEAPF32[$24>>2]; + $95 = $94; + HEAPF64[$vararg_buffer1>>3] = $95; + $96 = (_FormatText(4559,$vararg_buffer1)|0); + HEAP8[$19>>0] = 0; + $97 = ((($19)) + 1|0); + HEAP8[$97>>0] = 0; + $98 = ((($19)) + 2|0); + HEAP8[$98>>0] = 0; + $99 = ((($19)) + 3|0); + HEAP8[$99>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$19>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$19+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$19+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$19+3>>0]|0; + _DrawText($96,10,70,10,$$byval_copy52); + $100 = ((($0)) + 8|0); + $101 = +HEAPF32[$100>>2]; + $102 = $101; + $103 = ((($0)) + 12|0); + $104 = +HEAPF32[$103>>2]; + $105 = $104; + $106 = ((($0)) + 16|0); + $107 = +HEAPF32[$106>>2]; + $108 = $107; + HEAPF64[$vararg_buffer4>>3] = $102; + $vararg_ptr7 = ((($vararg_buffer4)) + 8|0); + HEAPF64[$vararg_ptr7>>3] = $105; + $vararg_ptr8 = ((($vararg_buffer4)) + 16|0); + HEAPF64[$vararg_ptr8>>3] = $108; + $109 = (_FormatText(4575,$vararg_buffer4)|0); + HEAP8[$20>>0] = 0; + $110 = ((($20)) + 1|0); + HEAP8[$110>>0] = 0; + $111 = ((($20)) + 2|0); + HEAP8[$111>>0] = 0; + $112 = ((($20)) + 3|0); + HEAP8[$112>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$20>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$20+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$20+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$20+3>>0]|0; + _DrawText($109,10,85,10,$$byval_copy52); + $113 = ((($0)) + 20|0); + $114 = +HEAPF32[$113>>2]; + $115 = $114; + $116 = ((($0)) + 24|0); + $117 = +HEAPF32[$116>>2]; + $118 = $117; + $119 = ((($0)) + 28|0); + $120 = +HEAPF32[$119>>2]; + $121 = $120; + HEAPF64[$vararg_buffer9>>3] = $115; + $vararg_ptr12 = ((($vararg_buffer9)) + 8|0); + HEAPF64[$vararg_ptr12>>3] = $118; + $vararg_ptr13 = ((($vararg_buffer9)) + 16|0); + HEAPF64[$vararg_ptr13>>3] = $121; + $122 = (_FormatText(4602,$vararg_buffer9)|0); + HEAP8[$21>>0] = 0; + $123 = ((($21)) + 1|0); + HEAP8[$123>>0] = 0; + $124 = ((($21)) + 2|0); + HEAP8[$124>>0] = 0; + $125 = ((($21)) + 3|0); + HEAP8[$125>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$21>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$21+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$21+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$21+3>>0]|0; + _DrawText($122,10,100,10,$$byval_copy52); + $126 = HEAP32[4598]|0; + $127 = ($126|0)==(0); + if ($127) { + HEAP8[$23>>0] = -126; + $138 = ((($23)) + 1|0); + HEAP8[$138>>0] = -126; + $139 = ((($23)) + 2|0); + HEAP8[$139>>0] = -126; + $140 = ((($23)) + 3|0); + HEAP8[$140>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$23>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$23+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$23+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$23+3>>0]|0; + _DrawText(4660,10,430,10,$$byval_copy52); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; + } + $128 = +HEAPF32[4599]; + $129 = $128; + $130 = +HEAPF32[(18400)>>2]; + $131 = $130; + $132 = +HEAPF32[(18404)>>2]; + $133 = $132; + HEAPF64[$vararg_buffer14>>3] = $129; + $vararg_ptr17 = ((($vararg_buffer14)) + 8|0); + HEAPF64[$vararg_ptr17>>3] = $131; + $vararg_ptr18 = ((($vararg_buffer14)) + 16|0); + HEAPF64[$vararg_ptr18>>3] = $133; + $134 = (_FormatText(4630,$vararg_buffer14)|0); + HEAP8[$22>>0] = 0; + $135 = ((($22)) + 1|0); + HEAP8[$135>>0] = 0; + $136 = ((($22)) + 2|0); + HEAP8[$136>>0] = 0; + $137 = ((($22)) + 3|0); + HEAP8[$137>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$22>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$22+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$22+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$22+3>>0]|0; + _DrawText($134,10,115,10,$$byval_copy52); + HEAP8[$23>>0] = -126; + $138 = ((($23)) + 1|0); + HEAP8[$138>>0] = -126; + $139 = ((($23)) + 2|0); + HEAP8[$139>>0] = -126; + $140 = ((($23)) + 3|0); + HEAP8[$140>>0] = -1; + ;HEAP8[$$byval_copy52>>0]=HEAP8[$23>>0]|0;HEAP8[$$byval_copy52+1>>0]=HEAP8[$23+1>>0]|0;HEAP8[$$byval_copy52+2>>0]=HEAP8[$23+2>>0]|0;HEAP8[$$byval_copy52+3>>0]=HEAP8[$23+3>>0]|0; + _DrawText(4660,10,430,10,$$byval_copy52); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorAdd($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 + $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 + $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 + $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorDotProduct($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 * $3; + $5 = ((($0)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = $6 * $8; + $10 = $4 + $9; + $11 = ((($0)) + 8|0); + $12 = +HEAPF32[$11>>2]; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $12 * $14; + $16 = $10 + $15; + return (+$16); +} +function _VectorScale($0,$1) { + $0 = $0|0; + $1 = +$1; + var $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = $2 * $1; + HEAPF32[$0>>2] = $3; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $5 * $1; + HEAPF32[$4>>2] = $6; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $1; + HEAPF32[$7>>2] = $9; + return; +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _VectorMin($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = (+_fminf($3,$4)); + $6 = ((($1)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($2)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = (+_fminf($7,$9)); + $11 = ((($1)) + 8|0); + $12 = +HEAPF32[$11>>2]; + $13 = ((($2)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = (+_fminf($12,$14)); + HEAPF32[$0>>2] = $5; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $10; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $15; + return; +} +function _VectorMax($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = (+_fmaxf($3,$4)); + $6 = ((($1)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($2)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = (+_fmaxf($7,$9)); + $11 = ((($1)) + 8|0); + $12 = +HEAPF32[$11>>2]; + $13 = ((($2)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = (+_fmaxf($12,$14)); + HEAPF32[$0>>2] = $5; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $10; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $15; + return; +} +function _VectorBarycenter($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy14 = 0, $$byval_copy15 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$6$0$$sroa_idx4 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy15 = sp + 48|0; + $$byval_copy14 = sp + 36|0; + $5 = sp + 24|0; + $6 = sp + 12|0; + $7 = sp; + ;HEAP32[$$byval_copy14>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($5,$$byval_copy14,$$byval_copy15); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($6,$$byval_copy14,$$byval_copy15); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($7,$$byval_copy14,$$byval_copy15); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$5+8>>2]|0; + $8 = (+_VectorDotProduct($$byval_copy14,$$byval_copy15)); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$6+8>>2]|0; + $9 = (+_VectorDotProduct($$byval_copy14,$$byval_copy15)); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$6+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$6+8>>2]|0; + $10 = (+_VectorDotProduct($$byval_copy14,$$byval_copy15)); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$7+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$5+8>>2]|0; + $11 = (+_VectorDotProduct($$byval_copy14,$$byval_copy15)); + ;HEAP32[$$byval_copy14>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy14+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy14+8>>2]=HEAP32[$7+8>>2]|0; + ;HEAP32[$$byval_copy15>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$6+8>>2]|0; + $12 = (+_VectorDotProduct($$byval_copy14,$$byval_copy15)); + $13 = $8 * $10; + $14 = $9 * $9; + $15 = $13 - $14; + $16 = $10 * $11; + $17 = $9 * $12; + $18 = $16 - $17; + $19 = $18 / $15; + $20 = $8 * $12; + $21 = $9 * $11; + $22 = $20 - $21; + $23 = $22 / $15; + $24 = $23 + $19; + $25 = 1.0 - $24; + HEAPF32[$0>>2] = $25; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $19; + $$sroa$6$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$6$0$$sroa_idx4>>2] = $23; + STACKTOP = sp;return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixInvert($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0; + var $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0; + var $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0.0; + var $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0; + var $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0; + var $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0; + var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0; + var $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = ((($0)) + 16|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 32|0); + $5 = +HEAPF32[$4>>2]; + $6 = ((($0)) + 48|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 20|0); + $11 = +HEAPF32[$10>>2]; + $12 = ((($0)) + 36|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($0)) + 52|0); + $15 = +HEAPF32[$14>>2]; + $16 = ((($0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + $18 = ((($0)) + 24|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($0)) + 40|0); + $21 = +HEAPF32[$20>>2]; + $22 = ((($0)) + 56|0); + $23 = +HEAPF32[$22>>2]; + $24 = ((($0)) + 12|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($0)) + 28|0); + $27 = +HEAPF32[$26>>2]; + $28 = ((($0)) + 44|0); + $29 = +HEAPF32[$28>>2]; + $30 = ((($0)) + 60|0); + $31 = +HEAPF32[$30>>2]; + $32 = $1 * $11; + $33 = $3 * $9; + $34 = $32 - $33; + $35 = $1 * $13; + $36 = $5 * $9; + $37 = $35 - $36; + $38 = $1 * $15; + $39 = $7 * $9; + $40 = $38 - $39; + $41 = $3 * $13; + $42 = $5 * $11; + $43 = $41 - $42; + $44 = $3 * $15; + $45 = $7 * $11; + $46 = $44 - $45; + $47 = $5 * $15; + $48 = $7 * $13; + $49 = $47 - $48; + $50 = $17 * $27; + $51 = $19 * $25; + $52 = $50 - $51; + $53 = $17 * $29; + $54 = $21 * $25; + $55 = $53 - $54; + $56 = $17 * $31; + $57 = $23 * $25; + $58 = $56 - $57; + $59 = $19 * $29; + $60 = $21 * $27; + $61 = $59 - $60; + $62 = $19 * $31; + $63 = $23 * $27; + $64 = $62 - $63; + $65 = $21 * $31; + $66 = $23 * $29; + $67 = $65 - $66; + $68 = $34 * $67; + $69 = $37 * $64; + $70 = $68 - $69; + $71 = $40 * $61; + $72 = $71 + $70; + $73 = $43 * $58; + $74 = $73 + $72; + $75 = $46 * $55; + $76 = $74 - $75; + $77 = $49 * $52; + $78 = $77 + $76; + $79 = 1.0 / $78; + $80 = $11 * $67; + $81 = $13 * $64; + $82 = $80 - $81; + $83 = $15 * $61; + $84 = $83 + $82; + $85 = $84 * $79; + $86 = $3 * $67; + $87 = $5 * $64; + $88 = $87 - $86; + $89 = $7 * $61; + $90 = $88 - $89; + $91 = $90 * $79; + $92 = $49 * $27; + $93 = $46 * $29; + $94 = $92 - $93; + $95 = $43 * $31; + $96 = $94 + $95; + $97 = $96 * $79; + $98 = $19 * $49; + $99 = $46 * $21; + $100 = $99 - $98; + $101 = $43 * $23; + $102 = $100 - $101; + $103 = $102 * $79; + $104 = -$9; + $105 = $67 * $104; + $106 = $13 * $58; + $107 = $105 + $106; + $108 = $15 * $55; + $109 = $107 - $108; + $110 = $109 * $79; + $111 = $1 * $67; + $112 = $5 * $58; + $113 = $111 - $112; + $114 = $7 * $55; + $115 = $114 + $113; + $116 = $115 * $79; + $117 = -$25; + $118 = $49 * $117; + $119 = $40 * $29; + $120 = $118 + $119; + $121 = $37 * $31; + $122 = $120 - $121; + $123 = $122 * $79; + $124 = $17 * $49; + $125 = $40 * $21; + $126 = $124 - $125; + $127 = $37 * $23; + $128 = $126 + $127; + $129 = $128 * $79; + $130 = $9 * $64; + $131 = $11 * $58; + $132 = $130 - $131; + $133 = $15 * $52; + $134 = $133 + $132; + $135 = $134 * $79; + $136 = $1 * $64; + $137 = $3 * $58; + $138 = $137 - $136; + $139 = $7 * $52; + $140 = $138 - $139; + $141 = $140 * $79; + $142 = $46 * $25; + $143 = $40 * $27; + $144 = $142 - $143; + $145 = $34 * $31; + $146 = $144 + $145; + $147 = $146 * $79; + $148 = $17 * $46; + $149 = $19 * $40; + $150 = $149 - $148; + $151 = $34 * $23; + $152 = $150 - $151; + $153 = $152 * $79; + $154 = $61 * $104; + $155 = $11 * $55; + $156 = $154 + $155; + $157 = $13 * $52; + $158 = $156 - $157; + $159 = $158 * $79; + $160 = $1 * $61; + $161 = $3 * $55; + $162 = $160 - $161; + $163 = $5 * $52; + $164 = $163 + $162; + $165 = $164 * $79; + $166 = $43 * $117; + $167 = $37 * $27; + $168 = $166 + $167; + $169 = $34 * $29; + $170 = $168 - $169; + $171 = $170 * $79; + $172 = $17 * $43; + $173 = $37 * $19; + $174 = $172 - $173; + $175 = $34 * $21; + $176 = $174 + $175; + $177 = $176 * $79; + HEAPF32[$0>>2] = $85; + HEAPF32[$8>>2] = $110; + HEAPF32[$16>>2] = $135; + HEAPF32[$24>>2] = $159; + HEAPF32[$2>>2] = $91; + HEAPF32[$10>>2] = $116; + HEAPF32[$18>>2] = $141; + HEAPF32[$26>>2] = $165; + HEAPF32[$4>>2] = $97; + HEAPF32[$12>>2] = $123; + HEAPF32[$20>>2] = $147; + HEAPF32[$28>>2] = $171; + HEAPF32[$6>>2] = $103; + HEAPF32[$14>>2] = $129; + HEAPF32[$22>>2] = $153; + HEAPF32[$30>>2] = $177; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixPerspective($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + var $10 = 0.0, $11 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $5 = $1 * 3.1415927410125732; + $6 = $5 / 360.0; + $7 = (+Math_tan((+$6))); + $8 = $7 * $3; + $9 = $8 * $2; + $10 = -$9; + $11 = -$8; + _MatrixFrustum($0,$10,$9,$11,$8,$3,$4); + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _QuaternionTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0; + var $65 = 0.0, $66 = 0.0, $67 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($0)) + 12|0); + $8 = +HEAPF32[$7>>2]; + $9 = +HEAPF32[$1>>2]; + $10 = $2 * $9; + $11 = ((($1)) + 4|0); + $12 = +HEAPF32[$11>>2]; + $13 = $4 * $12; + $14 = $10 + $13; + $15 = ((($1)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $6 * $16; + $18 = $14 + $17; + $19 = ((($1)) + 12|0); + $20 = +HEAPF32[$19>>2]; + $21 = $8 * $20; + $22 = $18 + $21; + HEAPF32[$0>>2] = $22; + $23 = ((($1)) + 16|0); + $24 = +HEAPF32[$23>>2]; + $25 = $2 * $24; + $26 = ((($1)) + 20|0); + $27 = +HEAPF32[$26>>2]; + $28 = $4 * $27; + $29 = $25 + $28; + $30 = ((($1)) + 24|0); + $31 = +HEAPF32[$30>>2]; + $32 = $6 * $31; + $33 = $29 + $32; + $34 = ((($1)) + 28|0); + $35 = +HEAPF32[$34>>2]; + $36 = $8 * $35; + $37 = $33 + $36; + HEAPF32[$3>>2] = $37; + $38 = ((($1)) + 32|0); + $39 = +HEAPF32[$38>>2]; + $40 = $2 * $39; + $41 = ((($1)) + 36|0); + $42 = +HEAPF32[$41>>2]; + $43 = $4 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 40|0); + $46 = +HEAPF32[$45>>2]; + $47 = $6 * $46; + $48 = $44 + $47; + $49 = ((($1)) + 44|0); + $50 = +HEAPF32[$49>>2]; + $51 = $8 * $50; + $52 = $48 + $51; + HEAPF32[$5>>2] = $52; + $53 = ((($1)) + 48|0); + $54 = +HEAPF32[$53>>2]; + $55 = $2 * $54; + $56 = ((($1)) + 52|0); + $57 = +HEAPF32[$56>>2]; + $58 = $4 * $57; + $59 = $55 + $58; + $60 = ((($1)) + 56|0); + $61 = +HEAPF32[$60>>2]; + $62 = $6 * $61; + $63 = $59 + $62; + $64 = ((($1)) + 60|0); + $65 = +HEAPF32[$64>>2]; + $66 = $8 * $65; + $67 = $63 + $66; + HEAPF32[$7>>2] = $67; + return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[4696] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 18096; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 18136; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[4534]; + $111 = +HEAPF32[4524]; + $112 = $110 - $111; + HEAPF32[4536] = $112; + $113 = +HEAPF32[(18140)>>2]; + $114 = +HEAPF32[(18100)>>2]; + $115 = $113 - $114; + HEAPF32[(18148)>>2] = $115; + HEAP32[4695] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18128>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18128+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18152>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18152+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[4701] = $116; + $117 = 18128; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 18096; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 18152; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 18136; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 18128; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 18152; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[4538]; + $160 = +HEAPF32[4532]; + $161 = $159 - $160; + HEAPF32[4536] = $161; + $162 = +HEAPF32[(18156)>>2]; + $163 = +HEAPF32[(18132)>>2]; + $164 = $162 - $163; + HEAPF32[(18148)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18096>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18096+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18128>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18128+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18136>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18136+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18152>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18152+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18128>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18128+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18152>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18152+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[4701]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[4695] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18128>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18128+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18152>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18152+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[4702] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[4701] = 0.0; + HEAPF32[4702] = 0.0; + HEAPF32[4536] = 0.0; + HEAPF32[(18148)>>2] = 0.0; + HEAP32[4696] = 0; + HEAP32[4695] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[4697]|0; + $7 = (($6) + 1)|0; + HEAP32[4697] = $7; + $8 = HEAP32[4695]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18096>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18096+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[4695] = 2; + HEAP32[4697] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[4697] = 1; + HEAP32[4695] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 18096; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 18104; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 18112; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[11] = $34; + HEAPF32[4530] = 0.0; + HEAPF32[(18124)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[4695]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 18112; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18096>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18096+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18112>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18112+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[4698] = $49; + HEAP32[4699] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[11]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18096>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18096+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18112>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18112+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[4700] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[4698] = 0.0; + HEAPF32[4700] = 0.0; + $$sink10 = 0; + } + HEAP32[4695] = $$sink10; + HEAPF32[4526] = 0.0; + HEAPF32[(18108)>>2] = 0.0; + HEAP32[4696] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[4699]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[4699] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 18128; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[4695]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[18096>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[18096+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[18128>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[18128+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[4695] = 8; + } + } + $82 = +HEAPF32[4532]; + $83 = +HEAPF32[4526]; + $84 = $82 - $83; + HEAPF32[4530] = $84; + $85 = +HEAPF32[(18132)>>2]; + $86 = +HEAPF32[(18108)>>2]; + $87 = $85 - $86; + HEAPF32[(18124)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4695]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[4696]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[4695] = 4; + } + $4 = HEAP32[4695]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[4695] = 0; + return; +} +function _SetCameraMode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$023$0$$sroa_idx = 0, $$sroa$023$0$copyload = 0.0, $$sroa$030$0$copyload = 0.0, $$sroa$4$0$$sroa_idx25 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$432$0$$sroa_idx33 = 0, $$sroa$432$0$copyload = 0.0, $$sroa$527$0$$sroa_idx28 = 0, $$sroa$527$0$copyload = 0.0, $$sroa$535$0$$sroa_idx36 = 0, $$sroa$535$0$copyload = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0; + var $19 = 0.0, $2 = 0.0, $20 = 0.0, $21 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $$sroa$030$0$copyload = +HEAPF32[$0>>2]; + $$sroa$432$0$$sroa_idx33 = ((($0)) + 4|0); + $$sroa$432$0$copyload = +HEAPF32[$$sroa$432$0$$sroa_idx33>>2]; + $$sroa$535$0$$sroa_idx36 = ((($0)) + 8|0); + $$sroa$535$0$copyload = +HEAPF32[$$sroa$535$0$$sroa_idx36>>2]; + $$sroa$023$0$$sroa_idx = ((($0)) + 12|0); + $$sroa$023$0$copyload = +HEAPF32[$$sroa$023$0$$sroa_idx>>2]; + $$sroa$4$0$$sroa_idx25 = ((($0)) + 16|0); + $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx25>>2]; + $$sroa$527$0$$sroa_idx28 = ((($0)) + 20|0); + $$sroa$527$0$copyload = +HEAPF32[$$sroa$527$0$$sroa_idx28>>2]; + $2 = $$sroa$023$0$copyload - $$sroa$030$0$copyload; + $3 = $$sroa$4$0$copyload - $$sroa$432$0$copyload; + $4 = $$sroa$527$0$copyload - $$sroa$535$0$copyload; + $5 = $2 * $2; + $6 = $3 * $3; + $7 = $5 + $6; + $8 = $4 * $4; + $9 = $7 + $8; + $10 = (+Math_sqrt((+$9))); + HEAPF32[4703] = $10; + $11 = $5 + $8; + $12 = (+Math_sqrt((+$11))); + $13 = (+Math_sqrt((+$7))); + $14 = (+Math_abs((+$2))); + $15 = $14 / $12; + $16 = (+Math_asin((+$15))); + HEAPF32[4704] = $16; + $17 = (+Math_abs((+$3))); + $18 = $17 / $13; + $19 = (+Math_asin((+$18))); + $20 = -$19; + HEAPF32[4705] = $20; + $21 = HEAP32[$$sroa$432$0$$sroa_idx33>>2]|0; + HEAP32[12] = $21; + HEAP32[4706] = $1; + return; +} +function _UpdateCamera($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$byval_copy3 = 0, $$not = 0, $$not188 = 0, $$off187 = 0, $$pr = 0, $$pr190 = 0, $$sink = 0.0, $$sink17 = 0, $$sink22 = 0.0, $$sink22$p = 0.0, $$sink26 = 0.0, $$sink28 = 0.0, $$sroa$095$0 = 0.0, $$sroa$9$0 = 0.0, $1 = 0, $10 = 0, $100 = 0.0, $101 = 0.0; + var $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0; + var $120 = 0.0, $121 = 0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0.0; + var $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0, $152 = 0.0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0; + var $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0, $168 = 0.0, $169 = 0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0; + var $175 = 0.0, $176 = 0, $177 = 0.0, $178 = 0.0, $179 = 0.0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0.0, $185 = 0.0, $186 = 0.0, $187 = 0.0, $188 = 0.0, $189 = 0.0, $19 = 0, $190 = 0.0, $191 = 0, $192 = 0.0; + var $193 = 0, $194 = 0.0, $195 = 0.0, $196 = 0.0, $197 = 0.0, $198 = 0.0, $199 = 0.0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0.0, $205 = 0.0, $206 = 0.0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; + var $210 = 0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $214 = 0.0, $215 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0.0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0.0, $228 = 0.0; + var $229 = 0.0, $23 = 0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0.0, $234 = 0.0, $235 = 0.0, $236 = 0, $237 = 0.0, $238 = 0.0, $239 = 0.0, $24 = 0, $240 = 0.0, $241 = 0.0, $242 = 0, $243 = 0.0, $244 = 0.0, $245 = 0.0, $246 = 0.0; + var $247 = 0.0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0.0, $251 = 0, $252 = 0.0, $253 = 0.0, $254 = 0.0, $255 = 0.0, $256 = 0.0, $257 = 0.0, $258 = 0.0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0.0; + var $265 = 0.0, $266 = 0, $267 = 0.0, $268 = 0.0, $269 = 0, $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0.0, $273 = 0.0, $274 = 0, $275 = 0.0, $276 = 0.0, $277 = 0.0, $278 = 0, $279 = 0.0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0.0; + var $283 = 0.0, $284 = 0.0, $285 = 0.0, $286 = 0.0, $287 = 0.0, $288 = 0.0, $289 = 0.0, $29 = 0, $290 = 0, $291 = 0.0, $292 = 0.0, $293 = 0, $294 = 0.0, $295 = 0.0, $296 = 0.0, $297 = 0, $298 = 0.0, $299 = 0.0, $3 = 0, $30 = 0; + var $300 = 0.0, $301 = 0.0, $302 = 0.0, $303 = 0.0, $304 = 0.0, $305 = 0.0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0.0, $314 = 0.0, $315 = 0.0, $316 = 0.0, $317 = 0.0, $318 = 0.0; + var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0.0, $324 = 0.0, $325 = 0.0, $326 = 0.0, $327 = 0, $328 = 0.0, $329 = 0.0, $33 = 0, $330 = 0.0, $331 = 0.0, $332 = 0.0, $333 = 0.0, $334 = 0.0, $335 = 0.0, $336 = 0; + var $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0.0, $341 = 0.0, $342 = 0.0, $343 = 0.0, $344 = 0, $345 = 0, $346 = 0.0, $347 = 0.0, $348 = 0.0, $349 = 0.0, $35 = 0, $350 = 0.0, $351 = 0, $352 = 0.0, $353 = 0.0, $354 = 0.0; + var $355 = 0.0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0.0, $36 = 0, $360 = 0.0, $361 = 0.0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0.0, $367 = 0, $368 = 0.0, $369 = 0.0, $37 = 0.0, $370 = 0.0, $371 = 0.0, $372 = 0.0; + var $373 = 0.0, $374 = 0.0, $375 = 0.0, $376 = 0, $377 = 0.0, $378 = 0.0, $379 = 0, $38 = 0.0, $380 = 0, $381 = 0.0, $382 = 0.0, $383 = 0.0, $384 = 0.0, $385 = 0.0, $386 = 0.0, $387 = 0.0, $388 = 0, $389 = 0.0, $39 = 0.0, $390 = 0.0; + var $391 = 0, $392 = 0.0, $393 = 0.0, $394 = 0, $395 = 0.0, $396 = 0.0, $397 = 0.0, $398 = 0.0, $399 = 0, $4 = 0, $40 = 0, $400 = 0.0, $401 = 0.0, $402 = 0.0, $403 = 0, $404 = 0.0, $405 = 0.0, $406 = 0, $407 = 0, $408 = 0; + var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; + var $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0; + var $7 = 0, $70 = 0.0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0, $87 = 0; + var $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0.0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond189 = 0, $or$cond3 = 0; + var $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $storemerge = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy3 = sp + 72|0; + $1 = sp + 56|0; + $2 = sp + 16|0; + $3 = sp + 64|0; + $4 = sp + 48|0; + $5 = sp + 40|0; + $6 = sp + 8|0; + $7 = sp; + _GetMousePosition($1); + $8 = (_GetMouseWheelMove()|0); + $9 = HEAP32[13]|0; + $10 = (_IsMouseButtonDown($9)|0); + $11 = HEAP32[14]|0; + $12 = (_IsKeyDown($11)|0); + $13 = HEAP32[15]|0; + $14 = (_IsKeyDown($13)|0); + $15 = HEAP32[16]|0; + $16 = (_IsKeyDown($15)|0); + HEAP32[$2>>2] = $16; + $17 = ((($2)) + 4|0); + $18 = HEAP32[17]|0; + $19 = (_IsKeyDown($18)|0); + HEAP32[$17>>2] = $19; + $20 = ((($2)) + 8|0); + $21 = HEAP32[18]|0; + $22 = (_IsKeyDown($21)|0); + HEAP32[$20>>2] = $22; + $23 = ((($2)) + 12|0); + $24 = HEAP32[19]|0; + $25 = (_IsKeyDown($24)|0); + HEAP32[$23>>2] = $25; + $26 = ((($2)) + 16|0); + $27 = HEAP32[20]|0; + $28 = (_IsKeyDown($27)|0); + HEAP32[$26>>2] = $28; + $29 = ((($2)) + 20|0); + $30 = HEAP32[21]|0; + $31 = (_IsKeyDown($30)|0); + HEAP32[$29>>2] = $31; + $32 = HEAP32[4706]|0; + $33 = ($32|0)==(0); + L1: do { + if ($33) { + label = 58; + } else { + $34 = (_GetScreenWidth()|0); + $35 = (_GetScreenHeight()|0); + $$off187 = (($32) + -3)|0; + $36 = ($$off187>>>0)<(2); + do { + if ($36) { + _HideCursor(); + $37 = +HEAPF32[$1>>2]; + $38 = (+($35|0)); + $39 = $38 / 3.0; + $40 = $37 < $39; + $41 = ((($1)) + 4|0); + $42 = +HEAPF32[$41>>2]; + if ($40) { + $43 = (($35|0) / 3)&-1; + $44 = (($34) - ($43))|0; + $45 = (+($44|0)); + HEAPF32[$3>>2] = $45; + $46 = ((($3)) + 4|0); + HEAPF32[$46>>2] = $42; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$3+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $47 = $42 < $39; + if ($47) { + HEAPF32[$4>>2] = $37; + $48 = ((($4)) + 4|0); + $49 = (($35|0) / 3)&-1; + $50 = (($35) - ($49))|0; + $51 = (+($50|0)); + HEAPF32[$48>>2] = $51; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $52 = (+($34|0)); + $53 = $52 - $39; + $54 = $37 > $53; + if ($54) { + $55 = (($35|0) / 3)&-1; + $56 = (+($55|0)); + HEAPF32[$5>>2] = $56; + $57 = ((($5)) + 4|0); + $58 = HEAP32[$41>>2]|0; + HEAP32[$57>>2] = $58; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$5+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } + $59 = $38 - $39; + $60 = $42 > $59; + if ($60) { + HEAPF32[$6>>2] = $37; + $61 = ((($6)) + 4|0); + $62 = (($35|0) / 3)&-1; + $63 = (+($62|0)); + HEAPF32[$61>>2] = $63; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0; + _SetMousePosition($$byval_copy3); + $$sroa$095$0 = 0.0;$$sroa$9$0 = 0.0; + break; + } else { + $64 = +HEAPF32[4540]; + $65 = $37 - $64; + $66 = +HEAPF32[(18164)>>2]; + $67 = $42 - $66; + $$sroa$095$0 = $65;$$sroa$9$0 = $67; + break; + } + } else { + _ShowCursor(); + $68 = +HEAPF32[$1>>2]; + $69 = +HEAPF32[4540]; + $70 = $68 - $69; + $71 = ((($1)) + 4|0); + $72 = +HEAPF32[$71>>2]; + $73 = +HEAPF32[(18164)>>2]; + $74 = $72 - $73; + $$sroa$095$0 = $70;$$sroa$9$0 = $74; + } + } while(0); + _GetMousePosition($7); + $75 = $7; + $76 = $75; + $77 = HEAP32[$76>>2]|0; + $78 = (($75) + 4)|0; + $79 = $78; + $80 = HEAP32[$79>>2]|0; + $81 = 18160; + $82 = $81; + HEAP32[$82>>2] = $77; + $83 = (($81) + 4)|0; + $84 = $83; + HEAP32[$84>>2] = $80; + $$pr = HEAP32[4706]|0; + switch ($$pr|0) { + case 1: { + $85 = +HEAPF32[4703]; + $86 = $85 < 120.0; + $87 = ($8|0)<(0); + $or$cond3 = $87 & $86; + do { + if ($or$cond3) { + $88 = (+($8|0)); + $89 = $88 * 1.5; + $90 = $85 - $89; + HEAPF32[4703] = $90; + $91 = $90 > 120.0; + if ($91) { + HEAPF32[4703] = 120.0; + } + } else { + $92 = ((($0)) + 4|0); + $93 = +HEAPF32[$92>>2]; + $94 = ((($0)) + 12|0); + $95 = ((($0)) + 16|0); + $96 = +HEAPF32[$95>>2]; + $97 = $93 > $96; + $98 = $85 == 120.0; + $or$cond5 = $98 & $97; + $or$cond7 = $87 & $or$cond5; + if ($or$cond7) { + $99 = (+($8|0)); + $100 = +HEAPF32[$94>>2]; + $101 = +HEAPF32[$0>>2]; + $102 = $100 - $101; + $103 = $99 * $102; + $104 = $103 * 1.5; + $105 = $104 / $85; + $106 = $100 + $105; + HEAPF32[$94>>2] = $106; + $107 = $96 - $93; + $108 = $99 * $107; + $109 = $108 * 1.5; + $110 = $109 / $85; + $111 = $96 + $110; + HEAPF32[$95>>2] = $111; + $112 = ((($0)) + 20|0); + $113 = +HEAPF32[$112>>2]; + $114 = ((($0)) + 8|0); + $115 = +HEAPF32[$114>>2]; + $116 = $113 - $115; + $117 = $99 * $116; + $118 = $117 * 1.5; + $119 = $118 / $85; + $120 = $113 + $119; + HEAPF32[$112>>2] = $120; + break; + } + $$not = $97 ^ 1; + $121 = !($96 >= 0.0); + $or$cond = $121 | $$not; + if (!($or$cond)) { + $122 = (+($8|0)); + $123 = +HEAPF32[$94>>2]; + $124 = +HEAPF32[$0>>2]; + $125 = $123 - $124; + $126 = $122 * $125; + $127 = $126 * 1.5; + $128 = $127 / $85; + $129 = $123 + $128; + HEAPF32[$94>>2] = $129; + $130 = $96 - $93; + $131 = $122 * $130; + $132 = $131 * 1.5; + $133 = $132 / $85; + $134 = $96 + $133; + HEAPF32[$95>>2] = $134; + $135 = ((($0)) + 20|0); + $136 = +HEAPF32[$135>>2]; + $137 = ((($0)) + 8|0); + $138 = +HEAPF32[$137>>2]; + $139 = $136 - $138; + $140 = $122 * $139; + $141 = $140 * 1.5; + $142 = $141 / $85; + $143 = $136 + $142; + HEAPF32[$135>>2] = $143; + break; + } + if ($97) { + $144 = $96 < 0.0; + $145 = ($8|0)>(0); + $or$cond9 = $145 & $144; + if ($or$cond9) { + $146 = (+($8|0)); + $147 = $146 * 1.5; + $148 = $85 - $147; + HEAPF32[4703] = $148; + $149 = $148 < 0.30000001192092896; + if (!($149)) { + break; + } + HEAPF32[4703] = 0.30000001192092896; + break; + } + } + $150 = $93 < $96; + $or$cond11 = $98 & $150; + $or$cond13 = $87 & $or$cond11; + $151 = +HEAPF32[$95>>2]; + $152 = +HEAPF32[$92>>2]; + if ($or$cond13) { + $153 = (+($8|0)); + $154 = +HEAPF32[$94>>2]; + $155 = +HEAPF32[$0>>2]; + $156 = $154 - $155; + $157 = $153 * $156; + $158 = $157 * 1.5; + $159 = $158 / $85; + $160 = $154 + $159; + HEAPF32[$94>>2] = $160; + $161 = $151 - $152; + $162 = $153 * $161; + $163 = $162 * 1.5; + $164 = +HEAPF32[4703]; + $165 = $163 / $164; + $166 = $151 + $165; + HEAPF32[$95>>2] = $166; + $167 = ((($0)) + 20|0); + $168 = +HEAPF32[$167>>2]; + $169 = ((($0)) + 8|0); + $170 = +HEAPF32[$169>>2]; + $171 = $168 - $170; + $172 = $153 * $171; + $173 = $172 * 1.5; + $174 = $173 / $164; + $175 = $168 + $174; + HEAPF32[$167>>2] = $175; + break; + } + $$not188 = $150 ^ 1; + $176 = !($96 <= 0.0); + $or$cond189 = $176 | $$not188; + if (!($or$cond189)) { + $177 = (+($8|0)); + $178 = +HEAPF32[$94>>2]; + $179 = +HEAPF32[$0>>2]; + $180 = $178 - $179; + $181 = $177 * $180; + $182 = $181 * 1.5; + $183 = $182 / $85; + $184 = $178 + $183; + HEAPF32[$94>>2] = $184; + $185 = $151 - $152; + $186 = $177 * $185; + $187 = $186 * 1.5; + $188 = +HEAPF32[4703]; + $189 = $187 / $188; + $190 = $151 + $189; + HEAPF32[$95>>2] = $190; + $191 = ((($0)) + 20|0); + $192 = +HEAPF32[$191>>2]; + $193 = ((($0)) + 8|0); + $194 = +HEAPF32[$193>>2]; + $195 = $192 - $194; + $196 = $177 * $195; + $197 = $196 * 1.5; + $198 = $197 / $188; + $199 = $192 + $198; + HEAPF32[$191>>2] = $199; + break; + } + $200 = $152 < $151; + if ($200) { + $201 = $151 > 0.0; + $202 = ($8|0)>(0); + $or$cond15 = $202 & $201; + if ($or$cond15) { + $203 = (+($8|0)); + $204 = $203 * 1.5; + $205 = +HEAPF32[4703]; + $206 = $205 - $204; + HEAPF32[4703] = $206; + $207 = $206 < 0.30000001192092896; + if ($207) { + HEAPF32[4703] = 0.30000001192092896; + } + } + } + } + } while(0); + $208 = ($10|0)==(0); + if ($208) { + label = 58; + break L1; + } + $209 = ($12|0)==(0); + if ($209) { + $222 = $$sroa$095$0 * -0.0099999997764825821; + $223 = +HEAPF32[4704]; + $224 = (+Math_cos((+$223))); + $225 = $222 * $224; + $226 = $$sroa$9$0 * 0.0099999997764825821; + $227 = (+Math_sin((+$223))); + $228 = $226 * $227; + $229 = +HEAPF32[4705]; + $230 = (+Math_sin((+$229))); + $231 = $228 * $230; + $232 = $225 + $231; + $233 = +HEAPF32[4703]; + $234 = $233 / 5.0999999046325684; + $235 = $232 * $234; + $236 = ((($0)) + 12|0); + $237 = +HEAPF32[$236>>2]; + $238 = $237 + $235; + HEAPF32[$236>>2] = $238; + $239 = (+Math_cos((+$229))); + $240 = $226 * $239; + $241 = $234 * $240; + $242 = ((($0)) + 16|0); + $243 = +HEAPF32[$242>>2]; + $244 = $243 + $241; + HEAPF32[$242>>2] = $244; + $245 = $$sroa$095$0 * 0.0099999997764825821; + $246 = $245 * $227; + $247 = $226 * $224; + $248 = $247 * $230; + $249 = $246 + $248; + $250 = $249 * $234; + $251 = ((($0)) + 20|0); + $252 = +HEAPF32[$251>>2]; + $253 = $250 + $252; + HEAPF32[$251>>2] = $253; + label = 58; + break L1; + } + $210 = ($14|0)==(0); + if (!($210)) { + $211 = $$sroa$9$0 * 0.05000000074505806; + $212 = +HEAPF32[4703]; + $213 = $211 + $212; + HEAPF32[4703] = $213; + label = 58; + break L1; + } + $214 = $$sroa$095$0 * 0.0099999997764825821; + $215 = +HEAPF32[4704]; + $216 = $215 - $214; + HEAPF32[4704] = $216; + $217 = $$sroa$9$0 * 0.0099999997764825821; + $218 = +HEAPF32[4705]; + $219 = $218 - $217; + HEAPF32[4705] = $219; + $220 = $219 > 1.483529806137085; + if ($220) { + HEAPF32[4705] = 1.483529806137085; + label = 58; + break L1; + } + $221 = $219 < -1.483529806137085; + if (!($221)) { + label = 58; + break L1; + } + HEAPF32[4705] = -1.483529806137085; + label = 58; + break L1; + break; + } + case 2: { + $254 = +HEAPF32[4704]; + $255 = $254 + 0.0099999997764825821; + HEAPF32[4704] = $255; + $256 = (+($8|0)); + $257 = $256 * 1.5; + $258 = +HEAPF32[4703]; + $259 = $258 - $257; + HEAPF32[4703] = $259; + $260 = $259 < 1.2000000476837158; + if (!($260)) { + label = 58; + break L1; + } + HEAPF32[4703] = 1.2000000476837158; + label = 58; + break L1; + break; + } + case 4: case 3: { + $264 = +HEAPF32[4704]; + $265 = (+Math_sin((+$264))); + $266 = HEAP32[$17>>2]|0; + $267 = (+($266>>>0)); + $268 = $265 * $267; + $269 = HEAP32[$2>>2]|0; + $270 = (+($269>>>0)); + $271 = $265 * $270; + $272 = $268 - $271; + $273 = (+Math_cos((+$264))); + $274 = HEAP32[$23>>2]|0; + $275 = (+($274>>>0)); + $276 = $273 * $275; + $277 = $272 - $276; + $278 = HEAP32[$20>>2]|0; + $279 = (+($278>>>0)); + $280 = $273 * $279; + $281 = $277 + $280; + $282 = $281 / 20.0; + $283 = +HEAPF32[$0>>2]; + $284 = $283 + $282; + HEAPF32[$0>>2] = $284; + $285 = +HEAPF32[4705]; + $286 = (+Math_sin((+$285))); + $287 = $270 * $286; + $288 = $267 * $286; + $289 = $287 - $288; + $290 = HEAP32[$26>>2]|0; + $291 = (+($290>>>0)); + $292 = $289 + $291; + $293 = HEAP32[$29>>2]|0; + $294 = (+($293>>>0)); + $295 = $292 - $294; + $296 = $295 / 20.0; + $297 = ((($0)) + 4|0); + $298 = +HEAPF32[$297>>2]; + $299 = $298 + $296; + HEAPF32[$297>>2] = $299; + $300 = $267 * $273; + $301 = $273 * $270; + $302 = $300 - $301; + $303 = $265 * $275; + $304 = $302 + $303; + $305 = $265 * $279; + $306 = $304 - $305; + $307 = $306 / 20.0; + $308 = ((($0)) + 8|0); + $309 = +HEAPF32[$308>>2]; + $310 = $307 + $309; + HEAPF32[$308>>2] = $310; + $311 = HEAP32[$2>>2]|0; + $312 = ($311|0)==(0); + if ($312) { + $261 = ((($2)) + 4|0); + $262 = HEAP32[$261>>2]|0; + $263 = ($262|0)==(0); + if ($263) { + $407 = ((($2)) + 8|0); + $408 = HEAP32[$407>>2]|0; + $409 = ($408|0)==(0); + if ($409) { + $410 = ((($2)) + 12|0); + $411 = HEAP32[$410>>2]|0; + $412 = ($411|0)==(0); + if ($412) { + $413 = ((($2)) + 16|0); + $414 = HEAP32[$413>>2]|0; + $415 = ($414|0)==(0); + if ($415) { + $416 = ((($2)) + 20|0); + $417 = HEAP32[$416>>2]|0; + $not$ = ($417|0)!=(0); + $$ = $not$&1; + $$0 = $$; + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + } else { + $$0 = 1; + } + $313 = $$sroa$095$0 * 0.0030000000260770321; + $314 = +HEAPF32[4704]; + $315 = $314 - $313; + HEAPF32[4704] = $315; + $316 = $$sroa$9$0 * 0.0030000000260770321; + $317 = +HEAPF32[4705]; + $318 = $317 - $316; + HEAPF32[4705] = $318; + $319 = HEAP32[4706]|0; + $320 = ($319|0)==(4); + if ($320) { + $321 = $318 > 0.087266460061073303; + if ($321) { + $$sink26 = 0.087266460061073303; + label = 49; + } else { + $322 = $318 < -1.483529806137085; + if ($322) { + $$sink26 = -1.483529806137085; + label = 49; + } + } + if ((label|0) == 49) { + HEAPF32[4705] = $$sink26; + } + $323 = (+($8|0)); + $324 = $323 * 1.5; + $325 = +HEAPF32[4703]; + $326 = $325 - $324; + $327 = $326 < 1.2000000476837158; + $storemerge = $327 ? 1.2000000476837158 : $326; + HEAPF32[4703] = $storemerge; + $328 = +HEAPF32[$0>>2]; + $329 = +HEAPF32[4704]; + $330 = (+Math_cos((+$329))); + $331 = $330 * 0.40000000596046448; + $332 = $328 + $331; + $333 = (+Math_sin((+$329))); + $334 = $333 * 0.0; + $335 = $332 + $334; + $336 = ((($0)) + 12|0); + HEAPF32[$336>>2] = $335; + $337 = +HEAPF32[$297>>2]; + $338 = $337 + 0.0; + $339 = ((($0)) + 16|0); + HEAPF32[$339>>2] = $338; + $340 = +HEAPF32[$308>>2]; + $341 = $334 + $340; + $342 = $333 * 0.40000000596046448; + $343 = $341 - $342; + $$sink = $343;$$sink17 = $336; + } else { + $344 = $318 > 1.483529806137085; + if ($344) { + $$sink28 = 1.483529806137085; + label = 53; + } else { + $345 = $318 < -1.483529806137085; + if ($345) { + $$sink28 = -1.483529806137085; + label = 53; + } + } + if ((label|0) == 53) { + HEAPF32[4705] = $$sink28; + } + $346 = +HEAPF32[$0>>2]; + $347 = +HEAPF32[4704]; + $348 = (+Math_sin((+$347))); + $349 = $348 * 25.0; + $350 = $346 - $349; + $351 = ((($0)) + 12|0); + HEAPF32[$351>>2] = $350; + $352 = +HEAPF32[$297>>2]; + $353 = +HEAPF32[4705]; + $354 = (+Math_sin((+$353))); + $355 = $354 * 25.0; + $356 = $352 + $355; + $357 = ((($0)) + 16|0); + HEAPF32[$357>>2] = $356; + $358 = +HEAPF32[$308>>2]; + $359 = (+Math_cos((+$347))); + $360 = $359 * 25.0; + $361 = $358 - $360; + $362 = ((($0)) + 20|0); + HEAPF32[$362>>2] = $361; + $363 = ($$0|0)==(0); + if (!($363)) { + $364 = HEAP32[4707]|0; + $365 = (($364) + 1)|0; + HEAP32[4707] = $365; + } + $366 = +HEAPF32[12]; + $367 = HEAP32[4707]|0; + $368 = (+($367|0)); + $369 = $368 / 5.0; + $370 = (+Math_sin((+$369))); + $371 = $370 / 30.0; + $372 = $366 - $371; + HEAPF32[$297>>2] = $372; + $373 = $368 / 10.0; + $374 = (+Math_sin((+$373))); + $375 = $374 / 200.0; + $376 = ((($0)) + 24|0); + HEAPF32[$376>>2] = $375; + $377 = -$374; + $378 = $377 / 200.0; + $$sink = $378;$$sink17 = $376; + } + $379 = ((($$sink17)) + 8|0); + HEAPF32[$379>>2] = $$sink; + label = 58; + break L1; + break; + } + default: { + $380 = $$pr; + break L1; + } + } + } + } while(0); + if ((label|0) == 58) { + $$pr190 = HEAP32[4706]|0; + $380 = $$pr190; + } + switch ($380|0) { + case 1: case 2: case 4: { + break; + } + default: { + STACKTOP = sp;return; + } + } + $381 = +HEAPF32[4704]; + $382 = (+Math_sin((+$381))); + $383 = +HEAPF32[4703]; + $384 = $382 * $383; + $385 = +HEAPF32[4705]; + $386 = (+Math_cos((+$385))); + $387 = $384 * $386; + $388 = ((($0)) + 12|0); + $389 = +HEAPF32[$388>>2]; + $390 = $387 + $389; + HEAPF32[$0>>2] = $390; + $391 = !($385 <= 0.0); + $392 = (+Math_sin((+$385))); + $393 = +HEAPF32[4703]; + $394 = ((($0)) + 16|0); + $395 = +HEAPF32[$394>>2]; + $396 = $392 * $393; + $397 = $392 * $396; + $398 = -$397; + $$sink22$p = $391 ? $398 : $397; + $$sink22 = $395 + $$sink22$p; + $399 = ((($0)) + 4|0); + HEAPF32[$399>>2] = $$sink22; + $400 = (+Math_cos((+$381))); + $401 = $393 * $400; + $402 = $386 * $401; + $403 = ((($0)) + 20|0); + $404 = +HEAPF32[$403>>2]; + $405 = $404 + $402; + $406 = ((($0)) + 8|0); + HEAPF32[$406>>2] = $405; + STACKTOP = sp;return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 18168; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _GetMouseWheelMove() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4712]|0; + $1 = (($0|0) / 100)&-1; + return ($1|0); +} +function _IsMouseButtonDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetMouseButtonStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _IsKeyDown($0) { + $0 = $0|0; + var $$ = 0, $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_GetKeyStatus($0)|0); + $2 = ($1|0)==(1); + $$ = $2&1; + return ($$|0); +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4711]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4710]|0; + return ($0|0); +} +function _HideCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4708] = 1; + return; +} +function _SetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = 18168; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + $11 = HEAP32[4709]|0; + $12 = +HEAPF32[$0>>2]; + $13 = $12; + $14 = ((($0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $15; + _glfwSetCursorPos(($11|0),(+$13),(+$16)); + return; +} +function _ShowCursor() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4708] = 0; + return; +} +function _GetKeyStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4709]|0; + $2 = (_glfwGetKey(($1|0),($0|0))|0); + return ($2|0); +} +function _GetMouseButtonStatus($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4709]|0; + $2 = (_glfwGetMouseButton(($1|0),($0|0))|0); + return ($2|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,4685,$vararg_buffer); + HEAP32[4713] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(5|0))|0); + (_emscripten_set_keypress_callback((4714|0),(0|0),1,(6|0))|0); + (_emscripten_set_click_callback((4714|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchstart_callback((4714|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchend_callback((4714|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchmove_callback((4714|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchcancel_callback((4714|0),(0|0),1,(8|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(9|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(9|0))|0); + $3 = HEAP32[4711]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[4542] = $5; + $6 = HEAP32[4710]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(18172)>>2] = $8; + $9 = HEAP32[4714]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[18208>>0]=HEAP8[9214>>0]|0;HEAP8[18208+1>>0]=HEAP8[9214+1>>0]|0;HEAP8[18208+2>>0]=HEAP8[9214+2>>0]|0;HEAP8[18208+3>>0]=HEAP8[9214+3>>0]|0;HEAP8[18208+4>>0]=HEAP8[9214+4>>0]|0;HEAP8[18208+5>>0]=HEAP8[9214+5>>0]|0;HEAP8[18208+6>>0]=HEAP8[9214+6>>0]|0; + break; + } + case 1: { + $3 = 18208; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=18208; src=9221; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 18208; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(18208,$1)|0); + $strlen = (_strlen(18208)|0); + $endptr = (18208 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(18208,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[4711] = $0; + HEAP32[4710] = $1; + _MatrixIdentity($2); + dest=18932; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((2|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,5356,$vararg_buffer); + } + $6 = HEAP32[4711]|0; + HEAP32[4749] = $6; + $7 = HEAP32[4710]|0; + HEAP32[4750] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[21676]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[21676]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[21676]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,5382,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[4751]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[4711]|0; + $48 = HEAP32[4710]|0; + $49 = HEAP32[4713]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[4709] = $50; + $51 = HEAP32[4711]|0; + HEAP32[4752] = $51; + $52 = HEAP32[4710]|0; + HEAP32[4753] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[4711]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[4710]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[4749] = $31; + HEAP32[4750] = $34; + } + } while(0); + $38 = HEAP32[4749]|0; + $39 = HEAP32[4750]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,5407,$vararg_buffer3); + $40 = HEAP32[4749]|0; + $41 = HEAP32[4750]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[4749]|0; + $43 = HEAP32[4750]|0; + $44 = HEAP32[4713]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[4709] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,5445,$vararg_buffer6); + } else { + _TraceLog(0,5478,$vararg_buffer8); + $55 = HEAP32[4752]|0; + $56 = HEAP32[4753]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,5518,$vararg_buffer10); + $57 = HEAP32[4711]|0; + $58 = HEAP32[4710]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,5539,$vararg_buffer14); + $59 = HEAP32[4754]|0; + $60 = HEAP32[4755]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,5560,$vararg_buffer18); + } + $61 = HEAP32[4709]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[4709]|0; + (_glfwSetCursorEnterCallback(($62|0),(3|0))|0); + $63 = HEAP32[4709]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[4709]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[4709]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[4709]|0; + (_glfwSetCharCallback(($66|0),(4|0))|0); + $67 = HEAP32[4709]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[4709]|0; + (_glfwSetWindowIconifyCallback(($68|0),(5|0))|0); + $69 = HEAP32[4709]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[21676]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[4711]|0; + $74 = HEAP32[4710]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4752]|0; + $76 = HEAP32[4754]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4753]|0; + $80 = HEAP32[4755]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,5585,$vararg_buffer22); + $73 = HEAP32[4711]|0; + $74 = HEAP32[4710]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4752]|0; + $76 = HEAP32[4754]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4753]|0; + $80 = HEAP32[4755]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(18900)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (88 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[18876>>2]=HEAP32[$1>>2]|0;HEAP32[18876+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[18876+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[18876+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[18876+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(18900)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(18904)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(18896)>>2] = $23; + $24 = HEAP32[4719]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4909,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(18880)>>2]|0; + $10 = HEAP32[(18900)>>2]|0; + $11 = HEAP32[(18904)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2136 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(18896)>>2] = $23; + $24 = HEAP32[4719]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4909,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[2275] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,4842,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,4773,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,4766)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 18184; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (18192); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (18860 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[2272] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,4722,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4714] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,5256,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[4727]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,4954,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[4728]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,4998,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[4729]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,5043,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[4730]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,5088,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[4731]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,5133,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[4727]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[4727]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[4727]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[4727]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[4728]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[4729]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[4729]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[4730]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[4730]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[4731]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[4731]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,5178,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[4732]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,11944,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,5207,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,5310,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,9176,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[4711]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[4710]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[4752] = $3; + HEAP32[4753] = $5; + HEAP32[4754] = 0; + HEAP32[4755] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,9110,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[4711]|0; + $36 = (+($35|0)); + $37 = HEAP32[4710]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[4752] = $45; + HEAP32[4753] = $37; + $46 = (($45) - ($35))|0; + HEAP32[4754] = $46; + $$sink1 = 0; + } else { + HEAP32[4752] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[4753] = $42; + HEAP32[4754] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[4755] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[4710]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,8967,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[4711]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[4710]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[4752] = $23; + HEAP32[4753] = $1; + $24 = (($0) - ($23))|0; + HEAP32[4754] = $24; + $$sink = 0; + } else { + HEAP32[4752] = $0; + $17 = HEAP32[4710]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[4753] = $20; + HEAP32[4754] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[4755] = $$sink; + $25 = HEAP32[4752]|0; + $26 = (+($25|0)); + $27 = HEAP32[4711]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=18932; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4752] = $0; + HEAP32[4753] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,9045,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[4711] = $1; + HEAP32[4710] = $2; + HEAP32[4752] = $1; + HEAP32[4753] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[759]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (21683 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[758] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (21677 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 18184; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[758] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[5125] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[5124] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,5608,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,5626,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,5644,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,5662,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,5680)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,5682,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,5717)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[4790] = 1; + $27 = (_eglGetProcAddress((5744|0))|0); + HEAP32[4791] = $27; + $28 = (_eglGetProcAddress((5765|0))|0); + HEAP32[4792] = $28; + $29 = (_eglGetProcAddress((5786|0))|0); + HEAP32[4793] = $29; + } + $30 = (_strcmp($24,5810)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[4732] = 1; + } + $32 = (_strcmp($24,5830)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,5862)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,5895)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[4727] = 1; + } + $39 = (_strcmp($24,5935)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,5971)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[4728] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,6004)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[4729] = 1; + } + $47 = (_strcmp($44,6029)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[4730] = 1; + } + $49 = (_strcmp($44,6062)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[4731] = 1; + } + $51 = (_strcmp($44,6098)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[4794] = 1; + _glGetFloatv(34047,(19180|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,6132)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[4796] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[4790]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,6235,$vararg_buffer15); + } else { + _TraceLog(0,6160,$vararg_buffer13); + } + $57 = HEAP32[4732]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,6371,$vararg_buffer19); + } else { + _TraceLog(0,6296,$vararg_buffer17); + } + $59 = HEAP32[4727]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,6463,$vararg_buffer21); + } + $61 = HEAP32[4728]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,6509,$vararg_buffer23); + } + $63 = HEAP32[4729]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,6556,$vararg_buffer25); + } + $65 = HEAP32[4730]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,6607,$vararg_buffer27); + } + $67 = HEAP32[4731]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,6654,$vararg_buffer29); + } + $69 = HEAP32[4794]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[4795]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,6701,$vararg_buffer31); + } + $73 = HEAP32[4796]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,6767,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[4797] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,6871,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,6820,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=19192; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=19248; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[4826] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[4826]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[4827] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[4828] = 1; + $85 = HEAP32[4797]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[4829] = 4; + _MatrixIdentity($4); + dest=19320; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19384); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19448); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19512); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19576); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19640); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19704); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19768); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19832); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19896); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19960); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(20024); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(20088); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(20152); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(20216); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(20280); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=19028; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=19092; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4756] = 19092; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[5086] = $0; + HEAP32[5087] = $1; + _TraceLog(0,6910,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4754]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[4755]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[4752]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[4753]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 19028; + label = 3; + break; + } + case 5888: { + $modelview$sink = 19092; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[4756] = $modelview$sink; + } + HEAP32[4789] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[4756]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4756]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(7486|0),489)|0; + _memcpy(($3|0),(7975|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,8464,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,8416,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(20364)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(20372)>>2] = $1; + HEAP32[(20368)>>2] = 0; + HEAP32[(20376)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(20372)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[5088] = 0; + HEAP32[(20360)>>2] = 0; + HEAP32[(20356)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(20412)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(20420)>>2] = $6; + HEAP32[(20416)>>2] = 0; + HEAP32[(20424)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(20420)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[5100] = 0; + HEAP32[(20408)>>2] = 0; + HEAP32[(20404)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(20460)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(20464)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(20468)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(20472)>>2] = $13; + $14 = HEAP32[(20460)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(20464)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(20468)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(20472)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[5112] = 0; + HEAP32[(20452)>>2] = 0; + HEAP32[(20456)>>2] = 0; + _TraceLog(0,6957,$vararg_buffer); + $20 = HEAP32[4790]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[4791]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(20380)); + $44 = HEAP32[4792]|0; + $45 = HEAP32[(20380)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((20384)|0)); + $46 = HEAP32[(20384)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(20364)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(19252)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(19252)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((20388)|0)); + $50 = HEAP32[(20388)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(20372)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(19272)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(19272)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[4790]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(20384)>>2]|0; + $58 = HEAP32[(20388)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,7095,$vararg_buffer3); + } else { + $56 = HEAP32[(20380)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,7030,$vararg_buffer1); + } + $59 = HEAP32[4790]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[4791]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(20428)); + $62 = HEAP32[4792]|0; + $63 = HEAP32[(20428)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((20432)|0)); + $64 = HEAP32[(20432)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(20412)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(19252)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(19252)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((20436)|0)); + $68 = HEAP32[(20436)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(20420)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(19272)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(19272)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[4790]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(20432)>>2]|0; + $76 = HEAP32[(20436)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,7241,$vararg_buffer10); + } else { + $74 = HEAP32[(20428)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,7172,$vararg_buffer7); + } + $77 = HEAP32[4790]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[4791]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(20476)); + $80 = HEAP32[4792]|0; + $81 = HEAP32[(20476)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((20480)|0)); + $82 = HEAP32[(20480)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(20460)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(19252)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(19252)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((20484)|0)); + $86 = HEAP32[(20484)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(20464)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(19256)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(19256)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((20488)|0)); + $90 = HEAP32[(20488)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(20468)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(19272)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(19272)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((20492)|0)); + $94 = HEAP32[(20492)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(20472)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[4790]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(20480)>>2]|0; + $100 = HEAP32[(20484)>>2]|0; + $101 = HEAP32[(20488)>>2]|0; + $102 = HEAP32[(20492)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,7387,$vararg_buffer17); + } else { + $98 = HEAP32[(20476)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,7322,$vararg_buffer14); + } + $103 = HEAP32[4790]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[4792]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,8720,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,8668,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,8717,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,8821,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,8770,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,8717,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(8512|0)); + _glBindAttribLocation(($20|0),1,(8527|0)); + _glBindAttribLocation(($20|0),2,(8558|0)); + _glBindAttribLocation(($20|0),3,(8585|0)); + _glBindAttribLocation(($20|0),4,(8571|0)); + _glBindAttribLocation(($20|0),5,(8542|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,8873,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,8717,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,8919,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(8512|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(8527|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(8542|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(8558|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(8571|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(8585|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(8597|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(8607|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(8618|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(8629|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(8641|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(8650|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(8659|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (21677 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (21680 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (21677 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (21680 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[4709]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,9231,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[18876>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[18876+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[18876+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[18876+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[18876+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(18904)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(19188|0)); + $0 = HEAP32[4797]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,9258,$vararg_buffer); + $1 = HEAP32[4827]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[4798]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4790]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4792]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((20384)|0)); + _glDeleteBuffers(1,((20388)|0)); + _glDeleteBuffers(1,((20432)|0)); + _glDeleteBuffers(1,((20436)|0)); + _glDeleteBuffers(1,((20480)|0)); + _glDeleteBuffers(1,((20484)|0)); + _glDeleteBuffers(1,((20488)|0)); + _glDeleteBuffers(1,((20492)|0)); + $3 = HEAP32[4790]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4793]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(20380)); + $6 = HEAP32[4793]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(20428)); + $7 = HEAP32[4793]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(20476)); + } + $8 = HEAP32[(20364)>>2]|0; + _free($8); + $9 = HEAP32[(20372)>>2]|0; + _free($9); + $10 = HEAP32[(20412)>>2]|0; + _free($10); + $11 = HEAP32[(20420)>>2]|0; + _free($11); + $12 = HEAP32[(20460)>>2]|0; + _free($12); + $13 = HEAP32[(20464)>>2]|0; + _free($13); + $14 = HEAP32[(20468)>>2]|0; + _free($14); + $15 = HEAP32[(20472)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,9323,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[2292] = $0; + $1 = +HEAPF64[2275]; + $2 = $0 - $1; + HEAPF64[2293] = $2; + HEAPF64[2275] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=18932; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(20504); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[5126] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(20508)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(20512)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(20516)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(20520)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(20524)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(20528)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(20532)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(20536)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(20540)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(20544)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(20548)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(20552)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(20556)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(20560)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(20564)>>2] = $31; + return (20504|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[4756]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[2292] = $0; + $1 = +HEAPF64[2275]; + $2 = $0 - $1; + HEAPF64[2294] = $2; + HEAPF64[2275] = $0; + $3 = +HEAPF64[2293]; + $4 = $2 + $3; + HEAPF64[2295] = $4; + $5 = +HEAPF64[2272]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[2292] = $10; + $11 = +HEAPF64[2275]; + $12 = $10 - $11; + HEAPF64[2275] = $10; + $13 = +HEAPF64[2295]; + $14 = $12 + $13; + HEAPF64[2295] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4709]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[758] = -1; + HEAP32[760] = -1; + HEAP32[5142] = 0; + $3 = HEAP32[4709]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[4542] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(18172)>>2] = $7; + _memcpy((22195|0),(21683|0),512)|0; + ;HEAP8[21680>>0]=HEAP8[21677>>0]|0;HEAP8[21680+1>>0]=HEAP8[21677+1>>0]|0;HEAP8[21680+2>>0]=HEAP8[21677+2>>0]|0; + $8 = HEAP32[5125]|0; + HEAP32[4712] = $8; + HEAP32[5125] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (22707 + ($$05160<<5)|0); + $scevgep67 = (22835 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((22835 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[760] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((20572 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[5142] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[5088]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[4790]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[4792]|0; + $5 = HEAP32[(20380)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(20384)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[5088]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(20364)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(20388)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(20360)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(20372)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[5100]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[4790]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[4792]|0; + $19 = HEAP32[(20428)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(20432)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[5100]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(20412)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(20436)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(20408)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(20420)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[5112]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[4790]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[4792]|0; + $33 = HEAP32[(20476)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(20480)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[5112]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(20460)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(20484)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[5112]|0; + $40 = $39 << 3; + $41 = HEAP32[(20464)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(20488)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[5112]|0; + $44 = $43 << 2; + $45 = HEAP32[(20468)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[4790]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[4792]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=19028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=19092; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[5175]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[5088]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[5100]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[5112]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[4812]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=19092; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=19028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(19276)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(19280)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(19292)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[5088]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[4797]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[4790]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(20384)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(19252)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(19252)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(20388)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(19272)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(19272)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[4792]|0; + $25 = HEAP32[(20380)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[5088]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[4790]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[5100]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[4797]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[4790]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(20432)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(19252)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(19252)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(20436)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(19272)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(19272)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[4792]|0; + $41 = HEAP32[(20428)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[5100]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[4790]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[5112]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[4790]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(20480)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(19252)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(19252)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(20484)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(19256)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(19256)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(20488)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(19272)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(19272)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(20492)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[4792]|0; + $56 = HEAP32[(20476)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[4828]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[4827]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[4827]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[4828]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[4790]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[4790]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[4792]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[4828] = 1; + $5 = HEAP32[4797]|0; + $6 = HEAP32[4827]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[5088] = 0; + HEAP32[(20360)>>2] = 0; + HEAP32[5100] = 0; + HEAP32[(20408)>>2] = 0; + HEAP32[5112] = 0; + HEAP32[(20452)>>2] = 0; + HEAP32[(20456)>>2] = 0; + HEAPF32[761] = -1.0; + dest=19028; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=19092; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[5086]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[5087]|0; + _rlViewport($7,0,$8,$9); + $10 = (20932 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (20804 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=19092; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=19028; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[4711]|0; + $3 = (+($2|0)); + $4 = HEAP32[4710]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(20504); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[5265]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,9373,$vararg_buffer); + } + $2 = HEAP32[5265]|0; + $3 = (19320 + ($2<<6)|0); + $4 = HEAP32[4756]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[5265]|0; + $6 = (($5) + 1)|0; + HEAP32[5265] = $6; + $7 = HEAP32[4789]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[5266] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4756]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[5265]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[5265]|0; + $3 = (($2) + -1)|0; + $4 = (19320 + ($3<<6)|0); + $5 = HEAP32[4756]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[5265] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[2295]; + $1 = $0; + return (+$1); +} +function _IsFileExtension($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strrchr($0,46)|0); + $3 = ($2|0)==(0|0); + if ($3) { + return 0; + } else { + $4 = (_strcmp($2,$1)|0); + $5 = ($4|0)==(0); + $$ = $5&1; + return ($$|0); + } + return (0)|0; +} +function _GetMouseRay($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy10 = 0, $$byval_copy9 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0; + var $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0; + var $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0; + var $7 = 0, $8 = 0, $9 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); + $$byval_copy10 = sp; + $$byval_copy9 = sp + 352|0; + $$byval_copy = sp + 288|0; + $3 = sp + 264|0; + $4 = sp + 200|0; + $5 = sp + 136|0; + $6 = sp + 120|0; + $7 = sp + 104|0; + $8 = sp + 88|0; + $9 = sp + 76|0; + $10 = sp + 64|0; + $11 = +HEAPF32[$1>>2]; + $12 = $11 * 2.0; + $13 = (_GetScreenWidth()|0); + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = $15 + -1.0; + $17 = ((($1)) + 4|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 * 2.0; + $20 = (_GetScreenHeight()|0); + $21 = (+($20|0)); + $22 = $19 / $21; + $23 = 1.0 - $22; + $24 = $16; + $25 = $23; + HEAPF64[$$byval_copy10>>3] = $24; + $vararg_ptr1 = ((($$byval_copy10)) + 8|0); + HEAPF64[$vararg_ptr1>>3] = $25; + $vararg_ptr2 = ((($$byval_copy10)) + 16|0); + HEAPF64[$vararg_ptr2>>3] = 1.0; + _TraceLog(3,9411,$$byval_copy10); + $26 = ((($2)) + 36|0); + $27 = +HEAPF32[$26>>2]; + $28 = $27; + $29 = (_GetScreenWidth()|0); + $30 = (+($29|0)); + $31 = (_GetScreenHeight()|0); + $32 = (+($31|0)); + $33 = $30 / $32; + _MatrixPerspective($4,$28,$33,0.01,1000.0); + $34 = ((($2)) + 12|0); + $35 = ((($2)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0; + ;HEAP32[$$byval_copy9>>2]=HEAP32[$34>>2]|0;HEAP32[$$byval_copy9+4>>2]=HEAP32[$34+4>>2]|0;HEAP32[$$byval_copy9+8>>2]=HEAP32[$34+8>>2]|0; + ;HEAP32[$$byval_copy10>>2]=HEAP32[$35>>2]|0;HEAP32[$$byval_copy10+4>>2]=HEAP32[$35+4>>2]|0;HEAP32[$$byval_copy10+8>>2]=HEAP32[$35+8>>2]|0; + _MatrixLookAt($5,$$byval_copy,$$byval_copy9,$$byval_copy10); + _MatrixTranspose($5); + dest=$$byval_copy9; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy10; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($$byval_copy,$$byval_copy9,$$byval_copy10); + _MatrixInvert($$byval_copy); + HEAPF32[$6>>2] = $16; + $36 = ((($6)) + 4|0); + HEAPF32[$36>>2] = $23; + $37 = ((($6)) + 8|0); + HEAPF32[$37>>2] = 0.0; + $38 = ((($6)) + 12|0); + HEAPF32[$38>>2] = 1.0; + HEAPF32[$7>>2] = $16; + $39 = ((($7)) + 4|0); + HEAPF32[$39>>2] = $23; + $40 = ((($7)) + 8|0); + HEAPF32[$40>>2] = 1.0; + $41 = ((($7)) + 12|0); + HEAPF32[$41>>2] = 1.0; + dest=$$byval_copy10; src=$$byval_copy; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _QuaternionTransform($6,$$byval_copy10); + dest=$$byval_copy10; src=$$byval_copy; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _QuaternionTransform($7,$$byval_copy10); + $42 = +HEAPF32[$6>>2]; + $43 = +HEAPF32[$38>>2]; + $44 = $42 / $43; + HEAPF32[$8>>2] = $44; + $45 = ((($8)) + 4|0); + $46 = +HEAPF32[$36>>2]; + $47 = $46 / $43; + HEAPF32[$45>>2] = $47; + $48 = ((($8)) + 8|0); + $49 = +HEAPF32[$37>>2]; + $50 = +HEAPF32[$38>>2]; + $51 = $49 / $50; + HEAPF32[$48>>2] = $51; + $52 = +HEAPF32[$7>>2]; + $53 = +HEAPF32[$41>>2]; + $54 = $52 / $53; + HEAPF32[$9>>2] = $54; + $55 = ((($9)) + 4|0); + $56 = +HEAPF32[$39>>2]; + $57 = $56 / $53; + HEAPF32[$55>>2] = $57; + $58 = ((($9)) + 8|0); + $59 = +HEAPF32[$40>>2]; + $60 = +HEAPF32[$41>>2]; + $61 = $59 / $60; + HEAPF32[$58>>2] = $61; + ;HEAP32[$$byval_copy9>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy9+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy9+8>>2]=HEAP32[$9+8>>2]|0; + ;HEAP32[$$byval_copy10>>2]=HEAP32[$8>>2]|0;HEAP32[$$byval_copy10+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$$byval_copy10+8>>2]=HEAP32[$8+8>>2]|0; + _VectorSubtract($10,$$byval_copy9,$$byval_copy10); + _VectorNormalize($10); + ;HEAP32[$3>>2]=HEAP32[$2>>2]|0;HEAP32[$3+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$2+8>>2]|0; + $62 = ((($3)) + 12|0); + ;HEAP32[$62>>2]=HEAP32[$10>>2]|0;HEAP32[$62+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$62+8>>2]=HEAP32[$10+8>>2]|0; + ;HEAP32[$0>>2]=HEAP32[$3>>2]|0;HEAP32[$0+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$3+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$3+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$3+20>>2]|0; + STACKTOP = sp;return; +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[4756]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[4756]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4829] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[5266]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[5267]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[4826]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[4756]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[5267]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[5266] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[4826]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[5267]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[5266] = 0; + } + HEAP32[5267] = 0; + } + $21 = HEAP32[4829]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[5088]|0; + $23 = HEAP32[(20360)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(20372)>>2]|0; + $28 = HEAP32[(20360)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(20372)>>2]|0; + $35 = HEAP32[(20360)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(20372)>>2]|0; + $43 = HEAP32[(20360)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(20372)>>2]|0; + $51 = HEAP32[(20360)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(20360)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(20360)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[5100]|0; + $62 = HEAP32[(20408)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(20420)>>2]|0; + $67 = HEAP32[(20408)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(20420)>>2]|0; + $74 = HEAP32[(20408)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(20420)>>2]|0; + $82 = HEAP32[(20408)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(20420)>>2]|0; + $90 = HEAP32[(20408)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(20408)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(20408)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[5112]|0; + $101 = HEAP32[(20456)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(20468)>>2]|0; + $106 = HEAP32[(20456)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(20468)>>2]|0; + $113 = HEAP32[(20456)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(20468)>>2]|0; + $121 = HEAP32[(20456)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(20468)>>2]|0; + $129 = HEAP32[(20456)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(20456)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(20456)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[5112]|0; + $140 = HEAP32[(20452)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(20464)>>2]|0; + $$promoted = HEAP32[(20452)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(20452)>>2] = $147; + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[761]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[761] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[5266]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4826]|0; + $6 = HEAP32[5267]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[5267] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[4829]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[5088]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(20364)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[5088] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,9444,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[5100]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(20412)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[5100] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,9469,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[5112]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(20460)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[5112] = $41; + $42 = HEAP32[4827]|0; + $43 = HEAP32[4828]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,9498,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[761]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[4829]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(20464)>>2]|0; + $5 = HEAP32[(20452)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(20452)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[4829]|0; + switch ($4|0) { + case 1: { + $$sink37 = (20360);$$sink38 = (20372); + break; + } + case 4: { + $$sink37 = (20408);$$sink38 = (20420); + break; + } + case 7: { + $$sink37 = (20456);$$sink38 = (20468); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlColor3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $0 * 255.0; + $4 = (~~(($3))&255); + $5 = $1 * 255.0; + $6 = (~~(($5))&255); + $7 = $2 * 255.0; + $8 = (~~(($7))&255); + _rlColor4ub($4,$6,$8,-1); + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4827]|0; + $2 = HEAP32[4828]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[4828] = $10; + } + $11 = HEAP32[4828]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[5112]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _rlDeleteVertexArrays($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = HEAP32[4790]|0; + $3 = ($2|0)==(0); + if ($3) { + STACKTOP = sp;return; + } + $4 = ($0|0)==(0); + if (!($4)) { + $5 = HEAP32[4793]|0; + FUNCTION_TABLE_vii[$5 & 63](1,$1); + } + $6 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(0,9523,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteBuffers($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _glDeleteBuffers(1,($1|0)); + $3 = HEAP32[4790]|0; + $4 = ($3|0)==(0); + if (!($4)) { + STACKTOP = sp;return; + } + $5 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $5; + _TraceLog(0,9571,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlglLoadMesh($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 20|0; + $4 = ((($0)) + 36|0); + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 44|0); + $7 = ((($0)) + 48|0); + $8 = ((($0)) + 52|0); + $9 = ((($0)) + 56|0); + $10 = ((($0)) + 60|0); + $11 = ((($0)) + 64|0); + $12 = ($1|0)!=(0); + $$ = $12 ? 35048 : 35044; + ;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;HEAP32[$4+28>>2]=0|0; + HEAP32[$2>>2] = 0; + ;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;HEAP32[$3+16>>2]=0|0;HEAP32[$3+20>>2]=0|0;HEAP32[$3+24>>2]=0|0; + $13 = HEAP32[4790]|0; + $14 = ($13|0)==(0); + if (!($14)) { + $15 = HEAP32[4791]|0; + FUNCTION_TABLE_vii[$15 & 63](1,$2); + $16 = HEAP32[4792]|0; + $17 = HEAP32[$2>>2]|0; + FUNCTION_TABLE_vi[$16 & 31]($17); + } + _glGenBuffers(1,($3|0)); + $18 = HEAP32[$3>>2]|0; + _glBindBuffer(34962,($18|0)); + $19 = HEAP32[$0>>2]|0; + $20 = ($19*12)|0; + $21 = ((($0)) + 8|0); + $22 = HEAP32[$21>>2]|0; + _glBufferData(34962,($20|0),($22|0),($$|0)); + _glVertexAttribPointer(0,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(0); + $23 = ((($3)) + 4|0); + _glGenBuffers(1,($23|0)); + $24 = HEAP32[$23>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[$0>>2]|0; + $26 = $25 << 3; + $27 = ((($0)) + 12|0); + $28 = HEAP32[$27>>2]|0; + _glBufferData(34962,($26|0),($28|0),($$|0)); + _glVertexAttribPointer(1,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(1); + $29 = ((($0)) + 20|0); + $30 = HEAP32[$29>>2]|0; + $31 = ($30|0)==(0|0); + if ($31) { + _glVertexAttrib3f(2,1.0,1.0,1.0); + _glDisableVertexAttribArray(2); + } else { + $32 = ((($3)) + 8|0); + _glGenBuffers(1,($32|0)); + $33 = HEAP32[$32>>2]|0; + _glBindBuffer(34962,($33|0)); + $34 = HEAP32[$0>>2]|0; + $35 = ($34*12)|0; + $36 = HEAP32[$29>>2]|0; + _glBufferData(34962,($35|0),($36|0),($$|0)); + _glVertexAttribPointer(2,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(2); + } + $37 = ((($0)) + 28|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==(0|0); + if ($39) { + _glVertexAttrib4f(3,1.0,1.0,1.0,1.0); + _glDisableVertexAttribArray(3); + } else { + $40 = ((($3)) + 12|0); + _glGenBuffers(1,($40|0)); + $41 = HEAP32[$40>>2]|0; + _glBindBuffer(34962,($41|0)); + $42 = HEAP32[$0>>2]|0; + $43 = $42 << 2; + $44 = HEAP32[$37>>2]|0; + _glBufferData(34962,($43|0),($44|0),($$|0)); + _glVertexAttribPointer(3,4,5121,1,0,(0|0)); + _glEnableVertexAttribArray(3); + } + $45 = ((($0)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(0|0); + if ($47) { + _glVertexAttrib3f(4,0.0,0.0,0.0); + _glDisableVertexAttribArray(4); + } else { + $48 = ((($3)) + 16|0); + _glGenBuffers(1,($48|0)); + $49 = HEAP32[$48>>2]|0; + _glBindBuffer(34962,($49|0)); + $50 = HEAP32[$0>>2]|0; + $51 = ($50*12)|0; + $52 = HEAP32[$45>>2]|0; + _glBufferData(34962,($51|0),($52|0),($$|0)); + _glVertexAttribPointer(4,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(4); + } + $53 = ((($0)) + 16|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==(0|0); + if ($55) { + _glVertexAttrib2f(5,0.0,0.0); + _glDisableVertexAttribArray(5); + } else { + $56 = ((($3)) + 20|0); + _glGenBuffers(1,($56|0)); + $57 = HEAP32[$56>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[$0>>2]|0; + $59 = $58 << 3; + $60 = HEAP32[$53>>2]|0; + _glBufferData(34962,($59|0),($60|0),($$|0)); + _glVertexAttribPointer(5,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(5); + } + $61 = ((($0)) + 32|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $64 = ((($3)) + 24|0); + _glGenBuffers(1,($64|0)); + $65 = HEAP32[$64>>2]|0; + _glBindBuffer(34963,($65|0)); + $66 = ((($0)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = ($67*6)|0; + $69 = HEAP32[$61>>2]|0; + _glBufferData(34963,($68|0),($69|0),35044); + } + $70 = HEAP32[$3>>2]|0; + HEAP32[$5>>2] = $70; + $71 = HEAP32[$23>>2]|0; + HEAP32[$6>>2] = $71; + $72 = ((($3)) + 8|0); + $73 = HEAP32[$72>>2]|0; + HEAP32[$7>>2] = $73; + $74 = ((($3)) + 12|0); + $75 = HEAP32[$74>>2]|0; + HEAP32[$8>>2] = $75; + $76 = ((($3)) + 16|0); + $77 = HEAP32[$76>>2]|0; + HEAP32[$9>>2] = $77; + $78 = ((($3)) + 20|0); + $79 = HEAP32[$78>>2]|0; + HEAP32[$10>>2] = $79; + $80 = ((($3)) + 24|0); + $81 = HEAP32[$80>>2]|0; + HEAP32[$11>>2] = $81; + $82 = HEAP32[4790]|0; + $83 = ($82|0)==(0); + if ($83) { + _TraceLog(0,9720,$vararg_buffer3); + STACKTOP = sp;return; + } + $84 = HEAP32[$2>>2]|0; + $85 = ($84|0)==(0); + if ($85) { + _TraceLog(2,9679,$vararg_buffer1); + STACKTOP = sp;return; + } else { + HEAP32[$4>>2] = $84; + HEAP32[$vararg_buffer>>2] = $84; + _TraceLog(0,9626,$vararg_buffer); + STACKTOP = sp;return; + } +} +function _rlglDrawMesh($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$020 = 0, $$byval_copy5 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; + var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0.0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; + var $17 = 0.0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0.0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $modelview$byval_copy4 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); + $$byval_copy5 = sp + 320|0; + $modelview$byval_copy4 = sp + 256|0; + $3 = sp + 192|0; + $4 = sp + 128|0; + $5 = sp + 64|0; + $6 = sp; + $7 = HEAP32[$1>>2]|0; + _glUseProgram(($7|0)); + $8 = ((($1)) + 32|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($1)) + 116|0); + $11 = HEAP8[$10>>0]|0; + $12 = (+($11&255)); + $13 = $12 / 255.0; + $14 = ((($1)) + 117|0); + $15 = HEAP8[$14>>0]|0; + $16 = (+($15&255)); + $17 = $16 / 255.0; + $18 = ((($1)) + 118|0); + $19 = HEAP8[$18>>0]|0; + $20 = (+($19&255)); + $21 = $20 / 255.0; + $22 = ((($1)) + 119|0); + $23 = HEAP8[$22>>0]|0; + $24 = (+($23&255)); + $25 = $24 / 255.0; + _glUniform4f(($9|0),(+$13),(+$17),(+$21),(+$25)); + $26 = ((($1)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = ($27|0)==(-1); + if (!($28)) { + $29 = ((($1)) + 120|0); + $30 = HEAP8[$29>>0]|0; + $31 = (+($30&255)); + $32 = $31 / 255.0; + $33 = ((($1)) + 121|0); + $34 = HEAP8[$33>>0]|0; + $35 = (+($34&255)); + $36 = $35 / 255.0; + $37 = ((($1)) + 122|0); + $38 = HEAP8[$37>>0]|0; + $39 = (+($38&255)); + $40 = $39 / 255.0; + $41 = ((($1)) + 123|0); + $42 = HEAP8[$41>>0]|0; + $43 = (+($42&255)); + $44 = $43 / 255.0; + _glUniform4f(($27|0),(+$32),(+$36),(+$40),(+$44)); + } + $45 = ((($1)) + 40|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(-1); + if (!($47)) { + $48 = ((($1)) + 124|0); + $49 = HEAP8[$48>>0]|0; + $50 = (+($49&255)); + $51 = $50 / 255.0; + $52 = ((($1)) + 125|0); + $53 = HEAP8[$52>>0]|0; + $54 = (+($53&255)); + $55 = $54 / 255.0; + $56 = ((($1)) + 126|0); + $57 = HEAP8[$56>>0]|0; + $58 = (+($57&255)); + $59 = $58 / 255.0; + $60 = ((($1)) + 127|0); + $61 = HEAP8[$60>>0]|0; + $62 = (+($61&255)); + $63 = $62 / 255.0; + _glUniform4f(($46|0),(+$51),(+$55),(+$59),(+$63)); + } + dest=$3; src=19092; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$4; src=19028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=19092; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($5,$modelview$byval_copy4,$$byval_copy5); + $64 = HEAP32[$1>>2]|0; + $65 = HEAP32[4798]|0; + $66 = ($64|0)==($65|0); + if (!($66)) { + $67 = (_glGetUniformLocation(($64|0),(9768|0))|0); + $68 = ($67|0)==(-1); + if (!($68)) { + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($modelview$byval_copy4); + _MatrixInvert($modelview$byval_copy4); + dest=$$byval_copy5; src=$modelview$byval_copy4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $69 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($67|0),1,0,($69|0)); + } + $70 = HEAP32[$1>>2]|0; + $71 = (_glGetUniformLocation(($70|0),(9780|0))|0); + $72 = ($71|0)==(-1); + if (!($72)) { + $73 = ((($3)) + 8|0); + $74 = +HEAPF32[$73>>2]; + $75 = ((($3)) + 24|0); + $76 = +HEAPF32[$75>>2]; + $77 = ((($3)) + 40|0); + $78 = +HEAPF32[$77>>2]; + _glUniform3f(($71|0),(+$74),(+$76),(+$78)); + } + $79 = (_glGetUniformLocation(($70|0),(9788|0))|0); + $80 = ($79|0)==(-1); + if (!($80)) { + $81 = ((($1)) + 128|0); + $82 = +HEAPF32[$81>>2]; + _glUniform1f(($79|0),(+$82)); + } + } + _glActiveTexture(33984); + $83 = ((($1)) + 56|0); + $84 = HEAP32[$83>>2]|0; + _glBindTexture(3553,($84|0)); + $85 = ((($1)) + 44|0); + $86 = HEAP32[$85>>2]|0; + _glUniform1i(($86|0),0); + $87 = ((($1)) + 76|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0); + if (!($89)) { + $90 = ((($1)) + 48|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)==(-1); + if (!($92)) { + $93 = HEAP32[$1>>2]|0; + $94 = (_glGetUniformLocation(($93|0),(9799|0))|0); + _glUniform1i(($94|0),1); + _glActiveTexture(33985); + $95 = HEAP32[$87>>2]|0; + _glBindTexture(3553,($95|0)); + $96 = HEAP32[$90>>2]|0; + _glUniform1i(($96|0),1); + } + } + $97 = ((($1)) + 96|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0); + if (!($99)) { + $100 = ((($1)) + 52|0); + $101 = HEAP32[$100>>2]|0; + $102 = ($101|0)==(-1); + if (!($102)) { + $103 = HEAP32[$1>>2]|0; + $104 = (_glGetUniformLocation(($103|0),(9809|0))|0); + _glUniform1i(($104|0),1); + _glActiveTexture(33986); + $105 = HEAP32[$97>>2]|0; + _glBindTexture(3553,($105|0)); + $106 = HEAP32[$100>>2]|0; + _glUniform1i(($106|0),2); + } + } + $107 = HEAP32[4790]|0; + $108 = ($107|0)==(0); + if ($108) { + $112 = ((($0)) + 40|0); + $113 = HEAP32[$112>>2]|0; + _glBindBuffer(34962,($113|0)); + $114 = ((($1)) + 4|0); + $115 = HEAP32[$114>>2]|0; + _glVertexAttribPointer(($115|0),3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($115|0)); + $116 = ((($0)) + 44|0); + $117 = HEAP32[$116>>2]|0; + _glBindBuffer(34962,($117|0)); + $118 = ((($1)) + 8|0); + $119 = HEAP32[$118>>2]|0; + _glVertexAttribPointer(($119|0),2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($119|0)); + $120 = ((($1)) + 16|0); + $121 = HEAP32[$120>>2]|0; + $122 = ($121|0)==(-1); + if (!($122)) { + $123 = ((($0)) + 48|0); + $124 = HEAP32[$123>>2]|0; + _glBindBuffer(34962,($124|0)); + $125 = HEAP32[$120>>2]|0; + _glVertexAttribPointer(($125|0),3,5126,0,0,(0|0)); + $126 = HEAP32[$120>>2]|0; + _glEnableVertexAttribArray(($126|0)); + } + $127 = ((($1)) + 24|0); + $128 = HEAP32[$127>>2]|0; + $129 = ($128|0)==(-1); + do { + if (!($129)) { + $130 = ((($0)) + 52|0); + $131 = HEAP32[$130>>2]|0; + $132 = ($131|0)==(0); + if ($132) { + _glVertexAttrib4f(($128|0),1.0,1.0,1.0,1.0); + $135 = HEAP32[$127>>2]|0; + _glDisableVertexAttribArray(($135|0)); + break; + } else { + _glBindBuffer(34962,($131|0)); + $133 = HEAP32[$127>>2]|0; + _glVertexAttribPointer(($133|0),4,5121,1,0,(0|0)); + $134 = HEAP32[$127>>2]|0; + _glEnableVertexAttribArray(($134|0)); + break; + } + } + } while(0); + $136 = ((($1)) + 20|0); + $137 = HEAP32[$136>>2]|0; + $138 = ($137|0)==(-1); + if (!($138)) { + $139 = ((($0)) + 56|0); + $140 = HEAP32[$139>>2]|0; + _glBindBuffer(34962,($140|0)); + $141 = HEAP32[$136>>2]|0; + _glVertexAttribPointer(($141|0),3,5126,0,0,(0|0)); + $142 = HEAP32[$136>>2]|0; + _glEnableVertexAttribArray(($142|0)); + } + $143 = ((($1)) + 12|0); + $144 = HEAP32[$143>>2]|0; + $145 = ($144|0)==(-1); + if (!($145)) { + $146 = ((($0)) + 60|0); + $147 = HEAP32[$146>>2]|0; + _glBindBuffer(34962,($147|0)); + $148 = HEAP32[$143>>2]|0; + _glVertexAttribPointer(($148|0),2,5126,0,0,(0|0)); + $149 = HEAP32[$143>>2]|0; + _glEnableVertexAttribArray(($149|0)); + } + $150 = ((($0)) + 32|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==(0|0); + if (!($152)) { + $153 = HEAP32[(20492)>>2]|0; + _glBindBuffer(34963,($153|0)); + } + } else { + $109 = HEAP32[4792]|0; + $110 = ((($0)) + 36|0); + $111 = HEAP32[$110>>2]|0; + FUNCTION_TABLE_vi[$109 & 31]($111); + } + $154 = HEAP32[5175]|0; + $155 = ($154|0)!=(0); + $$ = $155 ? 2 : 1; + $156 = ((($1)) + 28|0); + $157 = ((($0)) + 32|0); + $158 = HEAP32[$0>>2]|0; + $159 = ((($0)) + 4|0); + $$020 = 0; + while(1) { + if ($155) { + dest=$modelview$byval_copy4; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$020,$modelview$byval_copy4,$$byval_copy5); + } else { + dest=19092; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + } + dest=$modelview$byval_copy4; src=19092; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=19028; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($6,$modelview$byval_copy4,$$byval_copy5); + $162 = HEAP32[$156>>2]|0; + dest=$$byval_copy5; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $163 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($162|0),1,0,($163|0)); + $164 = HEAP32[$157>>2]|0; + $165 = ($164|0)==(0|0); + if ($165) { + _glDrawArrays(4,0,($158|0)); + } else { + $166 = HEAP32[$159>>2]|0; + $167 = ($166*3)|0; + _glDrawElements(4,($167|0),5123,(0|0)); + } + $168 = (($$020) + 1)|0; + $169 = ($168|0)<($$|0); + if ($169) { + $$020 = $168; + } else { + break; + } + } + $160 = HEAP32[$87>>2]|0; + $161 = ($160|0)==(0); + if (!($161)) { + _glActiveTexture(33985); + _glBindTexture(3553,0); + } + $170 = HEAP32[$97>>2]|0; + $171 = ($170|0)==(0); + if (!($171)) { + _glActiveTexture(33986); + _glBindTexture(3553,0); + } + _glActiveTexture(33984); + _glBindTexture(3553,0); + $172 = HEAP32[4790]|0; + $173 = ($172|0)==(0); + if (!($173)) { + $174 = HEAP32[4792]|0; + FUNCTION_TABLE_vi[$174 & 31](0); + _glUseProgram(0); + dest=19028; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=19092; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34962,0); + $175 = ((($0)) + 32|0); + $176 = HEAP32[$175>>2]|0; + $177 = ($176|0)==(0|0); + if ($177) { + _glUseProgram(0); + dest=19028; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=19092; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34963,0); + _glUseProgram(0); + dest=19028; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=19092; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlglUnloadMesh($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 8|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if (!($3)) { + _free($2); + } + $4 = ((($0)) + 12|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + if (!($6)) { + _free($5); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==(0|0); + if (!($9)) { + _free($8); + } + $10 = ((($0)) + 28|0); + $11 = HEAP32[$10>>2]|0; + $12 = ($11|0)==(0|0); + if (!($12)) { + _free($11); + } + $13 = ((($0)) + 24|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)==(0|0); + if (!($15)) { + _free($14); + } + $16 = ((($0)) + 16|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==(0|0); + if (!($18)) { + _free($17); + } + $19 = ((($0)) + 32|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0|0); + if (!($21)) { + _free($20); + } + $22 = ((($0)) + 40|0); + $23 = HEAP32[$22>>2]|0; + _rlDeleteBuffers($23); + $24 = ((($0)) + 44|0); + $25 = HEAP32[$24>>2]|0; + _rlDeleteBuffers($25); + $26 = ((($0)) + 48|0); + $27 = HEAP32[$26>>2]|0; + _rlDeleteBuffers($27); + $28 = ((($0)) + 52|0); + $29 = HEAP32[$28>>2]|0; + _rlDeleteBuffers($29); + $30 = ((($0)) + 56|0); + $31 = HEAP32[$30>>2]|0; + _rlDeleteBuffers($31); + $32 = ((($0)) + 60|0); + $33 = HEAP32[$32>>2]|0; + _rlDeleteBuffers($33); + $34 = ((($0)) + 64|0); + $35 = HEAP32[$34>>2]|0; + _rlDeleteBuffers($35); + $36 = ((($0)) + 36|0); + $37 = HEAP32[$36>>2]|0; + _rlDeleteVertexArrays($37); + return; +} +function _GetDefaultTexture($0) { + $0 = $0|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4797]|0; + HEAP32[$0>>2] = $1; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$5$0$$sroa_idx4>>2] = 1; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx6>>2] = 1; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$7$0$$sroa_idx8>>2] = 7; + return; +} +function _GetDefaultShader($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=$0; src=19192; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _stbi__err($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[5268] = $0; + return; +} +function _stbi_load_from_file($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $5 = sp; + _stbi__start_file($5,$0); + $6 = (_stbi__load_and_postprocess_8bit($5,$1,$2,$3,$4)|0); + $7 = ($6|0)==(0|0); + if ($7) { + STACKTOP = sp;return ($6|0); + } + $8 = ((($5)) + 172|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($5)) + 168|0); + $11 = HEAP32[$10>>2]|0; + $12 = (($11) - ($9))|0; + (_fseek($0,$12,1)|0); + STACKTOP = sp;return ($6|0); +} +function _stbi__start_file($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + _stbi__start_callbacks($0,3160,$1); + return; +} +function _stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$070 = 0, $$07175 = 0, $$07276 = 0, $$07378 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond79 = 0, $exitcond80 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $5 = sp; + $6 = (_stbi__load_main($0,$1,$2,$3,$4,$5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $8 = HEAP32[$5>>2]|0; + switch ($8|0) { + case 8: { + $$070 = $6; + break; + } + case 16: { + label = 4; + break; + } + default: { + ___assert_fail((9821|0),(9847|0),1041,(9870|0)); + // unreachable; + } + } + if ((label|0) == 4) { + $9 = HEAP32[$1>>2]|0; + $10 = HEAP32[$2>>2]|0; + $11 = ($4|0)==(0); + if ($11) { + $12 = HEAP32[$3>>2]|0; + $13 = $12; + } else { + $13 = $4; + } + $14 = (_stbi__convert_16_to_8($6,$9,$10,$13)|0); + HEAP32[$5>>2] = 8; + $$070 = $14; + } + $15 = HEAP32[5269]|0; + $16 = ($15|0)==(0); + if ($16) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $17 = HEAP32[$1>>2]|0; + $18 = HEAP32[$2>>2]|0; + $19 = ($4|0)==(0); + if ($19) { + $20 = HEAP32[$3>>2]|0; + $25 = $20; + } else { + $25 = $4; + } + $21 = $18 >> 1; + $22 = ($21|0)>(0); + if (!($22)) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $23 = ($17|0)>(0); + $24 = ($25|0)>(0); + $26 = (($18) + -1)|0; + $$07378 = 0; + while(1) { + if ($23) { + $27 = Math_imul($$07378, $17)|0; + $28 = (($26) - ($$07378))|0; + $29 = Math_imul($28, $17)|0; + $$07276 = 0; + while(1) { + if ($24) { + $30 = (($$07276) + ($27))|0; + $31 = Math_imul($30, $25)|0; + $32 = (($$07276) + ($29))|0; + $33 = Math_imul($32, $25)|0; + $$07175 = 0; + while(1) { + $34 = (($$07175) + ($31))|0; + $35 = (($$070) + ($34)|0); + $36 = HEAP8[$35>>0]|0; + $37 = (($$07175) + ($33))|0; + $38 = (($$070) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + HEAP8[$35>>0] = $39; + HEAP8[$38>>0] = $36; + $40 = (($$07175) + 1)|0; + $exitcond = ($40|0)==($25|0); + if ($exitcond) { + break; + } else { + $$07175 = $40; + } + } + } + $41 = (($$07276) + 1)|0; + $exitcond79 = ($41|0)==($17|0); + if ($exitcond79) { + break; + } else { + $$07276 = $41; + } + } + } + $42 = (($$07378) + 1)|0; + $exitcond80 = ($42|0)==($21|0); + if ($exitcond80) { + $$0 = $$070; + break; + } else { + $$07378 = $42; + } + } + STACKTOP = sp;return ($$0|0); +} +function _stbi__load_main($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$0 = 0, $10 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAP32[$5>>2] = 8; + $6 = ((($5)) + 8|0); + HEAP32[$6>>2] = 0; + $7 = ((($5)) + 4|0); + HEAP32[$7>>2] = 0; + $8 = (_stbi__png_test($0)|0); + $9 = ($8|0)==(0); + if ($9) { + _stbi__err(9911); + $$0 = 0; + return ($$0|0); + } else { + $10 = (_stbi__png_load($0,$1,$2,$3,$4,$5)|0); + $$0 = $10; + return ($$0|0); + } + return (0)|0; +} +function _stbi__convert_16_to_8($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$0 = 0, $$01819 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = Math_imul($4, $3)|0; + $6 = (_stbi__malloc($5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + _stbi__err(9902); + $$0 = 0; + return ($$0|0); + } + $8 = ($5|0)>(0); + if ($8) { + $$01819 = 0; + while(1) { + $9 = (($0) + ($$01819<<1)|0); + $10 = HEAP16[$9>>1]|0; + $11 = ($10&65535) >>> 8; + $12 = $11&255; + $13 = (($6) + ($$01819)|0); + HEAP8[$13>>0] = $12; + $14 = (($$01819) + 1)|0; + $exitcond = ($14|0)==($5|0); + if ($exitcond) { + break; + } else { + $$01819 = $14; + } + } + } + _free($0); + $$0 = $6; + return ($$0|0); +} +function _stbi__malloc($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_malloc($0)|0); + return ($1|0); +} +function _stbi__png_test($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__check_png_header($0)|0); + _stbi__rewind($0); + return ($1|0); +} +function _stbi__png_load($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $6 = sp; + HEAP32[$6>>2] = $0; + $7 = (_stbi__do_png($6,$1,$2,$3,$4,$5)|0); + STACKTOP = sp;return ($7|0); +} +function _stbi__do_png($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$0 = 0, $$045 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4>>>0)>(4); + if ($6) { + _stbi__err(9930); + $$045 = 0; + return ($$045|0); + } + $7 = (_stbi__parse_png_file($0,0,$4)|0); + $8 = ($7|0)==(0); + if ($8) { + $$2 = 0; + } else { + $9 = ((($0)) + 16|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(8); + $$ = $11 ? $10 : 8; + HEAP32[$5>>2] = $$; + $12 = ((($0)) + 12|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[$12>>2] = 0; + $14 = ($4|0)==(0); + if ($14) { + $$1 = $13; + } else { + $15 = HEAP32[$0>>2]|0; + $16 = ((($15)) + 12|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==($4|0); + if ($18) { + $$1 = $13; + } else { + $19 = HEAP32[$5>>2]|0; + $20 = ($19|0)==(8); + $21 = ((($15)) + 4|0); + $22 = HEAP32[$21>>2]|0; + $23 = HEAP32[$15>>2]|0; + if ($20) { + $24 = (_stbi__convert_format($13,$17,$4,$23,$22)|0); + $$0 = $24; + } else { + $25 = (_stbi__convert_format16($13,$17,$4,$23,$22)|0); + $$0 = $25; + } + $26 = HEAP32[$0>>2]|0; + $27 = ((($26)) + 12|0); + HEAP32[$27>>2] = $4; + $28 = ($$0|0)==(0|0); + if ($28) { + $$045 = 0; + return ($$045|0); + } else { + $$1 = $$0; + } + } + } + $29 = HEAP32[$0>>2]|0; + $30 = HEAP32[$29>>2]|0; + HEAP32[$1>>2] = $30; + $31 = ((($29)) + 4|0); + $32 = HEAP32[$31>>2]|0; + HEAP32[$2>>2] = $32; + $33 = ($3|0)==(0|0); + if ($33) { + $$2 = $$1; + } else { + $34 = ((($29)) + 8|0); + $35 = HEAP32[$34>>2]|0; + HEAP32[$3>>2] = $35; + $$2 = $$1; + } + } + $36 = ((($0)) + 12|0); + $37 = HEAP32[$36>>2]|0; + _free($37); + HEAP32[$36>>2] = 0; + $38 = ((($0)) + 8|0); + $39 = HEAP32[$38>>2]|0; + _free($39); + HEAP32[$38>>2] = 0; + $40 = ((($0)) + 4|0); + $41 = HEAP32[$40>>2]|0; + _free($41); + HEAP32[$40>>2] = 0; + $$045 = $$2; + return ($$045|0); +} +function _stbi__parse_png_file($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0217 = 0, $$0206 = 0, $$0211 = 0, $$0214 = 0, $$0217 = 0, $$0226593 = 0, $$0228 = 0, $$0231 = 0, $$0235 = 0, $$0239591 = 0, $$0241 = 0, $$0245 = 0, $$1207 = 0, $$1212 = 0, $$1215 = 0, $$1218 = 0, $$1227588 = 0, $$1229 = 0, $$1240589 = 0; + var $$1246 = 0, $$2219 = 0, $$2233 = 0, $$2237 = 0, $$2243 = 0, $$254 = 0, $$3209 = 0, $$3220 = 0, $$4 = 0, $$6$ph = 0, $$7 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; + var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; + var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; + var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0; + var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0; + var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0; + var $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond248 = 0, $or$cond5$not = 0, $or$cond7 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $3 = sp + 32|0; + $4 = sp + 22|0; + $5 = sp + 16|0; + $6 = sp + 8|0; + $7 = sp; + $8 = HEAP32[$0>>2]|0; + $9 = ((($0)) + 8|0); + HEAP32[$9>>2] = 0; + $10 = ((($0)) + 4|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 12|0); + HEAP32[$11>>2] = 0; + $12 = (_stbi__check_png_header($8)|0); + $13 = ($12|0)==(0); + if ($13) { + $$7 = 0; + STACKTOP = sp;return ($$7|0); + } + $14 = ($1|0)==(1); + if ($14) { + $$7 = 1; + STACKTOP = sp;return ($$7|0); + } + $15 = ((($6)) + 4|0); + $16 = ((($8)) + 4|0); + $17 = ((($0)) + 16|0); + $18 = ((($8)) + 8|0); + $19 = ($1|0)==(2); + $20 = ((($8)) + 8|0); + $21 = ((($8)) + 8|0); + $22 = ((($0)) + 16|0); + $23 = ($1|0)==(2); + $24 = ($1|0)==(2); + $$0206 = 0;$$0211 = 0;$$0214 = 0;$$0217 = 0;$$0228 = 0;$$0231 = 0;$$0235 = 0;$$0241 = 1;$$0245 = 0; + L7: while(1) { + _stbi__get_chunk_header($6,$8); + $25 = HEAP32[$15>>2]|0; + $switch$split2D = ($25|0)<(1229472850); + L9: do { + if ($switch$split2D) { + $switch$split52D = ($25|0)<(1229209940); + if ($switch$split52D) { + switch ($25|0) { + case 1130840649: { + break; + } + default: { + label = 103; + break L9; + } + } + $26 = HEAP32[$6>>2]|0; + _stbi__skip($8,$26); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = 1;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + $switch$split112D = ($25|0)<(1229278788); + if (!($switch$split112D)) { + switch ($25|0) { + case 1229278788: { + label = 85; + break L7; + break; + } + default: { + label = 103; + break L9; + } + } + } + switch ($25|0) { + case 1229209940: { + break; + } + default: { + label = 103; + break L9; + } + } + $130 = ($$0241|0)==(0); + if (!($130)) { + label = 70; + break L7; + } + $131 = ($$0206<<24>>24)==(0); + $132 = ($$0245|0)!=(0); + $or$cond = $132 | $131; + if (!($or$cond)) { + label = 72; + break L7; + } + if ($24) { + label = 74; + break L7; + } + $135 = HEAP32[$6>>2]|0; + $136 = (($135) + ($$0214))|0; + $137 = ($136|0)<($$0214|0); + if ($137) { + $$6$ph = 0; + break L7; + } + $138 = ($136>>>0)>($$0217>>>0); + if ($138) { + $139 = ($$0217|0)==(0); + $140 = ($135>>>0)>(4096); + $141 = $140 ? $135 : 4096; + $$$0217 = $139 ? $141 : $$0217; + $142 = HEAP32[$6>>2]|0; + $143 = (($142) + ($$0214))|0; + $$1218 = $$$0217; + while(1) { + $144 = ($143>>>0)>($$1218>>>0); + $145 = $$1218 << 1; + if ($144) { + $$1218 = $145; + } else { + break; + } + } + $146 = HEAP32[$10>>2]|0; + $147 = (_realloc($146,$$1218)|0); + $148 = ($147|0)==(0|0); + if ($148) { + label = 81; + break L7; + } + HEAP32[$10>>2] = $147; + $$2219 = $$1218; + } else { + $$2219 = $$0217; + } + $149 = HEAP32[$10>>2]|0; + $150 = (($149) + ($$0214)|0); + $151 = HEAP32[$6>>2]|0; + $152 = (_stbi__getn($8,$150,$151)|0); + $153 = ($152|0)==(0); + if ($153) { + label = 83; + break L7; + } + $154 = HEAP32[$6>>2]|0; + $155 = (($154) + ($$0214))|0; + $$1212 = $$0211;$$1215 = $155;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$2219; + } else { + $switch$split82D = ($25|0)<(1347179589); + if ($switch$split82D) { + switch ($25|0) { + case 1229472850: { + break; + } + default: { + label = 103; + break L9; + } + } + $27 = ($$0241|0)==(0); + if ($27) { + label = 7; + break L7; + } + $28 = HEAP32[$6>>2]|0; + $29 = ($28|0)==(13); + if (!($29)) { + label = 9; + break L7; + } + $30 = (_stbi__get32be($8)|0); + HEAP32[$8>>2] = $30; + $31 = ($30>>>0)>(16777216); + if ($31) { + label = 11; + break L7; + } + $32 = (_stbi__get32be($8)|0); + HEAP32[$16>>2] = $32; + $33 = ($32>>>0)>(16777216); + if ($33) { + label = 13; + break L7; + } + $34 = (_stbi__get8($8)|0); + $35 = $34&255; + HEAP32[$17>>2] = $35; + switch ($34<<24>>24) { + case 16: case 8: case 4: case 2: case 1: { + break; + } + default: { + label = 15; + break L7; + } + } + $36 = (_stbi__get8($8)|0); + $37 = $36&255; + $38 = ($36&255)>(6); + if ($38) { + label = 17; + break L7; + } + $39 = ($36<<24>>24)==(3); + if ($39) { + $40 = HEAP32[$17>>2]|0; + $41 = ($40|0)==(16); + if ($41) { + label = 20; + break L7; + } else { + $$1207 = 3; + } + } else { + $42 = $37 & 1; + $43 = ($42|0)==(0); + if ($43) { + $$1207 = $$0206; + } else { + label = 22; + break L7; + } + } + $44 = (_stbi__get8($8)|0); + $45 = ($44<<24>>24)==(0); + if (!($45)) { + label = 24; + break L7; + } + $46 = (_stbi__get8($8)|0); + $47 = ($46<<24>>24)==(0); + if (!($47)) { + label = 26; + break L7; + } + $48 = (_stbi__get8($8)|0); + $49 = $48&255; + $50 = ($48&255)>(1); + if ($50) { + label = 28; + break L7; + } + $51 = HEAP32[$8>>2]|0; + $52 = ($51|0)==(0); + if ($52) { + label = 31; + break L7; + } + $53 = HEAP32[$16>>2]|0; + $54 = ($53|0)==(0); + if ($54) { + label = 31; + break L7; + } + $55 = ($$1207<<24>>24)==(0); + $56 = (1073741824 / ($51>>>0))&-1; + if (!($55)) { + HEAP32[$20>>2] = 1; + $63 = $56 >>> 2; + $64 = ($63>>>0)<($53>>>0); + if ($64) { + label = 37; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = $$1207;$$3220 = $$0217; + break; + } + } + $57 = $37 & 2; + $58 = $57 | 1; + $59 = $37 >>> 2; + $$lobit = $59 & 1; + $60 = (($58) + ($$lobit))|0; + HEAP32[$18>>2] = $60; + $61 = (($56>>>0) / ($60>>>0))&-1; + $62 = ($61>>>0)<($53>>>0); + if ($62) { + label = 34; + break L7; + } + if ($19) { + $$6$ph = 1; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + } + $switch$split142D = ($25|0)<(1951551059); + if ($switch$split142D) { + switch ($25|0) { + case 1347179589: { + break; + } + default: { + label = 103; + break L9; + } + } + $65 = ($$0241|0)==(0); + if (!($65)) { + label = 39; + break L7; + } + $66 = HEAP32[$6>>2]|0; + $67 = ($66>>>0)>(768); + if ($67) { + label = 41; + break L7; + } + $68 = (($66>>>0) / 3)&-1; + $69 = ($68*3)|0; + $70 = ($69|0)==($66|0); + if (!($70)) { + label = 44; + break L7; + } + $71 = ($66>>>0)>(2); + if ($71) { + $$0226593 = 0; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + break; + } + while(1) { + $72 = (_stbi__get8($8)|0); + $73 = $$0226593 << 2; + $74 = (($3) + ($73)|0); + HEAP8[$74>>0] = $72; + $75 = (_stbi__get8($8)|0); + $76 = $73 | 1; + $77 = (($3) + ($76)|0); + HEAP8[$77>>0] = $75; + $78 = (_stbi__get8($8)|0); + $79 = $73 | 2; + $80 = (($3) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = $73 | 3; + $82 = (($3) + ($81)|0); + HEAP8[$82>>0] = -1; + $83 = (($$0226593) + 1)|0; + $84 = ($83>>>0)<($68>>>0); + if ($84) { + $$0226593 = $83; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break L9; + } + } + } + switch ($25|0) { + case 1951551059: { + break; + } + default: { + label = 103; + break L9; + } + } + $85 = ($$0241|0)==(0); + if (!($85)) { + label = 47; + break L7; + } + $86 = HEAP32[$10>>2]|0; + $87 = ($86|0)==(0|0); + if (!($87)) { + label = 49; + break L7; + } + $88 = ($$0206<<24>>24)==(0); + if (!($88)) { + if ($23) { + label = 52; + break L7; + } + $90 = ($$0245|0)==(0); + if ($90) { + label = 54; + break L7; + } + $91 = HEAP32[$6>>2]|0; + $92 = ($91>>>0)>($$0245>>>0); + if ($92) { + label = 58; + break L7; + } + $93 = HEAP32[$6>>2]|0; + $94 = ($93|0)==(0); + if ($94) { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 4;$$3220 = $$0217; + break; + } + $95 = HEAP32[$6>>2]|0; + $$1227588 = 0; + while(1) { + $96 = (_stbi__get8($8)|0); + $97 = $$1227588 << 2; + $98 = $97 | 3; + $99 = (($3) + ($98)|0); + HEAP8[$99>>0] = $96; + $100 = (($$1227588) + 1)|0; + $101 = ($100>>>0)<($95>>>0); + if ($101) { + $$1227588 = $100; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = 4;$$3220 = $$0217; + break L9; + } + } + } + $102 = HEAP32[$21>>2]|0; + $103 = $102 & 1; + $104 = ($103|0)==(0); + if ($104) { + label = 61; + break L7; + } + $105 = HEAP32[$6>>2]|0; + $106 = $102 << 1; + $107 = ($105|0)==($106|0); + if (!($107)) { + label = 63; + break L7; + } + $108 = HEAP32[$22>>2]|0; + $109 = ($108|0)==(16); + $110 = HEAP32[$21>>2]|0; + $111 = ($110|0)>(0); + if ($109) { + if ($111) { + $$0239591 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $112 = (_stbi__get16be($8)|0); + $113 = $112&65535; + $114 = (($5) + ($$0239591<<1)|0); + HEAP16[$114>>1] = $113; + $115 = (($$0239591) + 1)|0; + $116 = HEAP32[$21>>2]|0; + $117 = ($115|0)<($116|0); + if ($117) { + $$0239591 = $115; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } else { + if ($111) { + $$1240589 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $118 = (_stbi__get16be($8)|0); + $119 = $118 & 255; + $120 = HEAP32[$22>>2]|0; + $121 = (10246 + ($120)|0); + $122 = HEAP8[$121>>0]|0; + $123 = $122&255; + $124 = Math_imul($123, $119)|0; + $125 = $124&255; + $126 = (($4) + ($$1240589)|0); + HEAP8[$126>>0] = $125; + $127 = (($$1240589) + 1)|0; + $128 = HEAP32[$21>>2]|0; + $129 = ($127|0)<($128|0); + if ($129) { + $$1240589 = $127; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } + } + } while(0); + if ((label|0) == 103) { + label = 0; + $202 = ($$0241|0)==(0); + if (!($202)) { + label = 104; + break; + } + $203 = $25 & 536870912; + $204 = ($203|0)==(0); + if ($204) { + label = 106; + break; + } + $213 = HEAP32[$6>>2]|0; + _stbi__skip($8,$213); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + } + (_stbi__get32be($8)|0); + $$0206 = $$3209;$$0211 = $$1212;$$0214 = $$1215;$$0217 = $$3220;$$0228 = $$1229;$$0231 = $$2233;$$0235 = $$2237;$$0241 = $$2243;$$0245 = $$1246; + } + switch (label|0) { + case 7: { + _stbi__err(10020); + $$6$ph = 0; + break; + } + case 9: { + _stbi__err(10034); + $$6$ph = 0; + break; + } + case 11: { + _stbi__err(10047); + $$6$ph = 0; + break; + } + case 13: { + _stbi__err(10047); + $$6$ph = 0; + break; + } + case 15: { + _stbi__err(10057); + $$6$ph = 0; + break; + } + case 17: { + _stbi__err(10077); + $$6$ph = 0; + break; + } + case 20: { + _stbi__err(10077); + $$6$ph = 0; + break; + } + case 22: { + _stbi__err(10077); + $$6$ph = 0; + break; + } + case 24: { + _stbi__err(10087); + $$6$ph = 0; + break; + } + case 26: { + _stbi__err(10103); + $$6$ph = 0; + break; + } + case 28: { + _stbi__err(10121); + $$6$ph = 0; + break; + } + case 31: { + _stbi__err(10142); + $$6$ph = 0; + break; + } + case 34: { + _stbi__err(10047); + $$6$ph = 0; + break; + } + case 37: { + _stbi__err(10047); + $$6$ph = 0; + break; + } + case 39: { + _stbi__err(10156); + $$6$ph = 0; + break; + } + case 41: { + _stbi__err(10171); + $$6$ph = 0; + break; + } + case 44: { + _stbi__err(10171); + $$6$ph = 0; + break; + } + case 47: { + _stbi__err(10156); + $$6$ph = 0; + break; + } + case 49: { + _stbi__err(10184); + $$6$ph = 0; + break; + } + case 52: { + $89 = ((($8)) + 8|0); + HEAP32[$89>>2] = 4; + $$6$ph = 1; + break; + } + case 54: { + _stbi__err(10200); + $$6$ph = 0; + break; + } + case 58: { + _stbi__err(10217); + $$6$ph = 0; + break; + } + case 61: { + _stbi__err(10230); + $$6$ph = 0; + break; + } + case 63: { + _stbi__err(10217); + $$6$ph = 0; + break; + } + case 70: { + _stbi__err(10156); + $$6$ph = 0; + break; + } + case 72: { + _stbi__err(10255); + $$6$ph = 0; + break; + } + case 74: { + $133 = $$0206&255; + $134 = ((($8)) + 8|0); + HEAP32[$134>>2] = $133; + $$6$ph = 1; + break; + } + case 81: { + _stbi__err(9902); + $$6$ph = 0; + break; + } + case 83: { + _stbi__err(10263); + $$6$ph = 0; + break; + } + case 85: { + $156 = ($$0241|0)==(0); + do { + if ($156) { + $157 = ($1|0)==(0); + if ($157) { + $158 = HEAP32[$10>>2]|0; + $159 = ($158|0)==(0|0); + if ($159) { + _stbi__err(10273); + $$4 = 0; + break; + } + $160 = HEAP32[$8>>2]|0; + $161 = ((($0)) + 16|0); + $162 = HEAP32[$161>>2]|0; + $163 = Math_imul($162, $160)|0; + $164 = (($163) + 7)|0; + $165 = $164 >>> 3; + $166 = ((($8)) + 4|0); + $167 = HEAP32[$166>>2]|0; + $168 = ((($8)) + 8|0); + $169 = HEAP32[$168>>2]|0; + $170 = Math_imul($169, $167)|0; + $171 = Math_imul($170, $165)|0; + $172 = (($171) + ($167))|0; + HEAP32[$7>>2] = $172; + $173 = ($$0228|0)!=(0); + $174 = $173 ^ 1; + $175 = $174&1; + $176 = (_stbi_zlib_decode_malloc_guesssize_headerflag($158,$$0214,$172,$7,$175)|0); + HEAP32[$9>>2] = $176; + $177 = ($176|0)==(0|0); + if ($177) { + $$4 = 0; + } else { + $178 = HEAP32[$10>>2]|0; + _free($178); + HEAP32[$10>>2] = 0; + $179 = HEAP32[$168>>2]|0; + $180 = (($179) + 1)|0; + $notlhs = ($180|0)!=($2|0); + $notrhs = ($2|0)==(3); + $or$cond5$not = $notrhs | $notlhs; + $181 = ($$0206<<24>>24)!=(0); + $or$cond7 = $181 | $or$cond5$not; + $182 = ($$0211<<24>>24)==(0); + $or$cond248 = $182 & $or$cond7; + $$254 = $or$cond248 ? $179 : $180; + $183 = ((($8)) + 12|0); + HEAP32[$183>>2] = $$254; + $184 = HEAP32[$9>>2]|0; + $185 = HEAP32[$7>>2]|0; + $186 = HEAP32[$161>>2]|0; + $187 = (_stbi__create_png_image($0,$184,$185,$$254,$186,$$0231,$$0235)|0); + $188 = ($187|0)==(0); + if ($188) { + $$4 = 0; + } else { + do { + if (!($182)) { + $189 = HEAP32[$161>>2]|0; + $190 = ($189|0)==(16); + if ($190) { + $191 = HEAP32[$183>>2]|0; + _stbi__compute_transparency16($0,$5,$191); + break; + } else { + $192 = HEAP32[$183>>2]|0; + _stbi__compute_transparency($0,$4,$192); + break; + } + } + } while(0); + $193 = HEAP32[5270]|0; + $194 = ($193|0)!=(0); + $or$cond11 = $173 & $194; + if ($or$cond11) { + $195 = HEAP32[$183>>2]|0; + $196 = ($195|0)>(2); + if ($196) { + _stbi__de_iphone($0); + } + } + if ($181) { + $197 = $$0206&255; + HEAP32[$168>>2] = $197; + $198 = ($2|0)>(2); + $$ = $198 ? $2 : $197; + HEAP32[$183>>2] = $$; + $199 = (_stbi__expand_png_palette($0,$3,$$)|0); + $200 = ($199|0)==(0); + if ($200) { + $$4 = 0; + break; + } + } + $201 = HEAP32[$9>>2]|0; + _free($201); + HEAP32[$9>>2] = 0; + $$4 = 1; + } + } + } else { + $$4 = 1; + } + } else { + _stbi__err(10156); + $$4 = 0; + } + } while(0); + $$6$ph = $$4; + break; + } + case 104: { + _stbi__err(10156); + $$6$ph = 0; + break; + } + case 106: { + $205 = $25 >>> 24; + $206 = $205&255; + HEAP8[10281] = $206; + $207 = HEAP32[$15>>2]|0; + $208 = $207 >>> 16; + $209 = $208&255; + HEAP8[(10282)>>0] = $209; + $210 = $207 >>> 8; + $211 = $210&255; + HEAP8[(10283)>>0] = $211; + $212 = $207&255; + HEAP8[(10284)>>0] = $212; + _stbi__err(10281); + $$6$ph = 0; + break; + } + } + $$7 = $$6$ph; + STACKTOP = sp;return ($$7|0); +} +function _stbi__convert_format($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9943|0),(9847|0),1477,(9999|0)); + // unreachable; + } + $7 = (_stbi__malloc_mad3($2,$3,$4)|0); + $8 = ($7|0)==(0|0); + if ($8) { + _free($0); + _stbi__err(9902); + $$0163 = 0; + return ($$0163|0); + } + $9 = ($4|0)>(0); + L11: do { + if ($9) { + $10 = $1 << 3; + $11 = (($10) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $12 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $13 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $14 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $15 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $16 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $17 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $18 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $19 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $20 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $21 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $22 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $23 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $24 = Math_imul($$0164259, $3)|0; + $25 = Math_imul($24, $1)|0; + $26 = (($0) + ($25)|0); + $27 = Math_imul($24, $2)|0; + $28 = (($7) + ($27)|0); + do { + switch ($11|0) { + case 10: { + if ($12) { + $$0151255 = $26;$$0165257 = $$0165254;$$0256 = $28; + while(1) { + $29 = HEAP8[$$0151255>>0]|0; + HEAP8[$$0256>>0] = $29; + $30 = ((($$0256)) + 1|0); + HEAP8[$30>>0] = -1; + $31 = ((($$0151255)) + 1|0); + $32 = ((($$0256)) + 2|0); + $$0165 = (($$0165257) + -1)|0; + $33 = ($$0165|0)>(-1); + if ($33) { + $$0151255 = $31;$$0165257 = $$0165;$$0256 = $32; + } else { + break; + } + } + } + break; + } + case 11: { + if ($13) { + $$1152250 = $26;$$1166252 = $$1166249;$$1251 = $28; + while(1) { + $34 = HEAP8[$$1152250>>0]|0; + $35 = ((($$1251)) + 2|0); + HEAP8[$35>>0] = $34; + $36 = ((($$1251)) + 1|0); + HEAP8[$36>>0] = $34; + HEAP8[$$1251>>0] = $34; + $37 = ((($$1152250)) + 1|0); + $38 = ((($$1251)) + 3|0); + $$1166 = (($$1166252) + -1)|0; + $39 = ($$1166|0)>(-1); + if ($39) { + $$1152250 = $37;$$1166252 = $$1166;$$1251 = $38; + } else { + break; + } + } + } + break; + } + case 12: { + if ($14) { + $$2153245 = $26;$$2167247 = $$2167244;$$2246 = $28; + while(1) { + $40 = HEAP8[$$2153245>>0]|0; + $41 = ((($$2246)) + 2|0); + HEAP8[$41>>0] = $40; + $42 = ((($$2246)) + 1|0); + HEAP8[$42>>0] = $40; + HEAP8[$$2246>>0] = $40; + $43 = ((($$2246)) + 3|0); + HEAP8[$43>>0] = -1; + $44 = ((($$2153245)) + 1|0); + $45 = ((($$2246)) + 4|0); + $$2167 = (($$2167247) + -1)|0; + $46 = ($$2167|0)>(-1); + if ($46) { + $$2153245 = $44;$$2167247 = $$2167;$$2246 = $45; + } else { + break; + } + } + } + break; + } + case 17: { + if ($15) { + $$3154240 = $26;$$3168242 = $$3168239;$$3241 = $28; + while(1) { + $47 = HEAP8[$$3154240>>0]|0; + HEAP8[$$3241>>0] = $47; + $48 = ((($$3154240)) + 2|0); + $49 = ((($$3241)) + 1|0); + $$3168 = (($$3168242) + -1)|0; + $50 = ($$3168|0)>(-1); + if ($50) { + $$3154240 = $48;$$3168242 = $$3168;$$3241 = $49; + } else { + break; + } + } + } + break; + } + case 19: { + if ($16) { + $$4155235 = $26;$$4169237 = $$4169234;$$4236 = $28; + while(1) { + $51 = HEAP8[$$4155235>>0]|0; + $52 = ((($$4236)) + 2|0); + HEAP8[$52>>0] = $51; + $53 = ((($$4236)) + 1|0); + HEAP8[$53>>0] = $51; + HEAP8[$$4236>>0] = $51; + $54 = ((($$4155235)) + 2|0); + $55 = ((($$4236)) + 3|0); + $$4169 = (($$4169237) + -1)|0; + $56 = ($$4169|0)>(-1); + if ($56) { + $$4155235 = $54;$$4169237 = $$4169;$$4236 = $55; + } else { + break; + } + } + } + break; + } + case 20: { + if ($17) { + $$5156230 = $26;$$5170232 = $$5170229;$$5231 = $28; + while(1) { + $57 = HEAP8[$$5156230>>0]|0; + $58 = ((($$5231)) + 2|0); + HEAP8[$58>>0] = $57; + $59 = ((($$5231)) + 1|0); + HEAP8[$59>>0] = $57; + HEAP8[$$5231>>0] = $57; + $60 = ((($$5156230)) + 1|0); + $61 = HEAP8[$60>>0]|0; + $62 = ((($$5231)) + 3|0); + HEAP8[$62>>0] = $61; + $63 = ((($$5156230)) + 2|0); + $64 = ((($$5231)) + 4|0); + $$5170 = (($$5170232) + -1)|0; + $65 = ($$5170|0)>(-1); + if ($65) { + $$5156230 = $63;$$5170232 = $$5170;$$5231 = $64; + } else { + break; + } + } + } + break; + } + case 28: { + if ($18) { + $$6157225 = $26;$$6171227 = $$6171224;$$6226 = $28; + while(1) { + $66 = HEAP8[$$6157225>>0]|0; + HEAP8[$$6226>>0] = $66; + $67 = ((($$6157225)) + 1|0); + $68 = HEAP8[$67>>0]|0; + $69 = ((($$6226)) + 1|0); + HEAP8[$69>>0] = $68; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP8[$70>>0]|0; + $72 = ((($$6226)) + 2|0); + HEAP8[$72>>0] = $71; + $73 = ((($$6226)) + 3|0); + HEAP8[$73>>0] = -1; + $74 = ((($$6157225)) + 3|0); + $75 = ((($$6226)) + 4|0); + $$6171 = (($$6171227) + -1)|0; + $76 = ($$6171|0)>(-1); + if ($76) { + $$6157225 = $74;$$6171227 = $$6171;$$6226 = $75; + } else { + break; + } + } + } + break; + } + case 25: { + if ($19) { + $$7158220 = $26;$$7172222 = $$7172219;$$7221 = $28; + while(1) { + $77 = HEAP8[$$7158220>>0]|0; + $78 = $77&255; + $79 = ((($$7158220)) + 1|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP8[$82>>0]|0; + $84 = $83&255; + $85 = (_stbi__compute_y($78,$81,$84)|0); + HEAP8[$$7221>>0] = $85; + $86 = ((($$7158220)) + 3|0); + $87 = ((($$7221)) + 1|0); + $$7172 = (($$7172222) + -1)|0; + $88 = ($$7172|0)>(-1); + if ($88) { + $$7158220 = $86;$$7172222 = $$7172;$$7221 = $87; + } else { + break; + } + } + } + break; + } + case 26: { + if ($20) { + $$8159215 = $26;$$8173217 = $$8173214;$$8216 = $28; + while(1) { + $89 = HEAP8[$$8159215>>0]|0; + $90 = $89&255; + $91 = ((($$8159215)) + 1|0); + $92 = HEAP8[$91>>0]|0; + $93 = $92&255; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP8[$94>>0]|0; + $96 = $95&255; + $97 = (_stbi__compute_y($90,$93,$96)|0); + HEAP8[$$8216>>0] = $97; + $98 = ((($$8216)) + 1|0); + HEAP8[$98>>0] = -1; + $99 = ((($$8159215)) + 3|0); + $100 = ((($$8216)) + 2|0); + $$8173 = (($$8173217) + -1)|0; + $101 = ($$8173|0)>(-1); + if ($101) { + $$8159215 = $99;$$8173217 = $$8173;$$8216 = $100; + } else { + break; + } + } + } + break; + } + case 33: { + if ($21) { + $$9160210 = $26;$$9174212 = $$9174209;$$9211 = $28; + while(1) { + $102 = HEAP8[$$9160210>>0]|0; + $103 = $102&255; + $104 = ((($$9160210)) + 1|0); + $105 = HEAP8[$104>>0]|0; + $106 = $105&255; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP8[$107>>0]|0; + $109 = $108&255; + $110 = (_stbi__compute_y($103,$106,$109)|0); + HEAP8[$$9211>>0] = $110; + $111 = ((($$9160210)) + 4|0); + $112 = ((($$9211)) + 1|0); + $$9174 = (($$9174212) + -1)|0; + $113 = ($$9174|0)>(-1); + if ($113) { + $$9160210 = $111;$$9174212 = $$9174;$$9211 = $112; + } else { + break; + } + } + } + break; + } + case 34: { + if ($22) { + $$10161205 = $26;$$10175207 = $$10175204;$$10206 = $28; + while(1) { + $114 = HEAP8[$$10161205>>0]|0; + $115 = $114&255; + $116 = ((($$10161205)) + 1|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP8[$119>>0]|0; + $121 = $120&255; + $122 = (_stbi__compute_y($115,$118,$121)|0); + HEAP8[$$10206>>0] = $122; + $123 = ((($$10161205)) + 3|0); + $124 = HEAP8[$123>>0]|0; + $125 = ((($$10206)) + 1|0); + HEAP8[$125>>0] = $124; + $126 = ((($$10161205)) + 4|0); + $127 = ((($$10206)) + 2|0); + $$10175 = (($$10175207) + -1)|0; + $128 = ($$10175|0)>(-1); + if ($128) { + $$10161205 = $126;$$10175207 = $$10175;$$10206 = $127; + } else { + break; + } + } + } + break; + } + case 35: { + if ($23) { + $$11162201 = $26;$$11176203 = $$11176200;$$11202 = $28; + while(1) { + $129 = HEAP8[$$11162201>>0]|0; + HEAP8[$$11202>>0] = $129; + $130 = ((($$11162201)) + 1|0); + $131 = HEAP8[$130>>0]|0; + $132 = ((($$11202)) + 1|0); + HEAP8[$132>>0] = $131; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP8[$133>>0]|0; + $135 = ((($$11202)) + 2|0); + HEAP8[$135>>0] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = ((($$11202)) + 3|0); + $$11176 = (($$11176203) + -1)|0; + $138 = ($$11176|0)>(-1); + if ($138) { + $$11162201 = $136;$$11176203 = $$11176;$$11202 = $137; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $139 = (($$0164259) + 1)|0; + $140 = ($139|0)<($4|0); + if ($140) { + $$0164259 = $139; + } else { + break L11; + } + } + ___assert_fail((9997|0),(9847|0),1506,(9999|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $7; + return ($$0163|0); +} +function _stbi__convert_format16($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9943|0),(9847|0),1526,(9974|0)); + // unreachable; + } + $7 = $2 << 1; + $8 = Math_imul($7, $3)|0; + $9 = Math_imul($8, $4)|0; + $10 = (_stbi__malloc($9)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _free($0); + _stbi__err(9902); + $$0163 = 0; + return ($$0163|0); + } + $12 = ($4|0)>(0); + L11: do { + if ($12) { + $13 = $1 << 3; + $14 = (($13) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $15 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $16 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $17 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $18 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $19 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $20 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $21 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $22 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $23 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $24 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $25 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $26 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $27 = Math_imul($$0164259, $3)|0; + $28 = Math_imul($27, $1)|0; + $29 = (($0) + ($28<<1)|0); + $30 = Math_imul($27, $2)|0; + $31 = (($10) + ($30<<1)|0); + do { + switch ($14|0) { + case 10: { + if ($15) { + $$0151255 = $29;$$0165257 = $$0165254;$$0256 = $31; + while(1) { + $32 = HEAP16[$$0151255>>1]|0; + HEAP16[$$0256>>1] = $32; + $33 = ((($$0256)) + 2|0); + HEAP16[$33>>1] = -1; + $34 = ((($$0151255)) + 2|0); + $35 = ((($$0256)) + 4|0); + $$0165 = (($$0165257) + -1)|0; + $36 = ($$0165|0)>(-1); + if ($36) { + $$0151255 = $34;$$0165257 = $$0165;$$0256 = $35; + } else { + break; + } + } + } + break; + } + case 11: { + if ($16) { + $$1152250 = $29;$$1166252 = $$1166249;$$1251 = $31; + while(1) { + $37 = HEAP16[$$1152250>>1]|0; + $38 = ((($$1251)) + 4|0); + HEAP16[$38>>1] = $37; + $39 = ((($$1251)) + 2|0); + HEAP16[$39>>1] = $37; + HEAP16[$$1251>>1] = $37; + $40 = ((($$1152250)) + 2|0); + $41 = ((($$1251)) + 6|0); + $$1166 = (($$1166252) + -1)|0; + $42 = ($$1166|0)>(-1); + if ($42) { + $$1152250 = $40;$$1166252 = $$1166;$$1251 = $41; + } else { + break; + } + } + } + break; + } + case 12: { + if ($17) { + $$2153245 = $29;$$2167247 = $$2167244;$$2246 = $31; + while(1) { + $43 = HEAP16[$$2153245>>1]|0; + $44 = ((($$2246)) + 4|0); + HEAP16[$44>>1] = $43; + $45 = ((($$2246)) + 2|0); + HEAP16[$45>>1] = $43; + HEAP16[$$2246>>1] = $43; + $46 = ((($$2246)) + 6|0); + HEAP16[$46>>1] = -1; + $47 = ((($$2153245)) + 2|0); + $48 = ((($$2246)) + 8|0); + $$2167 = (($$2167247) + -1)|0; + $49 = ($$2167|0)>(-1); + if ($49) { + $$2153245 = $47;$$2167247 = $$2167;$$2246 = $48; + } else { + break; + } + } + } + break; + } + case 17: { + if ($18) { + $$3154240 = $29;$$3168242 = $$3168239;$$3241 = $31; + while(1) { + $50 = HEAP16[$$3154240>>1]|0; + HEAP16[$$3241>>1] = $50; + $51 = ((($$3154240)) + 4|0); + $52 = ((($$3241)) + 2|0); + $$3168 = (($$3168242) + -1)|0; + $53 = ($$3168|0)>(-1); + if ($53) { + $$3154240 = $51;$$3168242 = $$3168;$$3241 = $52; + } else { + break; + } + } + } + break; + } + case 19: { + if ($19) { + $$4155235 = $29;$$4169237 = $$4169234;$$4236 = $31; + while(1) { + $54 = HEAP16[$$4155235>>1]|0; + $55 = ((($$4236)) + 4|0); + HEAP16[$55>>1] = $54; + $56 = ((($$4236)) + 2|0); + HEAP16[$56>>1] = $54; + HEAP16[$$4236>>1] = $54; + $57 = ((($$4155235)) + 4|0); + $58 = ((($$4236)) + 6|0); + $$4169 = (($$4169237) + -1)|0; + $59 = ($$4169|0)>(-1); + if ($59) { + $$4155235 = $57;$$4169237 = $$4169;$$4236 = $58; + } else { + break; + } + } + } + break; + } + case 20: { + if ($20) { + $$5156230 = $29;$$5170232 = $$5170229;$$5231 = $31; + while(1) { + $60 = HEAP16[$$5156230>>1]|0; + $61 = ((($$5231)) + 4|0); + HEAP16[$61>>1] = $60; + $62 = ((($$5231)) + 2|0); + HEAP16[$62>>1] = $60; + HEAP16[$$5231>>1] = $60; + $63 = ((($$5156230)) + 2|0); + $64 = HEAP16[$63>>1]|0; + $65 = ((($$5231)) + 6|0); + HEAP16[$65>>1] = $64; + $66 = ((($$5156230)) + 4|0); + $67 = ((($$5231)) + 8|0); + $$5170 = (($$5170232) + -1)|0; + $68 = ($$5170|0)>(-1); + if ($68) { + $$5156230 = $66;$$5170232 = $$5170;$$5231 = $67; + } else { + break; + } + } + } + break; + } + case 28: { + if ($21) { + $$6157225 = $29;$$6171227 = $$6171224;$$6226 = $31; + while(1) { + $69 = HEAP16[$$6157225>>1]|0; + HEAP16[$$6226>>1] = $69; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP16[$70>>1]|0; + $72 = ((($$6226)) + 2|0); + HEAP16[$72>>1] = $71; + $73 = ((($$6157225)) + 4|0); + $74 = HEAP16[$73>>1]|0; + $75 = ((($$6226)) + 4|0); + HEAP16[$75>>1] = $74; + $76 = ((($$6226)) + 6|0); + HEAP16[$76>>1] = -1; + $77 = ((($$6157225)) + 6|0); + $78 = ((($$6226)) + 8|0); + $$6171 = (($$6171227) + -1)|0; + $79 = ($$6171|0)>(-1); + if ($79) { + $$6157225 = $77;$$6171227 = $$6171;$$6226 = $78; + } else { + break; + } + } + } + break; + } + case 25: { + if ($22) { + $$7158220 = $29;$$7172222 = $$7172219;$$7221 = $31; + while(1) { + $80 = HEAP16[$$7158220>>1]|0; + $81 = $80&65535; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP16[$82>>1]|0; + $84 = $83&65535; + $85 = ((($$7158220)) + 4|0); + $86 = HEAP16[$85>>1]|0; + $87 = $86&65535; + $88 = (_stbi__compute_y_16($81,$84,$87)|0); + HEAP16[$$7221>>1] = $88; + $89 = ((($$7158220)) + 6|0); + $90 = ((($$7221)) + 2|0); + $$7172 = (($$7172222) + -1)|0; + $91 = ($$7172|0)>(-1); + if ($91) { + $$7158220 = $89;$$7172222 = $$7172;$$7221 = $90; + } else { + break; + } + } + } + break; + } + case 26: { + if ($23) { + $$8159215 = $29;$$8173217 = $$8173214;$$8216 = $31; + while(1) { + $92 = HEAP16[$$8159215>>1]|0; + $93 = $92&65535; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP16[$94>>1]|0; + $96 = $95&65535; + $97 = ((($$8159215)) + 4|0); + $98 = HEAP16[$97>>1]|0; + $99 = $98&65535; + $100 = (_stbi__compute_y_16($93,$96,$99)|0); + HEAP16[$$8216>>1] = $100; + $101 = ((($$8216)) + 2|0); + HEAP16[$101>>1] = -1; + $102 = ((($$8159215)) + 6|0); + $103 = ((($$8216)) + 4|0); + $$8173 = (($$8173217) + -1)|0; + $104 = ($$8173|0)>(-1); + if ($104) { + $$8159215 = $102;$$8173217 = $$8173;$$8216 = $103; + } else { + break; + } + } + } + break; + } + case 33: { + if ($24) { + $$9160210 = $29;$$9174212 = $$9174209;$$9211 = $31; + while(1) { + $105 = HEAP16[$$9160210>>1]|0; + $106 = $105&65535; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP16[$107>>1]|0; + $109 = $108&65535; + $110 = ((($$9160210)) + 4|0); + $111 = HEAP16[$110>>1]|0; + $112 = $111&65535; + $113 = (_stbi__compute_y_16($106,$109,$112)|0); + HEAP16[$$9211>>1] = $113; + $114 = ((($$9160210)) + 8|0); + $115 = ((($$9211)) + 2|0); + $$9174 = (($$9174212) + -1)|0; + $116 = ($$9174|0)>(-1); + if ($116) { + $$9160210 = $114;$$9174212 = $$9174;$$9211 = $115; + } else { + break; + } + } + } + break; + } + case 34: { + if ($25) { + $$10161205 = $29;$$10175207 = $$10175204;$$10206 = $31; + while(1) { + $117 = HEAP16[$$10161205>>1]|0; + $118 = $117&65535; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP16[$119>>1]|0; + $121 = $120&65535; + $122 = ((($$10161205)) + 4|0); + $123 = HEAP16[$122>>1]|0; + $124 = $123&65535; + $125 = (_stbi__compute_y_16($118,$121,$124)|0); + HEAP16[$$10206>>1] = $125; + $126 = ((($$10161205)) + 6|0); + $127 = HEAP16[$126>>1]|0; + $128 = ((($$10206)) + 2|0); + HEAP16[$128>>1] = $127; + $129 = ((($$10161205)) + 8|0); + $130 = ((($$10206)) + 4|0); + $$10175 = (($$10175207) + -1)|0; + $131 = ($$10175|0)>(-1); + if ($131) { + $$10161205 = $129;$$10175207 = $$10175;$$10206 = $130; + } else { + break; + } + } + } + break; + } + case 35: { + if ($26) { + $$11162201 = $29;$$11176203 = $$11176200;$$11202 = $31; + while(1) { + $132 = HEAP16[$$11162201>>1]|0; + HEAP16[$$11202>>1] = $132; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP16[$133>>1]|0; + $135 = ((($$11202)) + 2|0); + HEAP16[$135>>1] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = HEAP16[$136>>1]|0; + $138 = ((($$11202)) + 4|0); + HEAP16[$138>>1] = $137; + $139 = ((($$11162201)) + 8|0); + $140 = ((($$11202)) + 6|0); + $$11176 = (($$11176203) + -1)|0; + $141 = ($$11176|0)>(-1); + if ($141) { + $$11162201 = $139;$$11176203 = $$11176;$$11202 = $140; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $142 = (($$0164259) + 1)|0; + $143 = ($142|0)<($4|0); + if ($143) { + $$0164259 = $142; + } else { + break L11; + } + } + ___assert_fail((9997|0),(9847|0),1555,(9974|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $10; + return ($$0163|0); +} +function _stbi__compute_y_16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&65535; + return ($9|0); +} +function _stbi__malloc_mad3($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mad3sizes_valid($0,$1,$2)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + $5 = Math_imul($1, $0)|0; + $6 = Math_imul($5, $2)|0; + $7 = (_stbi__malloc($6)|0); + $$0 = $7; + return ($$0|0); +} +function _stbi__compute_y($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&255; + return ($9|0); +} +function _stbi__mad3sizes_valid($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mul2sizes_valid($0,$1)|0); + $4 = ($3|0)==(0); + if ($4) { + $12 = 0; + } else { + $5 = Math_imul($1, $0)|0; + $6 = (_stbi__mul2sizes_valid($5,$2)|0); + $7 = ($6|0)==(0); + if ($7) { + $12 = 0; + } else { + $8 = Math_imul($5, $2)|0; + $9 = (_stbi__addsizes_valid($8)|0); + $10 = ($9|0)!=(0); + $12 = $10; + } + } + $11 = $12&1; + return ($11|0); +} +function _stbi__mul2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 | $0; + $3 = ($2|0)<(0); + if ($3) { + $$0 = 0; + } else { + $4 = ($1|0)==(0); + if ($4) { + $$0 = 1; + } else { + $5 = (2147483647 / ($1|0))&-1; + $6 = ($5|0)>=($0|0); + $7 = $6&1; + $$0 = $7; + } + } + return ($$0|0); +} +function _stbi__addsizes_valid($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 1; +} +function _stbi__check_png_header($0) { + $0 = $0|0; + var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = ($1<<24>>24)==(-119); + if ($2) { + $3 = (_stbi__get8($0)|0); + $4 = ($3<<24>>24)==(80); + if ($4) { + $5 = (_stbi__get8($0)|0); + $6 = ($5<<24>>24)==(78); + if ($6) { + $7 = (_stbi__get8($0)|0); + $8 = ($7<<24>>24)==(71); + if ($8) { + $9 = (_stbi__get8($0)|0); + $10 = ($9<<24>>24)==(13); + if ($10) { + $11 = (_stbi__get8($0)|0); + $12 = ($11<<24>>24)==(10); + if ($12) { + $13 = (_stbi__get8($0)|0); + $14 = ($13<<24>>24)==(26); + if ($14) { + $15 = (_stbi__get8($0)|0); + $16 = ($15<<24>>24)==(10); + if ($16) { + $$05 = 1; + return ($$05|0); + } + } + } + } + } + } + } + } + _stbi__err(11258); + $$05 = 0; + return ($$05|0); +} +function _stbi__get_chunk_header($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$4$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__get32be($1)|0); + $3 = (_stbi__get32be($1)|0); + HEAP32[$0>>2] = $2; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $3; + return; +} +function _stbi__skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(0); + if ($2) { + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 168|0); + HEAP32[$5>>2] = $4; + return; + } + $6 = ((($0)) + 16|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0|0); + if (!($8)) { + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 168|0); + $12 = HEAP32[$11>>2]|0; + $13 = $10; + $14 = (($13) - ($12))|0; + $15 = ($14|0)<($1|0); + if ($15) { + HEAP32[$11>>2] = $10; + $16 = ((($0)) + 20|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($0)) + 28|0); + $19 = HEAP32[$18>>2]|0; + $20 = (($1) - ($14))|0; + FUNCTION_TABLE_vii[$17 & 63]($19,$20); + return; + } + } + $21 = ((($0)) + 168|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($22) + ($1)|0); + HEAP32[$21>>2] = $23; + return; +} +function _stbi__get32be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get16be($0)|0); + $2 = $1 << 16; + $3 = (_stbi__get16be($0)|0); + $4 = (($2) + ($3))|0; + return ($4|0); +} +function _stbi__get8($0) { + $0 = $0|0; + var $$0 = 0, $$sink6 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 168|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)<($4>>>0); + do { + if ($5) { + $$sink6 = $2; + } else { + $6 = ((($0)) + 32|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0); + if ($8) { + $$0 = 0; + return ($$0|0); + } else { + _stbi__refill_buffer($0); + $9 = HEAP32[$1>>2]|0; + $$sink6 = $9; + break; + } + } + } while(0); + $10 = ((($$sink6)) + 1|0); + HEAP32[$1>>2] = $10; + $11 = HEAP8[$$sink6>>0]|0; + $$0 = $11; + return ($$0|0); +} +function _stbi__get16be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = $1&255; + $3 = $2 << 8; + $4 = (_stbi__get8($0)|0); + $5 = $4&255; + $6 = $3 | $5; + return ($6|0); +} +function _stbi__getn($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($0)) + 172|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($0)) + 168|0); + $9 = HEAP32[$8>>2]|0; + $10 = $9; + $11 = (($7) - ($10))|0; + $12 = ($11|0)<($2|0); + if ($12) { + _memcpy(($1|0),($9|0),($11|0))|0; + $13 = HEAP32[$3>>2]|0; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + $16 = (($1) + ($11)|0); + $17 = (($2) - ($11))|0; + $18 = (FUNCTION_TABLE_iiii[$13 & 15]($15,$16,$17)|0); + $19 = ($18|0)==($17|0); + $20 = $19&1; + $21 = HEAP32[$6>>2]|0; + HEAP32[$8>>2] = $21; + $$1 = $20; + return ($$1|0); + } + } + $22 = ((($0)) + 168|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($23) + ($2)|0); + $25 = ((($0)) + 172|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($24>>>0)>($26>>>0); + if ($27) { + $$1 = 0; + return ($$1|0); + } + _memcpy(($1|0),($23|0),($2|0))|0; + $28 = HEAP32[$22>>2]|0; + $29 = (($28) + ($2)|0); + HEAP32[$22>>2] = $29; + $$1 = 1; + return ($$1|0); +} +function _stbi_zlib_decode_malloc_guesssize_headerflag($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 4080|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(4080|0); + $5 = sp; + $6 = (_stbi__malloc($2)|0); + $7 = ($6|0)==(0|0); + do { + if ($7) { + $$0 = 0; + } else { + HEAP32[$5>>2] = $0; + $8 = (($0) + ($1)|0); + $9 = ((($5)) + 4|0); + HEAP32[$9>>2] = $8; + $10 = (_stbi__do_zlib($5,$6,$2,1,$4)|0); + $11 = ($10|0)==(0); + $12 = ((($5)) + 20|0); + $13 = HEAP32[$12>>2]|0; + if ($11) { + _free($13); + $$0 = 0; + break; + } + $14 = ($3|0)==(0|0); + if ($14) { + $$0 = $13; + } else { + $15 = ((($5)) + 16|0); + $16 = HEAP32[$15>>2]|0; + $17 = $13; + $18 = (($16) - ($17))|0; + HEAP32[$3>>2] = $18; + $$0 = $13; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _stbi__create_png_image($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$0103117 = 0, $$0106116 = 0, $$0107115 = 0, $$095119 = 0, $$099118 = 0, $$3102$ph = 0, $$398$ph = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $7 = ($4|0)==(16); + $8 = $7 ? 2 : 1; + $9 = Math_imul($8, $3)|0; + $10 = ($6|0)==(0); + $11 = HEAP32[$0>>2]|0; + $12 = HEAP32[$11>>2]|0; + $13 = ((($11)) + 4|0); + $14 = HEAP32[$13>>2]|0; + if ($10) { + $15 = (_stbi__create_png_image_raw($0,$1,$2,$3,$12,$14,$4,$5)|0); + $$4 = $15; + return ($$4|0); + } + $16 = (_stbi__malloc_mad3($12,$14,$9)|0); + $17 = ((($0)) + 12|0); + $18 = ((($0)) + 12|0); + $$0103117 = 0;$$095119 = $1;$$099118 = $2; + while(1) { + $19 = HEAP32[$0>>2]|0; + $20 = HEAP32[$19>>2]|0; + $21 = (3048 + ($$0103117<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = (3076 + ($$0103117<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (($20) + -1)|0; + $26 = (($25) - ($22))|0; + $27 = (($26) + ($24))|0; + $28 = (($27>>>0) / ($24>>>0))&-1; + $29 = ((($19)) + 4|0); + $30 = HEAP32[$29>>2]|0; + $31 = (3104 + ($$0103117<<2)|0); + $32 = HEAP32[$31>>2]|0; + $33 = (3132 + ($$0103117<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (($30) + -1)|0; + $36 = (($35) - ($32))|0; + $37 = (($36) + ($34))|0; + $38 = (($37>>>0) / ($34>>>0))&-1; + $39 = ($24>>>0)<=($27>>>0); + $40 = ($34>>>0)<=($37>>>0); + $or$cond = $39 & $40; + if ($or$cond) { + $41 = ((($19)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = Math_imul($28, $4)|0; + $44 = Math_imul($43, $42)|0; + $45 = (($44) + 7)|0; + $46 = $45 >> 3; + $47 = (($46) + 1)|0; + $48 = Math_imul($47, $38)|0; + $49 = (_stbi__create_png_image_raw($0,$$095119,$$099118,$3,$28,$38,$4,$5)|0); + $50 = ($49|0)==(0); + if ($50) { + label = 13; + break; + } + $51 = ($38|0)>(0); + if ($51) { + $52 = ($28|0)>(0); + $$0106116 = 0; + while(1) { + if ($52) { + $53 = HEAP32[$33>>2]|0; + $54 = Math_imul($53, $$0106116)|0; + $55 = HEAP32[$31>>2]|0; + $56 = (($54) + ($55))|0; + $57 = HEAP32[$23>>2]|0; + $58 = HEAP32[$21>>2]|0; + $59 = Math_imul($56, $9)|0; + $60 = Math_imul($$0106116, $28)|0; + $$0107115 = 0; + while(1) { + $61 = Math_imul($57, $$0107115)|0; + $62 = (($61) + ($58))|0; + $63 = HEAP32[$0>>2]|0; + $64 = HEAP32[$63>>2]|0; + $65 = Math_imul($59, $64)|0; + $66 = (($16) + ($65)|0); + $67 = Math_imul($62, $9)|0; + $68 = (($66) + ($67)|0); + $69 = HEAP32[$18>>2]|0; + $70 = (($$0107115) + ($60))|0; + $71 = Math_imul($70, $9)|0; + $72 = (($69) + ($71)|0); + _memcpy(($68|0),($72|0),($9|0))|0; + $73 = (($$0107115) + 1)|0; + $74 = ($73|0)<($28|0); + if ($74) { + $$0107115 = $73; + } else { + break; + } + } + } + $75 = (($$0106116) + 1)|0; + $76 = ($75|0)<($38|0); + if ($76) { + $$0106116 = $75; + } else { + break; + } + } + } + $77 = HEAP32[$17>>2]|0; + _free($77); + $78 = (($$095119) + ($48)|0); + $79 = (($$099118) - ($48))|0; + $$3102$ph = $79;$$398$ph = $78; + } else { + $$3102$ph = $$099118;$$398$ph = $$095119; + } + $80 = (($$0103117) + 1)|0; + $81 = ($80|0)<(7); + if ($81) { + $$0103117 = $80;$$095119 = $$398$ph;$$099118 = $$3102$ph; + } else { + label = 15; + break; + } + } + if ((label|0) == 13) { + _free($16); + $$4 = 0; + return ($$4|0); + } + else if ((label|0) == 15) { + $82 = ((($0)) + 12|0); + HEAP32[$82>>2] = $16; + $$4 = 1; + return ($$4|0); + } + return (0)|0; +} +function _stbi__compute_transparency16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP16[$$04>>1]|0; + $15 = HEAP16[$1>>1]|0; + $not$ = ($14<<16>>16)!=($15<<16>>16); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 2|0); + HEAP16[$17>>1] = $16; + $18 = ((($$04)) + 4|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 2|0); + $12 = ((($1)) + 4|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP16[$$16>>1]|0; + $21 = HEAP16[$1>>1]|0; + $22 = ($20<<16>>16)==($21<<16>>16); + if ($22) { + $23 = ((($$16)) + 2|0); + $24 = HEAP16[$23>>1]|0; + $25 = HEAP16[$11>>1]|0; + $26 = ($24<<16>>16)==($25<<16>>16); + if ($26) { + $27 = ((($$16)) + 4|0); + $28 = HEAP16[$27>>1]|0; + $29 = HEAP16[$12>>1]|0; + $30 = ($28<<16>>16)==($29<<16>>16); + if ($30) { + $31 = ((($$16)) + 6|0); + HEAP16[$31>>1] = 0; + } + } + } + $32 = ((($$16)) + 8|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((10340|0),(9847|0),4569,(10392|0)); + // unreachable; + } + } +} +function _stbi__compute_transparency($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP8[$$04>>0]|0; + $15 = HEAP8[$1>>0]|0; + $not$ = ($14<<24>>24)!=($15<<24>>24); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 1|0); + HEAP8[$17>>0] = $16; + $18 = ((($$04)) + 2|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 1|0); + $12 = ((($1)) + 2|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP8[$$16>>0]|0; + $21 = HEAP8[$1>>0]|0; + $22 = ($20<<24>>24)==($21<<24>>24); + if ($22) { + $23 = ((($$16)) + 1|0); + $24 = HEAP8[$23>>0]|0; + $25 = HEAP8[$11>>0]|0; + $26 = ($24<<24>>24)==($25<<24>>24); + if ($26) { + $27 = ((($$16)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = HEAP8[$12>>0]|0; + $30 = ($28<<24>>24)==($29<<24>>24); + if ($30) { + $31 = ((($$16)) + 3|0); + HEAP8[$31>>0] = 0; + } + } + } + $32 = ((($$16)) + 4|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((10340|0),(9847|0),4544,(10365|0)); + // unreachable; + } + } +} +function _stbi__de_iphone($0) { + $0 = $0|0; + var $$05158 = 0, $$059 = 0, $$15263 = 0, $$164 = 0, $$25360 = 0, $$261 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond68 = 0, $exitcond69 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = Math_imul($4, $2)|0; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($1)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($9|0) { + case 3: { + $10 = ($5|0)==(0); + if ($10) { + return; + } else { + $$05158 = $7;$$059 = 0; + } + while(1) { + $11 = HEAP8[$$05158>>0]|0; + $12 = ((($$05158)) + 2|0); + $13 = HEAP8[$12>>0]|0; + HEAP8[$$05158>>0] = $13; + HEAP8[$12>>0] = $11; + $14 = ((($$05158)) + 3|0); + $15 = (($$059) + 1)|0; + $exitcond = ($15|0)==($5|0); + if ($exitcond) { + break; + } else { + $$05158 = $14;$$059 = $15; + } + } + return; + break; + } + case 4: { + $16 = HEAP32[5271]|0; + $17 = ($16|0)==(0); + $18 = ($5|0)!=(0); + if ($17) { + if ($18) { + $$25360 = $7;$$261 = 0; + } else { + return; + } + while(1) { + $42 = HEAP8[$$25360>>0]|0; + $43 = ((($$25360)) + 2|0); + $44 = HEAP8[$43>>0]|0; + HEAP8[$$25360>>0] = $44; + HEAP8[$43>>0] = $42; + $45 = ((($$25360)) + 4|0); + $46 = (($$261) + 1)|0; + $exitcond68 = ($46|0)==($5|0); + if ($exitcond68) { + break; + } else { + $$25360 = $45;$$261 = $46; + } + } + return; + } + if ($18) { + $$15263 = $7;$$164 = 0; + } else { + return; + } + while(1) { + $19 = ((($$15263)) + 3|0); + $20 = HEAP8[$19>>0]|0; + $21 = HEAP8[$$15263>>0]|0; + $22 = ($20<<24>>24)==(0); + $23 = ((($$15263)) + 2|0); + $24 = HEAP8[$23>>0]|0; + if ($22) { + HEAP8[$$15263>>0] = $24; + $$sink = $21; + } else { + $25 = $24&255; + $26 = ($25*255)|0; + $27 = $20&255; + $28 = (($26>>>0) / ($27>>>0))&-1; + $29 = $28&255; + HEAP8[$$15263>>0] = $29; + $30 = ((($$15263)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = ($32*255)|0; + $34 = (($33>>>0) / ($27>>>0))&-1; + $35 = $34&255; + HEAP8[$30>>0] = $35; + $36 = $21&255; + $37 = ($36*255)|0; + $38 = (($37>>>0) / ($27>>>0))&-1; + $39 = $38&255; + $$sink = $39; + } + HEAP8[$23>>0] = $$sink; + $40 = ((($$15263)) + 4|0); + $41 = (($$164) + 1)|0; + $exitcond69 = ($41|0)==($5|0); + if ($exitcond69) { + break; + } else { + $$15263 = $40;$$164 = $41; + } + } + return; + break; + } + default: { + ___assert_fail((10306|0),(9847|0),4650,(10324|0)); + // unreachable; + } + } +} +function _stbi__expand_png_palette($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0574 = 0, $$0583 = 0, $$1595 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_stbi__malloc_mad2($7,$2)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _stbi__err(9902); + $$0 = 0; + return ($$0|0); + } + $12 = ($2|0)==(3); + $13 = ($7|0)!=(0); + if ($12) { + if ($13) { + $$0574 = 0;$$0583 = $10; + while(1) { + $14 = (($9) + ($$0574)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = $16 << 2; + $18 = (($1) + ($17)|0); + $19 = HEAP8[$18>>0]|0; + HEAP8[$$0583>>0] = $19; + $20 = $17 | 1; + $21 = (($1) + ($20)|0); + $22 = HEAP8[$21>>0]|0; + $23 = ((($$0583)) + 1|0); + HEAP8[$23>>0] = $22; + $24 = $17 | 2; + $25 = (($1) + ($24)|0); + $26 = HEAP8[$25>>0]|0; + $27 = ((($$0583)) + 2|0); + HEAP8[$27>>0] = $26; + $28 = ((($$0583)) + 3|0); + $29 = (($$0574) + 1)|0; + $exitcond = ($29|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0574 = $29;$$0583 = $28; + } + } + } + } else { + if ($13) { + $$1595 = $10;$$16 = 0; + while(1) { + $30 = (($9) + ($$16)|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 << 2; + $34 = (($1) + ($33)|0); + $35 = HEAP8[$34>>0]|0; + HEAP8[$$1595>>0] = $35; + $36 = $33 | 1; + $37 = (($1) + ($36)|0); + $38 = HEAP8[$37>>0]|0; + $39 = ((($$1595)) + 1|0); + HEAP8[$39>>0] = $38; + $40 = $33 | 2; + $41 = (($1) + ($40)|0); + $42 = HEAP8[$41>>0]|0; + $43 = ((($$1595)) + 2|0); + HEAP8[$43>>0] = $42; + $44 = $33 | 3; + $45 = (($1) + ($44)|0); + $46 = HEAP8[$45>>0]|0; + $47 = ((($$1595)) + 3|0); + HEAP8[$47>>0] = $46; + $48 = ((($$1595)) + 4|0); + $49 = (($$16) + 1)|0; + $exitcond9 = ($49|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1595 = $48;$$16 = $49; + } + } + } + } + $50 = HEAP32[$8>>2]|0; + _free($50); + HEAP32[$8>>2] = $10; + $$0 = 1; + return ($$0|0); +} +function _stbi__malloc_mad2($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mad2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $$0 = 0; + return ($$0|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__malloc($4)|0); + $$0 = $5; + return ($$0|0); +} +function _stbi__mad2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mul2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $8 = 0; + $7 = $8&1; + return ($7|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__addsizes_valid($4)|0); + $6 = ($5|0)!=(0); + $8 = $6; + $7 = $8&1; + return ($7|0); +} +function _stbi__create_png_image_raw($0,$1,$2,$3,$4,$5,$6,$7) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + $7 = $7|0; + var $$0568 = 0, $$0568724 = 0, $$0568725 = 0, $$0571$lcssa = 0, $$0571715 = 0, $$0574$lcssa = 0, $$0574714 = 0, $$0577817 = 0, $$0588 = 0, $$0597 = 0, $$0608816 = 0, $$0611815 = 0, $$0614 = 0, $$0614793 = 0, $$0614796 = 0, $$0623814 = 0, $$0625734 = 0, $$0731 = 0, $$1 = 0, $$10635764 = 0; + var $$11$ph = 0, $$11636755 = 0, $$12747 = 0, $$13739 = 0, $$14$lcssa = 0, $$14713 = 0, $$15$lcssa = 0, $$15705 = 0, $$1572$lcssa = 0, $$1572707 = 0, $$1575$lcssa = 0, $$1575706 = 0, $$1578 = 0, $$16$lcssa = 0, $$1609 = 0, $$1612 = 0, $$1615 = 0, $$1615785 = 0, $$1615788 = 0, $$1624727 = 0; + var $$1626812 = 0, $$16700 = 0, $$1721 = 0, $$1722 = 0, $$2 = 0, $$2573$lcssa = 0, $$2573702 = 0, $$2579795 = 0, $$2599794 = 0, $$2616 = 0, $$2616776 = 0, $$2616780 = 0, $$2627810 = 0, $$3580787 = 0, $$3592778 = 0, $$3600786 = 0, $$3617 = 0, $$3617767 = 0, $$3617771 = 0, $$3628808 = 0; + var $$4$lcssa = 0, $$4581779 = 0, $$4593769 = 0, $$4601777 = 0, $$4618 = 0, $$4618758 = 0, $$4618762 = 0, $$4629806 = 0, $$4701 = 0, $$5582770 = 0, $$5594760 = 0, $$5602768 = 0, $$5619 = 0, $$5619750 = 0, $$5619753 = 0, $$5630804 = 0, $$6583761 = 0, $$6603759 = 0, $$6620 = 0, $$6620742 = 0; + var $$6620745 = 0, $$6631802 = 0, $$7584752 = 0, $$7604751 = 0, $$7621798 = 0, $$7632790 = 0, $$8585744 = 0, $$8605743 = 0, $$8622729 = 0, $$8633782 = 0, $$9586 = 0, $$9606799 = 0, $$9634773 = 0, $$not = 0, $$sink = 0, $$sink1 = 0, $$sink641 = 0, $10 = 0, $100 = 0, $101 = 0; + var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; + var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; + var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; + var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; + var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; + var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; + var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; + var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; + var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; + var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; + var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0; + var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0; + var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0; + var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0; + var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0; + var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0; + var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0; + var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0; + var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0; + var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0; + var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0; + var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0; + var $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0; + var $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0; + var $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0; + var $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0; + var $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0; + var $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0; + var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; + var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; + var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge894 = 0, $exitcond = 0, $exitcond864 = 0, $exitcond865 = 0, $exitcond867 = 0, $exitcond869 = 0, $exitcond871 = 0, $exitcond873 = 0, $exitcond875 = 0, $exitcond877 = 0, $exitcond880 = 0, $exitcond881 = 0, $exitcond882 = 0, $exitcond883 = 0, $exitcond884 = 0; + var $exitcond885 = 0, $exitcond886 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next849 = 0, $indvars$iv$next852 = 0, $indvars$iv$next855 = 0, $indvars$iv$next858 = 0, $indvars$iv$next861 = 0, $indvars$iv848 = 0, $indvars$iv851 = 0, $indvars$iv854 = 0, $indvars$iv857 = 0, $indvars$iv860 = 0, $or$cond = 0, $scevgep = 0, $scevgep850 = 0, $scevgep853 = 0, $scevgep856 = 0, $scevgep859 = 0; + var $scevgep862 = 0, $scevgep866 = 0, $scevgep868 = 0, $scevgep870 = 0, $scevgep872 = 0, $scevgep874 = 0, $scevgep876 = 0, $scevgep879 = 0, $trunc = 0, $trunc637 = 0, $trunc638 = 0, label = 0, sp = 0; + sp = STACKTOP; + $8 = ($6|0)==(16); + $9 = $8 ? 2 : 1; + $10 = HEAP32[$0>>2]|0; + $11 = Math_imul($4, $3)|0; + $12 = Math_imul($9, $11)|0; + $13 = ((($10)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = Math_imul($9, $3)|0; + $16 = Math_imul($14, $9)|0; + $17 = ($14|0)==($3|0); + $18 = (($14) + 1)|0; + $19 = ($18|0)==($3|0); + $or$cond = $17 | $19; + if (!($or$cond)) { + ___assert_fail((10421|0),(9847|0),4294,(10462|0)); + // unreachable; + } + $20 = (_stbi__malloc_mad3($4,$5,$15)|0); + $21 = ((($0)) + 12|0); + HEAP32[$21>>2] = $20; + $22 = ($20|0)==(0|0); + if ($22) { + _stbi__err(9902); + $$2 = 0; + return ($$2|0); + } + $23 = Math_imul($14, $4)|0; + $24 = Math_imul($23, $6)|0; + $25 = (($24) + 7)|0; + $26 = $25 >>> 3; + $27 = (($26) + 1)|0; + $28 = Math_imul($27, $5)|0; + $29 = HEAP32[$10>>2]|0; + $30 = ($29|0)==($4|0); + if ($30) { + $31 = ((($10)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($5|0); + if ($33) { + $34 = ($28|0)==($2|0); + if (!($34)) { + _stbi__err(10489); + $$2 = 0; + return ($$2|0); + } + } else { + label = 9; + } + } else { + label = 9; + } + if ((label|0) == 9) { + $35 = ($28>>>0)>($2>>>0); + if ($35) { + _stbi__err(10489); + $$2 = 0; + return ($$2|0); + } + } + $36 = ($5|0)==(0); + L18: do { + if (!($36)) { + $37 = ($6|0)<(8); + $38 = ($26>>>0)>($4>>>0); + $39 = (($11) - ($26))|0; + $40 = (0 - ($12))|0; + $41 = ($6|0)==(8); + $brmerge = $37 | $17; + $42 = ($4|0)==(0); + $$0614793 = (($4) + -1)|0; + $43 = ($$0614793|0)==(0); + $$1615785 = (($4) + -1)|0; + $44 = ($$1615785|0)==(0); + $$2616776 = (($4) + -1)|0; + $45 = ($$2616776|0)==(0); + $$3617767 = (($4) + -1)|0; + $46 = ($$3617767|0)==(0); + $$4618758 = (($4) + -1)|0; + $47 = ($$4618758|0)==(0); + $$5619750 = (($4) + -1)|0; + $48 = ($$5619750|0)==(0); + $$6620742 = (($4) + -1)|0; + $49 = ($$6620742|0)==(0); + $$not = $8 ^ 1; + $brmerge894 = $42 | $$not; + $$0577817 = $1;$$0608816 = $4;$$0611815 = $16;$$0623814 = 0; + while(1) { + $50 = HEAP32[$21>>2]|0; + $51 = Math_imul($$0623814, $12)|0; + $52 = (($50) + ($51)|0); + $53 = ((($$0577817)) + 1|0); + $54 = HEAP8[$$0577817>>0]|0; + $55 = $54&255; + $56 = ($54&255)>(4); + if ($56) { + label = 105; + break; + } + if ($37) { + if ($38) { + label = 16; + break; + } + $57 = (($52) + ($39)|0); + $$0597 = $57;$$1609 = $26;$$1612 = 1; + } else { + $$0597 = $52;$$1609 = $$0608816;$$1612 = $$0611815; + } + $58 = (($$0597) + ($40)|0); + $59 = ($$0623814|0)==(0); + if ($59) { + $60 = (10528 + ($55)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $$0588 = $62; + } else { + $$0588 = $55; + } + $63 = ($$1612|0)>(0); + L30: do { + if ($63) { + $trunc638 = $$0588&255; + $$0625734 = 0; + while(1) { + switch ($trunc638<<24>>24) { + case 0: { + $64 = (($53) + ($$0625734)|0); + $65 = HEAP8[$64>>0]|0; + $$sink = $65; + label = 30; + break; + } + case 1: { + $66 = (($53) + ($$0625734)|0); + $67 = HEAP8[$66>>0]|0; + $$sink = $67; + label = 30; + break; + } + case 2: { + $68 = (($53) + ($$0625734)|0); + $69 = HEAP8[$68>>0]|0; + $70 = $69&255; + $71 = (($58) + ($$0625734)|0); + $72 = HEAP8[$71>>0]|0; + $73 = $72&255; + $74 = (($73) + ($70))|0; + $75 = $74&255; + $$sink = $75; + label = 30; + break; + } + case 3: { + $76 = (($53) + ($$0625734)|0); + $77 = HEAP8[$76>>0]|0; + $78 = $77&255; + $79 = (($58) + ($$0625734)|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = $81 >>> 1; + $83 = (($82) + ($78))|0; + $84 = $83&255; + $$sink = $84; + label = 30; + break; + } + case 4: { + $85 = (($53) + ($$0625734)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $86&255; + $88 = (($58) + ($$0625734)|0); + $89 = HEAP8[$88>>0]|0; + $90 = $89&255; + $91 = (_stbi__paeth(0,$90,0)|0); + $92 = (($91) + ($87))|0; + $93 = $92&255; + $$sink = $93; + label = 30; + break; + } + case 5: { + $94 = (($53) + ($$0625734)|0); + $95 = HEAP8[$94>>0]|0; + $$sink = $95; + label = 30; + break; + } + case 6: { + $96 = (($53) + ($$0625734)|0); + $97 = HEAP8[$96>>0]|0; + $$sink = $97; + label = 30; + break; + } + default: { + } + } + if ((label|0) == 30) { + label = 0; + $$sink1 = (($$0597) + ($$0625734)|0); + HEAP8[$$sink1>>0] = $$sink; + } + $98 = (($$0625734) + 1)|0; + $exitcond864 = ($98|0)==($$1612|0); + if ($exitcond864) { + break L30; + } else { + $$0625734 = $98; + } + } + } + } while(0); + do { + if ($41) { + if (!($17)) { + $99 = (($$0597) + ($14)|0); + HEAP8[$99>>0] = -1; + } + $100 = (($53) + ($14)|0); + $$1578 = $100;$$sink641 = $3; + } else { + if (!($8)) { + $105 = ((($$0577817)) + 2|0); + $$1578 = $105;$$sink641 = 1; + break; + } + if (!($17)) { + $101 = (($$1612) + 1)|0; + $102 = (($$0597) + ($101)|0); + $103 = (($$0597) + ($$1612)|0); + HEAP8[$103>>0] = -1; + HEAP8[$102>>0] = -1; + } + $104 = (($53) + ($$1612)|0); + $$1578 = $104;$$sink641 = $15; + } + } while(0); + $106 = (($$0597) + ($$sink641)|0); + $107 = (($58) + ($$sink641)|0); + if ($brmerge) { + $108 = (($$1609) + -1)|0; + $109 = Math_imul($108, $$1612)|0; + $trunc637 = $$0588&255; + switch ($trunc637<<24>>24) { + case 0: { + _memcpy(($106|0),($$1578|0),($109|0))|0; + break; + } + case 1: { + $115 = ($109|0)>(0); + if ($115) { + $$1626812 = 0; + while(1) { + $116 = (($$1578) + ($$1626812)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = (($$1626812) - ($$1612))|0; + $120 = (($106) + ($119)|0); + $121 = HEAP8[$120>>0]|0; + $122 = $121&255; + $123 = (($122) + ($118))|0; + $124 = $123&255; + $125 = (($106) + ($$1626812)|0); + HEAP8[$125>>0] = $124; + $126 = (($$1626812) + 1)|0; + $exitcond886 = ($126|0)==($109|0); + if ($exitcond886) { + break; + } else { + $$1626812 = $126; + } + } + } + break; + } + case 2: { + $114 = ($109|0)>(0); + if ($114) { + $$2627810 = 0; + while(1) { + $127 = (($$1578) + ($$2627810)|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = (($107) + ($$2627810)|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = (($132) + ($129))|0; + $134 = $133&255; + $135 = (($106) + ($$2627810)|0); + HEAP8[$135>>0] = $134; + $136 = (($$2627810) + 1)|0; + $exitcond885 = ($136|0)==($109|0); + if ($exitcond885) { + break; + } else { + $$2627810 = $136; + } + } + } + break; + } + case 3: { + $113 = ($109|0)>(0); + if ($113) { + $$3628808 = 0; + while(1) { + $137 = (($$1578) + ($$3628808)|0); + $138 = HEAP8[$137>>0]|0; + $139 = $138&255; + $140 = (($107) + ($$3628808)|0); + $141 = HEAP8[$140>>0]|0; + $142 = $141&255; + $143 = (($$3628808) - ($$1612))|0; + $144 = (($106) + ($143)|0); + $145 = HEAP8[$144>>0]|0; + $146 = $145&255; + $147 = (($146) + ($142))|0; + $148 = $147 >>> 1; + $149 = (($148) + ($139))|0; + $150 = $149&255; + $151 = (($106) + ($$3628808)|0); + HEAP8[$151>>0] = $150; + $152 = (($$3628808) + 1)|0; + $exitcond884 = ($152|0)==($109|0); + if ($exitcond884) { + break; + } else { + $$3628808 = $152; + } + } + } + break; + } + case 4: { + $112 = ($109|0)>(0); + if ($112) { + $$4629806 = 0; + while(1) { + $153 = (($$1578) + ($$4629806)|0); + $154 = HEAP8[$153>>0]|0; + $155 = $154&255; + $156 = (($$4629806) - ($$1612))|0; + $157 = (($106) + ($156)|0); + $158 = HEAP8[$157>>0]|0; + $159 = $158&255; + $160 = (($107) + ($$4629806)|0); + $161 = HEAP8[$160>>0]|0; + $162 = $161&255; + $163 = (($107) + ($156)|0); + $164 = HEAP8[$163>>0]|0; + $165 = $164&255; + $166 = (_stbi__paeth($159,$162,$165)|0); + $167 = (($166) + ($155))|0; + $168 = $167&255; + $169 = (($106) + ($$4629806)|0); + HEAP8[$169>>0] = $168; + $170 = (($$4629806) + 1)|0; + $exitcond883 = ($170|0)==($109|0); + if ($exitcond883) { + break; + } else { + $$4629806 = $170; + } + } + } + break; + } + case 5: { + $111 = ($109|0)>(0); + if ($111) { + $$5630804 = 0; + while(1) { + $171 = (($$1578) + ($$5630804)|0); + $172 = HEAP8[$171>>0]|0; + $173 = $172&255; + $174 = (($$5630804) - ($$1612))|0; + $175 = (($106) + ($174)|0); + $176 = HEAP8[$175>>0]|0; + $177 = $176&255; + $178 = $177 >>> 1; + $179 = (($178) + ($173))|0; + $180 = $179&255; + $181 = (($106) + ($$5630804)|0); + HEAP8[$181>>0] = $180; + $182 = (($$5630804) + 1)|0; + $exitcond882 = ($182|0)==($109|0); + if ($exitcond882) { + break; + } else { + $$5630804 = $182; + } + } + } + break; + } + case 6: { + $110 = ($109|0)>(0); + if ($110) { + $$6631802 = 0; + while(1) { + $183 = (($$1578) + ($$6631802)|0); + $184 = HEAP8[$183>>0]|0; + $185 = $184&255; + $186 = (($$6631802) - ($$1612))|0; + $187 = (($106) + ($186)|0); + $188 = HEAP8[$187>>0]|0; + $189 = $188&255; + $190 = (_stbi__paeth($189,0,0)|0); + $191 = (($190) + ($185))|0; + $192 = $191&255; + $193 = (($106) + ($$6631802)|0); + HEAP8[$193>>0] = $192; + $194 = (($$6631802) + 1)|0; + $exitcond881 = ($194|0)==($109|0); + if ($exitcond881) { + break; + } else { + $$6631802 = $194; + } + } + } + break; + } + default: { + } + } + $195 = (($$1578) + ($109)|0); + $$11$ph = $195; + } else { + if (!($19)) { + label = 58; + break; + } + $trunc = $$0588&255; + switch ($trunc<<24>>24) { + case 0: { + if ($43) { + $$9586 = $$1578; + } else { + $208 = ($$1612|0)>(0); + $209 = Math_imul($$6620742, $$1612)|0; + $$0614796 = $$0614793;$$2579795 = $$1578;$$2599794 = $106; + while(1) { + if ($208) { + $$7632790 = 0; + while(1) { + $210 = (($$2579795) + ($$7632790)|0); + $211 = HEAP8[$210>>0]|0; + $212 = (($$2599794) + ($$7632790)|0); + HEAP8[$212>>0] = $211; + $213 = (($$7632790) + 1)|0; + $exitcond877 = ($213|0)==($$1612|0); + if ($exitcond877) { + break; + } else { + $$7632790 = $213; + } + } + } + $214 = (($$2599794) + ($$1612)|0); + HEAP8[$214>>0] = -1; + $215 = (($$2579795) + ($$1612)|0); + $216 = (($$2599794) + ($15)|0); + $$0614 = (($$0614796) + -1)|0; + $217 = ($$0614|0)==(0); + if ($217) { + break; + } else { + $$0614796 = $$0614;$$2579795 = $215;$$2599794 = $216; + } + } + $scevgep879 = (($$1578) + ($209)|0); + $$9586 = $scevgep879; + } + break; + } + case 1: { + if ($44) { + $$9586 = $$1578; + } else { + $206 = ($$1612|0)>(0); + $207 = Math_imul($$6620742, $$1612)|0; + $$1615788 = $$1615785;$$3580787 = $$1578;$$3600786 = $106; + while(1) { + if ($206) { + $$8633782 = 0; + while(1) { + $218 = (($$3580787) + ($$8633782)|0); + $219 = HEAP8[$218>>0]|0; + $220 = $219&255; + $221 = (($$8633782) - ($15))|0; + $222 = (($$3600786) + ($221)|0); + $223 = HEAP8[$222>>0]|0; + $224 = $223&255; + $225 = (($224) + ($220))|0; + $226 = $225&255; + $227 = (($$3600786) + ($$8633782)|0); + HEAP8[$227>>0] = $226; + $228 = (($$8633782) + 1)|0; + $exitcond875 = ($228|0)==($$1612|0); + if ($exitcond875) { + break; + } else { + $$8633782 = $228; + } + } + } + $229 = (($$3600786) + ($$1612)|0); + HEAP8[$229>>0] = -1; + $230 = (($$3580787) + ($$1612)|0); + $231 = (($$3600786) + ($15)|0); + $$1615 = (($$1615788) + -1)|0; + $232 = ($$1615|0)==(0); + if ($232) { + break; + } else { + $$1615788 = $$1615;$$3580787 = $230;$$3600786 = $231; + } + } + $scevgep876 = (($$1578) + ($207)|0); + $$9586 = $scevgep876; + } + break; + } + case 2: { + if ($45) { + $$9586 = $$1578; + } else { + $204 = ($$1612|0)>(0); + $205 = Math_imul($$6620742, $$1612)|0; + $$2616780 = $$2616776;$$3592778 = $107;$$4581779 = $$1578;$$4601777 = $106; + while(1) { + if ($204) { + $$9634773 = 0; + while(1) { + $233 = (($$4581779) + ($$9634773)|0); + $234 = HEAP8[$233>>0]|0; + $235 = $234&255; + $236 = (($$3592778) + ($$9634773)|0); + $237 = HEAP8[$236>>0]|0; + $238 = $237&255; + $239 = (($238) + ($235))|0; + $240 = $239&255; + $241 = (($$4601777) + ($$9634773)|0); + HEAP8[$241>>0] = $240; + $242 = (($$9634773) + 1)|0; + $exitcond873 = ($242|0)==($$1612|0); + if ($exitcond873) { + break; + } else { + $$9634773 = $242; + } + } + } + $243 = (($$4601777) + ($$1612)|0); + HEAP8[$243>>0] = -1; + $244 = (($$4581779) + ($$1612)|0); + $245 = (($$4601777) + ($15)|0); + $246 = (($$3592778) + ($15)|0); + $$2616 = (($$2616780) + -1)|0; + $247 = ($$2616|0)==(0); + if ($247) { + break; + } else { + $$2616780 = $$2616;$$3592778 = $246;$$4581779 = $244;$$4601777 = $245; + } + } + $scevgep874 = (($$1578) + ($205)|0); + $$9586 = $scevgep874; + } + break; + } + case 3: { + if ($46) { + $$9586 = $$1578; + } else { + $202 = ($$1612|0)>(0); + $203 = Math_imul($$6620742, $$1612)|0; + $$3617771 = $$3617767;$$4593769 = $107;$$5582770 = $$1578;$$5602768 = $106; + while(1) { + if ($202) { + $$10635764 = 0; + while(1) { + $248 = (($$5582770) + ($$10635764)|0); + $249 = HEAP8[$248>>0]|0; + $250 = $249&255; + $251 = (($$4593769) + ($$10635764)|0); + $252 = HEAP8[$251>>0]|0; + $253 = $252&255; + $254 = (($$10635764) - ($15))|0; + $255 = (($$5602768) + ($254)|0); + $256 = HEAP8[$255>>0]|0; + $257 = $256&255; + $258 = (($257) + ($253))|0; + $259 = $258 >>> 1; + $260 = (($259) + ($250))|0; + $261 = $260&255; + $262 = (($$5602768) + ($$10635764)|0); + HEAP8[$262>>0] = $261; + $263 = (($$10635764) + 1)|0; + $exitcond871 = ($263|0)==($$1612|0); + if ($exitcond871) { + break; + } else { + $$10635764 = $263; + } + } + } + $264 = (($$5602768) + ($$1612)|0); + HEAP8[$264>>0] = -1; + $265 = (($$5582770) + ($$1612)|0); + $266 = (($$5602768) + ($15)|0); + $267 = (($$4593769) + ($15)|0); + $$3617 = (($$3617771) + -1)|0; + $268 = ($$3617|0)==(0); + if ($268) { + break; + } else { + $$3617771 = $$3617;$$4593769 = $267;$$5582770 = $265;$$5602768 = $266; + } + } + $scevgep872 = (($$1578) + ($203)|0); + $$9586 = $scevgep872; + } + break; + } + case 4: { + if ($47) { + $$9586 = $$1578; + } else { + $200 = ($$1612|0)>(0); + $201 = Math_imul($$6620742, $$1612)|0; + $$4618762 = $$4618758;$$5594760 = $107;$$6583761 = $$1578;$$6603759 = $106; + while(1) { + if ($200) { + $$11636755 = 0; + while(1) { + $269 = (($$6583761) + ($$11636755)|0); + $270 = HEAP8[$269>>0]|0; + $271 = $270&255; + $272 = (($$11636755) - ($15))|0; + $273 = (($$6603759) + ($272)|0); + $274 = HEAP8[$273>>0]|0; + $275 = $274&255; + $276 = (($$5594760) + ($$11636755)|0); + $277 = HEAP8[$276>>0]|0; + $278 = $277&255; + $279 = (($$5594760) + ($272)|0); + $280 = HEAP8[$279>>0]|0; + $281 = $280&255; + $282 = (_stbi__paeth($275,$278,$281)|0); + $283 = (($282) + ($271))|0; + $284 = $283&255; + $285 = (($$6603759) + ($$11636755)|0); + HEAP8[$285>>0] = $284; + $286 = (($$11636755) + 1)|0; + $exitcond869 = ($286|0)==($$1612|0); + if ($exitcond869) { + break; + } else { + $$11636755 = $286; + } + } + } + $287 = (($$6603759) + ($$1612)|0); + HEAP8[$287>>0] = -1; + $288 = (($$6583761) + ($$1612)|0); + $289 = (($$6603759) + ($15)|0); + $290 = (($$5594760) + ($15)|0); + $$4618 = (($$4618762) + -1)|0; + $291 = ($$4618|0)==(0); + if ($291) { + break; + } else { + $$4618762 = $$4618;$$5594760 = $290;$$6583761 = $288;$$6603759 = $289; + } + } + $scevgep870 = (($$1578) + ($201)|0); + $$9586 = $scevgep870; + } + break; + } + case 5: { + if ($48) { + $$9586 = $$1578; + } else { + $198 = ($$1612|0)>(0); + $199 = Math_imul($$6620742, $$1612)|0; + $$5619753 = $$5619750;$$7584752 = $$1578;$$7604751 = $106; + while(1) { + if ($198) { + $$12747 = 0; + while(1) { + $292 = (($$7584752) + ($$12747)|0); + $293 = HEAP8[$292>>0]|0; + $294 = $293&255; + $295 = (($$12747) - ($15))|0; + $296 = (($$7604751) + ($295)|0); + $297 = HEAP8[$296>>0]|0; + $298 = $297&255; + $299 = $298 >>> 1; + $300 = (($299) + ($294))|0; + $301 = $300&255; + $302 = (($$7604751) + ($$12747)|0); + HEAP8[$302>>0] = $301; + $303 = (($$12747) + 1)|0; + $exitcond867 = ($303|0)==($$1612|0); + if ($exitcond867) { + break; + } else { + $$12747 = $303; + } + } + } + $304 = (($$7604751) + ($$1612)|0); + HEAP8[$304>>0] = -1; + $305 = (($$7584752) + ($$1612)|0); + $306 = (($$7604751) + ($15)|0); + $$5619 = (($$5619753) + -1)|0; + $307 = ($$5619|0)==(0); + if ($307) { + break; + } else { + $$5619753 = $$5619;$$7584752 = $305;$$7604751 = $306; + } + } + $scevgep868 = (($$1578) + ($199)|0); + $$9586 = $scevgep868; + } + break; + } + case 6: { + if ($49) { + $$9586 = $$1578; + } else { + $196 = ($$1612|0)>(0); + $197 = Math_imul($$6620742, $$1612)|0; + $$6620745 = $$6620742;$$8585744 = $$1578;$$8605743 = $106; + while(1) { + if ($196) { + $$13739 = 0; + while(1) { + $308 = (($$8585744) + ($$13739)|0); + $309 = HEAP8[$308>>0]|0; + $310 = $309&255; + $311 = (($$13739) - ($15))|0; + $312 = (($$8605743) + ($311)|0); + $313 = HEAP8[$312>>0]|0; + $314 = $313&255; + $315 = (_stbi__paeth($314,0,0)|0); + $316 = (($315) + ($310))|0; + $317 = $316&255; + $318 = (($$8605743) + ($$13739)|0); + HEAP8[$318>>0] = $317; + $319 = (($$13739) + 1)|0; + $exitcond865 = ($319|0)==($$1612|0); + if ($exitcond865) { + break; + } else { + $$13739 = $319; + } + } + } + $320 = (($$8605743) + ($$1612)|0); + HEAP8[$320>>0] = -1; + $321 = (($$8585744) + ($$1612)|0); + $322 = (($$8605743) + ($15)|0); + $$6620 = (($$6620745) + -1)|0; + $323 = ($$6620|0)==(0); + if ($323) { + break; + } else { + $$6620745 = $$6620;$$8585744 = $321;$$8605743 = $322; + } + } + $scevgep866 = (($$1578) + ($197)|0); + $$9586 = $scevgep866; + } + break; + } + default: { + $$9586 = $$1578; + } + } + if ($brmerge894) { + $$11$ph = $$9586; + } else { + $324 = HEAP32[$21>>2]|0; + $325 = (($324) + ($51)|0); + $326 = (($$1612) + 1)|0; + $$7621798 = 0;$$9606799 = $325; + while(1) { + $327 = (($$9606799) + ($326)|0); + HEAP8[$327>>0] = -1; + $328 = (($$7621798) + 1)|0; + $329 = (($$9606799) + ($15)|0); + $exitcond880 = ($328|0)==($4|0); + if ($exitcond880) { + $$11$ph = $$9586; + break; + } else { + $$7621798 = $328;$$9606799 = $329; + } + } + } + } + $330 = (($$0623814) + 1)|0; + $331 = ($330>>>0)<($5>>>0); + if ($331) { + $$0577817 = $$11$ph;$$0608816 = $$1609;$$0611815 = $$1612;$$0623814 = $330; + } else { + break L18; + } + } + if ((label|0) == 16) { + ___assert_fail((10507|0),(9847|0),4315,(10462|0)); + // unreachable; + } + else if ((label|0) == 58) { + ___assert_fail((10533|0),(9847|0),4377,(10462|0)); + // unreachable; + } + else if ((label|0) == 105) { + _stbi__err(10550); + $$2 = 0; + return ($$2|0); + } + } + } while(0); + $332 = ($6|0)<(8); + if (!($332)) { + if (!($8)) { + $$2 = 1; + return ($$2|0); + } + $601 = Math_imul($4, $3)|0; + $602 = Math_imul($601, $5)|0; + $603 = ($602|0)==(0); + if ($603) { + $$2 = 1; + return ($$2|0); + } + $604 = HEAP32[$21>>2]|0; + $$0731 = $604;$$8622729 = 0; + while(1) { + $605 = HEAP8[$$0731>>0]|0; + $606 = $605&255; + $607 = $606 << 8; + $608 = ((($$0731)) + 1|0); + $609 = HEAP8[$608>>0]|0; + $610 = $609&255; + $611 = $607 | $610; + $612 = $611&65535; + HEAP16[$$0731>>1] = $612; + $613 = (($$8622729) + 1)|0; + $614 = ((($$0731)) + 2|0); + $exitcond = ($613|0)==($602|0); + if ($exitcond) { + $$2 = 1; + break; + } else { + $$0731 = $614;$$8622729 = $613; + } + } + return ($$2|0); + } + $333 = ($5|0)==(0); + if ($333) { + $$2 = 1; + return ($$2|0); + } + $334 = (0 - ($26))|0; + $335 = ($7|0)==(0); + $336 = (10246 + ($6)|0); + $$0568724 = (($4) + -1)|0; + $337 = ($$0568724|0)>(-1); + $$1721 = (($4) + -1)|0; + $338 = ($$1721|0)>(-1); + $339 = ($23|0)>(1); + $340 = ($23|0)>(3); + $341 = ($23|0)>(7); + $342 = (($23) + -8)|0; + $343 = $342 >>> 3; + $344 = $343 << 3; + $345 = (($344) + 8)|0; + $346 = (($342) - ($344))|0; + $347 = (($343) + ($11))|0; + $348 = (($347) + 1)|0; + $349 = (($348) - ($26))|0; + $350 = (($23) + -4)|0; + $351 = $350 >>> 2; + $352 = $351 << 2; + $353 = (($352) + 4)|0; + $354 = (($350) - ($352))|0; + $355 = (($351) + ($11))|0; + $356 = (($355) + 1)|0; + $357 = (($356) - ($26))|0; + $358 = (($23) + -2)|0; + $359 = $358 >>> 1; + $360 = $359 << 1; + $361 = (($360) + 2)|0; + $362 = (($358) - ($360))|0; + $363 = (($359) + ($11))|0; + $364 = (($363) + 1)|0; + $365 = (($364) - ($26))|0; + $$1624727 = 0;$indvars$iv = $345;$indvars$iv848 = $349;$indvars$iv851 = $353;$indvars$iv854 = $357;$indvars$iv857 = $361;$indvars$iv860 = $365; + L174: while(1) { + $366 = HEAP32[$21>>2]|0; + $367 = Math_imul($$1624727, $12)|0; + $368 = (($366) + ($367)|0); + $369 = (($368) + ($11)|0); + $370 = (($369) + ($334)|0); + if ($335) { + $371 = HEAP8[$336>>0]|0; + $372 = $371&255; + $377 = $372; + } else { + $377 = 1; + } + switch ($6|0) { + case 4: { + if ($339) { + $scevgep859 = (($366) + ($indvars$iv857)|0); + $$0571715 = $370;$$0574714 = $368;$$14713 = $23; + while(1) { + $373 = HEAP8[$$0571715>>0]|0; + $374 = $373&255; + $375 = $374 >>> 4; + $376 = Math_imul($375, $377)|0; + $378 = $376&255; + $379 = ((($$0574714)) + 1|0); + HEAP8[$$0574714>>0] = $378; + $380 = HEAP8[$$0571715>>0]|0; + $381 = $380 & 15; + $382 = $381&255; + $383 = Math_imul($382, $377)|0; + $384 = $383&255; + $385 = ((($$0574714)) + 2|0); + HEAP8[$379>>0] = $384; + $386 = (($$14713) + -2)|0; + $387 = ((($$0571715)) + 1|0); + $388 = ($386|0)>(1); + if ($388) { + $$0571715 = $387;$$0574714 = $385;$$14713 = $386; + } else { + break; + } + } + $scevgep862 = (($366) + ($indvars$iv860)|0); + $$0571$lcssa = $scevgep862;$$0574$lcssa = $scevgep859;$$14$lcssa = $362; + } else { + $$0571$lcssa = $370;$$0574$lcssa = $368;$$14$lcssa = $23; + } + $389 = ($$14$lcssa|0)==(1); + if ($389) { + $390 = HEAP8[$$0571$lcssa>>0]|0; + $391 = $390&255; + $392 = $391 >>> 4; + $393 = Math_imul($392, $377)|0; + $394 = $393&255; + HEAP8[$$0574$lcssa>>0] = $394; + } + break; + } + case 2: { + if ($340) { + $scevgep853 = (($366) + ($indvars$iv851)|0); + $$15705 = $23;$$1572707 = $370;$$1575706 = $368; + while(1) { + $395 = HEAP8[$$1572707>>0]|0; + $396 = $395&255; + $397 = $396 >>> 6; + $398 = Math_imul($397, $377)|0; + $399 = $398&255; + $400 = ((($$1575706)) + 1|0); + HEAP8[$$1575706>>0] = $399; + $401 = HEAP8[$$1572707>>0]|0; + $402 = $401&255; + $403 = $402 >>> 4; + $404 = $403 & 3; + $405 = Math_imul($404, $377)|0; + $406 = $405&255; + $407 = ((($$1575706)) + 2|0); + HEAP8[$400>>0] = $406; + $408 = HEAP8[$$1572707>>0]|0; + $409 = $408&255; + $410 = $409 >>> 2; + $411 = $410 & 3; + $412 = Math_imul($411, $377)|0; + $413 = $412&255; + $414 = ((($$1575706)) + 3|0); + HEAP8[$407>>0] = $413; + $415 = HEAP8[$$1572707>>0]|0; + $416 = $415 & 3; + $417 = $416&255; + $418 = Math_imul($417, $377)|0; + $419 = $418&255; + $420 = ((($$1575706)) + 4|0); + HEAP8[$414>>0] = $419; + $421 = (($$15705) + -4)|0; + $422 = ((($$1572707)) + 1|0); + $423 = ($421|0)>(3); + if ($423) { + $$15705 = $421;$$1572707 = $422;$$1575706 = $420; + } else { + break; + } + } + $scevgep856 = (($366) + ($indvars$iv854)|0); + $$15$lcssa = $354;$$1572$lcssa = $scevgep856;$$1575$lcssa = $scevgep853; + } else { + $$15$lcssa = $23;$$1572$lcssa = $370;$$1575$lcssa = $368; + } + $424 = ($$15$lcssa|0)>(0); + if ($424) { + $425 = HEAP8[$$1572$lcssa>>0]|0; + $426 = $425&255; + $427 = $426 >>> 6; + $428 = Math_imul($427, $377)|0; + $429 = $428&255; + HEAP8[$$1575$lcssa>>0] = $429; + $430 = ($$15$lcssa|0)==(1); + if (!($430)) { + $431 = ((($$1575$lcssa)) + 1|0); + $432 = HEAP8[$$1572$lcssa>>0]|0; + $433 = $432&255; + $434 = $433 >>> 4; + $435 = $434 & 3; + $436 = Math_imul($435, $377)|0; + $437 = $436&255; + HEAP8[$431>>0] = $437; + $438 = ($$15$lcssa|0)>(2); + if ($438) { + $439 = ((($$1575$lcssa)) + 2|0); + $440 = HEAP8[$$1572$lcssa>>0]|0; + $441 = $440&255; + $442 = $441 >>> 2; + $443 = $442 & 3; + $444 = Math_imul($443, $377)|0; + $445 = $444&255; + HEAP8[$439>>0] = $445; + } + } + } + break; + } + case 1: { + if ($341) { + $scevgep = (($366) + ($indvars$iv)|0); + $$16700 = $23;$$2573702 = $370;$$4701 = $368; + while(1) { + $446 = HEAP8[$$2573702>>0]|0; + $447 = $446&255; + $448 = $447 >>> 7; + $449 = (0 - ($448))|0; + $450 = $377 & $449; + $451 = $450&255; + $452 = ((($$4701)) + 1|0); + HEAP8[$$4701>>0] = $451; + $453 = HEAP8[$$2573702>>0]|0; + $454 = $453&255; + $455 = $454 >>> 6; + $456 = $455 & 1; + $457 = (0 - ($456))|0; + $458 = $377 & $457; + $459 = $458&255; + $460 = ((($$4701)) + 2|0); + HEAP8[$452>>0] = $459; + $461 = HEAP8[$$2573702>>0]|0; + $462 = $461&255; + $463 = $462 >>> 5; + $464 = $463 & 1; + $465 = (0 - ($464))|0; + $466 = $377 & $465; + $467 = $466&255; + $468 = ((($$4701)) + 3|0); + HEAP8[$460>>0] = $467; + $469 = HEAP8[$$2573702>>0]|0; + $470 = $469&255; + $471 = $470 >>> 4; + $472 = $471 & 1; + $473 = (0 - ($472))|0; + $474 = $377 & $473; + $475 = $474&255; + $476 = ((($$4701)) + 4|0); + HEAP8[$468>>0] = $475; + $477 = HEAP8[$$2573702>>0]|0; + $478 = $477&255; + $479 = $478 >>> 3; + $480 = $479 & 1; + $481 = (0 - ($480))|0; + $482 = $377 & $481; + $483 = $482&255; + $484 = ((($$4701)) + 5|0); + HEAP8[$476>>0] = $483; + $485 = HEAP8[$$2573702>>0]|0; + $486 = $485&255; + $487 = $486 >>> 2; + $488 = $487 & 1; + $489 = (0 - ($488))|0; + $490 = $377 & $489; + $491 = $490&255; + $492 = ((($$4701)) + 6|0); + HEAP8[$484>>0] = $491; + $493 = HEAP8[$$2573702>>0]|0; + $494 = $493&255; + $495 = $494 >>> 1; + $496 = $495 & 1; + $497 = (0 - ($496))|0; + $498 = $377 & $497; + $499 = $498&255; + $500 = ((($$4701)) + 7|0); + HEAP8[$492>>0] = $499; + $501 = HEAP8[$$2573702>>0]|0; + $502 = $501 & 1; + $503 = $502&255; + $504 = (0 - ($503))|0; + $505 = $377 & $504; + $506 = $505&255; + $507 = ((($$4701)) + 8|0); + HEAP8[$500>>0] = $506; + $508 = (($$16700) + -8)|0; + $509 = ((($$2573702)) + 1|0); + $510 = ($508|0)>(7); + if ($510) { + $$16700 = $508;$$2573702 = $509;$$4701 = $507; + } else { + break; + } + } + $scevgep850 = (($366) + ($indvars$iv848)|0); + $$16$lcssa = $346;$$2573$lcssa = $scevgep850;$$4$lcssa = $scevgep; + } else { + $$16$lcssa = $23;$$2573$lcssa = $370;$$4$lcssa = $368; + } + $511 = ($$16$lcssa|0)>(0); + if ($511) { + $512 = HEAP8[$$2573$lcssa>>0]|0; + $513 = $512&255; + $514 = $513 >>> 7; + $515 = (0 - ($514))|0; + $516 = $377 & $515; + $517 = $516&255; + HEAP8[$$4$lcssa>>0] = $517; + $518 = ($$16$lcssa|0)==(1); + if (!($518)) { + $519 = ((($$4$lcssa)) + 1|0); + $520 = HEAP8[$$2573$lcssa>>0]|0; + $521 = $520&255; + $522 = $521 >>> 6; + $523 = $522 & 1; + $524 = (0 - ($523))|0; + $525 = $377 & $524; + $526 = $525&255; + HEAP8[$519>>0] = $526; + $527 = ($$16$lcssa|0)>(2); + if ($527) { + $528 = ((($$4$lcssa)) + 2|0); + $529 = HEAP8[$$2573$lcssa>>0]|0; + $530 = $529&255; + $531 = $530 >>> 5; + $532 = $531 & 1; + $533 = (0 - ($532))|0; + $534 = $377 & $533; + $535 = $534&255; + HEAP8[$528>>0] = $535; + $536 = ($$16$lcssa|0)==(3); + if (!($536)) { + $537 = ((($$4$lcssa)) + 3|0); + $538 = HEAP8[$$2573$lcssa>>0]|0; + $539 = $538&255; + $540 = $539 >>> 4; + $541 = $540 & 1; + $542 = (0 - ($541))|0; + $543 = $377 & $542; + $544 = $543&255; + HEAP8[$537>>0] = $544; + $545 = ($$16$lcssa|0)>(4); + if ($545) { + $546 = ((($$4$lcssa)) + 4|0); + $547 = HEAP8[$$2573$lcssa>>0]|0; + $548 = $547&255; + $549 = $548 >>> 3; + $550 = $549 & 1; + $551 = (0 - ($550))|0; + $552 = $377 & $551; + $553 = $552&255; + HEAP8[$546>>0] = $553; + $554 = ($$16$lcssa|0)==(5); + if (!($554)) { + $555 = ((($$4$lcssa)) + 5|0); + $556 = HEAP8[$$2573$lcssa>>0]|0; + $557 = $556&255; + $558 = $557 >>> 2; + $559 = $558 & 1; + $560 = (0 - ($559))|0; + $561 = $377 & $560; + $562 = $561&255; + HEAP8[$555>>0] = $562; + $563 = ($$16$lcssa|0)>(6); + if ($563) { + $564 = ((($$4$lcssa)) + 6|0); + $565 = HEAP8[$$2573$lcssa>>0]|0; + $566 = $565&255; + $567 = $566 >>> 1; + $568 = $567 & 1; + $569 = (0 - ($568))|0; + $570 = $377 & $569; + $571 = $570&255; + HEAP8[$564>>0] = $571; + } + } + } + } + } + } + } + break; + } + default: { + } + } + L213: do { + if (!($17)) { + $572 = HEAP32[$21>>2]|0; + $573 = (($572) + ($367)|0); + switch ($14|0) { + case 1: { + if ($337) { + $$0568725 = $$0568724; + } else { + break L213; + } + while(1) { + $574 = $$0568725 << 1; + $575 = $574 | 1; + $576 = (($573) + ($575)|0); + HEAP8[$576>>0] = -1; + $577 = (($573) + ($$0568725)|0); + $578 = HEAP8[$577>>0]|0; + $579 = (($573) + ($574)|0); + HEAP8[$579>>0] = $578; + $$0568 = (($$0568725) + -1)|0; + $580 = ($$0568|0)>(-1); + if ($580) { + $$0568725 = $$0568; + } else { + break; + } + } + break; + } + case 3: { + if ($338) { + $$1722 = $$1721; + } else { + break L213; + } + while(1) { + $581 = $$1722 << 2; + $582 = $581 | 3; + $583 = (($573) + ($582)|0); + HEAP8[$583>>0] = -1; + $584 = ($$1722*3)|0; + $585 = (($584) + 2)|0; + $586 = (($573) + ($585)|0); + $587 = HEAP8[$586>>0]|0; + $588 = $581 | 2; + $589 = (($573) + ($588)|0); + HEAP8[$589>>0] = $587; + $590 = (($584) + 1)|0; + $591 = (($573) + ($590)|0); + $592 = HEAP8[$591>>0]|0; + $593 = $581 | 1; + $594 = (($573) + ($593)|0); + HEAP8[$594>>0] = $592; + $595 = (($573) + ($584)|0); + $596 = HEAP8[$595>>0]|0; + $597 = (($573) + ($581)|0); + HEAP8[$597>>0] = $596; + $$1 = (($$1722) + -1)|0; + $598 = ($$1|0)>(-1); + if ($598) { + $$1722 = $$1; + } else { + break; + } + } + break; + } + default: { + label = 144; + break L174; + } + } + } + } while(0); + $599 = (($$1624727) + 1)|0; + $600 = ($599>>>0)<($5>>>0); + $indvars$iv$next = (($indvars$iv) + ($12))|0; + $indvars$iv$next849 = (($indvars$iv848) + ($12))|0; + $indvars$iv$next852 = (($indvars$iv851) + ($12))|0; + $indvars$iv$next855 = (($indvars$iv854) + ($12))|0; + $indvars$iv$next858 = (($indvars$iv857) + ($12))|0; + $indvars$iv$next861 = (($indvars$iv860) + ($12))|0; + if ($600) { + $$1624727 = $599;$indvars$iv = $indvars$iv$next;$indvars$iv848 = $indvars$iv$next849;$indvars$iv851 = $indvars$iv$next852;$indvars$iv854 = $indvars$iv$next855;$indvars$iv857 = $indvars$iv$next858;$indvars$iv860 = $indvars$iv$next861; + } else { + $$2 = 1; + label = 151; + break; + } + } + if ((label|0) == 144) { + ___assert_fail((10565|0),(9847|0),4466,(10462|0)); + // unreachable; + } + else if ((label|0) == 151) { + return ($$2|0); + } + return (0)|0; +} +function _stbi__paeth($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ispos = 0, $ispos26 = 0, $ispos28 = 0, $neg = 0, $neg27 = 0, $neg29 = 0, $or$cond = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = (($1) + ($0))|0; + $4 = (($3) - ($2))|0; + $5 = (($4) - ($0))|0; + $ispos = ($5|0)>(-1); + $neg = (0 - ($5))|0; + $6 = $ispos ? $5 : $neg; + $7 = (($4) - ($1))|0; + $ispos26 = ($7|0)>(-1); + $neg27 = (0 - ($7))|0; + $8 = $ispos26 ? $7 : $neg27; + $9 = (($4) - ($2))|0; + $ispos28 = ($9|0)>(-1); + $neg29 = (0 - ($9))|0; + $10 = $ispos28 ? $9 : $neg29; + $11 = ($6|0)>($8|0); + $12 = ($6|0)>($10|0); + $or$cond = $11 | $12; + $13 = ($8|0)>($10|0); + $$ = $13 ? $2 : $1; + $$0 = $or$cond ? $$ : $0; + return ($$0|0); +} +function _stbi__do_zlib($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 20|0); + HEAP32[$5>>2] = $1; + $6 = ((($0)) + 16|0); + HEAP32[$6>>2] = $1; + $7 = (($1) + ($2)|0); + $8 = ((($0)) + 24|0); + HEAP32[$8>>2] = $7; + $9 = ((($0)) + 28|0); + HEAP32[$9>>2] = $3; + $10 = (_stbi__parse_zlib($0,$4)|0); + return ($10|0); +} +function _stbi__parse_zlib($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + if (!($2)) { + $3 = (_stbi__parse_zlib_header($0)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + } + $5 = ((($0)) + 8|0); + HEAP32[$5>>2] = 0; + $6 = ((($0)) + 12|0); + HEAP32[$6>>2] = 0; + $7 = ((($0)) + 32|0); + $8 = ((($0)) + 2052|0); + L5: while(1) { + $9 = (_stbi__zreceive($0,1)|0); + $10 = (_stbi__zreceive($0,2)|0); + switch ($10|0) { + case 3: { + $$0 = 0; + label = 11; + break L5; + break; + } + case 0: { + $11 = (_stbi__parse_uncompressed_block($0)|0); + $12 = ($11|0)==(0); + if ($12) { + $$0 = 0; + label = 11; + break L5; + } + break; + } + case 1: { + $13 = (_stbi__zbuild_huffman($7,10576,288)|0); + $14 = ($13|0)==(0); + if ($14) { + $$0 = 0; + label = 11; + break L5; + } + $15 = (_stbi__zbuild_huffman($8,10864,32)|0); + $16 = ($15|0)==(0); + if ($16) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + break; + } + default: { + $17 = (_stbi__compute_huffman_codes($0)|0); + $18 = ($17|0)==(0); + if ($18) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + } + } + if ((label|0) == 9) { + label = 0; + $19 = (_stbi__parse_huffman_block($0)|0); + $20 = ($19|0)==(0); + if ($20) { + $$0 = 0; + label = 11; + break; + } + } + $21 = ($9|0)==(0); + if (!($21)) { + $$0 = 1; + label = 11; + break; + } + } + if ((label|0) == 11) { + return ($$0|0); + } + return (0)|0; +} +function _stbi__parse_zlib_header($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__zget8($0)|0); + $2 = $1&255; + $3 = $2 & 15; + $4 = (_stbi__zget8($0)|0); + $5 = $4&255; + $6 = $2 << 8; + $7 = $6 | $5; + $8 = (($7>>>0) % 31)&-1; + $9 = ($8|0)==(0); + if (!($9)) { + _stbi__err(11211); + $$0 = 0; + return ($$0|0); + } + $10 = $5 & 32; + $11 = ($10|0)==(0); + if (!($11)) { + _stbi__err(11227); + $$0 = 0; + return ($$0|0); + } + $12 = ($3|0)==(8); + if ($12) { + $$0 = 1; + return ($$0|0); + } + _stbi__err(11242); + $$0 = 0; + return ($$0|0); +} +function _stbi__zreceive($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<($1|0); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = 1 << $1; + $8 = (($7) + -1)|0; + $9 = $6 & $8; + $10 = $6 >>> $1; + HEAP32[$5>>2] = $10; + $11 = HEAP32[$2>>2]|0; + $12 = (($11) - ($1))|0; + HEAP32[$2>>2] = $12; + return ($9|0); +} +function _stbi__parse_uncompressed_block($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$034 = 0, $$037 = 0, $$136 = 0, $$lcssa = 0, $$ph = 0, $$pr = 0, $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; + var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond47 = 0, $smax = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & 7; + $5 = ($4|0)==(0); + if ($5) { + $$ph = $3; + } else { + (_stbi__zreceive($0,$4)|0); + $$pr = HEAP32[$2>>2]|0; + $$ph = $$pr; + } + $6 = ($$ph|0)>(0); + if ($6) { + $7 = ((($0)) + 12|0); + $$promoted = HEAP32[$7>>2]|0; + $8 = $$ph ^ -1; + $9 = ($8|0)>(-9); + $smax = $9 ? $8 : -9; + $10 = (($$ph) + ($smax))|0; + $11 = (($10) + 8)|0; + $12 = $11 >>> 3; + $13 = (($12) + 1)|0; + $14 = $12 << 3; + $$037 = 0;$16 = $$promoted; + while(1) { + $15 = $16&255; + $17 = (($$037) + 1)|0; + $18 = (($1) + ($$037)|0); + HEAP8[$18>>0] = $15; + $19 = $16 >>> 8; + $exitcond47 = ($17|0)==($13|0); + if ($exitcond47) { + break; + } else { + $$037 = $17;$16 = $19; + } + } + $20 = (($$ph) + -8)|0; + $21 = (($20) - ($14))|0; + HEAP32[$7>>2] = $19; + HEAP32[$2>>2] = $21; + $$0$lcssa = $13;$$lcssa = $21; + } else { + $$0$lcssa = 0;$$lcssa = $$ph; + } + $22 = ($$lcssa|0)==(0); + if (!($22)) { + ___assert_fail((11133|0),(9847|0),4033,(11150|0)); + // unreachable; + } + $23 = ($$0$lcssa|0)<(4); + if ($23) { + $$136 = $$0$lcssa; + while(1) { + $24 = (_stbi__zget8($0)|0); + $25 = (($$136) + 1)|0; + $26 = (($1) + ($$136)|0); + HEAP8[$26>>0] = $24; + $exitcond = ($25|0)==(4); + if ($exitcond) { + break; + } else { + $$136 = $25; + } + } + } + $27 = ((($1)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = HEAP8[$1>>0]|0; + $32 = $31&255; + $33 = $30 | $32; + $34 = ((($1)) + 3|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = $36 << 8; + $38 = ((($1)) + 2|0); + $39 = HEAP8[$38>>0]|0; + $40 = $39&255; + $41 = $37 | $40; + $42 = $33 ^ 65535; + $43 = ($41|0)==($42|0); + if (!($43)) { + _stbi__err(11181); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $44 = HEAP32[$0>>2]|0; + $45 = (($44) + ($33)|0); + $46 = ((($0)) + 4|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($45>>>0)>($47>>>0); + if ($48) { + _stbi__err(11194); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $49 = ((($0)) + 16|0); + $50 = HEAP32[$49>>2]|0; + $51 = (($50) + ($33)|0); + $52 = ((($0)) + 24|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51>>>0)>($53>>>0); + if ($54) { + $55 = (_stbi__zexpand($0,$50,$33)|0); + $56 = ($55|0)==(0); + if ($56) { + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + } + $57 = HEAP32[$49>>2]|0; + $58 = HEAP32[$0>>2]|0; + _memcpy(($57|0),($58|0),($33|0))|0; + $59 = HEAP32[$0>>2]|0; + $60 = (($59) + ($33)|0); + HEAP32[$0>>2] = $60; + $61 = HEAP32[$49>>2]|0; + $62 = (($61) + ($33)|0); + HEAP32[$49>>2] = $62; + $$034 = 1; + STACKTOP = sp;return ($$034|0); +} +function _stbi__zbuild_huffman($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$075 = 0, $$07688 = 0, $$07785 = 0, $$07884 = 0, $$081 = 0, $$286 = 0, $$382 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond91 = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $3 = sp + 72|0; + $4 = sp; + dest=$4; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _memset(($0|0),0,1024)|0; + $5 = ($2|0)>(0); + if ($5) { + $$07688 = 0; + while(1) { + $6 = (($1) + ($$07688)|0); + $7 = HEAP8[$6>>0]|0; + $8 = $7&255; + $9 = (($4) + ($8<<2)|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($10) + 1)|0; + HEAP32[$9>>2] = $11; + $12 = (($$07688) + 1)|0; + $exitcond91 = ($12|0)==($2|0); + if ($exitcond91) { + break; + } else { + $$07688 = $12; + } + } + } + HEAP32[$4>>2] = 0; + $16 = ((($4)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)>(2); + if (!($18)) { + $13 = ((($4)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)>(4); + if (!($15)) { + $69 = ((($4)) + 12|0); + $70 = HEAP32[$69>>2]|0; + $71 = ($70|0)>(8); + if (!($71)) { + $72 = ((($4)) + 16|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)>(16); + if (!($74)) { + $75 = ((($4)) + 20|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($76|0)>(32); + if (!($77)) { + $78 = ((($4)) + 24|0); + $79 = HEAP32[$78>>2]|0; + $80 = ($79|0)>(64); + if (!($80)) { + $81 = ((($4)) + 28|0); + $82 = HEAP32[$81>>2]|0; + $83 = ($82|0)>(128); + if (!($83)) { + $84 = ((($4)) + 32|0); + $85 = HEAP32[$84>>2]|0; + $86 = ($85|0)>(256); + if (!($86)) { + $87 = ((($4)) + 36|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)>(512); + if (!($89)) { + $90 = ((($4)) + 40|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)>(1024); + if (!($92)) { + $93 = ((($4)) + 44|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)>(2048); + if (!($95)) { + $96 = ((($4)) + 48|0); + $97 = HEAP32[$96>>2]|0; + $98 = ($97|0)>(4096); + if (!($98)) { + $99 = ((($4)) + 52|0); + $100 = HEAP32[$99>>2]|0; + $101 = ($100|0)>(8192); + if (!($101)) { + $102 = ((($4)) + 56|0); + $103 = HEAP32[$102>>2]|0; + $104 = ($103|0)>(16384); + if (!($104)) { + $105 = ((($4)) + 60|0); + $106 = HEAP32[$105>>2]|0; + $107 = ($106|0)>(32768); + if (!($107)) { + $$07785 = 0;$$07884 = 0;$$286 = 1; + while(1) { + $19 = (($3) + ($$286<<2)|0); + HEAP32[$19>>2] = $$07884; + $20 = $$07884&65535; + $21 = (((($0)) + 1024|0) + ($$286<<1)|0); + HEAP16[$21>>1] = $20; + $22 = $$07785&65535; + $23 = (((($0)) + 1124|0) + ($$286<<1)|0); + HEAP16[$23>>1] = $22; + $24 = (($4) + ($$286<<2)|0); + $25 = HEAP32[$24>>2]|0; + $26 = (($25) + ($$07884))|0; + $27 = ($25|0)!=(0); + $28 = 1 << $$286; + $29 = ($26|0)>($28|0); + $or$cond = $27 & $29; + if ($or$cond) { + label = 7; + break; + } + $30 = (16 - ($$286))|0; + $31 = $26 << $30; + $32 = (((($0)) + 1056|0) + ($$286<<2)|0); + HEAP32[$32>>2] = $31; + $33 = $26 << 1; + $34 = (($25) + ($$07785))|0; + $35 = (($$286) + 1)|0; + $36 = ($35|0)<(16); + if ($36) { + $$07785 = $34;$$07884 = $33;$$286 = $35; + } else { + break; + } + } + if ((label|0) == 7) { + _stbi__err(11071); + $$075 = 0; + STACKTOP = sp;return ($$075|0); + } + $37 = ((($0)) + 1120|0); + HEAP32[$37>>2] = 65536; + $38 = ($2|0)>(0); + if ($38) { + $$382 = 0; + } else { + $$075 = 1; + STACKTOP = sp;return ($$075|0); + } + while(1) { + $39 = (($1) + ($$382)|0); + $40 = HEAP8[$39>>0]|0; + $41 = $40&255; + $42 = ($40<<24>>24)==(0); + if (!($42)) { + $43 = (($3) + ($41<<2)|0); + $44 = HEAP32[$43>>2]|0; + $45 = (((($0)) + 1024|0) + ($41<<1)|0); + $46 = HEAP16[$45>>1]|0; + $47 = $46&65535; + $48 = (($44) - ($47))|0; + $49 = (((($0)) + 1124|0) + ($41<<1)|0); + $50 = HEAP16[$49>>1]|0; + $51 = $50&65535; + $52 = (($48) + ($51))|0; + $53 = $41 << 9; + $54 = $53 | $$382; + $55 = $54&65535; + $56 = (((($0)) + 1156|0) + ($52)|0); + HEAP8[$56>>0] = $40; + $57 = $$382&65535; + $58 = (((($0)) + 1444|0) + ($52<<1)|0); + HEAP16[$58>>1] = $57; + $59 = ($40&255)<(10); + do { + if ($59) { + $60 = (_stbi__bit_reverse($44,$41)|0); + $61 = ($60|0)<(512); + if (!($61)) { + break; + } + $62 = 1 << $41; + $$081 = $60; + while(1) { + $63 = (($0) + ($$081<<1)|0); + HEAP16[$63>>1] = $55; + $64 = (($$081) + ($62))|0; + $65 = ($64|0)<(512); + if ($65) { + $$081 = $64; + } else { + break; + } + } + } + } while(0); + $66 = HEAP32[$43>>2]|0; + $67 = (($66) + 1)|0; + HEAP32[$43>>2] = $67; + } + $68 = (($$382) + 1)|0; + $exitcond = ($68|0)==($2|0); + if ($exitcond) { + $$075 = 1; + break; + } else { + $$382 = $68; + } + } + STACKTOP = sp;return ($$075|0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + _stbi__err(11123); + $$075 = 0; + STACKTOP = sp;return ($$075|0); +} +function _stbi__compute_huffman_codes($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$061 = 0, $$06579 = 0, $$066$be = 0, $$066$lcssa = 0, $$06678 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $not$ = 0, dest = 0; + var label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2496|0); + $1 = sp; + $2 = sp + 2039|0; + $3 = sp + 2020|0; + $4 = (_stbi__zreceive($0,5)|0); + $5 = (($4) + 257)|0; + $6 = (_stbi__zreceive($0,5)|0); + $7 = (($6) + 1)|0; + $8 = (_stbi__zreceive($0,4)|0); + $9 = (($8) + 4)|0; + $10 = (($7) + ($5))|0; + dest=$3; stop=dest+19|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $11 = ($9|0)>(0); + if ($11) { + $$06579 = 0; + while(1) { + $12 = (_stbi__zreceive($0,3)|0); + $13 = $12&255; + $14 = (11917 + ($$06579)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = (($3) + ($16)|0); + HEAP8[$17>>0] = $13; + $18 = (($$06579) + 1)|0; + $exitcond = ($18|0)==($9|0); + if ($exitcond) { + break; + } else { + $$06579 = $18; + } + } + } + $19 = (_stbi__zbuild_huffman($1,$3,19)|0); + $20 = ($19|0)==(0); + if ($20) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $21 = ($10|0)>(0); + L8: do { + if ($21) { + $$06678 = 0; + L9: while(1) { + $22 = (_stbi__zhuffman_decode($0,$1)|0); + $23 = ($22>>>0)>(18); + if ($23) { + label = 6; + break; + } + $24 = ($22|0)<(16); + if ($24) { + $25 = $22&255; + $26 = (($$06678) + 1)|0; + $27 = (($2) + ($$06678)|0); + HEAP8[$27>>0] = $25; + $$066$be = $26; + } else { + switch ($22|0) { + case 16: { + $28 = (_stbi__zreceive($0,2)|0); + $29 = ($$06678|0)==(0); + if ($29) { + label = 11; + break L9; + } + $30 = (($28) + 3)|0; + $31 = (($$06678) + -1)|0; + $32 = (($2) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $$0 = $33;$$061 = $30; + break; + } + case 17: { + $34 = (_stbi__zreceive($0,3)|0); + $35 = (($34) + 3)|0; + $$0 = 0;$$061 = $35; + break; + } + case 18: { + $36 = (_stbi__zreceive($0,7)|0); + $37 = (($36) + 11)|0; + $$0 = 0;$$061 = $37; + break; + } + default: { + label = 14; + break L9; + } + } + $38 = (($10) - ($$06678))|0; + $39 = ($38|0)<($$061|0); + if ($39) { + label = 17; + break; + } + $40 = (($2) + ($$06678)|0); + _memset(($40|0),($$0|0),($$061|0))|0; + $41 = (($$061) + ($$06678))|0; + $$066$be = $41; + } + $42 = ($10|0)>($$066$be|0); + if ($42) { + $$06678 = $$066$be; + } else { + $$066$lcssa = $$066$be; + break L8; + } + } + if ((label|0) == 6) { + _stbi__err(11071); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 11) { + _stbi__err(11071); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 14) { + ___assert_fail((11087|0),(9847|0),4006,(11095|0)); + // unreachable; + } + else if ((label|0) == 17) { + _stbi__err(11071); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + } else { + $$066$lcssa = 0; + } + } while(0); + $43 = ($10|0)==($$066$lcssa|0); + if (!($43)) { + _stbi__err(11071); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $44 = ((($0)) + 32|0); + $45 = (_stbi__zbuild_huffman($44,$2,$5)|0); + $46 = ($45|0)==(0); + if ($46) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $47 = ((($0)) + 2052|0); + $48 = (($2) + ($5)|0); + $49 = (_stbi__zbuild_huffman($47,$48,$7)|0); + $not$ = ($49|0)!=(0); + $$ = $not$&1; + $$4 = $$; + STACKTOP = sp;return ($$4|0); +} +function _stbi__parse_huffman_block($0) { + $0 = $0|0; + var $$063 = 0, $$064 = 0, $$067 = 0, $$070 = 0, $$171 = 0, $$266 = 0, $$272 = 0, $$3$ph = 0, $$5 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep92 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 32|0); + $4 = ((($0)) + 24|0); + $5 = ((($0)) + 2052|0); + $6 = ((($0)) + 20|0); + $7 = ((($0)) + 24|0); + $$070 = $2; + while(1) { + $10 = (_stbi__zhuffman_decode($0,$3)|0); + $11 = ($10|0)<(256); + if ($11) { + $12 = ($10|0)<(0); + if ($12) { + label = 6; + break; + } + $13 = HEAP32[$4>>2]|0; + $14 = ($$070>>>0)<($13>>>0); + if ($14) { + $$171 = $$070; + } else { + $15 = (_stbi__zexpand($0,$$070,1)|0); + $16 = ($15|0)==(0); + if ($16) { + $$3$ph = 0; + label = 28; + break; + } + $17 = HEAP32[$1>>2]|0; + $$171 = $17; + } + $18 = $10&255; + $19 = ((($$171)) + 1|0); + HEAP8[$$171>>0] = $18; + $$070 = $19; + continue; + } + $20 = ($10|0)==(256); + if ($20) { + label = 12; + break; + } + $21 = (($10) + -257)|0; + $22 = (3308 + ($21<<2)|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($10) + -265)|0; + $25 = ($24>>>0)<(20); + if ($25) { + $26 = (3184 + ($21<<2)|0); + $27 = HEAP32[$26>>2]|0; + $28 = (_stbi__zreceive($0,$27)|0); + $29 = (($28) + ($23))|0; + $$064 = $29; + } else { + $$064 = $23; + } + $30 = (_stbi__zhuffman_decode($0,$5)|0); + $31 = ($30|0)<(0); + if ($31) { + label = 16; + break; + } + $32 = (3560 + ($30<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (($30) + -4)|0; + $35 = ($34>>>0)<(26); + if ($35) { + $36 = (3432 + ($30<<2)|0); + $37 = HEAP32[$36>>2]|0; + $38 = (_stbi__zreceive($0,$37)|0); + $39 = (($38) + ($33))|0; + $$063 = $39; + } else { + $$063 = $33; + } + $40 = HEAP32[$6>>2]|0; + $41 = $$070; + $42 = (($41) - ($40))|0; + $43 = ($42|0)<($$063|0); + if ($43) { + label = 20; + break; + } + $44 = (($$070) + ($$064)|0); + $45 = HEAP32[$7>>2]|0; + $46 = ($44>>>0)>($45>>>0); + if ($46) { + $47 = (_stbi__zexpand($0,$$070,$$064)|0); + $48 = ($47|0)==(0); + if ($48) { + $$3$ph = 0; + label = 28; + break; + } + $49 = HEAP32[$1>>2]|0; + $$272 = $49; + } else { + $$272 = $$070; + } + $50 = (0 - ($$063))|0; + $9 = (($$272) + ($50)|0); + $51 = ($$063|0)==(1); + $52 = ($$064|0)!=(0); + if ($51) { + if (!($52)) { + $$070 = $$272; + continue; + } + $8 = HEAP8[$9>>0]|0; + _memset(($$272|0),($8|0),($$064|0))|0; + $scevgep92 = (($$272) + ($$064)|0); + $$070 = $scevgep92; + continue; + } + if ($52) { + $$067 = $9;$$266 = $$064;$$5 = $$272; + } else { + $$070 = $$272; + continue; + } + while(1) { + $53 = ((($$067)) + 1|0); + $54 = HEAP8[$$067>>0]|0; + $55 = ((($$5)) + 1|0); + HEAP8[$$5>>0] = $54; + $56 = (($$266) + -1)|0; + $57 = ($56|0)==(0); + if ($57) { + break; + } else { + $$067 = $53;$$266 = $56;$$5 = $55; + } + } + $scevgep = (($$272) + ($$064)|0); + $$070 = $scevgep; + } + if ((label|0) == 6) { + _stbi__err(10896); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 12) { + HEAP32[$1>>2] = $$070; + $$3$ph = 1; + return ($$3$ph|0); + } + else if ((label|0) == 16) { + _stbi__err(10896); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 20) { + _stbi__err(10913); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 28) { + return ($$3$ph|0); + } + return (0)|0; +} +function _stbi__zhuffman_decode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<(16); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 511; + $8 = (($1) + ($7<<1)|0); + $9 = HEAP16[$8>>1]|0; + $10 = $9&65535; + $11 = ($9<<16>>16)==(0); + if ($11) { + $17 = (_stbi__zhuffman_decode_slowpath($0,$1)|0); + $$0 = $17; + return ($$0|0); + } else { + $12 = $10 >>> 9; + $13 = $6 >>> $12; + HEAP32[$5>>2] = $13; + $14 = HEAP32[$2>>2]|0; + $15 = (($14) - ($12))|0; + HEAP32[$2>>2] = $15; + $16 = $10 & 511; + $$0 = $16; + return ($$0|0); + } + return (0)|0; +} +function _stbi__zexpand($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + HEAP32[$3>>2] = $1; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + _stbi__err(10922); + $$0 = 0; + return ($$0|0); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = $1; + $10 = $8; + $11 = (($9) - ($10))|0; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + $14 = (($13) - ($10))|0; + $15 = (($11) + ($2))|0; + $$029 = $14; + while(1) { + $16 = ($15|0)>($$029|0); + $17 = $$029 << 1; + if ($16) { + $$029 = $17; + } else { + break; + } + } + $18 = (_realloc($8,$$029)|0); + $19 = ($18|0)==(0|0); + if ($19) { + _stbi__err(9902); + $$0 = 0; + return ($$0|0); + } else { + HEAP32[$7>>2] = $18; + $20 = (($18) + ($11)|0); + HEAP32[$3>>2] = $20; + $21 = (($18) + ($$029)|0); + HEAP32[$12>>2] = $21; + $$0 = 1; + return ($$0|0); + } + return (0)|0; +} +function _stbi__fill_bits($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 12|0); + $2 = ((($0)) + 8|0); + while(1) { + $3 = HEAP32[$1>>2]|0; + $4 = HEAP32[$2>>2]|0; + $5 = 1 << $4; + $6 = ($3>>>0)<($5>>>0); + if (!($6)) { + label = 3; + break; + } + $7 = (_stbi__zget8($0)|0); + $8 = $7&255; + $9 = HEAP32[$2>>2]|0; + $10 = $8 << $9; + $11 = HEAP32[$1>>2]|0; + $12 = $11 | $10; + HEAP32[$1>>2] = $12; + $13 = (($9) + 8)|0; + HEAP32[$2>>2] = $13; + $14 = ($13|0)<(25); + if (!($14)) { + label = 5; + break; + } + } + if ((label|0) == 3) { + ___assert_fail((11018|0),(9847|0),3848,(11055|0)); + // unreachable; + } + else if ((label|0) == 5) { + return; + } +} +function _stbi__zhuffman_decode_slowpath($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 12|0); + $3 = HEAP32[$2>>2]|0; + $4 = (_stbi__bit_reverse($3,16)|0); + $$025 = 10; + while(1) { + $5 = (((($1)) + 1056|0) + ($$025<<2)|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($4|0)<($6|0); + $8 = (($$025) + 1)|0; + if ($7) { + break; + } else { + $$025 = $8; + } + } + $9 = ($$025|0)==(16); + if ($9) { + $$0 = -1; + return ($$0|0); + } + $10 = (16 - ($$025))|0; + $11 = $4 >> $10; + $12 = (((($1)) + 1024|0) + ($$025<<1)|0); + $13 = HEAP16[$12>>1]|0; + $14 = $13&65535; + $15 = (($11) - ($14))|0; + $16 = (((($1)) + 1124|0) + ($$025<<1)|0); + $17 = HEAP16[$16>>1]|0; + $18 = $17&65535; + $19 = (($15) + ($18))|0; + $20 = (((($1)) + 1156|0) + ($19)|0); + $21 = HEAP8[$20>>0]|0; + $22 = $21&255; + $23 = ($22|0)==($$025|0); + if (!($23)) { + ___assert_fail((10942|0),(9847|0),3876,(10958|0)); + // unreachable; + } + $24 = HEAP32[$2>>2]|0; + $25 = $24 >>> $$025; + HEAP32[$2>>2] = $25; + $26 = ((($0)) + 8|0); + $27 = HEAP32[$26>>2]|0; + $28 = (($27) - ($$025))|0; + HEAP32[$26>>2] = $28; + $29 = (((($1)) + 1444|0) + ($19<<1)|0); + $30 = HEAP16[$29>>1]|0; + $31 = $30&65535; + $$0 = $31; + return ($$0|0); +} +function _stbi__bit_reverse($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(17); + if ($2) { + $3 = (_stbi__bitreverse16($0)|0); + $4 = (16 - ($1))|0; + $5 = $3 >> $4; + return ($5|0); + } else { + ___assert_fail((10989|0),(9847|0),3766,(11000|0)); + // unreachable; + } + return (0)|0; +} +function _stbi__bitreverse16($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = $0 >>> 1; + $2 = $1 & 21845; + $3 = $0 << 1; + $4 = $3 & 43690; + $5 = $2 | $4; + $6 = $5 >>> 2; + $7 = $6 & 13107; + $8 = $5 << 2; + $9 = $8 & 52428; + $10 = $7 | $9; + $11 = $10 >>> 4; + $12 = $11 & 3855; + $13 = $10 << 4; + $14 = $13 & 61680; + $15 = $12 | $14; + $16 = $15 >>> 8; + $17 = $15 << 8; + $18 = $17 & 65280; + $19 = $18 | $16; + return ($19|0); +} +function _stbi__zget8($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($1>>>0)<($3>>>0); + if (!($4)) { + $$0 = 0; + return ($$0|0); + } + $5 = ((($1)) + 1|0); + HEAP32[$0>>2] = $5; + $6 = HEAP8[$1>>0]|0; + $$0 = $6; + return ($$0|0); +} +function _stbi__refill_buffer($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + $8 = (FUNCTION_TABLE_iiii[$2 & 15]($4,$5,$7)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = ((($0)) + 32|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 168|0); + HEAP32[$11>>2] = $5; + $12 = ((($0)) + 41|0); + $13 = ((($0)) + 172|0); + HEAP32[$13>>2] = $12; + HEAP8[$5>>0] = 0; + return; + } else { + $14 = ((($0)) + 168|0); + HEAP32[$14>>2] = $5; + $15 = (((($0)) + 40|0) + ($8)|0); + $16 = ((($0)) + 172|0); + HEAP32[$16>>2] = $15; + return; + } +} +function _stbi__rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 176|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 168|0); + HEAP32[$3>>2] = $2; + $4 = ((($0)) + 180|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 172|0); + HEAP32[$6>>2] = $5; + return; +} +function _stbi__start_callbacks($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + ;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0; + $4 = ((($0)) + 28|0); + HEAP32[$4>>2] = $2; + $5 = ((($0)) + 36|0); + HEAP32[$5>>2] = 128; + $6 = ((($0)) + 32|0); + HEAP32[$6>>2] = 1; + $7 = ((($0)) + 40|0); + $8 = ((($0)) + 176|0); + HEAP32[$8>>2] = $7; + _stbi__refill_buffer($0); + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 180|0); + HEAP32[$11>>2] = $10; + return; +} +function _stbi__stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_fread($1,1,$2,$0)|0); + return ($3|0); +} +function _stbi__stdio_skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (_fseek($0,$1,1)|0); + return; +} +function _stbi__stdio_eof($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_feof($0)|0); + return ($1|0); +} +function _LoadImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$1 = 0, $$sroa$0$144 = 0, $$sroa$10$0 = 0, $$sroa$10$0$$sroa_idx19 = 0, $$sroa$10$0$$sroa_idx20 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$1 = 0, $$sroa$10$140 = 0, $$sroa$10$141 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx23 = 0, $$sroa$13$0$$sroa_idx24 = 0, $$sroa$13$0$copyload = 0, $$sroa$13$1 = 0, $$sroa$13$146 = 0, $$sroa$13$147 = 0, $$sroa$15$0 = 0; + var $$sroa$15$0$$sroa_idx27 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$copyload = 0, $$sroa$15$1 = 0, $$sroa$15$2 = 0, $$sroa$15$248 = 0, $$sroa$15$249 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx15 = 0, $$sroa$7$0$$sroa_idx16 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$1 = 0, $$sroa$7$142 = 0, $$sroa$7$143 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0; + var $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer9 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer9 = sp + 32|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 44|0; + $4 = sp + 40|0; + $5 = sp + 36|0; + $6 = (_IsFileExtension($1,11270)|0); + $7 = ($6|0)==(0); + do { + if ($7) { + $19 = (_IsFileExtension($1,11323)|0); + $20 = ($19|0)==(0); + if ($20) { + HEAP32[$vararg_buffer1>>2] = $1; + _TraceLog(2,11328,$vararg_buffer1); + $$sroa$10$141 = 0;$$sroa$13$147 = 0;$$sroa$15$249 = 0;$$sroa$7$143 = 0; + break; + } + HEAP32[$3>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$5>>2] = 0; + $21 = (_fopen($1,11462)|0); + $22 = (_stbi_load_from_file($21,$3,$4,$5,0)|0); + (_fclose($21)|0); + $23 = HEAP32[$3>>2]|0; + $24 = HEAP32[$4>>2]|0; + $25 = HEAP32[$5>>2]|0; + switch ($25|0) { + case 1: { + $$sink = 1; + label = 11; + break; + } + case 2: { + $$sink = 2; + label = 11; + break; + } + case 3: { + $$sink = 4; + label = 11; + break; + } + case 4: { + $$sink = 7; + label = 11; + break; + } + default: { + $$sroa$15$1 = 0; + } + } + if ((label|0) == 11) { + $$sroa$15$1 = $$sink; + } + $$sroa$0$1 = $22;$$sroa$10$1 = $24;$$sroa$13$1 = 1;$$sroa$15$2 = $$sroa$15$1;$$sroa$7$1 = $23; + label = 14; + } else { + $8 = (_LoadResource($1,0)|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)==(1); + if ($10) { + $11 = ((($8)) + 20|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($8)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($8)) + 8|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($8)) + 12|0); + $18 = HEAP32[$17>>2]|0; + _LoadImagePro($2,$12,$14,$16,$18); + $$sroa$0$0$copyload = HEAP32[$2>>2]|0; + $$sroa$7$0$$sroa_idx15 = ((($2)) + 4|0); + $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx15>>2]|0; + $$sroa$10$0$$sroa_idx19 = ((($2)) + 8|0); + $$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx19>>2]|0; + $$sroa$13$0$$sroa_idx23 = ((($2)) + 12|0); + $$sroa$13$0$copyload = HEAP32[$$sroa$13$0$$sroa_idx23>>2]|0; + $$sroa$15$0$$sroa_idx27 = ((($2)) + 16|0); + $$sroa$15$0$copyload = HEAP32[$$sroa$15$0$$sroa_idx27>>2]|0; + $$sroa$0$0 = $$sroa$0$0$copyload;$$sroa$10$0 = $$sroa$10$0$copyload;$$sroa$13$0 = $$sroa$13$0$copyload;$$sroa$15$0 = $$sroa$15$0$copyload;$$sroa$7$0 = $$sroa$7$0$copyload; + } else { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,11276,$vararg_buffer); + $$sroa$0$0 = 0;$$sroa$10$0 = 0;$$sroa$13$0 = 0;$$sroa$15$0 = 0;$$sroa$7$0 = 0; + } + _UnloadResource($8); + $$sroa$0$1 = $$sroa$0$0;$$sroa$10$1 = $$sroa$10$0;$$sroa$13$1 = $$sroa$13$0;$$sroa$15$2 = $$sroa$15$0;$$sroa$7$1 = $$sroa$7$0; + label = 14; + } + } while(0); + if ((label|0) == 14) { + $26 = ($$sroa$0$1|0)==(0|0); + if ($26) { + $$sroa$10$141 = $$sroa$10$1;$$sroa$13$147 = $$sroa$13$1;$$sroa$15$249 = $$sroa$15$2;$$sroa$7$143 = $$sroa$7$1; + } else { + HEAP32[$vararg_buffer4>>2] = $1; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $$sroa$7$1; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $$sroa$10$1; + _TraceLog(0,11364,$vararg_buffer4); + $$sroa$0$144 = $$sroa$0$1;$$sroa$10$140 = $$sroa$10$1;$$sroa$13$146 = $$sroa$13$1;$$sroa$15$248 = $$sroa$15$2;$$sroa$7$142 = $$sroa$7$1; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; + } + } + HEAP32[$vararg_buffer9>>2] = $1; + _TraceLog(2,11403,$vararg_buffer9); + $$sroa$0$144 = 0;$$sroa$10$140 = $$sroa$10$141;$$sroa$13$146 = $$sroa$13$147;$$sroa$15$248 = $$sroa$15$249;$$sroa$7$142 = $$sroa$7$143; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; +} +function _LoadResource($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$05665 = 0, $$05764 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond60 = 0; + var $or$cond62 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 64|0; + $3 = sp + 32|0; + $4 = (_fopen($0,11462)|0); + $5 = ($4|0)==(0|0); + if ($5) { + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(2,11465,$vararg_buffer); + $$2 = 0; + STACKTOP = sp;return ($$2|0); + } + (_fread($2,1,1,$4)|0); + $6 = ((($2)) + 1|0); + (_fread($6,1,1,$4)|0); + $7 = ((($2)) + 2|0); + (_fread($7,1,1,$4)|0); + $8 = ((($2)) + 3|0); + (_fread($8,1,1,$4)|0); + $9 = ((($2)) + 4|0); + (_fread($9,2,1,$4)|0); + $10 = ((($2)) + 6|0); + (_fread($10,2,1,$4)|0); + $11 = HEAP8[$2>>0]|0; + $12 = ($11<<24>>24)==(114); + $13 = HEAP8[$6>>0]|0; + $14 = ($13<<24>>24)==(82); + $or$cond = $12 | $14; + $15 = HEAP8[$7>>0]|0; + $16 = ($15<<24>>24)==(69); + $or$cond60 = $or$cond | $16; + $17 = HEAP8[$8>>0]|0; + $18 = ($17<<24>>24)==(83); + $or$cond62 = $or$cond60 | $18; + if ($or$cond62) { + $19 = HEAP16[$10>>1]|0; + $20 = ($19<<16>>16)==(0); + if ($20) { + $$0$lcssa = 0; + } else { + $21 = ((($3)) + 7|0); + $22 = HEAP16[$10>>1]|0; + $23 = $22&65535; + $24 = ((($3)) + 8|0); + $25 = ((($3)) + 4|0); + $26 = ((($3)) + 16|0); + $27 = ((($3)) + 20|0); + $28 = ((($3)) + 24|0); + $29 = ((($3)) + 28|0); + $30 = ((($3)) + 8|0); + $31 = ((($3)) + 5|0); + $32 = ((($3)) + 12|0); + $$05665 = 0; + while(1) { + (_fread($3,32,1,$4)|0); + $36 = HEAP8[$21>>0]|0; + $37 = $36&255; + $38 = ($37*24)|0; + $39 = (_malloc($38)|0); + $40 = HEAP32[$3>>2]|0; + $41 = ($40|0)==($1|0); + if ($41) { + $42 = HEAP8[$21>>0]|0; + $43 = ($42<<24>>24)==(0); + if (!($43)) { + $$05764 = 0; + while(1) { + $44 = HEAP8[$25>>0]|0; + $45 = $44&255; + $46 = (($39) + (($$05764*24)|0)|0); + HEAP32[$46>>2] = $45; + $47 = HEAP32[$26>>2]|0; + $48 = (((($39) + (($$05764*24)|0)|0)) + 4|0); + HEAP32[$48>>2] = $47; + $49 = HEAP32[$27>>2]|0; + $50 = (((($39) + (($$05764*24)|0)|0)) + 8|0); + HEAP32[$50>>2] = $49; + $51 = HEAP32[$28>>2]|0; + $52 = (((($39) + (($$05764*24)|0)|0)) + 12|0); + HEAP32[$52>>2] = $51; + $53 = HEAP32[$29>>2]|0; + $54 = (((($39) + (($$05764*24)|0)|0)) + 16|0); + HEAP32[$54>>2] = $53; + $55 = HEAP32[$30>>2]|0; + $56 = (_malloc($55)|0); + (_fread($56,$55,1,$4)|0); + $57 = HEAP8[$31>>0]|0; + $58 = ($57<<24>>24)==(1); + if ($58) { + $59 = HEAP32[$30>>2]|0; + $60 = HEAP32[$32>>2]|0; + $61 = (_DecompressData($56,$59,$60)|0); + $62 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$62>>2] = $61; + _free($56); + } else { + $63 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$63>>2] = $56; + } + $64 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if (!($66)) { + $67 = HEAP32[$3>>2]|0; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $67; + _TraceLog(0,11562,$vararg_buffer4); + } + (_fread($3,32,1,$4)|0); + $68 = (($$05764) + 1)|0; + $69 = HEAP8[$21>>0]|0; + $70 = $69&255; + $71 = ($68|0)<($70|0); + if ($71) { + $$05764 = $68; + } else { + break; + } + } + } + } else { + $72 = HEAP32[$24>>2]|0; + (_fseek($4,$72,1)|0); + } + $73 = (($$05665) + 1)|0; + $74 = ($73|0)<($23|0); + if ($74) { + $$05665 = $73; + } else { + $$0$lcssa = $39; + break; + } + } + } + $33 = ((($$0$lcssa)) + 20|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)==(0|0); + if ($35) { + HEAP32[$vararg_buffer8>>2] = $0; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $1; + _TraceLog(2,11608,$vararg_buffer8); + $$1 = $$0$lcssa; + } else { + $$1 = $$0$lcssa; + } + } else { + HEAP32[$vararg_buffer1>>2] = $0; + _TraceLog(2,11516,$vararg_buffer1); + $$1 = 0; + } + (_fclose($4)|0); + $$2 = $$1; + STACKTOP = sp;return ($$2|0); +} +function _LoadImagePro($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy = sp + 20|0; + $5 = sp; + HEAP32[$5>>2] = $1; + $6 = ((($5)) + 4|0); + HEAP32[$6>>2] = $2; + $7 = ((($5)) + 8|0); + HEAP32[$7>>2] = $3; + $8 = ((($5)) + 12|0); + HEAP32[$8>>2] = 1; + $9 = ((($5)) + 16|0); + HEAP32[$9>>2] = $4; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$5+16>>2]|0; + _ImageCopy($0,$$byval_copy); + STACKTOP = sp;return; +} +function _UnloadResource($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if ($3) { + return; + } + _free($2); + return; +} +function _ImageCopy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$sroa$6$0 = 0, $$sroa$6$0$$sroa_idx10 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx12 = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx14 = 0, $$sroa$9$0 = 0, $$sroa$9$0$$sroa_idx16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $2 = ((($1)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($1)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = Math_imul($5, $3)|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + switch ($8|0) { + case 17: case 14: case 11: case 10: case 1: { + $$0 = $6; + break; + } + case 6: case 5: case 3: case 2: { + $9 = $6 << 1; + $$0 = $9; + break; + } + case 4: { + $10 = ($6*3)|0; + $$0 = $10; + break; + } + case 7: { + $11 = $6 << 2; + $$0 = $11; + break; + } + case 16: case 15: case 13: case 12: case 9: case 8: { + $12 = (($6|0) / 2)&-1; + $$0 = $12; + break; + } + case 18: { + $13 = (($6|0) / 4)&-1; + $$0 = $13; + break; + } + default: { + _TraceLog(2,11434,$vararg_buffer); + $$0 = $6; + } + } + $14 = (_malloc($$0)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$sroa$6$0 = 0;$$sroa$7$0 = 0;$$sroa$8$0 = 0;$$sroa$9$0 = 0; + } else { + $16 = HEAP32[$1>>2]|0; + _memcpy(($14|0),($16|0),($$0|0))|0; + $17 = HEAP32[$2>>2]|0; + $18 = HEAP32[$4>>2]|0; + $19 = ((($1)) + 12|0); + $20 = HEAP32[$19>>2]|0; + $21 = HEAP32[$7>>2]|0; + $$sroa$6$0 = $17;$$sroa$7$0 = $18;$$sroa$8$0 = $20;$$sroa$9$0 = $21; + } + HEAP32[$0>>2] = $14; + $$sroa$6$0$$sroa_idx10 = ((($0)) + 4|0); + HEAP32[$$sroa$6$0$$sroa_idx10>>2] = $$sroa$6$0; + $$sroa$7$0$$sroa_idx12 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx12>>2] = $$sroa$7$0; + $$sroa$8$0$$sroa_idx14 = ((($0)) + 12|0); + HEAP32[$$sroa$8$0$$sroa_idx14>>2] = $$sroa$8$0; + $$sroa$9$0$$sroa_idx16 = ((($0)) + 16|0); + HEAP32[$$sroa$9$0$$sroa_idx16>>2] = $$sroa$9$0; + STACKTOP = sp;return; +} +function _DecompressData($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer10 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = (_malloc($2)|0); + $4 = ($3|0)==(0|0); + if ($4) { + _TraceLog(2,11658,$vararg_buffer); + STACKTOP = sp;return ($3|0); + } + $5 = (_tinfl_decompress_mem_to_mem($3,$2,$0,$1,1)|0); + $6 = ($5|0)==(-1); + if ($6) { + _TraceLog(2,11697,$vararg_buffer1); + _free($3); + } + $7 = ($5|0)==($2|0); + if (!($7)) { + _TraceLog(2,11723,$vararg_buffer3); + HEAP32[$vararg_buffer5>>2] = $2; + _TraceLog(2,11786,$vararg_buffer5); + HEAP32[$vararg_buffer7>>2] = $5; + _TraceLog(2,11821,$vararg_buffer7); + } + HEAP32[$vararg_buffer10>>2] = $1; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $5; + _TraceLog(0,11856,$vararg_buffer10); + STACKTOP = sp;return ($3|0); +} +function _tinfl_decompress_mem_to_mem($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 11008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(11008|0); + $5 = sp + 11000|0; + $6 = sp; + $7 = sp + 8|0; + HEAP32[$5>>2] = $1; + HEAP32[$6>>2] = $3; + HEAP32[$7>>2] = 0; + $8 = $4 & -7; + $9 = $8 | 4; + $10 = (_tinfl_decompress($7,$2,$6,$0,$0,$5,$9)|0); + $11 = ($10|0)!=(0); + $12 = HEAP32[$5>>2]|0; + $13 = $11 ? -1 : $12; + STACKTOP = sp;return ($13|0); +} +function _tinfl_decompress($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$ = 0, $$$301127 = 0, $$010861840 = 0, $$010871839 = 0, $$010881838 = 0, $$010911856 = 0, $$010941846 = 0, $$010951864 = 0, $$01097 = 0, $$01194 = 0, $$011971855 = 0, $$01202 = 0, $$01202$shrunk = 0, $$01203 = 0, $$01300 = 0, $$01300$shrunk = 0, $$01309 = 0, $$01410 = 0, $$01410$shrunk = 0, $$01411 = 0; + var $$01411$shrunk = 0, $$01412 = 0, $$01413 = 0, $$01413$shrunk = 0, $$01416 = 0, $$01507 = 0, $$01607 = 0, $$01834 = 0, $$0937$lcssa = 0, $$09371833 = 0, $$0938$lcssa = 0, $$09381832 = 0, $$0941$lcssa = 0, $$09411816 = 0, $$09431831 = 0, $$09441830 = 0, $$0947 = 0, $$0947$shrunk = 0, $$0948 = 0, $$0949 = 0; + var $$0950 = 0, $$0950$shrunk = 0, $$0951 = 0, $$0952 = 0, $$0952$shrunk = 0, $$0953 = 0, $$0956 = 0, $$0959 = 0, $$0959$shrunk = 0, $$0960 = 0, $$0963 = 0, $$0967 = 0, $$0971 = 0, $$0971$shrunk = 0, $$0972 = 0, $$0975 = 0, $$0978 = 0, $$0979 = 0, $$0979$shrunk = 0, $$0980 = 0; + var $$0980$shrunk = 0, $$0981 = 0, $$0984 = 0, $$0987 = 0, $$0991 = 0, $$1$lcssa = 0, $$100 = 0, $$1001409 = 0, $$101426 = 0, $$101617 = 0, $$110891852 = 0, $$11098 = 0, $$11098$ph = 0, $$111427 = 0, $$111518 = 0, $$111618 = 0, $$11198 = 0, $$11204 = 0, $$11204$ph = 0, $$11310 = 0; + var $$11310$ph = 0, $$11417 = 0, $$11508 = 0, $$11608 = 0, $$11818 = 0, $$121428 = 0, $$121428$ph = 0, $$121519 = 0, $$121619 = 0, $$121619$ph = 0, $$13 = 0, $$131004 = 0, $$131110 = 0, $$131216 = 0, $$131322 = 0, $$131429 = 0, $$131520 = 0, $$131620 = 0, $$14 = 0, $$141005 = 0; + var $$141111 = 0, $$141217 = 0, $$141323 = 0, $$141430 = 0, $$141521 = 0, $$141621 = 0, $$15 = 0, $$151006 = 0, $$151112 = 0, $$151218 = 0, $$151324 = 0, $$151431 = 0, $$151522 = 0, $$151622 = 0, $$16 = 0, $$161007 = 0, $$161113 = 0, $$161113$ph = 0, $$161219 = 0, $$161325 = 0; + var $$161432 = 0, $$161523 = 0, $$161623 = 0, $$17 = 0, $$17$ph = 0, $$171008 = 0, $$171008$ph = 0, $$171114 = 0, $$171220 = 0, $$171220$ph = 0, $$171326 = 0, $$171326$ph = 0, $$171433 = 0, $$171524 = 0, $$171624 = 0, $$1753 = 0, $$1754 = 0, $$18 = 0, $$181009 = 0, $$181115 = 0; + var $$181221 = 0, $$181327 = 0, $$181434 = 0, $$181525 = 0, $$181625 = 0, $$19 = 0, $$191010 = 0, $$191116 = 0, $$191222 = 0, $$191328 = 0, $$191435 = 0, $$191526 = 0, $$191626 = 0, $$1939$lcssa = 0, $$19391817 = 0, $$19421823 = 0, $$1945$lcssa = 0, $$19451815 = 0, $$1954 = 0, $$1957 = 0; + var $$1961 = 0, $$1961$ = 0, $$1964 = 0, $$1968 = 0, $$1973 = 0, $$1976 = 0, $$1982 = 0, $$1985 = 0, $$1988 = 0, $$1988$ph = 0, $$1992 = 0, $$1992$ph = 0, $$2$lcssa = 0, $$20 = 0, $$201011 = 0, $$201117 = 0, $$201223 = 0, $$201329 = 0, $$201436 = 0, $$201527 = 0; + var $$201627 = 0, $$21 = 0, $$21099 = 0, $$211012 = 0, $$211118 = 0, $$211224 = 0, $$211330 = 0, $$211437 = 0, $$211437$ph = 0, $$211528 = 0, $$211628 = 0, $$211628$ph = 0, $$21196 = 0, $$21199$lcssa = 0, $$211991845 = 0, $$21205 = 0, $$21311 = 0, $$21418 = 0, $$21509 = 0, $$21609 = 0; + var $$21825 = 0, $$22 = 0, $$221013 = 0, $$221119 = 0, $$221225 = 0, $$221331 = 0, $$221438 = 0, $$221529 = 0, $$221629 = 0, $$23 = 0, $$231014 = 0, $$231120 = 0, $$231226 = 0, $$231332 = 0, $$231439 = 0, $$231530 = 0, $$231630 = 0, $$24 = 0, $$241015 = 0, $$241121 = 0; + var $$241227 = 0, $$241333 = 0, $$241440 = 0, $$241531 = 0, $$241631 = 0, $$25 = 0, $$251016 = 0, $$251122 = 0, $$251122$ph = 0, $$251228 = 0, $$251334 = 0, $$251441 = 0, $$251532 = 0, $$251632 = 0, $$26 = 0, $$26$ph = 0, $$261017 = 0, $$261017$ph = 0, $$261123 = 0, $$261229 = 0; + var $$261229$ph = 0, $$261335 = 0, $$261335$ph = 0, $$261442 = 0, $$261533 = 0, $$261633 = 0, $$27 = 0, $$271018 = 0, $$271124 = 0, $$271230 = 0, $$271336 = 0, $$271443 = 0, $$271534 = 0, $$271634 = 0, $$28 = 0, $$281019 = 0, $$281125 = 0, $$281231 = 0, $$281337 = 0, $$281444 = 0; + var $$281535 = 0, $$281635 = 0, $$29 = 0, $$291020 = 0, $$291126 = 0, $$291232 = 0, $$291338 = 0, $$291445 = 0, $$291536 = 0, $$291636 = 0, $$2940$lcssa = 0, $$29401824 = 0, $$2946$lcssa = 0, $$29461822 = 0, $$2955 = 0, $$2958 = 0, $$2965 = 0, $$2969 = 0, $$2974 = 0, $$2977 = 0; + var $$2983 = 0, $$2986 = 0, $$2989 = 0, $$2993 = 0, $$30 = 0, $$301021 = 0, $$301127 = 0, $$301233 = 0, $$301339 = 0, $$301446 = 0, $$301537 = 0, $$301637 = 0, $$31 = 0, $$31100$v = 0, $$311022 = 0, $$311128 = 0, $$311234 = 0, $$311340 = 0, $$311447 = 0, $$311538 = 0; + var $$311638 = 0, $$31200 = 0, $$31206 = 0, $$31206$ph = 0, $$31312 = 0, $$31312$ph = 0, $$31419 = 0, $$31419$ph = 0, $$31610 = 0, $$31610$ph = 0, $$32 = 0, $$321023 = 0, $$321129 = 0, $$321235 = 0, $$321341 = 0, $$321448 = 0, $$321448$ph = 0, $$321539 = 0, $$321639 = 0, $$321639$ph = 0; + var $$33 = 0, $$331024 = 0, $$331130 = 0, $$331236 = 0, $$331342 = 0, $$331449 = 0, $$331540 = 0, $$331640 = 0, $$34 = 0, $$341025 = 0, $$341131 = 0, $$341237 = 0, $$341343 = 0, $$341450 = 0, $$341541 = 0, $$341641 = 0, $$35 = 0, $$351026 = 0, $$351132 = 0, $$351238 = 0; + var $$351344 = 0, $$351451 = 0, $$351542 = 0, $$351642 = 0, $$36 = 0, $$361027 = 0, $$361027$ph = 0, $$361133 = 0, $$361133$ph = 0, $$361239 = 0, $$361345 = 0, $$361452 = 0, $$361543 = 0, $$361643 = 0, $$37 = 0, $$37$ph = 0, $$371028 = 0, $$371134 = 0, $$371240 = 0, $$371240$ph = 0; + var $$371346 = 0, $$371346$ph = 0, $$371453 = 0, $$371453$ph = 0, $$371544 = 0, $$371644 = 0, $$371644$ph = 0, $$38 = 0, $$381029 = 0, $$381135 = 0, $$381241 = 0, $$381347 = 0, $$381454 = 0, $$381545 = 0, $$381645 = 0, $$39 = 0, $$391030 = 0, $$391136 = 0, $$391242 = 0, $$391348 = 0; + var $$391455 = 0, $$391546 = 0, $$391646 = 0, $$3966 = 0, $$3970 = 0, $$3990 = 0, $$3990$ph = 0, $$3994 = 0, $$3994$ph = 0, $$40 = 0, $$401031 = 0, $$401137 = 0, $$401243 = 0, $$401349 = 0, $$401456 = 0, $$401547 = 0, $$401647 = 0, $$41 = 0, $$411032 = 0, $$411032$ph = 0; + var $$411138 = 0, $$411138$ph = 0, $$411244 = 0, $$411350 = 0, $$411457 = 0, $$411548 = 0, $$411648 = 0, $$41201 = 0, $$41420 = 0, $$41511 = 0, $$41611 = 0, $$42 = 0, $$42$ph = 0, $$421033 = 0, $$421139 = 0, $$421245 = 0, $$421245$ph = 0, $$421351 = 0, $$421351$ph = 0, $$421458 = 0; + var $$421549 = 0, $$421649 = 0, $$43 = 0, $$431034 = 0, $$431140 = 0, $$431246 = 0, $$431352 = 0, $$431459 = 0, $$431550 = 0, $$431650 = 0, $$44 = 0, $$441035 = 0, $$441141 = 0, $$441247 = 0, $$441353 = 0, $$441460 = 0, $$441460$ph = 0, $$441551 = 0, $$441651 = 0, $$441651$ph = 0; + var $$45 = 0, $$451036 = 0, $$451142 = 0, $$451248 = 0, $$451354 = 0, $$451461 = 0, $$451552 = 0, $$451652 = 0, $$46 = 0, $$461037 = 0, $$461143 = 0, $$461249 = 0, $$461355 = 0, $$461462 = 0, $$461553 = 0, $$461653 = 0, $$47 = 0, $$471038 = 0, $$471144 = 0, $$471250 = 0; + var $$471356 = 0, $$471463 = 0, $$471554 = 0, $$471654 = 0, $$48 = 0, $$481039 = 0, $$481039$ph = 0, $$481145 = 0, $$481145$ph = 0, $$481251 = 0, $$481357 = 0, $$481464 = 0, $$481555 = 0, $$481655 = 0, $$49 = 0, $$49$ph = 0, $$491040 = 0, $$491146 = 0, $$491252 = 0, $$491252$ph = 0; + var $$491358 = 0, $$491358$ph = 0, $$491465 = 0, $$491465$ph = 0, $$491556 = 0, $$491656 = 0, $$491656$ph = 0, $$5 = 0, $$50 = 0, $$501041 = 0, $$501147 = 0, $$501253 = 0, $$501359 = 0, $$501466 = 0, $$501557 = 0, $$501657 = 0, $$51 = 0, $$51102 = 0, $$511042 = 0, $$511148 = 0; + var $$511254 = 0, $$511360 = 0, $$511467 = 0, $$511558 = 0, $$511658 = 0, $$51208 = 0, $$51314 = 0, $$51512 = 0, $$52 = 0, $$521043 = 0, $$521043$ph = 0, $$521149 = 0, $$521255 = 0, $$521361 = 0, $$521468 = 0, $$521559 = 0, $$521659 = 0, $$53 = 0, $$531044 = 0, $$531150 = 0; + var $$531150$ph = 0, $$531256 = 0, $$531362 = 0, $$531469 = 0, $$531560 = 0, $$531660 = 0, $$54 = 0, $$54$ph = 0, $$541045 = 0, $$541151 = 0, $$541257 = 0, $$541257$ph = 0, $$541363 = 0, $$541363$ph = 0, $$541470$ph = 0, $$541561 = 0, $$541661$lcssa = 0, $$541661$ph = 0, $$5416611868 = 0, $$55 = 0; + var $$551046 = 0, $$551152 = 0, $$551258 = 0, $$551364 = 0, $$551471 = 0, $$551562 = 0, $$551662 = 0, $$56 = 0, $$561047 = 0, $$561153 = 0, $$561259 = 0, $$561365 = 0, $$561472 = 0, $$561563 = 0, $$561663 = 0, $$57 = 0, $$571048$ph = 0, $$571154 = 0, $$571260 = 0, $$571366 = 0; + var $$571473 = 0, $$571473$ph = 0, $$571564 = 0, $$571664 = 0, $$571664$ph = 0, $$58 = 0, $$581049 = 0, $$581155$lcssa = 0, $$581155$ph = 0, $$5811551871 = 0, $$581261 = 0, $$581367 = 0, $$581474 = 0, $$581565$lcssa = 0, $$581565$ph = 0, $$5815651869 = 0, $$581665 = 0, $$59$lcssa = 0, $$59$ph = 0, $$591050 = 0; + var $$591156 = 0, $$591262$ph = 0, $$591368$lcssa = 0, $$591368$ph = 0, $$5913681870 = 0, $$591475 = 0, $$591566 = 0, $$591666 = 0, $$591872 = 0, $$5996 = 0, $$6 = 0, $$60 = 0, $$601051 = 0, $$601051$ph = 0, $$601157 = 0, $$601263 = 0, $$601369 = 0, $$601476 = 0, $$601567 = 0, $$61 = 0; + var $$61103 = 0, $$611052 = 0, $$611158 = 0, $$611158$ph = 0, $$611264 = 0, $$611370 = 0, $$611477 = 0, $$611568 = 0, $$611668 = 0, $$61209 = 0, $$61315 = 0, $$61513 = 0, $$62 = 0, $$62$ph = 0, $$621053 = 0, $$621159 = 0, $$621265 = 0, $$621265$ph = 0, $$621371 = 0, $$621371$ph = 0; + var $$621478 = 0, $$621569 = 0, $$621669 = 0, $$63 = 0, $$631054 = 0, $$631266 = 0, $$631372 = 0, $$631479 = 0, $$631479$ph = 0, $$631570 = 0, $$631670 = 0, $$64 = 0, $$641055 = 0, $$641161 = 0, $$641267 = 0, $$641373 = 0, $$641480 = 0, $$641571 = 0, $$641671 = 0, $$641671$ph = 0; + var $$65 = 0, $$651056 = 0, $$651162 = 0, $$651268 = 0, $$651374 = 0, $$651481 = 0, $$651572 = 0, $$651672 = 0, $$66 = 0, $$661057 = 0, $$661057$ph = 0, $$661163 = 0, $$661269 = 0, $$661375 = 0, $$661482 = 0, $$661673 = 0, $$671058 = 0, $$671164 = 0, $$671164$ph = 0, $$671270 = 0; + var $$671483 = 0, $$671574 = 0, $$671674 = 0, $$68 = 0, $$681059 = 0, $$681165 = 0, $$681271 = 0, $$681271$ph = 0, $$681377 = 0, $$681484 = 0, $$681484$ph = 0, $$681575 = 0, $$681675 = 0, $$69 = 0, $$691060 = 0, $$691166 = 0, $$691272 = 0, $$691378 = 0, $$691485 = 0, $$691576 = 0; + var $$691676 = 0, $$691676$ph = 0, $$6997 = 0, $$7 = 0, $$70 = 0, $$701061 = 0, $$701167 = 0, $$701273 = 0, $$701379 = 0, $$701486 = 0, $$701577 = 0, $$701677 = 0, $$71 = 0, $$71$ph = 0, $$71104 = 0, $$711062 = 0, $$711062$ph = 0, $$711168 = 0, $$711274 = 0, $$711380 = 0; + var $$711380$ph = 0, $$711487 = 0, $$711578 = 0, $$711678 = 0, $$71210 = 0, $$71316 = 0, $$71514 = 0, $$72 = 0, $$721063 = 0, $$721169 = 0, $$721169$ph = 0, $$721275 = 0, $$721381 = 0, $$721488 = 0, $$721488$ph = 0, $$721579 = 0, $$721679 = 0, $$73 = 0, $$731064 = 0, $$731170 = 0; + var $$731276 = 0, $$731276$ph = 0, $$731382 = 0, $$731489 = 0, $$731580 = 0, $$731680 = 0, $$731680$ph = 0, $$74 = 0, $$741065 = 0, $$741065$ph = 0, $$741171 = 0, $$741277 = 0, $$741383 = 0, $$741490 = 0, $$741581 = 0, $$741681 = 0, $$75 = 0, $$751066 = 0, $$751172 = 0, $$751278 = 0; + var $$751384 = 0, $$751491 = 0, $$751582 = 0, $$751682 = 0, $$76 = 0, $$76$ph = 0, $$761067 = 0, $$761173 = 0, $$761173$ph = 0, $$761279 = 0, $$761279$ph = 0, $$761385 = 0, $$761385$ph = 0, $$761492 = 0, $$761583 = 0, $$761683 = 0, $$77 = 0, $$771068 = 0, $$771174 = 0, $$771280 = 0; + var $$771386 = 0, $$771584 = 0, $$771684 = 0, $$78 = 0, $$781069 = 0, $$781175 = 0, $$781281 = 0, $$781387 = 0, $$781585 = 0, $$781685 = 0, $$79 = 0, $$791070 = 0, $$791176 = 0, $$791282 = 0, $$791388 = 0, $$791586 = 0, $$791686 = 0, $$7998 = 0, $$8 = 0, $$8$ph = 0; + var $$80 = 0, $$80$ph = 0, $$801071 = 0, $$801177 = 0, $$801283 = 0, $$801389 = 0, $$801389$ph = 0, $$801496 = 0, $$801587 = 0, $$801687 = 0, $$81 = 0, $$81105 = 0, $$81105$ph = 0, $$811178 = 0, $$811284 = 0, $$811390 = 0, $$811497 = 0, $$811588 = 0, $$81211 = 0, $$81211$ph = 0; + var $$81317 = 0, $$81317$ph = 0, $$81424 = 0, $$81515 = 0, $$81615 = 0, $$82 = 0, $$821179 = 0, $$821285 = 0, $$821391 = 0, $$821498 = 0, $$821589 = 0, $$83 = 0, $$831180 = 0, $$831392 = 0, $$831499 = 0, $$831590 = 0, $$84 = 0, $$841075 = 0, $$841393 = 0, $$841500 = 0; + var $$841500$ph = 0, $$841591 = 0, $$841691 = 0, $$85 = 0, $$851076 = 0, $$851394 = 0, $$851501 = 0, $$851592 = 0, $$851692 = 0, $$86 = 0, $$861077 = 0, $$861289 = 0, $$861395 = 0, $$861502 = 0, $$861693 = 0, $$871078 = 0, $$871184 = 0, $$871290 = 0, $$871503 = 0, $$871694 = 0; + var $$881079 = 0, $$881079$ph = 0, $$881185 = 0, $$881291 = 0, $$881504 = 0, $$881595 = 0, $$881695 = 0, $$881695$ph = 0, $$891080 = 0, $$891186 = 0, $$891292 = 0, $$891505 = 0, $$891596 = 0, $$891696 = 0, $$8999 = 0, $$8999$ph = 0, $$9 = 0, $$90 = 0, $$901081 = 0, $$901187 = 0; + var $$901187$ph = 0, $$901293 = 0, $$901293$ph = 0, $$901399 = 0, $$901506 = 0, $$901597 = 0, $$901697 = 0, $$91 = 0, $$91000 = 0, $$91106 = 0, $$911082 = 0, $$911188 = 0, $$911294 = 0, $$911400 = 0, $$911598 = 0, $$911698 = 0, $$91212 = 0, $$91318 = 0, $$91425 = 0, $$91616 = 0; + var $$92 = 0, $$921083 = 0, $$921189 = 0, $$921295 = 0, $$921401 = 0, $$921599 = 0, $$921699 = 0, $$93 = 0, $$931084 = 0, $$931190 = 0, $$931296 = 0, $$931402 = 0, $$931600 = 0, $$931700 = 0, $$94 = 0, $$94$ph = 0, $$941085 = 0, $$941191 = 0, $$941297 = 0, $$941403 = 0; + var $$941403$ph = 0, $$941601 = 0, $$941701 = 0, $$95 = 0, $$951192 = 0, $$951298 = 0, $$951404 = 0, $$951602 = 0, $$96 = 0, $$961193 = 0, $$961299 = 0, $$961405 = 0, $$961603 = 0, $$97 = 0, $$971406 = 0, $$971604 = 0, $$98 = 0, $$981407 = 0, $$981605 = 0, $$99 = 0; + var $$991408 = 0, $$991606 = 0, $$lcssa1778 = 0, $$lcssa1779 = 0, $$lcssa1799 = 0, $$lcssa1802 = 0, $$not = 0, $$not1747 = 0, $$sink12 = 0, $$sink13 = 0, $$sink16 = 0, $$sink17 = 0, $$sink1705 = 0, $$sink1710 = 0, $$sink1713 = 0, $$sink1716 = 0, $$sink1719 = 0, $$sink1722 = 0, $$sink1729 = 0, $$sink1732 = 0; + var $$sink1736 = 0, $$sink1739 = 0, $$sink1743 = 0, $$sink1746 = 0, $$sink1750 = 0, $$sink3 = 0, $$sink3$shrunk = 0, $$sink30 = 0, $$sink9 = 0, $$sink9$shrunk = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; + var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; + var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; + var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; + var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; + var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; + var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; + var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; + var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0; + var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0; + var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0; + var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; + var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; + var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; + var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; + var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; + var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0; + var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0; + var $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0; + var $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0; + var $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0; + var $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; + var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; + var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; + var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; + var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; + var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; + var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; + var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; + var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; + var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; + var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; + var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; + var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; + var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; + var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; + var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; + var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; + var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; + var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; + var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; + var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; + var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $exitcond = 0, $not$ = 0, $not$1755 = 0, $or$cond = 0, $or$cond1702 = 0, $or$cond1752 = 0, $or$cond24 = 0, $or$cond29 = 0, $scevgep = 0; + var $scevgep1947 = 0, $scevgep1948 = 0, $scevgep1955 = 0, $scevgep1957 = 0, $scevgep1959 = 0, $scevgep19611962 = 0, $trunc = 0, $trunc$clear = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $7 = sp + 64|0; + $8 = sp; + $9 = HEAP32[$2>>2]|0; + $10 = (($1) + ($9)|0); + $11 = HEAP32[$5>>2]|0; + $12 = (($4) + ($11)|0); + $13 = $6 & 4; + $14 = ($13|0)!=(0); + $15 = $4; + $16 = $3; + $17 = $16 ^ -1; + $18 = (($15) + ($17))|0; + $19 = (($18) + ($11))|0; + $$1753 = $14 ? -1 : $19; + $20 = (($$1753) + 1)|0; + $21 = $20 & $$1753; + $22 = ($21|0)!=(0); + $23 = ($4>>>0)<($3>>>0); + $or$cond1702 = $23 | $22; + if ($or$cond1702) { + HEAP32[$5>>2] = 0; + HEAP32[$2>>2] = 0; + $$0951 = -3; + STACKTOP = sp;return ($$0951|0); + } + $24 = ((($0)) + 4|0); + $25 = HEAP32[$24>>2]|0; + $26 = ((($0)) + 56|0); + $27 = HEAP32[$26>>2]|0; + $28 = ((($0)) + 32|0); + $29 = HEAP32[$28>>2]|0; + $30 = ((($0)) + 36|0); + $31 = HEAP32[$30>>2]|0; + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + $34 = ((($0)) + 60|0); + $35 = HEAP32[$34>>2]|0; + $36 = HEAP32[$0>>2]|0; + L5: do { + switch ($36|0) { + case 0: { + $37 = ((($0)) + 12|0); + HEAP32[$37>>2] = 0; + $38 = ((($0)) + 8|0); + HEAP32[$38>>2] = 0; + $39 = ((($0)) + 28|0); + HEAP32[$39>>2] = 1; + $40 = ((($0)) + 16|0); + HEAP32[$40>>2] = 1; + $41 = $6 & 1; + $42 = ($41|0)==(0); + if ($42) { + $$01416 = $35;$$01607 = $4;$$41511 = $1;$$5 = 0;$$51102 = 0;$$51208 = 0;$$51314 = 0;$$5996 = 0; + label = 14; + } else { + $43 = ($9|0)<(1); + if ($43) { + $$01097 = 0;$$01203 = 0;$$01309 = 0;$$0987 = 0;$$0991 = 0; + label = 6; + } else { + $$11098$ph = 0;$$11204$ph = 0;$$11310$ph = 0;$$1988$ph = 0;$$1992$ph = 0; + label = 8; + } + } + break; + } + case 1: { + $46 = ($9|0)>(0); + if ($46) { + $$11098$ph = $31;$$11204$ph = $33;$$11310$ph = $27;$$1988$ph = $25;$$1992$ph = $29; + label = 8; + } else { + $$01097 = $31;$$01203 = $33;$$01309 = $27;$$0987 = $25;$$0991 = $29; + label = 6; + } + break; + } + case 2: { + $53 = ($9|0)>(0); + if ($53) { + $$31206$ph = $33;$$31312$ph = $27;$$3990$ph = $25;$$3994$ph = $29;$$sink1705 = $1; + label = 12; + } else { + $$11508 = $1;$$21099 = $31;$$21205 = $33;$$21311 = $27;$$2989 = $25;$$2993 = $29; + label = 10; + } + break; + } + case 36: { + $$0960 = -1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 36; + label = 243; + break; + } + case 3: { + $75 = ($9|0)>(0); + if ($75) { + $$31419$ph = $35;$$31610$ph = $4;$$8$ph = $25;$$81105$ph = $31;$$81211$ph = $33;$$81317$ph = $27;$$8999$ph = $29;$$sink1710 = $1; + label = 18; + } else { + $$21418 = $35;$$21609 = $4;$$61513 = $1;$$7 = $25;$$71104 = $31;$$71210 = $33;$$71316 = $27;$$7998 = $29; + label = 16; + } + break; + } + case 5: { + $90 = ($9|0)>(0); + if ($90) { + $91 = ((($1)) + 1|0); + $92 = HEAP8[$1>>0]|0; + $93 = $92&255; + $$01412 = $93;$$111518 = $91; + } else { + $88 = $6 & 2; + $89 = ($88|0)==(0); + if ($89) { + $$01412 = 0;$$111518 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 5; + label = 243; + break L5; + } + } + $94 = $$01412 << $25; + $95 = $94 | $27; + $96 = (($25) + 8)|0; + $$121519 = $$111518;$$13 = $96;$$131004 = $29;$$131216 = $33;$$131322 = $95;$$81424 = $35;$$81615 = $4; + label = 25; + break; + } + case 6: { + $106 = ($9|0)>(0); + if ($106) { + $$121428$ph = $35;$$121619$ph = $4;$$161113$ph = $31;$$17$ph = $25;$$171008$ph = $29;$$171220$ph = $33;$$171326$ph = $27;$$sink1713 = $1; + label = 32; + } else { + $$111427 = $35;$$111618 = $4;$$151112 = $31;$$151522 = $1;$$16 = $25;$$161007 = $29;$$161219 = $33;$$161325 = $27; + label = 30; + } + break; + } + case 7: { + $120 = ($9|0)>(0); + if ($120) { + $121 = ((($1)) + 1|0); + $122 = HEAP8[$1>>0]|0; + $$151431 = $35;$$151622 = $4;$$191116 = $31;$$191526 = $121;$$20 = $25;$$201011 = $29;$$201223 = $33;$$201329 = $27;$$sink12 = $122; + label = 39; + } else { + $$141430 = $35;$$141621 = $4;$$181115 = $31;$$181525 = $1;$$19 = $25;$$191010 = $29;$$191222 = $33;$$191328 = $27; + label = 36; + } + break; + } + case 39: { + $$171433 = $35;$$171624 = $4;$$211118 = $31;$$211528 = $1;$$22 = $25;$$221013 = $29;$$221225 = $33;$$221331 = $27; + label = 43; + break; + } + case 51: { + $152 = ($9|0)>(0); + if ($152) { + $$211437$ph = $35;$$211628$ph = $4;$$251122$ph = $31;$$26$ph = $25;$$261017$ph = $29;$$261229$ph = $33;$$261335$ph = $27;$$sink1716 = $1; + label = 49; + } else { + $$201436 = $35;$$201627 = $4;$$241121 = $31;$$241531 = $1;$$25 = $25;$$251016 = $29;$$251228 = $33;$$251334 = $27; + label = 47; + } + break; + } + case 52: { + $$231439 = $35;$$231630 = $4;$$271018 = $29;$$271124 = $31;$$271534 = $1;$$28 = $25;$$281231 = $33;$$281337 = $27; + label = 52; + break; + } + case 9: { + $$251441 = $35;$$251632 = $4;$$291020 = $29;$$291126 = $31;$$291536 = $1;$$30 = $25;$$301233 = $33;$$301339 = $27; + label = 55; + break; + } + case 38: { + $$261442 = $35;$$261633 = $4;$$301021 = $29;$$301127 = $31;$$301537 = $1;$$31 = $25;$$311234 = $33;$$311340 = $27; + label = 56; + break; + } + case 40: { + $$271443 = $35;$$271634 = $4;$$311022 = $29;$$311128 = $31;$$311538 = $1;$$32 = $25;$$321235 = $33;$$321341 = $27; + label = 58; + break; + } + case 10: { + $$281444 = $35;$$281635 = $4;$$321023 = $29;$$321129 = $31;$$321539 = $1;$$33 = $25;$$331236 = $33;$$331342 = $27; + label = 60; + break; + } + case 11: { + $193 = ($9|0)>(0); + if ($193) { + $$321448$ph = $35;$$321639$ph = $4;$$361027$ph = $29;$$361133$ph = $31;$$37$ph = $25;$$371240$ph = $33;$$371346$ph = $27;$$sink1719 = $1; + label = 66; + } else { + $$311447 = $35;$$311638 = $4;$$351026 = $29;$$351132 = $31;$$351542 = $1;$$36 = $25;$$361239 = $33;$$361345 = $27; + label = 64; + } + break; + } + case 14: { + $224 = ($9|0)>(0); + if ($224) { + $$371453$ph = $35;$$371644$ph = $4;$$411032$ph = $29;$$411138$ph = $31;$$42$ph = $25;$$421245$ph = $33;$$421351$ph = $27;$$sink1722 = $1; + label = 75; + } else { + $$361452 = $35;$$361643 = $4;$$401031 = $29;$$401137 = $31;$$401547 = $1;$$41 = $25;$$411244 = $33;$$411350 = $27; + label = 73; + } + break; + } + case 35: { + $$401456 = $35;$$401647 = $4;$$441035 = $29;$$441141 = $31;$$441551 = $1;$$45 = $25;$$451248 = $33;$$451354 = $27; + label = 86; + break; + } + case 16: { + $452 = ($9|0)>(0); + if ($452) { + $$441460$ph = $35;$$441651$ph = $4;$$481039$ph = $29;$$481145$ph = $31;$$49$ph = $25;$$491252$ph = $33;$$491358$ph = $27;$$sink1729 = $1; + label = 116; + } else { + $$431459 = $35;$$431650 = $4;$$471038 = $29;$$471144 = $31;$$471554 = $1;$$48 = $25;$$481251 = $33;$$481357 = $27; + label = 114; + } + break; + } + case 17: { + $$461462 = $35;$$461653 = $4;$$491040 = $29;$$501147 = $31;$$501557 = $1;$$51 = $25;$$511254 = $33;$$511360 = $27; + label = 125; + break; + } + case 18: { + $503 = ($9|0)>(0); + if ($503) { + $$491465$ph = $35;$$491656$ph = $4;$$521043$ph = $29;$$531150$ph = $31;$$54$ph = $25;$$541257$ph = $33;$$541363$ph = $27;$$sink1732 = $1; + label = 130; + } else { + $$481464 = $35;$$481655 = $4;$$511042 = $29;$$521149 = $31;$$521559 = $1;$$53 = $25;$$531256 = $33;$$531362 = $27; + label = 128; + } + break; + } + case 21: { + $$511467 = $35;$$511658 = $4;$$541045 = $29;$$551152 = $31;$$551562 = $1;$$56 = $25;$$561259 = $33;$$561365 = $27; + label = 136; + break; + } + case 23: { + $572 = ($9|0)>(0); + if ($572) { + $$571473$ph = $35;$$571664$ph = $4;$$601051$ph = $29;$$611158$ph = $31;$$62$ph = $25;$$621265$ph = $33;$$621371$ph = $27;$$sink1736 = $1; + label = 153; + } else { + $$561472 = $35;$$561663 = $4;$$591050 = $29;$$601157 = $31;$$601567 = $1;$$61 = $25;$$611264 = $33;$$611370 = $27; + label = 151; + } + break; + } + case 24: { + $$591475 = $35;$$591666 = $4;$$621053 = $29;$$621159 = $31;$$631570 = $1;$$64 = $25;$$641267 = $33;$$641373 = $27; + label = 160; + break; + } + case 25: { + $696 = ($9|0)>(0); + if ($696) { + $$631479$ph = $35;$$641671$ph = $4;$$661057$ph = $29;$$671164$ph = $31;$$681271$ph = $33;$$71$ph = $25;$$711380$ph = $27;$$sink1739 = $1; + label = 182; + } else { + $$621478 = $35;$$631670 = $4;$$651056 = $29;$$661163 = $31;$$671270 = $33;$$691576 = $1;$$70 = $25;$$701379 = $27; + label = 180; + } + break; + } + case 26: { + $737 = ($9|0)>(0); + if ($737) { + $$681484$ph = $35;$$691676$ph = $4;$$711062$ph = $29;$$721169$ph = $31;$$731276$ph = $33;$$76$ph = $25;$$761385$ph = $27;$$sink1743 = $1; + label = 195; + } else { + $$671483 = $35;$$681675 = $4;$$701061 = $29;$$711168 = $31;$$721275 = $33;$$741581 = $1;$$75 = $25;$$751384 = $27; + label = 193; + } + break; + } + case 27: { + $784 = ($9|0)>(0); + if ($784) { + $$721488$ph = $35;$$731680$ph = $4;$$741065$ph = $29;$$761173$ph = $31;$$761279$ph = $33;$$80$ph = $25;$$801389$ph = $27;$$sink1746 = $1; + label = 206; + } else { + $$711487 = $35;$$721679 = $4;$$731064 = $29;$$751172 = $31;$$751278 = $33;$$781585 = $1;$$79 = $25;$$791388 = $27; + label = 204; + } + break; + } + case 37: { + $$731489 = $35;$$761683 = $4;$$771068 = $29;$$791176 = $31;$$791282 = $33;$$821589 = $1;$$83 = $25;$$831392 = $27; + label = 210; + break; + } + case 53: { + $$751491 = $35;$$781685 = $4;$$791070 = $29;$$811178 = $31;$$811284 = $33;$$841591 = $1;$$85 = $25;$$851394 = $27; + label = 213; + break; + } + case 32: { + $842 = ($9|0)>(0); + if ($842) { + $843 = ((($1)) + 1|0); + $844 = HEAP8[$1>>0]|0; + $845 = $844&255; + $$0949 = $845;$$881595 = $843; + } else { + $840 = $6 & 2; + $841 = ($840|0)==(0); + if ($841) { + $$0949 = 0;$$881595 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 32; + label = 243; + break L5; + } + } + $846 = $$0949 << $25; + $847 = $846 | $27; + $848 = (($25) + 8)|0; + $$801496 = $35;$$841075 = $29;$$841691 = $4;$$861289 = $33;$$891596 = $$881595;$$90 = $848;$$901399 = $847; + label = 226; + break; + } + case 41: { + $858 = ($9|0)>(0); + if ($858) { + $$841500$ph = $35;$$881079$ph = $29;$$881695$ph = $4;$$901187$ph = $31;$$901293$ph = $33;$$94$ph = $25;$$941403$ph = $27;$$sink1750 = $1; + label = 233; + } else { + $$831499 = $35;$$871078 = $29;$$871694 = $4;$$891186 = $31;$$891292 = $33;$$921599 = $1;$$93 = $25;$$931402 = $27; + label = 231; + } + break; + } + case 42: { + $871 = ($9|0)>(0); + if ($871) { + $872 = ((($1)) + 1|0); + $873 = HEAP8[$1>>0]|0; + $874 = $873&255; + $$0948 = $874;$$871503 = $35;$$911082 = $29;$$911698 = $4;$$931190 = $31;$$931296 = $33;$$961603 = $872;$$97 = $25;$$971406 = $27; + label = 241; + } else { + $$861502 = $35;$$901081 = $29;$$901697 = $4;$$921189 = $31;$$921295 = $33;$$951602 = $1;$$96 = $25;$$961405 = $27; + label = 237; + } + break; + } + case 34: { + $$881504 = $35;$$921083 = $29;$$921699 = $4;$$941191 = $31;$$941297 = $33;$$971604 = $1;$$98 = $25;$$981407 = $27; + label = 242; + break; + } + default: { + $$100 = $25;$$1001409 = $27;$$1961 = -1;$$901506 = $35;$$941085 = $29;$$941701 = $4;$$961193 = $31;$$961299 = $33;$$991606 = $1; + label = 244; + } + } + } while(0); + if ((label|0) == 6) { + $44 = $6 & 2; + $45 = ($44|0)==(0); + if ($45) { + $$01507 = $1;$$11098 = $$01097;$$11204 = $$01203;$$11310 = $$01309;$$1988 = $$0987;$$1992 = $$0991;$$sink3$shrunk = 0; + label = 9; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$0991;$$931700 = $4;$$951192 = $$01097;$$951298 = $$01203;$$981605 = $1;$$99 = $$0987;$$991408 = $$01309;$$sink30 = 1; + label = 243; + } + } + else if ((label|0) == 8) { + $47 = ((($1)) + 1|0); + $48 = HEAP8[$1>>0]|0; + $$01507 = $47;$$11098 = $$11098$ph;$$11204 = $$11204$ph;$$11310 = $$11310$ph;$$1988 = $$1988$ph;$$1992 = $$1992$ph;$$sink3$shrunk = $48; + label = 9; + } + if ((label|0) == 9) { + $$sink3 = $$sink3$shrunk&255; + $49 = ((($0)) + 8|0); + HEAP32[$49>>2] = $$sink3; + $50 = ($$01507>>>0)<($10>>>0); + if ($50) { + $$31206$ph = $$11204;$$31312$ph = $$11310;$$3990$ph = $$1988;$$3994$ph = $$1992;$$sink1705 = $$01507; + label = 12; + } else { + $$11508 = $$01507;$$21099 = $$11098;$$21205 = $$11204;$$21311 = $$11310;$$2989 = $$1988;$$2993 = $$1992; + label = 10; + } + } + if ((label|0) == 10) { + $51 = $6 & 2; + $52 = ($51|0)==(0); + if ($52) { + $$21509 = $$11508;$$31206 = $$21205;$$31312 = $$21311;$$3990 = $$2989;$$3994 = $$2993;$$sink9$shrunk = 0; + label = 13; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$2993;$$931700 = $4;$$951192 = $$21099;$$951298 = $$21205;$$981605 = $$11508;$$99 = $$2989;$$991408 = $$21311;$$sink30 = 2; + label = 243; + } + } + else if ((label|0) == 12) { + $54 = ((($$sink1705)) + 1|0); + $55 = HEAP8[$$sink1705>>0]|0; + $$21509 = $54;$$31206 = $$31206$ph;$$31312 = $$31312$ph;$$3990 = $$3990$ph;$$3994 = $$3994$ph;$$sink9$shrunk = $55; + label = 13; + } + if ((label|0) == 13) { + $$sink9 = $$sink9$shrunk&255; + $56 = ((($0)) + 12|0); + HEAP32[$56>>2] = $$sink9; + $57 = ((($0)) + 8|0); + $58 = HEAP32[$57>>2]|0; + $59 = $58 << 8; + $60 = $59 | $$sink9; + $61 = (($60>>>0) % 31)&-1; + $62 = $$sink9 & 32; + $63 = $61 | $62; + $64 = $58 & 15; + $65 = ($64|0)!=(8); + $not$ = ($63|0)!=(0); + $$1754 = $65 | $not$; + $66 = $58 >>> 4; + $67 = 256 << $66; + $68 = ($67>>>0)>(32768); + $69 = ($20>>>0)<($67>>>0); + $$ = $68 | $69; + $not$1755 = $14 ^ 1; + $70 = $$ & $not$1755; + $$31100$v = $70 | $$1754; + if ($$31100$v) { + $$0960 = -1;$$891505 = $35;$$931084 = $$3994;$$931700 = $4;$$951192 = 1;$$951298 = $$31206;$$981605 = $$21509;$$99 = $$3990;$$991408 = $$31312;$$sink30 = 36; + label = 243; + } else { + $$01416 = $35;$$01607 = $4;$$41511 = $$21509;$$5 = $$3990;$$51102 = 0;$$51208 = $$31206;$$51314 = $$31312;$$5996 = $$3994; + label = 14; + } + } + L46: while(1) { + switch (label|0) { + case 14: { + label = 0; + $71 = ($$5>>>0)<(3); + if ($71) { + $$11417 = $$01416;$$11608 = $$01607;$$51512 = $$41511;$$6 = $$5;$$61103 = $$51102;$$61209 = $$51208;$$61315 = $$51314;$$6997 = $$5996; + label = 15; + } else { + $$41420 = $$01416;$$41611 = $$01607;$$81515 = $$41511;$$9 = $$5;$$91000 = $$5996;$$91106 = $$51102;$$91212 = $$51208;$$91318 = $$51314; + label = 20; + } + break; + } + case 16: { + label = 0; + $73 = $6 & 2; + $74 = ($73|0)==(0); + if ($74) { + $$01413$shrunk = 0;$$31419 = $$21418;$$31610 = $$21609;$$71514 = $$61513;$$8 = $$7;$$81105 = $$71104;$$81211 = $$71210;$$81317 = $$71316;$$8999 = $$7998; + label = 19; + } else { + $$0960 = 1;$$891505 = $$21418;$$931084 = $$7998;$$931700 = $$21609;$$951192 = $$71104;$$951298 = $$71210;$$981605 = $$61513;$$99 = $$7;$$991408 = $$71316;$$sink30 = 3; + label = 243; + continue L46; + } + break; + } + case 18: { + label = 0; + $76 = ((($$sink1710)) + 1|0); + $77 = HEAP8[$$sink1710>>0]|0; + $$01413$shrunk = $77;$$31419 = $$31419$ph;$$31610 = $$31610$ph;$$71514 = $76;$$8 = $$8$ph;$$81105 = $$81105$ph;$$81211 = $$81211$ph;$$81317 = $$81317$ph;$$8999 = $$8999$ph; + label = 19; + break; + } + case 25: { + label = 0; + $97 = $$13 & 7; + $98 = $$131322 >>> $97; + $99 = (($$13) - ($97))|0; + $$131110 = 0;$$131520 = $$121519;$$14 = $99;$$141005 = $$131004;$$141217 = $$131216;$$141323 = $98;$$91425 = $$81424;$$91616 = $$81615; + label = 26; + break; + } + case 30: { + label = 0; + $104 = $6 & 2; + $105 = ($104|0)==(0); + if ($105) { + $$01411$shrunk = 0;$$121428 = $$111427;$$121619 = $$111618;$$161113 = $$151112;$$161523 = $$151522;$$17 = $$16;$$171008 = $$161007;$$171220 = $$161219;$$171326 = $$161325; + label = 33; + } else { + $$0960 = 1;$$891505 = $$111427;$$931084 = $$161007;$$931700 = $$111618;$$951192 = $$151112;$$951298 = $$161219;$$981605 = $$151522;$$99 = $$16;$$991408 = $$161325;$$sink30 = 6; + label = 243; + continue L46; + } + break; + } + case 32: { + label = 0; + $107 = ((($$sink1713)) + 1|0); + $108 = HEAP8[$$sink1713>>0]|0; + $$01411$shrunk = $108;$$121428 = $$121428$ph;$$121619 = $$121619$ph;$$161113 = $$161113$ph;$$161523 = $107;$$17 = $$17$ph;$$171008 = $$171008$ph;$$171220 = $$171220$ph;$$171326 = $$171326$ph; + label = 33; + break; + } + case 36: { + label = 0; + $118 = $6 & 2; + $119 = ($118|0)==(0); + if ($119) { + $$151431 = $$141430;$$151622 = $$141621;$$191116 = $$181115;$$191526 = $$181525;$$20 = $$19;$$201011 = $$191010;$$201223 = $$191222;$$201329 = $$191328;$$sink12 = 0; + label = 39; + continue L46; + } else { + $$0960 = 1;$$891505 = $$141430;$$931084 = $$191010;$$931700 = $$141621;$$951192 = $$181115;$$951298 = $$191222;$$981605 = $$181525;$$99 = $$19;$$991408 = $$191328;$$sink30 = 7; + label = 243; + continue L46; + } + break; + } + case 39: { + label = 0; + $$sink13 = (((($0)) + 10528|0) + ($$191116)|0); + HEAP8[$$sink13>>0] = $$sink12; + $$161432 = $$151431;$$161623 = $$151622;$$201117 = $$191116;$$201527 = $$191526;$$21 = $$20;$$211012 = $$201011;$$211224 = $$201223;$$211330 = $$201329; + label = 41; + break; + } + case 43: { + label = 0; + $$0960 = -1;$$891505 = $$171433;$$931084 = $$221013;$$931700 = $$171624;$$951192 = $$211118;$$951298 = $$221225;$$981605 = $$211528;$$99 = $$22;$$991408 = $$221331;$$sink30 = 39; + label = 243; + continue L46; + break; + } + case 47: { + label = 0; + $150 = $6 & 2; + $151 = ($150|0)==(0); + if ($151) { + $$01410$shrunk = 0;$$211437 = $$201436;$$211628 = $$201627;$$251122 = $$241121;$$251532 = $$241531;$$26 = $$25;$$261017 = $$251016;$$261229 = $$251228;$$261335 = $$251334; + label = 50; + } else { + $$0960 = 1;$$891505 = $$201436;$$931084 = $$251016;$$931700 = $$201627;$$951192 = $$241121;$$951298 = $$251228;$$981605 = $$241531;$$99 = $$25;$$991408 = $$251334;$$sink30 = 51; + label = 243; + continue L46; + } + break; + } + case 49: { + label = 0; + $153 = ((($$sink1716)) + 1|0); + $154 = HEAP8[$$sink1716>>0]|0; + $$01410$shrunk = $154;$$211437 = $$211437$ph;$$211628 = $$211628$ph;$$251122 = $$251122$ph;$$251532 = $153;$$26 = $$26$ph;$$261017 = $$261017$ph;$$261229 = $$261229$ph;$$261335 = $$261335$ph; + label = 50; + break; + } + case 52: { + label = 0; + $162 = ($$231630>>>0)<($12>>>0); + if (!($162)) { + $$0960 = 2;$$891505 = $$231439;$$931084 = $$271018;$$931700 = $$231630;$$951192 = $$271124;$$951298 = $$281231;$$981605 = $$271534;$$99 = $$28;$$991408 = $$281337;$$sink30 = 52; + label = 243; + continue L46; + } + $163 = $$271018&255; + $164 = ((($$231630)) + 1|0); + HEAP8[$$231630>>0] = $163; + $165 = (($$271124) + -1)|0; + $$181434 = $$231439;$$181625 = $164;$$221119 = $165;$$221529 = $$271534;$$23 = $$28;$$231014 = $$271018;$$231226 = $$281231;$$231332 = $$281337; + label = 44; + break; + } + case 55: { + label = 0; + $167 = ($$251632>>>0)<($12>>>0); + if ($167) { + $$261442 = $$251441;$$261633 = $$251632;$$301021 = $$291020;$$301127 = $$291126;$$301537 = $$291536;$$31 = $$30;$$311234 = $$301233;$$311340 = $$301339; + label = 56; + continue L46; + } else { + $$0960 = 2;$$891505 = $$251441;$$931084 = $$291020;$$931700 = $$251632;$$951192 = $$291126;$$951298 = $$301233;$$981605 = $$291536;$$99 = $$30;$$991408 = $$301339;$$sink30 = 9; + label = 243; + continue L46; + } + break; + } + case 56: { + label = 0; + $168 = ($$301537>>>0)<($10>>>0); + if ($168) { + $171 = $12; + $172 = $$261633; + $173 = (($171) - ($172))|0; + $174 = $10; + $175 = $$301537; + $176 = (($174) - ($175))|0; + $177 = ($173>>>0)<($176>>>0); + $$sink17 = $177 ? $12 : $10; + $$sink16 = $177 ? $$261633 : $$301537; + $178 = $$sink17; + $179 = $$sink16; + $180 = (($178) - ($179))|0; + $181 = ($180>>>0)<($$301127>>>0); + $$$301127 = $181 ? $180 : $$301127; + _memcpy(($$261633|0),($$301537|0),($$$301127|0))|0; + $182 = (($$301537) + ($$$301127)|0); + $183 = (($$261633) + ($$$301127)|0); + $184 = (($$301127) - ($$$301127))|0; + $$241440 = $$261442;$$241631 = $183;$$281019 = $$301021;$$281125 = $184;$$281535 = $182;$$29 = $$31;$$291232 = $$311234;$$291338 = $$311340; + label = 54; + break; + } else { + $169 = $6 & 2; + $170 = ($169|0)==(0); + if ($170) { + $$271443 = $$261442;$$271634 = $$261633;$$311022 = $$301021;$$311128 = $$301127;$$311538 = $$301537;$$32 = $$31;$$321235 = $$311234;$$321341 = $$311340; + label = 58; + continue L46; + } else { + $$0960 = 1;$$891505 = $$261442;$$931084 = $$301021;$$931700 = $$261633;$$951192 = $$301127;$$951298 = $$311234;$$981605 = $$301537;$$99 = $$31;$$991408 = $$311340;$$sink30 = 38; + label = 243; + continue L46; + } + } + break; + } + case 58: { + label = 0; + $$0960 = -1;$$891505 = $$271443;$$931084 = $$311022;$$931700 = $$271634;$$951192 = $$311128;$$951298 = $$321235;$$981605 = $$311538;$$99 = $$32;$$991408 = $$321341;$$sink30 = 40; + label = 243; + continue L46; + break; + } + case 60: { + label = 0; + $$0960 = -1;$$891505 = $$281444;$$931084 = $$321023;$$931700 = $$281635;$$951192 = $$321129;$$951298 = $$331236;$$981605 = $$321539;$$99 = $$33;$$991408 = $$331342;$$sink30 = 10; + label = 243; + continue L46; + break; + } + case 64: { + label = 0; + $191 = $6 & 2; + $192 = ($191|0)==(0); + if ($192) { + $$01300$shrunk = 0;$$321448 = $$311447;$$321639 = $$311638;$$361027 = $$351026;$$361133 = $$351132;$$361543 = $$351542;$$37 = $$36;$$371240 = $$361239;$$371346 = $$361345; + label = 67; + } else { + $$0960 = 1;$$891505 = $$311447;$$931084 = $$351026;$$931700 = $$311638;$$951192 = $$351132;$$951298 = $$361239;$$981605 = $$351542;$$99 = $$36;$$991408 = $$361345;$$sink30 = 11; + label = 243; + continue L46; + } + break; + } + case 66: { + label = 0; + $194 = ((($$sink1719)) + 1|0); + $195 = HEAP8[$$sink1719>>0]|0; + $$01300$shrunk = $195;$$321448 = $$321448$ph;$$321639 = $$321639$ph;$$361027 = $$361027$ph;$$361133 = $$361133$ph;$$361543 = $194;$$37 = $$37$ph;$$371240 = $$371240$ph;$$371346 = $$371346$ph; + label = 67; + break; + } + case 73: { + label = 0; + $222 = $6 & 2; + $223 = ($222|0)==(0); + if ($223) { + $$01202$shrunk = 0;$$371453 = $$361452;$$371644 = $$361643;$$411032 = $$401031;$$411138 = $$401137;$$411548 = $$401547;$$42 = $$41;$$421245 = $$411244;$$421351 = $$411350; + label = 76; + } else { + $$0960 = 1;$$891505 = $$361452;$$931084 = $$401031;$$931700 = $$361643;$$951192 = $$401137;$$951298 = $$411244;$$981605 = $$401547;$$99 = $$41;$$991408 = $$411350;$$sink30 = 14; + label = 243; + continue L46; + } + break; + } + case 75: { + label = 0; + $225 = ((($$sink1722)) + 1|0); + $226 = HEAP8[$$sink1722>>0]|0; + $$01202$shrunk = $226;$$371453 = $$371453$ph;$$371644 = $$371644$ph;$$411032 = $$411032$ph;$$411138 = $$411138$ph;$$411548 = $225;$$42 = $$42$ph;$$421245 = $$421245$ph;$$421351 = $$421351$ph; + label = 76; + break; + } + case 86: { + label = 0; + $$0960 = -1;$$891505 = $$401456;$$931084 = $$441035;$$931700 = $$401647;$$951192 = $$441141;$$951298 = $$451248;$$981605 = $$441551;$$99 = $$45;$$991408 = $$451354;$$sink30 = 35; + label = 243; + continue L46; + break; + } + case 114: { + label = 0; + $450 = $6 & 2; + $451 = ($450|0)==(0); + if ($451) { + $$0980$shrunk = 0;$$441460 = $$431459;$$441651 = $$431650;$$481039 = $$471038;$$481145 = $$471144;$$481555 = $$471554;$$49 = $$48;$$491252 = $$481251;$$491358 = $$481357; + label = 117; + } else { + $$0960 = 1;$$891505 = $$431459;$$931084 = $$471038;$$931700 = $$431650;$$951192 = $$471144;$$951298 = $$481251;$$981605 = $$471554;$$99 = $$48;$$991408 = $$481357;$$sink30 = 16; + label = 243; + continue L46; + } + break; + } + case 116: { + label = 0; + $453 = ((($$sink1729)) + 1|0); + $454 = HEAP8[$$sink1729>>0]|0; + $$0980$shrunk = $454;$$441460 = $$441460$ph;$$441651 = $$441651$ph;$$481039 = $$481039$ph;$$481145 = $$481145$ph;$$481555 = $453;$$49 = $$49$ph;$$491252 = $$491252$ph;$$491358 = $$491358$ph; + label = 117; + break; + } + case 125: { + label = 0; + $$0960 = -1;$$891505 = $$461462;$$931084 = $$491040;$$931700 = $$461653;$$951192 = $$501147;$$951298 = $$511254;$$981605 = $$501557;$$99 = $$51;$$991408 = $$511360;$$sink30 = 17; + label = 243; + continue L46; + break; + } + case 128: { + label = 0; + $501 = $6 & 2; + $502 = ($501|0)==(0); + if ($502) { + $$0979$shrunk = 0;$$491465 = $$481464;$$491656 = $$481655;$$521043 = $$511042;$$531150 = $$521149;$$531560 = $$521559;$$54 = $$53;$$541257 = $$531256;$$541363 = $$531362; + label = 131; + } else { + $$0960 = 1;$$891505 = $$481464;$$931084 = $$511042;$$931700 = $$481655;$$951192 = $$521149;$$951298 = $$531256;$$981605 = $$521559;$$99 = $$53;$$991408 = $$531362;$$sink30 = 18; + label = 243; + continue L46; + } + break; + } + case 130: { + label = 0; + $504 = ((($$sink1732)) + 1|0); + $505 = HEAP8[$$sink1732>>0]|0; + $$0979$shrunk = $505;$$491465 = $$491465$ph;$$491656 = $$491656$ph;$$521043 = $$521043$ph;$$531150 = $$531150$ph;$$531560 = $504;$$54 = $$54$ph;$$541257 = $$541257$ph;$$541363 = $$541363$ph; + label = 131; + break; + } + case 136: { + label = 0; + $$0960 = -1;$$891505 = $$511467;$$931084 = $$541045;$$931700 = $$511658;$$951192 = $$551152;$$951298 = $$561259;$$981605 = $$551562;$$99 = $$56;$$991408 = $$561365;$$sink30 = 21; + label = 243; + continue L46; + break; + } + case 151: { + label = 0; + $570 = $6 & 2; + $571 = ($570|0)==(0); + if ($571) { + $$0971$shrunk = 0;$$571473 = $$561472;$$571664 = $$561663;$$601051 = $$591050;$$611158 = $$601157;$$611568 = $$601567;$$62 = $$61;$$621265 = $$611264;$$621371 = $$611370; + label = 154; + } else { + $$0960 = 1;$$891505 = $$561472;$$931084 = $$591050;$$931700 = $$561663;$$951192 = $$601157;$$951298 = $$611264;$$981605 = $$601567;$$99 = $$61;$$991408 = $$611370;$$sink30 = 23; + label = 243; + continue L46; + } + break; + } + case 153: { + label = 0; + $573 = ((($$sink1736)) + 1|0); + $574 = HEAP8[$$sink1736>>0]|0; + $$0971$shrunk = $574;$$571473 = $$571473$ph;$$571664 = $$571664$ph;$$601051 = $$601051$ph;$$611158 = $$611158$ph;$$611568 = $573;$$62 = $$62$ph;$$621265 = $$621265$ph;$$621371 = $$621371$ph; + label = 154; + break; + } + case 160: { + label = 0; + $610 = ($$591666>>>0)<($12>>>0); + if (!($610)) { + $$0960 = 2;$$891505 = $$591475;$$931084 = $$621053;$$931700 = $$591666;$$951192 = $$621159;$$951298 = $$641267;$$981605 = $$631570;$$99 = $$64;$$991408 = $$641373;$$sink30 = 24; + label = 243; + continue L46; + } + $611 = $$621159&255; + $612 = ((($$591666)) + 1|0); + HEAP8[$$591666>>0] = $611; + $$541470$ph = $$591475;$$541661$ph = $612;$$571048$ph = $$621053;$$581155$ph = $$621159;$$581565$ph = $$631570;$$59$ph = $$64;$$591262$ph = $$641267;$$591368$ph = $$641373; + label = 140; + break; + } + case 180: { + label = 0; + $694 = $6 & 2; + $695 = ($694|0)==(0); + if ($695) { + $$0959$shrunk = 0;$$631479 = $$621478;$$641671 = $$631670;$$661057 = $$651056;$$671164 = $$661163;$$681271 = $$671270;$$701577 = $$691576;$$71 = $$70;$$711380 = $$701379; + label = 183; + } else { + $$0960 = 1;$$891505 = $$621478;$$931084 = $$651056;$$931700 = $$631670;$$951192 = $$661163;$$951298 = $$671270;$$981605 = $$691576;$$99 = $$70;$$991408 = $$701379;$$sink30 = 25; + label = 243; + continue L46; + } + break; + } + case 182: { + label = 0; + $697 = ((($$sink1739)) + 1|0); + $698 = HEAP8[$$sink1739>>0]|0; + $$0959$shrunk = $698;$$631479 = $$631479$ph;$$641671 = $$641671$ph;$$661057 = $$661057$ph;$$671164 = $$671164$ph;$$681271 = $$681271$ph;$$701577 = $697;$$71 = $$71$ph;$$711380 = $$711380$ph; + label = 183; + break; + } + case 193: { + label = 0; + $735 = $6 & 2; + $736 = ($735|0)==(0); + if ($736) { + $$0952$shrunk = 0;$$681484 = $$671483;$$691676 = $$681675;$$711062 = $$701061;$$721169 = $$711168;$$731276 = $$721275;$$751582 = $$741581;$$76 = $$75;$$761385 = $$751384; + label = 196; + } else { + $$0960 = 1;$$891505 = $$671483;$$931084 = $$701061;$$931700 = $$681675;$$951192 = $$711168;$$951298 = $$721275;$$981605 = $$741581;$$99 = $$75;$$991408 = $$751384;$$sink30 = 26; + label = 243; + continue L46; + } + break; + } + case 195: { + label = 0; + $738 = ((($$sink1743)) + 1|0); + $739 = HEAP8[$$sink1743>>0]|0; + $$0952$shrunk = $739;$$681484 = $$681484$ph;$$691676 = $$691676$ph;$$711062 = $$711062$ph;$$721169 = $$721169$ph;$$731276 = $$731276$ph;$$751582 = $738;$$76 = $$76$ph;$$761385 = $$761385$ph; + label = 196; + break; + } + case 204: { + label = 0; + $782 = $6 & 2; + $783 = ($782|0)==(0); + if ($783) { + $$0950$shrunk = 0;$$721488 = $$711487;$$731680 = $$721679;$$741065 = $$731064;$$761173 = $$751172;$$761279 = $$751278;$$791586 = $$781585;$$80 = $$79;$$801389 = $$791388; + label = 207; + } else { + $$0960 = 1;$$891505 = $$711487;$$931084 = $$731064;$$931700 = $$721679;$$951192 = $$751172;$$951298 = $$751278;$$981605 = $$781585;$$99 = $$79;$$991408 = $$791388;$$sink30 = 27; + label = 243; + continue L46; + } + break; + } + case 206: { + label = 0; + $785 = ((($$sink1746)) + 1|0); + $786 = HEAP8[$$sink1746>>0]|0; + $$0950$shrunk = $786;$$721488 = $$721488$ph;$$731680 = $$731680$ph;$$741065 = $$741065$ph;$$761173 = $$761173$ph;$$761279 = $$761279$ph;$$791586 = $785;$$80 = $$80$ph;$$801389 = $$801389$ph; + label = 207; + break; + } + case 210: { + label = 0; + $$0960 = -1;$$891505 = $$731489;$$931084 = $$771068;$$931700 = $$761683;$$951192 = $$791176;$$951298 = $$791282;$$981605 = $$821589;$$99 = $$83;$$991408 = $$831392;$$sink30 = 37; + label = 243; + continue L46; + break; + } + case 213: { + label = 0; + $809 = ($$781685>>>0)<($12>>>0); + if (!($809)) { + $$0960 = 2;$$891505 = $$751491;$$931084 = $$791070;$$931700 = $$781685;$$951192 = $$811178;$$951298 = $$811284;$$981605 = $$841591;$$99 = $$85;$$991408 = $$851394;$$sink30 = 53; + label = 243; + continue L46; + } + $810 = (($$751491) + 1)|0; + $811 = (($$751491) - ($$791070))|0; + $812 = $811 & $$1753; + $813 = (($3) + ($812)|0); + $814 = HEAP8[$813>>0]|0; + $815 = ((($$781685)) + 1|0); + HEAP8[$$781685>>0] = $814; + $$741490 = $810;$$771684 = $815;$$781069 = $$791070;$$801177 = $$811178;$$801283 = $$811284;$$831590 = $$841591;$$84 = $$85;$$841393 = $$851394; + label = 212; + break; + } + case 226: { + label = 0; + $849 = $$90 & 7; + $850 = $$901399 >>> $849; + $851 = (($$90) - ($849))|0; + $$811497 = $$801496;$$851076 = $$841075;$$851692 = $$841691;$$871184 = 0;$$871290 = $$861289;$$901597 = $$891596;$$91 = $851;$$911400 = $850; + label = 227; + break; + } + case 231: { + label = 0; + $856 = $6 & 2; + $857 = ($856|0)==(0); + if ($857) { + $$0947$shrunk = 0;$$841500 = $$831499;$$881079 = $$871078;$$881695 = $$871694;$$901187 = $$891186;$$901293 = $$891292;$$931600 = $$921599;$$94 = $$93;$$941403 = $$931402; + label = 234; + } else { + $$0960 = 1;$$891505 = $$831499;$$931084 = $$871078;$$931700 = $$871694;$$951192 = $$891186;$$951298 = $$891292;$$981605 = $$921599;$$99 = $$93;$$991408 = $$931402;$$sink30 = 41; + label = 243; + continue L46; + } + break; + } + case 233: { + label = 0; + $859 = ((($$sink1750)) + 1|0); + $860 = HEAP8[$$sink1750>>0]|0; + $$0947$shrunk = $860;$$841500 = $$841500$ph;$$881079 = $$881079$ph;$$881695 = $$881695$ph;$$901187 = $$901187$ph;$$901293 = $$901293$ph;$$931600 = $859;$$94 = $$94$ph;$$941403 = $$941403$ph; + label = 234; + break; + } + case 237: { + label = 0; + $869 = $6 & 2; + $870 = ($869|0)==(0); + if ($870) { + $$0948 = 0;$$871503 = $$861502;$$911082 = $$901081;$$911698 = $$901697;$$931190 = $$921189;$$931296 = $$921295;$$961603 = $$951602;$$97 = $$96;$$971406 = $$961405; + label = 241; + continue L46; + } else { + $$0960 = 1;$$891505 = $$861502;$$931084 = $$901081;$$931700 = $$901697;$$951192 = $$921189;$$951298 = $$921295;$$981605 = $$951602;$$99 = $$96;$$991408 = $$961405;$$sink30 = 42; + label = 243; + continue L46; + } + break; + } + case 241: { + label = 0; + $878 = ((($0)) + 16|0); + $879 = HEAP32[$878>>2]|0; + $880 = $879 << 8; + $881 = $880 | $$0948; + HEAP32[$878>>2] = $881; + $882 = (($$931190) + 1)|0; + $$811497 = $$871503;$$851076 = $$911082;$$851692 = $$911698;$$871184 = $882;$$871290 = $$931296;$$901597 = $$961603;$$91 = $$97;$$911400 = $$971406; + label = 227; + break; + } + case 242: { + label = 0; + $$0960 = 0;$$891505 = $$881504;$$931084 = $$921083;$$931700 = $$921699;$$951192 = $$941191;$$951298 = $$941297;$$981605 = $$971604;$$99 = $$98;$$991408 = $$981407;$$sink30 = 34; + label = 243; + continue L46; + break; + } + case 243: { + label = 0; + HEAP32[$0>>2] = $$sink30; + $$100 = $$99;$$1001409 = $$991408;$$1961 = $$0960;$$901506 = $$891505;$$941085 = $$931084;$$941701 = $$931700;$$961193 = $$951192;$$961299 = $$951298;$$991606 = $$981605; + label = 244; + continue L46; + break; + } + case 244: { + label = 0; + HEAP32[$24>>2] = $$100; + HEAP32[$26>>2] = $$1001409; + HEAP32[$28>>2] = $$941085; + HEAP32[$30>>2] = $$961193; + HEAP32[$32>>2] = $$961299; + HEAP32[$34>>2] = $$901506; + $883 = $$991606; + $884 = $1; + $885 = (($883) - ($884))|0; + HEAP32[$2>>2] = $885; + $886 = $$941701; + $887 = $4; + $888 = (($886) - ($887))|0; + HEAP32[$5>>2] = $888; + $889 = $6 & 9; + $890 = ($889|0)!=(0); + $891 = ($$1961|0)>(-1); + $or$cond29 = $890 & $891; + if ($or$cond29) { + break L46; + } else { + $$0951 = $$1961; + label = 258; + break L46; + } + break; + } + } + switch (label|0) { + case 19: { + label = 0; + $$01413 = $$01413$shrunk&255; + $78 = $$01413 << $$8; + $79 = $78 | $$81317; + $80 = (($$8) + 8)|0; + $81 = ($80>>>0)<(3); + if ($81) { + $$11417 = $$31419;$$11608 = $$31610;$$51512 = $$71514;$$6 = $80;$$61103 = $$81105;$$61209 = $$81211;$$61315 = $79;$$6997 = $$8999; + label = 15; + } else { + $$41420 = $$31419;$$41611 = $$31610;$$81515 = $$71514;$$9 = $80;$$91000 = $$8999;$$91106 = $$81105;$$91212 = $$81211;$$91318 = $79; + label = 20; + } + break; + } + case 33: { + label = 0; + $$01411 = $$01411$shrunk&255; + $109 = $$01411 << $$17; + $110 = $109 | $$171326; + $111 = (($$17) + 8)|0; + $112 = ($$17>>>0)>(4294967287); + if ($112) { + $$101426 = $$121428;$$101617 = $$121619;$$141111 = $$161113;$$141521 = $$161523;$$15 = $111;$$151006 = $$171008;$$151218 = $$171220;$$151324 = $110; + label = 29; + } else { + $$131429 = $$121428;$$131620 = $$121619;$$171114 = $$161113;$$171524 = $$161523;$$18 = $111;$$181009 = $$171008;$$181221 = $$171220;$$181327 = $110; + label = 34; + } + break; + } + case 50: { + label = 0; + $$01410 = $$01410$shrunk&255; + $155 = $$01410 << $$26; + $156 = $155 | $$261335; + $157 = (($$26) + 8)|0; + $158 = ($$26>>>0)>(4294967287); + if ($158) { + $$191435 = $$211437;$$191626 = $$211628;$$231120 = $$251122;$$231530 = $$251532;$$24 = $157;$$241015 = $$261017;$$241227 = $$261229;$$241333 = $156; + label = 46; + } else { + $$221438 = $$211437;$$221629 = $$211628;$$261123 = $$251122;$$261533 = $$251532;$$27 = $157;$$271230 = $$261229;$$271336 = $156; + label = 51; + } + break; + } + case 67: { + label = 0; + $$01300 = $$01300$shrunk&255; + $196 = $$01300 << $$37; + $197 = $196 | $$371346; + $198 = (($$37) + 8)|0; + $199 = (11913 + ($$361133)|0); + $200 = HEAP8[$199>>0]|0; + $201 = $200 << 24 >> 24; + $202 = ($198>>>0)<($201>>>0); + if ($202) { + $$301446 = $$321448;$$301637 = $$321639;$$341025 = $$361027;$$341131 = $$361133;$$341541 = $$361543;$$35 = $198;$$351238 = $$371240;$$351344 = $197; + label = 63; + } else { + $$331449 = $$321448;$$331640 = $$321639;$$371028 = $$361027;$$371134 = $$361133;$$371544 = $$361543;$$38 = $198;$$381241 = $$371240;$$381347 = $197; + label = 68; + } + break; + } + case 76: { + label = 0; + $$01202 = $$01202$shrunk&255; + $227 = $$01202 << $$42; + $228 = $227 | $$421351; + $229 = (($$42) + 8)|0; + $230 = ($229>>>0)<(3); + if ($230) { + $$351451 = $$371453;$$351642 = $$371644;$$391030 = $$411032;$$391136 = $$411138;$$391546 = $$411548;$$40 = $229;$$401243 = $$421245;$$401349 = $228; + label = 72; + } else { + $$381454 = $$371453;$$381645 = $$371644;$$421033 = $$411032;$$421139 = $$411138;$$421549 = $$411548;$$43 = $229;$$431246 = $$421245;$$431352 = $228; + label = 77; + } + break; + } + case 117: { + label = 0; + $$0980 = $$0980$shrunk&255; + $455 = $$0980 << $$49; + $456 = $455 | $$491358; + $457 = (($$49) + 8)|0; + $458 = ($457>>>0)<(15); + if ($458) { + $$421458 = $$441460;$$421649 = $$441651;$$461037 = $$481039;$$461143 = $$481145;$$461553 = $$481555;$$47 = $457;$$471250 = $$491252;$$471356 = $456; + label = 108; + } else { + $$451461 = $$441460;$$451652 = $$441651;$$491146 = $$481145;$$491556 = $$481555;$$50 = $457;$$501253 = $$491252;$$501359 = $456; + label = 119; + } + break; + } + case 131: { + label = 0; + $$0979 = $$0979$shrunk&255; + $506 = $$0979 << $$54; + $507 = $506 | $$541363; + $508 = (($$54) + 8)|0; + $509 = ($508>>>0)<($$541257>>>0); + if ($509) { + $$471463 = $$491465;$$471654 = $$491656;$$501041 = $$521043;$$511148 = $$531150;$$511558 = $$531560;$$52 = $508;$$521255 = $$541257;$$521361 = $507; + label = 127; + } else { + $$501466 = $$491465;$$501657 = $$491656;$$531044 = $$521043;$$541151 = $$531150;$$541561 = $$531560;$$55 = $508;$$551258 = $$541257;$$551364 = $507; + label = 132; + } + break; + } + case 154: { + label = 0; + $$0971 = $$0971$shrunk&255; + $575 = $$0971 << $$62; + $576 = $575 | $$621371; + $577 = (($$62) + 8)|0; + $578 = ($577>>>0)<(15); + if ($578) { + $$551471 = $$571473;$$551662 = $$571664;$$581049 = $$601051;$$591156 = $$611158;$$591566 = $$611568;$$60 = $577;$$601263 = $$621265;$$601369 = $576; + label = 145; + } else { + $$581474 = $$571473;$$581665 = $$571664;$$611052 = $$601051;$$621569 = $$611568;$$63 = $577;$$631266 = $$621265;$$631372 = $576; + label = 156; + } + break; + } + case 183: { + label = 0; + $$0959 = $$0959$shrunk&255; + $699 = $$0959 << $$71; + $700 = $699 | $$711380; + $701 = (($$71) + 8)|0; + $702 = ($701>>>0)<($$681271>>>0); + if ($702) { + $$611477 = $$631479;$$621669 = $$641671;$$641055 = $$661057;$$651162 = $$671164;$$661269 = $$681271;$$681575 = $$701577;$$69 = $701;$$691378 = $700; + label = 179; + } else { + $$641480 = $$631479;$$651672 = $$641671;$$671058 = $$661057;$$681165 = $$671164;$$691272 = $$681271;$$711578 = $$701577;$$72 = $701;$$721381 = $700; + label = 184; + } + break; + } + case 196: { + label = 0; + $$0952 = $$0952$shrunk&255; + $740 = $$0952 << $$76; + $741 = $740 | $$761385; + $742 = (($$76) + 8)|0; + $743 = ($742>>>0)<(15); + if ($743) { + $$661482 = $$681484;$$671674 = $$691676;$$691060 = $$711062;$$701167 = $$721169;$$711274 = $$731276;$$731580 = $$751582;$$74 = $742;$$741383 = $741; + label = 187; + } else { + $$691485 = $$681484;$$701677 = $$691676;$$731170 = $$721169;$$761583 = $$751582;$$77 = $742;$$771386 = $741; + label = 198; + } + break; + } + case 207: { + label = 0; + $$0950 = $$0950$shrunk&255; + $787 = $$0950 << $$80; + $788 = $787 | $$801389; + $789 = (($$80) + 8)|0; + $790 = ($789>>>0)<($$761279>>>0); + if ($790) { + $$701486 = $$721488;$$711678 = $$731680;$$721063 = $$741065;$$741171 = $$761173;$$741277 = $$761279;$$771584 = $$791586;$$78 = $789;$$781387 = $788; + label = 203; + } else { + $$741681 = $$731680;$$751066 = $$741065;$$771174 = $$761173;$$771280 = $$761279;$$801587 = $$791586;$$81 = $789;$$811390 = $788; + label = 208; + } + break; + } + case 227: { + label = 0; + $852 = ($$871184>>>0)<(4); + if (!($852)) { + $$881504 = $$811497;$$921083 = $$851076;$$921699 = $$851692;$$941191 = $$871184;$$941297 = $$871290;$$971604 = $$901597;$$98 = $$91;$$981407 = $$911400; + label = 242; + continue L46; + } + $853 = ($$91|0)==(0); + if (!($853)) { + $854 = ($$91>>>0)<(8); + if ($854) { + $$821498 = $$811497;$$861077 = $$851076;$$861693 = $$851692;$$881185 = $$871184;$$881291 = $$871290;$$911598 = $$901597;$$92 = $$91;$$921401 = $$911400; + label = 230; + break; + } else { + $$851501 = $$811497;$$891080 = $$851076;$$891696 = $$851692;$$911188 = $$871184;$$911294 = $$871290;$$941601 = $$901597;$$95 = $$91;$$951404 = $$911400; + label = 235; + break; + } + } + $868 = ($$901597>>>0)<($10>>>0); + if (!($868)) { + $$861502 = $$811497;$$901081 = $$851076;$$901697 = $$851692;$$921189 = $$871184;$$921295 = $$871290;$$951602 = $$901597;$$96 = 0;$$961405 = $$911400; + label = 237; + continue L46; + } + $875 = ((($$901597)) + 1|0); + $876 = HEAP8[$$901597>>0]|0; + $877 = $876&255; + $$0948 = $877;$$871503 = $$811497;$$911082 = $$851076;$$911698 = $$851692;$$931190 = $$871184;$$931296 = $$871290;$$961603 = $875;$$97 = 0;$$971406 = $$911400; + label = 241; + continue L46; + break; + } + case 234: { + label = 0; + $$0947 = $$0947$shrunk&255; + $861 = $$0947 << $$94; + $862 = $861 | $$941403; + $863 = (($$94) + 8)|0; + $864 = ($$94>>>0)>(4294967287); + if ($864) { + $$821498 = $$841500;$$861077 = $$881079;$$861693 = $$881695;$$881185 = $$901187;$$881291 = $$901293;$$911598 = $$931600;$$92 = $863;$$921401 = $862; + label = 230; + } else { + $$851501 = $$841500;$$891080 = $$881079;$$891696 = $$881695;$$911188 = $$901187;$$911294 = $$901293;$$941601 = $$931600;$$95 = $863;$$951404 = $862; + label = 235; + } + break; + } + } + L119: do { + if ((label|0) == 15) { + label = 0; + $72 = ($$51512>>>0)<($10>>>0); + if ($72) { + $$31419$ph = $$11417;$$31610$ph = $$11608;$$8$ph = $$6;$$81105$ph = $$61103;$$81211$ph = $$61209;$$81317$ph = $$61315;$$8999$ph = $$6997;$$sink1710 = $$51512; + label = 18; + continue L46; + } else { + $$21418 = $$11417;$$21609 = $$11608;$$61513 = $$51512;$$7 = $$6;$$71104 = $$61103;$$71210 = $$61209;$$71316 = $$61315;$$7998 = $$6997; + label = 16; + continue L46; + } + } + else if ((label|0) == 20) { + label = 0; + $82 = $$91318 & 7; + $83 = ((($0)) + 20|0); + HEAP32[$83>>2] = $82; + $84 = $$91318 >>> 3; + $85 = (($$9) + -3)|0; + $86 = $82 >>> 1; + $87 = ((($0)) + 24|0); + HEAP32[$87>>2] = $86; + $trunc = $86&255; + $trunc$clear = $trunc & 3; + switch ($trunc$clear<<24>>24) { + case 0: { + $$121519 = $$81515;$$13 = $85;$$131004 = $$91000;$$131216 = $$91212;$$131322 = $84;$$81424 = $$41420;$$81615 = $$41611; + label = 25; + continue L46; + break; + } + case 3: { + $$281444 = $$41420;$$281635 = $$41611;$$321023 = $$91000;$$321129 = $$91106;$$321539 = $$81515;$$33 = $85;$$331236 = $$91212;$$331342 = $84; + label = 60; + continue L46; + break; + } + case 1: { + break; + } + default: { + $$291445 = $$41420;$$291636 = $$41611;$$331024 = $$91000;$$331130 = 0;$$331540 = $$81515;$$34 = $85;$$341237 = $$91212;$$341343 = $84; + label = 61; + break L119; + } + } + $240 = ((($0)) + 44|0); + HEAP32[$240>>2] = 288; + $241 = ((($0)) + 48|0); + HEAP32[$241>>2] = 32; + $242 = ((($0)) + 3552|0); + ;HEAP32[$242>>2]=84215045|0;HEAP32[$242+4>>2]=84215045|0;HEAP32[$242+8>>2]=84215045|0;HEAP32[$242+12>>2]=84215045|0;HEAP32[$242+16>>2]=84215045|0;HEAP32[$242+20>>2]=84215045|0;HEAP32[$242+24>>2]=84215045|0;HEAP32[$242+28>>2]=84215045|0; + $scevgep19611962 = ((($0)) + 64|0); + _memset(($scevgep19611962|0),8,144)|0; + $scevgep1959 = ((($0)) + 208|0); + dest=$scevgep1959; stop=dest+112|0; do { HEAP8[dest>>0]=9|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1957 = ((($0)) + 320|0); + dest=$scevgep1957; stop=dest+24|0; do { HEAP8[dest>>0]=7|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1955 = ((($0)) + 344|0); + $243 = $scevgep1955; + $244 = $243; + HEAP8[$244>>0]=134744072&255;HEAP8[$244+1>>0]=(134744072>>8)&255;HEAP8[$244+2>>0]=(134744072>>16)&255;HEAP8[$244+3>>0]=134744072>>24; + $245 = (($243) + 4)|0; + $246 = $245; + HEAP8[$246>>0]=134744072&255;HEAP8[$246+1>>0]=(134744072>>8)&255;HEAP8[$246+2>>0]=(134744072>>16)&255;HEAP8[$246+3>>0]=134744072>>24; + $$391455 = $$41420;$$391646 = $$41611;$$431034 = $$91000;$$431140 = $$91106;$$431550 = $$81515;$$44 = $85;$$441247 = $$91212;$$441353 = $84; + label = 80; + } + else if ((label|0) == 230) { + label = 0; + $855 = ($$911598>>>0)<($10>>>0); + if ($855) { + $$841500$ph = $$821498;$$881079$ph = $$861077;$$881695$ph = $$861693;$$901187$ph = $$881185;$$901293$ph = $$881291;$$94$ph = $$92;$$941403$ph = $$921401;$$sink1750 = $$911598; + label = 233; + continue L46; + } else { + $$831499 = $$821498;$$871078 = $$861077;$$871694 = $$861693;$$891186 = $$881185;$$891292 = $$881291;$$921599 = $$911598;$$93 = $$92;$$931402 = $$921401; + label = 231; + continue L46; + } + } + else if ((label|0) == 235) { + label = 0; + $865 = $$951404 & 255; + $866 = $$951404 >>> 8; + $867 = (($$95) + -8)|0; + $$0948 = $865;$$871503 = $$851501;$$911082 = $$891080;$$911698 = $$891696;$$931190 = $$911188;$$931296 = $$911294;$$961603 = $$941601;$$97 = $867;$$971406 = $866; + label = 241; + continue L46; + } + } while(0); + L125: while(1) { + L126: switch (label|0) { + case 26: { + label = 0; + $100 = ($$131110>>>0)<(4); + if (!($100)) { + $127 = ((($0)) + 10528|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = ((($0)) + 10529|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = $132 << 8; + $134 = $133 | $129; + $135 = ((($0)) + 10530|0); + $136 = HEAP8[$135>>0]|0; + $137 = $136&255; + $138 = ((($0)) + 10531|0); + $139 = HEAP8[$138>>0]|0; + $140 = $139&255; + $141 = $140 << 8; + $142 = $141 | $137; + $143 = $142 ^ 65535; + $144 = ($134|0)==($143|0); + if ($144) { + $$181434 = $$91425;$$181625 = $$91616;$$221119 = $134;$$221529 = $$131520;$$23 = $$14;$$231014 = $$141005;$$231226 = $$141217;$$231332 = $$141323; + label = 44; + continue L125; + } else { + $$171433 = $$91425;$$171624 = $$91616;$$211118 = $134;$$211528 = $$131520;$$22 = $$14;$$221013 = $$141005;$$221225 = $$141217;$$221331 = $$141323; + label = 43; + continue L46; + } + } + $101 = ($$14|0)==(0); + if (!($101)) { + $102 = ($$14>>>0)<(8); + if ($102) { + $$101426 = $$91425;$$101617 = $$91616;$$141111 = $$131110;$$141521 = $$131520;$$15 = $$14;$$151006 = $$141005;$$151218 = $$141217;$$151324 = $$141323; + label = 29; + continue L125; + } else { + $$131429 = $$91425;$$131620 = $$91616;$$171114 = $$131110;$$171524 = $$131520;$$18 = $$14;$$181009 = $$141005;$$181221 = $$141217;$$181327 = $$141323; + label = 34; + continue L125; + } + } + $117 = ($$131520>>>0)<($10>>>0); + if (!($117)) { + $$141430 = $$91425;$$141621 = $$91616;$$181115 = $$131110;$$181525 = $$131520;$$19 = 0;$$191010 = $$141005;$$191222 = $$141217;$$191328 = $$141323; + label = 36; + continue L46; + } + $123 = ((($$131520)) + 1|0); + $124 = HEAP8[$$131520>>0]|0; + $125 = (((($0)) + 10528|0) + ($$131110)|0); + HEAP8[$125>>0] = $124; + $$161432 = $$91425;$$161623 = $$91616;$$201117 = $$131110;$$201527 = $123;$$21 = 0;$$211012 = $$141005;$$211224 = $$141217;$$211330 = $$141323; + label = 41; + continue L125; + break; + } + case 29: { + label = 0; + $103 = ($$141521>>>0)<($10>>>0); + if ($103) { + $$121428$ph = $$101426;$$121619$ph = $$101617;$$161113$ph = $$141111;$$17$ph = $$15;$$171008$ph = $$151006;$$171220$ph = $$151218;$$171326$ph = $$151324;$$sink1713 = $$141521; + label = 32; + continue L46; + } else { + $$111427 = $$101426;$$111618 = $$101617;$$151112 = $$141111;$$151522 = $$141521;$$16 = $$15;$$161007 = $$151006;$$161219 = $$151218;$$161325 = $$151324; + label = 30; + continue L46; + } + break; + } + case 34: { + label = 0; + $113 = $$181327&255; + $114 = (((($0)) + 10528|0) + ($$171114)|0); + HEAP8[$114>>0] = $113; + $115 = $$181327 >>> 8; + $116 = (($$18) + -8)|0; + $$161432 = $$131429;$$161623 = $$131620;$$201117 = $$171114;$$201527 = $$171524;$$21 = $116;$$211012 = $$181009;$$211224 = $$181221;$$211330 = $115; + label = 41; + continue L125; + break; + } + case 41: { + label = 0; + $126 = (($$201117) + 1)|0; + $$131110 = $126;$$131520 = $$201527;$$14 = $$21;$$141005 = $$211012;$$141217 = $$211224;$$141323 = $$211330;$$91425 = $$161432;$$91616 = $$161623; + label = 26; + continue L125; + break; + } + case 44: { + label = 0; + $145 = ($$221119|0)!=(0); + $146 = ($$23|0)!=(0); + $147 = $145 & $146; + if (!($147)) { + $$241440 = $$181434;$$241631 = $$181625;$$281019 = $$231014;$$281125 = $$221119;$$281535 = $$221529;$$29 = $$23;$$291232 = $$231226;$$291338 = $$231332; + label = 54; + continue L125; + } + $148 = ($$23>>>0)<(8); + if ($148) { + $$191435 = $$181434;$$191626 = $$181625;$$231120 = $$221119;$$231530 = $$221529;$$24 = $$23;$$241015 = $$231014;$$241227 = $$231226;$$241333 = $$231332; + label = 46; + continue L125; + } else { + $$221438 = $$181434;$$221629 = $$181625;$$261123 = $$221119;$$261533 = $$221529;$$27 = $$23;$$271230 = $$231226;$$271336 = $$231332; + label = 51; + continue L125; + } + break; + } + case 46: { + label = 0; + $149 = ($$231530>>>0)<($10>>>0); + if ($149) { + $$211437$ph = $$191435;$$211628$ph = $$191626;$$251122$ph = $$231120;$$26$ph = $$24;$$261017$ph = $$241015;$$261229$ph = $$241227;$$261335$ph = $$241333;$$sink1716 = $$231530; + label = 49; + continue L46; + } else { + $$201436 = $$191435;$$201627 = $$191626;$$241121 = $$231120;$$241531 = $$231530;$$25 = $$24;$$251016 = $$241015;$$251228 = $$241227;$$251334 = $$241333; + label = 47; + continue L46; + } + break; + } + case 51: { + label = 0; + $159 = $$271336 & 255; + $160 = $$271336 >>> 8; + $161 = (($$27) + -8)|0; + $$231439 = $$221438;$$231630 = $$221629;$$271018 = $159;$$271124 = $$261123;$$271534 = $$261533;$$28 = $161;$$281231 = $$271230;$$281337 = $160; + label = 52; + continue L46; + break; + } + case 54: { + label = 0; + $166 = ($$281125|0)==(0); + if ($166) { + $$761492 = $$241440;$$801071 = $$281019;$$801687 = $$241631;$$821285 = $$291232;$$831180 = 0;$$851592 = $$281535;$$86 = $$29;$$861395 = $$291338; + label = 220; + break L125; + } else { + $$251441 = $$241440;$$251632 = $$241631;$$291020 = $$281019;$$291126 = $$281125;$$291536 = $$281535;$$30 = $$29;$$301233 = $$291232;$$301339 = $$291338; + label = 55; + continue L46; + } + break; + } + case 61: { + label = 0; + $185 = ($$331130>>>0)<(3); + if ($185) { + $186 = (11913 + ($$331130)|0); + $187 = HEAP8[$186>>0]|0; + $188 = $187 << 24 >> 24; + $189 = ($$34>>>0)<($188>>>0); + if ($189) { + $$301446 = $$291445;$$301637 = $$291636;$$341025 = $$331024;$$341131 = $$331130;$$341541 = $$331540;$$35 = $$34;$$351238 = $$341237;$$351344 = $$341343; + label = 63; + continue L125; + } else { + $$331449 = $$291445;$$331640 = $$291636;$$371028 = $$331024;$$371134 = $$331130;$$371544 = $$331540;$$38 = $$34;$$381241 = $$341237;$$381347 = $$341343; + label = 68; + continue L125; + } + } else { + $216 = ((($0)) + 7040|0); + _memset(($216|0),0,288)|0; + $$341450 = $$291445;$$341641 = $$291636;$$381029 = $$331024;$$381135 = 0;$$381545 = $$331540;$$39 = $$34;$$391242 = $$341237;$$391348 = $$341343; + label = 70; + break; + } + break; + } + case 63: { + label = 0; + $190 = ($$341541>>>0)<($10>>>0); + if ($190) { + $$321448$ph = $$301446;$$321639$ph = $$301637;$$361027$ph = $$341025;$$361133$ph = $$341131;$$37$ph = $$35;$$371240$ph = $$351238;$$371346$ph = $$351344;$$sink1719 = $$341541; + label = 66; + continue L46; + } else { + $$311447 = $$301446;$$311638 = $$301637;$$351026 = $$341025;$$351132 = $$341131;$$351542 = $$341541;$$36 = $$35;$$361239 = $$351238;$$361345 = $$351344; + label = 64; + continue L46; + } + break; + } + case 68: { + label = 0; + $203 = (11913 + ($$371134)|0); + $204 = HEAP8[$203>>0]|0; + $205 = $204 << 24 >> 24; + $206 = 1 << $205; + $207 = (($206) + -1)|0; + $208 = $207 & $$381347; + $209 = (((($0)) + 44|0) + ($$371134<<2)|0); + $210 = $$381347 >>> $205; + $211 = (($$38) - ($205))|0; + $212 = (3172 + ($$371134<<2)|0); + $213 = HEAP32[$212>>2]|0; + $214 = (($208) + ($213))|0; + HEAP32[$209>>2] = $214; + $215 = (($$371134) + 1)|0; + $$291445 = $$331449;$$291636 = $$331640;$$331024 = $$371028;$$331130 = $215;$$331540 = $$371544;$$34 = $211;$$341237 = $$381241;$$341343 = $210; + label = 61; + continue L125; + break; + } + case 72: { + label = 0; + $221 = ($$391546>>>0)<($10>>>0); + if ($221) { + $$371453$ph = $$351451;$$371644$ph = $$351642;$$411032$ph = $$391030;$$411138$ph = $$391136;$$42$ph = $$40;$$421245$ph = $$401243;$$421351$ph = $$401349;$$sink1722 = $$391546; + label = 75; + continue L46; + } else { + $$361452 = $$351451;$$361643 = $$351642;$$401031 = $$391030;$$401137 = $$391136;$$401547 = $$391546;$$41 = $$40;$$411244 = $$401243;$$411350 = $$401349; + label = 73; + continue L46; + } + break; + } + case 77: { + label = 0; + $231 = $$431352 & 7; + $232 = $$431352 >>> 3; + $233 = (($$43) + -3)|0; + $234 = $231&255; + $235 = (11917 + ($$421139)|0); + $236 = HEAP8[$235>>0]|0; + $237 = $236&255; + $238 = (((($0)) + 7040|0) + ($237)|0); + HEAP8[$238>>0] = $234; + $239 = (($$421139) + 1)|0; + $$341450 = $$381454;$$341641 = $$381645;$$381029 = $$421033;$$381135 = $239;$$381545 = $$421549;$$39 = $233;$$391242 = $$431246;$$391348 = $232; + label = 70; + break; + } + case 80: { + label = 0; + $247 = ((($0)) + 24|0); + $248 = HEAP32[$247>>2]|0; + $249 = ($248|0)>(-1); + if ($249) { + dest=$8; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $250 = (((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0); + _memset(($250|0),0,3200)|0; + $251 = HEAP32[$247>>2]|0; + $252 = (((($0)) + 44|0) + ($251<<2)|0); + $253 = HEAP32[$252>>2]|0; + $254 = ($253|0)==(0); + if (!($254)) { + $255 = HEAP32[$247>>2]|0; + $256 = (((($0)) + 44|0) + ($255<<2)|0); + $257 = HEAP32[$256>>2]|0; + $$010951864 = 0; + while(1) { + $258 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010951864)|0); + $259 = HEAP8[$258>>0]|0; + $260 = $259&255; + $261 = (($8) + ($260<<2)|0); + $262 = HEAP32[$261>>2]|0; + $263 = (($262) + 1)|0; + HEAP32[$261>>2] = $263; + $264 = (($$010951864) + 1)|0; + $265 = ($264>>>0)<($257>>>0); + if ($265) { + $$010951864 = $264; + } else { + break; + } + } + } + $266 = ((($7)) + 4|0); + HEAP32[$266>>2] = 0; + HEAP32[$7>>2] = 0; + $267 = ((($8)) + 4|0); + $268 = HEAP32[$267>>2]|0; + $269 = $268 << 1; + $270 = ((($7)) + 8|0); + HEAP32[$270>>2] = $269; + $271 = ((($8)) + 8|0); + $272 = HEAP32[$271>>2]|0; + $273 = (($272) + ($268))|0; + $274 = (($272) + ($269))|0; + $275 = $274 << 1; + $276 = ((($7)) + 12|0); + HEAP32[$276>>2] = $275; + $277 = ((($8)) + 12|0); + $278 = HEAP32[$277>>2]|0; + $279 = (($278) + ($273))|0; + $280 = (($278) + ($275))|0; + $281 = $280 << 1; + $282 = ((($7)) + 16|0); + HEAP32[$282>>2] = $281; + $283 = ((($8)) + 16|0); + $284 = HEAP32[$283>>2]|0; + $285 = (($284) + ($279))|0; + $286 = (($284) + ($281))|0; + $287 = $286 << 1; + $288 = ((($7)) + 20|0); + HEAP32[$288>>2] = $287; + $289 = ((($8)) + 20|0); + $290 = HEAP32[$289>>2]|0; + $291 = (($290) + ($285))|0; + $292 = (($290) + ($287))|0; + $293 = $292 << 1; + $294 = ((($7)) + 24|0); + HEAP32[$294>>2] = $293; + $295 = ((($8)) + 24|0); + $296 = HEAP32[$295>>2]|0; + $297 = (($296) + ($291))|0; + $298 = (($296) + ($293))|0; + $299 = $298 << 1; + $300 = ((($7)) + 28|0); + HEAP32[$300>>2] = $299; + $301 = ((($8)) + 28|0); + $302 = HEAP32[$301>>2]|0; + $303 = (($302) + ($297))|0; + $304 = (($302) + ($299))|0; + $305 = $304 << 1; + $306 = ((($7)) + 32|0); + HEAP32[$306>>2] = $305; + $307 = ((($8)) + 32|0); + $308 = HEAP32[$307>>2]|0; + $309 = (($308) + ($303))|0; + $310 = (($308) + ($305))|0; + $311 = $310 << 1; + $312 = ((($7)) + 36|0); + HEAP32[$312>>2] = $311; + $313 = ((($8)) + 36|0); + $314 = HEAP32[$313>>2]|0; + $315 = (($314) + ($309))|0; + $316 = (($314) + ($311))|0; + $317 = $316 << 1; + $318 = ((($7)) + 40|0); + HEAP32[$318>>2] = $317; + $319 = ((($8)) + 40|0); + $320 = HEAP32[$319>>2]|0; + $321 = (($320) + ($315))|0; + $322 = (($320) + ($317))|0; + $323 = $322 << 1; + $324 = ((($7)) + 44|0); + HEAP32[$324>>2] = $323; + $325 = ((($8)) + 44|0); + $326 = HEAP32[$325>>2]|0; + $327 = (($326) + ($321))|0; + $328 = (($326) + ($323))|0; + $329 = $328 << 1; + $330 = ((($7)) + 48|0); + HEAP32[$330>>2] = $329; + $331 = ((($8)) + 48|0); + $332 = HEAP32[$331>>2]|0; + $333 = (($332) + ($327))|0; + $334 = (($332) + ($329))|0; + $335 = $334 << 1; + $336 = ((($7)) + 52|0); + HEAP32[$336>>2] = $335; + $337 = ((($8)) + 52|0); + $338 = HEAP32[$337>>2]|0; + $339 = (($338) + ($333))|0; + $340 = (($338) + ($335))|0; + $341 = $340 << 1; + $342 = ((($7)) + 56|0); + HEAP32[$342>>2] = $341; + $343 = ((($8)) + 56|0); + $344 = HEAP32[$343>>2]|0; + $345 = (($344) + ($339))|0; + $346 = (($344) + ($341))|0; + $347 = $346 << 1; + $348 = ((($7)) + 60|0); + HEAP32[$348>>2] = $347; + $349 = ((($8)) + 60|0); + $350 = HEAP32[$349>>2]|0; + $351 = (($350) + ($345))|0; + $352 = (($350) + ($347))|0; + $353 = $352 << 1; + $354 = ((($7)) + 64|0); + HEAP32[$354>>2] = $353; + $355 = ($353|0)!=(65536); + $356 = ($351>>>0)>(1); + $or$cond = $355 & $356; + if ($or$cond) { + $$401456 = $$391455;$$401647 = $$391646;$$441035 = $$431034;$$441141 = $$431140;$$441551 = $$431550;$$45 = $$44;$$451248 = $$441247;$$451354 = $$441353; + label = 86; + continue L46; + } + $357 = HEAP32[$247>>2]|0; + $358 = (((($0)) + 44|0) + ($357<<2)|0); + $359 = HEAP32[$358>>2]|0; + $360 = ($359|0)==(0); + if ($360) { + $$lcssa1779 = $357; + } else { + $$010911856 = 0;$$011971855 = -1; + while(1) { + $361 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010911856)|0); + $362 = HEAP8[$361>>0]|0; + $363 = $362&255; + $364 = ($362<<24>>24)==(0); + L142: do { + if ($364) { + $$41201 = $$011971855; + } else { + $365 = (($7) + ($363<<2)|0); + $366 = HEAP32[$365>>2]|0; + $367 = (($366) + 1)|0; + HEAP32[$365>>2] = $367; + $$010861840 = $366;$$010871839 = $363;$$010881838 = 0; + while(1) { + $368 = $$010881838 << 1; + $369 = $$010861840 & 1; + $370 = $369 | $368; + $371 = (($$010871839) + -1)|0; + $372 = $$010861840 >>> 1; + $373 = ($371|0)==(0); + if ($373) { + break; + } else { + $$010861840 = $372;$$010871839 = $371;$$010881838 = $370; + } + } + $374 = ($362&255)<(11); + if ($374) { + $375 = $363 << 9; + $376 = $375 | $$010911856; + $377 = $376&65535; + $378 = ($370>>>0)<(1024); + if (!($378)) { + $$41201 = $$011971855; + break; + } + $379 = 1 << $363; + $$110891852 = $370; + while(1) { + $380 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($$110891852<<1)|0); + HEAP16[$380>>1] = $377; + $381 = (($$110891852) + ($379))|0; + $382 = ($381>>>0)<(1024); + if ($382) { + $$110891852 = $381; + } else { + $$41201 = $$011971855; + break L142; + } + } + } + $383 = $370 & 1023; + $384 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($383<<1)|0); + $385 = HEAP16[$384>>1]|0; + $386 = $385 << 16 >> 16; + $387 = ($385<<16>>16)==(0); + if ($387) { + $388 = (($$011971855) + -2)|0; + $389 = $$011971855&65535; + HEAP16[$384>>1] = $389; + $$01194 = $$011971855;$$11198 = $388; + } else { + $$01194 = $386;$$11198 = $$011971855; + } + $390 = $$010881838 >>> 9; + $391 = ($362&255)>(11); + $392 = $390 & 1; + $393 = (($392) - ($$01194))|0; + $394 = (($393) + -1)|0; + if ($391) { + $395 = $390 & 4194303; + $$010941846 = $363;$$211991845 = $$11198;$397 = $394;$406 = $395; + while(1) { + $396 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($397<<1)|0); + $398 = HEAP16[$396>>1]|0; + $399 = ($398<<16>>16)==(0); + if ($399) { + $400 = $$211991845&65535; + HEAP16[$396>>1] = $400; + $401 = (($$211991845) + -2)|0; + $$21196 = $$211991845;$$31200 = $401; + } else { + $402 = $398 << 16 >> 16; + $$21196 = $402;$$31200 = $$211991845; + } + $403 = (($$010941846) + -1)|0; + $404 = ($403>>>0)>(11); + $405 = $406 >>> 1; + $407 = $405 & 1; + $408 = (($407) - ($$21196))|0; + $409 = (($408) + -1)|0; + if ($404) { + $$010941846 = $403;$$211991845 = $$31200;$397 = $409;$406 = $405; + } else { + $$21199$lcssa = $$31200;$$lcssa1778 = $409; + break; + } + } + } else { + $$21199$lcssa = $$11198;$$lcssa1778 = $394; + } + $410 = $$010911856&65535; + $411 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($$lcssa1778<<1)|0); + HEAP16[$411>>1] = $410; + $$41201 = $$21199$lcssa; + } + } while(0); + $412 = (($$010911856) + 1)|0; + $413 = HEAP32[$247>>2]|0; + $414 = (((($0)) + 44|0) + ($413<<2)|0); + $415 = HEAP32[$414>>2]|0; + $416 = ($412>>>0)<($415>>>0); + if ($416) { + $$010911856 = $412;$$011971855 = $$41201; + } else { + $$lcssa1779 = $413; + break; + } + } + } + $417 = ($$lcssa1779|0)==(2); + if ($417) { + $$411457 = $$391455;$$411648 = $$391646;$$451036 = $$431034;$$451142 = 0;$$451552 = $$431550;$$46 = $$44;$$461249 = $$441247;$$461355 = $$441353; + label = 105; + } else { + $$521468 = $$391455;$$521659 = $$391646;$$551046 = $$431034;$$561153 = $$431140;$$561563 = $$431550;$$57 = $$44;$$571260 = $$441247;$$571366 = $$441353; + label = 138; + } + } else { + $$531469 = $$391455;$$531660 = $$391646;$$561047 = $$431034;$$571154 = $$431140;$$571564 = $$431550;$$58 = $$44;$$581261 = $$441247;$$581367 = $$441353; + label = 139; + } + break; + } + case 108: { + label = 0; + $429 = $$471356 & 1023; + $430 = (((($0)) + 7328|0) + ($429<<1)|0); + $431 = HEAP16[$430>>1]|0; + $432 = $431 << 16 >> 16; + $433 = ($431<<16>>16)>(-1); + if ($433) { + $434 = $432 >> 9; + $435 = (($434) + -1)|0; + $436 = ($435>>>0)<($$47>>>0); + if ($436) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } else { + label = 113; + break L125; + } + } + $437 = ($$47>>>0)>(10); + if ($437) { + $$0981 = 10;$$0984 = $432; + } else { + label = 113; + break L125; + } + while(1) { + $438 = $$0984 ^ -1; + $439 = $$471356 >>> $$0981; + $440 = $439 & 1; + $441 = (($440) + ($438))|0; + $442 = (((($0)) + 9376|0) + ($441<<1)|0); + $443 = HEAP16[$442>>1]|0; + $444 = ($443<<16>>16)<(0); + if (!($444)) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } + $445 = (($$0981) + 1)|0; + $446 = $443 << 16 >> 16; + $447 = (($$0981) + 2)|0; + $448 = ($$47>>>0)<($447>>>0); + if ($448) { + label = 113; + break L125; + } else { + $$0981 = $445;$$0984 = $446; + } + } + break; + } + case 119: { + label = 0; + $471 = $$501359 & 1023; + $472 = (((($0)) + 7328|0) + ($471<<1)|0); + $473 = HEAP16[$472>>1]|0; + $474 = $473 << 16 >> 16; + $475 = ($473<<16>>16)>(-1); + if ($475) { + $476 = $474 >> 9; + $477 = $474 & 511; + $$2983 = $476;$$2986 = $477; + } else { + $$1982 = 10;$$1985 = $474; + while(1) { + $478 = $$1985 ^ -1; + $479 = (($$1982) + 1)|0; + $480 = $$501359 >>> $$1982; + $481 = $480 & 1; + $482 = (($481) + ($478))|0; + $483 = (((($0)) + 9376|0) + ($482<<1)|0); + $484 = HEAP16[$483>>1]|0; + $485 = $484 << 16 >> 16; + $486 = ($484<<16>>16)<(0); + if ($486) { + $$1982 = $479;$$1985 = $485; + } else { + $$2983 = $479;$$2986 = $485; + break; + } + } + } + $487 = $$501359 >>> $$2983; + $488 = (($$50) - ($$2983))|0; + $489 = ($$2986>>>0)<(16); + if ($489) { + $490 = $$2986&255; + $491 = (($$491146) + 1)|0; + $492 = (((($0)) + 10532|0) + ($$491146)|0); + HEAP8[$492>>0] = $490; + $$411457 = $$451461;$$411648 = $$451652;$$451036 = $$2986;$$451142 = $491;$$451552 = $$491556;$$46 = $488;$$461249 = $$501253;$$461355 = $487; + label = 105; + break; + } + $493 = ($$2986|0)!=(16); + $494 = ($$491146|0)!=(0); + $or$cond24 = $494 | $493; + if (!($or$cond24)) { + $$461462 = $$451461;$$461653 = $$451652;$$491040 = $$2986;$$501147 = $$491146;$$501557 = $$491556;$$51 = $488;$$511254 = $$501253;$$511360 = $487; + label = 125; + continue L46; + } + $495 = (($$2986) + -16)|0; + $496 = (11936 + ($495)|0); + $497 = HEAP8[$496>>0]|0; + $498 = $497 << 24 >> 24; + $499 = ($488>>>0)<($498>>>0); + if ($499) { + $$471463 = $$451461;$$471654 = $$451652;$$501041 = $$2986;$$511148 = $$491146;$$511558 = $$491556;$$52 = $488;$$521255 = $498;$$521361 = $487; + label = 127; + continue L125; + } else { + $$501466 = $$451461;$$501657 = $$451652;$$531044 = $$2986;$$541151 = $$491146;$$541561 = $$491556;$$55 = $488;$$551258 = $498;$$551364 = $487; + label = 132; + continue L125; + } + break; + } + case 127: { + label = 0; + $500 = ($$511558>>>0)<($10>>>0); + if ($500) { + $$491465$ph = $$471463;$$491656$ph = $$471654;$$521043$ph = $$501041;$$531150$ph = $$511148;$$54$ph = $$52;$$541257$ph = $$521255;$$541363$ph = $$521361;$$sink1732 = $$511558; + label = 130; + continue L46; + } else { + $$481464 = $$471463;$$481655 = $$471654;$$511042 = $$501041;$$521149 = $$511148;$$521559 = $$511558;$$53 = $$52;$$531256 = $$521255;$$531362 = $$521361; + label = 128; + continue L46; + } + break; + } + case 132: { + label = 0; + $510 = 1 << $$551258; + $511 = (($510) + -1)|0; + $512 = $511 & $$551364; + $513 = $$551364 >>> $$551258; + $514 = (($$55) - ($$551258))|0; + $515 = (($$531044) + -16)|0; + $516 = (11940 + ($515)|0); + $517 = HEAP8[$516>>0]|0; + $518 = $517 << 24 >> 24; + $519 = (($518) + ($512))|0; + $520 = (((($0)) + 10532|0) + ($$541151)|0); + $521 = ($$531044|0)==(16); + if ($521) { + $522 = (($$541151) + -1)|0; + $523 = (((($0)) + 10532|0) + ($522)|0); + $524 = HEAP8[$523>>0]|0; + $525 = $524&255; + $527 = $525; + } else { + $527 = 0; + } + $526 = $527&255; + _memset(($520|0),($526|0),($519|0))|0; + $528 = (($519) + ($$541151))|0; + $$411457 = $$501466;$$411648 = $$501657;$$451036 = $$531044;$$451142 = $528;$$451552 = $$541561;$$46 = $514;$$461249 = $$551258;$$461355 = $513; + label = 105; + break; + } + case 140: { + label = 0; + $539 = $10; + $540 = $$581565$ph; + $541 = (($539) - ($540))|0; + $542 = ($541|0)<(4); + $543 = ($$59$ph>>>0)<(15); + L241: do { + if ($542) { + $$541661$lcssa = $$541661$ph;$$581155$lcssa = $$581155$ph;$$581565$lcssa = $$581565$ph;$$59$lcssa = $$59$ph;$$591368$lcssa = $$591368$ph;$$lcssa1799 = $543;$$lcssa1802 = $541; + } else { + $544 = $12; + $$5416611868 = $$541661$ph;$$5811551871 = $$581155$ph;$$5815651869 = $$581565$ph;$$5913681870 = $$591368$ph;$$591872 = $$59$ph;$965 = $543;$966 = $541; + while(1) { + $545 = $$5416611868; + $546 = (($544) - ($545))|0; + $547 = ($546|0)<(2); + if ($547) { + $$541661$lcssa = $$5416611868;$$581155$lcssa = $$5811551871;$$581565$lcssa = $$5815651869;$$59$lcssa = $$591872;$$591368$lcssa = $$5913681870;$$lcssa1799 = $965;$$lcssa1802 = $966; + break L241; + } + if ($965) { + $613 = HEAP8[$$5815651869>>0]|0; + $614 = $613&255; + $615 = ((($$5815651869)) + 1|0); + $616 = HEAP8[$615>>0]|0; + $617 = $616&255; + $618 = $617 << 8; + $619 = $618 | $614; + $620 = $619 << $$591872; + $621 = $620 | $$5913681870; + $622 = ((($$5815651869)) + 2|0); + $623 = (($$591872) + 16)|0; + $$641571 = $622;$$65 = $623;$$651374 = $621; + } else { + $$641571 = $$5815651869;$$65 = $$591872;$$651374 = $$5913681870; + } + $624 = $$651374 & 1023; + $625 = (((($0)) + 352|0) + ($624<<1)|0); + $626 = HEAP16[$625>>1]|0; + $627 = $626 << 16 >> 16; + $628 = ($626<<16>>16)>(-1); + if ($628) { + $629 = $627 >> 9; + $$1964 = $629;$$1968 = $627; + } else { + $$0963 = 10;$$0967 = $627; + while(1) { + $630 = $$0967 ^ -1; + $631 = (($$0963) + 1)|0; + $632 = $$651374 >>> $$0963; + $633 = $632 & 1; + $634 = (($633) + ($630))|0; + $635 = (((($0)) + 2400|0) + ($634<<1)|0); + $636 = HEAP16[$635>>1]|0; + $637 = $636 << 16 >> 16; + $638 = ($636<<16>>16)<(0); + if ($638) { + $$0963 = $631;$$0967 = $637; + } else { + $$1964 = $631;$$1968 = $637; + break; + } + } + } + $639 = $$651374 >>> $$1964; + $640 = (($$65) - ($$1964))|0; + $641 = $$1968 & 256; + $642 = ($641|0)==(0); + if (!($642)) { + $$601476 = $$541470$ph;$$611668 = $$5416611868;$$631054 = $$571048$ph;$$641161 = $$1968;$$651268 = $$591262$ph;$$671574 = $$641571;$$68 = $640;$$681377 = $639; + label = 176; + break L126; + } + $643 = ($640>>>0)<(15); + if ($643) { + $644 = HEAP8[$$641571>>0]|0; + $645 = $644&255; + $646 = ((($$641571)) + 1|0); + $647 = HEAP8[$646>>0]|0; + $648 = $647&255; + $649 = $648 << 8; + $650 = $649 | $645; + $651 = $650 << $640; + $652 = $651 | $639; + $653 = ((($$641571)) + 2|0); + $654 = (($640) + 16)|0; + $$651572 = $653;$$66 = $654;$$661375 = $652; + } else { + $$651572 = $$641571;$$66 = $640;$$661375 = $639; + } + $655 = $$661375 & 1023; + $656 = (((($0)) + 352|0) + ($655<<1)|0); + $657 = HEAP16[$656>>1]|0; + $658 = $657 << 16 >> 16; + $659 = ($657<<16>>16)>(-1); + if ($659) { + $660 = $658 >> 9; + $$3966 = $660;$$3970 = $658; + } else { + $$2965 = 10;$$2969 = $658; + while(1) { + $661 = $$2969 ^ -1; + $662 = (($$2965) + 1)|0; + $663 = $$661375 >>> $$2965; + $664 = $663 & 1; + $665 = (($664) + ($661))|0; + $666 = (((($0)) + 2400|0) + ($665<<1)|0); + $667 = HEAP16[$666>>1]|0; + $668 = $667 << 16 >> 16; + $669 = ($667<<16>>16)<(0); + if ($669) { + $$2965 = $662;$$2969 = $668; + } else { + $$3966 = $662;$$3970 = $668; + break; + } + } + } + $670 = $$661375 >>> $$3966; + $671 = (($$66) - ($$3966))|0; + $672 = $$1968&255; + HEAP8[$$5416611868>>0] = $672; + $673 = $$3970 & 256; + $674 = ($673|0)==(0); + if (!($674)) { + break; + } + $676 = $$3970&255; + $677 = ((($$5416611868)) + 1|0); + HEAP8[$677>>0] = $676; + $678 = ((($$5416611868)) + 2|0); + $679 = $$651572; + $680 = (($539) - ($679))|0; + $681 = ($680|0)<(4); + $682 = ($671>>>0)<(15); + if ($681) { + $$541661$lcssa = $678;$$581155$lcssa = $$1968;$$581565$lcssa = $$651572;$$59$lcssa = $671;$$591368$lcssa = $670;$$lcssa1799 = $682;$$lcssa1802 = $680; + break L241; + } else { + $$5416611868 = $678;$$5811551871 = $$1968;$$5815651869 = $$651572;$$5913681870 = $670;$$591872 = $671;$965 = $682;$966 = $680; + } + } + $675 = ((($$5416611868)) + 1|0); + $$601476 = $$541470$ph;$$611668 = $675;$$631054 = $$571048$ph;$$641161 = $$3970;$$651268 = $$591262$ph;$$671574 = $$651572;$$68 = $671;$$681377 = $670; + label = 176; + break L126; + } + } while(0); + if (!($$lcssa1799)) { + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $$581565$lcssa;$$63 = $$59$lcssa;$$631266 = $$591262$ph;$$631372 = $$591368$lcssa; + label = 156; + continue L125; + } + $548 = ($$lcssa1802|0)<(2); + if ($548) { + $$551471 = $$541470$ph;$$551662 = $$541661$lcssa;$$581049 = $$571048$ph;$$591156 = $$581155$lcssa;$$591566 = $$581565$lcssa;$$60 = $$59$lcssa;$$601263 = $$591262$ph;$$601369 = $$591368$lcssa; + label = 145; + continue L125; + } + $579 = HEAP8[$$581565$lcssa>>0]|0; + $580 = $579&255; + $581 = $580 << $$59$lcssa; + $582 = ((($$581565$lcssa)) + 1|0); + $583 = HEAP8[$582>>0]|0; + $584 = $583&255; + $585 = (($$59$lcssa) + 8)|0; + $586 = $584 << $585; + $587 = $581 | $$591368$lcssa; + $588 = $587 | $586; + $589 = ((($$581565$lcssa)) + 2|0); + $590 = (($$59$lcssa) + 16)|0; + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $589;$$63 = $590;$$631266 = $$591262$ph;$$631372 = $588; + label = 156; + continue L125; + break; + } + case 145: { + label = 0; + $549 = $$601369 & 1023; + $550 = (((($0)) + 352|0) + ($549<<1)|0); + $551 = HEAP16[$550>>1]|0; + $552 = $551 << 16 >> 16; + $553 = ($551<<16>>16)>(-1); + if ($553) { + $554 = $552 >> 9; + $555 = (($554) + -1)|0; + $556 = ($555>>>0)<($$60>>>0); + if ($556) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } else { + label = 150; + break L125; + } + } + $557 = ($$60>>>0)>(10); + if ($557) { + $$0972 = 10;$$0975 = $552; + } else { + label = 150; + break L125; + } + while(1) { + $558 = $$0975 ^ -1; + $559 = $$601369 >>> $$0972; + $560 = $559 & 1; + $561 = (($560) + ($558))|0; + $562 = (((($0)) + 2400|0) + ($561<<1)|0); + $563 = HEAP16[$562>>1]|0; + $564 = ($563<<16>>16)<(0); + if (!($564)) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } + $565 = (($$0972) + 1)|0; + $566 = $563 << 16 >> 16; + $567 = (($$0972) + 2)|0; + $568 = ($$60>>>0)<($567>>>0); + if ($568) { + label = 150; + break L125; + } else { + $$0972 = $565;$$0975 = $566; + } + } + break; + } + case 156: { + label = 0; + $591 = $$631372 & 1023; + $592 = (((($0)) + 352|0) + ($591<<1)|0); + $593 = HEAP16[$592>>1]|0; + $594 = $593 << 16 >> 16; + $595 = ($593<<16>>16)>(-1); + if ($595) { + $596 = $594 >> 9; + $597 = $594 & 511; + $$2974 = $596;$$2977 = $597; + } else { + $$1973 = 10;$$1976 = $594; + while(1) { + $598 = $$1976 ^ -1; + $599 = (($$1973) + 1)|0; + $600 = $$631372 >>> $$1973; + $601 = $600 & 1; + $602 = (($601) + ($598))|0; + $603 = (((($0)) + 2400|0) + ($602<<1)|0); + $604 = HEAP16[$603>>1]|0; + $605 = $604 << 16 >> 16; + $606 = ($604<<16>>16)<(0); + if ($606) { + $$1973 = $599;$$1976 = $605; + } else { + $$2974 = $599;$$2977 = $605; + break; + } + } + } + $607 = $$631372 >>> $$2974; + $608 = (($$63) - ($$2974))|0; + $609 = ($$2977>>>0)>(255); + if ($609) { + $$601476 = $$581474;$$611668 = $$581665;$$631054 = $$611052;$$641161 = $$2977;$$651268 = $$631266;$$671574 = $$621569;$$68 = $608;$$681377 = $607; + label = 176; + } else { + $$591475 = $$581474;$$591666 = $$581665;$$621053 = $$611052;$$621159 = $$2977;$$631570 = $$621569;$$64 = $608;$$641267 = $$631266;$$641373 = $607; + label = 160; + continue L46; + } + break; + } + case 179: { + label = 0; + $693 = ($$681575>>>0)<($10>>>0); + if ($693) { + $$631479$ph = $$611477;$$641671$ph = $$621669;$$661057$ph = $$641055;$$671164$ph = $$651162;$$681271$ph = $$661269;$$71$ph = $$69;$$711380$ph = $$691378;$$sink1739 = $$681575; + label = 182; + continue L46; + } else { + $$621478 = $$611477;$$631670 = $$621669;$$651056 = $$641055;$$661163 = $$651162;$$671270 = $$661269;$$691576 = $$681575;$$70 = $$69;$$701379 = $$691378; + label = 180; + continue L46; + } + break; + } + case 184: { + label = 0; + $703 = 1 << $$691272; + $704 = (($703) + -1)|0; + $705 = $704 & $$721381; + $706 = $$721381 >>> $$691272; + $707 = (($$72) - ($$691272))|0; + $708 = (($705) + ($$681165))|0; + $$651481 = $$641480;$$661673 = $$651672;$$681059 = $$671058;$$691166 = $708;$$701273 = $$691272;$$721579 = $$711578;$$73 = $707;$$731382 = $706; + label = 185; + break; + } + case 187: { + label = 0; + $714 = $$741383 & 1023; + $715 = (((($0)) + 3840|0) + ($714<<1)|0); + $716 = HEAP16[$715>>1]|0; + $717 = $716 << 16 >> 16; + $718 = ($716<<16>>16)>(-1); + if ($718) { + $719 = $717 >> 9; + $720 = (($719) + -1)|0; + $721 = ($720>>>0)<($$74>>>0); + if ($721) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } else { + label = 192; + break L125; + } + } + $722 = ($$74>>>0)>(10); + if ($722) { + $$0953 = 10;$$0956 = $717; + } else { + label = 192; + break L125; + } + while(1) { + $723 = $$0956 ^ -1; + $724 = $$741383 >>> $$0953; + $725 = $724 & 1; + $726 = (($725) + ($723))|0; + $727 = (((($0)) + 5888|0) + ($726<<1)|0); + $728 = HEAP16[$727>>1]|0; + $729 = ($728<<16>>16)<(0); + if (!($729)) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } + $730 = (($$0953) + 1)|0; + $731 = $728 << 16 >> 16; + $732 = (($$0953) + 2)|0; + $733 = ($$74>>>0)<($732>>>0); + if ($733) { + label = 192; + break L125; + } else { + $$0953 = $730;$$0956 = $731; + } + } + break; + } + case 198: { + label = 0; + $756 = $$771386 & 1023; + $757 = (((($0)) + 3840|0) + ($756<<1)|0); + $758 = HEAP16[$757>>1]|0; + $759 = $758 << 16 >> 16; + $760 = ($758<<16>>16)>(-1); + if ($760) { + $761 = $759 >> 9; + $762 = $759 & 511; + $$2955 = $761;$$2958 = $762; + } else { + $$1954 = 10;$$1957 = $759; + while(1) { + $763 = $$1957 ^ -1; + $764 = (($$1954) + 1)|0; + $765 = $$771386 >>> $$1954; + $766 = $765 & 1; + $767 = (($766) + ($763))|0; + $768 = (((($0)) + 5888|0) + ($767<<1)|0); + $769 = HEAP16[$768>>1]|0; + $770 = $769 << 16 >> 16; + $771 = ($769<<16>>16)<(0); + if ($771) { + $$1954 = $764;$$1957 = $770; + } else { + $$2955 = $764;$$2958 = $770; + break; + } + } + } + $772 = $$771386 >>> $$2955; + $773 = (($$77) - ($$2955))|0; + $774 = (3432 + ($$2958<<2)|0); + $775 = HEAP32[$774>>2]|0; + $776 = (3560 + ($$2958<<2)|0); + $777 = HEAP32[$776>>2]|0; + $778 = (($$2958) + -4)|0; + $779 = ($778>>>0)<(26); + if ($779) { + $780 = ($773>>>0)<($775>>>0); + if ($780) { + $$701486 = $$691485;$$711678 = $$701677;$$721063 = $777;$$741171 = $$731170;$$741277 = $775;$$771584 = $$761583;$$78 = $773;$$781387 = $772; + label = 203; + continue L125; + } else { + $$741681 = $$701677;$$751066 = $777;$$771174 = $$731170;$$771280 = $775;$$801587 = $$761583;$$81 = $773;$$811390 = $772; + label = 208; + continue L125; + } + } else { + $$751682 = $$701677;$$761067 = $777;$$781175 = $$731170;$$781281 = $775;$$811588 = $$761583;$$82 = $773;$$821391 = $772; + label = 209; + } + break; + } + case 203: { + label = 0; + $781 = ($$771584>>>0)<($10>>>0); + if ($781) { + $$721488$ph = $$701486;$$731680$ph = $$711678;$$741065$ph = $$721063;$$761173$ph = $$741171;$$761279$ph = $$741277;$$80$ph = $$78;$$801389$ph = $$781387;$$sink1746 = $$771584; + label = 206; + continue L46; + } else { + $$711487 = $$701486;$$721679 = $$711678;$$731064 = $$721063;$$751172 = $$741171;$$751278 = $$741277;$$781585 = $$771584;$$79 = $$78;$$791388 = $$781387; + label = 204; + continue L46; + } + break; + } + case 208: { + label = 0; + $791 = 1 << $$771280; + $792 = (($791) + -1)|0; + $793 = $792 & $$811390; + $794 = $$811390 >>> $$771280; + $795 = (($$81) - ($$771280))|0; + $796 = (($793) + ($$751066))|0; + $$751682 = $$741681;$$761067 = $796;$$781175 = $$771174;$$781281 = $$771280;$$811588 = $$801587;$$82 = $795;$$821391 = $794; + label = 209; + break; + } + case 212: { + label = 0; + $807 = (($$801177) + -1)|0; + $808 = ($$801177|0)==(0); + if ($808) { + $$531469 = $$741490;$$531660 = $$771684;$$561047 = $$781069;$$571154 = $807;$$571564 = $$831590;$$58 = $$84;$$581261 = $$801283;$$581367 = $$841393; + label = 139; + } else { + $$751491 = $$741490;$$781685 = $$771684;$$791070 = $$781069;$$811178 = $807;$$811284 = $$801283;$$841591 = $$831590;$$85 = $$84;$$851394 = $$841393; + label = 213; + continue L46; + } + break; + } + } + do { + if ((label|0) == 70) { + label = 0; + $217 = ((($0)) + 52|0); + $218 = HEAP32[$217>>2]|0; + $219 = ($$381135>>>0)<($218>>>0); + if ($219) { + $220 = ($$39>>>0)<(3); + if ($220) { + $$351451 = $$341450;$$351642 = $$341641;$$391030 = $$381029;$$391136 = $$381135;$$391546 = $$381545;$$40 = $$39;$$401243 = $$391242;$$401349 = $$391348; + label = 72; + continue L125; + } else { + $$381454 = $$341450;$$381645 = $$341641;$$421033 = $$381029;$$421139 = $$381135;$$421549 = $$381545;$$43 = $$39;$$431246 = $$391242;$$431352 = $$391348; + label = 77; + continue L125; + } + } else { + HEAP32[$217>>2] = 19; + $$391455 = $$341450;$$391646 = $$341641;$$431034 = $$381029;$$431140 = $$381135;$$431550 = $$381545;$$44 = $$39;$$441247 = $$391242;$$441353 = $$391348; + label = 80; + continue L125; + } + } + else if ((label|0) == 105) { + label = 0; + $418 = ((($0)) + 44|0); + $419 = HEAP32[$418>>2]|0; + $420 = ((($0)) + 48|0); + $421 = HEAP32[$420>>2]|0; + $422 = (($421) + ($419))|0; + $423 = ($$451142>>>0)<($422>>>0); + if (!($423)) { + $529 = ($422|0)==($$451142|0); + if (!($529)) { + $$511467 = $$411457;$$511658 = $$411648;$$541045 = $$451036;$$551152 = $$451142;$$551562 = $$451552;$$56 = $$46;$$561259 = $$461249;$$561365 = $$461355; + label = 136; + continue L46; + } + $530 = ((($0)) + 64|0); + $531 = ((($0)) + 10532|0); + _memcpy(($530|0),($531|0),($419|0))|0; + $532 = ((($0)) + 3552|0); + $533 = HEAP32[$418>>2]|0; + $534 = (((($0)) + 10532|0) + ($533)|0); + $535 = HEAP32[$420>>2]|0; + _memcpy(($532|0),($534|0),($535|0))|0; + $$521468 = $$411457;$$521659 = $$411648;$$551046 = $$451036;$$561153 = $$451142;$$561563 = $$451552;$$57 = $$46;$$571260 = $$461249;$$571366 = $$461355; + label = 138; + break; + } + $424 = ($$46>>>0)<(15); + if (!($424)) { + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $$451552;$$50 = $$46;$$501253 = $$461249;$$501359 = $$461355; + label = 119; + continue L125; + } + $425 = $10; + $426 = $$451552; + $427 = (($425) - ($426))|0; + $428 = ($427|0)<(2); + if ($428) { + $$421458 = $$411457;$$421649 = $$411648;$$461037 = $$451036;$$461143 = $$451142;$$461553 = $$451552;$$47 = $$46;$$471250 = $$461249;$$471356 = $$461355; + label = 108; + continue L125; + } + $459 = HEAP8[$$451552>>0]|0; + $460 = $459&255; + $461 = $460 << $$46; + $462 = ((($$451552)) + 1|0); + $463 = HEAP8[$462>>0]|0; + $464 = $463&255; + $465 = (($$46) + 8)|0; + $466 = $464 << $465; + $467 = $461 | $$461355; + $468 = $467 | $466; + $469 = ((($$451552)) + 2|0); + $470 = (($$46) + 16)|0; + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $469;$$50 = $470;$$501253 = $$461249;$$501359 = $468; + label = 119; + continue L125; + } + else if ((label|0) == 176) { + label = 0; + $683 = $$641161 & 511; + $684 = ($683|0)==(256); + if ($684) { + $$761492 = $$601476;$$801071 = $$631054;$$801687 = $$611668;$$821285 = $$651268;$$831180 = 256;$$851592 = $$671574;$$86 = $$68;$$861395 = $$681377; + label = 220; + break L125; + } + $685 = (($683) + -257)|0; + $686 = (3184 + ($685<<2)|0); + $687 = HEAP32[$686>>2]|0; + $688 = (3308 + ($685<<2)|0); + $689 = HEAP32[$688>>2]|0; + $690 = (($683) + -265)|0; + $691 = ($690>>>0)<(20); + if ($691) { + $692 = ($$68>>>0)<($687>>>0); + if ($692) { + $$611477 = $$601476;$$621669 = $$611668;$$641055 = $$631054;$$651162 = $689;$$661269 = $687;$$681575 = $$671574;$$69 = $$68;$$691378 = $$681377; + label = 179; + continue L125; + } else { + $$641480 = $$601476;$$651672 = $$611668;$$671058 = $$631054;$$681165 = $689;$$691272 = $687;$$711578 = $$671574;$$72 = $$68;$$721381 = $$681377; + label = 184; + continue L125; + } + } else { + $$651481 = $$601476;$$661673 = $$611668;$$681059 = $$631054;$$691166 = $689;$$701273 = $687;$$721579 = $$671574;$$73 = $$68;$$731382 = $$681377; + label = 185; + } + } + else if ((label|0) == 209) { + label = 0; + $797 = $$751682; + $798 = $3; + $799 = (($797) - ($798))|0; + $$not = ($799>>>0)>=($$761067>>>0); + $$not1747 = $14 ^ 1; + $brmerge = $$not | $$not1747; + if (!($brmerge)) { + $$731489 = $799;$$761683 = $$751682;$$771068 = $$761067;$$791176 = $$781175;$$791282 = $$781281;$$821589 = $$811588;$$83 = $$82;$$831392 = $$821391; + label = 210; + continue L46; + } + $800 = (($799) - ($$761067))|0; + $801 = $800 & $$1753; + $802 = (($3) + ($801)|0); + $803 = ($$751682>>>0)>($802>>>0); + $804 = $803 ? $$751682 : $802; + $805 = (($804) + ($$781175)|0); + $806 = ($805>>>0)>($12>>>0); + if ($806) { + $$741490 = $799;$$771684 = $$751682;$$781069 = $$761067;$$801177 = $$781175;$$801283 = $$781281;$$831590 = $$811588;$$84 = $$82;$$841393 = $$821391; + label = 212; + continue L125; + } else { + $$0978 = $802;$$791686 = $$751682;$$821179 = $$781175; + } + while(1) { + $816 = HEAP8[$$0978>>0]|0; + HEAP8[$$791686>>0] = $816; + $817 = ((($$0978)) + 1|0); + $818 = HEAP8[$817>>0]|0; + $819 = ((($$791686)) + 1|0); + HEAP8[$819>>0] = $818; + $820 = ((($$0978)) + 2|0); + $821 = HEAP8[$820>>0]|0; + $822 = ((($$791686)) + 2|0); + HEAP8[$822>>0] = $821; + $823 = ((($$791686)) + 3|0); + $824 = ((($$0978)) + 3|0); + $825 = (($$821179) + -3)|0; + $826 = ($825|0)>(2); + if ($826) { + $$0978 = $824;$$791686 = $823;$$821179 = $825; + } else { + break; + } + } + $827 = ($825|0)>(0); + if ($827) { + $828 = HEAP8[$824>>0]|0; + HEAP8[$823>>0] = $828; + $829 = ($825|0)==(1); + if (!($829)) { + $830 = ((($$0978)) + 4|0); + $831 = HEAP8[$830>>0]|0; + $832 = ((($$791686)) + 4|0); + HEAP8[$832>>0] = $831; + } + $833 = (($823) + ($825)|0); + $$531469 = $799;$$531660 = $833;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } else { + $$531469 = $799;$$531660 = $823;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } + } + } while(0); + if ((label|0) == 138) { + label = 0; + $536 = ((($0)) + 24|0); + $537 = HEAP32[$536>>2]|0; + $538 = (($537) + -1)|0; + HEAP32[$536>>2] = $538; + $$391455 = $$521468;$$391646 = $$521659;$$431034 = $$551046;$$431140 = $$561153;$$431550 = $$561563;$$44 = $$57;$$441247 = $$571260;$$441353 = $$571366; + label = 80; + continue; + } + else if ((label|0) == 139) { + label = 0; + $$541470$ph = $$531469;$$541661$ph = $$531660;$$571048$ph = $$561047;$$581155$ph = $$571154;$$581565$ph = $$571564;$$59$ph = $$58;$$591262$ph = $$581261;$$591368$ph = $$581367; + label = 140; + continue; + } + else if ((label|0) == 185) { + label = 0; + $709 = ($$73>>>0)<(15); + if (!($709)) { + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $$721579;$$77 = $$73;$$771386 = $$731382; + label = 198; + continue; + } + $710 = $10; + $711 = $$721579; + $712 = (($710) - ($711))|0; + $713 = ($712|0)<(2); + if ($713) { + $$661482 = $$651481;$$671674 = $$661673;$$691060 = $$681059;$$701167 = $$691166;$$711274 = $$701273;$$731580 = $$721579;$$74 = $$73;$$741383 = $$731382; + label = 187; + continue; + } + $744 = HEAP8[$$721579>>0]|0; + $745 = $744&255; + $746 = $745 << $$73; + $747 = ((($$721579)) + 1|0); + $748 = HEAP8[$747>>0]|0; + $749 = $748&255; + $750 = (($$73) + 8)|0; + $751 = $749 << $750; + $752 = $746 | $$731382; + $753 = $752 | $751; + $754 = ((($$721579)) + 2|0); + $755 = (($$73) + 16)|0; + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $754;$$77 = $755;$$771386 = $753; + label = 198; + continue; + } + } + if ((label|0) == 113) { + label = 0; + $449 = ($$461553>>>0)<($10>>>0); + if ($449) { + $$441460$ph = $$421458;$$441651$ph = $$421649;$$481039$ph = $$461037;$$481145$ph = $$461143;$$49$ph = $$47;$$491252$ph = $$471250;$$491358$ph = $$471356;$$sink1729 = $$461553; + label = 116; + continue; + } else { + $$431459 = $$421458;$$431650 = $$421649;$$471038 = $$461037;$$471144 = $$461143;$$471554 = $$461553;$$48 = $$47;$$481251 = $$471250;$$481357 = $$471356; + label = 114; + continue; + } + } + else if ((label|0) == 150) { + label = 0; + $569 = ($$591566>>>0)<($10>>>0); + if ($569) { + $$571473$ph = $$551471;$$571664$ph = $$551662;$$601051$ph = $$581049;$$611158$ph = $$591156;$$62$ph = $$60;$$621265$ph = $$601263;$$621371$ph = $$601369;$$sink1736 = $$591566; + label = 153; + continue; + } else { + $$561472 = $$551471;$$561663 = $$551662;$$591050 = $$581049;$$601157 = $$591156;$$601567 = $$591566;$$61 = $$60;$$611264 = $$601263;$$611370 = $$601369; + label = 151; + continue; + } + } + else if ((label|0) == 192) { + label = 0; + $734 = ($$731580>>>0)<($10>>>0); + if ($734) { + $$681484$ph = $$661482;$$691676$ph = $$671674;$$711062$ph = $$691060;$$721169$ph = $$701167;$$731276$ph = $$711274;$$76$ph = $$74;$$761385$ph = $$741383;$$sink1743 = $$731580; + label = 195; + continue; + } else { + $$671483 = $$661482;$$681675 = $$671674;$$701061 = $$691060;$$711168 = $$701167;$$721275 = $$711274;$$741581 = $$731580;$$75 = $$74;$$751384 = $$741383; + label = 193; + continue; + } + } + else if ((label|0) == 220) { + label = 0; + $834 = ((($0)) + 20|0); + $835 = HEAP32[$834>>2]|0; + $836 = $835 & 1; + $837 = ($836|0)==(0); + if ($837) { + $$01416 = $$761492;$$01607 = $$801687;$$41511 = $$851592;$$5 = $$86;$$51102 = $$831180;$$51208 = $$821285;$$51314 = $$861395;$$5996 = $$801071; + label = 14; + continue; + } + $838 = $6 & 1; + $839 = ($838|0)==(0); + if ($839) { + $$881504 = $$761492;$$921083 = $$801071;$$921699 = $$801687;$$941191 = $$831180;$$941297 = $$821285;$$971604 = $$851592;$$98 = $$86;$$981407 = $$861395; + label = 242; + continue; + } else { + $$801496 = $$761492;$$841075 = $$801071;$$841691 = $$801687;$$861289 = $$821285;$$891596 = $$851592;$$90 = $$86;$$901399 = $$861395; + label = 226; + continue; + } + } + } + if ((label|0) == 258) { + STACKTOP = sp;return ($$0951|0); + } + $892 = ((($0)) + 28|0); + $893 = HEAP32[$892>>2]|0; + $894 = $893 & 65535; + $895 = $893 >>> 16; + $896 = ($888|0)==(0); + if ($896) { + $$0937$lcssa = $895;$$0938$lcssa = $894; + } else { + $897 = (($888>>>0) % 5552)&-1; + $$01834 = $897;$$09371833 = $895;$$09381832 = $894;$$09431831 = $888;$$09441830 = $4; + while(1) { + $898 = ($$01834>>>0)>(7); + if ($898) { + $899 = (($$01834) + -8)|0; + $900 = $899 & -8; + $scevgep = ((($$09441830)) + 8|0); + $$09411816 = 0;$$11818 = $$09371833;$$19391817 = $$09381832;$$19451815 = $$09441830; + while(1) { + $904 = HEAP8[$$19451815>>0]|0; + $905 = $904&255; + $906 = (($905) + ($$19391817))|0; + $907 = (($906) + ($$11818))|0; + $908 = ((($$19451815)) + 1|0); + $909 = HEAP8[$908>>0]|0; + $910 = $909&255; + $911 = (($906) + ($910))|0; + $912 = (($907) + ($911))|0; + $913 = ((($$19451815)) + 2|0); + $914 = HEAP8[$913>>0]|0; + $915 = $914&255; + $916 = (($911) + ($915))|0; + $917 = (($912) + ($916))|0; + $918 = ((($$19451815)) + 3|0); + $919 = HEAP8[$918>>0]|0; + $920 = $919&255; + $921 = (($916) + ($920))|0; + $922 = (($917) + ($921))|0; + $923 = ((($$19451815)) + 4|0); + $924 = HEAP8[$923>>0]|0; + $925 = $924&255; + $926 = (($921) + ($925))|0; + $927 = (($922) + ($926))|0; + $928 = ((($$19451815)) + 5|0); + $929 = HEAP8[$928>>0]|0; + $930 = $929&255; + $931 = (($926) + ($930))|0; + $932 = (($927) + ($931))|0; + $933 = ((($$19451815)) + 6|0); + $934 = HEAP8[$933>>0]|0; + $935 = $934&255; + $936 = (($931) + ($935))|0; + $937 = (($932) + ($936))|0; + $938 = ((($$19451815)) + 7|0); + $939 = HEAP8[$938>>0]|0; + $940 = $939&255; + $941 = (($936) + ($940))|0; + $942 = (($937) + ($941))|0; + $943 = (($$09411816) + 8)|0; + $944 = ((($$19451815)) + 8|0); + $945 = $943 | 7; + $946 = ($945>>>0)<($$01834>>>0); + if ($946) { + $$09411816 = $943;$$11818 = $942;$$19391817 = $941;$$19451815 = $944; + } else { + break; + } + } + $901 = (($900) + 8)|0; + $scevgep1947 = (($scevgep) + ($900)|0); + $$0941$lcssa = $901;$$1$lcssa = $942;$$1939$lcssa = $941;$$1945$lcssa = $scevgep1947; + } else { + $$0941$lcssa = 0;$$1$lcssa = $$09371833;$$1939$lcssa = $$09381832;$$1945$lcssa = $$09441830; + } + $902 = ($$01834>>>0)>($$0941$lcssa>>>0); + if ($902) { + $903 = (($$01834) - ($$0941$lcssa))|0; + $$19421823 = $$0941$lcssa;$$21825 = $$1$lcssa;$$29401824 = $$1939$lcssa;$$29461822 = $$1945$lcssa; + while(1) { + $947 = ((($$29461822)) + 1|0); + $948 = HEAP8[$$29461822>>0]|0; + $949 = $948&255; + $950 = (($949) + ($$29401824))|0; + $951 = (($950) + ($$21825))|0; + $952 = (($$19421823) + 1)|0; + $exitcond = ($952|0)==($$01834|0); + if ($exitcond) { + break; + } else { + $$19421823 = $952;$$21825 = $951;$$29401824 = $950;$$29461822 = $947; + } + } + $scevgep1948 = (($$1945$lcssa) + ($903)|0); + $$2$lcssa = $951;$$2940$lcssa = $950;$$2946$lcssa = $scevgep1948; + } else { + $$2$lcssa = $$1$lcssa;$$2940$lcssa = $$1939$lcssa;$$2946$lcssa = $$1945$lcssa; + } + $953 = (($$2940$lcssa>>>0) % 65521)&-1; + $954 = (($$2$lcssa>>>0) % 65521)&-1; + $955 = (($$09431831) - ($$01834))|0; + $956 = ($955|0)==(0); + if ($956) { + $$0937$lcssa = $954;$$0938$lcssa = $953; + break; + } else { + $$01834 = 5552;$$09371833 = $954;$$09381832 = $953;$$09431831 = $955;$$09441830 = $$2946$lcssa; + } + } + } + $957 = $$0937$lcssa << 16; + $958 = $957 | $$0938$lcssa; + HEAP32[$892>>2] = $958; + $959 = ($$1961|0)!=(0); + $960 = $6 & 1; + $961 = ($960|0)==(0); + $or$cond1752 = $961 | $959; + if ($or$cond1752) { + $$0951 = $$1961; + STACKTOP = sp;return ($$0951|0); + } else { + $962 = ((($0)) + 16|0); + $963 = HEAP32[$962>>2]|0; + $964 = ($958|0)==($963|0); + $$1961$ = $964 ? $$1961 : -2; + STACKTOP = sp;return ($$1961$|0); + } + return (0)|0; +} +function _LoadTexture($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy1 = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$5 = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx5 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy1 = sp + 60|0; + $vararg_buffer = sp + 16|0; + $$sroa$5 = sp; + $2 = sp + 20|0; + $3 = sp + 40|0; + _LoadImage($2,$1); + $4 = HEAP32[$2>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + _TraceLog(2,11944,$vararg_buffer); + $$sroa$0$0 = 0; + } else { + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _LoadTextureFromImage($3,$$byval_copy1); + $$sroa$0$0$copyload = HEAP32[$3>>2]|0; + $$sroa$5$0$$sroa_idx = ((($3)) + 4|0); + ;HEAP32[$$sroa$5>>2]=HEAP32[$$sroa$5$0$$sroa_idx>>2]|0;HEAP32[$$sroa$5+4>>2]=HEAP32[$$sroa$5$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$5+8>>2]=HEAP32[$$sroa$5$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$5+12>>2]=HEAP32[$$sroa$5$0$$sroa_idx+12>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _UnloadImage($$byval_copy1); + $$sroa$0$0 = $$sroa$0$0$copyload; + } + HEAP32[$0>>2] = $$sroa$0$0; + $$sroa$5$0$$sroa_idx5 = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx5>>2]=HEAP32[$$sroa$5>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+4>>2]=HEAP32[$$sroa$5+4>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+8>>2]=HEAP32[$$sroa$5+8>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+12>>2]=HEAP32[$$sroa$5+12>>2]|0; + STACKTOP = sp;return; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[18876>>2]|0;HEAP32[$0+4>>2]=HEAP32[18876+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[18876+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[18876+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[18876+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[18876+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[18876+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[18876+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(22963,$0,$1)|0); + STACKTOP = sp;return (22963|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[5272]|0; + $4 = HEAP32[922]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[5273] = $7; + HEAP32[922] = $7; + $$sink = 0; + } + HEAP32[5272] = $$sink; + $8 = HEAP32[5273]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(11973,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(22963,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _DrawLine3D($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + _rlBegin(1); + $3 = HEAP8[$2>>0]|0; + $4 = ((($2)) + 1|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($2)) + 2|0); + $7 = HEAP8[$6>>0]|0; + $8 = ((($2)) + 3|0); + $9 = HEAP8[$8>>0]|0; + _rlColor4ub($3,$5,$7,$9); + $10 = +HEAPF32[$0>>2]; + $11 = ((($0)) + 4|0); + $12 = +HEAPF32[$11>>2]; + $13 = ((($0)) + 8|0); + $14 = +HEAPF32[$13>>2]; + _rlVertex3f($10,$12,$14); + $15 = +HEAPF32[$1>>2]; + $16 = ((($1)) + 4|0); + $17 = +HEAPF32[$16>>2]; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + _rlVertex3f($15,$17,$19); + _rlEnd(); + return; +} +function _DrawCube($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlBegin(4); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = $1 * 0.5; + $18 = 0.0 - $17; + $19 = $2 * 0.5; + $20 = 0.0 - $19; + $21 = $3 * 0.5; + $22 = $21 + 0.0; + _rlVertex3f($18,$20,$22); + $23 = $17 + 0.0; + _rlVertex3f($23,$20,$22); + $24 = $19 + 0.0; + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$20,$22); + $25 = 0.0 - $21; + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($18,$20,$22); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$20,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$20,$25); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawCubeWires($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $5 = +HEAPF32[$0>>2]; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 8|0); + $9 = +HEAPF32[$8>>2]; + _rlTranslatef($5,$7,$9); + _rlBegin(1); + $10 = HEAP8[$4>>0]|0; + $11 = ((($4)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ((($4)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ((($4)) + 3|0); + $16 = HEAP8[$15>>0]|0; + _rlColor4ub($10,$12,$14,$16); + $17 = $1 * 0.5; + $18 = 0.0 - $17; + $19 = $2 * 0.5; + $20 = 0.0 - $19; + $21 = $3 * 0.5; + $22 = $21 + 0.0; + _rlVertex3f($18,$20,$22); + $23 = $17 + 0.0; + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$22); + $24 = $19 + 0.0; + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$20,$22); + $25 = 0.0 - $21; + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$20,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$24,$25); + _rlVertex3f($18,$20,$25); + _rlVertex3f($18,$24,$22); + _rlVertex3f($18,$24,$25); + _rlVertex3f($23,$24,$22); + _rlVertex3f($23,$24,$25); + _rlVertex3f($18,$20,$22); + _rlVertex3f($18,$20,$25); + _rlVertex3f($23,$20,$22); + _rlVertex3f($23,$20,$25); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _DrawRay($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + _rlBegin(1); + $2 = HEAP8[$1>>0]|0; + $3 = ((($1)) + 1|0); + $4 = HEAP8[$3>>0]|0; + $5 = ((($1)) + 2|0); + $6 = HEAP8[$5>>0]|0; + $7 = ((($1)) + 3|0); + $8 = HEAP8[$7>>0]|0; + _rlColor4ub($2,$4,$6,$8); + $9 = HEAP8[$1>>0]|0; + $10 = HEAP8[$3>>0]|0; + _rlColor4ub($9,$10,$6,$8); + $11 = +HEAPF32[$0>>2]; + $12 = ((($0)) + 4|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($0)) + 8|0); + $15 = +HEAPF32[$14>>2]; + _rlVertex3f($11,$13,$15); + $16 = ((($0)) + 12|0); + $17 = +HEAPF32[$16>>2]; + $18 = $17 * 1.0E+4; + $19 = $11 + $18; + $20 = +HEAPF32[$12>>2]; + $21 = ((($0)) + 16|0); + $22 = +HEAPF32[$21>>2]; + $23 = $22 * 1.0E+4; + $24 = $20 + $23; + $25 = +HEAPF32[$14>>2]; + $26 = ((($0)) + 20|0); + $27 = +HEAPF32[$26>>2]; + $28 = $27 * 1.0E+4; + $29 = $25 + $28; + _rlVertex3f($19,$24,$29); + _rlEnd(); + return; +} +function _DrawGrid($0,$1) { + $0 = $0|0; + $1 = +$1; + var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0|0) / 2)&-1; + _rlBegin(1); + $3 = (0 - ($2))|0; + $4 = ($2|0)<($3|0); + if ($4) { + _rlEnd(); + return; + } + $5 = (+($3|0)); + $6 = $5 * $1; + $7 = (+($2|0)); + $8 = $7 * $1; + $$024 = $3; + while(1) { + $9 = ($$024|0)==(0); + if ($9) { + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + } else { + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + } + $10 = (+($$024|0)); + $11 = $10 * $1; + _rlVertex3f($11,0.0,$6); + _rlVertex3f($11,0.0,$8); + _rlVertex3f($6,0.0,$11); + _rlVertex3f($8,0.0,$11); + $12 = (($$024) + 1)|0; + $13 = ($$024|0)<($2|0); + if ($13) { + $$024 = $12; + } else { + break; + } + } + _rlEnd(); + return; +} +function _LoadMesh($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 4|0; + dest=$2; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $4 = (_IsFileExtension($1,11981)|0); + $5 = ($4|0)==(0); + if (!($5)) { + _LoadOBJ($3,$1); + dest=$2; src=$3; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + } + $6 = HEAP32[$2>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + _TraceLog(2,11986,$vararg_buffer); + } else { + _rlglLoadMesh($2,0); + } + dest=$0; src=$2; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadOBJ($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$ph374433 = 0, $$0$ph377422 = 0, $$0$ph379$lcssa386 = 0, $$0$ph379412 = 0, $$0$ph445 = 0, $$0344$ph373432 = 0, $$0344$ph376$lcssa388 = 0, $$0344$ph376421 = 0, $$0344$ph444 = 0, $$0345$ph372$lcssa389 = 0, $$0345$ph372431 = 0, $$0345$ph443 = 0, $$0346$ph$lcssa = 0, $$0346$ph442 = 0, $$0347392 = 0, $$0348391 = 0, $$0350$ph = 0, $$0350$ph$ph = 0, $$0351$ph$ph = 0, $$0352$ph = 0; + var $$0352$ph$ph = 0, $$0353$ph365399 = 0, $$0353$ph367397 = 0, $$0353$ph402 = 0, $$0354$ph364398 = 0, $$0354$ph401 = 0, $$0355$ph400 = 0, $$0356 = 0, $$0357 = 0, $$1 = 0, $$byval_copy102 = 0, $$byval_copy103 = 0, $$sroa$12$0$$sroa_idx244 = 0, $$sroa$12247$0$$sroa_idx249 = 0, $$sroa$31$0$$sroa_idx270 = 0, $$sroa$45$0$$sroa_idx286 = 0, $$sroa$45289$0$$sroa_idx291 = 0, $$sroa$64$0 = 0, $$sroa$64$0$$sroa_idx312 = 0, $$sroa$74$0$$sroa_idx324 = 0; + var $$sroa$75 = 0, $$sroa$75$0$$sroa_idx = 0, $$sroa$75$0$$sroa_idx328 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; + var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; + var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0; + var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0; + var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0; + var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0, $240 = 0; + var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0.0; + var $26 = 0, $260 = 0.0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0; + var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0; + var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0.0, $312 = 0; + var $313 = 0, $314 = 0.0, $315 = 0, $316 = 0, $317 = 0.0, $318 = 0, $319 = 0, $32 = 0, $320 = 0.0, $321 = 0, $322 = 0, $323 = 0.0, $324 = 0, $325 = 0, $326 = 0.0, $327 = 0.0, $328 = 0.0, $329 = 0.0, $33 = 0, $330 = 0.0; + var $331 = 0.0, $332 = 0.0, $333 = 0.0, $334 = 0.0, $335 = 0.0, $336 = 0.0, $337 = 0.0, $338 = 0.0, $339 = 0.0, $34 = 0, $340 = 0.0, $341 = 0.0, $342 = 0.0, $343 = 0.0, $344 = 0.0, $345 = 0.0, $346 = 0.0, $347 = 0, $348 = 0, $349 = 0; + var $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0; + var $368 = 0, $369 = 0, $37 = 0, $370 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer23 = 0, $vararg_buffer26 = 0, $vararg_buffer29 = 0, $vararg_buffer33 = 0, $vararg_buffer36 = 0; + var $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer44 = 0, $vararg_buffer49 = 0, $vararg_buffer52 = 0, $vararg_buffer55 = 0, $vararg_buffer58 = 0, $vararg_buffer63 = 0, $vararg_buffer7 = 0, $vararg_buffer71 = 0, $vararg_buffer79 = 0, $vararg_buffer90 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0, $vararg_ptr18 = 0, $vararg_ptr22 = 0, $vararg_ptr32 = 0, $vararg_ptr39 = 0, $vararg_ptr40 = 0, $vararg_ptr47 = 0; + var $vararg_ptr48 = 0, $vararg_ptr61 = 0, $vararg_ptr62 = 0, $vararg_ptr66 = 0, $vararg_ptr67 = 0, $vararg_ptr68 = 0, $vararg_ptr69 = 0, $vararg_ptr70 = 0, $vararg_ptr74 = 0, $vararg_ptr75 = 0, $vararg_ptr76 = 0, $vararg_ptr77 = 0, $vararg_ptr78 = 0, $vararg_ptr82 = 0, $vararg_ptr83 = 0, $vararg_ptr84 = 0, $vararg_ptr85 = 0, $vararg_ptr86 = 0, $vararg_ptr87 = 0, $vararg_ptr88 = 0; + var $vararg_ptr89 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 672|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(672|0); + $$byval_copy103 = sp + 320|0; + $$byval_copy102 = sp + 304|0; + $vararg_buffer90 = sp + 296|0; + $vararg_buffer79 = sp + 256|0; + $vararg_buffer71 = sp + 232|0; + $vararg_buffer63 = sp + 208|0; + $vararg_buffer58 = sp + 192|0; + $vararg_buffer55 = sp + 184|0; + $vararg_buffer52 = sp + 176|0; + $vararg_buffer49 = sp + 168|0; + $vararg_buffer44 = sp + 152|0; + $vararg_buffer41 = sp + 144|0; + $vararg_buffer36 = sp + 128|0; + $vararg_buffer33 = sp + 120|0; + $vararg_buffer29 = sp + 112|0; + $vararg_buffer26 = sp + 104|0; + $vararg_buffer23 = sp + 96|0; + $vararg_buffer11 = sp + 80|0; + $vararg_buffer7 = sp + 64|0; + $vararg_buffer4 = sp + 56|0; + $vararg_buffer1 = sp + 48|0; + $vararg_buffer = sp + 40|0; + $$sroa$75 = sp; + $2 = sp + 664|0; + $3 = sp + 464|0; + $4 = sp + 428|0; + $5 = sp + 416|0; + $6 = sp + 452|0; + $7 = sp + 440|0; + $8 = sp + 404|0; + $9 = sp + 392|0; + $10 = sp + 380|0; + $11 = sp + 368|0; + $12 = sp + 356|0; + $13 = sp + 344|0; + $14 = sp + 332|0; + dest=$$sroa$75; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $15 = (_fopen($1,12011)|0); + $16 = ($15|0)==(0|0); + if ($16) { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,12014,$vararg_buffer); + $$sroa$75$0$$sroa_idx = ((($0)) + 32|0); + ;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;HEAP32[$0+24>>2]=0|0;HEAP32[$0+28>>2]=0|0; + dest=$$sroa$75$0$$sroa_idx; src=$$sroa$75; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + $17 = (_feof($15)|0); + $18 = ($17|0)==(0); + L5: do { + if ($18) { + $$0$ph445 = 0;$$0344$ph444 = 0;$$0345$ph443 = 0;$$0346$ph442 = 0; + while(1) { + $$0$ph374433 = $$0$ph445;$$0344$ph373432 = $$0344$ph444;$$0345$ph372431 = $$0345$ph443; + L8: while(1) { + $$0$ph377422 = $$0$ph374433;$$0344$ph376421 = $$0344$ph373432; + L10: while(1) { + $$0$ph379412 = $$0$ph377422; + L12: while(1) { + L14: while(1) { + HEAP32[$vararg_buffer1>>2] = $2; + (_fscanf($15,12048,$vararg_buffer1)|0); + $19 = HEAP8[$2>>0]|0; + $20 = $19 << 24 >> 24; + switch ($20|0) { + case 102: { + break L8; + break; + } + case 118: { + break L14; + break; + } + case 117: case 109: case 115: case 103: case 111: case 35: { + (_fgets($3,200,$15)|0); + break; + } + default: { + } + } + $21 = (_feof($15)|0); + $22 = ($21|0)==(0); + if (!($22)) { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + HEAP32[$vararg_buffer4>>2] = $2; + (_fscanf($15,12048,$vararg_buffer4)|0); + $23 = HEAP8[$2>>0]|0; + switch ($23<<24>>24) { + case 116: { + break L10; + break; + } + case 110: { + break L12; + break; + } + default: { + } + } + $30 = (($$0$ph379412) + 1)|0; + (_fgets($3,200,$15)|0); + $31 = (_feof($15)|0); + $32 = ($31|0)==(0); + if ($32) { + $$0$ph379412 = $30; + } else { + $$0$ph379$lcssa386 = $30;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + $27 = (($$0344$ph376421) + 1)|0; + (_fgets($3,200,$15)|0); + $28 = (_feof($15)|0); + $29 = ($28|0)==(0); + if ($29) { + $$0$ph377422 = $$0$ph379412;$$0344$ph376421 = $27; + } else { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $27;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + $24 = (($$0345$ph372431) + 1)|0; + (_fgets($3,200,$15)|0); + $25 = (_feof($15)|0); + $26 = ($25|0)==(0); + if ($26) { + $$0$ph374433 = $$0$ph379412;$$0344$ph373432 = $$0344$ph376421;$$0345$ph372431 = $24; + } else { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $24;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + $33 = (($$0346$ph442) + 1)|0; + (_fgets($3,200,$15)|0); + $34 = (_feof($15)|0); + $35 = ($34|0)==(0); + if ($35) { + $$0$ph445 = $$0$ph379412;$$0344$ph444 = $$0344$ph376421;$$0345$ph443 = $$0345$ph372431;$$0346$ph442 = $33; + } else { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $33; + break; + } + } + } else { + $$0$ph379$lcssa386 = 0;$$0344$ph376$lcssa388 = 0;$$0345$ph372$lcssa389 = 0;$$0346$ph$lcssa = 0; + } + } while(0); + HEAP32[$vararg_buffer7>>2] = $1; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = $$0$ph379$lcssa386; + _TraceLog(3,12051,$vararg_buffer7); + HEAP32[$vararg_buffer11>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr14>>2] = $$0345$ph372$lcssa389; + _TraceLog(3,12079,$vararg_buffer11); + HEAP32[$$byval_copy102>>2] = $1; + $vararg_ptr18 = ((($$byval_copy102)) + 4|0); + HEAP32[$vararg_ptr18>>2] = $$0344$ph376$lcssa388; + _TraceLog(3,12108,$$byval_copy102); + HEAP32[$$byval_copy103>>2] = $1; + $vararg_ptr22 = ((($$byval_copy103)) + 4|0); + HEAP32[$vararg_ptr22>>2] = $$0346$ph$lcssa; + _TraceLog(3,12135,$$byval_copy103); + $36 = ($$0$ph379$lcssa386*12)|0; + $37 = (_malloc($36)|0); + $38 = ($$0344$ph376$lcssa388|0)>(0); + if ($38) { + $39 = ($$0344$ph376$lcssa388*12)|0; + $40 = (_malloc($39)|0); + $$0357 = $40;$369 = $40; + } else { + $$0357 = 0;$369 = 0; + } + $41 = ($$0345$ph372$lcssa389|0)>(0); + if ($41) { + $42 = $$0345$ph372$lcssa389 << 3; + $43 = (_malloc($42)|0); + $$0356 = $43;$370 = $43; + } else { + $$0356 = 0;$370 = 0; + } + _rewind($15); + $44 = (_feof($15)|0); + $45 = ($44|0)==(0); + L31: do { + if ($45) { + $$0353$ph402 = 0;$$0354$ph401 = 0;$$0355$ph400 = 0; + while(1) { + $$0353$ph365399 = $$0353$ph402;$$0354$ph364398 = $$0354$ph401; + L34: while(1) { + $$0353$ph367397 = $$0353$ph365399; + L36: while(1) { + L38: while(1) { + HEAP32[$vararg_buffer23>>2] = $2; + (_fscanf($15,12048,$vararg_buffer23)|0); + $46 = HEAP8[$2>>0]|0; + $47 = $46 << 24 >> 24; + switch ($47|0) { + case 118: { + break L38; + break; + } + case 102: case 117: case 109: case 115: case 103: case 111: case 35: { + (_fgets($3,200,$15)|0); + break; + } + default: { + } + } + $48 = (_feof($15)|0); + $49 = ($48|0)==(0); + if (!($49)) { + break L31; + } + } + HEAP32[$vararg_buffer26>>2] = $2; + (_fscanf($15,12048,$vararg_buffer26)|0); + $50 = HEAP8[$2>>0]|0; + switch ($50<<24>>24) { + case 110: { + break L36; + break; + } + case 116: { + break; + } + default: { + break L34; + } + } + $51 = (($$0356) + ($$0353$ph367397<<3)|0); + $52 = (((($$0356) + ($$0353$ph367397<<3)|0)) + 4|0); + HEAP32[$vararg_buffer29>>2] = $51; + $vararg_ptr32 = ((($vararg_buffer29)) + 4|0); + HEAP32[$vararg_ptr32>>2] = $52; + (_fscanf($15,12164,$vararg_buffer29)|0); + $53 = (($$0353$ph367397) + 1)|0; + HEAP32[$vararg_buffer33>>2] = $2; + (_fscanf($15,12048,$vararg_buffer33)|0); + $54 = (_feof($15)|0); + $55 = ($54|0)==(0); + if ($55) { + $$0353$ph367397 = $53; + } else { + break L31; + } + } + $56 = (($$0357) + (($$0354$ph364398*12)|0)|0); + $57 = (((($$0357) + (($$0354$ph364398*12)|0)|0)) + 4|0); + $58 = (((($$0357) + (($$0354$ph364398*12)|0)|0)) + 8|0); + HEAP32[$vararg_buffer36>>2] = $56; + $vararg_ptr39 = ((($vararg_buffer36)) + 4|0); + HEAP32[$vararg_ptr39>>2] = $57; + $vararg_ptr40 = ((($vararg_buffer36)) + 8|0); + HEAP32[$vararg_ptr40>>2] = $58; + (_fscanf($15,12178,$vararg_buffer36)|0); + $59 = (($$0354$ph364398) + 1)|0; + HEAP32[$vararg_buffer41>>2] = $2; + (_fscanf($15,12048,$vararg_buffer41)|0); + $60 = (_feof($15)|0); + $61 = ($60|0)==(0); + if ($61) { + $$0353$ph365399 = $$0353$ph367397;$$0354$ph364398 = $59; + } else { + break L31; + } + } + $62 = (($37) + (($$0355$ph400*12)|0)|0); + $63 = (((($37) + (($$0355$ph400*12)|0)|0)) + 4|0); + $64 = (((($37) + (($$0355$ph400*12)|0)|0)) + 8|0); + HEAP32[$vararg_buffer44>>2] = $62; + $vararg_ptr47 = ((($vararg_buffer44)) + 4|0); + HEAP32[$vararg_ptr47>>2] = $63; + $vararg_ptr48 = ((($vararg_buffer44)) + 8|0); + HEAP32[$vararg_ptr48>>2] = $64; + (_fscanf($15,12178,$vararg_buffer44)|0); + $65 = (($$0355$ph400) + 1)|0; + HEAP32[$vararg_buffer49>>2] = $2; + (_fscanf($15,12048,$vararg_buffer49)|0); + $66 = (_feof($15)|0); + $67 = ($66|0)==(0); + if ($67) { + $$0353$ph402 = $$0353$ph367397;$$0354$ph401 = $$0354$ph364398;$$0355$ph400 = $65; + } else { + break; + } + } + } + } while(0); + $68 = ($$0346$ph$lcssa*3)|0; + $69 = ($$0346$ph$lcssa*9)|0; + $70 = ($$0346$ph$lcssa*36)|0; + $71 = (_malloc($70)|0); + $72 = ($$0346$ph$lcssa*6)|0; + $73 = ($$0346$ph$lcssa*24)|0; + $74 = (_malloc($73)|0); + $75 = (_malloc($70)|0); + _rewind($15); + $76 = ($$0344$ph376$lcssa388|0)==(0); + if ($76) { + HEAP32[$vararg_buffer52>>2] = $1; + _TraceLog(0,12187,$vararg_buffer52); + } + $77 = ($$0345$ph372$lcssa389|0)==(0); + $78 = $$0344$ph376$lcssa388 | $$0345$ph372$lcssa389; + $79 = ($78|0)==(0); + $80 = ((($vararg_buffer11)) + 4|0); + $81 = ((($vararg_buffer11)) + 8|0); + $82 = ((($vararg_buffer11)) + 4|0); + $83 = ((($vararg_buffer11)) + 8|0); + $84 = ((($4)) + 4|0); + $85 = ((($4)) + 8|0); + $86 = ((($5)) + 4|0); + $87 = ((($5)) + 8|0); + $88 = ((($vararg_buffer11)) + 4|0); + $89 = ((($vararg_buffer7)) + 4|0); + $90 = ((($vararg_buffer11)) + 8|0); + $91 = ((($vararg_buffer7)) + 8|0); + $92 = ((($vararg_buffer11)) + 4|0); + $93 = ((($4)) + 4|0); + $94 = ((($vararg_buffer11)) + 8|0); + $95 = ((($4)) + 8|0); + $96 = ((($vararg_buffer11)) + 4|0); + $97 = ((($vararg_buffer7)) + 4|0); + $98 = ((($4)) + 4|0); + $99 = ((($vararg_buffer11)) + 8|0); + $100 = ((($vararg_buffer7)) + 8|0); + $101 = ((($4)) + 8|0); + $102 = ((($vararg_buffer7)) + 4|0); + $103 = ((($vararg_buffer7)) + 8|0); + $$0350$ph$ph = 0;$$0351$ph$ph = 0;$$0352$ph$ph = 0; + L51: while(1) { + $$0350$ph = $$0350$ph$ph;$$0352$ph = $$0352$ph$ph; + while(1) { + $104 = (_feof($15)|0); + $105 = ($104|0)==(0); + if (!($105)) { + break L51; + } + L55: while(1) { + HEAP32[$vararg_buffer55>>2] = $2; + (_fscanf($15,12048,$vararg_buffer55)|0); + $106 = HEAP8[$2>>0]|0; + $107 = $106 << 24 >> 24; + switch ($107|0) { + case 102: { + break L55; + break; + } + case 118: case 117: case 109: case 115: case 103: case 111: case 35: { + (_fgets($3,200,$15)|0); + break; + } + default: { + } + } + $108 = (_feof($15)|0); + $109 = ($108|0)==(0); + if (!($109)) { + break L51; + } + } + do { + if ($79) { + HEAP32[$vararg_buffer58>>2] = $vararg_buffer11; + $vararg_ptr61 = ((($vararg_buffer58)) + 4|0); + HEAP32[$vararg_ptr61>>2] = $80; + $vararg_ptr62 = ((($vararg_buffer58)) + 8|0); + HEAP32[$vararg_ptr62>>2] = $81; + (_fscanf($15,12258,$vararg_buffer58)|0); + } else { + if ($76) { + HEAP32[$vararg_buffer63>>2] = $vararg_buffer11; + $vararg_ptr66 = ((($vararg_buffer63)) + 4|0); + HEAP32[$vararg_ptr66>>2] = $vararg_buffer7; + $vararg_ptr67 = ((($vararg_buffer63)) + 8|0); + HEAP32[$vararg_ptr67>>2] = $88; + $vararg_ptr68 = ((($vararg_buffer63)) + 12|0); + HEAP32[$vararg_ptr68>>2] = $89; + $vararg_ptr69 = ((($vararg_buffer63)) + 16|0); + HEAP32[$vararg_ptr69>>2] = $90; + $vararg_ptr70 = ((($vararg_buffer63)) + 20|0); + HEAP32[$vararg_ptr70>>2] = $91; + (_fscanf($15,12267,$vararg_buffer63)|0); + break; + } + if ($77) { + HEAP32[$vararg_buffer71>>2] = $vararg_buffer11; + $vararg_ptr74 = ((($vararg_buffer71)) + 4|0); + HEAP32[$vararg_ptr74>>2] = $4; + $vararg_ptr75 = ((($vararg_buffer71)) + 8|0); + HEAP32[$vararg_ptr75>>2] = $92; + $vararg_ptr76 = ((($vararg_buffer71)) + 12|0); + HEAP32[$vararg_ptr76>>2] = $93; + $vararg_ptr77 = ((($vararg_buffer71)) + 16|0); + HEAP32[$vararg_ptr77>>2] = $94; + $vararg_ptr78 = ((($vararg_buffer71)) + 20|0); + HEAP32[$vararg_ptr78>>2] = $95; + (_fscanf($15,12285,$vararg_buffer71)|0); + break; + } else { + HEAP32[$vararg_buffer79>>2] = $vararg_buffer11; + $vararg_ptr82 = ((($vararg_buffer79)) + 4|0); + HEAP32[$vararg_ptr82>>2] = $vararg_buffer7; + $vararg_ptr83 = ((($vararg_buffer79)) + 8|0); + HEAP32[$vararg_ptr83>>2] = $4; + $vararg_ptr84 = ((($vararg_buffer79)) + 12|0); + HEAP32[$vararg_ptr84>>2] = $96; + $vararg_ptr85 = ((($vararg_buffer79)) + 16|0); + HEAP32[$vararg_ptr85>>2] = $97; + $vararg_ptr86 = ((($vararg_buffer79)) + 20|0); + HEAP32[$vararg_ptr86>>2] = $98; + $vararg_ptr87 = ((($vararg_buffer79)) + 24|0); + HEAP32[$vararg_ptr87>>2] = $99; + $vararg_ptr88 = ((($vararg_buffer79)) + 28|0); + HEAP32[$vararg_ptr88>>2] = $100; + $vararg_ptr89 = ((($vararg_buffer79)) + 32|0); + HEAP32[$vararg_ptr89>>2] = $101; + (_fscanf($15,12306,$vararg_buffer79)|0); + break; + } + } + } while(0); + $110 = HEAP32[$vararg_buffer11>>2]|0; + $111 = (($110) + -1)|0; + $112 = (($37) + (($111*12)|0)|0); + $113 = HEAP32[$112>>2]|0; + $114 = (($71) + ($$0352$ph<<2)|0); + HEAP32[$114>>2] = $113; + $115 = (((($37) + (($111*12)|0)|0)) + 4|0); + $116 = HEAP32[$115>>2]|0; + $117 = (($$0352$ph) + 1)|0; + $118 = (($71) + ($117<<2)|0); + HEAP32[$118>>2] = $116; + $119 = (((($37) + (($111*12)|0)|0)) + 8|0); + $120 = HEAP32[$119>>2]|0; + $121 = (($$0352$ph) + 2)|0; + $122 = (($71) + ($121<<2)|0); + HEAP32[$122>>2] = $120; + $123 = (($$0352$ph) + 3)|0; + $124 = HEAP32[$82>>2]|0; + $125 = (($124) + -1)|0; + $126 = (($37) + (($125*12)|0)|0); + $127 = HEAP32[$126>>2]|0; + $128 = (($71) + ($123<<2)|0); + HEAP32[$128>>2] = $127; + $129 = (((($37) + (($125*12)|0)|0)) + 4|0); + $130 = HEAP32[$129>>2]|0; + $131 = (($$0352$ph) + 4)|0; + $132 = (($71) + ($131<<2)|0); + HEAP32[$132>>2] = $130; + $133 = (((($37) + (($125*12)|0)|0)) + 8|0); + $134 = HEAP32[$133>>2]|0; + $135 = (($$0352$ph) + 5)|0; + $136 = (($71) + ($135<<2)|0); + HEAP32[$136>>2] = $134; + $137 = (($$0352$ph) + 6)|0; + $138 = HEAP32[$83>>2]|0; + $139 = (($138) + -1)|0; + $140 = (($37) + (($139*12)|0)|0); + $141 = HEAP32[$140>>2]|0; + $142 = (($71) + ($137<<2)|0); + HEAP32[$142>>2] = $141; + $143 = (((($37) + (($139*12)|0)|0)) + 4|0); + $144 = HEAP32[$143>>2]|0; + $145 = (($$0352$ph) + 7)|0; + $146 = (($71) + ($145<<2)|0); + HEAP32[$146>>2] = $144; + $147 = (((($37) + (($139*12)|0)|0)) + 8|0); + $148 = HEAP32[$147>>2]|0; + $149 = (($$0352$ph) + 8)|0; + $150 = (($71) + ($149<<2)|0); + HEAP32[$150>>2] = $148; + $151 = (($$0352$ph) + 9)|0; + if ($38) { + $152 = HEAP32[$4>>2]|0; + $153 = (($152) + -1)|0; + $154 = (($$0357) + (($153*12)|0)|0); + $155 = HEAP32[$154>>2]|0; + $156 = (($75) + ($$0350$ph<<2)|0); + HEAP32[$156>>2] = $155; + $157 = (((($$0357) + (($153*12)|0)|0)) + 4|0); + $158 = HEAP32[$157>>2]|0; + $159 = (($$0350$ph) + 1)|0; + $160 = (($75) + ($159<<2)|0); + HEAP32[$160>>2] = $158; + $161 = (((($$0357) + (($153*12)|0)|0)) + 8|0); + $162 = HEAP32[$161>>2]|0; + $163 = (($$0350$ph) + 2)|0; + $164 = (($75) + ($163<<2)|0); + HEAP32[$164>>2] = $162; + $165 = (($$0350$ph) + 3)|0; + $166 = HEAP32[$84>>2]|0; + $167 = (($166) + -1)|0; + $168 = (($$0357) + (($167*12)|0)|0); + $169 = HEAP32[$168>>2]|0; + $170 = (($75) + ($165<<2)|0); + HEAP32[$170>>2] = $169; + $171 = (((($$0357) + (($167*12)|0)|0)) + 4|0); + $172 = HEAP32[$171>>2]|0; + $173 = (($$0350$ph) + 4)|0; + $174 = (($75) + ($173<<2)|0); + HEAP32[$174>>2] = $172; + $175 = (((($$0357) + (($167*12)|0)|0)) + 8|0); + $176 = HEAP32[$175>>2]|0; + $177 = (($$0350$ph) + 5)|0; + $178 = (($75) + ($177<<2)|0); + HEAP32[$178>>2] = $176; + $179 = (($$0350$ph) + 6)|0; + $180 = HEAP32[$85>>2]|0; + $181 = (($180) + -1)|0; + $182 = (($$0357) + (($181*12)|0)|0); + $183 = HEAP32[$182>>2]|0; + $184 = (($75) + ($179<<2)|0); + HEAP32[$184>>2] = $183; + $185 = (((($$0357) + (($181*12)|0)|0)) + 4|0); + $186 = HEAP32[$185>>2]|0; + $187 = (($$0350$ph) + 7)|0; + $188 = (($75) + ($187<<2)|0); + HEAP32[$188>>2] = $186; + $189 = (((($$0357) + (($181*12)|0)|0)) + 8|0); + $190 = HEAP32[$189>>2]|0; + $191 = (($$0350$ph) + 8)|0; + $192 = (($75) + ($191<<2)|0); + HEAP32[$192>>2] = $190; + } else { + $193 = HEAP32[$82>>2]|0; + $194 = (($193) + -1)|0; + $195 = (($37) + (($194*12)|0)|0); + $196 = HEAP32[$vararg_buffer11>>2]|0; + $197 = (($196) + -1)|0; + $198 = (($37) + (($197*12)|0)|0); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$195>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$195+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$195+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$198>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$198+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$198+8>>2]|0; + _VectorSubtract($6,$$byval_copy102,$$byval_copy103); + $199 = HEAP32[$83>>2]|0; + $200 = (($199) + -1)|0; + $201 = (($37) + (($200*12)|0)|0); + $202 = HEAP32[$vararg_buffer11>>2]|0; + $203 = (($202) + -1)|0; + $204 = (($37) + (($203*12)|0)|0); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$201>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$201+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$201+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$204>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$204+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$204+8>>2]|0; + _VectorSubtract($7,$$byval_copy102,$$byval_copy103); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$6+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$7+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy102,$$byval_copy103); + _VectorNormalize($5); + $205 = HEAP32[$5>>2]|0; + $206 = (($75) + ($$0350$ph<<2)|0); + HEAP32[$206>>2] = $205; + $207 = HEAP32[$86>>2]|0; + $208 = (($$0350$ph) + 1)|0; + $209 = (($75) + ($208<<2)|0); + HEAP32[$209>>2] = $207; + $210 = HEAP32[$87>>2]|0; + $211 = (($$0350$ph) + 2)|0; + $212 = (($75) + ($211<<2)|0); + HEAP32[$212>>2] = $210; + $213 = (($$0350$ph) + 3)|0; + $214 = HEAP32[$5>>2]|0; + $215 = (($75) + ($213<<2)|0); + HEAP32[$215>>2] = $214; + $216 = HEAP32[$86>>2]|0; + $217 = (($$0350$ph) + 4)|0; + $218 = (($75) + ($217<<2)|0); + HEAP32[$218>>2] = $216; + $219 = HEAP32[$87>>2]|0; + $220 = (($$0350$ph) + 5)|0; + $221 = (($75) + ($220<<2)|0); + HEAP32[$221>>2] = $219; + $222 = (($$0350$ph) + 6)|0; + $223 = HEAP32[$5>>2]|0; + $224 = (($75) + ($222<<2)|0); + HEAP32[$224>>2] = $223; + $225 = HEAP32[$86>>2]|0; + $226 = (($$0350$ph) + 7)|0; + $227 = (($75) + ($226<<2)|0); + HEAP32[$227>>2] = $225; + $228 = HEAP32[$87>>2]|0; + $229 = (($$0350$ph) + 8)|0; + $230 = (($75) + ($229<<2)|0); + HEAP32[$230>>2] = $228; + } + $$1 = (($$0350$ph) + 9)|0; + if ($41) { + break; + } else { + $$0350$ph = $$1;$$0352$ph = $151; + } + } + $231 = HEAP32[$vararg_buffer7>>2]|0; + $232 = (($231) + -1)|0; + $233 = (($$0356) + ($232<<3)|0); + $234 = HEAP32[$233>>2]|0; + $235 = (($74) + ($$0351$ph$ph<<2)|0); + HEAP32[$235>>2] = $234; + $236 = (((($$0356) + ($232<<3)|0)) + 4|0); + $237 = +HEAPF32[$236>>2]; + $238 = 1.0 - $237; + $239 = $$0351$ph$ph | 1; + $240 = (($74) + ($239<<2)|0); + HEAPF32[$240>>2] = $238; + $241 = (($$0351$ph$ph) + 2)|0; + $242 = HEAP32[$102>>2]|0; + $243 = (($242) + -1)|0; + $244 = (($$0356) + ($243<<3)|0); + $245 = HEAP32[$244>>2]|0; + $246 = (($74) + ($241<<2)|0); + HEAP32[$246>>2] = $245; + $247 = (((($$0356) + ($243<<3)|0)) + 4|0); + $248 = +HEAPF32[$247>>2]; + $249 = 1.0 - $248; + $250 = (($$0351$ph$ph) + 3)|0; + $251 = (($74) + ($250<<2)|0); + HEAPF32[$251>>2] = $249; + $252 = (($$0351$ph$ph) + 4)|0; + $253 = HEAP32[$103>>2]|0; + $254 = (($253) + -1)|0; + $255 = (($$0356) + ($254<<3)|0); + $256 = HEAP32[$255>>2]|0; + $257 = (($74) + ($252<<2)|0); + HEAP32[$257>>2] = $256; + $258 = (((($$0356) + ($254<<3)|0)) + 4|0); + $259 = +HEAPF32[$258>>2]; + $260 = 1.0 - $259; + $261 = (($$0351$ph$ph) + 5)|0; + $262 = (($74) + ($261<<2)|0); + HEAPF32[$262>>2] = $260; + $263 = (($$0351$ph$ph) + 6)|0; + $$0350$ph$ph = $$1;$$0351$ph$ph = $263;$$0352$ph$ph = $151; + } + (_fclose($15)|0); + $264 = ($$0345$ph372$lcssa389|0)==(0); + if ($264) { + $265 = ($72|0)>(0); + if ($265) { + $368 = ($$0346$ph$lcssa*24)|0; + _memset(($74|0),0,($368|0))|0; + $$sroa$64$0 = 0; + } else { + $$sroa$64$0 = 0; + } + } else { + $266 = (_malloc($70)|0); + $267 = ($69|0)>(0); + if ($267) { + $268 = ((($5)) + 4|0); + $269 = ((($5)) + 8|0); + $270 = ((($8)) + 4|0); + $271 = ((($8)) + 8|0); + $272 = ((($9)) + 4|0); + $273 = ((($9)) + 8|0); + $274 = ((($12)) + 4|0); + $275 = ((($10)) + 4|0); + $276 = ((($12)) + 8|0); + $277 = ((($10)) + 8|0); + $278 = ((($13)) + 4|0); + $279 = ((($11)) + 4|0); + $280 = ((($13)) + 8|0); + $281 = ((($11)) + 8|0); + $282 = ((($14)) + 4|0); + $283 = ((($14)) + 8|0); + $$0347392 = 0;$$0348391 = 0; + while(1) { + $284 = (($71) + ($$0348391<<2)|0); + $285 = HEAP32[$284>>2]|0; + HEAP32[$5>>2] = $285; + $286 = (($$0348391) + 1)|0; + $287 = (($71) + ($286<<2)|0); + $288 = HEAP32[$287>>2]|0; + HEAP32[$268>>2] = $288; + $289 = (($$0348391) + 2)|0; + $290 = (($71) + ($289<<2)|0); + $291 = HEAP32[$290>>2]|0; + HEAP32[$269>>2] = $291; + $292 = (($$0348391) + 3)|0; + $293 = (($71) + ($292<<2)|0); + $294 = HEAP32[$293>>2]|0; + HEAP32[$8>>2] = $294; + $295 = (($$0348391) + 4)|0; + $296 = (($71) + ($295<<2)|0); + $297 = HEAP32[$296>>2]|0; + HEAP32[$270>>2] = $297; + $298 = (($$0348391) + 5)|0; + $299 = (($71) + ($298<<2)|0); + $300 = HEAP32[$299>>2]|0; + HEAP32[$271>>2] = $300; + $301 = (($$0348391) + 6)|0; + $302 = (($71) + ($301<<2)|0); + $303 = HEAP32[$302>>2]|0; + HEAP32[$9>>2] = $303; + $304 = (($$0348391) + 7)|0; + $305 = (($71) + ($304<<2)|0); + $306 = HEAP32[$305>>2]|0; + HEAP32[$272>>2] = $306; + $307 = (($$0348391) + 8)|0; + $308 = (($71) + ($307<<2)|0); + $309 = HEAP32[$308>>2]|0; + HEAP32[$273>>2] = $309; + $310 = (($74) + ($$0347392<<2)|0); + $311 = +HEAPF32[$310>>2]; + $312 = $$0347392 | 1; + $313 = (($74) + ($312<<2)|0); + $314 = +HEAPF32[$313>>2]; + $315 = (($$0347392) + 2)|0; + $316 = (($74) + ($315<<2)|0); + $317 = +HEAPF32[$316>>2]; + $318 = (($$0347392) + 3)|0; + $319 = (($74) + ($318<<2)|0); + $320 = +HEAPF32[$319>>2]; + $321 = (($$0347392) + 4)|0; + $322 = (($74) + ($321<<2)|0); + $323 = +HEAPF32[$322>>2]; + $324 = (($$0347392) + 5)|0; + $325 = (($74) + ($324<<2)|0); + $326 = +HEAPF32[$325>>2]; + ;HEAP32[$$byval_copy102>>2]=HEAP32[$8>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$8+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$5+8>>2]|0; + _VectorSubtract($10,$$byval_copy102,$$byval_copy103); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$9+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$5+8>>2]|0; + _VectorSubtract($11,$$byval_copy102,$$byval_copy103); + $327 = $317 - $311; + $328 = $320 - $314; + $329 = $323 - $311; + $330 = $326 - $314; + $331 = $327 * $330; + $332 = $328 * $329; + $333 = $331 - $332; + $334 = 1.0 / $333; + $335 = +HEAPF32[$10>>2]; + $336 = $330 * $335; + HEAPF32[$12>>2] = $336; + $337 = +HEAPF32[$275>>2]; + $338 = $330 * $337; + HEAPF32[$274>>2] = $338; + $339 = +HEAPF32[$277>>2]; + $340 = $330 * $339; + HEAPF32[$276>>2] = $340; + $341 = +HEAPF32[$11>>2]; + $342 = $328 * $341; + HEAPF32[$13>>2] = $342; + $343 = +HEAPF32[$279>>2]; + $344 = $328 * $343; + HEAPF32[$278>>2] = $344; + $345 = +HEAPF32[$281>>2]; + $346 = $328 * $345; + HEAPF32[$280>>2] = $346; + ;HEAP32[$$byval_copy102>>2]=HEAP32[$12>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$12+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$13>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$13+8>>2]|0; + _VectorSubtract($14,$$byval_copy102,$$byval_copy103); + _VectorScale($14,$334); + $347 = HEAP32[$14>>2]|0; + $348 = (($266) + ($$0348391<<2)|0); + HEAP32[$348>>2] = $347; + $349 = HEAP32[$282>>2]|0; + $350 = (($266) + ($286<<2)|0); + HEAP32[$350>>2] = $349; + $351 = HEAP32[$283>>2]|0; + $352 = (($266) + ($289<<2)|0); + HEAP32[$352>>2] = $351; + $353 = HEAP32[$14>>2]|0; + $354 = (($266) + ($292<<2)|0); + HEAP32[$354>>2] = $353; + $355 = HEAP32[$282>>2]|0; + $356 = (($266) + ($295<<2)|0); + HEAP32[$356>>2] = $355; + $357 = HEAP32[$283>>2]|0; + $358 = (($266) + ($298<<2)|0); + HEAP32[$358>>2] = $357; + $359 = HEAP32[$14>>2]|0; + $360 = (($266) + ($301<<2)|0); + HEAP32[$360>>2] = $359; + $361 = HEAP32[$282>>2]|0; + $362 = (($266) + ($304<<2)|0); + HEAP32[$362>>2] = $361; + $363 = HEAP32[$283>>2]|0; + $364 = (($266) + ($307<<2)|0); + HEAP32[$364>>2] = $363; + $365 = (($$0348391) + 9)|0; + $366 = (($$0347392) + 6)|0; + $367 = ($365|0)<($69|0); + if ($367) { + $$0347392 = $366;$$0348391 = $365; + } else { + $$sroa$64$0 = $266; + break; + } + } + } else { + $$sroa$64$0 = $266; + } + } + _free($37); + _free($369); + _free($370); + HEAP32[$vararg_buffer90>>2] = $1; + _TraceLog(0,12333,$vararg_buffer90); + HEAP32[$0>>2] = $68; + $$sroa$12$0$$sroa_idx244 = ((($0)) + 4|0); + HEAP32[$$sroa$12$0$$sroa_idx244>>2] = 0; + $$sroa$12247$0$$sroa_idx249 = ((($0)) + 8|0); + HEAP32[$$sroa$12247$0$$sroa_idx249>>2] = $71; + $$sroa$31$0$$sroa_idx270 = ((($0)) + 12|0); + HEAP32[$$sroa$31$0$$sroa_idx270>>2] = $74; + $$sroa$45$0$$sroa_idx286 = ((($0)) + 16|0); + HEAP32[$$sroa$45$0$$sroa_idx286>>2] = 0; + $$sroa$45289$0$$sroa_idx291 = ((($0)) + 20|0); + HEAP32[$$sroa$45289$0$$sroa_idx291>>2] = $75; + $$sroa$64$0$$sroa_idx312 = ((($0)) + 24|0); + HEAP32[$$sroa$64$0$$sroa_idx312>>2] = $$sroa$64$0; + $$sroa$74$0$$sroa_idx324 = ((($0)) + 28|0); + HEAP32[$$sroa$74$0$$sroa_idx324>>2] = 0; + $$sroa$75$0$$sroa_idx328 = ((($0)) + 32|0); + dest=$$sroa$75$0$$sroa_idx328; src=$$sroa$75; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadModel($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(464|0); + $2 = sp + 200|0; + $3 = sp + 136|0; + $4 = sp; + _memset(($2|0),0,264)|0; + _LoadMesh($2,$1); + $5 = ((($2)) + 68|0); + _MatrixIdentity($3); + dest=$5; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = ((($2)) + 132|0); + _LoadDefaultMaterial($4); + _memcpy(($6|0),($4|0),132)|0; + _memcpy(($0|0),($2|0),264)|0; + STACKTOP = sp;return; +} +function _LoadDefaultMaterial($0) { + $0 = $0|0; + var $$sroa$09 = 0, $$sroa$09$56$sroa_idx = 0, $$sroa$18$0$$sroa_idx15 = 0, $$sroa$6$0$$sroa_idx = 0, $1 = 0, $2 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $$sroa$09 = sp; + $1 = sp + 136|0; + $2 = sp + 116|0; + dest=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultShader($1); + dest=$$sroa$09; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultTexture($2); + $$sroa$09$56$sroa_idx = ((($$sroa$09)) + 56|0); + ;HEAP32[$$sroa$09$56$sroa_idx>>2]=HEAP32[$2>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+16>>2]=HEAP32[$2+16>>2]|0; + dest=$0; src=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $$sroa$6$0$$sroa_idx = ((($0)) + 116|0); + $$sroa$18$0$$sroa_idx15 = ((($0)) + 128|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=4294967295|0; + HEAPF32[$$sroa$18$0$$sroa_idx15>>2] = 100.0; + STACKTOP = sp;return; +} +function _UnloadMesh($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + _rlglUnloadMesh($0); + return; +} +function _UnloadModel($0) { + $0 = $0|0; + var $$byval_copy = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + _UnloadMesh($0); + $1 = ((($0)) + 132|0); + _memcpy(($$byval_copy|0),($1|0),132)|0; + _UnloadMaterial($$byval_copy); + _TraceLog(0,12377,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadMaterial($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 56|0); + $2 = HEAP32[$1>>2]|0; + _rlDeleteTextures($2); + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + _rlDeleteTextures($4); + $5 = ((($0)) + 96|0); + $6 = HEAP32[$5>>2]|0; + _rlDeleteTextures($6); + return; +} +function _DrawModel($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + $3 = $3|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy4 = sp + 324|0; + $$byval_copy3 = sp + 312|0; + $$byval_copy2 = sp + 300|0; + $$byval_copy1 = sp + 288|0; + $$byval_copy = sp + 24|0; + $4 = sp + 12|0; + $5 = sp; + HEAPF32[$4>>2] = $2; + $6 = ((($4)) + 4|0); + HEAPF32[$6>>2] = $2; + $7 = ((($4)) + 8|0); + HEAPF32[$7>>2] = $2; + ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0; + _memcpy(($$byval_copy|0),($0|0),264)|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$3+3>>0]|0; + _DrawModelEx($$byval_copy,$$byval_copy1,$$byval_copy2,0.0,$$byval_copy3,$$byval_copy4); + STACKTOP = sp;return; +} +function _DrawModelEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$byval_copy5 = 0, $$byval_copy6 = 0, $$byval_copy7 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 592|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(592|0); + $$byval_copy7 = sp + 520|0; + $$byval_copy6 = sp + 388|0; + $$byval_copy5 = sp + 320|0; + $6 = sp + 128|0; + $7 = sp + 64|0; + $8 = sp; + $9 = sp + 256|0; + $10 = sp + 192|0; + $11 = $3 * 0.01745329238474369; + ;HEAP32[$$byval_copy7>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy7+8>>2]=HEAP32[$2+8>>2]|0; + _MatrixRotate($6,$$byval_copy7,$11); + $12 = +HEAPF32[$4>>2]; + $13 = ((($4)) + 4|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($4)) + 8|0); + $16 = +HEAPF32[$15>>2]; + _MatrixScale($7,$12,$14,$16); + $17 = +HEAPF32[$1>>2]; + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 8|0); + $21 = +HEAPF32[$20>>2]; + _MatrixTranslate($8,$17,$19,$21); + $22 = ((($0)) + 68|0); + dest=$$byval_copy6; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($9,$$byval_copy6,$$byval_copy7); + dest=$$byval_copy6; src=$9; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($10,$$byval_copy6,$$byval_copy7); + dest=$22; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $23 = ((($0)) + 132|0); + $24 = ((($0)) + 248|0); + $25 = HEAPU8[$5>>0]|(HEAPU8[$5+1>>0]<<8)|(HEAPU8[$5+2>>0]<<16)|(HEAPU8[$5+3>>0]<<24); + HEAP32[$24>>2] = $25; + dest=$$byval_copy5; src=$0; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _memcpy(($$byval_copy6|0),($23|0),132)|0; + dest=$$byval_copy7; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlglDrawMesh($$byval_copy5,$$byval_copy6,$$byval_copy7); + STACKTOP = sp;return; +} +function _DrawBoundingBox($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy1 = sp + 24|0; + $$byval_copy = sp + 12|0; + $2 = sp; + $3 = ((($0)) + 12|0); + $4 = +HEAPF32[$3>>2]; + $5 = +HEAPF32[$0>>2]; + $6 = $4 - $5; + $7 = (+Math_abs((+$6))); + $8 = ((($0)) + 16|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 - $11; + $13 = (+Math_abs((+$12))); + $14 = ((($0)) + 20|0); + $15 = +HEAPF32[$14>>2]; + $16 = ((($0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + $18 = $15 - $17; + $19 = (+Math_abs((+$18))); + $20 = +HEAPF32[$0>>2]; + $21 = $7 * 0.5; + $22 = $21 + $20; + HEAPF32[$2>>2] = $22; + $23 = ((($2)) + 4|0); + $24 = +HEAPF32[$10>>2]; + $25 = $13 * 0.5; + $26 = $25 + $24; + HEAPF32[$23>>2] = $26; + $27 = ((($2)) + 8|0); + $28 = +HEAPF32[$16>>2]; + $29 = $19 * 0.5; + $30 = $29 + $28; + HEAPF32[$27>>2] = $30; + ;HEAP32[$$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$2+8>>2]|0; + ;HEAP8[$$byval_copy1>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy1+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy1+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy1+3>>0]=HEAP8[$1+3>>0]|0; + _DrawCubeWires($$byval_copy,$7,$13,$19,$$byval_copy1); + STACKTOP = sp;return; +} +function _CheckCollisionRayBox($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0; + var $29 = 0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0.0, $fmaxf = 0.0, $fmaxf19 = 0.0, $fmaxf20 = 0.0; + var $fmaxf21 = 0.0, $fmaxf23 = 0.0, $fminf = 0.0, $fminf17 = 0.0, $fminf18 = 0.0, $fminf22 = 0.0, $fminf24 = 0.0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$1>>2]; + $3 = +HEAPF32[$0>>2]; + $4 = $2 - $3; + $5 = ((($0)) + 12|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 / $6; + $8 = ((($1)) + 12|0); + $9 = +HEAPF32[$8>>2]; + $10 = $9 - $3; + $11 = $10 / $6; + $12 = ((($1)) + 4|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 - $15; + $17 = ((($0)) + 16|0); + $18 = +HEAPF32[$17>>2]; + $19 = $16 / $18; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $21 - $15; + $23 = $22 / $18; + $24 = ((($1)) + 8|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($0)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $25 - $27; + $29 = ((($0)) + 20|0); + $30 = +HEAPF32[$29>>2]; + $31 = $28 / $30; + $32 = ((($1)) + 20|0); + $33 = +HEAPF32[$32>>2]; + $34 = $33 - $27; + $35 = $34 / $30; + $fmaxf20 = (+_fmaxf($7,$11)); + $fmaxf21 = (+_fmaxf($19,$23)); + $fminf22 = (+_fminf($fmaxf20,$fmaxf21)); + $fmaxf23 = (+_fmaxf($31,$35)); + $fminf24 = (+_fminf($fminf22,$fmaxf23)); + $36 = $fminf24 < 0.0; + if ($36) { + $38 = 0; + $37 = $38&1; + return ($37|0); + } + $fminf = (+_fminf($7,$11)); + $fminf17 = (+_fminf($19,$23)); + $fmaxf = (+_fmaxf($fminf,$fminf17)); + $fminf18 = (+_fminf($31,$35)); + $fmaxf19 = (+_fmaxf($fmaxf,$fminf18)); + $phitmp = !($fmaxf19 > $fminf24); + $38 = $phitmp; + $37 = $38&1; + return ($37|0); +} +function _GetCollisionRayMesh($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$051 = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$sroa$0$0$lcssa = 0, $$sroa$0$050 = 0, $$sroa$0$1 = 0, $$sroa$7$0$$sroa_idx23 = 0, $$sroa$7$0$$sroa_idx26 = 0, $$sroa$7$0$lcssa = 0.0, $$sroa$7$052 = 0.0, $$sroa$7$1 = 0.0, $$sroa$8 = 0, $$sroa$8$0$$sroa_idx = 0, $$sroa$8$0$$sroa_idx31 = 0, $$sroa$8$0$$sroa_idx34 = 0, $10 = 0, $11 = 0, $12 = 0; + var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; + var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 144|0; + $$byval_copy2 = sp + 132|0; + $$byval_copy1 = sp + 120|0; + $$byval_copy = sp + 96|0; + $$sroa$8 = sp; + $3 = sp + 80|0; + $4 = sp + 68|0; + $5 = sp + 56|0; + $6 = sp + 24|0; + ;HEAP32[$$sroa$8>>2]=0|0;HEAP32[$$sroa$8+4>>2]=0|0;HEAP32[$$sroa$8+8>>2]=0|0;HEAP32[$$sroa$8+12>>2]=0|0;HEAP32[$$sroa$8+16>>2]=0|0;HEAP32[$$sroa$8+20>>2]=0|0; + $7 = ((($2)) + 8|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + HEAP32[$0>>2] = 0; + $$sroa$7$0$$sroa_idx23 = ((($0)) + 4|0); + HEAPF32[$$sroa$7$0$$sroa_idx23>>2] = 0.0; + $$sroa$8$0$$sroa_idx = ((($0)) + 8|0); + ;HEAP32[$$sroa$8$0$$sroa_idx>>2]=HEAP32[$$sroa$8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx+4>>2]=HEAP32[$$sroa$8+4>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx+8>>2]=HEAP32[$$sroa$8+8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx+12>>2]=HEAP32[$$sroa$8+12>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx+16>>2]=HEAP32[$$sroa$8+16>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx+20>>2]=HEAP32[$$sroa$8+20>>2]|0; + STACKTOP = sp;return; + } + $10 = HEAP32[$2>>2]|0; + $11 = (($10|0) / 3)&-1; + $12 = ($10|0)>(2); + if ($12) { + $13 = ((($2)) + 32|0); + $14 = ((($6)) + 4|0); + $$sroa$8$0$$sroa_idx31 = ((($6)) + 8|0); + $$051 = 0;$$sroa$0$050 = 0;$$sroa$7$052 = 0.0; + while(1) { + $15 = HEAP32[$7>>2]|0; + $16 = HEAP32[$13>>2]|0; + $17 = ($16|0)==(0|0); + $18 = ($$051*3)|0; + if ($17) { + $35 = (($15) + (($18*12)|0)|0); + ;HEAP32[$3>>2]=HEAP32[$35>>2]|0;HEAP32[$3+4>>2]=HEAP32[$35+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$35+8>>2]|0; + $36 = (($18) + 1)|0; + $37 = (($15) + (($36*12)|0)|0); + ;HEAP32[$4>>2]=HEAP32[$37>>2]|0;HEAP32[$4+4>>2]=HEAP32[$37+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[$37+8>>2]|0; + $38 = (($18) + 2)|0; + $39 = (($15) + (($38*12)|0)|0); + ;HEAP32[$5>>2]=HEAP32[$39>>2]|0;HEAP32[$5+4>>2]=HEAP32[$39+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$39+8>>2]|0; + } else { + $19 = (($16) + ($18<<1)|0); + $20 = HEAP16[$19>>1]|0; + $21 = $20&65535; + $22 = (($15) + (($21*12)|0)|0); + ;HEAP32[$3>>2]=HEAP32[$22>>2]|0;HEAP32[$3+4>>2]=HEAP32[$22+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$22+8>>2]|0; + $23 = HEAP32[$13>>2]|0; + $24 = (($18) + 1)|0; + $25 = (($23) + ($24<<1)|0); + $26 = HEAP16[$25>>1]|0; + $27 = $26&65535; + $28 = (($15) + (($27*12)|0)|0); + ;HEAP32[$4>>2]=HEAP32[$28>>2]|0;HEAP32[$4+4>>2]=HEAP32[$28+4>>2]|0;HEAP32[$4+8>>2]=HEAP32[$28+8>>2]|0; + $29 = HEAP32[$13>>2]|0; + $30 = (($18) + 2)|0; + $31 = (($29) + ($30<<1)|0); + $32 = HEAP16[$31>>1]|0; + $33 = $32&65535; + $34 = (($15) + (($33*12)|0)|0); + ;HEAP32[$5>>2]=HEAP32[$34>>2]|0;HEAP32[$5+4>>2]=HEAP32[$34+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$34+8>>2]|0; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$1+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$1+20>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$5+8>>2]|0; + _GetCollisionRayTriangle($6,$$byval_copy,$$byval_copy1,$$byval_copy2,$$byval_copy3); + $40 = HEAP32[$6>>2]|0; + $41 = ($40|0)==(0); + if ($41) { + $$sroa$0$1 = $$sroa$0$050;$$sroa$7$1 = $$sroa$7$052; + } else { + $42 = ($$sroa$0$050|0)==(0); + $43 = +HEAPF32[$14>>2]; + $44 = $$sroa$7$052 > $43; + $or$cond = $42 | $44; + if ($or$cond) { + ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx31>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx31+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx31+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx31+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx31+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx31+20>>2]|0; + $$sroa$0$1 = $40;$$sroa$7$1 = $43; + } else { + $$sroa$0$1 = $$sroa$0$050;$$sroa$7$1 = $$sroa$7$052; + } + } + $45 = (($$051) + 1)|0; + $46 = ($45|0)<($11|0); + if ($46) { + $$051 = $45;$$sroa$0$050 = $$sroa$0$1;$$sroa$7$052 = $$sroa$7$1; + } else { + $$sroa$0$0$lcssa = $$sroa$0$1;$$sroa$7$0$lcssa = $$sroa$7$1; + break; + } + } + } else { + $$sroa$0$0$lcssa = 0;$$sroa$7$0$lcssa = 0.0; + } + HEAP32[$0>>2] = $$sroa$0$0$lcssa; + $$sroa$7$0$$sroa_idx26 = ((($0)) + 4|0); + HEAPF32[$$sroa$7$0$$sroa_idx26>>2] = $$sroa$7$0$lcssa; + $$sroa$8$0$$sroa_idx34 = ((($0)) + 8|0); + ;HEAP32[$$sroa$8$0$$sroa_idx34>>2]=HEAP32[$$sroa$8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx34+4>>2]=HEAP32[$$sroa$8+4>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx34+8>>2]=HEAP32[$$sroa$8+8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx34+12>>2]=HEAP32[$$sroa$8+12>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx34+16>>2]=HEAP32[$$sroa$8+16>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx34+20>>2]=HEAP32[$$sroa$8+20>>2]|0; + STACKTOP = sp;return; +} +function _GetCollisionRayTriangle($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy20 = 0, $$byval_copy21 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0; + var $28 = 0, $29 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond24 = 0; + var $or$cond26 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $$byval_copy21 = sp + 204|0; + $$byval_copy20 = sp + 192|0; + $5 = sp + 96|0; + $6 = sp + 84|0; + $7 = sp + 72|0; + $8 = sp + 60|0; + $9 = sp + 48|0; + $10 = sp + 16|0; + $11 = sp + 180|0; + $12 = sp + 168|0; + $13 = sp + 156|0; + $14 = sp + 144|0; + $15 = sp + 132|0; + $16 = sp + 120|0; + $17 = sp; + $18 = sp + 108|0; + ;HEAP32[$10>>2]=0|0;HEAP32[$10+4>>2]=0|0;HEAP32[$10+8>>2]=0|0;HEAP32[$10+12>>2]=0|0;HEAP32[$10+16>>2]=0|0;HEAP32[$10+20>>2]=0|0;HEAP32[$10+24>>2]=0|0;HEAP32[$10+28>>2]=0|0; + ;HEAP32[$$byval_copy20>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($11,$$byval_copy20,$$byval_copy21); + ;HEAP32[$5>>2]=HEAP32[$11>>2]|0;HEAP32[$5+4>>2]=HEAP32[$11+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$11+8>>2]|0; + ;HEAP32[$$byval_copy20>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($12,$$byval_copy20,$$byval_copy21); + ;HEAP32[$6>>2]=HEAP32[$12>>2]|0;HEAP32[$6+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$12+8>>2]|0; + $19 = ((($1)) + 12|0); + ;HEAP32[$$byval_copy20>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$19+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$12>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$12+8>>2]|0; + _VectorCrossProduct($13,$$byval_copy20,$$byval_copy21); + ;HEAP32[$7>>2]=HEAP32[$13>>2]|0;HEAP32[$7+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$13+8>>2]|0; + ;HEAP32[$$byval_copy20>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$13>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$13+8>>2]|0; + $20 = (+_VectorDotProduct($$byval_copy20,$$byval_copy21)); + $21 = $20; + $22 = $21 > -9.9999999999999995E-7; + $23 = $21 < 9.9999999999999995E-7; + $or$cond24 = $22 & $23; + if ($or$cond24) { + ;HEAP32[$0>>2]=HEAP32[$10>>2]|0;HEAP32[$0+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$10+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$10+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$10+28>>2]|0; + STACKTOP = sp;return; + } + $24 = 1.0 / $20; + ;HEAP32[$$byval_copy20>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($14,$$byval_copy20,$$byval_copy21); + ;HEAP32[$9>>2]=HEAP32[$14>>2]|0;HEAP32[$9+4>>2]=HEAP32[$14+4>>2]|0;HEAP32[$9+8>>2]=HEAP32[$14+8>>2]|0; + ;HEAP32[$$byval_copy20>>2]=HEAP32[$14>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$14+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$14+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$7+8>>2]|0; + $25 = (+_VectorDotProduct($$byval_copy20,$$byval_copy21)); + $26 = $24 * $25; + $27 = $26 < 0.0; + $28 = $26 > 1.0; + $or$cond = $27 | $28; + if ($or$cond) { + ;HEAP32[$0>>2]=HEAP32[$10>>2]|0;HEAP32[$0+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$10+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$10+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$10+28>>2]|0; + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy20>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$9+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($15,$$byval_copy20,$$byval_copy21); + ;HEAP32[$8>>2]=HEAP32[$15>>2]|0;HEAP32[$8+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$8+8>>2]=HEAP32[$15+8>>2]|0; + ;HEAP32[$$byval_copy20>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$19+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$15>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$15+8>>2]|0; + $29 = (+_VectorDotProduct($$byval_copy20,$$byval_copy21)); + $30 = $24 * $29; + $31 = $30 < 0.0; + $32 = $26 + $30; + $33 = $32 > 1.0; + $or$cond26 = $31 | $33; + if ($or$cond26) { + ;HEAP32[$0>>2]=HEAP32[$10>>2]|0;HEAP32[$0+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$10+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$10+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$10+28>>2]|0; + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy20>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$6+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$8>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$8+8>>2]|0; + $34 = (+_VectorDotProduct($$byval_copy20,$$byval_copy21)); + $35 = $24 * $34; + $36 = $35; + $37 = $36 > 9.9999999999999995E-7; + if ($37) { + $38 = ((($10)) + 4|0); + HEAPF32[$38>>2] = $35; + HEAP32[$10>>2] = 1; + $39 = ((($10)) + 20|0); + ;HEAP32[$$byval_copy20>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$6+8>>2]|0; + _VectorCrossProduct($16,$$byval_copy20,$$byval_copy21); + ;HEAP32[$39>>2]=HEAP32[$16>>2]|0;HEAP32[$39+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$39+8>>2]=HEAP32[$16+8>>2]|0; + _VectorNormalize($39); + ;HEAP32[$17>>2]=HEAP32[$19>>2]|0;HEAP32[$17+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$17+8>>2]=HEAP32[$19+8>>2]|0; + _VectorScale($17,$35); + $40 = ((($10)) + 8|0); + ;HEAP32[$$byval_copy20>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy21>>2]=HEAP32[$17>>2]|0;HEAP32[$$byval_copy21+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[$$byval_copy21+8>>2]=HEAP32[$17+8>>2]|0; + _VectorAdd($18,$$byval_copy20,$$byval_copy21); + ;HEAP32[$40>>2]=HEAP32[$18>>2]|0;HEAP32[$40+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$40+8>>2]=HEAP32[$18+8>>2]|0; + } + ;HEAP32[$0>>2]=HEAP32[$10>>2]|0;HEAP32[$0+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$10+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$10+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$10+28>>2]|0; + STACKTOP = sp;return; +} +function _GetCollisionRayGround($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $$sroa$06$1 = 0, $$sroa$5$0$$sroa_idx8 = 0, $$sroa$5$1 = 0.0, $$sroa$6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$7$0$$sroa_idx13 = 0, $$sroa$8$0$$sroa_idx15 = 0, $$sroa$8$1 = 0.0, $$sroa$9$0$$sroa_idx17 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0, $3 = 0, $4 = 0; + var $5 = 0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 48|0; + $$byval_copy = sp + 36|0; + $$sroa$6 = sp; + $3 = sp + 24|0; + $4 = sp + 12|0; + ;HEAP32[$$sroa$6>>2]=0|0;HEAP32[$$sroa$6+4>>2]=0|0;HEAP32[$$sroa$6+8>>2]=0|0; + $5 = ((($1)) + 12|0); + $6 = ((($1)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = (+Math_abs((+$7))); + $9 = $8; + $10 = $9 > 9.9999999999999995E-7; + if ($10) { + $11 = ((($1)) + 4|0); + $12 = +HEAPF32[$11>>2]; + $13 = $12 - $2; + $14 = -$7; + $15 = $13 / $14; + $16 = !($15 >= 0.0); + if ($16) { + $$sroa$06$1 = 0;$$sroa$5$1 = 0.0;$$sroa$8$1 = 0.0; + } else { + ;HEAP32[$3>>2]=HEAP32[$5>>2]|0;HEAP32[$3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$5+8>>2]|0; + _VectorScale($3,$15); + ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0; + _VectorAdd($4,$$byval_copy,$$byval_copy1); + ;HEAP32[$$sroa$6>>2]=HEAP32[$4>>2]|0;HEAP32[$$sroa$6+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$sroa$6+8>>2]=HEAP32[$4+8>>2]|0; + $$sroa$06$1 = 1;$$sroa$5$1 = $15;$$sroa$8$1 = 1.0; + } + } else { + $$sroa$06$1 = 0;$$sroa$5$1 = 0.0;$$sroa$8$1 = 0.0; + } + HEAP32[$0>>2] = $$sroa$06$1; + $$sroa$5$0$$sroa_idx8 = ((($0)) + 4|0); + HEAPF32[$$sroa$5$0$$sroa_idx8>>2] = $$sroa$5$1; + $$sroa$6$0$$sroa_idx = ((($0)) + 8|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=HEAP32[$$sroa$6>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=HEAP32[$$sroa$6+4>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=HEAP32[$$sroa$6+8>>2]|0; + $$sroa$7$0$$sroa_idx13 = ((($0)) + 20|0); + HEAPF32[$$sroa$7$0$$sroa_idx13>>2] = 0.0; + $$sroa$8$0$$sroa_idx15 = ((($0)) + 24|0); + HEAPF32[$$sroa$8$0$$sroa_idx15>>2] = $$sroa$8$1; + $$sroa$9$0$$sroa_idx17 = ((($0)) + 28|0); + HEAPF32[$$sroa$9$0$$sroa_idx17>>2] = 0.0; + STACKTOP = sp;return; +} +function _CalculateBoundingBox($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$020 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$sroa$2$0$$sroa_idx11 = 0, $$sroa$214$0$$sroa_idx15 = 0, $$sroa$3$0$$sroa_idx12 = 0, $$sroa$316$0$$sroa_idx17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy2 = sp + 72|0; + $2 = sp + 60|0; + $3 = sp + 24|0; + $4 = sp + 48|0; + $5 = sp + 36|0; + $6 = sp + 12|0; + $7 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0; + ;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0; + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)==(0|0); + if (!($10)) { + $11 = HEAP32[$9>>2]|0; + $12 = ((($9)) + 4|0); + $13 = HEAP32[$12>>2]|0; + $14 = ((($9)) + 8|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$2>>2] = $11; + $$sroa$214$0$$sroa_idx15 = ((($2)) + 4|0); + HEAP32[$$sroa$214$0$$sroa_idx15>>2] = $13; + $$sroa$316$0$$sroa_idx17 = ((($2)) + 8|0); + HEAP32[$$sroa$316$0$$sroa_idx17>>2] = $15; + $16 = HEAP32[$8>>2]|0; + $17 = HEAP32[$16>>2]|0; + $18 = ((($16)) + 4|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($16)) + 8|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$3>>2] = $17; + $$sroa$2$0$$sroa_idx11 = ((($3)) + 4|0); + HEAP32[$$sroa$2$0$$sroa_idx11>>2] = $19; + $$sroa$3$0$$sroa_idx12 = ((($3)) + 8|0); + HEAP32[$$sroa$3$0$$sroa_idx12>>2] = $21; + $22 = HEAP32[$1>>2]|0; + $23 = ($22|0)>(1); + if ($23) { + $24 = ((($4)) + 4|0); + $25 = ((($4)) + 8|0); + $26 = ((($6)) + 4|0); + $27 = ((($6)) + 8|0); + $28 = HEAP32[$1>>2]|0; + $$020 = 1; + while(1) { + $29 = ($$020*3)|0; + $30 = (($16) + ($29<<2)|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[$4>>2] = $31; + $32 = (($29) + 1)|0; + $33 = (($16) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[$24>>2] = $34; + $35 = (($29) + 2)|0; + $36 = (($16) + ($35<<2)|0); + $37 = HEAP32[$36>>2]|0; + HEAP32[$25>>2] = $37; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$2+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$4+8>>2]|0; + _VectorMin($5,$$byval_copy2,$$byval_copy3); + ;HEAP32[$2>>2]=HEAP32[$5>>2]|0;HEAP32[$2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$5+8>>2]|0; + $38 = HEAP32[$8>>2]|0; + $39 = (($38) + ($29<<2)|0); + $40 = HEAP32[$39>>2]|0; + HEAP32[$6>>2] = $40; + $41 = (($38) + ($32<<2)|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$26>>2] = $42; + $43 = HEAP32[$8>>2]|0; + $44 = (($43) + ($35<<2)|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$27>>2] = $45; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0; + _VectorMax($7,$$byval_copy2,$$byval_copy3); + ;HEAP32[$3>>2]=HEAP32[$7>>2]|0;HEAP32[$3+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$7+8>>2]|0; + $46 = (($$020) + 1)|0; + $47 = ($46|0)<($28|0); + if ($47) { + $$020 = $46; + } else { + break; + } + } + } + } + ;HEAP32[$$byval_copy3>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$2+8>>2]|0; + $48 = ((($$byval_copy3)) + 12|0); + ;HEAP32[$48>>2]=HEAP32[$3>>2]|0;HEAP32[$48+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$48+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$0>>2]=HEAP32[$$byval_copy3>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$byval_copy3+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$byval_copy3+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$byval_copy3+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$byval_copy3+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$$byval_copy3+20>>2]|0; + STACKTOP = sp;return; +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,12435)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,12439)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,12443)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,12447)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,12453)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,12491)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 12510; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,12523)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 12544; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,12559)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 12574; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,12589)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 12604; + } + } else { + HEAP32[$3>>2] = 12475; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,12619)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,12633)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 3; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,12645)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 7; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,12659)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 8; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,12671)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 9; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,12685)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 10; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,12699)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 11; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,12716)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,12739)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,12765)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,12778)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,12794)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,12807)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 12; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,12821)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,12841)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,12861)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,12878)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,12895)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 4; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,12907)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 13; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,12920)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 14; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,12936)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,12959)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,12972)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,12988)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 5; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,12999)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 15; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,13018)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 16; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,13040)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 17; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,13059)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,13088)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 6; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,13105)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,13120)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,13135)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,13156)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,13176)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,13196)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,13222)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,13241)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,13253)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,13265)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,13277)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,13289)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 18; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,13301)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,13313)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,13325)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,13337)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,13350)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,13363)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,13376)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,13389)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,13402)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,13415)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,13428)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,13441)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,13460)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,13479)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,13498)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 19; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,13511)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 20; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,13529)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 21; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,13547)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 22; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,13565)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 23; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,13583)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,13603)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,12544)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 7; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,13621)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,13636)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,13657)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,13672)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,13690)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,13706)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,13725)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,13739)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,13754)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 8; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,12475)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,13765)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,12574)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 24; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,12604)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 25; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,13781)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,13808)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,13822)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,12510)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,13842)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,13860)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 9; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,13872)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,13893)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 26; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,13911)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 27; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,13929)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 28; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,13950)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,13976)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,13999)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,14037)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 10; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,14053)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,14068)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,14091)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,14104)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 29; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,14118)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 30; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,14132)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,14152)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,14172)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,14188)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,14206)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,14222)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,14237)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,14259)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 31; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,14277)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 32; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,14298)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,14316)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,14329)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,14344)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,14358)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,14368)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,14378)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,14400)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,14426)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,14453)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,14466)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,14481)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,14496)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,14520)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,14531)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 33; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,14553)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,14575)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,14599)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,14608)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,14616)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,14629)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,14643)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,14655)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,14664)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,14674)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,14686)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,14697)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,14705)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,14717)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,14732)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,14744)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,14758)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 11; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,14783)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,14800)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,14816)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,14832)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 12; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,14844)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 34; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,14856)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 35; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,14880)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,14893)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,14907)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 36; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,14929)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 37; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,14936)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,14952)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,14969)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,14986)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,15002)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,15018)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,15035)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,15049)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,15061)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,15072)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,15085)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,15095)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,15112)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,15124)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,15146)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,15166)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,15179)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,15201)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,15221)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,15238)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,15255)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,15275)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 38; + break; + } + } else { + HEAP32[$1>>2] = 6; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (21096|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3896|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + HEAP32[$3>>2] = $1; + $4 = ((($3)) + 4|0); + $5 = ((($0)) + 48|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($6|0)!=(0); + $8 = $7&1; + $9 = (($2) - ($8))|0; + HEAP32[$4>>2] = $9; + $10 = ((($3)) + 8|0); + $11 = ((($0)) + 44|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($3)) + 12|0); + HEAP32[$13>>2] = $6; + $14 = ((($0)) + 60|0); + $15 = HEAP32[$14>>2]|0; + $16 = $3; + HEAP32[$vararg_buffer>>2] = $15; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $16; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $17 = (___syscall145(145,($vararg_buffer|0))|0); + $18 = (___syscall_ret($17)|0); + $19 = ($18|0)<(1); + if ($19) { + $20 = $18 & 48; + $21 = $20 ^ 16; + $22 = HEAP32[$0>>2]|0; + $23 = $22 | $21; + HEAP32[$0>>2] = $23; + $$0 = $18; + } else { + $24 = HEAP32[$4>>2]|0; + $25 = ($18>>>0)>($24>>>0); + if ($25) { + $26 = (($18) - ($24))|0; + $27 = HEAP32[$11>>2]|0; + $28 = ((($0)) + 4|0); + HEAP32[$28>>2] = $27; + $29 = (($27) + ($26)|0); + $30 = ((($0)) + 8|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$5>>2]|0; + $32 = ($31|0)==(0); + if ($32) { + $$0 = $2; + } else { + $33 = ((($27)) + 1|0); + HEAP32[$28>>2] = $33; + $34 = HEAP8[$27>>0]|0; + $35 = (($2) + -1)|0; + $36 = (($1) + ($35)|0); + HEAP8[$36>>0] = $34; + $$0 = $2; + } + } else { + $$0 = $18; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 10; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function ___shlim($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 104|0); + HEAP32[$2>>2] = $1; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $4; + $8 = $6; + $9 = (($7) - ($8))|0; + $10 = ((($0)) + 108|0); + HEAP32[$10>>2] = $9; + $11 = ($1|0)!=(0); + $12 = ($9|0)>($1|0); + $or$cond = $11 & $12; + $13 = (($6) + ($1)|0); + $$sink = $or$cond ? $13 : $4; + $14 = ((($0)) + 100|0); + HEAP32[$14>>2] = $$sink; + return; +} +function ___intscan($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0154222 = 0, $$0157 = 0, $$0157$ = 0, $$0159 = 0, $$1155192 = 0, $$1158 = 0, $$1160 = 0, $$1160169 = 0, $$1165 = 0, $$1165167 = 0, $$1165168 = 0, $$166 = 0, $$2156210 = 0, $$2161$be = 0, $$2161$lcssa = 0, $$3162$be = 0, $$3162215 = 0, $$4163$be = 0, $$4163$lcssa = 0, $$5$be = 0; + var $$6$be = 0, $$6$lcssa = 0, $$7$be = 0, $$7198 = 0, $$8 = 0, $$9$be = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; + var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0; + var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0; + var $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0; + var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0; + var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0; + var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0; + var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0; + var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0; + var $294 = 0, $295 = 0, $296 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond12 = 0; + var $or$cond187 = 0, $or$cond5 = 0, $or$cond7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($1>>>0)>(36); + L1: do { + if ($5) { + $8 = (___errno_location()|0); + HEAP32[$8>>2] = 22; + $289 = 0;$290 = 0; + } else { + $6 = ((($0)) + 4|0); + $7 = ((($0)) + 100|0); + while(1) { + $9 = HEAP32[$6>>2]|0; + $10 = HEAP32[$7>>2]|0; + $11 = ($9>>>0)<($10>>>0); + if ($11) { + $12 = ((($9)) + 1|0); + HEAP32[$6>>2] = $12; + $13 = HEAP8[$9>>0]|0; + $14 = $13&255; + $16 = $14; + } else { + $15 = (___shgetc($0)|0); + $16 = $15; + } + $17 = (_isspace($16)|0); + $18 = ($17|0)==(0); + if ($18) { + break; + } + } + L11: do { + switch ($16|0) { + case 43: case 45: { + $19 = ($16|0)==(45); + $20 = $19 << 31 >> 31; + $21 = HEAP32[$6>>2]|0; + $22 = HEAP32[$7>>2]|0; + $23 = ($21>>>0)<($22>>>0); + if ($23) { + $24 = ((($21)) + 1|0); + HEAP32[$6>>2] = $24; + $25 = HEAP8[$21>>0]|0; + $26 = $25&255; + $$0157 = $20;$$0159 = $26; + break L11; + } else { + $27 = (___shgetc($0)|0); + $$0157 = $20;$$0159 = $27; + break L11; + } + break; + } + default: { + $$0157 = 0;$$0159 = $16; + } + } + } while(0); + $28 = ($1|0)==(0); + $29 = $1 | 16; + $30 = ($29|0)==(16); + $31 = ($$0159|0)==(48); + $or$cond5 = $30 & $31; + do { + if ($or$cond5) { + $32 = HEAP32[$6>>2]|0; + $33 = HEAP32[$7>>2]|0; + $34 = ($32>>>0)<($33>>>0); + if ($34) { + $35 = ((($32)) + 1|0); + HEAP32[$6>>2] = $35; + $36 = HEAP8[$32>>0]|0; + $37 = $36&255; + $40 = $37; + } else { + $38 = (___shgetc($0)|0); + $40 = $38; + } + $39 = $40 | 32; + $41 = ($39|0)==(120); + if (!($41)) { + if ($28) { + $$1160169 = $40;$$1165168 = 8; + label = 46; + break; + } else { + $$1160 = $40;$$1165 = $1; + label = 32; + break; + } + } + $42 = HEAP32[$6>>2]|0; + $43 = HEAP32[$7>>2]|0; + $44 = ($42>>>0)<($43>>>0); + if ($44) { + $45 = ((($42)) + 1|0); + HEAP32[$6>>2] = $45; + $46 = HEAP8[$42>>0]|0; + $47 = $46&255; + $50 = $47; + } else { + $48 = (___shgetc($0)|0); + $50 = $48; + } + $49 = ((15392) + ($50)|0); + $51 = HEAP8[$49>>0]|0; + $52 = ($51&255)>(15); + if ($52) { + $53 = HEAP32[$7>>2]|0; + $54 = ($53|0)!=(0|0); + if ($54) { + $55 = HEAP32[$6>>2]|0; + $56 = ((($55)) + -1|0); + HEAP32[$6>>2] = $56; + } + $57 = ($2|0)==(0); + if ($57) { + ___shlim($0,0); + $289 = 0;$290 = 0; + break L1; + } + if (!($54)) { + $289 = 0;$290 = 0; + break L1; + } + $58 = HEAP32[$6>>2]|0; + $59 = ((($58)) + -1|0); + HEAP32[$6>>2] = $59; + $289 = 0;$290 = 0; + break L1; + } else { + $$1160169 = $50;$$1165168 = 16; + label = 46; + } + } else { + $$166 = $28 ? 10 : $1; + $60 = ((15392) + ($$0159)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $63 = ($62>>>0)<($$166>>>0); + if ($63) { + $$1160 = $$0159;$$1165 = $$166; + label = 32; + } else { + $64 = HEAP32[$7>>2]|0; + $65 = ($64|0)==(0|0); + if (!($65)) { + $66 = HEAP32[$6>>2]|0; + $67 = ((($66)) + -1|0); + HEAP32[$6>>2] = $67; + } + ___shlim($0,0); + $68 = (___errno_location()|0); + HEAP32[$68>>2] = 22; + $289 = 0;$290 = 0; + break L1; + } + } + } while(0); + L43: do { + if ((label|0) == 32) { + $69 = ($$1165|0)==(10); + if ($69) { + $70 = (($$1160) + -48)|0; + $71 = ($70>>>0)<(10); + if ($71) { + $$0154222 = 0;$74 = $70; + while(1) { + $72 = ($$0154222*10)|0; + $73 = (($72) + ($74))|0; + $75 = HEAP32[$6>>2]|0; + $76 = HEAP32[$7>>2]|0; + $77 = ($75>>>0)<($76>>>0); + if ($77) { + $78 = ((($75)) + 1|0); + HEAP32[$6>>2] = $78; + $79 = HEAP8[$75>>0]|0; + $80 = $79&255; + $$2161$be = $80; + } else { + $81 = (___shgetc($0)|0); + $$2161$be = $81; + } + $82 = (($$2161$be) + -48)|0; + $83 = ($82>>>0)<(10); + $84 = ($73>>>0)<(429496729); + $85 = $83 & $84; + if ($85) { + $$0154222 = $73;$74 = $82; + } else { + break; + } + } + $$2161$lcssa = $$2161$be;$291 = $73;$292 = 0; + } else { + $$2161$lcssa = $$1160;$291 = 0;$292 = 0; + } + $86 = (($$2161$lcssa) + -48)|0; + $87 = ($86>>>0)<(10); + if ($87) { + $$3162215 = $$2161$lcssa;$88 = $291;$89 = $292;$93 = $86; + while(1) { + $90 = (___muldi3(($88|0),($89|0),10,0)|0); + $91 = tempRet0; + $92 = ($93|0)<(0); + $94 = $92 << 31 >> 31; + $95 = $93 ^ -1; + $96 = $94 ^ -1; + $97 = ($91>>>0)>($96>>>0); + $98 = ($90>>>0)>($95>>>0); + $99 = ($91|0)==($96|0); + $100 = $99 & $98; + $101 = $97 | $100; + if ($101) { + $$1165167 = 10;$$8 = $$3162215;$293 = $88;$294 = $89; + label = 72; + break L43; + } + $102 = (_i64Add(($90|0),($91|0),($93|0),($94|0))|0); + $103 = tempRet0; + $104 = HEAP32[$6>>2]|0; + $105 = HEAP32[$7>>2]|0; + $106 = ($104>>>0)<($105>>>0); + if ($106) { + $107 = ((($104)) + 1|0); + HEAP32[$6>>2] = $107; + $108 = HEAP8[$104>>0]|0; + $109 = $108&255; + $$3162$be = $109; + } else { + $110 = (___shgetc($0)|0); + $$3162$be = $110; + } + $111 = (($$3162$be) + -48)|0; + $112 = ($111>>>0)<(10); + $113 = ($103>>>0)<(429496729); + $114 = ($102>>>0)<(2576980378); + $115 = ($103|0)==(429496729); + $116 = $115 & $114; + $117 = $113 | $116; + $or$cond7 = $112 & $117; + if ($or$cond7) { + $$3162215 = $$3162$be;$88 = $102;$89 = $103;$93 = $111; + } else { + break; + } + } + $118 = ($111>>>0)>(9); + if ($118) { + $$1158 = $$0157;$263 = $103;$265 = $102; + } else { + $$1165167 = 10;$$8 = $$3162$be;$293 = $102;$294 = $103; + label = 72; + } + } else { + $$1158 = $$0157;$263 = $292;$265 = $291; + } + } else { + $$1160169 = $$1160;$$1165168 = $$1165; + label = 46; + } + } + } while(0); + L63: do { + if ((label|0) == 46) { + $119 = (($$1165168) + -1)|0; + $120 = $119 & $$1165168; + $121 = ($120|0)==(0); + if ($121) { + $126 = ($$1165168*23)|0; + $127 = $126 >>> 5; + $128 = $127 & 7; + $129 = (15648 + ($128)|0); + $130 = HEAP8[$129>>0]|0; + $131 = $130 << 24 >> 24; + $132 = ((15392) + ($$1160169)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $133&255; + $135 = ($134>>>0)<($$1165168>>>0); + if ($135) { + $$1155192 = 0;$138 = $134; + while(1) { + $136 = $$1155192 << $131; + $137 = $138 | $136; + $139 = HEAP32[$6>>2]|0; + $140 = HEAP32[$7>>2]|0; + $141 = ($139>>>0)<($140>>>0); + if ($141) { + $142 = ((($139)) + 1|0); + HEAP32[$6>>2] = $142; + $143 = HEAP8[$139>>0]|0; + $144 = $143&255; + $$4163$be = $144; + } else { + $145 = (___shgetc($0)|0); + $$4163$be = $145; + } + $146 = ((15392) + ($$4163$be)|0); + $147 = HEAP8[$146>>0]|0; + $148 = $147&255; + $149 = ($148>>>0)<($$1165168>>>0); + $150 = ($137>>>0)<(134217728); + $151 = $150 & $149; + if ($151) { + $$1155192 = $137;$138 = $148; + } else { + break; + } + } + $$4163$lcssa = $$4163$be;$155 = $147;$158 = 0;$160 = $137; + } else { + $$4163$lcssa = $$1160169;$155 = $133;$158 = 0;$160 = 0; + } + $152 = (_bitshift64Lshr(-1,-1,($131|0))|0); + $153 = tempRet0; + $154 = $155&255; + $156 = ($154>>>0)>=($$1165168>>>0); + $157 = ($158>>>0)>($153>>>0); + $159 = ($160>>>0)>($152>>>0); + $161 = ($158|0)==($153|0); + $162 = $161 & $159; + $163 = $157 | $162; + $or$cond187 = $156 | $163; + if ($or$cond187) { + $$1165167 = $$1165168;$$8 = $$4163$lcssa;$293 = $160;$294 = $158; + label = 72; + break; + } else { + $164 = $160;$165 = $158;$169 = $155; + } + while(1) { + $166 = (_bitshift64Shl(($164|0),($165|0),($131|0))|0); + $167 = tempRet0; + $168 = $169&255; + $170 = $168 | $166; + $171 = HEAP32[$6>>2]|0; + $172 = HEAP32[$7>>2]|0; + $173 = ($171>>>0)<($172>>>0); + if ($173) { + $174 = ((($171)) + 1|0); + HEAP32[$6>>2] = $174; + $175 = HEAP8[$171>>0]|0; + $176 = $175&255; + $$5$be = $176; + } else { + $177 = (___shgetc($0)|0); + $$5$be = $177; + } + $178 = ((15392) + ($$5$be)|0); + $179 = HEAP8[$178>>0]|0; + $180 = $179&255; + $181 = ($180>>>0)>=($$1165168>>>0); + $182 = ($167>>>0)>($153>>>0); + $183 = ($170>>>0)>($152>>>0); + $184 = ($167|0)==($153|0); + $185 = $184 & $183; + $186 = $182 | $185; + $or$cond = $181 | $186; + if ($or$cond) { + $$1165167 = $$1165168;$$8 = $$5$be;$293 = $170;$294 = $167; + label = 72; + break L63; + } else { + $164 = $170;$165 = $167;$169 = $179; + } + } + } + $122 = ((15392) + ($$1160169)|0); + $123 = HEAP8[$122>>0]|0; + $124 = $123&255; + $125 = ($124>>>0)<($$1165168>>>0); + if ($125) { + $$2156210 = 0;$189 = $124; + while(1) { + $187 = Math_imul($$2156210, $$1165168)|0; + $188 = (($189) + ($187))|0; + $190 = HEAP32[$6>>2]|0; + $191 = HEAP32[$7>>2]|0; + $192 = ($190>>>0)<($191>>>0); + if ($192) { + $193 = ((($190)) + 1|0); + HEAP32[$6>>2] = $193; + $194 = HEAP8[$190>>0]|0; + $195 = $194&255; + $$6$be = $195; + } else { + $196 = (___shgetc($0)|0); + $$6$be = $196; + } + $197 = ((15392) + ($$6$be)|0); + $198 = HEAP8[$197>>0]|0; + $199 = $198&255; + $200 = ($199>>>0)<($$1165168>>>0); + $201 = ($188>>>0)<(119304647); + $202 = $201 & $200; + if ($202) { + $$2156210 = $188;$189 = $199; + } else { + break; + } + } + $$6$lcssa = $$6$be;$204 = $198;$295 = $188;$296 = 0; + } else { + $$6$lcssa = $$1160169;$204 = $123;$295 = 0;$296 = 0; + } + $203 = $204&255; + $205 = ($203>>>0)<($$1165168>>>0); + if ($205) { + $206 = (___udivdi3(-1,-1,($$1165168|0),0)|0); + $207 = tempRet0; + $$7198 = $$6$lcssa;$209 = $296;$211 = $295;$218 = $204; + while(1) { + $208 = ($209>>>0)>($207>>>0); + $210 = ($211>>>0)>($206>>>0); + $212 = ($209|0)==($207|0); + $213 = $212 & $210; + $214 = $208 | $213; + if ($214) { + $$1165167 = $$1165168;$$8 = $$7198;$293 = $211;$294 = $209; + label = 72; + break L63; + } + $215 = (___muldi3(($211|0),($209|0),($$1165168|0),0)|0); + $216 = tempRet0; + $217 = $218&255; + $219 = $217 ^ -1; + $220 = ($216>>>0)>(4294967295); + $221 = ($215>>>0)>($219>>>0); + $222 = ($216|0)==(-1); + $223 = $222 & $221; + $224 = $220 | $223; + if ($224) { + $$1165167 = $$1165168;$$8 = $$7198;$293 = $211;$294 = $209; + label = 72; + break L63; + } + $225 = (_i64Add(($217|0),0,($215|0),($216|0))|0); + $226 = tempRet0; + $227 = HEAP32[$6>>2]|0; + $228 = HEAP32[$7>>2]|0; + $229 = ($227>>>0)<($228>>>0); + if ($229) { + $230 = ((($227)) + 1|0); + HEAP32[$6>>2] = $230; + $231 = HEAP8[$227>>0]|0; + $232 = $231&255; + $$7$be = $232; + } else { + $233 = (___shgetc($0)|0); + $$7$be = $233; + } + $234 = ((15392) + ($$7$be)|0); + $235 = HEAP8[$234>>0]|0; + $236 = $235&255; + $237 = ($236>>>0)<($$1165168>>>0); + if ($237) { + $$7198 = $$7$be;$209 = $226;$211 = $225;$218 = $235; + } else { + $$1165167 = $$1165168;$$8 = $$7$be;$293 = $225;$294 = $226; + label = 72; + break; + } + } + } else { + $$1165167 = $$1165168;$$8 = $$6$lcssa;$293 = $295;$294 = $296; + label = 72; + } + } + } while(0); + if ((label|0) == 72) { + $238 = ((15392) + ($$8)|0); + $239 = HEAP8[$238>>0]|0; + $240 = $239&255; + $241 = ($240>>>0)<($$1165167>>>0); + if ($241) { + while(1) { + $242 = HEAP32[$6>>2]|0; + $243 = HEAP32[$7>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + $245 = ((($242)) + 1|0); + HEAP32[$6>>2] = $245; + $246 = HEAP8[$242>>0]|0; + $247 = $246&255; + $$9$be = $247; + } else { + $248 = (___shgetc($0)|0); + $$9$be = $248; + } + $249 = ((15392) + ($$9$be)|0); + $250 = HEAP8[$249>>0]|0; + $251 = $250&255; + $252 = ($251>>>0)<($$1165167>>>0); + if (!($252)) { + break; + } + } + $253 = (___errno_location()|0); + HEAP32[$253>>2] = 34; + $254 = $3 & 1; + $255 = ($254|0)==(0); + $256 = (0)==(0); + $257 = $255 & $256; + $$0157$ = $257 ? $$0157 : 0; + $$1158 = $$0157$;$263 = $4;$265 = $3; + } else { + $$1158 = $$0157;$263 = $294;$265 = $293; + } + } + $258 = HEAP32[$7>>2]|0; + $259 = ($258|0)==(0|0); + if (!($259)) { + $260 = HEAP32[$6>>2]|0; + $261 = ((($260)) + -1|0); + HEAP32[$6>>2] = $261; + } + $262 = ($263>>>0)<($4>>>0); + $264 = ($265>>>0)<($3>>>0); + $266 = ($263|0)==($4|0); + $267 = $266 & $264; + $268 = $262 | $267; + if (!($268)) { + $269 = $3 & 1; + $270 = ($269|0)!=(0); + $271 = (0)!=(0); + $272 = $270 | $271; + $273 = ($$1158|0)!=(0); + $or$cond12 = $272 | $273; + if (!($or$cond12)) { + $274 = (___errno_location()|0); + HEAP32[$274>>2] = 34; + $275 = (_i64Add(($3|0),($4|0),-1,-1)|0); + $276 = tempRet0; + $289 = $276;$290 = $275; + break; + } + $277 = ($263>>>0)>($4>>>0); + $278 = ($265>>>0)>($3>>>0); + $279 = ($263|0)==($4|0); + $280 = $279 & $278; + $281 = $277 | $280; + if ($281) { + $282 = (___errno_location()|0); + HEAP32[$282>>2] = 34; + $289 = $4;$290 = $3; + break; + } + } + $283 = ($$1158|0)<(0); + $284 = $283 << 31 >> 31; + $285 = $265 ^ $$1158; + $286 = $263 ^ $284; + $287 = (_i64Subtract(($285|0),($286|0),($$1158|0),($284|0))|0); + $288 = tempRet0; + $289 = $288;$290 = $287; + } + } while(0); + tempRet0 = ($289); + return ($290|0); +} +function ___shgetc($0) { + $0 = $0|0; + var $$0 = 0, $$phi$trans$insert = 0, $$phi$trans$insert28$phi$trans$insert = 0, $$pre = 0, $$pre$phi34Z2D = 0, $$pre29$pre = 0, $$pre35 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 104|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if ($3) { + label = 3; + } else { + $4 = ((($0)) + 108|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)<($2|0); + if ($6) { + label = 3; + } else { + label = 4; + } + } + if ((label|0) == 3) { + $7 = (___uflow($0)|0); + $8 = ($7|0)<(0); + if ($8) { + label = 4; + } else { + $10 = HEAP32[$1>>2]|0; + $11 = ($10|0)==(0); + $$phi$trans$insert = ((($0)) + 8|0); + if ($11) { + $$pre = HEAP32[$$phi$trans$insert>>2]|0; + $$phi$trans$insert28$phi$trans$insert = ((($0)) + 4|0); + $$pre29$pre = HEAP32[$$phi$trans$insert28$phi$trans$insert>>2]|0; + $$pre35 = ((($0)) + 108|0); + $$pre$phi34Z2D = $$pre35;$$sink = $$pre;$26 = $$pre;$29 = $$pre29$pre; + } else { + $12 = HEAP32[$$phi$trans$insert>>2]|0; + $13 = ((($0)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = $14; + $16 = (($12) - ($15))|0; + $17 = ((($0)) + 108|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($10) - ($18))|0; + $20 = ($16|0)<($19|0); + $21 = $12; + if ($20) { + $$pre$phi34Z2D = $17;$$sink = $21;$26 = $21;$29 = $14; + } else { + $22 = (($19) + -1)|0; + $23 = (($14) + ($22)|0); + $$pre$phi34Z2D = $17;$$sink = $23;$26 = $21;$29 = $14; + } + } + $24 = ((($0)) + 100|0); + HEAP32[$24>>2] = $$sink; + $25 = ($26|0)==(0|0); + if (!($25)) { + $27 = $26; + $28 = $29; + $30 = HEAP32[$$pre$phi34Z2D>>2]|0; + $31 = (($27) + 1)|0; + $32 = (($31) - ($28))|0; + $33 = (($32) + ($30))|0; + HEAP32[$$pre$phi34Z2D>>2] = $33; + } + $34 = ((($29)) + -1|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = ($36|0)==($7|0); + if ($37) { + $$0 = $7; + } else { + $38 = $7&255; + HEAP8[$34>>0] = $38; + $$0 = $7; + } + } + } + if ((label|0) == 4) { + $9 = ((($0)) + 100|0); + HEAP32[$9>>2] = 0; + $$0 = -1; + } + return ($$0|0); +} +function _isspace($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(32); + $2 = (($0) + -9)|0; + $3 = ($2>>>0)<(5); + $4 = $1 | $3; + $5 = $4&1; + return ($5|0); +} +function ___uflow($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = (___toread($0)|0); + $3 = ($2|0)==(0); + if ($3) { + $4 = ((($0)) + 32|0); + $5 = HEAP32[$4>>2]|0; + $6 = (FUNCTION_TABLE_iiii[$5 & 15]($0,$1,1)|0); + $7 = ($6|0)==(1); + if ($7) { + $8 = HEAP8[$1>>0]|0; + $9 = $8&255; + $$0 = $9; + } else { + $$0 = -1; + } + } else { + $$0 = -1; + } + STACKTOP = sp;return ($$0|0); +} +function ___toread($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 28|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($8>>>0)>($10>>>0); + if ($11) { + $12 = ((($0)) + 36|0); + $13 = HEAP32[$12>>2]|0; + (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0); + } + $14 = ((($0)) + 16|0); + HEAP32[$14>>2] = 0; + HEAP32[$9>>2] = 0; + HEAP32[$7>>2] = 0; + $15 = HEAP32[$0>>2]|0; + $16 = $15 & 4; + $17 = ($16|0)==(0); + if ($17) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = $23; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = $23; + $26 = $15 << 27; + $sext = $26 >> 31; + $$0 = $sext; + } else { + $18 = $15 | 32; + HEAP32[$0>>2] = $18; + $$0 = -1; + } + return ($$0|0); +} +function _copysign($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + HEAPF64[tempDoublePtr>>3] = $1;$4 = HEAP32[tempDoublePtr>>2]|0; + $5 = HEAP32[tempDoublePtr+4>>2]|0; + $6 = $3 & 2147483647; + $7 = $5 & -2147483648; + $8 = $7 | $6; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $8;$9 = +HEAPF64[tempDoublePtr>>3]; + return (+$9); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=4272; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((15657 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 16121;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 16121;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 16121 : (16123); + $$$ = $238 ? $$ : (16122); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 16121;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 16121;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 16131; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 16121;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (16121 + ($208)|0); + $$289 = $or$cond283 ? 16121 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 16121;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (16169 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 16138; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (16139) : (16144); + $$$ = $16 ? $$ : (16141); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (16169 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,16185,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,16185,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 16157 : 16161; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 18088 : 16165; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (16187 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 16275;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 16275; + } else { + $$01214 = 16275;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function ___floatscan($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0105$ph = 0, $$0106$ph = 0, $$0107$lcssa = 0, $$0107127 = 0, $$0113 = 0, $$0114 = 0.0, $$1$lcssa = 0, $$1108 = 0, $$1128 = 0, $$2 = 0, $$2109125 = 0, $$3110 = 0, $$3126 = 0, $$4 = 0, $$4111 = 0, $$5 = 0, $$6 = 0, $$in = 0, $$old8 = 0; + var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; + var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0.0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($1|0) { + case 0: { + $$0105$ph = -149;$$0106$ph = 24; + label = 4; + break; + } + case 1: { + $$0105$ph = -1074;$$0106$ph = 53; + label = 4; + break; + } + case 2: { + $$0105$ph = -1074;$$0106$ph = 53; + label = 4; + break; + } + default: { + $$0114 = 0.0; + } + } + L4: do { + if ((label|0) == 4) { + $3 = ((($0)) + 4|0); + $4 = ((($0)) + 100|0); + while(1) { + $5 = HEAP32[$3>>2]|0; + $6 = HEAP32[$4>>2]|0; + $7 = ($5>>>0)<($6>>>0); + if ($7) { + $8 = ((($5)) + 1|0); + HEAP32[$3>>2] = $8; + $9 = HEAP8[$5>>0]|0; + $10 = $9&255; + $12 = $10; + } else { + $11 = (___shgetc($0)|0); + $12 = $11; + } + $13 = (_isspace($12)|0); + $14 = ($13|0)==(0); + if ($14) { + break; + } + } + L13: do { + switch ($12|0) { + case 43: case 45: { + $15 = ($12|0)==(45); + $16 = $15&1; + $17 = $16 << 1; + $18 = (1 - ($17))|0; + $19 = HEAP32[$3>>2]|0; + $20 = HEAP32[$4>>2]|0; + $21 = ($19>>>0)<($20>>>0); + if ($21) { + $22 = ((($19)) + 1|0); + HEAP32[$3>>2] = $22; + $23 = HEAP8[$19>>0]|0; + $24 = $23&255; + $$0 = $24;$$0113 = $18; + break L13; + } else { + $25 = (___shgetc($0)|0); + $$0 = $25;$$0113 = $18; + break L13; + } + break; + } + default: { + $$0 = $12;$$0113 = 1; + } + } + } while(0); + $$0107127 = 0;$$1128 = $$0; + while(1) { + $26 = $$1128 | 32; + $27 = (18079 + ($$0107127)|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28 << 24 >> 24; + $30 = ($26|0)==($29|0); + if (!($30)) { + $$0107$lcssa = $$0107127;$$1$lcssa = $$1128; + break; + } + $31 = ($$0107127>>>0)<(7); + do { + if ($31) { + $32 = HEAP32[$3>>2]|0; + $33 = HEAP32[$4>>2]|0; + $34 = ($32>>>0)<($33>>>0); + if ($34) { + $35 = ((($32)) + 1|0); + HEAP32[$3>>2] = $35; + $36 = HEAP8[$32>>0]|0; + $37 = $36&255; + $$2 = $37; + break; + } else { + $38 = (___shgetc($0)|0); + $$2 = $38; + break; + } + } else { + $$2 = $$1128; + } + } while(0); + $39 = (($$0107127) + 1)|0; + $40 = ($39>>>0)<(8); + if ($40) { + $$0107127 = $39;$$1128 = $$2; + } else { + $$0107$lcssa = $39;$$1$lcssa = $$2; + break; + } + } + L29: do { + switch ($$0107$lcssa|0) { + case 8: { + break; + } + case 3: { + label = 23; + break; + } + default: { + $41 = ($$0107$lcssa>>>0)>(3); + $42 = ($2|0)!=(0); + $or$cond5 = $42 & $41; + if ($or$cond5) { + $43 = ($$0107$lcssa|0)==(8); + if ($43) { + break L29; + } else { + label = 23; + break L29; + } + } + $56 = ($$0107$lcssa|0)==(0); + L34: do { + if ($56) { + $$2109125 = 0;$$3126 = $$1$lcssa; + while(1) { + $57 = $$3126 | 32; + $58 = (18088 + ($$2109125)|0); + $59 = HEAP8[$58>>0]|0; + $60 = $59 << 24 >> 24; + $61 = ($57|0)==($60|0); + if (!($61)) { + $$3110 = $$2109125;$$5 = $$3126; + break L34; + } + $62 = ($$2109125>>>0)<(2); + do { + if ($62) { + $63 = HEAP32[$3>>2]|0; + $64 = HEAP32[$4>>2]|0; + $65 = ($63>>>0)<($64>>>0); + if ($65) { + $66 = ((($63)) + 1|0); + HEAP32[$3>>2] = $66; + $67 = HEAP8[$63>>0]|0; + $68 = $67&255; + $$4 = $68; + break; + } else { + $69 = (___shgetc($0)|0); + $$4 = $69; + break; + } + } else { + $$4 = $$3126; + } + } while(0); + $70 = (($$2109125) + 1)|0; + $71 = ($70>>>0)<(3); + if ($71) { + $$2109125 = $70;$$3126 = $$4; + } else { + $$3110 = $70;$$5 = $$4; + break; + } + } + } else { + $$3110 = $$0107$lcssa;$$5 = $$1$lcssa; + } + } while(0); + switch ($$3110|0) { + case 3: { + $72 = HEAP32[$3>>2]|0; + $73 = HEAP32[$4>>2]|0; + $74 = ($72>>>0)<($73>>>0); + if ($74) { + $75 = ((($72)) + 1|0); + HEAP32[$3>>2] = $75; + $76 = HEAP8[$72>>0]|0; + $77 = $76&255; + $80 = $77; + } else { + $78 = (___shgetc($0)|0); + $80 = $78; + } + $79 = ($80|0)==(40); + if ($79) { + $$4111 = 1; + } else { + $81 = HEAP32[$4>>2]|0; + $82 = ($81|0)==(0|0); + if ($82) { + $$0114 = nan; + break L4; + } + $83 = HEAP32[$3>>2]|0; + $84 = ((($83)) + -1|0); + HEAP32[$3>>2] = $84; + $$0114 = nan; + break L4; + } + while(1) { + $85 = HEAP32[$3>>2]|0; + $86 = HEAP32[$4>>2]|0; + $87 = ($85>>>0)<($86>>>0); + if ($87) { + $88 = ((($85)) + 1|0); + HEAP32[$3>>2] = $88; + $89 = HEAP8[$85>>0]|0; + $90 = $89&255; + $93 = $90; + } else { + $91 = (___shgetc($0)|0); + $93 = $91; + } + $92 = (($93) + -48)|0; + $94 = ($92>>>0)<(10); + $95 = (($93) + -65)|0; + $96 = ($95>>>0)<(26); + $or$cond = $94 | $96; + if (!($or$cond)) { + $97 = (($93) + -97)|0; + $98 = ($97>>>0)<(26); + $99 = ($93|0)==(95); + $or$cond7 = $99 | $98; + if (!($or$cond7)) { + break; + } + } + $111 = (($$4111) + 1)|0; + $$4111 = $111; + } + $100 = ($93|0)==(41); + if ($100) { + $$0114 = nan; + break L4; + } + $101 = HEAP32[$4>>2]|0; + $102 = ($101|0)==(0|0); + if (!($102)) { + $103 = HEAP32[$3>>2]|0; + $104 = ((($103)) + -1|0); + HEAP32[$3>>2] = $104; + } + if (!($42)) { + $106 = (___errno_location()|0); + HEAP32[$106>>2] = 22; + ___shlim($0,0); + $$0114 = 0.0; + break L4; + } + $105 = ($$4111|0)==(0); + if ($105) { + $$0114 = nan; + break L4; + } else { + $$in = $$4111; + } + while(1) { + $107 = (($$in) + -1)|0; + if (!($102)) { + $108 = HEAP32[$3>>2]|0; + $109 = ((($108)) + -1|0); + HEAP32[$3>>2] = $109; + } + $110 = ($107|0)==(0); + if ($110) { + $$0114 = nan; + break L4; + } else { + $$in = $107; + } + } + break; + } + case 0: { + $117 = ($$5|0)==(48); + if ($117) { + $118 = HEAP32[$3>>2]|0; + $119 = HEAP32[$4>>2]|0; + $120 = ($118>>>0)<($119>>>0); + if ($120) { + $121 = ((($118)) + 1|0); + HEAP32[$3>>2] = $121; + $122 = HEAP8[$118>>0]|0; + $123 = $122&255; + $126 = $123; + } else { + $124 = (___shgetc($0)|0); + $126 = $124; + } + $125 = $126 | 32; + $127 = ($125|0)==(120); + if ($127) { + $128 = (+_hexfloat($0,$$0106$ph,$$0105$ph,$$0113,$2)); + $$0114 = $128; + break L4; + } + $129 = HEAP32[$4>>2]|0; + $130 = ($129|0)==(0|0); + if ($130) { + $$6 = 48; + } else { + $131 = HEAP32[$3>>2]|0; + $132 = ((($131)) + -1|0); + HEAP32[$3>>2] = $132; + $$6 = 48; + } + } else { + $$6 = $$5; + } + $133 = (+_decfloat($0,$$6,$$0106$ph,$$0105$ph,$$0113,$2)); + $$0114 = $133; + break L4; + break; + } + default: { + $112 = HEAP32[$4>>2]|0; + $113 = ($112|0)==(0|0); + if (!($113)) { + $114 = HEAP32[$3>>2]|0; + $115 = ((($114)) + -1|0); + HEAP32[$3>>2] = $115; + } + $116 = (___errno_location()|0); + HEAP32[$116>>2] = 22; + ___shlim($0,0); + $$0114 = 0.0; + break L4; + } + } + } + } + } while(0); + if ((label|0) == 23) { + $44 = HEAP32[$4>>2]|0; + $45 = ($44|0)==(0|0); + if (!($45)) { + $46 = HEAP32[$3>>2]|0; + $47 = ((($46)) + -1|0); + HEAP32[$3>>2] = $47; + } + $48 = ($2|0)!=(0); + $49 = ($$0107$lcssa>>>0)>(3); + $or$cond9 = $48 & $49; + if ($or$cond9) { + $$1108 = $$0107$lcssa; + while(1) { + if (!($45)) { + $50 = HEAP32[$3>>2]|0; + $51 = ((($50)) + -1|0); + HEAP32[$3>>2] = $51; + } + $52 = (($$1108) + -1)|0; + $$old8 = ($52>>>0)>(3); + if ($$old8) { + $$1108 = $52; + } else { + break; + } + } + } + } + $53 = (+($$0113|0)); + $54 = $53 * inf; + $55 = $54; + $$0114 = $55; + } + } while(0); + return (+$$0114); +} +function _hexfloat($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$0133 = 0, $$0142 = 0, $$0146 = 0, $$0148 = 0, $$0148$ = 0, $$0151 = 0.0, $$0152 = 0.0, $$0155 = 0.0, $$0155$ = 0.0, $$0159 = 0, $$0165 = 0.0, $$0166 = 0, $$0166169 = 0, $$0166170 = 0, $$1$ph = 0, $$1147 = 0, $$1149 = 0, $$1153 = 0.0, $$1156 = 0.0; + var $$1160 = 0, $$2 = 0, $$2$lcssa = 0, $$2144 = 0, $$2150 = 0, $$2154 = 0.0, $$2157 = 0.0, $$2161 = 0, $$3145 = 0, $$3158$lcssa = 0.0, $$3158179 = 0.0, $$3162$lcssa = 0, $$3162183 = 0, $$4 = 0.0, $$4163$lcssa = 0, $$4163178 = 0, $$5 = 0.0, $$5164 = 0, $$6 = 0, $$pn = 0.0; + var $$pre = 0.0, $$pre$phiZ2D = 0.0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; + var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; + var $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0, $17 = 0; + var $170 = 0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; + var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0.0, $197 = 0, $198 = 0.0, $199 = 0.0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0.0, $206 = 0.0; + var $207 = 0.0, $208 = 0.0, $209 = 0.0, $21 = 0, $210 = 0.0, $211 = 0, $212 = 0, $213 = 0.0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; + var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0.0; + var $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; + var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0, $not$ = 0, $or$cond = 0, $or$cond168 = 0, $or$cond206 = 0, $or$cond4 = 0; + var $or$cond6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 100|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($6>>>0)<($8>>>0); + if ($9) { + $10 = ((($6)) + 1|0); + HEAP32[$5>>2] = $10; + $11 = HEAP8[$6>>0]|0; + $12 = $11&255; + $$0 = $12;$$0142 = 0; + } else { + $13 = (___shgetc($0)|0); + $$0 = $13;$$0142 = 0; + } + L4: while(1) { + switch ($$0|0) { + case 46: { + label = 8; + break L4; + break; + } + case 48: { + break; + } + default: { + $$0146 = 0;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $$0;$$2144 = $$0142;$101 = 0;$53 = 0;$55 = 0;$99 = 0; + break L4; + } + } + $14 = HEAP32[$5>>2]|0; + $15 = HEAP32[$7>>2]|0; + $16 = ($14>>>0)<($15>>>0); + if ($16) { + $17 = ((($14)) + 1|0); + HEAP32[$5>>2] = $17; + $18 = HEAP8[$14>>0]|0; + $19 = $18&255; + $$0 = $19;$$0142 = 1; + continue; + } else { + $20 = (___shgetc($0)|0); + $$0 = $20;$$0142 = 1; + continue; + } + } + if ((label|0) == 8) { + $21 = HEAP32[$5>>2]|0; + $22 = HEAP32[$7>>2]|0; + $23 = ($21>>>0)<($22>>>0); + if ($23) { + $24 = ((($21)) + 1|0); + HEAP32[$5>>2] = $24; + $25 = HEAP8[$21>>0]|0; + $26 = $25&255; + $$1$ph = $26; + } else { + $27 = (___shgetc($0)|0); + $$1$ph = $27; + } + $28 = ($$1$ph|0)==(48); + if ($28) { + $36 = 0;$37 = 0; + while(1) { + $29 = HEAP32[$5>>2]|0; + $30 = HEAP32[$7>>2]|0; + $31 = ($29>>>0)<($30>>>0); + if ($31) { + $32 = ((($29)) + 1|0); + HEAP32[$5>>2] = $32; + $33 = HEAP8[$29>>0]|0; + $34 = $33&255; + $41 = $34; + } else { + $35 = (___shgetc($0)|0); + $41 = $35; + } + $38 = (_i64Add(($36|0),($37|0),-1,-1)|0); + $39 = tempRet0; + $40 = ($41|0)==(48); + if ($40) { + $36 = $38;$37 = $39; + } else { + $$0146 = 1;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $41;$$2144 = 1;$101 = $39;$53 = 0;$55 = 0;$99 = $38; + break; + } + } + } else { + $$0146 = 1;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $$1$ph;$$2144 = $$0142;$101 = 0;$53 = 0;$55 = 0;$99 = 0; + } + } + while(1) { + $42 = (($$2) + -48)|0; + $43 = ($42>>>0)<(10); + $44 = ($$2|0)==(46); + if (!($43)) { + $45 = $$2 | 32; + $46 = (($45) + -97)|0; + $47 = ($46>>>0)<(6); + $or$cond6 = $44 | $47; + if (!($or$cond6)) { + $$2$lcssa = $$2; + break; + } + } + if ($44) { + $48 = ($$0146|0)==(0); + if ($48) { + $$1147 = 1;$$2150 = $$0148;$$2154 = $$0152;$$2157 = $$0155;$$2161 = $$0159;$$3145 = $$2144;$214 = $55;$215 = $53;$216 = $55;$217 = $53; + } else { + $$2$lcssa = 46; + break; + } + } else { + $49 = ($$2|0)>(57); + $50 = $$2 | 32; + $51 = (($50) + -87)|0; + $$0133 = $49 ? $51 : $42; + $52 = ($53|0)<(0); + $54 = ($55>>>0)<(8); + $56 = ($53|0)==(0); + $57 = $56 & $54; + $58 = $52 | $57; + do { + if ($58) { + $59 = $$0159 << 4; + $60 = (($$0133) + ($59))|0; + $$1149 = $$0148;$$1153 = $$0152;$$1156 = $$0155;$$1160 = $60; + } else { + $61 = ($53|0)<(0); + $62 = ($55>>>0)<(14); + $63 = ($53|0)==(0); + $64 = $63 & $62; + $65 = $61 | $64; + if ($65) { + $66 = (+($$0133|0)); + $67 = $$0152 * 0.0625; + $68 = $67 * $66; + $69 = $$0155 + $68; + $$1149 = $$0148;$$1153 = $67;$$1156 = $69;$$1160 = $$0159; + break; + } else { + $70 = ($$0133|0)==(0); + $71 = ($$0148|0)!=(0); + $or$cond = $71 | $70; + $72 = $$0152 * 0.5; + $73 = $$0155 + $72; + $$0155$ = $or$cond ? $$0155 : $73; + $$0148$ = $or$cond ? $$0148 : 1; + $$1149 = $$0148$;$$1153 = $$0152;$$1156 = $$0155$;$$1160 = $$0159; + break; + } + } + } while(0); + $74 = (_i64Add(($55|0),($53|0),1,0)|0); + $75 = tempRet0; + $$1147 = $$0146;$$2150 = $$1149;$$2154 = $$1153;$$2157 = $$1156;$$2161 = $$1160;$$3145 = 1;$214 = $99;$215 = $101;$216 = $74;$217 = $75; + } + $76 = HEAP32[$5>>2]|0; + $77 = HEAP32[$7>>2]|0; + $78 = ($76>>>0)<($77>>>0); + if ($78) { + $79 = ((($76)) + 1|0); + HEAP32[$5>>2] = $79; + $80 = HEAP8[$76>>0]|0; + $81 = $80&255; + $$0146 = $$1147;$$0148 = $$2150;$$0152 = $$2154;$$0155 = $$2157;$$0159 = $$2161;$$2 = $81;$$2144 = $$3145;$101 = $215;$53 = $217;$55 = $216;$99 = $214; + continue; + } else { + $82 = (___shgetc($0)|0); + $$0146 = $$1147;$$0148 = $$2150;$$0152 = $$2154;$$0155 = $$2157;$$0159 = $$2161;$$2 = $82;$$2144 = $$3145;$101 = $215;$53 = $217;$55 = $216;$99 = $214; + continue; + } + } + $83 = ($$2144|0)==(0); + do { + if ($83) { + $84 = HEAP32[$7>>2]|0; + $85 = ($84|0)!=(0|0); + if ($85) { + $86 = HEAP32[$5>>2]|0; + $87 = ((($86)) + -1|0); + HEAP32[$5>>2] = $87; + } + $88 = ($4|0)==(0); + if ($88) { + ___shlim($0,0); + } else { + if ($85) { + $89 = HEAP32[$5>>2]|0; + $90 = ((($89)) + -1|0); + HEAP32[$5>>2] = $90; + } + $91 = ($$0146|0)==(0); + $92 = ($84|0)==(0|0); + $or$cond206 = $91 | $92; + if (!($or$cond206)) { + $93 = HEAP32[$5>>2]|0; + $94 = ((($93)) + -1|0); + HEAP32[$5>>2] = $94; + } + } + $95 = (+($3|0)); + $96 = $95 * 0.0; + $$0165 = $96; + } else { + $97 = ($$0146|0)==(0); + $98 = $97 ? $55 : $99; + $100 = $97 ? $53 : $101; + $102 = ($53|0)<(0); + $103 = ($55>>>0)<(8); + $104 = ($53|0)==(0); + $105 = $104 & $103; + $106 = $102 | $105; + if ($106) { + $$3162183 = $$0159;$108 = $55;$109 = $53; + while(1) { + $107 = $$3162183 << 4; + $110 = (_i64Add(($108|0),($109|0),1,0)|0); + $111 = tempRet0; + $112 = ($111|0)<(0); + $113 = ($110>>>0)<(8); + $114 = ($111|0)==(0); + $115 = $114 & $113; + $116 = $112 | $115; + if ($116) { + $$3162183 = $107;$108 = $110;$109 = $111; + } else { + $$3162$lcssa = $107; + break; + } + } + } else { + $$3162$lcssa = $$0159; + } + $117 = $$2$lcssa | 32; + $118 = ($117|0)==(112); + if ($118) { + $119 = (_scanexp($0,$4)|0); + $120 = tempRet0; + $121 = ($119|0)==(0); + $122 = ($120|0)==(-2147483648); + $123 = $121 & $122; + if ($123) { + $124 = ($4|0)==(0); + if ($124) { + ___shlim($0,0); + $$0165 = 0.0; + break; + } + $125 = HEAP32[$7>>2]|0; + $126 = ($125|0)==(0|0); + if ($126) { + $137 = 0;$138 = 0; + } else { + $127 = HEAP32[$5>>2]|0; + $128 = ((($127)) + -1|0); + HEAP32[$5>>2] = $128; + $137 = 0;$138 = 0; + } + } else { + $137 = $119;$138 = $120; + } + } else { + $129 = HEAP32[$7>>2]|0; + $130 = ($129|0)==(0|0); + if ($130) { + $137 = 0;$138 = 0; + } else { + $131 = HEAP32[$5>>2]|0; + $132 = ((($131)) + -1|0); + HEAP32[$5>>2] = $132; + $137 = 0;$138 = 0; + } + } + $133 = (_bitshift64Shl(($98|0),($100|0),2)|0); + $134 = tempRet0; + $135 = (_i64Add(($133|0),($134|0),-32,-1)|0); + $136 = tempRet0; + $139 = (_i64Add(($135|0),($136|0),($137|0),($138|0))|0); + $140 = tempRet0; + $141 = ($$3162$lcssa|0)==(0); + if ($141) { + $142 = (+($3|0)); + $143 = $142 * 0.0; + $$0165 = $143; + break; + } + $144 = (0 - ($2))|0; + $145 = ($144|0)<(0); + $146 = $145 << 31 >> 31; + $147 = ($140|0)>($146|0); + $148 = ($139>>>0)>($144>>>0); + $149 = ($140|0)==($146|0); + $150 = $149 & $148; + $151 = $147 | $150; + if ($151) { + $152 = (___errno_location()|0); + HEAP32[$152>>2] = 34; + $153 = (+($3|0)); + $154 = $153 * 1.7976931348623157E+308; + $155 = $154 * 1.7976931348623157E+308; + $$0165 = $155; + break; + } + $156 = (($2) + -106)|0; + $157 = ($156|0)<(0); + $158 = $157 << 31 >> 31; + $159 = ($140|0)<($158|0); + $160 = ($139>>>0)<($156>>>0); + $161 = ($140|0)==($158|0); + $162 = $161 & $160; + $163 = $159 | $162; + if ($163) { + $165 = (___errno_location()|0); + HEAP32[$165>>2] = 34; + $166 = (+($3|0)); + $167 = $166 * 2.2250738585072014E-308; + $168 = $167 * 2.2250738585072014E-308; + $$0165 = $168; + break; + } + $164 = ($$3162$lcssa|0)>(-1); + if ($164) { + $$3158179 = $$0155;$$4163178 = $$3162$lcssa;$173 = $139;$174 = $140; + while(1) { + $169 = !($$3158179 >= 0.5); + $170 = $$4163178 << 1; + $171 = $$3158179 + -1.0; + $not$ = $169 ^ 1; + $172 = $not$&1; + $$5164 = $170 | $172; + $$pn = $169 ? $$3158179 : $171; + $$4 = $$3158179 + $$pn; + $175 = (_i64Add(($173|0),($174|0),-1,-1)|0); + $176 = tempRet0; + $177 = ($$5164|0)>(-1); + if ($177) { + $$3158179 = $$4;$$4163178 = $$5164;$173 = $175;$174 = $176; + } else { + $$3158$lcssa = $$4;$$4163$lcssa = $$5164;$184 = $175;$185 = $176; + break; + } + } + } else { + $$3158$lcssa = $$0155;$$4163$lcssa = $$3162$lcssa;$184 = $139;$185 = $140; + } + $178 = ($1|0)<(0); + $179 = $178 << 31 >> 31; + $180 = ($2|0)<(0); + $181 = $180 << 31 >> 31; + $182 = (_i64Subtract(32,0,($2|0),($181|0))|0); + $183 = tempRet0; + $186 = (_i64Add(($182|0),($183|0),($184|0),($185|0))|0); + $187 = tempRet0; + $188 = ($179|0)>($187|0); + $189 = ($1>>>0)>($186>>>0); + $190 = ($179|0)==($187|0); + $191 = $190 & $189; + $192 = $188 | $191; + if ($192) { + $193 = ($186|0)>(0); + if ($193) { + $$0166 = $186; + label = 59; + } else { + $$0166170 = 0;$197 = 84; + label = 61; + } + } else { + $$0166 = $1; + label = 59; + } + if ((label|0) == 59) { + $194 = ($$0166|0)<(53); + $195 = (84 - ($$0166))|0; + if ($194) { + $$0166170 = $$0166;$197 = $195; + label = 61; + } else { + $$pre = (+($3|0)); + $$0151 = 0.0;$$0166169 = $$0166;$$pre$phiZ2D = $$pre; + } + } + if ((label|0) == 61) { + $196 = (+($3|0)); + $198 = (+_scalbn(1.0,$197)); + $199 = (+_copysignl($198,$196)); + $$0151 = $199;$$0166169 = $$0166170;$$pre$phiZ2D = $196; + } + $200 = ($$0166169|0)<(32); + $201 = $$3158$lcssa != 0.0; + $or$cond4 = $201 & $200; + $202 = $$4163$lcssa & 1; + $203 = ($202|0)==(0); + $or$cond168 = $203 & $or$cond4; + $204 = $or$cond168&1; + $$6 = (($204) + ($$4163$lcssa))|0; + $$5 = $or$cond168 ? 0.0 : $$3158$lcssa; + $205 = (+($$6>>>0)); + $206 = $$pre$phiZ2D * $205; + $207 = $$0151 + $206; + $208 = $$pre$phiZ2D * $$5; + $209 = $208 + $207; + $210 = $209 - $$0151; + $211 = $210 != 0.0; + if (!($211)) { + $212 = (___errno_location()|0); + HEAP32[$212>>2] = 34; + } + $213 = (+_scalbnl($210,$184)); + $$0165 = $213; + } + } while(0); + return (+$$0165); +} +function _decfloat($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$0345 = 0, $$$0350 = 0, $$$0385 = 0, $$$0401 = 0, $$$5355 = 0, $$$5390 = 0, $$0329 = 0, $$0332490 = 0, $$0333 = 0, $$0334 = 0, $$0336486 = 0, $$0340496 = 0, $$0341$lcssa = 0, $$0341463 = 0, $$0341464 = 0, $$0341465 = 0, $$0341513 = 0, $$0345$lcssa = 0, $$0345467 = 0; + var $$0345468 = 0, $$0345469 = 0, $$0345512 = 0, $$0350$lcssa554 = 0, $$0350494 = 0, $$0360 = 0.0, $$0361 = 0.0, $$0365484 = 0.0, $$0372 = 0, $$0380 = 0, $$0380$ph = 0, $$0385$lcssa553 = 0, $$0385493 = 0, $$0393 = 0, $$0396 = 0, $$0401$lcssa = 0, $$0401473 = 0, $$0401474 = 0, $$0401475 = 0, $$0401509 = 0; + var $$1 = 0.0, $$10 = 0, $$1330$be = 0, $$1330$ph = 0, $$1335 = 0, $$1337 = 0, $$1362 = 0.0, $$1366 = 0.0, $$1373 = 0, $$1373$ph448 = 0, $$1381 = 0, $$1381$ph = 0, $$1381$ph558 = 0, $$1394$lcssa = 0, $$1394511 = 0, $$2 = 0, $$2343 = 0, $$2347 = 0, $$2352$ph449 = 0, $$2367 = 0.0; + var $$2371$v = 0, $$2374 = 0, $$2387$ph447 = 0, $$2395 = 0, $$2398 = 0, $$2403 = 0, $$3$be = 0, $$3$lcssa = 0, $$3344503 = 0, $$3348 = 0, $$3364 = 0.0, $$3368 = 0.0, $$3375 = 0, $$3383 = 0, $$3399$lcssa = 0, $$3399510 = 0, $$3514 = 0, $$413 = 0, $$425 = 0, $$4349495 = 0; + var $$4354 = 0, $$4354$ph = 0, $$4354$ph559 = 0, $$4376 = 0, $$4384 = 0, $$4389$ph = 0, $$4389$ph445 = 0, $$4400 = 0, $$4485 = 0, $$5 = 0, $$5$in = 0, $$5355488 = 0, $$5390487 = 0, $$6378$ph = 0, $$6489 = 0, $$9483 = 0, $$neg442 = 0, $$neg443 = 0, $$pre = 0, $$promoted = 0; + var $$sink = 0, $$sink421$off0 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0, $117 = 0, $118 = 0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0.0, $132 = 0.0, $133 = 0.0; + var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; + var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0, $166 = 0, $167 = 0, $168 = 0.0, $169 = 0.0, $17 = 0; + var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0.0, $177 = 0.0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; + var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0.0, $304 = 0, $305 = 0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; + var $316 = 0, $317 = 0.0, $318 = 0.0, $319 = 0, $32 = 0, $320 = 0.0, $321 = 0.0, $322 = 0.0, $323 = 0.0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; + var $334 = 0.0, $335 = 0.0, $336 = 0, $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0.0, $343 = 0.0, $344 = 0.0, $345 = 0.0, $346 = 0, $347 = 0, $348 = 0.0, $349 = 0, $35 = 0, $350 = 0.0, $351 = 0.0; + var $352 = 0.0, $353 = 0, $354 = 0, $355 = 0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0.0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0; + var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, $cond = 0, $exitcond = 0, $exitcond551 = 0, $narrow = 0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond14 = 0, $or$cond415 = 0, $or$cond417 = 0, $or$cond419 = 0, $or$cond420 = 0, $or$cond422 = 0, $or$cond422$not = 0, $or$cond423 = 0, $or$cond426 = 0, $or$cond5 = 0, $sum = 0; + var label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(512|0); + $6 = sp; + $sum = (($3) + ($2))|0; + $7 = (0 - ($sum))|0; + $8 = ((($0)) + 4|0); + $9 = ((($0)) + 100|0); + $$0329 = $1;$$0396 = 0; + L1: while(1) { + switch ($$0329|0) { + case 46: { + label = 6; + break L1; + break; + } + case 48: { + break; + } + default: { + $$0393 = 0;$$2 = $$0329;$$2398 = $$0396;$366 = 0;$367 = 0; + break L1; + } + } + $10 = HEAP32[$8>>2]|0; + $11 = HEAP32[$9>>2]|0; + $12 = ($10>>>0)<($11>>>0); + if ($12) { + $13 = ((($10)) + 1|0); + HEAP32[$8>>2] = $13; + $14 = HEAP8[$10>>0]|0; + $15 = $14&255; + $$0329 = $15;$$0396 = 1; + continue; + } else { + $16 = (___shgetc($0)|0); + $$0329 = $16;$$0396 = 1; + continue; + } + } + if ((label|0) == 6) { + $17 = HEAP32[$8>>2]|0; + $18 = HEAP32[$9>>2]|0; + $19 = ($17>>>0)<($18>>>0); + if ($19) { + $20 = ((($17)) + 1|0); + HEAP32[$8>>2] = $20; + $21 = HEAP8[$17>>0]|0; + $22 = $21&255; + $$1330$ph = $22; + } else { + $23 = (___shgetc($0)|0); + $$1330$ph = $23; + } + $24 = ($$1330$ph|0)==(48); + if ($24) { + $25 = 0;$26 = 0; + while(1) { + $27 = (_i64Add(($25|0),($26|0),-1,-1)|0); + $28 = tempRet0; + $29 = HEAP32[$8>>2]|0; + $30 = HEAP32[$9>>2]|0; + $31 = ($29>>>0)<($30>>>0); + if ($31) { + $32 = ((($29)) + 1|0); + HEAP32[$8>>2] = $32; + $33 = HEAP8[$29>>0]|0; + $34 = $33&255; + $$1330$be = $34; + } else { + $35 = (___shgetc($0)|0); + $$1330$be = $35; + } + $36 = ($$1330$be|0)==(48); + if ($36) { + $25 = $27;$26 = $28; + } else { + $$0393 = 1;$$2 = $$1330$be;$$2398 = 1;$366 = $27;$367 = $28; + break; + } + } + } else { + $$0393 = 1;$$2 = $$1330$ph;$$2398 = $$0396;$366 = 0;$367 = 0; + } + } + HEAP32[$6>>2] = 0; + $37 = (($$2) + -48)|0; + $38 = ($37>>>0)<(10); + $39 = ($$2|0)==(46); + $40 = $39 | $38; + L20: do { + if ($40) { + $41 = ((($6)) + 496|0); + $$0341513 = 0;$$0345512 = 0;$$0401509 = 0;$$1394511 = $$0393;$$3399510 = $$2398;$$3514 = $$2;$368 = $39;$369 = $37;$370 = $366;$371 = $367;$44 = 0;$45 = 0; + L22: while(1) { + do { + if ($368) { + $cond = ($$1394511|0)==(0); + if ($cond) { + $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = 1;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $44;$373 = $45;$374 = $44;$375 = $45; + } else { + break L22; + } + } else { + $43 = ($$0345512|0)<(125); + $46 = (_i64Add(($44|0),($45|0),1,0)|0); + $47 = tempRet0; + $48 = ($$3514|0)!=(48); + if (!($43)) { + if (!($48)) { + $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = $$1394511;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $370;$373 = $371;$374 = $46;$375 = $47; + break; + } + $57 = HEAP32[$41>>2]|0; + $58 = $57 | 1; + HEAP32[$41>>2] = $58; + $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = $$1394511;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $370;$373 = $371;$374 = $46;$375 = $47; + break; + } + $$$0401 = $48 ? $46 : $$0401509; + $49 = ($$0341513|0)==(0); + $$pre = (($6) + ($$0345512<<2)|0); + if ($49) { + $$sink = $369; + } else { + $50 = HEAP32[$$pre>>2]|0; + $51 = ($50*10)|0; + $52 = (($$3514) + -48)|0; + $53 = (($52) + ($51))|0; + $$sink = $53; + } + HEAP32[$$pre>>2] = $$sink; + $54 = (($$0341513) + 1)|0; + $55 = ($54|0)==(9); + $56 = $55&1; + $$$0345 = (($56) + ($$0345512))|0; + $$413 = $55 ? 0 : $54; + $$2343 = $$413;$$2347 = $$$0345;$$2395 = $$1394511;$$2403 = $$$0401;$$4400 = 1;$372 = $370;$373 = $371;$374 = $46;$375 = $47; + } + } while(0); + $59 = HEAP32[$8>>2]|0; + $60 = HEAP32[$9>>2]|0; + $61 = ($59>>>0)<($60>>>0); + if ($61) { + $62 = ((($59)) + 1|0); + HEAP32[$8>>2] = $62; + $63 = HEAP8[$59>>0]|0; + $64 = $63&255; + $$3$be = $64; + } else { + $65 = (___shgetc($0)|0); + $$3$be = $65; + } + $66 = (($$3$be) + -48)|0; + $67 = ($66>>>0)<(10); + $68 = ($$3$be|0)==(46); + $69 = $68 | $67; + if ($69) { + $$0341513 = $$2343;$$0345512 = $$2347;$$0401509 = $$2403;$$1394511 = $$2395;$$3399510 = $$4400;$$3514 = $$3$be;$368 = $68;$369 = $66;$370 = $372;$371 = $373;$44 = $374;$45 = $375; + } else { + $$0341$lcssa = $$2343;$$0345$lcssa = $$2347;$$0401$lcssa = $$2403;$$1394$lcssa = $$2395;$$3$lcssa = $$3$be;$$3399$lcssa = $$4400;$72 = $372;$73 = $374;$75 = $373;$76 = $375; + label = 29; + break L20; + } + } + $42 = ($$3399510|0)!=(0); + $$0341465 = $$0341513;$$0345469 = $$0345512;$$0401475 = $$0401509;$376 = $44;$377 = $45;$378 = $370;$379 = $371;$380 = $42; + label = 37; + } else { + $$0341$lcssa = 0;$$0345$lcssa = 0;$$0401$lcssa = 0;$$1394$lcssa = $$0393;$$3$lcssa = $$2;$$3399$lcssa = $$2398;$72 = $366;$73 = 0;$75 = $367;$76 = 0; + label = 29; + } + } while(0); + do { + if ((label|0) == 29) { + $70 = ($$1394$lcssa|0)==(0); + $71 = $70 ? $73 : $72; + $74 = $70 ? $76 : $75; + $77 = ($$3399$lcssa|0)!=(0); + $78 = $$3$lcssa | 32; + $79 = ($78|0)==(101); + $or$cond415 = $77 & $79; + if (!($or$cond415)) { + $94 = ($$3$lcssa|0)>(-1); + if ($94) { + $$0341465 = $$0341$lcssa;$$0345469 = $$0345$lcssa;$$0401475 = $$0401$lcssa;$376 = $73;$377 = $76;$378 = $71;$379 = $74;$380 = $77; + label = 37; + break; + } else { + $$0341464 = $$0341$lcssa;$$0345468 = $$0345$lcssa;$$0401474 = $$0401$lcssa;$381 = $73;$382 = $76;$383 = $77;$384 = $71;$385 = $74; + label = 39; + break; + } + } + $80 = (_scanexp($0,$5)|0); + $81 = tempRet0; + $82 = ($80|0)==(0); + $83 = ($81|0)==(-2147483648); + $84 = $82 & $83; + if ($84) { + $85 = ($5|0)==(0); + if ($85) { + ___shlim($0,0); + $$1 = 0.0; + break; + } + $86 = HEAP32[$9>>2]|0; + $87 = ($86|0)==(0|0); + if ($87) { + $90 = 0;$91 = 0; + } else { + $88 = HEAP32[$8>>2]|0; + $89 = ((($88)) + -1|0); + HEAP32[$8>>2] = $89; + $90 = 0;$91 = 0; + } + } else { + $90 = $80;$91 = $81; + } + $92 = (_i64Add(($90|0),($91|0),($71|0),($74|0))|0); + $93 = tempRet0; + $$0341463 = $$0341$lcssa;$$0345467 = $$0345$lcssa;$$0401473 = $$0401$lcssa;$105 = $92;$106 = $73;$108 = $93;$109 = $76; + label = 41; + } + } while(0); + if ((label|0) == 37) { + $95 = HEAP32[$9>>2]|0; + $96 = ($95|0)==(0|0); + if ($96) { + $$0341464 = $$0341465;$$0345468 = $$0345469;$$0401474 = $$0401475;$381 = $376;$382 = $377;$383 = $380;$384 = $378;$385 = $379; + label = 39; + } else { + $97 = HEAP32[$8>>2]|0; + $98 = ((($97)) + -1|0); + HEAP32[$8>>2] = $98; + if ($380) { + $$0341463 = $$0341465;$$0345467 = $$0345469;$$0401473 = $$0401475;$105 = $378;$106 = $376;$108 = $379;$109 = $377; + label = 41; + } else { + label = 40; + } + } + } + if ((label|0) == 39) { + if ($383) { + $$0341463 = $$0341464;$$0345467 = $$0345468;$$0401473 = $$0401474;$105 = $384;$106 = $381;$108 = $385;$109 = $382; + label = 41; + } else { + label = 40; + } + } + do { + if ((label|0) == 40) { + $99 = (___errno_location()|0); + HEAP32[$99>>2] = 22; + ___shlim($0,0); + $$1 = 0.0; + } + else if ((label|0) == 41) { + $100 = HEAP32[$6>>2]|0; + $101 = ($100|0)==(0); + if ($101) { + $102 = (+($4|0)); + $103 = $102 * 0.0; + $$1 = $103; + break; + } + $104 = ($105|0)==($106|0); + $107 = ($108|0)==($109|0); + $110 = $104 & $107; + $111 = ($109|0)<(0); + $112 = ($106>>>0)<(10); + $113 = ($109|0)==(0); + $114 = $113 & $112; + $115 = $111 | $114; + $or$cond = $115 & $110; + if ($or$cond) { + $116 = ($2|0)>(30); + $117 = $100 >>> $2; + $118 = ($117|0)==(0); + $or$cond417 = $116 | $118; + if ($or$cond417) { + $119 = (+($4|0)); + $120 = (+($100>>>0)); + $121 = $119 * $120; + $$1 = $121; + break; + } + } + $122 = (($3|0) / -2)&-1; + $123 = ($122|0)<(0); + $124 = $123 << 31 >> 31; + $125 = ($108|0)>($124|0); + $126 = ($105>>>0)>($122>>>0); + $127 = ($108|0)==($124|0); + $128 = $127 & $126; + $129 = $125 | $128; + if ($129) { + $130 = (___errno_location()|0); + HEAP32[$130>>2] = 34; + $131 = (+($4|0)); + $132 = $131 * 1.7976931348623157E+308; + $133 = $132 * 1.7976931348623157E+308; + $$1 = $133; + break; + } + $134 = (($3) + -106)|0; + $135 = ($134|0)<(0); + $136 = $135 << 31 >> 31; + $137 = ($108|0)<($136|0); + $138 = ($105>>>0)<($134>>>0); + $139 = ($108|0)==($136|0); + $140 = $139 & $138; + $141 = $137 | $140; + if ($141) { + $142 = (___errno_location()|0); + HEAP32[$142>>2] = 34; + $143 = (+($4|0)); + $144 = $143 * 2.2250738585072014E-308; + $145 = $144 * 2.2250738585072014E-308; + $$1 = $145; + break; + } + $146 = ($$0341463|0)==(0); + if ($146) { + $$3348 = $$0345467; + } else { + $147 = ($$0341463|0)<(9); + if ($147) { + $148 = (($6) + ($$0345467<<2)|0); + $$promoted = HEAP32[$148>>2]|0; + $$3344503 = $$0341463;$150 = $$promoted; + while(1) { + $149 = ($150*10)|0; + $151 = (($$3344503) + 1)|0; + $exitcond551 = ($151|0)==(9); + if ($exitcond551) { + break; + } else { + $$3344503 = $151;$150 = $149; + } + } + HEAP32[$148>>2] = $149; + } + $152 = (($$0345467) + 1)|0; + $$3348 = $152; + } + $153 = ($$0401473|0)<(9); + if ($153) { + $154 = ($$0401473|0)<=($105|0); + $155 = ($105|0)<(18); + $or$cond5 = $154 & $155; + if ($or$cond5) { + $156 = ($105|0)==(9); + $157 = HEAP32[$6>>2]|0; + if ($156) { + $158 = (+($4|0)); + $159 = (+($157>>>0)); + $160 = $158 * $159; + $$1 = $160; + break; + } + $161 = ($105|0)<(9); + if ($161) { + $162 = (+($4|0)); + $163 = (+($157>>>0)); + $164 = $162 * $163; + $165 = (8 - ($105))|0; + $166 = (4396 + ($165<<2)|0); + $167 = HEAP32[$166>>2]|0; + $168 = (+($167|0)); + $169 = $164 / $168; + $$1 = $169; + break; + } + $$neg442 = Math_imul($105, -3)|0; + $$neg443 = (($2) + 27)|0; + $170 = (($$neg443) + ($$neg442))|0; + $171 = ($170|0)>(30); + $172 = $157 >>> $170; + $173 = ($172|0)==(0); + $or$cond419 = $171 | $173; + if ($or$cond419) { + $174 = (($105) + -10)|0; + $175 = (4396 + ($174<<2)|0); + $176 = (+($4|0)); + $177 = (+($157>>>0)); + $178 = $176 * $177; + $179 = HEAP32[$175>>2]|0; + $180 = (+($179|0)); + $181 = $178 * $180; + $$1 = $181; + break; + } + } + } + $182 = (($105|0) % 9)&-1; + $183 = ($182|0)==(0); + if ($183) { + $$0380$ph = 0;$$1373$ph448 = $$3348;$$2352$ph449 = 0;$$2387$ph447 = $105; + } else { + $184 = ($105|0)>(-1); + $185 = (($182) + 9)|0; + $186 = $184 ? $182 : $185; + $187 = (8 - ($186))|0; + $188 = (4396 + ($187<<2)|0); + $189 = HEAP32[$188>>2]|0; + $190 = ($$3348|0)==(0); + if ($190) { + $$0350$lcssa554 = 0;$$0372 = 0;$$0385$lcssa553 = $105; + } else { + $191 = (1000000000 / ($189|0))&-1; + $$0340496 = 0;$$0350494 = 0;$$0385493 = $105;$$4349495 = 0; + while(1) { + $192 = (($6) + ($$4349495<<2)|0); + $193 = HEAP32[$192>>2]|0; + $194 = (($193>>>0) % ($189>>>0))&-1; + $195 = (($193>>>0) / ($189>>>0))&-1; + $196 = (($195) + ($$0340496))|0; + HEAP32[$192>>2] = $196; + $197 = Math_imul($191, $194)|0; + $198 = ($$4349495|0)==($$0350494|0); + $199 = ($196|0)==(0); + $or$cond420 = $198 & $199; + $200 = (($$0350494) + 1)|0; + $201 = $200 & 127; + $202 = (($$0385493) + -9)|0; + $$$0385 = $or$cond420 ? $202 : $$0385493; + $$$0350 = $or$cond420 ? $201 : $$0350494; + $203 = (($$4349495) + 1)|0; + $204 = ($203|0)==($$3348|0); + if ($204) { + break; + } else { + $$0340496 = $197;$$0350494 = $$$0350;$$0385493 = $$$0385;$$4349495 = $203; + } + } + $205 = ($197|0)==(0); + if ($205) { + $$0350$lcssa554 = $$$0350;$$0372 = $$3348;$$0385$lcssa553 = $$$0385; + } else { + $206 = (($6) + ($$3348<<2)|0); + $207 = (($$3348) + 1)|0; + HEAP32[$206>>2] = $197; + $$0350$lcssa554 = $$$0350;$$0372 = $207;$$0385$lcssa553 = $$$0385; + } + } + $208 = (9 - ($186))|0; + $209 = (($208) + ($$0385$lcssa553))|0; + $$0380$ph = 0;$$1373$ph448 = $$0372;$$2352$ph449 = $$0350$lcssa554;$$2387$ph447 = $209; + } + L101: while(1) { + $210 = ($$2387$ph447|0)<(18); + $211 = ($$2387$ph447|0)==(18); + $212 = (($6) + ($$2352$ph449<<2)|0); + $$0380 = $$0380$ph;$$1373 = $$1373$ph448; + while(1) { + if (!($210)) { + if (!($211)) { + $$1381$ph = $$0380;$$4354$ph = $$2352$ph449;$$4389$ph445 = $$2387$ph447;$$6378$ph = $$1373; + break L101; + } + $213 = HEAP32[$212>>2]|0; + $214 = ($213>>>0)<(9007199); + if (!($214)) { + $$1381$ph = $$0380;$$4354$ph = $$2352$ph449;$$4389$ph445 = 18;$$6378$ph = $$1373; + break L101; + } + } + $215 = (($$1373) + 127)|0; + $$0334 = 0;$$2374 = $$1373;$$5$in = $215; + while(1) { + $$5 = $$5$in & 127; + $216 = (($6) + ($$5<<2)|0); + $217 = HEAP32[$216>>2]|0; + $218 = (_bitshift64Shl(($217|0),0,29)|0); + $219 = tempRet0; + $220 = (_i64Add(($218|0),($219|0),($$0334|0),0)|0); + $221 = tempRet0; + $222 = ($221>>>0)>(0); + $223 = ($220>>>0)>(1000000000); + $224 = ($221|0)==(0); + $225 = $224 & $223; + $226 = $222 | $225; + if ($226) { + $227 = (___udivdi3(($220|0),($221|0),1000000000,0)|0); + $228 = tempRet0; + $229 = (___uremdi3(($220|0),($221|0),1000000000,0)|0); + $230 = tempRet0; + $$1335 = $227;$$sink421$off0 = $229; + } else { + $$1335 = 0;$$sink421$off0 = $220; + } + HEAP32[$216>>2] = $$sink421$off0; + $231 = (($$2374) + 127)|0; + $232 = $231 & 127; + $233 = ($$5|0)!=($232|0); + $234 = ($$5|0)==($$2352$ph449|0); + $or$cond422 = $233 | $234; + $or$cond422$not = $or$cond422 ^ 1; + $235 = ($$sink421$off0|0)==(0); + $or$cond423 = $235 & $or$cond422$not; + $$3375 = $or$cond423 ? $$5 : $$2374; + $236 = (($$5) + -1)|0; + if ($234) { + break; + } else { + $$0334 = $$1335;$$2374 = $$3375;$$5$in = $236; + } + } + $237 = (($$0380) + -29)|0; + $238 = ($$1335|0)==(0); + if ($238) { + $$0380 = $237;$$1373 = $$3375; + } else { + break; + } + } + $239 = (($$2387$ph447) + 9)|0; + $240 = (($$2352$ph449) + 127)|0; + $241 = $240 & 127; + $242 = ($241|0)==($$3375|0); + $243 = (($$3375) + 127)|0; + $244 = $243 & 127; + $245 = (($$3375) + 126)|0; + $246 = $245 & 127; + $247 = (($6) + ($246<<2)|0); + if ($242) { + $248 = (($6) + ($244<<2)|0); + $249 = HEAP32[$248>>2]|0; + $250 = HEAP32[$247>>2]|0; + $251 = $250 | $249; + HEAP32[$247>>2] = $251; + $$4376 = $244; + } else { + $$4376 = $$3375; + } + $252 = (($6) + ($241<<2)|0); + HEAP32[$252>>2] = $$1335; + $$0380$ph = $237;$$1373$ph448 = $$4376;$$2352$ph449 = $241;$$2387$ph447 = $239; + } + L119: while(1) { + $289 = (($$6378$ph) + 1)|0; + $287 = $289 & 127; + $290 = (($$6378$ph) + 127)|0; + $291 = $290 & 127; + $292 = (($6) + ($291<<2)|0); + $$1381$ph558 = $$1381$ph;$$4354$ph559 = $$4354$ph;$$4389$ph = $$4389$ph445; + while(1) { + $265 = ($$4389$ph|0)==(18); + $293 = ($$4389$ph|0)>(27); + $$425 = $293 ? 9 : 1; + $$1381 = $$1381$ph558;$$4354 = $$4354$ph559; + while(1) { + $$0336486 = 0; + while(1) { + $253 = (($$0336486) + ($$4354))|0; + $254 = $253 & 127; + $255 = ($254|0)==($$6378$ph|0); + if ($255) { + $$1337 = 2; + label = 88; + break; + } + $256 = (($6) + ($254<<2)|0); + $257 = HEAP32[$256>>2]|0; + $258 = (4428 + ($$0336486<<2)|0); + $259 = HEAP32[$258>>2]|0; + $260 = ($257>>>0)<($259>>>0); + if ($260) { + $$1337 = 2; + label = 88; + break; + } + $261 = ($257>>>0)>($259>>>0); + if ($261) { + break; + } + $262 = (($$0336486) + 1)|0; + $263 = ($262|0)<(2); + if ($263) { + $$0336486 = $262; + } else { + $$1337 = $262; + label = 88; + break; + } + } + if ((label|0) == 88) { + label = 0; + $264 = ($$1337|0)==(2); + $or$cond11 = $265 & $264; + if ($or$cond11) { + $$0365484 = 0.0;$$4485 = 0;$$9483 = $$6378$ph; + break L119; + } + } + $266 = (($$425) + ($$1381))|0; + $267 = ($$4354|0)==($$6378$ph|0); + if ($267) { + $$1381 = $266;$$4354 = $$6378$ph; + } else { + break; + } + } + $268 = 1 << $$425; + $269 = (($268) + -1)|0; + $270 = 1000000000 >>> $$425; + $$0332490 = 0;$$5355488 = $$4354;$$5390487 = $$4389$ph;$$6489 = $$4354; + while(1) { + $271 = (($6) + ($$6489<<2)|0); + $272 = HEAP32[$271>>2]|0; + $273 = $272 & $269; + $274 = $272 >>> $$425; + $275 = (($274) + ($$0332490))|0; + HEAP32[$271>>2] = $275; + $276 = Math_imul($273, $270)|0; + $277 = ($$6489|0)==($$5355488|0); + $278 = ($275|0)==(0); + $or$cond426 = $277 & $278; + $279 = (($$5355488) + 1)|0; + $280 = $279 & 127; + $281 = (($$5390487) + -9)|0; + $$$5390 = $or$cond426 ? $281 : $$5390487; + $$$5355 = $or$cond426 ? $280 : $$5355488; + $282 = (($$6489) + 1)|0; + $283 = $282 & 127; + $284 = ($283|0)==($$6378$ph|0); + if ($284) { + break; + } else { + $$0332490 = $276;$$5355488 = $$$5355;$$5390487 = $$$5390;$$6489 = $283; + } + } + $285 = ($276|0)==(0); + if ($285) { + $$1381$ph558 = $266;$$4354$ph559 = $$$5355;$$4389$ph = $$$5390; + continue; + } + $286 = ($287|0)==($$$5355|0); + if (!($286)) { + break; + } + $294 = HEAP32[$292>>2]|0; + $295 = $294 | 1; + HEAP32[$292>>2] = $295; + $$1381$ph558 = $266;$$4354$ph559 = $$$5355;$$4389$ph = $$$5390; + } + $288 = (($6) + ($$6378$ph<<2)|0); + HEAP32[$288>>2] = $276; + $$1381$ph = $266;$$4354$ph = $$$5355;$$4389$ph445 = $$$5390;$$6378$ph = $287; + } + while(1) { + $296 = (($$4485) + ($$4354))|0; + $297 = $296 & 127; + $298 = ($297|0)==($$9483|0); + $299 = (($$9483) + 1)|0; + $300 = $299 & 127; + if ($298) { + $301 = (($300) + -1)|0; + $302 = (($6) + ($301<<2)|0); + HEAP32[$302>>2] = 0; + $$10 = $300; + } else { + $$10 = $$9483; + } + $303 = $$0365484 * 1.0E+9; + $304 = (($6) + ($297<<2)|0); + $305 = HEAP32[$304>>2]|0; + $306 = (+($305>>>0)); + $307 = $303 + $306; + $308 = (($$4485) + 1)|0; + $exitcond = ($308|0)==(2); + if ($exitcond) { + break; + } else { + $$0365484 = $307;$$4485 = $308;$$9483 = $$10; + } + } + $309 = (+($4|0)); + $310 = $309 * $307; + $311 = (($$1381) + 53)|0; + $312 = (($311) - ($3))|0; + $313 = ($312|0)<($2|0); + $314 = ($312|0)>(0); + $$ = $314 ? $312 : 0; + $$0333 = $313 ? $$ : $2; + $315 = ($$0333|0)<(53); + if ($315) { + $316 = (105 - ($$0333))|0; + $317 = (+_scalbn(1.0,$316)); + $318 = (+_copysignl($317,$310)); + $319 = (53 - ($$0333))|0; + $320 = (+_scalbn(1.0,$319)); + $321 = (+_fmodl($310,$320)); + $322 = $310 - $321; + $323 = $318 + $322; + $$0360 = $318;$$0361 = $321;$$1366 = $323; + } else { + $$0360 = 0.0;$$0361 = 0.0;$$1366 = $310; + } + $324 = (($$4354) + 2)|0; + $325 = $324 & 127; + $326 = ($325|0)==($$10|0); + if ($326) { + $$3364 = $$0361; + } else { + $327 = (($6) + ($325<<2)|0); + $328 = HEAP32[$327>>2]|0; + $329 = ($328>>>0)<(500000000); + do { + if ($329) { + $330 = ($328|0)==(0); + if ($330) { + $331 = (($$4354) + 3)|0; + $332 = $331 & 127; + $333 = ($332|0)==($$10|0); + if ($333) { + $$1362 = $$0361; + break; + } + } + $334 = $309 * 0.25; + $335 = $334 + $$0361; + $$1362 = $335; + } else { + $336 = ($328|0)==(500000000); + if (!($336)) { + $337 = $309 * 0.75; + $338 = $337 + $$0361; + $$1362 = $338; + break; + } + $339 = (($$4354) + 3)|0; + $340 = $339 & 127; + $341 = ($340|0)==($$10|0); + if ($341) { + $342 = $309 * 0.5; + $343 = $342 + $$0361; + $$1362 = $343; + break; + } else { + $344 = $309 * 0.75; + $345 = $344 + $$0361; + $$1362 = $345; + break; + } + } + } while(0); + $346 = (53 - ($$0333))|0; + $347 = ($346|0)>(1); + if ($347) { + $348 = (+_fmodl($$1362,1.0)); + $349 = $348 != 0.0; + if ($349) { + $$3364 = $$1362; + } else { + $350 = $$1362 + 1.0; + $$3364 = $350; + } + } else { + $$3364 = $$1362; + } + } + $351 = $$1366 + $$3364; + $352 = $351 - $$0360; + $353 = $311 & 2147483647; + $354 = (-2 - ($sum))|0; + $355 = ($353|0)>($354|0); + do { + if ($355) { + $356 = (+Math_abs((+$352))); + $357 = !($356 >= 9007199254740992.0); + $358 = $352 * 0.5; + $not$ = $357 ^ 1; + $359 = $not$&1; + $$3383 = (($359) + ($$1381))|0; + $$2367 = $357 ? $352 : $358; + $360 = (($$3383) + 50)|0; + $361 = ($360|0)>($7|0); + if (!($361)) { + $362 = ($$0333|0)!=($312|0); + $narrow = $362 | $357; + $$2371$v = $313 & $narrow; + $363 = $$3364 != 0.0; + $or$cond14 = $363 & $$2371$v; + if (!($or$cond14)) { + $$3368 = $$2367;$$4384 = $$3383; + break; + } + } + $364 = (___errno_location()|0); + HEAP32[$364>>2] = 34; + $$3368 = $$2367;$$4384 = $$3383; + } else { + $$3368 = $352;$$4384 = $$1381; + } + } while(0); + $365 = (+_scalbnl($$3368,$$4384)); + $$1 = $365; + } + } while(0); + STACKTOP = sp;return (+$$1); +} +function _scanexp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$04861 = 0, $$049 = 0, $$1$be = 0, $$160 = 0, $$2$be = 0, $$2$lcssa = 0, $$254 = 0, $$3$be = 0, $$lcssa = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($0)) + 100|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($3>>>0)<($5>>>0); + if ($6) { + $7 = ((($3)) + 1|0); + HEAP32[$2>>2] = $7; + $8 = HEAP8[$3>>0]|0; + $9 = $8&255; + $11 = $9; + } else { + $10 = (___shgetc($0)|0); + $11 = $10; + } + switch ($11|0) { + case 43: case 45: { + $12 = ($11|0)==(45); + $13 = $12&1; + $14 = HEAP32[$2>>2]|0; + $15 = HEAP32[$4>>2]|0; + $16 = ($14>>>0)<($15>>>0); + if ($16) { + $17 = ((($14)) + 1|0); + HEAP32[$2>>2] = $17; + $18 = HEAP8[$14>>0]|0; + $19 = $18&255; + $22 = $19; + } else { + $20 = (___shgetc($0)|0); + $22 = $20; + } + $21 = (($22) + -48)|0; + $23 = ($21>>>0)>(9); + $24 = ($1|0)!=(0); + $or$cond3 = $24 & $23; + if ($or$cond3) { + $25 = HEAP32[$4>>2]|0; + $26 = ($25|0)==(0|0); + if ($26) { + $$0 = $13;$$049 = $22; + } else { + $27 = HEAP32[$2>>2]|0; + $28 = ((($27)) + -1|0); + HEAP32[$2>>2] = $28; + $$0 = $13;$$049 = $22; + } + } else { + $$0 = $13;$$049 = $22; + } + break; + } + default: { + $$0 = 0;$$049 = $11; + } + } + $29 = (($$049) + -48)|0; + $30 = ($29>>>0)>(9); + if ($30) { + $31 = HEAP32[$4>>2]|0; + $32 = ($31|0)==(0|0); + if ($32) { + $100 = -2147483648;$101 = 0; + } else { + $33 = HEAP32[$2>>2]|0; + $34 = ((($33)) + -1|0); + HEAP32[$2>>2] = $34; + $100 = -2147483648;$101 = 0; + } + } else { + $$04861 = 0;$$160 = $$049; + while(1) { + $35 = ($$04861*10)|0; + $36 = (($$160) + -48)|0; + $37 = (($36) + ($35))|0; + $38 = HEAP32[$2>>2]|0; + $39 = HEAP32[$4>>2]|0; + $40 = ($38>>>0)<($39>>>0); + if ($40) { + $41 = ((($38)) + 1|0); + HEAP32[$2>>2] = $41; + $42 = HEAP8[$38>>0]|0; + $43 = $42&255; + $$1$be = $43; + } else { + $44 = (___shgetc($0)|0); + $$1$be = $44; + } + $45 = (($$1$be) + -48)|0; + $46 = ($45>>>0)<(10); + $47 = ($37|0)<(214748364); + $48 = $46 & $47; + if ($48) { + $$04861 = $37;$$160 = $$1$be; + } else { + break; + } + } + $49 = ($37|0)<(0); + $50 = $49 << 31 >> 31; + $51 = (($$1$be) + -48)|0; + $52 = ($51>>>0)<(10); + if ($52) { + $$254 = $$1$be;$56 = $37;$57 = $50; + while(1) { + $58 = (___muldi3(($56|0),($57|0),10,0)|0); + $59 = tempRet0; + $60 = ($$254|0)<(0); + $61 = $60 << 31 >> 31; + $62 = (_i64Add(($$254|0),($61|0),-48,-1)|0); + $63 = tempRet0; + $64 = (_i64Add(($62|0),($63|0),($58|0),($59|0))|0); + $65 = tempRet0; + $66 = HEAP32[$2>>2]|0; + $67 = HEAP32[$4>>2]|0; + $68 = ($66>>>0)<($67>>>0); + if ($68) { + $69 = ((($66)) + 1|0); + HEAP32[$2>>2] = $69; + $70 = HEAP8[$66>>0]|0; + $71 = $70&255; + $$2$be = $71; + } else { + $72 = (___shgetc($0)|0); + $$2$be = $72; + } + $73 = (($$2$be) + -48)|0; + $74 = ($73>>>0)<(10); + $75 = ($65|0)<(21474836); + $76 = ($64>>>0)<(2061584302); + $77 = ($65|0)==(21474836); + $78 = $77 & $76; + $79 = $75 | $78; + $80 = $74 & $79; + if ($80) { + $$254 = $$2$be;$56 = $64;$57 = $65; + } else { + $$2$lcssa = $$2$be;$94 = $64;$95 = $65; + break; + } + } + } else { + $$2$lcssa = $$1$be;$94 = $37;$95 = $50; + } + $53 = (($$2$lcssa) + -48)|0; + $54 = ($53>>>0)<(10); + $55 = HEAP32[$4>>2]|0; + if ($54) { + $83 = $55; + while(1) { + $81 = HEAP32[$2>>2]|0; + $82 = ($81>>>0)<($83>>>0); + if ($82) { + $84 = ((($81)) + 1|0); + HEAP32[$2>>2] = $84; + $85 = HEAP8[$81>>0]|0; + $86 = $85&255; + $$3$be = $86;$102 = $83; + } else { + $87 = (___shgetc($0)|0); + $$pre = HEAP32[$4>>2]|0; + $$3$be = $87;$102 = $$pre; + } + $88 = (($$3$be) + -48)|0; + $89 = ($88>>>0)<(10); + if ($89) { + $83 = $102; + } else { + $$lcssa = $102; + break; + } + } + } else { + $$lcssa = $55; + } + $90 = ($$lcssa|0)==(0|0); + if (!($90)) { + $91 = HEAP32[$2>>2]|0; + $92 = ((($91)) + -1|0); + HEAP32[$2>>2] = $92; + } + $93 = ($$0|0)!=(0); + $96 = (_i64Subtract(0,0,($94|0),($95|0))|0); + $97 = tempRet0; + $98 = $93 ? $96 : $94; + $99 = $93 ? $97 : $95; + $100 = $99;$101 = $98; + } + tempRet0 = ($100); + return ($101|0); +} +function _scalbn($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$ = 0, $$$ = 0, $$0 = 0.0, $$020 = 0, $$1 = 0, $$1$ = 0, $$21 = 0.0, $$22 = 0.0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0; + var $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)>(1023); + if ($2) { + $3 = $0 * 8.9884656743115795E+307; + $4 = (($1) + -1023)|0; + $5 = ($4|0)>(1023); + $6 = $3 * 8.9884656743115795E+307; + $7 = (($1) + -2046)|0; + $8 = ($7|0)<(1023); + $$ = $8 ? $7 : 1023; + $$$ = $5 ? $$ : $4; + $$21 = $5 ? $6 : $3; + $$0 = $$21;$$020 = $$$; + } else { + $9 = ($1|0)<(-1022); + if ($9) { + $10 = $0 * 2.2250738585072014E-308; + $11 = (($1) + 1022)|0; + $12 = ($11|0)<(-1022); + $13 = $10 * 2.2250738585072014E-308; + $14 = (($1) + 2044)|0; + $15 = ($14|0)>(-1022); + $$1 = $15 ? $14 : -1022; + $$1$ = $12 ? $$1 : $11; + $$22 = $12 ? $13 : $10; + $$0 = $$22;$$020 = $$1$; + } else { + $$0 = $0;$$020 = $1; + } + } + $16 = (($$020) + 1023)|0; + $17 = (_bitshift64Shl(($16|0),0,52)|0); + $18 = tempRet0; + HEAP32[tempDoublePtr>>2] = $17;HEAP32[tempDoublePtr+4>>2] = $18;$19 = +HEAPF64[tempDoublePtr>>3]; + $20 = $$0 * $19; + return (+$20); +} +function _copysignl($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_copysign($0,$1)); + return (+$2); +} +function _fmodl($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_fmod($0,$1)); + return (+$2); +} +function _scalbnl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_scalbn($0,$1)); + return (+$2); +} +function _fmod($0,$1) { + $0 = +$0; + $1 = +$1; + var $$ = 0.0, $$070 = 0.0, $$071$lcssa = 0, $$07194 = 0, $$073$lcssa = 0, $$073100 = 0, $$172$ph = 0, $$174 = 0, $$275$lcssa = 0, $$27586 = 0, $$376$lcssa = 0, $$37683 = 0, $$lcssa = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0.0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0.0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + HEAPF64[tempDoublePtr>>3] = $1;$4 = HEAP32[tempDoublePtr>>2]|0; + $5 = HEAP32[tempDoublePtr+4>>2]|0; + $6 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $7 = tempRet0; + $8 = $6 & 2047; + $9 = (_bitshift64Lshr(($4|0),($5|0),52)|0); + $10 = tempRet0; + $11 = $9 & 2047; + $12 = $3 & -2147483648; + $13 = (_bitshift64Shl(($4|0),($5|0),1)|0); + $14 = tempRet0; + $15 = ($13|0)==(0); + $16 = ($14|0)==(0); + $17 = $15 & $16; + L1: do { + if ($17) { + label = 3; + } else { + $18 = (___DOUBLE_BITS_272($1)|0); + $19 = tempRet0; + $20 = $19 & 2147483647; + $21 = ($20>>>0)>(2146435072); + $22 = ($18>>>0)>(0); + $23 = ($20|0)==(2146435072); + $24 = $23 & $22; + $25 = $21 | $24; + $26 = ($8|0)==(2047); + $or$cond = $26 | $25; + if ($or$cond) { + label = 3; + } else { + $29 = (_bitshift64Shl(($2|0),($3|0),1)|0); + $30 = tempRet0; + $31 = ($30>>>0)>($14>>>0); + $32 = ($29>>>0)>($13>>>0); + $33 = ($30|0)==($14|0); + $34 = $33 & $32; + $35 = $31 | $34; + if (!($35)) { + $36 = ($29|0)==($13|0); + $37 = ($30|0)==($14|0); + $38 = $36 & $37; + $39 = $0 * 0.0; + $$ = $38 ? $39 : $0; + return (+$$); + } + $40 = ($8|0)==(0); + if ($40) { + $41 = (_bitshift64Shl(($2|0),($3|0),12)|0); + $42 = tempRet0; + $43 = ($42|0)>(-1); + $44 = ($41>>>0)>(4294967295); + $45 = ($42|0)==(-1); + $46 = $45 & $44; + $47 = $43 | $46; + if ($47) { + $$073100 = 0;$49 = $41;$50 = $42; + while(1) { + $48 = (($$073100) + -1)|0; + $51 = (_bitshift64Shl(($49|0),($50|0),1)|0); + $52 = tempRet0; + $53 = ($52|0)>(-1); + $54 = ($51>>>0)>(4294967295); + $55 = ($52|0)==(-1); + $56 = $55 & $54; + $57 = $53 | $56; + if ($57) { + $$073100 = $48;$49 = $51;$50 = $52; + } else { + $$073$lcssa = $48; + break; + } + } + } else { + $$073$lcssa = 0; + } + $58 = (1 - ($$073$lcssa))|0; + $59 = (_bitshift64Shl(($2|0),($3|0),($58|0))|0); + $60 = tempRet0; + $$174 = $$073$lcssa;$87 = $59;$88 = $60; + } else { + $61 = $3 & 1048575; + $62 = $61 | 1048576; + $$174 = $8;$87 = $2;$88 = $62; + } + $63 = ($11|0)==(0); + if ($63) { + $64 = (_bitshift64Shl(($4|0),($5|0),12)|0); + $65 = tempRet0; + $66 = ($65|0)>(-1); + $67 = ($64>>>0)>(4294967295); + $68 = ($65|0)==(-1); + $69 = $68 & $67; + $70 = $66 | $69; + if ($70) { + $$07194 = 0;$72 = $64;$73 = $65; + while(1) { + $71 = (($$07194) + -1)|0; + $74 = (_bitshift64Shl(($72|0),($73|0),1)|0); + $75 = tempRet0; + $76 = ($75|0)>(-1); + $77 = ($74>>>0)>(4294967295); + $78 = ($75|0)==(-1); + $79 = $78 & $77; + $80 = $76 | $79; + if ($80) { + $$07194 = $71;$72 = $74;$73 = $75; + } else { + $$071$lcssa = $71; + break; + } + } + } else { + $$071$lcssa = 0; + } + $81 = (1 - ($$071$lcssa))|0; + $82 = (_bitshift64Shl(($4|0),($5|0),($81|0))|0); + $83 = tempRet0; + $$172$ph = $$071$lcssa;$89 = $82;$90 = $83; + } else { + $84 = $5 & 1048575; + $85 = $84 | 1048576; + $$172$ph = $11;$89 = $4;$90 = $85; + } + $86 = ($$174|0)>($$172$ph|0); + $91 = (_i64Subtract(($87|0),($88|0),($89|0),($90|0))|0); + $92 = tempRet0; + $93 = ($92|0)>(-1); + $94 = ($91>>>0)>(4294967295); + $95 = ($92|0)==(-1); + $96 = $95 & $94; + $97 = $93 | $96; + L23: do { + if ($86) { + $$27586 = $$174;$101 = $92;$156 = $97;$157 = $87;$158 = $88;$99 = $91; + while(1) { + if ($156) { + $98 = ($99|0)==(0); + $100 = ($101|0)==(0); + $102 = $98 & $100; + if ($102) { + break; + } else { + $104 = $99;$105 = $101; + } + } else { + $104 = $157;$105 = $158; + } + $106 = (_bitshift64Shl(($104|0),($105|0),1)|0); + $107 = tempRet0; + $108 = (($$27586) + -1)|0; + $109 = ($108|0)>($$172$ph|0); + $110 = (_i64Subtract(($106|0),($107|0),($89|0),($90|0))|0); + $111 = tempRet0; + $112 = ($111|0)>(-1); + $113 = ($110>>>0)>(4294967295); + $114 = ($111|0)==(-1); + $115 = $114 & $113; + $116 = $112 | $115; + if ($109) { + $$27586 = $108;$101 = $111;$156 = $116;$157 = $106;$158 = $107;$99 = $110; + } else { + $$275$lcssa = $108;$$lcssa = $116;$118 = $110;$120 = $111;$159 = $106;$160 = $107; + break L23; + } + } + $103 = $0 * 0.0; + $$070 = $103; + break L1; + } else { + $$275$lcssa = $$174;$$lcssa = $97;$118 = $91;$120 = $92;$159 = $87;$160 = $88; + } + } while(0); + if ($$lcssa) { + $117 = ($118|0)==(0); + $119 = ($120|0)==(0); + $121 = $117 & $119; + if ($121) { + $129 = $0 * 0.0; + $$070 = $129; + break; + } else { + $123 = $120;$125 = $118; + } + } else { + $123 = $160;$125 = $159; + } + $122 = ($123>>>0)<(1048576); + $124 = ($125>>>0)<(0); + $126 = ($123|0)==(1048576); + $127 = $126 & $124; + $128 = $122 | $127; + if ($128) { + $$37683 = $$275$lcssa;$130 = $125;$131 = $123; + while(1) { + $132 = (_bitshift64Shl(($130|0),($131|0),1)|0); + $133 = tempRet0; + $134 = (($$37683) + -1)|0; + $135 = ($133>>>0)<(1048576); + $136 = ($132>>>0)<(0); + $137 = ($133|0)==(1048576); + $138 = $137 & $136; + $139 = $135 | $138; + if ($139) { + $$37683 = $134;$130 = $132;$131 = $133; + } else { + $$376$lcssa = $134;$141 = $132;$142 = $133; + break; + } + } + } else { + $$376$lcssa = $$275$lcssa;$141 = $125;$142 = $123; + } + $140 = ($$376$lcssa|0)>(0); + if ($140) { + $143 = (_i64Add(($141|0),($142|0),0,-1048576)|0); + $144 = tempRet0; + $145 = (_bitshift64Shl(($$376$lcssa|0),0,52)|0); + $146 = tempRet0; + $147 = $143 | $145; + $148 = $144 | $146; + $153 = $148;$155 = $147; + } else { + $149 = (1 - ($$376$lcssa))|0; + $150 = (_bitshift64Lshr(($141|0),($142|0),($149|0))|0); + $151 = tempRet0; + $153 = $151;$155 = $150; + } + $152 = $153 | $12; + HEAP32[tempDoublePtr>>2] = $155;HEAP32[tempDoublePtr+4>>2] = $152;$154 = +HEAPF64[tempDoublePtr>>3]; + $$070 = $154; + } + } + } while(0); + if ((label|0) == 3) { + $27 = $0 * $1; + $28 = $27 / $27; + $$070 = $28; + } + return (+$$070); +} +function ___DOUBLE_BITS_272($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _mbrtowc($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$03952 = 0, $$04051 = 0, $$04350 = 0, $$1 = 0, $$141 = 0, $$144 = 0, $$2 = 0, $$47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $4 = sp; + $5 = ($3|0)==(0|0); + $$ = $5 ? 21160 : $3; + $6 = HEAP32[$$>>2]|0; + $7 = ($1|0)==(0|0); + L1: do { + if ($7) { + $8 = ($6|0)==(0); + if ($8) { + $$0 = 0; + } else { + label = 17; + } + } else { + $9 = ($0|0)==(0|0); + $$47 = $9 ? $4 : $0; + $10 = ($2|0)==(0); + if ($10) { + $$0 = -2; + } else { + $11 = ($6|0)==(0); + if ($11) { + $12 = HEAP8[$1>>0]|0; + $13 = ($12<<24>>24)>(-1); + if ($13) { + $14 = $12&255; + HEAP32[$$47>>2] = $14; + $15 = ($12<<24>>24)!=(0); + $16 = $15&1; + $$0 = $16; + break; + } + $17 = (___pthread_self_439()|0); + $18 = ((($17)) + 188|0); + $19 = HEAP32[$18>>2]|0; + $20 = HEAP32[$19>>2]|0; + $not$ = ($20|0)==(0|0); + $21 = HEAP8[$1>>0]|0; + if ($not$) { + $22 = $21 << 24 >> 24; + $23 = $22 & 57343; + HEAP32[$$47>>2] = $23; + $$0 = 1; + break; + } + $24 = $21&255; + $25 = (($24) + -194)|0; + $26 = ($25>>>0)>(50); + if ($26) { + label = 17; + break; + } + $27 = ((($1)) + 1|0); + $28 = (3692 + ($25<<2)|0); + $29 = HEAP32[$28>>2]|0; + $30 = (($2) + -1)|0; + $31 = ($30|0)==(0); + if ($31) { + $$2 = $29; + } else { + $$03952 = $27;$$04051 = $29;$$04350 = $30; + label = 11; + } + } else { + $$03952 = $1;$$04051 = $6;$$04350 = $2; + label = 11; + } + L14: do { + if ((label|0) == 11) { + $32 = HEAP8[$$03952>>0]|0; + $33 = $32&255; + $34 = $33 >>> 3; + $35 = (($34) + -16)|0; + $36 = $$04051 >> 26; + $37 = (($34) + ($36))|0; + $38 = $35 | $37; + $39 = ($38>>>0)>(7); + if ($39) { + label = 17; + break L1; + } else { + $$1 = $$03952;$$141 = $$04051;$$144 = $$04350;$43 = $32; + } + while(1) { + $40 = $$141 << 6; + $41 = ((($$1)) + 1|0); + $42 = $43&255; + $44 = (($42) + -128)|0; + $45 = $44 | $40; + $46 = (($$144) + -1)|0; + $47 = ($45|0)<(0); + if (!($47)) { + break; + } + $49 = ($46|0)==(0); + if ($49) { + $$2 = $45; + break L14; + } + $50 = HEAP8[$41>>0]|0; + $51 = $50 & -64; + $52 = ($51<<24>>24)==(-128); + if ($52) { + $$1 = $41;$$141 = $45;$$144 = $46;$43 = $50; + } else { + label = 17; + break L1; + } + } + HEAP32[$$>>2] = 0; + HEAP32[$$47>>2] = $45; + $48 = (($2) - ($46))|0; + $$0 = $48; + break L1; + } + } while(0); + HEAP32[$$>>2] = $$2; + $$0 = -2; + } + } + } while(0); + if ((label|0) == 17) { + HEAP32[$$>>2] = 0; + $53 = (___errno_location()|0); + HEAP32[$53>>2] = 84; + $$0 = -1; + } + STACKTOP = sp;return ($$0|0); +} +function ___pthread_self_439() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function _fmaxf($0,$1) { + $0 = +$0; + $1 = +$1; + var $$0 = 0.0, $$unshifted = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___FLOAT_BITS_269($0)|0); + $3 = $2 & 2147483647; + $4 = ($3>>>0)>(2139095040); + do { + if ($4) { + $$0 = $1; + } else { + $5 = (___FLOAT_BITS_269($1)|0); + $6 = $5 & 2147483647; + $7 = ($6>>>0)>(2139095040); + if ($7) { + $$0 = $0; + } else { + $$unshifted = $5 ^ $2; + $8 = ($$unshifted|0)<(0); + if ($8) { + $9 = ($2|0)<(0); + $10 = $9 ? $1 : $0; + $$0 = $10; + break; + } else { + $11 = $0 < $1; + $12 = $11 ? $1 : $0; + $$0 = $12; + break; + } + } + } + } while(0); + return (+$$0); +} +function ___FLOAT_BITS_269($0) { + $0 = +$0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (HEAPF32[tempDoublePtr>>2]=$0,HEAP32[tempDoublePtr>>2]|0); + return ($1|0); +} +function _fminf($0,$1) { + $0 = +$0; + $1 = +$1; + var $$0 = 0.0, $$unshifted = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___FLOAT_BITS_271($0)|0); + $3 = $2 & 2147483647; + $4 = ($3>>>0)>(2139095040); + do { + if ($4) { + $$0 = $1; + } else { + $5 = (___FLOAT_BITS_271($1)|0); + $6 = $5 & 2147483647; + $7 = ($6>>>0)>(2139095040); + if ($7) { + $$0 = $0; + } else { + $$unshifted = $5 ^ $2; + $8 = ($$unshifted|0)<(0); + if ($8) { + $9 = ($2|0)<(0); + $10 = $9 ? $0 : $1; + $$0 = $10; + break; + } else { + $11 = $0 < $1; + $12 = $11 ? $0 : $1; + $$0 = $12; + break; + } + } + } + } while(0); + return (+$$0); +} +function ___FLOAT_BITS_271($0) { + $0 = +$0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (HEAPF32[tempDoublePtr>>2]=$0,HEAP32[tempDoublePtr>>2]|0); + return ($1|0); +} +function ___unlist_locked_file($0) { + $0 = $0|0; + var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 68|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = ((($0)) + 116|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + $$pre = ((($0)) + 112|0); + if (!($6)) { + $7 = HEAP32[$$pre>>2]|0; + $8 = ((($5)) + 112|0); + HEAP32[$8>>2] = $7; + } + $9 = HEAP32[$$pre>>2]|0; + $10 = ($9|0)==(0|0); + if ($10) { + $12 = (___pthread_self_607()|0); + $13 = ((($12)) + 232|0); + $$sink = $13; + } else { + $11 = ((($9)) + 116|0); + $$sink = $11; + } + HEAP32[$$sink>>2] = $5; + } + return; +} +function ___pthread_self_607() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _fopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0; + var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer8 = sp + 32|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $memchr = (_memchr(18092,$3,4)|0); + $4 = ($memchr|0)==(0|0); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 22; + $$0 = 0; + } else { + $6 = (___fmodeflags($1)|0); + $7 = $0; + $8 = $6 | 32768; + HEAP32[$vararg_buffer>>2] = $7; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 438; + $9 = (___syscall5(5,($vararg_buffer|0))|0); + $10 = (___syscall_ret($9)|0); + $11 = ($10|0)<(0); + if ($11) { + $$0 = 0; + } else { + $12 = $6 & 524288; + $13 = ($12|0)==(0); + if (!($13)) { + HEAP32[$vararg_buffer3>>2] = $10; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 2; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = 1; + (___syscall221(221,($vararg_buffer3|0))|0); + } + $14 = (___fdopen($10,$1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + HEAP32[$vararg_buffer8>>2] = $10; + (___syscall6(6,($vararg_buffer8|0))|0); + $$0 = 0; + } else { + $$0 = $14; + } + } + } + STACKTOP = sp;return ($$0|0); +} +function ___fmodeflags($0) { + $0 = $0|0; + var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_strchr($0,43)|0); + $2 = ($1|0)==(0|0); + $3 = HEAP8[$0>>0]|0; + $not$ = ($3<<24>>24)!=(114); + $$ = $not$&1; + $$0 = $2 ? $$ : 2; + $4 = (_strchr($0,120)|0); + $5 = ($4|0)==(0|0); + $6 = $$0 | 128; + $$0$ = $5 ? $$0 : $6; + $7 = (_strchr($0,101)|0); + $8 = ($7|0)==(0|0); + $9 = $$0$ | 524288; + $$2 = $8 ? $$0$ : $9; + $10 = ($3<<24>>24)==(114); + $11 = $$2 | 64; + $$2$ = $10 ? $$2 : $11; + $12 = ($3<<24>>24)==(119); + $13 = $$2$ | 512; + $$4 = $12 ? $13 : $$2$; + $14 = ($3<<24>>24)==(97); + $15 = $$4 | 1024; + $$$4 = $14 ? $15 : $$4; + return ($$$4|0); +} +function ___fdopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer12 = sp + 40|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 56|0; + $3 = HEAP8[$1>>0]|0; + $4 = $3 << 24 >> 24; + $memchr = (_memchr(18092,$4,4)|0); + $5 = ($memchr|0)==(0|0); + if ($5) { + $6 = (___errno_location()|0); + HEAP32[$6>>2] = 22; + $$0 = 0; + } else { + $7 = (_malloc(1156)|0); + $8 = ($7|0)==(0|0); + if ($8) { + $$0 = 0; + } else { + dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $9 = (_strchr($1,43)|0); + $10 = ($9|0)==(0|0); + if ($10) { + $11 = ($3<<24>>24)==(114); + $12 = $11 ? 8 : 4; + HEAP32[$7>>2] = $12; + } + $13 = (_strchr($1,101)|0); + $14 = ($13|0)==(0|0); + if ($14) { + $16 = $3; + } else { + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 2; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 1; + (___syscall221(221,($vararg_buffer|0))|0); + $$pre = HEAP8[$1>>0]|0; + $16 = $$pre; + } + $15 = ($16<<24>>24)==(97); + if ($15) { + HEAP32[$vararg_buffer3>>2] = $0; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 3; + $17 = (___syscall221(221,($vararg_buffer3|0))|0); + $18 = $17 & 1024; + $19 = ($18|0)==(0); + if ($19) { + $20 = $17 | 1024; + HEAP32[$vararg_buffer7>>2] = $0; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = 4; + $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); + HEAP32[$vararg_ptr11>>2] = $20; + (___syscall221(221,($vararg_buffer7|0))|0); + } + $21 = HEAP32[$7>>2]|0; + $22 = $21 | 128; + HEAP32[$7>>2] = $22; + $29 = $22; + } else { + $$pre31 = HEAP32[$7>>2]|0; + $29 = $$pre31; + } + $23 = ((($7)) + 60|0); + HEAP32[$23>>2] = $0; + $24 = ((($7)) + 132|0); + $25 = ((($7)) + 44|0); + HEAP32[$25>>2] = $24; + $26 = ((($7)) + 48|0); + HEAP32[$26>>2] = 1024; + $27 = ((($7)) + 75|0); + HEAP8[$27>>0] = -1; + $28 = $29 & 8; + $30 = ($28|0)==(0); + if ($30) { + $31 = $2; + HEAP32[$vararg_buffer12>>2] = $0; + $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); + HEAP32[$vararg_ptr15>>2] = 21523; + $vararg_ptr16 = ((($vararg_buffer12)) + 8|0); + HEAP32[$vararg_ptr16>>2] = $31; + $32 = (___syscall54(54,($vararg_buffer12|0))|0); + $33 = ($32|0)==(0); + if ($33) { + HEAP8[$27>>0] = 10; + } + } + $34 = ((($7)) + 32|0); + HEAP32[$34>>2] = 11; + $35 = ((($7)) + 36|0); + HEAP32[$35>>2] = 10; + $36 = ((($7)) + 40|0); + HEAP32[$36>>2] = 3; + $37 = ((($7)) + 12|0); + HEAP32[$37>>2] = 2; + $38 = HEAP32[(21100)>>2]|0; + $39 = ($38|0)==(0); + if ($39) { + $40 = ((($7)) + 76|0); + HEAP32[$40>>2] = -1; + } + $41 = (___ofl_add($7)|0); + $$0 = $7; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___ofl_add($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___ofl_lock()|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 56|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$1>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($4)) + 52|0); + HEAP32[$6>>2] = $0; + } + HEAP32[$1>>2] = $0; + ___ofl_unlock(); + return ($0|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((21164|0)); + return (21172|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((21164|0)); + return; +} +function _fclose($0) { + $0 = $0|0; + var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $29 = $4; + } else { + $29 = 0; + } + ___unlist_locked_file($0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 1; + $7 = ($6|0)!=(0); + if (!($7)) { + $8 = (___ofl_lock()|0); + $9 = ((($0)) + 52|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)==(0|0); + $12 = $10; + $$pre = ((($0)) + 56|0); + if (!($11)) { + $13 = HEAP32[$$pre>>2]|0; + $14 = ((($10)) + 56|0); + HEAP32[$14>>2] = $13; + } + $15 = HEAP32[$$pre>>2]|0; + $16 = ($15|0)==(0|0); + if (!($16)) { + $17 = ((($15)) + 52|0); + HEAP32[$17>>2] = $12; + } + $18 = HEAP32[$8>>2]|0; + $19 = ($18|0)==($0|0); + if ($19) { + HEAP32[$8>>2] = $15; + } + ___ofl_unlock(); + } + $20 = (_fflush($0)|0); + $21 = ((($0)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = (FUNCTION_TABLE_ii[$22 & 15]($0)|0); + $24 = $23 | $20; + $25 = ((($0)) + 92|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($26|0)==(0|0); + if (!($27)) { + _free($26); + } + if ($7) { + $28 = ($29|0)==(0); + if (!($28)) { + ___unlockfile($0); + } + } else { + _free($0); + } + return ($24|0); +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[1067]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[1067]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _fgets($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$06266 = 0, $$063 = 0, $$064 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0; + var $sext$mask = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $6 = (___lockfile($2)|0); + $17 = $6; + } else { + $17 = 0; + } + $7 = (($1) + -1)|0; + $8 = ($1|0)<(2); + $9 = ($7|0)!=(0); + if ($8) { + $10 = ((($2)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ($17|0)==(0); + if (!($16)) { + ___unlockfile($2); + } + if ($9) { + $$0 = 0; + } else { + HEAP8[$0>>0] = 0; + $$0 = $0; + } + } else { + L11: do { + if ($9) { + $18 = ((($2)) + 4|0); + $19 = ((($2)) + 8|0); + $$063 = $7;$$064 = $0; + while(1) { + $20 = HEAP32[$18>>2]|0; + $21 = HEAP32[$19>>2]|0; + $22 = $20; + $23 = (($21) - ($22))|0; + $24 = (_memchr($20,10,$23)|0); + $25 = ($24|0)==(0|0); + $26 = $24; + $27 = (1 - ($22))|0; + $28 = (($27) + ($26))|0; + $29 = $25 ? $23 : $28; + $30 = ($29>>>0)<($$063>>>0); + $31 = $30 ? $29 : $$063; + _memcpy(($$064|0),($20|0),($31|0))|0; + $32 = HEAP32[$18>>2]|0; + $33 = (($32) + ($31)|0); + HEAP32[$18>>2] = $33; + $34 = (($$064) + ($31)|0); + $35 = (($$063) - ($31))|0; + $36 = ($35|0)!=(0); + $or$cond = $25 & $36; + if (!($or$cond)) { + $$1 = $34; + label = 17; + break L11; + } + $37 = HEAP32[$19>>2]|0; + $38 = ($33>>>0)<($37>>>0); + if ($38) { + $39 = ((($33)) + 1|0); + HEAP32[$18>>2] = $39; + $40 = HEAP8[$33>>0]|0; + $41 = $40&255; + $50 = $41; + } else { + $42 = (___uflow($2)|0); + $43 = ($42|0)<(0); + if ($43) { + break; + } else { + $50 = $42; + } + } + $48 = (($35) + -1)|0; + $49 = $50&255; + $51 = ((($34)) + 1|0); + HEAP8[$34>>0] = $49; + $sext$mask = $50 & 255; + $52 = ($sext$mask|0)!=(10); + $53 = ($48|0)!=(0); + $or$cond3 = $53 & $52; + if ($or$cond3) { + $$063 = $48;$$064 = $51; + } else { + $$1 = $51; + label = 17; + break L11; + } + } + $44 = ($34|0)==($0|0); + if ($44) { + $$06266 = 0; + } else { + $45 = HEAP32[$2>>2]|0; + $46 = $45 & 16; + $47 = ($46|0)==(0); + if ($47) { + $$06266 = 0; + } else { + $$1 = $34; + label = 17; + } + } + } else { + $$1 = $0; + label = 17; + } + } while(0); + if ((label|0) == 17) { + $54 = ($0|0)==(0|0); + if ($54) { + $$06266 = 0; + } else { + HEAP8[$$1>>0] = 0; + $$06266 = $0; + } + } + $55 = ($17|0)==(0); + if ($55) { + $$0 = $$06266; + } else { + ___unlockfile($2); + $$0 = $$06266; + } + } + return ($$0|0); +} +function _feof($0) { + $0 = $0|0; + var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 >>> 4; + $$lobit = $8 & 1; + if ($phitmp) { + $$lobit9 = $$lobit; + } else { + ___unlockfile($0); + $$lobit9 = $$lobit; + } + } else { + $4 = HEAP32[$0>>2]|0; + $5 = $4 >>> 4; + $$lobit8 = $5 & 1; + $$lobit9 = $$lobit8; + } + return ($$lobit9|0); +} +function _fscanf($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + HEAP32[$2>>2] = $varargs; + $3 = (_vfscanf($0,$1,$2)|0); + STACKTOP = sp;return ($3|0); +} +function _vfscanf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0266 = 0, $$$0268 = 0, $$$0305 = 0, $$$3 = 0, $$0266$lcssa = 0, $$0266417 = 0, $$0268 = 0, $$0272 = 0, $$0273429 = 0, $$0276$ph = 0, $$0278$ph = 0, $$0278$ph$phi = 0, $$0278$ph336 = 0, $$0283428 = 0, $$0286420 = 0, $$0288$ = 0, $$0288425 = 0, $$0292 = 0, $$0293 = 0; + var $$0305423 = 0, $$10 = 0, $$11 = 0, $$1267 = 0, $$1271 = 0, $$1274 = 0, $$1277$ph = 0, $$1279 = 0, $$1284 = 0, $$1289 = 0, $$2 = 0, $$2275 = 0, $$2280 = 0, $$2280$ph = 0, $$2280$ph$phi = 0, $$2285 = 0, $$2290 = 0, $$2307$ph = 0, $$3$lcssa = 0, $$319 = 0; + var $$320 = 0, $$321 = 0, $$322 = 0, $$327 = 0, $$328$le439 = 0, $$328$le441 = 0, $$3281 = 0, $$3291 = 0, $$3416 = 0, $$4282 = 0, $$4309 = 0, $$5 = 0, $$5299 = 0, $$5310 = 0, $$6 = 0, $$6311 = 0, $$7 = 0, $$7$ph = 0, $$7312 = 0, $$8 = 0; + var $$8313 = 0, $$9 = 0, $$9314 = 0, $$9314$ph = 0, $$lcssa355 = 0, $$not = 0, $$old4 = 0, $$ph = 0, $$ph353 = 0, $$pre = 0, $$pre$phi516Z2D = 0, $$pre507 = 0, $$pre509 = 0, $$pre511 = 0, $$pre512 = 0, $$pre513 = 0, $$pre514 = 0, $$pre515 = 0, $$sink443 = 0, $$sroa$2$0$$sroa_idx13 = 0; + var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; + var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; + var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; + var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; + var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; + var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; + var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; + var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; + var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; + var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; + var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0.0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0.0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; + var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; + var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; + var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; + var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; + var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded1 = 0, $expanded3 = 0, $expanded4 = 0, $expanded5 = 0, $factor = 0, $factor331 = 0, $isdigit = 0; + var $isdigit316 = 0, $isdigit316415 = 0, $isdigittmp = 0, $isdigittmp315 = 0, $isdigittmp315414 = 0, $narrow = 0, $narrow469 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond318 = 0, $or$cond5 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); + $3 = sp + 8|0; + $4 = sp + 17|0; + $5 = sp; + $6 = sp + 16|0; + $7 = ((($0)) + 76|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(-1); + if ($9) { + $10 = (___lockfile($0)|0); + $306 = $10; + } else { + $306 = 0; + } + $11 = HEAP8[$1>>0]|0; + $12 = ($11<<24>>24)==(0); + L4: do { + if ($12) { + $$3291 = 0; + } else { + $13 = ((($0)) + 4|0); + $14 = ((($0)) + 100|0); + $15 = ((($0)) + 108|0); + $16 = ((($0)) + 8|0); + $17 = ((($4)) + 10|0); + $18 = ((($4)) + 33|0); + $$sroa$2$0$$sroa_idx13 = ((($3)) + 4|0); + $19 = ((($4)) + 46|0); + $20 = ((($4)) + 94|0); + $21 = ((($4)) + 1|0); + $22 = ((($4)) + 1|0); + $$0273429 = $1;$$0283428 = 0;$$0288425 = 0;$$0305423 = 0;$102 = 0;$24 = $11; + L6: while(1) { + $23 = $24&255; + $25 = (_isspace($23)|0); + $26 = ($25|0)==(0); + L8: do { + if ($26) { + $53 = ($24<<24>>24)==(37); + L10: do { + if ($53) { + $54 = ((($$0273429)) + 1|0); + $55 = HEAP8[$54>>0]|0; + L12: do { + switch ($55<<24>>24) { + case 37: { + break L10; + break; + } + case 42: { + $76 = ((($$0273429)) + 2|0); + $$0293 = 0;$$2275 = $76; + break; + } + default: { + $77 = $55&255; + $isdigittmp = (($77) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $78 = ((($$0273429)) + 2|0); + $79 = HEAP8[$78>>0]|0; + $80 = ($79<<24>>24)==(36); + if ($80) { + $81 = (_arg_n($2,$isdigittmp)|0); + $82 = ((($$0273429)) + 3|0); + $$0293 = $81;$$2275 = $82; + break L12; + } + } + $arglist_current = HEAP32[$2>>2]|0; + $83 = $arglist_current; + $84 = ((0) + 4|0); + $expanded1 = $84; + $expanded = (($expanded1) - 1)|0; + $85 = (($83) + ($expanded))|0; + $86 = ((0) + 4|0); + $expanded5 = $86; + $expanded4 = (($expanded5) - 1)|0; + $expanded3 = $expanded4 ^ -1; + $87 = $85 & $expanded3; + $88 = $87; + $89 = HEAP32[$88>>2]|0; + $arglist_next = ((($88)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0293 = $89;$$2275 = $54; + } + } + } while(0); + $90 = HEAP8[$$2275>>0]|0; + $91 = $90&255; + $isdigittmp315414 = (($91) + -48)|0; + $isdigit316415 = ($isdigittmp315414>>>0)<(10); + if ($isdigit316415) { + $$0266417 = 0;$$3416 = $$2275;$95 = $91; + while(1) { + $92 = ($$0266417*10)|0; + $93 = (($92) + -48)|0; + $94 = (($93) + ($95))|0; + $96 = ((($$3416)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = $97&255; + $isdigittmp315 = (($98) + -48)|0; + $isdigit316 = ($isdigittmp315>>>0)<(10); + if ($isdigit316) { + $$0266417 = $94;$$3416 = $96;$95 = $98; + } else { + $$0266$lcssa = $94;$$3$lcssa = $96;$$lcssa355 = $97; + break; + } + } + } else { + $$0266$lcssa = 0;$$3$lcssa = $$2275;$$lcssa355 = $90; + } + $99 = ($$lcssa355<<24>>24)==(109); + $100 = ($$0293|0)!=(0|0); + $101 = ((($$3$lcssa)) + 1|0); + $$$0305 = $99 ? 0 : $$0305423; + $$327 = $99 ? 0 : $102; + $$$3 = $99 ? $101 : $$3$lcssa; + $narrow = $100 & $99; + $103 = ((($$$3)) + 1|0); + $104 = HEAP8[$$$3>>0]|0; + switch ($104<<24>>24) { + case 104: { + $105 = HEAP8[$103>>0]|0; + $106 = ($105<<24>>24)==(104); + $107 = ((($$$3)) + 2|0); + $$319 = $106 ? $107 : $103; + $$320 = $106 ? -2 : -1; + $$0268 = $$320;$$5 = $$319; + break; + } + case 108: { + $108 = HEAP8[$103>>0]|0; + $109 = ($108<<24>>24)==(108); + $110 = ((($$$3)) + 2|0); + $$321 = $109 ? $110 : $103; + $$322 = $109 ? 3 : 1; + $$0268 = $$322;$$5 = $$321; + break; + } + case 106: { + $$0268 = 3;$$5 = $103; + break; + } + case 116: case 122: { + $$0268 = 1;$$5 = $103; + break; + } + case 76: { + $$0268 = 2;$$5 = $103; + break; + } + case 110: case 112: case 67: case 83: case 91: case 99: case 115: case 88: case 71: case 70: case 69: case 65: case 103: case 102: case 101: case 97: case 120: case 117: case 111: case 105: case 100: { + $$0268 = 0;$$5 = $$$3; + break; + } + default: { + $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; + label = 137; + break L6; + } + } + $111 = HEAP8[$$5>>0]|0; + $112 = $111&255; + $113 = $112 & 47; + $114 = ($113|0)==(3); + $115 = $112 | 32; + $$ = $114 ? $115 : $112; + $$$0268 = $114 ? 1 : $$0268; + $trunc = $$&255; + switch ($trunc<<24>>24) { + case 99: { + $116 = ($$0266$lcssa|0)>(1); + $$$0266 = $116 ? $$0266$lcssa : 1; + $$1267 = $$$0266;$$1284 = $$0283428; + break; + } + case 91: { + $$1267 = $$0266$lcssa;$$1284 = $$0283428; + break; + } + case 110: { + $117 = ($$0283428|0)<(0); + $118 = $117 << 31 >> 31; + _store_int($$0293,$$$0268,$$0283428,$118); + $$11 = $$5;$$1289 = $$0288425;$$2285 = $$0283428;$$6311 = $$$0305;$307 = $$327; + break L8; + break; + } + default: { + ___shlim($0,0); + while(1) { + $119 = HEAP32[$13>>2]|0; + $120 = HEAP32[$14>>2]|0; + $121 = ($119>>>0)<($120>>>0); + if ($121) { + $122 = ((($119)) + 1|0); + HEAP32[$13>>2] = $122; + $123 = HEAP8[$119>>0]|0; + $124 = $123&255; + $126 = $124; + } else { + $125 = (___shgetc($0)|0); + $126 = $125; + } + $127 = (_isspace($126)|0); + $128 = ($127|0)==(0); + if ($128) { + break; + } + } + $129 = HEAP32[$14>>2]|0; + $130 = ($129|0)==(0|0); + if ($130) { + $$pre507 = HEAP32[$13>>2]|0; + $138 = $$pre507; + } else { + $131 = HEAP32[$13>>2]|0; + $132 = ((($131)) + -1|0); + HEAP32[$13>>2] = $132; + $133 = $132; + $138 = $133; + } + $134 = HEAP32[$15>>2]|0; + $135 = HEAP32[$16>>2]|0; + $136 = (($134) + ($$0283428))|0; + $137 = (($136) + ($138))|0; + $139 = (($137) - ($135))|0; + $$1267 = $$0266$lcssa;$$1284 = $139; + } + } + ___shlim($0,$$1267); + $140 = HEAP32[$13>>2]|0; + $141 = HEAP32[$14>>2]|0; + $142 = ($140>>>0)<($141>>>0); + if ($142) { + $143 = ((($140)) + 1|0); + HEAP32[$13>>2] = $143; + $147 = $141; + } else { + $144 = (___shgetc($0)|0); + $145 = ($144|0)<(0); + if ($145) { + $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; + label = 137; + break L6; + } + $$pre509 = HEAP32[$14>>2]|0; + $147 = $$pre509; + } + $146 = ($147|0)==(0|0); + if (!($146)) { + $148 = HEAP32[$13>>2]|0; + $149 = ((($148)) + -1|0); + HEAP32[$13>>2] = $149; + } + L55: do { + switch ($trunc<<24>>24) { + case 91: case 99: case 115: { + $150 = ($$|0)==(99); + $151 = $$ | 16; + $152 = ($151|0)==(115); + L57: do { + if ($152) { + $153 = ($$|0)==(115); + _memset(($21|0),-1,256)|0; + HEAP8[$4>>0] = 0; + if ($153) { + HEAP8[$18>>0] = 0; + ;HEAP8[$17>>0]=0|0;HEAP8[$17+1>>0]=0|0;HEAP8[$17+2>>0]=0|0;HEAP8[$17+3>>0]=0|0;HEAP8[$17+4>>0]=0|0; + $$9 = $$5; + } else { + $$9 = $$5; + } + } else { + $154 = ((($$5)) + 1|0); + $155 = HEAP8[$154>>0]|0; + $156 = ($155<<24>>24)==(94); + $157 = ((($$5)) + 2|0); + $$0292 = $156&1; + $$6 = $156 ? $157 : $154; + $158 = $156&1; + _memset(($22|0),($158|0),256)|0; + HEAP8[$4>>0] = 0; + $159 = HEAP8[$$6>>0]|0; + switch ($159<<24>>24) { + case 45: { + $$sink443 = $19; + label = 64; + break; + } + case 93: { + $$sink443 = $20; + label = 64; + break; + } + default: { + $$pre514 = $$0292 ^ 1; + $$pre515 = $$pre514&255; + $$7$ph = $$6;$$pre$phi516Z2D = $$pre515; + } + } + if ((label|0) == 64) { + label = 0; + $160 = ((($$6)) + 1|0); + $161 = $$0292 ^ 1; + $162 = $161&255; + HEAP8[$$sink443>>0] = $162; + $$7$ph = $160;$$pre$phi516Z2D = $162; + } + $$7 = $$7$ph; + while(1) { + $163 = HEAP8[$$7>>0]|0; + L69: do { + switch ($163<<24>>24) { + case 0: { + $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; + label = 137; + break L6; + break; + } + case 93: { + $$9 = $$7; + break L57; + break; + } + case 45: { + $164 = ((($$7)) + 1|0); + $165 = HEAP8[$164>>0]|0; + switch ($165<<24>>24) { + case 93: case 0: { + $$8 = $$7;$176 = 45; + break L69; + break; + } + default: { + } + } + $166 = ((($$7)) + -1|0); + $167 = HEAP8[$166>>0]|0; + $168 = ($167&255)<($165&255); + if ($168) { + $169 = $167&255; + $$0286420 = $169; + while(1) { + $170 = (($$0286420) + 1)|0; + $171 = (($4) + ($170)|0); + HEAP8[$171>>0] = $$pre$phi516Z2D; + $172 = HEAP8[$164>>0]|0; + $173 = $172&255; + $174 = ($170|0)<($173|0); + if ($174) { + $$0286420 = $170; + } else { + $$8 = $164;$176 = $172; + break; + } + } + } else { + $$8 = $164;$176 = $165; + } + break; + } + default: { + $$8 = $$7;$176 = $163; + } + } + } while(0); + $175 = $176&255; + $177 = (($175) + 1)|0; + $178 = (($4) + ($177)|0); + HEAP8[$178>>0] = $$pre$phi516Z2D; + $179 = ((($$8)) + 1|0); + $$7 = $179; + } + } + } while(0); + $180 = (($$1267) + 1)|0; + $181 = $150 ? $180 : 31; + $182 = ($$$0268|0)==(1); + L77: do { + if ($182) { + if ($narrow) { + $183 = $181 << 2; + $184 = (_malloc($183)|0); + $185 = ($184|0)==(0|0); + if ($185) { + $$7312 = 0;$309 = 0;$narrow469 = 1; + label = 137; + break L6; + } else { + $311 = $184; + } + } else { + $311 = $$0293; + } + HEAP32[$3>>2] = 0; + HEAP32[$$sroa$2$0$$sroa_idx13>>2] = 0; + $$0276$ph = $181;$$0278$ph = 0;$$ph = $311; + L82: while(1) { + $186 = ($$ph|0)==(0|0); + $$0278$ph336 = $$0278$ph; + while(1) { + L86: while(1) { + $187 = HEAP32[$13>>2]|0; + $188 = HEAP32[$14>>2]|0; + $189 = ($187>>>0)<($188>>>0); + if ($189) { + $190 = ((($187)) + 1|0); + HEAP32[$13>>2] = $190; + $191 = HEAP8[$187>>0]|0; + $192 = $191&255; + $195 = $192; + } else { + $193 = (___shgetc($0)|0); + $195 = $193; + } + $194 = (($195) + 1)|0; + $196 = (($4) + ($194)|0); + $197 = HEAP8[$196>>0]|0; + $198 = ($197<<24>>24)==(0); + if ($198) { + break L82; + } + $199 = $195&255; + HEAP8[$6>>0] = $199; + $200 = (_mbrtowc($5,$6,1,$3)|0); + switch ($200|0) { + case -1: { + $$7312 = 0;$309 = $$ph;$narrow469 = $narrow; + label = 137; + break L6; + break; + } + case -2: { + break; + } + default: { + break L86; + } + } + } + if ($186) { + $$1279 = $$0278$ph336; + } else { + $201 = (($$ph) + ($$0278$ph336<<2)|0); + $202 = (($$0278$ph336) + 1)|0; + $203 = HEAP32[$5>>2]|0; + HEAP32[$201>>2] = $203; + $$1279 = $202; + } + $204 = ($$1279|0)==($$0276$ph|0); + $or$cond = $narrow & $204; + if ($or$cond) { + break; + } else { + $$0278$ph336 = $$1279; + } + } + $factor331 = $$0276$ph << 1; + $205 = $factor331 | 1; + $206 = $205 << 2; + $207 = (_realloc($$ph,$206)|0); + $208 = ($207|0)==(0|0); + if ($208) { + $$7312 = 0;$309 = $$ph;$narrow469 = 1; + label = 137; + break L6; + } else { + $$0278$ph$phi = $$0276$ph;$$0276$ph = $205;$$ph = $207;$$0278$ph = $$0278$ph$phi; + } + } + $209 = (_mbsinit($3)|0); + $210 = ($209|0)==(0); + if ($210) { + $$7312 = 0;$309 = $$ph;$narrow469 = $narrow; + label = 137; + break L6; + } else { + $$4282 = $$0278$ph336;$$4309 = 0;$$5299 = $$ph;$312 = $$ph; + } + } else { + if ($narrow) { + $211 = (_malloc($181)|0); + $212 = ($211|0)==(0|0); + if ($212) { + $$7312 = 0;$309 = 0;$narrow469 = 1; + label = 137; + break L6; + } else { + $$1277$ph = $181;$$2280$ph = 0;$$2307$ph = $211; + } + while(1) { + $$2280 = $$2280$ph; + while(1) { + $213 = HEAP32[$13>>2]|0; + $214 = HEAP32[$14>>2]|0; + $215 = ($213>>>0)<($214>>>0); + if ($215) { + $216 = ((($213)) + 1|0); + HEAP32[$13>>2] = $216; + $217 = HEAP8[$213>>0]|0; + $218 = $217&255; + $221 = $218; + } else { + $219 = (___shgetc($0)|0); + $221 = $219; + } + $220 = (($221) + 1)|0; + $222 = (($4) + ($220)|0); + $223 = HEAP8[$222>>0]|0; + $224 = ($223<<24>>24)==(0); + if ($224) { + $$4282 = $$2280;$$4309 = $$2307$ph;$$5299 = 0;$312 = 0; + break L77; + } + $225 = $221&255; + $226 = (($$2280) + 1)|0; + $227 = (($$2307$ph) + ($$2280)|0); + HEAP8[$227>>0] = $225; + $228 = ($226|0)==($$1277$ph|0); + if ($228) { + break; + } else { + $$2280 = $226; + } + } + $factor = $$1277$ph << 1; + $229 = $factor | 1; + $230 = (_realloc($$2307$ph,$229)|0); + $231 = ($230|0)==(0|0); + if ($231) { + $$7312 = $$2307$ph;$309 = 0;$narrow469 = 1; + label = 137; + break L6; + } else { + $$2280$ph$phi = $$1277$ph;$$1277$ph = $229;$$2307$ph = $230;$$2280$ph = $$2280$ph$phi; + } + } + } + $232 = ($$0293|0)==(0|0); + if ($232) { + $250 = $147; + while(1) { + $248 = HEAP32[$13>>2]|0; + $249 = ($248>>>0)<($250>>>0); + if ($249) { + $251 = ((($248)) + 1|0); + HEAP32[$13>>2] = $251; + $252 = HEAP8[$248>>0]|0; + $253 = $252&255; + $256 = $253; + } else { + $254 = (___shgetc($0)|0); + $256 = $254; + } + $255 = (($256) + 1)|0; + $257 = (($4) + ($255)|0); + $258 = HEAP8[$257>>0]|0; + $259 = ($258<<24>>24)==(0); + if ($259) { + $$4282 = 0;$$4309 = 0;$$5299 = 0;$312 = 0; + break L77; + } + $$pre512 = HEAP32[$14>>2]|0; + $250 = $$pre512; + } + } else { + $$3281 = 0;$235 = $147; + while(1) { + $233 = HEAP32[$13>>2]|0; + $234 = ($233>>>0)<($235>>>0); + if ($234) { + $236 = ((($233)) + 1|0); + HEAP32[$13>>2] = $236; + $237 = HEAP8[$233>>0]|0; + $238 = $237&255; + $241 = $238; + } else { + $239 = (___shgetc($0)|0); + $241 = $239; + } + $240 = (($241) + 1)|0; + $242 = (($4) + ($240)|0); + $243 = HEAP8[$242>>0]|0; + $244 = ($243<<24>>24)==(0); + if ($244) { + $$4282 = $$3281;$$4309 = $$0293;$$5299 = 0;$312 = 0; + break L77; + } + $245 = $241&255; + $246 = (($$3281) + 1)|0; + $247 = (($$0293) + ($$3281)|0); + HEAP8[$247>>0] = $245; + $$pre511 = HEAP32[$14>>2]|0; + $$3281 = $246;$235 = $$pre511; + } + } + } + } while(0); + $260 = HEAP32[$14>>2]|0; + $261 = ($260|0)==(0|0); + if ($261) { + $$pre513 = HEAP32[$13>>2]|0; + $268 = $$pre513; + } else { + $262 = HEAP32[$13>>2]|0; + $263 = ((($262)) + -1|0); + HEAP32[$13>>2] = $263; + $264 = $263; + $268 = $264; + } + $265 = HEAP32[$15>>2]|0; + $266 = HEAP32[$16>>2]|0; + $267 = (($268) - ($266))|0; + $269 = (($267) + ($265))|0; + $270 = ($269|0)==(0); + if ($270) { + $$9314$ph = $$4309;$$ph353 = $312; + label = 139; + break L6; + } + $$not = $150 ^ 1; + $271 = ($269|0)==($$1267|0); + $or$cond318 = $271 | $$not; + if (!($or$cond318)) { + $$9314$ph = $$4309;$$ph353 = $312; + label = 139; + break L6; + } + do { + if ($narrow) { + if ($182) { + HEAP32[$$0293>>2] = $$5299; + break; + } else { + HEAP32[$$0293>>2] = $$4309; + break; + } + } + } while(0); + if ($150) { + $$10 = $$9;$$5310 = $$4309;$310 = $312; + } else { + $272 = ($$5299|0)==(0|0); + if (!($272)) { + $273 = (($$5299) + ($$4282<<2)|0); + HEAP32[$273>>2] = 0; + } + $274 = ($$4309|0)==(0|0); + if ($274) { + $$10 = $$9;$$5310 = 0;$310 = $312; + break L55; + } + $275 = (($$4309) + ($$4282)|0); + HEAP8[$275>>0] = 0; + $$10 = $$9;$$5310 = $$4309;$310 = $312; + } + break; + } + case 120: case 88: case 112: { + $$0272 = 16; + label = 125; + break; + } + case 111: { + $$0272 = 8; + label = 125; + break; + } + case 117: case 100: { + $$0272 = 10; + label = 125; + break; + } + case 105: { + $$0272 = 0; + label = 125; + break; + } + case 71: case 103: case 70: case 102: case 69: case 101: case 65: case 97: { + $285 = (+___floatscan($0,$$$0268,0)); + $286 = HEAP32[$15>>2]|0; + $287 = HEAP32[$13>>2]|0; + $288 = HEAP32[$16>>2]|0; + $289 = (($288) - ($287))|0; + $290 = ($286|0)==($289|0); + if ($290) { + $$9314$ph = $$$0305;$$ph353 = $$327; + label = 139; + break L6; + } + $291 = ($$0293|0)==(0|0); + if ($291) { + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + } else { + switch ($$$0268|0) { + case 0: { + $292 = $285; + HEAPF32[$$0293>>2] = $292; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + break; + } + case 1: { + HEAPF64[$$0293>>3] = $285; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + break; + } + case 2: { + HEAPF64[$$0293>>3] = $285; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + break; + } + default: { + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + } + } + } + break; + } + default: { + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + } + } + } while(0); + do { + if ((label|0) == 125) { + label = 0; + $276 = (___intscan($0,$$0272,0,-1,-1)|0); + $277 = tempRet0; + $278 = HEAP32[$15>>2]|0; + $279 = HEAP32[$13>>2]|0; + $280 = HEAP32[$16>>2]|0; + $281 = (($280) - ($279))|0; + $282 = ($278|0)==($281|0); + if ($282) { + $$9314$ph = $$$0305;$$ph353 = $$327; + label = 139; + break L6; + } + $283 = ($$|0)==(112); + $or$cond3 = $100 & $283; + if ($or$cond3) { + $284 = $276; + HEAP32[$$0293>>2] = $284; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break; + } else { + _store_int($$0293,$$$0268,$276,$277); + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break; + } + } + } while(0); + $293 = HEAP32[$15>>2]|0; + $294 = HEAP32[$13>>2]|0; + $295 = HEAP32[$16>>2]|0; + $296 = (($293) + ($$1284))|0; + $297 = (($296) + ($294))|0; + $298 = (($297) - ($295))|0; + $299 = $100&1; + $$0288$ = (($299) + ($$0288425))|0; + $$11 = $$10;$$1289 = $$0288$;$$2285 = $298;$$6311 = $$5310;$307 = $310; + break L8; + } + } while(0); + $56 = $53&1; + $57 = (($$0273429) + ($56)|0); + ___shlim($0,0); + $58 = HEAP32[$13>>2]|0; + $59 = HEAP32[$14>>2]|0; + $60 = ($58>>>0)<($59>>>0); + if ($60) { + $61 = ((($58)) + 1|0); + HEAP32[$13>>2] = $61; + $62 = HEAP8[$58>>0]|0; + $63 = $62&255; + $68 = $63; + } else { + $64 = (___shgetc($0)|0); + $68 = $64; + } + $65 = HEAP8[$57>>0]|0; + $66 = $65&255; + $67 = ($68|0)==($66|0); + if (!($67)) { + label = 22; + break L6; + } + $75 = (($$0283428) + 1)|0; + $$11 = $57;$$1289 = $$0288425;$$2285 = $75;$$6311 = $$0305423;$307 = $102; + } else { + $$1274 = $$0273429; + while(1) { + $27 = ((($$1274)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = (_isspace($29)|0); + $31 = ($30|0)==(0); + if ($31) { + break; + } else { + $$1274 = $27; + } + } + ___shlim($0,0); + while(1) { + $32 = HEAP32[$13>>2]|0; + $33 = HEAP32[$14>>2]|0; + $34 = ($32>>>0)<($33>>>0); + if ($34) { + $35 = ((($32)) + 1|0); + HEAP32[$13>>2] = $35; + $36 = HEAP8[$32>>0]|0; + $37 = $36&255; + $39 = $37; + } else { + $38 = (___shgetc($0)|0); + $39 = $38; + } + $40 = (_isspace($39)|0); + $41 = ($40|0)==(0); + if ($41) { + break; + } + } + $42 = HEAP32[$14>>2]|0; + $43 = ($42|0)==(0|0); + if ($43) { + $$pre = HEAP32[$13>>2]|0; + $51 = $$pre; + } else { + $44 = HEAP32[$13>>2]|0; + $45 = ((($44)) + -1|0); + HEAP32[$13>>2] = $45; + $46 = $45; + $51 = $46; + } + $47 = HEAP32[$15>>2]|0; + $48 = HEAP32[$16>>2]|0; + $49 = (($47) + ($$0283428))|0; + $50 = (($49) + ($51))|0; + $52 = (($50) - ($48))|0; + $$11 = $$1274;$$1289 = $$0288425;$$2285 = $52;$$6311 = $$0305423;$307 = $102; + } + } while(0); + $300 = ((($$11)) + 1|0); + $301 = HEAP8[$300>>0]|0; + $302 = ($301<<24>>24)==(0); + if ($302) { + $$3291 = $$1289; + break L4; + } else { + $$0273429 = $300;$$0283428 = $$2285;$$0288425 = $$1289;$$0305423 = $$6311;$102 = $307;$24 = $301; + } + } + if ((label|0) == 22) { + $69 = HEAP32[$14>>2]|0; + $70 = ($69|0)==(0|0); + if (!($70)) { + $71 = HEAP32[$13>>2]|0; + $72 = ((($71)) + -1|0); + HEAP32[$13>>2] = $72; + } + $73 = ($68|0)>(-1); + $74 = ($$0288425|0)!=(0); + $or$cond5 = $74 | $73; + if ($or$cond5) { + $$3291 = $$0288425; + break; + } else { + $$1271 = 0;$$8313 = $$0305423;$308 = $102; + label = 138; + } + } + else if ((label|0) == 137) { + $$328$le441 = $narrow469&1; + $$old4 = ($$0288425|0)==(0); + if ($$old4) { + $$1271 = $$328$le441;$$8313 = $$7312;$308 = $309; + label = 138; + } else { + $$2 = $$328$le441;$$2290 = $$0288425;$$9314 = $$7312;$304 = $309; + } + } + else if ((label|0) == 139) { + $$328$le439 = $narrow&1; + $$2 = $$328$le439;$$2290 = $$0288425;$$9314 = $$9314$ph;$304 = $$ph353; + } + if ((label|0) == 138) { + $$2 = $$1271;$$2290 = -1;$$9314 = $$8313;$304 = $308; + } + $303 = ($$2|0)==(0); + if ($303) { + $$3291 = $$2290; + } else { + _free($$9314); + _free($304); + $$3291 = $$2290; + } + } + } while(0); + $305 = ($306|0)==(0); + if (!($305)) { + ___unlockfile($0); + } + STACKTOP = sp;return ($$3291|0); +} +function _arg_n($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded1 = 0, $expanded3 = 0, $expanded4 = 0, $expanded5 = 0, $vacopy_currentptr = 0, label = 0; + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + $vacopy_currentptr = HEAP32[$0>>2]|0; + HEAP32[$2>>2] = $vacopy_currentptr; + $$0 = $1; + while(1) { + $3 = ($$0>>>0)>(1); + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded1 = $5; + $expanded = (($expanded1) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded5 = $7; + $expanded4 = (($expanded5) - 1)|0; + $expanded3 = $expanded4 ^ -1; + $8 = $6 & $expanded3; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $11 = (($$0) + -1)|0; + if ($3) { + $$0 = $11; + } else { + break; + } + } + STACKTOP = sp;return ($10|0); +} +function _store_int($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0|0); + L1: do { + if (!($4)) { + switch ($1|0) { + case -2: { + $5 = $2&255; + HEAP8[$0>>0] = $5; + break L1; + break; + } + case -1: { + $6 = $2&65535; + HEAP16[$0>>1] = $6; + break L1; + break; + } + case 0: { + HEAP32[$0>>2] = $2; + break L1; + break; + } + case 1: { + HEAP32[$0>>2] = $2; + break L1; + break; + } + case 3: { + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $2; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $3; + break L1; + break; + } + default: { + break L1; + } + } + } + } while(0); + return; +} +function _mbsinit($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + $5 = 1; + } else { + $2 = HEAP32[$0>>2]|0; + $3 = ($2|0)==(0); + $5 = $3; + } + $4 = $5&1; + return ($4|0); +} +function _fseek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (___fseeko($0,$1,$2)|0); + return ($3|0); +} +function ___fseeko($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $7 = (___lockfile($0)|0); + $phitmp = ($7|0)==(0); + $8 = (___fseeko_unlocked($0,$1,$2)|0); + if ($phitmp) { + $9 = $8; + } else { + ___unlockfile($0); + $9 = $8; + } + } else { + $6 = (___fseeko_unlocked($0,$1,$2)|0); + $9 = $6; + } + return ($9|0); +} +function ___fseeko_unlocked($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(1); + if ($3) { + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 4|0); + $7 = HEAP32[$6>>2]|0; + $8 = (($1) - ($5))|0; + $9 = (($8) + ($7))|0; + $$019 = $9; + } else { + $$019 = $1; + } + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 28|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)>($13>>>0); + if ($14) { + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + (FUNCTION_TABLE_iiii[$16 & 15]($0,0,0)|0); + $17 = HEAP32[$10>>2]|0; + $18 = ($17|0)==(0|0); + if ($18) { + $$0 = -1; + } else { + label = 5; + } + } else { + label = 5; + } + if ((label|0) == 5) { + $19 = ((($0)) + 16|0); + HEAP32[$19>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + $22 = (FUNCTION_TABLE_iiii[$21 & 15]($0,$$019,$2)|0); + $23 = ($22|0)<(0); + if ($23) { + $$0 = -1; + } else { + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = 0; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = 0; + $26 = HEAP32[$0>>2]|0; + $27 = $26 & -17; + HEAP32[$0>>2] = $27; + $$0 = 0; + } + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strrchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($2) + 1)|0; + $4 = (___memrchr($0,$1,$3)|0); + return ($4|0); +} +function ___memrchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1&255; + $$09 = $2; + while(1) { + $4 = (($$09) + -1)|0; + $5 = ($$09|0)==(0); + if ($5) { + $$0 = 0; + break; + } + $6 = (($0) + ($4)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==($3<<24>>24); + if ($8) { + $$0 = $6; + break; + } else { + $$09 = $4; + } + } + return ($$0|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 18368; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _fread($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = ($1|0)==(0); + $$ = $5 ? 0 : $2; + $6 = ((($3)) + 76|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)>(-1); + if ($8) { + $9 = (___lockfile($3)|0); + $36 = $9; + } else { + $36 = 0; + } + $10 = ((($3)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ((($3)) + 8|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($3)) + 4|0); + $19 = HEAP32[$18>>2]|0; + $20 = $19; + $21 = (($17) - ($20))|0; + $22 = ($21|0)>(0); + $23 = ($21>>>0)<($4>>>0); + $$57 = $23 ? $21 : $4; + if ($22) { + $24 = (($4) - ($$57))|0; + $25 = (($0) + ($$57)|0); + _memcpy(($0|0),($19|0),($$57|0))|0; + $26 = (($19) + ($$57)|0); + HEAP32[$18>>2] = $26; + $$054$ph = $24;$$056$ph = $25; + } else { + $$054$ph = $4;$$056$ph = $0; + } + $27 = ($$054$ph|0)==(0); + L7: do { + if ($27) { + label = 13; + } else { + $28 = ((($3)) + 32|0); + $$05460 = $$054$ph;$$05659 = $$056$ph; + while(1) { + $29 = (___toread($3)|0); + $30 = ($29|0)==(0); + if (!($30)) { + break; + } + $31 = HEAP32[$28>>2]|0; + $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0); + $33 = (($32) + 1)|0; + $34 = ($33>>>0)<(2); + if ($34) { + break; + } + $39 = (($$05460) - ($32))|0; + $40 = (($$05659) + ($32)|0); + $41 = ($39|0)==(0); + if ($41) { + label = 13; + break L7; + } else { + $$05460 = $39;$$05659 = $40; + } + } + $35 = ($36|0)==(0); + if (!($35)) { + ___unlockfile($3); + } + $37 = (($4) - ($$05460))|0; + $38 = (($37>>>0) / ($1>>>0))&-1; + $$0 = $38; + } + } while(0); + if ((label|0) == 13) { + $42 = ($36|0)==(0); + if ($42) { + $$0 = $$; + } else { + ___unlockfile($3); + $$0 = $$; + } + } + return ($$0|0); +} +function _rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $phitmp = ($4|0)==(0); + (___fseeko_unlocked($0,0,0)|0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & -33; + HEAP32[$0>>2] = $6; + if (!($phitmp)) { + ___unlockfile($0); + } + } else { + (___fseeko_unlocked($0,0,0)|0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 & -33; + HEAP32[$0>>2] = $8; + } + return; +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[1035]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[5294]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[5294] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[5294] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[5294] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[5294] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[5295]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (21220 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[5295] = $24; + } else { + $25 = HEAP32[(21196)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(21188)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (21220 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[5295] = $77; + $98 = $77; + } else { + $78 = HEAP32[(21196)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(21200)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (21220 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[5295] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(21196)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(21188)>>2] = $84; + HEAP32[(21200)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(21184)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (21484 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(21196)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (21484 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(21184)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(21196)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(21196)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(21196)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(21200)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (21220 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[5295] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(21196)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(21188)>>2] = $$0193$lcssa$i; + HEAP32[(21200)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(21184)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (21484 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (21484 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(21188)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(21196)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (21484 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(21184)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(21196)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(21196)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(21196)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (21220 + ($425<<2)|0); + $427 = HEAP32[5295]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[5295] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(21196)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (21484 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(21184)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(21196)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(21196)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(21188)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(21200)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(21200)>>2] = $511; + HEAP32[(21188)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(21188)>>2] = 0; + HEAP32[(21200)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(21192)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(21192)>>2] = $526; + $527 = HEAP32[(21204)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(21204)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[5413]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(21660)>>2] = 4096; + HEAP32[(21656)>>2] = 4096; + HEAP32[(21664)>>2] = -1; + HEAP32[(21668)>>2] = -1; + HEAP32[(21672)>>2] = 0; + HEAP32[(21624)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[5413] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(21660)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(21620)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(21612)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(21624)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(21204)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (21628); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(21656)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(21612)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(21620)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(21660)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(21624)>>2]|0; + $612 = $611 | 4; + HEAP32[(21624)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(21612)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(21612)>>2] = $627; + $628 = HEAP32[(21616)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(21616)>>2] = $627; + } + $630 = HEAP32[(21204)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(21196)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(21196)>>2] = $$749$i; + } + HEAP32[(21628)>>2] = $$749$i; + HEAP32[(21632)>>2] = $$723948$i; + HEAP32[(21640)>>2] = 0; + $635 = HEAP32[5413]|0; + HEAP32[(21216)>>2] = $635; + HEAP32[(21212)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (21220 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(21204)>>2] = $649; + HEAP32[(21192)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(21668)>>2]|0; + HEAP32[(21208)>>2] = $655; + } else { + $$024371$i = (21628); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(21192)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(21204)>>2] = $679; + HEAP32[(21192)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(21668)>>2]|0; + HEAP32[(21208)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(21196)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(21196)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (21628); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(21192)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(21192)>>2] = $727; + HEAP32[(21204)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(21200)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(21188)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(21188)>>2] = $733; + HEAP32[(21200)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (21220 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[5295]|0; + $760 = $759 & $758; + HEAP32[5295] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (21484 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(21184)>>2]|0; + $803 = $802 & $801; + HEAP32[(21184)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(21196)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(21196)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(21196)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (21220 + ($836<<2)|0); + $838 = HEAP32[5295]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[5295] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(21196)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (21484 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(21184)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(21184)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(21196)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(21196)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (21628); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(21204)>>2] = $946; + HEAP32[(21192)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(21668)>>2]|0; + HEAP32[(21208)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(21628)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(21628)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(21628)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(21628)+12>>2]|0; + HEAP32[(21628)>>2] = $$749$i; + HEAP32[(21632)>>2] = $$723948$i; + HEAP32[(21640)>>2] = 0; + HEAP32[(21636)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (21220 + ($968<<2)|0); + $970 = HEAP32[5295]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[5295] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(21196)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (21484 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(21184)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(21184)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(21196)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(21196)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(21192)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(21192)>>2] = $1050; + $1051 = HEAP32[(21204)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(21204)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(21196)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(21200)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(21188)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (21220 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[5295]|0; + $38 = $37 & $36; + HEAP32[5295] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (21484 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(21184)>>2]|0; + $81 = $80 & $79; + HEAP32[(21184)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(21196)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(21196)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(21196)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(21204)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(21200)>>2]|0; + if ($121) { + $123 = HEAP32[(21192)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(21192)>>2] = $124; + HEAP32[(21204)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(21200)>>2] = 0; + HEAP32[(21188)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(21188)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(21188)>>2] = $130; + HEAP32[(21200)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (21220 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(21196)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[5295]|0; + $154 = $153 & $152; + HEAP32[5295] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(21196)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(21196)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(21196)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (21484 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(21184)>>2]|0; + $200 = $199 & $198; + HEAP32[(21184)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(21196)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(21196)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(21196)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(21200)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(21188)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (21220 + ($234<<2)|0); + $236 = HEAP32[5295]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[5295] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(21196)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (21484 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(21184)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(21184)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(21196)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(21196)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(21212)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(21212)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (21636); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(21212)>>2] = -1; + return; +} +function _realloc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = (_malloc($1)|0); + $$1 = $3; + return ($$1|0); + } + $4 = ($1>>>0)>(4294967231); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 12; + $$1 = 0; + return ($$1|0); + } + $6 = ($1>>>0)<(11); + $7 = (($1) + 11)|0; + $8 = $7 & -8; + $9 = $6 ? 16 : $8; + $10 = ((($0)) + -8|0); + $11 = (_try_realloc_chunk($10,$9)|0); + $12 = ($11|0)==(0|0); + if (!($12)) { + $13 = ((($11)) + 8|0); + $$1 = $13; + return ($$1|0); + } + $14 = (_malloc($1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$1 = 0; + return ($$1|0); + } + $16 = ((($0)) + -4|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 & -8; + $19 = $17 & 3; + $20 = ($19|0)==(0); + $21 = $20 ? 8 : 4; + $22 = (($18) - ($21))|0; + $23 = ($22>>>0)<($1>>>0); + $24 = $23 ? $22 : $1; + _memcpy(($14|0),($0|0),($24|0))|0; + _free($0); + $$1 = $14; + return ($$1|0); +} +function _try_realloc_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1272 = 0, $$1275 = 0, $$2 = 0, $$3 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $cond = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & -8; + $5 = (($0) + ($4)|0); + $6 = HEAP32[(21196)>>2]|0; + $7 = $3 & 3; + $notlhs = ($0>>>0)>=($6>>>0); + $notrhs = ($7|0)!=(1); + $or$cond$not = $notrhs & $notlhs; + $8 = ($0>>>0)<($5>>>0); + $or$cond3 = $or$cond$not & $8; + if (!($or$cond3)) { + _abort(); + // unreachable; + } + $9 = ((($5)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = $10 & 1; + $12 = ($11|0)==(0); + if ($12) { + _abort(); + // unreachable; + } + $13 = ($7|0)==(0); + if ($13) { + $14 = ($1>>>0)<(256); + if ($14) { + $$2 = 0; + return ($$2|0); + } + $15 = (($1) + 4)|0; + $16 = ($4>>>0)<($15>>>0); + if (!($16)) { + $17 = (($4) - ($1))|0; + $18 = HEAP32[(21660)>>2]|0; + $19 = $18 << 1; + $20 = ($17>>>0)>($19>>>0); + if (!($20)) { + $$2 = $0; + return ($$2|0); + } + } + $$2 = 0; + return ($$2|0); + } + $21 = ($4>>>0)<($1>>>0); + if (!($21)) { + $22 = (($4) - ($1))|0; + $23 = ($22>>>0)>(15); + if (!($23)) { + $$2 = $0; + return ($$2|0); + } + $24 = (($0) + ($1)|0); + $25 = $3 & 1; + $26 = $25 | $1; + $27 = $26 | 2; + HEAP32[$2>>2] = $27; + $28 = ((($24)) + 4|0); + $29 = $22 | 3; + HEAP32[$28>>2] = $29; + $30 = (($24) + ($22)|0); + $31 = ((($30)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = $32 | 1; + HEAP32[$31>>2] = $33; + _dispose_chunk($24,$22); + $$2 = $0; + return ($$2|0); + } + $34 = HEAP32[(21204)>>2]|0; + $35 = ($5|0)==($34|0); + if ($35) { + $36 = HEAP32[(21192)>>2]|0; + $37 = (($36) + ($4))|0; + $38 = ($37>>>0)>($1>>>0); + $39 = (($37) - ($1))|0; + $40 = (($0) + ($1)|0); + if (!($38)) { + $$2 = 0; + return ($$2|0); + } + $41 = $39 | 1; + $42 = ((($40)) + 4|0); + $43 = $3 & 1; + $44 = $43 | $1; + $45 = $44 | 2; + HEAP32[$2>>2] = $45; + HEAP32[$42>>2] = $41; + HEAP32[(21204)>>2] = $40; + HEAP32[(21192)>>2] = $39; + $$2 = $0; + return ($$2|0); + } + $46 = HEAP32[(21200)>>2]|0; + $47 = ($5|0)==($46|0); + if ($47) { + $48 = HEAP32[(21188)>>2]|0; + $49 = (($48) + ($4))|0; + $50 = ($49>>>0)<($1>>>0); + if ($50) { + $$2 = 0; + return ($$2|0); + } + $51 = (($49) - ($1))|0; + $52 = ($51>>>0)>(15); + $53 = $3 & 1; + if ($52) { + $54 = (($0) + ($1)|0); + $55 = (($54) + ($51)|0); + $56 = $53 | $1; + $57 = $56 | 2; + HEAP32[$2>>2] = $57; + $58 = ((($54)) + 4|0); + $59 = $51 | 1; + HEAP32[$58>>2] = $59; + HEAP32[$55>>2] = $51; + $60 = ((($55)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = $61 & -2; + HEAP32[$60>>2] = $62; + $storemerge = $54;$storemerge1 = $51; + } else { + $63 = $53 | $49; + $64 = $63 | 2; + HEAP32[$2>>2] = $64; + $65 = (($0) + ($49)|0); + $66 = ((($65)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = $67 | 1; + HEAP32[$66>>2] = $68; + $storemerge = 0;$storemerge1 = 0; + } + HEAP32[(21188)>>2] = $storemerge1; + HEAP32[(21200)>>2] = $storemerge; + $$2 = $0; + return ($$2|0); + } + $69 = $10 & 2; + $70 = ($69|0)==(0); + if (!($70)) { + $$2 = 0; + return ($$2|0); + } + $71 = $10 & -8; + $72 = (($71) + ($4))|0; + $73 = ($72>>>0)<($1>>>0); + if ($73) { + $$2 = 0; + return ($$2|0); + } + $74 = (($72) - ($1))|0; + $75 = $10 >>> 3; + $76 = ($10>>>0)<(256); + L49: do { + if ($76) { + $77 = ((($5)) + 8|0); + $78 = HEAP32[$77>>2]|0; + $79 = ((($5)) + 12|0); + $80 = HEAP32[$79>>2]|0; + $81 = $75 << 1; + $82 = (21220 + ($81<<2)|0); + $83 = ($78|0)==($82|0); + if (!($83)) { + $84 = ($78>>>0)<($6>>>0); + if ($84) { + _abort(); + // unreachable; + } + $85 = ((($78)) + 12|0); + $86 = HEAP32[$85>>2]|0; + $87 = ($86|0)==($5|0); + if (!($87)) { + _abort(); + // unreachable; + } + } + $88 = ($80|0)==($78|0); + if ($88) { + $89 = 1 << $75; + $90 = $89 ^ -1; + $91 = HEAP32[5295]|0; + $92 = $91 & $90; + HEAP32[5295] = $92; + break; + } + $93 = ($80|0)==($82|0); + if ($93) { + $$pre = ((($80)) + 8|0); + $$pre$phiZ2D = $$pre; + } else { + $94 = ($80>>>0)<($6>>>0); + if ($94) { + _abort(); + // unreachable; + } + $95 = ((($80)) + 8|0); + $96 = HEAP32[$95>>2]|0; + $97 = ($96|0)==($5|0); + if ($97) { + $$pre$phiZ2D = $95; + } else { + _abort(); + // unreachable; + } + } + $98 = ((($78)) + 12|0); + HEAP32[$98>>2] = $80; + HEAP32[$$pre$phiZ2D>>2] = $78; + } else { + $99 = ((($5)) + 24|0); + $100 = HEAP32[$99>>2]|0; + $101 = ((($5)) + 12|0); + $102 = HEAP32[$101>>2]|0; + $103 = ($102|0)==($5|0); + do { + if ($103) { + $113 = ((($5)) + 16|0); + $114 = ((($113)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = ($115|0)==(0|0); + if ($116) { + $117 = HEAP32[$113>>2]|0; + $118 = ($117|0)==(0|0); + if ($118) { + $$3 = 0; + break; + } else { + $$1272 = $117;$$1275 = $113; + } + } else { + $$1272 = $115;$$1275 = $114; + } + while(1) { + $119 = ((($$1272)) + 20|0); + $120 = HEAP32[$119>>2]|0; + $121 = ($120|0)==(0|0); + if (!($121)) { + $$1272 = $120;$$1275 = $119; + continue; + } + $122 = ((($$1272)) + 16|0); + $123 = HEAP32[$122>>2]|0; + $124 = ($123|0)==(0|0); + if ($124) { + break; + } else { + $$1272 = $123;$$1275 = $122; + } + } + $125 = ($$1275>>>0)<($6>>>0); + if ($125) { + _abort(); + // unreachable; + } else { + HEAP32[$$1275>>2] = 0; + $$3 = $$1272; + break; + } + } else { + $104 = ((($5)) + 8|0); + $105 = HEAP32[$104>>2]|0; + $106 = ($105>>>0)<($6>>>0); + if ($106) { + _abort(); + // unreachable; + } + $107 = ((($105)) + 12|0); + $108 = HEAP32[$107>>2]|0; + $109 = ($108|0)==($5|0); + if (!($109)) { + _abort(); + // unreachable; + } + $110 = ((($102)) + 8|0); + $111 = HEAP32[$110>>2]|0; + $112 = ($111|0)==($5|0); + if ($112) { + HEAP32[$107>>2] = $102; + HEAP32[$110>>2] = $105; + $$3 = $102; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $126 = ($100|0)==(0|0); + if (!($126)) { + $127 = ((($5)) + 28|0); + $128 = HEAP32[$127>>2]|0; + $129 = (21484 + ($128<<2)|0); + $130 = HEAP32[$129>>2]|0; + $131 = ($5|0)==($130|0); + do { + if ($131) { + HEAP32[$129>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $132 = 1 << $128; + $133 = $132 ^ -1; + $134 = HEAP32[(21184)>>2]|0; + $135 = $134 & $133; + HEAP32[(21184)>>2] = $135; + break L49; + } + } else { + $136 = HEAP32[(21196)>>2]|0; + $137 = ($100>>>0)<($136>>>0); + if ($137) { + _abort(); + // unreachable; + } else { + $138 = ((($100)) + 16|0); + $139 = HEAP32[$138>>2]|0; + $not$ = ($139|0)!=($5|0); + $$sink1 = $not$&1; + $140 = (((($100)) + 16|0) + ($$sink1<<2)|0); + HEAP32[$140>>2] = $$3; + $141 = ($$3|0)==(0|0); + if ($141) { + break L49; + } else { + break; + } + } + } + } while(0); + $142 = HEAP32[(21196)>>2]|0; + $143 = ($$3>>>0)<($142>>>0); + if ($143) { + _abort(); + // unreachable; + } + $144 = ((($$3)) + 24|0); + HEAP32[$144>>2] = $100; + $145 = ((($5)) + 16|0); + $146 = HEAP32[$145>>2]|0; + $147 = ($146|0)==(0|0); + do { + if (!($147)) { + $148 = ($146>>>0)<($142>>>0); + if ($148) { + _abort(); + // unreachable; + } else { + $149 = ((($$3)) + 16|0); + HEAP32[$149>>2] = $146; + $150 = ((($146)) + 24|0); + HEAP32[$150>>2] = $$3; + break; + } + } + } while(0); + $151 = ((($145)) + 4|0); + $152 = HEAP32[$151>>2]|0; + $153 = ($152|0)==(0|0); + if (!($153)) { + $154 = HEAP32[(21196)>>2]|0; + $155 = ($152>>>0)<($154>>>0); + if ($155) { + _abort(); + // unreachable; + } else { + $156 = ((($$3)) + 20|0); + HEAP32[$156>>2] = $152; + $157 = ((($152)) + 24|0); + HEAP32[$157>>2] = $$3; + break; + } + } + } + } + } while(0); + $158 = ($74>>>0)<(16); + $159 = $3 & 1; + if ($158) { + $160 = $72 | $159; + $161 = $160 | 2; + HEAP32[$2>>2] = $161; + $162 = (($0) + ($72)|0); + $163 = ((($162)) + 4|0); + $164 = HEAP32[$163>>2]|0; + $165 = $164 | 1; + HEAP32[$163>>2] = $165; + $$2 = $0; + return ($$2|0); + } else { + $166 = (($0) + ($1)|0); + $167 = $159 | $1; + $168 = $167 | 2; + HEAP32[$2>>2] = $168; + $169 = ((($166)) + 4|0); + $170 = $74 | 3; + HEAP32[$169>>2] = $170; + $171 = (($166) + ($74)|0); + $172 = ((($171)) + 4|0); + $173 = HEAP32[$172>>2]|0; + $174 = $173 | 1; + HEAP32[$172>>2] = $174; + _dispose_chunk($166,$74); + $$2 = $0; + return ($$2|0); + } + return (0)|0; +} +function _dispose_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0419 = 0, $$0420 = 0, $$0431 = 0, $$0438 = 0, $$1 = 0, $$1418 = 0, $$1426 = 0, $$1429 = 0, $$1433 = 0, $$1437 = 0, $$2 = 0, $$3 = 0, $$3435 = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $$pre23 = 0, $$pre25 = 0, $$sink2 = 0; + var $$sink4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond17 = 0, $not$ = 0, $not$1 = 0, $not$19 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0) + ($1)|0); + $3 = ((($0)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = $4 & 1; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = HEAP32[$0>>2]|0; + $8 = $4 & 3; + $9 = ($8|0)==(0); + if ($9) { + return; + } + $10 = (0 - ($7))|0; + $11 = (($0) + ($10)|0); + $12 = (($7) + ($1))|0; + $13 = HEAP32[(21196)>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + _abort(); + // unreachable; + } + $15 = HEAP32[(21200)>>2]|0; + $16 = ($11|0)==($15|0); + if ($16) { + $100 = ((($2)) + 4|0); + $101 = HEAP32[$100>>2]|0; + $102 = $101 & 3; + $103 = ($102|0)==(3); + if (!($103)) { + $$1 = $11;$$1418 = $12; + break; + } + $104 = (($11) + ($12)|0); + $105 = ((($11)) + 4|0); + $106 = $12 | 1; + $107 = $101 & -2; + HEAP32[(21188)>>2] = $12; + HEAP32[$100>>2] = $107; + HEAP32[$105>>2] = $106; + HEAP32[$104>>2] = $12; + return; + } + $17 = $7 >>> 3; + $18 = ($7>>>0)<(256); + if ($18) { + $19 = ((($11)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($11)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = $17 << 1; + $24 = (21220 + ($23<<2)|0); + $25 = ($20|0)==($24|0); + if (!($25)) { + $26 = ($20>>>0)<($13>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($11|0); + if (!($29)) { + _abort(); + // unreachable; + } + } + $30 = ($22|0)==($20|0); + if ($30) { + $31 = 1 << $17; + $32 = $31 ^ -1; + $33 = HEAP32[5295]|0; + $34 = $33 & $32; + HEAP32[5295] = $34; + $$1 = $11;$$1418 = $12; + break; + } + $35 = ($22|0)==($24|0); + if ($35) { + $$pre25 = ((($22)) + 8|0); + $$pre$phi26Z2D = $$pre25; + } else { + $36 = ($22>>>0)<($13>>>0); + if ($36) { + _abort(); + // unreachable; + } + $37 = ((($22)) + 8|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==($11|0); + if ($39) { + $$pre$phi26Z2D = $37; + } else { + _abort(); + // unreachable; + } + } + $40 = ((($20)) + 12|0); + HEAP32[$40>>2] = $22; + HEAP32[$$pre$phi26Z2D>>2] = $20; + $$1 = $11;$$1418 = $12; + break; + } + $41 = ((($11)) + 24|0); + $42 = HEAP32[$41>>2]|0; + $43 = ((($11)) + 12|0); + $44 = HEAP32[$43>>2]|0; + $45 = ($44|0)==($11|0); + do { + if ($45) { + $55 = ((($11)) + 16|0); + $56 = ((($55)) + 4|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==(0|0); + if ($58) { + $59 = HEAP32[$55>>2]|0; + $60 = ($59|0)==(0|0); + if ($60) { + $$3 = 0; + break; + } else { + $$1426 = $59;$$1429 = $55; + } + } else { + $$1426 = $57;$$1429 = $56; + } + while(1) { + $61 = ((($$1426)) + 20|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $$1426 = $62;$$1429 = $61; + continue; + } + $64 = ((($$1426)) + 16|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if ($66) { + break; + } else { + $$1426 = $65;$$1429 = $64; + } + } + $67 = ($$1429>>>0)<($13>>>0); + if ($67) { + _abort(); + // unreachable; + } else { + HEAP32[$$1429>>2] = 0; + $$3 = $$1426; + break; + } + } else { + $46 = ((($11)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($47>>>0)<($13>>>0); + if ($48) { + _abort(); + // unreachable; + } + $49 = ((($47)) + 12|0); + $50 = HEAP32[$49>>2]|0; + $51 = ($50|0)==($11|0); + if (!($51)) { + _abort(); + // unreachable; + } + $52 = ((($44)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($53|0)==($11|0); + if ($54) { + HEAP32[$49>>2] = $44; + HEAP32[$52>>2] = $47; + $$3 = $44; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $68 = ($42|0)==(0|0); + if ($68) { + $$1 = $11;$$1418 = $12; + } else { + $69 = ((($11)) + 28|0); + $70 = HEAP32[$69>>2]|0; + $71 = (21484 + ($70<<2)|0); + $72 = HEAP32[$71>>2]|0; + $73 = ($11|0)==($72|0); + do { + if ($73) { + HEAP32[$71>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $74 = 1 << $70; + $75 = $74 ^ -1; + $76 = HEAP32[(21184)>>2]|0; + $77 = $76 & $75; + HEAP32[(21184)>>2] = $77; + $$1 = $11;$$1418 = $12; + break L1; + } + } else { + $78 = HEAP32[(21196)>>2]|0; + $79 = ($42>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } else { + $80 = ((($42)) + 16|0); + $81 = HEAP32[$80>>2]|0; + $not$1 = ($81|0)!=($11|0); + $$sink2 = $not$1&1; + $82 = (((($42)) + 16|0) + ($$sink2<<2)|0); + HEAP32[$82>>2] = $$3; + $83 = ($$3|0)==(0|0); + if ($83) { + $$1 = $11;$$1418 = $12; + break L1; + } else { + break; + } + } + } + } while(0); + $84 = HEAP32[(21196)>>2]|0; + $85 = ($$3>>>0)<($84>>>0); + if ($85) { + _abort(); + // unreachable; + } + $86 = ((($$3)) + 24|0); + HEAP32[$86>>2] = $42; + $87 = ((($11)) + 16|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0|0); + do { + if (!($89)) { + $90 = ($88>>>0)<($84>>>0); + if ($90) { + _abort(); + // unreachable; + } else { + $91 = ((($$3)) + 16|0); + HEAP32[$91>>2] = $88; + $92 = ((($88)) + 24|0); + HEAP32[$92>>2] = $$3; + break; + } + } + } while(0); + $93 = ((($87)) + 4|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)==(0|0); + if ($95) { + $$1 = $11;$$1418 = $12; + } else { + $96 = HEAP32[(21196)>>2]|0; + $97 = ($94>>>0)<($96>>>0); + if ($97) { + _abort(); + // unreachable; + } else { + $98 = ((($$3)) + 20|0); + HEAP32[$98>>2] = $94; + $99 = ((($94)) + 24|0); + HEAP32[$99>>2] = $$3; + $$1 = $11;$$1418 = $12; + break; + } + } + } + } else { + $$1 = $0;$$1418 = $1; + } + } while(0); + $108 = HEAP32[(21196)>>2]|0; + $109 = ($2>>>0)<($108>>>0); + if ($109) { + _abort(); + // unreachable; + } + $110 = ((($2)) + 4|0); + $111 = HEAP32[$110>>2]|0; + $112 = $111 & 2; + $113 = ($112|0)==(0); + if ($113) { + $114 = HEAP32[(21204)>>2]|0; + $115 = ($2|0)==($114|0); + $116 = HEAP32[(21200)>>2]|0; + if ($115) { + $117 = HEAP32[(21192)>>2]|0; + $118 = (($117) + ($$1418))|0; + HEAP32[(21192)>>2] = $118; + HEAP32[(21204)>>2] = $$1; + $119 = $118 | 1; + $120 = ((($$1)) + 4|0); + HEAP32[$120>>2] = $119; + $121 = ($$1|0)==($116|0); + if (!($121)) { + return; + } + HEAP32[(21200)>>2] = 0; + HEAP32[(21188)>>2] = 0; + return; + } + $122 = ($2|0)==($116|0); + if ($122) { + $123 = HEAP32[(21188)>>2]|0; + $124 = (($123) + ($$1418))|0; + HEAP32[(21188)>>2] = $124; + HEAP32[(21200)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = (($$1) + ($124)|0); + HEAP32[$127>>2] = $124; + return; + } + $128 = $111 & -8; + $129 = (($128) + ($$1418))|0; + $130 = $111 >>> 3; + $131 = ($111>>>0)<(256); + L96: do { + if ($131) { + $132 = ((($2)) + 8|0); + $133 = HEAP32[$132>>2]|0; + $134 = ((($2)) + 12|0); + $135 = HEAP32[$134>>2]|0; + $136 = $130 << 1; + $137 = (21220 + ($136<<2)|0); + $138 = ($133|0)==($137|0); + if (!($138)) { + $139 = ($133>>>0)<($108>>>0); + if ($139) { + _abort(); + // unreachable; + } + $140 = ((($133)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = ($141|0)==($2|0); + if (!($142)) { + _abort(); + // unreachable; + } + } + $143 = ($135|0)==($133|0); + if ($143) { + $144 = 1 << $130; + $145 = $144 ^ -1; + $146 = HEAP32[5295]|0; + $147 = $146 & $145; + HEAP32[5295] = $147; + break; + } + $148 = ($135|0)==($137|0); + if ($148) { + $$pre23 = ((($135)) + 8|0); + $$pre$phi24Z2D = $$pre23; + } else { + $149 = ($135>>>0)<($108>>>0); + if ($149) { + _abort(); + // unreachable; + } + $150 = ((($135)) + 8|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==($2|0); + if ($152) { + $$pre$phi24Z2D = $150; + } else { + _abort(); + // unreachable; + } + } + $153 = ((($133)) + 12|0); + HEAP32[$153>>2] = $135; + HEAP32[$$pre$phi24Z2D>>2] = $133; + } else { + $154 = ((($2)) + 24|0); + $155 = HEAP32[$154>>2]|0; + $156 = ((($2)) + 12|0); + $157 = HEAP32[$156>>2]|0; + $158 = ($157|0)==($2|0); + do { + if ($158) { + $168 = ((($2)) + 16|0); + $169 = ((($168)) + 4|0); + $170 = HEAP32[$169>>2]|0; + $171 = ($170|0)==(0|0); + if ($171) { + $172 = HEAP32[$168>>2]|0; + $173 = ($172|0)==(0|0); + if ($173) { + $$3435 = 0; + break; + } else { + $$1433 = $172;$$1437 = $168; + } + } else { + $$1433 = $170;$$1437 = $169; + } + while(1) { + $174 = ((($$1433)) + 20|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==(0|0); + if (!($176)) { + $$1433 = $175;$$1437 = $174; + continue; + } + $177 = ((($$1433)) + 16|0); + $178 = HEAP32[$177>>2]|0; + $179 = ($178|0)==(0|0); + if ($179) { + break; + } else { + $$1433 = $178;$$1437 = $177; + } + } + $180 = ($$1437>>>0)<($108>>>0); + if ($180) { + _abort(); + // unreachable; + } else { + HEAP32[$$1437>>2] = 0; + $$3435 = $$1433; + break; + } + } else { + $159 = ((($2)) + 8|0); + $160 = HEAP32[$159>>2]|0; + $161 = ($160>>>0)<($108>>>0); + if ($161) { + _abort(); + // unreachable; + } + $162 = ((($160)) + 12|0); + $163 = HEAP32[$162>>2]|0; + $164 = ($163|0)==($2|0); + if (!($164)) { + _abort(); + // unreachable; + } + $165 = ((($157)) + 8|0); + $166 = HEAP32[$165>>2]|0; + $167 = ($166|0)==($2|0); + if ($167) { + HEAP32[$162>>2] = $157; + HEAP32[$165>>2] = $160; + $$3435 = $157; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $181 = ($155|0)==(0|0); + if (!($181)) { + $182 = ((($2)) + 28|0); + $183 = HEAP32[$182>>2]|0; + $184 = (21484 + ($183<<2)|0); + $185 = HEAP32[$184>>2]|0; + $186 = ($2|0)==($185|0); + do { + if ($186) { + HEAP32[$184>>2] = $$3435; + $cond17 = ($$3435|0)==(0|0); + if ($cond17) { + $187 = 1 << $183; + $188 = $187 ^ -1; + $189 = HEAP32[(21184)>>2]|0; + $190 = $189 & $188; + HEAP32[(21184)>>2] = $190; + break L96; + } + } else { + $191 = HEAP32[(21196)>>2]|0; + $192 = ($155>>>0)<($191>>>0); + if ($192) { + _abort(); + // unreachable; + } else { + $193 = ((($155)) + 16|0); + $194 = HEAP32[$193>>2]|0; + $not$ = ($194|0)!=($2|0); + $$sink4 = $not$&1; + $195 = (((($155)) + 16|0) + ($$sink4<<2)|0); + HEAP32[$195>>2] = $$3435; + $196 = ($$3435|0)==(0|0); + if ($196) { + break L96; + } else { + break; + } + } + } + } while(0); + $197 = HEAP32[(21196)>>2]|0; + $198 = ($$3435>>>0)<($197>>>0); + if ($198) { + _abort(); + // unreachable; + } + $199 = ((($$3435)) + 24|0); + HEAP32[$199>>2] = $155; + $200 = ((($2)) + 16|0); + $201 = HEAP32[$200>>2]|0; + $202 = ($201|0)==(0|0); + do { + if (!($202)) { + $203 = ($201>>>0)<($197>>>0); + if ($203) { + _abort(); + // unreachable; + } else { + $204 = ((($$3435)) + 16|0); + HEAP32[$204>>2] = $201; + $205 = ((($201)) + 24|0); + HEAP32[$205>>2] = $$3435; + break; + } + } + } while(0); + $206 = ((($200)) + 4|0); + $207 = HEAP32[$206>>2]|0; + $208 = ($207|0)==(0|0); + if (!($208)) { + $209 = HEAP32[(21196)>>2]|0; + $210 = ($207>>>0)<($209>>>0); + if ($210) { + _abort(); + // unreachable; + } else { + $211 = ((($$3435)) + 20|0); + HEAP32[$211>>2] = $207; + $212 = ((($207)) + 24|0); + HEAP32[$212>>2] = $$3435; + break; + } + } + } + } + } while(0); + $213 = $129 | 1; + $214 = ((($$1)) + 4|0); + HEAP32[$214>>2] = $213; + $215 = (($$1) + ($129)|0); + HEAP32[$215>>2] = $129; + $216 = HEAP32[(21200)>>2]|0; + $217 = ($$1|0)==($216|0); + if ($217) { + HEAP32[(21188)>>2] = $129; + return; + } else { + $$2 = $129; + } + } else { + $218 = $111 & -2; + HEAP32[$110>>2] = $218; + $219 = $$1418 | 1; + $220 = ((($$1)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$1) + ($$1418)|0); + HEAP32[$221>>2] = $$1418; + $$2 = $$1418; + } + $222 = $$2 >>> 3; + $223 = ($$2>>>0)<(256); + if ($223) { + $224 = $222 << 1; + $225 = (21220 + ($224<<2)|0); + $226 = HEAP32[5295]|0; + $227 = 1 << $222; + $228 = $226 & $227; + $229 = ($228|0)==(0); + if ($229) { + $230 = $226 | $227; + HEAP32[5295] = $230; + $$pre = ((($225)) + 8|0); + $$0438 = $225;$$pre$phiZ2D = $$pre; + } else { + $231 = ((($225)) + 8|0); + $232 = HEAP32[$231>>2]|0; + $233 = HEAP32[(21196)>>2]|0; + $234 = ($232>>>0)<($233>>>0); + if ($234) { + _abort(); + // unreachable; + } else { + $$0438 = $232;$$pre$phiZ2D = $231; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $235 = ((($$0438)) + 12|0); + HEAP32[$235>>2] = $$1; + $236 = ((($$1)) + 8|0); + HEAP32[$236>>2] = $$0438; + $237 = ((($$1)) + 12|0); + HEAP32[$237>>2] = $225; + return; + } + $238 = $$2 >>> 8; + $239 = ($238|0)==(0); + if ($239) { + $$0431 = 0; + } else { + $240 = ($$2>>>0)>(16777215); + if ($240) { + $$0431 = 31; + } else { + $241 = (($238) + 1048320)|0; + $242 = $241 >>> 16; + $243 = $242 & 8; + $244 = $238 << $243; + $245 = (($244) + 520192)|0; + $246 = $245 >>> 16; + $247 = $246 & 4; + $248 = $247 | $243; + $249 = $244 << $247; + $250 = (($249) + 245760)|0; + $251 = $250 >>> 16; + $252 = $251 & 2; + $253 = $248 | $252; + $254 = (14 - ($253))|0; + $255 = $249 << $252; + $256 = $255 >>> 15; + $257 = (($254) + ($256))|0; + $258 = $257 << 1; + $259 = (($257) + 7)|0; + $260 = $$2 >>> $259; + $261 = $260 & 1; + $262 = $261 | $258; + $$0431 = $262; + } + } + $263 = (21484 + ($$0431<<2)|0); + $264 = ((($$1)) + 28|0); + HEAP32[$264>>2] = $$0431; + $265 = ((($$1)) + 16|0); + $266 = ((($$1)) + 20|0); + HEAP32[$266>>2] = 0; + HEAP32[$265>>2] = 0; + $267 = HEAP32[(21184)>>2]|0; + $268 = 1 << $$0431; + $269 = $267 & $268; + $270 = ($269|0)==(0); + if ($270) { + $271 = $267 | $268; + HEAP32[(21184)>>2] = $271; + HEAP32[$263>>2] = $$1; + $272 = ((($$1)) + 24|0); + HEAP32[$272>>2] = $263; + $273 = ((($$1)) + 12|0); + HEAP32[$273>>2] = $$1; + $274 = ((($$1)) + 8|0); + HEAP32[$274>>2] = $$1; + return; + } + $275 = HEAP32[$263>>2]|0; + $276 = ($$0431|0)==(31); + $277 = $$0431 >>> 1; + $278 = (25 - ($277))|0; + $279 = $276 ? 0 : $278; + $280 = $$2 << $279; + $$0419 = $280;$$0420 = $275; + while(1) { + $281 = ((($$0420)) + 4|0); + $282 = HEAP32[$281>>2]|0; + $283 = $282 & -8; + $284 = ($283|0)==($$2|0); + if ($284) { + label = 121; + break; + } + $285 = $$0419 >>> 31; + $286 = (((($$0420)) + 16|0) + ($285<<2)|0); + $287 = $$0419 << 1; + $288 = HEAP32[$286>>2]|0; + $289 = ($288|0)==(0|0); + if ($289) { + label = 118; + break; + } else { + $$0419 = $287;$$0420 = $288; + } + } + if ((label|0) == 118) { + $290 = HEAP32[(21196)>>2]|0; + $291 = ($286>>>0)<($290>>>0); + if ($291) { + _abort(); + // unreachable; + } + HEAP32[$286>>2] = $$1; + $292 = ((($$1)) + 24|0); + HEAP32[$292>>2] = $$0420; + $293 = ((($$1)) + 12|0); + HEAP32[$293>>2] = $$1; + $294 = ((($$1)) + 8|0); + HEAP32[$294>>2] = $$1; + return; + } + else if ((label|0) == 121) { + $295 = ((($$0420)) + 8|0); + $296 = HEAP32[$295>>2]|0; + $297 = HEAP32[(21196)>>2]|0; + $298 = ($296>>>0)>=($297>>>0); + $not$19 = ($$0420>>>0)>=($297>>>0); + $299 = $298 & $not$19; + if (!($299)) { + _abort(); + // unreachable; + } + $300 = ((($296)) + 12|0); + HEAP32[$300>>2] = $$1; + HEAP32[$295>>2] = $$1; + $301 = ((($$1)) + 8|0); + HEAP32[$301>>2] = $296; + $302 = ((($$1)) + 12|0); + HEAP32[$302>>2] = $$0420; + $303 = ((($$1)) + 24|0); + HEAP32[$303>>2] = 0; + return; + } +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function ___muldsi3($a, $b) { + $a = $a | 0; + $b = $b | 0; + var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; + $1 = $a & 65535; + $2 = $b & 65535; + $3 = Math_imul($2, $1) | 0; + $6 = $a >>> 16; + $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0; + $11 = $b >>> 16; + $12 = Math_imul($11, $1) | 0; + return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; +} +function ___muldi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0; + $x_sroa_0_0_extract_trunc = $a$0; + $y_sroa_0_0_extract_trunc = $b$0; + $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; + $1$1 = tempRet0; + $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; + return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_stbi__stdio_skip,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,_stbi__stdio_eof,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,_stbi__stdio_read,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _memset: _memset, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _llvm_cttz_i32: _llvm_cttz_i32, _sbrk: _sbrk, _memcpy: _memcpy, _llvm_bswap_i32: _llvm_bswap_i32, ___muldi3: ___muldi3, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, ___errno_location: ___errno_location, ___muldsi3: ___muldsi3, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____muldi3.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____muldsi3 = asm["___muldsi3"]; asm["___muldsi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____muldsi3.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _memset = Module["_memset"] = asm["_memset"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var ___muldi3 = Module["___muldi3"] = asm["___muldi3"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___muldsi3 = Module["___muldsi3"] = asm["___muldsi3"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_mesh_picking.png b/examples/web/models/models_mesh_picking.png new file mode 100644 index 0000000..045db58 Binary files /dev/null and b/examples/web/models/models_mesh_picking.png differ diff --git a/examples/web/models/models_obj_loading.c b/examples/web/models/models_obj_loading.c new file mode 100644 index 0000000..c816372 --- /dev/null +++ b/examples/web/models/models_obj_loading.c @@ -0,0 +1,106 @@ +/******************************************************************************************* +* +* raylib [models] example - Load and draw a 3d model (OBJ) (adapted for HTML5 platform) +* +* This example has been created using raylib 1.3 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#if defined(PLATFORM_WEB) + #include +#endif + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +int screenWidth = 800; +int screenHeight = 450; + +// Define the camera to look into our 3d world +Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f }; + +Model dwarf; // Declare OBJ model +Texture2D texture; // Declare model texture + +Vector3 position = { 0.0f, 0.0f, 0.0f }; // Define model position + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void); // Update and Draw one frame + +//---------------------------------------------------------------------------------- +// Main Enry Point +//---------------------------------------------------------------------------------- +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading"); + + dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model + texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture + dwarf.material.texDiffuse = texture; // Set dwarf model diffuse texture + +#if defined(PLATFORM_WEB) + emscripten_set_main_loop(UpdateDrawFrame, 0, 1); +#else + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + UpdateDrawFrame(); + } +#endif + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + UnloadModel(dwarf); // Unload model + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +void UpdateDrawFrame(void) +{ + // Update + //---------------------------------------------------------------------------------- + //... + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + Begin3dMode(camera); + + DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture + + DrawGrid(10, 1.0f); // Draw a grid + + DrawGizmo(position); // Draw gizmo + + End3dMode(); + + DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- +} \ No newline at end of file diff --git a/examples/web/models/models_obj_loading.data b/examples/web/models/models_obj_loading.data new file mode 100644 index 0000000..2a09e7b --- /dev/null +++ b/examples/web/models/models_obj_loading.data @@ -0,0 +1,60390 @@ +# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware +# File Created: 28.05.2015 21:59:00 + +mtllib Enano_Final_001.mtl + +# +# object Box001 +# + +v 0.387459278107 0.001037180424 -0.000000000000 +v 0.357966661453 0.000561296940 -0.148274183273 +v 0.273977041245 0.000000000000 -0.273975044489 +v 0.148276805878 -0.000561356544 -0.357965648174 +v 0.000002622604 -0.001037240028 -0.387459248304 +v -0.148271799088 -0.001355171204 -0.357965648174 +v -0.273973226547 -0.001466870308 -0.273975044489 +v -0.357964754105 -0.001355171204 -0.148274242878 +v -0.387459278107 -0.001037240028 -0.000000059605 +v -0.357966899872 -0.000561356544 0.148274183273 +v -0.273977279663 -0.000000059605 0.273975014687 +v -0.148276805878 0.000561296940 0.357965707779 +v -0.000002861023 0.001037180424 0.387459278107 +v 0.148271799088 0.001355111599 0.357965588570 +v 0.273973226547 0.001466810703 0.273974895477 +v 0.357964634895 0.001355111599 0.148274123669 +v 0.387031078339 0.161010622978 -0.000428199768 +v 0.357538461685 0.160534739494 -0.148702442646 +v 0.273548841476 0.159973442554 -0.274403274059 +v 0.147848606110 0.159412086010 -0.358393877745 +v -0.000425577164 0.158936202526 -0.387887477875 +v -0.148699998856 0.158618271351 -0.358393877745 +v -0.274401426315 0.158506572247 -0.274403274059 +v -0.358391761780 0.158147990704 -0.148701190948 +v -0.387881040573 0.156506061554 -0.000421762466 +v -0.358393907547 0.158941805363 0.147847235203 +v -0.274405479431 0.159973382950 0.273546814919 +v -0.148705244064 0.160534739494 0.357537508011 +v -0.000431060791 0.161010622978 0.387031078339 +v 0.147843360901 0.161328554153 0.357537388802 +v 0.273545026779 0.161440253258 0.273546695709 +v 0.357536435127 0.161328554153 0.147845864296 +v 0.353100299835 0.160919785500 -0.000428199768 +v 0.326190590858 0.160485565662 -0.135717749596 +v 0.249556064606 0.159973442554 -0.250410705805 +v 0.134863615036 0.159461259842 -0.327046126127 +v -0.000425815582 0.159027040005 -0.353956878185 +v -0.135715484619 0.158736944199 -0.327046126127 +v -0.250409126282 0.158635079861 -0.250410705805 +v -0.327044963837 0.158685207367 -0.135717630386 +v -0.353955745697 0.158622086048 -0.000427186489 +v -0.327047109604 0.159409523010 0.134861409664 +v -0.250412702560 0.159973382950 0.249554216862 +v -0.135720252991 0.160485565662 0.326189637184 +v -0.000430822372 0.160919785500 0.353100419044 +v 0.134859085083 0.161209881306 0.326189637184 +v 0.249552488327 0.161311805248 0.249554157257 +v 0.326188802719 0.161209881306 0.134861171246 +v 0.353296518326 0.087664961815 -0.000232100487 +v 0.326386690140 0.087230741978 -0.135521650314 +v 0.249752044678 0.086718618870 -0.250214606524 +v 0.135059833527 0.086206436157 -0.326850026846 +v -0.000229597092 0.085772216320 -0.353760749102 +v -0.135519504547 0.085482120514 -0.326850026846 +v -0.250212907791 0.085380256176 -0.250214606524 +v -0.326848983765 0.085482120514 -0.135521650314 +v -0.353760719299 0.085772216320 -0.000232160091 +v -0.326851129532 0.086206436157 0.135057389736 +v -0.250216484070 0.086718559265 0.249750316143 +v -0.135524034500 0.087230741978 0.326385736465 +v -0.000234603882 0.087664961815 0.353296518326 +v 0.135055065155 0.087955057621 0.326385736465 +v 0.249748706818 0.088056981564 0.249750256538 +v 0.326384902000 0.087955057621 0.135057270527 +v 0.375676870346 0.177378296852 -0.000472128391 +v 0.364366769791 0.177348017693 -0.000472128391 +v 0.347045183182 0.176916301250 -0.144418120384 +v 0.336596012115 0.176899909973 -0.140089869499 +v 0.265507221222 0.176371395588 -0.266449689865 +v 0.257509708405 0.176371395588 -0.258452177048 +v 0.143476247787 0.175826430321 -0.347988516092 +v 0.139147996902 0.175842821598 -0.337539315224 +v -0.000469446182 0.175364434719 -0.376621156931 +v -0.000469684601 0.175394713879 -0.365310996771 +v -0.144415855408 0.175055742264 -0.347988516092 +v -0.140087604523 0.175095319748 -0.337539315224 +v -0.266447782516 0.174947381020 -0.266449689865 +v -0.258450269699 0.174990177155 -0.258452177048 +v -0.347987651825 0.175055742264 -0.144418120384 +v -0.337538242340 0.175095319748 -0.140089929104 +v -0.376621246338 0.175364434719 -0.000472187996 +v -0.365311145782 0.175394713879 -0.000472187996 +v -0.347989559174 0.175826430321 0.143473863602 +v -0.337540388107 0.175842821598 0.139145612717 +v -0.266451835632 0.176371335983 0.265505313873 +v -0.258454084396 0.176371335983 0.257507801056 +v -0.144420623779 0.176916301250 0.347044229507 +v -0.140092372894 0.176899909973 0.336595058441 +v -0.000474929810 0.177378296852 0.375676870346 +v -0.000474691391 0.177348017693 0.364366769791 +v 0.143471479416 0.177686989307 0.347044229507 +v 0.139143228531 0.177647411823 0.336595058441 +v 0.265503644943 0.177795350552 0.265505313873 +v 0.257506132126 0.177752554417 0.257507801056 +v 0.347043275833 0.177686989307 0.143473744392 +v 0.336594104767 0.177647411823 0.139145493507 +v -0.260723114014 0.157754421234 -0.259547352791 +v 0.188534498215 0.162128329277 0.220312714577 +v 0.150835990906 0.255903840065 -0.122018277645 +v -0.367745399475 0.145474791527 -0.000509381294 +v 0.326006412506 0.188046872616 0.061991870403 +v -0.140351295471 0.145963966846 0.338536977768 +v -0.092543125153 0.133517801762 0.209983170033 +v -0.045091629028 0.219104647636 0.071014165878 +v 0.117162466049 0.138920009136 0.148487687111 +v 0.094516038895 0.211338222027 0.006093084812 +v 0.141849040985 0.167456209660 -0.338641077280 +v -0.132145881653 0.224308967590 -0.168267190456 +v -0.290617465973 0.153861880302 0.041577756405 +v 0.232747793198 0.220157623291 -0.020193576813 +v -0.104435920715 0.156720459461 0.107542216778 +v 0.261220932007 0.215893089771 0.140530586243 +v 0.339339137077 0.144055008888 0.139837384224 +v 0.232198715210 0.238567829132 -0.074207901955 +v 0.139328241348 0.221993207932 -0.251845806837 +v 0.001096725464 0.115566849709 0.232506930828 +v 0.235008478165 0.183093011379 -0.224647879601 +v 0.025869607925 0.220658242702 0.010586977005 +v -0.260028839111 0.142340183258 0.258761763573 +v 0.149353027344 0.195868253708 0.071023166180 +v -0.312650203705 0.150955259800 0.143607854843 +v -0.012047052383 0.257859528065 -0.223151683807 +v -0.092512130737 0.135187923908 0.292060732841 +v -0.015312671661 0.255189657211 -0.138771057129 +v 0.137337684631 0.183658897877 -0.296297132969 +v -0.172811269760 0.177352190018 -0.007483303547 +v 0.223266124725 0.217488348484 0.090728402138 +v 0.064405202866 0.252335906029 -0.226450979710 +v -0.188626766205 0.189203381538 -0.061699330807 +v 0.016028881073 0.124756276608 0.299646496773 +v 0.089669704437 0.233257532120 -0.075778305531 +v 0.139914751053 0.137555956841 0.338332772255 +v 0.284914731979 0.198863744736 -0.022770822048 +v 0.304054975510 0.196833968163 0.028051853180 +v -0.097067356110 0.222885787487 -0.054254412651 +v -0.237313508987 0.144842386246 0.232705712318 +v 0.269050121307 0.216346383095 0.051027357578 +v -0.120793342590 0.202318608761 0.021182298660 +v -0.339625835419 0.138534486294 0.138899505138 +v 0.037177801132 0.231764197350 -0.090419173241 +v 0.143469810486 0.149774491787 0.195432603359 +v 0.293514966965 0.187747895718 -0.097219467163 +v -0.168785572052 0.151870310307 0.060518741608 +v 0.020806550980 0.266882598400 -0.172512531281 +v 0.259666919708 0.145984232426 0.258646607399 +v 0.034334182739 0.252145409584 -0.135116934776 +v -0.140362977982 0.156036436558 -0.339551180601 +v 0.032037258148 0.132924497128 0.150658845901 +v 0.366469740868 0.153844237328 -0.000785291195 +v -0.013993501663 0.172754645348 0.088831484318 +v 0.075382471085 0.258517682552 -0.122498214245 +v -0.144392013550 0.200841248035 -0.234057486057 +v 0.200603008270 0.174400389194 0.172962725163 +v -0.017191648483 0.226316809654 0.000772595406 +v 0.077378988266 0.224100291729 -0.039400041103 +v -0.000497341156 0.134032607079 0.366490840912 +v 0.338284015656 0.156314671040 -0.141668856144 +v -0.153885364532 0.204451203346 -0.099687397480 +v 0.195820569992 0.205458104610 0.131933152676 +v 0.216483592987 0.239142835140 -0.141529560089 +v -0.048132896423 0.252258181572 -0.187425732613 +v 0.048329114914 0.181412041187 0.058874249458 +v 0.297631740570 0.188538789749 0.118461728096 +v 0.094685554504 0.275856882334 -0.177895724773 +v 0.291773080826 0.176003396511 0.168679654598 +v 0.258277654648 0.169047772884 -0.258827954531 +v -0.025267601013 0.222986042500 -0.080369651318 +v -0.082452535629 0.196722209454 -0.287426501513 +v -0.052076101303 0.149037420750 0.130536139011 +v 0.078437328339 0.166446685791 -0.351232022047 +v -0.079320430756 0.196040034294 0.077153921127 +v 0.147503852844 0.252151966095 -0.186089634895 +v -0.237520694733 0.165661454201 -0.003286302090 +v -0.029679536819 0.118149220943 0.186804175377 +v 0.181889533997 0.212109684944 -0.008958518505 +v -0.094622135162 0.229876041412 -0.137650251389 +v 0.069519281387 0.135161101818 0.174413204193 +v 0.278537750244 0.214016139507 0.012907266617 +v -0.000745296478 0.139973580837 0.130587935448 +v 0.161170482635 0.208140671253 0.035515487194 +v -0.166126012802 0.139393448830 0.192975401878 +v 0.290117979050 0.177705764771 -0.146035611629 +v 0.020158529282 0.206230044365 0.052492976189 +v -0.134399890900 0.143064141273 0.142413377762 +v -0.266332864761 0.169014453888 -0.063792705536 +v 0.132324457169 0.250333786011 -0.097359597683 +v 0.001193761826 0.159170746803 -0.367280960083 +v -0.188598394394 0.189268946648 -0.191226005554 +v 0.097879648209 0.156538784504 0.109527528286 +v 0.203623294830 0.224369049072 -0.037161529064 +v -0.129595041275 0.211527705193 -0.041961491108 +v -0.339376449585 0.143820405006 -0.140513777733 +v 0.205133199692 0.213180243969 -0.004063129425 +v 0.233246803284 0.214453101158 -0.008401036263 +v 0.206484079361 0.212388336658 0.016018033028 +v 0.242507219315 0.213977515697 0.010456264019 +v 0.209819316864 0.211635589600 0.041306018829 +v 0.251682043076 0.213515639305 0.034897506237 +v 0.219023942947 0.211915493011 0.102876901627 +v 0.255498886108 0.213328659534 0.102843940258 +v 0.209807872772 0.211321473122 0.073793649673 +v 0.260978460312 0.213306427002 0.070012688637 +v 0.218056917191 0.213957488537 -0.009956002235 +v 0.237318038940 0.212719857693 0.106576442719 +v 0.201871395111 0.223009884357 -0.005214691162 +v 0.234170436859 0.224603056908 -0.010290384293 +v 0.201443910599 0.221436142921 0.017751872540 +v 0.247167825699 0.223902463913 0.009773075581 +v 0.204860687256 0.220546007156 0.042006075382 +v 0.256182670593 0.223231375217 0.033681809902 +v 0.217150449753 0.220006823540 0.104498565197 +v 0.257226705551 0.222062766552 0.105154514313 +v 0.202792167664 0.219771981239 0.074708163738 +v 0.266690969467 0.222605288029 0.069311499596 +v 0.216041564941 0.224303185940 -0.016883432865 +v 0.236886978149 0.220857679844 0.113419055939 +v 0.201165676117 0.241792380810 -0.002464711666 +v 0.235595226288 0.243774831295 -0.008793592453 +v 0.200091838837 0.239008307457 0.019165515900 +v 0.248582601547 0.241591095924 0.009618818760 +v 0.203350067139 0.236650824547 0.041424393654 +v 0.256637573242 0.239299356937 0.032281756401 +v 0.218260288239 0.230036914349 0.104059219360 +v 0.253784656525 0.232075154781 0.103391885757 +v 0.206028461456 0.232413649559 0.076064765453 +v 0.216443300247 0.243729174137 -0.014796018600 +v 0.236021757126 0.231211543083 0.111301779747 +v 0.247812032700 0.238879442215 0.099651157856 +v 0.235158205032 0.239502251148 0.103205502033 +v 0.262071609497 0.235375046730 0.069712936878 +v 0.252540349960 0.260097324848 0.055052101612 +v 0.222467422485 0.237549602985 0.101014792919 +v 0.212550878525 0.258014202118 0.062277555466 +v 0.201892614365 0.345312535763 0.008776485920 +v 0.242216825485 0.349303513765 0.009433805943 +v 0.191249847412 0.342574447393 0.028094410896 +v 0.255865812302 0.346988528967 0.028772234917 +v 0.196735858917 0.339674323797 0.052435636520 +v 0.258110046387 0.343376874924 0.052006244659 +v 0.221249341965 0.348548620939 0.002917945385 +v 0.222075462341 0.356713175774 0.034231722355 +v 0.229865312576 0.337269216776 0.076513707638 +v 0.232888221741 0.263725697994 0.063763737679 +v 0.204312324524 0.270660489798 0.003390491009 +v 0.236067295074 0.272651731968 -0.001152694225 +v 0.200947046280 0.266749739647 0.023094773293 +v 0.249783754349 0.268808007240 0.012558996677 +v 0.202597379684 0.262279391289 0.042629957199 +v 0.255157470703 0.263839781284 0.032649099827 +v 0.218951225281 0.272833973169 -0.005811095238 +v 0.248102664948 0.339510381222 0.071823954582 +v 0.211038351059 0.337233841419 0.072277426720 +v 0.212896347046 0.211532533169 0.087992787361 +v 0.260196208954 0.213362693787 0.086466848850 +v 0.206652641296 0.219657599926 0.088583350182 +v 0.265573501587 0.222268044949 0.086174011230 +v 0.208487510681 0.231236219406 0.089933633804 +v 0.261114358902 0.233485519886 0.086178541183 +v 0.249599456787 0.241804718971 0.087328910828 +v 0.218761682510 0.240887939930 0.090320706367 +v 0.234282970428 0.244165539742 0.089901387691 +v 0.249197959900 0.245250940323 0.071763932705 +v 0.233741044998 0.248610019684 0.075530111790 +v 0.218100309372 0.243478000164 0.076156377792 +v 0.259891033173 0.237450182438 0.052915513515 +v 0.262217521667 0.222825467587 0.053764879704 +v 0.257991552353 0.213336646557 0.054791927338 +v 0.209878206253 0.211354732513 0.060339868069 +v 0.203500509262 0.219918906689 0.060940921307 +v 0.205494880676 0.234648823738 0.060976922512 +v 0.232362031937 0.296486437321 0.068670928478 +v 0.247957706451 0.297481447458 0.058879435062 +v 0.214935302734 0.296461522579 0.063020169735 +v 0.256248474121 0.300734728575 0.041230976582 +v 0.205139160156 0.308436393738 0.010030686855 +v 0.238288879395 0.311282992363 0.009258210659 +v 0.199443340302 0.304088622332 0.028930902481 +v 0.251448392868 0.306685805321 0.022934615612 +v 0.202795028687 0.299219369888 0.047689616680 +v 0.221186876297 0.311318457127 0.002745151520 +v 0.225008487701 0.352216601372 0.053049981594 +v 0.202267408371 0.358467698097 0.014773547649 +v 0.193837165833 0.356905907393 0.031560063362 +v 0.200456142426 0.354091018438 0.051699697971 +v 0.214915990829 0.351570516825 0.066617071629 +v 0.227507829666 0.352972269058 0.069517612457 +v 0.240033149719 0.354288905859 0.067502856255 +v 0.247437715530 0.356183379889 0.048327982426 +v 0.255626201630 0.361346334219 0.031195163727 +v 0.243300676346 0.363204896450 0.016159296036 +v 0.220804214478 0.361127465963 0.011520028114 +v -0.006412744522 0.219254732132 -0.070368289948 +v -0.034497737885 0.219416260719 -0.075179994106 +v -0.007551431656 0.219255983829 -0.050698041916 +v -0.043589591980 0.219416618347 -0.056793034077 +v -0.010588407516 0.219317317009 -0.025610864162 +v -0.052551269531 0.219525873661 -0.032343029976 +v -0.019434452057 0.219501733780 0.036931097507 +v -0.056055307388 0.219407021999 0.036677896976 +v -0.010255813599 0.219376742840 0.007310867310 +v -0.061593055725 0.219416677952 0.003298044205 +v -0.019374847412 0.219313621521 -0.076339542866 +v -0.037804126740 0.219456374645 0.040600121021 +v -0.003419399261 0.229272305965 -0.072110950947 +v -0.035720348358 0.229651033878 -0.077736675739 +v -0.002564668655 0.228819966316 -0.049440383911 +v -0.048538923264 0.229538142681 -0.058115601540 +v -0.005802154541 0.228773951530 -0.025171041489 +v -0.057313680649 0.229480981827 -0.033867120743 +v -0.017800569534 0.228000402451 0.038410604000 +v -0.058048009872 0.228443384171 0.038873791695 +v -0.003192663193 0.228343427181 0.008078634739 +v -0.067610979080 0.228918552399 0.002470076084 +v -0.017654657364 0.229513227940 -0.083801627159 +v -0.037597417831 0.228035628796 0.047402024269 +v -0.003135919571 0.248828172684 -0.071072876453 +v -0.037687301636 0.249413430691 -0.078146457672 +v -0.001599311829 0.247187077999 -0.049244463444 +v -0.050426006317 0.247864484787 -0.059458792210 +v -0.004717350006 0.245696306229 -0.026384413242 +v -0.058178663254 0.246295332909 -0.035779118538 +v -0.019185543060 0.238504111767 0.037673413754 +v -0.054839372635 0.239117026329 0.036907553673 +v -0.006999969482 0.241730749607 0.009231150150 +v -0.018567800522 0.249538004398 -0.083647012711 +v -0.037009954453 0.238889813423 0.044985234737 +v -0.049028873444 0.246678113937 0.033095300198 +v -0.036361932755 0.247815668583 0.036695182323 +v -0.063289403915 0.242662429810 0.002855598927 +v -0.054507970810 0.268849194050 -0.014230966568 +v -0.023601055145 0.246319174767 0.034479141235 +v -0.014294147491 0.268415987492 -0.006592750549 +v -0.007125854492 0.352546513081 -0.070307731628 +v -0.047215461731 0.354491233826 -0.074513196945 +v 0.003531694412 0.351069599390 -0.050791621208 +v -0.060627460480 0.352100074291 -0.057532072067 +v -0.001306772232 0.349359750748 -0.028730213642 +v -0.062292337418 0.349174886942 -0.036085724831 +v -0.026328802109 0.354579001665 -0.078574538231 +v -0.027374744415 0.363825768232 -0.050758659840 +v -0.033916950226 0.346315592527 -0.004494011402 +v -0.034796714783 0.273458153009 -0.005827486515 +v -0.007123708725 0.278406739235 -0.068862497807 +v -0.038926839828 0.278996378183 -0.074869096279 +v -0.003371477127 0.275840729475 -0.048226654530 +v -0.052319049835 0.275491327047 -0.060075223446 +v -0.004662275314 0.272252291441 -0.027530074120 +v -0.057320117950 0.271499335766 -0.038320362568 +v -0.021856307983 0.279480308294 -0.079001605511 +v -0.051886796951 0.346334606409 -0.018019616604 +v -0.015472888947 0.347499132156 -0.012708246708 +v -0.013341426849 0.219453394413 0.021781980991 +v -0.060760498047 0.219377577305 0.020002603531 +v -0.007234573364 0.228128254414 0.022226035595 +v -0.066421747208 0.228480756283 0.019553661346 +v -0.009428262711 0.240280926228 0.023335456848 +v -0.062236309052 0.240545749664 0.019495189190 +v -0.050906419754 0.249981880188 0.020713865757 +v -0.019988298416 0.250182330608 0.023671388626 +v -0.035615205765 0.253143727779 0.023297965527 +v -0.050571680069 0.253851354122 0.004940390587 +v -0.035207986832 0.258085966110 0.008688688278 +v -0.019476890564 0.253200232983 0.009263873100 +v -0.061208486557 0.244841516018 -0.014327108860 +v -0.063190460205 0.229270637035 -0.013317525387 +v -0.058711767197 0.219515621662 -0.012146055698 +v -0.010442733765 0.219379901886 -0.006376981735 +v -0.004127025604 0.228489577770 -0.005963206291 +v -0.006670236588 0.244056880474 -0.006213486195 +v -0.035041809082 0.306504577398 -0.012205660343 +v -0.050817012787 0.305917531252 -0.022203505039 +v -0.017575979233 0.306866586208 -0.015941679478 +v -0.059380531311 0.307994395494 -0.039807379246 +v -0.009127378464 0.316277623177 -0.068142294884 +v -0.042343616486 0.317533701658 -0.072862088680 +v -0.003009557724 0.313361108303 -0.048151373863 +v -0.055118322372 0.313115835190 -0.059049367905 +v -0.005843162537 0.309433162212 -0.029619455338 +v -0.025185585022 0.317963033915 -0.077642977238 +v -0.029360532761 0.360437393188 -0.033840239048 +v -0.013695001602 0.365091145039 -0.063374280930 +v -0.005713224411 0.364561080933 -0.049769103527 +v -0.006861448288 0.363386452198 -0.031659960747 +v -0.019543409348 0.360915482044 -0.018560290337 +v -0.032689571381 0.360493153334 -0.010817825794 +v -0.045087814331 0.359358161688 -0.021629929543 +v -0.058130502701 0.362013280392 -0.034903645515 +v -0.055710792542 0.363338232040 -0.056892096996 +v -0.040955543518 0.367505073547 -0.065858364105 +v -0.026666879654 0.366931766272 -0.066344976425 +v 0.019335746765 0.891146719456 0.147463440895 +v 0.077193498611 0.876855552197 -0.156872689724 +v 0.077016353607 0.674709022045 -0.110481500626 +v 0.026651859283 0.777218222618 0.134643375874 +v 0.027640104294 0.662163913250 0.117864131927 +v 0.092115879059 0.819933474064 0.165385544300 +v 0.022340536118 0.851363182068 0.150859296322 +v 0.081831455231 0.861464142799 0.176887631416 +v 0.145524740219 0.883852779865 0.172923028469 +v 0.158493518829 0.841617703438 0.157872855663 +v 0.277504920959 1.007843017578 0.047269701958 +v 0.272853851318 1.025377511978 0.051120281219 +v 0.286534786224 1.034585952759 0.047402620316 +v 0.302318572998 0.995641767979 0.049039125443 +v 0.262354612350 0.997510433197 0.039628624916 +v 0.254748582840 1.029515981674 0.052300691605 +v 0.286922931671 0.964170455933 0.051867485046 +v 0.263444900513 0.934777021408 -0.010773301125 +v 0.278232336044 0.898669064045 -0.017279744148 +v 0.282225131989 0.895403862000 -0.048148393631 +v 0.268206119537 0.922013401985 -0.048899114132 +v 0.263873815536 0.932216346264 -0.047488868237 +v 0.249542474747 0.950950801373 -0.014343142509 +v 0.242866039276 0.973144650459 0.013231754303 +v 0.257011651993 0.958706617355 0.025045931339 +v 0.272060394287 0.937663674355 0.036257743835 +v 0.267414808273 0.922991752625 0.012871444225 +v 0.282770156860 0.902756571770 0.011130094528 +v 0.123666524887 0.582465767860 -0.075673460960 +v 0.149766921997 0.525964796543 -0.038310170174 +v 0.177918195724 0.547954797745 -0.041567981243 +v 0.164103984833 0.607049584389 -0.064459025860 +v 0.103845834732 0.528503477573 -0.026832699776 +v 0.132575511932 0.506744384766 -0.010294854641 +v 0.262545824051 0.962624549866 -0.120018243790 +v 0.277079582214 0.942464232445 -0.121075093746 +v 0.283565044403 0.978037595749 -0.130021154881 +v 0.242907762527 1.002508759499 -0.135505557060 +v 0.261280298233 0.944051027298 -0.092559337616 +v 0.272555112839 0.925887763500 -0.087273895741 +v 0.231066703796 0.961506426334 -0.136641144753 +v 0.218405961990 0.840843498707 0.091216206551 +v 0.210432529449 0.794565856457 0.084894001484 +v 0.186074256897 0.768438935280 0.106157541275 +v 0.168217658997 0.802124977112 0.130858242512 +v 0.239678859711 0.831269502640 0.040043413639 +v 0.225566387177 0.781253993511 0.055830478668 +v 0.209580659866 0.882061362267 0.132225513458 +v 0.155940294266 0.740337014198 0.119884729385 +v 0.106715440750 0.770864248276 0.151021718979 +v 0.178981781006 0.699676811695 0.084566056728 +v 0.182432651520 0.725065171719 0.095114350319 +v 0.204370975494 0.743299126625 0.076818108559 +v 0.213043212891 0.707077801228 0.041539013386 +v 0.136242151260 0.711864829063 0.109547138214 +v 0.155378341675 0.589013695717 0.109423935413 +v 0.137723207474 0.638659536839 0.112122654915 +v 0.171539545059 0.636296868324 0.090351223946 +v 0.201073408127 0.608585000038 0.070430636406 +v 0.217098474503 0.565734565258 0.062991678715 +v 0.191636562347 0.555289149284 0.088190674782 +v 0.150764703751 1.090515971184 0.031594216824 +v 0.133168458939 1.064684152603 0.068517208099 +v 0.107606649399 1.083139657974 0.037304639816 +v 0.119329452515 1.104554176331 0.014675736427 +v 0.187176704407 1.110415458679 0.029244542122 +v 0.202834844589 1.080092191696 0.052686989307 +v 0.179083585739 1.058245539665 0.064180791378 +v 0.160923242569 1.034242868423 0.096240758896 +v 0.254607439041 1.061115264893 0.052536368370 +v 0.220592498779 1.047652482986 0.058174490929 +v 0.231979370117 1.086294531822 0.047397136688 +v 0.231719017029 1.019516706467 0.049612939358 +v 0.293545246124 0.912459313869 0.040535092354 +v 0.235724687576 1.107659101486 0.028177142143 +v 0.274882793427 1.085638523102 0.028672218323 +v 0.096796751022 0.524665117264 0.020752966404 +v 0.121049642563 1.164031744003 -0.039851784706 +v 0.109050750732 1.171761870384 -0.060386240482 +v 0.151132822037 1.143172383308 -0.073541879654 +v 0.162862539291 1.139242529869 -0.047275900841 +v 0.166463375092 1.129762411118 -0.013145327568 +v 0.125269412994 1.148490905762 -0.022257208824 +v 0.222014427185 1.136164307594 -0.085919082165 +v 0.229552507401 1.134870767593 -0.049831032753 +v 0.233881950378 1.128509044647 -0.008981227875 +v 0.281436681747 1.108168125153 -0.051254689693 +v 0.281991004944 1.102712631226 -0.009698688984 +v 0.317685604095 1.067490458488 -0.049807429314 +v 0.317203044891 1.065495610237 -0.009583413601 +v 0.306344747543 1.052000999451 0.026935875416 +v 0.343569040298 1.024486541748 -0.007518947124 +v 0.329200625420 1.013627648354 0.025783419609 +v 0.366793274879 0.985834360123 -0.007350325584 +v 0.354122877121 0.976988136768 0.026278495789 +v 0.334745645523 0.958747029305 0.052049517632 +v 0.379283428192 0.947536230087 0.020861685276 +v 0.362321138382 0.928932666779 0.043664336205 +v 0.342812895775 0.907195210457 0.044864654541 +v 0.314275741577 0.935671687126 0.057043790817 +v 0.319790363312 0.888074278831 0.029314041138 +v 0.379310607910 0.902640283108 0.024499237537 +v 0.358928322792 0.880074322224 0.019105792046 +v 0.338169336319 0.861247479916 0.001740396023 +v 0.400299787521 0.877586364746 0.025739133358 +v 0.380050063133 0.852149724960 0.022235631943 +v 0.363364696503 0.827350735664 0.010587811470 +v 0.362974047661 0.811894834042 -0.017841279507 +v 0.332549810410 0.850514173508 -0.031367659569 +v 0.376002192497 0.802355408669 -0.049095809460 +v 0.339113950729 0.838486850262 -0.071368515491 +v 0.312850952148 0.871554672718 -0.076692581177 +v 0.306100845337 0.872793436050 -0.043697237968 +v 0.402581334114 0.810562849045 -0.068494379520 +v 0.367998600006 0.846436321735 -0.105324327946 +v 0.326204538345 0.882910430431 -0.107103466988 +v 0.432064533234 0.831387817860 -0.069692969322 +v 0.409785628319 0.862663328648 -0.103722870350 +v 0.452204942703 0.860042333603 -0.057465374470 +v 0.432444095612 0.890474557877 -0.088653087616 +v 0.403483510017 0.924710273743 -0.103032827377 +v 0.390702843666 0.900007128716 -0.125450611115 +v 0.458554625511 0.884764671326 -0.038810074329 +v 0.440712213516 0.916401028633 -0.064721584320 +v 0.409626007080 0.946123480797 -0.076701641083 +v 0.377049446106 0.978414773941 -0.079899370670 +v 0.369030594826 0.959930837154 -0.107197761536 +v 0.434939265251 0.931571722031 -0.036256074905 +v 0.403420209885 0.955381631851 -0.043758153915 +v 0.375007867813 0.986278414726 -0.043334543705 +v 0.346902847290 1.024103283882 -0.045506417751 +v 0.346037387848 1.015392422676 -0.082815170288 +v 0.391106963158 0.955277502537 -0.011757612228 +v 0.418347239494 0.931938529015 -0.009633421898 +v 0.398629426956 0.921277165413 0.011540293694 +v 0.441792011261 0.907627224922 0.005505323410 +v 0.420485854149 0.897287666798 0.019965410233 +v 0.454711556435 0.901762425900 -0.017239570618 +v 0.312911748886 1.057415366173 -0.085565030575 +v 0.301878452301 1.036462783813 -0.110103130341 +v 0.341517090797 0.998458266258 -0.115687966347 +v 0.291906356812 1.012423157692 -0.127237200737 +v 0.328496098518 0.970709323883 -0.136209249496 +v 0.354727029800 0.934686720371 -0.121113419533 +v 0.311561107635 0.939342975616 -0.134227514267 +v 0.340052127838 0.908680558205 -0.124131619930 +v 0.367459774017 0.884051918983 -0.123385787010 +v 0.297220230103 0.911664009094 -0.117913901806 +v 0.289204835892 0.899315834045 -0.083201110363 +v 0.250025033951 1.053760290146 -0.137834787369 +v 0.264823913574 1.083865046501 -0.119606435299 +v 0.201839447021 1.117434144020 -0.118024945259 +v 0.189693689346 1.079212427139 -0.142952740192 +v 0.277281999588 1.102975010872 -0.089239239693 +v 0.120431184769 1.085181832314 -0.138198077679 +v 0.121253252029 1.037931799889 -0.155860960484 +v 0.184354066849 1.029958724976 -0.157751560211 +v 0.119925260544 1.132153749466 -0.108325600624 +v 0.123482465744 0.987731099129 -0.170279264450 +v 0.180538892746 0.979573845863 -0.163978517056 +v 0.125545501709 0.932765841484 -0.173250615597 +v 0.179258108139 0.925383329391 -0.162734568119 +v 0.227316141129 0.914090216160 -0.128659784794 +v 0.178707361221 0.866539001465 -0.151616394520 +v 0.224370002747 0.859528779984 -0.116147398949 +v 0.256502151489 0.857412219048 -0.071282267570 +v 0.259006500244 0.905853331089 -0.084065675735 +v 0.258020401001 0.867200314999 -0.023059964180 +v 0.263725519180 0.906981647015 -0.038188934326 +v 0.246686458588 0.885027527809 0.019917786121 +v 0.248519420624 0.927023947239 0.000404238701 +v 0.239131689072 0.904338777065 0.060729622841 +v 0.241918325424 0.948883771896 0.032647311687 +v 0.229748249054 0.932023048401 0.094542920589 +v 0.231833934784 0.972128450871 0.056386351585 +v 0.237094879150 0.996514856815 0.032092094421 +v 0.225894212723 0.997993648052 0.079689145088 +v 0.216531753540 0.964301168919 0.116260170937 +v 0.190495014191 0.998777031898 0.114465355873 +v 0.204521656036 1.026806235313 0.079624712467 +v 0.192690134048 0.921263933182 0.150567412376 +v 0.164333105087 0.961874485016 0.145105898380 +v 0.135314941406 1.002291202545 0.123882234097 +v 0.122396469116 0.928251743317 0.165373027325 +v 0.099461555481 0.973314642906 0.142395615578 +v 0.080953598022 1.017653703690 0.112643778324 +v 0.110545635223 1.040468931198 0.096353948116 +v 0.067555904388 1.051582455635 0.072920858860 +v 0.089736461639 1.065327763557 0.058615803719 +v 0.057373523712 0.952757716179 0.147553682327 +v 0.047913312912 1.000822305679 0.117389440536 +v 0.042551279068 1.041895747185 0.078767657280 +v 0.069515228271 0.905283331871 0.168992578983 +v 0.244445800781 0.817365288734 -0.006311953068 +v 0.244346380234 0.804270505905 -0.054641485214 +v 0.217851400375 0.751652359962 -0.033641099930 +v 0.227277755737 0.763818323612 0.012114584446 +v 0.197771310806 0.745314657688 -0.074247181416 +v 0.188985824585 0.683782935143 -0.054120063782 +v 0.209798336029 0.693763196468 -0.014226317406 +v 0.216273546219 0.801639676094 -0.098835766315 +v 0.174543857574 0.806066751480 -0.130712211132 +v 0.165594577789 0.745285034180 -0.103144109249 +v 0.123121976852 0.748481452465 -0.116453528404 +v 0.120306491852 0.673266887665 -0.099647700787 +v 0.158249378204 0.678283751011 -0.080645978451 +v 0.126316308975 0.812821507454 -0.142758727074 +v 0.126960277557 0.873750686646 -0.163805663586 +v 0.068856477737 0.984705030918 -0.177298188210 +v 0.055420398712 1.084348678589 -0.154314756393 +v 0.046322107315 1.128087520599 -0.128710865974 +v 0.075109720230 0.593776226044 -0.089249253273 +v 0.192573547363 0.621916353703 -0.036496400833 +v 0.203611850739 0.571760535240 -0.021339297295 +v 0.217868804932 0.595229387283 0.017003238201 +v 0.213207960129 0.638992846012 0.003613412380 +v 0.204703092575 0.652575969696 0.048748970032 +v 0.170325040817 0.665199697018 0.078543841839 +v 0.130563020706 0.677610635757 0.104269742966 +v 0.083450555801 0.650120198727 0.126545190811 +v 0.081408262253 0.691678225994 0.131133735180 +v 0.086372137070 0.729118704796 0.137566983700 +v 0.026894569397 0.740492343903 0.127000212669 +v 0.088793277740 0.606545627117 0.116948366165 +v 0.091482639313 0.568313062191 0.093596041203 +v 0.093423366547 0.540040552616 0.060054659843 +v 0.137021780014 0.550631523132 0.090929865837 +v 0.129982471466 0.524636745453 0.061635315418 +v 0.129219055176 0.512163639069 0.027145802975 +v 0.155890464783 0.512163281441 0.061540365219 +v 0.151852607727 0.501129508018 0.032996356487 +v 0.151466369629 0.490233093500 0.004889369011 +v 0.164501428604 0.473722547293 0.017774462700 +v 0.166211366653 0.483703285456 0.041170895100 +v 0.176519632339 0.462068229914 0.050208270550 +v 0.178006410599 0.457004278898 0.029782295227 +v 0.190201759338 0.459076434374 0.014697730541 +v 0.178750276566 0.478803396225 0.000907838345 +v 0.166320323944 0.497839301825 -0.015286624432 +v 0.207526922226 0.465957105160 0.009304404259 +v 0.199348926544 0.490522235632 -0.004005312920 +v 0.189775466919 0.514920592308 -0.020356297493 +v 0.225358963013 0.475811570883 0.017339110374 +v 0.221742391586 0.505469441414 0.004819691181 +v 0.213993549347 0.536153674126 -0.007584154606 +v 0.236834526062 0.485237836838 0.038113415241 +v 0.233140468597 0.520117580891 0.029869019985 +v 0.226602554321 0.556548476219 0.023947119713 +v 0.239451885223 0.491162627935 0.065631270409 +v 0.229833841324 0.528143048286 0.060667395592 +v 0.239911079407 0.454511433840 0.042522192001 +v 0.245521306992 0.457225382328 0.067053318024 +v 0.237636566162 0.455539733171 0.084717154503 +v 0.226967334747 0.489047199488 0.082951843739 +v 0.211964607239 0.523329734802 0.080300390720 +v 0.217800378799 0.450385510921 0.087392747402 +v 0.206350564957 0.480243116617 0.084223449230 +v 0.190374135971 0.509804129601 0.078286647797 +v 0.183592557907 0.468741506338 0.072134256363 +v 0.173839807510 0.494874238968 0.062670707703 +v 0.168895244598 0.532966911793 0.083921194077 +v 0.194311380386 0.443297296762 0.078714847565 +v 0.186420440674 0.440069437027 0.057327508926 +v 0.193065404892 0.417387604713 0.057190775871 +v 0.203305721283 0.417975842953 0.076225996017 +v 0.205404996872 0.391247153282 0.066273987293 +v 0.194074869156 0.392329305410 0.049775362015 +v 0.190062761307 0.393557667732 0.030566751957 +v 0.192551136017 0.417236864567 0.037556171417 +v 0.188753843307 0.438155025244 0.037616431713 +v 0.199758052826 0.395951777697 0.012652158737 +v 0.201189756393 0.418664783239 0.020802915096 +v 0.198827505112 0.439186781645 0.022741913795 +v 0.220117330551 0.398994356394 0.008019566536 +v 0.217715263367 0.422239899635 0.015295565128 +v 0.213492631912 0.443650007248 0.018471002579 +v 0.236896991730 0.400686651468 0.011681675911 +v 0.232114553452 0.425558745861 0.022678315639 +v 0.227942943573 0.449451982975 0.025451838970 +v 0.247877597809 0.399994522333 0.024417579174 +v 0.242132186890 0.427206337452 0.038007915020 +v 0.250198125839 0.367911368608 0.023290991783 +v 0.239138841629 0.370674878359 0.011764705181 +v 0.234215259552 0.326959192753 0.024860799313 +v 0.239667415619 0.325394153595 0.032651007175 +v 0.239298582077 0.323285490274 0.041500747204 +v 0.250197172165 0.363285213709 0.041953921318 +v 0.248555660248 0.397186785936 0.044638574123 +v 0.236860036850 0.320421725512 0.050307810307 +v 0.239134788513 0.358723700047 0.058663964272 +v 0.239214897156 0.393967717886 0.063256323338 +v 0.230540990829 0.316507697105 0.058507502079 +v 0.225771665573 0.354905188084 0.069335877895 +v 0.224077701569 0.390892267227 0.075807273388 +v 0.220066547394 0.317402213812 0.054555177689 +v 0.211529970169 0.357036679983 0.059551179409 +v 0.212295293808 0.320155978203 0.044720351696 +v 0.198891878128 0.359852999449 0.045892953873 +v 0.208841085434 0.323172211647 0.033653140068 +v 0.194800376892 0.364280372858 0.028407096863 +v 0.212930202484 0.325841575861 0.024493038654 +v 0.203210353851 0.368161261082 0.013654232025 +v 0.223614931107 0.327202796936 0.020913243294 +v 0.221999883652 0.371129333973 0.011114120483 +v 0.299593925476 0.875928103924 -0.016731262207 +v 0.305377960205 0.881739974022 0.006167829037 +v 0.124761581421 1.127089619637 -0.005370020866 +v 0.144920587540 1.114051818848 -0.000504493713 +v 0.320274353027 0.867451727390 -0.003048002720 +v 0.317344665527 0.863656222820 -0.015280425549 +v 0.081691741943 1.171155452728 -0.082533001900 +v 0.489620566368 0.754746913910 0.055047810078 +v 0.492703795433 0.744488835335 0.057417750359 +v 0.500872254372 0.748085975647 0.052790284157 +v 0.503330826759 0.759612381458 0.050021946430 +v 0.455907583237 0.767686963081 0.180662214756 +v 0.448605775833 0.763490140438 0.179388940334 +v 0.454131126404 0.774452686310 0.183209419250 +v 0.512239336967 0.719803869724 0.108971118927 +v 0.513665318489 0.712346911430 0.098931610584 +v 0.501137852669 0.723156571388 0.088684141636 +v 0.498448848724 0.729723930359 0.098093867302 +v 0.506369471550 0.735136747360 0.129543185234 +v 0.510510444641 0.727772593498 0.119067549706 +v 0.495698451996 0.736607313156 0.107330560684 +v 0.491642713547 0.742265939713 0.117717981339 +v 0.492995619774 0.730934858322 0.070337891579 +v 0.488109588623 0.732578217983 0.080537736416 +v 0.505285978317 0.719612061977 0.078231096268 +v 0.525172829628 0.681995272636 0.167945027351 +v 0.521392345428 0.683978497982 0.175799846649 +v 0.521812319756 0.691806197166 0.180061340332 +v 0.519139647484 0.787753224373 0.090079247952 +v 0.529436826706 0.773348331451 0.102756619453 +v 0.523522257805 0.779470205307 0.115589499474 +v 0.511284351349 0.795331001282 0.102586388588 +v 0.539867997169 0.729618787766 0.089468300343 +v 0.531417727470 0.747590124607 0.073452115059 +v 0.527307748795 0.738277912140 0.066966652870 +v 0.535834193230 0.725835144520 0.077996909618 +v 0.523569345474 0.720503687859 0.128831326962 +v 0.526804924011 0.719818413258 0.135298848152 +v 0.537645578384 0.725556254387 0.133212625980 +v 0.540601491928 0.730802595615 0.123283326626 +v 0.534850597382 0.748413085938 0.143720269203 +v 0.533050775528 0.738149583340 0.147188425064 +v 0.521691203117 0.732560038567 0.148685574532 +v 0.515544414520 0.738024771214 0.147808253765 +v 0.521300554276 0.711467444897 0.118006944656 +v 0.506483316422 0.747644484043 0.153991520405 +v 0.502677559853 0.742156207561 0.140237092972 +v 0.501390576363 0.751134574413 0.149526238441 +v 0.541826605797 0.742310583591 0.123451471329 +v 0.541710376740 0.746488988400 0.128475904465 +v 0.540703296661 0.751621305943 0.123491525650 +v 0.541983366013 0.746656119823 0.119618058205 +v 0.532743930817 0.764434099197 0.148749291897 +v 0.529609441757 0.768829822540 0.144122123718 +v 0.533065080643 0.763605058193 0.139945745468 +v 0.534711122513 0.759675085545 0.143647730350 +v 0.519114732742 0.724147796631 0.142600655556 +v 0.515840530396 0.728727519512 0.137992262840 +v 0.540112376213 0.734770715237 0.138869524002 +v 0.540696740150 0.740617036819 0.133606433868 +v 0.522036075592 0.709590852261 0.079642355442 +v 0.515752315521 0.708322763443 0.088428199291 +v 0.523067712784 0.698891818523 0.096575498581 +v 0.528108596802 0.700006604195 0.087751507759 +v 0.538988947868 0.715688526630 0.081110537052 +v 0.540867447853 0.712676644325 0.084093391895 +v 0.543041229248 0.715164959431 0.088397443295 +v 0.540838479996 0.719581723213 0.084006726742 +v 0.506251692772 0.761048257351 0.153887510300 +v 0.509725928307 0.757334053516 0.158531010151 +v 0.525017738342 0.770337998867 0.149724423885 +v 0.527247309685 0.767623901367 0.152778089046 +v 0.526124477386 0.703662514687 0.107429325581 +v 0.541818618774 0.721548616886 0.089130938053 +v 0.543096542358 0.717609286308 0.092653989792 +v 0.514024734497 0.685954689980 0.172047317028 +v 0.515303611755 0.692099928856 0.177232980728 +v 0.518338084221 0.682923436165 0.165953993797 +v 0.535277485847 0.708344936371 0.147681176662 +v 0.524157166481 0.704845070839 0.148237943649 +v 0.523532152176 0.699540019035 0.152397453785 +v 0.534913420677 0.702481508255 0.152555465698 +v 0.519562959671 0.716747760773 0.161118566990 +v 0.530426263809 0.720963180065 0.161624073982 +v 0.530594706535 0.714648783207 0.166401624680 +v 0.519082903862 0.711292505264 0.165497899055 +v 0.516831398010 0.709372937679 0.154453039169 +v 0.516183376312 0.703925609589 0.158576548100 +v 0.538677573204 0.715157747269 0.155361831188 +v 0.538471341133 0.711140751839 0.158608913422 +v 0.533556699753 0.693566560745 0.159267961979 +v 0.521171927452 0.692192018032 0.156506180763 +v 0.519478797913 0.686819851398 0.160811662674 +v 0.531105518341 0.687699437141 0.163550257683 +v 0.516932487488 0.704223155975 0.170683681965 +v 0.529407978058 0.705302298069 0.173214852810 +v 0.527298688889 0.699028372765 0.177262067795 +v 0.515662312508 0.698305785656 0.174661695957 +v 0.512620925903 0.697871327400 0.162089228630 +v 0.511643767357 0.691746532917 0.166646361351 +v 0.537143468857 0.698810040951 0.168046832085 +v 0.535217404366 0.695275962353 0.170467853546 +v 0.537539839745 0.719420015812 0.138411521912 +v 0.526125192642 0.715106844902 0.139984965324 +v 0.524770259857 0.710178494453 0.144071102142 +v 0.534347414970 0.711749315262 0.141898036003 +v 0.521291613579 0.727184534073 0.152451038361 +v 0.531763315201 0.732593894005 0.152449965477 +v 0.526586532593 0.727051615715 0.158230066299 +v 0.519834280014 0.721794843674 0.156188130379 +v 0.519172072411 0.719282746315 0.146682977676 +v 0.518319606781 0.714717566967 0.150376081467 +v 0.542425036430 0.726674139500 0.146438956261 +v 0.541626691818 0.720945656300 0.142000854015 +v 0.540896654129 0.716939508915 0.144021809101 +v 0.542814254761 0.723198592663 0.149447917938 +v 0.538549065590 0.730741381645 0.152049660683 +v 0.537324070930 0.727843642235 0.155685722828 +v 0.540292024612 0.714531242847 0.147353291512 +v 0.541417002678 0.719230473042 0.152375280857 +v 0.537661671638 0.723493218422 0.157489120960 +v 0.522315740585 0.696558475494 0.153652429581 +v 0.532957553864 0.696634590626 0.154145359993 +v 0.526823282242 0.710777997971 0.170685768127 +v 0.517996311188 0.707997262478 0.167178988457 +v 0.514600038528 0.702156662941 0.159258484840 +v 0.540738582611 0.708825647831 0.160881042480 +v 0.539718866348 0.703809440136 0.156380772591 +v 0.539808750153 0.700395345688 0.157848179340 +v 0.541602373123 0.705698668957 0.163604915142 +v 0.537238717079 0.712285995483 0.166008591652 +v 0.536659955978 0.709942877293 0.169121146202 +v 0.539298772812 0.698089897633 0.160789132118 +v 0.540274739265 0.702055811882 0.166186392307 +v 0.536662101746 0.706197261810 0.170638501644 +v 0.540821313858 0.729771852493 0.143572688103 +v 0.534619212151 0.690335750580 0.174641072750 +v 0.534919500351 0.687159657478 0.171165943146 +v 0.534467816353 0.684770822525 0.172516167164 +v 0.533648490906 0.687150001526 0.176869094372 +v 0.533669948578 0.692957580090 0.178517937660 +v 0.532203197479 0.690804123878 0.179874420166 +v 0.528633236885 0.684847950935 0.177231550217 +v 0.531227588654 0.682927608490 0.170618474483 +v 0.534844160080 0.687096238136 0.168217778206 +v 0.534787893295 0.692861855030 0.172489643097 +v 0.532088637352 0.695515155792 0.178507089615 +v 0.528244614601 0.691161870956 0.180853903294 +v 0.542320370674 0.728663325310 0.099375784397 +v 0.542763829231 0.724370181561 0.102947711945 +v 0.543692111969 0.728317677975 0.108140170574 +v 0.543245792389 0.733878433704 0.103289365768 +v 0.539205074310 0.750491321087 0.133062005043 +v 0.538523197174 0.754346132278 0.129205644131 +v 0.543280839920 0.732618570328 0.112749457359 +v 0.543036103249 0.737028181553 0.108903169632 +v 0.531576871872 0.715822875500 0.076436996460 +v 0.537781238556 0.706454157829 0.084965169430 +v 0.516264319420 0.770024180412 0.150568723679 +v 0.521349906921 0.763900756836 0.157923758030 +v 0.548167467117 0.667905509472 0.148447632790 +v 0.546362757683 0.670237898827 0.157298624516 +v 0.545064449310 0.678077816963 0.161700785160 +v 0.530092954636 0.702552258968 0.114723563194 +v 0.540755271912 0.707639873028 0.112147867680 +v 0.542485356331 0.714294910431 0.102276742458 +v 0.538369178772 0.719116032124 0.127693057060 +v 0.527642726898 0.713942587376 0.130929112434 +v 0.524290800095 0.705752372742 0.123955726624 +v 0.543419122696 0.722295403481 0.112965941429 +v 0.543574094772 0.715997815132 0.118450582027 +v 0.538602828979 0.668676257133 0.156609654427 +v 0.538909435272 0.675573229790 0.161329925060 +v 0.541661739349 0.665838003159 0.149098932743 +v 0.544516205788 0.691595375538 0.125912368298 +v 0.534333825111 0.686268508434 0.128116250038 +v 0.535755872726 0.680908918381 0.132590770721 +v 0.546100020409 0.686485588551 0.130807101727 +v 0.530930757523 0.697768330574 0.144220829010 +v 0.540539383888 0.703372836113 0.142738342285 +v 0.542316913605 0.698138594627 0.147101879120 +v 0.532684803009 0.692637383938 0.148399233818 +v 0.528201103210 0.689944863319 0.137334823608 +v 0.529621005058 0.684429168701 0.141547918320 +v 0.547267079353 0.699201166630 0.134586215019 +v 0.548285603523 0.695777177811 0.137413918972 +v 0.549032688141 0.678514897823 0.138707518578 +v 0.538316488266 0.672254383564 0.139705061913 +v 0.539997816086 0.668147265911 0.143931210041 +v 0.549917817116 0.673808932304 0.142802059650 +v 0.535045385361 0.684714317322 0.155533432961 +v 0.545179843903 0.690104901791 0.154163777828 +v 0.546261072159 0.685271203518 0.157988131046 +v 0.536641716957 0.680283010006 0.159242749214 +v 0.531511306763 0.676025629044 0.148519396782 +v 0.533580183983 0.671684741974 0.152756392956 +v 0.551849842072 0.686028897762 0.146424531937 +v 0.552071809769 0.683168113232 0.148839414120 +v 0.542264461517 0.702010095119 0.117023289204 +v 0.531574487686 0.696618914604 0.119827747345 +v 0.533209562302 0.691803276539 0.124981045723 +v 0.542015671730 0.694402575493 0.120017051697 +v 0.527886033058 0.708098948002 0.135989665985 +v 0.538574695587 0.713628768921 0.133871257305 +v 0.536827564240 0.708746492863 0.140737891197 +v 0.529211044312 0.702663362026 0.140047073364 +v 0.525272846222 0.700050890446 0.129155695438 +v 0.527511239052 0.695425748825 0.133208036423 +v 0.547236084938 0.709693551064 0.126150548458 +v 0.546826839447 0.704466640949 0.120804965496 +v 0.547609567642 0.700840175152 0.122550547123 +v 0.548392534256 0.706934809685 0.128966629505 +v 0.544142603874 0.712298274040 0.132492303848 +v 0.544166088104 0.709887802601 0.136017978191 +v 0.548007726669 0.698595046997 0.125999212265 +v 0.548170447350 0.703358292580 0.131739497185 +v 0.545077085495 0.706430852413 0.137581646442 +v 0.536803126335 0.676721870899 0.136981487274 +v 0.546262025833 0.680178046227 0.133575916290 +v 0.541578054428 0.694177865982 0.152556836605 +v 0.533885598183 0.688042283058 0.151733100414 +v 0.530973911285 0.680204808712 0.144950151443 +v 0.550747156143 0.694574475288 0.139328360558 +v 0.550565600395 0.689205110073 0.134101927280 +v 0.551587820053 0.686272799969 0.135594725609 +v 0.551995396614 0.692323207855 0.141612648964 +v 0.547929286957 0.697340607643 0.145395517349 +v 0.548542022705 0.695518493652 0.148347735405 +v 0.552347660065 0.684621572495 0.138660132885 +v 0.552754878998 0.689439475536 0.144070029259 +v 0.549746870995 0.692574083805 0.149577498436 +v 0.544905066490 0.711640059948 0.123353600502 +v 0.554090023041 0.679983973503 0.152069270611 +v 0.554366350174 0.676740288734 0.148733615875 +v 0.555369496346 0.674915611744 0.149775743484 +v 0.555078744888 0.677470684052 0.154006123543 +v 0.553590416908 0.682599842548 0.155873715878 +v 0.553566455841 0.680583536625 0.157422304153 +v 0.552198171616 0.673865497112 0.155969619751 +v 0.553200006485 0.671683013439 0.148962199688 +v 0.553523778915 0.675942182541 0.146138072014 +v 0.552976369858 0.681672930717 0.150468468666 +v 0.551427602768 0.684173226357 0.156823754311 +v 0.550627708435 0.679804623127 0.159817218781 +v 0.561773300171 0.667005836964 0.108489274979 +v 0.562437891960 0.667055547237 0.116291821003 +v 0.561485767365 0.672465205193 0.121660053730 +v 0.532580971718 0.693629801273 0.092338800430 +v 0.540351271629 0.699979722500 0.089606344700 +v 0.542522072792 0.705165266991 0.104129672050 +v 0.533750057220 0.698765039444 0.106722295284 +v 0.530255436897 0.693876147270 0.100649118423 +v 0.544795274734 0.705484151840 0.095455408096 +v 0.543451189995 0.710095763206 0.092419564724 +v 0.556688308716 0.663857758045 0.117876172066 +v 0.557191729546 0.668581724167 0.123596191406 +v 0.557321429253 0.663886785507 0.110297203064 +v 0.550040364265 0.687514245510 0.096655666828 +v 0.542815566063 0.681384682655 0.099399805069 +v 0.546362757683 0.677153646946 0.101630270481 +v 0.552957534790 0.683309435844 0.099402546883 +v 0.543991684914 0.686676859856 0.113965272903 +v 0.550568699837 0.692732572556 0.109966218472 +v 0.552548170090 0.688747942448 0.112151980400 +v 0.546415090561 0.682839512825 0.116651713848 +v 0.540330171585 0.681044578552 0.107999801636 +v 0.543417692184 0.676724195480 0.110768854618 +v 0.553754329681 0.691745519638 0.102674782276 +v 0.555277824402 0.688932120800 0.104441046715 +v 0.558210253716 0.676781058311 0.102892100811 +v 0.551411271095 0.670395851135 0.105135142803 +v 0.554313540459 0.666436553001 0.107223451138 +v 0.560604929924 0.672852039337 0.104644954205 +v 0.551035642624 0.676183104515 0.121510207653 +v 0.557325959206 0.682806491852 0.115938246250 +v 0.559729456902 0.679148495197 0.118263065815 +v 0.554118156433 0.672260820866 0.123688340187 +v 0.547722101212 0.669512152672 0.114816784859 +v 0.551224112511 0.665718138218 0.116806447506 +v 0.561138749123 0.681422650814 0.108677029610 +v 0.562478303909 0.679623842239 0.109518647194 +v 0.544580936432 0.695759892464 0.091603696346 +v 0.536828517914 0.688898324966 0.094865858555 +v 0.539610147476 0.684746026993 0.097163736820 +v 0.545929908752 0.689909696579 0.093230366707 +v 0.538297772408 0.693749725819 0.109103918076 +v 0.546232938766 0.700979232788 0.105687260628 +v 0.547426342964 0.696206927299 0.109800815582 +v 0.541006326675 0.689810454845 0.111045122147 +v 0.534368872643 0.688101053238 0.103304982185 +v 0.538012027740 0.685010075569 0.105363309383 +v 0.550858020782 0.700949549675 0.097763538361 +v 0.549491643906 0.697909832001 0.093589007854 +v 0.550813794136 0.695187926292 0.094435930252 +v 0.552393674850 0.698510527611 0.099156975746 +v 0.550143718719 0.701255559921 0.102890193462 +v 0.551577091217 0.699175059795 0.104868292809 +v 0.552265882492 0.693053603172 0.096573829651 +v 0.553521633148 0.695399820805 0.100726366043 +v 0.552729487419 0.696392178535 0.105458736420 +v 0.549271106720 0.673505485058 0.104050397873 +v 0.554521441460 0.678445816040 0.100325822830 +v 0.553958654404 0.685331046581 0.116456747055 +v 0.548520803452 0.679022014141 0.118942022324 +v 0.546076059341 0.673519492149 0.112744927406 +v 0.557391166687 0.687807381153 0.105319499969 +v 0.556760072708 0.685200691223 0.101653337479 +v 0.558141469955 0.683105111122 0.102121174335 +v 0.559174299240 0.686151802540 0.106331229210 +v 0.556374430656 0.688750267029 0.109533429146 +v 0.557712197304 0.687251687050 0.111271739006 +v 0.559688806534 0.681563556194 0.103728890419 +v 0.560254931450 0.683878600597 0.107563853264 +v 0.559006214142 0.685161352158 0.111566960812 +v 0.547902107239 0.702368199825 0.096936225891 +v 0.564785003662 0.677279114723 0.110871613026 +v 0.565037727356 0.675400853157 0.107921242714 +v 0.566116333008 0.673743724823 0.108678221703 +v 0.566264390945 0.674956560135 0.112121045589 +v 0.564288020134 0.678330838680 0.113956749439 +v 0.565272808075 0.676626622677 0.115107536316 +v 0.565854787827 0.671615004539 0.113909065723 +v 0.565153121948 0.671011805534 0.108082771301 +v 0.564292907715 0.675019502640 0.105877757072 +v 0.563846707344 0.678827285767 0.109954953194 +v 0.563235521317 0.679445624352 0.115319430828 +v 0.564523458481 0.675631463528 0.117880046368 +v 0.508027791977 0.705808162689 0.185932517052 +v 0.503305912018 0.708674609661 0.193543970585 +v 0.504237651825 0.716933488846 0.197534382343 +v 0.514192581177 0.739058196545 0.152600765228 +v 0.527436256409 0.742018103600 0.152551293373 +v 0.521233081818 0.757511794567 0.163559794426 +v 0.510088562965 0.753134310246 0.162780582905 +v 0.506630778313 0.744708418846 0.157582461834 +v 0.531264781952 0.752472937107 0.158268332481 +v 0.532356500626 0.758174300194 0.153628230095 +v 0.496481537819 0.711037337780 0.188681483269 +v 0.497926712036 0.717670679092 0.193979084492 +v 0.501640081406 0.707217693329 0.182956755161 +v 0.524531006813 0.727519810200 0.166848421097 +v 0.513245224953 0.726689815521 0.165383756161 +v 0.511902570724 0.722795486450 0.168308913708 +v 0.523548841476 0.723003327847 0.171342372894 +v 0.509620904922 0.739431321621 0.176361441612 +v 0.520829081535 0.741701781750 0.179257631302 +v 0.519819498062 0.736979722977 0.183732628822 +v 0.508016705513 0.736198961735 0.179792046547 +v 0.506378054619 0.732324659824 0.169591844082 +v 0.504464268684 0.729115188122 0.172098159790 +v 0.528473019600 0.734543383121 0.174971342087 +v 0.527720928192 0.731290459633 0.178188145161 +v 0.518843531609 0.715346276760 0.178183495998 +v 0.507250308990 0.715426683426 0.173481583595 +v 0.504154086113 0.710596859455 0.177767276764 +v 0.515055418015 0.710507869720 0.182130753994 +v 0.502767324448 0.729494333267 0.186172127724 +v 0.514684081078 0.728843152523 0.190630316734 +v 0.510843634605 0.723370432854 0.194603562355 +v 0.499645948410 0.723829448223 0.190759420395 +v 0.498818874359 0.722565889359 0.177140593529 +v 0.495809078217 0.716866850853 0.182247757912 +v 0.521199822426 0.721097052097 0.187072217464 +v 0.518935918808 0.718163132668 0.189251482487 +v 0.525767803192 0.736793160439 0.157169640064 +v 0.513168215752 0.734809756279 0.157476186752 +v 0.513290882111 0.730967700481 0.161826848984 +v 0.522656917572 0.730214118958 0.160739362240 +v 0.510023117065 0.747913599014 0.168063998222 +v 0.522023916245 0.752246916294 0.169538915157 +v 0.518543243408 0.747491836548 0.175433754921 +v 0.509775161743 0.743234395981 0.172257661819 +v 0.506842017174 0.740149796009 0.162537455559 +v 0.507179975510 0.736026167870 0.166410088539 +v 0.533026695251 0.745195150375 0.165490031242 +v 0.531216979027 0.738591969013 0.161130785942 +v 0.530287504196 0.734632968903 0.163438796997 +v 0.532566308975 0.741663217545 0.168802976608 +v 0.529102921486 0.749674737453 0.170213341713 +v 0.527972817421 0.746949017048 0.173987030983 +v 0.529739618301 0.732569515705 0.167208254337 +v 0.531125068665 0.737987637520 0.172155261040 +v 0.527689337730 0.742842078209 0.176281332970 +v 0.509422302246 0.719553887844 0.170410692692 +v 0.519722938538 0.717905282974 0.172781825066 +v 0.514890789986 0.734458565712 0.187463164330 +v 0.505210161209 0.733366072178 0.182220578194 +v 0.502490282059 0.726530313492 0.174150884151 +v 0.528773427010 0.728935301304 0.181077003479 +v 0.527782201767 0.723789393902 0.176339983940 +v 0.526475429535 0.720672547817 0.177816569805 +v 0.527674317360 0.726253092289 0.183694541454 +v 0.525176644325 0.733416676521 0.184952259064 +v 0.523093461990 0.731555163860 0.187405228615 +v 0.524735569954 0.719069778919 0.180645465851 +v 0.525143027306 0.723502397537 0.185845911503 +v 0.521940231323 0.728395640850 0.189189791679 +v 0.531512737274 0.747916936874 0.162386298180 +v 0.516651630402 0.713900744915 0.192825019360 +v 0.516959309578 0.710621714592 0.189882099628 +v 0.516236543655 0.708358943462 0.191311597824 +v 0.515579700470 0.710943758488 0.195346117020 +v 0.515369772911 0.716586649418 0.195921123028 +v 0.514391779900 0.714817166328 0.197931408882 +v 0.510539889336 0.709055662155 0.195576369762 +v 0.513627529144 0.706451058388 0.189301311970 +v 0.517277002335 0.710314393044 0.187095999718 +v 0.517525792122 0.716093361378 0.190888464451 +v 0.514751195908 0.719347119331 0.196116745472 +v 0.510549068451 0.715662777424 0.198681712151 +v 0.533120870590 0.762782216072 0.130480825901 +v 0.524248719215 0.772845745087 0.138786017895 +v 0.540866613388 0.746797680855 0.109364151955 +v 0.537410974503 0.759103238583 0.116162776947 +v 0.540438890457 0.742126762867 0.095553338528 +v 0.520689725876 0.728452146053 0.065447509289 +v 0.512445688248 0.721606135368 0.069535374641 +v 0.484276175499 0.737580657005 0.089107573032 +v 0.532676100731 0.765493094921 0.091823399067 +v 0.533045768738 0.757094204426 0.081643581390 +v 0.514222741127 0.784138381481 0.129911184311 +v 0.490095019341 0.767989397049 0.145252108574 +v 0.479055404663 0.768541455269 0.143870294094 +v 0.488378524780 0.780031323433 0.144005358219 +v 0.498183012009 0.777795016766 0.142598867416 +v 0.481902122498 0.759345829487 0.139733493328 +v 0.467978596687 0.763386905193 0.133951485157 +v 0.455418944359 0.777963399887 0.119988799095 +v 0.451926827431 0.777264595032 0.134350359440 +v 0.458689928055 0.767885684967 0.141088008881 +v 0.468816995621 0.769495069981 0.148243069649 +v 0.476413726807 0.779487848282 0.150034487247 +v 0.438565135002 0.771156847477 0.177375793457 +v 0.441770315170 0.764434158802 0.175460696220 +v 0.444827079773 0.770441770554 0.183847427368 +v 0.469913721085 0.779009222984 0.155741333961 +v 0.463364720345 0.769138574600 0.153375625610 +v 0.460401535034 0.767174780369 0.158601582050 +v 0.467330098152 0.775935709476 0.162042737007 +v 0.453510165215 0.769425153732 0.147249221802 +v 0.450202226639 0.768634498119 0.153188824654 +v 0.467652678490 0.791541039944 0.152924060822 +v 0.464564323425 0.787662565708 0.161086738110 +v 0.456722617149 0.792148888111 0.148283004761 +v 0.454262137413 0.790213525295 0.153603911400 +v 0.449564695358 0.782195746899 0.142867326736 +v 0.445333719254 0.781309008598 0.150482535362 +v 0.462369918823 0.796061277390 0.131073176861 +v 0.470566511154 0.799281775951 0.136529088020 +v 0.469121217728 0.797714054585 0.143102586269 +v 0.460547566414 0.795852959156 0.138329267502 +v 0.455207109451 0.789058446884 0.126723527908 +v 0.453316926956 0.788498997688 0.133789181709 +v 0.477501153946 0.792452573776 0.146006584167 +v 0.465461015701 0.796401441097 0.147136926651 +v 0.458685755730 0.794838547707 0.143734753132 +v 0.453046441078 0.789503097534 0.139946758747 +v 0.477824330330 0.801583707333 0.131692588329 +v 0.462747812271 0.795654177666 0.121492981911 +v 0.461746931076 0.769132852554 0.174213290215 +v 0.453706622124 0.761957705021 0.170404195786 +v 0.443747997284 0.765161931515 0.166959524155 +v 0.460104227066 0.781512916088 0.175598621368 +v 0.445243358612 0.784041821957 0.176206707954 +v 0.449878454208 0.784194827080 0.178927242756 +v 0.448585391045 0.782106339931 0.182242095470 +v 0.443793654442 0.781242489815 0.181344807148 +v 0.440421819687 0.782552838326 0.174964666367 +v 0.439622640610 0.780634343624 0.178736805916 +v 0.438029885292 0.777883410454 0.165846407413 +v 0.457392096519 0.764703154564 0.162105917931 +v 0.465457439423 0.772188305855 0.166752159595 +v 0.447040438652 0.767057418823 0.158573865891 +v 0.465133786201 0.783054172993 0.168668568134 +v 0.452129364014 0.790718674660 0.158209085464 +v 0.459192514420 0.790737628937 0.162641108036 +v 0.459162950516 0.789255976677 0.167319536209 +v 0.450338006020 0.789745509624 0.162790656090 +v 0.445508122444 0.787147641182 0.154866278172 +v 0.442550182343 0.785621106625 0.158436417580 +v 0.440964460373 0.777064740658 0.156837046146 +v 0.456962108612 0.787429749966 0.170820236206 +v 0.448460698128 0.787783861160 0.167056441307 +v 0.441197395325 0.784746885300 0.163089811802 +v 0.447333574295 0.785258412361 0.169726729393 +v 0.443022251129 0.777300119400 0.184506356716 +v 0.450631856918 0.780292212963 0.183982253075 +v 0.453623771667 0.784703671932 0.178378582001 +v 0.445952057838 0.786179065704 0.172527611256 +v 0.438473701477 0.781861722469 0.171767473221 +v 0.437908291817 0.777420401573 0.178881585598 +v 0.492766499519 0.755644321442 0.143515646458 +v 0.486923098564 0.747458815575 0.130217909813 +v 0.466797590256 0.757182359695 0.099651396275 +v 0.472083091736 0.750997185707 0.089635670185 +v 0.469869136810 0.760206878185 0.083161294460 +v 0.463792681694 0.773227989674 0.097641050816 +v 0.480604887009 0.743164718151 0.097418367863 +v 0.509183526039 0.740819334984 0.056642234325 +v 0.515854835510 0.750867664814 0.056534111500 +v 0.500680327415 0.800476849079 0.113281011581 +v 0.480252742767 0.809417188168 0.104322493076 +v 0.496218204498 0.805853843689 0.093608915806 +v 0.494943737984 0.789026916027 0.136653363705 +v 0.501828312874 0.788901865482 0.133081078529 +v 0.507851958275 0.797888576984 0.081428110600 +v 0.522942423820 0.779709160328 0.077857553959 +v 0.499507188797 0.765030682087 0.148840188980 +v 0.507470130920 0.774820327759 0.144708752632 +v 0.476036071777 0.746732592583 0.106510400772 +v 0.493361711502 0.803006708622 0.122841835022 +v 0.478899002075 0.807841002941 0.117558896542 +v 0.463644027710 0.796741485596 0.111424744129 +v 0.465716123581 0.794997811317 0.103478550911 +v 0.458229780197 0.777908682823 0.107420504093 +v 0.462887525558 0.761031866074 0.109043002129 +v 0.471899509430 0.750320196152 0.116126954556 +v 0.478152394295 0.753174483776 0.131771326065 +v 0.468824982643 0.755779623985 0.124225437641 +v 0.461404800415 0.763227701187 0.116893410683 +v 0.489722132683 0.797489106655 0.133335888386 +v 0.486714601517 0.789863348007 0.141924619675 +v 0.484797358513 0.741189062595 0.067133903503 +v 0.478503465652 0.751935124397 0.068854808807 +v 0.500882506371 0.734169185162 0.061571240425 +v 0.477385044098 0.744656562805 0.080763101578 +v 0.481624126434 0.739364206791 0.075847864151 +v 0.500677943230 0.775840044022 0.048178792000 +v 0.488707780838 0.765670180321 0.051871418953 +v 0.477584242821 0.762718737125 0.063034832478 +v 0.467450737953 0.766845524311 0.076912343502 +v 0.461498498917 0.778625905514 0.089994966984 +v 0.461806297302 0.795562386513 0.096759736538 +v 0.470135807991 0.809676170349 0.096153378487 +v 0.483797073364 0.812756240368 0.088045477867 +v 0.497678637505 0.805696189404 0.075719475746 +v 0.504785418510 0.791619062424 0.059249997139 +v 0.513334751129 0.788233518600 0.068128407001 +v 0.511568665504 0.770020723343 0.053026437759 +v 0.520908117294 0.761221706867 0.061087131500 +v 0.497784495354 0.788155913353 0.046932697296 +v 0.488117575645 0.775684356689 0.047841131687 +v 0.475840330124 0.770089447498 0.057217180729 +v 0.463661313057 0.771884500980 0.069685220718 +v 0.455235481262 0.782279491425 0.081061065197 +v 0.454746246338 0.798582255840 0.087480664253 +v 0.461082696915 0.812864422798 0.088064253330 +v 0.473519444466 0.820378422737 0.082788586617 +v 0.488731861115 0.816120684147 0.070775330067 +v 0.498112678528 0.803522765636 0.056562244892 +v 0.494563221931 0.799096226692 0.042310714722 +v 0.486902475357 0.808524429798 0.030907094479 +v 0.478900671005 0.793341755867 0.029809832573 +v 0.486203432083 0.785064756870 0.041563153267 +v 0.464779496193 0.783073127270 0.035595595837 +v 0.472564697266 0.777089834213 0.049066007137 +v 0.450284838676 0.780604720116 0.044155120850 +v 0.458022236824 0.776483118534 0.058857560158 +v 0.440367698669 0.784753084183 0.049066960812 +v 0.443802475929 0.787280976772 0.064302384853 +v 0.444123268127 0.804896831512 0.073245406151 +v 0.451916456223 0.821180701256 0.076650619507 +v 0.464986562729 0.832542598248 0.073360800743 +v 0.480245232582 0.831362009048 0.059292852879 +v 0.481340765953 0.834166049957 0.044129669666 +v 0.492998480797 0.814772903919 0.050042569637 +v 0.486271023750 0.822800278664 0.037332177162 +v 0.523271918297 0.770754814148 0.068353176117 +v 0.514518499374 0.778774738312 0.058889150620 +v 0.507184267044 0.776329338551 0.050279438496 +v 0.508969664574 0.781902492046 0.054183304310 +v 0.244488239288 0.426662117243 0.058280527592 +v 0.238626718521 0.424758225679 0.073367774487 +v 0.224532604218 0.421156793833 0.082624495029 +v 0.024168014526 0.813921332359 0.149686336517 +v -0.045492410660 0.811454951763 0.138143301010 +v -0.043429851532 0.849619209766 0.152232885361 +v -0.103686809540 0.858773767948 0.124039173126 +v -0.105726003647 0.821566998959 0.105698108673 +v -0.216044902802 1.015913844109 -0.065555334091 +v -0.209439516068 0.999427437782 -0.058619439602 +v -0.211006164551 0.987861990929 -0.064142704010 +v -0.230187892914 0.988817870617 -0.073895573616 +v -0.197565555573 0.993671536446 -0.052417397499 +v -0.196903944016 0.968688607216 -0.066415429115 +v -0.226006031036 0.954002797604 -0.069144666195 +v -0.186616420746 0.850906968117 -0.171889841557 +v -0.197167158127 0.860019028187 -0.140617847443 +v -0.179961204529 0.897772192955 -0.115278422832 +v -0.166189670563 0.875091910362 -0.153516530991 +v -0.148694753647 0.880870044231 -0.136985838413 +v -0.150884389877 0.907215118408 -0.104235470295 +v -0.157392501831 0.931122899055 -0.078570246696 +v -0.191499710083 0.929601490498 -0.075881302357 +v -0.215350627899 0.919599175453 -0.078258514404 +v -0.203397989273 0.897285580635 -0.100253224373 +v -0.217379808426 0.875960350037 -0.118124604225 +v -0.029005050659 0.571525335312 -0.088107168674 +v 0.002735614777 0.548631310463 -0.070256829262 +v 0.027010679245 0.590999245644 -0.090317308903 +v -0.018280744553 0.620064198971 -0.103850007057 +v 0.018197059631 0.528473854065 -0.041200280190 +v 0.039121389389 0.542406558990 -0.043555021286 +v -0.148338317871 0.925767302513 -0.247407793999 +v -0.147905111313 0.887462854385 -0.231083989143 +v -0.130671024323 0.907526671886 -0.214898705482 +v -0.110074996948 0.950674951077 -0.223033547401 +v -0.158329963684 0.874756038189 -0.191096603870 +v -0.134732007980 0.893178164959 -0.177285671234 +v -0.090615749359 0.914829909801 -0.207994282246 +v -0.112192392349 0.762768864632 0.047738432884 +v -0.126791477203 0.781367957592 0.019289433956 +v -0.137742519379 0.815532445908 0.021429121494 +v -0.104435205460 0.789754331112 0.077099800110 +v -0.129538536072 0.770201504230 -0.012699365616 +v -0.138639211655 0.806268036366 -0.033546984196 +v -0.147496223450 0.848499417305 0.061839640141 +v -0.089931488037 0.741834282875 0.071407139301 +v -0.054453372955 0.767961084843 0.118939399719 +v -0.098224401474 0.709381341934 0.028533697128 +v -0.111907958984 0.714046895504 -0.023087024689 +v -0.118014335632 0.742692947388 0.013800978661 +v -0.105286121368 0.729441761971 0.038245499134 +v -0.068748474121 0.719616711140 0.068620622158 +v -0.085082054138 0.653443753719 0.027877748013 +v -0.058162212372 0.656390905380 0.056895077229 +v -0.050686836243 0.607604086399 0.047678053379 +v -0.099447727203 0.621420621872 0.005962431431 +v -0.068820476532 0.563984632492 0.037404358387 +v -0.093855857849 0.573501050472 0.006214916706 +v -0.061287641525 1.064289569855 0.001488387585 +v -0.092086315155 1.040367364883 0.017865002155 +v -0.100042343140 1.063028454781 -0.025874853134 +v -0.068414211273 1.083276271820 -0.024904131889 +v -0.152829885483 1.043263196945 -0.030532896519 +v -0.132411718369 1.076464056969 -0.043527424335 +v -0.132525444031 1.024463057518 -0.009899616241 +v -0.121130466461 1.003944158554 0.032351315022 +v -0.171019792557 1.007393002510 -0.034520506859 +v -0.196717739105 1.027601242065 -0.048720419407 +v -0.173523902893 1.051656365395 -0.044109880924 +v -0.172769784927 0.976805567741 -0.047324657440 +v -0.238524913788 0.893932402134 -0.094456076622 +v -0.167498588562 1.074029922485 -0.061905801296 +v -0.199609756470 1.058331489563 -0.076546132565 +v 0.035741090775 0.537817895412 0.004574596882 +v 0.063968896866 0.537479221821 0.012407362461 +v 0.069581508636 0.543589949608 -0.037130057812 +v -0.067850828171 1.115831255913 -0.122188806534 +v -0.044815301895 1.153640151024 -0.091253459454 +v -0.061902284622 1.142533540726 -0.076420962811 +v -0.087494134903 1.110044360161 -0.101176381111 +v -0.102974891663 1.099434852600 -0.071468591690 +v -0.069273948669 1.125692009926 -0.061185836792 +v -0.110057592392 1.099711656570 -0.165807723999 +v -0.129351377487 1.099599599838 -0.132730364799 +v -0.150191068649 1.093798398972 -0.095395982265 +v -0.167793750763 1.074134111404 -0.162128686905 +v -0.187201261520 1.073685646057 -0.118393898010 +v -0.200552225113 1.044490218163 -0.186491847038 +v -0.215443849564 1.052723646164 -0.141018509865 +v -0.222080469131 1.039790749550 -0.094145119190 +v -0.239657878876 1.022207856178 -0.158943414688 +v -0.241830825806 1.013184070587 -0.110611021519 +v -0.260427713394 0.986940979958 -0.176530241966 +v -0.263617753983 0.981970906258 -0.132411062717 +v -0.260305166245 0.958638668060 -0.098890125751 +v -0.278702974319 0.955592036247 -0.163595557213 +v -0.278200626373 0.932817518711 -0.130598545074 +v -0.271001577377 0.901743829250 -0.119967401028 +v -0.252998113632 0.927197396755 -0.088302910328 +v -0.255738973618 0.872728466988 -0.122977674007 +v -0.288134813309 0.917696714401 -0.166244506836 +v -0.280348777771 0.886196553707 -0.155893802643 +v -0.267940998077 0.855949759483 -0.158157467842 +v -0.322344541550 0.899317681789 -0.184273540974 +v -0.314202308655 0.871414363384 -0.169530987740 +v -0.304754018784 0.841402471066 -0.163097262383 +v -0.351705789566 0.865829944611 -0.176985263824 +v -0.346288204193 0.842895746231 -0.165701746941 +v -0.342967510223 0.821778357029 -0.172056436539 +v -0.297340869904 0.818372488022 -0.180801868439 +v -0.255311727524 0.834150016308 -0.184277534485 +v -0.344840049744 0.807662725449 -0.190519332886 +v -0.298639774323 0.802460789680 -0.209736287594 +v -0.253891229630 0.813284337521 -0.222991466522 +v -0.215986251831 0.835866868496 -0.183695673943 +v -0.214768171310 0.830051660538 -0.219524562359 +v -0.309920310974 0.802444458008 -0.240571200848 +v -0.261218309402 0.820708096027 -0.265693724155 +v -0.202613115311 0.844021797180 -0.252863943577 +v -0.351272106171 0.804853558540 -0.214755058289 +v -0.361089944839 0.814315497875 -0.239227890968 +v -0.324601888657 0.821000874043 -0.263598829508 +v -0.283481359482 0.848797678947 -0.284017473459 +v -0.368223667145 0.837127387524 -0.253749161959 +v -0.336348056793 0.853153288364 -0.277962535620 +v -0.297395467758 0.883530080318 -0.294476032257 +v -0.240055322647 0.874735951424 -0.304646462202 +v -0.264170885086 0.907689154148 -0.292484790087 +v -0.343079566956 0.886833965778 -0.280547678471 +v -0.304080247879 0.919566035271 -0.288546800613 +v -0.274107933044 0.937634170055 -0.272911608219 +v -0.237725257874 0.939036250114 -0.275381207466 +v -0.246447801590 0.963879764080 -0.250892400742 +v -0.299230575562 0.941379368305 -0.261109113693 +v -0.274475336075 0.952009916306 -0.239782989025 +v -0.254629850388 0.977320313454 -0.217426180840 +v -0.217944860458 0.993275702000 -0.236558616161 +v -0.229768037796 1.010393023491 -0.203123748302 +v -0.274976491928 0.958194017410 -0.204134941101 +v -0.294450044632 0.945626258850 -0.227268993855 +v -0.291128396988 0.938337326050 -0.193792879581 +v -0.336385011673 0.927444577217 -0.237453699112 +v -0.328366279602 0.918976187706 -0.207168340683 +v -0.373788356781 0.900349020958 -0.237839400768 +v -0.367165803909 0.902696073055 -0.212942600250 +v -0.358767509460 0.887838721275 -0.192018508911 +v -0.399082183838 0.886386156082 -0.210687160492 +v -0.391416311264 0.878774166107 -0.190892636776 +v -0.385291337967 0.862347722054 -0.175807774067 +v -0.380799770355 0.844238936901 -0.168828010559 +v -0.377043247223 0.828504204750 -0.168903589249 +v -0.378103971481 0.815952479839 -0.178110599518 +v -0.382728338242 0.809657692909 -0.196520686150 +v -0.389034032822 0.812136590481 -0.218078017235 +v -0.393783569336 0.826233685017 -0.232942044735 +v -0.374763011932 0.861356377602 -0.261329650879 +v -0.397455453873 0.845723807812 -0.239633858204 +v -0.401363134384 0.864607393742 -0.240126490593 +v -0.377741813660 0.885030388832 -0.257234215736 +v -0.342441082001 0.914424657822 -0.266438513994 +v -0.402511835098 0.878381252289 -0.229500651360 +v -0.170168876648 1.000604867935 -0.237006545067 +v -0.184483528137 1.026935815811 -0.219662249088 +v -0.204886913300 0.972634196281 -0.262749642134 +v -0.159294366837 0.967827081680 -0.247309863567 +v -0.191198587418 0.937436878681 -0.281654030085 +v -0.222276926041 0.905950903893 -0.284064441919 +v -0.177347660065 0.896951436996 -0.278299987316 +v -0.199582099915 0.874506413937 -0.276412338018 +v -0.219844818115 0.853652238846 -0.284712314606 +v -0.174687385559 0.863596737385 -0.250282466412 +v -0.181549310684 0.849696934223 -0.207981944084 +v -0.116446971893 1.003559350967 -0.234433829784 +v -0.131599664688 1.042656898499 -0.224299788475 +v -0.063884496689 1.038912057877 -0.210333466530 +v -0.085042953491 1.078667521477 -0.191534459591 +v -0.149874925613 1.067245244980 -0.198640346527 +v 0.006145715714 1.018314838409 -0.186279118061 +v -0.007123947144 1.064264893532 -0.171564280987 +v -0.048004388809 0.991492629051 -0.217727243900 +v -0.026478528976 1.111588954926 -0.142706692219 +v 0.017360448837 0.970607042313 -0.195879101753 +v -0.035747051239 0.945858657360 -0.214797735214 +v 0.026816844940 0.918899655342 -0.194363832474 +v -0.025933980942 0.897993922234 -0.206000804901 +v -0.080864667892 0.874895334244 -0.192031383514 +v -0.018188714981 0.847238957882 -0.190483808517 +v -0.072869777679 0.831310868263 -0.174542069435 +v -0.116947174072 0.821985781193 -0.144294202328 +v -0.121940612793 0.859033942223 -0.160447001457 +v -0.136636972427 0.828852474689 -0.101162433624 +v -0.142194747925 0.857307851315 -0.121078729630 +v -0.143414735794 0.845660209656 -0.058004975319 +v -0.144388198853 0.880819320679 -0.082161068916 +v -0.153039455414 0.862532734871 -0.018098533154 +v -0.153266906738 0.903006434441 -0.052416980267 +v -0.161772251129 0.888247668743 0.014432668686 +v -0.160099267960 0.926342248917 -0.032119214535 +v -0.164556503296 0.953284680843 -0.062894344330 +v -0.171996355057 0.952526032925 -0.012361943722 +v -0.164795875549 0.921657145023 0.036377131939 +v -0.147756576538 0.961669743061 0.040470600128 +v -0.158525466919 0.986356794834 -0.006434679031 +v -0.145291805267 0.885101556778 0.083670973778 +v -0.126105070114 0.929664313793 0.086600899696 +v -0.100680828094 0.976286113262 0.074836552143 +v -0.088333368301 0.904943823814 0.124103307724 +v -0.068841934204 0.954400718212 0.109162628651 +v -0.050687789917 1.002869248390 0.086499452591 +v -0.076419353485 1.019973993301 0.056980848312 +v -0.031089067459 1.040452837944 0.053422629833 +v -0.048895835876 1.049849748611 0.030142068863 +v -0.028286457062 0.943060517311 0.130822718143 +v -0.018934726715 0.993253171444 0.104324102402 +v -0.008577823639 1.036106586456 0.068773925304 +v 0.016984224319 0.938255190849 0.132273197174 +v 0.016255617142 0.988211154938 0.106916069984 +v 0.017256975174 1.034857988358 0.074777126312 +v -0.037022590637 0.893554985523 0.148184359074 +v -0.125862836838 0.795052647591 -0.077642142773 +v -0.088509559631 0.748381972313 -0.091158628464 +v -0.106392145157 0.784361839294 -0.120982527733 +v -0.114890336990 0.757017672062 -0.053101658821 +v -0.051238536835 0.693981826305 -0.101675391197 +v -0.053010225296 0.743843674660 -0.121231853962 +v -0.086938619614 0.703561365604 -0.072716116905 +v -0.064249753952 0.786670446396 -0.151442766190 +v -0.010465383530 0.743931651115 -0.136873304844 +v -0.013234376907 0.796020328999 -0.166346788406 +v 0.032855987549 0.676068127155 -0.117384016514 +v 0.034677505493 0.748068869114 -0.133399724960 +v -0.010420322418 0.684079170227 -0.115326344967 +v 0.036463499069 0.808236598969 -0.159694790840 +v 0.077756881714 0.752460122108 -0.118776857853 +v 0.079266071320 0.817305207253 -0.140415549278 +v 0.034280061722 0.864266276360 -0.182166934013 +v 0.072944402695 0.932042717934 -0.169168591499 +v 0.063047170639 1.036345005035 -0.171650230885 +v -0.058959484100 0.640669405460 -0.090303719044 +v -0.066095590591 0.592738807201 -0.077589452267 +v -0.097780227661 0.609835147858 -0.045422494411 +v -0.095155477524 0.656358480453 -0.060826182365 +v -0.105790376663 0.668013811111 -0.016322851181 +v -0.087153911591 0.680714309216 0.023537695408 +v -0.060539484024 0.690345466137 0.063132166862 +v -0.022153139114 0.659986138344 0.099782228470 +v -0.026333808899 0.697329998016 0.108290851116 +v -0.032596349716 0.731493532658 0.113822937012 +v 0.026883125305 0.702849328518 0.121817588806 +v -0.007471561432 0.622038125992 0.083720922470 +v 0.033208370209 0.620859384537 0.106691539288 +v 0.010722160339 0.584229052067 0.067391037941 +v 0.046667098999 0.584562242031 0.083252370358 +v 0.025924444199 0.553159415722 0.041892528534 +v 0.057153224945 0.554712772369 0.051456034184 +v -0.020308732986 0.569664835930 0.051660239697 +v 0.001250267029 0.543498456478 0.031863629818 +v 0.013638973236 0.532003760338 -0.001672267914 +v -0.000382900238 0.520153343678 -0.005273222923 +v -0.012644290924 0.528460025787 0.023336231709 +v 0.006472110748 0.512750744820 -0.036196351051 +v -0.007425308228 0.474734485149 -0.000116705894 +v -0.005846261978 0.500033557415 -0.004471659660 +v 0.000211715698 0.494048833847 -0.030069172382 +v -0.006864786148 0.472749769688 -0.022261261940 +v -0.018941164017 0.475434243679 -0.039400577545 +v -0.014056682587 0.499557584524 -0.049792110920 +v -0.007712841034 0.522083699703 -0.061311900616 +v -0.037567615509 0.480722934008 -0.046939432621 +v -0.037078142166 0.509507179260 -0.057908356190 +v -0.034726858139 0.538039565086 -0.071861624718 +v -0.058244705200 0.486637681723 -0.040571570396 +v -0.064287900925 0.519816040993 -0.052058398724 +v -0.066971778870 0.554416954517 -0.064069986343 +v -0.073494434357 0.490894377232 -0.019915223122 +v -0.083090543747 0.529140114784 -0.027455270290 +v -0.092357873917 0.568181574345 -0.034658551216 +v -0.079753637314 0.491208374500 0.009451150894 +v -0.086676597595 0.532695353031 0.006102561951 +v -0.073581457138 0.454350113869 0.007979691029 +v -0.066380023956 0.457608014345 -0.017444491386 +v -0.067813158035 0.488057374954 0.029619216919 +v -0.066108465195 0.450441658497 0.027257204056 +v -0.069606781006 0.527580559254 0.030218899250 +v -0.044326543808 0.482478886843 0.033305048943 +v -0.044793844223 0.448259085417 0.031902611256 +v -0.042425155640 0.517599105835 0.031794846058 +v -0.017328262329 0.477021217346 0.022542297840 +v -0.018852710724 0.507313489914 0.017633438110 +v -0.037883758545 0.545025348663 0.042228996754 +v -0.019141912460 0.447015106678 0.024648547173 +v -0.009853363037 0.448897719383 0.002969503403 +v -0.010138511658 0.424218118191 -0.001672625542 +v -0.006133556366 0.399529516697 -0.015495121479 +v -0.017596960068 0.394342869520 -0.000591039658 +v -0.020816802979 0.419395595789 0.016798019409 +v -0.009426116943 0.427912145853 -0.021588802338 +v -0.001868963242 0.404415190220 -0.034041702747 +v -0.011332273483 0.450134307146 -0.017913401127 +v -0.018124103546 0.431156426668 -0.039218008518 +v -0.011564016342 0.408847093582 -0.052631855011 +v -0.021310806274 0.452264279127 -0.034315645695 +v -0.035163879395 0.433271795511 -0.046046972275 +v -0.032569646835 0.410334706306 -0.058933556080 +v -0.036829233170 0.455296754837 -0.040022969246 +v -0.050311565399 0.433117091656 -0.039737045765 +v -0.049625396729 0.409451037645 -0.056582272053 +v -0.052719354630 0.457712709904 -0.034135818481 +v -0.060839176178 0.430344671011 -0.025123417377 +v -0.060647249222 0.405378311872 -0.044947326183 +v -0.039075374603 0.333637267351 -0.059441745281 +v -0.046819448471 0.377576559782 -0.066945731640 +v -0.057845830917 0.373610943556 -0.056396543980 +v -0.044396162033 0.332225650549 -0.051878690720 +v -0.043912887573 0.330512613058 -0.042705893517 +v -0.057412862778 0.368281006813 -0.038785338402 +v -0.061007261276 0.399160534143 -0.025505304337 +v -0.041280269623 0.328136712313 -0.033087968826 +v -0.046390056610 0.364219039679 -0.022349596024 +v -0.051404714584 0.393975228071 -0.006930351257 +v -0.035102367401 0.325139790773 -0.023742496967 +v -0.033584117889 0.360739827156 -0.011030375957 +v -0.036393165588 0.389957576990 0.006403863430 +v -0.024703979492 0.326273173094 -0.026353597641 +v -0.019546747208 0.364557057619 -0.018281936646 +v -0.016890287399 0.328833460808 -0.035211801529 +v -0.006627321243 0.368008077145 -0.028945624828 +v -0.013489007950 0.331431388855 -0.046256422997 +v -0.002036094666 0.373024463654 -0.045083582401 +v -0.017686605453 0.333469033241 -0.056734740734 +v -0.010092020035 0.377158254385 -0.060950160027 +v -0.028373241425 0.334166795015 -0.062248706818 +v -0.029481172562 0.378683656454 -0.066067218781 +v -0.219955444336 0.842094063759 -0.154961943626 +v -0.235270023346 0.857862532139 -0.137915790081 +v -0.087909221649 1.087654352188 -0.050910711288 +v -0.070798635483 1.104470491409 -0.045316457748 +v -0.247585058212 0.849854946136 -0.153714001179 +v -0.240604400635 0.840870857239 -0.163044929504 +v -0.011443376541 1.160188794136 -0.101308941841 +v 0.036525011063 1.165561199188 -0.098447144032 +v -0.447368383408 0.797736108303 -0.173693537712 +v -0.447412490845 0.796239554882 -0.162157893181 +v -0.443197250366 0.802235960960 -0.155865490437 +v -0.438388586044 0.805791616440 -0.164553344250 +v -0.494693517685 0.893587052822 -0.106214702129 +v -0.495902061462 0.900918126106 -0.105787515640 +v -0.493417978287 0.900910675526 -0.096440255642 +v -0.491146326065 0.891790270805 -0.099022448063 +v -0.489644289017 0.821257293224 -0.123335301876 +v -0.471888542175 0.823015093803 -0.132293999195 +v -0.468766212463 0.813135862350 -0.129689037800 +v -0.484895229340 0.811676740646 -0.120194315910 +v -0.476134061813 0.841621756554 -0.135791420937 +v -0.474495887756 0.832299590111 -0.135184764862 +v -0.494080066681 0.831160485744 -0.126861453056 +v -0.496844291687 0.842333674431 -0.129078328609 +v -0.451151609421 0.806489586830 -0.139960348606 +v -0.466060161591 0.802223086357 -0.129936814308 +v -0.452974319458 0.816859483719 -0.137552082539 +v -0.485681533813 0.851063311100 -0.187404632568 +v -0.502808094025 0.846567988396 -0.173310935497 +v -0.499794721603 0.830486893654 -0.174043655396 +v -0.483735561371 0.833467781544 -0.188756585121 +v -0.491135358810 0.786839187145 -0.137906074524 +v -0.477485179901 0.788113296032 -0.152600586414 +v -0.484442234039 0.794747292995 -0.160152792931 +v -0.501042604446 0.794560611248 -0.139316618443 +v -0.508388519287 0.830364823341 -0.119966745377 +v -0.521482229233 0.819912433624 -0.130728006363 +v -0.523111343384 0.828098714352 -0.121222257614 +v -0.512018680573 0.834384858608 -0.118249833584 +v -0.514605045319 0.853373050690 -0.127098441124 +v -0.517944812775 0.850607991219 -0.124822854996 +v -0.530208826065 0.845044076443 -0.127292752266 +v -0.531853437424 0.844683170319 -0.137332379818 +v -0.500032663345 0.821590065956 -0.116037189960 +v -0.509562015533 0.864964723587 -0.132301747799 +v -0.504422664642 0.864491283894 -0.132351279259 +v -0.500204324722 0.853452622890 -0.129730045795 +v -0.520584106445 0.822443604469 -0.147195518017 +v -0.522242069244 0.828122496605 -0.150109887123 +v -0.526848316193 0.828633189201 -0.143665313721 +v -0.523217201233 0.823370218277 -0.141705751419 +v -0.528179168701 0.850113034248 -0.151596605778 +v -0.527724266052 0.857582092285 -0.153711855412 +v -0.533334732056 0.857348978519 -0.147594749928 +v -0.531985759735 0.850167274475 -0.146348357201 +v -0.507945299149 0.843233942986 -0.123751223087 +v -0.509826183319 0.844902992249 -0.121303021908 +v -0.529620647430 0.830736279488 -0.135385751724 +v -0.531349182129 0.833562910557 -0.126550495625 +v -0.487643718719 0.804054796696 -0.111395001411 +v -0.480391025543 0.801913261414 -0.119697570801 +v -0.480456352234 0.792149066925 -0.122189939022 +v -0.488045692444 0.794178664684 -0.112424015999 +v -0.495940208435 0.784620106220 -0.126145541668 +v -0.499251127243 0.786586403847 -0.129543840885 +v -0.504209518433 0.787554085255 -0.123033821583 +v -0.499408006668 0.785145521164 -0.121613442898 +v -0.510551452637 0.871032297611 -0.138833642006 +v -0.515317440033 0.871675372124 -0.137129485607 +v -0.526596546173 0.864687561989 -0.151889979839 +v -0.530538082123 0.864613473415 -0.148025453091 +v -0.497328281403 0.811198830605 -0.112283110619 +v -0.503155469894 0.790419399738 -0.130545675755 +v -0.506678104401 0.791445076466 -0.125318050385 +v -0.493824243546 0.871466159821 -0.085897326469 +v -0.490470170975 0.869438707829 -0.092285215855 +v -0.485040903091 0.863280296326 -0.091263115406 +v -0.487308979034 0.865945041180 -0.082743287086 +v -0.485924720764 0.855860471725 -0.088013470173 +v -0.489061117172 0.856862902641 -0.081349372864 +v -0.520172119141 0.836955487728 -0.100135803223 +v -0.515067815781 0.840695142746 -0.093722283840 +v -0.506313800812 0.841244280338 -0.101609706879 +v -0.510276794434 0.838908553123 -0.105833172798 +v -0.512242078781 0.857203602791 -0.107409000397 +v -0.522161960602 0.857336878777 -0.099027633667 +v -0.526552677155 0.854199707508 -0.105519115925 +v -0.515424251556 0.854900300503 -0.111687183380 +v -0.508421897888 0.847175776958 -0.111868441105 +v -0.505060672760 0.849078774452 -0.108070075512 +v -0.524366140366 0.847588360310 -0.093832015991 +v -0.527771949768 0.845007956028 -0.098792850971 +v -0.504534959793 0.847885608673 -0.086177408695 +v -0.498050689697 0.852172255516 -0.082087755203 +v -0.490575790405 0.850792109966 -0.091464221478 +v -0.496593952179 0.846407592297 -0.095529913902 +v -0.496419668198 0.867350459099 -0.096872746944 +v -0.503741264343 0.868512868881 -0.087242722511 +v -0.511126995087 0.864330530167 -0.091117858887 +v -0.503080606461 0.863209724426 -0.101341784000 +v -0.495740175247 0.854071259499 -0.103795528412 +v -0.489275217056 0.858667314053 -0.098730802536 +v -0.510396480560 0.857069015503 -0.083190023899 +v -0.506175994873 0.859634041786 -0.081316232681 +v -0.511812210083 0.838328003883 -0.109384715557 +v -0.512324810028 0.836986780167 -0.113109648228 +v -0.523508548737 0.831316888332 -0.112718701363 +v -0.519570350647 0.833538651466 -0.105941951275 +v -0.527900457382 0.853996634483 -0.113405644894 +v -0.530893802643 0.848428845406 -0.119828045368 +v -0.517930030823 0.852390527725 -0.120005369186 +v -0.516858100891 0.853576421738 -0.115721166134 +v -0.510461807251 0.846561253071 -0.116781532764 +v -0.510272741318 0.846948623657 -0.114067971706 +v -0.528704881668 0.833988189697 -0.105706632137 +v -0.529921531677 0.832707405090 -0.110456645489 +v -0.535176277161 0.837255477905 -0.113185763359 +v -0.535221815109 0.839498996735 -0.107395589352 +v -0.535897016525 0.844757020473 -0.115204930305 +v -0.535224437714 0.848018705845 -0.110409140587 +v -0.527960300446 0.836800575256 -0.101769506931 +v -0.532390594482 0.842326819897 -0.102183938026 +v -0.532948493958 0.849078893661 -0.105126917362 +v -0.501554489136 0.843218922615 -0.099216759205 +v -0.507042169571 0.842735946178 -0.091056108475 +v -0.515851497650 0.862206101418 -0.097064733505 +v -0.508196115494 0.859079062939 -0.104793012142 +v -0.501304626465 0.850616335869 -0.106691837311 +v -0.514235734940 0.845977485180 -0.086078166962 +v -0.518186092377 0.844501137733 -0.088461101055 +v -0.522804021835 0.849747896194 -0.088824689388 +v -0.519546508789 0.852388918400 -0.085314571857 +v -0.523418426514 0.855972528458 -0.091820836067 +v -0.520101308823 0.859155178070 -0.089708983898 +v -0.511596202850 0.849000573158 -0.083929896355 +v -0.515213012695 0.854938268661 -0.083392798901 +v -0.516395092010 0.860537409782 -0.087069749832 +v -0.532750368118 0.836167395115 -0.118552982807 +v -0.497567176819 0.865602970123 -0.074603199959 +v -0.496635437012 0.860588312149 -0.074069917202 +v -0.499092817307 0.859558403492 -0.075726687908 +v -0.501167774200 0.863645672798 -0.076683282852 +v -0.499398469925 0.869491815567 -0.076963126659 +v -0.502336740494 0.868161380291 -0.077675879002 +v -0.493256807327 0.858881592751 -0.076175630093 +v -0.492352008820 0.866495013237 -0.076975762844 +v -0.499328136444 0.856431543827 -0.076817274094 +v -0.503676176071 0.861703813076 -0.079042315483 +v -0.503543376923 0.868796229362 -0.080610632896 +v -0.497124195099 0.871228098869 -0.080048918724 +v -0.508443832397 0.800419390202 -0.136265814304 +v -0.511143684387 0.804700791836 -0.140411615372 +v -0.514699935913 0.806024491787 -0.133704960346 +v -0.511139869690 0.801549851894 -0.131215751171 +v -0.524834394455 0.834584176540 -0.149969577789 +v -0.528397083282 0.835094690323 -0.144962668419 +v -0.514429330826 0.810142576694 -0.141759753227 +v -0.517162799835 0.811100900173 -0.136384963989 +v -0.496298074722 0.786881387234 -0.115870833397 +v -0.486750125885 0.785451531410 -0.128098964691 +v -0.527594327927 0.869485437870 -0.141907572746 +v -0.518058300018 0.869149982929 -0.149671852589 +v -0.510817766190 0.799105167389 -0.121699333191 +v -0.512484073639 0.806650936604 -0.113031685352 +v -0.502429008484 0.813118338585 -0.111305117607 +v -0.508829832077 0.828153192997 -0.116886317730 +v -0.518706083298 0.822669982910 -0.117713034153 +v -0.501774787903 0.822176635265 -0.114453732967 +v -0.519619703293 0.812057256699 -0.116438627243 +v -0.517436027527 0.808292090893 -0.126053214073 +v -0.483708858490 0.853024780750 -0.088355422020 +v -0.481112241745 0.850262880325 -0.093426942825 +v -0.475982189178 0.844028592110 -0.091422438622 +v -0.477612257004 0.847269892693 -0.084727108479 +v -0.475871086121 0.837056696415 -0.086321115494 +v -0.478466987610 0.838783323765 -0.080502748489 +v -0.504234790802 0.817612648010 -0.093765556812 +v -0.500945329666 0.822281956673 -0.087224364281 +v -0.490716695786 0.824029862881 -0.093403875828 +v -0.494282245636 0.819924414158 -0.099487662315 +v -0.496157646179 0.841752350330 -0.100961446762 +v -0.505415439606 0.841348707676 -0.095487833023 +v -0.508846998215 0.836988449097 -0.101620197296 +v -0.499357938766 0.838020980358 -0.106621682644 +v -0.492764949799 0.830117106438 -0.105411946774 +v -0.489102363586 0.833834648132 -0.099696338177 +v -0.508481979370 0.830541670322 -0.089690744877 +v -0.510588169098 0.827774941921 -0.093720853329 +v -0.492753744125 0.831151664257 -0.079553246498 +v -0.486364841461 0.835210800171 -0.078461050987 +v -0.479637861252 0.832388997078 -0.086949884892 +v -0.484333038330 0.829082310200 -0.088134169579 +v -0.485946178436 0.848959863186 -0.095764815807 +v -0.492048025131 0.851611673832 -0.087720692158 +v -0.497788429260 0.848133265972 -0.089569866657 +v -0.490402221680 0.846298635006 -0.097313344479 +v -0.483847379684 0.837090373039 -0.096990287304 +v -0.479485511780 0.840040266514 -0.095492541790 +v -0.497706413269 0.841334342957 -0.080382227898 +v -0.493602514267 0.843913137913 -0.079816043377 +v -0.498492002487 0.817435145378 -0.105219185352 +v -0.501165628433 0.814163446426 -0.109083890915 +v -0.511910438538 0.809615671635 -0.104608774185 +v -0.505473136902 0.811411023140 -0.099508881569 +v -0.510790824890 0.835031032562 -0.109548807144 +v -0.516519069672 0.828535556793 -0.111123204231 +v -0.506266832352 0.830387651920 -0.115914404392 +v -0.502544403076 0.833584547043 -0.112453937531 +v -0.499927043915 0.823450028896 -0.114233195782 +v -0.497344493866 0.826164782047 -0.110643565655 +v -0.513412475586 0.815074205399 -0.096650004387 +v -0.516290664673 0.813745021820 -0.099655687809 +v -0.519789934158 0.819998562336 -0.101308584213 +v -0.517743349075 0.822623610497 -0.098065078259 +v -0.519121646881 0.827042996883 -0.104812145233 +v -0.516560077667 0.830451726913 -0.103179037571 +v -0.511471986771 0.818441748619 -0.094288408756 +v -0.514646053314 0.825179815292 -0.095527946949 +v -0.514303207397 0.831783711910 -0.099781036377 +v -0.487943172455 0.827379703522 -0.090247273445 +v -0.495469808578 0.824954450130 -0.082411110401 +v -0.500364780426 0.846157968044 -0.094868063927 +v -0.493069171906 0.843513786793 -0.098693013191 +v -0.487038612366 0.835436344147 -0.097534894943 +v -0.502112865448 0.828593492508 -0.079975128174 +v -0.504857540131 0.826588690281 -0.083056867123 +v -0.508306980133 0.833120644093 -0.085304498672 +v -0.506083965302 0.836166918278 -0.082021951675 +v -0.507864236832 0.840063154697 -0.089241921902 +v -0.505406856537 0.843329131603 -0.087880432606 +v -0.499519109726 0.832336187363 -0.078415036201 +v -0.502271652222 0.839114248753 -0.080325365067 +v -0.502671241760 0.844747602940 -0.085275530815 +v -0.520011425018 0.816879510880 -0.107176601887 +v -0.485849618912 0.848793625832 -0.077213406563 +v -0.484879255295 0.844172120094 -0.075477480888 +v -0.486962318420 0.843352615833 -0.076518177986 +v -0.488926410675 0.847343027592 -0.078180730343 +v -0.487652778625 0.852373063564 -0.079998552799 +v -0.490156412125 0.851481437683 -0.079959809780 +v -0.482032775879 0.841814160347 -0.076701343060 +v -0.481650590897 0.848758876324 -0.079696655273 +v -0.487200260162 0.840355038643 -0.076348960400 +v -0.491241216660 0.845820188522 -0.079050183296 +v -0.491406917572 0.852079093456 -0.082417190075 +v -0.486078977585 0.853447556496 -0.083156108856 +v -0.498555898666 0.789247334003 -0.110209047794 +v -0.490535259247 0.795914649963 -0.107083380222 +v -0.499561071396 0.808594465256 -0.109262883663 +v -0.509321451187 0.801345944405 -0.113677084446 +v -0.491660594940 0.804835021496 -0.106762707233 +v -0.506342411041 0.790087342262 -0.117207169533 +v -0.507618427277 0.792013823986 -0.113375782967 +v -0.489049196243 0.826286792755 -0.079535543919 +v -0.485815525055 0.826620817184 -0.084511041641 +v -0.480561256409 0.821815013885 -0.084118247032 +v -0.483257293701 0.822232902050 -0.077751755714 +v -0.479671239853 0.815304994583 -0.082047581673 +v -0.482170104980 0.815054416656 -0.077047288418 +v -0.498437404633 0.795974731445 -0.094222247601 +v -0.495993852615 0.799155712128 -0.089099407196 +v -0.488581657410 0.803750157356 -0.092741906643 +v -0.489798069000 0.801814615726 -0.097452342510 +v -0.499174118042 0.816335558891 -0.095021665096 +v -0.505331993103 0.810285627842 -0.091094553471 +v -0.508020877838 0.806802392006 -0.096497237682 +v -0.500244140625 0.813882708549 -0.098373711109 +v -0.491198301315 0.810434281826 -0.099174976349 +v -0.490566730499 0.812255382538 -0.095983982086 +v -0.504388093948 0.801935672760 -0.089532196522 +v -0.506303787231 0.799559772015 -0.093178451061 +v -0.490227460861 0.806715846062 -0.080041587353 +v -0.486819744110 0.810494184494 -0.077443838120 +v -0.481586694717 0.811227262020 -0.084623336792 +v -0.484838962555 0.807765960693 -0.087508916855 +v -0.489450216293 0.825551927090 -0.087533473969 +v -0.494817018509 0.822417318821 -0.080430269241 +v -0.498338937759 0.818705558777 -0.082634210587 +v -0.493239879608 0.822486460209 -0.090337991714 +v -0.485663890839 0.816083729267 -0.092872619629 +v -0.482256412506 0.819070279598 -0.089587986469 +v -0.495429277420 0.813326537609 -0.077522575855 +v -0.493692398071 0.815349698067 -0.076042175293 +v -0.490639209747 0.799663007259 -0.100690245628 +v -0.491382598877 0.797495901585 -0.103254914284 +v -0.500654220581 0.789737641811 -0.104475378990 +v -0.497671604156 0.792602598667 -0.098903775215 +v -0.509530782700 0.806396782398 -0.102260172367 +v -0.511167049408 0.801594376564 -0.108417809010 +v -0.500758171082 0.809814274311 -0.105136036873 +v -0.500140190125 0.811406195164 -0.101884782314 +v -0.491745948792 0.806727945805 -0.103401362896 +v -0.492305278778 0.808004617691 -0.101605892181 +v -0.505864143372 0.790762722492 -0.098364591599 +v -0.506949424744 0.789222061634 -0.102397680283 +v -0.511898517609 0.792011439800 -0.104481697083 +v -0.511413574219 0.793921768665 -0.099860727787 +v -0.513942241669 0.797082841396 -0.105452656746 +v -0.513425111771 0.799474656582 -0.101383924484 +v -0.505221366882 0.793554723263 -0.095338940620 +v -0.509412050247 0.796497941017 -0.095882833004 +v -0.511485099792 0.800802588463 -0.097495257854 +v -0.487203598022 0.805865585804 -0.089809119701 +v -0.491508483887 0.801817178726 -0.084747970104 +v -0.501916170120 0.816967248917 -0.087054252625 +v -0.496026515961 0.819197714329 -0.092714369297 +v -0.489030599594 0.813616871834 -0.094238102436 +v -0.496573925018 0.803260147572 -0.081626772881 +v -0.499391555786 0.800740122795 -0.084920167923 +v -0.503435134888 0.803725183010 -0.085128188133 +v -0.500617980957 0.807261526585 -0.080836713314 +v -0.505204677582 0.808161199093 -0.085975766182 +v -0.502797126770 0.812113285065 -0.082701086998 +v -0.494894981384 0.806727290154 -0.079006910324 +v -0.497905254364 0.810785889626 -0.078416407108 +v -0.500154018402 0.814402937889 -0.080199837685 +v -0.509780406952 0.792054593563 -0.109013736248 +v -0.489554882050 0.819736123085 -0.072930335999 +v -0.487940311432 0.816487431526 -0.072609961033 +v -0.489381313324 0.815415918827 -0.073478043079 +v -0.491574764252 0.818117618561 -0.074059128761 +v -0.491600751877 0.822124600410 -0.074348628521 +v -0.493067026138 0.820745110512 -0.075044274330 +v -0.485497951508 0.815698802471 -0.073549985886 +v -0.486885070801 0.821202099323 -0.073756098747 +v -0.488751888275 0.812952458858 -0.073907077312 +v -0.492937803268 0.816626131535 -0.074767291546 +v -0.494431257248 0.821339190006 -0.076288044453 +v -0.491227149963 0.824168622494 -0.075623750687 +v -0.527001857758 0.853478670120 -0.125246942043 +v -0.513896465302 0.857641816139 -0.126969873905 +v -0.517309665680 0.873407602310 -0.133468151093 +v -0.529544591904 0.871562659740 -0.133002638817 +v -0.510344266891 0.866749882698 -0.130797505379 +v -0.535715341568 0.858517348766 -0.139212429523 +v -0.535772323608 0.861216902733 -0.129334509373 +v -0.490445613861 0.890650033951 -0.100051939487 +v -0.488363265991 0.888513207436 -0.107455074787 +v -0.485354423523 0.880579829216 -0.108673691750 +v -0.485455274582 0.882985472679 -0.099698960781 +v -0.487403631210 0.872754931450 -0.105823457241 +v -0.488933801651 0.873876035213 -0.098851382732 +v -0.518436908722 0.863012790680 -0.108661413193 +v -0.512920618057 0.866162419319 -0.104191660881 +v -0.507155895233 0.865417718887 -0.113856613636 +v -0.510566711426 0.863865315914 -0.116527736187 +v -0.512574672699 0.881888926029 -0.117601990700 +v -0.519688844681 0.883390605450 -0.107507109642 +v -0.524630069733 0.880152225494 -0.113091707230 +v -0.515925884247 0.879324555397 -0.120808780193 +v -0.509762763977 0.871237039566 -0.122120618820 +v -0.506671428680 0.872891902924 -0.120059609413 +v -0.521101236343 0.874487102032 -0.101826131344 +v -0.524887323380 0.872092723846 -0.105790376663 +v -0.502747774124 0.870004713535 -0.100400567055 +v -0.497266054153 0.871715247631 -0.097897529602 +v -0.492583751678 0.869514763355 -0.108082056046 +v -0.498463630676 0.867662549019 -0.110751748085 +v -0.494890928268 0.888140499592 -0.110826432705 +v -0.499839544296 0.889504313469 -0.100029766560 +v -0.507523536682 0.887580394745 -0.102457940578 +v -0.502919435501 0.885920166969 -0.114045023918 +v -0.498455524445 0.875417351723 -0.118292808533 +v -0.491332054138 0.877597153187 -0.115070879459 +v -0.506424903870 0.879839777946 -0.096214175224 +v -0.503129482269 0.880639374256 -0.095109224319 +v -0.512672424316 0.862300992012 -0.120484471321 +v -0.513113737106 0.860535264015 -0.123115837574 +v -0.525039196014 0.856878221035 -0.118569016457 +v -0.519091129303 0.858681201935 -0.114477872849 +v -0.526840448380 0.879119575024 -0.120443284512 +v -0.530992031097 0.874435842037 -0.125046432018 +v -0.518256187439 0.875537931919 -0.128518223763 +v -0.517742633820 0.876998245716 -0.124922633171 +v -0.511662721634 0.868683815002 -0.127072453499 +v -0.511864900589 0.869614481926 -0.124864697456 +v -0.530849933624 0.860190629959 -0.111503541470 +v -0.533360242844 0.859168589115 -0.115616202354 +v -0.536691904068 0.865351617336 -0.116629421711 +v -0.534475564957 0.867561042309 -0.111754179001 +v -0.535916090012 0.871988415718 -0.118930697441 +v -0.533593416214 0.874997556210 -0.115182757378 +v -0.527114391327 0.863506555557 -0.108078002930 +v -0.529962301254 0.869924604893 -0.107841134071 +v -0.530357837677 0.875990808010 -0.111109972000 +v -0.503102540970 0.866510391235 -0.113218367100 +v -0.505452632904 0.866206705570 -0.104708135128 +v -0.513443470001 0.887060940266 -0.106990933418 +v -0.508520841599 0.883631944656 -0.116348564625 +v -0.503959178925 0.873957514763 -0.119046747684 +v -0.510499000549 0.870763242245 -0.097471833229 +v -0.514724016190 0.870366811752 -0.098390698433 +v -0.518878698349 0.876383900642 -0.097725093365 +v -0.514991760254 0.878054201603 -0.095596671104 +v -0.519540309906 0.882226943970 -0.100633978844 +v -0.515974521637 0.884334146976 -0.099541544914 +v -0.507736682892 0.872971475124 -0.096328496933 +v -0.510526895523 0.879325091839 -0.095016777515 +v -0.511901855469 0.884887933731 -0.097839653492 +v -0.535580873489 0.863515138626 -0.121753752232 +v -0.494115114212 0.883353888988 -0.090229034424 +v -0.494159221649 0.878465473652 -0.090765476227 +v -0.496655464172 0.878225266933 -0.091974556446 +v -0.497776508331 0.882385611534 -0.092055082321 +v -0.494970798492 0.887757301331 -0.091351509094 +v -0.497639894485 0.886616647243 -0.092495083809 +v -0.491739749908 0.876264393330 -0.093018054962 +v -0.489335536957 0.883648872375 -0.093107581139 +v -0.497393131256 0.875543773174 -0.093272686005 +v -0.500410795212 0.881527364254 -0.093731045723 +v -0.499048471451 0.888204634190 -0.094248950481 +v -0.492660522461 0.889721930027 -0.094091176987 +v -0.521483898163 0.842776119709 -0.155532121658 +v -0.518549919128 0.858851313591 -0.158480763435 +v -0.513115406036 0.815885305405 -0.150368809700 +v -0.514750003815 0.828490138054 -0.158624708652 +v -0.504255294800 0.803942263126 -0.149980843067 +v -0.471243858337 0.786971271038 -0.142925024033 +v -0.466823101044 0.792440652847 -0.134708881378 +v -0.454370021820 0.826037108898 -0.138828337193 +v -0.495823860168 0.816522121429 -0.171279489994 +v -0.490122318268 0.804616093636 -0.166800975800 +v -0.501922845840 0.864825129509 -0.167882800102 +v -0.488729238510 0.869901716709 -0.140693187714 +v -0.494021654129 0.873752593994 -0.152330935001 +v -0.487847566605 0.878740549088 -0.152684986591 +v -0.480398416519 0.872110724449 -0.138898909092 +v -0.463868141174 0.866027951241 -0.132292509079 +v -0.478146791458 0.862194061279 -0.133633494377 +v -0.463702440262 0.875368595123 -0.127856612206 +v -0.453201293945 0.882918894291 -0.131946742535 +v -0.446355819702 0.873552322388 -0.141134619713 +v -0.483682394028 0.883540391922 -0.145150899887 +v -0.476632833481 0.876343607903 -0.133325040340 +v -0.484167098999 0.901457369328 -0.093008697033 +v -0.485260963440 0.893595635891 -0.095105886459 +v -0.483138322830 0.889306485653 -0.131258606911 +v -0.477747440338 0.882396876812 -0.121179759502 +v -0.476070404053 0.880022823811 -0.127019524574 +v -0.481888771057 0.887317419052 -0.138192296028 +v -0.468255043030 0.884616315365 -0.116226017475 +v -0.464697837830 0.881538629532 -0.122920870781 +v -0.479435443878 0.900566041470 -0.136166751385 +v -0.477606296539 0.898043036461 -0.145556926727 +v -0.468045234680 0.902096092701 -0.133089959621 +v -0.465980529785 0.900569677353 -0.139554977417 +v -0.462095737457 0.895440816879 -0.121656596661 +v -0.457749605179 0.892096400261 -0.130192101002 +v -0.470758438110 0.897547125816 -0.155327796936 +v -0.466237306595 0.894115865231 -0.159044146538 +v -0.457171916962 0.892076790333 -0.153369426727 +v -0.461186885834 0.897225439548 -0.149793088436 +v -0.450381755829 0.887220442295 -0.144794583321 +v -0.453635215759 0.891810834408 -0.140942871571 +v -0.480525970459 0.891566216946 -0.156198561192 +v -0.471389532089 0.900366127491 -0.149930894375 +v -0.463864564896 0.900258302689 -0.145290255547 +v -0.457410335541 0.896189451218 -0.139161109924 +v -0.469795703888 0.888008773327 -0.165396869183 +v -0.452988624573 0.883881807327 -0.157703280449 +v -0.491194486618 0.891927838326 -0.114754319191 +v -0.486534357071 0.885707378387 -0.106756806374 +v -0.479014396667 0.889679074287 -0.100693225861 +v -0.489616870880 0.903515696526 -0.117441117764 +v -0.487568616867 0.908877730370 -0.099188625813 +v -0.490461826324 0.908248662949 -0.103589415550 +v -0.486899375916 0.906276345253 -0.106632411480 +v -0.481706142426 0.906772732735 -0.103209018707 +v -0.484368562698 0.908297657967 -0.096467256546 +v -0.480246782303 0.906286239624 -0.099046111107 +v -0.472922801971 0.901211500168 -0.101609766483 +v -0.481368541718 0.883780658245 -0.114653468132 +v -0.486560106277 0.890575349331 -0.123603880405 +v -0.473132371902 0.886498153210 -0.109143614769 +v -0.485536098480 0.901406943798 -0.128164887428 +v -0.480238437653 0.907655954361 -0.126654922962 +v -0.476631164551 0.906661093235 -0.131565809250 +v -0.469987869263 0.906214416027 -0.128223299980 +v -0.473164319992 0.908138692379 -0.122179150581 +v -0.465127468109 0.902755975723 -0.122632205486 +v -0.467630147934 0.903878688812 -0.116376280785 +v -0.467125654221 0.895816802979 -0.111212134361 +v -0.482595682144 0.906823217869 -0.120295464993 +v -0.477108955383 0.906865596771 -0.115525126457 +v -0.472041606903 0.904061913490 -0.110747873783 +v -0.477966785431 0.905460000038 -0.110133111477 +v -0.493883132935 0.907011985779 -0.104439914227 +v -0.491958379745 0.907425343990 -0.096913754940 +v -0.489140272141 0.905874848366 -0.111298918724 +v -0.479014158249 0.906400084496 -0.107349276543 +v -0.476996898651 0.905042469501 -0.099129199982 +v -0.484606742859 0.906890451908 -0.093938052654 +v -0.491485834122 0.862887859344 -0.133998870850 +v -0.478189468384 0.851019322872 -0.133088052273 +v -0.436126470566 0.836560726166 -0.156523883343 +v -0.442461729050 0.835687577724 -0.147658109665 +v -0.441426515579 0.845188915730 -0.148403167725 +v -0.437577724457 0.854609191418 -0.159161508083 +v -0.454926490784 0.834215760231 -0.140588104725 +v -0.462005615234 0.792235910892 -0.166105270386 +v -0.456657409668 0.791631460190 -0.155758082867 +v -0.483422994614 0.867121934891 -0.181242167950 +v -0.468945980072 0.855017066002 -0.193509101868 +v -0.462913751602 0.870561540127 -0.183496356010 +v -0.491529464722 0.874752402306 -0.165132880211 +v -0.487841367722 0.878770470619 -0.162872314453 +v -0.468900203705 0.836523592472 -0.196922063828 +v -0.479998111725 0.818049311638 -0.186679184437 +v -0.499879121780 0.870677828789 -0.139983534813 +v -0.504315376282 0.871536970139 -0.151580274105 +v -0.454349756241 0.840840578079 -0.139953255653 +v -0.480731725693 0.877718329430 -0.174314856529 +v -0.464861869812 0.879262804985 -0.174113869667 +v -0.446362018585 0.868979811668 -0.170653223991 +v -0.449486732483 0.874917387962 -0.165948867798 +v -0.440111875534 0.863788783550 -0.154974460602 +v -0.441115617752 0.851662218571 -0.146024465561 +v -0.454034090042 0.845933496952 -0.138140499592 +v -0.456007719040 0.854448795319 -0.133829414845 +v -0.469702482224 0.854526937008 -0.132327675819 +v -0.444778442383 0.858243584633 -0.139310777187 +v -0.481812000275 0.882776081562 -0.167174339294 +v -0.484746932983 0.884817302227 -0.160003304482 +v -0.442131519318 0.811856746674 -0.148359179497 +v -0.436752319336 0.819676995277 -0.155522286892 +v -0.452622652054 0.797102570534 -0.146845281124 +v -0.443253278732 0.825838088989 -0.145939826965 +v -0.444576740265 0.818954288960 -0.143559813499 +v -0.433326005936 0.807289421558 -0.173588871956 +v -0.441542625427 0.803750753403 -0.187457442284 +v -0.430660247803 0.819438576698 -0.164661586285 +v -0.430188417435 0.836086511612 -0.162424981594 +v -0.432472229004 0.853630959988 -0.163688778877 +v -0.439163208008 0.866289258003 -0.172386646271 +v -0.448523044586 0.868499755859 -0.185838401318 +v -0.454426765442 0.857727229595 -0.197017431259 +v -0.454931259155 0.839325785637 -0.202164053917 +v -0.465736627579 0.819396853447 -0.194947898388 +v -0.450971364975 0.817552566528 -0.198323130608 +v -0.456123352051 0.800768375397 -0.183851480484 +v -0.468741416931 0.797707617283 -0.175054907799 +v -0.425196409225 0.807017326355 -0.182153224945 +v -0.429808616638 0.808018207550 -0.197672486305 +v -0.423538684845 0.817356407642 -0.170044660568 +v -0.423536777496 0.833735704422 -0.165797650814 +v -0.425173997879 0.851301014423 -0.165531635284 +v -0.430070877075 0.863844513893 -0.173078656197 +v -0.436095714569 0.867850482464 -0.187229573727 +v -0.440057992935 0.861827850342 -0.201652050018 +v -0.439754009247 0.844789445400 -0.210174918175 +v -0.435653448105 0.823165953159 -0.207971274853 +v -0.419240474701 0.811311781406 -0.205702304840 +v -0.414561510086 0.807009160519 -0.189636647701 +v -0.403192281723 0.809433162212 -0.199932932854 +v -0.409330129623 0.817718327045 -0.216658353806 +v -0.413339853287 0.815283596516 -0.174596428871 +v -0.399246454239 0.813498079777 -0.181282222271 +v -0.413203001022 0.829875349998 -0.168070018291 +v -0.397543668747 0.824719786644 -0.171226143837 +v -0.395318984985 0.834834337234 -0.168890595436 +v -0.408400058746 0.846953988075 -0.167888164520 +v -0.413450241089 0.863622665405 -0.173395872116 +v -0.419510841370 0.872239351273 -0.188069701195 +v -0.424756288528 0.871203422546 -0.206108510494 +v -0.424194335938 0.854732930660 -0.219132661819 +v -0.414286136627 0.851325511932 -0.227738976479 +v -0.424114227295 0.828399658203 -0.215525388718 +v -0.413206815720 0.834980130196 -0.225028336048 +v -0.474735736847 0.806489527225 -0.181779563427 +v -0.461838483810 0.807741761208 -0.190207779408 +v -0.450213432312 0.803499877453 -0.189132690430 +v -0.453882694244 0.808152139187 -0.192983090878 +v -0.063398599625 0.425415545702 -0.004801809788 +v -0.057441711426 0.421231210232 0.011059165001 +v -0.042950868607 0.417842894793 0.021519958973 +v 0.144121408463 0.511780261993 0.077085554600 +v 0.108297348022 0.528908789158 0.076607823372 +v 0.103316783905 0.511069953442 0.013130068779 +v 0.120876550674 0.499709635973 0.015783727169 +v 0.143322706223 0.510246276855 0.023608624935 +v 0.161252737045 0.523530781269 0.064749538898 +v 0.152065515518 0.501725971699 -0.009824156761 +v 0.140231609344 0.498346298933 -0.030532300472 +v 0.192918300629 0.507425546646 -0.030843675137 +v 0.185611486435 0.508959054947 -0.011636078358 +v 0.187336921692 0.531630814075 -0.041304111481 +v 0.124450206757 0.523272991180 -0.047710359097 +v 0.227248430252 0.552403509617 -0.004147112370 +v 0.228659629822 0.532396197319 -0.002932310104 +v 0.227637529373 0.592922449112 0.034270524979 +v 0.233801364899 0.565752506256 0.035560011864 +v 0.223552703857 0.587897717953 -0.008055388927 +v 0.221391916275 0.630149424076 0.032777488232 +v 0.188503026962 0.624325811863 0.092208683491 +v 0.197622060776 0.591138243675 0.090726375580 +v 0.214549303055 0.686934411526 0.045682489872 +v 0.187195301056 0.673267960548 0.099526941776 +v 0.216737031937 0.692575335503 -0.008495330811 +v 0.199777126312 0.701083362103 -0.008754312992 +v 0.194094419479 0.686676740646 0.034240126610 +v 0.220711708069 0.636359512806 -0.020351350307 +v 0.182755708694 0.725424706936 -0.089372277260 +v 0.179335832596 0.729352295399 -0.071519851685 +v 0.187209367752 0.650559663773 -0.072877883911 +v 0.166259288788 0.675132751465 0.078442573547 +v 0.195732593536 0.668351173401 0.035658538342 +v 0.165970325470 0.662057161331 0.079006195068 +v 0.184274196625 0.697052001953 -0.025637030602 +v 0.136685848236 0.621061325073 0.124828457832 +v 0.146819353104 0.581296682358 0.115078270435 +v 0.209793090820 0.565983176231 0.086855173111 +v 0.165661096573 0.548517227173 0.104174733162 +v 0.134027719498 0.671311855316 0.129685342312 +v 0.078870058060 0.624179244041 0.127473473549 +v 0.088960170746 0.573084473610 0.105961620808 +v 0.077410221100 0.682400047779 0.141914546490 +v 0.184307813644 0.588923692703 -0.058013796806 +v 0.129453897476 0.595893144608 -0.086390793324 +v 0.133975744247 0.663929998875 -0.106234252453 +v 0.236451148987 0.552949547768 0.037623882294 +v 0.224511861801 0.541902184486 0.036363959312 +v 0.211948394775 0.525437772274 0.006383121014 +v 0.214318037033 0.545253038406 0.069983601570 +v 0.212549924850 0.552964806557 0.068517923355 +v 0.224463939667 0.549749970436 0.033728003502 +v 0.218957901001 0.557131946087 0.083203673363 +v 0.187869310379 0.532874941826 0.092133939266 +v 0.187714338303 0.534057557583 0.080063939095 +v 0.181240797043 0.545281291008 0.081068098545 +v 0.146420955658 0.531102359295 0.067861676216 +v 0.212937355042 0.534900724888 0.000919044018 +v 0.184135675430 0.516894340515 -0.018340229988 +v 0.071259021759 0.544855475426 -0.057795166969 +v 0.062549352646 0.523616433144 0.002657234669 +v 0.072495937347 0.605195105076 -0.099032998085 +v 0.012754201889 0.670661449432 -0.129763662815 +v 0.074255228043 0.671743631363 -0.122924923897 +v 0.016004562378 0.604284882545 -0.108093738556 +v -0.047175407410 0.665716767311 -0.120963096619 +v -0.047187089920 0.735366821289 -0.127462327480 +v 0.014084577560 0.746303260326 -0.145008087158 +v -0.093496322632 0.661609470844 -0.084233760834 +v -0.096379756927 0.725130677223 -0.084452211857 +v -0.035370826721 0.739451408386 -0.115991532803 +v 0.016326665878 0.748082160950 -0.129412829876 +v -0.076249361038 0.729390442371 -0.078382790089 +v -0.043362140656 0.605586290359 -0.104780077934 +v -0.089107990265 0.608498692513 -0.073513865471 +v -0.114396095276 0.659402668476 -0.028737843037 +v -0.114691495895 0.720096588135 -0.025828123093 +v -0.112749338150 0.613461971283 -0.024391472340 +v 0.026057243347 0.539770305157 -0.068712770939 +v -0.036364793777 0.558640837669 -0.091128528118 +v 0.081735372543 0.748860776424 -0.142071723938 +v 0.138632535934 0.742601990700 -0.123913228512 +v 0.074531555176 0.752696514130 -0.124717712402 +v 0.130490541458 0.744501113892 -0.108744025230 +v 0.031629323959 0.521139383316 -0.005045592785 +v 0.039030313492 0.551695644855 0.056075632572 +v -0.001458644867 0.553142666817 0.050433158875 +v 0.022727251053 0.514308512211 -0.007078170776 +v 0.018694400787 0.521275639534 -0.064219474792 +v -0.013375759125 0.545891344547 0.025897085667 +v 0.010625362396 0.528762698174 -0.008753895760 +v -0.013785123825 0.537784159184 0.044802665710 +v -0.003431797028 0.556365251541 0.031631588936 +v 0.021438360214 0.537024855614 -0.007674217224 +v -0.044837236404 0.555213034153 0.041083216667 +v -0.037632226944 0.567453145981 0.046529829502 +v -0.051511764526 0.550408124924 0.056568264961 +v -0.049501657486 0.569334208965 0.059367895126 +v -0.012590885162 0.593995332718 0.081816494465 +v -0.056488513947 0.606606721878 0.067150175571 +v 0.028929233551 0.585341632366 0.093791067600 +v 0.008466243744 0.527554392815 -0.046013593674 +v 0.015324592590 0.539409756660 -0.046251296997 +v -0.025128364563 0.548998892307 -0.059863686562 +v -0.028495788574 0.536334693432 -0.059524655342 +v -0.034542560577 0.529292702675 -0.083323836327 +v 0.145991802216 0.508340239525 -0.014416158199 +v 0.131390333176 0.516479372978 0.021855235100 +v 0.026699304581 0.634563446045 0.117274522781 +v -0.020232677460 0.642315804958 0.100721597672 +v -0.026278018951 0.702590823174 0.111697435379 +v -0.068937778473 0.706630170345 0.078983545303 +v -0.064911603928 0.651495337486 0.071269571781 +v -0.015012741089 0.704616785049 0.095527708530 +v -0.054348468781 0.709064245224 0.065617680550 +v 0.026480436325 0.697825789452 0.111364364624 +v 0.025828838348 0.691604137421 0.109849214554 +v -0.014955997467 0.698180437088 0.094332814217 +v 0.071362495422 0.688030838966 0.115027904510 +v 0.069956779480 0.677348077297 0.113705933094 +v 0.121142864227 0.674957156181 0.104752779007 +v 0.119457006454 0.664903819561 0.103474259377 +v 0.021538257599 0.694689214230 0.131033778191 +v -0.053185701370 0.703009426594 0.064263105392 +v -0.084846496582 0.713242530823 0.025584518909 +v -0.102933645248 0.712332844734 0.035015225410 +v -0.095738649368 0.717043399811 -0.024513781071 +v -0.100670337677 0.658007621765 0.027561366558 +v -0.096192121506 0.614809751511 0.028727471828 +v -0.093750953674 0.575753808022 0.032837092876 +v -0.107775926590 0.575954735279 -0.015404582024 +v -0.076748132706 0.721031785011 -0.079203486443 +v -0.095304489136 0.708831727505 -0.024215877056 +v -0.035797357559 0.727729797363 -0.117839038372 +v 0.016345024109 0.738378584385 -0.135166823864 +v -0.084352016449 0.707949042320 0.025263905525 +v -0.074731111526 0.537435054779 -0.053000748158 +v -0.060385465622 0.543911695480 -0.041588306427 +v -0.085829257965 0.563987195492 -0.064947962761 +v -0.100173950195 0.556139528751 -0.010330975056 +v -0.076323747635 0.554702341557 -0.007672071457 +v -0.072488784790 0.558982849121 0.027619063854 +v -0.093396186829 0.559440493584 0.031786739826 +v -0.076028823853 0.564334809780 -0.006530702114 +v -0.068377733231 0.567896723747 0.030334770679 +v -0.061259269714 0.555227398872 -0.041971862316 +v 0.073889255524 0.745370209217 -0.123060703278 +v 0.128804206848 0.738630473614 -0.107519149780 +v 0.170720815659 0.713177621365 -0.074004113674 +v 0.014654159546 0.516860008240 -0.008520841599 +v 0.013562679291 0.518869280815 -0.057164371014 +v -0.016606330872 0.536776065826 0.037213981152 +v -0.049576044083 0.547559082508 0.050266206264 +v -0.032561779022 0.526100814342 -0.075417101383 +v -0.081507205963 0.541957616806 -0.059140264988 +v -0.090506315231 0.551226019859 -0.008307635784 +v -0.086373806000 0.554394304752 0.030092954636 +v 0.154227733612 0.513570308685 0.073047876358 +v 0.132213592529 0.500396609306 0.018915951252 +v 0.146581411362 0.496055126190 -0.020876288414 +v 0.191246986389 0.503775417805 -0.022085011005 +v 0.222658157349 0.525225639343 0.000867187977 +v 0.230988979340 0.543813467026 0.037524938583 +v 0.219683170319 0.549111723900 0.076172590256 +v 0.182136535645 0.536433517933 0.100669324398 +v 0.046369791031 0.719563126564 0.135822176933 +v 0.042241811752 0.721289813519 0.120435237885 +v -0.003053903580 0.735716164112 0.113252401352 +v -0.001557350159 0.734151005745 0.128390729427 +v 0.048724651337 0.693842947483 0.145092248917 +v 0.088016271591 0.680101275444 0.143559694290 +v 0.088751792908 0.712511181831 0.134645402431 +v -0.005078792572 0.687308907509 0.133116126060 +v 0.005204916000 0.678244352341 0.114929139614 +v 0.045290470123 0.679847002029 0.130735397339 +v -0.046638011932 0.679906129837 0.107797205448 +v -0.036025047302 0.673013865948 0.093445062637 +v -0.047019481659 0.748887658119 0.117437124252 +v -0.043670654297 0.749698400497 0.105795860291 +v -0.083326578140 0.758892953396 0.081229805946 +v -0.092339754105 0.758642017841 0.089627742767 +v -0.084635972977 0.674705922604 0.074784040451 +v -0.118670225143 0.769500553608 0.044728934765 +v -0.110567569733 0.675210475922 0.032601892948 +v -0.073696851730 0.668749451637 0.062748491764 +v -0.096913099289 0.669786691666 0.024165332317 +v -0.136384248734 0.778806865215 -0.006764948368 +v -0.125165224075 0.685560584068 -0.010455846786 +v -0.128728628159 0.779637575150 -0.004121005535 +v -0.123834848404 0.788750588894 -0.051987946033 +v -0.134121894836 0.787187457085 -0.055941343307 +v -0.112501621246 0.770408868790 0.043770790100 +v -0.125114917755 0.696647584438 -0.048348546028 +v 0.088402271271 0.679888308048 0.132619023323 +v 0.127837419510 0.673484921455 0.119722843170 +v 0.132176876068 0.673645257950 0.122276902199 +v 0.162997484207 0.673051953316 0.104590058327 +v 0.168073177338 0.673548042774 0.111319541931 +v 0.194190502167 0.675714135170 0.075663864613 +v 0.201750755310 0.681370317936 0.081253111362 +v 0.160883426666 0.700167834759 0.107342004776 +v 0.126739978790 0.702453672886 0.123044371605 +v 0.196573019028 0.701241195202 0.081610202789 +v 0.218851804733 0.692234337330 0.023782670498 +v 0.218031644821 0.722697138786 0.022761344910 +v 0.211975812912 0.697270512581 -0.019005358219 +v 0.210978746414 0.684415698051 0.022575974464 +v 0.206652164459 0.696023881435 -0.015635728836 +v 0.217346906662 0.742312967777 -0.024935722351 +v 0.212719678879 0.723642468452 0.022974371910 +v 0.189186811447 0.703710496426 0.071625590324 +v 0.151532173157 0.701240718365 0.096213757992 +v 0.119452953339 0.703918457031 0.109877347946 +v 0.084906578064 0.714441061020 0.121117770672 +v -0.109468936920 0.675620913506 -0.013445198536 +v -0.102214574814 0.688136637211 -0.049785196781 +v -0.112360954285 0.709139764309 -0.096938610077 +v -0.090363025665 0.703007459641 -0.084746301174 +v -0.079424858093 0.723271906376 -0.131462454796 +v -0.063344240189 0.716237366199 -0.108357429504 +v -0.031183481216 0.732107281685 -0.152232766151 +v -0.028877019882 0.723726272583 -0.136132776737 +v 0.020634174347 0.744759976864 -0.156958043575 +v 0.014694929123 0.733487784863 -0.142659604549 +v 0.069174766541 0.743137419224 -0.152602612972 +v 0.061331748962 0.735695242882 -0.140975654125 +v 0.110146522522 0.735085666180 -0.144149661064 +v 0.103978872299 0.731820046902 -0.132717370987 +v 0.077984094620 0.798910439014 -0.141461968422 +v 0.119859457016 0.790866315365 -0.137311816216 +v 0.074426889420 0.802294850349 -0.135301411152 +v 0.116223812103 0.793579339981 -0.130329132080 +v 0.161331653595 0.781449317932 -0.127611219883 +v 0.152729034424 0.728924751282 -0.130435585976 +v 0.157443046570 0.783650875092 -0.121536970139 +v 0.016957759857 0.807849287987 -0.168082594872 +v 0.013961553574 0.810384929180 -0.162219345570 +v 0.142093658447 0.720312654972 -0.115514278412 +v 0.183982133865 0.712360918522 -0.110098004341 +v 0.172728776932 0.703007578850 -0.095244884491 +v 0.204134464264 0.694908976555 -0.070124804974 +v 0.194279670715 0.698028326035 -0.065750300884 +v 0.193339109421 0.770651638508 -0.104809045792 +v 0.212558984756 0.760952532291 -0.071953296661 +v -0.037868022919 0.804407358170 -0.172462224960 +v -0.085999965668 0.798096537590 -0.150223016739 +v -0.079912900925 0.801035761833 -0.145433545113 +v -0.039311408997 0.806997716427 -0.165538191795 +v -0.114581584930 0.791720926762 -0.122836530209 +v -0.107570171356 0.793677270412 -0.103108108044 +v 0.188315153122 0.773532092571 -0.101306200027 +v 0.206870555878 0.763117253780 -0.069325089455 +v 0.211477041245 0.744883477688 -0.024265110493 +v 0.042490959167 0.714094579220 0.143952012062 +v 0.087229490280 0.708064198494 0.141458809376 +v -0.003680706024 0.725511908531 0.134795546532 +v -0.046833276749 0.736211478710 0.117370963097 +v -0.090959787369 0.743731617928 0.091760039330 +v -0.118830442429 0.753062367439 0.045624971390 +v -0.137614011765 0.761805653572 -0.004316985607 +v -0.138007164001 0.771108925343 -0.055927753448 +v 0.164827346802 0.696167469025 0.115181803703 +v 0.129087686539 0.698045313358 0.129442453384 +v 0.202077627182 0.697257161140 0.083701729774 +v 0.223474979401 0.716901838779 0.021489858627 +v 0.219713687897 0.734807431698 -0.024288654327 +v 0.116148948669 0.780359745026 -0.140539228916 +v 0.075758695602 0.788216233253 -0.143896400928 +v 0.158277511597 0.770472466946 -0.130922555923 +v 0.016254663467 0.794478595257 -0.169810354710 +v 0.214664697647 0.750561535358 -0.070789575577 +v 0.193098306656 0.760572731495 -0.107543230057 +v -0.038340330124 0.789423942566 -0.169972777367 +v -0.089158058167 0.786127924919 -0.148080706596 +v -0.117129564285 0.774500608444 -0.117468833923 +v 0.042947053909 0.680678486824 0.141971707344 +v 0.088331699371 0.690217196941 0.148079514503 +v 0.003902912140 0.677657604218 0.129070520401 +v -0.041256189346 0.671179771423 0.103981673717 +v -0.082117557526 0.666609048843 0.067920327187 +v -0.102604150772 0.668240845203 0.030974626541 +v -0.117699861526 0.673860788345 -0.010850131512 +v -0.117666482925 0.687893807888 -0.057794094086 +v 0.130661725998 0.680747628212 0.129106581211 +v 0.167012929916 0.680982887745 0.119741201401 +v 0.203903198242 0.687600016594 0.084002554417 +v 0.223474740982 0.696553647518 0.024260759354 +v 0.218124628067 0.702928543091 -0.021467387676 +v -0.105328559875 0.700765669346 -0.090611577034 +v -0.074398279190 0.714329957962 -0.125499725342 +v -0.027653694153 0.722540020943 -0.144668102264 +v 0.022192239761 0.732428669930 -0.150135040283 +v 0.065891504288 0.733176171780 -0.148831009865 +v 0.109828948975 0.726947844028 -0.140057563782 +v 0.145726919174 0.717888236046 -0.127151072025 +v 0.178150177002 0.702635169029 -0.105906605721 +v 0.208762645721 0.699994683266 -0.072454273701 +v 0.474818944931 0.829751849174 0.080761909485 +v 0.447371721268 0.827144682407 0.082335829735 +v 0.436402082443 0.801355779171 0.076726853848 +v 0.437137126923 0.782028198242 0.062518715858 +v 0.449114084244 0.774479269981 0.043720185757 +v 0.466235399246 0.780543923378 0.026742458344 +v 0.482433199883 0.796503424644 0.020002663136 +v 0.497534036636 0.817176282406 0.030400276184 +v 0.490592956543 0.825681328773 0.062343478203 +v 0.416083812714 0.856479287148 0.063238620758 +v 0.397818565369 0.822540879250 0.058679580688 +v 0.394402980804 0.790257930756 0.037392973900 +v 0.409307241440 0.778394103050 -0.000016272068 +v 0.435056686401 0.793707430363 -0.030144393444 +v 0.461454987526 0.821685552597 -0.037738919258 +v 0.478555798531 0.853732824326 -0.014944911003 +v 0.468921065331 0.879577338696 0.027264356613 +v 0.445375442505 0.880728542805 0.053184807301 +v 0.466699838638 0.886996567249 -0.046786844730 +v 0.444378852844 0.847988784313 -0.076629161835 +v 0.406841993332 0.809575557709 -0.076438903809 +v 0.371905088425 0.787828385830 -0.042897462845 +v 0.357719540596 0.804510772228 0.005992591381 +v 0.362805366516 0.843034982681 0.036714971066 +v 0.391008257866 0.879716992378 0.041662096977 +v 0.425895571709 0.907973527908 0.033029556274 +v 0.459516048431 0.908767938614 0.004759609699 +v 0.474973201752 0.818710982800 0.074997305870 +v 0.461808919907 0.809670209885 0.079118371010 +v 0.456480264664 0.798067808151 0.076258957386 +v 0.455782771111 0.786437451839 0.067734181881 +v 0.461717367172 0.781551599503 0.053859353065 +v 0.471699953079 0.783859133720 0.044202029705 +v 0.482946038246 0.793918967247 0.038748741150 +v 0.489899158478 0.805950462818 0.046118319035 +v 0.486937761307 0.816467463970 0.063097000122 +v 0.441228270531 0.887848794460 -0.051129221916 +v 0.419926643372 0.855345606804 -0.080606341362 +v 0.393717527390 0.828494906425 -0.076067388058 +v 0.370517253876 0.811828851700 -0.047418713570 +v 0.361316323280 0.823268711567 -0.005200862885 +v 0.369323611259 0.850542843342 0.018845379353 +v 0.388053059578 0.882371962070 0.021297752857 +v 0.414115905762 0.906186938286 0.015702068806 +v 0.435689449310 0.907421112061 -0.006201267242 +v 0.457625389099 0.893979549408 -0.053317129612 +v 0.432103991508 0.851549267769 -0.084864497185 +v 0.397927403450 0.816684424877 -0.084416866302 +v 0.365631699562 0.796897709370 -0.048830389977 +v 0.351232051849 0.811093628407 -0.000877141953 +v 0.357836484909 0.846324503422 0.031680703163 +v 0.384871840477 0.884247660637 0.031613469124 +v 0.419532299042 0.913497269154 0.023943066597 +v 0.448849439621 0.918320059776 -0.001152694225 +v 0.468704581261 0.841255605221 0.076112985611 +v 0.455493927002 0.817524373531 0.086187958717 +v 0.447009682655 0.798206448555 0.080420792103 +v 0.444962501526 0.781422913074 0.068031430244 +v 0.455179333687 0.774285674095 0.049756467342 +v 0.471616744995 0.778853714466 0.036065757275 +v 0.486483812332 0.790827751160 0.029048442841 +v 0.496397018433 0.808861613274 0.039405584335 +v 0.487864613533 0.835947692394 0.054146111012 +v 0.153582811356 1.146741271019 -0.023735761642 +v 0.146487712860 1.131359100342 -0.001364409924 +v 0.166741371155 1.124185800552 0.018122673035 +v 0.193145751953 1.149736404419 -0.011541187763 +v 0.155054807663 1.159122467041 -0.049359142780 +v 0.204403400421 1.165102362633 -0.054153501987 +v 0.122463703156 1.154211997986 -0.012223064899 +v 0.122359752655 1.165279030800 -0.031655430794 +v 0.111874103546 1.145521163940 -0.014831602573 +v 0.108873367310 1.130098581314 0.001646161079 +v 0.118844747543 1.140482068062 0.008030056953 +v 0.112039089203 1.157532334328 -0.030208945274 +v 0.117567777634 1.174703359604 -0.051419258118 +v 0.107257843018 1.165954709053 -0.045900940895 +v 0.104554653168 1.179394125938 -0.069682717323 +v 0.096223115921 1.169898509979 -0.061130762100 +v 0.078921318054 1.169709205627 -0.074586033821 +v 0.084147691727 1.179101228714 -0.084845960140 +v 0.060791492462 1.176911592484 -0.095880866051 +v 0.057977199554 1.167713642120 -0.084590315819 +v 0.036164999008 1.174309372902 -0.102829873562 +v 0.034911155701 1.165031433105 -0.090920388699 +v 0.010727643967 1.171227931976 -0.105658352375 +v 0.011106491089 1.162466049194 -0.093655586243 +v 0.043484210968 1.148231267929 -0.125569045544 +v 0.015298843384 1.144926548004 -0.130406677723 +v 0.071163892746 1.151486396790 -0.119160473347 +v 0.099195003510 1.154577970505 -0.109847664833 +v 0.129453897476 1.156361937523 -0.098611533642 +v 0.148039340973 1.161061882973 -0.075409770012 +v 0.194738388062 1.157809615135 -0.093097984791 +v 0.166496038437 1.133596062660 -0.120083212852 +v 0.241148471832 1.147128343582 -0.110760331154 +v 0.205090999603 1.108767747879 -0.138120114803 +v 0.296813964844 1.119970321655 -0.113083600998 +v 0.248097181320 1.079767704010 -0.139568984509 +v 0.314052343369 1.139110684395 -0.062264442444 +v 0.255768775940 1.160152196884 -0.056023120880 +v 0.125734090805 1.143847703934 -0.100883603096 +v 0.157966852188 1.121018052101 -0.115687131882 +v 0.195927619934 1.096690416336 -0.130942702293 +v 0.102578163147 1.110636472702 0.020105242729 +v 0.110338211060 1.120410561562 0.029318034649 +v 0.135500192642 1.112133264542 0.027387619019 +v 0.121419668198 1.085264921188 0.053761780262 +v 0.096231937408 1.096061944962 0.048072874546 +v 0.121106386185 1.072343826294 0.043408513069 +v 0.135016918182 1.098165869713 0.015953302383 +v 0.146015644073 1.118869185448 -0.003721117973 +v 0.161901235580 1.110084056854 0.008137762547 +v 0.196237564087 1.113056898117 0.041670143604 +v 0.231638908386 1.147067785263 0.005591809750 +v 0.187341213226 1.099266767502 0.029134333134 +v 0.101557731628 1.063514590263 0.082820892334 +v 0.102081298828 1.052370190620 0.074180006981 +v 0.079520702362 1.077967882156 0.068052530289 +v 0.091128826141 1.087718725204 0.037324488163 +v 0.076925516129 1.069971561432 0.055388748646 +v 0.073636531830 1.045414447784 0.104310035706 +v 0.060042619705 1.063298940659 0.085158526897 +v 0.060029506683 1.056650996208 0.070179820061 +v 0.076045036316 1.035140991211 0.095563471317 +v 0.043664932251 1.024097084999 0.109484314919 +v 0.049406528473 1.016946673393 0.102544367313 +v -0.092731475830 1.104547619820 -0.051223099232 +v -0.113844156265 1.093252182007 -0.044122219086 +v -0.106844902039 1.081219434738 -0.051757276058 +v -0.089383363724 1.092386722565 -0.054474711418 +v -0.142742395401 1.079518079758 -0.034633517265 +v -0.133426666260 1.067001342773 -0.045482337475 +v -0.184802770615 1.058834671974 -0.039483308792 +v -0.173303604126 1.048474073410 -0.050417959690 +v -0.212892293930 1.028311491013 -0.072805166245 +v -0.225590705872 1.036243677139 -0.063136100769 +v -0.252138376236 1.016947031021 -0.094444274902 +v -0.238336086273 1.010701894760 -0.105198681355 +v -0.261181116104 1.009418725967 -0.139634251595 +v -0.249701499939 1.001395821571 -0.147045373917 +v -0.236275196075 1.050160169601 -0.116216957569 +v -0.220269918442 1.051454544067 -0.180383503437 +v -0.255511283875 1.006905913353 -0.191586971283 +v -0.200874567032 1.088705539703 -0.091722786427 +v -0.183070182800 1.090037822723 -0.163334965706 +v -0.194282293320 1.042732954025 -0.226393222809 +v -0.229079723358 1.004474639893 -0.227474808693 +v -0.159255266190 1.014430284500 -0.241221547127 +v -0.196877479553 1.004197716713 -0.243847310543 +v -0.161328792572 1.084260106087 -0.219420254230 +v -0.119579792023 1.036281943321 -0.230625808239 +v -0.244533061981 0.997296631336 -0.191611886024 +v -0.223453521729 0.995631098747 -0.221788883209 +v -0.153653621674 1.110693693161 -0.078140616417 +v -0.146693229675 1.116624593735 -0.140892207623 +v -0.119409322739 1.117959380150 -0.075315594673 +v -0.110646963120 1.127498865128 -0.118036568165 +v -0.091603517532 1.119367361069 -0.072633266449 +v -0.084799051285 1.131223559380 -0.097159922123 +v -0.115998268127 1.108692765236 -0.190854609013 +v -0.089858293533 1.122802376747 -0.153536438942 +v -0.082515239716 1.073935151100 -0.031460642815 +v -0.089494943619 1.087044239044 -0.020607233047 +v -0.073734283447 1.050684690475 0.000546932220 +v -0.080284357071 1.062893509865 0.010187029839 +v -0.068449974060 1.044618606567 0.047623455524 +v -0.062891244888 1.033905506134 0.039388358593 +v -0.047109127045 1.031812429428 0.080443978310 +v -0.031396150589 1.052964568138 0.067215263844 +v -0.045845985413 1.064046025276 0.042960286140 +v -0.017226934433 1.017256498337 0.097646474838 +v -0.012994289398 1.040772914886 0.082050144672 +v -0.024281263351 1.047124743462 0.053621292114 +v -0.036925554276 1.057082414627 0.032743573189 +v -0.047004699707 1.072139143944 0.009349822998 +v -0.057619094849 1.078983664513 0.016488373280 +v -0.069085836411 1.100236415863 -0.007317364216 +v -0.056204557419 1.092651844025 -0.012012958527 +v -0.059460639954 1.110859036446 -0.031832396984 +v -0.073314666748 1.118509888649 -0.030457615852 +v -0.059396266937 1.125840187073 -0.048513889313 +v -0.072108268738 1.131877303123 -0.050584912300 +v -0.009020328522 1.040055990219 0.067265510559 +v -0.008279085159 1.048065781593 0.086258769035 +v -0.001708984375 1.044293761253 0.063691854477 +v -0.011102437973 1.013419628143 0.107842206955 +v 0.012402534485 1.014568805695 0.111340701580 +v -0.007885932922 1.000435948372 0.096706688404 +v 0.016772985458 0.998014330864 0.098615229130 +v -0.018301010132 1.009325742722 0.089410901070 +v 0.012949943542 1.049798607826 0.088101744652 +v 0.018573284149 1.045927882195 0.061640202999 +v 0.036473512650 1.048622608185 0.071156620979 +v 0.042591094971 1.045850872993 0.077319562435 +v 0.032891273499 1.053035736084 0.094713449478 +v -0.043589353561 1.021625638008 0.071766734123 +v -0.062194108963 1.102410316467 -0.172938823700 +v -0.045767784119 1.134480834007 -0.135547220707 +v -0.039524316788 1.122236609459 -0.136410057545 +v -0.056471109390 1.089962005615 -0.166750788689 +v -0.069718599319 1.135420084000 -0.119947195053 +v -0.057276010513 1.154541730881 -0.085973024368 +v -0.039468765259 1.162768602371 -0.098182201385 +v -0.047900676727 1.148107647896 -0.076298177242 +v -0.032938718796 1.155064463615 -0.086415827274 +v -0.067025423050 1.143415451050 -0.068977236748 +v -0.056419372559 1.138137459755 -0.063298463821 +v -0.015136957169 1.167805433273 -0.104464530945 +v -0.012070894241 1.159346342087 -0.092343151569 +v -0.014311790466 1.140978336334 -0.133057236671 +v -0.011669158936 1.129227042198 -0.125870227814 +v 0.016017198563 1.133123755455 -0.120839774609 +v 0.042919397354 1.136187195778 -0.116020321846 +v 0.069320917130 1.139438748360 -0.110212624073 +v 0.096272230148 1.142657041550 -0.103571355343 +v -0.084033012390 1.068661570549 -0.209112644196 +v -0.079619884491 1.055715084076 -0.200545787811 +v -0.114229202271 1.024448990822 -0.220436096191 +v -0.152589321136 1.005478620529 -0.229532003403 +v -0.190863609314 0.997435450554 -0.232511520386 +v 0.283624172211 1.127811551094 0.019655466080 +v 0.238133430481 1.093801021576 0.054984629154 +v 0.281615972519 1.070061683655 0.051802158356 +v 0.324586987495 1.083217859268 0.015623211861 +v 0.317109346390 1.049089670181 0.037077486515 +v 0.344853520393 1.035368323326 0.004752695560 +v 0.272841930389 1.062416911125 0.039141774178 +v 0.309236288071 1.042762875557 0.023036181927 +v 0.228971004486 1.083329319954 0.041944861412 +v 0.336932301521 1.026821017265 -0.005697131157 +v 0.352009296417 1.016058206558 -0.045218408108 +v 0.363454222679 1.025239586830 -0.041483044624 +v 0.350228548050 1.082829117775 -0.050576865673 +v 0.331254720688 1.069567441940 -0.102947354317 +v 0.354001879692 1.020647644997 -0.085915803909 +v 0.344488024712 1.012196183205 -0.082506895065 +v 0.291500329971 1.049303770065 -0.131860733032 +v 0.316508769989 1.020089149475 -0.108288466930 +v 0.278244972229 1.045682430267 -0.121770381927 +v 0.329316139221 1.025645136833 -0.117285430431 +v 0.237555980682 1.070979237556 -0.131267666817 +v 0.035062551498 1.018665790558 0.116485953331 +v 0.040465593338 1.046646237373 0.092548847198 +v 0.039201974869 1.005905747414 0.105759739876 +v 0.407534599304 1.049324989319 -0.053019642830 +v 0.407415151596 1.048302650452 -0.055281043053 +v 0.409241080284 1.045540690422 -0.054215550423 +v 0.409348964691 1.045631766319 -0.052197813988 +v 0.407567024231 1.045038938522 -0.053497850895 +v 0.408619165421 1.045577406883 -0.051431357861 +v 0.405469179153 1.048570752144 -0.051153659821 +v 0.405564785004 1.047778606415 -0.056019663811 +v 0.403634786606 1.047237396240 -0.053114891052 +v 0.403636693954 1.047934293747 -0.055059254169 +v 0.400758862495 1.061518907547 -0.057837843895 +v 0.404543042183 1.054217815399 -0.054585695267 +v 0.403454065323 1.053356051445 -0.050477862358 +v 0.400370597839 1.052134513855 -0.054630398750 +v 0.400712847710 1.052084445953 -0.049256503582 +v 0.390304088593 1.109333515167 -0.057016730309 +v 0.388536572456 1.106098771095 -0.056595444679 +v 0.390356302261 1.105766057968 -0.046931087971 +v 0.392881512642 1.108199954033 -0.046167612076 +v 0.386311173439 1.096173763275 -0.029934227467 +v 0.384410738945 1.113091945648 -0.026496827602 +v 0.389004111290 1.130117177963 -0.037221312523 +v 0.392682909966 1.108635425568 -0.037295579910 +v 0.393145322800 1.127447843552 -0.052910566330 +v 0.390158653259 1.094229102135 -0.034627795219 +v 0.365346193314 1.095366001129 -0.075250387192 +v 0.361508131027 1.084615111351 -0.066927909851 +v 0.372699022293 1.087730288506 -0.066918432713 +v 0.371014833450 1.094595193863 -0.072323203087 +v 0.361182332039 1.096700906754 -0.029368877411 +v 0.354959249496 1.107748985291 -0.019379496574 +v 0.363673329353 1.110366463661 -0.021963655949 +v 0.367691278458 1.100643992424 -0.026672244072 +v 0.374418973923 1.110103130341 -0.023161590099 +v 0.377149462700 1.091655015945 -0.026055395603 +v 0.373545646667 1.081293344498 -0.038487195969 +v 0.338927745819 1.093048810959 -0.023161709309 +v 0.335716485977 1.096756339073 -0.022189855576 +v 0.333831310272 1.101293921471 -0.015252113342 +v 0.339010357857 1.099372625351 -0.015726268291 +v 0.336115360260 1.103556871414 -0.011844396591 +v 0.344871759415 1.091088294983 -0.023372709751 +v 0.330793619156 1.106926560402 -0.018525958061 +v 0.326990127563 1.115554690361 -0.016181170940 +v 0.328750967979 1.092396497726 -0.021561920643 +v 0.325265884399 1.098267674446 -0.019644141197 +v 0.346914052963 1.103241682053 -0.017480194569 +v 0.338825702667 1.108204364777 -0.011111140251 +v 0.344290256500 1.120107769966 -0.013092637062 +v 0.340465307236 1.136773347855 -0.015785038471 +v 0.324753522873 1.125427603722 -0.015070736408 +v 0.325292944908 1.136361837387 -0.017429172993 +v 0.329348087311 1.116966009140 -0.013588488102 +v 0.332792520523 1.118334770203 -0.096988618374 +v 0.332243442535 1.122267842293 -0.094619393349 +v 0.323136806488 1.125333309174 -0.083494544029 +v 0.327710032463 1.113504409790 -0.092576861382 +v 0.341573119164 1.120945453644 -0.094311773777 +v 0.335590600967 1.131715416908 -0.092355489731 +v 0.328661322594 1.133670330048 -0.089798271656 +v 0.324473619461 1.135583043098 -0.085328757763 +v 0.353020310402 1.126932740211 -0.091999888420 +v 0.346932053566 1.140344977379 -0.090539395809 +v 0.324019074440 1.120222568512 -0.017995357513 +v 0.289908170700 1.127960801125 -0.085108101368 +v 0.304053783417 1.121056914330 -0.078729987144 +v 0.358429908752 1.193968534470 -0.088134527206 +v 0.357683658600 1.184876799583 -0.100257873535 +v 0.363889813423 1.171106338501 -0.087482929230 +v 0.366210937500 1.176288127899 -0.080222189426 +v 0.368631839752 1.159053325653 -0.078640401363 +v 0.373743414879 1.167661428452 -0.066681802273 +v 0.375433444977 1.182421684265 -0.018816709518 +v 0.371500611305 1.164965748787 -0.026864171028 +v 0.360645771027 1.163048863411 -0.020475804806 +v 0.365925073624 1.182272315025 -0.013802051544 +v 0.355728268623 1.168922543526 -0.016866326332 +v 0.365192413330 1.144321084023 -0.023384571075 +v 0.351355433464 1.141466021538 -0.019072234631 +v 0.347202420235 1.153388857841 -0.018843293190 +v 0.341611385345 1.160166978836 -0.015560805798 +v 0.308113574982 1.139430522919 -0.086172342300 +v 0.313164234161 1.145732045174 -0.091821610928 +v 0.344058752060 1.152563452721 -0.093004882336 +v 0.359626531601 1.152780056000 -0.086724877357 +v 0.353022336960 1.166682362556 -0.092923939228 +v 0.347189664841 1.169834375381 -0.094244897366 +v 0.342811346054 1.158735275269 -0.094510555267 +v 0.353778600693 1.178154706955 -0.104299247265 +v 0.348872900009 1.177428722382 -0.102648377419 +v 0.331777811050 1.146316647530 -0.093712210655 +v 0.320755481720 1.145852565765 -0.098560571671 +v 0.323286175728 1.148737668991 -0.101337194443 +v 0.333321571350 1.152906417847 -0.097986042500 +v 0.326210260391 1.151933670044 -0.103993952274 +v 0.320780992508 1.131242513657 -0.019613742828 +v 0.316488265991 1.137263059616 -0.026703536510 +v 0.320133447647 1.137962102890 -0.020618379116 +v 0.337424993515 1.147775053978 -0.018649101257 +v 0.334059238434 1.153875350952 -0.016800880432 +v 0.332339167595 1.160215377808 -0.011005222797 +v 0.333034753799 1.162801146507 -0.010488092899 +v 0.342080116272 1.164801001549 -0.014642059803 +v 0.329650044441 1.156030654907 -0.012940168381 +v 0.320695400238 1.147234559059 -0.025550961494 +v 0.324349880219 1.148427605629 -0.021465837955 +v 0.324996113777 1.144489049911 -0.022029399872 +v 0.319767236710 1.142206072807 -0.025610327721 +v 0.316439867020 1.145988821983 -0.028391957283 +v 0.314030408859 1.140980482101 -0.030016005039 +v 0.306605100632 1.136893630028 -0.031398415565 +v 0.311094760895 1.138293743134 -0.030661761761 +v 0.314454317093 1.133188128471 -0.029211819172 +v 0.307747125626 1.131512522697 -0.031591475010 +v 0.291517019272 1.138318657875 -0.033916234970 +v 0.304842948914 1.122800350189 -0.030405402184 +v 0.289185523987 1.130287408829 -0.033323228359 +v 0.286009788513 1.137142181396 -0.090150713921 +v 0.292701721191 1.141978979111 -0.107457876205 +v 0.304615020752 1.142538189888 -0.102706909180 +v 0.309559822083 1.150496006012 -0.024630010128 +v 0.318125486374 1.150960326195 -0.022390007973 +v 0.317887067795 1.153405547142 -0.009570956230 +v 0.321745395660 1.151527643204 -0.017602443695 +v 0.312289476395 1.154029130936 -0.016137778759 +v 0.300724506378 1.151372194290 -0.025900006294 +v 0.302543878555 1.155046701431 -0.016855716705 +v 0.311131477356 1.148434042931 -0.121525228024 +v 0.314778566360 1.145795822144 -0.111356735229 +v 0.318232536316 1.148830175400 -0.113018929958 +v 0.316641569138 1.155373811722 -0.125974237919 +v 0.310946226120 1.160884141922 -0.130396544933 +v 0.305948495865 1.152399063110 -0.128264009953 +v 0.322793602943 1.153211474419 -0.114452242851 +v 0.319596290588 1.160681724548 -0.123025000095 +v 0.319034099579 1.171830296516 0.017393767834 +v 0.317905664444 1.160627365112 0.008475244045 +v 0.311162710190 1.163662672043 0.014921247959 +v 0.310447931290 1.172396779060 0.019649803638 +v 0.309610843658 1.159015893936 0.012034296989 +v 0.310906410217 1.144272089005 -0.107071161270 +v 0.306469917297 1.144841670990 -0.117874324322 +v 0.302479743958 1.143570303917 -0.114495694637 +v 0.301431417465 1.147624731064 -0.126265466213 +v 0.295472621918 1.145630240440 -0.120796620846 +v 0.288472175598 1.148880720139 -0.025115370750 +v 0.301652908325 1.141206622124 -0.031471252441 +v 0.309620141983 1.142498731613 -0.029031515121 +v 0.273790359497 1.148244857788 -0.025866985321 +v 0.272537946701 1.142426609993 -0.030830979347 +v 0.272406339645 1.134789586067 -0.032956182957 +v 0.291519165039 1.153991341591 -0.016412615776 +v 0.305040836334 1.167021632195 0.019629895687 +v 0.307030200958 1.163709878922 0.017679572105 +v 0.305133104324 1.161130547523 0.017725169659 +v 0.303712606430 1.163359761238 0.020457804203 +v 0.294210910797 1.150454163551 -0.129565417767 +v 0.297544717789 1.151566028595 -0.131443619728 +v 0.299007177353 1.157061815262 -0.131160855293 +v 0.289251804352 1.162134289742 -0.127951741219 +v 0.300848484039 1.162901401520 0.020725965500 +v 0.299931526184 1.168733119965 0.019787251949 +v 0.302267789841 1.160912990570 0.017476558685 +v 0.284586906433 1.155997037888 -0.118712186813 +v 0.320478677750 1.183388590813 0.019893288612 +v 0.315504550934 1.185158967972 0.021765649319 +v 0.304894447327 1.174435973167 0.020509123802 +v 0.311547279358 1.187007069588 0.021684288979 +v 0.294510126114 1.164358973503 0.015730142593 +v 0.295584678650 1.166682958603 0.018493294716 +v 0.298225879669 1.162472367287 0.019704580307 +v 0.296677112579 1.161968946457 0.018077135086 +v 0.299949407578 1.160799622536 0.016491711140 +v 0.297479152679 1.160787940025 0.014298200607 +v 0.295337200165 1.162495613098 0.013063669205 +v 0.297493457794 1.159226298332 0.006240844727 +v 0.292984724045 1.162090659142 0.007228136063 +v 0.289747714996 1.165970087051 0.009980738163 +v 0.293587207794 1.173587322235 0.017361879349 +v 0.295882701874 1.184546113014 0.019877433777 +v 0.289324522018 1.170376300812 0.013289868832 +v 0.304202318192 1.163235664368 -0.131868004799 +v 0.295037984848 1.173500776291 -0.132903218269 +v 0.339935421944 1.204928994179 0.011042654514 +v 0.323164343834 1.198740124702 0.019174516201 +v 0.319356679916 1.202640295029 0.017888188362 +v 0.333619713783 1.216896772385 0.006251335144 +v 0.316392660141 1.223941683769 0.004564166069 +v 0.318291187286 1.236307144165 -0.009308457375 +v 0.339412450790 1.232521295547 -0.013116896152 +v 0.309664726257 1.210659503937 0.013969600201 +v 0.320227146149 1.235717296600 -0.089737355709 +v 0.315104484558 1.228830337524 -0.112790822983 +v 0.326388478279 1.222050905228 -0.113814830780 +v 0.333210706711 1.227595806122 -0.095670104027 +v 0.337775707245 1.211602926254 -0.112435698509 +v 0.344557762146 1.216145873070 -0.082126915455 +v 0.326203584671 1.226114869118 -0.064788460732 +v 0.278375148773 1.164562225342 0.002692937851 +v 0.286962032318 1.159514427185 -0.002162218094 +v 0.278234004974 1.155510902405 -0.013907790184 +v 0.260844707489 1.160049319267 -0.009037494659 +v 0.253694772720 1.171441078186 0.002056777477 +v 0.274199008942 1.172616839409 0.009002089500 +v 0.241376399994 1.164381980896 -0.022117018700 +v 0.236744165421 1.171596884727 -0.017185091972 +v 0.257408142090 1.154074668884 -0.020835101604 +v 0.240831613541 1.161932706833 -0.027496337891 +v 0.272498369217 1.184606671333 0.015063345432 +v 0.283818006516 1.195466637611 0.018259227276 +v 0.251496076584 1.179788351059 0.004774987698 +v 0.280345439911 1.187177538872 -0.130770325661 +v 0.278849363327 1.200135588646 -0.128845155239 +v 0.264022827148 1.197203159332 -0.124487996101 +v 0.263042688370 1.188585639000 -0.125758051872 +v 0.247735500336 1.194719552994 -0.112018883228 +v 0.248827695847 1.181841850281 -0.113283038139 +v 0.269680976868 1.173762202263 -0.124203026295 +v 0.254821300507 1.213196992874 -0.005989432335 +v 0.259692907333 1.217268109322 -0.002873539925 +v 0.264866352081 1.212918281555 0.006526708603 +v 0.262398242950 1.203422427177 0.007279813290 +v 0.274141788483 1.213083267212 0.013194501400 +v 0.276415348053 1.206676006317 0.013642489910 +v 0.247564315796 1.194469571114 -0.000649333000 +v 0.245563030243 1.205689191818 -0.011326313019 +v 0.232998371124 1.204849720001 -0.033008277416 +v 0.242313385010 1.215915679932 -0.027005612850 +v 0.237220525742 1.198678970337 -0.018567323685 +v 0.235009908676 1.188932180405 -0.016125142574 +v 0.229682207108 1.194204092026 -0.034655272961 +v 0.280081987381 1.256208896637 -0.019527673721 +v 0.266340732574 1.257276535034 -0.021893620491 +v 0.272911071777 1.248642563820 -0.034798681736 +v 0.289152145386 1.246002078056 -0.035115897655 +v 0.308747768402 1.234785199165 -0.048455655575 +v 0.315008163452 1.240252733231 -0.028551578522 +v 0.295452594757 1.246342897415 -0.017771065235 +v 0.291768074036 1.252464294434 -0.011624932289 +v 0.272852182388 1.246320486069 0.026719093323 +v 0.274995565414 1.244897484779 0.026039719582 +v 0.270889520645 1.239411234856 0.026342213154 +v 0.269581317902 1.240408897400 0.026497364044 +v 0.264169454575 1.234132766724 0.025929450989 +v 0.263763427734 1.235451221466 0.026660978794 +v 0.263376712799 1.240142583847 0.021522641182 +v 0.268235921860 1.245139122009 0.023626983166 +v 0.227350234985 1.201413989067 -0.060404598713 +v 0.226505756378 1.187961101532 -0.062663376331 +v 0.232470035553 1.193228960037 -0.089262902737 +v 0.238893508911 1.210202097893 -0.088255286217 +v 0.253223896027 1.206307768822 -0.110778868198 +v 0.239593505859 1.224539875984 -0.073748230934 +v 0.232012033463 1.216619491577 -0.053089022636 +v 0.252145767212 1.219983339310 -0.097832560539 +v 0.250634193420 1.229226589203 -0.085364758968 +v 0.252376794815 1.238263368607 -0.057780742645 +v 0.267105579376 1.240937113762 -0.056898772717 +v 0.258289337158 1.241248607635 -0.051965177059 +v 0.252767086029 1.235920786858 -0.034247636795 +v 0.247609376907 1.233851552010 -0.039491355419 +v 0.265551090240 1.267001390457 0.009194791317 +v 0.272844314575 1.261870384216 0.012323737144 +v 0.270809888840 1.260163426399 0.015809416771 +v 0.262974262238 1.263656973839 0.012956202030 +v 0.268976211548 1.265585422516 0.000393331051 +v 0.258705377579 1.266561031342 -0.002085030079 +v 0.261866092682 1.261532545090 -0.010348796844 +v 0.274395465851 1.261371612549 -0.009189963341 +v 0.238660573959 1.248261332512 0.003617167473 +v 0.232067346573 1.245571255684 0.001219451427 +v 0.233589172363 1.253527522087 -0.000213980675 +v 0.238280773163 1.252982854843 0.002291560173 +v 0.241975069046 1.261794805527 0.000397861004 +v 0.244624614716 1.256234288216 0.001851916313 +v 0.222787380219 1.257822632790 -0.151930749416 +v 0.228422880173 1.254693269730 -0.147209823132 +v 0.230664730072 1.257706403732 -0.153383851051 +v 0.225557327271 1.260083436966 -0.156076908112 +v 0.224181652069 1.269489765167 -0.164974153042 +v 0.218438386917 1.260652661324 -0.156715095043 +v 0.235471725464 1.260826349258 -0.157907843590 +v 0.216721296310 1.261644721031 -0.151875853539 +v 0.215643405914 1.258587121964 -0.150196969509 +v 0.234998703003 1.261462807655 -0.124403178692 +v 0.224088907242 1.267516016960 -0.134056270123 +v 0.228742599487 1.274905562401 -0.138475537300 +v 0.243557214737 1.273823022842 -0.127884268761 +v 0.218826293945 1.271217346191 -0.139695227146 +v 0.223790407181 1.282513380051 -0.156298041344 +v 0.229401111603 1.281741142273 -0.159395992756 +v 0.243339538574 1.285583496094 -0.155722141266 +v 0.240149497986 1.285640001297 -0.147173225880 +v 0.263746500015 1.284044027328 -0.144365310669 +v 0.256647109985 1.283450603485 -0.135616004467 +v 0.249143123627 1.278396368027 -0.130899667740 +v 0.231034517288 1.281445980072 -0.142535567284 +v 0.228749275208 1.279866695404 -0.162645876408 +v 0.225111246109 1.280306816101 -0.161672592163 +v 0.326325416565 1.095832467079 -0.026897907257 +v 0.328660488129 1.092162013054 -0.027155876160 +v 0.334224581718 1.083390593529 -0.031802475452 +v 0.331976652145 1.086985468864 -0.036189317703 +v 0.244880199432 1.142374873161 -0.073979854584 +v 0.242966175079 1.142764568329 -0.078356206417 +v 0.235785722733 1.146784543991 -0.078433096409 +v 0.238635778427 1.145627975464 -0.074249148369 +v 0.232438325882 1.149214863777 -0.073069214821 +v 0.236898422241 1.147114753723 -0.069623470306 +v 0.255175828934 1.136546134949 -0.077648699284 +v 0.255682229996 1.136946439743 -0.070239722729 +v 0.269840002060 1.141850829124 -0.088529407978 +v 0.257449388504 1.150468826294 -0.085283041000 +v 0.282135963440 1.148957133293 -0.107223212719 +v 0.262875080109 1.157893180847 -0.106579840183 +v 0.264955282211 1.164611697197 -0.115844190121 +v 0.244687318802 1.169971346855 -0.105285048485 +v 0.246577739716 1.164339303970 -0.095911860466 +v 0.234338521957 1.172934412956 -0.084621906281 +v 0.237678050995 1.167568325996 -0.080495774746 +v 0.230271100998 1.181651115417 -0.088845074177 +v 0.227655649185 1.178839325905 -0.062708079815 +v 0.231756448746 1.172751188278 -0.062062919140 +v 0.229456424713 1.177902221680 -0.036529541016 +v 0.232846736908 1.170946717262 -0.038640320301 +v 0.227507114410 1.182419776917 -0.036165595055 +v 0.234830379486 1.176739931107 -0.015439331532 +v 0.235546827316 1.166122555733 -0.040820002556 +v 0.235387325287 1.167956709862 -0.061342179775 +v 0.236512184143 1.160708308220 -0.043142557144 +v 0.237915754318 1.161495804787 -0.059940874577 +v 0.241000175476 1.156659126282 -0.029682040215 +v 0.256223201752 1.147885084152 -0.025309741497 +v 0.252270221710 1.141531467438 -0.026705861092 +v 0.236812353134 1.148920893669 -0.030205547810 +v 0.290362834930 1.128957509995 -0.035883367062 +v 0.271513700485 1.134885430336 -0.035297334194 +v 0.306781768799 1.119673848152 -0.033734023571 +v 0.317042827606 1.112375974655 -0.022598922253 +v 0.317406177521 1.108932733536 -0.028873980045 +v 0.332089543343 1.094723105431 -0.085125267506 +v 0.322933316231 1.108649253845 -0.085476875305 +v 0.319103002548 1.109926819801 -0.080069780350 +v 0.329759955406 1.096952438354 -0.079336047173 +v 0.334635496140 1.087565541267 -0.070015192032 +v 0.337785124779 1.084333658218 -0.074962139130 +v 0.336755514145 1.081413388252 -0.053044438362 +v 0.338276147842 1.079147696495 -0.053146123886 +v 0.346428036690 1.085549473763 -0.069611251354 +v 0.343625307083 1.093718051910 -0.081809461117 +v 0.333607673645 1.104474425316 -0.090680718422 +v 0.343541741371 1.081957101822 -0.052684903145 +v 0.353684067726 1.082917213440 -0.067507863045 +v 0.358879923820 1.093483090401 -0.077935218811 +v 0.351037502289 1.092784404755 -0.080610275269 +v 0.360334396362 1.102306008339 -0.085941970348 +v 0.347621440887 1.101400613785 -0.092805027962 +v 0.345952153206 1.079882979393 -0.052633166313 +v 0.355161905289 1.077038049698 -0.051688134670 +v 0.343386173248 1.084547519684 -0.034452319145 +v 0.352032899857 1.082792043686 -0.035345792770 +v 0.340294599533 1.086036086082 -0.034663975239 +v 0.321768999100 1.104483842850 -0.020316779613 +v 0.326095461845 1.115695357323 -0.020195245743 +v 0.319353103638 1.123223304749 -0.025029301643 +v 0.322834372520 1.101128458977 -0.027329206467 +v 0.321851253510 1.127054452896 -0.022767901421 +v 0.353766679764 1.095177173615 -0.026385903358 +v 0.359876632690 1.086948037148 -0.037192046642 +v 0.368791699409 1.081473231316 -0.054299533367 +v 0.366416454315 1.085834145546 -0.039678335190 +v 0.375720381737 1.077826261520 -0.054867923260 +v 0.385641813278 1.069572925568 -0.047519683838 +v 0.386780261993 1.068247556686 -0.054583191872 +v 0.379089593887 1.078935027122 -0.064835965633 +v 0.387892365456 1.068310856819 -0.060149490833 +v 0.394519090652 1.059546113014 -0.055611908436 +v 0.389144182205 1.068464994431 -0.063209295273 +v 0.381745100021 1.079965829849 -0.068755567074 +v 0.395897269249 1.059724450111 -0.058292984962 +v 0.397762775421 1.058734893799 -0.060246050358 +v 0.390513181686 1.068549633026 -0.065918266773 +v 0.401293635368 1.052220582962 -0.057137370110 +v 0.402930855751 1.052381992340 -0.058841645718 +v 0.399328708649 1.059069991112 -0.062133789063 +v 0.404549121857 1.052707433701 -0.057922661304 +v 0.400724768639 1.060495495796 -0.061055362225 +v 0.394371271133 1.071512341499 -0.065981507301 +v 0.392708420753 1.069672346115 -0.067366063595 +v 0.394284963608 1.071869850159 -0.062373280525 +v 0.388498425484 1.083336234093 -0.066320896149 +v 0.388929486275 1.082942962646 -0.069176137447 +v 0.389878511429 1.092170119286 -0.038135766983 +v 0.392562985420 1.073132753372 -0.038371622562 +v 0.393902897835 1.072458386421 -0.036485314369 +v 0.400479316711 1.060284376144 -0.040919661522 +v 0.400619268417 1.059895157814 -0.042878329754 +v 0.392677068710 1.071635484695 -0.034626603127 +v 0.399963617325 1.058247804642 -0.039560496807 +v 0.389219284058 1.072089076042 -0.033550858498 +v 0.398481249809 1.057546377182 -0.040394842625 +v 0.385063409805 1.070487856865 -0.035343050957 +v 0.395586490631 1.058170080185 -0.044803380966 +v 0.402001142502 1.052767753601 -0.042411684990 +v 0.388577699661 1.095486879349 -0.066482841969 +v 0.387288451195 1.094378232956 -0.064481914043 +v 0.389545917511 1.108287096024 -0.069271624088 +v 0.387219429016 1.094375610352 -0.071040332317 +v 0.390260934830 1.124660015106 -0.067944049835 +v 0.383810281754 1.146947145462 -0.036770582199 +v 0.387935638428 1.145303487778 -0.049735426903 +v 0.385385751724 1.144845247269 -0.066654205322 +v 0.379234194756 1.167300224304 -0.047699809074 +v 0.378260374069 1.142871618271 -0.078380703926 +v 0.384638786316 1.121478676796 -0.079748928547 +v 0.371328830719 1.114236831665 -0.083621263504 +v 0.366134643555 1.134753823280 -0.086642682552 +v 0.358268737793 1.111678957939 -0.091841936111 +v 0.384584784508 1.105457901955 -0.077077627182 +v 0.377453684807 1.103823542595 -0.078171491623 +v 0.383101344109 1.092535972595 -0.074570477009 +v 0.376216292381 1.093980312347 -0.073397576809 +v 0.384114503860 1.080561161041 -0.071538448334 +v 0.387168884277 1.081826567650 -0.071408987045 +v 0.378217101097 1.166335225105 -0.036741614342 +v 0.376491785049 1.185984611511 -0.027371287346 +v 0.375539779663 1.191256642342 -0.040807008743 +v 0.376024484634 1.146698236465 -0.028571903706 +v 0.380968809128 1.128817915916 -0.027356445789 +v 0.372819066048 1.124244213104 -0.021395444870 +v 0.357726931572 1.123675107956 -0.019232869148 +v 0.363764047623 1.199695229530 -0.003253161907 +v 0.359092354774 1.192318797112 -0.001357376575 +v 0.363418817520 1.207986116409 -0.009030759335 +v 0.363287687302 1.216881036758 -0.024423658848 +v 0.353446960449 1.214913725853 -0.051911473274 +v 0.367811679840 1.192584276199 -0.062469363213 +v 0.335019469261 1.232254981995 -0.039931237698 +v 0.341472268105 1.196155428886 0.010244071484 +v 0.354283452034 1.192304849625 -0.001765370369 +v 0.339673757553 1.196221947670 0.007006824017 +v 0.363298535347 1.182292938232 -0.012944102287 +v 0.354795575142 1.171777725220 -0.016488790512 +v 0.327435612679 1.161281824112 -0.002656698227 +v 0.324092507362 1.165798902512 0.006462395191 +v 0.322525382042 1.168064355850 0.004236161709 +v 0.326949238777 1.164337635040 -0.003446638584 +v 0.325284123421 1.158543467522 -0.003361463547 +v 0.322180032730 1.162310838699 0.007995128632 +v 0.320963859558 1.172976732254 0.015366852283 +v 0.319886207581 1.174322366714 0.011200785637 +v 0.321480035782 1.183079004288 0.017309784889 +v 0.326878428459 1.193821310997 0.018233954906 +v 0.327511191368 1.192236304283 0.015911042690 +v 0.303445339203 1.120934963226 -0.074148416519 +v 0.251810550690 1.141942739487 -0.031309187412 +v 0.241466999054 1.146666526794 -0.036401212215 +v 0.236400604248 1.148872971535 -0.047140300274 +v 0.230206489563 1.152073264122 -0.044595956802 +v 0.229574203491 1.151367187500 -0.061807334423 +v 0.239748239517 1.160202145576 -0.073878407478 +v 0.247816801071 1.157876133919 -0.081561207771 +v 0.234130144119 1.149081230164 -0.061738610268 +v 0.224230289459 1.281635522842 -0.153767704964 +v 0.223762512207 1.278146028519 -0.159069538116 +v 0.219611406326 1.279417753220 -0.152326762676 +v 0.213749408722 1.273561835289 -0.144396305084 +v 0.217382907867 1.273008942604 -0.147697806358 +v 0.221839427948 1.275884628296 -0.154915273190 +v 0.210401773453 1.265159130096 -0.141010046005 +v 0.213674545288 1.265947461128 -0.146045088768 +v 0.217527627945 1.274109721184 -0.141741633415 +v 0.215512275696 1.264181613922 -0.138061285019 +v 0.220313549042 1.262314796448 -0.135805130005 +v 0.220573663712 1.257741451263 -0.138237059116 +v 0.216372489929 1.257721900940 -0.141187667847 +v 0.212907791138 1.258577108383 -0.145352184772 +v 0.233858585358 1.256473422050 -0.125267803669 +v 0.234248638153 1.251918315887 -0.127823233604 +v 0.246033430099 1.251870393753 -0.112772464752 +v 0.246748685837 1.247483968735 -0.115507006645 +v 0.247130870819 1.256455659866 -0.111137330532 +v 0.258541584015 1.245236992836 -0.084437072277 +v 0.256093978882 1.239906072617 -0.086883187294 +v 0.257097005844 1.266151666641 -0.110764563084 +v 0.266882419586 1.251339793205 -0.085104942322 +v 0.267502307892 1.270240545273 -0.112958729267 +v 0.275364637375 1.256015896797 -0.091180860996 +v 0.275161266327 1.274131059647 -0.118503391743 +v 0.285532474518 1.258744239807 -0.098316013813 +v 0.281810045242 1.273761987686 -0.128352165222 +v 0.294841051102 1.259177684784 -0.109563946724 +v 0.285378694534 1.267878890038 -0.136893749237 +v 0.299645662308 1.256075739861 -0.122435271740 +v 0.267150640488 1.279207229614 -0.152110457420 +v 0.266644477844 1.272503018379 -0.155482232571 +v 0.285328865051 1.260385632515 -0.145259499550 +v 0.245440483093 1.281306147575 -0.162130832672 +v 0.247352838516 1.277317881584 -0.164401888847 +v 0.226536273956 1.277150392532 -0.165146172047 +v 0.244216680527 1.272458314896 -0.165734708309 +v 0.265185594559 1.264242410660 -0.158591628075 +v 0.225196361542 1.271236658096 -0.164832949638 +v 0.240829467773 1.264716506004 -0.164158344269 +v 0.256122827530 1.256213188171 -0.158023118973 +v 0.249283313751 1.251091122627 -0.154383540154 +v 0.264867782593 1.238259196281 -0.149782478809 +v 0.271236419678 1.243698835373 -0.152746677399 +v 0.242131233215 1.248456358910 -0.149258136749 +v 0.259697437286 1.235559821129 -0.143175721169 +v 0.238021850586 1.246404170990 -0.140355885029 +v 0.255519628525 1.235976219177 -0.134220600128 +v 0.235714912415 1.248224496841 -0.132601261139 +v 0.249901533127 1.242415428162 -0.121484637260 +v 0.225628137589 1.255354166031 -0.141528964043 +v 0.219279289246 1.256212234497 -0.146652877331 +v 0.261144638062 1.227618336678 -0.105385541916 +v 0.265067815781 1.218194127083 -0.118982553482 +v 0.255488157272 1.234093666077 -0.095165371895 +v 0.257819652557 1.237515091896 -0.082652032375 +v 0.256304979324 1.231330990791 -0.090660393238 +v 0.261433124542 1.242497920990 -0.080974459648 +v 0.269018650055 1.247485637665 -0.080007076263 +v 0.276544094086 1.249154090881 -0.084097981453 +v 0.286174535751 1.250129461288 -0.091734588146 +v 0.297051906586 1.250920057297 -0.101950109005 +v 0.304772377014 1.248518705368 -0.115050077438 +v 0.297762155533 1.245796918869 -0.131601870060 +v 0.303509950638 1.239294528961 -0.125708818436 +v 0.278063774109 1.251515507698 -0.150501132011 +v 0.292453289032 1.234364628792 -0.138768732548 +v 0.285548925400 1.222070693970 -0.138958930969 +v 0.275888442993 1.216582298279 -0.135062336922 +v 0.269642829895 1.214331030846 -0.127090573311 +v 0.265042543411 1.214603662491 -0.116683065891 +v 0.270244359970 1.211904883385 -0.125036418438 +v 0.259296417236 1.223366022110 -0.101866900921 +v 0.260845899582 1.212415218353 -0.112328946590 +v 0.266552209854 1.205083847046 -0.122853875160 +v 0.268821239471 1.210025906563 -0.123203098774 +v 0.277948856354 1.207428336143 -0.128034055233 +v 0.277915716171 1.211367130280 -0.128684759140 +v 0.288717508316 1.213802814484 -0.129420161247 +v 0.287309169769 1.217238068581 -0.130407452583 +v 0.277626991272 1.213335871696 -0.130287289619 +v 0.286727428436 1.219543695450 -0.133292317390 +v 0.297491550446 1.224069118500 -0.127825796604 +v 0.295832872391 1.229104042053 -0.133770406246 +v 0.299275398254 1.222613096237 -0.126457333565 +v 0.306288719177 1.231516838074 -0.115943133831 +v 0.303650856018 1.233008384705 -0.119831323624 +v 0.304522037506 1.218244671822 -0.125307500362 +v 0.291501283646 1.207969903946 -0.129891932011 +v 0.295377254486 1.198327302933 -0.132311940193 +v 0.312335252762 1.210624575615 -0.126865327358 +v 0.307499647141 1.182762622833 -0.133446455002 +v 0.321811676025 1.199660181999 -0.127626895905 +v 0.313686370850 1.178631782532 -0.132702827454 +v 0.327832698822 1.190094709396 -0.127820491791 +v 0.318174362183 1.174999833107 -0.130550682545 +v 0.329443216324 1.184651136398 -0.126586496830 +v 0.320348262787 1.172263383865 -0.127011775970 +v 0.329268336296 1.182359218597 -0.124253869057 +v 0.319159746170 1.172549962997 -0.124517083168 +v 0.327510595322 1.181082725525 -0.121122121811 +v 0.341977953911 1.186866998672 -0.119443237782 +v 0.340240001678 1.181673407555 -0.114829957485 +v 0.342066526413 1.190820455551 -0.118938207626 +v 0.343557119370 1.197325468063 -0.114280879498 +v 0.308367967606 1.238885641098 -0.100797057152 +v 0.302496671677 1.241308212280 -0.108589589596 +v 0.297030925751 1.244460582733 -0.094559252262 +v 0.288425922394 1.242414832115 -0.070966482162 +v 0.300933361053 1.241560339928 -0.084082663059 +v 0.287242650986 1.245997667313 -0.082513213158 +v 0.276428461075 1.242347240448 -0.063216865063 +v 0.276814937592 1.246329665184 -0.074558973312 +v 0.262533426285 1.248234033585 -0.033080637455 +v 0.268426895142 1.245181202888 -0.070157289505 +v 0.255537271500 1.244341135025 -0.030193269253 +v 0.255340337753 1.255470871925 -0.021258711815 +v 0.248293161392 1.248656272888 -0.019238531590 +v 0.246406555176 1.241610646248 -0.014172136784 +v 0.252004623413 1.238135337830 -0.023450851440 +v 0.240248918533 1.252865195274 -0.008260846138 +v 0.236009836197 1.244751214981 -0.002041816711 +v 0.250643014908 1.260913610458 -0.006915748119 +v 0.241449356079 1.238094210625 0.000856995583 +v 0.248243808746 1.235244989395 -0.007029771805 +v 0.236295223236 1.238589763641 0.006947577000 +v 0.244088888168 1.237448453903 0.010651528835 +v 0.245872020721 1.235504984856 0.007974743843 +v 0.240644693375 1.243501543999 0.007078409195 +v 0.245250463486 1.240480542183 0.010777413845 +v 0.252675771713 1.233302831650 0.020247042179 +v 0.254426479340 1.231533646584 0.017972588539 +v 0.254062652588 1.237539768219 0.019096493721 +v 0.276159763336 1.255128741264 0.018554508686 +v 0.275947093964 1.249229311943 0.022302091122 +v 0.272867918015 1.249667882919 0.024674117565 +v 0.271744251251 1.251732468605 0.021295309067 +v 0.283636093140 1.255234718323 0.014072477818 +v 0.280255317688 1.247575402260 0.019362986088 +v 0.276215314865 1.261920690536 0.008904576302 +v 0.278604030609 1.259399175644 0.004241228104 +v 0.285460472107 1.252817630768 0.010138630867 +v 0.266534566879 1.266445875168 0.005049049854 +v 0.258428096771 1.268704891205 0.002973020077 +v 0.254645347595 1.267239928246 0.003869831562 +v 0.287663459778 1.258239984512 -0.004414916039 +v 0.298110485077 1.250542998314 0.003384351730 +v 0.298449993134 1.244361400604 -0.001860737801 +v 0.299829959869 1.234122157097 0.006569683552 +v 0.298758268356 1.238474845886 0.010709106922 +v 0.303976297379 1.239164352417 -0.006211340427 +v 0.305155038834 1.229295969009 0.004372239113 +v 0.300870895386 1.218429088593 0.011674880981 +v 0.295304775238 1.223464488983 0.011802554131 +v 0.293110609055 1.205903887749 0.015846788883 +v 0.286343812943 1.213704109192 0.013587355614 +v 0.302354812622 1.196681976318 0.018828034401 +v 0.283874988556 1.219200730324 0.015126287937 +v 0.293270826340 1.227752089500 0.015739440918 +v 0.283052444458 1.240837812424 0.023119628429 +v 0.276622056961 1.233630180359 0.024268507957 +v 0.286540031433 1.246751070023 0.017804086208 +v 0.272910356522 1.237592816353 0.025359690189 +v 0.278305053711 1.243288516998 0.024740695953 +v 0.267666101456 1.227963447571 0.022224366665 +v 0.264769792557 1.232656955719 0.024754941463 +v 0.260413408279 1.224851250648 0.011581957340 +v 0.257379055023 1.225758671761 -0.000789821148 +v 0.253545045853 1.232021093369 -0.012868225574 +v 0.254851341248 1.226656675339 -0.018729388714 +v 0.251304626465 1.230217099190 0.003005683422 +v 0.256979942322 1.228909850121 0.014670252800 +v 0.250156402588 1.223106861115 -0.021990776062 +v 0.239892244339 1.227292776108 -0.045880913734 +v 0.245432853699 1.234084725380 -0.064319491386 +v 0.254643917084 1.237128496170 -0.077797412872 +v 0.259204149246 1.241605043411 -0.074413061142 +v 0.253374576569 1.265572071075 0.004234373569 +v 0.252619743347 1.259510278702 0.004528701305 +v 0.295717954636 1.157437562943 -0.004984855652 +v 0.302157163620 1.158133268356 0.007280886173 +v 0.303221464157 1.155419707298 -0.004480600357 +v 0.306118011475 1.158186078072 0.009157180786 +v 0.309594392776 1.154529452324 -0.002081036568 +v 0.317309141159 1.145281672478 -0.095512390137 +v 0.342793583870 1.111549854279 -0.096035361290 +v 0.370063781738 1.103682756424 -0.078702569008 +v 0.223846435547 1.280663371086 -0.149150192738 +v 0.262922763824 1.260004043579 0.011266469955 +v 0.278262376785 1.128904223442 -0.071313738823 +v 0.278782129288 1.129065513611 -0.078170895576 +v 0.214526414871 1.261890172958 -0.147512257099 +v 0.403749704361 1.053897500038 -0.044087231159 +v -0.173335313797 1.189228773117 -0.074161946774 +v -0.172501087189 1.194711208344 -0.077600002289 +v -0.156718730927 1.200044989586 -0.067752003670 +v -0.159983634949 1.195769190788 -0.064942240715 +v -0.157345533371 1.192241907120 -0.064338445663 +v -0.176035165787 1.182665348053 -0.074862539768 +v -0.153723001480 1.198203325272 -0.067141354084 +v -0.154419660568 1.185277462006 -0.061343967915 +v -0.174031734467 1.176616787910 -0.076530218124 +v -0.153948068619 1.192448616028 -0.066138029099 +v -0.152566671371 1.196974277496 -0.068748712540 +v -0.149900436401 1.188096642494 -0.064178586006 +v -0.167804479599 1.171906828880 -0.078679144382 +v -0.151026010513 1.177392482758 -0.069037199020 +v -0.159547805786 1.170724391937 -0.081492185593 +v -0.137443780899 1.179318189621 -0.071261107922 +v -0.151052713394 1.171566128731 -0.090630888939 +v -0.145410776138 1.202758073807 -0.074415385723 +v -0.146416664124 1.204916477203 -0.073959469795 +v -0.142997503281 1.206828117371 -0.075007200241 +v -0.139394283295 1.203434348106 -0.075942695141 +v -0.143990516663 1.207095742226 -0.077334642410 +v -0.152405261993 1.204598784447 -0.072375178337 +v -0.150315523148 1.201716780663 -0.070241928101 +v -0.169452428818 1.199298620224 -0.083030939102 +v -0.163226604462 1.203215003014 -0.090547025204 +v -0.193114757538 1.175109863281 -0.086916208267 +v -0.185326576233 1.171366214752 -0.082843124866 +v -0.186292409897 1.165282964706 -0.088589191437 +v -0.200573444366 1.166569828987 -0.092627763748 +v -0.138775825500 1.205187916756 -0.076617836952 +v -0.135615825653 1.203529238701 -0.077090024948 +v -0.155732393265 1.203607797623 -0.096656978130 +v -0.149366855621 1.200804471970 -0.100724101067 +v -0.137942790985 1.205677509308 -0.079242825508 +v -0.131234407425 1.203546047211 -0.080529451370 +v -0.130687952042 1.197476148605 -0.079052925110 +v -0.130004167557 1.197584390640 -0.081454098225 +v -0.129281997681 1.189852356911 -0.077395677567 +v -0.131329774857 1.190665483475 -0.076595366001 +v -0.141457080841 1.192768573761 -0.102260649204 +v -0.127812385559 1.196197390556 -0.082319319248 +v -0.144458770752 1.197188854218 -0.101949512959 +v -0.177466392517 1.161493182182 -0.094907760620 +v -0.163338899612 1.165530800819 -0.106261909008 +v -0.128491640091 1.187958240509 -0.082086682320 +v -0.140712261200 1.182583570480 -0.100011527538 +v -0.210927009583 1.107810139656 -0.110981822014 +v -0.211072683334 1.103303790092 -0.109917879105 +v -0.213212490082 1.101778507233 -0.109918236732 +v -0.214309692383 1.109030246735 -0.111766934395 +v -0.204130172729 1.105494737625 -0.113910675049 +v -0.205763339996 1.099799871445 -0.112921178341 +v -0.223363876343 1.117204904556 -0.114630222321 +v -0.214059114456 1.124341964722 -0.111509382725 +v -0.219065189362 1.105570316315 -0.114096760750 +v -0.238481521606 1.129768848419 -0.130072593689 +v -0.234876394272 1.134552240372 -0.130008339882 +v -0.223749637604 1.136018037796 -0.118461847305 +v -0.207642078400 1.120860934258 -0.111469984055 +v -0.208950042725 1.096844553947 -0.112857937813 +v -0.215140581131 1.098256349564 -0.112100958824 +v -0.209567785263 1.147545337677 -0.113711655140 +v -0.197745561600 1.140209794044 -0.107432365417 +v -0.193334102631 1.132169842720 -0.107758402824 +v -0.193572998047 1.150783538818 -0.107727050781 +v -0.203800201416 1.156490325928 -0.111603617668 +v -0.175592660904 1.145561695099 -0.106927514076 +v -0.172769784927 1.138006210327 -0.105781555176 +v -0.177102327347 1.152362346649 -0.109004378319 +v -0.203049182892 1.103446960449 -0.115947484970 +v -0.205771446228 1.097857356071 -0.116888880730 +v -0.200581550598 1.109675526619 -0.119850099087 +v -0.202297449112 1.114114880562 -0.116474270821 +v -0.205280303955 1.096752166748 -0.122693479061 +v -0.225318193436 1.093360424042 -0.128429234028 +v -0.225040435791 1.096657991409 -0.123039066792 +v -0.220809221268 1.096151828766 -0.119270980358 +v -0.221869707108 1.091606855392 -0.126757025719 +v -0.228603363037 1.095641136169 -0.129044175148 +v -0.228597879410 1.101918220520 -0.122385978699 +v -0.224291801453 1.103944659233 -0.118215620518 +v -0.247853517532 1.125877380371 -0.145480275154 +v -0.241319656372 1.134932279587 -0.146954476833 +v -0.224902391434 1.146563768387 -0.131057977676 +v -0.189874410629 1.125573754311 -0.113757431507 +v -0.188519477844 1.120980858803 -0.117558717728 +v -0.197483062744 1.107985734940 -0.124557018280 +v -0.203064918518 1.094104051590 -0.134538710117 +v -0.212108135223 1.091883540154 -0.125092267990 +v -0.146539926529 1.190650701523 -0.114794254303 +v -0.146754264832 1.180134177208 -0.115530133247 +v -0.152557849884 1.174678444862 -0.113840103149 +v -0.143783569336 1.177394032478 -0.097335398197 +v -0.152518033981 1.177743196487 -0.127124845982 +v -0.154675722122 1.168212413788 -0.123611927032 +v -0.152200698853 1.192405939102 -0.124226093292 +v -0.149080038071 1.190506696701 -0.121930062771 +v -0.149870634079 1.194133043289 -0.115894854069 +v -0.152212619781 1.190471172333 -0.127474963665 +v -0.152487754822 1.182887434959 -0.127529799938 +v -0.154866933823 1.185299873352 -0.129990160465 +v -0.154926300049 1.181805968285 -0.133388638496 +v -0.233518838882 1.051918983459 -0.153825461864 +v -0.234681367874 1.048460602760 -0.154123127460 +v -0.235526800156 1.045760154724 -0.156687140465 +v -0.238681077957 1.048464179039 -0.156781077385 +v -0.229362010956 1.049855709076 -0.154987037182 +v -0.227258443832 1.057394742966 -0.153537988663 +v -0.231667280197 1.046329975128 -0.156813800335 +v -0.223042964935 1.088201880455 -0.145084559917 +v -0.215483188629 1.087337613106 -0.146565556526 +v -0.215860605240 1.081712245941 -0.155044794083 +v -0.226407766342 1.085251331329 -0.153320491314 +v -0.235337972641 1.090702056885 -0.156869351864 +v -0.226635932922 1.075340270996 -0.153673052788 +v -0.235593795776 1.084217786789 -0.159696042538 +v -0.230427265167 1.064726591110 -0.154860198498 +v -0.235838890076 1.056318044662 -0.154584050179 +v -0.244804859161 1.037203311920 -0.166494607925 +v -0.242951393127 1.043129205704 -0.159860074520 +v -0.236907005310 1.041309475899 -0.161783397198 +v -0.243432760239 1.035140395164 -0.168893754482 +v -0.224668979645 1.052752375603 -0.157276332378 +v -0.230270862579 1.046147704124 -0.159191727638 +v -0.159595966339 1.184921741486 -0.135831117630 +v -0.160187005997 1.181343317032 -0.141996622086 +v -0.153135061264 1.179491877556 -0.142091393471 +v -0.169377088547 1.185044288635 -0.136880159378 +v -0.170533895493 1.181570768356 -0.151052296162 +v -0.160138130188 1.174441456795 -0.159372687340 +v -0.222903490067 1.065987110138 -0.152610003948 +v -0.210915327072 1.058199882507 -0.158076643944 +v -0.219084739685 1.052546024323 -0.157240092754 +v -0.209656953812 1.069716095924 -0.156206488609 +v -0.242612361908 1.097414970398 -0.161309957504 +v -0.247563600540 1.103350877762 -0.164090692997 +v -0.248119831085 1.110607266426 -0.158350706100 +v -0.241690874100 1.101655244827 -0.159433066845 +v -0.244697809219 1.092168807983 -0.164222717285 +v -0.251339673996 1.101027250290 -0.169793009758 +v -0.253261089325 1.111646056175 -0.160615861416 +v -0.246266365051 1.039236307144 -0.166336178780 +v -0.249294042587 1.037806272507 -0.168891787529 +v -0.250867843628 1.039080262184 -0.168178379536 +v -0.247174024582 1.041245818138 -0.164608359337 +v -0.252528667450 1.034430623055 -0.174002289772 +v -0.255876541138 1.036398887634 -0.174964785576 +v -0.248456478119 1.035744786263 -0.171986579895 +v -0.207899332047 1.087407350540 -0.147547543049 +v -0.209868431091 1.082488656044 -0.153715491295 +v -0.206011295319 1.082607984543 -0.148635447025 +v -0.207342624664 1.075194835663 -0.155124664307 +v -0.252168178558 1.045034170151 -0.165443241596 +v -0.258034706116 1.046116113663 -0.173089325428 +v -0.262003183365 1.051245570183 -0.178000867367 +v -0.252234935760 1.049173116684 -0.164762079716 +v -0.252549409866 1.041483521461 -0.167263507843 +v -0.259843349457 1.041425228119 -0.177599608898 +v -0.270201206207 1.045489907265 -0.187091112137 +v -0.276372432709 1.040201425552 -0.192463517189 +v -0.278449535370 1.034975290298 -0.196169674397 +v -0.284775257111 1.029717683792 -0.197532415390 +v -0.284212112427 1.040760636330 -0.193028330803 +v -0.271418571472 1.038434147835 -0.194264531136 +v -0.273589372635 1.034032583237 -0.199454545975 +v -0.281298398972 1.027353167534 -0.202217400074 +v -0.285241842270 1.052183389664 -0.197862207890 +v -0.287758827209 1.044720053673 -0.200536787510 +v -0.285270452499 1.052050352097 -0.209925532341 +v -0.284770965576 1.056814908981 -0.208144426346 +v -0.286429882050 1.041720151901 -0.204202711582 +v -0.282965183258 1.049952030182 -0.209141969681 +v -0.281043052673 1.048063278198 -0.188708662987 +v -0.144400358200 1.176907896996 -0.151417970657 +v -0.135134458542 1.175758123398 -0.166907787323 +v -0.129020690918 1.170335769653 -0.138893842697 +v -0.141971826553 1.174503087997 -0.135131359100 +v -0.119428634644 1.164143443108 -0.165285944939 +v -0.116199493408 1.159146547318 -0.141210973263 +v -0.142082691193 1.176310896873 -0.178735315800 +v -0.151244163513 1.175081014633 -0.169050514698 +v -0.125181674957 1.176591157913 -0.177203238010 +v -0.130443096161 1.183761119843 -0.186303555965 +v -0.245208501816 1.111506700516 -0.205009043217 +v -0.232599973679 1.125318527222 -0.206095397472 +v -0.240747690201 1.128869056702 -0.186226844788 +v -0.252095937729 1.110360264778 -0.190840721130 +v -0.230934619904 1.112748980522 -0.219200611115 +v -0.201740980148 1.135213136673 -0.227704524994 +v -0.210019588470 1.145615220070 -0.203961193562 +v -0.256554365158 1.026075959206 -0.197485446930 +v -0.252297163010 1.025413274765 -0.206123828888 +v -0.262440681458 1.028629183769 -0.203707456589 +v -0.262872934341 1.028875350952 -0.197542905807 +v -0.253294944763 1.027410507202 -0.211396694183 +v -0.259093761444 1.029339194298 -0.211079478264 +v -0.246476411819 1.024986743927 -0.206110835075 +v -0.252317905426 1.024993419647 -0.197774946690 +v -0.311765909195 0.993130266666 -0.226933717728 +v -0.310108184814 0.996098339558 -0.225180983543 +v -0.310272455215 0.995082259178 -0.224124073982 +v -0.309615135193 0.992788553238 -0.226431727409 +v -0.307722568512 0.995178222656 -0.223333239555 +v -0.308899879456 0.997443914413 -0.225597083569 +v -0.306552886963 0.996318519115 -0.226082086563 +v -0.301561355591 0.999858021736 -0.221365690231 +v -0.301273822784 0.999540150166 -0.223513543606 +v -0.300451040268 0.999494612217 -0.225161433220 +v -0.291275262833 1.008644461632 -0.219689548016 +v -0.289765357971 1.008863568306 -0.223312497139 +v -0.303882122040 1.002618789673 -0.222436308861 +v -0.245472908020 1.029212474823 -0.216191470623 +v -0.251756668091 1.032742142677 -0.216125905514 +v -0.240088224411 1.029202461243 -0.212740898132 +v -0.305489063263 0.996842980385 -0.228073120117 +v -0.301641464233 1.000535249710 -0.226922750473 +v -0.297816038132 1.000618338585 -0.226435422897 +v -0.304344177246 0.995790660381 -0.228550374508 +v -0.307172536850 0.993706703186 -0.230047941208 +v -0.308262586594 0.994648814201 -0.229670286179 +v -0.308869600296 0.993044137955 -0.230499446392 +v -0.308663368225 0.993162393570 -0.231502115726 +v -0.309333801270 0.993721485138 -0.231109619141 +v -0.308087825775 0.994998931885 -0.231224834919 +v -0.103364944458 1.130733013153 -0.165089964867 +v -0.107626914978 1.133225798607 -0.140607297421 +v -0.110349178314 1.147431254387 -0.169585108757 +v -0.118245124817 1.140465259552 -0.188436806202 +v -0.112480401993 1.127350330353 -0.185356020927 +v -0.119234800339 1.154477119446 -0.179611444473 +v -0.122121334076 1.162646651268 -0.173162460327 +v -0.123259067535 1.147673130035 -0.192043066025 +v -0.307780742645 0.994723260403 -0.231847167015 +v -0.307749986649 0.993669688702 -0.231788516045 +v -0.306983709335 0.993704020977 -0.230996787548 +v -0.193033456802 1.081855773926 -0.203872740269 +v -0.194959878922 1.074067234993 -0.206613779068 +v -0.192106723785 1.074653506279 -0.197215080261 +v -0.189585685730 1.081505656242 -0.199741780758 +v -0.181468963623 1.087621688843 -0.203916847706 +v -0.182246923447 1.086801290512 -0.208190560341 +v -0.180797338486 1.080666303635 -0.200190067291 +v -0.238004446030 1.038412332535 -0.221756696701 +v -0.255303144455 1.040868282318 -0.221722602844 +v -0.259346246719 1.034848093987 -0.217119097710 +v -0.226242780685 1.046014308929 -0.223912119865 +v -0.243605136871 1.045503258705 -0.225179314613 +v -0.229806661606 1.033677101135 -0.221885204315 +v -0.128174781799 1.188377022743 -0.200627446175 +v -0.148290157318 1.179109573364 -0.194076895714 +v -0.271722316742 1.054550886154 -0.227642059326 +v -0.274076938629 1.049859046936 -0.228212535381 +v -0.270540475845 1.041400551796 -0.231285452843 +v -0.265389442444 1.048523783684 -0.231947541237 +v -0.279670238495 1.057693004608 -0.219425976276 +v -0.279539346695 1.051576972008 -0.220776438713 +v -0.275705814362 1.041727423668 -0.228427529335 +v -0.199706077576 1.055555105209 -0.210151553154 +v -0.194469451904 1.055464029312 -0.201491832733 +v -0.188562631607 1.062397480011 -0.194959938526 +v -0.193209409714 1.067214727402 -0.202750325203 +v -0.197559595108 1.061594724655 -0.212190330029 +v -0.199322462082 1.054384827614 -0.212732195854 +v -0.264539003372 1.034891843796 -0.224602222443 +v -0.264505386353 1.033686161041 -0.220391511917 +v -0.259446859360 1.043034553528 -0.228882968426 +v -0.253154993057 1.049899816513 -0.229087173939 +v -0.192896127701 1.083252668381 -0.207294523716 +v -0.205631494522 1.076366066933 -0.214735269547 +v -0.194759368896 1.084827780724 -0.212751626968 +v -0.223470926285 1.074144601822 -0.221447348595 +v -0.204793214798 1.086842775345 -0.216361939907 +v -0.216625213623 1.087888479233 -0.219625651836 +v -0.195574283600 1.087720632553 -0.216327428818 +v -0.220762968063 1.036061048508 -0.216470956802 +v -0.213054895401 1.035783767700 -0.213620066643 +v -0.201663494110 1.045588612556 -0.206914484501 +v -0.209848642349 1.043720960617 -0.214580178261 +v -0.216307878494 1.038053512573 -0.218539953232 +v -0.226351261139 1.035285830498 -0.218240320683 +v -0.205461740494 1.046299815178 -0.217294871807 +v -0.213101387024 1.042110800743 -0.219072997570 +v -0.220921278000 1.039087295532 -0.221290767193 +v -0.220387458801 1.042260169983 -0.223516404629 +v -0.213362932205 1.046354770660 -0.223494648933 +v -0.166803121567 1.090283155441 -0.212349832058 +v -0.172270536423 1.087766289711 -0.218560039997 +v -0.183573484421 1.086018800735 -0.212494730949 +v -0.167399406433 1.091666579247 -0.207822561264 +v -0.158848285675 1.093401670456 -0.218638300896 +v -0.162909030914 1.089765548706 -0.223327994347 +v -0.030130147934 1.186614990234 -0.177592396736 +v -0.028016805649 1.185017704964 -0.176330447197 +v -0.027128219604 1.182949185371 -0.177097141743 +v -0.030794620514 1.185065984726 -0.177214145660 +v -0.027263402939 1.185469865799 -0.176604092121 +v -0.029033184052 1.187615036964 -0.178278744221 +v -0.025565147400 1.183858990669 -0.176834225655 +v -0.026248216629 1.187106251717 -0.178503096104 +v -0.155820369720 1.101422905922 -0.208842039108 +v -0.143939018250 1.110964536667 -0.203809499741 +v -0.147772073746 1.116233944893 -0.210553169250 +v -0.153800964355 1.103918313980 -0.216478586197 +v -0.151521444321 1.110116600990 -0.224545180798 +v -0.153570175171 1.098989486694 -0.229076087475 +v -0.153712034225 1.098475694656 -0.221522092819 +v -0.143598556519 1.121090412140 -0.215590834618 +v -0.025197982788 1.179040908813 -0.178160905838 +v -0.028691530228 1.180666327477 -0.177641034126 +v -0.024049282074 1.180395364761 -0.178064346313 +v -0.023061275482 1.183145642281 -0.176922082901 +v -0.024633884430 1.187012076378 -0.180191814899 +v -0.022006034851 1.183752536774 -0.176543354988 +v -0.023281335831 1.181692600250 -0.177503108978 +v -0.041700124741 1.194597840309 -0.188832759857 +v -0.040053844452 1.195041775703 -0.191445589066 +v -0.038641691208 1.194105863571 -0.194117784500 +v -0.021546125412 1.184016108513 -0.178950071335 +v -0.023211956024 1.185567021370 -0.181426763535 +v -0.020884990692 1.182555675507 -0.179597258568 +v -0.155306577682 1.094101190567 -0.223596096039 +v -0.153067588806 1.095505952835 -0.230197072029 +v -0.024875402451 1.176557660103 -0.180157959461 +v -0.029001712799 1.177595734596 -0.180325567722 +v -0.022265434265 1.178601741791 -0.180594265461 +v -0.022731781006 1.183528065681 -0.182420313358 +v -0.129092454910 1.126704692841 -0.201514482498 +v -0.129842519760 1.138575315475 -0.203304290771 +v -0.140452623367 1.137107372284 -0.216508805752 +v -0.143960952759 1.126296997070 -0.219137907028 +v -0.154357194901 1.127161264420 -0.228255271912 +v -0.149726629257 1.136419534683 -0.223747491837 +v -0.174418687820 1.142764806747 -0.223434805870 +v -0.169390678406 1.132646441460 -0.235435843468 +v -0.159634113312 1.138588905334 -0.227177619934 +v -0.183374881744 1.151468753815 -0.210604786873 +v -0.202531337738 1.122591972351 -0.235654771328 +v -0.174713850021 1.123547434807 -0.239896833897 +v -0.026677846909 1.177809119225 -0.182901620865 +v -0.028857231140 1.177586197853 -0.182363390923 +v -0.180840730667 1.098434567451 -0.228965997696 +v -0.177192926407 1.093732595444 -0.232580184937 +v -0.174651861191 1.104560375214 -0.238290369511 +v -0.178368806839 1.106090188026 -0.233393609524 +v -0.168076038361 1.097283363342 -0.234453976154 +v -0.169014692307 1.107891798019 -0.237803101540 +v -0.176104545593 1.089681625366 -0.227148771286 +v -0.167286634445 1.091750741005 -0.230993151665 +v -0.157043457031 1.091841936111 -0.227160215378 +v -0.159157276154 1.091518163681 -0.229555249214 +v -0.155268907547 1.095846176147 -0.231792688370 +v -0.160398960114 1.094118118286 -0.232700586319 +v -0.161424636841 1.113683462143 -0.233527243137 +v -0.153696537018 1.112774372101 -0.227253794670 +v -0.160377740860 1.100663542747 -0.232878029346 +v -0.155321598053 1.101318359375 -0.229982614517 +v -0.129415988922 1.121230006218 -0.195909500122 +v -0.115429162979 1.119397759438 -0.179361224174 +v -0.130902051926 1.117012500763 -0.191515922546 +v -0.115962266922 1.118604898453 -0.176315546036 +v -0.110272169113 1.120705842972 -0.160776674747 +v -0.113960504532 1.119729280472 -0.159553110600 +v -0.120643854141 1.123042941093 -0.142679691315 +v -0.116504192352 1.124894142151 -0.141778171062 +v -0.116237640381 1.119012355804 -0.159137606621 +v -0.121575117111 1.122238159180 -0.143324553967 +v -0.133432149887 1.123821258545 -0.128500640392 +v -0.129076957703 1.126407384872 -0.125177204609 +v -0.133791923523 1.122404217720 -0.126223802567 +v -0.151261806488 1.118286848068 -0.116750955582 +v -0.150382995605 1.123445391655 -0.118158876896 +v -0.165156841278 1.112223029137 -0.114312648773 +v -0.168798208237 1.119785189629 -0.114506125450 +v -0.146946668625 1.111286401749 -0.115677714348 +v -0.159301757813 1.103829860687 -0.112823069096 +v -0.169470071793 1.095391631126 -0.113259613514 +v -0.176546573639 1.104174375534 -0.116012811661 +v -0.181593179703 1.086678743362 -0.119435906410 +v -0.187299728394 1.095249652863 -0.122014880180 +v -0.192334890366 1.079224348068 -0.132685303688 +v -0.196459770203 1.086544990540 -0.133203148842 +v -0.167187929153 1.093284368515 -0.118592262268 +v -0.158042192459 1.100373268127 -0.117775142193 +v -0.177332639694 1.085744619370 -0.124823093414 +v -0.188689470291 1.078408122063 -0.135257482529 +v -0.133802890778 1.114060878754 -0.127829909325 +v -0.147693157196 1.107499122620 -0.121569573879 +v -0.130974292755 1.116622328758 -0.124757289886 +v -0.118712902069 1.116385936737 -0.142161726952 +v -0.114444732666 1.114831447601 -0.156344830990 +v -0.116871118546 1.115381836891 -0.173745512962 +v -0.127918481827 1.112462520599 -0.189754128456 +v -0.140444517136 1.105615377426 -0.201572239399 +v -0.153226137161 1.096442341805 -0.206420838833 +v -0.166574478149 1.087847948074 -0.204887628555 +v -0.148325681686 1.084455490112 -0.202776551247 +v -0.132059097290 1.095326542854 -0.197568535805 +v -0.118970394135 1.104256153107 -0.183249711990 +v -0.113605022430 1.110781550407 -0.171092212200 +v -0.119467735291 1.110980629921 -0.156059205532 +v -0.118595600128 1.107293367386 -0.167004108429 +v -0.122451543808 1.113593697548 -0.145232379436 +v -0.123160123825 1.101921558380 -0.179320454597 +v -0.134120464325 1.093572258949 -0.190831780434 +v -0.149135828018 1.083696126938 -0.196358323097 +v -0.164771795273 1.075974822044 -0.199542462826 +v -0.178263664246 1.069347739220 -0.194986939430 +v -0.178308486938 1.067918300629 -0.193336069584 +v -0.187574863434 1.061674833298 -0.193846702576 +v -0.165014982224 1.074935913086 -0.195628762245 +v -0.203114748001 1.047059774399 -0.203367710114 +v -0.194963455200 1.055162310600 -0.198111474514 +v -0.211767911911 1.036029338837 -0.208810448647 +v -0.212155818939 1.037373661995 -0.206103205681 +v -0.226508617401 1.025479078293 -0.212446689606 +v -0.223773002625 1.027394175529 -0.209277987480 +v -0.234503984451 1.028979897499 -0.212858796120 +v -0.240490436554 1.019392728806 -0.204267203808 +v -0.244890213013 1.018656373024 -0.196853935719 +v -0.253900766373 1.026709318161 -0.190710783005 +v -0.246401309967 1.020783185959 -0.188246011734 +v -0.252592563629 1.030183553696 -0.180509030819 +v -0.245979547501 1.024557352066 -0.179143786430 +v -0.256746768951 1.027064442635 -0.190641164780 +v -0.255533695221 1.030755162239 -0.181877255440 +v -0.261640310287 1.031444549561 -0.191453814507 +v -0.259487628937 1.033203363419 -0.183249652386 +v -0.265381097794 1.035956144333 -0.193069219589 +v -0.262969732285 1.038062810898 -0.186465203762 +v -0.266802787781 1.033626079559 -0.198642969131 +v -0.266010284424 1.031839489937 -0.204385280609 +v -0.270675420761 1.031339287758 -0.205536782742 +v -0.263313770294 1.031893968582 -0.211139619350 +v -0.266834974289 1.031145095825 -0.212556302547 +v -0.272355556488 1.027421116829 -0.214405179024 +v -0.271020889282 1.027558326721 -0.222151696682 +v -0.277619600296 1.026623606682 -0.207558810711 +v -0.287308216095 1.017905473709 -0.209584236145 +v -0.281747341156 1.017393589020 -0.217522501945 +v -0.290399074554 1.018112540245 -0.206793189049 +v -0.296507358551 1.008396148682 -0.213786959648 +v -0.293893098831 1.008637905121 -0.215864181519 +v -0.293311119080 1.018383622169 -0.204794526100 +v -0.298957824707 1.008759021759 -0.211997389793 +v -0.304624319077 1.000485181808 -0.218563914299 +v -0.302252292633 1.000493049622 -0.219046711922 +v -0.300442457199 1.010485529900 -0.212966322899 +v -0.295816421509 1.020895838737 -0.206146836281 +v -0.304791212082 1.002254843712 -0.220315814018 +v -0.298930644989 1.011639118195 -0.215272247791 +v -0.294509649277 1.021376132965 -0.208923101425 +v -0.305289983749 0.996663510799 -0.231430888176 +v -0.299525260925 1.002564072609 -0.230026721954 +v -0.304598808289 0.995765805244 -0.231520950794 +v -0.298396825790 1.001657962799 -0.230945348740 +v -0.303261518478 0.995977520943 -0.230365991592 +v -0.297660827637 1.000682115555 -0.229683041573 +v -0.297706365585 1.000391125679 -0.228264808655 +v -0.289501190186 1.008563995361 -0.227962017059 +v -0.289624452591 1.008912801743 -0.230370998383 +v -0.289333820343 1.008850455284 -0.225851535797 +v -0.279825210571 1.017765641212 -0.226271927357 +v -0.280007839203 1.018149375916 -0.228962600231 +v -0.279944658279 1.017497062683 -0.223519802094 +v -0.270844221115 1.027772903442 -0.226072430611 +v -0.271415948868 1.028410196304 -0.229272961617 +v -0.265730381012 1.036768198013 -0.229641437531 +v -0.273293256760 1.029914379120 -0.231202602386 +v -0.281020164490 1.019194722176 -0.231097579002 +v -0.275867462158 1.031501293182 -0.230385065079 +v -0.282980203629 1.020815610886 -0.230529665947 +v -0.276958703995 1.032087326050 -0.227720260620 +v -0.283688306808 1.021362662315 -0.227996766567 +v -0.275023937225 1.041705608368 -0.224775314331 +v -0.277465105057 1.049158096313 -0.218947708607 +v -0.292066335678 1.011417031288 -0.228806972504 +v -0.291158199310 1.010475993156 -0.230765581131 +v -0.289323091507 1.031211256981 -0.203581392765 +v -0.290323972702 1.031991720200 -0.200689315796 +v -0.239644289017 1.023190736771 -0.194890260696 +v -0.243260860443 1.023399710655 -0.188031911850 +v -0.234212636948 1.023423552513 -0.201564133167 +v -0.236090183258 1.021491050720 -0.202814877033 +v -0.199890851974 1.066753745079 -0.155146598816 +v -0.198434829712 1.067134857178 -0.156990110874 +v -0.202668666840 1.063336849213 -0.159977316856 +v -0.203597068787 1.063326001167 -0.157728374004 +v -0.194704532623 1.071926832199 -0.149038195610 +v -0.198426008224 1.071671962738 -0.146451592445 +v -0.204805612564 1.071662425995 -0.154704451561 +v -0.202652454376 1.077832579613 -0.147649407387 +v -0.199759483337 1.090992927551 -0.134201765060 +v -0.193034887314 1.103491783142 -0.123884439468 +v -0.185172319412 1.115739107132 -0.117173492908 +v -0.169998168945 1.124291777611 -0.114598035812 +v -0.171854734421 1.130073547363 -0.107446432114 +v -0.148004770279 1.133014440536 -0.109064579010 +v -0.149436950684 1.126783370972 -0.117963194847 +v -0.150363683701 1.141389131546 -0.109232008457 +v -0.129365682602 1.151356697083 -0.121360957623 +v -0.122787952423 1.133342862129 -0.118729412556 +v -0.155005455017 1.151965379715 -0.112209022045 +v -0.138591766357 1.161190986633 -0.122988164425 +v -0.160556554794 1.158395051956 -0.114823222160 +v -0.147845268250 1.166557192802 -0.123666226864 +v -0.164972066879 1.160841345787 -0.116209328175 +v -0.178743362427 1.155038595200 -0.107457756996 +v -0.193982124329 1.154866933823 -0.105260729790 +v -0.203804731369 1.162194013596 -0.107664465904 +v -0.203792333603 1.170711994171 -0.114600837231 +v -0.206958532333 1.165179967880 -0.118471503258 +v -0.199360370636 1.174407482147 -0.126586496830 +v -0.196566343307 1.177967667580 -0.121480822563 +v -0.211217403412 1.155824661255 -0.123464763165 +v -0.203953742981 1.165765166283 -0.134148895741 +v -0.217429161072 1.159095644951 -0.144569456577 +v -0.199710369110 1.170780539513 -0.160428583622 +v -0.189121007919 1.175161838531 -0.143832862377 +v -0.234441280365 1.145398378372 -0.158812522888 +v -0.208461523056 1.159196853638 -0.180670976639 +v -0.252185583115 1.116116285324 -0.170371294022 +v -0.254233121872 1.105154395103 -0.180382847786 +v -0.260434627533 1.096214771271 -0.185628652573 +v -0.256431102753 1.092083334923 -0.177367925644 +v -0.260645627975 1.097700595856 -0.194319903851 +v -0.270902156830 1.083015918732 -0.199528574944 +v -0.269893407822 1.081749439240 -0.189446091652 +v -0.256181478500 1.098464727402 -0.206231713295 +v -0.266798496246 1.083191156387 -0.212066352367 +v -0.273687601089 1.068179607391 -0.216568171978 +v -0.278900146484 1.067694902420 -0.202702641487 +v -0.258903264999 1.083254337311 -0.220462024212 +v -0.247154474258 1.097606897354 -0.216386973858 +v -0.265223979950 1.066669940948 -0.225265324116 +v -0.269017219543 1.059843063354 -0.226757824421 +v -0.277544975281 1.061369776726 -0.218553006649 +v -0.256574153900 1.063487887383 -0.228868722916 +v -0.250155687332 1.081251740456 -0.223481357098 +v -0.261117696762 1.055521845818 -0.231173992157 +v -0.248385906219 1.057556748390 -0.228811144829 +v -0.238748550415 1.076548695564 -0.223608195782 +v -0.234692811966 1.056388735771 -0.223354101181 +v -0.211627244949 1.056368947029 -0.221282124519 +v -0.228275060654 1.091947317123 -0.220990777016 +v -0.238418102264 1.094660639763 -0.219326555729 +v -0.216057777405 1.107417821884 -0.225473523140 +v -0.224503517151 1.109220266342 -0.227116346359 +v -0.211361885071 1.098301529884 -0.220512151718 +v -0.212726354599 1.104912161827 -0.221194267273 +v -0.207950830460 1.100727200508 -0.218157291412 +v -0.203674316406 1.092759370804 -0.219182014465 +v -0.202742576599 1.096199750900 -0.218188643456 +v -0.196501970291 1.090510606766 -0.218953371048 +v -0.196993589401 1.093491673470 -0.220363080502 +v -0.187599182129 1.091245770454 -0.224233686924 +v -0.188641786575 1.095030307770 -0.223733663559 +v -0.186239719391 1.088770151138 -0.220787882805 +v -0.185178756714 1.086016893387 -0.216318964958 +v -0.174246788025 1.087175607681 -0.223291456699 +v -0.165641307831 1.089258909225 -0.227088153362 +v -0.211334466934 1.109454154968 -0.224141299725 +v -0.196863412857 1.116337895393 -0.232053399086 +v -0.198950290680 1.117026805878 -0.234745264053 +v -0.180886983871 1.115268468857 -0.233694016933 +v -0.180615663528 1.115485668182 -0.236742198467 +v -0.177260398865 1.118756055832 -0.240124464035 +v -0.201287984848 1.117602467537 -0.238141715527 +v -0.282895326614 1.060189247131 -0.204914152622 +v -0.282418012619 1.057005047798 -0.194644689560 +v -0.277503967285 1.065804839134 -0.192061483860 +v -0.270702600479 1.064300417900 -0.181479215622 +v -0.276010751724 1.054841160774 -0.184064984322 +v -0.264964342117 1.078153371811 -0.180190920830 +v -0.254631042480 1.068855047226 -0.170619845390 +v -0.259245395660 1.057962894440 -0.174149036407 +v -0.248440742493 1.082378029823 -0.167859196663 +v -0.239177227020 1.074390888214 -0.160453259945 +v -0.243740320206 1.063062429428 -0.160507678986 +v -0.249438762665 1.055111646652 -0.162672996521 +v -0.241800546646 1.051291108131 -0.157198011875 +v -0.245920419693 1.046977758408 -0.160051584244 +v -0.247624635696 1.043250799179 -0.161501169205 +v -0.185623407364 1.163547277451 -0.191922187805 +v -0.178851366043 1.168696165085 -0.170140326023 +v -0.171039104462 1.162240505219 -0.197747766972 +v -0.167164564133 1.171891689301 -0.179815948009 +v -0.169514179230 1.153752446175 -0.212879836559 +v -0.163647174835 1.155890226364 -0.217210114002 +v -0.164894342422 1.163555622101 -0.203335464001 +v -0.162951707840 1.147874236107 -0.221974015236 +v -0.158002376556 1.151909351349 -0.223278760910 +v -0.154706716537 1.144289135933 -0.224242210388 +v -0.152066946030 1.148701906204 -0.224407970905 +v -0.146767616272 1.142306327820 -0.221583485603 +v -0.143728017807 1.146293640137 -0.221992492676 +v -0.138458013535 1.141785860062 -0.215267539024 +v -0.135710000992 1.144933223724 -0.215805530548 +v -0.130891323090 1.143802881241 -0.204370617867 +v -0.129570007324 1.146505594254 -0.206188857555 +v -0.125153064728 1.151684284210 -0.194277405739 +v -0.120690345764 1.156343221664 -0.196658849716 +v -0.123557567596 1.151302337646 -0.207581400871 +v -0.123983860016 1.158541202545 -0.182885527611 +v -0.120908975601 1.161676406860 -0.185635268688 +v -0.127824783325 1.167345404625 -0.175681769848 +v -0.122528076172 1.169641494751 -0.178976297379 +v -0.113455295563 1.165868759155 -0.187700688839 +v -0.108748197556 1.163328170776 -0.198548078537 +v -0.110469579697 1.173360347748 -0.185494899750 +v -0.091323852539 1.179773807526 -0.191483795643 +v -0.090184450150 1.176342606544 -0.194954812527 +v -0.111765384674 1.178711295128 -0.185415387154 +v -0.092939138412 1.184199452400 -0.190637469292 +v -0.113289833069 1.182440042496 -0.187966227531 +v -0.095153093338 1.187181711197 -0.191652655602 +v -0.073956251144 1.192005038261 -0.192678928375 +v -0.073637962341 1.188065290451 -0.191455483437 +v -0.099256277084 1.190625190735 -0.194961786270 +v -0.073813676834 1.195713639259 -0.195692181587 +v -0.096777915955 1.196445703506 -0.206112921238 +v -0.072917699814 1.198483467102 -0.200721621513 +v -0.095563650131 1.196424365044 -0.214924454689 +v -0.071158885956 1.198626756668 -0.206956505775 +v -0.129826784134 1.190738201141 -0.212317109108 +v -0.157343387604 1.172712326050 -0.208674550056 +v -0.128477811813 1.186428785324 -0.221658170223 +v -0.093955516815 1.193287849426 -0.221389353275 +v -0.154647350311 1.168583154678 -0.219737291336 +v -0.149827718735 1.162814021111 -0.225700199604 +v -0.124877214432 1.179793953896 -0.226911485195 +v -0.144460201263 1.156676888466 -0.227152824402 +v -0.120687484741 1.171841144562 -0.228286266327 +v -0.139381647110 1.150594115257 -0.223807334900 +v -0.117116689682 1.165078282356 -0.225237190723 +v -0.128769636154 1.149663209915 -0.217538893223 +v -0.111747980118 1.161472201347 -0.217855334282 +v -0.109767198563 1.161700129509 -0.209116935730 +v -0.088203907013 1.172519445419 -0.211088180542 +v -0.088263034821 1.173820972443 -0.218165874481 +v -0.089234113693 1.173993110657 -0.201246440411 +v -0.071101665497 1.179669737816 -0.199828505516 +v -0.069531917572 1.179702758789 -0.205872833729 +v -0.072219848633 1.181545853615 -0.195242881775 +v -0.056831598282 1.183016300201 -0.193188905716 +v -0.055566310883 1.181527018547 -0.196716129780 +v -0.073021411896 1.184370517731 -0.192374467850 +v -0.057552337646 1.185418963432 -0.190718352795 +v -0.057724237442 1.188611626625 -0.189705491066 +v -0.045343875885 1.186881065369 -0.185175061226 +v -0.045280933380 1.183866500854 -0.186353206635 +v -0.057383060455 1.192056655884 -0.190340936184 +v -0.044640541077 1.190080165863 -0.185317754745 +v -0.056554079056 1.195130228996 -0.192540347576 +v -0.043342113495 1.192810654640 -0.186669468880 +v -0.055220603943 1.197255134583 -0.196023941040 +v -0.053610086441 1.197649002075 -0.200031757355 +v -0.052100419998 1.196197032928 -0.203523576260 +v -0.069370269775 1.196292161942 -0.211897075176 +v -0.068021297455 1.192861676216 -0.214833736420 +v -0.050945520401 1.193327188492 -0.205915927887 +v -0.092361450195 1.188226699829 -0.224879384041 +v -0.090728044510 1.182599067688 -0.225352346897 +v -0.067334413528 1.188707113266 -0.215543806553 +v -0.089248895645 1.177467584610 -0.223018467426 +v -0.067439317703 1.184669256210 -0.214068412781 +v -0.068172216415 1.181514143944 -0.210815250874 +v -0.052105903625 1.183036804199 -0.204133033752 +v -0.050871849060 1.185964107513 -0.206329762936 +v -0.053818464279 1.181404590607 -0.200728774071 +v -0.041506052017 1.180616259575 -0.193893551826 +v -0.039731979370 1.182307600975 -0.196195423603 +v -0.043209075928 1.180416822433 -0.191138744354 +v -0.044537305832 1.181544065475 -0.188471496105 +v -0.031432151794 1.183127760887 -0.177642107010 +v -0.023880004883 1.179421424866 -0.182783424854 +v -0.023120403290 1.181398153305 -0.182788312435 +v -0.038379907608 1.185227513313 -0.197383880615 +v -0.021365642548 1.180629491806 -0.180217981339 +v -0.037654399872 1.188567876816 -0.197493553162 +v -0.037757396698 1.191774725914 -0.196288704872 +v -0.050418376923 1.189674615860 -0.206975281239 +v -0.158075809479 1.171878576279 -0.187048196793 +v -0.184828758240 1.181181192398 -0.133212804794 +v -0.183850765228 1.183899402618 -0.127866744995 +v -0.169936895370 1.187874436378 -0.131015658379 +v -0.160047531128 1.187471389771 -0.131462752819 +v -0.157574653625 1.192477464676 -0.129109740257 +v -0.170529127121 1.193306446075 -0.127960264683 +v -0.157630920410 1.193547725677 -0.127042472363 +v -0.168020248413 1.194449782372 -0.126551985741 +v -0.155678272247 1.197181582451 -0.117395758629 +v -0.168904304504 1.200421571732 -0.116072595119 +v -0.177747726440 1.199375391006 -0.109128236771 +v -0.186355590820 1.196253895760 -0.100548923016 +v -0.188017368317 1.190521001816 -0.119188547134 +v -0.194039821625 1.188312888145 -0.112169504166 +v -0.203054904938 1.179349541664 -0.106702864170 +v -0.192745685577 1.189022660255 -0.093927919865 +v -0.195131540298 1.185600280762 -0.119000375271 +v -0.185272932053 1.190236568451 -0.123825550079 +v -0.202980279922 1.177518606186 -0.111484885216 +v -0.206887245178 1.169745087624 -0.105333983898 +v -0.206416130066 1.174813270569 -0.101252019405 +v -0.199194669724 1.162851572037 -0.099504411221 +v -0.197700738907 1.180861234665 -0.091671824455 +v -0.150561571121 1.174575209618 -0.132039248943 +v -0.209591627121 1.058356404305 -0.160460770130 +v -0.217305183411 1.052603721619 -0.160649895668 +v -0.238281965256 1.033112168312 -0.170957684517 +v -0.244051933289 1.025660991669 -0.180232465267 +v -0.239808082581 1.032481074333 -0.169264376163 +v -0.232315063477 1.036808967590 -0.161297738552 +v -0.230905294418 1.037472367287 -0.163685441017 +v -0.225137472153 1.044082164764 -0.158028185368 +v -0.223443984985 1.044231295586 -0.160395681858 +v -0.223054885864 1.028931379318 -0.207141757011 +v -0.210240125656 1.094408273697 -0.117802858353 +v -0.226145267487 1.091406583786 -0.144528210163 +v -0.228773593903 1.093539595604 -0.144238770008 +v -0.229978561401 1.091392636299 -0.150956988335 +v -0.231330394745 1.094696521759 -0.150297284126 +v -0.228517770767 1.097494721413 -0.144955992699 +v -0.229495048523 1.099721908569 -0.131893873215 +v -0.229601860046 1.105694532394 -0.127975225449 +v -0.230824470520 1.112782955170 -0.126599431038 +v -0.231130123138 1.112404465675 -0.120916366577 +v -0.238191127777 1.121705651283 -0.135489940643 +v -0.240043640137 1.121748328209 -0.132544755936 +v -0.242587566376 1.117125391960 -0.144999742508 +v -0.246487855911 1.119711399078 -0.144290924072 +v -0.241481542587 1.113143205643 -0.153935611248 +v -0.245183229446 1.112014532089 -0.156490027905 +v -0.238260984421 1.105642080307 -0.157133936882 +v -0.240424156189 1.103380203247 -0.159065842628 +v -0.233463764191 1.100573539734 -0.154703736305 +v -0.235453605652 1.097964048386 -0.155216693878 +v -0.235904932022 1.095326662064 -0.155326545238 +v -0.230455398560 1.097877264023 -0.150153517723 +v -0.249421119690 1.121675491333 -0.144378840923 +v -0.240281105042 1.124884128571 -0.131052792072 +v -0.227780818939 1.113982677460 -0.117298245430 +v -0.130397796631 1.182343721390 -0.076600074768 +v -0.129862308502 1.183777570724 -0.072378516197 +v -0.136162042618 1.179548740387 -0.069244503975 +v -0.137062549591 1.183297991753 -0.068274199963 +v -0.133409261703 1.184647083282 -0.072437226772 +v -0.144817352295 1.180659770966 -0.065627694130 +v -0.142683744431 1.184700131416 -0.066475808620 +v -0.271175146103 1.039876699448 -0.190005302429 +v -0.301822423935 1.001146674156 -0.225157797337 +v 0.040446281433 1.266857385635 0.129650652409 +v 0.045840978622 1.267236709595 0.128639698029 +v 0.042178869247 1.272785186768 0.116086125374 +v 0.035976171494 1.262238383293 0.125946938992 +v -0.000801801682 1.292400956154 0.102130472660 +v -0.000761747360 1.303220987320 0.093628942966 +v 0.015448331833 1.314785122871 0.084255039692 +v 0.030528545380 1.315371155739 0.082960784435 +v 0.019721984863 1.301102638245 0.098109424114 +v 0.034617424011 1.303159475327 0.095117151737 +v -0.001373052597 1.277826786041 0.111266195774 +v -0.001722097397 1.284371614456 0.109198451042 +v 0.011536121368 1.282118082047 0.111050844193 +v 0.009827852249 1.276010155678 0.111163258553 +v 0.008899927139 1.272522568703 0.108775258064 +v 0.007982730865 1.269812107086 0.108590006828 +v -0.013120889664 1.280258178711 0.103836178780 +v -0.013952493668 1.287459611893 0.096029043198 +v -0.010375499725 1.274148821831 0.106453537941 +v -0.007061481476 1.270083665848 0.105696380138 +v 0.000071287155 1.273618578911 0.108782231808 +v -0.005353450775 1.267195701599 0.105669260025 +v -0.003715276718 1.265943884850 0.104040384293 +v -0.004131793976 1.253381729126 0.104748189449 +v -0.003669261932 1.256071329117 0.105417490005 +v -0.002878904343 1.257432699203 0.105259358883 +v -0.013543844223 1.267071247101 0.099097788334 +v -0.009968519211 1.265434265137 0.100078165531 +v -0.008393764496 1.263895630836 0.101276814938 +v -0.006794929504 1.262893676758 0.101056635380 +v -0.010854721069 1.252157211304 0.098580598831 +v -0.008997440338 1.255574226379 0.100211143494 +v -0.010912179947 1.258270978928 0.096816718578 +v -0.011093616486 1.261292099953 0.096696496010 +v -0.007898807526 1.257424354553 0.101626813412 +v -0.009550809860 1.259004950523 0.098516225815 +v -0.009840488434 1.260907649994 0.098658919334 +v -0.006556272507 1.258249044418 0.101993978024 +v -0.008103132248 1.259290218353 0.099143624306 +v -0.008106708527 1.260651588440 0.098746120930 +v 0.000634908676 1.269962787628 0.108458042145 +v 0.001318454742 1.268399953842 0.106259763241 +v 0.007476329803 1.268658280373 0.106844902039 +v 0.003443002701 1.252889513969 0.108284533024 +v 0.002853155136 1.255975246429 0.108673334122 +v 0.002923965454 1.257455945015 0.107795357704 +v 0.011467933655 1.255045294762 0.108669996262 +v 0.009955406189 1.257626056671 0.108927190304 +v 0.009441614151 1.258421897888 0.107399821281 +v 0.014464855194 1.289756536484 0.104732036591 +v 0.025943517685 1.283508300781 0.107297778130 +v 0.039303779602 1.279110550880 0.106710374355 +v 0.036115169525 1.278290748596 0.107457518578 +v 0.042536735535 1.278733968735 0.105807304382 +v 0.030768871307 1.288198709488 0.104064941406 +v 0.037350654602 1.289890766144 0.102047562599 +v 0.032482862473 1.275633811951 0.108351588249 +v 0.028729915619 1.263514757156 0.113653242588 +v 0.018857955933 1.271643638611 0.108702600002 +v 0.016063928604 1.269024133682 0.106653332710 +v 0.028270483017 1.270699024200 0.108028233051 +v 0.022220373154 1.277044057846 0.110479056835 +v 0.019372463226 1.258092880249 0.110031247139 +v 0.023556232452 1.262869477272 0.107618689537 +v 0.035057067871 1.268901348114 0.115687489510 +v 0.039037466049 1.272062182426 0.116605579853 +v 0.014039754868 1.267450094223 0.106931269169 +v 0.012716054916 1.266707539558 0.106147646904 +v 0.017132282257 1.259011745453 0.106750369072 +v 0.020047903061 1.262408375740 0.104903697968 +v 0.019694805145 1.265416860580 0.105079472065 +v 0.017275571823 1.264821529388 0.105033516884 +v 0.017734289169 1.262517094612 0.104454278946 +v 0.015003919601 1.260491371155 0.107061386108 +v 0.015677213669 1.264597892761 0.104555845261 +v 0.016396999359 1.262519359589 0.103408336639 +v 0.014380216599 1.260196924210 0.104527294636 +v 0.023535966873 1.267078399658 0.106167256832 +v -0.012151002884 1.235135316849 0.109545886517 +v -0.016305923462 1.224170684814 0.110445380211 +v -0.010377168655 1.200674295425 0.124419331551 +v -0.006423950195 1.185832023621 0.138172209263 +v -0.010899543762 1.192893743515 0.129531621933 +v -0.017629623413 1.210340738297 0.107257723808 +v -0.026541233063 1.185374736786 0.118990361691 +v -0.022340297699 1.197549104691 0.109548330307 +v 0.035350084305 1.248472332954 0.142883300781 +v 0.051932334900 1.253603696823 0.148347139359 +v 0.041118383408 1.258031487465 0.142182707787 +v 0.049641847610 1.260149955750 0.141103088856 +v 0.044825792313 1.252733945847 0.148908674717 +v 0.042319774628 1.246564269066 0.148949384689 +v 0.041991710663 1.241669535637 0.144866228104 +v 0.052286386490 1.246867418289 0.148005247116 +v 0.051711082458 1.241842269897 0.144327402115 +v 0.035593986511 1.255735874176 0.134251892567 +v 0.029677391052 1.244845509529 0.136716425419 +v 0.033319473267 1.250971555710 0.137745916843 +v 0.031243801117 1.242845058441 0.136967241764 +v 0.030688762665 1.256210803986 0.122289538383 +v 0.030338525772 1.250825643539 0.129136621952 +v 0.028740406036 1.247478961945 0.134274959564 +v 0.033815860748 1.242522120476 0.134662628174 +v 0.036343336105 1.243577361107 0.131516873837 +v 0.035639047623 1.243583917618 0.141259193420 +v 0.038025856018 1.243572592735 0.136724710464 +v 0.038744688034 1.229243755341 0.136170148849 +v 0.024222373962 1.241967678070 0.129807054996 +v 0.026626348495 1.240379929543 0.132212758064 +v 0.025287628174 1.233862161636 0.128705739975 +v 0.029455423355 1.240218400955 0.133426547050 +v 0.032053232193 1.237096786499 0.129116058350 +v 0.032113552094 1.241108894348 0.132747650146 +v 0.035292625427 1.241956233978 0.129371285439 +v 0.030912876129 1.229870319366 0.131015717983 +v 0.030648946762 1.224499464035 0.134449362755 +v 0.044306993484 1.238245844841 0.135809302330 +v 0.043252468109 1.240461349487 0.139098584652 +v 0.042135715485 1.240919113159 0.133995532990 +v 0.041716814041 1.241783857346 0.135482788086 +v 0.039429187775 1.243738889694 0.133056044579 +v 0.050420999527 1.240142822266 0.139068543911 +v 0.044756889343 1.234812498093 0.136098802090 +v 0.045078516006 1.231711387634 0.137417495251 +v 0.049524068832 1.238426923752 0.135339796543 +v 0.049675464630 1.235311508179 0.135039925575 +v 0.049990892410 1.232141256332 0.135455429554 +v 0.050583839417 1.228020906448 0.136361002922 +v 0.039813756943 1.238145470619 0.129698514938 +v 0.039825677872 1.242085576057 0.130345582962 +v 0.038737535477 1.233376264572 0.133297681808 +v 0.021462440491 1.217258930206 0.132264912128 +v 0.022056579590 1.212752580643 0.133517026901 +v 0.018235683441 1.205214858055 0.139099240303 +v 0.020352602005 1.209083795547 0.136137485504 +v 0.026568651199 1.202765941620 0.148095548153 +v 0.023966073990 1.192803263664 0.152344107628 +v 0.016592502594 1.199261784554 0.141214609146 +v 0.012834787369 1.191551685333 0.144409120083 +v 0.037743806839 1.215576529503 0.149055123329 +v 0.045881509781 1.225828409195 0.145537972450 +v 0.052435159683 1.227740526199 0.144624948502 +v 0.046445846558 1.218936204910 0.150274634361 +v 0.053923368454 1.220834851265 0.149113297462 +v 0.037250757217 1.206232309341 0.152749001980 +v 0.035874843597 1.194463729858 0.157640993595 +v 0.046791553497 1.196104288101 0.159853577614 +v 0.056510210037 1.197567701340 0.158931136131 +v 0.046874284744 1.208952426910 0.154512763023 +v 0.055248498917 1.210875630379 0.153577446938 +v 0.029203891754 1.216282963753 0.141427814960 +v 0.038281440735 1.222136378288 0.144550740719 +v 0.039469957352 1.224807739258 0.138187825680 +v 0.027691841125 1.210708260536 0.145226716995 +v 0.031136751175 1.219664812088 0.136600375175 +v 0.045809268951 1.227646589279 0.138405919075 +v 0.014129638672 1.249409794807 0.115332782269 +v 0.012882471085 1.252357363701 0.110826134682 +v 0.003088235855 1.244774341583 0.113203525543 +v 0.015806198120 1.243852615356 0.119367957115 +v 0.002343654633 1.237422823906 0.117558121681 +v 0.001748561859 1.226236939430 0.122058868408 +v 0.018728971481 1.236750602722 0.120574116707 +v 0.013330936432 1.222983598709 0.124980926514 +v 0.020515918732 1.223115921021 0.129145741463 +v -0.008113384247 1.243763685226 0.107061862946 +v -0.005330562592 1.249330997467 0.104984104633 +v 0.003616333008 1.249160528183 0.109515726566 +v 0.024304866791 1.250104308128 0.120198249817 +v 0.023406744003 1.245513081551 0.126008749008 +v 0.022205352783 1.255663037300 0.115017294884 +v 0.022286176682 1.233654975891 0.123781740665 +v 0.005661487579 1.202055335045 0.129107356071 +v -0.006587982178 1.211276650429 0.122517585754 +v 0.004577875137 1.210666298866 0.126435041428 +v 0.000176429749 1.201238393784 0.127685189247 +v 0.010596990585 1.210288167000 0.128963351250 +v 0.011595726013 1.201239705086 0.133424997330 +v 0.008545637131 1.200110793114 0.130007266998 +v 0.008605241776 1.202653884888 0.129701614380 +v 0.013861179352 1.203346967697 0.131477773190 +v 0.010287761688 1.201593160629 0.130020737648 +v 0.010378360748 1.202918767929 0.129963099957 +v 0.013339757919 1.208619117737 0.130371451378 +v 0.014328479767 1.206321358681 0.130973219872 +v 0.004492282867 1.192520976067 0.136268198490 +v 0.005780458450 1.198042392731 0.130144894123 +v 0.000226497650 1.195833086967 0.130556583405 +v 0.009120702744 1.197683811188 0.134836256504 +v -0.030488014221 1.283267021179 0.061819374561 +v -0.020040273666 1.274581432343 0.086394488811 +v -0.024308919907 1.279701232910 0.074724912643 +v -0.023217916489 1.261051177979 0.081465482712 +v -0.028754949570 1.261417388916 0.070602059364 +v -0.036482095718 1.283128738403 0.047661483288 +v -0.035109758377 1.260555624962 0.058661758900 +v -0.041009902954 1.257912158966 0.046594083309 +v -0.021064043045 1.302900314331 0.072026371956 +v -0.003322601318 1.312586545944 0.080484449863 +v -0.016522645950 1.296046495438 0.085470199585 +v -0.025208473206 1.303212285042 0.054149925709 +v -0.007358551025 1.313477158546 0.060375809669 +v 0.010043859482 1.317523241043 0.063381493092 +v 0.024682044983 1.319341421127 0.062246799469 +v -0.017404079437 1.270059585571 0.095172524452 +v -0.018391847610 1.253546833992 0.091046571732 +v -0.013947963715 1.256553530693 0.094790697098 +v -0.014717340469 1.261037349701 0.094909310341 +v -0.018908500671 1.260896086693 0.090010643005 +v -0.020776271820 1.238931417465 0.095742464066 +v -0.023503780365 1.249016761780 0.084496319294 +v -0.025747776031 1.229195833206 0.091487228870 +v -0.028454780579 1.243663668633 0.075471043587 +v -0.028841972351 1.217222690582 0.085641384125 +v -0.036760330200 1.200345516205 0.081055641174 +v -0.043103218079 1.175856351852 0.098108768463 +v -0.034443616867 1.237311244011 0.066220164299 +v -0.040151596069 1.230180382729 0.055966675282 +v -0.047009706497 1.225324869156 0.042491793633 +v -0.047743082047 1.194535493851 0.058303952217 +v -0.054014205933 1.190686464310 0.040780961514 +v -0.015044689178 1.246884107590 0.097714483738 +v 0.051012039185 1.267523407936 0.126842677593 +v 0.053725004196 1.263754844666 0.121200740337 +v 0.044191360474 1.316711425781 0.076770126820 +v 0.049160242081 1.303004741669 0.090367913246 +v 0.070050954819 1.296021223068 0.083691716194 +v 0.064377546310 1.307411193848 0.076644003391 +v 0.044227600098 1.289105176926 0.100519239902 +v 0.046434164047 1.276561975479 0.104707181454 +v 0.050604581833 1.285138130188 0.100853264332 +v 0.058474540710 1.292474508286 0.093251526356 +v 0.065127134323 1.284862875938 0.097177326679 +v 0.048618316650 1.269841313362 0.112119197845 +v 0.045237541199 1.272487878799 0.114981353283 +v 0.053706645966 1.265324115753 0.107027411461 +v 0.050548315048 1.272162795067 0.102230787277 +v 0.056096792221 1.279160976410 0.101499915123 +v 0.055377244949 1.264985799789 0.099373936653 +v 0.058884382248 1.273606300354 0.098348557949 +v 0.060819864273 1.270249724388 0.095299720764 +v 0.067456960678 1.278015136719 0.096721053123 +v 0.067724943161 1.273309826851 0.094431757927 +v 0.068783521652 1.270277500153 0.094106316566 +v 0.060762882233 1.261790990829 0.099568009377 +v 0.054175376892 1.268918275833 0.098160982132 +v 0.062816143036 1.268297910690 0.094869017601 +v 0.063694953918 1.267551422119 0.093782484531 +v 0.068581581116 1.269197702408 0.092460989952 +v 0.061268568039 1.263207793236 0.095967531204 +v 0.057333707809 1.264688968658 0.095514893532 +v 0.057271957397 1.267230391502 0.095370531082 +v 0.059454441071 1.266519188881 0.094323635101 +v 0.059153795242 1.264902830124 0.094141185284 +v 0.062749862671 1.265080451965 0.095315635204 +v 0.060599803925 1.266317009926 0.093307375908 +v 0.059796094894 1.264950871468 0.092611730099 +v 0.062308549881 1.264286756516 0.092826724052 +v 0.067521333694 1.262562036514 0.095242917538 +v 0.068541765213 1.265034556389 0.094969451427 +v 0.068204641342 1.265207529068 0.093506395817 +v 0.077112913132 1.279425144196 0.091373026371 +v 0.075383424759 1.286835432053 0.089299082756 +v 0.082441329956 1.283947467804 0.079257071018 +v 0.078902959824 1.292372465134 0.071949005127 +v 0.075701475143 1.271097064018 0.090313911438 +v 0.074272155762 1.269963860512 0.088880062103 +v 0.080384016037 1.272943258286 0.083734631538 +v 0.075593948364 1.274363636971 0.090127468109 +v 0.079707145691 1.270199537277 0.084501504898 +v 0.077773094177 1.269171714783 0.084009110928 +v 0.074470520020 1.262153863907 0.091184914112 +v 0.074804306030 1.264805197716 0.091423273087 +v 0.074141263962 1.265561819077 0.090759217739 +v 0.079296112061 1.262190818787 0.084158301353 +v 0.078951358795 1.264721870422 0.085185348988 +v 0.078058242798 1.265552878380 0.085563898087 +v 0.080155134201 1.268244743347 0.078729867935 +v 0.078858852386 1.267360806465 0.079410076141 +v 0.080429077148 1.264863848686 0.079188346863 +v 0.080001354218 1.264985084534 0.075401127338 +v 0.080117464066 1.266297817230 0.075324594975 +v 0.079468488693 1.265514373779 0.080408871174 +v 0.079141855240 1.265153050423 0.076866209507 +v 0.078771829605 1.266029000282 0.076456785202 +v 0.082354784012 1.277361154556 0.082759082317 +v 0.082641601563 1.272576570511 0.074128508568 +v 0.080540895462 1.270089030266 0.076882600784 +v 0.081943511963 1.258766055107 0.074625015259 +v 0.080802440643 1.262812852859 0.077187001705 +v 0.080394029617 1.264332532883 0.073039591312 +v 0.080169439316 1.266933917999 0.072909772396 +v 0.057654857635 1.259309649467 0.137847244740 +v 0.058503150940 1.253966927528 0.145442008972 +v 0.064238071442 1.251279354095 0.135221183300 +v 0.061223030090 1.248335599899 0.143793106079 +v 0.060226678848 1.243742227554 0.139886677265 +v 0.058931112289 1.258131980896 0.127938270569 +v 0.063202142715 1.254297494888 0.129694104195 +v 0.065549135208 1.247506380081 0.127456486225 +v 0.057339906693 1.259414553642 0.114988744259 +v 0.062293052673 1.246687650681 0.126744151115 +v 0.058286666870 1.246920347214 0.125443816185 +v 0.066583871841 1.249766945839 0.126530528069 +v 0.061671018600 1.255462884903 0.120306611061 +v 0.065866470337 1.252713918686 0.123935759068 +v 0.054228067398 1.239598989487 0.133096814156 +v 0.056482315063 1.242153167725 0.135511994362 +v 0.054856777191 1.242565155029 0.130528688431 +v 0.055840969086 1.243560433388 0.131651639938 +v 0.056303262711 1.246041178703 0.128419876099 +v 0.063732147217 1.246660113335 0.133645892143 +v 0.059375524521 1.246311187744 0.130905628204 +v 0.054415225983 1.236288070679 0.133475065231 +v 0.055111885071 1.233415126801 0.134682297707 +v 0.059905767441 1.232897996902 0.130329132080 +v 0.055068492889 1.240468859673 0.125481486320 +v 0.054852485657 1.244311332703 0.126182913780 +v 0.061526775360 1.241811394691 0.120923161507 +v 0.062999248505 1.245989322662 0.124036252499 +v 0.058302879333 1.245635032654 0.122877240181 +v 0.058226346970 1.236359000206 0.127980589867 +v 0.068130016327 1.248301506042 0.117564380169 +v 0.067496299744 1.246428251266 0.120817005634 +v 0.067075014114 1.240431427956 0.117183685303 +v 0.065690279007 1.245734214783 0.123227000237 +v 0.063593864441 1.235562324524 0.122017323971 +v 0.065532922745 1.231557369232 0.124712467194 +v 0.058642148972 1.228264093399 0.141964733601 +v 0.060995340347 1.221785545349 0.146217465401 +v 0.067803859711 1.221554160118 0.140724539757 +v 0.065596818924 1.198537349701 0.155037641525 +v 0.063088893890 1.211889743805 0.150147914886 +v 0.070540428162 1.212059378624 0.143783211708 +v 0.074363708496 1.199054241180 0.147871077061 +v 0.055469512939 1.229463577271 0.135724365711 +v 0.064706325531 1.227428913116 0.137217521667 +v 0.060773849487 1.229086875916 0.132322847843 +v 0.070334196091 1.226015686989 0.129881024361 +v 0.073707818985 1.221224188805 0.132331371307 +v 0.066503286362 1.228003025055 0.126726925373 +v 0.071586132050 1.228841543198 0.118208587170 +v 0.071873664856 1.225707650185 0.119430422783 +v 0.077915668488 1.220404744148 0.122084975243 +v 0.074536085129 1.223444819450 0.120662927628 +v 0.076755285263 1.212785243988 0.134442687035 +v 0.081811666489 1.200371980667 0.137430131435 +v 0.080988883972 1.214165449142 0.123166322708 +v 0.086687803268 1.203819513321 0.124526441097 +v 0.062492609024 1.254801988602 0.109791696072 +v 0.066610813141 1.251634597778 0.113950848579 +v 0.061021566391 1.259107947350 0.104773223400 +v 0.068827152252 1.254087090492 0.101265370846 +v 0.067484378815 1.258732795715 0.097137033939 +v 0.069918870926 1.248601675034 0.105034232140 +v 0.067322969437 1.240279912949 0.111719012260 +v 0.068537473679 1.242500543594 0.107286572456 +v 0.075018405914 1.232970237732 0.108255088329 +v 0.070877790451 1.232767581940 0.115252256393 +v 0.077867746353 1.249896764755 0.094340682030 +v 0.081087350845 1.242408514023 0.097182273865 +v 0.083758115768 1.234669685364 0.100204110146 +v 0.075211763382 1.256941318512 0.091831862926 +v 0.080814123154 1.256867170334 0.083383440971 +v 0.084712028503 1.249413847923 0.083412945271 +v 0.090125322342 1.240862131119 0.083279728889 +v 0.094750881195 1.231421947479 0.081762373447 +v 0.077249050140 1.224474191666 0.112283647060 +v 0.076828718185 1.222699880600 0.113141000271 +v 0.078745365143 1.225707769394 0.109818100929 +v 0.080643415451 1.218926310539 0.113611519337 +v 0.081604242325 1.218360304832 0.109059333801 +v 0.081132650375 1.220607519150 0.109011828899 +v 0.077664852142 1.220381379128 0.113147377968 +v 0.080033540726 1.219517707825 0.110023081303 +v 0.079794406891 1.220654487610 0.110094487667 +v 0.083391666412 1.220073938370 0.107060670853 +v 0.082854270935 1.225638270378 0.104710161686 +v 0.087911605835 1.218507766724 0.103260695934 +v 0.091594696045 1.224019408226 0.096191704273 +v 0.096889257431 1.214898347855 0.095897138119 +v 0.083808422089 1.215420007706 0.113558650017 +v 0.089332103729 1.208635091782 0.112731575966 +v 0.084277868271 1.216469287872 0.107762217522 +v 0.089827299118 1.213289976120 0.105555117130 +v 0.101368904114 1.198026537895 0.110524892807 +v 0.100582122803 1.206828474998 0.100248575211 +v 0.095614671707 1.219149708748 0.078378736973 +v 0.110302448273 1.196131229401 0.085673749447 +v 0.101401090622 1.207566261292 0.078618407249 +v 0.038086652756 1.319437146187 0.056139290333 +v 0.058758258820 1.316738009453 0.064338445663 +v 0.052024126053 1.317465305328 0.045089304447 +v 0.071031332016 1.309057235718 0.048146665096 +v 0.074790716171 1.301920175552 0.061692059040 +v 0.065555095673 1.309342384338 0.030936956406 +v 0.076519966125 1.290452003479 0.034301042557 +v 0.081107854843 1.281051397324 0.059998869896 +v 0.083610057831 1.276207208633 0.068830192089 +v 0.084535121918 1.260300159454 0.064144432545 +v 0.082194328308 1.262906312943 0.069637179375 +v 0.082393407822 1.267321228981 0.069480359554 +v 0.083597660065 1.267654538155 0.063186764717 +v 0.078208923340 1.286485910416 0.048090279102 +v 0.083045482635 1.268104314804 0.053750872612 +v 0.082231521606 1.268839240074 0.041879594326 +v 0.074455499649 1.290663003922 0.019667565823 +v 0.081685543060 1.268450379372 0.028919160366 +v 0.080770254135 1.266295671463 0.016477346420 +v 0.085688114166 1.253255128860 0.071567714214 +v 0.090450763702 1.245868682861 0.066874861717 +v 0.086171150208 1.256250977516 0.055930197239 +v 0.086350440979 1.251328825951 0.045859992504 +v 0.093620538712 1.236952662468 0.060706198215 +v 0.094166755676 1.225640654564 0.054646670818 +v 0.099492788315 1.210208415985 0.048777282238 +v 0.114588975906 1.187431573868 0.062622427940 +v 0.087287187576 1.245572805405 0.035482227802 +v 0.087604761124 1.239173889160 0.025138556957 +v 0.087361097336 1.235268592834 0.012534439564 +v 0.098117351532 1.205789446831 0.027765154839 +v 0.095893383026 1.203208208084 0.014717459679 +v -0.011510133743 1.163360238075 0.149067997932 +v -0.004560947418 1.134804606438 0.155196785927 +v -0.023927450180 1.173175573349 0.133506655693 +v -0.025471687317 1.141367435455 0.137405753136 +v 0.017634153366 1.178678154945 0.157647490501 +v 0.025628328323 1.157846570015 0.168135166168 +v 0.003703117371 1.180795431137 0.148849606514 +v 0.006724596024 1.158563613892 0.161044716835 +v 0.032204389572 1.178767085075 0.163424730301 +v 0.045523643494 1.179651737213 0.165940761566 +v 0.057294130325 1.180637598038 0.164849698544 +v 0.042539596558 1.158673048019 0.171049177647 +v 0.056924104691 1.159794092178 0.170381605625 +v 0.017149686813 1.133303642273 0.166976332664 +v 0.037201642990 1.133634090424 0.172211468220 +v 0.054214477539 1.134839653969 0.171566545963 +v -0.010805606842 1.115299701691 0.134994447231 +v -0.012533187866 1.105522513390 0.110044121742 +v 0.010537385941 1.112756729126 0.149111986160 +v 0.047211885452 1.112629652023 0.157582700253 +v 0.030074119568 1.112287878990 0.156457722187 +v 0.006142139435 1.103373646736 0.121430158615 +v 0.022053003311 1.103733062744 0.127525568008 +v 0.036193370819 1.104734897614 0.128820121288 +v -0.040673494339 1.155994772911 0.117093861103 +v -0.049955368042 1.141332268715 0.095714688301 +v -0.032525300980 1.123396158218 0.116316258907 +v -0.032552003860 1.114442110062 0.094371557236 +v -0.031067371368 1.110062003136 0.075444519520 +v -0.052037954330 1.167015790939 0.075356423855 +v -0.056231737137 1.161347627640 0.056636929512 +v -0.059476852417 1.156821727753 0.039392709732 +v -0.059850692749 1.140776157379 0.039435088634 +v -0.061575651169 1.141006946564 0.028368413448 +v -0.050864934921 1.133266210556 0.076295912266 +v -0.056070089340 1.117838740349 0.039700746536 +v -0.049790382385 1.128654956818 0.061231255531 +v -0.052109718323 1.122534751892 0.050932705402 +v -0.034054994583 1.104509353638 0.060616970062 +v -0.043396234512 1.096928238869 0.048614859581 +v -0.048959255219 1.091627120972 0.033554553986 +v -0.056957721710 1.112890362740 0.023788034916 +v -0.035567522049 1.043387889862 0.047449171543 +v -0.039433956146 1.039121747017 0.052413821220 +v -0.064744234085 1.050780534744 0.014951646328 +v -0.038980245590 1.074284434319 0.043637633324 +v -0.041082859039 1.069077014923 0.029278635979 +v -0.034406661987 1.055065155029 0.043360531330 +v -0.047071218491 1.085974812508 0.015686988831 +v -0.049998521805 1.061222076416 0.019102632999 +v -0.053887367249 1.043840646744 0.036689996719 +v -0.042478322983 1.050164461136 0.036054790020 +v -0.014271974564 1.099223375320 0.086969316006 +v 0.000830411911 1.094314455986 0.095309138298 +v -0.019607543945 1.090406298637 0.068407773972 +v -0.029613494873 1.080608129501 0.054361045361 +v -0.005763530731 1.081238627434 0.073860049248 +v -0.027546405792 1.059183478355 0.053171813488 +v -0.013939142227 1.067626953125 0.057299792767 +v 0.014307975769 1.093263268471 0.099898755550 +v 0.027014970779 1.094081640244 0.101382076740 +v 0.021053075790 1.074604153633 0.082123875618 +v 0.007202863693 1.075435996056 0.078675389290 +v -0.027371644974 1.043602824211 0.054658472538 +v -0.017439126968 1.044979572296 0.062561631203 +v -0.024429798126 1.035316348076 0.064470529556 +v -0.010132312775 1.032010316849 0.071531534195 +v 0.004372358322 1.030398845673 0.073763489723 +v 0.017338514328 1.031093001366 0.076553463936 +v 0.000297546387 1.051457285881 0.063539087772 +v 0.017464637756 1.050814867020 0.071853816509 +v 0.068420410156 1.181527853012 0.160425603390 +v 0.079635143280 1.182518243790 0.152125537395 +v 0.070542097092 1.160900115967 0.164953768253 +v 0.085201978683 1.162357091904 0.154878497124 +v 0.090045928955 1.184562206268 0.140001475811 +v 0.098061561584 1.189689755440 0.125387966633 +v 0.099827289581 1.165438413620 0.139908611774 +v 0.070614814758 1.136290311813 0.165854871273 +v 0.088030338287 1.138740301132 0.153091609478 +v 0.104446411133 1.143034815788 0.133147954941 +v 0.097229003906 1.124236106873 0.117044687271 +v 0.083167791367 1.114722371101 0.099347352982 +v 0.111231565475 1.172423601151 0.120619416237 +v 0.114904880524 1.183718919754 0.100513756275 +v 0.116925716400 1.151993751526 0.107569992542 +v 0.063422679901 1.115132212639 0.151529729366 +v 0.080619335175 1.118611931801 0.138225674629 +v 0.050387620926 1.106717824936 0.125205457211 +v 0.066112041473 1.109486579895 0.115795731544 +v 0.086173295975 1.122708439827 0.068399488926 +v 0.080250263214 1.118033289909 0.063007235527 +v 0.082655668259 1.112149238586 0.061163365841 +v 0.121577978134 1.167878985405 0.081856548786 +v 0.119044303894 1.154315471649 0.063807129860 +v 0.111441612244 1.134985923767 0.090731918812 +v 0.098887205124 1.126488447189 0.077325224876 +v 0.111427545547 1.179712891579 0.043127000332 +v 0.106110334396 1.175122380257 0.031305313110 +v 0.102075576782 1.172155618668 0.024685502052 +v 0.102116584778 1.157317161560 0.033418297768 +v 0.101032018661 1.158340215683 0.029302597046 +v 0.100531339645 1.143308043480 0.048263728619 +v 0.097441434860 1.138330459595 0.048066020012 +v 0.109502553940 1.146957397461 0.052747786045 +v 0.096754789352 1.134839057922 0.047012090683 +v 0.085198402405 1.107511401176 0.055232167244 +v 0.094857692719 1.130478262901 0.041637301445 +v 0.040197134018 1.096347808838 0.099944472313 +v 0.054687500000 1.100618243217 0.094639301300 +v 0.048788309097 1.088074207306 0.078770637512 +v 0.035143613815 1.078818082809 0.081493318081 +v 0.048858642578 1.075313687325 0.068564772606 +v 0.070461988449 1.108810186386 0.084021329880 +v 0.064486742020 1.100866556168 0.073438167572 +v 0.065836668015 1.092562913895 0.068579912186 +v 0.060715675354 1.069221019745 0.070371031761 +v 0.030231714249 1.033327579498 0.078828334808 +v 0.035176753998 1.055608034134 0.070235610008 +v 0.043811559677 1.038117885590 0.082073748112 +v 0.050953388214 1.052722811699 0.075931191444 +v 0.063144207001 1.053842663765 0.072386682034 +v 0.073226213455 1.055658340454 0.068940043449 +v 0.075714349747 1.052077531815 0.075281441212 +v 0.058623790741 1.044714212418 0.080729842186 +v 0.072857141495 1.087235689163 0.064580619335 +v 0.071193933487 1.066993713379 0.064158737659 +v 0.079437494278 1.082699298859 0.053134381771 +v 0.086660146713 1.101273775101 0.041690945625 +v 0.092396974564 1.077137112617 0.048476576805 +v 0.108497619629 1.069890260696 0.052235901356 +v 0.082067012787 1.064140319824 0.061126887798 +v 0.093047380447 1.060159802437 0.067036211491 +v -0.040343284607 1.237436652184 -0.032936990261 +v -0.052459239960 1.221552133560 0.028179645538 +v -0.056158065796 1.218947887421 0.012705385685 +v -0.055384397507 1.217468619347 -0.008952379227 +v -0.058702945709 1.188291907310 0.024425923824 +v -0.061626672745 1.162003040314 0.018809258938 +v -0.061149597168 1.186267733574 0.006660997868 +v -0.059507608414 1.179691553116 -0.010669171810 +v -0.055477380753 1.198352456093 -0.021095275879 +v -0.052834749222 1.169609308243 -0.030598759651 +v -0.042055368423 1.195482850075 -0.042439877987 +v -0.019744396210 1.243911266327 -0.053574860096 +v 0.005693435669 1.249059438705 -0.062779784203 +v -0.040396451950 1.167162179947 -0.069658398628 +v -0.015247583389 1.206512212753 -0.057519495487 +v 0.014311552048 1.212281465530 -0.062326133251 +v -0.013623714447 1.176701664925 -0.078638434410 +v 0.025074958801 1.182491421700 -0.078897595406 +v 0.055553436279 1.246190905571 -0.042324364185 +v 0.072591066360 1.207378625870 -0.039697229862 +v 0.085914134979 1.232458949089 0.001026153564 +v 0.083698034286 1.230814695358 -0.009619951248 +v 0.077988386154 1.229747176170 -0.023236691952 +v 0.094089031219 1.202184319496 0.005038857460 +v 0.098302841187 1.178545475006 0.013474762440 +v 0.091052532196 1.195588827133 -0.011169850826 +v 0.092413902283 1.201389551163 -0.004166901112 +v 0.082178831100 1.212141036987 -0.025714099407 +v 0.089784622192 1.185250520706 -0.019735872746 +v 0.032395839691 1.248675107956 -0.057501971722 +v 0.044507265091 1.212738394737 -0.056064784527 +v 0.063519954681 1.185031294823 -0.068458735943 +v 0.090191364288 1.181271433830 -0.050654113293 +v -0.059590101242 1.158144712448 0.001819372177 +v -0.060241460800 1.136449337006 0.012746274471 +v -0.055771827698 1.128415822983 -0.007795572281 +v -0.056196689606 1.149477005005 -0.018423438072 +v -0.059613704681 1.094871759415 -0.017021775246 +v -0.052507877350 1.106217026711 0.003190934658 +v -0.061356782913 1.135336041451 -0.044591844082 +v -0.055210590363 1.152688622475 -0.057234942913 +v -0.061703920364 1.115628957748 -0.031736850739 +v -0.076354265213 1.118670940399 -0.068626523018 +v -0.078945398331 1.100923299789 -0.053504228592 +v -0.072272777557 1.063135385513 -0.010518550873 +v -0.077728748322 1.081091284752 -0.034207820892 +v -0.055848836899 1.076079010963 0.000701248646 +v -0.070124626160 1.134061932564 -0.082705259323 +v -0.052391529083 1.145668983459 -0.097816407681 +v -0.014596939087 1.152688741684 -0.108650863171 +v 0.038563251495 1.158075928688 -0.105544686317 +v 0.095056056976 1.175324201584 0.007279813290 +v 0.097741365433 1.154363512993 0.024574756622 +v 0.096329450607 1.145889043808 0.014402627945 +v 0.095551252365 1.166598796844 -0.001544177532 +v 0.092842340469 1.122950792313 0.029080450535 +v 0.106817960739 1.113699555397 0.016706228256 +v 0.110495090485 1.154946565628 -0.013335943222 +v 0.104727029800 1.170523405075 -0.031004786491 +v 0.110179185867 1.135258436203 0.001379370689 +v 0.134946107864 1.143305301666 -0.026512145996 +v 0.134920597076 1.125534772873 -0.009499669075 +v 0.100990295410 1.093693971634 0.033296287060 +v 0.121155023575 1.084573626518 0.031806349754 +v 0.130618572235 1.104586720467 0.010483145714 +v 0.088234901428 1.164701461792 -0.088147342205 +v 0.131562232971 1.157645463943 -0.042793512344 +v 0.118981122971 1.165749549866 -0.063742041588 +v 0.061493158340 1.307609081268 0.082881748676 +v 0.060327529907 1.318495154381 0.079182028770 +v 0.072385311127 1.317370176315 0.066087126732 +v 0.075205326080 1.306590318680 0.068933367729 +v 0.076874732971 1.311258077621 0.048126757145 +v 0.079223632813 1.301067113876 0.051980793476 +v 0.079833984375 1.300073146820 0.031079173088 +v 0.080294847488 1.289757966995 0.038935780525 +v 0.084419488907 1.282017230988 0.020341932774 +v 0.084472656250 1.274614810944 0.031600832939 +v 0.089787960052 1.257214426994 0.028529644012 +v 0.093410491943 1.257125258446 0.016011953354 +v 0.093643188477 1.237569332123 0.028812587261 +v 0.099745988846 1.236010193825 0.015180408955 +v 0.101211547852 1.209712862968 0.029784440994 +v 0.105703353882 1.216141939163 0.016078948975 +v 0.107604503632 1.206364512444 0.004519283772 +v 0.106831312180 1.196551799774 0.008540511131 +v 0.103477239609 1.200936555862 -0.016821682453 +v 0.102436780930 1.189777612686 -0.016660988331 +v 0.094894409180 1.201877832413 -0.033474504948 +v 0.091467142105 1.192241907120 -0.033644795418 +v 0.081027984619 1.205593347549 -0.044518053532 +v 0.078697204590 1.196267604828 -0.045972108841 +v 0.030203104019 1.317878961563 0.092599034309 +v 0.031599044800 1.306848764420 0.096550464630 +v 0.000533103943 1.315608501434 0.092406988144 +v 0.001453638077 1.304747343063 0.097599565983 +v -0.019915580750 1.309429168701 0.081647753716 +v -0.018998622894 1.298553228378 0.086916089058 +v -0.033011198044 1.297790884972 0.064219474792 +v -0.029258489609 1.289492845535 0.072676897049 +v -0.041879415512 1.274564981461 0.053379595280 +v -0.035678148270 1.269248962402 0.063527703285 +v -0.049278259277 1.251981019974 0.053342640400 +v -0.040801525116 1.249933481216 0.062599599361 +v -0.052246570587 1.230650424957 0.054706454277 +v -0.042381286621 1.229251742363 0.063888192177 +v -0.056648731232 1.206089735031 0.058673679829 +v -0.047176122665 1.203041553497 0.068685829639 +v -0.063978195190 1.193070888519 0.045640826225 +v -0.059770822525 1.182946562767 0.046971440315 +v -0.068000316620 1.188966512680 0.023967921734 +v -0.064295291901 1.178698301315 0.022614359856 +v -0.068785667419 1.192012310028 0.001784324646 +v -0.065010547638 1.183354616165 -0.002156734467 +v -0.066419363022 1.198132634163 -0.014372169971 +v -0.061841726303 1.189954519272 -0.018084764481 +v -0.056248426437 1.205180168152 -0.032190322876 +v -0.050663232803 1.196324706078 -0.035794079304 +v -0.035155773163 1.208442568779 -0.053844273090 +v -0.033224582672 1.197817921638 -0.051412761211 +v -0.008906602859 1.210032224655 -0.066920220852 +v -0.007337331772 1.200033903122 -0.065757989883 +v 0.025993824005 1.211974382401 -0.073480010033 +v 0.026358604431 1.201002120972 -0.069385886192 +v 0.049157142639 1.212844133377 -0.068056046963 +v 0.048957347870 1.202935099602 -0.064820349216 +v 0.065938234329 1.210010766983 -0.056550920010 +v 0.063969373703 1.200293183327 -0.057101726532 +v 0.026063919067 1.253668546677 -0.073655724525 +v -0.009798765182 1.251827239990 -0.066984713078 +v -0.036081075668 1.251029968262 -0.053802967072 +v -0.053255796432 1.248492121696 -0.030867159367 +v -0.061401128769 1.237682819366 -0.006527304649 +v -0.065071582794 1.235451579094 0.005308210850 +v -0.066051959991 1.232313632965 0.024793028831 +v -0.063958168030 1.215806245804 0.036684691906 +v -0.058470249176 1.244234442711 0.038768827915 +v -0.056696653366 1.254055619240 0.036476075649 +v 0.047235488892 1.252357602119 -0.067458629608 +v 0.065943956375 1.248579740524 -0.052758038044 +v 0.082094430923 1.242822408676 -0.039423704147 +v 0.101416587830 1.234602212906 0.000243604183 +v 0.095574378967 1.254433631897 -0.000831246376 +v 0.081856250763 1.282060623169 0.002210915089 +v 0.070363283157 1.305048108101 0.002756774426 +v 0.064732551575 1.325939893723 0.037348568439 +v 0.059475421906 1.330581545830 0.056172847748 +v 0.051770687103 1.331991195679 0.066862940788 +v 0.026969909668 1.331480026245 0.080155074596 +v 0.000534296036 1.328585267067 0.078154027462 +v -0.016364336014 1.321949958801 0.068262755871 +v -0.032131671906 1.307672977448 0.049133062363 +v -0.046026468277 1.281006813049 0.033047616482 +v -0.057170391083 1.264941453934 0.018052995205 +v -0.059194087982 1.260551929474 0.005703926086 +v -0.056351184845 1.267251372337 -0.005363285542 +v -0.049419403076 1.281430959702 0.018636167049 +v -0.050104856491 1.281523466110 -0.026480972767 +v -0.032762527466 1.285117030144 -0.046894788742 +v -0.006237030029 1.288429498672 -0.060750246048 +v 0.045986413956 1.285272717476 -0.059156835079 +v 0.060814857483 1.282638311386 -0.047715902328 +v 0.081722974777 1.278753519058 -0.015161991119 +v 0.093460798264 1.257528543472 -0.016839504242 +v 0.099166631699 1.234176397324 -0.016934752464 +v 0.080812215805 1.267979621887 -0.031077861786 +v 0.066226243973 1.297156810760 -0.022842288017 +v 0.025224208832 1.286554098129 -0.066509544849 +v 0.046222925186 1.308892011642 -0.040655016899 +v 0.025389671326 1.311321735382 -0.048380911350 +v -0.002219676971 1.312392711639 -0.044137835503 +v -0.024477481842 1.309771776199 -0.033741474152 +v -0.040723323822 1.304569959641 -0.014032125473 +v -0.038681983948 1.307122945786 0.022028684616 +v -0.033923625946 1.316653251648 0.007554233074 +v -0.022377967834 1.325628161430 0.032776713371 +v -0.011242151260 1.334012389183 0.047734975815 +v 0.005346775055 1.339532971382 0.057651221752 +v 0.023217439651 1.341475963593 0.059436559677 +v 0.043385505676 1.340054035187 0.050687074661 +v 0.050596475601 1.337354063988 0.041210770607 +v 0.055289745331 1.331090807915 0.023640811443 +v 0.054258584976 1.323943614960 -0.003970444202 +v 0.035431385040 1.330586671829 -0.015784919262 +v 0.002865314484 1.329736113548 -0.018387377262 +v -0.017127513885 1.325981378555 -0.009942293167 +v -0.009388685226 1.335545063019 0.010651230812 +v 0.008429527283 1.339061737061 0.003008246422 +v 0.036308050156 1.338485956192 0.004922389984 +v 0.036141872406 1.342529535294 0.023647129536 +v 0.034445047379 1.343819022179 0.035101830959 +v 0.020200014114 1.344961047173 0.038254320621 +v 0.006144762039 1.343188524246 0.040450692177 +v -0.003520011902 1.340352535248 0.030388653278 +v 0.015350580215 1.343349337578 0.023720622063 +v 0.002131700516 1.294373512268 0.084310173988 +v 0.032253980637 1.296369910240 0.083501935005 +v 0.053240537643 1.297918319702 0.073384404182 +v 0.063632249832 1.297773361206 0.063727974892 +v 0.066441297531 1.292367458344 0.051250755787 +v 0.069464921951 1.284128427505 0.042113184929 +v 0.072947740555 1.268516302109 0.036393523216 +v 0.077996730804 1.254851579666 0.034342646599 +v 0.082294940948 1.238687992096 0.033778369427 +v 0.096078634262 1.210922002792 0.033141076565 +v 0.093547344208 1.197418689728 0.010111808777 +v 0.088402271271 1.190471649170 -0.012344717979 +v 0.079278945923 1.192068338394 -0.027221798897 +v 0.067305803299 1.196002244949 -0.037115812302 +v 0.056254863739 1.199710249901 -0.045009076595 +v 0.043886661530 1.202761530876 -0.050360381603 +v 0.028577089310 1.203777551651 -0.055042266846 +v 0.000556945801 1.202123761177 -0.054026365280 +v -0.022556543350 1.199745535851 -0.042454838753 +v -0.037118673325 1.196506142616 -0.027604460716 +v -0.044364452362 1.191485524178 -0.013580024242 +v -0.048760175705 1.185310840607 0.001701295376 +v -0.049472093582 1.181732654572 0.018289864063 +v -0.043260574341 1.188125729561 0.041829228401 +v -0.042436599731 1.200907945633 0.067196130753 +v -0.029914379120 1.229040384293 0.062778651714 +v -0.028822183609 1.249405384064 0.061480879784 +v -0.026416063309 1.267934322357 0.062469124794 +v -0.020500183105 1.284778714180 0.069266617298 +v -0.011813879013 1.290825963020 0.077379345894 +v -0.036173343658 1.205227851868 0.065852403641 +v 0.089926242828 1.212391614914 0.033588826656 +v 0.086484670639 1.264750957489 -0.025318682194 +v 0.090276241302 1.249650478363 -0.029009580612 +v 0.093374252319 1.235239744186 -0.028121829033 +v -0.680430412292 1.393068790436 -0.320257246494 +v -0.698494911194 1.408102989197 -0.328137785196 +v -0.705596685410 1.403319478035 -0.332353264093 +v -0.702425003052 1.401414155960 -0.341219663620 +v -0.693487405777 1.401706576347 -0.345480948687 +v -0.677313804626 1.388596534729 -0.332979142666 +v -0.696997642517 1.407511115074 -0.337174981833 +v -0.689204931259 1.409341335297 -0.330315768719 +v -0.693303585052 1.391095876694 -0.314780384302 +v -0.703037500381 1.384432554245 -0.323003411293 +v -0.699735164642 1.379808068275 -0.336086094379 +v -0.686516761780 1.382108569145 -0.341215163469 +v -0.688117027283 1.406664133072 -0.339293509722 +v -0.671191692352 1.325040817261 -0.285161167383 +v -0.653577566147 1.274054050446 -0.263464331627 +v -0.622252702713 1.186689734459 -0.227236688137 +v -0.589787960052 1.099176168442 -0.192291796207 +v -0.552791118622 1.003217101097 -0.157474160194 +v -0.510915994644 0.897739231586 -0.121878385544 +v -0.492876291275 0.902821123600 -0.129963815212 +v -0.535413742065 1.007634758949 -0.164884626865 +v -0.573541641235 1.102779388428 -0.199071943760 +v -0.606878757477 1.189758062363 -0.233704805374 +v -0.639323711395 1.276522159576 -0.269631683826 +v -0.656749725342 1.327616810799 -0.290879905224 +v -0.681891918182 1.317631244659 -0.293967366219 +v -0.664569854736 1.266501188278 -0.272399932146 +v -0.634156942368 1.178615331650 -0.236648023129 +v -0.601839542389 1.090810775757 -0.202318966389 +v -0.566227912903 0.994425058365 -0.168143510818 +v -0.525188207626 0.888482391834 -0.133112192154 +v -0.678204059601 1.312798857689 -0.308455199003 +v -0.660619258881 1.261751770973 -0.287267655134 +v -0.630073070526 1.173742771149 -0.252752542496 +v -0.597980260849 1.085862278938 -0.219300508499 +v -0.562275886536 0.989962458611 -0.186343669891 +v -0.521363496780 0.884423673153 -0.152287662029 +v -0.663713693619 1.315396070480 -0.314257442951 +v -0.645992040634 1.264471530914 -0.293223381042 +v -0.614400863647 1.176954030991 -0.259143769741 +v -0.581530570984 1.089387059212 -0.226521193981 +v -0.544843912125 0.994354009628 -0.193900704384 +v -0.503242254257 0.889585494995 -0.160271108150 +v -0.653139591217 1.322819709778 -0.305283248425 +v -0.635165929794 1.272057771683 -0.284064382315 +v -0.603127479553 1.184988617897 -0.249243974686 +v -0.569592237473 1.097936868668 -0.215854406357 +v -0.531643867493 1.003189921379 -0.182969391346 +v -0.488971471786 0.898870944977 -0.149086236954 +v -0.484921455383 0.834170520306 -0.089892804623 +v -0.460219383240 0.840958893299 -0.100384473801 +v -0.511497497559 0.901323735714 -0.132468283176 +v -0.501404762268 0.904189109802 -0.136912345886 +v -0.472644090652 0.759641647339 -0.086778938770 +v -0.504419326782 0.821840167046 -0.105421543121 +v -0.519470214844 0.896225512028 -0.138695955276 +v -0.467942714691 0.754820764065 -0.108005642891 +v -0.499197244644 0.815808892250 -0.131774783134 +v -0.517336845398 0.893964409828 -0.149376213551 +v -0.448551177979 0.760925114155 -0.116835474968 +v -0.474140167236 0.822419762611 -0.142395973206 +v -0.507234096527 0.896824002266 -0.153811216354 +v -0.433065176010 0.771692276001 -0.104480087757 +v -0.455140352249 0.835817098618 -0.126966357231 +v -0.499275684357 0.901945590973 -0.147596955299 +v -0.459559202194 0.773626148701 -0.068398654461 +v -0.433999776840 0.781386613846 -0.079760193825 +v -0.427901983261 0.774820268154 -0.107565879822 +v -0.447791576385 0.760745763779 -0.123485684395 +v -0.472889900208 0.752940356731 -0.112041771412 +v -0.479088068008 0.758860111237 -0.084373116493 +v -0.491303682327 0.910904347897 -0.129152178764 +v -0.514250516891 0.904531538486 -0.118242800236 +v -0.533769607544 0.893227875233 -0.132516324520 +v -0.528328418732 0.887990593910 -0.157591700554 +v -0.504444837570 0.894635677338 -0.168278694153 +v -0.485826730728 0.906584739685 -0.153679370880 +v -0.461875915527 0.779266953468 -0.070306479931 +v -0.436331748962 0.787207782269 -0.081280946732 +v -0.430136680603 0.780604958534 -0.109252929688 +v -0.449860572815 0.765928268433 -0.125815510750 +v -0.475796222687 0.757836759090 -0.114095747471 +v -0.482009410858 0.764635562897 -0.085911035538 +v -0.487102031708 0.905195295811 -0.125341534615 +v -0.511810302734 0.898107171059 -0.114347636700 +v -0.531330347061 0.885510385036 -0.129618883133 +v -0.526210784912 0.880015254021 -0.155877709389 +v -0.501423597336 0.887129247189 -0.166869044304 +v -0.482195377350 0.899640679359 -0.151460170746 +v -0.462564945221 0.780975162983 -0.071647465229 +v -0.437812328339 0.788343131542 -0.082418143749 +v -0.431942939758 0.781991302967 -0.109270632267 +v -0.450904846191 0.768045961857 -0.124982774258 +v -0.475512504578 0.760414898396 -0.113783419132 +v -0.481489181519 0.767017781734 -0.087105572224 +v -0.487062454224 0.902436256409 -0.125205695629 +v -0.510672807693 0.895664632320 -0.114782571793 +v -0.529201984406 0.883543848991 -0.129371404648 +v -0.524323225021 0.878087401390 -0.154505074024 +v -0.500638008118 0.884852886200 -0.164988815784 +v -0.482070446014 0.897029280663 -0.150350451469 +v -0.424216270447 0.726895034313 -0.088332355022 +v -0.433250427246 0.720961630344 -0.097859382629 +v -0.445126295090 0.718145370483 -0.091281771660 +v -0.435346364975 0.722274005413 -0.082853138447 +v -0.449822902679 0.721979498863 -0.078244268894 +v -0.438974618912 0.728516280651 -0.071362376213 +v -0.426059484482 0.732701241970 -0.075176239014 +v -0.425045013428 0.742575645447 -0.074277520180 +v -0.443370342255 0.737635374069 -0.066380739212 +v -0.452912092209 0.722330808640 -0.097539663315 +v -0.434735298157 0.726553499699 -0.105409443378 +v -0.457568168640 0.770726919174 -0.074224233627 +v -0.438102483749 0.776775538921 -0.083273649216 +v -0.457084417343 0.727426528931 -0.078251421452 +v -0.421734809875 0.737034559250 -0.093638539314 +v -0.440868854523 0.726467907429 -0.079293847084 +v -0.441762924194 0.723804175854 -0.084031581879 +v -0.437235593796 0.723723113537 -0.086625933647 +v -0.433544158936 0.726360797882 -0.083503544331 +v -0.435790300369 0.728097319603 -0.078992664814 +v -0.435076475143 0.716530799866 -0.078679621220 +v -0.436748027802 0.715161144733 -0.083459377289 +v -0.433470964432 0.717130362988 -0.086149096489 +v -0.429803609848 0.719704866409 -0.082996487617 +v -0.430795431137 0.719356417656 -0.078405201435 +v -0.426370620728 0.708177804947 -0.082949578762 +v -0.429102659225 0.708031177521 -0.087148606777 +v -0.427751302719 0.711654126644 -0.088896811008 +v -0.424102544785 0.714181125164 -0.085791230202 +v -0.423462867737 0.712011873722 -0.082427322865 +v -0.417178869247 0.705715954304 -0.092401742935 +v -0.421164512634 0.705772161484 -0.095329344273 +v -0.421780347824 0.710141003132 -0.095210850239 +v -0.418033361435 0.712694764137 -0.092156529427 +v -0.415308475494 0.709888398647 -0.090527355671 +v -0.411131381989 0.710895836353 -0.103977918625 +v -0.416023015976 0.710323870182 -0.105279445648 +v -0.418101072311 0.713830649853 -0.102593660355 +v -0.414386272430 0.716481685638 -0.099799752235 +v -0.409998416901 0.714512467384 -0.100628316402 +v -0.412442445755 0.723457217216 -0.112111985683 +v -0.417440891266 0.721303761005 -0.112163603306 +v -0.419823646545 0.722338557243 -0.107104063034 +v -0.416396379471 0.725583493710 -0.104684352875 +v -0.411242246628 0.725655853748 -0.107722580433 +v -0.419799089432 0.736344456673 -0.113022804260 +v -0.424517631531 0.732703447342 -0.112453818321 +v -0.425635576248 0.730973005295 -0.106811225414 +v -0.422138690948 0.734303593636 -0.103965282440 +v -0.418025732040 0.737095832825 -0.108072340488 +v -0.427905082703 0.742825925350 -0.108273148537 +v -0.431505441666 0.737993359566 -0.108103752136 +v -0.431043863297 0.735172092915 -0.103496670723 +v -0.427010297775 0.737998902798 -0.100774705410 +v -0.425103187561 0.742438733578 -0.103610634804 +v -0.434395790100 0.745493888855 -0.102516651154 +v -0.437351465225 0.740055739880 -0.103321194649 +v -0.434785366058 0.735876679420 -0.100580215454 +v -0.429973125458 0.739280521870 -0.096914887428 +v -0.430575609207 0.744815766811 -0.098116934299 +v -0.638014793396 1.230491757393 -0.244978487492 +v -0.622946262360 1.233280658722 -0.251465588808 +v -0.649592638016 1.222546815872 -0.254358708858 +v -0.645442724228 1.217762947083 -0.269892901182 +v -0.630394697189 1.220943450928 -0.275375068188 +v -0.619070529938 1.228546142578 -0.266649246216 +v -0.606110572815 1.143009781837 -0.209524273872 +v -0.590292215347 1.146337389946 -0.216171145439 +v -0.617876529694 1.134744167328 -0.219516158104 +v -0.614089488983 1.129821658134 -0.235923349857 +v -0.598005294800 1.133176445961 -0.242772758007 +v -0.586416721344 1.141480803490 -0.232462942600 +v -0.572516918182 1.054052591324 -0.175565481186 +v -0.555697917938 1.058142900467 -0.182277798653 +v -0.585446357727 1.045498132706 -0.185521006584 +v -0.581245422363 1.040752649307 -0.203099846840 +v -0.564207553864 1.044691920280 -0.210411846638 +v -0.551835060120 1.053359389305 -0.199682593346 +v -0.530359745026 0.946404516697 -0.139006793499 +v -0.512903213501 0.951150536537 -0.146695137024 +v -0.544089317322 0.937598705292 -0.149761617184 +v -0.540381193161 0.933445930481 -0.168263316154 +v -0.522706985474 0.938259720802 -0.175991654396 +v -0.508960247040 0.947188973427 -0.165071189404 +v -0.473415136337 0.870537042618 -0.112968623638 +v -0.496746063232 0.863225281239 -0.101937651634 +v -0.516067743301 0.851110696793 -0.117046415806 +v -0.510797500610 0.845018565655 -0.142522931099 +v -0.486820697784 0.852223873138 -0.153340578079 +v -0.467840671539 0.864946663380 -0.138649642467 +v -0.447163105011 0.810840010643 -0.089115977287 +v -0.472838640213 0.805846035480 -0.079120457172 +v -0.492668628693 0.793564498425 -0.095415353775 +v -0.486189365387 0.784938633442 -0.121517777443 +v -0.460333108902 0.791131556034 -0.131569087505 +v -0.440885305405 0.803529441357 -0.115472018719 +v -0.450312852859 0.753731548786 -0.070098817348 +v -0.431421279907 0.759420990944 -0.078914582729 +v -0.465086460114 0.742805838585 -0.082118272781 +v -0.460514783859 0.737773180008 -0.103004276752 +v -0.441336154938 0.743454098701 -0.111343443394 +v -0.426443099976 0.754368603230 -0.099310636520 +v -0.731904268265 1.409023046494 -0.283832073212 +v -0.731420993805 1.409527540207 -0.277567297220 +v -0.769669771194 1.473773002625 -0.284856706858 +v -0.769919872284 1.473968267441 -0.288533568382 +v -0.807954311371 1.532006978989 -0.292883962393 +v -0.809309005737 1.532471895218 -0.288937449455 +v -0.723148822784 1.397814750671 -0.277460843325 +v -0.725734949112 1.400135159492 -0.284406632185 +v -0.701467037201 1.393261909485 -0.299498915672 +v -0.702801704407 1.394067406654 -0.304610729218 +v -0.697797775269 1.322681307793 -0.245903372765 +v -0.678847789764 1.325425028801 -0.269638597965 +v -0.699045181274 1.318197965622 -0.247449636459 +v -0.679080247879 1.320086479187 -0.270336747169 +v -0.698448657990 1.258418440819 -0.191542923450 +v -0.699070453644 1.255869746208 -0.195368707180 +v -0.698896884918 1.187084913254 -0.134619593620 +v -0.700427770615 1.184316277504 -0.138689637184 +v -0.701871871948 1.162669658661 -0.121972262859 +v -0.711782455444 1.180882930756 -0.144968867302 +v -0.710798740387 1.249737977982 -0.202855288982 +v -0.711197614670 1.311830759048 -0.256590962410 +v -0.690308570862 1.311554193497 -0.279663801193 +v -0.713588476181 1.315556406975 -0.259247243404 +v -0.693629026413 1.312055587769 -0.281306147575 +v -0.714844465256 1.249986529350 -0.202514290810 +v -0.714670181274 1.182743430138 -0.144470751286 +v -0.703557968140 1.160912275314 -0.124656915665 +v -0.734780550003 1.184387803078 -0.107548713684 +v -0.803620576859 1.413166880608 -0.193729162216 +v -0.844019651413 1.455053806305 -0.184393405914 +v -0.807727098465 1.321138620377 -0.116503834724 +v -0.837025165558 1.372961163521 -0.126379728317 +v -0.771314382553 1.244080543518 -0.100617885590 +v -0.793653011322 1.271091222763 -0.097309827805 +v -0.731769084930 1.187012553215 -0.105778515339 +v -0.778274536133 1.234176158905 -0.089952230453 +v -0.774795055389 1.242721438408 -0.096917808056 +v -0.802556514740 1.267426371574 -0.087716221809 +v -0.781018733978 1.239013910294 -0.089828252792 +v -0.831202745438 1.315947771072 -0.093698978424 +v -0.857189416885 1.373258233070 -0.109514474869 +v -0.872247457504 1.439273834229 -0.146919488907 +v -0.862528800964 1.441547393799 -0.156704366207 +v -0.872767448425 1.465386867523 -0.168636918068 +v -0.871892452240 1.446012973785 -0.152757167816 +v -0.870913505554 1.465698003769 -0.171075582504 +v -0.872616052628 1.496040582657 -0.196074187756 +v -0.873492717743 1.469481587410 -0.172275424004 +v -0.844311237335 1.563365578651 -0.288278520107 +v -0.867714643478 1.493918657303 -0.196815609932 +v -0.870485305786 1.498056888580 -0.198610186577 +v -0.873506069183 1.498218655586 -0.200232744217 +v -0.873781919479 1.495349645615 -0.197271823883 +v -0.868160724640 1.436191439629 -0.160237908363 +v -0.874623298645 1.443897843361 -0.155241250992 +v -0.875429630280 1.468093872070 -0.173968076706 +v -0.875430583954 1.464208483696 -0.170832037926 +v -0.861469507217 1.539059877396 -0.244808673859 +v -0.864252090454 1.538134932518 -0.246580541134 +v -0.846224308014 1.561979532242 -0.289737492800 +v -0.836484193802 1.567539691925 -0.300393223763 +v -0.837390184402 1.566413164139 -0.303441166878 +v -0.780709743500 1.232831001282 -0.092110395432 +v -0.770603179932 1.241312861443 -0.120023488998 +v -0.805193901062 1.265119791031 -0.089168965816 +v -0.783527612686 1.236857414246 -0.091316342354 +v -0.834095478058 1.314088821411 -0.095762848854 +v -0.860008001328 1.371434450150 -0.112266540527 +v -0.874962329865 1.439385414124 -0.149586439133 +v -0.845883846283 1.368828058243 -0.133463740349 +v -0.873351573944 1.462928771973 -0.173678338528 +v -0.871895790100 1.493336915970 -0.199328541756 +v -0.840737104416 1.510570049286 -0.263315886259 +v -0.833376646042 1.531134724617 -0.288762927055 +v -0.817931175232 1.526331186295 -0.300622344017 +v -0.746751785278 1.402173876762 -0.290421187878 +v -0.796869993210 1.488108158112 -0.299173355103 +v -0.803301095963 1.423126697540 -0.242137193680 +v -0.853743076324 1.448746681213 -0.194176614285 +v -0.821331739426 1.314145565033 -0.119208931923 +v -0.793041229248 1.273641824722 -0.120415627956 +v -0.779705524445 1.238341212273 -0.096930265427 +v -0.758402109146 1.325504183769 -0.214042127132 +v -0.734133243561 1.393293976784 -0.292042940855 +v -0.736127614975 1.383604526520 -0.289822369814 +v -0.747549772263 1.393516778946 -0.284139096737 +v -0.713304281235 1.387033820152 -0.312869518995 +v -0.716605424881 1.378824830055 -0.315402686596 +v -0.667083024979 1.332947969437 -0.272325456142 +v -0.686036825180 1.396254181862 -0.300350457430 +v -0.652807712555 1.335969448090 -0.279133826494 +v -0.671698808670 1.397094845772 -0.306801915169 +v -0.641156673431 1.331952333450 -0.292787551880 +v -0.662131309509 1.392925381660 -0.323805451393 +v -0.665781974792 1.324501156807 -0.274403363466 +v -0.653313159943 1.326481461525 -0.280657827854 +v -0.643545627594 1.325591325760 -0.292931616306 +v -0.687883615494 1.396928071976 -0.306693255901 +v -0.677305936813 1.397392749786 -0.311640799046 +v -0.668898105621 1.393209457397 -0.326097100973 +v -0.639791965485 1.324838161469 -0.306407392025 +v -0.661513090134 1.386579990387 -0.338125854731 +v -0.642078876495 1.321270823479 -0.304058849812 +v -0.667977333069 1.387650251389 -0.338719785213 +v -0.640511274338 1.320248246193 -0.313241720200 +v -0.661991596222 1.385642766953 -0.342326313257 +v -0.643562793732 1.316686630249 -0.313483148813 +v -0.666442394257 1.385178923607 -0.344291776419 +v -0.716503143311 1.372074604034 -0.326735794544 +v -0.694771766663 1.309220075607 -0.296694934368 +v -0.710252761841 1.365118026733 -0.340708762407 +v -0.689024686813 1.304324030876 -0.313677370548 +v -0.695271492004 1.365952491760 -0.350932478905 +v -0.673334360123 1.305315852165 -0.323754280806 +v -0.676507711411 1.373834609985 -0.354276686907 +v -0.657118558884 1.312539339066 -0.327110052109 +v -0.713317871094 1.378292798996 -0.329542458057 +v -0.708588600159 1.374512910843 -0.340065002441 +v -0.695788145065 1.374732732773 -0.347389072180 +v -0.678169250488 1.378413438797 -0.351348221302 +v -0.690240859985 1.306376218796 -0.295807123184 +v -0.685710668564 1.302699327469 -0.310207158327 +v -0.671741962433 1.304181456566 -0.319831520319 +v -0.655930995941 1.309202790260 -0.323127806187 +v -0.634047985077 1.305329561234 -0.344313293695 +v -0.623847723007 1.313705205917 -0.334188282490 +v -0.622318029404 1.319812774658 -0.335038781166 +v -0.636306285858 1.308283686638 -0.347529143095 +v -0.657687187195 1.368595123291 -0.372926771641 +v -0.657169342041 1.375516891479 -0.371039777994 +v -0.642990112305 1.381778359413 -0.362855851650 +v -0.649636030197 1.380834460258 -0.366766542196 +v -0.621777534485 1.454902648926 -0.452792227268 +v -0.627440929413 1.456566333771 -0.455327212811 +v -0.631230592728 1.454094767570 -0.456920742989 +v -0.635877132416 1.447454333305 -0.459561079741 +v -0.624344110489 1.466953277588 -0.470377117395 +v -0.627939224243 1.463238477707 -0.473223686218 +v -0.611341238022 1.455082416534 -0.477429419756 +v -0.615406513214 1.452845573425 -0.479317456484 +v -0.596461057663 1.429937839508 -0.461888015270 +v -0.585901737213 1.430440187454 -0.486534267664 +v -0.568025112152 1.390513300896 -0.463041514158 +v -0.556784152985 1.394706368446 -0.490542352200 +v -0.620961666107 1.366299271584 -0.374592006207 +v -0.602149963379 1.328221082687 -0.365407556295 +v -0.554142475128 1.359774947166 -0.457094848156 +v -0.544462203979 1.367879867554 -0.489594697952 +v -0.554653167725 1.386860847473 -0.492153495550 +v -0.540938138962 1.330043315887 -0.446610987186 +v -0.526558876038 1.326992034912 -0.474644184113 +v -0.532519340515 1.298381805420 -0.428922235966 +v -0.517386436462 1.295669794083 -0.456924021244 +v -0.517901897430 1.258272409439 -0.422607213259 +v -0.512837409973 1.254708290100 -0.429519742727 +v -0.540863037109 1.262001872063 -0.384749233723 +v -0.516560077667 1.256026744843 -0.420525699854 +v -0.516956090927 1.229684472084 -0.400133073330 +v -0.512316942215 1.247911930084 -0.421232968569 +v -0.543984174728 1.231948614120 -0.360431998968 +v -0.536952972412 1.211765289307 -0.364224553108 +v -0.613957405090 1.310405731201 -0.337616801262 +v -0.617177486420 1.305488467216 -0.336197882891 +v -0.547671794891 1.226849794388 -0.359812885523 +v -0.623764514923 1.295241832733 -0.345131874084 +v -0.550174236298 1.224074363708 -0.363058030605 +v -0.611073017120 1.422493457794 -0.469076097012 +v -0.633231639862 1.343430519104 -0.382424205542 +v -0.617163181305 1.313082218170 -0.376247048378 +v -0.627777338028 1.298094511032 -0.349091798067 +v -0.587876319885 1.425273895264 -0.487512648106 +v -0.559880733490 1.391711711884 -0.492971718311 +v -0.546575784683 1.364702701569 -0.491101324558 +v -0.556817054749 1.384633302689 -0.494335830212 +v -0.581263065338 1.378509998322 -0.469431370497 +v -0.528251409531 1.325081706047 -0.475629925728 +v -0.562163352966 1.334616303444 -0.456040829420 +v -0.519301652908 1.293952107430 -0.458499312401 +v -0.546352624893 1.291024565697 -0.436513841152 +v -0.514696121216 1.253158092499 -0.430215626955 +v -0.520211696625 1.255135059357 -0.424808651209 +v -0.520582675934 1.251160979271 -0.424345523119 +v -0.549528598785 1.249001860619 -0.397651523352 +v -0.514673948288 1.245489358902 -0.423131406307 +v -0.518534421921 1.226596713066 -0.399023622274 +v -0.549133777618 1.221839308739 -0.366844773293 +v -0.538474559784 1.209404468536 -0.364824950695 +v -0.528185606003 1.214612126350 -0.376569181681 +v -0.529793500900 1.213744163513 -0.379284560680 +v -0.549133777618 1.221839308739 -0.366844773293 +v -0.752520561218 1.404311418533 -0.285495400429 +v -0.799973726273 1.489697456360 -0.296636253595 +v 0.070177555084 1.274966716766 0.089686870575 +v 0.067983150482 1.274402737617 0.090926527977 +v 0.066224336624 1.272931575775 0.092114746571 +v 0.065168857574 1.270776987076 0.093070566654 +v 0.064977169037 1.268267154694 0.093648433685 +v 0.065678596497 1.265784263611 0.093760550022 +v 0.067166328430 1.263706088066 0.093389570713 +v 0.069213867188 1.262349128723 0.092592179775 +v 0.071509599686 1.261919736862 0.091489672661 +v 0.073703765869 1.262483835220 0.090249955654 +v 0.075462818146 1.263954997063 0.089061796665 +v 0.076518297195 1.266109466553 0.088105916977 +v 0.076709985733 1.268619298935 0.087528049946 +v 0.076008558273 1.271102190018 0.087416052818 +v 0.074520826340 1.273180484772 0.087786972523 +v 0.072473287582 1.274537563324 0.088584363461 +v 0.068333148956 1.278423786163 0.086334288120 +v 0.064796447754 1.277514934540 0.088332414627 +v 0.061961412430 1.275143623352 0.090247511864 +v 0.060260057449 1.271671056747 0.091788053513 +v 0.059951066971 1.267625689507 0.092719554901 +v 0.061081647873 1.263623714447 0.092900037766 +v 0.063479423523 1.260274052620 0.092302203178 +v 0.066779851913 1.258086919785 0.091017007828 +v 0.070479869843 1.257395267487 0.089240074158 +v 0.074016571045 1.258304119110 0.087241888046 +v 0.076851606369 1.260675430298 0.085326790810 +v 0.078552961349 1.264147996902 0.083786249161 +v 0.078861951828 1.268193244934 0.082854807377 +v 0.077731370926 1.272195339203 0.082674264908 +v 0.075333595276 1.275544881821 0.083272099495 +v 0.072033166885 1.277732014656 0.084557354450 +v 0.065737485886 1.280808687210 0.081495702267 +v 0.061116695404 1.279621124268 0.084106385708 +v 0.057412624359 1.276522874832 0.086608529091 +v 0.055189609528 1.271985650063 0.088621377945 +v 0.054785966873 1.266700267792 0.089838445187 +v 0.056262969971 1.261471390724 0.090074300766 +v 0.059396028519 1.257094979286 0.089293181896 +v 0.063708066940 1.254237174988 0.087613999844 +v 0.068542480469 1.253333449364 0.085292279720 +v 0.073163509369 1.254521012306 0.082681596279 +v 0.076867341995 1.257619142532 0.080179393291 +v 0.079090595245 1.262156486511 0.078166604042 +v 0.079494237900 1.267441749573 0.076949536800 +v 0.078016996384 1.272670745850 0.076713681221 +v 0.074883937836 1.277047157288 0.077494800091 +v 0.070571899414 1.279904842377 0.079174041748 +v 0.062948465347 1.280951499939 0.076157152653 +v 0.057946681976 1.279666066170 0.078983008862 +v 0.053937673569 1.276312589645 0.081691384315 +v 0.051531553268 1.271401524544 0.083870053291 +v 0.051094532013 1.265680670738 0.085187315941 +v 0.052693367004 1.260020971298 0.085442662239 +v 0.056084394455 1.255283951759 0.084597170353 +v 0.060751676559 1.252190828323 0.082779586315 +v 0.065984487534 1.251212596893 0.080266594887 +v 0.070986270905 1.252498149872 0.077440857887 +v 0.074995517731 1.255851507187 0.074732422829 +v 0.077401638031 1.260762453079 0.072553753853 +v 0.077838659286 1.266483306885 0.071236491203 +v 0.076239824295 1.272143006325 0.070981144905 +v 0.072848558426 1.276880025864 0.071826636791 +v 0.068181276321 1.279973268509 0.073644220829 +v 0.060390472412 1.278830766678 0.071131527424 +v 0.055769443512 1.277642965317 0.073742210865 +v 0.052065610886 1.274544715881 0.076244413853 +v 0.049842596054 1.270007610321 0.078257262707 +v 0.049438953400 1.264722228050 0.079474270344 +v 0.050915956497 1.259493350983 0.079710185528 +v 0.054049015045 1.255116820335 0.078929066658 +v 0.058361053467 1.252259254456 0.077249825001 +v 0.063195466995 1.251355409622 0.074928104877 +v 0.067816495895 1.252542972565 0.072317481041 +v 0.071520328522 1.255641222000 0.069815278053 +v 0.073743581772 1.260178327560 0.067802429199 +v 0.074147224426 1.265463709831 0.066585421562 +v 0.072669982910 1.270692825317 0.066349506378 +v 0.069536924362 1.275068998337 0.067130684853 +v 0.065225124359 1.277926802635 0.068809866905 +v 0.067524909973 1.268451929092 0.093102991581 +v 0.069175004959 1.268501400948 0.092242240906 +v 0.071127653122 1.268560051918 0.091223716736 +v 0.073080301285 1.268618583679 0.090205192566 +v 0.074730157852 1.268668174744 0.089344441891 +v 0.070652723312 1.273131608963 0.090560674667 +v 0.068799734116 1.272726535797 0.091593861580 +v 0.067301273346 1.271686553955 0.092565476894 +v 0.066444635391 1.270407199860 0.093231320381 +v 0.066426753998 1.268414258957 0.093641161919 +v 0.066850900650 1.266429066658 0.093780994415 +v 0.067962169647 1.265214204788 0.093459844589 +v 0.069663047791 1.264270186424 0.092762410641 +v 0.071587085724 1.263978362083 0.091825425625 +v 0.073440074921 1.264383435249 0.090792238712 +v 0.074938535690 1.265423536301 0.089820683002 +v 0.075786352158 1.266697168350 0.089119791985 +v 0.075813055038 1.268695831299 0.088744938374 +v 0.075380325317 1.270675182343 0.088570117950 +v 0.074277639389 1.271895647049 0.088926315308 +v 0.072576761246 1.272839784622 0.089623689651 +v 0.004819393158 1.270663738251 0.106835365295 +v 0.004348754883 1.274211406708 0.103122293949 +v 0.008491754532 1.273808002472 0.103105425835 +v 0.007389783859 1.270413398743 0.106824874878 +v 0.012167453766 1.271865367889 0.103312313557 +v 0.009670257568 1.269208192825 0.106953203678 +v 0.014816045761 1.268679141998 0.103711485863 +v 0.011313676834 1.267231464386 0.107200860977 +v 0.016034841537 1.264734506607 0.104242146015 +v 0.012069702148 1.264783978462 0.107530117035 +v 0.015637636185 1.260631918907 0.104823470116 +v 0.011823415756 1.262238621712 0.107890844345 +v 0.013685464859 1.256995797157 0.105367064476 +v 0.010612010956 1.259982705116 0.108228087425 +v 0.010475158691 1.254379987717 0.105790019035 +v 0.008620262146 1.258359789848 0.108490467072 +v 0.006495475769 1.253182649612 0.106028079987 +v 0.006151199341 1.257616877556 0.108638167381 +v 0.002352476120 1.253586053848 0.106044888496 +v 0.003580808640 1.257867097855 0.108648657799 +v -0.001322984695 1.255528688431 0.105838000774 +v 0.001300334930 1.259072422981 0.108520269394 +v -0.003971815109 1.258714914322 0.105438828468 +v -0.000343084335 1.261049270630 0.108272612095 +v -0.005190372467 1.262659549713 0.104908168316 +v -0.001099109650 1.263496637344 0.107943356037 +v -0.004793405533 1.266762256622 0.104326844215 +v -0.000852823257 1.266042113304 0.107582688332 +v -0.002841234207 1.270398139954 0.103783249855 +v 0.000358581543 1.268298029900 0.107245445251 +v 0.000369071960 1.273014068604 0.103360295296 +v 0.002350330353 1.269920825958 0.106983006001 +v 0.003931760788 1.276739597321 0.097712039948 +v 0.009344816208 1.276212692261 0.097690045834 +v 0.014147281647 1.273674488068 0.097960352898 +v 0.017608165741 1.269511461258 0.098481893539 +v 0.019200325012 1.264357566833 0.099175214767 +v 0.018681526184 1.258997201920 0.099934816360 +v 0.016130685806 1.254246473312 0.100645005703 +v 0.011936426163 1.250828742981 0.101197659969 +v 0.006736755371 1.249264478683 0.101508677006 +v 0.001323699951 1.249791383743 0.101530730724 +v -0.003478765488 1.252329587936 0.101260423660 +v -0.006939411163 1.256492614746 0.100738883018 +v -0.008531808853 1.261646509171 0.100045561790 +v -0.008013010025 1.267006874084 0.099285960197 +v -0.005462169647 1.271757602692 0.098575711250 +v -0.001267671585 1.275175333023 0.098023056984 +v 0.003712654114 1.277051687241 0.091699361801 +v 0.009571552277 1.276481389999 0.091675460339 +v 0.014769792557 1.273733854294 0.091968059540 +v 0.018515825272 1.269227981567 0.092532575130 +v 0.020239114761 1.263649225235 0.093283057213 +v 0.019677639008 1.257847428322 0.094105184078 +v 0.016916751862 1.252705335617 0.094873905182 +v 0.012376546860 1.249006032944 0.095472097397 +v 0.006748676300 1.247312784195 0.095808684826 +v 0.000889539719 1.247883200645 0.095832526684 +v -0.004308462143 1.250630378723 0.095539927483 +v -0.008054494858 1.255136489868 0.094975411892 +v -0.009777784348 1.260715007782 0.094224989414 +v -0.009216308594 1.266516923904 0.093402862549 +v -0.006455421448 1.271659016609 0.092634141445 +v -0.001915454865 1.275358438492 0.092035949230 +v 0.003724575043 1.275099992752 0.085999369621 +v 0.009137630463 1.274572968483 0.085977315903 +v 0.013940095901 1.272034764290 0.086247682571 +v 0.017400741577 1.267871737480 0.086769223213 +v 0.018993139267 1.262717843056 0.087462544441 +v 0.018474340439 1.257357597351 0.088222086430 +v 0.015923500061 1.252606868744 0.088932335377 +v 0.011729001999 1.249189138412 0.089484930038 +v 0.006529569626 1.247624635696 0.089795947075 +v 0.001116514206 1.248151659966 0.089817941189 +v -0.003685951233 1.250689744949 0.089547634125 +v -0.007146835327 1.254852890968 0.089026153088 +v -0.008738994598 1.260006904602 0.088332772255 +v -0.008220195770 1.265367150307 0.087573230267 +v -0.005669355392 1.270117759705 0.086863040924 +v -0.001475095749 1.273535490036 0.086310386658 +v 0.000261068344 1.263721823692 0.108568012714 +v 0.000306606293 1.265732765198 0.108267664909 +v 0.001283168793 1.267090082169 0.108078360558 +v 0.001492738724 1.263846516609 0.108560204506 +v 0.005061388016 1.268813371658 0.107770264149 +v 0.007216453552 1.268672227859 0.107751905918 +v 0.007727861404 1.264456152916 0.108364582062 +v 0.005536317825 1.264241814613 0.108433365822 +v 0.002977371216 1.268257856369 0.107884883881 +v 0.003344774246 1.264027595520 0.108502089977 +v 0.009113311768 1.267855644226 0.107832670212 +v 0.009579896927 1.264637112617 0.108306467533 +v 0.010335683823 1.266713142395 0.107952952385 +v 0.010796070099 1.264751791954 0.108237385750 +v 0.010741710663 1.262735128403 0.108502686024 +v 0.009773969650 1.261383295059 0.108727037907 +v 0.008079767227 1.260215759277 0.108920395374 +v 0.005995750427 1.259660124779 0.109035074711 +v 0.003840684891 1.259801387787 0.109053432941 +v 0.001943826675 1.260617733002 0.108972728252 +v 0.000712633133 1.261754751205 0.108817398548 +v -0.090843439102 0.711956977844 -0.100321829319 +v -0.097157239914 0.660702586174 -0.115609467030 +v -0.006523370743 0.676110148430 -0.150974154472 +v -0.006254673004 0.734257340431 -0.141055881977 +v -0.106460332870 0.595456779003 -0.120525121689 +v -0.013854026794 0.609138488770 -0.144045293331 +v 0.159080028534 0.595945835114 -0.117241799831 +v 0.082373142242 0.601140439510 -0.140979409218 +v 0.217724084854 0.633673191071 -0.043690085411 +v 0.161948204041 0.658787310123 -0.116667926311 +v 0.161992549896 0.716392397881 -0.109141111374 +v 0.200988769531 0.700885295868 -0.057521402836 +v 0.082037210464 0.736163735390 -0.142028212547 +v 0.083940982819 0.671887874603 -0.145761489868 +v -0.052839994431 0.668570876122 -0.136453270912 +v -0.051985740662 0.724966228008 -0.126949429512 +v -0.060494899750 0.603041768074 -0.130789637566 +v 0.039752244949 0.676460027695 -0.152075648308 +v 0.039582014084 0.736532151699 -0.145459830761 +v 0.035222053528 0.606680989265 -0.146267235279 +v 0.123104095459 0.599229633808 -0.133650958538 +v 0.124687910080 0.666198194027 -0.136043965816 +v 0.123418569565 0.728347480297 -0.130160868168 +v 0.192488431931 0.646883368492 -0.081060171127 +v 0.192901372910 0.580796957016 -0.078956365585 +v 0.191608905792 0.708395838737 -0.080889344215 +v -0.110157966614 0.521872341633 -0.123427271843 +v -0.020442485809 0.542563259602 -0.144708812237 +v -0.109526634216 0.464789211750 -0.130063176155 +v -0.029718160629 0.474508851767 -0.155036568642 +v 0.068801403046 0.477472692728 -0.140547931194 +v 0.076097488403 0.537705183029 -0.135993599892 +v 0.162404775620 0.526327550411 -0.118127703667 +v 0.165109157562 0.450441986322 -0.139342069626 +v 0.228643178940 0.555671572685 -0.027355194092 +v 0.238083362579 0.474860131741 -0.044692456722 +v -0.066143035889 0.532799482346 -0.133282661438 +v -0.084163904190 0.454995065928 -0.141852140427 +v 0.016598701477 0.487684130669 -0.148972153664 +v 0.027564287186 0.544286847115 -0.143417119980 +v 0.122592210770 0.530475378036 -0.130063533783 +v 0.122491121292 0.461961984634 -0.139939665794 +v 0.199285984039 0.507649183273 -0.092158377171 +v 0.206475257874 0.438298881054 -0.125071763992 +v 0.236012935638 0.432352960110 -0.098448753357 +v -0.090003728867 0.713547110558 -0.098060905933 +v -0.096627950668 0.660236895084 -0.111967146397 +v -0.006083011627 0.675602138042 -0.146969020367 +v -0.005826711655 0.733766078949 -0.137710273266 +v -0.104192733765 0.594722390175 -0.114763200283 +v -0.013294696808 0.609091877937 -0.139524400234 +v 0.157139778137 0.595473289490 -0.113379478455 +v 0.081852197647 0.601088523865 -0.137477576733 +v 0.215976238251 0.632654249668 -0.042290151119 +v 0.160015106201 0.658218741417 -0.113578557968 +v 0.160174369812 0.716303348541 -0.106486916542 +v 0.199095010757 0.698588788509 -0.055205583572 +v 0.081353425980 0.736018717289 -0.138786435127 +v 0.083306312561 0.671617090702 -0.142443776131 +v -0.051246881485 0.668073892593 -0.131973326206 +v -0.051016092300 0.724832594395 -0.123342573643 +v -0.058906555176 0.602810740471 -0.125979125500 +v 0.039349555969 0.676087617874 -0.148158311844 +v 0.039282560349 0.736191391945 -0.142057716846 +v 0.034797668457 0.606659471989 -0.142599940300 +v 0.122372865677 0.599070608616 -0.130384206772 +v 0.123716592789 0.665827274323 -0.132826924324 +v 0.122337818146 0.727991521358 -0.127091944218 +v 0.189619779587 0.645916223526 -0.078319907188 +v 0.190189838409 0.580016136169 -0.076071262360 +v 0.189076185226 0.708024799824 -0.078644990921 +v -0.109309196472 0.521241247654 -0.119572401047 +v -0.019951820374 0.542360663414 -0.139999091625 +v -0.107759237289 0.462610036135 -0.125670790672 +v -0.029715299606 0.473200440407 -0.152146577835 +v 0.068043947220 0.475595116615 -0.137133598328 +v 0.075683832169 0.537864387035 -0.132634162903 +v 0.160769462585 0.526261806488 -0.115079045296 +v 0.163467884064 0.450367748737 -0.135400056839 +v 0.221496105194 0.555388748646 -0.030082941055 +v 0.230763673782 0.473996579647 -0.045731902122 +v -0.064914464951 0.532697319984 -0.129568278790 +v -0.083212852478 0.454447656870 -0.137265324593 +v 0.015990495682 0.486549288034 -0.145901143551 +v 0.027146339417 0.544277787209 -0.140076875687 +v 0.121834754944 0.530655384064 -0.126233458519 +v 0.121745109558 0.460826694965 -0.136413335800 +v 0.196135759354 0.507262945175 -0.088767468929 +v 0.203240156174 0.436599731445 -0.122523009777 +v 0.234281539917 0.431487858295 -0.096786618233 +v -0.090369224548 0.714081227779 -0.101824402809 +v -0.097647190094 0.660447895527 -0.114232182503 +v -0.108165264130 0.595181941986 -0.117026686668 +v 0.217889308929 0.634391546249 -0.045080006123 +v 0.200847625732 0.698190927505 -0.056285917759 +v -0.110817670822 0.521583199501 -0.122230708599 +v -0.109757661819 0.463707029819 -0.127314388752 +v -0.029812097549 0.473399698734 -0.154148936272 +v 0.068494558334 0.476215690374 -0.139647960663 +v 0.164371013641 0.449653983116 -0.137532711029 +v 0.229068279266 0.556188762188 -0.032200336456 +v 0.238276958466 0.475655049086 -0.049598276615 +v -0.083764553070 0.453088641167 -0.140538215637 +v 0.016265869141 0.486640363932 -0.148057878017 +v 0.122293949127 0.461069822311 -0.137957692146 +v 0.204746484756 0.437017977238 -0.123723983765 +v 0.236302852631 0.434788256884 -0.099483311176 +# 5612 vertices + +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.999996423721 0.002676663222 -0.000000290167 +vn 0.999996423721 0.002676663222 -0.000000290167 +vn 0.923878908157 0.001448502531 -0.382682144642 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.923878908157 0.001448502531 -0.382682144642 +vn 0.923878908157 0.001448502531 -0.382682144642 +vn 0.707109510899 -0.000000117219 -0.707104086876 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.707109510899 -0.000000117219 -0.707104086876 +vn 0.707109510899 -0.000000117219 -0.707104086876 +vn 0.382688552141 -0.001448765281 -0.923876285553 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.382688552141 -0.001448765281 -0.923876285553 +vn 0.382688552141 -0.001448765281 -0.923876285553 +vn 0.000007046216 -0.002676850883 -0.999996423721 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn 0.000007046216 -0.002676850883 -0.999996423721 +vn 0.000007046216 -0.002676850883 -0.999996423721 +vn -0.382675558329 -0.003497409867 -0.923876166344 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.382675558329 -0.003497409867 -0.923876166344 +vn -0.382675558329 -0.003497409867 -0.923876166344 +vn -0.707099020481 -0.003785590874 -0.707104384899 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.707099020481 -0.003785590874 -0.707104384899 +vn -0.707099020481 -0.003785590874 -0.707104384899 +vn -0.923873543739 -0.003497653874 -0.382681846619 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.923873543739 -0.003497653874 -0.382681846619 +vn -0.923873543739 -0.003497653874 -0.382681846619 +vn -0.999996423721 -0.002677109092 -0.000000101558 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.999996423721 -0.002677109092 -0.000000101558 +vn -0.999996423721 -0.002677109092 -0.000000101558 +vn -0.923879206181 -0.001448904164 0.382681488991 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.923879206181 -0.001448904164 0.382681488991 +vn -0.923879206181 -0.001448904164 0.382681488991 +vn -0.707109510899 -0.000000233324 0.707104027271 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.707109510899 -0.000000233324 0.707104027271 +vn -0.707109510899 -0.000000233324 0.707104027271 +vn -0.382688343525 0.001448100782 0.923876345158 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.382688343525 0.001448100782 0.923876345158 +vn -0.382688343525 0.001448100782 0.923876345158 +vn -0.000006930147 0.002676741453 0.999996423721 +vn -0.000775693450 0.289909631014 0.957053720951 +vn 0.365767657757 0.290692329407 0.884144783020 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.000006930147 0.002676741453 0.999996423721 +vn -0.000006930147 0.002676741453 0.999996423721 +vn 0.382675796747 0.003497589612 0.923876047134 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.382675796747 0.003497589612 0.923876047134 +vn 0.382675796747 0.003497589612 0.923876047134 +vn 0.707099556923 0.003785443027 0.707103908062 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.707099556923 0.003785443027 0.707103908062 +vn 0.707099556923 0.003785443027 0.707103908062 +vn 0.923873484135 0.003497370984 0.382681995630 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.923873484135 0.003497370984 0.382681995630 +vn 0.923873484135 0.003497370984 0.382681995630 +vn 0.999996423721 0.002676663222 -0.000000290167 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.387655943632 0.908313095570 0.157131060958 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.297270774841 0.908917307854 0.292402744293 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.161999627948 0.909521639347 0.382787853479 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn 0.157127469778 0.910376429558 0.382786720991 +vn 0.157127469778 0.910376429558 0.382786720991 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.157127469778 0.910376429558 0.382786720991 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.292393177748 0.910480380058 0.292458146811 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.383436083794 0.909999251366 0.157727986574 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.478781968355 0.856518745422 0.192726433277 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.362025827169 0.861238956451 0.356657683849 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.196696266532 0.862110078335 0.466986924410 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.002309706295 0.862733006477 0.505654513836 +vn 0.192080840468 0.863147914410 0.466991037130 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.002309706295 0.862733006477 0.505654513836 +vn 0.192080840468 0.863147914410 0.466991037130 +vn 0.356875717640 0.863294601440 0.356878399849 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn 0.192080840468 0.863147914410 0.466991037130 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.466988563538 0.863148868084 0.192082583904 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.466988563538 0.863148868084 0.192082583904 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn 0.466988563538 0.863148868084 0.192082583904 +vn -0.923878908157 -0.001449008239 0.382682144642 +vn -0.999996423721 -0.002678310033 0.000000691564 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.923878908157 -0.001449008239 0.382682144642 +vn -0.707109570503 0.000000921165 0.707103967667 +vn -0.923878908157 -0.001449008239 0.382682144642 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.707109570503 0.000000921165 0.707103967667 +vn -0.382688790560 0.001448393799 0.923876166344 +vn -0.707109570503 0.000000921165 0.707103967667 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.382688790560 0.001448393799 0.923876166344 +vn -0.000007515317 0.002677260898 0.999996423721 +vn -0.382688790560 0.001448393799 0.923876166344 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.000007515317 0.002677260898 0.999996423721 +vn 0.382675856352 0.003497111378 0.923876047134 +vn -0.000007515317 0.002677260898 0.999996423721 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.000832362915 0.310922086239 0.950435042381 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.382675856352 0.003497111378 0.923876047134 +vn 0.707099318504 0.003786612069 0.707104086876 +vn 0.382675856352 0.003497111378 0.923876047134 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.707099318504 0.003786612069 0.707104086876 +vn 0.923873662949 0.003498079954 0.382681578398 +vn 0.707099318504 0.003786612069 0.707104086876 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.923873662949 0.003498079954 0.382681578398 +vn 0.999996423721 0.002677112818 0.000000715744 +vn 0.923873662949 0.003498079954 0.382681578398 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.999996423721 0.002677112818 0.000000715744 +vn 0.923879086971 0.001448885887 -0.382681787014 +vn 0.999996423721 0.002677112818 0.000000715744 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.923879086971 0.001448885887 -0.382681787014 +vn 0.707109153271 0.000000960799 -0.707104384899 +vn 0.923879086971 0.001448885887 -0.382681787014 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.707109153271 0.000000960799 -0.707104384899 +vn 0.382688552141 -0.001448108349 -0.923876285553 +vn 0.707109153271 0.000000960799 -0.707104384899 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.382688552141 -0.001448108349 -0.923876285553 +vn 0.000006867277 -0.002676919103 -0.999996423721 +vn 0.382688552141 -0.001448108349 -0.923876285553 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn 0.000006867277 -0.002676919103 -0.999996423721 +vn -0.382675290108 -0.003497047350 -0.923876285553 +vn 0.000006867277 -0.002676919103 -0.999996423721 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.382675290108 -0.003497047350 -0.923876285553 +vn -0.707099556923 -0.003786611836 -0.707103848457 +vn -0.382675290108 -0.003497047350 -0.923876285553 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.707099556923 -0.003786611836 -0.707103848457 +vn -0.923873543739 -0.003497794271 -0.382681936026 +vn -0.707099556923 -0.003786611836 -0.707103848457 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.923873543739 -0.003497794271 -0.382681936026 +vn -0.999996423721 -0.002678310033 0.000000691564 +vn -0.923873543739 -0.003497794271 -0.382681936026 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.999996423721 -0.002678310033 0.000000691564 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.387655943632 0.908313095570 0.157131060958 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.297270774841 0.908917307854 0.292402744293 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.002435945906 0.910033643246 0.414527237415 +vn 0.157127469778 0.910376429558 0.382786720991 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.363199502230 0.311703413725 0.878024518490 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn 0.157127469778 0.910376429558 0.382786720991 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.157127469778 0.910376429558 0.382786720991 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.292393177748 0.910480380058 0.292458146811 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.383436083794 0.909999251366 0.157727986574 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.478781968355 0.856518745422 0.192726433277 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.362025827169 0.861238956451 0.356657683849 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.196696266532 0.862110078335 0.466986924410 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn 0.192080840468 0.863147914410 0.466991037130 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.000775693450 0.289909631014 0.957053720951 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.192080840468 0.863147914410 0.466991037130 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.192080840468 0.863147914410 0.466991037130 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.356875717640 0.863294601440 0.356878399849 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn 0.466988563538 0.863148868084 0.192082583904 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.466988563538 0.863148868084 0.192082583904 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.466988563538 0.863148868084 0.192082583904 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.169224634767 0.977109313011 0.128920063376 +vn -0.042956437916 0.949172854424 0.311810165644 +vn 0.332912445068 0.935498297215 0.118373312056 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.086222581565 0.921112477779 0.379628002644 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.704381942749 0.650786757469 0.283412605524 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn 0.047306902707 0.969304382801 0.241269692779 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.236780017614 0.949869990349 0.204162240028 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.021251596510 0.999252557755 0.032289963216 +vn 0.083970263600 0.986458778381 -0.140883311629 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.231376439333 0.864601671696 0.446014404297 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.190288290381 0.690781593323 0.697575151920 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.190288290381 0.690781593323 0.697575151920 +vn 0.052971653640 0.880331635475 0.471391826868 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.265035003424 0.962137639523 -0.063620537519 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.265035003424 0.962137639523 -0.063620537519 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.248550355434 0.968081712723 0.032257635146 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.665100693703 0.708603322506 0.235631942749 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.132732138038 0.979921698570 0.148780390620 +vn -0.125670656562 0.990344762802 0.058515954763 +vn -0.208323746920 0.938979506493 0.273712754250 +vn 0.058749053627 0.997522294521 0.038701053709 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.129505842924 0.973472297192 0.188626378775 +vn 0.522200107574 0.730581760406 0.439951479435 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn 0.704381942749 0.650786757469 0.283412605524 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.439923584461 0.807062745094 0.393848896027 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.118587732315 0.931522011757 -0.343807578087 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.452575981617 0.878102481365 -0.155277132988 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.165170222521 0.957066774368 0.238205745816 +vn -0.086222581565 0.921112477779 0.379628002644 +vn 0.014983816072 0.979317367077 0.201774612069 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.236780017614 0.949869990349 0.204162240028 +vn -0.072743989527 0.993828594685 0.083743982017 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.079861029983 0.974357426167 0.210356533527 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.132732138038 0.979921698570 0.148780390620 +vn -0.236780017614 0.949869990349 0.204162240028 +vn 0.005805051886 0.998719394207 0.050258178264 +vn 0.058749053627 0.997522294521 0.038701053709 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.005805051886 0.998719394207 0.050258178264 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn 0.169224634767 0.977109313011 0.128920063376 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.042956437916 0.949172854424 0.311810165644 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.081451788545 0.994412124157 0.067157849669 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.072743989527 0.993828594685 0.083743982017 +vn 0.058749053627 0.997522294521 0.038701053709 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.125670656562 0.990344762802 0.058515954763 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.263052493334 0.964336454868 0.029301045462 +vn -0.439923584461 0.807062745094 0.393848896027 +vn -0.456301867962 0.849555730820 0.264657646418 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn -0.081451788545 0.994412124157 0.067157849669 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.375906050205 0.924689590931 0.060363583267 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn 0.083970263600 0.986458778381 -0.140883311629 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.042956437916 0.949172854424 0.311810165644 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.125670656562 0.990344762802 0.058515954763 +vn 0.263052493334 0.964336454868 0.029301045462 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn 0.083970263600 0.986458778381 -0.140883311629 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.209413021803 0.874598622322 -0.437291055918 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.042956437916 0.949172854424 0.311810165644 +vn -0.079861029983 0.974357426167 0.210356533527 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.042343866080 0.998464703560 0.035709671676 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.316314905882 0.721284568310 0.616192698479 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.005805051886 0.998719394207 0.050258178264 +vn -0.021251596510 0.999252557755 0.032289963216 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.410649836063 0.890585064888 0.195512071252 +vn -0.021251596510 0.999252557755 0.032289963216 +vn 0.005805051886 0.998719394207 0.050258178264 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.043550744653 0.799514293671 0.599066138268 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.433224350214 0.852531194687 0.292416185141 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.232279226184 0.908129572868 0.348349064589 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.522200107574 0.730581760406 0.439951479435 +vn -0.410649836063 0.890585064888 0.195512071252 +vn 0.005805051886 0.998719394207 0.050258178264 +vn -0.236780017614 0.949869990349 0.204162240028 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.410649836063 0.890585064888 0.195512071252 +vn -0.236780017614 0.949869990349 0.204162240028 +vn -0.086222581565 0.921112477779 0.379628002644 +vn -0.109717316926 0.925979495049 0.361281156540 +vn 0.014983816072 0.979317367077 0.201774612069 +vn 0.042343866080 0.998464703560 0.035709671676 +vn 0.165170222521 0.957066774368 0.238205745816 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn -0.111254252493 0.972327888012 0.205428630114 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.081451788545 0.994412124157 0.067157849669 +vn -0.089727103710 0.922582089901 0.375221759081 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn 0.522200107574 0.730581760406 0.439951479435 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.047306902707 0.969304382801 0.241269692779 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.081451788545 0.994412124157 0.067157849669 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.209413021803 0.874598622322 -0.437291055918 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.108999080956 0.947661638260 0.300094276667 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.129825502634 0.989126026630 0.069101937115 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.129505842924 0.973472297192 0.188626378775 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.665100693703 0.708603322506 0.235631942749 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.052971653640 0.880331635475 0.471391826868 +vn 0.190288290381 0.690781593323 0.697575151920 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.231376439333 0.864601671696 0.446014404297 +vn -0.316314905882 0.721284568310 0.616192698479 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.140165805817 0.920780718327 0.364028096199 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.111254252493 0.972327888012 0.205428630114 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.042343866080 0.998464703560 0.035709671676 +vn 0.042343866080 0.998464703560 0.035709671676 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.165170222521 0.957066774368 0.238205745816 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.081451788545 0.994412124157 0.067157849669 +vn 0.014983816072 0.979317367077 0.201774612069 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.057531148195 0.978615164757 0.197490662336 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.014983816072 0.979317367077 0.201774612069 +vn -0.111254252493 0.972327888012 0.205428630114 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn 0.047306902707 0.969304382801 0.241269692779 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.452575981617 0.878102481365 -0.155277132988 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.439923584461 0.807062745094 0.393848896027 +vn -0.125670656562 0.990344762802 0.058515954763 +vn -0.125670656562 0.990344762802 0.058515954763 +vn -0.439923584461 0.807062745094 0.393848896027 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.097139805555 0.825904786587 0.555378377438 +vn 0.017310172319 0.949390113354 0.313621997833 +vn 0.017310172319 0.949390113354 0.313621997833 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.288402497768 0.898042201996 0.332181036472 +vn 0.522200107574 0.730581760406 0.439951479435 +vn 0.704381942749 0.650786757469 0.283412605524 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.005251220893 0.929640710354 0.368429929018 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.522200107574 0.730581760406 0.439951479435 +vn 0.647070944309 0.737142920494 0.194729119539 +vn -0.057531148195 0.978615164757 0.197490662336 +vn 0.014983816072 0.979317367077 0.201774612069 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.456301867962 0.849555730820 0.264657646418 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.118587732315 0.931522011757 -0.343807578087 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn -0.316314905882 0.721284568310 0.616192698479 +vn -0.231376439333 0.864601671696 0.446014404297 +vn 0.091195181012 0.875910937786 0.473775774240 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.091195181012 0.875910937786 0.473775774240 +vn -0.054100811481 0.828716099262 -0.557048261166 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.209413021803 0.874598622322 -0.437291055918 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.054100811481 0.828716099262 -0.557048261166 +vn -0.316314905882 0.721284568310 0.616192698479 +vn 0.190288290381 0.690781593323 0.697575151920 +vn -0.043550744653 0.799514293671 0.599066138268 +vn -0.316314905882 0.721284568310 0.616192698479 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.190288290381 0.690781593323 0.697575151920 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.289651811123 0.940054774284 0.179996877909 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.129505842924 0.973472297192 0.188626378775 +vn 0.052971653640 0.880331635475 0.471391826868 +vn -0.108999080956 0.947661638260 0.300094276667 +vn 0.129505842924 0.973472297192 0.188626378775 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn -0.086222581565 0.921112477779 0.379628002644 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.086222581565 0.921112477779 0.379628002644 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.182488054037 0.870233118534 0.457594156265 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn 0.052971653640 0.880331635475 0.471391826868 +vn 0.129505842924 0.973472297192 0.188626378775 +vn -0.108999080956 0.947661638260 0.300094276667 +vn 0.052971653640 0.880331635475 0.471391826868 +vn -0.108999080956 0.947661638260 0.300094276667 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.132732138038 0.979921698570 0.148780390620 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.125670656562 0.990344762802 0.058515954763 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.132732138038 0.979921698570 0.148780390620 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.452575981617 0.878102481365 -0.155277132988 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.190288290381 0.690781593323 0.697575151920 +vn 0.097139805555 0.825904786587 0.555378377438 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.231376439333 0.864601671696 0.446014404297 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.091195181012 0.875910937786 0.473775774240 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.026919174939 0.987045407295 0.158166885376 +vn -0.231376439333 0.864601671696 0.446014404297 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.086222581565 0.921112477779 0.379628002644 +vn -0.005251220893 0.929640710354 0.368429929018 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.665100693703 0.708603322506 0.235631942749 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.704381942749 0.650786757469 0.283412605524 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn -0.054100811481 0.828716099262 -0.557048261166 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn -0.182488054037 0.870233118534 0.457594156265 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.108999080956 0.947661638260 0.300094276667 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.108999080956 0.947661638260 0.300094276667 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.042956437916 0.949172854424 0.311810165644 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.207886472344 0.974640905857 0.082815110683 +vn -0.042956437916 0.949172854424 0.311810165644 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.332912445068 0.935498297215 0.118373312056 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.081451788545 0.994412124157 0.067157849669 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.770359873772 -0.349873751402 -0.533042252064 +vn -0.770359873772 -0.349873751402 -0.533042252064 +vn -0.866471350193 -0.494451045990 0.068887792528 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.826196610928 -0.378474891186 -0.417319893837 +vn 0.826196610928 -0.378474891186 -0.417319893837 +vn 0.627201139927 -0.266793459654 -0.731737613678 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.189701020718 -0.520030140877 -0.832815766335 +vn -0.189701020718 -0.520030140877 -0.832815766335 +vn -0.770359873772 -0.349873751402 -0.533042252064 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.866471350193 -0.494451045990 0.068887792528 +vn -0.866471350193 -0.494451045990 0.068887792528 +vn -0.871176719666 -0.488596260548 0.048216242343 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.826196610928 -0.378474891186 -0.417319893837 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.770887374878 -0.633049786091 0.070573315024 +vn -0.750959277153 -0.606336772442 0.261564284563 +vn -0.750959277153 -0.606336772442 0.261564284563 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.863608837128 -0.437417209148 -0.250691026449 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn 0.094348020852 -0.600384652615 0.794126391411 +vn 0.094348020852 -0.600384652615 0.794126391411 +vn 0.653992474079 -0.311724781990 0.689290583134 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.871176719666 -0.488596260548 0.048216242343 +vn -0.815200567245 -0.578349769115 -0.030977522954 +vn -0.815200567245 -0.578349769115 -0.030977522954 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.653992474079 -0.311724781990 0.689290583134 +vn 0.859460055828 -0.470979452133 0.198763057590 +vn 0.859460055828 -0.470979452133 0.198763057590 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.627201139927 -0.266793459654 -0.731737613678 +vn 0.627201139927 -0.266793459654 -0.731737613678 +vn -0.189701020718 -0.520030140877 -0.832815766335 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn 0.094348020852 -0.600384652615 0.794126391411 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.871704638004 0.468953579664 0.142174378037 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.586331486702 0.507154703140 0.631671965122 +vn -0.024219894782 0.431608676910 0.901735723019 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.586331486702 0.507154703140 0.631671965122 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.957649767399 0.245865628123 0.149856701493 +vn 0.586331486702 0.507154703140 0.631671965122 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.586331486702 0.507154703140 0.631671965122 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.024219894782 0.431608676910 0.901735723019 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn -0.024219894782 0.431608676910 0.901735723019 +vn 0.361748665571 0.813761413097 0.454895913601 +vn -0.037171285599 0.822442770004 0.567632138729 +vn -0.024219894782 0.431608676910 0.901735723019 +vn -0.024219894782 0.431608676910 0.901735723019 +vn 0.586331486702 0.507154703140 0.631671965122 +vn 0.361748665571 0.813761413097 0.454895913601 +vn -0.037171285599 0.822442770004 0.567632138729 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.024219894782 0.431608676910 0.901735723019 +vn -0.037171285599 0.822442770004 0.567632138729 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.586331486702 0.507154703140 0.631671965122 +vn 0.788730025291 0.571293294430 0.226999789476 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.861327946186 0.282207727432 0.422460556030 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.020976897329 0.060557164252 0.997944295406 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.063498787582 0.973852574825 0.218126371503 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.063902124763 0.991366446018 0.114494979382 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.063902124763 0.991366446018 0.114494979382 +vn 0.038015794009 0.828824400902 0.558215856552 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.008953621611 0.951425194740 0.307749807835 +vn 0.038015794009 0.828824400902 0.558215856552 +vn -0.008953621611 0.951425194740 0.307749807835 +vn -0.037171285599 0.822442770004 0.567632138729 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.419445157051 0.878340363503 0.229311823845 +vn -0.008953621611 0.951425194740 0.307749807835 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.684937596321 0.226348280907 0.692551016808 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.750959277153 -0.606336772442 0.261564284563 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.859460055828 -0.470979452133 0.198763057590 +vn 0.849181652069 -0.524824261665 -0.058736898005 +vn 0.849181652069 -0.524824261665 -0.058736898005 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.841550469398 0.399582356215 0.363492399454 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.419445157051 0.878340363503 0.229311823845 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.008953621611 0.951425194740 0.307749807835 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.037171285599 0.822442770004 0.567632138729 +vn -0.008953621611 0.951425194740 0.307749807835 +vn 0.038015794009 0.828824400902 0.558215856552 +vn -0.008953621611 0.951425194740 0.307749807835 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.038015794009 0.828824400902 0.558215856552 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.038015794009 0.828824400902 0.558215856552 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.126355975866 0.264645785093 0.956031799316 +vn -0.546461105347 0.726369321346 0.416854739189 +vn 0.038015794009 0.828824400902 0.558215856552 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.126355975866 0.264645785093 0.956031799316 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.957649767399 0.245865628123 0.149856701493 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.863608837128 -0.437417209148 -0.250691026449 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.849181652069 -0.524824261665 -0.058736898005 +vn 0.863608837128 -0.437417209148 -0.250691026449 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.815200567245 -0.578349769115 -0.030977522954 +vn -0.770887374878 -0.633049786091 0.070573315024 +vn -0.770887374878 -0.633049786091 0.070573315024 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.871704638004 0.468953579664 0.142174378037 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.684937596321 0.226348280907 0.692551016808 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.861327946186 0.282207727432 0.422460556030 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.618004083633 0.135420069098 0.774423897266 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.102175161242 0.812571227551 0.573836445808 +vn -0.063902124763 0.991366446018 0.114494979382 +vn 0.284465849400 0.811888277531 0.509820163250 +vn 0.287292629480 0.892159521580 0.348589122295 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.102175161242 0.812571227551 0.573836445808 +vn 0.284465849400 0.811888277531 0.509820163250 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.102175161242 0.812571227551 0.573836445808 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.543861091137 0.085662640631 0.834791600704 +vn 0.020976897329 0.060557164252 0.997944295406 +vn -0.102175161242 0.812571227551 0.573836445808 +vn 0.284465849400 0.811888277531 0.509820163250 +vn -0.102175161242 0.812571227551 0.573836445808 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.284465849400 0.811888277531 0.509820163250 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.284465849400 0.811888277531 0.509820163250 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn 0.896774768829 -0.440434336662 0.042574360967 +vn 0.829682111740 -0.395381569862 -0.394082486629 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.896774768829 -0.440434336662 0.042574360967 +vn -0.504025876522 -0.301672607660 -0.809290766716 +vn -0.821440160275 -0.447597593069 -0.353401303291 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.504025876522 -0.301672607660 -0.809290766716 +vn 0.829682111740 -0.395381569862 -0.394082486629 +vn 0.059312444180 -0.544704258442 -0.836528122425 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.829682111740 -0.395381569862 -0.394082486629 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn 0.896774768829 -0.440434336662 0.042574360967 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn -0.821440160275 -0.447597593069 -0.353401303291 +vn -0.847441673279 -0.448818117380 -0.283557623625 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.821440160275 -0.447597593069 -0.353401303291 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.794788122177 -0.514725565910 0.321511179209 +vn 0.785471856594 -0.612062454224 0.091725103557 +vn 0.785471856594 -0.612062454224 0.091725103557 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.847441673279 -0.448818117380 -0.283557623625 +vn -0.876788675785 -0.431774467230 -0.211689546704 +vn -0.876788675785 -0.431774467230 -0.211689546704 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn 0.069433189929 -0.577286839485 0.813584029675 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.814705491066 -0.579487860203 -0.021184906363 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.842492818832 -0.518067896366 0.147687375546 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn 0.059312444180 -0.544704258442 -0.836528122425 +vn -0.504025876522 -0.301672607660 -0.809290766716 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.059312444180 -0.544704258442 -0.836528122425 +vn 0.069433189929 -0.577286839485 0.813584029675 +vn 0.609602272511 -0.248254984617 0.752830982208 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn 0.069433189929 -0.577286839485 0.813584029675 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.819668352604 0.424242556095 0.384918212891 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.708797097206 0.001518160105 0.705410778522 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.708797097206 0.001518160105 0.705410778522 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.813350260258 0.528666734695 0.242843255401 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.598563194275 0.346359431744 0.722327709198 +vn -0.010253517888 0.434012025595 0.900848746300 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.401526331902 0.782190501690 0.476397514343 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.010253517888 0.434012025595 0.900848746300 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.407970279455 0.717792689800 0.564210891724 +vn 0.407970279455 0.717792689800 0.564210891724 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.401526331902 0.782190501690 0.476397514343 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.605787634850 0.494257092476 0.623483181000 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.969513058662 0.062274549156 0.236994311213 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.556349575520 0.162882700562 0.814827799797 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.556349575520 0.162882700562 0.814827799797 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.191165298223 0.042684063315 0.980629324913 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.556349575520 0.162882700562 0.814827799797 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.037328623235 0.984341025352 0.172276824713 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.037328623235 0.984341025352 0.172276824713 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.059391405433 0.995314598083 0.076298937201 +vn 0.521055519581 0.802924513817 0.289505362511 +vn -0.030940596014 0.946716606617 0.320578128099 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.417391598225 0.758342742920 0.500700056553 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.401526331902 0.782190501690 0.476397514343 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.455726176500 0.851219177246 0.260268300772 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.972541630268 0.205112487078 0.109961979091 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.191165298223 0.042684063315 0.980629324913 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.609602272511 -0.248254984617 0.752830982208 +vn 0.794788122177 -0.514725565910 0.321511179209 +vn 0.794788122177 -0.514725565910 0.321511179209 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.850716531277 -0.518900275230 -0.083808444440 +vn -0.842492818832 -0.518067896366 0.147687375546 +vn -0.842492818832 -0.518067896366 0.147687375546 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.598563194275 0.346359431744 0.722327709198 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.572210907936 0.744452595711 0.344042211771 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.407970279455 0.717792689800 0.564210891724 +vn 0.598563194275 0.346359431744 0.722327709198 +vn -0.036019083112 0.815896332264 0.577075183392 +vn 0.407970279455 0.717792689800 0.564210891724 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.449902802706 0.833744525909 0.320089966059 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.173762992024 0.444730252028 0.878647506237 +vn -0.811857640743 0.316165834665 0.490842521191 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.173762992024 0.444730252028 0.878647506237 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.069371618330 0.841719925404 0.535439193249 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.850716531277 -0.518900275230 -0.083808444440 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.876788675785 -0.431774467230 -0.211689546704 +vn -0.850716531277 -0.518900275230 -0.083808444440 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.785471856594 -0.612062454224 0.091725103557 +vn 0.814705491066 -0.579487860203 -0.021184906363 +vn 0.814705491066 -0.579487860203 -0.021184906363 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.505996525288 0.084093302488 0.858426392078 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.173762992024 0.444730252028 0.878647506237 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.173762992024 0.444730252028 0.878647506237 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.173762992024 0.444730252028 0.878647506237 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.958392262459 0.126938298345 0.255677402020 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.044663131237 0.745588660240 0.664908111095 +vn 0.372912973166 0.711369335651 0.595726132393 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.521055519581 0.802924513817 0.289505362511 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.044663131237 0.745588660240 0.664908111095 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.556349575520 0.162882700562 0.814827799797 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.372912973166 0.711369335651 0.595726132393 +vn 0.556349575520 0.162882700562 0.814827799797 +vn -0.099295251071 0.116247646511 0.988244354725 +vn 0.556349575520 0.162882700562 0.814827799797 +vn 0.372912973166 0.711369335651 0.595726132393 +vn 0.372912973166 0.711369335651 0.595726132393 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn 0.212242841721 0.213236674666 0.953668236732 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.056181445718 0.741137385368 0.668998479843 +vn -0.077421911061 0.794761300087 0.601963758469 +vn -0.077421911061 0.794761300087 0.601963758469 +vn 0.033342286944 0.775118052959 0.630936086178 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.075495623052 0.638999342918 0.765493452549 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.003467992181 0.502313077450 0.864678859711 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.033342286944 0.775118052959 0.630936086178 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.075495623052 0.638999342918 0.765493452549 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.257161408663 0.242241248488 0.935514390469 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn 0.257161408663 0.242241248488 0.935514390469 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.237984761596 0.763823807240 0.599947035313 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.128300026059 0.747947514057 0.651240050793 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.237984761596 0.763823807240 0.599947035313 +vn 0.171342536807 0.505555272102 0.845609605312 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.465314835310 0.811250209808 -0.354055315256 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.181931316853 0.702624380589 0.687909841537 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.237984761596 0.763823807240 0.599947035313 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.038794174790 0.877033114433 0.478861063719 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.128300026059 0.747947514057 0.651240050793 +vn 0.237984761596 0.763823807240 0.599947035313 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.349010735750 0.216333240271 0.911806702614 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.212242841721 0.213236674666 0.953668236732 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn 0.349010735750 0.216333240271 0.911806702614 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.284749358892 -0.108630344272 0.952427029610 +vn -0.028153385967 0.120939411223 0.992260575294 +vn -0.028153385967 0.120939411223 0.992260575294 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.284749358892 -0.108630344272 0.952427029610 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.772367894650 -0.622275471687 0.127362146974 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.772367894650 -0.622275471687 0.127362146974 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.498844444752 -0.762858331203 -0.411340981722 +vn -0.772367894650 -0.622275471687 0.127362146974 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn -0.498844444752 -0.762858331203 -0.411340981722 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.552886605263 -0.401466637850 -0.730165004730 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn 0.552886605263 -0.401466637850 -0.730165004730 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.816603302956 -0.058255102485 -0.574252009392 +vn 0.552886605263 -0.401466637850 -0.730165004730 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.915098607540 0.254363477230 -0.312879711390 +vn 0.915098607540 0.254363477230 -0.312879711390 +vn 0.816603302956 -0.058255102485 -0.574252009392 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.129821896553 0.431758940220 0.892597615719 +vn 0.509533464909 0.721226334572 0.469263523817 +vn 0.509533464909 0.721226334572 0.469263523817 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn -0.028153385967 0.120939411223 0.992260575294 +vn -0.028153385967 0.120939411223 0.992260575294 +vn 0.129821896553 0.431758940220 0.892597615719 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.915098607540 0.254363477230 -0.312879711390 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.509533464909 0.721226334572 0.469263523817 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.075495623052 0.638999342918 0.765493452549 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.075495623052 0.638999342918 0.765493452549 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.076707385480 0.563243448734 0.822722792625 +vn -0.046318404377 0.483514308929 0.874110102654 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.076707385480 0.563243448734 0.822722792625 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.046318404377 0.483514308929 0.874110102654 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.033342286944 0.775118052959 0.630936086178 +vn 0.033342286944 0.775118052959 0.630936086178 +vn -0.001853432041 0.702297449112 0.711881220341 +vn 0.076707385480 0.563243448734 0.822722792625 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.107103355229 0.802144825459 0.587445795536 +vn -0.135683953762 0.754256904125 0.642406702042 +vn -0.135683953762 0.754256904125 0.642406702042 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.001853432041 0.702297449112 0.711881220341 +vn 0.033342286944 0.775118052959 0.630936086178 +vn -0.077421911061 0.794761300087 0.601963758469 +vn -0.077421911061 0.794761300087 0.601963758469 +vn -0.107103355229 0.802144825459 0.587445795536 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.046318404377 0.483514308929 0.874110102654 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.135683953762 0.754256904125 0.642406702042 +vn -0.221242532134 0.675346255302 0.703533351421 +vn -0.221242532134 0.675346255302 0.703533351421 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.221242532134 0.675346255302 0.703533351421 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.237557619810 0.219554141164 0.946235895157 +vn 0.046239048243 0.326019555330 0.944231569767 +vn -0.046318404377 0.483514308929 0.874110102654 +vn -0.046318404377 0.483514308929 0.874110102654 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.046239048243 0.326019555330 0.944231569767 +vn -0.237557619810 0.219554141164 0.946235895157 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.931108534336 0.223939180374 0.287903070450 +vn -0.209134399891 0.041847482324 0.976991117001 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.441210776567 0.220206886530 0.869966685772 +vn -0.209134399891 0.041847482324 0.976991117001 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.388409644365 0.097376465797 0.916327297688 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.209134399891 0.041847482324 0.976991117001 +vn 0.441210776567 0.220206886530 0.869966685772 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.209134399891 0.041847482324 0.976991117001 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn 0.388409644365 0.097376465797 0.916327297688 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.209134399891 0.041847482324 0.976991117001 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.922186851501 -0.285774916410 -0.260584205389 +vn 0.566875457764 -0.316759556532 -0.760470628738 +vn 0.566875457764 -0.316759556532 -0.760470628738 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.961917400360 -0.257273793221 0.092331200838 +vn 0.961917400360 -0.257273793221 0.092331200838 +vn 0.922186851501 -0.285774916410 -0.260584205389 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.877248644829 -0.199683353305 0.436533331871 +vn 0.877248644829 -0.199683353305 0.436533331871 +vn 0.961917400360 -0.257273793221 0.092331200838 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.262398809195 -0.280063599348 0.923423647881 +vn 0.262398809195 -0.280063599348 0.923423647881 +vn 0.877248644829 -0.199683353305 0.436533331871 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn 0.262398809195 -0.280063599348 0.923423647881 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.861634016037 -0.294701397419 0.413204461336 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn -0.861634016037 -0.294701397419 0.413204461336 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.944620668888 -0.320841640234 -0.068938180804 +vn -0.861634016037 -0.294701397419 0.413204461336 +vn -0.944620668888 -0.320841640234 -0.068938180804 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.610765278339 -0.297193735838 -0.733922123909 +vn -0.944620668888 -0.320841640234 -0.068938180804 +vn -0.610765278339 -0.297193735838 -0.733922123909 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.012012279592 -0.263556957245 -0.964569032192 +vn -0.610765278339 -0.297193735838 -0.733922123909 +vn -0.012012279592 -0.263556957245 -0.964569032192 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.566875457764 -0.316759556532 -0.760470628738 +vn -0.012012279592 -0.263556957245 -0.964569032192 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn 0.056181445718 0.741137385368 0.668998479843 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.030380034819 0.719979643822 0.693329930305 +vn 0.209175691009 0.608960092068 0.765122950077 +vn 0.056181445718 0.741137385368 0.668998479843 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.030380034819 0.719979643822 0.693329930305 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.181931316853 0.702624380589 0.687909841537 +vn 0.181931316853 0.702624380589 0.687909841537 +vn 0.209175691009 0.608960092068 0.765122950077 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.128300026059 0.747947514057 0.651240050793 +vn 0.038794174790 0.877033114433 0.478861063719 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.080240480602 0.638880431652 -0.765109956264 +vn 0.273087769747 0.699498236179 -0.660397827625 +vn 0.273087769747 0.699498236179 -0.660397827625 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.273087769747 0.699498236179 -0.660397827625 +vn 0.465314835310 0.811250209808 -0.354055315256 +vn 0.465314835310 0.811250209808 -0.354055315256 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.908309876919 0.015843641013 0.417997717857 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.448863714933 0.183967590332 0.874458312988 +vn 0.411944001913 0.393821209669 0.821709811687 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.819909214973 0.467708528042 0.330147922039 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.972455918789 0.091722354293 0.214281424880 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn 0.257287919521 0.884805023670 0.388488024473 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.257287919521 0.884805023670 0.388488024473 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn 0.192745268345 0.492540299892 0.848677396774 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.707751631737 0.511009931564 0.487807840109 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.192745268345 0.492540299892 0.848677396774 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn 0.184908628464 0.381606191397 0.905640959740 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.648009002209 0.425326675177 0.631808161736 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.184908628464 0.381606191397 0.905640959740 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.266624689102 0.593041419983 0.759745419025 +vn -0.266624689102 0.593041419983 0.759745419025 +vn 0.076644353569 0.755293190479 0.650890052319 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.716207981110 0.499084711075 0.487812042236 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.192745268345 0.492540299892 0.848677396774 +vn -0.266624689102 0.593041419983 0.759745419025 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.180061206222 0.563334167004 0.806370019913 +vn -0.180061206222 0.563334167004 0.806370019913 +vn 0.171868190169 0.732080280781 0.659181177616 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.629050672054 0.575037002563 0.523094296455 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.184908628464 0.381606191397 0.905640959740 +vn -0.180061206222 0.563334167004 0.806370019913 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.076644353569 0.755293190479 0.650890052319 +vn -0.266624689102 0.593041419983 0.759745419025 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.496823996305 0.472443997860 0.727985262871 +vn -0.266624689102 0.593041419983 0.759745419025 +vn -0.266624689102 0.593041419983 0.759745419025 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.171868190169 0.732080280781 0.659181177616 +vn -0.180061206222 0.563334167004 0.806370019913 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.521306455135 0.467230886221 0.714097201824 +vn -0.180061206222 0.563334167004 0.806370019913 +vn -0.180061206222 0.563334167004 0.806370019913 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn 0.129396855831 0.545063197613 0.828349292278 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.290875703096 0.016440996900 0.956619560719 +vn 0.129396855831 0.545063197613 0.828349292278 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.129396855831 0.545063197613 0.828349292278 +vn -0.290875703096 0.016440996900 0.956619560719 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.983536243439 0.177552938461 0.033636920154 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.063488200307 0.792590856552 0.606439590454 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.616370320320 0.433791041374 0.657200813293 +vn 0.110006704926 0.644826173782 0.756371438503 +vn -0.063488200307 0.792590856552 0.606439590454 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.411944001913 0.393821209669 0.821709811687 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.787957370281 0.477610796690 0.388601541519 +vn 0.076644353569 0.755293190479 0.650890052319 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.518603384495 0.300804406404 0.800354421139 +vn 0.508389532566 0.448634028435 0.735028982162 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.997338175774 0.072519011796 0.007588622160 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.088888555765 0.015037650242 0.995928049088 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn 0.322712332010 0.518643856049 0.791748225689 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.700886607170 0.338039726019 0.628082096577 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.322712332010 0.518643856049 0.791748225689 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn 0.321015238762 0.514520943165 0.795121014118 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.571633458138 0.247708499432 0.782224833965 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.321015238762 0.514520943165 0.795121014118 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.059534739703 0.594721972942 0.801724016666 +vn -0.059534739703 0.594721972942 0.801724016666 +vn 0.149192854762 0.818112552166 0.555367708206 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.674985289574 0.334197402000 0.657804667950 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.322712332010 0.518643856049 0.791748225689 +vn -0.059534739703 0.594721972942 0.801724016666 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.094312846661 0.586990058422 0.804081916809 +vn -0.094312846661 0.586990058422 0.804081916809 +vn 0.118212953210 0.816253483295 0.565469682217 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.655655622482 0.397478044033 0.641971111298 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.321015238762 0.514520943165 0.795121014118 +vn -0.094312846661 0.586990058422 0.804081916809 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.149192854762 0.818112552166 0.555367708206 +vn -0.059534739703 0.594721972942 0.801724016666 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.605633556843 0.573746502399 0.551382780075 +vn -0.059534739703 0.594721972942 0.801724016666 +vn -0.059534739703 0.594721972942 0.801724016666 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.118212953210 0.816253483295 0.565469682217 +vn -0.094312846661 0.586990058422 0.804081916809 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.578698873520 0.646696209908 0.496881872416 +vn -0.094312846661 0.586990058422 0.804081916809 +vn -0.094312846661 0.586990058422 0.804081916809 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn 0.180510208011 0.646930694580 0.740875661373 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.180510208011 0.646930694580 0.740875661373 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.508389532566 0.448634028435 0.735028982162 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.734525084496 0.400696694851 0.547644972801 +vn 0.149192854762 0.818112552166 0.555367708206 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn 0.501678824425 0.396977752447 0.768587708473 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn 0.505004465580 0.475358963013 0.720419526100 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.519214332104 0.253620952368 0.816145122051 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.505004465580 0.475358963013 0.720419526100 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn 0.520211935043 0.559058606625 0.645626068115 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.228174239397 0.046188309789 0.972524106503 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.520211935043 0.559058606625 0.645626068115 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.508684575558 0.100909605622 0.855018854141 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.227183014154 0.711364388466 0.665092885494 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.482553303242 0.293915122747 0.825079500675 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.143501415849 0.469171375036 0.871369957924 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.532382369041 0.165311589837 0.830205440521 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.265235602856 0.751007497311 0.604679942131 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.438396394253 0.250405520201 0.863195061684 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.184828087687 0.570850193501 0.799980401993 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.339759290218 0.652270197868 0.677574515343 +vn -0.228174239397 0.046188309789 0.972524106503 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.975914239883 0.216983765364 0.022570852190 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.501678824425 0.396977752447 0.768587708473 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.437682479620 0.131488755345 0.889463186264 +vn 0.227183014154 0.711364388466 0.665092885494 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.110006704926 0.644826173782 0.756371438503 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.693001866341 0.498886138201 0.520443081856 +vn 0.149933636189 0.697240829468 0.700981557369 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.890769839287 0.184809222817 0.415180265903 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn 0.157286047935 0.538553655148 0.827780783176 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.616071522236 0.741670787334 0.265292972326 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.157286047935 0.538553655148 0.827780783176 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.983508825302 0.178707674146 0.027819553390 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn 0.104782521725 0.411863684654 0.905201017857 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.657146453857 0.579351842403 0.482192873955 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.104782521725 0.411863684654 0.905201017857 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.206256195903 0.641347289085 0.739007472992 +vn -0.206256195903 0.641347289085 0.739007472992 +vn 0.096828460693 0.822797715664 0.560025155544 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.677771806717 0.617188751698 0.399629086256 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.157286047935 0.538553655148 0.827780783176 +vn -0.206256195903 0.641347289085 0.739007472992 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.139188796282 0.683903872967 0.716171741486 +vn -0.139188796282 0.683903872967 0.716171741486 +vn 0.222944125533 0.750830531120 0.621730983257 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.610949575901 0.705598056316 0.358987480402 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.104782521725 0.411863684654 0.905201017857 +vn -0.139188796282 0.683903872967 0.716171741486 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.096828460693 0.822797715664 0.560025155544 +vn -0.206256195903 0.641347289085 0.739007472992 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.518502652645 0.501994550228 0.692211270332 +vn -0.206256195903 0.641347289085 0.739007472992 +vn -0.206256195903 0.641347289085 0.739007472992 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.222944125533 0.750830531120 0.621730983257 +vn -0.139188796282 0.683903872967 0.716171741486 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.461553364992 0.375474810600 0.803733229637 +vn -0.139188796282 0.683903872967 0.716171741486 +vn -0.139188796282 0.683903872967 0.716171741486 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn 0.113310351968 0.573081195354 0.811627209187 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.357588768005 0.118223853409 0.926365673542 +vn 0.113310351968 0.573081195354 0.811627209187 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.113310351968 0.573081195354 0.811627209187 +vn -0.357588768005 0.118223853409 0.926365673542 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.149933636189 0.697240829468 0.700981557369 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.731816112995 0.506709039211 0.455731421709 +vn 0.096828460693 0.822797715664 0.560025155544 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.257287919521 0.884805023670 0.388488024473 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.532998859882 0.815917551517 0.224032908678 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.257287919521 0.884805023670 0.388488024473 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.257287919521 0.884805023670 0.388488024473 +vn -0.063488200307 0.792590856552 0.606439590454 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.310053557158 0.172868609428 0.934870719910 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.316012024879 0.686757266521 0.654599726200 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.316012024879 0.686757266521 0.654599726200 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn 0.092993848026 0.951101779938 0.294546306133 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.162509486079 0.963348150253 0.213426902890 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.414537787437 0.577000021935 0.703725337982 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.076232120395 0.892228424549 0.445103466511 +vn -0.076232120395 0.892228424549 0.445103466511 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.162509486079 0.963348150253 0.213426902890 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.076232120395 0.892228424549 0.445103466511 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.531211972237 0.828068792820 0.179209098220 +vn 0.316012024879 0.686757266521 0.654599726200 +vn -0.076232120395 0.892228424549 0.445103466511 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.076232120395 0.892228424549 0.445103466511 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.162509486079 0.963348150253 0.213426902890 +vn 0.092993848026 0.951101779938 0.294546306133 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.414537787437 0.577000021935 0.703725337982 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.162509486079 0.963348150253 0.213426902890 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.073301777244 0.768137931824 0.636074662209 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.656715273857 0.671186864376 0.343850612640 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.296533823013 0.937092840672 0.184186592698 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.256493657827 0.966490387917 0.010358544998 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.879008293152 0.327037870884 0.346973568201 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.386452257633 0.830117344856 0.401945084333 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.301279544830 0.869882464409 0.390557467937 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn 0.256493657827 0.966490387917 0.010358544998 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.656715273857 0.671186864376 0.343850612640 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.386452257633 0.830117344856 0.401945084333 +vn 0.018751272932 0.761757254601 0.647591114044 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.321225166321 0.935288310051 0.148492872715 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.256493657827 0.966490387917 0.010358544998 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.256493657827 0.966490387917 0.010358544998 +vn 0.257990837097 0.399163067341 0.879834949970 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.350384771824 0.861267209053 0.368034303188 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.350384771824 0.861267209053 0.368034303188 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn 0.350384771824 0.861267209053 0.368034303188 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.620225965977 0.440775215626 0.648873627186 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.073301777244 0.768137931824 0.636074662209 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.418872237206 0.170925334096 0.891813099384 +vn 0.257990837097 0.399163067341 0.879834949970 +vn -0.073301777244 0.768137931824 0.636074662209 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.073301777244 0.768137931824 0.636074662209 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.350384771824 0.861267209053 0.368034303188 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.106712952256 0.917102098465 0.384104311466 +vn 0.350384771824 0.861267209053 0.368034303188 +vn 0.350384771824 0.861267209053 0.368034303188 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.482846260071 0.869433462620 0.104618154466 +vn -0.086542211473 0.967878103256 0.236056029797 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.050192341208 0.664369225502 0.745717287064 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.050192341208 0.664369225502 0.745717287064 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.532998859882 0.815917551517 0.224032908678 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.366472154856 0.870783627033 0.327771276236 +vn -0.162673503160 0.963678956032 0.211802154779 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.510312438011 0.841042578220 0.179523259401 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.087274819613 0.444357991219 0.891587972641 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.383311569691 0.245430797338 0.890413403511 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.368794947863 0.655544221401 0.658978044987 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.041679881513 0.924551546574 0.378770738840 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.366472154856 0.870783627033 0.327771276236 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.432463288307 0.539263606071 0.722613453865 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.362487792969 0.694832563400 0.621136307716 +vn 0.367153495550 0.875142931938 0.315155804157 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.086542211473 0.967878103256 0.236056029797 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.476979732513 0.530355632305 0.700866043568 +vn 0.200900077820 0.779989659786 0.592667937279 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.362487792969 0.694832563400 0.621136307716 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.412324339151 0.719989717007 0.558214545250 +vn -0.041679881513 0.924551546574 0.378770738840 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn 0.847137212753 0.013076731004 -0.531213283539 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn 0.152241155505 -0.867611408234 -0.473363518715 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.250959426165 -0.952669680119 -0.171580299735 +vn 0.152241155505 -0.867611408234 -0.473363518715 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.250959426165 -0.952669680119 -0.171580299735 +vn 0.847137212753 0.013076731004 -0.531213283539 +vn 0.900250494480 0.354679793119 -0.252490162849 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.847137212753 0.013076731004 -0.531213283539 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.723317623138 0.619894027710 0.304208874702 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.196437984705 0.667735934258 0.718011736870 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.723317623138 0.619894027710 0.304208874702 +vn 0.196437984705 0.667735934258 0.718011736870 +vn -0.460308641195 0.432748824358 0.775141537189 +vn -0.476979732513 0.530355632305 0.700866043568 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.196437984705 0.667735934258 0.718011736870 +vn -0.460308641195 0.432748824358 0.775141537189 +vn -0.792952120304 -0.015133478679 0.609095990658 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.460308641195 0.432748824358 0.775141537189 +vn -0.792952120304 -0.015133478679 0.609095990658 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.792952120304 -0.015133478679 0.609095990658 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.472495853901 -0.873955726624 0.113794088364 +vn -0.472495853901 -0.873955726624 0.113794088364 +vn -0.250959426165 -0.952669680119 -0.171580299735 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.900250494480 0.354679793119 -0.252490162849 +vn 0.851737022400 0.522776246071 0.035341292620 +vn 0.851737022400 0.522776246071 0.035341292620 +vn 0.723317623138 0.619894027710 0.304208874702 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.388409644365 0.097376465797 0.916327297688 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.614874482155 0.042262133211 0.787491738796 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.513534486294 0.648863255978 0.561479091644 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.606201291084 0.206537902355 0.768024802208 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.474705159664 0.698050916195 -0.536078274250 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.632141351700 0.593008518219 0.498736590147 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.000500970287 0.150257885456 0.988646686077 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.000500970287 0.150257885456 0.988646686077 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.000500970287 0.150257885456 0.988646686077 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.294267475605 0.736320257187 0.609293937683 +vn -0.294267475605 0.736320257187 0.609293937683 +vn -0.319124907255 0.778944134712 0.539819717407 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.319124907255 0.778944134712 0.539819717407 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.210031285882 0.676729142666 0.705637693405 +vn -0.210031285882 0.676729142666 0.705637693405 +vn -0.294267475605 0.736320257187 0.609293937683 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.210031285882 0.676729142666 0.705637693405 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.514643490314 -0.262845516205 -0.816121518612 +vn -0.514643490314 -0.262845516205 -0.816121518612 +vn -0.903522908688 -0.324223697186 -0.280223727226 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.903522908688 -0.324223697186 -0.280223727226 +vn -0.939108490944 -0.334201961756 0.079902052879 +vn -0.939108490944 -0.334201961756 0.079902052879 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.939108490944 -0.334201961756 0.079902052879 +vn -0.879063725471 -0.294311136007 0.375003933907 +vn -0.879063725471 -0.294311136007 0.375003933907 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.879063725471 -0.294311136007 0.375003933907 +vn -0.350002974272 -0.353424876928 0.867518723011 +vn -0.350002974272 -0.353424876928 0.867518723011 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.350002974272 -0.353424876928 0.867518723011 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.855423569679 -0.287269592285 0.430960148573 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.855423569679 -0.287269592285 0.430960148573 +vn 0.965904176235 -0.249124884605 -0.070468947291 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.855423569679 -0.287269592285 0.430960148573 +vn 0.965904176235 -0.249124884605 -0.070468947291 +vn 0.707191705704 -0.151784554124 -0.690536975861 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.965904176235 -0.249124884605 -0.070468947291 +vn 0.707191705704 -0.151784554124 -0.690536975861 +vn 0.155663013458 -0.127083465457 -0.979601383209 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.707191705704 -0.151784554124 -0.690536975861 +vn 0.155663013458 -0.127083465457 -0.979601383209 +vn -0.514643490314 -0.262845516205 -0.816121518612 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.155663013458 -0.127083465457 -0.979601383209 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.513534486294 0.648863255978 0.561479091644 +vn -0.660521805286 0.480035573244 0.577301323414 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.513534486294 0.648863255978 0.561479091644 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.660521805286 0.480035573244 0.577301323414 +vn -0.632141351700 0.593008518219 0.498736590147 +vn -0.632141351700 0.593008518219 0.498736590147 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.426534503698 0.658479154110 0.620059251785 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.147046521306 0.661145508289 -0.735706388950 +vn -0.147046521306 0.661145508289 -0.735706388950 +vn 0.080240480602 0.638880431652 -0.765109956264 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.474705159664 0.698050916195 -0.536078274250 +vn -0.474705159664 0.698050916195 -0.536078274250 +vn -0.147046521306 0.661145508289 -0.735706388950 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.449752897024 0.215031251311 0.866881728172 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.220938414335 0.246594354510 0.943598151207 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.864156365395 0.421443611383 0.274989217520 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.525134205818 0.469024330378 0.710105836391 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.518878757954 0.427382588387 0.740343809128 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn -0.526116251945 0.837725043297 0.146350353956 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn -0.418460667133 0.901152551174 0.113202057779 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.300787478685 0.223077714443 0.927234172821 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.526116251945 0.837725043297 0.146350353956 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.898592233658 0.382915318012 0.214261218905 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.291609972715 0.196503594518 0.936135649681 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.291609972715 0.196503594518 0.936135649681 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.582837760448 0.017110457644 0.812408387661 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.750201165676 0.627852976322 0.207361668348 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.750201165676 0.627852976322 0.207361668348 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.563470244408 0.434554904699 0.702611804008 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.563470244408 0.434554904699 0.702611804008 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.131474196911 0.695336520672 0.706556200981 +vn 0.072813071311 0.950119674206 0.303266942501 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.083546750247 0.307561278343 0.947853386402 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.072813071311 0.950119674206 0.303266942501 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.125691637397 0.965929806232 0.226232767105 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn -0.103229515254 0.978088200092 0.180795833468 +vn -0.103229515254 0.978088200092 0.180795833468 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.864156365395 0.421443611383 0.274989217520 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.716074943542 0.144961029291 0.682805240154 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn -0.429535895586 0.902928054333 0.014827483334 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.274307638407 0.453335881233 0.848081290722 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.925961256027 0.377290695906 0.015729881823 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.934488713741 0.355977147818 0.003339467803 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn -0.364090979099 0.029598439112 0.930892944336 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.030472742394 0.502272367477 0.864172399044 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.411388903856 0.236352607608 0.880282104015 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.048600327224 0.791139721870 0.609701573849 +vn -0.491668075323 0.542922973633 0.680806279182 +vn -0.411388903856 0.236352607608 0.880282104015 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.441782504320 0.297333627939 0.846416532993 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.667333602905 0.709663510323 0.225928291678 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.667333602905 0.709663510323 0.225928291678 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.491668075323 0.542922973633 0.680806279182 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.491668075323 0.542922973633 0.680806279182 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.184340089560 0.964558541775 0.188800379634 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.491668075323 0.542922973633 0.680806279182 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.243232712150 0.967023551464 0.075520321727 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn -0.243232712150 0.967023551464 0.075520321727 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.842137992382 0.517580270767 0.151374444366 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.067432902753 0.981908500195 0.176942050457 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.964621126652 0.160373017192 0.209252431989 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.945016801357 0.013837653212 0.326728969812 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.067432902753 0.981908500195 0.176942050457 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn -0.757342994213 0.639263868332 0.133316561580 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn -0.178718537092 0.188127040863 0.965747356415 +vn -0.178718537092 0.188127040863 0.965747356415 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.178718537092 0.188127040863 0.965747356415 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.262828111649 0.784388482571 0.561832785606 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.689539670944 0.551088571548 0.469932347536 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.262828111649 0.784388482571 0.561832785606 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.376014262438 0.462822437286 0.802750706673 +vn -0.178718537092 0.188127040863 0.965747356415 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.178718537092 0.188127040863 0.965747356415 +vn 0.376014262438 0.462822437286 0.802750706673 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.178718537092 0.188127040863 0.965747356415 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn -0.243232712150 0.967023551464 0.075520321727 +vn -0.243232712150 0.967023551464 0.075520321727 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.243232712150 0.967023551464 0.075520321727 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.842137992382 0.517580270767 0.151374444366 +vn -0.243232712150 0.967023551464 0.075520321727 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.934458494186 0.322290331125 0.151381283998 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.547749757767 0.077166840434 0.833075940609 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.337525874376 0.930810749531 0.140241369605 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn -0.170828253031 0.950032889843 0.261256903410 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn -0.429289430380 0.010662646964 0.903104007244 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.001197829144 0.204163551331 0.978936076164 +vn -0.429289430380 0.010662646964 0.903104007244 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.170828253031 0.950032889843 0.261256903410 +vn 0.001197829144 0.204163551331 0.978936076164 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.470382779837 0.875310480595 0.112123101950 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.777829766273 0.488033413887 0.395985156298 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn 0.035827055573 0.207518517971 0.977574825287 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.326971471310 0.053588666022 0.943513572216 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.035827055573 0.207518517971 0.977574825287 +vn -0.050434809178 0.689648866653 0.722385466099 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.050434809178 0.689648866653 0.722385466099 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.050434809178 0.689648866653 0.722385466099 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.001197829144 0.204163551331 0.978936076164 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.050434809178 0.689648866653 0.722385466099 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn -0.337525874376 0.930810749531 0.140241369605 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn -0.337525874376 0.930810749531 0.140241369605 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.067655861378 0.094781979918 0.993196368217 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.004601359833 0.522861719131 0.852405130863 +vn -0.538786590099 0.230709373951 0.810235857964 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.429289430380 0.010662646964 0.903104007244 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.429289430380 0.010662646964 0.903104007244 +vn -0.429289430380 0.010662646964 0.903104007244 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.590204536915 0.644762694836 0.485736191273 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.423879355192 0.904768526554 0.041475951672 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.590204536915 0.644762694836 0.485736191273 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.538786590099 0.230709373951 0.810235857964 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.538786590099 0.230709373951 0.810235857964 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.313855469227 0.815999209881 0.485427707434 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.538786590099 0.230709373951 0.810235857964 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.952248871326 0.304680645466 0.019794657826 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.343221575022 0.333233237267 0.878154039383 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.765450656414 0.598935127258 0.235291317105 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.078894823790 0.316832482815 0.945194602013 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.720277249813 0.069460451603 0.690199911594 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.554942369461 0.176653087139 0.812916159630 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.554942369461 0.176653087139 0.812916159630 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.301544338465 0.953448176384 0.002751463326 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn -0.005631436128 0.999072909355 0.042680554092 +vn -0.005631436128 0.999072909355 0.042680554092 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn -0.005631436128 0.999072909355 0.042680554092 +vn 0.187485709786 0.938560783863 0.289746075869 +vn 0.187485709786 0.938560783863 0.289746075869 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn 0.793979823589 0.261099308729 0.549020230770 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn 0.229095175862 0.971845209599 0.055066000670 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.298334419727 0.949311316013 0.099018156528 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.038500741124 0.970658123493 0.237361595035 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.038500741124 0.970658123493 0.237361595035 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.195449680090 0.978367269039 0.067800879478 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.117484591901 0.535072982311 0.836596846581 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.117484591901 0.535072982311 0.836596846581 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.005631436128 0.999072909355 0.042680554092 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.187485709786 0.938560783863 0.289746075869 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.187485709786 0.938560783863 0.289746075869 +vn -0.005631436128 0.999072909355 0.042680554092 +vn -0.580564439297 0.618157505989 0.529930353165 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.187485709786 0.938560783863 0.289746075869 +vn -0.005631436128 0.999072909355 0.042680554092 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn 0.071874260902 0.922927081585 0.378205835819 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.071874260902 0.922927081585 0.378205835819 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.071874260902 0.922927081585 0.378205835819 +vn 0.071874260902 0.922927081585 0.378205835819 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn -0.078894823790 0.316832482815 0.945194602013 +vn -0.078894823790 0.316832482815 0.945194602013 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn -0.078894823790 0.316832482815 0.945194602013 +vn 0.105647958815 0.477384954691 0.872319936752 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn 0.071874260902 0.922927081585 0.378205835819 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn -0.148294940591 0.763890028000 0.628076970577 +vn 0.071874260902 0.922927081585 0.378205835819 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.105647958815 0.477384954691 0.872319936752 +vn -0.078894823790 0.316832482815 0.945194602013 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.260491907597 0.307280063629 0.915272057056 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.162017181516 0.796604990959 0.582383811474 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn -0.000500970287 0.150257885456 0.988646686077 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.000500970287 0.150257885456 0.988646686077 +vn -0.020890446380 0.525199234486 0.850722849369 +vn 0.033992055804 0.651784360409 0.757642209530 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.094890594482 0.167634546757 0.981271862984 +vn -0.000500970287 0.150257885456 0.988646686077 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.212111368775 0.931484699249 0.295541882515 +vn 0.033992055804 0.651784360409 0.757642209530 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.212111368775 0.931484699249 0.295541882515 +vn 0.033992055804 0.651784360409 0.757642209530 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.033992055804 0.651784360409 0.757642209530 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.033992055804 0.651784360409 0.757642209530 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.656117200851 -0.752742469311 0.053749088198 +vn 0.656117200851 -0.752742469311 0.053749088198 +vn 0.652370274067 -0.700718224049 -0.288802653551 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.656117200851 -0.752742469311 0.053749088198 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.201453700662 -0.832577824593 0.515975356102 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.961623728275 0.054777454585 0.268847882748 +vn 0.717947840691 -0.072925940156 0.692266345024 +vn 0.717947840691 -0.072925940156 0.692266345024 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.965605020523 0.107465490699 0.236765861511 +vn -0.068652406335 0.974390566349 0.214125752449 +vn 0.442601650953 0.886409521103 0.135580167174 +vn 0.400886356831 0.901594340801 0.162535563111 +vn 0.400886356831 0.901594340801 0.162535563111 +vn -0.147310256958 0.958264529705 0.245007723570 +vn -0.068652406335 0.974390566349 0.214125752449 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.979799330235 0.116351984441 -0.162651434541 +vn 0.979799330235 0.116351984441 -0.162651434541 +vn 0.961623728275 0.054777454585 0.268847882748 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.529358327389 0.845940232277 -0.064536072314 +vn 0.680514693260 0.732540011406 -0.016878856346 +vn 0.400886356831 0.901594340801 0.162535563111 +vn 0.400886356831 0.901594340801 0.162535563111 +vn 0.442601650953 0.886409521103 0.135580167174 +vn 0.529358327389 0.845940232277 -0.064536072314 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.698699057102 -0.088728033006 -0.709892213345 +vn 0.698699057102 -0.088728033006 -0.709892213345 +vn 0.979799330235 0.116351984441 -0.162651434541 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn -0.048381622881 0.989867806435 0.133495286107 +vn -0.068652406335 0.974390566349 0.214125752449 +vn -0.147310256958 0.958264529705 0.245007723570 +vn -0.147310256958 0.958264529705 0.245007723570 +vn -0.040402501822 0.989431560040 0.139258161187 +vn -0.048381622881 0.989867806435 0.133495286107 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.655080139637 -0.018082045019 -0.755343019962 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.938433587551 -0.109255589545 -0.327727943659 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.716325759888 0.585582971573 0.379433780909 +vn -0.616649746895 0.675030350685 0.405064314604 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.938433587551 -0.109255589545 -0.327727943659 +vn -0.716325759888 0.585582971573 0.379433780909 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.717947840691 -0.072925940156 0.692266345024 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn -0.067382998765 -0.241788670421 0.967986464500 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.217509955168 -0.925485610962 0.310106158257 +vn 0.208270162344 -0.874368071556 0.438296735287 +vn 0.208270162344 -0.874368071556 0.438296735287 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn -0.930489718914 -0.261996328831 -0.256021112204 +vn -0.933810532093 -0.240890204906 -0.264518111944 +vn -0.933810532093 -0.240890204906 -0.264518111944 +vn -0.999982237816 -0.005035636947 0.003187689232 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.217509955168 -0.925485610962 0.310106158257 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.452018469572 -0.883442044258 -0.123326830566 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.967172682285 0.241761222482 0.078284777701 +vn -0.333036005497 -0.132622703910 -0.933540701866 +vn -0.344990402460 -0.115646079183 -0.931454539299 +vn -0.279096722603 -0.206124126911 -0.937879443169 +vn -0.279096722603 -0.206124126911 -0.937879443169 +vn -0.255546450615 -0.236742943525 -0.937362670898 +vn -0.333036005497 -0.132622703910 -0.933540701866 +vn 0.316477656364 0.365814924240 -0.875226438046 +vn 0.385443925858 0.300371497869 -0.872473478317 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.265394568443 0.762436449528 -0.590132534504 +vn 0.316477656364 0.365814924240 -0.875226438046 +vn -0.836668133736 0.327173054218 0.439254164696 +vn -0.817613303661 0.347829401493 0.458828032017 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn -0.999982237816 -0.005035636947 0.003187689232 +vn -0.836668133736 0.327173054218 0.439254164696 +vn -0.817613303661 0.347829401493 0.458828032017 +vn -0.836668133736 0.327173054218 0.439254164696 +vn -0.393941193819 0.551313161850 0.735434651375 +vn -0.393941193819 0.551313161850 0.735434651375 +vn -0.394177705050 0.541026473045 0.742909312248 +vn -0.817613303661 0.347829401493 0.458828032017 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.208270162344 -0.874368071556 0.438296735287 +vn 0.201453700662 -0.832577824593 0.515975356102 +vn 0.201453700662 -0.832577824593 0.515975356102 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.066875919700 -0.211223438382 -0.975147306919 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.825137555599 -0.039393767715 -0.563556671143 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.238736808300 0.966642439365 -0.092774368823 +vn -0.221692368388 0.969382524490 -0.105593815446 +vn -0.131967604160 0.986462950706 -0.097341716290 +vn -0.131967604160 0.986462950706 -0.097341716290 +vn -0.131907835603 0.985628366470 -0.105532377958 +vn -0.238736808300 0.966642439365 -0.092774368823 +vn -0.221692368388 0.969382524490 -0.105593815446 +vn -0.238736808300 0.966642439365 -0.092774368823 +vn -0.191518172622 0.977899730206 0.083862185478 +vn -0.191518172622 0.977899730206 0.083862185478 +vn -0.226836472750 0.971370637417 0.070599377155 +vn -0.221692368388 0.969382524490 -0.105593815446 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.996581256390 -0.016104307026 -0.081033818424 +vn -0.996581256390 -0.016104307026 -0.081033818424 +vn -0.825137555599 -0.039393767715 -0.563556671143 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.066875919700 -0.211223438382 -0.975147306919 +vn -0.066875919700 -0.211223438382 -0.975147306919 +vn 0.162009149790 -0.252556264400 -0.953922629356 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.162009149790 -0.252556264400 -0.953922629356 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn 0.078429423273 0.979791224003 -0.184005334973 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.215006738901 0.976588487625 -0.006861140486 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn -0.131907835603 0.985628366470 -0.105532377958 +vn -0.131967604160 0.986462950706 -0.097341716290 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.078429423273 0.979791224003 -0.184005334973 +vn -0.131907835603 0.985628366470 -0.105532377958 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn 0.882891595364 -0.448917657137 -0.137750983238 +vn 0.624225676060 -0.733383476734 -0.269241482019 +vn 0.683579862118 -0.686875283718 -0.246821716428 +vn 0.683579862118 -0.686875283718 -0.246821716428 +vn 0.913559436798 -0.390938848257 -0.112142503262 +vn 0.882891595364 -0.448917657137 -0.137750983238 +vn -0.735097944736 -0.411521434784 -0.538777410984 +vn -0.919971227646 -0.315933138132 -0.232032716274 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.735097944736 -0.411521434784 -0.538777410984 +vn -0.299304544926 0.655579268932 -0.693276703358 +vn -0.299391537905 0.646304905415 -0.701893627644 +vn -0.426549911499 0.661332190037 -0.617004811764 +vn -0.426549911499 0.661332190037 -0.617004811764 +vn -0.434841871262 0.650471568108 -0.622735321522 +vn -0.299304544926 0.655579268932 -0.693276703358 +vn -0.299391537905 0.646304905415 -0.701893627644 +vn -0.299304544926 0.655579268932 -0.693276703358 +vn -0.203423932195 0.523596465588 -0.827324271202 +vn -0.203423932195 0.523596465588 -0.827324271202 +vn -0.206277325749 0.496593266726 -0.843116104603 +vn -0.299391537905 0.646304905415 -0.701893627644 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.194162026048 -0.710348606110 -0.676539719105 +vn -0.194162026048 -0.710348606110 -0.676539719105 +vn -0.735097944736 -0.411521434784 -0.538777410984 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.711521089077 -0.668513596058 0.216396108270 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.919971227646 -0.315933138132 -0.232032716274 +vn -0.711521089077 -0.668513596058 0.216396108270 +vn -0.283012300730 0.166665807366 0.944524526596 +vn -0.275574177504 0.178359404206 0.944588184357 +vn -0.309776514769 0.123586989939 0.942743241787 +vn -0.309776514769 0.123586989939 0.942743241787 +vn -0.318132579327 0.109800979495 0.941666305065 +vn -0.283012300730 0.166665807366 0.944524526596 +vn -0.820068120956 0.569231271744 0.058856066316 +vn -0.864802479744 0.500968754292 0.033867362887 +vn -0.670427143574 0.731589615345 0.123709522188 +vn -0.670427143574 0.731589615345 0.123709522188 +vn -0.609832704067 0.779186606407 0.144818082452 +vn -0.820068120956 0.569231271744 0.058856066316 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.711521089077 -0.668513596058 0.216396108270 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn 0.676929712296 0.735970973969 0.010624704883 +vn 0.462099343538 0.855638921261 -0.233122825623 +vn 0.498349219561 0.832625806332 -0.241624265909 +vn 0.498349219561 0.832625806332 -0.241624265909 +vn 0.730528593063 0.682668983936 0.017058826983 +vn 0.676929712296 0.735970973969 0.010624704883 +vn -0.394177705050 0.541026473045 0.742909312248 +vn -0.393941193819 0.551313161850 0.735434651375 +vn -0.066927298903 0.552506208420 0.830817461014 +vn -0.066927298903 0.552506208420 0.830817461014 +vn -0.067695811391 0.526292204857 0.847604751587 +vn -0.394177705050 0.541026473045 0.742909312248 +vn 0.462099343538 0.855638921261 -0.233122825623 +vn 0.265394568443 0.762436449528 -0.590132534504 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.498349219561 0.832625806332 -0.241624265909 +vn 0.462099343538 0.855638921261 -0.233122825623 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn 0.452018469572 -0.883442044258 -0.123326830566 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.652370274067 -0.700718224049 -0.288802653551 +vn 0.452018469572 -0.883442044258 -0.123326830566 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.506272614002 -0.212398335338 0.835807979107 +vn -0.700267732143 -0.161503911018 0.695371508598 +vn -0.700267732143 -0.161503911018 0.695371508598 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.052583612502 0.985693454742 0.160135433078 +vn -0.018820434809 0.989357590675 0.144282087684 +vn -0.018820434809 0.989357590675 0.144282087684 +vn -0.026022652164 0.988108336926 0.151541069150 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.499433219433 0.162840068340 -0.850911021233 +vn 0.265916287899 0.192993134260 -0.944479823112 +vn 0.262357443571 0.201877102256 -0.943617641926 +vn 0.262357443571 0.201877102256 -0.943617641926 +vn 0.493813991547 0.168256774545 -0.853133857250 +vn 0.499433219433 0.162840068340 -0.850911021233 +vn 0.265916287899 0.192993134260 -0.944479823112 +vn -0.020402621478 0.125429570675 -0.991892695427 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn 0.262357443571 0.201877102256 -0.943617641926 +vn 0.265916287899 0.192993134260 -0.944479823112 +vn -0.333152711391 0.173149183393 -0.926837980747 +vn -0.336778044701 0.156496420503 -0.928487718105 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn -0.020402621478 0.125429570675 -0.991892695427 +vn -0.333152711391 0.173149183393 -0.926837980747 +vn -0.336778044701 0.156496420503 -0.928487718105 +vn -0.333152711391 0.173149183393 -0.926837980747 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.655080139637 -0.018082045019 -0.755343019962 +vn -0.336778044701 0.156496420503 -0.928487718105 +vn 0.116307489574 0.990462958813 0.073862694204 +vn -0.048381622881 0.989867806435 0.133495286107 +vn -0.040402501822 0.989431560040 0.139258161187 +vn -0.040402501822 0.989431560040 0.139258161187 +vn 0.147966638207 0.985058844090 0.088119089603 +vn 0.116307489574 0.990462958813 0.073862694204 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.116307489574 0.990462958813 0.073862694204 +vn 0.147966638207 0.985058844090 0.088119089603 +vn 0.147966638207 0.985058844090 0.088119089603 +vn 0.233582735062 0.960899651051 0.148697659373 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.233582735062 0.960899651051 0.148697659373 +vn 0.134896829724 0.973662376404 0.183805242181 +vn 0.134896829724 0.973662376404 0.183805242181 +vn 0.133777290583 0.972870230675 0.188751518726 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.134896829724 0.973662376404 0.183805242181 +vn 0.052583612502 0.985693454742 0.160135433078 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.133777290583 0.972870230675 0.188751518726 +vn 0.134896829724 0.973662376404 0.183805242181 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.067382998765 -0.241788670421 0.967986464500 +vn -0.327422112226 -0.238218516111 0.914355874062 +vn -0.327422112226 -0.238218516111 0.914355874062 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.327422112226 -0.238218516111 0.914355874062 +vn -0.506272614002 -0.212398335338 0.835807979107 +vn -0.506272614002 -0.212398335338 0.835807979107 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn 0.499433219433 0.162840068340 -0.850911021233 +vn 0.493813991547 0.168256774545 -0.853133857250 +vn 0.493813991547 0.168256774545 -0.853133857250 +vn 0.691769719124 0.281607925892 -0.664944827557 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn -0.018820434809 0.989357590675 0.144282087684 +vn -0.003519654274 0.995996475220 0.089323498309 +vn 0.011763782240 0.995036125183 0.098816752434 +vn 0.011763782240 0.995036125183 0.098816752434 +vn -0.026022652164 0.988108336926 0.151541069150 +vn -0.018820434809 0.989357590675 0.144282087684 +vn 0.011763782240 0.995036125183 0.098816752434 +vn -0.003519654274 0.995996475220 0.089323498309 +vn 0.098272599280 0.988767683506 0.112609624863 +vn 0.098272599280 0.988767683506 0.112609624863 +vn 0.150311067700 0.982064425945 0.113824792206 +vn 0.011763782240 0.995036125183 0.098816752434 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.700267732143 -0.161503911018 0.695371508598 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.996581256390 -0.016104307026 -0.081033818424 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.191518172622 0.977899730206 0.083862185478 +vn 0.150311067700 0.982064425945 0.113824792206 +vn 0.098272599280 0.988767683506 0.112609624863 +vn 0.098272599280 0.988767683506 0.112609624863 +vn -0.226836472750 0.971370637417 0.070599377155 +vn -0.191518172622 0.977899730206 0.083862185478 +vn 0.849974095821 -0.094851419330 0.518215477467 +vn 0.828021049500 -0.105283483863 0.550723612309 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.997999727726 0.053960263729 0.032937355340 +vn 0.849974095821 -0.094851419330 0.518215477467 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.478259414434 -0.153687790036 0.864666402340 +vn 0.828021049500 -0.105283483863 0.550723612309 +vn 0.828021049500 -0.105283483863 0.550723612309 +vn 0.849974095821 -0.094851419330 0.518215477467 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.478259414434 -0.153687790036 0.864666402340 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.144089296460 -0.504522621632 0.851290345192 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.909626424313 0.109246626496 -0.400805354118 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.997999727726 0.053960263729 0.032937355340 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn 0.691769719124 0.281607925892 -0.664944827557 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.909626424313 0.109246626496 -0.400805354118 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.698699057102 -0.088728033006 -0.709892213345 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn 0.215006738901 0.976588487625 -0.006861140486 +vn 0.680514693260 0.732540011406 -0.016878856346 +vn 0.680514693260 0.732540011406 -0.016878856346 +vn 0.529358327389 0.845940232277 -0.064536072314 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn 0.101197555661 -0.910763978958 0.400334864855 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn 0.220449462533 -0.944154858589 0.244895160198 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn 0.992116570473 -0.075684450567 0.099882952869 +vn 0.914270520210 -0.374885022640 -0.153527349234 +vn 0.932675123215 -0.328857719898 -0.148221790791 +vn 0.932675123215 -0.328857719898 -0.148221790791 +vn 0.978691160679 -0.038977265358 0.201604634523 +vn 0.992116570473 -0.075684450567 0.099882952869 +vn 0.757674992085 0.067285761237 0.649154245853 +vn 0.992116570473 -0.075684450567 0.099882952869 +vn 0.978691160679 -0.038977265358 0.201604634523 +vn 0.978691160679 -0.038977265358 0.201604634523 +vn 0.682809650898 0.058452133089 0.728254318237 +vn 0.757674992085 0.067285761237 0.649154245853 +vn 0.467002600431 -0.069905437529 0.881488382816 +vn 0.757674992085 0.067285761237 0.649154245853 +vn 0.682809650898 0.058452133089 0.728254318237 +vn 0.682809650898 0.058452133089 0.728254318237 +vn 0.469311714172 -0.101307049394 0.877202033997 +vn 0.467002600431 -0.069905437529 0.881488382816 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn 0.101197555661 -0.910763978958 0.400334864855 +vn 0.101197555661 -0.910763978958 0.400334864855 +vn 0.220449462533 -0.944154858589 0.244895160198 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn 0.461291611195 0.075415410101 -0.884037673473 +vn 0.465971797705 0.054153501987 -0.883140802383 +vn 0.452682107687 0.112095654011 -0.884597897530 +vn 0.452682107687 0.112095654011 -0.884597897530 +vn 0.448319792747 0.129651442170 -0.884420633316 +vn 0.461291611195 0.075415410101 -0.884037673473 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn -0.194162026048 -0.710348606110 -0.676539719105 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.168900057673 0.193152844906 0.966521978378 +vn -0.167976438999 0.232479542494 0.957985997200 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.144089296460 -0.504522621632 0.851290345192 +vn -0.168900057673 0.193152844906 0.966521978378 +vn -0.362826079130 0.288003414869 0.886234343052 +vn -0.361879914999 0.274064928293 0.891028225422 +vn -0.167976438999 0.232479542494 0.957985997200 +vn -0.167976438999 0.232479542494 0.957985997200 +vn -0.168900057673 0.193152844906 0.966521978378 +vn -0.362826079130 0.288003414869 0.886234343052 +vn -0.361879914999 0.274064928293 0.891028225422 +vn -0.362826079130 0.288003414869 0.886234343052 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.720118165016 0.286492228508 0.631943047047 +vn -0.361879914999 0.274064928293 0.891028225422 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.616649746895 0.675030350685 0.405064314604 +vn -0.716325759888 0.585582971573 0.379433780909 +vn -0.716325759888 0.585582971573 0.379433780909 +vn -0.720118165016 0.286492228508 0.631943047047 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.301698088646 0.951182126999 0.065044857562 +vn 0.117949590087 0.849612355232 0.514049351215 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.247134611011 0.967952191830 0.044642847031 +vn 0.301698088646 0.951182126999 0.065044857562 +vn -0.009665114805 0.432859390974 0.901409626007 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.171455085278 0.914633154869 0.366127461195 +vn -0.009665114805 0.432859390974 0.901409626007 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn 0.003870419692 -0.997206032276 0.074600264430 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn 0.174129217863 -0.981105268002 -0.084329314530 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.212095111609 0.293082028627 0.932265281677 +vn 0.215676337481 0.968818902969 0.121957629919 +vn -0.135806068778 0.653280317783 0.744836568832 +vn 0.117949590087 0.849612355232 0.514049351215 +vn 0.117949590087 0.849612355232 0.514049351215 +vn 0.301698088646 0.951182126999 0.065044857562 +vn 0.215676337481 0.968818902969 0.121957629919 +vn 0.116785392165 0.979833245277 0.162135779858 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.135806068778 0.653280317783 0.744836568832 +vn 0.215676337481 0.968818902969 0.121957629919 +vn 0.116785392165 0.979833245277 0.162135779858 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn 0.180662691593 -0.977567434311 -0.108272127807 +vn 0.174129217863 -0.981105268002 -0.084329314530 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn 0.180662691593 -0.977567434311 -0.108272127807 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn 0.180662691593 -0.977567434311 -0.108272127807 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.186048939824 0.976999819279 0.104197762907 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.174272745848 0.962094068527 0.209771290421 +vn -0.186048939824 0.976999819279 0.104197762907 +vn -0.174272745848 0.962094068527 0.209771290421 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.093426696956 0.949718952179 0.298839986324 +vn -0.174272745848 0.962094068527 0.209771290421 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.473818302155 0.648060023785 0.596250295639 +vn 0.116785392165 0.979833245277 0.162135779858 +vn 0.116785392165 0.979833245277 0.162135779858 +vn -0.093426696956 0.949718952179 0.298839986324 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.009665114805 0.432859390974 0.901409626007 +vn -0.009665114805 0.432859390974 0.901409626007 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn 0.003870419692 -0.997206032276 0.074600264430 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn -0.059656828642 -0.984534978867 0.164717689157 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn -0.059656828642 -0.984534978867 0.164717689157 +vn -0.059656828642 -0.984534978867 0.164717689157 +vn 0.050876371562 -0.998084306717 0.035204216838 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.050876371562 -0.998084306717 0.035204216838 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.687957525253 -0.724567592144 -0.041426882148 +vn 0.090818278491 -0.972123861313 -0.216164782643 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.687957525253 -0.724567592144 -0.041426882148 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.687957525253 -0.724567592144 -0.041426882148 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.162324577570 0.904733717442 0.393837094307 +vn -0.042816758156 0.962022185326 0.269592463970 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.162324577570 0.904733717442 0.393837094307 +vn 0.248102903366 0.886689305305 0.390162765980 +vn -0.042816758156 0.962022185326 0.269592463970 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.200634062290 0.979664087296 -0.002052781638 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.210182353854 0.975235521793 0.068840667605 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.200634062290 0.979664087296 -0.002052781638 +vn 0.210182353854 0.975235521793 0.068840667605 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.210182353854 0.975235521793 0.068840667605 +vn 0.247134611011 0.967952191830 0.044642847031 +vn 0.247134611011 0.967952191830 0.044642847031 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn 0.122811011970 -0.957747161388 -0.260072857141 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn 0.169295936823 -0.937194883823 -0.304966658354 +vn 0.122811011970 -0.957747161388 -0.260072857141 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn 0.169295936823 -0.937194883823 -0.304966658354 +vn 0.235094085336 -0.934384286404 -0.267687737942 +vn 0.169295936823 -0.937194883823 -0.304966658354 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn 0.235094085336 -0.934384286404 -0.267687737942 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn 0.235094085336 -0.934384286404 -0.267687737942 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.297367244959 -0.937489330769 0.180794060230 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn 0.297367244959 -0.937489330769 0.180794060230 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.197106972337 -0.920975387096 0.336084991693 +vn 0.297367244959 -0.937489330769 0.180794060230 +vn 0.197106972337 -0.920975387096 0.336084991693 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.029394404963 -0.956659615040 0.289721101522 +vn 0.197106972337 -0.920975387096 0.336084991693 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn -0.029394404963 -0.956659615040 0.289721101522 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.248370751739 0.904884219170 -0.345682770014 +vn 0.241378128529 0.940966784954 -0.237314462662 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.248370751739 0.904884219170 -0.345682770014 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.241378128529 0.940966784954 -0.237314462662 +vn 0.241378128529 0.940966784954 -0.237314462662 +vn 0.310470491648 0.939930260181 -0.141912579536 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.248370751739 0.904884219170 -0.345682770014 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.423191249371 -0.904291272163 0.056271243840 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn -0.423191249371 -0.904291272163 0.056271243840 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn -0.260627955198 -0.963619589806 0.059247847646 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.189719647169 0.908340811729 -0.372724354267 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.312394291162 0.933531820774 -0.175863862038 +vn -0.189719647169 0.908340811729 -0.372724354267 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.312394291162 0.933531820774 -0.175863862038 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.186048939824 0.976999819279 0.104197762907 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.189719647169 0.908340811729 -0.372724354267 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.310470491648 0.939930260181 -0.141912579536 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.423305630684 0.886720836163 0.185845404863 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.423305630684 0.886720836163 0.185845404863 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.162324577570 0.904733717442 0.393837094307 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.090818278491 -0.972123861313 -0.216164782643 +vn -0.260627955198 -0.963619589806 0.059247847646 +vn -0.260627955198 -0.963619589806 0.059247847646 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.201083213091 0.576883137226 0.791688919067 +vn -0.009665114805 0.432859390974 0.901409626007 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn 0.117949590087 0.849612355232 0.514049351215 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.212095111609 0.293082028627 0.932265281677 +vn 0.117949590087 0.849612355232 0.514049351215 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.745227813721 0.633083999157 0.209380432963 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.117949590087 0.849612355232 0.514049351215 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.009665114805 0.432859390974 0.901409626007 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.812033295631 0.514916896820 0.274704486132 +vn -0.258473217487 0.240610465407 0.935573697090 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.237624734640 0.624630987644 0.743888854980 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.325573593378 0.324940294027 0.887927711010 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.033919174224 0.761711001396 0.647028446198 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.599148094654 -0.349108159542 0.720517218113 +vn 0.599148094654 -0.349108159542 0.720517218113 +vn 0.765411973000 -0.281774252653 0.578573942184 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn 0.445603191853 -0.384337395430 0.808531105518 +vn 0.445603191853 -0.384337395430 0.808531105518 +vn 0.599148094654 -0.349108159542 0.720517218113 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn 0.353177726269 -0.489298284054 0.797403693199 +vn 0.353177726269 -0.489298284054 0.797403693199 +vn 0.445603191853 -0.384337395430 0.808531105518 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn 0.349057108164 -0.704609453678 0.617806315422 +vn 0.349057108164 -0.704609453678 0.617806315422 +vn 0.353177726269 -0.489298284054 0.797403693199 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.497694343328 -0.736805498600 0.457622140646 +vn 0.497694343328 -0.736805498600 0.457622140646 +vn 0.349057108164 -0.704609453678 0.617806315422 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.627989470959 -0.668266415596 0.398809760809 +vn 0.627989470959 -0.668266415596 0.398809760809 +vn 0.497694343328 -0.736805498600 0.457622140646 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.663220942020 -0.615163028240 0.426277458668 +vn 0.663220942020 -0.615163028240 0.426277458668 +vn 0.627989470959 -0.668266415596 0.398809760809 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.695339739323 -0.572090268135 0.434988915920 +vn 0.695339739323 -0.572090268135 0.434988915920 +vn 0.663220942020 -0.615163028240 0.426277458668 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.765411973000 -0.281774252653 0.578573942184 +vn 0.765411973000 -0.281774252653 0.578573942184 +vn 0.695339739323 -0.572090268135 0.434988915920 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.305796295404 0.933188319206 0.188807144761 +vn -0.576867401600 0.757517874241 -0.305598944426 +vn -0.576867401600 0.757517874241 -0.305598944426 +vn -0.718194782734 0.602012097836 -0.348966598511 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.718194782734 0.602012097836 -0.348966598511 +vn -0.718194782734 0.602012097836 -0.348966598511 +vn -0.725587606430 0.503578245640 -0.468968629837 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.725587606430 0.503578245640 -0.468968629837 +vn -0.725587606430 0.503578245640 -0.468968629837 +vn -0.789350450039 0.503757894039 -0.350932806730 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.789350450039 0.503757894039 -0.350932806730 +vn -0.789350450039 0.503757894039 -0.350932806730 +vn -0.850929498672 0.302877247334 -0.429167002439 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.850929498672 0.302877247334 -0.429167002439 +vn -0.850929498672 0.302877247334 -0.429167002439 +vn -0.628575026989 0.261088401079 -0.732616007328 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn -0.628575026989 0.261088401079 -0.732616007328 +vn -0.628575026989 0.261088401079 -0.732616007328 +vn -0.228433817625 0.366642951965 -0.901881873608 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn -0.228433817625 0.366642951965 -0.901881873608 +vn -0.228433817625 0.366642951965 -0.901881873608 +vn -0.369103759527 0.776214718819 -0.511129260063 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn -0.369103759527 0.776214718819 -0.511129260063 +vn -0.369103759527 0.776214718819 -0.511129260063 +vn -0.483243614435 0.776178956032 -0.404996097088 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn -0.305796295404 0.933188319206 0.188807144761 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn -0.483243614435 0.776178956032 -0.404996097088 +vn -0.483243614435 0.776178956032 -0.404996097088 +vn -0.576867401600 0.757517874241 -0.305598944426 +vn -0.305796295404 0.933188319206 0.188807144761 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.305796295404 0.933188319206 0.188807144761 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.454803496599 0.485992193222 0.746301114559 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn -0.305796295404 0.933188319206 0.188807144761 +vn -0.305796295404 0.933188319206 0.188807144761 +vn 0.033919174224 0.761711001396 0.647028446198 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.348348826170 0.555683076382 0.754896938801 +vn -0.258473217487 0.240610465407 0.935573697090 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.348348826170 0.555683076382 0.754896938801 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.848077535629 0.469010263681 0.246564060450 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.069645345211 0.862430155277 0.501361846924 +vn 0.069645345211 0.862430155277 0.501361846924 +vn 0.164405122399 0.635002374649 0.754813194275 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.069645345211 0.862430155277 0.501361846924 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.056397389621 0.973752439022 0.220511928201 +vn -0.015082026832 0.898052096367 0.439630508423 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.110619284213 0.821678519249 0.559113383293 +vn 0.069645345211 0.862430155277 0.501361846924 +vn 0.056397389621 0.973752439022 0.220511928201 +vn -0.756435573101 0.570307672024 0.320241183043 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.625884294510 0.621010959148 0.471820145845 +vn -0.756435573101 0.570307672024 0.320241183043 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.015082026832 0.898052096367 0.439630508423 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.625884294510 0.621010959148 0.471820145845 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.015082026832 0.898052096367 0.439630508423 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.093329630792 0.941157698631 0.324825823307 +vn -0.382084578276 0.771323442459 0.508990705013 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.392548322678 0.780418395996 0.486675381660 +vn -0.382084578276 0.771323442459 0.508990705013 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.002175812144 0.997610270977 0.069057755172 +vn -0.392548322678 0.780418395996 0.486675381660 +vn 0.002175812144 0.997610270977 0.069057755172 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.392548322678 0.780418395996 0.486675381660 +vn 0.002175812144 0.997610270977 0.069057755172 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.291743457317 0.775886118412 0.559362590313 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.291743457317 0.775886118412 0.559362590313 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.115149334073 0.801315605640 0.587055325508 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn 0.002175812144 0.997610270977 0.069057755172 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.002175812144 0.997610270977 0.069057755172 +vn 0.002175812144 0.997610270977 0.069057755172 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn 0.018299452960 0.998276531696 0.055759474635 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.435292720795 -0.036885086447 -0.899533033371 +vn -0.149325296283 0.191209688783 -0.970124125481 +vn -0.149325296283 0.191209688783 -0.970124125481 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn -0.374504595995 -0.259615004063 -0.890138387680 +vn -0.435292720795 -0.036885086447 -0.899533033371 +vn -0.435292720795 -0.036885086447 -0.899533033371 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.018299452960 0.998276531696 0.055759474635 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.093329630792 0.941157698631 0.324825823307 +vn -0.015082026832 0.898052096367 0.439630508423 +vn -0.015082026832 0.898052096367 0.439630508423 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.353946268559 0.734738647938 0.578689157963 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.756435573101 0.570307672024 0.320241183043 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.218308880925 0.796049535275 0.564487636089 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.069645345211 0.862430155277 0.501361846924 +vn -0.110619284213 0.821678519249 0.559113383293 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.164405122399 0.635002374649 0.754813194275 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.353946268559 0.734738647938 0.578689157963 +vn 0.750251233578 0.270256996155 0.603393971920 +vn -0.353946268559 0.734738647938 0.578689157963 +vn -0.457538694143 0.750161647797 0.477405369282 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.750251233578 0.270256996155 0.603393971920 +vn -0.353946268559 0.734738647938 0.578689157963 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.935766935349 -0.242188498378 0.256290793419 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.935766935349 -0.242188498378 0.256290793419 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn -0.671294987202 -0.260830819607 0.693779766560 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.534322023392 0.359675824642 0.764940083027 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn 0.050975821912 0.871190190315 0.488292098045 +vn -0.147346720099 0.889737486839 0.432037174702 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.357310593128 0.236652135849 0.903506994247 +vn 0.050975821912 0.871190190315 0.488292098045 +vn -0.578328967094 -0.319814234972 0.750502765179 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.671294987202 -0.260830819607 0.693779766560 +vn -0.578328967094 -0.319814234972 0.750502765179 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.811512649059 -0.327733904123 0.483774423599 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.703342258930 0.225412517786 0.674165308475 +vn -0.457538694143 0.750161647797 0.477405369282 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429617762566 0.848202347755 0.309808552265 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.703342258930 0.225412517786 0.674165308475 +vn -0.842326104641 0.537471950054 -0.040131911635 +vn -0.791654765606 0.576650857925 -0.201882332563 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.457538694143 0.750161647797 0.477405369282 +vn -0.842326104641 0.537471950054 -0.040131911635 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429713785648 0.846449017525 0.314436256886 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.598508119583 0.249849140644 0.761159241199 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.791654765606 0.576650857925 -0.201882332563 +vn -0.667831838131 0.682248771191 -0.297552168369 +vn -0.667831838131 0.682248771191 -0.297552168369 +vn -0.429713785648 0.846449017525 0.314436256886 +vn -0.429617762566 0.848202347755 0.309808552265 +vn 0.811512649059 -0.327733904123 0.483774423599 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.607785642147 -0.416889160872 0.675869822502 +vn 0.811512649059 -0.327733904123 0.483774423599 +vn 0.607785642147 -0.416889160872 0.675869822502 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.516368031502 -0.345768600702 0.783459067345 +vn 0.607785642147 -0.416889160872 0.675869822502 +vn -0.457538694143 0.750161647797 0.477405369282 +vn -0.353946268559 0.734738647938 0.578689157963 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.842326104641 0.537471950054 -0.040131911635 +vn -0.457538694143 0.750161647797 0.477405369282 +vn 0.384632349014 -0.290035128593 0.876320481300 +vn -0.577897906303 -0.355524659157 0.734599351883 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.622664332390 0.454117029905 0.637233734131 +vn 0.170826375484 0.283379584551 0.943670690060 +vn 0.384632349014 -0.290035128593 0.876320481300 +vn 0.314843177795 -0.462489783764 0.828840732574 +vn 0.384632349014 -0.290035128593 0.876320481300 +vn 0.170826375484 0.283379584551 0.943670690060 +vn 0.170826375484 0.283379584551 0.943670690060 +vn -0.019885519519 0.156374439597 0.987497627735 +vn 0.314843177795 -0.462489783764 0.828840732574 +vn 0.100030563772 -0.661799669266 0.742977142334 +vn 0.314843177795 -0.462489783764 0.828840732574 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn 0.100030563772 -0.661799669266 0.742977142334 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn 0.100030563772 -0.661799669266 0.742977142334 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.178587734699 -0.922734260559 0.341566920280 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn -0.178587734699 -0.922734260559 0.341566920280 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.537448406219 -0.838045239449 0.093964748085 +vn -0.178587734699 -0.922734260559 0.341566920280 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn -0.224376007915 -0.046368073672 -0.973398864269 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.537448406219 -0.838045239449 0.093964748085 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.640428006649 -0.731053292751 -0.235399663448 +vn -0.537448406219 -0.838045239449 0.093964748085 +vn -0.422474920750 -0.667798876762 -0.612829148769 +vn -0.640428006649 -0.731053292751 -0.235399663448 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.422474920750 -0.667798876762 -0.612829148769 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.019885519519 0.156374439597 0.987497627735 +vn 0.170826375484 0.283379584551 0.943670690060 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.181642502546 0.885934293270 0.426762789488 +vn 0.170826375484 0.283379584551 0.943670690060 +vn 0.170826375484 0.283379584551 0.943670690060 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.424639850855 0.811399281025 0.401636928320 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.914714396000 -0.397285848856 -0.073902077973 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.577897906303 -0.355524659157 0.734599351883 +vn -0.914714396000 -0.397285848856 -0.073902077973 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.914714396000 -0.397285848856 -0.073902077973 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn -0.834079504013 -0.535284638405 0.133348211646 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn 0.081868670881 0.901294291019 0.425401180983 +vn 0.077389903367 0.914463222027 0.397199958563 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.669492661953 0.064479798079 0.740014791489 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.545027732849 0.737514972687 0.398768693209 +vn 0.081868670881 0.901294291019 0.425401180983 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.743179678917 0.068944804370 0.665530264378 +vn 0.568133234978 0.821251451969 -0.052637834102 +vn 0.646443426609 0.759647488594 0.071039631963 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.081868670881 0.901294291019 0.425401180983 +vn 0.568133234978 0.821251451969 -0.052637834102 +vn 0.058358471841 0.816487491131 0.574406206608 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.646443426609 0.759647488594 0.071039631963 +vn 0.646443426609 0.759647488594 0.071039631963 +vn 0.630036652088 0.727832496166 0.270765095949 +vn 0.058358471841 0.816487491131 0.574406206608 +vn 0.630036652088 0.727832496166 0.270765095949 +vn 0.553945541382 0.699680268764 0.451211482286 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.097729347646 0.768430531025 0.632426679134 +vn 0.058358471841 0.816487491131 0.574406206608 +vn 0.630036652088 0.727832496166 0.270765095949 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.097729347646 0.768430531025 0.632426679134 +vn 0.553945541382 0.699680268764 0.451211482286 +vn 0.553945541382 0.699680268764 0.451211482286 +vn 0.436596006155 0.685988366604 0.582068622112 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.254605710506 0.744727969170 0.616892397404 +vn 0.436596006155 0.685988366604 0.582068622112 +vn 0.298728913069 0.741523385048 0.600752949715 +vn 0.298728913069 0.741523385048 0.600752949715 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.936779797077 0.026538468897 0.348911702633 +vn 0.058358471841 0.816487491131 0.574406206608 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.097729347646 0.768430531025 0.632426679134 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.058358471841 0.816487491131 0.574406206608 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.887424767017 0.078465610743 0.454225122929 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn 0.568133234978 0.821251451969 -0.052637834102 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.266018509865 0.937779486179 -0.223167747259 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.399299442768 -0.641792595387 0.654722988605 +vn -0.083396285772 -0.628017544746 0.773717641830 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.399299442768 -0.641792595387 0.654722988605 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.399299442768 -0.641792595387 0.654722988605 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.030449874699 -0.613143086433 -0.789384782314 +vn -0.030449874699 -0.613143146038 -0.789384782314 +vn -0.030449876562 -0.613143146038 -0.789384782314 +vn 0.454834192991 -0.551295697689 -0.699427545071 +vn 0.454834192991 -0.551295697689 -0.699427545071 +vn 0.454834192991 -0.551295757294 -0.699427545071 +vn -0.084855884314 0.981540918350 -0.171397000551 +vn -0.182695105672 0.915379524231 0.358751714230 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.145488426089 0.976211905479 -0.160759046674 +vn -0.084855884314 0.981540918350 -0.171397000551 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.084855884314 0.981540918350 -0.171397000551 +vn -0.266018509865 0.937779486179 -0.223167747259 +vn -0.266018509865 0.937779486179 -0.223167747259 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.714156806469 -0.585525572300 0.383588165045 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.714156806469 -0.585525572300 0.383588165045 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.834079504013 -0.535284638405 0.133348211646 +vn -0.714156806469 -0.585525572300 0.383588165045 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.254605710506 0.744727969170 0.616892397404 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn 0.821521222591 0.078862875700 -0.564697682858 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.013701758347 0.829518616199 0.558310985565 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.373588293791 0.906539082527 0.196516364813 +vn 0.008125438355 0.822232007980 0.569094419479 +vn -0.013701758347 0.829518616199 0.558310985565 +vn -0.388561308384 0.831142783165 0.397771000862 +vn 0.114516958594 0.788044095039 0.604873836040 +vn 0.008125438355 0.822232007980 0.569094419479 +vn 0.008125438355 0.822232007980 0.569094419479 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.316964924335 0.809910416603 0.493536621332 +vn 0.298728913069 0.741523385048 0.600752949715 +vn 0.114516958594 0.788044095039 0.604873836040 +vn 0.114516958594 0.788044095039 0.604873836040 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.013701758347 0.829518616199 0.558310985565 +vn -0.040053065866 0.814612388611 0.578621149063 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.013701758347 0.829518616199 0.558310985565 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.308176785707 -0.444958806038 -0.840855956078 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.308176785707 -0.444958806038 -0.840855956078 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.223764970899 -0.611924827099 -0.758602142334 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn 0.223764970899 -0.611924827099 -0.758602142334 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.271971881390 -0.439561158419 -0.856047511101 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn -0.115149334073 0.801315605640 0.587055325508 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.040053065866 0.814612388611 0.578621149063 +vn -0.115149334073 0.801315605640 0.587055325508 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.759460985661 -0.164043009281 -0.629530727863 +vn 0.759460985661 -0.164043009281 -0.629530727863 +vn 0.552213788033 -0.386443734169 -0.738729417324 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.821521222591 0.078862875700 -0.564697682858 +vn 0.759460985661 -0.164043009281 -0.629530727863 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.821521222591 0.078862875700 -0.564697682858 +vn 0.368465006351 -0.612099230289 -0.699691414833 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.552213788033 -0.386443734169 -0.738729417324 +vn 0.368465006351 -0.612099230289 -0.699691414833 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn -0.224376007915 -0.046368073672 -0.973398864269 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.368465006351 -0.612099230289 -0.699691414833 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn -0.422474920750 -0.667798876762 -0.612829148769 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.224376007915 -0.046368073672 -0.973398864269 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn -0.149325296283 0.191209688783 -0.970124125481 +vn 0.271971881390 -0.439561158419 -0.856047511101 +vn 0.271971881390 -0.439561158419 -0.856047511101 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.050975821912 0.871190190315 0.488292098045 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.018299452960 0.998276531696 0.055759474635 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.050975821912 0.871190190315 0.488292098045 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.050975821912 0.871190190315 0.488292098045 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.050975821912 0.871190190315 0.488292098045 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.090699143708 0.010228182189 0.995825827122 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.415789157152 0.681671321392 0.602032840252 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.090699143708 0.010228182189 0.995825827122 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.535596609116 -0.080347500741 0.840642929077 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn 0.535596609116 -0.080347500741 0.840642929077 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn -0.245555266738 -0.736587166786 0.630191981792 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.378451079130 -0.561920762062 0.735540509224 +vn -0.245555266738 -0.736587166786 0.630191981792 +vn -0.245555266738 -0.736587166786 0.630191981792 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.578328967094 -0.319814234972 0.750502765179 +vn -0.378451079130 -0.561920762062 0.735540509224 +vn -0.378451079130 -0.561920762062 0.735540509224 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.357310593128 0.236652135849 0.903506994247 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.535596609116 -0.080347500741 0.840642929077 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn 0.303251296282 -0.837280929089 0.454971790314 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.303251296282 -0.837280929089 0.454971790314 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.538265943527 -0.756090760231 -0.372285634279 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn -0.285020858049 -0.719945371151 -0.632804691792 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn -0.285020858049 -0.719945371151 -0.632804691792 +vn -0.264134556055 -0.500071525574 -0.824718952179 +vn -0.264134556055 -0.500071525574 -0.824718952179 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.143064171076 0.886963069439 0.439123153687 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.203395426273 0.839035332203 0.504628598690 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.313882619143 0.163946226239 0.935200154781 +vn -0.429713785648 0.846449017525 0.314436256886 +vn 0.203395426273 0.839035332203 0.504628598690 +vn 0.203395426273 0.839035332203 0.504628598690 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.313882619143 0.163946226239 0.935200154781 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn 0.145488426089 0.976211905479 -0.160759046674 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.203395426273 0.839035332203 0.504628598690 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn -0.429713785648 0.846449017525 0.314436256886 +vn -0.667831838131 0.682248771191 -0.297552168369 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn 0.203395426273 0.839035332203 0.504628598690 +vn -0.429713785648 0.846449017525 0.314436256886 +vn 0.286178618670 -0.536495864391 0.793897986412 +vn 0.516368031502 -0.345768600702 0.783459067345 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.286178618670 -0.536495864391 0.793897986412 +vn -0.083396285772 -0.628017544746 0.773717641830 +vn 0.286178618670 -0.536495864391 0.793897986412 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.083396285772 -0.628017544746 0.773717641830 +vn -0.374504595995 -0.259615004063 -0.890138387680 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn -0.264134556055 -0.500071525574 -0.824718952179 +vn -0.374504595995 -0.259615004063 -0.890138387680 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.538265943527 -0.756090760231 -0.372285634279 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.829526424408 0.541623890400 0.136123031378 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.067010790110 0.193234190345 0.978861629963 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.564102113247 0.009641343728 0.825648725033 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.227151930332 0.082373514771 0.970369338989 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn 0.227151930332 0.082373514771 0.970369338989 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.389436155558 -0.407782554626 0.825864911079 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.236986622214 0.101993352175 0.966144263744 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn -0.085905134678 0.072124846280 0.993689239025 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn -0.085905134678 0.072124846280 0.993689239025 +vn -0.203997373581 0.026348058134 0.978616833687 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.058739125729 0.414347767830 0.908221125603 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.058739125729 0.414347767830 0.908221125603 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.411596596241 0.156486570835 0.897830843925 +vn -0.087292499840 0.331456899643 0.939423382282 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn 0.411596596241 0.156486570835 0.897830843925 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.659432172775 0.712318539619 0.240315511823 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.387950241566 0.306505471468 0.869223237038 +vn -0.387950241566 0.306505471468 0.869223237038 +vn 0.132363051176 0.588919281960 0.797279179096 +vn 0.370204120874 0.758121490479 0.536843240261 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.139534607530 0.974310278893 0.176775634289 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.015306836925 0.932955980301 0.359664946795 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.015306836925 0.932955980301 0.359664946795 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.845744073391 -0.529137194157 0.068780913949 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.831635236740 -0.554599404335 -0.028325177729 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.475282013416 -0.870118498802 0.130387231708 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.468870520592 -0.880146622658 0.074178211391 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.475282013416 -0.870118498802 0.130387231708 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.428062021732 -0.867399811745 0.253733038902 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.428062021732 -0.867399811745 0.253733038902 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.805738449097 -0.547442436218 0.226036131382 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.649726748466 -0.700721383095 -0.294694274664 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.801894485950 -0.583262145519 -0.129501029849 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.801894485950 -0.583262145519 -0.129501029849 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.805738449097 -0.547442436218 0.226036131382 +vn -0.829879522324 -0.541816174984 0.133173540235 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.805738449097 -0.547442436218 0.226036131382 +vn -0.845744073391 -0.529137194157 0.068780913949 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.829879522324 -0.541816174984 0.133173540235 +vn -0.845744073391 -0.529137194157 0.068780913949 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.067010790110 0.193234190345 0.978861629963 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.067010790110 0.193234190345 0.978861629963 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.389436155558 -0.407782554626 0.825864911079 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.339029431343 0.284355103970 0.896772682667 +vn 0.067010790110 0.193234190345 0.978861629963 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.339029431343 0.284355103970 0.896772682667 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.831635236740 -0.554599404335 -0.028325177729 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.649726748466 -0.700721383095 -0.294694274664 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.375210881233 -0.925834357738 -0.045249074697 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.424531817436 -0.905397713184 0.005259912461 +vn -0.375210881233 -0.925834357738 -0.045249074697 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.424531817436 -0.905397713184 0.005259912461 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.424531817436 -0.905397713184 0.005259912461 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.468870520592 -0.880146622658 0.074178211391 +vn -0.448362886906 -0.891751825809 0.061232645065 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.468870520592 -0.880146622658 0.074178211391 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.448362886906 -0.891751825809 0.061232645065 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.227597177029 0.752148985863 0.618442714214 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.133595734835 0.780554592609 0.610644459724 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.087493650615 0.818190336227 0.568251192570 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.224660709500 0.880128324032 0.418212532997 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.015306836925 0.932955980301 0.359664946795 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.087493650615 0.818190336227 0.568251192570 +vn 0.224660709500 0.880128324032 0.418212532997 +vn -0.015306836925 0.932955980301 0.359664946795 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn -0.015306836925 0.932955980301 0.359664946795 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.671189248562 0.679710924625 0.295800745487 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.133595734835 0.780554592609 0.610644459724 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.220427542925 0.888312995434 0.402879327536 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.012269859202 0.997172594070 0.074136719108 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.012269859202 0.997172594070 0.074136719108 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.132539749146 0.945317745209 0.298005938530 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.263727605343 0.610503315926 0.746815502644 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.020327450708 0.685757458210 0.727546215057 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.253069043159 0.614814400673 0.746966719627 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.112411670387 0.934677660465 0.337255597115 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.047376774251 0.985158741474 0.164977937937 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.408763051033 0.858367443085 0.310029268265 +vn 0.112411670387 0.934677660465 0.337255597115 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn -0.047376774251 0.985158741474 0.164977937937 +vn -0.408763051033 0.858367443085 0.310029268265 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.029441878200 0.010064356960 0.999515831470 +vn -0.035715855658 0.282992452383 0.958456933498 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.029441878200 0.010064356960 0.999515831470 +vn -0.050312381238 0.219402447343 0.974336326122 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.169710069895 0.354005783796 0.919716477394 +vn -0.035715855658 0.282992452383 0.958456933498 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.035715855658 0.282992452383 0.958456933498 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn -0.085905134678 0.072124846280 0.993689239025 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn 0.058739125729 0.414347767830 0.908221125603 +vn 0.075094878674 0.432029217482 0.898727715015 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.085905134678 0.072124846280 0.993689239025 +vn 0.058739125729 0.414347767830 0.908221125603 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.035715855658 0.282992452383 0.958456933498 +vn -0.035715855658 0.282992452383 0.958456933498 +vn 0.029441878200 0.010064356960 0.999515831470 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.263161271811 0.103435955942 0.959190905094 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.453169703484 0.481266558170 0.750346422195 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.660578846931 0.637442171574 0.396614521742 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.204309478402 0.943660676479 0.260311752558 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.179308205843 0.861584722996 0.474889785051 +vn -0.220427542925 0.888312995434 0.402879327536 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.408763051033 0.858367443085 0.310029268265 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.408763051033 0.858367443085 0.310029268265 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.408763051033 0.858367443085 0.310029268265 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.387950241566 0.306505471468 0.869223237038 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn -0.085905134678 0.072124846280 0.993689239025 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.058739125729 0.414347767830 0.908221125603 +vn -0.085905134678 0.072124846280 0.993689239025 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.735418856144 0.087225042284 0.671975374222 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.067010790110 0.193234190345 0.978861629963 +vn 0.196217641234 0.079919569194 0.977298080921 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.339029431343 0.284355103970 0.896772682667 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.087292499840 0.331456899643 0.939423382282 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.505942106247 0.540051519871 0.672582268715 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.047376774251 0.985158741474 0.164977937937 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.408763051033 0.858367443085 0.310029268265 +vn -0.047376774251 0.985158741474 0.164977937937 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.534430682659 0.838877797127 0.103285685182 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.087292499840 0.331456899643 0.939423382282 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.387950241566 0.306505471468 0.869223237038 +vn -0.560695827007 0.078877851367 0.824256300926 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.323057621717 -0.945225358009 -0.046719886363 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.387950241566 0.306505471468 0.869223237038 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.323057621717 -0.945225358009 -0.046719886363 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn -0.253069043159 0.614814400673 0.746966719627 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.457814812660 0.521315336227 0.720163822174 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.389436155558 -0.407782554626 0.825864911079 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.735418856144 0.087225042284 0.671975374222 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.881415486336 0.472221165895 0.010672469623 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.074762940407 0.203222677112 0.976274073124 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.485629320145 0.230432748795 0.843246638775 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.074762940407 0.203222677112 0.976274073124 +vn 0.283379137516 0.492464959621 0.822906136513 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.485629320145 0.230432748795 0.843246638775 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.283379137516 0.492464959621 0.822906136513 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.131599500775 0.737507283688 0.662393093109 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.109330229461 0.941514909267 0.318742185831 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.109330229461 0.941514909267 0.318742185831 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.242646485567 0.968250751495 0.060110073537 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.119672834873 0.101008400321 0.987661719322 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.701901853085 0.564634799957 0.434190422297 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.354700446129 0.034820698202 0.934331357479 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.188408941031 0.017793446779 0.981929481030 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.188408941031 0.017793446779 0.981929481030 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.314111679792 0.058616135269 0.947574794292 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.027125038207 0.236739024520 0.971194565296 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.206207558513 0.036233242601 0.977837204933 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.701901853085 0.564634799957 0.434190422297 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.701901853085 0.564634799957 0.434190422297 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.701901853085 0.564634799957 0.434190422297 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn -0.334633797407 0.108778014779 0.936048924923 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.334633797407 0.108778014779 0.936048924923 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn -0.202762871981 0.044235628098 0.978228211403 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.987220883369 0.152396500111 0.046585436910 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.303327411413 0.940892398357 0.150711387396 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.506033003330 0.457370489836 0.731261134148 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.290093451738 0.940565109253 0.176587253809 +vn 0.303327411413 0.940892398357 0.150711387396 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn 0.197829738259 -0.940914392471 -0.274851888418 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.197829738259 -0.940914392471 -0.274851888418 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.197829738259 -0.940914392471 -0.274851888418 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.672420799732 0.229601070285 0.703657329082 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn -0.672420799732 0.229601070285 0.703657329082 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.645085215569 0.203440889716 0.736530244350 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.096150808036 0.063654631376 0.993329286575 +vn 0.254643589258 0.460702836514 0.850240886211 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.054755549878 0.784012436867 0.618325412273 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.254643589258 0.460702836514 0.850240886211 +vn -0.096150808036 0.063654631376 0.993329286575 +vn 0.254643589258 0.460702836514 0.850240886211 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.254643589258 0.460702836514 0.850240886211 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn 0.317261904478 0.790387809277 0.524053394794 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.516634881496 0.036752458662 0.855416655540 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.487584769726 0.575793743134 0.656294643879 +vn -0.004625395872 0.025178126991 0.999672293663 +vn -0.035672992468 0.077534280717 0.996351301670 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.288535594940 0.014455531724 0.957360029221 +vn -0.004625395872 0.025178126991 0.999672293663 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.232914984226 0.237921655178 0.942944288254 +vn -0.035672992468 0.077534280717 0.996351301670 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn -0.035672992468 0.077534280717 0.996351301670 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.410304158926 -0.774405479431 0.481608390808 +vn 0.552535414696 -0.620800912380 0.556157231331 +vn 0.552535414696 -0.620800912380 0.556157231331 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn 0.410304158926 -0.774405479431 0.481608390808 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn 0.135520935059 -0.885927915573 0.443582922220 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.465447813272 -0.842818975449 0.270211994648 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.552535414696 -0.620800912380 0.556157231331 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.587922394276 -0.743195712566 0.319385975599 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.453915089369 -0.848896443844 0.270806014538 +vn 0.453915089369 -0.848896443844 0.270806014538 +vn 0.587922394276 -0.743195712566 0.319385975599 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.465447813272 -0.842818975449 0.270211994648 +vn 0.465447813272 -0.842818975449 0.270211994648 +vn 0.453915089369 -0.848896443844 0.270806014538 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.560174226761 -0.823622524738 0.088604912162 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.560174226761 -0.823622524738 0.088604912162 +vn 0.590715467930 -0.806350469589 -0.029225697741 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.560174226761 -0.823622524738 0.088604912162 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.590715467930 -0.806350469589 -0.029225697741 +vn 0.520828485489 -0.852863729000 -0.036893356591 +vn 0.520828485489 -0.852863729000 -0.036893356591 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.409019470215 -0.695324003696 -0.590954840183 +vn 0.499595552683 -0.467188239098 -0.729478895664 +vn 0.499595552683 -0.467188239098 -0.729478895664 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.409019470215 -0.695324003696 -0.590954840183 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.520828485489 -0.852863729000 -0.036893356591 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.486455798149 -0.718520760536 0.497080177069 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.499595552683 -0.467188239098 -0.729478895664 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.486455798149 -0.718520760536 0.497080177069 +vn 0.554613232613 -0.706817686558 0.439104676247 +vn 0.554613232613 -0.706817686558 0.439104676247 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.936993002892 0.101482637227 0.334283322096 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn 0.530688881874 -0.768034517765 0.358458191156 +vn 0.591515541077 -0.752557575703 0.289424389601 +vn 0.591515541077 -0.752557575703 0.289424389601 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn 0.530688881874 -0.768034517765 0.358458191156 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.536898553371 -0.759433269501 0.367424845695 +vn 0.530688881874 -0.768034517765 0.358458191156 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.554771304131 -0.800131857395 0.228074103594 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn 0.300278335810 -0.889515042305 0.344377607107 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn 0.300278335810 -0.889515042305 0.344377607107 +vn 0.135520935059 -0.885927915573 0.443582922220 +vn 0.135520935059 -0.885927915573 0.443582922220 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.035672992468 0.077534280717 0.996351301670 +vn -0.035672992468 0.077534280717 0.996351301670 +vn -0.004625395872 0.025178126991 0.999672293663 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.004625395872 0.025178126991 0.999672293663 +vn -0.004625395872 0.025178126991 0.999672293663 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.234883025289 0.208845853806 0.949322581291 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.334633797407 0.108778014779 0.936048924923 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.334633797407 0.108778014779 0.936048924923 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.094372428954 0.461883842945 0.881905436516 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.094372428954 0.461883842945 0.881905436516 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.121771819890 0.907417356968 0.402200639248 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.125300318003 0.134481579065 0.982962131500 +vn -0.038040585816 0.040302138776 0.998463153839 +vn -0.038040585816 0.040302138776 0.998463153839 +vn -0.092569380999 0.481423765421 0.871585965157 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.006276889239 0.523106515408 0.852244198322 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.090679392219 0.816002249718 0.570891857147 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.006276889239 0.523106515408 0.852244198322 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.121771819890 0.907417356968 0.402200639248 +vn 0.094372428954 0.461883842945 0.881905436516 +vn 0.006276889239 0.523106515408 0.852244198322 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.065149024129 0.968082070351 0.242018088698 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.038040585816 0.040302138776 0.998463153839 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn -0.038040585816 0.040302138776 0.998463153839 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.038040585816 0.040302138776 0.998463153839 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.175727561116 0.689686655998 0.702461481094 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.046635005623 0.905606448650 0.421547323465 +vn -0.004725415260 0.954034984112 0.299657970667 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.004725415260 0.954034984112 0.299657970667 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.004725415260 0.954034984112 0.299657970667 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn -0.004725415260 0.954034984112 0.299657970667 +vn -0.004725415260 0.954034984112 0.299657970667 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.004725415260 0.954034984112 0.299657970667 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.214608341455 0.516929745674 0.828689873219 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.046635005623 0.905606448650 0.421547323465 +vn -0.175727561116 0.689686655998 0.702461481094 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.242646485567 0.968250751495 0.060110073537 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.242646485567 0.968250751495 0.060110073537 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.242646485567 0.968250751495 0.060110073537 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.109330229461 0.941514909267 0.318742185831 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn -0.004625395872 0.025178126991 0.999672293663 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.202762871981 0.044235628098 0.978228211403 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.560032069683 -0.786853432655 0.259279340506 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.560032069683 -0.786853432655 0.259279340506 +vn 0.554771304131 -0.800131857395 0.228074103594 +vn 0.554771304131 -0.800131857395 0.228074103594 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn 0.526070177555 -0.834664642811 0.163049384952 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn 0.591515541077 -0.752557575703 0.289424389601 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.526070177555 -0.834664642811 0.163049384952 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.653912723064 -0.623547196388 0.428470611572 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.653912723064 -0.623547196388 0.428470611572 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.536898553371 -0.759433269501 0.367424845695 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.554613232613 -0.706817686558 0.439104676247 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.363941878080 0.109785512090 0.924928903580 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.327142566442 0.847049534321 0.418909132481 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.562911212444 -0.417130827904 0.713535487652 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.562911212444 -0.417130827904 0.713535487652 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.373320966959 0.424053817987 0.825111985207 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.378446906805 0.448631554842 0.809634268284 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.109330229461 0.941514909267 0.318742185831 +vn -0.182598531246 0.715381562710 0.674453139305 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.421047270298 0.334669202566 0.843039572239 +vn -0.109330229461 0.941514909267 0.318742185831 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.816449046135 -0.409892588854 0.406692773104 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.816449046135 -0.409892588854 0.406692773104 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.816449046135 -0.409892588854 0.406692773104 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.283379137516 0.492464959621 0.822906136513 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.562911212444 -0.417130827904 0.713535487652 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.883379578590 0.453356623650 0.118778400123 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.334695070982 0.126260608435 0.933829486370 +vn 0.148399889469 0.002237849403 0.988924920559 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn 0.148399889469 0.002237849403 0.988924920559 +vn 0.148399889469 0.002237849403 0.988924920559 +vn 0.054863095284 0.347303807735 0.936146438122 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.054863095284 0.347303807735 0.936146438122 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.054863095284 0.347303807735 0.936146438122 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.748294830322 0.242019072175 0.617641985416 +vn 0.023788293824 0.573797225952 0.818651854992 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.291076213121 0.481702655554 0.826581597328 +vn 0.054863095284 0.347303807735 0.936146438122 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.054863095284 0.347303807735 0.936146438122 +vn 0.054863095284 0.347303807735 0.936146438122 +vn 0.148399889469 0.002237849403 0.988924920559 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.148399889469 0.002237849403 0.988924920559 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.137372553349 0.403856068850 0.904449582100 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.148399889469 0.002237849403 0.988924920559 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn 0.143529653549 0.440658539534 0.886125981808 +vn 0.190369337797 0.409592747688 0.892184555531 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.068840779364 0.560529172421 0.825268447399 +vn 0.143529653549 0.440658539534 0.886125981808 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.270152628422 0.623499035835 0.733666479588 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.023788293824 0.573797225952 0.818651854992 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.011909886263 0.610265195370 0.792107701302 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.143529653549 0.440658539534 0.886125981808 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.193748310208 0.389752209187 0.900308191776 +vn -0.217033192515 0.376930564642 0.900455415249 +vn 0.080102473497 0.828760683537 0.553840458393 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.217033192515 0.376930564642 0.900455415249 +vn 0.193748310208 0.389752209187 0.900308191776 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.065837807953 0.882237017155 0.466179400682 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.469709098339 0.664078414440 0.581698536873 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.065837807953 0.882237017155 0.466179400682 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.771863758564 0.521848499775 0.363181054592 +vn 0.057261314243 0.891568779945 0.449250817299 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.411870986223 0.780674993992 0.470009416342 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.150822833180 0.635599315166 0.757143259048 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.390541195869 0.766919553280 0.509226858616 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.143529653549 0.440658539534 0.886125981808 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.068840779364 0.560529172421 0.825268447399 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.143529653549 0.440658539534 0.886125981808 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.162006527185 0.616976797581 0.770125627518 +vn -0.011909886263 0.610265195370 0.792107701302 +vn 0.143529653549 0.440658539534 0.886125981808 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.066447027028 0.874545276165 0.480370044708 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.011909886263 0.610265195370 0.792107701302 +vn 0.162006527185 0.616976797581 0.770125627518 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.383693754673 0.415092200041 0.824910640717 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.530067265034 0.182262152433 0.828135967255 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.489686667919 0.504504680634 0.711113214493 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.465997457504 0.474939972162 0.746510803699 +vn 0.174813181162 0.397422939539 0.900830388069 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.104101993144 0.368369311094 0.923832714558 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.174813181162 0.397422939539 0.900830388069 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.023426074535 0.341141790152 0.939719915390 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.023426074535 0.341141790152 0.939719915390 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.256318479776 0.039006829262 0.965804994106 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.023426074535 0.341141790152 0.939719915390 +vn 0.212365403771 0.248311832547 0.945114910603 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.023426074535 0.341141790152 0.939719915390 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.076032698154 0.722265958786 0.687423348427 +vn 0.212365403771 0.248311832547 0.945114910603 +vn -0.023426074535 0.341141790152 0.939719915390 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.076032698154 0.722265958786 0.687423348427 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.212365403771 0.248311832547 0.945114910603 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.485179066658 0.696842193604 0.528216063976 +vn 0.189450860023 0.359886229038 0.913559138775 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.068228773773 0.298730581999 0.951895415783 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.189450860023 0.359886229038 0.913559138775 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.148606613278 0.474946022034 0.867376685143 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.143435344100 0.498812109232 0.854758918285 +vn -0.012771333568 0.858014822006 0.513466119766 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.012771333568 0.858014822006 0.513466119766 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.055986881256 0.728759109974 0.682477593422 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.067125074565 0.157456219196 0.985242009163 +vn 0.202230855823 0.135011807084 0.969986855984 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.200406655669 0.284720838070 0.937427997589 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.202230855823 0.135011807084 0.969986855984 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.919281125069 0.197047114372 0.340726643801 +vn -0.919281125069 0.197047114372 0.340726643801 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.901383638382 0.126723989844 0.414063543081 +vn -0.901383638382 0.126723989844 0.414063543081 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.895166754723 0.229004427791 0.382404863834 +vn -0.895166754723 0.229004427791 0.382404863834 +vn -0.901383638382 0.126723989844 0.414063543081 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.804847061634 0.546090245247 0.232393324375 +vn -0.804847061634 0.546090245247 0.232393324375 +vn -0.895166754723 0.229004427791 0.382404863834 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.423992425203 0.897252678871 0.123158536851 +vn -0.423992425203 0.897252678871 0.123158536851 +vn -0.804847061634 0.546090245247 0.232393324375 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.160930529237 0.977088928223 0.139278993011 +vn -0.423992425203 0.897252678871 0.123158536851 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.160930529237 0.977088928223 0.139278993011 +vn -0.105991713703 0.867368280888 0.486248910427 +vn 0.066447027028 0.874545276165 0.480370044708 +vn -0.025935206562 0.987000048161 0.158613726497 +vn -0.025935206562 0.987000048161 0.158613726497 +vn -0.160930529237 0.977088928223 0.139278993011 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.919281125069 0.197047114372 0.340726643801 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.992123544216 0.107160180807 0.064866028726 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.992123544216 0.107160180807 0.064866028726 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.217910498381 0.339262723923 0.915104269981 +vn -0.212129950523 0.227813541889 0.950316727161 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.217910498381 0.339262723923 0.915104269981 +vn -0.191797509789 0.434196591377 0.880163073540 +vn -0.217910498381 0.339262723923 0.915104269981 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.191797509789 0.434196591377 0.880163073540 +vn -0.427307009697 0.517403364182 0.741419196129 +vn -0.191797509789 0.434196591377 0.880163073540 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.427307009697 0.517403364182 0.741419196129 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.492909461260 -0.012797347270 -0.869986474514 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.492909461260 -0.012797347270 -0.869986474514 +vn -0.091410763562 -0.033696297556 -0.995243012905 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.492909461260 -0.012797347270 -0.869986474514 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.427307009697 0.517403364182 0.741419196129 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.398361533880 0.768928885460 0.500056445599 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.561793684959 0.644772768021 0.518320322037 +vn -0.561793684959 0.644772768021 0.518320322037 +vn -0.398361533880 0.768928885460 0.500056445599 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.698581337929 0.486032783985 0.525124967098 +vn -0.698581337929 0.486032783985 0.525124967098 +vn -0.561793684959 0.644772768021 0.518320322037 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.762003898621 0.412130415440 0.499498367310 +vn -0.762003898621 0.412130415440 0.499498367310 +vn -0.698581337929 0.486032783985 0.525124967098 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.762003898621 0.412130415440 0.499498367310 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.866007030010 0.441917747259 0.233966961503 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.776705801487 0.629756927490 0.011586484499 +vn -0.776705801487 0.629756927490 0.011586484499 +vn -0.866007030010 0.441917747259 0.233966961503 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.523762464523 0.784509122372 -0.331991434097 +vn -0.776705801487 0.629756927490 0.011586484499 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.523762464523 0.784509122372 -0.331991434097 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.206527620554 0.787486314774 -0.580699265003 +vn -0.206527620554 0.787486314774 -0.580699265003 +vn -0.523762464523 0.784509122372 -0.331991434097 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn -0.206527620554 0.787486314774 -0.580699265003 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.105937428772 0.694840073586 0.711318850517 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.027015432715 0.338717550039 0.940500199795 +vn 0.009658423252 0.446354955435 0.894803881645 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.266394942999 0.146734341979 0.952629387379 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.266394942999 0.146734341979 0.952629387379 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn 0.036760635674 -0.803918957710 0.593601703644 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn -0.109498061240 -0.629230618477 0.769466698170 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.109498061240 -0.629230618477 0.769466698170 +vn -0.109498061240 -0.629230618477 0.769466698170 +vn -0.221097260714 -0.580378770828 0.783757925034 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.221097260714 -0.580378770828 0.783757925034 +vn -0.221097260714 -0.580378770828 0.783757925034 +vn -0.685548245907 0.317658185959 0.655070185661 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.685548245907 0.317658185959 0.655070185661 +vn -0.685548245907 0.317658185959 0.655070185661 +vn -0.600660264492 0.792620480061 0.104690179229 +vn -0.105937428772 0.694840073586 0.711318850517 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.600660264492 0.792620480061 0.104690179229 +vn -0.600660264492 0.792620480061 0.104690179229 +vn -0.069257460535 0.874967575073 0.479202568531 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.266394942999 0.146734341979 0.952629387379 +vn 0.009658423252 0.446354955435 0.894803881645 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.069257460535 0.874967575073 0.479202568531 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.266394942999 0.146734341979 0.952629387379 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.446344643831 0.362028479576 0.818359255791 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.446344643831 0.362028479576 0.818359255791 +vn -0.446344643831 0.362028479576 0.818359255791 +vn -0.504875242710 0.559537291527 0.657281517982 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.504875242710 0.559537291527 0.657281517982 +vn -0.504875242710 0.559537291527 0.657281517982 +vn -0.336613386869 0.544670164585 0.768131375313 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.336613386869 0.544670164585 0.768131375313 +vn -0.336613386869 0.544670164585 0.768131375313 +vn -0.102486148477 -0.211847081780 0.971914291382 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.102486148477 -0.211847081780 0.971914291382 +vn -0.102486148477 -0.211847081780 0.971914291382 +vn -0.255514144897 -0.578030169010 0.774979770184 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn 0.011388301849 -0.758041679859 0.652106702328 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.255514144897 -0.578030169010 0.774979770184 +vn 0.011388301849 -0.758041679859 0.652106702328 +vn 0.036760635674 -0.803918957710 0.593601703644 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn 0.011388301849 -0.758041679859 0.652106702328 +vn 0.036760635674 -0.803918957710 0.593601703644 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.129079088569 0.182803943753 0.974639058113 +vn 0.256318479776 0.039006829262 0.965804994106 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.129079088569 0.182803943753 0.974639058113 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.143435344100 0.498812109232 0.854758918285 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.125801399350 0.381812900305 0.915637969971 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.193748310208 0.389752209187 0.900308191776 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.193748310208 0.389752209187 0.900308191776 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.066447027028 0.874545276165 0.480370044708 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.256318479776 0.039006829262 0.965804994106 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.246009349823 0.853070199490 0.460163712502 +vn -0.012771333568 0.858014822006 0.513466119766 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.055986881256 0.728759109974 0.682477593422 +vn -0.012771333568 0.858014822006 0.513466119766 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.202230855823 0.135011807084 0.969986855984 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.202230855823 0.135011807084 0.969986855984 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.950457096100 0.270852208138 -0.152546450496 +vn 0.950457096100 0.270852208138 -0.152546450496 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.965679407120 0.234967827797 -0.110695056617 +vn 0.965679407120 0.234967827797 -0.110695056617 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.965679407120 0.234967827797 -0.110695056617 +vn 0.927285432816 0.353592813015 -0.122938469052 +vn 0.927285432816 0.353592813015 -0.122938469052 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.927285432816 0.353592813015 -0.122938469052 +vn 0.731829226017 0.655255794525 -0.187258720398 +vn 0.731829226017 0.655255794525 -0.187258720398 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.731829226017 0.655255794525 -0.187258720398 +vn 0.311583012342 0.947266399860 -0.074849106371 +vn 0.311583012342 0.947266399860 -0.074849106371 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.084336921573 0.993597984314 0.075168356299 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.311583012342 0.947266399860 -0.074849106371 +vn 0.084336921573 0.993597984314 0.075168356299 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.084336921573 0.993597984314 0.075168356299 +vn -0.025935206562 0.987000048161 0.158613726497 +vn -0.025935206562 0.987000048161 0.158613726497 +vn 0.066447027028 0.874545276165 0.480370044708 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.950457096100 0.270852208138 -0.152546450496 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.927901625633 0.165795251727 -0.333931833506 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.927901625633 0.165795251727 -0.333931833506 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn 0.009567377158 0.062936350703 0.997971653938 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.009567377158 0.062936350703 0.997971653938 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.307430177927 0.101323992014 0.946160733700 +vn -0.043281786144 0.417985618114 0.907422006130 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.009567377158 0.062936350703 0.997971653938 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.211031064391 0.334258556366 0.918551623821 +vn 0.009567377158 0.062936350703 0.997971653938 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.212129950523 0.227813541889 0.950316727161 +vn -0.211031064391 0.334258556366 0.918551623821 +vn -0.252683490515 0.431100577116 0.866200506687 +vn -0.043281786144 0.417985618114 0.907422006130 +vn 0.009567377158 0.062936350703 0.997971653938 +vn 0.009567377158 0.062936350703 0.997971653938 +vn -0.211031064391 0.334258556366 0.918551623821 +vn -0.252683490515 0.431100577116 0.866200506687 +vn -0.005775345955 0.566921889782 0.823751330376 +vn 0.118042111397 0.582126080990 0.804484486580 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.252683490515 0.431100577116 0.866200506687 +vn -0.005775345955 0.566921889782 0.823751330376 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.307430177927 0.101323992014 0.946160733700 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.043281786144 0.417985618114 0.907422006130 +vn 0.118042111397 0.582126080990 0.804484486580 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.340949475765 0.080066934228 -0.936665773392 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.340949475765 0.080066934228 -0.936665773392 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.091410763562 -0.033696297556 -0.995243012905 +vn 0.340949475765 0.080066934228 -0.936665773392 +vn -0.087644666433 0.797944962978 0.596323907375 +vn 0.022682305425 0.700176298618 0.713609576225 +vn 0.118042111397 0.582126080990 0.804484486580 +vn 0.118042111397 0.582126080990 0.804484486580 +vn -0.005775345955 0.566921889782 0.823751330376 +vn -0.087644666433 0.797944962978 0.596323907375 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.118042111397 0.582126080990 0.804484486580 +vn 0.022682305425 0.700176298618 0.713609576225 +vn 0.022682305425 0.700176298618 0.713609576225 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.022682305425 0.700176298618 0.713609576225 +vn -0.087644666433 0.797944962978 0.596323907375 +vn -0.087644666433 0.797944962978 0.596323907375 +vn -0.021405575797 0.810315549374 0.585602700710 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.158913969994 0.649801671505 0.743306219578 +vn -0.021405575797 0.810315549374 0.585602700710 +vn 0.135182872415 0.733623564243 0.665974557400 +vn 0.135182872415 0.733623564243 0.665974557400 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.135182872415 0.733623564243 0.665974557400 +vn 0.297315388918 0.622704029083 0.723770201206 +vn 0.297315388918 0.622704029083 0.723770201206 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.297315388918 0.622704029083 0.723770201206 +vn 0.389200001955 0.573539316654 0.720816195011 +vn 0.389200001955 0.573539316654 0.720816195011 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.389200001955 0.573539316654 0.720816195011 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.580223083496 0.617204606533 0.531412839890 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.580223083496 0.617204606533 0.531412839890 +vn 0.527233898640 0.796128153801 0.296992242336 +vn 0.527233898640 0.796128153801 0.296992242336 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.416550189257 0.902303695679 -0.111058652401 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.527233898640 0.796128153801 0.296992242336 +vn 0.416550189257 0.902303695679 -0.111058652401 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.416550189257 0.902303695679 -0.111058652401 +vn 0.250042259693 0.829527139664 -0.499363213778 +vn 0.250042259693 0.829527139664 -0.499363213778 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.250042259693 0.829527139664 -0.499363213778 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.336075752974 -0.870628416538 0.359248220921 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.340711802244 -0.641201555729 0.687587082386 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.487048745155 -0.694580614567 0.529472649097 +vn 0.340711802244 -0.641201555729 0.687587082386 +vn 0.340711802244 -0.641201555729 0.687587082386 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.744322121143 0.657111704350 0.119116656482 +vn 0.487048745155 -0.694580614567 0.529472649097 +vn 0.487048745155 -0.694580614567 0.529472649097 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.141101598740 0.945256769657 -0.294244796038 +vn 0.744322121143 0.657111704350 0.119116656482 +vn 0.744322121143 0.657111704350 0.119116656482 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.217779934406 0.618968546391 0.754619002342 +vn -0.089801914990 0.986447930336 0.137317344546 +vn 0.141101598740 0.945256769657 -0.294244796038 +vn 0.141101598740 0.945256769657 -0.294244796038 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.425227582455 0.791610717773 0.438786923885 +vn -0.089801914990 0.986447930336 0.137317344546 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.425227582455 0.791610717773 0.438786923885 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.706862568855 0.568781375885 0.420515179634 +vn 0.425227582455 0.791610717773 0.438786923885 +vn 0.425227582455 0.791610717773 0.438786923885 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.647108733654 0.750588536263 0.133668154478 +vn 0.706862568855 0.568781375885 0.420515179634 +vn 0.706862568855 0.568781375885 0.420515179634 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.330178469419 0.915636241436 0.229330360889 +vn 0.647108733654 0.750588536263 0.133668154478 +vn 0.647108733654 0.750588536263 0.133668154478 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.677508771420 -0.232246801257 0.697884857655 +vn 0.330178469419 0.915636241436 0.229330360889 +vn 0.330178469419 0.915636241436 0.229330360889 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.647285282612 -0.671119987965 0.361413508654 +vn 0.677508771420 -0.232246801257 0.697884857655 +vn 0.677508771420 -0.232246801257 0.697884857655 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.388192862272 -0.845675826073 0.366249561310 +vn 0.647285282612 -0.671119987965 0.361413508654 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.388192862272 -0.845675826073 0.366249561310 +vn 0.336075752974 -0.870628416538 0.359248220921 +vn 0.388192862272 -0.845675826073 0.366249561310 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.336075752974 -0.870628416538 0.359248220921 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.256318479776 0.039006829262 0.965804994106 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.159534424543 0.524704039097 0.836202383041 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.905587971210 0.151429876685 0.396206259727 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.905587971210 0.151429876685 0.396206259727 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.905587971210 0.151429876685 0.396206259727 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.905587971210 0.151429876685 0.396206259727 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.506390750408 0.538258075714 0.673681437969 +vn -0.299555271864 0.546643376350 0.781951189041 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.073365107179 0.805665493011 0.587810039520 +vn -0.339267462492 0.787710845470 0.514207422733 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.339267462492 0.787710845470 0.514207422733 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.339267462492 0.787710845470 0.514207422733 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.022177392617 0.949803769588 0.312059193850 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.339267462492 0.787710845470 0.514207422733 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.203431159258 0.979057490826 0.007884264924 +vn 0.203431159258 0.979057490826 0.007884264924 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn -0.009512823075 0.999211311340 0.038552604616 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.203431159258 0.979057490826 0.007884264924 +vn -0.009512823075 0.999211311340 0.038552604616 +vn 0.022177392617 0.949803769588 0.312059193850 +vn -0.009512823075 0.999211311340 0.038552604616 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.288760930300 0.908043682575 0.303436666727 +vn 0.022177392617 0.949803769588 0.312059193850 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.707089662552 0.699392676353 0.104278922081 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.009512823075 0.999211311340 0.038552604616 +vn -0.009512823075 0.999211311340 0.038552604616 +vn 0.203431159258 0.979057490826 0.007884264924 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.009512823075 0.999211311340 0.038552604616 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn 0.221423864365 -0.754890739918 0.617342233658 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn 0.349241763353 -0.781512439251 0.516980171204 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.221423864365 -0.754890739918 0.617342233658 +vn 0.349241763353 -0.781512439251 0.516980171204 +vn 0.408381432295 -0.796557366848 0.445781260729 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.349241763353 -0.781512439251 0.516980171204 +vn 0.408381432295 -0.796557366848 0.445781260729 +vn 0.427210748196 -0.706106841564 0.564715921879 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.408381432295 -0.796557366848 0.445781260729 +vn 0.427210748196 -0.706106841564 0.564715921879 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.427210748196 -0.706106841564 0.564715921879 +vn 0.428907752037 -0.443769127131 0.786833584309 +vn 0.428907752037 -0.443769127131 0.786833584309 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.428907752037 -0.443769127131 0.786833584309 +vn 0.417140841484 -0.120375834405 0.900834739208 +vn 0.417140841484 -0.120375834405 0.900834739208 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.417140841484 -0.120375834405 0.900834739208 +vn 0.424012660980 0.031315691769 0.905114650726 +vn 0.424012660980 0.031315691769 0.905114650726 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.424012660980 0.031315691769 0.905114650726 +vn 0.395210921764 0.116690479219 0.911148548126 +vn 0.395210921764 0.116690479219 0.911148548126 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.395210921764 0.116690479219 0.911148548126 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn -0.017104798928 -0.994401037693 0.104278236628 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn -0.089078962803 -0.979717195034 -0.179496884346 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn -0.017104798928 -0.994401037693 0.104278236628 +vn -0.089078962803 -0.979717195034 -0.179496884346 +vn -0.141694068909 -0.964558184147 -0.222599074244 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn -0.089078962803 -0.979717195034 -0.179496884346 +vn -0.141694068909 -0.964558184147 -0.222599074244 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn -0.141694068909 -0.964558184147 -0.222599074244 +vn -0.164628922939 -0.971865355968 -0.168449014425 +vn -0.164628922939 -0.971865355968 -0.168449014425 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn -0.164628922939 -0.971865355968 -0.168449014425 +vn -0.106762722135 -0.991933047771 -0.068341821432 +vn -0.106762722135 -0.991933047771 -0.068341821432 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn -0.106762722135 -0.991933047771 -0.068341821432 +vn 0.032250907272 -0.990156650543 0.136197254062 +vn 0.032250907272 -0.990156650543 0.136197254062 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.086438052356 -0.988402068615 0.124859288335 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.032250907272 -0.990156650543 0.136197254062 +vn 0.086438052356 -0.988402068615 0.124859288335 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn 0.086438052356 -0.988402068615 0.124859288335 +vn 0.156755745411 -0.987137198448 0.031429961324 +vn 0.156755745411 -0.987137198448 0.031429961324 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn 0.156755745411 -0.987137198448 0.031429961324 +vn 0.129998713732 -0.981209576130 -0.142576515675 +vn 0.129998713732 -0.981209576130 -0.142576515675 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn 0.160609349608 -0.944374680519 -0.286986321211 +vn 0.171683400869 -0.948143720627 -0.267485111952 +vn 0.171683400869 -0.948143720627 -0.267485111952 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn 0.171683400869 -0.948143720627 -0.267485111952 +vn 0.200182467699 -0.979581654072 -0.018621146679 +vn 0.200182467699 -0.979581654072 -0.018621146679 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn 0.200182467699 -0.979581654072 -0.018621146679 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.105939380825 0.093255937099 0.989989995956 +vn 0.105939380825 0.093255937099 0.989989995956 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.304022520781 0.155782133341 0.939841628075 +vn 0.105939380825 0.093255937099 0.989989995956 +vn 0.091720648110 -0.006141365506 0.995765864849 +vn 0.091720648110 -0.006141365506 0.995765864849 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.365280956030 0.082129344344 0.927267253399 +vn 0.091720648110 -0.006141365506 0.995765864849 +vn 0.074245169759 -0.239324852824 0.968096733093 +vn 0.074245169759 -0.239324852824 0.968096733093 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn 0.074245169759 -0.239324852824 0.968096733093 +vn -0.011659302749 -0.585357308388 0.810691654682 +vn -0.011659302749 -0.585357308388 0.810691654682 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.011659302749 -0.585357308388 0.810691654682 +vn -0.097086712718 -0.792906105518 0.601559698582 +vn -0.097086712718 -0.792906105518 0.601559698582 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.097086712718 -0.792906105518 0.601559698582 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn 0.105939380825 0.093255937099 0.989989995956 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.344442546368 -0.215144351125 0.913822889328 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn -0.016325036064 -0.353321343660 0.935359537601 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.924340128899 0.360457271338 0.125163570046 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.339267462492 0.787710845470 0.514207422733 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.339267462492 0.787710845470 0.514207422733 +vn 0.160609349608 -0.944374680519 -0.286986321211 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn 0.129998713732 -0.981209576130 -0.142576515675 +vn 0.160609349608 -0.944374680519 -0.286986321211 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn 0.395210921764 0.116690479219 0.911148548126 +vn -0.016325036064 -0.353321343660 0.935359537601 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn 0.344442546368 -0.215144351125 0.913822889328 +vn 0.676891267300 0.478440582752 0.559386134148 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.215249896049 0.259879410267 0.941344857216 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.676891267300 0.478440582752 0.559386134148 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn 0.384487777948 0.887601256371 0.253639906645 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.347879409790 0.817592084408 0.458827942610 +vn 0.384487777948 0.887601256371 0.253639906645 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.254123061895 0.426116853952 0.868242979050 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.384487777948 0.887601256371 0.253639906645 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.384487777948 0.887601256371 0.253639906645 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.384487777948 0.887601256371 0.253639906645 +vn 0.685477375984 0.462024539709 0.562720298767 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.201308771968 0.240931555629 0.949434995651 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.685477375984 0.462024539709 0.562720298767 +vn -0.240289658308 0.320749431849 0.916177213192 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.653510272503 0.565980076790 0.502584218979 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.221647694707 0.312501966953 0.923696279526 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.680037975311 0.480506420135 0.553770661354 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.219177588820 0.295268416405 0.929934263229 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.682748973370 0.479876726866 0.550973832607 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.225854665041 0.275281429291 0.934456944466 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.680287778378 0.480499923229 0.553469419479 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.658345997334 0.509523391724 0.554045557976 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.211771011353 0.234253704548 0.948829948902 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.750280976295 0.265666365623 0.605392277241 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.213284403086 0.286679387093 0.933983266354 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.750280976295 0.265666365623 0.605392277241 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.520998537540 -0.756937682629 0.394469082355 +vn 0.340784788132 -0.793341636658 0.504454910755 +vn 0.333805084229 -0.795262694359 0.506094276905 +vn 0.333805084229 -0.795262694359 0.506094276905 +vn 0.523602247238 -0.757869243622 0.389197736979 +vn 0.520998537540 -0.756937682629 0.394469082355 +vn 0.585367500782 -0.787940621376 0.191035225987 +vn 0.520998537540 -0.756937682629 0.394469082355 +vn 0.523602247238 -0.757869243622 0.389197736979 +vn 0.523602247238 -0.757869243622 0.389197736979 +vn 0.588895976543 -0.784702122211 0.193504810333 +vn 0.585367500782 -0.787940621376 0.191035225987 +vn 0.428356975317 -0.900839090347 0.070705041289 +vn 0.585367500782 -0.787940621376 0.191035225987 +vn 0.588895976543 -0.784702122211 0.193504810333 +vn 0.588895976543 -0.784702122211 0.193504810333 +vn 0.425227791071 -0.902204632759 0.072167634964 +vn 0.428356975317 -0.900839090347 0.070705041289 +vn 0.244827017188 -0.958182632923 0.148140966892 +vn 0.428356975317 -0.900839090347 0.070705041289 +vn 0.425227791071 -0.902204632759 0.072167634964 +vn 0.425227791071 -0.902204632759 0.072167634964 +vn 0.247534096241 -0.957624971867 0.147245749831 +vn 0.244827017188 -0.958182632923 0.148140966892 +vn 0.238857537508 -0.902638971806 0.358036190271 +vn 0.244827017188 -0.958182632923 0.148140966892 +vn 0.247534096241 -0.957624971867 0.147245749831 +vn 0.247534096241 -0.957624971867 0.147245749831 +vn 0.239870905876 -0.901330232620 0.360646307468 +vn 0.238857537508 -0.902638971806 0.358036190271 +vn 0.340784788132 -0.793341636658 0.504454910755 +vn 0.238857537508 -0.902638971806 0.358036190271 +vn 0.239870905876 -0.901330232620 0.360646307468 +vn 0.239870905876 -0.901330232620 0.360646307468 +vn 0.333805084229 -0.795262694359 0.506094276905 +vn 0.340784788132 -0.793341636658 0.504454910755 +vn -0.351152896881 0.896278381348 -0.270881265402 +vn -0.389907628298 0.882185220718 -0.264047831297 +vn -0.380583465099 0.884880721569 -0.268593341112 +vn -0.380583465099 0.884880721569 -0.268593341112 +vn -0.349539011717 0.894979357719 -0.277190327644 +vn -0.351152896881 0.896278381348 -0.270881265402 +vn -0.315098047256 0.909006059170 -0.272802501917 +vn -0.351152896881 0.896278381348 -0.270881265402 +vn -0.349539011717 0.894979357719 -0.277190327644 +vn -0.349539011717 0.894979357719 -0.277190327644 +vn -0.314274698496 0.905051290989 -0.286554604769 +vn -0.315098047256 0.909006059170 -0.272802501917 +vn -0.324795067310 0.917077064514 -0.231252595782 +vn -0.315098047256 0.909006059170 -0.272802501917 +vn -0.314274698496 0.905051290989 -0.286554604769 +vn -0.314274698496 0.905051290989 -0.286554604769 +vn -0.327561646700 0.916575074196 -0.229332759976 +vn -0.324795067310 0.917077064514 -0.231252595782 +vn -0.376637071371 0.902566313744 -0.208610922098 +vn -0.324795067310 0.917077064514 -0.231252595782 +vn -0.327561646700 0.916575074196 -0.229332759976 +vn -0.327561646700 0.916575074196 -0.229332759976 +vn -0.376510679722 0.902412891388 -0.209500908852 +vn -0.376637071371 0.902566313744 -0.208610922098 +vn -0.409135401249 0.882911443710 -0.230381488800 +vn -0.376637071371 0.902566313744 -0.208610922098 +vn -0.376510679722 0.902412891388 -0.209500908852 +vn -0.376510679722 0.902412891388 -0.209500908852 +vn -0.404935628176 0.884113430977 -0.233175009489 +vn -0.409135401249 0.882911443710 -0.230381488800 +vn -0.389907628298 0.882185220718 -0.264047831297 +vn -0.409135401249 0.882911443710 -0.230381488800 +vn -0.404935628176 0.884113430977 -0.233175009489 +vn -0.404935628176 0.884113430977 -0.233175009489 +vn -0.380583465099 0.884880721569 -0.268593341112 +vn -0.389907628298 0.882185220718 -0.264047831297 +vn 0.570412695408 0.657898664474 0.491730272770 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.227320805192 0.221673280001 0.948254287243 +vn -0.227320805192 0.221673280001 0.948254287243 +vn 0.699121236801 0.428781896830 0.572167456150 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.699121236801 0.428781896830 0.572167456150 +vn 0.699121236801 0.428781896830 0.572167456150 +vn 0.892048120499 0.221571207047 -0.393898874521 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.892048120499 0.221571207047 -0.393898874521 +vn 0.892048120499 0.221571207047 -0.393898874521 +vn 0.232417941093 -0.321322321892 -0.918005347252 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.232417941093 -0.321322321892 -0.918005347252 +vn 0.232417941093 -0.321322321892 -0.918005347252 +vn -0.622993707657 -0.581864595413 -0.522792935371 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.622993707657 -0.581864595413 -0.522792935371 +vn -0.622993707657 -0.581864595413 -0.522792935371 +vn -0.857758522034 -0.317021489143 0.404657512903 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.857758522034 -0.317021489143 0.404657512903 +vn -0.857758522034 -0.317021489143 0.404657512903 +vn -0.227320805192 0.221673280001 0.948254287243 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.153622061014 0.138630852103 0.978356659412 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.551810741425 0.698545396328 0.455564767122 +vn 0.551810741425 0.698545396328 0.455564767122 +vn -0.257132411003 0.416455388069 0.872036576271 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.257132411003 0.416455388069 0.872036576271 +vn -0.257132411003 0.416455388069 0.872036576271 +vn -0.917856097221 -0.143156483769 0.370197772980 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.917856097221 -0.143156483769 0.370197772980 +vn -0.917856097221 -0.143156483769 0.370197772980 +vn -0.723487615585 -0.324982106686 -0.609058499336 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.723487615585 -0.324982106686 -0.609058499336 +vn -0.723487615585 -0.324982106686 -0.609058499336 +vn 0.159523501992 -0.123263031244 -0.979468464851 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.159523501992 -0.123263031244 -0.979468464851 +vn 0.159523501992 -0.123263031244 -0.979468464851 +vn 0.838533520699 0.315829396248 -0.443974435329 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.838533520699 0.315829396248 -0.443974435329 +vn 0.838533520699 0.315829396248 -0.443974435329 +vn 0.551810741425 0.698545396328 0.455564767122 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.543161213398 0.695157170296 0.470884680748 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.263800501823 0.365938633680 0.892467498779 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.117148451507 0.034600071609 0.992511510849 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.706371426582 0.398818373680 0.584793448448 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.764939725399 0.154692605138 0.625249862671 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.696267127991 0.416324853897 0.584709942341 +vn -0.163892567158 0.169382914901 0.971827507019 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.168904587626 0.153192564845 0.973654627800 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.696267127991 0.416324853897 0.584709942341 +vn -0.163892567158 0.169382914901 0.971827507019 +vn -0.869695901871 -0.274154037237 0.410449296236 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.163892567158 0.169382914901 0.971827507019 +vn -0.869695901871 -0.274154037237 0.410449296236 +vn -0.680004060268 -0.465699821711 -0.566319882870 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.869695901871 -0.274154037237 0.410449296236 +vn -0.680004060268 -0.465699821711 -0.566319882870 +vn 0.207809269428 -0.215856730938 -0.954055130482 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.680004060268 -0.465699821711 -0.566319882870 +vn 0.207809269428 -0.215856730938 -0.954055130482 +vn 0.899366557598 0.232333302498 -0.370352536440 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.207809269428 -0.215856730938 -0.954055130482 +vn 0.899366557598 0.232333302498 -0.370352536440 +vn 0.696267127991 0.416324853897 0.584709942341 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.899366557598 0.232333302498 -0.370352536440 +vn -0.662377238274 -0.626874268055 0.410225600004 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.499279826880 -0.238045200706 0.833099126816 +vn -0.499279826880 -0.238045200706 0.833099126816 +vn -0.804239809513 -0.440206110477 0.399270415306 +vn -0.662377238274 -0.626874268055 0.410225600004 +vn -0.522163152695 -0.246549248695 -0.816430747509 +vn -0.512087404728 -0.264961868525 -0.817044496536 +vn -0.473620533943 -0.329276412725 -0.816860198975 +vn -0.473620533943 -0.329276412725 -0.816860198975 +vn -0.473841011524 -0.329637020826 -0.816586852074 +vn -0.522163152695 -0.246549248695 -0.816430747509 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.382704496384 0.445656538010 -0.809275925159 +vn 0.526769578457 0.236967489123 -0.816308915615 +vn 0.526769578457 0.236967489123 -0.816308915615 +vn 0.847266793251 0.458697319031 -0.267835289240 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.804961979389 0.551999032497 0.217562019825 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.847266793251 0.458697319031 -0.267835289240 +vn 0.847266793251 0.458697319031 -0.267835289240 +vn 0.838858008385 0.494629532099 0.227285787463 +vn 0.804961979389 0.551999032497 0.217562019825 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn 0.048752576113 -0.154843926430 0.986735284328 +vn -0.069586545229 0.022697513923 0.997317671776 +vn -0.069586545229 0.022697513923 0.997317671776 +vn -0.499279826880 -0.238045200706 0.833099126816 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.342832326889 -0.903053998947 0.258765399456 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.662377238274 -0.626874268055 0.410225600004 +vn -0.342832326889 -0.903053998947 0.258765399456 +vn -0.654632925987 -0.115691319108 -0.747041642666 +vn -0.644643008709 -0.127199381590 -0.753827393055 +vn -0.512087404728 -0.264961868525 -0.817044496536 +vn -0.512087404728 -0.264961868525 -0.817044496536 +vn -0.522163152695 -0.246549248695 -0.816430747509 +vn -0.654632925987 -0.115691319108 -0.747041642666 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn -0.013651727699 0.782738447189 -0.622201085091 +vn 0.382704496384 0.445656538010 -0.809275925159 +vn 0.382704496384 0.445656538010 -0.809275925159 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.662259042263 0.684042572975 0.305775582790 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.804961979389 0.551999032497 0.217562019825 +vn 0.662259042263 0.684042572975 0.305775582790 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.393361032009 -0.415148884058 0.820316076279 +vn 0.048752576113 -0.154843926430 0.986735284328 +vn 0.048752576113 -0.154843926430 0.986735284328 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.048680081964 -0.994659066200 -0.091014303267 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn -0.342832326889 -0.903053998947 0.258765399456 +vn 0.048680081964 -0.994659066200 -0.091014303267 +vn -0.803988158703 -0.094470322132 -0.587093174458 +vn -0.801242232323 -0.099859014153 -0.589948415756 +vn -0.644643008709 -0.127199381590 -0.753827393055 +vn -0.644643008709 -0.127199381590 -0.753827393055 +vn -0.654632925987 -0.115691319108 -0.747041642666 +vn -0.803988158703 -0.094470322132 -0.587093174458 +vn 0.089037470520 0.972759723663 0.214034825563 +vn -0.451572537422 0.873713314533 -0.180851474404 +vn -0.013651727699 0.782738447189 -0.622201085091 +vn -0.013651727699 0.782738447189 -0.622201085091 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.490652501583 0.740379989147 0.459453642368 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.662259042263 0.684042572975 0.305775582790 +vn 0.490652501583 0.740379989147 0.459453642368 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.712795853615 -0.526864945889 0.462963700294 +vn 0.393361032009 -0.415148884058 0.820316076279 +vn 0.393361032009 -0.415148884058 0.820316076279 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.251401871443 -0.758408725262 -0.601342916489 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.048680081964 -0.994659066200 -0.091014303267 +vn 0.251401871443 -0.758408725262 -0.601342916489 +vn -0.893262147903 -0.230714723468 -0.385815322399 +vn -0.885544598103 -0.229386016726 -0.403971284628 +vn -0.801242232323 -0.099859014153 -0.589948415756 +vn -0.801242232323 -0.099859014153 -0.589948415756 +vn -0.803988158703 -0.094470322132 -0.587093174458 +vn -0.893262147903 -0.230714723468 -0.385815322399 +vn -0.079347580671 0.714547991753 0.695071995258 +vn -0.715602040291 0.563986122608 0.412108510733 +vn -0.451572537422 0.873713314533 -0.180851474404 +vn -0.451572537422 0.873713314533 -0.180851474404 +vn 0.089037470520 0.972759723663 0.214034825563 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.405009925365 0.626119792461 0.666288971901 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.490652501583 0.740379989147 0.459453642368 +vn 0.405009925365 0.626119792461 0.666288971901 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.959425985813 -0.281454920769 -0.016879195347 +vn 0.712795853615 -0.526864945889 0.462963700294 +vn 0.712795853615 -0.526864945889 0.462963700294 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.135830551386 -0.277985215187 -0.950933396816 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.251401871443 -0.758408725262 -0.601342916489 +vn 0.135830551386 -0.277985215187 -0.950933396816 +vn -0.846260547638 -0.440019220114 -0.300376683474 +vn -0.846942424774 -0.425363630056 -0.318989604712 +vn -0.885544598103 -0.229386016726 -0.403971284628 +vn -0.885544598103 -0.229386016726 -0.403971284628 +vn -0.893262147903 -0.230714723468 -0.385815322399 +vn -0.846260547638 -0.440019220114 -0.300376683474 +vn 0.038355976343 0.223484531045 0.973952531815 +vn -0.579691588879 -0.009793659672 0.814777135849 +vn -0.715602040291 0.563986122608 0.412108510733 +vn -0.715602040291 0.563986122608 0.412108510733 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.449782669544 0.419279068708 0.788606762886 +vn 0.038355976343 0.223484531045 0.973952531815 +vn -0.079347580671 0.714547991753 0.695071995258 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.405009925365 0.626119792461 0.666288971901 +vn 0.449782669544 0.419279068708 0.788606762886 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.915183722973 0.209073305130 -0.344568014145 +vn 0.959425985813 -0.281454920769 -0.016879195347 +vn 0.959425985813 -0.281454920769 -0.016879195347 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn -0.197052255273 0.120570488274 -0.972950756550 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.135830551386 -0.277985215187 -0.950933396816 +vn -0.197052255273 0.120570488274 -0.972950756550 +vn -0.748504459858 -0.580423593521 -0.320701569319 +vn -0.756549417973 -0.568829655647 -0.322592258453 +vn -0.846942424774 -0.425363630056 -0.318989604712 +vn -0.846942424774 -0.425363630056 -0.318989604712 +vn -0.846260547638 -0.440019220114 -0.300376683474 +vn -0.748504459858 -0.580423593521 -0.320701569319 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn -0.239331066608 -0.482139617205 0.842770457268 +vn -0.579691588879 -0.009793659672 0.814777135849 +vn -0.579691588879 -0.009793659672 0.814777135849 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.573455870152 0.261886984110 0.776249706745 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.449782669544 0.419279068708 0.788606762886 +vn 0.573455870152 0.261886984110 0.776249706745 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn 0.657979726791 0.678265154362 -0.327137589455 +vn 0.915183722973 0.209073305130 -0.344568014145 +vn 0.915183722973 0.209073305130 -0.344568014145 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn -0.438953995705 0.307949036360 -0.844089329243 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn -0.197052255273 0.120570488274 -0.972950756550 +vn -0.438953995705 0.307949036360 -0.844089329243 +vn -0.577075004578 -0.720137119293 -0.385210335255 +vn -0.631202220917 -0.677794516087 -0.377065479755 +vn -0.756549417973 -0.568829655647 -0.322592258453 +vn -0.756549417973 -0.568829655647 -0.322592258453 +vn -0.748504459858 -0.580423593521 -0.320701569319 +vn -0.577075004578 -0.720137119293 -0.385210335255 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.107150927186 -0.772752523422 0.625597476959 +vn -0.239331066608 -0.482139617205 0.842770457268 +vn -0.239331066608 -0.482139617205 0.842770457268 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.675563931465 0.163798823953 0.718876481056 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.573455870152 0.261886984110 0.776249706745 +vn 0.675563931465 0.163798823953 0.718876481056 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn 0.393360197544 0.904708862305 -0.163614228368 +vn 0.657979726791 0.678265154362 -0.327137589455 +vn 0.657979726791 0.678265154362 -0.327137589455 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.514398455620 0.378968864679 -0.769270300865 +vn -0.137769415975 0.828296601772 -0.543087780476 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.438953995705 0.307949036360 -0.844089329243 +vn -0.514398455620 0.378968864679 -0.769270300865 +vn -0.556825041771 -0.704007327557 -0.440816938877 +vn -0.600282192230 -0.662484288216 -0.448080182076 +vn -0.631202220917 -0.677794516087 -0.377065479755 +vn -0.631202220917 -0.677794516087 -0.377065479755 +vn -0.577075004578 -0.720137119293 -0.385210335255 +vn -0.556825041771 -0.704007327557 -0.440816938877 +vn 0.684020638466 -0.337137818336 0.646880090237 +vn 0.223079264164 -0.842810750008 0.489801704884 +vn 0.107150927186 -0.772752523422 0.625597476959 +vn 0.107150927186 -0.772752523422 0.625597476959 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.684020638466 -0.337137818336 0.646880090237 +vn 0.769818246365 0.161918729544 0.617383360863 +vn 0.684020638466 -0.337137818336 0.646880090237 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.675563931465 0.163798823953 0.718876481056 +vn 0.769818246365 0.161918729544 0.617383360863 +vn -0.137769415975 0.828296601772 -0.543087780476 +vn 0.298304438591 0.947766005993 -0.112933620811 +vn 0.393360197544 0.904708862305 -0.163614228368 +vn 0.393360197544 0.904708862305 -0.163614228368 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.137769415975 0.828296601772 -0.543087780476 +vn -0.218723073602 0.307124495506 0.926193714142 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.676530897617 0.479380965233 0.559016883373 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.682748973370 0.479876726866 0.550973832607 +vn -0.231893524528 0.286410689354 0.929620504379 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.681994259357 0.479156374931 0.552533268929 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.673861861229 0.474872797728 0.566044211388 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.206624403596 0.240915045142 0.948296546936 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.673861861229 0.474872797728 0.566044211388 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.682193696499 0.466817051172 0.562755405903 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.206473186612 0.250022917986 0.945968985558 +vn -0.206473186612 0.250022917986 0.945968985558 +vn 0.672250747681 0.474375575781 0.568372070789 +vn 0.682193696499 0.466817051172 0.562755405903 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.892609059811 -0.207406908274 0.400289177895 +vn -0.892609059811 -0.207406908274 0.400289177895 +vn -0.206473186612 0.250022917986 0.945968985558 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.697274863720 -0.451277852058 -0.556916594505 +vn -0.697274863720 -0.451277852058 -0.556916594505 +vn -0.892609059811 -0.207406908274 0.400289177895 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.194074183702 -0.230058833957 -0.953628957272 +vn 0.194074183702 -0.230058833957 -0.953628957272 +vn -0.697274863720 -0.451277852058 -0.556916594505 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.889703333378 0.238144084811 -0.389506608248 +vn 0.889703333378 0.238144084811 -0.389506608248 +vn 0.194074183702 -0.230058833957 -0.953628957272 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.672250747681 0.474375575781 0.568372070789 +vn 0.672250747681 0.474375575781 0.568372070789 +vn 0.889703333378 0.238144084811 -0.389506608248 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.665205776691 0.510107040405 0.545244932175 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.226969450712 0.276726186275 0.933759868145 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.665205776691 0.510107040405 0.545244932175 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.670803904533 0.475809752941 0.568882465363 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.272610336542 0.367797374725 0.889049291611 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.670803904533 0.475809752941 0.568882465363 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.700519919395 0.417314112186 0.578896164894 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.700519919395 0.417314112186 0.578896164894 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.229584172368 0.852379977703 0.469829171896 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.985347628593 -0.062460951507 0.158709406853 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.985347628593 -0.062460951507 0.158709406853 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn -0.723464310169 -0.577978670597 -0.377544850111 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.616893053055 0.346695452929 0.706572890282 +vn 0.616893053055 0.346695452929 0.706572890282 +vn 0.985347628593 -0.062460951507 0.158709406853 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.603666186333 0.348124086857 0.717214584351 +vn 0.616893053055 0.346695452929 0.706572890282 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.603666186333 0.348124086857 0.717214584351 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.581736147404 0.413781523705 0.700262784958 +vn 0.582295238972 0.388309806585 0.714246273041 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.581736147404 0.413781523705 0.700262784958 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.573984384537 0.438848376274 0.691342175007 +vn 0.573984384537 0.438848376274 0.691342175007 +vn 0.581736147404 0.413781523705 0.700262784958 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.566616058350 0.477363884449 0.671617388725 +vn 0.573984384537 0.438848376274 0.691342175007 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.566616058350 0.477363884449 0.671617388725 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.554501175880 0.500465869904 0.664877712727 +vn 0.566616058350 0.477363884449 0.671617388725 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.554501175880 0.500465869904 0.664877712727 +vn 0.541685938835 0.558042049408 0.628621816635 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.660991668701 0.493317723274 0.565444648266 +vn 0.541685938835 0.558042049408 0.628621816635 +vn 0.491780072451 0.556345999241 0.669799625874 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.370886951685 0.612930238247 0.697681427002 +vn 0.491780072451 0.556345999241 0.669799625874 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.383700132370 0.539854407310 0.749220550060 +vn -0.067740865052 0.924975275993 0.373941093683 +vn 0.004882045556 0.808167695999 0.588932156563 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn -0.067740865052 0.924975275993 0.373941093683 +vn 0.383700132370 0.539854407310 0.749220550060 +vn -0.062585294247 0.512094378471 0.856646001339 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.227120384574 0.774927020073 -0.589834272861 +vn 0.229398831725 0.792460381985 -0.565139591694 +vn 0.225670069456 0.764190435410 -0.604223489761 +vn 0.225670069456 0.764190435410 -0.604223489761 +vn 0.221627816558 0.735603809357 -0.640131354332 +vn 0.227120384574 0.774927020073 -0.589834272861 +vn -0.416140437126 0.849503874779 -0.324299782515 +vn 0.199336946011 0.966365575790 -0.162488013506 +vn -0.063228040934 0.967862427235 -0.243401989341 +vn -0.063228040934 0.967862427235 -0.243401989341 +vn -0.526178479195 0.778710901737 -0.341680556536 +vn -0.416140437126 0.849503874779 -0.324299782515 +vn -0.037351265550 -0.659526169300 0.750753045082 +vn -0.005032873247 -0.546992003918 0.837122738361 +vn -0.018200494349 -0.594198882580 0.804112195969 +vn -0.018200494349 -0.594198882580 0.804112195969 +vn -0.058633551002 -0.727339625359 0.683768332005 +vn -0.037351265550 -0.659526169300 0.750753045082 +vn -0.597158789635 -0.182681038976 0.781043529510 +vn -0.709266424179 0.149740710855 0.688853323460 +vn -0.714168488979 0.133881628513 0.687050998211 +vn -0.714168488979 0.133881628513 0.687050998211 +vn -0.601092875004 -0.198408842087 0.774158477783 +vn -0.597158789635 -0.182681038976 0.781043529510 +vn -0.310718089342 0.886000812054 -0.344175636768 +vn -0.286670923233 0.777926385403 -0.559151470661 +vn -0.306549847126 0.864508807659 -0.398311138153 +vn -0.306549847126 0.864508807659 -0.398311138153 +vn -0.316740483046 0.940792977810 -0.120764441788 +vn -0.310718089342 0.886000812054 -0.344175636768 +vn -0.758818030357 0.390478551388 0.521269321442 +vn -0.766251981258 0.386263102293 0.513477087021 +vn -0.688824176788 0.425401031971 0.586988270283 +vn -0.688824176788 0.425401031971 0.586988270283 +vn -0.679944336414 0.429292380810 0.594460844994 +vn -0.758818030357 0.390478551388 0.521269321442 +vn -0.714168488979 0.133881628513 0.687050998211 +vn -0.709266424179 0.149740710855 0.688853323460 +vn -0.755035281181 0.451850354671 0.475134670734 +vn -0.755035281181 0.451850354671 0.475134670734 +vn -0.755384206772 0.451619952917 0.474799036980 +vn -0.714168488979 0.133881628513 0.687050998211 +vn 0.004882045556 0.808167695999 0.588932156563 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.696129977703 0.598392426968 0.396647810936 +vn -0.062585294247 0.512094378471 0.856646001339 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.004882045556 0.808167695999 0.588932156563 +vn -0.062585294247 0.512094378471 0.856646001339 +vn 0.004882045556 0.808167695999 0.588932156563 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.062585294247 0.512094378471 0.856646001339 +vn -0.067740865052 0.924975275993 0.373941093683 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn 0.004882045556 0.808167695999 0.588932156563 +vn -0.067740865052 0.924975275993 0.373941093683 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.067740865052 0.924975275993 0.373941093683 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.207069844007 -0.739300668240 0.640746891499 +vn -0.082042597234 -0.496342778206 0.864241182804 +vn -0.082584783435 -0.501806735992 0.861028313637 +vn -0.082584783435 -0.501806735992 0.861028313637 +vn -0.218742683530 -0.747778773308 0.626880049706 +vn -0.207069844007 -0.739300668240 0.640746891499 +vn -0.082042597234 -0.496342778206 0.864241182804 +vn -0.336433708668 -0.580547392368 0.741469502449 +vn -0.329182595015 -0.575041651726 0.748976588249 +vn -0.329182595015 -0.575041651726 0.748976588249 +vn -0.082584783435 -0.501806735992 0.861028313637 +vn -0.082042597234 -0.496342778206 0.864241182804 +vn -0.723464310169 -0.577978670597 -0.377544850111 +vn -0.792546272278 -0.441156685352 -0.421012073755 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.723464310169 -0.577978670597 -0.377544850111 +vn -0.290420413017 -0.288244158030 0.912453472614 +vn -0.292118996382 -0.289201915264 0.911607801914 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.331636220217 -0.201299607754 0.921680986881 +vn -0.290420413017 -0.288244158030 0.912453472614 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.530348896980 -0.108248136938 0.840840280056 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.331636220217 -0.201299607754 0.921680986881 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.711355686188 0.047995567322 0.701191484928 +vn -0.715247035027 0.057760063559 0.696480751038 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.530348896980 -0.108248136938 0.840840280056 +vn -0.711355686188 0.047995567322 0.701191484928 +vn -0.678254187107 0.233527660370 0.696732461452 +vn -0.676289498806 0.234662115574 0.698259413242 +vn -0.715247035027 0.057760063559 0.696480751038 +vn -0.715247035027 0.057760063559 0.696480751038 +vn -0.711355686188 0.047995567322 0.701191484928 +vn -0.678254187107 0.233527660370 0.696732461452 +vn -0.807819128036 -0.426007598639 -0.407364487648 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.771373629570 -0.445649206638 -0.454290151596 +vn -0.807819128036 -0.426007598639 -0.407364487648 +vn -0.807143092155 -0.382068574429 -0.450048476458 +vn -0.822031438351 -0.366936504841 -0.435455977917 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.807143092155 -0.382068574429 -0.450048476458 +vn -0.813188791275 -0.351887822151 -0.463571965694 +vn -0.833994865417 -0.328578948975 -0.443270176649 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.813188791275 -0.351887822151 -0.463571965694 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.689756512642 -0.386467009783 -0.612273812294 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.689756512642 -0.386467009783 -0.612273812294 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.763828694820 -0.489515036345 -0.420643240213 +vn -0.771373629570 -0.445649206638 -0.454290151596 +vn -0.771373629570 -0.445649206638 -0.454290151596 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.730110049248 -0.523954749107 -0.438646525145 +vn -0.763828694820 -0.489515036345 -0.420643240213 +vn -0.763828694820 -0.489515036345 -0.420643240213 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.730110049248 -0.523954749107 -0.438646525145 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.667977154255 -0.468124926090 -0.578502893448 +vn -0.730110049248 -0.523954749107 -0.438646525145 +vn 0.631962656975 -0.748235523701 0.201907843351 +vn 0.605304896832 -0.786918938160 0.119852282107 +vn 0.620291948318 -0.767025291920 0.164042875171 +vn 0.620291948318 -0.767025291920 0.164042875171 +vn 0.644578337669 -0.723311424255 0.247667729855 +vn 0.631962656975 -0.748235523701 0.201907843351 +vn -0.663433015347 0.574735462666 0.479098916054 +vn -0.576117694378 0.644429028034 0.502791821957 +vn -0.603480875492 0.624114632607 0.496277928352 +vn -0.603480875492 0.624114632607 0.496277928352 +vn -0.706421017647 0.534547507763 0.463927060366 +vn -0.663433015347 0.574735462666 0.479098916054 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.792546272278 -0.441156685352 -0.421012073755 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.041993357241 0.797598063946 0.601725757122 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn 0.229584172368 0.852379977703 0.469829171896 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.426158398390 0.826792299747 0.367155998945 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn 0.378463476896 0.783811092377 0.492346972227 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn 0.388690173626 0.732356131077 0.559083580971 +vn -0.334084272385 0.786465167999 0.519480764866 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.411167144775 0.906487345695 0.096032403409 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.388690173626 0.732356131077 0.559083580971 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.334084272385 0.786465167999 0.519480764866 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.334084272385 0.786465167999 0.519480764866 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn -0.740822911263 0.609460711479 0.282381057739 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn -0.334084272385 0.786465167999 0.519480764866 +vn 0.388690173626 0.732356131077 0.559083580971 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.682607948780 0.602593600750 -0.413433611393 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.812969028950 0.469094514847 0.345009744167 +vn 0.817769885063 0.481556564569 0.315207391977 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.812969028950 0.469094514847 0.345009744167 +vn 0.806812405586 0.465968638659 0.363217532635 +vn 0.812969028950 0.469094514847 0.345009744167 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.806812405586 0.465968638659 0.363217532635 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.820294380188 0.412772327662 0.395899116993 +vn 0.806812405586 0.465968638659 0.363217532635 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.820294380188 0.412772327662 0.395899116993 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.682607948780 0.602593600750 -0.413433611393 +vn -0.152807876468 0.003922926262 -0.988248109818 +vn -0.152807876468 0.003922926262 -0.988248109818 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.152807876468 0.003922926262 -0.988248109818 +vn 0.571283638477 0.195726588368 -0.797073483467 +vn 0.581513226032 0.206123635173 -0.786991357803 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn 0.559709072113 0.020506501198 -0.828435420990 +vn 0.571283638477 0.195726588368 -0.797073483467 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.595149517059 -0.417273491621 -0.686789572239 +vn -0.577492237091 -0.461448967457 -0.673474252224 +vn -0.577492237091 -0.461448967457 -0.673474252224 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.509972751141 0.793636679649 -0.331765860319 +vn -0.537571310997 0.772639870644 -0.337705105543 +vn -0.534661054611 0.774923622608 -0.337091892958 +vn -0.534661054611 0.774923622608 -0.337091892958 +vn -0.495952785015 0.803755402565 -0.328645855188 +vn -0.509972751141 0.793636679649 -0.331765860319 +vn 0.628486037254 -0.765047073364 0.140386179090 +vn 0.629080116749 -0.764525115490 0.140568733215 +vn 0.627358913422 -0.766035020351 0.140039905906 +vn 0.627358913422 -0.766035020351 0.140039905906 +vn 0.627170860767 -0.766199529171 0.139982149005 +vn 0.628486037254 -0.765047073364 0.140386179090 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn 0.601446866989 -0.122731477022 -0.789429366589 +vn 0.618541955948 -0.147163629532 -0.771847546101 +vn 0.618541955948 -0.147163629532 -0.771847546101 +vn 0.559709072113 0.020506501198 -0.828435420990 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.577492237091 -0.461448967457 -0.673474252224 +vn -0.526679396629 -0.509270489216 -0.680626451969 +vn 0.601446866989 -0.122731477022 -0.789429366589 +vn 0.734982609749 -0.236774384975 -0.635404169559 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn 0.618541955948 -0.147163629532 -0.771847546101 +vn 0.601446866989 -0.122731477022 -0.789429366589 +vn -0.526679396629 -0.509270489216 -0.680626451969 +vn -0.506287515163 -0.536978483200 -0.674779236317 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.526679396629 -0.509270489216 -0.680626451969 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn 0.734982609749 -0.236774384975 -0.635404169559 +vn 0.604554712772 -0.406347364187 -0.685124337673 +vn 0.604554712772 -0.406347364187 -0.685124337673 +vn 0.599086761475 -0.409433424473 -0.688083827496 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn -0.506287515163 -0.536978483200 -0.674779236317 +vn -0.700512945652 -0.458336979151 -0.546999812126 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.506287515163 -0.536978483200 -0.674779236317 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.572836101055 0.156684830785 0.804554939270 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn 0.355971693993 -0.698756396770 0.620502710342 +vn 0.354127824306 -0.701984345913 0.617908954620 +vn 0.354813098907 -0.700787842274 0.618873238564 +vn 0.354813098907 -0.700787842274 0.618873238564 +vn 0.356339871883 -0.698108613491 0.621020376682 +vn 0.355971693993 -0.698756396770 0.620502710342 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.830982983112 0.368793278933 0.416483879089 +vn 0.820294380188 0.412772327662 0.395899116993 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.830982983112 0.368793278933 0.416483879089 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.689756512642 -0.386467009783 -0.612273812294 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.225397258997 0.847410619259 0.480719625950 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.022359715775 0.783848524094 0.620549440384 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.176284044981 0.601203441620 0.779408991337 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.221020415425 0.617830932140 0.754609107971 +vn 0.016968332231 0.508910477161 0.860652208328 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.016968332231 0.508910477161 0.860652208328 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.107152707875 0.334624469280 0.936239659786 +vn 0.016968332231 0.508910477161 0.860652208328 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.072499595582 0.978071272373 0.195244491100 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.022359715775 0.783848524094 0.620549440384 +vn 0.225397258997 0.847410619259 0.480719625950 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.072499595582 0.978071272373 0.195244491100 +vn 0.072499595582 0.978071272373 0.195244491100 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.072499595582 0.978071272373 0.195244491100 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.235830068588 0.898830175400 0.369443446398 +vn 0.072499595582 0.978071272373 0.195244491100 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn 0.072499595582 0.978071272373 0.195244491100 +vn 0.395072251558 0.917763888836 0.040340516716 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.184946745634 0.935617744923 -0.300689518452 +vn -0.510389328003 0.851969182491 -0.116838611662 +vn -0.510389328003 0.851969182491 -0.116838611662 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.510389328003 0.851969182491 -0.116838611662 +vn -0.771237671375 0.633772552013 0.059369832277 +vn -0.771237671375 0.633772552013 0.059369832277 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.771237671375 0.633772552013 0.059369832277 +vn -0.927791595459 0.314238816500 0.201138496399 +vn -0.927791595459 0.314238816500 0.201138496399 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.927791595459 0.314238816500 0.201138496399 +vn -0.956224083900 -0.057976730168 0.286834865808 +vn -0.956224083900 -0.057976730168 0.286834865808 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.956224083900 -0.057976730168 0.286834865808 +vn -0.852196872234 -0.426232755184 0.303456902504 +vn -0.852196872234 -0.426232755184 0.303456902504 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.852196872234 -0.426232755184 0.303456902504 +vn -0.631541669369 -0.734460175037 0.248441949487 +vn -0.631541669369 -0.734460175037 0.248441949487 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.631541669369 -0.734460175037 0.248441949487 +vn -0.327866882086 -0.935713112354 0.130170091987 +vn -0.327866882086 -0.935713112354 0.130170091987 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.327866882086 -0.935713112354 0.130170091987 +vn 0.012606930919 -0.999365031719 -0.033325370401 +vn 0.012606930919 -0.999365031719 -0.033325370401 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.012606930919 -0.999365031719 -0.033325370401 +vn 0.338061541319 -0.915723919868 -0.217173010111 +vn 0.338061541319 -0.915723919868 -0.217173010111 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.338061541319 -0.915723919868 -0.217173010111 +vn 0.598875761032 -0.697550654411 -0.393409401178 +vn 0.598875761032 -0.697550654411 -0.393409401178 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.598875761032 -0.697550654411 -0.393409401178 +vn 0.755454063416 -0.378001183271 -0.535167455673 +vn 0.755454063416 -0.378001183271 -0.535167455673 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.755454063416 -0.378001183271 -0.535167455673 +vn 0.783883988857 -0.005762599874 -0.620880603790 +vn 0.783883988857 -0.005762599874 -0.620880603790 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.783883988857 -0.005762599874 -0.620880603790 +vn 0.679845094681 0.362510502338 -0.637492597103 +vn 0.679845094681 0.362510502338 -0.637492597103 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.679845094681 0.362510502338 -0.637492597103 +vn 0.459209173918 0.670695543289 -0.582489907742 +vn 0.459209173918 0.670695543289 -0.582489907742 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.459209173918 0.670695543289 -0.582489907742 +vn 0.155552893877 0.871945738792 -0.464234739542 +vn 0.155552893877 0.871945738792 -0.464234739542 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.155552893877 0.871945738792 -0.464234739542 +vn -0.184946745634 0.935617744923 -0.300689518452 +vn -0.184946745634 0.935617744923 -0.300689518452 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.169255286455 0.259556770325 0.950780153275 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.197535604239 0.024697216228 0.979984581470 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.016968332231 0.508910477161 0.860652208328 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.169255286455 0.259556770325 0.950780153275 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.016968332231 0.508910477161 0.860652208328 +vn 0.016968332231 0.508910477161 0.860652208328 +vn -0.107152707875 0.334624469280 0.936239659786 +vn 0.169255286455 0.259556770325 0.950780153275 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.169255286455 0.259556770325 0.950780153275 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.115241959691 0.127359017730 0.985139071941 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.197535604239 0.024697216228 0.979984581470 +vn 0.194399654865 0.158964470029 0.967956125736 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn 0.197535604239 0.024697216228 0.979984581470 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.197535604239 0.024697216228 0.979984581470 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.427116841078 0.346271544695 0.835264742374 +vn -0.035729635507 0.607942640781 0.793176591396 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.226580724120 0.800231337547 0.555239558220 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.035729635507 0.607942640781 0.793176591396 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.063553564250 0.828384757042 0.556542575359 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.274038642645 0.932397603989 0.235664024949 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.063553564250 0.828384757042 0.556542575359 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.087142288685 0.967561662197 0.237130120397 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.087142288685 0.967561662197 0.237130120397 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.279109090567 0.903948545456 -0.323998630047 +vn 0.279109090567 0.903948545456 -0.323998630047 +vn -0.102105967700 0.941065251827 -0.322444617748 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.617344737053 0.725185930729 -0.304944008589 +vn 0.617344737053 0.725185930729 -0.304944008589 +vn 0.279109090567 0.903948545456 -0.323998630047 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.861044466496 0.432026088238 -0.268245995045 +vn 0.861044466496 0.432026088238 -0.268245995045 +vn 0.617344737053 0.725185930729 -0.304944008589 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.973190963268 0.069042496383 -0.219391137362 +vn 0.973190963268 0.069042496383 -0.219391137362 +vn 0.861044466496 0.432026088238 -0.268245995045 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.936656296253 -0.308471262455 -0.165892928839 +vn 0.936656296253 -0.308471262455 -0.165892928839 +vn 0.973190963268 0.069042496383 -0.219391137362 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.757012963295 -0.643040478230 -0.115889355540 +vn 0.757012963295 -0.643040478230 -0.115889355540 +vn 0.936656296253 -0.308471262455 -0.165892928839 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.461620241404 -0.883733093739 -0.076957985759 +vn 0.461620241404 -0.883733093739 -0.076957985759 +vn 0.757012963295 -0.643040478230 -0.115889355540 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.095433920622 -0.993913292885 -0.055033963174 +vn 0.095433920622 -0.993913292885 -0.055033963174 +vn 0.461620241404 -0.883733093739 -0.076957985759 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.285777777433 -0.956801950932 -0.053489483893 +vn -0.285777777433 -0.956801950932 -0.053489483893 +vn 0.095433920622 -0.993913292885 -0.055033963174 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.624005198479 -0.778046429157 -0.072535090148 +vn -0.624005198479 -0.778046429157 -0.072535090148 +vn -0.285777777433 -0.956801950932 -0.053489483893 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.867740154266 -0.484856963158 -0.109273917973 +vn -0.867740154266 -0.484856963158 -0.109273917973 +vn -0.624005198479 -0.778046429157 -0.072535090148 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.979872226715 -0.121874794364 -0.158104330301 +vn -0.979872226715 -0.121874794364 -0.158104330301 +vn -0.867740154266 -0.484856963158 -0.109273917973 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.943332910538 0.255631208420 -0.211602717638 +vn -0.943332910538 0.255631208420 -0.211602717638 +vn -0.979872226715 -0.121874794364 -0.158104330301 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.763698756695 0.590180635452 -0.261631429195 +vn -0.763698756695 0.590180635452 -0.261631429195 +vn -0.943332910538 0.255631208420 -0.211602717638 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.468307971954 0.830874264240 -0.300558716059 +vn -0.468307971954 0.830874264240 -0.300558716059 +vn -0.763698756695 0.590180635452 -0.261631429195 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.102105967700 0.941065251827 -0.322444617748 +vn -0.102105967700 0.941065251827 -0.322444617748 +vn -0.468307971954 0.830874264240 -0.300558716059 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.241403773427 0.103066213429 0.964936017990 +vn 0.004517787136 0.137057393789 0.990552783012 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.241403773427 0.103066213429 0.964936017990 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.067393772304 0.322359681129 0.944215178490 +vn -0.002960407641 0.317960262299 0.948099434376 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.017514187843 0.138613402843 0.990191698074 +vn -0.002960407641 0.317960262299 0.948099434376 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.074658878148 0.311024487019 0.947464942932 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.016861176118 0.138552471995 0.990211546421 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.163651511073 0.288096219301 0.943514049053 +vn 0.004517787136 0.137057393789 0.990552783012 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.017514187843 0.138613402843 0.990191698074 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.016861176118 0.138552471995 0.990211546421 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.004517787136 0.137057393789 0.990552783012 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn 0.004517787136 0.137057393789 0.990552783012 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn 0.004517787136 0.137057393789 0.990552783012 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.155109524727 0.599816203117 0.784959554672 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.002960407641 0.317960262299 0.948099434376 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.002960407641 0.317960262299 0.948099434376 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.002960407641 0.317960262299 0.948099434376 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.397452175617 0.135070383549 -0.907627522945 +vn -0.517724156380 0.205077111721 -0.830605268478 +vn -0.517724156380 0.205077111721 -0.830605268478 +vn -0.437227338552 0.155448332429 -0.885814905167 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.229980155826 0.074654586613 -0.970327675343 +vn -0.397452175617 0.135070383549 -0.907627522945 +vn -0.397452175617 0.135070383549 -0.907627522945 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.590301692486 0.097231328487 -0.801305174828 +vn 0.826513767242 0.040492236614 -0.561458230019 +vn 0.826513767242 0.040492236614 -0.561458230019 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.191130816936 0.078426040709 -0.978426456451 +vn 0.372208535671 0.083363167942 -0.924397826195 +vn 0.372208535671 0.083363167942 -0.924397826195 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.206340491772 0.165451377630 -0.964390695095 +vn 0.006594384555 0.126419976354 -0.991954863071 +vn 0.006594384555 0.126419976354 -0.991954863071 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.437227338552 0.155448332429 -0.885814905167 +vn -0.437227338552 0.155448332429 -0.885814905167 +vn -0.206340491772 0.165451377630 -0.964390695095 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn 0.006594384555 0.126419976354 -0.991954863071 +vn 0.191130816936 0.078426040709 -0.978426456451 +vn 0.191130816936 0.078426040709 -0.978426456451 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.372208535671 0.083363167942 -0.924397826195 +vn 0.590301692486 0.097231328487 -0.801305174828 +vn 0.590301692486 0.097231328487 -0.801305174828 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.826513767242 0.040492236614 -0.561458230019 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.261003404856 0.108527362347 -0.959217905998 +vn -0.229980155826 0.074654586613 -0.970327675343 +vn -0.229980155826 0.074654586613 -0.970327675343 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.509320318699 -0.404863327742 -0.759393453598 +vn -0.261003404856 0.108527362347 -0.959217905998 +vn -0.261003404856 0.108527362347 -0.959217905998 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.439777612686 -0.138827741146 0.887311935425 +vn 0.505375087261 -0.195974618196 0.840351104736 +vn 0.505375087261 -0.195974618196 0.840351104736 +vn 0.383719682693 -0.125125527382 0.914933204651 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.383719682693 -0.125125527382 0.914933204651 +vn 0.383719682693 -0.125125527382 0.914933204651 +vn 0.248948097229 -0.072537310421 0.965796649456 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.819650113583 -0.032982375473 0.571914196014 +vn -0.819650113583 -0.032982375473 0.571914196014 +vn -0.592707335949 -0.091434136033 0.800211071968 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.371242731810 -0.081995286047 0.924908459187 +vn -0.371242731810 -0.081995286047 0.924908459187 +vn -0.186582252383 -0.074930444360 0.979577720165 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn -0.004214687273 -0.117233298719 0.993095457554 +vn -0.004214687273 -0.117233298719 0.993095457554 +vn 0.209405109286 -0.154618844390 0.965527057648 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.209405109286 -0.154618844390 0.965527057648 +vn 0.439777612686 -0.138827741146 0.887311935425 +vn 0.439777612686 -0.138827741146 0.887311935425 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.179345592856 0.032156031579 0.983260452747 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.179345592856 0.032156031579 0.983260452747 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.186582252383 -0.074930444360 0.979577720165 +vn -0.186582252383 -0.074930444360 0.979577720165 +vn -0.004214687273 -0.117233298719 0.993095457554 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.179345592856 0.032156031579 0.983260452747 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.592707335949 -0.091434136033 0.800211071968 +vn -0.592707335949 -0.091434136033 0.800211071968 +vn -0.371242731810 -0.081995286047 0.924908459187 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.819650113583 -0.032982375473 0.571914196014 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.248948097229 -0.072537310421 0.965796649456 +vn 0.248948097229 -0.072537310421 0.965796649456 +vn 0.266313046217 -0.114633738995 0.957045674324 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.266313046217 -0.114633738995 0.957045674324 +vn 0.266313046217 -0.114633738995 0.957045674324 +vn -0.002355504315 -0.820036292076 0.572306632996 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.030801737681 0.058983106166 0.997783660889 +vn 0.179345592856 0.032156031579 0.983260452747 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.179345592856 0.032156031579 0.983260452747 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.909739613533 0.046079874039 0.412614196539 +vn -0.909739613533 0.046079874039 0.412614196539 +vn -0.956761240959 0.176445245743 0.231246590614 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.956761240959 0.176445245743 0.231246590614 +vn -0.972946465015 0.230288386345 0.018504710868 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.500203728676 0.010609781370 0.865842759609 +vn -0.500203728676 0.010609781370 0.865842759609 +vn -0.909739613533 0.046079874039 0.412614196539 +vn -0.990912795067 0.127940833569 0.041508488357 +vn 0.078747101128 0.966759562492 0.243258908391 +vn 0.173439845443 0.973078310490 0.151780202985 +vn 0.170091286302 0.973490953445 0.152919292450 +vn 0.170091286302 0.973490953445 0.152919292450 +vn 0.063926614821 0.963856279850 0.258639603853 +vn 0.078747101128 0.966759562492 0.243258908391 +vn 0.171049833298 0.970419943333 0.170373469591 +vn 0.083577327430 0.994467854500 0.063627921045 +vn 0.080522112548 0.994727730751 0.063505046070 +vn 0.080522112548 0.994727730751 0.063505046070 +vn 0.173171848059 0.969543695450 0.173195227981 +vn 0.171049833298 0.970419943333 0.170373469591 +vn -0.020135141909 0.994862496853 0.099212974310 +vn -0.086038894951 0.984414279461 0.153381422162 +vn -0.091391056776 0.983691334724 0.154916256666 +vn -0.091391056776 0.983691334724 0.154916256666 +vn -0.023173412308 0.995078146458 0.096345901489 +vn -0.020135141909 0.994862496853 0.099212974310 +vn -0.086038894951 0.984414279461 0.153381422162 +vn -0.191570550203 0.977551102638 0.087718985975 +vn -0.194942057133 0.976504385471 0.091851882637 +vn -0.194942057133 0.976504385471 0.091851882637 +vn -0.091391056776 0.983691334724 0.154916256666 +vn -0.086038894951 0.984414279461 0.153381422162 +vn 0.083577327430 0.994467854500 0.063627921045 +vn -0.020135141909 0.994862496853 0.099212974310 +vn -0.023173412308 0.995078146458 0.096345901489 +vn -0.023173412308 0.995078146458 0.096345901489 +vn 0.080522112548 0.994727730751 0.063505046070 +vn 0.083577327430 0.994467854500 0.063627921045 +vn 0.173439845443 0.973078310490 0.151780202985 +vn 0.171049833298 0.970419943333 0.170373469591 +vn 0.173171848059 0.969543695450 0.173195227981 +vn 0.173171848059 0.969543695450 0.173195227981 +vn 0.170091286302 0.973490953445 0.152919292450 +vn 0.173439845443 0.973078310490 0.151780202985 +vn 0.063926614821 0.963856279850 0.258639603853 +vn -0.375237524509 0.793154478073 0.479690253735 +vn -0.350450277328 0.809412717819 0.471206605434 +vn -0.350450277328 0.809412717819 0.471206605434 +vn 0.078747101128 0.966759562492 0.243258908391 +vn 0.063926614821 0.963856279850 0.258639603853 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.577268898487 0.306803852320 0.756724536419 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.185570269823 0.171825677156 0.967491388321 +vn 0.789331555367 0.258876562119 0.556721329689 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.866238534451 -0.039508130401 0.498066157103 +vn -0.866238534451 -0.039508130401 0.498066157103 +vn -0.500203728676 0.010609781370 0.865842759609 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.885119140148 -0.056781947613 0.461887329817 +vn -0.669060587883 -0.077813722193 0.739123106003 +vn -0.669060587883 -0.077813722193 0.739123106003 +vn -0.866238534451 -0.039508130401 0.498066157103 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn -0.002355504315 -0.820036292076 0.572306632996 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.789331555367 0.258876562119 0.556721329689 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.487122595310 0.042172510177 0.872314751148 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn -0.937579154968 0.180314436555 -0.297375231981 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.972946465015 0.230288386345 0.018504710868 +vn -0.937579154968 0.180314436555 -0.297375231981 +vn -0.896948277950 0.114084340632 -0.427163422108 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.937579154968 0.180314436555 -0.297375231981 +vn -0.896948277950 0.114084340632 -0.427163422108 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn 0.577268898487 0.306803852320 0.756724536419 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn -0.880329668522 0.056018378586 -0.471043139696 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.896948277950 0.114084340632 -0.427163422108 +vn -0.880329668522 0.056018378586 -0.471043139696 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn -0.509320318699 -0.404863327742 -0.759393453598 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.995611131191 -0.009796535596 -0.093072362244 +vn -0.885119140148 -0.056781947613 0.461887329817 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.880329668522 0.056018378586 -0.471043139696 +vn -0.995611131191 -0.009796535596 -0.093072362244 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn -0.268814533949 0.206545710564 0.940785646439 +vn 0.577268898487 0.306803852320 0.756724536419 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn -0.194942057133 0.976504385471 0.091851882637 +vn -0.191570550203 0.977551102638 0.087718985975 +vn -0.181678786874 0.971370339394 0.153076708317 +vn -0.181678786874 0.971370339394 0.153076708317 +vn -0.180396959186 0.971246838570 0.155359238386 +vn -0.194942057133 0.976504385471 0.091851882637 +# 32013 vertex normals + +vt 0.377155363560 0.858360707760 0.000000000000 +vt 0.377155363560 0.848666846752 0.000000000000 +vt 0.387879788876 0.848666846752 0.000000000000 +vt 0.387879788876 0.858360707760 0.000000000000 +vt 0.377155363560 0.838978648186 0.000000000000 +vt 0.387879788876 0.838978648186 0.000000000000 +vt 0.377155363560 0.829283058643 0.000000000000 +vt 0.387879788876 0.829283058643 0.000000000000 +vt 0.377155363560 0.984480679035 0.000000000000 +vt 0.377155363560 0.974780797958 0.000000000000 +vt 0.387879788876 0.974780797958 0.000000000000 +vt 0.387879788876 0.984480679035 0.000000000000 +vt 0.377155363560 0.965079963207 0.000000000000 +vt 0.387879788876 0.965079963207 0.000000000000 +vt 0.377155363560 0.955380022526 0.000000000000 +vt 0.387879788876 0.955380022526 0.000000000000 +vt 0.377155363560 0.945681273937 0.000000000000 +vt 0.387879788876 0.945681273937 0.000000000000 +vt 0.377155363560 0.935981333256 0.000000000000 +vt 0.387879788876 0.935981333256 0.000000000000 +vt 0.377155363560 0.926279187202 0.000000000000 +vt 0.387879788876 0.926279187202 0.000000000000 +vt 0.377155363560 0.916576147079 0.000000000000 +vt 0.387879788876 0.916576147079 0.000000000000 +vt 0.377155363560 0.906873524189 0.000000000000 +vt 0.387879788876 0.906873524189 0.000000000000 +vt 0.377155363560 0.897172033787 0.000000000000 +vt 0.387879788876 0.897172033787 0.000000000000 +vt 0.377155363560 0.887470304966 0.000000000000 +vt 0.387879788876 0.887470304966 0.000000000000 +vt 0.377155363560 0.877766370773 0.000000000000 +vt 0.387879788876 0.877766370773 0.000000000000 +vt 0.377155363560 0.868061482906 0.000000000000 +vt 0.387879788876 0.868061482906 0.000000000000 +vt 0.389967858791 0.848666846752 0.000000000000 +vt 0.389967858791 0.858360707760 0.000000000000 +vt 0.389223754406 0.858360707760 0.000000000000 +vt 0.389223754406 0.848666846752 0.000000000000 +vt 0.389967858791 0.838978648186 0.000000000000 +vt 0.389223754406 0.838978648186 0.000000000000 +vt 0.389967858791 0.829283058643 0.000000000000 +vt 0.389223754406 0.829283058643 0.000000000000 +vt 0.389967858791 0.974780797958 0.000000000000 +vt 0.389967858791 0.984480679035 0.000000000000 +vt 0.389223754406 0.984480679035 0.000000000000 +vt 0.389223754406 0.974780797958 0.000000000000 +vt 0.389967858791 0.965079963207 0.000000000000 +vt 0.389223754406 0.965079963207 0.000000000000 +vt 0.389967858791 0.955380022526 0.000000000000 +vt 0.389223754406 0.955380022526 0.000000000000 +vt 0.389967858791 0.945681273937 0.000000000000 +vt 0.389223754406 0.945681273937 0.000000000000 +vt 0.389967858791 0.935981333256 0.000000000000 +vt 0.389223754406 0.935981333256 0.000000000000 +vt 0.389967858791 0.926279187202 0.000000000000 +vt 0.389223754406 0.926279187202 0.000000000000 +vt 0.389967858791 0.916576147079 0.000000000000 +vt 0.389223754406 0.916576147079 0.000000000000 +vt 0.389967858791 0.906873524189 0.000000000000 +vt 0.389223754406 0.906873524189 0.000000000000 +vt 0.389967858791 0.897172033787 0.000000000000 +vt 0.389223754406 0.897172033787 0.000000000000 +vt 0.389967858791 0.887470304966 0.000000000000 +vt 0.389223754406 0.887470304966 0.000000000000 +vt 0.389967858791 0.877766370773 0.000000000000 +vt 0.389223754406 0.877766370773 0.000000000000 +vt 0.389967858791 0.868061482906 0.000000000000 +vt 0.389223754406 0.868061482906 0.000000000000 +vt 0.391293346882 0.858360707760 0.000000000000 +vt 0.391293346882 0.848666846752 0.000000000000 +vt 0.396203100681 0.848666846752 0.000000000000 +vt 0.396203100681 0.858360707760 0.000000000000 +vt 0.391293346882 0.838978648186 0.000000000000 +vt 0.396203100681 0.838978648186 0.000000000000 +vt 0.391293346882 0.829283058643 0.000000000000 +vt 0.396203100681 0.829283058643 0.000000000000 +vt 0.391293346882 0.984480679035 0.000000000000 +vt 0.391293346882 0.974780797958 0.000000000000 +vt 0.396203100681 0.974780797958 0.000000000000 +vt 0.396203100681 0.984480679035 0.000000000000 +vt 0.391293346882 0.965079963207 0.000000000000 +vt 0.396203100681 0.965079963207 0.000000000000 +vt 0.391293346882 0.955380022526 0.000000000000 +vt 0.396203100681 0.955380022526 0.000000000000 +vt 0.391293346882 0.945681273937 0.000000000000 +vt 0.396203100681 0.945681273937 0.000000000000 +vt 0.391293346882 0.935981333256 0.000000000000 +vt 0.396203100681 0.935981333256 0.000000000000 +vt 0.391293346882 0.926279187202 0.000000000000 +vt 0.396203100681 0.926279187202 0.000000000000 +vt 0.391293346882 0.916576147079 0.000000000000 +vt 0.396203100681 0.916576147079 0.000000000000 +vt 0.391293346882 0.906873524189 0.000000000000 +vt 0.396203100681 0.906873524189 0.000000000000 +vt 0.391293346882 0.897172033787 0.000000000000 +vt 0.396203100681 0.897172033787 0.000000000000 +vt 0.391293346882 0.887470304966 0.000000000000 +vt 0.396203100681 0.887470304966 0.000000000000 +vt 0.391293346882 0.877766370773 0.000000000000 +vt 0.396203100681 0.877766370773 0.000000000000 +vt 0.391293346882 0.868061482906 0.000000000000 +vt 0.396203100681 0.868061482906 0.000000000000 +vt 0.409175425768 0.672242879868 0.000000000000 +vt 0.452760726213 0.666515350342 0.000000000000 +vt 0.431881427765 0.692003369331 0.000000000000 +vt 0.481934756041 0.680083930492 0.000000000000 +vt 0.508225858212 0.789766192436 0.000000000000 +vt 0.553140699863 0.792127192020 0.000000000000 +vt 0.543430626392 0.810674130917 0.000000000000 +vt 0.493056267500 0.761313557625 0.000000000000 +vt 0.498380273581 0.738467097282 0.000000000000 +vt 0.515042841434 0.755405724049 0.000000000000 +vt 0.550852000713 0.845992863178 0.000000000000 +vt 0.577347338200 0.824143350124 0.000000000000 +vt 0.609382450581 0.854941427708 0.000000000000 +vt 0.665927231312 0.810042083263 0.000000000000 +vt 0.669713199139 0.747112154961 0.000000000000 +vt 0.691940128803 0.688431560993 0.000000000000 +vt 0.480293363333 0.580234348774 0.000000000000 +vt 0.515759050846 0.550068080425 0.000000000000 +vt 0.567890584469 0.594532608986 0.000000000000 +vt 0.623778641224 0.602010011673 0.000000000000 +vt 0.572804629803 0.544676065445 0.000000000000 +vt 0.631756961346 0.573595166206 0.000000000000 +vt 0.610680639744 0.688212931156 0.000000000000 +vt 0.650606334209 0.643516659737 0.000000000000 +vt 0.631374895573 0.713805377483 0.000000000000 +vt 0.451538383961 0.699487090111 0.000000000000 +vt 0.488095849752 0.712747395039 0.000000000000 +vt 0.505906522274 0.654317796230 0.000000000000 +vt 0.514503896236 0.621594429016 0.000000000000 +vt 0.546522319317 0.636798501015 0.000000000000 +vt 0.620644509792 0.650109648705 0.000000000000 +vt 0.536644995213 0.674807369709 0.000000000000 +vt 0.559180438519 0.677152156830 0.000000000000 +vt 0.546803295612 0.700395822525 0.000000000000 +vt 0.580495297909 0.670894205570 0.000000000000 +vt 0.560229241848 0.708388805389 0.000000000000 +vt 0.583466589451 0.746397972107 0.000000000000 +vt 0.590534269810 0.714147150517 0.000000000000 +vt 0.632254183292 0.742581784725 0.000000000000 +vt 0.392473429441 0.735891520977 0.000000000000 +vt 0.401782691479 0.699883401394 0.000000000000 +vt 0.437636852264 0.750069797039 0.000000000000 +vt 0.443033576012 0.728961050510 0.000000000000 +vt 0.467387497425 0.731456875801 0.000000000000 +vt 0.397550672293 0.599925756454 0.000000000000 +vt 0.443568110466 0.613210141659 0.000000000000 +vt 0.366362631321 0.656876027584 0.000000000000 +vt 0.447481751442 0.559440612793 0.000000000000 +vt 0.601355612278 0.819214940071 0.000000000000 +vt 0.636718928814 0.797729492188 0.000000000000 +vt 0.619128763676 0.819936096668 0.000000000000 +vt 0.559825360775 0.776961624622 0.000000000000 +vt 0.572190821171 0.759399116039 0.000000000000 +vt 0.604671776295 0.773796379566 0.000000000000 +vt 0.554654181004 0.617363810539 0.000000000000 +vt 0.567634403706 0.651618182659 0.000000000000 +vt 0.590938866138 0.618936240673 0.000000000000 +vt 0.596868813038 0.647921144962 0.000000000000 +vt 0.651719510555 0.782778739929 0.000000000000 +vt 0.614525854588 0.755118906498 0.000000000000 +vt 0.455462366343 0.816022455692 0.000000000000 +vt 0.450997769833 0.780333817005 0.000000000000 +vt 0.483516186476 0.802494883537 0.000000000000 +vt 0.485845893621 0.853235423565 0.000000000000 +vt 0.417244762182 0.840927124023 0.000000000000 +vt 0.433641225100 0.829533994198 0.000000000000 +vt 0.477579563856 0.870459556580 0.000000000000 +vt 0.530758202076 0.857129693031 0.000000000000 +vt 0.544338524342 0.876446247101 0.000000000000 +vt 0.532405674458 0.712911307812 0.000000000000 +vt 0.526134669781 0.742851078510 0.000000000000 +vt 0.547361195087 0.739448964596 0.000000000000 +vt 0.567548215389 0.558903396130 0.000000000000 +vt 0.397433131933 0.817093312740 0.000000000000 +vt 0.514106690884 0.777620911598 0.000000000000 +vt 0.462766647339 0.752251565456 0.000000000000 +vt 0.460485816002 0.643762111664 0.000000000000 +vt 0.485318392515 0.636485338211 0.000000000000 +vt 0.480034440756 0.664412677288 0.000000000000 +vt 0.630446612835 0.777688920498 0.000000000000 +vt 0.600008070469 0.799526214600 0.000000000000 +vt 0.476415723562 0.779506325722 0.000000000000 +vt 0.473682790995 0.610604822636 0.000000000000 +vt 0.675627768040 0.625576317310 0.000000000000 +vt 0.565741121769 0.800483822823 0.000000000000 +vt 0.356244146824 0.722902357578 0.000000000000 +vt 0.588402211666 0.811188578606 0.000000000000 +vt 0.518669903278 0.699171006680 0.000000000000 +vt 0.535777628422 0.658217966557 0.000000000000 +vt 0.508222043514 0.539263308048 0.000000000000 +vt 0.648145139217 0.728081822395 0.000000000000 +vt 0.514887988567 0.819228231907 0.000000000000 +vt 0.480209141970 0.748140454292 0.000000000000 +vt 0.594826638699 0.678737699986 0.000000000000 +vt 0.609615743160 0.711115896702 0.000000000000 +vt 0.374209046364 0.788166940212 0.000000000000 +vt 0.696136057377 0.841438889503 0.000000000000 +vt 0.697102844715 0.847001552582 0.000000000000 +vt 0.687970817089 0.838945984840 0.000000000000 +vt 0.676894485950 0.837039768696 0.000000000000 +vt 0.668740808964 0.834839344025 0.000000000000 +vt 0.658680617809 0.855564236641 0.000000000000 +vt 0.651980459690 0.853254318237 0.000000000000 +vt 0.694596707821 0.852629542351 0.000000000000 +vt 0.685916483402 0.854809284210 0.000000000000 +vt 0.674534022808 0.855843186378 0.000000000000 +vt 0.665389955044 0.856125533581 0.000000000000 +vt 0.650012195110 0.834412455559 0.000000000000 +vt 0.656730353832 0.833129286766 0.000000000000 +vt 0.646296203136 0.841373562813 0.000000000000 +vt 0.688886702061 0.834426641464 0.000000000000 +vt 0.699207842350 0.838674664497 0.000000000000 +vt 0.697359144688 0.855724990368 0.000000000000 +vt 0.686487972736 0.859591126442 0.000000000000 +vt 0.702463567257 0.847452104092 0.000000000000 +vt 0.677858173847 0.832566380501 0.000000000000 +vt 0.674788177013 0.860633373260 0.000000000000 +vt 0.656709134579 0.828647792339 0.000000000000 +vt 0.663522779942 0.828503489494 0.000000000000 +vt 0.663026511669 0.833329021931 0.000000000000 +vt 0.665229976177 0.860744595528 0.000000000000 +vt 0.646054327488 0.849184870720 0.000000000000 +vt 0.944440543652 0.577088952065 0.000000000000 +vt 0.934413731098 0.578397750854 0.000000000000 +vt 0.933311760426 0.570732593536 0.000000000000 +vt 0.942559897900 0.569070458412 0.000000000000 +vt 0.878645479679 0.586926877499 0.000000000000 +vt 0.868258655071 0.588900566101 0.000000000000 +vt 0.867458641529 0.580585360527 0.000000000000 +vt 0.877176105976 0.579317748547 0.000000000000 +vt 0.952389657497 0.575497746468 0.000000000000 +vt 0.950832903385 0.567034423351 0.000000000000 +vt 0.923831403255 0.579496085644 0.000000000000 +vt 0.923619329929 0.572405040264 0.000000000000 +vt 0.628452599049 0.873331427574 0.000000000000 +vt 0.632204830647 0.876753568649 0.000000000000 +vt 0.628753483295 0.881655633450 0.000000000000 +vt 0.623970210552 0.878167748451 0.000000000000 +vt 0.646685302258 0.866765677929 0.000000000000 +vt 0.656351864338 0.871634185314 0.000000000000 +vt 0.653122007847 0.874798536301 0.000000000000 +vt 0.645847260952 0.871063649654 0.000000000000 +vt 0.726799309254 0.837845385075 0.000000000000 +vt 0.661485850811 0.880055904388 0.000000000000 +vt 0.656600654125 0.882020831108 0.000000000000 +vt 0.636110603809 0.868256449699 0.000000000000 +vt 0.637845695019 0.872147083282 0.000000000000 +vt 0.649987399578 0.877419590950 0.000000000000 +vt 0.644934833050 0.875803411007 0.000000000000 +vt 0.639724314213 0.875453293324 0.000000000000 +vt 0.650543510914 0.882872819901 0.000000000000 +vt 0.637335002422 0.879814982414 0.000000000000 +vt 0.635132730007 0.885670363903 0.000000000000 +vt 0.643860280514 0.881775856018 0.000000000000 +vt 0.642733037472 0.850792288780 0.000000000000 +vt 0.641889035702 0.840179145336 0.000000000000 +vt 0.669664084911 0.830182671547 0.000000000000 +vt 0.650239527225 0.857445180416 0.000000000000 +vt 0.648015201092 0.831698417664 0.000000000000 +vt 0.642690360546 0.888261675835 0.000000000000 +vt 0.663629949093 0.887337207794 0.000000000000 +vt 0.657781779766 0.889087080956 0.000000000000 +vt 0.889635980129 0.584733188152 0.000000000000 +vt 0.887632310390 0.577965676785 0.000000000000 +vt 0.898609101772 0.583011865616 0.000000000000 +vt 0.896672070026 0.576863348484 0.000000000000 +vt 0.915674507618 0.580389678478 0.000000000000 +vt 0.915229618549 0.574002265930 0.000000000000 +vt 0.657724201679 0.860278069973 0.000000000000 +vt 0.930922925472 0.558675527573 0.000000000000 +vt 0.650379359722 0.889898777008 0.000000000000 +vt 0.939678132534 0.556469440460 0.000000000000 +vt 0.867106497288 0.567602217197 0.000000000000 +vt 0.875806748867 0.567502915859 0.000000000000 +vt 0.947033226490 0.554314255714 0.000000000000 +vt 0.922403037548 0.561220228672 0.000000000000 +vt 0.885274112225 0.567466676235 0.000000000000 +vt 0.658997356892 0.896231293678 0.000000000000 +vt 0.649604141712 0.899704515934 0.000000000000 +vt 0.895252883434 0.566620349884 0.000000000000 +vt 0.719376146793 0.837280273438 0.000000000000 +vt 0.918815433979 0.545299708843 0.000000000000 +vt 0.910051763058 0.547324061394 0.000000000000 +vt 0.907046377659 0.529140114784 0.000000000000 +vt 0.916585505009 0.527373969555 0.000000000000 +vt 0.899707138538 0.530310690403 0.000000000000 +vt 0.641025960445 0.896537065506 0.000000000000 +vt 0.901793301105 0.548481404781 0.000000000000 +vt 0.927321612835 0.542573332787 0.000000000000 +vt 0.632426559925 0.894321084023 0.000000000000 +vt 0.625132262707 0.886998593807 0.000000000000 +vt 0.717746436596 0.831090271473 0.000000000000 +vt 0.725946605206 0.830549895763 0.000000000000 +vt 0.735287845135 0.838093996048 0.000000000000 +vt 0.734414517879 0.830852091312 0.000000000000 +vt 0.717679798603 0.825329720974 0.000000000000 +vt 0.723944962025 0.823542177677 0.000000000000 +vt 0.732950508595 0.823792576790 0.000000000000 +vt 0.739792287350 0.825830638409 0.000000000000 +vt 0.741621911526 0.831147015095 0.000000000000 +vt 0.741378247738 0.836689889431 0.000000000000 +vt 0.665112435818 0.894209623337 0.000000000000 +vt 0.620138943195 0.882827579975 0.000000000000 +vt 0.936108648777 0.539952039719 0.000000000000 +vt 0.867212593555 0.550016939640 0.000000000000 +vt 0.875978291035 0.550476253033 0.000000000000 +vt 0.943726122379 0.537669897079 0.000000000000 +vt 0.884841740131 0.551008760929 0.000000000000 +vt 0.913087069988 0.563861310482 0.000000000000 +vt 0.893644869328 0.550148010254 0.000000000000 +vt 0.892628490925 0.531013190746 0.000000000000 +vt 0.904061496258 0.562744498253 0.000000000000 +vt 0.926213800907 0.525771796703 0.000000000000 +vt 0.934501111507 0.523906171322 0.000000000000 +vt 0.865935027599 0.533409059048 0.000000000000 +vt 0.875216186047 0.532836914063 0.000000000000 +vt 0.942422688007 0.521042168140 0.000000000000 +vt 0.884195983410 0.531999826431 0.000000000000 +vt 0.924653232098 0.517368316650 0.000000000000 +vt 0.932635247707 0.517127633095 0.000000000000 +vt 0.914257109165 0.519580006599 0.000000000000 +vt 0.906176626682 0.522352159023 0.000000000000 +vt 0.899168789387 0.522687613964 0.000000000000 +vt 0.892163813114 0.523706674576 0.000000000000 +vt 0.884188354015 0.523065209389 0.000000000000 +vt 0.873883426189 0.524219810963 0.000000000000 +vt 0.865347802639 0.526163995266 0.000000000000 +vt 0.858433783054 0.526082932949 0.000000000000 +vt 0.859899699688 0.590485215187 0.000000000000 +vt 0.858855664730 0.581898033619 0.000000000000 +vt 0.859369337559 0.568410336971 0.000000000000 +vt 0.859169065952 0.551045894623 0.000000000000 +vt 0.856827557087 0.534337580204 0.000000000000 +vt 0.937964379787 0.513839006424 0.000000000000 +vt 0.693465530872 0.814677596092 0.000000000000 +vt 0.700085699558 0.824197411537 0.000000000000 +vt 0.694888770580 0.822570204735 0.000000000000 +vt 0.692891776562 0.803992629051 0.000000000000 +vt 0.691710650921 0.795865237713 0.000000000000 +vt 0.711294472218 0.782084345818 0.000000000000 +vt 0.712714016438 0.788840830326 0.000000000000 +vt 0.708831012249 0.814877569675 0.000000000000 +vt 0.705738484859 0.822653293610 0.000000000000 +vt 0.711153686047 0.804187417030 0.000000000000 +vt 0.712479650974 0.795391499996 0.000000000000 +vt 0.700650393963 0.775034308434 0.000000000000 +vt 0.691504657269 0.783996403217 0.000000000000 +vt 0.693565666676 0.777675151825 0.000000000000 +vt 0.691854059696 0.825260579586 0.000000000000 +vt 0.688908874989 0.815112352371 0.000000000000 +vt 0.713424861431 0.816177845001 0.000000000000 +vt 0.708342850208 0.825807273388 0.000000000000 +vt 0.699830830097 0.829423010349 0.000000000000 +vt 0.688347995281 0.804415702820 0.000000000000 +vt 0.715837776661 0.805065751076 0.000000000000 +vt 0.690926015377 0.790131390095 0.000000000000 +vt 0.686091244221 0.790077388287 0.000000000000 +vt 0.687085330486 0.783463239670 0.000000000000 +vt 0.717056095600 0.795820415020 0.000000000000 +vt 0.700017035007 0.770576894283 0.000000000000 +vt 0.914225161076 0.695051312447 0.000000000000 +vt 0.916345059872 0.684997260571 0.000000000000 +vt 0.924999296665 0.686340272427 0.000000000000 +vt 0.923253715038 0.697034716606 0.000000000000 +vt 0.917016923428 0.620534837246 0.000000000000 +vt 0.915503799915 0.609951913357 0.000000000000 +vt 0.924802958965 0.608696460724 0.000000000000 +vt 0.925778567791 0.619882166386 0.000000000000 +vt 0.912027418613 0.704157292843 0.000000000000 +vt 0.921499311924 0.705678403378 0.000000000000 +vt 0.918580591679 0.674305975437 0.000000000000 +vt 0.926661670208 0.674895882607 0.000000000000 +vt 0.718583166599 0.876050651073 0.000000000000 +vt 0.713863432407 0.879810035229 0.000000000000 +vt 0.710420310497 0.875060856342 0.000000000000 +vt 0.714020431042 0.871412634850 0.000000000000 +vt 0.697144329548 0.869657814503 0.000000000000 +vt 0.690142214298 0.873365402222 0.000000000000 +vt 0.686877906322 0.870136678219 0.000000000000 +vt 0.696207225323 0.865324914455 0.000000000000 +vt 0.723377764225 0.855088472366 0.000000000000 +vt 0.686818659306 0.880428075790 0.000000000000 +vt 0.681876957417 0.878385961056 0.000000000000 +vt 0.704877674580 0.870628654957 0.000000000000 +vt 0.706442534924 0.866614162922 0.000000000000 +vt 0.698146879673 0.874422729015 0.000000000000 +vt 0.693293511868 0.876017093658 0.000000000000 +vt 0.703139483929 0.874020636082 0.000000000000 +vt 0.692841827869 0.881317675114 0.000000000000 +vt 0.707678377628 0.883993208408 0.000000000000 +vt 0.705496728420 0.878273785114 0.000000000000 +vt 0.700505435467 0.886600732803 0.000000000000 +vt 0.710137546062 0.772817432880 0.000000000000 +vt 0.708110511303 0.775850474834 0.000000000000 +vt 0.686994135380 0.796237647533 0.000000000000 +vt 0.715639293194 0.780954062939 0.000000000000 +vt 0.691104710102 0.775407373905 0.000000000000 +vt 0.699277937412 0.880255401134 0.000000000000 +vt 0.685730040073 0.887317180634 0.000000000000 +vt 0.679790914059 0.885531485081 0.000000000000 +vt 0.918968498707 0.632217705250 0.000000000000 +vt 0.927030384541 0.632067978382 0.000000000000 +vt 0.920924723148 0.642282843590 0.000000000000 +vt 0.928346455097 0.642091691494 0.000000000000 +vt 0.920858919621 0.665029823780 0.000000000000 +vt 0.928194463253 0.665964901447 0.000000000000 +vt 0.717470824718 0.788531899452 0.000000000000 +vt 0.900251805782 0.692512214184 0.000000000000 +vt 0.693121254444 0.888164877892 0.000000000000 +vt 0.902859151363 0.682655394077 0.000000000000 +vt 0.903970539570 0.621789634228 0.000000000000 +vt 0.901585161686 0.612310171127 0.000000000000 +vt 0.898017823696 0.700807869434 0.000000000000 +vt 0.905948698521 0.673050761223 0.000000000000 +vt 0.906874597073 0.632321536541 0.000000000000 +vt 0.693904578686 0.898468434811 0.000000000000 +vt 0.684614479542 0.894367456436 0.000000000000 +vt 0.909317672253 0.643546879292 0.000000000000 +vt 0.731463849545 0.855961382389 0.000000000000 +vt 0.869329869747 0.669516265392 0.000000000000 +vt 0.870946586132 0.660611331463 0.000000000000 +vt 0.890423119068 0.661864340305 0.000000000000 +vt 0.888348281384 0.670855045319 0.000000000000 +vt 0.890978634357 0.652710914612 0.000000000000 +vt 0.702305495739 0.895358145237 0.000000000000 +vt 0.871763646603 0.652749598026 0.000000000000 +vt 0.882360517979 0.689871191978 0.000000000000 +vt 0.710604488850 0.892980515957 0.000000000000 +vt 0.717464387417 0.885056376457 0.000000000000 +vt 0.730221688747 0.863188624382 0.000000000000 +vt 0.722860634327 0.863828301430 0.000000000000 +vt 0.714506924152 0.854860365391 0.000000000000 +vt 0.713789999485 0.863633096218 0.000000000000 +vt 0.724120557308 0.846761763096 0.000000000000 +vt 0.730854570866 0.849116206169 0.000000000000 +vt 0.714706599712 0.846446990967 0.000000000000 +vt 0.706338703632 0.855344653130 0.000000000000 +vt 0.707510411739 0.848723769188 0.000000000000 +vt 0.707069814205 0.861884772778 0.000000000000 +vt 0.678365886211 0.892260015011 0.000000000000 +vt 0.722407639027 0.880594253540 0.000000000000 +vt 0.885312139988 0.679928541183 0.000000000000 +vt 0.886436760426 0.624270200729 0.000000000000 +vt 0.883410274982 0.615363061428 0.000000000000 +vt 0.879997313023 0.698587834835 0.000000000000 +vt 0.889629900455 0.633672416210 0.000000000000 +vt 0.909305155277 0.662700593472 0.000000000000 +vt 0.891184151173 0.643255293369 0.000000000000 +vt 0.871766149998 0.644696950912 0.000000000000 +vt 0.907031238079 0.653394460678 0.000000000000 +vt 0.865283668041 0.687783956528 0.000000000000 +vt 0.867546260357 0.678728938103 0.000000000000 +vt 0.868419826031 0.627362251282 0.000000000000 +vt 0.866138994694 0.618586599827 0.000000000000 +vt 0.862232387066 0.696758449078 0.000000000000 +vt 0.870358645916 0.636041104794 0.000000000000 +vt 0.858235895634 0.685826241970 0.000000000000 +vt 0.858604013920 0.677683055401 0.000000000000 +vt 0.860833942890 0.667493700981 0.000000000000 +vt 0.863862931728 0.659794270992 0.000000000000 +vt 0.864249050617 0.652788579464 0.000000000000 +vt 0.864739954472 0.645918428898 0.000000000000 +vt 0.861379206181 0.638689100742 0.000000000000 +vt 0.859226524830 0.628483951092 0.000000000000 +vt 0.858618676662 0.620088815689 0.000000000000 +vt 0.856225430965 0.613054513931 0.000000000000 +vt 0.914761722088 0.600589513779 0.000000000000 +vt 0.924306929111 0.599584639072 0.000000000000 +vt 0.900618851185 0.603945910931 0.000000000000 +vt 0.882335126400 0.606884181499 0.000000000000 +vt 0.864254891872 0.609210252762 0.000000000000 +vt 0.854927241802 0.691868305206 0.000000000000 +vt 0.837422072887 0.841993212700 0.000000000000 +vt 0.887628972530 0.127281382680 0.000000000000 +vt 0.891492426395 0.109981805086 0.000000000000 +vt 0.853538930416 0.841780006886 0.000000000000 +vt 0.446142524481 0.173150673509 0.000000000000 +vt 0.852221906185 0.869813799858 0.000000000000 +vt 0.834832131863 0.866848766804 0.000000000000 +vt 0.827377617359 0.891240715981 0.000000000000 +vt 0.844508349895 0.896685421467 0.000000000000 +vt 0.876590073109 0.913664817810 0.000000000000 +vt 0.631155192852 0.291285961866 0.000000000000 +vt 0.626378953457 0.296571254730 0.000000000000 +vt 0.619356811047 0.293236494064 0.000000000000 +vt 0.617115795612 0.281405717134 0.000000000000 +vt 0.627076447010 0.304564028978 0.000000000000 +vt 0.612752139568 0.299342244864 0.000000000000 +vt 0.603455007076 0.284176468849 0.000000000000 +vt 0.551565110683 0.292362421751 0.000000000000 +vt 0.563377797604 0.287606924772 0.000000000000 +vt 0.575475394726 0.299903571606 0.000000000000 +vt 0.558976709843 0.303807973862 0.000000000000 +vt 0.562288582325 0.307399660349 0.000000000000 +vt 0.579733312130 0.307971090078 0.000000000000 +vt 0.596043288708 0.307672083378 0.000000000000 +vt 0.594420373440 0.298339635134 0.000000000000 +vt 0.590357482433 0.287719279528 0.000000000000 +vt 0.579626619816 0.290383100510 0.000000000000 +vt 0.573159515858 0.282042890787 0.000000000000 +vt 0.578718960285 0.044730942696 0.000000000000 +vt 0.566518962383 0.050097059458 0.000000000000 +vt 0.561770737171 0.022569365799 0.000000000000 +vt 0.579452574253 0.019849490374 0.000000000000 +vt 0.557008445263 0.060779999942 0.000000000000 +vt 0.548213899136 0.048078324646 0.000000000000 +vt 0.693731248379 0.210530251265 0.000000000000 +vt 0.693874895573 0.194242313504 0.000000000000 +vt 0.701992332935 0.200576603413 0.000000000000 +vt 0.711977064610 0.218270197511 0.000000000000 +vt 0.698697388172 0.178742393851 0.000000000000 +vt 0.704717457294 0.185912460089 0.000000000000 +vt 0.903121650219 0.125584170222 0.000000000000 +vt 0.867082893848 0.928871572018 0.000000000000 +vt 0.847567975521 0.932113111019 0.000000000000 +vt 0.861807763577 0.903646290302 0.000000000000 +vt 0.874533474445 0.941229879856 0.000000000000 +vt 0.854254424572 0.953694105148 0.000000000000 +vt 0.828710377216 0.919355154037 0.000000000000 +vt 0.886985480785 0.898062467575 0.000000000000 +vt 0.872782289982 0.875068247318 0.000000000000 +vt 0.906435072422 0.912213265896 0.000000000000 +vt 0.907167255878 0.936152637005 0.000000000000 +vt 0.888857185841 0.925772547722 0.000000000000 +vt 0.894924700260 0.912269532681 0.000000000000 +vt 0.909523308277 0.137212976813 0.000000000000 +vt 0.900375425816 0.890851438046 0.000000000000 +vt 0.647988855839 0.030116569251 0.000000000000 +vt 0.663214385509 0.030034158379 0.000000000000 +vt 0.655444204807 0.048680160195 0.000000000000 +vt 0.633447468281 0.039773471653 0.000000000000 +vt 0.639170706272 0.061737354845 0.000000000000 +vt 0.625266969204 0.055919121951 0.000000000000 +vt 0.724736869335 0.892238378525 0.000000000000 +vt 0.741851985455 0.899839401245 0.000000000000 +vt 0.725909292698 0.912707686424 0.000000000000 +vt 0.713663756847 0.901688575745 0.000000000000 +vt 0.650711238384 0.327391177416 0.000000000000 +vt 0.634856283665 0.320250153542 0.000000000000 +vt 0.740120351315 0.933756113052 0.000000000000 +vt 0.722898066044 0.930224955082 0.000000000000 +vt 0.640473186970 0.306113332510 0.000000000000 +vt 0.652059733868 0.314922749996 0.000000000000 +vt 0.621949970722 0.313803285360 0.000000000000 +vt 0.583925902843 0.276038467884 0.000000000000 +vt 0.669873058796 0.330044180155 0.000000000000 +vt 0.663455307484 0.311076432467 0.000000000000 +vt 0.653194963932 0.296154946089 0.000000000000 +vt 0.537551581860 0.063254460692 0.000000000000 +vt 0.855031669140 0.035574551672 0.000000000000 +vt 0.837493717670 0.022007379681 0.000000000000 +vt 0.709798753262 0.290995299816 0.000000000000 +vt 0.720909416676 0.320390880108 0.000000000000 +vt 0.708561480045 0.322530746460 0.000000000000 +vt 0.747772991657 0.921521842480 0.000000000000 +vt 0.695623576641 0.297934114933 0.000000000000 +vt 0.680082261562 0.305459260941 0.000000000000 +vt 0.693427860737 0.329764753580 0.000000000000 +vt 0.681907594204 0.278335958719 0.000000000000 +vt 0.667823493481 0.287369400263 0.000000000000 +vt 0.667146265507 0.261673122644 0.000000000000 +vt 0.654371798038 0.271894037724 0.000000000000 +vt 0.641373217106 0.281966120005 0.000000000000 +vt 0.639975368977 0.258212238550 0.000000000000 +vt 0.628611147404 0.269090384245 0.000000000000 +vt 0.626621663570 0.244766697288 0.000000000000 +vt 0.616053998470 0.255464911461 0.000000000000 +vt 0.605184614658 0.264766514301 0.000000000000 +vt 0.605853140354 0.242097690701 0.000000000000 +vt 0.595517814159 0.250885695219 0.000000000000 +vt 0.585814058781 0.256739497185 0.000000000000 +vt 0.595492184162 0.270403504372 0.000000000000 +vt 0.574711024761 0.264054805040 0.000000000000 +vt 0.585790932178 0.239443764091 0.000000000000 +vt 0.572891771793 0.246539995074 0.000000000000 +vt 0.559696972370 0.254923403263 0.000000000000 +vt 0.577001988888 0.228986665606 0.000000000000 +vt 0.564495980740 0.234662607312 0.000000000000 +vt 0.551713407040 0.238481923938 0.000000000000 +vt 0.545511305332 0.261512130499 0.000000000000 +vt 0.538646757603 0.241494938731 0.000000000000 +vt 0.661286294460 0.149169623852 0.000000000000 +vt 0.643085420132 0.133995741606 0.000000000000 +vt 0.684797942638 0.147779509425 0.000000000000 +vt 0.676565825939 0.159141749144 0.000000000000 +vt 0.630804598331 0.144728660583 0.000000000000 +vt 0.649197280407 0.162055477500 0.000000000000 +vt 0.669700562954 0.172124639153 0.000000000000 +vt 0.633624017239 0.171124503016 0.000000000000 +vt 0.617616355419 0.157551243901 0.000000000000 +vt 0.624203979969 0.183554634452 0.000000000000 +vt 0.607319533825 0.173306703568 0.000000000000 +vt 0.645736873150 0.185071289539 0.000000000000 +vt 0.638931095600 0.196221649647 0.000000000000 +vt 0.601086556911 0.187993124127 0.000000000000 +vt 0.617492735386 0.196533486247 0.000000000000 +vt 0.632214725018 0.207936018705 0.000000000000 +vt 0.654465734959 0.209547683597 0.000000000000 +vt 0.646386682987 0.221093416214 0.000000000000 +vt 0.611703574657 0.208597302437 0.000000000000 +vt 0.624510347843 0.219911128283 0.000000000000 +vt 0.636621057987 0.233212843537 0.000000000000 +vt 0.661210715771 0.235190823674 0.000000000000 +vt 0.651021778584 0.247041419148 0.000000000000 +vt 0.615979254246 0.231477782130 0.000000000000 +vt 0.605249464512 0.220229938626 0.000000000000 +vt 0.596773326397 0.230893954635 0.000000000000 +vt 0.592077195644 0.211689129472 0.000000000000 +vt 0.586139500141 0.221562415361 0.000000000000 +vt 0.596748054028 0.200712144375 0.000000000000 +vt 0.686020314693 0.238807246089 0.000000000000 +vt 0.677805483341 0.250549525023 0.000000000000 +vt 0.669185936451 0.222903206944 0.000000000000 +vt 0.691701591015 0.226273551583 0.000000000000 +vt 0.675190150738 0.210060581565 0.000000000000 +vt 0.660946547985 0.197643056512 0.000000000000 +vt 0.679371058941 0.196919396520 0.000000000000 +vt 0.665786325932 0.185841768980 0.000000000000 +vt 0.653169095516 0.177967861295 0.000000000000 +vt 0.682948529720 0.183452650905 0.000000000000 +vt 0.688856303692 0.169335424900 0.000000000000 +vt 0.712051331997 0.240907743573 0.000000000000 +vt 0.705046594143 0.257047295570 0.000000000000 +vt 0.693947613239 0.268588751554 0.000000000000 +vt 0.846441566944 0.016312304884 0.000000000000 +vt 0.725233733654 0.280963063240 0.000000000000 +vt 0.864230215549 0.027330722660 0.000000000000 +vt 0.867542684078 0.077758729458 0.000000000000 +vt 0.873992264271 0.059032347053 0.000000000000 +vt 0.900698363781 0.073607310653 0.000000000000 +vt 0.893409788609 0.088153243065 0.000000000000 +vt 0.837527215481 0.094833135605 0.000000000000 +vt 0.838087618351 0.073169842362 0.000000000000 +vt 0.864491522312 0.098964735866 0.000000000000 +vt 0.839568436146 0.049210395664 0.000000000000 +vt 0.838048279285 0.117027804255 0.000000000000 +vt 0.862743914127 0.119909122586 0.000000000000 +vt 0.839784204960 0.140174224973 0.000000000000 +vt 0.862825214863 0.142299681902 0.000000000000 +vt 0.887471616268 0.147722780704 0.000000000000 +vt 0.864518344402 0.167147815228 0.000000000000 +vt 0.760909855366 0.908550620079 0.000000000000 +vt 0.702537238598 0.924268066883 0.000000000000 +vt 0.688291251659 0.928146779537 0.000000000000 +vt 0.681064426899 0.908967435360 0.000000000000 +vt 0.690809547901 0.908960223198 0.000000000000 +vt 0.831720411777 0.965238690376 0.000000000000 +vt 0.609436690807 0.309842139482 0.000000000000 +vt 0.841262519360 0.982780098915 0.000000000000 +vt 0.824164688587 0.990950345993 0.000000000000 +vt 0.813748776913 0.974472284317 0.000000000000 +vt 0.803931534290 0.981341362000 0.000000000000 +vt 0.813704669476 0.995644569397 0.000000000000 +vt 0.821433365345 0.949445426464 0.000000000000 +vt 0.802491247654 0.961359918118 0.000000000000 +vt 0.792442619801 0.969731867313 0.000000000000 +vt 0.808618605137 0.936246752739 0.000000000000 +vt 0.791009962559 0.950495541096 0.000000000000 +vt 0.780412495136 0.960320413113 0.000000000000 +vt 0.779733002186 0.938618302345 0.000000000000 +vt 0.769098222256 0.949621915817 0.000000000000 +vt 0.795302093029 0.925809264183 0.000000000000 +vt 0.779587566853 0.917365670204 0.000000000000 +vt 0.765330970287 0.930258750916 0.000000000000 +vt 0.755919754505 0.940638661385 0.000000000000 +vt 0.888226568699 0.171349883080 0.000000000000 +vt 0.910776436329 0.175429016352 0.000000000000 +vt 0.910029232502 0.154122352600 0.000000000000 +vt 0.931366503239 0.177302077413 0.000000000000 +vt 0.929215371609 0.158224686980 0.000000000000 +vt 0.927563607693 0.146612986922 0.000000000000 +vt 0.907406389713 0.225816711783 0.000000000000 +vt 0.909843504429 0.199414119124 0.000000000000 +vt 0.930679738522 0.201603308320 0.000000000000 +vt 0.928200304508 0.226828783751 0.000000000000 +vt 0.887493193150 0.252168864012 0.000000000000 +vt 0.887319624424 0.224217891693 0.000000000000 +vt 0.907594621181 0.252231895924 0.000000000000 +vt 0.932080924511 0.253668844700 0.000000000000 +vt 0.888279378414 0.197011262178 0.000000000000 +vt 0.868254363537 0.222412139177 0.000000000000 +vt 0.866531431675 0.193962886930 0.000000000000 +vt 0.850991070271 0.254400819540 0.000000000000 +vt 0.425416767597 0.169557422400 0.000000000000 +vt 0.527126252651 0.054304089397 0.000000000000 +vt 0.537031948566 0.037999924272 0.000000000000 +vt 0.594819605350 0.021248605102 0.000000000000 +vt 0.593616664410 0.041817199439 0.000000000000 +vt 0.611463606358 0.039550118148 0.000000000000 +vt 0.612102329731 0.021802034229 0.000000000000 +vt 0.629308164120 0.021318852901 0.000000000000 +vt 0.684654057026 0.026047337800 0.000000000000 +vt 0.686814010143 0.010275442153 0.000000000000 +vt 0.813150346279 0.910948097706 0.000000000000 +vt 0.795561254025 0.902303934097 0.000000000000 +vt 0.708547055721 0.008438628167 0.000000000000 +vt 0.706763446331 0.024136669934 0.000000000000 +vt 0.681121885777 0.042657937855 0.000000000000 +vt 0.703326165676 0.040577050298 0.000000000000 +vt 0.679071128368 0.059330899268 0.000000000000 +vt 0.697736203671 0.057211738080 0.000000000000 +vt 0.679068386555 0.075802132487 0.000000000000 +vt 0.694422185421 0.074145883322 0.000000000000 +vt 0.660856544971 0.065091490746 0.000000000000 +vt 0.664182245731 0.079712390900 0.000000000000 +vt 0.667562067509 0.093277320266 0.000000000000 +vt 0.658718883991 0.094275429845 0.000000000000 +vt 0.653593957424 0.083498373628 0.000000000000 +vt 0.562429010868 0.070872798562 0.000000000000 +vt 0.561431109905 0.091275691986 0.000000000000 +vt 0.651631176472 0.096843779087 0.000000000000 +vt 0.566199004650 0.079591929913 0.000000000000 +vt 0.568919837475 0.088470026851 0.000000000000 +vt 0.576352179050 0.086408510804 0.000000000000 +vt 0.573891699314 0.075738176703 0.000000000000 +vt 0.570575177670 0.065078660846 0.000000000000 +vt 0.584147036076 0.084593981504 0.000000000000 +vt 0.582864105701 0.072689130902 0.000000000000 +vt 0.580894887447 0.060486171395 0.000000000000 +vt 0.593160688877 0.083160415292 0.000000000000 +vt 0.593804895878 0.070337161422 0.000000000000 +vt 0.593818604946 0.057107713073 0.000000000000 +vt 0.603601753712 0.082686245441 0.000000000000 +vt 0.606147468090 0.069071784616 0.000000000000 +vt 0.609074890614 0.054980006069 0.000000000000 +vt 0.614769279957 0.083682104945 0.000000000000 +vt 0.619084775448 0.069891348481 0.000000000000 +vt 0.610922992229 0.095825180411 0.000000000000 +vt 0.601321876049 0.094617664814 0.000000000000 +vt 0.622694909573 0.086109951138 0.000000000000 +vt 0.617340266705 0.097710400820 0.000000000000 +vt 0.629761517048 0.073689267039 0.000000000000 +vt 0.629895031452 0.090603604913 0.000000000000 +vt 0.623498737812 0.100945651531 0.000000000000 +vt 0.638310372829 0.080408573151 0.000000000000 +vt 0.638113796711 0.097320660949 0.000000000000 +vt 0.645590126514 0.088923722506 0.000000000000 +vt 0.647677242756 0.071726813912 0.000000000000 +vt 0.631511867046 0.105762854218 0.000000000000 +vt 0.638789474964 0.110335975885 0.000000000000 +vt 0.562276422977 0.105178341269 0.000000000000 +vt 0.630611360073 0.128678917885 0.000000000000 +vt 0.623610913754 0.125340327621 0.000000000000 +vt 0.626384556293 0.114658728242 0.000000000000 +vt 0.569847881794 0.105211660266 0.000000000000 +vt 0.570068538189 0.114621803164 0.000000000000 +vt 0.570002615452 0.097111940384 0.000000000000 +vt 0.577380478382 0.104798287153 0.000000000000 +vt 0.576979458332 0.114249393344 0.000000000000 +vt 0.577486932278 0.096096485853 0.000000000000 +vt 0.584565103054 0.104308113456 0.000000000000 +vt 0.583777844906 0.114008486271 0.000000000000 +vt 0.584677040577 0.095082387328 0.000000000000 +vt 0.591241061687 0.104193970561 0.000000000000 +vt 0.589022576809 0.114581719041 0.000000000000 +vt 0.592356622219 0.094391390681 0.000000000000 +vt 0.598587095737 0.105026379228 0.000000000000 +vt 0.594260156155 0.115820080042 0.000000000000 +vt 0.586750924587 0.143253445625 0.000000000000 +vt 0.588111102581 0.125869661570 0.000000000000 +vt 0.593005359173 0.127749264240 0.000000000000 +vt 0.591630995274 0.144661337137 0.000000000000 +vt 0.596110045910 0.146092429757 0.000000000000 +vt 0.598921716213 0.130493223667 0.000000000000 +vt 0.601200044155 0.117737725377 0.000000000000 +vt 0.600308954716 0.147598937154 0.000000000000 +vt 0.605599582195 0.133385121822 0.000000000000 +vt 0.608710825443 0.120034545660 0.000000000000 +vt 0.604579865932 0.149645149708 0.000000000000 +vt 0.611486494541 0.135846063495 0.000000000000 +vt 0.615960538387 0.122533097863 0.000000000000 +vt 0.608992874622 0.150967940688 0.000000000000 +vt 0.617690265179 0.137778565288 0.000000000000 +vt 0.624459326267 0.140183672309 0.000000000000 +vt 0.613782465458 0.152489989996 0.000000000000 +vt 0.570089280605 0.125959947705 0.000000000000 +vt 0.557442963123 0.275540649891 0.000000000000 +vt 0.566006243229 0.270970880985 0.000000000000 +vt 0.775371730328 0.893757700920 0.000000000000 +vt 0.808763206005 0.883916676044 0.000000000000 +vt 0.559562146664 0.264112442732 0.000000000000 +vt 0.554663598537 0.266600191593 0.000000000000 +vt 0.848581612110 0.221785306931 0.000000000000 +vt 0.393582761288 0.484183341265 0.000000000000 +vt 0.396767795086 0.480453461409 0.000000000000 +vt 0.400794714689 0.480809420347 0.000000000000 +vt 0.399765521288 0.485055834055 0.000000000000 +vt 0.439470499754 0.511713802814 0.000000000000 +vt 0.440386444330 0.513542473316 0.000000000000 +vt 0.437012046576 0.514041662216 0.000000000000 +vt 0.437573134899 0.511677742004 0.000000000000 +vt 0.422013103962 0.460037946701 0.000000000000 +vt 0.418047666550 0.470334529877 0.000000000000 +vt 0.412509530783 0.468371391296 0.000000000000 +vt 0.414865106344 0.458373844624 0.000000000000 +vt 0.429023534060 0.476388931274 0.000000000000 +vt 0.423462659121 0.473014324903 0.000000000000 +vt 0.429314196110 0.462833255529 0.000000000000 +vt 0.436214298010 0.467371255159 0.000000000000 +vt 0.406041711569 0.475491911173 0.000000000000 +vt 0.406945496798 0.467524141073 0.000000000000 +vt 0.410694092512 0.476356506348 0.000000000000 +vt 0.435092151165 0.452288359404 0.000000000000 +vt 0.438309162855 0.447881609201 0.000000000000 +vt 0.359971135855 0.090370342135 0.000000000000 +vt 0.368420302868 0.099629849195 0.000000000000 +vt 0.362833082676 0.104876860976 0.000000000000 +vt 0.354921132326 0.096900969744 0.000000000000 +vt 0.352515369654 0.130700588226 0.000000000000 +vt 0.345492541790 0.124132826924 0.000000000000 +vt 0.349532276392 0.119571164250 0.000000000000 +vt 0.358871489763 0.128728002310 0.000000000000 +vt 0.438525289297 0.449985921383 0.000000000000 +vt 0.439274400473 0.451704740524 0.000000000000 +vt 0.449622303247 0.464140743017 0.000000000000 +vt 0.448981046677 0.460056871176 0.000000000000 +vt 0.450336039066 0.460677176714 0.000000000000 +vt 0.452015697956 0.460444808006 0.000000000000 +vt 0.425263881683 0.450979530811 0.000000000000 +vt 0.453179091215 0.473780065775 0.000000000000 +vt 0.449453443289 0.477478682995 0.000000000000 +vt 0.442929327488 0.472293376923 0.000000000000 +vt 0.441622525454 0.459930330515 0.000000000000 +vt 0.444129645824 0.456388652325 0.000000000000 +vt 0.373616009951 0.118581384420 0.000000000000 +vt 0.375112146139 0.115701422095 0.000000000000 +vt 0.377992779016 0.117945536971 0.000000000000 +vt 0.375868886709 0.120479449630 0.000000000000 +vt 0.382243275642 0.107223436236 0.000000000000 +vt 0.383732229471 0.103787556291 0.000000000000 +vt 0.386310935020 0.106139764190 0.000000000000 +vt 0.384451150894 0.109020173550 0.000000000000 +vt 0.409286201000 0.450759083033 0.000000000000 +vt 0.408566385508 0.458585023880 0.000000000000 +vt 0.376690715551 0.126454398036 0.000000000000 +vt 0.381214976311 0.120371833444 0.000000000000 +vt 0.403114914894 0.459155589342 0.000000000000 +vt 0.403876841068 0.452309519053 0.000000000000 +vt 0.454835981131 0.482029527426 0.000000000000 +vt 0.457485169172 0.479463666677 0.000000000000 +vt 0.384555608034 0.122786611319 0.000000000000 +vt 0.382433533669 0.128221631050 0.000000000000 +vt 0.385892122984 0.114606484771 0.000000000000 +vt 0.389199435711 0.119001969695 0.000000000000 +vt 0.416368693113 0.447328180075 0.000000000000 +vt 0.461556434631 0.440214395523 0.000000000000 +vt 0.354810804129 0.135790005326 0.000000000000 +vt 0.356487303972 0.133928865194 0.000000000000 +vt 0.459117084742 0.440935134888 0.000000000000 +vt 0.359035402536 0.136161059141 0.000000000000 +vt 0.356604158878 0.137259811163 0.000000000000 +vt 0.456829965115 0.439723789692 0.000000000000 +vt 0.458451539278 0.437272518873 0.000000000000 +vt 0.454769343138 0.438526421785 0.000000000000 +vt 0.454550951719 0.435967743397 0.000000000000 +vt 0.441826075315 0.444921255112 0.000000000000 +vt 0.443551659584 0.442011803389 0.000000000000 +vt 0.448256731033 0.443818241358 0.000000000000 +vt 0.446299463511 0.446265220642 0.000000000000 +vt 0.455544114113 0.449857115746 0.000000000000 +vt 0.458855003119 0.454671829939 0.000000000000 +vt 0.455724000931 0.457280248404 0.000000000000 +vt 0.453310787678 0.452473431826 0.000000000000 +vt 0.450308114290 0.448847740889 0.000000000000 +vt 0.386408418417 0.101448193192 0.000000000000 +vt 0.387978881598 0.103007167578 0.000000000000 +vt 0.452250301838 0.446324646473 0.000000000000 +vt 0.447152793407 0.437671035528 0.000000000000 +vt 0.450194656849 0.436007380486 0.000000000000 +vt 0.452898085117 0.439646780491 0.000000000000 +vt 0.450881361961 0.441238403320 0.000000000000 +vt 0.458574026823 0.443444490433 0.000000000000 +vt 0.463303625584 0.444895386696 0.000000000000 +vt 0.462563782930 0.448778629303 0.000000000000 +vt 0.457480877638 0.446133941412 0.000000000000 +vt 0.454026341438 0.443802684546 0.000000000000 +vt 0.359097301960 0.132905989885 0.000000000000 +vt 0.361074864864 0.134876102209 0.000000000000 +vt 0.455461025238 0.441745221615 0.000000000000 +vt 0.444298267365 0.448686748743 0.000000000000 +vt 0.442074418068 0.450537770987 0.000000000000 +vt 0.439655810595 0.449115246534 0.000000000000 +vt 0.441199243069 0.447540730238 0.000000000000 +vt 0.451972931623 0.458101630211 0.000000000000 +vt 0.450596332550 0.459385693073 0.000000000000 +vt 0.449565351009 0.457458138466 0.000000000000 +vt 0.450939685106 0.454803764820 0.000000000000 +vt 0.446267724037 0.453737437725 0.000000000000 +vt 0.397592544556 0.132566675544 0.000000000000 +vt 0.395102560520 0.138213351369 0.000000000000 +vt 0.392103701830 0.135889068246 0.000000000000 +vt 0.395304739475 0.130839735270 0.000000000000 +vt 0.399295836687 0.125662967563 0.000000000000 +vt 0.402231425047 0.128127291799 0.000000000000 +vt 0.404049992561 0.137433633208 0.000000000000 +vt 0.405965834856 0.138806402683 0.000000000000 +vt 0.404163688421 0.144568577409 0.000000000000 +vt 0.448208779097 0.451402574778 0.000000000000 +vt 0.449387699366 0.442756623030 0.000000000000 +vt 0.445775300264 0.440066248178 0.000000000000 +vt 0.459970653057 0.451159417629 0.000000000000 +vt 0.456270694733 0.448136717081 0.000000000000 +vt 0.400764316320 0.142388850451 0.000000000000 +vt 0.410871744156 0.135244905949 0.000000000000 +vt 0.407858490944 0.132529079914 0.000000000000 +vt 0.389080792665 0.131361424923 0.000000000000 +vt 0.387762486935 0.129610389471 0.000000000000 +vt 0.389104187489 0.126333042979 0.000000000000 +vt 0.390812218189 0.127695217729 0.000000000000 +vt 0.391797959805 0.123638600111 0.000000000000 +vt 0.393867135048 0.124303475022 0.000000000000 +vt 0.390969157219 0.132123574615 0.000000000000 +vt 0.392821729183 0.129185527563 0.000000000000 +vt 0.395075976849 0.126136258245 0.000000000000 +vt 0.398736566305 0.138166293502 0.000000000000 +vt 0.397700846195 0.136793285608 0.000000000000 +vt 0.399035334587 0.133746489882 0.000000000000 +vt 0.400510340929 0.134889379144 0.000000000000 +vt 0.401520818472 0.131361871958 0.000000000000 +vt 0.403166472912 0.131912827492 0.000000000000 +vt 0.400330662727 0.138775110245 0.000000000000 +vt 0.402200579643 0.136118054390 0.000000000000 +vt 0.404188245535 0.133363723755 0.000000000000 +vt 0.385480999947 0.131040126085 0.000000000000 +vt 0.387488692999 0.124964997172 0.000000000000 +vt 0.392740219831 0.120471790433 0.000000000000 +vt 0.397779881954 0.121211871505 0.000000000000 +vt 0.388019412756 0.135536253452 0.000000000000 +vt 0.406621724367 0.128388255835 0.000000000000 +vt 0.396779060364 0.141935378313 0.000000000000 +vt 0.409657478333 0.141405150294 0.000000000000 +vt 0.408238559961 0.143032342196 0.000000000000 +vt 0.452826261520 0.445473134518 0.000000000000 +vt 0.398223191500 0.453096210957 0.000000000000 +vt 0.397748589516 0.459203541279 0.000000000000 +vt 0.461537957191 0.483292669058 0.000000000000 +vt 0.458966463804 0.486215561628 0.000000000000 +vt 0.417104929686 0.441364258528 0.000000000000 +vt 0.418126702309 0.442871898413 0.000000000000 +vt 0.420422822237 0.444641411304 0.000000000000 +vt 0.433500528336 0.448079735041 0.000000000000 +vt 0.436020672321 0.448221594095 0.000000000000 +vt 0.427099138498 0.446181684732 0.000000000000 +vt 0.438960522413 0.423234313726 0.000000000000 +vt 0.436720907688 0.424649864435 0.000000000000 +vt 0.407253503799 0.142381638288 0.000000000000 +vt 0.408249586821 0.140351876616 0.000000000000 +vt 0.434051692486 0.423569798470 0.000000000000 +vt 0.434879601002 0.420804440975 0.000000000000 +vt 0.431214749813 0.423123985529 0.000000000000 +vt 0.430086702108 0.420641422272 0.000000000000 +vt 0.419274091721 0.434574037790 0.000000000000 +vt 0.420379161835 0.430852890015 0.000000000000 +vt 0.426141530275 0.431651085615 0.000000000000 +vt 0.424853444099 0.434927970171 0.000000000000 +vt 0.436181217432 0.434532612562 0.000000000000 +vt 0.441298097372 0.437351107597 0.000000000000 +vt 0.439914047718 0.441069751978 0.000000000000 +vt 0.435192108154 0.437948435545 0.000000000000 +vt 0.430372446775 0.435908526182 0.000000000000 +vt 0.410810738802 0.139599621296 0.000000000000 +vt 0.409828603268 0.138812705874 0.000000000000 +vt 0.431275308132 0.432643771172 0.000000000000 +vt 0.423234343529 0.424417972565 0.000000000000 +vt 0.425667136908 0.422001600266 0.000000000000 +vt 0.429718136787 0.424738824368 0.000000000000 +vt 0.428410202265 0.426783442497 0.000000000000 +vt 0.437025994062 0.426789969206 0.000000000000 +vt 0.441838681698 0.426870137453 0.000000000000 +vt 0.442383557558 0.430333465338 0.000000000000 +vt 0.436957329512 0.429274797440 0.000000000000 +vt 0.432621270418 0.428078770638 0.000000000000 +vt 0.414452850819 0.144986689091 0.000000000000 +vt 0.409147053957 0.147766679525 0.000000000000 +vt 0.433331876993 0.425908029079 0.000000000000 +vt 0.423957765102 0.438147932291 0.000000000000 +vt 0.422544687986 0.441486746073 0.000000000000 +vt 0.418296456337 0.441183239222 0.000000000000 +vt 0.419304251671 0.438087821007 0.000000000000 +vt 0.437636613846 0.443893879652 0.000000000000 +vt 0.436708301306 0.446964770555 0.000000000000 +vt 0.433489710093 0.444419175386 0.000000000000 +vt 0.434133440256 0.441165685654 0.000000000000 +vt 0.428444206715 0.442456930876 0.000000000000 +vt 0.408575177193 0.144754558802 0.000000000000 +vt 0.411639750004 0.142881035805 0.000000000000 +vt 0.406258314848 0.142990231514 0.000000000000 +vt 0.407059431076 0.139547616243 0.000000000000 +vt 0.410056680441 0.137724533677 0.000000000000 +vt 0.415505886078 0.139094606042 0.000000000000 +vt 0.412565827370 0.139450341463 0.000000000000 +vt 0.364202499390 0.128939658403 0.000000000000 +vt 0.366093575954 0.126167103648 0.000000000000 +vt 0.429390072823 0.439258158207 0.000000000000 +vt 0.427526712418 0.428991526365 0.000000000000 +vt 0.422490209341 0.427620559931 0.000000000000 +vt 0.441317677498 0.433453887701 0.000000000000 +vt 0.436557680368 0.431637555361 0.000000000000 +vt 0.368825376034 0.128782272339 0.000000000000 +vt 0.366221219301 0.131002977490 0.000000000000 +vt 0.377708643675 0.113558173180 0.000000000000 +vt 0.379947811365 0.115249529481 0.000000000000 +vt 0.368792057037 0.124293580651 0.000000000000 +vt 0.370973348618 0.126337096095 0.000000000000 +vt 0.379835903645 0.132157340646 0.000000000000 +vt 0.374702155590 0.134804278612 0.000000000000 +vt 0.371608525515 0.131661787629 0.000000000000 +vt 0.385006606579 0.145867496729 0.000000000000 +vt 0.380806565285 0.150551855564 0.000000000000 +vt 0.378436356783 0.147939816117 0.000000000000 +vt 0.383413165808 0.143897384405 0.000000000000 +vt 0.388382792473 0.140254378319 0.000000000000 +vt 0.390580326319 0.142940923572 0.000000000000 +vt 0.389787077904 0.151387169957 0.000000000000 +vt 0.391084223986 0.152869373560 0.000000000000 +vt 0.387653529644 0.157836511731 0.000000000000 +vt 0.385402202606 0.155462026596 0.000000000000 +vt 0.396483421326 0.150470122695 0.000000000000 +vt 0.394613981247 0.147955358028 0.000000000000 +vt 0.377133131027 0.143021076918 0.000000000000 +vt 0.431962937117 0.430194556713 0.000000000000 +vt 0.398509591818 0.449473470449 0.000000000000 +vt 0.403451532125 0.447545230389 0.000000000000 +vt 0.412772059441 0.443381220102 0.000000000000 +vt 0.415262728930 0.442666351795 0.000000000000 +vt 0.408193081617 0.445362567902 0.000000000000 +vt 0.402572304010 0.417491078377 0.000000000000 +vt 0.401636779308 0.420146107674 0.000000000000 +vt 0.376334518194 0.141268029809 0.000000000000 +vt 0.378864586353 0.138637766242 0.000000000000 +vt 0.398579388857 0.420967459679 0.000000000000 +vt 0.397203922272 0.418318748474 0.000000000000 +vt 0.395930439234 0.422812163830 0.000000000000 +vt 0.393101811409 0.421740859747 0.000000000000 +vt 0.393963277340 0.440714478493 0.000000000000 +vt 0.392591178417 0.436948060989 0.000000000000 +vt 0.397990405560 0.434073746204 0.000000000000 +vt 0.399504780769 0.437697380781 0.000000000000 +vt 0.408009588718 0.428790479898 0.000000000000 +vt 0.414924532175 0.428841352463 0.000000000000 +vt 0.416294604540 0.432789921761 0.000000000000 +vt 0.409434139729 0.432349741459 0.000000000000 +vt 0.404077023268 0.434443891048 0.000000000000 +vt 0.380261212587 0.140083029866 0.000000000000 +vt 0.382164925337 0.137022957206 0.000000000000 +vt 0.402819514275 0.430790752172 0.000000000000 +vt 0.390489786863 0.430026113987 0.000000000000 +vt 0.390550136566 0.426381319761 0.000000000000 +vt 0.395857959986 0.425411134958 0.000000000000 +vt 0.396276742220 0.428331613541 0.000000000000 +vt 0.403288513422 0.421578973532 0.000000000000 +vt 0.408246427774 0.418946474791 0.000000000000 +vt 0.411142379045 0.421542286873 0.000000000000 +vt 0.405009150505 0.423732370138 0.000000000000 +vt 0.400750786066 0.425774753094 0.000000000000 +vt 0.383944779634 0.138014540076 0.000000000000 +vt 0.378778368235 0.144098669291 0.000000000000 +vt 0.399727702141 0.423417359591 0.000000000000 +vt 0.400881379843 0.440771222115 0.000000000000 +vt 0.401966422796 0.443919539452 0.000000000000 +vt 0.396847724915 0.446899026632 0.000000000000 +vt 0.396342486143 0.443651407957 0.000000000000 +vt 0.415956437588 0.436509907246 0.000000000000 +vt 0.416573584080 0.440072774887 0.000000000000 +vt 0.411374956369 0.439379304647 0.000000000000 +vt 0.410169273615 0.436066806316 0.000000000000 +vt 0.406326770782 0.441095888615 0.000000000000 +vt 0.381734192371 0.141807720065 0.000000000000 +vt 0.384717941284 0.139707922935 0.000000000000 +vt 0.384294420481 0.151226192713 0.000000000000 +vt 0.383655220270 0.149787440896 0.000000000000 +vt 0.386135309935 0.147063747048 0.000000000000 +vt 0.387247562408 0.148301199079 0.000000000000 +vt 0.389312237501 0.145468518138 0.000000000000 +vt 0.390688598156 0.146293267608 0.000000000000 +vt 0.385713368654 0.152030900121 0.000000000000 +vt 0.405239045620 0.437882453203 0.000000000000 +vt 0.396997690201 0.430689215660 0.000000000000 +vt 0.392160445452 0.433128327131 0.000000000000 +vt 0.412164151669 0.424938082695 0.000000000000 +vt 0.406307399273 0.426028043032 0.000000000000 +vt 0.388458669186 0.149755924940 0.000000000000 +vt 0.391224920750 0.147718727589 0.000000000000 +vt 0.373405694962 0.142156943679 0.000000000000 +vt 0.377377659082 0.137248560786 0.000000000000 +vt 0.383390426636 0.134469017386 0.000000000000 +vt 0.387974828482 0.136217564344 0.000000000000 +vt 0.374564796686 0.146659821272 0.000000000000 +vt 0.394345581532 0.144419968128 0.000000000000 +vt 0.381775170565 0.154543623328 0.000000000000 +vt 0.393369078636 0.155557274818 0.000000000000 +vt 0.391563802958 0.156876459718 0.000000000000 +vt 0.390937179327 0.156117007136 0.000000000000 +vt 0.392488509417 0.154420018196 0.000000000000 +vt 0.395006179810 0.154078006744 0.000000000000 +vt 0.394348293543 0.153221741319 0.000000000000 +vt 0.396971106529 0.159922137856 0.000000000000 +vt 0.391263425350 0.161551579833 0.000000000000 +vt 0.391377806664 0.158593714237 0.000000000000 +vt 0.394818872213 0.157320469618 0.000000000000 +vt 0.389807134867 0.156631037593 0.000000000000 +vt 0.391787588596 0.153602257371 0.000000000000 +vt 0.395006865263 0.152312338352 0.000000000000 +vt 0.401779532433 0.428116351366 0.000000000000 +vt 0.452458798885 0.462447345257 0.000000000000 +vt 0.452626556158 0.465537369251 0.000000000000 +vt 0.459379166365 0.476943254471 0.000000000000 +vt 0.462601810694 0.480663985014 0.000000000000 +vt 0.455803722143 0.471922338009 0.000000000000 +vt 0.479603260756 0.461800038815 0.000000000000 +vt 0.477074772120 0.461461395025 0.000000000000 +vt 0.399524837732 0.154673993587 0.000000000000 +vt 0.396705895662 0.154279291630 0.000000000000 +vt 0.475300759077 0.459207594395 0.000000000000 +vt 0.477906495333 0.457540988922 0.000000000000 +vt 0.473629444838 0.457062989473 0.000000000000 +vt 0.474505990744 0.454424381256 0.000000000000 +vt 0.457420319319 0.456922262907 0.000000000000 +vt 0.460104405880 0.454761892557 0.000000000000 +vt 0.463730514050 0.459742784500 0.000000000000 +vt 0.461280167103 0.461182653904 0.000000000000 +vt 0.469485044479 0.469264149666 0.000000000000 +vt 0.472566455603 0.474419951439 0.000000000000 +vt 0.469833135605 0.475842684507 0.000000000000 +vt 0.467271775007 0.470811873674 0.000000000000 +vt 0.464453041553 0.465783476830 0.000000000000 +vt 0.371207743883 0.139285087585 0.000000000000 +vt 0.356069415808 0.140628591180 0.000000000000 +vt 0.466606199741 0.464368134737 0.000000000000 +vt 0.466347038746 0.452607154846 0.000000000000 +vt 0.470105797052 0.452469378710 0.000000000000 +vt 0.471197992563 0.457316517830 0.000000000000 +vt 0.468378633261 0.458023726940 0.000000000000 +vt 0.475411504507 0.463598579168 0.000000000000 +vt 0.478970795870 0.466784060001 0.000000000000 +vt 0.476854532957 0.469994544983 0.000000000000 +vt 0.473139971495 0.465840876102 0.000000000000 +vt 0.470534920692 0.462002217770 0.000000000000 +vt 0.361092180014 0.138868093491 0.000000000000 +vt 0.362757891417 0.141520425677 0.000000000000 +vt 0.473011165857 0.460577666759 0.000000000000 +vt 0.458834081888 0.463209271431 0.000000000000 +vt 0.456127494574 0.464871376753 0.000000000000 +vt 0.453364372253 0.461712449789 0.000000000000 +vt 0.455975264311 0.460149645805 0.000000000000 +vt 0.466653943062 0.476451963186 0.000000000000 +vt 0.464873641729 0.479033142328 0.000000000000 +vt 0.462096124887 0.474372893572 0.000000000000 +vt 0.464624851942 0.472282111645 0.000000000000 +vt 0.459239572287 0.469601660967 0.000000000000 +vt 0.358396410942 0.143731668591 0.000000000000 +vt 0.366143107414 0.136179968715 0.000000000000 +vt 0.367462068796 0.140748366714 0.000000000000 +vt 0.367624849081 0.152154952288 0.000000000000 +vt 0.363851904869 0.154144421220 0.000000000000 +vt 0.362488389015 0.151757776737 0.000000000000 +vt 0.366743355989 0.150309801102 0.000000000000 +vt 0.370945870876 0.149034306407 0.000000000000 +vt 0.371946483850 0.151283830404 0.000000000000 +vt 0.461986482143 0.467537879944 0.000000000000 +vt 0.466021031141 0.459026336670 0.000000000000 +vt 0.463648796082 0.454296290874 0.000000000000 +vt 0.474090546370 0.471629172564 0.000000000000 +vt 0.471038132906 0.467538326979 0.000000000000 +vt 0.369695812464 0.157271832228 0.000000000000 +vt 0.370106279850 0.158484742045 0.000000000000 +vt 0.366340100765 0.161045432091 0.000000000000 +vt 0.365696161985 0.158691659570 0.000000000000 +vt 0.374921888113 0.158001109958 0.000000000000 +vt 0.373830109835 0.155684486032 0.000000000000 +vt 0.362566053867 0.147848188877 0.000000000000 +vt 0.362277865410 0.146466180682 0.000000000000 +vt 0.364509135485 0.145325541496 0.000000000000 +vt 0.365181237459 0.146691560745 0.000000000000 +vt 0.366957485676 0.145109176636 0.000000000000 +vt 0.367903143167 0.146292820573 0.000000000000 +vt 0.363559901714 0.149057939649 0.000000000000 +vt 0.365885078907 0.148352980614 0.000000000000 +vt 0.368204176426 0.147704318166 0.000000000000 +vt 0.366324573755 0.155576184392 0.000000000000 +vt 0.366173952818 0.154380381107 0.000000000000 +vt 0.368186831474 0.153372362256 0.000000000000 +vt 0.368705600500 0.154601037502 0.000000000000 +vt 0.370330303907 0.152888730168 0.000000000000 +vt 0.371147632599 0.153870403767 0.000000000000 +vt 0.367092341185 0.156595915556 0.000000000000 +vt 0.369238078594 0.155905812979 0.000000000000 +vt 0.371273934841 0.155043467879 0.000000000000 +vt 0.359594911337 0.146293044090 0.000000000000 +vt 0.363820612431 0.143866091967 0.000000000000 +vt 0.368623167276 0.143500894308 0.000000000000 +vt 0.468312889338 0.463350683451 0.000000000000 +vt 0.396901309490 0.467744559050 0.000000000000 +vt 0.401809483767 0.467451632023 0.000000000000 +vt 0.371416240931 0.146074414253 0.000000000000 +vt 0.359569907188 0.149919614196 0.000000000000 +vt 0.374465495348 0.153269469738 0.000000000000 +vt 0.414790123701 0.478396862745 0.000000000000 +vt 0.447205245495 0.489582329988 0.000000000000 +vt 0.452684849501 0.491852372885 0.000000000000 +vt 0.449784398079 0.494581252337 0.000000000000 +vt 0.442751228809 0.493985742331 0.000000000000 +vt 0.434156626463 0.494034796953 0.000000000000 +vt 0.440118283033 0.488046973944 0.000000000000 +vt 0.434461027384 0.500024855137 0.000000000000 +vt 0.430395841599 0.501698195934 0.000000000000 +vt 0.425874501467 0.499181836843 0.000000000000 +vt 0.446397393942 0.499464601278 0.000000000000 +vt 0.440220713615 0.499364227057 0.000000000000 +vt 0.434654891491 0.512679457664 0.000000000000 +vt 0.435968428850 0.511407136917 0.000000000000 +vt 0.443066686392 0.505874812603 0.000000000000 +vt 0.438906043768 0.505390286446 0.000000000000 +vt 0.439353436232 0.502900302410 0.000000000000 +vt 0.444775164127 0.503243684769 0.000000000000 +vt 0.435113310814 0.505446374416 0.000000000000 +vt 0.434737980366 0.503206968307 0.000000000000 +vt 0.447127133608 0.507210433483 0.000000000000 +vt 0.449805349112 0.505035459995 0.000000000000 +vt 0.363566637039 0.157027080655 0.000000000000 +vt 0.371184110641 0.161255732179 0.000000000000 +vt 0.431567996740 0.505946636200 0.000000000000 +vt 0.430854707956 0.504090666771 0.000000000000 +vt 0.369521766901 0.161624297500 0.000000000000 +vt 0.369182020426 0.160728856921 0.000000000000 +vt 0.370721399784 0.159941717982 0.000000000000 +vt 0.372713804245 0.160549417138 0.000000000000 +vt 0.372284442186 0.159536883235 0.000000000000 +vt 0.372968226671 0.165679350495 0.000000000000 +vt 0.452052175999 0.500936031342 0.000000000000 +vt 0.368058949709 0.165135830641 0.000000000000 +vt 0.368970602751 0.162820771337 0.000000000000 +vt 0.371845602989 0.162883594632 0.000000000000 +vt 0.368251889944 0.160784929991 0.000000000000 +vt 0.370353937149 0.159135669470 0.000000000000 +vt 0.440568357706 0.509817063808 0.000000000000 +vt 0.437990337610 0.509382963181 0.000000000000 +vt 0.435604155064 0.509494423866 0.000000000000 +vt 0.443635433912 0.511720776558 0.000000000000 +vt 0.373006284237 0.158982783556 0.000000000000 +vt 0.376509696245 0.162375643849 0.000000000000 +vt 0.374031394720 0.161057814956 0.000000000000 +vt 0.389625668526 0.108183041215 0.000000000000 +vt 0.393046200275 0.109792903066 0.000000000000 +vt 0.392523407936 0.116342663765 0.000000000000 +vt 0.432401984930 0.510016977787 0.000000000000 +vt 0.438322216272 0.506984829903 0.000000000000 +vt 0.441790044308 0.507623851299 0.000000000000 +vt 0.435307621956 0.507277548313 0.000000000000 +vt 0.444958448410 0.509229838848 0.000000000000 +vt 0.392005532980 0.101636424661 0.000000000000 +vt 0.395671516657 0.103756263852 0.000000000000 +vt 0.407296061516 0.115123912692 0.000000000000 +vt 0.406397461891 0.121328055859 0.000000000000 +vt 0.403196871281 0.120348632336 0.000000000000 +vt 0.404978096485 0.114345774055 0.000000000000 +vt 0.432492733002 0.507707357407 0.000000000000 +vt 0.406864881516 0.108425304294 0.000000000000 +vt 0.409913033247 0.109619542956 0.000000000000 +vt 0.414692848921 0.117440745234 0.000000000000 +vt 0.416797161102 0.118163943291 0.000000000000 +vt 0.416874825954 0.124142721295 0.000000000000 +vt 0.413157969713 0.123205170035 0.000000000000 +vt 0.420296519995 0.113394036889 0.000000000000 +vt 0.416648089886 0.111873343587 0.000000000000 +vt 0.399549156427 0.117066100240 0.000000000000 +vt 0.397761642933 0.115746006370 0.000000000000 +vt 0.444640964270 0.482646912336 0.000000000000 +vt 0.435251086950 0.480776757002 0.000000000000 +vt 0.412997663021 0.489607781172 0.000000000000 +vt 0.415611475706 0.485968559980 0.000000000000 +vt 0.419600337744 0.489331930876 0.000000000000 +vt 0.418021112680 0.495383232832 0.000000000000 +vt 0.418760269880 0.480955928564 0.000000000000 +vt 0.451327174902 0.485552281141 0.000000000000 +vt 0.397986561060 0.111830547452 0.000000000000 +vt 0.400141090155 0.112691327929 0.000000000000 +vt 0.399654954672 0.108637854457 0.000000000000 +vt 0.401813089848 0.108847483993 0.000000000000 +vt 0.401618987322 0.117125526071 0.000000000000 +vt 0.402521193027 0.113518998027 0.000000000000 +vt 0.403585493565 0.110106542706 0.000000000000 +vt 0.409883081913 0.119960919023 0.000000000000 +vt 0.455791562796 0.489336222410 0.000000000000 +vt 0.422770082951 0.483635991812 0.000000000000 +vt 0.423145622015 0.491761177778 0.000000000000 +vt 0.408528327942 0.119000181556 0.000000000000 +vt 0.408956587315 0.115644469857 0.000000000000 +vt 0.410606950521 0.116135522723 0.000000000000 +vt 0.410386979580 0.112677589059 0.000000000000 +vt 0.421489149332 0.498041182756 0.000000000000 +vt 0.426815658808 0.486486226320 0.000000000000 +vt 0.430106759071 0.489818543196 0.000000000000 +vt 0.434814959764 0.486344844103 0.000000000000 +vt 0.426011174917 0.493239969015 0.000000000000 +vt 0.405869930983 0.480812519789 0.000000000000 +vt 0.412047952414 0.112628281116 0.000000000000 +vt 0.406924337149 0.485618025064 0.000000000000 +vt 0.401090562344 0.475320100784 0.000000000000 +vt 0.396311402321 0.475648850203 0.000000000000 +vt 0.411765158176 0.482897728682 0.000000000000 +vt 0.409521043301 0.480445533991 0.000000000000 +vt 0.453219145536 0.496879428625 0.000000000000 +vt 0.411550819874 0.119953945279 0.000000000000 +vt 0.412490606308 0.116729035974 0.000000000000 +vt 0.413484215736 0.113597795367 0.000000000000 +vt 0.395627617836 0.118285313249 0.000000000000 +vt 0.396080166101 0.111090466380 0.000000000000 +vt 0.399283915758 0.105090305209 0.000000000000 +vt 0.404269516468 0.104768797755 0.000000000000 +vt 0.398505777121 0.120832040906 0.000000000000 +vt 0.413978666067 0.108735352755 0.000000000000 +vt 0.409310519695 0.124303475022 0.000000000000 +vt 0.420999675989 0.119554504752 0.000000000000 +vt 0.420234143734 0.121525302529 0.000000000000 +vt 0.419045567513 0.121159419417 0.000000000000 +vt 0.419289410114 0.118994310498 0.000000000000 +vt 0.421489626169 0.117538690567 0.000000000000 +vt 0.420303285122 0.117139488459 0.000000000000 +vt 0.426694989204 0.121457740664 0.000000000000 +vt 0.422340482473 0.125688865781 0.000000000000 +vt 0.420924037695 0.122998699546 0.000000000000 +vt 0.423304349184 0.120309680700 0.000000000000 +vt 0.418264955282 0.122074902058 0.000000000000 +vt 0.417998820543 0.118570342660 0.000000000000 +vt 0.420178323984 0.115989848971 0.000000000000 +vt 0.425800204277 0.115537062287 0.000000000000 +vt 0.423050165176 0.116810753942 0.000000000000 +vt 0.377677112818 0.108308449388 0.000000000000 +vt 0.380777746439 0.100671857595 0.000000000000 +vt 0.387641370296 0.097277656198 0.000000000000 +vt 0.368460386992 0.119178041816 0.000000000000 +vt 0.370848834515 0.112134292722 0.000000000000 +vt 0.361701697111 0.122205942869 0.000000000000 +vt 0.350305467844 0.135973051190 0.000000000000 +vt 0.358212679625 0.109973028302 0.000000000000 +vt 0.353615224361 0.114691153169 0.000000000000 +vt 0.374976605177 0.093655571342 0.000000000000 +vt 0.389860272408 0.064062759280 0.000000000000 +vt 0.392403393984 0.070562094450 0.000000000000 +vt 0.387591153383 0.070836335421 0.000000000000 +vt 0.386600703001 0.064674735069 0.000000000000 +vt 0.390128880739 0.057090383023 0.000000000000 +vt 0.385809719563 0.057704154402 0.000000000000 +vt 0.381569832563 0.070360124111 0.000000000000 +vt 0.378056943417 0.070291683078 0.000000000000 +vt 0.376780331135 0.065116941929 0.000000000000 +vt 0.571491539478 0.142689660192 0.000000000000 +vt 0.576072752476 0.124807611108 0.000000000000 +vt 0.575986921787 0.141870543361 0.000000000000 +vt 0.787393748760 0.876816630363 0.000000000000 +vt 0.764766037464 0.871043145657 0.000000000000 +vt 0.754721701145 0.886201500893 0.000000000000 +vt 0.742770016193 0.866340160370 0.000000000000 +vt 0.734950125217 0.879857540131 0.000000000000 +vt 0.639134943485 0.405957043171 0.000000000000 +vt 0.626996815205 0.399863898754 0.000000000000 +vt 0.634920418262 0.394428640604 0.000000000000 +vt 0.639219582081 0.397930711508 0.000000000000 +vt 0.634795248508 0.383935958147 0.000000000000 +vt 0.643223226070 0.392979323864 0.000000000000 +vt 0.621101796627 0.387013614178 0.000000000000 +vt 0.588396847248 0.330318629742 0.000000000000 +vt 0.604378163815 0.331369876862 0.000000000000 +vt 0.613536059856 0.349697083235 0.000000000000 +vt 0.593470990658 0.343456894159 0.000000000000 +vt 0.615174353123 0.332106143236 0.000000000000 +vt 0.627085506916 0.345775991678 0.000000000000 +vt 0.635642707348 0.359163492918 0.000000000000 +vt 0.624931395054 0.369269371033 0.000000000000 +vt 0.614598810673 0.373340398073 0.000000000000 +vt 0.608756959438 0.360698610544 0.000000000000 +vt 0.595678865910 0.357187539339 0.000000000000 +vt 0.436208903790 0.152205392718 0.000000000000 +vt 0.456390678883 0.160455301404 0.000000000000 +vt 0.470007836819 0.150451436639 0.000000000000 +vt 0.463308125734 0.141743332148 0.000000000000 +vt 0.426335632801 0.240489169955 0.000000000000 +vt 0.436077862978 0.227415770292 0.000000000000 +vt 0.568314850330 0.508301794529 0.000000000000 +vt 0.585736811161 0.522079706192 0.000000000000 +vt 0.563862621784 0.526518404484 0.000000000000 +vt 0.552698671818 0.519208967686 0.000000000000 +vt 0.611942946911 0.313467800617 0.000000000000 +vt 0.543040931225 0.535523951054 0.000000000000 +vt 0.869499862194 0.252641230822 0.000000000000 +vt 0.794922888279 0.858771979809 0.000000000000 +vt 0.771254837513 0.855260670185 0.000000000000 +vt 0.747811377048 0.852186858654 0.000000000000 +vt 0.797975599766 0.840329766273 0.000000000000 +vt 0.773927867413 0.839067518711 0.000000000000 +vt 0.750024020672 0.837795853615 0.000000000000 +vt 0.816554009914 0.862926125526 0.000000000000 +vt 0.819631397724 0.841430306435 0.000000000000 +vt 0.863419592381 0.971586704254 0.000000000000 +vt 0.886208474636 0.956715881824 0.000000000000 +vt 0.845495879650 0.192380949855 0.000000000000 +vt 0.921158373356 0.909126162529 0.000000000000 +vt 0.928987085819 0.927418887615 0.000000000000 +vt 0.914810121059 0.888543367386 0.000000000000 +vt 0.449255734682 0.250441461802 0.000000000000 +vt 0.429135203362 0.255882352591 0.000000000000 +vt 0.454719811678 0.222426101565 0.000000000000 +vt 0.463549941778 0.236386403441 0.000000000000 +vt 0.480748862028 0.132810741663 0.000000000000 +vt 0.460707813501 0.129074752331 0.000000000000 +vt 0.890980184078 0.866303682327 0.000000000000 +vt 0.906893670559 0.863792300224 0.000000000000 +vt 0.901800453663 0.838266909122 0.000000000000 +vt 0.885961711407 0.839472353458 0.000000000000 +vt 0.672634780407 0.403682291508 0.000000000000 +vt 0.870305716991 0.840758919716 0.000000000000 +vt 0.709015905857 0.913828730583 0.000000000000 +vt 0.702005445957 0.906553089619 0.000000000000 +vt 0.664313495159 0.411870300770 0.000000000000 +vt 0.651246488094 0.405295312405 0.000000000000 +vt 0.658828794956 0.392099201679 0.000000000000 +vt 0.648704469204 0.380986869335 0.000000000000 +vt 0.598465621471 0.371364206076 0.000000000000 +vt 0.649795591831 0.422901540995 0.000000000000 +vt 0.666176021099 0.425574362278 0.000000000000 +vt 0.478667050600 0.121633604169 0.000000000000 +vt 0.439155727625 0.188678041101 0.000000000000 +vt 0.419110178947 0.186491340399 0.000000000000 +vt 0.828646361828 0.222074419260 0.000000000000 +vt 0.825475156307 0.193224608898 0.000000000000 +vt 0.842488110065 0.165252909064 0.000000000000 +vt 0.821768820286 0.166762799025 0.000000000000 +vt 0.836636006832 0.816951870918 0.000000000000 +vt 0.852425515652 0.813404560089 0.000000000000 +vt 0.638719737530 0.461908787489 0.000000000000 +vt 0.645538747311 0.442247092724 0.000000000000 +vt 0.666097700596 0.445383280516 0.000000000000 +vt 0.662395417690 0.464661508799 0.000000000000 +vt 0.617127835751 0.458045125008 0.000000000000 +vt 0.627697288990 0.440409153700 0.000000000000 +vt 0.635399162769 0.421377927065 0.000000000000 +vt 0.609715163708 0.435786485672 0.000000000000 +vt 0.619829595089 0.417641699314 0.000000000000 +vt 0.590706527233 0.430238008499 0.000000000000 +vt 0.600633800030 0.414015561342 0.000000000000 +vt 0.605100929737 0.397916287184 0.000000000000 +vt 0.580789983273 0.413832962513 0.000000000000 +vt 0.585207521915 0.396601408720 0.000000000000 +vt 0.583855688572 0.381996691227 0.000000000000 +vt 0.602939188480 0.384962439537 0.000000000000 +vt 0.583396375179 0.371497720480 0.000000000000 +vt 0.567030251026 0.398448109627 0.000000000000 +vt 0.565822064877 0.380739450455 0.000000000000 +vt 0.565940558910 0.366790413857 0.000000000000 +vt 0.546947419643 0.397279322147 0.000000000000 +vt 0.547453343868 0.381623625755 0.000000000000 +vt 0.546291291714 0.366621524096 0.000000000000 +vt 0.529646694660 0.384682595730 0.000000000000 +vt 0.528711616993 0.373113870621 0.000000000000 +vt 0.526230156422 0.363655120134 0.000000000000 +vt 0.543110311031 0.353565901518 0.000000000000 +vt 0.560514271259 0.346006095409 0.000000000000 +vt 0.521848142147 0.354256451130 0.000000000000 +vt 0.537153065205 0.340497672558 0.000000000000 +vt 0.550614297390 0.329262435436 0.000000000000 +vt 0.573693096638 0.334259301424 0.000000000000 +vt 0.565188109875 0.321530610323 0.000000000000 +vt 0.481604665518 0.473584860563 0.000000000000 +vt 0.503952205181 0.484111279249 0.000000000000 +vt 0.523758590221 0.503893256187 0.000000000000 +vt 0.516087591648 0.344791620970 0.000000000000 +vt 0.508227407932 0.335609555244 0.000000000000 +vt 0.518797814846 0.319672405720 0.000000000000 +vt 0.510983765125 0.468507856131 0.000000000000 +vt 0.490077227354 0.435670107603 0.000000000000 +vt 0.502925693989 0.448421299458 0.000000000000 +vt 0.522674977779 0.457363337278 0.000000000000 +vt 0.530655562878 0.477804929018 0.000000000000 +vt 0.538420259953 0.463601946831 0.000000000000 +vt 0.515796720982 0.440703213215 0.000000000000 +vt 0.534934461117 0.448625057936 0.000000000000 +vt 0.549823939800 0.452839523554 0.000000000000 +vt 0.557107031345 0.466927945614 0.000000000000 +vt 0.568541586399 0.456593096256 0.000000000000 +vt 0.547232806683 0.441114574671 0.000000000000 +vt 0.561775863171 0.442336261272 0.000000000000 +vt 0.578855931759 0.444288581610 0.000000000000 +vt 0.586479246616 0.463815152645 0.000000000000 +vt 0.597201764584 0.451105147600 0.000000000000 +vt 0.571721136570 0.429578959942 0.000000000000 +vt 0.557132422924 0.430043905973 0.000000000000 +vt 0.564029395580 0.415538519621 0.000000000000 +vt 0.537347137928 0.424302697182 0.000000000000 +vt 0.544077932835 0.411527603865 0.000000000000 +vt 0.518473088741 0.418114066124 0.000000000000 +vt 0.524959385395 0.408595174551 0.000000000000 +vt 0.528635084629 0.397043138742 0.000000000000 +vt 0.509449779987 0.404620736837 0.000000000000 +vt 0.513173401356 0.395612955093 0.000000000000 +vt 0.514248788357 0.385702759027 0.000000000000 +vt 0.513777077198 0.377086073160 0.000000000000 +vt 0.512884557247 0.370190680027 0.000000000000 +vt 0.510034501553 0.363916963339 0.000000000000 +vt 0.505580484867 0.356326758862 0.000000000000 +vt 0.500341594219 0.348006844521 0.000000000000 +vt 0.481183856726 0.423593431711 0.000000000000 +vt 0.500625789165 0.430742353201 0.000000000000 +vt 0.490146607161 0.420840919018 0.000000000000 +vt 0.498169153929 0.417084664106 0.000000000000 +vt 0.510002553463 0.425448060036 0.000000000000 +vt 0.527178347111 0.433869749308 0.000000000000 +vt 0.503946959972 0.411769419909 0.000000000000 +vt 0.596737325191 0.484501451254 0.000000000000 +vt 0.576489269733 0.474731117487 0.000000000000 +vt 0.606985628605 0.472689867020 0.000000000000 +vt 0.584141671658 0.495642870665 0.000000000000 +vt 0.563076555729 0.485377997160 0.000000000000 +vt 0.546334922314 0.479332834482 0.000000000000 +vt 0.550337493420 0.497008413076 0.000000000000 +vt 0.537908732891 0.494894415140 0.000000000000 +vt 0.526974737644 0.490041226149 0.000000000000 +vt 0.537790954113 0.509640336037 0.000000000000 +vt 0.527427136898 0.525675892830 0.000000000000 +vt 0.605959832668 0.507260859013 0.000000000000 +vt 0.620633423328 0.493587821722 0.000000000000 +vt 0.631438195705 0.478594750166 0.000000000000 +vt 0.817847788334 0.142355754972 0.000000000000 +vt 0.814487040043 0.119411304593 0.000000000000 +vt 0.658278763294 0.481082051992 0.000000000000 +vt 0.811750113964 0.097056999803 0.000000000000 +vt 0.809368431568 0.075157731771 0.000000000000 +vt 0.807133018970 0.053564000875 0.000000000000 +vt 0.831686437130 0.254841685295 0.000000000000 +vt 0.856208741665 0.293983995914 0.000000000000 +vt 0.835455358028 0.290136784315 0.000000000000 +vt 0.873124063015 0.283648252487 0.000000000000 +vt 0.889739573002 0.279546380043 0.000000000000 +vt 0.909207642078 0.276814579964 0.000000000000 +vt 0.929072201252 0.276617109776 0.000000000000 +vt 0.884098351002 0.044427882880 0.000000000000 +vt 0.824312150478 0.028333339840 0.000000000000 +vt 0.804996788502 0.032941136509 0.000000000000 +vt 0.745384037495 0.153986141086 0.000000000000 +vt 0.727315604687 0.170344561338 0.000000000000 +vt 0.831523954868 0.792076110840 0.000000000000 +vt 0.846453726292 0.786361873150 0.000000000000 +vt 0.871971428394 0.766853511333 0.000000000000 +vt 0.860507428646 0.778107702732 0.000000000000 +vt 0.849813520908 0.750272214413 0.000000000000 +vt 0.864782273769 0.752571046352 0.000000000000 +vt 0.641757309437 0.369858145714 0.000000000000 +vt 0.871010005474 0.740061163902 0.000000000000 +vt 0.856036365032 0.728532135487 0.000000000000 +vt 0.833810746670 0.763259589672 0.000000000000 +vt 0.880542218685 0.781249523163 0.000000000000 +vt 0.870216548443 0.805862307549 0.000000000000 +vt 0.895947515965 0.765040814877 0.000000000000 +vt 0.886363804340 0.766362249851 0.000000000000 +vt 0.881665766239 0.753908455372 0.000000000000 +vt 0.896844565868 0.741948008537 0.000000000000 +vt 0.892329037189 0.786806523800 0.000000000000 +vt 0.730150520802 0.779693901539 0.000000000000 +vt 0.720385253429 0.768897235394 0.000000000000 +vt 0.732248246670 0.757981956005 0.000000000000 +vt 0.746850073338 0.773370444775 0.000000000000 +vt 0.746807038784 0.737674295902 0.000000000000 +vt 0.754076421261 0.750202596188 0.000000000000 +vt 0.729847013950 0.741506457329 0.000000000000 +vt 0.766269385815 0.766434729099 0.000000000000 +vt 0.732167899609 0.725132286549 0.000000000000 +vt 0.744101583958 0.727173089981 0.000000000000 +vt 0.726897180080 0.154936745763 0.000000000000 +vt 0.736608207226 0.138647675514 0.000000000000 +vt 0.757733404636 0.048427533358 0.000000000000 +vt 0.748305857182 0.039854753762 0.000000000000 +vt 0.762275159359 0.025697443634 0.000000000000 +vt 0.771673381329 0.029945448041 0.000000000000 +vt 0.737863123417 0.066377580166 0.000000000000 +vt 0.730143487453 0.052494283766 0.000000000000 +vt 0.754568159580 0.099855229259 0.000000000000 +vt 0.731352865696 0.116734221578 0.000000000000 +vt 0.725217759609 0.099748730659 0.000000000000 +vt 0.746904551983 0.081010863185 0.000000000000 +vt 0.718968212605 0.084019616246 0.000000000000 +vt 0.786774814129 0.105366572738 0.000000000000 +vt 0.761492788792 0.119630172849 0.000000000000 +vt 0.781676113605 0.084223598242 0.000000000000 +vt 0.775007426739 0.059413980693 0.000000000000 +vt 0.791212141514 0.126294299960 0.000000000000 +vt 0.767748415470 0.138232484460 0.000000000000 +vt 0.435300618410 0.206924617290 0.000000000000 +vt 0.415769994259 0.205245867372 0.000000000000 +vt 0.415477305651 0.223549634218 0.000000000000 +vt 0.415708750486 0.260153979063 0.000000000000 +vt 0.415216326714 0.241337999701 0.000000000000 +vt 0.431532442570 0.277840822935 0.000000000000 +vt 0.416861325502 0.282650142908 0.000000000000 +vt 0.437933146954 0.297910034657 0.000000000000 +vt 0.422700941563 0.304020076990 0.000000000000 +vt 0.710437953472 0.745294928551 0.000000000000 +vt 0.448528498411 0.274154812098 0.000000000000 +vt 0.453730016947 0.292313814163 0.000000000000 +vt 0.466458499432 0.272584140301 0.000000000000 +vt 0.470066845417 0.288187146187 0.000000000000 +vt 0.483627885580 0.271198511124 0.000000000000 +vt 0.486174434423 0.284226238728 0.000000000000 +vt 0.468398451805 0.256950020790 0.000000000000 +vt 0.484410136938 0.259565204382 0.000000000000 +vt 0.499547928572 0.260835975409 0.000000000000 +vt 0.488594621420 0.251296162605 0.000000000000 +vt 0.500861465931 0.255602240562 0.000000000000 +vt 0.476949125528 0.155961647630 0.000000000000 +vt 0.496368080378 0.154256105423 0.000000000000 +vt 0.493585199118 0.162589550018 0.000000000000 +vt 0.484565943480 0.159969419241 0.000000000000 +vt 0.504522025585 0.250607877970 0.000000000000 +vt 0.490841835737 0.170824587345 0.000000000000 +vt 0.479497641325 0.168406203389 0.000000000000 +vt 0.468820154667 0.165049582720 0.000000000000 +vt 0.487937420607 0.179314747453 0.000000000000 +vt 0.474618524313 0.178034290671 0.000000000000 +vt 0.461312592030 0.176021173596 0.000000000000 +vt 0.485546678305 0.188977956772 0.000000000000 +vt 0.470588952303 0.189741462469 0.000000000000 +vt 0.455546349287 0.189690113068 0.000000000000 +vt 0.484867841005 0.200385212898 0.000000000000 +vt 0.468716144562 0.203217670321 0.000000000000 +vt 0.452557861805 0.205941826105 0.000000000000 +vt 0.486695379019 0.212983325124 0.000000000000 +vt 0.470563501120 0.217475160956 0.000000000000 +vt 0.498891204596 0.197758778930 0.000000000000 +vt 0.500793755054 0.208588525653 0.000000000000 +vt 0.503768861294 0.215860128403 0.000000000000 +vt 0.490694373846 0.221827194095 0.000000000000 +vt 0.476610749960 0.228770300746 0.000000000000 +vt 0.508271515369 0.222307890654 0.000000000000 +vt 0.496900588274 0.229248985648 0.000000000000 +vt 0.485334604979 0.237566873431 0.000000000000 +vt 0.505223691463 0.237320348620 0.000000000000 +vt 0.495418399572 0.244713291526 0.000000000000 +vt 0.475383609533 0.245258644223 0.000000000000 +vt 0.514443337917 0.230237171054 0.000000000000 +vt 0.519902884960 0.237665936351 0.000000000000 +vt 0.511179625988 0.154767423868 0.000000000000 +vt 0.523703515530 0.224226221442 0.000000000000 +vt 0.534955561161 0.219976648688 0.000000000000 +vt 0.539630472660 0.226309135556 0.000000000000 +vt 0.522125780582 0.163012161851 0.000000000000 +vt 0.511400759220 0.162948891521 0.000000000000 +vt 0.502651274204 0.163395151496 0.000000000000 +vt 0.521724998951 0.170782491565 0.000000000000 +vt 0.510841667652 0.171353936195 0.000000000000 +vt 0.501311361790 0.171751782298 0.000000000000 +vt 0.521135985851 0.178479418159 0.000000000000 +vt 0.510029613972 0.179412469268 0.000000000000 +vt 0.499761670828 0.179692775011 0.000000000000 +vt 0.521464765072 0.184219524264 0.000000000000 +vt 0.509710252285 0.186720550060 0.000000000000 +vt 0.498645514250 0.187971740961 0.000000000000 +vt 0.522567331791 0.189815983176 0.000000000000 +vt 0.510646045208 0.194714680314 0.000000000000 +vt 0.552625119686 0.181308269501 0.000000000000 +vt 0.553095877171 0.186058148742 0.000000000000 +vt 0.535693705082 0.186998158693 0.000000000000 +vt 0.534666717052 0.182170838118 0.000000000000 +vt 0.553785145283 0.190441906452 0.000000000000 +vt 0.537737786770 0.193066775799 0.000000000000 +vt 0.524687230587 0.197172924876 0.000000000000 +vt 0.554820120335 0.194571927190 0.000000000000 +vt 0.540497124195 0.200262054801 0.000000000000 +vt 0.527609050274 0.205128788948 0.000000000000 +vt 0.556690990925 0.198639363050 0.000000000000 +vt 0.543533384800 0.206711396575 0.000000000000 +vt 0.531002581120 0.212646707892 0.000000000000 +vt 0.558761537075 0.202166423202 0.000000000000 +vt 0.546805322170 0.212670803070 0.000000000000 +vt 0.550771892071 0.218399211764 0.000000000000 +vt 0.561493337154 0.206085249782 0.000000000000 +vt 0.535221517086 0.163484767079 0.000000000000 +vt 0.552473127842 0.164653763175 0.000000000000 +vt 0.534547865391 0.169898986816 0.000000000000 +vt 0.552217543125 0.170028448105 0.000000000000 +vt 0.534365713596 0.176693260670 0.000000000000 +vt 0.552374064922 0.175845101476 0.000000000000 +vt 0.432602375746 0.133366212249 0.000000000000 +vt 0.579707443714 0.344648867846 0.000000000000 +vt 0.582962691784 0.359227657318 0.000000000000 +vt 0.699510276318 0.760418593884 0.000000000000 +vt 0.690002620220 0.760535240173 0.000000000000 +vt 0.573572456837 0.358697652817 0.000000000000 +vt 0.571034729481 0.348925471306 0.000000000000 +vt 0.795890152454 0.148126482964 0.000000000000 +vt 0.773672997952 0.158082619309 0.000000000000 +vt 0.761886537075 0.368884116411 0.000000000000 +vt 0.756864488125 0.374716073275 0.000000000000 +vt 0.752732694149 0.371530354023 0.000000000000 +vt 0.756020605564 0.368056684732 0.000000000000 +vt 0.745198905468 0.426691144705 0.000000000000 +vt 0.748513877392 0.424927502871 0.000000000000 +vt 0.751336514950 0.428736001253 0.000000000000 +vt 0.745641887188 0.430311173201 0.000000000000 +vt 0.718655884266 0.367600291967 0.000000000000 +vt 0.723707854748 0.362223118544 0.000000000000 +vt 0.731543242931 0.368654459715 0.000000000000 +vt 0.727982223034 0.373404115438 0.000000000000 +vt 0.723776161671 0.384299814701 0.000000000000 +vt 0.712015807629 0.382623314857 0.000000000000 +vt 0.714580357075 0.374560505152 0.000000000000 +vt 0.725447237492 0.378716200590 0.000000000000 +vt 0.743162930012 0.370530217886 0.000000000000 +vt 0.739214956760 0.374083191156 0.000000000000 +vt 0.736095726490 0.364764451981 0.000000000000 +vt 0.470379114151 0.072487622499 0.000000000000 +vt 0.476932018995 0.067091092467 0.000000000000 +vt 0.483967453241 0.075338751078 0.000000000000 +vt 0.477926939726 0.080794483423 0.000000000000 +vt 0.511079013348 0.066174268723 0.000000000000 +vt 0.508617579937 0.072203919291 0.000000000000 +vt 0.499857753515 0.062445472926 0.000000000000 +vt 0.504508316517 0.058762382716 0.000000000000 +vt 0.705864846706 0.371028959751 0.000000000000 +vt 0.701381266117 0.375573486090 0.000000000000 +vt 0.698225557804 0.370354384184 0.000000000000 +vt 0.697068870068 0.367405295372 0.000000000000 +vt 0.701902329922 0.391683101654 0.000000000000 +vt 0.691578447819 0.393901556730 0.000000000000 +vt 0.693959891796 0.392793804407 0.000000000000 +vt 0.699081957340 0.388415664434 0.000000000000 +vt 0.712482511997 0.363048106432 0.000000000000 +vt 0.706260859966 0.399656295776 0.000000000000 +vt 0.710350573063 0.390655279160 0.000000000000 +vt 0.709410727024 0.398413658142 0.000000000000 +vt 0.497506469488 0.086208790541 0.000000000000 +vt 0.499487847090 0.088523834944 0.000000000000 +vt 0.496975511312 0.090857118368 0.000000000000 +vt 0.494485110044 0.087826982141 0.000000000000 +vt 0.485454589128 0.095807611942 0.000000000000 +vt 0.487140089273 0.098796099424 0.000000000000 +vt 0.483731955290 0.100186884403 0.000000000000 +vt 0.481757134199 0.096767678857 0.000000000000 +vt 0.701098263264 0.382279485464 0.000000000000 +vt 0.704454600811 0.381990849972 0.000000000000 +vt 0.505547583103 0.089302882552 0.000000000000 +vt 0.507946908474 0.095191136003 0.000000000000 +vt 0.725627362728 0.354063272476 0.000000000000 +vt 0.730535089970 0.352071553469 0.000000000000 +vt 0.733845055103 0.356517255306 0.000000000000 +vt 0.729133427143 0.358981132507 0.000000000000 +vt 0.502358973026 0.098305702209 0.000000000000 +vt 0.499749034643 0.094421327114 0.000000000000 +vt 0.491939753294 0.100965470076 0.000000000000 +vt 0.499274820089 0.102383270860 0.000000000000 +vt 0.709335625172 0.404707193375 0.000000000000 +vt 0.707483947277 0.405635058880 0.000000000000 +vt 0.516392290592 0.069226473570 0.000000000000 +vt 0.518077909946 0.071355760098 0.000000000000 +vt 0.718284785748 0.355620443821 0.000000000000 +vt 0.516956746578 0.073715612292 0.000000000000 +vt 0.514483392239 0.070643588901 0.000000000000 +vt 0.668390452862 0.386624544859 0.000000000000 +vt 0.667060911655 0.380806088448 0.000000000000 +vt 0.671376407146 0.380861908197 0.000000000000 +vt 0.671312749386 0.384570688009 0.000000000000 +vt 0.669187486172 0.375094115734 0.000000000000 +vt 0.671998560429 0.377249538898 0.000000000000 +vt 0.691448748112 0.370133042336 0.000000000000 +vt 0.690848052502 0.375890284777 0.000000000000 +vt 0.686910808086 0.375525057316 0.000000000000 +vt 0.687306106091 0.369519740343 0.000000000000 +vt 0.686368644238 0.386486738920 0.000000000000 +vt 0.689943373203 0.386325776577 0.000000000000 +vt 0.688951313496 0.392648577690 0.000000000000 +vt 0.685665905476 0.393045514822 0.000000000000 +vt 0.690709650517 0.381118148565 0.000000000000 +vt 0.686853349209 0.380862385035 0.000000000000 +vt 0.480086654425 0.100869327784 0.000000000000 +vt 0.478839308023 0.098695233464 0.000000000000 +vt 0.678826630116 0.369220048189 0.000000000000 +vt 0.679812729359 0.375340670347 0.000000000000 +vt 0.675520837307 0.375914126635 0.000000000000 +vt 0.673433959484 0.370380729437 0.000000000000 +vt 0.674808919430 0.385995447636 0.000000000000 +vt 0.679343521595 0.386584460735 0.000000000000 +vt 0.678030192852 0.392984062433 0.000000000000 +vt 0.672598540783 0.391514003277 0.000000000000 +vt 0.680286943913 0.380828380585 0.000000000000 +vt 0.675836026669 0.380848854780 0.000000000000 +vt 0.515295088291 0.075423642993 0.000000000000 +vt 0.513281047344 0.073069870472 0.000000000000 +vt 0.693681657314 0.376642733812 0.000000000000 +vt 0.693711340427 0.371875762939 0.000000000000 +vt 0.696114480495 0.370918631554 0.000000000000 +vt 0.696933090687 0.376871287823 0.000000000000 +vt 0.691533505917 0.391513794661 0.000000000000 +vt 0.692914068699 0.386218369007 0.000000000000 +vt 0.695932805538 0.386784404516 0.000000000000 +vt 0.693213999271 0.392598807812 0.000000000000 +vt 0.693558990955 0.381606072187 0.000000000000 +vt 0.696726262569 0.381991982460 0.000000000000 +vt 0.512632310390 0.113346979022 0.000000000000 +vt 0.510703504086 0.110827267170 0.000000000000 +vt 0.515379965305 0.107007056475 0.000000000000 +vt 0.518175065517 0.110701844096 0.000000000000 +vt 0.505509078503 0.114236339927 0.000000000000 +vt 0.508307397366 0.117514595389 0.000000000000 +vt 0.518149077892 0.121353730559 0.000000000000 +vt 0.522928655148 0.117672875524 0.000000000000 +vt 0.525190651417 0.121514260769 0.000000000000 +vt 0.683571517467 0.375538796186 0.000000000000 +vt 0.683092653751 0.370623677969 0.000000000000 +vt 0.682278931141 0.392029613256 0.000000000000 +vt 0.683356225491 0.386358857155 0.000000000000 +vt 0.684057652950 0.380769610405 0.000000000000 +vt 0.519570291042 0.123483464122 0.000000000000 +vt 0.516307771206 0.128428325057 0.000000000000 +vt 0.513406455517 0.124672070146 0.000000000000 +vt 0.511565864086 0.103494629264 0.000000000000 +vt 0.507416427135 0.106189742684 0.000000000000 +vt 0.506013691425 0.103982776403 0.000000000000 +vt 0.509203732014 0.102665841579 0.000000000000 +vt 0.504296243191 0.108756288886 0.000000000000 +vt 0.503382742405 0.106384947896 0.000000000000 +vt 0.511651098728 0.106469616294 0.000000000000 +vt 0.509026229382 0.108525276184 0.000000000000 +vt 0.506196796894 0.110484585166 0.000000000000 +vt 0.518708407879 0.115314379334 0.000000000000 +vt 0.515459358692 0.117382884026 0.000000000000 +vt 0.514127433300 0.115409389138 0.000000000000 +vt 0.518203437328 0.112691774964 0.000000000000 +vt 0.512567102909 0.119688019156 0.000000000000 +vt 0.511780798435 0.117559626698 0.000000000000 +vt 0.519389688969 0.117316469550 0.000000000000 +vt 0.516777694225 0.119350507855 0.000000000000 +vt 0.514133274555 0.121143206954 0.000000000000 +vt 0.510631144047 0.099778667092 0.000000000000 +vt 0.504632174969 0.101817682385 0.000000000000 +vt 0.499871104956 0.106421664357 0.000000000000 +vt 0.500889837742 0.111934348941 0.000000000000 +vt 0.514839589596 0.101724907756 0.000000000000 +vt 0.509192049503 0.122385606170 0.000000000000 +vt 0.522657573223 0.113145455718 0.000000000000 +vt 0.522569835186 0.127797886729 0.000000000000 +vt 0.521396934986 0.126231938601 0.000000000000 +vt 0.735525667667 0.349380731583 0.000000000000 +vt 0.738029062748 0.353152751923 0.000000000000 +vt 0.709487140179 0.411515235901 0.000000000000 +vt 0.706850707531 0.412472575903 0.000000000000 +vt 0.713795721531 0.355628103018 0.000000000000 +vt 0.714886367321 0.349705845118 0.000000000000 +vt 0.715047299862 0.346170902252 0.000000000000 +vt 0.700704872608 0.366192162037 0.000000000000 +vt 0.705918371677 0.365258455276 0.000000000000 +vt 0.710480749607 0.361039042473 0.000000000000 +vt 0.523268878460 0.125216260552 0.000000000000 +vt 0.523997724056 0.126300171018 0.000000000000 +vt 0.687866628170 0.342219889164 0.000000000000 +vt 0.691187441349 0.337702393532 0.000000000000 +vt 0.693574011326 0.340425401926 0.000000000000 +vt 0.690801203251 0.342919677496 0.000000000000 +vt 0.696296155453 0.334926456213 0.000000000000 +vt 0.696642935276 0.338050007820 0.000000000000 +vt 0.711912453175 0.345587313175 0.000000000000 +vt 0.707153379917 0.348584800959 0.000000000000 +vt 0.704814493656 0.344684004784 0.000000000000 +vt 0.710185706615 0.341764390469 0.000000000000 +vt 0.695865690708 0.351892799139 0.000000000000 +vt 0.699073016644 0.355076700449 0.000000000000 +vt 0.695596873760 0.359068036079 0.000000000000 +vt 0.692301213741 0.356082707644 0.000000000000 +vt 0.702675044537 0.351823449135 0.000000000000 +vt 0.699874341488 0.348093301058 0.000000000000 +vt 0.520938813686 0.128895744681 0.000000000000 +vt 0.520082056522 0.127839773893 0.000000000000 +vt 0.705446422100 0.335541337729 0.000000000000 +vt 0.701623976231 0.340389162302 0.000000000000 +vt 0.699281990528 0.338887810707 0.000000000000 +vt 0.701398193836 0.333822280169 0.000000000000 +vt 0.691363513470 0.345513224602 0.000000000000 +vt 0.692718684673 0.347970575094 0.000000000000 +vt 0.688071906567 0.350903898478 0.000000000000 +vt 0.686495840549 0.347062766552 0.000000000000 +vt 0.697414934635 0.344720244408 0.000000000000 +vt 0.695644319057 0.342764317989 0.000000000000 +vt 0.526300132275 0.132303252816 0.000000000000 +vt 0.524093449116 0.129697531462 0.000000000000 +vt 0.709353864193 0.352346479893 0.000000000000 +vt 0.712929904461 0.348732739687 0.000000000000 +vt 0.714268267155 0.349192053080 0.000000000000 +vt 0.711979806423 0.354660391808 0.000000000000 +vt 0.699490010738 0.361016511917 0.000000000000 +vt 0.702696144581 0.358416646719 0.000000000000 +vt 0.704991638660 0.361978620291 0.000000000000 +vt 0.700050175190 0.364112406969 0.000000000000 +vt 0.705978453159 0.355808466673 0.000000000000 +vt 0.708694994450 0.358966708183 0.000000000000 +vt 0.525715887547 0.126499876380 0.000000000000 +vt 0.528771936893 0.126690357924 0.000000000000 +vt 0.523779094219 0.124067738652 0.000000000000 +vt 0.520451605320 0.124855801463 0.000000000000 +vt 0.518978536129 0.127953931689 0.000000000000 +vt 0.520814955235 0.130581036210 0.000000000000 +vt 0.520374357700 0.133407860994 0.000000000000 +vt 0.508442223072 0.077186152339 0.000000000000 +vt 0.510329902172 0.079375565052 0.000000000000 +vt 0.703039348125 0.342263132334 0.000000000000 +vt 0.707691013813 0.338801592588 0.000000000000 +vt 0.691107928753 0.352693885565 0.000000000000 +vt 0.694404184818 0.349684000015 0.000000000000 +vt 0.698663651943 0.346254229546 0.000000000000 +vt 0.508014619350 0.081564977765 0.000000000000 +vt 0.505533874035 0.078727111220 0.000000000000 +vt 0.494260638952 0.093220800161 0.000000000000 +vt 0.492302030325 0.090663939714 0.000000000000 +vt 0.505529224873 0.083532154560 0.000000000000 +vt 0.503514945507 0.081306725740 0.000000000000 +vt 0.510711610317 0.084656804800 0.000000000000 +vt 0.514165699482 0.088350698352 0.000000000000 +vt 0.511911690235 0.093188375235 0.000000000000 +vt 0.527652680874 0.098926231265 0.000000000000 +vt 0.525356113911 0.097472637892 0.000000000000 +vt 0.528094470501 0.091692224145 0.000000000000 +vt 0.531258046627 0.093997821212 0.000000000000 +vt 0.521796643734 0.102959886193 0.000000000000 +vt 0.525596559048 0.105276063085 0.000000000000 +vt 0.534857928753 0.104219183326 0.000000000000 +vt 0.537856757641 0.099045574665 0.000000000000 +vt 0.540888249874 0.101543441415 0.000000000000 +vt 0.536647617817 0.105644643307 0.000000000000 +vt 0.534925162792 0.111184135079 0.000000000000 +vt 0.531729161739 0.109336286783 0.000000000000 +vt 0.523591578007 0.091089487076 0.000000000000 +vt 0.730021059513 0.349459081888 0.000000000000 +vt 0.735328376293 0.349237293005 0.000000000000 +vt 0.715811312199 0.346691012383 0.000000000000 +vt 0.720742166042 0.350149869919 0.000000000000 +vt 0.725372970104 0.349892735481 0.000000000000 +vt 0.521666467190 0.094739928842 0.000000000000 +vt 0.520136296749 0.093459248543 0.000000000000 +vt 0.731795966625 0.325470387936 0.000000000000 +vt 0.736351430416 0.326853275299 0.000000000000 +vt 0.734878718853 0.329794704914 0.000000000000 +vt 0.732054173946 0.328241348267 0.000000000000 +vt 0.739810764790 0.330046653748 0.000000000000 +vt 0.737516939640 0.331477284431 0.000000000000 +vt 0.737019240856 0.345520436764 0.000000000000 +vt 0.732173502445 0.343047350645 0.000000000000 +vt 0.734046399593 0.340439140797 0.000000000000 +vt 0.738021910191 0.343094855547 0.000000000000 +vt 0.725114047527 0.336557924747 0.000000000000 +vt 0.723978340626 0.339484244585 0.000000000000 +vt 0.718742549419 0.338676393032 0.000000000000 +vt 0.720449268818 0.335456222296 0.000000000000 +vt 0.728333771229 0.341184616089 0.000000000000 +vt 0.729620277882 0.338552564383 0.000000000000 +vt 0.521848857403 0.090589866042 0.000000000000 +vt 0.519341766834 0.098529517651 0.000000000000 +vt 0.741242706776 0.337124168873 0.000000000000 +vt 0.736575305462 0.336675226688 0.000000000000 +vt 0.737431108952 0.333985060453 0.000000000000 +vt 0.741768896580 0.333650708199 0.000000000000 +vt 0.730156362057 0.329479277134 0.000000000000 +vt 0.728279173374 0.331620484591 0.000000000000 +vt 0.724462211132 0.328425318003 0.000000000000 +vt 0.727317392826 0.325960755348 0.000000000000 +vt 0.732129871845 0.334760516882 0.000000000000 +vt 0.733519494534 0.332428127527 0.000000000000 +vt 0.518350422382 0.096643164754 0.000000000000 +vt 0.524855554104 0.092653632164 0.000000000000 +vt 0.731151521206 0.345263779163 0.000000000000 +vt 0.735784590244 0.347043156624 0.000000000000 +vt 0.736424624920 0.348627597094 0.000000000000 +vt 0.730661809444 0.347184121609 0.000000000000 +vt 0.718040287495 0.341615349054 0.000000000000 +vt 0.723183095455 0.342720180750 0.000000000000 +vt 0.721934854984 0.345855712891 0.000000000000 +vt 0.715493619442 0.344276010990 0.000000000000 +vt 0.727172791958 0.344054907560 0.000000000000 +vt 0.726349413395 0.346510440111 0.000000000000 +vt 0.523354947567 0.096010923386 0.000000000000 +vt 0.521311223507 0.099254280329 0.000000000000 +vt 0.533330857754 0.097978785634 0.000000000000 +vt 0.531335532665 0.101454958320 0.000000000000 +vt 0.529585421085 0.100170671940 0.000000000000 +vt 0.531549036503 0.097181737423 0.000000000000 +vt 0.529571712017 0.105359822512 0.000000000000 +vt 0.528426826000 0.103743880987 0.000000000000 +vt 0.534639537334 0.099621966481 0.000000000000 +vt 0.735392153263 0.338480740786 0.000000000000 +vt 0.739044845104 0.340150952339 0.000000000000 +vt 0.723158061504 0.331868380308 0.000000000000 +vt 0.726885974407 0.334070175886 0.000000000000 +vt 0.730814039707 0.336822479963 0.000000000000 +vt 0.533084571362 0.102829977870 0.000000000000 +vt 0.531313717365 0.105897054076 0.000000000000 +vt 0.521283328533 0.087026789784 0.000000000000 +vt 0.517856895924 0.091663181782 0.000000000000 +vt 0.514960706234 0.097525775433 0.000000000000 +vt 0.517828285694 0.100980103016 0.000000000000 +vt 0.526034533978 0.087389066815 0.000000000000 +vt 0.527589142323 0.109247803688 0.000000000000 +vt 0.535756528378 0.095117062330 0.000000000000 +vt 0.539837419987 0.107863321900 0.000000000000 +vt 0.538558781147 0.107128873467 0.000000000000 +vt 0.539949953556 0.105316147208 0.000000000000 +vt 0.540825903416 0.105864629149 0.000000000000 +vt 0.538582384586 0.109620437026 0.000000000000 +vt 0.537616670132 0.109082773328 0.000000000000 +vt 0.544267117977 0.110548302531 0.000000000000 +vt 0.541652381420 0.108950823545 0.000000000000 +vt 0.542387545109 0.105380535126 0.000000000000 +vt 0.545064866543 0.104814276099 0.000000000000 +vt 0.540196716785 0.104028716683 0.000000000000 +vt 0.537597596645 0.106465324759 0.000000000000 +vt 0.536735951900 0.109748318791 0.000000000000 +vt 0.701508939266 0.396991372108 0.000000000000 +vt 0.695306599140 0.396085560322 0.000000000000 +vt 0.705828607082 0.412745684385 0.000000000000 +vt 0.705876052380 0.406576901674 0.000000000000 +vt 0.704530298710 0.401503235102 0.000000000000 +vt 0.538923561573 0.111143380404 0.000000000000 +vt 0.539531409740 0.113621219993 0.000000000000 +vt 0.688302695751 0.427976310253 0.000000000000 +vt 0.683832943439 0.424098700285 0.000000000000 +vt 0.687000572681 0.421046495438 0.000000000000 +vt 0.689052641392 0.424283087254 0.000000000000 +vt 0.681496918201 0.418339222670 0.000000000000 +vt 0.684903800488 0.417768895626 0.000000000000 +vt 0.690302073956 0.401867091656 0.000000000000 +vt 0.694480240345 0.405638903379 0.000000000000 +vt 0.692191779613 0.407944500446 0.000000000000 +vt 0.687600672245 0.404441058636 0.000000000000 +vt 0.699370443821 0.415826499462 0.000000000000 +vt 0.700973808765 0.413097828627 0.000000000000 +vt 0.704431712627 0.417759448290 0.000000000000 +vt 0.703326642513 0.420762330294 0.000000000000 +vt 0.697867929935 0.408945530653 0.000000000000 +vt 0.695929110050 0.411309421062 0.000000000000 +vt 0.517626106739 0.084983274341 0.000000000000 +vt 0.521136224270 0.070760220289 0.000000000000 +vt 0.683233559132 0.409444689751 0.000000000000 +vt 0.688319623470 0.412122905254 0.000000000000 +vt 0.686133563519 0.414829730988 0.000000000000 +vt 0.680900275707 0.412907809019 0.000000000000 +vt 0.692204892635 0.422975838184 0.000000000000 +vt 0.695665299892 0.420329362154 0.000000000000 +vt 0.698658287525 0.425916135311 0.000000000000 +vt 0.694272696972 0.428446441889 0.000000000000 +vt 0.692554771900 0.415226012468 0.000000000000 +vt 0.689908921719 0.417935758829 0.000000000000 +vt 0.523216187954 0.072577908635 0.000000000000 +vt 0.520890176296 0.077228039503 0.000000000000 +vt 0.697199761868 0.403361231089 0.000000000000 +vt 0.693439781666 0.400654852390 0.000000000000 +vt 0.693814694881 0.397902786732 0.000000000000 +vt 0.699269115925 0.401036739349 0.000000000000 +vt 0.704553306103 0.414974272251 0.000000000000 +vt 0.702452123165 0.410426139832 0.000000000000 +vt 0.703826010227 0.408506244421 0.000000000000 +vt 0.705401599407 0.414679765701 0.000000000000 +vt 0.700053751469 0.406474679708 0.000000000000 +vt 0.701919615269 0.404333680868 0.000000000000 +vt 0.519232571125 0.075901642442 0.000000000000 +vt 0.515266001225 0.080151677132 0.000000000000 +vt 0.519640505314 0.081991866231 0.000000000000 +vt 0.533958613873 0.080200076103 0.000000000000 +vt 0.531604349613 0.079964339733 0.000000000000 +vt 0.532588779926 0.075347989798 0.000000000000 +vt 0.535456359386 0.075775325298 0.000000000000 +vt 0.531062185764 0.084430292249 0.000000000000 +vt 0.534919083118 0.084616497159 0.000000000000 +vt 0.690639078617 0.410164058208 0.000000000000 +vt 0.686743676662 0.408009111881 0.000000000000 +vt 0.700886189938 0.422482520342 0.000000000000 +vt 0.697773873806 0.417764842510 0.000000000000 +vt 0.694584786892 0.413028031588 0.000000000000 +vt 0.543268382549 0.081021666527 0.000000000000 +vt 0.542410075665 0.076548516750 0.000000000000 +vt 0.545253694057 0.076710179448 0.000000000000 +vt 0.544744908810 0.081107899547 0.000000000000 +vt 0.545586764812 0.085359513760 0.000000000000 +vt 0.542715609074 0.085166096687 0.000000000000 +vt 0.528137505054 0.076546490192 0.000000000000 +vt 0.526995480061 0.079263880849 0.000000000000 +vt 0.524926722050 0.078719690442 0.000000000000 +vt 0.526245653629 0.076403737068 0.000000000000 +vt 0.526619493961 0.081934899092 0.000000000000 +vt 0.524678170681 0.081073686481 0.000000000000 +vt 0.529789626598 0.077268108726 0.000000000000 +vt 0.529239356518 0.079652726650 0.000000000000 +vt 0.528736531734 0.081992313266 0.000000000000 +vt 0.539014041424 0.077833026648 0.000000000000 +vt 0.539221823215 0.080529257655 0.000000000000 +vt 0.536268293858 0.080332249403 0.000000000000 +vt 0.536676228046 0.078035444021 0.000000000000 +vt 0.539300858974 0.083174824715 0.000000000000 +vt 0.536652386189 0.082537859678 0.000000000000 +vt 0.541114032269 0.078451976180 0.000000000000 +vt 0.541567981243 0.080870822072 0.000000000000 +vt 0.541349947453 0.083064511418 0.000000000000 +vt 0.525810420513 0.073440477252 0.000000000000 +vt 0.522990167141 0.078078895807 0.000000000000 +vt 0.522753298283 0.083092421293 0.000000000000 +vt 0.744985520840 0.358051896095 0.000000000000 +vt 0.740702569485 0.361511409283 0.000000000000 +vt 0.737015068531 0.377986699343 0.000000000000 +vt 0.527110517025 0.085661664605 0.000000000000 +vt 0.529920637608 0.072953239083 0.000000000000 +vt 0.539422690868 0.086372941732 0.000000000000 +vt 0.720288455486 0.404917716980 0.000000000000 +vt 0.725336492062 0.406646698713 0.000000000000 +vt 0.719956338406 0.413258612156 0.000000000000 +vt 0.717335283756 0.410958647728 0.000000000000 +vt 0.723915517330 0.398037433624 0.000000000000 +vt 0.731581389904 0.399601578712 0.000000000000 +vt 0.741063773632 0.398945480585 0.000000000000 +vt 0.741147696972 0.402583092451 0.000000000000 +vt 0.735348403454 0.405078500509 0.000000000000 +vt 0.724570930004 0.415234774351 0.000000000000 +vt 0.730074822903 0.409371733665 0.000000000000 +vt 0.755069792271 0.423953682184 0.000000000000 +vt 0.751188337803 0.423076480627 0.000000000000 +vt 0.732347548008 0.419561594725 0.000000000000 +vt 0.728611052036 0.417487025261 0.000000000000 +vt 0.734247624874 0.412292242050 0.000000000000 +vt 0.737663686275 0.415086418390 0.000000000000 +vt 0.739005625248 0.408245295286 0.000000000000 +vt 0.742154181004 0.411730021238 0.000000000000 +vt 0.728346526623 0.424829334021 0.000000000000 +vt 0.724365770817 0.423212945461 0.000000000000 +vt 0.539046466351 0.074854224920 0.000000000000 +vt 0.547604382038 0.081218689680 0.000000000000 +vt 0.744521200657 0.403573781252 0.000000000000 +vt 0.746637046337 0.406587243080 0.000000000000 +vt 0.546402513981 0.081313252449 0.000000000000 +vt 0.546436250210 0.079620987177 0.000000000000 +vt 0.547303736210 0.079606115818 0.000000000000 +vt 0.547511637211 0.082779005170 0.000000000000 +vt 0.546545684338 0.082813456655 0.000000000000 +vt 0.551446378231 0.080884099007 0.000000000000 +vt 0.719365775585 0.420285463333 0.000000000000 +vt 0.548926889896 0.081119611859 0.000000000000 +vt 0.547964394093 0.078651010990 0.000000000000 +vt 0.549326121807 0.076903134584 0.000000000000 +vt 0.546006023884 0.078606888652 0.000000000000 +vt 0.545527517796 0.081211924553 0.000000000000 +vt 0.740861833096 0.424791932106 0.000000000000 +vt 0.744636476040 0.421375900507 0.000000000000 +vt 0.748865187168 0.419236689806 0.000000000000 +vt 0.738058149815 0.430005639791 0.000000000000 +vt 0.546189963818 0.083545655012 0.000000000000 +vt 0.548156440258 0.083578765392 0.000000000000 +vt 0.549798786640 0.085083246231 0.000000000000 +vt 0.493128985167 0.107532128692 0.000000000000 +vt 0.487130194902 0.108177408576 0.000000000000 +vt 0.484787672758 0.104095578194 0.000000000000 +vt 0.754294574261 0.415865898132 0.000000000000 +vt 0.741011559963 0.418052166700 0.000000000000 +vt 0.736329138279 0.422021627426 0.000000000000 +vt 0.745218575001 0.415226459503 0.000000000000 +vt 0.732700407505 0.426749676466 0.000000000000 +vt 0.477795451880 0.104249805212 0.000000000000 +vt 0.480690747499 0.109506055713 0.000000000000 +vt 0.493065744638 0.123880639672 0.000000000000 +vt 0.492350906134 0.121099308133 0.000000000000 +vt 0.498245447874 0.118749126792 0.000000000000 +vt 0.499274820089 0.122994199395 0.000000000000 +vt 0.749212324619 0.411244809628 0.000000000000 +vt 0.486499279737 0.122255474329 0.000000000000 +vt 0.487754553556 0.125899389386 0.000000000000 +vt 0.495414823294 0.131725952029 0.000000000000 +vt 0.501138865948 0.129815727472 0.000000000000 +vt 0.501795589924 0.132985696197 0.000000000000 +vt 0.496015042067 0.133395478129 0.000000000000 +vt 0.491779893637 0.137110754848 0.000000000000 +vt 0.490246385336 0.133341893554 0.000000000000 +vt 0.493753403425 0.114416465163 0.000000000000 +vt 0.490512460470 0.116016864777 0.000000000000 +vt 0.716776549816 0.397952318192 0.000000000000 +vt 0.722395479679 0.390428304672 0.000000000000 +vt 0.748906552792 0.386245161295 0.000000000000 +vt 0.748211801052 0.394017070532 0.000000000000 +vt 0.743617475033 0.387832283974 0.000000000000 +vt 0.743471086025 0.384143799543 0.000000000000 +vt 0.735934555531 0.381866127253 0.000000000000 +vt 0.489763349295 0.113667383790 0.000000000000 +vt 0.714425027370 0.404076099396 0.000000000000 +vt 0.492669016123 0.112787023187 0.000000000000 +vt 0.487121194601 0.117388963699 0.000000000000 +vt 0.486971467733 0.115077972412 0.000000000000 +vt 0.494484215975 0.116980090737 0.000000000000 +vt 0.491517156363 0.118607267737 0.000000000000 +vt 0.488306194544 0.119425490499 0.000000000000 +vt 0.498060315847 0.127201452851 0.000000000000 +vt 0.713693201542 0.410189747810 0.000000000000 +vt 0.735486447811 0.385052949190 0.000000000000 +vt 0.746610701084 0.396617144346 0.000000000000 +vt 0.494058936834 0.127958431840 0.000000000000 +vt 0.493515819311 0.126024797559 0.000000000000 +vt 0.496876925230 0.125608488917 0.000000000000 +vt 0.490766674280 0.128856346011 0.000000000000 +vt 0.743014752865 0.389892905951 0.000000000000 +vt 0.735056340694 0.387602627277 0.000000000000 +vt 0.727178633213 0.392949610949 0.000000000000 +vt 0.733748018742 0.392339646816 0.000000000000 +vt 0.739848792553 0.392785251141 0.000000000000 +vt 0.747750461102 0.374964654446 0.000000000000 +vt 0.490720719099 0.127026960254 0.000000000000 +vt 0.750498473644 0.379568845034 0.000000000000 +vt 0.752317011356 0.363459676504 0.000000000000 +vt 0.747864067554 0.366984248161 0.000000000000 +vt 0.743768513203 0.380047321320 0.000000000000 +vt 0.743770778179 0.376911133528 0.000000000000 +vt 0.716933429241 0.416927278042 0.000000000000 +vt 0.497924119234 0.128914669156 0.000000000000 +vt 0.494692295790 0.129884406924 0.000000000000 +vt 0.491763919592 0.130519121885 0.000000000000 +vt 0.495831340551 0.110157430172 0.000000000000 +vt 0.489241451025 0.111455008388 0.000000000000 +vt 0.483312696218 0.114056900144 0.000000000000 +vt 0.482924073935 0.118979677558 0.000000000000 +vt 0.499466627836 0.113667383790 0.000000000000 +vt 0.487026840448 0.130218312144 0.000000000000 +vt 0.502736389637 0.126097753644 0.000000000000 +vt 0.497383981943 0.137650460005 0.000000000000 +vt 0.496828526258 0.135942205787 0.000000000000 +vt 0.498790949583 0.135475009680 0.000000000000 +vt 0.489594787359 0.354463160038 0.000000000000 +vt 0.493529766798 0.348664730787 0.000000000000 +vt 0.466066062450 0.416784971952 0.000000000000 +vt 0.492370694876 0.361383527517 0.000000000000 +vt 0.500243246555 0.364317297935 0.000000000000 +vt 0.494832962751 0.368273258209 0.000000000000 +vt 0.503132641315 0.370268374681 0.000000000000 +vt 0.497408539057 0.374473363161 0.000000000000 +vt 0.505711734295 0.374342322350 0.000000000000 +vt 0.501966536045 0.380494236946 0.000000000000 +vt 0.502037703991 0.387555330992 0.000000000000 +vt 0.500600278378 0.394303470850 0.000000000000 +vt 0.497024863958 0.400832056999 0.000000000000 +vt 0.490292042494 0.406675279140 0.000000000000 +vt 0.490373104811 0.412000209093 0.000000000000 +vt 0.478659600019 0.408653289080 0.000000000000 +vt 0.483080357313 0.413705527782 0.000000000000 +vt 0.483867734671 0.400707095861 0.000000000000 +vt 0.475096553564 0.403399050236 0.000000000000 +vt 0.490063995123 0.397259533405 0.000000000000 +vt 0.493380278349 0.393484354019 0.000000000000 +vt 0.495144337416 0.389038652182 0.000000000000 +vt 0.495407789946 0.384074211121 0.000000000000 +vt 0.493809431791 0.377649396658 0.000000000000 +vt 0.491057127714 0.371400237083 0.000000000000 +vt 0.488305300474 0.365160942078 0.000000000000 +vt 0.485417455435 0.358706206083 0.000000000000 +vt 0.499160021544 0.136612713337 0.000000000000 +vt 0.495681852102 0.138441428542 0.000000000000 +vt 0.495292752981 0.137186184525 0.000000000000 +vt 0.499904841185 0.142935067415 0.000000000000 +vt 0.512892186642 0.203441917896 0.000000000000 +vt 0.515536010265 0.210260972381 0.000000000000 +vt 0.519058048725 0.216575443745 0.000000000000 +vt 0.498339504004 0.139838293195 0.000000000000 +vt 0.500721871853 0.137117296457 0.000000000000 +vt 0.503684222698 0.138030976057 0.000000000000 +vt 0.499697417021 0.134602531791 0.000000000000 +vt 0.496406823397 0.134647563100 0.000000000000 +vt 0.494290322065 0.137108504772 0.000000000000 +vt 0.495159000158 0.139991164207 0.000000000000 +vt 0.493990033865 0.142434999347 0.000000000000 +vt 0.486728996038 0.090575456619 0.000000000000 +vt 0.478315383196 0.092991143465 0.000000000000 +vt 0.474077731371 0.098476827145 0.000000000000 +vt 0.498264402151 0.081063106656 0.000000000000 +vt 0.490895956755 0.083478346467 0.000000000000 +vt 0.501754701138 0.074368119240 0.000000000000 +vt 0.516297876835 0.064490333200 0.000000000000 +vt 0.489585071802 0.070763155818 0.000000000000 +vt 0.494673103094 0.066240236163 0.000000000000 +vt 0.470336109400 0.086715623736 0.000000000000 +vt 0.436086863279 0.092820927501 0.000000000000 +vt 0.438066899776 0.090013250709 0.000000000000 +vt 0.444520950317 0.092675030231 0.000000000000 +vt 0.441438585520 0.096161559224 0.000000000000 +vt 0.428543061018 0.092088505626 0.000000000000 +vt 0.430847972631 0.087048172951 0.000000000000 +vt 0.445708662271 0.087137565017 0.000000000000 +vt 0.440775513649 0.085114762187 0.000000000000 +vt 0.441083967686 0.081669896841 0.000000000000 +vt 0.445867836475 0.084105402231 0.000000000000 +vt 0.434993296862 0.082800179720 0.000000000000 +vt 0.435679793358 0.079566493630 0.000000000000 +vt 0.443775683641 0.089068949223 0.000000000000 +vt 0.439778298140 0.087716892362 0.000000000000 +vt 0.435482561588 0.085728764534 0.000000000000 +vt 0.449968576431 0.082234129310 0.000000000000 +vt 0.441662847996 0.076967298985 0.000000000000 +vt 0.431835711002 0.073218241334 0.000000000000 +vt 0.428974449635 0.081223636866 0.000000000000 +vt 0.450840383768 0.089633405209 0.000000000000 +vt 0.429250478745 0.110776379704 0.000000000000 +vt 0.428867727518 0.107335552573 0.000000000000 +vt 0.431848555803 0.108271300793 0.000000000000 +vt 0.431623846292 0.110644668341 0.000000000000 +vt 0.427443832159 0.110487952828 0.000000000000 +vt 0.426816552877 0.108107388020 0.000000000000 +vt 0.437157928944 0.099945515394 0.000000000000 +vt 0.433482289314 0.098722696304 0.000000000000 +vt 0.434810459614 0.095693901181 0.000000000000 +vt 0.437838792801 0.097269997001 0.000000000000 +vt 0.429327040911 0.097964599729 0.000000000000 +vt 0.431027412415 0.095057398081 0.000000000000 +vt 0.435632973909 0.102705463767 0.000000000000 +vt 0.431967437267 0.102064222097 0.000000000000 +vt 0.428185939789 0.101327285171 0.000000000000 +vt 0.424739956856 0.097438409925 0.000000000000 +vt 0.424326807261 0.104374542832 0.000000000000 +vt 0.430121839046 0.103951931000 0.000000000000 +vt 0.436985909939 0.106490775943 0.000000000000 +vt 0.440761536360 0.101641386747 0.000000000000 +vt 0.429635047913 0.115833595395 0.000000000000 +vt 0.429685264826 0.112943276763 0.000000000000 +vt 0.432830691338 0.111719325185 0.000000000000 +vt 0.435101598501 0.113605901599 0.000000000000 +vt 0.434298694134 0.107984006405 0.000000000000 +vt 0.429523140192 0.105171591043 0.000000000000 +vt 0.425729721785 0.106971934438 0.000000000000 +vt 0.426668196917 0.111298739910 0.000000000000 +vt 0.424650788307 0.112406730652 0.000000000000 +vt 0.509388387203 0.055841218680 0.000000000000 +vt 0.498403996229 0.043372806162 0.000000000000 +vt 0.502433478832 0.048159595579 0.000000000000 +vt 0.497449725866 0.051044743508 0.000000000000 +vt 0.492421835661 0.043788667768 0.000000000000 +vt 0.463615030050 0.077348947525 0.000000000000 +vt 0.455456525087 0.070783421397 0.000000000000 +vt 0.464122295380 0.066180795431 0.000000000000 +vt 0.462868630886 0.093436956406 0.000000000000 +vt 0.458721280098 0.092571005225 0.000000000000 +vt 0.459522604942 0.087591469288 0.000000000000 +vt 0.462670952082 0.086979731917 0.000000000000 +vt 0.471514105797 0.060662243515 0.000000000000 +vt 0.482812136412 0.062291014940 0.000000000000 +vt 0.467946112156 0.095136195421 0.000000000000 +vt 0.458524495363 0.080985873938 0.000000000000 +vt 0.452050387859 0.076159223914 0.000000000000 +vt 0.443986207247 0.071658372879 0.000000000000 +vt 0.445354491472 0.066013723612 0.000000000000 +vt 0.436717092991 0.065082713962 0.000000000000 +vt 0.437832713127 0.058958042413 0.000000000000 +vt 0.456312119961 0.084696203470 0.000000000000 +vt 0.455533295870 0.088533744216 0.000000000000 +vt 0.442759126425 0.026406910270 0.000000000000 +vt 0.439107567072 0.033566392958 0.000000000000 +vt 0.433614879847 0.033746067435 0.000000000000 +vt 0.436550229788 0.040571421385 0.000000000000 +vt 0.431009620428 0.041979093105 0.000000000000 +vt 0.436738461256 0.048520524055 0.000000000000 +vt 0.433239340782 0.050523724407 0.000000000000 +vt 0.439432889223 0.056393977255 0.000000000000 +vt 0.444673389196 0.062197577208 0.000000000000 +vt 0.452080547810 0.064230725169 0.000000000000 +vt 0.459633141756 0.061068650335 0.000000000000 +vt 0.466834276915 0.054884534329 0.000000000000 +vt 0.476173490286 0.048398043960 0.000000000000 +vt 0.478311985731 0.055618535727 0.000000000000 +vt 0.487611383200 0.048637155443 0.000000000000 +vt 0.492559403181 0.054551754147 0.000000000000 +vt 0.450314640999 0.028678275645 0.000000000000 +vt 0.445344805717 0.034261446446 0.000000000000 +vt 0.441385686398 0.039831560105 0.000000000000 +vt 0.440092831850 0.046508762985 0.000000000000 +vt 0.441298097372 0.053300123662 0.000000000000 +vt 0.444251447916 0.058152657002 0.000000000000 +vt 0.449525713921 0.059440102428 0.000000000000 +vt 0.455304324627 0.055676858872 0.000000000000 +vt 0.461506903172 0.049404706806 0.000000000000 +vt 0.469306051731 0.042024347931 0.000000000000 +vt 0.487811952829 0.058225836605 0.000000000000 +vt 0.483524292707 0.052073474973 0.000000000000 +vt 0.484311491251 0.046199399978 0.000000000000 +vt 0.481747001410 0.048475492746 0.000000000000 +vt 0.380680233240 0.065514564514 0.000000000000 +vt 0.376588284969 0.059708710760 0.000000000000 +vt 0.380253583193 0.059918548912 0.000000000000 +vt 0.384085476398 0.069081693888 0.000000000000 +vt 0.495234221220 0.099533021450 0.000000000000 +vt 0.383714437485 0.065352901816 0.000000000000 +vt 0.383114397526 0.061096791178 0.000000000000 +vt 0.374451309443 0.073164209723 0.000000000000 +vt 0.372015357018 0.063677519560 0.000000000000 +vt 0.374059766531 0.053939338773 0.000000000000 +vt 0.381692320108 0.054332684726 0.000000000000 +vt 0.383103370667 0.075196906924 0.000000000000 +vt 0.405146718025 0.062567278743 0.000000000000 +vt 0.405029207468 0.064906865358 0.000000000000 +vt 0.403085887432 0.065327689052 0.000000000000 +vt 0.402291089296 0.062788158655 0.000000000000 +vt 0.404567837715 0.060321133584 0.000000000000 +vt 0.402513980865 0.060236703604 0.000000000000 +vt 0.396065324545 0.068468824029 0.000000000000 +vt 0.393785178661 0.067805290222 0.000000000000 +vt 0.392409473658 0.063877239823 0.000000000000 +vt 0.394892245531 0.063695982099 0.000000000000 +vt 0.392374575138 0.059808004647 0.000000000000 +vt 0.394494861364 0.058848392218 0.000000000000 +vt 0.398127049208 0.067958623171 0.000000000000 +vt 0.397333174944 0.063290476799 0.000000000000 +vt 0.396797299385 0.058876764029 0.000000000000 +vt 0.394452542067 0.054397072643 0.000000000000 +vt 0.399751543999 0.055975642055 0.000000000000 +vt 0.399062365294 0.062898263335 0.000000000000 +vt 0.401548743248 0.070496574044 0.000000000000 +vt 0.397002875805 0.072747439146 0.000000000000 +vt 0.410708278418 0.061957109720 0.000000000000 +vt 0.408443450928 0.068036526442 0.000000000000 +vt 0.406104087830 0.065834060311 0.000000000000 +vt 0.407416969538 0.062223013490 0.000000000000 +vt 0.402603596449 0.067001029849 0.000000000000 +vt 0.400384694338 0.062776446342 0.000000000000 +vt 0.401618093252 0.058767784387 0.000000000000 +vt 0.407653838396 0.056897196919 0.000000000000 +vt 0.405660539865 0.059153925627 0.000000000000 +vt 0.342144489288 0.129252389073 0.000000000000 +vt 0.330034285784 0.118232384324 0.000000000000 +vt 0.331073820591 0.111910715699 0.000000000000 +vt 0.337948709726 0.117126211524 0.000000000000 +vt 0.334675848484 0.122342392802 0.000000000000 +vt 0.364498108625 0.084034025669 0.000000000000 +vt 0.353841513395 0.081475362182 0.000000000000 +vt 0.359023243189 0.072227567434 0.000000000000 +vt 0.383939355612 0.087411120534 0.000000000000 +vt 0.376194030046 0.086917132139 0.000000000000 +vt 0.378380954266 0.083674445748 0.000000000000 +vt 0.385140568018 0.082588523626 0.000000000000 +vt 0.348989427090 0.090118840337 0.000000000000 +vt 0.349848628044 0.102441802621 0.000000000000 +vt 0.384516656399 0.092244535685 0.000000000000 +vt 0.368901699781 0.080153703690 0.000000000000 +vt 0.366300255060 0.072573855519 0.000000000000 +vt 0.362025469542 0.061230536550 0.000000000000 +vt 0.366504251957 0.062840163708 0.000000000000 +vt 0.364860385656 0.049893748015 0.000000000000 +vt 0.368391275406 0.052941676229 0.000000000000 +vt 0.375058352947 0.079524159431 0.000000000000 +vt 0.381066381931 0.079621434212 0.000000000000 +vt 0.369406282902 0.023787003011 0.000000000000 +vt 0.363827377558 0.021882418543 0.000000000000 +vt 0.362167745829 0.013727746904 0.000000000000 +vt 0.369875043631 0.032330740243 0.000000000000 +vt 0.363867014647 0.030249182135 0.000000000000 +vt 0.367265045643 0.040660582483 0.000000000000 +vt 0.362684249878 0.039418853819 0.000000000000 +vt 0.360803991556 0.049217607826 0.000000000000 +vt 0.358212471008 0.058879461139 0.000000000000 +vt 0.354023665190 0.067041784525 0.000000000000 +vt 0.349367916584 0.074845895171 0.000000000000 +vt 0.344372838736 0.084569439292 0.000000000000 +vt 0.343579858541 0.097275629640 0.000000000000 +vt 0.337548166513 0.094781354070 0.000000000000 +vt 0.336168199778 0.107096001506 0.000000000000 +vt 0.341732889414 0.112160399556 0.000000000000 +vt 0.358703076839 0.019574124366 0.000000000000 +vt 0.356585264206 0.011583819985 0.000000000000 +vt 0.359179943800 0.028422724456 0.000000000000 +vt 0.358128011227 0.037861227989 0.000000000000 +vt 0.355775833130 0.047059264034 0.000000000000 +vt 0.352667778730 0.055755432695 0.000000000000 +vt 0.348802536726 0.062798514962 0.000000000000 +vt 0.344516932964 0.069515347481 0.000000000000 +vt 0.339693903923 0.078744009137 0.000000000000 +vt 0.334405004978 0.088547706604 0.000000000000 +vt 0.351488649845 0.008813511580 0.000000000000 +vt 0.353146910667 0.017157759517 0.000000000000 +vt 0.344804912806 0.016256015748 0.000000000000 +vt 0.343273401260 0.007860429585 0.000000000000 +vt 0.353605329990 0.026377867907 0.000000000000 +vt 0.345076918602 0.024861443788 0.000000000000 +vt 0.351858347654 0.035421445966 0.000000000000 +vt 0.343469291925 0.032606557012 0.000000000000 +vt 0.329398661852 0.083495229483 0.000000000000 +vt 0.321584880352 0.080222144723 0.000000000000 +vt 0.345637321472 0.107405588031 0.000000000000 +vt 0.339709669352 0.102807238698 0.000000000000 +vt 0.334294229746 0.103572994471 0.000000000000 +vt 0.336519658566 0.100833073258 0.000000000000 +vt 0.331020236015 0.072261109948 0.000000000000 +vt 0.336660385132 0.064951002598 0.000000000000 +vt 0.434932053089 0.026294331998 0.000000000000 +vt 0.340934514999 0.059087056667 0.000000000000 +vt 0.343839913607 0.051737319678 0.000000000000 +vt 0.346170932055 0.042951311916 0.000000000000 +vt 0.340638875961 0.037561997771 0.000000000000 +vt 0.323255330324 0.073237612844 0.000000000000 +vt 0.695959985256 0.741854548454 0.000000000000 +vt 0.714866340160 0.723106801510 0.000000000000 +vt 0.697431623936 0.719995796680 0.000000000000 +vt 0.483988851309 0.041881825775 0.000000000000 +vt 0.839606106281 0.716192245483 0.000000000000 +vt 0.824899375439 0.704895555973 0.000000000000 +vt 0.836511552334 0.689590156078 0.000000000000 +vt 0.848930418491 0.699052095413 0.000000000000 +vt 0.814055740833 0.694797575474 0.000000000000 +vt 0.477539271116 0.036895312369 0.000000000000 +vt 0.826638519764 0.681990265846 0.000000000000 +vt 0.829895794392 0.731659770012 0.000000000000 +vt 0.813143789768 0.716623902321 0.000000000000 +vt 0.801700055599 0.705101132393 0.000000000000 +vt 0.817305624485 0.743863582611 0.000000000000 +vt 0.801387965679 0.725039482117 0.000000000000 +vt 0.789851725101 0.712394773960 0.000000000000 +vt 0.788582026958 0.734670758247 0.000000000000 +vt 0.777517497540 0.721166849136 0.000000000000 +vt 0.803215801716 0.752814412117 0.000000000000 +vt 0.786242902279 0.759428799152 0.000000000000 +vt 0.773034870625 0.741466820240 0.000000000000 +vt 0.763387620449 0.729409098625 0.000000000000 +vt 0.819508969784 0.771108031273 0.000000000000 +vt 0.801594197750 0.778130888939 0.000000000000 +vt 0.780358016491 0.784393787384 0.000000000000 +vt 0.813161194324 0.798096477985 0.000000000000 +vt 0.791216671467 0.802965700626 0.000000000000 +vt 0.768060982227 0.806276857853 0.000000000000 +vt 0.758998692036 0.789613127708 0.000000000000 +vt 0.745742022991 0.808515787125 0.000000000000 +vt 0.739104449749 0.793780505657 0.000000000000 +vt 0.796912372112 0.821695029736 0.000000000000 +vt 0.772977530956 0.822699189186 0.000000000000 +vt 0.749330580235 0.823236882687 0.000000000000 +vt 0.818778097630 0.819741129875 0.000000000000 +vt 0.864375889301 0.710809707642 0.000000000000 +vt 0.880953133106 0.724374651909 0.000000000000 +vt 0.915635168552 0.748171925545 0.000000000000 +vt 0.908841907978 0.766230940819 0.000000000000 +vt 0.905186593533 0.787342846394 0.000000000000 +vt 0.887137472630 0.812209010124 0.000000000000 +vt 0.901950418949 0.812799155712 0.000000000000 +vt 0.716777384281 0.755539953709 0.000000000000 +vt 0.709918677807 0.762999296188 0.000000000000 +vt 0.751775801182 0.171791642904 0.000000000000 +vt 0.779532253742 0.179935947061 0.000000000000 +vt 0.757754266262 0.191265076399 0.000000000000 +vt 0.738353550434 0.202746644616 0.000000000000 +vt 0.733651459217 0.186159908772 0.000000000000 +vt 0.720768034458 0.212536171079 0.000000000000 +vt 0.718448698521 0.197526648641 0.000000000000 +vt 0.715862095356 0.185371875763 0.000000000000 +vt 0.749988734722 0.241413876414 0.000000000000 +vt 0.731017768383 0.248716101050 0.000000000000 +vt 0.725487768650 0.230310603976 0.000000000000 +vt 0.743789970875 0.221092060208 0.000000000000 +vt 0.774173557758 0.257214367390 0.000000000000 +vt 0.754297435284 0.261839717627 0.000000000000 +vt 0.769551694393 0.234550252557 0.000000000000 +vt 0.731539070606 0.269993722439 0.000000000000 +vt 0.763681709766 0.212278813124 0.000000000000 +vt 0.789024770260 0.228903159499 0.000000000000 +vt 0.784669578075 0.203588500619 0.000000000000 +vt 0.812417447567 0.255994260311 0.000000000000 +vt 0.793350636959 0.255872875452 0.000000000000 +vt 0.808808386326 0.224819734693 0.000000000000 +vt 0.805518686771 0.196942374110 0.000000000000 +vt 0.801068723202 0.171566486359 0.000000000000 +vt 0.816036999226 0.293190568686 0.000000000000 +vt 0.796044886112 0.283715814352 0.000000000000 +vt 0.777438461781 0.280535697937 0.000000000000 +vt 0.757886707783 0.282600164413 0.000000000000 +vt 0.739174664021 0.287719726563 0.000000000000 +vt 0.785341441631 0.033302962780 0.000000000000 +vt 0.582609474659 0.124908477068 0.000000000000 +vt 0.581306993961 0.142187565565 0.000000000000 +vt 0.545368969440 0.011624570936 0.000000000000 +vt 0.646641552448 0.018267553300 0.000000000000 +vt 0.606483757496 0.106701299548 0.000000000000 +vt 0.612616598606 0.108521446586 0.000000000000 +vt 0.618627488613 0.111129656434 0.000000000000 +vt 0.665071904659 0.014743648469 0.000000000000 +vt 0.370113700628 0.016160547733 0.000000000000 +vt 0.331191360950 0.103096559644 0.000000000000 +vt 0.330383718014 0.097089871764 0.000000000000 +vt 0.327046245337 0.092111021280 0.000000000000 +vt 0.319549947977 0.088000133634 0.000000000000 +vt 0.491939753294 0.100965470076 0.000000000000 +vt 0.696907937527 0.156802833080 0.000000000000 +vt 0.707364618778 0.164915174246 0.000000000000 +vt 0.711468279362 0.167301818728 0.000000000000 +vt 0.672648847103 0.136169388890 0.000000000000 +vt 0.654392778873 0.123681157827 0.000000000000 +vt 0.546281397343 0.277987629175 0.000000000000 +vt 0.555889427662 0.542913317680 0.000000000000 +vt 0.598048627377 0.315594613552 0.000000000000 +vt 0.474871605635 0.487518340349 0.000000000000 +vt 0.493717104197 0.499704867601 0.000000000000 +vt 0.510663211346 0.513657331467 0.000000000000 +vt 0.529695570469 0.328777670860 0.000000000000 +vt 0.478573888540 0.439885228872 0.000000000000 +vt 0.489638179541 0.458603054285 0.000000000000 +vt 0.472153753042 0.424974769354 0.000000000000 +vt 0.581608593464 0.316328614950 0.000000000000 +vt 0.469933092594 0.410422533751 0.000000000000 +vt 0.474573940039 0.415574103594 0.000000000000 +vt 0.496727436781 0.356613397598 0.000000000000 +vt 0.467020928860 0.405297100544 0.000000000000 +vt 0.680720627308 0.091846004128 0.000000000000 +vt 0.694580972195 0.090741172433 0.000000000000 +vt 0.547491371632 0.071579337120 0.000000000000 +vt 0.553497970104 0.078128427267 0.000000000000 +vt 0.645280063152 0.102942556143 0.000000000000 +vt 0.557917654514 0.084493562579 0.000000000000 +vt 0.562383949757 0.098196953535 0.000000000000 +vt 0.633653700352 0.118626862764 0.000000000000 +vt 0.562888324261 0.114720419049 0.000000000000 +vt 0.563672840595 0.128326103091 0.000000000000 +vt 0.567211091518 0.144699171185 0.000000000000 +vt 0.500136196613 0.268927842379 0.000000000000 +vt 0.502436935902 0.280043512583 0.000000000000 +vt 0.482790559530 0.140759631991 0.000000000000 +vt 0.485283464193 0.145932793617 0.000000000000 +vt 0.511669576168 0.244729980826 0.000000000000 +vt 0.489596575499 0.150636732578 0.000000000000 +vt 0.503686726093 0.155002936721 0.000000000000 +vt 0.528804123402 0.231279209256 0.000000000000 +vt 0.521844804287 0.155472621322 0.000000000000 +vt 0.536552846432 0.156950756907 0.000000000000 +vt 0.553597509861 0.159783437848 0.000000000000 +vt 0.307654768229 0.609554529190 0.000000000000 +vt 0.290467321873 0.613707244396 0.000000000000 +vt 0.204575508833 0.719810605049 0.000000000000 +vt 0.210707157850 0.703682720661 0.000000000000 +vt 0.284538298845 0.585472345352 0.000000000000 +vt 0.223060980439 0.709351420403 0.000000000000 +vt 0.213785484433 0.729282855988 0.000000000000 +vt 0.294191390276 0.583933651447 0.000000000000 +vt 0.193332836032 0.738901257515 0.000000000000 +vt 0.188829287887 0.728674709797 0.000000000000 +vt 0.197825804353 0.749223530293 0.000000000000 +vt 0.225497603416 0.740132212639 0.000000000000 +vt 0.172644689679 0.756999909878 0.000000000000 +vt 0.173354595900 0.748063921928 0.000000000000 +vt 0.153877779841 0.774228334427 0.000000000000 +vt 0.153797164559 0.760271430016 0.000000000000 +vt 0.173445329070 0.773155450821 0.000000000000 +vt 0.149432986975 0.820051431656 0.000000000000 +vt 0.173765048385 0.821435034275 0.000000000000 +vt 0.175114631653 0.829998791218 0.000000000000 +vt 0.154235765338 0.830059587955 0.000000000000 +vt 0.154094830155 0.792689681053 0.000000000000 +vt 0.177844420075 0.795601427555 0.000000000000 +vt 0.212241590023 0.836606919765 0.000000000000 +vt 0.307616710663 0.586260378361 0.000000000000 +vt 0.319666564465 0.604332268238 0.000000000000 +vt 0.206351310015 0.841337859631 0.000000000000 +vt 0.357945650816 0.653928995132 0.000000000000 +vt 0.205141782761 0.802912175655 0.000000000000 +vt 0.181257992983 0.838490307331 0.000000000000 +vt 0.150479733944 0.836383342743 0.000000000000 +vt 0.202541679144 0.774786055088 0.000000000000 +vt 0.230581372976 0.776787877083 0.000000000000 +vt 0.232835412025 0.808410942554 0.000000000000 +vt 0.153742238879 0.753254890442 0.000000000000 +vt 0.354879945517 0.670894861221 0.000000000000 +vt 0.156122118235 0.742229044437 0.000000000000 +vt 0.325383484364 0.664160490036 0.000000000000 +vt 0.172345682979 0.736270546913 0.000000000000 +vt 0.329998701811 0.649386703968 0.000000000000 +vt 0.344495564699 0.695504546165 0.000000000000 +vt 0.319999575615 0.685368955135 0.000000000000 +vt 0.340014070272 0.705360293388 0.000000000000 +vt 0.316662311554 0.697957396507 0.000000000000 +vt 0.335703253746 0.712217569351 0.000000000000 +vt 0.314472913742 0.703338801861 0.000000000000 +vt 0.298693358898 0.660711348057 0.000000000000 +vt 0.305291980505 0.643745899200 0.000000000000 +vt 0.335656195879 0.638233840466 0.000000000000 +vt 0.170275822282 0.731788814068 0.000000000000 +vt 0.154652982950 0.738835036755 0.000000000000 +vt 0.186667352915 0.724648237228 0.000000000000 +vt 0.232443422079 0.711409807205 0.000000000000 +vt 0.252836883068 0.745151817799 0.000000000000 +vt 0.251037418842 0.715631723404 0.000000000000 +vt 0.257062584162 0.778479039669 0.000000000000 +vt 0.286519646645 0.808762609959 0.000000000000 +vt 0.259915977716 0.810499906540 0.000000000000 +vt 0.282630771399 0.777449607849 0.000000000000 +vt 0.312265455723 0.804308831692 0.000000000000 +vt 0.315088212490 0.835467398167 0.000000000000 +vt 0.288638800383 0.843417167664 0.000000000000 +vt 0.337379038334 0.797992110252 0.000000000000 +vt 0.342023313046 0.826052308083 0.000000000000 +vt 0.314613372087 0.842931270599 0.000000000000 +vt 0.360430896282 0.641259968281 0.000000000000 +vt 0.314939886332 0.630025804043 0.000000000000 +vt 0.289557874203 0.850114881992 0.000000000000 +vt 0.294469684362 0.682716429234 0.000000000000 +vt 0.273877441883 0.659004628658 0.000000000000 +vt 0.280411213636 0.635718882084 0.000000000000 +vt 0.270008593798 0.684478938580 0.000000000000 +vt 0.359717398882 0.625162005424 0.000000000000 +vt 0.343318879604 0.624738991261 0.000000000000 +vt 0.344458639622 0.621523499489 0.000000000000 +vt 0.360369205475 0.621685206890 0.000000000000 +vt 0.360682636499 0.635098338127 0.000000000000 +vt 0.339501827955 0.634016931057 0.000000000000 +vt 0.340652346611 0.835465610027 0.000000000000 +vt 0.309305101633 0.776968240738 0.000000000000 +vt 0.334473401308 0.773887217045 0.000000000000 +vt 0.363107293844 0.791482627392 0.000000000000 +vt 0.368501096964 0.820234537125 0.000000000000 +vt 0.358934253454 0.769033312798 0.000000000000 +vt 0.275969982147 0.743224263191 0.000000000000 +vt 0.305437386036 0.756031274796 0.000000000000 +vt 0.260169744492 0.846379280090 0.000000000000 +vt 0.235436409712 0.844436645508 0.000000000000 +vt 0.262015789747 0.854236066341 0.000000000000 +vt 0.234238356352 0.851540505886 0.000000000000 +vt 0.263981163502 0.715166091919 0.000000000000 +vt 0.267965942621 0.713351130486 0.000000000000 +vt 0.281729459763 0.734891474247 0.000000000000 +vt 0.288172066212 0.722100436687 0.000000000000 +vt 0.277648299932 0.707795619965 0.000000000000 +vt 0.291222691536 0.716961920261 0.000000000000 +vt 0.308623343706 0.723172843456 0.000000000000 +vt 0.307381391525 0.728834807873 0.000000000000 +vt 0.281491696835 0.703531861305 0.000000000000 +vt 0.305040448904 0.743083953857 0.000000000000 +vt 0.201677769423 0.717027664185 0.000000000000 +vt 0.205799683928 0.700485944748 0.000000000000 +vt 0.367262303829 0.829703629017 0.000000000000 +vt 0.341758757830 0.839105904102 0.000000000000 +vt 0.368334710598 0.833229362965 0.000000000000 +vt 0.316586196423 0.847852051258 0.000000000000 +vt 0.290764272213 0.854788422585 0.000000000000 +vt 0.327047795057 0.738471865654 0.000000000000 +vt 0.326124876738 0.730000674725 0.000000000000 +vt 0.330911010504 0.754280507565 0.000000000000 +vt 0.355491876602 0.749867677689 0.000000000000 +vt 0.351486146450 0.739300012589 0.000000000000 +vt 0.326873511076 0.724973142147 0.000000000000 +vt 0.344539195299 0.722123146057 0.000000000000 +vt 0.344190418720 0.726383745670 0.000000000000 +vt 0.261989206076 0.857144653797 0.000000000000 +vt 0.233581811190 0.854094266891 0.000000000000 +vt 0.204417899251 0.849156141281 0.000000000000 +vt 0.326887309551 0.621081113815 0.000000000000 +vt 0.252677500248 0.583962917328 0.000000000000 +vt 0.265231251717 0.586087048054 0.000000000000 +vt 0.256276845932 0.613264143467 0.000000000000 +vt 0.236884176731 0.612185239792 0.000000000000 +vt 0.225397676229 0.592031359673 0.000000000000 +vt 0.240359246731 0.578182041645 0.000000000000 +vt 0.249482765794 0.581659138203 0.000000000000 +vt 0.230406701565 0.604802131653 0.000000000000 +vt 0.221547290683 0.586520910263 0.000000000000 +vt 0.237664133310 0.573132932186 0.000000000000 +vt 0.211196690798 0.601164758205 0.000000000000 +vt 0.209809958935 0.594907939434 0.000000000000 +vt 0.213919267058 0.613228797913 0.000000000000 +vt 0.215259835124 0.621791481972 0.000000000000 +vt 0.233155399561 0.635776519775 0.000000000000 +vt 0.212040349841 0.638687551022 0.000000000000 +vt 0.329966962337 0.616993844509 0.000000000000 +vt 0.252798855305 0.635614156723 0.000000000000 +vt 0.333201110363 0.612495720387 0.000000000000 +vt 0.324382007122 0.598686695099 0.000000000000 +vt 0.311093568802 0.581733644009 0.000000000000 +vt 0.250871539116 0.659518659115 0.000000000000 +vt 0.246007040143 0.695468783379 0.000000000000 +vt 0.267591327429 0.695985734463 0.000000000000 +vt 0.229620695114 0.658928096294 0.000000000000 +vt 0.224895358086 0.685685992241 0.000000000000 +vt 0.202963665128 0.683032333851 0.000000000000 +vt 0.206480368972 0.658463180065 0.000000000000 +vt 0.225187152624 0.694258570671 0.000000000000 +vt 0.267994135618 0.700619399548 0.000000000000 +vt 0.246059074998 0.698300302029 0.000000000000 +vt 0.202539697289 0.691807746887 0.000000000000 +vt 0.292167007923 0.695293128490 0.000000000000 +vt 0.291803628206 0.699824810028 0.000000000000 +vt 0.246173635125 0.686428308487 0.000000000000 +vt 0.225166440010 0.697112381458 0.000000000000 +vt 0.202534750104 0.694576680660 0.000000000000 +vt 0.179447337985 0.689694881439 0.000000000000 +vt 0.179994687438 0.681011319160 0.000000000000 +vt 0.156249374151 0.689290702343 0.000000000000 +vt 0.153237923980 0.680606484413 0.000000000000 +vt 0.181782424450 0.657110214233 0.000000000000 +vt 0.156527668238 0.653305292130 0.000000000000 +vt 0.186954230070 0.638771533966 0.000000000000 +vt 0.162625998259 0.633767902851 0.000000000000 +vt 0.191838979721 0.622671365738 0.000000000000 +vt 0.169981136918 0.618435740471 0.000000000000 +vt 0.179694786668 0.692102015018 0.000000000000 +vt 0.157019853592 0.692945420742 0.000000000000 +vt 0.174810484052 0.610164642334 0.000000000000 +vt 0.181283250451 0.599177777767 0.000000000000 +vt 0.196757718921 0.604870617390 0.000000000000 +vt 0.192525476217 0.616066217422 0.000000000000 +vt 0.183410972357 0.595816195011 0.000000000000 +vt 0.198278859258 0.601250529289 0.000000000000 +vt 0.244824290276 0.579442679882 0.000000000000 +vt 0.273151040077 0.710567533970 0.000000000000 +vt 0.285232663155 0.728684842587 0.000000000000 +vt 0.227200508118 0.598817527294 0.000000000000 +vt 0.212605252862 0.606770217419 0.000000000000 +vt 0.305614590645 0.736904382706 0.000000000000 +vt 0.328240215778 0.744696319103 0.000000000000 +vt 0.178053170443 0.604644119740 0.000000000000 +vt 0.348152697086 0.732621014118 0.000000000000 +vt 0.194131508470 0.610380828381 0.000000000000 +vt 0.313762992620 0.607308149338 0.000000000000 +vt 0.300771087408 0.584314823151 0.000000000000 +vt 0.216887891293 0.707050144672 0.000000000000 +vt 0.208923026919 0.724448800087 0.000000000000 +vt 0.190924808383 0.733412683010 0.000000000000 +vt 0.173134177923 0.741575896740 0.000000000000 +vt 0.154957845807 0.745678186417 0.000000000000 +vt 0.360251009464 0.628313779831 0.000000000000 +vt 0.342385172844 0.628576755524 0.000000000000 +vt 0.322390943766 0.625243067741 0.000000000000 +vt 0.255816608667 0.538961172104 0.000000000000 +vt 0.255609929562 0.531903445721 0.000000000000 +vt 0.276532471180 0.523902297020 0.000000000000 +vt 0.276766628027 0.530665338039 0.000000000000 +vt 0.258155763149 0.542869150639 0.000000000000 +vt 0.239253938198 0.549565970898 0.000000000000 +vt 0.237569808960 0.546314954758 0.000000000000 +vt 0.259632319212 0.557646989822 0.000000000000 +vt 0.278000265360 0.557606041431 0.000000000000 +vt 0.280406028032 0.561680853367 0.000000000000 +vt 0.259857028723 0.562739551067 0.000000000000 +vt 0.301217794418 0.558059513569 0.000000000000 +vt 0.301868736744 0.561496496201 0.000000000000 +vt 0.280528068542 0.552090644836 0.000000000000 +vt 0.277729153633 0.535347640514 0.000000000000 +vt 0.297178983688 0.528205513954 0.000000000000 +vt 0.301819860935 0.553178787231 0.000000000000 +vt 0.296229928732 0.518692255020 0.000000000000 +vt 0.297345817089 0.522403001785 0.000000000000 +vt 0.317796647549 0.513919591904 0.000000000000 +vt 0.319642692804 0.516018092632 0.000000000000 +vt 0.318866372108 0.522611498833 0.000000000000 +vt 0.323723644018 0.553826808929 0.000000000000 +vt 0.342375040054 0.518720626831 0.000000000000 +vt 0.345081865788 0.553842306137 0.000000000000 +vt 0.325454175472 0.558225631714 0.000000000000 +vt 0.324885904789 0.562544107437 0.000000000000 +vt 0.344201058149 0.558419764042 0.000000000000 +vt 0.346064895391 0.561874091625 0.000000000000 +vt 0.367183536291 0.508728206158 0.000000000000 +vt 0.365877866745 0.516082882881 0.000000000000 +vt 0.342823565006 0.511460900307 0.000000000000 +vt 0.365199923515 0.505763173103 0.000000000000 +vt 0.387129127979 0.502111792564 0.000000000000 +vt 0.389222174883 0.506725013256 0.000000000000 +vt 0.341677963734 0.508929491043 0.000000000000 +vt 0.382050991058 0.547588169575 0.000000000000 +vt 0.364945054054 0.550378084183 0.000000000000 +vt 0.388924062252 0.514224946499 0.000000000000 +vt 0.256348222494 0.552059113979 0.000000000000 +vt 0.239861428738 0.565382003784 0.000000000000 +vt 0.239956676960 0.562402725220 0.000000000000 +vt 0.220832422376 0.568670809269 0.000000000000 +vt 0.219239458442 0.567124247551 0.000000000000 +vt 0.203210204840 0.570883214474 0.000000000000 +vt 0.201898008585 0.568920969963 0.000000000000 +vt 0.182944670320 0.570823550224 0.000000000000 +vt 0.183698490262 0.567600429058 0.000000000000 +vt 0.203983396292 0.564405024052 0.000000000000 +vt 0.204041033983 0.557649910450 0.000000000000 +vt 0.220529600978 0.554902791977 0.000000000000 +vt 0.220537245274 0.562811851501 0.000000000000 +vt 0.183808818460 0.564445316792 0.000000000000 +vt 0.182822406292 0.557343244553 0.000000000000 +vt 0.156297102571 0.564277827740 0.000000000000 +vt 0.153392598033 0.552050530910 0.000000000000 +vt 0.137154191732 0.566353738308 0.000000000000 +vt 0.156789526343 0.566984176636 0.000000000000 +vt 0.156581923366 0.569497346878 0.000000000000 +vt 0.138306304812 0.569090723991 0.000000000000 +vt 0.154402419925 0.548665106297 0.000000000000 +vt 0.132301419973 0.547170519829 0.000000000000 +vt 0.131927892566 0.543763041496 0.000000000000 +vt 0.183378085494 0.554381549358 0.000000000000 +vt 0.155377343297 0.546469151974 0.000000000000 +vt 0.182058230042 0.549026727676 0.000000000000 +vt 0.203520476818 0.547020137310 0.000000000000 +vt 0.203194230795 0.553471744061 0.000000000000 +vt 0.219951391220 0.551127851009 0.000000000000 +vt 0.219577863812 0.544329047203 0.000000000000 +vt 0.236548244953 0.540101110935 0.000000000000 +vt 0.239640295506 0.557557404041 0.000000000000 +vt 0.364015817642 0.556429386139 0.000000000000 +vt 0.364667207003 0.559019565582 0.000000000000 +vt 0.385533690453 0.553289771080 0.000000000000 +vt 0.382902741432 0.557026267052 0.000000000000 +vt 0.154217123985 0.713813722134 0.000000000000 +vt 0.157158553600 0.710084676743 0.000000000000 +vt 0.139992043376 0.697338879108 0.000000000000 +vt 0.145032361150 0.694776415825 0.000000000000 +vt 0.129598200321 0.676885545254 0.000000000000 +vt 0.133522659540 0.676785171032 0.000000000000 +vt 0.121781267226 0.655710399151 0.000000000000 +vt 0.125936508179 0.658108294010 0.000000000000 +vt 0.117115393281 0.636653959751 0.000000000000 +vt 0.121172465384 0.637733101845 0.000000000000 +vt 0.116183921695 0.616349458694 0.000000000000 +vt 0.120485514402 0.618173420429 0.000000000000 +vt 0.084196135402 0.636717438698 0.000000000000 +vt 0.084505945444 0.617743194103 0.000000000000 +vt 0.089589498937 0.618903636932 0.000000000000 +vt 0.089312784374 0.636993050575 0.000000000000 +vt 0.080862037838 0.637916862965 0.000000000000 +vt 0.081022799015 0.618841469288 0.000000000000 +vt 0.085008040071 0.598570287228 0.000000000000 +vt 0.090116359293 0.599607348442 0.000000000000 +vt 0.081807009876 0.598996996880 0.000000000000 +vt 0.086025521159 0.666380286217 0.000000000000 +vt 0.083288080990 0.667724907398 0.000000000000 +vt 0.115721911192 0.657637059689 0.000000000000 +vt 0.091839924455 0.665398180485 0.000000000000 +vt 0.112071022391 0.636431932449 0.000000000000 +vt 0.116621181369 0.598775207996 0.000000000000 +vt 0.122074656188 0.598256886005 0.000000000000 +vt 0.117822155356 0.580991744995 0.000000000000 +vt 0.122807092965 0.579663336277 0.000000000000 +vt 0.118204921484 0.561226546764 0.000000000000 +vt 0.122930236161 0.561480045319 0.000000000000 +vt 0.086409181356 0.580696821213 0.000000000000 +vt 0.088303416967 0.563481450081 0.000000000000 +vt 0.092769816518 0.562017738819 0.000000000000 +vt 0.090972624719 0.580980956554 0.000000000000 +vt 0.112636163831 0.581119179726 0.000000000000 +vt 0.110782906413 0.597800493240 0.000000000000 +vt 0.092613331974 0.689584314823 0.000000000000 +vt 0.099071905017 0.688045859337 0.000000000000 +vt 0.108099728823 0.710213482380 0.000000000000 +vt 0.102641746402 0.710727512836 0.000000000000 +vt 0.099205419421 0.711480677128 0.000000000000 +vt 0.090210475028 0.691667914391 0.000000000000 +vt 0.112440273166 0.725039958954 0.000000000000 +vt 0.109685271978 0.733518600464 0.000000000000 +vt 0.120316430926 0.724148333073 0.000000000000 +vt 0.149469718337 0.716144502163 0.000000000000 +vt 0.083509407938 0.581079363823 0.000000000000 +vt 0.085539408028 0.563082933426 0.000000000000 +vt 0.091403126717 0.541651070118 0.000000000000 +vt 0.135661408305 0.562481999397 0.000000000000 +vt 0.112166255713 0.617554724216 0.000000000000 +vt 0.115233764052 0.561244547367 0.000000000000 +vt 0.124406136572 0.679192543030 0.000000000000 +vt 0.135345742106 0.699786543846 0.000000000000 +vt 0.124257989228 0.753876924515 0.000000000000 +vt 0.128552585840 0.751157760620 0.000000000000 +vt 0.165847733617 0.731854498386 0.000000000000 +vt 0.135802805424 0.748261570930 0.000000000000 +vt 0.166685536504 0.724866151810 0.000000000000 +vt 0.170482099056 0.722631275654 0.000000000000 +vt 0.118092343211 0.538387894630 0.000000000000 +vt 0.120958782732 0.537692189217 0.000000000000 +vt 0.098085269332 0.540873169899 0.000000000000 +vt 0.094365492463 0.541822671890 0.000000000000 +vt 0.132603570819 0.540962100029 0.000000000000 +vt 0.113834425807 0.538623392582 0.000000000000 +vt 0.319482028484 0.899047315121 0.000000000000 +vt 0.309817373753 0.903006970882 0.000000000000 +vt 0.303308844566 0.883904874325 0.000000000000 +vt 0.314649820328 0.880987823009 0.000000000000 +vt 0.328109025955 0.880558192730 0.000000000000 +vt 0.328658103943 0.897744834423 0.000000000000 +vt 0.341684728861 0.882348120213 0.000000000000 +vt 0.338721781969 0.899649322033 0.000000000000 +vt 0.355538994074 0.885123133659 0.000000000000 +vt 0.346919715405 0.902684092522 0.000000000000 +vt 0.264496624470 0.923883795738 0.000000000000 +vt 0.285223543644 0.930731534958 0.000000000000 +vt 0.267435461283 0.909074544907 0.000000000000 +vt 0.288075894117 0.921931266785 0.000000000000 +vt 0.274401426315 0.897557139397 0.000000000000 +vt 0.292297661304 0.914312303066 0.000000000000 +vt 0.287088751793 0.890229046345 0.000000000000 +vt 0.300147175789 0.908530831337 0.000000000000 +vt 0.310877472162 0.867308914661 0.000000000000 +vt 0.326778471470 0.865757822990 0.000000000000 +vt 0.343281567097 0.865718007088 0.000000000000 +vt 0.361255347729 0.866305887699 0.000000000000 +vt 0.245798677206 0.914549648762 0.000000000000 +vt 0.250797957182 0.897025287151 0.000000000000 +vt 0.263053983450 0.883340418339 0.000000000000 +vt 0.278658270836 0.875975549221 0.000000000000 +vt 0.297883272171 0.872081577778 0.000000000000 +vt 0.321375846863 0.908167660236 0.000000000000 +vt 0.313384771347 0.911024928093 0.000000000000 +vt 0.312286227942 0.907532513142 0.000000000000 +vt 0.320597171783 0.903883635998 0.000000000000 +vt 0.329484283924 0.906974732876 0.000000000000 +vt 0.329025387764 0.902560055256 0.000000000000 +vt 0.335602283478 0.907388985157 0.000000000000 +vt 0.336900919676 0.903732657433 0.000000000000 +vt 0.340975165367 0.909342050552 0.000000000000 +vt 0.344243913889 0.905984163284 0.000000000000 +vt 0.292275160551 0.931756854057 0.000000000000 +vt 0.288374781609 0.931339025497 0.000000000000 +vt 0.294533699751 0.926007986069 0.000000000000 +vt 0.291681826115 0.923927128315 0.000000000000 +vt 0.298611998558 0.919755756855 0.000000000000 +vt 0.295432448387 0.917401850224 0.000000000000 +vt 0.304809689522 0.915081322193 0.000000000000 +vt 0.302478045225 0.912388324738 0.000000000000 +vt 0.309649169445 0.859347939491 0.000000000000 +vt 0.325541138649 0.857225894928 0.000000000000 +vt 0.326330006123 0.861102938652 0.000000000000 +vt 0.309487581253 0.863262355328 0.000000000000 +vt 0.341508537531 0.857451260090 0.000000000000 +vt 0.343136012554 0.863369047642 0.000000000000 +vt 0.356366693974 0.855853736401 0.000000000000 +vt 0.360483229160 0.861095964909 0.000000000000 +vt 0.237906411290 0.910131931305 0.000000000000 +vt 0.242411300540 0.912403225899 0.000000000000 +vt 0.243345454335 0.892147541046 0.000000000000 +vt 0.247076600790 0.894490242004 0.000000000000 +vt 0.255101680756 0.878566741943 0.000000000000 +vt 0.258435934782 0.881105363369 0.000000000000 +vt 0.274271398783 0.868584036827 0.000000000000 +vt 0.276469051838 0.872065901756 0.000000000000 +vt 0.295189887285 0.862639725208 0.000000000000 +vt 0.297131747007 0.866627097130 0.000000000000 +vt 0.264509558678 0.939163446426 0.000000000000 +vt 0.284231007099 0.939391553402 0.000000000000 +vt 0.245086982846 0.933630704880 0.000000000000 +vt 0.292607039213 0.937922894955 0.000000000000 +vt 0.288247227669 0.939458549023 0.000000000000 +vt 0.234031543136 0.927958786488 0.000000000000 +vt 0.239948898554 0.931120336056 0.000000000000 +vt 0.303108215332 0.259901374578 0.000000000000 +vt 0.299691259861 0.272608458996 0.000000000000 +vt 0.227741092443 0.179622754455 0.000000000000 +vt 0.241408705711 0.177819043398 0.000000000000 +vt 0.288645803928 0.272444993258 0.000000000000 +vt 0.249047771096 0.186873659492 0.000000000000 +vt 0.294585645199 0.259171187878 0.000000000000 +vt 0.304501682520 0.254701167345 0.000000000000 +vt 0.313444852829 0.253634393215 0.000000000000 +vt 0.312482535839 0.259582310915 0.000000000000 +vt 0.296862632036 0.254683613777 0.000000000000 +vt 0.286406427622 0.256932258606 0.000000000000 +vt 0.289906680584 0.252584934235 0.000000000000 +vt 0.279214531183 0.252052009106 0.000000000000 +vt 0.283777058125 0.248220309615 0.000000000000 +vt 0.278458207846 0.270513832569 0.000000000000 +vt 0.212318181992 0.149050965905 0.000000000000 +vt 0.220562011003 0.146735697985 0.000000000000 +vt 0.222703933716 0.152291625738 0.000000000000 +vt 0.213263839483 0.154687494040 0.000000000000 +vt 0.203408792615 0.155836462975 0.000000000000 +vt 0.203189268708 0.150103569031 0.000000000000 +vt 0.193548575044 0.156050369143 0.000000000000 +vt 0.193696498871 0.150199025869 0.000000000000 +vt 0.183689251542 0.155369937420 0.000000000000 +vt 0.184210494161 0.149640426040 0.000000000000 +vt 0.193191483617 0.169719755650 0.000000000000 +vt 0.182228907943 0.169336318970 0.000000000000 +vt 0.268187999725 0.265260279179 0.000000000000 +vt 0.324253201485 0.252125859261 0.000000000000 +vt 0.231818437576 0.195312470198 0.000000000000 +vt 0.212309181690 0.181552782655 0.000000000000 +vt 0.213149681687 0.200687378645 0.000000000000 +vt 0.197734892368 0.182133242488 0.000000000000 +vt 0.196059510112 0.201420485973 0.000000000000 +vt 0.178108111024 0.197619631886 0.000000000000 +vt 0.184773385525 0.179257780313 0.000000000000 +vt 0.193671286106 0.220274075866 0.000000000000 +vt 0.204073458910 0.169701069593 0.000000000000 +vt 0.171984791756 0.217511638999 0.000000000000 +vt 0.196902945638 0.242536947131 0.000000000000 +vt 0.323984831572 0.258038192987 0.000000000000 +vt 0.310539454222 0.271224856377 0.000000000000 +vt 0.324096947908 0.268115252256 0.000000000000 +vt 0.339193135500 0.265587210655 0.000000000000 +vt 0.336792320013 0.254855424166 0.000000000000 +vt 0.340972989798 0.271843373775 0.000000000000 +vt 0.325516790152 0.274833887815 0.000000000000 +vt 0.313507229090 0.275261014700 0.000000000000 +vt 0.171768411994 0.240901872516 0.000000000000 +vt 0.215576186776 0.241010859609 0.000000000000 +vt 0.215113937855 0.219385609031 0.000000000000 +vt 0.179179176688 0.179597318172 0.000000000000 +vt 0.354237109423 0.261272788048 0.000000000000 +vt 0.356365293264 0.266201436520 0.000000000000 +vt 0.348684787750 0.251001656055 0.000000000000 +vt 0.335720360279 0.249260529876 0.000000000000 +vt 0.346057444811 0.245707139373 0.000000000000 +vt 0.367124110460 0.254228800535 0.000000000000 +vt 0.359250634909 0.246444091201 0.000000000000 +vt 0.355434030294 0.241601213813 0.000000000000 +vt 0.369936972857 0.258326172829 0.000000000000 +vt 0.169737070799 0.113030180335 0.000000000000 +vt 0.170575097203 0.120991900563 0.000000000000 +vt 0.297219276428 0.135332033038 0.000000000000 +vt 0.283211469650 0.234442397952 0.000000000000 +vt 0.292599529028 0.237945362926 0.000000000000 +vt 0.298478573561 0.140298739076 0.000000000000 +vt 0.290076673031 0.243708446622 0.000000000000 +vt 0.282434672117 0.239781066775 0.000000000000 +vt 0.305352568626 0.241858348250 0.000000000000 +vt 0.303028285503 0.248206838965 0.000000000000 +vt 0.324729174376 0.241821423173 0.000000000000 +vt 0.321562141180 0.249174103141 0.000000000000 +vt 0.347120851278 0.237402305007 0.000000000000 +vt 0.343635231256 0.232021078467 0.000000000000 +vt 0.357544183731 0.220489770174 0.000000000000 +vt 0.362244993448 0.226528212428 0.000000000000 +vt 0.363515973091 0.202669411898 0.000000000000 +vt 0.368934571743 0.200474381447 0.000000000000 +vt 0.344842731953 0.210690349340 0.000000000000 +vt 0.342417836189 0.185361966491 0.000000000000 +vt 0.364349514246 0.181216180325 0.000000000000 +vt 0.324543416500 0.218253985047 0.000000000000 +vt 0.321842014790 0.191119849682 0.000000000000 +vt 0.337232500315 0.165248394012 0.000000000000 +vt 0.356791496277 0.164284512401 0.000000000000 +vt 0.332506477833 0.147537469864 0.000000000000 +vt 0.347481101751 0.153085976839 0.000000000000 +vt 0.318637371063 0.169776722789 0.000000000000 +vt 0.312718063593 0.146633028984 0.000000000000 +vt 0.370308697224 0.181861028075 0.000000000000 +vt 0.360243141651 0.161985456944 0.000000000000 +vt 0.304652988911 0.221441268921 0.000000000000 +vt 0.303939700127 0.197721183300 0.000000000000 +vt 0.289470791817 0.148055776954 0.000000000000 +vt 0.285560518503 0.142270863056 0.000000000000 +vt 0.291176348925 0.221764370799 0.000000000000 +vt 0.288291871548 0.203909799457 0.000000000000 +vt 0.276085317135 0.156505629420 0.000000000000 +vt 0.272780030966 0.150750204921 0.000000000000 +vt 0.258125126362 0.158074513078 0.000000000000 +vt 0.260224252939 0.163233041763 0.000000000000 +vt 0.243465483189 0.162214890122 0.000000000000 +vt 0.243714034557 0.151190385222 0.000000000000 +vt 0.254636585712 0.146920993924 0.000000000000 +vt 0.229478836060 0.163604542613 0.000000000000 +vt 0.233701616526 0.153107583523 0.000000000000 +vt 0.167218700051 0.121271774173 0.000000000000 +vt 0.166369423270 0.112692907453 0.000000000000 +vt 0.243073940277 0.145069316030 0.000000000000 +vt 0.252761274576 0.141263067722 0.000000000000 +vt 0.263089358807 0.136896863580 0.000000000000 +vt 0.266313344240 0.141587063670 0.000000000000 +vt 0.277861565351 0.135119035840 0.000000000000 +vt 0.273413181305 0.131129965186 0.000000000000 +vt 0.282169669867 0.124930545688 0.000000000000 +vt 0.287077844143 0.128512978554 0.000000000000 +vt 0.289280533791 0.119594141841 0.000000000000 +vt 0.293950706720 0.122467115521 0.000000000000 +vt 0.168387711048 0.136361449957 0.000000000000 +vt 0.172123029828 0.133879333735 0.000000000000 +vt 0.159614548087 0.137594163418 0.000000000000 +vt 0.170139640570 0.142349898815 0.000000000000 +vt 0.159916698933 0.145990878344 0.000000000000 +vt 0.175263956189 0.137986391783 0.000000000000 +vt 0.158946737647 0.121140733361 0.000000000000 +vt 0.158538520336 0.111063912511 0.000000000000 +vt 0.150848120451 0.113286182284 0.000000000000 +vt 0.147537663579 0.113875642419 0.000000000000 +vt 0.150810301304 0.122010722756 0.000000000000 +vt 0.150818631053 0.137049511075 0.000000000000 +vt 0.146893724799 0.134909197688 0.000000000000 +vt 0.234794318676 0.147171825171 0.000000000000 +vt 0.280413031578 0.223018944263 0.000000000000 +vt 0.244322419167 0.167136326432 0.000000000000 +vt 0.215430051088 0.169227793813 0.000000000000 +vt 0.276956439018 0.210102006793 0.000000000000 +vt 0.230842590332 0.168110579252 0.000000000000 +vt 0.304748684168 0.128483712673 0.000000000000 +vt 0.319317579269 0.112706646323 0.000000000000 +vt 0.304126799107 0.108920201659 0.000000000000 +vt 0.306201845407 0.100410684943 0.000000000000 +vt 0.324304103851 0.102940306067 0.000000000000 +vt 0.298506706953 0.108017548919 0.000000000000 +vt 0.227834999561 0.168783783913 0.000000000000 +vt 0.173827692866 0.153802856803 0.000000000000 +vt 0.164431959391 0.150985270739 0.000000000000 +vt 0.166879624128 0.145447134972 0.000000000000 +vt 0.175091713667 0.148140892386 0.000000000000 +vt 0.170737877488 0.168616726995 0.000000000000 +vt 0.158358171582 0.168257147074 0.000000000000 +vt 0.171079888940 0.173917546868 0.000000000000 +vt 0.298551976681 0.176225617528 0.000000000000 +vt 0.284409761429 0.187349408865 0.000000000000 +vt 0.278388887644 0.172707334161 0.000000000000 +vt 0.265587240458 0.188653051853 0.000000000000 +vt 0.263487190008 0.183533251286 0.000000000000 +vt 0.172304287553 0.195576354861 0.000000000000 +vt 0.166341051459 0.215843468904 0.000000000000 +vt 0.246410295367 0.175310358405 0.000000000000 +vt 0.253420293331 0.181435257196 0.000000000000 +vt 0.258993119001 0.199986010790 0.000000000000 +vt 0.238587737083 0.209960162640 0.000000000000 +vt 0.263290882111 0.194039210677 0.000000000000 +vt 0.244794785976 0.230162426829 0.000000000000 +vt 0.267062664032 0.219509899616 0.000000000000 +vt 0.265724569559 0.241132006049 0.000000000000 +vt 0.247063919902 0.252580881119 0.000000000000 +vt 0.260249704123 0.258537381887 0.000000000000 +vt 0.247949019074 0.272692441940 0.000000000000 +vt 0.271840006113 0.241458699107 0.000000000000 +vt 0.267441391945 0.259758830070 0.000000000000 +vt 0.274886131287 0.221160054207 0.000000000000 +vt 0.248786136508 0.278353273869 0.000000000000 +vt 0.233543574810 0.288995474577 0.000000000000 +vt 0.228813290596 0.284420073032 0.000000000000 +vt 0.222581654787 0.263455659151 0.000000000000 +vt 0.201069429517 0.264848470688 0.000000000000 +vt 0.147332772613 0.121980324388 0.000000000000 +vt 0.149485930800 0.143096730113 0.000000000000 +vt 0.144085362554 0.139203354716 0.000000000000 +vt 0.274613022804 0.168164387345 0.000000000000 +vt 0.272586405277 0.198066562414 0.000000000000 +vt 0.292887955904 0.156603798270 0.000000000000 +vt 0.289811223745 0.151691362262 0.000000000000 +vt 0.308121502399 0.141383305192 0.000000000000 +vt 0.331666439772 0.141558468342 0.000000000000 +vt 0.346801817417 0.147019162774 0.000000000000 +vt 0.208444163203 0.284849673510 0.000000000000 +vt 0.207779288292 0.289209812880 0.000000000000 +vt 0.329524755478 0.248061582446 0.000000000000 +vt 0.180802538991 0.263033509254 0.000000000000 +vt 0.364997059107 0.218376457691 0.000000000000 +vt 0.185599476099 0.280001878738 0.000000000000 +vt 0.174449339509 0.263261795044 0.000000000000 +vt 0.192701548338 0.278811007738 0.000000000000 +vt 0.367429643869 0.175568386912 0.000000000000 +vt 0.166094049811 0.244550302625 0.000000000000 +vt 0.159377232194 0.173221364617 0.000000000000 +vt 0.182153701782 0.175170764327 0.000000000000 +vt 0.193075969815 0.175665423274 0.000000000000 +vt 0.313833713531 0.139958515763 0.000000000000 +vt 0.352484732866 0.149898454547 0.000000000000 +vt 0.203923046589 0.175497695804 0.000000000000 +vt 0.214893281460 0.174428433180 0.000000000000 +vt 0.226242244244 0.173432335258 0.000000000000 +vt 0.378087341785 0.245563969016 0.000000000000 +vt 0.380262136459 0.249743267894 0.000000000000 +vt 0.367841005325 0.240881398320 0.000000000000 +vt 0.362897038460 0.237351402640 0.000000000000 +vt 0.300132334232 0.100594177842 0.000000000000 +vt 0.299615830183 0.116130575538 0.000000000000 +vt 0.294845253229 0.114346668124 0.000000000000 +vt 0.312476694584 0.120818093419 0.000000000000 +vt 0.262099564075 0.265859633684 0.000000000000 +vt 0.271560132504 0.212059065700 0.000000000000 +vt 0.224148511887 0.289957106113 0.000000000000 +vt 0.191555723548 0.285657763481 0.000000000000 +vt 0.165448531508 0.236725702882 0.000000000000 +vt 0.048055123538 0.175203412771 0.000000000000 +vt 0.048704918474 0.175287619233 0.000000000000 +vt 0.049519758672 0.175945073366 0.000000000000 +vt 0.048962052912 0.176530927420 0.000000000000 +vt 0.048142258078 0.174550458789 0.000000000000 +vt 0.048840459436 0.174907326698 0.000000000000 +vt 0.048184361309 0.177168339491 0.000000000000 +vt 0.047785613686 0.175479233265 0.000000000000 +vt 0.050077687949 0.175508722663 0.000000000000 +vt 0.049611847848 0.173526674509 0.000000000000 +vt 0.050155591220 0.174321472645 0.000000000000 +vt 0.050484325737 0.174935474992 0.000000000000 +vt 0.049262631685 0.178634554148 0.000000000000 +vt 0.050630893558 0.177782341838 0.000000000000 +vt 0.053486991674 0.179326459765 0.000000000000 +vt 0.051250975579 0.172665014863 0.000000000000 +vt 0.052335549146 0.174432024360 0.000000000000 +vt 0.052290286869 0.172393932939 0.000000000000 +vt 0.060022119433 0.196368679404 0.000000000000 +vt 0.059825789183 0.195150136948 0.000000000000 +vt 0.062848724425 0.193425223231 0.000000000000 +vt 0.063640370965 0.194470614195 0.000000000000 +vt 0.057444769889 0.198157310486 0.000000000000 +vt 0.061123806983 0.204831123352 0.000000000000 +vt 0.054434444755 0.202152684331 0.000000000000 +vt 0.052125032991 0.196384206414 0.000000000000 +vt 0.065405808389 0.200892046094 0.000000000000 +vt 0.053650680929 0.194501906633 0.000000000000 +vt 0.071322210133 0.182865217328 0.000000000000 +vt 0.069051973522 0.180266022682 0.000000000000 +vt 0.072467572987 0.177512601018 0.000000000000 +vt 0.073771677911 0.182455211878 0.000000000000 +vt 0.046373885125 0.201640009880 0.000000000000 +vt 0.047620352358 0.205844104290 0.000000000000 +vt 0.044672172517 0.207344532013 0.000000000000 +vt 0.043322812766 0.201532378793 0.000000000000 +vt 0.048094075173 0.197172701359 0.000000000000 +vt 0.050799090415 0.203515991569 0.000000000000 +vt 0.043212261051 0.193465515971 0.000000000000 +vt 0.038478370756 0.209311038256 0.000000000000 +vt 0.037481162697 0.210909873247 0.000000000000 +vt 0.035782586783 0.208673626184 0.000000000000 +vt 0.036327917129 0.206941053271 0.000000000000 +vt 0.038885008544 0.211182534695 0.000000000000 +vt 0.037817772478 0.205236405134 0.000000000000 +vt 0.037915710360 0.216193586588 0.000000000000 +vt 0.036525826901 0.213128775358 0.000000000000 +vt 0.033292595297 0.211684182286 0.000000000000 +vt 0.032988864928 0.209396824241 0.000000000000 +vt 0.044357400388 0.213697507977 0.000000000000 +vt 0.040415156633 0.211841553450 0.000000000000 +vt 0.041487347335 0.208158016205 0.000000000000 +vt 0.042062167078 0.222331538796 0.000000000000 +vt 0.039700064808 0.219182297587 0.000000000000 +vt 0.046859998256 0.219299152493 0.000000000000 +vt 0.039277669042 0.216008275747 0.000000000000 +vt 0.090955741704 0.182833924890 0.000000000000 +vt 0.095942027867 0.185236781836 0.000000000000 +vt 0.091125510633 0.186936691403 0.000000000000 +vt 0.090062774718 0.185735270381 0.000000000000 +vt 0.091737933457 0.190855517983 0.000000000000 +vt 0.087909393013 0.188273668289 0.000000000000 +vt 0.096602633595 0.188918739557 0.000000000000 +vt 0.094589523971 0.190106213093 0.000000000000 +vt 0.088805288076 0.195824697614 0.000000000000 +vt 0.085034608841 0.192018002272 0.000000000000 +vt 0.037808310241 0.218160092831 0.000000000000 +vt 0.101674705744 0.180272325873 0.000000000000 +vt 0.108147457242 0.181930154562 0.000000000000 +vt 0.084888033569 0.212164208293 0.000000000000 +vt 0.086827971041 0.209401324391 0.000000000000 +vt 0.092867530882 0.213331192732 0.000000000000 +vt 0.090507008135 0.217772141099 0.000000000000 +vt 0.078402668238 0.211174651980 0.000000000000 +vt 0.081946156919 0.206284955144 0.000000000000 +vt 0.064126476645 0.226784884930 0.000000000000 +vt 0.059163603932 0.221614643931 0.000000000000 +vt 0.063531167805 0.218933045864 0.000000000000 +vt 0.066850177944 0.224536255002 0.000000000000 +vt 0.058718021959 0.224759161472 0.000000000000 +vt 0.052740599960 0.222449973226 0.000000000000 +vt 0.051313344389 0.218079030514 0.000000000000 +vt 0.056304361671 0.215266615152 0.000000000000 +vt 0.052650313824 0.225943475962 0.000000000000 +vt 0.101671561599 0.191067621112 0.000000000000 +vt 0.102857217193 0.187916800380 0.000000000000 +vt 0.090246729553 0.206087037921 0.000000000000 +vt 0.085568904877 0.202257156372 0.000000000000 +vt 0.091549478471 0.199667423964 0.000000000000 +vt 0.092842765152 0.201647892594 0.000000000000 +vt 0.092551417649 0.205803573132 0.000000000000 +vt 0.094774819911 0.209103897214 0.000000000000 +vt 0.094059728086 0.210680663586 0.000000000000 +vt 0.095144078135 0.195538073778 0.000000000000 +vt 0.099691078067 0.194344520569 0.000000000000 +vt 0.099405810237 0.196164458990 0.000000000000 +vt 0.099158152938 0.198102816939 0.000000000000 +vt 0.095910727978 0.198648139834 0.000000000000 +vt 0.040310692042 0.223760381341 0.000000000000 +vt 0.038051482290 0.225095763803 0.000000000000 +vt 0.039297934622 0.221828088164 0.000000000000 +vt 0.048715729266 0.226211413741 0.000000000000 +vt 0.048271726817 0.223471954465 0.000000000000 +vt 0.054012056440 0.227152556181 0.000000000000 +vt 0.051328878850 0.229439899325 0.000000000000 +vt 0.050317708403 0.229129895568 0.000000000000 +vt 0.048270147294 0.228640601039 0.000000000000 +vt 0.040398042649 0.225845307112 0.000000000000 +vt 0.043110940605 0.225429221988 0.000000000000 +vt 0.043746557087 0.226806730032 0.000000000000 +vt 0.041524719447 0.227182060480 0.000000000000 +vt 0.039583209902 0.227637097239 0.000000000000 +vt 0.037672769278 0.226903319359 0.000000000000 +vt 0.033523153514 0.225719004869 0.000000000000 +vt 0.036088127643 0.224684417248 0.000000000000 +vt 0.036136310548 0.226817533374 0.000000000000 +vt 0.034433234483 0.227448642254 0.000000000000 +vt 0.027782825753 0.229924663901 0.000000000000 +vt 0.030765233561 0.223758801818 0.000000000000 +vt 0.030333613977 0.231470361352 0.000000000000 +vt 0.110832214355 0.191612944007 0.000000000000 +vt 0.111078530550 0.184968620539 0.000000000000 +vt 0.106155976653 0.192477762699 0.000000000000 +vt 0.041945312172 0.228952214122 0.000000000000 +vt 0.038930263370 0.230628952384 0.000000000000 +vt 0.041834760457 0.232057794929 0.000000000000 +vt 0.044282648712 0.228836938739 0.000000000000 +vt 0.044818740338 0.232165411115 0.000000000000 +vt 0.039072107524 0.234580442309 0.000000000000 +vt 0.036424513906 0.232783898711 0.000000000000 +vt 0.106855750084 0.201680526137 0.000000000000 +vt 0.103606760502 0.198020190001 0.000000000000 +vt 0.104195758700 0.196577385068 0.000000000000 +vt 0.107200011611 0.198694974184 0.000000000000 +vt 0.109750792384 0.200388818979 0.000000000000 +vt 0.109513923526 0.203364923596 0.000000000000 +vt 0.105775907636 0.203093826771 0.000000000000 +vt 0.102690592408 0.199908792973 0.000000000000 +vt 0.050538811833 0.243682101369 0.000000000000 +vt 0.048396233469 0.240920796990 0.000000000000 +vt 0.048424374312 0.237581744790 0.000000000000 +vt 0.051719974726 0.241248175502 0.000000000000 +vt 0.046845819801 0.239993855357 0.000000000000 +vt 0.108550950885 0.195103302598 0.000000000000 +vt 0.107877954841 0.196638181806 0.000000000000 +vt 0.104663178325 0.194704324007 0.000000000000 +vt 0.111446216702 0.196098938584 0.000000000000 +vt 0.110371097922 0.198414430022 0.000000000000 +vt 0.033939246088 0.229781255126 0.000000000000 +vt 0.032943610102 0.235806867480 0.000000000000 +vt 0.036778222769 0.228347703815 0.000000000000 +vt 0.026748239994 0.237935468554 0.000000000000 +vt 0.029005868360 0.239583835006 0.000000000000 +vt 0.024600934237 0.235979780555 0.000000000000 +vt 0.036203410476 0.237542793155 0.000000000000 +vt 0.047933544964 0.242292001843 0.000000000000 +vt 0.048371467739 0.243713185191 0.000000000000 +vt 0.047026615590 0.242233023047 0.000000000000 +vt 0.047408472747 0.243272319436 0.000000000000 +vt 0.112042874098 0.199774816632 0.000000000000 +vt 0.112708196044 0.198945805430 0.000000000000 +vt 0.112421587110 0.201317355037 0.000000000000 +vt 0.115999296308 0.201012045145 0.000000000000 +vt 0.047676410526 0.245324388146 0.000000000000 +vt 0.046835009009 0.243697628379 0.000000000000 +vt 0.046366009861 0.242653593421 0.000000000000 +vt 0.116282775998 0.196683213115 0.000000000000 +vt 0.054629202932 0.245314940810 0.000000000000 +vt 0.055006336421 0.243421837687 0.000000000000 +vt 0.054401572794 0.246826633811 0.000000000000 +vt 0.049971643835 0.245547279716 0.000000000000 +vt 0.045614894480 0.244002953172 0.000000000000 +vt 0.046210203320 0.243990585208 0.000000000000 +vt 0.046083893627 0.245279118419 0.000000000000 +vt 0.044977705926 0.244760379195 0.000000000000 +vt 0.044843737036 0.243163123727 0.000000000000 +vt 0.045724090189 0.242940440774 0.000000000000 +vt 0.044279497117 0.243847146630 0.000000000000 +vt 0.042543780059 0.243463918567 0.000000000000 +vt 0.042998816818 0.241575345397 0.000000000000 +vt 0.043060954660 0.245589390397 0.000000000000 +vt 0.050320636481 0.250064343214 0.000000000000 +vt 0.046863149852 0.247579082847 0.000000000000 +vt 0.044486861676 0.247248783708 0.000000000000 +vt 0.115950897336 0.205869093537 0.000000000000 +vt 0.111902818084 0.203687563539 0.000000000000 +vt 0.067590266466 0.245651528239 0.000000000000 +vt 0.060156088322 0.247964099050 0.000000000000 +vt 0.059522051364 0.246006831527 0.000000000000 +vt 0.064255714417 0.241894826293 0.000000000000 +vt 0.075842648745 0.243643149734 0.000000000000 +vt 0.076406665146 0.251217573881 0.000000000000 +vt 0.068737201393 0.251990318298 0.000000000000 +vt 0.061447802931 0.252729058266 0.000000000000 +vt 0.101252302527 0.229214087129 0.000000000000 +vt 0.107055231929 0.225204750896 0.000000000000 +vt 0.110550090671 0.228503510356 0.000000000000 +vt 0.103125378489 0.234605416656 0.000000000000 +vt 0.093981824815 0.227124422789 0.000000000000 +vt 0.102826148272 0.221592798829 0.000000000000 +vt 0.093353867531 0.237001970410 0.000000000000 +vt 0.031605061144 0.248132273555 0.000000000000 +vt 0.033780287951 0.241846427321 0.000000000000 +vt 0.038934987038 0.242647275329 0.000000000000 +vt 0.038883429021 0.246692433953 0.000000000000 +vt 0.040764149278 0.250432223082 0.000000000000 +vt 0.034480068833 0.253740221262 0.000000000000 +vt 0.026098441333 0.256615221500 0.000000000000 +vt 0.024784889072 0.253078043461 0.000000000000 +vt 0.027103310451 0.246195510030 0.000000000000 +vt 0.022952351719 0.252045035362 0.000000000000 +vt 0.043932076544 0.254584789276 0.000000000000 +vt 0.049854788929 0.255521208048 0.000000000000 +vt 0.035871531814 0.256568402052 0.000000000000 +vt 0.127526775002 0.205384328961 0.000000000000 +vt 0.129298523068 0.208109617233 0.000000000000 +vt 0.124919943511 0.212541341782 0.000000000000 +vt 0.122282020748 0.208313822746 0.000000000000 +vt 0.130605995655 0.199026852846 0.000000000000 +vt 0.134021386504 0.202176094055 0.000000000000 +vt 0.123184211552 0.201524719596 0.000000000000 +vt 0.043590750545 0.262480288744 0.000000000000 +vt 0.045658569783 0.265317708254 0.000000000000 +vt 0.042624827474 0.268781721592 0.000000000000 +vt 0.040003802627 0.268262714148 0.000000000000 +vt 0.049783188850 0.260548025370 0.000000000000 +vt 0.050202202052 0.262952446938 0.000000000000 +vt 0.035101722926 0.267388671637 0.000000000000 +vt 0.036307651550 0.262090772390 0.000000000000 +vt 0.158384069800 0.177545472980 0.000000000000 +vt 0.163128763437 0.177713662386 0.000000000000 +vt 0.161081433296 0.184286177158 0.000000000000 +vt 0.155855119228 0.182891562581 0.000000000000 +vt 0.030163845047 0.266456753016 0.000000000000 +vt 0.028748972341 0.262917995453 0.000000000000 +vt 0.152635857463 0.180741325021 0.000000000000 +vt 0.156146481633 0.174547314644 0.000000000000 +vt 0.108293592930 0.175105020404 0.000000000000 +vt 0.103180319071 0.172587782145 0.000000000000 +vt 0.102925881743 0.166502520442 0.000000000000 +vt 0.107659325004 0.167699888349 0.000000000000 +vt 0.091472923756 0.255974650383 0.000000000000 +vt 0.083825305104 0.257546931505 0.000000000000 +vt 0.084012404084 0.249293193221 0.000000000000 +vt 0.091871894896 0.246349737048 0.000000000000 +vt 0.112725540996 0.167742446065 0.000000000000 +vt 0.113225832582 0.171109184623 0.000000000000 +vt 0.035772006959 0.183283552527 0.000000000000 +vt 0.035782817751 0.183923900127 0.000000000000 +vt 0.033255446702 0.184070467949 0.000000000000 +vt 0.033405173570 0.183254063129 0.000000000000 +vt 0.038481753320 0.182127386332 0.000000000000 +vt 0.038974162191 0.182417154312 0.000000000000 +vt 0.034431885928 0.181669190526 0.000000000000 +vt 0.036685016006 0.180374324322 0.000000000000 +vt 0.144137382507 0.199537962675 0.000000000000 +vt 0.139657467604 0.194585889578 0.000000000000 +vt 0.144188717008 0.186229258776 0.000000000000 +vt 0.148093581200 0.188943728805 0.000000000000 +vt 0.136400818825 0.206110462546 0.000000000000 +vt 0.153703317046 0.190900772810 0.000000000000 +vt 0.151239663363 0.198920801282 0.000000000000 +vt 0.150279834867 0.205067992210 0.000000000000 +vt 0.143856838346 0.206392586231 0.000000000000 +vt 0.163417190313 0.198642060161 0.000000000000 +vt 0.164253860712 0.202018722892 0.000000000000 +vt 0.160158962011 0.199008166790 0.000000000000 +vt 0.162906080484 0.192356184125 0.000000000000 +vt 0.165629789233 0.191846653819 0.000000000000 +vt 0.028680523857 0.176149964333 0.000000000000 +vt 0.028775541112 0.179067075253 0.000000000000 +vt 0.027133254334 0.179045230150 0.000000000000 +vt 0.026841904968 0.175766751170 0.000000000000 +vt 0.107328131795 0.163071155548 0.000000000000 +vt 0.102894365788 0.161774039268 0.000000000000 +vt 0.103162080050 0.158067077398 0.000000000000 +vt 0.107190564275 0.158765062690 0.000000000000 +vt 0.034622143954 0.168636307120 0.000000000000 +vt 0.034757684916 0.167032986879 0.000000000000 +vt 0.037417437881 0.167039290071 0.000000000000 +vt 0.036150719970 0.169255033135 0.000000000000 +vt 0.032856475562 0.170001432300 0.000000000000 +vt 0.031410526484 0.168317034841 0.000000000000 +vt 0.071371294558 0.162234246731 0.000000000000 +vt 0.072683498263 0.160097971559 0.000000000000 +vt 0.074752002954 0.160783797503 0.000000000000 +vt 0.072475455701 0.163342237473 0.000000000000 +vt 0.070219628513 0.164971008897 0.000000000000 +vt 0.067989014089 0.162172779441 0.000000000000 +vt 0.070951156318 0.158560618758 0.000000000000 +vt 0.071128129959 0.166468963027 0.000000000000 +vt 0.069623641670 0.166651114821 0.000000000000 +vt 0.052506666631 0.160904929042 0.000000000000 +vt 0.057779353112 0.165149331093 0.000000000000 +vt 0.056724499911 0.167911082506 0.000000000000 +vt 0.050493102521 0.165551453829 0.000000000000 +vt 0.060259658843 0.168007910252 0.000000000000 +vt 0.059231828898 0.159990578890 0.000000000000 +vt 0.061392862350 0.158380940557 0.000000000000 +vt 0.063771635294 0.161536499858 0.000000000000 +vt 0.063607268035 0.163274914026 0.000000000000 +vt 0.055211450905 0.155678853393 0.000000000000 +vt 0.057744000107 0.153191789985 0.000000000000 +vt 0.058993611485 0.163293376565 0.000000000000 +vt 0.053434979171 0.158556342125 0.000000000000 +vt 0.064857780933 0.162417531013 0.000000000000 +vt 0.064824908972 0.161404550076 0.000000000000 +vt 0.031159481034 0.208711221814 0.000000000000 +vt 0.030880516395 0.210443794727 0.000000000000 +vt 0.029724342749 0.204800054431 0.000000000000 +vt 0.031837198883 0.204756379128 0.000000000000 +vt 0.128212377429 0.176210075617 0.000000000000 +vt 0.128955841064 0.177864745259 0.000000000000 +vt 0.126242950559 0.177906855941 0.000000000000 +vt 0.125418648124 0.176409572363 0.000000000000 +vt 0.129953056574 0.174939975142 0.000000000000 +vt 0.130758658051 0.176998347044 0.000000000000 +vt 0.121036924422 0.175653725863 0.000000000000 +vt 0.121420361102 0.178308978677 0.000000000000 +vt 0.123617418110 0.183743998408 0.000000000000 +vt 0.117588669062 0.183899804950 0.000000000000 +vt 0.115403994918 0.191726654768 0.000000000000 +vt 0.122710488737 0.192234605551 0.000000000000 +vt 0.123056329787 0.196519747376 0.000000000000 +vt 0.128924548626 0.189431414008 0.000000000000 +vt 0.129672512412 0.193513929844 0.000000000000 +vt 0.133775278926 0.185372322798 0.000000000000 +vt 0.134995400906 0.187966778874 0.000000000000 +vt 0.136989831924 0.191276341677 0.000000000000 +vt 0.139916166663 0.181990936399 0.000000000000 +vt 0.141775041819 0.183941915631 0.000000000000 +vt 0.145468041301 0.175736352801 0.000000000000 +vt 0.147888004780 0.177232280374 0.000000000000 +vt 0.149156302214 0.178392961621 0.000000000000 +vt 0.151406511664 0.170416608453 0.000000000000 +vt 0.153140649199 0.171435669065 0.000000000000 +vt 0.026889864355 0.258701503277 0.000000000000 +vt 0.148213580251 0.169269666076 0.000000000000 +vt 0.138399973512 0.180339202285 0.000000000000 +vt 0.143568634987 0.174784168601 0.000000000000 +vt 0.146306514740 0.170045778155 0.000000000000 +vt 0.137052193284 0.178213953972 0.000000000000 +vt 0.141616314650 0.173843026161 0.000000000000 +vt 0.144707694650 0.169350728393 0.000000000000 +vt 0.021730657667 0.250446200371 0.000000000000 +vt 0.024742785841 0.244501665235 0.000000000000 +vt 0.018961701542 0.249092146754 0.000000000000 +vt 0.022073570639 0.243767663836 0.000000000000 +vt 0.023706618696 0.235825523734 0.000000000000 +vt 0.027095658705 0.229019328952 0.000000000000 +vt 0.029609059915 0.222379729152 0.000000000000 +vt 0.030542327091 0.216693878174 0.000000000000 +vt 0.033057313412 0.217472910881 0.000000000000 +vt 0.087314084172 0.175335809588 0.000000000000 +vt 0.094248183072 0.178092375398 0.000000000000 +vt 0.092181935906 0.179499372840 0.000000000000 +vt 0.085963152349 0.177274391055 0.000000000000 +vt 0.081338465214 0.174150139093 0.000000000000 +vt 0.082193829119 0.172002837062 0.000000000000 +vt 0.076521947980 0.167970299721 0.000000000000 +vt 0.077380686998 0.167476311326 0.000000000000 +vt 0.081656381488 0.178617432714 0.000000000000 +vt 0.077681265771 0.174922868609 0.000000000000 +vt 0.087579086423 0.180975034833 0.000000000000 +vt 0.074853092432 0.169260442257 0.000000000000 +vt 0.079015091062 0.179725423455 0.000000000000 +vt 0.076188489795 0.181088745594 0.000000000000 +vt 0.074826754630 0.175708204508 0.000000000000 +vt 0.082938641310 0.183109730482 0.000000000000 +vt 0.078197099268 0.184789612889 0.000000000000 +vt 0.070867173374 0.171145886183 0.000000000000 +vt 0.073829539120 0.169667065144 0.000000000000 +vt 0.031271602958 0.196384206414 0.000000000000 +vt 0.033982921392 0.194425582886 0.000000000000 +vt 0.037058766931 0.199865102768 0.000000000000 +vt 0.034688781947 0.202102705836 0.000000000000 +vt 0.033738177270 0.202948838472 0.000000000000 +vt 0.030448889360 0.197130590677 0.000000000000 +vt 0.028569748625 0.198085710406 0.000000000000 +vt 0.036571081728 0.216693878174 0.000000000000 +vt 0.033219423145 0.214136794209 0.000000000000 +vt 0.035667311400 0.220581635833 0.000000000000 +vt 0.030702864751 0.212936937809 0.000000000000 +vt 0.037512231618 0.221022486687 0.000000000000 +vt 0.039851140231 0.198102816939 0.000000000000 +vt 0.041124176234 0.203433588147 0.000000000000 +vt 0.037788044661 0.191379234195 0.000000000000 +vt 0.041217606515 0.195904180408 0.000000000000 +vt 0.067828707397 0.174960240722 0.000000000000 +vt 0.038927104324 0.189132183790 0.000000000000 +vt 0.041049417108 0.184728831053 0.000000000000 +vt 0.043036188930 0.186458468437 0.000000000000 +vt 0.065335564315 0.175491616130 0.000000000000 +vt 0.064928933978 0.179175376892 0.000000000000 +vt 0.059944216162 0.177007809281 0.000000000000 +vt 0.060216885060 0.175005495548 0.000000000000 +vt 0.055878814310 0.175014957786 0.000000000000 +vt 0.064486503601 0.180831611156 0.000000000000 +vt 0.059665244073 0.178134486079 0.000000000000 +vt 0.055603001267 0.176066651940 0.000000000000 +vt 0.059327062219 0.179134845734 0.000000000000 +vt 0.054891061038 0.176806747913 0.000000000000 +vt 0.052252914757 0.175443425775 0.000000000000 +vt 0.054579224437 0.177642062306 0.000000000000 +vt 0.051933418959 0.176275372505 0.000000000000 +vt 0.054217841476 0.178369775414 0.000000000000 +vt 0.051375713199 0.176691457629 0.000000000000 +vt 0.058970417827 0.180060461164 0.000000000000 +vt 0.058582257479 0.180961072445 0.000000000000 +vt 0.057680051774 0.181828826666 0.000000000000 +vt 0.062502883375 0.183891922235 0.000000000000 +vt 0.061697278172 0.184658572078 0.000000000000 +vt 0.050166402012 0.187552273273 0.000000000000 +vt 0.051037531346 0.187452524900 0.000000000000 +vt 0.054431293160 0.193168088794 0.000000000000 +vt 0.049586858600 0.182190433145 0.000000000000 +vt 0.049161311239 0.182690724730 0.000000000000 +vt 0.048391725868 0.182542562485 0.000000000000 +vt 0.049334455281 0.187815472484 0.000000000000 +vt 0.048377547413 0.188716322184 0.000000000000 +vt 0.047788541764 0.182509928942 0.000000000000 +vt 0.046637099236 0.188832953572 0.000000000000 +vt 0.046065207571 0.182266756892 0.000000000000 +vt 0.047180842608 0.178921401501 0.000000000000 +vt 0.047978799790 0.180811345577 0.000000000000 +vt 0.042535897344 0.180803701282 0.000000000000 +vt 0.063310064375 0.188303396106 0.000000000000 +vt 0.064299397171 0.188258126378 0.000000000000 +vt 0.065667442977 0.187005370855 0.000000000000 +vt 0.067313097417 0.191977471113 0.000000000000 +vt 0.069538079202 0.197437480092 0.000000000000 +vt 0.067683927715 0.207009509206 0.000000000000 +vt 0.063888035715 0.210395619273 0.000000000000 +vt 0.073146872222 0.203862056136 0.000000000000 +vt 0.071523271501 0.214295744896 0.000000000000 +vt 0.073026858270 0.194442689419 0.000000000000 +vt 0.077325977385 0.201174154878 0.000000000000 +vt 0.081237144768 0.196533709764 0.000000000000 +vt 0.076219789684 0.190154388547 0.000000000000 +vt 0.081086061895 0.187698617578 0.000000000000 +vt 0.069806240499 0.189532741904 0.000000000000 +vt 0.071710377932 0.187683090568 0.000000000000 +vt 0.067168101668 0.185359716415 0.000000000000 +vt 0.069611258805 0.183986946940 0.000000000000 +vt 0.063944101334 0.182054877281 0.000000000000 +vt 0.063255354762 0.183039709926 0.000000000000 +vt 0.074488565326 0.222574487329 0.000000000000 +vt 0.069771796465 0.223591953516 0.000000000000 +vt 0.067730538547 0.216421216726 0.000000000000 +vt 0.060474004596 0.213022723794 0.000000000000 +vt 0.053378012031 0.208070665598 0.000000000000 +vt 0.057214211673 0.207134246826 0.000000000000 +vt 0.049100745469 0.211366251111 0.000000000000 +vt 0.064397566020 0.232721552253 0.000000000000 +vt 0.067054398358 0.233078405261 0.000000000000 +vt 0.070033647120 0.233986899257 0.000000000000 +vt 0.075478121638 0.233488187194 0.000000000000 +vt 0.081782467663 0.220023691654 0.000000000000 +vt 0.083951614797 0.230261281133 0.000000000000 +vt 0.084691703320 0.240565523505 0.000000000000 +vt 0.062245752662 0.239568278193 0.000000000000 +vt 0.061321716756 0.238784536719 0.000000000000 +vt 0.063168220222 0.233371362090 0.000000000000 +vt 0.063390895724 0.227339446545 0.000000000000 +vt 0.058965694159 0.225806355476 0.000000000000 +vt 0.050889376551 0.232737079263 0.000000000000 +vt 0.051590736955 0.236221358180 0.000000000000 +vt 0.050666701049 0.236511155963 0.000000000000 +vt 0.049805026501 0.232663914561 0.000000000000 +vt 0.049557130784 0.236889854074 0.000000000000 +vt 0.048572305590 0.232626542449 0.000000000000 +vt 0.052862185985 0.239495113492 0.000000000000 +vt 0.052227925509 0.240581259131 0.000000000000 +vt 0.055151116103 0.242463573813 0.000000000000 +vt 0.058518532664 0.242689415812 0.000000000000 +vt 0.058837804943 0.243750557303 0.000000000000 +vt 0.027835739776 0.198754191399 0.000000000000 +vt 0.102103173733 0.178665846586 0.000000000000 +vt 0.020530804992 0.243255212903 0.000000000000 +vt 0.017403624952 0.246614530683 0.000000000000 +vt 0.142661705613 0.167488694191 0.000000000000 +vt 0.138711810112 0.171222224832 0.000000000000 +vt 0.136936917901 0.169240176678 0.000000000000 +vt 0.140343055129 0.166225120425 0.000000000000 +vt 0.133923217654 0.174637824297 0.000000000000 +vt 0.132665947080 0.181584313512 0.000000000000 +vt 0.128641068935 0.183620840311 0.000000000000 +vt 0.132804647088 0.173296123743 0.000000000000 +vt 0.065053895116 0.163422614336 0.000000000000 +vt 0.063069596887 0.163681775331 0.000000000000 +vt 0.064668200910 0.167430609465 0.000000000000 +vt 0.063209198415 0.168160781264 0.000000000000 +vt 0.063756324351 0.165098443627 0.000000000000 +vt 0.065168723464 0.164823085070 0.000000000000 +vt 0.065913312137 0.169554486871 0.000000000000 +vt 0.062940359116 0.170286476612 0.000000000000 +vt 0.061481129378 0.167505130172 0.000000000000 +vt 0.060151811689 0.170392528176 0.000000000000 +vt 0.060107905418 0.172657802701 0.000000000000 +vt 0.057210605592 0.172009363770 0.000000000000 +vt 0.057532805949 0.170253381133 0.000000000000 +vt 0.063048884273 0.172646328807 0.000000000000 +vt 0.048934575170 0.168896585703 0.000000000000 +vt 0.049731176347 0.167191714048 0.000000000000 +vt 0.042593311518 0.164057999849 0.000000000000 +vt 0.043497528881 0.162384659052 0.000000000000 +vt 0.044287156314 0.160732463002 0.000000000000 +vt 0.033884081990 0.156096965075 0.000000000000 +vt 0.034770067781 0.153932109475 0.000000000000 +vt 0.036515694112 0.150483399630 0.000000000000 +vt 0.046103026718 0.155740767717 0.000000000000 +vt 0.039584781975 0.147428721189 0.000000000000 +vt 0.047613140196 0.151688650250 0.000000000000 +vt 0.043061178178 0.143725812435 0.000000000000 +vt 0.050141181797 0.149046242237 0.000000000000 +vt 0.047894362360 0.140243798494 0.000000000000 +vt 0.053615551442 0.146738171577 0.000000000000 +vt 0.053296964616 0.138070821762 0.000000000000 +vt 0.056939747185 0.144772797823 0.000000000000 +vt 0.060318645090 0.151515960693 0.000000000000 +vt 0.060732934624 0.143554925919 0.000000000000 +vt 0.062500409782 0.150664418936 0.000000000000 +vt 0.064538739622 0.156376838684 0.000000000000 +vt 0.063412509859 0.157254040241 0.000000000000 +vt 0.065951131284 0.161686450243 0.000000000000 +vt 0.064260445535 0.149016290903 0.000000000000 +vt 0.065228387713 0.155802473426 0.000000000000 +vt 0.067762054503 0.156014785171 0.000000000000 +vt 0.067490294576 0.161968335509 0.000000000000 +vt 0.068041928113 0.150318130851 0.000000000000 +vt 0.072004206479 0.152485474944 0.000000000000 +vt 0.068994782865 0.144661113620 0.000000000000 +vt 0.072091117501 0.145224899054 0.000000000000 +vt 0.075190380216 0.145809859037 0.000000000000 +vt 0.074453443289 0.154495447874 0.000000000000 +vt 0.078592248261 0.146916940808 0.000000000000 +vt 0.077539868653 0.155462488532 0.000000000000 +vt 0.083513915539 0.149794429541 0.000000000000 +vt 0.080134786665 0.156474098563 0.000000000000 +vt 0.076403960586 0.162150710821 0.000000000000 +vt 0.082034416497 0.157592907548 0.000000000000 +vt 0.077113650739 0.164572715759 0.000000000000 +vt 0.075192175806 0.166414484382 0.000000000000 +vt 0.073551476002 0.164994657040 0.000000000000 +vt 0.072395749390 0.167818546295 0.000000000000 +vt 0.086013361812 0.151608720422 0.000000000000 +vt 0.082925580442 0.138807758689 0.000000000000 +vt 0.088270992041 0.142190933228 0.000000000000 +vt 0.092381425202 0.144706368446 0.000000000000 +vt 0.033781412989 0.159828022122 0.000000000000 +vt 0.032040510327 0.158961847425 0.000000000000 +vt 0.032221313566 0.155238896608 0.000000000000 +vt 0.033128913492 0.152995914221 0.000000000000 +vt 0.034247931093 0.149646267295 0.000000000000 +vt 0.036089029163 0.146674454212 0.000000000000 +vt 0.039337117225 0.142542183399 0.000000000000 +vt 0.044477183372 0.138003721833 0.000000000000 +vt 0.051182758063 0.134617850184 0.000000000000 +vt 0.057887878269 0.132730364799 0.000000000000 +vt 0.058954205364 0.136307403445 0.000000000000 +vt 0.065197318792 0.135614156723 0.000000000000 +vt 0.065236717463 0.143920347095 0.000000000000 +vt 0.070889234543 0.135065451264 0.000000000000 +vt 0.075503565371 0.136102512479 0.000000000000 +vt 0.079501420259 0.136758163571 0.000000000000 +vt 0.080287218094 0.135892897844 0.000000000000 +vt 0.083798281848 0.137524142861 0.000000000000 +vt 0.089716039598 0.140691623092 0.000000000000 +vt 0.143560752273 0.209685027599 0.000000000000 +vt 0.135448858142 0.212041050196 0.000000000000 +vt 0.136980593204 0.209762930870 0.000000000000 +vt 0.149614498019 0.207925885916 0.000000000000 +vt 0.093936122954 0.143564611673 0.000000000000 +vt 0.131235316396 0.212935358286 0.000000000000 +vt 0.130912885070 0.210914373398 0.000000000000 +vt 0.130802333355 0.214139938354 0.000000000000 +vt 0.126496925950 0.214841082692 0.000000000000 +vt 0.127033010125 0.216304361820 0.000000000000 +vt 0.123436622322 0.220508232713 0.000000000000 +vt 0.122662074864 0.219344407320 0.000000000000 +vt 0.127302527428 0.217270508409 0.000000000000 +vt 0.124103523791 0.221681743860 0.000000000000 +vt 0.121738053858 0.226466968656 0.000000000000 +vt 0.119399368763 0.224682837725 0.000000000000 +vt 0.071574836969 0.132907792926 0.000000000000 +vt 0.076760835946 0.134390205145 0.000000000000 +vt 0.065341189504 0.132802188396 0.000000000000 +vt 0.115896403790 0.229595944285 0.000000000000 +vt 0.113967284560 0.229628607631 0.000000000000 +vt 0.118455067277 0.224354103208 0.000000000000 +vt 0.118444040418 0.231105849147 0.000000000000 +vt 0.116246968508 0.222922116518 0.000000000000 +vt 0.121256656945 0.217508718371 0.000000000000 +vt 0.113348767161 0.220198199153 0.000000000000 +vt 0.118779063225 0.214370504022 0.000000000000 +vt 0.109506264329 0.216642320156 0.000000000000 +vt 0.113111913204 0.210065305233 0.000000000000 +vt 0.106790229678 0.213530674577 0.000000000000 +vt 0.110659286380 0.209100753069 0.000000000000 +vt 0.105615362525 0.211812064052 0.000000000000 +vt 0.108720943332 0.208151713014 0.000000000000 +vt 0.104931339622 0.210859879851 0.000000000000 +vt 0.107262387872 0.207199767232 0.000000000000 +vt 0.104268938303 0.209731861949 0.000000000000 +vt 0.106411516666 0.206867888570 0.000000000000 +vt 0.099854543805 0.210535883904 0.000000000000 +vt 0.101010948420 0.212820082903 0.000000000000 +vt 0.101252302527 0.214150756598 0.000000000000 +vt 0.100541725755 0.216653347015 0.000000000000 +vt 0.109188362956 0.234976246953 0.000000000000 +vt 0.112999781966 0.234926506877 0.000000000000 +vt 0.116525933146 0.235893979669 0.000000000000 +vt 0.113097950816 0.239953324199 0.000000000000 +vt 0.109616830945 0.240531280637 0.000000000000 +vt 0.105305328965 0.241614267230 0.000000000000 +vt 0.103323295712 0.248255476356 0.000000000000 +vt 0.107525810599 0.246296599507 0.000000000000 +vt 0.106832340360 0.251131802797 0.000000000000 +vt 0.103008523583 0.253494113684 0.000000000000 +vt 0.111104875803 0.245297834277 0.000000000000 +vt 0.110048457980 0.249654576182 0.000000000000 +vt 0.096914246678 0.264147579670 0.000000000000 +vt 0.095100626349 0.260864347219 0.000000000000 +vt 0.103348061442 0.257600039244 0.000000000000 +vt 0.106801033020 0.254496067762 0.000000000000 +vt 0.169106185436 0.192728593946 0.000000000000 +vt 0.170338675380 0.195399373770 0.000000000000 +vt 0.099874362350 0.170928612351 0.000000000000 +vt 0.097011074424 0.169942215085 0.000000000000 +vt 0.095663733780 0.165094852448 0.000000000000 +vt 0.099198222160 0.165355354548 0.000000000000 +vt 0.093683719635 0.168949723244 0.000000000000 +vt 0.092458203435 0.165013566613 0.000000000000 +vt 0.090356379747 0.159508973360 0.000000000000 +vt 0.094260796905 0.160128593445 0.000000000000 +vt 0.099197551608 0.159526988864 0.000000000000 +vt 0.033023308963 0.163863465190 0.000000000000 +vt 0.037694837898 0.165538623929 0.000000000000 +vt 0.027775174007 0.166775852442 0.000000000000 +vt 0.088919214904 0.165129065514 0.000000000000 +vt 0.087757416070 0.161358624697 0.000000000000 +vt 0.041305195540 0.168003618717 0.000000000000 +vt 0.039413448423 0.169479295611 0.000000000000 +vt 0.041364412755 0.172144010663 0.000000000000 +vt 0.039971377701 0.172480389476 0.000000000000 +vt 0.038754414767 0.172880932689 0.000000000000 +vt 0.037746172398 0.170685455203 0.000000000000 +vt 0.041679184884 0.177758023143 0.000000000000 +vt 0.040490355343 0.177621126175 0.000000000000 +vt 0.038885232061 0.177430868149 0.000000000000 +vt 0.031558681279 0.181349694729 0.000000000000 +vt 0.032375093549 0.182451382279 0.000000000000 +vt 0.031321812421 0.183208808303 0.000000000000 +vt 0.029306901619 0.181765779853 0.000000000000 +vt 0.030110931024 0.184735804796 0.000000000000 +vt 0.026748467237 0.183448821306 0.000000000000 +vt 0.025492548943 0.179579749703 0.000000000000 +vt 0.025225963444 0.184383660555 0.000000000000 +vt 0.023586835712 0.180322989821 0.000000000000 +vt 0.023586835712 0.175274342299 0.000000000000 +vt 0.025453597307 0.175285145640 0.000000000000 +vt 0.025660742074 0.170873910189 0.000000000000 +vt 0.026788990945 0.172416672111 0.000000000000 +vt 0.028133621439 0.171821355820 0.000000000000 +vt 0.117384001613 0.164725363255 0.000000000000 +vt 0.112397044897 0.164127796888 0.000000000000 +vt 0.111941114068 0.159629434347 0.000000000000 +vt 0.116640761495 0.160034939647 0.000000000000 +vt 0.117678731680 0.167584165931 0.000000000000 +vt 0.121842063963 0.165160596371 0.000000000000 +vt 0.122367806733 0.167285159230 0.000000000000 +vt 0.123244337738 0.169767260551 0.000000000000 +vt 0.118570342660 0.170628488064 0.000000000000 +vt 0.076927222311 0.256597876549 0.000000000000 +vt 0.069735996425 0.256459414959 0.000000000000 +vt 0.126834645867 0.166902616620 0.000000000000 +vt 0.127785488963 0.169480189681 0.000000000000 +vt 0.062401559204 0.256990790367 0.000000000000 +vt 0.061513323337 0.259970039129 0.000000000000 +vt 0.055246125907 0.260234832764 0.000000000000 +vt 0.055534552783 0.256361246109 0.000000000000 +vt 0.055091898888 0.251717656851 0.000000000000 +vt 0.055174525827 0.262654781342 0.000000000000 +vt 0.131237342954 0.166645258665 0.000000000000 +vt 0.126206025481 0.164752155542 0.000000000000 +vt 0.130478784442 0.164564833045 0.000000000000 +vt 0.128323823214 0.157905861735 0.000000000000 +vt 0.124372817576 0.158351898193 0.000000000000 +vt 0.120934464037 0.159285396338 0.000000000000 +vt 0.031951349229 0.187119752169 0.000000000000 +vt 0.032728809863 0.185262441635 0.000000000000 +vt 0.035856213421 0.185055300593 0.000000000000 +vt 0.035672266036 0.187161847949 0.000000000000 +vt 0.028532592580 0.186527818441 0.000000000000 +vt 0.128893464804 0.155811250210 0.000000000000 +vt 0.132322803140 0.155696868896 0.000000000000 +vt 0.132445976138 0.157863765955 0.000000000000 +vt 0.134399861097 0.164290815592 0.000000000000 +vt 0.137302115560 0.158585160971 0.000000000000 +vt 0.138255640864 0.163551405072 0.000000000000 +vt 0.141750499606 0.159247785807 0.000000000000 +vt 0.142176494002 0.162172332406 0.000000000000 +vt 0.167481020093 0.185227319598 0.000000000000 +vt 0.170263931155 0.178922742605 0.000000000000 +vt 0.172615230083 0.181126117706 0.000000000000 +vt 0.170385509729 0.185613691807 0.000000000000 +vt 0.137086644769 0.156343296170 0.000000000000 +vt 0.141829982400 0.156543448567 0.000000000000 +vt 0.084312535822 0.167729392648 0.000000000000 +vt 0.084777034819 0.164774447680 0.000000000000 +vt 0.089359387755 0.168153122067 0.000000000000 +vt 0.136736750603 0.154593154788 0.000000000000 +vt 0.141693994403 0.153399839997 0.000000000000 +vt 0.084533862770 0.161654248834 0.000000000000 +vt 0.132128268480 0.155035361648 0.000000000000 +vt 0.168764844537 0.189312979579 0.000000000000 +vt 0.165124982595 0.185052827001 0.000000000000 +vt 0.167759761214 0.178524002433 0.000000000000 +vt 0.158733054996 0.192014843225 0.000000000000 +vt 0.156409904361 0.199086070061 0.000000000000 +vt 0.155019804835 0.205063492060 0.000000000000 +vt 0.157773226500 0.205484077334 0.000000000000 +vt 0.157165527344 0.207992762327 0.000000000000 +vt 0.154318660498 0.207045525312 0.000000000000 +vt 0.039390247315 0.183007746935 0.000000000000 +vt 0.109839722514 0.252810090780 0.000000000000 +vt 0.161794945598 0.206194669008 0.000000000000 +vt 0.160380065441 0.209382638335 0.000000000000 +vt 0.030997594818 0.172260865569 0.000000000000 +vt 0.028872353956 0.171737149358 0.000000000000 +vt 0.040024068207 0.239364311099 0.000000000000 +vt 0.041931357235 0.237304374576 0.000000000000 +vt 0.044145528227 0.240434691310 0.000000000000 +vt 0.045424859971 0.239937767386 0.000000000000 +vt 0.044002104551 0.236135587096 0.000000000000 +vt 0.100529327989 0.192775428295 0.000000000000 +vt 0.086145527661 0.185369163752 0.000000000000 +vt 0.074024297297 0.186244800687 0.000000000000 +vt 0.062078233808 0.164369389415 0.000000000000 +vt 0.030012762174 0.176220208406 0.000000000000 +vt 0.112108394504 0.179039835930 0.000000000000 +vt 0.112108394504 0.176560640335 0.000000000000 +vt 0.069380022585 0.168249264359 0.000000000000 +vt 0.065014265478 0.171704053879 0.000000000000 +vt 0.048454102129 0.180325239897 0.000000000000 +vt 0.146105453372 0.080951645970 0.000000000000 +vt 0.144684508443 0.079957589507 0.000000000000 +vt 0.149933993816 0.076390907168 0.000000000000 +vt 0.151316225529 0.078695371747 0.000000000000 +vt 0.153613030910 0.080021530390 0.000000000000 +vt 0.145809382200 0.082432046533 0.000000000000 +vt 0.143933385611 0.080989018083 0.000000000000 +vt 0.154818966985 0.082354143262 0.000000000000 +vt 0.145563289523 0.085070192814 0.000000000000 +vt 0.143352255225 0.081543803215 0.000000000000 +vt 0.144436612725 0.082785755396 0.000000000000 +vt 0.143652841449 0.084858089685 0.000000000000 +vt 0.146591797471 0.088287875056 0.000000000000 +vt 0.154597863555 0.085654467344 0.000000000000 +vt 0.153173521161 0.089168235660 0.000000000000 +vt 0.152664005756 0.094450607896 0.000000000000 +vt 0.140441447496 0.090233892202 0.000000000000 +vt 0.138348862529 0.080004423857 0.000000000000 +vt 0.139517411590 0.078812226653 0.000000000000 +vt 0.140799894929 0.078904315829 0.000000000000 +vt 0.140338554978 0.079870223999 0.000000000000 +vt 0.139646649361 0.078048720956 0.000000000000 +vt 0.142411112785 0.080079168081 0.000000000000 +vt 0.142763257027 0.078845098615 0.000000000000 +vt 0.144676625729 0.071552544832 0.000000000000 +vt 0.147951960564 0.073969364166 0.000000000000 +vt 0.165310516953 0.075303182006 0.000000000000 +vt 0.162680253386 0.081052973866 0.000000000000 +vt 0.159637063742 0.079843878746 0.000000000000 +vt 0.160642147064 0.076046422124 0.000000000000 +vt 0.138225704432 0.079229891300 0.000000000000 +vt 0.137284547091 0.079804927111 0.000000000000 +vt 0.137759849429 0.078385323286 0.000000000000 +vt 0.137967005372 0.069246500731 0.000000000000 +vt 0.141144156456 0.069925799966 0.000000000000 +vt 0.135236993432 0.081436410546 0.000000000000 +vt 0.135894671082 0.079535424709 0.000000000000 +vt 0.134577959776 0.080499768257 0.000000000000 +vt 0.135107755661 0.084568321705 0.000000000000 +vt 0.134055823088 0.084435924888 0.000000000000 +vt 0.133896872401 0.080932959914 0.000000000000 +vt 0.133128866553 0.069963172078 0.000000000000 +vt 0.135289907455 0.069450497627 0.000000000000 +vt 0.163844078779 0.085923969746 0.000000000000 +vt 0.162402868271 0.094224542379 0.000000000000 +vt 0.132371440530 0.082354143262 0.000000000000 +vt 0.128753200173 0.071022763848 0.000000000000 +vt 0.105484560132 0.044374290854 0.000000000000 +vt 0.104406282306 0.042068254203 0.000000000000 +vt 0.105255573988 0.042082216591 0.000000000000 +vt 0.106301188469 0.043263372034 0.000000000000 +vt 0.105341121554 0.039797786623 0.000000000000 +vt 0.107362121344 0.040538098663 0.000000000000 +vt 0.102971151471 0.044095326215 0.000000000000 +vt 0.109018579125 0.049298208207 0.000000000000 +vt 0.103879645467 0.048260468990 0.000000000000 +vt 0.106288582087 0.055648040026 0.000000000000 +vt 0.099673971534 0.057078447193 0.000000000000 +vt 0.097955361009 0.055400144309 0.000000000000 +vt 0.110525324941 0.046463962644 0.000000000000 +vt 0.102905854583 0.041538458318 0.000000000000 +vt 0.103917017579 0.039889875799 0.000000000000 +vt 0.118358477950 0.052561160177 0.000000000000 +vt 0.113901987672 0.058519665152 0.000000000000 +vt 0.118132635951 0.047917779535 0.000000000000 +vt 0.118020296097 0.061421241611 0.000000000000 +vt 0.122165165842 0.055722784251 0.000000000000 +vt 0.126941144466 0.044675100595 0.000000000000 +vt 0.128192335367 0.048273082823 0.000000000000 +vt 0.129756718874 0.051271017641 0.000000000000 +vt 0.104457631707 0.038520034403 0.000000000000 +vt 0.106935217977 0.039335094392 0.000000000000 +vt 0.110430315137 0.041719038039 0.000000000000 +vt 0.109509423375 0.038915853947 0.000000000000 +vt 0.103522777557 0.036517728120 0.000000000000 +vt 0.097110807896 0.038964264095 0.000000000000 +vt 0.099772140384 0.040999215096 0.000000000000 +vt 0.097977206111 0.041525851935 0.000000000000 +vt 0.096010699868 0.040015961975 0.000000000000 +vt 0.098011419177 0.043816577643 0.000000000000 +vt 0.095403008163 0.041276607662 0.000000000000 +vt 0.100398525596 0.044103201479 0.000000000000 +vt 0.092719830573 0.059615265578 0.000000000000 +vt 0.090432256460 0.055584091693 0.000000000000 +vt 0.103748843074 0.062081839889 0.000000000000 +vt 0.109088838100 0.036444552243 0.000000000000 +vt 0.116189554334 0.040374409407 0.000000000000 +vt 0.117214694619 0.043208893389 0.000000000000 +vt 0.100217953324 0.036773279309 0.000000000000 +vt 0.101216748357 0.031871203333 0.000000000000 +vt 0.129965662956 0.062457408756 0.000000000000 +vt 0.134202405810 0.063657253981 0.000000000000 +vt 0.126032650471 0.071523055434 0.000000000000 +vt 0.126584276557 0.061618920416 0.000000000000 +vt 0.126425325871 0.056240197271 0.000000000000 +vt 0.131047084928 0.056420769542 0.000000000000 +vt 0.136421307921 0.063021421432 0.000000000000 +vt 0.135489389300 0.060313250870 0.000000000000 +vt 0.137195616961 0.059194456786 0.000000000000 +vt 0.136729776859 0.057686138898 0.000000000000 +vt 0.156631231308 0.049092646688 0.000000000000 +vt 0.157220244408 0.050672557205 0.000000000000 +vt 0.155348747969 0.051238145679 0.000000000000 +vt 0.152967959642 0.049707990140 0.000000000000 +vt 0.072539396584 0.024206470698 0.000000000000 +vt 0.073009975255 0.022490788251 0.000000000000 +vt 0.074167720973 0.023411672562 0.000000000000 +vt 0.075313083827 0.024346742779 0.000000000000 +vt 0.078608684242 0.024770483375 0.000000000000 +vt 0.076113961637 0.022561032325 0.000000000000 +vt 0.074407733977 0.021668069065 0.000000000000 +vt 0.085832558572 0.034895710647 0.000000000000 +vt 0.088694959879 0.030288133770 0.000000000000 +vt 0.092079266906 0.032754708081 0.000000000000 +vt 0.090345121920 0.035805787891 0.000000000000 +vt 0.080766797066 0.037424653769 0.000000000000 +vt 0.083163343370 0.031321149319 0.000000000000 +vt 0.082765944302 0.039579611272 0.000000000000 +vt 0.075439170003 0.026426948607 0.000000000000 +vt 0.079141400754 0.028394807130 0.000000000000 +vt 0.065825045109 0.019637845457 0.000000000000 +vt 0.070792645216 0.020507168025 0.000000000000 +vt 0.069720685482 0.023076642305 0.000000000000 +vt 0.066453002393 0.021015118808 0.000000000000 +vt 0.074630416930 0.020555578172 0.000000000000 +vt 0.078393660486 0.021780196577 0.000000000000 +vt 0.118059247732 0.097139850259 0.000000000000 +vt 0.114740446210 0.098579719663 0.000000000000 +vt 0.114250972867 0.095418095589 0.000000000000 +vt 0.117238104343 0.094657748938 0.000000000000 +vt 0.109638676047 0.091790616512 0.000000000000 +vt 0.115868493915 0.090512856841 0.000000000000 +vt 0.106643870473 0.097877010703 0.000000000000 +vt 0.080275960267 0.020345281810 0.000000000000 +vt 0.084542199969 0.020472947508 0.000000000000 +vt 0.082198783755 0.026802506298 0.000000000000 +vt 0.087908044457 0.024324897677 0.000000000000 +vt 0.082033514977 0.045575719327 0.000000000000 +vt 0.083040185273 0.050441998988 0.000000000000 +vt 0.079672768712 0.048204403371 0.000000000000 +vt 0.080490976572 0.044366639107 0.000000000000 +vt 0.076486371458 0.049105029553 0.000000000000 +vt 0.078130230308 0.043149676174 0.000000000000 +vt 0.081851139665 0.052377205342 0.000000000000 +vt 0.066788040102 0.023179534823 0.000000000000 +vt 0.064600206912 0.023336920887 0.000000000000 +vt 0.064584665000 0.022389467806 0.000000000000 +vt 0.066289320588 0.022115226835 0.000000000000 +vt 0.060966644436 0.023584589362 0.000000000000 +vt 0.061784636229 0.022029668093 0.000000000000 +vt 0.063617177308 0.021110359579 0.000000000000 +vt 0.091050982475 0.028800085187 0.000000000000 +vt 0.094201579690 0.030098102987 0.000000000000 +vt 0.090151712298 0.025628998876 0.000000000000 +vt 0.093743383884 0.027991328388 0.000000000000 +vt 0.066948570311 0.027383632958 0.000000000000 +vt 0.060868475586 0.030944012105 0.000000000000 +vt 0.062462348491 0.027807373554 0.000000000000 +vt 0.066029265523 0.025897156447 0.000000000000 +vt 0.059814978391 0.026431452483 0.000000000000 +vt 0.064851254225 0.024653624743 0.000000000000 +vt 0.054694723338 0.030345775187 0.000000000000 +vt 0.047921154648 0.032958924770 0.000000000000 +vt 0.043463084847 0.030261565000 0.000000000000 +vt 0.047107893974 0.029183298349 0.000000000000 +vt 0.050095032901 0.030151013285 0.000000000000 +vt 0.047431897372 0.026514083147 0.000000000000 +vt 0.050590369850 0.027707632631 0.000000000000 +vt 0.042810361832 0.027617346495 0.000000000000 +vt 0.047869820148 0.042448315769 0.000000000000 +vt 0.045954655856 0.041697423905 0.000000000000 +vt 0.046084117144 0.036520879716 0.000000000000 +vt 0.049386020750 0.038101017475 0.000000000000 +vt 0.044854771346 0.041064735502 0.000000000000 +vt 0.043885473162 0.036986950785 0.000000000000 +vt 0.051757570356 0.034210111946 0.000000000000 +vt 0.154328122735 0.043087299913 0.000000000000 +vt 0.154911056161 0.037254884839 0.000000000000 +vt 0.167563647032 0.034898862243 0.000000000000 +vt 0.161921262741 0.041362386197 0.000000000000 +vt 0.153502255678 0.030707374215 0.000000000000 +vt 0.163250565529 0.027692098171 0.000000000000 +vt 0.103868618608 0.102910131216 0.000000000000 +vt 0.111994698644 0.103447571397 0.000000000000 +vt 0.106992870569 0.109234735370 0.000000000000 +vt 0.101400464773 0.108030393720 0.000000000000 +vt 0.096481271088 0.122771069407 0.000000000000 +vt 0.089952446520 0.124826297164 0.000000000000 +vt 0.088087268174 0.119303897023 0.000000000000 +vt 0.094165779650 0.117781624198 0.000000000000 +vt 0.070482604206 0.058522816747 0.000000000000 +vt 0.077887058258 0.065487995744 0.000000000000 +vt 0.071217961609 0.071155369282 0.000000000000 +vt 0.066381409764 0.064373925328 0.000000000000 +vt 0.070337608457 0.087279632688 0.000000000000 +vt 0.063515856862 0.072370767593 0.000000000000 +vt 0.079217955470 0.082213863730 0.000000000000 +vt 0.050732221454 0.021630693227 0.000000000000 +vt 0.048374619335 0.020630329847 0.000000000000 +vt 0.048564653844 0.016099080443 0.000000000000 +vt 0.051573622972 0.018779102713 0.000000000000 +vt 0.045837800950 0.018292993307 0.000000000000 +vt 0.046268071979 0.015899594873 0.000000000000 +vt 0.051961567253 0.016921799630 0.000000000000 +vt 0.048754904419 0.013884905726 0.000000000000 +vt 0.026494264603 0.028064500540 0.000000000000 +vt 0.026460040361 0.028243724257 0.000000000000 +vt 0.026340033859 0.028218735009 0.000000000000 +vt 0.026315040886 0.028072383255 0.000000000000 +vt 0.026271361858 0.028111334890 0.000000000000 +vt 0.026316616684 0.028287407011 0.000000000000 +vt 0.026220027357 0.028083190322 0.000000000000 +vt 0.025830507278 0.027961608022 0.000000000000 +vt 0.026793498546 0.027743656188 0.000000000000 +vt 0.022305700928 0.037761259824 0.000000000000 +vt 0.020612087101 0.038116555661 0.000000000000 +vt 0.018779549748 0.032605204731 0.000000000000 +vt 0.019568044692 0.032413598150 0.000000000000 +vt 0.026293199509 0.029374904931 0.000000000000 +vt 0.026729550213 0.056939747185 0.000000000000 +vt 0.025282029063 0.059646341950 0.000000000000 +vt 0.023371588439 0.056319449097 0.000000000000 +vt 0.024051103741 0.054049205035 0.000000000000 +vt 0.023613180965 0.061910506338 0.000000000000 +vt 0.020778700709 0.056646820158 0.000000000000 +vt 0.024753816426 0.028824850917 0.000000000000 +vt 0.024046380073 0.029639910907 0.000000000000 +vt 0.021925639361 0.027996055782 0.000000000000 +vt 0.019233010709 0.029932837933 0.000000000000 +vt 0.020827110857 0.032996300608 0.000000000000 +vt 0.018511611968 0.030085492879 0.000000000000 +vt 0.018042616546 0.028514813632 0.000000000000 +vt 0.018695343286 0.028449516743 0.000000000000 +vt 0.018340270966 0.027692098171 0.000000000000 +vt 0.019049059600 0.027235481888 0.000000000000 +vt 0.018784277141 0.027503643185 0.000000000000 +vt 0.018855873495 0.026894371957 0.000000000000 +vt 0.019962288439 0.026958312839 0.000000000000 +vt 0.019748840481 0.027567584068 0.000000000000 +vt 0.160484761000 0.020033445209 0.000000000000 +vt 0.147482961416 0.021641500294 0.000000000000 +vt 0.154410749674 0.015146899968 0.000000000000 +vt 0.161012977362 0.008924962953 0.000000000000 +vt 0.166393518448 0.013308282942 0.000000000000 +vt 0.166352987289 0.025851901621 0.000000000000 +vt 0.166651993990 0.020915377885 0.000000000000 +vt 0.170089438558 0.015492964536 0.000000000000 +vt 0.019588306546 0.027807373554 0.000000000000 +vt 0.019134845585 0.027851056308 0.000000000000 +vt 0.019064817578 0.028270293027 0.000000000000 +vt 0.038729425520 0.090958446264 0.000000000000 +vt 0.036177065223 0.089736983180 0.000000000000 +vt 0.038676287979 0.085981622338 0.000000000000 +vt 0.040239315480 0.089066922665 0.000000000000 +vt 0.042406659573 0.093741580844 0.000000000000 +vt 0.040854658931 0.094687461853 0.000000000000 +vt 0.037749316543 0.094786986709 0.000000000000 +vt 0.027898332104 0.053784426302 0.000000000000 +vt 0.031369995326 0.055613588542 0.000000000000 +vt 0.030157541856 0.062759563327 0.000000000000 +vt 0.033898938447 0.060758832842 0.000000000000 +vt 0.032940682024 0.067951634526 0.000000000000 +vt 0.027729919180 0.065882235765 0.000000000000 +vt 0.093380436301 0.131579592824 0.000000000000 +vt 0.101789981127 0.126331463456 0.000000000000 +vt 0.037756975740 0.051755558699 0.000000000000 +vt 0.035693880171 0.048643913120 0.000000000000 +vt 0.039868485183 0.048481795937 0.000000000000 +vt 0.041482623667 0.049996417016 0.000000000000 +vt 0.042654555291 0.045740988106 0.000000000000 +vt 0.045040067285 0.046664800495 0.000000000000 +vt 0.036985594779 0.046448197216 0.000000000000 +vt 0.034682709724 0.086651682854 0.000000000000 +vt 0.030933646485 0.089648038149 0.000000000000 +vt 0.029764866456 0.085144937038 0.000000000000 +vt 0.031592678279 0.081364586949 0.000000000000 +vt 0.034569006413 0.082026988268 0.000000000000 +vt 0.032102201134 0.080329999328 0.000000000000 +vt 0.028744241223 0.051196273416 0.000000000000 +vt 0.030639147386 0.050709929317 0.000000000000 +vt 0.036769222468 0.056941326708 0.000000000000 +vt 0.034461375326 0.053469661623 0.000000000000 +vt 0.041688408703 0.088625833392 0.000000000000 +vt 0.044041287154 0.087036460638 0.000000000000 +vt 0.042447183281 0.080775573850 0.000000000000 +vt 0.049191255122 0.076541990042 0.000000000000 +vt 0.046822618693 0.081983312964 0.000000000000 +vt 0.044226806611 0.072259977460 0.000000000000 +vt 0.046158861369 0.086456924677 0.000000000000 +vt 0.027991769835 0.075538471341 0.000000000000 +vt 0.027059858665 0.080196022987 0.000000000000 +vt 0.025024902076 0.073586151004 0.000000000000 +vt 0.026086058468 0.070214003325 0.000000000000 +vt 0.026441354305 0.067705318332 0.000000000000 +vt 0.028167841956 0.071457535028 0.000000000000 +vt 0.028880013153 0.073195055127 0.000000000000 +vt 0.030567547306 0.076351955533 0.000000000000 +vt 0.030551789328 0.069745004177 0.000000000000 +vt 0.029026357457 0.069470763206 0.000000000000 +vt 0.030614150688 0.072523415089 0.000000000000 +vt 0.043936815113 0.092527776957 0.000000000000 +vt 0.046364661306 0.097238019109 0.000000000000 +vt 0.044538419694 0.100720718503 0.000000000000 +vt 0.042931716889 0.101345524192 0.000000000000 +vt 0.048817273229 0.100172251463 0.000000000000 +vt 0.048457246274 0.102738559246 0.000000000000 +vt 0.137558788061 0.098332047462 0.000000000000 +vt 0.139102905989 0.097345650196 0.000000000000 +vt 0.138733655214 0.098258882761 0.000000000000 +vt 0.137797236443 0.098970815539 0.000000000000 +vt 0.138197556138 0.099481925368 0.000000000000 +vt 0.139004737139 0.098487854004 0.000000000000 +vt 0.139805614948 0.097956493497 0.000000000000 +vt 0.139377146959 0.099524021149 0.000000000000 +vt 0.050679307431 0.107523784041 0.000000000000 +vt 0.054135438055 0.112569287419 0.000000000000 +vt 0.050330314785 0.114288136363 0.000000000000 +vt 0.047148425132 0.107650101185 0.000000000000 +vt 0.050964351743 0.104889020324 0.000000000000 +vt 0.053239319474 0.103625223041 0.000000000000 +vt 0.055646907538 0.107062682509 0.000000000000 +vt 0.058104019612 0.112983807921 0.000000000000 +vt 0.140801474452 0.096658468246 0.000000000000 +vt 0.138233363628 0.096205011010 0.000000000000 +vt 0.140344858170 0.095949456096 0.000000000000 +vt 0.142007410526 0.098663926125 0.000000000000 +vt 0.140017718077 0.100223585963 0.000000000000 +vt 0.141385748982 0.098199442029 0.000000000000 +vt 0.141155198216 0.097431436181 0.000000000000 +vt 0.133312597871 0.105359598994 0.000000000000 +vt 0.132514864206 0.104310825467 0.000000000000 +vt 0.134183719754 0.106383368373 0.000000000000 +vt 0.140815436840 0.100723877549 0.000000000000 +vt 0.141863986850 0.099782720208 0.000000000000 +vt 0.142421916127 0.100219070911 0.000000000000 +vt 0.142892494798 0.098935022950 0.000000000000 +vt 0.050447177142 0.103112548590 0.000000000000 +vt 0.052483703941 0.102864876390 0.000000000000 +vt 0.144728183746 0.104067876935 0.000000000000 +vt 0.144224733114 0.102514311671 0.000000000000 +vt 0.145186141133 0.101699247956 0.000000000000 +vt 0.146470203996 0.103851273656 0.000000000000 +vt 0.143584400415 0.101527899504 0.000000000000 +vt 0.144430533051 0.100561767817 0.000000000000 +vt 0.141550794244 0.101287886500 0.000000000000 +vt 0.061257999390 0.112659797072 0.000000000000 +vt 0.065134719014 0.115944370627 0.000000000000 +vt 0.061873342842 0.123118489981 0.000000000000 +vt 0.056573864073 0.121722295880 0.000000000000 +vt 0.067445486784 0.110573291779 0.000000000000 +vt 0.063640370965 0.107372716069 0.000000000000 +vt 0.069648854434 0.106004670262 0.000000000000 +vt 0.066685140133 0.100748866796 0.000000000000 +vt 0.072863399982 0.099591121078 0.000000000000 +vt 0.079629309475 0.095017760992 0.000000000000 +vt 0.063420616090 0.097499877214 0.000000000000 +vt 0.064508341253 0.086475610733 0.000000000000 +vt 0.143850758672 0.104326352477 0.000000000000 +vt 0.143411472440 0.103562861681 0.000000000000 +vt 0.056262250990 0.094160601497 0.000000000000 +vt 0.056469622999 0.096354737878 0.000000000000 +vt 0.051992859691 0.094852507114 0.000000000000 +vt 0.052877943963 0.092719376087 0.000000000000 +vt 0.057681854814 0.098607867956 0.000000000000 +vt 0.053764607757 0.098246261477 0.000000000000 +vt 0.051455195993 0.098188623786 0.000000000000 +vt 0.049526061863 0.095104902983 0.000000000000 +vt 0.050771173090 0.101749226451 0.000000000000 +vt 0.052848231047 0.102208778262 0.000000000000 +vt 0.051238592714 0.100907593966 0.000000000000 +vt 0.052483703941 0.100563332438 0.000000000000 +vt 0.057426307350 0.106243103743 0.000000000000 +vt 0.059230696410 0.102589055896 0.000000000000 +vt 0.054297324270 0.103461548686 0.000000000000 +vt 0.054697874933 0.101320534945 0.000000000000 +vt 0.052963506430 0.122161805630 0.000000000000 +vt 0.052379231900 0.131099566817 0.000000000000 +vt 0.048094075173 0.130477920175 0.000000000000 +vt 0.046760257334 0.130856394768 0.000000000000 +vt 0.050066884607 0.122128933668 0.000000000000 +vt 0.156333580613 0.006823139265 0.000000000000 +vt 0.149899765849 0.012613456696 0.000000000000 +vt 0.148388311267 0.011923130602 0.000000000000 +vt 0.154814451933 0.007212657481 0.000000000000 +vt 0.143572017550 0.018695119768 0.000000000000 +vt 0.142008990049 0.017630811781 0.000000000000 +vt 0.141720786691 0.017121285200 0.000000000000 +vt 0.147525057197 0.011396490037 0.000000000000 +vt 0.137385874987 0.025342378765 0.000000000000 +vt 0.135559633374 0.023885395378 0.000000000000 +vt 0.134478226304 0.023776423186 0.000000000000 +vt 0.129616662860 0.030687112361 0.000000000000 +vt 0.127787277102 0.029326722026 0.000000000000 +vt 0.122677840292 0.035132572055 0.000000000000 +vt 0.121847249568 0.031333755702 0.000000000000 +vt 0.121459312737 0.026788320392 0.000000000000 +vt 0.126799300313 0.025711629540 0.000000000000 +vt 0.116022720933 0.031031373888 0.000000000000 +vt 0.116498008370 0.026107456535 0.000000000000 +vt 0.109646543860 0.029707010835 0.000000000000 +vt 0.110188722610 0.025318961591 0.000000000000 +vt 0.102204486728 0.027808953077 0.000000000000 +vt 0.102347925305 0.024181474000 0.000000000000 +vt 0.120979495347 0.024089615792 0.000000000000 +vt 0.116271957755 0.023522447795 0.000000000000 +vt 0.110184207559 0.022347588092 0.000000000000 +vt 0.102416366339 0.022239964455 0.000000000000 +vt 0.133086755872 0.021283280104 0.000000000000 +vt 0.125700771809 0.022800825536 0.000000000000 +vt 0.131805852056 0.019698411226 0.000000000000 +vt 0.140229582787 0.014688935131 0.000000000000 +vt 0.145475924015 0.010294806212 0.000000000000 +vt 0.152886912227 0.006676563993 0.000000000000 +vt 0.047576893121 0.122769504786 0.000000000000 +vt 0.044946629554 0.130904808640 0.000000000000 +vt 0.047352414578 0.114989265800 0.000000000000 +vt 0.044636588544 0.108223572373 0.000000000000 +vt 0.040943596512 0.101545020938 0.000000000000 +vt 0.041778694838 0.117057085037 0.000000000000 +vt 0.038933407515 0.109159991145 0.000000000000 +vt 0.042194779962 0.125491634011 0.000000000000 +vt 0.042258728296 0.131637245417 0.000000000000 +vt 0.150459289551 0.005439335480 0.000000000000 +vt 0.147406622767 0.004468692467 0.000000000000 +vt 0.143596783280 0.008389092982 0.000000000000 +vt 0.139240026474 0.012483991683 0.000000000000 +vt 0.039006810635 0.131603017449 0.000000000000 +vt 0.039525572211 0.125474527478 0.000000000000 +vt 0.038843121380 0.117890611291 0.000000000000 +vt 0.036237854511 0.109794244170 0.000000000000 +vt 0.035265412182 0.101655572653 0.000000000000 +vt 0.032339062542 0.095125168562 0.000000000000 +vt 0.030368058011 0.090082809329 0.000000000000 +vt 0.031399492174 0.094974085689 0.000000000000 +vt 0.033498387784 0.101733475924 0.000000000000 +vt 0.028639992699 0.086095318198 0.000000000000 +vt 0.025852348655 0.081437990069 0.000000000000 +vt 0.022753085941 0.076138511300 0.000000000000 +vt 0.023653708398 0.075184747577 0.000000000000 +vt 0.020847376436 0.069434955716 0.000000000000 +vt 0.021620105952 0.067643180490 0.000000000000 +vt 0.023307643831 0.064264953136 0.000000000000 +vt 0.017721544951 0.061841826886 0.000000000000 +vt 0.020375225693 0.059083905071 0.000000000000 +vt 0.053222205490 0.012929573655 0.000000000000 +vt 0.050235074013 0.010815139860 0.000000000000 +vt 0.056510146707 0.014634449035 0.000000000000 +vt 0.054663654417 0.018612489104 0.000000000000 +vt 0.060259204358 0.016382552683 0.000000000000 +vt 0.059049900621 0.020086579025 0.000000000000 +vt 0.058030847460 0.021122742444 0.000000000000 +vt 0.054247569293 0.019831027836 0.000000000000 +vt 0.056996259838 0.023039262742 0.000000000000 +vt 0.053340639919 0.022660780698 0.000000000000 +vt 0.055484797806 0.025647688657 0.000000000000 +vt 0.052176591009 0.025117896497 0.000000000000 +vt 0.049496565014 0.024186205119 0.000000000000 +vt 0.045745935291 0.023629847914 0.000000000000 +vt 0.047365020961 0.022347588092 0.000000000000 +vt 0.044394996017 0.020589802414 0.000000000000 +vt 0.045242708176 0.019883941859 0.000000000000 +vt 0.024909622967 0.052349288017 0.000000000000 +vt 0.025043588132 0.050973366946 0.000000000000 +vt 0.027739373967 0.047426950186 0.000000000000 +vt 0.024479579180 0.048439692706 0.000000000000 +vt 0.042350593954 0.024865496904 0.000000000000 +vt 0.042051356286 0.021227214485 0.000000000000 +vt 0.036529209465 0.022210467607 0.000000000000 +vt 0.037055846304 0.026330355555 0.000000000000 +vt 0.036963980645 0.028058420867 0.000000000000 +vt 0.031510043889 0.025784809142 0.000000000000 +vt 0.031432140619 0.027294699103 0.000000000000 +vt 0.036716084927 0.029509097338 0.000000000000 +vt 0.031419757754 0.028624013066 0.000000000000 +vt 0.027148788795 0.027899462730 0.000000000000 +vt 0.027295140550 0.028648782521 0.000000000000 +vt 0.036427881569 0.031031373888 0.000000000000 +vt 0.031274754554 0.029678862542 0.000000000000 +vt 0.027111416683 0.029242511839 0.000000000000 +vt 0.030949188396 0.030895829201 0.000000000000 +vt 0.035843607038 0.032156471163 0.000000000000 +vt 0.020707104355 0.028784547001 0.000000000000 +vt 0.022812303156 0.031886737794 0.000000000000 +vt 0.020281784236 0.029052484781 0.000000000000 +vt 0.023458946496 0.031434852630 0.000000000000 +vt 0.022109370679 0.032270174474 0.000000000000 +vt 0.020171005279 0.029769152403 0.000000000000 +vt 0.021504826844 0.032532032579 0.000000000000 +vt 0.025012519211 0.036299776286 0.000000000000 +vt 0.024063490331 0.036756169051 0.000000000000 +vt 0.023340519518 0.037314102054 0.000000000000 +vt 0.027483826503 0.041390310973 0.000000000000 +vt 0.026430319995 0.041890602559 0.000000000000 +vt 0.025338094682 0.042350146919 0.000000000000 +vt 0.029316132888 0.046764533967 0.000000000000 +vt 0.022701527923 0.043102841824 0.000000000000 +vt 0.030600195751 0.046093124896 0.000000000000 +vt 0.032929647714 0.049832727760 0.000000000000 +vt 0.031767170876 0.045388620347 0.000000000000 +vt 0.029398767278 0.040288627148 0.000000000000 +vt 0.032870430499 0.044547211379 0.000000000000 +vt 0.028457617387 0.040873128921 0.000000000000 +vt 0.030336765572 0.039641980082 0.000000000000 +vt 0.033799197525 0.043578144163 0.000000000000 +vt 0.037752252072 0.045114379376 0.000000000000 +vt 0.041783425957 0.044548790902 0.000000000000 +vt 0.025857076049 0.035843163729 0.000000000000 +vt 0.026734281331 0.035361554474 0.000000000000 +vt 0.041914243251 0.032859180123 0.000000000000 +vt 0.040793869644 0.033786371350 0.000000000000 +vt 0.030941305682 0.023799840361 0.000000000000 +vt 0.057466831058 0.013119827956 0.000000000000 +vt 0.054774206132 0.010378789157 0.000000000000 +vt 0.051085937768 0.008826795965 0.000000000000 +vt 0.051754426211 0.007754832506 0.000000000000 +vt 0.088373884559 0.020429264754 0.000000000000 +vt 0.088517308235 0.019399408251 0.000000000000 +vt 0.090854644775 0.019729707390 0.000000000000 +vt 0.090842038393 0.020712960511 0.000000000000 +vt 0.094946391881 0.022414457053 0.000000000000 +vt 0.095091395080 0.020460564643 0.000000000000 +vt 0.094299748540 0.025574509054 0.000000000000 +vt 0.090377770364 0.023751430213 0.000000000000 +vt 0.109390988946 0.033906377852 0.000000000000 +vt 0.101716801524 0.030102606863 0.000000000000 +vt 0.116005614400 0.037482291460 0.000000000000 +vt 0.123491324484 0.037183284760 0.000000000000 +vt 0.125074386597 0.041345056146 0.000000000000 +vt 0.130738392472 0.031681168824 0.000000000000 +vt 0.133287593722 0.035913188010 0.000000000000 +vt 0.135103031993 0.039498783648 0.000000000000 +vt 0.140455409884 0.028768789023 0.000000000000 +vt 0.144802927971 0.035279151052 0.000000000000 +vt 0.146699190140 0.040768656880 0.000000000000 +vt 0.137726977468 0.044129770249 0.000000000000 +vt 0.147504791617 0.045349668711 0.000000000000 +vt 0.138828665018 0.047825690359 0.000000000000 +vt 0.146984457970 0.048285465688 0.000000000000 +vt 0.138644710183 0.050088282675 0.000000000000 +vt 0.129806697369 0.052833821625 0.000000000000 +vt 0.169347777963 0.087803125381 0.000000000000 +vt 0.166878044605 0.096072614193 0.000000000000 +vt 0.123137615621 0.057648766786 0.000000000000 +vt 0.120253384113 0.063675940037 0.000000000000 +vt 0.115961924195 0.067340791225 0.000000000000 +vt 0.118732467294 0.069205984473 0.000000000000 +vt 0.118006333709 0.075494781137 0.000000000000 +vt 0.115131542087 0.074644148350 0.000000000000 +vt 0.109959736466 0.072775810957 0.000000000000 +vt 0.111552253366 0.064712107182 0.000000000000 +vt 0.102553710341 0.070056840777 0.000000000000 +vt 0.109609171748 0.082248091698 0.000000000000 +vt 0.100861445069 0.081328779459 0.000000000000 +vt 0.090299867094 0.080892428756 0.000000000000 +vt 0.091694474220 0.066030398011 0.000000000000 +vt 0.079119786620 0.055774118751 0.000000000000 +vt 0.072969444096 0.053520996124 0.000000000000 +vt 0.071013972163 0.047288250178 0.000000000000 +vt 0.068132661283 0.051054421812 0.000000000000 +vt 0.065332636237 0.054049205035 0.000000000000 +vt 0.061893608421 0.046331342310 0.000000000000 +vt 0.058749314398 0.049416642636 0.000000000000 +vt 0.061658326536 0.058715995401 0.000000000000 +vt 0.055071856827 0.053793657571 0.000000000000 +vt 0.052937161177 0.044756155461 0.000000000000 +vt 0.049072828144 0.049751672894 0.000000000000 +vt 0.058147702366 0.064059153199 0.000000000000 +vt 0.052524227649 0.058092769235 0.000000000000 +vt 0.045923579484 0.053873132914 0.000000000000 +vt 0.046409692615 0.047785166651 0.000000000000 +vt 0.043375950307 0.051665265113 0.000000000000 +vt 0.050428483635 0.061640765518 0.000000000000 +vt 0.043210681528 0.056986581534 0.000000000000 +vt 0.040099035949 0.054348435253 0.000000000000 +vt 0.039909008890 0.059638466686 0.000000000000 +vt 0.047191876918 0.065960139036 0.000000000000 +vt 0.038101460785 0.065509825945 0.000000000000 +vt 0.035400953144 0.074902862310 0.000000000000 +vt 0.055581387132 0.067733466625 0.000000000000 +vt 0.052806120366 0.071872040629 0.000000000000 +vt 0.060378994793 0.075755074620 0.000000000000 +vt 0.058071371168 0.078776419163 0.000000000000 +vt 0.055618759245 0.080065205693 0.000000000000 +vt 0.052734520286 0.079525962472 0.000000000000 +vt 0.053052444011 0.081367731094 0.000000000000 +vt 0.050789859146 0.083292141557 0.000000000000 +vt 0.049432624131 0.082779452205 0.000000000000 +vt 0.049594733864 0.085844501853 0.000000000000 +vt 0.048008512706 0.086075052619 0.000000000000 +vt 0.050535883754 0.089364573359 0.000000000000 +vt 0.049192603678 0.090299412608 0.000000000000 +vt 0.047464769334 0.090754449368 0.000000000000 +vt 0.045393791050 0.091461896896 0.000000000000 +vt 0.047896388918 0.095926046371 0.000000000000 +vt 0.049828443676 0.098826035857 0.000000000000 +vt 0.057419996709 0.081000059843 0.000000000000 +vt 0.060966644436 0.087109863758 0.000000000000 +vt 0.059794712812 0.087519645691 0.000000000000 +vt 0.060287129134 0.094168484211 0.000000000000 +vt 0.059352282435 0.093295782804 0.000000000000 +vt 0.062393907458 0.086673513055 0.000000000000 +vt 0.061801750213 0.096052348614 0.000000000000 +vt 0.049892392009 0.042724128813 0.000000000000 +vt 0.052075494081 0.038878478110 0.000000000000 +vt 0.055960100144 0.041236083955 0.000000000000 +vt 0.055889848620 0.035288382322 0.000000000000 +vt 0.060157891363 0.037993393838 0.000000000000 +vt 0.065116032958 0.042724128813 0.000000000000 +vt 0.064106442034 0.032941814512 0.000000000000 +vt 0.068679787219 0.036249794066 0.000000000000 +vt 0.074156686664 0.040447585285 0.000000000000 +vt 0.073277905583 0.031112428755 0.000000000000 +vt 0.077270135283 0.034540414810 0.000000000000 +vt 0.072071976960 0.025901664048 0.000000000000 +vt 0.069379344583 0.029083553702 0.000000000000 +vt 0.069463558495 0.025113392621 0.000000000000 +vt 0.067841313779 0.024271763861 0.000000000000 +vt 0.099162861705 0.091220304370 0.000000000000 +vt 0.089000269771 0.092127218843 0.000000000000 +vt 0.097078159451 0.097934648395 0.000000000000 +vt 0.087571434677 0.099022373557 0.000000000000 +vt 0.079772509634 0.101554468274 0.000000000000 +vt 0.086257882416 0.102638825774 0.000000000000 +vt 0.079043231905 0.105086937547 0.000000000000 +vt 0.075504690409 0.108024075627 0.000000000000 +vt 0.074613302946 0.105156958103 0.000000000000 +vt 0.073125250638 0.110627785325 0.000000000000 +vt 0.071593523026 0.108968392015 0.000000000000 +vt 0.070599466562 0.114607393742 0.000000000000 +vt 0.069200120866 0.112909048796 0.000000000000 +vt 0.067964471877 0.119090452790 0.000000000000 +vt 0.066672757268 0.117705300450 0.000000000000 +vt 0.065623983741 0.124006733298 0.000000000000 +vt 0.064179614186 0.123651430011 0.000000000000 +vt 0.064288586378 0.130211338401 0.000000000000 +vt 0.062253635377 0.130234748125 0.000000000000 +vt 0.058482732624 0.130786374211 0.000000000000 +vt 0.122141756117 0.148486047983 0.000000000000 +vt 0.127875998616 0.147998362780 0.000000000000 +vt 0.127665698528 0.150818660855 0.000000000000 +vt 0.122073300183 0.151981130242 0.000000000000 +vt 0.133205190301 0.149006605148 0.000000000000 +vt 0.133069649339 0.151248708367 0.000000000000 +vt 0.172021716833 0.016547817737 0.000000000000 +vt 0.169503584504 0.022040475160 0.000000000000 +vt 0.137767508626 0.149533241987 0.000000000000 +vt 0.137985691428 0.152411177754 0.000000000000 +vt 0.168945640326 0.028130020946 0.000000000000 +vt 0.129772469401 0.142226740718 0.000000000000 +vt 0.133960813284 0.145277813077 0.000000000000 +vt 0.137136399746 0.143440544605 0.000000000000 +vt 0.135624930263 0.133524268866 0.000000000000 +vt 0.137717753649 0.134089857340 0.000000000000 +vt 0.109607592225 0.111450493336 0.000000000000 +vt 0.100973561406 0.115215316415 0.000000000000 +vt 0.100111901760 0.112997993827 0.000000000000 +vt 0.109063848853 0.109449759126 0.000000000000 +vt 0.094076842070 0.114406555891 0.000000000000 +vt 0.109662085772 0.113127216697 0.000000000000 +vt 0.101924166083 0.117096036673 0.000000000000 +vt 0.118073418736 0.107520863414 0.000000000000 +vt 0.118896141648 0.109094470739 0.000000000000 +vt 0.119979143143 0.110803857446 0.000000000000 +vt 0.109627857804 0.115891456604 0.000000000000 +vt 0.121512211859 0.112745359540 0.000000000000 +vt 0.113743022084 0.119411528111 0.000000000000 +vt 0.123366601765 0.114860013127 0.000000000000 +vt 0.116215899587 0.122188150883 0.000000000000 +vt 0.104867622256 0.130242630839 0.000000000000 +vt 0.095320373774 0.140049934387 0.000000000000 +vt 0.118313208222 0.124379143119 0.000000000000 +vt 0.107863992453 0.133408755064 0.000000000000 +vt 0.099661588669 0.143760040402 0.000000000000 +vt 0.087192721665 0.108221992850 0.000000000000 +vt 0.082525931299 0.110838308930 0.000000000000 +vt 0.110880628228 0.135783463717 0.000000000000 +vt 0.103619366884 0.146102100611 0.000000000000 +vt 0.078900031745 0.113002493978 0.000000000000 +vt 0.114026710391 0.137971296906 0.000000000000 +vt 0.107220500708 0.147809907794 0.000000000000 +vt 0.075743131340 0.114870831370 0.000000000000 +vt 0.117038622499 0.139775693417 0.000000000000 +vt 0.110938265920 0.149550363421 0.000000000000 +vt 0.072325952351 0.116807609797 0.000000000000 +vt 0.121297188103 0.140570491552 0.000000000000 +vt 0.116660133004 0.148486047983 0.000000000000 +vt 0.070322073996 0.122125789523 0.000000000000 +vt 0.125169411302 0.141371369362 0.000000000000 +vt 0.067821048200 0.126478031278 0.000000000000 +vt 0.126182377338 0.130125775933 0.000000000000 +vt 0.128910809755 0.131200894713 0.000000000000 +vt 0.132871732116 0.132607877254 0.000000000000 +vt 0.133273646235 0.122961118817 0.000000000000 +vt 0.135723099113 0.124199911952 0.000000000000 +vt 0.137808039784 0.124982103705 0.000000000000 +vt 0.138423606753 0.117220535874 0.000000000000 +vt 0.140033245087 0.117920324206 0.000000000000 +vt 0.141472890973 0.118429854512 0.000000000000 +vt 0.139520570636 0.125482171774 0.000000000000 +vt 0.124876491725 0.103963419795 0.000000000000 +vt 0.117411032319 0.105984404683 0.000000000000 +vt 0.124236144125 0.102663815022 0.000000000000 +vt 0.129794090986 0.099442973733 0.000000000000 +vt 0.130341216922 0.100725457072 0.000000000000 +vt 0.131000250578 0.101975068450 0.000000000000 +vt 0.125632330775 0.105312764645 0.000000000000 +vt 0.131731107831 0.103181213140 0.000000000000 +vt 0.126520335674 0.106766596437 0.000000000000 +vt 0.127601757646 0.108326464891 0.000000000000 +vt 0.128798455000 0.109823748469 0.000000000000 +vt 0.130024880171 0.111135736108 0.000000000000 +vt 0.125136762857 0.116662845016 0.000000000000 +vt 0.131293177605 0.112291902304 0.000000000000 +vt 0.126648217440 0.118099555373 0.000000000000 +vt 0.120172336698 0.126228556037 0.000000000000 +vt 0.128081783652 0.119333624840 0.000000000000 +vt 0.122010938823 0.127758711576 0.000000000000 +vt 0.129577711225 0.120530337095 0.000000000000 +vt 0.123975865543 0.129045933485 0.000000000000 +vt 0.131254225969 0.121706768870 0.000000000000 +vt 0.133884489536 0.114366039634 0.000000000000 +vt 0.135243296623 0.115338250995 0.000000000000 +vt 0.136775031686 0.116316780448 0.000000000000 +vt 0.138644710183 0.110085606575 0.000000000000 +vt 0.139880597591 0.110813304782 0.000000000000 +vt 0.141141012311 0.111453637481 0.000000000000 +vt 0.142396926880 0.111997395754 0.000000000000 +vt 0.143704399467 0.112458750606 0.000000000000 +vt 0.137226909399 0.097607508302 0.000000000000 +vt 0.142870649695 0.102392718196 0.000000000000 +vt 0.137440353632 0.109256580472 0.000000000000 +vt 0.142222434282 0.101855054498 0.000000000000 +vt 0.143068566918 0.100842311978 0.000000000000 +vt 0.143592044711 0.099678248167 0.000000000000 +vt 0.136274725199 0.108363851905 0.000000000000 +vt 0.135182499886 0.107386663556 0.000000000000 +vt 0.132592767477 0.113364085555 0.000000000000 +vt 0.095187984407 0.102827504277 0.000000000000 +vt 0.094770319760 0.109039977193 0.000000000000 +vt 0.115190759301 0.083002358675 0.000000000000 +vt 0.117822378874 0.083010017872 0.000000000000 +vt 0.118609294295 0.089811727405 0.000000000000 +vt 0.145974636078 0.053520996124 0.000000000000 +vt 0.146114915609 0.056235466152 0.000000000000 +vt 0.139495581388 0.056631293148 0.000000000000 +vt 0.139889821410 0.054191056639 0.000000000000 +vt 0.119352757931 0.094131112099 0.000000000000 +vt 0.136199980974 0.055359613150 0.000000000000 +vt 0.119957312942 0.096627399325 0.000000000000 +vt 0.133549451828 0.056533124298 0.000000000000 +vt 0.144910335541 0.057005267590 0.000000000000 +vt 0.139738738537 0.057558249682 0.000000000000 +vt 0.145398020744 0.061774957925 0.000000000000 +vt 0.139342918992 0.061978947371 0.000000000000 +vt 0.149662911892 0.063947036862 0.000000000000 +vt 0.153687775135 0.067230239511 0.000000000000 +vt 0.155149489641 0.059760045260 0.000000000000 +vt 0.158387213945 0.062926396728 0.000000000000 +vt 0.157279461622 0.070296630263 0.000000000000 +vt 0.163594841957 0.066641241312 0.000000000000 +vt 0.153912261128 0.057711135596 0.000000000000 +vt 0.159546762705 0.060358505696 0.000000000000 +vt 0.164818108082 0.064783707261 0.000000000000 +vt 0.165087610483 0.069813668728 0.000000000000 +vt 0.167392298579 0.069913417101 0.000000000000 +vt 0.162909239531 0.058806512505 0.000000000000 +vt 0.168085560203 0.065015837550 0.000000000000 +vt 0.170962139964 0.071387514472 0.000000000000 +vt 0.171663269401 0.079518079758 0.000000000000 +vt 0.168453454971 0.075633481145 0.000000000000 +vt 0.154616549611 0.054712962359 0.000000000000 +vt 0.160480037332 0.072431325912 0.000000000000 +vt 0.165078386664 0.102370887995 0.000000000000 +vt 0.160031303763 0.101119697094 0.000000000000 +vt 0.153291955590 0.047032695264 0.000000000000 +vt 0.081070527434 0.018897537142 0.000000000000 +vt 0.085028529167 0.019402559847 0.000000000000 +vt 0.066250368953 0.017697680742 0.000000000000 +vt 0.060628462583 0.015371378511 0.000000000000 +vt 0.066359564662 0.016670975834 0.000000000000 +vt 0.071543760598 0.016661521047 0.000000000000 +vt 0.071405068040 0.017848987132 0.000000000000 +vt 0.075989224017 0.018615640700 0.000000000000 +vt 0.076596923172 0.017573174089 0.000000000000 +vt 0.017198059708 0.064038887620 0.000000000000 +vt 0.020149167627 0.070380836725 0.000000000000 +vt 0.016810115427 0.065315067768 0.000000000000 +vt 0.158577471972 0.046223942190 0.000000000000 +vt 0.102452382445 0.038576319814 0.000000000000 +vt 0.089843250811 0.037739418447 0.000000000000 +vt 0.086650550365 0.040033075958 0.000000000000 +vt 0.086444757879 0.038370531052 0.000000000000 +vt 0.089615844190 0.039254039526 0.000000000000 +vt 0.094363689423 0.042627539486 0.000000000000 +vt 0.089279234409 0.040964987129 0.000000000000 +vt 0.096154123545 0.044999096543 0.000000000000 +vt 0.099321827292 0.047730680555 0.000000000000 +vt 0.097085818648 0.047713566571 0.000000000000 +vt 0.095434077084 0.052601691335 0.000000000000 +vt 0.094276331365 0.051693182439 0.000000000000 +vt 0.089904040098 0.052642215043 0.000000000000 +vt 0.089681141078 0.050836246461 0.000000000000 +vt 0.084422186017 0.049848269671 0.000000000000 +vt 0.086022593081 0.049033429474 0.000000000000 +vt 0.082889109850 0.045797046274 0.000000000000 +vt 0.084425337613 0.045902874321 0.000000000000 +vt 0.084310062230 0.042319070548 0.000000000000 +vt 0.085408590734 0.043013904244 0.000000000000 +vt 0.083744473755 0.041396614164 0.000000000000 +vt 0.087161652744 0.041465062648 0.000000000000 +vt 0.089801147580 0.053888674825 0.000000000000 +vt 0.096400216222 0.053726788610 0.000000000000 +vt 0.101375699043 0.047830428928 0.000000000000 +vt 0.150993570685 0.099017649889 0.000000000000 +vt 0.131135791540 0.085984766483 0.000000000000 +vt 0.137482464314 0.092382773757 0.000000000000 +vt 0.135268285871 0.088904798031 0.000000000000 +vt 0.139503464103 0.089568555355 0.000000000000 +vt 0.136636331677 0.087804690003 0.000000000000 +vt 0.139095246792 0.088097617030 0.000000000000 +vt 0.141262590885 0.086944609880 0.000000000000 +vt 0.143028035760 0.087709680200 0.000000000000 +vt 0.052647162229 0.028242152184 0.000000000000 +vt 0.091367103159 0.114521846175 0.000000000000 +vt 0.024943847209 0.029597807676 0.000000000000 +vt 0.082706280053 0.355134129524 0.000000000000 +vt 0.085947386920 0.363250732422 0.000000000000 +vt 0.082174688578 0.364220470190 0.000000000000 +vt 0.079061470926 0.357818633318 0.000000000000 +vt 0.076576210558 0.349433183670 0.000000000000 +vt 0.074389949441 0.353636831045 0.000000000000 +vt 0.070025764406 0.352275311947 0.000000000000 +vt 0.069683760405 0.347608089447 0.000000000000 +vt 0.084169343114 0.377381920815 0.000000000000 +vt 0.080777153373 0.375979661942 0.000000000000 +vt 0.082553848624 0.370932579041 0.000000000000 +vt 0.086099147797 0.371338099241 0.000000000000 +vt 0.079547807574 0.364964604378 0.000000000000 +vt 0.080153018236 0.370642364025 0.000000000000 +vt 0.076729759574 0.359675943851 0.000000000000 +vt 0.073228374124 0.356270015240 0.000000000000 +vt 0.070341885090 0.355011194944 0.000000000000 +vt 0.078728012741 0.374791979790 0.000000000000 +vt 0.078406266868 0.379009783268 0.000000000000 +vt 0.081292532384 0.382708638906 0.000000000000 +vt 0.077228710055 0.376913607121 0.000000000000 +vt 0.076079964638 0.380043476820 0.000000000000 +vt 0.075517080724 0.383981227875 0.000000000000 +vt 0.075921684504 0.377626001835 0.000000000000 +vt 0.067173950374 0.353658229113 0.000000000000 +vt 0.068672135472 0.355914741755 0.000000000000 +vt 0.064776502550 0.349804252386 0.000000000000 +vt 0.072278216481 0.378946751356 0.000000000000 +vt 0.069932326674 0.382139891386 0.000000000000 +vt 0.073346585035 0.376760721207 0.000000000000 +vt 0.065008409321 0.358051896095 0.000000000000 +vt 0.067364208400 0.359130382538 0.000000000000 +vt 0.061515796930 0.356177270412 0.000000000000 +vt 0.067828252912 0.375058323145 0.000000000000 +vt 0.064983420074 0.377222746611 0.000000000000 +vt 0.069865681231 0.373641878366 0.000000000000 +vt 0.063662886620 0.364159464836 0.000000000000 +vt 0.066595532000 0.364011079073 0.000000000000 +vt 0.059879150242 0.364149570465 0.000000000000 +vt 0.064561255276 0.369833588600 0.000000000000 +vt 0.067180253565 0.369111299515 0.000000000000 +vt 0.061178293079 0.370929658413 0.000000000000 +vt 0.087921552360 0.351186037064 0.000000000000 +vt 0.091303609312 0.361563861370 0.000000000000 +vt 0.079885534942 0.343255817890 0.000000000000 +vt 0.069204851985 0.340724855661 0.000000000000 +vt 0.060809489340 0.344233006239 0.000000000000 +vt 0.055593322963 0.353128671646 0.000000000000 +vt 0.053862329572 0.363875776529 0.000000000000 +vt 0.055507313460 0.372740805149 0.000000000000 +vt 0.060099344701 0.380897492170 0.000000000000 +vt 0.066655874252 0.386289954185 0.000000000000 +vt 0.073765367270 0.388392239809 0.000000000000 +vt 0.081145055592 0.388035595417 0.000000000000 +vt 0.088785246015 0.377678692341 0.000000000000 +vt 0.087788932025 0.382556229830 0.000000000000 +vt 0.090708971024 0.371422529221 0.000000000000 +vt 0.098516449332 0.359101116657 0.000000000000 +vt 0.095570974052 0.371151894331 0.000000000000 +vt 0.081494718790 0.391452759504 0.000000000000 +vt 0.072904601693 0.391978055239 0.000000000000 +vt 0.087930560112 0.387041747570 0.000000000000 +vt 0.089069843292 0.390307635069 0.000000000000 +vt 0.093086160719 0.377379685640 0.000000000000 +vt 0.092234395444 0.382332623005 0.000000000000 +vt 0.096012048423 0.378206431866 0.000000000000 +vt 0.095273993909 0.382441610098 0.000000000000 +vt 0.098627001047 0.372742831707 0.000000000000 +vt 0.100691899657 0.375768691301 0.000000000000 +vt 0.097777709365 0.379422277212 0.000000000000 +vt 0.096909299493 0.382944613695 0.000000000000 +vt 0.064227119088 0.390731811523 0.000000000000 +vt 0.047463636845 0.374592483044 0.000000000000 +vt 0.045266803354 0.362910062075 0.000000000000 +vt 0.053129222244 0.386380702257 0.000000000000 +vt 0.055269774050 0.337182939053 0.000000000000 +vt 0.068264156580 0.332182705402 0.000000000000 +vt 0.047308508307 0.348847329617 0.000000000000 +vt 0.083508059382 0.335973203182 0.000000000000 +vt 0.092679306865 0.386310219765 0.000000000000 +vt 0.094604156911 0.389197170734 0.000000000000 +vt 0.096809998155 0.386411547661 0.000000000000 +vt 0.095029927790 0.385251104832 0.000000000000 +vt 0.098225995898 0.388757675886 0.000000000000 +vt 0.097066685557 0.389816790819 0.000000000000 +vt 0.098929613829 0.391160309315 0.000000000000 +vt 0.097326502204 0.391429573298 0.000000000000 +vt 0.094737671316 0.391862779856 0.000000000000 +vt 0.089453734457 0.392666131258 0.000000000000 +vt 0.081771887839 0.393726825714 0.000000000000 +vt 0.072946928442 0.394806444645 0.000000000000 +vt 0.063999712467 0.395681649446 0.000000000000 +vt 0.053615327924 0.396396279335 0.000000000000 +vt 0.041419353336 0.396926730871 0.000000000000 +vt 0.039976555854 0.386726528406 0.000000000000 +vt 0.037052463740 0.374329954386 0.000000000000 +vt 0.035149227828 0.359872728586 0.000000000000 +vt 0.038212914020 0.342804163694 0.000000000000 +vt 0.049577396363 0.328440159559 0.000000000000 +vt 0.067996665835 0.322506874800 0.000000000000 +vt 0.093688450754 0.346306473017 0.000000000000 +vt 0.088374562562 0.327701002359 0.000000000000 +vt 0.100369259715 0.339963853359 0.000000000000 +vt 0.105655893683 0.350941717625 0.000000000000 +vt 0.103044107556 0.365339487791 0.000000000000 +vt 0.108533605933 0.357757389545 0.000000000000 +vt 0.105408892035 0.369979262352 0.000000000000 +vt 0.098068401217 0.383108973503 0.000000000000 +vt 0.098497763276 0.385625302792 0.000000000000 +vt 0.101734369993 0.380148172379 0.000000000000 +vt 0.098705813289 0.380785822868 0.000000000000 +vt 0.099697157741 0.387924820185 0.000000000000 +vt 0.100644618273 0.390900254250 0.000000000000 +vt 0.105129703879 0.377691507339 0.000000000000 +vt 0.105785802007 0.382571756840 0.000000000000 +vt 0.103088900447 0.383172452450 0.000000000000 +vt 0.106459483504 0.386435866356 0.000000000000 +vt 0.104129120708 0.386695683002 0.000000000000 +vt 0.104879111052 0.390249550343 0.000000000000 +vt 0.102643325925 0.390611141920 0.000000000000 +vt 0.101812496781 0.387293249369 0.000000000000 +vt 0.099612280726 0.383124738932 0.000000000000 +vt 0.100343361497 0.384889960289 0.000000000000 +vt 0.101334720850 0.382499039173 0.000000000000 +vt 0.099765837193 0.381787300110 0.000000000000 +vt 0.101950511336 0.385482788086 0.000000000000 +vt 0.102647826076 0.385179489851 0.000000000000 +vt 0.102046653628 0.383690536022 0.000000000000 +vt 0.101413294673 0.384207725525 0.000000000000 +vt 0.101018831134 0.383238196373 0.000000000000 +vt 0.111804887652 0.347057133913 0.000000000000 +vt 0.113323777914 0.353700101376 0.000000000000 +vt 0.116853311658 0.353322982788 0.000000000000 +vt 0.117552861571 0.346509546041 0.000000000000 +vt 0.123864643276 0.349401652813 0.000000000000 +vt 0.120530322194 0.355773121119 0.000000000000 +vt 0.129755362868 0.355360180140 0.000000000000 +vt 0.124298743904 0.360911160707 0.000000000000 +vt 0.134041413665 0.362597793341 0.000000000000 +vt 0.127354532480 0.367429167032 0.000000000000 +vt 0.129645943642 0.373671829700 0.000000000000 +vt 0.136888504028 0.369591563940 0.000000000000 +vt 0.138823032379 0.375629991293 0.000000000000 +vt 0.131178572774 0.379008889198 0.000000000000 +vt 0.110230609775 0.361257672310 0.000000000000 +vt 0.113775447011 0.356992095709 0.000000000000 +vt 0.115981966257 0.356578052044 0.000000000000 +vt 0.118140742183 0.358845561743 0.000000000000 +vt 0.120337590575 0.363843351603 0.000000000000 +vt 0.122301377356 0.370323300362 0.000000000000 +vt 0.123794607818 0.376463502645 0.000000000000 +vt 0.125330835581 0.385786980391 0.000000000000 +vt 0.124756477773 0.381512612104 0.000000000000 +vt 0.132145613432 0.383721172810 0.000000000000 +vt 0.117319837213 0.365754455328 0.000000000000 +vt 0.116345807910 0.360568702221 0.000000000000 +vt 0.118315473199 0.372491776943 0.000000000000 +vt 0.119095861912 0.378632873297 0.000000000000 +vt 0.115259900689 0.358279764652 0.000000000000 +vt 0.113950163126 0.358692705631 0.000000000000 +vt 0.111850589514 0.362477779388 0.000000000000 +vt 0.109477445483 0.369221389294 0.000000000000 +vt 0.108606114984 0.376295775175 0.000000000000 +vt 0.108548924327 0.381853967905 0.000000000000 +vt 0.108668252826 0.385990947485 0.000000000000 +vt 0.109056636691 0.389389663935 0.000000000000 +vt 0.106977775693 0.389831870794 0.000000000000 +vt 0.115236923099 0.380258053541 0.000000000000 +vt 0.119639605284 0.383368134499 0.000000000000 +vt 0.115580737591 0.384713888168 0.000000000000 +vt 0.114937916398 0.374172329903 0.000000000000 +vt 0.114662095904 0.367107868195 0.000000000000 +vt 0.114699468017 0.361614972353 0.000000000000 +vt 0.114764764905 0.359385490417 0.000000000000 +vt 0.114121511579 0.359670996666 0.000000000000 +vt 0.113303065300 0.362503677607 0.000000000000 +vt 0.112174823880 0.368418276310 0.000000000000 +vt 0.111594587564 0.375343382359 0.000000000000 +vt 0.111402764916 0.381200790405 0.000000000000 +vt 0.111436754465 0.385559558868 0.000000000000 +vt 0.111605182290 0.388848632574 0.000000000000 +vt 0.140208870173 0.380911469460 0.000000000000 +vt 0.120046690106 0.387208133936 0.000000000000 +vt 0.116041406989 0.388132423162 0.000000000000 +vt 0.108075186610 0.335427641869 0.000000000000 +vt 0.097032681108 0.317022114992 0.000000000000 +vt 0.068101368845 0.311556011438 0.000000000000 +vt 0.117994397879 0.334477722645 0.000000000000 +vt 0.128177925944 0.338179260492 0.000000000000 +vt 0.136790558696 0.345966488123 0.000000000000 +vt 0.142394453287 0.355307698250 0.000000000000 +vt 0.145550668240 0.364030212164 0.000000000000 +vt 0.147579327226 0.371295541525 0.000000000000 +vt 0.149121865630 0.377288043499 0.000000000000 +vt 0.117433980107 0.316912233829 0.000000000000 +vt 0.132998272777 0.322530061007 0.000000000000 +vt 0.144912809134 0.333580464125 0.000000000000 +vt 0.151742890477 0.346387058496 0.000000000000 +vt 0.155101761222 0.357449173927 0.000000000000 +vt 0.157138064504 0.366050541401 0.000000000000 +vt 0.158694103360 0.372791916132 0.000000000000 +vt 0.093021988869 0.298639088869 0.000000000000 +vt 0.116434976459 0.299687176943 0.000000000000 +vt 0.137037336826 0.306387364864 0.000000000000 +vt 0.152599602938 0.319078207016 0.000000000000 +vt 0.161577224731 0.334434717894 0.000000000000 +vt 0.165657475591 0.348677575588 0.000000000000 +vt 0.167427644134 0.359111487865 0.000000000000 +vt 0.169053271413 0.366990566254 0.000000000000 +vt 0.066684693098 0.299283713102 0.000000000000 +vt 0.044727105647 0.318464457989 0.000000000000 +vt 0.029994530603 0.333837360144 0.000000000000 +vt 0.023920066655 0.352325320244 0.000000000000 +vt 0.023143958300 0.369406253099 0.000000000000 +vt 0.024057183415 0.384051918983 0.000000000000 +vt 0.024341106415 0.396830379963 0.000000000000 +vt 0.177712291479 0.335085839033 0.000000000000 +vt 0.181121811271 0.347459256649 0.000000000000 +vt 0.170949757099 0.319616109133 0.000000000000 +vt 0.158325985074 0.304390668869 0.000000000000 +vt 0.139046162367 0.292386740446 0.000000000000 +vt 0.114894911647 0.285406500101 0.000000000000 +vt 0.089810602367 0.284732818604 0.000000000000 +vt 0.064246259630 0.287257254124 0.000000000000 +vt 0.060561817139 0.275299966335 0.000000000000 +vt 0.085912264884 0.272128403187 0.000000000000 +vt 0.112814709544 0.271828740835 0.000000000000 +vt 0.139997899532 0.280653685331 0.000000000000 +vt 0.162012219429 0.289723157883 0.000000000000 +vt 0.177664101124 0.300114750862 0.000000000000 +vt 0.190142661333 0.313898980618 0.000000000000 +vt 0.198672652245 0.327432364225 0.000000000000 +vt 0.205239757895 0.340885162354 0.000000000000 +vt 0.183992534876 0.357445776463 0.000000000000 +vt 0.069244705141 0.368339478970 0.000000000000 +vt 0.071158297360 0.372511804104 0.000000000000 +vt 0.073666974902 0.375427126884 0.000000000000 +vt 0.075608938932 0.376399338245 0.000000000000 +vt 0.076639704406 0.375857174397 0.000000000000 +vt 0.077665731311 0.373797893524 0.000000000000 +vt 0.078264869750 0.370282560587 0.000000000000 +vt 0.077448233962 0.365520745516 0.000000000000 +vt 0.075266703963 0.360965639353 0.000000000000 +vt 0.072741590440 0.357893168926 0.000000000000 +vt 0.070687949657 0.356488436460 0.000000000000 +vt 0.069615535438 0.357108056545 0.000000000000 +vt 0.068887837231 0.359731346369 0.000000000000 +vt 0.068630032241 0.363813161850 0.000000000000 +vt 0.070949353278 0.367750674486 0.000000000000 +vt 0.072260208428 0.371762514114 0.000000000000 +vt 0.074021823704 0.374623537064 0.000000000000 +vt 0.075438044965 0.375722974539 0.000000000000 +vt 0.076083339751 0.375304430723 0.000000000000 +vt 0.076256714761 0.373671144247 0.000000000000 +vt 0.077135719359 0.370294928551 0.000000000000 +vt 0.076337769628 0.365889549255 0.000000000000 +vt 0.074512436986 0.361760437489 0.000000000000 +vt 0.072514630854 0.358907490969 0.000000000000 +vt 0.070951603353 0.357409089804 0.000000000000 +vt 0.070442758501 0.357752889395 0.000000000000 +vt 0.070120111108 0.359841883183 0.000000000000 +vt 0.070317119360 0.363489836454 0.000000000000 +vt 0.095527067780 0.433499604464 0.000000000000 +vt 0.089006572962 0.431389659643 0.000000000000 +vt 0.089679561555 0.423253923655 0.000000000000 +vt 0.095813460648 0.423289269209 0.000000000000 +vt 0.090270593762 0.442476540804 0.000000000000 +vt 0.085782580078 0.438130587339 0.000000000000 +vt 0.082391515374 0.447095155716 0.000000000000 +vt 0.081284202635 0.441373258829 0.000000000000 +vt 0.088421173394 0.409246772528 0.000000000000 +vt 0.092461802065 0.414794385433 0.000000000000 +vt 0.088074430823 0.416153192520 0.000000000000 +vt 0.085401162505 0.411531209946 0.000000000000 +vt 0.085601098835 0.423056453466 0.000000000000 +vt 0.085188619792 0.417149722576 0.000000000000 +vt 0.084852233529 0.429683655500 0.000000000000 +vt 0.083113588393 0.435138046741 0.000000000000 +vt 0.080847173929 0.437920957804 0.000000000000 +vt 0.083637073636 0.413283139467 0.000000000000 +vt 0.082392193377 0.409229904413 0.000000000000 +vt 0.084188699722 0.404711484909 0.000000000000 +vt 0.081871181726 0.411629140377 0.000000000000 +vt 0.079863473773 0.408857047558 0.000000000000 +vt 0.078159049153 0.404978066683 0.000000000000 +vt 0.080601528287 0.411386430264 0.000000000000 +vt 0.077497541904 0.440609782934 0.000000000000 +vt 0.078839689493 0.437481015921 0.000000000000 +vt 0.075624249876 0.445949316025 0.000000000000 +vt 0.076512485743 0.410979568958 0.000000000000 +vt 0.072959765792 0.408222317696 0.000000000000 +vt 0.078687265515 0.412980526686 0.000000000000 +vt 0.074185512960 0.435919106007 0.000000000000 +vt 0.076881967485 0.434023529291 0.000000000000 +vt 0.070257902145 0.439116775990 0.000000000000 +vt 0.073384404182 0.416101634502 0.000000000000 +vt 0.069238848984 0.414494931698 0.000000000000 +vt 0.076494477689 0.417049527168 0.000000000000 +vt 0.072321221232 0.429132491350 0.000000000000 +vt 0.075570665300 0.428600221872 0.000000000000 +vt 0.067612551153 0.430139392614 0.000000000000 +vt 0.072135694325 0.422728389502 0.000000000000 +vt 0.075469121337 0.422917068005 0.000000000000 +vt 0.067447289824 0.422248363495 0.000000000000 +vt 0.102335080504 0.423187494278 0.000000000000 +vt 0.103228494525 0.435963690281 0.000000000000 +vt 0.096575386822 0.448499649763 0.000000000000 +vt 0.084121152759 0.455617934465 0.000000000000 +vt 0.072271011770 0.453928828239 0.000000000000 +vt 0.063513830304 0.444215625525 0.000000000000 +vt 0.059691589326 0.431783914566 0.000000000000 +vt 0.059796515852 0.421276837587 0.000000000000 +vt 0.062896229327 0.411542922258 0.000000000000 +vt 0.068578697741 0.404683113098 0.000000000000 +vt 0.075288772583 0.400957018137 0.000000000000 +vt 0.082664631307 0.399442404509 0.000000000000 +vt 0.090280279517 0.402916997671 0.000000000000 +vt 0.092445820570 0.407546848059 0.000000000000 +vt 0.097145929933 0.413269847631 0.000000000000 +vt 0.101524755359 0.411767631769 0.000000000000 +vt 0.108704730868 0.422636747360 0.000000000000 +vt 0.073573760688 0.397591859102 0.000000000000 +vt 0.082102417946 0.395999342203 0.000000000000 +vt 0.089554600418 0.398501247168 0.000000000000 +vt 0.089799568057 0.395039051771 0.000000000000 +vt 0.096459656954 0.406454414129 0.000000000000 +vt 0.094413220882 0.401787608862 0.000000000000 +vt 0.097341135144 0.400798738003 0.000000000000 +vt 0.099026650190 0.404693007469 0.000000000000 +vt 0.103435859084 0.409006088972 0.000000000000 +vt 0.100435674191 0.402943789959 0.000000000000 +vt 0.104281768203 0.405376374722 0.000000000000 +vt 0.098907768726 0.399778544903 0.000000000000 +vt 0.065163768828 0.400598347187 0.000000000000 +vt 0.049860190600 0.420209825039 0.000000000000 +vt 0.048853974789 0.434106171131 0.000000000000 +vt 0.054477673024 0.406693518162 0.000000000000 +vt 0.086032271385 0.466448366642 0.000000000000 +vt 0.067181386054 0.464296758175 0.000000000000 +vt 0.053818415850 0.451216369867 0.000000000000 +vt 0.103748381138 0.455393463373 0.000000000000 +vt 0.094275876880 0.397762984037 0.000000000000 +vt 0.095426648855 0.394399613142 0.000000000000 +vt 0.096762046218 0.398063540459 0.000000000000 +vt 0.098227351904 0.396364301443 0.000000000000 +vt 0.097545132041 0.393038094044 0.000000000000 +vt 0.098932549357 0.393664687872 0.000000000000 +vt 0.040455233306 0.407481104136 0.000000000000 +vt 0.037843432277 0.421338081360 0.000000000000 +vt 0.036472912878 0.438838243484 0.000000000000 +vt 0.042982604355 0.460524737835 0.000000000000 +vt 0.062214907259 0.477089822292 0.000000000000 +vt 0.089566305280 0.478372305632 0.000000000000 +vt 0.111008062959 0.438808530569 0.000000000000 +vt 0.113180801272 0.462344437838 0.000000000000 +vt 0.120472237468 0.442430824041 0.000000000000 +vt 0.117490500212 0.428076952696 0.000000000000 +vt 0.109111800790 0.414127260447 0.000000000000 +vt 0.115140110254 0.419330358505 0.000000000000 +vt 0.109508290887 0.408478111029 0.000000000000 +vt 0.099965557456 0.396614462137 0.000000000000 +vt 0.100016877055 0.399250566959 0.000000000000 +vt 0.101089760661 0.401380300522 0.000000000000 +vt 0.104426547885 0.401133537292 0.000000000000 +vt 0.100525066257 0.394041150808 0.000000000000 +vt 0.108131244779 0.401879489422 0.000000000000 +vt 0.105194106698 0.397765219212 0.000000000000 +vt 0.107807472348 0.397282481194 0.000000000000 +vt 0.105133533478 0.393932640553 0.000000000000 +vt 0.107335999608 0.393302202225 0.000000000000 +vt 0.102719649673 0.394079893827 0.000000000000 +vt 0.101905718446 0.396900862455 0.000000000000 +vt 0.101522728801 0.398900896311 0.000000000000 +vt 0.101974606514 0.400191038847 0.000000000000 +vt 0.103468522429 0.399126052856 0.000000000000 +vt 0.104171678424 0.395909041166 0.000000000000 +vt 0.103377550840 0.395803213120 0.000000000000 +vt 0.103972420096 0.397658735514 0.000000000000 +vt 0.103157803416 0.397318959236 0.000000000000 +vt 0.102937594056 0.398482114077 0.000000000000 +vt 0.120900921524 0.421827554703 0.000000000000 +vt 0.125391185284 0.429458737373 0.000000000000 +vt 0.124984331429 0.420799940825 0.000000000000 +vt 0.132154166698 0.427056103945 0.000000000000 +vt 0.128460273147 0.416311025620 0.000000000000 +vt 0.138081595302 0.420313149691 0.000000000000 +vt 0.142197445035 0.410675615072 0.000000000000 +vt 0.131676614285 0.408927738667 0.000000000000 +vt 0.133587732911 0.401068240404 0.000000000000 +vt 0.143351808190 0.401146143675 0.000000000000 +vt 0.133652120829 0.394226670265 0.000000000000 +vt 0.142618030310 0.392982929945 0.000000000000 +vt 0.132911369205 0.388540625572 0.000000000000 +vt 0.141394317150 0.386369884014 0.000000000000 +vt 0.114809587598 0.414815992117 0.000000000000 +vt 0.119088873267 0.418000578880 0.000000000000 +vt 0.121582247317 0.417691677809 0.000000000000 +vt 0.123152919114 0.414221823215 0.000000000000 +vt 0.124552257359 0.408110886812 0.000000000000 +vt 0.125927954912 0.401200413704 0.000000000000 +vt 0.126286625862 0.395116031170 0.000000000000 +vt 0.125815823674 0.390080004930 0.000000000000 +vt 0.120327234268 0.413139492273 0.000000000000 +vt 0.120299309492 0.407533794641 0.000000000000 +vt 0.120726875961 0.401063978672 0.000000000000 +vt 0.120826847851 0.395488440990 0.000000000000 +vt 0.119930967689 0.416081815958 0.000000000000 +vt 0.118429407477 0.416086316109 0.000000000000 +vt 0.115609556437 0.412894517183 0.000000000000 +vt 0.112695828080 0.407353222370 0.000000000000 +vt 0.111295580864 0.401569455862 0.000000000000 +vt 0.110395416617 0.396767795086 0.000000000000 +vt 0.109471604228 0.392846018076 0.000000000000 +vt 0.116785764694 0.395642906427 0.000000000000 +vt 0.116270169616 0.391529113054 0.000000000000 +vt 0.120401531458 0.391011029482 0.000000000000 +vt 0.117080941796 0.400902092457 0.000000000000 +vt 0.117325022817 0.407227128744 0.000000000000 +vt 0.118285760283 0.412657201290 0.000000000000 +vt 0.118986204267 0.415048807859 0.000000000000 +vt 0.118248149753 0.414979010820 0.000000000000 +vt 0.116768434644 0.412282764912 0.000000000000 +vt 0.114910230041 0.406959205866 0.000000000000 +vt 0.113860324025 0.401094585657 0.000000000000 +vt 0.113027706742 0.396125406027 0.000000000000 +vt 0.112157255411 0.392097175121 0.000000000000 +vt 0.130801886320 0.442939460278 0.000000000000 +vt 0.128610894084 0.468570888042 0.000000000000 +vt 0.094356708229 0.491361290216 0.000000000000 +vt 0.141893029213 0.437752097845 0.000000000000 +vt 0.150102630258 0.427333265543 0.000000000000 +vt 0.154337808490 0.414093464613 0.000000000000 +vt 0.154476270080 0.401521474123 0.000000000000 +vt 0.152643069625 0.391335010529 0.000000000000 +vt 0.150666207075 0.383463352919 0.000000000000 +vt 0.151377916336 0.454670488834 0.000000000000 +vt 0.163681745529 0.437636584044 0.000000000000 +vt 0.168372631073 0.418352723122 0.000000000000 +vt 0.166913852096 0.401432096958 0.000000000000 +vt 0.163569614291 0.388818919659 0.000000000000 +vt 0.160684034228 0.379647225142 0.000000000000 +vt 0.159950926900 0.471008867025 0.000000000000 +vt 0.132880300283 0.489435285330 0.000000000000 +vt 0.177281573415 0.447766780853 0.000000000000 +vt 0.184215664864 0.422988891602 0.000000000000 +vt 0.181977853179 0.401209205389 0.000000000000 +vt 0.176495552063 0.385539740324 0.000000000000 +vt 0.171912297606 0.374865829945 0.000000000000 +vt 0.098764792085 0.505384683609 0.000000000000 +vt 0.058615576476 0.491276592016 0.000000000000 +vt 0.294122487307 0.343028873205 0.000000000000 +vt 0.033512126654 0.473827123642 0.000000000000 +vt 0.022036869079 0.449060529470 0.000000000000 +vt 0.304196149111 0.365502059460 0.000000000000 +vt 0.294669389725 0.374178409576 0.000000000000 +vt 0.283370435238 0.353863328695 0.000000000000 +vt 0.021253105253 0.427221357822 0.000000000000 +vt 0.316540300846 0.419560700655 0.000000000000 +vt 0.308288812637 0.422085821629 0.000000000000 +vt 0.304480075836 0.396445810795 0.000000000000 +vt 0.312906295061 0.403799384832 0.000000000000 +vt 0.320418357849 0.438478231430 0.000000000000 +vt 0.309799134731 0.442829579115 0.000000000000 +vt 0.322631418705 0.453612715006 0.000000000000 +vt 0.308162033558 0.458434849977 0.000000000000 +vt 0.322842836380 0.466000735760 0.000000000000 +vt 0.304739683867 0.470083713531 0.000000000000 +vt 0.321488976479 0.476586610079 0.000000000000 +vt 0.301276564598 0.479211658239 0.000000000000 +vt 0.318110078573 0.486222833395 0.000000000000 +vt 0.298631459475 0.487806051970 0.000000000000 +vt 0.342029422522 0.477887094021 0.000000000000 +vt 0.335520654917 0.489814013243 0.000000000000 +vt 0.338924765587 0.462258905172 0.000000000000 +vt 0.335986942053 0.447854578495 0.000000000000 +vt 0.331019103527 0.432695329189 0.000000000000 +vt 0.324403166771 0.415379106998 0.000000000000 +vt 0.317968666553 0.397860914469 0.000000000000 +vt 0.311544537544 0.382980197668 0.000000000000 +vt 0.292794078588 0.320117980242 0.000000000000 +vt 0.322062432766 0.330567449331 0.000000000000 +vt 0.310178071260 0.344646602869 0.000000000000 +vt 0.321752399206 0.375562220812 0.000000000000 +vt 0.315860539675 0.358816295862 0.000000000000 +vt 0.327765852213 0.391973108053 0.000000000000 +vt 0.334508121014 0.409605920315 0.000000000000 +vt 0.341052263975 0.426227092743 0.000000000000 +vt 0.345613449812 0.441917032003 0.000000000000 +vt 0.349559307098 0.456911921501 0.000000000000 +vt 0.353330194950 0.470938861370 0.000000000000 +vt 0.352067083120 0.491384476423 0.000000000000 +vt 0.346471965313 0.498636275530 0.000000000000 +vt 0.357014626265 0.482859700918 0.000000000000 +vt 0.023049619049 0.410277992487 0.000000000000 +vt 0.188200235367 0.367613345385 0.000000000000 +vt 0.193979293108 0.380675494671 0.000000000000 +vt 0.199914619327 0.400077104568 0.000000000000 +vt 0.200497537851 0.426822185516 0.000000000000 +vt 0.188813567162 0.456079959869 0.000000000000 +vt 0.165967300534 0.483203917742 0.000000000000 +vt 0.135587558150 0.503403544426 0.000000000000 +vt 0.101455852389 0.518397510052 0.000000000000 +vt 0.136549651623 0.514204204082 0.000000000000 +vt 0.102526023984 0.530645966530 0.000000000000 +vt 0.170128390193 0.491040199995 0.000000000000 +vt 0.198282465339 0.460966050625 0.000000000000 +vt 0.217465236783 0.429308772087 0.000000000000 +vt 0.220426246524 0.397770404816 0.000000000000 +vt 0.216484680772 0.373772233725 0.000000000000 +vt 0.211094245315 0.355721533298 0.000000000000 +vt 0.078403115273 0.417854249477 0.000000000000 +vt 0.077661454678 0.423130065203 0.000000000000 +vt 0.361433088779 0.473092228174 0.000000000000 +vt 0.358897387981 0.464050680399 0.000000000000 +vt 0.356920510530 0.451468318701 0.000000000000 +vt 0.079683125019 0.414227455854 0.000000000000 +vt 0.080865636468 0.412698864937 0.000000000000 +vt 0.081717401743 0.412858963013 0.000000000000 +vt 0.082934811711 0.414582073689 0.000000000000 +vt 0.083612754941 0.417999476194 0.000000000000 +vt 0.083627842367 0.422989368439 0.000000000000 +vt 0.355338811874 0.436321228743 0.000000000000 +vt 0.352934360504 0.420035988092 0.000000000000 +vt 0.348425179720 0.402650177479 0.000000000000 +vt 0.342104852200 0.385241180658 0.000000000000 +vt 0.336092978716 0.368649065495 0.000000000000 +vt 0.083053693175 0.428555428982 0.000000000000 +vt 0.331038475037 0.351473778486 0.000000000000 +vt 0.295939028263 0.301119387150 0.000000000000 +vt 0.322564095259 0.306299775839 0.000000000000 +vt 0.297336816788 0.282364428043 0.000000000000 +vt 0.323178768158 0.284241318703 0.000000000000 +vt 0.367684066296 0.461390703917 0.000000000000 +vt 0.363470733166 0.458035647869 0.000000000000 +vt 0.364652335644 0.447590470314 0.000000000000 +vt 0.365994274616 0.432411193848 0.000000000000 +vt 0.366280674934 0.415150791407 0.000000000000 +vt 0.364420890808 0.396647334099 0.000000000000 +vt 0.360572069883 0.378713041544 0.000000000000 +vt 0.356490701437 0.362032413483 0.000000000000 +vt 0.353067219257 0.345778703690 0.000000000000 +vt 0.350522726774 0.327914893627 0.000000000000 +vt 0.348939448595 0.305953025818 0.000000000000 +vt 0.346083581448 0.277952730656 0.000000000000 +vt 0.373975127935 0.447995543480 0.000000000000 +vt 0.379207283258 0.431906849146 0.000000000000 +vt 0.382956564426 0.412491261959 0.000000000000 +vt 0.384116321802 0.392035484314 0.000000000000 +vt 0.382254749537 0.373682171106 0.000000000000 +vt 0.379626274109 0.358964234591 0.000000000000 +vt 0.377992331982 0.345823734999 0.000000000000 +vt 0.377301573753 0.329902321100 0.000000000000 +vt 0.376336544752 0.303653508425 0.000000000000 +vt 0.370527774096 0.266846507788 0.000000000000 +vt 0.216167435050 0.467717558146 0.000000000000 +vt 0.210370138288 0.459447145462 0.000000000000 +vt 0.081996142864 0.433199465275 0.000000000000 +vt 0.222096204758 0.439130961895 0.000000000000 +vt 0.226445078850 0.444121509790 0.000000000000 +vt 0.233966410160 0.386992007494 0.000000000000 +vt 0.231436342001 0.403846651316 0.000000000000 +vt 0.228788286448 0.415274649858 0.000000000000 +vt 0.231669127941 0.390098005533 0.000000000000 +vt 0.233401954174 0.365559697151 0.000000000000 +vt 0.227946877480 0.368952572346 0.000000000000 +vt 0.222369551659 0.352989733219 0.000000000000 +vt 0.231268167496 0.347663909197 0.000000000000 +vt 0.228197038174 0.333069592714 0.000000000000 +vt 0.215772062540 0.341411590576 0.000000000000 +vt 0.225630939007 0.321423888206 0.000000000000 +vt 0.210557922721 0.332115828991 0.000000000000 +vt 0.240293502808 0.310512185097 0.000000000000 +vt 0.238473564386 0.327548325062 0.000000000000 +vt 0.237924396992 0.344880312681 0.000000000000 +vt 0.237548619509 0.364148646593 0.000000000000 +vt 0.080796964467 0.435884207487 0.000000000000 +vt 0.235683202744 0.385488867760 0.000000000000 +vt 0.233118027449 0.406267970800 0.000000000000 +vt 0.231307089329 0.424209684134 0.000000000000 +vt 0.210896104574 0.489333540201 0.000000000000 +vt 0.228112816811 0.462109386921 0.000000000000 +vt 0.236405730247 0.472126305103 0.000000000000 +vt 0.236261844635 0.426290810108 0.000000000000 +vt 0.232935667038 0.445951789618 0.000000000000 +vt 0.237997591496 0.406573981047 0.000000000000 +vt 0.240250259638 0.385305374861 0.000000000000 +vt 0.242734611034 0.364867120981 0.000000000000 +vt 0.244929671288 0.346436828375 0.000000000000 +vt 0.247872665524 0.330308973789 0.000000000000 +vt 0.250990182161 0.316065877676 0.000000000000 +vt 0.249255821109 0.295715004206 0.000000000000 +vt 0.254375159740 0.304102927446 0.000000000000 +vt 0.259052336216 0.313747882843 0.000000000000 +vt 0.256746292114 0.322819858789 0.000000000000 +vt 0.255218595266 0.335408508778 0.000000000000 +vt 0.254195064306 0.350621551275 0.000000000000 +vt 0.252835571766 0.367554813623 0.000000000000 +vt 0.250323951244 0.386674314737 0.000000000000 +vt 0.247343555093 0.407099246979 0.000000000000 +vt 0.244989335537 0.426806420088 0.000000000000 +vt 0.242804884911 0.447076678276 0.000000000000 +vt 0.235569059849 0.496732383966 0.000000000000 +vt 0.210636273026 0.507261335850 0.000000000000 +vt 0.265602082014 0.325080633163 0.000000000000 +vt 0.261477023363 0.328609049320 0.000000000000 +vt 0.262952446938 0.338707923889 0.000000000000 +vt 0.264598786831 0.353362590075 0.000000000000 +vt 0.265408009291 0.370452553034 0.000000000000 +vt 0.264614790678 0.389507651329 0.000000000000 +vt 0.262594908476 0.408623784781 0.000000000000 +vt 0.260723888874 0.426476329565 0.000000000000 +vt 0.259777098894 0.444406121969 0.000000000000 +vt 0.259517729282 0.464280545712 0.000000000000 +vt 0.259723722935 0.488092929125 0.000000000000 +vt 0.272190570831 0.337464153767 0.000000000000 +vt 0.277376800776 0.352163642645 0.000000000000 +vt 0.281132608652 0.370615124702 0.000000000000 +vt 0.283069849014 0.391205787659 0.000000000000 +vt 0.282786369324 0.410528808832 0.000000000000 +vt 0.281975150108 0.425936192274 0.000000000000 +vt 0.281850397587 0.438871800900 0.000000000000 +vt 0.282650381327 0.454188883305 0.000000000000 +vt 0.285106837749 0.479603022337 0.000000000000 +vt 0.079694159329 0.435663342476 0.000000000000 +vt 0.078524023294 0.432797789574 0.000000000000 +vt 0.077620923519 0.428230971098 0.000000000000 +vt 0.079657681286 0.418213814497 0.000000000000 +vt 0.079307116568 0.423214733601 0.000000000000 +vt 0.080295994878 0.414836943150 0.000000000000 +vt 0.080963805318 0.413298457861 0.000000000000 +vt 0.081294111907 0.413456052542 0.000000000000 +vt 0.081488415599 0.414713323116 0.000000000000 +vt 0.082648865879 0.418150305748 0.000000000000 +vt 0.082757845521 0.422904253006 0.000000000000 +vt 0.082332074642 0.427900880575 0.000000000000 +vt 0.081549659371 0.432032704353 0.000000000000 +vt 0.080782778561 0.434659361839 0.000000000000 +vt 0.080355659127 0.434551537037 0.000000000000 +vt 0.079714648426 0.432231515646 0.000000000000 +vt 0.079296082258 0.428110510111 0.000000000000 +vt 0.221947401762 0.311564117670 0.000000000000 +vt 0.206676691771 0.323618710041 0.000000000000 +vt 0.234236359596 0.298808634281 0.000000000000 +vt 0.243671953678 0.288532763720 0.000000000000 +vt 0.210074737668 0.525931179523 0.000000000000 +vt 0.234980046749 0.519074082375 0.000000000000 +vt 0.258448451757 0.516759932041 0.000000000000 +vt 0.285151630640 0.516420423985 0.000000000000 +vt 0.195827364922 0.027920853347 0.000000000000 +vt 0.193216472864 0.025534208864 0.000000000000 +vt 0.208045646548 0.014590993524 0.000000000000 +vt 0.209939867258 0.017815891653 0.000000000000 +vt 0.219733223319 0.012098524719 0.000000000000 +vt 0.219577640295 0.015777334571 0.000000000000 +vt 0.231459319592 0.012075107545 0.000000000000 +vt 0.230521082878 0.016644857824 0.000000000000 +vt 0.243238985538 0.012886568904 0.000000000000 +vt 0.242090910673 0.019283901900 0.000000000000 +vt 0.254986017942 0.014112763107 0.000000000000 +vt 0.254209905863 0.020853456110 0.000000000000 +vt 0.268618255854 0.021859001368 0.000000000000 +vt 0.266599744558 0.015186753124 0.000000000000 +vt 0.278297692537 0.015581674874 0.000000000000 +vt 0.280311465263 0.022918354720 0.000000000000 +vt 0.294243395329 0.017284523696 0.000000000000 +vt 0.290962666273 0.024005178362 0.000000000000 +vt 0.296158790588 0.030226442963 0.000000000000 +vt 0.300414890051 0.029313210398 0.000000000000 +vt 0.303686618805 0.042154934257 0.000000000000 +vt 0.299199730158 0.041589122266 0.000000000000 +vt 0.303400695324 0.052850034088 0.000000000000 +vt 0.299067586660 0.051488291472 0.000000000000 +vt 0.301245510578 0.063028395176 0.000000000000 +vt 0.297050625086 0.061028119177 0.000000000000 +vt 0.188072130084 0.041658472270 0.000000000000 +vt 0.184647515416 0.040359999985 0.000000000000 +vt 0.185590237379 0.054300930351 0.000000000000 +vt 0.180999323726 0.054078709334 0.000000000000 +vt 0.186842098832 0.067733690143 0.000000000000 +vt 0.180815145373 0.066969290376 0.000000000000 +vt 0.187923297286 0.082707628608 0.000000000000 +vt 0.181074976921 0.081876814365 0.000000000000 +vt 0.187377303839 0.107746466994 0.000000000000 +vt 0.187539190054 0.120622426271 0.000000000000 +vt 0.181078135967 0.122370526195 0.000000000000 +vt 0.180750086904 0.106961801648 0.000000000000 +vt 0.181374669075 0.094601452351 0.000000000000 +vt 0.187665045261 0.095849484205 0.000000000000 +vt 0.227798283100 0.129312291741 0.000000000000 +vt 0.238564521074 0.124569609761 0.000000000000 +vt 0.243330389261 0.127270132303 0.000000000000 +vt 0.231010556221 0.133791074157 0.000000000000 +vt 0.220073655248 0.135354548693 0.000000000000 +vt 0.218523919582 0.131200432777 0.000000000000 +vt 0.206768333912 0.135661438107 0.000000000000 +vt 0.206591814756 0.131151124835 0.000000000000 +vt 0.194878339767 0.131718292832 0.000000000000 +vt 0.195264026523 0.127670004964 0.000000000000 +vt 0.297571629286 0.073909014463 0.000000000000 +vt 0.293510973454 0.071692824364 0.000000000000 +vt 0.293531447649 0.085388556123 0.000000000000 +vt 0.288804322481 0.082740962505 0.000000000000 +vt 0.284273296595 0.097582057118 0.000000000000 +vt 0.281252384186 0.094275429845 0.000000000000 +vt 0.270511358976 0.111514881253 0.000000000000 +vt 0.267813563347 0.108745023608 0.000000000000 +vt 0.253925532103 0.117747187614 0.000000000000 +vt 0.256331086159 0.121454820037 0.000000000000 +vt 0.267415255308 0.081492692232 0.000000000000 +vt 0.255906671286 0.094144165516 0.000000000000 +vt 0.244139820337 0.101001486182 0.000000000000 +vt 0.231230318546 0.105198845267 0.000000000000 +vt 0.219598352909 0.110711082816 0.000000000000 +vt 0.213647723198 0.110525771976 0.000000000000 +vt 0.198271200061 0.116921544075 0.000000000000 +vt 0.203886121511 0.110362097621 0.000000000000 +vt 0.196813777089 0.098104864359 0.000000000000 +vt 0.196252465248 0.102853164077 0.000000000000 +vt 0.272518634796 0.073012456298 0.000000000000 +vt 0.276711463928 0.062691569328 0.000000000000 +vt 0.280104994774 0.053172681481 0.000000000000 +vt 0.283575773239 0.045879449695 0.000000000000 +vt 0.283506870270 0.039421103895 0.000000000000 +vt 0.282259076834 0.030528377742 0.000000000000 +vt 0.272425651550 0.030439440161 0.000000000000 +vt 0.257659971714 0.030192218721 0.000000000000 +vt 0.247058525681 0.033215377480 0.000000000000 +vt 0.228341341019 0.025837715715 0.000000000000 +vt 0.218866378069 0.024133518338 0.000000000000 +vt 0.212634310126 0.025178913027 0.000000000000 +vt 0.200903266668 0.032452777028 0.000000000000 +vt 0.194876089692 0.044088792056 0.000000000000 +vt 0.193243041635 0.053994949907 0.000000000000 +vt 0.194931253791 0.067793801427 0.000000000000 +vt 0.198766767979 0.084062173963 0.000000000000 +vt 0.206359907985 0.094736546278 0.000000000000 +vt 0.212366148829 0.098234102130 0.000000000000 +vt 0.217166453600 0.096218973398 0.000000000000 +vt 0.205443292856 0.087112799287 0.000000000000 +vt 0.226509511471 0.090840920806 0.000000000000 +vt 0.237037748098 0.087899029255 0.000000000000 +vt 0.246875688434 0.081057921052 0.000000000000 +vt 0.256278872490 0.072482436895 0.000000000000 +vt 0.260736495256 0.057795342058 0.000000000000 +vt 0.259254723787 0.064904838800 0.000000000000 +vt 0.272691100836 0.038979575038 0.000000000000 +vt 0.262009739876 0.038989257067 0.000000000000 +vt 0.276944041252 0.045822035521 0.000000000000 +vt 0.268426418304 0.047114204615 0.000000000000 +vt 0.269619315863 0.043809827417 0.000000000000 +vt 0.253669768572 0.045147921890 0.000000000000 +vt 0.248847588897 0.056667540222 0.000000000000 +vt 0.246177032590 0.064497530460 0.000000000000 +vt 0.239239543676 0.071869567037 0.000000000000 +vt 0.232059359550 0.077080324292 0.000000000000 +vt 0.222070574760 0.079870447516 0.000000000000 +vt 0.206698760390 0.074161648750 0.000000000000 +vt 0.213897421956 0.072432681918 0.000000000000 +vt 0.205729246140 0.062620416284 0.000000000000 +vt 0.203790888190 0.054370727390 0.000000000000 +vt 0.204770088196 0.045650247484 0.000000000000 +vt 0.208388775587 0.038391694427 0.000000000000 +vt 0.216515302658 0.032267022878 0.000000000000 +vt 0.221525013447 0.031139671803 0.000000000000 +vt 0.229856431484 0.032532032579 0.000000000000 +vt 0.240117192268 0.040356174111 0.000000000000 +vt 0.238003432751 0.049525838345 0.000000000000 +vt 0.230851382017 0.062317129225 0.000000000000 +vt 0.223892956972 0.068100020289 0.000000000000 +vt 0.218158707023 0.060949768871 0.000000000000 +vt 0.224889278412 0.055608633906 0.000000000000 +vt 0.231338173151 0.044668566436 0.000000000000 +vt 0.224949836731 0.040866594762 0.000000000000 +vt 0.220517441630 0.039209909737 0.000000000000 +vt 0.215718701482 0.043925788254 0.000000000000 +vt 0.211569100618 0.049045812339 0.000000000000 +vt 0.212551221251 0.054835002869 0.000000000000 +vt 0.219418004155 0.048615094274 0.000000000000 +vt 0.177896246314 0.039324510843 0.000000000000 +vt 0.189204439521 0.020011376590 0.000000000000 +vt 0.204814672470 0.008875429630 0.000000000000 +vt 0.218808963895 0.005773015320 0.000000000000 +vt 0.232130467892 0.004795841873 0.000000000000 +vt 0.243434399366 0.006405927241 0.000000000000 +vt 0.255707651377 0.007152091712 0.000000000000 +vt 0.266037523746 0.008445382118 0.000000000000 +vt 0.276542603970 0.009638480842 0.000000000000 +vt 0.291882872581 0.013886258006 0.000000000000 +vt 0.305758953094 0.026801381260 0.000000000000 +vt 0.310110300779 0.042010162026 0.000000000000 +vt 0.309658646584 0.054701257497 0.000000000000 +vt 0.307640582323 0.066039174795 0.000000000000 +vt 0.304315268993 0.075605571270 0.000000000000 +vt 0.302689433098 0.083687961102 0.000000000000 +vt 0.289600938559 0.101637110114 0.000000000000 +vt 0.275979250669 0.114943787456 0.000000000000 +vt 0.261293739080 0.125751689076 0.000000000000 +vt 0.248583957553 0.132909372449 0.000000000000 +vt 0.218775406480 0.143254563212 0.000000000000 +vt 0.228658616543 0.143950298429 0.000000000000 +vt 0.206840604544 0.142785564065 0.000000000000 +vt 0.190907508135 0.138325244188 0.000000000000 +vt 0.181003153324 0.126772314310 0.000000000000 +vt 0.174718171358 0.105727061629 0.000000000000 +vt 0.175457358360 0.093386068940 0.000000000000 +vt 0.176170423627 0.080959752202 0.000000000000 +vt 0.175519734621 0.067012742162 0.000000000000 +vt 0.174860477448 0.054189030081 0.000000000000 +vt 0.175442948937 0.118314579129 0.000000000000 +vt 0.299658834934 0.013686995953 0.000000000000 +vt 0.297007620335 0.015501294285 0.000000000000 +vt 0.296986013651 0.094732716680 0.000000000000 +vt 0.178140535951 0.121313422918 0.000000000000 +vt 0.178094834089 0.129377126694 0.000000000000 +vt 0.290370285511 0.010927941650 0.000000000000 +vt 0.240662753582 0.138773083687 0.000000000000 +vt 0.059489179403 0.582100212574 0.000000000000 +vt 0.068415686488 0.582416296005 0.000000000000 +vt 0.067261539400 0.606926023960 0.000000000000 +vt 0.058599364012 0.606609225273 0.000000000000 +vt 0.050634499639 0.581815600395 0.000000000000 +vt 0.050033342093 0.606300354004 0.000000000000 +vt 0.041638877243 0.581597447395 0.000000000000 +vt 0.041299115866 0.606083035469 0.000000000000 +vt 0.032489020377 0.581519067287 0.000000000000 +vt 0.032466728240 0.605973839760 0.000000000000 +vt 0.023544281721 0.581574916840 0.000000000000 +vt 0.023710895330 0.605970263481 0.000000000000 +vt 0.077301658690 0.582797050476 0.000000000000 +vt 0.075893089175 0.607333362103 0.000000000000 +vt 0.035480882972 0.775563001633 0.000000000000 +vt 0.040293347090 0.776472151279 0.000000000000 +vt 0.036699648947 0.779854416847 0.000000000000 +vt 0.032038930804 0.777974605560 0.000000000000 +vt 0.044753897935 0.775144159794 0.000000000000 +vt 0.049120556563 0.776610195637 0.000000000000 +vt 0.044636141509 0.779394447803 0.000000000000 +vt 0.050690788776 0.780745148659 0.000000000000 +vt 0.054302733392 0.776831269264 0.000000000000 +vt 0.056948300451 0.779902398586 0.000000000000 +vt 0.057442288846 0.767054140568 0.000000000000 +vt 0.051350947469 0.766096353531 0.000000000000 +vt 0.045185070485 0.765643537045 0.000000000000 +vt 0.039071660489 0.765589058399 0.000000000000 +vt 0.032788928598 0.766110718250 0.000000000000 +vt 0.026467472315 0.767407417297 0.000000000000 +vt 0.063698008657 0.768436372280 0.000000000000 +vt 0.410184800625 0.205661505461 0.000000000000 +vt 0.061233457178 0.523812234402 0.000000000000 +vt 0.070765629411 0.524310529232 0.000000000000 +vt 0.069685108960 0.554912924767 0.000000000000 +vt 0.060390468687 0.554528176785 0.000000000000 +vt 0.053767081350 0.729990005493 0.000000000000 +vt 0.061261150986 0.730732798576 0.000000000000 +vt 0.054995980114 0.702194809914 0.000000000000 +vt 0.062634825706 0.702704548836 0.000000000000 +vt 0.064006246626 0.678737044334 0.000000000000 +vt 0.055990491062 0.678335130215 0.000000000000 +vt 0.056928943843 0.654432654381 0.000000000000 +vt 0.065110854805 0.654795587063 0.000000000000 +vt 0.066195428371 0.630862057209 0.000000000000 +vt 0.057763587683 0.630513489246 0.000000000000 +vt 0.051746767014 0.523659586906 0.000000000000 +vt 0.051160465926 0.554318308830 0.000000000000 +vt 0.046276170760 0.729541480541 0.000000000000 +vt 0.047176342458 0.701836824417 0.000000000000 +vt 0.047830644995 0.678016304970 0.000000000000 +vt 0.048644352704 0.654150307178 0.000000000000 +vt 0.049303833395 0.630233883858 0.000000000000 +vt 0.042389769107 0.523753523827 0.000000000000 +vt 0.041977059096 0.554233670235 0.000000000000 +vt 0.038769047707 0.729471445084 0.000000000000 +vt 0.039331037551 0.701696574688 0.000000000000 +vt 0.039704795927 0.677826702595 0.000000000000 +vt 0.040310915560 0.653930783272 0.000000000000 +vt 0.040829222649 0.630019962788 0.000000000000 +vt 0.032788697630 0.523885667324 0.000000000000 +vt 0.032603625208 0.554248988628 0.000000000000 +vt 0.031183568761 0.729752242565 0.000000000000 +vt 0.031547192484 0.701745390892 0.000000000000 +vt 0.031793061644 0.677753329277 0.000000000000 +vt 0.032022494823 0.653800427914 0.000000000000 +vt 0.032241348177 0.629892110825 0.000000000000 +vt 0.023286256939 0.523862004280 0.000000000000 +vt 0.023312594742 0.554275989532 0.000000000000 +vt 0.023615654558 0.730087935925 0.000000000000 +vt 0.023773714900 0.701748549938 0.000000000000 +vt 0.023966450244 0.677748382092 0.000000000000 +vt 0.023824151605 0.653813481331 0.000000000000 +vt 0.023755025119 0.629873633385 0.000000000000 +vt 0.080035939813 0.524939179420 0.000000000000 +vt 0.078819200397 0.555354475975 0.000000000000 +vt 0.068714916706 0.731523096561 0.000000000000 +vt 0.070204541087 0.703219473362 0.000000000000 +vt 0.071883074939 0.679210066795 0.000000000000 +vt 0.073152050376 0.655230820179 0.000000000000 +vt 0.074596188962 0.631297707558 0.000000000000 +vt 0.427655726671 0.333007007837 0.000000000000 +vt 0.440372914076 0.328327596188 0.000000000000 +vt 0.444987475872 0.344597071409 0.000000000000 +vt 0.432079792023 0.348230421543 0.000000000000 +vt 0.436833947897 0.363906830549 0.000000000000 +vt 0.449768215418 0.360880523920 0.000000000000 +vt 0.454692780972 0.378165900707 0.000000000000 +vt 0.441895663738 0.381562143564 0.000000000000 +vt 0.414691954851 0.337748318911 0.000000000000 +vt 0.419402211905 0.352767288685 0.000000000000 +vt 0.424107730389 0.368486940861 0.000000000000 +vt 0.429422736168 0.385863065720 0.000000000000 +vt 0.401303559542 0.341026574373 0.000000000000 +vt 0.406823009253 0.357325315475 0.000000000000 +vt 0.411697834730 0.372874319553 0.000000000000 +vt 0.417245209217 0.390449941158 0.000000000000 +vt 0.387970775366 0.344980746508 0.000000000000 +vt 0.393820285797 0.361572891474 0.000000000000 +vt 0.399133056402 0.377458244562 0.000000000000 +vt 0.404806077480 0.394824922085 0.000000000000 +vt 0.453473359346 0.324476778507 0.000000000000 +vt 0.466956764460 0.321778506041 0.000000000000 +vt 0.471398383379 0.338798433542 0.000000000000 +vt 0.458161979914 0.342115193605 0.000000000000 +vt 0.462697505951 0.358080714941 0.000000000000 +vt 0.475638061762 0.355021774769 0.000000000000 +vt 0.480182796717 0.372735410929 0.000000000000 +vt 0.467404156923 0.375559061766 0.000000000000 +vt 0.423334538937 0.312670528889 0.000000000000 +vt 0.433873385191 0.309838533401 0.000000000000 +vt 0.436265200377 0.312351495028 0.000000000000 +vt 0.422530740499 0.315895646811 0.000000000000 +vt 0.447797864676 0.306353360415 0.000000000000 +vt 0.450094014406 0.308744937181 0.000000000000 +vt 0.461704343557 0.302910506725 0.000000000000 +vt 0.463915377855 0.305326640606 0.000000000000 +vt 0.382604420185 0.326017051935 0.000000000000 +vt 0.392749220133 0.322181522846 0.000000000000 +vt 0.395257681608 0.324275016785 0.000000000000 +vt 0.382101863623 0.329265147448 0.000000000000 +vt 0.406064450741 0.317371100187 0.000000000000 +vt 0.408690214157 0.319537758827 0.000000000000 +vt 0.454164594412 0.389897853136 0.000000000000 +vt 0.448823004961 0.391495555639 0.000000000000 +vt 0.443516105413 0.386446684599 0.000000000000 +vt 0.456138074398 0.383067548275 0.000000000000 +vt 0.437463909388 0.395830690861 0.000000000000 +vt 0.431178033352 0.391206234694 0.000000000000 +vt 0.424428552389 0.400618851185 0.000000000000 +vt 0.419008165598 0.395644724369 0.000000000000 +vt 0.412200152874 0.404757648706 0.000000000000 +vt 0.406511843204 0.400167405605 0.000000000000 +vt 0.479276150465 0.385172754526 0.000000000000 +vt 0.473846048117 0.386270821095 0.000000000000 +vt 0.468606919050 0.380785584450 0.000000000000 +vt 0.481370300055 0.378176510334 0.000000000000 +vt 0.436999201775 0.315413832664 0.000000000000 +vt 0.423440814018 0.318899452686 0.000000000000 +vt 0.450722873211 0.311825752258 0.000000000000 +vt 0.464657485485 0.308184534311 0.000000000000 +vt 0.396297454834 0.327027112246 0.000000000000 +vt 0.382932245731 0.332121223211 0.000000000000 +vt 0.409763991833 0.322595357895 0.000000000000 +vt 0.442299365997 0.382790595293 0.000000000000 +vt 0.455049455166 0.379350900650 0.000000000000 +vt 0.429864943027 0.387207239866 0.000000000000 +vt 0.417697101831 0.391777902842 0.000000000000 +vt 0.404973804951 0.396399646997 0.000000000000 +vt 0.467713981867 0.376910001040 0.000000000000 +vt 0.480817049742 0.374158143997 0.000000000000 +vt 0.437278181314 0.316399097443 0.000000000000 +vt 0.423721343279 0.319981753826 0.000000000000 +vt 0.450930684805 0.312892526388 0.000000000000 +vt 0.464460253716 0.309410959482 0.000000000000 +vt 0.396746635437 0.328152865171 0.000000000000 +vt 0.383763283491 0.333080857992 0.000000000000 +vt 0.410141348839 0.323806256056 0.000000000000 +vt 0.371242642403 0.206788405776 0.000000000000 +vt 0.375714451075 0.200254172087 0.000000000000 +vt 0.379231601954 0.206475213170 0.000000000000 +vt 0.375783115625 0.212909027934 0.000000000000 +vt 0.383946120739 0.214252978563 0.000000000000 +vt 0.385994136333 0.206152796745 0.000000000000 +vt 0.383823841810 0.198206618428 0.000000000000 +vt 0.389040261507 0.196492955089 0.000000000000 +vt 0.391231000423 0.205955997109 0.000000000000 +vt 0.388896137476 0.215648040175 0.000000000000 +vt 0.386244505644 0.225284442306 0.000000000000 +vt 0.381366074085 0.234502539039 0.000000000000 +vt 0.377654612064 0.230434879661 0.000000000000 +vt 0.380352199078 0.177962914109 0.000000000000 +vt 0.385863542557 0.187034189701 0.000000000000 +vt 0.376735985279 0.182071089745 0.000000000000 +vt 0.400243073702 0.205795019865 0.000000000000 +vt 0.398853629827 0.194475561380 0.000000000000 +vt 0.398457139730 0.217155665159 0.000000000000 +vt 0.395268946886 0.228200212121 0.000000000000 +vt 0.391248136759 0.239007428288 0.000000000000 +vt 0.395271182060 0.183712929487 0.000000000000 +vt 0.390099167824 0.173236235976 0.000000000000 +vt 0.404895007610 0.295395046473 0.000000000000 +vt 0.401947498322 0.296175211668 0.000000000000 +vt 0.399637848139 0.292153716087 0.000000000000 +vt 0.401830643415 0.291295886040 0.000000000000 +vt 0.399310708046 0.296199768782 0.000000000000 +vt 0.397574305534 0.292755782604 0.000000000000 +vt 0.408904105425 0.288272053003 0.000000000000 +vt 0.407307982445 0.290285140276 0.000000000000 +vt 0.404559284449 0.287732571363 0.000000000000 +vt 0.406326085329 0.285840153694 0.000000000000 +vt 0.406662702560 0.292970359325 0.000000000000 +vt 0.403447926044 0.289671152830 0.000000000000 +vt 0.396660417318 0.287977755070 0.000000000000 +vt 0.398700773716 0.286984145641 0.000000000000 +vt 0.394956201315 0.288790345192 0.000000000000 +vt 0.401856094599 0.284300088882 0.000000000000 +vt 0.403861761093 0.282722651958 0.000000000000 +vt 0.400499969721 0.285655498505 0.000000000000 +vt 0.393806338310 0.283442467451 0.000000000000 +vt 0.395833194256 0.282441198826 0.000000000000 +vt 0.392093360424 0.284306377172 0.000000000000 +vt 0.399467855692 0.280218929052 0.000000000000 +vt 0.401700288057 0.278968840837 0.000000000000 +vt 0.397831201553 0.281272202730 0.000000000000 +vt 0.391297876835 0.278489261866 0.000000000000 +vt 0.393293648958 0.277554869652 0.000000000000 +vt 0.389414459467 0.279250085354 0.000000000000 +vt 0.397396445274 0.275657951832 0.000000000000 +vt 0.399793207645 0.274844229221 0.000000000000 +vt 0.395377457142 0.276584476233 0.000000000000 +vt 0.389087766409 0.272915095091 0.000000000000 +vt 0.391173362732 0.272055685520 0.000000000000 +vt 0.386810988188 0.273582458496 0.000000000000 +vt 0.395762920380 0.270275622606 0.000000000000 +vt 0.398250907660 0.270135104656 0.000000000000 +vt 0.393281280994 0.271341711283 0.000000000000 +vt 0.387520015240 0.266913384199 0.000000000000 +vt 0.389951229095 0.266276419163 0.000000000000 +vt 0.384966522455 0.267515212297 0.000000000000 +vt 0.394670933485 0.264871448278 0.000000000000 +vt 0.397267192602 0.265005409718 0.000000000000 +vt 0.392056882381 0.265746623278 0.000000000000 +vt 0.386280536652 0.262535691261 0.000000000000 +vt 0.389030128717 0.261800318956 0.000000000000 +vt 0.383825421333 0.263225555420 0.000000000000 +vt 0.394305050373 0.261209517717 0.000000000000 +vt 0.396993845701 0.261318951845 0.000000000000 +vt 0.391601622105 0.261423856020 0.000000000000 +vt 0.384926229715 0.259148895741 0.000000000000 +vt 0.388205587864 0.257940262556 0.000000000000 +vt 0.382767438889 0.261004865170 0.000000000000 +vt 0.394367873669 0.258704215288 0.000000000000 +vt 0.397562384605 0.259168028831 0.000000000000 +vt 0.391579329967 0.257740765810 0.000000000000 +vt 0.062066528946 0.497222512960 0.000000000000 +vt 0.071865737438 0.497819632292 0.000000000000 +vt 0.052253138274 0.497047573328 0.000000000000 +vt 0.042627077550 0.497259229422 0.000000000000 +vt 0.032757628709 0.497487276793 0.000000000000 +vt 0.022930733860 0.497487515211 0.000000000000 +vt 0.081421323121 0.498642355204 0.000000000000 +vt 0.408895790577 0.192783519626 0.000000000000 +vt 0.405064105988 0.180669501424 0.000000000000 +vt 0.400167405605 0.169291511178 0.000000000000 +vt 0.401480078697 0.242461070418 0.000000000000 +vt 0.405161798000 0.230870768428 0.000000000000 +vt 0.408491641283 0.218653172255 0.000000000000 +vt 0.380247503519 0.189571470022 0.000000000000 +vt 0.381086647511 0.223131284118 0.000000000000 +vt 0.420218378305 0.313499540091 0.000000000000 +vt 0.442574709654 0.393686324358 0.000000000000 +vt 0.437170535326 0.308998465538 0.000000000000 +vt 0.450992375612 0.305552929640 0.000000000000 +vt 0.395807057619 0.321048557758 0.000000000000 +vt 0.409543335438 0.316259503365 0.000000000000 +vt 0.460468471050 0.388684481382 0.000000000000 +vt 0.429571330547 0.398836284876 0.000000000000 +vt 0.417428702116 0.402817249298 0.000000000000 +vt 0.465852618217 0.387890368700 0.000000000000 +vt 0.165486067533 0.985748410225 0.000000000000 +vt 0.153918713331 0.884558439255 0.000000000000 +vt 0.153763413429 0.881860136986 0.000000000000 +vt 0.204113468528 0.982658386230 0.000000000000 +vt 0.204646229744 0.989186286926 0.000000000000 +vt 0.186044186354 0.877731442451 0.000000000000 +vt 0.185995131731 0.879323482513 0.000000000000 +vt 0.165391892195 0.991528987885 0.000000000000 +vt 0.215989306569 0.874527692795 0.000000000000 +vt 0.239299163222 0.979033589363 0.000000000000 +vt 0.216438904405 0.876245737076 0.000000000000 +vt 0.147602885962 0.884569108486 0.000000000000 +vt 0.252690643072 0.979669451714 0.000000000000 +vt 0.252580404282 0.986951112747 0.000000000000 +vt 0.149314463139 0.881703615189 0.000000000000 +vt 0.239499345422 0.986131906509 0.000000000000 +vt 0.139916136861 0.872989058495 0.000000000000 +vt 0.153603509068 0.992006182671 0.000000000000 +vt 0.153609484434 0.990444540977 0.000000000000 +vt 0.010600453243 0.824086070061 0.000000000000 +vt 0.012143557891 0.805372476578 0.000000000000 +vt 0.018072610721 0.805904865265 0.000000000000 +vt 0.018011515960 0.835803985596 0.000000000000 +vt 0.854685604572 0.394145637751 0.000000000000 +vt 0.856347262859 0.406974732876 0.000000000000 +vt 0.854803860188 0.407253265381 0.000000000000 +vt 0.852515399456 0.394508123398 0.000000000000 +vt 0.014217739925 0.786286652088 0.000000000000 +vt 0.141516894102 0.871268332005 0.000000000000 +vt 0.236085057259 0.870658397675 0.000000000000 +vt 0.235590070486 0.871755778790 0.000000000000 +vt 0.115637660027 0.902860224247 0.000000000000 +vt 0.110983915627 0.890343248844 0.000000000000 +vt 0.113721966743 0.903127968311 0.000000000000 +vt 0.108955033123 0.891542613506 0.000000000000 +vt 0.094152219594 0.932179987431 0.000000000000 +vt 0.092673666775 0.930834054947 0.000000000000 +vt 0.070010572672 0.963107407093 0.000000000000 +vt 0.068242847919 0.961778044701 0.000000000000 +vt 0.061999842525 0.971761763096 0.000000000000 +vt 0.174994021654 0.927675366402 0.000000000000 +vt 0.144831538200 0.970289051533 0.000000000000 +vt 0.200194299221 0.932316362858 0.000000000000 +vt 0.170293733478 0.964262902737 0.000000000000 +vt 0.108677349985 0.981302440166 0.000000000000 +vt 0.124079853296 0.982393920422 0.000000000000 +vt 0.078137099743 0.979704558849 0.000000000000 +vt 0.109282203019 0.983950555325 0.000000000000 +vt 0.105039052665 0.987083256245 0.000000000000 +vt 0.125474229455 0.988127648830 0.000000000000 +vt 0.111332640052 0.988403081894 0.000000000000 +vt 0.149527281523 0.983822643757 0.000000000000 +vt 0.175797849894 0.974198222160 0.000000000000 +vt 0.200493484735 0.947993755341 0.000000000000 +vt 0.202181890607 0.953875601292 0.000000000000 +vt 0.210946768522 0.941928744316 0.000000000000 +vt 0.204716980457 0.950321793556 0.000000000000 +vt 0.211182147264 0.940664827824 0.000000000000 +vt 0.221946761012 0.927524268627 0.000000000000 +vt 0.212981313467 0.939730703831 0.000000000000 +vt 0.219961285591 0.926237881184 0.000000000000 +vt 0.236418157816 0.878085970879 0.000000000000 +vt 0.009088402614 0.867007911205 0.000000000000 +vt 0.233274430037 0.900619506836 0.000000000000 +vt 0.223317831755 0.925070583820 0.000000000000 +vt 0.222155556083 0.926465988159 0.000000000000 +vt 0.221913784742 0.924954414368 0.000000000000 +vt 0.222598418593 0.927596032619 0.000000000000 +vt 0.201231330633 0.949153244495 0.000000000000 +vt 0.203538969159 0.953897118568 0.000000000000 +vt 0.818132102489 0.385249525309 0.000000000000 +vt 0.205010369420 0.951609432697 0.000000000000 +vt 0.213920146227 0.940414905548 0.000000000000 +vt 0.818589150906 0.383544415236 0.000000000000 +vt 0.780589759350 0.374358534813 0.000000000000 +vt 0.016577487811 0.868200361729 0.000000000000 +vt 0.016604727134 0.872863054276 0.000000000000 +vt 0.010927146301 0.873423874378 0.000000000000 +vt 0.781472146511 0.373139113188 0.000000000000 +vt 0.775797307491 0.355791121721 0.000000000000 +vt 0.767820060253 0.372488409281 0.000000000000 +vt 0.802661955357 0.343176126480 0.000000000000 +vt 0.212836444378 0.942034363747 0.000000000000 +vt 0.794418156147 0.332618147135 0.000000000000 +vt 0.017825072631 0.886228740215 0.000000000000 +vt 0.859027683735 0.311750322580 0.000000000000 +vt 0.856714665890 0.300876915455 0.000000000000 +vt 0.011322205886 0.886385619640 0.000000000000 +vt 0.890980184078 0.300591170788 0.000000000000 +vt 0.212094113231 0.942788124084 0.000000000000 +vt 0.234720200300 0.900862038136 0.000000000000 +vt 0.237578302622 0.878117561340 0.000000000000 +vt 0.077356182039 0.981415390968 0.000000000000 +vt 0.060611370951 0.973357379436 0.000000000000 +vt 0.105943888426 0.988982677460 0.000000000000 +vt 0.258138507605 0.974806785583 0.000000000000 +vt 0.257529258728 0.990823626518 0.000000000000 +vt 0.264203071594 0.971977353096 0.000000000000 +vt 0.263009667397 0.993429660797 0.000000000000 +vt 0.271215617657 0.974126696587 0.000000000000 +vt 0.269773542881 0.993223547935 0.000000000000 +vt 0.125471040606 0.989767909050 0.000000000000 +vt 0.110437445343 0.990312933922 0.000000000000 +vt 0.276588261127 0.979046463966 0.000000000000 +vt 0.273934006691 0.990138053894 0.000000000000 +vt 0.150033578277 0.985471129417 0.000000000000 +vt 0.176784589887 0.975747346878 0.000000000000 +vt 0.276720821857 0.986530065536 0.000000000000 +vt 0.022495752200 0.890904963017 0.000000000000 +vt 0.891464889050 0.306228846312 0.000000000000 +vt 0.904646217823 0.305932313204 0.000000000000 +vt 0.893834292889 0.301968216896 0.000000000000 +vt 0.904706299305 0.304305553436 0.000000000000 +vt 0.921183407307 0.310902148485 0.000000000000 +vt 0.906808555126 0.304849773645 0.000000000000 +vt 0.921672403812 0.309491783381 0.000000000000 +vt 0.938244044781 0.337644517422 0.000000000000 +vt 0.005772059783 0.892303645611 0.000000000000 +vt 0.024704044685 0.895432829857 0.000000000000 +vt 0.004067962989 0.897250592709 0.000000000000 +vt 0.023151105270 0.902699828148 0.000000000000 +vt 0.006364827976 0.903177917004 0.000000000000 +vt 0.019447928295 0.907367289066 0.000000000000 +vt 0.011597758159 0.909153997898 0.000000000000 +vt 0.018155282363 0.909749448299 0.000000000000 +vt 0.289794445038 0.979737758636 0.000000000000 +vt 0.289097309113 0.986868619919 0.000000000000 +vt 0.108699530363 0.986913800240 0.000000000000 +vt 0.923338353634 0.310172647238 0.000000000000 +vt 0.947028934956 0.322753190994 0.000000000000 +vt 0.017324453220 0.921973764896 0.000000000000 +vt 0.107475332916 0.990945875645 0.000000000000 +vt 0.012956982478 0.921561121941 0.000000000000 +vt 0.109573453665 0.884426295757 0.000000000000 +vt 0.020662194118 0.973094761372 0.000000000000 +vt 0.018618410453 0.972752928734 0.000000000000 +vt 0.963379323483 0.338597148657 0.000000000000 +vt 0.020546024665 0.981108963490 0.000000000000 +vt 0.018002038822 0.980931103230 0.000000000000 +vt 0.135590508580 0.867567420006 0.000000000000 +vt 0.106516152620 0.878543734550 0.000000000000 +vt 0.131759136915 0.862308800220 0.000000000000 +vt 0.101919859648 0.872579514980 0.000000000000 +vt 0.127446323633 0.855293273926 0.000000000000 +vt 0.106182672083 0.886078596115 0.000000000000 +vt 0.102917589247 0.880396783352 0.000000000000 +vt 0.099388279021 0.873800635338 0.000000000000 +vt 0.137774154544 0.865794837475 0.000000000000 +vt 0.134449630976 0.860945940018 0.000000000000 +vt 0.129994958639 0.853814363480 0.000000000000 +vt 0.098041392863 0.867455244064 0.000000000000 +vt 0.123956769705 0.849580526352 0.000000000000 +vt 0.096607387066 0.868979096413 0.000000000000 +vt 0.126601263881 0.848501205444 0.000000000000 +vt 0.095606558025 0.864713788033 0.000000000000 +vt 0.123283371329 0.847612500191 0.000000000000 +vt 0.093895524740 0.865760445595 0.000000000000 +vt 0.125174984336 0.846612274647 0.000000000000 +vt 0.090208120644 0.853443682194 0.000000000000 +vt 0.088275067508 0.855292141438 0.000000000000 +vt 0.116189479828 0.837091147900 0.000000000000 +vt 0.119325831532 0.836723268032 0.000000000000 +vt 0.133553490043 0.788949906826 0.000000000000 +vt 0.293736696243 0.986775279045 0.000000000000 +vt 0.295940577984 0.980653762817 0.000000000000 +vt 0.340545475483 0.984447240829 0.000000000000 +vt 0.340072214603 0.986525893211 0.000000000000 +vt 0.950552880764 0.345313966274 0.000000000000 +vt 0.967208921909 0.344859838486 0.000000000000 +vt 0.950094163418 0.353987187147 0.000000000000 +vt 0.933797061443 0.363659620285 0.000000000000 +vt 0.136295691133 0.788761913776 0.000000000000 +vt 0.138059511781 0.780847370625 0.000000000000 +vt 0.130408823490 0.777872502804 0.000000000000 +vt 0.131355047226 0.775953590870 0.000000000000 +vt 0.138569056988 0.778319716454 0.000000000000 +vt 0.118060231209 0.785308957100 0.000000000000 +vt 0.896019995213 0.384664356709 0.000000000000 +vt 0.115173012018 0.774169325829 0.000000000000 +vt 0.898356497288 0.351344764233 0.000000000000 +vt 0.096679173410 0.785911738873 0.000000000000 +vt 0.095730684698 0.772729396820 0.000000000000 +vt 0.104705169797 0.831313431263 0.000000000000 +vt 0.902008712292 0.319425404072 0.000000000000 +vt 0.086956694722 0.837567865849 0.000000000000 +vt 0.082478508353 0.790962874889 0.000000000000 +vt 0.833729565144 0.320394694805 0.000000000000 +vt 0.348657131195 0.984760761261 0.000000000000 +vt 0.081306569278 0.775940597057 0.000000000000 +vt 0.089978247881 0.773647964001 0.000000000000 +vt 0.829791605473 0.309479862452 0.000000000000 +vt 0.816609799862 0.333315908909 0.000000000000 +vt 0.807817518711 0.321131646633 0.000000000000 +vt 0.797316968441 0.333731085062 0.000000000000 +vt 0.795922100544 0.331054210663 0.000000000000 +vt 0.852600395679 0.366287618876 0.000000000000 +vt 0.888158023357 0.389725148678 0.000000000000 +vt 0.891561090946 0.383528649807 0.000000000000 +vt 0.892443001270 0.390044867992 0.000000000000 +vt 0.890115559101 0.403733402491 0.000000000000 +vt 0.893740594387 0.402232736349 0.000000000000 +vt 0.889661490917 0.409355312586 0.000000000000 +vt 0.859144628048 0.413082540035 0.000000000000 +vt 0.889299809933 0.416188776493 0.000000000000 +vt 0.860674321651 0.420680373907 0.000000000000 +vt 0.890587747097 0.423362225294 0.000000000000 +vt 0.861845076084 0.428339481354 0.000000000000 +vt 0.893469750881 0.431529492140 0.000000000000 +vt 0.863975346088 0.435634076595 0.000000000000 +vt 0.892712771893 0.409693717957 0.000000000000 +vt 0.893171131611 0.415372341871 0.000000000000 +vt 0.894341528416 0.422278076410 0.000000000000 +vt 0.895548760891 0.430168658495 0.000000000000 +vt 0.856991708279 0.413939237595 0.000000000000 +vt 0.858568608761 0.420849025249 0.000000000000 +vt 0.860028803349 0.428554058075 0.000000000000 +vt 0.861705243587 0.435540854931 0.000000000000 +vt 0.862937510014 0.448144823313 0.000000000000 +vt 0.865016877651 0.448156058788 0.000000000000 +vt 0.894014537334 0.443118661642 0.000000000000 +vt 0.896675527096 0.441695034504 0.000000000000 +vt 0.942015469074 0.465249389410 0.000000000000 +vt 0.938968360424 0.467184603214 0.000000000000 +vt 0.947230279446 0.471932232380 0.000000000000 +vt 0.929851353168 0.479779750109 0.000000000000 +vt 0.884821474552 0.455685496330 0.000000000000 +vt 0.911414802074 0.493092268705 0.000000000000 +vt 0.871183216572 0.461694657803 0.000000000000 +vt 0.860978066921 0.452166974545 0.000000000000 +vt 0.943686783314 0.478628307581 0.000000000000 +vt 0.933102667332 0.492131799459 0.000000000000 +vt 0.919620096684 0.505386710167 0.000000000000 +vt 0.891063272953 0.499169915915 0.000000000000 +vt 0.916852533817 0.507224857807 0.000000000000 +vt 0.908044636250 0.511230826378 0.000000000000 +vt 0.888901054859 0.516245007515 0.000000000000 +vt 0.869810879230 0.502536654472 0.000000000000 +vt 0.873295843601 0.517087996006 0.000000000000 +vt 0.852177441120 0.511175870895 0.000000000000 +vt 0.852176964283 0.514577090740 0.000000000000 +vt 0.850538194180 0.510758638382 0.000000000000 +vt 0.846698939800 0.494376987219 0.000000000000 +vt 0.847678959370 0.512833237648 0.000000000000 +vt 0.836011469364 0.506721198559 0.000000000000 +vt 0.830273568630 0.488239735365 0.000000000000 +vt 0.829936563969 0.486338347197 0.000000000000 +vt 0.858301818371 0.452152788639 0.000000000000 +vt 0.827840387821 0.498115986586 0.000000000000 +vt 0.829935252666 0.487876564264 0.000000000000 +vt 0.823986113071 0.491719275713 0.000000000000 +vt 0.069046996534 0.797405838966 0.000000000000 +vt 0.063239946961 0.785030543804 0.000000000000 +vt 0.056414369494 0.807498395443 0.000000000000 +vt 0.050693791360 0.794903695583 0.000000000000 +vt 0.038561563939 0.813347876072 0.000000000000 +vt 0.035990972072 0.810181796551 0.000000000000 +vt 0.047508850694 0.830956161022 0.000000000000 +vt 0.037681039423 0.814844489098 0.000000000000 +vt 0.029368514195 0.826868057251 0.000000000000 +vt 0.033771704882 0.815734088421 0.000000000000 +vt 0.038801524788 0.845296800137 0.000000000000 +vt 0.029519105330 0.846085309982 0.000000000000 +vt 0.027892099693 0.839723408222 0.000000000000 +vt 0.084708891809 0.852553844452 0.000000000000 +vt 0.083767443895 0.854980945587 0.000000000000 +vt 0.037650745362 0.847761273384 0.000000000000 +vt 0.114381492138 0.771946310997 0.000000000000 +vt 0.094816014171 0.771821796894 0.000000000000 +vt 0.080136142671 0.774619162083 0.000000000000 +vt 0.090211994946 0.772520661354 0.000000000000 +vt 0.095953144133 0.783221781254 0.000000000000 +vt 0.062365397811 0.784237205982 0.000000000000 +vt 0.049735300243 0.794033586979 0.000000000000 +vt 0.035117056221 0.810181081295 0.000000000000 +vt 0.028672711924 0.846871018410 0.000000000000 +vt 0.036163691431 0.812595427036 0.000000000000 +vt 0.032508853823 0.815019369125 0.000000000000 +vt 0.035413723439 0.813524901867 0.000000000000 +vt 0.028211543337 0.827950716019 0.000000000000 +vt 0.026609050110 0.839356005192 0.000000000000 +vt 0.896258294582 0.381265163422 0.000000000000 +vt 0.934112012386 0.361818969250 0.000000000000 +vt 0.059123776853 0.925175607204 0.000000000000 +vt 0.055362485349 0.926216900349 0.000000000000 +vt 0.054541967809 0.924610912800 0.000000000000 +vt 0.057503841817 0.922102153301 0.000000000000 +vt 0.059521101415 0.928506195545 0.000000000000 +vt 0.055455230176 0.928037106991 0.000000000000 +vt 0.058347843587 0.931667983532 0.000000000000 +vt 0.054807446897 0.929809391499 0.000000000000 +vt 0.056133113801 0.934393584728 0.000000000000 +vt 0.053610645235 0.931369364262 0.000000000000 +vt 0.053249321878 0.936173141003 0.000000000000 +vt 0.051895163953 0.932276666164 0.000000000000 +vt 0.049887977540 0.936500608921 0.000000000000 +vt 0.050015471876 0.932548344135 0.000000000000 +vt 0.046488307416 0.935653746128 0.000000000000 +vt 0.048176728189 0.932161509991 0.000000000000 +vt 0.043682835996 0.933717668056 0.000000000000 +vt 0.046699486673 0.931114256382 0.000000000000 +vt 0.042096994817 0.930674016476 0.000000000000 +vt 0.045871280134 0.929518997669 0.000000000000 +vt 0.041774652898 0.927204310894 0.000000000000 +vt 0.045793555677 0.927666127682 0.000000000000 +vt 0.042907558382 0.923894703388 0.000000000000 +vt 0.046437762678 0.925861775875 0.000000000000 +vt 0.045091055334 0.921195805073 0.000000000000 +vt 0.047651670873 0.924327433109 0.000000000000 +vt 0.048192583025 0.919690430164 0.000000000000 +vt 0.049426577985 0.923481881618 0.000000000000 +vt 0.051677010953 0.919228494167 0.000000000000 +vt 0.051336131990 0.923179805279 0.000000000000 +vt 0.054966412485 0.919925153255 0.000000000000 +vt 0.053134106100 0.923531472683 0.000000000000 +vt 0.063366554677 0.923810899258 0.000000000000 +vt 0.060973726213 0.919329464436 0.000000000000 +vt 0.064595483243 0.929011166096 0.000000000000 +vt 0.062306247652 0.933849632740 0.000000000000 +vt 0.059110067785 0.937792122364 0.000000000000 +vt 0.054868541658 0.941029012203 0.000000000000 +vt 0.049543462694 0.940982162952 0.000000000000 +vt 0.044648133218 0.939702689648 0.000000000000 +vt 0.040030620992 0.937077343464 0.000000000000 +vt 0.037820480764 0.932063996792 0.000000000000 +vt 0.036892317235 0.926711142063 0.000000000000 +vt 0.038925252855 0.921679198742 0.000000000000 +vt 0.042036972940 0.917214572430 0.000000000000 +vt 0.046976409853 0.915347874165 0.000000000000 +vt 0.051998518407 0.914744794369 0.000000000000 +vt 0.057310722768 0.915426671505 0.000000000000 +vt 0.067497454584 0.921644866467 0.000000000000 +vt 0.065058015287 0.917089760303 0.000000000000 +vt 0.069694779813 0.926195323467 0.000000000000 +vt 0.065975569189 0.936767637730 0.000000000000 +vt 0.062733851373 0.940771758556 0.000000000000 +vt 0.059423707426 0.944580018520 0.000000000000 +vt 0.048389576375 0.945518910885 0.000000000000 +vt 0.043406806886 0.944201171398 0.000000000000 +vt 0.038586281240 0.942701995373 0.000000000000 +vt 0.033321164548 0.933438599110 0.000000000000 +vt 0.031816206872 0.928624808788 0.000000000000 +vt 0.034770034254 0.919423639774 0.000000000000 +vt 0.037123106420 0.914970576763 0.000000000000 +vt 0.046392939985 0.910692512989 0.000000000000 +vt 0.051504157484 0.910091817379 0.000000000000 +vt 0.056533597410 0.909688174725 0.000000000000 +vt 0.071821056306 0.919187366962 0.000000000000 +vt 0.069497846067 0.914850890636 0.000000000000 +vt 0.074104093015 0.923345625401 0.000000000000 +vt 0.069763801992 0.939998447895 0.000000000000 +vt 0.066682241857 0.943804800510 0.000000000000 +vt 0.063756071031 0.947524607182 0.000000000000 +vt 0.046995721757 0.950295627117 0.000000000000 +vt 0.042247436941 0.949036777020 0.000000000000 +vt 0.037652872503 0.947865664959 0.000000000000 +vt 0.028527699411 0.934890091419 0.000000000000 +vt 0.027052603662 0.930507719517 0.000000000000 +vt 0.030363760889 0.917036354542 0.000000000000 +vt 0.032438538969 0.912907421589 0.000000000000 +vt 0.045932315290 0.905737102032 0.000000000000 +vt 0.050800107419 0.905163943768 0.000000000000 +vt 0.055495165288 0.904551923275 0.000000000000 +vt 0.050987325609 0.924352467060 0.000000000000 +vt 0.048744998872 0.925625741482 0.000000000000 +vt 0.048258863389 0.925050437450 0.000000000000 +vt 0.049704097211 0.924391329288 0.000000000000 +vt 0.054107807577 0.926788032055 0.000000000000 +vt 0.051701687276 0.929121911526 0.000000000000 +vt 0.050647579134 0.927882850170 0.000000000000 +vt 0.053451858461 0.925569355488 0.000000000000 +vt 0.052362285554 0.924720108509 0.000000000000 +vt 0.049598239362 0.926641643047 0.000000000000 +vt 0.054247222841 0.928189814091 0.000000000000 +vt 0.052564702928 0.930132806301 0.000000000000 +vt 0.053045056760 0.930693566799 0.000000000000 +vt 0.053973041475 0.929413259029 0.000000000000 +vt 0.050350688398 0.931418359280 0.000000000000 +vt 0.051625333726 0.931378662586 0.000000000000 +vt 0.048955641687 0.931039512157 0.000000000000 +vt 0.047835491598 0.930190026760 0.000000000000 +vt 0.047166489065 0.928965747356 0.000000000000 +vt 0.047026477754 0.927548825741 0.000000000000 +vt 0.047300122678 0.926310837269 0.000000000000 +vt 0.076263017952 0.889852464199 0.000000000000 +vt 0.072937078774 0.890983402729 0.000000000000 +vt 0.072223909199 0.886963069439 0.000000000000 +vt 0.073955483735 0.886285126209 0.000000000000 +vt 0.078647918999 0.887252748013 0.000000000000 +vt 0.075236566365 0.884860932827 0.000000000000 +vt 0.080082006752 0.883868515491 0.000000000000 +vt 0.075974173844 0.882985889912 0.000000000000 +vt 0.080343849957 0.880316436291 0.000000000000 +vt 0.076127000153 0.880949914455 0.000000000000 +vt 0.078979976475 0.877020061016 0.000000000000 +vt 0.075315542519 0.879069387913 0.000000000000 +vt 0.076549418271 0.874237835407 0.000000000000 +vt 0.074006743729 0.877511203289 0.000000000000 +vt 0.073425479233 0.872460305691 0.000000000000 +vt 0.072319932282 0.876525342464 0.000000000000 +vt 0.069821424782 0.872302711010 0.000000000000 +vt 0.070436544716 0.876380264759 0.000000000000 +vt 0.066397853196 0.873569548130 0.000000000000 +vt 0.068679399788 0.877089798450 0.000000000000 +vt 0.063854344189 0.876202642918 0.000000000000 +vt 0.067366369069 0.878527104855 0.000000000000 +vt 0.062428124249 0.879545271397 0.000000000000 +vt 0.066652543843 0.880400240421 0.000000000000 +vt 0.062527008355 0.883167207241 0.000000000000 +vt 0.066598244011 0.882463753223 0.000000000000 +vt 0.063823170960 0.886639058590 0.000000000000 +vt 0.067381329834 0.884392201900 0.000000000000 +vt 0.066064722836 0.889388978481 0.000000000000 +vt 0.068642385304 0.885931313038 0.000000000000 +vt 0.069291241467 0.890806376934 0.000000000000 +vt 0.070335276425 0.886830031872 0.000000000000 +vt 0.079105265439 0.894360721111 0.000000000000 +vt 0.073614127934 0.895603239536 0.000000000000 +vt 0.082558877766 0.889905154705 0.000000000000 +vt 0.084692724049 0.885016143322 0.000000000000 +vt 0.085654027760 0.879498064518 0.000000000000 +vt 0.083038873971 0.874549567699 0.000000000000 +vt 0.079515941441 0.870571315289 0.000000000000 +vt 0.074898667634 0.867442429066 0.000000000000 +vt 0.069151528180 0.867639601231 0.000000000000 +vt 0.063656993210 0.869233548641 0.000000000000 +vt 0.059899874032 0.873542368412 0.000000000000 +vt 0.057234056294 0.878605186939 0.000000000000 +vt 0.057885952294 0.884120523930 0.000000000000 +vt 0.059755094349 0.889095604420 0.000000000000 +vt 0.062920100987 0.893733680248 0.000000000000 +vt 0.068280227482 0.895384490490 0.000000000000 +vt 0.078785724938 0.900479376316 0.000000000000 +vt 0.073472566903 0.900497257710 0.000000000000 +vt 0.087039537728 0.891929209232 0.000000000000 +vt 0.089219875634 0.886968076229 0.000000000000 +vt 0.091177947819 0.882038056850 0.000000000000 +vt 0.086754925549 0.871306598186 0.000000000000 +vt 0.083158977330 0.867264211178 0.000000000000 +vt 0.079480238259 0.863445341587 0.000000000000 +vt 0.068381793797 0.862759649754 0.000000000000 +vt 0.063137896359 0.863549411297 0.000000000000 +vt 0.055807478726 0.870739161968 0.000000000000 +vt 0.052770502865 0.875079214573 0.000000000000 +vt 0.053255327046 0.885821878910 0.000000000000 +vt 0.055160112679 0.890882432461 0.000000000000 +vt 0.057204969227 0.895774066448 0.000000000000 +vt 0.068046040833 0.900283634663 0.000000000000 +vt 0.078120060265 0.905958473682 0.000000000000 +vt 0.073138959706 0.905713617802 0.000000000000 +vt 0.091880030930 0.893913924694 0.000000000000 +vt 0.093954570591 0.889196693897 0.000000000000 +vt 0.096018739045 0.884667575359 0.000000000000 +vt 0.090575344861 0.867730081081 0.000000000000 +vt 0.087147958577 0.863881051540 0.000000000000 +vt 0.083878643811 0.860125720501 0.000000000000 +vt 0.067553706467 0.857561290264 0.000000000000 +vt 0.062731571496 0.858179271221 0.000000000000 +vt 0.051463313401 0.867761790752 0.000000000000 +vt 0.048594601452 0.871683299541 0.000000000000 +vt 0.048404522240 0.887782871723 0.000000000000 +vt 0.050217278302 0.892602741718 0.000000000000 +vt 0.051908619702 0.897282183170 0.000000000000 +vt 0.067971713841 0.905510962009 0.000000000000 +vt 0.069196112454 0.884744703770 0.000000000000 +vt 0.068222053349 0.883839309216 0.000000000000 +vt 0.067552991211 0.882304251194 0.000000000000 +vt 0.068320401013 0.882175028324 0.000000000000 +vt 0.073343880475 0.884937107563 0.000000000000 +vt 0.071995504200 0.885450780392 0.000000000000 +vt 0.071372933686 0.881675302982 0.000000000000 +vt 0.073059923947 0.881411254406 0.000000000000 +vt 0.070542402565 0.885377347469 0.000000000000 +vt 0.069689460099 0.881946742535 0.000000000000 +vt 0.074404723942 0.883906543255 0.000000000000 +vt 0.074438758194 0.881199419498 0.000000000000 +vt 0.075204439461 0.881086766720 0.000000000000 +vt 0.075038559735 0.882739722729 0.000000000000 +vt 0.073512084782 0.878659069538 0.000000000000 +vt 0.074500329792 0.879579484463 0.000000000000 +vt 0.072161979973 0.877989232540 0.000000000000 +vt 0.070704765618 0.877902209759 0.000000000000 +vt 0.069342859089 0.878422200680 0.000000000000 +vt 0.068271823227 0.879460871220 0.000000000000 +vt 0.067647464573 0.880636036396 0.000000000000 +vt 0.069012485445 0.932736814022 0.000000000000 +vt 0.053315483034 0.946615636349 0.000000000000 +vt 0.034739337862 0.938278734684 0.000000000000 +vt 0.032324932516 0.923826873302 0.000000000000 +vt 0.041412316263 0.911473333836 0.000000000000 +vt 0.062483809888 0.912739932537 0.000000000000 +vt 0.072793565691 0.936362326145 0.000000000000 +vt 0.051563642919 0.951559722424 0.000000000000 +vt 0.029731415212 0.939354598522 0.000000000000 +vt 0.028038166463 0.921029269695 0.000000000000 +vt 0.041223250329 0.906235873699 0.000000000000 +vt 0.067299149930 0.910646736622 0.000000000000 +vt 0.084724672139 0.896705806255 0.000000000000 +vt 0.090130694211 0.875394165516 0.000000000000 +vt 0.073611505330 0.861880958080 0.000000000000 +vt 0.058759339154 0.866340816021 0.000000000000 +vt 0.051577635109 0.880795300007 0.000000000000 +vt 0.062752433121 0.899852573872 0.000000000000 +vt 0.089935369790 0.898496687412 0.000000000000 +vt 0.093930847943 0.871406018734 0.000000000000 +vt 0.072329230607 0.856650412083 0.000000000000 +vt 0.054085560143 0.863671362400 0.000000000000 +vt 0.046596772969 0.883146226406 0.000000000000 +vt 0.062987215817 0.905366241932 0.000000000000 +vt 0.724434196949 0.690520286560 0.000000000000 +vt 0.714673578739 0.670199394226 0.000000000000 +vt 0.738192379475 0.658733546734 0.000000000000 +vt 0.749425828457 0.679554581642 0.000000000000 +vt 0.766880452633 0.648001551628 0.000000000000 +vt 0.778476417065 0.667455196381 0.000000000000 +vt 0.658123552799 0.561918437481 0.000000000000 +vt 0.681013524532 0.545336842537 0.000000000000 +vt 0.691574394703 0.565115392208 0.000000000000 +vt 0.668605864048 0.578333139420 0.000000000000 +vt 0.678273379803 0.596119463444 0.000000000000 +vt 0.700517117977 0.582515180111 0.000000000000 +vt 0.708820402622 0.600191891193 0.000000000000 +vt 0.686416089535 0.614063024521 0.000000000000 +vt 0.693850934505 0.631938755512 0.000000000000 +vt 0.717175424099 0.619349181652 0.000000000000 +vt 0.726578891277 0.638749718666 0.000000000000 +vt 0.702835142612 0.650949716568 0.000000000000 +vt 0.727393448353 0.566789627075 0.000000000000 +vt 0.737516939640 0.584310531616 0.000000000000 +vt 0.746533215046 0.605367720127 0.000000000000 +vt 0.755558550358 0.627303957939 0.000000000000 +vt 0.717193305492 0.550311207771 0.000000000000 +vt 0.707122027874 0.527874290943 0.000000000000 +vt 0.648476541042 0.550091445446 0.000000000000 +vt 0.670800983906 0.526029586792 0.000000000000 +vt 0.796826541424 0.635315418243 0.000000000000 +vt 0.810074508190 0.653544664383 0.000000000000 +vt 0.828041613102 0.628299355507 0.000000000000 +vt 0.837326347828 0.640173137188 0.000000000000 +vt 0.784561932087 0.614920377731 0.000000000000 +vt 0.774542272091 0.593422353268 0.000000000000 +vt 0.802680790424 0.583606719971 0.000000000000 +vt 0.815609514713 0.603868663311 0.000000000000 +vt 0.744441092014 0.531438291073 0.000000000000 +vt 0.776179373264 0.512288391590 0.000000000000 +vt 0.783609092236 0.532737612724 0.000000000000 +vt 0.755129158497 0.549743592739 0.000000000000 +vt 0.697984158993 0.500902295113 0.000000000000 +vt 0.737360656261 0.508947730064 0.000000000000 +vt 0.730104506016 0.483820885420 0.000000000000 +vt 0.765154659748 0.571034491062 0.000000000000 +vt 0.792746603489 0.558559775352 0.000000000000 +vt 0.768725693226 0.492010682821 0.000000000000 +vt 0.757663547993 0.472875863314 0.000000000000 +vt 0.725043118000 0.693508327007 0.000000000000 +vt 0.750067889690 0.685739338398 0.000000000000 +vt 0.791203796864 0.399861633778 0.000000000000 +vt 0.779777586460 0.399193614721 0.000000000000 +vt 0.752974689007 0.710415661335 0.000000000000 +vt 0.804506599903 0.398513197899 0.000000000000 +vt 0.782004177570 0.452414214611 0.000000000000 +vt 0.780603945255 0.444166988134 0.000000000000 +vt 0.791876137257 0.443759024143 0.000000000000 +vt 0.793968260288 0.453128397465 0.000000000000 +vt 0.779418051243 0.435353308916 0.000000000000 +vt 0.778252422810 0.426639556885 0.000000000000 +vt 0.789694845676 0.427197962999 0.000000000000 +vt 0.790620148182 0.435532063246 0.000000000000 +vt 0.777533710003 0.418020188808 0.000000000000 +vt 0.777940571308 0.408807516098 0.000000000000 +vt 0.789442360401 0.409360051155 0.000000000000 +vt 0.789057195187 0.418372094631 0.000000000000 +vt 0.803890883923 0.427518129349 0.000000000000 +vt 0.804031312466 0.435820281506 0.000000000000 +vt 0.803060233593 0.417909622192 0.000000000000 +vt 0.802897393703 0.408120334148 0.000000000000 +vt 0.804555714130 0.443755626678 0.000000000000 +vt 0.807329356670 0.454006284475 0.000000000000 +vt 0.725099384785 0.716310918331 0.000000000000 +vt 0.779836833477 0.674231469631 0.000000000000 +vt 0.783605754375 0.697045505047 0.000000000000 +vt 0.818779408932 0.398010879755 0.000000000000 +vt 0.643724501133 0.545761525631 0.000000000000 +vt 0.628008902073 0.541231870651 0.000000000000 +vt 0.816486179829 0.407289743423 0.000000000000 +vt 0.643818080425 0.512760996819 0.000000000000 +vt 0.665438830853 0.521224975586 0.000000000000 +vt 0.815758764744 0.416817396879 0.000000000000 +vt 0.818642079830 0.444537609816 0.000000000000 +vt 0.817937195301 0.436300307512 0.000000000000 +vt 0.811494052410 0.658484101295 0.000000000000 +vt 0.816042482853 0.680989921093 0.000000000000 +vt 0.840249359608 0.645133495331 0.000000000000 +vt 0.822369277477 0.453545153141 0.000000000000 +vt 0.847676336765 0.654553532600 0.000000000000 +vt 0.848686635494 0.579840302467 0.000000000000 +vt 0.816775619984 0.426806628704 0.000000000000 +vt 0.821314275265 0.600943446159 0.000000000000 +vt 0.813257277012 0.578419387341 0.000000000000 +vt 0.838545382023 0.561789393425 0.000000000000 +vt 0.819137394428 0.502666831017 0.000000000000 +vt 0.823779404163 0.522105157375 0.000000000000 +vt 0.790229976177 0.529961049557 0.000000000000 +vt 0.781899273396 0.510464847088 0.000000000000 +vt 0.668055117130 0.483010739088 0.000000000000 +vt 0.692842900753 0.497021466494 0.000000000000 +vt 0.808572947979 0.481489390135 0.000000000000 +vt 0.704506456852 0.458266437054 0.000000000000 +vt 0.801172792912 0.554602205753 0.000000000000 +vt 0.830090582371 0.542637288570 0.000000000000 +vt 0.773884236813 0.490298360586 0.000000000000 +vt 0.726107180119 0.478320568800 0.000000000000 +vt 0.745716154575 0.441092967987 0.000000000000 +vt 0.753030359745 0.462626129389 0.000000000000 +vt 0.722523391247 0.691917836666 0.000000000000 +vt 0.749568045139 0.682414948940 0.000000000000 +vt 0.779008090496 0.670675337315 0.000000000000 +vt 0.667049825191 0.578830957413 0.000000000000 +vt 0.684892475605 0.614746153355 0.000000000000 +vt 0.676726400852 0.596634447575 0.000000000000 +vt 0.701373159885 0.652009308338 0.000000000000 +vt 0.692301928997 0.632841825485 0.000000000000 +vt 0.646996915340 0.549704909325 0.000000000000 +vt 0.667850673199 0.524221837521 0.000000000000 +vt 0.810716688633 0.655620336533 0.000000000000 +vt 0.839727461338 0.639870941639 0.000000000000 +vt 0.830280363560 0.627509713173 0.000000000000 +vt 0.818201720715 0.602329492569 0.000000000000 +vt 0.807740032673 0.580971300602 0.000000000000 +vt 0.786967098713 0.531335592270 0.000000000000 +vt 0.778827011585 0.511309623718 0.000000000000 +vt 0.695696294308 0.499585956335 0.000000000000 +vt 0.728171169758 0.480036228895 0.000000000000 +vt 0.796798646450 0.556795895100 0.000000000000 +vt 0.771090447903 0.491387873888 0.000000000000 +vt 0.755518972874 0.467876076698 0.000000000000 +vt 0.857891857624 0.600561559200 0.000000000000 +vt 0.832526981831 0.625968098640 0.000000000000 +vt 0.721892893314 0.690372586250 0.000000000000 +vt 0.713340461254 0.671590626240 0.000000000000 +vt 0.646686851978 0.550678908825 0.000000000000 +vt 0.656452476978 0.562453389168 0.000000000000 +vt 0.842236578465 0.638690054417 0.000000000000 +vt 0.764252245426 0.471054345369 0.000000000000 +vt 0.725051343441 0.691869199276 0.000000000000 +vt 0.646329224110 0.548061668873 0.000000000000 +vt 0.838410317898 0.642666935921 0.000000000000 +vt 0.759749114513 0.472487002611 0.000000000000 +# 6542 texture coords + +g Box001 +usemtl Material__283 +s 1 +f 18/3/1 17/4/2 1/1/3 +f 1/1/4 2/2/5 18/3/6 +f 19/6/7 18/3/8 2/2/9 +f 2/2/10 3/5/11 19/6/12 +f 20/8/13 19/6/14 3/5/15 +f 3/5/16 4/7/17 20/8/18 +f 21/11/19 20/12/20 4/9/21 +f 4/9/22 5/10/23 21/11/24 +f 22/14/25 21/11/26 5/10/27 +f 5/10/28 6/13/29 22/14/30 +f 23/16/31 22/14/32 6/13/33 +f 6/13/34 7/15/35 23/16/36 +f 24/18/37 23/16/38 7/15/39 +f 7/15/40 8/17/41 24/18/42 +f 25/20/43 24/18/44 8/17/45 +f 8/17/46 9/19/47 25/20/48 +f 26/22/49 25/20/50 9/19/51 +f 9/19/52 10/21/53 26/22/54 +f 27/24/55 26/22/56 10/21/57 +f 10/21/58 11/23/59 27/24/60 +f 28/26/61 27/24/62 11/23/63 +f 11/23/64 12/25/65 28/26/66 +f 29/28/67 28/26/68 12/25/69 +f 12/25/70 13/27/71 29/28/72 +f 30/30/73 29/28/74 13/27/75 +f 13/27/76 14/29/77 30/30/78 +f 31/32/79 30/30/80 14/29/81 +f 14/29/82 15/31/83 31/32/84 +f 32/34/85 31/32/86 15/31/87 +f 15/31/88 16/33/89 32/34/90 +f 17/4/91 32/34/92 16/33/93 +f 16/33/94 1/1/95 17/4/96 +f 65/37/97 67/38/98 68/35/99 +f 68/35/100 66/36/101 65/37/102 +f 67/38/103 69/40/104 70/39/105 +f 70/39/106 68/35/107 67/38/108 +f 69/40/109 71/42/110 72/41/111 +f 72/41/112 70/39/113 69/40/114 +f 71/45/115 73/46/116 74/43/117 +f 74/43/118 72/44/119 71/45/120 +f 73/46/121 75/48/122 76/47/123 +f 76/47/124 74/43/125 73/46/126 +f 75/48/127 77/50/128 78/49/129 +f 78/49/130 76/47/131 75/48/132 +f 77/50/133 79/52/134 80/51/135 +f 80/51/136 78/49/137 77/50/138 +f 79/52/139 81/54/140 82/53/141 +f 82/53/142 80/51/143 79/52/144 +f 81/54/145 83/56/146 84/55/147 +f 84/55/148 82/53/149 81/54/150 +f 83/56/151 85/58/152 86/57/153 +f 86/57/154 84/55/155 83/56/156 +f 85/58/157 87/60/158 88/59/159 +f 88/59/160 86/57/161 85/58/162 +f 87/60/163 89/62/164 90/61/165 +f 90/61/166 88/59/167 87/60/168 +f 89/62/169 91/64/170 92/63/171 +f 92/63/172 90/61/173 89/62/174 +f 91/64/175 93/66/176 94/65/177 +f 94/65/178 92/63/179 91/64/180 +f 93/66/181 95/68/182 96/67/183 +f 96/67/184 94/65/185 93/66/186 +f 95/68/187 65/37/188 66/36/189 +f 66/36/190 96/67/191 95/68/192 +f 50/71/193 49/72/194 33/69/195 +f 33/69/196 34/70/197 50/71/198 +f 51/74/199 50/71/200 34/70/201 +f 34/70/202 35/73/203 51/74/204 +f 52/76/205 51/74/206 35/73/207 +f 35/73/208 36/75/209 52/76/210 +f 53/79/211 52/80/212 36/77/213 +f 36/77/214 37/78/215 53/79/216 +f 54/82/217 53/79/218 37/78/219 +f 37/78/220 38/81/221 54/82/222 +f 55/84/223 54/82/224 38/81/225 +f 38/81/226 39/83/227 55/84/228 +f 56/86/229 55/84/230 39/83/231 +f 39/83/232 40/85/233 56/86/234 +f 57/88/235 56/86/236 40/85/237 +f 40/85/238 41/87/239 57/88/240 +f 58/90/241 57/88/242 41/87/243 +f 41/87/244 42/89/245 58/90/246 +f 59/92/247 58/90/248 42/89/249 +f 42/89/250 43/91/251 59/92/252 +f 60/94/253 59/92/254 43/91/255 +f 43/91/256 44/93/257 60/94/258 +f 61/96/259 60/94/260 44/93/261 +f 44/93/262 45/95/263 61/96/264 +f 62/98/265 61/96/266 45/95/267 +f 45/95/268 46/97/269 62/98/270 +f 63/100/271 62/98/272 46/97/273 +f 46/97/274 47/99/275 63/100/276 +f 64/102/277 63/100/278 47/99/279 +f 47/99/280 48/101/281 64/102/282 +f 49/72/283 64/102/284 48/101/285 +f 48/101/286 33/69/287 49/72/288 +f 66/36/289 68/35/290 34/70/291 +f 34/70/292 33/69/293 66/36/294 +f 67/38/295 65/37/296 17/4/297 +f 17/4/298 18/3/299 67/38/300 +f 68/35/301 70/39/302 35/73/303 +f 35/73/304 34/70/305 68/35/306 +f 69/40/307 67/38/308 18/3/309 +f 18/3/310 19/6/311 69/40/312 +f 70/39/313 72/41/314 36/75/315 +f 36/75/316 35/73/317 70/39/318 +f 71/42/319 69/40/320 19/6/321 +f 19/6/322 20/8/323 71/42/324 +f 72/44/325 74/43/326 37/78/327 +f 37/78/328 36/77/329 72/44/330 +f 73/46/331 71/45/332 20/12/333 +f 20/12/334 21/11/335 73/46/336 +f 74/43/337 76/47/338 38/81/339 +f 38/81/340 37/78/341 74/43/342 +f 75/48/343 73/46/344 21/11/345 +f 21/11/346 22/14/347 75/48/348 +f 76/47/349 78/49/350 39/83/351 +f 39/83/352 38/81/353 76/47/354 +f 77/50/355 75/48/356 22/14/357 +f 22/14/358 23/16/359 77/50/360 +f 78/49/361 80/51/362 40/85/363 +f 40/85/364 39/83/365 78/49/366 +f 79/52/367 77/50/368 23/16/369 +f 23/16/370 24/18/371 79/52/372 +f 80/51/373 82/53/374 41/87/375 +f 41/87/376 40/85/377 80/51/378 +f 81/54/379 79/52/380 24/18/381 +f 24/18/382 25/20/383 81/54/384 +f 82/53/385 84/55/386 42/89/387 +f 42/89/388 41/87/389 82/53/390 +f 83/56/391 81/54/392 25/20/393 +f 25/20/394 26/22/395 83/56/396 +f 84/55/397 86/57/398 43/91/399 +f 43/91/400 42/89/401 84/55/402 +f 85/58/403 83/56/404 26/22/405 +f 26/22/406 27/24/407 85/58/408 +f 86/57/409 88/59/410 44/93/411 +f 44/93/412 43/91/413 86/57/414 +f 87/60/415 85/58/416 27/24/417 +f 27/24/418 28/26/419 87/60/420 +f 88/59/421 90/61/422 45/95/423 +f 45/95/424 44/93/425 88/59/426 +f 89/62/427 87/60/428 28/26/429 +f 28/26/430 29/28/431 89/62/432 +f 90/61/433 92/63/434 46/97/435 +f 46/97/436 45/95/437 90/61/438 +f 91/64/439 89/62/440 29/28/441 +f 29/28/442 30/30/443 91/64/444 +f 92/63/445 94/65/446 47/99/447 +f 47/99/448 46/97/449 92/63/450 +f 93/66/451 91/64/452 30/30/453 +f 30/30/454 31/32/455 93/66/456 +f 94/65/457 96/67/458 48/101/459 +f 48/101/460 47/99/461 94/65/462 +f 95/68/463 93/66/464 31/32/465 +f 31/32/466 32/34/467 95/68/468 +f 96/67/469 66/36/470 33/69/471 +f 33/69/472 48/101/473 96/67/474 +f 65/37/475 95/68/476 32/34/477 +f 32/34/478 17/4/479 65/37/480 +f 188/103/481 158/104/482 108/105/483 +f 108/105/484 158/104/485 135/106/486 +f 99/107/487 190/108/488 114/109/489 +f 151/110/490 140/111/491 131/112/492 +f 142/113/493 133/114/494 149/115/495 +f 113/116/496 145/117/497 132/118/498 +f 109/119/499 121/120/500 181/121/501 +f 123/122/502 119/123/503 102/124/504 +f 177/125/505 130/126/506 141/127/507 +f 176/128/508 135/106/509 167/129/510 +f 138/130/511 143/131/512 111/132/513 +f 116/133/514 123/122/515 130/126/516 +f 104/134/517 150/135/518 183/136/519 +f 150/135/520 179/137/521 162/138/522 +f 120/139/523 189/140/524 153/141/525 +f 168/142/526 152/143/527 122/144/528 +f 152/143/529 161/145/530 122/144/531 +f 176/128/532 167/129/533 124/146/534 +f 192/147/535 185/148/536 97/149/537 +f 192/147/538 100/150/539 185/148/540 +f 134/151/541 163/152/542 101/153/543 +f 175/154/544 180/155/545 127/156/546 +f 143/131/547 181/121/548 184/157/549 +f 169/158/550 103/159/551 174/160/552 +f 165/161/553 145/117/554 113/116/555 +f 120/139/556 153/141/557 159/162/558 +f 142/113/559 114/109/560 133/114/561 +f 115/163/562 128/164/563 172/165/564 +f 115/163/565 172/165/566 117/166/567 +f 107/167/568 125/168/569 166/169/570 +f 177/125/571 116/133/572 130/126/573 +f 125/168/574 117/166/575 166/169/576 +f 166/169/577 182/170/578 157/171/579 +f 104/134/580 183/136/581 118/172/582 +f 131/112/583 155/173/584 106/174/585 +f 100/150/586 121/120/587 109/119/588 +f 162/138/589 189/140/590 120/139/591 +f 175/154/592 106/174/593 180/155/594 +f 121/120/595 136/175/596 181/121/597 +f 122/144/598 128/164/599 170/176/600 +f 103/159/601 123/122/602 116/133/603 +f 181/121/604 136/175/605 123/122/606 +f 99/107/607 186/177/608 190/108/609 +f 122/144/610 144/178/611 128/164/612 +f 115/163/613 117/166/614 125/168/615 +f 129/179/616 126/180/617 191/181/618 +f 109/119/619 181/121/620 143/131/621 +f 127/156/622 112/182/623 137/183/624 +f 159/162/625 153/141/626 112/182/627 +f 128/164/628 144/178/629 164/184/630 +f 128/164/631 164/184/632 172/165/633 +f 129/179/634 173/185/635 126/180/636 +f 188/103/637 185/148/638 158/104/639 +f 123/122/640 102/124/641 130/126/642 +f 141/127/643 130/126/644 156/186/645 +f 186/177/646 175/154/647 190/108/648 +f 175/154/649 127/156/650 137/183/651 +f 130/126/652 102/124/653 156/186/654 +f 110/187/655 133/114/656 114/109/657 +f 133/114/658 134/151/659 149/115/660 +f 97/149/661 185/148/662 188/103/663 +f 147/188/664 152/143/665 168/142/666 +f 190/108/667 175/154/668 137/183/669 +f 133/114/670 110/187/671 178/189/672 +f 135/106/673 154/190/674 167/129/675 +f 138/130/676 171/191/677 104/134/678 +f 136/175/679 119/123/680 123/122/681 +f 139/192/682 119/123/683 136/175/684 +f 137/183/685 112/182/686 134/151/687 +f 133/114/688 178/189/689 134/151/690 +f 138/130/691 104/134/692 135/106/693 +f 191/181/694 126/180/695 138/130/696 +f 112/182/697 163/152/698 134/151/699 +f 112/182/700 98/193/701 165/161/702 +f 139/192/703 136/175/704 121/120/705 +f 100/150/706 139/192/707 121/120/708 +f 131/112/709 140/111/710 155/173/711 +f 154/190/712 118/172/713 167/129/714 +f 141/127/715 156/186/716 98/193/717 +f 153/141/718 98/193/719 112/182/720 +f 166/169/721 117/166/722 182/170/723 +f 117/166/724 160/194/725 182/170/726 +f 126/180/727 143/131/728 138/130/729 +f 173/185/730 143/131/731 126/180/732 +f 144/178/733 146/195/734 164/184/735 +f 161/145/736 176/128/737 124/146/738 +f 98/193/739 145/117/740 165/161/741 +f 98/193/742 132/118/743 145/117/744 +f 161/145/745 124/146/746 144/178/747 +f 124/146/748 140/111/749 146/195/750 +f 97/149/751 152/143/752 147/188/753 +f 177/125/754 148/196/755 116/133/756 +f 103/159/757 116/133/758 174/160/759 +f 134/151/760 101/153/761 149/115/762 +f 169/158/763 179/137/764 150/135/765 +f 138/130/766 111/132/767 171/191/768 +f 140/111/769 151/110/770 146/195/771 +f 146/195/772 151/110/773 164/184/774 +f 152/143/775 97/149/776 188/103/777 +f 188/103/778 108/105/779 152/143/780 +f 105/197/781 141/127/782 153/141/783 +f 141/127/784 98/193/785 153/141/786 +f 135/106/787 104/134/788 154/190/789 +f 154/190/790 104/134/791 118/172/792 +f 122/144/793 161/145/794 144/178/795 +f 155/173/796 118/172/797 106/174/798 +f 167/129/799 118/172/800 155/173/801 +f 98/193/802 156/186/803 132/118/804 +f 142/113/805 149/115/806 157/171/807 +f 129/179/808 191/181/809 158/104/810 +f 158/104/811 185/148/812 129/179/813 +f 120/139/814 159/162/815 127/156/816 +f 127/156/817 159/162/818 112/182/819 +f 160/194/820 114/109/821 142/113/822 +f 99/107/823 114/109/824 160/194/825 +f 108/105/826 161/145/827 152/143/828 +f 176/128/829 108/105/830 135/106/831 +f 118/172/832 162/138/833 106/174/834 +f 106/174/835 162/138/836 120/139/837 +f 165/161/838 113/116/839 163/152/840 +f 164/184/841 186/177/842 99/107/843 +f 164/184/844 99/107/845 172/165/846 +f 112/182/847 165/161/848 163/152/849 +f 167/129/850 155/173/851 140/111/852 +f 124/146/853 167/129/854 140/111/855 +f 100/150/856 109/119/857 185/148/858 +f 109/119/859 143/131/860 173/185/861 +f 189/140/862 105/197/863 153/141/864 +f 170/176/865 125/168/866 107/167/867 +f 172/165/868 99/107/869 160/194/870 +f 172/165/871 160/194/872 117/166/873 +f 171/191/874 111/132/875 169/158/876 +f 184/157/877 103/159/878 169/158/879 +f 187/198/880 168/142/881 122/144/882 +f 147/188/883 168/142/884 187/198/885 +f 171/191/886 150/135/887 104/134/888 +f 171/191/889 169/158/890 150/135/891 +f 109/119/892 173/185/893 185/148/894 +f 185/148/895 173/185/896 129/179/897 +f 169/158/898 174/160/899 179/137/900 +f 148/196/901 174/160/902 116/133/903 +f 131/112/904 175/154/905 186/177/906 +f 131/112/907 106/174/908 175/154/909 +f 161/145/910 108/105/911 176/128/912 +f 105/197/913 177/125/914 141/127/915 +f 177/125/916 105/197/917 189/140/918 +f 178/189/919 137/183/920 134/151/921 +f 110/187/922 137/183/923 178/189/924 +f 179/137/925 174/160/926 148/196/927 +f 179/137/928 148/196/929 162/138/930 +f 180/155/931 120/139/932 127/156/933 +f 106/174/934 120/139/935 180/155/936 +f 103/159/937 181/121/938 123/122/939 +f 184/157/940 181/121/941 103/159/942 +f 182/170/943 142/113/944 157/171/945 +f 160/194/946 142/113/947 182/170/948 +f 183/136/949 150/135/950 162/138/951 +f 118/172/952 183/136/953 162/138/954 +f 111/132/955 184/157/956 169/158/957 +f 143/131/958 184/157/959 111/132/960 +f 164/184/961 151/110/962 186/177/963 +f 151/110/964 131/112/965 186/177/966 +f 149/115/967 101/153/968 163/152/969 +f 163/152/970 113/116/971 149/115/972 +f 187/198/973 122/144/974 170/176/975 +f 189/140/976 162/138/977 148/196/978 +f 189/140/979 148/196/980 177/125/981 +f 190/108/982 137/183/983 110/187/984 +f 190/108/985 110/187/986 114/109/987 +f 191/181/988 138/130/989 135/106/990 +f 158/104/991 191/181/992 135/106/993 +f 125/168/994 170/176/995 128/164/996 +f 128/164/997 115/163/998 125/168/999 +f 124/146/1000 146/195/1001 144/178/1002 +s 2 +f 207/213/1003 205/214/1004 193/199/1005 +f 193/199/1006 195/201/1007 207/213/1008 +f 206/215/1009 208/216/1010 196/207/1011 +f 196/207/1012 194/206/1013 206/215/1014 +f 205/214/1015 215/217/1016 203/200/1017 +f 203/200/1018 193/199/1019 205/214/1020 +f 209/218/1021 207/213/1022 195/201/1023 +f 195/201/1024 197/202/1025 209/218/1026 +f 208/216/1027 210/219/1028 198/208/1029 +f 198/208/1030 196/207/1031 208/216/1032 +f 213/221/1033 201/222/1034 253/211/1035 +f 253/211/1036 255/220/1037 213/221/1038 +f 266/223/1039 267/209/1040 198/208/1041 +f 198/208/1042 210/219/1043 266/223/1044 +f 212/257/1045 216/258/1046 204/212/1047 +f 204/212/1048 200/224/1049 212/257/1050 +f 209/218/1051 197/202/1052 268/203/1053 +f 268/203/1054 269/259/1055 209/218/1056 +f 212/257/1057 200/224/1058 254/205/1059 +f 254/205/1060 256/260/1061 212/257/1062 +f 215/217/1063 206/215/1064 194/206/1065 +f 194/206/1066 203/200/1067 215/217/1068 +f 216/258/1069 211/261/1070 199/210/1071 +f 199/210/1072 204/212/1073 216/258/1074 +f 219/227/1075 217/228/1076 205/225/1077 +f 205/225/1078 207/226/1079 219/227/1080 +f 218/231/1081 220/232/1082 208/229/1083 +f 208/229/1084 206/230/1085 218/231/1086 +f 217/228/1087 226/234/1088 215/233/1089 +f 215/233/1090 205/225/1091 217/228/1092 +f 221/236/1093 219/227/1094 207/226/1095 +f 207/226/1096 209/235/1097 221/236/1098 +f 220/232/1099 222/266/1100 210/265/1101 +f 210/265/1102 208/229/1103 220/232/1104 +f 225/239/1105 213/240/1106 255/237/1107 +f 255/237/1108 257/238/1109 225/239/1110 +f 222/266/1111 265/268/1112 266/267/1113 +f 266/267/1114 210/265/1115 222/266/1116 +f 224/243/1117 227/244/1118 216/241/1119 +f 216/241/1120 212/242/1121 224/243/1122 +f 270/270/1123 221/236/1124 209/235/1125 +f 209/235/1126 269/269/1127 270/270/1128 +f 224/243/1129 212/242/1130 256/246/1131 +f 256/246/1132 258/247/1133 224/243/1134 +f 226/332/1135 218/231/1136 206/230/1137 +f 206/230/1138 215/331/1139 226/332/1140 +f 227/244/1141 223/249/1142 211/248/1143 +f 211/248/1144 216/241/1145 227/244/1146 +f 228/250/1147 229/251/1148 227/244/1149 +f 227/244/1150 224/243/1151 228/250/1152 +f 229/251/1153 232/252/1154 223/249/1155 +f 223/249/1156 227/244/1157 229/251/1158 +f 258/247/1159 259/253/1160 228/250/1161 +f 228/250/1162 224/243/1163 258/247/1164 +f 260/254/1165 264/255/1166 225/239/1167 +f 225/239/1168 257/238/1169 260/254/1170 +f 244/274/1171 217/228/1172 219/227/1173 +f 219/227/1174 246/272/1175 244/274/1176 +f 247/276/1177 220/232/1178 218/231/1179 +f 218/231/1180 245/275/1181 247/276/1182 +f 250/277/1183 226/234/1184 217/228/1185 +f 217/228/1186 244/274/1187 250/277/1188 +f 246/272/1189 219/227/1190 221/236/1191 +f 221/236/1192 248/278/1193 246/272/1194 +f 249/279/1195 222/266/1196 220/232/1197 +f 220/232/1198 247/276/1199 249/279/1200 +f 245/275/1201 218/231/1202 226/332/1203 +f 226/332/1204 250/333/1205 245/275/1206 +f 231/282/1207 265/268/1208 222/266/1209 +f 222/266/1210 249/279/1211 231/282/1212 +f 252/286/1213 238/287/1214 279/284/1215 +f 279/284/1216 273/285/1217 252/286/1218 +f 273/285/1219 271/290/1220 242/288/1221 +f 242/288/1222 252/286/1223 273/285/1224 +f 291/294/1225 241/295/1226 289/245/1227 +f 289/245/1228 290/283/1229 291/294/1230 +f 241/295/1231 281/297/1232 288/296/1233 +f 288/296/1234 289/245/1235 241/295/1236 +f 283/299/1237 241/295/1238 291/294/1239 +f 291/294/1240 282/298/1241 283/299/1242 +f 281/297/1243 241/295/1244 283/299/1245 +f 283/299/1246 284/300/1247 281/297/1248 +f 263/262/1249 264/255/1250 260/254/1251 +f 260/254/1252 261/256/1253 263/262/1254 +f 261/256/1255 229/251/1256 228/250/1257 +f 228/250/1258 259/253/1259 261/256/1260 +f 275/306/1261 244/274/1262 246/272/1263 +f 246/272/1264 277/291/1265 275/306/1266 +f 247/276/1267 245/275/1268 276/307/1269 +f 276/307/1270 278/308/1271 247/276/1272 +f 280/309/1273 250/277/1274 244/274/1275 +f 244/274/1276 275/306/1277 280/309/1278 +f 246/272/1279 248/278/1280 279/284/1281 +f 279/284/1282 277/291/1283 246/272/1284 +f 274/310/1285 249/279/1286 247/276/1287 +f 247/276/1288 278/308/1289 274/310/1290 +f 245/275/1291 250/333/1292 280/334/1293 +f 280/334/1294 276/307/1295 245/275/1296 +f 233/311/1297 248/278/1298 221/236/1299 +f 221/236/1300 270/270/1301 233/311/1302 +f 272/312/1303 231/282/1304 249/279/1305 +f 249/279/1306 274/310/1307 272/312/1308 +f 272/312/1309 251/313/1310 242/288/1311 +f 242/288/1312 271/290/1313 272/312/1314 +f 255/220/1315 253/211/1316 199/210/1317 +f 199/210/1318 211/261/1319 255/220/1320 +f 256/260/1321 254/205/1322 202/204/1323 +f 202/204/1324 214/271/1325 256/260/1326 +f 257/238/1327 255/237/1328 211/248/1329 +f 211/248/1330 223/249/1331 257/238/1332 +f 258/247/1333 256/246/1334 214/263/1335 +f 214/263/1336 230/264/1337 258/247/1338 +f 259/253/1339 258/247/1340 230/264/1341 +f 230/264/1342 262/273/1343 259/253/1344 +f 232/252/1345 260/254/1346 257/238/1347 +f 257/238/1348 223/249/1349 232/252/1350 +f 261/256/1351 260/254/1352 232/252/1353 +f 232/252/1354 229/251/1355 261/256/1356 +f 263/262/1357 261/256/1358 259/253/1359 +f 259/253/1360 262/273/1361 263/262/1362 +f 231/281/1363 262/273/1364 230/264/1365 +f 230/264/1366 265/280/1367 231/281/1368 +f 243/289/1369 263/262/1370 262/273/1371 +f 262/273/1372 231/281/1373 243/289/1374 +f 264/255/1375 263/262/1376 243/289/1377 +f 243/289/1378 233/292/1379 264/255/1380 +f 270/293/1381 225/239/1382 264/255/1383 +f 264/255/1384 233/292/1385 270/293/1386 +f 266/304/1387 265/280/1388 230/264/1389 +f 230/264/1390 214/263/1391 266/304/1392 +f 267/209/1393 266/223/1394 214/271/1395 +f 214/271/1396 202/204/1397 267/209/1398 +f 269/259/1399 268/203/1400 201/222/1401 +f 201/222/1402 213/221/1403 269/259/1404 +f 225/239/1405 270/293/1406 269/305/1407 +f 269/305/1408 213/240/1409 225/239/1410 +f 243/314/1411 271/290/1412 273/285/1413 +f 273/285/1414 233/311/1415 243/314/1416 +f 231/282/1417 272/312/1418 271/290/1419 +f 271/290/1420 243/314/1421 231/282/1422 +f 234/316/1423 275/306/1424 277/291/1425 +f 277/291/1426 236/315/1427 234/316/1428 +f 278/308/1429 276/307/1430 235/317/1431 +f 235/317/1432 237/318/1433 278/308/1434 +f 240/319/1435 280/309/1436 275/306/1437 +f 275/306/1438 234/316/1439 240/319/1440 +f 277/291/1441 279/284/1442 238/287/1443 +f 238/287/1444 236/315/1445 277/291/1446 +f 239/320/1447 274/310/1448 278/308/1449 +f 278/308/1450 237/318/1451 239/320/1452 +f 276/307/1453 280/334/1454 240/335/1455 +f 240/335/1456 235/317/1457 276/307/1458 +f 251/313/1459 272/312/1460 274/310/1461 +f 274/310/1462 239/320/1463 251/313/1464 +f 273/285/1465 279/284/1466 248/278/1467 +f 248/278/1468 233/311/1469 273/285/1470 +f 281/297/1471 284/300/1472 285/301/1473 +f 285/301/1474 286/302/1475 281/297/1476 +f 287/303/1477 288/296/1478 281/297/1479 +f 281/297/1480 286/302/1481 287/303/1482 +f 283/321/1483 282/322/1484 234/316/1485 +f 234/316/1486 236/315/1487 283/321/1488 +f 284/323/1489 283/321/1490 236/315/1491 +f 236/315/1492 238/287/1493 284/323/1494 +f 285/324/1495 284/323/1496 238/287/1497 +f 238/287/1498 252/286/1499 285/324/1500 +f 286/325/1501 285/324/1502 252/286/1503 +f 252/286/1504 242/288/1505 286/325/1506 +f 287/326/1507 286/325/1508 242/288/1509 +f 242/288/1510 251/313/1511 287/326/1512 +f 288/327/1513 287/326/1514 251/313/1515 +f 251/313/1516 239/320/1517 288/327/1518 +f 289/328/1519 288/327/1520 239/320/1521 +f 239/320/1522 237/318/1523 289/328/1524 +f 290/329/1525 289/328/1526 237/318/1527 +f 237/318/1528 235/317/1529 290/329/1530 +f 291/330/1531 290/329/1532 235/317/1533 +f 235/317/1534 240/335/1535 291/330/1536 +f 282/322/1537 291/336/1538 240/319/1539 +f 240/319/1540 234/316/1541 282/322/1542 +s 1 +f 294/337/1543 292/339/1544 304/351/1545 +f 304/351/1546 306/352/1547 294/337/1548 +f 293/345/1549 295/344/1550 307/353/1551 +f 307/353/1552 305/354/1553 293/345/1554 +f 292/339/1555 302/338/1556 314/355/1557 +f 314/355/1558 304/351/1559 292/339/1560 +f 296/340/1561 294/337/1562 306/352/1563 +f 306/352/1564 308/356/1565 296/340/1566 +f 295/344/1567 297/346/1568 309/357/1569 +f 309/357/1570 307/353/1571 295/344/1572 +f 354/360/1573 352/349/1574 300/358/1575 +f 300/358/1576 312/359/1577 354/360/1578 +f 309/357/1579 297/346/1580 366/347/1581 +f 366/347/1582 365/361/1583 309/357/1584 +f 299/396/1585 303/348/1586 315/362/1587 +f 315/362/1588 311/395/1589 299/396/1590 +f 368/397/1591 367/341/1592 296/340/1593 +f 296/340/1594 308/356/1595 368/397/1596 +f 355/398/1597 353/342/1598 299/396/1599 +f 299/396/1600 311/395/1601 355/398/1602 +f 302/338/1603 293/345/1604 305/354/1605 +f 305/354/1606 314/355/1607 302/338/1608 +f 303/348/1609 298/350/1610 310/399/1611 +f 310/399/1612 315/362/1613 303/348/1614 +f 306/365/1615 304/366/1616 316/363/1617 +f 316/363/1618 318/364/1619 306/365/1620 +f 305/369/1621 307/370/1622 319/367/1623 +f 319/367/1624 317/368/1625 305/369/1626 +f 304/366/1627 314/372/1628 325/371/1629 +f 325/371/1630 316/363/1631 304/366/1632 +f 308/374/1633 306/365/1634 318/364/1635 +f 318/364/1636 320/373/1637 308/374/1638 +f 307/370/1639 309/404/1640 321/403/1641 +f 321/403/1642 319/367/1643 307/370/1644 +f 356/377/1645 354/378/1646 312/375/1647 +f 312/375/1648 324/376/1649 356/377/1650 +f 309/404/1651 365/406/1652 364/405/1653 +f 364/405/1654 321/403/1655 309/404/1656 +f 311/381/1657 315/382/1658 326/379/1659 +f 326/379/1660 323/380/1661 311/381/1662 +f 368/408/1663 308/374/1664 320/373/1665 +f 320/373/1666 369/407/1667 368/408/1668 +f 357/384/1669 355/385/1670 311/381/1671 +f 311/381/1672 323/380/1673 357/384/1674 +f 314/470/1675 305/369/1676 317/368/1677 +f 317/368/1678 325/469/1679 314/470/1680 +f 315/382/1681 310/387/1682 322/386/1683 +f 322/386/1684 326/379/1685 315/382/1686 +f 323/380/1687 326/379/1688 328/388/1689 +f 328/388/1690 327/389/1691 323/380/1692 +f 326/379/1693 322/386/1694 331/390/1695 +f 331/390/1696 328/388/1697 326/379/1698 +f 323/380/1699 327/389/1700 358/391/1701 +f 358/391/1702 357/384/1703 323/380/1704 +f 356/377/1705 324/376/1706 363/392/1707 +f 363/392/1708 359/393/1709 356/377/1710 +f 345/412/1711 318/364/1712 316/363/1713 +f 316/363/1714 343/410/1715 345/412/1716 +f 344/414/1717 317/368/1718 319/367/1719 +f 319/367/1720 346/413/1721 344/414/1722 +f 343/410/1723 316/363/1724 325/371/1725 +f 325/371/1726 349/415/1727 343/410/1728 +f 347/416/1729 320/373/1730 318/364/1731 +f 318/364/1732 345/412/1733 347/416/1734 +f 346/413/1735 319/367/1736 321/403/1737 +f 321/403/1738 348/417/1739 346/413/1740 +f 349/471/1741 325/469/1742 317/368/1743 +f 317/368/1744 344/414/1745 349/471/1746 +f 348/417/1747 321/403/1748 364/405/1749 +f 364/405/1750 330/420/1751 348/417/1752 +f 372/424/1753 378/425/1754 337/422/1755 +f 337/422/1756 351/423/1757 372/424/1758 +f 351/423/1759 341/428/1760 370/426/1761 +f 370/426/1762 372/424/1763 351/423/1764 +f 389/432/1765 388/433/1766 340/383/1767 +f 340/383/1768 390/421/1769 389/432/1770 +f 388/433/1771 387/435/1772 380/434/1773 +f 380/434/1774 340/383/1775 388/433/1776 +f 381/437/1777 390/421/1778 340/383/1779 +f 340/383/1780 382/436/1781 381/437/1782 +f 383/438/1783 382/436/1784 340/383/1785 +f 340/383/1786 380/434/1787 383/438/1788 +f 360/400/1789 359/393/1790 363/392/1791 +f 363/392/1792 362/394/1793 360/400/1794 +f 358/391/1795 327/389/1796 328/388/1797 +f 328/388/1798 360/400/1799 358/391/1800 +f 376/444/1801 345/412/1802 343/410/1803 +f 343/410/1804 374/429/1805 376/444/1806 +f 377/445/1807 375/446/1808 344/414/1809 +f 344/414/1810 346/413/1811 377/445/1812 +f 374/429/1813 343/410/1814 349/415/1815 +f 349/415/1816 379/447/1817 374/429/1818 +f 376/444/1819 378/425/1820 347/416/1821 +f 347/416/1822 345/412/1823 376/444/1824 +f 377/445/1825 346/413/1826 348/417/1827 +f 348/417/1828 373/448/1829 377/445/1830 +f 375/446/1831 379/472/1832 349/471/1833 +f 349/471/1834 344/414/1835 375/446/1836 +f 369/407/1837 320/373/1838 347/416/1839 +f 347/416/1840 332/449/1841 369/407/1842 +f 373/448/1843 348/417/1844 330/420/1845 +f 330/420/1846 371/450/1847 373/448/1848 +f 370/426/1849 341/428/1850 350/451/1851 +f 350/451/1852 371/450/1853 370/426/1854 +f 310/399/1855 298/350/1856 352/349/1857 +f 352/349/1858 354/360/1859 310/399/1860 +f 313/409/1861 301/343/1862 353/342/1863 +f 353/342/1864 355/398/1865 313/409/1866 +f 322/386/1867 310/387/1868 354/378/1869 +f 354/378/1870 356/377/1871 322/386/1872 +f 329/401/1873 313/402/1874 355/385/1875 +f 355/385/1876 357/384/1877 329/401/1878 +f 361/411/1879 329/401/1880 357/384/1881 +f 357/384/1882 358/391/1883 361/411/1884 +f 322/386/1885 356/377/1886 359/393/1887 +f 359/393/1888 331/390/1889 322/386/1890 +f 328/388/1891 331/390/1892 359/393/1893 +f 359/393/1894 360/400/1895 328/388/1896 +f 361/411/1897 358/391/1898 360/400/1899 +f 360/400/1900 362/394/1901 361/411/1902 +f 364/419/1903 329/401/1904 361/411/1905 +f 361/411/1906 330/418/1907 364/419/1908 +f 330/418/1909 361/411/1910 362/394/1911 +f 362/394/1912 342/427/1913 330/418/1914 +f 332/430/1915 342/427/1916 362/394/1917 +f 362/394/1918 363/392/1919 332/430/1920 +f 332/430/1921 363/392/1922 324/376/1923 +f 324/376/1924 369/431/1925 332/430/1926 +f 313/402/1927 329/401/1928 364/419/1929 +f 364/419/1930 365/442/1931 313/402/1932 +f 301/343/1933 313/409/1934 365/361/1935 +f 365/361/1936 366/347/1937 301/343/1938 +f 312/359/1939 300/358/1940 367/341/1941 +f 367/341/1942 368/397/1943 312/359/1944 +f 312/375/1945 368/443/1946 369/431/1947 +f 369/431/1948 324/376/1949 312/375/1950 +f 332/449/1951 372/424/1952 370/426/1953 +f 370/426/1954 342/452/1955 332/449/1956 +f 342/452/1957 370/426/1958 371/450/1959 +f 371/450/1960 330/420/1961 342/452/1962 +f 335/454/1963 376/444/1964 374/429/1965 +f 374/429/1966 333/453/1967 335/454/1968 +f 336/455/1969 334/456/1970 375/446/1971 +f 375/446/1972 377/445/1973 336/455/1974 +f 333/453/1975 374/429/1976 379/447/1977 +f 379/447/1978 339/457/1979 333/453/1980 +f 335/454/1981 337/422/1982 378/425/1983 +f 378/425/1984 376/444/1985 335/454/1986 +f 336/455/1987 377/445/1988 373/448/1989 +f 373/448/1990 338/458/1991 336/455/1992 +f 334/456/1993 339/473/1994 379/472/1995 +f 379/472/1996 375/446/1997 334/456/1998 +f 338/458/1999 373/448/2000 371/450/2001 +f 371/450/2002 350/451/2003 338/458/2004 +f 332/449/2005 347/416/2006 378/425/2007 +f 378/425/2008 372/424/2009 332/449/2010 +f 385/439/2011 384/440/2012 383/438/2013 +f 383/438/2014 380/434/2015 385/439/2016 +f 385/439/2017 380/434/2018 387/435/2019 +f 387/435/2020 386/441/2021 385/439/2022 +f 335/454/2023 333/453/2024 381/459/2025 +f 381/459/2026 382/460/2027 335/454/2028 +f 337/422/2029 335/454/2030 382/460/2031 +f 382/460/2032 383/461/2033 337/422/2034 +f 351/423/2035 337/422/2036 383/461/2037 +f 383/461/2038 384/462/2039 351/423/2040 +f 341/428/2041 351/423/2042 384/462/2043 +f 384/462/2044 385/463/2045 341/428/2046 +f 350/451/2047 341/428/2048 385/463/2049 +f 385/463/2050 386/464/2051 350/451/2052 +f 338/458/2053 350/451/2054 386/464/2055 +f 386/464/2056 387/465/2057 338/458/2058 +f 336/455/2059 338/458/2060 387/465/2061 +f 387/465/2062 388/466/2063 336/455/2064 +f 334/456/2065 336/455/2066 388/466/2067 +f 388/466/2068 389/467/2069 334/456/2070 +f 339/473/2071 334/456/2072 389/467/2073 +f 389/467/2074 390/468/2075 339/473/2076 +f 333/453/2077 339/457/2078 390/474/2079 +f 390/474/2080 381/459/2081 333/453/2082 +f 396/480/2083 398/481/2084 397/475/2085 +f 397/475/2086 1269/478/2087 396/480/2088 +f 396/480/2089 400/483/2090 399/482/2091 +f 399/482/2092 398/481/2093 396/480/2094 +f 401/487/2095 404/488/2096 403/485/2097 +f 403/485/2098 402/486/2099 401/487/2100 +f 405/490/2101 401/487/2102 402/486/2103 +f 402/486/2104 406/489/2105 405/490/2106 +f 401/487/2107 405/490/2108 407/491/2109 +f 407/491/2110 404/488/2111 401/487/2112 +f 408/494/2113 411/495/2114 410/492/2115 +f 410/492/2116 409/493/2117 408/494/2118 +f 408/494/2119 413/497/2120 412/496/2121 +f 412/496/2122 411/495/2123 408/494/2124 +f 408/494/2125 415/499/2126 414/498/2127 +f 414/498/2128 413/497/2129 408/494/2130 +f 408/494/2131 417/501/2132 416/500/2133 +f 416/500/2134 415/499/2135 408/494/2136 +f 408/494/2137 409/493/2138 418/502/2139 +f 418/502/2140 417/501/2141 408/494/2142 +f 419/505/2143 422/506/2144 421/503/2145 +f 421/503/2146 420/504/2147 419/505/2148 +f 419/505/2149 420/504/2150 424/507/2151 +f 424/507/2152 423/508/2153 419/505/2154 +f 425/511/2155 428/512/2156 427/509/2157 +f 427/509/2158 426/510/2159 425/511/2160 +f 429/514/2161 425/511/2162 426/510/2163 +f 426/510/2164 430/513/2165 429/514/2166 +f 425/515/2167 429/528/2168 431/476/2169 +f 431/476/2170 428/477/2171 425/515/2172 +f 432/517/2173 435/518/2174 434/484/2175 +f 434/484/2176 433/516/2177 432/517/2178 +f 432/517/2179 433/516/2180 437/519/2181 +f 437/519/2182 436/520/2183 432/517/2184 +f 432/517/2185 438/521/2186 400/483/2187 +f 400/483/2188 435/518/2189 432/517/2190 +f 435/518/2191 440/523/2192 439/522/2193 +f 439/522/2194 434/484/2195 435/518/2196 +f 443/526/2197 442/527/2198 441/524/2199 +f 441/524/2200 444/525/2201 443/526/2202 +f 442/527/2203 443/526/2204 434/484/2205 +f 434/484/2206 439/522/2207 442/527/2208 +f 442/527/2209 439/522/2210 445/529/2211 +f 445/529/2212 441/524/2213 442/527/2214 +f 446/532/2215 449/533/2216 448/530/2217 +f 448/530/2218 447/531/2219 446/532/2220 +f 451/534/2221 450/535/2222 449/533/2223 +f 449/533/2224 446/532/2225 451/534/2226 +f 433/516/2227 434/484/2228 443/526/2229 +f 443/526/2230 437/519/2231 433/516/2232 +f 452/538/2233 455/539/2234 454/536/2235 +f 454/536/2236 453/537/2237 452/538/2238 +f 452/538/2239 458/557/2240 457/542/2241 +f 457/542/2242 456/543/2243 452/538/2244 +f 452/538/2245 453/537/2246 459/644/2247 +f 459/644/2248 458/557/2249 452/538/2250 +f 460/544/2251 462/545/2252 457/540/2253 +f 457/540/2254 461/541/2255 460/544/2256 +f 460/544/2257 406/489/2258 402/486/2259 +f 402/486/2260 403/485/2261 460/544/2262 +f 460/544/2263 461/541/2264 463/546/2265 +f 463/546/2266 406/489/2267 460/544/2268 +f 417/501/2269 418/502/2270 464/547/2271 +f 464/547/2272 416/500/2273 417/501/2274 +f 462/545/2275 465/549/2276 456/548/2277 +f 456/548/2278 457/540/2279 462/545/2280 +f 462/545/2281 460/544/2282 466/550/2283 +f 466/550/2284 465/549/2285 462/545/2286 +f 1342/688/2287 423/508/2288 467/551/2289 +f 467/551/2290 1341/687/2291 1342/688/2292 +f 468/627/2293 471/629/2294 470/552/2295 +f 470/552/2296 469/553/2297 468/627/2298 +f 468/647/2299 473/648/2300 472/645/2301 +f 472/645/2302 471/646/2303 468/647/2304 +f 471/556/2305 475/558/2306 474/554/2307 +f 474/554/2308 470/555/2309 471/556/2310 +f 471/556/2311 472/560/2312 476/559/2313 +f 476/559/2314 475/558/2315 471/556/2316 +f 476/559/2317 478/562/2318 477/561/2319 +f 477/561/2320 475/558/2321 476/559/2322 +f 476/559/2323 465/549/2324 466/550/2325 +f 466/550/2326 478/562/2327 476/559/2328 +f 476/559/2329 472/560/2330 456/548/2331 +f 456/548/2332 465/549/2333 476/559/2334 +f 478/562/2335 480/564/2336 479/563/2337 +f 479/563/2338 477/561/2339 478/562/2340 +f 478/562/2341 466/550/2342 481/565/2343 +f 481/565/2344 480/564/2345 478/562/2346 +f 481/565/2347 483/567/2348 482/566/2349 +f 482/566/2350 480/564/2351 481/565/2352 +f 481/565/2353 403/485/2354 404/488/2355 +f 404/488/2356 483/567/2357 481/565/2358 +f 481/565/2359 466/550/2360 460/544/2361 +f 460/544/2362 403/485/2363 481/565/2364 +f 483/567/2365 485/569/2366 484/568/2367 +f 484/568/2368 482/566/2369 483/567/2370 +f 483/567/2371 404/488/2372 486/570/2373 +f 486/570/2374 485/569/2375 483/567/2376 +f 486/570/2377 488/572/2378 487/571/2379 +f 487/571/2380 485/569/2381 486/570/2382 +f 486/570/2383 490/574/2384 489/573/2385 +f 489/573/2386 488/572/2387 486/570/2388 +f 486/570/2389 404/488/2390 407/491/2391 +f 407/491/2392 490/574/2393 486/570/2394 +f 490/574/2395 464/547/2396 491/575/2397 +f 491/575/2398 489/573/2399 490/574/2400 +f 490/574/2401 407/491/2402 416/500/2403 +f 416/500/2404 464/547/2405 490/574/2406 +f 489/573/2407 493/577/2408 492/576/2409 +f 492/576/2410 488/572/2411 489/573/2412 +f 489/573/2413 491/575/2414 494/578/2415 +f 494/578/2416 493/577/2417 489/573/2418 +f 493/577/2419 496/580/2420 495/579/2421 +f 495/579/2422 492/576/2423 493/577/2424 +f 493/577/2425 494/578/2426 497/581/2427 +f 497/581/2428 496/580/2429 493/577/2430 +f 497/581/2431 494/578/2432 499/582/2433 +f 499/582/2434 498/583/2435 497/581/2436 +f 498/2584/2437 499/2583/2438 501/584/2439 +f 501/584/2440 500/585/2441 498/2584/2442 +f 501/584/2443 499/2583/2444 503/586/2445 +f 503/586/2446 502/587/2447 501/584/2448 +f 501/584/2449 505/589/2450 504/588/2451 +f 504/588/2452 500/585/2453 501/584/2454 +f 501/584/2455 502/587/2456 506/590/2457 +f 506/590/2458 505/589/2459 501/584/2460 +f 504/588/2461 505/589/2462 508/591/2463 +f 508/591/2464 507/592/2465 504/588/2466 +f 507/592/2467 508/591/2468 510/593/2469 +f 510/593/2470 509/594/2471 507/592/2472 +f 510/593/2473 508/591/2474 512/595/2475 +f 512/595/2476 511/596/2477 510/593/2478 +f 510/593/2479 514/598/2480 513/597/2481 +f 513/597/2482 509/594/2483 510/593/2484 +f 510/593/2485 511/596/2486 515/599/2487 +f 515/599/2488 514/598/2489 510/593/2490 +f 515/599/2491 511/596/2492 517/600/2493 +f 517/600/2494 516/601/2495 515/599/2496 +f 515/599/2497 519/603/2498 518/602/2499 +f 518/602/2500 514/598/2501 515/599/2502 +f 515/599/2503 516/601/2504 520/604/2505 +f 520/604/2506 519/603/2507 515/599/2508 +f 520/604/2509 516/601/2510 522/605/2511 +f 522/605/2512 521/606/2513 520/604/2514 +f 520/604/2515 484/568/2516 523/607/2517 +f 523/607/2518 519/603/2519 520/604/2520 +f 520/604/2521 521/606/2522 482/566/2523 +f 482/566/2524 484/568/2525 520/604/2526 +f 523/607/2527 524/608/2528 518/602/2529 +f 518/602/2530 519/603/2531 523/607/2532 +f 523/607/2533 487/571/2534 525/609/2535 +f 525/609/2536 524/608/2537 523/607/2538 +f 523/607/2539 484/568/2540 485/569/2541 +f 485/569/2542 487/571/2543 523/607/2544 +f 525/609/2545 527/611/2546 526/610/2547 +f 526/610/2548 524/608/2549 525/609/2550 +f 525/609/2551 492/576/2552 495/579/2553 +f 495/579/2554 527/611/2555 525/609/2556 +f 525/609/2557 487/571/2558 488/572/2559 +f 488/572/2560 492/576/2561 525/609/2562 +f 528/612/2563 513/597/2564 514/598/2565 +f 514/598/2566 518/602/2567 528/612/2568 +f 528/612/2569 518/602/2570 524/608/2571 +f 524/608/2572 526/610/2573 528/612/2574 +f 522/605/2575 531/615/2576 530/613/2577 +f 530/613/2578 529/614/2579 522/605/2580 +f 522/605/2581 516/601/2582 517/600/2583 +f 517/600/2584 531/615/2585 522/605/2586 +f 522/605/2587 529/614/2588 479/563/2589 +f 479/563/2590 521/606/2591 522/605/2592 +f 531/615/2593 533/617/2594 532/616/2595 +f 532/616/2596 530/613/2597 531/615/2598 +f 531/615/2599 517/600/2600 534/618/2601 +f 534/618/2602 533/617/2603 531/615/2604 +f 534/618/2605 536/620/2606 535/619/2607 +f 535/619/2608 533/617/2609 534/618/2610 +f 534/618/2611 512/595/2612 537/621/2613 +f 537/621/2614 536/620/2615 534/618/2616 +f 534/618/2617 517/600/2618 511/596/2619 +f 511/596/2620 512/595/2621 534/618/2622 +f 535/619/2623 538/622/2624 426/510/2625 +f 426/510/2626 427/509/2627 535/619/2628 +f 535/619/2629 536/620/2630 506/590/2631 +f 506/590/2632 538/622/2633 535/619/2634 +f 535/619/2635 427/509/2636 532/616/2637 +f 532/616/2638 533/617/2639 535/619/2640 +f 538/622/2641 539/623/2642 430/513/2643 +f 430/513/2644 426/510/2645 538/622/2646 +f 538/622/2647 506/590/2648 502/587/2649 +f 502/587/2650 539/623/2651 538/622/2652 +f 539/623/2653 410/2580/2654 411/2581/2655 +f 411/2581/2656 430/513/2657 539/623/2658 +f 539/623/2659 502/587/2660 503/586/2661 +f 503/586/2662 410/2580/2663 539/623/2664 +f 532/616/2665 427/509/2666 428/512/2667 +f 428/512/2668 540/624/2669 532/616/2670 +f 532/616/2671 540/624/2672 541/625/2673 +f 541/625/2674 530/613/2675 532/616/2676 +f 541/632/2677 540/633/2678 543/630/2679 +f 543/630/2680 542/631/2681 541/632/2682 +f 541/625/2683 544/626/2684 529/614/2685 +f 529/614/2686 530/613/2687 541/625/2688 +f 541/625/2689 542/628/2690 474/554/2691 +f 474/554/2692 544/626/2693 541/625/2694 +f 544/626/2695 477/561/2696 479/563/2697 +f 479/563/2698 529/614/2699 544/626/2700 +f 544/626/2701 474/554/2702 475/558/2703 +f 475/558/2704 477/561/2705 544/626/2706 +f 543/630/2707 547/636/2708 546/634/2709 +f 546/634/2710 545/635/2711 543/630/2712 +f 543/630/2713 540/633/2714 428/477/2715 +f 428/477/2716 547/636/2717 543/630/2718 +f 543/630/2719 545/635/2720 548/637/2721 +f 548/637/2722 542/631/2723 543/630/2724 +f 547/636/2725 550/639/2726 549/638/2727 +f 549/638/2728 546/634/2729 547/636/2730 +f 547/636/2731 428/477/2732 431/476/2733 +f 431/476/2734 550/639/2735 547/636/2736 +f 550/639/2737 552/641/2738 551/640/2739 +f 551/640/2740 549/638/2741 550/639/2742 +f 550/639/2743 431/476/2744 553/642/2745 +f 553/642/2746 552/641/2747 550/639/2748 +f 553/642/2749 555/668/2750 554/643/2751 +f 554/643/2752 552/641/2753 553/642/2754 +f 553/642/2755 557/670/2756 556/669/2757 +f 556/669/2758 555/668/2759 553/642/2760 +f 553/642/2761 431/476/2762 429/528/2763 +f 429/528/2764 557/670/2765 553/642/2766 +f 557/670/2767 559/672/2768 558/671/2769 +f 558/671/2770 556/669/2771 557/670/2772 +f 557/670/2773 429/528/2774 412/673/2775 +f 412/673/2776 559/672/2777 557/670/2778 +f 559/652/2779 561/653/2780 560/649/2781 +f 560/649/2782 558/651/2783 559/652/2784 +f 559/652/2785 412/655/2786 413/654/2787 +f 413/654/2788 561/653/2789 559/652/2790 +f 561/653/2791 563/657/2792 562/656/2793 +f 562/656/2794 560/649/2795 561/653/2796 +f 561/653/2797 413/654/2798 414/658/2799 +f 414/658/2800 563/657/2801 561/653/2802 +f 563/657/2803 565/660/2804 564/659/2805 +f 564/659/2806 562/656/2807 563/657/2808 +f 563/657/2809 414/658/2810 566/661/2811 +f 566/661/2812 565/660/2813 563/657/2814 +f 566/661/2815 463/663/2816 567/662/2817 +f 567/662/2818 565/660/2819 566/661/2820 +f 566/650/2821 405/490/2822 406/489/2823 +f 406/489/2824 463/546/2825 566/650/2826 +f 566/650/2827 414/498/2828 415/499/2829 +f 415/499/2830 405/490/2831 566/650/2832 +f 567/662/2833 568/664/2834 564/659/2835 +f 564/659/2836 565/660/2837 567/662/2838 +f 567/662/2839 570/666/2840 569/665/2841 +f 569/665/2842 568/664/2843 567/662/2844 +f 567/662/2845 463/663/2846 461/667/2847 +f 461/667/2848 570/666/2849 567/662/2850 +f 570/666/2851 458/557/2852 459/644/2853 +f 459/644/2854 569/665/2855 570/666/2856 +f 570/666/2857 461/667/2858 457/542/2859 +f 457/542/2860 458/557/2861 570/666/2862 +f 569/665/2863 572/697/2864 571/696/2865 +f 571/696/2866 568/664/2867 569/665/2868 +f 569/665/2869 459/644/2870 573/781/2871 +f 573/781/2872 572/697/2873 569/665/2874 +f 573/781/2875 575/1353/2876 574/782/2877 +f 574/782/2878 572/697/2879 573/781/2880 +f 573/781/2881 577/1355/2882 576/1354/2883 +f 576/1354/2884 575/1353/2885 573/781/2886 +f 573/781/2887 459/644/2888 453/537/2889 +f 453/537/2890 577/1355/2891 573/781/2892 +f 577/1355/2893 579/1357/2894 578/1356/2895 +f 578/1356/2896 576/1354/2897 577/1355/2898 +f 577/1355/2899 453/537/2900 454/536/2901 +f 454/536/2902 579/1357/2903 577/1355/2904 +f 576/1354/2905 581/1390/2906 580/1389/2907 +f 580/1389/2908 575/1353/2909 576/1354/2910 +f 576/1354/2911 578/1356/2912 582/1391/2913 +f 582/1391/2914 581/1390/2915 576/1354/2916 +f 581/1390/2917 1483/1393/2918 1482/1392/2919 +f 1482/1392/2920 580/1389/2921 581/1390/2922 +f 581/1390/2923 582/1391/2924 1484/1394/2925 +f 1484/1394/2926 1483/1393/2927 581/1390/2928 +f 1482/1392/2929 391/1396/2930 583/1395/2931 +f 583/1395/2932 580/1389/2933 1482/1392/2934 +f 391/1396/2935 397/475/2936 398/481/2937 +f 398/481/2938 583/1395/2939 391/1396/2940 +f 583/1395/2941 574/782/2942 575/1353/2943 +f 575/1353/2944 580/1389/2945 583/1395/2946 +f 583/1395/2947 398/481/2948 399/482/2949 +f 399/482/2950 574/782/2951 583/1395/2952 +f 574/782/2953 399/482/2954 571/696/2955 +f 571/696/2956 572/697/2957 574/782/2958 +f 571/696/2959 399/482/2960 400/483/2961 +f 400/483/2962 438/521/2963 571/696/2964 +f 571/696/2965 438/521/2966 564/659/2967 +f 564/659/2968 568/664/2969 571/696/2970 +f 564/659/2971 438/521/2972 432/517/2973 +f 432/517/2974 562/656/2975 564/659/2976 +f 562/656/2977 432/517/2978 436/520/2979 +f 436/520/2980 560/649/2981 562/656/2982 +f 560/649/2983 436/520/2984 584/1397/2985 +f 584/1397/2986 558/651/2987 560/649/2988 +f 584/676/2989 587/677/2990 586/674/2991 +f 586/674/2992 585/675/2993 584/676/2994 +f 584/1397/2995 436/520/2996 437/519/2997 +f 437/519/2998 587/1398/2999 584/1397/3000 +f 584/676/3001 585/675/3002 556/669/3003 +f 556/669/3004 558/671/3005 584/676/3006 +f 586/674/3007 590/680/3008 589/678/3009 +f 589/678/3010 588/679/3011 586/674/3012 +f 586/674/3013 587/677/3014 444/681/3015 +f 444/681/3016 590/680/3017 586/674/3018 +f 586/674/3019 588/679/3020 591/682/3021 +f 591/682/3022 585/675/3023 586/674/3024 +f 591/682/3025 588/679/3026 593/683/3027 +f 593/683/3028 592/684/3029 591/682/3030 +f 591/682/3031 555/668/3032 556/669/3033 +f 556/669/3034 585/675/3035 591/682/3036 +f 591/682/3037 592/684/3038 554/643/3039 +f 554/643/3040 555/668/3041 591/682/3042 +f 593/683/3043 596/1388/3044 595/685/3045 +f 595/685/3046 594/785/3047 593/683/3048 +f 593/683/3049 588/679/3050 589/678/3051 +f 589/678/3052 596/1388/3053 593/683/3054 +f 593/683/3055 594/785/3056 597/1399/3057 +f 597/1399/3058 592/684/3059 593/683/3060 +f 597/1399/3061 594/785/3062 1500/1427/3063 +f 1500/1427/3064 1501/1428/3065 597/1399/3066 +f 597/1399/3067 598/1429/3068 554/643/3069 +f 554/643/3070 592/684/3071 597/1399/3072 +f 597/1399/3073 1501/1428/3074 392/1430/3075 +f 392/1430/3076 598/1429/3077 597/1399/3078 +f 392/1430/3079 1503/1525/3080 551/640/3081 +f 551/640/3082 598/1429/3083 392/1430/3084 +f 1503/1525/3085 599/1526/3086 549/638/3087 +f 549/638/3088 551/640/3089 1503/1525/3090 +f 599/1526/3091 1504/1528/3092 546/634/3093 +f 546/634/3094 549/638/3095 599/1526/3096 +f 1504/1528/3097 600/1529/3098 545/635/3099 +f 545/635/3100 546/634/3101 1504/1528/3102 +f 600/1529/3103 601/1530/3104 548/637/3105 +f 548/637/3106 545/635/3107 600/1529/3108 +f 598/1429/3109 551/640/3110 552/641/3111 +f 552/641/3112 554/643/3113 598/1429/3114 +f 1500/1427/3115 594/785/3116 595/685/3117 +f 595/685/3118 393/1531/3119 1500/1427/3120 +f 393/1531/3121 595/685/3122 419/1532/3123 +f 419/1532/3124 602/1533/3125 393/1531/3126 +f 596/1388/3127 422/1534/3128 419/1532/3129 +f 419/1532/3130 595/685/3131 596/1388/3132 +f 596/1388/3133 589/678/3134 603/1535/3135 +f 603/1535/3136 422/1534/3137 596/1388/3138 +f 603/689/3139 604/690/3140 421/503/3141 +f 421/503/3142 422/506/3143 603/689/3144 +f 603/689/3145 606/692/3146 605/691/3147 +f 605/691/3148 604/690/3149 603/689/3150 +f 603/1535/3151 589/678/3152 590/680/3153 +f 590/680/3154 606/1536/3155 603/1535/3156 +f 607/693/3157 449/533/3158 605/691/3159 +f 605/691/3160 606/692/3161 607/693/3162 +f 606/1536/3163 590/680/3164 444/681/3165 +f 444/681/3166 607/1537/3167 606/1536/3168 +f 607/1401/3169 444/525/3170 441/524/3171 +f 441/524/3172 608/1400/3173 607/1401/3174 +f 608/1400/3175 441/524/3176 445/529/3177 +f 445/529/3178 609/1402/3179 608/1400/3180 +f 609/1402/3181 445/529/3182 612/1409/3183 +f 612/1409/3184 611/1410/3185 609/1402/3186 +f 612/1409/3187 445/529/3188 439/522/3189 +f 439/522/3190 440/523/3191 612/1409/3192 +f 612/1409/3193 613/1412/3194 1515/1411/3195 +f 1515/1411/3196 611/1410/3197 612/1409/3198 +f 612/1409/3199 440/523/3200 394/1414/3201 +f 394/1414/3202 613/1412/3203 612/1409/3204 +f 1515/698/3205 395/699/3206 610/694/3207 +f 610/694/3208 611/695/3209 1515/698/3210 +f 395/699/3211 1517/701/3212 614/700/3213 +f 614/700/3214 610/694/3215 395/699/3216 +f 1517/701/3217 1519/703/3218 615/702/3219 +f 615/702/3220 614/700/3221 1517/701/3222 +f 1519/703/3223 1521/705/3224 616/704/3225 +f 616/704/3226 615/702/3227 1519/703/3228 +f 1521/705/3229 1341/2601/3230 467/2600/3231 +f 467/2600/3232 616/704/3233 1521/705/3234 +f 616/704/3235 618/707/3236 617/706/3237 +f 617/706/3238 615/702/3239 616/704/3240 +f 616/704/3241 467/2600/3242 619/708/3243 +f 619/708/3244 618/707/3245 616/704/3246 +f 620/710/3247 618/707/3248 619/708/3249 +f 619/708/3250 621/709/3251 620/710/3252 +f 424/507/3253 622/711/3254 621/2603/3255 +f 621/2603/3256 619/2602/3257 424/507/3258 +f 619/2602/3259 467/551/3260 423/508/3261 +f 423/508/3262 424/507/3263 619/2602/3264 +f 623/714/3265 626/715/3266 625/712/3267 +f 625/712/3268 624/2605/3269 623/714/3270 +f 623/714/3271 628/717/3272 627/716/3273 +f 627/716/3274 626/715/3275 623/714/3276 +f 622/711/3277 629/718/3278 628/717/3279 +f 628/717/3280 623/714/3281 622/711/3282 +f 628/717/3283 631/720/3284 630/719/3285 +f 630/719/3286 627/716/3287 628/717/3288 +f 629/718/3289 632/721/3290 631/720/3291 +f 631/720/3292 628/717/3293 629/718/3294 +f 631/720/3295 634/723/3296 633/722/3297 +f 633/722/3298 630/719/3299 631/720/3300 +f 632/721/3301 635/724/3302 634/723/3303 +f 634/723/3304 631/720/3305 632/721/3306 +f 634/723/3307 637/726/3308 636/725/3309 +f 636/725/3310 633/722/3311 634/723/3312 +f 635/724/3313 638/727/3314 637/726/3315 +f 637/726/3316 634/723/3317 635/724/3318 +f 637/726/3319 640/729/3320 639/728/3321 +f 639/728/3322 636/725/3323 637/726/3324 +f 638/727/3325 450/535/3326 640/729/3327 +f 640/729/3328 637/726/3329 638/727/3330 +f 642/730/3331 641/731/3332 636/725/3333 +f 636/725/3334 639/728/3335 642/730/3336 +f 644/732/3337 643/733/3338 642/730/3339 +f 642/730/3340 639/728/3341 644/732/3342 +f 639/728/3343 640/729/3344 645/734/3345 +f 645/734/3346 644/732/3347 639/728/3348 +f 647/735/3349 646/736/3350 643/733/3351 +f 643/733/3352 644/732/3353 647/735/3354 +f 644/732/3355 645/734/3356 648/737/3357 +f 648/737/3358 647/735/3359 644/732/3360 +f 648/737/3361 650/739/3362 649/738/3363 +f 649/738/3364 647/735/3365 648/737/3366 +f 620/710/3367 650/739/3368 648/737/3369 +f 648/737/3370 651/740/3371 620/710/3372 +f 645/734/3373 451/534/3374 651/740/3375 +f 651/740/3376 648/737/3377 645/734/3378 +f 646/736/3379 647/735/3380 649/738/3381 +f 649/738/3382 652/741/3383 646/736/3384 +f 653/742/3385 652/741/3386 649/738/3387 +f 649/738/3388 625/2604/3389 653/742/3390 +f 649/738/3391 650/739/3392 624/713/3393 +f 624/713/3394 625/2604/3395 649/738/3396 +f 656/745/3397 655/746/3398 654/2607/3399 +f 654/2607/3400 657/744/3401 656/745/3402 +f 659/747/3403 658/748/3404 657/2608/3405 +f 657/2608/3406 654/743/3407 659/747/3408 +f 653/2606/3409 660/749/3410 659/747/3411 +f 659/747/3412 654/743/3413 653/2606/3414 +f 662/750/3415 661/751/3416 658/748/3417 +f 658/748/3418 659/747/3419 662/750/3420 +f 660/749/3421 663/752/3422 662/750/3423 +f 662/750/3424 659/747/3425 660/749/3426 +f 665/753/3427 664/754/3428 661/751/3429 +f 661/751/3430 662/750/3431 665/753/3432 +f 663/752/3433 666/755/3434 665/753/3435 +f 665/753/3436 662/750/3437 663/752/3438 +f 667/757/3439 664/754/3440 665/753/3441 +f 665/753/3442 668/756/3443 667/757/3444 +f 666/755/3445 669/758/3446 668/756/3447 +f 668/756/3448 665/753/3449 666/755/3450 +f 670/760/3451 667/757/3452 668/756/3453 +f 668/756/3454 671/759/3455 670/760/3456 +f 641/731/3457 671/759/3458 668/756/3459 +f 668/756/3460 669/758/3461 641/731/3462 +f 672/763/3463 675/764/3464 674/761/3465 +f 674/761/3466 673/762/3467 672/763/3468 +f 672/763/3469 677/766/3470 676/765/3471 +f 676/765/3472 675/764/3473 672/763/3474 +f 670/760/3475 678/767/3476 677/766/3477 +f 677/766/3478 672/763/3479 670/760/3480 +f 677/766/3481 680/769/3482 679/768/3483 +f 679/768/3484 676/765/3485 677/766/3486 +f 678/767/3487 681/770/3488 680/769/3489 +f 680/769/3490 677/766/3491 678/767/3492 +f 680/769/3493 683/772/3494 682/771/3495 +f 682/771/3496 679/768/3497 680/769/3498 +f 681/770/3499 684/773/3500 683/772/3501 +f 683/772/3502 680/769/3503 681/770/3504 +f 683/772/3505 686/775/3506 685/774/3507 +f 685/774/3508 682/771/3509 683/772/3510 +f 656/745/3511 686/775/3512 683/772/3513 +f 683/772/3514 684/773/3515 656/745/3516 +f 685/774/3517 686/775/3518 688/776/3519 +f 688/776/3520 687/777/3521 685/774/3522 +f 687/2610/3523 688/2609/3524 690/778/3525 +f 690/778/3526 689/1350/3527 687/2610/3528 +f 689/1350/3529 690/778/3530 692/1351/3531 +f 692/1351/3532 691/1352/3533 689/1350/3534 +f 691/1352/3535 692/1351/3536 694/2566/3537 +f 694/2566/3538 693/2567/3539 691/1352/3540 +f 693/2567/3541 694/2566/3542 673/762/3543 +f 673/762/3544 674/761/3545 693/2567/3546 +f 617/706/3547 446/532/3548 614/700/3549 +f 614/700/3550 615/702/3551 617/706/3552 +f 542/631/3553 548/637/3554 470/552/3555 +f 470/552/3556 474/1538/3557 542/631/3558 +f 521/606/3559 479/563/3560 480/564/3561 +f 480/564/3562 482/566/3563 521/606/3564 +f 503/2585/3565 695/779/3566 409/493/3567 +f 409/493/3568 410/492/3569 503/2585/3570 +f 491/575/3571 464/547/3572 418/502/3573 +f 418/502/3574 696/780/3575 491/575/3576 +f 455/539/3577 452/538/3578 698/1415/3579 +f 698/1415/3580 697/1416/3581 455/539/3582 +f 430/513/3583 411/2581/3584 412/2582/3585 +f 412/2582/3586 429/514/3587 430/513/3588 +f 1342/688/3589 602/2568/3590 419/505/3591 +f 419/505/3592 423/508/3593 1342/688/3594 +f 698/1415/3595 472/645/3596 473/648/3597 +f 473/648/3598 697/1416/3599 698/1415/3600 +f 698/1415/3601 452/538/3602 456/543/3603 +f 456/543/3604 472/645/3605 698/1415/3606 +f 418/502/3607 409/493/3608 695/779/3609 +f 695/779/3610 696/780/3611 418/502/3612 +f 416/500/3613 407/491/3614 405/490/3615 +f 405/490/3616 415/499/3617 416/500/3618 +f 1269/478/3619 394/1414/3620 440/523/3621 +f 440/523/3622 396/480/3623 1269/478/3624 +f 537/621/3625 505/589/3626 506/590/3627 +f 506/590/3628 536/620/3629 537/621/3630 +f 537/621/3631 512/595/3632 508/591/3633 +f 508/591/3634 505/589/3635 537/621/3636 +f 435/518/3637 400/483/3638 396/480/3639 +f 396/480/3640 440/523/3641 435/518/3642 +f 695/779/3643 700/784/3644 699/783/3645 +f 699/783/3646 696/780/3647 695/779/3648 +f 491/575/3649 696/780/3650 699/783/3651 +f 699/783/3652 494/578/3653 491/575/3654 +f 700/784/3655 499/582/3656 494/578/3657 +f 494/578/3658 699/783/3659 700/784/3660 +f 503/2585/3661 499/582/3662 700/784/3663 +f 700/784/3664 695/779/3665 503/2585/3666 +f 601/1530/3667 1607/1540/3668 701/1539/3669 +f 701/1539/3670 548/637/3671 601/1530/3672 +f 548/637/3673 701/1539/3674 469/553/3675 +f 469/553/3676 470/552/3677 548/637/3678 +f 703/788/3679 702/789/3680 705/786/3681 +f 705/786/3682 704/787/3683 703/788/3684 +f 1129/792/3685 707/793/3686 706/790/3687 +f 706/790/3688 708/791/3689 1129/792/3690 +f 711/796/3691 710/797/3692 709/794/3693 +f 709/794/3694 712/795/3695 711/796/3696 +f 714/800/3697 713/801/3698 716/798/3699 +f 716/798/3700 715/799/3701 714/800/3702 +f 711/796/3703 718/804/3704 717/802/3705 +f 717/802/3706 719/803/3707 711/796/3708 +f 724/809/3709 723/810/3710 726/807/3711 +f 726/807/3712 725/808/3713 724/809/3714 +f 728/813/3715 727/814/3716 730/811/3717 +f 730/811/3718 729/812/3719 728/813/3720 +f 733/815/3721 732/816/3722 731/805/3723 +f 731/805/3724 734/806/3725 733/815/3726 +f 736/819/3727 735/820/3728 738/817/3729 +f 738/817/3730 737/818/3731 736/819/3732 +f 739/821/3733 731/805/3734 714/800/3735 +f 714/800/3736 709/794/3737 739/821/3738 +f 741/824/3739 738/817/3740 740/822/3741 +f 740/822/3742 742/823/3743 741/824/3744 +f 744/829/3745 743/830/3746 746/827/3747 +f 746/827/3748 745/828/3749 744/829/3750 +f 747/833/3751 750/834/3752 749/831/3753 +f 749/831/3754 748/832/3755 747/833/3756 +f 751/826/3757 737/818/3758 738/817/3759 +f 738/817/3760 752/825/3761 751/826/3762 +f 751/826/3763 752/825/3764 731/805/3765 +f 731/805/3766 732/816/3767 751/826/3768 +f 753/843/3769 733/844/3770 734/837/3771 +f 734/837/3772 754/838/3773 753/843/3774 +f 753/843/3775 754/838/3776 735/845/3777 +f 735/845/3778 736/846/3779 753/843/3780 +f 755/839/3781 758/840/3782 757/835/3783 +f 757/835/3784 756/836/3785 755/839/3786 +f 761/852/3787 760/853/3788 759/849/3789 +f 759/849/3790 762/850/3791 761/852/3792 +f 740/822/3793 764/842/3794 763/841/3795 +f 763/841/3796 742/823/3797 740/822/3798 +f 765/867/3799 766/868/3800 747/833/3801 +f 747/833/3802 748/832/3803 765/867/3804 +f 710/797/3805 767/847/3806 739/821/3807 +f 739/821/3808 709/794/3809 710/797/3810 +f 768/879/3811 769/880/3812 761/852/3813 +f 761/852/3814 762/850/3815 768/879/3816 +f 770/854/3817 721/855/3818 722/848/3819 +f 722/848/3820 771/851/3821 770/854/3822 +f 772/856/3823 720/857/3824 721/855/3825 +f 721/855/3826 770/854/3827 772/856/3828 +f 775/860/3829 774/861/3830 773/858/3831 +f 773/858/3832 776/859/3833 775/860/3834 +f 778/864/3835 777/865/3836 780/862/3837 +f 780/862/3838 779/863/3839 778/864/3840 +f 780/862/3841 777/865/3842 781/866/3843 +f 781/866/3844 782/869/3845 780/862/3846 +f 781/866/3847 774/861/3848 775/860/3849 +f 775/860/3850 782/869/3851 781/866/3852 +f 773/893/3853 783/894/3854 784/891/3855 +f 784/891/3856 776/892/3857 773/893/3858 +f 784/891/3859 783/894/3860 778/895/3861 +f 778/895/3862 779/896/3863 784/891/3864 +f 787/872/3865 786/873/3866 785/870/3867 +f 785/870/3868 788/871/3869 787/872/3870 +f 790/876/3871 789/877/3872 792/874/3873 +f 792/874/3874 791/875/3875 790/876/3876 +f 792/874/3877 789/877/3878 793/878/3879 +f 793/878/3880 794/881/3881 792/874/3882 +f 793/878/3883 786/873/3884 787/872/3885 +f 787/872/3886 794/881/3887 793/878/3888 +f 788/899/3889 785/905/3890 795/897/3891 +f 795/897/3892 796/898/3893 788/899/3894 +f 795/897/3895 790/907/3896 791/906/3897 +f 791/906/3898 796/898/3899 795/897/3900 +f 797/884/3901 800/885/3902 799/882/3903 +f 799/882/3904 798/883/3905 797/884/3906 +f 801/888/3907 804/889/3908 803/886/3909 +f 803/886/3910 802/887/3911 801/888/3912 +f 805/890/3913 806/900/3914 804/889/3915 +f 804/889/3916 801/888/3917 805/890/3918 +f 798/883/3919 799/882/3920 806/900/3921 +f 806/900/3922 805/890/3923 798/883/3924 +f 807/910/3925 810/911/3926 809/908/3927 +f 809/908/3928 808/909/3929 807/910/3930 +f 811/912/3931 812/913/3932 810/911/3933 +f 810/911/3934 807/910/3935 811/912/3936 +f 800/885/3937 773/858/3938 774/861/3939 +f 774/861/3940 799/882/3941 800/885/3942 +f 804/889/3943 777/865/3944 778/864/3945 +f 778/864/3946 803/886/3947 804/889/3948 +f 806/900/3949 781/866/3950 777/865/3951 +f 777/865/3952 804/889/3953 806/900/3954 +f 799/882/3955 774/861/3956 781/866/3957 +f 781/866/3958 806/900/3959 799/882/3960 +f 810/911/3961 814/915/3962 813/914/3963 +f 813/914/3964 809/908/3965 810/911/3966 +f 812/913/3967 815/916/3968 814/915/3969 +f 814/915/3970 810/911/3971 812/913/3972 +f 776/859/3973 817/902/3974 816/901/3975 +f 816/901/3976 775/860/3977 776/859/3978 +f 780/862/3979 819/904/3980 818/903/3981 +f 818/903/3982 779/863/3983 780/862/3984 +f 782/869/3985 820/935/3986 819/904/3987 +f 819/904/3988 780/862/3989 782/869/3990 +f 775/860/3991 816/901/3992 820/935/3993 +f 820/935/3994 782/869/3995 775/860/3996 +f 821/919/3997 824/920/3998 823/917/3999 +f 823/917/4000 822/918/4001 821/919/4002 +f 825/921/4003 826/922/4004 824/920/4005 +f 824/920/4006 821/919/4007 825/921/4008 +f 817/902/4009 785/870/4010 786/873/4011 +f 786/873/4012 816/901/4013 817/902/4014 +f 819/904/4015 789/877/4016 790/876/4017 +f 790/876/4018 818/903/4019 819/904/4020 +f 820/935/4021 793/878/4022 789/877/4023 +f 789/877/4024 819/904/4025 820/935/4026 +f 816/901/4027 786/873/4028 793/878/4029 +f 793/878/4030 820/935/4031 816/901/4032 +f 824/920/4033 828/924/4034 827/923/4035 +f 827/923/4036 823/917/4037 824/920/4038 +f 826/922/4039 829/925/4040 828/924/4041 +f 828/924/4042 824/920/4043 826/922/4044 +f 807/910/4045 808/909/4046 797/926/4047 +f 797/926/4048 830/927/4049 807/910/4050 +f 811/912/4051 807/910/4052 830/927/4053 +f 830/927/4054 802/928/4055 811/912/4056 +f 812/913/4057 811/912/4058 802/928/4059 +f 802/928/4060 803/929/4061 812/913/4062 +f 815/916/4063 812/913/4064 803/929/4065 +f 803/929/4066 778/895/4067 815/916/4068 +f 814/915/4069 815/916/4070 778/895/4071 +f 778/895/4072 783/894/4073 814/915/4074 +f 813/914/4075 814/915/4076 783/894/4077 +f 783/894/4078 773/893/4079 813/914/4080 +f 809/908/4081 813/914/4082 773/893/4083 +f 773/893/4084 800/930/4085 809/908/4086 +f 808/909/4087 809/908/4088 800/930/4089 +f 800/930/4090 797/926/4091 808/909/4092 +f 821/919/4093 822/918/4094 776/892/4095 +f 776/892/4096 784/891/4097 821/919/4098 +f 825/921/4099 821/919/4100 784/891/4101 +f 784/891/4102 779/896/4103 825/921/4104 +f 826/922/4105 825/921/4106 779/896/4107 +f 779/896/4108 818/931/4109 826/922/4110 +f 829/925/4111 826/922/4112 818/931/4113 +f 818/931/4114 790/907/4115 829/925/4116 +f 828/924/4117 829/925/4118 790/907/4119 +f 790/907/4120 795/897/4121 828/924/4122 +f 827/923/4123 828/924/4124 795/897/4125 +f 795/897/4126 785/905/4127 827/923/4128 +f 823/917/4129 827/923/4130 785/905/4131 +f 785/905/4132 817/932/4133 823/917/4134 +f 822/918/4135 823/917/4136 817/932/4137 +f 817/932/4138 776/892/4139 822/918/4140 +f 772/856/4141 787/872/4142 788/871/4143 +f 788/871/4144 720/857/4145 772/856/4146 +f 791/875/4147 792/874/4148 771/851/4149 +f 771/851/4150 722/848/4151 791/875/4152 +f 771/851/4153 792/874/4154 794/881/4155 +f 794/881/4156 770/854/4157 771/851/4158 +f 794/881/4159 787/872/4160 772/856/4161 +f 772/856/4162 770/854/4163 794/881/4164 +f 832/948/4165 831/949/4166 834/933/4167 +f 834/933/4168 833/934/4169 832/948/4170 +f 831/949/4171 835/964/4172 836/963/4173 +f 836/963/4174 834/933/4175 831/949/4176 +f 838/987/4177 837/988/4178 721/975/4179 +f 721/975/4180 720/976/4181 838/987/4182 +f 839/989/4183 838/987/4184 720/976/4185 +f 720/976/4186 788/899/4187 839/989/4188 +f 840/990/4189 839/989/4190 788/899/4191 +f 788/899/4192 796/898/4193 840/990/4194 +f 841/991/4195 840/990/4196 796/898/4197 +f 796/898/4198 791/906/4199 841/991/4200 +f 842/993/4201 841/991/4202 791/906/4203 +f 791/906/4204 722/992/4205 842/993/4206 +f 837/988/4207 842/993/4208 722/992/4209 +f 722/992/4210 721/975/4211 837/988/4212 +f 833/934/4213 834/933/4214 837/988/4215 +f 837/988/4216 838/987/4217 833/934/4218 +f 832/948/4219 833/934/4220 838/987/4221 +f 838/987/4222 839/989/4223 832/948/4224 +f 831/949/4225 832/948/4226 839/989/4227 +f 839/989/4228 840/990/4229 831/949/4230 +f 835/964/4231 831/949/4232 840/990/4233 +f 840/990/4234 841/991/4235 835/964/4236 +f 836/963/4237 835/964/4238 841/991/4239 +f 841/991/4240 842/993/4241 836/963/4242 +f 834/933/4243 836/963/4244 842/993/4245 +f 842/993/4246 837/988/4247 834/933/4248 +f 845/1001/4249 844/1002/4250 843/994/4251 +f 843/994/4252 846/995/4253 845/1001/4254 +f 848/1003/4255 847/1004/4256 744/829/4257 +f 744/829/4258 745/828/4259 848/1003/4260 +f 850/1005/4261 849/1006/4262 845/1001/4263 +f 845/1001/4264 846/995/4265 850/1005/4266 +f 714/800/4267 731/805/4268 752/825/4269 +f 752/825/4270 713/801/4271 714/800/4272 +f 752/825/4273 738/817/4274 741/824/4275 +f 741/824/4276 713/801/4277 752/825/4278 +f 757/835/4279 767/847/4280 710/797/4281 +f 710/797/4282 756/836/4283 757/835/4284 +f 755/839/4285 851/937/4286 852/936/4287 +f 852/936/4288 758/840/4289 755/839/4290 +f 853/939/4291 763/841/4292 764/842/4293 +f 764/842/4294 854/938/4295 853/939/4296 +f 732/816/4297 733/815/4298 797/884/4299 +f 797/884/4300 798/883/4301 732/816/4302 +f 802/887/4303 736/819/4304 737/818/4305 +f 737/818/4306 801/888/4307 802/887/4308 +f 737/818/4309 751/826/4310 805/890/4311 +f 805/890/4312 801/888/4313 737/818/4314 +f 805/890/4315 751/826/4316 732/816/4317 +f 732/816/4318 798/883/4319 805/890/4320 +f 733/844/4321 753/843/4322 830/927/4323 +f 830/927/4324 797/926/4325 733/844/4326 +f 830/927/4327 753/843/4328 736/846/4329 +f 736/846/4330 802/928/4331 830/927/4332 +f 859/941/4333 858/942/4334 767/847/4335 +f 767/847/4336 860/940/4337 859/941/4338 +f 861/944/4339 734/806/4340 731/805/4341 +f 731/805/4342 862/943/4343 861/944/4344 +f 863/945/4345 862/943/4346 731/805/4347 +f 731/805/4348 739/821/4349 863/945/4350 +f 863/945/4351 739/821/4352 767/847/4353 +f 767/847/4354 858/942/4355 863/945/4356 +f 865/1008/4357 864/1009/4358 734/837/4359 +f 734/837/4360 861/1007/4361 865/1008/4362 +f 866/950/4363 856/951/4364 857/946/4365 +f 857/946/4366 867/947/4367 866/950/4368 +f 868/952/4369 855/953/4370 856/951/4371 +f 856/951/4372 866/950/4373 868/952/4374 +f 871/956/4375 870/957/4376 869/954/4377 +f 869/954/4378 872/955/4379 871/956/4380 +f 874/960/4381 873/961/4382 876/958/4383 +f 876/958/4384 875/959/4385 874/960/4386 +f 876/958/4387 873/961/4388 877/962/4389 +f 877/962/4390 878/965/4391 876/958/4392 +f 877/962/4393 870/957/4394 871/956/4395 +f 871/956/4396 878/965/4397 877/962/4398 +f 869/1012/4399 879/1013/4400 880/1010/4401 +f 880/1010/4402 872/1011/4403 869/1012/4404 +f 880/1010/4405 879/1013/4406 874/1014/4407 +f 874/1014/4408 875/1015/4409 880/1010/4410 +f 883/968/4411 882/969/4412 881/966/4413 +f 881/966/4414 884/967/4415 883/968/4416 +f 886/972/4417 885/973/4418 888/970/4419 +f 888/970/4420 887/971/4421 886/972/4422 +f 888/970/4423 885/973/4424 889/974/4425 +f 889/974/4426 890/977/4427 888/970/4428 +f 889/974/4429 882/969/4430 883/968/4431 +f 883/968/4432 890/977/4433 889/974/4434 +f 884/1018/4435 881/1019/4436 891/1016/4437 +f 891/1016/4438 892/1017/4439 884/1018/4440 +f 891/1016/4441 886/1021/4442 887/1020/4443 +f 887/1020/4444 892/1017/4445 891/1016/4446 +f 893/980/4447 896/981/4448 895/978/4449 +f 895/978/4450 894/979/4451 893/980/4452 +f 897/984/4453 900/985/4454 899/982/4455 +f 899/982/4456 898/983/4457 897/984/4458 +f 901/986/4459 902/996/4460 900/985/4461 +f 900/985/4462 897/984/4463 901/986/4464 +f 894/979/4465 895/978/4466 902/996/4467 +f 902/996/4468 901/986/4469 894/979/4470 +f 903/1032/4471 906/1046/4472 905/1022/4473 +f 905/1022/4474 904/1031/4475 903/1032/4476 +f 907/1047/4477 908/1058/4478 906/1046/4479 +f 906/1046/4480 903/1032/4481 907/1047/4482 +f 896/981/4483 869/954/4484 870/957/4485 +f 870/957/4486 895/978/4487 896/981/4488 +f 900/985/4489 873/961/4490 874/960/4491 +f 874/960/4492 899/982/4493 900/985/4494 +f 902/996/4495 877/962/4496 873/961/4497 +f 873/961/4498 900/985/4499 902/996/4500 +f 895/978/4501 870/957/4502 877/962/4503 +f 877/962/4504 902/996/4505 895/978/4506 +f 906/1046/4507 910/1070/4508 909/1059/4509 +f 909/1059/4510 905/1022/4511 906/1046/4512 +f 908/1058/4513 911/1071/4514 910/1070/4515 +f 910/1070/4516 906/1046/4517 908/1058/4518 +f 872/955/4519 913/998/4520 912/997/4521 +f 912/997/4522 871/956/4523 872/955/4524 +f 876/958/4525 915/1000/4526 914/999/4527 +f 914/999/4528 875/959/4529 876/958/4530 +f 878/965/4531 916/1023/4532 915/1000/4533 +f 915/1000/4534 876/958/4535 878/965/4536 +f 871/956/4537 912/997/4538 916/1023/4539 +f 916/1023/4540 878/965/4541 871/956/4542 +f 917/1074/4543 920/1075/4544 919/1072/4545 +f 919/1072/4546 918/1073/4547 917/1074/4548 +f 921/1076/4549 922/1077/4550 920/1075/4551 +f 920/1075/4552 917/1074/4553 921/1076/4554 +f 913/998/4555 881/966/4556 882/969/4557 +f 882/969/4558 912/997/4559 913/998/4560 +f 915/1000/4561 885/973/4562 886/972/4563 +f 886/972/4564 914/999/4565 915/1000/4566 +f 916/1023/4567 889/974/4568 885/973/4569 +f 885/973/4570 915/1000/4571 916/1023/4572 +f 912/997/4573 882/969/4574 889/974/4575 +f 889/974/4576 916/1023/4577 912/997/4578 +f 920/1075/4579 924/1084/4580 923/1078/4581 +f 923/1078/4582 919/1072/4583 920/1075/4584 +f 922/1077/4585 925/1085/4586 924/1084/4587 +f 924/1084/4588 920/1075/4589 922/1077/4590 +f 903/1032/4591 904/1031/4592 893/1086/4593 +f 893/1086/4594 926/1087/4595 903/1032/4596 +f 907/1047/4597 903/1032/4598 926/1087/4599 +f 926/1087/4600 898/1088/4601 907/1047/4602 +f 908/1058/4603 907/1047/4604 898/1088/4605 +f 898/1088/4606 899/1089/4607 908/1058/4608 +f 911/1071/4609 908/1058/4610 899/1089/4611 +f 899/1089/4612 874/1014/4613 911/1071/4614 +f 910/1070/4615 911/1071/4616 874/1014/4617 +f 874/1014/4618 879/1013/4619 910/1070/4620 +f 909/1059/4621 910/1070/4622 879/1013/4623 +f 879/1013/4624 869/1012/4625 909/1059/4626 +f 905/1022/4627 909/1059/4628 869/1012/4629 +f 869/1012/4630 896/1090/4631 905/1022/4632 +f 904/1031/4633 905/1022/4634 896/1090/4635 +f 896/1090/4636 893/1086/4637 904/1031/4638 +f 917/1074/4639 918/1073/4640 872/1011/4641 +f 872/1011/4642 880/1010/4643 917/1074/4644 +f 921/1076/4645 917/1074/4646 880/1010/4647 +f 880/1010/4648 875/1015/4649 921/1076/4650 +f 922/1077/4651 921/1076/4652 875/1015/4653 +f 875/1015/4654 914/1091/4655 922/1077/4656 +f 925/1085/4657 922/1077/4658 914/1091/4659 +f 914/1091/4660 886/1021/4661 925/1085/4662 +f 924/1084/4663 925/1085/4664 886/1021/4665 +f 886/1021/4666 891/1016/4667 924/1084/4668 +f 923/1078/4669 924/1084/4670 891/1016/4671 +f 891/1016/4672 881/1019/4673 923/1078/4674 +f 919/1072/4675 923/1078/4676 881/1019/4677 +f 881/1019/4678 913/1092/4679 919/1072/4680 +f 918/1073/4681 919/1072/4682 913/1092/4683 +f 913/1092/4684 872/1011/4685 918/1073/4686 +f 868/952/4687 883/968/4688 884/967/4689 +f 884/967/4690 855/953/4691 868/952/4692 +f 887/971/4693 888/970/4694 867/947/4695 +f 867/947/4696 857/946/4697 887/971/4698 +f 867/947/4699 888/970/4700 890/977/4701 +f 890/977/4702 866/950/4703 867/947/4704 +f 890/977/4705 883/968/4706 868/952/4707 +f 868/952/4708 866/950/4709 890/977/4710 +f 928/1095/4711 927/1096/4712 930/1093/4713 +f 930/1093/4714 929/1094/4715 928/1095/4716 +f 927/1096/4717 931/1098/4718 932/1097/4719 +f 932/1097/4720 930/1093/4721 927/1096/4722 +f 934/1101/4723 933/1102/4724 856/1099/4725 +f 856/1099/4726 855/1100/4727 934/1101/4728 +f 935/1103/4729 934/1101/4730 855/1100/4731 +f 855/1100/4732 884/1018/4733 935/1103/4734 +f 936/1104/4735 935/1103/4736 884/1018/4737 +f 884/1018/4738 892/1017/4739 936/1104/4740 +f 937/1105/4741 936/1104/4742 892/1017/4743 +f 892/1017/4744 887/1020/4745 937/1105/4746 +f 938/1115/4747 937/1105/4748 887/1020/4749 +f 887/1020/4750 857/1114/4751 938/1115/4752 +f 933/1102/4753 938/1115/4754 857/1114/4755 +f 857/1114/4756 856/1099/4757 933/1102/4758 +f 929/1094/4759 930/1093/4760 933/1102/4761 +f 933/1102/4762 934/1101/4763 929/1094/4764 +f 928/1095/4765 929/1094/4766 934/1101/4767 +f 934/1101/4768 935/1103/4769 928/1095/4770 +f 927/1096/4771 928/1095/4772 935/1103/4773 +f 935/1103/4774 936/1104/4775 927/1096/4776 +f 931/1098/4777 927/1096/4778 936/1104/4779 +f 936/1104/4780 937/1105/4781 931/1098/4782 +f 932/1097/4783 931/1098/4784 937/1105/4785 +f 937/1105/4786 938/1115/4787 932/1097/4788 +f 930/1093/4789 932/1097/4790 938/1115/4791 +f 938/1115/4792 933/1102/4793 930/1093/4794 +f 858/942/4795 859/941/4796 893/980/4797 +f 893/980/4798 894/979/4799 858/942/4800 +f 898/983/4801 861/944/4802 862/943/4803 +f 862/943/4804 897/984/4805 898/983/4806 +f 862/943/4807 863/945/4808 901/986/4809 +f 901/986/4810 897/984/4811 862/943/4812 +f 901/986/4813 863/945/4814 858/942/4815 +f 858/942/4816 894/979/4817 901/986/4818 +f 859/1129/4819 865/1008/4820 926/1087/4821 +f 926/1087/4822 893/1086/4823 859/1129/4824 +f 926/1087/4825 865/1008/4826 861/1007/4827 +f 861/1007/4828 898/1088/4829 926/1087/4830 +f 943/1024/4831 942/1025/4832 758/840/4833 +f 758/840/4834 852/936/4835 943/1024/4836 +f 944/1027/4837 860/940/4838 767/847/4839 +f 767/847/4840 945/1026/4841 944/1027/4842 +f 946/1028/4843 945/1026/4844 767/847/4845 +f 767/847/4846 757/835/4847 946/1028/4848 +f 946/1028/4849 757/835/4850 758/840/4851 +f 758/840/4852 942/1025/4853 946/1028/4854 +f 947/1142/4855 943/1153/4856 852/1130/4857 +f 852/1130/4858 948/1141/4859 947/1142/4860 +f 947/1142/4861 948/1141/4862 860/1154/4863 +f 860/1154/4864 944/1155/4865 947/1142/4866 +f 949/1033/4867 940/1034/4868 941/1029/4869 +f 941/1029/4870 950/1030/4871 949/1033/4872 +f 951/1035/4873 939/1036/4874 940/1034/4875 +f 940/1034/4876 949/1033/4877 951/1035/4878 +f 954/1039/4879 953/1040/4880 952/1037/4881 +f 952/1037/4882 955/1038/4883 954/1039/4884 +f 957/1043/4885 956/1044/4886 959/1041/4887 +f 959/1041/4888 958/1042/4889 957/1043/4890 +f 959/1041/4891 956/1044/4892 960/1045/4893 +f 960/1045/4894 961/1048/4895 959/1041/4896 +f 960/1045/4897 953/1040/4898 954/1039/4899 +f 954/1039/4900 961/1048/4901 960/1045/4902 +f 952/1158/4903 962/1159/4904 963/1156/4905 +f 963/1156/4906 955/1157/4907 952/1158/4908 +f 963/1156/4909 962/1159/4910 957/1160/4911 +f 957/1160/4912 958/1161/4913 963/1156/4914 +f 966/1051/4915 965/1052/4916 964/1049/4917 +f 964/1049/4918 967/1050/4919 966/1051/4920 +f 969/1055/4921 968/1056/4922 971/1053/4923 +f 971/1053/4924 970/1054/4925 969/1055/4926 +f 971/1053/4927 968/1056/4928 972/1057/4929 +f 972/1057/4930 973/1060/4931 971/1053/4932 +f 972/1057/4933 965/1052/4934 966/1051/4935 +f 966/1051/4936 973/1060/4937 972/1057/4938 +f 967/1169/4939 964/1170/4940 974/1167/4941 +f 974/1167/4942 975/1168/4943 967/1169/4944 +f 974/1167/4945 969/1172/4946 970/1171/4947 +f 970/1171/4948 975/1168/4949 974/1167/4950 +f 976/1063/4951 979/1064/4952 978/1061/4953 +f 978/1061/4954 977/1062/4955 976/1063/4956 +f 980/1067/4957 983/1068/4958 982/1065/4959 +f 982/1065/4960 981/1066/4961 980/1067/4962 +f 984/1069/4963 985/1079/4964 983/1068/4965 +f 983/1068/4966 980/1067/4967 984/1069/4968 +f 977/1062/4969 978/1061/4970 985/1079/4971 +f 985/1079/4972 984/1069/4973 977/1062/4974 +f 986/1175/4975 989/1176/4976 988/1173/4977 +f 988/1173/4978 987/1174/4979 986/1175/4980 +f 990/1177/4981 991/1178/4982 989/1176/4983 +f 989/1176/4984 986/1175/4985 990/1177/4986 +f 979/1064/4987 952/1037/4988 953/1040/4989 +f 953/1040/4990 978/1061/4991 979/1064/4992 +f 983/1068/4993 956/1044/4994 957/1043/4995 +f 957/1043/4996 982/1065/4997 983/1068/4998 +f 985/1079/4999 960/1045/5000 956/1044/5001 +f 956/1044/5002 983/1068/5003 985/1079/5004 +f 978/1061/5005 953/1040/5006 960/1045/5007 +f 960/1045/5008 985/1079/5009 978/1061/5010 +f 989/1176/5011 993/1180/5012 992/1179/5013 +f 992/1179/5014 988/1173/5015 989/1176/5016 +f 991/1178/5017 994/1181/5018 993/1180/5019 +f 993/1180/5020 989/1176/5021 991/1178/5022 +f 955/1038/5023 996/1081/5024 995/1080/5025 +f 995/1080/5026 954/1039/5027 955/1038/5028 +f 959/1041/5029 998/1083/5030 997/1082/5031 +f 997/1082/5032 958/1042/5033 959/1041/5034 +f 961/1048/5035 999/1106/5036 998/1083/5037 +f 998/1083/5038 959/1041/5039 961/1048/5040 +f 954/1039/5041 995/1080/5042 999/1106/5043 +f 999/1106/5044 961/1048/5045 954/1039/5046 +f 1000/1184/5047 1003/1185/5048 1002/1182/5049 +f 1002/1182/5050 1001/1183/5051 1000/1184/5052 +f 1004/1186/5053 1005/1187/5054 1003/1185/5055 +f 1003/1185/5056 1000/1184/5057 1004/1186/5058 +f 996/1081/5059 964/1049/5060 965/1052/5061 +f 965/1052/5062 995/1080/5063 996/1081/5064 +f 998/1083/5065 968/1056/5066 969/1055/5067 +f 969/1055/5068 997/1082/5069 998/1083/5070 +f 999/1106/5071 972/1057/5072 968/1056/5073 +f 968/1056/5074 998/1083/5075 999/1106/5076 +f 995/1080/5077 965/1052/5078 972/1057/5079 +f 972/1057/5080 999/1106/5081 995/1080/5082 +f 1003/1185/5083 1007/1189/5084 1006/1188/5085 +f 1006/1188/5086 1002/1182/5087 1003/1185/5088 +f 1005/1187/5089 1008/1190/5090 1007/1189/5091 +f 1007/1189/5092 1003/1185/5093 1005/1187/5094 +f 986/1175/5095 987/1174/5096 976/1191/5097 +f 976/1191/5098 1009/1192/5099 986/1175/5100 +f 990/1177/5101 986/1175/5102 1009/1192/5103 +f 1009/1192/5104 981/1193/5105 990/1177/5106 +f 991/1178/5107 990/1177/5108 981/1193/5109 +f 981/1193/5110 982/1197/5111 991/1178/5112 +f 994/1181/5113 991/1178/5114 982/1197/5115 +f 982/1197/5116 957/1160/5117 994/1181/5118 +f 993/1180/5119 994/1181/5120 957/1160/5121 +f 957/1160/5122 962/1159/5123 993/1180/5124 +f 992/1179/5125 993/1180/5126 962/1159/5127 +f 962/1159/5128 952/1158/5129 992/1179/5130 +f 988/1173/5131 992/1179/5132 952/1158/5133 +f 952/1158/5134 979/1198/5135 988/1173/5136 +f 987/1174/5137 988/1173/5138 979/1198/5139 +f 979/1198/5140 976/1191/5141 987/1174/5142 +f 1000/1184/5143 1001/1183/5144 955/1157/5145 +f 955/1157/5146 963/1156/5147 1000/1184/5148 +f 1004/1186/5149 1000/1184/5150 963/1156/5151 +f 963/1156/5152 958/1161/5153 1004/1186/5154 +f 1005/1187/5155 1004/1186/5156 958/1161/5157 +f 958/1161/5158 997/1199/5159 1005/1187/5160 +f 1008/1190/5161 1005/1187/5162 997/1199/5163 +f 997/1199/5164 969/1172/5165 1008/1190/5166 +f 1007/1189/5167 1008/1190/5168 969/1172/5169 +f 969/1172/5170 974/1167/5171 1007/1189/5172 +f 1006/1188/5173 1007/1189/5174 974/1167/5175 +f 974/1167/5176 964/1170/5177 1006/1188/5178 +f 1002/1182/5179 1006/1188/5180 964/1170/5181 +f 964/1170/5182 996/1222/5183 1002/1182/5184 +f 1001/1183/5185 1002/1182/5186 996/1222/5187 +f 996/1222/5188 955/1157/5189 1001/1183/5190 +f 951/1035/5191 966/1051/5192 967/1050/5193 +f 967/1050/5194 939/1036/5195 951/1035/5196 +f 970/1054/5197 971/1053/5198 950/1030/5199 +f 950/1030/5200 941/1029/5201 970/1054/5202 +f 950/1030/5203 971/1053/5204 973/1060/5205 +f 973/1060/5206 949/1033/5207 950/1030/5208 +f 973/1060/5209 966/1051/5210 951/1035/5211 +f 951/1035/5212 949/1033/5213 973/1060/5214 +f 1011/1227/5215 1010/1228/5216 1013/1223/5217 +f 1013/1223/5218 1012/1226/5219 1011/1227/5220 +f 1010/1228/5221 1014/1230/5222 1015/1229/5223 +f 1015/1229/5224 1013/1223/5225 1010/1228/5226 +f 1017/1234/5227 1016/1235/5228 940/1231/5229 +f 940/1231/5230 939/1233/5231 1017/1234/5232 +f 1018/1236/5233 1017/1234/5234 939/1233/5235 +f 939/1233/5236 967/1169/5237 1018/1236/5238 +f 1019/1237/5239 1018/1236/5240 967/1169/5241 +f 967/1169/5242 975/1168/5243 1019/1237/5244 +f 1020/1242/5245 1019/1237/5246 975/1168/5247 +f 975/1168/5248 970/1171/5249 1020/1242/5250 +f 1021/1244/5251 1020/1242/5252 970/1171/5253 +f 970/1171/5254 941/1243/5255 1021/1244/5256 +f 1016/1235/5257 1021/1244/5258 941/1243/5259 +f 941/1243/5260 940/1231/5261 1016/1235/5262 +f 1012/1226/5263 1013/1223/5264 1016/1235/5265 +f 1016/1235/5266 1017/1234/5267 1012/1226/5268 +f 1011/1227/5269 1012/1226/5270 1017/1234/5271 +f 1017/1234/5272 1018/1236/5273 1011/1227/5274 +f 1010/1228/5275 1011/1227/5276 1018/1236/5277 +f 1018/1236/5278 1019/1237/5279 1010/1228/5280 +f 1014/1230/5281 1010/1228/5282 1019/1237/5283 +f 1019/1237/5284 1020/1242/5285 1014/1230/5286 +f 1015/1229/5287 1014/1230/5288 1020/1242/5289 +f 1020/1242/5290 1021/1244/5291 1015/1229/5292 +f 1013/1223/5293 1015/1229/5294 1021/1244/5295 +f 1021/1244/5296 1016/1235/5297 1013/1223/5298 +f 942/1025/5299 943/1024/5300 976/1063/5301 +f 976/1063/5302 977/1062/5303 942/1025/5304 +f 981/1066/5305 944/1027/5306 945/1026/5307 +f 945/1026/5308 980/1067/5309 981/1066/5310 +f 945/1026/5311 946/1028/5312 984/1069/5313 +f 984/1069/5314 980/1067/5315 945/1026/5316 +f 984/1069/5317 946/1028/5318 942/1025/5319 +f 942/1025/5320 977/1062/5321 984/1069/5322 +f 943/1153/5323 947/1142/5324 1009/1192/5325 +f 1009/1192/5326 976/1191/5327 943/1153/5328 +f 1009/1192/5329 947/1142/5330 944/1155/5331 +f 944/1155/5332 981/1193/5333 1009/1192/5334 +f 1026/1107/5335 1025/1108/5336 738/817/5337 +f 738/817/5338 735/820/5339 1026/1107/5340 +f 1027/1110/5341 854/938/5342 764/842/5343 +f 764/842/5344 1028/1109/5345 1027/1110/5346 +f 1029/1111/5347 1028/1109/5348 764/842/5349 +f 764/842/5350 740/822/5351 1029/1111/5352 +f 1029/1111/5353 740/822/5354 738/817/5355 +f 738/817/5356 1025/1108/5357 1029/1111/5358 +f 1030/1246/5359 1026/1247/5360 735/845/5361 +f 735/845/5362 1031/1245/5363 1030/1246/5364 +f 1030/1246/5365 1031/1245/5366 854/1253/5367 +f 854/1253/5368 1027/1254/5369 1030/1246/5370 +f 1032/1116/5371 1023/1117/5372 1024/1112/5373 +f 1024/1112/5374 1033/1113/5375 1032/1116/5376 +f 1034/1118/5377 1022/1119/5378 1023/1117/5379 +f 1023/1117/5380 1032/1116/5381 1034/1118/5382 +f 1037/1122/5383 1036/1123/5384 1035/1120/5385 +f 1035/1120/5386 1038/1121/5387 1037/1122/5388 +f 1040/1126/5389 1039/1127/5390 1042/1124/5391 +f 1042/1124/5392 1041/1125/5393 1040/1126/5394 +f 1042/1124/5395 1039/1127/5396 1043/1128/5397 +f 1043/1128/5398 1044/1131/5399 1042/1124/5400 +f 1043/1128/5401 1036/1123/5402 1037/1122/5403 +f 1037/1122/5404 1044/1131/5405 1043/1128/5406 +f 1035/1257/5407 1045/1258/5408 1046/1255/5409 +f 1046/1255/5410 1038/1256/5411 1035/1257/5412 +f 1046/1255/5413 1045/1258/5414 1040/1260/5415 +f 1040/1260/5416 1041/1261/5417 1046/1255/5418 +f 1049/1134/5419 1048/1135/5420 1047/1132/5421 +f 1047/1132/5422 1050/1133/5423 1049/1134/5424 +f 1052/1138/5425 1051/1139/5426 1054/1136/5427 +f 1054/1136/5428 1053/1137/5429 1052/1138/5430 +f 1054/1136/5431 1051/1139/5432 1055/1140/5433 +f 1055/1140/5434 1056/1143/5435 1054/1136/5436 +f 1055/1140/5437 1048/1135/5438 1049/1134/5439 +f 1049/1134/5440 1056/1143/5441 1055/1140/5442 +f 1050/1264/5443 1047/1265/5444 1057/1262/5445 +f 1057/1262/5446 1058/1263/5447 1050/1264/5448 +f 1057/1262/5449 1052/1267/5450 1053/1266/5451 +f 1053/1266/5452 1058/1263/5453 1057/1262/5454 +f 1059/1146/5455 1062/1147/5456 1061/1144/5457 +f 1061/1144/5458 1060/1145/5459 1059/1146/5460 +f 1063/1150/5461 1066/1151/5462 1065/1148/5463 +f 1065/1148/5464 1064/1149/5465 1063/1150/5466 +f 1067/1152/5467 1068/1162/5468 1066/1151/5469 +f 1066/1151/5470 1063/1150/5471 1067/1152/5472 +f 1060/1145/5473 1061/1144/5474 1068/1162/5475 +f 1068/1162/5476 1067/1152/5477 1060/1145/5478 +f 1069/1278/5479 1072/1279/5480 1071/1268/5481 +f 1071/1268/5482 1070/1269/5483 1069/1278/5484 +f 1073/1280/5485 1074/1281/5486 1072/1279/5487 +f 1072/1279/5488 1069/1278/5489 1073/1280/5490 +f 1062/1147/5491 1035/1120/5492 1036/1123/5493 +f 1036/1123/5494 1061/1144/5495 1062/1147/5496 +f 1066/1151/5497 1039/1127/5498 1040/1126/5499 +f 1040/1126/5500 1065/1148/5501 1066/1151/5502 +f 1068/1162/5503 1043/1128/5504 1039/1127/5505 +f 1039/1127/5506 1066/1151/5507 1068/1162/5508 +f 1061/1144/5509 1036/1123/5510 1043/1128/5511 +f 1043/1128/5512 1068/1162/5513 1061/1144/5514 +f 1072/1279/5515 1076/1283/5516 1075/1282/5517 +f 1075/1282/5518 1071/1268/5519 1072/1279/5520 +f 1074/1281/5521 1077/1284/5522 1076/1283/5523 +f 1076/1283/5524 1072/1279/5525 1074/1281/5526 +f 1038/1121/5527 1079/1164/5528 1078/1163/5529 +f 1078/1163/5530 1037/1122/5531 1038/1121/5532 +f 1042/1124/5533 1081/1166/5534 1080/1165/5535 +f 1080/1165/5536 1041/1125/5537 1042/1124/5538 +f 1044/1131/5539 1082/1194/5540 1081/1166/5541 +f 1081/1166/5542 1042/1124/5543 1044/1131/5544 +f 1037/1122/5545 1078/1163/5546 1082/1194/5547 +f 1082/1194/5548 1044/1131/5549 1037/1122/5550 +f 1083/1290/5551 1086/1291/5552 1085/1285/5553 +f 1085/1285/5554 1084/1289/5555 1083/1290/5556 +f 1087/1292/5557 1088/1299/5558 1086/1291/5559 +f 1086/1291/5560 1083/1290/5561 1087/1292/5562 +f 1079/1164/5563 1047/1132/5564 1048/1135/5565 +f 1048/1135/5566 1078/1163/5567 1079/1164/5568 +f 1081/1166/5569 1051/1139/5570 1052/1138/5571 +f 1052/1138/5572 1080/1165/5573 1081/1166/5574 +f 1082/1194/5575 1055/1140/5576 1051/1139/5577 +f 1051/1139/5578 1081/1166/5579 1082/1194/5580 +f 1078/1163/5581 1048/1135/5582 1055/1140/5583 +f 1055/1140/5584 1082/1194/5585 1078/1163/5586 +f 1086/1291/5587 1090/1307/5588 1089/1306/5589 +f 1089/1306/5590 1085/1285/5591 1086/1291/5592 +f 1088/1299/5593 1091/1308/5594 1090/1307/5595 +f 1090/1307/5596 1086/1291/5597 1088/1299/5598 +f 1069/1278/5599 1070/1269/5600 1059/1309/5601 +f 1059/1309/5602 1092/1310/5603 1069/1278/5604 +f 1073/1280/5605 1069/1278/5606 1092/1310/5607 +f 1092/1310/5608 1064/1311/5609 1073/1280/5610 +f 1074/1281/5611 1073/1280/5612 1064/1311/5613 +f 1064/1311/5614 1065/1312/5615 1074/1281/5616 +f 1077/1284/5617 1074/1281/5618 1065/1312/5619 +f 1065/1312/5620 1040/1260/5621 1077/1284/5622 +f 1076/1283/5623 1077/1284/5624 1040/1260/5625 +f 1040/1260/5626 1045/1258/5627 1076/1283/5628 +f 1075/1282/5629 1076/1283/5630 1045/1258/5631 +f 1045/1258/5632 1035/1257/5633 1075/1282/5634 +f 1071/1268/5635 1075/1282/5636 1035/1257/5637 +f 1035/1257/5638 1062/1313/5639 1071/1268/5640 +f 1070/1269/5641 1071/1268/5642 1062/1313/5643 +f 1062/1313/5644 1059/1309/5645 1070/1269/5646 +f 1083/1290/5647 1084/1289/5648 1038/1256/5649 +f 1038/1256/5650 1046/1255/5651 1083/1290/5652 +f 1087/1292/5653 1083/1290/5654 1046/1255/5655 +f 1046/1255/5656 1041/1261/5657 1087/1292/5658 +f 1088/1299/5659 1087/1292/5660 1041/1261/5661 +f 1041/1261/5662 1080/1314/5663 1088/1299/5664 +f 1091/1308/5665 1088/1299/5666 1080/1314/5667 +f 1080/1314/5668 1052/1267/5669 1091/1308/5670 +f 1090/1307/5671 1091/1308/5672 1052/1267/5673 +f 1052/1267/5674 1057/1262/5675 1090/1307/5676 +f 1089/1306/5677 1090/1307/5678 1057/1262/5679 +f 1057/1262/5680 1047/1265/5681 1089/1306/5682 +f 1085/1285/5683 1089/1306/5684 1047/1265/5685 +f 1047/1265/5686 1079/1315/5687 1085/1285/5688 +f 1084/1289/5689 1085/1285/5690 1079/1315/5691 +f 1079/1315/5692 1038/1256/5693 1084/1289/5694 +f 1034/1118/5695 1049/1134/5696 1050/1133/5697 +f 1050/1133/5698 1022/1119/5699 1034/1118/5700 +f 1053/1137/5701 1054/1136/5702 1033/1113/5703 +f 1033/1113/5704 1024/1112/5705 1053/1137/5706 +f 1033/1113/5707 1054/1136/5708 1056/1143/5709 +f 1056/1143/5710 1032/1116/5711 1033/1113/5712 +f 1056/1143/5713 1049/1134/5714 1034/1118/5715 +f 1034/1118/5716 1032/1116/5717 1056/1143/5718 +f 1094/1318/5719 1093/1319/5720 1096/1316/5721 +f 1096/1316/5722 1095/1317/5723 1094/1318/5724 +f 1093/1319/5725 1097/1321/5726 1098/1320/5727 +f 1098/1320/5728 1096/1316/5729 1093/1319/5730 +f 1100/1324/5731 1099/1325/5732 1023/1322/5733 +f 1023/1322/5734 1022/1323/5735 1100/1324/5736 +f 1101/1326/5737 1100/1324/5738 1022/1323/5739 +f 1022/1323/5740 1050/1264/5741 1101/1326/5742 +f 1102/1327/5743 1101/1326/5744 1050/1264/5745 +f 1050/1264/5746 1058/1263/5747 1102/1327/5748 +f 1103/1328/5749 1102/1327/5750 1058/1263/5751 +f 1058/1263/5752 1053/1266/5753 1103/1328/5754 +f 1104/1330/5755 1103/1328/5756 1053/1266/5757 +f 1053/1266/5758 1024/1329/5759 1104/1330/5760 +f 1099/1325/5761 1104/1330/5762 1024/1329/5763 +f 1024/1329/5764 1023/1322/5765 1099/1325/5766 +f 1095/1317/5767 1096/1316/5768 1099/1325/5769 +f 1099/1325/5770 1100/1324/5771 1095/1317/5772 +f 1094/1318/5773 1095/1317/5774 1100/1324/5775 +f 1100/1324/5776 1101/1326/5777 1094/1318/5778 +f 1093/1319/5779 1094/1318/5780 1101/1326/5781 +f 1101/1326/5782 1102/1327/5783 1093/1319/5784 +f 1097/1321/5785 1093/1319/5786 1102/1327/5787 +f 1102/1327/5788 1103/1328/5789 1097/1321/5790 +f 1098/1320/5791 1097/1321/5792 1103/1328/5793 +f 1103/1328/5794 1104/1330/5795 1098/1320/5796 +f 1096/1316/5797 1098/1320/5798 1104/1330/5799 +f 1104/1330/5800 1099/1325/5801 1096/1316/5802 +f 1025/1108/5803 1026/1107/5804 1059/1146/5805 +f 1059/1146/5806 1060/1145/5807 1025/1108/5808 +f 1064/1149/5809 1027/1110/5810 1028/1109/5811 +f 1028/1109/5812 1063/1150/5813 1064/1149/5814 +f 1028/1109/5815 1029/1111/5816 1067/1152/5817 +f 1067/1152/5818 1063/1150/5819 1028/1109/5820 +f 1067/1152/5821 1029/1111/5822 1025/1108/5823 +f 1025/1108/5824 1060/1145/5825 1067/1152/5826 +f 1026/1247/5827 1030/1246/5828 1092/1310/5829 +f 1092/1310/5830 1059/1309/5831 1026/1247/5832 +f 1092/1310/5833 1030/1246/5834 1027/1254/5835 +f 1027/1254/5836 1064/1311/5837 1092/1310/5838 +f 750/834/5839 747/833/5840 1031/1245/5841 +f 1031/1245/5842 735/845/5843 750/834/5844 +f 749/831/5845 750/834/5846 735/845/5847 +f 735/845/5848 1105/1331/5849 749/831/5850 +f 748/832/5851 749/831/5852 1105/1331/5853 +f 1105/1331/5854 1106/1332/5855 748/832/5856 +f 765/867/5857 748/832/5858 1106/1332/5859 +f 1106/1332/5860 853/1333/5861 765/867/5862 +f 766/868/5863 765/867/5864 853/1333/5865 +f 853/1333/5866 854/1253/5867 766/868/5868 +f 747/833/5869 766/868/5870 854/1253/5871 +f 854/1253/5872 1031/1245/5873 747/833/5874 +f 743/830/5875 744/829/5876 754/838/5877 +f 754/838/5878 734/837/5879 743/830/5880 +f 746/827/5881 743/830/5882 734/837/5883 +f 734/837/5884 1107/1334/5885 746/827/5886 +f 745/828/5887 746/827/5888 1107/1334/5889 +f 1107/1334/5890 1108/1335/5891 745/828/5892 +f 848/1003/5893 745/828/5894 1108/1335/5895 +f 1108/1335/5896 1105/1331/5897 848/1003/5898 +f 847/1004/5899 848/1003/5900 1105/1331/5901 +f 1105/1331/5902 735/845/5903 847/1004/5904 +f 744/829/5905 847/1004/5906 735/845/5907 +f 735/845/5908 754/838/5909 744/829/5910 +f 845/1001/5911 849/1006/5912 734/837/5913 +f 734/837/5914 864/1009/5915 845/1001/5916 +f 844/1002/5917 845/1001/5918 864/1009/5919 +f 864/1009/5920 860/1154/5921 844/1002/5922 +f 843/994/5923 844/1002/5924 860/1154/5925 +f 860/1154/5926 727/814/5927 843/994/5928 +f 846/995/5929 843/994/5930 727/814/5931 +f 727/814/5932 1109/1336/5933 846/995/5934 +f 850/1005/5935 846/995/5936 1109/1336/5937 +f 1109/1336/5938 1107/1334/5939 850/1005/5940 +f 849/1006/5941 850/1005/5942 1107/1334/5943 +f 1107/1334/5944 734/837/5945 849/1006/5946 +f 760/853/5947 761/852/5948 948/1141/5949 +f 948/1141/5950 852/1130/5951 760/853/5952 +f 759/849/5953 760/853/5954 852/1130/5955 +f 852/1130/5956 851/1337/5957 759/849/5958 +f 762/850/5959 759/849/5960 851/1337/5961 +f 851/1337/5962 730/811/5963 762/850/5964 +f 768/879/5965 762/850/5966 730/811/5967 +f 730/811/5968 727/814/5969 768/879/5970 +f 769/880/5971 768/879/5972 727/814/5973 +f 727/814/5974 860/1154/5975 769/880/5976 +f 761/852/5977 769/880/5978 860/1154/5979 +f 860/1154/5980 948/1141/5981 761/852/5982 +f 859/1129/5983 860/1154/5984 864/1009/5985 +f 864/1009/5986 865/1008/5987 859/1129/5988 +f 755/839/5989 1111/1196/5990 1110/1195/5991 +f 1110/1195/5992 851/937/5993 755/839/5994 +f 712/795/5995 1112/1200/5996 718/804/5997 +f 718/804/5998 711/796/5999 712/795/6000 +f 1109/1336/6001 1114/1339/6002 1113/1338/6003 +f 1113/1338/6004 1107/1334/6005 1109/1336/6006 +f 719/803/6007 756/836/6008 710/797/6009 +f 710/797/6010 711/796/6011 719/803/6012 +f 725/808/6013 1115/1340/6014 1106/1332/6015 +f 1106/1332/6016 1105/1331/6017 725/808/6018 +f 1108/1335/6019 724/809/6020 725/808/6021 +f 725/808/6022 1105/1331/6023 1108/1335/6024 +f 1118/1203/6025 1117/1204/6026 1116/1201/6027 +f 1116/1201/6028 1119/1202/6029 1118/1203/6030 +f 1121/1205/6031 1120/1206/6032 1116/1201/6033 +f 1116/1201/6034 1117/1204/6035 1121/1205/6036 +f 1123/1208/6037 1122/1209/6038 1121/1205/6039 +f 1121/1205/6040 1124/1207/6041 1123/1208/6042 +f 1117/1204/6043 1118/1203/6044 1126/1210/6045 +f 1126/1210/6046 1125/1211/6047 1117/1204/6048 +f 1124/1207/6049 1121/1205/6050 1117/1204/6051 +f 1117/1204/6052 1125/1211/6053 1124/1207/6054 +f 707/793/6055 1129/792/6056 1127/1212/6057 +f 1127/1212/6058 1128/1213/6059 707/793/6060 +f 1131/1216/6061 1130/1217/6062 1133/1214/6063 +f 1133/1214/6064 1132/1215/6065 1131/1216/6066 +f 1135/1218/6067 1134/1219/6068 1131/1216/6069 +f 1131/1216/6070 1132/1215/6071 1135/1218/6072 +f 1130/1217/6073 1136/1221/6074 1137/1220/6075 +f 1137/1220/6076 1133/1214/6077 1130/1217/6078 +f 1136/1343/6079 1138/1344/6080 1139/1341/6081 +f 1139/1341/6082 1137/1342/6083 1136/1343/6084 +f 1138/1344/6085 1140/1346/6086 1141/1345/6087 +f 1141/1345/6088 1139/1341/6089 1138/1344/6090 +f 1141/1224/6091 1140/1225/6092 1134/1219/6093 +f 1134/1219/6094 1135/1218/6095 1141/1224/6096 +f 1142/1349/6097 1145/2379/6098 1144/1347/6099 +f 1144/1347/6100 1143/1348/6101 1142/1349/6102 +f 1146/2380/6103 1147/2381/6104 1145/2379/6105 +f 1145/2379/6106 1142/1349/6107 1146/2380/6108 +f 1126/1210/6109 1130/1217/6110 1131/1216/6111 +f 1131/1216/6112 1125/1211/6113 1126/1210/6114 +f 1125/1211/6115 1131/1216/6116 1134/1219/6117 +f 1134/1219/6118 1124/1207/6119 1125/1211/6120 +f 1148/1232/6121 1136/1221/6122 1130/1217/6123 +f 1130/1217/6124 1126/1210/6125 1148/1232/6126 +f 1145/2379/6127 1150/2384/6128 1149/2382/6129 +f 1149/2382/6130 1144/1347/6131 1145/2379/6132 +f 1147/2381/6133 1151/2385/6134 1150/2384/6135 +f 1150/2384/6136 1145/2379/6137 1147/2381/6138 +f 1124/1207/6139 1134/1219/6140 1140/1225/6141 +f 1140/1225/6142 1123/1208/6143 1124/1207/6144 +f 1142/1349/6145 1143/1348/6146 1152/2386/6147 +f 1152/2386/6148 1153/2387/6149 1142/1349/6150 +f 1146/2380/6151 1142/1349/6152 1153/2387/6153 +f 1153/2387/6154 1122/2388/6155 1146/2380/6156 +f 1147/2381/6157 1146/2380/6158 1122/2388/6159 +f 1122/2388/6160 1123/2389/6161 1147/2381/6162 +f 1151/2385/6163 1147/2381/6164 1123/2389/6165 +f 1123/2389/6166 1140/1346/6167 1151/2385/6168 +f 1150/2384/6169 1151/2385/6170 1140/1346/6171 +f 1140/1346/6172 1138/1344/6173 1150/2384/6174 +f 1149/2382/6175 1150/2384/6176 1138/1344/6177 +f 1138/1344/6178 1136/1343/6179 1149/2382/6180 +f 1144/1347/6181 1149/2382/6182 1136/1343/6183 +f 1136/1343/6184 1148/2390/6185 1144/1347/6186 +f 1143/1348/6187 1144/1347/6188 1148/2390/6189 +f 1148/2390/6190 1152/2386/6191 1143/1348/6192 +f 707/793/6193 1155/1239/6194 1154/1238/6195 +f 1154/1238/6196 706/790/6197 707/793/6198 +f 1128/1213/6199 1156/1240/6200 1155/1239/6201 +f 1155/1239/6202 707/793/6203 1128/1213/6204 +f 1154/1238/6205 1157/1241/6206 708/791/6207 +f 708/791/6208 706/790/6209 1154/1238/6210 +f 1159/2393/6211 1158/2394/6212 1161/2391/6213 +f 1161/2391/6214 1160/2392/6215 1159/2393/6216 +f 1158/2394/6217 1162/2396/6218 1163/2395/6219 +f 1163/2395/6220 1161/2391/6221 1158/2394/6222 +f 1164/1248/6223 1156/1240/6224 1128/1213/6225 +f 1128/1213/6226 1127/1212/6227 1164/1248/6228 +f 1133/1214/6229 1166/1250/6230 1165/1249/6231 +f 1165/1249/6232 1132/1215/6233 1133/1214/6234 +f 1132/1215/6235 1165/1249/6236 1167/1251/6237 +f 1167/1251/6238 1135/1218/6239 1132/1215/6240 +f 1137/1220/6241 1168/1252/6242 1166/1250/6243 +f 1166/1250/6244 1133/1214/6245 1137/1220/6246 +f 1169/2399/6247 1172/2400/6248 1171/2397/6249 +f 1171/2397/6250 1170/2398/6251 1169/2399/6252 +f 1173/2401/6253 1174/2402/6254 1172/2400/6255 +f 1172/2400/6256 1169/2399/6257 1173/2401/6258 +f 1135/1218/6259 1167/1251/6260 1175/1259/6261 +f 1175/1259/6262 1141/1224/6263 1135/1218/6264 +f 1166/1250/6265 1154/1238/6266 1155/1239/6267 +f 1155/1239/6268 1165/1249/6269 1166/1250/6270 +f 1165/1249/6271 1155/1239/6272 1156/1240/6273 +f 1156/1240/6274 1167/1251/6275 1165/1249/6276 +f 1168/1252/6277 1157/1241/6278 1154/1238/6279 +f 1154/1238/6280 1166/1250/6281 1168/1252/6282 +f 1172/2400/6283 1177/2404/6284 1176/2403/6285 +f 1176/2403/6286 1171/2397/6287 1172/2400/6288 +f 1174/2402/6289 1178/2405/6290 1177/2404/6291 +f 1177/2404/6292 1172/2400/6293 1174/2402/6294 +f 1167/1251/6295 1156/1240/6296 1164/1248/6297 +f 1164/1248/6298 1175/1259/6299 1167/1251/6300 +f 1169/2399/6301 1170/2398/6302 1137/1342/6303 +f 1137/1342/6304 1139/1341/6305 1169/2399/6306 +f 1173/2401/6307 1169/2399/6308 1139/1341/6309 +f 1139/1341/6310 1141/1345/6311 1173/2401/6312 +f 1174/2402/6313 1173/2401/6314 1141/1345/6315 +f 1141/1345/6316 1175/2406/6317 1174/2402/6318 +f 1178/2405/6319 1174/2402/6320 1175/2406/6321 +f 1175/2406/6322 1164/2407/6323 1178/2405/6324 +f 1177/2404/6325 1178/2405/6326 1164/2407/6327 +f 1164/2407/6328 1179/2408/6329 1177/2404/6330 +f 1176/2403/6331 1177/2404/6332 1179/2408/6333 +f 1179/2408/6334 1157/2409/6335 1176/2403/6336 +f 1171/2397/6337 1176/2403/6338 1157/2409/6339 +f 1157/2409/6340 1168/2410/6341 1171/2397/6342 +f 1170/2398/6343 1171/2397/6344 1168/2410/6345 +f 1168/2410/6346 1137/1342/6347 1170/2398/6348 +f 1181/2413/6349 1180/2414/6350 1129/2411/6351 +f 1129/2411/6352 708/2412/6353 1181/2413/6354 +f 1182/2415/6355 1181/2413/6356 708/2412/6357 +f 708/2412/6358 1157/2409/6359 1182/2415/6360 +f 1183/2416/6361 1182/2415/6362 1157/2409/6363 +f 1157/2409/6364 1179/2408/6365 1183/2416/6366 +f 1184/2417/6367 1183/2416/6368 1179/2408/6369 +f 1179/2408/6370 1164/2407/6371 1184/2417/6372 +f 1185/2419/6373 1184/2417/6374 1164/2407/6375 +f 1164/2407/6376 1127/2418/6377 1185/2419/6378 +f 1180/2414/6379 1185/2419/6380 1127/2418/6381 +f 1127/2418/6382 1129/2411/6383 1180/2414/6384 +f 1160/2392/6385 1161/2391/6386 1180/2414/6387 +f 1180/2414/6388 1181/2413/6389 1160/2392/6390 +f 1159/2393/6391 1160/2392/6392 1181/2413/6393 +f 1181/2413/6394 1182/2415/6395 1159/2393/6396 +f 1158/2394/6397 1159/2393/6398 1182/2415/6399 +f 1182/2415/6400 1183/2416/6401 1158/2394/6402 +f 1162/2396/6403 1158/2394/6404 1183/2416/6405 +f 1183/2416/6406 1184/2417/6407 1162/2396/6408 +f 1163/2395/6409 1162/2396/6410 1184/2417/6411 +f 1184/2417/6412 1185/2419/6413 1163/2395/6414 +f 1161/2391/6415 1163/2395/6416 1185/2419/6417 +f 1185/2419/6418 1180/2414/6419 1161/2391/6420 +f 741/824/6421 742/823/6422 1186/1270/6423 +f 1186/1270/6424 1187/1271/6425 741/824/6426 +f 1188/1274/6427 1191/1275/6428 1190/1272/6429 +f 1190/1272/6430 1189/1273/6431 1188/1274/6432 +f 1192/1276/6433 1112/1200/6434 712/795/6435 +f 712/795/6436 715/799/6437 1192/1276/6438 +f 1110/2420/6439 729/812/6440 730/811/6441 +f 730/811/6442 851/1337/6443 1110/2420/6444 +f 1194/2423/6445 1193/2424/6446 704/2421/6447 +f 704/2421/6448 705/2422/6449 1194/2423/6450 +f 728/813/6451 1114/1339/6452 1109/1336/6453 +f 1109/1336/6454 727/814/6455 728/813/6456 +f 1197/2426/6457 1196/2427/6458 1195/2425/6459 +f 1195/2425/6460 726/807/6461 1197/2426/6462 +f 725/808/6463 726/807/6464 1195/2425/6465 +f 1195/2425/6466 1115/1340/6467 725/808/6468 +f 1198/2430/6469 1118/2431/6470 1119/2428/6471 +f 1119/2428/6472 1199/2429/6473 1198/2430/6474 +f 1113/1338/6475 724/809/6476 1108/1335/6477 +f 1108/1335/6478 1107/1334/6479 1113/1338/6480 +f 1197/2426/6481 726/807/6482 723/810/6483 +f 723/810/6484 1200/2432/6485 1197/2426/6486 +f 1113/1338/6487 1201/2433/6488 723/810/6489 +f 723/810/6490 724/809/6491 1113/1338/6492 +f 1202/1277/6493 1186/1270/6494 742/823/6495 +f 742/823/6496 763/841/6497 1202/1277/6498 +f 853/939/6499 1203/1286/6500 1202/1277/6501 +f 1202/1277/6502 763/841/6503 853/939/6504 +f 1106/1332/6505 1115/1340/6506 1203/2434/6507 +f 1203/2434/6508 853/1333/6509 1106/1332/6510 +f 1204/1287/6511 1192/1276/6512 715/799/6513 +f 715/799/6514 716/798/6515 1204/1287/6516 +f 1205/2435/6517 1199/2429/6518 1115/1340/6519 +f 1115/1340/6520 1195/2425/6521 1205/2435/6522 +f 1206/2436/6523 1205/2435/6524 1195/2425/6525 +f 1195/2425/6526 1196/2427/6527 1206/2436/6528 +f 1207/2438/6529 1206/2436/6530 1196/2427/6531 +f 1196/2427/6532 1208/2437/6533 1207/2438/6534 +f 1209/2440/6535 1207/2438/6536 1208/2437/6537 +f 1208/2437/6538 1191/2439/6539 1209/2440/6540 +f 1210/1288/6541 1209/1293/6542 1191/1275/6543 +f 1191/1275/6544 1188/1274/6545 1210/1288/6546 +f 1187/1271/6547 1211/1294/6548 1204/1287/6549 +f 1204/1287/6550 716/798/6551 1187/1271/6552 +f 1211/1294/6553 1210/1288/6554 1188/1274/6555 +f 1188/1274/6556 1204/1287/6557 1211/1294/6558 +f 1213/1295/6559 1212/1296/6560 1120/1206/6561 +f 1120/1206/6562 1121/1205/6563 1213/1295/6564 +f 1153/2387/6565 1152/2386/6566 1206/2436/6567 +f 1206/2436/6568 1207/2438/6569 1153/2387/6570 +f 1209/2440/6571 1122/2388/6572 1153/2387/6573 +f 1153/2387/6574 1207/2438/6575 1209/2440/6576 +f 1214/1297/6577 1122/1209/6578 1209/1293/6579 +f 1209/1293/6580 1210/1288/6581 1214/1297/6582 +f 1211/1294/6583 1213/1295/6584 1214/1297/6585 +f 1214/1297/6586 1210/1288/6587 1211/1294/6588 +f 1187/1271/6589 1212/1296/6590 1213/1295/6591 +f 1213/1295/6592 1211/1294/6593 1187/1271/6594 +f 1186/1270/6595 1120/1206/6596 1212/1296/6597 +f 1212/1296/6598 1187/1271/6599 1186/1270/6600 +f 1203/1286/6601 1119/1202/6602 1116/1201/6603 +f 1116/1201/6604 1202/1277/6605 1203/1286/6606 +f 1199/2429/6607 1119/2428/6608 1203/2434/6609 +f 1203/2434/6610 1115/1340/6611 1199/2429/6612 +f 1206/2436/6613 1152/2386/6614 1215/2441/6615 +f 1215/2441/6616 1205/2435/6617 1206/2436/6618 +f 1116/1201/6619 1120/1206/6620 1186/1270/6621 +f 1186/1270/6622 1202/1277/6623 1116/1201/6624 +f 1198/2430/6625 1199/2429/6626 1205/2435/6627 +f 1205/2435/6628 1215/2441/6629 1198/2430/6630 +f 1198/2430/6631 1215/2441/6632 1216/2442/6633 +f 1216/2442/6634 1118/2431/6635 1198/2430/6636 +f 702/789/6637 703/788/6638 1217/1298/6639 +f 1217/1298/6640 1218/1300/6641 702/789/6642 +f 755/839/6643 756/836/6644 719/803/6645 +f 719/803/6646 1111/1196/6647 755/839/6648 +f 1194/2423/6649 729/812/6650 1110/2420/6651 +f 1110/2420/6652 1193/2424/6653 1194/2423/6654 +f 1219/1301/6655 1193/1302/6656 1110/1195/6657 +f 1110/1195/6658 1111/1196/6659 1219/1301/6660 +f 717/802/6661 1219/1301/6662 1111/1196/6663 +f 1111/1196/6664 719/803/6665 717/802/6666 +f 716/798/6667 713/801/6668 741/824/6669 +f 741/824/6670 1187/1271/6671 716/798/6672 +f 715/799/6673 712/795/6674 709/794/6675 +f 709/794/6676 714/800/6677 715/799/6678 +f 1112/1200/6679 1192/1276/6680 1189/1273/6681 +f 1189/1273/6682 1220/1303/6683 1112/1200/6684 +f 1204/1287/6685 1188/1274/6686 1189/1273/6687 +f 1189/1273/6688 1192/1276/6689 1204/1287/6690 +f 1217/1298/6691 1221/1304/6692 1220/1303/6693 +f 1220/1303/6694 1218/1300/6695 1217/1298/6696 +f 703/788/6697 704/787/6698 1193/1302/6699 +f 1193/1302/6700 1219/1301/6701 703/788/6702 +f 717/802/6703 1217/1298/6704 703/788/6705 +f 703/788/6706 1219/1301/6707 717/802/6708 +f 1221/1304/6709 1217/1298/6710 717/802/6711 +f 717/802/6712 718/804/6713 1221/1304/6714 +f 1112/1200/6715 1220/1303/6716 1221/1304/6717 +f 1221/1304/6718 718/804/6719 1112/1200/6720 +f 1190/1272/6721 1218/1300/6722 1220/1303/6723 +f 1220/1303/6724 1189/1273/6725 1190/1272/6726 +f 1223/2444/6727 1222/2445/6728 705/2574/6729 +f 705/2574/6730 702/2443/6731 1223/2444/6732 +f 1224/2447/6733 1223/2444/6734 702/2443/6735 +f 702/2443/6736 1218/2446/6737 1224/2447/6738 +f 1225/2449/6739 1224/2447/6740 1218/2446/6741 +f 1218/2446/6742 1190/2448/6743 1225/2449/6744 +f 1226/2450/6745 1225/2449/6746 1190/2448/6747 +f 1190/2448/6748 1191/2439/6749 1226/2450/6750 +f 1227/2451/6751 1226/2450/6752 1191/2439/6753 +f 1191/2439/6754 1208/2437/6755 1227/2451/6756 +f 1228/2452/6757 1227/2451/6758 1208/2437/6759 +f 1208/2437/6760 1196/2427/6761 1228/2452/6762 +f 1229/2453/6763 1228/2452/6764 1196/2427/6765 +f 1196/2427/6766 1197/2426/6767 1229/2453/6768 +f 1230/2454/6769 1229/2453/6770 1197/2426/6771 +f 1197/2426/6772 1200/2432/6773 1230/2454/6774 +f 1231/2456/6775 1230/2454/6776 1200/2432/6777 +f 1200/2432/6778 1232/2455/6779 1231/2456/6780 +f 1194/2423/6781 705/2422/6782 1233/2457/6783 +f 1233/2457/6784 1234/2458/6785 1194/2423/6786 +f 1201/2433/6787 1232/2455/6788 1200/2432/6789 +f 1200/2432/6790 723/810/6791 1201/2433/6792 +f 1235/2460/6793 1222/2445/6794 1223/2444/6795 +f 1223/2444/6796 1236/2459/6797 1235/2460/6798 +f 1237/2461/6799 1236/2459/6800 1223/2444/6801 +f 1223/2444/6802 1224/2447/6803 1237/2461/6804 +f 1237/2461/6805 1224/2447/6806 1225/2449/6807 +f 1225/2449/6808 1238/2462/6809 1237/2461/6810 +f 1238/2462/6811 1225/2449/6812 1226/2450/6813 +f 1226/2450/6814 1239/2463/6815 1238/2462/6816 +f 1239/2463/6817 1226/2450/6818 1227/2451/6819 +f 1227/2451/6820 1240/2464/6821 1239/2463/6822 +f 1241/2465/6823 1240/2464/6824 1227/2451/6825 +f 1227/2451/6826 1228/2452/6827 1241/2465/6828 +f 1242/2466/6829 1241/2465/6830 1228/2452/6831 +f 1228/2452/6832 1229/2453/6833 1242/2466/6834 +f 1243/2467/6835 1242/2466/6836 1229/2453/6837 +f 1229/2453/6838 1230/2454/6839 1243/2467/6840 +f 1243/2467/6841 1230/2454/6842 1231/2456/6843 +f 1231/2456/6844 1244/2468/6845 1243/2467/6846 +f 1244/2468/6847 1231/2456/6848 1222/2575/6849 +f 1222/2575/6850 1235/2576/6851 1244/2468/6852 +f 1213/1295/6853 1121/1205/6854 1122/1209/6855 +f 1122/1209/6856 1214/1297/6857 1213/1295/6858 +f 1118/1203/6859 1216/1305/6860 1148/1232/6861 +f 1148/1232/6862 1126/1210/6863 1118/1203/6864 +f 1148/2390/6865 1216/2442/6866 1215/2441/6867 +f 1215/2441/6868 1152/2386/6869 1148/2390/6870 +f 1247/2471/6871 1246/2472/6872 1245/2469/6873 +f 1245/2469/6874 1248/2470/6875 1247/2471/6876 +f 1250/2473/6877 1249/2474/6878 1247/2471/6879 +f 1247/2471/6880 1248/2470/6881 1250/2473/6882 +f 1251/2476/6883 1249/2474/6884 1250/2473/6885 +f 1250/2473/6886 1252/2475/6887 1251/2476/6888 +f 1246/2578/6889 1261/2478/6890 1260/2477/6891 +f 1260/2477/6892 1245/2577/6893 1246/2578/6894 +f 1194/2423/6895 1234/2458/6896 728/813/6897 +f 728/813/6898 729/812/6899 1194/2423/6900 +f 1262/2479/6901 1114/1339/6902 728/813/6903 +f 728/813/6904 1234/2458/6905 1262/2479/6906 +f 1114/1339/6907 1262/2479/6908 1201/2433/6909 +f 1201/2433/6910 1113/1338/6911 1114/1339/6912 +f 1263/2480/6913 1262/2479/6914 1234/2458/6915 +f 1234/2458/6916 1233/2457/6917 1263/2480/6918 +f 1264/2481/6919 1233/2457/6920 705/2422/6921 +f 705/2422/6922 1222/2575/6923 1264/2481/6924 +f 1231/2456/6925 1265/2482/6926 1264/2481/6927 +f 1264/2481/6928 1222/2575/6929 1231/2456/6930 +f 1263/2480/6931 1233/2457/6932 1264/2481/6933 +f 1264/2481/6934 1265/2482/6935 1263/2480/6936 +f 1232/2455/6937 1263/2480/6938 1265/2482/6939 +f 1265/2482/6940 1231/2456/6941 1232/2455/6942 +f 1262/2479/6943 1263/2480/6944 1232/2455/6945 +f 1232/2455/6946 1201/2433/6947 1262/2479/6948 +f 1260/2477/6949 1258/2483/6950 1243/2467/6951 +f 1243/2467/6952 1244/2468/6953 1260/2477/6954 +f 1257/2484/6955 1242/2466/6956 1243/2467/6957 +f 1243/2467/6958 1258/2483/6959 1257/2484/6960 +f 1256/2486/6961 1241/2465/6962 1242/2466/6963 +f 1242/2466/6964 1257/2484/6965 1256/2486/6966 +f 1255/2487/6967 1240/2464/6968 1241/2465/6969 +f 1241/2465/6970 1256/2486/6971 1255/2487/6972 +f 1254/2488/6973 1239/2463/6974 1240/2464/6975 +f 1240/2464/6976 1255/2487/6977 1254/2488/6978 +f 1252/2475/6979 1254/2488/6980 1253/2489/6981 +f 1253/2489/6982 1251/2476/6983 1252/2475/6984 +f 1237/2461/6985 1238/2462/6986 1252/2475/6987 +f 1252/2475/6988 1250/2473/6989 1237/2461/6990 +f 1236/2459/6991 1237/2461/6992 1250/2473/6993 +f 1250/2473/6994 1248/2470/6995 1236/2459/6996 +f 1245/2469/6997 1235/2460/6998 1236/2459/6999 +f 1236/2459/7000 1248/2470/7001 1245/2469/7002 +f 1244/2468/7003 1235/2576/7004 1245/2577/7005 +f 1245/2577/7006 1260/2477/7007 1244/2468/7008 +f 1260/2477/7009 1261/2478/7010 1259/2490/7011 +f 1259/2490/7012 1258/2483/7013 1260/2477/7014 +f 1252/2475/7015 1238/2462/7016 1239/2463/7017 +f 1239/2463/7018 1254/2488/7019 1252/2475/7020 +f 587/1398/7021 437/519/7022 443/526/7023 +f 443/526/7024 444/525/7025 587/1398/7026 +f 645/734/7027 640/729/7028 450/535/7029 +f 450/535/7030 451/534/7031 645/734/7032 +f 621/709/7033 624/713/7034 650/739/7035 +f 650/739/7036 620/710/7037 621/709/7038 +f 622/711/7039 623/714/7040 624/2605/7041 +f 624/2605/7042 621/2603/7043 622/711/7044 +f 424/507/7045 420/504/7046 629/718/7047 +f 629/718/7048 622/711/7049 424/507/7050 +f 420/504/7051 421/503/7052 632/721/7053 +f 632/721/7054 629/718/7055 420/504/7056 +f 421/503/7057 604/690/7058 635/724/7059 +f 635/724/7060 632/721/7061 421/503/7062 +f 604/690/7063 605/691/7064 638/727/7065 +f 638/727/7066 635/724/7067 604/690/7068 +f 605/691/7069 449/533/7070 450/535/7071 +f 450/535/7072 638/727/7073 605/691/7074 +f 651/740/7075 617/706/7076 618/707/7077 +f 618/707/7078 620/710/7079 651/740/7080 +f 451/534/7081 446/532/7082 617/706/7083 +f 617/706/7084 651/740/7085 451/534/7086 +f 607/693/7087 608/2569/7088 448/530/7089 +f 448/530/7090 449/533/7091 607/693/7092 +f 642/730/7093 1266/2570/7094 671/759/7095 +f 671/759/7096 641/731/7097 642/730/7098 +f 643/733/7099 1267/2571/7100 1266/2570/7101 +f 1266/2570/7102 642/730/7103 643/733/7104 +f 1268/2572/7105 1267/2571/7106 643/733/7107 +f 643/733/7108 646/736/7109 1268/2572/7110 +f 655/746/7111 1268/2572/7112 646/736/7113 +f 646/736/7114 652/741/7115 655/746/7116 +f 654/2607/7117 655/746/7118 652/741/7119 +f 652/741/7120 653/742/7121 654/2607/7122 +f 653/2606/7123 625/712/7124 626/715/7125 +f 626/715/7126 660/749/7127 653/2606/7128 +f 626/715/7129 627/716/7130 663/752/7131 +f 663/752/7132 660/749/7133 626/715/7134 +f 627/716/7135 630/719/7136 666/755/7137 +f 666/755/7138 663/752/7139 627/716/7140 +f 630/719/7141 633/722/7142 669/758/7143 +f 669/758/7144 666/755/7145 630/719/7146 +f 633/722/7147 636/725/7148 641/731/7149 +f 641/731/7150 669/758/7151 633/722/7152 +f 657/744/7153 688/776/7154 686/775/7155 +f 686/775/7156 656/745/7157 657/744/7158 +f 658/748/7159 690/778/7160 688/2609/7161 +f 688/2609/7162 657/2608/7163 658/748/7164 +f 661/751/7165 692/1351/7166 690/778/7167 +f 690/778/7168 658/748/7169 661/751/7170 +f 664/754/7171 694/2566/7172 692/1351/7173 +f 692/1351/7174 661/751/7175 664/754/7176 +f 673/762/7177 694/2566/7178 664/754/7179 +f 664/754/7180 667/757/7181 673/762/7182 +f 672/763/7183 673/762/7184 667/757/7185 +f 667/757/7186 670/760/7187 672/763/7188 +f 671/759/7189 1266/2570/7190 678/767/7191 +f 678/767/7192 670/760/7193 671/759/7194 +f 1266/2570/7195 1267/2571/7196 681/770/7197 +f 681/770/7198 678/767/7199 1266/2570/7200 +f 1267/2571/7201 1268/2572/7202 684/773/7203 +f 684/773/7204 681/770/7205 1267/2571/7206 +f 684/773/7207 1268/2572/7208 655/746/7209 +f 655/746/7210 656/745/7211 684/773/7212 +f 1270/1432/7213 1269/478/7214 397/475/7215 +f 397/475/7216 1271/1431/7217 1270/1432/7218 +f 1270/1432/7219 1271/1431/7220 1272/1543/7221 +f 1272/1543/7222 1273/1544/7223 1270/1432/7224 +f 1276/1360/7225 1275/1361/7226 1274/1358/7227 +f 1274/1358/7228 1277/1359/7229 1276/1360/7230 +f 1279/1362/7231 1278/1363/7232 1275/1361/7233 +f 1275/1361/7234 1276/1360/7235 1279/1362/7236 +f 1276/1360/7237 1277/1359/7238 1280/1364/7239 +f 1280/1364/7240 1279/1362/7241 1276/1360/7242 +f 1283/1367/7243 1282/1368/7244 1281/1365/7245 +f 1281/1365/7246 1284/1366/7247 1283/1367/7248 +f 1283/1367/7249 1284/1366/7250 1285/1369/7251 +f 1285/1369/7252 1286/1370/7253 1283/1367/7254 +f 1283/1367/7255 1286/1370/7256 1287/1371/7257 +f 1287/1371/7258 1288/1372/7259 1283/1367/7260 +f 1283/1367/7261 1288/1372/7262 1289/1373/7263 +f 1289/1373/7264 1290/1374/7265 1283/1367/7266 +f 1283/1367/7267 1290/1374/7268 1291/1375/7269 +f 1291/1375/7270 1282/1368/7271 1283/1367/7272 +f 1294/1376/7273 1293/1377/7274 1292/479/7275 +f 1292/479/7276 1295/686/7277 1294/1376/7278 +f 1294/1376/7279 1297/1379/7280 1296/1378/7281 +f 1296/1378/7282 1293/1377/7283 1294/1376/7284 +f 1300/1384/7285 1299/1385/7286 1298/1382/7287 +f 1298/1382/7288 1301/1383/7289 1300/1384/7290 +f 1303/2586/7291 1302/1387/7292 1299/1385/7293 +f 1299/1385/7294 1300/1384/7295 1303/2586/7296 +f 1300/1570/7297 1301/1571/7298 1304/1541/7299 +f 1304/1541/7300 1303/1542/7301 1300/1570/7302 +f 1307/1547/7303 1306/1548/7304 1305/1545/7305 +f 1305/1545/7306 1308/1546/7307 1307/1547/7308 +f 1307/1547/7309 1310/1551/7310 1309/1550/7311 +f 1309/1550/7312 1306/1548/7313 1307/1547/7314 +f 1307/1547/7315 1308/1546/7316 1273/1544/7317 +f 1273/1544/7318 1311/1552/7319 1307/1547/7320 +f 1308/1546/7321 1305/1545/7322 1312/1553/7323 +f 1312/1553/7324 1313/1554/7325 1308/1546/7326 +f 1316/1557/7327 1315/1558/7328 1314/1555/7329 +f 1314/1555/7330 1317/1556/7331 1316/1557/7332 +f 1317/1556/7333 1312/1553/7334 1305/1545/7335 +f 1305/1545/7336 1316/1557/7337 1317/1556/7338 +f 1317/1556/7339 1314/1555/7340 1318/1559/7341 +f 1318/1559/7342 1312/1553/7343 1317/1556/7344 +f 1321/1403/7345 1320/1404/7346 1319/1380/7347 +f 1319/1380/7348 1322/1381/7349 1321/1403/7350 +f 1323/1406/7351 1321/1403/7352 1322/1381/7353 +f 1322/1381/7354 1324/1405/7355 1323/1406/7356 +f 1306/1548/7357 1309/1550/7358 1316/1557/7359 +f 1316/1557/7360 1305/1545/7361 1306/1548/7362 +f 1327/1562/7363 1326/1563/7364 1325/1560/7365 +f 1325/1560/7366 1328/1561/7367 1327/1562/7368 +f 1327/1562/7369 1330/1566/7370 1329/1564/7371 +f 1329/1564/7372 1331/1565/7373 1327/1562/7374 +f 1327/1562/7375 1331/1565/7376 1332/1567/7377 +f 1332/1567/7378 1326/1563/7379 1327/1562/7380 +f 1334/1418/7381 1333/1419/7382 1329/1413/7383 +f 1329/1413/7384 1335/1417/7385 1334/1418/7386 +f 1334/1418/7387 1274/1358/7388 1275/1361/7389 +f 1275/1361/7390 1278/1363/7391 1334/1418/7392 +f 1334/1418/7393 1278/1363/7394 1336/1420/7395 +f 1336/1420/7396 1333/1419/7397 1334/1418/7398 +f 1290/1374/7399 1289/1373/7400 1337/1421/7401 +f 1337/1421/7402 1291/1375/7403 1290/1374/7404 +f 1335/1569/7405 1329/1564/7406 1330/1566/7407 +f 1330/1566/7408 1338/1568/7409 1335/1569/7410 +f 1335/1417/7411 1338/1423/7412 1339/1422/7413 +f 1339/1422/7414 1334/1418/7415 1335/1417/7416 +f 1342/1408/7417 1341/1424/7418 1340/1407/7419 +f 1340/1407/7420 1297/1379/7421 1342/1408/7422 +f 1345/1574/7423 1344/1575/7424 1343/1572/7425 +f 1343/1572/7426 1346/1573/7427 1345/1574/7428 +f 1345/1687/7429 1346/2491/7430 1347/1598/7431 +f 1347/1598/7432 1348/1686/7433 1345/1687/7434 +f 1346/1573/7435 1343/1572/7436 1349/1576/7437 +f 1349/1576/7438 1350/1577/7439 1346/1573/7440 +f 1346/2491/7441 1350/2493/7442 1351/2492/7443 +f 1351/2492/7444 1347/1598/7445 1346/2491/7446 +f 1351/1435/7447 1350/1436/7448 1352/1433/7449 +f 1352/1433/7450 1353/1434/7451 1351/1435/7452 +f 1351/1435/7453 1353/1434/7454 1339/1422/7455 +f 1339/1422/7456 1338/1423/7457 1351/1435/7458 +f 1351/2492/7459 1338/1568/7460 1330/1566/7461 +f 1330/1566/7462 1347/1598/7463 1351/2492/7464 +f 1353/1434/7465 1352/1433/7466 1354/1437/7467 +f 1354/1437/7468 1355/1438/7469 1353/1434/7470 +f 1353/1434/7471 1355/1438/7472 1356/1439/7473 +f 1356/1439/7474 1339/1422/7475 1353/1434/7476 +f 1356/1439/7477 1355/1438/7478 1357/1440/7479 +f 1357/1440/7480 1358/1441/7481 1356/1439/7482 +f 1356/1439/7483 1358/1441/7484 1277/1359/7485 +f 1277/1359/7486 1274/1358/7487 1356/1439/7488 +f 1356/1439/7489 1274/1358/7490 1334/1418/7491 +f 1334/1418/7492 1339/1422/7493 1356/1439/7494 +f 1358/1441/7495 1357/1440/7496 1359/1442/7497 +f 1359/1442/7498 1360/1443/7499 1358/1441/7500 +f 1358/1441/7501 1360/1443/7502 1361/1444/7503 +f 1361/1444/7504 1277/1359/7505 1358/1441/7506 +f 1361/1444/7507 1360/1443/7508 1362/1445/7509 +f 1362/1445/7510 1363/1446/7511 1361/1444/7512 +f 1361/1444/7513 1363/1446/7514 1364/1447/7515 +f 1364/1447/7516 1365/1448/7517 1361/1444/7518 +f 1361/1444/7519 1365/1448/7520 1280/1364/7521 +f 1280/1364/7522 1277/1359/7523 1361/1444/7524 +f 1365/1448/7525 1364/1447/7526 1366/1449/7527 +f 1366/1449/7528 1337/1421/7529 1365/1448/7530 +f 1365/1448/7531 1337/1421/7532 1289/1373/7533 +f 1289/1373/7534 1280/1364/7535 1365/1448/7536 +f 1364/1447/7537 1363/1446/7538 1367/1450/7539 +f 1367/1450/7540 1368/1451/7541 1364/1447/7542 +f 1364/1447/7543 1368/1451/7544 1369/1452/7545 +f 1369/1452/7546 1366/1449/7547 1364/1447/7548 +f 1368/1451/7549 1367/1450/7550 1370/1453/7551 +f 1370/1453/7552 1371/1454/7553 1368/1451/7554 +f 1368/1451/7555 1371/1454/7556 1372/1455/7557 +f 1372/1455/7558 1369/1452/7559 1368/1451/7560 +f 1372/1455/7561 1371/1454/7562 1373/1456/7563 +f 1373/1456/7564 1374/1457/7565 1372/1455/7566 +f 1372/1455/7567 1374/1457/7568 1375/1458/7569 +f 1375/1458/7570 1376/1459/7571 1372/1455/7572 +f 1372/1455/7573 1376/1459/7574 1377/1460/7575 +f 1377/1460/7576 1369/1452/7577 1372/1455/7578 +f 1376/1459/7579 1375/1458/7580 1378/1461/7581 +f 1378/1461/7582 1379/1462/7583 1376/1459/7584 +f 1376/1459/7585 1379/1462/7586 1380/1463/7587 +f 1380/1463/7588 1377/1460/7589 1376/1459/7590 +f 1380/1463/7591 1382/1465/7592 1381/1464/7593 +f 1381/1464/7594 1377/1460/7595 1380/1463/7596 +f 1380/2589/7597 1379/2588/7598 1383/1466/7599 +f 1383/1466/7600 1384/1467/7601 1380/2589/7602 +f 1380/2589/7603 1384/1467/7604 1385/1468/7605 +f 1385/1468/7606 1382/2590/7607 1380/2589/7608 +f 1383/2591/7609 1379/1462/7610 1378/1461/7611 +f 1378/1461/7612 1386/1469/7613 1383/2591/7614 +f 1383/2591/7615 1386/1469/7616 1387/1470/7617 +f 1387/1470/7618 1388/1471/7619 1383/2591/7620 +f 1383/1466/7621 1388/2593/7622 1389/1472/7623 +f 1389/1472/7624 1384/1467/7625 1383/1466/7626 +f 1388/2593/7627 1387/2592/7628 1390/1473/7629 +f 1390/1473/7630 1391/1474/7631 1388/2593/7632 +f 1388/2593/7633 1391/1474/7634 1392/1475/7635 +f 1392/1475/7636 1389/1472/7637 1388/2593/7638 +f 1392/1475/7639 1394/1477/7640 1393/1476/7641 +f 1393/1476/7642 1389/1472/7643 1392/1475/7644 +f 1392/1475/7645 1391/1474/7646 1395/1478/7647 +f 1395/1478/7648 1396/1479/7649 1392/1475/7650 +f 1392/1475/7651 1396/1479/7652 1397/1480/7653 +f 1397/1480/7654 1394/1477/7655 1392/1475/7656 +f 1397/1480/7657 1399/1482/7658 1398/1481/7659 +f 1398/1481/7660 1394/1477/7661 1397/1480/7662 +f 1397/1480/7663 1396/1479/7664 1400/1483/7665 +f 1400/1483/7666 1401/1484/7667 1397/1480/7668 +f 1397/1480/7669 1401/1484/7670 1402/1485/7671 +f 1402/1485/7672 1399/1482/7673 1397/1480/7674 +f 1402/1485/7675 1404/1487/7676 1403/1486/7677 +f 1403/1486/7678 1399/1482/7679 1402/1485/7680 +f 1402/1485/7681 1401/1484/7682 1405/1488/7683 +f 1405/1488/7684 1359/1442/7685 1402/1485/7686 +f 1402/1485/7687 1359/1442/7688 1357/1440/7689 +f 1357/1440/7690 1404/1487/7691 1402/1485/7692 +f 1405/1488/7693 1401/1484/7694 1400/1483/7695 +f 1400/1483/7696 1406/1489/7697 1405/1488/7698 +f 1405/1488/7699 1406/1489/7700 1407/1490/7701 +f 1407/1490/7702 1362/1445/7703 1405/1488/7704 +f 1405/1488/7705 1362/1445/7706 1360/1443/7707 +f 1360/1443/7708 1359/1442/7709 1405/1488/7710 +f 1407/1490/7711 1406/1489/7712 1408/1491/7713 +f 1408/1491/7714 1409/1492/7715 1407/1490/7716 +f 1407/1490/7717 1409/1492/7718 1370/1453/7719 +f 1370/1453/7720 1367/1450/7721 1407/1490/7722 +f 1407/1490/7723 1367/1450/7724 1363/1446/7725 +f 1363/1446/7726 1362/1445/7727 1407/1490/7728 +f 1409/1492/7729 1408/1491/7730 1410/1493/7731 +f 1410/1493/7732 1411/1494/7733 1409/1492/7734 +f 1409/1492/7735 1411/1494/7736 1412/1495/7737 +f 1412/1495/7738 1370/1453/7739 1409/1492/7740 +f 1412/1495/7741 1411/1494/7742 1413/1496/7743 +f 1413/1496/7744 1414/1497/7745 1412/1495/7746 +f 1412/1495/7747 1414/1497/7748 1415/1498/7749 +f 1415/1498/7750 1373/1456/7751 1412/1495/7752 +f 1412/1495/7753 1373/1456/7754 1371/1454/7755 +f 1371/1454/7756 1370/1453/7757 1412/1495/7758 +f 1415/1498/7759 1416/1499/7760 1374/1457/7761 +f 1374/1457/7762 1373/1456/7763 1415/1498/7764 +f 1416/1499/7765 1417/1500/7766 1375/1458/7767 +f 1375/1458/7768 1374/1457/7769 1416/1499/7770 +f 1417/1500/7771 1418/1501/7772 1378/1461/7773 +f 1378/1461/7774 1375/1458/7775 1417/1500/7776 +f 1418/1501/7777 1419/1502/7778 1386/1469/7779 +f 1386/1469/7780 1378/1461/7781 1418/1501/7782 +f 1419/1502/7783 1420/1503/7784 1387/1470/7785 +f 1387/1470/7786 1386/1469/7787 1419/1502/7788 +f 1420/2594/7789 1421/1504/7790 1390/1473/7791 +f 1390/1473/7792 1387/2592/7793 1420/2594/7794 +f 1421/1504/7795 1423/1506/7796 1422/1505/7797 +f 1422/1505/7798 1390/1473/7799 1421/1504/7800 +f 1422/1505/7801 1395/1478/7802 1391/1474/7803 +f 1391/1474/7804 1390/1473/7805 1422/1505/7806 +f 1422/1505/7807 1423/1506/7808 1424/1507/7809 +f 1424/1507/7810 1425/1508/7811 1422/1505/7812 +f 1422/1505/7813 1425/1508/7814 1426/1509/7815 +f 1426/1509/7816 1395/1478/7817 1422/1505/7818 +f 1426/1509/7819 1400/1483/7820 1396/1479/7821 +f 1396/1479/7822 1395/1478/7823 1426/1509/7824 +f 1426/1509/7825 1425/1508/7826 1410/1493/7827 +f 1410/1493/7828 1408/1491/7829 1426/1509/7830 +f 1426/1509/7831 1408/1491/7832 1406/1489/7833 +f 1406/1489/7834 1400/1483/7835 1426/1509/7836 +f 1425/1508/7837 1424/1507/7838 1427/1510/7839 +f 1427/1510/7840 1410/1493/7841 1425/1508/7842 +f 1427/1510/7843 1413/1496/7844 1411/1494/7845 +f 1411/1494/7846 1410/1493/7847 1427/1510/7848 +f 1403/1486/7849 1429/1513/7850 1428/1511/7851 +f 1428/1511/7852 1430/1512/7853 1403/1486/7854 +f 1403/1486/7855 1430/1512/7856 1398/1481/7857 +f 1398/1481/7858 1399/1482/7859 1403/1486/7860 +f 1403/1486/7861 1404/1487/7862 1354/1437/7863 +f 1354/1437/7864 1429/1513/7865 1403/1486/7866 +f 1430/1512/7867 1428/1511/7868 1431/1514/7869 +f 1431/1514/7870 1432/1515/7871 1430/1512/7872 +f 1430/1512/7873 1432/1515/7874 1433/1516/7875 +f 1433/1516/7876 1398/1481/7877 1430/1512/7878 +f 1433/1516/7879 1432/1515/7880 1434/1517/7881 +f 1434/1517/7882 1435/1518/7883 1433/1516/7884 +f 1433/1516/7885 1435/1518/7886 1436/1519/7887 +f 1436/1519/7888 1393/1476/7889 1433/1516/7890 +f 1433/1516/7891 1393/1476/7892 1394/1477/7893 +f 1394/1477/7894 1398/1481/7895 1433/1516/7896 +f 1434/1517/7897 1298/1382/7898 1299/1385/7899 +f 1299/1385/7900 1437/1520/7901 1434/1517/7902 +f 1434/1517/7903 1437/1520/7904 1385/1468/7905 +f 1385/1468/7906 1435/1518/7907 1434/1517/7908 +f 1434/1517/7909 1432/1515/7910 1431/1514/7911 +f 1431/1514/7912 1298/1382/7913 1434/1517/7914 +f 1437/1520/7915 1299/1385/7916 1302/1387/7917 +f 1302/1387/7918 1438/1521/7919 1437/1520/7920 +f 1437/1520/7921 1438/1521/7922 1382/2590/7923 +f 1382/2590/7924 1385/1468/7925 1437/1520/7926 +f 1438/2595/7927 1302/2587/7928 1284/1366/7929 +f 1284/1366/7930 1281/1365/7931 1438/2595/7932 +f 1438/2595/7933 1281/1365/7934 1381/1464/7935 +f 1381/1464/7936 1382/1465/7937 1438/2595/7938 +f 1431/1514/7939 1439/1522/7940 1301/1383/7941 +f 1301/1383/7942 1298/1382/7943 1431/1514/7944 +f 1431/1514/7945 1428/1511/7946 1440/1523/7947 +f 1440/1523/7948 1439/1522/7949 1431/1514/7950 +f 1440/1580/7951 1442/1581/7952 1441/1578/7953 +f 1441/1578/7954 1439/1579/7955 1440/1580/7956 +f 1440/1523/7957 1428/1511/7958 1429/1513/7959 +f 1429/1513/7960 1443/1524/7961 1440/1523/7962 +f 1440/1580/7963 1443/1582/7964 1349/1576/7965 +f 1349/1576/7966 1442/1581/7967 1440/1580/7968 +f 1443/1524/7969 1429/1513/7970 1354/1437/7971 +f 1354/1437/7972 1352/1433/7973 1443/1524/7974 +f 1443/1524/7975 1352/1433/7976 1350/1436/7977 +f 1350/1436/7978 1349/1527/7979 1443/1524/7980 +f 1441/1578/7981 1445/1585/7982 1444/1583/7983 +f 1444/1583/7984 1446/1584/7985 1441/1578/7986 +f 1441/1578/7987 1446/1584/7988 1301/1571/7989 +f 1301/1571/7990 1439/1579/7991 1441/1578/7992 +f 1441/1578/7993 1442/1581/7994 1447/1586/7995 +f 1447/1586/7996 1445/1585/7997 1441/1578/7998 +f 1446/1584/7999 1444/1583/8000 1448/1587/8001 +f 1448/1587/8002 1449/1588/8003 1446/1584/8004 +f 1446/1584/8005 1449/1588/8006 1304/1541/8007 +f 1304/1541/8008 1301/1571/8009 1446/1584/8010 +f 1449/1588/8011 1448/1587/8012 1450/1690/8013 +f 1450/1690/8014 1451/1691/8015 1449/1588/8016 +f 1449/1588/8017 1451/1691/8018 1452/2536/8019 +f 1452/2536/8020 1304/1541/8021 1449/1588/8022 +f 1452/2536/8023 1451/1691/8024 1453/2537/8025 +f 1453/2537/8026 1454/2538/8027 1452/2536/8028 +f 1452/2536/8029 1454/2538/8030 1455/2539/8031 +f 1455/2539/8032 1456/2540/8033 1452/2536/8034 +f 1452/2536/8035 1456/2540/8036 1303/1542/8037 +f 1303/1542/8038 1304/1541/8039 1452/2536/8040 +f 1456/2540/8041 1455/2539/8042 1457/2541/8043 +f 1457/2541/8044 1458/2542/8045 1456/2540/8046 +f 1456/2540/8047 1458/2542/8048 1285/2543/8049 +f 1285/2543/8050 1303/1542/8051 1456/2540/8052 +f 1458/2497/8053 1457/2498/8054 1459/2495/8055 +f 1459/2495/8056 1460/2496/8057 1458/2497/8058 +f 1458/2497/8059 1460/2496/8060 1286/2499/8061 +f 1286/2499/8062 1285/2501/8063 1458/2497/8064 +f 1460/2496/8065 1459/2495/8066 1461/2502/8067 +f 1461/2502/8068 1462/2503/8069 1460/2496/8070 +f 1460/2496/8071 1462/2503/8072 1287/2504/8073 +f 1287/2504/8074 1286/2499/8075 1460/2496/8076 +f 1462/2503/8077 1461/2502/8078 1463/2505/8079 +f 1463/2505/8080 1464/2506/8081 1462/2503/8082 +f 1462/2503/8083 1464/2506/8084 1465/2507/8085 +f 1465/2507/8086 1287/2504/8087 1462/2503/8088 +f 1465/2507/8089 1464/2506/8090 1466/2508/8091 +f 1466/2508/8092 1336/2509/8093 1465/2507/8094 +f 1465/1549/8095 1336/1420/8096 1278/1363/8097 +f 1278/1363/8098 1279/1362/8099 1465/1549/8100 +f 1465/1549/8101 1279/1362/8102 1288/1372/8103 +f 1288/1372/8104 1287/1371/8105 1465/1549/8106 +f 1466/2508/8107 1464/2506/8108 1463/2505/8109 +f 1463/2505/8110 1467/2510/8111 1466/2508/8112 +f 1466/2508/8113 1467/2510/8114 1468/2511/8115 +f 1468/2511/8116 1469/2512/8117 1466/2508/8118 +f 1466/2508/8119 1469/2512/8120 1333/2513/8121 +f 1333/2513/8122 1336/2509/8123 1466/2508/8124 +f 1469/2512/8125 1468/2511/8126 1332/1567/8127 +f 1332/1567/8128 1331/1565/8129 1469/2512/8130 +f 1469/2512/8131 1331/1565/8132 1329/1564/8133 +f 1329/1564/8134 1333/2513/8135 1469/2512/8136 +f 1468/2511/8137 1467/2510/8138 1470/2514/8139 +f 1470/2514/8140 1471/2515/8141 1468/2511/8142 +f 1468/2511/8143 1471/2515/8144 1472/2516/8145 +f 1472/2516/8146 1332/1567/8147 1468/2511/8148 +f 1472/2516/8149 1471/2515/8150 1473/2517/8151 +f 1473/2517/8152 1474/2518/8153 1472/2516/8154 +f 1472/2516/8155 1474/2518/8156 1475/2519/8157 +f 1475/2519/8158 1476/2520/8159 1472/2516/8160 +f 1472/2516/8161 1476/2520/8162 1326/1563/8163 +f 1326/1563/8164 1332/1567/8165 1472/2516/8166 +f 1476/2520/8167 1475/2519/8168 1477/2521/8169 +f 1477/2521/8170 1478/2522/8171 1476/2520/8172 +f 1476/2520/8173 1478/2522/8174 1325/1560/8175 +f 1325/1560/8176 1326/1563/8177 1476/2520/8178 +f 1475/2519/8179 1474/2518/8180 1479/2523/8181 +f 1479/2523/8182 1480/2524/8183 1475/2519/8184 +f 1475/2519/8185 1480/2524/8186 1481/2525/8187 +f 1481/2525/8188 1477/2521/8189 1475/2519/8190 +f 1480/2524/8191 1479/2523/8192 1482/1392/8193 +f 1482/1392/8194 1483/1393/8195 1480/2524/8196 +f 1480/2524/8197 1483/1393/8198 1484/1394/8199 +f 1484/1394/8200 1481/2525/8201 1480/2524/8202 +f 1482/1392/8203 1479/2523/8204 1485/2526/8205 +f 1485/2526/8206 391/1396/8207 1482/1392/8208 +f 391/1396/8209 1485/2526/8210 1271/1431/8211 +f 1271/1431/8212 397/475/8213 391/1396/8214 +f 1485/2526/8215 1479/2523/8216 1474/2518/8217 +f 1474/2518/8218 1473/2517/8219 1485/2526/8220 +f 1485/2526/8221 1473/2517/8222 1272/1543/8223 +f 1272/1543/8224 1271/1431/8225 1485/2526/8226 +f 1473/2517/8227 1471/2515/8228 1470/2514/8229 +f 1470/2514/8230 1272/1543/8231 1473/2517/8232 +f 1470/2514/8233 1311/1552/8234 1273/1544/8235 +f 1273/1544/8236 1272/1543/8237 1470/2514/8238 +f 1470/2514/8239 1467/2510/8240 1463/2505/8241 +f 1463/2505/8242 1311/1552/8243 1470/2514/8244 +f 1463/2505/8245 1461/2502/8246 1307/1547/8247 +f 1307/1547/8248 1311/1552/8249 1463/2505/8250 +f 1461/2502/8251 1459/2495/8252 1310/1551/8253 +f 1310/1551/8254 1307/1547/8255 1461/2502/8256 +f 1459/2495/8257 1457/2498/8258 1486/2527/8259 +f 1486/2527/8260 1310/1551/8261 1459/2495/8262 +f 1486/2546/8263 1488/2547/8264 1487/2544/8265 +f 1487/2544/8266 1489/2545/8267 1486/2546/8268 +f 1486/2527/8269 1489/2528/8270 1309/1550/8271 +f 1309/1550/8272 1310/1551/8273 1486/2527/8274 +f 1486/2546/8275 1457/2541/8276 1455/2539/8277 +f 1455/2539/8278 1488/2547/8279 1486/2546/8280 +f 1487/2544/8281 1491/2550/8282 1490/2548/8283 +f 1490/2548/8284 1492/2549/8285 1487/2544/8286 +f 1487/2544/8287 1492/2549/8288 1315/2551/8289 +f 1315/2551/8290 1489/2545/8291 1487/2544/8292 +f 1487/2544/8293 1488/2547/8294 1493/2552/8295 +f 1493/2552/8296 1491/2550/8297 1487/2544/8298 +f 1493/2552/8299 1495/2554/8300 1494/2553/8301 +f 1494/2553/8302 1491/2550/8303 1493/2552/8304 +f 1493/2552/8305 1488/2547/8306 1455/2539/8307 +f 1455/2539/8308 1454/2538/8309 1493/2552/8310 +f 1493/2552/8311 1454/2538/8312 1453/2537/8313 +f 1453/2537/8314 1495/2554/8315 1493/2552/8316 +f 1494/2553/8317 1497/2557/8318 1496/2555/8319 +f 1496/2555/8320 1498/2556/8321 1494/2553/8322 +f 1494/2553/8323 1498/2556/8324 1490/2548/8325 +f 1490/2548/8326 1491/2550/8327 1494/2553/8328 +f 1494/2553/8329 1495/2554/8330 1499/2558/8331 +f 1499/2558/8332 1497/2557/8333 1494/2553/8334 +f 1499/2558/8335 1501/1428/8336 1500/1427/8337 +f 1500/1427/8338 1497/2557/8339 1499/2558/8340 +f 1499/2558/8341 1495/2554/8342 1453/2537/8343 +f 1453/2537/8344 1502/2559/8345 1499/2558/8346 +f 1499/2558/8347 1502/2559/8348 392/1430/8349 +f 392/1430/8350 1501/1428/8351 1499/2558/8352 +f 392/1430/8353 1502/2559/8354 1450/1690/8355 +f 1450/1690/8356 1503/1525/8357 392/1430/8358 +f 1503/1525/8359 1450/1690/8360 1448/1587/8361 +f 1448/1587/8362 599/1526/8363 1503/1525/8364 +f 599/1526/8365 1448/1587/8366 1444/1583/8367 +f 1444/1583/8368 1504/1528/8369 599/1526/8370 +f 1504/1528/8371 1444/1583/8372 1445/1585/8373 +f 1445/1585/8374 600/1529/8375 1504/1528/8376 +f 600/1529/8377 1445/1585/8378 1447/1586/8379 +f 1447/1586/8380 601/1530/8381 600/1529/8382 +f 1502/2559/8383 1453/2537/8384 1451/1691/8385 +f 1451/1691/8386 1450/1690/8387 1502/2559/8388 +f 1500/1427/8389 393/1531/8390 1496/2555/8391 +f 1496/2555/8392 1497/2557/8393 1500/1427/8394 +f 393/1531/8395 602/1533/8396 1294/2560/8397 +f 1294/2560/8398 1496/2555/8399 393/1531/8400 +f 1498/2556/8401 1496/2555/8402 1294/2560/8403 +f 1294/2560/8404 1295/2561/8405 1498/2556/8406 +f 1498/2556/8407 1295/2561/8408 1505/2562/8409 +f 1505/2562/8410 1490/2548/8411 1498/2556/8412 +f 1505/1426/8413 1295/686/8414 1292/479/8415 +f 1292/479/8416 1506/1425/8417 1505/1426/8418 +f 1505/1426/8419 1506/1425/8420 1507/1589/8421 +f 1507/1589/8422 1508/1590/8423 1505/1426/8424 +f 1505/2562/8425 1508/2563/8426 1492/2549/8427 +f 1492/2549/8428 1490/2548/8429 1505/2562/8430 +f 1509/1591/8431 1508/1590/8432 1507/1589/8433 +f 1507/1589/8434 1322/1381/8435 1509/1591/8436 +f 1508/2563/8437 1509/2564/8438 1315/2551/8439 +f 1315/2551/8440 1492/2549/8441 1508/2563/8442 +f 1509/2529/8443 1510/2530/8444 1314/1555/8445 +f 1314/1555/8446 1315/1558/8447 1509/2529/8448 +f 1510/1593/8449 1319/1380/8450 1320/1404/8451 +f 1320/1404/8452 1511/1592/8453 1510/1593/8454 +f 1510/2530/8455 1511/2531/8456 1318/1559/8457 +f 1318/1559/8458 1314/1555/8459 1510/2530/8460 +f 1511/1592/8461 1320/1404/8462 1512/1594/8463 +f 1512/1594/8464 1513/1595/8465 1511/1592/8466 +f 1511/2531/8467 1513/2533/8468 1514/2532/8469 +f 1514/2532/8470 1318/1559/8471 1511/2531/8472 +f 1514/2532/8473 1313/1554/8474 1312/1553/8475 +f 1312/1553/8476 1318/1559/8477 1514/2532/8478 +f 1514/2532/8479 1513/2533/8480 1515/1411/8481 +f 1515/1411/8482 613/1412/8483 1514/2532/8484 +f 1514/2532/8485 613/1412/8486 394/1414/8487 +f 394/1414/8488 1313/1554/8489 1514/2532/8490 +f 1515/1597/8491 1513/1595/8492 1512/1594/8493 +f 1512/1594/8494 395/1596/8495 1515/1597/8496 +f 395/1596/8497 1512/1594/8498 1516/1599/8499 +f 1516/1599/8500 1517/1600/8501 395/1596/8502 +f 1517/1600/8503 1516/1599/8504 1518/1601/8505 +f 1518/1601/8506 1519/1602/8507 1517/1600/8508 +f 1519/1602/8509 1518/1601/8510 1520/1603/8511 +f 1520/1603/8512 1521/1604/8513 1519/1602/8514 +f 1521/1604/8515 1520/1603/8516 1340/2611/8517 +f 1340/2611/8518 1341/2612/8519 1521/1604/8520 +f 1520/1603/8521 1518/1601/8522 1522/1605/8523 +f 1522/1605/8524 1523/1606/8525 1520/1603/8526 +f 1520/1603/8527 1523/1606/8528 1524/1607/8529 +f 1524/1607/8530 1340/2611/8531 1520/1603/8532 +f 1526/1608/8533 1525/1609/8534 1524/1607/8535 +f 1524/1607/8536 1523/1606/8537 1526/1608/8538 +f 1296/1378/8539 1524/2613/8540 1525/2614/8541 +f 1525/2614/8542 1527/1610/8543 1296/1378/8544 +f 1524/2613/8545 1296/1378/8546 1297/1379/8547 +f 1297/1379/8548 1340/1407/8549 1524/2613/8550 +f 1530/1613/8551 1529/2616/8552 1528/1611/8553 +f 1528/1611/8554 1531/1612/8555 1530/1613/8556 +f 1530/1613/8557 1531/1612/8558 1532/1615/8559 +f 1532/1615/8560 1533/1616/8561 1530/1613/8562 +f 1527/1610/8563 1530/1613/8564 1533/1616/8565 +f 1533/1616/8566 1534/1617/8567 1527/1610/8568 +f 1533/1616/8569 1532/1615/8570 1535/1618/8571 +f 1535/1618/8572 1536/1619/8573 1533/1616/8574 +f 1534/1617/8575 1533/1616/8576 1536/1619/8577 +f 1536/1619/8578 1537/1620/8579 1534/1617/8580 +f 1536/1619/8581 1535/1618/8582 1538/1621/8583 +f 1538/1621/8584 1539/1622/8585 1536/1619/8586 +f 1537/1620/8587 1536/1619/8588 1539/1622/8589 +f 1539/1622/8590 1540/1623/8591 1537/1620/8592 +f 1539/1622/8593 1538/1621/8594 1541/1624/8595 +f 1541/1624/8596 1542/1625/8597 1539/1622/8598 +f 1540/1623/8599 1539/1622/8600 1542/1625/8601 +f 1542/1625/8602 1543/1626/8603 1540/1623/8604 +f 1542/1625/8605 1541/1624/8606 1544/1627/8607 +f 1544/1627/8608 1545/1628/8609 1542/1625/8610 +f 1543/1626/8611 1542/1625/8612 1545/1628/8613 +f 1545/1628/8614 1324/1405/8615 1543/1626/8616 +f 1546/1630/8617 1544/1627/8618 1541/1624/8619 +f 1541/1624/8620 1547/1629/8621 1546/1630/8622 +f 1548/1632/8623 1544/1627/8624 1546/1630/8625 +f 1546/1630/8626 1549/1631/8627 1548/1632/8628 +f 1544/1627/8629 1548/1632/8630 1550/1633/8631 +f 1550/1633/8632 1545/1628/8633 1544/1627/8634 +f 1551/1635/8635 1548/1632/8636 1549/1631/8637 +f 1549/1631/8638 1552/1634/8639 1551/1635/8640 +f 1548/1632/8641 1551/1635/8642 1553/1636/8643 +f 1553/1636/8644 1550/1633/8645 1548/1632/8646 +f 1553/1636/8647 1551/1635/8648 1554/1637/8649 +f 1554/1637/8650 1555/1638/8651 1553/1636/8652 +f 1526/1608/8653 1556/1639/8654 1553/1636/8655 +f 1553/1636/8656 1555/1638/8657 1526/1608/8658 +f 1550/1633/8659 1553/1636/8660 1556/1639/8661 +f 1556/1639/8662 1323/1406/8663 1550/1633/8664 +f 1552/1634/8665 1557/1640/8666 1554/1637/8667 +f 1554/1637/8668 1551/1635/8669 1552/1634/8670 +f 1558/1641/8671 1528/2615/8672 1554/1637/8673 +f 1554/1637/8674 1557/1640/8675 1558/1641/8676 +f 1554/1637/8677 1528/2615/8678 1529/1614/8679 +f 1529/1614/8680 1555/1638/8681 1554/1637/8682 +f 1561/1644/8683 1560/1645/8684 1559/2618/8685 +f 1559/2618/8686 1562/1643/8687 1561/1644/8688 +f 1563/1647/8689 1559/1642/8690 1560/2619/8691 +f 1560/2619/8692 1564/1646/8693 1563/1647/8694 +f 1558/2617/8695 1559/1642/8696 1563/1647/8697 +f 1563/1647/8698 1565/1648/8699 1558/2617/8700 +f 1566/1650/8701 1563/1647/8702 1564/1646/8703 +f 1564/1646/8704 1567/1649/8705 1566/1650/8706 +f 1565/1648/8707 1563/1647/8708 1566/1650/8709 +f 1566/1650/8710 1568/1651/8711 1565/1648/8712 +f 1569/1653/8713 1566/1650/8714 1567/1649/8715 +f 1567/1649/8716 1570/1652/8717 1569/1653/8718 +f 1568/1651/8719 1566/1650/8720 1569/1653/8721 +f 1569/1653/8722 1571/1654/8723 1568/1651/8724 +f 1573/1655/8725 1572/1656/8726 1569/1653/8727 +f 1569/1653/8728 1570/1652/8729 1573/1655/8730 +f 1571/1654/8731 1569/1653/8732 1572/1656/8733 +f 1572/1656/8734 1574/1657/8735 1571/1654/8736 +f 1576/1658/8737 1575/1659/8738 1572/1656/8739 +f 1572/1656/8740 1573/1655/8741 1576/1658/8742 +f 1547/1629/8743 1574/1657/8744 1572/1656/8745 +f 1572/1656/8746 1575/1659/8747 1547/1629/8748 +f 1579/1662/8749 1578/1663/8750 1577/1660/8751 +f 1577/1660/8752 1580/1661/8753 1579/1662/8754 +f 1579/1662/8755 1580/1661/8756 1581/1664/8757 +f 1581/1664/8758 1582/1665/8759 1579/1662/8760 +f 1576/1658/8761 1579/1662/8762 1582/1665/8763 +f 1582/1665/8764 1583/1666/8765 1576/1658/8766 +f 1582/1665/8767 1581/1664/8768 1584/1667/8769 +f 1584/1667/8770 1585/1668/8771 1582/1665/8772 +f 1583/1666/8773 1582/1665/8774 1585/1668/8775 +f 1585/1668/8776 1586/1669/8777 1583/1666/8778 +f 1585/1668/8779 1584/1667/8780 1587/1670/8781 +f 1587/1670/8782 1588/1671/8783 1585/1668/8784 +f 1586/1669/8785 1585/1668/8786 1588/1671/8787 +f 1588/1671/8788 1589/1672/8789 1586/1669/8790 +f 1588/1671/8791 1587/1670/8792 1590/1673/8793 +f 1590/1673/8794 1591/1674/8795 1588/1671/8796 +f 1561/1644/8797 1589/1672/8798 1588/1671/8799 +f 1588/1671/8800 1591/1674/8801 1561/1644/8802 +f 1590/1673/8803 1592/1676/8804 1593/1675/8805 +f 1593/1675/8806 1591/1674/8807 1590/1673/8808 +f 1592/2621/8809 1594/1678/8810 1595/1677/8811 +f 1595/1677/8812 1593/2620/8813 1592/2621/8814 +f 1594/1678/8815 1596/1680/8816 1597/1679/8817 +f 1597/1679/8818 1595/1677/8819 1594/1678/8820 +f 1596/1680/8821 1598/1682/8822 1599/1681/8823 +f 1599/1681/8824 1597/1679/8825 1596/1680/8826 +f 1598/1682/8827 1577/1660/8828 1578/1663/8829 +f 1578/1663/8830 1599/1681/8831 1598/1682/8832 +f 1522/1605/8833 1518/1601/8834 1516/1599/8835 +f 1516/1599/8836 1321/1403/8837 1522/1605/8838 +f 1516/1599/8839 1512/1594/8840 1320/1404/8841 +f 1320/1404/8842 1321/1403/8843 1516/1599/8844 +f 1442/1581/8845 1349/1576/8846 1343/1572/8847 +f 1343/1572/8848 1447/1586/8849 1442/1581/8850 +f 1404/1487/8851 1357/1440/8852 1355/1438/8853 +f 1355/1438/8854 1354/1437/8855 1404/1487/8856 +f 1381/1464/8857 1281/1365/8858 1282/1368/8859 +f 1282/1368/8860 1600/1684/8861 1381/1464/8862 +f 1366/1449/8863 1601/1685/8864 1291/1375/8865 +f 1291/1375/8866 1337/1421/8867 1366/1449/8868 +f 1328/1561/8869 1603/2535/8870 1602/2534/8871 +f 1602/2534/8872 1327/1562/8873 1328/1561/8874 +f 1302/2587/8875 1303/1386/8876 1285/1369/8877 +f 1285/1369/8878 1284/1366/8879 1302/2587/8880 +f 1342/1408/8881 1297/1379/8882 1294/1376/8883 +f 1294/1376/8884 602/1683/8885 1342/1408/8886 +f 1602/2534/8887 1603/2535/8888 1348/1686/8889 +f 1348/1686/8890 1347/1598/8891 1602/2534/8892 +f 1602/2534/8893 1347/1598/8894 1330/1566/8895 +f 1330/1566/8896 1327/1562/8897 1602/2534/8898 +f 1291/1375/8899 1601/1685/8900 1600/1684/8901 +f 1600/1684/8902 1282/1368/8903 1291/1375/8904 +f 1289/1373/8905 1288/1372/8906 1279/1362/8907 +f 1279/1362/8908 1280/1364/8909 1289/1373/8910 +f 1269/478/8911 1270/1432/8912 1313/1554/8913 +f 1313/1554/8914 394/1414/8915 1269/478/8916 +f 1436/1519/8917 1435/1518/8918 1385/1468/8919 +f 1385/1468/8920 1384/1467/8921 1436/1519/8922 +f 1436/1519/8923 1384/1467/8924 1389/1472/8925 +f 1389/1472/8926 1393/1476/8927 1436/1519/8928 +f 1308/1546/8929 1313/1554/8930 1270/1432/8931 +f 1270/1432/8932 1273/1544/8933 1308/1546/8934 +f 1600/1684/8935 1601/1685/8936 1604/1688/8937 +f 1604/1688/8938 1605/1689/8939 1600/1684/8940 +f 1366/1449/8941 1369/1452/8942 1604/1688/8943 +f 1604/1688/8944 1601/1685/8945 1366/1449/8946 +f 1605/1689/8947 1604/1688/8948 1369/1452/8949 +f 1369/1452/8950 1377/1460/8951 1605/1689/8952 +f 1381/1464/8953 1600/1684/8954 1605/1689/8955 +f 1605/1689/8956 1377/1460/8957 1381/1464/8958 +f 601/1530/8959 1447/1586/8960 1606/2565/8961 +f 1606/2565/8962 1607/1540/8963 601/1530/8964 +f 1447/1586/8965 1343/1572/8966 1344/1575/8967 +f 1344/1575/8968 1606/2565/8969 1447/1586/8970 +f 1610/1694/8971 1609/1695/8972 1608/1692/8973 +f 1608/1692/8974 1611/1693/8975 1610/1694/8976 +f 1614/1698/8977 1613/1699/8978 1612/1696/8979 +f 1612/1696/8980 1615/1697/8981 1614/1698/8982 +f 1618/1702/8983 1617/1703/8984 1616/1700/8985 +f 1616/1700/8986 1619/1701/8987 1618/1702/8988 +f 1622/1706/8989 1621/1707/8990 1620/1704/8991 +f 1620/1704/8992 1623/1705/8993 1622/1706/8994 +f 1618/1702/8995 1625/1710/8996 1624/1708/8997 +f 1624/1708/8998 1626/1709/8999 1618/1702/9000 +f 1629/1713/9001 1628/1714/9002 1627/1711/9003 +f 1627/1711/9004 1630/1712/9005 1629/1713/9006 +f 1633/1717/9007 1632/1718/9008 1631/1715/9009 +f 1631/1715/9010 1634/1716/9011 1633/1717/9012 +f 1637/1721/9013 1636/1722/9014 1635/1719/9015 +f 1635/1719/9016 1638/1720/9017 1637/1721/9018 +f 1641/1725/9019 1640/1726/9020 1639/1723/9021 +f 1639/1723/9022 1642/1724/9023 1641/1725/9024 +f 1643/1727/9025 1616/1700/9026 1622/1706/9027 +f 1622/1706/9028 1635/1719/9029 1643/1727/9030 +f 1646/1729/9031 1645/1730/9032 1644/1728/9033 +f 1644/1728/9034 1639/1723/9035 1646/1729/9036 +f 1649/1733/9037 1648/1734/9038 1647/1731/9039 +f 1647/1731/9040 1650/1732/9041 1649/1733/9042 +f 1653/1737/9043 1652/1738/9044 1651/1735/9045 +f 1651/1735/9046 1654/1736/9047 1653/1737/9048 +f 1656/1739/9049 1655/1740/9050 1639/1723/9051 +f 1639/1723/9052 1640/1726/9053 1656/1739/9054 +f 1656/1739/9055 1638/1720/9056 1635/1719/9057 +f 1635/1719/9058 1655/1740/9059 1656/1739/9060 +f 1658/1747/9061 1657/1748/9062 1636/1741/9063 +f 1636/1741/9064 1637/1742/9065 1658/1747/9066 +f 1658/1747/9067 1641/1750/9068 1642/2383/9069 +f 1642/2383/9070 1657/1748/9071 1658/1747/9072 +f 1661/1745/9073 1660/1746/9074 1659/1743/9075 +f 1659/1743/9076 1662/1744/9077 1661/1745/9078 +f 1665/1756/9079 1664/1757/9080 1663/1753/9081 +f 1663/1753/9082 1666/1754/9083 1665/1756/9084 +f 1644/1728/9085 1645/1730/9086 1667/1751/9087 +f 1667/1751/9088 1668/1752/9089 1644/1728/9090 +f 1669/1775/9091 1652/1738/9092 1653/1737/9093 +f 1653/1737/9094 1670/1774/9095 1669/1775/9096 +f 1619/1701/9097 1616/1700/9098 1643/1727/9099 +f 1643/1727/9100 1671/1755/9101 1619/1701/9102 +f 1672/1787/9103 1664/1757/9104 1665/1756/9105 +f 1665/1756/9106 1673/1786/9107 1672/1787/9108 +f 1676/1760/9109 1675/1761/9110 1674/1758/9111 +f 1674/1758/9112 1677/1759/9113 1676/1760/9114 +f 1678/1763/9115 1676/1760/9116 1677/1759/9117 +f 1677/1759/9118 1679/1762/9119 1678/1763/9120 +f 1682/1766/9121 1681/1767/9122 1680/1764/9123 +f 1680/1764/9124 1683/1765/9125 1682/1766/9126 +f 1686/1770/9127 1685/1771/9128 1684/1768/9129 +f 1684/1768/9130 1687/1769/9131 1686/1770/9132 +f 1684/1768/9133 1689/1773/9134 1688/1772/9135 +f 1688/1772/9136 1687/1769/9137 1684/1768/9138 +f 1688/1772/9139 1689/1773/9140 1682/1766/9141 +f 1682/1766/9142 1683/1765/9143 1688/1772/9144 +f 1680/1800/9145 1681/1801/9146 1690/1798/9147 +f 1690/1798/9148 1691/1799/9149 1680/1800/9150 +f 1690/1798/9151 1685/1803/9152 1686/1802/9153 +f 1686/1802/9154 1691/1799/9155 1690/1798/9156 +f 1694/1778/9157 1693/1779/9158 1692/1776/9159 +f 1692/1776/9160 1695/1777/9161 1694/1778/9162 +f 1698/1782/9163 1697/1783/9164 1696/1780/9165 +f 1696/1780/9166 1699/1781/9167 1698/1782/9168 +f 1696/1780/9169 1701/1785/9170 1700/1784/9171 +f 1700/1784/9172 1699/1781/9173 1696/1780/9174 +f 1700/1784/9175 1701/1785/9176 1694/1778/9177 +f 1694/1778/9178 1695/1777/9179 1700/1784/9180 +f 1693/1806/9181 1703/1812/9182 1702/1804/9183 +f 1702/1804/9184 1692/1805/9185 1693/1806/9186 +f 1702/1804/9187 1703/1812/9188 1697/1813/9189 +f 1697/1813/9190 1698/1814/9191 1702/1804/9192 +f 1706/1790/9193 1705/1791/9194 1704/1788/9195 +f 1704/1788/9196 1707/1789/9197 1706/1790/9198 +f 1710/1794/9199 1709/1795/9200 1708/1792/9201 +f 1708/1792/9202 1711/1793/9203 1710/1794/9204 +f 1712/1797/9205 1710/1794/9206 1711/1793/9207 +f 1711/1793/9208 1713/1796/9209 1712/1797/9210 +f 1705/1791/9211 1712/1797/9212 1713/1796/9213 +f 1713/1796/9214 1704/1788/9215 1705/1791/9216 +f 1716/1817/9217 1715/1818/9218 1714/1815/9219 +f 1714/1815/9220 1717/1816/9221 1716/1817/9222 +f 1718/1820/9223 1716/1817/9224 1717/1816/9225 +f 1717/1816/9226 1719/1819/9227 1718/1820/9228 +f 1707/1789/9229 1704/1788/9230 1683/1765/9231 +f 1683/1765/9232 1680/1764/9233 1707/1789/9234 +f 1711/1793/9235 1708/1792/9236 1686/1770/9237 +f 1686/1770/9238 1687/1769/9239 1711/1793/9240 +f 1713/1796/9241 1711/1793/9242 1687/1769/9243 +f 1687/1769/9244 1688/1772/9245 1713/1796/9246 +f 1704/1788/9247 1713/1796/9248 1688/1772/9249 +f 1688/1772/9250 1683/1765/9251 1704/1788/9252 +f 1717/1816/9253 1714/1815/9254 1720/1821/9255 +f 1720/1821/9256 1721/1822/9257 1717/1816/9258 +f 1719/1819/9259 1717/1816/9260 1721/1822/9261 +f 1721/1822/9262 1722/1823/9263 1719/1819/9264 +f 1681/1767/9265 1682/1766/9266 1723/1807/9267 +f 1723/1807/9268 1724/1808/9269 1681/1767/9270 +f 1684/1768/9271 1685/1771/9272 1725/1809/9273 +f 1725/1809/9274 1726/1810/9275 1684/1768/9276 +f 1689/1773/9277 1684/1768/9278 1726/1810/9279 +f 1726/1810/9280 1727/1811/9281 1689/1773/9282 +f 1682/1766/9283 1689/1773/9284 1727/1811/9285 +f 1727/1811/9286 1723/1807/9287 1682/1766/9288 +f 1730/1826/9289 1729/1827/9290 1728/1824/9291 +f 1728/1824/9292 1731/1825/9293 1730/1826/9294 +f 1732/1829/9295 1730/1826/9296 1731/1825/9297 +f 1731/1825/9298 1733/1828/9299 1732/1829/9300 +f 1724/1808/9301 1723/1807/9302 1695/1777/9303 +f 1695/1777/9304 1692/1776/9305 1724/1808/9306 +f 1726/1810/9307 1725/1809/9308 1698/1782/9309 +f 1698/1782/9310 1699/1781/9311 1726/1810/9312 +f 1727/1811/9313 1726/1810/9314 1699/1781/9315 +f 1699/1781/9316 1700/1784/9317 1727/1811/9318 +f 1723/1807/9319 1727/1811/9320 1700/1784/9321 +f 1700/1784/9322 1695/1777/9323 1723/1807/9324 +f 1731/1825/9325 1728/1824/9326 1734/1830/9327 +f 1734/1830/9328 1735/1831/9329 1731/1825/9330 +f 1733/1828/9331 1731/1825/9332 1735/1831/9333 +f 1735/1831/9334 1736/1832/9335 1733/1828/9336 +f 1716/1817/9337 1737/1834/9338 1706/1833/9339 +f 1706/1833/9340 1715/1818/9341 1716/1817/9342 +f 1718/1820/9343 1709/1835/9344 1737/1834/9345 +f 1737/1834/9346 1716/1817/9347 1718/1820/9348 +f 1719/1819/9349 1708/1836/9350 1709/1835/9351 +f 1709/1835/9352 1718/1820/9353 1719/1819/9354 +f 1722/1823/9355 1686/1802/9356 1708/1836/9357 +f 1708/1836/9358 1719/1819/9359 1722/1823/9360 +f 1721/1822/9361 1691/1799/9362 1686/1802/9363 +f 1686/1802/9364 1722/1823/9365 1721/1822/9366 +f 1720/1821/9367 1680/1800/9368 1691/1799/9369 +f 1691/1799/9370 1721/1822/9371 1720/1821/9372 +f 1714/1815/9373 1707/1837/9374 1680/1800/9375 +f 1680/1800/9376 1720/1821/9377 1714/1815/9378 +f 1715/1818/9379 1706/1833/9380 1707/1837/9381 +f 1707/1837/9382 1714/1815/9383 1715/1818/9384 +f 1730/1826/9385 1690/1798/9386 1681/1801/9387 +f 1681/1801/9388 1729/1827/9389 1730/1826/9390 +f 1732/1829/9391 1685/1803/9392 1690/1798/9393 +f 1690/1798/9394 1730/1826/9395 1732/1829/9396 +f 1733/1828/9397 1725/1838/9398 1685/1803/9399 +f 1685/1803/9400 1732/1829/9401 1733/1828/9402 +f 1736/1832/9403 1698/1814/9404 1725/1838/9405 +f 1725/1838/9406 1733/1828/9407 1736/1832/9408 +f 1735/1831/9409 1702/1804/9410 1698/1814/9411 +f 1698/1814/9412 1736/1832/9413 1735/1831/9414 +f 1734/1830/9415 1692/1805/9416 1702/1804/9417 +f 1702/1804/9418 1735/1831/9419 1734/1830/9420 +f 1728/1824/9421 1724/1839/9422 1692/1805/9423 +f 1692/1805/9424 1734/1830/9425 1728/1824/9426 +f 1729/1827/9427 1681/1801/9428 1724/1839/9429 +f 1724/1839/9430 1728/1824/9431 1729/1827/9432 +f 1678/1763/9433 1679/1762/9434 1693/1779/9435 +f 1693/1779/9436 1694/1778/9437 1678/1763/9438 +f 1697/1783/9439 1674/1758/9440 1675/1761/9441 +f 1675/1761/9442 1696/1780/9443 1697/1783/9444 +f 1675/1761/9445 1676/1760/9446 1701/1785/9447 +f 1701/1785/9448 1696/1780/9449 1675/1761/9450 +f 1701/1785/9451 1676/1760/9452 1678/1763/9453 +f 1678/1763/9454 1694/1778/9455 1701/1785/9456 +f 1740/1852/9457 1739/1853/9458 1738/1840/9459 +f 1738/1840/9460 1741/1841/9461 1740/1852/9462 +f 1741/1841/9463 1738/1840/9464 1742/1870/9465 +f 1742/1870/9466 1743/1871/9467 1741/1841/9468 +f 1744/1894/9469 1679/1895/9470 1677/1882/9471 +f 1677/1882/9472 1745/1883/9473 1744/1894/9474 +f 1746/1896/9475 1693/1806/9476 1679/1895/9477 +f 1679/1895/9478 1744/1894/9479 1746/1896/9480 +f 1747/1897/9481 1703/1812/9482 1693/1806/9483 +f 1693/1806/9484 1746/1896/9485 1747/1897/9486 +f 1748/1898/9487 1697/1813/9488 1703/1812/9489 +f 1703/1812/9490 1747/1897/9491 1748/1898/9492 +f 1749/1899/9493 1674/1900/9494 1697/1813/9495 +f 1697/1813/9496 1748/1898/9497 1749/1899/9498 +f 1745/1883/9499 1677/1882/9500 1674/1900/9501 +f 1674/1900/9502 1749/1899/9503 1745/1883/9504 +f 1739/1853/9505 1744/1894/9506 1745/1883/9507 +f 1745/1883/9508 1738/1840/9509 1739/1853/9510 +f 1740/1852/9511 1746/1896/9512 1744/1894/9513 +f 1744/1894/9514 1739/1853/9515 1740/1852/9516 +f 1741/1841/9517 1747/1897/9518 1746/1896/9519 +f 1746/1896/9520 1740/1852/9521 1741/1841/9522 +f 1743/1871/9523 1748/1898/9524 1747/1897/9525 +f 1747/1897/9526 1741/1841/9527 1743/1871/9528 +f 1742/1870/9529 1749/1899/9530 1748/1898/9531 +f 1748/1898/9532 1743/1871/9533 1742/1870/9534 +f 1738/1840/9535 1745/1883/9536 1749/1899/9537 +f 1749/1899/9538 1742/1870/9539 1738/1840/9540 +f 1752/1908/9541 1751/1909/9542 1750/1901/9543 +f 1750/1901/9544 1753/1902/9545 1752/1908/9546 +f 1754/1911/9547 1648/1734/9548 1649/1733/9549 +f 1649/1733/9550 1755/1910/9551 1754/1911/9552 +f 1756/1913/9553 1751/1909/9554 1752/1908/9555 +f 1752/1908/9556 1757/1912/9557 1756/1913/9558 +f 1622/1706/9559 1623/1705/9560 1655/1740/9561 +f 1655/1740/9562 1635/1719/9563 1622/1706/9564 +f 1655/1740/9565 1623/1705/9566 1646/1729/9567 +f 1646/1729/9568 1639/1723/9569 1655/1740/9570 +f 1659/1743/9571 1660/1746/9572 1619/1701/9573 +f 1619/1701/9574 1671/1755/9575 1659/1743/9576 +f 1661/1745/9577 1662/1744/9578 1758/1842/9579 +f 1758/1842/9580 1759/1843/9581 1661/1745/9582 +f 1761/1844/9583 1760/1845/9584 1668/1752/9585 +f 1668/1752/9586 1667/1751/9587 1761/1844/9588 +f 1638/1720/9589 1705/1791/9590 1706/1790/9591 +f 1706/1790/9592 1637/1721/9593 1638/1720/9594 +f 1709/1795/9595 1710/1794/9596 1640/1726/9597 +f 1640/1726/9598 1641/1725/9599 1709/1795/9600 +f 1640/1726/9601 1710/1794/9602 1712/1797/9603 +f 1712/1797/9604 1656/1739/9605 1640/1726/9606 +f 1712/1797/9607 1705/1791/9608 1638/1720/9609 +f 1638/1720/9610 1656/1739/9611 1712/1797/9612 +f 1637/1742/9613 1706/1833/9614 1737/1834/9615 +f 1737/1834/9616 1658/1747/9617 1637/1742/9618 +f 1737/1834/9619 1709/1835/9620 1641/1750/9621 +f 1641/1750/9622 1658/1747/9623 1737/1834/9624 +f 1763/1847/9625 1762/1848/9626 1671/1755/9627 +f 1671/1755/9628 1764/1846/9629 1763/1847/9630 +f 1766/1849/9631 1765/1850/9632 1635/1719/9633 +f 1635/1719/9634 1636/1722/9635 1766/1849/9636 +f 1767/1851/9637 1643/1727/9638 1635/1719/9639 +f 1635/1719/9640 1765/1850/9641 1767/1851/9642 +f 1767/1851/9643 1764/1846/9644 1671/1755/9645 +f 1671/1755/9646 1643/1727/9647 1767/1851/9648 +f 1768/1915/9649 1766/1916/9650 1636/1741/9651 +f 1636/1741/9652 1769/1914/9653 1768/1915/9654 +f 1772/1856/9655 1771/1857/9656 1770/1854/9657 +f 1770/1854/9658 1773/1855/9659 1772/1856/9660 +f 1774/1859/9661 1772/1856/9662 1773/1855/9663 +f 1773/1855/9664 1775/1858/9665 1774/1859/9666 +f 1778/1862/9667 1777/1863/9668 1776/1860/9669 +f 1776/1860/9670 1779/1861/9671 1778/1862/9672 +f 1782/1866/9673 1781/1867/9674 1780/1864/9675 +f 1780/1864/9676 1783/1865/9677 1782/1866/9678 +f 1780/1864/9679 1785/1869/9680 1784/1868/9681 +f 1784/1868/9682 1783/1865/9683 1780/1864/9684 +f 1784/1868/9685 1785/1869/9686 1778/1862/9687 +f 1778/1862/9688 1779/1861/9689 1784/1868/9690 +f 1776/1919/9691 1777/1920/9692 1786/1917/9693 +f 1786/1917/9694 1787/1918/9695 1776/1919/9696 +f 1786/1917/9697 1781/1922/9698 1782/1921/9699 +f 1782/1921/9700 1787/1918/9701 1786/1917/9702 +f 1790/1874/9703 1789/1875/9704 1788/1872/9705 +f 1788/1872/9706 1791/1873/9707 1790/1874/9708 +f 1794/1878/9709 1793/1879/9710 1792/1876/9711 +f 1792/1876/9712 1795/1877/9713 1794/1878/9714 +f 1792/1876/9715 1797/1881/9716 1796/1880/9717 +f 1796/1880/9718 1795/1877/9719 1792/1876/9720 +f 1796/1880/9721 1797/1881/9722 1790/1874/9723 +f 1790/1874/9724 1791/1873/9725 1796/1880/9726 +f 1789/1925/9727 1799/1926/9728 1798/1923/9729 +f 1798/1923/9730 1788/1924/9731 1789/1925/9732 +f 1798/1923/9733 1799/1926/9734 1793/1927/9735 +f 1793/1927/9736 1794/1928/9737 1798/1923/9738 +f 1802/1886/9739 1801/1887/9740 1800/1884/9741 +f 1800/1884/9742 1803/1885/9743 1802/1886/9744 +f 1806/1890/9745 1805/1891/9746 1804/1888/9747 +f 1804/1888/9748 1807/1889/9749 1806/1890/9750 +f 1808/1893/9751 1806/1890/9752 1807/1889/9753 +f 1807/1889/9754 1809/1892/9755 1808/1893/9756 +f 1801/1887/9757 1808/1893/9758 1809/1892/9759 +f 1809/1892/9760 1800/1884/9761 1801/1887/9762 +f 1812/1936/9763 1811/1953/9764 1810/1929/9765 +f 1810/1929/9766 1813/1935/9767 1812/1936/9768 +f 1814/1965/9769 1812/1936/9770 1813/1935/9771 +f 1813/1935/9772 1815/1954/9773 1814/1965/9774 +f 1803/1885/9775 1800/1884/9776 1779/1861/9777 +f 1779/1861/9778 1776/1860/9779 1803/1885/9780 +f 1807/1889/9781 1804/1888/9782 1782/1866/9783 +f 1782/1866/9784 1783/1865/9785 1807/1889/9786 +f 1809/1892/9787 1807/1889/9788 1783/1865/9789 +f 1783/1865/9790 1784/1868/9791 1809/1892/9792 +f 1800/1884/9793 1809/1892/9794 1784/1868/9795 +f 1784/1868/9796 1779/1861/9797 1800/1884/9798 +f 1813/1935/9799 1810/1929/9800 1816/1966/9801 +f 1816/1966/9802 1817/1977/9803 1813/1935/9804 +f 1815/1954/9805 1813/1935/9806 1817/1977/9807 +f 1817/1977/9808 1818/1978/9809 1815/1954/9810 +f 1777/1863/9811 1778/1862/9812 1819/1903/9813 +f 1819/1903/9814 1820/1904/9815 1777/1863/9816 +f 1780/1864/9817 1781/1867/9818 1821/1905/9819 +f 1821/1905/9820 1822/1906/9821 1780/1864/9822 +f 1785/1869/9823 1780/1864/9824 1822/1906/9825 +f 1822/1906/9826 1823/1907/9827 1785/1869/9828 +f 1778/1862/9829 1785/1869/9830 1823/1907/9831 +f 1823/1907/9832 1819/1903/9833 1778/1862/9834 +f 1826/1981/9835 1825/1982/9836 1824/1979/9837 +f 1824/1979/9838 1827/1980/9839 1826/1981/9840 +f 1828/1984/9841 1826/1981/9842 1827/1980/9843 +f 1827/1980/9844 1829/1983/9845 1828/1984/9846 +f 1820/1904/9847 1819/1903/9848 1791/1873/9849 +f 1791/1873/9850 1788/1872/9851 1820/1904/9852 +f 1822/1906/9853 1821/1905/9854 1794/1878/9855 +f 1794/1878/9856 1795/1877/9857 1822/1906/9858 +f 1823/1907/9859 1822/1906/9860 1795/1877/9861 +f 1795/1877/9862 1796/1880/9863 1823/1907/9864 +f 1819/1903/9865 1823/1907/9866 1796/1880/9867 +f 1796/1880/9868 1791/1873/9869 1819/1903/9870 +f 1827/1980/9871 1824/1979/9872 1830/1985/9873 +f 1830/1985/9874 1831/1991/9875 1827/1980/9876 +f 1829/1983/9877 1827/1980/9878 1831/1991/9879 +f 1831/1991/9880 1832/1992/9881 1829/1983/9882 +f 1812/1936/9883 1833/1994/9884 1802/1993/9885 +f 1802/1993/9886 1811/1953/9887 1812/1936/9888 +f 1814/1965/9889 1805/1995/9890 1833/1994/9891 +f 1833/1994/9892 1812/1936/9893 1814/1965/9894 +f 1815/1954/9895 1804/1996/9896 1805/1995/9897 +f 1805/1995/9898 1814/1965/9899 1815/1954/9900 +f 1818/1978/9901 1782/1921/9902 1804/1996/9903 +f 1804/1996/9904 1815/1954/9905 1818/1978/9906 +f 1817/1977/9907 1787/1918/9908 1782/1921/9909 +f 1782/1921/9910 1818/1978/9911 1817/1977/9912 +f 1816/1966/9913 1776/1919/9914 1787/1918/9915 +f 1787/1918/9916 1817/1977/9917 1816/1966/9918 +f 1810/1929/9919 1803/1997/9920 1776/1919/9921 +f 1776/1919/9922 1816/1966/9923 1810/1929/9924 +f 1811/1953/9925 1802/1993/9926 1803/1997/9927 +f 1803/1997/9928 1810/1929/9929 1811/1953/9930 +f 1826/1981/9931 1786/1917/9932 1777/1920/9933 +f 1777/1920/9934 1825/1982/9935 1826/1981/9936 +f 1828/1984/9937 1781/1922/9938 1786/1917/9939 +f 1786/1917/9940 1826/1981/9941 1828/1984/9942 +f 1829/1983/9943 1821/1998/9944 1781/1922/9945 +f 1781/1922/9946 1828/1984/9947 1829/1983/9948 +f 1832/1992/9949 1794/1928/9950 1821/1998/9951 +f 1821/1998/9952 1829/1983/9953 1832/1992/9954 +f 1831/1991/9955 1798/1923/9956 1794/1928/9957 +f 1794/1928/9958 1832/1992/9959 1831/1991/9960 +f 1830/1985/9961 1788/1924/9962 1798/1923/9963 +f 1798/1923/9964 1831/1991/9965 1830/1985/9966 +f 1824/1979/9967 1820/1999/9968 1788/1924/9969 +f 1788/1924/9970 1830/1985/9971 1824/1979/9972 +f 1825/1982/9973 1777/1920/9974 1820/1999/9975 +f 1820/1999/9976 1824/1979/9977 1825/1982/9978 +f 1774/1859/9979 1775/1858/9980 1789/1875/9981 +f 1789/1875/9982 1790/1874/9983 1774/1859/9984 +f 1793/1879/9985 1770/1854/9986 1771/1857/9987 +f 1771/1857/9988 1792/1876/9989 1793/1879/9990 +f 1771/1857/9991 1772/1856/9992 1797/1881/9993 +f 1797/1881/9994 1792/1876/9995 1771/1857/9996 +f 1797/1881/9997 1772/1856/9998 1774/1859/9999 +f 1774/1859/10000 1790/1874/10001 1797/1881/10002 +f 1836/2002/10003 1835/2003/10004 1834/2000/10005 +f 1834/2000/10006 1837/2001/10007 1836/2002/10008 +f 1837/2001/10009 1834/2000/10010 1838/2004/10011 +f 1838/2004/10012 1839/2005/10013 1837/2001/10014 +f 1840/2008/10015 1775/2009/10016 1773/2006/10017 +f 1773/2006/10018 1841/2007/10019 1840/2008/10020 +f 1842/2010/10021 1789/1925/10022 1775/2009/10023 +f 1775/2009/10024 1840/2008/10025 1842/2010/10026 +f 1843/2011/10027 1799/1926/10028 1789/1925/10029 +f 1789/1925/10030 1842/2010/10031 1843/2011/10032 +f 1844/2012/10033 1793/1927/10034 1799/1926/10035 +f 1799/1926/10036 1843/2011/10037 1844/2012/10038 +f 1845/2018/10039 1770/2019/10040 1793/1927/10041 +f 1793/1927/10042 1844/2012/10043 1845/2018/10044 +f 1841/2007/10045 1773/2006/10046 1770/2019/10047 +f 1770/2019/10048 1845/2018/10049 1841/2007/10050 +f 1835/2003/10051 1840/2008/10052 1841/2007/10053 +f 1841/2007/10054 1834/2000/10055 1835/2003/10056 +f 1836/2002/10057 1842/2010/10058 1840/2008/10059 +f 1840/2008/10060 1835/2003/10061 1836/2002/10062 +f 1837/2001/10063 1843/2011/10064 1842/2010/10065 +f 1842/2010/10066 1836/2002/10067 1837/2001/10068 +f 1839/2005/10069 1844/2012/10070 1843/2011/10071 +f 1843/2011/10072 1837/2001/10073 1839/2005/10074 +f 1838/2004/10075 1845/2018/10076 1844/2012/10077 +f 1844/2012/10078 1839/2005/10079 1838/2004/10080 +f 1834/2000/10081 1841/2007/10082 1845/2018/10083 +f 1845/2018/10084 1838/2004/10085 1834/2000/10086 +f 1764/1846/10087 1801/1887/10088 1802/1886/10089 +f 1802/1886/10090 1763/1847/10091 1764/1846/10092 +f 1805/1891/10093 1806/1890/10094 1765/1850/10095 +f 1765/1850/10096 1766/1849/10097 1805/1891/10098 +f 1765/1850/10099 1806/1890/10100 1808/1893/10101 +f 1808/1893/10102 1767/1851/10103 1765/1850/10104 +f 1808/1893/10105 1801/1887/10106 1764/1846/10107 +f 1764/1846/10108 1767/1851/10109 1808/1893/10110 +f 1763/2036/10111 1802/1993/10112 1833/1994/10113 +f 1833/1994/10114 1768/1915/10115 1763/2036/10116 +f 1833/1994/10117 1805/1995/10118 1766/1916/10119 +f 1766/1916/10120 1768/1915/10121 1833/1994/10122 +f 1846/1931/10123 1758/1842/10124 1662/1744/10125 +f 1662/1744/10126 1847/1930/10127 1846/1931/10128 +f 1849/1932/10129 1848/1933/10130 1671/1755/10131 +f 1671/1755/10132 1762/1848/10133 1849/1932/10134 +f 1850/1934/10135 1659/1743/10136 1671/1755/10137 +f 1671/1755/10138 1848/1933/10139 1850/1934/10140 +f 1850/1934/10141 1847/1930/10142 1662/1744/10143 +f 1662/1744/10144 1659/1743/10145 1850/1934/10146 +f 1852/2049/10147 1851/2060/10148 1758/2037/10149 +f 1758/2037/10150 1846/2048/10151 1852/2049/10152 +f 1852/2049/10153 1849/2062/10154 1762/2061/10155 +f 1762/2061/10156 1851/2060/10157 1852/2049/10158 +f 1855/1939/10159 1854/1940/10160 1853/1937/10161 +f 1853/1937/10162 1856/1938/10163 1855/1939/10164 +f 1857/1942/10165 1855/1939/10166 1856/1938/10167 +f 1856/1938/10168 1858/1941/10169 1857/1942/10170 +f 1861/1945/10171 1860/1946/10172 1859/1943/10173 +f 1859/1943/10174 1862/1944/10175 1861/1945/10176 +f 1865/1949/10177 1864/1950/10178 1863/1947/10179 +f 1863/1947/10180 1866/1948/10181 1865/1949/10182 +f 1863/1947/10183 1868/1952/10184 1867/1951/10185 +f 1867/1951/10186 1866/1948/10187 1863/1947/10188 +f 1867/1951/10189 1868/1952/10190 1861/1945/10191 +f 1861/1945/10192 1862/1944/10193 1867/1951/10194 +f 1859/2065/10195 1860/2066/10196 1869/2063/10197 +f 1869/2063/10198 1870/2064/10199 1859/2065/10200 +f 1869/2063/10201 1864/2068/10202 1865/2067/10203 +f 1865/2067/10204 1870/2064/10205 1869/2063/10206 +f 1873/1957/10207 1872/1958/10208 1871/1955/10209 +f 1871/1955/10210 1874/1956/10211 1873/1957/10212 +f 1877/1961/10213 1876/1962/10214 1875/1959/10215 +f 1875/1959/10216 1878/1960/10217 1877/1961/10218 +f 1875/1959/10219 1880/1964/10220 1879/1963/10221 +f 1879/1963/10222 1878/1960/10223 1875/1959/10224 +f 1879/1963/10225 1880/1964/10226 1873/1957/10227 +f 1873/1957/10228 1874/1956/10229 1879/1963/10230 +f 1872/2076/10231 1882/2077/10232 1881/2074/10233 +f 1881/2074/10234 1871/2075/10235 1872/2076/10236 +f 1881/2074/10237 1882/2077/10238 1876/2078/10239 +f 1876/2078/10240 1877/2079/10241 1881/2074/10242 +f 1885/1969/10243 1884/1970/10244 1883/1967/10245 +f 1883/1967/10246 1886/1968/10247 1885/1969/10248 +f 1889/1973/10249 1888/1974/10250 1887/1971/10251 +f 1887/1971/10252 1890/1972/10253 1889/1973/10254 +f 1891/1976/10255 1889/1973/10256 1890/1972/10257 +f 1890/1972/10258 1892/1975/10259 1891/1976/10260 +f 1884/1970/10261 1891/1976/10262 1892/1975/10263 +f 1892/1975/10264 1883/1967/10265 1884/1970/10266 +f 1895/2082/10267 1894/2083/10268 1893/2080/10269 +f 1893/2080/10270 1896/2081/10271 1895/2082/10272 +f 1897/2085/10273 1895/2082/10274 1896/2081/10275 +f 1896/2081/10276 1898/2084/10277 1897/2085/10278 +f 1886/1968/10279 1883/1967/10280 1862/1944/10281 +f 1862/1944/10282 1859/1943/10283 1886/1968/10284 +f 1890/1972/10285 1887/1971/10286 1865/1949/10287 +f 1865/1949/10288 1866/1948/10289 1890/1972/10290 +f 1892/1975/10291 1890/1972/10292 1866/1948/10293 +f 1866/1948/10294 1867/1951/10295 1892/1975/10296 +f 1883/1967/10297 1892/1975/10298 1867/1951/10299 +f 1867/1951/10300 1862/1944/10301 1883/1967/10302 +f 1896/2081/10303 1893/2080/10304 1899/2086/10305 +f 1899/2086/10306 1900/2087/10307 1896/2081/10308 +f 1898/2084/10309 1896/2081/10310 1900/2087/10311 +f 1900/2087/10312 1901/2088/10313 1898/2084/10314 +f 1860/1946/10315 1861/1945/10316 1902/1986/10317 +f 1902/1986/10318 1903/1987/10319 1860/1946/10320 +f 1863/1947/10321 1864/1950/10322 1904/1988/10323 +f 1904/1988/10324 1905/1989/10325 1863/1947/10326 +f 1868/1952/10327 1863/1947/10328 1905/1989/10329 +f 1905/1989/10330 1906/1990/10331 1868/1952/10332 +f 1861/1945/10333 1868/1952/10334 1906/1990/10335 +f 1906/1990/10336 1902/1986/10337 1861/1945/10338 +f 1909/2091/10339 1908/2092/10340 1907/2089/10341 +f 1907/2089/10342 1910/2090/10343 1909/2091/10344 +f 1911/2094/10345 1909/2091/10346 1910/2090/10347 +f 1910/2090/10348 1912/2093/10349 1911/2094/10350 +f 1903/1987/10351 1902/1986/10352 1874/1956/10353 +f 1874/1956/10354 1871/1955/10355 1903/1987/10356 +f 1905/1989/10357 1904/1988/10358 1877/1961/10359 +f 1877/1961/10360 1878/1960/10361 1905/1989/10362 +f 1906/1990/10363 1905/1989/10364 1878/1960/10365 +f 1878/1960/10366 1879/1963/10367 1906/1990/10368 +f 1902/1986/10369 1906/1990/10370 1879/1963/10371 +f 1879/1963/10372 1874/1956/10373 1902/1986/10374 +f 1910/2090/10375 1907/2089/10376 1913/2095/10377 +f 1913/2095/10378 1914/2096/10379 1910/2090/10380 +f 1912/2093/10381 1910/2090/10382 1914/2096/10383 +f 1914/2096/10384 1915/2097/10385 1912/2093/10386 +f 1895/2082/10387 1916/2099/10388 1885/2098/10389 +f 1885/2098/10390 1894/2083/10391 1895/2082/10392 +f 1897/2085/10393 1888/2100/10394 1916/2099/10395 +f 1916/2099/10396 1895/2082/10397 1897/2085/10398 +f 1898/2084/10399 1887/2104/10400 1888/2100/10401 +f 1888/2100/10402 1897/2085/10403 1898/2084/10404 +f 1901/2088/10405 1865/2067/10406 1887/2104/10407 +f 1887/2104/10408 1898/2084/10409 1901/2088/10410 +f 1900/2087/10411 1870/2064/10412 1865/2067/10413 +f 1865/2067/10414 1901/2088/10415 1900/2087/10416 +f 1899/2086/10417 1859/2065/10418 1870/2064/10419 +f 1870/2064/10420 1900/2087/10421 1899/2086/10422 +f 1893/2080/10423 1886/2105/10424 1859/2065/10425 +f 1859/2065/10426 1899/2086/10427 1893/2080/10428 +f 1894/2083/10429 1885/2098/10430 1886/2105/10431 +f 1886/2105/10432 1893/2080/10433 1894/2083/10434 +f 1909/2091/10435 1869/2063/10436 1860/2066/10437 +f 1860/2066/10438 1908/2092/10439 1909/2091/10440 +f 1911/2094/10441 1864/2068/10442 1869/2063/10443 +f 1869/2063/10444 1909/2091/10445 1911/2094/10446 +f 1912/2093/10447 1904/2106/10448 1864/2068/10449 +f 1864/2068/10450 1911/2094/10451 1912/2093/10452 +f 1915/2097/10453 1877/2079/10454 1904/2106/10455 +f 1904/2106/10456 1912/2093/10457 1915/2097/10458 +f 1914/2096/10459 1881/2074/10460 1877/2079/10461 +f 1877/2079/10462 1915/2097/10463 1914/2096/10464 +f 1913/2095/10465 1871/2075/10466 1881/2074/10467 +f 1881/2074/10468 1914/2096/10469 1913/2095/10470 +f 1907/2089/10471 1903/2128/10472 1871/2075/10473 +f 1871/2075/10474 1913/2095/10475 1907/2089/10476 +f 1908/2092/10477 1860/2066/10478 1903/2128/10479 +f 1903/2128/10480 1907/2089/10481 1908/2092/10482 +f 1857/1942/10483 1858/1941/10484 1872/1958/10485 +f 1872/1958/10486 1873/1957/10487 1857/1942/10488 +f 1876/1962/10489 1853/1937/10490 1854/1940/10491 +f 1854/1940/10492 1875/1959/10493 1876/1962/10494 +f 1854/1940/10495 1855/1939/10496 1880/1964/10497 +f 1880/1964/10498 1875/1959/10499 1854/1940/10500 +f 1880/1964/10501 1855/1939/10502 1857/1942/10503 +f 1857/1942/10504 1873/1957/10505 1880/1964/10506 +f 1919/2133/10507 1918/2134/10508 1917/2129/10509 +f 1917/2129/10510 1920/2132/10511 1919/2133/10512 +f 1920/2132/10513 1917/2129/10514 1921/2135/10515 +f 1921/2135/10516 1922/2136/10517 1920/2132/10518 +f 1923/2140/10519 1858/2141/10520 1856/2137/10521 +f 1856/2137/10522 1924/2139/10523 1923/2140/10524 +f 1925/2142/10525 1872/2076/10526 1858/2141/10527 +f 1858/2141/10528 1923/2140/10529 1925/2142/10530 +f 1926/2143/10531 1882/2077/10532 1872/2076/10533 +f 1872/2076/10534 1925/2142/10535 1926/2143/10536 +f 1927/2148/10537 1876/2078/10538 1882/2077/10539 +f 1882/2077/10540 1926/2143/10541 1927/2148/10542 +f 1928/2149/10543 1853/2150/10544 1876/2078/10545 +f 1876/2078/10546 1927/2148/10547 1928/2149/10548 +f 1924/2139/10549 1856/2137/10550 1853/2150/10551 +f 1853/2150/10552 1928/2149/10553 1924/2139/10554 +f 1918/2134/10555 1923/2140/10556 1924/2139/10557 +f 1924/2139/10558 1917/2129/10559 1918/2134/10560 +f 1919/2133/10561 1925/2142/10562 1923/2140/10563 +f 1923/2140/10564 1918/2134/10565 1919/2133/10566 +f 1920/2132/10567 1926/2143/10568 1925/2142/10569 +f 1925/2142/10570 1919/2133/10571 1920/2132/10572 +f 1922/2136/10573 1927/2148/10574 1926/2143/10575 +f 1926/2143/10576 1920/2132/10577 1922/2136/10578 +f 1921/2135/10579 1928/2149/10580 1927/2148/10581 +f 1927/2148/10582 1922/2136/10583 1921/2135/10584 +f 1917/2129/10585 1924/2139/10586 1928/2149/10587 +f 1928/2149/10588 1921/2135/10589 1917/2129/10590 +f 1847/1930/10591 1884/1970/10592 1885/1969/10593 +f 1885/1969/10594 1846/1931/10595 1847/1930/10596 +f 1888/1974/10597 1889/1973/10598 1848/1933/10599 +f 1848/1933/10600 1849/1932/10601 1888/1974/10602 +f 1848/1933/10603 1889/1973/10604 1891/1976/10605 +f 1891/1976/10606 1850/1934/10607 1848/1933/10608 +f 1891/1976/10609 1884/1970/10610 1847/1930/10611 +f 1847/1930/10612 1850/1934/10613 1891/1976/10614 +f 1846/2048/10615 1885/2098/10616 1916/2099/10617 +f 1916/2099/10618 1852/2049/10619 1846/2048/10620 +f 1916/2099/10621 1888/2100/10622 1849/2062/10623 +f 1849/2062/10624 1852/2049/10625 1916/2099/10626 +f 1929/2014/10627 1642/1724/10628 1639/1723/10629 +f 1639/1723/10630 1930/2013/10631 1929/2014/10632 +f 1932/2015/10633 1931/2016/10634 1668/1752/10635 +f 1668/1752/10636 1760/1845/10637 1932/2015/10638 +f 1933/2017/10639 1644/1728/10640 1668/1752/10641 +f 1668/1752/10642 1931/2016/10643 1933/2017/10644 +f 1933/2017/10645 1930/2013/10646 1639/1723/10647 +f 1639/1723/10648 1644/1728/10649 1933/2017/10650 +f 1935/2152/10651 1934/2153/10652 1642/1749/10653 +f 1642/1749/10654 1929/2151/10655 1935/2152/10656 +f 1935/2152/10657 1932/2160/10658 1760/2159/10659 +f 1760/2159/10660 1934/2153/10661 1935/2152/10662 +f 1938/2022/10663 1937/2023/10664 1936/2020/10665 +f 1936/2020/10666 1939/2021/10667 1938/2022/10668 +f 1940/2025/10669 1938/2022/10670 1939/2021/10671 +f 1939/2021/10672 1941/2024/10673 1940/2025/10674 +f 1944/2028/10675 1943/2029/10676 1942/2026/10677 +f 1942/2026/10678 1945/2027/10679 1944/2028/10680 +f 1948/2032/10681 1947/2033/10682 1946/2030/10683 +f 1946/2030/10684 1949/2031/10685 1948/2032/10686 +f 1946/2030/10687 1951/2035/10688 1950/2034/10689 +f 1950/2034/10690 1949/2031/10691 1946/2030/10692 +f 1950/2034/10693 1951/2035/10694 1944/2028/10695 +f 1944/2028/10696 1945/2027/10697 1950/2034/10698 +f 1942/2163/10699 1943/2164/10700 1952/2161/10701 +f 1952/2161/10702 1953/2162/10703 1942/2163/10704 +f 1952/2161/10705 1947/2167/10706 1948/2166/10707 +f 1948/2166/10708 1953/2162/10709 1952/2161/10710 +f 1956/2040/10711 1955/2041/10712 1954/2038/10713 +f 1954/2038/10714 1957/2039/10715 1956/2040/10716 +f 1960/2044/10717 1959/2045/10718 1958/2042/10719 +f 1958/2042/10720 1961/2043/10721 1960/2044/10722 +f 1958/2042/10723 1963/2047/10724 1962/2046/10725 +f 1962/2046/10726 1961/2043/10727 1958/2042/10728 +f 1962/2046/10729 1963/2047/10730 1956/2040/10731 +f 1956/2040/10732 1957/2039/10733 1962/2046/10734 +f 1955/2170/10735 1965/2171/10736 1964/2168/10737 +f 1964/2168/10738 1954/2169/10739 1955/2170/10740 +f 1964/2168/10741 1965/2171/10742 1959/2172/10743 +f 1959/2172/10744 1960/2173/10745 1964/2168/10746 +f 1968/2052/10747 1967/2053/10748 1966/2050/10749 +f 1966/2050/10750 1969/2051/10751 1968/2052/10752 +f 1972/2056/10753 1971/2057/10754 1970/2054/10755 +f 1970/2054/10756 1973/2055/10757 1972/2056/10758 +f 1974/2059/10759 1972/2056/10760 1973/2055/10761 +f 1973/2055/10762 1975/2058/10763 1974/2059/10764 +f 1967/2053/10765 1974/2059/10766 1975/2058/10767 +f 1975/2058/10768 1966/2050/10769 1967/2053/10770 +f 1978/2183/10771 1977/2185/10772 1976/2174/10773 +f 1976/2174/10774 1979/2175/10775 1978/2183/10776 +f 1980/2187/10777 1978/2183/10778 1979/2175/10779 +f 1979/2175/10780 1981/2186/10781 1980/2187/10782 +f 1969/2051/10783 1966/2050/10784 1945/2027/10785 +f 1945/2027/10786 1942/2026/10787 1969/2051/10788 +f 1973/2055/10789 1970/2054/10790 1948/2032/10791 +f 1948/2032/10792 1949/2031/10793 1973/2055/10794 +f 1975/2058/10795 1973/2055/10796 1949/2031/10797 +f 1949/2031/10798 1950/2034/10799 1975/2058/10800 +f 1966/2050/10801 1975/2058/10802 1950/2034/10803 +f 1950/2034/10804 1945/2027/10805 1966/2050/10806 +f 1979/2175/10807 1976/2174/10808 1982/2188/10809 +f 1982/2188/10810 1983/2189/10811 1979/2175/10812 +f 1981/2186/10813 1979/2175/10814 1983/2189/10815 +f 1983/2189/10816 1984/2190/10817 1981/2186/10818 +f 1943/2029/10819 1944/2028/10820 1985/2069/10821 +f 1985/2069/10822 1986/2070/10823 1943/2029/10824 +f 1946/2030/10825 1947/2033/10826 1987/2071/10827 +f 1987/2071/10828 1988/2072/10829 1946/2030/10830 +f 1951/2035/10831 1946/2030/10832 1988/2072/10833 +f 1988/2072/10834 1989/2073/10835 1951/2035/10836 +f 1944/2028/10837 1951/2035/10838 1989/2073/10839 +f 1989/2073/10840 1985/2069/10841 1944/2028/10842 +f 1992/2196/10843 1991/2197/10844 1990/2191/10845 +f 1990/2191/10846 1993/2195/10847 1992/2196/10848 +f 1994/2205/10849 1992/2196/10850 1993/2195/10851 +f 1993/2195/10852 1995/2198/10853 1994/2205/10854 +f 1986/2070/10855 1985/2069/10856 1957/2039/10857 +f 1957/2039/10858 1954/2038/10859 1986/2070/10860 +f 1988/2072/10861 1987/2071/10862 1960/2044/10863 +f 1960/2044/10864 1961/2043/10865 1988/2072/10866 +f 1989/2073/10867 1988/2072/10868 1961/2043/10869 +f 1961/2043/10870 1962/2046/10871 1989/2073/10872 +f 1985/2069/10873 1989/2073/10874 1962/2046/10875 +f 1962/2046/10876 1957/2039/10877 1985/2069/10878 +f 1993/2195/10879 1990/2191/10880 1996/2212/10881 +f 1996/2212/10882 1997/2213/10883 1993/2195/10884 +f 1995/2198/10885 1993/2195/10886 1997/2213/10887 +f 1997/2213/10888 1998/2214/10889 1995/2198/10890 +f 1978/2183/10891 1999/2216/10892 1968/2215/10893 +f 1968/2215/10894 1977/2185/10895 1978/2183/10896 +f 1980/2187/10897 1971/2217/10898 1999/2216/10899 +f 1999/2216/10900 1978/2183/10901 1980/2187/10902 +f 1981/2186/10903 1970/2218/10904 1971/2217/10905 +f 1971/2217/10906 1980/2187/10907 1981/2186/10908 +f 1984/2190/10909 1948/2166/10910 1970/2218/10911 +f 1970/2218/10912 1981/2186/10913 1984/2190/10914 +f 1983/2189/10915 1953/2162/10916 1948/2166/10917 +f 1948/2166/10918 1984/2190/10919 1983/2189/10920 +f 1982/2188/10921 1942/2163/10922 1953/2162/10923 +f 1953/2162/10924 1983/2189/10925 1982/2188/10926 +f 1976/2174/10927 1969/2219/10928 1942/2163/10929 +f 1942/2163/10930 1982/2188/10931 1976/2174/10932 +f 1977/2185/10933 1968/2215/10934 1969/2219/10935 +f 1969/2219/10936 1976/2174/10937 1977/2185/10938 +f 1992/2196/10939 1952/2161/10940 1943/2164/10941 +f 1943/2164/10942 1991/2197/10943 1992/2196/10944 +f 1994/2205/10945 1947/2167/10946 1952/2161/10947 +f 1952/2161/10948 1992/2196/10949 1994/2205/10950 +f 1995/2198/10951 1987/2220/10952 1947/2167/10953 +f 1947/2167/10954 1994/2205/10955 1995/2198/10956 +f 1998/2214/10957 1960/2173/10958 1987/2220/10959 +f 1987/2220/10960 1995/2198/10961 1998/2214/10962 +f 1997/2213/10963 1964/2168/10964 1960/2173/10965 +f 1960/2173/10966 1998/2214/10967 1997/2213/10968 +f 1996/2212/10969 1954/2169/10970 1964/2168/10971 +f 1964/2168/10972 1997/2213/10973 1996/2212/10974 +f 1990/2191/10975 1986/2221/10976 1954/2169/10977 +f 1954/2169/10978 1996/2212/10979 1990/2191/10980 +f 1991/2197/10981 1943/2164/10982 1986/2221/10983 +f 1986/2221/10984 1990/2191/10985 1991/2197/10986 +f 1940/2025/10987 1941/2024/10988 1955/2041/10989 +f 1955/2041/10990 1956/2040/10991 1940/2025/10992 +f 1959/2045/10993 1936/2020/10994 1937/2023/10995 +f 1937/2023/10996 1958/2042/10997 1959/2045/10998 +f 1937/2023/10999 1938/2022/11000 1963/2047/11001 +f 1963/2047/11002 1958/2042/11003 1937/2023/11004 +f 1963/2047/11005 1938/2022/11006 1940/2025/11007 +f 1940/2025/11008 1956/2040/11009 1963/2047/11010 +f 2002/2224/11011 2001/2252/11012 2000/2222/11013 +f 2000/2222/11014 2003/2223/11015 2002/2224/11016 +f 2003/2223/11017 2000/2222/11018 2004/2253/11019 +f 2004/2253/11020 2005/2254/11021 2003/2223/11022 +f 2006/2260/11023 1941/2261/11024 1939/2255/11025 +f 1939/2255/11026 2007/2259/11027 2006/2260/11028 +f 2008/2262/11029 1955/2170/11030 1941/2261/11031 +f 1941/2261/11032 2006/2260/11033 2008/2262/11034 +f 2009/2263/11035 1965/2171/11036 1955/2170/11037 +f 1955/2170/11038 2008/2262/11039 2009/2263/11040 +f 2010/2264/11041 1959/2172/11042 1965/2171/11043 +f 1965/2171/11044 2009/2263/11045 2010/2264/11046 +f 2011/2265/11047 1936/2266/11048 1959/2172/11049 +f 1959/2172/11050 2010/2264/11051 2011/2265/11052 +f 2007/2259/11053 1939/2255/11054 1936/2266/11055 +f 1936/2266/11056 2011/2265/11057 2007/2259/11058 +f 2001/2252/11059 2006/2260/11060 2007/2259/11061 +f 2007/2259/11062 2000/2222/11063 2001/2252/11064 +f 2002/2224/11065 2008/2262/11066 2006/2260/11067 +f 2006/2260/11068 2001/2252/11069 2002/2224/11070 +f 2003/2223/11071 2009/2263/11072 2008/2262/11073 +f 2008/2262/11074 2002/2224/11075 2003/2223/11076 +f 2005/2254/11077 2010/2264/11078 2009/2263/11079 +f 2009/2263/11080 2003/2223/11081 2005/2254/11082 +f 2004/2253/11083 2011/2265/11084 2010/2264/11085 +f 2010/2264/11086 2005/2254/11087 2004/2253/11088 +f 2000/2222/11089 2007/2259/11090 2011/2265/11091 +f 2011/2265/11092 2004/2253/11093 2000/2222/11094 +f 1930/2013/11095 1967/2053/11096 1968/2052/11097 +f 1968/2052/11098 1929/2014/11099 1930/2013/11100 +f 1971/2057/11101 1972/2056/11102 1931/2016/11103 +f 1931/2016/11104 1932/2015/11105 1971/2057/11106 +f 1931/2016/11107 1972/2056/11108 1974/2059/11109 +f 1974/2059/11110 1933/2017/11111 1931/2016/11112 +f 1974/2059/11113 1967/2053/11114 1930/2013/11115 +f 1930/2013/11116 1933/2017/11117 1974/2059/11118 +f 1929/2151/11119 1968/2215/11120 1999/2216/11121 +f 1999/2216/11122 1935/2152/11123 1929/2151/11124 +f 1999/2216/11125 1971/2217/11126 1932/2160/11127 +f 1932/2160/11128 1935/2152/11129 1999/2216/11130 +f 1654/1736/11131 1642/1749/11132 1934/2153/11133 +f 1934/2153/11134 1653/1737/11135 1654/1736/11136 +f 1651/1735/11137 2012/2267/11138 1642/2579/11139 +f 1642/2579/11140 1654/1736/11141 1651/1735/11142 +f 1652/1738/11143 2013/2268/11144 2012/2267/11145 +f 2012/2267/11146 1651/1735/11147 1652/1738/11148 +f 1669/1775/11149 1761/2269/11150 2013/2268/11151 +f 2013/2268/11152 1652/1738/11153 1669/1775/11154 +f 1670/1774/11155 1760/2159/11156 1761/2269/11157 +f 1761/2269/11158 1669/1775/11159 1670/1774/11160 +f 1653/1737/11161 1934/2153/11162 1760/2159/11163 +f 1760/2159/11164 1670/1774/11165 1653/1737/11166 +f 1650/1732/11167 1636/1741/11168 1657/1748/11169 +f 1657/1748/11170 1649/1733/11171 1650/1732/11172 +f 1647/1731/11173 2014/2270/11174 1636/1741/11175 +f 1636/1741/11176 1650/1732/11177 1647/1731/11178 +f 1648/1734/11179 2015/2271/11180 2014/2270/11181 +f 2014/2270/11182 1647/1731/11183 1648/1734/11184 +f 1754/1911/11185 2012/2267/11186 2015/2271/11187 +f 2015/2271/11188 1648/1734/11189 1754/1911/11190 +f 1755/1910/11191 1642/2579/11192 2012/2267/11193 +f 2012/2267/11194 1754/1911/11195 1755/1910/11196 +f 1649/1733/11197 1657/1748/11198 1642/2383/11199 +f 1642/2383/11200 1755/1910/11201 1649/1733/11202 +f 1752/1908/11203 1769/1914/11204 1636/1741/11205 +f 1636/1741/11206 1757/1912/11207 1752/1908/11208 +f 1753/1902/11209 1762/2061/11210 1769/1914/11211 +f 1769/1914/11212 1752/1908/11213 1753/1902/11214 +f 1750/1901/11215 1634/1716/11216 1762/2061/11217 +f 1762/2061/11218 1753/1902/11219 1750/1901/11220 +f 1751/1909/11221 2016/2272/11222 1634/1716/11223 +f 1634/1716/11224 1750/1901/11225 1751/1909/11226 +f 1756/1913/11227 2014/2270/11228 2016/2272/11229 +f 2016/2272/11230 1751/1909/11231 1756/1913/11232 +f 1757/1912/11233 1636/1741/11234 2014/2270/11235 +f 2014/2270/11236 1756/1913/11237 1757/1912/11238 +f 1666/1754/11239 1758/2037/11240 1851/2060/11241 +f 1851/2060/11242 1665/1756/11243 1666/1754/11244 +f 1663/1753/11245 1759/2273/11246 1758/2037/11247 +f 1758/2037/11248 1666/1754/11249 1663/1753/11250 +f 1664/1757/11251 1631/1715/11252 1759/2273/11253 +f 1759/2273/11254 1663/1753/11255 1664/1757/11256 +f 1672/1787/11257 1634/1716/11258 1631/1715/11259 +f 1631/1715/11260 1664/1757/11261 1672/1787/11262 +f 1673/1786/11263 1762/2061/11264 1634/1716/11265 +f 1634/1716/11266 1672/1787/11267 1673/1786/11268 +f 1665/1756/11269 1851/2060/11270 1762/2061/11271 +f 1762/2061/11272 1673/1786/11273 1665/1756/11274 +f 1763/2036/11275 1768/1915/11276 1769/1914/11277 +f 1769/1914/11278 1762/2061/11279 1763/2036/11280 +f 1661/1745/11281 1759/1843/11282 2017/2101/11283 +f 2017/2101/11284 2018/2102/11285 1661/1745/11286 +f 1617/1703/11287 1618/1702/11288 1626/1709/11289 +f 1626/1709/11290 2019/2103/11291 1617/1703/11292 +f 2016/2272/11293 2014/2270/11294 2020/2274/11295 +f 2020/2274/11296 2021/2275/11297 2016/2272/11298 +f 1625/1710/11299 1618/1702/11300 1619/1701/11301 +f 1619/1701/11302 1660/1746/11303 1625/1710/11304 +f 1628/1714/11305 2012/2267/11306 2013/2268/11307 +f 2013/2268/11308 2022/2276/11309 1628/1714/11310 +f 2015/2271/11311 2012/2267/11312 1628/1714/11313 +f 1628/1714/11314 1629/1713/11315 2015/2271/11316 +f 2025/2109/11317 2024/2110/11318 2023/2107/11319 +f 2023/2107/11320 2026/2108/11321 2025/2109/11322 +f 2027/2112/11323 2026/2108/11324 2023/2107/11325 +f 2023/2107/11326 2028/2111/11327 2027/2112/11328 +f 2030/2114/11329 2029/2115/11330 2027/2112/11331 +f 2027/2112/11332 2031/2113/11333 2030/2114/11334 +f 2026/2108/11335 2033/2117/11336 2032/2116/11337 +f 2032/2116/11338 2025/2109/11339 2026/2108/11340 +f 2029/2115/11341 2033/2117/11342 2026/2108/11343 +f 2026/2108/11344 2027/2112/11345 2029/2115/11346 +f 1615/1697/11347 2035/2119/11348 2034/2118/11349 +f 2034/2118/11350 1614/1698/11351 1615/1697/11352 +f 2038/2122/11353 2037/2123/11354 2036/2120/11355 +f 2036/2120/11356 2039/2121/11357 2038/2122/11358 +f 2040/2125/11359 2037/2123/11360 2038/2122/11361 +f 2038/2122/11362 2041/2124/11363 2040/2125/11364 +f 2039/2121/11365 2036/2120/11366 2042/2126/11367 +f 2042/2126/11368 2043/2127/11369 2039/2121/11370 +f 2043/2279/11371 2042/2280/11372 2044/2277/11373 +f 2044/2277/11374 2045/2278/11375 2043/2279/11376 +f 2045/2278/11377 2044/2277/11378 2046/2281/11379 +f 2046/2281/11380 2047/2282/11381 2045/2278/11382 +f 2046/2131/11383 2040/2125/11384 2041/2124/11385 +f 2041/2124/11386 2047/2130/11387 2046/2131/11388 +f 2050/2285/11389 2049/2286/11390 2048/2283/11391 +f 2048/2283/11392 2051/2284/11393 2050/2285/11394 +f 2052/2288/11395 2050/2285/11396 2051/2284/11397 +f 2051/2284/11398 2053/2287/11399 2052/2288/11400 +f 2032/2116/11401 2033/2117/11402 2038/2122/11403 +f 2038/2122/11404 2039/2121/11405 2032/2116/11406 +f 2033/2117/11407 2029/2115/11408 2041/2124/11409 +f 2041/2124/11410 2038/2122/11411 2033/2117/11412 +f 2054/2138/11413 2032/2116/11414 2039/2121/11415 +f 2039/2121/11416 2043/2127/11417 2054/2138/11418 +f 2051/2284/11419 2048/2283/11420 2055/2289/11421 +f 2055/2289/11422 2056/2290/11423 2051/2284/11424 +f 2053/2287/11425 2051/2284/11426 2056/2290/11427 +f 2056/2290/11428 2057/2291/11429 2053/2287/11430 +f 2029/2115/11431 2030/2114/11432 2047/2130/11433 +f 2047/2130/11434 2041/2124/11435 2029/2115/11436 +f 2050/2285/11437 2059/2293/11438 2058/2292/11439 +f 2058/2292/11440 2049/2286/11441 2050/2285/11442 +f 2052/2288/11443 2031/2294/11444 2059/2293/11445 +f 2059/2293/11446 2050/2285/11447 2052/2288/11448 +f 2053/2287/11449 2030/2295/11450 2031/2294/11451 +f 2031/2294/11452 2052/2288/11453 2053/2287/11454 +f 2057/2291/11455 2047/2282/11456 2030/2295/11457 +f 2030/2295/11458 2053/2287/11459 2057/2291/11460 +f 2056/2290/11461 2045/2278/11462 2047/2282/11463 +f 2047/2282/11464 2057/2291/11465 2056/2290/11466 +f 2055/2289/11467 2043/2279/11468 2045/2278/11469 +f 2045/2278/11470 2056/2290/11471 2055/2289/11472 +f 2048/2283/11473 2054/2296/11474 2043/2279/11475 +f 2043/2279/11476 2055/2289/11477 2048/2283/11478 +f 2049/2286/11479 2058/2292/11480 2054/2296/11481 +f 2054/2296/11482 2048/2283/11483 2049/2286/11484 +f 1615/1697/11485 1612/1696/11486 2060/2144/11487 +f 2060/2144/11488 2061/2145/11489 1615/1697/11490 +f 2035/2119/11491 1615/1697/11492 2061/2145/11493 +f 2061/2145/11494 2062/2146/11495 2035/2119/11496 +f 2060/2144/11497 1612/1696/11498 1613/1699/11499 +f 1613/1699/11500 2063/2147/11501 2060/2144/11502 +f 2066/2299/11503 2065/2300/11504 2064/2297/11505 +f 2064/2297/11506 2067/2298/11507 2066/2299/11508 +f 2067/2298/11509 2064/2297/11510 2068/2301/11511 +f 2068/2301/11512 2069/2302/11513 2067/2298/11514 +f 2070/2154/11515 2034/2118/11516 2035/2119/11517 +f 2035/2119/11518 2062/2146/11519 2070/2154/11520 +f 2036/2120/11521 2037/2123/11522 2071/2155/11523 +f 2071/2155/11524 2072/2156/11525 2036/2120/11526 +f 2037/2123/11527 2040/2125/11528 2073/2157/11529 +f 2073/2157/11530 2071/2155/11531 2037/2123/11532 +f 2042/2126/11533 2036/2120/11534 2072/2156/11535 +f 2072/2156/11536 2074/2158/11537 2042/2126/11538 +f 2077/2305/11539 2076/2306/11540 2075/2303/11541 +f 2075/2303/11542 2078/2304/11543 2077/2305/11544 +f 2079/2308/11545 2077/2305/11546 2078/2304/11547 +f 2078/2304/11548 2080/2307/11549 2079/2308/11550 +f 2040/2125/11551 2046/2131/11552 2081/2165/11553 +f 2081/2165/11554 2073/2157/11555 2040/2125/11556 +f 2072/2156/11557 2071/2155/11558 2061/2145/11559 +f 2061/2145/11560 2060/2144/11561 2072/2156/11562 +f 2071/2155/11563 2073/2157/11564 2062/2146/11565 +f 2062/2146/11566 2061/2145/11567 2071/2155/11568 +f 2074/2158/11569 2072/2156/11570 2060/2144/11571 +f 2060/2144/11572 2063/2147/11573 2074/2158/11574 +f 2078/2304/11575 2075/2303/11576 2082/2309/11577 +f 2082/2309/11578 2083/2310/11579 2078/2304/11580 +f 2080/2307/11581 2078/2304/11582 2083/2310/11583 +f 2083/2310/11584 2084/2311/11585 2080/2307/11586 +f 2073/2157/11587 2081/2165/11588 2070/2154/11589 +f 2070/2154/11590 2062/2146/11591 2073/2157/11592 +f 2077/2305/11593 2044/2277/11594 2042/2280/11595 +f 2042/2280/11596 2076/2306/11597 2077/2305/11598 +f 2079/2308/11599 2046/2281/11600 2044/2277/11601 +f 2044/2277/11602 2077/2305/11603 2079/2308/11604 +f 2080/2307/11605 2081/2312/11606 2046/2281/11607 +f 2046/2281/11608 2079/2308/11609 2080/2307/11610 +f 2084/2311/11611 2070/2313/11612 2081/2312/11613 +f 2081/2312/11614 2080/2307/11615 2084/2311/11616 +f 2083/2310/11617 2085/2314/11618 2070/2313/11619 +f 2070/2313/11620 2084/2311/11621 2083/2310/11622 +f 2082/2309/11623 2063/2315/11624 2085/2314/11625 +f 2085/2314/11626 2083/2310/11627 2082/2309/11628 +f 2075/2303/11629 2074/2316/11630 2063/2315/11631 +f 2063/2315/11632 2082/2309/11633 2075/2303/11634 +f 2076/2306/11635 2042/2280/11636 2074/2316/11637 +f 2074/2316/11638 2075/2303/11639 2076/2306/11640 +f 2086/2319/11641 1613/2320/11642 1614/2317/11643 +f 1614/2317/11644 2087/2318/11645 2086/2319/11646 +f 2088/2321/11647 2063/2315/11648 1613/2320/11649 +f 1613/2320/11650 2086/2319/11651 2088/2321/11652 +f 2089/2322/11653 2085/2314/11654 2063/2315/11655 +f 2063/2315/11656 2088/2321/11657 2089/2322/11658 +f 2090/2323/11659 2070/2313/11660 2085/2314/11661 +f 2085/2314/11662 2089/2322/11663 2090/2323/11664 +f 2091/2324/11665 2034/2325/11666 2070/2313/11667 +f 2070/2313/11668 2090/2323/11669 2091/2324/11670 +f 2087/2318/11671 1614/2317/11672 2034/2325/11673 +f 2034/2325/11674 2091/2324/11675 2087/2318/11676 +f 2065/2300/11677 2086/2319/11678 2087/2318/11679 +f 2087/2318/11680 2064/2297/11681 2065/2300/11682 +f 2066/2299/11683 2088/2321/11684 2086/2319/11685 +f 2086/2319/11686 2065/2300/11687 2066/2299/11688 +f 2067/2298/11689 2089/2322/11690 2088/2321/11691 +f 2088/2321/11692 2066/2299/11693 2067/2298/11694 +f 2069/2302/11695 2090/2323/11696 2089/2322/11697 +f 2089/2322/11698 2067/2298/11699 2069/2302/11700 +f 2068/2301/11701 2091/2324/11702 2090/2323/11703 +f 2090/2323/11704 2069/2302/11705 2068/2301/11706 +f 2064/2297/11707 2087/2318/11708 2091/2324/11709 +f 2091/2324/11710 2068/2301/11711 2064/2297/11712 +f 1646/1729/11713 2093/2177/11714 2092/2176/11715 +f 2092/2176/11716 1645/1730/11717 1646/1729/11718 +f 2096/2180/11719 2095/2181/11720 2094/2178/11721 +f 2094/2178/11722 2097/2179/11723 2096/2180/11724 +f 2098/2182/11725 1621/1707/11726 1617/1703/11727 +f 1617/1703/11728 2019/2103/11729 2098/2182/11730 +f 2017/2326/11731 1759/2273/11732 1631/1715/11733 +f 1631/1715/11734 1632/1718/11735 2017/2326/11736 +f 2099/2329/11737 1608/2330/11738 1609/2327/11739 +f 1609/2327/11740 2100/2328/11741 2099/2329/11742 +f 1633/1717/11743 1634/1716/11744 2016/2272/11745 +f 2016/2272/11746 2021/2275/11747 1633/1717/11748 +f 2102/2333/11749 1627/1711/11750 2101/2331/11751 +f 2101/2331/11752 2103/2332/11753 2102/2333/11754 +f 1628/1714/11755 2022/2276/11756 2101/2331/11757 +f 2101/2331/11758 1627/1711/11759 1628/1714/11760 +f 2105/2336/11761 2104/2337/11762 2024/2334/11763 +f 2024/2334/11764 2025/2335/11765 2105/2336/11766 +f 2020/2274/11767 2014/2270/11768 2015/2271/11769 +f 2015/2271/11770 1629/1713/11771 2020/2274/11772 +f 2102/2333/11773 2106/2338/11774 1630/1712/11775 +f 1630/1712/11776 1627/1711/11777 2102/2333/11778 +f 2020/2274/11779 1629/1713/11780 1630/1712/11781 +f 1630/1712/11782 2107/2339/11783 2020/2274/11784 +f 2108/2184/11785 1667/1751/11786 1645/1730/11787 +f 1645/1730/11788 2092/2176/11789 2108/2184/11790 +f 1761/1844/11791 1667/1751/11792 2108/2184/11793 +f 2108/2184/11794 2109/2192/11795 1761/1844/11796 +f 2013/2268/11797 1761/2269/11798 2109/2340/11799 +f 2109/2340/11800 2022/2276/11801 2013/2268/11802 +f 2110/2193/11803 1620/1704/11804 1621/1707/11805 +f 1621/1707/11806 2098/2182/11807 2110/2193/11808 +f 2111/2341/11809 2101/2331/11810 2022/2276/11811 +f 2022/2276/11812 2104/2337/11813 2111/2341/11814 +f 2112/2342/11815 2103/2332/11816 2101/2331/11817 +f 2101/2331/11818 2111/2341/11819 2112/2342/11820 +f 2114/2343/11821 2113/2344/11822 2103/2332/11823 +f 2103/2332/11824 2112/2342/11825 2114/2343/11826 +f 2115/2345/11827 2097/2346/11828 2113/2344/11829 +f 2113/2344/11830 2114/2343/11831 2115/2345/11832 +f 2116/2199/11833 2096/2180/11834 2097/2179/11835 +f 2097/2179/11836 2115/2194/11837 2116/2199/11838 +f 2093/2177/11839 1620/1704/11840 2110/2193/11841 +f 2110/2193/11842 2117/2200/11843 2093/2177/11844 +f 2117/2200/11845 2110/2193/11846 2096/2180/11847 +f 2096/2180/11848 2116/2199/11849 2117/2200/11850 +f 2118/2202/11851 2027/2112/11852 2028/2111/11853 +f 2028/2111/11854 2119/2201/11855 2118/2202/11856 +f 2059/2293/11857 2114/2343/11858 2112/2342/11859 +f 2112/2342/11860 2058/2292/11861 2059/2293/11862 +f 2115/2345/11863 2114/2343/11864 2059/2293/11865 +f 2059/2293/11866 2031/2294/11867 2115/2345/11868 +f 2120/2203/11869 2116/2199/11870 2115/2194/11871 +f 2115/2194/11872 2031/2113/11873 2120/2203/11874 +f 2117/2200/11875 2116/2199/11876 2120/2203/11877 +f 2120/2203/11878 2118/2202/11879 2117/2200/11880 +f 2093/2177/11881 2117/2200/11882 2118/2202/11883 +f 2118/2202/11884 2119/2201/11885 2093/2177/11886 +f 2092/2176/11887 2093/2177/11888 2119/2201/11889 +f 2119/2201/11890 2028/2111/11891 2092/2176/11892 +f 2109/2192/11893 2108/2184/11894 2023/2107/11895 +f 2023/2107/11896 2024/2110/11897 2109/2192/11898 +f 2104/2337/11899 2022/2276/11900 2109/2340/11901 +f 2109/2340/11902 2024/2334/11903 2104/2337/11904 +f 2112/2342/11905 2111/2341/11906 2121/2347/11907 +f 2121/2347/11908 2058/2292/11909 2112/2342/11910 +f 2023/2107/11911 2108/2184/11912 2092/2176/11913 +f 2092/2176/11914 2028/2111/11915 2023/2107/11916 +f 2105/2336/11917 2121/2347/11918 2111/2341/11919 +f 2111/2341/11920 2104/2337/11921 2105/2336/11922 +f 2105/2336/11923 2025/2335/11924 2122/2348/11925 +f 2122/2348/11926 2121/2347/11927 2105/2336/11928 +f 1611/1693/11929 2124/2206/11930 2123/2204/11931 +f 2123/2204/11932 1610/1694/11933 1611/1693/11934 +f 1661/1745/11935 2018/2102/11936 1625/1710/11937 +f 1625/1710/11938 1660/1746/11939 1661/1745/11940 +f 2099/2329/11941 2100/2328/11942 2017/2326/11943 +f 2017/2326/11944 1632/1718/11945 2099/2329/11946 +f 2125/2208/11947 2018/2102/11948 2017/2101/11949 +f 2017/2101/11950 2100/2207/11951 2125/2208/11952 +f 1624/1708/11953 1625/1710/11954 2018/2102/11955 +f 2018/2102/11956 2125/2208/11957 1624/1708/11958 +f 1620/1704/11959 2093/2177/11960 1646/1729/11961 +f 1646/1729/11962 1623/1705/11963 1620/1704/11964 +f 1621/1707/11965 1622/1706/11966 1616/1700/11967 +f 1616/1700/11968 1617/1703/11969 1621/1707/11970 +f 2019/2103/11971 2126/2209/11972 2095/2181/11973 +f 2095/2181/11974 2098/2182/11975 2019/2103/11976 +f 2110/2193/11977 2098/2182/11978 2095/2181/11979 +f 2095/2181/11980 2096/2180/11981 2110/2193/11982 +f 2123/2204/11983 2124/2206/11984 2126/2209/11985 +f 2126/2209/11986 2127/2210/11987 2123/2204/11988 +f 1610/1694/11989 2125/2208/11990 2100/2207/11991 +f 2100/2207/11992 1609/1695/11993 1610/1694/11994 +f 1624/1708/11995 2125/2208/11996 1610/1694/11997 +f 1610/1694/11998 2123/2204/11999 1624/1708/12000 +f 2127/2210/12001 1626/1709/12002 1624/1708/12003 +f 1624/1708/12004 2123/2204/12005 2127/2210/12006 +f 2019/2103/12007 1626/1709/12008 2127/2210/12009 +f 2127/2210/12010 2126/2209/12011 2019/2103/12012 +f 2094/2178/12013 2095/2181/12014 2126/2209/12015 +f 2126/2209/12016 2124/2206/12017 2094/2178/12018 +f 2128/2350/12019 1611/2351/12020 1608/2485/12021 +f 1608/2485/12022 2129/2349/12023 2128/2350/12024 +f 2130/2352/12025 2124/2353/12026 1611/2351/12027 +f 1611/2351/12028 2128/2350/12029 2130/2352/12030 +f 2131/2354/12031 2094/2355/12032 2124/2353/12033 +f 2124/2353/12034 2130/2352/12035 2131/2354/12036 +f 2132/2356/12037 2097/2346/12038 2094/2355/12039 +f 2094/2355/12040 2131/2354/12041 2132/2356/12042 +f 2133/2357/12043 2113/2344/12044 2097/2346/12045 +f 2097/2346/12046 2132/2356/12047 2133/2357/12048 +f 2134/2358/12049 2103/2332/12050 2113/2344/12051 +f 2113/2344/12052 2133/2357/12053 2134/2358/12054 +f 2135/2359/12055 2102/2333/12056 2103/2332/12057 +f 2103/2332/12058 2134/2358/12059 2135/2359/12060 +f 2136/2360/12061 2106/2338/12062 2102/2333/12063 +f 2102/2333/12064 2135/2359/12065 2136/2360/12066 +f 2138/2361/12067 2137/2362/12068 2106/2338/12069 +f 2106/2338/12070 2136/2360/12071 2138/2361/12072 +f 2099/2329/12073 2140/2364/12074 2139/2363/12075 +f 2139/2363/12076 1608/2330/12077 2099/2329/12078 +f 2107/2339/12079 1630/1712/12080 2106/2338/12081 +f 2106/2338/12082 2137/2362/12083 2107/2339/12084 +f 2142/2365/12085 2141/2366/12086 2128/2350/12087 +f 2128/2350/12088 2129/2349/12089 2142/2365/12090 +f 2143/2367/12091 2130/2352/12092 2128/2350/12093 +f 2128/2350/12094 2141/2366/12095 2143/2367/12096 +f 2143/2367/12097 2144/2368/12098 2131/2354/12099 +f 2131/2354/12100 2130/2352/12101 2143/2367/12102 +f 2144/2368/12103 2145/2369/12104 2132/2356/12105 +f 2132/2356/12106 2131/2354/12107 2144/2368/12108 +f 2145/2369/12109 2146/2370/12110 2133/2357/12111 +f 2133/2357/12112 2132/2356/12113 2145/2369/12114 +f 2147/2371/12115 2134/2358/12116 2133/2357/12117 +f 2133/2357/12118 2146/2370/12119 2147/2371/12120 +f 2148/2372/12121 2135/2359/12122 2134/2358/12123 +f 2134/2358/12124 2147/2371/12125 2148/2372/12126 +f 2149/2373/12127 2136/2360/12128 2135/2359/12129 +f 2135/2359/12130 2148/2372/12131 2149/2373/12132 +f 2149/2373/12133 2150/2374/12134 2138/2361/12135 +f 2138/2361/12136 2136/2360/12137 2149/2373/12138 +f 2150/2374/12139 2142/2500/12140 2129/2494/12141 +f 2129/2494/12142 2138/2361/12143 2150/2374/12144 +f 2118/2202/12145 2120/2203/12146 2031/2113/12147 +f 2031/2113/12148 2027/2112/12149 2118/2202/12150 +f 2025/2109/12151 2032/2116/12152 2054/2138/12153 +f 2054/2138/12154 2122/2211/12155 2025/2109/12156 +f 2054/2296/12157 2058/2292/12158 2121/2347/12159 +f 2121/2347/12160 2122/2348/12161 2054/2296/12162 +f 2153/2598/12163 2152/2228/12164 2151/2225/12165 +f 2151/2225/12166 2154/2226/12167 2153/2598/12168 +f 2155/2230/12169 2152/2228/12170 2153/2598/12171 +f 2153/2598/12172 2156/2229/12173 2155/2230/12174 +f 2158/2231/12175 2157/2232/12176 2155/2230/12177 +f 2155/2230/12178 2156/2229/12179 2158/2231/12180 +f 1416/1499/12181 2160/2234/12182 2159/2233/12183 +f 2159/2233/12184 1417/1500/12185 1416/1499/12186 +f 1415/1498/12187 2161/2235/12188 2160/2234/12189 +f 2160/2234/12190 1416/1499/12191 1415/1498/12192 +f 2162/2236/12193 2161/2235/12194 1415/1498/12195 +f 1415/1498/12196 1414/1497/12197 2162/2236/12198 +f 2163/2237/12199 2162/2236/12200 1414/1497/12201 +f 1414/1497/12202 1413/1496/12203 2163/2237/12204 +f 2164/2238/12205 2163/2237/12206 1413/1496/12207 +f 1413/1496/12208 1427/1510/12209 2164/2238/12210 +f 1427/1510/12211 1424/1507/12212 2165/2239/12213 +f 2165/2239/12214 2164/2238/12215 1427/1510/12216 +f 2154/2597/12217 2151/2596/12218 2166/2240/12219 +f 2166/2240/12220 2167/2241/12221 2154/2597/12222 +f 2099/2329/12223 1632/1718/12224 1633/1717/12225 +f 1633/1717/12226 2140/2364/12227 2099/2329/12228 +f 2168/2375/12229 2140/2364/12230 1633/1717/12231 +f 1633/1717/12232 2021/2275/12233 2168/2375/12234 +f 2021/2275/12235 2020/2274/12236 2107/2339/12237 +f 2107/2339/12238 2168/2375/12239 2021/2275/12240 +f 2169/2376/12241 2139/2363/12242 2140/2364/12243 +f 2140/2364/12244 2168/2375/12245 2169/2376/12246 +f 2170/2377/12247 2129/2494/12248 1608/2330/12249 +f 1608/2330/12250 2139/2363/12251 2170/2377/12252 +f 2138/2361/12253 2129/2494/12254 2170/2377/12255 +f 2170/2377/12256 2171/2378/12257 2138/2361/12258 +f 2169/2376/12259 2171/2378/12260 2170/2377/12261 +f 2170/2377/12262 2139/2363/12263 2169/2376/12264 +f 2137/2362/12265 2138/2361/12266 2171/2378/12267 +f 2171/2378/12268 2169/2376/12269 2137/2362/12270 +f 2168/2375/12271 2107/2339/12272 2137/2362/12273 +f 2137/2362/12274 2169/2376/12275 2168/2375/12276 +f 2166/2240/12277 2150/2243/12278 2149/2242/12279 +f 2149/2242/12280 2164/2238/12281 2166/2240/12282 +f 2163/2237/12283 2164/2238/12284 2149/2242/12285 +f 2149/2242/12286 2148/2244/12287 2163/2237/12288 +f 2162/2236/12289 2163/2237/12290 2148/2244/12291 +f 2148/2244/12292 2147/2245/12293 2162/2236/12294 +f 2161/2235/12295 2162/2236/12296 2147/2245/12297 +f 2147/2245/12298 2146/2246/12299 2161/2235/12300 +f 2160/2234/12301 2161/2235/12302 2146/2246/12303 +f 2146/2246/12304 2145/2247/12305 2160/2234/12306 +f 2157/2232/12307 2158/2231/12308 2159/2233/12309 +f 2159/2233/12310 2160/2234/12311 2157/2232/12312 +f 2143/2249/12313 2155/2230/12314 2157/2232/12315 +f 2157/2232/12316 2144/2248/12317 2143/2249/12318 +f 2141/2250/12319 2152/2228/12320 2155/2230/12321 +f 2155/2230/12322 2143/2249/12323 2141/2250/12324 +f 2151/2225/12325 2152/2228/12326 2141/2250/12327 +f 2141/2250/12328 2142/2251/12329 2151/2225/12330 +f 2150/2243/12331 2166/2240/12332 2151/2596/12333 +f 2151/2596/12334 2142/2599/12335 2150/2243/12336 +f 1423/1506/12337 2167/2241/12338 2165/2239/12339 +f 2165/2239/12340 1424/1507/12341 1423/1506/12342 +f 1421/1504/12343 2154/2597/12344 2167/2241/12345 +f 2167/2241/12346 1423/1506/12347 1421/1504/12348 +f 1420/2594/12349 2153/2227/12350 2154/2597/12351 +f 2154/2597/12352 1421/1504/12353 1420/2594/12354 +f 2156/2229/12355 2153/2598/12356 1420/1503/12357 +f 1420/1503/12358 1419/1502/12359 2156/2229/12360 +f 2158/2231/12361 2156/2229/12362 1419/1502/12363 +f 1419/1502/12364 1418/1501/12365 2158/2231/12366 +f 1417/1500/12367 2159/2233/12368 2158/2231/12369 +f 2158/2231/12370 1418/1501/12371 1417/1500/12372 +f 2166/2240/12373 2164/2238/12374 2165/2239/12375 +f 2165/2239/12376 2167/2241/12377 2166/2240/12378 +f 2157/2232/12379 2160/2234/12380 2145/2247/12381 +f 2145/2247/12382 2144/2248/12383 2157/2232/12384 +f 1489/2528/12385 1315/1558/12386 1316/1557/12387 +f 1316/1557/12388 1309/1550/12389 1489/2528/12390 +f 1550/1633/12391 1323/1406/12392 1324/1405/12393 +f 1324/1405/12394 1545/1628/12395 1550/1633/12396 +f 1525/1609/12397 1526/1608/12398 1555/1638/12399 +f 1555/1638/12400 1529/1614/12401 1525/1609/12402 +f 1527/1610/12403 1525/2614/12404 1529/2616/12405 +f 1529/2616/12406 1530/1613/12407 1527/1610/12408 +f 1296/1378/12409 1527/1610/12410 1534/1617/12411 +f 1534/1617/12412 1293/1377/12413 1296/1378/12414 +f 1293/1377/12415 1534/1617/12416 1537/1620/12417 +f 1537/1620/12418 1292/479/12419 1293/1377/12420 +f 1292/479/12421 1537/1620/12422 1540/1623/12423 +f 1540/1623/12424 1506/1425/12425 1292/479/12426 +f 1506/1425/12427 1540/1623/12428 1543/1626/12429 +f 1543/1626/12430 1507/1589/12431 1506/1425/12432 +f 1507/1589/12433 1543/1626/12434 1324/1405/12435 +f 1324/1405/12436 1322/1381/12437 1507/1589/12438 +f 1556/1639/12439 1526/1608/12440 1523/1606/12441 +f 1523/1606/12442 1522/1605/12443 1556/1639/12444 +f 1323/1406/12445 1556/1639/12446 1522/1605/12447 +f 1522/1605/12448 1321/1403/12449 1323/1406/12450 +f 1509/1591/12451 1322/1381/12452 1319/1380/12453 +f 1319/1380/12454 1510/1593/12455 1509/1591/12456 +f 1546/1630/12457 1547/1629/12458 1575/1659/12459 +f 1575/1659/12460 2172/2256/12461 1546/1630/12462 +f 1549/1631/12463 1546/1630/12464 2172/2256/12465 +f 2172/2256/12466 2173/2257/12467 1549/1631/12468 +f 2174/2258/12469 1552/1634/12470 1549/1631/12471 +f 1549/1631/12472 2173/2257/12473 2174/2258/12474 +f 1562/1643/12475 1557/1640/12476 1552/1634/12477 +f 1552/1634/12478 2174/2258/12479 1562/1643/12480 +f 1559/2618/12481 1558/1641/12482 1557/1640/12483 +f 1557/1640/12484 1562/1643/12485 1559/2618/12486 +f 1558/2617/12487 1565/1648/12488 1531/1612/12489 +f 1531/1612/12490 1528/1611/12491 1558/2617/12492 +f 1531/1612/12493 1565/1648/12494 1568/1651/12495 +f 1568/1651/12496 1532/1615/12497 1531/1612/12498 +f 1532/1615/12499 1568/1651/12500 1571/1654/12501 +f 1571/1654/12502 1535/1618/12503 1532/1615/12504 +f 1535/1618/12505 1571/1654/12506 1574/1657/12507 +f 1574/1657/12508 1538/1621/12509 1535/1618/12510 +f 1538/1621/12511 1574/1657/12512 1547/1629/12513 +f 1547/1629/12514 1541/1624/12515 1538/1621/12516 +f 1560/1645/12517 1561/1644/12518 1591/1674/12519 +f 1591/1674/12520 1593/1675/12521 1560/1645/12522 +f 1564/1646/12523 1560/2619/12524 1593/2620/12525 +f 1593/2620/12526 1595/1677/12527 1564/1646/12528 +f 1567/1649/12529 1564/1646/12530 1595/1677/12531 +f 1595/1677/12532 1597/1679/12533 1567/1649/12534 +f 1570/1652/12535 1567/1649/12536 1597/1679/12537 +f 1597/1679/12538 1599/1681/12539 1570/1652/12540 +f 1578/1663/12541 1573/1655/12542 1570/1652/12543 +f 1570/1652/12544 1599/1681/12545 1578/1663/12546 +f 1579/1662/12547 1576/1658/12548 1573/1655/12549 +f 1573/1655/12550 1578/1663/12551 1579/1662/12552 +f 1575/1659/12553 1576/1658/12554 1583/1666/12555 +f 1583/1666/12556 2172/2256/12557 1575/1659/12558 +f 2172/2256/12559 1583/1666/12560 1586/1669/12561 +f 1586/1669/12562 2173/2257/12563 2172/2256/12564 +f 2173/2257/12565 1586/1669/12566 1589/1672/12567 +f 1589/1672/12568 2174/2258/12569 2173/2257/12570 +f 1589/1672/12571 1561/1644/12572 1562/1643/12573 +f 1562/1643/12574 2174/2258/12575 1589/1672/12576 +f 608/2569/12577 609/2573/12578 447/531/12579 +f 447/531/12580 448/530/12581 608/2569/12582 +f 609/2573/12583 611/695/12584 610/694/12585 +f 610/694/12586 447/531/12587 609/2573/12588 +f 614/700/12589 446/532/12590 447/531/12591 +f 447/531/12592 610/694/12593 614/700/12594 +f 2175/2622/12595 2176/2623/12596 2177/2626/12597 +f 2177/2626/12598 2178/2629/12599 2175/2622/12600 +f 2330/2806/12601 2331/2807/12602 2179/2646/12603 +f 2179/2646/12604 2180/2647/12605 2330/2806/12606 +f 2181/2624/12607 2179/2625/12608 2331/2808/12609 +f 2331/2808/12610 2332/2809/12611 2181/2624/12612 +f 2181/2624/12613 2332/2809/12614 2333/2810/12615 +f 2333/2810/12616 2184/2631/12617 2181/2624/12618 +f 2185/2632/12619 2183/2630/12620 2182/2628/12621 +f 2182/2628/12622 2186/2633/12623 2185/2632/12624 +f 2187/2634/12625 2188/2635/12626 2183/2630/12627 +f 2183/2630/12628 2185/2632/12629 2187/2634/12630 +f 2189/2636/12631 2190/2637/12632 2187/2634/12633 +f 2187/2634/12634 2191/2638/12635 2189/2636/12636 +f 2189/2649/12637 2192/2657/12638 2193/2659/12639 +f 2193/2659/12640 2194/2661/12641 2189/2649/12642 +f 2192/2657/12643 2195/2662/12644 2196/2663/12645 +f 2196/2663/12646 2193/2659/12647 2192/2657/12648 +s 2 +f 2195/2639/12649 2197/2640/12650 2198/2641/12651 +f 2198/2641/12652 2199/2642/12653 2195/2639/12654 +s 1 +f 2192/2643/12655 2200/2644/12656 2197/2640/12657 +f 2197/2640/12658 2195/2639/12659 2192/2643/12660 +s 2 +f 2201/2645/12661 2202/2648/12662 2198/2641/12663 +f 2198/2641/12664 2197/2640/12665 2201/2645/12666 +s 1 +f 2200/2644/12667 2203/2650/12668 2201/2645/12669 +f 2201/2645/12670 2197/2640/12671 2200/2644/12672 +s 2 +f 2196/2663/12673 2195/2662/12674 2199/2664/12675 +f 2199/2664/12676 2204/2665/12677 2196/2663/12678 +s 1 +f 2205/2666/12679 2206/2667/12680 2204/2665/12681 +f 2204/2665/12682 2199/2664/12683 2205/2666/12684 +f 2198/2641/12685 2207/2651/12686 2205/2652/12687 +f 2205/2652/12688 2199/2642/12689 2198/2641/12690 +f 2194/2661/12691 2193/2659/12692 2208/2668/12693 +f 2208/2668/12694 2209/2669/12695 2194/2661/12696 +f 2194/2661/12697 2210/2670/12698 2190/2687/12699 +f 2190/2687/12700 2189/2649/12701 2194/2661/12702 +f 2209/2669/12703 2211/2688/12704 2210/2670/12705 +f 2210/2670/12706 2194/2661/12707 2209/2669/12708 +f 2212/2690/12709 2208/2668/12710 2193/2659/12711 +f 2193/2659/12712 2196/2663/12713 2212/2690/12714 +f 2213/2691/12715 2214/2692/12716 2209/2669/12717 +f 2209/2669/12718 2208/2668/12719 2213/2691/12720 +f 2213/2691/12721 2208/2668/12722 2212/2690/12723 +f 2212/2690/12724 2215/2693/12725 2213/2691/12726 +f 2189/2636/12727 2191/2638/12728 2200/2644/12729 +f 2200/2644/12730 2192/2643/12731 2189/2636/12732 +f 2191/2638/12733 2216/2653/12734 2203/2650/12735 +f 2203/2650/12736 2200/2644/12737 2191/2638/12738 +f 2216/2653/12739 2217/2654/12740 2218/2655/12741 +f 2218/2655/12742 2203/2650/12743 2216/2653/12744 +f 2217/2654/12745 2216/2653/12746 2185/2632/12747 +f 2185/2632/12748 2186/2633/12749 2217/2654/12750 +f 2185/2632/12751 2216/2653/12752 2191/2638/12753 +f 2191/2638/12754 2187/2634/12755 2185/2632/12756 +f 2219/2656/12757 2188/2635/12758 2187/2634/12759 +f 2187/2634/12760 2190/2637/12761 2219/2656/12762 +f 2335/2812/12763 2220/2658/12764 2221/2660/12765 +f 2221/2660/12766 2334/2811/12767 2335/2812/12768 +s 2 +f 2220/2694/12769 2222/2695/12770 2223/2696/12771 +f 2223/2696/12772 2224/2697/12773 2220/2694/12774 +s 1 +f 2335/2813/12775 2336/2814/12776 2222/2695/12777 +f 2222/2695/12778 2220/2694/12779 2335/2813/12780 +f 2226/2740/12781 2227/2757/12782 2222/2695/12783 +f 2222/2695/12784 2336/2814/12785 2226/2740/12786 +f 2210/2670/12787 2211/2688/12788 2337/2815/12789 +f 2337/2815/12790 2225/2699/12791 2210/2670/12792 +f 2190/2687/12793 2210/2670/12794 2225/2699/12795 +f 2225/2699/12796 2219/2698/12797 2190/2687/12798 +s 4 +f 2227/2757/12799 2228/2759/12800 2223/2696/12801 +f 2223/2696/12802 2222/2695/12803 2227/2757/12804 +s 8 +f 2228/2759/12805 2227/2757/12806 2180/2647/12807 +f 2180/2647/12808 2229/2760/12809 2228/2759/12810 +s 2 +f 2230/2671/12811 2221/2660/12812 2220/2658/12813 +f 2220/2658/12814 2224/2672/12815 2230/2671/12816 +f 2221/2660/12817 2230/2671/12818 2231/2673/12819 +f 2231/2673/12820 2184/2631/12821 2221/2660/12822 +s 1 +f 2334/2811/12823 2221/2660/12824 2184/2631/12825 +f 2184/2631/12826 2333/2810/12827 2334/2811/12828 +f 2177/2674/12829 2186/2633/12830 2182/2628/12831 +f 2182/2628/12832 2178/2627/12833 2177/2674/12834 +f 2232/2675/12835 2186/2633/12836 2177/2674/12837 +f 2177/2674/12838 2233/2676/12839 2232/2675/12840 +f 2232/2675/12841 2234/2677/12842 2217/2654/12843 +f 2217/2654/12844 2186/2633/12845 2232/2675/12846 +f 2235/2678/12847 2236/2679/12848 2234/2677/12849 +f 2234/2677/12850 2237/2680/12851 2235/2678/12852 +f 2235/2678/12853 2238/2681/12854 2239/2682/12855 +f 2239/2682/12856 2240/2683/12857 2235/2678/12858 +f 2239/2682/12859 2238/2681/12860 2241/2684/12861 +f 2241/2684/12862 2242/2685/12863 2239/2682/12864 +s 2 +f 2239/2682/12865 2243/2686/12866 2244/2689/12867 +f 2244/2689/12868 2240/2683/12869 2239/2682/12870 +f 2243/2686/12871 2239/2682/12872 2242/2685/12873 +f 2242/2685/12874 2245/2700/12875 2243/2686/12876 +s 1 +f 2238/2681/12877 2246/2701/12878 2247/2702/12879 +f 2247/2702/12880 2241/2684/12881 2238/2681/12882 +f 2241/2684/12883 2248/2703/12884 2249/2704/12885 +f 2249/2704/12886 2242/2685/12887 2241/2684/12888 +f 2247/2702/12889 2250/2705/12890 2248/2703/12891 +f 2248/2703/12892 2241/2684/12893 2247/2702/12894 +f 2237/2680/12895 2246/2701/12896 2238/2681/12897 +f 2238/2681/12898 2235/2678/12899 2237/2680/12900 +f 2251/2706/12901 2252/2707/12902 2246/2701/12903 +f 2246/2701/12904 2237/2680/12905 2251/2706/12906 +f 2234/2677/12907 2232/2675/12908 2251/2706/12909 +f 2251/2706/12910 2237/2680/12911 2234/2677/12912 +f 2236/2679/12913 2235/2678/12914 2240/2683/12915 +f 2240/2683/12916 2253/2708/12917 2236/2679/12918 +f 2217/2654/12919 2234/2677/12920 2236/2679/12921 +f 2236/2679/12922 2218/2655/12923 2217/2654/12924 +f 2236/2679/12925 2253/2708/12926 2254/2709/12927 +f 2254/2709/12928 2218/2655/12929 2236/2679/12930 +s 2 +f 2254/2709/12931 2253/2708/12932 2255/2710/12933 +f 2255/2710/12934 2256/2711/12935 2254/2709/12936 +f 2240/2683/12937 2244/2689/12938 2255/2710/12939 +f 2255/2710/12940 2253/2708/12941 2240/2683/12942 +s 1 +f 2233/2676/12943 2257/2712/12944 2251/2706/12945 +f 2251/2706/12946 2232/2675/12947 2233/2676/12948 +f 2257/2741/12949 2233/2742/12950 2258/2743/12951 +f 2258/2743/12952 2259/2744/12953 2257/2741/12954 +s 2 +f 2251/2706/12955 2257/2712/12956 2260/2713/12957 +f 2260/2713/12958 2261/2714/12959 2251/2706/12960 +s 1 +f 2262/2745/12961 2263/2746/12962 2322/2796/12963 +f 2322/2796/12964 2324/2799/12965 2262/2745/12966 +s 2 +f 2262/2745/12967 2265/2749/12968 2266/2750/12969 +f 2266/2750/12970 2263/2746/12971 2262/2745/12972 +f 2265/2749/12973 2262/2745/12974 2267/2751/12975 +f 2267/2751/12976 2268/2752/12977 2265/2749/12978 +s 1 +f 2324/2799/12979 2325/2800/12980 2267/2751/12981 +f 2267/2751/12982 2262/2745/12983 2324/2799/12984 +f 2259/2744/12985 2264/2748/12986 2260/2747/12987 +f 2260/2747/12988 2257/2741/12989 2259/2744/12990 +f 2259/2744/12991 2270/2754/12992 2269/2753/12993 +f 2269/2753/12994 2264/2748/12995 2259/2744/12996 +f 2259/2744/12997 2271/2755/12998 2272/2756/12999 +f 2272/2756/13000 2270/2754/13001 2259/2744/13002 +f 2273/2758/13003 2271/2755/13004 2259/2744/13005 +f 2259/2744/13006 2258/2743/13007 2273/2758/13008 +f 2274/2715/13009 2323/2798/13010 2322/2797/13011 +f 2322/2797/13012 2263/2716/13013 2274/2715/13014 +s 2 +f 2274/2715/13015 2275/2717/13016 2276/2718/13017 +f 2276/2718/13018 2277/2719/13019 2274/2715/13020 +s 4 +f 2275/2717/13021 2274/2715/13022 2263/2716/13023 +f 2263/2716/13024 2266/2720/13025 2275/2717/13026 +s 1 +f 2323/2798/13027 2274/2715/13028 2277/2719/13029 +f 2277/2719/13030 2326/2801/13031 2323/2798/13032 +f 2177/2626/13033 2176/2623/13034 2258/2743/13035 +f 2258/2743/13036 2233/2742/13037 2177/2626/13038 +s 8 +f 2279/2722/13039 2280/2723/13040 2179/2625/13041 +f 2179/2625/13042 2181/2624/13043 2279/2722/13044 +s 2 +f 2184/2631/13045 2231/2673/13046 2279/2722/13047 +f 2279/2722/13048 2181/2624/13049 2184/2631/13050 +s 8 +f 2280/2761/13051 2229/2760/13052 2180/2647/13053 +f 2180/2647/13054 2179/2646/13055 2280/2761/13056 +s 1 +f 2176/2623/13057 2175/2622/13058 2337/2815/13059 +f 2337/2815/13060 2211/2688/13061 2176/2623/13062 +f 2227/2757/13063 2226/2740/13064 2330/2806/13065 +f 2330/2806/13066 2180/2647/13067 2227/2757/13068 +f 2214/2692/13069 2273/2758/13070 2258/2743/13071 +f 2258/2743/13072 2176/2623/13073 2214/2692/13074 +f 2176/2623/13075 2211/2688/13076 2209/2669/13077 +f 2209/2669/13078 2214/2692/13079 2176/2623/13080 +f 2214/2692/13081 2213/2691/13082 2281/2762/13083 +f 2281/2762/13084 2273/2758/13085 2214/2692/13086 +f 2281/2762/13087 2282/2765/13088 2271/2755/13089 +f 2271/2755/13090 2273/2758/13091 2281/2762/13092 +f 2282/2765/13093 2283/2766/13094 2284/2767/13095 +f 2284/2767/13096 2285/2768/13097 2282/2765/13098 +s 2 +f 2283/2766/13099 2286/2769/13100 2287/2772/13101 +f 2287/2772/13102 2284/2767/13103 2283/2766/13104 +s 1 +f 2286/2769/13105 2288/2763/13106 2289/2771/13107 +f 2289/2771/13108 2290/2776/13109 2286/2769/13110 +f 2288/2763/13111 2291/2764/13112 2292/2770/13113 +f 2292/2770/13114 2289/2771/13115 2288/2763/13116 +f 2293/2773/13117 2294/2774/13118 2292/2770/13119 +f 2292/2770/13120 2291/2764/13121 2293/2773/13122 +f 2294/2774/13123 2293/2773/13124 2204/2665/13125 +f 2204/2665/13126 2206/2667/13127 2294/2774/13128 +s 2 +f 2212/2690/13129 2196/2663/13130 2204/2665/13131 +f 2204/2665/13132 2293/2773/13133 2212/2690/13134 +f 2215/2693/13135 2212/2690/13136 2293/2773/13137 +f 2293/2773/13138 2291/2764/13139 2215/2693/13140 +f 2215/2693/13141 2291/2764/13142 2288/2763/13143 +f 2288/2763/13144 2295/2775/13145 2215/2693/13146 +f 2288/2763/13147 2286/2769/13148 2283/2766/13149 +f 2283/2766/13150 2295/2775/13151 2288/2763/13152 +s 1 +f 2213/2691/13153 2215/2693/13154 2295/2775/13155 +f 2295/2775/13156 2281/2762/13157 2213/2691/13158 +f 2281/2762/13159 2295/2775/13160 2283/2766/13161 +f 2283/2766/13162 2282/2765/13163 2281/2762/13164 +f 2287/2772/13165 2286/2769/13166 2290/2776/13167 +f 2290/2776/13168 2296/2777/13169 2287/2772/13170 +s 2 +f 2287/2772/13171 2297/2778/13172 2298/2779/13173 +f 2298/2779/13174 2284/2767/13175 2287/2772/13176 +f 2298/2779/13177 2297/2778/13178 2299/2780/13179 +f 2299/2780/13180 2249/2781/13181 2298/2779/13182 +s 1 +f 2298/2779/13183 2300/2782/13184 2285/2768/13185 +f 2285/2768/13186 2284/2767/13187 2298/2779/13188 +f 2298/2779/13189 2249/2781/13190 2248/2783/13191 +f 2248/2783/13192 2300/2782/13193 2298/2779/13194 +f 2300/2782/13195 2301/2784/13196 2272/2756/13197 +f 2272/2756/13198 2285/2768/13199 2300/2782/13200 +f 2301/2784/13201 2300/2782/13202 2248/2783/13203 +f 2248/2783/13204 2250/2785/13205 2301/2784/13206 +f 2270/2754/13207 2272/2756/13208 2301/2784/13209 +f 2301/2784/13210 2302/2786/13211 2270/2754/13212 +f 2250/2785/13213 2303/2787/13214 2302/2786/13215 +f 2302/2786/13216 2301/2784/13217 2250/2785/13218 +f 2271/2755/13219 2282/2765/13220 2285/2768/13221 +f 2285/2768/13222 2272/2756/13223 2271/2755/13224 +s 2 +f 2242/2685/13225 2249/2704/13226 2299/2724/13227 +f 2299/2724/13228 2245/2700/13229 2242/2685/13230 +s 1 +f 2304/2725/13231 2245/2700/13232 2299/2724/13233 +f 2299/2724/13234 2305/2726/13235 2304/2725/13236 +f 2306/2727/13237 2243/2686/13238 2245/2700/13239 +f 2245/2700/13240 2304/2725/13241 2306/2727/13242 +f 2244/2689/13243 2243/2686/13244 2306/2727/13245 +f 2306/2727/13246 2307/2728/13247 2244/2689/13248 +f 2299/2780/13249 2297/2778/13250 2308/2788/13251 +f 2308/2788/13252 2305/2789/13253 2299/2780/13254 +f 2287/2772/13255 2296/2777/13256 2308/2788/13257 +f 2308/2788/13258 2297/2778/13259 2287/2772/13260 +f 2254/2709/13261 2201/2645/13262 2203/2650/13263 +f 2203/2650/13264 2218/2655/13265 2254/2709/13266 +s 2 +f 2254/2709/13267 2256/2711/13268 2202/2648/13269 +f 2202/2648/13270 2201/2645/13271 2254/2709/13272 +s 1 +f 2261/2714/13273 2278/2721/13274 2252/2707/13275 +f 2252/2707/13276 2251/2706/13277 2261/2714/13278 +f 2309/2729/13279 2326/2801/13280 2277/2719/13281 +f 2277/2719/13282 2310/2730/13283 2309/2729/13284 +f 2278/2721/13285 2327/2802/13286 2311/2731/13287 +f 2311/2731/13288 2252/2707/13289 2278/2721/13290 +f 2247/2702/13291 2246/2701/13292 2252/2707/13293 +f 2252/2707/13294 2311/2731/13295 2247/2702/13296 +f 2303/2732/13297 2250/2705/13298 2247/2702/13299 +f 2247/2702/13300 2311/2731/13301 2303/2732/13302 +f 2312/2733/13303 2303/2732/13304 2311/2731/13305 +f 2311/2731/13306 2327/2802/13307 2312/2733/13308 +f 2328/2803/13309 2313/2791/13310 2314/2792/13311 +f 2314/2792/13312 2329/2805/13313 2328/2803/13314 +s 4 +f 2316/2794/13315 2317/2795/13316 2314/2792/13317 +f 2314/2792/13318 2313/2791/13319 2316/2794/13320 +f 2318/2734/13321 2316/2735/13322 2313/2736/13323 +f 2313/2736/13324 2310/2730/13325 2318/2734/13326 +f 2276/2718/13327 2318/2734/13328 2310/2730/13329 +f 2310/2730/13330 2277/2719/13331 2276/2718/13332 +s 1 +f 2328/2804/13333 2309/2729/13334 2310/2730/13335 +f 2310/2730/13336 2313/2736/13337 2328/2804/13338 +s 8 +f 2314/2792/13339 2317/2795/13340 2268/2752/13341 +f 2268/2752/13342 2267/2751/13343 2314/2792/13344 +s 1 +f 2325/2800/13345 2329/2805/13346 2314/2792/13347 +f 2314/2792/13348 2267/2751/13349 2325/2800/13350 +f 2302/2786/13351 2303/2787/13352 2312/2790/13353 +f 2312/2790/13354 2315/2793/13355 2302/2786/13356 +f 2315/2793/13357 2269/2753/13358 2270/2754/13359 +f 2270/2754/13360 2302/2786/13361 2315/2793/13362 +f 2319/2737/13363 2255/2710/13364 2244/2689/13365 +f 2244/2689/13366 2307/2728/13367 2319/2737/13368 +f 2320/2738/13369 2256/2711/13370 2255/2710/13371 +f 2255/2710/13372 2319/2737/13373 2320/2738/13374 +f 2256/2711/13375 2320/2738/13376 2321/2739/13377 +f 2321/2739/13378 2202/2648/13379 2256/2711/13380 +f 2321/2739/13381 2207/2651/13382 2198/2641/13383 +f 2198/2641/13384 2202/2648/13385 2321/2739/13386 +f 2260/2713/13387 2322/2797/13388 2323/2798/13389 +f 2323/2798/13390 2261/2714/13391 2260/2713/13392 +f 2322/2796/13393 2260/2747/13394 2264/2748/13395 +f 2264/2748/13396 2324/2799/13397 2322/2796/13398 +f 2324/2799/13399 2264/2748/13400 2269/2753/13401 +f 2269/2753/13402 2325/2800/13403 2324/2799/13404 +f 2326/2801/13405 2278/2721/13406 2261/2714/13407 +f 2261/2714/13408 2323/2798/13409 2326/2801/13410 +f 2309/2729/13411 2327/2802/13412 2278/2721/13413 +f 2278/2721/13414 2326/2801/13415 2309/2729/13416 +f 2327/2802/13417 2309/2729/13418 2328/2804/13419 +f 2328/2804/13420 2312/2733/13421 2327/2802/13422 +f 2329/2805/13423 2315/2793/13424 2312/2790/13425 +f 2312/2790/13426 2328/2803/13427 2329/2805/13428 +f 2325/2800/13429 2269/2753/13430 2315/2793/13431 +f 2315/2793/13432 2329/2805/13433 2325/2800/13434 +f 2178/2629/13435 2331/2807/13436 2330/2806/13437 +f 2330/2806/13438 2175/2622/13439 2178/2629/13440 +f 2331/2808/13441 2178/2627/13442 2182/2628/13443 +f 2182/2628/13444 2332/2809/13445 2331/2808/13446 +f 2332/2809/13447 2182/2628/13448 2183/2630/13449 +f 2183/2630/13450 2333/2810/13451 2332/2809/13452 +f 2188/2635/13453 2334/2811/13454 2333/2810/13455 +f 2333/2810/13456 2183/2630/13457 2188/2635/13458 +f 2219/2656/13459 2335/2812/13460 2334/2811/13461 +f 2334/2811/13462 2188/2635/13463 2219/2656/13464 +f 2335/2813/13465 2219/2698/13466 2225/2699/13467 +f 2225/2699/13468 2336/2814/13469 2335/2813/13470 +f 2336/2814/13471 2225/2699/13472 2337/2815/13473 +f 2337/2815/13474 2226/2740/13475 2336/2814/13476 +f 2175/2622/13477 2330/2806/13478 2226/2740/13479 +f 2226/2740/13480 2337/2815/13481 2175/2622/13482 +f 2340/2818/13483 2341/2819/13484 2338/2816/13485 +f 2338/2816/13486 2339/2817/13487 2340/2818/13488 +f 2426/2820/13489 2427/2821/13490 2344/2822/13491 +f 2344/2822/13492 2338/2816/13493 2426/2820/13494 +f 2346/2825/13495 2347/2826/13496 2448/2823/13497 +f 2448/2823/13498 2450/2824/13499 2346/2825/13500 +f 2451/2827/13501 2349/2828/13502 2346/2825/13503 +f 2346/2825/13504 2450/2824/13505 2451/2827/13506 +f 2428/2830/13507 2429/2831/13508 2348/2832/13509 +f 2348/2832/13510 2345/2829/13511 2428/2830/13512 +f 2351/2833/13513 2350/2834/13514 2341/2819/13515 +f 2341/2819/13516 2340/2818/13517 2351/2833/13518 +f 2352/2835/13519 2353/2836/13520 2350/2834/13521 +f 2350/2834/13522 2351/2833/13523 2352/2835/13524 +f 2350/2834/13525 2353/2836/13526 2430/2837/13527 +f 2430/2837/13528 2429/2831/13529 2350/2834/13530 +f 2354/2838/13531 2430/2837/13532 2431/2839/13533 +f 2431/2839/13534 2356/2840/13535 2354/2838/13536 +f 2357/2842/13537 2349/2828/13538 2451/2827/13539 +f 2451/2827/13540 2452/2841/13541 2357/2842/13542 +f 2358/2844/13543 2357/2842/13544 2452/2841/13545 +f 2452/2841/13546 2453/2843/13547 2358/2844/13548 +f 2432/2846/13549 2431/2839/13550 2355/2847/13551 +f 2355/2847/13552 2359/2845/13553 2432/2846/13554 +f 2362/2849/13555 2363/2850/13556 2359/2845/13557 +f 2359/2845/13558 2361/2848/13559 2362/2849/13560 +f 2361/2848/13561 2359/2845/13562 2355/2847/13563 +f 2355/2847/13564 2364/2851/13565 2361/2848/13566 +f 2365/2852/13567 2360/2853/13568 2432/2846/13569 +f 2432/2846/13570 2433/2854/13571 2365/2852/13572 +f 2355/2847/13573 2353/2836/13574 2352/2835/13575 +f 2352/2835/13576 2364/2851/13577 2355/2847/13578 +f 2345/2829/13579 2342/2855/13580 2426/2820/13581 +f 2426/2820/13582 2428/2830/13583 2345/2829/13584 +f 2366/2856/13585 2343/2857/13586 2448/2823/13587 +f 2448/2823/13588 2347/2826/13589 2366/2856/13590 +f 2368/2859/13591 2343/2857/13592 2366/2856/13593 +f 2366/2856/13594 2367/2858/13595 2368/2859/13596 +f 2370/2861/13597 2368/2859/13598 2367/2858/13599 +f 2367/2858/13600 2369/2860/13601 2370/2861/13602 +f 2371/2862/13603 2372/2863/13604 2370/2861/13605 +f 2370/2861/13606 2369/2860/13607 2371/2862/13608 +f 2434/2865/13609 2435/2866/13610 2456/2867/13611 +f 2456/2867/13612 2457/2864/13613 2434/2865/13614 +f 2458/2868/13615 2436/2869/13616 2434/2865/13617 +f 2434/2865/13618 2457/2864/13619 2458/2868/13620 +f 2459/2870/13621 2437/2871/13622 2436/2869/13623 +f 2436/2869/13624 2458/2868/13625 2459/2870/13626 +f 2379/2874/13627 2380/2875/13628 2378/2872/13629 +f 2378/2872/13630 2376/2873/13631 2379/2874/13632 +f 2371/2862/13633 2379/2874/13634 2376/2873/13635 +f 2376/2873/13636 2372/2863/13637 2371/2862/13638 +f 2377/2876/13639 2437/2871/13640 2438/2877/13641 +f 2438/2877/13642 2381/2878/13643 2377/2876/13644 +f 2382/2880/13645 2383/2881/13646 2375/2879/13647 +f 2375/2879/13648 2377/2876/13649 2382/2880/13650 +f 2375/2879/13651 2383/2881/13652 2384/2882/13653 +f 2384/2882/13654 2373/2883/13655 2375/2879/13656 +f 2384/2882/13657 2385/2885/13658 2374/2884/13659 +f 2374/2884/13660 2373/2883/13661 2384/2882/13662 +f 2386/2886/13663 2344/2822/13664 2374/2884/13665 +f 2374/2884/13666 2385/2885/13667 2386/2886/13668 +f 2344/2822/13669 2386/2886/13670 2339/2817/13671 +f 2339/2817/13672 2338/2816/13673 2344/2822/13674 +f 2449/2887/13675 2456/2867/13676 2435/2866/13677 +f 2435/2866/13678 2427/2821/13679 2449/2887/13680 +f 2454/2888/13681 2387/2889/13682 2358/2844/13683 +f 2358/2844/13684 2453/2843/13685 2454/2888/13686 +f 2388/2891/13687 2387/2889/13688 2454/2888/13689 +f 2454/2888/13690 2455/2890/13691 2388/2891/13692 +f 2390/2893/13693 2388/2953/13694 2455/2952/13695 +f 2455/2952/13696 2461/2892/13697 2390/2893/13698 +f 2392/2895/13699 2390/2893/13700 2461/2892/13701 +f 2461/2892/13702 2462/2894/13703 2392/2895/13704 +f 2392/2895/13705 2462/2894/13706 2463/2896/13707 +f 2463/2896/13708 2394/2897/13709 2392/2895/13710 +f 2394/2897/13711 2463/2896/13712 2464/2898/13713 +f 2464/2898/13714 2396/2899/13715 2394/2897/13716 +f 2396/2899/13717 2464/2898/13718 2465/2900/13719 +f 2465/2900/13720 2398/2901/13721 2396/2899/13722 +f 2400/2903/13723 2398/2901/13724 2465/2900/13725 +f 2465/2900/13726 2466/2902/13727 2400/2903/13728 +f 2402/2905/13729 2439/2906/13730 2440/2907/13731 +f 2440/2907/13732 2401/2904/13733 2402/2905/13734 +f 2403/2908/13735 2404/2909/13736 2402/2905/13737 +f 2402/2905/13738 2401/2904/13739 2403/2908/13740 +f 2405/2910/13741 2441/2911/13742 2439/2906/13743 +f 2439/2906/13744 2402/2905/13745 2405/2910/13746 +f 2405/2910/13747 2402/2905/13748 2404/2909/13749 +f 2404/2909/13750 2407/2912/13751 2405/2910/13752 +f 2409/2914/13753 2403/2908/13754 2401/2904/13755 +f 2401/2904/13756 2408/2913/13757 2409/2914/13758 +f 2442/2916/13759 2440/2907/13760 2397/2917/13761 +f 2397/2917/13762 2395/2915/13763 2442/2916/13764 +f 2467/2918/13765 2410/2919/13766 2400/2903/13767 +f 2400/2903/13768 2466/2902/13769 2467/2918/13770 +f 2412/2921/13771 2410/2919/13772 2467/2918/13773 +f 2467/2918/13774 2468/2920/13775 2412/2921/13776 +f 2413/2922/13777 2414/2923/13778 2412/2921/13779 +f 2412/2921/13780 2468/2920/13781 2413/2922/13782 +f 2416/2925/13783 2443/2926/13784 2444/2927/13785 +f 2444/2927/13786 2415/2924/13787 2416/2925/13788 +f 2406/2929/13789 2441/2911/13790 2444/2927/13791 +f 2444/2927/13792 2411/2928/13793 2406/2929/13794 +f 2417/2930/13795 2408/2913/13796 2442/2916/13797 +f 2442/2916/13798 2445/2931/13799 2417/2930/13800 +f 2445/2931/13801 2446/2932/13802 2418/2933/13803 +f 2418/2933/13804 2417/2930/13805 2445/2931/13806 +f 2420/2935/13807 2417/2930/13808 2418/2933/13809 +f 2418/2933/13810 2419/2934/13811 2420/2935/13812 +f 2422/2937/13813 2419/2934/13814 2418/2933/13815 +f 2418/2933/13816 2421/2936/13817 2422/2937/13818 +f 2421/2936/13819 2418/2933/13820 2446/2932/13821 +f 2446/2932/13822 2447/2938/13823 2421/2936/13824 +f 2363/2949/13825 2362/2948/13826 2422/2937/13827 +f 2422/2937/13828 2421/2936/13829 2363/2949/13830 +f 2433/2951/13831 2447/2938/13832 2389/2939/13833 +f 2389/2939/13834 2365/2950/13835 2433/2951/13836 +f 2409/2914/13837 2408/2913/13838 2417/2930/13839 +f 2417/2930/13840 2420/2935/13841 2409/2914/13842 +f 2405/2910/13843 2407/2912/13844 2423/2940/13845 +f 2423/2940/13846 2415/2924/13847 2405/2910/13848 +f 2423/2940/13849 2424/2941/13850 2416/2925/13851 +f 2416/2925/13852 2415/2924/13853 2423/2940/13854 +f 2425/2942/13855 2381/2957/13856 2416/2925/13857 +f 2416/2925/13858 2424/2941/13859 2425/2942/13860 +f 2377/2876/13861 2381/2878/13862 2425/2958/13863 +f 2425/2958/13864 2382/2880/13865 2377/2876/13866 +f 2381/2957/13867 2438/2956/13868 2443/2926/13869 +f 2443/2926/13870 2416/2925/13871 2381/2957/13872 +f 2378/2954/13873 2380/2955/13874 2414/2923/13875 +f 2414/2923/13876 2413/2922/13877 2378/2954/13878 +f 2342/2855/13879 2449/2887/13880 2427/2821/13881 +f 2427/2821/13882 2426/2820/13883 2342/2855/13884 +f 2341/2819/13885 2350/2834/13886 2429/2831/13887 +f 2429/2831/13888 2428/2830/13889 2341/2819/13890 +f 2430/2837/13891 2354/2838/13892 2348/2832/13893 +f 2348/2832/13894 2429/2831/13895 2430/2837/13896 +f 2353/2836/13897 2355/2847/13898 2431/2839/13899 +f 2431/2839/13900 2430/2837/13901 2353/2836/13902 +f 2360/2853/13903 2356/2840/13904 2431/2839/13905 +f 2431/2839/13906 2432/2846/13907 2360/2853/13908 +f 2359/2845/13909 2363/2850/13910 2433/2854/13911 +f 2433/2854/13912 2432/2846/13913 2359/2845/13914 +f 2338/2816/13915 2341/2819/13916 2428/2830/13917 +f 2428/2830/13918 2426/2820/13919 2338/2816/13920 +f 2373/2883/13921 2374/2884/13922 2435/2866/13923 +f 2435/2866/13924 2434/2865/13925 2373/2883/13926 +f 2436/2869/13927 2375/2879/13928 2373/2883/13929 +f 2373/2883/13930 2434/2865/13931 2436/2869/13932 +f 2437/2871/13933 2377/2876/13934 2375/2879/13935 +f 2375/2879/13936 2436/2869/13937 2437/2871/13938 +f 2437/2871/13939 2459/2870/13940 2460/2943/13941 +f 2460/2943/13942 2438/2877/13943 2437/2871/13944 +f 2374/2884/13945 2344/2822/13946 2427/2821/13947 +f 2427/2821/13948 2435/2866/13949 2374/2884/13950 +f 2399/2944/13951 2397/2917/13952 2440/2907/13953 +f 2440/2907/13954 2439/2906/13955 2399/2944/13956 +f 2441/2911/13957 2406/2929/13958 2399/2944/13959 +f 2399/2944/13960 2439/2906/13961 2441/2911/13962 +f 2442/2916/13963 2408/2913/13964 2401/2904/13965 +f 2401/2904/13966 2440/2907/13967 2442/2916/13968 +f 2443/2926/13969 2469/2945/13970 2411/2928/13971 +f 2411/2928/13972 2444/2927/13973 2443/2926/13974 +f 2441/2911/13975 2405/2910/13976 2415/2924/13977 +f 2415/2924/13978 2444/2927/13979 2441/2911/13980 +f 2395/2915/13981 2393/2946/13982 2445/2931/13983 +f 2445/2931/13984 2442/2916/13985 2395/2915/13986 +f 2393/2946/13987 2391/2947/13988 2446/2932/13989 +f 2446/2932/13990 2445/2931/13991 2393/2946/13992 +f 2391/2947/13993 2389/2939/13994 2447/2938/13995 +f 2447/2938/13996 2446/2932/13997 2391/2947/13998 +f 2363/2949/13999 2421/2936/14000 2447/2938/14001 +f 2447/2938/14002 2433/2951/14003 2363/2949/14004 +f 2438/2956/14005 2460/2959/14006 2469/2945/14007 +f 2469/2945/14008 2443/2926/14009 2438/2956/14010 +f 2342/2855/14011 2448/2823/14012 2343/2857/14013 +f 2343/2857/14014 2449/2887/14015 2342/2855/14016 +f 2448/2823/14017 2342/2855/14018 2345/2829/14019 +f 2345/2829/14020 2450/2824/14021 2448/2823/14022 +f 2450/2824/14023 2345/2829/14024 2348/2832/14025 +f 2348/2832/14026 2451/2827/14027 2450/2824/14028 +f 2354/2838/14029 2452/2841/14030 2451/2827/14031 +f 2451/2827/14032 2348/2832/14033 2354/2838/14034 +f 2356/2840/14035 2453/2843/14036 2452/2841/14037 +f 2452/2841/14038 2354/2838/14039 2356/2840/14040 +f 2360/2853/14041 2454/2888/14042 2453/2843/14043 +f 2453/2843/14044 2356/2840/14045 2360/2853/14046 +f 2365/2852/14047 2455/2890/14048 2454/2888/14049 +f 2454/2888/14050 2360/2853/14051 2365/2852/14052 +f 2368/2859/14053 2456/2867/14054 2449/2887/14055 +f 2449/2887/14056 2343/2857/14057 2368/2859/14058 +f 2370/2861/14059 2457/2864/14060 2456/2867/14061 +f 2456/2867/14062 2368/2859/14063 2370/2861/14064 +f 2372/2863/14065 2458/2868/14066 2457/2864/14067 +f 2457/2864/14068 2370/2861/14069 2372/2863/14070 +f 2458/2868/14071 2372/2863/14072 2376/2873/14073 +f 2376/2873/14074 2459/2870/14075 2458/2868/14076 +f 2378/2872/14077 2460/2943/14078 2459/2870/14079 +f 2459/2870/14080 2376/2873/14081 2378/2872/14082 +f 2455/2952/14083 2365/2950/14084 2389/2939/14085 +f 2389/2939/14086 2461/2892/14087 2455/2952/14088 +f 2461/2892/14089 2389/2939/14090 2391/2947/14091 +f 2391/2947/14092 2462/2894/14093 2461/2892/14094 +f 2462/2894/14095 2391/2947/14096 2393/2946/14097 +f 2393/2946/14098 2463/2896/14099 2462/2894/14100 +f 2463/2896/14101 2393/2946/14102 2395/2915/14103 +f 2395/2915/14104 2464/2898/14105 2463/2896/14106 +f 2464/2898/14107 2395/2915/14108 2397/2917/14109 +f 2397/2917/14110 2465/2900/14111 2464/2898/14112 +f 2465/2900/14113 2397/2917/14114 2399/2944/14115 +f 2399/2944/14116 2466/2902/14117 2465/2900/14118 +f 2406/2929/14119 2467/2918/14120 2466/2902/14121 +f 2466/2902/14122 2399/2944/14123 2406/2929/14124 +f 2467/2918/14125 2406/2929/14126 2411/2928/14127 +f 2411/2928/14128 2468/2920/14129 2467/2918/14130 +f 2468/2920/14131 2411/2928/14132 2469/2945/14133 +f 2469/2945/14134 2413/2922/14135 2468/2920/14136 +f 2460/2959/14137 2378/2954/14138 2413/2922/14139 +f 2413/2922/14140 2469/2945/14141 2460/2959/14142 +f 2486/2962/14143 2487/2963/14144 2524/2960/14145 +f 2524/2960/14146 2532/2961/14147 2486/2962/14148 +f 2471/2965/14149 2524/2960/14150 2487/2963/14151 +f 2487/2963/14152 2479/2964/14153 2471/2965/14154 +f 2472/2967/14155 2471/2965/14156 2479/2964/14157 +f 2479/2964/14158 2480/2966/14159 2472/2967/14160 +f 2473/2969/14161 2472/2967/14162 2480/2966/14163 +f 2480/2966/14164 2481/2968/14165 2473/2969/14166 +f 2474/2971/14167 2473/3024/14168 2481/3023/14169 +f 2481/3023/14170 2482/2970/14171 2474/2971/14172 +f 2475/2973/14173 2474/2971/14174 2482/2970/14175 +f 2482/2970/14176 2483/2972/14177 2475/2973/14178 +f 2476/2975/14179 2475/2973/14180 2483/2972/14181 +f 2483/2972/14182 2484/2974/14183 2476/2975/14184 +f 2477/2977/14185 2476/2975/14186 2484/2974/14187 +f 2484/2974/14188 2485/2976/14189 2477/2977/14190 +f 2532/2961/14191 2477/2977/14192 2485/2976/14193 +f 2485/2976/14194 2486/2962/14195 2532/2961/14196 +f 2495/2978/14197 2494/2979/14198 2479/2964/14199 +f 2479/2964/14200 2487/2963/14201 2495/2978/14202 +f 2480/2966/14203 2479/2964/14204 2494/2979/14205 +f 2494/2979/14206 2493/2980/14207 2480/2966/14208 +f 2481/2968/14209 2480/2966/14210 2493/2980/14211 +f 2493/2980/14212 2492/2981/14213 2481/2968/14214 +f 2482/2970/14215 2481/3023/14216 2492/3025/14217 +f 2492/3025/14218 2491/2982/14219 2482/2970/14220 +f 2483/2972/14221 2482/2970/14222 2491/2982/14223 +f 2491/2982/14224 2490/2983/14225 2483/2972/14226 +f 2484/2974/14227 2483/2972/14228 2490/2983/14229 +f 2490/2983/14230 2489/2984/14231 2484/2974/14232 +f 2485/2976/14233 2484/2974/14234 2489/2984/14235 +f 2489/2984/14236 2488/2985/14237 2485/2976/14238 +f 2486/2962/14239 2485/2976/14240 2488/2985/14241 +f 2488/2985/14242 2496/2986/14243 2486/2962/14244 +f 2487/2963/14245 2486/2962/14246 2496/2986/14247 +f 2496/2986/14248 2495/2978/14249 2487/2963/14250 +f 2478/2989/14251 2470/2990/14252 2497/2987/14253 +f 2497/2987/14254 2505/2988/14255 2478/2989/14256 +f 2470/2990/14257 2525/2992/14258 2498/2991/14259 +f 2498/2991/14260 2497/2987/14261 2470/2990/14262 +f 2525/2992/14263 2526/2994/14264 2499/2993/14265 +f 2499/2993/14266 2498/2991/14267 2525/2992/14268 +f 2526/2994/14269 2527/2996/14270 2500/2995/14271 +f 2500/2995/14272 2499/2993/14273 2526/2994/14274 +f 2527/3027/14275 2528/2998/14276 2501/2997/14277 +f 2501/2997/14278 2500/3026/14279 2527/3027/14280 +f 2528/2998/14281 2529/3000/14282 2502/2999/14283 +f 2502/2999/14284 2501/2997/14285 2528/2998/14286 +f 2529/3000/14287 2530/3002/14288 2503/3001/14289 +f 2503/3001/14290 2502/2999/14291 2529/3000/14292 +f 2530/3002/14293 2531/3004/14294 2504/3003/14295 +f 2504/3003/14296 2503/3001/14297 2530/3002/14298 +f 2531/3004/14299 2478/2989/14300 2505/2988/14301 +f 2505/2988/14302 2504/3003/14303 2531/3004/14304 +f 2521/3007/14305 2522/3008/14306 2513/3005/14307 +f 2513/3005/14308 2512/3006/14309 2521/3007/14310 +f 2520/3010/14311 2521/3007/14312 2512/3006/14313 +f 2512/3006/14314 2511/3009/14315 2520/3010/14316 +f 2519/3012/14317 2520/3010/14318 2511/3009/14319 +f 2511/3009/14320 2510/3011/14321 2519/3012/14322 +f 2518/3014/14323 2519/3029/14324 2510/3028/14325 +f 2510/3028/14326 2509/3013/14327 2518/3014/14328 +f 2517/3016/14329 2518/3014/14330 2509/3013/14331 +f 2509/3013/14332 2508/3015/14333 2517/3016/14334 +f 2516/3018/14335 2517/3016/14336 2508/3015/14337 +f 2508/3015/14338 2507/3017/14339 2516/3018/14340 +f 2515/3020/14341 2516/3018/14342 2507/3017/14343 +f 2507/3017/14344 2506/3019/14345 2515/3020/14346 +f 2523/3022/14347 2515/3020/14348 2506/3019/14349 +f 2506/3019/14350 2514/3021/14351 2523/3022/14352 +f 2522/3008/14353 2523/3022/14354 2514/3021/14355 +f 2514/3021/14356 2513/3005/14357 2522/3008/14358 +f 2495/2978/14359 2522/3008/14360 2521/3007/14361 +f 2521/3007/14362 2494/2979/14363 2495/2978/14364 +f 2494/2979/14365 2521/3007/14366 2520/3010/14367 +f 2520/3010/14368 2493/2980/14369 2494/2979/14370 +f 2493/2980/14371 2520/3010/14372 2519/3012/14373 +f 2519/3012/14374 2492/2981/14375 2493/2980/14376 +f 2492/3025/14377 2519/3029/14378 2518/3014/14379 +f 2518/3014/14380 2491/2982/14381 2492/3025/14382 +f 2491/2982/14383 2518/3014/14384 2517/3016/14385 +f 2517/3016/14386 2490/2983/14387 2491/2982/14388 +f 2490/2983/14389 2517/3016/14390 2516/3018/14391 +f 2516/3018/14392 2489/2984/14393 2490/2983/14394 +f 2489/2984/14395 2516/3018/14396 2515/3020/14397 +f 2515/3020/14398 2488/2985/14399 2489/2984/14400 +f 2488/2985/14401 2515/3020/14402 2523/3022/14403 +f 2523/3022/14404 2496/2986/14405 2488/2985/14406 +f 2496/2986/14407 2523/3022/14408 2522/3008/14409 +f 2522/3008/14410 2495/2978/14411 2496/2986/14412 +f 2524/2960/14413 2470/2990/14414 2478/2989/14415 +f 2478/2989/14416 2532/2961/14417 2524/2960/14418 +f 2471/2965/14419 2525/2992/14420 2470/2990/14421 +f 2470/2990/14422 2524/2960/14423 2471/2965/14424 +f 2472/2967/14425 2526/2994/14426 2525/2992/14427 +f 2525/2992/14428 2471/2965/14429 2472/2967/14430 +f 2473/2969/14431 2527/2996/14432 2526/2994/14433 +f 2526/2994/14434 2472/2967/14435 2473/2969/14436 +f 2474/2971/14437 2528/2998/14438 2527/3027/14439 +f 2527/3027/14440 2473/3024/14441 2474/2971/14442 +f 2475/2973/14443 2529/3000/14444 2528/2998/14445 +f 2528/2998/14446 2474/2971/14447 2475/2973/14448 +f 2476/2975/14449 2530/3002/14450 2529/3000/14451 +f 2529/3000/14452 2475/2973/14453 2476/2975/14454 +f 2477/2977/14455 2531/3004/14456 2530/3002/14457 +f 2530/3002/14458 2476/2975/14459 2477/2977/14460 +f 2532/2961/14461 2478/2989/14462 2531/3004/14463 +f 2531/3004/14464 2477/2977/14465 2532/2961/14466 +f 2535/3035/14467 2536/3060/14468 2533/3032/14469 +f 2533/3032/14470 2534/3033/14471 2535/3035/14472 +f 2536/3060/14473 2538/3062/14474 2537/3061/14475 +f 2537/3061/14476 2533/3032/14477 2536/3060/14478 +f 2537/3034/14479 2540/3036/14480 2539/3030/14481 +f 2539/3030/14482 2533/3031/14483 2537/3034/14484 +f 2542/3038/14485 2543/3039/14486 2539/3030/14487 +f 2539/3030/14488 2541/3037/14489 2542/3038/14490 +f 2539/3030/14491 2540/3036/14492 2544/3040/14493 +f 2544/3040/14494 2541/3037/14495 2539/3030/14496 +f 2544/3040/14497 2540/3036/14498 2545/3041/14499 +f 2545/3041/14500 2546/3042/14501 2544/3040/14502 +f 2548/3044/14503 2546/3042/14504 2545/3041/14505 +f 2545/3041/14506 2547/3043/14507 2548/3044/14508 +f 2547/3048/14509 2550/3049/14510 2549/3046/14511 +f 2549/3046/14512 2548/3047/14513 2547/3048/14514 +f 2549/3046/14515 2550/3049/14516 2551/3050/14517 +f 2551/3050/14518 2552/3051/14519 2549/3046/14520 +f 2554/3053/14521 2552/3051/14522 2551/3050/14523 +f 2551/3050/14524 2553/3052/14525 2554/3053/14526 +f 2555/3054/14527 2556/3055/14528 2554/3053/14529 +f 2554/3053/14530 2553/3052/14531 2555/3054/14532 +f 2557/3056/14533 2558/3057/14534 2555/3054/14535 +f 2555/3054/14536 2553/3052/14537 2557/3056/14538 +f 2559/3068/14539 2557/3056/14540 2553/3052/14541 +f 2553/3052/14542 2551/3050/14543 2559/3068/14544 +f 2559/3068/14545 2551/3050/14546 2550/3049/14547 +f 2550/3049/14548 2560/3166/14549 2559/3068/14550 +f 2550/3049/14551 2547/3048/14552 2561/3175/14553 +f 2561/3175/14554 2560/3166/14555 2550/3049/14556 +f 2562/3045/14557 2561/3058/14558 2547/3043/14559 +f 2547/3043/14560 2545/3041/14561 2562/3045/14562 +f 2564/3065/14563 2561/3066/14564 2562/3063/14565 +f 2562/3063/14566 2563/3064/14567 2564/3065/14568 +f 2566/3069/14569 2564/3065/14570 2563/3064/14571 +f 2563/3064/14572 2565/3067/14573 2566/3069/14574 +f 2567/3070/14575 2568/3079/14576 2566/3069/14577 +f 2566/3069/14578 2565/3067/14579 2567/3070/14580 +f 2565/3067/14581 2570/3081/14582 2569/3080/14583 +f 2569/3080/14584 2567/3070/14585 2565/3067/14586 +f 2538/3062/14587 2570/3081/14588 2565/3067/14589 +f 2565/3067/14590 2563/3064/14591 2538/3062/14592 +f 2564/3065/14593 2572/3188/14594 2571/3082/14595 +f 2571/3082/14596 2561/3066/14597 2564/3065/14598 +f 2566/3069/14599 2573/3189/14600 2572/3188/14601 +f 2572/3188/14602 2564/3065/14603 2566/3069/14604 +f 2538/3062/14605 2563/3064/14606 2562/3063/14607 +f 2562/3063/14608 2537/3061/14609 2538/3062/14610 +f 2562/3045/14611 2545/3041/14612 2540/3036/14613 +f 2540/3036/14614 2537/3034/14615 2562/3045/14616 +f 2574/3059/14617 2575/3071/14618 2543/3039/14619 +f 2543/3039/14620 2542/3038/14621 2574/3059/14622 +f 2539/3030/14623 2543/3039/14624 2534/3072/14625 +f 2534/3072/14626 2533/3031/14627 2539/3030/14628 +f 2576/3073/14629 2534/3072/14630 2543/3039/14631 +f 2543/3039/14632 2575/3071/14633 2576/3073/14634 +f 2575/3071/14635 2578/3075/14636 2577/3074/14637 +f 2577/3074/14638 2576/3073/14639 2575/3071/14640 +f 2579/3076/14641 2580/3077/14642 2576/3073/14643 +f 2576/3073/14644 2577/3074/14645 2579/3076/14646 +f 2576/3073/14647 2580/3077/14648 2581/3078/14649 +f 2581/3078/14650 2534/3072/14651 2576/3073/14652 +f 2581/3190/14653 2582/3191/14654 2535/3035/14655 +f 2535/3035/14656 2534/3033/14657 2581/3190/14658 +f 2584/3193/14659 2536/3060/14660 2535/3035/14661 +f 2535/3035/14662 2583/3192/14663 2584/3193/14664 +f 2585/3194/14665 2583/3192/14666 2535/3035/14667 +f 2535/3035/14668 2582/3191/14669 2585/3194/14670 +f 2586/3083/14671 2587/3084/14672 2579/3076/14673 +f 2579/3076/14674 2577/3074/14675 2586/3083/14676 +f 2577/3074/14677 2578/3075/14678 2588/3085/14679 +f 2588/3085/14680 2586/3083/14681 2577/3074/14682 +f 2589/3086/14683 2590/3087/14684 2588/3085/14685 +f 2588/3085/14686 2578/3075/14687 2589/3086/14688 +f 2588/3085/14689 2592/3089/14690 2591/3088/14691 +f 2591/3088/14692 2586/3083/14693 2588/3085/14694 +f 2588/3085/14695 2590/3087/14696 2593/3090/14697 +f 2593/3090/14698 2592/3089/14699 2588/3085/14700 +f 2587/3084/14701 2586/3083/14702 2591/3088/14703 +f 2591/3088/14704 2594/3091/14705 2587/3084/14706 +f 2594/3091/14707 2591/3088/14708 2595/3237/14709 +f 2595/3237/14710 2596/3238/14711 2594/3091/14712 +f 2578/3075/14713 2575/3071/14714 2574/3059/14715 +f 2574/3059/14716 2589/3086/14717 2578/3075/14718 +f 2599/3098/14719 2600/3099/14720 2597/3095/14721 +f 2597/3095/14722 2598/3096/14723 2599/3098/14724 +f 2602/3101/14725 2599/3098/14726 2598/3096/14727 +f 2598/3096/14728 2601/3100/14729 2602/3101/14730 +f 2604/3103/14731 2602/3101/14732 2601/3100/14733 +f 2601/3100/14734 2603/3102/14735 2604/3103/14736 +f 2603/3102/14737 2606/3105/14738 2605/3104/14739 +f 2605/3104/14740 2604/3221/14741 2603/3102/14742 +f 2605/3104/14743 2606/3105/14744 2607/3106/14745 +f 2607/3106/14746 2608/3107/14747 2605/3104/14748 +f 2608/3223/14749 2607/3106/14750 2609/3108/14751 +f 2609/3108/14752 2610/3109/14753 2608/3223/14754 +f 2612/3111/14755 2613/3112/14756 2609/3108/14757 +f 2609/3108/14758 2611/3110/14759 2612/3111/14760 +f 2606/3105/14761 2603/3102/14762 2614/3113/14763 +f 2614/3113/14764 2611/3110/14765 2606/3105/14766 +f 2614/3113/14767 2615/3114/14768 2612/3111/14769 +f 2612/3111/14770 2611/3110/14771 2614/3113/14772 +f 2617/3116/14773 2613/3112/14774 2612/3111/14775 +f 2612/3111/14776 2616/3115/14777 2617/3116/14778 +f 2618/3117/14779 2619/3118/14780 2617/3116/14781 +f 2617/3116/14782 2616/3115/14783 2618/3117/14784 +f 2621/3120/14785 2618/3117/14786 2616/3115/14787 +f 2616/3115/14788 2620/3119/14789 2621/3120/14790 +f 2612/3111/14791 2615/3114/14792 2620/3119/14793 +f 2620/3119/14794 2616/3115/14795 2612/3111/14796 +f 2610/3109/14797 2609/3108/14798 2613/3112/14799 +f 2613/3112/14800 2622/3121/14801 2610/3109/14802 +f 2623/3122/14803 2622/3227/14804 2613/3112/14805 +f 2613/3112/14806 2617/3116/14807 2623/3122/14808 +f 2615/3114/14809 2614/3113/14810 2624/3123/14811 +f 2624/3123/14812 2625/3124/14813 2615/3114/14814 +f 2627/3128/14815 2625/3124/14816 2624/3123/14817 +f 2624/3123/14818 2626/3127/14819 2627/3128/14820 +f 2601/3100/14821 2598/3096/14822 2626/3127/14823 +f 2626/3127/14824 2624/3123/14825 2601/3100/14826 +f 2629/3167/14827 2627/3128/14828 2626/3127/14829 +f 2626/3127/14830 2628/3164/14831 2629/3167/14832 +f 2628/3164/14833 2626/3127/14834 2598/3096/14835 +f 2598/3096/14836 2597/3095/14837 2628/3164/14838 +f 2630/3183/14839 2620/3119/14840 2615/3114/14841 +f 2615/3114/14842 2625/3124/14843 2630/3183/14844 +f 2631/3184/14845 2630/3183/14846 2625/3124/14847 +f 2625/3124/14848 2627/3128/14849 2631/3184/14850 +f 2614/3113/14851 2603/3102/14852 2601/3100/14853 +f 2601/3100/14854 2624/3123/14855 2614/3113/14856 +f 2606/3105/14857 2611/3110/14858 2609/3108/14859 +f 2609/3108/14860 2607/3106/14861 2606/3105/14862 +f 2632/3125/14863 2633/3126/14864 2597/3094/14865 +f 2597/3094/14866 2600/3097/14867 2632/3125/14868 +f 2633/3126/14869 2632/3125/14870 2634/3129/14871 +f 2634/3129/14872 2635/3130/14873 2633/3126/14874 +f 2634/3129/14875 2637/3132/14876 2636/3131/14877 +f 2636/3131/14878 2635/3130/14879 2634/3129/14880 +f 2639/3134/14881 2640/3135/14882 2636/3131/14883 +f 2636/3131/14884 2638/3133/14885 2639/3134/14886 +f 2641/3136/14887 2642/3137/14888 2639/3134/14889 +f 2639/3134/14890 2638/3133/14891 2641/3136/14892 +f 2643/3140/14893 2644/3141/14894 2640/3135/14895 +f 2640/3135/14896 2639/3134/14897 2643/3140/14898 +f 2646/3143/14899 2640/3135/14900 2644/3141/14901 +f 2644/3141/14902 2645/3142/14903 2646/3143/14904 +f 2645/3142/14905 2648/3145/14906 2647/3144/14907 +f 2647/3144/14908 2646/3143/14909 2645/3142/14910 +f 2650/3147/14911 2647/3144/14912 2648/3145/14913 +f 2648/3145/14914 2649/3146/14915 2650/3147/14916 +f 2650/3147/14917 2649/3146/14918 2651/3148/14919 +f 2651/3148/14920 2652/3149/14921 2650/3147/14922 +f 2635/3130/14923 2646/3143/14924 2647/3144/14925 +f 2647/3144/14926 2633/3126/14927 2635/3130/14928 +f 2647/3144/14929 2650/3147/14930 2597/3094/14931 +f 2597/3094/14932 2633/3126/14933 2647/3144/14934 +f 2640/3135/14935 2646/3143/14936 2635/3130/14937 +f 2635/3130/14938 2636/3131/14939 2640/3135/14940 +f 2639/3134/14941 2642/3137/14942 2653/3163/14943 +f 2653/3163/14944 2643/3140/14945 2639/3134/14946 +f 2654/3138/14947 2655/3139/14948 2653/3092/14949 +f 2653/3092/14950 2642/3093/14951 2654/3138/14952 +f 2642/3093/14953 2641/3151/14954 2656/3150/14955 +f 2656/3150/14956 2654/3138/14957 2642/3093/14958 +f 2658/3153/14959 2659/3154/14960 2657/3152/14961 +f 2657/3152/14962 2656/3150/14963 2658/3153/14964 +f 2656/3150/14965 2641/3151/14966 2660/3155/14967 +f 2660/3155/14968 2658/3153/14969 2656/3150/14970 +f 2657/3152/14971 2661/3156/14972 2654/3138/14973 +f 2654/3138/14974 2656/3150/14975 2657/3152/14976 +s 2 +f 2662/3157/14977 2653/3092/14978 2655/3139/14979 +s 4 +f 2662/3157/14980 2663/3158/14981 2664/3159/14982 +s 1 +f 2662/3157/14983 2661/3156/14984 2665/3160/14985 +f 2665/3160/14986 2663/3158/14987 2662/3157/14988 +f 2661/3156/14989 2662/3157/14990 2655/3139/14991 +f 2655/3139/14992 2654/3138/14993 2661/3156/14994 +f 2660/3168/14995 2641/3136/14996 2638/3133/14997 +f 2638/3133/14998 2666/3165/14999 2660/3168/15000 +f 2666/3165/15001 2638/3133/15002 2636/3131/15003 +f 2636/3131/15004 2637/3132/15005 2666/3165/15006 +f 2650/3147/15007 2652/3149/15008 2628/3169/15009 +f 2628/3169/15010 2597/3094/15011 2650/3147/15012 +f 2669/3187/15013 2670/3212/15014 2667/3185/15015 +f 2667/3185/15016 2668/3186/15017 2669/3187/15018 +f 2631/3184/15019 2671/3213/15020 2668/3186/15021 +f 2668/3186/15022 2667/3185/15023 2631/3184/15024 +f 2673/3172/15025 2668/3173/15026 2671/3170/15027 +f 2671/3170/15028 2672/3171/15029 2673/3172/15030 +f 2675/3241/15031 2673/3172/15032 2672/3171/15033 +f 2672/3171/15034 2674/3174/15035 2675/3241/15036 +f 2676/3242/15037 2677/3243/15038 2674/3174/15039 +f 2674/3174/15040 2672/3171/15041 2676/3242/15042 +f 2652/3149/15043 2651/3148/15044 2677/3243/15045 +f 2677/3243/15046 2676/3242/15047 2652/3149/15048 +f 2652/3149/15049 2676/3242/15050 2629/3244/15051 +f 2629/3244/15052 2628/3169/15053 2652/3149/15054 +f 2672/3171/15055 2671/3170/15056 2629/3244/15057 +f 2629/3244/15058 2676/3242/15059 2672/3171/15060 +f 2675/3178/15061 2679/3179/15062 2678/3176/15063 +f 2678/3176/15064 2673/3177/15065 2675/3178/15066 +f 2558/3057/15067 2680/3180/15068 2678/3176/15069 +f 2678/3176/15070 2555/3054/15071 2558/3057/15072 +f 2680/3180/15073 2668/3181/15074 2673/3177/15075 +f 2673/3177/15076 2678/3176/15077 2680/3180/15078 +f 2669/3229/15079 2668/3181/15080 2680/3180/15081 +f 2680/3180/15082 2681/3182/15083 2669/3229/15084 +f 2682/3230/15085 2681/3182/15086 2680/3180/15087 +f 2680/3180/15088 2558/3057/15089 2682/3230/15090 +f 2682/3230/15091 2558/3057/15092 2557/3056/15093 +f 2557/3056/15094 2683/3231/15095 2682/3230/15096 +f 2557/3056/15097 2559/3068/15098 2684/3234/15099 +f 2684/3234/15100 2683/3231/15101 2557/3056/15102 +f 2684/3234/15103 2559/3068/15104 2560/3166/15105 +f 2560/3166/15106 2685/3235/15107 2684/3234/15108 +f 2556/3055/15109 2555/3054/15110 2678/3176/15111 +f 2678/3176/15112 2679/3179/15113 2556/3055/15114 +f 2631/3184/15115 2627/3128/15116 2629/3167/15117 +f 2629/3167/15118 2671/3213/15119 2631/3184/15120 +f 2686/3214/15121 2630/3183/15122 2631/3184/15123 +f 2631/3184/15124 2667/3185/15125 2686/3214/15126 +f 2620/3119/15127 2630/3183/15128 2686/3214/15129 +f 2686/3214/15130 2621/3120/15131 2620/3119/15132 +f 2621/3120/15133 2686/3214/15134 2687/3215/15135 +f 2687/3215/15136 2688/3216/15137 2621/3120/15138 +f 2670/3212/15139 2687/3215/15140 2686/3214/15141 +f 2686/3214/15142 2667/3185/15143 2670/3212/15144 +f 2689/3217/15145 2618/3117/15146 2621/3120/15147 +f 2621/3120/15148 2688/3232/15149 2689/3217/15150 +f 2690/3218/15151 2619/3118/15152 2618/3117/15153 +f 2618/3117/15154 2689/3217/15155 2690/3218/15156 +f 2690/3233/15157 2623/3122/15158 2617/3116/15159 +f 2617/3116/15160 2619/3118/15161 2690/3233/15162 +f 2561/3175/15163 2571/3236/15164 2685/3235/15165 +f 2685/3235/15166 2560/3166/15167 2561/3175/15168 +f 2584/3193/15169 2570/3081/15170 2538/3062/15171 +f 2538/3062/15172 2536/3060/15173 2584/3193/15174 +f 2691/3195/15175 2569/3080/15176 2570/3081/15177 +f 2570/3081/15178 2584/3193/15179 2691/3195/15180 +f 2691/3195/15181 2584/3193/15182 2583/3192/15183 +f 2583/3192/15184 2692/3196/15185 2691/3195/15186 +f 2694/3198/15187 2691/3195/15188 2692/3196/15189 +f 2692/3196/15190 2693/3197/15191 2694/3198/15192 +f 2696/3200/15193 2694/3198/15194 2693/3197/15195 +f 2693/3197/15196 2695/3199/15197 2696/3200/15198 +f 2698/3202/15199 2695/3199/15200 2693/3197/15201 +f 2693/3197/15202 2697/3201/15203 2698/3202/15204 +f 2692/3196/15205 2699/3203/15206 2697/3201/15207 +f 2697/3201/15208 2693/3197/15209 2692/3196/15210 +f 2583/3192/15211 2585/3194/15212 2699/3246/15213 +f 2699/3246/15214 2692/3196/15215 2583/3192/15216 +f 2696/3200/15217 2695/3199/15218 2698/3245/15219 +f 2698/3245/15220 2700/3204/15221 2696/3200/15222 +f 2701/3205/15223 2702/3206/15224 2696/3200/15225 +f 2696/3200/15226 2700/3204/15227 2701/3205/15228 +f 2696/3200/15229 2702/3206/15230 2703/3207/15231 +f 2703/3207/15232 2694/3198/15233 2696/3200/15234 +f 2567/3070/15235 2569/3080/15236 2703/3207/15237 +f 2703/3207/15238 2704/3208/15239 2567/3070/15240 +f 2705/3219/15241 2704/3208/15242 2703/3207/15243 +f 2703/3207/15244 2702/3206/15245 2705/3219/15246 +f 2701/3247/15247 2706/3220/15248 2705/3219/15249 +f 2705/3219/15250 2702/3206/15251 2701/3247/15252 +f 2704/3208/15253 2707/3222/15254 2568/3079/15255 +f 2568/3079/15256 2567/3070/15257 2704/3208/15258 +f 2707/3222/15259 2710/3226/15260 2708/3224/15261 +f 2708/3224/15262 2709/3225/15263 2707/3222/15264 +f 2710/3226/15265 2707/3222/15266 2704/3208/15267 +f 2704/3208/15268 2705/3219/15269 2710/3226/15270 +f 2707/3222/15271 2709/3225/15272 2711/3228/15273 +f 2711/3228/15274 2568/3079/15275 2707/3222/15276 +f 2694/3198/15277 2703/3207/15278 2569/3080/15279 +f 2569/3080/15280 2691/3195/15281 2694/3198/15282 +f 2712/3161/15283 2665/3160/15284 2661/3156/15285 +f 2661/3156/15286 2657/3152/15287 2712/3161/15288 +f 2595/3162/15289 2713/3209/15290 2665/3160/15291 +f 2665/3160/15292 2712/3161/15293 2595/3162/15294 +f 2591/3088/15295 2592/3089/15296 2713/3239/15297 +f 2713/3239/15298 2595/3237/15299 2591/3088/15300 +f 2664/3159/15301 2663/3158/15302 2665/3160/15303 +f 2665/3160/15304 2713/3209/15305 2664/3159/15306 +f 2592/3089/15307 2593/3090/15308 2664/3240/15309 +f 2664/3240/15310 2713/3239/15311 2592/3089/15312 +f 2714/3210/15313 2596/3211/15314 2595/3162/15315 +f 2595/3162/15316 2712/3161/15317 2714/3210/15318 +f 2659/3154/15319 2714/3210/15320 2712/3161/15321 +f 2712/3161/15322 2657/3152/15323 2659/3154/15324 +f 2573/3189/15325 2566/3069/15326 2568/3079/15327 +f 2568/3079/15328 2711/3249/15329 2573/3189/15330 +f 2708/3248/15331 2710/3226/15332 2705/3219/15333 +f 2705/3219/15334 2706/3220/15335 2708/3248/15336 +f 2716/3252/15337 2715/3253/15338 2718/3250/15339 +f 2718/3250/15340 2717/3251/15341 2716/3252/15342 +f 2719/3255/15343 2717/3251/15344 2718/3250/15345 +f 2718/3250/15346 2720/3254/15347 2719/3255/15348 +f 2721/3256/15349 2720/3257/15350 2718/3250/15351 +f 2718/3250/15352 2715/3253/15353 2721/3256/15354 +f 2722/3258/15355 2716/3252/15356 2717/3251/15357 +f 2717/3251/15358 2719/3255/15359 2722/3258/15360 +f 2723/3260/15361 2719/3255/15362 2720/3254/15363 +f 2720/3254/15364 2721/3259/15365 2723/3260/15366 +f 2719/3255/15367 2723/3260/15368 2724/3261/15369 +f 2724/3261/15370 2722/3258/15371 2719/3255/15372 +f 2727/3262/15373 2726/3263/15374 2725/3264/15375 +f 2723/3260/15376 2721/3259/15377 2727/3265/15378 +f 2727/3265/15379 2728/3266/15380 2723/3260/15381 +f 2727/3265/15382 2729/3267/15383 2728/3266/15384 +f 2731/3270/15385 2730/3271/15386 2733/3268/15387 +f 2733/3268/15388 2732/3269/15389 2731/3270/15390 +f 2735/3274/15391 2734/3275/15392 2737/3272/15393 +f 2737/3272/15394 2736/3273/15395 2735/3274/15396 +f 2738/3276/15397 2736/3273/15398 2737/3272/15399 +f 2737/3272/15400 2733/3268/15401 2738/3276/15402 +f 2739/3277/15403 2733/3268/15404 2737/3272/15405 +f 2737/3272/15406 2734/3275/15407 2739/3277/15408 +f 2741/3280/15409 2740/3281/15410 2743/3278/15411 +f 2743/3278/15412 2742/3279/15413 2741/3280/15414 +f 2745/3284/15415 2744/3285/15416 2747/3282/15417 +f 2747/3282/15418 2746/3283/15419 2745/3284/15420 +f 2746/3283/15421 2747/3282/15422 2749/3286/15423 +f 2749/3286/15424 2748/3287/15425 2746/3283/15426 +f 2747/3282/15427 2750/3288/15428 2749/3286/15429 +f 2752/3291/15430 2751/3292/15431 2754/3289/15432 +f 2754/3289/15433 2753/3290/15434 2752/3291/15435 +f 2754/3289/15436 2755/3293/15437 2753/3290/15438 +f 2754/3289/15439 2751/3292/15440 2756/3294/15441 +f 2753/3290/15442 2755/3293/15443 2758/3295/15444 +f 2758/3295/15445 2757/3296/15446 2753/3290/15447 +f 2752/3291/15448 2753/3290/15449 2757/3296/15450 +f 2752/3291/15451 2757/3296/15452 2760/3297/15453 +f 2760/3297/15454 2759/3298/15455 2752/3291/15456 +f 2761/3301/15457 2745/3284/15458 2763/3299/15459 +f 2763/3299/15460 2762/3300/15461 2761/3301/15462 +f 2763/3299/15463 2764/3304/15464 2766/3302/15465 +f 2766/3302/15466 2765/3303/15467 2763/3299/15468 +f 2763/3299/15469 2765/3303/15470 2767/3305/15471 +f 2767/3305/15472 2762/3300/15473 2763/3299/15474 +f 2769/3308/15475 2768/3309/15476 2771/3306/15477 +f 2771/3306/15478 2770/3307/15479 2769/3308/15480 +f 2773/3310/15481 2772/3311/15482 2768/3309/15483 +f 2768/3309/15484 2769/3308/15485 2773/3310/15486 +f 2774/3313/15487 2769/3308/15488 2770/3307/15489 +f 2770/3307/15490 2775/3312/15491 2774/3313/15492 +f 2776/3315/15493 2772/3311/15494 2773/3310/15495 +f 2773/3310/15496 2777/3314/15497 2776/3315/15498 +f 2778/3316/15499 2758/3295/15500 2767/3305/15501 +f 2767/3305/15502 2765/3303/15503 2778/3316/15504 +f 2770/3307/15505 2771/3306/15506 2780/3317/15507 +f 2780/3317/15508 2779/3318/15509 2770/3307/15510 +f 2782/3321/15511 2781/3322/15512 2784/3319/15513 +f 2784/3319/15514 2783/3320/15515 2782/3321/15516 +f 2783/3320/15517 2784/3319/15518 2786/3323/15519 +f 2786/3323/15520 2785/3324/15521 2783/3320/15522 +f 2788/3327/15523 2787/3328/15524 2790/3325/15525 +f 2790/3325/15526 2789/3326/15527 2788/3327/15528 +f 2789/3326/15529 2790/3325/15530 2791/3329/15531 +f 2793/3331/15532 2792/3332/15533 2789/3326/15534 +f 2789/3326/15535 2794/3330/15536 2793/3331/15537 +f 2795/3333/15538 2794/3330/15539 2789/3326/15540 +f 2789/3326/15541 2791/3329/15542 2795/3333/15543 +f 2770/3307/15544 2796/3335/15545 2797/3334/15546 +f 2797/3334/15547 2775/3312/15548 2770/3307/15549 +f 2777/3314/15550 2798/3338/15551 2800/3336/15552 +f 2800/3336/15553 2799/3337/15554 2777/3314/15555 +f 2802/3339/15556 2801/3340/15557 2800/3336/15558 +f 2800/3336/15559 2798/3338/15560 2802/3339/15561 +f 2804/3341/15562 2803/3342/15563 2800/3336/15564 +f 2800/3336/15565 2801/3340/15566 2804/3341/15567 +f 2777/3314/15568 2773/3310/15569 2805/3343/15570 +f 2805/3343/15571 2798/3338/15572 2777/3314/15573 +f 2805/3343/15574 2773/3310/15575 2774/3313/15576 +f 2774/3313/15577 2806/3344/15578 2805/3343/15579 +f 2805/3343/15580 2806/3344/15581 2807/3345/15582 +f 2809/3346/15583 2808/3347/15584 2805/3343/15585 +f 2805/3343/15586 2807/3345/15587 2809/3346/15588 +f 2812/3348/15589 2811/3349/15590 2810/3350/15591 +f 2813/3352/15592 2794/3330/15593 2795/3333/15594 +f 2795/3333/15595 2814/3351/15596 2813/3352/15597 +f 2816/3354/15598 2815/3355/15599 2795/3333/15600 +f 2795/3333/15601 2817/3353/15602 2816/3354/15603 +f 2818/3356/15604 2814/3351/15605 2795/3333/15606 +f 2795/3333/15607 2815/3355/15608 2818/3356/15609 +f 2820/3359/15610 2819/3360/15611 2822/3357/15612 +f 2822/3357/15613 2821/3358/15614 2820/3359/15615 +f 2766/3302/15616 2821/3358/15617 2822/3357/15618 +f 2822/3357/15619 2812/3348/15620 2766/3302/15621 +f 2819/3360/15622 2823/3361/15623 2822/3357/15624 +f 2822/3357/15625 2823/3361/15626 2824/3362/15627 +f 2822/3357/15628 2824/3362/15629 2811/3349/15630 +f 2826/3365/15631 2825/3366/15632 2828/3363/15633 +f 2828/3363/15634 2827/3364/15635 2826/3365/15636 +f 2828/3363/15637 2829/3369/15638 2831/3367/15639 +f 2831/3367/15640 2830/3368/15641 2828/3363/15642 +f 2796/3335/15643 2832/3371/15644 2833/3370/15645 +f 2833/3370/15646 2797/3334/15647 2796/3335/15648 +f 2833/3370/15649 2834/3372/15650 2797/3334/15651 +f 2770/3307/15652 2779/3318/15653 2832/3371/15654 +f 2832/3371/15655 2796/3335/15656 2770/3307/15657 +f 2836/3373/15658 2835/3374/15659 2823/3361/15660 +f 2838/3376/15661 2837/3377/15662 2839/3375/15663 +f 2839/3375/15664 2836/3373/15665 2838/3376/15666 +f 2840/3379/15667 2835/3374/15668 2839/3375/15669 +f 2839/3375/15670 2841/3378/15671 2840/3379/15672 +f 2839/3375/15673 2835/3374/15674 2836/3373/15675 +f 2843/3382/15676 2842/3383/15677 2845/3380/15678 +f 2845/3380/15679 2844/3381/15680 2843/3382/15681 +f 2847/3384/15682 2846/3385/15683 2845/3380/15684 +f 2845/3380/15685 2842/3383/15686 2847/3384/15687 +f 2848/3387/15688 2844/3381/15689 2845/3380/15690 +f 2845/3380/15691 2849/3386/15692 2848/3387/15693 +f 2851/3390/15694 2850/3391/15695 2853/3388/15696 +f 2853/3388/15697 2852/3389/15698 2851/3390/15699 +f 2852/3389/15700 2854/3392/15701 2851/3390/15702 +f 2855/3395/15703 2834/3372/15704 2857/3393/15705 +f 2857/3393/15706 2856/3394/15707 2855/3395/15708 +f 2856/3394/15709 2857/3393/15710 2859/3396/15711 +f 2859/3396/15712 2858/3397/15713 2856/3394/15714 +f 2833/3370/15715 2859/3396/15716 2857/3393/15717 +f 2857/3393/15718 2834/3372/15719 2833/3370/15720 +f 2860/3399/15721 2829/3369/15722 2861/3398/15723 +f 2861/3398/15724 2840/3379/15725 2860/3399/15726 +f 2840/3379/15727 2861/3398/15728 2862/3400/15729 +f 2862/3400/15730 2835/3374/15731 2840/3379/15732 +f 2860/3399/15733 2863/3402/15734 2864/3401/15735 +f 2864/3401/15736 2829/3369/15737 2860/3399/15738 +f 2829/3369/15739 2864/3401/15740 2865/3403/15741 +f 2865/3403/15742 2831/3367/15743 2829/3369/15744 +f 2866/3404/15745 2860/3399/15746 2840/3379/15747 +f 2840/3379/15748 2841/3378/15749 2866/3404/15750 +f 2853/3388/15751 2867/3406/15752 2868/3405/15753 +f 2868/3405/15754 2852/3389/15755 2853/3388/15756 +f 2854/3392/15757 2852/3389/15758 2868/3405/15759 +f 2868/3405/15760 2869/3407/15761 2854/3392/15762 +f 2870/3408/15763 2869/3407/15764 2868/3405/15765 +f 2868/3405/15766 2867/3406/15767 2870/3408/15768 +f 2859/3396/15769 2871/3410/15770 2872/3409/15771 +f 2872/3409/15772 2858/3397/15773 2859/3396/15774 +f 2847/3384/15775 2858/3397/15776 2872/3409/15777 +f 2872/3409/15778 2873/3411/15779 2847/3384/15780 +f 2874/3412/15781 2873/3411/15782 2872/3409/15783 +f 2872/3409/15784 2871/3410/15785 2874/3412/15786 +f 2876/3413/15787 2875/3414/15788 2870/3408/15789 +f 2870/3408/15790 2867/3406/15791 2876/3413/15792 +f 2877/3415/15793 2869/3407/15794 2870/3408/15795 +f 2870/3408/15796 2875/3414/15797 2877/3415/15798 +f 2878/3416/15799 2874/3412/15800 2871/3410/15801 +f 2871/3410/15802 2859/3396/15803 2878/3416/15804 +f 2850/3391/15805 2879/3418/15806 2880/3417/15807 +f 2880/3417/15808 2853/3388/15809 2850/3391/15810 +f 2882/3419/15811 2881/3420/15812 2853/3388/15813 +f 2853/3388/15814 2880/3417/15815 2882/3419/15816 +f 2876/3413/15817 2867/3406/15818 2853/3388/15819 +f 2853/3388/15820 2881/3420/15821 2876/3413/15822 +f 2884/3423/15823 2883/3424/15824 2886/3421/15825 +f 2886/3421/15826 2885/3422/15827 2884/3423/15828 +f 2887/3426/15829 2885/3422/15830 2886/3421/15831 +f 2886/3421/15832 2888/3425/15833 2887/3426/15834 +f 2889/3427/15835 2888/3425/15836 2886/3421/15837 +f 2886/3421/15838 2883/3424/15839 2889/3427/15840 +f 2890/3429/15841 2888/3425/15842 2889/3427/15843 +f 2889/3427/15844 2891/3428/15845 2890/3429/15846 +f 2892/3430/15847 2891/3428/15848 2889/3427/15849 +f 2889/3427/15850 2883/3424/15851 2892/3430/15852 +f 2894/3431/15853 2893/3432/15854 2876/3413/15855 +f 2876/3413/15856 2881/3420/15857 2894/3431/15858 +f 2885/3422/15859 2875/3414/15860 2876/3413/15861 +f 2876/3413/15862 2884/3423/15863 2885/3422/15864 +f 2895/3433/15865 2884/3423/15866 2876/3413/15867 +f 2876/3413/15868 2893/3432/15869 2895/3433/15870 +f 2896/3435/15871 2873/3411/15872 2874/3412/15873 +f 2874/3412/15874 2897/3434/15875 2896/3435/15876 +f 2899/3438/15877 2898/3439/15878 2901/3436/15879 +f 2901/3436/15880 2900/3437/15881 2899/3438/15882 +f 2903/3441/15883 2902/3442/15884 2901/3436/15885 +f 2901/3436/15886 2904/3440/15887 2903/3441/15888 +f 2905/3443/15889 2900/3437/15890 2901/3436/15891 +f 2901/3436/15892 2902/3442/15893 2905/3443/15894 +f 2907/3446/15895 2906/3447/15896 2909/3444/15897 +f 2909/3444/15898 2908/3445/15899 2907/3446/15900 +f 2910/3449/15901 2908/3445/15902 2909/3444/15903 +f 2909/3444/15904 2911/3448/15905 2910/3449/15906 +f 2912/3450/15907 2911/3448/15908 2909/3444/15909 +f 2909/3444/15910 2906/3447/15911 2912/3450/15912 +f 2914/3453/15913 2913/3454/15914 2916/3451/15915 +f 2916/3451/15916 2915/3452/15917 2914/3453/15918 +f 2918/3455/15919 2917/3456/15920 2916/3451/15921 +f 2916/3451/15922 2913/3454/15923 2918/3455/15924 +f 2920/3457/15925 2919/3458/15926 2916/3451/15927 +f 2916/3451/15928 2917/3456/15929 2920/3457/15930 +f 2863/3402/15931 2915/3452/15932 2916/3451/15933 +f 2916/3451/15934 2921/3459/15935 2863/3402/15936 +f 2922/3460/15937 2921/3459/15938 2916/3451/15939 +f 2916/3451/15940 2919/3458/15941 2922/3460/15942 +f 2895/3433/15943 2893/3432/15944 2923/3461/15945 +f 2923/3461/15946 2918/3455/15947 2895/3433/15948 +f 2894/3431/15949 2924/3462/15950 2923/3461/15951 +f 2923/3461/15952 2893/3432/15953 2894/3431/15954 +f 2917/3456/15955 2918/3455/15956 2923/3461/15957 +f 2923/3461/15958 2925/3463/15959 2917/3456/15960 +f 2927/3466/15961 2926/3467/15962 2929/3464/15963 +f 2929/3464/15964 2928/3465/15965 2927/3466/15966 +f 2928/3465/15967 2929/3464/15968 2931/3468/15969 +f 2931/3468/15970 2930/3469/15971 2928/3465/15972 +f 2932/3470/15973 2931/3468/15974 2929/3464/15975 +f 2929/3464/15976 2926/3467/15977 2932/3470/15978 +f 2934/3473/15979 2933/3474/15980 2936/3471/15981 +f 2936/3471/15982 2935/3472/15983 2934/3473/15984 +f 2937/3476/15985 2935/3472/15986 2936/3471/15987 +f 2936/3471/15988 2938/3475/15989 2937/3476/15990 +f 2940/3477/15991 2939/3478/15992 2936/3471/15993 +f 2936/3471/15994 2933/3474/15995 2940/3477/15996 +f 2942/3481/15997 2941/3482/15998 2943/3479/15999 +f 2943/3479/16000 2940/3480/16001 2942/3481/16002 +f 2939/3478/16003 2940/3477/16004 2943/3483/16005 +f 2943/3483/16006 2944/3484/16007 2939/3478/16008 +f 2945/3485/16009 2944/3486/16010 2943/3479/16011 +f 2943/3479/16012 2941/3482/16013 2945/3485/16014 +f 2947/3489/16015 2946/3490/16016 2949/3487/16017 +f 2949/3487/16018 2948/3488/16019 2947/3489/16020 +f 2951/3493/16021 2950/3494/16022 2949/3491/16023 +f 2949/3491/16024 2952/3492/16025 2951/3493/16026 +f 2953/3495/16027 2952/3496/16028 2949/3487/16029 +f 2949/3487/16030 2946/3490/16031 2953/3495/16032 +f 2955/3499/16033 2954/3500/16034 2957/3497/16035 +f 2957/3497/16036 2956/3498/16037 2955/3499/16038 +f 2958/3502/16039 2956/3498/16040 2957/3497/16041 +f 2957/3497/16042 2959/3501/16043 2958/3502/16044 +f 2960/3504/16045 2959/3501/16046 2957/3497/16047 +f 2957/3497/16048 2961/3503/16049 2960/3504/16050 +f 2963/3507/16051 2962/3508/16052 2965/3505/16053 +f 2965/3505/16054 2964/3506/16055 2963/3507/16056 +f 2930/3469/16057 2964/3506/16058 2965/3505/16059 +f 2965/3505/16060 2966/3509/16061 2930/3469/16062 +f 2968/3510/16063 2967/3511/16064 2965/3505/16065 +f 2965/3505/16066 2962/3508/16067 2968/3510/16068 +f 2970/3512/16069 2969/3513/16070 2965/3505/16071 +f 2965/3505/16072 2967/3511/16073 2970/3512/16074 +f 2973/3514/16075 2972/3515/16076 2971/3516/16077 +f 2975/3517/16078 2974/3518/16079 2973/3514/16080 +f 2973/3514/16081 2971/3516/16082 2975/3517/16083 +f 2977/3521/16084 2976/3522/16085 2979/3519/16086 +f 2979/3519/16087 2978/3520/16088 2977/3521/16089 +f 2981/3525/16090 2980/3526/16091 2983/3523/16092 +f 2983/3523/16093 2982/3524/16094 2981/3525/16095 +f 2946/3490/16096 2947/3489/16097 2982/3524/16098 +f 2982/3524/16099 2983/3523/16100 2946/3490/16101 +f 2985/3529/16102 2984/3530/16103 2987/3527/16104 +f 2987/3527/16105 2986/3528/16106 2985/3529/16107 +f 2988/3532/16108 2986/3528/16109 2987/3527/16110 +f 2987/3527/16111 2989/3531/16112 2988/3532/16113 +f 2991/3535/16114 2990/3536/16115 2993/3533/16116 +f 2993/3533/16117 2992/3534/16118 2991/3535/16119 +f 2995/3537/16120 2994/3538/16121 2993/3533/16122 +f 2993/3533/16123 2990/3536/16124 2995/3537/16125 +f 2996/3539/16126 2992/3534/16127 2993/3533/16128 +f 2993/3533/16129 2994/3538/16130 2996/3539/16131 +f 2998/3540/16132 2997/3541/16133 2995/3537/16134 +f 3000/3544/16135 2999/3545/16136 3002/3542/16137 +f 3002/3542/16138 3001/3543/16139 3000/3544/16140 +f 3001/3543/16141 3003/3546/16142 3000/3544/16143 +f 3005/3549/16144 3004/3550/16145 3007/3547/16146 +f 3007/3547/16147 3006/3548/16148 3005/3549/16149 +f 3008/3552/16150 3006/3548/16151 3007/3547/16152 +f 3007/3547/16153 3009/3551/16154 3008/3552/16155 +f 3010/3554/16156 3009/3551/16157 3007/3547/16158 +f 3007/3547/16159 3011/3553/16160 3010/3554/16161 +f 3013/3555/16162 3005/3549/16163 3012/3556/16164 +f 2760/3297/16165 3014/3558/16166 3015/3557/16167 +f 3015/3557/16168 2759/3298/16169 2760/3297/16170 +f 3016/3560/16171 2759/3298/16172 3015/3557/16173 +f 3015/3557/16174 3017/3559/16175 3016/3560/16176 +f 3019/3563/16177 3018/3564/16178 3021/3561/16179 +f 3021/3561/16180 3020/3562/16181 3019/3563/16182 +f 3022/3566/16183 3020/3562/16184 3021/3561/16185 +f 3021/3561/16186 3023/3565/16187 3022/3566/16188 +f 3019/3563/16189 3024/3568/16190 3025/3567/16191 +f 3025/3567/16192 3018/3564/16193 3019/3563/16194 +f 3024/3568/16195 3019/3563/16196 3027/3569/16197 +f 3027/3569/16198 3026/3570/16199 3024/3568/16200 +f 3024/3568/16201 3026/3570/16202 2832/3371/16203 +f 2832/3371/16204 2779/3318/16205 3024/3568/16206 +f 2833/3370/16207 2832/3371/16208 3026/3570/16209 +f 3026/3570/16210 3028/3571/16211 2833/3370/16212 +f 3028/3571/16213 3026/3570/16214 3027/3569/16215 +f 3027/3569/16216 3029/3572/16217 3028/3571/16218 +f 3030/3573/16219 2878/3416/16220 3028/3571/16221 +f 3028/3571/16222 3029/3572/16223 3030/3573/16224 +f 2859/3396/16225 2833/3370/16226 3028/3571/16227 +f 3028/3571/16228 2878/3416/16229 2859/3396/16230 +f 3032/3574/16231 3031/3575/16232 3030/3573/16233 +f 3030/3573/16234 3029/3572/16235 3032/3574/16236 +f 2931/3468/16237 2932/3470/16238 3030/3573/16239 +f 3030/3573/16240 3031/3575/16241 2931/3468/16242 +f 2874/3412/16243 2878/3416/16244 3030/3573/16245 +f 3030/3573/16246 2932/3470/16247 2874/3412/16248 +f 3034/3576/16249 3033/3577/16250 3031/3575/16251 +f 3031/3575/16252 3032/3574/16253 3034/3576/16254 +f 3035/3578/16255 2931/3468/16256 3031/3575/16257 +f 3031/3575/16258 3033/3577/16259 3035/3578/16260 +f 3037/3579/16261 3036/3580/16262 3035/3578/16263 +f 3035/3578/16264 3033/3577/16265 3037/3579/16266 +f 2963/3507/16267 2964/3506/16268 3035/3578/16269 +f 3035/3578/16270 3036/3580/16271 2963/3507/16272 +f 2930/3469/16273 2931/3468/16274 3035/3578/16275 +f 3035/3578/16276 2964/3506/16277 2930/3469/16278 +f 3039/3581/16279 3038/3582/16280 3036/3580/16281 +f 3036/3580/16282 3037/3579/16283 3039/3581/16284 +f 3040/3583/16285 2963/3507/16286 3036/3580/16287 +f 3036/3580/16288 3038/3582/16289 3040/3583/16290 +f 2920/3584/16291 3041/3585/16292 3040/3583/16293 +f 3040/3583/16294 3038/3582/16295 2920/3584/16296 +f 2944/3486/16297 2945/3485/16298 3040/3583/16299 +f 3040/3583/16300 3041/3585/16301 2944/3486/16302 +f 2962/3508/16303 2963/3507/16304 3040/3583/16305 +f 3040/3583/16306 2945/3485/16307 2962/3508/16308 +f 2917/3456/16309 2925/3463/16310 3041/3586/16311 +f 3041/3586/16312 2920/3457/16313 2917/3456/16314 +f 2939/3478/16315 2944/3484/16316 3041/3586/16317 +f 3041/3586/16318 2925/3463/16319 2939/3478/16320 +f 2919/3587/16321 2920/3584/16322 3038/3582/16323 +f 3038/3582/16324 3039/3581/16325 2919/3587/16326 +f 3043/3588/16327 3042/3589/16328 3039/3581/16329 +f 3039/3581/16330 3037/3579/16331 3043/3588/16332 +f 2922/3590/16333 2919/3587/16334 3039/3581/16335 +f 3039/3581/16336 3042/3589/16337 2922/3590/16338 +f 3042/3589/16339 3043/3588/16340 3045/3591/16341 +f 3045/3591/16342 3044/3592/16343 3042/3589/16344 +f 3042/3589/16345 3044/3592/16346 3046/3593/16347 +f 3046/3593/16348 2922/3590/16349 3042/3589/16350 +f 3046/3594/16351 3047/3595/16352 2921/3459/16353 +f 2921/3459/16354 2922/3460/16355 3046/3594/16356 +f 3047/3595/16357 2864/3401/16358 2863/3402/16359 +f 2863/3402/16360 2921/3459/16361 3047/3595/16362 +f 3047/3595/16363 3046/3594/16364 3049/3596/16365 +f 3049/3596/16366 3048/3597/16367 3047/3595/16368 +f 3047/3595/16369 3048/3597/16370 2865/3403/16371 +f 2865/3403/16372 2864/3401/16373 3047/3595/16374 +f 3051/3598/16375 3050/3599/16376 2831/3367/16377 +f 2831/3367/16378 2865/3403/16379 3051/3598/16380 +f 3052/3600/16381 2830/3368/16382 2831/3367/16383 +f 2831/3367/16384 3050/3599/16385 3052/3600/16386 +f 3053/3602/16387 2830/3368/16388 3052/3600/16389 +f 3052/3600/16390 3054/3601/16391 3053/3602/16392 +f 3056/3605/16393 3055/3606/16394 3058/3603/16395 +f 3058/3603/16396 3057/3604/16397 3056/3605/16398 +f 3060/3607/16399 3059/3608/16400 3058/3603/16401 +f 3058/3603/16402 3055/3606/16403 3060/3607/16404 +f 3061/3610/16405 3059/3608/16406 3060/3607/16407 +f 3060/3607/16408 3062/3609/16409 3061/3610/16410 +f 3060/3607/16411 3055/3606/16412 3064/3611/16413 +f 3064/3611/16414 3063/3612/16415 3060/3607/16416 +f 3055/3606/16417 3056/3605/16418 3065/3613/16419 +f 3065/3613/16420 3064/3611/16421 3055/3606/16422 +f 3056/3605/16423 2780/3317/16424 2771/3306/16425 +f 3063/3612/16426 3066/3614/16427 3062/3609/16428 +f 3062/3609/16429 3060/3607/16430 3063/3612/16431 +f 3067/3617/16432 3063/3612/16433 3069/3615/16434 +f 3069/3615/16435 3068/3616/16436 3067/3617/16437 +f 3070/3619/16438 3068/3616/16439 3069/3615/16440 +f 3069/3615/16441 3071/3618/16442 3070/3619/16443 +f 3073/3620/16444 3072/3621/16445 3067/3617/16446 +f 3067/3617/16447 2741/3280/16448 3073/3620/16449 +f 3066/3614/16450 3063/3612/16451 3067/3617/16452 +f 3067/3617/16453 3072/3621/16454 3066/3614/16455 +f 2740/3281/16456 2741/3280/16457 3067/3617/16458 +f 3067/3617/16459 3068/3616/16460 2740/3281/16461 +f 3075/3624/16462 3074/3625/16463 3072/3622/16464 +f 3072/3622/16465 3073/3623/16466 3075/3624/16467 +f 3076/3626/16468 3066/3627/16469 3072/3622/16470 +f 3072/3622/16471 3074/3625/16472 3076/3626/16473 +f 2751/3292/16474 2752/3291/16475 3076/3626/16476 +f 3076/3626/16477 3074/3625/16478 2751/3292/16479 +f 3076/3626/16480 2752/3291/16481 2759/3298/16482 +f 2759/3298/16483 3016/3560/16484 3076/3626/16485 +f 3076/3626/16486 3016/3560/16487 3062/3628/16488 +f 3062/3628/16489 3066/3627/16490 3076/3626/16491 +f 3078/3629/16492 3077/3630/16493 2760/3297/16494 +f 2760/3297/16495 2757/3296/16496 3078/3629/16497 +f 3077/3630/16498 3078/3629/16499 3079/3631/16500 +f 3079/3631/16501 3053/3602/16502 3077/3630/16503 +f 3054/3601/16504 3080/3632/16505 3077/3630/16506 +f 3077/3630/16507 3053/3602/16508 3054/3601/16509 +f 3014/3558/16510 2760/3297/16511 3077/3630/16512 +f 3077/3630/16513 3080/3632/16514 3014/3558/16515 +f 3079/3631/16516 2828/3363/16517 2830/3368/16518 +f 2830/3368/16519 3053/3602/16520 3079/3631/16521 +f 2778/3316/16522 3081/3633/16523 3079/3631/16524 +f 3079/3631/16525 3078/3629/16526 2778/3316/16527 +f 2827/3364/16528 2828/3363/16529 3079/3631/16530 +f 3079/3631/16531 3081/3633/16532 2827/3364/16533 +f 2765/3303/16534 2810/3350/16535 3081/3633/16536 +f 3081/3633/16537 2778/3316/16538 2765/3303/16539 +f 2811/3349/16540 2827/3364/16541 3081/3633/16542 +f 3081/3633/16543 2810/3350/16544 2811/3349/16545 +f 2758/3295/16546 2778/3316/16547 3078/3629/16548 +f 3078/3629/16549 2757/3296/16550 2758/3295/16551 +f 2756/3294/16552 2751/3292/16553 3074/3625/16554 +f 3074/3625/16555 3075/3624/16556 2756/3294/16557 +f 3082/3635/16558 2756/3294/16559 3075/3624/16560 +f 3075/3624/16561 3083/3634/16562 3082/3635/16563 +f 3084/3636/16564 3083/3634/16565 3075/3624/16566 +f 3075/3624/16567 3073/3623/16568 3084/3636/16569 +f 3084/3636/16570 3085/3637/16571 3083/3634/16572 +f 3084/3638/16573 3073/3620/16574 2741/3280/16575 +f 3082/3635/16576 3083/3634/16577 3085/3637/16578 +f 3085/3637/16579 2744/3285/16580 3082/3635/16581 +f 3086/3639/16582 2750/3288/16583 3085/3637/16584 +f 3085/3637/16585 3084/3636/16586 3086/3639/16587 +f 3087/3641/16588 2750/3288/16589 3086/3639/16590 +f 3086/3639/16591 3088/3640/16592 3087/3641/16593 +f 2742/3279/16594 3089/3643/16595 3086/3642/16596 +f 3086/3642/16597 3084/3638/16598 2742/3279/16599 +f 3090/3644/16600 3088/3645/16601 3086/3642/16602 +f 3086/3642/16603 3089/3643/16604 3090/3644/16605 +f 3090/3644/16606 3091/3646/16607 3088/3645/16608 +f 3093/3647/16609 3092/3648/16610 3090/3644/16611 +f 3090/3644/16612 3089/3643/16613 3093/3647/16614 +f 3094/3649/16615 3091/3646/16616 3090/3644/16617 +f 3090/3644/16618 3092/3648/16619 3094/3649/16620 +f 3096/3650/16621 3095/3651/16622 3094/3649/16623 +f 3094/3649/16624 3092/3648/16625 3096/3650/16626 +f 3097/3652/16627 2728/3266/16628 3094/3649/16629 +f 3094/3649/16630 3095/3651/16631 3097/3652/16632 +f 2723/3260/16633 2728/3266/16634 3097/3652/16635 +f 3097/3652/16636 2724/3261/16637 2723/3260/16638 +f 3099/3653/16639 3098/3654/16640 3097/3652/16641 +f 3097/3652/16642 3095/3651/16643 3099/3653/16644 +f 2722/3258/16645 2724/3261/16646 3097/3652/16647 +f 3097/3652/16648 3098/3654/16649 2722/3258/16650 +f 3101/3655/16651 3100/3656/16652 3098/3654/16653 +f 3098/3654/16654 3099/3653/16655 3101/3655/16656 +f 2716/3252/16657 2722/3258/16658 3098/3654/16659 +f 3098/3654/16660 3100/3656/16661 2716/3252/16662 +f 2725/3264/16663 2726/3263/16664 3100/3656/16665 +f 3100/3656/16666 3101/3655/16667 2725/3264/16668 +f 2715/3253/16669 2716/3252/16670 3100/3656/16671 +f 3100/3656/16672 2726/3263/16673 2715/3253/16674 +f 3103/3657/16675 3102/3658/16676 3101/3655/16677 +f 3101/3655/16678 3099/3653/16679 3103/3657/16680 +f 3104/3659/16681 2725/3264/16682 3101/3655/16683 +f 3101/3655/16684 3102/3658/16685 3104/3659/16686 +f 3106/3660/16687 3105/3661/16688 3104/3659/16689 +f 3104/3659/16690 3102/3658/16691 3106/3660/16692 +f 3104/3659/16693 2727/3262/16694 2725/3264/16695 +f 3107/3664/16696 2739/3277/16697 3109/3662/16698 +f 3109/3662/16699 3108/3663/16700 3107/3664/16701 +f 3109/3662/16702 3110/3666/16703 3111/3665/16704 +f 3111/3665/16705 3108/3663/16706 3109/3662/16707 +f 3109/3662/16708 3112/3668/16709 3113/3667/16710 +f 3113/3667/16711 3110/3666/16712 3109/3662/16713 +f 2734/3275/16714 3114/3669/16715 3112/3668/16716 +f 3112/3668/16717 2739/3277/16718 2734/3275/16719 +f 3114/3669/16720 3115/3670/16721 3113/3667/16722 +f 3113/3667/16723 3112/3668/16724 3114/3669/16725 +f 2749/3286/16726 3116/3671/16727 3114/3669/16728 +f 3114/3669/16729 2734/3275/16730 2749/3286/16731 +f 3116/3671/16732 3117/3672/16733 3115/3670/16734 +f 3115/3670/16735 3114/3669/16736 3116/3671/16737 +f 3118/3674/16738 3115/3670/16739 3117/3672/16740 +f 3117/3672/16741 2729/3673/16742 3118/3674/16743 +f 3116/3671/16744 3087/3641/16745 3091/3675/16746 +f 3091/3675/16747 3117/3672/16748 3116/3671/16749 +f 3116/3671/16750 2749/3286/16751 2750/3288/16752 +f 2750/3288/16753 3087/3641/16754 3116/3671/16755 +f 2733/3268/16756 2739/3277/16757 3107/3664/16758 +f 3107/3664/16759 2732/3269/16760 2733/3268/16761 +f 3106/3660/16762 3119/3677/16763 3120/3676/16764 +f 3120/3676/16765 3105/3661/16766 3106/3660/16767 +f 2730/3271/16768 2731/3270/16769 3120/3676/16770 +f 3120/3676/16771 3119/3677/16772 2730/3271/16773 +f 3122/3678/16774 3121/3679/16775 2730/3271/16776 +f 2730/3271/16777 3119/3677/16778 3122/3678/16779 +f 2738/3276/16780 2730/3271/16781 3121/3679/16782 +f 3121/3679/16783 3123/3680/16784 2738/3276/16785 +f 3124/3682/16786 2736/3273/16787 2738/3276/16788 +f 2738/3276/16789 3125/3681/16790 3124/3682/16791 +f 3126/3683/16792 3125/3681/16793 2738/3276/16794 +f 2738/3276/16795 3123/3680/16796 3126/3683/16797 +f 3127/3684/16798 3125/3681/16799 3126/3683/16800 +f 3126/3683/16801 2786/3323/16802 3127/3684/16803 +f 3129/3685/16804 3128/3686/16805 3126/3683/16806 +f 3126/3683/16807 3123/3680/16808 3129/3685/16809 +f 2785/3324/16810 2786/3323/16811 3126/3683/16812 +f 3126/3683/16813 3128/3686/16814 2785/3324/16815 +f 3129/3685/16816 3130/3688/16817 3131/3687/16818 +f 3131/3687/16819 3128/3686/16820 3129/3685/16821 +f 2799/3337/16822 2785/3324/16823 3128/3686/16824 +f 3128/3686/16825 3131/3687/16826 2799/3337/16827 +f 3132/3689/16828 2776/3315/16829 3131/3687/16830 +f 3131/3687/16831 3130/3688/16832 3132/3689/16833 +f 2776/3315/16834 2777/3314/16835 2799/3337/16836 +f 2799/3337/16837 3131/3687/16838 2776/3315/16839 +f 3121/3679/16840 3133/3690/16841 3129/3685/16842 +f 3129/3685/16843 3123/3680/16844 3121/3679/16845 +f 3133/3690/16846 3134/3691/16847 3130/3688/16848 +f 3130/3688/16849 3129/3685/16850 3133/3690/16851 +f 3122/3678/16852 3135/3692/16853 3133/3690/16854 +f 3133/3690/16855 3121/3679/16856 3122/3678/16857 +f 3135/3692/16858 3136/3693/16859 3134/3691/16860 +f 3134/3691/16861 3133/3690/16862 3135/3692/16863 +f 3137/3694/16864 3093/3647/16865 3136/3693/16866 +f 3136/3693/16867 3135/3692/16868 3137/3694/16869 +f 3138/3695/16870 3137/3694/16871 3135/3692/16872 +f 3135/3692/16873 3122/3678/16874 3138/3695/16875 +f 3096/3650/16876 3137/3694/16877 3138/3695/16878 +f 3138/3695/16879 3103/3657/16880 3096/3650/16881 +f 3119/3677/16882 3106/3660/16883 3138/3695/16884 +f 3138/3695/16885 3122/3678/16886 3119/3677/16887 +f 3102/3658/16888 3103/3657/16889 3138/3695/16890 +f 3138/3695/16891 3106/3660/16892 3102/3658/16893 +f 3092/3648/16894 3093/3647/16895 3137/3694/16896 +f 3137/3694/16897 3096/3650/16898 3092/3648/16899 +f 3140/3697/16900 3139/3698/16901 3127/3684/16902 +f 3127/3684/16903 3141/3696/16904 3140/3697/16905 +f 3124/3682/16906 3125/3681/16907 3127/3684/16908 +f 3127/3684/16909 3139/3698/16910 3124/3682/16911 +f 2787/3328/16912 2788/3327/16913 3139/3698/16914 +f 3139/3698/16915 3140/3697/16916 2787/3328/16917 +f 3142/3699/16918 3124/3682/16919 3139/3698/16920 +f 3139/3698/16921 2788/3327/16922 3142/3699/16923 +f 2789/3326/16924 2792/3332/16925 3142/3699/16926 +f 3142/3699/16927 2788/3327/16928 2789/3326/16929 +f 3144/3700/16930 3143/3701/16931 3142/3699/16932 +f 3142/3699/16933 2792/3332/16934 3144/3700/16935 +f 2736/3273/16936 3124/3682/16937 3142/3699/16938 +f 3142/3699/16939 3143/3701/16940 2736/3273/16941 +f 2748/3287/16942 2735/3274/16943 3143/3701/16944 +f 3143/3701/16945 3144/3700/16946 2748/3287/16947 +f 3143/3701/16948 2735/3274/16949 2736/3273/16950 +f 2793/3331/16951 3145/3702/16952 3144/3700/16953 +f 3144/3700/16954 2792/3332/16955 2793/3331/16956 +f 2746/3283/16957 2748/3287/16958 3144/3700/16959 +f 3144/3700/16960 3145/3702/16961 2746/3283/16962 +f 2764/3304/16963 2763/3299/16964 3145/3702/16965 +f 3145/3702/16966 2793/3331/16967 2764/3304/16968 +f 2745/3284/16969 2746/3283/16970 3145/3702/16971 +f 3145/3702/16972 2763/3299/16973 2745/3284/16974 +f 2787/3328/16975 3146/3704/16976 3147/3703/16977 +f 3147/3703/16978 2790/3325/16979 2787/3328/16980 +f 3148/3705/16981 3146/3704/16982 2787/3328/16983 +f 2787/3328/16984 3140/3697/16985 3148/3705/16986 +f 2898/3439/16987 3146/3704/16988 3148/3705/16989 +f 3148/3705/16990 2901/3436/16991 2898/3439/16992 +f 3141/3696/16993 3149/3706/16994 3148/3705/16995 +f 3148/3705/16996 3140/3697/16997 3141/3696/16998 +f 2904/3440/16999 2901/3436/17000 3148/3705/17001 +f 3148/3705/17002 3149/3706/17003 2904/3440/17004 +f 3151/3707/17005 3150/3708/17006 3149/3706/17007 +f 3149/3706/17008 3141/3696/17009 3151/3707/17010 +f 3152/3709/17011 2904/3440/17012 3149/3706/17013 +f 3149/3706/17014 3150/3708/17015 3152/3709/17016 +f 2903/3441/17017 2904/3440/17018 3152/3709/17019 +f 3152/3709/17020 2951/3493/17021 2903/3441/17022 +f 2911/3448/17023 2912/3450/17024 3152/3709/17025 +f 3152/3709/17026 3150/3708/17027 2911/3448/17028 +f 2950/3494/17029 2951/3493/17030 3152/3709/17031 +f 3152/3709/17032 2912/3450/17033 2950/3494/17034 +f 2781/3322/17035 2911/3448/17036 3150/3708/17037 +f 3150/3708/17038 3151/3707/17039 2781/3322/17040 +f 2898/3439/17041 3153/3710/17042 3147/3703/17043 +f 3147/3703/17044 3146/3704/17045 2898/3439/17046 +f 3155/3711/17047 3154/3712/17048 3147/3703/17049 +f 3147/3703/17050 3153/3710/17051 3155/3711/17052 +f 3156/3713/17053 2790/3325/17054 3147/3703/17055 +f 3147/3703/17056 3154/3712/17057 3156/3713/17058 +f 2791/3329/17059 2790/3325/17060 3156/3713/17061 +f 3156/3713/17062 3157/3714/17063 2791/3329/17064 +f 2795/3333/17065 2791/3329/17066 3157/3714/17067 +f 3157/3714/17068 2817/3353/17069 2795/3333/17070 +f 3159/3717/17071 3158/3718/17072 3161/3715/17073 +f 3161/3715/17074 3160/3716/17075 3159/3717/17076 +f 2815/3355/17077 2816/3354/17078 3161/3715/17079 +f 3161/3715/17080 3158/3718/17081 2815/3355/17082 +f 3163/3719/17083 3162/3720/17084 3158/3718/17085 +f 3158/3718/17086 3159/3717/17087 3163/3719/17088 +f 2818/3356/17089 2815/3355/17090 3158/3718/17091 +f 3158/3718/17092 3162/3720/17093 2818/3356/17094 +f 3162/3720/17095 3163/3719/17096 2851/3390/17097 +f 2851/3390/17098 2837/3377/17099 3162/3720/17100 +f 3162/3720/17101 2837/3377/17102 2838/3376/17103 +f 2838/3376/17104 2818/3356/17105 3162/3720/17106 +f 2838/3376/17107 2820/3359/17108 2814/3351/17109 +f 2814/3351/17110 2818/3356/17111 2838/3376/17112 +f 2821/3358/17113 2813/3352/17114 2814/3351/17115 +f 2814/3351/17116 2820/3359/17117 2821/3358/17118 +f 2766/3302/17119 2764/3304/17120 2813/3352/17121 +f 2813/3352/17122 2821/3358/17123 2766/3302/17124 +f 3165/3721/17125 3164/3722/17126 3159/3717/17127 +f 3159/3717/17128 3160/3716/17129 3165/3721/17130 +f 2850/3391/17131 3163/3719/17132 3159/3717/17133 +f 3159/3717/17134 3164/3722/17135 2850/3391/17136 +f 3166/3723/17137 3164/3722/17138 3165/3721/17139 +f 2879/3418/17140 2850/3391/17141 3164/3722/17142 +f 3164/3722/17143 3166/3723/17144 2879/3418/17145 +f 3168/3724/17146 3167/3725/17147 2879/3418/17148 +f 2879/3418/17149 3166/3723/17150 3168/3724/17151 +f 2879/3418/17152 3167/3725/17153 2899/3438/17154 +f 2899/3438/17155 2880/3417/17156 2879/3418/17157 +f 3153/3710/17158 2898/3439/17159 2899/3438/17160 +f 2899/3438/17161 3167/3725/17162 3153/3710/17163 +f 3155/3711/17164 3153/3710/17165 3167/3725/17166 +f 3167/3725/17167 3168/3724/17168 3155/3711/17169 +f 3095/3651/17170 3096/3650/17171 3103/3657/17172 +f 3103/3657/17173 3099/3653/17174 3095/3651/17175 +f 2742/3279/17176 3136/3693/17177 3093/3647/17178 +f 3093/3647/17179 3089/3643/17180 2742/3279/17181 +f 3087/3641/17182 3088/3640/17183 3091/3675/17184 +f 2745/3284/17185 2761/3301/17186 3082/3635/17187 +f 3082/3635/17188 2744/3285/17189 2745/3284/17190 +f 2754/3289/17191 2756/3294/17192 3082/3635/17193 +f 3082/3635/17194 2761/3301/17195 2754/3289/17196 +f 3016/3560/17197 3017/3559/17198 3061/3726/17199 +f 3061/3726/17200 3062/3628/17201 3016/3560/17202 +f 3169/3727/17203 2780/3317/17204 3056/3605/17205 +f 3056/3605/17206 3057/3604/17207 3169/3727/17208 +f 3048/3597/17209 3170/3728/17210 3051/3598/17211 +f 3051/3598/17212 2865/3403/17213 3048/3597/17214 +f 3171/3729/17215 3170/3728/17216 3048/3597/17217 +f 3048/3597/17218 3049/3596/17219 3171/3729/17220 +f 3172/3732/17221 3171/3733/17222 3049/3730/17223 +f 3049/3730/17224 3173/3731/17225 3172/3732/17226 +f 3049/3730/17227 3046/3593/17228 3044/3592/17229 +f 3044/3592/17230 3173/3731/17231 3049/3730/17232 +f 3044/3592/17233 3045/3591/17234 3174/3734/17235 +f 3174/3734/17236 3173/3731/17237 3044/3592/17238 +f 3045/3591/17239 3175/3735/17240 3022/3566/17241 +f 3022/3566/17242 3174/3734/17243 3045/3591/17244 +f 3175/3735/17245 3176/3736/17246 3020/3562/17247 +f 3020/3562/17248 3022/3566/17249 3175/3735/17250 +f 3175/3735/17251 3045/3591/17252 3043/3588/17253 +f 3043/3588/17254 3034/3576/17255 3175/3735/17256 +f 3175/3735/17257 3034/3576/17258 3032/3574/17259 +f 3032/3574/17260 3176/3736/17261 3175/3735/17262 +f 3032/3574/17263 3029/3572/17264 3027/3569/17265 +f 3027/3569/17266 3176/3736/17267 3032/3574/17268 +f 3027/3569/17269 3019/3563/17270 3020/3562/17271 +f 3020/3562/17272 3176/3736/17273 3027/3569/17274 +f 3023/3565/17275 3177/3737/17276 3174/3734/17277 +f 3174/3734/17278 3022/3566/17279 3023/3565/17280 +f 3172/3732/17281 3173/3731/17282 3174/3734/17283 +f 3174/3734/17284 3177/3737/17285 3172/3732/17286 +f 3033/3577/17287 3034/3576/17288 3043/3588/17289 +f 3043/3588/17290 3037/3579/17291 3033/3577/17292 +f 3004/3550/17293 3179/3738/17294 3178/3739/17295 +f 3182/3740/17296 3181/3741/17297 3180/3742/17298 +f 3179/3738/17299 3183/3743/17300 3180/3742/17301 +f 3180/3742/17302 3178/3739/17303 3179/3738/17304 +f 3180/3742/17305 3183/3743/17306 3182/3740/17307 +f 3185/3744/17308 3184/3745/17309 3181/3741/17310 +f 3181/3741/17311 3182/3740/17312 3185/3744/17313 +f 3181/3741/17314 3184/3745/17315 3186/3746/17316 +f 3187/3747/17317 3003/3546/17318 3186/3746/17319 +f 3186/3746/17320 3184/3745/17321 3187/3747/17322 +f 3001/3543/17323 3011/3553/17324 3186/3746/17325 +f 3186/3746/17326 3003/3546/17327 3001/3543/17328 +f 3189/3749/17329 3188/3750/17330 3187/3747/17331 +f 3187/3747/17332 3190/3748/17333 3189/3749/17334 +f 3000/3544/17335 3003/3546/17336 3187/3747/17337 +f 3187/3747/17338 3188/3750/17339 3000/3544/17340 +f 3191/3751/17341 3190/3748/17342 3187/3747/17343 +f 3187/3747/17344 3184/3745/17345 3191/3751/17346 +f 3193/3752/17347 3192/3753/17348 3188/3750/17349 +f 3188/3750/17350 3189/3749/17351 3193/3752/17352 +f 2999/3545/17353 3000/3544/17354 3188/3750/17355 +f 3188/3750/17356 3192/3753/17357 2999/3545/17358 +f 3195/3754/17359 3194/3755/17360 3192/3753/17361 +f 3192/3753/17362 3193/3752/17363 3195/3754/17364 +f 3196/3756/17365 2999/3545/17366 3192/3753/17367 +f 3192/3753/17368 3194/3755/17369 3196/3756/17370 +f 3196/3756/17371 3194/3755/17372 3198/3757/17373 +f 3198/3757/17374 3197/3758/17375 3196/3756/17376 +f 3196/3756/17377 3197/3758/17378 3200/3759/17379 +f 3200/3759/17380 3199/3760/17381 3196/3756/17382 +f 3196/3756/17383 3199/3760/17384 3002/3542/17385 +f 3002/3542/17386 2999/3545/17387 3196/3756/17388 +f 3199/3760/17389 3200/3759/17390 3202/3761/17391 +f 3202/3761/17392 3201/3762/17393 3199/3760/17394 +f 3010/3554/17395 3002/3542/17396 3199/3760/17397 +f 3199/3760/17398 3201/3762/17399 3010/3554/17400 +f 3201/3762/17401 3202/3761/17402 3204/3763/17403 +f 3204/3763/17404 3203/3764/17405 3201/3762/17406 +f 3009/3551/17407 3010/3554/17408 3201/3762/17409 +f 3201/3762/17410 3203/3764/17411 3009/3551/17412 +f 3203/3764/17413 3204/3763/17414 3206/3765/17415 +f 3206/3765/17416 3205/3766/17417 3203/3764/17418 +f 3008/3552/17419 3009/3551/17420 3203/3764/17421 +f 3203/3764/17422 3205/3766/17423 3008/3552/17424 +f 3205/3766/17425 3206/3765/17426 3208/3767/17427 +f 3208/3767/17428 3207/3768/17429 3205/3766/17430 +f 3209/3769/17431 3008/3552/17432 3205/3766/17433 +f 3205/3766/17434 3207/3768/17435 3209/3769/17436 +f 3211/3770/17437 3210/3771/17438 3209/3769/17439 +f 3209/3769/17440 3207/3768/17441 3211/3770/17442 +f 3213/3772/17443 3212/3773/17444 3209/3769/17445 +f 3209/3769/17446 3210/3771/17447 3213/3772/17448 +f 3006/3548/17449 3008/3552/17450 3209/3769/17451 +f 3209/3769/17452 3212/3773/17453 3006/3548/17454 +f 3214/3774/17455 3012/3556/17456 3212/3773/17457 +f 3212/3773/17458 3213/3772/17459 3214/3774/17460 +f 3005/3549/17461 3006/3548/17462 3212/3773/17463 +f 3212/3773/17464 3012/3556/17465 3005/3549/17466 +f 3216/3775/17467 3215/3776/17468 3213/3772/17469 +f 3213/3772/17470 3210/3771/17471 3216/3775/17472 +f 3213/3772/17473 3215/3776/17474 3214/3774/17475 +f 3218/3777/17476 3217/3778/17477 3214/3774/17478 +f 3214/3774/17479 3215/3776/17480 3218/3777/17481 +f 3216/3775/17482 3219/3779/17483 3218/3777/17484 +f 3218/3777/17485 3215/3776/17486 3216/3775/17487 +f 3220/3780/17488 2996/3539/17489 3218/3777/17490 +f 3218/3777/17491 3219/3779/17492 3220/3780/17493 +f 2994/3538/17494 3217/3778/17495 3218/3777/17496 +f 3218/3777/17497 2996/3539/17498 2994/3538/17499 +f 3222/3781/17500 3221/3782/17501 3220/3780/17502 +f 3220/3780/17503 3219/3779/17504 3222/3781/17505 +f 3224/3783/17506 3223/3784/17507 3220/3780/17508 +f 3220/3780/17509 3221/3782/17510 3224/3783/17511 +f 2992/3534/17512 2996/3539/17513 3220/3780/17514 +f 3220/3780/17515 3223/3784/17516 2992/3534/17517 +f 3226/3785/17518 3225/3786/17519 3223/3784/17520 +f 3223/3784/17521 3224/3783/17522 3226/3785/17523 +f 2991/3535/17524 2992/3534/17525 3223/3784/17526 +f 3223/3784/17527 3225/3786/17528 2991/3535/17529 +f 3228/3787/17530 3227/3788/17531 3225/3786/17532 +f 3225/3786/17533 3226/3785/17534 3228/3787/17535 +f 3229/3789/17536 2991/3535/17537 3225/3786/17538 +f 3225/3786/17539 3227/3788/17540 3229/3789/17541 +f 3193/3790/17542 3189/3791/17543 3229/3789/17544 +f 3229/3789/17545 3227/3788/17546 3193/3790/17547 +f 3190/3792/17548 3230/3793/17549 3229/3789/17550 +f 3229/3789/17551 3189/3791/17552 3190/3792/17553 +f 2990/3536/17554 2991/3535/17555 3229/3789/17556 +f 3229/3789/17557 3230/3793/17558 2990/3536/17559 +f 3191/3794/17560 2998/3540/17561 3230/3793/17562 +f 3230/3793/17563 3190/3792/17564 3191/3794/17565 +f 2995/3537/17566 2990/3536/17567 3230/3793/17568 +f 3230/3793/17569 2998/3540/17570 2995/3537/17571 +f 3195/3795/17572 3193/3790/17573 3227/3788/17574 +f 3227/3788/17575 3228/3787/17576 3195/3795/17577 +f 3228/3787/17578 3226/3785/17579 3232/3796/17580 +f 3232/3796/17581 3231/3797/17582 3228/3787/17583 +f 3228/3787/17584 3231/3797/17585 3233/3798/17586 +f 3233/3798/17587 3195/3795/17588 3228/3787/17589 +f 3233/3799/17590 3198/3757/17591 3194/3755/17592 +f 3194/3755/17593 3195/3754/17594 3233/3799/17595 +f 3235/3800/17596 3234/3801/17597 3198/3757/17598 +f 3198/3757/17599 3233/3799/17600 3235/3800/17601 +f 3236/3802/17602 3197/3758/17603 3198/3757/17604 +f 3198/3757/17605 3234/3801/17606 3236/3802/17607 +f 3236/3802/17608 3237/3803/17609 3200/3759/17610 +f 3200/3759/17611 3197/3758/17612 3236/3802/17613 +f 3238/3804/17614 3202/3761/17615 3200/3759/17616 +f 3200/3759/17617 3237/3803/17618 3238/3804/17619 +f 3239/3805/17620 3204/3763/17621 3202/3761/17622 +f 3202/3761/17623 3238/3804/17624 3239/3805/17625 +f 3240/3806/17626 3206/3765/17627 3204/3763/17628 +f 3204/3763/17629 3239/3805/17630 3240/3806/17631 +f 3241/3807/17632 3208/3767/17633 3206/3765/17634 +f 3206/3765/17635 3240/3806/17636 3241/3807/17637 +f 3243/3808/17638 3242/3809/17639 3208/3767/17640 +f 3208/3767/17641 3241/3807/17642 3243/3808/17643 +f 3208/3767/17644 3242/3809/17645 3211/3770/17646 +f 3211/3770/17647 3207/3768/17648 3208/3767/17649 +f 3245/3810/17650 3244/3811/17651 3211/3770/17652 +f 3211/3770/17653 3242/3809/17654 3245/3810/17655 +f 3244/3811/17656 3245/3810/17657 3246/3812/17658 +f 3246/3812/17659 3222/3781/17660 3244/3811/17661 +f 3219/3779/17662 3216/3775/17663 3244/3811/17664 +f 3244/3811/17665 3222/3781/17666 3219/3779/17667 +f 3210/3771/17668 3211/3770/17669 3244/3811/17670 +f 3244/3811/17671 3216/3775/17672 3210/3771/17673 +f 3246/3812/17674 3247/3813/17675 3221/3782/17676 +f 3221/3782/17677 3222/3781/17678 3246/3812/17679 +f 3248/3814/17680 3224/3783/17681 3221/3782/17682 +f 3221/3782/17683 3247/3813/17684 3248/3814/17685 +f 3232/3796/17686 3226/3785/17687 3224/3783/17688 +f 3224/3783/17689 3248/3814/17690 3232/3796/17691 +f 3250/3815/17692 3249/3816/17693 3232/3796/17694 +f 3232/3796/17695 3248/3814/17696 3250/3815/17697 +f 3251/3817/17698 3231/3797/17699 3232/3796/17700 +f 3232/3796/17701 3249/3816/17702 3251/3817/17703 +f 3252/3820/17704 2969/3513/17705 3251/3818/17706 +f 3251/3818/17707 3249/3819/17708 3252/3820/17709 +f 2970/3512/17710 3235/3821/17711 3251/3818/17712 +f 3251/3818/17713 2969/3513/17714 2970/3512/17715 +f 3233/3798/17716 3231/3797/17717 3251/3817/17718 +f 3251/3817/17719 3235/3822/17720 3233/3798/17721 +f 3253/3824/17722 2966/3509/17723 3252/3820/17724 +f 3252/3820/17725 3254/3823/17726 3253/3824/17727 +f 2965/3505/17728 2969/3513/17729 3252/3820/17730 +f 3252/3820/17731 2966/3509/17732 2965/3505/17733 +f 3250/3825/17734 3254/3823/17735 3252/3820/17736 +f 3252/3820/17737 3249/3819/17738 3250/3825/17739 +f 2927/3466/17740 2928/3465/17741 3253/3824/17742 +f 3253/3824/17743 3255/3826/17744 2927/3466/17745 +f 2930/3469/17746 2966/3509/17747 3253/3824/17748 +f 3253/3824/17749 2928/3465/17750 2930/3469/17751 +f 3256/3827/17752 3255/3826/17753 3253/3824/17754 +f 3253/3824/17755 3254/3823/17756 3256/3827/17757 +f 3257/3829/17758 3255/3826/17759 3256/3827/17760 +f 3256/3827/17761 3258/3828/17762 3257/3829/17763 +f 3250/3825/17764 3259/3830/17765 3256/3827/17766 +f 3256/3827/17767 3254/3823/17768 3250/3825/17769 +f 3260/3831/17770 3258/3828/17771 3256/3827/17772 +f 3256/3827/17773 3259/3830/17774 3260/3831/17775 +f 3261/3833/17776 3258/3828/17777 3260/3831/17778 +f 3260/3831/17779 3262/3832/17780 3261/3833/17781 +f 3247/3813/17782 3246/3812/17783 3260/3834/17784 +f 3260/3834/17785 3259/3835/17786 3247/3813/17787 +f 3245/3810/17788 3262/3836/17789 3260/3834/17790 +f 3260/3834/17791 3246/3812/17792 3245/3810/17793 +f 3264/3838/17794 3263/3839/17795 3261/3833/17796 +f 3261/3833/17797 3265/3837/17798 3264/3838/17799 +f 3257/3829/17800 3258/3828/17801 3261/3833/17802 +f 3261/3833/17803 3263/3839/17804 3257/3829/17805 +f 3243/3840/17806 3265/3837/17807 3261/3833/17808 +f 3261/3833/17809 3262/3832/17810 3243/3840/17811 +f 2907/3446/17812 3266/3841/17813 3263/3839/17814 +f 3263/3839/17815 3264/3838/17816 2907/3446/17817 +f 3267/3842/17818 3257/3829/17819 3263/3839/17820 +f 3263/3839/17821 3266/3841/17822 3267/3842/17823 +f 3269/3843/17824 3268/3844/17825 3267/3842/17826 +f 3267/3842/17827 3266/3841/17828 3269/3843/17829 +f 2926/3467/17830 2927/3466/17831 3267/3842/17832 +f 3267/3842/17833 3268/3844/17834 2926/3467/17835 +f 3255/3826/17836 3257/3829/17837 3267/3842/17838 +f 3267/3842/17839 2927/3466/17840 3255/3826/17841 +f 3271/3845/17842 3270/3846/17843 3268/3844/17844 +f 3268/3844/17845 3269/3843/17846 3271/3845/17847 +f 2897/3434/17848 2926/3467/17849 3268/3844/17850 +f 3268/3844/17851 3270/3846/17852 2897/3434/17853 +f 3273/3847/17854 3272/3848/17855 3270/3846/17856 +f 3270/3846/17857 3271/3845/17858 3273/3847/17859 +f 2896/3435/17860 2897/3434/17861 3270/3846/17862 +f 3270/3846/17863 3272/3848/17864 2896/3435/17865 +f 3275/3849/17866 3274/3850/17867 3272/3848/17868 +f 3272/3848/17869 3273/3847/17870 3275/3849/17871 +f 2846/3385/17872 2896/3435/17873 3272/3848/17874 +f 3272/3848/17875 3274/3850/17876 2846/3385/17877 +f 3277/3851/17878 3276/3852/17879 3274/3850/17880 +f 3274/3850/17881 3275/3849/17882 3277/3851/17883 +f 2845/3380/17884 2846/3385/17885 3274/3850/17886 +f 3274/3850/17887 3276/3852/17888 2845/3380/17889 +f 3279/3853/17890 3278/3854/17891 3276/3852/17892 +f 3276/3852/17893 3277/3851/17894 3279/3853/17895 +f 2849/3386/17896 2845/3380/17897 3276/3852/17898 +f 3276/3852/17899 3278/3854/17900 2849/3386/17901 +f 3277/3851/17902 3280/3856/17903 3281/3855/17904 +f 3281/3855/17905 3279/3853/17906 3277/3851/17907 +f 2803/3342/17908 2804/3341/17909 3281/3855/17910 +f 3281/3855/17911 3280/3856/17912 2803/3342/17913 +f 3275/3849/17914 3282/3857/17915 3280/3856/17916 +f 3280/3856/17917 3277/3851/17918 3275/3849/17919 +f 2782/3321/17920 2803/3342/17921 3280/3856/17922 +f 3280/3856/17923 3282/3857/17924 2782/3321/17925 +f 3273/3847/17926 3283/3858/17927 3282/3857/17928 +f 3282/3857/17929 3275/3849/17930 3273/3847/17931 +f 2781/3322/17932 2782/3321/17933 3282/3857/17934 +f 3282/3857/17935 3283/3858/17936 2781/3322/17937 +f 3271/3845/17938 2910/3449/17939 3283/3858/17940 +f 3283/3858/17941 3273/3847/17942 3271/3845/17943 +f 2910/3449/17944 2911/3448/17945 2781/3322/17946 +f 2781/3322/17947 3283/3858/17948 2910/3449/17949 +f 2908/3445/17950 2910/3449/17951 3271/3845/17952 +f 3271/3845/17953 3269/3843/17954 2908/3445/17955 +f 2907/3446/17956 2908/3445/17957 3269/3843/17958 +f 3269/3843/17959 3266/3841/17960 2907/3446/17961 +f 2906/3447/17962 2907/3446/17963 3264/3838/17964 +f 3264/3838/17965 3284/3859/17966 2906/3447/17967 +f 3285/3860/17968 3284/3859/17969 3264/3838/17970 +f 3264/3838/17971 3265/3837/17972 3285/3860/17973 +f 3243/3840/17974 3241/3861/17975 3285/3860/17976 +f 3285/3860/17977 3265/3837/17978 3243/3840/17979 +f 3240/3862/17980 3286/3863/17981 3285/3860/17982 +f 3285/3860/17983 3241/3861/17984 3240/3862/17985 +f 3288/3864/17986 3287/3865/17987 2949/3491/17988 +f 2949/3491/17989 2950/3494/17990 3288/3864/17991 +f 3288/3864/17992 2906/3447/17993 3284/3859/17994 +f 3289/3866/17995 3287/3865/17996 3288/3864/17997 +f 3288/3864/17998 3286/3863/17999 3289/3866/18000 +f 3290/3868/18001 3287/3865/18002 3289/3866/18003 +f 3289/3866/18004 3291/3867/18005 3290/3868/18006 +f 3240/3862/18007 3239/3869/18008 3289/3866/18009 +f 3289/3866/18010 3286/3863/18011 3240/3862/18012 +f 3238/3870/18013 3291/3867/18014 3289/3866/18015 +f 3289/3866/18016 3239/3869/18017 3238/3870/18018 +f 3290/3868/18019 2972/3873/18020 3292/3871/18021 +f 3292/3871/18022 2948/3872/18023 3290/3868/18024 +f 3290/3868/18025 2948/3872/18026 2949/3491/18027 +f 2949/3491/18028 3287/3865/18029 3290/3868/18030 +f 3293/3874/18031 2972/3873/18032 3290/3868/18033 +f 3290/3868/18034 3291/3867/18035 3293/3874/18036 +f 3292/3876/18037 2972/3515/18038 2973/3514/18039 +f 2973/3514/18040 3294/3875/18041 3292/3876/18042 +f 3296/3879/18043 3295/3880/18044 3292/3877/18045 +f 3292/3877/18046 3294/3878/18047 3296/3879/18048 +f 2947/3489/18049 2948/3488/18050 3292/3877/18051 +f 3292/3877/18052 3295/3880/18053 2947/3489/18054 +f 3298/3881/18055 3297/3882/18056 3296/3879/18057 +f 3296/3879/18058 3294/3878/18059 3298/3881/18060 +f 3300/3883/18061 3299/3884/18062 3296/3879/18063 +f 3296/3879/18064 3297/3882/18065 3300/3883/18066 +f 3301/3885/18067 3295/3880/18068 3296/3879/18069 +f 3296/3879/18070 3299/3884/18071 3301/3885/18072 +f 2985/3529/18073 2986/3528/18074 3299/3886/18075 +f 3299/3886/18076 3300/3887/18077 2985/3529/18078 +f 2988/3532/18079 3301/3888/18080 3299/3886/18081 +f 3299/3886/18082 2986/3528/18083 2988/3532/18084 +f 3303/3889/18085 3302/3890/18086 3300/3883/18087 +f 3300/3883/18088 3297/3882/18089 3303/3889/18090 +f 3304/3892/18091 2985/3529/18092 3300/3887/18093 +f 3300/3887/18094 3302/3891/18095 3304/3892/18096 +f 3306/3893/18097 3305/3894/18098 3304/3892/18099 +f 3304/3892/18100 3302/3891/18101 3306/3893/18102 +f 3308/3895/18103 3307/3896/18104 3304/3892/18105 +f 3304/3892/18106 3305/3894/18107 3308/3895/18108 +f 2984/3530/18109 2985/3529/18110 3304/3892/18111 +f 3304/3892/18112 3307/3896/18113 2984/3530/18114 +f 3310/3897/18115 3309/3898/18116 3305/3894/18117 +f 3305/3894/18118 3306/3893/18119 3310/3897/18120 +f 3311/3899/18121 3308/3895/18122 3305/3894/18123 +f 3305/3894/18124 3309/3898/18125 3311/3899/18126 +f 2959/3501/18127 2960/3504/18128 3311/3899/18129 +f 3311/3899/18130 3309/3898/18131 2959/3501/18132 +f 3313/3902/18133 3312/3903/18134 3315/3900/18135 +f 3315/3900/18136 3314/3901/18137 3313/3902/18138 +f 2977/3521/18139 2978/3520/18140 3315/3900/18141 +f 3315/3900/18142 3312/3903/18143 2977/3521/18144 +f 3317/3904/18145 3316/3905/18146 3312/3903/18147 +f 3312/3903/18148 3313/3902/18149 3317/3904/18150 +f 3318/3906/18151 2977/3521/18152 3312/3903/18153 +f 3312/3903/18154 3316/3905/18155 3318/3906/18156 +f 3320/3907/18157 3319/3908/18158 3318/3906/18159 +f 3318/3906/18160 3316/3905/18161 3320/3907/18162 +f 2980/3909/18163 3321/3910/18164 3318/3906/18165 +f 3318/3906/18166 3319/3908/18167 2980/3909/18168 +f 2976/3522/18169 2977/3521/18170 3318/3906/18171 +f 3318/3906/18172 3321/3910/18173 2976/3522/18174 +f 2981/3911/18175 3322/3912/18176 3321/3910/18177 +f 3321/3910/18178 2980/3909/18179 2981/3911/18180 +f 3323/3913/18181 2976/3522/18182 3321/3910/18183 +f 3321/3910/18184 3322/3912/18185 3323/3913/18186 +f 3319/3916/18187 3320/3917/18188 3325/3914/18189 +f 3325/3914/18190 3324/3915/18191 3319/3916/18192 +f 3324/3915/18193 2983/3523/18194 2980/3526/18195 +f 2980/3526/18196 3319/3916/18197 3324/3915/18198 +f 3326/3918/18199 2953/3495/18200 3324/3915/18201 +f 3324/3915/18202 3325/3914/18203 3326/3918/18204 +f 2946/3490/18205 2983/3523/18206 3324/3915/18207 +f 3324/3915/18208 2953/3495/18209 2946/3490/18210 +f 3328/3919/18211 3327/3920/18212 3326/3918/18213 +f 3326/3918/18214 3325/3914/18215 3328/3919/18216 +f 3330/3921/18217 3329/3922/18218 3326/3918/18219 +f 3326/3918/18220 3327/3920/18221 3330/3921/18222 +f 2952/3496/18223 2953/3495/18224 3326/3918/18225 +f 3326/3918/18226 3329/3922/18227 2952/3496/18228 +f 2902/3442/18229 2903/3441/18230 3329/3923/18231 +f 3329/3923/18232 3330/3924/18233 2902/3442/18234 +f 2951/3493/18235 2952/3492/18236 3329/3923/18237 +f 3329/3923/18238 2903/3441/18239 2951/3493/18240 +f 3332/3925/18241 3331/3926/18242 3330/3921/18243 +f 3330/3921/18244 3327/3920/18245 3332/3925/18246 +f 2905/3443/18247 2902/3442/18248 3330/3924/18249 +f 3330/3924/18250 3331/3927/18251 2905/3443/18252 +f 3334/3929/18253 3333/3930/18254 3331/3927/18255 +f 3331/3927/18256 3332/3928/18257 3334/3929/18258 +f 3335/3931/18259 2905/3443/18260 3331/3927/18261 +f 3331/3927/18262 3333/3930/18263 3335/3931/18264 +f 2924/3462/18265 2894/3431/18266 3335/3931/18267 +f 3335/3931/18268 3333/3930/18269 2924/3462/18270 +f 2881/3420/18271 2882/3419/18272 3335/3931/18273 +f 3335/3931/18274 2894/3431/18275 2881/3420/18276 +f 2900/3437/18277 2905/3443/18278 3335/3931/18279 +f 3335/3931/18280 2882/3419/18281 2900/3437/18282 +f 2938/3475/18283 2924/3462/18284 3333/3930/18285 +f 3333/3930/18286 3334/3929/18287 2938/3475/18288 +f 2937/3476/18289 2938/3475/18290 3334/3929/18291 +f 3334/3929/18292 3336/3932/18293 2937/3476/18294 +f 3337/3934/18295 3336/3935/18296 3334/3933/18297 +f 3334/3933/18298 3332/3925/18299 3337/3934/18300 +f 3337/3934/18301 3338/3937/18302 3339/3936/18303 +f 3339/3936/18304 3336/3935/18305 3337/3934/18306 +f 3327/3920/18307 3328/3919/18308 3337/3934/18309 +f 3337/3934/18310 3332/3925/18311 3327/3920/18312 +f 3338/3937/18313 3337/3934/18314 3328/3919/18315 +f 3328/3919/18316 3340/3938/18317 3338/3937/18318 +f 3325/3914/18319 3320/3917/18320 3340/3938/18321 +f 3340/3938/18322 3328/3919/18323 3325/3914/18324 +f 3341/3941/18325 3339/3942/18326 3338/3939/18327 +f 3338/3939/18328 3342/3940/18329 3341/3941/18330 +f 3317/3904/18331 3342/3940/18332 3338/3939/18333 +f 3338/3939/18334 3340/3943/18335 3317/3904/18336 +f 3344/3945/18337 3343/3946/18338 3339/3936/18339 +f 3339/3936/18340 3341/3944/18341 3344/3945/18342 +f 3339/3936/18343 3343/3946/18344 2937/3947/18345 +f 2937/3947/18346 3336/3935/18347 3339/3936/18348 +f 3345/3948/18349 2935/3949/18350 2937/3947/18351 +f 2937/3947/18352 3343/3946/18353 3345/3948/18354 +f 3346/3950/18355 2934/3951/18356 2935/3949/18357 +f 2935/3949/18358 3345/3948/18359 3346/3950/18360 +f 3346/3954/18361 3347/3955/18362 3348/3952/18363 +f 3348/3952/18364 2934/3953/18365 3346/3954/18366 +f 3350/3956/18367 3349/3957/18368 3346/3950/18369 +f 3346/3950/18370 3345/3948/18371 3350/3956/18372 +f 3303/3889/18373 3347/3960/18374 3346/3958/18375 +f 3346/3958/18376 3349/3959/18377 3303/3889/18378 +f 3310/3961/18379 3306/3962/18380 3349/3957/18381 +f 3349/3957/18382 3350/3956/18383 3310/3961/18384 +f 3302/3890/18385 3303/3889/18386 3349/3959/18387 +f 3349/3959/18388 3306/3963/18389 3302/3890/18390 +f 3343/3946/18391 3344/3945/18392 3350/3956/18393 +f 3350/3956/18394 3345/3948/18395 3343/3946/18396 +f 2958/3964/18397 3310/3961/18398 3350/3956/18399 +f 3350/3956/18400 3344/3945/18401 2958/3964/18402 +f 3298/3965/18403 2974/3518/18404 3348/3952/18405 +f 3348/3952/18406 3347/3955/18407 3298/3965/18408 +f 2975/3517/18409 3351/3966/18410 3348/3952/18411 +f 3348/3952/18412 2974/3518/18413 2975/3517/18414 +f 2933/3967/18415 2934/3953/18416 3348/3952/18417 +f 3348/3952/18418 3351/3966/18419 2933/3967/18420 +f 3352/3968/18421 2942/3481/18422 3351/3966/18423 +f 3351/3966/18424 2975/3517/18425 3352/3968/18426 +f 2940/3480/18427 2933/3967/18428 3351/3966/18429 +f 3351/3966/18430 2942/3481/18431 2940/3480/18432 +f 2967/3511/18433 2968/3510/18434 3352/3968/18435 +f 3352/3968/18436 3353/3969/18437 2967/3511/18438 +f 2941/3482/18439 2942/3481/18440 3352/3968/18441 +f 3352/3968/18442 2968/3510/18443 2941/3482/18444 +f 2971/3516/18445 3353/3969/18446 3352/3968/18447 +f 3352/3968/18448 2975/3517/18449 2971/3516/18450 +f 2970/3512/18451 2967/3511/18452 3353/3969/18453 +f 3353/3969/18454 3354/3970/18455 2970/3512/18456 +f 3355/3971/18457 3354/3970/18458 3353/3969/18459 +f 3353/3969/18460 2971/3516/18461 3355/3971/18462 +f 3236/3972/18463 3234/3973/18464 3354/3970/18465 +f 3354/3970/18466 3355/3971/18467 3236/3972/18468 +f 3235/3821/18469 2970/3512/18470 3354/3970/18471 +f 3354/3970/18472 3234/3973/18473 3235/3821/18474 +f 3298/3965/18475 3294/3875/18476 2973/3514/18477 +f 2973/3514/18478 2974/3518/18479 3298/3965/18480 +f 3297/3882/18481 3298/3881/18482 3347/3960/18483 +f 3347/3960/18484 3303/3889/18485 3297/3882/18486 +f 2956/3498/18487 2958/3502/18488 3344/3974/18489 +f 3344/3974/18490 3341/3941/18491 2956/3498/18492 +f 2955/3499/18493 2956/3498/18494 3341/3941/18495 +f 3341/3941/18496 3342/3940/18497 2955/3499/18498 +f 3313/3902/18499 2955/3499/18500 3342/3940/18501 +f 3342/3940/18502 3317/3904/18503 3313/3902/18504 +f 3316/3905/18505 3317/3904/18506 3340/3943/18507 +f 3340/3943/18508 3320/3907/18509 3316/3905/18510 +f 2958/3502/18511 2959/3501/18512 3309/3898/18513 +f 3309/3898/18514 3310/3897/18515 2958/3502/18516 +f 3237/3975/18517 3293/3874/18518 3291/3867/18519 +f 3291/3867/18520 3238/3870/18521 3237/3975/18522 +f 3242/3809/18523 3243/3808/18524 3262/3836/18525 +f 3262/3836/18526 3245/3810/18527 3242/3809/18528 +f 3248/3814/18529 3247/3813/18530 3259/3835/18531 +f 3259/3835/18532 3250/3815/18533 3248/3814/18534 +f 3237/3977/18535 3236/3972/18536 3355/3971/18537 +f 3355/3971/18538 3293/3976/18539 3237/3977/18540 +f 3001/3543/18541 3002/3542/18542 3010/3554/18543 +f 3010/3554/18544 3011/3553/18545 3001/3543/18546 +f 3357/3978/18547 3356/3979/18548 2988/3532/18549 +f 2988/3532/18550 2989/3531/18551 3357/3978/18552 +f 3323/3913/18553 3301/3888/18554 2988/3532/18555 +f 2988/3532/18556 3356/3979/18557 3323/3913/18558 +f 2976/3522/18559 3323/3913/18560 3356/3979/18561 +f 3356/3979/18562 2979/3519/18563 2976/3522/18564 +f 2945/3485/18565 2941/3482/18566 2968/3510/18567 +f 2968/3510/18568 2962/3508/18569 2945/3485/18570 +f 2923/3461/18571 2936/3471/18572 2939/3478/18573 +f 2939/3478/18574 2925/3463/18575 2923/3461/18576 +f 2923/3461/18577 2924/3462/18578 2938/3475/18579 +f 2938/3475/18580 2936/3471/18581 2923/3461/18582 +f 2897/3434/18583 2874/3412/18584 2932/3470/18585 +f 2932/3470/18586 2926/3467/18587 2897/3434/18588 +f 2866/3404/18589 2915/3452/18590 2863/3402/18591 +f 2863/3402/18592 2860/3399/18593 2866/3404/18594 +f 2892/3430/18595 2895/3433/18596 2918/3455/18597 +f 2918/3455/18598 2913/3454/18599 2892/3430/18600 +f 2891/3428/18601 2892/3430/18602 2913/3454/18603 +f 2913/3454/18604 2914/3453/18605 2891/3428/18606 +f 2890/3429/18607 2891/3428/18608 2914/3453/18609 +f 2914/3453/18610 3358/3980/18611 2890/3429/18612 +f 2866/3404/18613 3358/3980/18614 2914/3453/18615 +f 2914/3453/18616 2915/3452/18617 2866/3404/18618 +f 3359/3982/18619 2890/3429/18620 3358/3980/18621 +f 3358/3980/18622 3360/3981/18623 3359/3982/18624 +f 2841/3378/18625 3360/3981/18626 3358/3980/18627 +f 3358/3980/18628 2866/3404/18629 2841/3378/18630 +f 2877/3415/18631 2887/3426/18632 3359/3982/18633 +f 3359/3982/18634 3361/3983/18635 2877/3415/18636 +f 2888/3425/18637 2890/3429/18638 3359/3982/18639 +f 3359/3982/18640 2887/3426/18641 2888/3425/18642 +f 3362/3984/18643 3361/3983/18644 3359/3982/18645 +f 3359/3982/18646 3360/3981/18647 3362/3984/18648 +f 2854/3392/18649 3361/3983/18650 3362/3984/18651 +f 3362/3984/18652 2851/3390/18653 2854/3392/18654 +f 2841/3378/18655 2839/3375/18656 3362/3984/18657 +f 3362/3984/18658 3360/3981/18659 2841/3378/18660 +f 2837/3377/18661 2851/3390/18662 3362/3984/18663 +f 3362/3984/18664 2839/3375/18665 2837/3377/18666 +f 2869/3407/18667 2877/3415/18668 3361/3983/18669 +f 3361/3983/18670 2854/3392/18671 2869/3407/18672 +f 2882/3419/18673 2880/3417/18674 2899/3438/18675 +f 2899/3438/18676 2900/3437/18677 2882/3419/18678 +f 2847/3384/18679 2873/3411/18680 2896/3435/18681 +f 2896/3435/18682 2846/3385/18683 2847/3384/18684 +f 2883/3424/18685 2884/3423/18686 2895/3433/18687 +f 2895/3433/18688 2892/3430/18689 2883/3424/18690 +f 2875/3414/18691 2885/3422/18692 2887/3426/18693 +f 2887/3426/18694 2877/3415/18695 2875/3414/18696 +f 2842/3383/18697 2856/3394/18698 2858/3397/18699 +f 2858/3397/18700 2847/3384/18701 2842/3383/18702 +f 3363/3985/18703 2797/3334/18704 2834/3372/18705 +f 2834/3372/18706 2855/3395/18707 3363/3985/18708 +f 3363/3985/18709 2775/3312/18710 2797/3334/18711 +f 2843/3382/18712 2806/3344/18713 3363/3985/18714 +f 3363/3985/18715 2855/3395/18716 2843/3382/18717 +f 2806/3344/18718 2774/3313/18719 2775/3312/18720 +f 2775/3312/18721 3363/3985/18722 2806/3344/18723 +f 2842/3383/18724 2843/3382/18725 2855/3395/18726 +f 2855/3395/18727 2856/3394/18728 2842/3383/18729 +f 2826/3365/18730 2862/3400/18731 2861/3398/18732 +f 2861/3398/18733 2825/3366/18734 2826/3365/18735 +f 2807/3345/18736 2844/3381/18737 2848/3387/18738 +f 2848/3387/18739 2809/3346/18740 2807/3345/18741 +f 2807/3345/18742 2806/3344/18743 2843/3382/18744 +f 2843/3382/18745 2844/3381/18746 2807/3345/18747 +f 2819/3360/18748 2820/3359/18749 2838/3376/18750 +f 2838/3376/18751 2836/3373/18752 2819/3360/18753 +f 2836/3373/18754 2823/3361/18755 2819/3360/18756 +f 2824/3362/18757 2823/3361/18758 2862/3400/18759 +f 2862/3400/18760 2826/3365/18761 2824/3362/18762 +f 2829/3369/18763 2828/3363/18764 2825/3366/18765 +f 2825/3366/18766 2861/3398/18767 2829/3369/18768 +f 2811/3349/18769 2824/3362/18770 2826/3365/18771 +f 2826/3365/18772 2827/3364/18773 2811/3349/18774 +f 2793/3331/18775 2794/3330/18776 2813/3352/18777 +f 2813/3352/18778 2764/3304/18779 2793/3331/18780 +f 2766/3302/18781 2812/3348/18782 2810/3350/18783 +f 2810/3350/18784 2765/3303/18785 2766/3302/18786 +f 2798/3338/18787 2805/3343/18788 2808/3347/18789 +f 2808/3347/18790 2802/3339/18791 2798/3338/18792 +f 2783/3320/18793 2800/3336/18794 2803/3342/18795 +f 2803/3342/18796 2782/3321/18797 2783/3320/18798 +f 2783/3320/18799 2785/3324/18800 2799/3337/18801 +f 2799/3337/18802 2800/3336/18803 2783/3320/18804 +f 2767/3305/18805 2758/3295/18806 2755/3293/18807 +f 2755/3293/18808 2762/3300/18809 2767/3305/18810 +f 3364/3986/18811 2772/3311/18812 2776/3315/18813 +f 2776/3315/18814 3132/3689/18815 3364/3986/18816 +f 2774/3313/18817 2773/3310/18818 2769/3308/18819 +f 2755/3293/18820 2754/3289/18821 2761/3301/18822 +f 2761/3301/18823 2762/3300/18824 2755/3293/18825 +f 3132/3689/18826 3070/3619/18827 3071/3618/18828 +f 3071/3618/18829 3364/3986/18830 3132/3689/18831 +f 2734/3275/18832 2735/3274/18833 2748/3287/18834 +f 2748/3287/18835 2749/3286/18836 2734/3275/18837 +f 3113/3667/18838 3115/3670/18839 3118/3674/18840 +f 3117/3672/18841 3091/3675/18842 2729/3673/18843 +f 2721/3256/18844 2715/3253/18845 2726/3263/18846 +f 2726/3263/18847 2727/3262/18848 2721/3256/18849 +f 3070/3619/18850 3365/3987/18851 2740/3281/18852 +f 2740/3281/18853 3068/3616/18854 3070/3619/18855 +f 3130/3688/18856 3365/3987/18857 3070/3619/18858 +f 3070/3619/18859 3132/3689/18860 3130/3688/18861 +f 3136/3693/18862 3365/3987/18863 3130/3688/18864 +f 3130/3688/18865 3134/3691/18866 3136/3693/18867 +f 2743/3278/18868 2740/3281/18869 3365/3987/18870 +f 2743/3278/18871 3365/3987/18872 3136/3693/18873 +f 2743/3278/18874 3136/3693/18875 2742/3279/18876 +f 3314/3901/18877 2954/3500/18878 2955/3499/18879 +f 2955/3499/18880 3313/3902/18881 3314/3901/18882 +f 3301/3885/18883 2982/3524/18884 2947/3489/18885 +f 2947/3489/18886 3295/3880/18887 3301/3885/18888 +f 3322/3912/18889 2981/3911/18890 3301/3888/18891 +f 3301/3888/18892 3323/3913/18893 3322/3912/18894 +f 3178/3739/18895 3007/3547/18896 3004/3550/18897 +f 3180/3742/18898 3181/3741/18899 3366/3988/18900 +f 3011/3553/18901 3366/3988/18902 3181/3741/18903 +f 3181/3741/18904 3186/3746/18905 3011/3553/18906 +f 3178/3739/18907 3366/3988/18908 3011/3553/18909 +f 3011/3553/18910 3007/3547/18911 3178/3739/18912 +f 3364/3986/18913 2771/3306/18914 2768/3309/18915 +f 2768/3309/18916 2772/3311/18917 3364/3986/18918 +f 3314/3901/18919 2961/3503/18920 2957/3497/18921 +f 2957/3497/18922 2954/3500/18923 3314/3901/18924 +f 2982/3524/18925 3301/3885/18926 2981/3525/18927 +f 3178/3739/18928 3180/3742/18929 3366/3988/18930 +f 2979/3519/18931 3367/3989/18932 2978/3520/18933 +f 3004/3550/18934 3005/3549/18935 3013/3555/18936 +f 3369/3990/18937 3368/3991/18938 3025/3567/18939 +f 3025/3567/18940 3024/3568/18941 3369/3990/18942 +f 3024/3568/18943 2779/3318/18944 3369/3990/18945 +f 3367/3989/18946 2979/3519/18947 3356/3979/18948 +f 3356/3979/18949 3357/3978/18950 3367/3989/18951 +f 3369/3990/18952 2780/3317/18953 3169/3727/18954 +f 3169/3727/18955 3368/3991/18956 3369/3990/18957 +f 3369/3990/18958 2779/3318/18959 2780/3317/18960 +f 3012/3556/18961 3214/3774/18962 3013/3555/18963 +f 2997/3541/18964 2998/3540/18965 3370/3992/18966 +f 2998/3540/18967 3191/3794/18968 3370/3992/18969 +f 3185/3744/18970 3370/3993/18971 3191/3751/18972 +f 3191/3751/18973 3184/3745/18974 3185/3744/18975 +f 3151/3707/18976 2786/3323/18977 2784/3319/18978 +f 2784/3319/18979 2781/3322/18980 3151/3707/18981 +f 3151/3707/18982 3141/3696/18983 3127/3684/18984 +f 3127/3684/18985 2786/3323/18986 3151/3707/18987 +f 3371/3994/18988 3118/3674/18989 2729/3673/18990 +f 2729/3673/18991 2727/3262/18992 3371/3994/18993 +f 3371/3994/18994 2727/3262/18995 3111/3665/18996 +f 3111/3665/18997 3110/3666/18998 3371/3994/18999 +f 3110/3666/19000 3113/3667/19001 3118/3674/19002 +f 3118/3674/19003 3371/3994/19004 3110/3666/19005 +f 3111/3665/19006 3104/3659/19007 3108/3663/19008 +f 2732/3269/19009 3107/3664/19010 3120/3676/19011 +f 3120/3676/19012 2731/3270/19013 2732/3269/19014 +f 3105/3661/19015 3107/3664/19016 3108/3663/19017 +f 3108/3663/19018 3104/3659/19019 3105/3661/19020 +f 3120/3676/19021 3107/3664/19022 3105/3661/19023 +f 2851/3390/19024 3163/3719/19025 2850/3391/19026 +f 3286/3863/19027 3288/3864/19028 3284/3859/19029 +f 3284/3859/19030 3285/3860/19031 3286/3863/19032 +f 2950/3494/19033 2912/3450/19034 2906/3447/19035 +f 2906/3447/19036 3288/3864/19037 2950/3494/19038 +f 3315/3900/19039 2978/3520/19040 2960/3504/19041 +f 2960/3504/19042 2961/3503/19043 3315/3900/19044 +f 2961/3503/19045 3314/3901/19046 3315/3900/19047 +f 3367/3989/19048 3357/3978/19049 3308/3895/19050 +f 3308/3895/19051 3311/3899/19052 3367/3989/19053 +f 2989/3531/19054 3307/3896/19055 3308/3895/19056 +f 3308/3895/19057 3357/3978/19058 2989/3531/19059 +f 2989/3531/19060 2987/3527/19061 2984/3530/19062 +f 2984/3530/19063 3307/3896/19064 2989/3531/19065 +f 3367/3989/19066 3311/3899/19067 2960/3504/19068 +f 2960/3504/19069 2978/3520/19070 3367/3989/19071 +f 3004/3550/19072 3013/3555/19073 3179/3738/19074 +f 3179/3738/19075 3013/3555/19076 3214/3774/19077 +f 3214/3774/19078 3217/3778/19079 3179/3738/19080 +f 2994/3538/19081 3183/3743/19082 3179/3738/19083 +f 3179/3738/19084 3217/3778/19085 2994/3538/19086 +f 2994/3538/19087 2995/3537/19088 3183/3743/19089 +f 2997/3541/19090 3370/3992/19091 3185/3744/19092 +f 3185/3744/19093 3182/3740/19094 2997/3541/19095 +f 2995/3537/19096 2997/3541/19097 3182/3740/19098 +f 3182/3740/19099 3183/3743/19100 2995/3537/19101 +f 2972/3515/19102 3293/3976/19103 3355/3971/19104 +f 3355/3971/19105 2971/3516/19106 2972/3515/19107 +f 3091/3646/19108 3094/3649/19109 2728/3266/19110 +f 2728/3266/19111 2729/3267/19112 3091/3646/19113 +f 2848/3387/19114 2849/3386/19115 3278/3854/19116 +f 3278/3854/19117 3279/3853/19118 2848/3387/19119 +f 2801/3340/19120 2802/3339/19121 2808/3347/19122 +f 2808/3347/19123 2804/3341/19124 2801/3340/19125 +f 2804/3341/19126 2808/3347/19127 2809/3346/19128 +f 2809/3346/19129 3281/3855/19130 2804/3341/19131 +f 3281/3855/19132 2809/3346/19133 2848/3387/19134 +f 2848/3387/19135 3279/3853/19136 3281/3855/19137 +f 3157/3714/19138 3156/3713/19139 2816/3354/19140 +f 2816/3354/19141 2817/3353/19142 3157/3714/19143 +f 3154/3712/19144 3161/3715/19145 2816/3354/19146 +f 2816/3354/19147 3156/3713/19148 3154/3712/19149 +f 3155/3711/19150 3160/3716/19151 3161/3715/19152 +f 3161/3715/19153 3154/3712/19154 3155/3711/19155 +f 2835/3374/19156 2862/3400/19157 2823/3361/19158 +f 2812/3348/19159 2822/3357/19160 2811/3349/19161 +f 3168/3724/19162 3165/3721/19163 3160/3716/19164 +f 3160/3716/19165 3155/3711/19166 3168/3724/19167 +f 3168/3724/19168 3166/3723/19169 3165/3721/19170 +f 3111/3665/19171 2727/3262/19172 3104/3659/19173 +f 2747/3282/19174 2744/3285/19175 3085/3637/19176 +f 3085/3637/19177 2750/3288/19178 2747/3282/19179 +f 2741/3280/19180 2742/3279/19181 3084/3638/19182 +f 3364/3986/19183 3071/3618/19184 3065/3613/19185 +f 3065/3613/19186 2771/3306/19187 3364/3986/19188 +f 3071/3618/19189 3069/3615/19190 3064/3611/19191 +f 3064/3611/19192 3065/3613/19193 3071/3618/19194 +f 3064/3611/19195 3069/3615/19196 3063/3612/19197 +f 2771/3306/19198 3065/3613/19199 3056/3605/19200 +f 2739/3277/19201 3112/3668/19202 3109/3662/19203 +f 2733/3268/19204 2730/3271/19205 2738/3276/19206 +f 3373/3997/19207 3372/3998/19208 3375/3995/19209 +f 3375/3995/19210 3374/3996/19211 3373/3997/19212 +f 3377/3999/19213 3376/4000/19214 3375/3995/19215 +f 3375/3995/19216 3372/3998/19217 3377/3999/19218 +f 3375/3995/19219 3376/4000/19220 3378/4001/19221 +f 3378/4001/19222 3374/3996/19223 3375/3995/19224 +f 3380/4002/19225 3379/4003/19226 3376/4000/19227 +f 3376/4000/19228 3377/3999/19229 3380/4002/19230 +f 3376/4000/19231 3381/4005/19232 3382/4004/19233 +f 3382/4004/19234 3378/4001/19235 3376/4000/19236 +f 3376/4000/19237 3379/4003/19238 3383/4006/19239 +f 3383/4006/19240 3381/4005/19241 3376/4000/19242 +f 3380/4002/19243 3384/4008/19244 3385/4007/19245 +f 3385/4007/19246 3379/4003/19247 3380/4002/19248 +f 3385/4007/19249 3384/4008/19250 3386/4009/19251 +f 3385/4007/19252 3386/4009/19253 3388/4010/19254 +f 3388/4010/19255 3387/4011/19256 3385/4007/19257 +f 3390/4014/19258 3389/4015/19259 3392/4012/19260 +f 3392/4012/19261 3391/4013/19262 3390/4014/19263 +f 3391/4013/19264 3393/4016/19265 3390/4014/19266 +f 3390/4014/19267 3394/4018/19268 3395/4017/19269 +f 3395/4017/19270 3389/4015/19271 3390/4014/19272 +f 3396/4020/19273 3394/4018/19274 3390/4014/19275 +f 3390/4014/19276 3397/4019/19277 3396/4020/19278 +f 3399/4023/19279 3398/4024/19280 3401/4021/19281 +f 3401/4021/19282 3400/4022/19283 3399/4023/19284 +f 3402/4025/19285 3391/4013/19286 3392/4012/19287 +f 3403/4026/19288 3402/4025/19289 3392/4012/19290 +f 3404/4029/19291 3393/4016/19292 3406/4027/19293 +f 3406/4027/19294 3405/4028/19295 3404/4029/19296 +f 3406/4027/19297 3393/4016/19298 3391/4013/19299 +f 3391/4013/19300 3402/4025/19301 3406/4027/19302 +f 3402/4025/19303 3403/4026/19304 3406/4027/19305 +f 3406/4027/19306 3403/4026/19307 3408/4030/19308 +f 3408/4030/19309 3407/4031/19310 3406/4027/19311 +f 3409/4032/19312 3407/4031/19313 3408/4030/19314 +f 3409/4032/19315 3408/4030/19316 3411/4033/19317 +f 3411/4033/19318 3410/4034/19319 3409/4032/19320 +f 3409/4032/19321 3413/4035/19322 3412/4036/19323 +f 3414/4037/19324 3407/4031/19325 3409/4032/19326 +f 3409/4032/19327 3412/4036/19328 3414/4037/19329 +f 3415/4038/19330 3386/4009/19331 3384/4008/19332 +f 3384/4008/19333 3400/4022/19334 3415/4038/19335 +f 3415/4038/19336 3416/4039/19337 3388/4010/19338 +f 3388/4010/19339 3386/4009/19340 3415/4038/19341 +f 3413/4035/19342 3409/4032/19343 3410/4034/19344 +f 3410/4034/19345 3417/4040/19346 3413/4035/19347 +f 3418/4041/19348 3412/4036/19349 3413/4035/19350 +f 3413/4035/19351 3417/4040/19352 3418/4041/19353 +f 3420/4044/19354 3419/4045/19355 3422/4042/19356 +f 3422/4042/19357 3421/4043/19358 3420/4044/19359 +f 3423/4047/19360 3419/4045/19361 3420/4044/19362 +f 3420/4044/19363 3424/4046/19364 3423/4047/19365 +f 3426/4049/19366 3425/4050/19367 3427/4048/19368 +f 3427/4048/19369 3422/4042/19370 3426/4049/19371 +f 3428/4053/19372 3426/4049/19373 3430/4051/19374 +f 3430/4051/19375 3429/4052/19376 3428/4053/19377 +f 3426/4049/19378 3428/4053/19379 3425/4050/19380 +f 3426/4049/19381 3422/4042/19382 3419/4045/19383 +f 3419/4045/19384 3431/4054/19385 3426/4049/19386 +f 3421/4043/19387 3433/4055/19388 3432/4056/19389 +f 3420/4044/19390 3421/4043/19391 3432/4056/19392 +f 3432/4056/19393 3424/4046/19394 3420/4044/19395 +f 3435/4057/19396 3434/4058/19397 3430/4051/19398 +f 3430/4051/19399 3426/4049/19400 3435/4057/19401 +f 3435/4057/19402 3426/4049/19403 3431/4054/19404 +f 3431/4054/19405 3436/4059/19406 3435/4057/19407 +f 3435/4057/19408 3437/4061/19409 3438/4060/19410 +f 3438/4060/19411 3434/4058/19412 3435/4057/19413 +f 3435/4057/19414 3436/4059/19415 3440/4062/19416 +f 3440/4062/19417 3439/4063/19418 3435/4057/19419 +f 3435/4057/19420 3439/4063/19421 3441/4064/19422 +f 3441/4064/19423 3437/4061/19424 3435/4057/19425 +f 3442/4066/19426 3423/4047/19427 3424/4046/19428 +f 3424/4046/19429 3443/4065/19430 3442/4066/19431 +f 3442/4066/19432 3444/4068/19433 3445/4067/19434 +f 3445/4067/19435 3423/4047/19436 3442/4066/19437 +f 3442/4066/19438 3443/4065/19439 3446/4069/19440 +f 3446/4069/19441 3444/4068/19442 3442/4066/19443 +f 3448/4072/19444 3447/4073/19445 3450/4070/19446 +f 3450/4070/19447 3449/4071/19448 3448/4072/19449 +f 3452/4074/19450 3451/4075/19451 3447/4073/19452 +f 3447/4073/19453 3448/4072/19454 3452/4074/19455 +f 3448/4072/19456 3449/4071/19457 3453/4076/19458 +f 3453/4076/19459 3452/4074/19460 3448/4072/19461 +f 3455/4077/19462 3454/4078/19463 3428/4053/19464 +f 3428/4053/19465 3429/4052/19466 3455/4077/19467 +f 3429/4052/19468 3430/4051/19469 3456/4079/19470 +f 3456/4079/19471 3455/4077/19472 3429/4052/19473 +f 3458/4081/19474 3457/4082/19475 3444/4068/19476 +f 3444/4068/19477 3459/4080/19478 3458/4081/19479 +f 3444/4068/19480 3457/4082/19481 3445/4067/19482 +f 3446/4069/19483 3461/4083/19484 3460/4084/19485 +f 3444/4068/19486 3446/4069/19487 3460/4084/19488 +f 3460/4084/19489 3459/4080/19490 3444/4068/19491 +f 3463/4085/19492 3462/4086/19493 3412/4036/19494 +f 3412/4036/19495 3418/4041/19496 3463/4085/19497 +f 3463/4085/19498 3418/4041/19499 3465/4087/19500 +f 3465/4087/19501 3464/4088/19502 3463/4085/19503 +f 3467/4089/19504 3466/4090/19505 3463/4085/19506 +f 3463/4085/19507 3464/4088/19508 3467/4089/19509 +f 3469/4092/19510 3468/4093/19511 3470/4091/19512 +f 3470/4091/19513 3462/4086/19514 3469/4092/19515 +f 3469/4092/19516 3471/4094/19517 3468/4093/19518 +f 3472/4097/19519 3466/4098/19520 3474/4095/19521 +f 3474/4095/19522 3473/4096/19523 3472/4097/19524 +f 3476/4101/19525 3475/4102/19526 3478/4099/19527 +f 3478/4099/19528 3477/4100/19529 3476/4101/19530 +f 3476/4101/19531 3479/4104/19532 3480/4103/19533 +f 3480/4103/19534 3475/4102/19535 3476/4101/19536 +f 3476/4101/19537 3477/4100/19538 3481/4105/19539 +f 3481/4105/19540 3479/4104/19541 3476/4101/19542 +f 3483/4108/19543 3482/4109/19544 3485/4106/19545 +f 3485/4106/19546 3484/4107/19547 3483/4108/19548 +f 3485/4106/19549 3486/4112/19550 3488/4110/19551 +f 3488/4110/19552 3487/4111/19553 3485/4106/19554 +f 3480/4103/19555 3489/4114/19556 3490/4113/19557 +f 3490/4113/19558 3475/4102/19559 3480/4103/19560 +f 3492/4117/19561 3491/4118/19562 3494/4115/19563 +f 3494/4115/19564 3493/4116/19565 3492/4117/19566 +f 3479/4104/19567 3481/4105/19568 3496/4119/19569 +f 3496/4119/19570 3495/4120/19571 3479/4104/19572 +f 3498/4123/19573 3497/4124/19574 3474/4121/19575 +f 3474/4121/19576 3499/4122/19577 3498/4123/19578 +f 3501/4125/19579 3500/4126/19580 3497/4124/19581 +f 3497/4124/19582 3498/4123/19583 3501/4125/19584 +f 3498/4123/19585 3499/4122/19586 3502/4127/19587 +f 3502/4127/19588 3501/4125/19589 3498/4123/19590 +f 3504/4129/19591 3503/4130/19592 3495/4120/19593 +f 3495/4120/19594 3505/4128/19595 3504/4129/19596 +f 3487/4111/19597 3489/4114/19598 3480/4103/19599 +f 3480/4103/19600 3503/4130/19601 3487/4111/19602 +f 3503/4130/19603 3506/4131/19604 3487/4111/19605 +f 3508/4134/19606 3507/4135/19607 3510/4132/19608 +f 3510/4132/19609 3509/4133/19610 3508/4134/19611 +f 3512/4136/19612 3511/4137/19613 3507/4135/19614 +f 3507/4135/19615 3508/4134/19616 3512/4136/19617 +f 3508/4134/19618 3509/4133/19619 3513/4138/19620 +f 3513/4138/19621 3512/4136/19622 3508/4134/19623 +f 3515/4141/19624 3514/4142/19625 3517/4139/19626 +f 3517/4139/19627 3516/4140/19628 3515/4141/19629 +f 3515/4141/19630 3516/4140/19631 3519/4143/19632 +f 3519/4143/19633 3518/4144/19634 3515/4141/19635 +f 3515/4141/19636 3518/4144/19637 3520/4145/19638 +f 3520/4145/19639 3514/4142/19640 3515/4141/19641 +f 3483/4108/19642 3484/4107/19643 3522/4146/19644 +f 3522/4146/19645 3521/4147/19646 3483/4108/19647 +f 3523/4149/19648 3521/4147/19649 3522/4146/19650 +f 3522/4146/19651 3524/4148/19652 3523/4149/19653 +f 3526/4152/19654 3525/4153/19655 3528/4150/19656 +f 3528/4150/19657 3527/4151/19658 3526/4152/19659 +f 3530/4154/19660 3529/4155/19661 3525/4153/19662 +f 3525/4153/19663 3526/4152/19664 3530/4154/19665 +f 3526/4152/19666 3527/4151/19667 3531/4156/19668 +f 3531/4156/19669 3530/4154/19670 3526/4152/19671 +f 3533/4159/19672 3532/4160/19673 3535/4157/19674 +f 3535/4157/19675 3534/4158/19676 3533/4159/19677 +f 3537/4161/19678 3536/4162/19679 3532/4160/19680 +f 3532/4160/19681 3533/4159/19682 3537/4161/19683 +f 3533/4159/19684 3534/4158/19685 3538/4163/19686 +f 3538/4163/19687 3537/4161/19688 3533/4159/19689 +f 3540/4166/19690 3539/4167/19691 3542/4164/19692 +f 3542/4164/19693 3541/4165/19694 3540/4166/19695 +f 3540/4166/19696 3541/4165/19697 3544/4168/19698 +f 3544/4168/19699 3543/4169/19700 3540/4166/19701 +f 3540/4166/19702 3535/4157/19703 3545/4170/19704 +f 3545/4170/19705 3539/4167/19706 3540/4166/19707 +f 3547/4173/19708 3546/4174/19709 3549/4171/19710 +f 3549/4171/19711 3548/4172/19712 3547/4173/19713 +f 3547/4173/19714 3548/4172/19715 3551/4175/19716 +f 3551/4175/19717 3550/4176/19718 3547/4173/19719 +f 3547/4179/19720 3552/4180/19721 3553/4177/19722 +f 3553/4177/19723 3546/4178/19724 3547/4179/19725 +f 3547/4183/19726 3554/4184/19727 3555/4181/19728 +f 3555/4181/19729 3552/4182/19730 3547/4183/19731 +f 3557/4187/19732 3556/4188/19733 3559/4185/19734 +f 3559/4185/19735 3558/4186/19736 3557/4187/19737 +f 3561/4189/19738 3560/4190/19739 3556/4188/19740 +f 3556/4188/19741 3557/4187/19742 3561/4189/19743 +f 3557/4187/19744 3558/4186/19745 3562/4191/19746 +f 3562/4191/19747 3561/4189/19748 3557/4187/19749 +f 3564/4194/19750 3563/4195/19751 3566/4192/19752 +f 3566/4192/19753 3565/4193/19754 3564/4194/19755 +f 3564/4194/19756 3565/4193/19757 3568/4196/19758 +f 3568/4196/19759 3567/4197/19760 3564/4194/19761 +f 3564/4194/19762 3569/4199/19763 3570/4198/19764 +f 3570/4198/19765 3563/4195/19766 3564/4194/19767 +f 3573/4200/19768 3572/4201/19769 3571/4202/19770 +f 3571/4202/19771 3574/4204/19772 3575/4203/19773 +f 3575/4203/19774 3573/4200/19775 3571/4202/19776 +f 3571/4202/19777 3572/4201/19778 3576/4205/19779 +f 3575/4203/19780 3574/4204/19781 3577/4206/19782 +f 3579/4207/19783 3578/4208/19784 3575/4203/19785 +f 3575/4203/19786 3577/4206/19787 3579/4207/19788 +f 3579/4211/19789 3580/4212/19790 3582/4209/19791 +f 3582/4209/19792 3581/4210/19793 3579/4211/19794 +f 3579/4207/19795 3577/4206/19796 3576/4205/19797 +f 3576/4205/19798 3583/4213/19799 3579/4207/19800 +f 3571/4202/19801 3576/4205/19802 3577/4206/19803 +f 3577/4206/19804 3574/4204/19805 3571/4202/19806 +f 3567/4216/19807 3568/4217/19808 3585/4214/19809 +f 3585/4214/19810 3584/4215/19811 3567/4216/19812 +f 3567/4216/19813 3584/4215/19814 3586/4218/19815 +f 3586/4218/19816 3564/4219/19817 3567/4216/19818 +f 3580/4220/19819 3588/4221/19820 3587/4222/19821 +f 3580/4212/19822 3587/4225/19823 3590/4223/19824 +f 3590/4223/19825 3589/4224/19826 3580/4212/19827 +f 3591/4227/19828 3590/4223/19829 3587/4225/19830 +f 3587/4225/19831 3592/4226/19832 3591/4227/19833 +f 3591/4227/19834 3592/4226/19835 3593/4228/19836 +f 3595/4229/19837 3594/4230/19838 3593/4231/19839 +f 3595/4229/19840 3593/4231/19841 3592/4232/19842 +f 3592/4232/19843 3596/4233/19844 3595/4229/19845 +f 3598/4235/19846 3597/4236/19847 3599/4234/19848 +f 3599/4234/19849 3551/4175/19850 3598/4235/19851 +f 3601/4237/19852 3600/4238/19853 3599/4234/19854 +f 3599/4234/19855 3597/4236/19856 3601/4237/19857 +f 3599/4234/19858 3602/4240/19859 3603/4239/19860 +f 3603/4239/19861 3550/4176/19862 3599/4234/19863 +f 3599/4234/19864 3600/4238/19865 3604/4241/19866 +f 3604/4241/19867 3602/4240/19868 3599/4234/19869 +f 3595/4229/19870 3596/4233/19871 3605/4242/19872 +f 3595/4229/19873 3605/4242/19874 3606/4243/19875 +f 3606/4243/19876 3594/4230/19877 3595/4229/19878 +f 3594/4230/19879 3606/4243/19880 3607/4244/19881 +f 3609/4247/19882 3608/4248/19883 3611/4245/19884 +f 3611/4245/19885 3610/4246/19886 3609/4247/19887 +f 3611/4245/19888 3608/4248/19889 3613/4249/19890 +f 3613/4249/19891 3612/4250/19892 3611/4245/19893 +f 3614/4251/19894 3610/4246/19895 3611/4245/19896 +f 3611/4245/19897 3612/4250/19898 3614/4251/19899 +f 3615/4254/19900 3585/4214/19901 3617/4252/19902 +f 3617/4252/19903 3616/4253/19904 3615/4254/19905 +f 3615/4254/19906 3616/4253/19907 3619/4255/19908 +f 3619/4255/19909 3618/4256/19910 3615/4254/19911 +f 3615/4254/19912 3620/4257/19913 3584/4215/19914 +f 3584/4215/19915 3585/4214/19916 3615/4254/19917 +f 3555/4181/19918 3621/4259/19919 3622/4258/19920 +f 3622/4258/19921 3552/4182/19922 3555/4181/19923 +f 3624/4262/19924 3623/4263/19925 3626/4260/19926 +f 3626/4260/19927 3625/4261/19928 3624/4262/19929 +f 3628/4264/19930 3627/4265/19931 3623/4263/19932 +f 3623/4263/19933 3624/4262/19934 3628/4264/19935 +f 3624/4262/19936 3625/4261/19937 3629/4266/19938 +f 3629/4266/19939 3628/4264/19940 3624/4262/19941 +f 3631/4269/19942 3630/4270/19943 3633/4267/19944 +f 3633/4267/19945 3632/4268/19946 3631/4269/19947 +f 3633/4267/19948 3634/4271/19949 3609/4247/19950 +f 3609/4247/19951 3610/4246/19952 3633/4267/19953 +f 3633/4267/19954 3630/4270/19955 3635/4272/19956 +f 3635/4272/19957 3634/4271/19958 3633/4267/19959 +f 3616/4253/19960 3617/4252/19961 3637/4273/19962 +f 3637/4273/19963 3636/4274/19964 3616/4253/19965 +f 3616/4253/19966 3638/4276/19967 3639/4275/19968 +f 3639/4275/19969 3619/4255/19970 3616/4253/19971 +f 3609/4247/19972 3640/4277/19973 3608/4248/19974 +f 3609/4247/19975 3641/4279/19976 3642/4278/19977 +f 3642/4278/19978 3640/4277/19979 3609/4247/19980 +f 3641/4279/19981 3643/4282/19982 3645/4280/19983 +f 3645/4280/19984 3644/4281/19985 3641/4279/19986 +f 3641/4279/19987 3644/4281/19988 3646/4283/19989 +f 3646/4283/19990 3642/4278/19991 3641/4279/19992 +f 3648/4286/19993 3647/4287/19994 3650/4284/19995 +f 3650/4284/19996 3649/4285/19997 3648/4286/19998 +f 3650/4284/19999 3647/4287/20000 3652/4288/20001 +f 3652/4288/20002 3651/4289/20003 3650/4284/20004 +f 3650/4284/20005 3651/4289/20006 3654/4290/20007 +f 3654/4290/20008 3653/4291/20009 3650/4284/20010 +f 3655/4293/20011 3620/4257/20012 3615/4254/20013 +f 3615/4254/20014 3656/4292/20015 3655/4293/20016 +f 3655/4293/20017 3656/4292/20018 3654/4290/20019 +f 3654/4290/20020 3651/4289/20021 3655/4293/20022 +f 3655/4293/20023 3651/4289/20024 3652/4288/20025 +f 3652/4288/20026 3620/4257/20027 3655/4293/20028 +f 3654/4290/20029 3656/4292/20030 3657/4294/20031 +f 3657/4294/20032 3653/4291/20033 3654/4290/20034 +f 3658/4297/20035 3613/4249/20036 3660/4295/20037 +f 3660/4295/20038 3659/4296/20039 3658/4297/20040 +f 3658/4297/20041 3661/4298/20042 3612/4250/20043 +f 3612/4250/20044 3613/4249/20045 3658/4297/20046 +f 3658/4297/20047 3659/4296/20048 3663/4299/20049 +f 3663/4299/20050 3662/4300/20051 3658/4297/20052 +f 3665/4303/20053 3664/4304/20054 3667/4301/20055 +f 3667/4301/20056 3666/4302/20057 3665/4303/20058 +f 3665/4303/20059 3668/4306/20060 3669/4305/20061 +f 3669/4305/20062 3664/4304/20063 3665/4303/20064 +f 3665/4303/20065 3666/4302/20066 3670/4307/20067 +f 3670/4307/20068 3668/4306/20069 3665/4303/20070 +f 3668/4306/20071 3670/4307/20072 3671/4308/20073 +f 3671/4308/20074 3669/4305/20075 3668/4306/20076 +f 3673/4311/20077 3672/4312/20078 3675/4309/20079 +f 3675/4309/20080 3674/4310/20081 3673/4311/20082 +f 3677/4314/20083 3676/4315/20084 3675/4309/20085 +f 3675/4309/20086 3678/4313/20087 3677/4314/20088 +f 3679/4316/20089 3674/4310/20090 3675/4309/20091 +f 3675/4309/20092 3676/4315/20093 3679/4316/20094 +f 3681/4318/20095 3680/4319/20096 3682/4317/20097 +f 3682/4317/20098 3666/4302/20099 3681/4318/20100 +f 3671/4308/20101 3683/4322/20102 3685/4320/20103 +f 3685/4320/20104 3684/4321/20105 3671/4308/20106 +f 3671/4308/20107 3670/4307/20108 3686/4323/20109 +f 3686/4323/20110 3683/4322/20111 3671/4308/20112 +f 3687/4325/20113 3669/4305/20114 3671/4308/20115 +f 3671/4308/20116 3688/4324/20117 3687/4325/20118 +f 3689/4326/20119 3688/4324/20120 3671/4308/20121 +f 3671/4308/20122 3684/4321/20123 3689/4326/20124 +f 3685/4320/20125 3690/4328/20126 3691/4327/20127 +f 3691/4327/20128 3684/4321/20129 3685/4320/20130 +f 3685/4320/20131 3683/4330/20132 3692/4329/20133 +f 3692/4329/20134 3690/4328/20135 3685/4320/20136 +f 3678/4313/20137 3675/4309/20138 3662/4300/20139 +f 3662/4300/20140 3693/4331/20141 3678/4313/20142 +f 3694/4332/20143 3677/4314/20144 3678/4313/20145 +f 3678/4313/20146 3693/4331/20147 3694/4332/20148 +f 3680/4335/20149 3681/4336/20150 3696/4333/20151 +f 3696/4333/20152 3695/4334/20153 3680/4335/20154 +f 3680/4335/20155 3695/4334/20156 3697/4337/20157 +f 3697/4337/20158 3682/4338/20159 3680/4335/20160 +f 3690/4328/20161 3692/4329/20162 3698/4339/20163 +f 3698/4339/20164 3691/4327/20165 3690/4328/20166 +f 3700/4342/20167 3699/4343/20168 3702/4340/20169 +f 3702/4340/20170 3701/4341/20171 3700/4342/20172 +f 3702/4340/20173 3699/4343/20174 3679/4316/20175 +f 3702/4340/20176 3703/4345/20177 3704/4344/20178 +f 3704/4344/20179 3701/4341/20180 3702/4340/20181 +f 3561/4189/20182 3705/4348/20183 3707/4346/20184 +f 3707/4346/20185 3706/4347/20186 3561/4189/20187 +f 3561/4189/20188 3562/4191/20189 3708/4349/20190 +f 3708/4349/20191 3705/4348/20192 3561/4189/20193 +f 3561/4189/20194 3706/4347/20195 3710/4350/20196 +f 3710/4350/20197 3709/4351/20198 3561/4189/20199 +f 3712/4352/20200 3711/4353/20201 3695/4334/20202 +f 3695/4334/20203 3696/4333/20204 3712/4352/20205 +f 3714/4356/20206 3713/4357/20207 3716/4354/20208 +f 3716/4354/20209 3715/4355/20210 3714/4356/20211 +f 3714/4356/20212 3715/4355/20213 3718/4358/20214 +f 3718/4358/20215 3717/4359/20216 3714/4356/20217 +f 3714/4356/20218 3717/4359/20219 3720/4360/20220 +f 3720/4360/20221 3719/4361/20222 3714/4356/20223 +f 3693/4331/20224 3721/4362/20225 3694/4332/20226 +f 3721/4362/20227 3722/4364/20228 3723/4363/20229 +f 3723/4363/20230 3694/4332/20231 3721/4362/20232 +f 3722/4364/20233 3724/4365/20234 3723/4363/20235 +f 3725/4367/20236 3703/4345/20237 3702/4340/20238 +f 3702/4340/20239 3726/4366/20240 3725/4367/20241 +f 3725/4367/20242 3726/4366/20243 3728/4368/20244 +f 3728/4368/20245 3727/4369/20246 3725/4367/20247 +f 3725/4367/20248 3727/4369/20249 3717/4359/20250 +f 3717/4359/20251 3718/4358/20252 3725/4367/20253 +f 3727/4369/20254 3728/4368/20255 3723/4363/20256 +f 3723/4363/20257 3724/4365/20258 3727/4369/20259 +f 3727/4369/20260 3724/4365/20261 3720/4360/20262 +f 3720/4360/20263 3717/4359/20264 3727/4369/20265 +f 3728/4368/20266 3677/4314/20267 3694/4332/20268 +f 3694/4332/20269 3723/4363/20270 3728/4368/20271 +f 3728/4368/20272 3726/4366/20273 3676/4315/20274 +f 3676/4315/20275 3677/4314/20276 3728/4368/20277 +f 3676/4315/20278 3726/4366/20279 3702/4340/20280 +f 3702/4340/20281 3679/4316/20282 3676/4315/20283 +f 3729/4370/20284 3674/4310/20285 3679/4316/20286 +f 3679/4316/20287 3699/4343/20288 3729/4370/20289 +f 3729/4370/20290 3699/4343/20291 3601/4371/20292 +f 3601/4371/20293 3730/4372/20294 3729/4370/20295 +f 3731/4374/20296 3729/4370/20297 3730/4372/20298 +f 3730/4372/20299 3732/4373/20300 3731/4374/20301 +f 3597/4236/20302 3733/4376/20303 3730/4375/20304 +f 3730/4375/20305 3601/4237/20306 3597/4236/20307 +f 3734/4377/20308 3732/4378/20309 3730/4375/20310 +f 3730/4375/20311 3733/4376/20312 3734/4377/20313 +f 3734/4377/20314 3733/4376/20315 3736/4379/20316 +f 3736/4379/20317 3735/4380/20318 3734/4377/20319 +f 3737/4382/20320 3734/4377/20321 3735/4380/20322 +f 3735/4380/20323 3738/4381/20324 3737/4382/20325 +f 3740/4383/20326 3739/4384/20327 3735/4380/20328 +f 3735/4380/20329 3736/4379/20330 3740/4383/20331 +f 3741/4385/20332 3738/4381/20333 3735/4380/20334 +f 3735/4380/20335 3739/4384/20336 3741/4385/20337 +f 3741/4385/20338 3739/4384/20339 3743/4386/20340 +f 3743/4386/20341 3742/4387/20342 3741/4385/20343 +f 3745/4388/20344 3744/4389/20345 3742/4387/20346 +f 3742/4387/20347 3743/4386/20348 3745/4388/20349 +f 3747/4390/20350 3746/4391/20351 3742/4387/20352 +f 3742/4387/20353 3744/4389/20354 3747/4390/20355 +f 3747/4390/20356 3744/4389/20357 3749/4392/20358 +f 3749/4392/20359 3748/4393/20360 3747/4390/20361 +f 3748/4393/20362 3749/4392/20363 3751/4394/20364 +f 3751/4394/20365 3750/4395/20366 3748/4393/20367 +f 3753/4396/20368 3752/4397/20369 3750/4395/20370 +f 3750/4395/20371 3751/4394/20372 3753/4396/20373 +f 3748/4393/20374 3754/4399/20375 3755/4398/20376 +f 3755/4398/20377 3747/4390/20378 3748/4393/20379 +f 3748/4393/20380 3750/4395/20381 3756/4400/20382 +f 3756/4400/20383 3754/4399/20384 3748/4393/20385 +f 3756/4400/20386 3750/4395/20387 3752/4397/20388 +f 3752/4397/20389 3757/4401/20390 3756/4400/20391 +f 3759/4403/20392 3758/4404/20393 3760/4402/20394 +f 3760/4402/20395 3746/4391/20396 3759/4403/20397 +f 3759/4403/20398 3746/4391/20399 3747/4390/20400 +f 3747/4390/20401 3755/4398/20402 3759/4403/20403 +f 3741/4385/20404 3742/4387/20405 3746/4391/20406 +f 3746/4391/20407 3760/4402/20408 3741/4385/20409 +f 3741/4385/20410 3760/4402/20411 3761/4405/20412 +f 3761/4405/20413 3738/4381/20414 3741/4385/20415 +f 3738/4381/20416 3761/4405/20417 3762/4406/20418 +f 3762/4406/20419 3737/4382/20420 3738/4381/20421 +f 3732/4378/20422 3734/4377/20423 3737/4382/20424 +f 3737/4382/20425 3763/4407/20426 3732/4378/20427 +f 3732/4373/20428 3763/4409/20429 3764/4408/20430 +f 3764/4408/20431 3731/4374/20432 3732/4373/20433 +f 3765/4410/20434 3673/4311/20435 3731/4374/20436 +f 3731/4374/20437 3764/4408/20438 3765/4410/20439 +f 3674/4310/20440 3729/4370/20441 3731/4374/20442 +f 3731/4374/20443 3673/4311/20444 3674/4310/20445 +f 3766/4411/20446 3672/4312/20447 3673/4311/20448 +f 3673/4311/20449 3765/4410/20450 3766/4411/20451 +f 3767/4412/20452 3661/4298/20453 3672/4312/20454 +f 3672/4312/20455 3766/4411/20456 3767/4412/20457 +f 3658/4297/20458 3675/4309/20459 3672/4312/20460 +f 3672/4312/20461 3661/4298/20462 3658/4297/20463 +f 3658/4297/20464 3662/4300/20465 3675/4309/20466 +f 3612/4250/20467 3661/4298/20468 3767/4412/20469 +f 3767/4412/20470 3614/4251/20471 3612/4250/20472 +f 3769/4413/20473 3768/4414/20474 3766/4411/20475 +f 3766/4411/20476 3765/4410/20477 3769/4413/20478 +f 3769/4413/20479 3765/4410/20480 3764/4408/20481 +f 3764/4408/20482 3770/4415/20483 3769/4413/20484 +f 3770/4415/20485 3764/4408/20486 3763/4409/20487 +f 3763/4409/20488 3771/4416/20489 3770/4415/20490 +f 3737/4382/20491 3762/4406/20492 3771/4417/20493 +f 3771/4417/20494 3763/4407/20495 3737/4382/20496 +f 3762/4406/20497 3772/4419/20498 3773/4418/20499 +f 3773/4418/20500 3771/4417/20501 3762/4406/20502 +f 3762/4406/20503 3761/4405/20504 3774/4420/20505 +f 3774/4420/20506 3772/4419/20507 3762/4406/20508 +f 3761/4405/20509 3760/4402/20510 3758/4404/20511 +f 3758/4404/20512 3774/4420/20513 3761/4405/20514 +f 3773/4421/20515 3775/4422/20516 3770/4415/20517 +f 3770/4415/20518 3771/4416/20519 3773/4421/20520 +f 3775/4422/20521 3776/4423/20522 3769/4413/20523 +f 3769/4413/20524 3770/4415/20525 3775/4422/20526 +f 3769/4413/20527 3776/4423/20528 3777/4424/20529 +f 3777/4424/20530 3768/4414/20531 3769/4413/20532 +f 3767/4412/20533 3766/4411/20534 3768/4414/20535 +f 3768/4414/20536 3778/4425/20537 3767/4412/20538 +f 3767/4412/20539 3778/4425/20540 3779/4426/20541 +f 3779/4426/20542 3614/4251/20543 3767/4412/20544 +f 3610/4246/20545 3614/4251/20546 3779/4426/20547 +f 3779/4426/20548 3632/4268/20549 3610/4246/20550 +f 3779/4426/20551 3780/4428/20552 3781/4427/20553 +f 3781/4427/20554 3632/4268/20555 3779/4426/20556 +f 3779/4426/20557 3778/4425/20558 3782/4429/20559 +f 3782/4429/20560 3780/4428/20561 3779/4426/20562 +f 3782/4429/20563 3778/4425/20564 3768/4414/20565 +f 3768/4414/20566 3777/4424/20567 3782/4429/20568 +f 3784/4430/20569 3783/4431/20570 3649/4285/20571 +f 3649/4285/20572 3631/4269/20573 3784/4430/20574 +f 3784/4430/20575 3631/4269/20576 3632/4268/20577 +f 3632/4268/20578 3781/4427/20579 3784/4430/20580 +f 3649/4285/20581 3783/4431/20582 3786/4432/20583 +f 3786/4432/20584 3785/4433/20585 3649/4285/20586 +f 3785/4433/20587 3648/4286/20588 3649/4285/20589 +f 3630/4270/20590 3631/4269/20591 3649/4285/20592 +f 3649/4285/20593 3650/4284/20594 3630/4270/20595 +f 3648/4286/20596 3785/4433/20597 3788/4434/20598 +f 3788/4434/20599 3787/4435/20600 3648/4286/20601 +f 3789/4436/20602 3647/4287/20603 3648/4286/20604 +f 3648/4286/20605 3787/4435/20606 3789/4436/20607 +f 3789/4436/20608 3787/4435/20609 3790/4437/20610 +f 3790/4437/20611 3569/4438/20612 3789/4436/20613 +f 3789/4436/20614 3569/4438/20615 3564/4219/20616 +f 3564/4219/20617 3586/4218/20618 3789/4436/20619 +f 3789/4436/20620 3586/4218/20621 3652/4288/20622 +f 3652/4288/20623 3647/4287/20624 3789/4436/20625 +f 3569/4199/20626 3790/4440/20627 3791/4439/20628 +f 3791/4439/20629 3570/4198/20630 3569/4199/20631 +f 3570/4198/20632 3791/4439/20633 3793/4441/20634 +f 3793/4441/20635 3792/4442/20636 3570/4198/20637 +f 3795/4443/20638 3794/4444/20639 3792/4442/20640 +f 3792/4442/20641 3793/4441/20642 3795/4443/20643 +f 3792/4442/20644 3794/4444/20645 3797/4445/20646 +f 3797/4445/20647 3796/4446/20648 3792/4442/20649 +f 3792/4442/20650 3796/4446/20651 3563/4195/20652 +f 3563/4195/20653 3570/4198/20654 3792/4442/20655 +f 3796/4446/20656 3797/4445/20657 3799/4447/20658 +f 3799/4447/20659 3798/4448/20660 3796/4446/20661 +f 3796/4446/20662 3798/4448/20663 3566/4192/20664 +f 3566/4192/20665 3563/4195/20666 3796/4446/20667 +f 3798/4448/20668 3799/4447/20669 3801/4449/20670 +f 3801/4449/20671 3800/4450/20672 3798/4448/20673 +f 3798/4448/20674 3800/4450/20675 3802/4451/20676 +f 3802/4451/20677 3566/4192/20678 3798/4448/20679 +f 3802/4451/20680 3800/4450/20681 3536/4162/20682 +f 3536/4162/20683 3537/4161/20684 3802/4451/20685 +f 3802/4451/20686 3537/4161/20687 3804/4452/20688 +f 3804/4452/20689 3803/4453/20690 3802/4451/20691 +f 3802/4451/20692 3803/4453/20693 3565/4193/20694 +f 3565/4193/20695 3566/4192/20696 3802/4451/20697 +f 3803/4453/20698 3804/4452/20699 3806/4454/20700 +f 3806/4454/20701 3805/4455/20702 3803/4453/20703 +f 3803/4453/20704 3805/4455/20705 3568/4196/20706 +f 3568/4196/20707 3565/4193/20708 3803/4453/20709 +f 3805/4456/20710 3806/4457/20711 3637/4273/20712 +f 3637/4273/20713 3617/4252/20714 3805/4456/20715 +f 3805/4456/20716 3617/4252/20717 3585/4214/20718 +f 3585/4214/20719 3568/4217/20720 3805/4456/20721 +f 3806/4457/20722 3807/4459/20723 3808/4458/20724 +f 3808/4458/20725 3637/4273/20726 3806/4457/20727 +f 3806/4454/20728 3804/4452/20729 3809/4460/20730 +f 3809/4460/20731 3807/4461/20732 3806/4454/20733 +f 3809/4460/20734 3810/4463/20735 3811/4462/20736 +f 3811/4462/20737 3807/4461/20738 3809/4460/20739 +f 3809/4460/20740 3804/4452/20741 3537/4161/20742 +f 3537/4161/20743 3538/4163/20744 3809/4460/20745 +f 3809/4460/20746 3538/4163/20747 3812/4464/20748 +f 3812/4464/20749 3810/4463/20750 3809/4460/20751 +f 3812/4464/20752 3813/4466/20753 3814/4465/20754 +f 3814/4465/20755 3810/4463/20756 3812/4464/20757 +f 3812/4464/20758 3538/4163/20759 3534/4158/20760 +f 3534/4158/20761 3815/4467/20762 3812/4464/20763 +f 3812/4464/20764 3815/4467/20765 3816/4468/20766 +f 3816/4468/20767 3813/4466/20768 3812/4464/20769 +f 3816/4468/20770 3817/4470/20771 3818/4469/20772 +f 3818/4469/20773 3813/4466/20774 3816/4468/20775 +f 3816/4468/20776 3815/4467/20777 3820/4471/20778 +f 3820/4471/20779 3819/4472/20780 3816/4468/20781 +f 3816/4468/20782 3819/4472/20783 3821/4473/20784 +f 3821/4473/20785 3817/4470/20786 3816/4468/20787 +f 3821/4473/20788 3572/4201/20789 3573/4200/20790 +f 3573/4200/20791 3817/4470/20792 3821/4473/20793 +f 3821/4473/20794 3819/4472/20795 3822/4474/20796 +f 3822/4474/20797 3583/4213/20798 3821/4473/20799 +f 3821/4473/20800 3583/4213/20801 3576/4205/20802 +f 3576/4205/20803 3572/4201/20804 3821/4473/20805 +f 3822/4474/20806 3819/4472/20807 3820/4471/20808 +f 3820/4471/20809 3823/4475/20810 3822/4474/20811 +f 3824/4476/20812 3605/4242/20813 3596/4233/20814 +f 3824/4476/20815 3825/4479/20816 3827/4477/20817 +f 3827/4477/20818 3826/4478/20819 3824/4476/20820 +f 3824/4476/20821 3826/4478/20822 3606/4243/20823 +f 3606/4243/20824 3605/4242/20825 3824/4476/20826 +f 3826/4478/20827 3827/4477/20828 3829/4480/20829 +f 3829/4480/20830 3828/4481/20831 3826/4478/20832 +f 3826/4478/20833 3828/4481/20834 3607/4244/20835 +f 3607/4244/20836 3606/4243/20837 3826/4478/20838 +f 3828/4481/20839 3829/4480/20840 3830/4482/20841 +f 3830/4482/20842 3590/4223/20843 3828/4481/20844 +f 3828/4481/20845 3590/4223/20846 3591/4227/20847 +f 3591/4227/20848 3607/4244/20849 3828/4481/20850 +f 3830/4482/20851 3829/4480/20852 3832/4483/20853 +f 3832/4483/20854 3831/4484/20855 3830/4482/20856 +f 3830/4482/20857 3831/4484/20858 3833/4485/20859 +f 3833/4485/20860 3589/4224/20861 3830/4482/20862 +f 3830/4482/20863 3589/4224/20864 3590/4223/20865 +f 3833/4485/20866 3831/4484/20867 3835/4486/20868 +f 3835/4486/20869 3834/4487/20870 3833/4485/20871 +f 3833/4485/20872 3834/4487/20873 3836/4488/20874 +f 3836/4488/20875 3582/4209/20876 3833/4485/20877 +f 3833/4485/20878 3582/4209/20879 3580/4212/20880 +f 3580/4212/20881 3589/4224/20882 3833/4485/20883 +f 3836/4488/20884 3834/4487/20885 3837/4489/20886 +f 3837/4489/20887 3808/4458/20888 3836/4488/20889 +f 3836/4488/20890 3808/4458/20891 3807/4459/20892 +f 3807/4459/20893 3811/4490/20894 3836/4488/20895 +f 3836/4488/20896 3811/4490/20897 3581/4210/20898 +f 3581/4210/20899 3582/4209/20900 3836/4488/20901 +f 3837/4489/20902 3834/4487/20903 3835/4486/20904 +f 3835/4486/20905 3838/4491/20906 3837/4489/20907 +f 3837/4489/20908 3838/4491/20909 3839/4492/20910 +f 3839/4492/20911 3636/4274/20912 3837/4489/20913 +f 3837/4489/20914 3636/4274/20915 3637/4273/20916 +f 3637/4273/20917 3808/4458/20918 3837/4489/20919 +f 3839/4492/20920 3838/4491/20921 3840/4493/20922 +f 3840/4493/20923 3625/4261/20924 3839/4492/20925 +f 3839/4492/20926 3625/4261/20927 3626/4260/20928 +f 3626/4260/20929 3638/4276/20930 3839/4492/20931 +f 3839/4492/20932 3638/4276/20933 3616/4253/20934 +f 3616/4253/20935 3636/4274/20936 3839/4492/20937 +f 3840/4493/20938 3841/4496/20939 3843/4494/20940 +f 3843/4494/20941 3842/4495/20942 3840/4493/20943 +f 3840/4493/20944 3842/4495/20945 3629/4266/20946 +f 3629/4266/20947 3625/4261/20948 3840/4493/20949 +f 3840/4493/20950 3838/4491/20951 3835/4486/20952 +f 3835/4486/20953 3841/4496/20954 3840/4493/20955 +f 3842/4495/20956 3843/4494/20957 3845/4497/20958 +f 3845/4497/20959 3844/4498/20960 3842/4495/20961 +f 3842/4495/20962 3844/4498/20963 3846/4499/20964 +f 3846/4499/20965 3629/4266/20966 3842/4495/20967 +f 3846/4499/20968 3847/4500/20969 3628/4264/20970 +f 3628/4264/20971 3629/4266/20972 3846/4499/20973 +f 3845/4497/20974 3843/4494/20975 3849/4501/20976 +f 3849/4501/20977 3848/4502/20978 3845/4497/20979 +f 3849/4501/20980 3827/4477/20981 3825/4479/20982 +f 3825/4479/20983 3848/4502/20984 3849/4501/20985 +f 3849/4501/20986 3843/4494/20987 3841/4496/20988 +f 3841/4496/20989 3832/4483/20990 3849/4501/20991 +f 3849/4501/20992 3832/4483/20993 3829/4480/20994 +f 3829/4480/20995 3827/4477/20996 3849/4501/20997 +f 3841/4496/20998 3835/4486/20999 3831/4484/21000 +f 3831/4484/21001 3832/4483/21002 3841/4496/21003 +f 3850/4504/21004 3823/4475/21005 3820/4471/21006 +f 3820/4471/21007 3851/4503/21008 3850/4504/21009 +f 3850/4504/21010 3851/4503/21011 3540/4166/21012 +f 3540/4166/21013 3543/4169/21014 3850/4504/21015 +f 3851/4503/21016 3820/4471/21017 3815/4467/21018 +f 3815/4467/21019 3534/4158/21020 3851/4503/21021 +f 3851/4503/21022 3534/4158/21023 3535/4157/21024 +f 3535/4157/21025 3540/4166/21026 3851/4503/21027 +f 3818/4469/21028 3575/4203/21029 3578/4208/21030 +f 3818/4469/21031 3578/4208/21032 3814/4465/21033 +f 3814/4465/21034 3813/4466/21035 3818/4469/21036 +f 3818/4469/21037 3817/4470/21038 3573/4200/21039 +f 3573/4200/21040 3575/4203/21041 3818/4469/21042 +f 3814/4465/21043 3578/4208/21044 3579/4207/21045 +f 3579/4207/21046 3581/4505/21047 3814/4465/21048 +f 3814/4465/21049 3581/4505/21050 3811/4462/21051 +f 3811/4462/21052 3810/4463/21053 3814/4465/21054 +f 3799/4447/21055 3797/4445/21056 3518/4144/21057 +f 3518/4144/21058 3519/4143/21059 3799/4447/21060 +f 3799/4447/21061 3519/4143/21062 3530/4154/21063 +f 3530/4154/21064 3801/4449/21065 3799/4447/21066 +f 3797/4445/21067 3794/4444/21068 3520/4145/21069 +f 3520/4145/21070 3518/4144/21071 3797/4445/21072 +f 3520/4145/21073 3794/4444/21074 3494/4115/21075 +f 3494/4115/21076 3491/4118/21077 3520/4145/21078 +f 3791/4439/21079 3852/4507/21080 3853/4506/21081 +f 3853/4506/21082 3793/4441/21083 3791/4439/21084 +f 3852/4507/21085 3791/4439/21086 3855/4508/21087 +f 3855/4508/21088 3854/4509/21089 3852/4507/21090 +f 3857/4512/21091 3856/4513/21092 3859/4510/21093 +f 3859/4510/21094 3858/4511/21095 3857/4512/21096 +f 3857/4512/21097 3860/4515/21098 3861/4514/21099 +f 3861/4514/21100 3856/4513/21101 3857/4512/21102 +f 3862/4517/21103 3856/4513/21104 3861/4514/21105 +f 3861/4514/21106 3863/4516/21107 3862/4517/21108 +f 3861/4514/21109 3860/4515/21110 3757/4401/21111 +f 3757/4401/21112 3752/4397/21113 3861/4514/21114 +f 3859/4510/21115 3856/4513/21116 3862/4517/21117 +f 3862/4517/21118 3506/4131/21119 3859/4510/21120 +f 3863/4516/21121 3861/4514/21122 3752/4397/21123 +f 3752/4397/21124 3753/4396/21125 3863/4516/21126 +f 3864/4519/21127 3753/4396/21128 3751/4394/21129 +f 3751/4394/21130 3865/4518/21131 3864/4519/21132 +f 3866/4520/21133 3865/4518/21134 3751/4394/21135 +f 3751/4394/21136 3749/4392/21137 3866/4520/21138 +f 3866/4520/21139 3749/4392/21140 3744/4389/21141 +f 3744/4389/21142 3745/4388/21143 3866/4520/21144 +f 3460/4084/21145 3864/4519/21146 3865/4518/21147 +f 3865/4518/21148 3459/4080/21149 3460/4084/21150 +f 3458/4081/21151 3459/4080/21152 3865/4518/21153 +f 3865/4518/21154 3866/4520/21155 3458/4081/21156 +f 3458/4081/21157 3866/4520/21158 3745/4388/21159 +f 3745/4388/21160 3867/4521/21161 3458/4081/21162 +f 3868/4522/21163 3457/4082/21164 3458/4081/21165 +f 3458/4081/21166 3867/4521/21167 3868/4522/21168 +f 3868/4522/21169 3867/4521/21170 3870/4523/21171 +f 3870/4523/21172 3869/4524/21173 3868/4522/21174 +f 3871/4525/21175 3440/4062/21176 3868/4522/21177 +f 3868/4522/21178 3869/4524/21179 3871/4525/21180 +f 3436/4059/21181 3457/4082/21182 3868/4522/21183 +f 3868/4522/21184 3440/4062/21185 3436/4059/21186 +f 3445/4067/21187 3457/4082/21188 3436/4059/21189 +f 3436/4059/21190 3431/4054/21191 3445/4067/21192 +f 3423/4047/21193 3445/4067/21194 3431/4054/21195 +f 3431/4054/21196 3419/4045/21197 3423/4047/21198 +f 3873/4526/21199 3872/4527/21200 3871/4525/21201 +f 3871/4525/21202 3869/4524/21203 3873/4526/21204 +f 3871/4525/21205 3872/4527/21206 3875/4528/21207 +f 3875/4528/21208 3874/4529/21209 3871/4525/21210 +f 3871/4525/21211 3874/4529/21212 3439/4063/21213 +f 3439/4063/21214 3440/4062/21215 3871/4525/21216 +f 3874/4529/21217 3875/4528/21218 3877/4530/21219 +f 3877/4530/21220 3876/4531/21221 3874/4529/21222 +f 3874/4529/21223 3876/4531/21224 3441/4064/21225 +f 3441/4064/21226 3439/4063/21227 3874/4529/21228 +f 3876/4531/21229 3877/4530/21230 3467/4532/21231 +f 3467/4532/21232 3878/4533/21233 3876/4531/21234 +f 3876/4531/21235 3878/4533/21236 3879/4534/21237 +f 3879/4534/21238 3441/4064/21239 3876/4531/21240 +f 3416/4039/21241 3415/4038/21242 3879/4535/21243 +f 3879/4535/21244 3878/4536/21245 3416/4039/21246 +f 3879/4534/21247 3880/4537/21248 3437/4061/21249 +f 3437/4061/21250 3441/4064/21251 3879/4534/21252 +f 3880/4537/21253 3881/4538/21254 3438/4060/21255 +f 3438/4060/21256 3437/4061/21257 3880/4537/21258 +f 3881/4538/21259 3882/4540/21260 3883/4539/21261 +f 3883/4539/21262 3438/4060/21263 3881/4538/21264 +f 3883/4539/21265 3882/4540/21266 3885/4541/21267 +f 3885/4541/21268 3884/4542/21269 3883/4539/21270 +f 3883/4539/21271 3884/4542/21272 3887/4543/21273 +f 3887/4543/21274 3886/4544/21275 3883/4539/21276 +f 3883/4539/21277 3886/4544/21278 3434/4058/21279 +f 3434/4058/21280 3438/4060/21281 3883/4539/21282 +f 3886/4544/21283 3887/4543/21284 3888/4545/21285 +f 3888/4545/21286 3456/4079/21287 3886/4544/21288 +f 3886/4544/21289 3456/4079/21290 3430/4051/21291 +f 3430/4051/21292 3434/4058/21293 3886/4544/21294 +f 3888/4545/21295 3887/4543/21296 3890/4546/21297 +f 3890/4546/21298 3889/4547/21299 3888/4545/21300 +f 3888/4545/21301 3889/4547/21302 3892/4548/21303 +f 3892/4548/21304 3891/4549/21305 3888/4545/21306 +f 3888/4545/21307 3891/4549/21308 3455/4077/21309 +f 3455/4077/21310 3456/4079/21311 3888/4545/21312 +f 3891/4549/21313 3892/4548/21314 3562/4191/21315 +f 3562/4191/21316 3558/4186/21317 3891/4549/21318 +f 3891/4549/21319 3558/4186/21320 3893/4550/21321 +f 3893/4550/21322 3455/4077/21323 3891/4549/21324 +f 3893/4550/21325 3513/4138/21326 3454/4078/21327 +f 3454/4078/21328 3455/4077/21329 3893/4550/21330 +f 3893/4550/21331 3558/4186/21332 3559/4185/21333 +f 3559/4185/21334 3894/4551/21335 3893/4550/21336 +f 3893/4550/21337 3894/4551/21338 3512/4136/21339 +f 3512/4136/21340 3513/4138/21341 3893/4550/21342 +f 3894/4551/21343 3895/4553/21344 3896/4552/21345 +f 3896/4552/21346 3512/4136/21347 3894/4551/21348 +f 3894/4551/21349 3559/4185/21350 3897/4554/21351 +f 3897/4554/21352 3895/4553/21353 3894/4551/21354 +f 3897/4554/21355 3898/4556/21356 3899/4555/21357 +f 3899/4555/21358 3895/4553/21359 3897/4554/21360 +f 3897/4554/21361 3559/4185/21362 3556/4188/21363 +f 3556/4188/21364 3900/4557/21365 3897/4554/21366 +f 3897/4554/21367 3900/4557/21368 3901/4558/21369 +f 3901/4558/21370 3898/4556/21371 3897/4554/21372 +f 3901/4558/21373 3902/4560/21374 3903/4559/21375 +f 3903/4559/21376 3898/4556/21377 3901/4558/21378 +f 3901/4558/21379 3900/4557/21380 3905/4561/21381 +f 3905/4561/21382 3904/4562/21383 3901/4558/21384 +f 3901/4558/21385 3904/4562/21386 3906/4563/21387 +f 3906/4563/21388 3902/4560/21389 3901/4558/21390 +f 3906/4563/21391 3907/4565/21392 3908/4564/21393 +f 3908/4564/21394 3902/4560/21395 3906/4563/21396 +f 3906/4563/21397 3904/4562/21398 3910/4566/21399 +f 3910/4566/21400 3909/4567/21401 3906/4563/21402 +f 3906/4563/21403 3909/4567/21404 3911/4568/21405 +f 3911/4568/21406 3907/4565/21407 3906/4563/21408 +f 3911/4568/21409 3626/4260/21410 3623/4263/21411 +f 3623/4263/21412 3907/4565/21413 3911/4568/21414 +f 3911/4568/21415 3909/4567/21416 3912/4569/21417 +f 3912/4569/21418 3639/4275/21419 3911/4568/21420 +f 3911/4568/21421 3639/4275/21422 3638/4276/21423 +f 3638/4276/21424 3626/4260/21425 3911/4568/21426 +f 3912/4569/21427 3909/4567/21428 3910/4566/21429 +f 3910/4566/21430 3913/4570/21431 3912/4569/21432 +f 3912/4569/21433 3913/4570/21434 3643/4282/21435 +f 3643/4282/21436 3914/4571/21437 3912/4569/21438 +f 3912/4569/21439 3914/4571/21440 3619/4255/21441 +f 3619/4255/21442 3639/4275/21443 3912/4569/21444 +f 3914/4571/21445 3643/4282/21446 3641/4279/21447 +f 3641/4279/21448 3915/4572/21449 3914/4571/21450 +f 3914/4571/21451 3915/4572/21452 3618/4256/21453 +f 3618/4256/21454 3619/4255/21455 3914/4571/21456 +f 3913/4570/21457 3910/4566/21458 3917/4573/21459 +f 3917/4573/21460 3916/4574/21461 3913/4570/21462 +f 3913/4570/21463 3916/4574/21464 3645/4280/21465 +f 3645/4280/21466 3643/4282/21467 3913/4570/21468 +f 3916/4574/21469 3917/4573/21470 3919/4575/21471 +f 3919/4575/21472 3918/4576/21473 3916/4574/21474 +f 3918/4576/21475 3921/4577/21476 3920/4578/21477 +f 3916/4574/21478 3918/4576/21479 3920/4578/21480 +f 3920/4578/21481 3645/4280/21482 3916/4574/21483 +f 3920/4578/21484 3921/4577/21485 3922/4579/21486 +f 3920/4578/21487 3922/4579/21488 3924/4580/21489 +f 3924/4580/21490 3923/4581/21491 3920/4578/21492 +f 3920/4578/21493 3923/4581/21494 3644/4281/21495 +f 3644/4281/21496 3645/4280/21497 3920/4578/21498 +f 3923/4581/21499 3924/4580/21500 3926/4582/21501 +f 3926/4582/21502 3925/4583/21503 3923/4581/21504 +f 3923/4581/21505 3925/4583/21506 3646/4283/21507 +f 3646/4283/21508 3644/4281/21509 3923/4581/21510 +f 3925/4583/21511 3926/4582/21512 3928/4584/21513 +f 3928/4584/21514 3927/4585/21515 3925/4583/21516 +f 3925/4583/21517 3927/4585/21518 3929/4586/21519 +f 3929/4586/21520 3646/4283/21521 3925/4583/21522 +f 3929/4586/21523 3930/4587/21524 3642/4278/21525 +f 3642/4278/21526 3646/4283/21527 3929/4586/21528 +f 3929/4586/21529 3927/4585/21530 3714/4356/21531 +f 3714/4356/21532 3719/4361/21533 3929/4586/21534 +f 3929/4586/21535 3719/4361/21536 3931/4588/21537 +f 3931/4588/21538 3930/4587/21539 3929/4586/21540 +f 3931/4588/21541 3659/4296/21542 3660/4295/21543 +f 3660/4295/21544 3930/4587/21545 3931/4588/21546 +f 3931/4588/21547 3719/4361/21548 3720/4360/21549 +f 3720/4360/21550 3932/4589/21551 3931/4588/21552 +f 3931/4588/21553 3932/4589/21554 3663/4299/21555 +f 3663/4299/21556 3659/4296/21557 3931/4588/21558 +f 3932/4589/21559 3720/4360/21560 3724/4365/21561 +f 3724/4365/21562 3722/4364/21563 3932/4589/21564 +f 3932/4589/21565 3722/4364/21566 3721/4362/21567 +f 3721/4362/21568 3663/4299/21569 3932/4589/21570 +f 3930/4587/21571 3660/4295/21572 3640/4277/21573 +f 3640/4277/21574 3642/4278/21575 3930/4587/21576 +f 3927/4585/21577 3928/4584/21578 3713/4357/21579 +f 3713/4357/21580 3714/4356/21581 3927/4585/21582 +f 3933/4590/21583 3921/4577/21584 3918/4576/21585 +f 3933/4590/21586 3918/4576/21587 3935/4591/21588 +f 3935/4591/21589 3934/4592/21590 3933/4590/21591 +f 3934/4592/21592 3935/4591/21593 3937/4593/21594 +f 3937/4593/21595 3936/4594/21596 3934/4592/21597 +f 3937/4593/21598 3935/4591/21599 3939/4595/21600 +f 3939/4595/21601 3938/4596/21602 3937/4593/21603 +f 3937/4593/21604 3938/4596/21605 3718/4358/21606 +f 3718/4358/21607 3715/4355/21608 3937/4593/21609 +f 3937/4593/21610 3715/4355/21611 3716/4354/21612 +f 3716/4354/21613 3936/4594/21614 3937/4593/21615 +f 3938/4596/21616 3939/4595/21617 3709/4351/21618 +f 3709/4351/21619 3710/4350/21620 3938/4596/21621 +f 3938/4596/21622 3710/4350/21623 3725/4367/21624 +f 3725/4367/21625 3718/4358/21626 3938/4596/21627 +f 3939/4595/21628 3918/4576/21629 3919/4575/21630 +f 3919/4575/21631 3709/4351/21632 3939/4595/21633 +f 3939/4595/21634 3935/4591/21635 3918/4576/21636 +f 3919/4575/21637 3917/4573/21638 3905/4561/21639 +f 3905/4561/21640 3560/4190/21641 3919/4575/21642 +f 3919/4575/21643 3560/4190/21644 3561/4189/21645 +f 3561/4189/21646 3709/4351/21647 3919/4575/21648 +f 3917/4573/21649 3910/4566/21650 3904/4562/21651 +f 3904/4562/21652 3905/4561/21653 3917/4573/21654 +f 3908/4564/21655 3627/4265/21656 3542/4164/21657 +f 3542/4164/21658 3940/4597/21659 3908/4564/21660 +f 3908/4564/21661 3940/4597/21662 3903/4559/21663 +f 3903/4559/21664 3902/4560/21665 3908/4564/21666 +f 3908/4564/21667 3907/4565/21668 3623/4263/21669 +f 3623/4263/21670 3627/4265/21671 3908/4564/21672 +f 3940/4597/21673 3542/4164/21674 3539/4167/21675 +f 3539/4167/21676 3941/4598/21677 3940/4597/21678 +f 3940/4597/21679 3941/4598/21680 3942/4599/21681 +f 3942/4599/21682 3903/4559/21683 3940/4597/21684 +f 3942/4599/21685 3941/4598/21686 3944/4600/21687 +f 3944/4600/21688 3943/4601/21689 3942/4599/21690 +f 3942/4599/21691 3943/4601/21692 3945/4602/21693 +f 3945/4602/21694 3899/4555/21695 3942/4599/21696 +f 3942/4599/21697 3899/4555/21698 3898/4556/21699 +f 3898/4556/21700 3903/4559/21701 3942/4599/21702 +f 3945/4602/21703 3943/4601/21704 3947/4603/21705 +f 3947/4603/21706 3946/4604/21707 3945/4602/21708 +f 3945/4602/21709 3946/4604/21710 3948/4605/21711 +f 3948/4605/21712 3896/4552/21713 3945/4602/21714 +f 3945/4602/21715 3896/4552/21716 3895/4553/21717 +f 3895/4553/21718 3899/4555/21719 3945/4602/21720 +f 3948/4605/21721 3946/4604/21722 3950/4606/21723 +f 3950/4606/21724 3949/4607/21725 3948/4605/21726 +f 3948/4605/21727 3949/4607/21728 3488/4110/21729 +f 3488/4110/21730 3511/4137/21731 3948/4605/21732 +f 3948/4605/21733 3511/4137/21734 3512/4136/21735 +f 3512/4136/21736 3896/4552/21737 3948/4605/21738 +f 3949/4607/21739 3950/4606/21740 3490/4113/21741 +f 3490/4113/21742 3489/4114/21743 3949/4607/21744 +f 3949/4607/21745 3489/4114/21746 3487/4111/21747 +f 3487/4111/21748 3488/4110/21749 3949/4607/21750 +f 3950/4606/21751 3951/4609/21752 3952/4608/21753 +f 3952/4608/21754 3490/4113/21755 3950/4606/21756 +f 3950/4606/21757 3946/4604/21758 3947/4603/21759 +f 3947/4603/21760 3951/4609/21761 3950/4606/21762 +f 3952/4608/21763 3953/4610/21764 3492/4117/21765 +f 3492/4117/21766 3478/4099/21767 3952/4608/21768 +f 3952/4608/21769 3478/4099/21770 3475/4102/21771 +f 3475/4102/21772 3490/4113/21773 3952/4608/21774 +f 3952/4608/21775 3951/4609/21776 3528/4150/21777 +f 3528/4150/21778 3953/4610/21779 3952/4608/21780 +f 3953/4610/21781 3954/4611/21782 3491/4118/21783 +f 3491/4118/21784 3492/4117/21785 3953/4610/21786 +f 3953/4610/21787 3528/4150/21788 3525/4153/21789 +f 3525/4153/21790 3954/4611/21791 3953/4610/21792 +f 3951/4609/21793 3947/4603/21794 3527/4151/21795 +f 3527/4151/21796 3528/4150/21797 3951/4609/21798 +f 3947/4603/21799 3943/4601/21800 3944/4600/21801 +f 3944/4600/21802 3527/4151/21803 3947/4603/21804 +f 3944/4600/21805 3545/4170/21806 3531/4156/21807 +f 3531/4156/21808 3527/4151/21809 3944/4600/21810 +f 3944/4600/21811 3941/4598/21812 3539/4167/21813 +f 3539/4167/21814 3545/4170/21815 3944/4600/21816 +f 3905/4561/21817 3900/4557/21818 3556/4188/21819 +f 3556/4188/21820 3560/4190/21821 3905/4561/21822 +f 3892/4548/21823 3889/4547/21824 3956/4612/21825 +f 3956/4612/21826 3955/4613/21827 3892/4548/21828 +f 3892/4548/21829 3955/4613/21830 3708/4349/21831 +f 3708/4349/21832 3562/4191/21833 3892/4548/21834 +f 3955/4613/21835 3956/4612/21836 3958/4614/21837 +f 3958/4614/21838 3957/4615/21839 3955/4613/21840 +f 3955/4613/21841 3957/4615/21842 3959/4616/21843 +f 3959/4616/21844 3708/4349/21845 3955/4613/21846 +f 3959/4616/21847 3957/4615/21848 3961/4617/21849 +f 3961/4617/21850 3960/4618/21851 3959/4616/21852 +f 3959/4616/21853 3960/4618/21854 3963/4619/21855 +f 3963/4619/21856 3962/4620/21857 3959/4616/21858 +f 3959/4616/21859 3962/4620/21860 3705/4348/21861 +f 3705/4348/21862 3708/4349/21863 3959/4616/21864 +f 3962/4620/21865 3963/4619/21866 3965/4621/21867 +f 3965/4621/21868 3964/4622/21869 3962/4620/21870 +f 3962/4620/21871 3964/4622/21872 3707/4346/21873 +f 3707/4346/21874 3705/4348/21875 3962/4620/21876 +f 3964/4622/21877 3965/4621/21878 3967/4623/21879 +f 3967/4623/21880 3966/4624/21881 3964/4622/21882 +f 3964/4622/21883 3966/4624/21884 3704/4344/21885 +f 3704/4344/21886 3707/4346/21887 3964/4622/21888 +f 3966/4624/21889 3967/4623/21890 3969/4625/21891 +f 3969/4625/21892 3968/4626/21893 3966/4624/21894 +f 3966/4624/21895 3968/4626/21896 3701/4341/21897 +f 3701/4341/21898 3704/4344/21899 3966/4624/21900 +f 3968/4626/21901 3969/4625/21902 3971/4627/21903 +f 3971/4627/21904 3970/4628/21905 3968/4626/21906 +f 3968/4626/21907 3970/4628/21908 3700/4342/21909 +f 3700/4342/21910 3701/4341/21911 3968/4626/21912 +f 3970/4628/21913 3971/4627/21914 3972/4629/21915 +f 3972/4629/21916 3604/4630/21917 3970/4628/21918 +f 3970/4628/21919 3604/4630/21920 3600/4631/21921 +f 3600/4631/21922 3700/4342/21923 3970/4628/21924 +f 3972/4634/21925 3971/4635/21926 3974/4632/21927 +f 3974/4632/21928 3973/4633/21929 3972/4634/21930 +f 3972/4634/21931 3973/4633/21932 3976/4636/21933 +f 3976/4636/21934 3975/4637/21935 3972/4634/21936 +f 3972/4638/21937 3975/4639/21938 3602/4240/21939 +f 3602/4240/21940 3604/4241/21941 3972/4638/21942 +f 3975/4637/21943 3976/4636/21944 3978/4640/21945 +f 3978/4640/21946 3977/4641/21947 3975/4637/21948 +f 3975/4639/21949 3977/4642/21950 3603/4239/21951 +f 3603/4239/21952 3602/4240/21953 3975/4639/21954 +f 3976/4636/21955 3973/4633/21956 3980/4643/21957 +f 3980/4643/21958 3979/4644/21959 3976/4636/21960 +f 3976/4636/21961 3979/4644/21962 3981/4645/21963 +f 3981/4645/21964 3978/4640/21965 3976/4636/21966 +f 3981/4645/21967 3979/4644/21968 3983/4646/21969 +f 3983/4646/21970 3982/4647/21971 3981/4645/21972 +f 3981/4650/21973 3982/4651/21974 3985/4648/21975 +f 3985/4648/21976 3984/4649/21977 3981/4650/21978 +f 3981/4650/21979 3984/4649/21980 3554/4184/21981 +f 3554/4184/21982 3978/4652/21983 3981/4650/21984 +f 3984/4649/21985 3985/4648/21986 3987/4653/21987 +f 3987/4653/21988 3986/4654/21989 3984/4649/21990 +f 3984/4649/21991 3986/4654/21992 3555/4181/21993 +f 3555/4181/21994 3554/4184/21995 3984/4649/21996 +f 3987/4653/21997 3985/4648/21998 3989/4655/21999 +f 3989/4655/22000 3988/4656/22001 3987/4653/22002 +f 3987/4653/22003 3988/4656/22004 3991/4657/22005 +f 3991/4657/22006 3990/4658/22007 3987/4653/22008 +f 3987/4653/22009 3990/4658/22010 3555/4181/22011 +f 3555/4181/22012 3986/4654/22013 3987/4653/22014 +f 3990/4658/22015 3991/4657/22016 3993/4659/22017 +f 3993/4659/22018 3992/4660/22019 3990/4658/22020 +f 3990/4658/22021 3992/4660/22022 3621/4259/22023 +f 3621/4259/22024 3555/4181/22025 3990/4658/22026 +f 3992/4660/22027 3993/4659/22028 3995/4661/22029 +f 3995/4661/22030 3994/4662/22031 3992/4660/22032 +f 3992/4660/22033 3994/4662/22034 3996/4663/22035 +f 3996/4663/22036 3621/4259/22037 3992/4660/22038 +f 3996/4663/22039 3997/4664/22040 3622/4258/22041 +f 3622/4258/22042 3621/4259/22043 3996/4663/22044 +f 3996/4663/22045 3994/4662/22046 3999/4665/22047 +f 3999/4665/22048 3998/4666/22049 3996/4663/22050 +f 3996/4663/22051 3998/4666/22052 4000/4667/22053 +f 4000/4667/22054 3997/4664/22055 3996/4663/22056 +f 4000/4669/22057 3960/4618/22058 3961/4617/22059 +f 3961/4617/22060 3997/4668/22061 4000/4669/22062 +f 4000/4667/22063 3998/4666/22064 4002/4670/22065 +f 4002/4670/22066 4001/4671/22067 4000/4667/22068 +f 4000/4669/22069 4001/4672/22070 3963/4619/22071 +f 3963/4619/22072 3960/4618/22073 4000/4669/22074 +f 4001/4671/22075 4002/4670/22076 4004/4673/22077 +f 4004/4673/22078 4003/4674/22079 4001/4671/22080 +f 4001/4672/22081 4003/4675/22082 3965/4621/22083 +f 3965/4621/22084 3963/4619/22085 4001/4672/22086 +f 4003/4674/22087 4004/4673/22088 4006/4676/22089 +f 4006/4676/22090 4005/4677/22091 4003/4674/22092 +f 4003/4675/22093 4005/4678/22094 3967/4623/22095 +f 3967/4623/22096 3965/4621/22097 4003/4675/22098 +f 4005/4677/22099 4006/4676/22100 4008/4679/22101 +f 4008/4679/22102 4007/4680/22103 4005/4677/22104 +f 4005/4678/22105 4007/4681/22106 3969/4625/22107 +f 3969/4625/22108 3967/4623/22109 4005/4678/22110 +f 4007/4680/22111 4008/4679/22112 4009/4682/22113 +f 4009/4682/22114 3974/4632/22115 4007/4680/22116 +f 4007/4681/22117 3974/4683/22118 3971/4627/22119 +f 3971/4627/22120 3969/4625/22121 4007/4681/22122 +f 4009/4682/22123 4008/4679/22124 4011/4684/22125 +f 4011/4684/22126 4010/4685/22127 4009/4682/22128 +f 4009/4682/22129 4010/4685/22130 4012/4686/22131 +f 4012/4686/22132 3980/4643/22133 4009/4682/22134 +f 4009/4682/22135 3980/4643/22136 3973/4633/22137 +f 3973/4633/22138 3974/4632/22139 4009/4682/22140 +f 4012/4686/22141 4010/4685/22142 4014/4687/22143 +f 4014/4687/22144 4013/4688/22145 4012/4686/22146 +f 4012/4686/22147 4013/4688/22148 4015/4689/22149 +f 4015/4689/22150 3983/4646/22151 4012/4686/22152 +f 4012/4686/22153 3983/4646/22154 3979/4644/22155 +f 3979/4644/22156 3980/4643/22157 4012/4686/22158 +f 4015/4689/22159 4013/4688/22160 4017/4690/22161 +f 4017/4690/22162 4016/4691/22163 4015/4689/22164 +f 4015/4689/22165 4016/4691/22166 4019/4692/22167 +f 4019/4692/22168 4018/4693/22169 4015/4689/22170 +f 4015/4689/22171 4018/4693/22172 3982/4647/22173 +f 3982/4647/22174 3983/4646/22175 4015/4689/22176 +f 4018/4695/22177 4019/4696/22178 4020/4694/22179 +f 4020/4694/22180 3989/4655/22181 4018/4695/22182 +f 4018/4695/22183 3989/4655/22184 3985/4648/22185 +f 3985/4648/22186 3982/4651/22187 4018/4695/22188 +f 4020/4694/22189 4019/4696/22190 4022/4697/22191 +f 4022/4697/22192 4021/4698/22193 4020/4694/22194 +f 4020/4694/22195 4021/4698/22196 4024/4699/22197 +f 4024/4699/22198 4023/4700/22199 4020/4694/22200 +f 4020/4694/22201 4023/4700/22202 3988/4656/22203 +f 3988/4656/22204 3989/4655/22205 4020/4694/22206 +f 4023/4700/22207 4024/4699/22208 4026/4701/22209 +f 4026/4701/22210 4025/4702/22211 4023/4700/22212 +f 4023/4700/22213 4025/4702/22214 3991/4657/22215 +f 3991/4657/22216 3988/4656/22217 4023/4700/22218 +f 4025/4702/22219 4026/4701/22220 3687/4325/22221 +f 3687/4325/22222 4027/4703/22223 4025/4702/22224 +f 4025/4702/22225 4027/4703/22226 3993/4659/22227 +f 3993/4659/22228 3991/4657/22229 4025/4702/22230 +f 4027/4703/22231 3687/4325/22232 3688/4324/22233 +f 3688/4324/22234 4028/4704/22235 4027/4703/22236 +f 4027/4703/22237 4028/4704/22238 3995/4661/22239 +f 3995/4661/22240 3993/4659/22241 4027/4703/22242 +f 4028/4704/22243 3688/4324/22244 3689/4326/22245 +f 3689/4326/22246 4029/4705/22247 4028/4704/22248 +f 4028/4704/22249 4029/4705/22250 4030/4706/22251 +f 4030/4706/22252 3995/4661/22253 4028/4704/22254 +f 4030/4706/22255 3999/4665/22256 3994/4662/22257 +f 3994/4662/22258 3995/4661/22259 4030/4706/22260 +f 4030/4706/22261 4029/4705/22262 4032/4707/22263 +f 4032/4707/22264 4031/4708/22265 4030/4706/22266 +f 4030/4706/22267 4031/4708/22268 4033/4709/22269 +f 4033/4709/22270 3999/4665/22271 4030/4706/22272 +f 4033/4709/22273 4002/4670/22274 3998/4666/22275 +f 3998/4666/22276 3999/4665/22277 4033/4709/22278 +f 4033/4709/22279 4031/4708/22280 4035/4710/22281 +f 4035/4710/22282 4034/4711/22283 4033/4709/22284 +f 4033/4709/22285 4034/4711/22286 4004/4673/22287 +f 4004/4673/22288 4002/4670/22289 4033/4709/22290 +f 4034/4711/22291 4035/4710/22292 4037/4712/22293 +f 4037/4712/22294 4036/4713/22295 4034/4711/22296 +f 4034/4711/22297 4036/4713/22298 4006/4676/22299 +f 4006/4676/22300 4004/4673/22301 4034/4711/22302 +f 4036/4713/22303 4037/4712/22304 4038/4714/22305 +f 4038/4714/22306 4011/4684/22307 4036/4713/22308 +f 4036/4713/22309 4011/4684/22310 4008/4679/22311 +f 4008/4679/22312 4006/4676/22313 4036/4713/22314 +f 4038/4714/22315 4037/4712/22316 4040/4715/22317 +f 4040/4715/22318 4039/4716/22319 4038/4714/22320 +f 4038/4714/22321 4039/4716/22322 4041/4717/22323 +f 4041/4717/22324 4014/4687/22325 4038/4714/22326 +f 4038/4714/22327 4014/4687/22328 4010/4685/22329 +f 4010/4685/22330 4011/4684/22331 4038/4714/22332 +f 4041/4717/22333 4039/4716/22334 4043/4718/22335 +f 4043/4718/22336 4042/4719/22337 4041/4717/22338 +f 4041/4717/22339 4042/4719/22340 4044/4720/22341 +f 4044/4720/22342 4017/4690/22343 4041/4717/22344 +f 4041/4717/22345 4017/4690/22346 4013/4688/22347 +f 4013/4688/22348 4014/4687/22349 4041/4717/22350 +f 3711/4353/22351 3712/4352/22352 4044/4720/22353 +f 4044/4720/22354 4042/4719/22355 3711/4353/22356 +f 3696/4333/22357 4045/4721/22358 4044/4720/22359 +f 4044/4720/22360 3712/4352/22361 3696/4333/22362 +f 4044/4720/22363 4045/4721/22364 4016/4691/22365 +f 4016/4691/22366 4017/4690/22367 4044/4720/22368 +f 3681/4336/22369 4022/4722/22370 4045/4721/22371 +f 4045/4721/22372 3696/4333/22373 3681/4336/22374 +f 4045/4721/22375 4022/4722/22376 4019/4692/22377 +f 4019/4692/22378 4016/4691/22379 4045/4721/22380 +f 4021/4698/22381 4022/4697/22382 3681/4318/22383 +f 3681/4318/22384 4046/4723/22385 4021/4698/22386 +f 4021/4698/22387 4046/4723/22388 3667/4301/22389 +f 3667/4301/22390 4024/4699/22391 4021/4698/22392 +f 4024/4699/22393 3667/4301/22394 3664/4304/22395 +f 3664/4304/22396 4026/4701/22397 4024/4699/22398 +f 4026/4701/22399 3664/4304/22400 3669/4305/22401 +f 3669/4305/22402 3687/4325/22403 4026/4701/22404 +f 3711/4353/22405 4042/4719/22406 4043/4718/22407 +f 4043/4718/22408 4047/4724/22409 3711/4353/22410 +f 4049/4725/22411 4048/4726/22412 4047/4724/22413 +f 4047/4724/22414 4043/4718/22415 4049/4725/22416 +f 4047/4724/22417 4048/4726/22418 4050/4727/22419 +f 4050/4727/22420 3697/4337/22421 4047/4724/22422 +f 4047/4724/22423 3697/4337/22424 3695/4334/22425 +f 3695/4334/22426 3711/4353/22427 4047/4724/22428 +f 4050/4727/22429 4048/4726/22430 3698/4339/22431 +f 3698/4339/22432 3692/4329/22433 4050/4727/22434 +f 4050/4727/22435 3692/4329/22436 3683/4330/22437 +f 3683/4330/22438 3686/4728/22439 4050/4727/22440 +f 4050/4727/22441 3686/4728/22442 3682/4338/22443 +f 3682/4338/22444 3697/4337/22445 4050/4727/22446 +f 4051/4729/22447 3698/4339/22448 4048/4726/22449 +f 4048/4726/22450 4049/4725/22451 4051/4729/22452 +f 3691/4327/22453 3698/4339/22454 4051/4729/22455 +f 4051/4729/22456 4052/4730/22457 3691/4327/22458 +f 4049/4725/22459 4040/4715/22460 4053/4731/22461 +f 4053/4731/22462 4051/4729/22463 4049/4725/22464 +f 4049/4725/22465 4043/4718/22466 4039/4716/22467 +f 4039/4716/22468 4040/4715/22469 4049/4725/22470 +f 4053/4731/22471 4035/4710/22472 4031/4708/22473 +f 4031/4708/22474 4032/4707/22475 4053/4731/22476 +f 4053/4731/22477 4032/4707/22478 4052/4730/22479 +f 4052/4730/22480 4051/4729/22481 4053/4731/22482 +f 4053/4731/22483 4040/4715/22484 4037/4712/22485 +f 4037/4712/22486 4035/4710/22487 4053/4731/22488 +f 3691/4327/22489 4052/4730/22490 3689/4326/22491 +f 3689/4326/22492 3684/4321/22493 3691/4327/22494 +f 4052/4730/22495 4032/4707/22496 4029/4705/22497 +f 4029/4705/22498 3689/4326/22499 4052/4730/22500 +f 3997/4668/22501 3961/4617/22502 4054/4732/22503 +f 4054/4732/22504 3622/4733/22505 3997/4668/22506 +f 4054/4732/22507 3958/4614/22508 3502/4127/22509 +f 3502/4127/22510 3553/4177/22511 4054/4732/22512 +f 4054/4732/22513 3553/4177/22514 3552/4180/22515 +f 3552/4180/22516 3622/4733/22517 4054/4732/22518 +f 4054/4732/22519 3961/4617/22520 3957/4615/22521 +f 3957/4615/22522 3958/4614/22523 4054/4732/22524 +f 3958/4614/22525 3956/4612/22526 3501/4125/22527 +f 3501/4125/22528 3502/4127/22529 3958/4614/22530 +f 3956/4612/22531 3889/4547/22532 3890/4546/22533 +f 3890/4546/22534 3501/4125/22535 3956/4612/22536 +f 3890/4546/22537 3887/4543/22538 3884/4542/22539 +f 3884/4542/22540 4055/4734/22541 3890/4546/22542 +f 3890/4546/22543 4055/4734/22544 3500/4126/22545 +f 3500/4126/22546 3501/4125/22547 3890/4546/22548 +f 4055/4734/22549 3884/4542/22550 3885/4541/22551 +f 3885/4541/22552 4056/4735/22553 4055/4734/22554 +f 4055/4734/22555 4056/4735/22556 4057/4736/22557 +f 4057/4736/22558 3500/4126/22559 4055/4734/22560 +f 4059/4739/22561 4058/4740/22562 4057/4737/22563 +f 4057/4737/22564 4060/4738/22565 4059/4739/22566 +f 4057/4736/22567 4058/4741/22568 3497/4124/22569 +f 3497/4124/22570 3500/4126/22571 4057/4736/22572 +f 3471/4094/22573 3473/4742/22574 4058/4740/22575 +f 4058/4740/22576 4059/4739/22577 3471/4094/22578 +f 4058/4741/22579 3473/4743/22580 3474/4121/22581 +f 3474/4121/22582 3497/4124/22583 4058/4741/22584 +f 3472/4744/22585 3473/4742/22586 3471/4094/22587 +f 3471/4094/22588 3469/4092/22589 3472/4744/22590 +f 3469/4092/22591 3462/4086/22592 3472/4744/22593 +f 4059/4739/22594 4060/4738/22595 4062/4745/22596 +f 4062/4745/22597 4061/4746/22598 4059/4739/22599 +f 4059/4739/22600 4061/4746/22601 3468/4093/22602 +f 3468/4093/22603 3471/4094/22604 4059/4739/22605 +f 4061/4746/22606 4062/4745/22607 4064/4747/22608 +f 4064/4747/22609 4063/4748/22610 4061/4746/22611 +f 4061/4746/22612 4063/4748/22613 3470/4091/22614 +f 3470/4091/22615 3468/4093/22616 4061/4746/22617 +f 4063/4748/22618 4064/4747/22619 3404/4029/22620 +f 3404/4029/22621 3405/4028/22622 4063/4748/22623 +f 4063/4748/22624 3405/4028/22625 3414/4037/22626 +f 3414/4037/22627 3470/4091/22628 4063/4748/22629 +f 3406/4027/22630 3407/4031/22631 3414/4037/22632 +f 3414/4037/22633 3405/4028/22634 3406/4027/22635 +f 3414/4037/22636 3412/4036/22637 3462/4086/22638 +f 3462/4086/22639 3470/4091/22640 3414/4037/22641 +f 3390/4014/22642 3393/4016/22643 3404/4029/22644 +f 3404/4029/22645 3397/4019/22646 3390/4014/22647 +f 3404/4029/22648 4064/4747/22649 4065/4749/22650 +f 4065/4749/22651 3397/4019/22652 3404/4029/22653 +f 4065/4749/22654 4066/4750/22655 3396/4020/22656 +f 3396/4020/22657 3397/4019/22658 4065/4749/22659 +f 4065/4749/22660 4064/4747/22661 4062/4745/22662 +f 4062/4745/22663 4067/4751/22664 4065/4749/22665 +f 4065/4749/22666 4067/4751/22667 4068/4752/22668 +f 4068/4752/22669 4066/4750/22670 4065/4749/22671 +f 4068/4752/22672 4069/4754/22673 4070/4753/22674 +f 4070/4753/22675 4066/4750/22676 4068/4752/22677 +f 4068/4752/22678 4067/4751/22679 4072/4755/22680 +f 4072/4755/22681 4071/4756/22682 4068/4752/22683 +f 4068/4752/22684 4071/4756/22685 4073/4757/22686 +f 4073/4757/22687 4069/4754/22688 4068/4752/22689 +f 4073/4757/22690 4074/4759/22691 4075/4758/22692 +f 4075/4758/22693 4069/4754/22694 4073/4757/22695 +f 3885/4760/22696 3882/4761/22697 4073/4757/22698 +f 4073/4757/22699 4071/4756/22700 3885/4760/22701 +f 3881/4762/22702 4074/4759/22703 4073/4757/22704 +f 4073/4757/22705 3882/4761/22706 3881/4762/22707 +f 4076/4764/22708 4074/4759/22709 3881/4762/22710 +f 3881/4762/22711 3880/4763/22712 4076/4764/22713 +f 4076/4764/22714 3415/4038/22715 3400/4022/22716 +f 3400/4022/22717 3401/4021/22718 4076/4764/22719 +f 4076/4764/22720 3401/4021/22721 4075/4758/22722 +f 4075/4758/22723 4074/4759/22724 4076/4764/22725 +f 3415/4038/22726 4076/4764/22727 3880/4763/22728 +f 3880/4763/22729 3879/4535/22730 3415/4038/22731 +f 3885/4760/22732 4071/4756/22733 4072/4755/22734 +f 4072/4755/22735 4056/4765/22736 3885/4760/22737 +f 4057/4737/22738 4056/4765/22739 4072/4755/22740 +f 4072/4755/22741 4060/4738/22742 4057/4737/22743 +f 4075/4758/22744 3401/4021/22745 3398/4024/22746 +f 3398/4024/22747 4077/4766/22748 4075/4758/22749 +f 4075/4758/22750 4077/4766/22751 4070/4753/22752 +f 4070/4753/22753 4069/4754/22754 4075/4758/22755 +f 4077/4766/22756 3398/4024/22757 3377/3999/22758 +f 3377/3999/22759 3372/3998/22760 4077/4766/22761 +f 4077/4766/22762 3372/3998/22763 3373/3997/22764 +f 3373/3997/22765 4070/4753/22766 4077/4766/22767 +f 3396/4020/22768 3373/3997/22769 3374/3996/22770 +f 3374/3996/22771 3394/4018/22772 3396/4020/22773 +f 3373/3997/22774 3396/4020/22775 4066/4750/22776 +f 4066/4750/22777 4070/4753/22778 3373/3997/22779 +f 3377/3999/22780 3398/4024/22781 3399/4023/22782 +f 3399/4023/22783 3380/4002/22784 3377/3999/22785 +f 4072/4755/22786 4067/4751/22787 4062/4745/22788 +f 4062/4745/22789 4060/4738/22790 4072/4755/22791 +f 3416/4039/22792 3878/4536/22793 3467/4767/22794 +f 3467/4767/22795 3464/4768/22796 3416/4039/22797 +f 3877/4530/22798 3875/4528/22799 3548/4172/22800 +f 3548/4172/22801 3549/4171/22802 3877/4530/22803 +f 3877/4530/22804 3549/4171/22805 4078/4769/22806 +f 4078/4769/22807 3467/4532/22808 3877/4530/22809 +f 3875/4528/22810 3872/4527/22811 3551/4175/22812 +f 3551/4175/22813 3548/4172/22814 3875/4528/22815 +f 3551/4175/22816 3872/4527/22817 3873/4526/22818 +f 3873/4526/22819 3598/4235/22820 3551/4175/22821 +f 3740/4383/22822 3736/4379/22823 3598/4235/22824 +f 3598/4235/22825 3873/4526/22826 3740/4383/22827 +f 3740/4383/22828 3873/4526/22829 3869/4524/22830 +f 3869/4524/22831 3870/4523/22832 3740/4383/22833 +f 3597/4236/22834 3598/4235/22835 3736/4379/22836 +f 3736/4379/22837 3733/4376/22838 3597/4236/22839 +f 3743/4386/22840 3739/4384/22841 3740/4383/22842 +f 3740/4383/22843 3870/4523/22844 3743/4386/22845 +f 3743/4386/22846 3870/4523/22847 3867/4521/22848 +f 3867/4521/22849 3745/4388/22850 3743/4386/22851 +f 3600/4631/22852 3601/4371/22853 3699/4343/22854 +f 3699/4343/22855 3700/4342/22856 3600/4631/22857 +f 3523/4149/22858 3864/4519/22859 3460/4084/22860 +f 3460/4084/22861 3521/4147/22862 3523/4149/22863 +f 3863/4516/22864 3753/4396/22865 3864/4519/22866 +f 3864/4519/22867 3523/4149/22868 3863/4516/22869 +f 3863/4516/22870 3523/4149/22871 3524/4148/22872 +f 3524/4148/22873 3862/4517/22874 3863/4516/22875 +f 3485/4106/22876 3487/4111/22877 3506/4131/22878 +f 3506/4131/22879 3484/4107/22880 3485/4106/22881 +f 3504/4129/22882 3505/4128/22883 4080/4770/22884 +f 4080/4770/22885 4079/4771/22886 3504/4129/22887 +f 3504/4129/22888 4079/4771/22889 3858/4511/22890 +f 3858/4511/22891 3859/4510/22892 3504/4129/22893 +f 4082/4773/22894 4081/4774/22895 4083/4772/22896 +f 4083/4772/22897 3795/4443/22898 4082/4773/22899 +f 4082/4773/22900 3795/4443/22901 3793/4441/22902 +f 3793/4441/22903 3853/4506/22904 4082/4773/22905 +f 4083/4772/22906 4081/4774/22907 4085/4775/22908 +f 4085/4775/22909 4084/4776/22910 4083/4772/22911 +f 3493/4116/22912 3494/4115/22913 4083/4772/22914 +f 4083/4772/22915 4084/4776/22916 3493/4116/22917 +f 3493/4116/22918 4084/4776/22919 4086/4777/22920 +f 4086/4777/22921 3496/4119/22922 3493/4116/22923 +f 3496/4119/22924 4086/4777/22925 3505/4128/22926 +f 3505/4128/22927 3495/4120/22928 3496/4119/22929 +f 4086/4777/22930 4084/4776/22931 4085/4775/22932 +f 4085/4775/22933 4087/4778/22934 4086/4777/22935 +f 4086/4777/22936 4087/4778/22937 4080/4770/22938 +f 4080/4770/22939 3505/4128/22940 4086/4777/22941 +f 4088/4780/22942 3854/4781/22943 3855/4779/22944 +f 3855/4779/22945 3788/4434/22946 4088/4780/22947 +f 4088/4780/22948 3788/4434/22949 3785/4433/22950 +f 3785/4433/22951 3786/4432/22952 4088/4780/22953 +f 3855/4508/22954 3791/4439/22955 3790/4440/22956 +f 3855/4779/22957 3790/4437/22958 3787/4435/22959 +f 3787/4435/22960 3788/4434/22961 3855/4779/22962 +f 3725/4367/22963 3710/4350/22964 3706/4347/22965 +f 3706/4347/22966 3703/4345/22967 3725/4367/22968 +f 3721/4362/22969 3693/4331/22970 3662/4300/22971 +f 3662/4300/22972 3663/4299/22973 3721/4362/22974 +f 3706/4347/22975 3707/4346/22976 3704/4344/22977 +f 3704/4344/22978 3703/4345/22979 3706/4347/22980 +f 3686/4323/22981 3670/4307/22982 3666/4302/22983 +f 3666/4302/22984 3682/4317/22985 3686/4323/22986 +f 3660/4295/22987 3613/4249/22988 3608/4248/22989 +f 3608/4248/22990 3640/4277/22991 3660/4295/22992 +f 3656/4292/22993 3615/4254/22994 3618/4256/22995 +f 3618/4256/22996 3657/4294/22997 3656/4292/22998 +f 3915/4572/22999 3641/4279/23000 3609/4247/23001 +f 3609/4247/23002 3634/4271/23003 3915/4572/23004 +f 3652/4288/23005 3586/4218/23006 3584/4215/23007 +f 3584/4215/23008 3620/4257/23009 3652/4288/23010 +f 3650/4284/23011 3653/4291/23012 3635/4272/23013 +f 3635/4272/23014 3630/4270/23015 3650/4284/23016 +f 3627/4265/23017 3628/4264/23018 3541/4165/23019 +f 3541/4165/23020 3542/4164/23021 3627/4265/23022 +f 3628/4264/23023 3847/4500/23024 3544/4168/23025 +f 3544/4168/23026 3541/4165/23027 3628/4264/23028 +f 3607/4244/23029 3591/4227/23030 3593/4228/23031 +f 3593/4228/23032 3594/4230/23033 3607/4244/23034 +f 3596/4233/23035 3592/4232/23036 3587/4222/23037 +f 3587/4222/23038 3824/4476/23039 3596/4233/23040 +f 3553/4177/23041 3502/4127/23042 3499/4122/23043 +f 3499/4122/23044 3546/4178/23045 3553/4177/23046 +f 3549/4171/23047 3546/4174/23048 3499/4782/23049 +f 3499/4782/23050 4078/4769/23051 3549/4171/23052 +f 3545/4170/23053 3535/4157/23054 3532/4160/23055 +f 3532/4160/23056 3531/4156/23057 3545/4170/23058 +f 3529/4155/23059 3516/4140/23060 3517/4139/23061 +f 3529/4155/23062 3517/4139/23063 3954/4611/23064 +f 3954/4611/23065 3525/4153/23066 3529/4155/23067 +f 3529/4155/23068 3530/4154/23069 3519/4143/23070 +f 3519/4143/23071 3516/4140/23072 3529/4155/23073 +f 3450/4070/23074 3482/4109/23075 3483/4108/23076 +f 3483/4108/23077 3461/4083/23078 3450/4070/23079 +f 3450/4070/23080 3461/4083/23081 4089/4783/23082 +f 4089/4783/23083 3449/4071/23084 3450/4070/23085 +f 3449/4071/23086 4089/4783/23087 3432/4056/23088 +f 3432/4056/23089 3433/4055/23090 3449/4071/23091 +f 3433/4055/23092 3427/4048/23093 3453/4076/23094 +f 3453/4076/23095 3449/4071/23096 3433/4055/23097 +f 3433/4055/23098 3421/4043/23099 3422/4042/23100 +f 3422/4042/23101 3427/4048/23102 3433/4055/23103 +f 4089/4783/23104 3461/4083/23105 3446/4069/23106 +f 3446/4069/23107 3443/4065/23108 4089/4783/23109 +f 4089/4783/23110 3443/4065/23111 3424/4046/23112 +f 3424/4046/23113 3432/4056/23114 4089/4783/23115 +f 4090/4784/23116 3482/4109/23117 3450/4070/23118 +f 3450/4070/23119 3447/4073/23120 4090/4784/23121 +f 4090/4784/23122 4091/4787/23123 4093/4785/23124 +f 4093/4785/23125 4092/4786/23126 4090/4784/23127 +f 4090/4784/23128 4092/4786/23129 3485/4106/23130 +f 3485/4106/23131 3482/4109/23132 4090/4784/23133 +f 3451/4075/23134 4091/4787/23135 4090/4784/23136 +f 4090/4784/23137 3447/4073/23138 3451/4075/23139 +f 4094/4789/23140 4091/4787/23141 3451/4075/23142 +f 3451/4075/23143 4095/4788/23144 4094/4789/23145 +f 4095/4788/23146 3451/4075/23147 3452/4074/23148 +f 3452/4074/23149 4096/4790/23150 4095/4788/23151 +f 4096/4790/23152 3452/4074/23153 4098/4791/23154 +f 4098/4791/23155 4097/4792/23156 4096/4790/23157 +f 4100/4793/23158 4099/4794/23159 4097/4792/23160 +f 4097/4792/23161 4098/4791/23162 4100/4793/23163 +f 4099/4794/23164 4100/4793/23165 4102/4795/23166 +f 4102/4795/23167 4101/4796/23168 4099/4794/23169 +f 4101/4796/23170 4102/4795/23171 4104/4797/23172 +f 4104/4797/23173 4103/4798/23174 4101/4796/23175 +f 4103/4798/23176 4104/4797/23177 4106/4799/23178 +f 4106/4799/23179 4105/4800/23180 4103/4798/23181 +f 4107/4802/23182 4105/4800/23183 4106/4799/23184 +f 4106/4799/23185 4108/4801/23186 4107/4802/23187 +f 4106/4799/23188 4104/4797/23189 3509/4133/23190 +f 3509/4133/23191 3510/4132/23192 4106/4799/23193 +f 4106/4799/23194 3510/4132/23195 4109/4803/23196 +f 4109/4803/23197 4108/4801/23198 4106/4799/23199 +f 4109/4803/23200 3486/4112/23201 3485/4106/23202 +f 3485/4106/23203 4092/4786/23204 4109/4803/23205 +f 4109/4803/23206 4092/4786/23207 4093/4785/23208 +f 4093/4785/23209 4108/4801/23210 4109/4803/23211 +f 4109/4803/23212 3510/4132/23213 3507/4135/23214 +f 3507/4135/23215 3486/4112/23216 4109/4803/23217 +f 4108/4801/23218 4093/4785/23219 4110/4804/23220 +f 4110/4804/23221 4107/4802/23222 4108/4801/23223 +f 4104/4797/23224 4102/4795/23225 4111/4805/23226 +f 4111/4805/23227 3509/4133/23228 4104/4797/23229 +f 4111/4805/23230 4102/4795/23231 4100/4793/23232 +f 4100/4793/23233 4112/4806/23234 4111/4805/23235 +f 4111/4805/23236 4112/4806/23237 3428/4053/23238 +f 3428/4053/23239 3454/4078/23240 4111/4805/23241 +f 4111/4805/23242 3454/4078/23243 3513/4138/23244 +f 3513/4138/23245 3509/4133/23246 4111/4805/23247 +f 4113/4807/23248 4112/4806/23249 4100/4793/23250 +f 4100/4793/23251 4098/4791/23252 4113/4807/23253 +f 3428/4053/23254 4112/4806/23255 4113/4807/23256 +f 4113/4807/23257 3425/4050/23258 3428/4053/23259 +f 4113/4807/23260 4098/4791/23261 3452/4074/23262 +f 3452/4074/23263 3453/4076/23264 4113/4807/23265 +f 4113/4807/23266 3453/4076/23267 3427/4048/23268 +f 3427/4048/23269 3425/4050/23270 4113/4807/23271 +f 4094/4789/23272 4110/4804/23273 4093/4785/23274 +f 4093/4785/23275 4091/4787/23276 4094/4789/23277 +f 3511/4137/23278 3488/4110/23279 3486/4112/23280 +f 3486/4112/23281 3507/4135/23282 3511/4137/23283 +f 3499/4782/23284 3474/4095/23285 3466/4098/23286 +f 3466/4098/23287 4078/4769/23288 3499/4782/23289 +f 3481/4105/23290 3477/4100/23291 3493/4116/23292 +f 3493/4116/23293 3496/4119/23294 3481/4105/23295 +f 3464/4768/23296 3465/4808/23297 3388/4010/23298 +f 3388/4010/23299 3416/4039/23300 3464/4768/23301 +f 4114/4809/23302 3465/4087/23303 3418/4041/23304 +f 3418/4041/23305 3417/4040/23306 4114/4809/23307 +f 3387/4011/23308 3388/4010/23309 3465/4808/23310 +f 3465/4808/23311 4114/4810/23312 3387/4011/23313 +f 4114/4809/23314 3417/4040/23315 3410/4034/23316 +f 3410/4034/23317 4115/4811/23318 4114/4809/23319 +f 4114/4810/23320 4115/4811/23321 4116/4812/23322 +f 4116/4812/23323 3387/4011/23324 4114/4810/23325 +f 4116/4812/23326 4115/4811/23327 4118/4813/23328 +f 4118/4813/23329 4117/4814/23330 4116/4812/23331 +f 4116/4812/23332 4117/4814/23333 4120/4815/23334 +f 4120/4815/23335 4119/4816/23336 4116/4812/23337 +f 4116/4812/23338 4119/4816/23339 3385/4007/23340 +f 3385/4007/23341 3387/4011/23342 4116/4812/23343 +f 4120/4815/23344 3383/4006/23345 3379/4003/23346 +f 3379/4003/23347 4119/4816/23348 4120/4815/23349 +f 4118/4813/23350 4115/4811/23351 3410/4034/23352 +f 3410/4034/23353 3411/4033/23354 4118/4813/23355 +f 3400/4022/23356 3384/4008/23357 3380/4002/23358 +f 3380/4002/23359 3399/4023/23360 3400/4022/23361 +f 3394/4018/23362 3374/3996/23363 3378/4001/23364 +f 3378/4001/23365 3395/4017/23366 3394/4018/23367 +f 3395/4017/23368 3378/4001/23369 3382/4004/23370 +f 3382/4004/23371 3389/4015/23372 3395/4017/23373 +f 3480/4103/23374 3479/4104/23375 3495/4120/23376 +f 3477/4100/23377 3478/4099/23378 3492/4117/23379 +f 3492/4117/23380 3493/4116/23381 3477/4100/23382 +f 3666/4302/23383 3667/4301/23384 4046/4723/23385 +f 4046/4723/23386 3681/4318/23387 3666/4302/23388 +f 3550/4176/23389 3603/4239/23390 3977/4642/23391 +f 3977/4642/23392 3547/4173/23393 3550/4176/23394 +f 3801/4449/23395 3530/4154/23396 3531/4156/23397 +f 3531/4156/23398 4121/4817/23399 3801/4449/23400 +f 3531/4156/23401 3532/4160/23402 3536/4162/23403 +f 3536/4162/23404 4121/4817/23405 3531/4156/23406 +f 3536/4162/23407 3800/4450/23408 3801/4449/23409 +f 3801/4449/23410 4121/4817/23411 3536/4162/23412 +f 3634/4271/23413 3635/4272/23414 3653/4291/23415 +f 3653/4291/23416 3915/4572/23417 3634/4271/23418 +f 3653/4291/23419 3657/4294/23420 3618/4256/23421 +f 3618/4256/23422 3915/4572/23423 3653/4291/23424 +f 3522/4146/23425 3484/4107/23426 3506/4131/23427 +f 3506/4131/23428 3524/4148/23429 3522/4146/23430 +f 3506/4131/23431 3862/4517/23432 3524/4148/23433 +f 3494/4115/23434 3794/4444/23435 3795/4443/23436 +f 3795/4443/23437 4083/4772/23438 3494/4115/23439 +f 3503/4130/23440 3480/4103/23441 3495/4120/23442 +f 3506/4131/23443 3503/4130/23444 3504/4129/23445 +f 3504/4129/23446 3859/4510/23447 3506/4131/23448 +f 3460/4084/23449 3461/4083/23450 3483/4108/23451 +f 3483/4108/23452 3521/4147/23453 3460/4084/23454 +f 3599/4234/23455 3550/4176/23456 3551/4175/23457 +f 3554/4184/23458 3547/4183/23459 3977/4818/23460 +f 3977/4818/23461 3978/4652/23462 3554/4184/23463 +f 3383/4006/23464 4120/4815/23465 3382/4004/23466 +f 3382/4004/23467 3381/4005/23468 3383/4006/23469 +f 3411/4033/23470 3408/4030/23471 3403/4026/23472 +f 4120/4815/23473 4117/4814/23474 3389/4015/23475 +f 3389/4015/23476 3382/4004/23477 4120/4815/23478 +f 4118/4813/23479 3392/4012/23480 3389/4015/23481 +f 3389/4015/23482 4117/4814/23483 4118/4813/23484 +f 3411/4033/23485 3403/4026/23486 3392/4012/23487 +f 3392/4012/23488 4118/4813/23489 3411/4033/23490 +f 3467/4532/23491 4078/4769/23492 3466/4098/23493 +f 3472/4744/23494 3462/4086/23495 3463/4085/23496 +f 3463/4085/23497 3466/4090/23498 3472/4744/23499 +f 3385/4007/23500 4119/4816/23501 3379/4003/23502 +f 3936/4594/23503 3716/4354/23504 3713/4357/23505 +f 3713/4357/23506 3928/4584/23507 3936/4594/23508 +f 3922/4579/23509 3921/4577/23510 3933/4590/23511 +f 3933/4590/23512 3934/4592/23513 3924/4580/23514 +f 3924/4580/23515 3922/4579/23516 3933/4590/23517 +f 3934/4592/23518 3936/4594/23519 3928/4584/23520 +f 3928/4584/23521 3924/4580/23522 3934/4592/23523 +f 3928/4584/23524 3926/4582/23525 3924/4580/23526 +f 4097/4792/23527 4099/4794/23528 4101/4796/23529 +f 4107/4802/23530 4101/4796/23531 4103/4798/23532 +f 4103/4798/23533 4105/4800/23534 4107/4802/23535 +f 4101/4796/23536 4107/4802/23537 4097/4792/23538 +f 4097/4792/23539 4107/4802/23540 4110/4804/23541 +f 4110/4804/23542 4096/4790/23543 4097/4792/23544 +f 4095/4788/23545 4096/4790/23546 4110/4804/23547 +f 4110/4804/23548 4094/4789/23549 4095/4788/23550 +f 3491/4118/23551 3954/4611/23552 3517/4139/23553 +f 3517/4139/23554 3514/4142/23555 3491/4118/23556 +f 3514/4142/23557 3520/4145/23558 3491/4118/23559 +f 3543/4169/23560 3544/4168/23561 3847/4500/23562 +f 3847/4500/23563 3846/4499/23564 3543/4169/23565 +f 3543/4169/23566 3846/4499/23567 3844/4498/23568 +f 3844/4498/23569 3850/4504/23570 3543/4169/23571 +f 3850/4504/23572 3844/4498/23573 3845/4497/23574 +f 3845/4497/23575 3823/4475/23576 3850/4504/23577 +f 3822/4474/23578 3823/4475/23579 3845/4497/23580 +f 3845/4497/23581 3848/4502/23582 3822/4474/23583 +f 3848/4502/23584 4122/4819/23585 3822/4474/23586 +f 3588/4221/23587 3580/4220/23588 4122/4819/23589 +f 4122/4819/23590 3825/4479/23591 3588/4221/23592 +f 3824/4476/23593 3587/4222/23594 3588/4221/23595 +f 3588/4221/23596 3825/4479/23597 3824/4476/23598 +f 4122/4819/23599 3583/4213/23600 3822/4474/23601 +f 3848/4502/23602 3825/4479/23603 4122/4819/23604 +f 3580/4220/23605 3579/4207/23606 4122/4819/23607 +f 3579/4207/23608 3583/4213/23609 4122/4819/23610 +f 3632/4268/23611 3633/4267/23612 3610/4246/23613 +f 4288/4820/23614 4281/4821/23615 4290/4822/23616 +f 4290/4822/23617 4289/4823/23618 4288/4820/23619 +f 4344/4824/23620 4288/4820/23621 4289/4823/23622 +f 4289/4823/23623 4153/4825/23624 4344/4824/23625 +f 4153/4825/23626 4329/4826/23627 4328/4827/23628 +f 4328/4827/23629 4344/4824/23630 4153/4825/23631 +f 4293/4828/23632 4185/4829/23633 4280/4830/23634 +f 4280/4830/23635 4279/4831/23636 4293/4828/23637 +f 4166/4832/23638 4290/4822/23639 4280/4830/23640 +f 4280/4830/23641 4169/4833/23642 4166/4832/23643 +f 4146/4834/23644 4289/4823/23645 4290/4822/23646 +f 4290/4822/23647 4166/4832/23648 4146/4834/23649 +f 4154/4835/23650 4153/4825/23651 4289/4823/23652 +f 4289/4823/23653 4146/4834/23654 4154/4835/23655 +f 4155/4836/23656 4329/4826/23657 4153/4825/23658 +f 4153/4825/23659 4154/4835/23660 4155/4836/23661 +f 4280/4830/23662 4185/4829/23663 4191/4837/23664 +f 4191/4837/23665 4169/4833/23666 4280/4830/23667 +f 4186/4838/23668 4185/4829/23669 4293/4828/23670 +f 4293/4828/23671 4180/4839/23672 4186/4838/23673 +f 4192/4840/23674 4191/4837/23675 4185/4829/23676 +f 4185/4829/23677 4186/4838/23678 4192/4840/23679 +f 4200/4841/23680 4186/4838/23681 4180/4839/23682 +f 4180/4839/23683 4183/4842/23684 4200/4841/23685 +f 4193/4843/23686 4192/4840/23687 4186/4838/23688 +f 4186/4838/23689 4200/4841/23690 4193/4843/23691 +f 4330/4844/23692 4329/4826/23693 4155/4836/23694 +f 4155/4836/23695 4156/4845/23696 4330/4844/23697 +f 4331/4846/23698 4328/4827/23699 4329/4826/23700 +f 4329/4826/23701 4330/4844/23702 4331/4846/23703 +f 4181/4847/23704 4200/4841/23705 4183/4842/23706 +f 4183/4842/23707 4184/4848/23708 4181/4847/23709 +f 4182/4849/23710 4193/4843/23711 4200/4841/23712 +f 4200/4841/23713 4181/4847/23714 4182/4849/23715 +f 4149/4850/23716 4330/4844/23717 4156/4845/23718 +f 4156/4845/23719 4150/4851/23720 4149/4850/23721 +f 4327/4852/23722 4331/4846/23723 4330/4844/23724 +f 4330/4844/23725 4149/4850/23726 4327/4852/23727 +f 4136/4853/23728 4181/4847/23729 4184/4848/23730 +f 4184/4848/23731 4135/4854/23732 4136/4853/23733 +f 4137/4855/23734 4182/4849/23735 4181/4847/23736 +f 4181/4847/23737 4136/4853/23738 4137/4855/23739 +f 4141/4856/23740 4149/4850/23741 4150/4851/23742 +f 4150/4851/23743 4142/4857/23744 4141/4856/23745 +f 4139/4858/23746 4327/4852/23747 4149/4850/23748 +f 4149/4850/23749 4141/4856/23750 4139/4858/23751 +f 4133/4859/23752 4141/4856/23753 4142/4857/23754 +f 4142/4857/23755 4143/4860/23756 4133/4859/23757 +f 4134/4861/23758 4139/4858/23759 4141/4856/23760 +f 4141/4856/23761 4133/4859/23762 4134/4861/23763 +f 4136/4853/23764 4133/4859/23765 4143/4860/23766 +f 4143/4860/23767 4137/4855/23768 4136/4853/23769 +f 4135/4854/23770 4134/4861/23771 4133/4859/23772 +f 4133/4859/23773 4136/4853/23774 4135/4854/23775 +f 4279/4831/23776 4280/4830/23777 4290/4822/23778 +f 4290/4822/23779 4281/4821/23780 4279/4831/23781 +f 4288/4820/23782 4201/4862/23783 4283/4863/23784 +f 4283/4863/23785 4281/4821/23786 4288/4820/23787 +f 4332/4864/23788 4201/4862/23789 4288/4820/23790 +f 4288/4820/23791 4344/4824/23792 4332/4864/23793 +f 4333/4865/23794 4332/4864/23795 4344/4824/23796 +f 4344/4824/23797 4328/4827/23798 4333/4865/23799 +f 4315/4866/23800 4333/4865/23801 4328/4827/23802 +f 4328/4827/23803 4331/4846/23804 4315/4866/23805 +f 4331/4846/23806 4327/4852/23807 4313/4867/23808 +f 4313/4867/23809 4315/4866/23810 4331/4846/23811 +f 4327/4852/23812 4139/4858/23813 4140/4868/23814 +f 4140/4868/23815 4313/4867/23816 4327/4852/23817 +f 4139/4858/23818 4134/4861/23819 4127/4869/23820 +f 4127/4869/23821 4140/4868/23822 4139/4858/23823 +f 4172/4870/23824 4127/4869/23825 4134/4861/23826 +f 4134/4861/23827 4135/4854/23828 4172/4870/23829 +f 4173/4871/23830 4172/4870/23831 4135/4854/23832 +f 4135/4854/23833 4184/4848/23834 4173/4871/23835 +f 4184/4848/23836 4183/4842/23837 4179/4872/23838 +f 4179/4872/23839 4173/4871/23840 4184/4848/23841 +f 4183/4842/23842 4180/4839/23843 4187/4873/23844 +f 4187/4873/23845 4179/4872/23846 4183/4842/23847 +f 4293/4828/23848 4291/4874/23849 4222/4875/23850 +f 4222/4875/23851 4180/4839/23852 4293/4828/23853 +f 4293/4828/23854 4279/4831/23855 4282/4876/23856 +f 4282/4876/23857 4291/4874/23858 4293/4828/23859 +f 4282/4876/23860 4279/4831/23861 4281/4821/23862 +f 4281/4821/23863 4283/4863/23864 4282/4876/23865 +f 4283/4863/23866 4284/4877/23867 4285/4878/23868 +f 4285/4878/23869 4282/4876/23870 4283/4863/23871 +f 4187/4873/23872 4188/4879/23873 4175/4880/23874 +f 4175/4880/23875 4179/4872/23876 4187/4873/23877 +f 4126/4881/23878 4123/4882/23879 4188/4879/23880 +f 4188/4879/23881 4187/4873/23882 4126/4881/23883 +f 4282/4876/23884 4285/4878/23885 4292/4883/23886 +f 4292/4883/23887 4291/4874/23888 4282/4876/23889 +f 4223/4884/23890 4292/4883/23891 4230/4885/23892 +f 4230/4885/23893 4224/4886/23894 4223/4884/23895 +f 4292/4883/23896 4285/4878/23897 4294/4887/23898 +f 4294/4887/23899 4230/4885/23900 4292/4883/23901 +f 4294/4887/23902 4232/4888/23903 4231/4889/23904 +f 4231/4889/23905 4230/4885/23906 4294/4887/23907 +f 4231/4889/23908 4219/4890/23909 4224/4886/23910 +f 4224/4886/23911 4230/4885/23912 4231/4889/23913 +f 4177/4891/23914 4173/4871/23915 4179/4872/23916 +f 4179/4872/23917 4175/4880/23918 4177/4891/23919 +f 4128/4892/23920 4322/4893/23921 4140/4868/23922 +f 4140/4868/23923 4127/4869/23924 4128/4892/23925 +f 4128/4892/23926 4127/4869/23927 4172/4870/23928 +f 4172/4870/23929 4131/4894/23930 4128/4892/23931 +f 4131/4894/23932 4172/4870/23933 4173/4871/23934 +f 4173/4871/23935 4177/4891/23936 4131/4894/23937 +f 4333/4865/23938 4315/4866/23939 4316/4895/23940 +f 4316/4895/23941 4335/4896/23942 4333/4865/23943 +f 4316/4895/23944 4315/4866/23945 4313/4867/23946 +f 4313/4867/23947 4314/4897/23948 4316/4895/23949 +f 4313/4867/23950 4140/4868/23951 4322/4893/23952 +f 4322/4893/23953 4314/4897/23954 4313/4867/23955 +f 4333/4865/23956 4335/4896/23957 4334/4898/23958 +f 4334/4898/23959 4332/4864/23960 4333/4865/23961 +f 4218/4899/23962 4211/4900/23963 4123/4882/23964 +f 4123/4882/23965 4126/4881/23966 4218/4899/23967 +f 4219/4890/23968 4209/4901/23969 4220/4902/23970 +f 4220/4902/23971 4224/4886/23972 4219/4890/23973 +f 4218/4899/23974 4220/4902/23975 4209/4901/23976 +f 4209/4901/23977 4211/4900/23978 4218/4899/23979 +f 4209/4901/23980 4214/4903/23981 4213/4904/23982 +f 4213/4904/23983 4211/4900/23984 4209/4901/23985 +f 4213/4904/23986 4214/4903/23987 4216/4905/23988 +f 4216/4905/23989 4210/4906/23990 4213/4904/23991 +f 4212/4907/23992 4211/4900/23993 4213/4904/23994 +f 4213/4904/23995 4210/4906/23996 4212/4907/23997 +f 4124/4908/23998 4123/4882/23999 4211/4900/24000 +f 4211/4900/24001 4212/4907/24002 4124/4908/24003 +f 4223/4884/24004 4224/4886/24005 4220/4902/24006 +f 4220/4902/24007 4218/4899/24008 4223/4884/24009 +f 4218/4899/24010 4126/4881/24011 4222/4875/24012 +f 4222/4875/24013 4223/4884/24014 4218/4899/24015 +f 4125/4909/24016 4188/4879/24017 4123/4882/24018 +f 4123/4882/24019 4124/4908/24020 4125/4909/24021 +f 4174/4910/24022 4175/4880/24023 4188/4879/24024 +f 4188/4879/24025 4125/4909/24026 4174/4910/24027 +f 4178/4911/24028 4177/4891/24029 4175/4880/24030 +f 4175/4880/24031 4174/4910/24032 4178/4911/24033 +f 4177/4891/24034 4178/4911/24035 4132/4912/24036 +f 4132/4912/24037 4131/4894/24038 4177/4891/24039 +f 4132/4912/24040 4130/4913/24041 4129/4914/24042 +f 4129/4914/24043 4131/4894/24044 4132/4912/24045 +f 4131/4894/24046 4129/4914/24047 4321/4915/24048 +f 4321/4915/24049 4128/4892/24050 4131/4894/24051 +f 4320/4916/24052 4322/4893/24053 4128/4892/24054 +f 4128/4892/24055 4321/4915/24056 4320/4916/24057 +f 4312/4917/24058 4314/4897/24059 4322/4893/24060 +f 4322/4893/24061 4320/4916/24062 4312/4917/24063 +f 4312/4917/24064 4318/4918/24065 4316/4895/24066 +f 4316/4895/24067 4314/4897/24068 4312/4917/24069 +f 4339/4919/24070 4335/4896/24071 4316/4895/24072 +f 4316/4895/24073 4318/4918/24074 4339/4919/24075 +f 4202/4920/24076 4201/4862/24077 4332/4864/24078 +f 4332/4864/24079 4334/4898/24080 4202/4920/24081 +f 4284/4877/24082 4283/4863/24083 4201/4862/24084 +f 4201/4862/24085 4202/4920/24086 4284/4877/24087 +f 4335/4896/24088 4339/4919/24089 4336/4921/24090 +f 4336/4921/24091 4334/4898/24092 4335/4896/24093 +f 4206/4922/24094 4202/4920/24095 4334/4898/24096 +f 4334/4898/24097 4336/4921/24098 4206/4922/24099 +f 4296/4923/24100 4284/4877/24101 4202/4920/24102 +f 4202/4920/24103 4206/4922/24104 4296/4923/24105 +f 4285/4878/24106 4284/4877/24107 4286/4924/24108 +f 4286/4924/24109 4294/4887/24110 4285/4878/24111 +f 4284/4877/24112 4296/4923/24113 4297/4925/24114 +f 4297/4925/24115 4286/4924/24116 4284/4877/24117 +f 4287/4926/24118 4232/4888/24119 4294/4887/24120 +f 4294/4887/24121 4286/4924/24122 4287/4926/24123 +f 4219/4890/24124 4221/4927/24125 4227/4928/24126 +f 4227/4928/24127 4209/4901/24128 4219/4890/24129 +f 4232/4888/24130 4234/4929/24131 4233/4930/24132 +f 4233/4930/24133 4231/4889/24134 4232/4888/24135 +f 4219/4890/24136 4231/4889/24137 4233/4930/24138 +f 4233/4930/24139 4221/4927/24140 4219/4890/24141 +f 4214/4903/24142 4209/4901/24143 4227/4928/24144 +f 4227/4928/24145 4215/4931/24146 4214/4903/24147 +f 4216/4905/24148 4214/4903/24149 4215/4931/24150 +f 4215/4931/24151 4217/4932/24152 4216/4905/24153 +f 4287/4926/24154 4237/4933/24155 4234/4929/24156 +f 4234/4929/24157 4232/4888/24158 4287/4926/24159 +f 4237/4933/24160 4253/4934/24161 4251/4935/24162 +f 4251/4935/24163 4234/4929/24164 4237/4933/24165 +f 4253/4934/24166 4245/4936/24167 4239/4937/24168 +f 4239/4937/24169 4251/4935/24170 4253/4934/24171 +f 4247/4938/24172 4244/4939/24173 4240/4940/24174 +f 4240/4940/24175 4239/4937/24176 4247/4938/24177 +f 4217/4932/24178 4215/4931/24179 4240/4940/24180 +f 4240/4940/24181 4244/4939/24182 4217/4932/24183 +f 4221/4927/24184 4225/4941/24185 4228/4942/24186 +f 4228/4942/24187 4227/4928/24188 4221/4927/24189 +f 4234/4929/24190 4236/4943/24191 4235/4944/24192 +f 4235/4944/24193 4233/4930/24194 4234/4929/24195 +f 4225/4941/24196 4221/4927/24197 4233/4930/24198 +f 4233/4930/24199 4235/4944/24200 4225/4941/24201 +f 4215/4931/24202 4227/4928/24203 4228/4942/24204 +f 4228/4942/24205 4240/4940/24206 4215/4931/24207 +f 4240/4940/24208 4242/4945/24209 4241/4946/24210 +f 4241/4946/24211 4239/4937/24212 4240/4940/24213 +f 4251/4935/24214 4239/4937/24215 4241/4946/24216 +f 4241/4946/24217 4252/4947/24218 4251/4935/24219 +f 4228/4942/24220 4243/4948/24221 4242/4945/24222 +f 4242/4945/24223 4240/4940/24224 4228/4942/24225 +f 4228/4942/24226 4225/4941/24227 4226/4949/24228 +f 4226/4949/24229 4243/4948/24230 4228/4942/24231 +f 4236/4943/24232 4234/4929/24233 4251/4935/24234 +f 4251/4935/24235 4252/4947/24236 4236/4943/24237 +f 4235/4944/24238 4236/4943/24239 4226/4949/24240 +f 4226/4949/24241 4225/4941/24242 4235/4944/24243 +f 4226/4949/24244 4236/4943/24245 4252/4947/24246 +f 4252/4947/24247 4243/4948/24248 4226/4949/24249 +f 4242/4945/24250 4243/4948/24251 4252/4947/24252 +f 4252/4947/24253 4241/4946/24254 4242/4945/24255 +f 4296/4923/24256 4203/4950/24257 4298/4951/24258 +f 4298/4951/24259 4297/4925/24260 4296/4923/24261 +f 4310/4952/24262 4298/4951/24263 4203/4950/24264 +f 4203/4950/24265 4205/4953/24266 4310/4952/24267 +f 4205/4953/24268 4204/4954/24269 4308/4955/24270 +f 4308/4955/24271 4310/4952/24272 4205/4953/24273 +f 4551/4956/24274 4261/4957/24275 4308/4955/24276 +f 4308/4955/24277 4204/4954/24278 4551/4956/24279 +f 4551/4956/24280 4549/4958/24281 4259/4959/24282 +f 4259/4959/24283 4261/4957/24284 4551/4956/24285 +f 4268/4960/24286 4259/4959/24287 4549/4958/24288 +f 4549/4958/24289 4553/4961/24290 4268/4960/24291 +f 4268/4960/24292 4553/4961/24293 4554/4962/24294 +f 4554/4962/24295 4269/4963/24296 4268/4960/24297 +f 4286/4924/24298 4297/4925/24299 4299/4964/24300 +f 4299/4964/24301 4287/4926/24302 4286/4924/24303 +f 4297/4925/24304 4298/4951/24305 4295/4965/24306 +f 4295/4965/24307 4299/4964/24308 4297/4925/24309 +f 4298/4951/24310 4310/4952/24311 4309/4966/24312 +f 4309/4966/24313 4295/4965/24314 4298/4951/24315 +f 4310/4952/24316 4308/4955/24317 4311/4967/24318 +f 4311/4967/24319 4309/4966/24320 4310/4952/24321 +f 4308/4955/24322 4261/4957/24323 4260/4968/24324 +f 4260/4968/24325 4311/4967/24326 4308/4955/24327 +f 4261/4957/24328 4259/4959/24329 4258/4969/24330 +f 4258/4969/24331 4260/4968/24332 4261/4957/24333 +f 4259/4959/24334 4268/4960/24335 4267/4970/24336 +f 4267/4970/24337 4258/4969/24338 4259/4959/24339 +f 4272/4971/24340 4271/4972/24341 4269/4963/24342 +f 4269/4963/24343 4270/4973/24344 4272/4971/24345 +f 4260/4968/24346 4256/4974/24347 4300/4975/24348 +f 4300/4975/24349 4311/4967/24350 4260/4968/24351 +f 4260/4968/24352 4258/4969/24353 4276/4976/24354 +f 4276/4976/24355 4256/4974/24356 4260/4968/24357 +f 4258/4969/24358 4267/4970/24359 4262/4977/24360 +f 4262/4977/24361 4276/4976/24362 4258/4969/24363 +f 4301/4978/24364 4309/4966/24365 4311/4967/24366 +f 4311/4967/24367 4300/4975/24368 4301/4978/24369 +f 4295/4965/24370 4309/4966/24371 4301/4978/24372 +f 4301/4978/24373 4302/4979/24374 4295/4965/24375 +f 4302/4979/24376 4306/4980/24377 4299/4964/24378 +f 4299/4964/24379 4295/4965/24380 4302/4979/24381 +f 4254/4981/24382 4287/4926/24383 4299/4964/24384 +f 4299/4964/24385 4306/4980/24386 4254/4981/24387 +f 4238/4982/24388 4237/4933/24389 4287/4926/24390 +f 4287/4926/24391 4254/4981/24392 4238/4982/24393 +f 4238/4982/24394 4229/4983/24395 4253/4934/24396 +f 4253/4934/24397 4237/4933/24398 4238/4982/24399 +f 4246/4984/24400 4245/4936/24401 4253/4934/24402 +f 4253/4934/24403 4229/4983/24404 4246/4984/24405 +f 4249/4985/24406 4248/4986/24407 4245/4936/24408 +f 4245/4936/24409 4246/4984/24410 4249/4985/24411 +f 4274/4987/24412 4262/4977/24413 4265/4988/24414 +f 4265/4988/24415 4263/4989/24416 4274/4987/24417 +f 4273/4990/24418 4276/4976/24419 4262/4977/24420 +f 4262/4977/24421 4274/4987/24422 4273/4990/24423 +f 4257/4991/24424 4256/4974/24425 4276/4976/24426 +f 4276/4976/24427 4273/4990/24428 4257/4991/24429 +f 4257/4991/24430 4303/4992/24431 4300/4975/24432 +f 4300/4975/24433 4256/4974/24434 4257/4991/24435 +f 4301/4978/24436 4300/4975/24437 4303/4992/24438 +f 4303/4992/24439 4304/4993/24440 4301/4978/24441 +f 4302/4979/24442 4301/4978/24443 4304/4993/24444 +f 4304/4993/24445 4305/4994/24446 4302/4979/24447 +f 4306/4980/24448 4302/4979/24449 4305/4994/24450 +f 4305/4994/24451 4307/4995/24452 4306/4980/24453 +f 4255/4996/24454 4254/4981/24455 4306/4980/24456 +f 4306/4980/24457 4307/4995/24458 4255/4996/24459 +f 4277/4997/24460 4238/4982/24461 4254/4981/24462 +f 4254/4981/24463 4255/4996/24464 4277/4997/24465 +f 4275/4998/24466 4229/4983/24467 4238/4982/24468 +f 4238/4982/24469 4277/4997/24470 4275/4998/24471 +f 4278/4999/24472 4246/4984/24473 4229/4983/24474 +f 4229/4983/24475 4275/4998/24476 4278/4999/24477 +f 4249/4985/24478 4246/4984/24479 4278/4999/24480 +f 4278/4999/24481 4250/5000/24482 4249/4985/24483 +f 4305/4994/24484 4304/4993/24485 4303/4992/24486 +f 4303/4992/24487 4307/4995/24488 4305/4994/24489 +f 4257/4991/24490 4255/4996/24491 4307/4995/24492 +f 4307/4995/24493 4303/4992/24494 4257/4991/24495 +f 4273/4990/24496 4277/4997/24497 4255/4996/24498 +f 4255/4996/24499 4257/4991/24500 4273/4990/24501 +f 4274/4987/24502 4275/4998/24503 4277/4997/24504 +f 4277/4997/24505 4273/4990/24506 4274/4987/24507 +f 4270/4973/24508 4269/4963/24509 4554/4962/24510 +f 4554/4962/24511 4555/5001/24512 4270/4973/24513 +f 4269/4963/24514 4271/4972/24515 4267/4970/24516 +f 4267/4970/24517 4268/4960/24518 4269/4963/24519 +f 4271/4972/24520 4265/4988/24521 4262/4977/24522 +f 4262/4977/24523 4267/4970/24524 4271/4972/24525 +f 4263/4989/24526 4265/4988/24527 4266/5002/24528 +f 4266/5002/24529 4264/5003/24530 4263/4989/24531 +f 4275/4998/24532 4274/4987/24533 4263/4989/24534 +f 4263/4989/24535 4278/4999/24536 4275/4998/24537 +f 4263/4989/24538 4264/5003/24539 4250/5000/24540 +f 4250/5000/24541 4278/4999/24542 4263/4989/24543 +f 4296/4923/24544 4206/4922/24545 4208/5004/24546 +f 4208/5004/24547 4203/4950/24548 4296/4923/24549 +f 4206/4922/24550 4336/4921/24551 4337/5005/24552 +f 4337/5005/24553 4208/5004/24554 4206/4922/24555 +f 4336/4921/24556 4339/4919/24557 4340/5006/24558 +f 4340/5006/24559 4337/5005/24560 4336/4921/24561 +f 4207/5007/24562 4205/4953/24563 4203/4950/24564 +f 4203/4950/24565 4208/5004/24566 4207/5007/24567 +f 4547/5008/24568 4204/4954/24569 4205/4953/24570 +f 4205/4953/24571 4207/5007/24572 4547/5008/24573 +f 4545/5009/24574 4551/4956/24575 4204/4954/24576 +f 4204/4954/24577 4547/5008/24578 4545/5009/24579 +f 4552/5010/24580 4549/4958/24581 4551/4956/24582 +f 4551/4956/24583 4545/5009/24584 4552/5010/24585 +f 4550/5011/24586 4553/4961/24587 4549/4958/24588 +f 4549/4958/24589 4552/5010/24590 4550/5011/24591 +f 4556/5012/24592 4554/4962/24593 4553/4961/24594 +f 4553/4961/24595 4550/5011/24596 4556/5012/24597 +f 4556/5012/24598 4557/5013/24599 4555/5001/24600 +f 4555/5001/24601 4554/4962/24602 4556/5012/24603 +f 4338/5014/24604 4207/5007/24605 4208/5004/24606 +f 4208/5004/24607 4337/5005/24608 4338/5014/24609 +f 4547/5008/24610 4207/5007/24611 4338/5014/24612 +f 4338/5014/24613 4569/5015/24614 4547/5008/24615 +f 4548/5016/24616 4545/5009/24617 4547/5008/24618 +f 4547/5008/24619 4569/5015/24620 4548/5016/24621 +f 4545/5009/24622 4548/5016/24623 4546/5017/24624 +f 4546/5017/24625 4552/5010/24626 4545/5009/24627 +f 4558/5018/24628 4550/5011/24629 4552/5010/24630 +f 4552/5010/24631 4546/5017/24632 4558/5018/24633 +f 4559/5019/24634 4556/5012/24635 4550/5011/24636 +f 4550/5011/24637 4558/5018/24638 4559/5019/24639 +f 4556/5012/24640 4559/5019/24641 4560/5020/24642 +f 4560/5020/24643 4557/5013/24644 4556/5012/24645 +f 4337/5005/24646 4342/5021/24647 4574/5022/24648 +f 4574/5022/24649 4338/5014/24650 4337/5005/24651 +f 4570/5023/24652 4569/5015/24653 4338/5014/24654 +f 4338/5014/24655 4574/5022/24656 4570/5023/24657 +f 4571/5024/24658 4548/5016/24659 4569/5015/24660 +f 4569/5015/24661 4570/5023/24662 4571/5024/24663 +f 4561/5025/24664 4546/5017/24665 4548/5016/24666 +f 4548/5016/24667 4571/5024/24668 4561/5025/24669 +f 4563/5026/24670 4558/5018/24671 4546/5017/24672 +f 4546/5017/24673 4561/5025/24674 4563/5026/24675 +f 4565/5027/24676 4559/5019/24677 4558/5018/24678 +f 4558/5018/24679 4563/5026/24680 4565/5027/24681 +f 4565/5027/24682 4564/5028/24683 4560/5020/24684 +f 4560/5020/24685 4559/5019/24686 4565/5027/24687 +f 4337/5005/24688 4340/5006/24689 4341/5029/24690 +f 4341/5029/24691 4342/5021/24692 4337/5005/24693 +f 4339/4919/24694 4318/4918/24695 4319/5030/24696 +f 4319/5030/24697 4340/5006/24698 4339/4919/24699 +f 4318/4918/24700 4312/4917/24701 4317/5031/24702 +f 4317/5031/24703 4319/5030/24704 4318/4918/24705 +f 4312/4917/24706 4320/4916/24707 4323/5032/24708 +f 4323/5032/24709 4317/5031/24710 4312/4917/24711 +f 4320/4916/24712 4321/4915/24713 4324/5033/24714 +f 4324/5033/24715 4323/5032/24716 4320/4916/24717 +f 4325/5034/24718 4324/5033/24719 4321/4915/24720 +f 4321/4915/24721 4129/4914/24722 4325/5034/24723 +f 4129/4914/24724 4130/4913/24725 4326/5035/24726 +f 4326/5035/24727 4325/5034/24728 4129/4914/24729 +f 4563/5026/24730 4566/5036/24731 4567/5037/24732 +f 4567/5037/24733 4565/5027/24734 4563/5026/24735 +f 4563/5026/24736 4561/5025/24737 4562/5038/24738 +f 4562/5038/24739 4566/5036/24740 4563/5026/24741 +f 4571/5024/24742 4572/5039/24743 4562/5038/24744 +f 4562/5038/24745 4561/5025/24746 4571/5024/24747 +f 4579/5040/24748 4572/5039/24749 4571/5024/24750 +f 4571/5024/24751 4570/5023/24752 4579/5040/24753 +f 4579/5040/24754 4570/5023/24755 4574/5022/24756 +f 4574/5022/24757 4575/5041/24758 4579/5040/24759 +f 4574/5022/24760 4342/5021/24761 4343/5042/24762 +f 4343/5042/24763 4575/5041/24764 4574/5022/24765 +f 4342/5021/24766 4341/5029/24767 4679/5043/24768 +f 4679/5043/24769 4343/5042/24770 4342/5021/24771 +f 4679/5043/24772 4680/5044/24773 4682/5045/24774 +f 4682/5045/24775 4343/5042/24776 4679/5043/24777 +f 4682/5045/24778 4576/5046/24779 4575/5041/24780 +f 4575/5041/24781 4343/5042/24782 4682/5045/24783 +f 4575/5041/24784 4576/5046/24785 4581/5047/24786 +f 4581/5047/24787 4579/5040/24788 4575/5041/24789 +f 4579/5040/24790 4581/5047/24791 4573/5048/24792 +f 4573/5048/24793 4572/5039/24794 4579/5040/24795 +f 4562/5038/24796 4572/5039/24797 4573/5048/24798 +f 4573/5048/24799 4597/5049/24800 4562/5038/24801 +f 4598/5050/24802 4566/5036/24803 4562/5038/24804 +f 4562/5038/24805 4597/5049/24806 4598/5050/24807 +f 4604/5051/24808 4567/5037/24809 4566/5036/24810 +f 4566/5036/24811 4598/5050/24812 4604/5051/24813 +f 4605/5052/24814 4568/5053/24815 4567/5037/24816 +f 4567/5037/24817 4604/5051/24818 4605/5052/24819 +f 4681/5270/24820 4684/5273/24821 4682/5274/24822 +f 4682/5274/24823 4680/5275/24824 4681/5270/24825 +f 4582/5277/24826 4581/5278/24827 4576/5279/24828 +f 4576/5279/24829 4577/5280/24830 4582/5277/24831 +f 4583/5281/24832 4573/5282/24833 4581/5278/24834 +f 4581/5278/24835 4582/5277/24836 4583/5281/24837 +f 4573/5282/24838 4583/5281/24839 4599/5283/24840 +f 4599/5283/24841 4597/5284/24842 4573/5282/24843 +f 4601/5285/24844 4598/5286/24845 4597/5284/24846 +f 4597/5284/24847 4599/5283/24848 4601/5285/24849 +f 4607/5287/24850 4604/5288/24851 4598/5286/24852 +f 4598/5286/24853 4601/5285/24854 4607/5287/24855 +f 4606/5289/24856 4605/5290/24857 4604/5288/24858 +f 4604/5288/24859 4607/5287/24860 4606/5289/24861 +f 4607/5287/24862 4614/5291/24863 4615/5292/24864 +f 4615/5292/24865 4606/5289/24866 4607/5287/24867 +f 4607/5287/24868 4601/5285/24869 4603/5293/24870 +f 4603/5293/24871 4614/5291/24872 4607/5287/24873 +f 4601/5285/24874 4599/5283/24875 4600/5294/24876 +f 4600/5294/24877 4603/5293/24878 4601/5285/24879 +f 4584/5295/24880 4600/5294/24881 4599/5283/24882 +f 4599/5283/24883 4583/5281/24884 4584/5295/24885 +f 4582/5277/24886 4580/5296/24887 4584/5295/24888 +f 4584/5295/24889 4583/5281/24890 4582/5277/24891 +f 4578/5297/24892 4580/5296/24893 4582/5277/24894 +f 4582/5277/24895 4577/5280/24896 4578/5297/24897 +f 4577/5280/24898 4576/5279/24899 4683/5298/24900 +f 4683/5298/24901 4578/5297/24902 4577/5280/24903 +f 4682/5274/24904 4684/5273/24905 4683/5298/24906 +f 4683/5298/24907 4576/5279/24908 4682/5274/24909 +f 4678/5299/24910 4688/5300/24911 4686/5301/24912 +f 4686/5301/24913 4681/5270/24914 4678/5299/24915 +f 4711/5302/24916 4683/5298/24917 4684/5273/24918 +f 4684/5273/24919 4685/5303/24920 4711/5302/24921 +f 4712/5304/24922 4578/5297/24923 4683/5298/24924 +f 4683/5298/24925 4711/5302/24926 4712/5304/24927 +f 4586/5305/24928 4580/5296/24929 4578/5297/24930 +f 4578/5297/24931 4712/5304/24932 4586/5305/24933 +f 4585/5306/24934 4584/5295/24935 4580/5296/24936 +f 4580/5296/24937 4586/5305/24938 4585/5306/24939 +f 4590/5307/24940 4600/5294/24941 4584/5295/24942 +f 4584/5295/24943 4585/5306/24944 4590/5307/24945 +f 4602/5308/24946 4603/5293/24947 4600/5294/24948 +f 4600/5294/24949 4590/5307/24950 4602/5308/24951 +f 4609/5309/24952 4614/5291/24953 4603/5293/24954 +f 4603/5293/24955 4602/5308/24956 4609/5309/24957 +f 4612/5310/24958 4613/5311/24959 4615/5292/24960 +f 4615/5292/24961 4614/5291/24962 4612/5310/24963 +f 4611/5312/24964 4612/5310/24965 4614/5291/24966 +f 4614/5291/24967 4609/5309/24968 4611/5312/24969 +f 4610/5332/24970 4611/5312/24971 4609/5309/24972 +f 4609/5309/24973 4608/5333/24974 4610/5332/24975 +f 4592/5334/24976 4608/5333/24977 4609/5309/24978 +f 4609/5309/24979 4602/5308/24980 4592/5334/24981 +f 4591/5341/24982 4592/5334/24983 4602/5308/24984 +f 4602/5308/24985 4590/5307/24986 4591/5341/24987 +f 4593/5342/24988 4591/5341/24989 4590/5307/24990 +f 4590/5307/24991 4585/5306/24992 4593/5342/24993 +f 4716/5343/24994 4593/5342/24995 4585/5306/24996 +f 4585/5306/24997 4586/5305/24998 4716/5343/24999 +f 4586/5305/25000 4712/5304/25001 4713/5344/25002 +f 4713/5344/25003 4716/5343/25004 4586/5305/25005 +f 4714/5345/25006 4713/5344/25007 4712/5304/25008 +f 4712/5304/25009 4711/5302/25010 4714/5345/25011 +f 4711/5302/25012 4685/5303/25013 4687/5347/25014 +f 4687/5347/25015 4714/5345/25016 4711/5302/25017 +f 4681/5270/25018 4686/5301/25019 4685/5303/25020 +f 4685/5303/25021 4684/5273/25022 4681/5270/25023 +f 4685/5303/25024 4686/5301/25025 4688/5300/25026 +f 4688/5300/25027 4687/5347/25028 4685/5303/25029 +f 4678/5299/25030 4689/5348/25031 4692/5349/25032 +f 4692/5349/25033 4688/5300/25034 4678/5299/25035 +f 4689/5348/25036 4690/5350/25037 4693/5351/25038 +f 4693/5351/25039 4692/5349/25040 4689/5348/25041 +f 4588/5352/25042 4610/5332/25043 4608/5333/25044 +f 4608/5333/25045 4587/5353/25046 4588/5352/25047 +f 4592/5334/25048 4596/5354/25049 4587/5353/25050 +f 4587/5353/25051 4608/5333/25052 4592/5334/25053 +f 4592/5334/25054 4591/5341/25055 4594/5355/25056 +f 4594/5355/25057 4596/5354/25058 4592/5334/25059 +f 4593/5342/25060 4724/5356/25061 4594/5355/25062 +f 4594/5355/25063 4591/5341/25064 4593/5342/25065 +f 4593/5342/25066 4716/5343/25067 4715/5357/25068 +f 4715/5357/25069 4724/5356/25070 4593/5342/25071 +f 4716/5343/25072 4713/5344/25073 4719/5358/25074 +f 4719/5358/25075 4715/5357/25076 4716/5343/25077 +f 4713/5344/25078 4714/5345/25079 4717/5359/25080 +f 4717/5359/25081 4719/5358/25082 4713/5344/25083 +f 4714/5345/25084 4687/5347/25085 4718/5360/25086 +f 4718/5360/25087 4717/5359/25088 4714/5345/25089 +f 4687/5347/25090 4688/5300/25091 4691/5361/25092 +f 4691/5361/25093 4718/5360/25094 4687/5347/25095 +f 4688/5300/25096 4692/5349/25097 4694/5362/25098 +f 4694/5362/25099 4691/5361/25100 4688/5300/25101 +f 4695/5363/25102 4694/5362/25103 4692/5349/25104 +f 4692/5349/25105 4693/5351/25106 4695/5363/25107 +f 4596/5354/25108 4595/5364/25109 4588/5352/25110 +f 4588/5352/25111 4587/5353/25112 4596/5354/25113 +f 4596/5354/25114 4594/5355/25115 4589/5365/25116 +f 4589/5365/25117 4595/5364/25118 4596/5354/25119 +f 4594/5355/25120 4724/5356/25121 4722/5366/25122 +f 4722/5366/25123 4589/5365/25124 4594/5355/25125 +f 4724/5356/25126 4715/5357/25127 4723/5367/25128 +f 4723/5367/25129 4722/5366/25130 4724/5356/25131 +f 4721/5368/25132 4723/5367/25133 4715/5357/25134 +f 4715/5357/25135 4719/5358/25136 4721/5368/25137 +f 4717/5359/25138 4720/5369/25139 4721/5368/25140 +f 4721/5368/25141 4719/5358/25142 4717/5359/25143 +f 4717/5359/25144 4718/5360/25145 4725/5370/25146 +f 4725/5370/25147 4720/5369/25148 4717/5359/25149 +f 4726/5371/25150 4725/5370/25151 4718/5360/25152 +f 4718/5360/25153 4691/5361/25154 4726/5371/25155 +f 4691/5361/25156 4694/5362/25157 4727/5372/25158 +f 4727/5372/25159 4726/5371/25160 4691/5361/25161 +f 4694/5362/25162 4695/5363/25163 4728/5373/25164 +f 4728/5373/25165 4727/5372/25166 4694/5362/25167 +f 4143/4860/25168 4163/5054/25169 4138/5055/25170 +f 4138/5055/25171 4137/4855/25172 4143/4860/25173 +f 4189/5056/25174 4182/4849/25175 4137/4855/25176 +f 4137/4855/25177 4138/5055/25178 4189/5056/25179 +f 4193/4843/25180 4182/4849/25181 4189/5056/25182 +f 4189/5056/25183 4194/5057/25184 4193/4843/25185 +f 4192/4840/25186 4193/4843/25187 4194/5057/25188 +f 4194/5057/25189 4195/5058/25190 4192/4840/25191 +f 4191/4837/25192 4192/4840/25193 4195/5058/25194 +f 4195/5058/25195 4196/5059/25196 4191/4837/25197 +f 4169/4833/25198 4191/4837/25199 4196/5059/25200 +f 4196/5059/25201 4170/5060/25202 4169/4833/25203 +f 4166/4832/25204 4169/4833/25205 4170/5060/25206 +f 4170/5060/25207 4167/5061/25208 4166/4832/25209 +f 4147/5062/25210 4146/4834/25211 4166/4832/25212 +f 4166/4832/25213 4167/5061/25214 4147/5062/25215 +f 4154/4835/25216 4146/4834/25217 4147/5062/25218 +f 4147/5062/25219 4157/5063/25220 4154/4835/25221 +f 4155/4836/25222 4154/4835/25223 4157/5063/25224 +f 4157/5063/25225 4158/5064/25226 4155/4836/25227 +f 4156/4845/25228 4155/4836/25229 4158/5064/25230 +f 4158/5064/25231 4159/5065/25232 4156/4845/25233 +f 4150/4851/25234 4156/4845/25235 4159/5065/25236 +f 4159/5065/25237 4151/5066/25238 4150/4851/25239 +f 4142/4857/25240 4150/4851/25241 4151/5066/25242 +f 4151/5066/25243 4144/5067/25244 4142/4857/25245 +f 4142/4857/25246 4144/5067/25247 4163/5054/25248 +f 4163/5054/25249 4143/4860/25250 4142/4857/25251 +f 4163/5054/25252 4164/5068/25253 4165/5069/25254 +f 4165/5069/25255 4138/5055/25256 4163/5054/25257 +f 4189/5056/25258 4138/5055/25259 4165/5069/25260 +f 4165/5069/25261 4190/5070/25262 4189/5056/25263 +f 4194/5057/25264 4189/5056/25265 4190/5070/25266 +f 4190/5070/25267 4197/5071/25268 4194/5057/25269 +f 4195/5058/25270 4194/5057/25271 4197/5071/25272 +f 4197/5071/25273 4198/5072/25274 4195/5058/25275 +f 4196/5059/25276 4195/5058/25277 4198/5072/25278 +f 4198/5072/25279 4199/5073/25280 4196/5059/25281 +f 4170/5060/25282 4196/5059/25283 4199/5073/25284 +f 4199/5073/25285 4171/5074/25286 4170/5060/25287 +f 4168/5075/25288 4167/5061/25289 4170/5060/25290 +f 4170/5060/25291 4171/5074/25292 4168/5075/25293 +f 4147/5062/25294 4167/5061/25295 4168/5075/25296 +f 4168/5075/25297 4148/5076/25298 4147/5062/25299 +f 4157/5063/25300 4147/5062/25301 4148/5076/25302 +f 4148/5076/25303 4160/5077/25304 4157/5063/25305 +f 4158/5064/25306 4157/5063/25307 4160/5077/25308 +f 4160/5077/25309 4161/5078/25310 4158/5064/25311 +f 4159/5065/25312 4158/5064/25313 4161/5078/25314 +f 4161/5078/25315 4162/5079/25316 4159/5065/25317 +f 4151/5066/25318 4159/5065/25319 4162/5079/25320 +f 4162/5079/25321 4152/5080/25322 4151/5066/25323 +f 4145/5081/25324 4144/5067/25325 4151/5066/25326 +f 4151/5066/25327 4152/5080/25328 4145/5081/25329 +f 4164/5068/25330 4163/5054/25331 4144/5067/25332 +f 4144/5067/25333 4145/5081/25334 4164/5068/25335 +f 4222/4875/25336 4291/4874/25337 4292/4883/25338 +f 4292/4883/25339 4223/4884/25340 4222/4875/25341 +f 4180/4839/25342 4222/4875/25343 4126/4881/25344 +f 4126/4881/25345 4187/4873/25346 4180/4839/25347 +f 4245/4936/25348 4248/4986/25349 4247/4938/25350 +f 4247/4938/25351 4239/4937/25352 4245/4936/25353 +f 4272/4971/25354 4266/5002/25355 4265/4988/25356 +f 4265/4988/25357 4271/4972/25358 4272/4971/25359 +f 4568/5053/25360 4564/5028/25361 4565/5027/25362 +f 4565/5027/25363 4567/5037/25364 4568/5053/25365 +f 4487/5082/25366 4486/5083/25367 4485/5084/25368 +f 4485/5084/25369 4482/5085/25370 4487/5082/25371 +f 4532/5086/25372 4411/5087/25373 4486/5083/25374 +f 4486/5083/25375 4487/5082/25376 4532/5086/25377 +f 4411/5087/25378 4532/5086/25379 4522/5088/25380 +f 4522/5088/25381 4523/5089/25382 4411/5087/25383 +f 4474/5090/25384 4475/5091/25385 4476/5092/25386 +f 4476/5092/25387 4367/5093/25388 4474/5090/25389 +f 4394/5094/25390 4381/5095/25391 4476/5092/25392 +f 4476/5092/25393 4485/5084/25394 4394/5094/25395 +f 4397/5096/25396 4394/5094/25397 4485/5084/25398 +f 4485/5084/25399 4486/5083/25400 4397/5096/25401 +f 4412/5097/25402 4397/5096/25403 4486/5083/25404 +f 4486/5083/25405 4411/5087/25406 4412/5097/25407 +f 4413/5098/25408 4412/5097/25409 4411/5087/25410 +f 4411/5087/25411 4523/5089/25412 4413/5098/25413 +f 4476/5092/25414 4381/5095/25415 4372/5099/25416 +f 4372/5099/25417 4367/5093/25418 4476/5092/25419 +f 4361/5100/25420 4358/5101/25421 4474/5090/25422 +f 4474/5090/25423 4367/5093/25424 4361/5100/25425 +f 4373/5102/25426 4361/5100/25427 4367/5093/25428 +f 4367/5093/25429 4372/5099/25430 4373/5102/25431 +f 4368/5103/25432 4359/5104/25433 4358/5101/25434 +f 4358/5101/25435 4361/5100/25436 4368/5103/25437 +f 4374/5105/25438 4368/5103/25439 4361/5100/25440 +f 4361/5100/25441 4373/5102/25442 4374/5105/25443 +f 4524/5106/25444 4414/5107/25445 4413/5098/25446 +f 4413/5098/25447 4523/5089/25448 4524/5106/25449 +f 4525/5108/25450 4524/5106/25451 4523/5089/25452 +f 4523/5089/25453 4522/5088/25454 4525/5108/25455 +f 4362/5109/25456 4360/5110/25457 4359/5104/25458 +f 4359/5104/25459 4368/5103/25460 4362/5109/25461 +f 4363/5111/25462 4362/5109/25463 4368/5103/25464 +f 4368/5103/25465 4374/5105/25466 4363/5111/25467 +f 4409/5112/25468 4410/5113/25469 4414/5107/25470 +f 4414/5107/25471 4524/5106/25472 4409/5112/25473 +f 4521/5114/25474 4409/5112/25475 4524/5106/25476 +f 4524/5106/25477 4525/5108/25478 4521/5114/25479 +f 4364/5115/25480 4355/5116/25481 4360/5110/25482 +f 4360/5110/25483 4362/5109/25484 4364/5115/25485 +f 4365/5117/25486 4364/5115/25487 4362/5109/25488 +f 4362/5109/25489 4363/5111/25490 4365/5117/25491 +f 4408/5118/25492 4390/5119/25493 4410/5113/25494 +f 4410/5113/25495 4409/5112/25496 4408/5118/25497 +f 4386/5120/25498 4408/5118/25499 4409/5112/25500 +f 4409/5112/25501 4521/5114/25502 4386/5120/25503 +f 4384/5121/25504 4391/5122/25505 4390/5119/25506 +f 4390/5119/25507 4408/5118/25508 4384/5121/25509 +f 4385/5123/25510 4384/5121/25511 4408/5118/25512 +f 4408/5118/25513 4386/5120/25514 4385/5123/25515 +f 4364/5115/25516 4365/5117/25517 4391/5122/25518 +f 4391/5122/25519 4384/5121/25520 4364/5115/25521 +f 4355/5116/25522 4364/5115/25523 4384/5121/25524 +f 4384/5121/25525 4385/5123/25526 4355/5116/25527 +f 4475/5091/25528 4482/5085/25529 4485/5084/25530 +f 4485/5084/25531 4476/5092/25532 4475/5091/25533 +f 4487/5082/25534 4482/5085/25535 4483/5124/25536 +f 4483/5124/25537 4488/5125/25538 4487/5082/25539 +f 4533/5126/25540 4532/5086/25541 4487/5082/25542 +f 4487/5082/25543 4488/5125/25544 4533/5126/25545 +f 4534/5127/25546 4522/5088/25547 4532/5086/25548 +f 4532/5086/25549 4533/5126/25550 4534/5127/25551 +f 4527/5128/25552 4525/5108/25553 4522/5088/25554 +f 4522/5088/25555 4534/5127/25556 4527/5128/25557 +f 4525/5108/25558 4527/5128/25559 4520/5129/25560 +f 4520/5129/25561 4521/5114/25562 4525/5108/25563 +f 4521/5114/25564 4520/5129/25565 4387/5130/25566 +f 4387/5130/25567 4386/5120/25568 4521/5114/25569 +f 4386/5120/25570 4387/5130/25571 4349/5131/25572 +f 4349/5131/25573 4385/5123/25574 4386/5120/25575 +f 4354/5132/25576 4355/5116/25577 4385/5123/25578 +f 4385/5123/25579 4349/5131/25580 4354/5132/25581 +f 4353/5133/25582 4360/5110/25583 4355/5116/25584 +f 4355/5116/25585 4354/5132/25586 4353/5133/25587 +f 4360/5110/25588 4353/5133/25589 4352/5134/25590 +f 4352/5134/25591 4359/5104/25592 4360/5110/25593 +f 4359/5104/25594 4352/5134/25595 4356/5135/25596 +f 4356/5135/25597 4358/5101/25598 4359/5104/25599 +f 4474/5090/25600 4358/5101/25601 4423/5136/25602 +f 4423/5136/25603 4472/5137/25604 4474/5090/25605 +f 4474/5090/25606 4472/5137/25607 4477/5138/25608 +f 4477/5138/25609 4475/5091/25610 4474/5090/25611 +f 4477/5138/25612 4483/5124/25613 4482/5085/25614 +f 4482/5085/25615 4475/5091/25616 4477/5138/25617 +f 4483/5124/25618 4477/5138/25619 4479/5139/25620 +f 4479/5139/25621 4484/5140/25622 4483/5124/25623 +f 4356/5135/25624 4352/5134/25625 4176/5141/25626 +f 4176/5141/25627 4357/5142/25628 4356/5135/25629 +f 4346/5143/25630 4356/5135/25631 4357/5142/25632 +f 4357/5142/25633 4345/5144/25634 4346/5143/25635 +f 4477/5138/25636 4472/5137/25637 4473/5145/25638 +f 4473/5145/25639 4479/5139/25640 4477/5138/25641 +f 4427/5146/25642 4428/5147/25643 4445/5148/25644 +f 4445/5148/25645 4473/5145/25646 4427/5146/25647 +f 4473/5145/25648 4445/5148/25649 4478/5149/25650 +f 4478/5149/25651 4479/5139/25652 4473/5145/25653 +f 4478/5149/25654 4445/5148/25655 4446/5150/25656 +f 4446/5150/25657 4447/5151/25658 4478/5149/25659 +f 4446/5150/25660 4445/5148/25661 4428/5147/25662 +f 4428/5147/25663 4426/5152/25664 4446/5150/25665 +f 4351/5153/25666 4176/5141/25667 4352/5134/25668 +f 4352/5134/25669 4353/5133/25670 4351/5153/25671 +f 4350/5154/25672 4349/5131/25673 4387/5130/25674 +f 4387/5130/25675 4517/5155/25676 4350/5154/25677 +f 4350/5154/25678 4348/5156/25679 4354/5132/25680 +f 4354/5132/25681 4349/5131/25682 4350/5154/25683 +f 4348/5156/25684 4351/5153/25685 4353/5133/25686 +f 4353/5133/25687 4354/5132/25688 4348/5156/25689 +f 4534/5127/25690 4535/5157/25691 4528/5158/25692 +f 4528/5158/25693 4527/5128/25694 4534/5127/25695 +f 4528/5158/25696 4526/5159/25697 4520/5129/25698 +f 4520/5129/25699 4527/5128/25700 4528/5158/25701 +f 4520/5129/25702 4526/5159/25703 4517/5155/25704 +f 4517/5155/25705 4387/5130/25706 4520/5129/25707 +f 4534/5127/25708 4533/5126/25709 4536/5160/25710 +f 4536/5160/25711 4535/5157/25712 4534/5127/25713 +f 4420/5161/25714 4346/5143/25715 4345/5144/25716 +f 4345/5144/25717 4415/5162/25718 4420/5161/25719 +f 4426/5152/25720 4428/5147/25721 4421/5163/25722 +f 4421/5163/25723 4417/5164/25724 4426/5152/25725 +f 4420/5161/25726 4415/5162/25727 4417/5164/25728 +f 4417/5164/25729 4421/5163/25730 4420/5161/25731 +f 4417/5164/25732 4415/5162/25733 4416/5165/25734 +f 4416/5165/25735 4418/5166/25736 4417/5164/25737 +f 4416/5165/25738 4210/4906/25739 4216/4905/25740 +f 4216/4905/25741 4418/5166/25742 4416/5165/25743 +f 4212/4907/25744 4210/4906/25745 4416/5165/25746 +f 4416/5165/25747 4415/5162/25748 4212/4907/25749 +f 4124/4908/25750 4212/4907/25751 4415/5162/25752 +f 4415/5162/25753 4345/5144/25754 4124/4908/25755 +f 4427/5146/25756 4420/5161/25757 4421/5163/25758 +f 4421/5163/25759 4428/5147/25760 4427/5146/25761 +f 4420/5161/25762 4427/5146/25763 4423/5136/25764 +f 4423/5136/25765 4346/5143/25766 4420/5161/25767 +f 4125/4909/25768 4124/4908/25769 4345/5144/25770 +f 4345/5144/25771 4357/5142/25772 4125/4909/25773 +f 4174/4910/25774 4125/4909/25775 4357/5142/25776 +f 4357/5142/25777 4176/5141/25778 4174/4910/25779 +f 4178/4911/25780 4174/4910/25781 4176/5141/25782 +f 4176/5141/25783 4351/5153/25784 4178/4911/25785 +f 4351/5153/25786 4348/5156/25787 4132/4912/25788 +f 4132/4912/25789 4178/4911/25790 4351/5153/25791 +f 4132/4912/25792 4348/5156/25793 4347/5167/25794 +f 4347/5167/25795 4130/4913/25796 4132/4912/25797 +f 4348/5156/25798 4350/5154/25799 4514/5168/25800 +f 4514/5168/25801 4347/5167/25802 4348/5156/25803 +f 4516/5169/25804 4514/5168/25805 4350/5154/25806 +f 4350/5154/25807 4517/5155/25808 4516/5169/25809 +f 4519/5170/25810 4516/5169/25811 4517/5155/25812 +f 4517/5155/25813 4526/5159/25814 4519/5170/25815 +f 4519/5170/25816 4526/5159/25817 4528/5158/25818 +f 4528/5158/25819 4530/5171/25820 4519/5170/25821 +f 4540/5172/25822 4530/5171/25823 4528/5158/25824 +f 4528/5158/25825 4535/5157/25826 4540/5172/25827 +f 4489/5173/25828 4536/5160/25829 4533/5126/25830 +f 4533/5126/25831 4488/5125/25832 4489/5173/25833 +f 4484/5140/25834 4489/5173/25835 4488/5125/25836 +f 4488/5125/25837 4483/5124/25838 4484/5140/25839 +f 4535/5157/25840 4536/5160/25841 4537/5174/25842 +f 4537/5174/25843 4540/5172/25844 4535/5157/25845 +f 4510/5175/25846 4537/5174/25847 4536/5160/25848 +f 4536/5160/25849 4489/5173/25850 4510/5175/25851 +f 4502/5176/25852 4510/5175/25853 4489/5173/25854 +f 4489/5173/25855 4484/5140/25856 4502/5176/25857 +f 4479/5139/25858 4478/5149/25859 4480/5177/25860 +f 4480/5177/25861 4484/5140/25862 4479/5139/25863 +f 4484/5140/25864 4480/5177/25865 4500/5178/25866 +f 4500/5178/25867 4502/5176/25868 4484/5140/25869 +f 4481/5179/25870 4480/5177/25871 4478/5149/25872 +f 4478/5149/25873 4447/5151/25874 4481/5179/25875 +f 4426/5152/25876 4417/5164/25877 4434/5180/25878 +f 4434/5180/25879 4422/5181/25880 4426/5152/25881 +f 4447/5151/25882 4446/5150/25883 4448/5182/25884 +f 4448/5182/25885 4441/5183/25886 4447/5151/25887 +f 4426/5152/25888 4422/5181/25889 4448/5182/25890 +f 4448/5182/25891 4446/5150/25892 4426/5152/25893 +f 4418/5166/25894 4419/5184/25895 4434/5180/25896 +f 4434/5180/25897 4417/5164/25898 4418/5166/25899 +f 4216/4905/25900 4217/4932/25901 4419/5184/25902 +f 4419/5184/25903 4418/5166/25904 4216/4905/25905 +f 4481/5179/25906 4447/5151/25907 4441/5183/25908 +f 4441/5183/25909 4449/5185/25910 4481/5179/25911 +f 4449/5185/25912 4441/5183/25913 4439/5186/25914 +f 4439/5186/25915 4444/5187/25916 4449/5185/25917 +f 4444/5187/25918 4439/5186/25919 4429/5188/25920 +f 4429/5188/25921 4436/5189/25922 4444/5187/25923 +f 4247/4938/25924 4429/5188/25925 4430/5190/25926 +f 4430/5190/25927 4244/4939/25928 4247/4938/25929 +f 4217/4932/25930 4244/4939/25931 4430/5190/25932 +f 4430/5190/25933 4419/5184/25934 4217/4932/25935 +f 4422/5181/25936 4434/5180/25937 4435/5191/25938 +f 4435/5191/25939 4424/5192/25940 4422/5181/25941 +f 4441/5183/25942 4448/5182/25943 4442/5193/25944 +f 4442/5193/25945 4443/5194/25946 4441/5183/25947 +f 4424/5192/25948 4442/5193/25949 4448/5182/25950 +f 4448/5182/25951 4422/5181/25952 4424/5192/25953 +f 4419/5184/25954 4430/5190/25955 4435/5191/25956 +f 4435/5191/25957 4434/5180/25958 4419/5184/25959 +f 4430/5190/25960 4429/5188/25961 4431/5195/25962 +f 4431/5195/25963 4432/5196/25964 4430/5190/25965 +f 4439/5186/25966 4440/5197/25967 4431/5195/25968 +f 4431/5195/25969 4429/5188/25970 4439/5186/25971 +f 4435/5191/25972 4430/5190/25973 4432/5196/25974 +f 4432/5196/25975 4433/5198/25976 4435/5191/25977 +f 4435/5191/25978 4433/5198/25979 4425/5199/25980 +f 4425/5199/25981 4424/5192/25982 4435/5191/25983 +f 4443/5194/25984 4440/5197/25985 4439/5186/25986 +f 4439/5186/25987 4441/5183/25988 4443/5194/25989 +f 4442/5193/25990 4424/5192/25991 4425/5199/25992 +f 4425/5199/25993 4443/5194/25994 4442/5193/25995 +f 4425/5199/25996 4433/5198/25997 4440/5197/25998 +f 4440/5197/25999 4443/5194/26000 4425/5199/26001 +f 4432/5196/26002 4431/5195/26003 4440/5197/26004 +f 4440/5197/26005 4433/5198/26006 4432/5196/26007 +f 4502/5176/26008 4500/5178/26009 4501/5200/26010 +f 4501/5200/26011 4503/5201/26012 4502/5176/26013 +f 4507/5202/26014 4509/5203/26015 4503/5201/26016 +f 4503/5201/26017 4501/5200/26018 4507/5202/26019 +f 4509/5203/26020 4507/5202/26021 4505/5204/26022 +f 4505/5204/26023 4508/5205/26024 4509/5203/26025 +f 4621/5206/26026 4508/5205/26027 4505/5204/26028 +f 4505/5204/26029 4471/5207/26030 4621/5206/26031 +f 4621/5206/26032 4471/5207/26033 4469/5208/26034 +f 4469/5208/26035 4620/5209/26036 4621/5206/26037 +f 4457/5210/26038 4617/5211/26039 4620/5209/26040 +f 4620/5209/26041 4469/5208/26042 4457/5210/26043 +f 4457/5210/26044 4454/5212/26045 4616/5213/26046 +f 4616/5213/26047 4617/5211/26048 4457/5210/26049 +f 4480/5177/26050 4481/5179/26051 4492/5214/26052 +f 4492/5214/26053 4500/5178/26054 4480/5177/26055 +f 4500/5178/26056 4492/5214/26057 4499/5215/26058 +f 4499/5215/26059 4501/5200/26060 4500/5178/26061 +f 4501/5200/26062 4499/5215/26063 4506/5216/26064 +f 4506/5216/26065 4507/5202/26066 4501/5200/26067 +f 4507/5202/26068 4506/5216/26069 4504/5217/26070 +f 4504/5217/26071 4505/5204/26072 4507/5202/26073 +f 4505/5204/26074 4504/5217/26075 4470/5218/26076 +f 4470/5218/26077 4471/5207/26078 4505/5204/26079 +f 4471/5207/26080 4470/5218/26081 4468/5219/26082 +f 4468/5219/26083 4469/5208/26084 4471/5207/26085 +f 4469/5208/26086 4468/5219/26087 4456/5220/26088 +f 4456/5220/26089 4457/5210/26090 4469/5208/26091 +f 4272/4971/26092 4270/4973/26093 4454/5212/26094 +f 4454/5212/26095 4455/5221/26096 4272/4971/26097 +f 4470/5218/26098 4504/5217/26099 4493/5222/26100 +f 4493/5222/26101 4466/5223/26102 4470/5218/26103 +f 4470/5218/26104 4466/5223/26105 4462/5224/26106 +f 4462/5224/26107 4468/5219/26108 4470/5218/26109 +f 4468/5219/26110 4462/5224/26111 4453/5225/26112 +f 4453/5225/26113 4456/5220/26114 4468/5219/26115 +f 4494/5226/26116 4493/5222/26117 4504/5217/26118 +f 4504/5217/26119 4506/5216/26120 4494/5226/26121 +f 4499/5215/26122 4495/5227/26123 4494/5226/26124 +f 4494/5226/26125 4506/5216/26126 4499/5215/26127 +f 4495/5227/26128 4499/5215/26129 4492/5214/26130 +f 4492/5214/26131 4490/5228/26132 4495/5227/26133 +f 4464/5229/26134 4490/5228/26135 4492/5214/26136 +f 4492/5214/26137 4481/5179/26138 4464/5229/26139 +f 4450/5230/26140 4464/5229/26141 4481/5179/26142 +f 4481/5179/26143 4449/5185/26144 4450/5230/26145 +f 4450/5230/26146 4449/5185/26147 4444/5187/26148 +f 4444/5187/26149 4438/5231/26150 4450/5230/26151 +f 4437/5232/26152 4438/5231/26153 4444/5187/26154 +f 4444/5187/26155 4436/5189/26156 4437/5232/26157 +f 4249/4985/26158 4437/5232/26159 4436/5189/26160 +f 4436/5189/26161 4248/4986/26162 4249/4985/26163 +f 4459/5233/26164 4451/5234/26165 4452/5235/26166 +f 4452/5235/26167 4453/5225/26168 4459/5233/26169 +f 4461/5236/26170 4459/5233/26171 4453/5225/26172 +f 4453/5225/26173 4462/5224/26174 4461/5236/26175 +f 4467/5237/26176 4461/5236/26177 4462/5224/26178 +f 4462/5224/26179 4466/5223/26180 4467/5237/26181 +f 4467/5237/26182 4466/5223/26183 4493/5222/26184 +f 4493/5222/26185 4496/5238/26186 4467/5237/26187 +f 4494/5226/26188 4497/5239/26189 4496/5238/26190 +f 4496/5238/26191 4493/5222/26192 4494/5226/26193 +f 4495/5227/26194 4498/5240/26195 4497/5239/26196 +f 4497/5239/26197 4494/5226/26198 4495/5227/26199 +f 4490/5228/26200 4491/5241/26201 4498/5240/26202 +f 4498/5240/26203 4495/5227/26204 4490/5228/26205 +f 4465/5242/26206 4491/5241/26207 4490/5228/26208 +f 4490/5228/26209 4464/5229/26210 4465/5242/26211 +f 4463/5243/26212 4465/5242/26213 4464/5229/26214 +f 4464/5229/26215 4450/5230/26216 4463/5243/26217 +f 4460/5244/26218 4463/5243/26219 4450/5230/26220 +f 4450/5230/26221 4438/5231/26222 4460/5244/26223 +f 4458/5245/26224 4460/5244/26225 4438/5231/26226 +f 4438/5231/26227 4437/5232/26228 4458/5245/26229 +f 4249/4985/26230 4250/5000/26231 4458/5245/26232 +f 4458/5245/26233 4437/5232/26234 4249/4985/26235 +f 4498/5240/26236 4491/5241/26237 4496/5238/26238 +f 4496/5238/26239 4497/5239/26240 4498/5240/26241 +f 4467/5237/26242 4496/5238/26243 4491/5241/26244 +f 4491/5241/26245 4465/5242/26246 4467/5237/26247 +f 4461/5236/26248 4467/5237/26249 4465/5242/26250 +f 4465/5242/26251 4463/5243/26252 4461/5236/26253 +f 4459/5233/26254 4461/5236/26255 4463/5243/26256 +f 4463/5243/26257 4460/5244/26258 4459/5233/26259 +f 4270/4973/26260 4555/5001/26261 4616/5213/26262 +f 4616/5213/26263 4454/5212/26264 4270/4973/26265 +f 4454/5212/26266 4457/5210/26267 4456/5220/26268 +f 4456/5220/26269 4455/5221/26270 4454/5212/26271 +f 4455/5221/26272 4456/5220/26273 4453/5225/26274 +f 4453/5225/26275 4452/5235/26276 4455/5221/26277 +f 4451/5234/26278 4264/5003/26279 4266/5002/26280 +f 4266/5002/26281 4452/5235/26282 4451/5234/26283 +f 4460/5244/26284 4458/5245/26285 4451/5234/26286 +f 4451/5234/26287 4459/5233/26288 4460/5244/26289 +f 4451/5234/26290 4458/5245/26291 4250/5000/26292 +f 4250/5000/26293 4264/5003/26294 4451/5234/26295 +f 4502/5176/26296 4503/5201/26297 4512/5246/26298 +f 4512/5246/26299 4510/5175/26300 4502/5176/26301 +f 4510/5175/26302 4512/5246/26303 4538/5247/26304 +f 4538/5247/26305 4537/5174/26306 4510/5175/26307 +f 4537/5174/26308 4538/5247/26309 4541/5248/26310 +f 4541/5248/26311 4540/5172/26312 4537/5174/26313 +f 4511/5249/26314 4512/5246/26315 4503/5201/26316 +f 4503/5201/26317 4509/5203/26318 4511/5249/26319 +f 4629/5250/26320 4511/5249/26321 4509/5203/26322 +f 4509/5203/26323 4508/5205/26324 4629/5250/26325 +f 4628/5251/26326 4629/5250/26327 4508/5205/26328 +f 4508/5205/26329 4621/5206/26330 4628/5251/26331 +f 4622/5252/26332 4628/5251/26333 4621/5206/26334 +f 4621/5206/26335 4620/5209/26336 4622/5252/26337 +f 4619/5253/26338 4622/5252/26339 4620/5209/26340 +f 4620/5209/26341 4617/5211/26342 4619/5253/26343 +f 4618/5254/26344 4619/5253/26345 4617/5211/26346 +f 4617/5211/26347 4616/5213/26348 4618/5254/26349 +f 4618/5254/26350 4616/5213/26351 4555/5001/26352 +f 4555/5001/26353 4557/5013/26354 4618/5254/26355 +f 4539/5255/26356 4538/5247/26357 4512/5246/26358 +f 4512/5246/26359 4511/5249/26360 4539/5255/26361 +f 4629/5250/26362 4638/5256/26363 4539/5255/26364 +f 4539/5255/26365 4511/5249/26366 4629/5250/26367 +f 4630/5257/26368 4638/5256/26369 4629/5250/26370 +f 4629/5250/26371 4628/5251/26372 4630/5257/26373 +f 4628/5251/26374 4622/5252/26375 4625/5258/26376 +f 4625/5258/26377 4630/5257/26378 4628/5251/26379 +f 4624/5259/26380 4625/5258/26381 4622/5252/26382 +f 4622/5252/26383 4619/5253/26384 4624/5259/26385 +f 4623/5260/26386 4624/5259/26387 4619/5253/26388 +f 4619/5253/26389 4618/5254/26390 4623/5260/26391 +f 4618/5254/26392 4557/5013/26393 4560/5020/26394 +f 4560/5020/26395 4623/5260/26396 4618/5254/26397 +f 4538/5247/26398 4539/5255/26399 4642/5261/26400 +f 4642/5261/26401 4543/5262/26402 4538/5247/26403 +f 4639/5263/26404 4642/5261/26405 4539/5255/26406 +f 4539/5255/26407 4638/5256/26408 4639/5263/26409 +f 4640/5264/26410 4639/5263/26411 4638/5256/26412 +f 4638/5256/26413 4630/5257/26414 4640/5264/26415 +f 4626/5265/26416 4640/5264/26417 4630/5257/26418 +f 4630/5257/26419 4625/5258/26420 4626/5265/26421 +f 4632/5266/26422 4626/5265/26423 4625/5258/26424 +f 4625/5258/26425 4624/5259/26426 4632/5266/26427 +f 4631/5267/26428 4632/5266/26429 4624/5259/26430 +f 4624/5259/26431 4623/5260/26432 4631/5267/26433 +f 4631/5267/26434 4623/5260/26435 4560/5020/26436 +f 4560/5020/26437 4564/5028/26438 4631/5267/26439 +f 4538/5247/26440 4543/5262/26441 4542/5268/26442 +f 4542/5268/26443 4541/5248/26444 4538/5247/26445 +f 4540/5172/26446 4541/5248/26447 4531/5269/26448 +f 4531/5269/26449 4530/5171/26450 4540/5172/26451 +f 4530/5171/26452 4531/5269/26453 4529/5271/26454 +f 4529/5271/26455 4519/5170/26456 4530/5171/26457 +f 4519/5170/26458 4529/5271/26459 4518/5272/26460 +f 4518/5272/26461 4516/5169/26462 4519/5170/26463 +f 4516/5169/26464 4518/5272/26465 4515/5276/26466 +f 4515/5276/26467 4514/5168/26468 4516/5169/26469 +f 4513/5313/26470 4347/5167/26471 4514/5168/26472 +f 4514/5168/26473 4515/5276/26474 4513/5313/26475 +f 4347/5167/26476 4513/5313/26477 4326/5035/26478 +f 4326/5035/26479 4130/4913/26480 4347/5167/26481 +f 4632/5266/26482 4631/5267/26483 4633/5314/26484 +f 4633/5314/26485 4634/5315/26486 4632/5266/26487 +f 4632/5266/26488 4634/5315/26489 4627/5316/26490 +f 4627/5316/26491 4626/5265/26492 4632/5266/26493 +f 4640/5264/26494 4626/5265/26495 4627/5316/26496 +f 4627/5316/26497 4641/5317/26498 4640/5264/26499 +f 4649/5318/26500 4639/5263/26501 4640/5264/26502 +f 4640/5264/26503 4641/5317/26504 4649/5318/26505 +f 4649/5318/26506 4643/5319/26507 4642/5261/26508 +f 4642/5261/26509 4639/5263/26510 4649/5318/26511 +f 4642/5261/26512 4643/5319/26513 4544/5320/26514 +f 4544/5320/26515 4543/5262/26516 4642/5261/26517 +f 4543/5262/26518 4544/5320/26519 4698/5321/26520 +f 4698/5321/26521 4542/5268/26522 4543/5262/26523 +f 4698/5321/26524 4544/5320/26525 4701/5322/26526 +f 4701/5322/26527 4699/5323/26528 4698/5321/26529 +f 4701/5322/26530 4544/5320/26531 4643/5319/26532 +f 4643/5319/26533 4644/5324/26534 4701/5322/26535 +f 4643/5319/26536 4649/5318/26537 4647/5325/26538 +f 4647/5325/26539 4644/5324/26540 4643/5319/26541 +f 4649/5318/26542 4641/5317/26543 4635/5326/26544 +f 4635/5326/26545 4647/5325/26546 4649/5318/26547 +f 4627/5316/26548 4658/5327/26549 4635/5326/26550 +f 4635/5326/26551 4641/5317/26552 4627/5316/26553 +f 4654/5328/26554 4658/5327/26555 4627/5316/26556 +f 4627/5316/26557 4634/5315/26558 4654/5328/26559 +f 4653/5329/26560 4654/5328/26561 4634/5315/26562 +f 4634/5315/26563 4633/5314/26564 4653/5329/26565 +f 4605/5052/26566 4653/5329/26567 4633/5314/26568 +f 4633/5314/26569 4568/5053/26570 4605/5052/26571 +f 4700/5374/26572 4699/5375/26573 4701/5377/26574 +f 4701/5377/26575 4704/5378/26576 4700/5374/26577 +f 4648/5379/26578 4645/5380/26579 4644/5381/26580 +f 4644/5381/26581 4647/5382/26582 4648/5379/26583 +f 4636/5383/26584 4648/5379/26585 4647/5382/26586 +f 4647/5382/26587 4635/5384/26588 4636/5383/26589 +f 4635/5384/26590 4658/5385/26591 4659/5386/26592 +f 4659/5386/26593 4636/5383/26594 4635/5384/26595 +f 4655/5387/26596 4659/5386/26597 4658/5385/26598 +f 4658/5385/26599 4654/5388/26600 4655/5387/26601 +f 4656/5389/26602 4655/5387/26603 4654/5388/26604 +f 4654/5388/26605 4653/5390/26606 4656/5389/26607 +f 4606/5460/26608 4656/5389/26609 4653/5390/26610 +f 4653/5390/26611 4605/5461/26612 4606/5460/26613 +f 4656/5389/26614 4606/5460/26615 4615/5462/26616 +f 4615/5462/26617 4663/5391/26618 4656/5389/26619 +f 4656/5389/26620 4663/5391/26621 4657/5392/26622 +f 4657/5392/26623 4655/5387/26624 4656/5389/26625 +f 4655/5387/26626 4657/5392/26627 4660/5393/26628 +f 4660/5393/26629 4659/5386/26630 4655/5387/26631 +f 4637/5394/26632 4636/5383/26633 4659/5386/26634 +f 4659/5386/26635 4660/5393/26636 4637/5394/26637 +f 4648/5379/26638 4636/5383/26639 4637/5394/26640 +f 4637/5394/26641 4650/5396/26642 4648/5379/26643 +f 4646/5397/26644 4645/5380/26645 4648/5379/26646 +f 4648/5379/26647 4650/5396/26648 4646/5397/26649 +f 4645/5380/26650 4646/5397/26651 4702/5398/26652 +f 4702/5398/26653 4644/5381/26654 4645/5380/26655 +f 4701/5377/26656 4644/5381/26657 4702/5398/26658 +f 4702/5398/26659 4704/5378/26660 4701/5377/26661 +f 4696/5399/26662 4700/5374/26663 4705/5400/26664 +f 4705/5400/26665 4697/5401/26666 4696/5399/26667 +f 4729/5402/26668 4703/5403/26669 4704/5378/26670 +f 4704/5378/26671 4702/5398/26672 4729/5402/26673 +f 4730/5404/26674 4729/5402/26675 4702/5398/26676 +f 4702/5398/26677 4646/5397/26678 4730/5404/26679 +f 4652/5405/26680 4730/5404/26681 4646/5397/26682 +f 4646/5397/26683 4650/5396/26684 4652/5405/26685 +f 4651/5406/26686 4652/5405/26687 4650/5396/26688 +f 4650/5396/26689 4637/5394/26690 4651/5406/26691 +f 4670/5407/26692 4651/5406/26693 4637/5394/26694 +f 4637/5394/26695 4660/5393/26696 4670/5407/26697 +f 4661/5408/26698 4670/5407/26699 4660/5393/26700 +f 4660/5393/26701 4657/5392/26702 4661/5408/26703 +f 4665/5409/26704 4661/5408/26705 4657/5392/26706 +f 4657/5392/26707 4663/5391/26708 4665/5409/26709 +f 4662/5410/26710 4663/5391/26711 4615/5462/26712 +f 4615/5462/26713 4613/5463/26714 4662/5410/26715 +f 4664/5411/26716 4665/5409/26717 4663/5391/26718 +f 4663/5391/26719 4662/5410/26720 4664/5411/26721 +f 4669/5412/26722 4666/5413/26723 4665/5409/26724 +f 4665/5409/26725 4664/5411/26726 4669/5412/26727 +f 4671/5414/26728 4661/5408/26729 4665/5409/26730 +f 4665/5409/26731 4666/5413/26732 4671/5414/26733 +f 4672/5415/26734 4670/5407/26735 4661/5408/26736 +f 4661/5408/26737 4671/5414/26738 4672/5415/26739 +f 4673/5416/26740 4651/5406/26741 4670/5407/26742 +f 4670/5407/26743 4672/5415/26744 4673/5416/26745 +f 4733/5417/26746 4652/5405/26747 4651/5406/26748 +f 4651/5406/26749 4673/5416/26750 4733/5417/26751 +f 4652/5405/26752 4733/5417/26753 4731/5418/26754 +f 4731/5418/26755 4730/5404/26756 4652/5405/26757 +f 4732/5419/26758 4729/5402/26759 4730/5404/26760 +f 4730/5404/26761 4731/5418/26762 4732/5419/26763 +f 4729/5402/26764 4732/5419/26765 4706/5420/26766 +f 4706/5420/26767 4703/5403/26768 4729/5402/26769 +f 4700/5374/26770 4704/5378/26771 4703/5403/26772 +f 4703/5403/26773 4705/5400/26774 4700/5374/26775 +f 4703/5403/26776 4706/5420/26777 4697/5401/26778 +f 4697/5401/26779 4705/5400/26780 4703/5403/26781 +f 4696/5399/26782 4697/5401/26783 4708/5421/26784 +f 4708/5421/26785 4707/5422/26786 4696/5399/26787 +f 4707/5422/26788 4708/5421/26789 4693/5465/26790 +f 4693/5465/26791 4690/5464/26792 4707/5422/26793 +f 4668/5423/26794 4667/5424/26795 4666/5413/26796 +f 4666/5413/26797 4669/5412/26798 4668/5423/26799 +f 4671/5414/26800 4666/5413/26801 4667/5424/26802 +f 4667/5424/26803 4676/5425/26804 4671/5414/26805 +f 4671/5414/26806 4676/5425/26807 4674/5426/26808 +f 4674/5426/26809 4672/5415/26810 4671/5414/26811 +f 4673/5416/26812 4672/5415/26813 4674/5426/26814 +f 4674/5426/26815 4740/5427/26816 4673/5416/26817 +f 4673/5416/26818 4740/5427/26819 4734/5428/26820 +f 4734/5428/26821 4733/5417/26822 4673/5416/26823 +f 4733/5417/26824 4734/5428/26825 4737/5429/26826 +f 4737/5429/26827 4731/5418/26828 4733/5417/26829 +f 4731/5418/26830 4737/5429/26831 4735/5430/26832 +f 4735/5430/26833 4732/5419/26834 4731/5418/26835 +f 4732/5419/26836 4735/5430/26837 4736/5431/26838 +f 4736/5431/26839 4706/5420/26840 4732/5419/26841 +f 4706/5420/26842 4736/5431/26843 4710/5432/26844 +f 4710/5432/26845 4697/5401/26846 4706/5420/26847 +f 4697/5401/26848 4710/5432/26849 4709/5433/26850 +f 4709/5433/26851 4708/5421/26852 4697/5401/26853 +f 4695/5466/26854 4693/5465/26855 4708/5421/26856 +f 4708/5421/26857 4709/5433/26858 4695/5466/26859 +f 4676/5425/26860 4667/5424/26861 4668/5423/26862 +f 4668/5423/26863 4677/5434/26864 4676/5425/26865 +f 4676/5425/26866 4677/5434/26867 4675/5435/26868 +f 4675/5435/26869 4674/5426/26870 4676/5425/26871 +f 4674/5426/26872 4675/5435/26873 4741/5436/26874 +f 4741/5436/26875 4740/5427/26876 4674/5426/26877 +f 4740/5427/26878 4741/5436/26879 4742/5437/26880 +f 4742/5437/26881 4734/5428/26882 4740/5427/26883 +f 4739/5438/26884 4737/5429/26885 4734/5428/26886 +f 4734/5428/26887 4742/5437/26888 4739/5438/26889 +f 4735/5430/26890 4737/5429/26891 4739/5438/26892 +f 4739/5438/26893 4738/5439/26894 4735/5430/26895 +f 4735/5430/26896 4738/5439/26897 4744/5440/26898 +f 4744/5440/26899 4736/5431/26900 4735/5430/26901 +f 4745/5441/26902 4710/5432/26903 4736/5431/26904 +f 4736/5431/26905 4744/5440/26906 4745/5441/26907 +f 4710/5432/26908 4745/5441/26909 4743/5442/26910 +f 4743/5442/26911 4709/5433/26912 4710/5432/26913 +f 4709/5433/26914 4743/5442/26915 4728/5467/26916 +f 4728/5467/26917 4695/5466/26918 4709/5433/26919 +f 4391/5122/26920 4365/5117/26921 4366/5330/26922 +f 4366/5330/26923 4388/5331/26924 4391/5122/26925 +f 4369/5335/26926 4366/5330/26927 4365/5117/26928 +f 4365/5117/26929 4363/5111/26930 4369/5335/26931 +f 4374/5105/26932 4375/5336/26933 4369/5335/26934 +f 4369/5335/26935 4363/5111/26936 4374/5105/26937 +f 4373/5102/26938 4376/5337/26939 4375/5336/26940 +f 4375/5336/26941 4374/5105/26942 4373/5102/26943 +f 4372/5099/26944 4377/5338/26945 4376/5337/26946 +f 4376/5337/26947 4373/5102/26948 4372/5099/26949 +f 4381/5095/26950 4382/5339/26951 4377/5338/26952 +f 4377/5338/26953 4372/5099/26954 4381/5095/26955 +f 4394/5094/26956 4395/5340/26957 4382/5339/26958 +f 4382/5339/26959 4381/5095/26960 4394/5094/26961 +f 4398/5346/26962 4395/5340/26963 4394/5094/26964 +f 4394/5094/26965 4397/5096/26966 4398/5346/26967 +f 4412/5097/26968 4402/5376/26969 4398/5346/26970 +f 4398/5346/26971 4397/5096/26972 4412/5097/26973 +f 4413/5098/26974 4403/5395/26975 4402/5376/26976 +f 4402/5376/26977 4412/5097/26978 4413/5098/26979 +f 4414/5107/26980 4404/5443/26981 4403/5395/26982 +f 4403/5395/26983 4413/5098/26984 4414/5107/26985 +f 4410/5113/26986 4400/5444/26987 4404/5443/26988 +f 4404/5443/26989 4414/5107/26990 4410/5113/26991 +f 4390/5119/26992 4392/5445/26993 4400/5444/26994 +f 4400/5444/26995 4410/5113/26996 4390/5119/26997 +f 4390/5119/26998 4391/5122/26999 4388/5331/27000 +f 4388/5331/27001 4392/5445/27002 4390/5119/27003 +f 4388/5331/27004 4366/5330/27005 4371/5446/27006 +f 4371/5446/27007 4389/5447/27008 4388/5331/27009 +f 4369/5335/27010 4370/5448/27011 4371/5446/27012 +f 4371/5446/27013 4366/5330/27014 4369/5335/27015 +f 4375/5336/27016 4378/5449/27017 4370/5448/27018 +f 4370/5448/27019 4369/5335/27020 4375/5336/27021 +f 4376/5337/27022 4379/5450/27023 4378/5449/27024 +f 4378/5449/27025 4375/5336/27026 4376/5337/27027 +f 4377/5338/27028 4380/5451/27029 4379/5450/27030 +f 4379/5450/27031 4376/5337/27032 4377/5338/27033 +f 4382/5339/27034 4383/5452/27035 4380/5451/27036 +f 4380/5451/27037 4377/5338/27038 4382/5339/27039 +f 4396/5453/27040 4383/5452/27041 4382/5339/27042 +f 4382/5339/27043 4395/5340/27044 4396/5453/27045 +f 4398/5346/27046 4399/5454/27047 4396/5453/27048 +f 4396/5453/27049 4395/5340/27050 4398/5346/27051 +f 4402/5376/27052 4405/5455/27053 4399/5454/27054 +f 4399/5454/27055 4398/5346/27056 4402/5376/27057 +f 4403/5395/27058 4406/5456/27059 4405/5455/27060 +f 4405/5455/27061 4402/5376/27062 4403/5395/27063 +f 4404/5443/27064 4407/5457/27065 4406/5456/27066 +f 4406/5456/27067 4403/5395/27068 4404/5443/27069 +f 4400/5444/27070 4401/5458/27071 4407/5457/27072 +f 4407/5457/27073 4404/5443/27074 4400/5444/27075 +f 4393/5459/27076 4401/5458/27077 4400/5444/27078 +f 4400/5444/27079 4392/5445/27080 4393/5459/27081 +f 4389/5447/27082 4393/5459/27083 4392/5445/27084 +f 4392/5445/27085 4388/5331/27086 4389/5447/27087 +f 4423/5136/27088 4427/5146/27089 4473/5145/27090 +f 4473/5145/27091 4472/5137/27092 4423/5136/27093 +f 4358/5101/27094 4356/5135/27095 4346/5143/27096 +f 4346/5143/27097 4423/5136/27098 4358/5101/27099 +f 4436/5189/27100 4429/5188/27101 4247/4938/27102 +f 4247/4938/27103 4248/4986/27104 4436/5189/27105 +f 4272/4971/27106 4455/5221/27107 4452/5235/27108 +f 4452/5235/27109 4266/5002/27110 4272/4971/27111 +f 4568/5053/27112 4633/5314/27113 4631/5267/27114 +f 4631/5267/27115 4564/5028/27116 4568/5053/27117 +f 4770/5468/27118 4771/5469/27119 4746/5470/27120 +f 4746/5470/27121 4747/5471/27122 4770/5468/27123 +f 4749/5472/27124 4748/5473/27125 4747/5471/27126 +f 4747/5471/27127 4746/5470/27128 4749/5472/27129 +f 4750/5475/27130 4748/5473/27131 4749/5472/27132 +f 4749/5472/27133 4751/5474/27134 4750/5475/27135 +f 4752/5477/27136 4750/5475/27137 4751/5474/27138 +f 4751/5474/27139 4753/5476/27140 4752/5477/27141 +f 4753/5476/27142 4755/5478/27143 4754/5479/27144 +f 4754/5479/27145 4752/5477/27146 4753/5476/27147 +f 4757/5480/27148 4754/5479/27149 4755/5478/27150 +f 4755/5478/27151 4756/5481/27152 4757/5480/27153 +f 4758/5482/27154 4759/5483/27155 4757/5480/27156 +f 4757/5480/27157 4756/5481/27158 4758/5482/27159 +f 4761/5485/27160 4759/5483/27161 4758/5482/27162 +f 4758/5482/27163 4760/5484/27164 4761/5485/27165 +f 4761/5485/27166 4760/5484/27167 4763/5487/27168 +f 4763/5487/27169 4762/5486/27170 4761/5485/27171 +f 4763/5487/27172 4765/5488/27173 4764/5489/27174 +f 4764/5489/27175 4762/5486/27176 4763/5487/27177 +f 4765/5488/27178 4767/5490/27179 4766/5491/27180 +f 4766/5491/27181 4764/5489/27182 4765/5488/27183 +f 4768/5493/27184 4766/5491/27185 4767/5490/27186 +f 4767/5490/27187 4769/5492/27188 4768/5493/27189 +f 4773/5495/27190 4771/5469/27191 4770/5468/27192 +f 4770/5468/27193 4772/5494/27194 4773/5495/27195 +f 4773/5495/27196 4772/5494/27197 4774/5496/27198 +f 4774/5496/27199 4775/5497/27200 4773/5495/27201 +f 4777/5499/27202 4775/5497/27203 4774/5496/27204 +f 4774/5496/27205 4776/5498/27206 4777/5499/27207 +f 4777/5499/27208 4776/5498/27209 4778/5500/27210 +f 4778/5500/27211 4779/5501/27212 4777/5499/27213 +f 4784/5503/27214 4785/5504/27215 4783/5505/27216 +f 4783/5505/27217 4782/5502/27218 4784/5503/27219 +f 4782/5502/27220 4783/5505/27221 4781/5506/27222 +f 4781/5506/27223 4780/5507/27224 4782/5502/27225 +f 4780/5507/27226 4781/5506/27227 4779/5501/27228 +f 4779/5501/27229 4778/5500/27230 4780/5507/27231 +f 4794/5509/27232 4795/5510/27233 4793/5511/27234 +f 4793/5511/27235 4792/5508/27236 4794/5509/27237 +f 4792/5508/27238 4793/5511/27239 4791/5512/27240 +f 4791/5512/27241 4790/5513/27242 4792/5508/27243 +f 4790/5513/27244 4791/5512/27245 4789/5514/27246 +f 4789/5514/27247 4788/5515/27248 4790/5513/27249 +f 4788/5515/27250 4789/5514/27251 4787/5516/27252 +f 4787/5516/27253 4786/5517/27254 4788/5515/27255 +f 4787/5516/27256 4785/5504/27257 4784/5503/27258 +f 4784/5503/27259 4786/5517/27260 4787/5516/27261 +f 4804/5519/27262 4768/5493/27263 4769/5492/27264 +f 4769/5492/27265 4805/5518/27266 4804/5519/27267 +f 4803/5520/27268 4802/5521/27269 4804/5519/27270 +f 4804/5519/27271 4805/5518/27272 4803/5520/27273 +f 4801/5522/27274 4800/5523/27275 4802/5521/27276 +f 4802/5521/27277 4803/5520/27278 4801/5522/27279 +f 4799/5524/27280 4798/5525/27281 4800/5523/27282 +f 4800/5523/27283 4801/5522/27284 4799/5524/27285 +f 4796/5526/27286 4798/5525/27287 4799/5524/27288 +f 4799/5524/27289 4797/5527/27290 4796/5526/27291 +f 4806/5528/27292 4800/5523/27293 4798/5525/27294 +f 4798/5525/27295 4807/5529/27296 4806/5528/27297 +f 4808/5530/27298 4807/5529/27299 4798/5525/27300 +f 4798/5525/27301 4796/5526/27302 4808/5530/27303 +f 4796/5526/27304 4794/5509/27305 4809/5531/27306 +f 4809/5531/27307 4808/5530/27308 4796/5526/27309 +f 4794/5509/27310 4792/5508/27311 4810/5532/27312 +f 4810/5532/27313 4809/5531/27314 4794/5509/27315 +f 4792/5508/27316 4790/5513/27317 4811/5533/27318 +f 4811/5533/27319 4810/5532/27320 4792/5508/27321 +f 4786/5517/27322 4813/5534/27323 4812/5535/27324 +f 4812/5535/27325 4788/5515/27326 4786/5517/27327 +f 4780/5507/27328 4815/5536/27329 4814/5537/27330 +f 4814/5537/27331 4782/5502/27332 4780/5507/27333 +f 4786/5517/27334 4784/5503/27335 4782/5502/27336 +f 4782/5502/27337 4813/5534/27338 4786/5517/27339 +f 4813/5534/27340 4782/5502/27341 4814/5537/27342 +f 4814/5537/27343 4812/5535/27344 4813/5534/27345 +f 4816/5538/27346 4802/5521/27347 4800/5523/27348 +f 4800/5523/27349 4806/5528/27350 4816/5538/27351 +f 4817/5539/27352 4804/5519/27353 4802/5521/27354 +f 4802/5521/27355 4816/5538/27356 4817/5539/27357 +f 4804/5519/27358 4817/5539/27359 4818/5540/27360 +f 4818/5540/27361 4768/5493/27362 4804/5519/27363 +f 4907/5541/27364 4766/5491/27365 4768/5493/27366 +f 4768/5493/27367 4818/5540/27368 4907/5541/27369 +f 4842/5542/27370 4764/5489/27371 4766/5491/27372 +f 4766/5491/27373 4907/5541/27374 4842/5542/27375 +f 4819/5543/27376 4762/5486/27377 4764/5489/27378 +f 4764/5489/27379 4842/5542/27380 4819/5543/27381 +f 4819/5543/27382 4759/5483/27383 4761/5485/27384 +f 4761/5485/27385 4762/5486/27386 4819/5543/27387 +f 4820/5544/27388 4757/5480/27389 4759/5483/27390 +f 4759/5483/27391 4819/5543/27392 4820/5544/27393 +f 4757/5480/27394 4820/5544/27395 4821/5545/27396 +f 4821/5545/27397 4754/5479/27398 4757/5480/27399 +f 4754/5479/27400 4821/5545/27401 4822/5546/27402 +f 4822/5546/27403 4752/5477/27404 4754/5479/27405 +f 4823/5547/27406 4750/5475/27407 4752/5477/27408 +f 4752/5477/27409 4822/5546/27410 4823/5547/27411 +f 4824/5548/27412 4748/5473/27413 4750/5475/27414 +f 4750/5475/27415 4823/5547/27416 4824/5548/27417 +f 4825/5549/27418 4747/5471/27419 4748/5473/27420 +f 4748/5473/27421 4824/5548/27422 4825/5549/27423 +f 4747/5471/27424 4825/5549/27425 4826/5550/27426 +f 4826/5550/27427 4770/5468/27428 4747/5471/27429 +f 4772/5494/27430 4770/5468/27431 4826/5550/27432 +f 4826/5550/27433 4827/5551/27434 4772/5494/27435 +f 4828/5552/27436 4829/5553/27437 4776/5498/27438 +f 4776/5498/27439 4774/5496/27440 4828/5552/27441 +f 4778/5500/27442 4776/5498/27443 4829/5553/27444 +f 4829/5553/27445 4830/5554/27446 4778/5500/27447 +f 4815/5536/27448 4780/5507/27449 4778/5500/27450 +f 4778/5500/27451 4830/5554/27452 4815/5536/27453 +f 4815/5536/27454 4831/5555/27455 4812/5535/27456 +f 4812/5535/27457 4814/5537/27458 4815/5536/27459 +f 4832/5556/27460 4833/5557/27461 4810/5532/27462 +f 4810/5532/27463 4811/5533/27464 4832/5556/27465 +f 4834/5558/27466 4831/5555/27467 4815/5536/27468 +f 4815/5536/27469 4830/5554/27470 4834/5558/27471 +f 4810/5532/27472 4833/5557/27473 4835/5559/27474 +f 4835/5559/27475 4809/5531/27476 4810/5532/27477 +f 4809/5531/27478 4835/5559/27479 4836/5560/27480 +f 4836/5560/27481 4808/5530/27482 4809/5531/27483 +f 4808/5530/27484 4836/5560/27485 4837/5561/27486 +f 4837/5561/27487 4807/5529/27488 4808/5530/27489 +f 4845/5562/27490 4806/5528/27491 4807/5529/27492 +f 4807/5529/27493 4837/5561/27494 4845/5562/27495 +f 4839/5563/27496 4817/5539/27497 4816/5538/27498 +f 4816/5538/27499 4838/5564/27500 4839/5563/27501 +f 4841/5565/27502 4840/5566/27503 4821/5545/27504 +f 4821/5545/27505 4820/5544/27506 4841/5565/27507 +f 4841/5565/27508 4820/5544/27509 4819/5543/27510 +f 4819/5543/27511 4842/5542/27512 4841/5565/27513 +f 4818/5540/27514 4906/5567/27515 4907/5541/27516 +f 4905/5569/27517 4906/5567/27518 4818/5540/27519 +f 4818/5540/27520 4843/5568/27521 4905/5569/27522 +f 4843/5568/27523 4818/5540/27524 4817/5539/27525 +f 4817/5539/27526 4839/5563/27527 4843/5568/27528 +f 4843/5568/27529 4839/5563/27530 4844/5570/27531 +f 4844/5570/27532 4840/5566/27533 4843/5568/27534 +f 4845/5562/27535 4838/5564/27536 4816/5538/27537 +f 4816/5538/27538 4806/5528/27539 4845/5562/27540 +f 4840/5566/27541 4844/5570/27542 4822/5546/27543 +f 4822/5546/27544 4821/5545/27545 4840/5566/27546 +f 4846/5571/27547 4844/5570/27548 4839/5563/27549 +f 4839/5563/27550 4838/5564/27551 4846/5571/27552 +f 4847/5572/27553 4846/5571/27554 4838/5564/27555 +f 4838/5564/27556 4845/5562/27557 4847/5572/27558 +f 4845/5562/27559 4837/5561/27560 4848/5573/27561 +f 4848/5573/27562 4847/5572/27563 4845/5562/27564 +f 4836/5560/27565 4849/5574/27566 4848/5573/27567 +f 4848/5573/27568 4837/5561/27569 4836/5560/27570 +f 4850/5575/27571 4849/5574/27572 4836/5560/27573 +f 4836/5560/27574 4835/5559/27575 4850/5575/27576 +f 4833/5557/27577 4832/5556/27578 4831/5555/27579 +f 4831/5555/27580 4834/5558/27581 4833/5557/27582 +f 4833/5557/27583 4834/5558/27584 4850/5575/27585 +f 4850/5575/27586 4835/5559/27587 4833/5557/27588 +f 4851/5576/27589 4834/5558/27590 4830/5554/27591 +f 4830/5554/27592 4829/5553/27593 4851/5576/27594 +f 4834/5558/27595 4851/5576/27596 4852/5577/27597 +f 4852/5577/27598 4850/5575/27599 4834/5558/27600 +f 4853/5578/27601 4852/5577/27602 4851/5576/27603 +f 4851/5576/27604 4829/5553/27605 4853/5578/27606 +f 4854/5579/27607 4853/5578/27608 4829/5553/27609 +f 4829/5553/27610 4828/5552/27611 4854/5579/27612 +f 4855/5580/27613 4854/5579/27614 4828/5552/27615 +f 4828/5552/27616 4827/5551/27617 4855/5580/27618 +f 4827/5551/27619 4826/5550/27620 4856/5581/27621 +f 4856/5581/27622 4855/5580/27623 4827/5551/27624 +f 4856/5581/27625 4826/5550/27626 4825/5549/27627 +f 4825/5549/27628 4857/5582/27629 4856/5581/27630 +f 4858/5583/27631 4857/5582/27632 4825/5549/27633 +f 4825/5549/27634 4824/5548/27635 4858/5583/27636 +f 4859/5584/27637 4858/5583/27638 4824/5548/27639 +f 4824/5548/27640 4823/5547/27641 4859/5584/27642 +f 4823/5547/27643 4822/5546/27644 4860/5585/27645 +f 4860/5585/27646 4859/5584/27647 4823/5547/27648 +f 4844/5570/27649 4846/5571/27650 4860/5585/27651 +f 4860/5585/27652 4822/5546/27653 4844/5570/27654 +f 4861/5586/27655 4860/5585/27656 4846/5571/27657 +f 4846/5571/27658 4847/5572/27659 4861/5586/27660 +f 4847/5572/27661 4848/5573/27662 4862/5587/27663 +f 4862/5587/27664 4861/5586/27665 4847/5572/27666 +f 4863/5588/27667 4862/5587/27668 4848/5573/27669 +f 4848/5573/27670 4849/5574/27671 4863/5588/27672 +f 4850/5575/27673 4852/5577/27674 4863/5588/27675 +f 4863/5588/27676 4849/5574/27677 4850/5575/27678 +f 4864/5589/27679 4863/5588/27680 4852/5577/27681 +f 4852/5577/27682 4853/5578/27683 4864/5589/27684 +f 4863/5588/27685 4864/5589/27686 4865/5590/27687 +f 4865/5590/27688 4862/5587/27689 4863/5588/27690 +f 4866/5591/27691 4861/5586/27692 4862/5587/27693 +f 4862/5587/27694 4865/5590/27695 4866/5591/27696 +f 4860/5585/27697 4861/5586/27698 4866/5591/27699 +f 4866/5591/27700 4859/5584/27701 4860/5585/27702 +f 4859/5584/27703 4866/5591/27704 4867/5592/27705 +f 4867/5592/27706 4858/5583/27707 4859/5584/27708 +f 4858/5583/27709 4867/5592/27710 4868/5593/27711 +f 4868/5593/27712 4857/5582/27713 4858/5583/27714 +f 4869/5594/27715 4856/5581/27716 4857/5582/27717 +f 4857/5582/27718 4868/5593/27719 4869/5594/27720 +f 4856/5581/27721 4869/5594/27722 4870/5595/27723 +f 4870/5595/27724 4855/5580/27725 4856/5581/27726 +f 4855/5580/27727 4870/5595/27728 4871/5596/27729 +f 4871/5596/27730 4854/5579/27731 4855/5580/27732 +f 4853/5578/27733 4854/5579/27734 4871/5596/27735 +f 4871/5596/27736 4864/5589/27737 4853/5578/27738 +f 4867/5592/27739 4872/5597/27740 4869/5594/27741 +f 4869/5594/27742 4868/5593/27743 4867/5592/27744 +f 4872/5597/27745 4871/5596/27746 4870/5595/27747 +f 4870/5595/27748 4869/5594/27749 4872/5597/27750 +f 4866/5591/27751 4865/5590/27752 4872/5597/27753 +f 4872/5597/27754 4867/5592/27755 4866/5591/27756 +f 4872/5597/27757 4865/5590/27758 4864/5589/27759 +f 4864/5589/27760 4871/5596/27761 4872/5597/27762 +f 4873/5598/27763 4874/5599/27764 4771/5469/27765 +f 4771/5469/27766 4773/5495/27767 4873/5598/27768 +f 4875/5600/27769 4746/5470/27770 4771/5469/27771 +f 4771/5469/27772 4874/5599/27773 4875/5600/27774 +f 4876/5601/27775 4749/5472/27776 4746/5470/27777 +f 4746/5470/27778 4875/5600/27779 4876/5601/27780 +f 4877/5602/27781 4751/5474/27782 4749/5472/27783 +f 4749/5472/27784 4876/5601/27785 4877/5602/27786 +f 4751/5474/27787 4877/5602/27788 4878/5603/27789 +f 4878/5603/27790 4753/5476/27791 4751/5474/27792 +f 4753/5476/27793 4878/5603/27794 4879/5604/27795 +f 4879/5604/27796 4755/5478/27797 4753/5476/27798 +f 4755/5478/27799 4879/5604/27800 4880/5605/27801 +f 4880/5605/27802 4756/5481/27803 4755/5478/27804 +f 4756/5481/27805 4880/5605/27806 4881/5606/27807 +f 4881/5606/27808 4758/5482/27809 4756/5481/27810 +f 4758/5482/27811 4881/5606/27812 4882/5607/27813 +f 4882/5607/27814 4760/5484/27815 4758/5482/27816 +f 4760/5484/27817 4882/5630/27818 4883/5608/27819 +f 4883/5608/27820 4763/5487/27821 4760/5484/27822 +f 4883/5608/27823 4884/5609/27824 4765/5488/27825 +f 4765/5488/27826 4763/5487/27827 4883/5608/27828 +f 4885/5610/27829 4767/5490/27830 4765/5488/27831 +f 4765/5488/27832 4884/5609/27833 4885/5610/27834 +f 4886/5611/27835 4769/5492/27836 4767/5490/27837 +f 4767/5490/27838 4885/5610/27839 4886/5611/27840 +f 4769/5492/27841 4886/5611/27842 4887/5612/27843 +f 4887/5612/27844 4805/5518/27845 4769/5492/27846 +f 4805/5518/27847 4887/5612/27848 4888/5613/27849 +f 4888/5613/27850 4803/5520/27851 4805/5518/27852 +f 4803/5520/27853 4888/5631/27854 4889/5614/27855 +f 4889/5614/27856 4801/5522/27857 4803/5520/27858 +f 4890/5615/27859 4799/5524/27860 4801/5522/27861 +f 4801/5522/27862 4889/5614/27863 4890/5615/27864 +f 4799/5524/27865 4890/5615/27866 4891/5616/27867 +f 4891/5616/27868 4797/5527/27869 4799/5524/27870 +f 4797/5527/27871 4891/5616/27872 4892/5617/27873 +f 4892/5617/27874 4795/5510/27875 4797/5527/27876 +f 4793/5511/27877 4893/5619/27878 4894/5618/27879 +f 4894/5618/27880 4791/5512/27881 4793/5511/27882 +f 4791/5512/27883 4894/5618/27884 4895/5620/27885 +f 4895/5620/27886 4789/5514/27887 4791/5512/27888 +f 4789/5514/27889 4895/5620/27890 4896/5621/27891 +f 4896/5621/27892 4787/5516/27893 4789/5514/27894 +f 4787/5516/27895 4896/5621/27896 4897/5622/27897 +f 4897/5622/27898 4785/5504/27899 4787/5516/27900 +f 4785/5504/27901 4897/5632/27902 4898/5623/27903 +f 4898/5623/27904 4783/5505/27905 4785/5504/27906 +f 4783/5505/27907 4898/5623/27908 4899/5624/27909 +f 4899/5624/27910 4781/5506/27911 4783/5505/27912 +f 4781/5506/27913 4899/5624/27914 4900/5625/27915 +f 4900/5625/27916 4779/5501/27917 4781/5506/27918 +f 4779/5501/27919 4900/5625/27920 4901/5626/27921 +f 4901/5626/27922 4777/5499/27923 4779/5501/27924 +f 4777/5499/27925 4901/5626/27926 4902/5627/27927 +f 4902/5627/27928 4775/5497/27929 4777/5499/27930 +f 4775/5497/27931 4902/5627/27932 4873/5598/27933 +f 4873/5598/27934 4773/5495/27935 4775/5497/27936 +f 4898/5623/27937 4897/5632/27938 4903/5628/27939 +f 4883/5608/27940 4882/5630/27941 4904/5629/27942 +f 4831/5555/27943 4832/5556/27944 4811/5533/27945 +f 4811/5533/27946 4812/5535/27947 4831/5555/27948 +f 4840/5566/27949 4841/5565/27950 4905/5569/27951 +f 4841/5565/27952 4906/5567/27953 4905/5569/27954 +f 4906/5567/27955 4841/5565/27956 4842/5542/27957 +f 4842/5542/27958 4907/5541/27959 4906/5567/27960 +f 4905/5569/27961 4843/5568/27962 4840/5566/27963 +f 4812/5535/27964 4811/5533/27965 4790/5513/27966 +f 4790/5513/27967 4788/5515/27968 4812/5535/27969 +f 4827/5551/27970 4828/5552/27971 4774/5496/27972 +f 4774/5496/27973 4772/5494/27974 4827/5551/27975 +f 4893/5635/27976 4793/5511/27977 4795/5510/27978 +f 4795/5510/27979 4892/5617/27980 4893/5635/27981 +f 4796/5526/27982 4797/5527/27983 4795/5510/27984 +f 4795/5510/27985 4794/5509/27986 4796/5526/27987 +f 4882/5607/27988 4881/5606/27989 4904/5634/27990 +f 4897/5622/27991 4896/5621/27992 4903/5633/27993 +f 4929/5638/27994 4924/5639/27995 5081/5636/27996 +f 5081/5636/27997 5082/5637/27998 4929/5638/27999 +f 4924/5639/28000 4936/5641/28001 5083/5640/28002 +f 5083/5640/28003 5081/5636/28004 4924/5639/28005 +f 4936/5641/28006 4942/5643/28007 5084/5642/28008 +f 5084/5642/28009 5083/5640/28010 4936/5641/28011 +f 4942/5643/28012 4948/5645/28013 5085/5644/28014 +f 5085/5644/28015 5084/5642/28016 4942/5643/28017 +f 4948/5645/28018 4954/5647/28019 5086/5646/28020 +f 5086/5646/28021 5085/5644/28022 4948/5645/28023 +f 4954/5649/28024 4929/5638/28025 5082/5637/28026 +f 5082/5637/28027 5086/5648/28028 4954/5649/28029 +f 4914/5652/28030 4920/5653/28031 4912/5650/28032 +f 4912/5650/28033 4911/5651/28034 4914/5652/28035 +f 4914/5656/28036 4911/5651/28037 4910/5654/28038 +f 4910/5654/28039 4909/5655/28040 4914/5656/28041 +f 4915/5658/28042 4920/5659/28043 4914/5657/28044 +f 4914/5657/28045 4909/5655/28046 4915/5658/28047 +f 4909/5655/28048 4916/5661/28049 4908/5660/28050 +f 4908/5660/28051 4915/5658/28052 4909/5655/28053 +f 4910/5654/28054 4917/5662/28055 4916/5661/28056 +f 4916/5661/28057 4909/5655/28058 4910/5654/28059 +f 4911/5651/28060 4918/5663/28061 4917/5662/28062 +f 4917/5662/28063 4910/5654/28064 4911/5651/28065 +f 4912/5650/28066 4919/5664/28067 4918/5663/28068 +f 4918/5663/28069 4911/5651/28070 4912/5650/28071 +f 4920/5653/28072 4913/5665/28073 4919/5664/28074 +f 4919/5664/28075 4912/5650/28076 4920/5653/28077 +f 4915/5658/28078 4908/5660/28079 4913/5666/28080 +f 4913/5666/28081 4920/5659/28082 4915/5658/28083 +f 4928/5670/28084 4925/5671/28085 5087/5668/28086 +f 5087/5668/28087 5088/5669/28088 4928/5670/28089 +f 4921/5672/28090 4932/5673/28091 4908/5660/28092 +f 4908/5660/28093 4916/5661/28094 4921/5672/28095 +f 4922/5674/28096 4931/5675/28097 4932/5673/28098 +f 4932/5673/28099 4921/5672/28100 4922/5674/28101 +f 4923/5678/28102 4930/5679/28103 5070/5676/28104 +f 5070/5676/28105 5069/5677/28106 4923/5678/28107 +f 4924/5639/28108 4929/5638/28109 5076/5680/28110 +f 5076/5680/28111 5075/5681/28112 4924/5639/28113 +f 4925/5671/28114 4937/5683/28115 5089/5682/28116 +f 5089/5682/28117 5087/5668/28118 4925/5671/28119 +f 4933/5684/28120 4921/5672/28121 4916/5661/28122 +f 4916/5661/28123 4917/5662/28124 4933/5684/28125 +f 4934/5685/28126 4922/5674/28127 4921/5672/28128 +f 4921/5672/28129 4933/5684/28130 4934/5685/28131 +f 4935/5687/28132 4923/5678/28133 5069/5677/28134 +f 5069/5677/28135 5071/5686/28136 4935/5687/28137 +f 4936/5641/28138 4924/5639/28139 5075/5681/28140 +f 5075/5681/28141 5077/5688/28142 4936/5641/28143 +f 4937/5683/28144 4943/5690/28145 5090/5689/28146 +f 5090/5689/28147 5089/5682/28148 4937/5683/28149 +f 4939/5691/28150 4933/5684/28151 4917/5662/28152 +f 4917/5662/28153 4918/5663/28154 4939/5691/28155 +f 4940/5692/28156 4934/5685/28157 4933/5684/28158 +f 4933/5684/28159 4939/5691/28160 4940/5692/28161 +f 4941/5694/28162 4935/5687/28163 5071/5686/28164 +f 5071/5686/28165 5072/5693/28166 4941/5694/28167 +f 4942/5643/28168 4936/5641/28169 5077/5688/28170 +f 5077/5688/28171 5078/5695/28172 4942/5643/28173 +f 4943/5690/28174 4949/5697/28175 5091/5696/28176 +f 5091/5696/28177 5090/5689/28178 4943/5690/28179 +f 4945/5698/28180 4939/5691/28181 4918/5663/28182 +f 4918/5663/28183 4919/5664/28184 4945/5698/28185 +f 4946/5699/28186 4940/5692/28187 4939/5691/28188 +f 4939/5691/28189 4945/5698/28190 4946/5699/28191 +f 4947/5701/28192 4941/5694/28193 5072/5693/28194 +f 5072/5693/28195 5073/5700/28196 4947/5701/28197 +f 4948/5645/28198 4942/5643/28199 5078/5695/28200 +f 5078/5695/28201 5079/5702/28202 4948/5645/28203 +f 4949/5697/28204 4955/5704/28205 5092/5703/28206 +f 5092/5703/28207 5091/5696/28208 4949/5697/28209 +f 4951/5705/28210 4945/5698/28211 4919/5664/28212 +f 4919/5664/28213 4913/5665/28214 4951/5705/28215 +f 4952/5706/28216 4946/5699/28217 4945/5698/28218 +f 4945/5698/28219 4951/5705/28220 4952/5706/28221 +f 4953/5708/28222 4947/5701/28223 5073/5700/28224 +f 5073/5700/28225 5074/5707/28226 4953/5708/28227 +f 4954/5647/28228 4948/5645/28229 5079/5702/28230 +f 5079/5702/28231 5080/5709/28232 4954/5647/28233 +f 4955/5711/28234 4928/5670/28235 5088/5669/28236 +f 5088/5669/28237 5092/5710/28238 4955/5711/28239 +f 4908/5660/28240 4932/5673/28241 4951/5712/28242 +f 4951/5712/28243 4913/5666/28244 4908/5660/28245 +f 4931/5675/28246 4952/5713/28247 4951/5712/28248 +f 4951/5712/28249 4932/5673/28250 4931/5675/28251 +f 4930/5679/28252 4953/5715/28253 5074/5714/28254 +f 5074/5714/28255 5070/5676/28256 4930/5679/28257 +f 4929/5638/28258 4954/5649/28259 5080/5716/28260 +f 5080/5716/28261 5076/5680/28262 4929/5638/28263 +f 4958/5719/28264 4957/5720/28265 5100/5717/28266 +f 5100/5717/28267 5099/5718/28268 4958/5719/28269 +f 5003/5723/28270 5004/5724/28271 5094/5721/28272 +f 5094/5721/28273 5093/5722/28274 5003/5723/28275 +f 4957/5720/28276 4962/5726/28277 5101/5725/28278 +f 5101/5725/28279 5100/5717/28280 4957/5720/28281 +f 5004/5724/28282 5005/5728/28283 5095/5727/28284 +f 5095/5727/28285 5094/5721/28286 5004/5724/28287 +f 4962/5726/28288 4965/5730/28289 5102/5729/28290 +f 5102/5729/28291 5101/5725/28292 4962/5726/28293 +f 5005/5728/28294 5006/5732/28295 5096/5731/28296 +f 5096/5731/28297 5095/5727/28298 5005/5728/28299 +f 4965/5730/28300 4968/5734/28301 5103/5733/28302 +f 5103/5733/28303 5102/5729/28304 4965/5730/28305 +f 5006/5732/28306 5007/5736/28307 5097/5735/28308 +f 5097/5735/28309 5096/5731/28310 5006/5732/28311 +f 4968/5739/28312 4971/5740/28313 5104/5737/28314 +f 5104/5737/28315 5103/5738/28316 4968/5739/28317 +f 5007/5743/28318 5008/5744/28319 5098/5741/28320 +f 5098/5741/28321 5097/5742/28322 5007/5743/28323 +f 4971/5740/28324 4958/5719/28325 5099/5718/28326 +f 5099/5718/28327 5104/5737/28328 4971/5740/28329 +f 5008/5744/28330 5003/5723/28331 5093/5722/28332 +f 5093/5722/28333 5098/5741/28334 5008/5744/28335 +s 2 +f 4974/5747/28336 4973/5748/28337 5020/5745/28338 +f 5020/5745/28339 5021/5746/28340 4974/5747/28341 +f 4975/5750/28342 4974/5747/28343 5021/5888/28344 +f 5021/5888/28345 4970/5749/28346 4975/5750/28347 +f 4976/5752/28348 4975/5750/28349 4970/5889/28350 +f 4970/5889/28351 4967/5751/28352 4976/5752/28353 +f 4977/5755/28354 4976/5756/28355 4967/5753/28356 +f 4967/5753/28357 4964/5754/28358 4977/5755/28359 +f 4978/5758/28360 4977/5755/28361 4964/5890/28362 +f 4964/5890/28363 4961/5757/28364 4978/5758/28365 +f 4973/5748/28366 4978/5758/28367 4961/5891/28368 +f 4961/5891/28369 5020/5886/28370 4973/5748/28371 +f 4980/5761/28372 4979/5762/28373 4960/5759/28374 +f 4960/5759/28375 4959/5760/28376 4980/5761/28377 +f 4981/5764/28378 4980/5761/28379 4959/5887/28380 +f 4959/5887/28381 4963/5763/28382 4981/5764/28383 +f 4982/5766/28384 4981/5764/28385 4963/5893/28386 +f 4963/5893/28387 4966/5765/28388 4982/5766/28389 +f 4983/5768/28390 4982/5766/28391 4966/5894/28392 +f 4966/5894/28393 4969/5767/28394 4983/5768/28395 +f 4984/5771/28396 4983/5772/28397 4969/5769/28398 +f 4969/5769/28399 4972/5770/28400 4984/5771/28401 +f 4979/5762/28402 4984/5771/28403 4972/5895/28404 +f 4972/5895/28405 4960/5892/28406 4979/5762/28407 +s 1 +f 4986/5773/28408 4985/5774/28409 4973/5748/28410 +f 4973/5748/28411 4974/5747/28412 4986/5773/28413 +f 4987/5775/28414 4986/5773/28415 4974/5747/28416 +f 4974/5747/28417 4975/5750/28418 4987/5775/28419 +f 4988/5776/28420 4987/5775/28421 4975/5750/28422 +f 4975/5750/28423 4976/5752/28424 4988/5776/28425 +f 4989/5777/28426 4988/5778/28427 4976/5756/28428 +f 4976/5756/28429 4977/5755/28430 4989/5777/28431 +f 4990/5779/28432 4989/5777/28433 4977/5755/28434 +f 4977/5755/28435 4978/5758/28436 4990/5779/28437 +f 4985/5774/28438 4990/5779/28439 4978/5758/28440 +f 4978/5758/28441 4973/5748/28442 4985/5774/28443 +f 4992/5780/28444 4991/5781/28445 4979/5762/28446 +f 4979/5762/28447 4980/5761/28448 4992/5780/28449 +f 4993/5782/28450 4992/5780/28451 4980/5761/28452 +f 4980/5761/28453 4981/5764/28454 4993/5782/28455 +f 4994/5783/28456 4993/5782/28457 4981/5764/28458 +f 4981/5764/28459 4982/5766/28460 4994/5783/28461 +f 4995/5784/28462 4994/5783/28463 4982/5766/28464 +f 4982/5766/28465 4983/5768/28466 4995/5784/28467 +f 4996/5785/28468 4995/5786/28469 4983/5772/28470 +f 4983/5772/28471 4984/5771/28472 4996/5785/28473 +f 4991/5781/28474 4996/5785/28475 4984/5771/28476 +f 4984/5771/28477 4979/5762/28478 4991/5781/28479 +f 4998/5787/28480 4997/5788/28481 4985/5774/28482 +f 4985/5774/28483 4986/5773/28484 4998/5787/28485 +f 4999/5789/28486 4998/5787/28487 4986/5773/28488 +f 4986/5773/28489 4987/5775/28490 4999/5789/28491 +f 5000/5790/28492 4999/5789/28493 4987/5775/28494 +f 4987/5775/28495 4988/5776/28496 5000/5790/28497 +f 5001/5791/28498 5000/5792/28499 4988/5778/28500 +f 4988/5778/28501 4989/5777/28502 5001/5791/28503 +f 5002/5793/28504 5001/5791/28505 4989/5777/28506 +f 4989/5777/28507 4990/5779/28508 5002/5793/28509 +f 4997/5788/28510 5002/5793/28511 4990/5779/28512 +f 4990/5779/28513 4985/5774/28514 4997/5788/28515 +f 5004/5724/28516 5003/5723/28517 4991/5781/28518 +f 4991/5781/28519 4992/5780/28520 5004/5724/28521 +f 5005/5728/28522 5004/5724/28523 4992/5780/28524 +f 4992/5780/28525 4993/5782/28526 5005/5728/28527 +f 5006/5732/28528 5005/5728/28529 4993/5782/28530 +f 4993/5782/28531 4994/5783/28532 5006/5732/28533 +f 5007/5736/28534 5006/5732/28535 4994/5783/28536 +f 4994/5783/28537 4995/5784/28538 5007/5736/28539 +f 5008/5744/28540 5007/5743/28541 4995/5786/28542 +f 4995/5786/28543 4996/5785/28544 5008/5744/28545 +f 5003/5723/28546 5008/5744/28547 4996/5785/28548 +f 4996/5785/28549 4991/5781/28550 5003/5723/28551 +f 5012/5796/28552 5011/5797/28553 5010/5794/28554 +f 5010/5794/28555 5009/5795/28556 5012/5796/28557 +f 5012/5796/28558 5014/5799/28559 5013/5798/28560 +f 5013/5798/28561 5011/5797/28562 5012/5796/28563 +f 5015/5800/28564 5014/5799/28565 5012/5796/28566 +f 5012/5796/28567 5009/5795/28568 5015/5800/28569 +f 5014/5799/28570 5015/5800/28571 5016/5801/28572 +f 5016/5801/28573 5017/5802/28574 5014/5799/28575 +f 5013/5798/28576 5014/5799/28577 5017/5802/28578 +f 5017/5802/28579 5022/5803/28580 5013/5798/28581 +f 5011/5885/28582 5013/5798/28583 5022/5803/28584 +f 5022/5803/28585 5018/5804/28586 5011/5885/28587 +f 5010/5806/28588 5011/5885/28589 5018/5804/28590 +f 5018/5804/28591 5019/5805/28592 5010/5806/28593 +f 5009/5884/28594 5010/5809/28595 5019/5807/28596 +f 5019/5807/28597 5023/5808/28598 5009/5884/28599 +f 5015/5800/28600 5009/5884/28601 5023/5808/28602 +f 5023/5808/28603 5016/5801/28604 5015/5800/28605 +f 5021/5878/28606 5020/5667/28607 5105/5810/28608 +f 5105/5810/28609 5106/5811/28610 5021/5878/28611 +f 5020/5667/28612 4961/5883/28613 5107/5812/28614 +f 5107/5812/28615 5105/5810/28616 5020/5667/28617 +f 4961/5883/28618 4964/5882/28619 5108/5813/28620 +f 5108/5813/28621 5107/5812/28622 4961/5883/28623 +f 4964/5882/28624 4967/5881/28625 5109/5814/28626 +f 5109/5814/28627 5108/5813/28628 4964/5882/28629 +f 4967/5880/28630 4970/5879/28631 5110/5815/28632 +f 5110/5815/28633 5109/5816/28634 4967/5880/28635 +f 4970/5879/28636 5021/5878/28637 5106/5811/28638 +f 5106/5811/28639 5110/5815/28640 4970/5879/28641 +f 5030/5819/28642 5029/5820/28643 5024/5817/28644 +f 5024/5817/28645 5025/5818/28646 5030/5819/28647 +s 2 +f 5031/5822/28648 5030/5819/28649 5025/5818/28650 +f 5025/5818/28651 5026/5821/28652 5031/5822/28653 +s 4 +f 5032/5825/28654 5031/5826/28655 5026/5823/28656 +f 5026/5823/28657 5027/5824/28658 5032/5825/28659 +f 5033/5828/28660 5032/5825/28661 5027/5824/28662 +f 5027/5824/28663 5028/5827/28664 5033/5828/28665 +s 1 +f 5029/5820/28666 5033/5828/28667 5028/5827/28668 +f 5028/5827/28669 5024/5817/28670 5029/5820/28671 +f 5035/5829/28672 5034/5830/28673 5029/5820/28674 +f 5029/5820/28675 5030/5819/28676 5035/5829/28677 +s 2 +f 5036/5831/28678 5035/5829/28679 5030/5819/28680 +f 5030/5819/28681 5031/5822/28682 5036/5831/28683 +s 4 +f 5037/5832/28684 5036/5833/28685 5031/5826/28686 +f 5031/5826/28687 5032/5825/28688 5037/5832/28689 +f 5038/5834/28690 5037/5832/28691 5032/5825/28692 +f 5032/5825/28693 5033/5828/28694 5038/5834/28695 +s 1 +f 5034/5830/28696 5038/5834/28697 5033/5828/28698 +f 5033/5828/28699 5029/5820/28700 5034/5830/28701 +f 5040/5835/28702 5039/5836/28703 5034/5830/28704 +f 5034/5830/28705 5035/5829/28706 5040/5835/28707 +s 2 +f 5041/5837/28708 5040/5835/28709 5035/5829/28710 +f 5035/5829/28711 5036/5831/28712 5041/5837/28713 +s 4 +f 5042/5838/28714 5041/5839/28715 5036/5833/28716 +f 5036/5833/28717 5037/5832/28718 5042/5838/28719 +f 5043/5840/28720 5042/5838/28721 5037/5832/28722 +f 5037/5832/28723 5038/5834/28724 5043/5840/28725 +s 1 +f 5039/5836/28726 5043/5840/28727 5038/5834/28728 +f 5038/5834/28729 5034/5830/28730 5039/5836/28731 +f 5045/5841/28732 5044/5842/28733 5039/5836/28734 +f 5039/5836/28735 5040/5835/28736 5045/5841/28737 +s 2 +f 5046/5843/28738 5045/5841/28739 5040/5835/28740 +f 5040/5835/28741 5041/5837/28742 5046/5843/28743 +s 4 +f 5047/5844/28744 5046/5845/28745 5041/5839/28746 +f 5041/5839/28747 5042/5838/28748 5047/5844/28749 +f 5048/5846/28750 5047/5844/28751 5042/5838/28752 +f 5042/5838/28753 5043/5840/28754 5048/5846/28755 +s 1 +f 5044/5842/28756 5048/5846/28757 5043/5840/28758 +f 5043/5840/28759 5039/5836/28760 5044/5842/28761 +f 5050/5847/28762 5049/5848/28763 5044/5842/28764 +f 5044/5842/28765 5045/5841/28766 5050/5847/28767 +s 2 +f 5051/5849/28768 5050/5847/28769 5045/5841/28770 +f 5045/5841/28771 5046/5843/28772 5051/5849/28773 +s 4 +f 5052/5850/28774 5051/5851/28775 5046/5845/28776 +f 5046/5845/28777 5047/5844/28778 5052/5850/28779 +f 5053/5852/28780 5052/5850/28781 5047/5844/28782 +f 5047/5844/28783 5048/5846/28784 5053/5852/28785 +s 1 +f 5049/5848/28786 5053/5852/28787 5048/5846/28788 +f 5048/5846/28789 5044/5842/28790 5049/5848/28791 +f 5055/5853/28792 5054/5854/28793 5049/5848/28794 +f 5049/5848/28795 5050/5847/28796 5055/5853/28797 +s 2 +f 5056/5855/28798 5055/5853/28799 5050/5847/28800 +f 5050/5847/28801 5051/5849/28802 5056/5855/28803 +s 4 +f 5057/5856/28804 5056/5857/28805 5051/5851/28806 +f 5051/5851/28807 5052/5850/28808 5057/5856/28809 +f 5058/5858/28810 5057/5856/28811 5052/5850/28812 +f 5052/5850/28813 5053/5852/28814 5058/5858/28815 +s 1 +f 5054/5854/28816 5058/5858/28817 5053/5852/28818 +f 5053/5852/28819 5049/5848/28820 5054/5854/28821 +f 5060/5859/28822 5059/5860/28823 5054/5854/28824 +f 5054/5854/28825 5055/5853/28826 5060/5859/28827 +s 2 +f 5061/5861/28828 5060/5859/28829 5055/5853/28830 +f 5055/5853/28831 5056/5855/28832 5061/5861/28833 +s 4 +f 5062/5862/28834 5061/5863/28835 5056/5857/28836 +f 5056/5857/28837 5057/5856/28838 5062/5862/28839 +f 5063/5864/28840 5062/5862/28841 5057/5856/28842 +f 5057/5856/28843 5058/5858/28844 5063/5864/28845 +s 1 +f 5059/5860/28846 5063/5864/28847 5058/5858/28848 +f 5058/5858/28849 5054/5854/28850 5059/5860/28851 +f 5065/5865/28852 5064/5866/28853 5059/5860/28854 +f 5059/5860/28855 5060/5859/28856 5065/5865/28857 +s 2 +f 5066/5867/28858 5065/5865/28859 5060/5859/28860 +f 5060/5859/28861 5061/5861/28862 5066/5867/28863 +s 4 +f 5067/5868/28864 5066/5869/28865 5061/5863/28866 +f 5061/5863/28867 5062/5862/28868 5067/5868/28869 +f 5068/5870/28870 5067/5868/28871 5062/5862/28872 +f 5062/5862/28873 5063/5864/28874 5068/5870/28875 +s 1 +f 5064/5866/28876 5068/5870/28877 5063/5864/28878 +f 5063/5864/28879 5059/5860/28880 5064/5866/28881 +f 5069/5677/28882 5070/5676/28883 4931/5675/28884 +f 4931/5675/28885 4922/5674/28886 5069/5677/28887 +f 5071/5686/28888 5069/5677/28889 4922/5674/28890 +f 4922/5674/28891 4934/5685/28892 5071/5686/28893 +f 5072/5693/28894 5071/5686/28895 4934/5685/28896 +f 4934/5685/28897 4940/5692/28898 5072/5693/28899 +f 5073/5700/28900 5072/5693/28901 4940/5692/28902 +f 4940/5692/28903 4946/5699/28904 5073/5700/28905 +f 5074/5707/28906 5073/5700/28907 4946/5699/28908 +f 4946/5699/28909 4952/5706/28910 5074/5707/28911 +f 5070/5676/28912 5074/5714/28913 4952/5713/28914 +f 4952/5713/28915 4931/5675/28916 5070/5676/28917 +f 5075/5681/28918 5076/5680/28919 4930/5679/28920 +f 4930/5679/28921 4923/5678/28922 5075/5681/28923 +f 5077/5688/28924 5075/5681/28925 4923/5678/28926 +f 4923/5678/28927 4935/5687/28928 5077/5688/28929 +f 5078/5695/28930 5077/5688/28931 4935/5687/28932 +f 4935/5687/28933 4941/5694/28934 5078/5695/28935 +f 5079/5702/28936 5078/5695/28937 4941/5694/28938 +f 4941/5694/28939 4947/5701/28940 5079/5702/28941 +f 5080/5709/28942 5079/5702/28943 4947/5701/28944 +f 4947/5701/28945 4953/5708/28946 5080/5709/28947 +f 5076/5680/28948 5080/5716/28949 4953/5715/28950 +f 4953/5715/28951 4930/5679/28952 5076/5680/28953 +f 5082/5637/28954 5081/5636/28955 4925/5671/28956 +f 4925/5671/28957 4928/5670/28958 5082/5637/28959 +f 5081/5636/28960 5083/5640/28961 4937/5683/28962 +f 4937/5683/28963 4925/5671/28964 5081/5636/28965 +f 5083/5640/28966 5084/5642/28967 4943/5690/28968 +f 4943/5690/28969 4937/5683/28970 5083/5640/28971 +f 5084/5642/28972 5085/5644/28973 4949/5697/28974 +f 4949/5697/28975 4943/5690/28976 5084/5642/28977 +f 5085/5644/28978 5086/5646/28979 4955/5704/28980 +f 4955/5704/28981 4949/5697/28982 5085/5644/28983 +f 5086/5648/28984 5082/5637/28985 4928/5670/28986 +f 4928/5670/28987 4955/5711/28988 5086/5648/28989 +f 5088/5669/28990 5087/5668/28991 4926/5871/28992 +f 4926/5871/28993 4927/5872/28994 5088/5669/28995 +f 5087/5668/28996 5089/5682/28997 4938/5873/28998 +f 4938/5873/28999 4926/5871/29000 5087/5668/29001 +f 5089/5682/29002 5090/5689/29003 4944/5874/29004 +f 4944/5874/29005 4938/5873/29006 5089/5682/29007 +f 5090/5689/29008 5091/5696/29009 4950/5875/29010 +f 4950/5875/29011 4944/5874/29012 5090/5689/29013 +f 5091/5696/29014 5092/5703/29015 4956/5876/29016 +f 4956/5876/29017 4950/5875/29018 5091/5696/29019 +f 5092/5710/29020 5088/5669/29021 4927/5872/29022 +f 4927/5872/29023 4956/5877/29024 5092/5710/29025 +f 5093/5722/29026 5094/5721/29027 4957/5720/29028 +f 4957/5720/29029 4958/5719/29030 5093/5722/29031 +f 5094/5721/29032 5095/5727/29033 4962/5726/29034 +f 4962/5726/29035 4957/5720/29036 5094/5721/29037 +f 5095/5727/29038 5096/5731/29039 4965/5730/29040 +f 4965/5730/29041 4962/5726/29042 5095/5727/29043 +f 5096/5731/29044 5097/5735/29045 4968/5734/29046 +f 4968/5734/29047 4965/5730/29048 5096/5731/29049 +f 5097/5742/29050 5098/5741/29051 4971/5740/29052 +f 4971/5740/29053 4968/5739/29054 5097/5742/29055 +f 5098/5741/29056 5093/5722/29057 4958/5719/29058 +f 4958/5719/29059 4971/5740/29060 5098/5741/29061 +f 5099/5718/29062 5100/5717/29063 4997/5788/29064 +f 4997/5788/29065 4998/5787/29066 5099/5718/29067 +f 5100/5717/29068 5101/5725/29069 5002/5793/29070 +f 5002/5793/29071 4997/5788/29072 5100/5717/29073 +f 5101/5725/29074 5102/5729/29075 5001/5791/29076 +f 5001/5791/29077 5002/5793/29078 5101/5725/29079 +f 5102/5729/29080 5103/5733/29081 5000/5792/29082 +f 5000/5792/29083 5001/5791/29084 5102/5729/29085 +f 5103/5738/29086 5104/5737/29087 4999/5789/29088 +f 4999/5789/29089 5000/5790/29090 5103/5738/29091 +f 5104/5737/29092 5099/5718/29093 4998/5787/29094 +f 4998/5787/29095 4999/5789/29096 5104/5737/29097 +f 5106/5811/29098 5105/5810/29099 5017/5802/29100 +f 5017/5802/29101 5016/5801/29102 5106/5811/29103 +f 5105/5810/29104 5107/5812/29105 5022/5803/29106 +f 5022/5803/29107 5017/5802/29108 5105/5810/29109 +f 5107/5812/29110 5108/5813/29111 5018/5804/29112 +f 5018/5804/29113 5022/5803/29114 5107/5812/29115 +f 5108/5813/29116 5109/5814/29117 5019/5805/29118 +f 5019/5805/29119 5018/5804/29120 5108/5813/29121 +f 5109/5816/29122 5110/5815/29123 5023/5808/29124 +f 5023/5808/29125 5019/5807/29126 5109/5816/29127 +f 5110/5815/29128 5106/5811/29129 5016/5801/29130 +f 5016/5801/29131 5023/5808/29132 5110/5815/29133 +f 5111/5898/29134 5114/5901/29135 5113/5902/29136 +f 5113/5902/29137 5112/5897/29138 5111/5898/29139 +f 5113/5902/29140 5114/5901/29141 5115/5904/29142 +f 5115/5904/29143 5116/5906/29144 5113/5902/29145 +f 5118/5910/29146 5111/5898/29147 5112/5897/29148 +f 5112/5897/29149 5117/5907/29150 5118/5910/29151 +f 5120/5924/29152 5118/5910/29153 5117/5907/29154 +f 5117/5907/29155 5119/5912/29156 5120/5924/29157 +f 5116/5906/29158 5115/5904/29159 5173/5925/29160 +f 5173/5925/29161 5172/5926/29162 5116/5906/29163 +f 5121/5927/29164 5122/5928/29165 5119/5912/29166 +f 5119/5912/29167 5117/5907/29168 5121/5927/29169 +f 5123/5929/29170 5124/5930/29171 5122/5928/29172 +f 5122/5928/29173 5121/5927/29174 5123/5929/29175 +f 5126/5932/29176 5123/5929/29177 5121/5927/29178 +f 5121/5927/29179 5125/5931/29180 5126/5932/29181 +f 5128/5934/29182 5126/5932/29183 5125/5931/29184 +f 5125/5931/29185 5127/5933/29186 5128/5934/29187 +f 5129/5935/29188 5128/5934/29189 5127/5933/29190 +f 5131/5899/29191 5126/5900/29192 5128/5903/29193 +f 5128/5903/29194 5130/5896/29195 5131/5899/29196 +f 5132/5905/29197 5133/5908/29198 5124/5909/29199 +f 5124/5909/29200 5123/5911/29201 5132/5905/29202 +f 5123/5911/29203 5126/5900/29204 5131/5899/29205 +f 5131/5899/29206 5132/5905/29207 5123/5911/29208 +f 5133/5921/29209 5132/5922/29210 5134/5919/29211 +f 5134/5919/29212 5135/5920/29213 5133/5921/29214 +f 5132/5922/29215 5131/5966/29216 5136/5969/29217 +f 5136/5969/29218 5134/5919/29219 5132/5922/29220 +f 5136/5969/29221 5131/5966/29222 5130/5970/29223 +f 5130/5970/29224 5137/5974/29225 5136/5969/29226 +f 5128/5903/29227 5129/5913/29228 5138/5914/29229 +f 5138/5914/29230 5130/5896/29231 5128/5903/29232 +f 5137/5974/29233 5130/5970/29234 5138/5976/29235 +f 5138/5976/29236 5139/5975/29237 5137/5974/29238 +f 5142/5937/29239 5125/5931/29240 5121/5927/29241 +f 5121/5927/29242 5140/5936/29243 5142/5937/29244 +f 5140/5936/29245 5121/5927/29246 5117/5907/29247 +f 5117/5907/29248 5112/5897/29249 5140/5936/29250 +f 5112/5897/29251 5113/5902/29252 5140/5936/29253 +f 5141/5938/29254 5140/5936/29255 5113/5902/29256 +f 5113/5902/29257 5116/5906/29258 5141/5938/29259 +f 5143/5939/29260 5142/5937/29261 5140/5936/29262 +f 5140/5936/29263 5141/5938/29264 5143/5939/29265 +f 5125/5931/29266 5142/5937/29267 5144/5940/29268 +f 5144/5940/29269 5127/5933/29270 5125/5931/29271 +f 5144/5940/29272 5142/5937/29273 5145/5941/29274 +f 5127/5933/29275 5144/5940/29276 5146/5942/29277 +f 5146/5942/29278 5129/5935/29279 5127/5933/29280 +f 5145/5941/29281 5148/5943/29282 5144/5940/29283 +f 5147/5944/29284 5146/5942/29285 5144/5940/29286 +f 5148/5943/29287 5147/5944/29288 5144/5940/29289 +f 5149/5945/29290 5150/5946/29291 5148/5943/29292 +f 5148/5943/29293 5145/5941/29294 5149/5945/29295 +f 5145/5941/29296 5142/5937/29297 5151/5947/29298 +f 5151/5947/29299 5149/5945/29300 5145/5941/29301 +f 5152/5948/29302 5151/5947/29303 5142/5937/29304 +f 5142/5937/29305 5143/5939/29306 5152/5948/29307 +f 5143/5939/29308 5141/5938/29309 5154/5949/29310 +f 5153/5950/29311 5152/5948/29312 5143/5939/29313 +f 5143/5939/29314 5154/5949/29315 5153/5950/29316 +f 5156/5952/29317 5154/5949/29318 5157/5953/29319 +f 5157/5953/29320 5155/5951/29321 5156/5952/29322 +f 5159/5955/29323 5157/5953/29324 5161/5956/29325 +f 5161/5956/29326 5158/5954/29327 5159/5955/29328 +f 5141/5938/29329 5116/5906/29330 5161/5956/29331 +f 5160/5957/29332 5169/5959/29333 5116/5906/29334 +f 5116/5906/29335 5172/5926/29336 5160/5957/29337 +f 5161/5956/29338 5162/5962/29339 5163/5960/29340 +f 5163/5960/29341 5183/5961/29342 5161/5956/29343 +s 2 +f 5161/5956/29344 5183/5961/29345 5164/5963/29346 +f 5164/5963/29347 5158/5954/29348 5161/5956/29349 +f 5165/5964/29350 5180/5965/29351 5153/5950/29352 +f 5153/5950/29353 5154/5949/29354 5165/5964/29355 +s 4 +f 5166/5967/29356 5165/5964/29357 5154/5949/29358 +f 5154/5949/29359 5156/5952/29360 5166/5967/29361 +f 5157/5953/29362 5159/5955/29363 5167/5968/29364 +f 5167/5968/29365 5182/5978/29366 5157/5953/29367 +s 2 +f 5157/5953/29368 5182/5978/29369 5168/5985/29370 +f 5168/5985/29371 5155/5951/29372 5157/5953/29373 +s 8 +f 5166/5967/29374 5156/5952/29375 5155/5951/29376 +f 5155/5951/29377 5168/5985/29378 5166/5967/29379 +s 4 +f 5167/5968/29380 5159/5955/29381 5158/5954/29382 +f 5158/5954/29383 5164/5963/29384 5167/5968/29385 +s 1 +f 5169/5959/29386 5161/5956/29387 5116/5906/29388 +f 5162/5962/29389 5161/5956/29390 5169/5959/29391 +f 5162/5962/29392 5169/5959/29393 5170/5986/29394 +f 5170/5986/29395 5163/5960/29396 5162/5962/29397 +f 5160/5957/29398 5171/5987/29399 5170/5986/29400 +f 5170/5986/29401 5169/5959/29402 5160/5957/29403 +f 5171/5987/29404 5160/5957/29405 5172/5926/29406 +f 5172/5926/29407 5173/5925/29408 5171/5987/29409 +s 2 +f 5129/5935/29410 5146/5942/29411 5139/5988/29412 +f 5139/5988/29413 5138/5989/29414 5129/5935/29415 +f 5146/5942/29416 5147/5944/29417 5174/5990/29418 +f 5174/5990/29419 5139/5988/29420 5146/5942/29421 +s 1 +f 5139/5975/29422 5174/5979/29423 5175/5977/29424 +f 5175/5977/29425 5137/5974/29426 5139/5975/29427 +s 4 +f 5177/5998/29428 5150/5946/29429 5149/5945/29430 +f 5149/5945/29431 5176/5997/29432 5177/5998/29433 +f 5149/5945/29434 5151/5947/29435 5178/6001/29436 +f 5178/6001/29437 5176/5997/29438 5149/5945/29439 +f 5152/5948/29440 5179/6002/29441 5178/6001/29442 +f 5178/6001/29443 5151/5947/29444 5152/5948/29445 +f 5153/5950/29446 5180/5965/29447 5179/6002/29448 +f 5179/6002/29449 5152/5948/29450 5153/5950/29451 +s 1 +f 5180/5984/29452 5165/6005/29453 5181/5981/29454 +f 5181/5981/29455 5179/5982/29456 5180/5984/29457 +f 5166/6007/29458 5168/6008/29459 5182/6006/29460 +f 5182/6006/29461 5165/6005/29462 5166/6007/29463 +f 5167/6010/29464 5164/6011/29465 5183/6009/29466 +f 5183/6009/29467 5182/6006/29468 5167/6010/29469 +f 5163/6024/29470 5170/6025/29471 5184/6012/29472 +f 5184/6012/29473 5183/6009/29474 5163/6024/29475 +f 5184/6012/29476 5170/6025/29477 5171/6032/29478 +f 5171/6032/29479 5185/6063/29480 5184/6012/29481 +f 5186/6065/29482 5185/6063/29483 5171/6032/29484 +f 5171/6032/29485 5173/6064/29486 5186/6065/29487 +f 5188/6066/29488 5303/6177/29489 5186/6065/29490 +f 5188/5915/29491 5186/5916/29492 5115/5917/29493 +f 5115/5917/29494 5114/5918/29495 5188/5915/29496 +f 5186/5916/29497 5173/5923/29498 5115/5917/29499 +f 5187/5958/29500 5188/5915/29501 5114/5918/29502 +f 5114/5918/29503 5111/5971/29504 5187/5958/29505 +f 5188/6066/29506 5187/6073/29507 5302/6176/29508 +f 5302/6176/29509 5303/6177/29510 5188/6066/29511 +f 5184/6012/29512 5189/6075/29513 5190/6079/29514 +f 5190/6079/29515 5183/6009/29516 5184/6012/29517 +f 5182/6006/29518 5183/6009/29519 5190/6079/29520 +f 5165/6005/29521 5182/6006/29522 5190/6079/29523 +f 5190/6079/29524 5189/6075/29525 5181/5981/29526 +f 5181/5981/29527 5165/6005/29528 5190/6079/29529 +f 5191/6082/29530 5178/6086/29531 5179/5982/29532 +f 5179/5982/29533 5181/5981/29534 5191/6082/29535 +f 5192/6087/29536 5176/6088/29537 5178/6086/29538 +f 5178/6086/29539 5191/6082/29540 5192/6087/29541 +f 5176/6088/29542 5192/6087/29543 5193/6089/29544 +f 5193/6089/29545 5177/6090/29546 5176/6088/29547 +s 2 +f 5148/5943/29548 5150/5946/29549 5177/5998/29550 +f 5177/5998/29551 5193/6023/29552 5148/5943/29553 +s 4 +f 5147/5944/29554 5148/5943/29555 5193/6023/29556 +f 5193/6023/29557 5174/5990/29558 5147/5944/29559 +s 1 +f 5193/6023/29560 5175/6027/29561 5174/5990/29562 +f 5193/6089/29563 5192/6087/29564 5175/5977/29565 +f 5189/6075/29566 5194/6091/29567 5191/6082/29568 +f 5191/6082/29569 5181/5981/29570 5189/6075/29571 +f 5194/6091/29572 5192/6087/29573 5191/6082/29574 +f 5137/5974/29575 5175/5977/29576 5192/6087/29577 +f 5192/6087/29578 5194/6091/29579 5137/5974/29580 +f 5136/5969/29581 5137/5974/29582 5194/6091/29583 +f 5134/5919/29584 5136/5969/29585 5194/6091/29586 +f 5195/5973/29587 5187/5958/29588 5111/5971/29589 +f 5111/5971/29590 5118/5972/29591 5195/5973/29592 +f 5197/6093/29593 5187/6073/29594 5195/6094/29595 +f 5195/6094/29596 5196/6092/29597 5197/6093/29598 +f 5197/6093/29599 5302/6176/29600 5187/6073/29601 +f 5134/5919/29602 5194/6091/29603 5197/6093/29604 +f 5197/6093/29605 5196/6092/29606 5134/5919/29607 +f 5118/5972/29608 5120/5980/29609 5198/5983/29610 +f 5198/5983/29611 5195/5973/29612 5118/5972/29613 +f 5195/6094/29614 5198/6096/29615 5199/6095/29616 +f 5199/6095/29617 5196/6092/29618 5195/6094/29619 +f 5196/6092/29620 5199/6095/29621 5135/5920/29622 +f 5135/5920/29623 5134/5919/29624 5196/6092/29625 +f 5200/6029/29626 5201/6035/29627 5119/5912/29628 +f 5119/5912/29629 5122/5928/29630 5200/6029/29631 +f 5201/6035/29632 5200/6029/29633 5202/6036/29634 +f 5202/6036/29635 5203/6037/29636 5201/6035/29637 +f 5203/6037/29638 5202/6036/29639 5204/6038/29640 +f 5204/6038/29641 5205/6039/29642 5203/6037/29643 +f 5206/6040/29644 5200/6029/29645 5122/5928/29646 +f 5122/5928/29647 5124/5930/29648 5206/6040/29649 +f 5200/6029/29650 5206/6040/29651 5207/6041/29652 +f 5207/6041/29653 5202/6036/29654 5200/6029/29655 +f 5202/6036/29656 5207/6041/29657 5208/6042/29658 +f 5208/6042/29659 5204/6038/29660 5202/6036/29661 +f 5119/5912/29662 5201/6035/29663 5209/6043/29664 +f 5209/6043/29665 5120/5924/29666 5119/5912/29667 +f 5210/6044/29668 5209/6043/29669 5201/6035/29670 +f 5201/6035/29671 5203/6037/29672 5210/6044/29673 +f 5203/6037/29674 5205/6039/29675 5211/6045/29676 +f 5211/6045/29677 5210/6044/29678 5203/6037/29679 +f 5213/6047/29680 5205/6039/29681 5204/6038/29682 +f 5204/6038/29683 5212/6046/29684 5213/6047/29685 +f 5208/6042/29686 5214/6048/29687 5212/6046/29688 +f 5212/6046/29689 5204/6038/29690 5208/6042/29691 +f 5205/6039/29692 5213/6047/29693 5215/6049/29694 +f 5215/6049/29695 5211/6045/29696 5205/6039/29697 +f 5216/6050/29698 5217/6051/29699 5213/6047/29700 +f 5213/6047/29701 5212/6046/29702 5216/6050/29703 +f 5218/6052/29704 5216/6050/29705 5212/6046/29706 +f 5212/6046/29707 5214/6048/29708 5218/6052/29709 +f 5213/6047/29710 5217/6051/29711 5219/6053/29712 +f 5219/6053/29713 5215/6049/29714 5213/6047/29715 +f 5221/6098/29716 5135/5920/29717 5199/6095/29718 +f 5199/6095/29719 5220/6097/29720 5221/6098/29721 +f 5223/6100/29722 5221/6098/29723 5220/6097/29724 +f 5220/6097/29725 5222/6099/29726 5223/6100/29727 +f 5225/6102/29728 5223/6100/29729 5222/6099/29730 +f 5222/6099/29731 5224/6101/29732 5225/6102/29733 +f 5225/6102/29734 5224/6101/29735 5226/6103/29736 +f 5226/6103/29737 5227/6104/29738 5225/6102/29739 +f 5228/6105/29740 5220/6097/29741 5199/6095/29742 +f 5199/6095/29743 5198/6096/29744 5228/6105/29745 +f 5220/6097/29746 5228/6105/29747 5229/6106/29748 +f 5229/6106/29749 5222/6099/29750 5220/6097/29751 +f 5230/6107/29752 5224/6101/29753 5222/6099/29754 +f 5222/6099/29755 5229/6106/29756 5230/6107/29757 +f 5231/6108/29758 5226/6103/29759 5224/6101/29760 +f 5224/6101/29761 5230/6107/29762 5231/6108/29763 +f 5135/5920/29764 5221/6098/29765 5232/6109/29766 +f 5232/6109/29767 5133/5921/29768 5135/5920/29769 +f 5221/6098/29770 5223/6100/29771 5233/6110/29772 +f 5233/6110/29773 5232/6109/29774 5221/6098/29775 +f 5223/6100/29776 5225/6102/29777 5234/6111/29778 +f 5234/6111/29779 5233/6110/29780 5223/6100/29781 +f 5235/6112/29782 5234/6111/29783 5225/6102/29784 +f 5225/6102/29785 5227/6104/29786 5235/6112/29787 +f 5133/5908/29788 5232/5991/29789 5206/5992/29790 +f 5206/5992/29791 5124/5909/29792 5133/5908/29793 +f 5232/5991/29794 5233/5993/29795 5207/5994/29796 +f 5207/5994/29797 5206/5992/29798 5232/5991/29799 +f 5234/5995/29800 5208/5996/29801 5207/5994/29802 +f 5207/5994/29803 5233/5993/29804 5234/5995/29805 +f 5235/5999/29806 5214/6000/29807 5208/5996/29808 +f 5208/5996/29809 5234/5995/29810 5235/5999/29811 +f 5235/5999/29812 5218/6003/29813 5214/6000/29814 +f 5209/6004/29815 5228/6013/29816 5198/5983/29817 +f 5198/5983/29818 5120/5980/29819 5209/6004/29820 +f 5210/6014/29821 5229/6015/29822 5228/6013/29823 +f 5228/6013/29824 5209/6004/29825 5210/6014/29826 +f 5211/6016/29827 5230/6017/29828 5229/6015/29829 +f 5229/6015/29830 5210/6014/29831 5211/6016/29832 +f 5211/6016/29833 5215/6018/29834 5231/6019/29835 +f 5231/6019/29836 5230/6017/29837 5211/6016/29838 +f 5215/6018/29839 5219/6020/29840 5231/6019/29841 +f 5236/6021/29842 5237/6022/29843 5218/6003/29844 +f 5218/6003/29845 5235/5999/29846 5236/6021/29847 +f 5218/6052/29848 5237/6055/29849 5238/6054/29850 +f 5238/6054/29851 5216/6050/29852 5218/6052/29853 +f 5239/6114/29854 5236/6113/29855 5235/6112/29856 +f 5235/6112/29857 5227/6104/29858 5239/6114/29859 +f 5226/6103/29860 5240/6115/29861 5239/6114/29862 +f 5239/6114/29863 5227/6104/29864 5226/6103/29865 +f 5241/6116/29866 5240/6115/29867 5226/6103/29868 +f 5226/6103/29869 5231/6108/29870 5241/6116/29871 +f 5216/6050/29872 5238/6054/29873 5242/6056/29874 +f 5242/6056/29875 5217/6051/29876 5216/6050/29877 +f 5217/6051/29878 5242/6056/29879 5243/6057/29880 +f 5243/6057/29881 5219/6053/29882 5217/6051/29883 +f 5241/6028/29884 5231/6019/29885 5219/6020/29886 +f 5219/6020/29887 5243/6026/29888 5241/6028/29889 +f 5244/6058/29890 5245/6067/29891 5243/6057/29892 +f 5243/6057/29893 5242/6056/29894 5244/6058/29895 +f 5246/6117/29896 5247/6118/29897 5240/6115/29898 +f 5240/6115/29899 5241/6116/29900 5246/6117/29901 +f 5243/6026/29902 5245/6030/29903 5246/6031/29904 +f 5246/6031/29905 5241/6028/29906 5243/6026/29907 +f 5246/6031/29908 5245/6030/29909 5248/6033/29910 +f 5248/6033/29911 5249/6034/29912 5246/6031/29913 +f 5248/6068/29914 5245/6067/29915 5244/6058/29916 +f 5249/6119/29917 5247/6118/29918 5246/6117/29919 +f 5249/6071/29920 5248/6068/29921 5250/6069/29922 +f 5250/6069/29923 5251/6070/29924 5249/6071/29925 +f 5250/6069/29926 5248/6068/29927 5244/6058/29928 +f 5252/6072/29929 5253/6074/29930 5250/6069/29931 +f 5250/6069/29932 5244/6058/29933 5252/6072/29934 +f 5254/6076/29935 5255/6077/29936 5253/6074/29937 +f 5253/6074/29938 5252/6072/29939 5254/6076/29940 +f 5256/6078/29941 5252/6072/29942 5244/6058/29943 +f 5244/6058/29944 5242/6056/29945 5256/6078/29946 +f 5256/6078/29947 5254/6076/29948 5252/6072/29949 +f 5257/6080/29950 5258/6081/29951 5254/6076/29952 +f 5254/6076/29953 5256/6078/29954 5257/6080/29955 +f 5259/6084/29956 5260/6085/29957 5254/6076/29958 +f 5254/6076/29959 5258/6081/29960 5259/6084/29961 +f 5262/6147/29962 5259/6084/29963 5258/6081/29964 +f 5258/6081/29965 5261/6146/29966 5262/6147/29967 +f 5261/6146/29968 5258/6081/29969 5257/6080/29970 +f 5264/6149/29971 5262/6147/29972 5261/6146/29973 +f 5261/6146/29974 5263/6148/29975 5264/6149/29976 +f 5265/6150/29977 5263/6148/29978 5267/6152/29979 +f 5267/6152/29980 5268/6153/29981 5265/6150/29982 +f 5270/6155/29983 5268/6153/29984 5267/6152/29985 +f 5267/6152/29986 5269/6154/29987 5270/6155/29988 +f 5261/6146/29989 5257/6080/29990 5267/6152/29991 +f 5267/6152/29992 5263/6148/29993 5261/6146/29994 +f 5271/6156/29995 5272/6157/29996 5299/6158/29997 +f 5273/6159/29998 5271/6156/29999 5267/6152/30000 +f 5267/6152/30001 5257/6080/30002 5273/6159/30003 +f 5257/6080/30004 5256/6078/30005 5242/6056/30006 +f 5242/6056/30007 5238/6054/30008 5257/6080/30009 +f 5273/6159/30010 5257/6080/30011 5238/6054/30012 +f 5274/6160/30013 5273/6159/30014 5238/6054/30015 +f 5238/6054/30016 5237/6055/30017 5274/6160/30018 +f 5275/6161/30019 5271/6156/30020 5273/6159/30021 +f 5273/6159/30022 5274/6160/30023 5275/6161/30024 +f 5276/6060/30025 5274/6059/30026 5237/6022/30027 +f 5237/6022/30028 5236/6021/30029 5276/6060/30030 +f 5274/6059/30031 5276/6060/30032 5277/6061/30033 +f 5277/6061/30034 5275/6062/30035 5274/6059/30036 +f 5278/6120/30037 5279/6121/30038 5240/6115/30039 +f 5240/6115/30040 5247/6118/30041 5278/6120/30042 +f 5286/6122/30043 5280/6123/30044 5279/6121/30045 +f 5279/6121/30046 5278/6120/30047 5286/6122/30048 +f 5239/6114/30049 5240/6115/30050 5279/6121/30051 +f 5279/6121/30052 5280/6123/30053 5239/6114/30054 +f 5281/6124/30055 5239/6114/30056 5280/6123/30057 +f 5247/6118/30058 5249/6119/30059 5251/6125/30060 +f 5251/6125/30061 5278/6120/30062 5247/6118/30063 +f 5278/6120/30064 5251/6125/30065 5282/6126/30066 +f 5282/6126/30067 5286/6122/30068 5278/6120/30069 +f 5253/6074/30070 5282/6162/30071 5251/6070/30072 +f 5251/6070/30073 5250/6069/30074 5253/6074/30075 +f 5253/6074/30076 5255/6077/30077 5283/6163/30078 +f 5283/6163/30079 5282/6162/30080 5253/6074/30081 +f 5286/6122/30082 5282/6126/30083 5283/6127/30084 +s 2 +f 5285/6165/30085 5260/6085/30086 5259/6084/30087 +f 5259/6084/30088 5284/6164/30089 5285/6165/30090 +s 1 +f 5286/6122/30091 5285/6129/30092 5284/6130/30093 +f 5284/6130/30094 5288/6128/30095 5286/6122/30096 +s 4 +f 5285/6165/30097 5286/6166/30098 5254/6076/30099 +f 5254/6076/30100 5260/6085/30101 5285/6165/30102 +s 2 +f 5283/6163/30103 5255/6077/30104 5254/6076/30105 +f 5254/6076/30106 5286/6166/30107 5283/6163/30108 +f 5259/6084/30109 5262/6147/30110 5287/6167/30111 +f 5287/6167/30112 5284/6164/30113 5259/6084/30114 +s 1 +f 5288/6128/30115 5284/6130/30116 5287/6131/30117 +s 2 +f 5262/6147/30118 5264/6149/30119 5289/6168/30120 +f 5289/6168/30121 5287/6167/30122 5262/6147/30123 +s 1 +f 5287/6131/30124 5289/6133/30125 5290/6132/30126 +f 5290/6132/30127 5288/6128/30128 5287/6131/30129 +f 5286/6122/30130 5288/6128/30131 5280/6123/30132 +f 5280/6123/30133 5288/6128/30134 5290/6132/30135 +s 2 +f 5289/6168/30136 5264/6149/30137 5266/6151/30138 +f 5266/6151/30139 5291/6169/30140 5289/6168/30141 +s 1 +f 5289/6133/30142 5291/6135/30143 5292/6134/30144 +f 5292/6134/30145 5290/6132/30146 5289/6133/30147 +f 5293/6136/30148 5294/6137/30149 5290/6132/30150 +f 5290/6132/30151 5292/6134/30152 5293/6136/30153 +f 5280/6123/30154 5290/6132/30155 5294/6137/30156 +f 5294/6137/30157 5293/6136/30158 5295/6138/30159 +f 5295/6138/30160 5296/6139/30161 5294/6137/30162 +f 5280/6123/30163 5294/6137/30164 5297/6140/30165 +f 5297/6140/30166 5281/6124/30167 5280/6123/30168 +f 5297/6140/30169 5277/6141/30170 5276/6142/30171 +f 5276/6142/30172 5281/6124/30173 5297/6140/30174 +f 5236/6113/30175 5239/6114/30176 5281/6124/30177 +f 5281/6124/30178 5276/6142/30179 5236/6113/30180 +f 5294/6137/30181 5296/6139/30182 5300/6143/30183 +f 5297/6140/30184 5294/6137/30185 5300/6143/30186 +f 5297/6140/30187 5300/6143/30188 5301/6144/30189 +f 5301/6144/30190 5298/6145/30191 5277/6141/30192 +f 5277/6141/30193 5297/6140/30194 5301/6144/30195 +f 5275/6062/30196 5277/6061/30197 5298/6083/30198 +f 5275/6161/30199 5298/6170/30200 5272/6157/30201 +f 5272/6157/30202 5271/6156/30203 5275/6161/30204 +s 4 +f 5292/6171/30205 5291/6169/30206 5266/6151/30207 +f 5266/6151/30208 5265/6150/30209 5292/6171/30210 +s 1 +f 5293/6173/30211 5268/6153/30212 5270/6155/30213 +f 5270/6155/30214 5295/6172/30215 5293/6173/30216 +f 5268/6153/30217 5293/6173/30218 5292/6171/30219 +f 5292/6171/30220 5265/6150/30221 5268/6153/30222 +f 5295/6172/30223 5270/6155/30224 5269/6154/30225 +f 5269/6154/30226 5296/6174/30227 5295/6172/30228 +f 5296/6174/30229 5269/6154/30230 5299/6158/30231 +f 5299/6158/30232 5300/6175/30233 5296/6174/30234 +f 5271/6156/30235 5299/6158/30236 5269/6154/30237 +f 5269/6154/30238 5267/6152/30239 5271/6156/30240 +f 5272/6157/30241 5298/6170/30242 5300/6175/30243 +f 5300/6175/30244 5299/6158/30245 5272/6157/30246 +f 5300/6143/30247 5298/6145/30248 5301/6144/30249 +f 5154/5949/30250 5141/5938/30251 5157/5953/30252 +f 5157/5953/30253 5141/5938/30254 5161/5956/30255 +f 5266/6151/30256 5264/6149/30257 5263/6148/30258 +f 5263/6148/30259 5265/6150/30260 5266/6151/30261 +f 5197/6093/30262 5194/6091/30263 5189/6075/30264 +f 5189/6075/30265 5302/6176/30266 5197/6093/30267 +f 5189/6075/30268 5184/6012/30269 5303/6177/30270 +f 5303/6177/30271 5302/6176/30272 5189/6075/30273 +f 5184/6012/30274 5185/6063/30275 5186/6065/30276 +f 5186/6065/30277 5303/6177/30278 5184/6012/30279 +f 5304/6180/30280 5320/6181/30281 5321/6178/30282 +f 5321/6178/30283 5305/6179/30284 5304/6180/30285 +f 5305/6179/30286 5321/6178/30287 5322/6182/30288 +f 5322/6182/30289 5306/6183/30290 5305/6179/30291 +f 5306/6183/30292 5322/6182/30293 5323/6184/30294 +f 5323/6184/30295 5307/6185/30296 5306/6183/30297 +f 5307/6185/30298 5323/6184/30299 5324/6186/30300 +f 5324/6186/30301 5308/6187/30302 5307/6185/30303 +f 5308/6187/30304 5324/6186/30305 5325/6188/30306 +f 5325/6188/30307 5309/6189/30308 5308/6187/30309 +f 5309/6189/30310 5325/6188/30311 5326/6190/30312 +f 5326/6190/30313 5310/6191/30314 5309/6189/30315 +f 5310/6191/30316 5326/6190/30317 5327/6192/30318 +f 5327/6192/30319 5311/6193/30320 5310/6191/30321 +f 5311/6193/30322 5327/6192/30323 5328/6194/30324 +f 5328/6194/30325 5312/6195/30326 5311/6193/30327 +f 5312/6195/30328 5328/6194/30329 5329/6196/30330 +f 5329/6196/30331 5313/6197/30332 5312/6195/30333 +f 5313/6197/30334 5329/6196/30335 5330/6198/30336 +f 5330/6198/30337 5314/6199/30338 5313/6197/30339 +f 5314/6199/30340 5330/6198/30341 5331/6200/30342 +f 5331/6200/30343 5315/6201/30344 5314/6199/30345 +f 5315/6201/30346 5331/6200/30347 5332/6202/30348 +f 5332/6202/30349 5316/6203/30350 5315/6201/30351 +f 5316/6203/30352 5332/6202/30353 5333/6204/30354 +f 5333/6204/30355 5317/6205/30356 5316/6203/30357 +f 5317/6205/30358 5333/6204/30359 5334/6206/30360 +f 5334/6206/30361 5318/6207/30362 5317/6205/30363 +f 5318/6207/30364 5334/6206/30365 5335/6208/30366 +f 5335/6208/30367 5319/6209/30368 5318/6207/30369 +f 5319/6209/30370 5335/6208/30371 5320/6181/30372 +f 5320/6181/30373 5304/6180/30374 5319/6209/30375 +f 5320/6181/30376 5336/6211/30377 5337/6210/30378 +f 5337/6210/30379 5321/6178/30380 5320/6181/30381 +f 5321/6178/30382 5337/6210/30383 5338/6212/30384 +f 5338/6212/30385 5322/6182/30386 5321/6178/30387 +f 5322/6182/30388 5338/6212/30389 5339/6213/30390 +f 5339/6213/30391 5323/6184/30392 5322/6182/30393 +f 5323/6184/30394 5339/6213/30395 5340/6214/30396 +f 5340/6214/30397 5324/6186/30398 5323/6184/30399 +f 5324/6186/30400 5340/6214/30401 5341/6215/30402 +f 5341/6215/30403 5325/6188/30404 5324/6186/30405 +f 5325/6188/30406 5341/6215/30407 5342/6216/30408 +f 5342/6216/30409 5326/6190/30410 5325/6188/30411 +f 5326/6190/30412 5342/6216/30413 5343/6217/30414 +f 5343/6217/30415 5327/6192/30416 5326/6190/30417 +f 5327/6192/30418 5343/6217/30419 5344/6218/30420 +f 5344/6218/30421 5328/6194/30422 5327/6192/30423 +f 5328/6194/30424 5344/6218/30425 5345/6219/30426 +f 5345/6219/30427 5329/6196/30428 5328/6194/30429 +f 5329/6196/30430 5345/6219/30431 5346/6220/30432 +f 5346/6220/30433 5330/6198/30434 5329/6196/30435 +f 5330/6198/30436 5346/6220/30437 5347/6221/30438 +f 5347/6221/30439 5331/6200/30440 5330/6198/30441 +f 5331/6200/30442 5347/6221/30443 5348/6222/30444 +f 5348/6222/30445 5332/6202/30446 5331/6200/30447 +f 5332/6202/30448 5348/6222/30449 5349/6223/30450 +f 5349/6223/30451 5333/6204/30452 5332/6202/30453 +f 5333/6204/30454 5349/6223/30455 5350/6224/30456 +f 5350/6224/30457 5334/6206/30458 5333/6204/30459 +f 5334/6206/30460 5350/6224/30461 5351/6225/30462 +f 5351/6225/30463 5335/6208/30464 5334/6206/30465 +f 5335/6208/30466 5351/6225/30467 5336/6211/30468 +f 5336/6211/30469 5320/6181/30470 5335/6208/30471 +f 5336/6211/30472 5352/6227/30473 5353/6226/30474 +f 5353/6226/30475 5337/6210/30476 5336/6211/30477 +f 5337/6210/30478 5353/6226/30479 5354/6228/30480 +f 5354/6228/30481 5338/6212/30482 5337/6210/30483 +f 5338/6212/30484 5354/6380/30485 5355/6229/30486 +f 5355/6229/30487 5339/6213/30488 5338/6212/30489 +f 5339/6213/30490 5355/6229/30491 5356/6230/30492 +f 5356/6230/30493 5340/6214/30494 5339/6213/30495 +f 5340/6214/30496 5356/6230/30497 5357/6231/30498 +f 5357/6231/30499 5341/6215/30500 5340/6214/30501 +f 5341/6215/30502 5357/6381/30503 5358/6232/30504 +f 5358/6232/30505 5342/6216/30506 5341/6215/30507 +f 5342/6216/30508 5358/6232/30509 5359/6233/30510 +f 5359/6233/30511 5343/6217/30512 5342/6216/30513 +f 5343/6217/30514 5359/6233/30515 5360/6234/30516 +f 5360/6234/30517 5344/6218/30518 5343/6217/30519 +f 5344/6218/30520 5360/6382/30521 5361/6235/30522 +f 5361/6235/30523 5345/6219/30524 5344/6218/30525 +f 5345/6219/30526 5361/6235/30527 5362/6236/30528 +f 5362/6236/30529 5346/6220/30530 5345/6219/30531 +f 5346/6220/30532 5362/6383/30533 5363/6237/30534 +f 5363/6237/30535 5347/6221/30536 5346/6220/30537 +f 5347/6221/30538 5363/6237/30539 5364/6238/30540 +f 5364/6238/30541 5348/6222/30542 5347/6221/30543 +f 5348/6222/30544 5364/6384/30545 5365/6239/30546 +f 5365/6239/30547 5349/6223/30548 5348/6222/30549 +f 5349/6223/30550 5365/6239/30551 5366/6240/30552 +f 5366/6240/30553 5350/6224/30554 5349/6223/30555 +f 5350/6224/30556 5366/6240/30557 5367/6241/30558 +f 5367/6241/30559 5351/6225/30560 5350/6224/30561 +f 5351/6225/30562 5367/6385/30563 5352/6227/30564 +f 5352/6227/30565 5336/6211/30566 5351/6225/30567 +f 5352/6227/30568 5368/6243/30569 5369/6242/30570 +f 5369/6242/30571 5353/6226/30572 5352/6227/30573 +f 5353/6226/30574 5369/6242/30575 5370/6244/30576 +f 5370/6244/30577 5354/6228/30578 5353/6226/30579 +f 5354/6380/30580 5370/6386/30581 5371/6245/30582 +f 5371/6245/30583 5355/6229/30584 5354/6380/30585 +f 5355/6229/30586 5371/6245/30587 5372/6246/30588 +f 5372/6246/30589 5356/6230/30590 5355/6229/30591 +f 5356/6230/30592 5372/6246/30593 5373/6247/30594 +f 5373/6247/30595 5357/6231/30596 5356/6230/30597 +f 5357/6381/30598 5373/6387/30599 5374/6248/30600 +f 5374/6248/30601 5358/6232/30602 5357/6381/30603 +f 5358/6232/30604 5374/6248/30605 5375/6249/30606 +f 5375/6249/30607 5359/6233/30608 5358/6232/30609 +f 5359/6233/30610 5375/6249/30611 5376/6250/30612 +f 5376/6250/30613 5360/6234/30614 5359/6233/30615 +f 5360/6382/30616 5376/6388/30617 5377/6251/30618 +f 5377/6251/30619 5361/6235/30620 5360/6382/30621 +f 5361/6235/30622 5377/6251/30623 5378/6252/30624 +f 5378/6252/30625 5362/6236/30626 5361/6235/30627 +f 5362/6383/30628 5378/6389/30629 5379/6253/30630 +f 5379/6253/30631 5363/6237/30632 5362/6383/30633 +f 5363/6237/30634 5379/6253/30635 5380/6254/30636 +f 5380/6254/30637 5364/6238/30638 5363/6237/30639 +f 5364/6384/30640 5380/6390/30641 5381/6255/30642 +f 5381/6255/30643 5365/6239/30644 5364/6384/30645 +f 5365/6239/30646 5381/6255/30647 5382/6256/30648 +f 5382/6256/30649 5366/6240/30650 5365/6239/30651 +f 5366/6240/30652 5382/6256/30653 5383/6257/30654 +f 5383/6257/30655 5367/6241/30656 5366/6240/30657 +f 5367/6385/30658 5383/6391/30659 5368/6243/30660 +f 5368/6243/30661 5352/6227/30662 5367/6385/30663 +f 5401/6260/30664 5402/6261/30665 5403/6258/30666 +f 5403/6258/30667 5388/6259/30668 5401/6260/30669 +f 5386/6264/30670 5389/6265/30671 5390/6262/30672 +f 5390/6262/30673 5385/6263/30674 5386/6264/30675 +f 5386/6264/30676 5387/6267/30677 5404/6266/30678 +f 5404/6266/30679 5389/6265/30680 5386/6264/30681 +f 5387/6267/30682 5388/6259/30683 5403/6258/30684 +f 5403/6258/30685 5404/6266/30686 5387/6267/30687 +f 5385/6263/30688 5390/6262/30689 5391/6268/30690 +f 5391/6268/30691 5384/6269/30692 5385/6263/30693 +f 5391/6268/30694 5392/6271/30695 5393/6270/30696 +f 5393/6270/30697 5384/6269/30698 5391/6268/30699 +f 5393/6270/30700 5394/6273/30701 5395/6272/30702 +f 5395/6272/30703 5384/6269/30704 5393/6270/30705 +f 5385/6263/30706 5384/6269/30707 5395/6272/30708 +f 5395/6272/30709 5396/6274/30710 5385/6263/30711 +f 5386/6264/30712 5385/6263/30713 5396/6274/30714 +f 5396/6274/30715 5397/6275/30716 5386/6264/30717 +f 5398/6276/30718 5387/6267/30719 5386/6264/30720 +f 5386/6264/30721 5397/6275/30722 5398/6276/30723 +f 5399/6277/30724 5388/6259/30725 5387/6267/30726 +f 5387/6267/30727 5398/6276/30728 5399/6277/30729 +f 5388/6259/30730 5399/6277/30731 5400/6278/30732 +f 5400/6278/30733 5401/6260/30734 5388/6259/30735 +f 5390/6262/30736 5389/6265/30737 5304/6180/30738 +f 5304/6180/30739 5305/6179/30740 5390/6262/30741 +f 5391/6268/30742 5390/6262/30743 5305/6179/30744 +f 5305/6179/30745 5306/6183/30746 5391/6268/30747 +f 5392/6271/30748 5391/6268/30749 5306/6183/30750 +f 5306/6183/30751 5307/6185/30752 5392/6271/30753 +f 5393/6270/30754 5392/6271/30755 5307/6185/30756 +f 5307/6185/30757 5308/6187/30758 5393/6270/30759 +f 5394/6273/30760 5393/6270/30761 5308/6187/30762 +f 5308/6187/30763 5309/6189/30764 5394/6273/30765 +f 5395/6272/30766 5394/6273/30767 5309/6189/30768 +f 5309/6189/30769 5310/6191/30770 5395/6272/30771 +f 5396/6274/30772 5395/6272/30773 5310/6191/30774 +f 5310/6191/30775 5311/6193/30776 5396/6274/30777 +f 5397/6275/30778 5396/6274/30779 5311/6193/30780 +f 5311/6193/30781 5312/6195/30782 5397/6275/30783 +f 5398/6276/30784 5397/6275/30785 5312/6195/30786 +f 5312/6195/30787 5313/6197/30788 5398/6276/30789 +f 5399/6277/30790 5398/6276/30791 5313/6197/30792 +f 5313/6197/30793 5314/6199/30794 5399/6277/30795 +f 5400/6278/30796 5399/6277/30797 5314/6199/30798 +f 5314/6199/30799 5315/6201/30800 5400/6278/30801 +f 5401/6260/30802 5400/6278/30803 5315/6201/30804 +f 5315/6201/30805 5316/6203/30806 5401/6260/30807 +f 5402/6261/30808 5401/6260/30809 5316/6203/30810 +f 5316/6203/30811 5317/6205/30812 5402/6261/30813 +f 5403/6258/30814 5402/6261/30815 5317/6205/30816 +f 5317/6205/30817 5318/6207/30818 5403/6258/30819 +f 5404/6266/30820 5403/6258/30821 5318/6207/30822 +f 5318/6207/30823 5319/6209/30824 5404/6266/30825 +f 5389/6265/30826 5404/6266/30827 5319/6209/30828 +f 5319/6209/30829 5304/6180/30830 5389/6265/30831 +f 5405/6281/30832 5408/6282/30833 5407/6279/30834 +f 5407/6279/30835 5406/6280/30836 5405/6281/30837 +f 5408/6282/30838 5410/6284/30839 5409/6283/30840 +f 5409/6283/30841 5407/6279/30842 5408/6282/30843 +f 5410/6284/30844 5412/6286/30845 5411/6285/30846 +f 5411/6285/30847 5409/6283/30848 5410/6284/30849 +f 5412/6286/30850 5414/6288/30851 5413/6287/30852 +f 5413/6287/30853 5411/6285/30854 5412/6286/30855 +f 5414/6288/30856 5416/6290/30857 5415/6289/30858 +f 5415/6289/30859 5413/6287/30860 5414/6288/30861 +f 5416/6290/30862 5418/6292/30863 5417/6291/30864 +f 5417/6291/30865 5415/6289/30866 5416/6290/30867 +f 5418/6292/30868 5420/6294/30869 5419/6293/30870 +f 5419/6293/30871 5417/6291/30872 5418/6292/30873 +f 5420/6294/30874 5422/6296/30875 5421/6295/30876 +f 5421/6295/30877 5419/6293/30878 5420/6294/30879 +f 5422/6296/30880 5424/6298/30881 5423/6297/30882 +f 5423/6297/30883 5421/6295/30884 5422/6296/30885 +f 5424/6298/30886 5426/6300/30887 5425/6299/30888 +f 5425/6299/30889 5423/6297/30890 5424/6298/30891 +f 5426/6300/30892 5428/6302/30893 5427/6301/30894 +f 5427/6301/30895 5425/6299/30896 5426/6300/30897 +f 5428/6302/30898 5430/6304/30899 5429/6303/30900 +f 5429/6303/30901 5427/6301/30902 5428/6302/30903 +f 5430/6304/30904 5432/6306/30905 5431/6305/30906 +f 5431/6305/30907 5429/6303/30908 5430/6304/30909 +f 5432/6306/30910 5434/6308/30911 5433/6307/30912 +f 5433/6307/30913 5431/6305/30914 5432/6306/30915 +f 5434/6308/30916 5436/6310/30917 5435/6309/30918 +f 5435/6309/30919 5433/6307/30920 5434/6308/30921 +f 5436/6310/30922 5405/6281/30923 5406/6280/30924 +f 5406/6280/30925 5435/6309/30926 5436/6310/30927 +f 5406/6280/30928 5407/6279/30929 5438/6311/30930 +f 5438/6311/30931 5437/6312/30932 5406/6280/30933 +f 5407/6279/30934 5409/6283/30935 5439/6313/30936 +f 5439/6313/30937 5438/6311/30938 5407/6279/30939 +f 5409/6283/30940 5411/6285/30941 5440/6314/30942 +f 5440/6314/30943 5439/6313/30944 5409/6283/30945 +f 5411/6285/30946 5413/6287/30947 5441/6315/30948 +f 5441/6315/30949 5440/6314/30950 5411/6285/30951 +f 5413/6287/30952 5415/6289/30953 5442/6316/30954 +f 5442/6316/30955 5441/6315/30956 5413/6287/30957 +f 5415/6289/30958 5417/6291/30959 5443/6317/30960 +f 5443/6317/30961 5442/6316/30962 5415/6289/30963 +f 5417/6291/30964 5419/6293/30965 5444/6318/30966 +f 5444/6318/30967 5443/6317/30968 5417/6291/30969 +f 5419/6293/30970 5421/6295/30971 5445/6319/30972 +f 5445/6319/30973 5444/6318/30974 5419/6293/30975 +f 5421/6295/30976 5423/6297/30977 5446/6320/30978 +f 5446/6320/30979 5445/6319/30980 5421/6295/30981 +f 5423/6297/30982 5425/6299/30983 5447/6321/30984 +f 5447/6321/30985 5446/6320/30986 5423/6297/30987 +f 5425/6299/30988 5427/6301/30989 5448/6322/30990 +f 5448/6322/30991 5447/6321/30992 5425/6299/30993 +f 5427/6301/30994 5429/6303/30995 5449/6323/30996 +f 5449/6323/30997 5448/6322/30998 5427/6301/30999 +f 5429/6303/31000 5431/6305/31001 5450/6324/31002 +f 5450/6324/31003 5449/6323/31004 5429/6303/31005 +f 5431/6305/31006 5433/6307/31007 5451/6325/31008 +f 5451/6325/31009 5450/6324/31010 5431/6305/31011 +f 5433/6307/31012 5435/6309/31013 5452/6326/31014 +f 5452/6326/31015 5451/6325/31016 5433/6307/31017 +f 5435/6309/31018 5406/6280/31019 5437/6312/31020 +f 5437/6312/31021 5452/6326/31022 5435/6309/31023 +f 5437/6312/31024 5438/6311/31025 5454/6327/31026 +f 5454/6327/31027 5453/6328/31028 5437/6312/31029 +f 5438/6311/31030 5439/6313/31031 5455/6329/31032 +f 5455/6329/31033 5454/6392/31034 5438/6311/31035 +f 5439/6313/31036 5440/6314/31037 5456/6330/31038 +f 5456/6330/31039 5455/6329/31040 5439/6313/31041 +f 5440/6314/31042 5441/6315/31043 5457/6331/31044 +f 5457/6331/31045 5456/6330/31046 5440/6314/31047 +f 5441/6315/31048 5442/6316/31049 5458/6332/31050 +f 5458/6332/31051 5457/6393/31052 5441/6315/31053 +f 5442/6316/31054 5443/6317/31055 5459/6333/31056 +f 5459/6333/31057 5458/6332/31058 5442/6316/31059 +f 5443/6317/31060 5444/6318/31061 5460/6334/31062 +f 5460/6334/31063 5459/6333/31064 5443/6317/31065 +f 5444/6318/31066 5445/6319/31067 5461/6335/31068 +f 5461/6335/31069 5460/6394/31070 5444/6318/31071 +f 5445/6319/31072 5446/6320/31073 5462/6336/31074 +f 5462/6336/31075 5461/6335/31076 5445/6319/31077 +f 5446/6320/31078 5447/6321/31079 5463/6337/31080 +f 5463/6337/31081 5462/6395/31082 5446/6320/31083 +f 5447/6321/31084 5448/6322/31085 5464/6338/31086 +f 5464/6338/31087 5463/6337/31088 5447/6321/31089 +f 5448/6322/31090 5449/6323/31091 5465/6339/31092 +f 5465/6339/31093 5464/6396/31094 5448/6322/31095 +f 5449/6323/31096 5450/6324/31097 5466/6340/31098 +f 5466/6340/31099 5465/6339/31100 5449/6323/31101 +f 5450/6324/31102 5451/6325/31103 5467/6341/31104 +f 5467/6341/31105 5466/6340/31106 5450/6324/31107 +f 5451/6325/31108 5452/6326/31109 5468/6342/31110 +f 5468/6342/31111 5467/6397/31112 5451/6325/31113 +f 5452/6326/31114 5437/6312/31115 5453/6328/31116 +f 5453/6328/31117 5468/6342/31118 5452/6326/31119 +f 5453/6328/31120 5454/6327/31121 5470/6343/31122 +f 5470/6343/31123 5469/6344/31124 5453/6328/31125 +f 5454/6392/31126 5455/6329/31127 5471/6345/31128 +f 5471/6345/31129 5470/6398/31130 5454/6392/31131 +f 5455/6329/31132 5456/6330/31133 5472/6346/31134 +f 5472/6346/31135 5471/6345/31136 5455/6329/31137 +f 5456/6330/31138 5457/6331/31139 5473/6347/31140 +f 5473/6347/31141 5472/6346/31142 5456/6330/31143 +f 5457/6393/31144 5458/6332/31145 5474/6348/31146 +f 5474/6348/31147 5473/6399/31148 5457/6393/31149 +f 5458/6332/31150 5459/6333/31151 5475/6349/31152 +f 5475/6349/31153 5474/6348/31154 5458/6332/31155 +f 5459/6333/31156 5460/6334/31157 5476/6350/31158 +f 5476/6350/31159 5475/6349/31160 5459/6333/31161 +f 5460/6394/31162 5461/6335/31163 5477/6351/31164 +f 5477/6351/31165 5476/6400/31166 5460/6394/31167 +f 5461/6335/31168 5462/6336/31169 5478/6352/31170 +f 5478/6352/31171 5477/6351/31172 5461/6335/31173 +f 5462/6395/31174 5463/6337/31175 5479/6353/31176 +f 5479/6353/31177 5478/6401/31178 5462/6395/31179 +f 5463/6337/31180 5464/6338/31181 5480/6354/31182 +f 5480/6354/31183 5479/6353/31184 5463/6337/31185 +f 5464/6396/31186 5465/6339/31187 5481/6355/31188 +f 5481/6355/31189 5480/6402/31190 5464/6396/31191 +f 5465/6339/31192 5466/6340/31193 5482/6356/31194 +f 5482/6356/31195 5481/6355/31196 5465/6339/31197 +f 5466/6340/31198 5467/6341/31199 5483/6357/31200 +f 5483/6357/31201 5482/6356/31202 5466/6340/31203 +f 5467/6397/31204 5468/6342/31205 5484/6358/31206 +f 5484/6358/31207 5483/6403/31208 5467/6397/31209 +f 5468/6342/31210 5453/6328/31211 5469/6344/31212 +f 5469/6344/31213 5484/6358/31214 5468/6342/31215 +f 5485/6361/31216 5488/6362/31217 5487/6359/31218 +f 5487/6359/31219 5486/6360/31220 5485/6361/31221 +f 5492/6365/31222 5491/6366/31223 5490/6363/31224 +f 5490/6363/31225 5489/6364/31226 5492/6365/31227 +f 5492/6365/31228 5489/6364/31229 5493/6367/31230 +f 5493/6367/31231 5494/6368/31232 5492/6365/31233 +f 5494/6368/31234 5493/6367/31235 5487/6359/31236 +f 5487/6359/31237 5488/6362/31238 5494/6368/31239 +f 5491/6366/31240 5496/6370/31241 5495/6369/31242 +f 5495/6369/31243 5490/6363/31244 5491/6366/31245 +f 5495/6369/31246 5496/6370/31247 5498/6371/31248 +f 5498/6371/31249 5497/6372/31250 5495/6369/31251 +f 5498/6371/31252 5496/6370/31253 5500/6373/31254 +f 5500/6373/31255 5499/6374/31256 5498/6371/31257 +f 5491/6366/31258 5501/6375/31259 5500/6373/31260 +f 5500/6373/31261 5496/6370/31262 5491/6366/31263 +f 5492/6365/31264 5502/6376/31265 5501/6375/31266 +f 5501/6375/31267 5491/6366/31268 5492/6365/31269 +f 5503/6377/31270 5502/6376/31271 5492/6365/31272 +f 5492/6365/31273 5494/6368/31274 5503/6377/31275 +f 5504/6378/31276 5503/6377/31277 5494/6368/31278 +f 5494/6368/31279 5488/6362/31280 5504/6378/31281 +f 5488/6362/31282 5485/6361/31283 5505/6379/31284 +f 5505/6379/31285 5504/6378/31286 5488/6362/31287 +f 5490/6363/31288 5408/6282/31289 5405/6281/31290 +f 5405/6281/31291 5489/6364/31292 5490/6363/31293 +f 5495/6369/31294 5410/6284/31295 5408/6282/31296 +f 5408/6282/31297 5490/6363/31298 5495/6369/31299 +f 5497/6372/31300 5412/6286/31301 5410/6284/31302 +f 5410/6284/31303 5495/6369/31304 5497/6372/31305 +f 5498/6371/31306 5414/6288/31307 5412/6286/31308 +f 5412/6286/31309 5497/6372/31310 5498/6371/31311 +f 5499/6374/31312 5416/6290/31313 5414/6288/31314 +f 5414/6288/31315 5498/6371/31316 5499/6374/31317 +f 5500/6373/31318 5418/6292/31319 5416/6290/31320 +f 5416/6290/31321 5499/6374/31322 5500/6373/31323 +f 5501/6375/31324 5420/6294/31325 5418/6292/31326 +f 5418/6292/31327 5500/6373/31328 5501/6375/31329 +f 5502/6376/31330 5422/6296/31331 5420/6294/31332 +f 5420/6294/31333 5501/6375/31334 5502/6376/31335 +f 5503/6377/31336 5424/6298/31337 5422/6296/31338 +f 5422/6296/31339 5502/6376/31340 5503/6377/31341 +f 5504/6378/31342 5426/6300/31343 5424/6298/31344 +f 5424/6298/31345 5503/6377/31346 5504/6378/31347 +f 5505/6379/31348 5428/6302/31349 5426/6300/31350 +f 5426/6300/31351 5504/6378/31352 5505/6379/31353 +f 5485/6361/31354 5430/6304/31355 5428/6302/31356 +f 5428/6302/31357 5505/6379/31358 5485/6361/31359 +f 5486/6360/31360 5432/6306/31361 5430/6304/31362 +f 5430/6304/31363 5485/6361/31364 5486/6360/31365 +f 5487/6359/31366 5434/6308/31367 5432/6306/31368 +f 5432/6306/31369 5486/6360/31370 5487/6359/31371 +f 5493/6367/31372 5436/6310/31373 5434/6308/31374 +f 5434/6308/31375 5487/6359/31376 5493/6367/31377 +f 5489/6364/31378 5405/6281/31379 5436/6310/31380 +f 5436/6310/31381 5493/6367/31382 5489/6364/31383 +f 5520/6406/31384 5507/6407/31385 5596/6404/31386 +f 5596/6404/31387 5521/6405/31388 5520/6406/31389 +f 5522/6408/31390 5510/6409/31391 5507/6407/31392 +f 5507/6407/31393 5520/6406/31394 5522/6408/31395 +f 5515/6412/31396 5516/6413/31397 5531/6410/31398 +f 5531/6410/31399 5529/6411/31400 5515/6412/31401 +f 5519/6416/31402 5518/6417/31403 5528/6414/31404 +f 5528/6414/31405 5527/6415/31406 5519/6416/31407 +f 5508/6420/31408 5509/6421/31409 5524/6418/31410 +f 5524/6418/31411 5523/6419/31412 5508/6420/31413 +f 5526/6422/31414 5513/6423/31415 5519/6416/31416 +f 5519/6416/31417 5527/6415/31418 5526/6422/31419 +f 5519/6416/31420 5513/6423/31421 5525/6424/31422 +f 5525/6424/31423 5523/6419/31424 5519/6416/31425 +f 5508/6420/31426 5520/6406/31427 5521/6405/31428 +f 5521/6405/31429 5509/6421/31430 5508/6420/31431 +f 5511/6425/31432 5522/6408/31433 5520/6406/31434 +f 5520/6406/31435 5508/6420/31436 5511/6425/31437 +f 5523/6419/31438 5524/6418/31439 5518/6417/31440 +f 5518/6417/31441 5519/6416/31442 5523/6419/31443 +f 5508/6420/31444 5523/6419/31445 5525/6424/31446 +f 5525/6424/31447 5511/6425/31448 5508/6420/31449 +f 5527/6415/31450 5528/6414/31451 5516/6413/31452 +f 5516/6413/31453 5515/6412/31454 5527/6415/31455 +f 5512/6426/31456 5526/6422/31457 5527/6415/31458 +f 5527/6415/31459 5515/6412/31460 5512/6426/31461 +f 5529/6411/31462 5530/6427/31463 5512/6426/31464 +f 5512/6426/31465 5515/6412/31466 5529/6411/31467 +f 5529/6411/31468 5531/6410/31469 5517/6428/31470 +f 5517/6428/31471 5599/6429/31472 5529/6411/31473 +f 5542/6430/31474 5532/6431/31475 5510/6409/31476 +f 5510/6409/31477 5522/6408/31478 5542/6430/31479 +f 5543/6432/31480 5534/6433/31481 5532/6431/31482 +f 5532/6431/31483 5542/6430/31484 5543/6432/31485 +f 5544/6436/31486 5535/6437/31487 5533/6434/31488 +f 5533/6434/31489 5545/6435/31490 5544/6436/31491 +f 5547/6440/31492 5546/6441/31493 5538/6438/31494 +f 5538/6438/31495 5539/6439/31496 5547/6440/31497 +f 5526/6422/31498 5512/6426/31499 5538/6438/31500 +f 5538/6438/31501 5546/6441/31502 5526/6422/31503 +f 5530/6427/31504 5529/6411/31505 5599/6429/31506 +f 5599/6429/31507 5606/6442/31508 5530/6427/31509 +f 5606/6442/31510 5607/6444/31511 5548/6443/31512 +f 5548/6443/31513 5530/6427/31514 5606/6442/31515 +f 5533/6434/31516 5511/6425/31517 5525/6424/31518 +f 5525/6424/31519 5545/6435/31520 5533/6434/31521 +f 5533/6434/31522 5542/6430/31523 5522/6408/31524 +f 5522/6408/31525 5511/6425/31526 5533/6434/31527 +f 5535/6437/31528 5543/6432/31529 5542/6430/31530 +f 5542/6430/31531 5533/6434/31532 5535/6437/31533 +f 5536/6446/31534 5544/6436/31535 5545/6435/31536 +f 5545/6435/31537 5537/6445/31538 5536/6446/31539 +f 5545/6435/31540 5525/6424/31541 5513/6423/31542 +f 5513/6423/31543 5537/6445/31544 5545/6435/31545 +f 5546/6441/31546 5547/6440/31547 5536/6446/31548 +f 5536/6446/31549 5537/6445/31550 5546/6441/31551 +f 5513/6423/31552 5526/6422/31553 5546/6441/31554 +f 5546/6441/31555 5537/6445/31556 5513/6423/31557 +f 5530/6427/31558 5548/6443/31559 5538/6438/31560 +f 5538/6438/31561 5512/6426/31562 5530/6427/31563 +f 5548/6443/31564 5549/6447/31565 5539/6439/31566 +f 5539/6439/31567 5538/6438/31568 5548/6443/31569 +f 5607/6444/31570 5612/6448/31571 5549/6447/31572 +f 5549/6447/31573 5548/6443/31574 5607/6444/31575 +f 5565/6453/31576 5566/6473/31577 5551/6449/31578 +f 5551/6449/31579 5552/6450/31580 5565/6453/31581 +f 5567/6475/31582 5565/6453/31583 5552/6450/31584 +f 5552/6450/31585 5555/6474/31586 5567/6475/31587 +f 5560/6457/31588 5574/6458/31589 5576/6455/31590 +f 5576/6455/31591 5561/6456/31592 5560/6457/31593 +f 5564/6461/31594 5572/6462/31595 5573/6459/31596 +f 5573/6459/31597 5563/6460/31598 5564/6461/31599 +f 5553/6465/31600 5568/6466/31601 5569/6463/31602 +f 5569/6463/31603 5554/6464/31604 5553/6465/31605 +f 5571/6468/31606 5572/6462/31607 5564/6461/31608 +f 5564/6461/31609 5558/6467/31610 5571/6468/31611 +f 5564/6461/31612 5568/6466/31613 5570/6469/31614 +f 5570/6469/31615 5558/6467/31616 5564/6461/31617 +f 5553/6465/31618 5554/6464/31619 5566/6452/31620 +f 5566/6452/31621 5565/6451/31622 5553/6465/31623 +f 5556/6470/31624 5553/6465/31625 5565/6451/31626 +f 5565/6451/31627 5567/6454/31628 5556/6470/31629 +f 5568/6466/31630 5564/6461/31631 5563/6460/31632 +f 5563/6460/31633 5569/6463/31634 5568/6466/31635 +f 5553/6465/31636 5556/6470/31637 5570/6469/31638 +f 5570/6469/31639 5568/6466/31640 5553/6465/31641 +f 5572/6462/31642 5560/6457/31643 5561/6456/31644 +f 5561/6456/31645 5573/6459/31646 5572/6462/31647 +f 5557/6471/31648 5560/6457/31649 5572/6462/31650 +f 5572/6462/31651 5571/6468/31652 5557/6471/31653 +f 5574/6458/31654 5560/6457/31655 5557/6471/31656 +f 5557/6471/31657 5575/6472/31658 5574/6458/31659 +f 5574/6480/31660 5559/6481/31661 5562/6477/31662 +f 5562/6477/31663 5576/6478/31664 5574/6480/31665 +f 5587/6486/31666 5567/6475/31667 5555/6474/31668 +f 5555/6474/31669 5577/6485/31670 5587/6486/31671 +f 5588/6489/31672 5587/6486/31673 5577/6485/31674 +f 5577/6485/31675 5579/6487/31676 5588/6489/31677 +f 5589/6493/31678 5590/6494/31679 5578/6490/31680 +f 5578/6490/31681 5580/6492/31682 5589/6493/31683 +f 5592/6497/31684 5584/6498/31685 5583/6495/31686 +f 5583/6495/31687 5591/6496/31688 5592/6497/31689 +f 5571/6468/31690 5591/6484/31691 5583/6483/31692 +f 5583/6483/31693 5557/6471/31694 5571/6468/31695 +f 5575/6499/31696 5585/6500/31697 5559/6481/31698 +f 5559/6481/31699 5574/6480/31700 5575/6499/31701 +f 5585/6500/31702 5575/6499/31703 5593/6502/31704 +f 5593/6502/31705 5586/6506/31706 5585/6500/31707 +f 5578/6479/31708 5590/6482/31709 5570/6469/31710 +f 5570/6469/31711 5556/6470/31712 5578/6479/31713 +f 5578/6479/31714 5556/6470/31715 5567/6454/31716 +f 5567/6454/31717 5587/6476/31718 5578/6479/31719 +f 5580/6492/31720 5578/6490/31721 5587/6531/31722 +f 5587/6531/31723 5588/6532/31724 5580/6492/31725 +f 5581/6503/31726 5582/6504/31727 5590/6494/31728 +f 5590/6494/31729 5589/6493/31730 5581/6503/31731 +f 5590/6482/31732 5582/6491/31733 5558/6467/31734 +f 5558/6467/31735 5570/6469/31736 5590/6482/31737 +f 5591/6496/31738 5582/6504/31739 5581/6503/31740 +f 5581/6503/31741 5592/6497/31742 5591/6496/31743 +f 5558/6467/31744 5582/6491/31745 5591/6484/31746 +f 5591/6484/31747 5571/6468/31748 5558/6467/31749 +f 5575/6472/31750 5557/6471/31751 5583/6483/31752 +f 5583/6483/31753 5593/6488/31754 5575/6472/31755 +f 5593/6501/31756 5583/6495/31757 5584/6498/31758 +f 5584/6498/31759 5594/6505/31760 5593/6501/31761 +f 5586/6506/31762 5593/6502/31763 5594/6507/31764 +f 5594/6507/31765 5595/6508/31766 5586/6506/31767 +s 2 +f 5506/6539/31768 5597/6510/31769 5552/6450/31770 +f 5552/6450/31771 5551/6449/31772 5506/6539/31773 +f 5551/6533/31774 5596/6404/31775 5506/6509/31776 +f 5597/6510/31777 5598/6511/31778 5555/6474/31779 +f 5555/6474/31780 5552/6450/31781 5597/6510/31782 +s 4 +f 5531/6410/31783 5516/6413/31784 5561/6512/31785 +f 5561/6512/31786 5576/6536/31787 5531/6410/31788 +f 5528/6414/31789 5518/6417/31790 5563/6513/31791 +f 5563/6513/31792 5573/6514/31793 5528/6414/31794 +f 5524/6418/31795 5509/6421/31796 5554/6515/31797 +f 5554/6515/31798 5569/6516/31799 5524/6418/31800 +f 5509/6421/31801 5521/6405/31802 5566/6534/31803 +f 5566/6534/31804 5554/6515/31805 5509/6421/31806 +f 5518/6417/31807 5524/6418/31808 5569/6516/31809 +f 5569/6516/31810 5563/6513/31811 5518/6417/31812 +f 5516/6413/31813 5528/6414/31814 5573/6514/31815 +f 5573/6514/31816 5561/6512/31817 5516/6413/31818 +f 5576/6536/31819 5562/6535/31820 5517/6428/31821 +f 5517/6428/31822 5531/6410/31823 5576/6536/31824 +s 1 +f 5514/6518/31825 5600/6540/31826 5562/6477/31827 +f 5562/6477/31828 5559/6481/31829 5514/6518/31830 +s 2 +f 5598/6511/31831 5601/6519/31832 5577/6485/31833 +f 5577/6485/31834 5555/6474/31835 5598/6511/31836 +f 5601/6519/31837 5602/6541/31838 5579/6487/31839 +f 5579/6487/31840 5577/6485/31841 5601/6519/31842 +s 1 +f 5602/6520/31843 5608/6521/31844 5588/6532/31845 +f 5588/6532/31846 5579/6537/31847 5602/6520/31848 +f 5603/6522/31849 5609/6523/31850 5589/6493/31851 +f 5589/6493/31852 5580/6492/31853 5603/6522/31854 +f 5610/6524/31855 5605/6525/31856 5584/6498/31857 +f 5584/6498/31858 5592/6497/31859 5610/6524/31860 +f 5540/6526/31861 5514/6518/31862 5559/6481/31863 +f 5559/6481/31864 5585/6500/31865 5540/6526/31866 +f 5541/6527/31867 5540/6526/31868 5585/6500/31869 +f 5585/6500/31870 5586/6506/31871 5541/6527/31872 +f 5608/6521/31873 5603/6522/31874 5580/6492/31875 +f 5580/6492/31876 5588/6532/31877 5608/6521/31878 +f 5609/6523/31879 5604/6528/31880 5581/6503/31881 +f 5581/6503/31882 5589/6493/31883 5609/6523/31884 +f 5604/6528/31885 5610/6524/31886 5592/6497/31887 +f 5592/6497/31888 5581/6503/31889 5604/6528/31890 +f 5605/6525/31891 5611/6529/31892 5594/6505/31893 +f 5594/6505/31894 5584/6498/31895 5605/6525/31896 +f 5611/6529/31897 5550/6542/31898 5595/6538/31899 +f 5595/6538/31900 5594/6505/31901 5611/6529/31902 +f 5550/6530/31903 5541/6527/31904 5586/6506/31905 +f 5586/6506/31906 5595/6508/31907 5550/6530/31908 +s 2 +f 5507/6407/31909 5597/6510/31910 5506/6539/31911 +f 5506/6539/31912 5596/6404/31913 5507/6407/31914 +f 5510/6409/31915 5598/6511/31916 5597/6510/31917 +f 5597/6510/31918 5507/6407/31919 5510/6409/31920 +s 1 +f 5517/6428/31921 5600/6540/31922 5514/6518/31923 +f 5514/6518/31924 5599/6429/31925 5517/6428/31926 +s 2 +f 5532/6431/31927 5601/6519/31928 5598/6511/31929 +f 5598/6511/31930 5510/6409/31931 5532/6431/31932 +s 1 +f 5543/6432/31933 5608/6521/31934 5602/6520/31935 +f 5602/6520/31936 5534/6433/31937 5543/6432/31938 +s 2 +f 5534/6433/31939 5602/6541/31940 5601/6519/31941 +f 5601/6519/31942 5532/6431/31943 5534/6433/31944 +s 1 +f 5544/6436/31945 5609/6523/31946 5603/6522/31947 +f 5603/6522/31948 5535/6437/31949 5544/6436/31950 +f 5539/6439/31951 5605/6525/31952 5610/6524/31953 +f 5610/6524/31954 5547/6440/31955 5539/6439/31956 +f 5599/6429/31957 5514/6518/31958 5540/6526/31959 +f 5540/6526/31960 5606/6442/31961 5599/6429/31962 +f 5606/6442/31963 5540/6526/31964 5541/6527/31965 +f 5541/6527/31966 5607/6444/31967 5606/6442/31968 +f 5535/6437/31969 5603/6522/31970 5608/6521/31971 +f 5608/6521/31972 5543/6432/31973 5535/6437/31974 +f 5536/6446/31975 5604/6528/31976 5609/6523/31977 +f 5609/6523/31978 5544/6436/31979 5536/6446/31980 +f 5547/6440/31981 5610/6524/31982 5604/6528/31983 +f 5604/6528/31984 5536/6446/31985 5547/6440/31986 +f 5549/6447/31987 5611/6529/31988 5605/6525/31989 +f 5605/6525/31990 5539/6439/31991 5549/6447/31992 +f 5607/6444/31993 5541/6527/31994 5550/6530/31995 +f 5550/6530/31996 5612/6448/31997 5607/6444/31998 +f 5612/6448/31999 5550/6542/32000 5611/6529/32001 +f 5611/6529/32002 5549/6447/32003 5612/6448/32004 +f 5562/6535/32005 5600/6517/32006 5517/6428/32007 +s 4 +f 5566/6534/32008 5521/6405/32009 5596/6404/32010 +f 5596/6404/32011 5551/6533/32012 5566/6534/32013 +# 10671 faces + +‰PNG + + IHDR…y#tEXtSoftwareAdobe ImageReadyqÉe<PLTEªJl)¹wV./'ÈtO¯L3QON—ˆMFnw*KRmVGך ¹zeptfHŠLJg¬YA“†oŒ6$«ˆ/ºgF©fGˆup»„gE#Py…ªtW©iU–µ¼˜eF†¥«uf3%6#«vœ¦(0f5#V4#ˆU5wG5˜U6¯ÉÏX†ŽˆWE‹*˧ąXšiS4«wd4˜XE·¨sˆH4U%w5!Ç‹uz¥ªWE$gF%u—›¼ˆtgdb«h8i•šwE'¦”f¸iUFÎßä®5%3Wbˆg4 ½ÂxU7FE6#nF&‰­³E6#hE4ˆE'F3%$:doÇY6¬$fV8yvvX$¹uI©²·6@«¢R—f6˜H2eŒ•wU(—v7µvÇ{_V5‰fG‰xS˜wX†vFUÊ”ze‡‹‡v7UI3hT'©uFF$ˆQ +«šr˜xDU("XS:FB&»ª§–I(›A(•fDˆ›¢5Ï­s¡ŒcñÙOtjh»xs·hef82‰fW‡U(˜WU6#Ê–fUBZE©idƒHD›¥ªvsj|„‡…WV7<.¶›vÙÆ¨ 71\3Œµ¸IY`Y8.WS'–­´dx|˜HEe(z83‡~‡e(F?G÷Å1ЬC_ZZFb^G2BLX;85vŒ‘µšaZޤw'¿&”ZeÀW?!a…z&!v«Ã–U'žw§yqikm£Z½kpsks•i%«Y\טiÏŒgЛv‰JO—IT‡t'©…r!¢œŸ)1Œ¦–9:JR>ݺ~y–ˆK{_r‹i”‹Ã»¼¬kmç¹483p¥ ZtpZ)*8_[)+F)*e)1#׊u™µ¨ØyO‹ÂÚ¤ 1))Œµ­Å¾zž ƒ?[¤o•IDATxÚì½]h[i–6ú¡m0ÊŹ0ƹ¤˜`oÀäpܘÞ tµðÄX¦Í`оÐMß6Ã$ﺸù.’‰F6BívŒ@BÑfzòÉ(‰c3iƪT(“²¬ON,›†±lwh8ëçÝ[r~ªRÝI*•¼kK[?–m•+öó¬g=k­ÿV“!C† 2d|rñßä@† 2dÈ@† 2dÈ! € 2dÈ!C2dÈ!C†$2dÈ!C† IdÈ!C† ’È!C† 2$!C† 2dH C† 2dÈ@† 2dÈ! €Œ=4-Ô ‚Z&?2dÈ@ÆÇ§-R VˆdÒé4rùS‘!C† Id|ÜQ +V‚Ál­¤i_iéö €½`Pþ`dÈ!Cµl!›uÑ¡äµRöÑü‡¥ƒËZ°R ¶‚•Lú$SKï¥ÓZ­̤åÿt2dÈà“×d@ð?¥¬•{zÊ¥žüWZVV–µåRiù§H +N2™LPÓ2€÷(þ§3Joœ´ƒ5 Éÿí2dÈ! À‡Ñ»ï6ÿ/Pú_p)ù|¹ ø¯!(+e%_‚ûJ¹”öhxk­ ZêJ¾ˆžNŸ¤÷Ðó—®ü NéöÉÉÉéFm#]ˤÛðpCþÊÈ!C†$xä’ÑÞNY££­·/¸\@° +¿’_Îâ (çóJ~Y)ÛGiY+k°M«(õ@j '´ØkøT°rúaýÌ*ˆñi •`œœ@özzZ;9MŸÔN7àcÒ (C† ’|ÐqêÉ%s9`êhjttwjjôsŒÑÑX,–¬×=†‡Ÿøü/üúù¼ ÿrÄVO®ë÷”€(x)ÁgEÓ€”–ƒÿéÚWtÄsHtBçƒÁÕhwZÁ:?&úA¸„œÒÿ<§ké 'è!C† ’|À±éÉ %s5-#üíàîÆbÿžþüp”Ÿþá4 L'èQO™q_Q®(ËÊr ®JOI++(,k"‚Èè7Lð˜@0Ø$P ¢@ £Ö{û‰3™`«þ™`ëý€üí4ÀþÚÆéÉÉií^T‘¿52dÈ! ÀÉþÍ9OÝÈÖ*Z @~twhñþóÏ“»õëõ؃þ ±=?š¬cüt¹ì*¸\®|>Øg®”]J^yìR\Š’Uà®Я!ö ÐÊZO©LÈÏ=©“ Ã?\ñ¢•”<œ—Ë +}øCðÝÊïÀT2iD~ i2¶òk§è89Ý8ã´Öz ­€2dÈ! À‡ þÉÜÔh²¿ÿ&\jéÌÜ(ÄÔèÔîèîîîçõÏñ†qb÷Kº³[_[ë÷`Ô=ž7¬Ë»òÙj–(1Hÿ#Wü#Ù.î¼¢)eE â¢d€T­‚åüÓ¼AN€²†4€Ô„r©L¯ê€.÷_*(•´Òrpü`©’I'2mÆÿZ À Uà”NŸJ'  2dHðá¡ÿP.—LÆFGëÈ §ÿS>[´Ü¦eYYËJm.õÿaíAÿ—_Öë±ë׿üòf¿@ ^íY[º¹´tç¡'•òx’o LšÙ‚+;Y̺ò®+‚¸\W>âÊF\‘È㈒…~Y))J™¢~©´…f€21€Nþ ñ+¤üÑK%ƒ6<² Þ+¥%HÏô”à™+È–QKP–KWÞ†0ÐÒ`(%¬µ +bû¤û?½Hjpÿ4-€ 2ÞG´è"C€ïHó§rF. Çç±Ý!Hó5ø·Sñ|Þ‰Ñ]Uà€´€|VéÍ¥Pö® üÛ~òPÒßC5À{8ð 'œÄ‹9”ò +¾P+¡I`Y)küʾdã/UçµàrI«hí +¼£DºÝpŽë þ/ÚNÑ qdÈñ>à_â¿$oª1…ø?54•K&ÑÛgd‚fªQ<±Üîh >KÖ“ÏÚZ?Éýˆñ»»£Ÿï"-È!ðÄú—î,}¾]®?¸ÙÓãÙ5 ÕÒ-ý;T€³â¤Ûå6Íf6ë‚>PÄ+DöéS¸‰` ¢iY ‘|©„¦­ÔC¾€eê`@…Í, ìSà-NãIolÐPÚ˃:AM…Øiˆøä×WÒ'øšZk +o( ¤±Úàâo}ZѰð¤Ý~âQÀ +ÐÔ^S%¡·ŒEþ^É!ãíP>dHðÚÌÊ7…1„Å~ûÝd*åFû|k>ê2“¹ÜPl(ËårØh‡ÿ:ž’±ØnŒ<»@ÆŒþþþýý»©ª1Wte“Œ¤ïµ5ÓšÕ„ÐMÝl›Íª°H@ΑbñiV‰¸”å à~ú{J=Á’°”É À uöPþ xGø4Ãkyð\ÉØZ +Ò•ô0|úWðt‚°åƒôŸºÞïFºRÂþ„­6‹ŸEÿˆ– +’¶döíö+Kx=¥ÿfvÔÈ$¸‘Îpë­ À,nÀ4M0“À!HËøÌWAnøþçVÄk… % AÄw2ü-‰°­e¥”W²EwÓ„¿½2d|üÀKI^þ€ûp%ðš%MÓc$;‡MW}Hþ‡bS±\,™¬'ëF½Î7Iƒî$‘Ôëu T#HzÖúçæ\ÆZ¬'ë1,Ã0|¾$~×K5t˲t]`j6ÝîìÓ¬»˜ug‹Jäi¤›0”EäËŠVÒJem9(:àÑÆBF}’ý+Á*ô *ïçãI½i‚}äpb• ‚ ZbP©Ðgà4?öó!Zï¾" 2B|aY{¡;øMÎNÛ¯ùQS àô¤Fƒùî +ªqŠA»vº—n#øŠæd2{™½t>܃ó{‚è~V¶ðH$g[‰ +?l^—J°G㩊ËÔW‰>¸(—”l¶ˆ iº'›ò7X†Œ @²I^Dÿ¡!ü9ÿOÆF±Ýo4²'²Ør +Mÿ€ÿSSÀ€Àç$^˜Ô=××<bØ*vàñUb†å1©ÀŒ¤¾øè+‡œ²&à¿…À4ÝÍb$[œ p5«(O#ØQ\@\šHkõ5¥„ÈO†@Ô¨ÓúLZLãO;°_¡çY€$ÿÝC{€ +ìm´ñ•‰Š( oƒô{âXK¨h«%l3@} ’)e•à^†•…ôñÉë~ϸ @Üe-€¸êTAØ;…÷ÒN¿c”¼‹Ót¥ÔJÙ ¢%‚Z£\ Ò€¶€$ʧZ0‘ÑÚl…lóþÐïȉ¿¢”ø–æ+F²M"M¸d›R +!ã£EÿVÇ()€$]Ðà?EðÏMMÀŽò¨¿Xr7,&Ö¥³IÀø?b ÉÐ<Áuˆ(~‰×É€Ê@2›Ú…/6šK& ÒŒdr ižÀ«ˆªnºjYq¥3<À[t+‘fÿÙbI@ ‡(H ý/• +¦Õ¸7ˆ}ÅF€LrÉ+|¯"2GàÔŸOôíÓ–ðô'úÆeëµ½Ô4RàÛÂ;·G6Cb•Lûu×þÑX£~®„‚‹DG ÃOâ4}²‡SÛ™V;Ó®¥Û§½³J«’n4µÊY»qÖHoµ®UÎZ­³F©¥%Î$d6‰ÌiòÿD&³%%•Q-É+®H6ò8âB:Ä%‹ ¿YuO6ñ.ÞÈße2>NÐjµ„PÖ$€€Ì=7EÛŸï.œ ûÇy>£˜àb'“Sn¶¢õxrÈr¤8 >!6Ú¡, Ð0 O=KÆõös£±ØèîT åž0º;úŠ÷¥[=®RÈ€…’€×;[t»›îæl±‰D°1;!©-þúcv["R põœLdÿ2¿Ðú3á³ãlаÞô CS|EúÄNì/– ¦÷Úgµï’ÐøçdÿÄÒÔ€³‚köGÚ§mxa˜ +­t» _qÏÚ‰Db«²Õ®´g{-|y°•HŸ&*gTµ¶©öÁc‚´XY¡~GrOD"Y€dg«däJ€Ûœ„²üm–!ã£$­úsȨ̀IRs©9€f_ Ò_’ÀŸÿ\0êÉQuy°V«X€ã´hhh(G6€WÄîŽ +äZÁÿè|‡\î*ÿªñ$ ßk7ç™ë¿$€æ\õð`ŸVãÅbÜíUâMoÈ2ØjPy€»éž}QªaQ B†÷"ø$ S 8ƒòGôéÿ{W{oÜŒå­d.ö9gþCÂÙ7Ô)çOa é«û¦R¿LLÅȽÏ&V†Èëf£¬+`w”ãA Ä|ÿxÏSÇõ1 ¼[ïÿ—ß,--y¾c‰Ði­ã\mÐÍ@ØŒëà—×t{Ý^/f±^ ³MwÓ„4÷¸°’ Ö* +/ç9|ÌÞ›tÓ‚î{é 6œlœKØI`£ÀIÆÒ¢ç0Ì|—Àk:Á#ȉ@>„öùÿîÚÙiíŒîµ9Ò³D"ó«D"Ѩ%ή±µ§ÒNàâ6 +Áà^p‹J¸ I+± ¼b  qEÜEw6 ?-3k6›j€[e/€ Щú¿P8ÆCþˆ>`V›ÕÅÃÅýý;6ç®æ<´Áw”[øóuhаPÛHF,Y8ÚŠj?J> Gø?$xÀPW_çüâGýŽêoKœÞSø|VÊ‚Œ}2”4¾ñà_€pÕðE£98ÐÜgk¶#Å+Zàù¡!¬øp0ÝÀû! +àYëðüÏž‡Kï\ºwx¯^7þj{ê©FŸÖhX΢8êl¢O`V‰ Îdgqò.Ò~1˜úx @·qFúoPÓàI¦£ˆ:B&“xí$`ZÔ>=·&-'èE$þñâo0äÿmœpÚ.€³Ìÿk­­Vålë¬Òj%Ò[¼Aîu+güÛ*Ç~ÈñÉ¢ük/èÿhh¶Ç’¼sp÷.áÿÔPàý½¯ÓÃcÄv?/ÇFwc×ëõëý›K…¹5QÏ%ÚÿÐÐýíÂ>>¦Ø¹çK¹$ܱ¶áÃws>"Dða—)`JP‰sÁü™‚Ñßg )ðßðxR #¿yðàõÝÝ¿õ,--~½z¸ºZ½Ŭ@„ÿ§‘HQQÜ‚ +̺Ýn³iÎÎÎF Y~Ú$”é Â1€ö^èCƒ°âßÞ8=áiÂ(ÿÓ  ï õí““ó÷ôiúô„ň®çlÈëÓ üfí½v;ÑÞÛBØooí%ÎÀxï1¼cþï•ê¾ 2Îiþ礄ægƒíA’’¼C0tw(÷ùhltè··•šœ›ƒ4ûóÑ]ÏœÇHzæ +…¥Í9OÒÇSýbœ·óiHÔôÙæÙ}çû£hŸÔEñ>êƒ,žŒ€QqqÊÿ™H¼ +ÿñew}I¦XS e‚©Tÿ.þ2YÿÛú¥ÃÕßÞë÷ì¦Rïî·¢ ;;ûTñº¥8ût6òø@0¨)î§îÙæSš.$ä‚’B#ùQ 8©AºßE€ hpÒµÏ'ƒJ<6´_; òü“Úvúã¨4—A€4ü6‰ +Íð âF€’BS‹‘,’ìØH´ šòÜ +fÍ£&¡_† / ­ÖKé?a?›ƒ„ÿ IÞ!ˆâ¼½ÏïF£ê{zSjs.eÌ­åêkù‚󤪓›››s–Çñ'“1Àÿùý§DZ9=÷î ƒŒ{j{ãâ>ÊüÀ Üý9'x‹BL #æ à ¼>Íç: I ô÷xêk<øòúßþçƒÃýÃþÝÞÍ%£ž|wÀ¾£Df‹‘ž `=V4ýRÄíÆ†‚§‘’2[,>}Šä@Ik%rÖ3'i†Þ æÎ¨lœ´Ó§jðZàOä÷kÓpŸv&LPq"RTéŸbƒ»¨Á›P”Ù§E !M…v Pƒ´-¾7Hq_† ¯ÿs}ÿµóI@û_k°5ÆIÞ¨E'ñ©ÿw"<ñ^Þ’¥ªc.5µ»æšÛ5Öªæ\ +.ÿy)oŽ…y;@Gì +õŸâVí­¤ÏPQù>èC$‡c%ÈÂÝ(|Òл „òmw!þˆ$!Ê_•$€G ÿ¤¬¥|P¯ÿó—Kž-ÏozûûckVý=üžp @¿@ISŠO‹€úZ¦Bz„Þ§µ´>¬”*ð¢b‘¶ç4‹Å¢»YÄaú@ŠJå4 y9n‚L}ãÕ€w ÷¯ .Ú+ÍfDCæáôWв¯)æ‹ÝzÔ±Wœu+•<¿[™ãË!ã þ¬µÎ-:¯ü`àX€wJN'‰ðÝ»á‰ÿõ^àß² ËÊíÆòs±z2ÿò±‹¹?sÖÏè>D•ÕzƒýzÆ7ìÞ'ÜÆ2@4ÉjA‚€¢-P4гã.Êðø[ü2oˆH€-“½½KýõØZ¿ÇÕ»´[˜ÜŒÕßûlº–RŒàFA©cgø‘Zíi ïZ0,QpLã¶!ÀûL±‰A¶YLdœñ¨¿¢ +p½™“Ót[‹T÷¬Ö¢q}%Åm}c¨Öz‰¾%PˆL¢‚cü–#"Í—À/C†ŒWå.¯WZ]àüÀ³ã³ãÁV/ƒm»Ðh\ƒ‹üɾ  G ˆwþvšV*¥¦ŒØh²šŠ›@,Ë“òX¢¢ïN><‘4×\4éÏq¦nD¹{Ÿ+|¤ÿçð…¤ €$àÏb@ ŸbÂ èØ §“A4éÀ*ýÃù‘ÈîÑžGO'£Â°G{|HðuG”kx Esw±–p—½ŽîOøbX¸‹ÀÖð½x“À{õ¤è=ÆZÿp€¥‚k÷ôo]_Ûü×¹›Õ9`?î/r°’®e*4Aà+' P®_¿‡§ËJ6˜NÊ·Ïø¦[ ä¿-f,kئ¬h™JgôEŠfÜŠÊ_%2d¼9ø·¾ëãçð¿[8nµp£Øà1lõŸáÿZãÚ‘TÞˆE½îðDôþ•7þS¦5 +ðŸÊ¥ªU,þc̦H „Þ"A?É€å;dòvÞÉÕUCý†x€ø9|hˆ +Ñÿnn¨{0 Ž-ÀÑrâ[ýÿø¶<*C8ø¢I¨qÀž €ù?ÎøãÓ 0ÕÙÐ!¤DñË»A€@Š+ Àæ°\áY›»Yè-l®­y®__[s–zÇŽZFòCÿÔ´¯¨°±—N ¨À)M"v¤Í MIG£€ 2d¼h½št­rRÿó3€áÒ>FР"€ÿGöÅï¿æ—?á·I¼ÞY¯;âL„ßUªàž2æ¬äèîܤ•LMšæœ9§§à ‹îÁÒ@ +RyË2ÄL>ðâ®xœ´uUh›Ÿ +QŸ%|ÎP l+øsîüH€?rƒ`¬ky]˜0à=©¨ÌÙJðpó_ÍÍÔÚÚææR¡wóËëýý˜üÒuõðláÉýûׯ؉rO0¸•NÀ>}¤(¤Ûm€ûŠØ-ˆ§"Îõ‘¿72dÈø Á¿õ +@óéu/Z»€óú¿¿AÇQÂ?3smFþœß˜DÜîHiÖë}GðoT ÃLÅvcsÙÀòþ©žæª)rPÊm8u}!ÐÍ£Ž"`—(ý§5¾ø”ð%£,ãGéÕr̆rbŒ ÐbCÝÁ"¨ðn”Yr +ßXŠ, +ß&Y¶Xó¬ÍmnÞ,L>X{pçÒïÿãhðÿÉ·}×?ì +ÁJ¥}zÖnâCö_ÁK¦’NW0óßã"@&ãÎTNäo 2Þ8Ùÿa/í’ük/—¨pvL€A1àK@ð4sDIÞˆÌκ½³%%2û.ÞÁTÌÈå,#¶k²Fr.;Y­š\ÿ·R:’=EÈ?G\À²ÉÔÚ÷ˆ@þ‘1aLºÕÿh‡°€Ú¢ìj  ºKfÀ\g¨0`~”îß n/ˆ:_Þ™,æ&w+ò=Ç37àjaéÎþÂö·ÿô_ß~Ûw¡¯ïÃþ·PI7Ò‰ôÙ^¢¨ ] " H‹åÃp~šÕ2ò—F† •ðüï^þsΠбà +@V:€Ü€èùÿÑÌLbffæhfLþ°ßˆp—JŠòö¿ÿènn*¦ÖGc©|ÁWßÌ +èþ3÷኷fÊÜ4M| €j!¤«F@ ÀM àoLð3€vû¬H´Û‰t퀉t…V ìQû_%½—ÑL¥$gdÈñŽ€nàKK€ý± wP0€AÛ@Ç5? ¿ПCþøßÀéò³î€·]ÅŽ%cSSõÜn²šw%“U—«PÈV«Íª¹©£ ŸpŸûl|ż~‚n‰:@ ûy„О$¿QÚ¶ ÚÁ¨hà‰@6`/ÀŸi< ÉýQžt—Àÿn®³vîFÅL ®àˆBlD= e©ôþT•ÞïÚæd¡wå`{áö…¾/޾¸õ€¾úý¯¡ø¿…ãú12[iZ.„Uê *Š)ûûeÈñ–á¿uþÏ è^Œýÿ˜üŸî‹M@Î â°ßÏð?63!ÿ¼`vÖ= 4àmãÿh,VÅR…|5–ÜÌþg&± +¢Œ.%¼ö–¥Ïa-³UU©º?©½j&Ø'”÷íîÀ=§>Rvß7øœ±€Tpö¢ÿŒ8ÿç?ðÿ]v€»Ü `XhR`£‚eKÄE°î€†€¹þÍB¯ë`ûùþ·¦oxòäÃn8…äðÿ¬‘Hïm3ר5¡7öiŠ&ó2düXo½!#8ßx~Ó8H Õ`Ð `K,øgì°@ª=˜ +à(‘·LR±Ýd,¶ér¥Fs“yÀW¡Ø +*þ›LðŒå[!Ǧ@ùŸn¹Ê Œ +q¿3´ûôçyp p&@4gw âãÈŸ»¹?cöæë»}û³'x3@(@£ ‘èi8ûÓé`Pûª$ó2d¼1h½Bh½î•´þ¼õâ}'(ñÇ@g¶òÜí¸Öðùl á€-©üÕ€ŽÈÛ%§ssžÏc“ÿSI€ÄW6[ÈÜÕI¶˜¶À4Ñ ˆ-¤±Ûu@}\ù3Á~ÀG]Ídñ§Aø"èØHžÀ(•ø‡¸@{îÝ‚giL€Ð°p7‡@€ü9”*ø-Ι:¾½ì\œ«N + _܆èC +ðí³'}·>p#@ñC9«lU°'p¸> (_dÈñæ@í;þ_-8¬á…%4ðxðxðLŒ„»]øé‚ò?]f¨ Bþ¯øk ÀlÄ; ç·ú­çææ’±Bjw*•Çp±P(T±p’¦„ýØ`+ÌTòùOØåNÿ Ý €Æ§Ñ+»fD_Ð’Âå–túåþ<å•C¤ p €_ƒ&ÃÒÉŸ€ø¯ ¢#O-@ïâþþöå/ܺÕwáÂío¿½Õ××÷åN®5€dÏ‚[¨þk­ :$þË!ã‡áÿ À«G´^\ðŠò?âÿ`«ÕÀÞÔÈ?ètøÑàG€M€l@ `Xþ*0KNoõ[ŸÎõúnÌpåóWàév2[ÍV'ÍÃë¿B^‹SРZd ô'ý-€ìñKŠÔ?Ç>uÝÒõ±gJ` » ª9–ô}\ ` 𣶀è]Á È"Hsð9lP©3Ѭ¢ÊzJ·¾Q@çÂ\¡àÊï£ ðöH .ôõ]¸Õw«ï_>ì§§F¢¶ÉT ­ã3²ùO† ?ÿ[¯Hø_[°ÿj­Ü€8-ö ã.õŸFú'Ž4 ˆ]H¶Y˜ÿGþR D ¼n÷ìì[._×c£©l¾ ‡¨  à¿YÀv˜UûñЉ`æo,|£â ã‘íäìŸ~Ÿ-³©ô*Ÿ#/yèó¢bB0 ‚ Dí6Áhô.™ þ‡½à¸ÕéÍY]ø¯ÃÛžt-.îþß&  ¤ÿp À¿|èÿ.Nkg•·»¬$Ú™úË!ã‡Â¿}|·P{qãß+ÑŸŽÁ³Á³c6ž¯ÿs¯@5òÿaYø+À© @Á +À[ô¹UÈ—Ëe”PÈ }€f•síö8xŽ4]E€Ûí¨À?A)>6ý%}Iî÷ã}€ª­àkFÀá3Ñí°™72â;`HQJýñ.2€(Wà½ÌѼ‚Ô:+néÖŽª†Ãj\ÝAv ›…Þ|~ÿ`lá‹/X p¡ï³¾ @>üZ±èv+ÁŠü%‘!CÆ_J^¡t?i/ükµºæÿ¼4ÁŸ€mfƒb`gPÂË€ü œ€W¶‹«¤± ””ÒläL¬º²Ž@&€Bf&K–Åa€«Åð€G*µÚË~’N†÷Œ |%Vÿqz ~d¯†¯£º­QŸÝë–¢ìû#; šhœ0Žû±ÖçЗP÷wð¢†U8ÇuŒTµàÊ/®l?¿-L.|Ö÷“jµ§î¢Üõ'C†Œ¿ÿ;¨^hÏþÄ)ýÙ‹á¿u~P£A€¹ðÏ£ý]€n ÿÇü% +@ ðÀläíû¬+ëÊçËè `6;Y˜tOº«6þ›ÍêœE»œ"€Åc°àQ€&q;€ ý4 Häö*7õw?xyñOí| à|úFÖ?6à€ó›ÉÿÏ£€)Àþ3Î,Êÿ¶ñ,ͬ (E"ï@¨²YÔ(ýwq@M(4ÉXåQÀ& DIª p  ò}îìHü* ¤á|ÿ4¤s&H°U€h‡pWÝøìÅAHîÚ%|-6˜¤¬8"8¬w€üJþ``{ì‹/¦¹€Îî#páCo”!C†Œ¿”tRúÚ¹ÒþK3ÿ»ùB«[p:Ñùf»ÿÎUh ºÿ×€ ÀOl˜±õÿa¸Àøs,E€¬”Pxû“€)&]‚PNFÐlÚ.€ªYÕqÈö À‡Ch $ö>šÂë3féÔˆPâ €}¢s0€¯ð½0&a¿k\Õ¸ ÀJï6¾Q©B`<¾]§ä®Í‚Ëøp0öüù40€Û·X@€e€ ò  2>ÆôÿYÿõG÷‹Ï­þéÿà™˜Ø½ÿgðÅ&?‰†Ÿ†ø;]€BÀnÀaÿƒ¹#è‡*%¥¤)ïd °‹<¤ýYTàÞd¶Y­fqh`r€.&¨´Àd³{àŸÓò7(íû€X@臧þUV°#€>è{ð‰dßi`a€¦ T°vôüCœü‡L¸¢°½ýü‹éi–¨€€¾¾Ï€øƒü'(C†Œ ÿkç9ÀùľÖ=ê¿ û_aýç¾:­®h5^êÿ£!€#nô'®Q˜`ù«ÿÃÃÛx llK3àV´ 4༃B5¦8 Zmº þMS«<ˆ—!à^.tMò±`‚²zR÷¹Y€ÚçQ)nAf¾@ý'|/Œ ràÞgû£öšaƒ‡e òHÿu¸¬3þ{±Е¿²R>8€„Ó_ÜþÂ&è p¡O22d|Œù—§ïœà ÿ9À Ÿ{Ì@cª4h@ãøç< èšè `«Ó@¸ pe€Eù¿ê À¿ bàݼ…"­ÈRkÍj‹BÀ˜£k +ÝõDlÀcÅ•º©ØÏsüµ÷¿{€X lð*Î:3& 1!Пft †OØIÀ(ý‡èX÷®›z¨) ›Ï™ØÃ„pÁ6H C†Œÿ_ÌïÏõùƒüóÊÁ1¯þ£æ¿6Žÿo‰Ñ?íÁóÚ?¤ü¿AFÀ ® `€î?lØÞ>€c@:~@ +€çwãŸteg ÅÉ"p$…fÕÝ,¸«M³‰@¬˜ÓQ + rn¦<€)@@´Ú¦šÌ.?öØ€î¤×Møøp4€ ¡l'—Ýâçÿ¤/À÷ß±¨úدëëÿ›!ò+ù8F`pzú¶èt6ü4fÉ!CÆ_ÿ­ó]­Ž$ðÊW¡ê/nŽÏá>oþìšÿÏ€é˜A@·à§6{À0UÆøÿ‡¶oÌËÿaoDРišò΀Z!‚E€æ$Ь ößœ¤ìßdê@Ј lñ)Ü™¾+²}ƒwÿPfÏÖê$ÁŸj½ ÿ†Ñéì²EÀ^ÐY2ùGD† ?Ɉ?ˆ—Aq§õZ à1(´Nþlþ;æ’ãŹ¿×¦iûjÿØóØïÇ?²üˆ7Ìpúï¬àc`xàÆ8DøÄoè N€wGjår‰€IVÀB‘Ôw•&¢öO€ßdø·ø§ž€¸è ˆ¥b" J˜ã'á ›œèègGŸå3ºýBˆ2Y0ìé#8A(¤€Æ ¢4`wÒV"›p ¹n²Íæÿ[[3ðôhú¹ }|àÛgßöáv i!CÆOÿö™¼„ÿµïÊÿ;‰?Rúô¿3ë{ý¬ûãÈŸ£ÄLÐ?á¿&zÿÄ"@‘þÏð§!€cÛ$ÿCÜ€ü”†G$ø®8%ôWÞÝú&å+Š‹¶ÜMšÌ$ÿT°hïŽþpUÙ ÈShÆ\C Àºjør¹\G€‡QãE @¨O]~u‚;Ü7¸†S`‚-„¶ø/k@<Ç=¡ñßÝ,>¥&€òAÏÁØšRüÏŸ?·W÷9>€ ß~ûmÖ.àT@i!CÆO.Dí¿­A[øþò?"¿ö+ÄÿA1ñ÷ÜÌŸk¤ù7üÄüöà.ûÏØî6tmà3âü`~~Ëh˜ÿ”E€ï'b €ö.ñ¿VëQÊÈð«E8°Ðd `³Éê` +@#xuj ™<Íù¨Ö³¹ßQý“ô€ìɉõóN5 @}ø”Úy +Oøe|N;€ªNÀcì2˜ðM¨ê9À÷ÄyÐ:ÜÙìcVz†·¶¶fÿ/o?§9@N€»úúx=•är 2düÄÒÿÁNößÅ^nl½Ø'xl;ÿl?³qþp €ÿάP 1Ó|¿Ÿ¼ÿ¬ýÏt&n-à€m¶ÿß@¤þD¨°}pcþ`~eX€ï&¥w+ÔNkÊ5ÿ»'›îªÛv°„À6@KÇò?¦ÿêÖðÔ$>ŸX÷CB@4ǰžËùrâÅDÁ×É N„[:ˆúÔ0þY?  +Â?öZü0~Û8¼.¼ïÄq64Ý@"r"øÕý‹\x¾}ûþ-Ž  ï–XHÀi!CÆO*ÿüÛ*À«ƒç„§ø?x|®ë¯“üO“ì߸vÍÞ?‚¼\ó;’ÿŒ ý¶øï´ÿÁy€îú?ÐATàtcdÿÒ%I^G´÷@ òåÇÀ& ñp ÀéÐÉhYÜ€‡IKH ¼ÔÙ'ºxX¯êCèäÇä¢Éœ¯3€A_4ªì ðgà @Tà `d„ € &–XD ÇãV˜Ú2½^+Ålä±R^.÷ôôlþ?ß~ àþ­ûçá_äÿt—¿‘©2dÈøIåÿ"¦_Ð^†ÿÎ3ÇÎÐ?ªüÃ×8vüþƒç÷ýR韔ôþ‘éî];JPâo·ý1p–oÙSi0jÃØpÃñÿͳ`þ`~dd~àu¼à€wM.Y7UšÅª»Ùô²ÐtÆbÏ?iíqD\x€ÇÜháÄ^ ä €Ø¦gíO"ä:͆ØÈmaVþIøGAÅÿ\@hý_`BÅÎ5`„éñ?€þ¿xØÚ ó`=„54Ÿf•|©ÜS>èéùÕþSÜ~>¶pûþý>d÷ûœèž ð™4È!ã'•þwÿô+$€sýþƒçFþˆžÿãÁ³cÑíïXÿ^²ý7®ù펿®ûõ'f:ÅQï…ÿÎôº¦EÔ¸00lgÿˆü#p;2?‚§áýOÒ +ðf%6¾ã·Òà±ÐÜ“îª;k²Ü¨Ç×± 8@\' ¤ë”õ*:ö±roLÐÀ>¶íårvõßö'ø3ƒ(&ú(÷hoÜNLÀ&Tu'ŽŸï# ÀàmÄa‹¾jx'Œæ9À´ ä5½HŠO#ùå²VîÙêÙÞB +Žíû÷ïo xò¤CºÄ€¾ ¨H C†ŒŸJúÿ_¦¯ž÷ÇØ×3÷süšq?×ÈüOƒ~ˆP$fPúŸ±/<ó‡»þàDàOÈãÿé46€]ld0rÃØ‹$¯Þôî€Ú© @>’ucóŸÛ=Éö?r6í2íb IǺ%$•WÿQ?€XÈÀՀeÅ‹¾œ3ÉOÀžýÇÚ€!€ ýñÁWÄAÀѸW CÊ&Èôú/SÃqäá0¼•žä]G »ÉFT°0¼5|0F ð®‡@žØøoƒåD2dü4bzúð?ý*#@·çßÖü©ö?ØYöó¢çŸ*ÿXü¦?”üÜô?CUÔýoý±kÿ3væ…¤cÈð)tÚ€7ÆGùI¡óþÈÿ) ÀË +­x÷e™Œ€MpÒ ‰?^›H¼(˜ùÉÇǽ–Ê}xPâNg úUYíç~aôqW?NR¹ªìÐGVÀ±æ¯v°£&ôuHû}q‹+x ÇɈÓCÔÈ.€¦»8[Œ<ÍkËâOÏðÁÖüKðßÞ¾øØG€åÿ®¹@¶@þi‘!CƇžÿÓšÓA>ø2Í.~Ç0(<ƒl÷dاž¿;þŽÏéÿ¥ìßVÈîðOþ»“ÿžùÏ`xÆÿáƒa<Œ£Yûw(À§þ]ù?ñI^R¸ ðÝ+µ–’W®(Ù"¶¸‹YÚ +ŒÅÛ è̲Ë!ZÐéôÄ@@tõñÊjï£û>»;;ý¢TËg)€ÊŽ7 láðÅÿ°]Çûj  ¯‹ö?K5 oÇÿZhØ!ø7q2TŠJDYÖÊ=2€\A=¿¿ ±zø»ÃgO¨ +@nu ¶Ðw«_þu‘!CÆžÿOO Ø·)ÀË>@g/ƒ~n-:!Shwwû ÚþèÀô¿qdö<ëßnöŸ±ó¼ ¿ß°pÿ>@€©ÿ0® &tÿ߇[®ŒìcþqdäâþÈ'æx£{µwÿn–K@"Ù"À}±I.À*öÕëŒÿ¦èpÆë´0·k´0`oP)ÏÇLóøš  +€ÊÞ?R hdgüTÀYB<í7@bÊÿqíÿð´ªÃ7Q-= _TÕ×ãñp>n[¼¦ò®»©ðTÉ—–Ë(ôØ +`ãÿ3ÀÿgO:úÿ­¾n àvß…ÿ”Í2dÈøñÚIÿ;Ç`cšzù_h „úÇ]óýmüEL_ +iÿhúÇÒ?»ÿØèà¿Ýú7L@ÿûõá–t€pÀâ?dü,ÿ“À>1/à÷„EyˆÓ+Ø +ÍNê8 —¸ùjzI™zü)TòÒ4À83ƒgõ#¼[ª®² ÀgpO A }Âí ÀWôÑæOÍTð‘‘PõZÜ?@³ŸéÝAYÁ©X@<¤ÇU@´` ¤{Å êP–K¤À¥€¨ŒÏßÇüŽ'T3°;>»pá·1ùF† 4þ ØïœþpîÎÿù„74ÞïÅ=?/3€#ªúcæ„èOÓÿàŠƒþòüδŸÎ1,¬výËÿÃÀÐú‡¥ ]úÿ\PðGð盋þpº¸Ç¢$° Êû µZYYV\ÙYꨚè / N +€ã°iꘓ0·Hh€*ŠbO ÊÅDzR hV€Ød¬…Ô €\ÿ,Áˆªëaülä ØßÑ‹¦ºƒ¬‚‡j8ŽóÿÂaU­³—5½n¬ÌFçKå’V&€(ÀÁþýýû‡«ÿ¿;|òìÐõo1"À}öí³_þ¶%ÿÈÈ!ヌAÿ!)€•ûÁƹ‘Àƒù­fü½*õç¿T Àû~ŽfpÆŸ»þg‘?ãß°ðý / ;ðSH` +0€-€7FÈxƒ`O#ûóˆýû#D€\¼¸2ò 9Þ„”Hx? _ÊkÊc œÅò?¤Ó8[ÇÔ€mŒÓ< ”ÿÉ@y¹J+(D基Ô0šÜâOôï†ñVÅì3y\ö‡Ž@¢8ýGEäWÃë´7(€f5Þ\Çõƒqøšá¸cGP´ÿAúo†ÖрŠw6¢(Ëåe­G+—üÏÏn¯Þ»wø 5€>{-€C ž àÉï~ùïÏþãþsü3#C†Œ0žwà@ƒhšöá~ã\;àñù¿¯Êû¯MüQù_lúãf®ùiáÏ mÿ3æ¿avðοaZû7Œêÿ‘€€üp>Þ8ý#W8õ‡ÛUäó+˜ÿú£°øÉP€7 š0jïå •Kå²’Lš&à? †ü¯°$„:%+×­0Žã³„ а—ôªœý³' Ø øv¿• lTÙæOZ@G +ùÈ/@mÜ ˆÞ¿°ž˜@“ N_ÑÄõCèÜ éø1õÿ ‘_÷›[w{½îb±ø8&„ eÀÿýýÃÕû‡@žÝƒxö¤Olêp<ÁxöìëgÿþíÑÿe]dÈñÁ…Hÿ»ÂÏ4€x–ð»°ÿxð­ÿÅ%?ÓDލà/\8ñ÷ènúmк_’:»þ¸ÛOŒÿ™±KÿÃXì_@ïuüß  +TüÖÿ#ó#7°ëOÈÿ˜ü_äìÀÈÈâE8>•†Àï',(ÚûQPЖ•ìS@}7õº± °éEZB¦îL²ç¶BMÕ +Yjw€”~êä›DøcÍ v¿=£˜À9´ƒ²vh¼þ xè/ÿãaÕ‘@5½ÞõŽ,º›fQQ”+Ê22€\ +L`õpþpñÅ'÷»6ó=<1þßù¿ö_Ï~ùLdÈñÁÅe¿ß~d«ìCæW?âù S xEƒÿyø÷é“ô7Ž®ù¹ðö?òþÍ$üGÔøwÞög—üþî˜ÀqƒÓ~¸Ú€GX@ÀaIÀŠÇI vž§÷:ö,*à?ý0Òð²Âº²ûkøBª '°%À¾5€s8Žv@]  `²˜U²ùÇJ~9ŸW®üþ¯¬,^ܼ¹¹¶æYºø¿¯¯ü÷Ÿ<9<¼³´y=95::Z_ZÙ_=|öÛßþ¤ü³#C†Œ Æ.ýbŒD€ËHl€%?“Nï§… Aî@Ôþ øgx¢ï5‘ñw‚}Êÿ…ןÚþÉüO8²“{Ù÷‹x?6Àõÿ±á…ÚùëÄs*æþ#xæ©ÿûì$éÿ":÷ÙýÉ?P¾¹' €ï•´JZOPÉFÈà¥J€×D“]3„R@¨Ã°¡ßTu\Ò‡=áxQ™¦Û‹‚¼qàŽ3+sÖ¯Š;a>PÚǪÀŠx©6°C€_Š{ü‘'„'¾~u€À#L7¾Á¦;û8«ÐbC†ÿ|y%¿’?\ì]Ú\ëŸóxú{ïà$À'ODê/hÀý¾'÷ŸÀ«6¿¬Çv§¦†|ÕüöýÕýßß³äß2düø±pyáòe Àž_ž†óôeBýË~ÿs¦Gþé†Ó HÚÿ4ŽñE¡_3Ιóz‘Þûí?ûFTþg:•Îþ‡øg +@¥ÿ±1þFÿ±á ™?Xø¿A>Dþ1xÞæ/î °8‚È¿‚BÀÅÅ«¯~ô>€ï'ä|MÁŠVŽäŸ¦LÔp0*Mò )FðÇ×÷ã<+ò,ÀÇ«J,@u“€É¿"ü‡»!K¤þTÒ[ÔT¯[õ‘' lÛÉhø¬pÀ +ëêN‡Å×qcŸÞŒï„UÜïa±qEp ¸’Ï_A òÿBa3åIyê)ªüNHEÿ?9<ìÝ\»‹MŦ|j³|°½}¸x°oÊ™€2dÈøññÀØÿåçúÏ ú?'ÿÈO…Q˜¾—#ÎýýÂÉ?ã¬ñM}~ñÈßéñ‡x.tü¼ç]ÀéýãtX€Ü¯p[èˆúÿ8rÑÄÖ¨ûÿÆ>çÿû#äÄ.ÀÑòrú¿xõê¥ÅK?¿w?yd + (ïómµ*Á`O)[b s¯3 „3m€»,t ÞÛw°3üÃÉ$c`\%6€úVñÉ.@ÆÐ9ÄÝÞ°ée;€Êe„6 "ð[jœ:&Ôïz.Š4!lyá{©DB,Þk=€‘ÿ8ŸGw&çÖ,Ç0Ö–îÐ0`bö(`ÌÿŸÜ?<¼ºù¥'›ššÊÌHÏÁÁðáÊðüÃ#C†Œ=.,,ŒýbŒ3Ï/_cðÇÓsbGÓþé#Q8ºF“¸¾o¯îÅ“ú—Ùý~†}1á繘ðOŸðï³û·ìÜŸ8Àc„þc6ì/ðIèÿó´úGŒÿ‡ËÊu@ÔÞ³€FÀ`9«5­æ,nÒÿqÕZBB`?€WÔÿu•&õèB  5 ÂSÆO…¼!·pÚn" €ò§¤ô[Ü7€ îŸjMøTÝ‹ŽA¸ 鸅Óp-àv¨V§d] +på +p€2€•|ïäfÊ2Œdn­i‘–cÃüL‡øÇü/pjÿöÈÿiþÿ6ÆÐ§mÂþqžû?À<•þÙ + æÿެî“`udÀ"Q€‹‹Xýÿ»Å«W!ù¿úóÅÅK—®~ܽßKJLå}€ZìÉ–²VÊ=Ë3½4 Ÿj^§ÀtëM/R·pà`Û$h†ñ‘èd²€j…¸W NêÕþp öz±BàÕqçÏNØi - ÎÓ„ªºÃ @{ãb4PŸ„ï€N…f³U\³±w¹ÿMÌÿs9îà2 ß=ü?àðçòÿ“ÃÅ›ˆÿÉ¡©¡Ü„ùXëé)oõT‚g­Dï¾”2dÈøñb`üþ6",â?Q¸ €u¶4üGÿvÃßQg€¿ó36ÌuÝ뾃q¾¬ó¼=í“~ xÛÃün0XúÇËqLþÇÞ=]dõCpƒJt!ÀüøÈ8ÍÂeüéöï®þ2€K‹—\ú¨§ø“˜ ý ¶¥išKËZ¦{ÖÍ €ª&òvŒ€í¦;n?âѼÄL‡P ialÛ‹ÇCÞ0–íi£O8`†X!èÀs!øh@‡,jˆÛÝhTX%ÀYA>u"°ˆÇw&@ÐS âë€ÿÕ"\Ýy%ŸÍ>Î?füêÍå ðŒö>;DÔÇJ€Ðÿÿ¯õdn(UIp¥ƒ™v­vvð·$!CÆãÿ×öÿ³=à`®i¼Ò «õB`3€Ÿ§øÎ°ü?6ÖµÂgæ<pzû†»ñ¿[ø·ûý†ˆzˆïÎ÷Äê4ŽÛKÿÐçO‰?5ÌPÀâÊ +ûÇç÷ǽÿëU ‹TX\äI€W9ó¿z Ï‹?ÿ¨«oЀ +€VRJïý½i=AM)kE£™¥f@*0öwv Ì[$ü{)ùwãÙë%@È‘ââ >’þÉ(éññ°È×CnÕRwôxzüqÈ‘€0MvÆ OLØC†'Ää 8öZ¸¶Øk˜œÌ*YW>ëre'MÝR $žµ¥{‡pÜ[¼wˆ<`õ ³€C¬ÿCúoÔë>ŸÏPSÙ|6™iWÚøsØþýÒÚ¿ÈÅ@2dÈøqbu|u|Ñ`Õöá[ €x>CD` {GNoÿ‘Ýá6>ÑÄ7cã~wÞ?Üy{µ^Äí€ámœø'лH‡X` + Ú·¶!÷¿qcþþ#ÉÿTàBÀbÒ£jq²}ìÊf«E3¥Z†/š3<7^}†€‚8`?âÿ9QG`@"ª®rÙ¥´Ó ø!œ-þÏí?üæË‡ò¯ 2~Œôu~|à{aœªc\X۳јX7óqòÏâ?Áÿs±À¯Sçï(û3Ý}}c<Ù—)ÁÂX—€Í~4íÊýcôù ä› +ÛØû?ÿkjþãzÿü<ÿ¡†?ÒV.âàß‹û8h>¾:¿zqþ"wÂùçúþW üI øh«ß£±@+iÁRéG 5èG^SR¦›Fº©€˜ÿ{²{¡€HL¯sß y;¶€¸3:˜Ä€°¾ƒ¾çG?@}|ETþ˜²z½:5ùÃE-a5iN0º&ÅøÄŽwK*ЊúÖfsÒ=Ù¬f³…l±iâšâ€/ç3Ö–.-Þ³Wãéò€{‡‹½$ÿ€þ@RÿZ,äˮɭæÿ[—ö÷?ÿŸÿpGþ!’!CÆ{qÊÿÇþ·m;jü $ëT˜qÒÿ£Ñú÷|fæ|mL$ø¼Âãž®v¥Àî÷ǧ¨çOØÆ.³±Í'ÁÆÆoìO³þçÇç™Ø\@¸ðl`~ÿ"œÆWW÷/®Î_\½(‚:.ü÷’ €÷G>Ip b Ïø1Þ^Yûª”/¡ ëÆhº)û@§É@¡Îl@¸!ÉÝŠx{;ÏØ3(ýÇõÐ:éLTjPã^÷¬€œMý^x à~ˆìè#¤¦À°„T]€¼@`GÇêD(DS黬ÿ˜¬êÅÉj±Y-š¸´Ø@`³añÎââK÷®>ì}¸T¸sçν;›Ø!˜àñx6' …ÂâÊÍžÁV­Ö*¬ Üûúðÿûí¶!ÿÉ!ã=Ã?äÇããóãããl³Ê¿ÈÄí|œ, áŸ‡úRßsg„¯3Ç¿»“Ï^åK+ýp©Ï0oôCf1`Ïû¥M´äǰ a‹¶ n¥÷{üç=6?Rü©ãŸÌ€û‹´êwE€E€ýýU”7F\¼xˆ"ÀÅ{ˆøûwþ^ˆØð‰*Á _Ô#¸üTíÀ³Yá¤É@ëæ:ÂÝ€ì4Cø€u}=dyuÓ ä@e{ b¾¨Ĺ*€†´ Œj†¼•9A½€ïn/㜠ÿˆøbx0 ˆ‡º7°3ß•VXD4L=…š:‰ ¾¨ÏXûÍÒâÕ;xܹzÐiióÁÒÒÞµd.–Ë%“õ5ÏÚÜÍÞÂR¯k3ÿ|°Ö.?<8Ø>Øßþ›Ãgc_ÿ¶.GÊ!ã}€? ?á¿í€m®P!@(ú3cb®? ñ£FAl™O[øh[hýì ¤ðó:?öù 3 ÝÀÞòËڃӌع%€Þà/~±€ª?jãD~=2tÇýã€\÷7²ˆwöGPÜ€c~ÀêêÏ€\"ð÷ýO%ê¸ú¿Š@# /Úóþp1 ’×L+‹ ÀK*õP#v†h< Ã>Põ +³ÞŽ !ÄSàÕn] DÔéü(Œž@ø±¥-ªºQÜa\Ï¡±^âÕÃ80N“Ã^Ú3¶vèaHõMÐV!  +:ÐH¤[&&ý)7¡?Š–Šøo­MBÒõ¡ëŽëÎC×ÒäÒÍÍþµÍ›Fnjhj(–«{ÖÖÖ6á5½K›Wž ÷¯ìï>û›ûóõo¿–F@2d¼Gø_€×ùm""ëÇ;ýÛøGü?ë”ügœ¡?ø[jÿ¶£ïo³¹lÀzrú- üðžßaìîføfÂiþ[°ÅrÀÍmˆ…q ã˜ÿÏÿ5ä÷€ÿãÀ¨*°Ï+€V‘'°´1O$`ðÿâêáÏ.^"û?\{ñDl€*¥ð} +¦ÿ¥‘Ô*A­GÑJ¦9;+|nÓ˳½ñ^„º‰S=`t€uxnÝëöâ³!4à…F @dÄi!wH誷èÖ!dq/Zè¡8Zvx2p1Øs‚Qý[>4 +à*ø"Öº®Z;@EÔá?pl4ø|Fª©ð°Ð»äz7€ÿ¸.4ûw*6 ¿¿ÿÁRïÃÞ½‡ÛÛKKþ· + à—_ÿòkùI† ï+Æ÷W1F˜Ø^ØÞ&à€Ý¸@‰z—`wô=©âÏ?Ôû󷷶džˆl3Àà…î±@W$ +@7./ÐÂñÝúw?XøÅíÛ_þÿ¸ +;Rªbðe||=óû€þôô8ü7âÀ/(\º´ø÷˜üßAàô\ý(€ßK‚\øÑ@ õ—öÔ2‹³îY20þ7½b€w<¨õ#ú“;êÿ:‰T ûÞ<¢ÁýÞNW€À+Ž7Qxê AÖï…½n ñx(ÒÃ@ÉQPÃq7N ïÐD@”þ— +,@ÇF€ÄzÝ4q¡gü.¼sp°„°_X*z “77çÖRÒŽX®Žøs ^±´¸ø›;‡ûÿ‹÷îáÈ€g_?ù¯ÿæPþM’!CÆ{‰Ÿ¡$ް‰™òöÀÀøÛlÕÝÆ÷ü¿üvŒÖo .@,`ì>sÎóÀ†‰Ü8·Ï—»þœ €'þQî?Ð¥\¾ðÿÅí_,übáþö8.¶¶·Ç·™Ü'§ë<ã>ý—ñ-~ÿSÿWÿn‘§ú ð‡ôÿž?MÀ>€Óë-{4-‹6€ÙYöÒD ¦l0)ÿ'·âÿ:I^=Ä2@(´n†Bnî4ãè Y¡=@LÀ!?ñtlйõ”Lòb™€{‹¡/öZá8·þ£.Ù˜(¾ÕTLCÅ2€Š[pv +øo¬MöN&7''ý7ÿ=†aÔQþ§ÊÕ×<Ø\Zz¸ôðêáâÒÃÃÅÃEÀôì—ÏžýÏg=r+€ 2ÞGÜûÙÏV¶¿Jùò8v ØMBX87”ç5Á&~vó# Ç0‚þØðÁÀöæýý¤à ¤b±OWЃ_ þ3ô "@ý¿¸ýœÒÿ_܆WÜ^¸P–ñûÛpŒã1¾ +g"Tøç;¤Ü'èçàN€{/²°W´’ðÒÇçx#€$€í-&‚_iyE3SÅÙ¢-°€T†{LñyS0R@î&Šøøðc!¶†„4 ‡"Έ xY8à^÷òèàPxpoÑç^\÷X¡§*…°µƒmñ0î ãþ€0Jÿh´–U4›ÖÿÏÞÛÇ´y§é Us£°ìáÐuÃCù1رsBËvѸ[!k…YÃÁŒµÊÜÝu4b½ +ŽzOióG·ÐøjWKèì´šÁ¸–8Qb5œmÚ?˜l3‡Ñ‡Œh^ ï?'ìtVzïëþ=&iwÛ™m“¶“õÏø ’fF\×}Ý×}Ý0p’°ßVÕªÑ M¼ôÒw"ß¹|ÕÿåÃE¶¢¡«CãYàPÅxÑÓ#OŸ‹D +ÂááX„畉Á€›OÞY~3¼|5÷‹)wr'w9ü»c1ë-•Åì¡CíOµ…Óv²öÿ- å“‘¾¥YÝ? C_À}Tý· ýãK ÁvM:}+ Ègë—ÿ ýiÖ°Ì/[ëg¿ îkâ´Kz®ƒ \ÓtbPÿTýƒŒ55õ¤-ui{z?aéL|ŸŸOT€½Ò€¶W\üCïÐZµ¸i£ÃaÑý· ù¿M8uÿ±@míøúÂ~®êTÍú§=)Ëp¾_•å€< S +~¤Ð[ tÇB3Æý ~ÙÃy€ÙÈ`º7`‘ +è'dóIÄ ÎÊ ^|cvú©6DÒ v(«6hlþUÛ…$½ƒ€¢dUra>9ÄÍž°ÍŒ'¿T@Õ?áÿåÇÏ&“CÉ¡qÂÿlýhœÀ9L,…‡ÃK"&àþY^^~ÿæÏææ–s£¹“;¹óˆ¹¿u¬V¶Ö1Z–¢µ0XZšÞ2ã Èÿ˜çýÌòO3îÃëOHÿÁž[{Pîï¡r=ÿ¥5é[5·öY ¸Å»{y…Ò|Àð|ËàWJHOx_ªú–RÆuzŠ}|ÂÿÑ&zD€(AO‚ÞO'zM=ƒ=ô¤‡Ðÿû‰(],Œù–hb š%mtQ©ÿ£VmB§+ù ÚtÊP ¸¿÷xýý» À¤Â¾¾¿ãm¢o©žP%g=< ÀV¡ð0€³~¢öŸ5°1pª÷ ô*a?¡;+èdÓ€f ó²²/´€™T¢’ßž” ’×n°³8 on: /Ÿ¤B¿äÇ›$ù‰ÞW½öÆU &½<-`“g“U³6¿´>«D"5phèðK—ò“Ë—òÓÇOÐs*ÿÇÇ+**€þ3ãWÏ>}y$òR$Ì'6Žá‚»ðRx9¼47wsŽ@î—SîäNîÞS]ý±ˆýi¹ï `ß_º¦”êþRzJð_Ãã|DpOï ¤ˆôßâÙ}@~šo, ´§ ï¹å ÞA5?ué€ÂD,–ÁÁ¦DOiBXÿÇÆPï§ù‘€ÑÄX!~ÏXÓ(=ë p/0€¸@ZÑÿé±Vkb šIDÁ¨ì íŸ;ì xÌ|¿§@çëd>Ot.¼U;M Àãd+Àtvp]¸ €·ÖSÕO/ö_ ÷ü³,(¹€Æý N.ý• wæý¶Má¼1À+ñ‰lvª0¸J?VÙ ¸ê§·ì6}Åv!ƒ œGÿß~š*Àr x_€ÍVU5qøìáï\þÎK?ùéåÃX Hg||fFàÿ!àÑÙsOŸ;‰0ˆ)4€ÀåðÜÒòÏæÞ?÷û)wr'wÝYvÇÜn*ÿ­Åû…U³r¬ˆîyi€P™ªóÔ²€tû˜È@Ëÿ·¥¤yÞ?zÿ›ÿo¥¹ÍÏ<¾ȿŠ ”Zèkz@9*û©ÄLÖ'˜V¶ÿ|\Íýæ¤yøå?]naÎÿVéã?ÿÝ¡úÇC‚ÿ4§÷p~}éO"ð·$JÙÅw¸÷ƒ [˜r?Ý“íûômãËhD€<º3] ôÙп5€þ¿5š—ˆæiu:]sX„ Жõø¨L~½“o©žè\÷Ïzp¦y"P–ú3èCñW.²Äݸÿxþßï¿@/K˜˜Uœ~úÞ­ú_4ú×%$ó*AºÇˆ A6ÐÕoPáãëxE¶y“«^ï¯Í¾Éõ?€U¯ì÷:ç“Ȳ%“üå‚€ UUCɉ‰‰Ÿ¾t8y99{õÕxÕø8ÕÿÄfff®Mœ¥úŸðŸÀRADKK¾œ‹,ñy.rîwŠ®þsî·TîäNî<ªòŸ.%VÿÊ \vyJŸWÆKÅÀùü¼¸eÏ>(Õ" ¨åãübènþ~ÀÿÀ@i¿@ÿ[À{ËÀ@L€Ã{úûoÕ ó@E:÷óðo÷' ôdáÕ=}JüŸfBëM€ŒÒg3Ñh†¾_`þ†åü_ŒæEó2yÑè°®¹9‹þº¶°@ÂWà÷#“tùzÿžµoªjÁæ=Îyϼ õø³ØO× ³¨ÿ¹â—Ù8›…ôY¬ìNbJPQÄ™•$ì }?~†—…âD 6Ñ&ð¯úåuž\õæå$ý–ИõKÒ,Ò€mU~¥ûOà¯Ñh˜$_ž@ïŸÐ¿h¨Šý3 ÿ¨þ?û4´øPù_¦¯/¡ËÓç"ç"§"¿ºúô;/¼Sp>÷k*wr'wÁq»‰”p@Á­è•[”à­6.x ºèÄ0¯Wªø÷µðåc6"ýïÏÜÚÅ_Øþþ·Ùçß-=ßq ­øÖõ÷³ÐÀ#ýTÛ*Ó{ý¸o +¾‚øðø5Q…?ªHþc?ú?úQ–èôdè£Ñ¼Fÿ,– ,j ÿ£™h^ž–¾¹í±‚ø` (àlÀÇHø]-€ÉIÿ_7¸t~Aõfç ³Ðœ< àá ÁJà®2Zög/Hb@ÐÏ€ä—e‰ý` ~ª÷/.@û't&Bzq¶>þü£öw»KbÖ¨u11€€ú~„ù,>fD¦¬YDV–ðp`vËÏ>æ+"@âÿ/-½ÅŸe¾ï§çûÁÒ¼Àg£ß’ÞØ¨ÛèßèÏöÙáýhé"ÅGŒøðø +x ðÿÑÀÖýèh“h,æE8–E®ÿÁxXȳ +˜3€TûöÛ"À +'ð;€ÉÉ- àëý{Þ»]û]•ª³Ö)%%´œhˆ\  ‚°@xf ë²A4 B X§Ðá7`@L@`äç"\‚'þý²hñü«° íø‘#èõÛ’ÞùÍyCÒàôjlv È2‡Û1°µO+û‰(×ÿ\Ò÷Œö°Ù_©óÿ 0šz¸ÇŸ˜ LˆÁ@þ©ÿD^46ÜFÕu€m1tÚÄ °èÂðü‡Q²—ɯÝû(«ÞTý¼vÚã÷8 þŠP"\çå@ +ÄFà>/ F^ Û` 4øU„BtAý¹ò‡7>0-@Q1.€vÀ¡ØéÜ »FvòOØÜ´ÙíøÞ ^ïjÒžô",˜në^Þdã½U­UI[ÑÄO'&fmUU­­3D*ªÆ‡fÎ@Å!E¸|îÜH„(ÀKçÄØØ_t$à³gß¼wéÅ[—s¿¬r'wrçažîînwÉr¬dÙ­À?áÿ€Ø”—ÍDZ:¬¾<°ë”Uk…iÞeY@ÉÝßÊïƒ °gßEhaþÓ·Øùû€ \áÞ¿tz°'m±llh‡ïhµJµìÁ?ꔜ>ÂkKB”ô<ãð¯ÀÿA`T ÿhO"Óƒ<ât˰Pá\þg¢Ö˜®Y×ÜnF ®"Ð +ˆ ,„ô•>ñ¸Ô`ŸK”€oD àÒ½×:_SuÖvN{&ˆ8é6/dI =¯î_È¿Œn>šùTè£cà”€ò’0÷±ºOد2(rCÖèçÝ‚²äõÓŸã÷{d±8-¯:° z1ÀKíÈNj„ù_Øm†’0Ú†€ÿ­3gf*f¸À ž!ì§ Q€s‘Ë#@ÿwžfðï¿zõ…¢¢³ï`àÝHÁKE¹ßW¹“;¹óáßÜ=ÇÀ+"q,ÙQqkź\¢‡Õá`.àvÐ[¾h?±€~®ÙÐ #?Hï)E`MZtnml@Ø@ùߟî·PÁŸN4 ZÒD96¢¯k7ú7ê¢b„¾nø„QøŸGõÿèh"P/D «óÿk°õÆ(ë…D‰L&Ahc½#†y$`X§3››ÆfÌóua°þéù è}Ö'àï ÊÀä×ÿÄžXØÖY»°)'U*Ï&O`3«žuñÅ~ ù‚ò|]F$ÌÛ‚/`3°ä” hàµañ÷ƒD0@ lÅp ž³BའoÂXõVm^Iµn÷ÊXä7È6,^MbŸV Úì,ذ*HÓè÷72þcò?i›!ü?S1SÑZA4 ¢Baè}úÜå +ÿº½ôÿØX„°àŽŠ: ï¼0ôÁ‹§_ÜöÒÒ\î7VîäNî<$ôŸ«™ë6»»Ý%%Vë"$0÷Ï[ôo­Q”û„ü+0Ÿ®nóÛnºGX€9¯Àì£KÔ×oñ »>{KÜ €Ì?>i¬:¥ kÿiÿÿ‘ÜO8 èjÁ68ˆ€€:Ü×±@^àOô$ +{z2ÀÿÑÏ®þýq£÷$2Ÿ¨ü•˜`mŒ +ÿfB~¦hö‡›Ûbá‘ÿÖ7#!>£kk~ü À$+L&¿ ÙÎ7UªïÕª6ý~•Ó㜆 ; À©@"@aP¨â—8.X€0;àÆÀW s峄€ ÜÀ½[eŒ^aàêÓ‰E^¯X&€…BvF, ´{yW°Ý®ÑØì{2iK&'†lCÿ©ð'è?Sqÿ @ø™€?2`ä2Äÿ¢¢¢qú†D0(zá…«EÛÞ|ýgss%_Á¿w°4°ƒñš@0 K]€Ï'[§öA.©TÛTµO¨¦m’ +=t<"X–²Ëô—=9;%]ÝïeÑúg°—ì‡ >/ó¡Íƒ2¿oàd€UiUð®">Ø ÂË’Ê`ósJ°ÈfÀžÄŒ éÜXÕhüÀÿä/“ɪŠVªû[þg ´ +0£#„ü@ÿ—¸÷?TÄàßAпsçÎC;¸úÂÕëÿµèWKs%z)@ºOd²ðŸÿQð?Ýü‰€øV÷ËdWicm0ýÀ3ü›ÃÍF#ÛýXûGÀp›N±u<ØÖ~Ü €¾9 +À¥é×TÛ +(Ùœ`t7íD60ÖŠ©@î ¬Ë÷¿ + +0Ë$@øý…C€[þY§À:>æõKøÔ, Ì +.ðB!Yº l^‘!ìåªÃ^‰÷üç/^8è&¶ÚW5^{#æ“É"›m¨µµ•Jÿ3øÏð… O_Æ& |aõÿ*ÿ ï"ì7Aþ©èwÞyîW7—ÿ¬ä&®Õ¬…©T0Ú·ˆW·âÁ5_0ðÅCSS®8Ð?ÎøšŠ ú™ê••+ÿéÊ{++Ç\¡»¹ßª¹“;è_<§×Síoîî6—XÝÖ«vy1ƒ×ÏÃqZ«Ûmfð'Ðw¸!ýÓKñœ¾Gi 8þlÐ2%ø6Fö|èã°%à€×§ÅéOßêO5°¤Ó ‚‹л¡U +ÿ¨¢@D™œŒöd2QFpXúˆ lÿ§[£[¶EþO€1$ø>“Ažh‡uÃXûǹ¨ÿ!P‘olÖ 7GÚîÄ +øÛÂ:d'(@g@øÚ†wè?ùMñàtnSm«­ítÎ&þ™°%Ð#,[›éÞ3í‘gñx/!,`ÎD€K~ÅìŽà÷Êè%`î_Ø…u@b» ½ì•¼bC€ØŒ¥@²ßŽ` ~‰× 1ÀÊ 8íÈòjl6?•ÿI‚Ä€°b†}LþŸEÀe†4þ‡Æ+¶¶üÿ‡Øø?wnéçn./ïz4€Tð×´ÇÛC¡`u< +  ø  Ê?(x€Nõ¥=DþöÊ•“+®xî×jîäÎüëçôÝúî9ÀwÌZ"ä1ø×Ÿý#PQùfw½•½þwýÛõPÌæWÜ +90;Ø (.„׎ÁwV[­³ XxJð>LRù¿‡.·¨úOÀïg7ýûìG• äôdzF ™—,æŒçe2£™ÑžÑÑO«£Ÿä׈7î÷ðÇY5èÑøôëxÙ/Q£®¹9B F@LètÆ6ö@ DÚè º¶ ×½ø˜€-àÒ¸tiZE àÕfRR‰àTÍ‹¡Àû–‚}¢Â ¨J;`ë1Ï ºeÙƒf¿ä-€ePtÀàØ„CP2¬Þ¯þÑìÇèŸaÝ`{Ä^a/öÑmÕ+¦e?g&'lìà!ÀVÀ~+î‰ +Ðu|€s€DñJDÀƒ§c¦cüê ÄΞ;þÙËË7ÿlùHû‚ÁÀ=@ËSÿCW¯2üúÿ}@˜^ ð«sáðÏþqyynù…‡ªô_ª&оOµ§‚ííñ@Ku(Pš +VÇS`;üÁxˆ?Š£ õ0¬¾íZYùÖ‚ÀUûÝš;¹ó ?Å&‡ €~®»û„é?V7Âÿþ§K³I¹1À¹;Fõ½»[ïx¥þí.ý+Ĉ¸ëõú.³ÙJÐïvC  3¿²åtÐw‚Æ¡Òô­[éÁ=J+ iŒWú ˆ"`ƒÕÿ Ñÿ‹ú¨ægùßÊ™ýÑÅLTØG?u²u¶ý Ù÷2yQKOaT« ‡ÃFªûcèý‡Ûb¼ü'šhÖ5éÚŒ«mÿp¤¹@È¢æ AÂÝpÍãÞà€h|cþÆNÕ¶ÎÉó ³IÕÂÀŸÀTÞ< %ÀÃ$@–œ*›˜pR€Ä/HTë³ØÙ~ž€úÙ_ÎÖ…@`çé§ü^‰cƒ€ü òìøGSÀÎiA¢üøï·Û¹E€0¿›­Õ¦©ª"ì§sfæ (fÿbä¡?˜ú»ÿ +ö‹33 @d.üþß-/ÿìÔÃûWmIS¿ ÄãûâÁ`¨:BÉé¿/X ¨¦ÇA_ ØÇ8zžTß­»råÊ+®P_î·kîäÎ7\û×›ž$ÐMå¿;ÖÍÙ?Šþ/’ýÐÿ· ˜×üá0ë õé¼R¯Û ÙŸ¾˜f}=½CTÀAõ?‘‡¹r€Cg¦£‹9Ä­ë‡ + +D> V”²086˜#ôïÞIl$ÿ7¢Ê @ú¿5çý^Ù“à{øøþ GÿõQ€Q¥ôWNTg„èOø¼¿°Néè˜`€ŠÿH3÷Œó^â@¸í€p–5Ã1ðúcNî tÿëoÊßøªmô7R%eÕB§TìØTò¾`Þètª„À¾®üé˦¼éô ô—6< Ï‚ð|ÀÖ¡Ÿ4¬c Á°¾À›è*3ö¯z‘ý6`“€Š0K@ì0B¿mÕfÒhlÜ kkU…hÐ!üOž%ðŸBõù¦¢ãÐýúÿþ©è˜aÀ ï<ý«sKáŸýêïN½ÿ«‡6 ¢ÒŸ[ýí„ü)º'LÕÖ‚}ñÀZ{u*LÅé Øâ„üñ¡` +Á}ñÀÛÇŽ±`e%t#÷û5wrç›\ýðsø;ìÿëͼE±Õ?×ÿèýþ³¼ßU¬w뻺ëõf}—^ÏÅ?‘· úé%âõf<ÒÕ›A +Ì1‡•îñDgÖ9b,IJ2â‚÷ –"# ½' 7®8‰~ªÿ7@þ;t¡/È À¨!A~@ÿ}øÿÀTÑXÌl fþ 'kÿvÆÃÀùHÄØŒuë‚@h‹Áá?b.€ùÃø¿T€D`äs€@×ÜÖ6\sïþÿ ôù€˜¬ý&)÷^{Ó¹­ö|­ä÷,,Ôþ3ÿ´Ó ;€Gš† Á (óÒ1&(ÍŠ4@zKå¡¢_Zx “óÜÀ&aYù0vcHÀëUmÒgXì7H@}bðã“b @6ØúÙ)°Ž@ïZÞ$¯Ò°PÕz_«¨ü'üOML°0„ú¡?‡lˆâ^Ø_(zúÕsKK¯¾ð½zýú—þ笮NU§Zª««¡äQø¯•Ò—ö5еêöP_u|-PÝì'0HðO¨ï› +†X˜âœ€À3—\`°r3¹“;ßÜc6›ôÝslœë¦J~Ù-üVe½ða¢Ÿ5|³o6ëÝns—¾R­GÅÿ¶Zè 0é»ÔD^!èèfN ƒ Ó1 Пàà CDûRÁ_ʱÁi–ØÀ3é º¦-w6îÜÑjïpAT«]Ôbö6þE­5B…(ÿ3™û¥áÖ—Bò³Mÿ­A@¡DñÍDá#áp¬y€P8@< 7DÂTü#˜/XÈ@xþ(““§ xHÞG}yÐù Œ,ÌúUÿ Ìœ*tp™ç©H•Sú¤;ez&{dÈLÐËç`E#à¦À¦“†,­{xNÐ9B¦«~ì +&h÷Ú v›-`ò¬pØÐ0Ð[4Ë-ì&PÕH¸ßª2@k•m¨Šêî€\ß’ÿÝo0`Ð!&~unäÕ®ã|É˾–¾¾–T*Õ—ªîc h_£’?¸¯IÅÁBÁ꾘ÁZ ø$äú¦¡©8ÇÐó·]ÇVŽý-Z9`îäÎ7Vû7ë‰ñßìî6/—ÄÜYøÏûDýoYé-à¿Y¯¯  ª¿Ø¬'Î@L]nú·éÈA=nà>Ⱦ>kV𬠋oÍ*Cÿ@ÿ@é-tjè–Þ 2‰ôþolpPôNÔŠ5½Â¶ŸAå'"ä÷Žf¶êÿ-F)¤—³ãYPEO ð7.ÁΧ.@]¸­¹9ÌØô¨‘Y(G +t]¶ ÐÌøßöú­ÇÛ¨D1 x8à×/¾øå À¥{ÛToª&®òû +°@‡BÄÁn8á”<žÇD8~N¤œ’´N•=šþëô|–>¿iðKžuó‚J–¨ºwJ¨ý 0Ä7ÀçG`ð·ñ$€·xù¹Æ{A’5^6Ø’b/`#A#ÐßÖjc) ªŠêÿ >g“ECã3Âÿ*@E¶@׎„}çéwƯ¼~}çg}Õté«NõU·ƒÿ°¶¶&$˜ý‚kýôtO0U +!àFz@0¨ö‰yÀòãSñ{èÉŸÿ +Àß®¬„B©ÜoÙÜÉo䉱ïà¿ò?¬n·»ÄÊîŽÿ#ü´pò¿í|º¢Ú¯wëëëÕ¦ýjªúé[‹õötº*»ô]]zº7›©ìçn€Þ\ŸEþ®z³^çÖ™ëY0[éAížgj‡1XW×O$`2¦o¥Kû9 Ÿu€;–-@‚q<“ÀwÓY$À¿‚þ…,¢ PX(^Íd0ð—¸Ï„ÑšÃÂx&‘UÿK±p^@ü}œ@ï +- ÜÜF ÀXÐ\)XŠ´µa9:ÔéÚný᫟Oj©þ‡púá€^<ÿ⇣mâìTÕžïœ÷K`‚,°À[‚D6€  Dà œVÌ< Ü€²ìÙÜœF@B$y1TñË~Y5ï‘f½ÎyÉ)m",xÖY`Õk@dO¢ío·ºcòz€Áo§o·kœ’ìµi yu}o2»XÓÈÕãL£¦QÀ¿-YtøòÄYP€¡¡ñ!tÿ;>Å>eÀ…ó€^¸zuüú΃;¯ÜùEþýnÜí»q£O:Õ-©=)Lã5k$¯ –®ª×âíÕÁxuµÕÊ— +†öÅt MB¡ ¾@Ð¿à·ØÈÜùžbHÿs,Ùw›çÌfFw,V¢-øO•yé vïÂvï0;ºÿ•õ¦.ÓþJý~½^ÝÕMß‹£®Ôë+÷ëùgᑺ·R’Ÿz¸¯'Ô'6PÏ\ žþ0lXÌ‹`k Vû:Q€ºþd§k ˆ•èôol€þïh£ Eý§â?·þ/føEù„ô° L P|ÍÜwlI£‰Wÿ°ùUÌþK:álk‹Õ‡uHd‚p”?G¥>—ý:¨‘ÿ s†t÷~ó¸+§¹úŸ<}úôéÿŠpéÒ&;§ýÎ…ÚÎZUçpÞÏò à”T»açw*:€“'xØßéÜäqç´¤„SéoØ! —=³Ò´¾ Ë%ƒ×àµa v¬ŠZÁ¿0þÛm~;‚…löy¯Çàµ{Wýêt p׈ÕÀÿ«ˆhªè±­HÔÿ‡'Î&‹†ªª°èAù¿â6åI¦;x=ðxÇõƒîü ïî3„þÀÔÿ©º¤~Lƒ5Tç¯íûzG`Mý«F(P{<žÂ2€ê8Fؾ}¡xõíµ•c+ßzãù•Ü@îäÎ7MøgÔ&´˜ëžÓ›»1øç¶ÆDú?«ÿ„ÿéÒR‹…Sw¬l棚¾žÐ¾R½Ÿ¾Smî6uÓÏ¡›~¿8Q@Ý…Ž]À +è®ÞÔ7UÒ3~(ü)‹ß7ët‰é˜lÔiAÒÄÝ‚™Xú7,–;QíLYÿ‰ _k]äò?“—@¥_ÈÑ>D2¢îïéÃÞ}{€èþ÷d÷mßú7MÜsÌ_ ™¿ºlÿÜRAs8\Ð,šÿ‘ÈR[A¤MÌ47ÓƒÇ~ ‘_ñ<ðÑùΟ?ýpº&?_x«s²¶Óãwv + Õü;=Š@À¯üsX SdÀ Í+ÍyzA’f bHVÁuÙ/{æ Tý«$Ã:6Ì£]€Ô@6 "æ—˜€P}5É6/^¦“ôØl²×±j·Ëëò¬Œ Á"cb 6ÛPAàÉdr¨jœ×R®÷Aÿ' +è¸J—ŽŽ„ÿwþ;ÿESÕTþßö÷õ¥ZúR¬´@à‡  I@Áࢥâµx¼/@ ¡4 ¤à „‚¡Àwˆ„â©Û-¢àòÝÈý¾ÍÜù¦]qJqÜL &†ÿ÷rÌé~„ÿÀš ¡ÿ÷yÿ/æøÍ7>Ýeªï2QUõ?ÝŠ»Lz°`?Sú qz¡—¸>Tú.øLzƈ%Vö”èÄ€Ž8€Î1<ümíF´n£1éÒÁÁ= ¬‰;¼©£ Øþµt[ÌÃô?á?oõ!œ_\,Ìjþ…¨ýéá®E<ùÄP@&j…Ä‹ÿSqÔx4Òp0:?\£+·„xG`5ás1B2q€f#ºþÞã=@àï4s€‡¢|ð½·žøàÇó×¾÷ÄBgíµ’a¡s¡–-ÐTp–˜ HŒýÎM'Üÿ¬L8… +@<Â#¶®ó뜤w=ÈàÐÀu¦`à`ü³ó(`’j|YöÚà°Ù6 X¤b^@ ƒÝ®á.@c]QþÓáê6‹ÿ +À¢àŠŠŠêýC‚ lÑ%PœqàÿAˆÿ¾ò?Høßwƒ€>˜ÿR-~ ÐÛ}kˆ·¯ù‚klöã]@k` ñ€j_<Ô² !ÀGøâQ€<¡àízDrS€¹“;߈éÝ¡C{58ëõsÐéÍËPäK¬1öþYÙÀö¿Ã?•ÿ¬þ£¯6Ñ•¾‘¾«‹Qïw›åßT¬î¢×À Š{!1˜©þßoªlè5Uv™*Ñ<0Ur FƒEPňÑ@ú‹9Œ ‚ØŒ”@„€ Ê»P»#ÀŸ·÷D©âÏKÈï)Tæ •’¡€…‹‚$nþ­a÷1þ'´}ˆü ÿ ÂKaÄü¡ ¸›…ÐÌ:d€H¤9R°T/ nÍj{ý? øs @-kÿâ|yªóâoªž8ÿÑÃâLOtNÖÖvúåÎÎÎZB'$„ +­ú=* ã€çBvy  9(@¦ÏO˳ÒBí,—ÿÄùž ðøñÙ0`„€Uv€ €%ÀŽ(ãFvÜz ŠÏ&¿©í¬U€Cøè{o}÷Í'Î?´<¡{“?¯=_[«šõtbPÕ)âœ"h« @•¿¤B(€sÚ)^«ƒ¹ {œ*º¤N• +¤—7±HÐ)ÍSõ> E@öozÌ;1,pq@„ñœ+€Š{ úÿ»ssÓn3 È{3ƒ²Á»ªáÕÀÜ SÅjÍþdvÂ?ñKz4¤`F,VÀ_ŠO)ˆ†Yp§8Üø}ÿÍîÞEë?uû.ˆO´¤úR-Ás€`ª”мà~-™¿=@W‚úš@p-°¶'Gí¿o |Ø +ÀÀ7Ç3W虡‚€]¹€ÜɯñÔÕ ;¾M%¶›Àó`fE¨ŸÃ×es‰Ûºu0™ÇÓùƒKá?¦õy²ÏLøNõ?ŸÐ¿˜Êü#ÅúýjµI]NOMÅzSïu%rpS὞î@ôF=3SW±»ûDÉâ¢UäéëÍ&ŨC' æƬÔÒoI@& à¤ò,A€®üy…‚3XŒCäüÿ»€ÿ…ìT†3V9ŒÜ?Æ÷‘ãÈÑSÆ£# §F €mP Â[1Æ¡€,è €DŒ c`Ûcàü<âzÿßý²·o©ÞœV½6ùð' ö'_¬­õ$UµµôwU‰.€3Ûøì÷,xœÓž-wÄÌ‘@iÚ)Óm]Á?óbSaÓ)cÓ Á/{ ~*þ½y^âÀUEÀJ| ¼ÁK°{é“H¢k`°+oúÛÄaK‚f±*hhãUÌÎȚ š“ç;×ýÄ0 @Ñ P&J h$€iÉéì$è÷8Pþ+¯ÒÝ:’T ›¿=é÷¨¦‰ðj`YF€U?ÆEôqÊò,p `m°Ý.¬B° ð÷Ûw~úK¬ JÚÁ#À™ŠOá~¶ð`à>@à÷‘npÙþêÆÝ»Õb€ù@ª¥%˜jWrkñöT0ÜG0¿VÇfÀø§ý" دƀ`Ü ùâ„ûqW<äÛ…n\r{ÃõüŠ+4x&÷›8wrç«?5-{êê^×j‡‡Ã:‡[§C»Ý„ªÛÌî¼9¡ÿÑ/àßÊê´ßRÃøoÅߘC࿹«W¯îí=R©VwQý¯ÖWéÍöÔ„þùùÀ~uq/$S¹º’uue—ÉD¬¡¬¬-úînBÿÅ’w‰¹Û|?¨žnn´:«Xô‡eÀ¸¦±8˜ÎX¶â Ð/ÁÁ?™Qîó÷dòð¤‡çÁ@ `1Êò?1€Eÿì´Æb±°ÙLøoÕ¡š‡¾iˆ4ŒO˜F@"ƈn)Ìkbºa;€ùD*5rgÿÐþÓ}sÄ ­åq'ªZÁî½û%;÷ý|s~}u]õÄCý»wÖv¾89©JJµ Ê$Gª²µ>$É)¦ è§™xTL @P±CPR!EP’œóžuú²éqÊÎuï|m§Š>Cˆ/6ÌËÈ özeýd˜ûx?°=éåð?Bw»d§;#°®Úm’„È »}5‹ÿøêOÚ†PýOàÍ6ÄÞ@BÛп´ž™i­ø„ °åx°…Œ¼¾sçÁß)þ÷}x£ïþø-Þ¾‘Å4ZR©šµ=<ð/@;Á?¡{ U®}¸€5dÑ­:ÀÀ¾àTÐ7€ýÀÇ\Õ·ƒÇNº\++®©@n0wrçkaýuuÚáokm£ÿýSXw›—ÍÖX¶ö*øï³ –Òê¿K‘ø «_/Uò°ú³à^¾û@Ù}z¤Î/S÷*Ö€ò|ºëÝ‘_ÖÛ€×ʈ"ÔëM•j}—¾›à—µ¤äí+T·[˜Ž˜›…[· 1"ªÍAİ* éc^ÐÃÛÇ $…£ÄzøEÌ]óÐòçúŸîµx,’¨ò_´.ð3ç kcDưоq„{ÆúÚ ÄtõÍÊàQ#K"ö§ ¢CíÿÇ‘‘‘H3úÄ +ÚàçBGÅøî½/§üú‰_|çÂß_XW¸ù:;ÏOÖJÉ(*%H·j~±¾n*šÀ<½ÀÅ>=QÕúñJç‚GÚD| a?†þˆ8‰ +Èò¦“*=ü²ìôʪMÉî÷ø vY øþy Ю±’ €ãY¼5¶˜E`Ö ™äêŸ(€VqfZÏ`c°8gè<$ôÿžìø]iwoß½{ãÃܸña_õí»Âÿ—"P]E€ÁµvøCÁ~{/˜ +ùRíkDD`}ÿñ€/” +øÐú?–ÂÁÿ}‹ëXðv;@rQ@¹“;_Ãé€0¬Fo]ÇÕõ€jÿ˜›/1-'ÿ*î?ìè%ÜÕþkÝfÇÛflúÑwUöéÝO7Â{ ¾úHù‘üüâb“þ€º¼¼ìÊ}¢ÅhþSÙ_Ž@Ù‘ü²†ÞòÞÞ2ªÿy6Ð]r¢Äºk× |(醽 ›Évã%ˆbS„@ÿ `I@“ÿDa‚U€B*ûœC€Y`ÑzSÀÿ(ÀµXw½Éh6…Åk£‹fc¸>l4êŸÊj¼òO¦ ób`˜h ×ÍŠ ‚Ø€a#Ú^ÿè1øÿÌç‚QÜÞýr&ÀŸ«6×××ç׿ûáÛT½6­šœ¬E ³S³°u²`ZI˜Î¶$A„  O¨ÿÈ€býŸªýT{<ؾ_[ AßáöGúOˆÃ}ÄÖâ®`ÊšjŸ +± `Š»‚ÇVâÏÜ]y~…ðßå +äl€¹“;_þo@€@׿p@‡U~lêsÇlYвèŽSg ø÷E±ªõ¿ÛÑæ¿^½_]¹¿· >¿Jõ“º—*þbuqW± å¿Út ×T\ÖPNd _]ÞËø_* _ýÝ'÷w-–¸é"Ž•á¿»¾ÈïÆÍlvÿé/Å»‚0‡è³¤‰¦DSSQ€DSZ€îÀ˜À¼_"SÍËcôü—@ +¸™Ó‹%ÆJ“é”ћ̋"28j¥ ÁF¨ø¯4ž¢úÞd\2Çb1ëbôf,\°ÄIbÐl¬? 4(s‘Aš#m¯?ÀÏ%*UmíieðKüwÏ«^#dþÅü/²pé¶JµMuz²Ó/± @±nõœõýïÂ0 íÀ*J¢ëÓNϦxWµ >°)ÍcP’üô†ìE0¢6%?Ñ€Mƒ×+va-`RTùIû*ìú°ý31ðøÛ³ +öÙì~Û®þ ´D[ QÓÚ(п‘U±P@Àÿ}à#ÀÎ<8Ó1Þq°ãsmwï>ƒî?(L©y €€á¨ço­šJùv8ÿðÜ ÀC,þ‰‡|üê¿y@ˆ(A(HåÜEwøÊ±gn¯ü»¦r=€Üɯü|Ô20@øÿ:Áÿ°–7ðšWw _u„¶%€Zäþ ðÇ}]¿eÀRª¸ÿþCå¿»~?•ï•û©ü?Ry¥~oY~>Õû•zÂ~ü²ü¿.ï-Ûž¿cGþ޲|<绲޲rð„²òÞJ,Öwòw8ñv·»äÄ ¢în7¡¿ÙMÜ€5÷2÷ÜVÐú›-Þw 6 Ž Ò]›P HdÇ`ýÏÆ¿Ä"¾1[þfÌÆÊS &“Ñd2…—y0S2Æ€0}øûMõaâD¼‰(ÑÍhl8ÓµAЉ " œdTf +ÂͰÿEÄÝQЀÿvû1ø¿Íç€ÌÖ~‰ ý}ôšêµóµµçÏ¿ö󇞛t{Zõ‹ÎÓç;“< È^ èÜrpÁ?ÏAÀÏ<#½J p:;TüK ûH Ú P© ôM @Ààä0 *€lT’×.;U˜4 À.œ€‚xí"úOvñÌ‹Wü56ÿ¬3€”y?â•5Aâ®J4ZgÎdo‚l…W(6ÀC‡®â< ñëhüœòÿƇ\ü‹)@¢âAŸ¨ÿ«SAL¶öãkÜ ¼oƒ<Hµ>a?¦þö>WhßÊ”/4E Àw…\¾x`e%uÛ·²ò<3€\ wrç+>7j€ÿuTÇÓ-¦é¸:¬„ú¨ü±×ê¿ÃºUü÷û¢ý¥‹¥ŸŠÿo;8ýû|÷«ë‹÷ïߤwÿ~µº²XÝ{ _¯/./üïÞ_~@mê=PyD]Ù[V + n(++S÷ö–—å÷3È/Ûo"ˆ'ø?Ñí>Qâîî>COO-ˆ èÆ"&(Ĉš”X©œ_ŒÆÐHD©ÞoJ'š`K4)ðŸ‰r3=ÿ¨@ÿ ƒ?ä1øWXxÓ4rÊ Àd4/fxIP4FõÆþBôÕGL r…Ð@_`jŠ{„ýñÛÕW °ïvîrîäÎW‰ÿ¥p¢0ìÖ:,PyË7;ÿb0þ+5vÔú¨þˆF¿­¥OÑ·¸ë©þ?RY¿å~‚$ÿÁèWÜ«†@pOµþ_—©Ëò÷örù¯.Ç•€o~Ùö²Ýe{wä—U"7¸·¸»Àýÿ'v & €÷ÒÃenK°Àì(•o1oQ, J$,€û¦±ÄàØÇcccMM‰AÁ£83‰(2=™¨õ¦•€<ú°¿Iå}åHé†ú’Ee°Äl2b-q XI̺‹mVzˆ7b1AŒáH³q!Al¤ëÑ£"8›Å$ ‘7E + +þÛãM67LDÐ(Þ_ü©Æ¿:=¿>ÿ‹ÎΟŸHk€>}žPœ_H.( +€Š#îÇ+.@Âz¢~§JåÁn Mž˜÷8790x €i¸N‰¨}ZµéYG,GöøeÉ€Õ@ôÄ`G* ×à‘ ²Aò²ËU[¶øçG~ ×ýÊl Ý¦ÑØ9,€­þ$öâT5rB@+Ö4j4B€0kl…pæÁ‰€ON¿zuüàõ™3Ÿ- ý£O‰ÿ!Ä¿-ãuªå·Ášêµ–2øß#`h_ÛÖ‚ÜàÄ?Wª¼!Bùþ赩‹®ñ•+¡gî^Á €ïçz¹“;_uýßß/œa‡ÒXY…ñ_©{ìû·PýùßRjÑj¿–âÿ+¯ ÿüïêݯî:R«ŸIÝË3ê|ªý‹ÕåùùÛ‰ô–£ú/Û‘Ÿ¿_q-Ï/kP«ÿT­ï..Ö£î»û„µ[]©?QâvÓ‹Øf@´€(Ñ}·kvÁÌo-q3 °.FA¸ëOÅÿØØÇM &zÒ"‘€Q.ÿJîŒYø'°7RåßpjÄdÅ?ÝEæ0» cfÇ2§扼À’›%ì¤7b`\ +#Œþ§Œ#¯¨Àæ@cØ)€¡ÏDà |ÜÂÄ,Û€¾4wì´]Xµ ýÿük¯Õ>"ü¿wéM•jºv²sVâ&€£€ìr¢•%´ûí* ‹JÅÑ<€æ¦¦7ñ#¤yâ <È˃‘,¯Ë^/{6 v¿WöÊȰKX$›âù÷Âì﵃س„ÀFO4~ÿº×–ôcE`n@hTøÓ{«Èn¬:á¿F¡­­gZ+`ÈR€™ÇX˜éè¸:~u||fÖ?ûÿDBà ¡ü÷µàiuß] ?ÖÔ¤Úׂ¼ú/GîûýƒñP{{€®ñOüûâSTû£à› +ùV\Ác._ÜG¬Àwù‚®o­üùí++®çs@îäÎW}új¸þ'øW€ `ímgû°Ë~Hÿ>Lþ÷[àþˆúè-*þõæWÌo#ûGÝÕµ¿kï^Êw~¹º\]¶=¿¼—îw£ð‡ÜŸOwTýã¾ @þŽ{1P\\l>Ñ}âÉ'Ÿì~’H€ºWßË›ƒQúëçpÇ +@·¹%¨Å1(ÞâÍ<€:÷ù-‰ÄØèX]@¢@µ?‡gàâ?ƒ àaf[ ŽÛÍc‚ÖÅLÞ5–ô•dŸÂQd÷Œ& ýô#bMlü/úG¹À‰?ÖØ²|§€æDN™•$ÀB+'éæêMK0þŬ\ÿ/–XOpñœÉÔ§ÿQÓ)ªÿu(ïqå…# Œþ #˜`' D(¼° íõïÀ¦§–ªÿÉÚ{_ˆüäàÁƒ×/Ìýr¢èÂw~ñÖùGøßÀ³€ ³r'Gq& sËÀŽÁ$I™”`üƒž¿®¬⬠ÍMÌ +Âõ?›¤BÿŒ²€ÉÞ1€cyàŸçÿ…óži¼J€ ÞÎ.Š~›²y «U„ý ^? þ7j”Q€ +`¿p²° ™3Ù<àEÇøÌxGÇ6Ä4Õíül  O„ÿ‹a€¾ÔÝg„ ¦S©ÈÿR”/Îò?á½(þá Cíq¸ÿ¦B¾ðn¿+)áùs¹BÇ]o<õ­ÛÏüåÏ?¹rÜ5õý©ê\@îäÎWpn3þûúû}uÑ:ÿV˜´1‚ö?‹f'ÿ¢ýXø'äÿR }½íÐRýï¨wèë»*»ôú^4zqò{Õû”÷ö–çoï%øïR£ãOðŸŸOL`û¢{wlß[V¶7ŸÀ/‚(î>éÿÝ'Šó‰ PµoÒW¢3ÐEOŠaÐÏuw—œp €EÐZb]v»o–,^ËdX˜Ï\Ëðp€ ýÄÆ@Æ>N+M€L4z‡§þ°`ÑJu<üÂÈïG­n6ÅDòOá5³ÉÌ®ÿp=oA¾ÉèoµbþϬ7™Ì¦†Êc%(À)TþK@Œ° à\ÃÓ¯r`¤r¤ò(@{ˆ„#KXôæã½ €ƒ ú'ï½ûEr€žØyýàΉõ É_^ßö½Gé—ø®êÍÎ'~Ø: à0±pZâI@0'Ì~B€ P¬fE>}vsA¥Âà<£ÿ¦²N?ÀÁ@¯_6ú{æ=›j}¨ÿšU^ d7@ø·±/PF*† }F|*öíëޤƖí h4bL€u€F ýÀ¾9º˜à,À™û `æ;‚˜ÌÌ@8T1=yi¡õÐÁÏ”nÜàÍ?78èC,¸!¦ûRÕ}Õ-Áàoƒí)_p-€&ÜÏ~E@0N˜/ÿ©Ú' +°â£úÿ¤ëù•÷â®ç»˜„\+tåÏó—WVÞ;yò8k9;¹óèñ¿¥µ¼¯èõi?y¬œ¯§ÄþÔÿûûéZjaü'ºà úÿ³Û\ÿ +•þf(½]û{÷÷öîÏWëÕX@Õþªá{ öþÄò·síºŸªÿ½Û‰8 ¦‹éÀâ'O”üÙ‰â'KžT-€'@/PŠOþ‘ p‚[t_R²‹ŠþkØâ› ñ‡©¯[AFalúQÓX³ÄeîÐL&E¿™E‚ÿ%´çõô…Ê0¥û_bB3@V– mÁºˆì!z>g45­¬l0ÐÕh2*úd$2Ò`äAY@å}PIcwPÁD€‚×kó³ ¡hí仿&pú‹ìúàúÁë×Çgÿ~bhâïòÚ‡÷åD§ê»µ§k¥¤³–êÜ:•¥Ä¦Ùé?«s^’æE"@Ÿ›ûÒÖj`‚yzS; j“'YpJ<6@Ÿô<Ùï—“²ÁNk0 +è]õröàÝ €ïíØþÇf?/züôÚ¼¿Ë4ôbã–1Àƒ6mX+Zï„o¥ߟ +ì`ÐqýࡤjçÁƒŸ¹@id=-X”ÊnÀiO…Rñ5ßZ0˜BÊO#ÿùØú= ºâ®c¶„ޝ¼Õ¿ã'W\Ç]ÇÙðG?Ý>Eð¿ròø&öý&÷Û9wrçÑž»{ÿàéös _T`¿€}¶ý‹˜}ŽÙþ[8ü·Ô">î67»Ÿ¯¥K__¯ïÝßEgïîÞÞ#ûÕGÔGŽô¢ïO,`÷öÝÏå—õ–÷æ ái¿LžÛ±wÇòòòï(.žã‘ÿsO>©./Û»}ÇöürN &@71˜ÿ%%¢pbŽu×®Œ€üBìú)ëü2þGG{F›šÆšöíkJ#)P»Hð4€èbl+¯—ÊwÔñ§L§Œ%àZw¥ÉTnB V²Õÿâb Œ€Xxd)oh¨<õC€¼ÑX©„À?óÿúòÆw  á¨ˆ` ´´½þÄc0ð™à7µµ§ß½wúô½/° èÞ‡oèè(š˜˜˜ýÉwµ[âÍÕäylF `çËplítŠ0`±€ ¤LîSIö,îça@8°sÞ³ âA3¿W‚ïßï‡$`=²M2ˆòßk#2à•‘h3Èt' +и5@lÀoXmä•ÀxÒ¨±oõ@ üv[k•˜dܯRjÿ3Ÿœc 3ã‡vÿ?“ÜÍ€|KñRÀ¾„² w§j0øå)ù©ô_ó±ÿñS¡c+Shù‡Þ8¹rü½“oœœ:‰@.ôýW~på™ôÞ'ß»rÀ÷sFÀÜÉG|>Ú³`Nð!*òµ¾- +µ*D š]¶KÐoÁìÿK]´Ž>ìÐÕSA\o®ÅÜEø¿¿ëíÞ#OA ËîÝêÝêü#•êÝ;ò¹øÏßýÐ?¿lïŽçþæ<ËOöªËœ*6ÿéûÅ|Þ/þ‹ÿu¢øÔËÏ5(.?P~Û‚ŠAL„ÿOvŸÀe4`jÿk0€kÊ¿LFx´”#ƒÄšÓà1ÑDb4rv!²Yd÷ž"Pi-Y?h× Se¥™8€ƒ†0þßÌ ôÇMðolhøá«„þ§*Ä9؉œkÀ€±R7~Hè^ÔG%Y*h ·½yë1ø÷Ù +À$–\º7ùë{tþÝõÑõëEWÿûxÑìOòÝó÷õÆ´ê5b³^ÌÖÖ²€xÀÖ8àý倰õ `ƒYvn©yÓ‰†¿SÙ4O„A%‰o’è“Äü ›d;xÆð„Jƒ•?ÿó* ›Ý°ªácW*}Ìþ‰u€ÀüF’ب‘m­lDÐF#–Û4¼à gÎ(ëþ¥âÌLë¿´*ó¢€,€ŽÏ#—îÿXx—ª~,hé«NU¯µÄkB©µt~Nþ‘¿à툈û|èþÇ] Âè:¹²òÞÅBú‹+Ç]ïaÀÅü xûÊS'O^<9Å'Ìs'wå¹ú¿t`äú £ÐÏu?_Eâ/–ìE-i¢xÿ©EpÂ~¢hÔ³°Kä©^è=²ûHW¯º·¼òÈŽ²üÝù ¸¶ïEùÿUÿÛ©òW¿õÿÉòâ'çž,ž+>õêÞ²òÊ÷Õs&Óâå,ˆCÈß=÷¤þIð_»F·ÂOFýQ¦ô3yÄš¼$¸”ÈÀ(Ãm±¶°N·„?KJ‚e¥Ž°Ÿ)À5·¹Û¬7éÍV1øà¦ÕZµ–`.°žÀÞ†2*þÿ¯6Om@uOàèÈ)ªþçŒbïŽmh8*ÆÃÍD +ÂmmÛÚ^¿õŒ|&x÷ü˜´¿ôï'ý}GÇõ0¡~ubÛ#5*‚ÃwU*þZ›§¶“1þ/¨T2àÿ¼Ø8I^–U¿vf»ìP­C$˜—„B€ÅÁ 2î„@NJNŒú ø ~ƒgÓë7ø½«ˆJRùÀàmäü_¯Í†4 UÈûbÅz¦ù…€› Ç^5vŒjª4 „W0h-ÎØŠ¨˜aÐÑ1~õêÎÏ#·•&À‡7@R}ô¼¥ï·ÕÐÿ±˜•ÿT{ +Àøò~ ò}ñc"ýÿ>ªÿ§V\DVVŽ|þ¢‹þâSt|ê=×ñ“S+Oýxå™}?¸øÞÉ÷.ž<žG àû¹DàÜÉGŠÿ‚ ´ïÖY¢u ú íWR¢ŒþÙƒôŸÞþSÇóÿf³£^Oào†ößUü—GüÓ×Ýû»ò{óøKðÿÙŽíP¶ïxæ¿ÏîøÏ;Ê‹ ø©è?ð§^./ž;aÚþÜŽç¶?·}Çßí%Ü/?pŠŠS1ðÿ€ºØ¤ïžA@Ov³Px(Àÿ-,üºþɧY€2Æ—]ù—ø¾%‘Ć žDe86ÓÅÚbDtFóR=!7æÿ ÄÍ&3§fJ”6Ã.Nt[‘9@õ¿ÑÔ`°7Œ˜8ño¤RäþŸ2ž9ÁšàâôƹwFöþ'*GLb=p8\Ðn{ëñ&ïÞ;= ðÿ"?uÛxÇ/*ºzõjÑÙïü≯â¿ÃùVçùó“*›ŠhÀ‚XØÉ¹€ÊDà&}*áéSqο${6e©vrk@ZW9¥MYXÑ.X—<ôÝçH²ìœv¼N £~/8€é¤$f¿Ýë•$€:'óR ΄̿êÕ0ÊÛ„.À*> ‘W«Z½›x +ÎÖV ó?ÆÿÐøŸA@«p(A€ÌÆÇg84þù@µØÿ'p ÕBÕ?vS©5¬H¸¯ÁæY?ª÷ ö þ8†Ò?îrÅW\ÇŽ»B+ǯ¬œ¼ròâ'/^t=uÒuüâñ7Ž».þø©ê»?xê"û¿Ÿ“r'wÝ©&ü,Åðõ[­««³Ô¶Sá߈úØùÿ þcù/F´Úoca£ÞL à•Ê®®JäÿtõÂØ{DÌìGÞ_>'ì¦?4ö{˶‹$€÷‹ õ‹‹¿_~`ûö—¼üì³Ï>÷Ü?m//WxyûßýõËåå﫱DPMÄQÏ=iêF# „›ÿ»®øÿd×µO@¿(ÿ•–÷5j&,ÿcccƒý¯·ü3›ÃáúpØXo2ëÍ%™úÎ?)¼–)¼vm—»d¹dWF"ôaÖX ú%!>¤~º+G3 û`"\Š#DŽÂpj„冽?m‚a,Ð…ÛèܺõÌ~&ÀÀ»_ô§¾ù /(:ûÓm_Sâ6Aþé󓳆ZÑ`]ì|@ ØkÿÖ=ªíòú¦ç¾@E¸¿ÉÏdÿÚŒmA *â +hú¸{ §äõdŒz‘HTÀëMÚí2æ“v:v¯} ü¹ÌçHüS.Ü -»Ío·W5ÚèÛl¨ÿ‡˜hxp¦B¬B@ÄggD KÌ„ð™;oô)€Y¨V6þ‰Ä[Úƒí-ñx<è xß_ü"þ\Ê 8ÒÿB.ªþÑX¹x|å=Âyºž¼xüøSÇw]ùÁ}>õƒ¿"ü§ç¼0'äNî<ªßx}-{ØP:@¥?êÛ ¸Wêÿºht# +bÀc„þþØ3àãyA÷óæ®úz¨ÿj˜z÷×ï?rä©ý"  wÇîüòÞòí»9î +@YYÙöí;àÈ?p åýû¦'MeÏýÓ³Ïnö¹gŸÝqàÕ/—¿z üåü—”18@ü@Mðÿ§¦òíLJ#àÏvýjsÂýk×®ýß Ýe€k +@ Ooüï"ÐF?/ÑÓÓ3800п@%8dÎÆrŸ°™ƒ ×-DÜbqÿ™ =¢Ÿ±xó¦õæ" ÆJŽ lê?]é®áÔÈQàû©ˆÑxn$2b„ @ ÿNá4ü9D€ˆ9mÃÛ^¼ @míäé/Ú»ÿhÁÿ Eÿå￳í+sJ.¼vúôä‚ÍY ÷bçÂB­Ò`ðW‰` OösIïôÌÓÂ|YVÂ‚ÖØ@¯ÍËD¨ÎWÕ.l<Îú8È3ë…Û€¹þ·Ëv;qƒÒ?öyé¡ìåL`^D彯æå `¨»—M€Ù€S°A@£©ª2\ðz«4¶FÍç²A€œ@@q:s50¢:DP$€ÏÜ +|·ß’]x·ÈŸª¡g5¿­®þBÿà?ðž_ý§è¶?ÅApsÅãϯ¬Ä}®côeÅõÆ•§ŽΟ|ê©‹ÇŸºèzê)×ÿ>yü©ÿàÏoü˜^ú+zõ¸+o*°/÷k:wrçáÿVýoÁJ?ŽßÃäíÏÖý8uPÿÙÿÿþ;Pÿþ»öÀ3ýÈìÝßÛ›Oåo‚ÿ°ûoÿÏ=[V,ªxÿŸýB~ºÛþòË~µýÿz;ÿü—Ã@Ÿ+§çê'Ñ 8 .~¿øDɉ?CùíÚ_dþ[ p×}àµ]‹»vaG€5º¨ÕÞ©£ÿˆººááa][¬-†Ь[ÜÊýÏ,–˜ÝËf*ý¯e + ÿ$ƒŸB?cñæ.ú7éã¼ °Þhª¬46¼Ê¨þê9î`€####„ÿŒŒ=õÃóÖÐ88jŒ° `øõ[ßûçÇ—ÔÖÖž¾w[_€ʹ IëN1 è™–dÕ<úÿîdϺ$ûeÕ‚SÚTP©Ä¨ Uý’l6½Týc}qú èøÛ ô%i¸¿ PÄÿ)ã~6€¼0úe«¥Òo;ðÚ±`U–ñ +×ÿðT‰@œüàüß} €8ãGÇÌÕ"‚ÿÏ"·ï*ðÏ^€Tõݾj*þ‘Ì«€RhP•_ý?ƒ¡ ÕýSÇ\üÅŸ!ÀÇâ+>WèùÑ×ó+W\TýCÿç¯\ÿûÇÇO'ðã©g\?¾øWŸzŠžB¸‘ûE;¹ó(ð¿õ"”ZÚ à‰X”8 ~.ýûû-ŠÿýÈJç8È~¥ž@}W¥¾^0hÿûw! +¤Œ8@YY¾º|§þàßüí;¶³¦Ïø`ïöçpž}n;ÁýßýõÿŸ½·nòN³e•+Eò­Ò‹ÚHVÌÈX`+’ª…P ãûÆ”&Ö&Ãk3Zv:(HD8Ev±U\"…­ÍõG¬±©¦ËåI3ÆãŒ&2MÅ|Œ«å;e×TÖ43ÝÝ¦é´ “š*‡Àž­}Îó{eÈGÏÞôôND?}Z2&¢º}Îó<ç9'0«WõÜc€š‹U¯²B,½ ZêVËèqˆ@Ù]@9á6 +ùÅ ªåíóTÏû·Íûëë{{7l8ZìÔ÷Žî¬¯?1:*–‰0Ðsä¾ÝØüÇqO4o¸yÞ €8@±0ðKzçgöGŠtyxhè–]sÞÎS€q-ÝØ˜›`ð +ðkaÒ†Ù€jûD\ WùLBA–˜ÿ2ºÌÐ ™Ð8±€ý*ÿa  @ôr.pÓ¡CÂö¯è¨à-wšÜ(6ÿj›~N5¢ww4¶Ô6A5ØÈ~ë„ Òxâ‰@üE€-¨öˆ 2ŽŸüWÀu›Hÿã€I^Äþ?a?F“©]›écS‡©äÏp»?S`&p8ƒÝhÿÇÒ(ÿ 3R.)åǤ)/Åt¯gãñ,~2ž}AÚ^5&ÐIy  äP:¥óÿ þ3Þ„Ý1Ìw`Ù`õ¬Å‹ÇÎe²ptKÇo6lx + @€ÿ½uuÿ³ Kh`ýoïóŽNª«%Щ²`àÊæ¿«ôV û×AÀÉà0zý++·¾ür•`_¥ïÑë÷ÿ$è±@@lÀ –`éÁÀìk`Ä!æIÿWˆe`ÌÝ pDÛÞØÞŽPQ*é}®j—ë¹úú§6¼EäØÑ¿éíí=÷Â)€Šÿ…ÈÁÕHˆÏ"º6pÞÁ?,ƒýÛ˜ ø}Õ\ù{úÜúx€ð_×K}p:? êS +Üàïté«î;åzì±þæã?¿~û~ÿ_Òï$a»}ø¿þàßüÍÿõÑ~óíGþ]e`CC÷†ì‡Ìv1` ¢´, ½ÚYÛ95ãÚåf\ó—\Û¿e€ù#ýwè¶¼Ì] ªü–!¤Í NhèsÔI’Åfø4ÑtgVÊà¿Â¸àÿy¶¿-µ +`Û_4…Jp]>€M<8ÎÉ;D$ Áÿjí¿ãs6ŠpÏ™3{ž8yõñgžùÅ“{~ÇàˆM¬ýáüÖÖÿ3 Hµ¥Ò›& ú¯¡ÜgýÝþC x˜ ÿ0±Ãræ?3yf._ƒØOÊÇÊçc’$KÙx>–Ì/IéªOuO'é¥iy:.Ë]U¥ßÕ¥S:øþ?áÿæM5›jÖc 6û 8†QJ}*ÿ×rῤ ƒ¸ÁFBN.ÿyÿ¯aÛ¶úmu~êuÕOW›^|Úô4Lÿž€NS Ó +ë_´þ+ôxÔ«,•ƒ5`HŒ¨ „ò•Í•Tüomî±èÖ€úÏ«×f¹°Æ 4ëDf ¼2Ð:¢Nì^,_Ïõ?¡y™¸,ò)[äÕÀ¢O"{8°ÇóR?1€:b½6ÒÇ;úá‰ÞÞ\xãÄýç0/xØèWΨѸPæ^˜0ºéç´'Œîˆ"ø÷!È? +`¿§¿¿›úXÀ]~Zÿ§]p„%@ÿÅ>zwà—x,^/w?VÐdªÿ%I7“gåél>‹K¯½·Ý”±H_ä§ãñLIP:¥ó‡>Ÿ^·Ù6¡°éU!8ÆÞ~Ç:ØßàØqùp Wü`€Mäÿaað,'pÀ¿Ï_·w¯ƒnÕ{÷>]ýôÞÎç;M{M¦N‹ÉT `»¢²hà~$b˜ è ù+››·ê½=•/þõ?Qé½û»àûhöÔ0þ_J$"êˆqe=°qqe÷ +!9C>ŽØ p•ƒ@ŸÇZÝ_Ý﫦û>_ŸÏU_?ÚÛKåèÚƒ þ0 +>;ê¯7"ú˜ã}ço¸'æÝÆ ü yЈ°ÿÇî¿Ë7ˆ!À6#}Ÿ«ßÝ_¿g€À_Šmö÷¿äáD ôúúxGð[žSÞ¯Çëõð¢-pêÔcƒ;ßúQÍOïûE§ßMÆÇyÿŸm€¾¸þgþÍ£o>úö¿»S¢Ýþ}ûðp0jGÀ¶³€.E1`0 cPã$v@…ý8<ÞÁî?ÂÁø5èpê Ð ò¨ÀÔÂe?ZªûÍTñ#p9Úu6AàÞÊ&€Øõ‡ÒJsKmÑü‡sÿ” ðìD›¨ü¹ÀÇÅ"À*ô›ÿò7À3|àtõñgÿ÷ü®’Á&¹ùäúäoÛ&k~k»Övm²frW:uÍ&’˜î’3‡ i™À?“.Ò…ºþ™®É1Lÿ÷½HÕÿŒ”ÌÆò±²1)†€n:™Œg—’rÕ¤.™”èU) p¤ôëºtJçzª®Óÿ›m¶¶Í›Aˆ¼ª4Ö;vô(БÊ|ÿt;†¾½vvã±Uµà† O¡ÐÀ¸u0Aÿ‡5@•ªÓòm•…×:-ÌØý_¥'P·ªÕ õ¬ Å¿¾[߬׳ УìoÞߣï!У×wìÏPõÓuͬɠ¦3ra=ZÿöÐÒÁÓÝÆVúEF ›±ßd­öT{,Võú=/¹±]®çê·õnØ@ŸeË– g1h€% ‘®í t7N4`â¿8qÃ8?ß>M€#70ðÖ#øƒ:W?ýL+ZáöûKxîyÓ‘€ûà +x‘×QððN)ñ.×íÜùñL4Úpø¶~]'À_½ýè£þìg?ú÷®ÿé|\ûçCØä)æÃaa +Xd¡pp|9Œ}?­ÖŽÀññ4l¼ü§²Î_ÀÿG,ÄÀ [V˜a!`ÆZ€ÓyȬբޚ—£ËûG1ã‡30£>+•Qzý?7;[œ‡›”Åô޵럠–¦up<ŽD@œ)þÏ|‰ +»ÿDøÏŽ€Ÿ|fÏžß1 _“mmGàü{}r² +ÿI¬\³¥'w¥®¥r]©\‡í‡rº«ËedàWGîùq.-' ùB!?CþœT ê?©“¤¥d>+éäXVŽIñä’TØ\•ÍÇb’¤ÓÅd9—S¥)@é”δþßnÛ º©W×Ö(R@ÌÐï`¡÷û}ȯыϲXàLEùß¾­Ýÿ:•þ¾:ÔÿOûö::;÷:L°ÿSuvZžï¬†ì¿Óbùv%Ç[¯WùÔ€ºu>¡î±VVêùßË/Sù@ÿ_Ìýõû±جÿ D€Dè²Fn@ë…•õ+ë/ìn5î&P¾H"»ÝD­þj%p<]m±ZéZmµz­0ë­®†Fï¥>ã ¿~ÛÎÞ ô‘~ÓK‡½÷ƆŒÆQÖú¡ô_pßàêÞ˜¸ÁÃô×Ïú]˜Ôúë\øú«ûû=.ã g`Ê €ö3À÷½Ä‘B§Oõ]ïÀÔ/Q¨<žSÿ±þ±o¿õñOïûȳßE‚Ëa» ·ßÿzà•GÞþÙ£þÙÛ—ÿúˆ7``? -Åð®%@(<.‚Í»–¿€ÿ7aøÏYAœ  ùˆ«³82Îy€æ –î´˜DN-ñ€hmS{0hŠŠ^?û)­€&áÀQΟ·ÔÖ¶üºhÐXÛHXï¬]·õ>7ðs€u<€ðÌ]íßçòïm àäã߃àäW€Iaû#:7PÝŸúAêÚ®Ék@ÿt*J¦‡®kTüwXò—ãÈŸ9z>FÀ_ˆþÇ0ü§k’îuRVÊëbÙé|v:©›Î¿¶TÈTå¥X€®‚K:€Ò)?lýÝvݦô6ó =Þð?v¬ãJþc|…âútwìC– n<Ëõ?/úÙ;{ëž®öušª;M" &ÀßVqõ¯ªì¬TÁûGïK‘ÖÝnõš ÿ+¡ÿk³½~·~æþ=•ÝÄôþÄ ³kè‚ €šàýÊ… ‰ÄîÝ+å+Tø£ìö#jµ#Áõ^ú»«M„þV Ýy,ÞÒçÒ»ßSMÕyýèS½7Ýø› ½çFwŽžýÇÑÑцQ£ö·¸€™ÿhcÂ8oœñù\H®÷øë‰@ Ä¿ät/”OàÇN 0@ àÀK .ÁúúúO¡@ `ŠÞ¢ÛݱA0F½ß©ÙtßÇýÎÀ;!»‚þ¸~<àGýþÛoÿÙÏùãè# ‡‡‡Â°`8,ZØËZ]ÒÚÃf Æ õ©ø“‚a ÑöWDfÅôߌàYuò€þÙ c`sˆ ŸªþÚúö&‘ü#¢~›Zî½k zâlQL€jkÍ€lý‹Í^`ý?Š‹÷TÿÏ~©Pô¤süñ“O^½zü+ÀÛäfÑø­m2õ)ÝàX³k²&U“«™´ø§lé®®UüÀÿø¡íÿôtKŽÅóĤ¸„ñ2™•$)öÿÄ’Ùl~:›Çt1éµ|áÿHéòÉX,–Ñe¥¸œ”å’!`é”ÎÿW›m¶M›6oÚ\T0@ï¿x>„Dð؇ô +à ž + €º ÿÏ@t¿·³º³úéê§é®Ó¤"î´X-*ÎDõÿmDÿñҿѽèn5t#®[A¨ôïQýD¯ÞSíOçån}OÀÛ¼/q '¸pÀ÷…Vub¥Õ¸Û½%«(üÕ†«‰DO›¬Ö€ßB‡î<ÖVhÎC¢Wïéw¹êˆlØð›Ž£0<üÇ ½£8 goÑúŸ¸Ñ€¹¿ñ†Û˜˜¿aD&`„'£0ð‚>ÏÙ²²ÅëÐÿ[„þÞùQáÿ18uñb†}}D¦¼¸À¸ÏÕçzì±Þ?~€GæåaôþþßúàÖ#?úÙÛ>úÇ¡F·¿þ~xhh¼–À0(€½ÈÄB`0ƒÀÐ2æÁe»0 ø.‡Þ\~sÕ@£)¶ÿ5‰i@(-€i--ZšåPˆ9jv†–©ÞÇÜßé“ÿâÀ]ü¶4*ô/ÀF¡XWÛ²ûÿ;pkiª `]­Ø8³cÇÿú9£0€Çÿê™Ç¯^ýj0™²mš„Ào'ÛRŸùmª-5ÙõÛ¶k é]òdNFÿ?>\èBÀŸ<—¤’ Íÿ±B~wòÉ18ÿ͈²1I_ÊN¿°`|šêþ%]òOo>¥ÃS¤ËÄ` +Ü‘*ýÚ.ÒùCá¿mûº)@Àª}lð€ÿõbð¯|µ¯sð6n´cðïÛ[mÚ‹9•ÿt«îìì´ÂHeé´0 ÐWêb{=῵¢™ÕÿÍ ö[¹°ü73ü£#Ðͼ À]b†Kjõ}ÄÀ<€€_  zþjƒÚ@Cçó*¸Zð×þ„þºY­¨þ9·à\WG€³hôöŽîím8KÅ¿0ý½1á¦Ë¦ts»çç#~—Ãïø ÷ëú þýõõƒÈôËÝ7FÐÛàhÀÂô×åy % ë"¼Xp@‘ 7 o­½ÿ­0ÿí¡á÷é€ }ðÞíW~ôæ›þÇZ‡44ôŽÓŽö¿8¢GŸ =¨1kµšàåaa ÀÁTч8$ƒq€øØ0›±0`vBð_óÿPKHŠÖj˜   Áö?„ÿ-Î(|}¢bp—@€ @xIÛ‰Øáþƒüu;¢M +—;NŸù2æŸ}€ÓŸ#Ç¿·çÉ='¿’\Ÿ´¥&mm“mGj&'SDj þË]³Õ¤¯¥R©Ž\W*•»Ö‘Îä2TòwQñŸ+âD +scsô0“—ósñ¼4—ÏæÑÈÆ â‰d³±˜îµ8€ÓºXv)›©º©“’±˜KcJP P².Òùœ›×©þ¿nÃ@0€6Û&Ûæ6Ì^Ý´ö.@­Ï›LjlÁ ÇIJÀ±£¢°¡A¼Ž€o¯ioõ^ßÓ&“©Óô4(Á¯ +:“ÇÒéUy-zS„à?Ñ +ý~k€jÿ—_®$Rм•]+›+ÐÐo}y+·nmÖ€°=žÙ5ÿµŽÔ«/´Àu„oÖªM*ïZèâ…ß°Éjaø÷°0(ž>Ÿk°®~Û† hf üïX8;1AàèoÀNÁÄ¢{bÁ½àvßðG|ý>ŸÃ…!{RýïÀ\®Qd.”û!ð'ø l't·(¦¿<è?u±ïb_ß@ßÀ¶è;ûúú^z¬þ­·ä-"·‡¨þbüúZ?ôòþhøCûgC§Ý><ŒX‘øÏà ,€ˆ @ +°,Úˆ Ä †4E‚‚ÌæóA­64›9y°Å¬Õhœt'`Àš 1ƒ(´‡œœï£ „' 2 €]08¸Vñæ#Xý¯ÝÝ?e€«°<ýåÁ?œ€NŸ.¾qæÌ:ÑxüDſ˧›'m6*û'!ÿß…@Šj¢¹ÉÜáâרõ ¼PÈ’3Ét.¹O.dd©Ç…Šÿ ]Ò€pO¦ãÙצãº×¦1øm)¿ýææl29Åé…üLaŸÜ1YúÝ]:¥óo=Ÿ^?‚âÿú‘íÛW)À*¨ÙT°7À1ÞX+ÌDhv7¬î¢°·šÀ¯£ÚD,ëØÿWA`E@¥'H¨u¤Õ]^¾¸¾Õ¢¯¬höêõŒü[á Ì9@ÄPþëÒtÛOÏz³³êbtá†?15œ ПžtªTßÖÓ @Õ‡vZ­Öêj+e@ ê‰ +øx +лá7G³aCï?n9»‘Áˆ šhX\ äŸp/´/ºçý#ý«uÀSÝï«S¦ƒ X,;Q^N,a¾Ïã½x`` +?ŸÍþèo;PÝç¡Ê¿Ïà ÀsÑãù–Ç‹êÿÊ>Þ °ñã¶¶ð·N³€…|]þ#í#ãö_Ùÿ2D l¾Àb€jÿñ0®¬Ôb°¼¬‡M07Bï + 1‹@ç!&dÇ ÓìÄî_(Ê€¡™Š¬š£-3—ýÑ–ZøÁû§eU(–k£ÎÞöGîo“P6Òõ8ôúk9«;v4Þ£øÒ@ñ<½ãÞÀÉ'ÿáäÕãßÛó‹“{žyö+Z‡è¤l¿´ÕLNæŽØ®­M¥'s»R»R©µ©TZî€á?Ò~3)Nû‰'ã™ê÷üÜX^*Œ’/‚¨øeeÔþhñÓUš~MG ;{MŠÅâx*WUÅuI:ÒòI8—z¥S:ÿvü·ÙŽPù¿]h‹g³ S€Í5Å_EàCÖà;ºáž |_wøêö:|¸ú|DV“Ïgé4aÏãzÁÀmúV¬í­8Pù£î¯¼‚)„€[›Í\ú7w7ëÑ +°ÎöÐÁR¡¿>Ðc¸¤ž½4«nU·ö\öÓÝ¥5¼`xžÀåþoWª*¿6ýµzL°`b W¨XÙ¬g€@Jù ž=zîÜÙ…s爜En 8l(81?ï÷Yû­^/ý _¿ßemõ»¨ú¬¯÷û„"'Àî÷Àk è/²pFp¿ë”«ï¢ç"]=ØðNM]±ð˜:ð­¾S®çê{¿óóßš1‚ +àë€?®4ò»ýûáa»ò. ûÿ¼ +¤'ö0gÑš ‚ÿð ) „´àÐÝAö íí:ðÆk:y€ó-‡ÀœÑZ TYÿGØÓËàì ÜTŒB2@cc“³Qôvì­€˜ýþEÀ™gNÕ 7D, ÏŽ_E àÉgN~E à&ýž òÓ$F¹IÛoS5èù§R“»ºÒé\ª‹MÿS™ôXF.¤©ü/Èɹ$°0&å3XýŸ‘PþÐû§kþb±^›–²¯Å¦—þ:6‹åÿú5)Sõ)\’œ +/ÌŒö¥?-ýþ.Òù·œ[û¯ð‰ °}û*hƒ/à=M®ü¹ðáZ±ðj͇X€ Š 7ê|Ž:Gõ^‡ÃÔYíÃÀg"Ìçæ*“)Bð?¢N¸±´oT齕úf}3€˜4ëùysw·¾ÛÛCïí!ì‡@ ¾4b¸4‚F¿—5³—Ô#†5k ƒaM ªýÂp¨rµð¼•þf81¯ÅãõX,œÚ‡ãs ºê{Ïž=wðè¿pöœ‚ü "S루ÿèXû}~}ûü6?²©ü={âÄáÿ‚{a„(…·ïÔ€×ë]5øúú=ûû Ð À+¦LMAðØcíüøpÀüÑÏÿßÿ=Fäc$¬µ…›Ø ˜Ã¡ÿ£;¨þµËTû‡©äÇ+ËAÁàø¿ À@óŽ2P\€ÌšCæCš -gÔ© ™ƒ t:ÍA  mBB ú£Š°eu PtÄKQöX½ þÞÚÁ&€ëv íÍ€F1 Øqš#¹ÒÿÂàîfdÇOž¼zþ'ÿêñã_ñb›üOÖL^›œÜeûÕµÔµ\ ]ôwåèt¤º2©ŽÃrºp¸—3Äòt/ò…¤,KÉ9IšKæ TÑ£®—b:tòº¬.×-I1BýéØkº˜4Ì.-åmUÛãR2ùtžH‚œ¯•@é”ÎïnRù¤ÍÖÆ€/öŽl/î` +À΀›6­ÅåÕ»mq6Õ pììÆ³Î* äÔÕ9öú÷:ª¾jB~ÌÿÕ*“¯ÓÚiòtZ,Ï"‰„ÃQËËËÊVÿõbÿˆÿ2 Yö*@hßèîÑo¥›Wß-‰ÌzfÿóêÙK¼ ˆòßH¨×ô•ú +U¥~?› Ós½JÕÊj ?;Xx$€«¶ðNlA>0Uÿg‰ ,”Áø„’ˆàQ‡ÏêwßÀ€Ç52âqÀ `Û Ýû”äàʼnE#¾‹¾‡ +|Xýx¦à÷sÀÒgŰáTÿ)ÂXø%ýý¼0uà[ú\/¹vîÜøñƒkìüÛ¿bùÿÐýGnÚíh‡‡Æ›ÂbüÏn€÷èø‹’kÚàxP + ÛC¡åЛ(ÿ5tÿ&žj˜|D°¿  4õhA´ôïhœæ–CiPæ7—D* 8ÅD€¨S‰fôg çµÔbößHO±ý/,Ð=€u¿C(àÿÙg÷ˆUÀ«XüÅ_ÿ*;@üš@øÏdMM*—º^“ƒpn2½+ƒp.“FâOGŠTþÇãYžÉ¿ˆÿÂÿä¥9—òJ÷?+e±_ŠMK(ÿ—èI,žm)›Ü^u$›Næó’,½˜Ç2ÁášOKÛ€¥S:¿ûÿ:•þ¶Wl¯´]o;"Ðß&¤Û…`÷^%€Àþ««øO!äÀøø_÷׿îwÔùý޽>¢t×YM ÀŠ-üN`‹éiu˜p@­'<{ „ÿ^Ìü›Q÷#VÀ[ñ…Š‹ýn}wEw7½Ú­¯D?@Î0þWsߟOÀ¸ 6ôâWVèüßf¯ÁŠJ•º]¥ +€Xña PéoñX¨”·¢0¼ö!ßgaÕ?zºPVÌœ¸á^0º#!8]\~‚xŸÏ57 Ñ†³'@þ/,Òf +Spúã*_´¼¬ðøú<ý}/ö]÷`àx´ó­·Ž=°€ îÁ?z¸3t}*{ @sˆwy0¬Øÿ ð׆ÐÀ3†ÿbT0Œ` ¤ ² ï?§æ|ô€ÁP“3ØâD`Ð5Çé)q€¦(œ‡` +þ"ò+ÖÔ£€š”Q@#¯¬[×S Æ}nü¯ Ôÿ˜(b¿g•rÿôéÏSÈ÷ÀðøÉ“?ùä“'¿bàˆmÒ–ª¹–jû-ÿ]¿êº–Û•#PCøß‘–ÑÓÆ~l&çäB2^ˆØ7&Ir>ŸOÂû/N7hý¤l,–Õň,ˆ%³¯é ˜Ž%‰¼¦“·W¥t3Édl†hÃØÌýØ}ò®kmGJ}€Ò)ß·p½ín´}rWp½Ø€àn FÑÔ¬}µæUÆÿµG"'à,l€Ÿ"üoß V@>A:M>ªý;}&K§Éj1Q•n4FÔ‡#±X×>‡Š§ÿxõ•J0à+Ä~ªŸè¢ïÑwoí®ìúc@Ø?K7µúÒì%~2kÌ®1´^PöïGºpD„Ð +B¨wì× PéŸW™¬ªN"«JåµX½èô[­>WâÆÄ ãĉ†‰³DüãZ¦Àÿ‚›'‹ÆvcÂïs´ÏGÿ Çûë\þù…&œ`p‚§#ðøW"¦ (Ù¿ž>1o8uÊ3pñ”k~é¡÷08àé{é?>G æ¼Cèvû}L†ß‡à>K=¼¶?¢n +…íㄵˆûþ ÔÚ™= à¼ +5l +ôŽÂ@ˆ`Úƒ½¹‰ðŸ‚-šà¸&êDD LZ¢!3z8ÑôÞ» fÐÀ=± +¸ƒ—ÿkyíCà>q…(èÏÅþ'«f@{Ä. ö|… +€Š†ÔäoÛR5©¤Réë“»ºR×:€û¹.îäø;ä9y.O&©€/̈*^ÊçÊCÓ÷NÊcð¯ã&@7)öZr:Kåì¯uqÝôt2öÐkºLÕÍœŽ~öçòs3sp8,?•+e”Néü^ç4€m¶¶¶OŽä·}"à_1lc- rÄV  kÙ$à(<‚~ƒ@ö††mõÛ h‡Àá ø÷ùª« ÿ«M¦çÿ{ c«1AðoPGÊÛ­*ý˜Xظ‚›Í¼ðЋ…?D ùßÃûÿ³Ó¬úwþ=ì0"­.¨õû+è'UTVT0À¸€°¿Âd@ ²þýáñãAbZáˆÒ_«<ǃ¡qz+¨€??a@Ä'ȹE=â€5NsPжhœ‡¢¡PKJ€(¼͈fm`”M ŒýÀ(šýÑâ3z3?ûy1@D(=Åú·‘€¼ +¸c‡XÜQÌ|VÀÿÝFÀ=øÿì= àÉ_ìùŠMÀëHÿ[;™š¼¶ë€T.wmm:… t.“É¥eº“ ™t² gò9/c YÈˇå|áìü¡ÝŸ1]×¼n ^@±¥,Z:)&Çå|vIÊTUÉ1ä"2pŸôâÜØS€Ž(Òù=›×ç™ú+ÕÿvÅØöÏôê¦b`Õ°†ž  -G7te4ê_÷¿Nðïw8ü°€ + JOµÉjr$n¬ìêvêVÜ>TÿªJ/¯ýQÝïÅËÝXöÿI GÕãÕ÷X{ô˜ûþÏ΢ãýµzv–í‰\ð_¹uÅ~bô#`3¤R­<­Úo0éU^•*`R'é¯5¶F耞¬“Ç狌DF£{>â÷Gæ1àê_ ÿA!\Åv·‘þ¨O±öZ]Æ ÷Ä…²UPšp¢,“¬Ny@¦x% ÿEH2tË ðô¹êw¾µñÁ-kµÃÃï¿?D@ ¾ßz—ÇÃá`“VÙ€ñâ5dÇ2 }|ð†7°˜híD}ˆ,ƒÅ1Àr†@ï8Qéõ¡`1`ÈÉaôb(¬iy¾AbÄßb&"`F;Ày×HoÖ¬îþ³! ²p-OÖ! xÖy ê:§üÇYEü{¼E_`BÏ\ý/ÏìÙóeÀ§ü·ý K¥mGvåˆtäÿ‹ù&“–÷¨þK¦ócTÿø'3x +R<)ÅóÒ lÄû14²(ÿ‰ÄâKº¤N·›Î/-MÇãô½KKùLÕ§ÌòR6-ågÆÆfæÆÆ +‡ŸJ—<J§t~?°ÚD@iPfm›ÛÚV› +ú£þßTüï8zv o6 È¿ Î8uuXðÕÕøªSµÕI¸ÝnTÿjâ¼ü×éUQ¡N€»ÐTr0ìU=T¾Ã +¸{÷/YõïßK†‘K#˜ý€×.´ªþ·bØ¿__A B_¡TîWÊËZ­•Cd=‡­¸­HrGV>&ÄAøŸ øDæÛ< pðà'Îa à €]Ù$øwŸñù«×ꉴÛ'ŒeJñ¯tÿ}ýPþa¼?« ¼ð¤;‹õ€²€_²ð"2úÙpàkz¿SsýA%m˼84L—Ûï½ß}0û߇¿¶t>LPÏ"¥À·p0¶µaí8Ɖ,+i"2P\9'Ê? †üNM0ä$ 7Ga D•¿³‰jýq¢ÑhPK÷DZ8€Ë~s‹“ƒ!`“ðršØspm“PÔ®vxÐ(ÎŽu«è¿ãÌin0úÿSqñOtž¸ûàbW’ðÿä— Àä&Ûo°vr×"äÏþïÂò_—ÿt•©è— É &þTîÇg +(ú !þ@Âÿ¼.&±€A a0ŸÎ'ãÒRv®«ª*žÏ'gf +û^æòss3csÄ0§S·J¿ÊK§t~¯C à€ÿ+mJ/ƒýÑh[Õ ÿë‡ÐS$€P6À¨Ý¿­îu,€8ê|>Ì|{‰XÈèA,Á­»¼¼¬ÜhÒëõä…€»hÿ{-=**úõýhýë÷ÿ„ãÿfg¡ôWF.\iUϨü70PÏê»é'TTn­àvZþ¯YXsa}9 Öã/\Ü” Ýî…Åò²EƒÕdÁ À1###Ž‘H¢Ý8ÏQ? /(6Å  a”pÞmtÏ;|>“/áöÑqDèfTj~œ……E)ÀB†‹2@ÏÔÔ”wà +À߃ÍC! ªÿ@¿ç”§¿¿ÏÓïBÀÔ¾>Ïc®;¿óàv~þó¦˜Ý ¸sû~Ò¹}&öCf±˜g Zô”°>Œù?уp0,ô<Ð*ŠÀ ‹´AùP0¨9Ò8iXï‡Åÿ&ç2fýN0Ì4ãËQ"šhS‹Ù­m¢»¦&ó=À–Ú–hÓºŸG[Ì?þóÀÙÒˆü?"بeû¿ub°q‡²Àî<‹Ùÿ³OìùÒ Èö( àê3O^ý««_ü±±ð]©KÛvþÃûŠÿ´Ü‘‘Ór:>`I–3…|œ8@ÿÂC’œÃà°|ø‡%)`é”Îïwî\oc `[ÿ +ð mÿÜVTÖúLð_S³:`øgü-€»‡Kp€jŸÉáv/ËgL'‘ËV ¬üS^[*+-^á#¬,Ö€J¯ +ôÝžý=úžžõ—¨ðoU‹â?0@ `P¬=Íû£ñO`k¥^U¡Réõ*•ÁÑŠ¾-î.w¯$VÜ‹ýe à ‰a>‘‘„1Qžü7èr¢ö?7Ѱm”>Ò¼?BŸ‹Gn£?1øúSÀQö—­JýÐ `Ü?5à¸B €ÿ¼ž)°/TÿD úúûO¹Nõ +àø–§ï¥SÏíìýøÁíü¼ñ¿-# `hèÖíÏÞzÿ³ûï“Ùí~Ä®=ä(@mq@錾ó—ôfh\$ˆ7¹ °z“µ€æ4NgH«…Mÿ(4p$ði‚ˆ ¤‡ ì~Í\ô;é}³Y¢EŨŠÔçú¿iu$ º<®@w{ëŠ àô½õþ³_"{èzàñgüê™/€ÉT +Ö¹t×®ôdÖÿ©þOwÀû—®²\ˆg’°û“ó„üô$O&å$[b9ŸîäþétÊ €¿Ö%cÉé¤.“âÓÙl,]VšËUÝì" ÈK“c…ÃD0ö†Ý`‰”Néüš€†|›b Àœ¥À¥ į*éG·À¨hذ­¾}â€Ù È_ísU×U›|>4ÿ˜´©ú/#Lލ,z•Å +@õ¿E_‰e½€Õª·èõV+a;äÿ•zÞö  ögÇŸ”þté[ú{ÄÊ@óV"„ÿDèqÀ°B¨Ú_ÀÿÊîVúø¦ËÙÒg‘ûóú¡˜Ð…*|÷ÄâãüèèÄY¸œÛB¼fN¿þüº@Ù@…ÄgˆøPDŒø4'Š¥¿r&\®~6Ãñ§®x¡ô{ùx¦,ˆÿ ð¿èëãH"±øšVýyí0–Ðÿ~ehèþ¼wÓþ~8þ¨I2¼ 0.!TþáñÖ>¬Õhï2­’ŒM§F +……´0ý .# +Àtb`Ö͵fg ÃvADÌ-ôQ™ðÝ|(Ê>@Ü€< ÅI0SÀ¨˜4‰LÀb4P#Ov(!ŠP<±CÁøg÷(Ðú‹-€g÷<ñO«-€“_R\gëÿÔµ®Ô ù»RBûŸÆþ?j~0€d!9—óÉ ÕûÉïÆ%ªÝ ØûÏËy)žGp6›gu<°H$ )½&Ç_‹É±¥˜..ë²:y:ÉS]²«êæöxžå¶Bö¡ÔÜØŸ@ ˜>üŸr»&|úé{%k€Ò)¯ß`ó¿6Ñüo+^þÙ†€hÔÔ¬­¡Úÿž}Àc[:¶e€§¨PÞ†+þçêüWZåTÿGÜB<©Ý"ðBÂBh²ªôÀ~•—½kµJoéÑ«z¬TÞ«=hô¬!ìðO´ûÁf ôrëJk ÙÁ8ÍTþWªMÖÖ„ú‚[A~`?÷î•Ýî7OÄ)_`øg>ÁgÞHW·û†1áŸoDpï(}ªQ”ÿlöïð˜o÷û Õ °0±¸X&ZwFë\ý¾~–ü #À+SH¸Ò &€¥ð€© ¾ïØÜôÒcõÿë[ÜÀ²†ù ¿?tç½Û÷ág#øÄ>~þSÈ'sô†ü”MBó—×eYCÚ_L—…)P,›†úŸè@2>MÀŸÆa6+I¹í7«äX,™™¤.Éi0€?Ù—.>|XÞ'Ë¹Ôæ’5@é”Î×n´)«Š°ÀÑÿ'ðaÍ&îþ+ÛǶ=ºAQŽŠÀ6±PüwA èž`øú/¢ýî†Éà±è-DT•–ÊÊj“^ï XUVUÀà ôXÅŸ¦þT¢'DÛö’á’aöR@­n½°’èéÖC/Èî*?}ÇÊúrå” ðçû•õëÝûËEõ¿È‚¾rºpÀØšˆÐ¥•É@d~Ä??ès¹ëG7ô‚Œ6ŒÖ‹´?¸§ÂßÝž °XäEô/{xa¢aÛ~× "ï€+€Þb +à½B ’h€eŠ3‚ú« àBY€§\Ï¡pýöýþ?¥‡~Gû|||høýaؼÏóÿÏîÇ÷Hø‘°]{>:ÎÕ?a?6¹Ú£!¯ÚaÌ-e]p<ˆµ€PÐ>®Ñhèi(¤Ñj¢Î VÒ8ø„ñµèhœ-Q³“XYú¿kfÆX@¨¬")ˆ‹ÿÚ¢10wÌ¡ÚÖ``ï0رj ¤=û…åÿ§ï†ãk¡8yuÏ“Ï<þ_‰Ôä®QíŸÎN¥ewÿ3iîþâñ=ÄòÿIùLL’3É.z5.%3r.Àsº|VZÊgy@ð- àÉX6–”uy]r:®[Šav Åñòæ›77Çä\±ÂùÔ t?×O€Â¾Âá}àr¦´X:¥óõr hã¾?îþyºÿEÀ‡Ü`_àv½^e èW©z,“ÁÚc5øÖf#†„Z„ýò¶¤€õªç[Ø,óõÖÖõ+÷}yQøW¶~±ø¤|µ léçö hñÍZ­³¼è±zˆ¸>¬Ý&z £ít#Lo7Òµ}Þhôû¬>GÂÝà¢Ñ¸À?T4ÎŽÎo›oh¸Aßò¦úún¦•ܸâ½Bÿg%K< 3× ºœ:E [*xŸ0å?¡¡Ûïݱß— àïÃ?n$ؤA0†9 P±Â> a<ºábý;®ÿƒõ…ÂÚ ,ƒ!X‡œË°ÿ5k¢æÚ(2ð2üéœbà¤k [ ìo‰*Û€JéE Hø—£Â€à¿©±qݯOîp<кE?àÓŸzVØŸw8ÿ$:ÿeÏ“O^ýò*à‘.$¤;ˆȹT†@ŽÕhÿücI ÿóº|! Û_Âæx!ž‹g’°”°0—•^€þŸçÿ±<ü€’±i¡ýUÿDt9©Ëê¦á$IY]ž›ÉéX¾ §wI/¤;^$ !!àu´âòdI P:¥óû4Äô_Èÿ6)&?%àÿ¸†76Õ?€c[ˆtœíØð”ðê%ø' +ðF~_àÁ힘ps˜žÃäü3@Œ“Ãá XTV«i–˜8À,›úsç ûõ¥Ù5ÖýÔ»/¬_Q«º·¢ô¯lÖZWV«ý{ +þõôdeeåsÅ¿ÒàR½¬hê‡ê}qÁp0òÓÏà3ô¸è!P®¯mذáìÙ £ó £7Œ Fc»±¡‹~cÂØžHDÐÚ¸ÛhhØ6Jß9êŸÿ ßçê‡ãP€ë<ó\ñVò³+àÞ¾>\\}=Ø8 ¿àa>vûðÐ}ùñìoÿ¾}\{Ž€„òm +€!@AAÖðJ bˆBô2`?È\À *SÀPP« :›ÌËšh-¡»& +ìo½‹o E¡€#`±p3`½S„DáE,P1 ¨1Úâ4× +mKY ˆe@ŽD*°ÐžÙñÄÊ(àôébéO;è¢|q†Í¯ž¼úø3{¾ÂðÓ®\zWG:½«@À?™î`õA†åRÎO'ó¢ H±‚Ì:)/Kñ|Rξ–ÌÊY‰Êý,ü0˜–`ö?ýãd^ŽOgu,ˆÅ ”âôGÐ8н åÓ64¦cI¹ãpAÊ=47÷bþ‡D0 + »l%%@é”ÎïÓ@`Ó&Qÿ·ýQÿøk0©@ÇX°6€Œÿ ŒÿìTç¯Û¶@¶Ûmð¿h4ѱtz,`V¯Àç0¬‹É`š xVŸzÖ Dj5—ÿÖüsï?raý…x#0¸Ò´ûn©·á¯p€•"ö¯WÞ¿Û÷?!îøaaÂí†LV«wóßÀ€ç¢µ_¨Îò™˜06LÐý„‘X€Ñõè±9 „ Ê.àà ôM ££í£þÿá`%`¬Z÷ÐíJeq +ÐÿÒ©ÁÁÁçˆ ºNzl°þëþ`€!Ôþ·‡ý‡ìð¢/î Û‡ïËÏ7nÿ{BüPT)ýí@~»’È®@vÆÃ«+€ÅÄ ññP#üèNÃ9AflÍÚ¨³Öln!„‡Q0¼€‰Œ‡4A3 ēè=M€bH°ˆš@áhÆt€C‚”l@ÿµŒþŠ#P£ˆ<#À¿(Q@ +äŸ>}æô N ÀÕ«ïyû_$©®46ÿvN§§2étëÿr¡Û_ªÙÿ„Ú:Èdz¦“cr&O` õ{A¦72ù%ÛÄè6›†ò/–ÔÅ ûŸŽÇ“ ñxL'q ™œƒa`¡«ªj{ršX„\˜+d³ù‹…±™™ä¾™™B .Ë9Ûï#´åJ8P:ßä&€*g“`ÿM«rÀÕ@ÇÙ§@zz7! €úºÑ‰² @ÿ[üó-Q¼z/á>þ&BƒÏgål?Œý êÜ‚ÙíO¯qMìn ð7o­Øºµr«š}™‚òåÅ¿òõ++»Ñú¿Û(+^Ê­§û²1QD=¯6[çç#VëÀ€÷—O¿Ô8ÚÐpîì9Fÿ‰‰‡'Œhÿ;ÚÆc¢›ƒXo\\(/c·`üÌ ?± ÿÈH݈ ktµNy¼Ü÷×+J<à—,ÞúTÿõ|;õÁcíì}P;ïq+€DDçþlØ/Û ñ…ÂvúaÑPÆv^s€0œ°¨U– Ï‘8®!øNŽ 4!j;Íš&'½fÖhï¢7àÔŒ;Í!Bþ"'ÀiVúÿ-Åt@Ñõo*¦ÔÖjÁr Xhlªý5Ô€ÐÂH™4®»k (löð<ýÄŽ'ˆ(~Á§ÏI8ùÇ¿ú8Z_ŽJA€s8WÈudвLú ëó<ÈÇ¥X!C_JDr’”,z³¯RÊbcÿ<b˜HÓ„û: ?–×MËñL¸ÿðDƒûanþ/ø}>ßÞêNO§µÚÚiA +ŸÅ^Úî&ŸcDÐÿB}Z XþÍŠòß`ð©Õ#=¢ô¯¤»æ­»Ë¾Xó+ÍþÝ»WÖ¯¿g°ìóíÿ²ò·±Õ=Aÿm «Üî ´(èEzy±¼lÅCÀêuß $¿rþÜÂ9nà÷ íí¼ÏР,5N,.*òB: ô Fªþý>×àû±ÀaÀ^½…Wý¯@ p¥òŠõÀ”ÕBà`ÿàsƒ;]®ÇwîüÎwjîSÓ/€a.ýþ¹÷o/€ðýøùnÛ/?¾¼|hœ>JØÎÕ‘À lç•<#p<„l 0/`J Õ5"X€ÆÀš6 €úßE*@(+@zK;Nüà]¤öÀõ- +àS[tlZµŽ:[¢ÊFίÙX¸ À† øàÿYeÐOàÌŽÓgîšìØqfݺ«Ç¯üñ¿âÀ— f*ûÓòáôŸägÒÀþ´(ýãùX>™‰åcq ?lÿ’rŠ0<‡±@¼ Ëèòº.xIyôÿ‰` +@&Éè/ËÄä8Ò‚¹@<`š' +L +¹íUÛ»¦¥<Â¥üŒô‚ôb~Œþ¦×“ùדcIˆ3™®.Ûõ¯¡ø4'Ëû +%(oìùôú'Š +ÐÖ¶:ໟrý¯„À¨ƒ]0hØÐËf@”çÊN”0…ÖÎïðíuìõùL&Õc­öîYMÖY“¡ŸÀßG>*þyݤuw">ÀšÙ5=èüz(þ++¹÷¥ÿ@ÙçDÊÖÿúº(‚À{¨Á½õ¹šhF‚8 lýŠyÀb6aO RüðdÑ=OçþçÐ8{–Àâ,øî ´ j„³ñâݾÂâÄ ¢l4ârð»|>Œ¼«GEþOUr+àŠ^ƒ ÖÓÜYü@5bêÏÖÿƒ p_.=^_Ò(4Fèí¼ À#ñpã‚ÃÃö0¸¨ÏAA"ôކmAøjF³¿) +*€´Ÿhè]ˆ4°ÔÙ8ØÌAÎwá « C-EФ„Àˆ{-ÑÆZ'["?˜W› øµÒXǦ€wáý … übÇjí_´ ÆãÉãÇ ÿÿÞ_}U àH&y*}8™#ëå\w¦“ºdIù’'Ж%ªËcy9™Éä$9›YÊÄѲ±l !@1&14ˆÈÜø§{z!‰a€+Aô’y( +©ª*½[ˆ%çf$IÒL!žßGøÿz’73]¹®Éªÿá_~m2– J0P:ßÜSu„Ý ØTœ9`¯ÖˆÀQl*`Û¶úm /p†.UÚŒ/´;°èB0pµÉÚI ÓD¥?*ªý#Œþ#†Uýó­­ µúÿV CÀÚݬǦs¯û³ÝÏÖf½Xó_5ú+_\áÐqå‹=E" ,ÊWÝt[`½ÞœÛ³¸à6ÒK‹Å5Á²ò…òEãÈü¼Ñ}ã1€³çpøŸ(;;!&„þ¸–Ýs1N€SÀèèˆßïóùG}ýtñô{ yœË&W*y&à½bõxúyå`p´¾~gýàc;w¾ýÖÇþàuú+$@<‹€ÀÌût +pù²}x<ªµÛïRúDb-pؾÌ^@‚` ¨¨ˆPñi€@~-Z̆C@óÕÿÂý ØBA-ÜXŒ¾‹.€SX´sjk£MÌЈšµMè°3`S#ü€ˆ¬«€Âhuð4¯þ³p‡¨þ‹`]1;àÿŸWZ_tñÞ:÷ÃBz_N>,`˜„õ²€-€xRÎÇ󒜧‡Œ$Ñ—$I`u`LÊsý/Iœþ0Íž@ÓÜ€%0zôtš~Š.—§ó¼E¨“ Ø\µ9#ðwà<‚^Ì +3øÙcñ¸œÎd¾ÛÕ•ú¡ÕŸVMNb…áðXA+¡@é|sÏ#w…Ê(€¯m÷ÆnYËA<ØÐ@÷ ?ÌŠø…‡^`±Ý‚£ÎX ½œ 䱨6U|>UþF„ëŽøÔ6ãkMD †YÄûª ðÒ7oín&P »Ÿæ­LVŠ#Ѹ°ra}ùú•ÅUð_¿þ "Åüw÷"C=a?]Þ`’² ¿¬|çâ"týnã ÷‰Ñÿ8qNœç&¸u0Q€[¬5¬·1ÏÃñŒøü¸\ Ø0``å¡ö㎾ÖÓÖ‹žÁÁÁúуtÁõ­±0$ßn.6øÆÍqºÞ‘>Âåá¡`Ó8=±3ôƒË ÛÙ‹"(úúˆÄØ%`œó8(Èj@ˆ5Áp($~„ó.2ƒâ{4!B|3{0è8PtµNlà«Z³BˆÞ@-+Å𿘠°ê\Ä>;0ò¿Ûhø¿îøñ¦ÇÏ?þ½óßûRŸøÂ¿Åf¤þ>\8<'ráLp\ˆÇ%9FÅ}L~X‡])›Ï$ ÁeÂðå|Šnº¤ŽÞ[b 8ëÿq§Cá?Óéä8ý äÅY õ?a}¼Ì‚TUm—a"0“œ™Èë^ üŸ£ï˜™Á —éêúÓÿk ›G&'»`i §©þ—çæJ  t¾ÁçÖuÛ+l +ÐÖö ÁÿO7Ý# T4€k×ëØ¸q·ämO;·P´Ã]X`ƒü2¿Ïï¯sÔ¹ÿ>Ÿ§ÚÔYMe¿/Ÿhw¨GFj(éóÜPûX +¨èõ üúf=]›+õ&¢ † +ØþmíQÀŸ€¿5’¸°²þªë_ë¬cD­¾P¾þK@`{¹²¯÷Æ &'Ä2 †Ì‹ß¿82±8b4Îû'ø„€ž—‰Q†{Ñ¿œø‚Éj=€Qÿ ßçÂWø<ýÕë€E ¾~Jäpõ¥ò +ÏT€õõõ½£;{wö¾½ó­yð4ïô¹[ÎTàò­[C¯@ &°´kƒ÷åg¤ÿ~û¯†B-v»ÒÍ@€[ãü±ìØ€(  +Ó§ iYVÔ0 +² ÊHB!"š– UúÎw‘ @¬@ãÑÁË00 `ˆ¾ˆ*§å.€°åç Új¢ÀZa¨ÿlÄÛØ,NùO¯âÿœ^Åÿul¸nÝ?Ô8 +ð{žÜ³çÉ/üSLfÿ‰Èÿ3“NïC€µÿÿ(åö9•í3ù˜,¡+Éää¨ALÎÇx>ÀvÀÈ3€éä4Ϙ èX@_MÇ“ÓÉì’D%<!D¬";3É=„ð¥ã6Y­k52‚ý£íÛØ8¸îÿˆËÅ3b{à½Â"ïÔ”…à_Œ,–jŒëG{{éì|ë­ï|üÀ€;ïßÉ£ÿ[wnß¹uëÖ;C¢aº?Wß¾<|ù³á¿ ¡¡14„f0LÐoóñµùÃãÚP˜ à†ÔÜþç}Àq^Ô`ÛÍTù‡CØ€] 9Ä¡Aæ(çŒ/³R bÀ¢ + – ¿è@¸¯5· häI@!¬-Õ|`F}žÜ-ÿü™(ÐåxÓqº~ïü3O>ùì/>ÿ/aËdd|ÿÛ\¡Úç ,ìÁðÆ>r¬ “2„ÎÑ’—ä\V‚%ñÄåu¼ã@ ~@:¥›æVÞœ–§ã<˜ŽOˈ"#!”ûô³’¹#UÛ»’ø!`xõ!i2ùýü™ä¾Ì˜œéê¢kWWj³íȪ"ðæ{JpБÉ\n-aGº##wÈ…¹¹¹ü\Aþï%(oî¹yÝfûä•¶» Ê@@H#€08xð ëÁ²ƒJ:ÎD{;쀩àßë‚-0=øý\ú#~7∌D¨ö/7&à÷!ð`å/2bPéqØéŸï›[ïÕö­XõûÕ†Kœ@ð¿p_1Îê»»»÷÷ì×w %Àúõ»[Õ‰ Œ­ x +DÔêÓ½qQŠSÖ7P‚VýŠeÀBÙ¹sž[MúQþO|ÿéO¬>N@d°ß_ÏV>—Ë7€~Ø ZŠvWº+§*ýW*½• Ë7X_?ºèß»óíÞï<²é#ü!Àÿ8÷þ_"ì¿õÊ­÷îÜbäzoøþ¤(ü? Gâ°*´£±Á! +€GÐ0ä€ x-¨§Z_ÃÐ +  )]Îý !ØŒ/¡Ðj´ZDy €8ÆÜÒbv:—ˆ:°ªÀ6@-÷èÑÕˆ¤`±!ØÔÂØ_Ìn³€Õ\ÀB PdÿÂ~A,l\w|Ýù¦&ÁöøB À§Ðþ.úÿ‡ÂXýÄÿÁéGÖQÉ/'¥¤œ_Jfù©§z¿KÊ…˜œLb€}‰ +÷Xà@‘ P<Ó„ùÓºé$Uÿ`q9.'uË/˜ÎOcöŸÍÂØv½Ê&'ñC’PJ…ì’$íËçå™|ÛPver`“GŽØŽØ&S¶Ô¤.“][ri¹£#““;Ò‡çæÆ +0No.@é|“ÏõëG8m[Û'ň à?D€ØܸQî­<¡´Ê”@ :ÿÏåðùýíFc{{$‚"un÷¼cdY< µƒh@Àb±¨ ìÕWVVTL>`ÿúÅ»‹+­#êÀ/»»g „ÿ.\XY_¾ƒn½j`?¶+#­jƒ¾²»¢²¢{ÿþÀš5ƒúÒÕu$N?×õo(n”••þËETÀ2ÞßYä'N|¹€>Ñdû·Fëýõ~V}ýž~Õ C ü)ýÔ•)ý½÷J±`±ºú]PôÖ÷޾ÝÛ À&ºsçömѶݺs…×[wnÞ;ôh˜ß—Ë€CC¿"ÜG£H”‡²ˆ½zàx`tÆíœŒN=!ìç ;)£(ý þa @XÇ—NM0e'ËøÉ¡b8@Ñ ¿ðj¸€w@ب©©‘@“°¬]Ç^€Ü` –‚¬Ö (-€ãÇÿç¿÷½ãO>óä3Ï|þ_¢ ›ÿû +…Ã’œ”+yˆtI„|qi‰·þ³ÉŒ/d²™d—.žÏH1y9€H@0ž + N4`+ éd,FD ‹XÄ’NE!>a}^—Í@BÀæ yî€-¼”!"òzrŸ\Èd2é®L&G§#Õ•ëJÑ5E÷©GNÎÉH1Äø_Æa!cû´ä$X:ßèsë“#˜| hlnÛÌŽÀtvméØH`ËAª“¿{î`-ŽÖ×׋L :Ÿßå ôw´þí‰öD¤=’à}zn`¡^í3Œ$¬^¯^¯òz‘¬×#%Héû«++Z×_h'¢0bèîn®hn®ØºµÇ0kPÍÝD*±1ðòVˆº+ľ`EEEå~Øÿ/°üñbÖðÆ«¨^¶h\(åeø¾‰Å B2 ¦÷v¾p #H$"Âû‘‘öyì¶×ûýƒø]ýýÖþj+¼¸@W=½•Wš½÷€Çåƒ +`´·w'áÿÛD~zýA"C7oÚ‹òxØ~ëöM¥ùzó½Ïî\3æ}9øì½Ï>³kÂÃ÷0º#”g)¶0^Ì f- þ¬LˆΛ ò5@z4Xüw4š3BBØ$~ð.{˜aÈ‘6µ°÷ÿj@ƒ5Ü$ÜZa!P©þY("× Àã1¸—¬+ëˆo‚ðü÷~ñ 1€/ÌÒòaDñÉ/ì›ËŒAÿ‡@‰p_’âq)Ž9ÀºBª-HØ Le àùd\¦o¿€ÀpšÀ4@Z™ €è¦ Ë“3KK $ ìóˆ †† )O¹YÕ-!ØD,+-Å'³32<„7gÐ~è3éf÷çº:º: üC~aúpQ"2¼˜®zïæöI[ Jç›|>½~ä“WŽØˆ´¡ ‚l`h[{´ãhGÇ–-[þÏ<(úêa@5ðsuƒu`{]HÑ…{ζv#]"pÐH°ŸÎ¼Ú02’0ú½z\T&UÀª‚ô¯²;»¿Ý#5 ìíîæ @˜У^ßÓc èMÝÍ[Å‹/³_àËÝE W=¿ÆðôÓO«¬ü¯`w_tЍ^voT°ÿ÷èüþœøü Ì½˜€ŠÁàs0 ¨s½ÿ›÷W÷[½Š þJ·¢ÀÀc±zú}ƒõƒõ;ÿ8?ªy°FÃ7oÞ¹#áðç­ÿïÜüóÖÜý¹ xû½Ï†ß{ÿ£"»Ã¼ÛH +z€q–ý£ýogà‡ ÞÔhƒá n„´Z €ñZ!û7›—CãAÄh°H@³¬1+ƒæÝ(d‚ðt:[„@X*n@â9ƒZ¨ïÔ*óÿFÅ àžL Xÿß«ÿ‡DPØ àqp€óǛΟ?Cøæó àz`lìð …ä\FŽc€ês Êýñ€iùèâÙ •ãr– +vYŽåtÉ<¿Ko¢C`Ìÿ1Ð)xÏ*ñ_ÊÓØ˜Æ",OJKYiZÎäQêc‡R>c»ùß'“˜ +`·0>¹”…à ~$“Ç’3œSD<@îsíßÁ@Î'åt!ƒ8ÁxAþÓªª*›-•*A@é|£ÏMbGl¶#"@ĵm²±! d€G;~svãwüä¾zÃ6ªÿ‰<ç§«H¦â¿¡ÁØÞn•¿›vÐCdÄI[}Ü׫T¢ _ßSÉ € ƒØ@`%¶õtà¿5`5\š è+·êÑû¯l~™^f"ÀøOàï*ˆ*þ%~ð€|öü)à¹.ùÝd6ÉAŠO+æ?\üëx Øðu:¦´ ˆ³B ž¡—tKK±øÃé8Z Ì.é¤|ANUݬ’uKX)Ìdé¯×e“6â2L +²r: +Hƒtd„e8 r×öªªí¶IŒ JP:ßðsý:Á¿»B `³m²a°–À±cG;6žÝBðOøæÿÙÞmlTOà_O×çüí „þF.þþFqàÁ›ˆFÇcñêõV‹Þ⵨V€Æ#Jî4w£ú§§ÝÍÝ„úÝô´{k÷OT³³—.´Î*hN€Æ7îP€owžV?mË×Åè^…”Ýe"ðžä %8H!o(îA«ˆ›‹e 7ÿ kýˆÅX=Õá>S¿Ð÷A¿«ßsÊãðèÑÿA€ÍÊ: ÅÚ¯dîì}«—àÿ­kÚ$0| ø¯lÉ)û˜ÏÆïËÀgŸ½7vÞ%öâI|°aØKbA¬p:@±þg.ÀÞã!lj0 ±AfÿTókƒÌ ÄX@éh40 F‚°3êÔhAÐR«¨›œXäé¿ÓÙâÄ~€ÓYÛˆž@ _i¬kါÿç@#.Ê ï4aðßΟoz–ÀçþWÚÅÊ¿¹IšK:d99#à< +{9/ë’TÚÇ¥ä’Ì~˜ +äóT¹'QùÓ‰!4ÓI±UôWæ÷ð~:==p dÐɾ¶TèÚ,KÙ¬*Â̲ˆ +¼^ÕE¢Y’’I./'ã3qÄÈqlúÅ÷a$@wss° ¦ÿþ$¦™ïúWAõßÕÕ•Ë” t¾ñ àú‘ë`¶W”)w6Õ¤`ÔA `Æ-çÎ=|îÜÙ Omxj”à´¾Þÿš°œ˜àê¿¡}~ÂènXm@7?B5³ÀïõVª¼*•ªÒÒjòêy©¿•¸v£@øOÅ·¾;`í Pð3Ê771­ÑàVãÿßUT>Xóÿ²÷ö±MÞiÚè’nª˜'h¨OÜœàÄ ë§@̘ØrBÔ0%«}í²Ð1Ѥã鸡4z;¶ ‰ R6djoг3ôX>nûvB†ÆƒÍŽÄGÊÁÙ¸Qr$¦°;ÌÛMRái–M'»ÒÈ…ðrŽtîëþ=m> +…vŽ”Ÿ?ã˜| Úëºïûº¯‹ñ¿vnµœÚ'ïäÚÿb[0ŸmÜ<Çs³ü‹ÔÖ^*Õ…Ðá¿@_g2Yt•–õCJ`}Íùš@ D €jÿq Åãe°,Æ €Þ°¾0´#×xì‘ÒDÂW äE=öã?þѱ¤& +@,ÿÃÀ7&ñÖ>úöpï¥Ê?™tÿUœî%‡Ǩ^Tÿr@YÈ_LI<öKŠ"P¢§(éSn¢1¿ÙáK¢ƒ Á$@ŠÒw‰ï=›L§Ñà4$ùÒš)Àßzâwøýûf’3êöÆŽ ½b±¢â¬™Ð?G£Ë-€å³|¾˜ÿϽÿ9¿€÷pg~QñØ”8€0~n z`Û¶‘ ÛúYX¹ÛJ¬%µ'WÔ6Ôr iº»-Ymâ ʈ€ @ '€bªû é‹©æ/¦¿¸å®E‡l laƒ`Á^“‘s¿Bˆ"<ìÀbê­mµÜþç(`Y !þ_½*· +˜‹ºÃ +úÓï²j®dc¥ÅTÇ¿G±(ëMÉR³qˆ}¬C–KM½~Î`@]y[”›tŸ {xÖþý½?ýíÓO_|øÿÅd @d±'"ëü\†ÏnwýŸ¿Ê( ð| @Ä5±¤R ‹ãpŽÈ a ”s‚²І À,ðÛD:€€º?HaläD–8m ìè” ^GL0½ÄÁÄd!oŠX 9 ©éÓªæNýNcQóö&ÿ&ÿŠÝ€¶oÿżÖÈmB1ˆÝ¸6húíûLn2Ö«ð¼~ìãä“ÉQ}g zT”:ÒRÜ­‘f|š™˜ß쟙ä &hÜ‹‘¿”L¹s¯I»¤ÈÍú},à?—r¤îôh_Ìw@E3¡”_ŠÅFc’&êíðiFÓ`ix Ác áGœM@Ç»`Œ+Yì‹zþóz=?ƒ¿wÐ.3€åóÿÃéðzÿ ÿt‹óÿÿ‰9€XÔ›…«€p†À(ÿy°­€ ë_ØÀ𿳡„=¡ê¿¡ö¤˜ìVët¦J©²‚‚ºò‚rà>¡A™è<+€þ~ž”ëZmá6>F­_¼y‹ÿ lVÒ‚¶l}8 >±ù úROnUóÀlÒßÊk¬Ê®Î3Ê›äIÞš•)À—þs'gk+u•:‹)kõS\.û:‹¥Æ +K  Cç-çÏ[§!0€rP€òqèƒP¹É ð€¢ð§‹/.>ôÿœs çêÅ1¹¾Sµg>Â[a.0Aþ˜ëšËhȹdG@¾ã.@X9pDç«\gþH¸ +Àc<²1Ø€–퀴 `(=b.Ü€"õ?6…õrSƒ«±-*@4¡‘C‚ÅB g‚¼¿s€Þyê©Fàezàò¿ª±ê@#/‚45­½½°Ÿ9Fø¯ÑÄ>Njdÿú}Å*ó©î§rß­‰¦5nG,íOj$‡Æñ£è tú OþýYÿÀu*¯ µB´$0‚”$ºÔ‚ù>öšI!wP“Ä6ZA}Ũ›à_|¹$& ôY1nÀðÁŸ¢ ]Q3ÿ¢ò„:~Hr,–Ï_ølíˆwÀ¦ê¿pà?ç÷ÎÏëÙÀüâ&óÓ›‚Ü؇]À£J$Ð@uuCµŒ¬X±¢¡‹ñ'O®8 ôoÀ ¶d÷N‹Îd‚bŽ£r`Š_^^^ €nÿÅÅeý¯n!€W¶¼JD >šýl)EÿfÑؼEnü+€²Í›‰l..hQomkc³¿Õ9 +ðV®_ößÁ@V5CÀÚÏkK>Ÿ›«íݨƒ¿ÔT^\&âþXå7N@¨´XÏC €\€@%pä4OLuŠ €nq ÂÿÎmØ!ž~úÅG¨ÐÓ“«à±;-U_çÁC©4ÆÆT†±"•¡?›s "ðÊ$²‚ÃEç/¸·ÿD O˜ÌÃþ"•M+@ßɶN~ÂA6ž`-³áhDŒ`gëk °£àUUÍÚf#°_èÐh¬j–We+ §¶?ÿŽÈ Ü€bPèר¢ }ÞÎÌ3k°ÿ#ºOzý3Iˆûý©¨ÆŒú¢þhÌឤq¸š´FŠÒ5íã­ÙôGòs_?åΊ¤]¸ÊÀ¯D° [røðÞ™†Àíð¥‰Àîr¿Ã $Aûb…Ýáàæã§¯¤!ì÷Úíóô?7¯7Uâÿñ ×3Gã˵|þ‚§Â~ð ÝLøßêm¥ëÝ1ý'òŸz1пhÖ›±À›ûë÷yŽ>S )šÛªÀ6X·USÑ+Ú „ýB p²¶ÁbA py%q]9À±8Tÿã ¿ NfÅOÀ€Á?úþP+Íÿâ-¢ñŸ­û7³0{ÿŸââuo[Im.õoU~/ÿ¦À€¬PNp“`•p>ɆÀsµVú5ÿ‰»˜„Í{ü×÷×í ñ†ŸÅ +-ÀP &8™N‡ö„êWÀ:úÓÊššš¡e ðOï¡°ôÐÿ£V€¡§'Ò#q\wò/Vô¸ 7L"ƒ}ˆ røý‰~Ž™¨žªûƒÜ ày€„!´ý£A;oû™ƒÞxÔ% Ï‡êÂØŒãѳÜX>±Þ:á¿Ý~ãà s+s«ù¶ŸtlÃÊË73ÀQÆæ ô4dû÷×ï*€g¨þ¨> +!`Ãs# +N® Ý•€œ¬]EÀyrçÆÊšJ@'VŠŒE*8¡'@×n,ð I¶êlþm• Äî@ÆÆÆ¦Ní§ÍMkáW@TöÍÛ·+ËÿÈh¤{ÑâVÈ +LšÀ ª¶?˜ˆOa¾þ£¢}ÿ%Ü… +q·ïc4#͸ÓIÉ'M¥“nw,­ñ³ñ_Lr‹‹_npÇSÔû»Ü»˜ì§vqýÏ«`, »FÓ~Âî”_“NÇ’ð41?÷ÜëOrê@°bž°ÞÞÕíðšoTð™ŸßËZ?GtÆçc€Ãï€#€ƒè@ÓKø_;7—óùÏoÿ¯VœVݲ · ˜¢öŸ­½d©¤ú¡M\Ò³p|Ë…â [ú‰ +ð‡èX‡­Öó¢ 0n¯“õt•GØ`hÇr„ À#ÓX:~ü1CÏà%>û²÷Ò`–yÈD®·*WØ`s©DÄ¡lv¬Ø”m€¬$ ßåt%èMÈ(ï”ÜPåžðçÄ @€¾H Ý£SéÐkF#÷„?p‘±»¹Y ù_s'Ã>ÄŠ:ÙXÛܸ½ÉØllÆ8¿‘e í¼¶¿³¶1·(b€X!°–Ó‚žz_¼Œ¡Àó·›î!¤•’±Fü^ìöi|Q˜÷HQÉáƒÚŸÛú7¡´Æ—LJII.ý¹æ÷ÓS²ÑÛú³€¾Æ.Iv¶@ +ðŸB2[%0:*9vú¶VOõõÅ’D=üî˜&•Ô$“n¿µDHƒf½Þ^aŸß«7ŸFgf’ÿ ¢9¸ë|‚áèzé=ƒÑhÔ³ŒTËç/Ðú¯X” @ºÄ´3hm=xðà7ð–¢A¯7 +üzª‰×~íV(3‘€yîÈ~À /í¯¯ß÷ ÆïUW¬¨'ô¯&Ü?Y`€'W(=÷·“[óK¥ÉR0•š€ Xœ TGd XŽ÷uÜ €Ó?®X@õ¿Y.ùË„ô¯ bÀ2Yõ_qÙ–W§Ï¨Ï¨Ÿl¡3­.<ÕVØÛV›¹eÇ?¯öÏ1€U·†eED08ùùȶóëk,•Jÿ+í|ûÁâçB‘bü¢®Ô„˜àóÖóCçkG??=ˆŸ •‡L–€¥æÈÐÐŽ•Èk€P èøñ‹‚¸¾œ\qÜCfünâíD®l ˆÎäq@$·àöÛ"—-‘EyzÂ]\¼`Ëê²]y€G£ÍÆ$¶ `9 ‘ÞÐÝ ¤Çr ¿¶“^KOÄ ©©[‹ª¿Óhlö¯… ªQöù˜_õþZ¹ûϲ€=Þoä™ÀSß#p3O]Œ'!ïgðSýïO¹}DüIô$MÚ-¥}QÈô“陘Ä^ûóûs3úTn@žþC É£YÎçîk‚ôžDFûÒé¾´ÛáHùÎ¥Á8UPC_Wu#4»Ä’ŽÇ$5ì«@¿ÛO¸Ox²*ÿQLâË-€åóM£¿Ã'A°x +`¯8h?h?ÜÚÚjÇ£ýkWÿ^×»†ÿ¿uпcï×/|Aèo׋³É,ö ¨ßçyÆóïP<7PòM€Ù®YYl§ìÐ[ 8ׯ·Põo"ü×Q¬«Ôéö`n&&¢ @‰ö?ß0€#q€-ˆ(ƒøb@–öo.â¿þâºðÌôý©ôo9s¦íGç£úêUr œ1¨Èî¬ä|ƒ®'Gào`¥ß¡Æb²TêäéËùËÆ!í»Pvá€þq8\..…tÊq€a ðßt€qÙh‰à?p^®ÿ¹ðáÿÅžGf àŠöJäâ˜A¥"|ÿ²±Ç`ò‡é\úƒê]ÕXxŒ°Ú Lþy ,šþ†ì0 k ¶„öðFït +£~Bá ›2pæJ§¢ÐÙŠd{`èÿT6-€Ä ŒE÷ЛµÚN*ôQã³ò¿Ï›;«šÝ¨ù›ˆˆÒ®€Mk9XŒøy!€»ÿÛùšÝÄ&A3Ð$ Bðγ·u&ÎÎh41M,†PŸ Ãu½ß­I98˜‡gýÿn·oTJº5±iÞ`D%¥½FXˆ¢_R˜€Ø¤—wí³ñ&Y ñŽ Ú£éѾQÿ9Ÿïœ?F@ÚæNù!DtÇÜ~¢g„÷é,ciâIŸÄû üì4ãsÌø™xTý3úãæ[F¬åó –þpš´g ÿܰßàûƒ‡Ò9üuÐ'Îwô¯Ù3èñăf³^ÿõÖZÙho^ €Ððxö=s:À£õt;1ÛÕux¶+Ï +ð‹°hÈײ !×ü´ÐôG@ l (@"Küe€"¥ •7±$hãD€›–ó:«:›µTöw7aðÏ^@MF-:«šŠŒÝk –·úädൠþY3@!ØÎCÑô§wÁBxmãû˜Гï}ïÙgoý+Dœ_:¦¡Rßq–P5écw‡””ü)Éïæiº¸f;_2Ý—–²9€¹˰ì‡ú—œ°Ë-¦µÊöO Rî”ïeÂ*þ¥)lÆFûú4çÎ¥üæ)ƒòBúzì +% ›ý„y…?Ñz8çOÍD™ +ͺy¸°ŒZË盆{~R¡à¿]fŒÿ ÿšÍˆ×Þø¯7ÈWèYéâ ¶êÍú³ìoù5€]o׋@ º71ðìG,Ÿëª_qBŒÌ ]1˜-©Ùh±ÔÐ,`ÚRJHete©… 7’z ! @÷Ÿs›âH3ÅHc !  ÷·ï\2I🜂ÀçðWϼ9ó¦Ã1ÃÉD z¢ñåL åóôý+”ð· À­~Ä;p£Õ­Þ7ýôx_ÅÐ š[zmzÍg±ïB`Í×ዊÀ‹/b`Óa°;gö{žA8p׉lÜnžþlƒÑ€–õ5Öë¹ò·XJMTø[v_ê-áp µIWP®£úÐA@=gÀûeÅ„ütc@Dשu‡Ô½ímm™Sm…m…g +ÏL«[ +¹î_·:{VÝò$þsåáV ³ß“ ÃT÷W7h°n‚¯ßúÞlíg €òbTþuÅPþ_¨ï/‡©!t :Ý´%€KàôéÐåÐ8ÊC!z¥&@8 <>°ck€O?=ÿÈt&~õØ<ûcðØdþ‹D8*@å|¨:†·ÿBhî´%Ì3 `É“ˆ‘@$/( áÊRn ño@0OèE'gƒ `ÑoA0­SE­(úñQÿs< (`ú5s#À(b`D@§Ø À€ÀXÕTTÕØÙ¼¶}Žàd@aÿsS ¼ „B€UÌ0¸E0±è`#^FÖA/DõTýø_Š&%÷çw§ñq*+yýiÂÿ´[Áþ´püc|¯M±E ì e[Hÿ%Å:8Nò( ×Ÿb€4ú f@Õ~½g«Û= +îЗ_¢Lè‡Mù§¦ü¾7}p/JbÀ!k‰ FY¸¬X>_ó(H_‘_íó}E~ÕOG0ÂÿÖÃú.oÔSßÑj¿ŸY€ÇA—¨Ç»†(@°5h&Ìç«ù¬ÙŒ@Ü ˆ•Ãïð&À&žl +b`ýþú}/íÛ÷ÌÑ®ÃÙݼ Ù†õë××°Ž””4ì´Z¬» XwïÞ8\Rr’sÔ:Ñÿ§'ó x àÕ²Ü0®Tóë +‡{ÛÚÛÚ3™ =â Ÿ)œ¦Ò¿-ús€¿*¯É¯¼‚Áª[Z«³ÉÀ«WŸ¼d™Öa“ß:ÒPÀ&1ÔÔ¬ç.4uÂ`Ïx1p|Ëf[ŠÇëè‚ÜOÒtÀï€)27¨»\ÇÀóD'Žˆ-À¡>ø÷Ðxt€a¾çâE×á¿‹ +æÅ;€ž1ì„à ª‡‰ Ú(œ(*+ré¿4iÈÃ{–ä}ÄÂ@!`A ÆÀô +b€èv +v cJáˆå/þsá\öä;VÐgˆ ÑßÙœ=0l®Êf —ÀîæÆ"#7ÿ9‹}M²íŸûíüœÐ(vÿ«X*À»€ôü©ï={û àåMÃ?æGý~G’jxõJ©¤<º×°hŸ7òáéŠqªÿé#Ì)ÉÏu¿çû²%0ßí’­ÿXý/þ2 Ò}£i)º‡¾¾Qº Ã s'Ý×§™ésïJöÑwd[àXJˆ à# ÿ9Ÿ*™ÖÀbt^qÈ–@< Xn,Ÿ¯uÌ@yQõWäÆý¹6£¿=ïPõ¸µ£5Øá©Ö›o´W|Åït£õ9ç¹êAOЬÇ%Èk…\ÿ3ð³ÁE\³ý+Ù[š¶óóv$ÒÙÄ¡@è¼´»€]ðÏZçFñ¿a]×[Ožœ­=¹s¤ÄzigÉî»/•p(ÕRZ.Ð_WMÁj;à ±˜—ª KÚJÚWgJN­;uª­­°·p÷pao/:ÿÄN­S¢}VÝRù¯Êµò>^uúÓ«s«Ve>ŸM#¿‡ªwb èT#ÚÇZc¥ê?€Ö½å畦:ìò Mß8¡>êÿ %n)®ßS^WŒà€i:` +B§C—A .×…t!ú8PSsd¨€çw ìøv|Ò€ó€zƨæU°½m˜¿Ã¿%"˜DlÛmWžß/¨€ç!>!üÒd®üöOfŸÉopñ6 T®J~§3Bx¤`'±'€¼4AlÀ€T`lãt`HþŠ”}¥ YñÖÿòx@g·ì ÈÆ€U"$ ÑXÔ\ÕmÜŽò¿™MÖn¯j< Vÿ·ÃúŸ¯þY,È!ŠL°±¹ {€Ï^»ô§QUK1ÂNŸß}<]€Ó7•Ø\|§F³ð-™ê~÷¨"ô:ûÒb@”ÿyÕ¿`Rö5·0"à%xú´@3€ïÒw$ú£¦¤To6o+‡ç’Hm   bffÞäÈàA^Œ²0î]F±åó GŸíõÛ³õvüggÀÿÖ­QokÔë¥Rý†Ýþ•tá€t³·:ZÍ‚¿ÐƃQOœþ1{x#@(è³znAT< ¨°³ Ðü¢™›AÎØ¿oßšÃ`.‡s±>–W`˜?pgIc9óu –ûÜrÝ/lF©èßÖ‡€QÞÍj„³sŒÜ° $àOž#0ã;ÆÿË íˆG£žø² +`ù<`ÿ¿BA~{V ü…%0ýÏÐ~Ã%ðïj=ÜE< Úaö:Zík*¨Pzñn­úE|]ý&&ö0þóäÑÿ‡êŸþ{Ø(÷vÅt€%ò"HP~¿  b¯ìH ¸iFûþóñ¿ëÄÑç¬/l¨æâŸÏÕþ«ÞšÅû,:þXÀ( ¼ŽÊ}]KyéË0F:`ù“Oª w÷¶ Ñ^&_±Ÿ}¸óó»ÿëòÁþÛ€™Lá¡}ÔäÇÇ…Êÿþñý<¡¨–Xk†×ó€u¼n”~ˆ\ ’Ÿ=€° ¤€È,.ë/oÁ/h!.1:m +ñM G,GŽÔY9´rèüã;v°ð£`˜#úGÎ J¿±ðâÍÿŠ*{"ˆÛ´®…‡i@µïR„JtC¶²—}€&—êò'Å Ë'"gÈ›€DŠ"Ø$H°0m •° +J¨ Î@8°Q,:¶ÜJ St°Àëtgl†ÿ±¨ˆkc‘Vèþ;› ›ŒÇ…(Û€ +´+‰@øS€í¼÷·ý"_]6näÞ@ÕZt®ßúïTRÓhb} áñ`œà_î¾bgwý˜@ú—&€v÷Ié˜OÑÈøœN!&Ð'ïr©¿Kú’ã–W€ùRLÔù€|"m)Ö èƒI”nÐ(ÓY(KRãÞêžšòOÑÏ;5å{ÓwLxàÀ2G<¾¸ fËçð_¯·ç ?÷T6œÿ¬è±Ânö·²Êw¢{ãð̓úù»Á1¾²Yxµzëél¹z¡l¥;¯‹ÊËhèE?ã}+X(6q(àš7xwQ!­›Óeö­·f«8°á$œõg­×0Ð?Îë=bÐe Ï__=/A{{à›G€¸ }ˆ~;Š ŠÖ/œÕN.-q+`2GÂåQ,Pû»xÈïr¹œ ®ýUh“€  °À  +c•Jlþcúp„`C‚Ð(2aaÐØ\EX‚ûnc€ d% Ð4u5¯m.jê&¦ÐÙØŒU®ì›ªÄ°ûSk…€ àå@È9DO×V5Þ©01qÖÏšºXŸWÀ¨Ã'Z)%»×-%y ‘ ~®ÊGSéì’?¿–j¾·îtFÅU.ÿ³R0ìpÕŸ]Àh€x?“ UÖ@Üÿþ)w2™œJ¾I,`Æ7ãÀÀ`7ÞŒ=Ë2Àåsÿ§Â®¿IüŸÕȵÀõ@ÿÃbк5Øq°b‚6º3hv´šéóæ{ÙE0Ä+½,ó«ÐÛu!ròʳ]!8÷ÍD. p*îÿ3誯¨~î艷Þ:ܵðÏy@³0Õ[ÏnÀ¢@ rÉ€²·> +è”RÙß[[;'fôºçV×ööæE÷æ:ù2̯ˬ›ËÜŒú눬ëÝ]Ø[¸‘ ‚ KÚz3§NeÚ3m½Ãê–âC‡úC +õº,À\¾\®#¬Æÿ°ØøÞØxÞ²~#²hÚ#o°à4.”cø¿E9eeuÅåºéÒÒ€"€iÂþ)põÿîެ†ñàXJ¥¥\€€…üŠå¯Øý»U(;Hb±/›†œ`TR(ùÓ¹/¹!7ÒÊ‹†'òÝVb¾ä1ß1¬r*P”'§ .{,Ÿ¨ÿ+䦮ù/ÿßob1ËÌÑh´Z?Àñaiz²¸8ïÎDwFõ^o«]Cÿ¥…!¾P…^TV[½ÞnÈ +Cùÿ·‚𹡷ës{{íúûÖ|!ïè¡ØôÆšýàkÞx£k «»Nt~«ka'¡ÿŠ“³Gaª?k­ÙXàÒRYÊʸR®TW(·èä@‹¥á}s³ +Ž£øŸ«-ÔÂ&`á- ~Ê“u»u0 zõÕݧdQ@¦½ðÉ3ê'ÕO"è¯[Jéö×ôL÷ׯêZþú£W‹Ñ¥˜ Ÿnuýý¡Ëý—/_þèòeFº€€ÀÈHuuÃQH,ç7Zðó×XL&º–‡ÊÙˆ3¶ô£ €÷þ·¼öê°  ¨Y˜6>}: +ˆs¤†®çÑX¹c`KžÞtõÑ",n• _COøb¤çª’ƒµ$G«œ¶‡è—+ròO„\wBök„ýK‘%¥ÓO˜;™„eÉ ]È>@J‚Ëeƒ+ KLþ ‚DÄß‹ËÅê6,Òâ9¨Ú·ñ2 sªóÙ ˆµ‚ÍÐàÑ¿VkTJÿN#&Z(›;›°  '6ÐôoöMUl ÄûkÿMØCó'ˆ Ø+‚Xl®zþÎ`â³×c0êÂÚMùS>ŸÃ',~}lþ¯!¨eþ˜›ÁÚ͵ÿÑ´‡XSŸ²è–nQ +ø¥7rUÏy€Â]@(e[>‰ ÿÑìIgg òÅ € ýP[§üSD¦üÇè'~…®ÂÀFO/Úò¹Ï6¹^™öÛó‡þ¹ÒŸêõŽ(þZK  +ýÁŠÅ‰ +o°cEÔ[u`”ßz· +}qq/Ú©{ïBÖw£uSW”˜k‡× R!»\ð XÐ+ê>fý}3€lÀüâ¦7žØ¿¿°~æD+Ú+Žø#h²ºfOÀ V^¥+ERž®ÔRIØ_Žò¿rwíÜœlÄÇÝþÚÚÞݽjuyù!¤T»*룔þíj]±ìTVÜr ¯>óäBû3øÿ¥-|èÙ«ÅO¼úª(îÇE9îõ‡._]…úëè._tŽ6°Z‡¬–õØÜXc `дGÀ]Ýxñ…bbÈ*¾Àn@¯mù?ˆ” üGÃcf€Ó:d ü?BàO—ó¸í8+ ÷žùÓÓO?j€{ýŸñûÿóóö¬àOŽÿ«PбÂÞJe:VòõÊŽ€ý Wëf¯y…— +ù芽·£õFÅ]šüP +T@G\Ä ÁÎË­Þ®ŽP‹Ü·”ÛùQaIß}ÿ‚ò«€"hMý~O}}×áÃ'NÔ­?z´~ʼnÕ+ XÑÀ[të‡0¨Y?ë0öé¨3é,»kg3²-újKàîSÐÒRPÐRPª+¦g¥Å‡J3«WåZÿX +Ø­V«[ +[Ô8ÈÓòdKòQüÿõ«O<;á²W‰€/ô?A¨_&ÿ–~q¿LW¬`8M$Åzi¤¡¡ºá?¸@ð¿‘Bh2Õñ +à… Åãu/£‹¨ÿöÚkH€ ¶-ÃÃBpút€)®ÿkèÊ^€ À£ 6ú«[8êbEX‰È‹ô„{®Î_½þÙuaŽçJغž_mémÃñpœÐ”þô°49¹Ä#ÿ%Dÿ's€¹Ê|H1 àN€øK%?"ƒ!äÁÇ@ +hãô@øÿ³K°–—U,Ä`À¸@Øò:\øwŠ&^+MHæ  ‚ÿ¦Î&vúijZÛÄèß?Ð\EjPÎP6 ªjzþÙgŸ¿#˜øâ„ṳ̈´&èC&°äöùDx¯›ª&n ~¼³Ï·QwÚ•õØ „ %;þÜJFó'苉¿<×w§S’CíïæÏIòð_i° +pWš“4ÒŸÝÒˤ’[ý[ýoúÞLú§4>â¾WÐü;0j‹ÐPÈ€ÌüµBØÔˆV§4ñ ÎÜýí~ÁÖŠüà&ìðˆà{_Ö s–ð?ëCî‹;|þT*e- Ä )iüB (<Ó âÄRäÁÀÜù ÏZ€›[i¡ù—1}4ûf´ýÙ ˆ ÿÑ›Ž BcFÄ…6Àw LÐüÔÏÙ€~¤9¯Ì@ ˆh•h|S<É÷,ÃÚòùªòŠÛ÷cv%@©ÆVÈíHnÕhmõz=Ž7›æƒwWé ü'¿­ôöxŠ®‰¼f?}ÝÖÖ.ï {Öxàæ`Âyù‡¹š3¯´xpßþýû·¾Ñõ¯]õ'ºNt!¸«ATý¯§ëzëºÖ°›.ÕÅ„¤ s%VµeãF €uºC¥@L] :-º‚–‚W[vÏ­^•™k+á +Ÿ€¿¶½½¶­¶·ðIŽ î¢¸¥åÐFKÛá~f];áü©¶S— +©Ê?sÏq£W™p³ íL›è +¶¶ª[¦?š>tè4</3 ¸ p9# "ûGNV7hà€ PÀÊ’‹ÇÙ ØTÇÀ <xMÔÿH ßvBŒ÷Ãé€Ìı€©9¿rhöwìxïo €ÛAÚ˜‚öxSž1>T¿šóÝãï†#aרdÞ‹¬ÛXš˜$ÿbü$ %Ñs×#æÆ‡èóc ’»,’Œ¸ðwÂ=៌Ä@\¡T°dÅ?æØ tjmP`1P…uA#}¼@”à¸--@–`€.Z^ €Ip§ñS± + çýT5vÒ­©‰sÄØ-87pívºkj:ðì—w` ëó÷ýO)–N;¢*ý}n·#•òÉJ ¿FØðhRhØ‹U~ŒìÝX ÝÊÀÑTþ~ äÞ¥¨•ýÁ”V"úwÃéW|:-–±ð•—ø“b±˜¤ÙŠ–ÄÖ¤¡@ç|0€`Æç˜$0{¼ƒÿ#ôþqy°|¾20ڳſ=×sÏ3þeu¾øÄƒèýÛ½¨×©üçMoÔ³Íñ¦wMôÖƒ¨ÒïÑjà¾×Ó±&îm›o ™0¯lf‰±/V d‚ÜfbŽŠÜÿ/º×Î*$¼=€ýonm=ÑõFk‚OTSõÿ(€µfˆÊ«h;]!Tê ¶2@Xæ”þã®´¥e£ZmAÄ.|×ÞÖÞ>Gõ}o<‚ËÊŠ·oÞRÜ¢n+l¯=•9•ioo?µnݺ3g†7îVŸaØ?Ŭ`=ßEˆÏ¹Áô*îL!Þ0\xfxºp^€‡¦?ºü‘X šX†-—vRý?R=2²qdãðÆšaú©§… P¨Ü4.wö€ŒsûŸêÆÿ: „çãü. Àÿ¼T@ 0Ov|ðÈ€Exß²®A¹3d£s¦_l‘ +òãªÄÕ°ëKÚ“á¥ðd€Ûð@ô=" ü.Cž”?æˆ+¢ð$ À@èÁl"Gxmœˆ pÚXà´iE°BõŸèD6Á‘‘߸õ/T, l26‰i@S³˜ó³ÇO#¯(§I~@ý¿Vô ÐxWàÖô¡ Ÿö:ÿQ7t)Æ‘ K¿l$\€á×7šb ?Ë€”7 +P\ü`ü+; ; lT Ç»G³+è(ø?*O ¤?‹O|G„b,‘tk¦è¹€SS3S3l }=ô° ¨:>¸ lËç>ûÿ7#þbÞRžø&~‹\­› ýÚÍ]X Àf —€£ƒð¿â®f½J@o^ã{=^G+1 +{Ð,šö\ü°Ì ;T؇ýæÅ1pN|{€û_ú×7>Üz´z_×Ñê ÕÛ6lÛðG¶ a +`U::P˜V8Ȥ+5•êÐP—ª{Kj1¹çÄŸ’Þ^”ìí„ü™¹L&SÛÛVŽê¿®¬¸üÕPñ€ÍÓâ ëÚ×á´bm:ýmsíhøcPˆÂ¿­ýL[¡ø,Ã?÷~G/¨§ +œ…@é€ÝÃ#t@F†­Öó©þ·LW`T¾§Á>{Ð ñ€íÿþ¶ãÌÿÙâ0 ÔþÿpfÜü[5Œ†V®\ùގؘ ÀÄFÛ‘›æŠ/ÞÃõ›W¹PÉßùóL棿X4d·"Šô¯&Êì$ËÔ@È%Ä v6§ŠÃᤲ ð(`m±€ÊëZ£ÓVÔ©µ9µÍrdp'V;‰Ð/°+°¯-ª2¢üoîü”î›:Qñ7 ܧKgsS7XçÍÍ‚p3ã€MMÏ~ïÙçï’ßtö˜¦/[Þt,èóûaœJ wy ‰º›>JÊÞ¿ŒB ïë¥k‰¤•@ž@¾o°[¾O‹$!±ÛÇÚÀ>@¾››@~ˆ0ÙB0&½Œ÷nu—Ä4t¶j¦¦’š)¢þc¾™Ç›3¯À(>茟õƒÁÁÁಠ+`ùÜ/þç¡ëâ-G´„ 0ïâ '?3ùx=ŽÑzG½WèîõÝì0þéðzë£ÈûA*Pû„\èÛ³ùr?@κ)¡øÀó, +?Àýû=ûö×{ž©~¦ºzà9\¶Œ40 X3}Bÿ@Íùõç-¥ì¨k²è*ñXjª„-pyKiC[-—üµhçù‡ ½–JûvvÌéÛv¨ LÀþ–‚â–C-ð FŸÐ>“APp;þLõäwíj€SL Ä €ßü?3£¦Ëï@ê°¬ÿá—FÿwZ‡­»‡…ÐÂ;¢ñçÇ1ü{ó–þ²:^oLWN[ ú³L†ó:@~4j¸°rÃtþû{ï=[€w °ΟÀ<‚ňááúÅÆþQõ®-¹¹6vÇÏC°tuR¬„ÿý'óe.ƒü5?4á둞ܲ rD4€ °o¾A k˜¨lE¼"ÀD.Ø´@}¢ªNc'7:‹ÐÐvc€Ý€ÄV1€Nz B@cg³±›AÖ€¸aýŸ•65whþ”±Pµ¶ª©é©gŸ}êù»üMé_Åúà¼Ûçúý)_Tòù…%€ðâ[ù@)Ù³Or÷¹…M¸¥[¢€oy!»ßï– Së,4ïUô‚lÈw,uÃ5Ø ¯)éÏ·ßýS·&©ñkÞôOͼ‰%€™èë<âTYŃž³Aý2¶-ŸÄÿ,ìOÜ ÿvaÛg¶Dox;è¬px·uû½¾Õÿæ`=b€䕳ízÎÊþ,²ö_4Ìzý­ð_1ÿ€=˜=½‰Íê÷íß÷ÌÑgžyn ºú¹ ÛŽ6To³¾@àoZ_ƒc!à£ÚšÀ´&ù°&¸¬,µìî=ÙÞˈŸ©m¯eå*ÿ ÝÖ͵‹.È@[ÛFZ] ki¡+DýBHø~JÌý E§Ÿ*À|›LÚNµŸ:Åøç™Smí~ +ø?ôQZÿ‡¦×…ÀB„Ú–aë¥Ì¬ÖÃy@ðo èÆEû"Üò³×¾ý³Íhÿƒ˜è× +TŠþÿ0Aÿï~Çæ¢öÇ…þ†j¸°a%Öþô§‹×Q0á2È©yü(àÏ~È~1•!qe6_Â\ \š /…ó ²Åÿd.68«ˆ)}j~éúdd^¼Iî°4PF~fÿªS¦NÞT 9v‘l,J!ìlæÀ "^ 4²2Xù`?ž7)ÙÁÍÍœ÷‡Á?œÔ¸]¬ÿ 膑P5øÞûÏß5Áù³5Òÿ죓vÇSþ”Ãí ~™úkü’ß§Á@˜ô¸aÀJý4ûŽJ©>wú6 @w¾0-gÈ#yœ Ql~$E˜õ!„¸a +ðN%øŽ´«|¶ú§|?ö¿9õÊÌÌŒÃãô F=èŒ{½/5/o.ŸÃÿÅüò?kÊÃö }ù©&¿qŹÞëí@ ~ÎófCÔÌ"À»?ú.` Ao´:­÷¶Ò1³àA¶Z¬8˜“Þ¡è¿™Ü?X$°éEÂnÔà ÈóÌ30x®ºúèÑ‘m¼`ÝÀõ¿…)€HBñ_0Yè‘°Ž0¿·„*ý6®øéŽêùLfݺu™¹væ…j<Ìd«Õ0üiÕ¡¿Z(ûé²K.í1æ+€òu—@ýSë²g5]Ä“Ìç +Á‹t½|¹ørË!]@4àK## ###ÖKû‡‡0¶0éÂÀtAÿ¸¸ƒþïÛ›7€³‘ qÂeüOõÿðïj¸þ·Ô… ßÞ4 !DÍPÍÐ ÿßûÛGÃàŽ`BÎËÍ忏ýÅ~‚«W{>ëé鹨3v±ç³«ßP[e1a³M\qŽÛǾümKp¸ù!d˜eÿJpÀÒÒõHdé:Ý¡ Ð#k 씬R‰6öXH|@ hAB 8*À¹`[ÐÚŒì €í€"­@#€Œz¥SÛLõ¿Ñ¸ÐYÕŒ±ÑÔùUÿÆ2^h\+ž·ÿ… ñ@Ó¦÷Ÿ}êùçïú·µ÷o¤,xúFýq7€¾”ÛGU¿Ÿýˆøa _zYƒ²KìçËj R·§ÿÜÚúA9 +ŸÔˆÊß—(i9ƒxôÏ0ˆaàï%éïݱ¼Á4SI¿fÊìÖ¯ À1ˆ(õ¸ç¥8ýÿu¹°|îÿ‹7 ÿïTü£/¿Xø^z¨ß @3Y@­ŽmÑW¢ÞÖÃèÚßíÿJ,8Ôëßz×D×x_ŠÆãÄ‚ž¨7Þj¾aq¢bâ–a¿ýËàþAu›6mzƒÍÐxfß3Gß«& +p¢ëhõ†m;¶½°aï¬Ç æ750ƶZ{w°¶­¶¤­$³šð=µ_mÛFµºwп:³.S»•(@ïÆ'y2Ð{fw![û«…€˜éCÙ׆ý¾3gvÉE>øzëòp‡ªbÄ@è«C 8}húr( +€( Ð¡ÐthzzØrÉZ"€•ÈÀúáóø¡C0ª3± ®œB{ xíÛBÿÚc +ñ¢ €>PÈ‹š¦Ùe¸’øž¼·ã½?=ýâ#ñßÀ À„Òà +8 ÅÛÒ7ûW{.~ÿû=öÿøü·ÿàq:ªÇUo?öXø VáÇT=cE†I õ'îòÇÃ×!ûW”á|擃„Å™A×—Â×—®^_%Ï+ìAä›@ztq`G2)pª˜! À¶îµ¼&h³5Ó³Nt´EJù߉¶?4FçBU“–± BÍŸ6ÃçÎ@U,˜€ˆ + q‚Äšª¾÷ü=ÀÄK÷õÁ‰ÏíðEÝ)Ÿ;™J¥4)ŠÁ_B¿}†ãé$¥dZÄöRùŸN!+P‘øß–¨°¼Žìü51¨ x©CY^(§§³|AXþ½l¨9Óle7`MJsNóæÌ1l²ðëæÏ`Üs6>¸ÜX>÷*râþŠ\èß̓ú„¨ÜýõìÃ+8€"=;Êÿo‡£š(@—ùà='mLÞ"¿Òë…ŠÀÜáã™ùs3Œ ïVùWäó–ûglÀ*€ýköyê÷yöÕwµžèê:  |^°Z×ÕXáT‰ú¿&`½TB'3·jŽà?S›™åôžÕ™Ú¶¶jµ®¥´ôIõî¶Ò…ííµ…OnU÷¶µ© wí{wîf †ûByœ_(ê|!àâÿTFF|(NÝÆ”ƒAÀ0¾Üôôô¡þiÜ€áŒ5@X¢@ø¿ñü0ëMå¡P9á¾÷ã,ÿÇþÎ$dÊ.ÿ¡'`bü·˜Ð ©yaþû£²ð% lÈÍà ¶Ä7üm?{ìƒ?ìóÈÿîw¯üÓ•+W~õ«_]9þî»®ïÝF@üøõ"ÃÕÏ"®¥»‘—¥I²¬o2ý“9@„7éÇ,]_ZºN4àzøúõÉ‹ÿ×Ñ‹Â(Ñ€$Ef¢þw1ò'üô̩⥡ „_ sÍT*¬‹œ.­Ö¶@¯ñ: –Q+(€±Y[ô¡±Hkk‚@°¹¹ ¹³¹k€È K +ø¯]+×V¨bà= Àįǽ7Ú7šrø£ú}’<ðû5> éÛñ&;ÞƒmÈ÷èÒ'¯Ü2ÜÙI€F.õ5Põùø¥‰ ¼Ï- È‚QÑýwÿY‚ ýgzÏwЈ¹§¤)Iz€)Ïá?wlê•™c33¯Ìø^w Î8=Á¸'üãše?àåswügŸ×ÛÅ& ×û·à¿]ÆLNå-qôú°ò÷¨+êˆns´¶¼wV^¿É»&î]㉲ ˆ/(€_RïÕW,òûì·­%ä÷+æ…{Á÷_+Íë_Ô…! 0€4€ÛFˆl±²°f½°€sœì›©«EŒ§øüïÞXjÑ•–¶èÔÄ`ä¯~òIÂ,ô–ÈR~XÈ—3òÞóÏÌ) þL;þ×Ýí¬&†A¯ p÷îÂé@ènFÖâc¶Z6²0`*×í ™².@Œÿã[^ÛümÔÿýXh ™Bp ¯Â"@ w0ÐñSŒ?0¨Úpä…•ÄÀÞG¹`0ÈÞx(p]„Xßìwý>ÕûxœÏo~ó›ïþÓ¯~ðÛßøew÷'MÄŽ¿rüc_¯åp-SMqí~íê]¿GB ˆ‡¼òß 4"˜D&92‚ôØ9ri×™(…/Ê[“ˆJ("@^ LˆµÀ„(þñˆÀ]1ø·©„? sÁè„SÐÕúZcw'á½Ñë`m3}ܼàdVЌϰ +Š¿O«ª:ÿ­±©™wšÑ à@"k9 +à@SãªOˆüð©{ý…}1(ÁˆŸn~wÊ—J"€.É'ù“\¢ú#¤¹}}¢0š–î|r¤À/ƒœPÃACÂÖO^È Dë?­гÿ;- :ç’±Ÿòü?éþ©Æÿã©)ÿÌÌÔ1€¬ÌĽQs|0îñ¾¿tlä–Ï—ã¿hïÏÛççe0Íǹ1Àñ}vnþ ^*ÞÍA};faØ€§¡£õFëÁ{fõâ‹êƒÁ5ñz¯Çëé` ¾L €¾¬ýF ò{Í·Vý‹·Žæ°À©€Lö{ö!¨ú½çªÅà†ÜmÛàzºý¤f¨aNŽò™ƒpmûœß»®ÖRZZªSë€ü¥yÿ¿PŒñ{{ò½…mD°Ø+‹û!ä?Ãq×–+ìüí§è8@fÝ=Ïjü‘6^>˜ž¶L_º4RÒ0R22riÈÊÞ„ÿu&ÂS]ùžºr¹0.ìÿ_ÛÒOõ¨¼.¤+7Ñã¡Ð´N8ÈÂ?îˆá‡‰ohYYÀ¿ýÓÓóK4^8 ˆTº~£`Ñ@Àÿßú÷»ÿôƒüö[ŸøÖ'?øå>üÅñúäïH|‹!rÕ0–s¹Âc†HxéÚ]›²0wó—rYÀùJHVÿ…¯ONÂÀ Û¾"§Se_ŒDä!ÀØcÈP `í_B˜à™B¸! ó›sZÀ‘„ݰ(h#N€¾§µ¿V–h›œÚnzÞÜm4»± P‹àNø7V1¨ú”—øsrZà¿€`Óó÷îeú,S€$Ý>Äïº}Ÿäó'“QMÒ/ÑGiz5éNûй?7ªá”@¡×K§ïÿÈr#|Ø­Ñ8$?g ú§¤XÚ}‹D Ûöç¸*ÿcÐÄÄ –jˆq>‘&ùÓd2ù&Aÿ±äÔǾ™7g3ñãpD_w¼þœ7>ø’—®Ë(·|î‚ÿ2ÌÏçiÿ”!€ü£¿}/÷çÄíôDÝ/4­Ø0´ß›Ø‰pèŸ~#¾f¿7^ïy©ƒ÷¼BÈWÎbî¡—+„#`‹‹·Mæ¤CÀ5kÖ¼T¿_d"ø¹ô¶1þoØPSc…À:ÀÖþˆú›k'Y­œ5Œ©þŸ&ôW³ ¯Y@o›(ûûµ2)„ Wéø×εµgÖe2 +ú ÀLûº¯td9@fuf.P[xÉ2<\R2ÒðùÉ“Ÿm¸ti·ˆ0éêLåTç—ëêê”@`,~›ñŸíCº:8 …tJß¿4€}@´ý±÷P9m²èZYIG^¨Áà="‰-À»€œ$`öM~Ïžþ€úµÿwñ‹_ýò·¿%ü?ðëO~@Èÿ ªÿ¯¸rEuñ=ðwP¹Æ\›­~½W—®O^»zW +p5 K€k&…êQVr#@ž  qTN 6*ÔðG&/FxàbÂ5ư/ä •ËcàB„… !ö± (Z¶#K`#Œ¦€S+oà®H˜7¡' í4~È€}àùOÐ/’€›Džð§p„Ø„ +ð©gŸþý{þ}ñ±ôõIQŸ? +SÀŒü~¿DWj~‡ÆA¥»ßó§ýRZ“b€$û[–4l"“8S@r'-D$@“Öȳeà¦aùž)ZDþ^*a3Àï@üéÔTòÇþ)ÿ6$¿rÌ1óŠc0ú:"Ìñ 78þqæ–Ï]ëÿÅ›Êë¼D >±H`¼·îûlÃ/&òÀdð&@  þf¦÷èÉ£™ ú3€hýq‚AsP¡A®íóËþ›J±XñÅü÷Ïàȉk8¸š8À{ÕÏ<·a乘nhhX¿a}µä(¼ýþ³þƒÈåÿê‘J]©.Pªn™Ö•ªKÕtWXX }ÜëïUÛåýÀÚLæ‚™SmÓê¶¶K¼¨¨û‘ poØ¿™Ì­ÃÚ!‡2mŸ·•|>òyíç¼`å½…€Žê´ÿÅ€ïÿ¿þñ~}\Mâaš:(,Ó¥K)wJa€Tj1Y~nùÉ‘š#h ðââ£M²¹‘H‘*ñ.Œ} ÚÿÀÿ_ýò—¿üÖ·¾õÏÿü­o}ò!þÇ/øÅ‡ÝŸ^±=ö Ëõ¶Êfp-Gcaÿ _½ví®J€¥‰I1 +ć€Ã‚p3DX&œ Ã’¢)\":`+2V]Iˆ÷ç€ +€^i¢àâÁ?÷ýå©€Pòz “HO0à½bp ,ââAl8µÝÜ ``"Zèa€¨ Dmo\‹¥æ° ¤—ª4 w¼ÿìóO=u￵ÿSŠõq$ï¨äðQñ5Ÿ”LITµÏh¨òŸq¤1·_“v8b霟jzÍ›’”u§oÞøË‚8êuNñMû$´ ¤d,™ôû}T¿ó$Žxn ¯ À?ûžä-À˜Óø]ôWh$h’š¤ðö¿’œ9Æv€|¢ƒƒÞÁ¸'ßô,Û.Ÿ»ÔÿY°X‘O²Òº +3¢w• ý<‡ñ¢Àd“ûªÞ»¼]­­tm=xø¯ïŒEüàš w 3ÇC,"ˆ¨aBÁd +ÀÑ„Ü4P~¶Åì%;˜ŸØûEÅý3€ +nÀ +`Mýþz̸°m`乑mt64ÌžlØprvGûðXCÿÕ«WíÖÁ8P:Ý¢SëtjK/•÷½µmʨ_î ò¯mŸc› vTøímµ@lÞìo›ƒBö—Y÷ qBô“eèR;7Ëç󹹓%%—,&S¹‰(@]yN€òóæo³þ¯Nw¨®E€?kÀ¦ú•°”òI§ƒ RåÏR³²fåÊ+9 +hâÑ%¨}'….q§ó›]|Œ fÿ÷ƒ_ÿú[Àÿ8ðË?!à?~<ñvbaáʇ~ø«ãï~ðصÂÁ¬ám•Ó@¼´´tuò*~›»Ñ DN,E–øWç› `úeìÙrð¯Œï;MÝ*D]¤ï‡Ð`• +T‰Ä@ƒ<à A—LTÜXp +“@Ñz(²-Øœ*°*üÑàò_Ë”/a; ›êm·ñCc7ë›ä 6¶¿³}íöµ°`¿`BÿF"UÛï¹(þßô£´ðí“0p¸Ý¾¤/5ã&àöI3>wlÆ'Å~Xj4RÚá“£I?†î››ÿÙÿA€öÄb)6õIb©8îfO zCÚ7ÍvˆÄÒÒË,¶2 ÀyÙýÓ¤æÜ”ß?å?†YÀŒcæ•Ç £ñø`ü%ïÙÁ—–e€Ëç.ýÿÛ*P—=ùï•|½ìÏÇ*³Ýnæõ}o+•ÿæ.Þæ‡«ï½ À‹lÅ·Æãy©>î©G€‡X\eðM€³z½F°ÈËŠÙËM= úq‰|qÿJÀy=2xpÿšýÏ<ÀjÂÿêmÛvl«>ÑÐprvv•8ü«fçfWϱ€§«OÀbZgQ—ZZÔ¥¥êÝõ'†üŒû½œëØÏÀ ¨­  ÷kÏp¹Þvª½Õû)`ÿÍèêÞ-€Õù÷Â~Ãѧ¨­+)±Zad*§Ê?$“Ùÿ3á?·ýëüC¼H"ü7Ñ nG‚þR‹ºR‡':]%ìbúù‘Ÿym#à;€%™ður2â´Ù¾ÉoyííÇ÷7¿ùÃwÿé¿øõ·Àþùþá“ßþöÓôéñ‰D>Sø´èÝ+ïþãƒ4oÛÆTñ€ˆk‰Ó¯…¯r{?ÞK·»öYxláøï›;uü»Ç€Öñ]ß7¨‹L„W'—–®*Žÿ×ò`é¶1ݱ50±ŸÉ°,·Ñpþ_.faûañ%°€?zu2lp’wµ0ú—«WBÆ{¹}\2r@æl,‚XXÄ#^ B@ È¹ Õjþ¯µèt¡øði³, q ˆü¾jí³Ï?ÿFg5}Ê*Àè¨äs€$}>Ä JTí;Ò3’Æçphüßïˆ8biŸFò¥5 â±¼êß­Ìÿýî˜Û„I&ÄàçCå|Z(„ `ôÖÂ.éIúÔwØ3x«4å– ¤y™8ĹäÖ)?àÿ1ß±¸¼>ãx¯w0?ëyéÁ³ËX·|¾¼ðEMçÿópû‡ðo^/›è…'¯°æ×ó•yÍ<hþüwà‰¹õƯИпh>KÀ?êñT;ª=õ²#0S +a7`gÅ]ØÿšÞ+*òøŠø©¿¨xð;‹LÀúý°zOP€çÞzk]!ý[E…¿ ŒÿôðVɰÅ0JMÓĦ-h¨u-j5£~múíl¼kën¼@×öö9Fî;À;ÒÿPÀŸÊdËþ ñ‚S_±ù¿nN®þ¹ €ÀÜýÌÜ ¸4Œ)࿜e[¶l† †BuÜü¯«C–  +N‡¨þ×a€X€š`£WL*-5•?¯yAÞ|ïQ™Ü™8²`’…o¶o¶0±ôöãÿÍwÿî¿ø¨ÿøÃ÷|ÒøÉï?ùÐ@UúµkŸ-|øûîî+ï^y÷]Õý \®1Ûñð»Äa®_U&®^[º–õû½–­ü¯ÝÖXâ€f=PþM\b „þ†f,…ØI…,`yQR,Fä†KU¤…‘?!6ïÚJ ËÄQñàÕ@y?C›jAå´%, ƒ€)1#ûaÔÙÙü)›wÃXd5w7wwk;»4Ó€ÆíÏ~•5€‰‰Ïfbé´`££}iÌÜ„÷ÐúÝÿ{ïÕô§‹·éà’ÏÐ\b¾@Héü 9(½#­žXrì%é†ËŽmºê`zæTî:ÉÉñÌW ¶ç¸‰-¹ia¶Ý“›fuFêÚFë1§¡(XìwÛÝh3êBÙ;„ŽÞÙïëy½?lmG­ÎµŸü „"Ïóz½ž×óÄ„ù¡!0•Ú„úá¸ÓRYˆdÔÅyÁ_2ûM¹ýJKƒnôœPÖ‡ã¨ý3êã(ìÁN¼sÙ¨ÿÎÐt Ü~€êÜPeücƒGUñ8_õô F@VD6Ù#tòûuþ˜oxÎ hîøZ0A§T)¬vé’.Tý³+€~®ýub P”ä<ð9X½‡Âÿ¬‡F>ÿ»Ê¬<XQC€ˆƒ9€¯lÚ`@ÐŒ<.YM”¤:É…ÄKD`Z +(¾ô.æ1×-pé C€mÛ¶G`dýÿRó~ÿ€„ûþ¯4– ÕZbªÕJ{dU57/U/ЪŸÑ¨M‚~@ÀZÿÌ«C8t3º…©%À//ÎzŠù½Å™ÓwÔ¡¥PW •! ÿüÿ½*++-¿¥¤¤¤U#†Ù©ý¿-• +Y«†Àß +`hí¥k¯ÖÛÚB´†Š¯VÍÓµÒhäFq€ò"ãóEÝÛv/4€wÊàk:j…í­èÝÜmš÷¯ó9øÿðÏ ÀÿuÏ~ôâGœœ¤òÛ|ü£O>=>oïÝòÿf»ÎuTþ/惶`´#øÅdÐ<;˜ +L +›?:wMvMv‹ÎýUštŠ!ìNùÿ‰U¿_?¬ŸbÏxþÙ„LRêtH¦ÁR^ 6© Ï]žÎ±FÙÈf›¡f^žÁRp Aí…Z¹ü‚9Ê["IØlÆ"@í94ÇsqÚ˜ž{|ãê t“gŸJA"/ðS8®ÂÀËÖ}S ð¬@8c§Äx%0ÃIÀt •Eeqºî •³Ï™¨»ÿ p„ŒH8ìvÇÝÂ!(<“  $Üô§» ÜCéïQe¸UNŒþ‡†êUÂà¿_Ùÿ=„ðt ð`ô{xüúŸ©Üï9ß‹;âÞ¿?±ßbÙÏNÀ–]ÄñåÌíÌ_Ãý'0Dw%]’ÃO^—‹«ÿ$šÿÕ3á¼ô몓 ÍÕÕ—Ê"¿]Úxa=ek×®½téÒ5WRÇ3€ÂÿÂ=aCÀµk}¼ZjLÇKy1^/˜¥€<ún®›ŒBˆMÀÆœ‹Ä& "®ÀÿÌÔ s~ù)cÛâö¥>._Š|=èâÕZ#\”ÚŸ¥©Mj­Ì$“ÉL¯úÕUUÃâ§®®Ž]ƒ¾¡—ŸßÔò¦ðXxôÚ›©ž÷š¼Þ^ÓÇúyMqá8«2ûçÐ5¿§,ÇËÿ +¢ÙÜÿg`B#¤/ú­bÐ[Bµ¿ÖتnÁwá>Þ³ PÑã÷Þû¸ˆú°ëN&3úÔ€ÊáU¹¹7÷E§îÙý¯çÞ?÷ÿLøÿ"ðÿ³u­úèwŸ|rÜ ü?Û‘þÉÿ~ñŃæ½ï¿{þìõ<·ù ü 9xñ¬¾ÃìË;‚‹î³©†¸€®î+53` +‚ø¦„¢íþåSè.LuŸ ÈõÂn0eÀ>@"6ˆùð&”gñ>ÖùAR{€ÌäÒBpŸ7à’ßœnKç Áôt9ç¦_€iÐF, 6°Yàr¢Ë³qÐÆå?…3°ðÂX`Õ‹«V>üÉáà ×ÒèúC"Ì@Àÿ;Cï ©Nœ°8!Üϰ¸ Êî8ê~º¶PõŸañ‡ÃþpÜ©ªŸP©âõwI…|xZÈiBõœçWeœ@ñ¯bK•´$Á^‚_òœEê9 +à‚^ü¾ŸüzÆgTõô%ôÄU¯8{œ „X6%,vvtDìÃvŸÃ‹Ô8†çZsÇ×õ&ò&&’.—KGg UF’Çï\ï§Røt©Àq’!¹ºÌñÛ º©ö­w„B!Ghý k xéÒ5ßcð´£Px·Ýî°ÃÀ™€´yçªÖÍrÆ'Ï23® à?×÷€°Trܶ¨ð¼l{áUf¯¦¿½»¼Í¸´¨ÝXþqGìjÕÚ|lÐ+[”j­vZ«Ñje2uÚRõ3j¥R™…„À*‘ ˜)Åød~Ííº  @ÕÿQâWîfJÜaÄ=Q,ü±çzº´ÔW+µþ£RXÀôd=9•ÿæh:˜€¼6]΀ ƒÓ͈ † [Ÿ.Ï=ÎIÇaаœ“áHøxãªU¬:üã½?þñ_¸&0‡‡†àDBg$pª ¤ªwºQÅ;*ãý‰Â^§ÛÈ@eï®çœ>áøÔ&üç‘?ýõØç§bÿÀ$Í T?=õŸÝ `ûßpÆ÷T<ý¯ç@}ügô,=ª÷ÞS9ãï¹÷'â–W,‰P"„‹Åñ;ü>—ßñùjj|˜ƒº¹ãêSpªŸ‰èˆèªGGuRÚOLWí¢²[tÿEE^ÆyÕ¢þ×]*óùCöˆÃA ZIçBËzÆÿ²²®k":«{D",`9LìläÓMk RùD³ÒótWNˆÔ¢® 0€ëvLZËx Gì.:¿hWa¡ý…þþþ§àÿ­ò¢r¸ê·ì[YŽ@ |qþÕÊ“R»@ÙkÒ.X°4m’ã~„ ¦ÿuãWªõ¯6ÀR¼ÿ8û¯îJ•ÀÞïyE†°·×{Ráɦ“BQ ð¯Px*=8Z‰ µxCû©ö}ímXÞ+¡ª^#mÿâgŸ®¬ ³Á«Qx ŠAZâšAì€K lèeìÇzÃßrÿ_™/²·ÝÛvï’{wí)¸xG€ÚÚ ’@÷T [¾*=ýf¿ìä»ç9wŽÀ÷Áà³eýîÿóÑñãlÿ=xü“^<~ðÂûÿp€Ûu.ôò(A.Vùlòô†ƒrz™Ì_: ˜Ì£Ú¿J  “€ÿâqh…tw×®Ë%ü×§S*‚Ë~=a¿H0ÏöþÁMèúADÔOŠˆÁiï z{fÂr›­¶–À?j"Azðr¬£`älÄÕBˆY@7V­nhh8¼êõ×_ÿíoßÿûÃHº¦À.÷©20À€aùï<ávº-õ* UþñÓMHž°€Äéf<¹ËúÝhùô¹øÏÇÃÎ!°€iEÀP¿ÕAø?ñÍ-Î_wä¡àJN$Ydï‹Áã'¦«NÍú¥ú¿L2Êcñ¿Ðÿ;ìŽH„ð;b)´þ[,+Bk±ÌÍ@à¥Âÿ-ûCè%Dà LD€›bPýå0€dRZ2« 0Á‹’žáúUÖ²Ô*àŠm‹R"€ù¯A83è///2– )|{QQy!c~¾ºEÝ‹ª÷{ÕÏ(•ó·‘’óosU]&—þ_öîÉœ¹‡j}^Äv  ™œôs?ÇL¦ï™€ý¦“ÇŽŽó§)èðdWfW*<÷yˆ00 ‚ ¼-¯*[Œííímmm寖–"?«ÿ +œ³OWˆÀŠJ<X×€3s€Ö^-VJ´F-WþJµÒø·àÿ‹Ç©íÞ§víi¼c&_ר Š]M™k/\¸é¯ÛÜŸ½¯¿~ø#"Ï.[öØ/V­{âÓOþËñƒçÎ}òÑ~òé¹y»ÿþ‘yóÞ¾Gÿ¡þ:ú-Toÿ£¾Cl²¥ï¶Éåóv v‚RÖŸ>ì€høž.“_i X XÐÍ+úžˆO¿†*ã/D/p2pªã/¬ýË ¿æcù¯Ñ@XàôX Z›J’Öåµ¹µnLO¿ œÓs?]õàïV7,?˜‹NÀÆ,ß›»w9ÿᆽôÓýíû8pàû­[vm"¢ºŸ÷ÅÃÉ +A·¨šw»OÄÝùàÈtZÜ„öng\•Õø 7Ý w7q‚Œ•üÖLJØö÷‰ ÿ³ò?ŽÝÀ0GÍJªÿŠ‹ð2ža5¶ÿUÑÕ3ªªúž¸³§Çâ~ÅíL„öoroJ$€ÿ!¿?Tñù}e~_j*×ÎÍ_+àÅú®<—ˆúÃòý´ÔO'þuŠÙ˜Ša‡Î50ž +Yž¶¬YïXë¸FüïÒ¹t¥±‚F”Þ9…!^ä)@¤ÆÁ”#¥?¼"¸: _¢<×,)À,p HRä``Q!q€E…»Öó‹¯î+ÇAÀßVd,Z T,1¢ EYÌsrÿ¬,‚%Ç”œúC €÷ò$y$Óð?è#9ŽÃ£ÿª*ªóM››ŠÍ&Æþ“¦í1‚ÍŠlÆ}ƒ@~…Ëü©Ã ¿  ½­"þ‚t :Äÿ§Ù`‹HÎþ+ð‘“üžNƒAôµD#Z5­øT5ô«Tó—*¹ça,â,@ŒßµëÉ‘;çËU}är"SØ@9ŒfõMÝ‹ïî>÷úq*Q_|ñÏ®ûì³eŸ}´ê£Oÿç'Ÿü—Oþóÿý蓽ÿu7ðÿÝ{î¹çG×.°ý#á,€½\~¼)”Ä’}`ÚØëýÁIõIâÝÝW—NM"`й€d…p¿~ z¹yùµ‹Qó4šK+riµ¾ž›0Þ¯]ž¾ü׫ý;*è‰ ð¡ào³É9@¥€,"ø/‡€uM„ÜÕ¿{ðá–×LÏÝxxcCÃò†åDr÷64¼Þðãÿø‘OÍ{êõë LÎ^¶<‡~xçNõÞÙI0w†Þsº-n‹*w`§…ð }‰z8‘ Èïqé/®r×ó’]%2€û*AˆHÁÂPò e¼óÕùÿPÆt +@˜ýÔÿH&*qBõ4Ȇû=¢$û{~bq'ØØ#?Ƴ[]°ð;†±²9 ›;¾–LLŒþ!ϕԥ”€ìu©Ú¿º,Orä,WO'ú"·Ep€§-+CŽõ>ÇÚ2ݵ½®U¨køWØ ± àpä%ÀÌ"€ ³¦Õ.AJ\hYè¤ð€ÜÈ i•ì€rÐxë<«^¥<²ò­#O·••->U„p|ºìç+—6¯Á`hèÞ +T9þ,*wÈYŸáŽ‹…~KF¢''à‡=oO6î "fÍ_Œ¼ §>\ŸAç¡ú!áø x¯¿2 8åœ0ª@øð?Š€•*÷{ªø{=ïõ8 û{,=–ý‰„Ó’°$¶ú-vK$b÷û\!_$âˆÙcesNsÇ×7Á±Hïr¹’Éjn¯‹I{ +èu3³Þ˟Ί„BöH¨ÀeåJËúPhüüÊÖ^ãËêØ…ÇÇC;=}²=²"âð­ð­f)ÏjiŠR .]²K +K£®³¥Õñ&àX4nÃÀùÂ]/Ì>¯Î_S~d Ê‚œ¢·ùFcɆâfªü—f¥-U"ô7-íÍÊÜ`3À:ù33ÇÑç‡K{õîyq|``¼*«9MùŒF–-“É2‚h…¢R‘]‘ÍðlJ«Àb¥— ©÷Ø¢«Ð_0)µ +h¥ú¿ÒÓ9è9éõx[{[Ú•(ÛÛN!ÈOûÿZÚbLkëÔNWžNÕÿ[*+ˆD0-h%bЪ +aPŸ` ¡¿Æ ðj5&"Jµr)Ôje>á¾ñyn,i£¿¨OÞ9€«BQÿ‚t§_0ߪWoz÷ýÁ€Ï–aðÓO>ùߟÐõëw?òÈî·ß¾çžwï9{–K¬Á ^ ttP±.7l +v@ nÈ û;RÎ>úÀ¤¢ÅÑuµœ ?Q€<‚§‚¹÷ÓY7ömŠ—D~ÄlÂ÷µ¾ý±@ BCh®5çæ>øÑ€_ðódÀ,škE2 ìþs7@À[¹ËV?ðÀ7ì=xð\îÞ‡ïÝûþî=ðÆ]{>ÿþcË–]'H^Þê$äÆ$€Cá¡z§%Â6€–®!0‘€ž8á¿“i€JV¹{  P¹3œxx@"*BUœ×ëS‹ÿ©ôÀ¡wñë¿j%ü{VþO¬fü ´^©W ×r¿w:{zz71€MÎM~KÈâ·Gˆøt~ŸÏg'0ç0w|s ™œŽ–ÖþªÙìW´R¿Zj¬õ9,܇,…tY¿>T¸Þ±Â‘ã¸öðIVð|;rkˆ¬°³ À․u@n=äMϘŠ$¡RŒétIkþÄ  ë†Siòt¥¥Bظè­ó‹¸pˆá¿;%œ +TÞF `iÑ©6ãb4ÂÃc¯9mƒ2mÃ†ææª¬:º½!mCæÿD Gÿ°¼Ÿ#ê°£ÏVÀuÅUUÇ”ÇÔßÓ.Иd›eTΣª @I®¸Ïpî©Ü\ü?ªTš¼i&/DÒªê¤Àz*¢uÅi½ÊÞ^¯a®¾ƒÞVoïÆvtZØÖÇ`(Ñt:+qñˆù?Áe¶Â¼oÕ´z:=†NO'½_Ù‰—çe…A£ÕoDÈÏ€Tÿk1øÀ€%OíɹƒF‹_“`Cù tìž +äÞl€ÙGÇágï_·ì³eŸ}¶î«Ÿûô£rxïÁå€{:î ^_èr‡M¯\ìîˆ~ÝMpŠ@PwžtbúT¾±ˆ÷eŸÉïN]•t3þwwÛžHGJ =Õ·‹€žbë@QøÛäQ¶÷©½Ã_y-Q^"„¢Q*ò7>ø;:­þ5†þ¬¥ÖB°zõ§ËrÏÁòö??]õàO<Ø{0ýà¹sÿ˜wï¼¶]OØõùçBp#&&b‘D\ ˆu€Û½%Ƈ½úÐ ÕÿD·µÛÊa…³´¼<ëé 6< ðßМUÕ¬ÜèW‚Ì$ýÖ±¸O\Õ @WO/0=czfl³~2ÿ +b³F&[`ÈÎÔ¤}Éø§.Mä gÃ$àèÑ…ulXW'½ÎÇ^ÅIGAå¿···ÅôAoK¯’(À©ö–­¡µÄPÒÙyÚsZщ€4ÿ¯äñ¿‚ÿ÷ øÑA¨Ä}ºÇÀ“…L«ý Ô,ÔóµEùϳàñ%OíÚóaòÎ&“z›^ô¿ùH?x ÀÔ{–àÿ±Ç–}öØg¿h8|üðá½çΡþ?0ïž›×7k tÃPÐÛ¢úsLJröüT}j%_±  ?+v1èïêºj@ü¨ôøþ 'nη,üƒ»8úW¤ Ûö H¹¤‹~g׊d Ü\X 2i ;—#ý·aõòsËV? $¾¸joúÁݻߞ÷öž·w½½kÞ®Ïw?ÿ‹Çîìú;Ó®~c +c90¬rÒ_?x[Hã±8±àŽs€Ø@Oƒ€D¼à_µ)± †ϹUª>Ü`zà–D~¼ø³€/§ „¥úÿîŒG9 ã®zb =ôe8âÜït'Ä@„ê2?A¿ÏŸŒøJ#€ß\ `îøS€Ù±€yRØ0c¾ Üý瀵ee÷Tü‹‚ÿõk×î Ò=òôu¼ª•õ…ee99¡ëW„Öý+"ö‡Øy:i@Xp8QRŒ’:1ùý6©´<(Í9Ó˜3ø‡Páš5kÊA–(Z\´˜®ÚŒåk>~º¹¹9+ëß¹ @·žF@V ë„ùϸ8DúŸÐø7š¨e2Í­É´YF @ÃsxYv6î•iç/œ±'üVÕ±“ ‘X¡‹À ÂU"e0-mC{ûÒm¯¶W™ÖžÖ~¬Ýëõ*<'[½¦ÖÞÞ^ãÆS-ÆÔÿ(ï+OSùz‹äÿ“]©Ð¾ ü7xNWvÒA(‚B(Ð PÈ4¶j£:,@Ý¢~¾%¿*€¶%Oí±ÞAÿ®>ÐÛ‚Óø?•n6ßÂ/`òýe„ÿt<ûýg?[÷IÃÞãÇ|îíwm÷4] +zW,vlÁ`ô Bly° >}\U˃æhŠˆ.€Ø ÄŒ?e ôe¤¾ˆï¿;z¿\4¦núw?…‡ýñb¯òQ}Al +ÿ ‘œÎnfé^³üÂ…ôƒtó8Ñ€†½ËÏím8¼zÕá|ñáV5œ›÷6Ÿ¾ës"ë–-ûñ:‹*Ì]¨†vRå p:…0áŽ[ ·=θ*ïqÇÿ‰MÄ Äè;ÜWQùÎnÀ*UJëÿÎŒîo¦ùÏï……£ªþú„ñžzÕ£ÎDí¨Åm¡7n*üY`±[üHrØ#e:Uÿe1NW+˜¹¹ã› p4• ”'Úÿ<‚ç ¢ÿsjŽÿ# +àX²[è·?t÷ÊáÿzÇz‡#§ÑâŽl "ÈÄ,Á—r¬ž¡Â„¸ZçÒU»’"§€‰Q×Ä·a_XK vH›ÛΣþ‹ðßš]k–¬Ù·¤üñòòò¶Åå‹‹ÊË—ÜœÕÌçâæâª¬ºâªb:g à¯+®¾üpåG«_´23ë”ÊGÕ ÔZÓªôM ¨ð'tÕ˜ +­,[«¸[+ÓMÖkÊlNS¦1Χñ&`jW¨”M…›Ó¼žÍ +ØÜW)´žA\Z½ÚÞª´ö”½F´Œ-ÚV-¡¿Á@åÿiôm‡GáÁú?–þ‰´vBC¨èT  ä‚¬34ЗJ_¤ÚˆmˆÕ½ÀøñÇï%p'-]}`Ó§àŸPÐÞʯàìÛßÿìÙ︧ébÓîÿ–@tûâFolQìÛ./˜å¶¦ ¾cTÿ¡^.Eú Ÿžh­mºûO¼~L`þsUx¦ŸÂÝÁô'‚ÈúÑßòŒ\‰ %Àûý÷¯&¬7×R½Ï›ÿ¹t   »åòÝv›LOgÑÃ^"{V5ì=¼ê0Ôÿ{vœÿüóóçÏþìcën¼À%#õweü•ÿá!éȈ;é—S¬„â‰Ë{\ý«Pã«™7¹ïJлn"áP8Awª,ûUU_BåM€xÆs*g¸þ™  w¾¼«~À^‚ªúGO¨ØÀ]ÿt<~¢–„îDÁ¿í¶Šø}vǰßEu¿•à?æó•ú†çfsÇŸf¢¸Ç@ªÙð×—ÖŠùRû,þ§-–•çÝ¡»í!ªàWÐ}5×G©ÏËÖ–î è -bô"">‡ÔH-¤¤"˜ Z¨XØ5:ñ­¾ýd)÷`¸èü"Ép×®5»ö-Y 3€6z›••5P<@çââñÌŽÛ! +P ìG{ú Œ×úg±Àl@ù(Ê­i³Z»`³L¦0YMš|™V£Å €ÊqmÚf“RÉBi3N€h$ÔÕ1ú3T°6=›Ñ¬.@ƒÂ Ð3x’÷z[ÚOþ–{:;©Æï”ò9 ›h>¤mmíì$دì¤GuRùß)Æÿb=@¡‘ð…iµ&­ Zu‰±$ŸÍ€ïm#pñúýÿ @p ô¼µ_ÚRN?ßýñ#÷œ½ÁB»ƒ €Êü¦hPß~¡·É£ÿm’I¯Ù¦—Üû9ç^?Ü +èîúšêÊ×Ù½Ùfûóý«Ô²áoÜ[ž+šÿé‚€¤‹1ÁÁƒæyPìN?x.sâ {q8pà©y»FF¶!ô?tèóeDÖ}›:¡k¯:14ôÇ;wb€iÀΰÊm‰8BÎD(ƒjÿ8Uö=è¸N¢ ·Êº_…²ŸÐ““î±ôʼn Üß/D*wF<‚ëÃlö3”ñ%+€°è`mðÑxÆ£î0}Ö‰ · =q'œ€þ›! €8"ÃÿD$AñŸóÅjbs3€¹ãZ€dý[]œ…ÿ¨þu—ª/Iýÿµk×®·[^Y³ÆiY*„íûëQŠC8ýCQÁ,b}„n8r"Ž>ß"ŽÔ:€”C,ܪ§U‹â ÿ¶ß¾®´ ‡ À6¨D Àš•ûD€UåK² +‹pÂŽqÛEøQáãP¾:©­_ñ4O«M&µzÜ|ˆôËêL¦ j™VMøjÒòÀ¤‘¡ßn2ÉL¦cTùs,àx&Ké)ŽV+µ&ïæ“ +/}†É¤Q´R…GÀJÉøä ·k­ÞÞÞÞu‹±½¥uðœê{`;ÁåC[zˆ €°û§1´¶–´RíO;íáâ +t„Ѐ€LƒmÀŸ©¡$ø/¡sÑ˼ñøS{>¼“~ýïúšRzj&#ƒò?ßP®ë†ûìAÞÿ7Û_äõõòt¹0êO©ì£ "¶GÏf’Pøÿ]…¢O¤þË£æ?ç¥é—‡_`:–ÿr¹ -.ßøi«çÉß–ï–ïÞ½û๽ç9÷>XÀoÏÛ3rfÛ™3gyëóCo-{ìÙksþ†–awx¨þ.‚„ÃC¼à‹³_OÜŸQÀþ¾x<w'âñŒ„*áÞß§r'X +ˆ[âûéÞ¤†]À~Bxdà hFû/åÿH{Tÿ÷Ô«`2„5‚úñzªÿ==!K<€-?ÁÄow؇k¨‚Šérb«Ï7\³ëbº9ˆ›;®e +0-˜ÕXË3—^ºt‰­þÿ#–§-Î5O¯q†V†ìwÛ×ÛW”:|;®ó5¥¹>& +9ŽõŽÄ"Ö¯p¬ˆt`»Ãç(õ9beeÕ3å¿dQ0í ÀF£ßþÛ×I³0Q€îzk%Z”¯\Y|d`~?@ÿá>R÷Æq£~ªû¡ñ/®jNkfô¯+&BEuÿ5_d dte:bZPÜL0¯ÔªMÏ@HÈý?“L¡6е2­îhÝQIå!$Ô¥ÁÀkRjÓŽ•èdg+üqÓ£è€ÁAa @KKKžÓ„íL**Åþ_¶Wëõ"¨„.ô©ü@qœ®TTž†:У0hD@£ù™¡j´JJŒÏçxãÞ§öÜI€«€îîîïÞw¸¨×‚Ñô&ø™Í6â6*ÜkÍBY¯ç`_bBko `æ˜úšï9ºê‰@wÐügÅÿ+H—(Jò@ö@ðêU«~ø‰'xøÓÜôƒµ»qœÛM à}:ì9?Bø¿öЙC‡ízlÝc÷¯û¶*\ 8ú‡%‡àŒ0dCï eÄ-DœÌ"a á¾ÛM5þ~ Õùh÷«Tahp»/‘ °U•HlrC1ÈM¢ á ‘,êýÂXJªg à‰úžŒø vT¹ã*7½Ä{nwbD>B[Ñÿ‡ VãÏ«‰Péï+ ‹Îç‹åÍ!ÜÜñ§ €”®Ã8{‰¢ûŒ¿K/U3ø—½öRÙÚõöÂ5ÎW,–5„ÿ–•–õ^»ãº_TTôô;k ûC…–¬ &Pãpä˜éÌ0€¼‡à‰®›ƒÿ]£Vi`Ѷó¬ØõÃ}köÝ}dß÷Qù_H¥ÿ|.ÿéªýÿñùÑ“90^G÷ %¨ÊÂÛñqÜ;’?:LôF»À¤¦Óø‚æùUJº¡|ZiÒ*4ZM‰ZkÒb& P¨ËÓPí/„¾_Š8J *ͤöšÔÆÍÞͦª4EÅ}p +¨„Y€§6@|>€'=Þ“D´-½*hÅòŸ¨ï¹ÿÿÐ4<^“V¿%¿iýM ôĶƒx€þÙ§+…i°° „P¦EÈá¾Ö˜¯ny¾å¢7ž/ºw×HòŽ'S³®¿3ÿõ“_Ø¢6[÷@°#z­u‚A›9wîDR/#?{ö#¤ÇÉ¿"öðê›æûõÝSz›ùÿú7˜úòD +`’ÿ¤ãŸ~õO÷?ñ~xãòt€ßÿ·ÌÛs~Û™3¯þ~èe-{ì&ôf,îð{ªð¿a!€ÑY•Ç`âõn¿#D`<œaÙdI@h±$Âδh„Ýñ»TñŸ¨=DâîMñ8ï +ÆÄ2zêyMZ¿÷ùOÔŸHqúðïëá"ü^}Ï Ä ÀdÀ4¡ø{ñOþ#Týÿ€X°;ü±šˆ/rÖ³ûr†c±áRºÊ›sž;®±0šêT§æÿœðG——^»´å?:ëCÎ5–WVZî&ø_i§º‹×_w³Í ž¡Â¡»íw‡ Xá°¯X!¤€ø¤øAöbg€i_ÀÑ›3àÿØDJE&ýü"+‰)\²dßš#ýó3©ö ( @Èn&ðZ ³ÐÀú?3³¿îi¥ÖdRS͸`c3¨€²yá|VøÏIãw×Um0™ža>Ð\Å–Áu¼é7cþ·‹`,´Ù£ØŒÊŸÐ¾(ü=0 J©;Sƒ€“ÞÞÖVmoIK Õ÷ŠN‰l¯¨Ø.á¿Bæ5¡ÐK a°ó´‡ÑG'Õÿ +c¿ YA +™A&+1(Qóµ-%Úü¢"boÜ»çÍ;ê—ÿk €$øÎÐô®®‹Ñt)÷7Â?ÈÒÙK_P[45 ˆŠ€€ˆ=¸ +Dg飷ßw¼êÁÕ|~xUúÆW?øÀ¯Þ»ûíyt¸÷Oí:õÿ¡C¿ÅŽÅÍxA+a¹¥>¼óßv¢h¿ Z~Lꇰè¶DB‘¸Å™ âœ +}wBåL`.ÀA}TðûÑØßï» :À¸»G•à€x½[uÂýa<ÆD8&{þÈv¾§ê©ÏÍ­÷÷+î„û•Ä~‹eÿŠÄ¦2ý~»ß©ñEü¾TýºáÝp/f¥›Ö90w\˜M.U§ô/•¡ @à&/¬=ýÊ+ÿ!ˆB+˜%ÜHç]4÷/½DıÞ~7Ç ¯…ìöPc$bg°Û ±„3Á’ ðèÍùö“œ <²mÛ¶”pÍ®#,èŸ?¿¿ÿÈhÿæò³ö©@ñ8kÁÒžn>’¦F>0ÕËZçi_Nþá-?Bœ2<šF©b³€£u0;¸îh•rI£`àß¼~÷e+”íYF¤es`%Ç Rí?Ýèþ[: þŸþŠíbÐã¡ê¿·™¿„ÿƒL¶C!àÈæ³xÅNÀ?‰4Úgèú™6_­-))y¾¥:€§ö|8z'ýî_ƒ‚|ÍXüö<`ù79ª¯ÕM (þ£Q9Oü9Y§¶Ö&Df›~úë…90ÿ§X xå·¬—ç»¶?§ð:ß=¸N«W§7ì…w`Ãî·ß}ûÝ‘óoïzj×™Cg}~èû7‹tMDâªp®áŒ0»ü3\g°¥q€ƒX€MyªÐ©Ò·ð`Ôÿ™ãÜ@ë¿x¼ +À¯¤‹A¦-ÁòüìôÏœ• ‚:ªý4e› v Ÿ~(úUÇLŠÍÙ› ŠÍje‹Ñ»YQ¡¨Ì¦OV®ÌVÜG`<@4*Rf'½ÞVm¯¶…àUöµëí%‚À +úX‹º¥µµ÷7½Xþ÷œ†`»§²Ó# ²¡40Ph0€€Fð˜—<_RôÆo<µçÎúƒr×U‹i‰ˆNÀwâûà´?ÛE=4~ z}zü66ÚF£f¹Í\›Î|¶¨yº  ‚ O€î¯ä¢ép°ém·ùw¿|ãòô††Õ®ÚýúÞìZÕp`ÞÈ™3{vGàÙÇnÊ€X"\¯R íü·C;Ãázÿþ ¯`•Û*søýXÌà N…:Õÿ„þ¢8c àVÝ…Y¾ŠíªBãtq:_©GÂ@==*ã=ÜÕ‡@¼þi·å=·Û¹ß¹ßòŠß™°ø9üg€XÿÏñÛkìþ‚ႈßUã{ÓW0lõYcTÿÇb±ä˜;þ$èšÑH‚û—ªE€Jô×Êÿ_{í¥µtû…õ–5k¸ÒR"üi«½æ†^RzK¼Z@ €ÈŠõë CöÈú‡o-§–±3¡H £Ó9@7ë¸h… ­€¸P¸ë…·úßê_ èÇ1~&T€ýLÆ~Þ„`)UÇjØò&52133U÷g.¼"xÖ Tý°Dðø4üÏÚþKS(Š–¶+•²Í2G)Äg*Pög+¼èÖ·Šâÿ¤dpò$P©cÐÐyº³“€Û±€^῱·E‹ Á àŸÀ{…˜Tz€l…â´B¤+²X$ ÓþLKÔ¦¤%¿äçß(º÷©;j ðë€mêËÛž@Íßažêˆ +@Ëf¦Aà“Óum-XËgºl¿+ÝÿSœGŸ¾üÝ;×ÿ³ÿ„5¬> à†Wí>¼jÕÆ½{w¿ÿÛy{>?Ÿ¥e7íu†÷×[ˆüqçÿÚ 9ÀÎwÂbOH÷†Þ «,¡H$q¾¥¿ÛÝ >tû©Œï'R@7nUûÆU=„øq'A¿ÅM÷×»Yñ;¨ö§‹;ÞãÞïŒ'V&Üû õ¡M¡ý»e«Å¿5òC¿ÅŽ@M¤¦&b¿ì×Åj†s†}Tþ놭1:éæÀÜq-€ìJ^¹ € ý% ¡ÙK/½†SÙ +èw°0D'¤ø”½TíØzƒÿaÅ«ðkxÁ±Þ±þnÞ ´cÐ7ЭÏ'L¤À¢ÑÑ›[ÿ‹!œ¶-¢ƒàWá¡þ»ïfäçËüþôÄ  ˜G™KóFc¾±7_«5r•¬ÕÐ)3…ü™©7³¡Ÿ½þ8pœƒÇ÷´p&1x¼îh³FÁ™i³IiRÈq0³=Þ1À ´À瓃ƒÞVÖøCÀíÿ-•ÛS#E«V«liiémiù Á¿§øï!vpÚƒÑ?QN#ì”dVô]©™”(zãïî0k±«€n½-8 þÿœ[€7<@ÒÕüò®kü;‚ú þQ^dø×‹a€tÿŒ €U€ÿ¤hè£é†'ïwçßsïÞ óö~ðÃó~ûú‹¿ú˜ÜÄ?®­q•3q—û9U8ãÈ ø_ÌÓz¶ +ù!nN»U–ý 7±€b{àä-`\å¦[î8n7ñ'[ +8ãngÏ+ï!bcÿ8B6чœôŒ=?´[,{¾Éð÷ûs"\þ×ø}‘¿}ÂOå?Á¿/³ú\tåÒ·¹ã~¯].ë4-0€KØú¿TëµkC(ýÈÿs”–•–•Ußð+rô A°\@!=ù +¶ô9€þ¢PÌ»UøKà‚œFaÌ^ÀGÞê?4¿ÿ2ûæÐºHö?ÅãóŠ—ýÖ’‚oVæJ%q€Lîó_ü3€™7 yúÏ`Ó æªâþº*, 8fZ ÌBÞôtÿü…³5@ ÿ¹è‡êÿ“'ýù­Â‹8ßVxUB@ð_QYÁ€v b +Ð:Ø)¤ƒ ÒcèÚpºBÌN£ÃP‰h@!›ª–jýµ%/—¼üò³§éŽ'ÝÝ“³[ú`Çmÿ]t g½-º8ƒëÔôGÍføQäïÑ=æÜZ¹Y.™ˆ]€®”ô1x¡60ÐËskÍßµÔ½‡W½þö#¼þ⋾ÿ«u7M p$úœñ¾Jå C 0ÞÙ³VÁ˜ác€Ÿ~g(O„"¿}ØÕ',ßã^èÿÝ0”2‚T*¶öÇ™>êt¿âƹçd pöPõïÞÿŠÅBÅÿ¦M0üõ%ì?´ø-~»=á#üDì5ÃGÏïóGj"®šaª—b1_ŒËd§ÎmÎ×DòRB€êT àR5p_:ˆ¼´v½¿Ð¾ÞÇ®À—x]à[ô„Èÿ’ä1´ƒ¥+Ö¯X²¯g?€É'iàfÏÿ¥€®€[çYP¸ëÕ»ûç‹:€LìèÈZl,ò©Qÿ/U{‹Ë3ó•ŒûíÒ”§æ—&þOß•9^7@èŸUÕ¼@£xÆcÅfº2™6l¨;Šèߪñº¬+>ûù÷ìß—í¹Àßé?*FŒ<ƒPùÀ +·Pù¿@…Ç£õ¶ý[Ú[Z~`åvªû1þòìÓƒë€H  €…F£1–hÑ0Â`ÑÖP¼ +twä3U¿ü»Ðü^ì¶Mvé9ìǦ€ bö¢Ì8j7=·–0Ý\Ë×BšÐ7Žd€©®IâòtÈÿäËks¿›ÿ²ïï}ýðïýÕ²g{ì&­&&.^œ˜pþö©TázwÆsDÂ;‡wîäí@è`„Í?Ü=ˆ +H8·Æë g\åŒó>?FXPÅÈ÷qÜ'zÜü`zØ~§3‘àâŸÀ?„k>;=«ÝïðûítÓoäøìш5R3\£ó ûbo‚XcꬱÑä´ÝÚctZD71z‘N_ЭäÅÑïœZzV0Ьõû—f‘€²µv€óZ)%ˆÀ·š:HLCØ JBïÒk¬%ø_+² t"HÔÿy7ÿ1^@……‹öì*|ëÕù8á<ëxºh)ÁQ¾1¿Ä¨6K  êŸ3ù(÷rŸý¯Ü@ÉŸU7>PÕ¬Ö>ªdƒ@‚|tÛe…üÍÒŽScSà/eš\tJyâ*O¼wñ»ÆfíHàŸºb"P¶Ö±‚'R‚jøßòÕò$§¿Ke’€ªþõÜüßÁM2)ƒ˜#¥ÀÄè­`V_¸À (üá¶ù¯2ü_ÿåå‹—RùO• NùFm>aý«ùZíxæüþÞfFúùÅJèú¦)ñ¿ÔøOS*57[`ê] ÌJc€’jl…V¶y³B©5‰4§‰á´º+ €É³9Û#|6ƒ ø¤'Uýðz 0ú+i¥Úž  ¿]d(¼½Z%Á?rzÖÿÃ) RH+¹)`%þ+4ÙhÿËh5„ÿ­%%Ï¿ñÔ–.v×UŠiÂAù´ý@~û€·; ZèNNMMRèâ(ÿ¸ïoÓSñ/¯EÀ &P+ø@”cuðá ÀT÷T` +“½9-yôBúü©†@2æO$TñpFwÂÌGÝoy%÷è}?ÇýúÂNhogã‡?2Ld@4†1+õ [¾kÌç*ÕÅJc„ÿÖ ŸU› úf|ÀSéNØ>ñÅÄEyÂîQ Ñ'áù°ââ²êRwä ˜·Ž1æ[§IÀð_—üNr€™Àì&@ª€ä>ŸëxÖ²²¼êoýjyÂÛ§:¥9$°c­c=Uÿek¥%@ ¬ãü?Ôþy]·â':š,- à«8æƒÌYåEåEƶÅ-Æüm~‰Z[’_b„8NH膲|þ•Fµz@ÂûÌ´4eÕ—t€ãÒ@(,Ð*d2“qƒÒ¤Ü°àXZ +üág-þ{Ù™øï¥Jßëm5¶·z‰´JB€A/œþKJ ìíC¿E4OjսƖvå§Ú!Ä@à?hšÜ1 ôï]± @ä$[fPh5šVáÉËoüÝ&¸SûpómOÞ…å_ŒÄòb (F6¹ÙÆ]€(;c#â?9¯DÓ͘€èmÂ$PòèÆO v9>ÉL\a!®éøƒËésä'†žÛ©Bx0f‰pÆsPªânKb€„J·Sbèô¸ñ¾¸Ÿà¿ÅÒ¿âDÂ!@ðžðoMØC »Åá·Xì8ÿÓuÄï@ÍogäÏñÅj"±HÞ°oX‹Ä|¾Ëôg3¦‹¹’ ñ`´‹ÐÀý‹‰$>oô‹¼/FEéîrÎéÇe¥CWÄ»V†o—Î¥£wuV@ó1®©”?Dw2Ñå>þþjÁƬâ&=ñÝúYÑ¡“8@j @ú¥²Èé£wñËU}3^¬z&ëWŒ„`­€~þôy·è§9¥+ÍÉþocüõÊîy{[y›±¨(ßhÌ/i1b Žª¸¤D›ßRB  E£…Rž7LÅ™ˆ^°@©TÎè2g‰û«Ò¤»ûy/ Žp¿¸j<«®êèø¸Ò´ ¸®n núg™X¨PÈNÎ+8"€ Ÿ±ßà zÏ€-ü0ù… ðöÿxh ôFuK{Ëímm-¿ùÍà`¥§ûÿÀ}) + ¢rKeåiøUòB@6pÈ–!@kÐ ô=—ÝûäÅ;ìOÃW €>Ðs@€àmß8Сvt]´%ÃÉî@pj’÷£f8ÿñì?*Llÿ‹t´ @Z€Mú)Œ@lˉDåô[×Üq͇«¦/®ªw±$×nvúW±2@åvbšž…ýq'ðßI÷öÑ gW}–­!K‚7üþ!?jÿ2‹Åg‰lл‘fzߊ8†#¡¿#¦·Žá—@¾R_,Ó]&ürÅb.]lâ/êatºIïr¥Zô:k©Õ•Ô¹¬ŒßyÀå1tkiSÝeµ&uMêõ|eÕ¡ë<æ£úž~Šôqb¥üP}2Šþ<ây)È'@§gÄÀtÖ±<‰DÐË&¿K6GG“¾¤.oš¤nU‹°`ܦoö¦½žZW6Ë‚XLþg qHíÿ¼Ñ[&¬½h-Èi\´èü¡×f@мZ~jñâ6ŒEùùù%ùê|5áa¾QklK€%)@WJåRe–Ri‚ÛUsšÉ”–UÕ\•VW¼°?å4Ëô·®n‰¿È¯¢‡§±107¤GÐ}ÇÒèiz +HÈO—“ +†}œÄÀã!bà5h[ œÄØŽÀTz¼^¥QùA{ áÿð îôl¯Ø^áéÜÂVÀ§¹òß"h)à4lÀ!“É8Р@ õå—ßx|äNûkñUE9 J>@Dl·7x»#£}p:¿p +%|·°ý7›yÿ¥?ã4ZËT@ÏÝ9üÌæZ~„ŠAú½ÓqéOÄ!oŒžuŒ^PÇ=¡ F 8Àwhà“÷Ê£:%ÄCßM<èéðz"í³8@‡“¸b`áÿs y«4§f۶·¤À4úgÎG&`[yyð¿¤oÔôêü–üý>/]¬Lk..ÎÈJ£2­BajÕ*d&“Údòš”³Úúã³ÖÇá _@b Ç"püè´r0íØ±ªºª´Ü•gÀI òK2aD`­E€€òÿí[¶TlÙâÑxµ-êööÚÑhidA?7$ÔßÂbñN6,@²5TýkDF€FhîýðNûsñ@51Gæˆ(€©© äí¼ˆJ_ÞÔ5i›œÆÿ©î@·dÏVÿËÙÿsºÈ„.€Q¹œ(@0 ç6@p’¾yù*³ ò®¹ã:áýqÞð«W…wþÑV©è.õ  n§ÅétîwoBáOÈß.Øï$à¶XÜXLHz? UûTó;,þÝO¿ƒÞsDpâé¿ÃŽ؉ þø»ÿKéRù€Î…sò/æ§Ÿç’zùܶÇmŽ0žÞe`/--°&«u€ynzpMPq‚ƺ=VM'ñ,D +JsJ¹ïGêø™­¢¿O¯cäÇí1”ü:|2¿ÞXéðŸž&¥Ä(à‹ïÊOQ7c ¤KZg8€ïæÃ?ÐèçqƒŽ³ʦóéß*™”æÿy·xŸõ¢$|-ŘYð_Y^~Š@ùâ¢rcÉâ"ÄãKòµF:©[JJÐù_Ùl/И4&­F]? 1­ÆÔ*Ó‚(EÚOæ¾€Là˜™9¾ðhÝ,CÀéGUUKkþžI³Yàÿf…×ë¡·^¯÷äÉ @2€ºÕ`Pœ>]¹½¢²ÀXôª•Æv:Úöa  1ï÷¤àŸÞtJ·¶@ +xÑÙ™BC$@øZA^~êŽûKòÀ«sú¨>åŠ €þ6þ[pjÒ6ëkœšœ +t³5 Çÿøå¸ ö'į͕GÅJ`”7€[Sl¤—w\\õ@.>:׸±9ÀV„ÿÀ2Xó3Â;Ã;wýqg˜çTÎPȉá„;¤‚ÜßiÁª ·ýûC¡ˆÓõ`(âCÀö¿Ã2lè,¼ú'"58ÛyÀá‹Å|X`€a”©±‰˜K—$*àúK™\DëëxzK0Ä/e(CgÿC~u’î¼podü°ŽåŒ0 ÐUsû_WZ@·éiJ™$Ñ#À§ÓS¹¤Á?‘‚1¼ N'©Ð) >g)Õ¿.Eˆ‹}·$(·ó¨:gµÃ(΄Å·þq8t®i-H@RHò’’À"/éÊ»åk•X\´èü ‚H[€köí+/ß÷ïT×Ï_S´¸|ñ>cVV–јâ_­ÍçοFt~&ìa¡«Õ($àô*42¯Á¤U«¸§(Àø,“ îeKàñ…_:ªªÒÒÈûÿ²ÍÐÒm÷¤‚ñÿ¤X ƒ¢µÄÀ&€€öí•U<´¥²UkjQÿÛ÷•ŸIÈÀ¯6$øg€û„0ü±€„`ˆ^Þs§I¾JÄRœ\?9%ÒqˆÑ»}w]SúŽ©®+Ýú§¦º'»R. èNE=ŠÿZá`®­åî?Wÿ).`–O!(j®M¿hÛ»<÷ læàüŽ Ÿß©R!ï'lùc8LgÀ~&CzNÅr§Å‘…XìÏ¿ØÄΟ#´•ª|Äâ·û,e~?B†"ŽhØöÃü×ïðQåo÷Ó¾H=Rà‹8|>–}T¦Æb±<+ö þÿ2:£„¸MÖ‚ ½µ=a>:üc:À=×õTPÒÆJ¹ó_úä“üH¢ +—ðÈœ‚Ò1€7Uîtk íÿœ‚‚3cºjÜÉ2àCB)À;&Õôi˜%€8ðó[«é“‰ #`…Á5Ö¤ãíïÖV@žÎá2’ºXRwËŠðé¡CõtæÏ, ©[?Çm‚à¢Â·^›nô/)ßWþ1néÿ÷â,ÌÊ›³ŠW6çKJòKòµ%Æ‚}P­pÍ囜§ËÝsk~2…3zÀ”[Я$Ì~?s¼J¹&A„þ2™BfbàUxN*Nz¼^‚~xáàÀ ÁЪé¬Ttÿ·c`Ë„ö{ÿå˜ü¦•åôð-R +@e¶"›5€•§áÈø_Qi0 rH‘Í €l”­?m}yÑ÷Wã« ¨m¼0…­º€™(Áí‹ÿ““°Ø‰¢€˜¿[PøW`(þäõrÖò@ºv¿y2H6§oÌ .vèÁs`~ƒ`ØŸ€»_<‘ñªz·fVý¡H"‚bï9"Øñ«Ž`ãÏç·` 0b/ƒ +ÐîÀ  Æg§ú¿Æï¯A&Uÿ5>_ ’ ˜è’`"Ù¤kB‹¿´´Œ˜xºø¨âó½QÕÑurL<„®srr¹¦Ç€à"awð¸à Þ§gY$>Œ1”hõÖä4æäÐ3Xy7}L, г@P€@’ @’w×ÿK¡*DKFÚ ¼˜üZ1ãÑÝÊ×`¼OÎR$óRï$].ÝŸá»L46ž'pþ­Þz«°p_á‘Â}ûúÙxàHqV1Uÿ°†éQmÔæ·µÆ|.üKJ@4|­:T;kL™ÂDàV¼ðZ8ŠMÓ30ä— €Â+óý½øJ +E+&a\±€’·j{18Õ¾ïãS---¨ÿÅþ?¬€Ù„ó•[Ðú¯à€‚ëƒhdggúá DÇO %o<ù—@‚Áލ\ÏÁ8˜§c4~ÛâÿÅ@wG°+ ~ù#`hts›~QkäµµÂÐ,z¹`D +äæŽî6¦¯®Ê/È££s€oC}}nØýÁó/Þÿ„ÿn¼ ?V=Ç£€çT} F~û²2GȽѿ=ñ•ÕDÊü1»ƒ0Þîóùc»}8óû}\õÛk|ÃöáËhý3ÚÇ2.1Lþ“ytPý?‘¼ãG£,ýà ¿àŒ@÷Fy”âT¨ë$ +ôÒ‚‘3˜ŒéJãø˜$ ÿYx}úÐÈ“‹ +.a„0Fà-ôÿc.Â~( +‡( O±æà!˜û眱ž\ÀZÊ÷•ZÇÆª“I])ÈÔ€)w€[(fÿN(õcyºiÑ+™º¥ûó|:dî" +°«°ðüü·„àà¿ ¸¸?s>‡öô—+Õ%j­:Ä×Phph5ÿµì©»–ºÞºY¦þ_­ø¯ÿèÿ7W¥)•j™I»y³×¤5ñ³úÓÉ{Rš ž”B[¦¹·àà¿gФíí¥ò¿ýã}mí--­Ït¿ßÃ!€|iþºr‹‡é€‚÷³ÙHa ’@O«1Z_.Ú3u§ýÎ]e@ˆ½ìf`÷Tàv&ÁàE} k²ã*_àd÷Ô$ÚÝ¢ 3–þ¡åÏu¿¼–r½Ù,8€œî–wÝ¿ny:4ƒæÜtóÜŸ¤oqœN8ûú¨A?8êëãªç2ž#è  ÝüñDŸ¯Le¿ðß>ì³°È?†Ž¾Ï·~Ÿ¯ R¼wYc1_ΰŸÿÏé<üæð›¾aú°+vQ@y££gïô4€¤Î%æó¥–ŠI>Àü’•`øÏéùÂmÜÉ)å$¸‚µô !ÿë%ñ9:kãùÈþrj™X«ÇÄ Áy^)=)ã;¿ˆ•á?¯;¦³Žà@' +rˆb`WPÇ ⑼V¨s¡]àJ&Góˆ•Í‘€¯"07­$Ë_ô®åg$ýóÜ„—ÿB´„Ïúû Ðy€À o•—"°ùùùÒþUþ þ2­Z£•iµ¦–|…ÀÏÚ}HëÆ¿ì¿Òÿ +Á£ÅiÇd¦jõR¥ls¶‚7éšêÿÌD$°(@g§°¥â¡-mñ(´­Æ^HÚÚ>Æ@g§PÿUxüŠììÊÙÇô2à‘ d€%°â4ÌYðÓ¿ˆ€¼–€ SÑÛw@È~ÏTW0pµ¯“‚H-b¼5›mr‰`&€n€>Ý–ÛpñÜ:9ìjÎY~k +°•í|} '”þtåNÄÑP=§zî9, Äû8 ¨ÞWø«xßOúú,[íL|e¼Ñ'}ø â}|¾ËïTô×üü¿þÜÏ—šÔD†‡ ûñ€Ë1,ëˆ Àug&’Ö¡Â'x·Œ°ØøÏîáïÈÉ)Í)8S0²­‘î”ó‘S*µ¬<Âßé¶‘ÆØýË¡g¤ªž'ÿØ +à?7÷Ñ àæ€=„œbMcÖ3âu Πû€çý±WXj•ޱ&ø ä}7‚ÿ ‡Õ¥s|ÃCÊÊ.•–x”JT³žÉ|ÛWw56.:¿¨Øß/G2úÿ{»+€j¤µù°ÎGp‰FIJº.ÑÈ4k40HƒÍOÝÂÙÁߨ˜aG«ÒÒÒš³ …`3Ö='½Ü˜f’μه Àíÿy*µÚÞhÛ·œM‚èM…AQ!gÆ,ø£Ø.¨Ttx¹äý%[ @@l€Ü¾€@‡>ØE—¯É+fH58 0Ê<€Ã€mTä×â†Y/‡2@n‹v¬Úø«û¿èÈ%:›>'øöÐvÅκ`ᇃ˜ ê?÷Wtê{®¯¯ï¯T‰½]Øškøkzï¯[ýþ_nýå/ý¿Çý%àžðþçoÖ¼YCµþððåË0çBÿË‚`Е:&òîäÁª~k!ÂÈ“9R¦~ºÒK¨î©êΜÉiÜ!”þ1_äå•6î@ß?çh‚uÛHê÷¢ ŒÝÜío¤çA ¶ ™ZX“y.nìøßX¹¥PZ7–Ã-$TýÛ@:Fˆvp‡ÒÑÄ[….+ïLÌý7¹žcíÚ2€L34Àú-¥‚_`7ÀCý‡xø?¿¿Ú ØØV + ÐßȦ€œ  -Ñæ30iØȤÖ´­°ÏShiuUUYÈöŸû™×¤¯;Ú¬Ü`’qXàfÁ?Έü·¦€‡U}Pê+R~„` `‹ +€¶}” pzõ¿2ý~â´gVý¿evC ‚µâi ÄJÞø›;¯’¸Z@ €¡€Ì۴аuM}C\1w0&g3áÈ[๹@þt½<7È@îîà²'þéÁÀÅsé ¹¹çþÚܬã]:Gd}H:8í/ÄgÐïëû}¿LünïOlµXü©ã—¼ëWù%úûÈú«fÔ§Ë›oÆÞ|ór,VÀ]XŒŠþ‚Ë©s !€M®™ãÎýÉŽºš¬V±ݼ´Ï]yˆÿ¹þÜcío õ<Ðø@Bó±1 @P°ï°^Êi$ +Pp¦`×¢ÆÆR6’LÆ’y_ÀÜO§k‚Ñ_éžE<% ‚mŒàÊ•Ô5Òçð RDà SÉkˆŸgZ‹àâÉ$’æú×þe0 +Z{‰áGP|Ò¿8VèG9ã´p£Äª©±±ñüùE¯¾úÂüW_íA2œß¿¡Í¸˜À¿ÍHxŠa@ÚbùbЪ.Á€VȨ^צ5ÃÒ¯®è¿P¬¦’¾I™rÈ\˜¶€À_Kà/S{eв€×sr3²E@Ú$àQ:‘ð»½ÂCõÿö‡¨”÷´jé no/ €’AC'r€XîïI­HJ@ þSÎÀ• +þˆÇ`Èö`ðÓ—_ÞsçýR]M˜sƒVLuwGoÛ<à þ_‚]SßÔ `3Ù=Éc€òñ#äX +È]^+7Ë7l«—o|`õºšÖ-—›éùlé¹spnî‘çr¬w8B!:Ãê'z¿Ï҇Ŝ·Réÿ×Mµÿ_[¶Z¶†ü?où×D~îs¸føç8½IÇå7ßüæû1ëÊ7Å~‹5qþ/³&«‹[M1QÿßÁ6I+ŠVí[¼÷G•7¯ïce¿þ˜$ÓÅ"ƒ¾@ijìŸs¦lLw©:YmÝ1’Qa@#±TõIn4[uyI¡ «Fë¢FI(Z9#ìýG\´èÌ´@€ëR1 X(… 0ÀÅ¥³6Íõ®åx‰Àÿµ²×ÐØQF  ë-بÈCs×è—~‚ɼ+V'Ø è¼”$Ìû?n[|ª¨¼hé©ÅEÿ/£ì7j©ò§-j­Q[Â.ÀÊòâq)›ý™u¢òϼrâ?k0óª…¿Pš”&õ6LZ“Læ5yy  +€“ži @Ê ÕÃó-žíÿñÐl÷TzypŠ'§°Ø™Úÿ¯HùˆOJÿŠi €gKEege»zÐÐJ^~~äÎû½ºÊÒ€sÝ¢~žê¶Ý®aÁŽ mŠXÀ7Òžb¤”zÑÐsDS‚ÓQú›76É|0÷áֽئ§7ÈõseÉ-˜”9>:`ÔÇå—tò'‘ˆkÿ~î÷ó…Lø økÞ|søÍ¹LOõuyþMüæ,_ê­.ÄÛÌMŒÿw¨ÜŒ@·±T¨ëÐc‡7x¦oÄU[µQøKÝâ‘Kìú'°ÿ ÷ +… ©ò'ÌÞ³§±4Çú7¥,$&ó䢯œÆ‚FÌ +èáGÈo- Îè’Õ9XL¥GÎðGFø‘–ŒáË+Àº •# ¤yTÌýÿøæê-wÿK9%pÇ%ןø•NNÜ ðÕÕ¸í<1€]‡^èß#€]ûÊÛ–B ÎE¢þ׿óÕ ‹E#VØçvþpöÿ +Ðg~£üoúî ϘÔÜûWx521€Í&¤ðÈN*¼Èþ=éõ¤úÿœ4,þ°È&€žVu/Õÿí§ÿ?~>Àø{*<Ü®¥™Àú´Š +iàá„`Ì •Tþgw~jxùå7¬wÞ/ÖÕ@w@¾\ÚèšêÖËoS?¼‹P'læîo~˜ÄcR¾@A‘À€6Äÿ:7×l~â¬|Ýr}íËVÊmòÜU‡/Ìý͹³€¤Î‡´“2¢¡?AÞÏzªõé]¬÷#ã6¿ÃD.ûþóaLú/¿I˜Yªï].*û›R¥=#¿¸Í±µØø£;“¸Ÿn‰Þ¡å%Üu¤5}øhöëÆrÐé/em>Á:øG„å? ùLª&g蔓3r¦LW†<KmkÉY´dÊþE—ÄZΓOþÝ=gA:Ök#=aÁÕö#R' g$§1gd¤ ñÉ¡@à»83=¤FÑÏl^EIW²ÔÚdµºtM"žm€9ÒýuGõk(ÿˈ°àOûåÝèoýÛ_´«p×®ÂÂ}Kö-YRÞ¶xIù)Àyû’ò%„ÿ,Ñ.1ò€ðßhÜ%ÀŸNã ÇêŠëЧkÿÌ¿B¸ðk¶Ç¦©•hûkLðÄø>²Í^ÿÍ›O*NÎì¤<<ƒ^îÒþ£Ã¿½ò¡í’´Ú£ñTû©÷í;õA‹¶uPê€x„0B¶TœÞR)ÙUdO»VˆtàÓ†ÓÙxî’矺‡‰_  +VF˜døïš +è/ÜžøLÚ’Sçþ´Bq*e ”b,Ô‹T`súÆÞ˜þ«àî'ÌòÇ~%7_”Ÿ[Þ°zîoέjète±2Úø8Ê"åçˆøï‡ŒßpärÙ°ï²/vËý1‚ «+6]ëÏ®ù'Î&Ïýé|v‚Þœ% +@@gó&E˜¸ @²©”-}¬:iÇOவº”°zd‡èן_42‚fþFài _ziìRõP|Öÿb„ã@˜ðk[™2|(¾Ôd² ‰SŠè‚¨  ðÝ´Z-Ó]¢suYY5ï¬@aQ]­ËíEí^­«–~7þ¯½ôÁ?Uÿ;JËJÇ®ÁHi4ïF[I,.ÚEǾ]KÿéÒÖVT~jC9ç•àÔ‚)K7d³/nÿ/ÌD`œo]ÙóŸexµòàhÕõ‚ÏÈÔßÓÂü‡À_ÿ?™‚ÊŒeã¿wf ñÿ$$PêÁägËäþÇv§UÛklÇ&´´´¶zD n@O§à•[NWJñ@’°B$J’@,žf ÀÅ;ïÉU§á¢ 6õæÛ2§{2Ø ˜¯åk›bc ÔB 66æx¥oܸlê_W-;œkÓ›;¢æ9à­mÄÐ@¶:Ç÷ù˜”ùÊbñ‰]Ž”¡ÜùtXæ›>’ö“|\&¤Kòl +óÙó'o@AÀ \0¸Ã~‚_üÿì½L[y–'ŠH§ƒKîyU¼ÚPÜ`ßms ›L…k^Ñ×®öº§íöZw®CвŠÜNQ(ó·„i«.¥Ìhô€@oÏ8£ªy–½Ëí…*0žT;4¯U¢Px²VAðVù#Ú}ŠÔ^’6rÿ1¡`øçϹBu¥º«:©T†áëkßëë˜åÏçœó9Ÿ3ŒŠ¿æ1½‚YV7;óG*÷+ØëzEÒ/3Æs®ŸBñ +К€ +®>D ¼ ½²úˆÉ@ŨÈwû<÷E( ÕfáhYˆ +ÈÝC ‹Ãb4Yò@”„Ê}Aw ^Ðe~·Êˆ MLÜñ£MC¢Š\±ž%óx"U]( ¬ +Ö¯€”€9NàŸš&æý<½o»#‚qÁ.ú»X–þô›ð„0‚ˆ5S£}èù\?äÏiýÕö_™å×gùZ/ÿÎ|C…ð„ÔÒ2q-z­µõÚÕÖk¯½væêÉÎÛ'¹ Pÿ5ñ¿öâÞeÖþ_|ñÅÇäø_üõlÀ'ÐÿüÀWPî?4ÔÖœª¨u²ÿoí¬€voàÖ€=0>÷BkòùctÒ~ÚnÇ€ndÌ +€×éìœò pí\¦î!0vz× È:¼Ø½2¶°c Ó;‰»ÝÊÐÝû +'NjûðÛø1 ïÎOÌ/™Ã77óÁçÒ/ŸÏÅbî™¥Ïø|ŒÜÌ»q›I€˜§›ŠuǾþû‹sü W,>ø:=vÓ_äZw › ÀOð&ðsÔv›>þe‚|Fõ‡æž68ü9ò>:eÞ)3#xhm`åý§@#>GÝVÜÙRÝ‹º £PÑyPoNâšÀ]A@¸¯ÊjuŽÈu-{èÿƒy¯ 21ò‚Ö `@Ù%’('%A¬ôŠRä²lôTX Wv‘­ +•¨!E'tT `8\‘éaCªˆ,ÿ‹ðËÃИÆEì$ ;w°Uàð?™HËÙvuDèÏ7ùsd:"ë?~ñÀ:óä";—2fûb&n‡?ë êí?ç Àvù3þ/ö;çÊæD€‰¿ûßÿËnù/ÿý/ÿî´\½zf ‰û¦)à.òíÅ·^«¯ÿ—»:ÿaý‹{Òý/î­˜ëkÿpô+÷„úµµŒþS|"ÐX°×Œì·c,Üþ3#ÈÚÇì ^n<ýæé€³³ €«„ÿË%$¼÷Vìccc– ÀE³ÀÕ€nS`á?–€ íWÞ9ôÏlδO¸sþ/ øÈ|E€îy÷|1Ÿ›n~ô™àß4ÞÜMäÝALDDÀvâ'¾>ÿ½`>wâD1è^»¿‰—È›"@à%1÷s9w®¾åüLþ3š3o‚Я³´KÜALâ~@b½ÇNü+›­®8´Åf>‹Ex½Ìf.Àxo:¡RÜ€‚²ÃŒø±ýãúÃõuëúè²sÏ¢»‰ó*}EÌv|nñ'ÐuqS¿(Üå;7ÙqFßL¸ëÌLìÙV·«@¾ÙÉ €9X€ª‹…~†A1»0B1{A§7ì Ðo,#ˆùUQ2D]Ñz*CÒôŠŽ9?.¢ ºˆù@ôrè5~ Í‚VCàÈeþ” +È.$L¼B„¨öu˜-ŒÑ‚)„2€ƒS£ÃÏyà¯"?ì0 q×½ÓûÖ±?ïày0ô=ªF~ÀUÓ_üðg°û%øÿ³Ï êë¿s·ŽH1€Ök×Xp5|ûäU¢ø'Û›Û§ÚÛÛ;§Ìþëúµÿòů5üùâ.Ú¿øwŽvZõ€½€ÖáþÃ?œ?ü3oíWjoúÐÍå¹?Ðþ7ü ÿŸÀØÀ8ð€öG-€ã»€{Y¤ì×ß¼xñ⛿z €öNhfow]»sõêT‰ñŸx +=×ngï 1ïi«€ÿÍ|ãé]À±•Óö•n¢„ÿW££ÿl26Î,-ærKÅžÇÀ|Ìí¶ÍçƒÁÍÏ1as3G[n)Ÿ7µ€ÁÞ"±€ O ²õþÉ{«îNÄ?9Yè`}álØMÀ¿[®'f°õï<]×ùBßpÿ¸¾øpÑüîüÇ“‹V­à¡ÃÁŠ€}f°^Ƭ^fªÀ>×6âl½bÙöo›’>„ô;a0 ÆaŽ—gmÝ&`[¾Ë=f× Fý¥ èE¤öï*º‰˜C‚]ô2«€/W’DCñé˜&H¯Ž"ó U$îøï'+=šB@ëiQ n¨ +Ó X”¢½ ⊸DÔ0†]²hé]£à@~úOÇ)ñ¬:üüê"ù;~hîý‰¼;È7brEÌs ;œ€ÈÀ0î9Ê&þ;~®:~¾3ðï7þ¸ïÀýoÛù˜¾ñ;` ›5€èD€­ah[‘èÐ40`iàTmccãKt±×6x DC€éA§{̸eN°âÿqÎü +Àì¸w޽<€§Ðàì„.@¦pÁLðH`â °ø³7ÆhànøtÃüC€öØb¸ài³`”÷á7ïc3y&›D–7ݶçP‹ý·˜-çžÉç6>Ï|¦MÓIº2(š ÁàÝæ^üúƒâAþÿy©pŽ`o°oü¶Ä§ ¬À~*l”¹ãqßüg³•‚{xÿ¸¸¦¾é¿2ûù˜éx±êˆPxM¡?*ÕˆZ¥X{„® +wUâ 2EñÕm”ûuIäûºX¥V¡" r„µ";øX|ôc)ØW+ CÅŠ®kl Èšˆ^ÐáryPÂ>Q¤ç­ìSÀ-‰˜M6è¢å„V­bÎ àé ¨ 0¬ +gUt<ÿýXóG òsøß±w­c[wìÞš;sÀê0¹ÀºùÄŸGÖ½ì7:¶·éßås|HǤÖEý>·@È5€ÛWOzè<9Õ<ÕL?Õîœâq@œpv¾øo»ê;õΦñZg;¦Ž–ÛÍ¢~-ZúíMÚsÎ@Cwø×!h2%þµô¼—ìµÿþ%ZýÕ2ð7 ðÞŽè?;n'ä¶›-Œco6ܺåÌÚá€y~(ã¿JH~«Ô9…ÀÕk·§¦œÙì=‚ü1žÐÁÇþözòÂE´À ™óîEÖŒÁ8{åí£}ø5ûÉ ¦íf@žÃ.€ Š÷îÜ\çý}N°¹ÓèvÛÀ0! »ôÇÁâZq3vPø'À ×c6¡¼[ ØG»eøw—ÇöBÙ<†í°0ƒá:@¤*\V;x:Œz·"D(-;*ç½rÙ!p«~GUuÁŸÀ¹CUõhE'ì‡V/¥à¾C]rDeXv íË4 + +*„BA§c]4ú4QÖ„¡óP:z¥2¡Q—$_ԱƸ†#ªÎ~BZ”xƒ¡Áj@„¥ äY¨j`/®³º¨ŽVM›Àç‹t¸¾Óø¸z¬¤ÿ#àgÐÿÔÜW×™àîâ:Aúú£Wúud{›ÈÕç +@O"~E+ „ @F­a‚ÿ« ÿt¶ó¢³½áÊL8Ml­½©)ËuûÆÆZºŠ×òÐÝ×WŸÚ&”ýíMµ´Õ¾ÔXË€S/jA˜Ì +þÇ)ö‡   €wñ%›ÍZ“€)ü{“ǘ +€Ù)v¼vuêæTö^‚œ8€ß ²°#øë6íÝ\ è6ŸÖ¸à]»°°Ð~åq?~—Ö<&¸Ž1 hÝÌç6sÏ£}Æùâ¼{fž>ßÖæGŸ‡0Øq‚P€Ø×ë~€é@±ÌdöAA¡l]÷IÀúð0#)j÷—eá.…ü—ÍR@‡©D }êÿˆËLø«ìÿK!â(G¸äÏÚ¿jD¸/»Tb .×6Åô÷‰Ü7. ÷1 ¢«²~UçÒ=tDEá^D q©zU% s€…}˜0H'ïQp‰†. +}¡fƒÈÖ2A¬@†‡ Ù¤@á¿(KÄ´žŠGX*Adàbw`ü¬³ªZé1އM›Àç(ù +'¾ÿ9òüë«D;EÿuÒqó‰õ¨pµ¸¸‡8ø¡Ýw|ZÅ!¢~¾ƒõ‡O2[˜ðMLø¡èºJøO,ø?Õ|rjª—öl;…Õt1×Tƒ3‹‘Àµ¦l°ß>T',o"@wòiÙ!î7OÚ9Ýÿö ÿþ%ÚÙ_²ªÿ/AP;n¯7Á?0ðhà£Fú ã„Ly®_&@SpèB sjŠžtoÌé##þŽ „´ì¨øóÀÆÓÿôøÂØÊŠ}Á¾°m¿r%zvëŸ ÈÙŽóÍçáŸÛûÜerîÿš2×›ÛÜȱeáçz¹™`ÿ¶¼À÷þ$_´c€ýB,°OðŸ›þeŒåU-å0Ûœ÷¡žk[Eƒ¿*TËœr7G`Êß¶©Ôa ²ùðoäªÊ$âGîß×·ËåmÖв•ŒÒ+":Ú«.4Â: RålÒ ¦Â@ï©  sÓ .Aø¯Eé âaB©hº¤õ ß_HÒ#xá*t b~²Ë5:ìBC Ê±¿‹~Cá\(°`@¬¨U×hU-WG]£ju¸üœH;¾ÓÑ!ÿpGÔ¿ ÿ;¿¾h=‚þß”Èâ¬?— ˜Àcè'}®ú?¿¹ãIÀ† IŠ­­]á«áÖ«lLð?x²}ªy +"@4O5•ÀJ& hr¼M˜l·Ÿ¢K#ÛùpUŸ€™°s* ÑäŒ÷µ§íÿµÑ~еÿVà°  B€£±ñ±À­Úñ[{¦ïL0cpù]¹x‘E€O{K m³·;g¯Ýa €±,ê^‚üîÓ;ê?«à?vÚ¾²wJ«N/4®œ^XXð¾Ò~å}©|pÇrꢕÈ-=dïWco»7¶r¹Íû|Î2€™pé·¹{‹ßûvÝ|±Æ@ `ŸPv ØðïP;'HÜF|Ïãþª2á}rú¢9qG-S|N‡Û BE2$î⫲3Ï}Xöèfï?Àœµ~欞j‡*Ü#eŒûÁÓEÝÐõ4•Ž2뼤%Î8dâtÿ+ºÔÓÃ@$€¯H™VMS$Q—ŒŒæó E%M*ÐgÐÃñ°¯¯u(J¿Gø¨ý‹Pˆ²h¢U‰jZT1t€^‰öQs~àhõ‡ç€PøÿÃ÷p+Ÿcþwüüß‹ñ»|‚˜©¤Êü_*ÍÈð'¢ùHõóþ);6O’ýÖGŒ– «áè1ãºN¼Ò9ˆ€l{»sªÝi56ÕâjöMÈp¬ïmrîTœµô¸h_kò&/!÷Š÷§_ÂÌ_Dÿÿq(Æì·ö[ö±[Âÿ[['è Ï:³Ú Ì~³›)$%4{õ굫³S%géÞ=û=´ôÙ³Ý(,ì´ÿÁ€âþîn;GÿöÓÝüÀŠ}¥&AííDþMy?~O>6à¶èÍå6––æ $cA›-ø|$þÝóDFlÅüââü [n®.·IŸqs áXð™ ÏÊåY`‹aûú‹Áü1°èÜG`_À?:ÿXìlÃB¯*Ü­˜}{ÊHYEŽ^püGTi‚ÝxeU1–·ÑF¢o9R­ê°éS«ªh´÷ TV!„v<Â¥ƈ ¢ì(Gx‚Ÿ vv\¡7}‡\ô qº +ŠBF" „}è‚ éš¡D*ÊáG +†ö@95ù ±#™ õ)á!MÒ2Š.z +<%@D²a”¨Auð/ŸUW‰TGÙ+àËæÿ߉8|ÛŽ½Áÿîn‘Eª[­{{K{ҟа0¦0ßüÿ5¨q?û¼ŸÔñdþ›àqf + µõ*.'ÍÀÉöÁN.4þ›§¦¬ÐßhpœµML›(Æ'¬Gï%èoj²Û&%@c?,ìMï/!ùÿÒ©S§^2/ Ô:‰ Ðn¼öVí-"·¾Â‰ÿ¯ì`@¶tpâõ7»Ñpñb7*Îζٶ۳Wï\š…pÌÉ3ƒív$ýíÞ±…Ó^Ó`ÅŽÁÞÓ§½v®XŽÀP®ÐÛz³¯´_‰jûñ[ò“ +æm'ê|ðKO,åܱ¿uoðßÿ&ö‹Ü|q~õ˜­¼”Ëm-mðØâÍ6÷@üoM,-™5€˜Í;áþæïÓ.˜s»âÿýÄöÁïP.cHÈây6íSïÊÛU—5ð½®_¶ÿªåt<Á¥‹«œ©®rÞ_@š]žÐ/‹w]êˆ!é‚fúÈ ¢«\ÕGàïŸð¼`”÷‰?”Y[È6 U¢²H?L¬:\Dä‚`ˆôÉ`ó#=‚¨…˜)Š¡hš¢U~E—Ÿ÷øýŠ®÷øZ'ž¨Ä#Ñ[@ ò$”„!Ô +Œÿf¢nš#E€j:ˆÈê—* ”;~Øárì þËn±Eê[ëî¡qÚä&ø?Ü¡£8A Ï%”C>Ο?˜§úD€Å².I-RK+ð  ÐZS'§¦ÐèÌBèlþ×45šÎܳ‚ÏΙ~dšxœO-Ÿ§tÛÛÑóר4p +)€ÆÚ—ˆÐ1ÙþMBê;ªÿ¨üƒ°&ìU"0žu–ìÞ¬×Î<¯Ž5eS³„ÿ]œ@Àø½±qd +ôì–ÿ½ŠÃýÆ‹ÐZ°ÿˆ  à;/Töå—äc@Ñ–øûGÍr_bÀ&Šý±X~1w¶HÈûo$ÆÜ¶Ø–{Ú½µ‘ÛÊ-mnÁá$`iù?ÀÀÁpúÞâ7zózcå,ÖóÿÈê‘f'ÜÞ–Q‰¯šcþ.cz/ QÌÑ)r7ýue¹Cݦßì6s ²éü«–åûÄ"„û²qÈ?Â-|âe6uB}¸aÖŸò%GdA@äi³;ÊzT$tv8äm€° bi¡…(JDÄJ&êóLú|Q­GOf ¥2í)øýRO¡E’|ž>¤D¾,k>ŸO+$|ÄXä@׊ÖxÒpl`•?™&C@ø_U~9àoõÿ°£ÃÄÿ=™³=ÕŒõ­ÛGZ€Âô¨–qÕN†àã"]9€¿ã× Ÿ—¬?|2°¨ê÷Ù à…ÿ­ž.dpâN@SÈÁƒÉ°C·Ÿ…ò~»yÄé4üÕ¬ú-ÈÿŸÂ3NÑÖ8@W4Ôšì øŒÈí[µP€zÿ¿¦¸5–-e³^ÚVx†/«N9K ³³0¸Úuu&Dx`4§íþ_´&ý˜j@»‰ûÝ+`^Ë`Þp .€W®¼Ý—MŸFŽýÏ%ÿœ;ïîííý†ãÎ}Õ=ï¾³^p€ùEx÷ô»‡c6ÛßÄo|d;´I„{ƒ8À÷ö/Ñú,`ió·1ËSNü+w¾—‰ÅÒæ¬çþ‡e³‡N†#æ6Ëô´äË@u¸ëº¸4P%ü–*Âl"*‹ö­*õúzJ2„dUää˲!Ü/‹rU¿Œw1HIcwYt «É>…˜(TÍ¡6ìû`^ã‚ÚQ–£†ä×(ä×4 Ð%AÔ Ÿ($-é‹NzüŠÑ#…<ºªG•Š.êCKÄÃhü3] +¢*fzD•~N!“Ð +Pˆ_4ª ´V!Šæ#±rV^U™¬þÜ…ZÀè—aäëø=ß1ÿYw@~'Ó¿hÝû11…ÖÓ­;Ì@66~<`½þ©ŸT½6ñd4é¡Xa! ß¬„9ú'øï|gjͦ,@àÓ€€³Ö¨užà;¹ÊOXï4)ºû!ð³7"ù_“ÉLÌg +p +bÀÚ=700N¯CùC€þ„þ½m€·n•²N0¯'ø½ÙÝ}ñâØ=gûÔlQ€å«×®(9ÇcÙq{ÖëµuSüïÝQ.ò!€‘Õ xÑÒÀ`a…W^0VÿÙ€¢;vìÛy+àv?8öà™€ ûlÑ6g›‹rÇëc1÷¡bl~cÍFð?Ÿwo®oŽæ7§gè©è€0¿D|Ó~àö»¸¹ô[“››™ à{'fœ@GÀè¬ç'ùïÚùûWõ²ÀBNþß•ïbÒNGh+ìûç0Gͱ÷ŸKÝv”ëU ÏÄ¡#¢ÓËËÛ#fç`•Åû‚ZÝ.WdÑÐ+(ˆô6O3( ,—e +þñ¶e4 ÀÓwDbI¡BÐÞƒò„(i˜ø3TÑ +j ëÉÄPë¤&þ³²Öß +š”hõ´Eéń谾KIb ¢˜ñ„ZY€‚¢èºaâÞ^¯ ÒQGÐ6X¥OwVVÕáѳϼðßO~üvÌ~wBüÏ™ï-ÿ?\§fý×X½©ËñÄf>áɧ¢\è:y²kGHèâ?ŒL+@Âþv†ÿ@CS ©ÖDü@­eõÓ`à¯Ýؽµ\0‹§jÏá ¨¼Dèß8€‘˜<0n'ø‡üsÿDøæÖøÞV€{Ù’³„ø~ÁìæÿÕ›fà&\½}s0¨ì7í0Èì@ÃÿŽÐnš Žð^´Ž1"ø‚w! 0¼/¿fK :g’[]oï3ù,±y÷|ìolÓ6Ûu›í†mn~5h#Ô_›³Õ=x°ù‹`ŒðŸð~qccsÞ}hzskkqkci#·‘Ëmä‘Ò7Íþ­¾ÀßœØ3øÒïsçc½D/ÀÁz~àßU®Ê@càôvG„¾2rÙåR/[þ•JEG2@¾,»àÆ'Täˆ9mŽ5êÀwbyD¤WTAÊàË.ÝšŒÀÛ»euÂf¼g_ß`<>e…€Šd4t„l:q¹„HþdBdÝÐ`¨ 0 e¬´tÌ ¤O=¢K}ž¡J& +¡T<÷(1¿Æ^†"Á<‘†ª}I-4اdጮÁ ¨ JÆ¢¡ÑûèÓ­òD!‘K®Q¦"; œEoÀ³ã‘½ñ·=ol›®½{„ÿOÒ|ópëáÖÇ:Öׇ®aד½5—%žðWÖ¥ûpêºz’k<Èôèlžjæ@$€Îf§%` Ôþ‰ÀɇýýL ¬J@c#Õžk"è' +P{ŠSÐ Ðs ë)îg À-:êú—ˆü ð¿‡Ü/9§àFEñÍîWAîÌvÍv._½v›m€^/&@' n4ÁaÇó—AŸ»»/®ìœƒ ý•ì•èò¾ü¢ù” @Ý7òæÌZÅ/žÌçóóùywltÕm›ž£Xÿz0»[Ÿ Ú‚£ù£±b1¸8Z„&qÔ˯]šùæÖ¡ÜúÖ/¶Ö·’£@𿹙Ë/¡Õñ7÷l~”3퀊ß;Ñ››Ù8<èuàʘwáÂÂÂ…+W’•}Ùð8`³¹Ýuÿùšç.ž¨«ûÂ~¾¢úù\~ݱQίŠmØ®çæÖf¦×¦oÄlë£1ÇÆüF>VvÏÇb‹ó½ÁÞÞº™ck›1÷èêæ¡¥­­6 ùÅŬ +дø- `iƒ³ÿ÷´ÙòÿL€Öó°6ÊÕ2 ý ¿/›8¼ÍÚ¾áá]î 0Þ–1Hæ3w)tö”-š= ¨/¨‘H™g¢¡;¢–]2OàcûY À(¾rD~/*ˆª-¨šæéKF“}’¨vÐs9 À“]Èÿ_æ"¾`h’.CÑ™âÆý ¨ü3š¦(š’̺.¨•d<\I)ôhÚO%„þ¡d&£_–ûRé~CÐΪšÇãfˆB˜x/a%êŸyT€(®V¡pI ݉¨ÈH<ƒoæHGÇ6Ñ©ZøÿÔë{ʨ,¸\ÃOô3Ö7åõ'Y×ÅK#`Og'K;§8ýßÐŽÌ³ÙØäLø×£ñvVî?p®ÉŒÿ1 Öûg Oqmà7ÿ œBÿ¿¹ýfô°ñð?‹Œ¬‡¥l©sÊYšÊÞór$ÿfw÷«0œš‚pvêöµ«·§Ì €N/º}p À„úÆÝYÀˆýÍ\ÎwŸ^YYÀ$àW®¼òNr_ú~J ;ö SHy>öƒcǾ€|Œ@Ý=ï¶­æ7ÊåõõyGl5¸:Swcut˽ž[u¯¯Ú¯ÛlÓ'ÎÚl¶ ­.¸yèDìP,6º4º8º5¿µ˜£øcc}½€yÔ–‘ÕwobŠáom$€V€Ø†Úºc½'ò€Ò%”žv –ÍòŠ¹Ý«îùyÛâüÖÖhþPðÐÌÌÌú ÇúÖ/Ê£‡m_­³½g[ý³µc½ÇÊÅÕ`Ñ+.Ò'ËæAù×·×Ë[ëþ€¼©äA?9ßj ô÷~ó„­X¬‹ÕÔÿÖsýSÄ?\ä—·Y‡/ B™á®ÈÖ>tÒU–¹œ~™ÀR7~GD®éWÿ#®ˆÜû¸ˆ\¦» —ù2Òîæl_ù¾ '£ø&úC²ªOèÄ$¤>a½\Ѭ‰Cœ`ߨ c*›e„çB¥¢O¢ OßëýqOØ£(Ic¨Oñy¾Œ.Žºd1J‡ÊÙ¾,ÆêêòÁà8XÏü›ž;W„»‚‹`F>âˆ9êƒz +åáÊ»­n³C€P1F ºKê2 +ˆ0?0sþ°–a߉$(„T]޲ +q¡q™âk‰§ÀpÇ@dhð³ŠíáAY”ؾGÐ ý†"’„(†(H>Iò´ú|~Ÿ`<÷)‰¨_¡× ‹•Ds”B{%Õ$÷{B]á”Ç3™kÉtÜßæ2 +²¨¤èU¡Áw[ᡉ„§u(¬°£ÃPc‹M™Ðá0á“ô]ì‘z +*Ññ,FÉg¡ø¢Z#=o|gÇúç‹ÿX·ú žˆ¬ó(í'ÿ0›ª.q#`×É.$ ìdÐ9ÕÜÙÐÐéìÜmlÀ ß£ –Ò‡ù 8¢ÀÙ3;ÀåS h)pHðÿ•¯˜¹þkþJ¥q.ÿ›Uÿ[¥Ê¿™ `5@©Tª‡ÉßÔÔÍvnìCàÕî{Î3€ÛËðpf³M^„ÿÞ•1HƼ§½„ù§W à®"§w%­2ÀŠwÁû¿"p%zct~å<^h«û{·å”w=xR3A´ïÇÅÎ"‹¿áŽ­æÜ‡Ü«¶ØÜŒ­|lÎvhuku~•NMϸti¦nmôú¡ÕÕCA +þ àW7 ôs£îüº»œË•7F76!ÿ[ßX\\ÊoÐÆrEîÌsó+«7àfþ›K¶¢­7–w÷ÀÏÁú²á_uU«UÖÿU9ý¿].³øï²J°À—# Ä ÕU¶÷‘Gô$ãáõÝÀ6Á²Œàj2Öíc4úÿU¦û¨ëF²5l0î»èÔ*Ì~DC)T +š$°ò€Sî.UMíá°k8‚ÎU®T ûƒ0Šül±"á¾&!u/f†¢¾D8¡hÜUåLýÚy<(ÖYF@l– þú¸7ŠÅÅX‘ þ«Á¯mDøJÇsuÓ½u½sÁu£½±ÕXÝúZÝÚ±K—Þ»¶å^ÍS žƒf07ºIáRn &@h Ì-å­Éî7p7ÀÚ| ðﬥùK6·;$RrÐx°¾Ìµ¾Qã„ãx‚þmôýQ¨_e^™sû8¨Fx4_D®ªœ¬—¹OV„ˆ‹%‚0ìcýßII”Ð@/Ë‘²#rr†ÂCþT©ÀYØ H¯‘…d¼ó¡(;\l?(W”d²¯O—EØëý>$0Eÿ´ …bp龡 ‚fˆ˜4€gJì÷h?U”¨¢º(h5 ¿vVÏ„»<ýqT]ÚPÊ“8CỦ„û4­O5QK+‚V3éö¡ŒæSú‡(Ú7žÖq CÕp4’þ†„4­ÈÙ2ÐU­ªÃ0 +~ʱZäÇG‡ãÙT€÷Î ÚkæOæáÏèlü´>±8áoõ#Ðu²í¤ÇÓéi;ÙÆ ¡¡³ÞIÿëM @Ã9ÂûZ4òŸã¨þ\à(0ÞlXæçšLw sÈœ£GŽÖù–J“ Œ  XÆ?VÜO ¿³‡ žpžÐŸÈˆ7Ë£ÆÞ¼øê¯ÆneK˘x{ù¶iäÌ–Úïy‰Pøß46Æ£ˆ½c,ôšèøÅÞ}ºÑnõ¼‰ +À‚}{¯¼ ÝŸ€O€MêÅ^+àF`ïç"ëD¦ƒ7lÿ7b7Š0õ¡‚sÓuuukk3Çf.ÍôÚêèlïLnmÚv½nµîÒ4Â~G•¢þÕ-TÛ¶ÊeŠüË£¹ë[îüª{ž®hH „Źü|ns+GÌ`c>¿‘1àrÅ&vX\ Û[°r»Ÿ4·Ù{,oË×¹óC€Ö— +ÿeøí‰r•3ý.àud›ÂíÊeÆ„ÿÓSð¿í ÄFõ¿\EÚÛ…z¾Ä}#„ÏôltöÉ2zʪ¹ž¨/—U%*a¯®‰rH7M¹³@42†Ò—ä ="ký¥â b_:œJ †û)~×+‚Π³ $  Â7ˆÐ <Øwƒ¾æ>IÓŒ!O|0žH†ú2¢­ñ(š¨öD 2oöÄžô¿H… bE kCý™¡ôQ-ÄûDÁWðÔ¤OÆ=š®+­þ–BØÓ¥'û=ZO…B}©Å'½!I¾¨ßçk‘Àˆ gÙ3Þ@U(ÀÓL˜ÆŠÏèû}ýÑ€õGš— ÿ¾åÏú!P>p<=3ÀpWëUO×UaÛN ¹³¡¹¿þ(Ý¥èÿ(Ôžs œs6ðŸ;G'QÀ pÔªû³êç€þ üØ8žSâ=ÝBøW"PÚÕð- (ð/ÑØu‚@@è¾€¦þ±î‹¯bÀÔ,»˜%€)X¶;›œàtèõŽ¡°0f‡{Q/€ÞÆF³'°û;À…¸,\ù½è>5~|Åí½ßv»ÙÀÊ|¦Y»sksß|¯nÆvèFìo(üg +P¼NÈ?W7×»Ö»vlm¦®.høáÑ¢mšÞ6v=vÝöÕë±ÕÕ2z·`Yv”·€ÿ«[«£t.p<„ñ?¿ +À¥ƒÑ¥-þ‰%Àã&öã9; `3·È`ûí·XrÿA0ÿ <x°¾TøÇœ›²£*nCp¿•p<²ÿíH„ãÿˆi@Gè¿íÚf +€™<ȶ±Ã`Šß]¦L° ÊÀmû¬“—…‰¡°RР©#$ï#ì&ÞÐjH@u­"VèDF¨”z+éPRÒ†Òq%þ{>ksSþÐBh(æV ðú?ŠÇ¹ ²=P&ЧÃJEO&”ph¨r|H/dÂ5)Âs%<$ yÂ>O¼OñĤúÛZ&Ô×’ƒCÇÓédAKxÂäk¡tê]O?Gôki2ìoQ$O¨ÕoHZ¡51ák!ì/HD8ÀY€A7MÓ ü”ÓæL…göÇ€åø$àõÍèõO­°¸¨N°àZ¸‹kž684ƒ4p ¾óu‚ýúzb¯7å2mкÀú‘8Jœà+úüç8Ðt®¶Á’ +Œ›ý àã'‡úÝ¢ÿ-Îþs€)@©~vöüìÔ,g–5}°|õWccãÎÎÙÎÙååÛ·¯./›à^Ö›uzYèKÄœ÷²Yû¬èÖÞØè¥ £ÿé…±nkà +]/d_¹påä~Õ>.PŒÅbu'vJnw¬×ö›4ÇfÖffÖÖÖ¦×àß³6GÑÑFÀo‹ÝˆÅn§)ê_£+=m:‹ÍWÝ7b½Ó½Ó6zBìÐjþPy´ZÞªÒwà–cÁu”‘<õÐ(Ðý;æ¶Œ ó;…î\~4ffûQÿ7óÿ,DKÀ&›=ÊüZc€­®˜?YÂ8X_ÖÚ*ÃïÞQ-;d;îsÈ着ۈÏ;ªþ‘Ò'dØV}»X"Q>úó*f$á@ðzz7QŠ +D Pˆožuz…éaEV º=bÿ¤~9Ó<$Ê? +¡ÃÎ †Òªbˆr¡ÍãIj"½j$•>Ò +è*4OR`—>%l[3žþ¡wAó% +ðï{ŒxOÈãO„[£­]þ¿?ÚC,)ÅdX\³P‘p©U×hµ:üÔú­À³Êï«°øqyøYÞà!4Oí—[Z®M\ëâ‰]èô´uzˆàÒÀ¨_ßÀ€6p«pî(mœ8Ê|€SXÄþùŸ³jÝE`ï4“ã3Ù}v|g•Ì›’¹–ëÙ믓 €ö~+§»uñâÅn{ÖÉ"Àåå;·aXšÊÞDèïÌŽÿá +”íäL€wÁîm7ÛL€ÆÓökà¯}ea!{áBûÿñޱ_5€Ép·^Ý1‹Òƒ¶ÇfÖþà?ÍÌ̼÷áÿ ùx_÷­éàuÎýÇnخۂÓ8Kàß;}澇ˆ¸ÅP°Åb«ú¯æWë(W9ño‚ÿªùÈü*ƒÿN¡Ûmù»cyÎ ùïfø7róCî`Ìo¢€}áþÒÇfGëz¸7óø°¾´ä?dîìûkîðЏäËrU¾L€íªšðöF`Ìóè껯«BR’†À#‚ñ®q-òXù2zô`ˆ~²Gé‘GQ§s„æFHÓ<ƒ@RÁ+#U”ÂÉBYM¦%YÕŠ&T~ÚGAµ„Â@%ÍðHBÙ È,ýúF„Š®Å=èÖ¯$CqîxR+èZ´O‚è¼@×”ã~Åç+Éðñ¾øÐ`:• +ýÈóAÛ»F(¥(55Í~->éS<é8Ä55/ õÅãéøR°â +Oú}~WbB3|­’b¯ð·útQÕ‰üDÒ5IÑ ™I"F%«Ð”ËO‹ìЯgHæ,¿ò^ + & +¿Ø­QƒOµ_±,µLø‘€ €Åÿ¬l#ø¯7cÿú†×ëëyc@ýQû ùæÍQüqtîè¹st{®‰(@ªáÜþ—ê¹ö_²ð¿0µtP2‘¿dÁ?ãÿÏ ÿ?\ºsþÎìíÙ.Â'Åñ<Ìçâ«æ0` ¸º|›Öri@¿Ó9NáÖY¢è¿U{è hsfífõ¿ñ´wÅly&ý™¾Ÿ¦Sž/áñ G"üR&ÓoK((”x¸ëƒ.g2¬Òk~_ ñz¿ç¬(ù}>CzCï)ˆ`=¢j¹$øËì ðT¾´#–À3û›p˜)ÇÇ‹GrŒP]åßœ<xºVÅ÷[0 kgµuuøãï¬o&ÐÖIØßÐÖÀr€×8ÞÇæÀG‰ ÔãÊ—Ýu.8"Ðp.ÐÀÚÿúRé¨Yý/™ùt¬|¿%ýãÂÿ8£?ëÿÎÏÎÞé$€ +@sA~õêÅÓvgCçìl×UÔ–—áx³”Å‹¸åáíYž ”õ²Gp£·%:„ + Ñë%&°‚AöB¶ýÊ;Qãì~ý +z<p«³L  Ú‚ŸÌ\_›ùÖÜÛ&òÏæƒ\º„»ÇÖÌEôà½K3uÓ×yºŸõ€`Œä«èäܾ{õÐêî:´ê]uZŸÏG(^ÙŠðpÍò«ò¼'èå6é$$1f¼r;Õ ‚}È0#hÉê€(Ðü]ÜÄbß›Ïç×—rHt°¾ø¯r9¿JèÎ63ÜàWEç=*ýÕÚÔŽ¬ÿvoG0ËGEúþý®ËÌUÙ*Hüâñ=ûN"ˆº!iÉÔ‘~ÌÞC€|¼&Œ¾=UÖâº`( Ÿ¢óô€á²žN% ûjîÓô +üøéØHö5§) +ÑÁ¾6OR+郂nÉH&}RFÑâÔ§<ôþª Ÿ•A~ôÓ¤/©H:›ûPާjjN*þ€P8ò„C]“=áþþÉVO(ì‰Ç'=izŸPXQ2~¿ÿOBÒè7 éû|¯MÆ›£-z¡GòOø}bEiLLŒH¾ÖD«ð£`Zl¶'À¾ +Uu —]£êèÓ(ƒ›€õõÅõÅgÔ `V{:>üx(ïr /šà“ÅŠý>}ª¢þà ˆÀ­€³L:=õqÂÿ×ÛÚêëÛþ·ñA`dÁ=ã=§è˜NŸãDÀ¹£@ÿ†süÔúR}‰{K;J'Gþ%+Ûo¦ÿÍe¢éðòáÙówÎs³'júöÆsŽßE€zˆMü‡à&,Ûé +€Û&Â~º?•õz³íÞVX±£) q¥q…ðeÅ{áÂ+ÙW®¼½±ºO›>-p¢×ê ËãÛ¿5³ööÛ3us¦{§¿Ug%h¸ôÞ¥÷Þ{ïÒ¥KkuÓÁ¯§i™±ÑåFг™\b7Ü7P 60ÏÄ€¤°ŸžGôÃsÂb1f3mb¸é¨+Ø[ų `Õ,`vìôìe10xðßpomÀÿÁúràÝ|·>ŠþÁL *·r[ z\.îˆUëw•!ÙW].‚tdæe +çG`ìK'žÁT¨Õï‰wõaL &~/<Ô7BO}†(J-’’n•‘3'¡W AO +}éÔ ø«¤O…´¾tMcMMSó…¦´'qM¢¨_lûש>%N´¥Ã’o'âž¡x†g¨˜  ÄÓ“Ñ„’L*šðÓtsȧéášT:î‰ûŒtM:L¡~ª/Ô–Ðm(þL]qy†¢EzÃO'<Šp< Rö9˜ôû}†/œèòMt_¢k2”ðùZýêš. +I2ô0ˆ¦å ªkô)ä\ÃpþBF}JÉÁÔð³ ðÓþpúø±²ãÿóéOÅïoõ·ZY€0á›ç|'à¿­­bõmõ–ÀyÔLXÁ¿E~†›£mVA ÅTêñœ@=.Gë¥zgÉɱú8×J[?[.þÏÞ¹s‡Ý~¦L }ÇNCðÒ8gîýoO-ß\.ݼ9Ub)aþMN4M•n¶ÿ½Ðd›¼öF”Aÿ9þ·ó$ +íï¼`hûUø©%€ºüN —>™˜y{íí麹o±Æïõ™µ‘ÿ'üGÜOð¿6=7=]‡›¹àtÖuéƒ^À:zC+°·!-pöj‹ZŶê.®ºWi‹ñS‚ô8híbAÂ{PÆ~:K1¿h>`q/þ?ZK&È--q{KwÒZAú=ƒ'l¨`ÑÁúr’ÿ ÿ°èå.Ûü»\—/˲~—À&@ûËp #‚Á|ªL¨‡ê?ºÿ«eÁÀ,`Q-ËQÃH‚  `  Æ“¡æ!±P P?”T”ãš¼¬ÅCýâD¡CìQü¡š¾Õ¥êð +Ð +ª0èSµš0Ì÷µÔ»i’ì÷‰{kš=á®h6„ÂÉÔñpT“#3©(BA“Š`D“Š^é{¡/œêO(ZOFÉd’¡‚ÃTM<¡|]ý5©Ôd¼¿?d9ÈhCCÆÇ›Ž¤Þ Å›C„ú|ðAH“&û‘S§SøC©4ñƒ”§-UBGš‡$I¨øº&=ñI‹f>4ôH†ÏÌTðoiZ˜].×S¨¸~®þرӚÿ,$fÉáSÃyVùì1¶/èó©RËÄ5B?€VÄÿ³m³èlC ³áuP€8oõõõÜ `Á>Çþõ?{½~g}½þõ× ÿëšjz¤ÿV"ü¯/ (•:KõY+æÏîAþe\~¶¼LñÿÙïþ#p{Š{L+`ÎÔ:;gÛº®ÎBÀøO¨?…wššºI$à& +ðj¿ÙŽÃö,½·©©± ½+v"+^ïÊ‚÷Â…ö… W^xÁ8´oËÄŸBþ¾7¿Ëb½I¼ýÞÛ33"äÿpíÃ5«üÏøÀ±ë¾¤ÿ°nºøË\ïNÕM›¾À&˜.ò½Ñâ!Ü€ð*êýn"û»¡$ wÝ` ô@ŒÀ ^ä/rRõàÞiØÉ䬅Ò*øô[îüb¾îâFgÀ¬g ÿ®j¹ÌÊ}tÞW9óO[5¢ÞîŠwïÊò¶,w¨*Kî¶<µ·j&£‰$ *ßQvÝÕÕáˆ Ãø`Ï磚.ÃÐE\¡’ð´J>ÏPEúÓw¡tMêÈ„ â!(þuE(F÷4‡$§âg3e­OÔâCÉdTI7káT¨5žJÅ›Ûâm‰Ö.C4Ò©h4ä‘zz4M9™>®k’2*¢‘2¡ãa¿–~?ö%¢JAMI…ÃQ΄ÞôiQ÷§úÓïzžtkFRÅL8E÷Sžþ×ç+š¯ß39Ù|$ÕO†âþwÓñÉ®wã¡“môR*á°R‘ +º®ÑGð´úZèâ§ø¿ K>C˜GávU6åÌF]OaV°Ëõc—ãi ë~[`§ðSÿ€ØìÿýµªÒÄkþk]»2ŠÿÛ<³mç=ùmt©7±ßŒÿywÔÌ Ôóƒ‡ë}5-€`ðhÃΙÃ%º)Ñ…v&âOY¸ÏWl?ÕÀwÿŸ7í~JÜ8v"€‹_½h4tÞ™½z›kúË„ÿ7ÁÌjÀM ?á?ö7ÛieÛÛ½Îö&¢¨4Ù1èíÿ¿rå¨&îÛ¯¢O+ìdò¦àNùߺôÞÛ®½ à‡òÿ33¬ +XcøÿVÝô42ÁéÓss½Œþsu½pä¬~ÑDôhÀW!<ä¾î>„¿vPÄÏ-y{é~Ý#ÀÏÓYzQ‘^ëæ}ÌRì&ö¤L5àŽ­1Ì6—66óî-wðÛß³}´µy€F믇ežùSæÞ=û*·þ¡ ‘yìG±—ùq°‡éð§–Ѱîp]ª@—ÌÉÓ`×ÖOÂLÁÈhš¦O¦BñšãЦ÷…‡Z qXNj¨àg´žð‘s¡tH©øB5ÍÀR“´L4Vÿ¢&N„=šr„à™@ÜÓÕvÍ×¢hCñæ×}étŸ‘i ÷ùÚ2¢¨ ýHIf´ÊñT_æ-Y“ +‡'=žpE¬$¼¿«dŒwãáDëñã}Éxº¦¿?Þœ +OR¼Žº@ƒâ +€¤ÏèiîµÅÃá¡P—?÷{èÅñxÂjóô§=Z‹(OøZ$M*hJÜŸli+0„Ɖ²©Ut¬šðÏ-êt8ižÉ, ‹,þFð,Wy¤¥…@k×™ÖkþÖ®kDÎÓ¥mö<¤€õqÚ:­ðŸà»¡m7ð¯7éÁáúÃmçë? ]ýë‡÷ðGÄ€Žf­C`ÿì£w¿|˜¶åÒòw—iû. ÿWg§ÿ³vûÂé1´þww³ ëŽE–§`S`:ÊòvsêÞÔM +ÿo2hwÚ›šì˜Q ¿7{aáBöÊ…›W^¸^YÝ·_FŸ$ë§‰Ìæ¬.€Þ`ï'ŒÞ~›Àõÿ.øÏÌ|hÁ?m½Ó½½Óu½ÿ5à?ß Î²¨sIÀZ±âØt‘#~þ¢õXмš$ V‡zÝ‹qQ‰€<2E¢ô1c¤{9@nWÀrÀÜÖf, ûÞüâoœp°Ö°68÷_U­ù~üÿ(¯B×_ÝV·ekÝ•ÕíìýÙùc¸pÝápm3$•áýá›(ÀEØ¥Êåª,…Æ(öµ'4AÈ´ÆÃÇSÇ–‚¿Ë_ÐÔ²¨ôhRãxÓÿâÈ`¢mR{âÔ‹zæ$ôyñæ!C1´óyãÍÍt¥`<Þìkôy¿&u$Õ§ëþ7  ÕôÇCžÐñ(F÷½êOy=¡%Ó555GÏÃaO(4¯© +ñx*MçúãZAÏ„R©wýôúÛàLo,)ƒéxXÉHŠ"^J¥Sýž„Ï§í Qôø bAòù[ "gü¾ÿ$šˆ´ø*`J«BeS±ËJøüùp˜¶ót÷~îa¬Ùúó‡ëgiO—ÙúÎÜX®§K ®þ˳ËËÈüóvÑÿº}kv¶ ³‘c€_½zqÌž¥w¹ji¦¦– þo² Ä ÐܤÛ¥wÚýí¨´{›ì€~û‚‰ÿÿ÷.´¿‚9/‡Êûöëè1‚ÞØ7¿m#Èœçlz,ø' ÿôÞÛL>þ€IÖÖfëצ?¬ƒá?ð¿×JýÿçzùDo0ø˜¾C®ÛbâCpÈU¢ûÈôƒ½½|Ùÿ`Ð* ¹[¹`ö˜Æé©©é;¯h5T“ªIzHFèxø€zðÈ‘´!ˆgUíÒ„Î_Oú}ÿ|‰PüÝP˜v­Šæù ?B| k( ¥š=J¸&ÕŸLÄÓý]“„æ’1õ)~¥g05ÙOËŽOât:¬D}2MK$ZÏøñ8ì&=aA¬H†DÅ¢^A¿‚xWfìwYY€ªë s»àÙvâÿg%9ø,+ý?·Ð"ô¿v¦‹ðÿŒY8?K`Ö„ÿóõÌÚëôóÉóçý¼õÞú€voñ…9!?âÃóçgßšÝ]ø{v³³‡Qö_^žý.m³&úÏâÎyntŽÛíc+cÈœî~õ"€ÀT'gp¹Ià¦IJ@‚þ›7é,™ºÉÅ€›77½N§·± Áöï…ì…öìBû+Ù+W®¼óB´rh}ß~!=†o|ãßë]\ßU{?1ðßÍüõ{ùÿ ÿCŠù×vàé€5„ûsôÏïƒ;‰Zs½˜˜0¾›àc"¶^ˆÿðhÑÆ †'£ÐÛ[¬+? xŸ(D€¨c¹+¹ÀŠÀ= Ÿ$›K`±cÇl¶o,4¬gL12¹(ØWïrÚz¤"óÜ"údžqk`¤\æò6|\èð”ð,ó´_LñCéÞÐŒèÉ(¡àˆÔö$š£²Ñœ®‰wù’†êªpNjCÉ¡š#©þø‚VãšA¥5ÑåOפ&›ÓÍ-ô„âROs›ÿ¬¨èš!êZ_¼¿öÅûGjRñæþ?ú׉–Ï÷ßOÓqªûš÷)ÌG2ÜÿG}°èù£´RÐ2éHM|Ò§õDßMÇCô¬#ýI½GSüéãÊ»]Jó_Ô!v 6×Ä=“­­éÚš¸oÈçÓt-4I¡½/AÐOœDŠÇ?ð„<éTºm"á‰ö§ˆ]„Îø<ÍŠú=žxHë‘Z$]o™ÐaX!p— ÷Ádè†G‡Ÿ¬?C°óóž#°(Üx“]×΀tïòœ·XÀ£5ÛE˜ÞŒûw@ßÄ~Z¸9Œ»æ:l>áü[‡ñÈáÙ· ì;<‹mgÝyÜ"`n4ý¼vŒ4ÛÇeèùP€êÿøþóbüŸšzYÌ +€Ap»7‹7»müƒ¼ð‚¡©û÷é1À=ÊyñÜj>??of‚¿n0óŸþß÷>äœÿ‡3kǠܩ̛9FÈ¿vÌJúOþ?2ø×ÍÑgæl½A3µoaÐôMy€ùÛücE`?ñý67Ô1 X +H ÈR¢y¶ 0ÇXÆ€y÷Ç)@nÇ%èØ‰¢ûOòK››€ƒõL£Ù´ñ« ¸kš÷ê2äÿ@ûª£ªÞå’ÇvÕ…ñ¿„bUSwUHË®ŽjG5Ò”;Ó9\D 0á³%IuéIMlkGUVÒQ)SI(¢F!z¼M駘|²ëÌ™ÉüžãCéPÂóÁd—¯&ç=¢ ò¨ªê¡6 +· ²˜N +òYôñ7¥ã©þTª¦9îñ×|?•Hèä·Å“ +Š5ïÿÈ“ñ6C©I+ZA{·¦ß(hJ¢ùû5¯+™p:Ýÿßš¦(¡#'“þÉD_(Þ^ózÁw$Õ:釚ÓGÒ©>IS¤Ÿ@ßO¡~&îëÑ5Éç ÑGÓô'<¡Éþxœ@×dü¤o¤ aÞ¿¥Eê%IÑu£‰E.È2R)®-`•~³'Éì€Åg”ØãóÜàÿ¢üÆFà5ÿµ× ‹¥¼Óuj€3ô‡u¾  ¦kö»Þ:æÌËgÞ:óò[g€üo½üÖËtü2œ·ˆÀy‹àömwèöξޱòü¿ä‹u¸»ˆ&̲ ³ÞpŽ7!rç.8b@çìµ;pD +à&‹JYÎþ/OûoÞ¾¹Ìò€©Ûè¼Éb€vÂÿl6»°€í•,‡ÿWÞ!PÝ¿_JŸ$›ó»ݹQk `ï'3ÿê¯ÿìíÿÝÌ¿3ÛÖöÂ?ÀÌ1ZfÖßZÓV ®$ ˆÍ*0ØÌ›‰}öƒ»ùÿbo¯ùho1†Ô)Q0K,!€ž°+î´äÝ;Å€Gz7ÆáÞ±î\]FÁø°žü#&EòÃ|Xâ¾Ëry›üämÈ·eÔ¸–­ªHþ«ìGïp°ÅODe-Àºë® ª÷㮈Î}´úK1*v´ˆÄîÃñ§/þþûé>…à[7ú(¯ù'''}¡÷û|ž~:ùn*ê“F*šÖ»eUÔ&ãÂ#G_˜hîûýÍ„ßÃýï¿ÿ>bþôëqO[¨æO¡áë?WƒšBÛ™Ÿ¤jÂù§¿ŸŽÖð +M¦Cé÷k@?jjޤÂJtˆÞ.¡ùâJEI¤ÒžÁšfeòL<”ø ~äˆÒ#™ô{Rïž™$¸WŸÑSÐ3‰x ~ƯxBéþIÁ«Ÿž Z“èJø¥]èiñiº èÂ}2§YL)%OBRG‡g05ÿÝŸa `Oàyaêˆp­åÚµkg^»æ Å€k]wΜ9ÃùÚ8ðÝ x«‹Ð——ùJ4€ï1 `>ð2ßкóKºÁõŽyçÚËwî\Ãåöw^æíø›äà­Ùó³¥´xwÚ."(ÕwÎÞ¹z‡häËøÍ, n.s +€®üà;%"è`õÒuá½+Ù{í¯Ü@àì>þZzl@ݱo|Û=šÍÏ›"ÀÞ_þ/ö׆¬¿™`!›]š9qéÄÌ Âÿµº]P7‡Ì?À¿|`:Ø;ÇY~ôù¹à šÝþH5]—ü:Þ¥›w—voÁÿë~ `WïLÓL=«\ë˜À·ÿå èÿù+l#8ˆÀÀøÁ9tææ®\ Ø¿rå+t&øÿësçnýÙìçwàï#ÿ× m‡úÖ¯?8¶9A)$øGßræÌ™•sñìÙGâY`E€Ð{~€Ìgͺ}¯6„6@{®o«÷¿UðÇq)ÿ7™k€€¿Ö[ŽÍ öåî¾cRpÙdŸ½4‚cÀþóA8Àv~†–å–±à˜¥îÓÎñ§QÿÀï46ø¹wWâZfcs‘ý›àGÑ?ªT•Mf@`#Š-¿™fÈY,&óSÿ˜¬L‘pOãKŠ®(N¸Ew¬Ñq`P ïdÊgs|ıK²*.ˆIS×’b· N§CnŽÛööîávÔÿ ’ð6Š÷5æxR>Æzø(ÿCÇGHñ›²Åïs$wAÔl9ëÙOo·H_%$Gɾè.ã²e °Íä¸);¼…`S›4TÉ0 +<%;X($4ϱU×Ug½¤uÐj8hƽÑ) ÞA3» ¦èIÌئ—гZl2± /îÅb9¡M¸Gb…Vì …ª$‚R]ó×”5QÙêˆ'èôOO Ë•‡à3Ãd&ü›ú îÿ³0ÐMâtE À‡÷$NÁýO_c5Fvo€àµ÷/w¿¯u_¦`üû—éÒý~÷ï¿ÿÁÒÝ|€úÀu‹ ì^Ú®À'¸&Pß1ÍZ¶Z/Í À¦n1Ç?sÿø“ú¿ƒÓ•9ÖðièÀ­+st "p•`  …ÑL0Èßv±FCµµCuˇü;Ø´sü ~}ž`ûù6Ðþ'H—І+U×qöÿJFØP¦¦67Ò• …(ÂÊÌ-¨¸~@ŸI§6ì¯(ÿi˜›;…‰ÎÍ +öTå/ºUaÌ\µ¿ÐÎ;© AÌôs¦­«FÉÑõ15Ùí zÙdFmHý åŒUµ¤N)nÐ&“ªÃÙ êšàŽ8y;b&g“IxðùrÙ± üíxœ@=™Ônþ§ü˜QˆÅb³Ý±¥îYú±ÇAþîÇ?ǘÀ×.Ӄ˗ý+;.áJÿ—/}p™.tíöáŸHÁ@ÿ|ðîûA€íh ÷Þ©¯ï¸ÓÑÑq`šíø×ß~) Àéwß½ÅfX Àt33ô¿óö•íƒE€¹S~íÿÊ_Ÿcàôß«™Ïóo§Ç€w.ü¬ïPÝ…ZÎ?¸~¾eù&À×^{íÌÅ_\ü¦_ø&!þ7GØq&ú`6tBµ¸¢@çP[(4ªcúž.oäúa}ÛJ¿–Á¾\­?:ð†ÿ$8Aóbìµú—Y n9Çê[e–À˜À…í\ `$ Øm¸ÜòB ö_ØÁ¦ã³WÿhüþY›Í5f ÿ¥ ·Jâ>šIW„µ¨B$Àߌ̀JÑ%Ábè‚ d`d–¶)¬ ¢—:£ÑJ³2At¡‚‘AWŸ$õ+º†(ÙrŠ‹{‚äAA”ÆLÛÖ“— ðœüŒWãqMtIR±<=sQ<æÈ)5æpf²ßæt´ù[UÍ„í/Ñ}¤ßþÏó7QþßÇé‰Xk$·žÿg«ƒ¦Œó I˜ìéºÅÛ–Sv~Xœ,ìó–ŽÆ.¼){})Þ)s{åI×CAÀKÉôÕM‡7ÿJBš±‘ô’˜K“¹P*[“IÏÓ­ÖFÿñ-"ô•è8œÍÊÙ˜·âš»`Z²U“bp‰hõ7#ˆk¾@ñƒ±'O!åÞúþBôøgHY|vùg¤ÿéP„‰K—Ð@` vÀOêþ¥× ÐæR÷¥gâc—ž!tæò3—·¡Þþg¶HÀå÷/]þ€!>z Ì€ãý-GÀÒ»0¾¿å +ĸàÜjx¦ãN=¢€Ð8ðÒ¿þß~ižíZb9W¶\`̰Õð¯ì˜¿2+¨þûçsWNûësÿ€»_ª|ž½âIªkkûóÿZwâÁúúƒ lÀÇÀúW¿úÚ™_üâìYV¹øM¿÷6¨ þÿó_x@-3„Þ¼×— åÞ …ÞæüšÿG(@s +Â;xÏGPèë ùZöAlZÎa>€à °%b ¥åÑÌÍxXÁ2 ~ °“´s|ÖÇý +@žyú™.%•jL¸8ªÂ ø™p£úJs%½‰á5%ZE–oº²Á†ˆýÎL'½@pÏ|€Ø´ÝœšŠbp`Cp«“B†ô¿´àöGÌÉ=œu؈”Ëý.¤})å‘åq­ÌÆ D-Î6U-©2‚JZ]Rå‚Ño!4 ¨å^n²ÌD€¼ÔjsÇ8¾ÌYžgÿ>ÎÖy~LŠé?ÊÃÀñù|™×³šDÐݪ;åó 0¯¬sù}‘Þ!Ø'RÁë)Ó´yäZ­“®+©žif xm]+Ȫ’Uù×`™IÓ4UèO?Šþ×·.ׯû àŸÑãÌÄÄ„téƒK±X `¶V\»)`øÈcû$õc Ý/Ç.?¢òŸäûd¨Ý„û¨ñw3ïßC¯ßï9v5€®Õ¹ð ºõˆ¼„9À9³Úµ¸U¸â_X`ÕGÿ·çü)öJ0%èãþ<êÿíWN‚àkÌVÅÏsà±€Ÿä¾ô΃ë„þPhê«ýØ.€3¨ü?g·<~ÿÿlà ýübˆhœm!" ÇÌþ9°€Ú¾› `±€l(à‘*À=¿cñ¹ øa$è«¢Ÿg™Eÿ,cx 7” ȱÁm`KpóH(]—a ¤7ýôÂ/w¶îù]Or=í¥¡1-DzkˆÜ5&”fQv™ô¦-ŽÝÓø4%# "q£9ºÑ™Þ¨ Ðܼ™éD9+6ÁEô"¹¢¤«EÃ)›‰7处Ã5,{lAW¢Jcô¶cª¦ifAT^Y0 CY˜Õ «Ì¥’YItSЦœMÈœå 0bÆáï³Ð9+Ÿ·­ÿ’FÏïs¸}y³ÁÉï³õ‚J¤B6óyÇÔ-QAÏ•HúË%“uú^Éóxç¦åè%ä’r_Pû eŽ%=™ô½ÅÛ|ƒâ!L9æXé³Ýb†*s¶å8ެ¹“²EoÑM Å4ã²w™Õ£Y«Æ4i„ÑI¨ê‚O‘mÌdŽ?y&Ð[[Ûy?= +ðöÓ[èý!þ@Ä7މ9rÄ="92@7Ÿ€þŸÅuɇ|èqÿRŒ@c—9b€xÂùnºeW:‘ú§ã™gº/w³V¬ݘþžwÓG– =q˜eü¿í¾ýö⻸Yd7“vÛ€ºv­†çÙ$[ Àt}c×âá­e@HýcA@«Wæ™`îŠ?@/¡BÀ¹¹ssWÎAö%€S_!ð×Á ÀçzXüq€åÊùå\ˉ*bÀ'ÇóÕß¼vñ"*g ÀÅíæ?’Ú.Žéÿ7ývþ{¨¼@]-‹ ¬ÀwVÄßjòç‚Ô hyX’|÷X€¿-ˆí +Êù&VèóÇ xÀ#[‚Yj0^ªCÐNÀÎñ§ÀÿæJ&“Þð·û0IOàŒ" VÑ X«(2:°É’\º¿IŸ†<ûN¸ýÒ%ÝXÄ‘PÙì\»$L)››ßR¢"¾°(þ {Ì• ¢ál·ª¸§HØîz§ÜL4“Ej?‰zRßEcA·uA1dẄ…VYv8KNd¢as¶s0‘ÔmÛ!ºÀ;ɤg¿œÏsD¼«I{ß>Žä½ãy79®ÿj©œçLzßxRw^.Ó;óWæM“ÞCßù¯<Óà Br9¡–xgÔtžû+uÌ0\‘˜cÉ^IöLÓI¥ +ý6gz’4ŽÎBJóLËæ-W\PéÅI¶˜0Û“ã&þÄÌD¢''“­¾ñO¬V×å5üµN)¢kHUDŠ8üå'ž¼ àOæ}:ƒ1Ÿ-~dÏÐ#âÿɱ_¿/û dÄþË‘ÿr$ G&Ž€¸GÜ×ýãÀþ‰Kwï~üÿ€>îîï^•Aýâݤü}*ð Ã`}w` :»ý¹Àì뻳゙}7»ûÝ,ËJN¼›XL¼»˜X 6<¼¥dà°;ظºŠmÓÓÓ/MûA@»ð˜çÞfÙs[Y€îÇ ^¾†pëÖ¹·ÏÝ"½'¸ÿ˜àÿÜŸÍV«Ç?׿¤WªÍ½Cà—çϳ1ÀÐòG ÀWóÕ×ÎþÂǺ®Œ¾`e¥g¥§‡°ƼZæl Õæî½Éì!6Ð ü›>Ú.èφþü³ÏØi¨–‰ÿ>dÿc`¼•%„§Z|в̰ßÏ +vcuPKßòÿwÀÎñÙÂ?F¥RIû3zèC+NÕ*zÔÈ”Š³Ú„@J^,ÞeOn¤£éh4Ú‰AéæN…m´I§O4§áýƒ­ `YAStÞœšÂÄk(˜˜’oÅqÛæ\1š!,í×4Qt­²åF7ÞJšŽiT…Ã#±_Ð9ÇPµQQ ‚±ðÏ”“ÉQsøÆ¸œ4#–e&&õò>« c†']Ÿ/sW=Ï"*ÐÿQ^÷ô<¯f½β@Jz½€X®ãøAqC¦Eê}´*h‡d@¾ìÐ\dL·-ŽÓ ûuÏÔU×èWMÎÌ"€ÓÇŒqY+ðôc.$Ë34‹·u³ÕIñÇ=¢%8'cô³N$³É"Q«5QpEüÝ +Už T µˆÑÀªè +b敌ø +8À[·öóþq à#ÿô#ÿGà ûŸ„ˆßÏľOzÿïˆì' +ÀŽýG¤‰Âÿ#G„ï¯|jÜý—¤»—&î^’.M\¢®G|ÝÃ9ÿݱgbÝÝÏ|Ô +°5÷Ïæþtxwâõìë‰wù~ýuòöÿ—#±ýGÄ!¾EœhÿÿíÒC÷=%Åž² Â~w⾄ii»ÜÏš[X¿}7ùúæg¡òý,  ðuHÈOÚk;Å ýççèÄöϽô^ì\}›ØFÀ  +°Ûgq,œ™ï˜Þ3== °§7Ü÷wʸÂRÿYòÿÛ¨ý#"øÁ­¹st%0×à?ηþîVÿ³§Q8ñùþ=õ¸ +@íÈð_ü÷\]eýg›¿¼~½%÷± +Àõ¯þÅk'ÀDÎ2Ø?{ñb®®ågH ¨½8Ò³²r²§Ço\„ìmb*€à?‡ç0$à—äQï¿Tük·Cƒjû@/³úãÌÆ–‡x@?p±‚è ´°` ¿ïò ØØr¡¯¯åüŽúß9>ëã>ðŸUÓ”öÑXÿ vþBûY€oµ(¬æìÌd°Ü³~„ãB€¡Lt¬m‡ PéL7³@€ææ)W‰FÓbа[MèW¶ãžs7“‰ºãvYW2Ç•TÞn°M~ûd)%Š o骶Р+­ž× -ÓâIeÁ9š•’ú3é9å²%' ¦¿ržeð3 /1êÀÝ×€‹)_EÍ=ßí# +pUÓȦ㭛KнB?´ÿ(´>ÏÃ[`[<‘„ñâM‡7<¨ŠS0´«ž:ÞÀ›–3Þ¯›‰šnñŽ#Ë…dÉtL=«GX’a\öW^V2 +²™˜•b‰Ödk²X4iÁe‹ÁŒÙ¢dH®+ +l0ô¿("fÞ:ñ¤ €Áàh~bf‡ÿéGçý¶:ýöªÒBTT@ñ­Œè‰iÿîÈþÿèºß+úaÀ&þé=¿`?êG$I}Z°6±ßÝO°/ÑÇD,ðý]â_òÝÛÓÙl÷îäîd ý³ÿ€{Rø¯##ðõ×ýÈ`, :ì¯úrüËüÀþ]]»V»wÍíš[ÅÒ^ìïۅ彫[ÇÛìc=ƒ%0€Ós]a:ê뉰 +ÀKaL$oùøÎúü¤ûçW‰ ÜbË鿏uŽdÿ¦ýçÚ0wj.Hø³Ù¿­Š•Ï÷/ªÇxZÞAeýÁúo ø1À¶yÖ_ûÍk'/ž=ûÜŠ/ý·Ó{VN¢°22äÐu£€ gëõ0¶°L@úÏ'C-¹ºó¿Ü‘ÿ;Çg¯ÿ™ö”\#쟴Xµ*‘”ªNµu–ð߀Pp'\Öð3ìú´JT\!ÚÜ73¤û£é©ÍÍoLuN`y [u ‰¬$¿œ¶cÇæ4;·X²-a##Ú ËæW6dK-z\™Ó5éHÉ!0µI™·b€P)’øŽX˜ äàÜÏÏôb6oÎêܾ2½“@ÛÉçóûöå”'°ó°p¶E÷~‡@ž·€ÿ6Á¾iêHï'¹Ï;ò^]g3€:ß`¢£À78j‰À~PõJ<솅1öýDøSÓí1X„’c]ÕÇ2uþ’ª®4eY¶¬¸—ðâY-å899[Hxý­©YÉp…ªª›ýw…jU}±UÂâÕ5_ÿ+Џà27À×ü&ÀÃ)ý?ŸÚÄàÿ‘Àú£uÿ-ñ¿~ÿ‘ÀßW2Ñã~ÂA…þ d¢•N¬' +0àî?"!í.=Íÿæ +\Bù?»t¤ûR,pûÇ>‚ýY_ûg—èÎî¥l²;¹ í³‡?zø[„ã»èø2‰þûïZŒwt-v­†W»ÄŸ{ûmÀÿü#`‘} px7c]‹ÌP…€X`µ 9‹¬ÀjþÐþD$ˆÀ ÀúÄþßf…ÿ¹+íýííslÀgDž-?×1À¿§p~ × L4=¡ñGS´þí_ü€çV¾ ô_9»­Olà¿âÛÿ†/†ºá +À8@#>Ƚ$ :ì ‚†ï ô? z¿PàS„Öb(e6)Œ¯c¡À¬ß_»Ì’‚kûØ’À>6&è§±P`°Õº°<ôËøß9>kü¯T*ô‹]ýôkÝÃXmUÑë T×ÞÉHU¸{WaCÿ~_ŸáFÁ¹b”î¦1IPé\ëÜ\›R6ÓkLRn +E1]gW²{a°l+ÍëQc`|_yî*™/%TMvÔ³Ì{{ûUÄ䤸}ÜøÍ«–cZº…ÌÝ«IqOÔ²'ˆE `9àXÄ›MšN¾ìxD&L«ìWþËüyÛ¶òè ½ßâÿmü€çÀàÿ'›=Fñ`?A?±€N›Àö}³Äú²U*aÅ >§$(BuL·ÌXŠÇ§ñ¶30è% I+‚ojf‹r„³ÍV9á%d9Y$±/T‹fDŽU݉jAb“ô4|—X,ŠÕú;}åDåI3¶ßzhøÁŸþ ±Ö!íopøýMÿõ ùÿ©J•ûþQþéÁãþ`÷é‘0pÄ•b?žf$`]\Û?1±ÿ’Dè»Ë¦Žü-a1–°Å@(БÀiwöÝìa_çÇ}½ÿeÜàägèg7‹»wu}™ôÿ.ÿ0€>Œkã6îûO>¬,~y•µ–ÄX +ÜQ­þ8ÐÛˆ(ÀEÔúßfªÿ +ݬÎû¾‚URûçV¯ÌÝ:wåÜ­+/Ο#Ì'@Ç|;áû©ùSHÆÀìßþ¤úáçüW÷û^øÙr]ËÏ.ü ¸‰¹½¾øo¿úÚVX ¨ØBL$`äçÃÛXà=9‹\!\An»Ôo9·•þ óßvàïPPÀ&Á!°€e–þ³Œ@@øÿ0ÃÒ€œŸDò¿®Q€ËË[-Æx>ë·;€ã³=*mV¦‡Rf¢ÍÑ E”W‹V´@¢t­ª¬M¶íï/fÒ™MèÂ4Q`lE €¤Å-^B5 Ý©lnnvn*›Í›k›ÍiÅ#…+ÙeÛ;<¡Æ9ô +Å"ºïý®;74nß> åÝŒUa@4œ<7èzWÍq’Þ\ƒI::ÛÀ™IÍŸ=Ê™FlÁàÙ*?þ l"ÉÇ’KÕœ€–w³ÌzýPút [ÀÂdþçWnp¸üˆ4´l¾A.éy.¥ªÙ¤Eà{þ"ãt 0@_Ðâ›/%Y‘ñÀ:×`Y6¦-Þ†u€Çˆ>QžTeÇÔ½dÒÓ"e8Ž| bW[“YÙLi0üWŠ–9k`ƒ²ÔÏ•ž¯º˜ Ìd”…qA!™Ÿ4àøBæI¢J¦‚ðt àQð¿þò¯¯?böûlƒîgè?Ó‘ éÈ‘‰§ùtEØ?qdâ’_÷_þg±( >. öÙj`ø‡ãñ+ðF‰?ð‡æÿ2€ÿ¸OrŸ1 ?ŽÕ]á]áÕÞÞ^ºé ŸÎþ]z¡oûy¿K§»ººÂóóõÓ^b€™ð®®®Ó‹PùþÎßÕ¹íãÊ•¹ù¹[ílðܹùSóçæ¯@ü··w› øÊxÿáûã¶(ÇŠüX +èà%‡§»„íš§£æÏY£~ºåuÆ>ˆ^$ &éxÞR S7mLÒOzÓ£oX’±J,¥gÀát–`êŽ)ǯÒç9‘‚4 ÊºÌ¦“r«f`®RÒ"æ¬ëVŪÁª-ô=Ü;“à T^ÉD+•'­ˆQfØ¢Íÿ+¸¦Z¬#Ž2+ÇvÛ}ýä†ýï?¹éÿ©À÷i`¿°ÿi&Öw?à뀒lÀÒÁ=pˆËvmÿp"¾è7ø™ìØÞõe‚úÃ_Þu˜iÿø®ƒ(ÿ7>°ñ`#XÀ®E ÿÜ.ø^¦ûÃ3ö3ó3«A= Ìðfu‹ìòYÀ.0€w·ãDt€(À¿þö"s‹ï.ž^<ÍæÞ¾â3€y¿ +p%<7ÿâÜüü•ss§^¼27w +…ÿpSGGG{ǵö;§Úøü/ü½ ¥¯í¿†è?ìƒJÅO åj?N^;³‚ +ÀY˜ÿW¶Æèr1t‘H@ÏðÊ!4ŒdÀ‹#¡‘ælk®­ 1@|ß=¿Ôßw^†¥?äsf `÷ý}BˆĆà:–˜«c«„sÈêCÔÖÀÐ2TW‡Öÿ†¶ô¿À5@Ÿ{þ—¿Ü‰Ú9>Cü'ùEj_%ºQ©lˆÈó«õǾŸŒ ºE"¦"vÿ¸,îgc#ªTÒQ¬EˆF'ÜLTt%BA‰v®MþcPzsó›X4F§§·KzãF?ô¾d( !}eÛJygŽ©IžsR)O6’Ž9^w5Ï4ošœ# hIB`ÒÓf2)*z¹Lnù=nÊ ©}yj¢Ö(}é|³ú—ÙœCü~5€^(ã9ç â~ÑÞ·xÍr¿Ä# Ø!VqÓâø—­Qk4Ÿo(ê©qs”@q2nYºM?¦e™IÝádÏHÒ+óžÎÆLÆD8‹ˆØd¡)$]±0XÔ¦9«%³)Íp]W’$3Éo´& ,\0#)IE83Ñ_t<ŠõLOÆš1$ ¹ù1Ò¿3ŠÌpt~Lûo»ü·Áþ>ÿAîÏgÍ*Š +Gö ÂÓ|²01!mÿºÓ›M’öNdßMìNÄèï3ÝO7 vÃd?víòÕ¾4ð?¿k×A~º×ˆƒž}¾qW/Á¿_¾þ èê˜'F0?3Ï(χ1€%"/.vÁ0=Íæëëë] ´n½{ú\Wæ‰?´¯ÎµƒЃö0Ýœš{qµÿsíDÚ›š:š®uÌw\ë¸sìTû©S§Î=ûl±ú¥Ê ‘ÐþiÿÑ|ˆÀÐ'[ '¿yöä +VX à,¤è"sø€•áᑋálnâ#ðâp.Ç = +¶ú“¨û÷ 1ø÷¡¿6 µµmµô9TêêrþÊ`6P7Dd€>d=æØæà¾`MÊþ àÐòbáµÎ# +x¨vŽÏäX¯gÓ_ÙˆÒ]Ñ3˜þD¶åG©‚ÑŸz±¿J*ºŸåýÒ@p/lÇî@qBD/ ­Dצ֦:7+¬¥#àž¢_æ©â@Õ”…ŒË•kŠ?aïã\Å5Ë>4›ª™·“Y7Ë7DÆ qÏð«”(¨j² {F¡¤Š™/ûæè$‹5é}vI'Œoˆ˜æh)iæ÷!ÌÇ*9ÿyß@¸ŸÇÖ€¤Ufòhà»5Ø–É7XNƒƒb¢ é ù±€0›Å 2÷\€çèù²>¨7Гª«áÑKHJãϛٴZIí*QdZ0yIñMV¼0‰Ð#Œ&43ñƒXÒK%¥˜g&UäYÙ,ÌJZ«¬§$ĹBUpa·WÒ*OÊÖY °­p&æðOûÝ~ßÅ©D7Eÿ÷?–÷sÿ#6À§k5ýáïŠS¢û…©§jøåèÿ¥$¬~hò/%ü—Hñû-þ.TõIÎwíêò ûøÀƃ÷ƒÁ¢¿‘NÏ7>o?`7®>O Ïп7¼Jd w•fzóC˜OØïÃÿêÌ (ÀŒßÀÞ_fÄ ÀüžkÓÓȸ³IÁÓ·–P@ `~~nµ}.Ló¸´··ü;®›o¿2?‡öÓ±öŽöcí׎µŸúJ;@ÿßïÜÿ¼ÿ¶z ømÝ÷zÚÞ9ñ ùÁ‡• . å>Ѹ~öÌ™“gÏ>÷÷+˜ýâ3 ?°22¼ÂZ+Ã#m+ø# ÁïÝ«m»8€ÙÀ7QØ®óç.²Pÿù96ЇbX€?  +Ýó„ê–ëj™Å.çü–?Sû؈ÑÀå––:¶;ƒ¶ÛÁ& åºÐ2Û¸ƒT;Çgr þ3üÀlûÃ:‚h2U‘Þ-«JU¬ºØí + Ø€K»€”¨XF:EIr§PH¦ÿ›Œ-4Ã)XÙ\1•ªŠ®Yt3JªÌ½ïp ëçm+)ò}û8má­$gšïj+³ÀOÕ’ž!8Γ„Õ0,sR…«ˆ×3-ÝDŽnZ¤áVÙ7SH@?¿³Ì†ü>»ÍfeŽäIh õo•¬|ï"Ùß*@HÏñ¥›:Ä¿¥Ãþ‡„`4HÓ[£ÿ—l"€çUɽ’ãȦ¼0náH&G+p¶)·êF-.U˜T»0fLd9Âóe/›ÔíBRK˜rÁÐäˆî%átÐ’²7«ÍµÖV©ê.QD/ +l+犈v<Ø +l8À#àßœýËÑ¿ý#Ú}ý0ÿȃ? +þ‰DÿðÏlÎtN}êé€0!Å.Åf±ì'¹´Ôš¥k‚À}º²›ø.“P¿±‹ñ€ÀßGÿü.ºRþDý†_}ØßØî%.@¯¬¢ýO`uz:LàOš!>òûœfx{q6À."3×ê§oc `z&<ç›Qh¿Ò>žŸ Ï“øgð?†íoþØü54ÿO]£»¬pŒžûʼ_è/~ÞC~O `¨¥öÐO‡*ëë'>d.À¡\íÇ À_0pò$a?ðå¬ÏV|@È¿²Ò†»m+Ãm+#ÿµ!b„ÿmëtÓ7„þ@P`B|xÿÕÿ¡6v‹ŽÅa\ Ø„Õ˨ö_†°Ùþë ØÀ2‹d‰Àþ¥e¨ƒ¹ çwvïŸþ39Ÿ}Ë¿ `›4è*Bµ›xŠÅ)¶ê'ºmNo2Õ}‡A”"AŠ{g Ø÷+Ñ©oAhîÜÄ€©ÍÍææL±êU3’ÉE%S´mÛ*J1Óæè¢Ijk™yù  -UslŒÐ™gªªNPZ2ŽxáªÍ;®æÑjjtÐô’ª–"Nòšƒjopt3_npJ²U.;6Óô¦UŠìË;²—ˆÅJŒ`(ƒ<æûð8Ï›7átà ¤ïß:ê w@—-+B@ކ;#0‘ý{ߨ¸»¡éNªŸè€¥ÉÄnd“¨„É;¼è &é§,4Ì‚dLCØ kfÄ ãÄg )ÛŠA±¤×ªJ.¤?ð'Q`s€Ç}ðDw¶<ÍÁr€‡±~ñ?º5óÿIÇ?Ãûû™þÛbO}ܯ4?I€(€òž¾Ð= ³k¶uɇÿx"»Øü^cWc£é÷h$ľ±w—ÿÄ@Øå ѻ׿Úô*:ô¾FVûÂÚŸ (?3Ó ¸ŸA`ýWgî½øÿÃa¸Ùàyô0xkéô»·àü¿2?&Àošï XH÷¸s Ðßq›¯Íwk¿vìëôÿDüðsÿëê1`½å”«Ö¼s¡R!¤léûéÇ=×}æÌ™çž{îäs ý{ü@pŒög-€žžžC=#¹ºÚ7C='{zP +©«iû9 ¬½ÈÜ€}9Bx4r!?9(Çmm9ßHäã!,ð£ÿ˜ÿoÙ_ ¸<äg¶°u€Ë,úŽ€¡-ðlj­6Î ?ÿËÿù?w°jçø z­•hôxú ~†u ™ìT¢¢â¦ú]±ØŠvtu‚V]¬ÞhƼ•d8¥*½æŽÏVB/X„©ÎµÎt°(½™F Xu‘w£îálCTl‹€_–yû`<¥e“šaY)ÓŽT'_ΛÑç +“<‰õ‚*›¶®’%KUIë{ªS¶ÔU'ð×=/[bå{'9©s¼©[º…>ñ äÅíã<Í žÿË~ o(ƒ8ñ’É#@G*$>A½¬ë&Ï#G¦ú°L"<|ÿÇï%:òW…’¥«c¡Ÿ‚çmO-Ð÷ÔM|žerθW\8ÊE¼¬\˜,öGˆtYV6©z–1u¯ÕK&ˆ'¤4m@-¤<-‰%Ú¬$¹‚âb3èV…w‘‰5€'Ú ðQ ÀúÇ(@PøØ¼ß£ÿÇþH®Ùü$àz´³³óOUîÆbKK©ÿäRbi þ»¬@àÙÕo$°MÐÞo ‡Qî'‰F±ÕÿÔxÈßh‡Ÿoª!nl¤7ööÒµw•ˆÀLo/©~`~xžîÍô®öýg‚òÿ ÐÕ;t™™G^:s]]sáŽé¦¿óíoO‡WW‰` ` &€9’þ@üöŽ0d?«øÏ#ô¿† +À±ºíèh8†Ë<]ÚÏý‹sÏ~þC~O ¥y¨®öKC'Ö@R:×úxàäÊ™•“¬ð?éãþö1<Ò³Òsò…•‘ºå¾7GF^ÀÝÚ‘‘žCÃ#Lÿ· „îÑ­? +PKœ ¶–­ +õå Ä‚ð+„F† ÿÛP h ±%Á!¶ÿg¨®/„}-uȪëêËÕÕõKÁ°`ˆ%µu`uÎÿö—;%€ã3Áÿ̆’qA6± Ž…ÓcÎ?$WT„¿"å/Õ ¡ÊºÑ ø&ŠÒÔFTAL 4ÞïF£„ü°vr§²*› aÒ +a˜0˜’$¹&⊆mÛÜ÷l3ÉÙ…X6™ìöR¢kšICkx ù‚ªÊo^5K¥1uÜ.hšYòbb¡ÌÑ›²šQ ¥®9yÎrˆ$”t®ÌÙV +£˜ µl" ,@6AQE¢KªœÒé¹›Ù²tDZ-óI éBŽU0 £ßŠ` çÅuǦ·D`€µ@îW‹YO$[=9).þ¢Ð‚¡¿ð·8«`r²8 fNDg¢•håxå‰w½²åª¦ûü·4ÿúõû×ýÀ_v¾L®:ÿÙžˆ¬§ ÿŸ†¬ R,6›\JúuºéJ$qÙoÄÿÑþûÎ>ÿãù& }ïó¨ò7†kzýÏ?OdÀ®©¡kMMcMÍ«tmì}µ·‰HB/ÑÂÿFŒà‡ü󫌬22à7þo¬®Þñ€wSÀ.Rû]s‹„òצ§¯½ôÒ·¿}às..Þ:Mø¿ˆŒßUÖèCþ¸Ó~øßÑ~­Ä«„ŽuÜnjï¸ÖqíZDZc×¾Ò ÀBåóÿ ë±€–õwr'š›œ8âgP͇>n¼þ\Ï›-Ï=ù듨œ=éã~ÏÖË€ÚÞ$è­E`È>܃²@¨e”_aòm€Ú îï“6Öý÷çFjýy@zúP[__íð+´ÁËÕb0a~]ݸÀ2Æëè ´ÿÑÚò¶00äß,÷ý÷ZÄï4vŽÏà¸_ÙØ è«(ï#×Äç&&Ð3éŠøŒþ5¶`V ŸI§é¥56úOÒž½O0 áV&3%IB4Šéæ6C ss A’«ˆ©ƒEA¶¯ªcýÎnôälŒ+GDQ•Œ•¾£é%“­©qM+’ìUBsS§» …‚:éi¢h˜åIcÒP-¤ñ#Ñý„¨¼M¤AóHŸ— +<%Ïù«~ Çý¾~ßòùù€üïöÛ8÷œ^ÐyËt½dñy:êÏb|‹ ±>ðXÖM¥ô +:,“"’ûŠãD=´I§lé ô…¢šì¤ +­{Sš!yØŒÅÁÄà,äL¯5™ˆ2 jÁ2åVú³{­*&«F1€¤JQ E4 +š4€ýÀÇ7èò$FúGÈoþh`ý¡ð!øoçüøÂÿúCàÿ”»MÍÍOôþtçæÓ€…»±¥ØR+ak‚Î 9qX&éêjô}˜êóÑ¿±1¦;M5M½55½t èmzµ°ßTóuú×¼ÚÔÛTójo㫽6Q€Þ^Ôþ$ágzIù‡ò½¬û?¿]ügVý¶ëÀ8×Õ5_mš-~i¾‘À»§ÑX:Á¿výíMᎎùùŽ;„ñMó„ÿ׿;PhGí¿#ð»ÖñºiöÙ1ã•/Ào¬Çz^é;ôÓ +ý·~P9{÷rŸ0®œ=óÜ™çNb  '¨èßs²geäbí›o†p÷bîÍ\h„=!ï´a&0Ô‡ À‘ $€9ý€õ¤îs¾€^Ù~¦ùïÕ†þ‘èA£ 9fd²ŸðŸd>üêü=€Ël`h9ðw`ù§mô® çÏ_¸°ƒW;ǧ{¬W2Ûi¾›™J%ê"¯Ÿ°_!uoˆJõY¹UÌl(UE˜½ë"'X™RDÖDÓÍéLt£¹Rœu•ØØ”Sµ¢°jjÿš‚úòfçFgç¼ßu'¤"AÛ‹ñ¤;hGJÂÞòÁ«Ùîd$BX(÷dg–ä­>(jWKýª'k‚òJF#çMäàš>®Æ +†Îyª+,ø#d§g[M+KÙ[ðß;Xˆ©>ìRÉaÆÿß±~ÿ¾ícl€= 78<èÔ?¬|ºW%ѯëÖhA7oæêŽ> + €Y"ñ/3ï¿ëa¡Ñ-“þ~Hª‹Ê²&Uîef t°À,×úU­\PM“1Ì`Á€m;‘DV§ŸÚ”ûs6æj‰¤—UwAÝ«¹‚+T #iH,‰QÒ´#ŒŸ± +@å ºë™·¢ë¿çð'š?‘ñ{? Ÿþ _sóýæ's©§¿ûÝͧ¡µ®_À€_HÈqùÅ®x—Ù7wua q×Á®ƒ¾ú÷áŸ0ŽWkÿk¯†{A^Å‚þš¯××ÔØM¯6¡ +~µ±·‰ÞOÄ€@ÿQ:õÖ×Ï4õÎÔoõ1ÿ±;t{ÇwÌ…»ºÿçV;:ê¯8ðÒïLßYÅ>`KK¬оz¥cƒþûÓÁÁ þXiÿŽc×nߦí·ó=Åê‰/@ZÌã*Ëu¯ü4ÄðÿĉŸð?/|"`ý/~sæä¯k/žÄ@óÒÝ‹o¾ÑW{‘˜@ÏÊEBì‹#/Ð;FFjÑ>té@> Xi{/W‹vÀÏÛÚFÞóÇýC°úÀ£ð`ô°D BôzÛ(ÈšþCŒÀ×_WW[Ç2‹%¸>B`ha~€åP1…Âÿ°s|ºÇƒã$ÿ£™ ªHA˜ŸÙˆ²x?÷®›QŠZ‘¹• eÿÄ +ˆ +Ð(>¹Òœ™”覨±)"SSS—:”žêÞÿÿ·nÉ-Ž’+¤‹EA°í~1Ó_¶%ô £Pˆ°]|G…Œâè*ŠäÙ˜§’ÚuMÇSM^•ŒhXú nUq`/ sRðV¾l¥ +Iç¸Á‚W°8†çÏÚû0ÜåËy¶õÏ/ÀûíO—}ù±ç9Ë2oòŒ + JH×õB }~žèƒ®{ºNºÛyž§W~Ë à#%¹`þ¥«,,¨ ™Œ€øßĂ̱·›‡³-Çtì”çÉ%SÇád +l+5^°ùƒl†·Í„úÍS«¢b XNý&ÏÍ +¢à.HFr ‘ånDG+O6 ðÖñíÀvUý#éñ¯ûøý3Êù»¿^i~²¯»þÝï~÷i*Rlv)Ùšdò?ÑÕ•òb— äïÚe’è¦ú»aôƒß¿±¦OõöÖ ¯!¡O4€ôþk:jjö°;Mv˜`ßn"Ч[œ{ëg00]_ø'0_£~Æ?nÌø]€™ÕÐþ`5€¹.‚öi–ôí鎙¹9,Z¼õîÒé·çØÜß¼OéÛç!ý!úoCøÓõÀµcךØ3×èí§N=[4¾ÀÇW–_©ý÷¨¬¯ÿö·η,÷ýô-€ë¯ùõ™³¿þõs'{€üÏùÕÿ‹}uo°…@ÿiƒðÿW/œìi»jë!ø_îÞ&#˜¼8@ÛH`÷Ç¥a}m©ÿ{9ÔþÈpmîÞë`V0Wç{—Y4à[ 04ćè!Bÿê–ý…Œ +°£¥e¹¶xÀÀÎñé,³ €°–~Lòcý°ùsa-·8At`#ݼ™ÞHÓ…5Äÿnl°<`‚—¨‹¤:—„*1„ô¦²¹¹Aújÿ¥ÍÍM=ìq©(­˜ȤLIQm9bpÎ5\§\æÊ\«¡ñeÞv̫҂®K¸¥®X£ŠQ"å¼—€VÔÇ ò ¼?ÒÏêŽ:ND—“ýHÍÃϙÞxJgE~fóË3Ôߺç[8LbŒÇ|_ }žÁ=Q+¥t¸ ,CýÎ(Û +À2èÒ@oT –É“ˆìŸdÝ™g‹ƒ<å—LËÓ4ÏŒƒœåè²Þjr¼é% ¿c“þX^ÿ@Õp‰lýžœLfSæA§Ÿ%º® +Œiì& +€À5Ò+ñÿø£˜ïlpãË~vÜJŸÿ0 €ÿ.O˜fDDòi€+-Í&—úˉE:uùG¼ËÄÜ_c|—ú]A]tõ{YÁŸ¨€_ *@xßDØO  )Ì@Ó«ÁpÔ×÷Öò× ¨§c¦~~&€ÿyîY`žgfîÜ :0¿ÚÈ2þÃÓ·§§_úÎK¦gV»ü €ÓD^œk'ÐÞÁ@G=âþæ}À¿} cþv=«þßn:Öqí6q€ökÇÚ¿‚ Ÿ¼óEøõ¸€Ÿ ­¯³A€Êù2ë~Úúø›Îœiˆ…±Œ8i¨G9nÔ2ÙÈ ¿  -¹JÉ^²øC=bÊ…¸š"ä'`òôÓ§4U“‰ÙŒkã¤ó]UK$ -nš²j`€ˆy T¶0( ­?ºQ9þ„Bz‹?¾ÿÛ]ÿíÇ÷ƒ¥O)ýïÿ! ƒûÍ÷Ÿì§Ÿè©@e"¦-ùÍÿ[q™Õâ/Ê]Œ0@„Ô¼‘©¸þ{_ ‡›ÂûaîáÞú&ðýú?_ïzÄlÔp¿¾¦þ[M½õ½üßšaè?ÃNÓ½[&À€øV€™37è€Ipµ‹@ž„ýøÒô<Ö.&Þ^<½ôî­[s«sííWóM¬ñ?}§žuý×ü"ÀíkÇ:ö+ ù!€SÏöÕã_Pp}è7^xáKï¼SyP9þg¤¤…>A^ûõÉ3'ññ÷=Á@O0ˆÖ?žzFBo¶­¼ð =+‡ <|h`ËÐFhþæ¡7B+Ê¿mkA ”fÓ€ô†\.×Ö¶ÒV{ð5}@_m®ŽAŽ­`û„Y"pV×1ôº>+€ `ù§Èh!°SØ9>MüGÀ‚ÿü úÉ~¬£°Ê¹€ð(e-ZqS¤Ú3ÍÄ$Ld62™»B† Â„hÆuYŒ°2Áð@€Íôw ÿ‘#P4¹ˆD4¾nuÔî™x¤ + + ²óˆÐ‘ûe¾\nˆÆ–‚«ªBFYP-Âi3©ÈÇ‚~ò…«¨÷;VÜOïÓ=‹…úó £!ÿl‰„:W0€ìù ßïcÿ>V`ðIAøIÑ;ù—ý¢QQžÖ¨åŒê{SÝ‚°¤£1ªË2FU•nu„;Ö_"3@MqúØSòÓav¡°‹¤?}„ï†mtû þIã¿Ú`þÖhªé%ÙnªG ¾©¦ãëôœ63~½·­â35~  †uzçg¶ +@Àþ™;«7îܸ©€®Õöpû4<€¾ó¢»»X`éô­·±ìw~Tþë÷{ †?ù€~ ÀmF®µ)@?¿ûbçj©üäÞƒëë'Ο¸À@[ÛÇ«¯üõÂÿ_“Ðïyޤ`d%“˜i»8ÒóÂɈ + 0phe˜éÿ‘Ÿc`ø=æ ÊÙâA [‚ €®+#µË÷èá0æs~NPî^-rë|ÀöÁäÏ‚€äGU`y9¨´M€¡ +-0 +¸ƒZ;ǧö[ò8‰IþãE‰T¨«ˆS¢Ÿå+*éL±ßUß+nÿéý4üFsZ© +Ñ E˜RÜ5d+¢ÒŠ8¡ ôž ÿolnl*S?~=‹¤4a UÃ¥ª‚¤dÜ¢*6IÈ’úÅL´ê”-óeNö² Ï3mäí£ ¼—r8U‘ÖgyÕOña ¤¬< lÏÄ?Ç,¡^_P‘À‡ô \×ý`ßï™ï?X寗L_ +~}žíÆÛý×€6À()ü£{õ?ªµŽZz7˜,éô cFÁ+$÷ÑSÈÀB!Þ*¨“2Ú²¥›èèò¨}”­V‚c[%]·L³wöîÐÏŸðâÞ‹ªõ2g[‘ñÖ¬lšÙV/®I1UÞ˨˜k& ý…ÙB‘`ÿ}Pyb$½OŸµU¸üárŸûë„þ÷ïÿ1–¿ ÿﳬàûÿ«VÀý'n<íÏ#ÁJ$^”_”ã/2èDˆDâ]]„ü üÃv¸‘‰þ¦¦&Xÿêk€ùÌùWÃÆ˜ähê¨g€=À|– €9ÿ>@xÏB—}üòs‚@½uø¿CvŽOëX¯`ío†Eù¬ÜœIGÿé :÷)ƒÔ»ˆ?BQ‚žftĪ&tÏlfÜ~$ÿŠýš¨¨±‰a*›Jovþ¸s©¯ý·)e¢_Ö‹bFoâeûX¿Qt ¹<8…Ò‚ ݪœ/›%¬Ë¤¼}¬†Ùæ>³$³Í{˜Úç|Р{žN@/œr:‚5‡o°ú“ 2ºùÇFHæÿ§|Cƒ‰ ß÷ç—t¹Tâ‰8|Iö³Æ>¦x~Ôü::ËÀjzª óúxA·FMÙ“ +)äï•&Q|p¬£?L™º¦ªê÷8&AÇ2IÙë2Á½³·¨Ž«ccê‚êðu+"›GÇ4Üq +†­ÆþöÚ§ݬe›Y”bZÜæ]ð2I‚âª2‚(ÃìW¨DODO<ñ~àí¢úC7Àz¥ùÿe÷Ø’Ÿ?ÿïûÖûþåÃßãQh¾ÿ'"•âlkkâE’ÿ]2Êÿ]q9 +HÿÆ.»±nš ÐûPßñ-‚ò^Rø Mõ> ¨gpÖïiú:ÃÿW‰|´`Ï<Ñ´gOý·˜þošé˜©¯¹A÷™ ŒÉ@úþ cúÆüêÜjÞ¾ú Ó¦AtúôÒ­[]ssáp÷o¿Ö1ÝŽ1ôL_«G5àëè¸]{,€Ç®œ{öÙê‡_ˆß[÷ô½j>qâÁƒó'X à…áO€_ðÒrbˆ€~¥ç¹†ûdD ‡5¶,ì!øg€aÌ⦴ÛÏI܇ÚzÚ`ÄP`àûüó¡ÚÚ‘êm¹¶Ü¬ò?<‚€€:¬B¬_í2r€ü=Á¬î_ëKþ:¶/Ø·Ô¡þ¿˜–C` 0î€ãSû%Y©l„GùV3¡XM§7¢Â˜‹8(ô‚D­La'Tt×|?š2å +é4&Hû£L­¸Åa6&Ðã©Ë»ŸùqçþÎÍôF§rùkJ4 ä*­ÜÁ„&›…ª±Ë{T…ÐL‹:ìÜA˶ì+™Žå%TWReÞDº›ã³nêÄÐ\o@³ÞAíž@Íþ¼•BÀQ #Y0G9N.x–W5É{“gxÏ7p¿ ú83`ŽÂHRýW~ÉŸ@žgîdè¸õØs£ºŽ¡¾QLÿË21 ¹${²ªÃ䤇´ ÝñÖ1•å"Š@Æ@C¼á{ÜQIª¢ ª‚±èë¤&UUÔ4ØIøËš™osvRÛ¶§%cIÕÕL9®O°® ­ ! @ºÒÌÛü4Xúp€•þ›¯“öÿ#ÿî£ÀJ ¬¦€Q¿Êã+•'ô<õÿm‰ðÿtB¾'à±1hÿÓÇ*&ÿÃá0©~ºyµéÕÞ0Sò~·¿Éïô‡‰ÔÃáÇ࿾Â{ÏžŽ¦›Õ +|ñ¿g®õ{ê;˜À/Ðy€¨L‘D0ÀðÿÎéé;3alû!píÀôí—¾sàÀžù¹.¿pz)( 0^Ÿ¯oš¯÷{ÿ¨þ_¸}á?#·ë;X]àÚµS§ÎõU_ùbüÞz\ î'_bàĉŸµ\ À¬ûóáCŸxÓsgδ}8ôó3'aìa%ú8É”@N>¼;Ìr‡‘Za÷08 éÚ_›ƒ¶cعö þ¹>V@ k‚å@¡¶aÒþ÷Ð ý¥~fâ×1ì÷ï³å?Á4Àràb{[.ìlÚ9>µ£ö„ΰ­XûëvVÔǤMhýæfÁII¶ý¥7Õ4 Oò€éØhÞØHWÒÑ*à c¤æ•¨²ÿkSt\ÞýãÎεýS?¾¬ ¹NEוäxN·~“k²lÏÅÈ(ôs_·ÍF6G°ióœmJ†(f&¹½IÍ"Í©z/™ÔóˆØYß$ÝøùQx~À<¯<Òè³8|A-` p)lnËò—Gí?¸æü>7à~Å3£?‡¾Å^O/¥FG‰ +¤ÿGyº!%¯EÐ^‚u9¹ ’ú'"rt<¥æ;?t_1 cR•9¾_4G¦OÁäàÞ£ƒcâ‚1 †±W6#GY‘áe ä,3žÕb±¤œ7mú+8hzÅ% +š–¹š`Q@3+{”htcƒ(@Ô·4?ø#ê?àú¥ÈñUî_ÿð‘¬@ÂyBúGþpÖ²ŽÿƒOûsŸMåÅDàþïjìŠDæ"íàíØÄ×Äô£F  ·É†øojê­ùÖžšoÕôBøÏ àëQäï S}0 ÈÎ{¾ü'ZÀªÿõ¨0íOw økVY#`¦÷Æ »€Üñ[Œ`ÏÉúkn¿t€ŽŽ0€.bK§OŸ¾Õ…À½ã>ÛèBü“ÂGYa3‚;¡øùðéþA!ZIg¢Á•"ýUà¼vW$¥¿Ù\AuÒòǧ R§b¯_þ±²¹ùÌë¯ÓËÏüÃ?¸®HßÂu ÛîG¤°"¦8;îÅã¦ÝÞZ;‘#gf¯ÆãYS¶y;rUvì¿Bqá˜4 lhfǹ©ØÖδ̛fÉ4mߨ‡Î}žCðïËþD0•wòpé¿Ì‚3úrþáÔß>߈ó¾}|Æöåy–dé£DF½ø'q>JÊ_ÿQ½X(ä‚ah£¼s´t4¥KKdÏéônnþþåSŸR¥É›JÜkÐR…AiaAUÏ+hºÙúà dü+†ŒP ¸E?°Žµ@žÙªÆÙ$S–¤,½¦‘ôÇß6ú2k"Ý0?&ëD+ÇA0 x¿²þ¿óÿÐvªÀÖã­ÇÍÇégûdOþ?1¦I¾ûÝôÓý`ÄY‚ÿDB~1!w½H Oú?²ÚÞÕ5!øgò? ìojjÇhÓôM¬›¦Û=€Uÿk¾Åt=£õ>è ë×ë û›Ð Ký¿Äê{ë¿Uß;à "¾5S£>ônøþÿA`úÆ ÁÓ<|}˜8ðíÛ3óá®Åø­Å[§—X  }€ŽöŽy`>Éþé·]ÀÝÛÓ·;n_;Ð3à1l†ð•/Fàñ€ººÿ£öAåÄùçúóCŸ$sæäßüú5€¿g6€“=Ï=> ›èÁÊ0ø»¿ß è°®ÀI~– ‚`kGR€Ûr„ó!¦üßÆÍ›µ##µÃ¬<Ã>A– DÏ8À{!¢µþ, °±À„°/0Q@AÀòP]¨¯/×ra‡ìŸþ“ +Gþosó†2!dÅU1þ§¸Bº¹’n^OOH¤à¡:Öjh©"[$V±ˆÞV2Âlª_¢ÏŸœp EÙ½ûa*ݹÿòåg¾¶ûòåØ_ˆY¨ƒ)’õ>7e6šf÷Âá¬i“èGWæ&e/©ÉÙLjɬç8.Áœl¹¢ç˜XÒÓPÒRþîÝ3M1| eLöq$ðó/[ò¯°®·Á±RššòJ˜„™o_¾Ìq£<‹üå‚IV +àýòÏÿÊ/#ðü¨åèL"_/‘ÜÿK^ÕY/`¯Î¦¼½­êdL2tÞ3 +ò±ŒÈè_¦DQ”¤q™wDa¬DøïMªª‘BpA¶¬”\:jš² U•4Ë)M‚°ð%e¼¦àYœlÀB¿œúA·L#q3QPµ„yP¿ë +¾ûŸHú3UÉUüþK'3fØ™@så7xþ¯?äëèõ?&¯è~åøVX÷W5÷éj™bkkëiùV|»0×쟋4Fþ·7…›Hù7õ‚ ÀÓWÍ&UÖ“ßÿ÷5½ÿý{öì¡{àØÓÔ±ç[MA  †8ñ„LÖÔ«· ½ƒ™úéoÍÌÌÔ‡YÖ?ºÜ¹ÃÀwæÃaÔôáüÎo3àc‰¥¥[X䛡òÐ͵úÛ[€x0M§ÛõÿǾP€Ç€¾?«û‹b/œøÙlÔù÷=Ÿ$×Ͼ†•€¨0À`Óÿ='O>lþ3F€‘€Phå…“þs‡Vüƒ@A&fÛÚP¨móG±D0”cýø‘À()ÿWPŽåþõai`_m_ñ ÿz>ò³Mu˜ô‡üIvKŸH`gÀÎñéà?ÂÿĪ‚$ÿææŠR$ìW&$!Êö§ÑgnnV„LTèOi/:/’¸-Vט_°¿Xdk”þ~I3J±u¿à*@þýkߨLOM}c³sÿ?üÃvÙJ2öý&éÎ ôpRŽÛf$B< «%ÿ{ïǧ –‰t£~çľƒ"šî¦ Œ=¦iÌ„TL{ÈK¥_Ò®† q^›ªÄ°é˜¦›÷(O+åE"vã ŽäÓÈM¶íd¢–N9{ Ñ(3絬9%e°oß9mÆI,-oƇ—÷þp6{è²÷y>ßj'»kÏnf7ή⢩þ Æó<ŸÏçù©Ô÷סöG Æü¯áƒ ¿Šøºb-@…¿jR &a \ýþ¾ãaÉkxÌ~ÑðáûRgßå#}=}Gžëó/->²Øýj7wN¿ú.}¹KK7Ø +˜HÂÒBçÕ/_íCùÙ)@V;/Ÿ< €‡Ö¿ÆàæààÎöz‚ÿ³×ÞBàÂþæü*ÿóx˜ïMV<Øçþ?ƒ?ì~6{b6üÇbÀ4𽕕ýÓPN‹7èþˆ0ÜDç¿’¨@%¡ ˜˜hçuÁ²]ZTòc[YXØ>Š-ÿQ/ Š@ Þˆ¤`°È€Ç¿ü—÷z«.úmÖ'ÔøfÍó¡Í¡Í¡‡ùݪlñinàèo]¬üSEú“Eõè YĬ¥ËýIâe?6 `?AßÚZÛÿ’/í  Nèûþ(mëAKwÆàhëJæ„£»©°¡ÛŠ¡O(XqmFÕ4-e+ªó¼c:Ä<,ÍRt% '=©©IÝ™R2Åà7û;nFÁÍé>iuJ1KJ©[ËØ)É—Ï(JLÎ+z[¾5©‰„‹ ,ópbý¥\¾ófÜøª~ñ³}À®ý:Š>¾åQzfŽ~ˆþ;!üŸCàž¬åÖmÂþÐŒ¤Àà÷úÊä0vNwaûoÕý xïj ÷2ú7<Ò A½¿®n’j}ÂpBzý5¢ôç±€¿¡Ž‡Î¯Fœð<ã¿wüR ?‚ +îàªÁï'Ü÷‹•Àn ê"ÿ…Dnð €êzGzz®.5¾ÓEøßÕ}qÈXb™ÀR§êÿ%”ý ¬è» +Üï¬as€g°øprfãÚ×å—×ÝëÎöõ]»¶ã-„èh¾ ø?¿tÈk”§ÿÇËGoóñãMM ÓíµóV@S/ ÿ{{?X™èmFO6À¬þCC@´à +H¸ßÎvĦ9›ÖÖríOÐOÀs;‡¢ð'20JÀ?ºýšeK€í‡Ë~€ £° ¬…À3 Ç¿øøxèZD–G6"‰M óC‘0ÖÎðƒ»‰H9òõ‰cÝZ8`¥â³uƒà_æ&ÀFëQÌ£Q‡ryŠÚÚúö¶‹?&°  zw]Å 6*ªëŽÌÄsŽ“5Õá˜)ź³Ã±p«Ya¶%Õo¶Ä¤U ¿Ùx¿©êt/k¥ +ß'U›%Þ³wª%©Î=’$ŠvBñà¥5¸÷Û>^ÛÇ*¿c©#®•ò¶¥ÁÖ‡޽æp¿ÿSÏ Ÿ£Zb×Àñqá@e¾OJSõ_ZsRØú A FBL •±Jñ™œE€¯Yº2ådr­z>¦äæƒú”ži´´L.ÖqLÅÒ|N<§Ùyn8A+¯drŠãèÎóIWk…9P£ÏNªª7"ñ˜Gþy-´WW鯒9Z fј ‡Ý0þѰ¦Í¸,˜—±j‘`‹fD6%¶Ä@–ÅRàWÄÄø_¬Ò˦,?$?ý´|LÌ$„§àíú¨ù'ô1X¿›!Ð-FÿP4Ýò¿ßàè‰d·rZéÚµ `±c±a4 ‘n-|‡8€S€Š”øÞ¶ŸŸÇýˉ`ðìÿ‰7–ûa Àèïçš|@• b`0 _À…Š%ÿ ÿ‚aÁ¿´ð‚¼sC0:^ x¯[êìë8òÜ‘¾%úòº»Øà5ÎXöì» +ÀÕNÂþ…Ë W  ô# èrÇ厓ÿŇæ¾.¿¼îJjÛ€ðìµ³Doù.€+W}ØD à|T°(@ü?¨}½rZtšˆôö®4 KØ÷¯|01ÝÏC€Ú^,`$011Á ®ð'ÿ‡0½‚´D„peåÍÃ7éé›P lߎ¡ÀMT +gÞ­1¸“ +0›€Á µ€ÿÀƒã_:X˜þ$¸¸ã&ÓhdmØ@0k€,ûò8ص~‹ ðâ€sÑÍèüîoo½x‘~o×­om­oUÃ^ͪ-#wªÆVZSÊ9Ùì¾ü CZ•Ì殺2îf4vàç[•ïÍîá¼iJ7Æb„šÕ>ûøŽòñŒý€Ÿè `3ÐÁr5l~ÒiI×óá»øÃб<{÷ +í? Òéj´ª}Ä XƒÐoðÎ_Ђ  UÒƒº<¡ϹKO¥Rt_O+–UÔu­zÞ看빔O9—·¨þ7 +ôÇi–’Wàè4Ò§Sb3™xЉ»†š› Že,Ó×Xjtlm,8s‰‚ù¼¦ÆˆkHØ~eÃrˆ0m ª(j*–ù=™ë¤&¶B¡-P€PBÈ›¼ °þÕ0Ï7XÀ}äé‡zè'É׈›Ô—Í…¯p ñ?`Wnÿé ó èp Wp»~öÓCCQzxñ¿ßW¶îO(§[wuïêbü'Ìç7è|î@“_ìø{Ã|`<]:¡û¯*€NFþ;?Öþ˜%0M ü¯¢ÇªüuUTü×ü¡ÄÔ€JÿŠ¿ÈBÙ/\€nxàêû:*î‘Øs¤§ïrÃâ#]¯vŸ~õ4€]‹‹7n,qàå%°æò?¢ W/û¯vâíòUŒ>a\ûÛ¯3 júÉöc;®¡þëð…ãOLÜz‰Þ?þYá/šõÓµ¯"¸™ÞŽóX@L°HðO§^öš®î¯üŒå~¼Hÿ +t7E( rèpþ©lŸèŸ`¯\j¡ý¿Y9(2„°HWkàAÈ3±Xî nçsåèŽýèGòÿ²ú?±Lq~`#Ùd?àÐ^@TvB ¸a+áHb#¹Aôà„¶ánDØÀs±4à¢7qÛ´÷¢Ñ‹ob`þ=üÞ&0ËšY'Y ËjÖDЭ“ÓŒ¬ä˜ ™««{¬ÇSÚb1=Kèç@§K«ûW¥,ßpJK«>-ï«N›ŽéT£Ë–>„|¾,[÷bœo¾ ~ ·½Í@§¤1¬K6Q„„ÓãŸY€%T£9 ùœ4&ÿxˆÝÖ°ðOϸO7ƒÁ¸ÖBˆ¯SzŽ€î¤¼"ýGi=eë1ÝçsG´xaJz>¨€7 ýy$Ù¸£7R…¯+¥¸Jpv¼ª~_ç¢%YÇTsc‘œ¸¥jZ†n(D€¬‚QÊ:c®»n1‘„¶âİȇ«b"M€ ¡)$<ü'(ýЀ׍%ýB àØßOüGó~ >áÿ\hާ?;¢ôFÈ%ý}‹:>I“víòÞw‰ @CÃbCÇ"ÕÝ ¬¬ë¬À* üø;ÜÐA„ן¿Â3ªáÚ%>¯ûa% ª +JÀ*€`3pëþIlLŠd ÿxÀBçzþbü_& hïc–aò€®‚¤tu¿ºøêk'^{GK‚Ð¥›¼È2Àš«5Wûj„`b¾>À{€ÊoPõòÿ,‘€›ýííwñEþŸÎ¿ôä¡—¦§öÅ š›{_©}e7›þk“'<^^ +äzÓ½ýÜö‡üºwFÿ íTå³íVGkËÀÚ âTëÓebºŸ÷GG©þ¯½ð:/T¶ØÎóTÿ£ì@D`ø¿ÝÛ“€ÁQV ¾Aà>…—#ÃnÏEO +…˜´{:æêçÊÔýö­ˆúï¬ÿ?—HlbÊíÚû<òŠPþ­'ŽºP}(0Ÿ|âgwIu7bÙ1—^ˆl$¡ˆ¸ªZœ—‰£ù_œÿöõù­­­ù­­ÐÀÅù@`ŠŠZ° wf¬Û0ÔnS¢B8†˜ß&d^mŒå©ñR›½?»ÏTòm&ê`$û™ŽÍqSß¿¿Ú¦ò¸Zr ûƒ–k¦-U W_ 5Öìñ2¾Ki\ÀyÛ®vœêñj]c á2Æ}0üYK³H;k 謥áý‡aRÎT0í .' «cŠ5•N9zk)íLéiŸb1ÃÐ,ÃpœK·+—™ò9ŽW43†Ì’Õª›–AE|NÉ+y:,ÏäU)å-MSñ ˆ*´åMÉŽ(ô ¨Îàõ<û$ó¥dØ…ëF<û6yü¿‚ÿâ'0á_1‘˜[¿ÿÿ ï¤ +Ö“?‡ÿ‰Ä±P™\¹u¯p„Bs?'àÿùgàÔÐÐÁÿÀÀ¿à › ‹€.Ñè:ÙÑÑåÕÿ±KtYâÚ¿¢Ûþ:Qúû… + J´öYÐ_³^5<À“=,À0€®«è‘*þ&l \3ÉŸ}ùܹà Àà_àÿsh¼°´DO^í»z乞ž¾# K ‹]»^å€G:;o\… Ðÿ }Pb@¬ÁO'?‹NŠ€¿æ öÉö·Î¾uöK>þ­€qü;Ï:þÒñÿÊÕ3·ñ§§WššŽã½z›yàÑÜêïÿ b¥·y›+búOW+pšn笀öABþi6f@Â÷þ ØÔÞd_`¾Œr+`°ò&Û×N@€| H·‹ À Ç ~– Ľ€A6ÜþÆàÙ/Ÿ0ì‹Ó­ÛÑÙƒËËËgžŠžš¥÷(ŽÏ±öõ¯N…üàøýŽ¿KÈ‘•ŽCë*áé_J@„ú·†Ñ„LÐO°‚@àÜF8®ìó]7©O$&†"rÖ¿(Pà DßÜý^4¹EðÑ€má€ζ™qcC¸è4R_ ȉ±¬Tcw¦ouÕçdŸçî¿d_º4¬*TÉKûL;kp²ùXX‡Åþ%#ÿêüŸûVéÅã«hþW;, `9@µÏ'Ù¥´äÁ»$ùÄ5Qù¯}ÊâÿOËÎA)½´†?ŠžM—‚<!>Ç—N§J@ý’e¥SÁX\×­¸fY©"1 bÀ”G›@S 3Á±™d^Ñ +ç|cD⥸33ËR'oYñ˜¦Æõ¼Ób–eu[yKQlô]lå :TƒÓóŠYmw+à4YS36 ™ n¬ÍT´°š)².e5O¤¢y3ÁñÀ¡¹M0€„œX¿ÿ Àƒv*ÿ¯þo<ôÐÓ?ùÉ'„ÿǎѥܸwº~¾þ à_Rú{ã­Édk÷ižÿïZìèZäúq$ K¼Àòþ +áøSÇ NÀ^3É7*„ÌŸèÁ$Uþ¼ˆ'pSLXý·‡5âCÙ¶ßñ´€ Àÿ:(ÁÁÊ"ð‡í¾žçzžë»ºÔÑ7ÀÓ§_ûëÓï¾úÓŽ¥¥ËK <óïC÷_ÌþüŒú¿IÀD¾FÀ{€—}cǵ³Tþ³ +ðæ7î6¸²óÃCO:tþ%Lü9ý· •þKššÎo₟¥€MÍb!àxï½ÍÇû½ÁöWú{'VùûGÛ'> Пh¯|¥Ÿ­§WØ‰í£µ£"" ²—Å«FÙ8˜“éÜï=Š·QN€äÿž°ì Ö·×B¸ãì'_.ú{©àô_;:»ü¿ü//ÏÎÒyvvö ½GO˜2 ÿ²¡õú˜úïk 2aþ:›ümÕáš~e#×Òþ­uD6‡"3YG‰uÛ-w#0ïfŽFB‘bk‹137Í Ö†¶¾¹{`ksë"ÿô©° €­Ã6ãÅðöÖf$ªñ³'rDs$ÓŠ$¥lüh`C5¬Ó!Im1MÙ¿ +1@›iê1h†‡cyUSLdûŽ‹‹óöÛ°ì±'“32¶oMò ~¤4:èx^ÿÕXö§b_r$žóW{®˜@åïcjöý&Èöÿ㢰¦Sh¤Òê Íâ™0Ìiq}¦£¯EŸR LéêF `„7Îé%}L“7ô´bëú”ʽzÃjµr%¨(–š3’q­ËÇbJ<Ï# QÑ•|ŒJ×øaN¡Ok¢'`gí6“Þ‰þ(j.œCÑïª'òÝ'ÂEÕ D°¦ +üÇ7 önD0ýSÍ¡pë~qOP¿yíé§úä +½ñ¯%l&|ŒÀ;†Ã¿ã'1š›£w€ÿ\è_IÄ&Qmmþ‹ú¿‘Þ»0úì è_"ÐYAoþΊ:bBÞçµÿ«¼w&5{ü0ûg™?ºüŒý¸ª¢×Võà•þ=},˜ôW±-Oê&¹ûAÀÝ"é?Uÿ7Ø!€ „æKW©¦®‡8€0ì:Ý퉠¼Üyƒ)Âݸ +Ó ¾« ý —k.s`v²ññ×›\9ðrsóá³ þè >~Wà­C‡ˆ|øèù—^"˜oæ&c>Ý}œî455`ñŸxnâxóJ»Øìï]©ä,€þþ‰éþWàÔý?"ÓÂÑ¿èÐ1HÖVÒ ,L×Ö~„ º¾¹ þõQ>ÖkGaL|apûèh-Ì~Y€„‘ ø¹xàAh.Œ¾qá,À—ý"ÈrúÿKl|ù)þt"ä§îœ=xðñ€Y:q7àÁàßþ#l>1´~õì‡6yí_vã!lnÊö!yW¼•ðËœ1M³!@HkÕÂŽvç#7ðíùùëoRÙ¶E$`ˆÝýãGTYVä¯Â{V³æ>'k††.ÐÖ³cawÄ0â’“ kûE_]u:°)`ÚÚðcù˜ö½X¬åÛ™N5B€¹ï3ß–Ðð÷én@6$ém߸ðÃxÎuÚ›ösÒ¯Mw%_9˜€iÇßo°P²‚ã"È—f!&z:ÊF4VÀ¦_.`hTÒCJë3®\Qsªï§T­Pˆ§âcñ± ÞÒ—éï”+q*óãZ2c ÐbV\w3^R%¯”´þ©úŸÉãçÔâÓÌ·–Ú. ›ÈD°Æ4zž8@¸EQ,¤«‹5ËvÂÑë›DÃ?®_Ÿ»} €hÌ…®Ññ÷›ðëë·îè®\¹¯¿ ÖÃ'ˆœnÝ…€Ž“‹Ä::»;–ê::Ñ€€À³¡S˜øŠ??༦ +Ø.L~÷ðdŸN¼èUü“5âu¼P#äƒÜ> —7ÔÀM€º*ê„€KþÏD€¿3bØïçDàçŽôÑ—ÖÕ婽¸¸øÓN°†ÎË(ùýW‰ôùé­ÏßÙÇ&€tç*:gN_£À=ÀãÍÿí0Ã?¿_8ÐÜ×þp'(Àÿs›\þï©þ€&ÔÿÄPÿÃpš Y@Pß 3 ÞÞi®ýk?€/ üØ ÀÚWØ MQþ¨€ô€tusôf¥È †-ð Þ·Ããgû H Ž@ +°Ý6p„ÛG¯À?õ_Pdyݦ¢ÿv}=Oö ýq|jYp€ƒLøÚè àBà¦þûÂÿ™eÿC(ú±wE å«H4KìtÏÝÈf¤xt^>š§ºt Âô×ÂP ŠjK«^Ä8:ÓŸùùÝ×ç_Üz­„­ùÝï¿Ù5‹#Ãó Ä ¡Ð§²ô‹+ +Á?.¦#í‹ç´áX¬íù̈,K’鬚Õû¦íei—è@k<™3Î%ã3šVPƒçr¹´äé½`¨F 7å8ÄJ»¦l%Þj!À±c­™L2“´,&*q2AªAÓŠça“A ÙfÆÂ¹ "‘`$6‰È0Œ†ªº®›€"xsnޝçî{€€sÇîöëeý¯Ü¾u…~Èîã÷7vuþéŸÇÿ'1XöúlÁCà_W×Ùà‘€Ö¾þ>ô‹ÐÖøð $Á_ÂPE7'é ¸¯©›¬`ÙÀL ¸ ¾ àßïÉxPÞ`›öGú¾Õ‡À"1€wO¿v‚÷;Ðn€—½5èû¸À®Ü8“,~mL€îE>yü@ïÿ>¸ÃCª–}¼÷®üÄÎCDÔôÒ&^ýûŒô6CÈM4³?PS/›XémŸîŸž V0A, '°rzz?ªø§E:@-UúhüÄGŒðÍÊöÚ… Ðë þÙèMžž­mŸæsLpÙz€;¶À‡±%P)f¿O_ÿ^OQÁOUÄœâD£TØŸÒ£å¿ÌE?Ýã3¿äô 3€ÐÜPýwt| ÿ_XúXùË_f¸Â +0†nG~&øV5„ö¶f§ÆŠá w¤›H\˜*Æâ3(LшŽnÍ_œ¿øþû£`Ñë:ßkµÛþøâ|dnH>:cgÛböªw#¤´j;YŸ3ÿ~c¶mXiSGk‘‹ÏÛ»¤Usø±˜mÂO¯1m??>¾_ŠÄ¾Uéí|©:‹.@µððw2…pÚÖU{m|<Íþ~iøúÚÕù ¼ƒÇ‘ô‡@#€½ÞG©aÍ*iñùH™¬¥¹7àó¥S° +¦RºŒƒ–+@*ùÓc„êEÕЬLL³èN,¨dÔbNÕtMµ W3rþz+àfÆçèS¶>åWà’c+J,—KffTÕÒ’ª‘32ô7óÑ÷ÂñUcu@Éëf^iÈæ¥bÑ¢¿$?@ßgNšÇ&àñ€ ÍvÔr.Àfˆ#Ö7×ç6± +põ8w\ëÇîVx"€úú¹[õõ÷± ­§ÖÐ;‹ÿĹ³a‰(a>pÓÏØÛéoèä½ûòáá}gEÝžŠ?„ P\ÿ¡ñŸC€*Œ&¹YPÅ÷&‰T ºàÇò ‰…pæU€^¸Á@ ¿¸¼ f/Ü¡{Ïõ=×@tdq׫ݿâZ7àà&€˜ûCô·€v®^EXpÇɇOüD¾ý5'Wš?ðò qÙqø@óãwýà;!xôüyºUÓKM/ojfÝ?Ö›š¼=,ö²`ótóq¬þ¯Lô®ô·Ã°eº}¢¿ß[d v?Øœh÷òkÛ_¡ƒµ¯L°àMÔ"v€•P TVbp”]‚Ñ÷çV‚·³9`Ù€Gk/8ûÅZQ1Ò÷ÎÜäÇîP¨¾^4ò÷Ë|⃊þ(ÿ–· À4`ö ÷¸pð } øwtÀŸ5Il¶È!v\eÅv½ÃåÀo›ÑBhŠI7šˆ„Û¨üw‹TŒv…7 +­3a"ôø,û{s`këÅë»aݲ¹µ"Њi'~ì £Ü1iu_©-¿jcv`8YslLÏ„ ÔœX>¦9RqÄî¯î7‡G,i¿”5‡M¢ãYªöµXž*|³dû¤·uÛ¡G÷ƒØ#—·Kz>oÇÒãÒ#<ëùõêtÉFúïZYó?~‡¤4Ëvª™T—wÿ|<XÃ-ìXÁtJÓN*×ã:•îV$ 3 +T³kV\UµxQ+­bA.„c±ójÁÈÄÕ¹q6äsq]™Òu;=eN™ +øJ<_psq+£e¬Vœ2 +GH¼ø€”C¤!Z&ýõKf[L‹Ù’­Âü7` À’|ó°b+ဧ!(” ò?”ØË™»o£`ÑÛ't?–¸ÛÚí[ë¨üQ_@¦pŒÿñ]»Nwíz·kq +5µ'ÿk†€°Öôs¼^g®=›ßNô×±ÔÏV@^ä·öYàDzÀIvýñ†8p… €=ü¢u +Ð釃7¸þ¿@ùB÷ž-"$Pöé{îÈs} ˜¼ú~í¯_{÷W»°ˆèŸN¡þG$ ù6¼ûü¢ððÌ×hð^àñ¦Ç_õF8?úøÝ Àú‡`;=zèü—^¢Ê¿‰ß4•áÿ¸Xüëåa€ˆ@6à4Ü€¦' hž®%лÂ&@+ý¯TÂ:°¼ðݘ¸ ¸g‹`b¬`SÀ›ƒ þ|¸?x79Nt®åNÀv¶YÀè(Ͼà@447„ê~6:€æý6FòƒOm +-{~¾Ïˆ¿üÔÁ§òÕ2`ßk0îÏ.ÏŠîÿÁòùàìÀ©Ðƒ%€ßwðòU ¨æßä5r*(q;$€b„Ä"Âq.´%»AÅ%`iÍ pÜ@ vw3Gez~¤x”Ðé½ùèÖfô"ìçÿÓÅùh=(©e×#n1Wý'’팅Ã-nä˜lê3ñ¢EŸ'€ó9J‹æ{^r=ëH«Rµ®8ã{÷:Êp^±3?¬¯Ji*ý%Û–V}¦¦ªýysŸ7þ‡óº­úÊ;þœh_÷èÀxµX €kG¯÷¥xöï­ÿû‚¬\[c $Z0¥—¬4RºeY™–`ž–šËÆ݈[–aÄZ5#͚ʸ®3rcE—ÑŸ,Èòzü9}|t=®èŠ’× +®:¥OÑ͘Gò‘ïùj_–óMøI>ÉD²±cïkË·æ÷e³*¯P„U5žT‹çôÌÑ„¹ø%ä'„P˜8ñ*NH¾¶I àØÜú}úÑö\ê×w7!ø¸~ý–ðTñ>ý|'¸o}WìœìZÜÕxRŒ:NÖ--u°þ%¦ þ°U ¸Ñ&ÐÇ{}5þr( ˜Ðý=x¬ +ƒ€ +‚|4¸ €v€·<0é¹3  Kˆôy*€…7n¸á-ð‘?Û9rµné1øë×~ýê™ÅŸ.ù9ùö?ôó5îc°põj€]¿F;€÷"ýýýjφpÇb/?Þ|å-€AΟ?ÿQ”ÿ \ô7—޳ `¥-îÿ#è8P¿w¢ŸgTú÷óJHÌ€ÑÑg à~tâƒZî ÞV;Q‰‡1#d€Ê›ƒl T;JÎ ì ÿµÓ ¼8ÈÑÀ¢Àc"•¾0¸rð©ÝO=öÔòSÛžÚ¶¼ è*~ùàêqkV”ù<ïgØ_„€G@ùϪþ2ê7fžx üs—ÛÿæðŸcì$·âàŸÃÿ­!dSA]Þ³;°âèn@U,c(1 Èm¸áîwø›»¿ˆ +÷¿‹»/ +#€°:ãbÀ@/;ŠÕ=IjÁ:ák#Fõ” +/ÉiÓÛQüšújVQõ•ý«û÷û©&vòyEQtÓ"Üç¸ÜRÞ‘ª­áXK‹%ZÂÙw\Åbªå«.ùöŠ-¿ò Àþ)s‚²ó@ºZ‚Øo\¨öa˜ö\Æ}kÜ(¹–/ÍÛÿ™”*AMKééxIOãšj hµJS™BAÓâç Y޵êqW.d6džÓ °QØ ô—å UW´¤¥Ç[-]É[†[˜Ñ©ØW¬XFŸ"îâdlµ?`Tg¹P-e¥}f>ßf"-Qu¢ªÅé*lfƒ®ëÕpY(d€ðr¤ÍÐúÐ13¯¯Ï%ŽÝ¬½cT:6w÷!àm´˜Ô¯ÏݧÀm·˜$ø?sÍBÿ®®]»»Ø ®£0Ÿ@'1¿‡ýhø½  nõÿû„ç_ç”öu“D õ›„€]¡òs€÷öÔLVù÷T ÀIÿ߻Ф¿ÏÜÀ"À/Øà²Ç:—àïÓ×÷ÜÂsGžc+€®®Ó¯¾{ú¯_;ýî™Å¥%N Ƹ óêÂeú$} ÿ5D +j._­éë„ Ð‰cŸ|í Aì7vìðêÿÇ܃ÜÚ¹óÉ~¸“Àÿ‘€óhœ  ×Ël>~Ç +¨©©yE<¼²RÙË©Ü˾@½H&€í€WØð÷•Zvÿ­œ@0@í4Ç VÞœ†mp{oåàG¼ÿ_+œñB^¼ÉÚÊíÛw\¼É£á +8ø÷¼‰ Jè‹¶n-o{ì©§¶mü—Ûùõ¡ú§<.à!ü²w»Üë_æYÿ, 0)ÀG. 0Ë\ ú@x¯ê_¬Uü›Âª×Cì$»944S¹¡úMVp ˆaK Û¼p]£Å·™ °Ap¢è8 bKl8ÿØ{Û¾¹{÷óâÐûöúÅHôÙ÷ÿØT,_Öù¾Z$,T¥½R6›A¡r©ÚmåÍF˜á™Šb™¶é8™X˜¸€™÷I«ÎXÑÏ4:Jw‹ªåuG‚J.oûòZ&H7òù˜>®çK¶ÍýR)HE¿Éõ~õ@æÁâ³×ïñ?C¾ä¤Ë÷XÍÝŸX{z‰?J!8®gZ,ËÒât7žI§ÒJ0žQUC‹[ñRÒÈ))ìh–®çy˜ZB1._“]£`ä +²Œ‚?¦%ú8Íj…®_ƒîO×8/H×mxþ—Lœ,}ùvV"`·}B@S’JÝÈÌ'Õ¢¶ou AG…- ,ðJNúƒù7×CCÇ œƒ Ïý.@,Ý£ý\?÷¸_€D8™ŒŸŽŸöV¨þ_Ü…ELˆÀˆuwÐÿuzØOçô¶NöÕô-økzúªèRåê~ìK€{D2ðLýý¬¨N@“{ü{0@¨øN•"Ü9ÉN@5 Ä)€öœŒI€Ðô]^N€õžž#˜t6,v½úª˜,.þI€ðþGàrçe´@`x¹©€gþÏ_¯À½ @ÿçF/7÷ÞãG÷Ã'vî-€ó¬h Î?bõ¿wÂóÿçiÞìíºÀ€ÿýÍÍý+ýÀþÚiºžà˜`”üíTþ¿RÛþ¶°ÐÞ³ÀÚA~²/­¼ySÄQý¾À4{Vbp^ÉNB"°]o°<<üEEÑåeB´õ·-o€Oؽ¼mè€Ùår_OÌ +ì?(6ÿ¸çï ÅÔß{áì¬èÌF£4€÷lü¿ðR¨¿ýo ÿ¹wŒCÖÐÑ}TŒnÝ +EŽ& l’TìU³FjŒ‡#p +^Œ%‹.Á‹ø^¬%ü§ëw_@ößÖÀÅèÅë×w7{)“ÍJ¶®«î ¬ml³RÍØ+%c±lVÉgWÍ6E+ïv[rذ²’c76ÆãªÖ¢µèŽ‹=¦ÄâŽSR­¼ðÈsƒ¶ývÉ–žZÐÉù$±êç³K%‰×üqN³/@5¶~xÎúMú3ü‡i /mßaâðnŒc0;ÁŒ "0Xj%ÈÖ‚V<è¤ã–åK¥u"VWïíÞ·´H ý±¸È`qW;:ê–¨`^ò€Øüëìdü§š¿Ï‹ú"À>*nž×a¼Ï£ýÞú£:Ÿxú߃)çW€0 ¨˜DÇÀó"ÂзPåµÊͶî¼.¿hè[X|{ï¾»øÓN}1óGÇÁÏðb' ÿÕÎg~z²X¼vå¨îozüìY†ÿ ;.\xùk€Wnþï|òÇ¥à½`õÿñ‰öF é81OÈYÀÀþæ‰ ¾ÓŒQÕôXœXaƒ`¶¦c°Ÿ­ÿø4===Zû³ÑZަ{µ„ðXÄÔ`”å£Â –€ð½É¶@ôL=°}ôÜŽ¿H_ìඃOùyÆ?ëu؇nEŸ:Xžæ{ ~À~®øg¹ðô`¹Œû¸<ë¡?¿æàÞ bÃâßHàãõõÍöÉ·°¡·9´™ÀП(JˆÕl p«>Tt²áH ¨˜fl8®RÕù^d(AøŸ ÈcÆuGŠiîc?žßоIñÅ(â·.¾¹ûým?nQL%ãìÓ³«’´ +Ã_S×e 2«S99gvY9Ó!(•å±ñÕUŸ©>f´¦W©ØÏç/ ÇòùaS2óÃ1S±ŠçÕ0òiÉq-8ÿû2ªò¶m¯U—­ýí’˜øWWó?geÿ˜:2bèFÆ·÷NC`œQÝ'´,}ãkÞ À—N¬ÑÅ +¦ƒi„€üû‚q^€=PZw‚JPQ[´¸žNÅs·`l¸†‘3¦š ±!Bè +† G€œ3•1rq} ÀôðˆaXºbÅ,‹>§î˜&ü‚mÛç˜&ѰOom `æ ëílÛ%û³Ä§ˆ(*ª9 Œ° Àæ¶çàߌeÀõlŒ"ÇæÖ¿ìŠ­Ûø!¯%Ž%îñkg}nÝcõë÷G8N&©þç@×"S‹Ä¦ h¨«£wlô/±ýÿ8ë‰Ñ?|ã2B}DøŸXöj€*bTãÿ² +ÛÜù¯ê¡7´ +Ø#˜žEÅ?Y5éå +bÐéŸìãEoîÏZ@xÞ¸ÌyôÇ߀5p_ÏÈk–! +ð«×Nüß§ßÝõS¬ð  ­€9 È#„þWoñáÎtÀ£O>Ê€0ï§Š¿Y¬z€.+Ó˜LôÖBØß»ÂZ€Þ²7À4QŒ&XXûJ{û+¢ vá0Ñ>Á AL°(pºÎ?ž°V4ÿa@—Jά$À§;"?ˆM‚ÿƒÈÄßð‹´¬·±Ò;ýŒÜ€÷åo =E÷àðç û½nÀ¬hˆwOø¹ÚÿÙåg +? €{ÎÿEý¿^Z¯¿õoÿѦˆÑq$B¿“C‘!Žrc@º¥_ÔCòX…éF-á6ªE7æ9ˆ@N¦Z7"w«B®ÑúØÙûþÛׯ_œß".¾ùþõ7ÃF>—‹¶*ID²{²Õ]¶Ÿª³jÔ¸6â«ÙﻑHxìŽ#5æ[uiÿyEq|YÝ–|J^÷™±€¬ÎŒŒ¨ý–öXE¼S²Ì5Ý“ßq±¸üÿ•úŸJA=]N§3ê‹ñT®ñ%_ZI–Ö„ÀW¢ â?\ÖÒ^/`-“‚°/mYÁ ëýZ±HŸ7%Ì2ñ ¦SÁœšsÿbÄ•‰ > y6ác, hÜ'䜮k†‘ÌdF\< o9 Ÿ€´ÝhÚ Â ÏÌ—t›¾Ù—òy½­Ô¶ÏΚf·¡šû̶ì¾lõšL)ÉâH8lx„ê ´ÎÖ@˜ÏÐO¾Œ§GÂ2v¾lðY q,”¸'ßɨ¯¿/~¡rñDkë™]gDý¿¸Øu¦ë ÷x` @Ôÿuâä÷– ðvùû„€_˜Ø×ì©ã@ÖVÁ¨‚÷þ&«˜ Àÿ¿Æ/¤U{ü{ö`]­Ef }Îÿ]€_ðÀ ¡è\ò/Õur[¿ç¹ÿþ­#=} ïtuýêU/à‚ü«Ü· `g¾/Œ:N&ùä¸E8Ùü$!ãá·vœ=|öðhó]Óqü-ÏžØù$¢ Ð$,„ @3kaÐÜþ=1ÝÿЇ÷èþ÷ö÷3€OPï‘‚ö `HØß.š•ˆ„QPåëð¨íŸ®ý·üy=½€Já|'!`~TßC€í¿ÁÁQa ÌJ€ Ü ­}£ò Þü"-€+˜ý{â?€üÀìøìò‹õC¢0pð3ä?Õö^Á_ÞüŸ…n`¶|Ô`àTtýÚ߃`ß’íY†èí«§·ÖÙA–*Ç­Dý‰¡úD ‚À]Õ¯‡Å@h(qí|›RÔÚ.)¦“„ q7"jG˜˜ƒáüv>Rø^Kø½ùèÀÖÐÐ֋׉<{ñúõùèûïÿ8`ä}ÙnÙRˆH&Ûúg¥äð#„ß{mg•m3ô½Sn$± ¸Å1Gr|Žou¯”5uçyø :ðI¦Aä\¬eÄ-Û##zµäsïç+{þúì·×„²Oèÿ|:²õsšjd4£0ntæ\0Vƒ‡8`I×ׂôÆ[„ýkç2iÖÿ—§ìÓ¾€Œk1 _[zOéqÍʤœt<§Zñ@=R‰FÍ Gžc`×"¢ 'ˆ(q-gäâc9÷! ¶aä’ A¥¤ö7ê ¦÷¬Ã:æu;k—ÓlS,È)ˆ…µx&©µ&cô‹u«H +* äÐzÄÈ]ÏÖ™þT>mò:àÜ—ú‡uâ+÷JÌݳþ ÝiÜZ¿ÿÖ‹E±È Èù?$Ø ÄG€åÿœ×+æÄ°ÛßÉóú¾I‚VO8Y#LÿXЇù>{Wø 2À…?+Y PÃ"žp `y“"Øýž'ýg gÔ¹#ÂòxëÈs}þ¥ŽwÞéb3Àwßý)‹Á¨ú÷c°†-¼£óò3'Ï$¿^;€÷êÜœžx”ÐÿðXXùø÷"WžØù!.‡žÜyhçÎ'= ð’02€M盚©ìïÿ¨rš¾™{¨ý§yS`‚Â\ Y¸®ô÷øO÷OLpÀ4HÀc=½Î²¿Ú~Öþ ãtó&=ÍO H{£ƒ ð€= ˆm@a |øì>ù?>ùäo¶_àÀÃ/ð[Þöó(àA¨²±¾þ¿€gJ0K§¨w[˜ý‰>€‡öI¸ÃfYø@ð;æÿ·±uB|ËÜW™„]ñ²å#[T7Žþ6 »ndh=ˆ„ꇢ®¢…#‰D`æ‘–¢ÞhîË*ZÑýž+»n¤%+e‰ È s ¦4á–ùèÖVtsh³~kkžàÿO/^Üxÿ±‹jøl·[HªúêxV³ŒXÛX80ïÆí¬4¾Jœ€À®8–u\ªV#‰ K1 î[‹c¾U"YG7MzÙ8|ÿ|ß“¿×¢äcÙvÛvÚÊXöøø~_ÊFиývIϧaøC—½ãŸJ%ËöÙkNuÚÖcm|AߢD‚ñ?"D° ¨«Fx1“IZz ©%=e›0%§a1 nÃ3ôGŠ«±Kf›–e5+]j ŸH†‹-Z¬µ[ Ÿˆ…G\uF-ªj$`#:êHºÉA"âÒW´™À[@zÿ’;<æªGàžõçÜÜ\9hî~x@ððiÑ ÷“‹‹XÀ@C’ëê¸õg v:넲Î<Xàð?øý±9ð¤ð›}àU=UTëO²  +øÎ7à€@᪂ÿ=L&¡ÄGW-° +€Ín'Ï Ø†WQÞ?w¤‡. ˜œþ5À"ï\å)€ÿ²Ÿ;ܸڃ6ÀÂåËg.>ýñpåÊ'µµObÿeDîÙø´v>ùäNz{ôÑó/Að’p:ÿRïÊôϰÚÿÊheoK{ûyþß;]îýOx7V@& À>àJÿDû+þµOÔÞ.\èáZaý_9Š˜4 8/ öæàv˜Â¨WnŽŽÞ¬„ °ÞÀbP,pP fí•.\à1ÇøïÊÝÿgÅ$`yÀñåg‰ÜAøòiÀÃþòª?C}Ùýy@žü¤`öTôàÞõ?Û-­‹œóPè«•Ô³0 o óW4Žcz6,b XÅH‚ +Ë +¿mU’®<ï~×ì6‹¨Õ²Í]6ÌóƒoøúC804?0¿+€ÝÖ½ºOÉ'G6 U“ö:¦d¶Ûp ûò»Ì1Ç šcÅ@À0¥b(t,!JÉÞOµ~Áû¤,oÄQmï8ðö·Â¹¤|o£{ÉÑÃrà‡ii\Ws–©Óc>;Ÿ·KéÓòÊ_°dKi½z\²K––Þ?®k–+ÇÙîwïøßÑùŽ@ki5 ªhÑðùÒkìvJó&`\ ~QÀÁ Œ[xe*ÌYé êÊKËÌŒ@K¹N•w! 1øûénDÎŃVÎPSNŠÀ†‘‰Ç-Ó"SvŠmŠÅ&ŸˆT#y,Žu›y#I„³¨´h­Z1‹uçMÅjÕ®š­ÎÚæX‘¬–Ãq[‰i##áì#Âs›„½_âÏ7ø§jˆþÖ÷ɇÊ2ÀÛ¡Û¡¹/»V˜Û8ðÿ̮œ»€ÿg¼`¬Ô!pÛPÇ€NŽúåS'üù;= UUT›¿¿lìíý1Þ€ð—t£§¦‡ƒ„kj D»`Õs‰…É…žªÿB€pÀÕ /t6,±»ï®§ç[=}‹¼³øê»ð|w×Oop °~Á߹Ї`æ¢ÐùÌ™¤ñukÜ\™hoôÂ[oy€ÚÇ'úïù v>Á-Vì|bç!Ö>ú䓇}©y¥½¶rpzºrðõÊZdSÍœê}ìPÕÿ +¼‚=F0Ñ{+ˆlï'0M_Å4Öþy °ÝÛW¦QòtW¾N•>G°B€£µý ð hA­Ü~sJÿ›£"h»XÜ.r.l­|ctðí;¾X ÊÛÿ½@Ü—· Õ?%$è +x ?ðÙ Êèï¢ò_¸³ppàAÀ=ì·XOð€@ôçuú +=±—ß Ì"‘ùÄæz$Ÿ)f’!ý+FBC‰€¶”£Ä|k›A/+m±dò¨mN°ŸÂâfÑ÷°°9ôƒ7³œU}¦¥à#òŒ.¡¯Ÿõ%eÂEÙhTÝâTÖ±U¹p-¬ŒgÝDˆ>N•¿­ 4˜áÆb%Á¼Yöüs¨ì÷ÙTùê>*ûM5 Ë1{|\ÏÇòzÉ"RPL—Z¾løT¢ê~Ü÷vZZÓƒx^"0·-*ÿƒé½bÆÏ,àùq„/“fïQè§Ñ`üçü€ƒ™ŒEàŸ"Ô¶2H¥SAÕ +ª†,‡µtGϨZØ`¤ sëõ?o²0‹\Ÿ9vs±VÇ ?$'zV&ÐOšû Pƺc1#.­J{ª³Áp@¤F\բǵ˜¦1HD®aÞæ¾L!À­ÛÂ]¼žþÖ÷ÆŸÛ[VÔ_IüüÞZ¥&@»ZÞÅø?µ¸xòä";/¡ÿßÀK€u~p?Î< ªž~¡õ«cÀà¹>:ý“~ì~˜ý‹@`ü_1  zDøEÈ ¨©¨™ä@E±€šIªÿûýéàÓ/€ê@ØÞG ظëÕW-DP^¾?—‰˜,\Å‚‹°ØyòáâCëŸ< tPYýäàŽ·¸pøpå½E€Wn=ñÄÎ'éýÃG_~ùÀÿ÷ø“Ø +xôüñéW¨TŠì*oþÙö×W¦±ØKÐßÔß/r€øôHóÊDÙ1hE¸Áh`bb‚øÊ ,`+€ ±ÀZÀJОTVÖÞDF BhtÔs À€m€G·C€L ¶_¤—¶Âìø 0€mË¡Ú`€7 ˜]>Hà¿°°㋘·fË™?e}Àòe?ý@pïÀíÛõs0\Fl2²“1 øª¤ës›< 7Šb`½~(¢BP溉ú¡„k~;ªÈ®ÚjÊMÍ ¬„ç#žñŒ»¡µøÑ@dkkž@?úbäÅ뻯_¼~qkþbôâîïg²Î¡PqLÍÁÄgÕΚj$!»b¦XpUªògd¹0vnLrÔ™¸™ôí]mTÌÖB¡hùö›š¾êèI5£Çµ™sñ°ëjØÞ/ÅÕªegäoË1BH[ÏçKŽÄM}iMKïýÔ[ ðAHµd~„ùÜ%Ät r”»tUÉ©@•bApPø0îo÷Þ± pxÇövÌ:vüó‰Ÿ'ÿ/oû{¾üÔD]CýÀ,_?{ŠnÒ%Šè߃bO`YdÍ +ôGàç‚îÚ±ÊðÝAÿŸàWà_ ¸½ÉJõH„Xƒóo`ƒ}æ‘@²¨¨‘P$0£†sf[Q}$wß‹ÂGþT}oȃŠÎ‘ßÂý +€‹o¾yýýÝ/B¸ûúÀÅï¶iæŒÕ:²!‡¥Fg5ÌKm—SÓtI +»ªaÈn£é 5Ó¨«««fþ„oo)ëÎUUYýTÚÿ¼Vݰá¹äE’lb²«û¬°,çlˆÿõ˜%•þ¥;~pþǪ $&þãDÆ×Ë÷b­|MSÏ©THe2¼ïçYãøK!  —§|é1ØÿƒŵT*£å +še\:ÇsôÕ¡·37:ÂÞ=Ú<@~ o„c ÏÄÆ¬¸Þ˜ÖyêŸÒíFg¨ÿì4 Èý³tIG5œW,%KÌI%šâdu$.%)[ È£'bI—hÙÔ²‚‹"'Ø Ð¿“[ cIPæ?üiÙ)p7 qìËñ¡â\˜ø]â!Op¹S_îùµp±õ´P  ð „táBµõ#Ød7 & Ö Ã@v¦ü b€÷Ê'ÅF@çÿöÔðî'ìÁâÿ$úU0¨ê‰°Ÿý+ˆ6ÀxÒ?ÙYÕ7 MaOÙ +àÆç"n,5,½Ð€€uaðÂ;hœ~ ‰€K7.³ÿU]Ä +ÀÕ"gŠ? h?_‰À[Üxùa@¬8Fà zñÙ³?úìÑ¿9vøðö ÿ˅ïÔK𿲲ÒËk€Í,€9À§àþ•ò$೫~Øò@€øAþ +C~û„Pˆ¦ôxdbº–kÞho¼Ù>È"@dl½ ¸ýó‘€;Î^@ÞÑ™ôü…ˆŸwýéÊ#Œý€:EŸeàâB`6ê5ü½-B:m+ª=ܽþ¿%€b@4Š9@4úÕ n¡ýÞô&Çì +y†2(^Ãm*H „gÂn«ƒaýQL ++ïÉÓÉt:zt>ÚzïúÖÐüîÝ×ÿÃÅ·†¶Þßýæõ·ê¡Ê²êʑܪ$Mf¿æêÞUé„Ëц$ű /»¶#íW,IRòšÓui/Y%?¬Å†Õ˜àÄFb%ŸÃpÙ°}¶%Ë:6þ}úÿ.IÕk>¨ûHW¯±–¿LpIû‚éŒîKgÔ ¾æKSoY™ E~ŠÁÿ/}ã鑆_ +ê?×i+˜Éi¬T5–1 +…pƲrÜ‡æø’`à:$€¡§#BH0Œ¾–KZ(„OOqì/Œ)Â~€>a?ËLÜ/åÛ.•L[ÑZó&R‘³pKr÷ºìdÇìÃV+:GÝù@Àm ‡  Ad rù§µ§ÇèkšKüÕ—Án•;L~G€¾‚P\a¿é/•äºhÄüïêhþwÔ!¨‘7Pl7  àí0ü‹A}píu>ëÿülø+!åCS ¦¦§ +A„8`žøûªªúzü<€l–ôð$¯Nî×@Ä·À©Bð nüâ /¼Ó°ÔPw*¿çúzzž;r¤Ç_÷?xµ ‰€­ÈĆÃù×Ï-ÁÄàØ•À#/×^ÛqøØ‚Ç •>Þü»ÚEO|¸óÀÍÃoýÕç<ûÖáÿk°vúxÓKMM+ðùG€­û›šúWš¹á¹@/ßÁe¥Üà}À‰~îôcß¿r‚[ÓD>ª„øŸ·0 h$`t¢V€7a"T;8-££µBýÇ€Á² ²é˜Bå( þùß2aÿÇ¢~ÞòãÕ~ü@­ÏG”Þг¦ëÙSžâè?+"¼¼gO=p¸»€Û`þSÑ(ñ*\Ÿ"pß ÿ3ÜÀ|äå3—±…›×ëD ‘Õ"]7™¡Òr>2Ø"dyÏu[dÅw4`“„+o…6‡¢×¿=¿û"á?ê¯o»øìVÄ%̦ +¾õYiU²´ ×”|—¤ å‹»è $ˆ;;FE´m:D V%ŸiDÔýû¥½¨ÛmÅìÎ —Z‰Èn,–÷™%É!?€Õÿï €x¿Bõ#G¾Õ×·´ÄV§!èÀ" ˜ÐQSsÕUˆà´t2ù5lÜK8Ñ~ ý¡k‡Ï¾uaÇáí£÷JÇÇ_ùoí¯_øœ£þÙ¿¸PùJoÓ¡GÏ÷N47ï_¡"¿w~ÀðlÂà8 š¡€_Єhp7`ÂÛ èÇ ¥ƒ€v¶œæœ`¶ +~½’ €û'z?²ÑêG{`ôÏ%8ŠF fÏ_ŽÚÎÁ@ƒåpÀQzÍ`-fÿ|pËs(·Ðÿx±ÂúS|ì3LqàÔçü–=—àÙeÿ!'8xêÁà=8¯ÔÏ­¯G1À÷òQ\xp¥„O‰H!òÈ“C²|BvÇtnïcjˆ¢¡ÍÀö3 m†BGóèDÔ¤äüÖu‹fÒ@ý¿5Oåÿ›/ný‡g‡†ê‡¶Þ‡ 1Ÿüûc†‘É:R¶õ19·ÛòÙU[U³N8€ŽtFrÜnErfÂyÇ‘$g*îd#¼ÿÓ½Rµã¬îõ)¥)5œÅ”\‹Öw|fÞ‘2òϪºÏö™Sãã¶Õ’qÒi]ˈ¼ßOË.ãi=HùÖ8êwÉç”â +¾'¶©ä5¸@¶1ãÒ¿ÌF8Y”]u¬ÔJßA÷3†0cÃÝ@®ë6M³µÅ »##'´–0±‚@_Þæ:Ǿ) è`pèww ¸ãøåvþV.ž8‘<-$€'Oî:ƒòÿdCÇbÝ3(ü‰°`C]§7á¯AËêxÐP×_ˆ8 °¬ `ÁŸg ÄTôõ@PUÁ¡À“þ±ØÃÍþ`a Xw …IAÿªú&:ýeô‡À /¼@_Û;‹~ÿUtùÄ ÀßÐÐõjׯ~}šÀO!@þÏeAøUÌú®^~æLñé+@™pàk.ÜüÝÇë‡ïÔÿ?Ú±ý•æC:ÐÔÔ¼Â+ÿ½í^sŸ±¿ û° +jfkàãh !`ssso¿` +°Ò5`eï÷þ§kÐÎU?úH &€A¤O€þ¿¨k+û§+éTóCP é• x°ò jéïxá t–ŸXæ ƒžÑ/¶ÕCàUÿQ–ûQÕ? ¼=ôGá/"gË4`BÖ>Üý=€9ÿ3³šÅ™§ôÐPhýþ}E” ˜Ön†"˜ûG67#«äGÕ¤+GÂG#‰!Y $X±ßæ†ýãvŸà#Ü =ŽgæÃáÀüÐÖÐÅèÐÀûׇ¶¶v¿¸µ5pñâæ"îÌ3’âË6Jc®7iŸ%c ®Å–ÕÖ°í¸òºëº_ÐUsÅ $àû²cjÞnTŒøêªo[&{ö+9*šµ|¬¤¨T€ëk>Ýu0½ÒÎ[>_IÓÒJ¼ÙçYýúÖÒPÿ•~³†›egº­ªT¸3¶¯éÁ`)ô ÇØÂôÿ³ƒ>*%6` f2éá¼¥õt0ÔéviL5èMËd4zÂÿ ¬²ÏÃ1î„àŠø‡ïÜ*\ú‚\ÈÅSü鯴&´gý¿Õÿ>{, +à)ˆd3¯©ªefm ›€²ÒkU‹aCÉ»7>V »3fW>¦n¸µ¥%|ÂênÑZc­±˜k  ž#×dv&X8Zÿ×ï”S®nÝ +ýîÀ\è~€¹0€ø.18Óu¦ñ$ªÿ¥gبA „Àç¢qÔ±^¿®¢Ó/„{°þ£ò¿Š˜BãwUÙ @øõÞÿ +ÿý‚ÔTõõ@ÐÓC7XÈ;‚~8Ôx6Iàß׳À]€_|®@àw:;ìTÖ#èÈ ¼ÓÕõîk¿>ý+Ì„î_Õ ÀU<ðLò'_»€{€þ‰ío]ÛqlÇ_æ@ó?õyþFœÏ¾u¡òø“O: Bû ßQÓ¯Ðݦ‰Þ&¸GZ¡?ñ6 FãŸ5€È ú þ…8p¢·råƒ^€ÿpŸ~⎘@G ;¸= ¬GL*E†à z8°ñÏÞÀ¼ ¸ýÎW£oÔî¬%pøŸÍn=µí©ƒËbƒÏsú§3€è¶ƒ ÿ§ ˜õL€žõ^(’‚94xÛrYIx'8z@îÑ ½Mð_¿]ý½þƒb‘r`öT4z +®÷í[·.»Z’ÊwªëáCUý\(|î!?fün$/FB¡L‡KUeØ0³Nñ=‰Çþ 9O˜†=$€ÍHÛ7ߌ \ˆbð"1ÿëÈÞrͽñ±oè»@¤žÍ¶…å¤oŸ²Ts?,Hº‘…Çâ’OuFÄ}~Õ1³–ÕšwLUÕ©òÏ+èøï%L—ls*ìÆt3f ÛWÒÓwDk ÇÔ\XÇ’àøÞ½Ÿ +à ûÇ!ÿÃÈÍ·-ºG€~'ôg|¯Or ?Íž¿éR&“Jk™Ï‚þŸÑùg¾Tð\ú/S©5¦™L¶}ßúèg´œQÉăqÜ7XôŸ`' 9˜gCÇ„'@Á0T5ii€~U¥{=å¤è`ÿ?es v|qU³býÅ$GLlSQ¢PÙ¸.Ð÷*¯äÛL˜'XcÁÆ Ð=#5*­Ã±¤•Ô¨ð?z4Ü‚9ƒ;rÂj¡ûîHxÃÅ?$üÀQŽÍ} A<Üf0ôOìöÝ^/‹¾äÀ'rø„püŸ<Éíÿ%zc ¯>ƒÝ ýÀèA;ö‰À?Îñ­¨ó—!»®‚@|²‚ýò=x²ªF4àþ³§¶?ôˆPÔô Etñ_¬ "%È_ãïñºÿâºì$:‹ ï,5tr ì¿uäH©á‘ÅW_}÷µÓ^ @”ý<ügÀ”àòå3ɧ¿Žaìw'ýýý¶_»¶ãšãÛ_þ§ uöðÊ·Î7 Dz?ïø¯ˆºžþq®ÿ›Ž7³6 ¹ÁB8±âñ>õzý½ýíýˆhoÿ ²"ì²+P?sŒ°Ц‡B€À@tnŽV¶·W^Ý^ɈϹ@ïhoÝQ{}Ž/ xêY"äËððñjùmC¡mË,ÿ+û€"š þ<÷gàí,߉ ž={ ¼›B¸í?Uþ,´€ €W*±pߌn¯Ã%.ìž6C®; %’œ+㮩»!9&Ð(ÚÙ,=w4 +ľۂ”žß ÂÄF¾ùãhäúõ­­¡¡‹ïÿ)<®¿¿{€ð?`˜º î ÛÎTf,n'c†!íͶùöê3Ãrãxã¹ Ù·ŠÀ߀|-a¬î•tçÒpXÖ6ÃPöV›¦>Ü’Ç¢¾ä[Ÿr ®ÕhÄd9LÅñø7F Y~:ƒåÿ½{…ÈÿSìüs=-IœõëL`\Œþ¹0îåüï÷ƒ³_0ÖÙó/ÔÒéL&è-þcõÏ'2ÖRx„îÑ%˜‰Äƒ˜è-S4 +aÑÿÈEþ ¬0 •ñ?G¸oiE4’DfâSé”ã#ì׉è6 pJ;ÎLΊ©ÂѶÁ²ÕY󜑋döÛL=,'"3««iöc˜©Èæµ–¤éd•úg ‡µ–hO`PvÃá0<›dzO\ƒ`(ÀÇ·þ•Èo üî) ñ£u!ørU€ënñĉӻx àäÉ]';N.v<Ó°ÔQ·ÔÁïÄ:ëèRÓY#L`ú# €Á + ¨¨ƒ% çøV ßI‘ļÝ|¹3“ öž¬©âB«zØ3 ‚‚Áxƒ€êþ¾ªø]&ÜôõåH:ËTëù‰Þÿe|Uê€Ë„ýfºùó1¢ðvÄq™t¨j6TM‰:úY€®7›pÿ#€ÊJ:)ШæOçÐ1ÐÒ=IuDú¸Ëo†0AŸ‚à>oZõfT\éQWÆëб@ K*ŠGÍæ¼&„§õ€bié”UZuKÊhØåQ×èèþLŽŠþ U•ƒ«V*þņ‡¸%+ˆô"`üq +Y@•þÏ—ð Àù¿bOåjQÿ¿òÌ }Ö׿Rß`¯gä·¿P꿞þUX +Y€vK1ºèTp@1;•*(Ë:„*Ð"Œ‹…²«~ðúÝ]>XfPY›…N{ËÚ„ +€åÜ' Ÿ7Ø6X>ÕV>E_0µƒatû½©é¹kך®ÙgìSW¦Ø hïÞ—§`4==Ó4sþÕWþs·o¿</€+…ý¿E/àý+õ=›>¾ú„@¤{ßãDиXúTõuÎýßßÿÞ?,îú…=ËûPÿ +P½¸ˆz~’þÏ1˜ B0)t€âK«ÁZ•Lê !n¯.nGªøa±Ý²Ùë"Õíl ­ ]‚°È©À0ä`À#]ÿ_AÐ Ix»û©¿Ý÷öG¼á×l`¨>@ô):û¼ +8ÿ³•Eó¼öÇ€†MÀØ':¬ðÿ£ÿ˜¡à‡+OÀ§â?\+Wà}€1ÖUŒ5B‚Ñ8À|Kÿ+æ÷ˆ…ðð_Ÿ°b_\Õ­ºb]󯬬ap=àÎéTï+£2vè–ÕOϼѪîÜÿ®kÿhOÖ »õÔó[òÜ¥ÏþäR#"€†°=À³7¶ÆLfŸ é7zOÆDe~½O\£šîÝ‘êïq¿ÛÑŸß2;¶-ÅúãQ—I¶*&oÔkZ2e4ÍÛl +‡Ã 0ük)º¤™Õ¬.¥ÍýTĪ ˜ã'¨ NkjÔÔlVTI"ÿÄ6ïBlÙ\0Ø&Ú¸ùþ¯"öO-š0/'— Æ—ãq<Œ€dÂðˆã3¿¼¿,l˜lqPõïˆ*ô øOö$-«¤³jRUTGRÈö"ø—'LÐ8ŽúŸ@0­ª”It؈@_PnÄâ±—×u%èùoKÅÂÞh&Oäáp6—y”p>•õqwÔ![õ¬¬øÂ±Ñ°ÇsÊ»}t‹G>S›Q5]ÏbP,vB¿TI¸ôä³+ ð¸Ê€À耬øª ÀÇ’œ;Uûj2_ûTóϽ07g'P/>ë-˜”Wp€½AX4`ú_QÜÁóîö[vs0Zÿlé+,ýp”• Vpòæ¸x®–Q}ÏYÂl°W`¿‘0È*©ò²©½–O& 'À÷¦¯Í55Í4Ùç, ÷÷âÞé@ €½ÎÏüýÜmÔÿP €{ј"ðzîúÕ'àá±o_µíøõ¸Þ{ýéM¥»[¿ 09ùíá ~ø§º8Éh€!èo´ +%à$úÄþiAU­Õçx) 'òã~µÁp³î@ÿíÿÈCl*øë"wêJJ"¶¾a¸FXPGàa8ãz1ºz—#ûî–ÈÏà)àÓßÿÞÿCÏþû}]¼XZºq€Æ?{ÿ]§¡›:ÔYyˆ‹ÿ!þC†I@!öWˆÿù‡ +æóEø §ŸH>kÀº01à…!öXšg«ÅƱÓlØøU¯Ð¡ÖÖ_Ÿ¬7ºsÊê„ì^sú+׬Ö@cÀéžp:×ÜÖ°Îsc·ËJÜ ÒyxÂêjRsÑú2¯XÞúì³7nÜè\_÷Ÿ\Ÿ½4téìúšöƽ¤[µU«5×m1™|rZÕÝÖ~EêÝÖŸ“³îc1_Ò›J%Óµ¦Z«¦˜—NI·¹yÉ„@-Ú +gþ•ý¾p®ÊjOm­°¢ê"€9x¡õ__߀Šþ +€† +CHÞA4€k{Ø÷—[: 'ÈwVttP)ßÁ†@ƒeƒø2vûß à2ÎûcO€½€g!bSeåSå„ÿì ü^a à7f¾10õþ•©¶½/·½øÍ—¿Ißqmf†T€·§¦¸ ð0 í¯|ý³ð™ ½½dmíøqô.–ž«þè ~ÌŸ|ûà‡ßÚõOßýîwE©_-òþ¸›}“Õ“,d@·˜LVñd *ÒjH«Å6`«¶.VG†YFÀ¾À64°ý?l»UWM €žd Ûßá´`Û]âìÄÀ%6Þ,é³õõ]ì;›wû.vÝíøOçwKKûúŽ|ïêÓ%ô؆_3– ÍFBä4/ª,*‚ÐØ#‘8_hõÏÂíyc‰ðáyç;þ'€ßÅÿ‡+++~ž{m%^ýFÑq°ñ«uà Àz`ÍiX,èêĪî^¡gçÎyûa+£;+WÒNk rX_«¬\ÑŸ·º'xMPÇ×Е=Ü °î÷ŸÜ|óæ›7‰ +¬ßø«ðŽ ,ö,5ÇÃá%‡â!¡+)Ù­ùV¥Õ€ÔŸò%·äÃ;3ÞØ¯ 4]æÑŒc"øÒ´¤)dv¹$-õ—Í©XÈluŽR¦Ô±/ò›SJ6¨ªÉ |yÇÿ¨;¸0â `½ÿQ~⻨ÂÇõenÀÙ'éÅm‡’ˆ3!@pû33úSå7óà29ä‰~\“ˆ¢S¿¢9úµ Q€d2«gƒé,°?K@b‡%'+íèÉc e³i*ßeú"…à?é#ˆwxã Ö¦â.¯q¤`E^W”È bD æÑÔh8£¦õ ¦Ô¾ÛOø¿?ìSt) ).ÝJZÝRV°à@eåýwü_YÃëcHy€ÀÌCÀêç  à¯oà£ø¡üŸ@‡hîs40˘ å_±½¸Œ®‹üzh°BüÁÁr‚AË×ÐØÍÃV–•µ¡À‹þƒe`e0ä, 2v2ìá4==s­if¦inÀnòï}f@mSÐ6ý¼^€˜LÀÜ&À5Ë•Wz®ß{B>)¨.9Nàû×7=ý•þ_8¸wðàÁ?ýp×wÿËwÿôÑ1ÂCÂðvXáCà>CÿkDXØÚ=!&Pýðûý«"û0¨®ºÕ^Í6í‘öÖˆ k€·¨Üï‹Øní[lµµ¢%€§·—Øúà©‹À¨¤¤« 6Àw»lt¿¨þaÔw—hÐWEþö[Õ¶§¿±kã-øýAXH +"§‹ wÀ±BàáúOæçÚŸª~cPľ@xB>µ:ºg(ƹ€†?^^ˆ°%AÁNŸÆfàW©¼¿âtKÖââ è×V*×tÙŠ=€À*»rj®ß‹º[Þ%xAÝ„{Å¢I¶bŒL "å]Ïݳþ¿7†nܼAõÿÍ76ß¼ÑÙ¸~ö'²îA0îD½%s©Á@¯”3õKlj)–©‘ôc¡£J:¨yC͉–LbI&8ñ†Ì±ùC ®³Ýi6÷5%¶™¨ºœ ž`2 ¿ðü1³¶oÙ°ô:¿åe îóà UËC×ŸÌÆ…$`«þq‡Ñý籜pÿ;—+f4РºŸm‰³É¤B5%©HèükR0Ëø/â7v³Y-­¨ZZS”h²'YË-ﱸ7OíðF}–S4eAõøØ€åXˆ%\^×K9M‰îDý¿?V«h«’Ûšë‘'VeÞNÉšëW]áœ,«ªRCø?ÁúÿÀŠs#9-ÁÆ#xhà瀫ãN¡ 8ïa*öÕü;×åšžZî<Ó4óJ}Ó+\ÿ7Ì5ÔWÌUØ û+*ê…ÿo94åÜûŸ+·L7d–b;¼P÷[,s¢Ë>}DÁOƒ0ö¢€È䀀ò6Bÿ½ìlä¨À½ƒ8OÁNx°­¬ V€Ü€nOO_»ö™óMç›®Ù®@"Ø6'€o~óŶi;ˆÁù™™k·¯Lúÿ/Ið~áuí³ðÙ Ý8Nàú?<ýÖD€Äv}øÿ~øáŸ.~w±UØü..F[‡‡¹Ð +€ L^ë®âÐ`Ü®žæYtƒÕÆ^àd¤J,Ò·ïƒ-Ðâ0]m.¾ßjµÑ‚ùöÖá’Èe¬Ö ó4`¸înéÓGJ»À@Å~ l€ûºJôm}}¥Üÿ¿[–v•t¿]R×÷ôÅÒ‹ŠùÎyàÿ|çÀ C~ÿ¡¡N#€M†ÊÐ0RÆýyA¸@tžv>!Ÿ2¸U¸VŽ;ý,p2دÃgy¬³sh^t` +7V¾"ü' +â–VYðk+•ö•~³1@'Üî oE¿®ÔFã£áѤ•è{bÿa¹Á’›xƒ¢åÞ¥*ô'ë•Df;g ÿovÎ^"pcó=Á ÕÅøžTøpjI!D̦ÂV¥g„Ê)9L&…S¦ƒ¨‡n6×è ¡PX“Ü=͘õ¬;mn6y3ž…æ„®dR!s&5™c¦‘­ ¨‡ì‚ÿäH4Ûÿ„×ððc°Ì,`[ˆ÷üBf1Ç‘€¤5L8~•T î3swnñËf˜ÓTøcþoa—q6"¡²ÐáèOZ³Š‚•~EÍãÕ¬&Ó­^º~ðU:ÎðÏ;›ð8áNɩɞZUM§£µŽc\óSýïF3 o‚ €C[U<§’a3gÅÌXL¥Âa³Ù„Øcð?ìòi BÙU]ž°Zµ\-ôZNQrá>ÙºZãñxj= ¼PØíà\"çÚ¸SDgS Óÿ×Gÿ®: q•ãÈþjn l9ýÀúú+Äæê€üõ¼ûo1LŠ-lHŸÓ– +±ÿ?-|Š  Byœ¸ø/¶t øsö +$Pö5<6ø51(®öË CàÁ¶½ƒåƒeS„ Ah)§êß®ÀÀôtÇ7þ±i0o¿M?ã +à[/ïš»ÖD àç3׿Ð.x™uÿ{‰XÚ°sÐÖðÊ×ÿHŸE"oGî\Ç àúõMGJ»Û«¿ð@U“çŒV@wûd›௭æÅ[&ëЈ´¶cŒÐŽ…(ZKZÑø¶Ñ5˜,³0 än}I¤ÎÆ®¿l ADŠ~ä–€Ü-Õ¿BØþQ_W]é‘Ëï _ÑŒ>-tÿtW1è±À< £H`¿À}F|Ìýçñ¹ð<ýDøÙ#€J¬®4rPçXãéNa¹<ÐÈV¸Ëe:8ý•­þf\ºgø `}nâÞ—’9mªNk.ëïÉ÷ôÈŠ+öüîÓw¢°Ì¹×ÀGT×þ=òó[/ðÃÿçƒÙÍë'oÞlœ={S€ÃM’|:Zê¨7lZ2ùä“ig”ˆHΕ€42΄¼#®TÌÔ¼ÔCšò9v˜L&³O‰†4?)R@‹…bž¬¤†ÌŽÚsÈäUkÞ_y½(®¥~îþã,Ñü—%JÌx¿ÍlJ,¦?pû)\O˜ ?X@¥¿nÕ’Žd²ßÌv?àÄ!ž. žÄ˰¼ìÈ'F€¤&ekÎ*YÖ ¬(Geº)(€$¹‘à?Ž@Ü¥)9EV’>_4Š]¶4r¸¼ÇD\Þ¯Á>^ÁÑx* ‹ ”ÿ&ŽáÕéÉþ£W4í?`¾'·*5+½£²§VUz  Ewf\™h-3€šš>«ÖÕ Ä{QÅØxlRÀOv¾` àjàø£5€¯ˆÜûïÖ‰Ü)ø»„ ðë@þæ0ü¯ÁNÆ ¼áýŠ‚€a¾£¢ØRÑaä³!@Ïþ ö;XúGì¯è1Ø=¸»¸x7 Ÿ»8GàÏ ¯þ£À†ƒPþñ"Á N•A0+¡©ò½mZïM¡@õ?fìÓ W |ÿ}0€o"`Ú~ M€¿ÿûÛSïƒÓ ËÛ,¯çþX}X?‹D"u×Ð\úȺ[Û¯n„|û»»>œ\l5(À"«ÚëTùWqvΠô]«®@Ì󇇫'°o¸ZHëØh¸Ë·JÚ‡[[ëêlí­¨õoEluÄnµ‹&•ˆèŸ>CP*Ò€JDõW î‚t•Úº‰%t} p#ˆÿPäwŠI?€|¶N@Pôï4„ÝÏã½èÌú aÆ­ûOÀï60¸·²Âªpt€þü¬ÆDØ2Z§…=ðWÐL!üE_N*È2Üz93Ö +#yçÊŠÄ5z|BBP  ïßÿ¼‡`¿fg)3«²&·ìÜ_cÕŸ½Ô8Ûxã_oÞ8»yÖïÿ×K'׉ \:{ÓéÑVUW¿ÏK5›¶/¸Fc.Óh®Æ--5‡\rÿÂ&Í´EsŒÆÌ¡Û²Ò±Ù;l‹š4‡~ +y5ÍG`N5±y BùÕôÑhJ‰zýôÒæf!ô3o37‡rZ†Ÿ*€„ö‡Ì¿z(ùd:ÇC—Ÿx^"äN&ékaì›ÏsÈã;@}œ¶ Wîp0ñ€|~ÙÿN|Kä³Ù¬¢B˜ÔR Û ßYýÿ^úË€^i1„MZr$—V°EíÁR Ï?F `á˜÷Õþqocn6¥L¾ÃáŒîY +•֥ШçXÊlîϺÓKæSɰW†SŠ÷Áƒ&%«ÉYÅü ; /:ü¡æ¿<ÐïÚFmB¼)ŸÉ$͉tö?ÂàŸŽ”®üÊŒêŸ[ý Ë ¢ àx´ôg^6'þ=”Hb~ ÛÿS"”^ì+Å ÍVZZé\‚xäéïï7Wó½‹Õ]ˆ=ب`lh q¨‘q~ˆÏXãWT9VÄfÆ6 aô÷EߟgE, „Ý ß©ÿ¹ü7v€ÿÜ + v`aË…]€FX?ðŸnô7òïÔÇøtÆÇåëKÄ dŸG­Ur#VçÊšt +Õ¤Û­¹´Fl +8Ѩ9ºç¯¿»ÓCu¿H;z¢á5Gß<Ѹî¿tóæÍ›oþÙºóÙuÿ›'ýn7¶ZZb“iÔë©‘‚£;%§;kÞyØzð`)¥ö4›Ô‘ðN5—Õǃf“ù¯ÍA)àÖ¨®ýhon&*àÈÕƒD'±WòJ0+%x½±" æ0þ§=ÑÂ|ŽJ8¶Áê'´l^vå?°S~Ì–¡éƒ¨Ï!b~ò„æñƒ9?Wÿ˜ø_üãk——1ÿÇ€q_\:â[ˆ@TØÿ¢²"Õÿ\ü»ÓyV ÊØд´ÒCŸÄBŸâ£’ßçˆö(iÕçèO2òûp‡E 7ìåÕ€D +‹a8ļ.5§ö¸Â£1om†èË‘žb½°ßëMjZN×µÚð~_OïÝ–Œ+zJFHP‹*ë'¤@€ÅIÖY +`Ä8à ô8@! °ò ¢ €üªœ>>.$€>4fž©ŸÙÁ@¯Ô_©Ÿk€@¬p€m€àýGÅ?ÚÓ øÅÓB +ØÁ.úèÅÕ¯uˆ9€È Àê€|â=€rqçßRV†ÍÁÁA´ýAÀ¦°(8%@¶ö>Ôt\»ö˜œošÁ* åŠeJ¢Ð6×A `Îþ÷ssŒÿm/O±êÿ½W^מ€ß"o·¿ý–è\ßTú…>Æ?å׬úöÁoMx„ì‹FåNpøTuŸ³µž+ô¸P5Ù‹Õÿ<¨«ÚGWö±—ð"F°[än„®ÜŠ´Ã¸o¸o¸®}ÚÎä XÙ.BðO” ïbÁþÝ} J€¾»}Â*ˆ3Û|ÿiÛ— <ó7Úütƒ{þ4 pb# ¡û{äø_$оèP¡ögK€±y¨×ŸŒ~‡ð òþJ%ïòÀÙÙyzMÃb™_]¶ä€–4:;+ï9ãëù,¥É«FN¼}Ø©ZE–sQׂîv«Þ ´“sµQUbà•¿®[eý¹ýĉ KË¥\²æ©±6ú××Ot®ÏÞÜ<Û¹yóæ››oÜœ=é÷o¾y²QßÔ_2¥>‡+é2›F‚’Ûªê'4‡Ë;’^05‡–b©æ¸.iáTZW½>ÓRÏOÈ÷ö;R¡XÚ“Éø¨ÿGèI¸•ŒËëI„¼ šbÊQa­9ˆ-ˆ…?„RÑ TE—ŸŸ©Úþìù+¦ÿ"ÔÏÁ{} ð€ËàØ¤GòùxwÄyç?þÂ}ºÀ&@\PG×òËtºŒá¿ %¨(IG?A>aüQz³2±%½èqÄ9qœ\RÍò†@V“•´ [¦B>gWƒúª¦Fy±þGg©x›J`I€¸N‚Å€Pƈ„] d|áÔhÌ<êQ’Qï~z¹G•GR–]áŒ|TS[\.—G‘ƒzm¦G·º­;€•5Ûˆ¸¯¬|¼òñc`¬à, /î\ÿ_‰ €S§ +IÀ3Çx°I@}Ã\=ÿ¥Ðÿ·Ø+ìõTûWЉп¸aÚìïhÀ}öê`Ù_¡ù_Œß2(HAã>/vX:*Ð ü—¡÷?›Bý÷Ú¸ô/{¹€± X>8ÅÉÀ 0šžf<h@*q€½/ïýæ‹må–¹kœh€=ú–½+ :æúW?~Bþó½?!® p¤´ê£Öý´ƒ»Ví:øíjcàáé?$ÿÌ€sFv@“O;‡}£Û“àÖÅîaºÕº¯ºzßX¬&vÐŽ­Àê:ˆ#Túߥú?‰TÃy˜ý·Ã(@¸£€1¿ÍF¥ÿEnþób ÷ (¡{ +Û€%[më«;²q04°Þ‰4 Î¡±Æ!Äÿáÿ³þÊg9 `Àÿc.0`èþ‰Ìx ðм˜Œuž~"ø´@a`…m€Oó@ìyÓaÀp ±ó4]"‡¹ò^£¿ò1þZ¤’_fÏɽړ“Wƒ9W”·ÅsިǗœÐµ\2§g[”‚r\×åçÜn¤ºõ‘Q“O«i±úý+°þ»qãææõõY¿ÿäÍ››O®ûýtÏ›Sb5(÷;”œ§%ªha³ª;R¦F5-±ÓÏè6“)c6‘ì•¥àÎd*¥Èj(Öü€¯ôÈÑÒ}dDIŠºSõ†VIr¤$§¤"Ý'Æi¿ËÜ8°u(Šª8¸ÅŸ`·ßo7Á –y1X^›ÿØìgÀ[ÿ|‡{ÿqìr#à§CýGLý äODRVéÏ+H–ä¼& fÏàV KvÇ©¶ÆÇ½r2©ªIuU‚OÃB Ä +ŸªÒ.ȳšJÕþ1‡Ëåˆú°"x,–ˆÃ%Ì6³ ÃSjGŒàß{c±Q:™R1ä,[ð:F¬2)E&OÑ«Yëm‰zÔYõpÿ•þ„xíÃme-ÀuŽ:¾V9.ŽÓ¿Êû•ÿÁÿoü³`£«qƒ@Péü€ã„ÿ…À33MMl@ðÿ_¼@5Å ,ÿ¯°”WØí õöbCÐQÑA%?;@ X ü/¶û;ó_ã<è‡ûO!0¨˜€Åxp¿™[ƒ(öË`€BÙ+Є +€w‘ +ÌN@Seܰ_c +ðÛísö9øµAò÷â‹ßÜûb›AÆs ss° ~¹í‘ íJýÈõ«OÀ8¨VnÿÁ¯lÚTZÕ¾ApõàÁ]Ý»ž3†ù,Fòà‹õÿî‡s€ÉsÝUÝçè¬ê\k;‚Û92 5R]]5Œo®æzH¤ÞŠÀ[ª{Ø Ûª‘x(Àbd¸$ lƒm ¨´ôHUúíXèB&wú€ÿ¸ÊZ‘ôvIÉÛ¥_"¨‘39ûoHäÿâòÐlå!Cÿ?`ý‹æ»ˆòŸp^ÜE€M±ð„|Ê/FŽF N¿“*û±F±ûÏçDÆfÐ hÄ(àtg£°šo쬬k|læÀ÷’Du¿¾ŠÐ«Ü£Ë«r­«V¦[’ôk:—uÙ³ÓD¸¬ºú +Xw×ìŸ8±îFUÐM£®¼î\' +0;»¾™*ÿõÍ›ÏââÆŸmÍ„–j¬ÙšÃ.`²¶IZØ_CX£î§–LSóÒ3J.ì͘ãVŒÇ•xr5[6>ê +ý4ô ¹ùºOÓ<¢Âq;Ñ-jÔ“Xê—‚’5¯èisshÛ2ûýò˜ t •0{£°óå±b™þBŸˆöb³µ¿#±LOXïH˜a &÷_)¸g2Àš€x‚ +þ;"Ç™ô ÀèÔ¯H`2™TdÂÐ@P!\×%MÎÂd(@ÀÉ€ãÎ@6ÙO_UsFÕ¤ë…i š–Ö¤,óâ.úã]^G-±¸ ì÷z£q³‰c‰”És… ýÃÐĈŒ†½;b^Èé¤S5V]W2‡=ь˻¢'Z‹Pé« sxë±>À=€5ç +ôVî¯ü¡+'¢þg Ó?þ…€çWš¼âÖa,\€žizæ•&¬¾ ¸þGí_Á.€¼ ˆ¼?tÄî§Úá +¿²öÏ +~žù–q[ ¸ ဃLÿíŒûå»áþ;(,€‰V°°c»„ƒFð û (Ý¶ÜÆ`æ| 3€k3ÄMæ*àùÿ~D,`}ÅÜ\ÈÚ>aXÿzîøð[[äí’¯^?ÒUUݾџ·ëà®§îz}ÿ åu•±À!À0èfoò>]ï.™ì®ªæ´ûÖÅ}Ý­Doí«&ÀßÇŒB$`#°½¤ô€öáH]5¶ýJK°þ7l»cãæ?}6˜—>ýt×Eº,A(°Qÿ×ñ$" ´o___ÄvñÈÅ ·:lEßyËóC•‡ú…Ѐ¡óg§ ±ý7p¨Èè(¢/ Ðz2ø”L€ázVI¿öüãhœæ¤ÅαΡ‚¿§1ñD†˜:‰ 46TVvÒ7<&{å•€D ̯jr®'GÅ¡VÛ£ädi Ö@·Õª+.¯Ïv%£=ùœ;°Öh=¼sÂM¥ãÚÊJÀµCÑjÔkëîu?n„ù'Ïn^¸trΟÝ3j2éÒ„Žå‚’¢èšW•ä¤'¶3œjNñšbIMr™š›M:¶ù–XÐ45£h©f„ùn3‰ô?¯?!ÓˆnÕ ‡O¹¼± $õ¦f& †ãŸ0÷‡#àШüMØÿ8 É?•û¿Àl³ù— ÃéÒ?^þçÂ>/ýtÇeôpæ +€ÿ…ƒ>}ä¡Ì+IúÄ%Áö\ñ³Tõ¿s.@ã,þG@ +ôJ#ޤš;ÌêêþYÌ` ¨gŹ´)›•ˆ{BížhTl&Ž-øb¸7ƒniñ¦FÍûÃÿ^EÖF”äNï»á;]ÞMV]ÛéÊ´Dk3áýá°OU=5t¿´Š¦Ïª,Ÿ’y`Kkx’k½Üø˜>îÿÁD—³€ÑXÙ@ÀX¸WyÏÿø#ï¡ l€›pšÙÁº?ûœì¼ÀkÜ^ÇðßΉ?¬ø·Û+¦q†>¤ÅÓØø¶Û‹YãßQ,l½?±Ⱥ?ªõ¿Æ[‚¬(Ü6?bÁ:01° iÔxopªL, ˜¶LM½gŸ¶_;ÿüy>šf¨ÖçEvüåH€6 =;"`tß•÷¯†¯|}uå ø­ƒµÄ¹XÃÀªÚïnø÷Á]ß"ƒÿÖ*¶òaà}…ÀdÕ£8 ƒ8Wu®õ¹îªÖˆˆ +Ä&`Õ-bîþ·Šˆ úYÃH ˆT·–”ÂaàÖ0±ƒHûbkÉ…R[¤kTÚ×q‹ß†@€¾¾öHW÷a h8ÛÄ< K˜½ýÑžŽl<ÐПuòzg#_2(2ÊõSª?áÈíÿCÜ(»€X|B>…À˜;ða7\Œ¤¥!(ȈÌ‹U@¼!÷*é=q:WÇ€~/ H’u"×ÓãóEsHVYÍWUŸÕmý àtë\'EÉ’µFv»'öÈ[÷HzË)«Û¹º_­Ù#»ýkÎKÏ΢÷úÉ“þ³77ß<Û¹ùæ73Q¯É§zÌ&ÏœÕèjxtt f>f³)'õF ãMIMN¦B¨øÍ©¨’d0Î,,£õ¿-‘047ÿe(åS3aW&“ŠRÁŒô_ýÿNß·¼l~äú:àH²ñß²Ðú;…ÕâpôqÀÞI—Í"ïûð¢Ï;qô'8 áX¾L\@(þã[âè ìOæ·¾Of•—’„õò™|²_ICåïŒ;ï¸KÇÇé´ G%ŠrF‡$‚p Îý Fš¬FeЃ~¨ÿ Q߂÷uxcѨ/Áê?¯Ž@©pTSËÙû ‚mÿŠ;*Š+Ä¢Ÿ]ø.@ƒ–ic°ØÞ…€ z‡ÿ–ï4È€¸Ü«üC'€&À}ñ  ²ÐÂÀ€)L¦öîµLC @€–ó?À΋ +ô4Ú° øÍÛÀ*øÞ+WÞo›ºyÀû˜¼Ò#]}B~›ÔÕÝ€§7uµ··oü'îÚ… þ@0€óÎÎMK€ÿ<‰@ ^tàܹª„-2þÃ6mºnc@èA +ªàÐ +9À…¾Åj,¶B ¸ˆ¼à$Ù` +ŒD@`»­¯ïn)•ý‘®¾#O9‚d ›­¯ý|ôÁÀ}ûJ.~Ô·q+ÂÀ>ìgp>4cE•E…À#xžÕþ†+c0p;*G½Ž(ìr…Íß±56ýûg6'‹üãæP"´œ7ÓÖBôoð‹ €ÄòáñÃÝ|£Àr?ûÇE‡à‚Ch ñ?®ô+Jž>²œü§äa˜Ì+½½ë½Ù ¦¸9i§•ÿ½Y%ÙŸ”x²²r4È®ÀJ2êHF“àg’Qjú &âðr,8¼D¢„ú™SŠ—·Ø#0f޹¢µ.o8£#ô~iiU *æÑX8œŸÐ‰¸ÝPÒØÜï’­ôA¢9úž¨KEzÐÿÉm•„õgbdq|BÀÿùwÄ ö‡_ôÕׯWœÐ'`Pû*Á?}4Õ7Í옩·¿0g·£ð¯þ± @¹E´å…ð¾¡Ø^QQ<ÈÓK QòÃúç«0–þæË˜ð ¿–€¸K ;]–[ø‹ÊJôЧŠEõO70h˜j€½ßôÜ5dþ± °éšÝNädÎr…žf9o P^a SSmF$ðû–¶?Ú ÀÏ%Ò]`øVß¾/Cî;ø­o¡ pßd+XXõ‰Â¿»0x­Š%h0hÝ7iCZ}W7€} €ÜBn@õp{ûpuUßÝvbTý#s(ÒŠD Å’7l%‘VìÖ¡ÿOÐßg»kë+è3Ò—–`, €¯ÁN@ôо}]}o_ܰ€H >o§à¶?ö1èb P´xûK\â@‘ 4:ÇWî=!¿Mî‰ Žf€ÓL¶NwvR–°e!¢¹/0?v’}épa-8ÀJ~ãìÅV:\ÿ! §âÐW[«ªN9ÕÕ"Kn]e+@'bÉ |wÏsVë ·{Ý*÷ …~çáçÖý—Öýk›!ûg ÷ìÍÙõÙ³~ÿÙ›ÏÕl#ôwÔȧ”É­ÅBKá7©€ßé±f%‡ù¯ ÿPßlÎd³æ%Ÿç§‰)¯S„öÄ b¦h4&–Ùç?F½Æw4]5›¼ao¢àö¿ Eÿ™CfPÕ¿ßhúWFÍ‚ï_ +û?aL÷1=`§¿8‹àêçý~ºÀ¨ÿ2 ÿ0.à\ Tþ Ç–-(û·p>·äÏ`áïŒÔÛK' )ÐŽk¼€ à&½½ÿMÒd%9¢(Šš&ÔÍ•e9¨£êO"P0Šx`z è…„è?ïéQz‚QYñÆc^ÁB ÐC¨X­’žö…ð™LLjJÐM-ª(HrÄb£=ô¸$­f­ZÒëŠzj£9*þ­þîU«û€ëtMºÎM„Üÿ;ìÌa€_ìP0Xq;X‘ôšSµ=µ®&ÏÔ7ñÀN(öíÂÿÖÿ å"û¯A ?Dv”÷ÅöébK!iܾçMÀŽAöàÞ@±EúÊX¯ú ^`é€î_(ðŸ]€`€^€h¼ÇT€{èЩ^@–ÛÈlzžEç›¶«Š m–rK_Ü[NÏX´xu€uï7Ì}ýw ðó@äNïu:z7]¼`kÿ2?r×®ƒß¦SU!ìG?ÿ_›,Ø4¯±#йªáÖowW㫺'#U vc `ò2=!^°o’ç n­¾{w±»ªš*d-¶üG"Ñ»6Û0Ò€lØd@g}%‚ Ø8 ›%"+¨;K©ðïÛg+ÝWzäâÆ +íæÎ1fB~V„=ÀN± À¬@æ ÍÿyûE,<4hY¶O4€ŸÒÀïFÞQ€Æ¶Z2|Æ +‚ËÎù1& C÷èà}ÿAb@©¸%^ ;aÐ5å”’Ë©=ÑÚ¨GÍÔòfàªÛ‰ä¸•€KwÖîÃoþ[ßd#y%<>|ø’Ý=ä¯äÅÿ“LNÎÎn†Пd¦æ×ê$!é«I³éÝ7uÕ5겺’/d +ÇÐÙ7…F•à±ÌBÍ=SÞø‡&¸û™¶%x02/,,‡Bœ…C, :àÍ,ÄÌ…¬œ/ ‹sh™q¤ü„‰Gú?±ïwy9.à?¤u0 ¸¼|'.—…èo ªÿ;Ë\é߸³ÌÓЃ ù|7òXáË£•zƒtЙ’—º@Ÿí… ïôJô¨”eâ =yE¬H’~TÏÊGÕd2©*r6+«gMuÄ O•°žý”9AïL<•ðb`NÑßyéÀ’)'LÓ7 ¢EVûy®÷Ó +ïøëºþó(F=škµ=²¬œÊéˆrZ%З>¸î¬­A +pÝ-ô +k+Xø÷î‹%€•rÀù¨:»¶¼úÌ«¨ÿ›vÌ ÿO¸Ï€öPU£‚®¨h0Ò°îW\ÑQŒâ^„Uw̱߿²X:9ò¢¿r~à?¾]þr¸–•[v"¨¼¬£¸œ©Ã Xä=¡ýêOó6`ñ{F3`ÊB÷0øã47=wjˆ^=~ff;f–Ëûååh hoýô +¨,D8 ðý¶¶†Wzþx—?g‰”lØtä­’ ¶/E$‰|‹Àkö£0ù 'ÀÉ‚àkBHŸ‹Âx’¨Àd÷0tÝH +®;W}.‚¿ºµª½z±ZUW—vE&a€œàöÖêE›íV$²X7l‹tÕÀçÇÁп¯Ï(÷1÷Dúúî2èãH^]m6p Î:©ÆäÚ¿‘ÛѼœ>@`hl¨s```ìÑøÅ>cþ|‘¡˜ç)À! h"ø´€ðÄg± ‰ÀF@ ?Ö@ ¨ì<ÄnŒLÿ€&À +ÿ›w©¤·NLÀ (§ä’99çQÃ^ìXUHÉè©Jèþ×o}óTÁÃÄ\;¿ûæ:ÔÿDÎnžÝ< €öäúæNÿÉÍÏî4mC6­;0¾âÔ½„Öá=VOj÷hF—ZjÉۀј)”‰5X +qêp;˜¶-‡Lè6á¿9&$~&/á¿)ì ÓmDý…b^à;êóBæß8ü°áèô; ¯¿„!ô‹÷ÃΟoÆ_æqúVKý¶`-€÷þ ûÆÉñpùóÁ|0›NkJ6x¦ŸJýÞ£ÙÞ£ÜÎ(Ä + t¾¼Xìe% ”eÓ=ÉJ,@ÉeâèåÈà\^‚Ùl°sÅ7X ºèðu¯ê¥§îõÆ0§F¯HJ!4ÏjÙ‘p¸_ÓÓ=ʪ5SVud5 ?0¿#¬héÚµª¦«Ä3¨¯~ Á3pb•øÁ?<Xƒ ðs"Â>@~é‹ñÿêøqc  òñ€ëįÕSµ¯Ö¶ð€¦úÜÀÝùŒ€YPû¿††b»EhPäWTÀö·Ø‚&@'þŠ™½ˆ(.+§Ëy.@·Ë`ö—¿2¸ÿZŠ©Ö/C{ lEå<(Y"`>ÀïYfÝÕ0U¸==7mŸi:ßò èÎCÞW°€”‹!Z–iú+ÌݾÒÖvE8¾ÿzîXð9"Àv€ÞM›ŽüˆðòËýP0€ƒ¿UÅû}U“Fà#àÂ2€LεòÖ€·Z»ÏÝÛtï°ÜGX Щª.½;\ÝÎ¸Ø¾8<,òmÈ``[Äf»Ûw÷}6Œùï" +¨Ž…BXbÌÄaÛ×UúöE:6æ Íûç° ’tˆe(D‹ü•{†>Ñüçñ¿¸rˆÁŸêÿ"V ¬µ7ŽW>!ŸÒÿ/ø¯8WüÜpÒ }zȰ^~˜€·s~h~Þh ƒ@çu)X+Ô²âGMûÃ߇=rh^MNžòô(û?*²°x°ˆÜ‚ãk+ã0^ùŒÝjHkP <^·K·®Ÿ‚ðU×Ï[ššžÙÞÔÔdobä¯ ð¯àN{X,(ªE 7ô øíìõWҟΧ¹Ýo¡Š~°cp +«~–A±úÏ™€Ål@Ÿ†Ã/FýBê_FuÎðûG€=€`€v~ðƒÝÄ8 »»ê©V‚ûîEúÚîIäwGè:Ôp@t@õ媪®»Ãp â¿j_kõ0о5ùAÝö;ˆf/à:ªø‰ ܵqúïüÕõÕ=”ö±Ðîú¨®ô£®« šð`ûßù"¿¿È@F¨ÎÂÚ¿PýS騨¨° 0€€'€Oåð¯'@‘X°è(¤2p£!˜³÷ˆxa[p šÓNÿïõÛòkhÌ3ü»n='û\ +AYºN…¿'w1îaU—kM£=Xh\kÔ·>Wô¦[WvªV·5\#íÙ3[É Àï‡àäfÖÎn¾1;{¶ñ¨ÙôסPÉtA_,jNº­o¾«w,hJjt!d +-½ëɘ<0¡ƒ­‡cÛž¬– 5§óy?! +©¿‰³¶y—cáX8ì g¢¼ô§z<žšÄ²y›9BY¼Ìµrè?… ·¿eûC°lvä…@w&Çã°úÏÈÆóË€ö„ð.l8ˆµßÇ¿l‰‹â_Ž|:˜ *g4Mêµf³R0-kpHÕ‚Øÿï}‡Ê{à&À’Qõx% oÿ +,$¥_Õܽàˆ%Ê3âxî^|½ €A¿’VÂÞT*åÓ¬ô<¤ –V“TèGÓÊHÆ1ü§—"9Ýê–ðþýa—gÕJO±Fõ¸|žžZŸªÉJz*·Êáø\‡×Ò +[}fütxƒ€[XøÂ4`nŒWÞ«|èðÿÇëº|ª¦¶¶Å%êÿ¦MÛë·×ØO`ŽÎ¸÷ÏMu6ÆôŸÛÿBè¥ñt‡…Nƒvô Å>„ýåìþÇM,þ¡·üŸ–òr¸ ¨¸¬lpw9«ÙÈRV&vÿß,ÔýƒïáÖ{Ì $è·´Y¦Þk˜›¶Û¯'pþÕç!Ü>cÇaÎH+j3V+ d¨à]À÷ѸòzÏêøÕ'àwGí%om"ü?òV×pÉ/K‘îÚõ­ƒÏñ†?þ÷æïfÐL>´S€ªnc0\Õ}®½µ»»š%uôí“ÃFË 5Bp¿Ø^]ÕNàÀ?‚œ@Î X´Ý^¦š¿k~ÃÀ펺ˆ­în_)‡–DJˆ”FA…@)]%ûúúêJ/–n¬À Ó)Ò~:…?Bž“•Ï\ 6ÂîßH.ø@œÐ86öŽsåIà?`¿!¸÷°`à?(§-³í/ æÙ_QÍô1[Heà] –jþ^`e¾/îU ‰?p¯Ö‰ hÞg’Š,¯"IVŽæ W|ºDµerTw['N¬¹·=÷œÛÚòæ„•(Cxë‰Ã—ANžôsÿŸŠ foœôûל°)úëPÌåõ™η-½{bý¹={tUE´Ÿ7ƒé¿šUCͦ˜š•ÁÔ¶É»`2a³íÔý¡æmËQS³‘ö‹9?1‚åT"³Å|?±¥#Æ»}æ–Ž¤Ã„rÿ×üH÷[6\à£E@Ž©>˜Í G 6ý¹Òw\p@ààž;þñQú³ë×ÿg”|>H8}&Íù¿GÓAIÁ Fõ÷™´ÆE¿såxoPþ;ãkããÇ èÇ= †íãœÀ·â×Ú*úûZ…?À¾ê}`­ûªº.,Ò[„= ü†mÃÃÐÖ1¨³Eúê  «è÷—ÖQå 8Ô•² pŸXø_Š]À¾}¥u}K7Ö@0ækb *Ïg…`¾Ð ¨bå?¦þ¢!ÀË€Ø j„eí“ ÀïÀ?·°€gV¾Ãø/\ÿæ; >K·åÐ<~9Y íE'»1 ñÊæ:Ä_’Üw:ŒùÈÿýÀêvºO V×éÌÝ «2n«íARŒ®èuݹÖ8qô¹ŸüÕÖ=xÖkî{ö¼»µsê~ÿÙÍ›ÏnöC½uòìŸm>{có쥭ã+îX¨ùǦtþÛ´ U~óÙÿ¼UÇö€Þ¿SS(óMfVú…¼ŠïŸmTüocÀ7±¹ÿO0¼þš ,`!ãXè×äh"U£°°Ìf¾óÄÿ À¬L,£‚^v\NáéJÞÁ¦~‰WNçi•¾&€€`˜CâI~N`#3áÄ6nwïFô‡y€U0nE€êÿÊÄÀh»½¢ž9•þ PÕQÙÝï¿ráƒý +XüwŽ¿ÞùG @zv‹ÅXægñ¿eÐ^^¼›Pýg»üˆ÷ãáûÏÊp öðþ`oX„`hσÿ)à°ö—·ÑåôÔí9"3ç[~ñC|´œ?¿³É>sž½ÿ†ÅXf˜»Ýp»ÁB`ÿQO>›Ü¹SÒõÖ!ø}@宇S€‚  šGÿ­U“Æ@¤@(`L&y%p¸ûœ¸Ýý=ØÍ^B  +T}‹€¿z²« X ¨®¾… @ªÿ‡‰ ·ò—Ôµ£€ÔúHW Á~Q€ºö:äØŒ!@a €½ÚKúêº6ظÇF€"û—:Y0{ïÙ‚ `¡ Ü„ +pÀ0ä‘ÀÐÀß¼Nsà‰ Àï4¯t®Œ3ú7‚,!€›üÿÁMiþd‹Šzé׿g+Ç`Lï‡6wr·f½ÑùåžÆŠØÿ“¨êÇô—*@ÈÅ©Æ#ÉÅÂ.U×tBðÚ͸vÖ¸Ý4®»ŸûÉ ·sœÊû£‡òæ¥K—àÿ3{öäÚÙYãrò,üšÛšlþ±Ù] ,7¹j²Vi½q`Ïw@ʺƒ.Ÿ¹V?©ã³éobæÐRbR}áþ»ÍŒ«Jt!–ÀìßœÔòí®?Ä¢ ÞLÆ“‰%Ióýó€_\1/;¿4‚þpçåDÂpÈ'—Ñ H*À|úª<úÿØp q‚ÿecöm1øºÙŸ•`™s&ìí¥jŸ»þš"DèïI@’ÿ+QÍà +¸^¹ÂCƒ +W2—SPHÔ¼aY?ºçÍ={Ž6:™%@º¨Ùj=±¾Þ¹yýäÉÍTòÏú a®gožô¯[£Q%Ör¤5Wxg*\«f­îÆuâR°_“4Ÿ×Ôlʼ5?0+M°E>ìý äܜȘBlS´ ž÷¢Eœh€w!‘P£^¯#ñ(â‡Ï qÿÃ!@ÜXþƒž>ÎC;¼òŸ@gÿŒøåÙ>Kÿ-¿›ýÄ/ˆèŸ¼ã§2œutã¥þþ´–?“Ïs/@"ÄW”¼èµf%4ˆ¼Ó+)Ú;ãÔA›¿— ûû¯€úýÛ +,ö>íGX€óx€ÐŸ^^ªÃÙ›1Í5*Q¦#ñ„±ȇÉäM*И½aoØ7¢ô‡a“àPV5eG¬„ø@R•³ô#à9”LîôȺ¦ŒÐk]Uj[<‡kOÉA+¾;wJf +€ëXäEÀÏ´ÜÅ^À•Nɽ!ÂpŸhÿ ZyœaÔü°Ö÷ªËÕôÌy€úíèŒb  ž5lˆ:a ì€ €ð¿ÂØïg=îÚná–@9‹éþ?/ƒÍoqyÙnìb÷¸Šþ½ðôå­@L8ùë,(7¬-˜ûOOM‰Úÿ½©‡Q’驆Bà‡tüâ?„¶ àìKÁ¨Ø‰}Î~»anލÃÜë¯çz?~B~÷øÍ;w~𣷎¼õ£ ¿aû½~t¥`O‰ ¸ùW±%÷“< ˜7º»P *ŒΉp ñM¸Á7u?¤èLVÕÕUa 'Œêüßxã Û0X컈Eºe³ÕµCÿßõ[_×]¾Þ× º!※Œ1@u_u_é­DÙßiœCšDš…p€Ñýa Øüg?@1  ;Ø&`¬ñtã8Ýð[€^‘Êûü €ÆÓïÀx~ gpW¦â_¤*΋¶Šá«Ü9„ ÁPцÿΡ±!mì""Ðø¥žÄñ3·sÍïÖåSÉeB·Š‚?àtJ²Ò£ä<.¶ñkÎJwL¦êßmÝúüž¬ožÀ”à9Ùí>ü&!º}óYôÿgÏž=)~{càææ=J̼°jÍ©a—G­‰f\™ÖQÚº“)EÒ÷¿ëÑôh’"¢ ÷üøQ—?ôÀd4þ‰d¢ž¨×”òÒ!?Ûý±p!a6ìŒíóß@öw¹`ùkFã_lb’¾Œì^îòÙÓèÿsqÀø–ø2Ëüáþëݦðý{ÉðÎçû_:ƒ³þ|^“²6þÒi€~0 'ÿ^ÿIY)?G€à_ÔÃ÷ÿí>>ÿíþÕûƤüÞý‡µq扬8×èÀ0€X€$«àŽhÒ!ïrb›ÁbDÌñX*MËžLÌs䔑¤+ìËki%§ÐYò=S«æ2¥ZTY®õÀ$@²ZGvº\Ñœ¬´&á¹ +žàv_‡q Àg9¹6Tÿ  {~úlÈŽþ@øß¹÷ø:+Vý×<¨}µÉäœáú{…}tûö +ȹPÔ„ô¯ TJOW° Ѐ{ñ4·ù¹Ûoçø¿Aªó©êß]\L§Aû`Y1’ŠË ý‹-»ûyÀ|Y›‚ÎÀÞï@ÈCÆ‹AX85u»áöÔÜܵk¢ðíDÎï<¿,ÆÎ‰Eb ¡moÛ7‘ +ˆX`;rˆøVWŸ€O9êêÞ ðÖ[]%wÞø=×$î:Hàà·ÿC€IaT=Y0íªôÿ~TüÀ{q:÷0.¨ûÜ-ºZM·'«ÚouÃ*>÷½q¹zŠl´.V·¾ñÆðâ"‘€7¨úoGàVän_$Bà))±U×Ùºl,ýë+黈a>JîŠ@aÐeû¯¶·K7hÀ‚tÑhà4`Bô³•1ðПnž‘EEô€6,¤ÿÑÿó þÿV€]·ŠÀ;ÐŽn­ÿùùCD8Z¹ˆ›+óCÜOÁKÚIü‹E€¼¨°`¡[Óùåð^·5и†¸8]–'$øÂ¯æ&L·Y–Ì)ÝY¹b¬ŸÛ +à¿Â(๬Ïé[râDçúÉ?[Ÿ½4{Ò?;;Ë ˜l¾ù¬G÷.õèŽmæL&–Q<1sؼ¿¨q­Òét¤|VÉ*?“M›4Ÿ‘¥s³¡ù'ZÐ/+Øô7ñ +à¶m0 ™£žX,5™–3ÆspµŒ_æÁÀCÿ2Uü¿4"õ——èØLÇðúåŠ_|$ÏAÎ@ÀP/&”¿³,6ÿóyaù»…àÿB¿Xþ£ãL0È.€JúŒ’Og­Á`/–ý‰Xƒ,ÐCé)‰Àu ú?ŸßGöÞ}cÀi¼•œŽ‹iJr]®a +à`1 ×&}î൉¥T÷›cYÊf &]òÄtRM'}a“)ªiÉ££QEs½»Ó dÍ)=#99¨Kî‘z—¦É2œ‚¥ë<8Ãxü³ +ȨoE’±PéHò àd@¼ç±uî¹ +@×3?'Ü|¦i»M·ooªßŽmºzlÎÁÐÞ0Å¡À×S„Ø1°ˆÐ_øÿÿ9[þ²‰~Æš ˆúÛMà?¸›(@qy9!|*óAúatE@6þÿÙ{ÿ ¶ï3[XÐŽ…3Â[|MY$}GE2Æ#ÀüúJÄ(±Ì+ aáJZ¤4P„ÀƒlMExwj;Ø/?’›¼ÓYHL­ƒíéÔl{vÒNfÇÉìtgYÒfærí\ˆoÿpÞfµ›û>çù|…ݽk›&Nïå+øJl@Îyžç<çd¦Ñ?ügr¡ZI:Û~&ùïÏü½âü“pRhÀç¹P +ð<ö +àbÀéE¡ZCM±®hB7\ ‰—÷Ÿ[Ø&ÿÙA¥ôí……Ÿ½³ãvøßÀÑù™à ç•ÿîÿ›†ÈlæóFÀ« 3ü†ølŸa[ ô +Å?$&Àž{Û»ßîf1 ³€¶¬……m…5ÄjN)DÀ‘…m;Oœ@PP•ÿ…B˜èœ¨:òß±¸¥€hü‹0@zÿfÏÇZ’¦K€éE Eñ<Æj4ÕWwá‚K€Û"ÀÿýëFÂÜypáÂ$€Tú·ká®ß1(+§Ž‰pÈ)øÞäLaÃÁuâ +$­å)ŠÐ[ŽSI/¹ð£ÑZ± + ]ך±¦Ê˜ük{`WÒZžp>¼ÿ;ÊË/)нzÙZR>8x<)¿;–:>†×p*Qø} ³õTØ£6¦‡ÓU*g¸õPàøK—]9Ær¿3p¨µÞnm §ûlAXŒ8 ðÓÖÖŸ²ðÿ—Žèô¼ +BÀCÎy*h90à˜ŸŸ7Ø9-þ ó–º•NAQñsú_P ûƒ†[‰Þ?¯ˆ±¿š½þè.øž~ÁP¤#"@¾ó¶AÄÿ€„€òŠÕ?ÏÞ6pýOñÄNƒÈ•ú}0ü‰E"ÞÉID%¿wÒM¥¿· 5ÿäôˆÔãžÿg[ëÅÞûTàs¢QxÍQÀ]úiDOa`ïït‚Îúyì>œÎyƒ“£Ãéa:«Ô6OÈ)SqÔ[œ±ž¹Ç1éñ;->_^(z!=\äë=ìó•Ž4æÛ¨ò§Ÿ¯ææzë‰Lþc)Ôê¾ë–à øp`ñ?þ©N¿ùÌrŒ0<ØÚk9ŠàÉ´ +@Ë+<þg @^^oQ±]Šha€ a§æ ®5É¢#P«ÓÕrÚ^„?ðAÝsœþ“,X@íAøÿľÀŒ°p&á_SIo±^°’õ ¦Ñ…—9Š¿Í£ú Ì|ˆ’ðàWçKË~]Á€²û-|íÙÙp,†ÕÕˆtÄÎ?5-}¶Mþ³£¦Æt{Ç;ï¼³söKNÀo‰ä¾Jˆ.ÿB×?¤ìù=Èž¯6ˆ€Ø ˜iHŒô3pRÞjëÖW™è?²›LC¿A$}vvöÆínè ÛPúc °p¶­ð“¶¶B{wÛ÷O¤ìÌ"˜ßYs䓬Â#0<±³ €Dà½/«[[ùÖâÜèS”€lC?¥t6}óýI +*¤$³ 3½mØ  RîaÐÝW @Ißßþù‚/U;~¬²Jž¯ˆ! „ÿ-ã}I-0LDwµt•üQ €ÏÐþãåIëAÑ¿bF4캇7Á£tvéŠØ€\o‹Få²w©ø¯85XbMÚ“T~yð#º5X¢½¶z•?Q€8€±±øðø¸Ë•Ú5<Ü5XbtûœIÛ£V¡Líõ\¾|Íeì=t¥5<âǪ¿*ÓµÚW0ߊ7ÁÿUΊ9G@hÿóûüªðý¶€ßVÃà‹áZ•áÿ-õêNÃÿº_ü_^LJ±ó/<~D̰ûA¥/óžçí4DÒ_ÇÝ1^ýò¶Âbͧ#­1(€ëñx±ü‹h'%zù7Iñ6- H“MýþM°º1ú¿÷áÿᪿ±y°‚ãP Z€f¿Áà4Ì óÈr:ý#Ä‚g0ì É=t[ÅÀüH(¬j&zb“'뾇ßé·,±^bé°8ù3•ýFOÉÓQ¯V²®#`+À&):©}D ~äñ­ÄÍ€‘ˆ-€„€_žT ?/,,Š0O‡×Þ¢l]†Ž­²9€3v5Åg8 x" »6;YÇ[ +ðk¾A@ò’¹ýßž ¯ÎL>x0í`Oÿ¢ÒO®Lk/î§µW€/@2öc@,`3 ¹=Sˆþ û;+T€ÿs“œYV–οõÖÅŠŠ‹LÞ*àYFi¶Nl/Üߨ>3Q$€®èõÆ;n€ÿôX¬±¿½°@ {vöËÿ1ßì|¯í~ D€ úÍ`€†û; 3¼ ŸBÕ?#ä3,h<̓n^%ÐòÙÛ +aÜ=›òôì,¡a[waÖoÐã/Ìj3}Bh_˜¥GVp[ÖS² +±Ø–’räD[Š |SªNüíVÝ9—†9@I—b@355î: \b7@–ý%‰ë„`3@‰ +ºPwÁ¸vo[ð¿ x€uà¨ÿYÐ×W~aJ…øJ4R’ŽébelZúâI] ~,Ðà”Ôǽš?â‹À.6Q÷Kæ½ÑA««0–á÷JøÊ¨ê\÷Ø{‰ hµ/UThãqwyEùŠu|õò 5^278ÖEèG `Žk,Îa€.×Gt5wa•ÇêŽÖÛdÛ©¨Í¼¯,9åkíõ“N*õ¿à¾C_¨,##­?EØo+;ÿ«Û-aû× ø/Âý¿5]íô‡nЫ¸áŸ ˜ú‹€ MZŠ]§Šíþ[ó'QöǰÎoP¤~±fL÷yÔ¯ˆüù¶,{c»”(ÛýSµï•úÐàYþ#‘ˆg© ©éß$.Ðä†ú¿‰pëkŸå|¶vïK8êˆeøÏsÖrî®ÝeÉF‡Íò#3pÄï÷Cæ¼EA@vZàö3©m 6F£Qßo ùÔó¡žß1ß«òÙl¾@o fn&Ê`)(ðeø,6ÇÈ^ú{×= @úâ×½Ñuë]dh%þòÖØ‚à³M@IÚš#=/Jl<Ñ4Ñp`ÀýìÿQùß[¤Ë€ˆ.ƒmul©C¥¿æ,°tB˜ìŸÍ®ÕdŸMæ@ìèĉîx®]óëþ¿ÉãÿvœœÉÞ™™5Óý+¡ú¯LËÄk¦¯É,`a‡Ð+Ï‹ÿ€ÿöûàÉ~Ë<ø¢>­¨ø0* +ðViéù"‘`ÄBÀâå3•? @0€¢‰¢×ÿÜ''mmö;ÿw<ýåGb +€À÷Rì¹3 +ÒóRŸiHÙü«Ú hЋš†­fD`P>nûÛ3›Ûv=ÿ' ¢êߴؽcvqö6Œì…¶eÕØ…ó¿½€š¶,ø·9ÁNAØ<ÒVø@(qÓ‰ª#ßßèƒ è  ÐÅØ>–sRlù ÀŸJÌxöÏmÿ¤$ª_A 8-ˆÛ6@ÿÿÿU ^Ëé‡ê{ÉxáÂ…>í…¾Ž>zÁäŸ×ÿ9Oéä1V°Áܺú`T¤׉%úuµ”Ôuý€þ»Fhù­¼úg¶óµŒæ½6¢°€œÀ[¶íõãýƒ%qXþXï‰Xãc«—Ë/w]»< üÿhl|8̇ßw¹\q÷š[Õ%D”=6dõD“<_qÜw(Ý‘/Mª¿h ô"åqÀé_:aººõ§­ª[êÖp'fÛö¬Ö? 1 Ї<@@ÿ­˜Aˆoq_m½nIx± €ót¯ólH>J¢[¡˜,:üÿU¨üškþ»°ßϪ?û »NDÙ“=Zëä(ÏþÑ&G‰ ѧ‰(D€„t““›÷Œ F´xÖÖ>ëïÿìK?_6B`tS¥n …ê þzÈï'þ3²ÝúeÐÙ¡O5G%mÄïóÕÛœTë×c7 ðù}_oïá9Rïo)8Üë;lñ—Y¦mùíú´Œ5@ÿèú$1³Ä ¢Qà¿ÕÝÿ¥ =Ós6@ÒÖ¶n/VП8rÿ“Xa¿‡€íâÞ2öØŸ‘WJof‹Ž$üÇÖ?²ôtTùŸ).>«ÉÎ>›­ÑÕfë~UK‡ÖÿºZÜÖ¡àÏø¶(ûÛÛŸkgÀA‚}^@k_“V ÿß4¦ñÖŸFDhðNýspr;¯"(8ü +þW3ü°|æã‹'~uþüùRîT\<Î-€2L2 ä@\ øÑÏ#Úè|QÑë¯Lÿy/>‚Ü´ÏÞÞ±ðÎ;;Þ|û+}bG‘ Äë€Jë |úãLþ!xuF/t€vÑÐÏ“à™ûP +ÖÅLÀ.L!4Ù ‡ì‹³o^ºñf÷l·ÝÞf¯)l³·-Öü¦f±¦ûHÖ''RŽtפÔì ̯I)d!àôR6CO!¨¹ºÅ@WôåBeÆ­æ>1˜Jþâó ÕÜ(ùÀ}ŸnMHŸ·åïù½M üc `‰•@_ÇÔßþóû„ìLàØqKâ˜å–ºcu-SPÿoÔ­ŠŸK]—ðkbà‡ÿÂÈMÀßèG*ìú »Äm%'@^ ÇJ¸Ö5X¢Øû3&ߣ´Z+öX]««+¹¼úQWêG©ðÿIÀ®1:#xlÜEŸC¾bð ܾÌ?)5i+®íyþÝçß=R;=“ÖC*ßÈ/ò_|Ñziþ‚—üââ¿5=¨:¤«ÿêtÑëomýþV%í`ÿÄ|ï-Dùý³Ú0)ÿ±ÓÀ¿0ùQ«o +½]†:£°—;"°ÿÁ¾PôøÅPv¿Þ‹ ñãKóiaþkhAóG?*G¼±ÓÞ&oDŽÐ‹Ôä^r»š–´“Ú¥¥Îÿ–³Ö/M.  ¤ê}•T]1 €£ÀZ¿5Úažfs 4~hé‘P©Ô§ OÀ,E=¿eÄo „{õ~ß¼/Ì]øùFü¡zÅg¡·CôÕ׵Þiǹiüئ=’vzˆ }-t7=ÔÁß2oyì“}MqÈÙj«ƒ‰ÀÍ¥'BúµQÔÿee¯ i~>¯(£(9€y½„úy:Bxa¨[¬C xÝtÈÿ08›­;Kï? ÀÙݵÝîZ3ØèÛXø6†àX@ -“ €ˆÀ®âøÀ ÌpA¡þKf+ º¤iD, R4¸ðñŒ&`üü¯+*@Êž§úŸ é;+ []øë'ŠþÏç½Þ¸þg.xèže ÀŽ7¿ZVÒ³Tÿc!ƒÿ†„ð«zE hJ4¸èŸy•÷D#`FÐ?Îây˜A `§ÿŒPÿµÙ³ï½yãí,xØ»ÛÄQɈ®:‘Õͳî¶)m¼€=€¶B6<ˆ:²ªR0ع…︅§ÿuØù¯Žch¦Žu­Lj¹?ýŸJ$´°î f?[N«7B¸ÿÊDA#ƒqÉhå@½Luä·L‰ âÇ*„³$'+@Á’úXøß2¼Q’ÄÜ, Mš.öìÚú`ƒãî¢Äß­Óõò©èt#ÿ1úGY(¡%Õj=_yÁå{@´/ ZëRãñºø8ñ€ÕÔøøØ|ä¦K|<õ[©«IO½M®·I’ì— ò÷ì9p ¢Âá•|ê`@MXO¨„€¿Ÿ¶²þÿ‹ÖôÀ¼ðùK¿rª¿ÖVx¹rÅ«@¸Ín?ÿ2üKÈæ&Œþ ° +2È“Zt¬ý Bü}'A¸!dÆ€Ÿ£fTý»`øÇ6Á] +@ȯ$£Íÿ䟔î?Ozb²WŠÄ"Þ›&‰D"Þ&£[j‚ì©©`€ß½vom@úG7´÷>ûªŽú + øÜ«ï0ø›Íù¡z§­"?a§m$ß3öËÙsŸÅà LÏÓÃìô«ˆø +Þ-óùüÇ}>[Ï©(æþf[Ù^31>÷ú´Ç»>9•Œð.š$ü'^cüÿÖ°üëãªù{‰€´e#ýÃ{Vã ÷¬ÚSù¶sþ2K'å•åeé”á?Ðmt¼"@W|¶xâ,$šba³C˜ŸÁe¿òÚ +Lèÿ\ò7ŸË~ó¬2Ðd¶ä6?j _‰‚¾»™ü>á$^Qüc2P½¹  >8³|f[ý¿*-}«ìxÅ\ŧ¿>Î*À·˜ÐL ÆPSÌáËTWþ¨ò‡g–ÑÔxá…WzÖ?ÜØ&#vhÞþŠ¿˜ûžÝ÷½£Ï>»m|ÖôÙ³K€öª?\P0ò·Ï àLCÂ`&…éƒ Kzû«g}Ì#â[æG#Î[³³7 ýÿH£,û,Ïø–S’v]òäïõ5z<ë’ÖC?+oÔc–ð)¤(¾'·Ûýæ…ÏùØïÿpu«K °‘“Ó¿ñ$Ú×Fm´#ß¶øoÙóª™ØK§ì à2tô<@Õ?¡É>ËõLkÉ:®Mmính¸ @<à¹Úäo?WûíÚäçĆ &-™7!Æ¿Üìçœÿ4™ÓØ +ù½ˆÊäYÀfª Ü€5gT‹+ªë?þ[€¥o½uñTTTäÿõóÜ€`©ð1Ʊ\œ}¦º²ò‡?ªÎ,.*:¿ÿÞiퟹàQ û5,¼ùU'÷ýöÙbl Ü0“ûÉ÷yô%Öñ™ôU&¥ÀíýWÙ +xˆ'Š7ì‰Ìþ;>fhÈ®¯Ò›Þ@݃¶¶Ù×fŸÞ1½cÇŽK—fÑh³ÛkjjÚì5tÉÒÛímYÝv“©p‘¿;«Ð^X“‹€Â”5mˆøŸ’Bw¦üí‘-2Hýú8™[fØO?6Î#…ôaÔUu¥ Àtà¾9uÀÿm àˆ`!„ dÉzU€˜²tLµôñöN¢@‹«° +–Ì9%܉Kë]?B€úÿ®B¬àÒ)töÍfóéi›Ù»Ž«ÛjŽYä(Âë茵åÚº¸upîÀµËcqW<¾z™hÀ0ÕþüÃÃcc$º:æ‚0ny%³3 k'ÝŽ=«%q—Q;é‘ý¶+éœôÅ?UF<êCTðÿ´uþ÷þ‘ªÿpòïôöÏÏ;Al¡û¾ÁAÔÿ1`>/üwŠ Î @Û ìü ÁÄ•24‡B²,€ÁÄû o‡`}°^ ü¥/7ÿÑò?Í7#˜öG<^¯wi`©©ÉÝ$ýÂ'''=“ýkpÿíßq¸OöéÿÙZ?,œš¢ÓTç×Ï;Î@pþ_‚ÏÈ¿\ïtʶË áØtĶ׆ֿ³~$ç³…ˆ8}¶ˆ'"[²ÍQàë D%úéNû}ó²yÚ;-Ÿóx=°–¬Ö&úö¬l<”ø;¸§Øæ¥?’äàW´Ö$1°”Y $°Ô§sFÆî<]o»ds ;{¢X§+Ö¡ögÀSu$'3üìÿ +Àµ‚´×~;ù›"'ø9æíÉ:¨yBEðAøÄ¿ÿ>&™¢ôo‡6€çÄ +ðÏlWB5š-„ðÌ2ð_'Â+òçò+./cPPz¾4ã|zìýÓñAu5ü—uy/ìß߸.­m€‡‹‹³DÞÜñöWý›¾†X€\bG Ä¿÷ýïÌ4°‚OO0>„¼Ÿ!¢ìð*KPÝÏ4ˆ…Àv`vð¶bdÒÛE<®é¿¸=ûtãÂô¹ÆéK;nC@poO¼,šè³eµÕègÚjì˜ ´¥Ô´µ™\X˜u¤Æ„`€,àðà”ÿžµsK KLÖòq*0ôè]Xì– ôS¬OY-ǰ + \§x ÐuoÛàÁZ|°9Œþ/Ôý 6ÙGgþTñw Àay³ñ‚ @ËøFɨúº7 6Øâñ¹›íå¬Ò Žs,ÿ#2`­ó9Û´¿;*ïÍóù×µƒnk~…5nœ+,1ׯÕúëPüÓe ÿÔ±1L†Ç˜¤BHCšôû§çêCj­Ñ=w`5îºkœ$ÀrRÅÿÅ!•JÉûóWø• ?þηR©ÓÑ ü²BÔÎy‚nÖÿß²ÅÔÿ‹Õ­êg*p+¦þØúGrn'úhøG½1âä›ÑÞ…š!þ'ì—忨i¶ýßdøWt¡êõ3òí½ÌÐ#žHì´Ü‘{<žIÉëŒ"ˆ9¿0&^0Ðß$5!kccãÉÓß úÝQxæçW8ü#6›A}ÈIo‡Ua¿þ…@ Ù¡eù:¨îwøÂ°cŒx<1§Ïg“D 1ˆX|ν6¸4:ȲM›%à¿-ãÀCä ¿÷åù?žà–¬[$À“an¬Øe–²2 oäé2J322Jóè*¯¨k,d ÖçŠy÷™¿0¨Õé2tµÉgk38hwm;n%'»ö¹öo PR°Õ—F7ç3EÛ?±¸Í”û¹5@ïÁ+'±*0íL;€á„ÀÿdÀ¿šàŸ^x [D*~ý|4¥»ÏÓ÷ÓÂâÐ,/£ ).*}½~zýÏ| ð‘"@SÕ…wvìxó üBb à{¹úŸ|G¨E&p#Fóª¡<D80ügÄZS·1àQöCh`ÀnºqcÇú; çžZ@€ +}*ýM8ìöš6½¾¦»0«fÆÔÖVScjëNt°-i…'NØE à„ÈûÆ×ÔþúlmÍmÕj ¥µ§æ[ðÐ_ƒ6§ºUtÖ[|õrÄfANR8/öÕ;ü6KÀ7â‰z"¹ÞRokô×û|=ÓQºr@›Çã1;,G¾íÄX`ôx=±šµ‡í/ôfö=N¶  9.«ôGàÿšÐ<€@G¾ào)Û_J°¯B€ŒTcj0!0Xßp›à¿ª­íD!ñ} +‚Ú²ŽÔÔ*C€NÊʺš²E0UÒ""è§Z”@ ¯ +€Ü:Öð–:§ˆP% °áö%kÛ>€ ¸ï|/Ñ/<°²Àß°Ø^€SSJÀTÂ_YDð¢«¯Ž­€»¦ˆúhlñO"¬å•Â_˧A+A»qpݪ]Á^@c#î7º£N³V«õäËùÇ+K´ÈñA` +ÿ±Ëq:ÆÆ†é&›ÿ #ˆ.°ƒ-Ð]£ÛhUùòkó½x÷ÚkD/T­*gð„ü´ªò[¿Þ¿° +p*ð!>qëÿJÝ™®8ƒØý¿€g”¬Åû'ý£æÆ~§úAvü9¿?†:¢^ý1ô7ìê ɶÑïõ‡¨ªÇ" 1PLþó+>t—¡Å~Œ^G#²ìõÆNNèk½Q¯ì‰z=¸éL6-IhH¼Ðàžœ¤Úyri€å5¥ð5=™>[0Þ¥‹Q:evÌ;jµÓï¼¥¿ +9ü#ÛˆsoÈo¡j?˜o´ù_D;)ËÓ¡z§ßïËóû lÓ,ø +ü²Ç#—Õ[ül°ØÌÑITì^­–ƒ‹VD.õ=îé®d¥?‚(qÀO¦àÖzçÌ6G=êKÊLÎÏgБ¡ã=ºdÎýÚÂÐì³l¬C…5ö’uÉÙºÚZ Ì€¿‰ ~ísµTüoډȠöƒQâcã?­Ø^?øt•TïTt•î pDàÁLl$·ŸÑˆmMBP-FËD&~®;/:shüš[œÏ€àEúÚ'^ä@¦æƒåêý°zÀ#ý¹KEªL7¦w\º”ò$>Íï ü÷}oß³'ì¿Í¹3);íR¦!}"$pFÉj˜©bèoZ@ý'tkÆÞ€©A[ìÐØw<}neepåÎúôÂk‹p^ùÁú*»]_Õ á`wCnw›©ÆTcOɪ1U5˜²R +ÛÚjR²ô›2€””¬ŸH¹Jàñ{JâoôüŠùÿ±¤œc —Ÿ)¥ÀÀ”„²š€$œáYÓ2ü7.¹xoûü«xïžÀöä(ã… f@8ÀT_ø“ޱïÎ@{À]Ë0€)x *Ö5€- ܼáoµ®GW¬Z‰AŸŽSZë: +ë4wŒ¸–°æÈÏß“¤½¶§.ãå×°kuv?©u.Ìý‡þs Àðpjj|œî‹[­Ó*U¯ì ¨+ì÷X=p`/¬ø^£¢âÞçÄ`ºª @ªt•ŠÞú‚½¾PÆþa•:=èÜtû¥×g”›œt‹·üAb£·‚"Éÿê]†à31ññÄÄÏÏÿª´´ì"Áþ\Åñ²_—•r ´¨(×þ‹–‰|P]Yý£ê‰—ë§£ö€Gvª^[ØñôާŸÌßõgSÀ}¹ ¯Òeæ{¿ûþwì CU¨ÕíCø-€†ª!¡ý›áXÁèž·g~7“kš±ëcêÆ _´/\ºsj-€é…ÙÅ!ÓbÍ"¿cˆ›¹)¹¬h8ú†©cÂîB½©ÊdÏʪ©©É:a2]…)«®¦œ(Ì*DHàc[ÿÚ’hò—ðF{ÿ»Žc2°iÔ—°:Ö"vÖ¦X߀¾¾ È^»·±-¼ß¸'²€9(GŒŒ%Jè¥ïÂqFa¤8¥p0^­ì!ÌuœìÚh?X±5]¶8è¿ËÀt¬ÀôR+ÝŠ®{µF£[ý¯Õ(™=ZV”ÄK´s{®•Ï%•[ãq«Ë•3üÑG]î8¼\ño»†‡y€(@<õ£±a¤Æ­²Ê‰J“–€l–¬ù{®­®¾Tð®Ógq®¤|!¿Ï9¯nýâÿnMO¿¿(rùæ¡Ö`- jU§Ï«U·ÔJîÝ3­°þS ÔÁëâ^ÎóeÛßNk°’#rl—¢ìçñ?ß<Úáí8-¬~¸î7¼K¸ýñ]2|,†Œ?¹‡à_ŽÅzF#£ ‘ˆ§Ã‰jqÃ;©õN"2gÀÝ4ЄFÄnÄÜýniM¬À}Ïý ž"ÝÅS«-wÌ#08âðË!Vé{uò;1j |íè Îúy‹ÏI´  >"ÛÊü²,ïµø,õ#›Ç&{Fœ~‡Íl¶™›Ðµ‡!ÐÃ-Œ2|[ép8´ÛºE a¼iøU€[{ + +€½X€ ¯t7RKwëJ v÷ê2ò22j“ÑÿÏðÏEý¯11²³³©üç}@¨øÛ“k¿©ƒ@m-l}Ù&gÉ0÷¾¿.ìÿŸ†7+߯dدúzÿû™ÕiœŒ<Á4¨Ï´ `ûý-€j¡œøøã Ýywòçòç.^„°¬´ŒóJ‹„cB\-P]ýÁ2€u÷gÛàá àµ= ;n<©?îÏB€Wªãî›ýý÷73ÄðoRâѨj7ØÅÞÔ€¯ê•À™\ûÛ8ëgL3YvûLÃÐÐ&ûâÂÓë§VÊ?½sgaáÆíEû" ‚‰PTqbðÑ™SƒýDÖLîLÞd×vgÙM„ý…)Ymmج),d€-€#YW‘%|äÄ:-,t€0SSÇä; €G¤ +iZßf8€°àí4úÇ8 g»ð)€èÜ#€{`Æ }`œÜ×7UÒ×K`vR˜ö¿SBû7Õk&3¸rêV™g)5½‹@±ÿG/ƒVëºV»¢åÄùSѨ5:=b™æe¯K0»­Z³5N__ù=僃Ï¿T^B˜Ÿ3¾z9u55u,îëDÆ].Tÿ©|ïØx|P²X&Ýn)êwš›ŒÖ¹k×V»öŒ9Õ*•Z8~Ü‚úÿPk8]­$(uâP[F~éÄ> áôÂ?xKhþY€ìþû_ˆÜê¼®6Ø73È¶ŽŽ|9˜XýƒìÒ~BÇ]„ææŽoöAÛìbôz íeôÿO7ÇNŸ¦;d™ê~*ù“Ôã¡Y+y<^‚Hg’ªä7¯°PZ²JÄxûeãæ×Ê~!$Á.~^’£u°Þï|áTTvZü{m§ÊYïôùêc¡žÉ5„}{ë}ÎÇã‘Íži›_Žzd‡ÏâóïuHžúzç|£,ŸË@@ Š0£‡v|ŸÜ£{«K +Ht¾XÓjÍæ‹Ž½eÆÿ¼<¤•f”êXXº»4cw©.C—QTTT ßôÿ9ˆÅÙè ¨­Õi¸âÏ`ÿ  g“5µíµšö³Š +º–TcÛp_Y‰9Àû•ï³!@5ÝIU¦¸ñ¦@;Sæï5J`9q^þx™ @€²Š9:¿.++}žÞ,-ØŸ§£/†yðœ2Ï|@à©éÉïm€‡>;íö×v¼·cáÉ}.0€},üí¾7w~Çø°óå%€Ä€ÇBê§oÀ +"‚ì¹D†²fXhŸy»HA•ÞÞ6„~÷Â¥;+++ç¦Ï5.ÜxúµÅÙîîY»^/v L¹³…¹¦™†¶š¶Ó'Dªì5…5|deÕ´µa ÐV(Z)YWé…ˆÁ‘­€¾1tæÂÐCe¾ëØ1Åø¿eÓ8‰sê’x‚(`ë@Äàvàææ +ÀƆbØ€#VJ¸ PRÒW‚LÀ¾>%pYЯ>¥Õ_ ` |ÿÐHÂúvq ÐÖ¶a' à}ep…%iõ§´Òú^Ùì¯j£Þ¨åœ ‰(€ã¸dtÝ-)ß37XR2X^žtÿË«ÃñqqP­?6æNå,Àø^—k|8î¶9=’4=ßã ÷¸ÝÚ¤«u—÷XÂjHÿµÏfžWq±€€£~8 ÿ‡ZÕTºÞb&À.€AÖýµŠÊ_tDýt\º¥?Ì1ü‡$P–$s~‡7Æ‚¨þ›C![H57+…?áÿ¨y”7ýXú‡ýÿby -Õ÷b€îŽõÀ8J,@À?I`Ië‰x¥Io“›~„Tñ ¸û–pGSӤ䖖Öa>_ë³ +ë¤w­æSÚAmÔþ+ä#t†c’ÇpŽ8-yWÀIT B€o³ºµNµO¶5ÆÌR4*Oö˲gÝcóù,~‡'x!´·'?b¶Mzlf( n„à¡€ß/wJ¬[ìl¬ÝŸ|eàÞô(³ä!ÊÂÿŒŒÝt…Ûtä%gdgQ­?A€ªèÚlHÆÑ€d0Ôþ·C P+rÚ“k5Ég©î?K/,Èf™ŠÈ/ 0_Í À\þÓïªäh€JtÿñAšvìÀXsa€̓q€Øü¸x¢è¼®´ô­ãçæòç*ÊÊØ ¸€x@i[a°ÌQF8///¿H@rßÜ&=ô3¹;žÐà +0ô“›·rÀ ð€*½)±`YA PêèSáßÐ%öÜ#Ý3pà}?SÛk;.­ó qÇÂÓ—^zmq1evˆþûŒ©…,ú_sÔÔ´™jÚ€x šÂ”Bf‚ÐõÕ¬¬Â#'RÈ(κ4%„– ý¤+þÊâ·„›±-À1±Ð×·¹°}–ÊK€ßŽÇãÄRÇ;,>[¨1Po¸ÒêŒF+®][½œtüÝ‘s6•jÄïóÃáVŽø=¤ +ðJ€ÂÏÉqß1#ÏÑêp@±:ÍÚȼÓRµÙ‡Œ ídDö¸Ý’ßç¤ï¦yÝ#÷LG£“ë²­¾Y®·Œø§=žP^³ÙC¤Æƒˆ@-;D›0xhàq3€›bzÚmµjïw­mv\_‰¬IÚSùùp&@Å2Êÿ^1úG {7Ö馮7[—YT\|¶Z££ê_¬ÕC Ž5~ÜÝMr{Zmm{;Uþg±  áβL ý¹î¯ÿLtÿ©øÏLSîàkî$B8 ˆ¨áœXÀ ¼%:/((-+ÛÏ{/ÀÓ°X€D`yù/_júÛàáïÊÍ=úô¹…7Ÿ0@8ÀÍ_èæ²—¯žÍ|†ôv{ÕfÀdÒ? )€i&—nݾþï3° 2éØá”ÛVc_´ë³ßÜ1}‡Àú¹sï\ÚñÝ¡¡Å¡îEýÐŒÈ Ì5Ý6ÕèRjjôopp°½¦»°¦ €¯² +‰$dˆ(¼Ê·÷½PÉ=è¶VŒ\\Þ+ù?8%fI°@&ð±Í4@À½í-ÀZ¢À{€9÷Ö00ÖAPÂ|«¯›"~Q<î¢ï/Œ.Ô@/ ô%쀶ÔølÍ}×xLàüëõïô),“iã%Ò´-5ËTFeÛºì0{ó+öTÌ•kç’Kçöh­®xjêØê*á}|Œíÿ]ÃÈNe€ñÕT8 kl¸<:B•§3`£’ÔðU¬v]^=^v|´É1‡ÂAõ‡˜$ܾàÜŸÍët¸ð;žA |Ë2ˆÅ¿gEà? ü¿Ž~ÿ°Ø©¾ûánsߟ`Ï+Ãà¿19j¦ú?fØž¡9&w ÊWÊ¥¾Àÿ@ò4î‘G½Þ¨g´‡*åˆÇ+äKýKQ-áT¢{¤û©úw7Á+óèÿ¸—¤þ¦Iã½Dàë~öo䬭˜ÚÄÁ ¯”½²C&pw:lþ¿e>Q¿Õ-y,Tëל~‹Ï ¯kµÞKÀâ·8ëÍ“Q9ÏIg¯Çã5GÖµ<ÿÍ +ðaà±k" ˜ @¿k‹ßk­?Ñè7~%`sÇ9‡/ðK¥<È(ÍÛ]º;Cç*@.¯T—]L :¡™@г‹s€ääŒlÑ@ïëþµˆô©¥wÔjýÏb +pn~É(ä“Ó„P ~Z5Îø™™B +(úÌ Ò  l°°¬l¶>`üŸ˜@ è|iéÅ +tò/^|«¬$ l?»é^ã‚úVˆ½ürã¶ðQàèÑܧ.=uãÉ~¾g÷éõûö½±oß«z´÷MCC\ûcŸÈT•ˆJl* ¼ ¿m¢úÿÊþ³WÙ(kÈdï&ðö;ëçÖïܹӸ°°cáéï¾¶8ôZ÷ý\ALzÂýOÚ²ì¹&d˜ì55vѨA €Sb’uõjÛÕ”'·Ð%†ÐSS¸P§¬ˆê€å?nTÐ-äÙ´¤¡°mü‡#a°!ft…¼¸ã…ºD÷¿®Otø®TJŒa긯BïO†°¥¥ ÂL|øÔ–ð£Æ?î8Zû„ÿÆ»w­ÚF3”þØ'_)€»ì´–³m]òÛU:*:qkÅÜà êÆSSWÇÇSÇãhõ»†s\¤b¨@jêGX&°‘÷æÃ6Y5âpªž_íêZ=^‘/ãýaÅ÷_xü¥«6Kþ/Z[ `+¡‡ýœósËà7ˆÿNõ?«6ƒ×Õ×AÀ ûïD"P'þ^sÈ ØÆl°ÿÁ`Ý• ô£÷5‹ò?¶Iøn± ÿ=¬x¼ZÉ=éÁä?B¥²g²É¸Ö?0@LŠn 4-}H„Q:ýkŠ Î×ÿì'¬¼·Æãn«v¯ÓT‡õ6Õü~‹_¶9ýCÔM‡Öã ûdŸJÕN÷ÊѨ´N‚” ›wÝšo6Sé…7:ôtð˜£Ò#:‡?Æ H!@D\F×V ý:¬1è_2¿Ò&Àæü½Ž²½„”ËîR Ã?×ÿy»32D ##¹Xä裕Ž(` ñl ¼Ž Õ¿&9›ð?-n€ðýþ¯ý,¯"ÒOÓ~64ÍþJ ZõûD„ÿýJîÿú5Äè]<+8üG„q$ßGÿåj¦P|eöÍ¿0ÝØ¸°cÇ{ß}oqvqhH?naÏ…×@n®^_³hÊÕ3øÛÿq!ÐVC K jL5W ‘øXÐÅZÿ¤M¡_ÒÔɘýõ)@ üXPR€)Vpr=ϯ¡Xs‰8møß¸yß@ÉÄžx: °DI^fТ˜)NMMÝçb €®]9]'¡üŸüTÿ[Ýq7,€8í×hEv,¬Pº‘ückÔºK¬Ò^Y´™µÖí\y‰Ñh›+ŸKÚ3ˆåÿÔËãpþé?.á4†áÿåÔ1âVo\æñØœ²Ãòîµñ’ñ‡óóÙè$?Ôz%ðKb_ü技B¾à•uº:Ëù“ˆðÔZ£ŸÄÝÁèŠv0Ÿ1g8è÷;ÍŽP½?"¦='R÷úlžÀÁoÀçðD=ž¹ÙâóÛzœõ=²P’Äû¸òŒÚ:ˆ'>t  ÷Û½!7k€®­úuXÛ#€µ¯B8À ü PAiÃFÁ?·p' C× P\ÌIÅÙXêšlMvmvrqrr&„€¨þ¹\çm@.þ5ŸÌ$ ë•D*«¹ô§s%ðŸ‡(þ¹ñŸ2@¤ :³ºRÈÓðÿe² Fá›;€l´üñÇËÀÿŒóç Ð85WgƒÒR´,ØÌ+Ò½XÄ=€Ìe Q€¢¿,zùõÆ…õ·ÿêªÕ­vßÑ™¯ásþ GÂû™†ïÁÔö¼v LU"(p¨¡¡A¡&¦33;Ñ3€2ð¯AfvÞÖ·ÙM³·ß¼ùÙ;wNÝY™>·0íYøñwß»ñÚ{³‹‹3XhпAš…Ûô)ªèÂG ¬x +ÐVSˆÀýÀÕš*Ó‰”Ÿm•$6üƒä ÷Z6C€Ž±PR"€«VÛ.,n€|€¨@\C+ {\%¼Àð_Âóþ:Ñfáô?<š]xlûîûät &Œê@¸ºK>ï¿+rä”%ý“ÌëZ áV·Ö<êÏ,Ã'0 + $W'Ø¿k­ØsyP[1wå¸<>&šôWf€ØûGG€Û,¬Ë_Q©[@¥ûÞݳxþÝ@zXÕ·ªÒ#óê€ZMÏ'1HW$€êtt0¨÷;çy¨¯âœ¿V¬ˆºŸ=€ñ¯3`Áÿ-÷5„bë!Ôú†Û»Xèwš%þ²PÈþäªýæX¢ùÏ`”•€£ô®6û—#^¯ÇCÀËd iÀˆ”<:¯Ñ+ÝìçV?zæý“Ò•±÷ €¯ý`ãó5×]ë +]¤²@8è;îwªUÎùzç<ƒ}4 «Õ‡·‡à?~Ð¥§ÑoñõZ*gŒ~ü¨ýé/­ã›•¦mÓÜXûÏ¿ü Ÿïð#U€ #d€œ­Œý›6®/OîYéyÍ+eeþ²çó + +JK¹ÀÔa åÿîÂ~(ÕéŠà¦£C? :ÀdŒàW`–øSùÏÁ=Ø÷ô³êï ¦ Åí˜ågjÛé¨þ!ùDÒ„"@4ø.M5p:»@nþk8# ª ôÿxb@w¾´àâ¦𕲂W,,ÈÛŸ— +€ìåìe,.M½üÔSžol/<¦@PýuünæîM€£ G?ù¬ð{ C¨ÉÀV Pß$•ÎÌý™†Üî¿FóÀ4óýnÓ¢Ýôö§oÞ\8uçœië Oýøé§¿;ûÝEûÌ ¯à_²ØÐ¤ÄðÙÄZ° M¨hz#ëÄ‘;ÿXЧ„Ïtµ° ÍÔÔIVŸÿá¡Õƒ P’P°`í~À6þ+@ îC˜#ÖÙ ðßø[€‰°1ØŒ^À¤+ þÑðc/4ýÃz×í¾Kø¿®µÞuóšÿzT®¯Ÿö®Û÷šµÑzìFý{e-t‚V£HP^¾’TAм¼|.éZÉý!¿Ìt¤¦¢÷ÏR6ŽÇéû­8Tª°SõL«Êç©8~`µkuÏñãaU0à ´^i¥³š`Hÿ_´€ªÖ/T¢ú?$Zê ]uÖc¢Í@DüÏ"ÿO}G ÜfÀNNbG Cp—¢éoŽñú?œáü  ™µþÀ*ò í=rÄ p4"+*@ذ>JÀò¼^9*¤H’ç’Û¤×úð¹! 48@é|žó™Ð}ü z®µxÜj]ÑJr8ìôû;‘žä¤[¶½#/¼@XñxüÕá@ 7Ý7b™GR ßçëW«z›=„ÿÄññŒ®Ó7j“'‰ÏêXàËóíÞÂ`Ñ[•ó¡!–Ø4º¾ü Û(iOuäç_äÀ2KAYAFAð?OÙþ+ÈPŽÞÒ<;òþ?氬Šö|œ‰7볟cÑ?Lj…ø‹šdló´g¶WWC @àýjôÿ39ý/“ïa LŒ *5"ÙÀØ#ØÄzeð¯+g ˜(*šÀ`þÜœy.ŸU ûË,ÿ@gKé~¸e¿8ñÿ²f¹èÅ—_ÞߨøÎ¶ð1€¯å·qd`ýÜÜ} bý†”?ºpV°¾A$Ùk`ýL +,ô Gw~?—>`Èô}ÍoL³oÞÞq󿥕;çVΛ^XŸ¾ôÔ¥Kï}wöµ¡™ÜìB9¸XÃM»BìÿMJ °°Uèàtµ!7åg;wî|,ਙdÎuu1P:‰ ‘PÃ'ºôŽŽ%õ%†]è+¡_`ÎÜf77› +€ö`'î\(éS¶XûÏû—S w%N„¬«@Wb 0I4’/hÀZ- Ðj-f‰h€ÍµY¦éŽzÙk† {çkµƒƒÖ¹=Isƒôöž=%DZâì4쎧¦" `lì¾ ø?~`O@í ´ªüæImGÅêêGö\;®F¶l€ñzbÁ°ª•*ÒÄîÿý À¿SÀü†tuP‘þŒ73ÐîçÌ?º/xȼ®î¼u†ÑÑXÈйk7ÿ‰˜Ñ n€¥ÏZøuh#bè/ê~¦r„)ÖÿéUî¡úï¤7Ê‹ñÆÉë™DP^ÿ€‘*dºéLÐ è§»Ÿ“„ à󯟀SB ¸B?ÚpÀ?b¡<ë§Åï' ˆøC~§Jíóz{Äý¥éª^ŸÅ¿{¾LuÐÙƒègÔÿÚhÔLßm”^&%¶~Èï¯ÅWê³Ô?šð€àm«€~î°~1¾ìãÑoe M( +,ðÆýb½ ýµèìÆd@”ý¬`2€ —å`µHâL #™ ~tì©øo?ƒ@»Xå‡å_&A>€JÑáÏsîú§q80š +d¢  Á +`&ÿßíü)ÄC€êÌêÄà_Bp~À‹häW\ä @b–°Xöï‡Pá?Ï–—'–‹~þÔSïlKMn¦÷}M¿›}öÙïíËŤ?ë…bp½y^ VÀÿ%P[¹ï)¿CàõïÌtwÛw<}é7o6®# àÓééõ…s—/ýøÇïݰÏ= +aÏ¥ÿ¤P™2°]‹  e#̲”]À¬š}¦´ó»ºúêêºêø ªô¤«åØTË€¼p,©…€Å*«§ÆJØèÞÆ¶ðþ àÞQ@þ#š×XrÁÈå¿pÀŸýMõM³:C€Ü?l$Õµ( +Àc0 |Üà³~·õR…G ,ÌÎiïôô´Í6# °ÞÅø—p@š~þ¥9í µ¯b.iN[R·V”C0ˆ¸¿8«ÿàr}k| ¶hýÓÍááÔTìÏ;Fœ­a›4é­`p-É¡FÎ_µ½Š ýC­`@ÕzE%ö¾`J ŒÔA6ýóÛn©Ùú,àV¨3±ýÇc57ûƒ×ùw®Øú3ðèŸê|¼Õ!Ë…„ùÿÍìú+OŽÆ¸c9@¢þ—#D0è¡›FéÁóz€ñú[%o$*¡õ¿6À@¬ã@“‘ÞIxÙßo%àJ<õ76þ4i˜¶­q÷]s8Ïi¡â_abQ–›SäÍ[œ•êJxdÄçó…UWˆ¨z?½©RYäÐtÔ³Ž–øy€U@#ñ˜‡üÜk±Xüeü’îÝ\{€®­óýèòÀõðÍ*òšó˜•SùO—¼‚ÒÝ¥¾ÝyŠÿ"ÿߑݫC÷?øŸQ„ê¿8[—Ip +`”þ€ä̃˜ûg¦‰a@f».¹½ö,»!)ú½j|!u%!<ð_S)ÖéµRƒD  ¼Ó2Ù6³x 4g4b°ZØaÀ€óûËÊ.æþççCh±”½b)³”íÇ`^Ë‹_Ä&À‹ùòëO5NKnÿÝ}Ø@¡þµ=DhÌZÀ_ü¤;+vc¦pògªô•A±„nÑhûo¨ëíú;õm…‹?»´ãæÍß7BxŽ8€ôéÂë禟zúéßý‹¡Ü*ýDèŸu³'ªˆ˜X Cà6¬d•rµáèÕ#'N<ŽôÕ=ptÕuµtD빫ï&" +@lÿ'q ÕÿSuê–JŒpõÚØ¶x þßÜÌŠÀµî` À,"…1ÑðK‰ì%~"]ŠM£ò2õ˜‰(Õ¤’y’WýÖ™DW¤A·5jñŸ“=ýEU²Q%Ô‹Z%DZK¤•ríVkÉܵÔñ±ÕºáËü!ð×5>æ‚ +™þh +¤Ž»Æ?:ˆ ;æÕ|Ç1rà£Vç’’ yØæù~˜Pÿ +L}þc ÀŒ =lå @¸þ´"ßî–ýñ)dHxÿtvò €Ï7; + 104‚Œõ2 Ýl6Ëì ³÷¯ªÿRîË^™÷ÿGéV„= þÇ4@F°§Ã3*{ÿÓø±nð6à]cÀì´ôX;évŽÈN\ùF|j•J¥vú,¾€êÊ•ôÞÀáÞ@ |8pXÕš®·ÄzÌLµ,” åoê!¿¿{ý–‘½–Gs’{" ȸå5@c¿˜¬±8öK +”|*?ßæPbð0»•þ?^{ ü‰dë2zuɽdèÿ3 ý+NÖÕê4µºl]mröÙìlèý''#¹7Y¬¶‹q@»0r§¡ù¦2óLf%ÕjüÿOufbÜŸ‰é?òªÓ0G&3 +>4g“€¦š.Üÿ_þ¸yÀ ìbÒ)" 6Tû—Y^¡‹e?‹²'^,f ¶@Ö·%éܼ¹ïkìNcðètJùýφ€öCUö¶6ªÊQª+3€!{º¢ð6×ÿúÜÿ˜«·Ûíú_ܶwwßxgGÏïoÞK”þ²õ{"Üôļ£2÷ÿc(ü= Þvÿeôz"4@(ÏöÿÞ¨äõ¸ûõûï%û÷ðø!`ô¬´r6>ÿÓ<Å ›‹ßµjÍg§Ó8}þyµ:v:a0²M =à½Î‘–¨z¯ôú|½½ó²9T__ß#D?OD gíayÀò9½åÑ GäA°ÅÀZÿ}÷—E0£U*v`ÈJeì”î.-%ÌÇ€(Àn¦yºŒÝTå#ö—ñ¿X“]«ÓÕfk²³“©ü¯Å@€ÞT?’ù«InÏygéê,䀂¤UŸI;S­I;£©¬¬Î¬ÆðŸ^*yÁ€öW‚ /P-„iðÎÈØM}!0Pd™gªÏhØ ¸øãåâ èúÎ 0—?w[¯0þ—ÿ‘DðâÂ? ðò‹¯?5ýÎvðc À׉LŸìkØ÷l fü3ú™}VJ¯èp<€ÈŽ€ oψ À_§Ì˜ì¿±·ýµ©m¶{aÇBãÍ›¿Ÿ^ùÔºrîÜúôÊÊúÏÏ{åÇ—ž¾1ôÝWí"à\ÐbUzqŸ¾¡ +“º\å@aV‰—éÅÔðFnUÕÍÇ2€ˆÓ…ð¿ëäpüä›Ê @q`ôoÙ\Xã$€5ÞØfÊ# L0`›´hrD€:žÔñ" œû€HýåD`tmtHx/à}Ç×è¿+­Kbßê?sãÞSü7~ÊkÔìFéï¾wÚ+Áç–J¿rGyùÜžãååV«ˆš»¶:ëJ½ç?!þ@0Ý‘šÊ΀99ñA³Ù¯jÒ«©=~à£ÕÕÏû|¾€úЕ€Å¦>tH®N†B¦ÖC˜þÁ‚êC**÷[©îç±îkµÁ2y€vÿul’³€€Ÿ.ˆb¢èêƒä¢ö5ìém³¹Cžˆúõ0`×_Ö&¼OÓmÂüQ*þ©Ú‡$ ÉðúCÞѧI¯d„ôoÁÎÜàÚŸoA¨äoäÜû“1€×]÷ŠÙVÓ%4âðûÔjb¶ ~8 JÇÄEÕÚèU]¡]ÑcNøýÓÛH½Ÿ €pŠ&¦3iýÐÍyžùtÀÿÇt„ûÕÖýÆ~÷/ÝK_º°f•¢§ÌlàPàßWº›^0î‡Sÿ^Ê ê9#YÀà|qrm6Õÿ0ö¿t7ågÒp`;ýTó·³nï,óaLÄÑ¿g23« çψI€‚ÿ™ìÛ_^@‚j¤ ì.xþùçË^zéùç‰ðf¡Å¦’X ðñòDÑÏ‹ŠàÌ#€‹_)+ÛPÆîFED^^,F¦áú/.¿L`ýõmü øzß3€/Õÿ¹¹¦”#Yðê­Y¬±aZo‚-âD¯³8Wå^ÿ‰^o_üiç/ôY³¯5íXÿ€;ŸZÇ/â¼rêõswv¼wé½KñÚÌkРÏm°3ä3òçꫪ˜TU™j ¢…U@ú f.À?@ Ȏçö¤ËxR1JhöB €¹€¸âð*gFBmgn(†$æäP'€ºº¾ûR€eÎ_èÉØ\Þ¨«Ó—DæÑ €(íVÖµ¨ÿµë²mÚÅÒß4ÆýÑhÔL÷ZµXü'2àÙ²½-±–'Íí)·–XãÆ»ÐÔÅ] ŽÇ•È?LRáý›ãbGàÕĽÇΪMžéû®­v­~´çÝýalü9{‡T#Nõ¡Vu˜Ð¨U•Nø –ˆ ´²K@PŽ¡¿*lÝÜþÇuì_‚" xÃ; ±Z0 +¢ý›ÊþÛ" €þ8ËæŽ{ýÄ:<^YîˆÈPôpÜ!û(xVýåÓÊ +@,`Ä1s.XŒs÷»µ‚€<¢“Žðþ `ÈüWÀå¿ÂXöùùŸÈ ƒÕs%Vm£ïµJ]ï÷Ï;©ð‡3@+,_¨øaW¥÷öÒKïá¿{Nå³Ô¿KlÈæ¯—£°ˆ4ºÙ +prÝ-Fû &ø·Ì[IÄìkë¹>ôX²#ã—l¬¹µZªÿm”Á¨   áŒýEy½Ù¥ÙÙ½º<˜%gecÚŸ í?oþa&_«Aq_[œœhÖsÀ/úõ5Ü@ýÏ‹L€ú\ûgøc €(«1 €üO#ŒDø@-¡ÿîç_ziÏK{p¼D ¶Vs–>Žð?€æã‰âå‰â'^.JæçŸ»X¶·ì•²W +^)³ì/Ø_Zš­C Hx./¿üòëÓߨÎþ?Lnnp4/ææêßÞ™Ò½ˆq| ×å,ähÅX$äþìû¹öš¶ný/vÚoß¾ñáô:¨ÄSwNÝ?÷ésÚ••ÆswßÛqéÒk¯½fÿç¡“)×>ƒsî ¹3teöWa ü7Õˆ@Va"éh«"ð˜#RIœá¿D¡'‡]Ç’úZÄN`‹Òï§[ÇZIJ€!OëÃ8»Ä˜#:Û !üWf\ŠX@á˜ÃyÀœÈ¢%"„yŠg"°/û‹Gßµ-X1`BÐ5•ô˜ÀÚšÛý!€Öuó4€Ùl>uj]5Ÿ[‡PkJÄ à,ɳßï(8®5–¬”jµsæAã]£ÕŠIj]]<>¨g€Ôo@B¸-0<¶zf³6¯“'ýÇ“VW?ZÕ^{×ç3Ì«Z¯úŠo~ºÿVýZ¯œÎæð$‚êgDïûÏßR«;o‰eü¿bí¿Z´ÿH¥¿·Ù@7oÝ6ìêÜ…ù?dAðC(»ž\c ¹Y6ØSU;-bXî‡Üôz#è `þ/{F#=2àŸÇx›8OB'^€c#ÿºÜ¢úò‹%œ„ðOã ,„.ë Öæ ?vú0„\¨Ò±`Õ¡+tè ‡ÿÒ—®êmö¿[`˜öÈO…x 0ö¯}ö°J’пÀiyô—“èlq£m``M¸¸¾¬àž[Ò +@‡ÃbÙËA€¥¾Rôþ @Š2zó2²3ò²aÔ[„&Fá>Êþb ý û³5Ù"HYDŸöˆNk?ȶ=ɰJ\2… úÿ•tM' Æš4b¬ù]‚ÿjžh’u€ÿç_:ÎðàÀP€RÄ kδÓLj(@Âô‰Lüª¨è|é?À0_daÂÔÿ/Æàg>(šxù©§Ö¥m ÿÓàæÍg›@Ði))y»¤#Ò}øoo*!ÜßÔ½)ÙÑQ’¼½ê¸ê°£éañ?#eƒNAVÕìˆ8ÿ¼ªîåÚÂ1€>«•Ó€ŒØŽù\€U€€Ýí¹Ð•å¢Vlý— ò·ÃáÉ ûžBK C/nÄ;¸ûo±\²¾Náüÿ“ÎøOâb°3Neý€,H¸Žæ§PÿSÉ?™‰ÙcÐùBÀºnïa|ߦæþB öþ¹òú 0:u|4ô§Ûƒ¨÷Hþ „¥¬=ˆ\)œmµâ÷[ûxa¾.¨6…âQPUxûÚÒ¿F4Ð2=¿_w7–ÿ;ØL¹D»‰YŒYè ÐÀ¡;™Ü¹‰”$-‰²=˜áœ(g& rKh‘gwùŸ”ÄýˆŠ3€ûºçikŸXð?gÀJw¾'³)6Oã¿ÃQÝÀð/D€•&H’µÉR!`¸øOµ¾¡LWZ·ˆ6Ð Õi©©Ø­cÓ~ÞÀ„þCGK Côi'Xÿè3hâtM °ÚÉJÀ& öW–—?RýÈÕ~:ÐÐqf¦c€ý,+«*{·lè7TÔŸ~á7ïžþîéW^9sÆ3-$ìXÕà8Sï¨7××Öš0`À{0\Kú7Aà°m××ÀthËîç¿ü'_?yP˜ö\Ù§R€­"#p·à_û«-»_|ñÉ-ÿáÏw´nÝâܲàÚ§ærÓc¹¹Æž¹¹[7ç&×½·îÒ{D^<{åìî-»^?ÈŽ€·lA=ˆÄRàŠ àGObðÉí〃wýÍ–Õ~ïBæCB djÉèi% P¤ÿð‡ˆnç@^Ë@n‚®EÜi,-|ÊVX þ•€J´0p±PÔþÞ îx½°dìêJi@4ìŒ0/=ö÷–$çœ4o‡ÿ/»fTáÿä¤>à´+‡”Œ~À)YrL!ŽàÕ¸ÝÒ܈ÞÝ_13Ó5>¶>ï]ö/òÖÿàƒ?R€pºg`ˆsîaŸÏ׎¢Žö4ÖÔäó53ÓÓnªEµÚ·±éW¢ífù?•¨„þ%Ý>_Vj.áµ?mÇõ’ÃÂíb¨ÿ.Æÿ`±¨Ëÿ`úÝ?ú ˆûÅ2¤– §¼ü΄íS EØþ¶‰ÈßU¹áã'DÜ_0Õ àßÛ;Žõª“ù¸L4 7Ìö­¨ö³°Z¥÷édMKè ô1<‚´¶öYÿK<¾^#NKŸ,V ÿûcÿ²s>êëè$v‘ž -¢7a¿òí’î$ña/qMÉ’d$²·ãD,Š=(cÐê’ôA{øß}0©ªŠZ}°’p_C!Ààó X.×±Æi»Ûãi¨vÔ×G°©7þ³ ¡}²T,¢`ª4ò—Le&‚ù—MÈ2°ö迟Åÿ:1(; +ÛxþmäÕ@Îð{ùh,~©Â×AÀÊ?Öÿ WnàÀ&a +Dõy5ä„ÿ5ý555šF3SÑßÿF¹ ¢BÕ Áœ¸î4ãí+¯8ΰ`úÂ…*¬4ˆ,€WjkÍÀ“é…:Îx÷…ïž~ôКð߸vmË×÷@·ûœïCÚMX6Ï@óèÌëáø£·Û¥;½ï‹ÅÀã>EVôη{ºqÀérai@Ó_ážÉ-{©ÐϹ–ÇÖ‹ÂlýøøúA„s ‘€AúËwG"pî…¤oØ= ü¯©p× k»£0üÑ¢ø[¸ý±ða­o2˜ `BëÁ?L„õ>|× Íãjý¯Uǘ÷_w&¦,ñŸX6lè9€Ü*Ø€ß);Ìûí„æA;OùaÀE~˜ÍPâ‡Ã1ÈüõÜÿ†{y,€Í?¤ÿˆÈôú¹PÀ¶?rõ[‘˜×œïëK÷I¡4.-o«:À¾4" ð|r8–¢ðG}¡ñ2 3Úí#¦ïðÅésÇáz\‘PòÜ—¡¤§i4{A’Éî*Yž´ƒúýî©}»ügò$½X&•{•,ÜÇ  `í+Ï#4JôúnŒMÇlÀØ;¶Såé¿£º²¾:R)6’&3!²>‰½†„¸†:ÐÞø…?Æÿ€|õPÝ.¼z6¢p”Ceû‡8Âg£èÿïT¥ÿÜhjúšXà‹±Èø¿¿¼’ÊÿGPÿ÷¿TSA@£Ék¸P¿Ÿ· ÊNÕý +lö׽Àª j ê× ¬„ X@"^|÷»Nη®¡ÿ¿"ˆ8|Çj;ö‡ÿußÍ›wÛö̶­7Ãð÷“_}’Áÿ +Ÿ¼IA[~íO^yñÉó[~üãÝo­{Ó?>.þjNÝÌåè6Gàæ­\ÏÍu¯ì!på +'Cùð ã>Å: š $À¾}êÅñµ­ÿfËÁU;ììMu øw '@?ùÞÔ§\Z¨ìw‹< ¬p~ŠÙ«?-|ÖZw:êdtÅ-€t1 (ÅfÀ^·ÿ½"Qª€ê¬x‰¸jÔ!Œxî!°¶²€€‰;ÿórfÀ©§ä¨ÍfÓ¬Xö“ì>y´‡¨€»q¤QïZ´:õîŠ#Ó®åÁ±\Î5žÁ‚p*0ÁþúcËøôøú±\¤£Ã§¼ÐDÜššüüL¨"DÔmî>¬¥ÿ)­êý[ÂNZŒëµ0 ŽwÜ1û…øÏwZÜà¾10þký©ÒßèGÀu Ö>Bæ/€mXôËJ1€Q™ ßFå?ÃýÔ‰SS½v4ùG{ ë9ù‡ã° Ëì~¶•cÿàõ/¡ã_€ÿÒ¿@6 ïß´*l-`øîm!ý£R¶¯5-øÀÒÒŠ +@ÝøäŸÿˆDÕö¢Ó÷uwwvwwø:»´I»IìY`íõ?•þ„ÿ;J’‘½_":5)Ëv ¬‚ ÷PR×ïVJú˧deõÀµ%Õ á>ðŸè’Ú ô·¦üX‚Ñ¥>6m‡ÐÃ@Ȫß[Oà_IŸöV² Ð`2W––€µ¦$ï–Ö•é ¥£¥†ýÄʾÁK~LÊÊ ûC<]`ù•ýCG÷A8´qè(;þ–1(#ÈÿV“À}(ù›Ä8`'$Ø Pj¨|¢¼œñÿo+jX Éç5‚”—›öó €ðŸ@Ù»¿9ýîéÚÓï¼ræÌÛôMÛ-÷… lqx†5f“Jj‰ÞÕý²®î…ï¾6¹fô° ÀjÓ.³¯Ùqì…îcÑú¤Ùþÿþ1áÿÁ­°™ðÿË_þˆW®0þïæ¤€“»·¼þâ×~²åùŸœ?ÿÕÿçüG59°8>(¾ÿÀøøÜøÀ¸÷ÖÜÜ­u{.]zïìž“gÏ^9ûì²ûÏALþ±xðÎà.øîcðß%ìˆ<<·yµ¿E@K-þéŒÀg¢½Æè©½}e?­]dLh^¢sÀ?£<€ `eüÿ~ `õ‹íß ² V«Ÿ%ô€Ã +H-ÿW"øñNy»˜ð¥v"ƒðcðN‡1÷ª«``'9íA½4‡©>ž´ë% ¾?ʤ͞qZ­Üú ËÈ„sêcN'1¿u Â +U4 é Y>.Û9 ØéôýØÕKú`6 ½/ເ*E9D§Õ!=ý.ã}¬AÂÀXFˆ<ðÝ¿m•¨þGÍ}Á#$€õõ8TW# ¸>RÏ=€ÊZHö'+ë‰$M¦ÒÚRÞýG#S~ƒÁT +@)vÙ¦»€º2±òwôèýÿѦ£TÿQ±/êÖª˜¯öþýₚ6êv$Ÿ¨Ü»÷‘#ýÛ/îšM{~f¦¦¦âÈ‘òýûé¿©{¹Œð¿ N¼ðÊö_4TAh;ÐPuF„c  Ö  vÊÞ=]÷ÝGß”Òkèÿ0 À1³ï÷ë{ßÊ¥Úáˆ#ñ·ÍÍ‘¤ùb4úB2?FA¾]€[¿úå'_܈À+ûè"p’¶¼þµz~÷“íÙòã¾+—Þœ4.«š§r¹ü8ŒØæè˜›»¹îµK{Þ;ûÞɳÏ^9{þü•“T1 Áæ ô_ÁL¶<°mÛ¶«ÝaÔù ý.aÚ£õ¥ö®vu +xÏC€:àíÀT +I@(˜ÔÀZ@D^ûT$G ¼àV€h³pÁ_,û½<˜£&a)¨»ÆþD4©-€{D-À§åýäõ;Äÿ1Т0Õ>õÔÓÀþMZn\¿~µ„ñž¨Åâãµ~m'ÂyЯ=p{ÿ\öw²å­ëÔ €)40ÍÚGGY F@8/,þØþ—8@/V{Oœ€ïïq°‚©Þ` è/eû›imEÜo: …3R+ö~€þ÷ûÒV:g +PHC½&¬€ +< 3£°{&f ®.©c€¥…Oþè31ð;ŸÃ×YÒÝíóù:¸ù¯åǜǬ€" ùYäªÃ§dzPýæ;‘àMd07 ì<ÂÓ…Ûw#+ÍÍÍÑ{ˆ–Òup` + +Ï¡\ ü×7þmŠÇërÀ*’AÊÍfLÿ“†¤)Iпð_I(_‡E@ÂÏ— î눰ýŽ· ÈùÕ…îO§+«;*<û…ùÿÐÑ¡2*ÿé¸s¨lç˜ýëx@g0óob5ÀÐ/U°³ a€;¸PÀßöCX @¾]ƒ¿•þ_Wÿ,¤îeªþ‹ €Óß}§öµ3 §¦oÚXx¡ +=4Ìõf¢2¯˜MD€ÿeï²àµI©ðñü?4àiv4›ÝæO7ý}æ•R_I*’RZòBsÔ\ºCñûC àÚÇ„Âûöm&ÜÝ÷ü•­»ˆþE`ëIœ¿~þ/¯ì~þ£=çòñžKoÎÏù‹ €/,#…}<7>NøOàÐ¥KßáÀOÑ8»û$Ä„»x®õ?\bI ìCw€víØu`/'<¸jÀ%êQ¤Ô‹´æ%£«¦=¥2,¡ !à€npˆ=}Óˆ•E€k€; `aåÒ?‹OŠñ8¹F\ôˆyS#®v±à +¯kE€hïruñ"š®.AÂ4°X½.Z´"Xš·Ï;õ8%ÉÏ_™ Þ™±;­»é• VwÿG{åÑ^B{gXî ²N +ÒC“ ·þ­vþ/@ü-@ ¯Ð'IÙ‡Õg4- ‰ÏtçK·ÕÀ(Àm:þ&ÂtÇy(Úìˆwû:¸£BÏ“»h7©2ÀM%I¥9Ѭ„3úŒÞ9p9­¿ßü8ûœv΀À]Ú ÿ•ÉÕ~§ôBqðÞ€w8À3¢¾ÿV ÿyÀ ¼Hå?WV—#Ø\iª¬4ԖèòÐ eØØ9@™é´¡Ô$rz¡0•í/ã¼^‘Û+ðÿ(À¿¬Œ¿ìh¡?wŠ¿!ì°öOUÿïTU€ô%Dÿu¥¦'ö–ï-ä*ÿÕGè"ОoÏkfffxðe%¾ü–¾ûî ïœÆ€“€nÙN]ð\àÀö^¬­5A`6èt¿,«{÷»'&×¢¨ö´$.;ÔÝm–WnTÌÉfŸ^0‚Ònóßï­ )Èኔ&÷Ú"£Ñ?ø“@¶nÞèݲu÷î÷ À•“<8ùúŸÿù?î;ÿÖ_ìûñ{oçý®ñâÜìÂr.ŸC`.7žËݺy‰{Þ»ôسçÏž=ûâù+ÂW@”ü»X Š¹ìÇ »ŠŠ€]°&|æ™mOþèÜÁÕZýy‹@”¦X:3ºZÔî?Û‰üöø”€×G\V¬Hñüsíe(ÞWª45€á_MF€FùÏE¿HäO¼ØÎå?ò€óF£¦½½«øLhVÍ9ÏQ/ó“'œ€ô{0CïðÎg&°ê'ìzi.ðzÛ×ér¸ô¡ŠPj@ïv缄òôú»‘Ç®6ÿÆÅ + Á>ØÀòòø2(A®1ìö„`<×vGg435ù™šŠ +wèbI7öÒ´‡K®[JžÂð_dÿ–TyF-°ÔÆ}qÞþK Gƒ¾§;©ò'Œ¿ˆmÿh0+õrak–®SµÝß¿•­ÿIJ Ãÿ”å-ˆˆœ`žš:.‹.€Ü–…‚?løcôÿWþSbö‘@oX +2Á §_ºζ¶Bp·rO-€t_ uí€ì— èà +€?MÐ`îý/±¶À»€è‡ÝfAàm5$è!‡,¨øï7­ó£ŠÏ‡%0mÎ[*9ühÐþ/ÙfÀÛÝÊqùx•þ’Óp  ;ÈŽPàø¼Šà!L&'W%ÅчPAÜC`4.¬>x»à”2€Gñ4TaÀQOu¿ƒð[€æÊú›'Mæ½P` ¸ßPi€Oø©æ.5p0¯°þ7J‹5ÿÊaÇQÝQì” =JÈð_8»o#㾺À—†tb2Àýÿ2î€|ã‰Êò½„ü8=rµüHVòíØ €=€:þUN—‰½¾ÓÀÿ_T]°Ýœ¶¹mÜ.„0p4  ²¶ÞT©–ÕýR§{÷—u¯=:¿fô€Ã±#UÅ7¼ã˜ý²ªx‰Ú£Í¾aÇŽRäa7'ußûÞÆ„üa¥cÇ÷j£zå€kbOø¶Íw?¥¸@ àÊî“[~úÛóß³îüùO>:ôÃy§|páã/]#&÷ñ¯óccÄÐÏÍÝ<µîQ"{;û,(À³Wè€.À®“»Ä à c>v¸' ä˜ôÿ¯?úê“ýüUgP¤X‘Î'Îû}É8RóÙ$@ᤶ lÐ;â¶ €µ@‘ܹ¬f1 T ÆF8)sÿ_ñf»ºR©.ˆºŒÆ^ `Q`û½‚¶v!Hƒñ?gÐ>¯Ï²ä+00À.Á‰È°r¼Íg¬Â¦pº–îŠÞµlÕTäs¨ô»òëóëWÜÿl +4Ž ñq‚œ¤Ïz<¾¨GËɈ[ãžÉç5!:t”tÀ”æ€lÒ>ü;Œ_Œú–§ŸÒú0ˆkµÍÑh°MËV>ìú[r–Šìð]°ˆ@çO°¨"?Þ²ˆkS‚œ°`åï-˜ýY¦Ž‡Gå„Ük²«8x³”ýÿƒôïƒ6Â(€ðßlXê­Òl« 5ƒÆ¿U ö"û¯Ð×Ú—NCÈ)@ðH/öŒ\ìsùOÏ.» ìçíÀÛ…&ºÐŸxÀC÷füÇ_:Ðï¸~XµVâ© 1€M%o¿9À7JÞ.iî±÷ˆ@*¹­V"+ô t™½x­}‹é»‡(§äIyÒ.¯þÊÿX¸×@¿¿ð9\€ŒxóÀcóÀ@À¿y;ÿõ•ÿÕ<ˆ˜+ÍåIšt0%+a d2 ØGÓ½¬k0€8‡r]ú8ª+Ûˆêÿ¨Ðÿm¤ÚŸàŸm€¿Å'!Ðq{¿„ qÜQjz¢|oyù#\ýW?RÞ×ä œ©é¯®7™øW1œ†¹/Fß=]» ÂÑØN÷o{}%ÿÍt„ L÷K]S]Ýk‡2k6@‡˜#GiÒ1 Xg­—GˆàưÝ6—Ømoj›eùZ8jN~oÇÿü¿í¨‹Ä2áä÷º‘Bv—Ÿ·k…œÛÅ~Üt|ñÊÉ“'ßo=û溾ùXáK{æçoиý¥Oˆ4äèÝo¹`s=“DÞ{oÏ•³Wž={öÊyà?/l¦èœcGÍ›þ þÓ-Díÿå}õë_Þ·uÛ3¶­®`×ö Ëlø»àÒ¨@Qž +7`öâ‹-°JMŒ¤¨¤%l[âÀšðÎ# öCW|€ ÂØ +øwA;‘òN¨E¿Ø§b ¦]<Ñ€ F]ɼ¶úv`^²ÓaÆÿذc –@ÎÀ²3(Ë UÃ¾Ž½'2’5@lÀéô;+B¡ë¢__¡¡×]>—[gêà2Ü¿±~ý8/>¾>çöØõáéÛ#I1ÛÕ«¡Š|>7£q_ E:†;ß>,°Ë~%qŸO»éÛÚŸÒ}Xë‹Ç}Íq4ÿ£AEûmm§Å·K>‹]ŠÅ²R°-Au}Ü2ÕÙùMmg'oýÑÙ±ü÷–¸Äâ?*ý§ŠR8å`,<‡!îŸúØý£è?~B BíÏgR«>n¥?m}?`ö?jñß'fÿÐýgÓÅÖ@&€­¢ño-¶ÿE q‰ÝÓ·þD°¿$䂺~»ÀÕÿÒ'`ñÏcAôÿýÆE«F‰@±°òðÊáw‡Ñ8\²‰)À^‹/ # ?B{­Lp‘»S0ž»*ì|'ïõK­0€Uïª +EÃj|Ð;ÊÅÆØ´ÍðTy!“«fÀ½õ”W’õXÄ4fHÿJ jy_'>± @iôöuŒýDŽøù±¿Iôÿ›†¾%>ñ €‡‚À +pÀ\ÿc ð äÿ•?²÷¸鯙a@Ø(/ÿy)k˜œ>ýÂéÚwÞyg»Øp»¡U }Œ€±`*j¡2¬««}ôКðá€îîHt{÷±Ò· Ý݇$)¬(žkÊK—õ¶nmÔ¦M×*“²Bï1Ç.îø»oìø^i2¡Øv8aŽvw +ppë®m°ڌʟ ë +—Öýp~þÑ¿sS??¸8>¸píK Ÿ,üMWÆÇænžzóÐ¥=?ÝóìOáp…;˜#œäxtÿÏ|ýÜf¦›°?€@ÿmçÎýèÉ?ûú¾-Ø|€· å&0€æÐÙ…büLï ¡8Us€DñÏF#j ðEYZº¶ÖXø=5¯,©@lŽˆ@;ŸOÁ_ÄO´í€ñ\ŒÃ øÏC€Ô½$…€dæ3Á ½g>£wHDô=® °oÚ슣Ùá¸xÜ.ém¡Pã¡À@EE¨Úºˆøù|~,Çcnà ¬ÿè™Cgàñõëó¡H$ªÉçk""TøWÔÜÐLk*BžaÇE_‡nÿû×qQKg>m‡¶ûp÷uíÓ%¾a}ôbœ€X &ˆÄ-ŠÂ#þDЦÈÒ¬l‘eKgüDçO¾ÿˆ˜†þào +"Pœ,Sœø;Ê»ýáL8Cõ¿] öc ¶ÿPë^üG P0+éÃR–J~6ÿc ~Aø¥'¬;ÿÙ´ÿT!$©ÕZ~€búo„—-‹ÍhˆÔ—ï™·Ðx÷ô»¿©=][ûÊ/@8 +Ø%€êífŽDÿ}Œ²º&Ý/›tDšíRa üh6¿pìi9êp$lÍÉEéŽÆdŸÒâ’:}³bo¶ÈÁæ„"— ÿ|oGòíäp´2ÙšTVù³`1Þ9P€gdpöÅ+MéµyBþ×>™ï™0Žcàö—DcB+n¶â077èÍK{Þ[wàÊ•Ÿî>{…(/n…@¤÷×_}rßæm[·8Gÿ¾ê@—¦…€ý …Zò "¶úËC€ hoQÓ'ÄÀ¬ª\ë|ÿVvaVm€FFˆ2¥\OL¸xÞ€êôÇN?)5°uD&º4]< ¯ò®úŸ÷µZ<ôú8€° ]™ŒÑ§æˆ’ {äpØ3,‡ÎéPE£Óé·êÝôŽäntTÔ付¨@b ’€ñÁeÿøÇ¡χ:*‡gòëk:ìÙ·›ÞÙò5î™™PȽèÁ:Z l–Ž„"p¾Nçð©-åOŠÿx\î­R²²Üùm­–€M4G ¢Õ­z™½sÊ@‘`‰t€¿¡Sm¼%DlÌký`½a=UÿØðç?7°ìÇÁ¿'N´‰ÀqyêxoRÿ, €}­¢ô·Â«ÑXDüK}é¾ED[û¬`­„þw#›ÿÝæí?N}Z¢'O{––– +øä¦Qø'à/„ðáü‰,ŒêaÑêT|r xéâ©ß=uc€·wDÛdP@IÒ üX]‹x)œ³ËþQŠŒLî&U âçPó¡IûýÕè.µ`…Ñ7XØ»)ð¿ +&ÕŽíÆÈr3‡@ÈÀ•&C²ÒT^_Y€5@Ci–è ìë C:ÞPÿy ÛU ;þ†Õ5 ݉`â<ò€ÿ·X ¨cI gÔñò_SYQöÀà bTûÓÇÞòjÌÿóÜp÷÷¿Qi:_àôËœÀwßùÅ™*÷-l7Òу˜Ã†íPÀÅ€O6D¿|íö3ó﯅°> pÌœ0w ‡«¾}¬6š‡í£¶°¢8µÌ*ј~äXL +HÍmJ•ܼÁb‹íý»¿Û»ã{¾aÇsËH,¶1Þ·k×î­Û¶—·½¾ûÊ•ógÏžüÒâ¥7¥¹¹Gý[ãƒsþÁâ +þ8ÇÆŠõ?Í¡ðè¥ïƒPùrÝÉ+Wˆ Yà¤ÈÄ’ÿÁÍçPäo’ÿg¶ý×ý_?Ú÷õ?õƒ,\ÿ¯Ú@ƒ.4éTwµt-´´hÔÀŸbЄhþsñ?!ðŸ'd°ÀÂÿØ-€…¡(¤… Å +€ ^ÿëš`ÀŽÅ3ûBˆí?¿±=O|€Û1š–Õ5€ˆ¹œ¼ä%Áá-#9­œ÷®×mœ${l™ŒGÖÏË™ˆAf¦û`šŠ™ 6”gf¨òÏßÈçDëL¸³î êH`pÀ6ñä»ÆÜŽa%Ó¸Ñ € 4‰_Ä$zS‡E[â»Z~¤¦?©Ý¤½xq“öz|“6ïèˆÇµÇ,qms–Êý`6Øö4ô EIþ[”ì¨$e³ò”…7þ:ãEý?wýaLÀBp¶8aB¿ØèTÜÿåãBç'«&'èü! ÄîXŸÍÌx÷‚ÿ@Åš—ûDíŸf€˜ù$Ìk –ì¡ü_R÷ÿ0ûgU.A"ˆAó„Ûtý·FèëÅ‹á¡d.|"àßo,¤h³bñaÒB¤kÓÅ8ÜýÇá?xûP8B¨§×~Ä…PˆQxeü\ýÅ@kwÓ)dD¤TOϵ` ¼p·á¿sÄh}ÐÀB: ¨€HðTU58 ‘zªÿë·W³ÀÌÕ¿)I¥?ûÿüM€C²Súº²ºâ€-€t¥º2†þŒòN€ºbýO´úw;;Õ @°*ÀÏ—™ñÓ7êvèJMûYü¢¼¼¿¿†]Á°1{¤º¼ÒôrÙË/ ‹$@Øo¯ºp + +fBÜpÔWškkM•&ncyÑ•ý’~SåöCú5 ‡Aj_è®+yᘽ2À˜ÒìN]Ž%¢ŽÙX45ҋ͆›_Hj>•åCǾ]íþÆŽßíñ%ÍŽÔÈÄê±Ý»nݼm‹òYwhnÎ9y³p‹Þ[WL¹Àæ+ãþápóÍÉu—¾ÿæ³{Î^¹tåUvÜ +€=@*ï7Ó› BöwîÉ]¶o×gþzÛ36ŸÛµõà½î;÷ÿG¼)—èx ˆZÆ^Ò´w¥Š€mhœ&4ê5œ«Kx‹\Óþ>ø«©Àœ›¶€ÿÖÙ•@ŠÇý Q¬H©RKÍ„ýëC¯f|.ˆÐxéŸW3–[ê˜Ñýaûœ4Ït=Ó3/Évô{õ»]ow(öp°YÆ€Û­·.ºœÈ(¨© ¢~ý|~leú¯Ú  0î_cm €‹w~,?¹Ø`k ¹ÛsyÛ +]Ö–p1º‰`þ°¯¦¿$fëÀUŸš€îðù|Q‹%꣪Ÿ€-œÍZ´@zK"Ê(/* *0Õùaø_‰ý³ì‰[Š@”þÄTÖ?£ôŸ˜Â¶¿Ü; +ìUþSÇ?81C€ÞÞpoïq"Y)܆«kël€ˆYÚJPmD8mëáB€A¾é€˜øóÁÈÜ>$¡pm€„+>0Ì"VHÌx¬°´°t¹XˋΌ63þ.AÈ¢ºuYRR¢MÒSáÃðŽOÎbü¯žYh¼s(°Nå®BÅÌ\FŸéÉd®Ý›|êÍ.oä¶Cxäëÿ½l¥ÆÌ4K€ÿ ¡†(›˜õH+Áêͼ`¨5À +ˆ€TüWšJK IVèÊØX§:ÿãóÂý¥e¥þe8mŸËK­ú³ ƒÏ<@hÌåù«ß1®[7;cìÎûÇïüÙá·>®žåæznÞœ¿k«¸áïã¾ #@¯jKë…ÝË ñ%MûZH°ùÏ©Àê`‚m€F\ü¹¤: ­ÕÿŸí,-‰-ÀBÚ?ËA@@(Fý)fªÝ„È]då%·ü½^ͧ¥º„%Óêâ(kÀYìùÃïü"þ—ª~_Ìèí¶¨Ã#Û•‡$5†BÈÔO÷ϸg4nªIf4¨ýs]"`e°²À£HR>í^w~<Ú ÅBW+4¹\{£[Sú‡xIGGQŒv$_ãÑ\ÕŠøÜÇâ"ÚõÅ-ÍQÅ´E–oZäD›X%Þ¹AvJ³DÚ,mÌg©¢¿)K§X˜zËÂ]ý F|K[ª{ËÔ‰ SÇG{cY͘Â÷®?½áL–ð?Œkˆý ËYnû³±¿•pÚ*Œüé OV ËiAÒŒö<Æ)`Xn…"[^·Õ `öàÄ1X*¤³­Òl`VmðÏù„÷Š_œ,ýÎ9zšmz@„Ë"?ÄO•°ïrÇ¦Ž‹Í Ù>J¨­ÏpðŸ !˜@øÅëÐQÇÆ_iÙÝÆJ@ð¯CùOuþʨº?6ýa€M¨‰}ÿÐà4`|ó"¥¥•O°Ð#åOìßOŸûk`€ €êòúJÃËe/3þ×aðNíö3 l¶[¼ˆ#\àl&ìÇ]ÁCWG¿ªÁdªÜ^usMø0@ss­ÙçhVŽEuö–TÌ¢L\žð´¤Fc#Ê„kD¹œ Ú7tŠv;´µáÑæ·wìøÞÞd²ÅaŽ´ øGR÷øñè(¿zÀü«ï¿6?çœ;ãwæ€ÿƒãƒôWqM5s˜à?®NXðÚŸe3€÷Îþô +¤€tx Ë€'·ÐÏ])ý·Á‚ø\q €D¢Í÷wçÕ4Þ,‚¤º„ ÚÀì_8° … €v¦79ãšð¿è,©6À褋€Yø°ú=éÁô…µ×¢¿.h»ÚÇ–\š.:hîMàLïTûëçç2Ή؛•y»G\&k‹6D +“r•Ãfç @ÛêwW̸+Рä$ÀüØúÜØJðã*þ±4`W¼ÓÉ«îüzûbƒÍ6|µbf&?ãqÏ„†ã‡µ×7Aý_òtwE>ß•¯Î*Di-Ѩ'êk“=‡åbÂ[‚Ùù(¯÷%:;’^juJ‰©6˜þ Û¿b05µAäÁûS€=–zcìü3ÕÆ†Èþ€'zãÐþÁöçnÓëÃ0ý•{ƒÙ ñ€,wøÑ¤O/²öÏ(öúxø@ñgäÔ:øûÑ%#„@ívúÎ…µvqXü‘ÖÙÖü ÀoÙNh%*ð²Å{uqÿùMvÑÿŠ[¸ÿЇ¶£Dëkókkžâá?7$Lôhûý¼ ‚?7ä!â1ïè‰ê?3wONÏ ++¿°"÷/Wð_L0¬Ù½ãV§3ƒ €ž• :äõÕÞÿKšÍæH½9  $ÀLÖr 0!¿A€I$ÿaÐoà:x½,øƒü?‰3^$ìס@åÿP™n§nçN1ØÈ[bß_Eþ²¦:áý£+c`ÙÁ?Ð_SÁý¦ýOTî-§Rÿ €òþšÎ¬!¶Ý„€ÉT'¶N×ñ ögª.¨ À¿Àúêí•æúúÚd}m½ÁTËVEXh¬ßÞpaMøP€ÏõUÑ›’£ÛÐ=lk&N…#©‘‰–ö‘‘ et4l—ÉʱH·c4};ò=óÞR¥Åᘈù]®{N²lPo;ùÞ÷Ÿûð?~øî£7±¼˜ãÀà¸ßÈï¼Î©Â?S:ËÍÝrÞºùNà½Cî¹ôÞ³„ÿDÎ +3€“Ïx晕Òó¹ƒ,5<ìÇá™û¾óêúŸè°5æ%¿ño'ŠÅ?#’˜ýkŠÅ?ÀGŽð‘*\cŸé0üc ÐÈfìB0Ò~YXðC ÊåUw¼ØÂT½€0iã4 H3¼÷0þ8Àûð÷™§÷êyýœ~^9dÚ9Cïßs„v*—”Lør2úX(äÖ4V¸Cî +7½'ÍäsãÞ±VÆDïŒ}€€ 7ÖÃ=‚Pd›îa_txøj$c3º¥âgõ¤oÒÆ/v ?¾¾‹è„ûgH`øJ«u\ŒN*Ñ^›Å„¿³³3Jø$ó´?‘ˆ[ Ï“‚hñwZ¸¿âú7%¶ÿßšÂüÃ[–ØéGØÿ[xp‚]ÿü£a±@?º£á,¡〤0‘¬ô[ ÓŒö¶õAл)1îEØQˆ8Œb“áß(® áŸU~wÀRà?IÝ‘YúÑ}è&ôõTÓuðÅzeœä_ ,SQ®ÐÃýmlZŽ¥-ÑvÄÛ&å6åxâ8 ?£G$1NÐqr.µµði .-Ü•ô€d2÷ÁŒŸ©ó? ÿ wúÂÃè€ iŒ02= ÿ6TyÕ‚Úÿ,`7Ì“µIbµ„üõ•ICÒ`*… ´ +ûÌ„÷™š L `‡ŽwØ`cSÓÆ&ÕûåÿNRËþ(øE6°nH¸ …ðØozbÿ,¨,‡ðÁ¿›þVÜ5ýýGÊëË÷Ê~cx¹Œ³€k‰lwœ¹À÷…íBLp¬­Gñ ¢1ôÓ §++ëëÝt®ù~q­Š6Çš}ŠrÌìpÄ&Z”èD;רg¢e"ÃEŸ°ŒÆ.Š:|Í1¥Ä“Ü1_L)¾hû„qð>–Y”Ÿùð¹ï¯›üÅW†þâëªïÇŒãÜXø×®ýøz…‹ÜuU€µ«Ü͹ž×æOMúÎ¥ï<öæILNž|u¥éÏ‚m›<³ù ×ý`øwhö¤U7Ø +xb‚ÀK€DPñ„À/` ‰60N ùÓZàïµÿ‹Q€Œ.¢À.@#èœðà?Å‹ê -uÐîåˆFo~Á_9 ÏV%KˆUE‡Ô)Qõ¯Ÿ“æ¤yeÒ OÚ©þu–3‡I0vYaA&Ôoklœi×WÔ¸Û5353pÒ±\îŽ×q†ò7np& ]Ö\Ùòëó3Ã>sdøj5‘ÍŒ»?ä¾Jå'Aüþãñþ¬¯ˆ”h7Q}*RãJTÎHö ¢£ZäûtÊR&fCì%MXa)˜êì´´Y,½ö˜žÂ€ñ?ñÿûÿPõÏò4ÿ1ìøè_ þQúy1à¾:u|Šs€ þ{ƒÐ:Ñúg> €œPhôñ + Qù/‰]*i‘å¬Úþ… ?©ôý ‚$¸°Òõ.f±eÀ])Ð'¢ñýKðäe€/BnPÿ[­ËN©ÇÕrñß©z4ËX„ˈև3ìÿ#ÁLÒ{«€”†«úн[ÀÎ3€ž{€kFñ0¬üì•À§†Fc‘<àOs£'³£þWÿ=,tTW×;Íæzöÿ«¬4TRùoª$ØL–¢uΣó$¼ Ó‰é?!© |A@,<ªÓé6Âø(öù!îª?ÞþúÖN5øg£ð: ~ nD€e…;è§J+÷W¢õµ ¼¼Ÿ¨6÷ÿÑx¤º|ÿ麗y‘ñÿô+¯œÁ`;hð@ƒ1õµµ3¤£ Í Ó~º»D.Ì¿¿ö¦ûÅ €¢(-£Š’‰‹8”‘ ›Ò’j¿<ÜnEèM +³nWìrÌn¡}Y´ùrÌãsìðÅ’í)%šj÷ß—]PAûÃçûέɪwþâ/¾ò£WLð$þ¸P` À§ÈÈßrΟºuóµÉ÷~µî¹ç>üò£ðß¼ù™¯o¡‹›ÿ‰‘ŸÀµ¯=X8A×…]@!FC_ã7þí§lü¯ ©¹M]¬ÿ]¼7ÅF€×Öö?36¢ €j0âò®¬|ÊüWÕ8¶ôz»¼ð†%PQ€®UGM…>ž°Åï<ê}&ˆ·mY‘é–¾ƒ(¨ÜÂVïÆ`£fZ3£™É ¸jfòÞ.Â{¸æÕÀ1áû'dç׫m™«Ã }Õt´»#ä ¹Ý3ùœFã ÿL[rkQB¢Žl¬¿q#AþV{ý®—ÄãŠ"…l¶l"®õ) Ëñ MV ‹…Îd´£mß´~Éòh˜-Xø;€+×>°L%ÞË+ÐBÅü'¦8þoŠ[ìûäOÁp0+ñˆŸ(•ú‹}aé‹E¿´0*Ñ èã ^ñä:ðÚ÷ág ÿ™mÏ­ˆÿþúkÏ3/ê!Ø 7þ*…A +NÊóRÀjÍxÜ3z"339:å¼®\Û;8†±Ç?1òWy2À"À\ÅðÕPM~}WÎÓÝqÄíö¸óùö鼿j„*ý¸hF.ùÙ ˆÌ û:â%›®ÃX«Æ-r¯^²)1™ê|%j‰FQÀ¾¥mÔ#°hÀ†©Q»¬Ð‡=·ÿ·ÔÉÿ`ÿ P€„ pöÿE ’¬ûƒÈD¸ìïí…ÿoop¶5ԷβýŸXÕ“œBèŸFà/ë…4·úüiÕˆK~ìÂÔ‰Óÿ!賊X@ál¿Ä onà²ÊÿV Ã}˜¤Åöà‚ªX nïQÿû NõOÔAø_ÂÙŠüûù}¾6Ø Éväþ ̸$ž8Å2€Õ_ ü](Æ |WëôØY鹯ÓŸ‘ýõ†B +`Ô<¸€¨ÿ3™â »JñÀ"€Huõv¬þ×£þ€ZÎÄÓÈ€Á@µ3Õÿ¥:C)!hi]q°LHþØŠ›¾Ku°òÙX6$ýï,þíTsËàö»±Lð(ÿtÅúÝXWWŠŸ ZÿGŽTÓ@@ÿ‘êêGªë÷ƒ…ì?m(3¨+€ gümnµÐp¡ê"éXŸ¬‹1J ý_e}y}õõ Uú5#à/N\)ýDÊ.§ÂÇ1GÌ›‰¶L[&Ô:í²Ó_Ögc©‘‘‘0q%Õ8áñDm£ÑAWLñúî«›…xÐm>G àWú«g>ÜöØ;ò¿Î©ìáK‹Ækƒ„ÿ]ÿù×o¼ñ¿ÿüç/ÿüå¡ÿò¿Òáç¿øÓ?ýð?~ȇç^}õÕ“'»r;»n;pðÜÿûÕ¯>¿mÛÁ}Ÿûî³%0ÁH³àz©X’r_º…½ø|¢hWÃ+#Vu+zÍà³ àÚµâ@ŒB8ëo1@ VSUõ?SùOV€šö®.–g¬þþ(vì“óóó»v€Ü¶µÛ ôv؈dš#Ñ0€€­ß­ilÔOk¦õšš™®\—¾¦&™?û­[Á~up|L ð4Àh}nzxSdxØ3\1S÷‘HLÿºp¸#DÕ?š c]ÓÑë-Vþ¿ÃOw hN襄G‰Ê½°ŒSé¯(ÊTg³b•3Ä‚mBÿD›"ÛÃa‚täýl¸Ó` +pBà¿HþQ7üùÔÆçüϧ’_ÂÜŸA©/àlí…ñO+ÖlóoM`ÓP°öY ¤ÄZûÄúŸ:èj9á,,9ˆô +lö ¶·„útŸÔÚè ×ÀJâ,€¢ð6ØÖœ3cD¿Ç9gÆáˆÆ¡·ÀÃMçñÄqBý©¶•ÿò¼¾WÉè³BÿÏÀ(–ýþÞ°D~A4Äß] fG„¾÷%ÛÔ/Í?]÷«½€b`3ˆ¼ãoé{2v›Ý.b€àÀ–÷§ú?.T×¹|.±+ª®¹ÜÍSëÖ=úìÙ“¯>÷ ÿwÿù¶g¾úµÝ6o>·õ'»¾Ð#‡3¼€¼b +€z_³z©½¸”†“èükT;@±À£l+‡óÀøúy.öTWÖÕ0@¦)X ü§_{Ñ h…@॓׫4ÒÃÞ +à]•Üæ€“ +|8¿ÀoÙtfËV'Bé–°3èhn–a +$¤™vƒ 8+jfò¹\~¦=þ\V¿bi€ëùõ–X0s12¬Éuå=‘d$ò³‹¡™<Õ5¡P‡¶$~=r]» N€5‹a¸wÚM D‹À§µñ­E–ŸÅr(+eíTßwZ%œµw¢ Æ‚1ú$'Âzy´5æÊÿÿoÁÿMªÿOlhÛ úÿ2Ïû¹â/6¨ôGPoïTÓo)œ…º*þt«$úèÇÒõűõOÚÚê ¼ÏY@ìÐWàuÿ÷‹ùµb / >©ø$dKj `‰lLÏÈëC -ò„ 9¤/^À4_·Ø-òÊ`Éé/X—ËN}F²G}Úì zu=!CÛ‰g]Fþ#¼ÅòÎóat$½šÿS0?5Œ]€Õ;ܘËÌÍÝçËßhµÏú §àFý{ÿô²¦ßdÚÎÀ Ðr`¤ºÞ\mŽ ü7@Ño®„ °ÐÖÖš0ÿ7èö¡¤Ï;ê b h€*-¬ÿSϪÀMC‡Ê>›ûǨ÷uý€V‹ÿM+b5bÖ‚ûéHçX<Òßßbü¯õW©>R^^Éž~@ôÓ&ƒ Þt_À8€‡]€¹·Aw'‰FF)L•åõõÀÿêS“Òšð lgŽ\q6; +½#O´Ó[t‹Ÿ!Ñ•ûî#—ÿOLo—ý——ýË#¬™OMø'¼~ÿ q:þù3¦¯ýøãŸ#ðêW^ûκ³|ã›?üá™3ÿùÖ­zn6Îá0>—›ËݺðΩïÿÅcϽùÜ«¯¿þÜsϽ~òÀ‹/îÞ|þë_Ûwà‹?rÅ$ZŒX‹6ÑÒµ iÑܲ@ KÛÕ nŒXÙȪA×FŸî'àbõ˜ö§Õ€•;'·¤¸ F/̺„øßÛÅ "›qÜè̓Gëº@þ¼ž·¿2B̸~§Ð@?o×g'£“Ê!{8c ¹§5q@S‘× ‚zå:„ûëÁ@<ÇÇ‹óxäÄnÀú®P$â®ð Gª;""øQW¯þ ȹŽvô¦áùÇoñ?–¶·VÞÚÐf™z«íÄ´þ'dáDÇÞÄÀúÓ…`–°^6UüTâϲ@0˜mmµ¦Õ?”ÿ¸ÄdÖÈÞ, +`´/n±s{‰[ÿ­Ö%aÀ Ài±C+!!ù,,úf[é"0K|#ÙBë¬UH©àŸx[´‰î¿ÿ9â{(‡ŠV«µ×ßE_4D©2».aüƒCXÎô" P¢W 4Æ3!£¥7¿:À!“™»ßÅ}â:Fã§Eì\$Y‹ +ëçÀôÜŒ‰@€Ãá ôw8Ìf‡“rìû×–£X®ä¢9‰ü\tj±ÿ€®ÔP¶ÃPWŠ)€üc ÓÝ ææ?7t\èïÔñÊŸˆþ龘þ›ÿ:Aêš6"9ðΡ´Õ?º¥G‰p €•ÿý!ŒÊMûK™Êêÿ±pA¸‹@CCµÃQ]_O†øŒ÷ë &Âÿ#bÐã\{Ëý¢À¿L îJQQ¦(ÍÑØà «Ý5èè2‚ +Œ[éù2Ôn©d¹ùý#1|¹×O_71˜òútØìçx>^øøÃWõýógÕëëûÊ­Üøøàà ß¿¸¼¸L¶ Ÿ˜{óý=ëN=û¥Ç~zþì‹çÏny}Ë–÷m}òá¾ìÊjµq*ÿé<®FƒR4Þ”²{ÌžPÚâñDX’Û¦ì19‘ ´G`tŠ; ÎþÂø—ðÔÿƒ>@›ÐÏ ?Âc øŸ‚aaûÓ;Ý_Xjm•²AÀ±­ù@k˜Å€°`á?Äþ}¢O“FÑÖ>ÌÓ}¢!À@¦zú¥Y*È^àÎúl§ iîþÓ#qÒÐÒ­öàè`±wÇ¢€û6Ð(蹤êßé\tN÷H’E«ÝÄöam´WñÅå0„ÿÂòIõ>ÚöYù¸]–'3ÀÎ\Pûôã¨;z«Á @Ÿ¹È¬Â˜¾#ý+ŒŒX‰q@ø9ð_/Í÷dzzÕÛ‰@ÿ§FÂØ„ôÜZºTj Ò¹.À¨ÿwð9¨ë¢ßÏ¥;÷6êø ü3ñýMM;Ùøw§Žoì£ÀñºÜú?ª#Ž…–”BQ°¿+éG ŸÎ ÿËë+Ù€êù:ƒ¿é+õ„ÿl€ò?Äð â °ÍÅ F&ºŸGˆ¼á8sa- ø‹#1ã Ëåw*åò ¡:ÀÝhô¦Œ]^ïå,o¨j#Úê÷§ñòõbõ/ÑŸÏ ÁÿÅïÀ'¯>öÚ©;ÀTÿE=àÍ›o>ºç½K?ý);ž}qË–]ï‘S×ÎÄî;Ò½4¸ Š$€v6`«Úv6bí:VÚ© M[Uyôø= +PÄc1 pF€#x1¥„þ],ô2úc$à-*º˜‰tá´*›´ï# (œ™Ç€„1@ÐnÚƒÈB?À©?å8äˆ*rsDé!ü'ìwWT¸5nÎÈGÿ쨎þóE°~=Ïó¹-°~&rU“óÒ¿‡†C‘ŽÈðL._33SQù™VÛ¹ßÄ‚´™üãˆÎÓkÚ?wJUö¤ ²¬Ï*‰¨œ‰ÅlJ6hOÈTº¶Ú- ¬ ñ§­ v¼Ì&g{Ñó?Ql@pÿG{y€•ÖŸš +†G©ì‡ò/$€…<=Ä™,ØQ6Cå¿Û¬ûÃüŸ½ÿi£ê„}+Èp‘žÃ…%ÜH«…’Õh`,,À/¨0ËÓÿf³ÜWÀÆá, +ŸH÷[è+a Ô¢÷õš¢'yq1àÌd§{ܶéQˆ*µÂeÑ—é“…ÎÏjå,hI˜  $m K®·‘ :d¿qÁo¥O…•&À]þç9ÿ€\+:¬E`MŒƒƒüÇtÔVO¿DcO¬Çn³]›X@Y©p¿è»æ›Ñ`ýzç˜` @WÊÛuuj£¹ŽC|ÅR¡8•÷(ò‹"ÎÔ±Õ?:}õ\ô °:ˆ3vÜÁÃèþ‹ OT" ¨œ¡‡jÌÿáH\W€Ápº¶~;$€U§l6àÕ7<ªë©üßð/6ÊêJMåõÕ ÕoTWŸi°e¬kï´_,ˆTMúHRl^ÿ2Aüàò„ÑïE)îu ŽLðîÊÀý2‡X¦ð=ƒøÖ#¦ã.üêÙ+gºçÒž=}t‡ùü,ýÏžïüÙgéò‹œðp¹;€v¡hù vÀÂH˜ xB䌨[€KÅÀPÑÿ a8 X$ñ`„gÿ#^àäÅÔ2/Š ~Xìçuq“€ïzy ðÞi>#Ñf>3?¼œœT&'ívoA0)Oí™ #Ò@Ø’»kÜšÍ4€|>×ÅÒ“õèõøŸ+Dðt(š[_q5 +E"WÝùvœÏ¸û#%ÚŽ½ìL Š\Ço`© ßQ¢½®t«®Çµ‰Œd·DJ&Koä±l֞ň^N¨I– ò¨œ ÛÃ’$eÃAÙn Bô·aƒˆÿ;!6„÷»ÿq w”—þp:ÙXÆ +`8œ•²­³ýAôÂ¥ ýÈ`r?týû¬„Èø(¤­TŸ³áØÚ(v`„m舕——úÅD` nãnÿô02¦[ûÒ}X5hÍJ¾YŽ ðÎ}G+ý(pŽ¥¥ômž¤ ×nn/ÜÏ[UÁ¿è·zz¦‹#ªžËq¢OÛòÒôÇfŽ3#ËA»DÌ/”ÃÁãÚ¨ýxbªgÄoÄú;‘& Tö³ËÚ«¿{€·æ{zäï€u³éb³þÛÙÏóç$úÿó}Oýæ´}Zµ¬ªjðàúHyee„€*…õ/ŸãŠ!YI$ i``¨òJuèü× Å_™@ru‚¿Q|jb`™nˆIa>„€Ì ˜@&PªS[º™E A ´TÇ@¥ê:!ÿpb!@u5šÿ0bÑ!à¦^©¯Ý~FHª. þ÷pÿ¿¾GæÚ$ÝÖ––*«yPÿ‹††É5 àCèþûSveTô»ö üÀPæ»Dù?ëò«ó2>yÜ©â€ð¡Ü‡WÎxB4ýäS7|òÇyäö‹z1÷g ÞHÓ´«õ?bZÔP ájç‡ÅªÚ<´°óÿ>ÀÒJà’Š#" W° ¨&0°þÌxô±€D& \̼^јoçÀ=šÃöê¹ö‡ +À>Ù“±Ë“²<î±ÏgœsN'nÖÒ{¬5j܈¨©¡ú?ßÅnÿy!ã=@Õ;Þâ\ o¾šËG"h ‡4¹|  +‡.–”$#Ãê Ïƒ¯ç¥ÂüÓÚMÚëðìLtj7dœÙh§/šHØÃ1{È Nm€)Ág\–Z3v{ŒˆŒhÃá@ ¿aÔhýƒ0ê·õªÛ'NL‰Ô_¨þ ÷—±òÏ—ÃÁ°^ +ƒ´þ§@+¡8ØlET_+Oýû¬`Ö4/̧…+PZ²r¿Ÿ ±7@©/-&þbl Œ†¿ˆ4.ðP€Þ n[[‰ò1öKÈ]Ä §é€Dß0Ë]Øâ¬p›e·ïÑXà4"ÞˆÙ¦•NËE=–OÇÅàpG‚J}¨þ­~kÁïrÚ•ãt] +öʇ,¾æ„=Ó«ÈÉeÄ Àh¼Æù?¢,/€«¯ÝÝàæMûM({ðÝu n/$.—ê†î(šØáw'"ïg®?jõÏÂAÂAÊv”íÐïwÀ¬·ì¨ê $Ä O`?Àrb$¥ìB``-"ÏjëëyÀ À¿§¡á P˜Íúýkyþ_Vj¨„þ¯á7.Ü\3þ¢`3Fu"vû„JÚÆvïà Úû~øÝCìæØ¢Ÿ«~\vù…žæšÿßï#×.R€9…–/°`^tVX ™ ÓD ûp@ø¥×²ÿE%Œ€Ña]ÙàΉy@^ï„à^)þÃ~—«Øð KCOÄ w|Õ7É>6Êd¤¹yÄÀXÊLÚüÀzpÜ"9¥IGÔ–±ilsîŠÄUT˜Éô×çàÝ3&ÖÅ'U €L`ÎÏ)‘HEn…Ts¸™{Æí>²I»)r5äƒïû/ap€cEw‰Ú­nS´ÚNªím ŽûU2J8lÍöfåÎÎovÆ7X:-'z}&ŒeõúÖp¯L 5  ÀÞ2Õ{B¤ÓWŽŠ8à¢ñÌß)º1,O}Ð ÓßQø³,ä[[¥Ö@kpú,Q€>ÿ¡€€š>k <ØêQ~‰ÃòÀ¬jºU÷N âXÞ‚v~lM§™Žá @5؇o ÐW´¦9kˆ­ŒKÂd@e·Wü7ÂÇ_ÊcS:ãqmÜBµ¿ªH׳翕-vüN}â,g2ÁÑf_GÛ”ã LfÄIïc‚Zø‹@?á³?½úàZÏM;°·‡ø ¬%úK0~¿¦B€^µózÞ C¬Gô<°Fy‘ÊúòHe’EÿÐÿUò'.ÿMIVã±@3zéÌP§S%:,õ± à(笴þ‡8íF?, nÐ$úø7•©Ã€\ïo䂟Nu,($@è«÷ÀZÁ½AÌĵ,ð\8Å!˜ÿWѱf?õµIÓ ¦d-ÄH3®¯®n8ÒP pjrÍø‹£±èOå’¨q©“ý®k~¾„Qÿ²ËeU €øÂ;æÙh¥-ðáßñœXô¶w¥ˆ˜¸ì¬²Þý×p /hDn6©Ù•%€5 à¿ Ô%ž¸f90åR‡ÿ)á$õ”:„™hú»¼®qW{ÞoÔÀppܵÚÈ6À0üÉØçÎúÐË“¼Гü‡á$IÇ#UzÉænÔ 4ºÝ5ši{f¦â†Jòùü 5òOUÿ}rc9Žotw\u˜©ŽtwøBÂÜÔí®îîîy~&jÒ§BhpÀ= `íÓ‰XL«÷fôvE†³²}rÔžÍR….M‰úCÜb K³„ÏvB錕ƒ¼ +0Õö–€|`@½½S+‡x"à,ÕùTùg1èÇÒÛv–/ölCù'µf©þfy!PeVaõ‡6¾hðsƒ J~+8œíqê+Çáå¿„êŸG ˜†¡쓲t”à”æôÀ4÷8e@x ŸaÕcÇn‹ …?,)"{1‡ â>"n¹û:HU‰–-€¢vI¯'€/ˆÆ~ÆÞk·Of²½Ý>åøE9(ÓƒÈod¿¿øvÆóÿ´è,ÝPq4I§»ý_ûoé6ðózƒL÷ØmÓÛ)O¨¹Á ÕþÕ{…ÀÌ€è“Ȫg¥á¬KŠú?YǶt©NøòrŸý ‹`|âVÀÐ΢ñ¯° ³*lâÅ¿È(C  ë:ý_Üÿ€Î9l°”GûFîÁÀð¬«3Õš·³àÔ… Už B(·Wo¯7ÃÄÈP‹:•¯T¿QýÆÕ¿hh¨º`_óü‚€Á_b]úp86ȨO°¿0‚¼Àòä[Ö•ô,¿a…¸„пkððˆ]´.ÈÏRí5KÆ®ýYÐ%ÂjÄ2 FÍâåHnŒ¤±`\“þ^`e ÀX4H»¬¬%¡‡ ÜÉË1@bïBmµ@ˆ8&¸ð€‹xÀ ±KààòꀜÞçê3ú9ì|Sµœ·‡z€ŒÍž‘vI:Ôáðx*@sî +÷4•ïš|M~æ†ðû_Ï@Eþ±b3õ ç»Q"°©#âžÉ×Ô¸kܡޒ’Ÿ5„®FÀ˜f`cÿà|Wèz:qÛ€M«µôŠ kZã,`2딂SjÜÏ”“ƒ™ÞÑl`Ö)eí™°¾5œ’Û,LF¹ã +€Á?_+bÿñ^yêøToP7ÜÊÛ~ÿsô'ÿ¨Ïf³XÉÃü?ÆûÕ< ŒüyØø¾@z„ +ß…#—ù 7n‹ÿ˜,©[œ ’W@wúð€ 5À×ÒWõA€/ý7p ¢ +}P²ÚP’Ò…ß +· 0PÛºŸIÕ-°TÀíÌ(JT˜*«Ú$ÈV¼m**Ó3î +@â‡w­»,Û{ƒ½Ñ¶¶ãÑÿŸ½÷ i,Ï÷Eû!0XMwcq‘IÖC–LbZÓ¬P4éö!¸­°ÌʃXP¶}ªqÅžÄ +¬R –ŠZ>ô}Y‚V|¹›À6ñuú<4]Åp¼ñåÞ€ÜØõrì{f×À½ßÏ÷·bõÌÙUçž35½9{\Æ$Æÿçûù~¿Ÿ?…y#¿ñÀÄf$‚§´N§·Ðä‹W>±xë°¢¨ûŠªÀø¯ÿ ¶žvWÌó‚èýq–Hrÿ?:„ 0ªÿXN$²`ÁžòÇ#Cã-W¹ÿÿý‚µÛþaØ¡Ug XüG‘dkEÀŸˆúhøÓá(·ðÑ0üì<×ð? ü‹$~Ôÿa×@¿‹ÇÿÀcqÆÒíAÀû.Ä!Ú€Ú¼L² Ѐ°Kl`aèŠýú›ØØ$Ýenåü…àÊ ê½)Kú²[€çø¹°E«³ðqçÿ”ŸÅgà¿Åm;^<¿øŸð!Œé¨å¿p‡ŠÌXXè]ð–úÏúæÎâ™ðÚ ð_˜ØNÀWFÀðÚûÿÍi6^,òsz¹€Ÿ5VÅ… !œ(g/–ß5` ¥ýµ®¬P×8€ˆÆ_b_’tE’”d2‘ür_ÓëÉd&ãŸ:hArÄ©íµóåŸJvÓP×oÏÚ|‡íGŽõö¡ÌQ*G-¿£ÝrÄ3p*ú +ësç]géîï +qÐÿ˜ÐŽ'AT#°l8†®B²žÎÊ ¬¬¢¦ÓÖï½%膡˜¦tœ•ä“ÿ>ÿ_0ÿ ögù„Dìx€5Lû©ÅβÝÈÿ5Õb¶? jZ³°÷gùvˆY‘Ìoð}>›Tz;~nßá ˆÑ¶\驲 —F>áõ/&Àÿ 9K÷Ä'ña€-Ý[ÎŒÐmôeVxÜP—åtÔÊOBðØO9¯Ð¸ÓY%Mõ?áõ +€¹Šà[¨Šš0Ùäg³î qªqd$ŒõT5ç5jÿÙ¤¿Ù+Xº‡ÁýÎ8@Þ(ÿ?½ßoÿo—ÿÞA¬@OÚüÿ±±Øg±1HAýÛòĘè;€!ÏO¿§ì{Ô`Ðÿ†a8ÌÃùèG¬íÿèçn Xø?üxe 3= 7Ø& ö‹ A ªõã®þqÖ~Á2@*ÿ ÷ø€ØD£Ïìú/ɵµÏÿwGGc°†‹! †QW,öñ7P þ³rý\ûúî~Îÿd³›³îGÓÏ™åwa fíøÌ‹7ÖÏ…yÖóÙ÷ðý¯ x×°Pd5ú"èö~~ì-ØÜ¿½Ûv¯²'þ$ ðºü÷ªÿs1Ìe ½@ЦÈÜÖ? œ½ÀkO00Å6`zošq€àÌb@¿‚w€Wì‘L50X·kv÷÷Mê¾0ô'üж¤wu-ágâSŽAõíífë¬]ÜaÝŸÞØ~£ÿ³ëÿ[î4 =œdÚÛ7Ú¡\î¤PÍ 6ÄCƒß–¿­VO~}R¸ÉÞôÕ8T70Ph‡üßb]}ŸòþÖ«™‰¼×$Ä¢¬,JYº4Ô¬.g¶Ç|#¡ÊiyQ–ŽÓ²Æ:?®þ`åO׿½„l½áþ53 š.ó¢©Â`EÖ@ùËÂø?›®W°à!Î`Oßt6-Ê7J{»|Ÿ +ȵš~…/}Ì ¨óý@@4`å¶ûbD€|@¶¤‡Îs¹—¬4j;CÅÇ·ø„ÐgÉœDäÁCø`Í`åMš®û"\Ç틼ê¸gÓéW>Ù”,-ïþ¿%ÆUŸ8½¦¤&Æ”ôUúÀ0ÕÄѨw4p€TÕk@Q™HOLC à³÷ž=6+yáçñ–?0Óœ2ÍSÓüïþ¥Ç%ýut±ÿ_Ùõ_Q”s; h’9lrCôò±0Ìò¸¨æÇ<á!û*¹ÊÜû»„°0Žº†m®õ| #|—(éyÈ‹itgì¹î>n»±-Mp‹örñèŸÏˆU@¿àò ØÍÿ!€°+ƒ» ¢üw¾‹ ¸¨ùCàÁÆÀ3‹ýzò›Øäî$ÝïÚð}LìT,ß1!€×³‚â÷H0/z^™³Ç¼Zë)e..ìµ?.ÿ§¯zÔ‘"v{€"6¡Ÿ}#<x,‹ÌZ¶\\ +€kàŸ€€Ë‹^@¥Ç€ +`syyobsasApö–÷Š{Ó{bÇ"bõbZXf/ìÑÀ»>]ýUú¥æöÍî©djûûʾišÉµ)ðûhÞ"’:3–IfãÍPÜ1ÕŠ‡2ƒ-˜N7mÇŸ3vüc@³gÀWÛ ´èÃóq7BߎÊ߯a!:!Œ€¾Í}v’Kõ‰lú H€íÏèÁB™õRõû|Ò÷Þ÷jºax5Ôw¿âOÓä-Óò–à +ŒS@µd]ÕãKU~~Þø_…ú×ü|š?xÀó$@pj:Uþc0ÿÅ@Ï +’Tÿ±Å%vtå>þç³ܬýç·Äˆ¿Ó zAâ {´ø@Ìà €ø_ºy•O —}É÷•­túØÆô™ëX' ¨ž¥oc€zÚÊv*š,\‰Òº\ïЗ‹U„]þy,>=2‹‘¬}"²$×¼ö€WŸÜ5$É2Ô={1Û´!@HªÞZ>5³^-¤ò3ª¹IŽLð}zýv€M+o_ПNdUâ×_òÿèÆZÝ•óó•®r®à´â÷¯100‰$€É ¬€bŸÅrÔþçFʈb`îÿ PõïÇ çb@%‰ÀÔQó`ØŽ´]x2ðÑcìn}z €qu8ÊÆ¢ÜÛk„O9tBtÿã\åLJ ¹ÿ®~^þôÄÎ$ˆºxùï€{!Xósý§îþp1À“±X°{îy\ጠ\á³ÿbß`Hpx¹~¦ýK@Ï›Pñ±<ÁzÀç°õyÔóÆ€=B/z©™nÁÊù7ò“ã¢ÃžtÓlA»p{ûbâöÏ\·m  +Ì‘A›˜0p_M®«À€udXƒˆÀ½°ùò²HZ †™Î˜ hï[¦+{Ç#7Œ€ï ®ÛY¯ Ø&@ìà÷›Œ Š©ûº#Õ±õ_ÃÿÊ}ÇA+G4Èúkû_¸ôæ‚(@ƒëëëIƒS…B¡šs´èƒãƒñÐÉ·¹Üúɯ?«~'€OîÞ ½±>£j•Ço9D"oä©Zþ)K®YVÖ:–-¥!Š?<ÿK^ó«n™’íUÛûïƒ Èþç°†ì¶~À©¦6jY®¦Y@YÖjô–=“ÏféÒ×±]ý*¾—³¶‚³}…àO(690m{\ÙŠ nÛ5˜J·M¡6¾îæÁÅ%5óhå È 3¦9S°Îü.úN ’°î#$QÉÖÀÀƒ²˜uTã C 6€2WoDûEØÛ·áeke±Y©²©ª9AwP{ïC곜òùš1£å ©Bj^5#¾ôDäóYñÌÆOfø$>Î*|€•”Fé/9¨s²uw…*ÿþùþ¹ß® ü'ÖB8*†¹1ªÿc9ôû±0@lÄã*¸þpÀ¨üö€gðQD¯è|Â’?,zHàDíÿðãOØè£Ç½ô@ûžØðn@ì °þpa0àb%óèÍqˆþñÀp ëÚ?W~Je ÀÀa p¸‹ Àd0F§Ñ0ÄÿQ‚Þhô©'ûfŒêÿw̸ÎþËÀ pûÒ²Äô™ îý{Ø4Ya .úÿcn‘éç@›‚ àxô¼¥Í'U%äà›þ™ºYhèéU×€ÿj `V:[¸¹¹9½‰ð)‘½(Â&!ܳS€X(è‘M/<º( +G†w€Wé´Ìñ]­Ë®i¦¢@õ/)IxÀÓ%½I÷ÉçÊ"õüñAªû „л·Ú­³¶Íûk#ñ§}h/Úí3¨"¬¯çN’M*ê'¹BîÛB B=Jæ$WN­¯gNœ}wKPýUC"WyBgíQ§s$ŸIƽÎ=€ž9Ô×§9 °Â>X°ÆWGØ}œœ‘€¨ù „§¬ã;æPbúÛÈj–¯.Á n¦ëº„ ÄO°ô¥;³BB2KåYIGô.”iYV¼Þ¼Qúþî]¸|R2f¦žši˜Ò„Û‘}îý®Íê|>¯©¥Ô¾fª^U…0 „Ú÷ÍŸqÃ[Ç™ÿ"€ý}uN]ùI¯XØÚ5»ŠòãþÊš²Fõ-‡PrÁ±±‘QBc üÀbR@rúQýyûÇ5n—ÿ®Â®a×/òyDåÌþ1l˜úϵÿÖ§?}<ðX81=@Ø}è1„ý¯xð~öö TöÇûÇ?â!@™nø ì}z/ú¬±àn ¾æ_[£âHý?¾·o‚“±ÝXø©'öx xõü§!cß#X3;×ϵïàß R9¦ÿìÃØßç Çíþ7Ls_æ å¢L//‡fŸ/;ìÕ¿ÃÁÝ?ÎlGqéš8F 7F¬x«‘øßZõ¤ÐKH?Ÿm( %7Y¸‡W‘½´¼·gZŠ{•y¹8]\`v.ŠÈ~gU$YêB°Ÿ8kj_“8 _ñÏù± º‘æ•)w´âífËÑrÄ ZpPs{Û÷ ç_Žôà„àx.5ºîÇû[cë¹#êùôÎx<>˜YÏ}Ÿ#p°^p~r—@@ß͇‚ÈÆÂí\¡:¹žŒÇ ÷K%¯¦xUÔ²ESÖ¹¶ôÆ¿¿/‚~¨ö7”¬)Ylo¤sØßƒy¯÷8ÿ}À0@Äÿ²ùA^Ô,*ûL "mišžå¼_Ü&:q†ñ"í§"¤õn^ü§Å€Y}Tá}ì$îpÙ¹¬ø„D +§ü²g°˜ÿ ’gG¸½`6Kx Cõž%t²LÞK ¡F?k¥ë–LPÙiKËVèýÇõŽO–d ‹Y¡…:±Bg¯Òd%‘H¨"²i€PQ*ap÷ÿ½ë,-©‰RJ5µÅ‰YDÉŸ™÷æUUMõÍ+º9oóª)À +`Ö÷†ñ/Bga{Ðy— ðüœixç¦túKý'U`lÕí®œï¯ïÿHÒ€(“&“Ì(#€GçFrŸä˜ó”c ¸ãr}áºãê/s×dö*Àá^Õ·)ýö¡Þ3 ð1•ùǨÿ·èf°° ` :L7 ¿޲«ÿÀ•Ù@Ïw€•ýãã< Ï[†”ßåz#x½ç¢úœd @ °Kåw+€`,F¥Á§á0Ý—€ìM‚࿦¼?@ÿ ?akÛq‹ÿÅó¿cÛ¢ËÓ ,ìÝv?w8z&@{W@ÐE0kÖ1@_ËÀ6ºžØàâ >±¸)FË ›ÓÜÿOïÀI.÷–ìØc:],0 ðŸð';ôMê*‰µ®t*wU¥»B€ "'ü‰ÉÉ}”³L&y*Ž ÀÂjóÀqÐZˆ?„Š/Ôåžú|®×Þx8¸}v7 v|}”ÊøÁgƒ™LªPÈ% ´2qÇ`æä[g!7¹~tô¿QWúÉ'¿ë=CÇÜhM¦Ö3™L<™¢úŸ2 #aÌP­Këš,g#Ô© £ÿ½ƒŠ¿×h¨ðê‘d0õdÎùm|ÀAúŸŸÖ½;x‰5€Ó™¬×T‹)ý,ôçJͶ¶?3ÖøvÏjà,W”x:>βÓ"úà@Xôèx —ˆêàÎаÀOpú8k R¯Cð(#'È2+Ç®ù˜' ë‘,‹êKÕK[¿b·ûôxfš€–ð&û*½_–÷©ìs Lœ%Ã(J}eÂEƒlª¦7eÎÏKŠ©Öc¦PPù}@àtñføIÄ’ó-bH”V±]ŠüR€WœgÑ]¡Âùÿ•ÿ5…'!@pŒšÿÉsç†>) ¨TüáXê°Ü/„€.FQÐö£l<̺@îão ?z¶9è1ª?€Çñ¬ÿ˜û÷â1䀟DÙSp€%e×@OHoŽó @ÿ!ÍO€{Qªþ®€ èÝÀÿŽþ~r,6²á »ž¢ú‡ŸF£Ï¢žØ¯Y¸;‰Ü ýk +Àû³‡°£å´½–ûâ* €Åà¶°ÚcÒl|›Ç³ÂåòÚ øÏ6œ ¢QV:P°@¸cô/Úÿ……½žÈ¥y¡¸ÇdL`1ö€ÀƒØIsÝ•»Š¢Ðs¦´¿%ÀiW[ó¯˜JB¡'ïnW3gf¨‰tÄyí¿ºÚŒ·S­A‡#DEL¿¦M£û¦½ø§lèÓl'3ëëIˆÎ2IjöËë„%ÎâzÈ µþ7 ëëùüQéî'(Lƒ² @ ˆÁ£$Ý-~”ÿÞëÍÏçõ„×k$`öƒ½œ¶ùË~BTÿ©’K¦.q¨^mQ«5æ°À¶þÍ?€TþNÀK?,Õ¨Ó‡ýJp–:m+ë«#öWxñAÏÇɽbÖÏô~Ðø*¾—ìòÇú¾ +îç㦿R,ñ1BÁ1B&pÁ ËÿË ž¤³¤€Jx¼ÿÞŠ€óÓhï1ý¯ /’yü»«I5ÕôQ}¶4ÀZUgŠiÑ…¥F*˜PG¯é–<á‹HHP4JôC.è«æó©jòSÎÒÔØZJ«%4§³0¯¨ÚVÊYðÎh«>ß&ëßð—Ø×¤2ëKûDœñÛþÄ"«6Ç$òK±;²Aýïbø€úcŸÚ%¹–cߟr ›€2Ì=wD,/Õ ÀOæ9ãªÍPôc±?l3¢àG€Ñ÷Gq +`”  + ûÑ=éŒUQ\…°åïw•˨ûe °fð1 ¨ú¢.×½§€ápõ?àÔýÃ(Û oDyð”îûxÀå‰Åè¿þ<À@`M¹Ž¼ïá€ÄÚæ ~¯ýÜýÕ• +ÐVþ‹îßž0 €ó‘|âYðòâZðg€w"6€8{ÂL,l²íý3àIËòžÚIÀp^Xxt1",ð.P±'ÔäwM¥ÛeЕåý@ $Ä›ûJ-È'“™ÁÐ`«M/- qŽòk7o4·m 7í="à ýoÏ`€àLòèÛ V&³~”;‰ƒ;×}Îj¡”¢ÆôHÔúBÌ*pعÑneÖófÔ ÛDM^d*À|BÅ ¶0Ù7¨n©ŠeYº,éºnÂNŸ.uMPÿÌsýg¾¿­ÿp«V[$Ðaþ“:Y¸ýƒ±Ë¶à’Ï­½­ôGTižúWÄΛ|tò,ݳ€;lCØþÀ€g¬&àmBQê}Èþ«w|ÜûóŽ nO„>ñ˜*¿®g ×;P(¦e]“kº‰«iUßRõl$kJét„¾‡‹~ذσ^Ó0"ðMHjž~Z¥û%Ž^îóÎj>ŸHŒ–ìYºšÊkÞ”vät¦ u)¯æ3ΙBJYŒø"›ìhòæOÕ‰@'ís¿kð\xñ‰ã—©ÿLÿPñWÎ÷íê?·¶vŽY9x~ÔÉu¸åŒ¢ÿŸÌ ñ †%ÀP¸Ÿšÿ/\¬ „ ü†þ0Oз°7€MëÇ\åçÿ}Šk·PÿÙ%PÐýl #†[Ã/¼fCÿ¨Ðþ¹Ä. :0@0`|®@ã.Ž vÿÅS”0’lçw1˜Ü¥ïk76ÛØØ ÷zžFy 4€c“ßLÆv sç×.×à=(è,IÃÜ™ê£øÜê¿…^þŸmè@ÀÂ2€‰iðÚ9.íòòzð§Aèùú„À÷ÿ›= òXVÉ<ÛliOx2ðZf`açbšÙ˜ï¢È&øÿ+š)umß<íÎ'“~Å45)r*w÷µý¤:Iõ¿u ›÷µ¨~O-´AĘŸžòŸƒ·všÛÓb*Ð̬çÖ«ÕA­“T®Pø5=@›Å1˜É9ËåBµ$’€ú¾ÿ~]>[õ°ŒŸ“¨Ç?2Ï•=9‚O”r .Ø™€ Â¸/˜$X© —¨þÙn@¨0Oa€‚ÅÄéŠ%g+uÙRŽ—T]¯×1Éjò¼­¶r#5€Ë$_:b©‰„ª€ï)y¯wÆ›*a P2T3|*¥(PþªjÌ{Λ©yµQ¨i £Úçõ3 Í)æ½?ÖÙ[cð.?ó¹ÀÜ¿®ÿ"€ëפþeµmŸÎà–›T L&‚ëccc±:úx‚À¡2‹=t€ëއ§=>Û ×0ù èØíç¯ÿ1øHX‚8À»BtGöŽ>FQ¦^ÐK”ð ¹ìíÿøÀg q4ÿQ$² 0îq êÿÆ([øç„ `rw2ÜAýSýúŒ]ƒ=#,´)€µ•kp ÞÇe§Èug™ÛÐç³_‰ý¿Ã¶ýuô"…€Y€=(€î‹ë4 ?…6ðògIhÿ7—Ù +†?ø¢ùßòŠŒâ´ÍxÍ¿•Gnhß%¸¤"'G²&Œ‘ß=•%ê—üPîKÐèJ"‘<tL­N!ü'„]À`|Ð@ˆ•ë&'ÃûçCž´©~7¡ ØÞ.N­çR…¾Bh{»=xâ§bNL¤#2 +¾í`Š>Ÿ º1ðy€+‚øKÔdÓçÃøÿGž¬€°ð’Éx` €XntŒ^é44ôY.Væ?Ïy†<,ÿ§R|‡js¹ÇÏ`ö§³! gûE™âé‡þ ý·ÇìÄÿcAx†}À‹p^ð4€`á ˆ¼eç€ ä:Ì1,@À½§÷ŒÄ‚Á@’¾- `„ýþdêxåŸN®gѧìãr€' Ìu;×Oµ×ཬö¦…åÏ ŽGÏ_Õ3°¥ÿ·Åøßžÿ '`aTËíòÚ ðϨþ¶  pÐ&PÓ2ã§é½½7 +NØ[è¹àP D9¹'ïöìÔÓ€rWéÊXÿË]T#æôý4"­%WÀ”k“Éäd|ªI‡#”Édb0Õf ÀvqûuÏþ§ÇØÙi²8 I ÚWHµ¨¢;ÖËë™õŒƒýšM‡#Cõ¦söQ÷ÿ9û 2†8³%¡Áäíx<á_DùW5Ë€PžÚJd©­Õ÷Ñÿ7ØpKÁ”œ¾`SÎkèh`úOæÙ øï"°±´ô÷5žÈìûÏVÀY^d©3mº¯Ã¾4§³ ô…½?O +ø5æŸîõ +>4Ç<ÊqwÒöÊK ê¼1¦Âè’Qhü;LäL¡lÚV&t*–žÅ¦ÓñÙ5=ÝÒ ¨*ÒÒ à'¢®¤#1o ªýý¨"è55A¨IȪ7u·¯dó†7†Æ ÊŸ+)š7Ew‘LBUoŠúþTÕ»o% ÎTb +i²9!l€…`úÿY!wgÿòA@<@É4/ÀÇÿ­tÏ»Lÿ;ßg08\c`Ü8‡Ì\úsž<Ëa06'€^€Àô€öw‡I€Œ`× ký]öðOønÁÚ~øü:ü©>†€*ô)º~– >Ž.xqë‡ú `üíwÙ†ƒ.”Qúûé‚®”¸¢¼@í¿ކ7¾ '60p7€ùÿh,Hµ~#ìñÐýÁˆ‚ðÍä7AØJØ]3ÿùúÙö¼ ÀLþöŠEaCó•ûùBË®÷b丢«qšý&öÚÐGaÕ}q½ø9¸°Åf—¶Ñœm€ä @áö‡%0Ävy=€E4  ° +`$Àw=]ú^Rõ§š¯íÓ)ÁÖ©])’îî[¦‰Èþ5óT¦;(K¹Lü Ùœ¢†KûV÷ñV(4ÕlRo¢Ê7wz]{ûÃ6 lw@0n4“¹B_õ¤ :`®0z4é pà8 0•töõU¿=‚ð“Oî~ò››ñ–#HƒÉ|S~ï<õø ÿ^üqVÓkÞ8@UUEzþô±6¯êR (À²Sÿ< vÿƒôŸçÿ0 „íbÿ`¿—† Ÿœ5 äc²~oÇÏ5¹.\}naéO7Õ¹¨wxÐ*íÃCù„éï%0÷9&È'¸‚ÂïGèÄ€ÞùR„ÿ ,@·kš%ÑWA_šB G3-ˆ„=€ºHØCS¥l= ë¸$Œ­ôVMÓçó*R“t‰ô™%,iúuªØ¥¨ì™ ª‰üLÊ›*Ìëf"¿”´dÍYʃ&ØwßPT=Q˜QMi3²)oÊd›¸ß½Ü¡·û~ @%BhþÿÊŠBàüûÿ¹½Pà:í Œ@°†ÀÕþC,vw1ø2y~zÏ}òÔõžkb1D€}ùúéö¼— ºNÖ¤cö¼º¸ø*Ž·{WYÀ·yN½ç¸ýÆ2ç¤\M®Þ€çÿv lNlL,Oì-ob†Â4€eÑÿãg/Æ0b#Üì\;;Ü€¶#¹~r”»‰˜ßgùÛ4ަƒiaꨯ/—;:rÞuò ¯0ºÁŽB°À ¹þp2e¤î߿ソ´Ee^–ìúUUS?¸o—6h,ê¨Ñ@zCå, UÒÐøs¥··ª`À@Ó-¾¿Âã<^¸³ì³]ý+Âã/kgT„pGk®õ¸Îg‘ñSa~<ÖõŽp4‚ºõ½€˜¢_Šo}ÒVVÆëYÝÒMŒ0²iôÿ„S²YU“1[x‰Ï«/©[ZVn¨²/­«JÚ2#èùµš)ËlÈÒ—–u¨újºE͸žh`@ýþŠiäK¥T©êUMù„®(Øþç }¥ÒÒQÁÙWòš¢ƒLH›¾Y66¿øSÀFçï0Oé…¹€å øÿQý_éòøÿ|E¡ê¿6·»Fõnn-€ Ì€““tbÀ#€¡ÜÈØPn ¡À‚í.Æð[”G_0ÅÛ.¬ì‡íŸ(Èy ø)Ádÿ! øß€°˜x ü½@å½Åfþ·¨üCÀü>ÛcÀeOP÷vP÷v Ø9.¶÷u=@€½˜0·»`Ü ‡7žx°Øð° pÔcS¿aÀn`_þ/×϶×à/?P~–íŠC€€û+¨—m€önãbV®WÓËœÌ>×€· €ž[¬OØLlú–—mû?/–§ÅèÅÁV¼Z±¹—ÓÅ"gO° pÚAw{ûçûC=ýRî‚$.G$KÙW´®2·ÿ¿®²bv%S1•}XÃFd»j5''ƒÔ¼KSˡҀŠÔß±` Òå‡(àtV$pv£}°žú6W¨bPì«æN2¡V«Õl¶ÍVõnß·ëë÷©ôÿæwwïÞt:Ç ¸Ñ+G<9::˜M”À„1 ÕªcYWTëê*LJ ¨¬{ççU tyª}ºº¥Ë5êô­@íg›ù÷ ñƒ ÆZèÍ©í÷¥ëBÑ'§³,3¢}±†ï0Q°Þ×p1óçs6í·›÷W¾zOÃÇ‘öäß–ÿÃ×÷*/¨ó3B`…ɾ¬¬ÉYX&AS—$K6 @Ú`Éu!Yë€ýL}^]Ì›[ʕĢªšl``IøµeÒ>žDç™AŠDM2U•äEI9Kß; I«%Ôt)UÊå)oÊ 2€wŠ>N¥3‰þP""è”Wþ40ËIgÐ1¾ ŒKy³KŸí¯ùïóSXv¥kbÿOõ_9ÿQH ÌbàD€ä&GÇ脃ºÿØØÇCcCŸ å`ìsø;¨½¨ÂÌÍX€]yú¹ùç²Ü?ðB°8à‡Ï1¸Åª@8þ€ò÷Œ—à` á`È€@Ôýý pÀ'ÿŠ€ aDl3ü8‚ù’¿7Ôêÿ©µÿ& býc + ¶Ñè PFbßÄÆ‚1ºÏn0¸{mp ÞÇaÿ‰…é :ƒú"6àþÿê$æÜ¡ÚQ@\þí À5 WþžxÉÍ!«7}Nö‚€Ù{aoú¶@§bf±Œð_Öd.ïð€Àôò;6ˆ™p`€ªPÍ×ÌÈ)d +=[S…8OÎHËÔª·BƒÍâ냌cV€-LZ-Žh²æ¯ýáYOhÛßh +€öÁQ¡Z(Ú;0¾Y8ZÏ :B!‡cp°íÈäúúRGGÎ߀³¯/söáv‘— ,â£#cñ@>¿tÿþ}Þ†BÀ{ßK½¼>@`ùÿ°Û?oÃ,>Y×j:â·,UPý@ûg Àƒ%Û +¨\«iìû‹ØÈðêh«¹|¿ê1þ¹ƒÇ«|wûLÙg¿ –õ×yÈÿ@ûìI Ø:¿#0¨ˆOàBžXºÅ ’Uôl„zyªåüg1ÏÏfÓ–¢§-UU,¥Agæ1Ž®™ÊÖ£f.ª |´M-à4ÿ D"²¥iš¤Í”¼F^5¹¯'`¤ª°_>ZÊçS)ÕÐ"²·p”*yÕ„³Zp~¯LIr„`Ʀ ¶HÄÇ16À g`6H¢7rÿô–cu_¡¿¦.¿þu×ÿô5¢ÿ7WÎWöÏ‚û¢DöÎüâ8\ãH@Ðxý?FÝ?UþÜÇCCté··î.DpÊDù æÙ•¡@ˆípõœù¸Å„>–Ð$VÞ~Ì£îû£T’q#Þ Ê ? Ú\$zîpïѧ…î¤ð4ìbÕÿ€Ÿûÿ]¨‡»ÁÑà$€>kxh#ÛÅvy°Øyýl{ ÞÏ`õf‚P]¹½sñú+/àþÓÛì-|µ`Û,‹,@pÙ-Ý-æÝ×àÊ=²—ÐyäŸ×4tvð27üÓW抑´Ð; ÿƒ-Sqº= +`Ç»)ºè›¨ßW•}½‹ª,"@1WOÍnb&ѵ$&À­VÈÑ,ÆØ¸5 +*hÛf?ÛàúÙìDpÿ^l‡pÛôíª³\¨æØ5øÄYX‡¦z 2)g_ªpÿn_ßo~×GçŸ÷=3ºžœ1î—œ÷ï{A]3x@uŒÎ?@-·,«QÛj¨Z£1OÕ28]ÛÒt]U·4I8ÿ?#{`ï„ P­±ï/›è¡#‡]³! àA¾-ÚGËÊ/‹€`äôt¨c‡W? +>ÏöY6FÀKhøÒòKüµ êßOna€-Ü_Õåt//´€ŸŒÂ¬é?ýã´ÏR5]~y X¢mÉYªý[ºÚ0T=U4ESççç·eeMµ9mjTþév-=ëÀ`%"AAaz1ÖOh:v¥æóGNçŒ +Je-a(’DxpQž˜}.8xÖ7ËnG¾ýÕþÔy‹£· +s J½ :,+ÀaÅ`ÿüÜ~ŽAhs|ây¹H<ô'Qÿ©ü2 €PÀǹ±ÏbŸÙLÀ2VPô—QëQú‡Çy0ÌešÐä€ýÃv€Ýóʦ?‡…÷ÿ-®ô(þ/Ћcðbûÿô¾§..í€_Dñ9<ôéïx¨þ`F‚ÐÿGŸÞÀ:ûØhPôÿ‡s9»ï&1†ŸxúäÉSL +˜6àñÄplÄv‘ø]0°t ÞÇ€)g€¸æxô\ÄÏÒ«;€ÛpvÜÆõž ᬬÌòáõàg € Û‰ób¯L`´ +@æPL_Éÿí€%A L0Í:Ž*N 2Àw€‹Ê«t$éRÛtJm?õiØhÝî)=•®¬(§ÈT‰ý„ÿ€‹~îÿã-G©€R+C üÄ£×ÓÈû¹±³=ÁA€ÍÛ¬À¿Ùlÿgz«xºîì»Y(¬c2Ð:*RG'™ÁP;w4­õ\Ÿ3çüü.òi±ø –ÿŒ`<š $“^L0ê70òÞÿëÿûó†ªg©¹ÝZ2[[óÞÆÜU®ÿÞÉ"?áÿÛÀÜ_8ÿsçßø{k5ÝBܳûÿ‡àcÁ¾¯×Eã.¼ýÜßK €?B‚ǤÞ¤}¬ ¨à¢úì/pωÂt¯ú¬ÈrsL°ûÅÆ¡Ç Üfæ YA=mÏ@·€‘ *ºb" Õ•¬¥.©ŠÖPHFlx-ek~ËT0ü³dÅ`ë`ÓÒ,SõPÖà œN›–déyçÝRÊ«jØ-H²f¤œôfž ¦k3yU»ÿ¹ÓÈù#ãèóï U’– ÃXšZ5ª)Iö`–ë¿Ò†YxÐ?¹/ßb0Ï®Í+Ý¿âúLl5@PΡ=Äuáć(þœ°vÈL&ÈÅ>¦òû /~Qö øöGAûÃÔŸÞ@Rïð¸Køƒÿ‡¹ÀÀxñ<ìñkG +ÇX°pxàY¯ñ‡Àð­n ¼@M'àä~ÂôR€;°!†!ÝæºJàõÿ±'±àî(€‰µ9*þ¨þ»àîn0 Ò;©õcæÔ`¦Æ¾:Áɹµk#ÀkðŽÍéåM¶b'€ÇíÙ‹¯ȡᚴÇÇíÛà,0e ¬ Ê.xϯŸÛ6€bàf>8öÿìêäòæ?îM,,L ößæ ÀmÛbÑ^p H„ °ˆ À»|ê¤_‚/&Kœkv5BÊþ>Ayœm€•D ï?˜’¨ô#°íÌÄ[œèhÑÛ«f_¿f0±³³ý&“Lÿ1ðàÛr¡àt¶ŠôÎÁB.•£úO  ÊUûR9çݾÒMgßçws·¯ú'²…@;>9šû%%ïü÷^1P^o ÃÿyêŒÕEm‘zý†”*ÿ業-]U_Ýå|ÀZMHÿ¨è£ð/aP£Cgwݬß¡*cü- Å;[Íϼ}zv öA€@Z÷Q+ïã¶¥þÁ<àñ[ìÕ°c°ÿ*hG+ÀŠˆ¨gMü#C3Õu^g€ É6ÿð +–ÀØ2u‹Ê½•®G4¯¡üÝ–²Ø GÞ[³,yÑoY*³;aîë“e]³$xù«^CSû}NøÿéJ-¡nÕÞüLÞ«Î:=0Aˆ*^5•ÂE^15•~àS©¦µ-EÂÐ߇ìs°;³>_Ä6ôx{"05ÿB°òW£^ Ò +³{nréçÏ&Ñå@Påý‚pnoàœ™œÌ ûûìãÏF¨øÓiäãòÐVÞQ#Žýÿ8oüQ•˰æåëX ð9¸y¼ Àš]=»ß†Ï„Ý„‚/0xvK(ÿ]b!À­ýÀo<_x˜€Þ¤@È¢rNýØsoãËX€èÛ™››ãúO0à»™!€¯c#Tý¹ø€hÐc±Xì»C@€Ý¹ýk kð^VË ÓÔÎs×Iõ'äv…PZä_),v.🭮}þ¤ú?¿´s€.¹Ü ANœXØ,þãò‡Øä¿éžÏòm¼-¬¦'Š Š ³p|èÔ±Žtå.IÒÖ4€:$lLÄì'F©þ¯FZØØC \€â­)Gó!€&s_¿¥¿ÉÞ4‹Ìhfú +ßú + ðõˤÖ×OÖ>˜à©Âz®z´þÛ¾*aêÿ×ç„X©øÐ­x~4Ùr$ó¥û"ö¯ä5¨Ny½Ü÷6þËÒU…J¡f4¸ÑW1¯1ëKÓìÔ?*ü:µþKWCÿ¥^&ðÊ É>j±úO³f/˺ǖ̋yô·üA³ËËýôq¶ÎØÀW§û%Ëó9ìO†g {ÒuzoªäLå«©¼©«æŠJu_V©ïŠäƒÝ?¿ÂfX¬HÞ‘ +€Ùƒ•ÿKÐÿ°@å?çâŠY€¹2eþH5ÿœû~{ üHñ$Ãääúdft €±¡±úÿϾ€ÊýPY0ð‡9Š·ŸEyš_\êAýi="©@/òcÀè­á·nñ€Þ~}!Œ€© £ø{ðÑ<p ¸†<Ìùó`ðÏ£¡ ` ಋº'Ì €»,\ ðö÷Wt·ÿž{ +Oİ +ÇÆ¾Aý稠É`@ë\«®ÀûXL‹(¡BÛs¸Ý!<·YéVÿÝÆ:à6kùËÓlÀ4i7§_^÷ÿ½€ð‚X¸Ú>€Ó<,@Qî÷lËåé«h eþ…`ÿ?Á'·û࢞Žd©ôƒþßó_6÷MSÓ tYµM›_Á@’"‘ÿÛÑ\m…¨í?¤ò?˜ MÁ ¸Ù¦ú¿Ú>kÞdNøù¨Þ, ¤&þ¤ïfµ¯/ƒÐ€öúI2™ÉdíváB™ÑBaý¨Ïé¼KÀù»»7átc{»g€AXç½÷Å +Àë5ü*uÿTØ·¨.6TÕ@;¼%ë(üteK£’©rËjª^cÊãÁƒ%{PÛ¢Âÿ¦ÿ5äfyÀ”~.ß²E´• @êÙ/™°ß"}P±0`’¿½ê¯*凚 â¡ð AéOsÂ-íçQ‚OÐ_yè/PEç'ÂM—³•¬–¶Íùë ®Ÿú}EÎJÇY™ª>„û[Š®b¨Ÿ¶Àvˆ¤Uc>‘•5#ax CµóyÄÿZY+‚(©}/ÔþËšžöE$®ÂŠA=>Ÿ/¥fòyU©å ÎRµê5#åÝJÔxG2yCI,šTY UŠÈŠI/Éàþ¹g±þG`ÒG73zß +èïK-ù¹ù×!¤%YXXHbÎ@õ_š" €%€rî_Ã_²=ü§CQ @…“B=`îctç‹òÐO¨þý̼CExØ–0'0[ìUÿ–0fuÿ­áÇœú‡žÿÅÀ­è­LûÇ@þEtØåz1Ì®¾l:è±—ütûxë  ŽÄ`ÄCÅÿžËžé‡7ÂAêø“È˜›Å7ðÝw¨þôò„map/|E±‘X,ˆˆàà$&£»sÚuð5xÇ´âÄÿm÷ìC;ž–Ý除渽€-aÞX €ðº²¸žØ€ço$›ˆÀ&ËÓ‚ȧÛL©´û‘¸ÌP ¸¼\ähÆéiÂctV|ëö²ŽóQÀ]zšïv%zž¶è:(å&h€~ÿ>½øNW#«­æêê´{!^ÀöÎëb»…À™ú³½mç"˜nÂ`Û‘ë£ú3ÉÁÌ:Ò}Cú¸‡[ƒëÎj*÷mêó»ŸÜ­öýÎY¨†Øˆ!µâ™/“”J(ÿ÷½ ¿1Oõß²½o¶†º7‚²¥PãOÍÿ¢¦ª²ŒeÃbAµ4D ÈGðª–i30KŒPýŸ…À´„1€L@¦|ÆœáMyS3 Xÿ&¼Îj©Z‚“R>¯[ªª©å Ó4pÿ¯NÂJ¨*€Y:8£Ê'™ Áš„©ÇÛÿ0m' ¿Æà³©‹ïkE8ñ7Ù¥Ï7u¾rn¯þÏíò¿v~@¸– Àa20I €…€¹¡\ì³rùcvþÂ5t§ì¹s‡s€Ëý—ú…}T}ÈõÆû]HÁœ ôÂvþ&¸ÅNÏXðâ˜ÿ/Ü¢úÏêÓ{ 6òÜ¡dpõ'4@Ý»Ë%æù.¦ÿ„ƒTÿÁÿóïs»Áïxþÿõ.•ÿX08ò$öå×|7Ü_˜ 1߈¬Àà\÷ºv]€÷²@ò¬¥+.÷ÚB€ùo)  {8nC€¦¦vX°šûMà5¸Ø²¢üCÈaö`ÏIŠ€S"f¡G ÒOå¶Ì°xÝv» ¼ƒ€õ?³Å46ýÙߟÓLm_ÇsµŸžCñ4Iýâà`jêt*4µÚ¤’â:{8ˆ€ã 9gløwvöF( @³É€¦T«qôõÔÐNND´‹íÐ`&ÔJ®÷9 …õÒ'Ÿü¦Ïùù]g_ŽýlàmÉõ8õk†×y¿4Ï2@¿ßð6Тkè¸ ¨hüõãìï·<¨-"PƒÀ_ÃÜ˪-aݿԴ?°ü·ð"Z°xvOUµÖʾ ðãvêép`E,ý}¼ µœEþ4„ÓǽõÿuŸèæëá 2E€Èûµí€˜ ãó +Çg™Xž_·Lªúô¢k Ò…¦ò÷®¤5X+ –?²¦&ö†Á8\£ú?Kõœ…HÄ‚@NS Å”†¢æç µ¤êùD +™ŒŸ{M+?£êô7°hššæ]ŒDjªv¬šÒ*«ÿ°Y î_2…/ý¤.;—otWLéT>Ee~ÿÿ6HG„—•˜[Qé_¥—Séí?(¨þçœ(åÀ¿v?L&'3ÉÉÑ_2à<à;C#Tü]C®;èþïðèŸ[ýa€èúc>E,@ÿðG=?`‘ˆH á[ÑÇÃ(î·˜ðŠÿa¨ò‡ !Àp ,¸ÿ¬íçY¿'\ö¸˜0ÒÏX`¤ìÁ8_4ÿžp,öd#øÝ õÿk [øõ¯¾Þýêÿ×1êÿÃÁ`Ø>xücOl€ï‚LŒçäëÚu ÞÇ€Ùˆ¡ÊS\pl?_± €à§£$ݶß+ºñ U¡¼¸6ê lá!Ã"¸± +@¸3ØÍ?;íñO€`YD2!*HL@,¾# ®ò&÷NšDå#0—ÐÌ®¢Ù­SuŒNšS̓Öà£Ý +aöOÝ{<4Hô<ËIg6èmxÿî€ pÖ:koߨŽ;o¾- ü…Bêd0j·›­x¨ÕºrVÎÂo>¹{·Z¸ûùçÕŒí̹Ývø“ñxÞHý{øå ,.ª†JUqkkK[Ô¨Ûߪ©zZ®Í3Ø!Ò1õZÓ{Äÿ%X`AÐÐj–.Ãl¤}u,K°ð‘ĺ~ž°9Œ~Ó\ó Äž¼";ö¿Øòó2m‚0_ɸ7›ŒºàÙGl°þ÷±  è‘Õ­tÖÌóÝDu_6uSÅÒ_YÔ•E¶LøYÙW˜9 ûˆcK5Ó2]59 óôkôP¨þ2Ü€M«5ŸÊ zÆCÝWR%Ão&Žè½ZÞH˜&ݪyD̾ÔÊæàáB„>OÈß LM«„^×ð½{Ðü”fù?7ü¢ù_]e£9µ2e®øÏÙý‡þŽWl +Ýr°¦øñÃÉ$ˆ€'cc# (—ËC`(÷ó`^@Ãevå/s4Û ô0œÀ`I¿+jçþFŸF± x<ðŒ5·ž½@÷?{Îôu …ßSÌýÑì—EÃÇãú‚ @x(<„ù¿ÇÃCÂÔßoƒÃÓ׿¯ƒ_ïRû¤ÓFðË êÿ7zõÿ^Ø6ކG6xÛMî&'ƒ£3sÙ?\¯kðÀFÓ8+.ع >¿ÇJçÀ"_Pºí¡Â +˜ +šˆV¿|Cü›ÆÏm À&b`—ªþl +€Ÿàž bÇr[+ù-f1²`º¸ív/Lßþ9+\ðœ¬ÑÓgr6@]}›T*rL­®6§­–ö­x\Z]ŽÃÅ'þΛìí/²€9 {v¡hR±…Îà ˜¹ÉMþT›ýú +'ëXþ·ÛØ(´âèýˆ¬:ûú~›Š‹âÏV‚Û&“?d€pH ÃP¨6É +$~ÊVÍÊJÙc ¨ôËÇZMåq¡úâÙ‡‹MýáÁήõtô¢Ö4z·†;‰Zíh†õþ 3ˆÐjù¼&Iù]É«&ý´ ^†ºNwM¤ŒD¿P _DÒ"°&Å?ó[½©!—A3…3ñût¨ÿ?•±ý—øU^•¨ü¯ò>€¥·úçÒï?Wør Kªþ„Ä +ÛñRöÜ +àž2÷þlÏKxÀ&@?‡ƒûß?0>,’‚™Øï €ë»g : \áð‚+ÿ ûløEÔuo¥òŽM.†Ð¢ÀbO½ Àõ §°)7 €M €Mä`xÂiÀ"iyù*aé6B–Å×N—‹Šo—¾WY±ˆtM¹;§`Œ +  : É|*ÅWW#MØö‡Zͦ£§V.Ž@|0“lo´§QþEìï ÎÿÅòÿF³øz§: Ý(îl·×ËÕ¾Bá(ƒå~ó¤/—Ì´B­³v GÆYuÞ¬Þüü“» +|î\oÁPèLd‚4pL2  + &ó ?ÈìÔç[–IÝû¢™inÑÑøk*ê?î|©¸?xý2€–XðÃ%Ðÿ€s€Žå,¢©:¢N³oÕwËB—Sú[½pWÄΊI{€T³eŽ bï€J]F)¬øl)wüX&ó€uý‚bØ©Gê{»ðJˆ™Z˜Ö1Õ¡)¿Ï¤·Ø÷OÛYQUeQÑ%$(ˆCb–A­†!ülŧÕ,)퓵Öÿr‹ºHs¿/ó”<2‰Øê@z¸ýåKÕRʨ% ŠYËà pÑ0%µajï‘3•O(j¾Tðª)„-mi€fyàƒ$6%fô¼Ý GqHïwp1V¤ËkH—+ÿªlVVQþ1Hžû×â?Ò+çTüñŠT€8B3™Ñ_³ÐÈ·ÿå;@®;wXóß?."†Ëýãeºí+\œÜ/rz°!@4@Ô5À‚?!ï£ÒÏú>„ñ@õ}}F7½à?£:¨Å¢ûSõw¡Ú£ì{L8Ša“ Gÿ|Cý€þñ`-°KÅ|÷kîÿƒ_cOÂÁ`xãË vxz/üì^˜gô@ÁØ@ì‚Gƒ3s×F€×à}ðûYž(²!0®?r%Vþvar©:4bWÍCëM*c›>;UX>¿¸¸ÆÿÌ;%®RéÉ7—}XÀ +ØŽ‘€·÷ön3ªb@<À6ÀEVL/`ð@‡ƒeÍn·+Ó¨‚ο  pSa7T§««R«¹zêh;¨dH«Žx|°µ„®ÿ €âÄök„l7wv^ïÜ€-àëÙm$5·wvZŸ +}…j!wŸV®o=w´‹ôNV'gŸÓYrÞýäó‚“@@.$ÒlÀ¦#ŸŒø“LÿO$ŒïLœ¿†×;¯ú§oÉÖ¢¦ËÔº[[j yª`I²Uã0Àš^£Š¯Õ ä@éÿPZÙc6êïp°OèóxjÏ>i_/¹§Òqƒõ'Æ>áÕÇáÁÌúã t~}Tœ™€ñ?¿'-Cä/¢„1À;ê"ýW€º3”‡ô!tKÖÂW0¿Ïj~]CÝ7 ¨‹¸X4uÍRThÐâKœDØéÈ–iqB’BŒƒ³ #H@±æ\ 4AƒZÞ›*USù£’Ó™Ò´„7áÍ›²æUµcþ¥-E=rzK7†©%S©T¾¡*Ê]1#à´ØLûÒ’&aÀ¼í_¸‹õ¼Ää½NþPAš• I«1V1 +˜2WÎQþ锋é…ý~ÜÌØã©•ÏÎö„Ú_Y·LFlL…þ¸.4‚T|uá#T©ÔåZ>>OªÏ/yÏO¥¿þŠPE=+© |i¹RO+ªÉ< îG¥ú¯(š®Q‰×Qá©ýÇ& Ò‘, êEI§CÝ¿ +: M˜Hû"iYÍ'šæMågŽJ©’³¯td(µRÞkHKUkÓ»"Kfâ{gªJÐlQSS¥BÉ›ÏkùT5u䌛«HBå§O%a ² Üo'¨Š((¾Oð×ÿˆ$›¬nˆDV#‰Çÿ+PÿçÖ’k‡kI¡8·_q¾vO²^¹ÏFrCÜ¡—þ« ö€ì4îiE‹ ”…·ïÀð=f0 `Õÿ ðñ\Ïèò…Ẋ1ÙÇnßFé§fŸN.OÌSŽ…éªÇCga^<á‘‘/7¾„ÊÚÿ¹¹µ5‡ßaýû?¾¦æÿkŸl 0~òôÙ=p_< Ä<±à†g$Få2™¹×àý€"W{¶ ].:n÷D  °Ÿ.Rá¿ÍVÀ{_Çýk/ ¨óó4€¿é€°Aø™ °tC,±i¯ÿ7ÑÖOô„€<ØÛ›æ¹ÊrOc¦e, ˆÀìÛ?g½y‰®P>ˆu¿ÖXSº+ŠyUÿ¥ÓÕ&ª?½¶Ð²OMEV3ãíåxÆÑ\Ý•ï¬ÝÜ™Øá‚Mý?FgP´·=Úår©‡¨ëŽ›Õj!Þ‚>°¸0øp0“YOÊ}¿%P½G :ؾqöá‡cP¼ÑòÇãŽä(„ü ¬¢©Ð« ¤7d™Úþ-U£–Ÿ*a €¼ò×- a@‹TôUý5@€@ü査ÿ´Hüí’Ã~8µ…Í=n­ˆ?»ÍÅÛ>ÁèÔ+Yú¬ÇB³Ï³‚:敺ˆ Ôöï%œ Ôô,xÀ’A'ˆQƒî`úïäìÖ>}õø@ä[T=Õ-EÑ©¶G²àômiº”ÍZ MÁ›iMcáál–›áë:8 |À^OÔ£óÄžàBZJ̤PÍK)¯æE +€³à=J–RyÔ $,Í0M‹ê¿“úg ¡‹7ïÓïϙʧ +©uorqubÛütÊBb›×Hþ_<öÍU)rÊ+óý!wI<ÿ§º:‹´ºÊõ_Z\Y\Q°þ§îŸë%&? +.ÀHˆÀ:¶#cŸÈ#€~¾,ƒ XïwÝ)³"À\@xsýè§²ÏL~áî÷ÔÛ€[<ëGÍgN~•wåßu•1à/‡±þáÀuþå0AL åB÷Œ…ƒ±ÑÝQjÿ×üûk7˜ÛýUþ µÿ_l<¡;Ž< n<ùúJðìé=‚žØF8 o|Ià»`l7ø+¥s]»®ÀûáØí>s‹n÷W¡=ö3;¨†ë¿Èä(»MA#atñüo|paÛ +@…õæW>@`ðúŸêýæ‚ Ä‹;PÄ,S&œóÀ±}áž}» oˆ_F`(ŸvYG…QO¸ôS·FçÜþO1À±8ÕŒCèÀ`•ª~“I€¯›Ô®ó àõìNûCH™8½³Ýn­÷U ¹õu6øÌ¥ +wNZ-Ðü`.œÉœåòoï: )çïî:ofÚgŠ€­+8pÄñ™Ô}¯Pý_4µÅZÃhÌ74ªwÔ«0’e*ð²Õ BOp@ol¡ù§*¯"!Ý?zÖЩ¢bpL7·÷Yp÷*Ôü‹I~ÝÇsúŠH󭼪窊 +_™gýl!/AÖ ò{Ò¼ö¯@ý¯×X§/_È|âÃŇðö€>Œ}ÿ I×”ÔþÈ7`(B@ÑðÀ "èþ&½›nß‚5°lÍAPGæ [#X(û2k¨ìGÒ¾YºÑÑ/›5c&åÍ©û©D-åtÞt–J¥#giÆPe-ŸO$R^]M¤ªß;KNç÷)¥–0R©Rª”+¤R©‚j.šÒÄ,G ɦj®è„0:W¶ÞoÓš’|ŠŒ©Õ®tú¾\è~ªóøƒg><üç|#iŠÊÿÁ¢ÿ0á÷Ï%¡š; ˆÚ¶ðŽÇ“Œ2œ T €j=$ŒîÜ)ó* _\ +Oàþ;.ÎÂ:`||·1`Ànÿ£Q`û »¢ÏØû/ +O^±÷‡Qû±p€ã晪ÿž^éw…G†àþÇá~°þCû¿¶¶¯¬íÏÎî~‡öÿk„û^YRñ§æÀ +?}BõßåÁ ¸1²›ýn4 öÿŸëÚu Þ `ÙaO@ر'\÷ùì6ï@ØãÍ5•dÛ + ›ø7lˆoûÒ¹™[Px°¹9½I½?ö‰eaú·LÍÿ&®²°ÂnþBxÉÆLH\ع˜}ôö @52¢N‘¨™]¨§™þw‘NOYIµº:Õæâïh‡B!ãì éŒ‡ZûEýo‰iÿ6b€š;¯o|ˆÊ¿}†÷¢‰?Xï+[8ʜݠʞÉäsŸeBp=|88˜99röçr}}Îj®Jç…kÏ„ CÑo8ò^p±˜Éû•zÿÅÚ–×Ë}¿€9?kÿjê–ªj¦¬ ñŸÎãä×4·TùÑü#‡®¿ä_”Z8üðÒ¿.zwg,öÙâ:?‘…sPöé²­ÖK‹áºHüëT²ÜúSqÎÊš”…kÒòï7P,äž‹ (–TQÈ?«KtM忬iVš•~rOï÷w²ªšº¢îƒaY*ê>¶i­yI`i]ôåtoªÔbà#àC *¤Ýÿ ÐÔÿ @>Og%UQUï‘áuzÕ¼÷È›¿ët¦¼G3G3ùR,g!¡¬­H¦2é€ÿgrZwÇ}ñÓÛh€û+bGjÒé½ý×üäK¿Äç—9çãÿU6¦Ì)aý— ¬ùÑ8'‘|迪ü?örý„LNžŒÂ 0‡å?Š=ÎÐõ—"¸Ã–@zË3Îd¸F팀~fº¢p ÆR6¿tµªûÃØøGéõ^4J­ytõd;€OÙ3 {bt>â C8‚3<ØÜ úgw2@ß¾ÿëÿ¹À¯vÌ0àë`ð;ªþì(àð“§÷ÂOïÝ{z/úcp6Fvw'Ga4§][®\€?;þ¯ÿb(Õ}Ç´=ðw,´¨à<ä~߆{ÂÈÁ<‡,óÀŽ‚ÀÏt³à¶¾¸dàËž +ð˜íÖ„ PØRY/ +±ÿ«÷zäJá»8MçÅž €ã¿Ò¬”ϧ»šbvÍUù”éZ§0RáÅÀé*o4›¡³ƒ)D9Z­©€â?PÛ¡³éýߨiŠýý6uþ„ l›qPnžø°µ~t”; ¢ ž¤Ê¹Tõó›NØ8¹Ö•à4Û-Ç?/H€ô¤ž7ü‹ªáýÀ[ƒí*˜séc ²3›Õ1ä‡ uÞr Atƒ”¥Vº&ÿQ-ÐÒM “j”5]æø^¶P}u¶ò£¾Ô|tèߣwOÓïƒK=UsI¶Ž Ùð¡»ÂL0" +-X‹`˜ûeáQ,×ÏgÁÝŸGÿua=l²€ÎY‚2¦üÔùÓ'¦{ÒÃþ¯ûë=1à79 ˆ­€m p¾ä@Oð7; —¾#…:œÇ BÚ‡?LŠTâ—7…à* ˜}€0`ÁØaÚ1û.pQAà+„c7+)°8¥¶n¥ ãß?U++ÒêÄêjqõ´åXm¶šÓ‘&ª¿Ã1% ¶Ø¨ÕæB¿óúõ+áß5¢|q +qßÎõÝtöe¶o|H×Ë7sGè?ŸµmG(ÏUONr¿ý5ÿe§ófu½Í«ÿž €³oµã‰¼Á ÿ¢Ÿê¿¹ex½Ì«ìó‚-gëlDh€Zü-Áî×#Y*µ†ni¤šüG 8ƒÁT\åc¶ÿ|(Ø¿G¶3ó`÷Ëp ýFÓ‡h?Ôz]ÓNFz /û9 Ô¶ý·ø âÓMz¬,A<¦,‚~eQàÙAB¼ û(V6û{ôóð "£™ 4J¸#/ú#pýåÝDˆ–N/V Ô?æùu ‚`çß™íˆ[|˜Õƒ ùf©WŽ`0@¬.éô-ÈZþ{§Ó›È§f ¨BE€WUµ£Té{çMgŠºÿjÁ›ŸOP _ÑÖóôi*=JdQ‘$Œ:D±¯qçââ§ù?xФ|JRhÒßã?΀z€ÿjÑýOM),ÿK’ÀdbÍ?wx8Áü!«V%h—VQÅ[ìÈIà KÐ\çI?¿›xŠ…uƒF2_ +“!á„ÙÃkâ–YÒ4ÙÔµÂvütK2x¿Á”_ʼÞeã?K7, ;á°¢£`©*‘ N,Mð/ÎØÐ_…hÐRùG°”p« ”è}5CµtYw¨¼ÏåbšiÊ’IïXÌ9Šš–s-ö Ž[®"6cš2'Yú?-gc • ´ä i|'ùõ(âÝ"Ûûí¿nhð/Õ1}þ¿äÿ<¬È`øÄ AÞÿC÷?B莠ÿOÙ[‡ðBBýWýC¨Z¥+¡¦âL€ËY–þ±%àÍÅé›7éâ:ÓÕ¿½ « Ø ð +€9°N7yðSqþ)¡öOÙ…÷аûû4ÀþæêwG¸ÿM9ïL-^YD¥OèïÄÔßyuDXøã^'Â'žðîvÆöR\ú£ý¿“z¾ó8µ³óxl‚àðÃ"çcªóL±Šÿ©_Âè§ì!üJÿžKŒ"•¹È¼ o4V¿¸téßÚ¸ç‹rc]€Äè½É~{°sø’MX(bk8@ÐöîȹðÇæ_Ûÿgk4Ø9€Ü@ý?Ú>1n"JÄ–|>xûGúqÎ Ó¿{bïÏÖˆT¡€à~Äξççk·ûõ’zz*c@‹++§ªA€z\Vƒ+’‰0€j•¿FÀßn×jTåûÔ*„ÖÁáaØÖ†ò5Ñ °ÖF¦À<¨ Õ8 +˜ ü ½±Ñ·œFg`h2ý[„ Ñ‹N¶¢õáÉÉáéÙôÆâ²ãÖììo—³/Bõü–#Ôà( *@$#âx·ðaÑã™ólMÓ¬T\Ìé†Ä¥uæP~yüCû£1` +†ºAhjH@dÁ,ìfòìÁà ôb'ðÜÒˆ‹Î:k÷²Wyß>c˜°érö!zö\Ûg2øìä£H)°ddùÊXDuÃP­-^Ï_M¾Fã{†TÍëþ%$ýY3™Ñ9 €ÞÚD°Aÿ\4ú‰$Ðéä&Ê&¢… ŽP‰t¸Ù‹—þ›³…4KTn€ã)¬•£_( o£jŠ*§ŠJ8§è…B®èÈÅ\ +4Š¥\ÎË9\¹ð?9f /·nÅŠð Ø'z ïçˆ*ÌéZ.›exÊ ¹Mü;F¿ýö]*@ªýÑ HüËZ}Ë ŽÝ€$ÚÿžPxêÿ=°€uŽÎÛ ¬ïQ½úCh=Ä4 „ßnâ¡ü€ÒÏng1˜ÎúÁ¦¹ø·Û{sñ'Ó7¹úg+ Šù?/^½j§÷p¦_G÷ç*‘¿ù鑿C̽€Å;èüSýοщ¤þ#LõA œ ó?œÊÿ±ÔþSë;ÿÓãÐ>œˆ3þ?p" Á§;S~ ðË)çÇþ‡¡$túçS¤2˜AÞhþ¿Ì\ºôòÒ“ÿ¾€ ùOmøïz°@¤½ú=‘ðˆKîÑFKÈ~<3àæ¹Q{ÏÍÿ9úvߣyÔÙ䪨ÿÑxõEé´M  ^Ïo×·óõ(NÀE;uáK‘€Vܸ1ÚL¼»€ö×î䩉`éôô4¬`ìºr*þ›T#­¬¬TƒÁ`5_öµÕr¹vP'* õFð_;N÷KÑmt&¹Ðn'¶·¶·£ìCõ­v~ˆGüõ-ê‘tdc?„ˆ€“zz:M÷×óÄjô”ôâl:¶èèûÄñ_cËG,ĺAÛVW‘)Päâ1ü€°gnnNÚ¨ÀoZʘçòDžp»þèóK²±ð{!úÇÿš¾Â;P¾£©­Ë$§ +%í-ÿÕ$ÖX¸'[ìÀò>– +ÐûÂ|1?ú&ºn`:‚aÚª@ôdØ›FFÒaG @œYžeç°áÀjRç¼_MQ´†þ™¤|ÉRYY˜Q´]Þ?DÐogÓÝ÷ù­Ô\F)êÈt i »1 +ÊG£F|›H²uJßË€²iè’¼¢É²#dw…÷—ÃQ(J²fZáXÁ+ûôPÁQ˜í»å¨ä\³.iÅ\ŽØ€wŸ_©TM‚rÕ'T|g^‘øö{€R'¢Oú‹§´ð)ˆV”9èÐ ÎñzŸguÿ:Uþ„þ,Œìíè£çÿ‡ûþÁ#€vX„àøx6›þ`qzøOð?}sš©Àô͈ðfÀ•›W™ˆ€«W?X„ïUîp¶ÏÔ”]é£!`¯ýwý þ»²èÌâG¦1púaûçD†/c?rÎûy÷Ÿ( ƒ*µ³¾ÓA{ü/Þ‰‰y¿žX—_>˜ú¿í4 ¼ÝCø1'xˆ ÁÄÂË à8ßàòÿåËK_ÑáßЀ ;Ï0ÊŽÞ˜ìïîööúo|*8°¾gkØ hôlð#r€ï½qó{W›ÿC)@«‹ÿ–HŒiò€›ÊÿíèZthk{+¿Eå=_§+C[v#ÀÞŒ¢# Zy±'0úî €Ð“³Cëî+S•v×OUY·J’'YYñTÍ`°V+K„üõƒÉz¾FÈÿYn÷?ûlø¸ݪÿ‰œÔ¶ÛlÄYÀ[ím*þ''E7`;ÚØøm¤Ÿ}êÏ~ûÙð¤H$ø?8H/Ò_ܬã“ÿ­o‚´Xä`(ouƒBªR]®H¿ÇC Ö7]÷].mÓUÄ"`ÆàM{Ý:Lr +pe³„)€aY¢B–1ïöR½@(3Ìô“ÂúgIfüo›?±‘g%…‘?†03€ÿwddA¼Ç[ý2¯î‰ù?¯ìê\þ³ã| +é£ +>—l +‹@–ôeŒÒ®1§›wæšîÐC©MEÓ4ÅPtÞBŸŽµ†À_‡¸Ï-±!À(‡ÜBúGàoÝ÷ ßy1@ÂÞ¼¬˜ªâº›+ô/r…6]=—+¸ösLþ‰8Åb‘Ø ¦DBÊ;rž ¤"˜Þ/‘„ªÐ=Êaðöß·W¯”ðÂ¼’ä¿tzÜ@ýTb¹î‰„©ú0àþ"€½?ü£æïøTçªýD€ÿéÛããþ¬zd$;MÀŸ]äÖÿt§€ÀÍ›` p“G¨þ¯òRà•Ÿ~@(?25BWä¯òóv®\u^§/pýª~äŠ{‚ý,XÀâ°ßïŸpN8ÅàΔèL9Ùú/%vR©ç©A‚ÿçƒ;c°Ãøïw:'æ'„ 0³€;¿¼sEŒ®>t>¼úpjïçŸzð`p7yùà À×™——pøê«'O¾zrýöØìW@{ÿ§ùhÂ^ú³G_æmÚ€¢ÿ)êë„ ÔåE!lýåÑ·ú{$ÍÎÍ7X@óì‰Mô·G¢þo r/!rb‰6ö­t$lŒnÑi+?Dt€p^Hï±) b€`ÿÖèhb´ùîÑ)G³œ2›Çª¾ ç_ü>>VË’’6ƒÒÊ\ð¸V«NÔétR–Û¾ 1˜¼±½ ü¯1 ‚pyþ>T²·£'õ-DA°½]Í}<ñ Ÿ|´µUO§‡ÑÈt299Loœþm6;Ò÷ÓOn}Bà“ÏgÓ“u–t;ì +å\1W.T Î…=Áp¥èšqUîó@šüÌaæÐ¤;ƒÍ?4*¥¹Ò¦!g¬C˜ñc[ŽA™›É%ÞñÃÀÀŒ˜óÛ{x"£–?ØDÝ¿ +ª Öö“œ¼*aÉß~/ždˆyXâë*&ø›%]Óõ9zrC,!fôÒœ1§iT`Øoâ`ÀÙÏØ¤ç+è(²ˆKaž(øÜáÝMMQn'@žØH€ÐŸ +ýÄ’{”Q_äþÙì „(87ܪ)lû“*‘Y5’ªVÔ46ýJá™MÉ´ˆ„÷cŰkYËÅbGáÅ‹Â-ǾfæÂØ ¥7SâZn9T}t=(ª”¤ï6J ?1tÞ.PúÍZ±տ𠺹ÄCÈ !?À?B'ôýÇPˆ ¨ˆ>'¢ +•M…×…¸@–uSÑ DÒ ÐÐÑ Û—ˆ3èô E™[×Õ%·@oÑéo4жHÀ.ªáN°Ž?t  ÿçßΆù¾¬Ê¸2˜¡¶)›IYÑ*Šî* +aC1åpxßG\ŽYW¡Ä€‚ËUp8f6K¹ØÝ¢ašZaÖ±'.BüA2©>¼ñkÖl‚Éà è]*@ú½Bgé¸ Õþ_ü!ú…ßeÓÞÿ_…±ÞO4` $À³°€õo(„%À*=PE€(@z~ÓÙËÙlv‘àèÿˆÜÄLQAûÁâ•ÅÅ‘+Ä®²0þÝ"Œü¯\q.ÂÛÿ +6ø ý¯N9û¬X¤ÛNÈÿ¹üŸâêŸçNÆTðÎy&SóN9ç'âŒ.R¶ü?µ3øÚ¿ÁÛP”ÿBà¤>àúw¦xðKºÀüÄKî~{ù ·Àóî|õä«ëOýéðôéxí/&?ìaù¿ÿÓOCŸ°)@ÿ {>}ù€èÜ€g0vÚ}¼@ÕÖè™PëÏGâï£yïbÁùÀ¹çvo¿y寤ÀV³Ó@Gµ£ðQõ¿f3€­5ÌÔ‡ÄÅP>Ú|aÿ‡UQîp2Ã{4€K(Ä0þÇ€r¬ª§cáuI:UÌ•²/ÙVUj5© +`»h—˵|Û×v—a¨†‡&±°_¯E·ˆäó5±ÈrÀD» àz=º¶=D Ÿ,/þ6»,À¡;ÕòùÔl+€¡ZÕãú@õF­Ÿþlo‹`š±Y! + I¼IoèïÚýJEßÔ nÐÙ8dçýï°­à¡ðìIà/±s¯ñ#ùO–—¸1°ÊâÔhѯb‰>ûú–!Zûòö*ßa5ü¡É7y €ñ~ Xnl–69<¾¥¡caÓ2 X™ô]3b†RR6ÂèàÃY:Ï+´°a(X°dEO6ÜôÖ=à^â_Œ-ÜÈ +`ðO +Õ#‘\bËŸ›ÿ‹<:Óï|‚¥dC´$4ˆŸè®>‡F,$\påâ¥A~®P Ó‹D–o9^hZ.RŒ-hñ"4€.=l`€@¼ÑÇóÿúÿM&˜æ½sðHYßE@:~©Jê_^…g"4Ìê\Õæ€èD@ˆЗИ ÈØ?W â z°< <{–Ÿ!€ÀÍi{€Çø2«páÏ@L®\]¼Â~ˆî»Âªþ+¬ä›òÿ1ØÇ]SSbüÕÉ¿¨þýÞ žLù ó™dÏO €þ?gÿþw ÿ `›ùÇ:"€yœDïåÿ/LaúO<€ðè?õІ0Oü`"¥_€ p® :—„àú0€§D®ýI +Ðü…mó+(À$1€O…!]T€¾½ÈÖÀ‚ pàÑ£C´=nÀŒvÕß ô=wµÞltzÍžÓø?üw>… ÿMüå9o À·–Ø^[Ûî¶@¶†¶!Š‚žÅøÿÞ+ù{BЀBŒsމ„OUÕˆ‡×EÀqIï+Dä•*4>*ýÛåííh9Ù–†‡C“¡þƒêd½¶½]/·£ôí휎äÀX×rû9",Jù€ôöôþ£Í#Ä1ø–Žï <8]1Oå¿l `WÀ-ÞĪþ|¥ûÒ{¡=^ü믆ªâÀB×`´ ŽÏ` +œ¦SvZÌÐøÉLjIÀ"3€›túÙÍ+Woþìg^EûÿêÕEÖïû‰ÀÄŸN‹\ð‹å¾;‹SW1é'à§‹q§?ŽÂbT~ÿyçlóÛãÿu»üßÙØy²ƒÀãç¨ÿáÿßJLøïÅÿQüßÁ¬áÎÔO§®>pú:>˜ð?ð?œŸ˜ü8uzA.@oðÿ5:<#€§ מ>ý“]€ŽÓï—üõSЀ~±ïoÛŠ•{x¢ˆ³ët„ ¾sƒø‡ róÜ8ý-ösÇ·p„æÛŸÙü yôgÒ18:3å@#‘M0ø¯­A]·Í—`„ýÛÜBÃ=Ûýç^žN¾{B@ø¿õ¾@s‰ÀkĨ¯ æÇ0ý ‡M‘ªš|zmie¥\;þ—k¼Xë?‚R¨_ +V‰lo—k>Tûù­}¦í€ék{­&@mk›M}ð·ÕcúØ+°¾•‡Ïoý£“Z=_ïŸÎÎfgŽ>GŒÎ…Ùa$سÿóµz5 €ZðÿÓâLÑ5SÑ Å!¾+!ÿ†û î·Øñ—®pØŸl%e\C™ŽM€ï„ùŽXà®?7D,/d|,¿™ÌÇÂÀ‡(Ã*V°&˜š2¢/ØÔ膬ôÅ0 ]ç4KSù+Šf†@dREK]âåAútöª}hbq«ûáÓMp +»ÿ‹½8%ܪíhbc !kìšg&e#¶Š±¢¢—´}r\&‘©ba9çr8\ÿ`]6K®eG!‹kиÂTÆËªš¤oFDÂ-ƒ4G‰R‹çMÄ·ÿÆ­x%¬(++¯¤SõGÙCo `*ŠÂKëafÀX$+€ôÐ/ÂÀÓÏðOø_Å‘îˆDÒétÀ›÷Žg…`šN¼ €Vv§§GFn^½9"Ü ç/øGø°85rn>‹W1ù¿Â;}Nxû3ü_qN\¹ƒÍ?/ Þ{e*Kל^î€p–¯èÿÓ™£ÿâ"úO ÿwì @ÂÿÁ‰Ç;óEåïœpòàûÄ<Y€M@nÿs‚p +~0ñàÁÄ‚|apAº‡ÿ¶úrõå× k®?C€§×ž~õÞW)¼è`ØIüéŸüâÿ:Èßi ‡Á Mnñw ¢„yÿvø[ý}Èï<ÐâÓùÇ{;o®öN ¾×"xÛ}Æç"@¡¤D\£‰D;‘Ø& +À4`km-¿úªB +È&y7:B@_”Ý…6Þ;h¼&TIH ÈTÖOw=áp˜j4LjÕ²çÕܺÇ4çªÇåhù8Z®Õ ðkõÉ`Ö€8€lçkTä×Êíz½~Â#€¨”¯mÃþw’ð?: °õÑIñ?ÿ]ÔëŸ]žÍf‘¼|šôùɃP½ƒÿyL:°=XEà]_«åkýÕþj¸"|€*lÉo æ.qô/Áÿ&\~*†Å¹$zð0*ðËG#×ô— âãµ>&nŽó1€ôt©à޾%Üø3b½»~ÐV>KÌ ,àýËÖSç,ŸdsSÃ$À’MC16 m¬pÍ_íîð´@›ÑREŸÏÌCÖ´¹]m—ž>@ÄDçZžCŠ£œTÈ•þ@ØîÔæÿ/U{Mw Ùƒ@½s—Ǧ FP,˜zx¿P,¼ÀÌ¿è*ÊVÉ"ºRt8öµ‚ÃÓ%}ÓUXžu…]EE«ã…Ù¹2BÝ ÖƒeòŠ@«Ñø×wµñV"{Úž¶«h» –?ÊŸ²Fà3€u þ‰"ì°7Ú ìíÿ{¨ö«¡~»pÆx ½H_ÏÒÉ9E€ÿæôǘüíÍ›7GF>¸z«‹ðÿ#ìÿ`dê*DS#lç;uåêԈ~qÿÔ"Ýé¿à‡´ÿã‡!€Ó?O‡þw°ùŸÝÿÁõ'{{;;ƒcƒç€Pú?&lŸŸxL´;øs‡Ÿ`AáÇóŸÏƒ-УO.Œ/ÀÙ៱˜á€=¸ àõâ„ÿ×®=}ßV`×óG0Øßÿ‹þŽÐ^ø²síÞ½N {©c„ÀŸ×úïÿ·©ðö(MZg@;ðŒ ˆM|ÏuÞi$ÐÃþÍ‚íÐÑv£ÿš=ðµ£ùíµh~(J$Û€CtŠæëyö¾!ÐÿQž ?ÊçþÑ÷€¤!'UýTRÛš,ÑZ¡£Žù®TRÒbt¥ï–£Hô¤Xœ]Þ-#w fPReߨðå…žwî­£üÇAþ‹;t­$ìæìñì…÷¨¦ŒÐù§+‘ô&¡½4BÝ!@•ñ?ôØž€ÏÒïø³,(ÀÈeìü×›<`&p󃑛W?ø€k~8ßœb€Eçˆsdj¹¾Î«@sÔõ@x';ý9§ïЗ ç¢?;æ³þì¼ßïçÒmÿ<ÝI=5ïdø§p`ü>°³>°7¸÷|ggàùÎãøÎ žawÀÐ3xøc€Tü£þŸ‚ó0vp|Ÿ€Çw/Œ/@ÏÀ¥¯ž |…âŸðŸNOAèâÝ&ößpÿÃNà/:Þÿö@Lþêѽ¨™·<øï¯¥›=­tqµÅ€ÚìG°lõÀ}§OÙ<÷½ çÈÁ›ÅÍÞ䢿ŸN¼‹#ô|†¦PŽÚðôO¬ñ€GÛ„ú„þQ6ÊoÓ™¡ŸNÒÝ€=`Ôžp\NïŸ4’(M"Àb+lÓB4 hÂL½ê‰„=Õjÿ1ûQTü5ŒˆÐ>U­ Õ¶êQ4ó¡ö«mmÕkP÷ðš?æ[ˆö=¸=ûñâl¤n ‡l‘ß$¢&öǽû³°/¼ ¤  bàlÀ¡@[µþH<îòÔèŸ^£Š­ø!•ÿº*Åû3˜˜Ö"Ìwa%°‚L@Äþ:+îJ% ý‰| nð2]C$…'/†‡/Ý«0F iûú¤WÎHõÁ¤A¶;ÿ‚·Â)HÊèFFà²'ú>Ä‚¦Ó·5çâ7µì ªñKJI³Û•MÞ0ˆ"@HЯ)}™ƒµ¿•Ò KÇÓ=»›ºeY€µ%sÿ’±~ÉŽ¼„îâÿ˜¨¢ë' +kÀUq÷ˆ ÈXøpª&ÖLx $WX #d©¢i%SÖ‹1W1(ä¼"¨ZœxÀ~Á±\T”TQËŠeì>’Êj²ŒÐ!Œ6["øÛw'…PòG#GGn„Y{ Ãõ—О€?@$ ²·Ç¡{i´ÿ‡Å TíŠòŰ#†g·Çá 4=ÍfǧE$ÀôôO¦G`´ø³à42}yäg‹WG¯^q.^%&°82‚d';üØ*?öø¡/Þ ¯s‘8À¼óŽsK¶‹/úüþ'æÑþÇáþ#ºÿë\ÿ?_þtçéáÿ4€ñŽúðOgÿ)´÷;F@ðäÅɇtzØí<˜Ü}yù sXBÿÿk{à+, <X€S€§O¯]xw àÞ^;ÀîÍþÉO'?ý”÷ÿ„CÍ=±±v¯ãˆ4ÀQȯ–£N}t®Tkw¿sWë¨Õéß«þ5[Go$½¹2xnäð–N@Ï·Û<áèè<Ùh6í€Q±ØÓh¯%Ú>ªþÛð^‹nÔãÚ6[3`WÀ<ßÏ1@¾`¾üµÑÄûÀk7‹Õ²*€"K§fÊ4!Õ"`®%ÓãY©öWƒQBýcºh×ÊTú«ÁrY¥:¼†Býà„ˆA ‚„ìímâ&÷Dý°Û/xÁÉÁ³Å¾¾¾gµ-vت³Æ¯.²B¿lÌ~ëV»çG¤^ïL¶†D*Pm¨^;@ °§–¯ÕòÁ<À Ž—ëþ‡3BñÏð@©Ä:Æ›ôÕàÁÊ]I>|)¦ÿ¨ý…æÍ€`ÞGˆ¸j[ídÈÃÁ>Â@µd”8uÁ‚KnáˆwÖç Ús¯¢&·f*Ze¡<5è•’ah •ÍŒ¡[Tî/uÍÈdæJÚ¦NÀ4”LòM½¨ínšúãšAoïÒóà –|ªX*a¼E@f¾Ê6CêjR-!ÈbtgÏ‹ë~‘¬ +‰"6—¸!`G$õ‹ôª°KSݪVJæÜŠ6 øäb1Ga?WtiºVÌf‹EP‚#¶«Í2Ð*©ýY—I/+e$ª>·0 n6ÑÈCºç»¸ü +€NÒ„úãý=ðð€êÿ½1ÌÆ"éÈXzíþ~Jï…˜p Ÿ«‚az õ@(ýì6‘†q6XœÆà™è,ŽLðÀÈ•ŸŒülÁWGFü?»:â!àg¤ñO@ÒÇý}ýß½„÷Sÿ^ÜàÙ?äÿpæá1¾—¿ŠŠ>>1¶ÃÓTÿ©ç;OÖשðxþ|pggð1Áüy|‡Ž6pNA0ÿ`Š8Àü±ð¿ò àΕ;PRýÿ K¦&Ï\€ ÐÓ` `Ï +ŸòàÓûÐ\c1àÓw±ÛßAùÎMÎê··D@ìp•Êþönw£…ëSÐyíþ[*v^'lÙ€žG;‰ƒBnßEÞf³ù½bÿMZð†"°—|?øù½¶Äû¦êŸW:€H@¢1ê& +ЦŸRÛ·æ‹¶×0ðù`ò +À^À‚Ôó7ê `Ø´»¾ó§8ÚÀè¿L¶UX"øïôØ4ÅÀ±TXY1wM©\æ!Ä%OjÁj­…]¡|¹>y‚bŸèJ{»F ¿}RÏŸLN¢GÁb»ìýøãììì0Wô04dl§×æ'±Š8þ½ã–ƒñߪØA€µ-›@Ð"4òÔˆbÔj7‚áb%Ì‹€Î`0s†Ðÿ~ÒÿŠm€„€%´ß-ý2B½¾ºÊ•?BY€\¿+úßbüÿš®¿DŒ0?a3oa gÉÂkñ*lÂü—g +–LU>¾ùÂf‰€œ>‚€JqA'8þŽ_¢wÑÀ!èi„ôŠa*ts š¢ -@˜?—I*šBÄÃJ•]£u‚~–í Á¿>CT埖tô%.aðI )7ˆ'©ôU駸Aï€ð?™P{Åt«ZÌ%³ÒS¢—IÚŠ,›J1çz,`K’]Ž[}…bù̳‡K)b.Ïœ®…‹±Â²kNÒw˾’†Ùv'øçF£õÎ=À•ˆôøÿ¢©±Tx»€Ðr Ã_´Ò6þ3°E+Á`O`Ãظý µÿxv="ÿ'úÿ#—§ÿB¥þÄœ—1 +¸z…®ëÇ!ï÷ótŸµýóteÜ/ˆ€3ëôzç—©úŸwzY4ÿ½þ;ÎÇÖþ±óß.áÿú“õ=*ÿ ÿŸÓq @ñ1&öÀ<:SlÀ¿ü/,„ÐÕ©©‡óþ‡³ pG80¨_ø]€®à%+2ö@¸¡ð{<½Ïø?ðn +  _`¾¡u@ø<.Ä\€I@?Ëÿ¢7l °€æÿR³Ùú7/Ü÷âkŒ¯óåÍ7¡›=†ZGb@yÖh6»8oWÿösmjð–†Bó]½ýæjÂæ÷yÀ÷>l³“,ÍÑn`¢‘H¸Ý ·>¾¶qtÉž`ðO'f@ž±Ï"ð>ü?j4„ ¬íVÕÓSûÿÒ©¹‹¸64‚ôá•yåökAÿër­M„¤\V‰T1‹–×'kpô?ÁZßZ"±FÅ:•ø¾z}«6 ¿¿ííí¡µÑv¨o1–˦í|ßü¼Œa Œ@:ÔY^ιŠwï8>qúê û0€Ú¤ÕPüÃ\µ–ß®•óÇsáŠ&¼€>DûZ4*3DJ°ïnÈ—JŒþŒŒ |ùÝI±ÚGØÍÖ?Ð.ÙúºÌÿ—%ŒàÐäúÚÀ^„üx[Ãä’Z8 +pL`YB|~´Ê¦A•|ú?alXT³gŒM¨5 ?•"fŠ¡o-10èÇ€¢5˜h¦§Á `WÑuÌsüdò5>PÂÍFÁªnñ?L ¾š´„ñ?ì™$HÀ|ëæCôÙáYHGm×dw bfQ£ÿ䪛¸<Œq©QµïzáÒåâç·®‚ãÖ-Q€ÂlE)aÿ>b˜ð¿0S–ô9$Ãx”m€Žšì^Ñ þôÎð?¤‹µpÔ„pNì `,Í‹€ÄþÅÀ°‡{– °bS€¦ˆ|3€^Àañæ"üþWGnùG€ÿ Bàw^ÍúGx›Í¿gù;§²Îì„×9;ü^P€ €mü½ä+z^/!ûXjŒñ•?—ÿ8>ß!üçþ·üÇÐ_ŒöSœæ8;^@¼à|èìüðÁs‚ÿÈæÇwO/À8k¼üº#¼ôÕ“'lÈ;ŒúùY ðôÚÏþ6}$jNªU Ä\ÿèžÍ:Ó€/û?ýTÈYHOð‰8@öhö ì›÷{þÍ·mﵺwöý[g¸Î­€îã­fólF`SƒæÑ›“óm7œ‚ÞÒè¥ç|šoŽκ¬ä?¢H¨³£€}‡>x&¸Â°?22Ü¿êGãxϺêìöþ½S¬õ¿êe- ¨À”3àÅ8ðϘïI>^ÜôîŒüóæÿ+:?Ù;ƒÏŸ<~üNÀ|µ?Á?Æ„úØàÀüTÇ H,N@ÿ' EË`âñÎÂiãò/€8¬‚¬¾ìlˆÀïÙ xàþS^´/xK ŠVþhëèâ>7 裯x`ó¦DÂR’ƒËmµm&åP°:ypÐÁ@}k;º}P¯E·ëõZ~m›€0¿ßªÕ>xü!'˜?±æöÌîGöûÆë°4ªÃêž×† ÐA=0¼¿üq!‰9Ÿ;l`{ñ¦µš'÷×òô浚$UŠÅbÅõá Ø€û3®û›,Ü«’KßgDýOØ +°GÄ/¡¶ÌÀ‡9 ÕñI–ö#PÂ]ì̯…‹QÙy­À0Xú·Ä'î)dd“8†Ü(Ð4A´Ê „ÿD$LËTô… +,ô¹ÍJÛá†kÿT 6EºW¶R‚0Ê„µ]K})ô}j‡¸eê}µ÷w‰5м`A€}FÙ"˜½ºÔuž<àÌ€Ž– + +/_·J¸ â IÖ¦ënÓoQñ퀻Ž>—+æR¤\ÌÓ»Æn®¥_•¤„%ƒ¼í@CX½ÿÊRY²ªô㮢7ˆ ` +ö„÷±1Æþ½±ôØ^d8øö G†{‡°°ÇsU‚Ò^¢pÉN;¡XœžÉÒ{€Ó##?¹ì¹LX•àÜëôó(`œŽÄã³y ¿ÓŸe€sbœê}/ºôÕOWlü‘~þ¥ØøêÿÝõ½'ÿO ýÊÀƒÏÇ ù?›ÿÄôõÁüÃy‘Ð~Û÷ÿ&úO<žxÞÌîÊ>@ G°Ê1€vÐõëì,`8c ¤¿zó-þè}“»£|Ñ.8cltõÈÎæ@ÏãgÏt½yô½n{o³]ýMg;O ã=Í…–͘t:ÿoÜ|cfðÆHáÜçÕo>ïÍ^ë茉¼…;t%vNÜ€6ÒÝsÀ,zT ŠM +n±|‰N×þyÈ|ÌxLH¼oD_v.ªdÊêé)›br5¸î¡r°:v¬¶Ýf$€¬`)xŒ¡¿/‘xðËÁáXùÊð<©•‘¸…,@ø£÷O7^oÛø‚µ¿Zu¶/;Û×÷@b ÁBÿ/¡|”˜À€ZÿƬc¿˜Û‡M,tÀ*@– Ôìh‡ò[ùZ>X››Á$€è €&ÀL—€X(عKȶpýP`¶­š°[TÉ3ÐsýOµÿR#“aÌOòÒ6ýe¼S†Ó‚_â½8_¦ÿI·ˆ‚€ä/m ¤éÖwò{!¬ dd ã;¬ö/`Ï?ƒxAXSˆO(ÕДJE'Ž Ó½E%céEz0¬rRñh +‡‰m>PÂü—réT¿œ¡²¥ëú0ñ8®™Ü°Ÿ*v“²I|A-"hƒ¥ªºKOJ:¶ùG9EÌæ€pÖ4b‚é?…+§i…[…¹œ&™¹BÎFF8æXVð.>µ#dР¯ßh¾{Py¥¼Z÷Ð1lK?î¶VËJ-tùé±H:½¯ †÷p À#@0ØmÀ˜ÀFàÙ8ϲYΚΊâÚ‰.¿ªÿ+¢€ ç8@¼¢ÿO§ hý&ÐÀ°ŸP?Æ ï£Kïîå£7€ôâõ”ÀÿÝ'(þ¹þgÀ,€ãébâɉAæðö}0óø;SóØä^3x(ƒXˆh]@þ°ñ¿Ìä € ð à)t l Ü!?Àÿû5Ü>A0xÔCn°@´nT/kuëïïwü{ZèçwôzÐúl®ªwÔêà|7h¯ÙAûÖQ·õß)ô;ó;è¼VÜÝ«/ìô*Îcý÷Žç/ŽzZ ½Êÿ3õ_?ƒÑfg PPDº$ìA€[ø&B¥-¤xÄ4@Œüó(û1"ðA/poûO9©ª§»»¦²»R–Sc+‡ÈÒi˜þhzÒ•м¬Wá¶m­|Ìy6•qåƒ*‘Ñ6Ò}ëõ¨¯^ŽÖ ÿÛCPSe¿=TÏ—ë“ÿÇðA¾VÇÆßÉðoÿó­[}Ï×ñ±Ðù'b°Ýb# z½v›Å*ú>T€û{“'u¡þ ?ÊÕ-°‹Z-xC!üŸ™™©Üg7>à¿Àõ?/X²Ž1’€,K‚”Ðû~îÕC Ôàk @H§ÕUöâ'W‘ˆ( ,fè]tf¨Y@ïÆ» Gð + ^Z9„¬BÔ`ø7ÇÕ ÖD±-cÉR…Löþ1 ÷Kê Åâ‚lHIKC† }o½¨Xº¢…µbX³÷À·»D n鬸Ç?~Ääå?¢ðw`“€¤- + W³"@…PÒ’5MNVîê²æ*IIn¸U)6Ú‚ +$þ¦F¤ÊqË¥‘¸4Eɹà çb¹ÜìlQ‚v ‰PÀ2g5GE¬ãë"€ 0 ß6ùøGþÛ†}@Eñ¤88 ”€{ Ù;çæ|¸ôôÓÿDàðì•ÿÈžžÅJÀ«/c`ĉ«~l81 ü'$§ëY¯jÄ ŸÿìWúÙ8®MLdQøÜþÓÉOd ·‹ÔÿÊ+RÀÿl<ßY>È.€âÅì^¬ü?pNuS,`&àŸzøð!ðŸ¾ÃÎS€y"§™½€ü @‡ÿÖ@àë—¶Pä=ùŠ ¿úôúSáx ›Üàóµ@š-7÷¬¹€ {C=*\q§`ÂØ–î¿¥Q~ÎåGÜõÇî¬ßFR{q¯Ùlž]é¨ùºÚÿ–ý-šgÜ@4ZgUxï@¡#8Ç2:l¢óÄÖ›< gѹhóΈ¡cUд€£=6 Žtm¸E áf`ëD¨Ñ@øò}b-À‡ô|ïo´«¼+&™eé´¬ªÊØ©$™§¦dî†W”ȶ¨ÊeUßÐ%4nëU)èk£Ð.ûÊÒÔN4FÕIªçk'Ñ6ÖO|h Õ¶NNÚÛùmÂÿÉÉáI¶ÚÊ÷õ9>î[þíp}(¿¶­×·£ëuFÿtrŽ[}Ç2€¿[Þ ×;ÁBðâðÃZÿA >ylÖ–û„]¿UX¬ã3 éP–©®†ïI Wº“KK¬ì3QíÏUf4úŊΩL6 mѰôŠaÎɆðÿ_(Ò‹zû0ݲ4#£SinÑE†˜€œQ´âXQ[0é‚ÿ*~˜7\Â2Ÿ®ó'·ÄòËýXÀ‹È²ôK²]üãKW!#4ÃÒ´¸žLj±’¬µ9±H½Vp…‹ºl†é''©èw8r¹}Ó€‚cy¦¸×L#‹Á à!â,›˜"$FÝ0‚£×·Bøí;½W°ZBS’Ëêý×­¥+p +¯c8€ þþÓéߥÓÃèì…ºž@AjÒ9» NoÜ~æ'ÔŸ^\d-àå,•ÿÓÜþÇÐÜ™E8ºûÇ¡î°ÄÊËX?Ÿ°þ/Ðmœ*ÿ8!?Æ„ÕÿØÞúº‡N»¯Ð 2ðdïÉúÎúàzjg`}p>Àð?~Ðñ +àöCÿ7ÅgÎÆùó἟•"9Xä=N¥”‹-À Àõõ?2¶à ®c +€>Cÿwm ÓÿøíÚ?\û!ÿ6l¨b`뢂Ü@¡êYvpOÕüýÿù€íóÓ…ÿîøßF|ñpë¬'ÐÓhu®ö4 ZÝ@«Ùe çt?®¶Î4{GgÍ„ï×ý6® é*"±˜Ð!+]íaO ­° €`p›s'–Ü A¼ð 9À=!¦$ðè^§÷ïÕ[£ï•4’0† @²¬¾N¨¦¶rj†½S)Å$Ü_‰b*\–don¥,—ËÒ±T®• þ>µÝ.KÁj{t4QžÜn¿nO¨6ÉÂ}Ø×·„ àƒÉá.à·Û¡ÅÙg·¦ë,¨×ûáP?©Ð×±,Ê}þ‰ãÅ]ç²Ãñy! ‡ê LcÎR€U€0ý3°`™ºî™£âÿebÂ{0i…ãEnèÿ8 Ó¢]Õ/©0zií.˜\éËÿ–±V,ú÷êª*fæK5ih‚Xz¸X¤ëî—¦›¦i€B ‡cw û9Í,ÅöYs…s·ˆ„õOÇ-Ç]Ǿ«R,*®X!®è³Ž°¬Jsh¨’{4a‡ºÑhüs£õ¯ïìHv`Eýñ ÀÑ‘Û4•Ýðz8²¾G ’0 p[t†÷ ÜÆ/álŽƒ0 + +§#D6no<[d‚¦/O_qf/sõáþ¸šÎ^†~Ƚ~g`Ü?åçI?Š/j}º1á +{ããt‡wÌ+òð¯ìúã¸KÕ?Õÿ;OÖöž?ÝÛyŒ@„ÿ0@#ßîˆ@~ä>ü?p +üŸšèïß!~ +Ì®A©”¾Ú¼€ü @àŸWÿ¯UNî¸]ÿê÷Ox°0`/ ܧòà¾èý %Üþƒ¢‚{8€€.Ÿà÷D ÀÍ>À£ÍN`«§Q~®ÝßêØVO?¾Ó›ïiã·ì7³Ñõ¨+´ë4øÏZÿõŽã{(C·7pNgx¶YØÓèê Ïz­7Þ¯Õ«7ìùH!£Ã>$ˆ{kp€/øLìö‰Õ@¬ðO4z?]þ±FÅý¾üvbô½À( ×Éäk¬X7WL%ì+&QImû+ySÕjR™à¿Vnû|í¶ÛÝ.«mÉ—h´jÛ‰ÄÚAæ'„÷CCÈÂ*@;J°^»1ù{únE‡gg—³±¾á(Uþ„ü°úÃÞ`(=±>™Î9…ûN"±t耄û5~bg _Çú Ò0jE„ÜwÝg æÿ¼xŸ.˜UÈ¢:ýÐúž€ºœç7Ò‘"Ä!Á‡ô4Ü8\]EØÒ’lœ\¥úÿu†•¬‘cØß4±&ÐîÀì̉¿IdÔà\ÒJ›•]¡²©[¼ +ºŽTx!ïgN'ØG‹Ц@ÿghEvö¡7Å–€¹¨X2z-ä} + f0q¸ÄÕ>’ƒÕ—ÜÎ)aL±¬’„¶¿…]B¼sz«]žª,éŰb%åXŽÊ}•˜}°"Æ ®»±˜+W4à•”Ôs.—ã“B¡€-W%æ€pq_Éf.xšºt'}Ä1°ØäèD´°ðnWÏcÓäúÿXúq×:‡%ÙT”ðú:§²JóÀm4nãË0Ž{i»pàáa@g Ðï©Â2 IßÞŒOóäŸ@vš¾ŒŒ,^Î:ÑXDÿÜ;>> wÜ?âñ{éâYTû„öc|IÇH€(AÀ °ã%\FeN_Lj¡x<eý•²Âà¿Îýÿõç„ à±ÁøÄc>uëÿytüˆî?ÊÿyH EÀÿ€× ÐÀÖàóyñšÁÔiòñ/ãÿª=à @Î~Â>À]ügÔè0þãòþ¡Óío¾P¶–ìY€}a8µVÛC€æùVù›ç¼{Ï¡n·¶ï`p«§–>›æ·zDçî³+øVw ÐýÞÍÞÏ:G]ùàQØ £èAü3qA·‹pvê¼±P(´š={@´þA‰ÿKnüHtK¸ÏNö$@€=ºè°`øÿÈ'zѵÄÚ{æ3XàV… ªº_»UsÒ?É ðɦÏå@ÉÌi+Fñß'àr;Ùn˾×ír¹\=ˆ&ÖõɃÚø“' õÚѵµµZ}²¾Ýnׇqo>Q{6;Û7;;Bn•ôýôü!Âÿ¿­Õ˵à\q†Ã\÷a ôïêÿ°@õ¾ô¥ €Œ…¥€oJÖ¥%ý‡pþAÀ.«ë³Ôh¬ŠÙ:‘ »LE¿ý Ã>k +° @}¨™Õ$3 N ‚Ø!¾%¬ÿiÜüçö?]Û$æ° éˆû}EßU 0@—Bµ4Ÿ$ës«¨²TÑ*ê3£§nXùÒ)ð~WƒÇ¯º@°^2Y€À`nÿë +Ä:ò10“òK¹Äʺ‘IÊ»%º½]ß͹Âp Ôb.W|?¬ËED©¶Ç|â®Ãq÷® Y39’oÝ-j©ÙÊì­>GLSÂË…\Ø£–¹Ý2×ÿ£nÕ-B +—Ø×ëéS€rY-¿VÛ¿qͤ©ìzR‘õ1†à?ÿöxg¢{t‡xBUN JÁ tR@¦DnoŒLc`„›ã°÷¿<‚¥tÐõ÷SÝðúôÞ~' ß‹[ÄÞ1B}*úN|p$°)^ÇÂâ+h$W¸üßýÃî¸ÿîv|üñðv4Ñ®oåkýÓô¬­|=êkG èC‘زû½ìX.¸"ôGw¸^£RŸø¶ +D"pmHt¶D@é8Ìp€«ØA°YâÙÿ&:ÿÝpÍþÕC¶B}|øòØ)ðÓr±Vè)³%ÒýÐTç@È=lÀëIdð¡Ñ ³h^AÏÝÄÜa®¤u¼‰ î+ñWÐó/¢€m(ÿªý5ÝøGô êC9/ëØ „o&žÑÙB˜ªì¥×‚tEê¿—ôi¬SYEØn©às•¸Qa¢3 Ë*ÕþD€ðÙ趺*ÏèÀSP+¸\…œ‚ýHW¬XtÅÂV‘ +šy÷“[Xÿwž(ôÉ /è?Mìn¡XtÄr…ÂrLËÅú…⌤¡çßÖDR^Zu7šUÎxÌ•¹ þC¿rlÈÄX :TŠôß&œ'p{/‰@;¡êÿs Ì‚7‚Ul2¸=þÌ?õO;Pf/gýÙqçx–Ÿ*š¿q?¿7À˜ï×À—¸×›ç€À}¾şGvÀ¼cc{àÿ+BÿW+§ÿ»xò +íÿõ§ë©½Ô` +-€ÔD€ˆb øDOàücÌ#Nø2,H´@ÿÏãÈDã@0€Ô…Ðè6¾^µW.]"ôG àúu[ügÃÿµÛ +Ph¯Ù=€/~ýÅ5:âvÈy_ÀÍà°Ó¼öq…#0Ïì!@j{q³·­~®hî)ì»ÐþFÉÝêü{6íšo¼öm€s }fÖæ#|Ô}‡®\°·=ÐêýHg¬Ùóˆ8ÚÈßý˜£â’£Õ:T ¿ø&¸öo³x¢ÛJéüDù ²èjÖÞƒÿ B1ÍÝ”ñ_YÚ]1%UÒa ®T‰x‘°&É&]-K¾6ìÔƒêAð è{ýº]í¯rÐO݇‚<Ï@Ø¿¦^K¼&°U:øßÓáåÞÉ:½ÍP^0yBè?TÏ·Û‰D;ŸlÄŽiìÜÝ¥!î'`A ÎŽÀÐ0ú×ÄÀš§HøÿaÅUa +PC:\_Àåï¡Æç@¢À}Ì +¹úMƄ߯“¢ø‡“Ï¡X¢_M~—á`*7åCÄ'yš®‹º¬nÂ(ÿ‘%¼ú]†{¬4Ðá @ÌâФÛÈH¢P™ÒmFÓaóSD JlS´ïñî¬ãGŽ0÷ÿ™Ù +Ð2­bI¥›jré5}lYѵS@¸ž‘õݬVݪ¥Š¹AFèÿÅ`@“Õ—¼S`Z¥Ò©œ¡ï²š4â%4à!X¸›‹ÝuQÝ/+®¢b… E]£gÁµ¯[ŽO®»REÀq«ðQ@…eaÖÀ±ý˜¾ìšMIn°häF€$K+`vRÿ:çZª¢ð §2œ8Ü>Ò{Ÿ¨ÀÆBÀÞ0æþ¢,×îƒ7ª„'À퀗£Ƨ1¡òÜ{™ÐœÐÿr–Þ¿œjúq*û‰d ùÏýþ€Óè ?®Äé2ˆÓ‡ÁÖ?6ÿ<Õ¹…ާ+§»(ÿŸü7žì­?ØÛI='0¶ƒ%À1è&yšß)èÙà«~v®0b…¦&:â?á8&„çãñÁÝÓ¥ Ä¿ ÿÂ@¶þúR'øÉW"ˆ{ÿ¢ pŸ¥¿ïŠìÀtþÍ¿þÕµ#zÒÂÂußûÀQ‹ííîCÞiþ‹¥¶{?@ÀàÙä¾ ©-›œÍØ{`þ- Þƒ¾oÀ¿¸Ç~¨ù†&ðlÒßóFÍÞAïàèüwë½qtîÞsðÖ‚Øsû»ÿŠÑîk±Øé4ÄE‚ãÜ=Áâpïl´â[€k‰?AT$ºÃ€H€DÐV”W¦¤ÄM¢„øªŽx”°)²[Ê>d—ƒÕšzppL” <@êßP½ Šƒý-Q©×íõ½¡(´õ<‘áé¾ÙÙ¾>Gzò ÜÞ&ä¯Ek“58³»01€È?åf…Èð¬ãsÇr$äM@,-œ„¸ùêÂúŽe¥b/b2€–ÿݯܿ_¹.Ú°<üÆàÌœoåC>î_ó¦ß¡š9LZœ¸º$|—Ž-+Ã&€0F’*˜Ð–™áÍA°ƒCÀ¶„¥@‚’.ÈÆœaD£ò¯hC+ÉÖ&†¥9,ÿ)?¤˜h°ly#Äf=¬Ø/‹a¥„Ñ=ú)±úF~X×R%HU,#È<ÅIºe³DSÓu–K²PÐ 5f Bz‘>X +rð³øw®\q.ªÿém$WÜE©àmî:\¦Q†Ÿ¾¬h›»›®Â­X‚föôM×þ'˱ýñ>‡1 +KK£ß¶Þí$W3ÈqÓ²ú× +¥ÿYñxÖ×E58ÕìãTýÆ/£¸ý»Û¿KßNwãÄàøÞñ½Ú ¦Ó4¼ãYgvd$›urÝïÇ›y‰xÇP‚øE÷?óF¸È'îá…è_c‘±|бøQªÿ÷<"$Ù4©úÿÃîî«õÝÔú:¸L­§wR)4È®~vÀüÄcVúççEœà<̆'ü~çC~â~Y<.8Cj׺ àèÛ¥ÿÈ.€™—™N à“ë_ ü¾ƒÿ÷…€íø|Ú™ÿ ü¿ö«ß\ûâ7?ç',ì^Oü ié¨ÝÇSl(Ú£BÈŽ€=š¸ÖÑ÷@¾Ù ¯oÔÕ6®ó<½yŽœõšM»нÝê%GÍï·Z¶MóüHá¨ÛÜ?j¾ñøQo‹¡g÷`´uü¶ãÏyè?;vð¿k tþ€˜€†Ø;Ýa@wà{@ ÿ¿NªÀwóXÚï*¦””â)ä¼—‰xLӈ켞Ón·é©Á*½¦Ÿ}¥þþrkÿ„þö°ð2”¯c@À÷ð$ñ‚Z~8»#°¼ÚبE Àûó¾I,ùMN¶×ÀÊ‘HÎÑ7J;Ÿô0 à‚°Ÿ˜Dž··þo1þWóµ9mf¦Â‰ÀXdà'è_(uÝÙ +ˆ!öø¦„,¿ÃäájFFÿ‰.VeÎú¡[™%w&³´ŠC¹cd¡ö×aýg°øoHlëû]’B Z:,€(3o0ïK›3F&C÷” öÜD °¡|§TR•M“*|YW!ddPÁë<É' W´"ëò2TÞ«kÆäUTú)ö pÛ-áéëBUV±8BfP:#ÑKœX AÂìS ×Ý\8Ñ`öS`Û ©B4ÀGo ïîV`ï#iWÎ4Kš+ÄŽ .Gaß•C8Ð W<¼ëë‹åz3 "Ør0Ùh5VáøN+ iÅ ƒæqÙÓå¿ÖŸºq›õHd/.4yѼ¹wÙ›Šøñ@úößc'ðw¢8†x‹Ò ú´ýžP•X”ÏÆ/oŒO;³Îéi'*ÿqž'Œ3þÓ[b¼)à’?•?p?„c‘H +@,&ŽÆöÂÿôÓ Úÿ맯žüî?{òöÿóÁ½õS€>‰ ± ðx^¤£àç†?$âšwÂnLðów⃼;¸é§F€@xq B€là'×¹îçæÿBWú'ò{4€Œÿ¿þ‚N¿þÂvZ(}õƒB}[£Kîsw"°1:ÚõèiÙwP¶ÕYìk½!é;O„ w{ÞN0„3­@ë®÷¼å›ÞoxÔÙìou×üzþèÍñÜý;KþØÈ~®{Ñû¶¿Ë"pÑ;èö ½vÚ‚AÜöDs€£÷k“ídòµ­,›eÕÄ`2i„Ã’ûµ*X™£’P‘TY +Ëm÷k_¹¤w—ªÄ|årÐGÕüê5õom³{ä}Ñv¾><<Ék€“ÏÆÃ¦þ¢/k¨åÐÁÐÉädµî«OB(0Y÷­µ·ó!o Èߟv|'ÀH¨¿?NX  îb@¾š*Šôÿg*÷a +pŸËf%‘ +Œ–7 ß4Ã\í{ÔÁTìÃþo ’?ù;<w`v>ä,Ý ‹t°1>@[BKì¢×ÏÙ·ëK%mS— ÈþØÈØ ˆ°ýµÐÎ×4Ñ妶`hÐÿ+Ú®aíj¦a(š- ‘~,àÓtµcTh˜ôŸ„àý¡¿ôÀ©%cyÖ Cठ+ŠÀ–ÑI®Áeùe’jx ƒ~¥TÒm+@S/Í”,ãT]J.weù4<ãŠçÂŻ޻‡Æé¦"=‚µ¯îÄ`¨fÀ8ÞšAÞëÝÄYTü\ö6 þ‹D¨ÞOÇ‘õÈŠq€øïÁÿ1Ow_í‚O(?ü¿<3LOnvÖ ˜È×ëTÞ×ò¬Ä +à6=ó3H>Ïö‡–…B½ØHº¿JøßÏø/|¶„€gµ|0…@ÍÀÐ%²:V"ˆxÀ7bð,ë‹þßÑ€88C8Ž UY,¬bš¸ºšüšCƒ˜{2lÿ$ýÃKpi$a•ÞÍÒÓ½p@úŸÁëý%„醄]C™xA†Eú›•b•вÀfÀ¡›[ËÂÌŸ÷ÿ‰è< À ½°¢„Úʩ> :2•ýŠäSáò«Ëv@€št'- ^Ów-á ¤Y0¤ûé?4‘%¹×,‰F˜^ø;WÎu· ™ôï“a8LÔB5îÞ­ÌI–&!RÏ4ô°Ë(:f@猘£o¹PYÑ7ÃÞý\!æÈ©’¶¿\d£‚¤åæ%Zï”F"¡ZÞfPR_ûþZìšòŠ;¡ÀÇÎ>ïí¡iùòe*íoÿ=1„‰˜Àªþj•À½ã5á Œ„@¸ØgÇùÂ?>‚w‚ñ/®÷#èýGron|Œ{c¹±@.ŒE¼‘1æXúG:ado ›+AŒàˆ½ÚÝ}e¯ÿíÀxg'µ¾ýßÎÀÁþóÔ˜€ŽäÀ`œYÀ‡]9€(ý½¼dˆÁÿ̨ð'ê0aËâñ±‹(€ À€XÈ@È1À_ýö¸ŽàNÐýkOY ˆM€AB|†ÿî àÚoˆ üêç‚ÐÍÔœ´ÎÂî„Ë FG»~=°þ=¬?ƒÚóa´#ú=«¾ß` £öt½Õz£´sœß#üoöÈýzÝ‚šç6ÏM*: `T4ó;-ÿ?!;l¾¡+hÚtFÌ lö’€¡£Ág0Ûo¡ÛxoK”‘ƒ€ß<-¦”]ñ¿’d*§Eô7ÿX +Žy¨ÈWÍeŽ‹}íó”ÛeµÜ ú$¤—Û>©V>¨mo·×^çòµ*¶ê[Û‰µúÉ̱xrPƒ; ]ÝÈêJ$6»6eu{¨>¬CAH‡a"¬ˆäbwûbýÄÏLÀ¤5a3€þþ®0?:Ñ-h¶òµð 2€+„úÜç$ ÑÀD`¡R*U69H/ñ^’Ý»z´?äuÿ¨„_¢{—à¸JØ~ȳv$-eÄ:&†]ã-`„.@æ3veÚck@M7𠉊|#C:ý;8ÐÛup Ò´°Æ_°ÀšÓÒf°ûO•~fSWУ‡(Ð**r¦XÔtKgk?ôÄÔ ÜñR´ DƒË€IYç룒†ÊœøŠŠ™©´dS>Õâ.WÑ4Í¥­æ\I7eÓ¢RÞtÅÀ\¹¢®™lYlh.Å O­{^ðøßн…Â~Î^ÖŒåùp8n©RrU•éÂn€ß¾+ŠwªxËeµínÿõÖÑÿ2€±Ô:¬Ùç!À8+ù¼ÿ>p;ð»ar `+ýÕj?<ƒ¢ À aBÿ´ŸX€w$‹^KíÇY`H`l#€>ÀF`/‡eBbDÀ4"ÐÿGõ¯(Tþ©ü7_¾zõêÀ©õ')p¢©7ÿ÷¨‚Oñqp»ñ±1ˆúy¬ÿ!» Q€—“…':¹B‚<Æ×A{m`gb0uA.ÀÑ·ÿhK/]²c€0€`·ò?K¼6øTÈÿÏk®ýúé¿þͯóštëÚÓ………JÜ]°ä©7v`´Ùmë·Þ˜ ô4ËGÏ+ìzg½‚^ˆî¶ZçwÎí¼»Ðìº +½¹î×ï5» ÝjyûòãßûæÛwZg‹…£¶$`´ÛáqA ‚}8®·¦À·:Áü%ñÞ šÂ²dJ’Z>U°ç§¶HDו°G*+‘r²Pã^·ê‰(Kp +¡¨ÕŽƒT¼oµµáÉ(¬ÿ††Ú‰µö–mß[çÉ@–ÿÑz(«mÄ– }ñH9º5ù†ü“<˜O>Hoì;úý¹Ï?ïsxÓüg8‚Nìôœ hO:^€D:ŠÂH”þPÚÛ °Ta ÌÃXÿ0p³øÛ}_/ÁÿGÆØŸ£—xºoqB %¯b¥O×¥CõÐä­:ÙX¤¹>zE[ÐÙÐĈßE×6 ƒ7uK˜pt@ ,Âäý>z˜)P[S6wéª2g!ï'cÃF)LÕu& R ëRqÜÁ “ÿSVù‹D@ìJØçCG?åÕüÃôS5yŠ ‚œ€aòT„²hêþSmÁ’ð­%8k»¥íJR©H ¯Êlþ ìJ²^tÐôpŽx±«iÅœ¦íﻎXË‹åeªÿÃEÅõIÑ0côAÜ h’ß"ʲÕhµÞ5PPðŠ€ÿ½÷ m+OÓ£¯Øºh µVE¡s`uì@uViKpäC½fjÍáXŒk.£€«7[3 (‚£ Š!`<ƒ-ÌÐKóeeyð.ª ]4¦ ¾¨ù.>†ÐTV¾é:`Fjߌ3ÝŸr±ïóþ~G’§ªº;U]EE¶þ˲âØzž÷}Ÿ÷yÊ·78ª¸zk)½ $€7ß¹ùc¬ï³€Êÿë+DVØ.áÔ¿¥b]ô’—ìüšp Z@ ¿°ÀÚìüIõ?û ûQ÷/” õCøøj}PÆÿ}q®Ädõ_E<²; ü Øÿo÷Éo ùwŸÐlVL1€ùù_Ìgéð‹À +‚~Pû}ÿ]pÿ5Ôÿó¼ ð!(B6»Ô*¾!?tðã aÄ 1` À-IÄàó ðÕÿ Àç&}~ðÁ?} o$ +ðµ¤Dr• +ѵBY „öM½¬^27ýφãN$N8AäœR@ʧe‚‘³Wÿ%W¥þïy8¿U8ÅBÆûW­¾êpn‡júèþã\ÄÇ)pK@ ¶Õ/5YyŽ `.#h(ƒUõškey!ÀÚ¬R}SFD˖︎Bø¯'F§J»‘4ŒðÃ0VCP¨Ó¡Êü£Üâÿ„–DÕþNsÔdGÆõµn*NWÖF¡ÔckáñãÌúÝ­Øâìl·›ú䓇„ýk’Ð-é­Lt=*ýü§3wò[ùT(•ǹÀq;‚0üã¸Ö\k£ÿå± ×`ø€½Äú·ëà€xŸ:<|êìÿƒØ?^°+õ¢Jwñ*žðׯ<+x„ü.Çç +š¢(TÜÃAÈ€? Ø…‰Ì¾º* …Š +&5b@ýâf¨Eo†ªZ,l×tŽðœm½Pp·Ù@÷<ðß-ºË&}-{Àô׳¢è>¸ÈøÅÄF5!DKŸÿóXÈ`‹Å?G{f8DG4~ÜÀQlüeÙ +ëÐ6Pñe(ýµš£;ЦcEfP†»‡]Oâôµ`ŠÒ8tÍ$ÖôB¹æè—ÂD@tº^~<³>“¹_2k&«{–ÆQE•ˆoûØ\ù="иäw¯§ôz=£ÑSª|‹ïxvUß\J³%ß¡?Á7£ÿõc +póú? À.Ò¸@4 ”‚€^q’@›Çû  yV Åç½›+sÒ]€°þú<ÌþˆgÆ—¶ ùO‹@:]ˆí—JD̉ˆ'Ðý+Tý+nuPþÃpód“––ĉÐÇæµ%¬ ^Ã2à<Û@Ö?Oˆþ‹,.SíŸ êÿì®Ôþ!˜˜/Ætϵ–öÆ ø‡NÿŸ‹éü1§ðààhû ï =Pù5€Ÿ2 xzpëé£OÿéÓþïn —€¯'8B~ˆÈ½'à³ã/3Âí{Ñ5œMoÐM—ü‘ñŒk{Æö£‹[wgÓƒúsˆ/ý½ÿô"°|y‘_âx›/2eïs&Z,ö?ÈS€ó ‡ŸáX¨~é  ¹=2¨Þ¸ £¥»=e°ùá6þ\=IÕþ¨´¶±•u ºRÍë‰S5EЈ=Lµ“J7ÞntûµYBüÜ(ü—!¤åü «ãñcô×vº(ógGý|z~+ÝÒÍû™Tgö¸Oàz¼ïÏ®õ¹@ç©ÒãÌý¹üÜý™™Ç©­…p DïÂݱ X€`­Óì$­e¦¼¸Ç6À{<x€áÿ6oH A^À¶·Â +ö€¿_Ñö¨\¯Ô¡À† È€@cù¿ÆÆ9Á ÷T|l â&Öö{ŠW„Ñ ìÐé¡W£×ãl;{Ë5b +(÷¼P0áÌZB}Ç1-û.Võ‚g¶4Û3K&^]Š:†ZÑvæQÑ*ãkÒ}>†‡°]qjô%ôzÅxAЦ¢yüÇWøÜIpZeǰ‰UüŠ–°1Èj*†A +¶ EIhiÄL5K»WÒ«ô¯×K3Gsï—,MsË.ý`é—°âà ð̇'ð+Pñ*½êoÓ+Ÿ¤céoñ-OscKØ„ +ðë7âÇØ¿ðcº°òÏׯ3þ¯ä÷±°ÏbÀv—`ÿo’F'ÉB€P,•Þ'€n?\þæn޹ΌbпÏÒìÓ/ûBûé4¢ÒÖ>:óK<Ãâšð5‰ýáýaÀ€-dö%ú?ÙM€yBÿÝ¥kB˜gA*Î÷ÅbÀ9F}-$Vÿw¯ñÜ;»r.å-€âïÞ þ›<—;€²þ‡0KE pÐû@ˆþ@f_ <€n±üOº³(RÀ§ÿôÁ?}ðÁx =ÉÇ_7m*,®÷(ae8°ì˜GD-øäO3€ÈDa/<ôƒµ¹ˆ(ê#¼¿èÓîÓá—¡òÄÉÿì‚þpjop’äwÎZ Ðü¿í†cþèÿNú¹qv ~v^üÒ‡û§ö©èÓ[Ð@SôM·ÑsÍl•[Ü µ]·Ñh(Ö¶¢ª«é˜‘ÐR½‘AÅ|2©tB©P¢ÑÃ@®9ú('x›göxÛ,î;æ)ð=‘H¦Dzæ~¾³sOåóá΢èýà p–žpËœÉlÍ•îÞ]ßÊçóÝ.Þã)±ØËÿwÆV@;ÍŽ¹FÙðÁT ÐÏ6À68–€ßÀH{QC—Üc±_¥ÿ¡ץˇú!×u™*Pi}ˆ?äqšr¨ˆ-@tìJõþ ºüÿÖööœBm*ùU˜ù›µU¯ˆ†›ÿjgùí²‡Å@pMX_Þs´·°_ÀÃE6fZ3f®¶Lb +JÑ3Íš®ÃÖ¯VÖÔºjð0Ÿ«|]÷‘ ôÏù°ßWýˆ4 õÔ=Ó%€ÇȶØ~@ž³Q°¹Ùo«ÜÜÐ]ú.Tý4ýž£ÚËeKô=”T™ +nµ\¾¯ì–33w7 +V6SÊ–ïf¬‚v·†t¨ƒ6Õ}O¥âá_>Ðc„¡©t~å“ë )ýÛ|ÏSZ›Ö<ºò×9¯ï›ïôßüñÍw~|àŸŽ+++ùÏVòùt˜µ€û0¤† —lô”µd’»ðfÁô„wÐ X!@¸ŸFÛ??_ZØÚš§k„ý[û‘€ÍÔ~:]Z 5“€}ºAtÿ™ +) +¿>À + –ÛÀ¼ N–ö ý—ˆ»à„@vwþÚüü2áÿµÝìæ¯_‡Ö/¿°ÅŠÿ<ö€÷)Tÿói‹®lZûóÃ5 ø§¿Aªÿƒ“ê 'àÊxr€)À·–À&ÀŸÈ˜_ºÁ³€]:ËÎàÏØÏžÁ|冰†yÝ8# goF?lðÜÿ¥/õ·Æ&€B ¶??˜xÿбýÇ5?³€Gcø§kŸ~úJÀ[Dn=yðñ×µ›Êä;‰_"/ðÅŸHàÏÎùûÈB?h´1ˆÈEnD†¦|wÏ.žó>»`2p~Wï¼uÀ4ørøŸÊ >¾ž¿Eì_95÷åâ‹S–AÊFwฅր×t'zCqÓ1]WvBÓc–‹±°KàÔµ‘êwÛPÎ?f¢J?Ñ„g¯hþ£°'äïô»ñ>¶þ“±Çë?ÉÜù‹™T³¹ +§,°ˆ°ßng€n7ýx=³¬Ré½|wa.ŸÊoAØ !  31Þì¬rðòrí6”@Ü Ø£Ê_€šÇ†{¿Ñ¤ãtZ¬–©`?¬ÃóŸçÿlÌdz‚ñ,€gûØÿ;T0÷g,¥:÷ü0íw5 ñ€Tè+‡è-x5sc›ˆ”ɶ¹‡”>¢\žŽF½Ôí`:•О^¶Z¦e™šáaBOGŽëc£?øø! ºn0Zçäë*ò„îÃ'䯈_ÍE0B³Í¥šîl ðÑP+Xp8 €‹z{ HALýmøI)« ðT ­êî)†K´EQ~­›ôò¶¬@ºëØü/Y%è– þ=úd½Ü̺ciÙLÔR¸Q ¨øø£~• + ªO NÝê·KŽl=;@¢wÞü¿óÎ}÷w|tô»#Ìþyå:KÒozá}ŠxÀŽ¢t”NR*Òyîíoñæ?.¦qeò¿<úþyÈþæ¨þßO/ÄpC:†¾Gš¥±X5ÉÒ?Ämöðÿ=99©¶ØX ¿ÀV@ÈÓnp#@œfç³KÌæ1  3¢»ôçv ø_Ûýš»Ùybó€8o:?lðœ=~ùìÙ¯Øð-a(€Ÿsø¯ BÍ¿|pëà‚àAÐ|àé­§ýÓS–ÐaœðäɳÊל4Éø»Àï6 þØ5ç,r6)­½Ø ü?;›Hå'ë²ã?Í"ãUÀ³ËÆñ¯Ø ˜ û&`t~t0e(õ¯èþM:þzå?ÍrcùªvŽÄTã;h·Õ3”A‹€F©V#1B; fRit@I)‰D²KT¡ÑIRmß ÷!Ï_± ‘€‰þ?¬€‰ü{Y¿†SîÖýû÷oß^Ï\ÉÓÝTˆh”ã‡÷aO•2S¡t:ûáãpjá“T7?—ê†SÂbpJþ7XÛé­Ây@,/€¸ÀV@…Ú Zd½ìz÷EÇ +êxlÓ€.ðþßóå֟Ы@جØíšØö£ºŸ]ˆÐI¡ BQàm@DLdîÕö–ËtÙ°E€A$`û­Ç÷¹llé¼à˜e« ³K?j} å>jt»(Ó +ªïáþÃE¿ªÊ¤hC~„qC€àžÐÞ…¢Ïðmá`sæ€Ó2ùÙU£àŸ;ûô † +õã›ø<60\EU]3ZóÊe³ x–¾jYeWÑ]ÝÌPñŸÉܳªŠ¦Yôm¢Šñ÷ëÄ$ÊiÓ-ò À׊x]Ã3xœ=¿\@øåÛI,¶ÿí¾ñiú&\yoν÷ÎÍ÷ÿçwnþÃÍ›?þ¯ò¾‚ÿ…p~aÁ?ùð~ù€ÿ-` + ™l${tÖN²mýôBž;ÿt’_HoÍoAëG|`.ÓTÊZHÇò±ô|ŒjþXz3m!ñ·­3ü+=ˆ-!ü8ié˜üVGÛoŽK¢ °tmséfóÌ–€ë„ù¼@ø¿ ˜çÊŸ.âÖ]L +Àæ…€ýƒçÁn, Šoÿ‡M¨üÿ%<€žx?áÀçc BýB8ÆÿƒGdý/˜€ OŸ²#ßÃ<øšs€³ˆ`þ$þFp‚À9Oöԃ̀³óWØ)OÔõþpâµ#ì"æ“wÎ7þ‡/§]0%^¶ŒxŽEð‹âòÿì2µßK鯝ñp¦Ž-¾‚Ô… Ðé)Âÿܽòë:ñEqQç+J•s\×J¯Æî¤ÓŠÑh‡“‚€FDz¡P¨ÛYl~”£kÝn§¿vÿ÷>[SAæ>OÆûýÅãŸdt§àdnß¹ž=N…B†zšÿ»ñãÎ,Fs™;yBýûïgRùëÐla‹@`8ÑràZG/ïE£ËþtÄ`O0€=vàw8ÛÇã}TüØàgG¬8,‚Øì<¦p ô8\ÝpOá4ª…•º w@´ü 5DbíŸ\ +Ž—F÷ŸßÞs0-€Ö/:l¼ãp7A¾­rY«àK_èý ¸þñf"ˆK7¡îçüÿ|•Ëy[e (4P@ ñ%zn»‹µò†åM o0€‘0[o`i„í¤ %‘«Ø¹ˆíšE lPójæ²Y.¯ga¡`FK¦C¿nÁ¼ÿØt62zÁU +–g+{ŠvWGX"¦%Epèzýçøk¥?ßçóË~ÿ8ú6•^øäÈÇôoõÏwuN¸~óæû7ß¹À;ïŒï]Y-:_IåSÌ hcÐI6b¢€Ä ȱ8Ï[é­ôÂVzkaÓþ´èþ/àt“üá´ÙÒEïß@õõ?–°‡“ßRõe€s¬@ù/N––  +‚ÌsOèOLŸH‚ +pžƒA<]¸qc>»ä¾ üA€ç_ü²ÂN@ +ðx0væÀ.ÿ…ˆÏø ñ¬x:&·D„¨Ä ®~í9€ˆºáÀTþ _—Ø?Êî¿ÐNw"cÉ@$2^ Ž5\ïLÞ~9‚_vû%îÄ—p‡ñžÞE—ÿéqÿ¹úÿµ¿¿ùÒ(è+z§8¨„Á§FOQ´ZDº‹„Yí¦­½×puk_×SwÒ1ÈÁS©F2¦K$lü?ZD^O—ÿZ}–ÿϲ +`–E€tCøÎ•’¶ê93wKWâ;褴Fc±#,Ö@ÖB™¹•|7\º›Ï‡·¶òÝP*ße' ®È@`MöÿÙ€HÀª%,°°˜ýïm<ØÛø™ðÀ\¾ö›Úo +Üû/À¸~œÀ0Æ@ ^g  Šv®€{å•1 €F°f` ï?¯°Mu>q‚ìâ!,êðä,bä./—‘©Çkxè#ˆ§s1EpØ¡Oót {TöoHK?¡à‘„˜Š‡ÿ6ü­£Pɽ÷¥ vh0~Ç%UHþyKУRßSÇq‹˜Dh®Ë\’9Ÿµ„Fƒ®ûUF Þ½’¥›–£¸ºãš÷Jårf½TŠ•-³`êѲ븅XR¢o`ºJ–è[.e3јéÙôûW'pyñ¿ðÏ.Ϻž‡MñoY€!t€ s7n¾÷ÎÍ›ïþÃß}÷Ý©»WÒ 0ȯ\_ïç þE0w”Ž’T bIÂ*ëó©ÚýyÐHþÒ ý ùR^0|ÆDןO…íÊ£åÛ*á¿‹Þÿ‰\€sèÏí®ùå)KÀ€úÙ¥ynˆÃ®8 ¸¶;ÿß²¿Øåä@nÌïò `ŽnY¼ü Àóç>Õÿü*Ø” €Ï¯\ ÿoq +ðÕ ˜=€=ÿGPà°p òEœ 8òuÀ—‘wrö?Ý +7=ô‡ãŽ€àgÃñígR7(uy98ßÎ\ðþ={9ø¢Ðplô?qé¹t¥/£‹WôþŽÄçÑÑÑ7"Ñ[‡_5 $9UOñi+†ÖÓŠA诸U}ÉtPùW‘šOöwÕ¢7ëÂüdW!l$ cd$»á$'âá0!=Zÿ;‹;Bx,fÝ.dýøõ»*jc÷Ké»ñæl7ŸÊÇB](:‚Ðyæz8ÞM¥·»]â¡~j+%@—mÏišHl®UË‚ø%þ¹üÇþŸ‡5øCÝÏ`mcOñ€X ¬cðÂãy>Æ^‡Í@…M€é¢B,€­xP®ÖœB¡fÖ˜]Py_(jýý`Ñ(^™¡!öoïs{Þ¶‰txÛ°_‚6Ðq ²íŠª™¦´ôC‰Ià÷‹ÞçÃËËa 4¸‡È›z b럧<œõðŒŒ¦`L¯S¼âË‹7ôG—Ðr8s—3%ÍùyKŠb–-O[ŸYÖÍ ±€Çèd˺cÒ=&º!^ùqÍ-¸™è\ÔqæËË!ªãã…Ø•ߣ§W!"pù*`µ×KÒ§[uÛ'Gß:HÏÏÞ¼ùþ»ï¼ûî;»7Γ“••ŽÎç÷Ã8bÐæx N²ƒ× À Ä`Rûé|ŠQ'P¤·xâÏWÓ) <ê~ à_•Ê¿žÁñZTþW鈀1úoa àòSû7%+»àD6—æ§"5;ƒ×dÀü n€%ìr? õFðÃ&_Ôë>§½%bÅ ð€} ·yààÜúßøÒ£À HD0þséÿD¶®~üµNvû…ÏÝ„£‰î<ô—øÏ‘•3Àp¼&p±wè ‡_ч_iø²°°ìÿï—£ÿ‘¬û¿9 ®0Qú +€ ÿÜ©š3 û3®Óry`¾4תº†’Ç»@,–×]=¦¯ö *ù»í6½ƒTud„Wâ!Žòm<|îÆ…X¿3+°Å?]ê®%wúkýüÖ}]ÓÒÿ’Nÿm¿Ù\D¶êVŠÁ3~! Ôï†Bé-"ô¦Ûï¤æò©n #—d°Ð4;w)Qö|°¼'$€tR{ÿéøg»^¶ÌõŠ*Wüpþe«>äbP'H~Áê¿C1°Ç2@!V ÈYïébOŽÑ¿É$€ê|‡Ý€kÛ,D4¬xPÓ˜x†j¢V  «x:¼€cê–¥ÃC¿Æ}PþÛJͲè)¹]@ ÏÙL#ÔJ``ðØ]å[ÌØ˜@ÄÂAû:LT#‘S }4"1¥Ò•W‰D€ìFyÝBö½œh©¬Gï™®U^/Ý‹¦-k;-•L×ËÜ_§K–E©éëÙÌŒ¥™zÉÑ ¼îˆZ,²°×E^xYÐ@Ädç·Ý8:Ó`0·pã½›ï¾óÝ›ïþo±ð—` +ø°Øåt@ì&YPÅ>@ +ƒ€T:µbìÏ3ðǸûÏÅÿø€™ÇIÛådm|=c0è±ø¿Jð¯£þßÓ°æ­ °4VJùŸì,‰yÀ¦˜ +ìãtŸý0¸†Ï¬àê; Yho\k ÞŒ~Ààùó:»?+JR€¤°tþ Âÿ–E;@âp €¬ÿ?b„«ÿùxõ [ œûC€ìûûÞx0nˆÿÄgí|A Ä‘`N )Àðå€ +/yÿ\ÒÜ¿28Iþ*þK6úåîÿ61Qý ïp_µV0ô¹Ž<­äNùôN¤µZzKiØDª®nµª†s©\I*U‚þ|ÚuW«Tö(d8‰hcd4áp7…Àh-R½Y4óE`m“~ÂD³Ù\ë$ÓWîל­tiýogézœÀ|¨3+ªÿþÂRÝp¿šÏtC}ªª L#øßß‘VÀ²°Æ{€;kÉmt–YÿÈÿ¹úÌÊÃÒ~ï7¢€byبÚÈm„ÚŸãýp3€"Çî»Tü{Øà0 ëÛµUxÿÄ95g¦¹tùÿ}@¢Ñè6á7TšŠÒ>¨ÿG :Öõ<ËlÁØÖL®ø*ÿ ÜÀ×<S1@€©o%çCpçû¹ +Fÿ„ô9ÖJ×@aÈ‚AEt WJ@‚>6`â«Ã&à´¢å{Ö¬¨KD+ß‹–Ö×ubµrÔ2k⢖åEgÖ3³¦®Y2KÖòÝ’R3K®-Œ‰8IYèE^ªèõ\4bûߪxûs77³Ù…¹›ï½wóýwÎOÆrÀ…Ï` ·Sô¹¿† R@¢=V  ÐFmc +²ò0ùÉs ƪþSÂï—t²ÊkÿJÃh„þJ ÿ;û/,€68€b$°É -a¼9µÀ—6q´6q¤ëû(þé¦ýÍ 9°$ö1øg $°\Ò߀2øÂÿ%v`,7?— €«ÒÿçméxÀC€[S;〃ñ ààé-aÿsõªý? ¶ ~÷³Vî툀3© ’pÏø¶±@¶ d+@Fî Çø‘!Ì"²}å„þl8ür`±Kp6È9 ¢ˆ°Ýâ¶€«©ª»QÐ"¶cn-º^NGuüÈÌhæÞú=“.–éB4“)[™™Ç–¥¬#GÐ¥ç6M•îg n6ªØÂ°P- +‡âCƒ~rþå37é&{Õj,ŸÞ·¾í÷¿º¾¹´½ñá›ïü¿ÿîeIA¸²@L ¼5 ´;I]@ +()š„ÿbŇ²@'t[Ы:;þ0ü£ãÖÓƒ*:÷ÿ7«rÏ7ÅL`Súð wÄÙ°ŸÏæaDÇ}ôÿûé Í¡¼!†H˜¿q-»Ôz«òð° ÿÏä + –ö>ûÿA8Üâ=€ ðè@6ü1ö +!ÀÓGA÷<ö~6F¤£?ˆø&™Þ XÀ˜LëŽdrÀp¬^€Ã MpηWL&ƽ¯§ý÷/ œkˆ ÿ¹3ÿáÑwÈxãÌ·Ÿ±<:‘†[(†cVÝV•ª×u ¹Èki4Ú]ed©TU1HCI¶“ Ûu{F#N»gû“Œ‡…¥ÿè£F³„þ‹kkD`ã3ÛoªFá±5såÊ•ÛWVËû·Bh‘vã³k"H ÞÇ»k}º½loÍò§?ÌäÅÀx ,\ÃàßX^–À{˜{l\ã áëGð $~Øýƒ‘/D E‘Œœà"WþÁâÿ!ÐS Ôð Ä6¼Hô§à¹J¡æjfEúª¾ëvÁDŸèý¿-&oï†ÅüŸ@_3%ÌK@ËŠ*òü¬e ó~"Vˤ ÖÃHÎ oñ #àœœ‹E"•w?yœ?Œp€Xˆgä@¶Ôº³ c²+b'ðBt£¢*¦cT\:ÑœV6ZŠ–©º/˜N4ΘNi}æ]Šîµ¶g2éíòÌÌL抩ÙÊLi½äÖîGMzx™ÇX4d±B0¸\X… ~µÚ"üÿÖ À°HH:wãÆÍ÷èðîz÷òG­|¶²ðÏaø~Ʀ€l ÜÆ ©ðSÞb°€¿œ¤Úbøß&ø'²£4M ÿ•AóýDœè\쟴ä)7„$@ªù­ñ$€Š|ºÄþ8RÍ¿/iÂîOvþòÙ1˜md {ca€oÀ–<÷¿b€`(€°ü€ÿÙøêA`üè`¼ôw O¹ìÿT²ƒéú_jy”pëóœý|Γ‚@éò#¦¢1 ½Ï¦ídg@ˆÎÆ.‚²‚‚Â~jÕïèÒvÿyËŸÈÙ«ÿçå2õïÒÙÿwèà³. ¸2²íÞë~ºNå?‹[X0ŒBʪNzÿ¶ÛkÀ³„@¿2F#‘¨(]ÂàÙþG£\#ïïär¹ü~sí¸ßi6›¬ùÇÛ¡ÒÌÌýÛ·¯ÌÜ£Ü#í7 +:h„ÅF€X;Y*Ñ;è\æÃ<Á7À˜òÙãÿt›°þ+ïí {l€ßõÃâ~Oâ¿ÆNÀØìÚsÈ9º €ö"‹‡ù‹¶œØãmì ڕ£(‡(±=Ç=Äì_£ò¿®m`Ȇcb3ÑA   Lç¹46 [:ùÓM¿6ìÊ)+ò4hô!ûwxãÀÙæñ{ø# ÐÖ8m‡S¤×ž*Öf9C“®Ñ_Æp(=‚…á¿´GnªH"ÚB„c@ÝPÙ0*B÷(œ5 pG_±½l¡FPŸ5lÏ*9z™@Ô4£÷××Kºn¥=«lF3™Ç¥ÒztÏÕ£ÎLÔ)Ý/™ÛÎ:†Ÿ3x9¨A¿ð|… P‡(N×õXìä[ÿj›KX‡ïý÷_Ñòûì +˜¦mì%Šì¬Â3  #úþ)‹‡ÿÕ–ê¿Õ¶Î@A즀ÿ{oJ÷À^G@Dã(y€ ö[b- †k1ÖHä§“˜ ‚,átw~ÿÚ¾p +Êòn@Vnògd³ó-íÍà‡Kž?@ãÀÏ&)8#}yñ èõÓ€'ëÿ˜ÜšÆÿ©ù??ìýã*:ÿ,2ýäŽÃu¤û?fà Ah½s6Ö\hßOg¿*›w’DxIÓÚˆ[ÆÿGÓªÿïÊaX9­Ÿª§6lNO ^÷?a`CX¥ù–KµJc5VÕ“ÅÆ"ûH VTÅ$»© ášÑ „f;³ÍÜi.Á€ã&€Y€Ù&\Ð8ŽÇtx=sû'·‰\Ðl7•¥ç¡®ØXkb3°O N –*…’1Qe?\èö»âQú±(BX¸Ö1ËTÿ£°Wã8 a`ŠÖ¿#Š~XM¹úðP½i¬þÂû—jý:Ó€¢q¼Å‰qh@¯wh #€…‚¶F`<ÜBMÑè«\û‚S3M¸ Cè8ŠóÂ1¡ôŠÛ{¦ÇA€È;5·Y™ÇbžìŠ4\ÛÕâ*Ï +T•4#ðÂÝ*ïqˆ™~EcüòåØî4ÀPs9•ÌŒÄ'×À /ª§èDr§ ˜Uâ€xwÙ2Íò¬„A—¬õu+ZSÌR4U<ËòÊ÷ïe¢%³æ¢“ÈÃLÆ,Íl9žªÖ Ô8•Ȇ#t€þs;—üì·búIì¤JœóÏ0u—ÀˆÐáK÷VòS {<èõ:ì œ¤`Ì`C0Ä£lý·é_Õ_Pþ÷4¥7èü»Õ*B€ ¨¢*€€“`Ðæƒ"µðaµ6ü·bÁz`ljUps_$Οߘ‚ÃÀÙk»KKΛÀ–<RŸI@Þø™ѵ¿Ê8ÀqÙF€H–îçñRþ?á'ÔáŽ]€ÉÇY ó{ÿI ñ*@àúsA06¸`É7^¼,öwx1%èòÔ€£Àa(è!‰Â9á·§ûûÃT9æüSudŸúÞ°€ÛÐô¥ªËií=·«6F£QsD5 ࣎õ:¡T¼ +‡‰ĄïìÌŽr9Ô`-_s”C Zôý¿Æ@<ï +xå“ûWÿ×é4ÉÿJ*”Ú +‡Ø+h¶¿ÓlÒW¯512µÿÏt2¹:—µSѧúÒ pœ€]éLßfÕ*츳'—6¤`%Ê¡p÷=$Øçø_Æwx!°ÆfB`€ù,þ/€øñ@v]µ5Ù° JQ#ÄÕìžË“§V°* ©!ñ(ý^D XíóD/C:9VéŒæªÜ dÛ^1* ïV¨á‹4û§ÙBú¯Ö…?€É +@¨ü|¥½H„믡ò€÷UCæ*Ã=äçG{ Aÿ×Xß»ª‘s ¬ `‘ÀY5¢xŽ‹WâDïÝ+9Ùh9³WŠ–î¼7³-YÐ&F³ôÃ̈ +Ä»! x¦KìŠ@ů£@?êËŒïªUhN¿m3À@½ñá{ï½ÿ¿¿ÿ¥ÌöYžh<80ãXÀ^‰XI ¨J )䀂X©Ð_ Z° +Û?žú÷¸ü ÿëBàžÈ^€K ýDb¢ôÒ[ÿtdwK¶è(êÿi Õp +šß“€%Ù˜G ²ƒ‘½¶4Ðü7i€?Lðþ¾L|Ktص÷*Öÿ@Qõ‹$€¹8ÿÝÿÆ9þïÉÕ íqø£¦ÔA­/)@ÐýˆŒ9Àxp¼(¶ÇžAç4‘áÙå{—SÀxxÉÜ@Ìÿ/ÿcÿïb䯛-çNU60DTÃpªšBõ‡â¶ô¦Þ0F‰†RUF8œŽ’l”j‡Úv<Ù0Bá$Ýš0Ý~³¹ÓæFÃ8ÝQ)€ç4@"b9°¸u73s{fëñÝ»!BñøÃ|*œ + ÝQ€Eîtf‘ ”N•Ò±¹;©P2)¥ÓÒ ˆÀ¬ÐÿbÀµNg±ÙÑ÷–Ë<ô7å +€Ü€S/U¤åãÙÖ‡#E¢ð €ž*}ï +Eb2`³«ÎlXïüŠÿôh(6‡uŸ€ºàˆ&hn 5sÛ1 µåå=Os¶·÷8ø‡¾‡¨øY!Ç{zhÚ à¯ˆ»¼gZÑeЇ^ÏqLG³=—½þ$÷Îþ»O¤gÂò‡~ÿ¹O`0µ`…`ElVPìó=Øà9€hiÀ³ùë9XEœ”fº[ýò D××3VíÞý™{{lìèÑõL¹ªs¸q4F|Iq³¦áÞ/i‚ßø†£˜Eõ”Ê~•~Â]:¬TüËþ ˆbº +ð?½ògø#°Í¥¥7~ñÞûÿãúŠG®|Æ–@H +ÇRÝ»³P¸âX] )Þ î·Ùõ¯½Ê¶?“áÿ@QÜžëÂPá&€ëž¸O öƇÎðÒ_éhĸ@ˆÏ€N¬`O0ÀM9 àé?Ã~IÖÿL48ÀµÝ¥MGóßþw—|“‹âÏ¿ðëõI+€? ôz° ²În‰Ï± 0Wü¼òÿè©ÿ‹½€§Âü7Àÿé4Á`,ðGQÍ  05Ï—Jÿ¡ÜFÆæÀ²é‘;þ|Ÿ@™ ⦢üÎ"¯ÆþIÛÿì‚PäòIAä¥ÙÿÑw²øV¡hù¶‚@e°”¥7DÝÕ´*l§êÈh¸nâ4—%:ÝÆHiwãÉ^ˆ:iœ6Rtš ngÔœí7F9ƒ±|­)¢€0ö?fÞôŸ=¯üËÇéÛ·3é¹Cœ¡Ù_ù$…ÃqÎ šíðàÔá8¼µµ•.ÝYHuSV© ¥þû³;“$è4ah–—£{Ó>Àpû7[÷¼@Õ_<,Ž×+¼øœ?„J­n Tû\óËì7ÿ+B$@§O 0,0Ñ*\¢ÂËÅC§ xxNl:bÆ@O ñš¹a‚Q<[8qMO îkUQ×Ûðü·]SÁØ_N +l×sk&‘€1 "=WÁýßå„ç?–|º~ûüœØ,Àç¶¾!š<²Aú_ÍUÔ?ð‰¤ÇU¸ Qyy€ž;§D3¥R©†eÈåLt}&j•­hÙ)ß[ÏfÖMEqÌry›"¶X·èÙ=ÇÌjª^#©ØJ8U»Üƒ(*¶Ï= +l\ò—à"oâd?½²²ðçø+(n.ïfßÿð½ÿõ«šßÇ>à~>µ¿?Nª* ¡äm€*Ô«tB…l•x€ÀÿdUO"T›kcÐCò†¢h„úÄ®Üp«ø$6€@dëPå"›ÿtÖbðoñÕ–à-y‘á_Fò–Àü¼dƒÓìœH žgGàk»7²KKíùÀÿn€olÀ+€¿âúÿcl üÿœÇÿtò@ +DlŒñ àÑxpÜ 8ÿÒ XìÒMôáÂ@®ùÉ çß8 ïA@d8¶ +šXG.lø_\ ¼„ Œ…ƒ¯ˆô“õÿ‘ìÿ_Äþïl1m*‹aG¾´áö`ò®Ï[-¥§¹&UІk#ÛHŸŒF¹\'ï6¨ÚOv“n7OÑ•T*Þî¶nuy'aôãýþñqg@Ç€þø_ÓéñZ¿³Öï?üäoï>.ÝþÉíÌݹµf3·^YI…†±#-ßNsí8Îsþ~xak+¿™+åYTM Ð \Ö&Ff“ V—ù“;5ÀòÿT¶‹‡Œ½/°›VÑ´_CÈ%šüBý‡‚¾øÂ£ +ßcG€ +»Wë=ÎfURyxU7 ¥€ÐØŽ¹·P ÚžYxV·½ZÁÙÛ«¡ @ø‡‚™ .Ð ¤s‘ +zœÍ§²Ð_3-Çåî=A½Qר¬¯àB¹/¶Tô¢±¼LúsñÏ@•œÊ €œŸÃ/`„·øÙÁrÌ &Ñ¡µFàˆ¯çIïT•×¢%Ï…à|Ùr¨ð–œZô^f=JÀ*Õ¬h›Œ ã^Y± ¥æy¶j mÏ1²{†_,Õ.˜®V0êÈœ0ˆ/]ª€Î=6óý?ÇŸÁïÍkÈÎýO_çÁŸÁP¤µSû¼È $«Dè¸JˆOÇã” 翞"ÿ{/ÿk=wÐs þAø‘ÄáŠ&€{2 cpÂõ?(@K‡ò£]Öÿ1)äSØw0hÕ€›K²°Ä¨?Öÿey +Kàkó-§ø¦ð"ÃóW¾IÕøs±Pçú_l<ù\ºÿ@WYxõ–Ô&€ìÿσ€±õß7öüåÑÿÕ@9x‹ñÿÉ“'ü°i8iL¸œöOyÿÊ$Àá¸÷?œÌÆ`¹èxö’‡Ï¥k€gSÎ?Ã鯉œk¼"íç»(¡šÐpŒ8†š?bKhÀÀVz„ÿ£ê~ÚåFýn¼C5L£“l4:ýd7ÞN†ºáP»‡qÏ,•âônÒøC8‹ÚÙà§›â+wÿâþÌíÛ·z÷“š£Ån*Ü u¹@-€î1¯ú÷ã[w>̧¶XtUJ À` `* ¨³ÖYÜY\L² +½w@ö¬ý¦Àûÿ¨ìqäq?¼°^î° òÐ@@Ó^Ð]`L8/دpTÀ!÷ 4Î ¦ç©ó³ýʆxû ô=W &ÆþçEXm xÙ¿Þl%Ý?Ë‚ݺ–½ñá‡_óÑáü~*Ïn1±H€ßKž;¬&Û«¼˜d×àdÒÅþ_£¡Aû×ë pJAÀ=tß @€ºÄÅuÝ%ØT7 öONb ÕÖ‰¾ @Œ5'Ø yrW@?i>››óãE€ì„d³œ¼+:KDŠoF*àv³,ÙiüÈPŠj¿Î;¿¤GÀ|ƒù0Ó8þ²þ, Ù´ÿ\ÿ^¦R€@ð€§A €ÿÀøOÔÿB<øÀOþÄWÌ:~aè7Þç Êøa$L0y¼#(-€ÇyÁÓšþÉjà% €s1¿ÁãŽ.’ƒÈ«ëÿï0úƒøþ©m#À7¨Ô7”T)Õ% Ãne®Nïm ÃpSýf£Óí7I*ÃG§§‰^§ÛQ’áp¼Ûi´»ñ8ûôÑ8žðï`=Ozû÷û ð,èÞ½rû'·ÿâöíŸ|B8>»ØéP5ÕEŸ€¿ß§Ðl§›¿³Uº~çN> +%K¥Tªêt:}‰û¢°ÈQkf¯a±é>KkÍ3EPÁaã^䇇OÝ€øs~­¨ôëЩWXæà?ï zü(|•õbÿ`ˆä`4þvl#T,]íÐ1©v +檋KnÍäüß·£–k…½èÞ2ïþÄ 0ÓW…s?Š|tƒ`=C¬Ú"!P–ð¶!T…}s9Ñ—6@hãW˜p{?Â"*Hzahàç0 `© JÃõœ° à4<À({ØÏ6LS«+å{–¥E£ÑL¶¼­——£V6ZÖ«TvÛ÷‡9.AÇÐÍRÉÊXšò¡e;–檶déXk0M´ úy^€ Ýt¬J ùçi…éT ßøúoà 1Ñ€!ŸôPüWA ¨ä_mónrªn²Ç¹?„ü0þgäÇ&€fÐ%¢=·ìW 京ÐõqB½ŠÀ bè­“Ô„þÂ<ˆMu¾¼©€¥tÌ< <Ñ,Í߸6ÿ‹ù]zo:¯¡p4eó6€óίãiðpŒûG7ùàÑ“éÜ7ù;ïóàWàψ\ýá(ÕÿÿE+¸À)¤Pàþ75þþJ¡¼:Æÿ?þÓG$Ò¹oâî#Cw†ç6‡SV€Aã8|Nðe-€sÛ“ZÿìRÀÈdðè»­þõ”5¹ÓSuÄ•¦"ì!í2ãÖüO±¶¬(Tç/6Þ‰~·‘€û_¨Jÿ;Ýp<Ôï°íO‡@œêøãþ,Ôy³ñø,Ûûq*@·Y@êñ•Ÿ\YŸ¹ýÓûçûñðJžè}v0 ±¶Æwt2[sù¹;[°^ÿp.àšðJ€&T€Å†^ÞØ–é;&2y„°æà¢ðóöB¤úQEE „¾°ù?,²@ñ…æ½ÐX0 aÓ3¹ñÏ*@‘DLÝŸ ûEÝ.hÄjÊQ¢VzP"DMo{ÏÜ«±—¡yrôûU|!äv¾¯± ËüTC4û]a WX"ˆµú·ð­ Þþ÷!ì‹%Žè ó?Œ¨Ð à”À³B4á‡Gq`ÌQ$Y@vÐb`ãT+Yž§Á‚°\Ò5W_úo8åÒÛëåõ²i•K{º[0MOÅ0A‹šæÌýǦ]^Ï–Ó³íÇ-ÍÌXôP– ¬k¦®°‹!½ð³Ë:×[&LþyÀ œ¥?è+ÚŸåSœŠM@O°ÉVéöjR|V{.÷ù±÷ï²î_Á8@Cü&28‘ÔLG!€-@¡Úªø[:]elö·@t{‚j•IZ"F¸µ)X@Œm6—ˆ°pÞ’±ÁYiŒ @:¿¶©ž½é¼ ÀP´ì§º×ûS3á c`¨ˆœ‡Šo8`Ä€gBüŸ¨öƒþÁäL&=’‹€€ýŸŠÀ±þ÷dÚøŸµ·D"Ðøð:T&có¿Àx8ÞûŸŸ œƒvèç,|Ï. ¾Ô8röÒôÿ»| úßÏÙ +ï3ö+C´þ EÓ±¨¹œÊimF£9¡êoŽ:Ça6ëowÃaNè{ø°Û¦2|–P8Î…>•þÌmû8zÐôÃwî^Y¶JwïÿK¨ÿ£ÍöÃ+Ÿ|î¢C°ŠãËØ € @þî‡Ãs™t*Ÿ +=.¥R!i<;ÿóàZg­Ù\ì­šÛÎ6²wö¨ô†ßÄÃýWDýÚ/xþÑ}‘s€áPCEésŸã€üóÉ‹"`™çý¬„J°È§ ‡ö˜Ø˜ TX]¨y®Y[õLG+hJÁ¬9fmÛñôíå(VTÍs´C]{Né­ã³Ï^MHï°ÎïÓ^˜ü=[:†lx†àªïËI‚ + à  ‹xzZÍ…·¿O÷sýÏQhø"ý—ß„ra`ˆ­4TUC“_+8:j}Â&Ó*Áó§TŠfÖ£-Çä&?ýTmìŽRÁª(÷Ö ðuâ-è_(ÝŸ×Ð…ÐéçnX¦ÎFÆ<•^îPÅ@Ü­þyþÎèWä÷ñ‘Jý–‡m9Pä@Q¸ó_תI·ªôz=ý%~݃ñ6üÑ ‹=ƒÍŸ°ˆt€ºî²ã;Q*:˜p?à¤ÊÙ']’ƒÁ †œ&x‚¶°ØÐûc_ VÞ@>àµðzvöð_'ˆ\À:œŒù†Ô4#[/|Õ7p‚ þã`”ü®J€é³‰Þïi`ý÷Hö‚ä_ñ¨ÿerÐÿ±dð:^øDËw6™ÌKÏiH·Ș&LôL|/Z¼Bx6nœ·ý8Lýÿ}w·ÿ§&þé3— +Jô"¡Lâw¢*;m´ª®kÃ$Æè)ðÿOŒØä[Ûi¦=ÉP·ƒ À°è ûµ¿Pûa °Ù˜=žåÝBBÐZ?jI·|ån—îüÑ¿Çnåã!–ð !ggÔäÀÝÌ\þ½­P2Ԏ͕ҩ®X˜j°@³³Öé4›kú¶SàzïÛ"þOŒÿ=¯X§ÞðDËþ€ÿˆš`-+ìg,èAÜ3°aHE?œE+€3„Ÿž‡0›ªy°¾0Z®9®kò4Â4Ë5»¸J¯GxôÑ»~¤"tûU˜ûQ!Å|ÿÜàLaD„Êÿe¹~ÂŇgX°WsÑýh€ +,çT€Wúô §yÇÁÀx˜|·Áï®Êë29Õ``DMÀoÐ-gMäÊ“(„AµYY«-; +W«Šób ÷J¦­b{”*Zs}ݺ_²Ø°Ø±!Ð]…Ýê¶Z¹TP¥*Øu7uýûƒy¤)`’jªå“ʘðP@@°‡1j{0€Þk7+šôV  °Ð¸º«Ãé§|$@<`ÀOÄ—OØ<øÄ‘]½Ê2€”B@¨ˆ ’Ü\cŽžÏþbþZ«¥Ùo:¯D^Bòóx™Ž A$":ß.!€¼ð~vasŸc}&&>SøÏûÿy*¦ÿbþÿ$hÈvÿðÿ3LÞ*>{]=€È–.ýóß0ý BÇAÀËKgÁáekGçg_æt4q8~ª @;5ìÓHîô”ß8–Æ @µLO#‘SÕèÅÚJ§³Øé$æhDL Ñ Å»^Û ЇSñv§Ý?ñ„Å;êõ›£ÄšÀÿ @[wÿbfËj—îÝíö4;{ +!aøD§ÿ7]Nî4?ú[¡¹L4³ð8Ýî$CéŒ0ê·û2 8Ð4w٨٩®ê²ÿî  pDY†=bq°Ý_îýGžGÎX¥?ïüC$Xäù?_Ò` \ƒ´Ã"aX½¨Õ飈>K<È…Ñf;¦©+b€ÐØpÈ·Ù-§ÂÃÿC»óyèÏ×r/­r~N„øø` šƒå}›¿–ð~ý¶°j¥<—ó¾ÌÿacL€ôxÃa!„Y‹"t ,Áç…B¡ Ä¡Ñ 2hšÜxp3p^qÊUe¹dºŠ—ÍÔ +1ÍŒ¶£âšYŠ:š1tÓÜpˆ8ÎvÔº7“u½’Ë>Šë,ÅÜ‚F%-t€FQ­|¹¤èÔ76ó 1ÝúþÀÄïö÷™ÄÚíj²íR™L61`6ÐKRÁÏ~:Á†<ý×$ú÷ü»ñ$­æ'ÄPÿƒ9€;à׫'ˆ†AØÀ° ë²kYLŸ<°–ÒB°»tm~÷Úîµ¥%"φoÿµŽ†¯ºS†ÏËć/wP7F¾iüx΀o  Ùü2€ ð—"@ÉðçÙÿ§r PL÷ÿǤáéAPÿÿŒO>~ë­gÏê¯Áyzª’ûÜú¼'±àp¢rÁsnÀg_¶ßAÀ;‰:ãÀ¹)ÏwœüÇ)á»j‹ýp#8h®y2`›2M!Œ:2ÜT>FÀžåFð \>@¿¡uÄËñ0Üû¨vïÇûÍÅæˆ§ýýæˆ.õ׎ÃÜèÂ*à8|ýîÝ™tA[¿›^#,o6GF#” +!+‡°€a{7ý83—Î[¡Îb2½UJs +öe ¹Cß­I  ¹Ö\koSý_~€ÓÚ^ÍÙ«™žëQIî<9½—1p”è/Mê}ÿ 4*_€¨E:€0Ðã‹/´ÃC±ýœ[¤ibWÐÆ” €Ãg»@7(¸­` Ÿ_ÁÙvöÊ{¦óÖöïpé¯ÂPXìåCÊaÿÂHìhF…û>»òʸ BO?Â<@•;ûÙúÊñ?®F¤¦Pšˆ€ 7ä"B©zÄ&@¾øæ¼ ¶#¶á« -a+¨åUU3]Ï-RßÒŒB?I'c:%/š1ñB %»N—ˆ˜è:ŠŒ{÷JÑ™Û÷-E±KáàèEŒ"Ì B†På²L *Tcº®ï[ß+¤hïïÇöS¿ZÿþpÐîGÑÏGbÄ €à÷Qù;`Ÿpà.l¶yKÁî@°üóE·* ¥y°ħèpûà›­ )8ÍRœq4àÚ²7€×E$vG^MŽŽ"çaƒþ¥ÀŸº²Þýf@e2x2Î:88gÝËê?‘, ‰óGTü?bÀsø0=þŸnÿþÿUþüµ2€I^ßTZÐØÀ/˜n /ªþφSFG¯Ê £Ë¦Aà{ýò§ˆy°ŸC€Þø¹Ñt§Š,@dÄ(š1€5°12bùj#1jôýG;£f¢ßí$p;Ôî4’á‡Ýn˜sz à?îúq¸õG‹M4þ2ï +àÙ~ü“»·oßµ¬;wÒá¿ÑIÉP§GÖ:³,!œm6›¡¹á¼Únÿ]*Ÿž›i€0 +€ˆ%h.öÖè¬ÓÑ9 S€m§ ¯àQýï8pô© ÎÏóþ‘ÍÿüGž pFøÏ-ôó!î/ò'¯ jXÈ;´ƒôì:DÍSèy+EHùêEµX ºž®=0ªxY‡]Žî½½¼¼·aJ/næ3`¼e+ŸÍ|D]ã<ò8%87Œ¨¬cß6÷S9Ë·"ÿ1ÓÏùb¸/šÿ’ˆ¯P}¡÷Ï "€D"l ` ƒ$è0yª†–c~B\F+Ø*þ-D£¼²éi^ٲʚv¯lZZùÌU­­Öçr†^`+Ý›¹²N7µ +šãÚÃÓÐÈhY:ÑJúÍ‚žA»|°ê*«•Nï¿ b?‹í·yûßè¡îgÜð¯ø÷zníÿ8þ@ÿ?Nå@z(²8ðF@ >ø€^e bħ{Ë  Š ¨yE †e +–-€tPý/Áþçg\[‚ð›Àë#C&ÃK ;ÌÜ"G2wc*;&"º²… 6 ‚/~3àwþ¸ÿ/ÀÕàÀ…¿OÿE ˆýf€Ooñ àÖÓ Ñ?©ÿetÀÕ©ù?D~U¯¿¾yHŒ>ó#S¢þ³s~@g[ßÈÙ+;G/õÿ_Nô=ºh<É8~ç7ÿÎÕ?E€ ¡ ’ j­Ô&h "fµa$NIøýÆi®3Û™E¹ÞápƒJj%Lõ(Üçð?*ý;0óƒ@qÔ™F@Ò ˆn˯ÿäöí™™™t:Õ‡?ák(Ùé`ºÏ]˜ó˜¿“Ê?Ž>¦ÊŸxF*•J§„€ÐìŒ;fó£fƒÀbrÕdø7MS Ø.xœÈöö…šýþsàÿsÆÿç|¡23°QúÛ¶ ζL8Ôê˜îã©@Ñö± PWµ¢â°xžß©ô‚]Ø3 H$|;Z^6 »÷q|ð`'?À=ŸÙ"ÞUýã¯ÊAº>#yNXû®WؘÛÿÀÿŠô÷ãKL$r°àJ›#Ð Pù­&C„DD@xä0Cð1’9`÷A–ë3D©FžY.q,@9[Š–Lçç÷L³hÞ‹–J5Û\¯ŠçH”Ëæ^¹Vž¡ÿÚŒ°F¨ªÆÀ­ú ›)†NØ0—˜é-kåúÂBzóûL„@nÿ0j`ðÏMœ`ö¯ˆâéröÅ;pÏ ¶R" + zR Pu§¢ç/ÎN`ßu‚ ˆ™A-ŠYlhÁO6Ç×vç1XbÍ~ƒ÷¯‹ ˆ×"Ãqï?2ž¹±KíxWPü)2Æó³ZÂoj€Àâ8­©Þòÿ[ã-@iŒ¤?18`ùß§Oöÿü?ðÿ©pÿãÃÕ þÿ—zýõDOMyóE¦Üùƒh áK÷›mÐTxÏðËëÿ£s1€/µ"“P¡ïOñ/ ÀiÎÏù†rš;UuíôôTi  ‘™Æ™€†ÞRŒ‘?jŒÄüÄû‹þš£Ñ"ÿhn#KN =Œw»¡ë.BöÇ;¢‹Àþ5¨Žã}&a,tRoÓá'·3¥÷OOåéx¨CþÌ„ÿgûÝT:–}œÍ€L€Þe…ÀDp“;š‰]XìlôoïímÔ¶k«µí=ÎãõP§{»Šý?„ÿƒ?òœ‘ÿ¹/úèþ«tKÿíÃC¹Õ…̓<éT¯³…P¥xX·‹߯€íÐÝv¥®‹6Šæ¢f×Ì‚¹g®r2qM³9Wó„ €Ï-x.ݹۯÖs„ð>Xk5רî [xõˆ@í +–ï|v`ñ?”ý‚T¸éa€­ Û–?ùaxã‡Êu„P!ä|_x # æþìâÏ©C8sÝBÍŠ–£-סŸðzÔ4µÂz)µìjF±+ô¹Dufæ§·º>3“y ñŸ1Ð<…ÍVŒª‚eÀ˜âÄN%XÎe3€ÿ¼’Î[±Ø‰û½ƒ‹Øocí¡õOÂð7©(ãÌÿÔÿ½*«{l ¯8`8@}ô%Š‚„€u" À9à@t@p€«‹õ@8žèÂxSoÅ6åÀ&76YH ûç— ¸¶Ùr´ú›0À×¥NA7®åPïKÀ\ €úˆ¤G‘€œÜ Vä³~#8=€„Ñ?û\ôï9H¸þÐç²àµ“áÿSé|Ìÿ…ùÝãÿÇBþÇø_Mõ?Æý³i-àTúÏ$é/rnÓ?H ˜àýÙðbFð«­^žœMY}¿Àïé}ÿÔ?…øØ°uƒX€aˆdCq[¦ŽK %AXâ6ÜFnÔé÷F‹³r§£Ñ¨“…ª§#€T7~'F0{<»ÖlöE÷¿¹ƒ>ç0l‡Xpߺò0€Û?½›î=xœÎ|’Ï‚E‚0Ü×fg‰À!0”Êdþþþã¹Ç[ép:ŒpuÿÒ ˜OšàJ€†¾íp`Û„€¹]3k±> +ºùuî'lÿ|.þéW[¢€•@ø¨Eè¹ëÏõ…íYøB„kœ¬aÀÏUA + ‚uº­¹¡âh}w¤dÏÓ |8 øÑ›W ôñ+~¤‚>½¯VN5Û¯¸*§÷lDjV¹Zç â‚p–þq— Â>>àŒíÒÎo0>› ¡ ÞqT 2!ú°D3ŸíƒT£|_#°VDz±%EÑõå2ÆVy½T[µµ²e鞪–ñêTÛÈÙ÷®ø;™uËtè_«•Òβ‹gÒ5…þ)å–kkÄ“‘Î0 b òßáh`.€ÚŸ×ˆTÙˆ‰€Î Lõ¿%æ|à€]b¸áMà5v†Aí.ûÿL„ßæ̺‚¿Ê ˆ Hާ€×ÿbÀýÿ?21ï;¸:ŽýQ@<–ÿ¤€˜Èúÿ`Üþv?×ÿôìÓõÿó×§7™ ¦5ý24xj,0íô. øÙ%øÿ*SÀ‹nèÖ@߯ާê©jÃê‡*µ‚àN5ã4CÝ5‰$F Å¥“Q§³6Zìtšår¹ÅNtÚ %ÔS£ +wÃù‡ÝÆG¹Y*Í›§MÞDEÎÐ̧ñ~¿ŽÓÝ™Ûòpå½øl?v?ó^>?—çãTò‡ì³}ö»sw~þ÷TPfnäóé’UáØç.ÁÔ `ÔÄ‹¢C§ašzX3Ï© +OTîE¢b÷›ö„øôßN'¿?ú  ¢ `s.ˆK@}[lþ±à‹:Ǫ þˆ¹·t[1Ð,°‹®W3ê®}¸±¼¼¼]ÞÛ¨)E¤ÉÄŸ +ööëHà%>¶¤:»¹;!§ÁYÁhú+#ׇ•l£Ã|ÕÏÕ¥¢¹~•ýÂËWT÷ Ä!O#¨¸îç†Â Ç“~XC%RÛ„>lTn3¨nÍ…‘cy†±áÚ¶G ®Ô,Ë+èf6j˜›¦USlµ¬ÐËu·µHΚYÿ×ÇVÆT6¢Ä¬Ì¼™uéyµ9’¸oëD‰ŠšÁÖ /ÿ™ÄZ:Úä«ßGÄ€åO» +¹_•ÿz„þ.”dµ×CßãUÀËÚÿ“XG*p<@CäˆÌ`Tÿ=”üú+4“½58Áb€Þª¶Ø,ëÈ ’BÀq€)À’ÐÕ±Ù7xÿZÀpB&–@! ˆÈÂ>r®âÈI_Îå¦@dâ $-^3þñ¬~IÀØüG„^ (€HÉÿ#éð)(÷üåþ T’†!ëÿ/^£ÞtZ›w6âŸEü@ö?œªî#S{|6p4=8{Õàh¢8zéþI°Pdø=‚þñŒ*¢ŽìSb£‘¡¨§ü„m-f@-9€FÃM²?`§¿³îì|4jè£PÊPU%œÏ‡»]"ˆÞé|4Zc÷Ÿf“‹u1Xƒk@<>ÞY ýíÌ㙿 0s÷N¼ßIÏÜŸËo]_ød¥»Ö õ›ö†€ ÞÍÏQM9W*±P2ÙîP¡¿ÖçÌYÿc0j6w:‹ Ûeá°]{¡aø_c@Lë¹ÿˆ, €3Œ&:’çgÜPùB€CvFù¯m^ðÃÓ`Ÿj}È*E*ô}¿î O@Û+š5—n)šºéað€C€–—Ë5 &€O¸)_ñU¡ûS#<è.\ÿЄag&8hì«Ã‹¯þE¸çŸSY*hûbi€=|†ãZBÄúøüŒ ¶5¬°X`ȺAÙ @ëWUnˆø`¶ Ö8×ßÃt¨Ö×5Û,Ó QÊQÒÀlYÓÊ÷Þ.ǨQ,ë1-qËH—¦™÷—ïÞ›ËXGsZ¡å>³Oµ=¯o´LÇ¥§¶}úi¿Ü°ª®‚÷ï'f$««I™4>ð Å?»º,¼ûE܃r@cOF‘„þÁ çr† Rû!tLe?ç ôÇ ÆÛ€Âô9ÏàÚ»ÄZ-}`¼!¯±€.Z.ÁJÀšþÈÑ02}È©çªÿÜ(':uüu9þÊ£`zðÚ ÀTÿO$ü~uL¤ŠŸƒüøóé­ƒÀó_øÿÅÙYÿµY̺éXæçwƒ¤Bth‡ˆ™]ã@‡ð‡ñ¿‰0ÀŤnÂzF@´¯€‚vXdSÿºèÿ ü/6}ž³ Ô~Å–Á(±PÔà ̽ú!øA½NÏ®ÑE­R$„. ûjýµ¢‡°a¼’UøÂT×ãÊm{ˆø*ìãg@Àް– \€T.î ¡ ™5^|K› †Xðƒ?눂ž¢ +QËx@ØÉÉ¿ª +£`ÞðŒ— @kIh†¯¹| T >â,[šSŽê±‚V*Y–§)Ä +ìh´¤Ù…’£ß+›®í¡aê„îšâE3ŽSJ—<[iÝ»ŸÝD®„oèÆ3â9Ú|æ^/ýBÊV÷÷5”*{ÿV± @GW8Ò¹Û«ò Ñ3»ÿSåÿxW˜`À9`ÒÀ}¾"°i®è àÂ&ˆËÑý×…°¥cÈßB2° Ðç5˜,m¶ZƒbýÍÀkÒÈÛlýá£qÑÏWs‘Ü07!œÊ‰|D>Ê +AÉXþõà8»ûu +~õì™Àÿ'ûÏD0½ž>"€£|úˆ×nõ¿@þ7ÿËÒÿ­ÿÂÿÿòúæÿS àÜ@ö"Ó‹þ—öü§G÷GÓkGã®À«¦Gço“Þ“ À÷«0ü}ć +' ½‘«§ª[¥· *üè”͆Aä ÙÙ=#ï0èŒ:Lf»qªéSÝ|8´’wÃÃØÝCÐq_÷û³lHèýýxŠÀh1t'Ò¢·¯Ì”RÈõ‰Ílmþÿm¾Û_# +°+`z´Ú©ÿ/sï~¦ôø¯BðNv‰|tšý;Ͳ€(ÀãÿÎîJV·÷ômâöþ/jÎv YÂÄ¿.’}íÃ:¯þ Îýé÷pbôG'½ŒöÏ‹E)<4ê âªùéjCøcy ºQtð ϳm÷ Ž[X±·ËÀA)C¶0ñaìèùzë‡6›þ“›‚ýE3@å –ûÙvŽ]xU@Ä ª9./D€Eh°0¿Ëà ° €ù­)gä*¢Ú?"t9Þ)$6¡5¸mÀfÃŽU.m;ÑR” ß•±<ïÿgïýB¹Ó5a‹°,x8, + Å +‚ª`\NàNQ$TA/nDžšB¶ëÆdPfmP+bd¡Ü ÁÛ,¹ŽÂ±/4ô@ÓTtq0Y싞»Æ߀Ž|s¦À¬´ºùì3}jáûÞçýýJ’»{w'éžÌtŸ–mY²eùŸTïó¾ïó'¿ïº %MÕ–é·ª¦¾ð„×Ǥ(‰û'J‚T<}û<— …Q¨.µ´êbÕ&ä’o!À…œ?•WOR [-ÃÛÚÔALC¿«ä­T¥’Êmj𾡷~¾@«…ÝàHC@J< Ðöó>œÕ©›Õ_ÝÂq‰ ÀQ8°Ço`0P6ÿgü ¼Cû,¤š¬ý +óa@&A}zCš`Ÿ£ƒ97ÀCP€¼Ì£û§Ó #øèK¹€(ö\ÿ¿üõâ—r€,AOÛ~ò¦à¿ ˆFÜæË€Á bú£øÄúÍUÞHš{Έ +Ð|àÆ#—@öù~™õÿZdrÿÏü¿¿—€D}¹ +›ÿ[äüŸ1DæÿŽí‚Dª@fþýLVìÿÿøç©`WOA€äSCÿ«ÁS²ÿÆ?ѾW) 7ÀÙ³|€³§(€rðÊM’0úÅÀÄñ¿¡ë6ºÜ‰šÃ@WÜÐ BªÿFCé4B8®ÿÐ<Ýf*«"Ÿ3xÿÃE*Ø+\9X0×–z‘ Då¿;üCó0ž pH 6œDÅŸ_»< èGyk=1„ð@¼ò`†½©Äó@4þtE^ ×ÿöåâ¯úoœ_àš€B&&öƒQíD ¿$jœöU>oŸš$à…c +&¼ä@1JŒØûc?‘1at +ë?fýïH"`tMÆÿrÝ¿%¿tÌþ‹º‚?þ™jØsGOm&f£XÆI@0x¾`äüÔg…šð­ÿôP}Â2€¡ktÅTí¡¡„àºCõÒ@T°Û˜™ƒ OÿЇWOhÒU:ÃW,-eíFìß-uÀÉïâ0ÌbcàXúÇyßÞ»wq˜¯Üþ`ecõq|c—ÀôÅÒ»wV7î$:ê\t°ýçРÒÓ©ò¸T²Û™^8 Uë°Dõ?l2 0²Yš;«Pà¨-€5àÐ¥maø/L€¯®Gÿêˆ×AÀÕU0=àú‹€€ ƒ¬É;qO ¤þm³‹`½Xd7až*hÛpÔê¬TòÇÇϺ{¼œ/ˆoŸ¥ÈÞ>H÷Q ,õ9Ø ê¬ÁW¥°+øDèËñ˜èÇÁ¿Ñ‚)¬â! Wí(ú‡=¢]Ätå:AMJõ  <ì° @f€A-ºâ&¯À?„@˶=*øzªj§ìê‚•·ªyB8¶a¬¥ªOs0F÷d¬­|@Èn^©\%>{÷³/6r•Ïæ¼j_ÖCçŠÁ¾†õçéÞŸŸŸÿÒ:z¥kǘ¸9'rPþåî¿;*ýh¢êÓŸ ·Ø` Ðå)Vàö5Ñÿ#(€@0€‡ù€§D¦Áì€Aôÿý#½)À—›¢âc ð%O +ˆ5À—ŒúÞð€,IUN#}߀ø8¤Òß éLÝ;Q'WŽN48g’6€;x™,@îÿyð“±yß `‘xk2pgÄþ—€0$0ªý·&í@þ£òÿãs¶ÿû3šM<ñ'ý€ÿ7Ѿ“±¾c#€(éïÿ8¸)8oΤDàU;IuÙpx·#7:þ( PÙÔ”™n£ÛÃd Kµ¿ëûÝCÿ ¤ø€®Ö~ÿ?{y€ílöàâ|„9YÎÄØÿ‚-þÒéÄ·  tîL­¬|Ï=®Äootzí¥;wÞ]ÝÍ P€³þ†­€:óq>­m”æŒ4à6~OŒÿ›!ÕÿPx„ááázcõô¿–ÒRЎàU@¤o“{¨ö¶EààùÿUÉ  [«± ‡zÖmºD_CìWDýw‹䱂[dw€‚nyÇ¿¬[å_.ÿ’Êå]úTO“V¿¬äC§Ïí¼ÊÕ¸.’}U|fΟ#Á/àÄŸ@˜ëT¯1êG‡.C… Oÿ… ?4Øù,ú"€¤0 bç!¶ Øa€­€|9„†”_*ì†˜Š•²-/_¥bŸÇ(©€J>uA«å[–Á¡Û°x|\©¬ü"¾65µ±??“‹oäfçgftOÓYÞÀZþŠðxøðÓ¥_Û_¾ÒµcÀ~ÀQó/è{TÉÉÿkÜðF0?.ð Ý11@¯]°:°ß'0À,ÀHÀÑÁl +Ü×9@ïƒ À{€M°€ .¿~ `Ÿþ)o +þËœ© )­3òùqDýþOœ¦cš&E€¸obÀ3ƒ39päï_výþ?H3ÿIÿaç'Òü¢ À;bû?îÿ…ÐDÿÏ7û‡ñüŸ»ÿ"èÿÛ¿úóN²Ÿ7zú§¢~n^=»ö÷ìàÆÕ³§)WI9ø36ÿÙ@ šLÀþGéS·°x„@mц ×m4ÂÆp¨6|ÔÿFÖ<ôCÇltÒ{‰XA¨‰4hþ¡Oõõ¹G0÷@0ÿïý õ×!øh‰@/}ocå·ÄWWã+ñû½ƒéN¬´»ººš["¬Ðc³ài$ ÷bóÔþ¯Ò[eã³]ªýPÀ'ˆ³ÄþŸêSL|‚ÙÃÆÜññþ§ü>Œù4Œ +¼N+ª¬ÚŸ$L@€HÀÁ» «'ìxü›òFžÊ>€ÿE÷ö‡zmÛÝV…÷ïö¶ê¶´¼ê•<5ÅŠulë[Ë)¶Xλ¼-@c#bAÏžÚŒºÜú+l—}³ö‚@Ï=*þ8Ç4à\N´®Œ +ÆÐÿc+Às±˜4 + ÀóÿgG—›‚  þÅ&€/Fl@Æžvþ¼ ª¸‰¦½9Lžù3h6 dÍ=ÓTÍåŸÍçO"EïYäì8/±¼\ÿ À·`ÐÃÕ´¼¿£v^.nL€ÈÂ. {qýÿÍÛ¢öËúÿàíQðß[ûÿ?û2ûF(´€ÏÉñ¹9¸šlþF,³›Ààl’$p“p&MΤ7Ð+88CÀP¶ýtøW¨—P”MØ–7TãËE%tC醸E#ÓËú FëMzGM"ÑéÌ)]¿ `¯»~î[ù‡~Þ¿÷>J\ô.Ö1·§â~ïÛè}†ŠúÔÊÔÊÊÊØúôt¦ôÙçŸ1µñí½ì‚{b€;ʬUâSXäîÏÏÄtÚ1‚€ð°é„ìègÁ¤võ®UЊ‹Î•–W(´ +yº. |¶U˜ön£ÿOÞ,ÿgÛñïL>ÁàJª° Kî Ò!д“VË=Ù.Š-ƒ +`Ñ­3˯PÈoYw÷µý_.¨./·8˜º<§îz"_’D“Xä¬Âç@4ÿªd +V€ºÍSfþ!8`¨lℾ ?6”¾ø^ÂèÇ`©ß@$sîÀ”fÉ3é +  !h0c€×Š«[o””U(*û–f`Ã’¯Va`T-#^Æl*ìý‚;»«ã¥û¹Êlnµ²«çÝÚ4ên¢R‘vëò2†À3Ï™ùÌŒ®Û¯:8k«hÿ½†Â/†xéNŽþø»ã€˜¸î¤>@c ÀÃþóiLÔ”È"P\èëèŒ@Àf_xC(ê¿I`Ôÿ ÀfÿÍàÅ@r’g£€Qg?àÿ!ê;uÿ_›f¶Æ@ÑNÆû:#tàH?@žŒ•¦3xyÔåÿ¡þßš°z0IˆÀέH@8`4ÿÿýoÞŽnz: +äîŸûQÿüÙͦoÖø« 3àIÞÿhDqÎÆÎ~7iþgÏœÝÉÈ¡aðæ÷ûNšºòN»ÑhXê4ÔCªÜ +ï_êü©ëO `VÜÃ`=³ºñß+¼Ý/µ§§ÿ¦³´±ñwŸ¾ñ™!Ž„Û_o}&·KådªB]e&Æ €XÀú˜Ø€ðÐ?$ ²Ñ]ÞÚj•B9ï1€6]á àz´8»ºQþŸBoƒÁµpJʨˆë×Á ›°åÿ Ý)lÿ+NŠ, -ú¸¥Aügë…»Ë"›ÐÒZ–…0ƒZï"ÄTx© +³¡?‹îëѶ~[Øü¸Ñ‡¬ÓSÕ!7»IÞ÷Qó™H@-¼#:}ž 0îÓ"Î_2ºo¡=¤Â ¤­€H Tƒ³…Uæ¨[f.`ݵ¦h´ì”M`­¤Û [†ž²«úS]+10\3õÁÊ”e­­¤æKv%•[ÛX[ͭͶôª˜ËÙ}‹ÔÍ–1Ãíäóž4€/g^ù"b€•nƒ…hïoŒ0@··hà†ÆÐò +@Ž¢t@ªúÝs‰  d ¦ˆá¿âE¹Á2&Èóô#ÔÖÒ9W~´ý‚È ’ %G}Ï}ãô¢ 9]<§mf“‘ç/—ó&J{ä?ºðÓÚ^­pR(LLðÅϱeNî5“/kðÇñ€ ãéÿÛ7ʾ|•àôÁ­ñþÿôôÁ£[¢þc0nÿÇö¿‚ÿ÷c.ÿüá‡à˜Ü˜ì£üßún¤ŽHÿ{ó|˜Tú?mýwöLþ¯Ô¼’ÎÊ@蕚J\q2‚è,étçÌÀÁ\Ûô‘Ö·î³Ñ¯ßX÷;~º^¬“YJtw¶ÿH â‚°ÿGÀ½{÷Ò=¿“[-•J÷ïW¦–bÔè_ÜÛØ¸³±±º›–+€ Î\Ÿîer¥\¥Ï¥Jó™v,Ó™ëµ;1ß?èÁô'Ò ð0›å }êú÷÷-«U¤Bü02@ûÿ"E‘|uSçù¼GÓ“«à è€Â _wh'î0ô¯Ë‘B^Ó¤»p]­çóZàj×Ó :¤ÊõÃøæjT1èWE›¨<^׋6œJ’ë¾ê£-€úk<ª3ü—nÄ +GÊ÷#bÝ‘ja˜AÿGŸ¦›1 ‰T€áî^ Ërƒåƒ§¬D4]ð„Ô‘J®"}™ÅîÄk0ì°–«)K14p-ú3oå, ÎôEk++÷ ¥n¯¦ÇW6ªùyþ÷y-îw¡kZkñG¶¾©{aÃüÌŸ~æ½ùçç_ƒ2מShÿQþ“ó °þ׺#'¸qÀ«À@€‘Îd°;€Âca¬DA(ÿùM–nêÌ8‚€èýé$V|]ÖÿÅ_/þ2€sõMÁQ µýÎJ·é°ÑFr Jû:€¬:SCýßÛ3O”‚:–ÐyH·ãKœÜ%ÉåŒßÍæK“JH÷þ[£áÿDó?Êùÿǧb ÀÅþ÷oËÉ?£„埩ÿç¼ÿÿAT¦7ƒ ÀSë(4è™ÐßÈèFÕ?»ÎFë~ùÁäˆðj¸êV@à «n—ÚK4˜¡j “ŽÑE¡Ìn8 òÿÓ C!ÀYÿ qÐó†ïû±vféÞRb)“¸—ào8ú‡]€Òþ£Î?ö`D­}z‰5ðv|cÞ.•*ñDïo¦Ó»³»¹¿›Š/¥3Pqï­Â0à~%¯¤î§æ3ŸÄæcíOü^$Á,(ÖëÙ,fÙ°Q.ç÷¡Á³öó¼ +È + lƒC‡s à3€çJ*P dPÐu l©~BV¨i{àøƒÞ†à¹ö¿Š®vœVÐðÜ… põx9µÜ2ŠVËP¥™O_Ts=µî°7ï¶Ê鄎:¤KÛB€=¼ËvƒÍ@0ö 6ÿqÄ<_•I?èå]Iˆc +ÚÍTE©w£Ð•KºÉ¹’ˆû= Œ:H>Æì$ÜšùôÛøÝýD­¼ªZ¥*AÇjµªÊVJ×RyØš.J¬T8èaêv<žÒgæm z0 pWéçß[<²KöŒ‚}ý%ƒà_ŸÃøïúák08;SÚ\ý5Ÿ¯Šîÿ•q,3¼Á’ÀÉ5À¹è +"KWZE„cÐÇ  êØ c‘ $l|yy$†RÀ^Àoâ_| Ì}öTgàD¬0¨ÑYÓÌšûµÚÇŒMÓl:Òp0‚8xIà_¶ÅõŸ«÷ƒ ¿hù£3~uþ§Øþo<; o32xûAäþ÷ãoÎßâúÿÛ¿úä1¹I|*Þg2 pBÕwvcÁõ¼–ÿ)YàMŠ@r0Z¼¢fZÁlìÀ $*‡šCãÒ3œ$]횄ڙl€á0ë‡á°× ì©´Û‰ÈýiÂ6ÿÅ€Çþé‹uŸÀzxÐë|”€p&FŸòçìÛ¿Èår7ÞýjÿOw¿]š÷öÊ·K÷: \ô|˜ïæV³°²[Ê$–¨ûGX¼ˆ9@TÎæ Lo¿LÅa€Ôûà ¨…á?†l×/úÿë.ÿ›‡ÓÙµ˜ð°/еˆ ür„' U‡ C]P¬s` S øžšKdyùØ:®.W—”+‘çùE öÕº(ÅÜüË)<œx¡Ë‡~¡ ùÀ7ЕÁ}ø$o °ù§ÿ^]hŽè1Œð(’‚QÙ5“yÉAä@jÿ1Ó‡ª@ø GÒÁ P€(„°£±B€¿9wÛÞc +€!‡EõŸ>¯äK©|5¥©^ —çm¥8â)¾²–»OÿàJ®25_Ç?;Â>ÁXÔJ(ÿ‹åMþC°ÀsFôpørf浨"‚öo6LÃéÿÑ÷‹§iÒ `8ú§)P@€ó~ÁXôEH@—J>ö2#PÚ *ˆ—ˆؼì÷/úýK1пDJ@4X@s¯ÞTü—0€¶¯æ:u ˜ÁÏ+€Zh6›fÍÜÿéÃr;€½‡ÊIÄ`ÌnfG²Ïn€¦ù²&õ_mK IÿûÁxúÏ‹ü +ܺÁxµùr& ê?î"²‚(@–fÿÉöŸŽ?PýÆèçYÀÕdõ¿ºÁ©Æ=4ן˜Gµ~¢þ(€¯(†pÿE€Ñï7ðI€ +u!ÞGü:¡˜n£Ñ Ð÷³ø71 h´—‰¥ÿHÇ:÷î-õzBÁϲÿNš‰~/{ˆ9@ú£tºÓ©̯®übåöT|êöç‰Þtú?nÜ¿ÿO¿»”f«À‹Þ´Á´¿”[­`_½?O§N ăØ:µþ>ØÏEðaƒßwçòTý­­<Õÿçù±þÿ_-8øjêñ`bð†”O®ž 'o×lÌÖ€Hõe"_Qå˜àm ÷é[©AQ×òK+æ 0$>>*[V5µE3"}òLq(ðxŽÏ +ü€Ë²Ø bø/€† +: ’\øú°î L8¼¸ÇËÿ@¤ŠŽ4Çô±.Ž+ôK0q0r#w€TDà‹PEH€L.ÀŒaÀ³è M­kù¼w"$Œæ–¥õdÒ«TR"‚ÐÏžá)V©Bå¿RÉýÒª®‚¾¹QÙˆ¿S¡w6ÀÐÔ[º·©©:Èøì3çÃ¥KêP_2BÅß0ùeÌ;îýG ü·yõ7@wœ t³þ³ÐPä ÀãMºœ7=ΩøSåGTàfŸP°ÀA +\êb)0¢²Ð+À*H~ƃ÷7&Ífü°öµ:o—ËåBmoÏ,ì©r ¼Íl“#O²/ ~àù¹ <ÿ[‘í_D¸%×\ìG¶?2H‚ Ãé>õô‘‘ûÏùÙü7øÁ,&&å}Wƒ«›-ÿS:€« ÆßØÈw2 hbp6Îc­û£ú%6¾²êC÷¼ë" +ùsGð.é(å)Ýç—taÃð2 3½—è´ct ;¦ï¥{0}€4ÀôJ{'Ýñ =¤gWW>€_ d6nÇ+«_¬Äw3ºÅE€ïgz>WY}ü:Àû»ˆôcë !Àø€í4D÷/0x€‡Ùõ¹2¬w÷uƶ°ÒÕŠT›‹"ˆo»Àõ Û§ÿÃ'+ƒëäà:ଠ®ö PܦfäÂ"~[þniŠÅAÀËw9˜®ÄhïÐQ]ªùÙÊ‹8 êªt‚ °àÿ‰êŽ™Ôó"ûÏ©»r푪œ(&4ðö««|Ì `ò'¸ràO÷´Ũ˜@ ¥ÀggôÁ:hÆÈ#„(`?o¡’G°ª®­Uõ¨è©\ÕP÷°žN­¬LUèw¶òve£’K•JÕTBÀÒgº¶mè-×°g mN€yÍ`G¥àÙÀÒÒ‡~øšÔ‘wÿ¡iLre"ÊÄ#ú_G w$4&€†½ý¥™€5€çiÌ ¤ÒÏn@Tñ/9.Î@ý#Â}tÿ—ôÑK.þ:o;PL‚7ÿ…€ wŸ=¬Ü‡ÎÄ“ÕMÀ¬}½gï—Ëûe씚*¥¿„5É<“c`ÒÛË"œ¿5Noû¥ßÿäôÿ0ö›ÿÓ(( Û[~á}JŠú~.Ìÿõä_~°BvvsÂ#P8ö]=«œ˜ù_MNþ7–~c¾øàõXÐC‚Éš1D]‡Ê‘@ý2Y†f8„íOcæô|Ó÷‘ñ+–ûfÃOdææ”L‚ +w§“YJpíæ\ôz}D•r@Þíw:1úòÎnQÀ8M•Ö§{«SS•ûw¾˜züþ€C ¥w2ÝK¤îÐ?~¼–ËÍgæÛŸÐ½vb1*ÿë¼þPÖÿìac€CÎbÞ]~_8ï@µj4tÛÔ?CŸ‰ÿÿ V^óËÕœCA€• Öþ'¨ìn«à²`WŠÚ¶¦[…-Tz±tü8p$`¼æ;•ñU!àWë›§‰þEî¯0 f@Éê—«‡¹Ûj £Ä'#F… +0ê>aCÀ²búÔ˜¼Ùçëc“¿[ ð>;à + Žk¬t¼² Š-ü ª©’ÕÒ”|üX×é®5}cÍ6T%¥¨ÇqÂu©ÒýÛ¶K ©ÜléˆJ“®{ù‚õ™­oQÝ·­¹Gœ5 F&ŸçÚÏ~øåkSILúÿÞx¯¼€ÝPD„ÂÐÊÁÀ¹,ÿçb †L@¸(ÈòDBÐ&ÇòzEÝçâß?Ò€.'º¼xcð¢ <»û™NtéïÃGN²f3K`ÞžÙ×*„Z53šðÀ¬F€‹‹Ðd—&€"ÿ¿2ÄGþŽ1Ài´Ø9•<@@€ÓGb$@õÿ÷£ú¿szºA*ÿ?{ëüÇooƒýwýÃYL>]Öor®®nF=³ˆ®þéZþH8xÅd‚†.x憇á²KÇE1º $®6èÝ\§Óëb¨®ûë†ßN£a ×XâÓ´¿Îå¿ÇBÁôa)@š·úixü-%:½ìzçÃR¼rŸ×Õ¥žŸ^ýbêóÜøwî%X`7AždJ÷Wy@µd $ÀXχÐ¥4›€×çìêñÝ}a@j‘«ô¶äþ×]¦ÿQ/Å` þûF‘Œì ® ®¯Ô˜XhmŸðˆA-Õ–^w-îûá`YûÇ`ÍdsOª°fîe³˵’]¶÷ËÊCm¯°§:£ ¾¸f +$p&-€Æ€}øÅ'*ÉÅsDB¾/Íþ"³ß2ìçA”ü' ìû{*/ð(@ŒûÿG·v"Nà7ßüì±þÿG”ÿÐbú¦×ï{Þ$ܰûŽ໺ùMj_ÝÇ9µ´Æ9JÀý准2"èë›Ýn_d• c—ºÙ0ÛÀøŸOCåžï' +hKŸÞ››‹½ßY?€Pð¢sq‘î&`/Ý# €O—:~è§K•øãj|…^¦v{ôÆÔÔjnõ?ýö‹Õ{ ºÝûôÖcó9¬*•û¹…ù Õÿκߋµ{Â,€1B@:oÌÙX`ØÎ¤;—møël ³žàŠ[áàjý§‘KPªèKxypõäŠîúD;ÑŠ'®[?G$ËC7o©nëøøîñÝê/«ËÇ–µ¼œg€¡‰rŠ( ¬ø5#Y—<ì „¡= DHœà +îÕž `å/ AÀ%ŠúPÂG:ðôÃþvA€ú﨎Œþ“¢#¡ayAŒ3‚H.õ€kDÞA|_ƒ¤¨“·ÖRUj@[v%•/ü¼Œ¤£`hñeÛvÏVëG+¿¨T¦[¥ý“S¥ÒÂ|©]*AÉ ÷é‡Wúöü¦’osÓcË8-=‡>3s¹97÷“gêÿ3аŽÈãÀ ÀÂãÀ%Ÿ5ôér–@""Ðý?Oú‚ˆÚ *@_–‘(P@ßsëod/:pj˜¨Îž38ùÒ[}A „ÅiÖjf¶öÐ.ìÛû3öC¥PS +{f´à›«ë,hb …"¬½Œ À6;¾5 + ÿÇf?ã+c¯ý?ާ;˜`Øÿ¶˜ì<ºõ{‹@ŸÍÐþÿá‡M˜xÊâ79ÈÏ\] žNYÿ¾_?/^a°-ÆŒXYYùô"ñþÔŸß¹óyüöÔyÌ :ɘžîÌïÞ/•â•\*·Ë¬z1Òˆj¤ 0o ðpnß¶àŒ±uQ;)Ò’J3ìmžÿSõä>C€àOü¯ çbB”ômÂôZäŒaæ"ÈÒu‹‡©åêqõ8Íþ‰§ m[ócÌo:*œø»êL·)¼0bv:tö檡¨Íƒ>é"ðoÈd”~žê;+À!C /ƒ:s 12Ç:ýJôÿÌü™pÿùðÇܨðO‘ž’^VþYÇ¿'ñ@~ëWø.òeQZ±ßU ·¿ÒÃŽÊÿPÅœ’€@{Χúo„>&Tgåë uís†‘XŠ5ÚK±ìAwÃül–ÀßI÷Ò½š§‰NÌo˜½t&7Åbñnž¸øwŸÿöÎûïÞùÝÆÔÆn2ÀˆÓëPô–r»ÕR¥²šËíf2™6 …Y çÿ’pØ”l@ŸP@C‡ O¹?ê6Gñ¹²÷ç)8áÂ@ÖÿÁàOùDܬ¸øâ$Ø€œ.äÖa XÓ 4ÝÓ›gÏ9T(]¯ûº!ü e¥ŸFv?ì &ÿÌÈ‘vС0é¼I8Çþ €Ê9‡ö™ ØíÓeÌú’ÀT@Qü£ €ÿfG—ºò†ðb€JxMUMz)„É ­|s ÍÚC¥¼÷°öÐÆi¦TÐéš·w"¦IS…ªÙy˜ ù=aòœ Ž °Å € ÀOÞþɨû0¦ÿÝÚýˆú?r`óß[;ŒÛÿYÿw>~ôèÖédý?ëÿ"ýÿÍ=­@É ÷ÿd4ôöþ¯vÕ~™àV€h;¨ê{›Æpè¢9é{†3 ݆â5B,ÿéÈdRÙ÷»=´ç1*èsé%ߘëÆ`xÚh§3KK üÃ*@œ_@×À…Ÿ¥Ê/C†àÒRîÎj|cužzý‹ÜßUVßý<þNüöÆúÿ 0 +°mj.KöŒÝŽÅÚ@tÇ1ߥð@‹A@–ÏM<.gÿëÖÙ| ”lÞÛG;€?ùapÓ!’úÖ'¼Q¸TêÛZ¡?qÝb!ÏVÄÇË¿üQÕZNY–vŽ5­ÔÂñÇŸ~*Xû¡x×yoÏM¹êÔ% P•Ù=ؽ‡An€ÍH]:‚ UG +;@,T)ÀHÁe ¨;x€&ŸMÊøÀà ‚l’&ÅðŒý‚T‘TL¥šU‚ÆV¾E8@5ŽsžfkªaYÕJ®jlŽª-‹ŠgF5^ÙÈÍ´ Wki^Ã;ZX˜…éŸÆˆš®k®±04|{ƒç캞2÷Ú=ÕÐù 0"ŒÁ@…î_e.á â€(*ð|Ì + b‚Pþt¹öwÁ¼€¾E€pþŸtþ?Ç oÊÿ OÔ°æìe äÍdqqo<€¶¿i~­~ª|ý°¬3(fÊpT1`Ê@Óù:+.ÐÓ‡!6Ã]20_è÷á€óH(ÝN…í/•üGÈèŸñ•S‘Ì €Óá$ûÿ[·¾:;¢þÿà©If7ü7EWɉÀ›‡÷S€À5ΙrÔ׆ŽÛÕ¨oØTB@Ý.FCêýM^ÁÓ«ß» ¶¿ÑItºs1Ü릪$Ø 3|^Õ÷°ËÇ2åŸ@36ïßKÓÇ3³¹û•ÜãÕÕ]êö7âñøêÕÕÕw¦*K(þéO|¬fJö|*¿oÛ±¶ËtÚ`Î}`°£ú?Zø‡¡©Ð3Kƒ3/æñ¶óðÖGŸÎS€:býPu¿ûèÆ zÀ'`\×U! +,ŠAi¹ûÖ]ø-/W—-]ãêg&Ý#àDÕŽ0÷B>6Ìû@†‰l j·Ù@Ú°4S}”Q²Y^ÈÛ|v$rçÏ%‚Sÿz°Ñõ "Å  è÷R…%°°HJRè“`&8ڱƞª¾ŸWðý•Ÿ§è®ëª¾UZ³¼ÛNÅS%Å-Ú…À´SÖÝ©œ¥ˆ9µ »ƒ€'únˆhi…£N¾‡†ËPìY ¢¼^,À¨OÄ`Tôçæ¨ð¡Xý‡ˆ„ +Ç»1Aáp¬ +(€°%½ 2`WcŸ`´þJ¿Ï(€­=6 @ñ§wÐ^r$€”\¾9 +¾8À4 ¦-ÀV6©-Ë À€&&e«l?,Ó©°PØ·ödüŸŠ•89Íæ`騦òbéð{A¸õöƒ ³ßSYñD‚¿Òñ' +Ä`:€ãùÿ­wøkÆ,¶…úýÃÿÇ7}ý“Wɉè?}½)þÏžž¼wdàÐU6%/‰Z0CÃahÒ•†9×î†Yªë,¬}{>5ýÄ\cŽ@@¢ÝhʧŸ.e|ÿ" ÐaS_Tþõ,[ú¤× Áªô9ªàïär9Äü¬Þé$6â+SñÿŸBŠü<}e‡Þ.zë‡ôÅ\|¹Á¹Ùûó±vf¦×‰µyFÜÿ±~ÀXtËz¡ˆú©¹nD¥âÛî9ç£ï|gÈ 2…ð2!ÉŽ@çuÆZ>ß*¸jënAÉç­ã0”D@i „ À9è +†Œ ¥¯uû]ð…€ðÔû,ìGµ?r¢ o‚/ì•Í'z*{3IOv œäa¶lëvêÿþ‚mWí’§Û:u*0`°Ç,ÀO²*k›… çÿDÓ¬iÿú¿Î@øÙ7¢zËÀÄÞŸ Àéƒqà߃›Å_zÀ€ë¿ˆ8}tëÁ£[’@Ðâ­ŸQýÿûí_Õÿ"åÿ,²ô—®ÿ’x5É|ó¨~î àí¢Öw‡ú`SÎ{C€°Ñ é%Ó  ßçªÄ]¿“IøÆ\&¹—;0–ÈtPuÀýû±ë‡i=H{?ëOûŸÂüwcå·Tù;™)dÇMÝž¢÷ñ;÷ „ðAvz½LQ2ñx%7;ŸÉÌÄb±^lÝogÅÊ¿yÀ+€h €ˆÀ°ÙÌœJ½Ë=Âh¸a6ûÐ~7 +ÀÄcŒ@0¸B×.LTNúq·[ã[EMƒ NHËC ïaäÍ~;`òø„M¿Ãl@†ì ÀÐï°p59e׃¨’ˆ|N:Q¤IN \ÁU^¦J£ â<ÜÈìžÀA``Û=«- ôSgWã­Rµ²V)U*¹µxŽ€N:oãvnSdÁªY€ ŸD1ò¥’6?kkFãÐ ®¹øÌ_Ú›ÛÜ|-ŸnTÿÕ¥ü/yJí?`‚Ê\W`A àŽ™` °(€Ð@Qþ…1 ç]òD€}è)m€.yþÿß~ýæøÀži–÷LüæËIm¡b¤Ï9>ͦö~YߟÙ_˜·çí÷ö˶UÆ +À&{¸}²' fóY€ÌOö +µAÄOÐÿC Æÿˆï‹€§Q”Lûc¡tb ðˆ“¢ÀºökÄàÉóÿ¿ ¸iô;ö8{³ñÿ¿ŒÎ MðûG˜¢1éö;‚¹c˜ CÓ 6»=(üÞÿèø~¦Ó¡×•ìLCuTçÒ€ïw L÷zå|Éôc>!ˆ^'³ñÛ•øÊ/V>X‰gæé| +€_ÜžÚÈH$ôšÎzšÀîÆãÊZ<ž»Oõ~žW‡ë>2 £@àñ à€yÙ9}¿…Ýÿ6j'½â=aœm±@÷(Nhò{̓Æ9Q¡(¼ÂÆöj± yž‡bxÿjzõ8…!@ +«s +û–ÁÍ;UÖ:ôü8"U‚}ù„À `(s$GzyY²Î¸…àEG9&埩…àœ’uÃÙK á‘›;–r7À…?`Æb»úz¸*ñbPïoÑ%Ÿ?¶ +ù\Ŷâ,ªÇzjAkÙ®Z]ÈxL­AZæÚzK+åû Az¶Â>††õž×uûˆUìM\'ŸsÀØ|MÀYË¿hõ¥ _‘@yÌ#¬˜ 0„9 o ù2âh"*X¼00<–vÙ ÈÛSvdà%öÿDÀ7À—3Ø3[µ=]´ÿÐËôó ö­™¯÷í}»ô^©dÛºeÛem'ð4xùŸ­íÁ3ð0)& X!¨(/®‘øÖxÿÿ¶ÔúŸŽ£þDŸUþÓS©ûƒà‘¨ÿ;r@_x*o*~óÍ[ÂðWÁ_ªþ¢[F€«—Jõ}'œ3Ã<-¥oõ½KÇ£¾®¿7{ÙÀ€ÞŒI¥?K(À1©ŠÇs†Ñ­ê=ÝÂld¤{No.}/ A r:°ô¾N?ºEî6•´þ·ws0üïà©Êî½4ï:½8]Ììò ~¿dïÎ/e2±X§M`=™ÿpá—ï…8°Ñ˜kiF‘ÚËmx£üoºí²µ>°@] ðêû?6&2¡¥ª3éÞ5‚'…-ËÒŠZ±Õ‚ !€5¨nËRö ã¨ßQ™Ê'æ£?¶X îÔ]MìûÑðã8Ï |”‚‘LÜ$@Xÿ¹’Û¿ËCìì‡yî‡çýÑ\Q¸WH9à ¤# {O˜v¢§Ñ÷O@Õlc«Õêb~m-^IUrše•îWóa»åé +ÝÔðr›ŠgéöL~6¯Ð×J % +¿’lXV °Ä”Ïþ#6_KŸ˜üßßÍ£Á> ÀP€‚p¨²€ +W@樌 +ÄmF«íù¬èjZßè+]­+ä€,æ@—z_qÑg)À"C€7ô¿—4ØÛSj_{¬@[,›NÓY€½Lf (-”ì’>o/—¹ ³= jM§ÂøÀ"ž„åŸ_lŸÿX(#ô·N±ÿQæwÄëé¨ó‡õÿŽ0ÿ‡"¥}ô‘ ¼mDÿÿ‡ë¿\ýŸT^‰ À›âÿ§WŒé ¢cnèu!RÞÜô¼ÍK¯k¢ø0Úô ÃÃ0ìšë½NÃïj#ž¾“nЪýéR¦s¿¿t'ÃDÀ ªü Lèÿˆšû{KŸ&` ”©übeãqœ›ÿ_¬¬Äßyÿb%>Ÿ]L€‰ðSû1Aƒx¥tÿ~nIxû‡¾ošþM |éœm@ u"{V×­«œà +Éž*t{Ts¾“ Àó¦É'¼€Ôr9*üZþn« i­–¦W·ôcjSùqëÎú<`2ÁÐ3L5"°Oœ +P÷ÍqÀu)ã’‰e× +ÍEÃ/&*³ù6ô‹L~Pâáè«rÜL€ð­¸¬ÃXäX`*&G„Áv#Âü½ñ“¶ZFx?á*­|Ëжª +Ò€R÷SóÕ-¯¢·J`ýé•…ŠÅƒ +­P¥*oƒ»1¿¦°ÐWôù‚pCf¸i¨C ±aÝU¹üÌyΛ{mŸr4B“ÀªûÈÿorQÙüÑ]D‚À»€!ó±$˜HâÙÐ9zÿ󮦀€L ˆÞ.=!”"X¼9ü½, ÔôšV.ìyyK=±t“*?3ú›ÙC1°gÊÔö[ó ³¥RI¯Ú³Öž‡@èÀ- Dj€E€¦Y(¼Èàzû‹oý÷íÈûÿV4úç²?&ì<õÿ«ÉûG÷¿šàÎ-{ GQÿ/êÿ[¼ÿûÿê/†)gã@ò*ù¯oÄØòˆÙ5ò:¯ÿáû¯lÂÐk ^ÀæCv2ý,¦ý~¯m1$§3Åow¾}?Ñë™f/q/ãPðø}?ö.¦! hpæX»rûvåw++œ |›P¢Wß©¬~Ê_é‹ ^Ì+Py\*åf—2™™N,毯ûavý êÿ%·¡˜(ê-\ø9Э‹e=ïøý¶¼ØthœAóÉ):"#°®yšVhiEêx‹…åe½`c`mÉê­qšL€ ý~Ðqó^,òeœ(òÉH5¨Eü?žÄã3HP‡‰€HtÆæ>ðñƒØ8}<ê0¾×É3±à¿@R˜©Ü¡óJ`ÀAL P/‚³á­ÏW­¼¨[ñJ®TM”xœú‚>šOå[Tî=kSAœ´•ËåJË:\“¦¢WK:kÐ\ÌbT5®WÁ³c¥û?éÔa¨ò€êy8•Ÿ{þ` €ºÑ7(ÿC‰ ˜$0fŽE°c€®@­¿ÒW¤!;rï)l€ÿø¦ÿY@y¨Ø× ç.ªÚr™ +z¶‰Å~³vØ$0SµZf àg³ö{U¯´°`ï)c:fÓÉ"1ðð°úà`šù‚Rx 3$@ýoM,àшû·Ãª¼žâÂWüzëíŸP±ÙžBø¶Èüæ­oίŸ û¿ú þÏFVÉ«««7á?ñôy€çtÜÖób´Š¥€jxpüƒ º„ðrØ ³~Ç_ŸëtN¢ÛèÜËPa¿‡T‚a¸ÞIð" C}¼Ÿ®xe¬~ÒéÝÛ++p~guµ‚ÀÊÔí•Ê;«w€¨òw ¤ ó¹x¥B µ¶º»”!Ð `Hߟzý!8ˆ–òÔÌzzY;áùy,3 ÿÔá°D/bþ½¹!ƒ³†RZ¸u·eúhi-­PÔòËÕ-ÝJ-§*©ê>õÌê wñRÜ/‚|TvŒ½¯Äæç0ýÏÐØFʸ!ýÁ»rày¬¤ö_ý†êÿ›ñÿËJ­PÞ›± /¨'G¶I|ÓD\É'&Àþ{öLÙ~ϲíÜgöBÉ+Ù Õ½=„Œ=ij5³™5³x2 ' Ð …ÛP + õÿÂôWŠý¤Û¯xŒ¿SaÌõç«Ó[_ÑÇp$ØE¨ÿ?†×õÙ_ô15œ ÞÔÿ?ý¯Fõ_Z>€Œ€Ð@²ÖõŒaÈ¡%tŽ<€F£ëÓ‰ÎF·Ói'–ü¹Nl.kwîÐÉš¾²%p/Ûúø¨ü÷î±Ùïî +‚€VV¾ˆ¯þîqeeåöÊí° 0 ø ;?-­>N‡ Fß&æ˜CgÔøóKÔÿ6›9k_D‚›€[gªYÝ…°.á@òê…ÀÇÿ Ycˆb¹íµÂ~A/žXËÕ#»ZM¥–´¶¬hÔ7«Üõ;j@pUÑyciïœIž‹„Vž€ EBÞÀ˜ÿÓUÄ€-¾yKÄIý¥ÿµohßl >Q_9o°%°¢¿wdý.•þ*?]èš<h° 0Ön'2s~[i8è$Úm^ýs–O:ƒ%>§ø½lo2NúÍ,¥{éκÿøí••ÕÕÕÇ”€àóL<ÂÞzD‚N,³»QJÅWâñÕÜ,›gbþzè„Ù°)ëþÁ .€0œ+ëz¡èެ\^ù3à ½z” +øÂA"@zó7ØE^Q +ô´ÜÖñrµZµ«Ë©jª²Vpµªgr>ŸÃ™~À†#¤÷ðçM² +Pê~ÙµO$HöÿBàÿ9Â02‡ußPèa¤Ã( ÉÞ?à‚~'m€@\< ÄyRÆ©É@ + `K0·1 Ú^„ð“¡§~„Y¾šÏoUr•J´ôB `øRg;“ÁBÅó´BÁ+ªEÔÿjõ8ŧ· +[ŠÌöÄ<­áNx ØO4æ¼Ç„o]² 3šk8õ€ É +ÍÏåmB°°`ðDõv|œ@Ì$>#)¦‹²÷?^ãì$$œªÔ‚¯W݃€g¸@lÖ¢Àʯýœê%•¢³ø}»¥äã•ekKߢÚPÊåfsˆt#KÁ©S‘*,Î` á !¸¥AP7êÁsv‡úÌkÿÔs‡ÂôŸw¼ügg ÁpÅП<®Aá F¦@‚À™@¦ÿšðì+Š˜lnêzTÿÔÿAÛz\±/?í’ ´Ÿœý•C€ï +årÍZ$À»°wr´jNåß9<¬e3;SšŸß_̽WZȽ»˜³ô¿-ÙvaO1™ã¿ç0Cyf2„4M³ð"€ ÀØåÿôÑHÈ6§;òú#,þ¡¤FÿÑW ÿ?åÄßœò®àüÿ·£úÿW’'ý¦üŸç'—]Èèˆ# ÏSïËMOï+`P™§#µþ]“Œ°Ñ޵;m¶4é@Ü—Á‚?Öð}³ÑóÃ^¢Ó£B> ̓nvzú 'b‚bÌ ¸7;µ‚Å?+?¯ÀñoñéN6ëc@°"±[… +€ÕÿÌR¦í‡Ùß÷³2¨É¥_Ä7#, èeÝÎu±$W…XÿÓ±¶Xl±/ø^ô3Š8ÃÈb–ÀšâëZj3€jªZI­¥¬|KÑ +Šfò_SL×`­P€¬Ï¤$& +& Êz’× +²‹l€äJ€uõmcˆ)‚û a!› ò]©¬`¿pïéÂÙ@øý +Óßè‹øªp +T­ÎþÄb’„¢0.Hž‰µ@c|OCéOYV©§÷0lˆ§¬\©Ð‚ý‚æ¥r¥… +øky[sWÅð_™™÷ð1Dh“AxÆ ®Ÿ3x]&O†‰éþp8¹ Py74BN ¸üc[' ‚ iÀoÝHÐUXy 0´®ç± €.Ë?K°òOO<1W‚m6¨7WW×É«ë¿~[¶ïò—kµ£j¡p´°WÔ­¬)@ó0[Ë:æzÙ.Ù3ÕÙåÒÂìFivfvÁ¶•½‡*øS­©{¦šXÏš‡p™˜„Î^aæû×ÿk™(ÒÛÿ”­ü°` €>¾ŸUÿ_~EŸøêÑÎWèýÛl°óèTª'€Î¼!”¼²§k&ŸÙ¾9 ìÛuÝÓ½.5ý†ÒncÐèúX„n×*ðÿæB£@­îtÚ±¥¥6¶f¯—í¥××Ó=jýéöþ¡Ïñ@%€Àêí>m¿8áÊÔ꘤}LÀ4 Sšb +@ew~>–Éü4æâf}äc6›ãXà‰èóå}½\F­¬oŸ° [d ÀCªÎÛÛ \Éúÿ¢G"ˆhé®P«¦µ¼Báä\»kUׄ·É„ªT[ž=®è’航Ì…g8B¾˜à̉ޟk¾*¬€ù2}l›sü8/XÈ Õ¡Ìà‘„$š,çSyS¬ºfrŒ~i^ˆ‚ä‡-Ý}¤ptYÿ¨C6€Mp@Íý@5Z[šŠúïµ +³9úYVÁZÔ½êFÜBeR<ÝšŸ/!ÀÄÔótßßkÑ—éÀq ô08(žÔƒçÑuýßÀ³­½£‚î/tÛ„¾_ø«ÃÈ p($£d€Ñ  ¹û)]-"°0] €ËþDÕJ"êoÒž")|³®èõzpýWþùΠ\VjÖbÁ³–Wßß3³µCpkÙOìÛïýÔ®~¶0;›{·ô™* ];Q˜è K…€™}H [Û[—‡M‡Ú.Ýúþ€‘ Ðý#ÅRæÅÿ„0Í=ùG_ÑËΣO}ühç–HG4Ê<kûM}uOL m{ù~—cBmÓ&ÀŒ€L¦3‡<¹ÀÃ0ÛîšFc&ÓuçÚ†ú‚ªµßÍ,%:±N£×ÉR¯ß=ètüpö³Ó‡Óð÷§ªÞîù±t¯“¹Oõ~#÷8þÿ±ð;<˜šZ½Ÿî¤3Ðmé4ÕÿJü1—øFiw#úzÿàDëÒùoB@׬Ïéú¾ÕâöŸ:~v®5a„õ2¨Ã PŽï_Æâ)!Áì  àhákýh™Gkk•ÊZe­ +.@ÊÒ´VQ…ˆ ºÁ½rúÏ59)6ƒª „å@>7¢ë‘œî©XˆÉdꟌLÿ˜ ÀÄAM +T– &Ff‘œbFŒM Æ'.Öÿª „“=X$Ý|¾ª©ÞBå—…Vk ¿U~ƶ,E±OÙŠ—ß¿«+J«¥)æ»}ËÓàU0êÑÁaLªžÂ²˜&Öƒ«zðÌöróßÄóà·#V¡áJÀÀUðÆÖ€ ùQ14n.æ ïWú" ˜OýK}³¹y‰9Àcþg˜WxpƒòZà* ÷ì«$c€ë¿zÀw½üP_¤wÿþ¡«[5sïë,&ÔÕ¨•KïÍÛ Ÿ-äî +°gö´šÉ"ÓT TÿAü:¬}b~Â~ p0€>£ïëÖ l¾ùM4ˆ#—ú +S_!<…ÉßÎW·v>>ÝùøÑ)a€1 x›ÒðÑ-©ø ;¼uþ¦ÿ¥'ªˆT á 43¿¨+FØmtgü¹öœÑ0¿Û0² ®Ñ0ºí¶bh$Ús>´{í¹ö!€DŒ@BçÂ? VÚgÀ‹Þôtï"¾àQ[¯NÅWr÷ç+l°òN\LRKÞ:øtÛÝ8³t?.N÷b±X'曇þzÏŸ^?kÿ&Ö ¯lÁrÃàÎ_£ªB57O ¥q80ò‹”¿ø@`(á ,g÷8m¸[ݲª¬aOUSRÇù}ŠÞž¡"'ÇÐ~Ï΢ݼLí‘‘¾®L4$Ü0dûç²9à0‰"QîeÿÏ-{RØÞ?¨šC¾Í†;°÷ßT5p¬F…ÇßD2¡Êþôáí$&) + ÿ8H×ZF>[­Rå¾=oçâÕêÏ¿ø"5§izÁó:Àx(Hb­ªŽ½~sÐ!U)ª˜ÔŸ- ÿ6À™ƒ Vª*‰®ðĺ_(Uw(Eüªºr 0ã`,úØÐcC`½¿©_öûTÿûö±JàH™ >§Ž]ΗBöÃõÕ“çš?½Â _.ëçÊË^Þú÷º[°kTókŽÙl®×¾&ðIy±J`ã½ÏfßÍ-Ì–ôÙ…’UÓb`âoUÛÛÀÌ2hò@4ìü÷ýÇýêÓÓœœH|šH÷Òé%$~;_¢âO­¼-ÞÿÄ_÷×':8[Êå*äJ¥ùX,“‰µ~€i:+„£<`éØ M¥léûV¹@õ²˜×NPø‹JZÿ¢» _ lN\™ürx#,58pëÛ'ŠÞÒZL$pœ¢×ÊÚZ•`Àq%…|@×CF ±‡dxUðÿ˜Gzñ$‹`ˆ ÿ@áÿïÊ< UÐÀyOàp#ðú@Tr6æ½ÿ É3Gó8’Ät¯Ã:”‡ƒÑ@2Ñ«;IlÜ:Úþ]Øk bNQÇ]×9âççý*Fµ’«æ[¥’¥å+ñ\Áª”<¥¡yºmÓOˆ™‚¦ÈúŸ4 +žæágfÀH>rð3®ƒgGÊ¿‘g  +0RüÑøŸÉ<P£Ïa¥¸#*À . Ë Nf #èt}óòèhóÏü›°¹¶ÚluÁºW޽˜ˆV\_ž¼N@ÏëV¹¦/t}Ùróö^¶VþÚÉšÍÚ'¿6ÍOöKþnauöλ ¹ÒLζgÊ €jÿ{ÊYl’ͤ#ë?}n_/ïßõÿßÈ€‘Ð#–ò3ýThúЧY#ðˆ €ß"ðèãÓ¯(„A,pzkœÈýÿö›À«½ûD¨oÓõ¾÷åü¼§xJ—íÿLó²k4”6<ÿ»n8TîÍA`4ºDÆŸóÛ±œ€Ú6u˜½@þwxN£^÷¦ÁìƒÕ_zé?SË¿º[ª ñ¿M `eåqü:7@‘ЉõæsHÞyO-ìfbðj¯gÖ S¬ŒWÿ‡7÷Œ¹}ËöÊ:õýˆå)‹ZAi)T—9Z·în»-Œyåþ’ @” €Iz2Pµ¼¥¹y‹éÐÆYžÎé#ÍÕ +š¢ ÏÝˈ8&FƦR¶-Å+À{§UÔB-EÛ’€z>tÚ–n€/Ë8ûq—ÕóINþ+º­|u¹ +ÀˆòXö +Õ¼Fé=ÃTy ñ„Fº|±q@ïÄ@u£œ1i¥o7tYeŸèNDX$!àl`ì'„%€#! ~Ø:(Ð BGTí¥×l ¨€˜K· þ9·4*è¾rËŠaçõTª”[[¶mz_=jiÕ\>?oiùYRMYÄÎ^6 Œ]<ÏúºFPÂ%ðovÀ@•TU(ÿ°Ótþ„€2PP‰,!‘ h(ì +ˆ4Ä` °É©€TÿõþŸéÇWÊ…=coOñvØZŸðCS>%°ƒ và¡„àQÿß0_u@~ÔDæ ÂE\?Úä"ª<öÿ å2O`5T» £½ÔVº]×Èt¹„ß%K1¥ëˆHÀƺܬ1«÷×{ø1Åoé?³úŸ^ßYëÿ˜Jø˜&ëÑ}Ù¥¸@•²>ñ¦é¾Ç +€æx Ùì\yÆ*·”:mM+žhy¥*`QÝvƒíb±ˆ¸Øa.ÉÆø/i |ð >Ä7ké-«šJ1 íœÀq*eUÖ,˶,jÍ”ÿŸ½÷ m$ϲ­*HÃY »*˜ +R(¾» LvLÐ%AxÐ ¡ ²Â°¶œE"»ÒàR*‘!œ+Ì`(ŒFöƒw—å“hûA“.0Fý ‡B$8‹u¿%IÀ?Õˤ Y=9gêS±ì=÷²]ÕÆYµ“]rZ–•vøŸçÜ{Ï=G©Ê†®¶æazÉC Vä5Vð]B@PPŽÙk{ ƒ}Vþ…Ò~8œ O¡3Ø–…«Æÿzxß–?1L þwN"=[QXcÎùB +o®éX›xÊ*n:вKõüÙ™“§ÿ¼¿«å=«žÝ/®.f–ïOU˪g2»y_‘òv{zPÌŽ­JŠnzšC_§W–è¨ '@ZSï÷ÌVþ‚ž„<°õÑ +àÅ@fý0êÝÿ %€#|Îe@Öÿ,çQ  @ +üÛ•m÷uƒnÚxúÔ@Û¯Võ’R•Ã°í³¡Õ¥ßâPé^è½a­"°í§4ÐLÓmh¦–×f¦%[ªúD$Âó†_,ËJyÞø§SË·oßý(3žÊd½æþã«2– ðçЈ]%€šÿÃT€—€¡`ƒk~Bõ£c¡`üŸäùÀ‘0ú?ؘÝ`àÎÆñ‘ðÎ €_÷ÿ/"ß}þå[ýs?÷pè˜Ó×mW N¶P­Ï+!°RÑ+'¿•N*ÍQq’*ÍÂʉt’HF£'ƒJ¡]i%"Ñ$Ñ€B¡01ñu‹ˆGú´Øx€aýË} +Ñv7RX¸›aà]‚µÿÏ—Øp³ÍfÝH·ÛŽDS~qt~ yÁË›ˆŽ$S©öM0€V:Üù»Úû…ëÄ7¤DÍ2ëŠk*adn]™v:Ð:e^ P”Î4KÞc"ù¦÷zZbÐíó¥®g0ˆC +0JTàþži¢ !·Mèé.FOCü 2ïçsuÎÝ{»Ìø/Ú:‡a2Q6oð‡S§1…BGä@±'Ó‘B-šg¼ÖDZƒØøVÀ˜úË0€ƒ0}š^f…†À’‚@>/Ë +Q˜Õ|]7³žU„a“UWòž—Íšý_Þ b¨H¦U ‚º~ja€hƒµ‚ðz§ ™ƒ#Üšˆb¼(÷þ¢Ÿ…}ú‹Û}Ñ €†Ý€ÐHW/^E'HïëWšbž€|¡â—È_ß÷ê9Sk¾T•C_6”C§f²mÄzØZ ?ž罋„vÎm³][^µ`Z»>ÕÚª6“5ˆ”$Ï‚ðPõ=_näÀ²Ëc?{@ k¥îyEÍ­–ªã%£\‚ðÐ÷KéwìØðŠÝ|ŸŽü~ŒïŠÀÁ/oÜ«~ÇÇÃ%€ã#áõ;Šð‚@xýoLø ˜¥Á¼ÿÖ@| ÿ>Äÿ·€?ûËK9”HÁ©›ÇÌÃÆ?Ö°p’€@sEïŸ$•f4Ù$èW ¿­èƒD!š¨è‰(šÿ‰ä“&€$ñáj٦ܼy³u“­£ÑGín+òÉÝ÷GðGÞ6Ê€ùÌÂ;MLDº‹F«™HÒWòDý?úÌk6Ûh/$“­EªóÃÒÿûø^¯·ˆ}MÉ7ó:TÓ.ã¿|LËkӪα¸Æ >ç±oÀ^ÏoRøÓ ¥×žO»š†‘?:q!Ø«™ÅøR1ïÏMOÕ?À1ñÙLD À®O_´.Áß1†¾ý2Fý±Þ…s`,œhœõ…‚8„tb#1hc°Ç‰?±aì ÌY§ú¿,ÆlÓ+C#i+¼Ø£·ßÀf@eîÛºž up§-é¹,ŠåeFïÃè4Ÿy–ѦåÀ\Ý¥1pÉLih¹Ô]ŠÀÒ4Eæ€cž_Ð}kö^öþ²O%=¹Ïøo÷Ãzþx0 WÌ +B†«w¹ˆ”NNþ¿¥×Ó×ý[Js‹TR0 ø/€T5\£Z2t¹ƒSûE5›ð + ?Pñ˜>?ûîå§4Ø5M@Ú4}"ÕéK¥”Uª ×TO­6,"c3?»}ïÁƒeÌÔ½1Ï/qÍN@¶ ç€Ct"UAàÈÀ8$`þ =À—ÏŸ À+„ïOåw,ÌfCÿd!ð`ƒývf''g7vfÃú`ì°Z-€‡ +À·úç~ù¦çô± +@]AsZó>Ü%èïëýë''z¿rbèI•Jÿf"¡&*€v¥R‘¢Ñv4™høI;Yˆ$àõc ­V»ûuw‹ k€¬ˆ´ZÑOînfÞ_‚`tùÀüÏçˆ Ì/?«P3~€DQ]Š{V„—#ÍHd«µÕJo_J.ðk¸¸¾½˜ð-³hj5_è*î´<­¹éi‘ñg]n€Øç¯üŸ}‰»äjf±¨ý¡Xz/Ö\s/>:z?n®æ]µ$]0ýK[þ €†³D/TS U Oðeø¡™:¶øt4ö0QŒ“m€xD™jÅ2æùPôÛ1GüÝaˆù…:ÿºÍ¬ãgQ€Pòà àTqVëeDzXvŠA}féþýh{T y®¢Ÿ?³LÞu8õ²y° +MÃqáèÈð2tx¢À?S7Àóßý+XIÏCŒrD@%ò…$`HÂb Ø Ð ~§Àa@Jœ®¬¬ÁŸðäÓâ +o*ÕRÉdä/…\ÑW¦·x,:‡g`\þ‡ùB™zögÄ^‘XÖ®åúª¹ëç§Þ«:q*ýÇA¬C?—µ €\6{{yìÖƒŸÝ½çe²B0ìò÷¤:ªß(5JsHÒUw®ã«ÚðÅzù¥ðæ™ýù"á÷ +}<`p°1yUþÁÜÿ&©úŸœ% ðÿ–€¡àþ?ÿ··úç~9Ã`_ìRHõ¿$þvl\Òûò ‘ <—~ËãŠ1@ ®4WôÞ„`¥’|ÔžH´Ú*ÿ ºëë–ÑO· ñ¿†-€íín÷ký'!|rwánfd‘À#££ïÆÿ|”×Gö£ÉöD¤E ÒŽ6>DK™gq«@¤ÙL´æ[­Å éßÖ÷½¶×וНÑ3nOóá6ËV@ÓtsšEktΜž–áVσçXh ôúZt²ë;Ï]) üÇ2  f@£°’ôKµ Ã\¾§O/­E‚¯Xèq럾å‹>@¿,|Vl–öG/M€cl À›•|*Aû^xûÆdN#Ø?‡œ@h‰!(}Æ{,ˆ}E{ +ég! @î)u½,æÍüh<ðPöËœñˇèaˆ'³—³Þ8èq(ü­ÐwèHôÛ”z1âÊgæRF îg­ý¢êÆ3ŸI}eefô„û((S–Ó“õ¼YgoÁž\ß…0†Á°«kÄÆ^þÅgy ñ<7°N7/CNÄŠHh p©8Å¿S6F€_iü?°ÙƒÎ¶ÓD¤¼<(…D Dýpüoè|³jtô*Ýt |ÿU'V6Êðø}ðÿôìϼòÀ.}ÃÜõ5ó½’“µJ.µ¦úÅqŒÖæ{·?½û΃[woû÷Æö-í°Z-‰U"ÕtÕ¯ú€d© AºÛX¯Î¹¾áZ? ðâùPÀkü“dzøcÓ¼q´Ã +€nìL"ãÞ=> ;@àÎÆÎ1¯O=€¿#|þßÞÆïü.kF’Ž 1-`QU¢2¿ÒLTºúqê·ð\I¥Ô HRáæžH}CGto´ÚÐ>jW*/ýML´nÞÄʾÀ$tÛ…G‘vê.&ÿ››ÉÂXs _·»‘è“H·’nµÚÉD“·2™…Œi¶‰R4#͹íÁ–0 iƒiÀ•I'Û¶ž >®i¾æÓn=Œ†/ QÙ©+nà®®º’ÃÑÀP»Å^¾¦&À™Þ#`I+-ˬ¢™Ç÷¹€¼œÕg÷—è\ÑšåÈàËÀów§ß6~ÃG6ƒv@ 9@ œªv¢íÄI«ÝL¬hÉäÉ úÿS0h~’DHà` }ÒlE’mÞ HÀ¬‡jÿvû~ìÔÚ"À€v„ÊûèD7áo.ŒŽ,íß]^æÒÿ}øýŒ¾??r7±˜nG[m¬¶“mÿ>±‚…¥…¥ŒÕ@I €Bë&¢¶¶ç‚¶€mýµÀWÇÕ*ù•:7óµüªë®Ö8‘^.w^¾.Àá:(m«hiAÑË×ó^¼°¿Ÿ]ݰLÍ• äˆ#öôJÀUP¶ËS…Z/ î¼/R…9Kˆ'é=û&<ÝŠ²ëi¬çOÃX  ˆÄÑCÆxÇÀá7=aÔGðzýœÀËb«AÌt8ú`hDTJú “üàþ= BþøR1>ZÔ¤º§ÈvÙ1³ÙÕ¼üB \Âù¼[—Åh' š8”êTúÓÃ.@…\þËÞÏE˜2ÄzBЇAP?dCi Wÿk¡Cpèà\Y8á4 SI:¡‚ÿ?VþrÉœï'ý¹x¢=w˜æ§O,¶ÿÔ¤ †ŒÒè×Eµ@•¯Œ4Пn0}]—Åú¿\¦;Yõbßo‰ê0Aó§Ô0-õÐߥ§µùÊ3VÉÚ4ªèü7ƳU?§Ö¬Í{÷nÝûà>u?º›)¢ë~v5V2ª~ÉÚõ¥Ôac]y, äû~Õ÷]ÿU;kÏõ®¨ÿY _,õ…ÛÿÇTâÏòàè€ØÁúè|v Ø8 +Ð !Ǻ"x«üÉUôSIÐÔω¨+Râ¤28I´è´"ýs²‰sLe¼ Iº´ò¨Ðl&cõI³¢ëíh*ID +Ñv;šDÿÿë]o}ݽɎ€7· ºïÑ“GЪ›û™‘Q"€,,¼?úþè[Ò Õ†© Ü€#©dæ‰<ËÄ÷S­k[‹ÿ-rÀÍí­›¼ö·}q2*`’j™+®âtLzš@H39|+®¢ÕˆP©ºÖyî¬õAÿc¯ |D¿×»i*Ì¢g©ZÑ+˜(Àâsa ˜Öu4MmþLÞŠb¡LŸwªË!hã†Ý ÏûY£ ì‰@ ùJЙPÿ±+»XLDZPùÃÙìÑj éã!3„P°' d‘6$q SELJÉN_ÈbT¹ë7ôóKu}Z.OÝ_]uëJP—”z&K%‘«HÄÄ3c¦ä`mŽ+ P#úLÅu]I¢ÏQ¸óöÉØçxH´ÿûâZ¾°Ö¿â(Æ@À8E †Ù€ŠÈ<á@à“àŒÿ­ÃBNÍ© n®´NV»–cä¡G@®ÄTz} Œ¡À JSÅ_1Jzµ„1@Õ¨°   \Å3¤Nç¬Ü €gW:g—ë²o¶ +ð•·vQìïšt¦yïPžJ•­±ªág§|¿˜…)€jyDn¼ó΃ewì^Öóñ+d0°Ó±jµ¤V-Œ–æèo°Í8—•j&:~Þ¥ïèß1ø‚€DŽŽŽŽg6`îÏ.¿;Ç“³;“p÷<8`ƒ?Þ$š"0{t}à±h@@ðäÅ@àÿ—o=€ßÜË+<»zaÈÎ’¤hÖJ Z§Š¤©É}` •ET©æwÌd@ ™l&ÚMm»=òÉ'#-4©rŸhw[•Ðàkºy™Àív2-”¥‡¶Jç%o@d` ÔÿËÝ¿àªèÕJ•?‘Tþ†Ñ1†k*Ъ”é‘+_t¾³pEøS˜ªŽü²i•?ϤZ¶è7¼,vý\öÞ½ŸÞºóÎò²ôÑÂ:F5$FL*U­’æi¹T•ÀºQ ò%ßô« _«½Zàåóé_½ûů€ÿ¼8y4 W¿vÿ9&ð‡ÀïÛ~ìÌ©€TãO±å?$Ljü;À~']*þ¿¼Áðÿ +§Ò—Îs.à )¯®¸ê”&j©ÂÉ@ÖaûÏ1Áÿü¡èú +¼µhSª4›Fßh*XH&+z+™Ð+t¤ÝJWÚ˜ p“ º ÿ6T€Ñ'.,C@Uÿè3 ––öãoÿÙèÏç?iG*tû10ˆ$÷ï‡i@›ôÙÍn+nÁ` ,ýݼÌÚ¾°à=¡Y5ÕÊÓ³1pL³æÂû×TÿmšJÎZ>èPé9Ý©ÓÏ¢óà›^ïåùë +Љ€¾ìN‹Ù8Á?\rAž-Å‹K÷÷ò¦€ @×¥ªb +À4`HBý_xUæ’ÛzÛr™ë0ÑÉe=«Šû°Ø“¹Å‰ñ†€=Ì,sÓkZâý¾Ü:#ˆ[:6õä^¨ã&€Aã@lŸMø—„ìòÙÊ/ÌSú‹£™x&ž]òꦕ/æ§a& ›^$B—@/®POëœM쩊N_©.ñXfMî¸JR”·-üùÿÁö¸ úC €à¼ 0´€>äb>^ôÂ:^éä—hRÂW‰øj.§H¯Ó}¥C#¶.Jbјûÿ¹çÏ­!ûG @‡Î?2:ezØöpöÝùÿ¥0¤oòßàU €¦©¡ôg¾6•­É»V£dŽ• fÊò­¬ À€[£ï¼óàÓ so̪I[@É÷ÍT­QÚ,• o ½¦eÖ xÅÀ—Ï ¤Eý/&GØãŸ¥<•ÿ¬ ÀÖ~<õ'€Ÿ…0¼~ŽPðÝøâÆt€ ú¨cØ +ðÿ­À›ÍÎzöõ ÌñDT?ÕTMÛMíæ5•JþA¿?H mE9 R»ÁÊoÝ€H@°ù?%õD2)$¢ÑJ79i:Ý£ƒ.À ¸;ÑFíO¯­­n€å¾háÉnþPu÷×£Wæ"‘GO +Ñv‹Û‹ÍBæÙ³g„ÿË©Ån«ÝZlm/žl¯o±Q¬ò`‹S‡õ?.ºï¯Ô,E üδ¥™Ú´“¯þçQg* éu× :Áª¹êR±[î…I¾/_Ïo~Ø‹ï•×²ŠžU´âKžP,í™ñ¸ä%l™Ë,¸°'Çp ;´p†f@̆ÁT™—¹Âqþ™ÐÄl:AªùÂNÇ)¿U?e!ºÀ~»Ùö*Äã¡a !4Î' €’îüá/q˜ðjÎÏ¥rj2ç7æJi› Û¹9^®¬WÿKTðëÆ•}º‡Á_½Z½¨ýeæ)xÔ°ýŸp¦ü}-€Wµ65Ó’|ujŽKΧJ¹fek +ë—8>@ŠÀää 6àÈ!€ï¾ûvà /ÿÏÎÎc¥ôµ?‡±ºþ\Aˆ¨f¥¦R–õ¹ªYjóDîô“抖RUÖ€’¦ž8ºôñß~ÒL +ÉD2 +ÿÿ'(z²ÐLH•JÕ?Bo¶nþo!°Å‘ÀÉv$™,ìöˆÍkiþ2èn¤ùˆu‚ݹ֢^IlÞ]º 0²ÙM ò?AÈOøß"Ì©€`k¸¸~Qÿ©Ö]M­ÕÑ]vW$W);fàL»€›éš©¬I«nÞ VkðãŽ4ð꿞`ÀX¸È××󦪈{Ö}´–––ŢäÙYÑm;$±K# ^Ýï•E¦j/ŒVþ ¥¾Ãmâ«êXXoó¸žÿ…µÿz1þup÷•%2|„^Œ5…ÂP†?½(bë¾1]ÁøVf§¥?>ô’øbÃXÃê©|Þ£‡M°TÔЕé$¿»;B(f* „Ðî~ØL&“ÑdE¶Íd´¹’Œ´  +M}`TZÝV¥»8àn=¦õtYl!ê7Q!àýzI€ù…ÔhXýÓeÙ«,>ŠF&’Xùk¿¸»¼<úŒGÝm¨Óbø/ ÂzP‹­íE–¬‹ÀÖº-ü3dG‘èé¨L¸Ô‰èpÒü²ãî™Ò´\¯™¦V7÷j  +æÙeN+‹½Þ€M…5¯hYµl&.z¦›·èUÅŽnË8ÒYØ,&&< +îqv¯0ÄùÕ‘EL°£Uœk¡ +´–ƒÀ@HxàÝ;²á| üwð{n-R©êòÎ@ÃÊ5Œu&ÂiñКB@3SÙWiÀè‹_瞘ñmlìÌr ÀñäÒ~f±êÇIÀ" +€£Yú˜ÙIDÿÎ )ÄÆ,²€‡!€¿z»ðF—ÿç±ô\.òpnnîÚÀqꧨþÿÚøØÝÍTÊJ}Nðr"UºTÁ EZ¡«m*% )õI²Ùl'*ºÞŒ¶*‰‰k€+nl·¨ThuÑZߦ +½Åð¿ÝâMÀvw±Eàã}ÿ?¡[£=€g­ÈD;ÒžHN´[sÉÍ“å¿[Ø_]ZÚ\LCx³ÕEϿ迴þÉ€ë¬ +€õm>%bµÌQjØÔ§§SwÊ„ûn=oš’¸ù=Ó­»Ü`ë[aðzø×ðüGðéÎSši¥âžfQìå%%Ÿ7‹¦dˆ±)Oçy&C# ÐÈÇî…åTHÊ"^µl3vb29 ºû¸_wlŽ”müH'æý@NˆÙ +ƒŠ|iІ•¾˜:É(ºvo…ñolh>È}ÿ3Ðt"ˆ1辆®Ä§êÙº£äq?î-ÍHJÝg½¬™Ï×óyE[šªëJÞÌã׫HyËTôºæi®h ˆéE¾¶ÄÛ†œ‡´æ·Ï`¾@PæG3=<Ø€{ÿN88ÆÐa&àÀ"€?¬þ—õª)¿”ð©úÏY`©œågO\¢RBýŸæÞ%]©b[½2¬û¡ù—0::´²¡w†áB˜zuùŸžçò石ï1€Ÿ °vU ð™'+©Ã’Ï7jÖ{ÙCË3KÖxM-ÞþèÓn=¸óËÚØ½å”Y’‡ª”Ã’›Ó‰"‡*ØæD3IV° IJ¢ÝìR Q© Œ.3›Üd À×Ý6Ò¨²ÏlÆGçGÿàî³Ñ÷Gçÿ_ºI¯£…‰6Ì€'"Ý­ÊD2ùÉÂhæ¶ƨø´a,xsÿ›!þ‡æÿöå2×ÿÄ *XbGÖ!>®n"ÐÕ¦eÚÚûÌÍ×\ÓôÝ Õ;û&öš†ž|Ž¢ÆÍ¼¦jTý[¦åeâf@8XóV%:}Tq¶@g8÷s2ñp‡kîØåù”ÞgO`tΡ×çþܸˆ ;2:g±‚o lüÇpÅÿy&|‡ÎàD€#¡ §ãá(Dœ˜<ôÄ‘!'$:QŽõµ‡ó +å`u׳¦óyŒ6²¢ä•xÜ+šÈþqó’g)eyf)[—öÆêJ`Ž+Žfj+pâo5]ø/Zårïí à +è _À0À{ÿ¬þãº/3‘pi ÃŽ?üd§’ʽ*FL|‹è~Î/U<0ŒR¥$dþC8þ0`Ä%?ßÃ[bû¿<Œ¤ͨÂízÐ +ôŽÛHæ ÀðÆO†˜–©újmÊõM3k(^£äÞ«ÉV6;“°ŠVÂòT+uûöƒ[Üp?Ê,k~©#ÀÀÆ Tò-ŒÔTN*ö§‘”ÆŸI‹×$¿¡YÖÔµÓïr÷“Ü8‚ ФˆþÅ2ö ¸Áæ¿l¸±q´ƒ úÈcˆþnÀG˜SƒÐ¿úÕó·!€o,üÇz¥Hîa.Ùˆä"ss×¼äp¶çºЋ¤}îý3rÜNô~Ð\ð‰$ér_ßü\Èz žÈz¡ U¢…v¢Ù޶Ûh4¥fRM4X Œ“V·%$û]Vêµ¾†c`4™ŒÞÉh&æÅÈzt8˜} AÄt4}`áîè³…‘ù¥åýæ"wá+L\bK4þ·…Ðf€-ö„‡†-ÉÒ:ò|€ÄÿùÓTŒµº‚%€`[;{æª_7M¡|¨x{ À¯£}•èe’ïZÅlÜóâôâ*u:]ä™^!=%&€c¼Àö}bÝ.6´Rí…ýtóù¤ß eH¸H‡æaÚoÛ:ø¹àcU`Ìvì+ËY ,ƒ”± ×·óu}=¹EmÊ2ÅLw„D0/WêùÌÒ=ï3I©§´L&ëe÷ñ#ÖëÞT]–ãËž™_ÎÐW-GÖº¤°™qŒÎ€Î©Ï«N0MàåË·à +àñ?÷Bo`aþÂ>ÇôÅ îá„€¾þCõ·‹°¹W)%á Â + —òrVÉ~ú´ªÎ¡``ú_M—‚Ñû¯Š €}ñOîÎ…ù€pøfmœ—EÕ.ðŸÞÆÞä?õ+‡©–åû攫M™ÙŽ^œ+ŽY†–ñJD­ñZκwïgÿøÎƒ;ïÞ€ÐÎÆäŽh€Cà=Á$þ~¸øâíóó „ÿž1Gð?þÿÃF#=Wºæ'~C‰ó‡R? N•@MYr*¡0Ô›'•j ©Bçï©»»U©W=•¬ÈÍGQ¾4‘“J¤Ý.Œ5¥J«b¤ÓÝ›­íÁ`[¬n£Ð…ÉOáoG—7wëÞèèB&sþþGÞÿ°ÝmÓaÚ´ щÂèÂèèhfßk·n6ÿ [[7Ù`{ëÊ ¸ 7ÖŠ¥¡§aùаžjS¾cjnq/O¨ïÎì홵UâyºH,i¿Á‰êüu Ð7€;ÈO×W5­øÞRÖó2h•š›àº.Ííп7”Põ¨Œ ªçýp0p¯L•¾]¶Cá‹„H¼ÇÍ~ŒìAAÊ6•ó6×úè èŠHv† @ȱ „Ž€~èÕCuØçž@J=v@N™¾3;œЃF0Ö+ëJ<åyDîg² 4’ÇJ‡l&cÒ¯8ïërÏÌd¼Õ¬§Àʽƒ¼Äx/KŠØ4¤ß…BÈï¸yD3¿ì½%ßk +),/Ñòç€ÈÄ¢¥ó3à?\þ ˆ,SQ_*AØP­½¤èÊ—‰tX%HÙýg¨ô¯rë¿s¹ív@ #"ÐF³{WCýn<†Cžszì½¹ìWÕäMKõ}ë3·fiïz±Q*M(f§üڸ媞e¥îݾõÁƒ[wî|ê~”ÝÏúøå†jß’-WK¾å¡ÛDÖr£„xà’Qªú}h­¡]Ÿ¼|þpÀ©L°øDøÀj@,õÏÎÃûMÙWvvˆð`võþÁƒ L +xppãÒà›·OÏ7îtKþFr9¢¹Æ½{Mæ°¦³õ‹rêA Yãªö¹ËÛÄ+MŒùõ +2F}J“01/¬HA2*éíÂD4ÙLú7ÛÉf¤pW­œ´ZéA "èךŒ=€nòQ;Ù¼»pw3µ9:2¿°™J˜<™@ˆ@r¢ÝMw'¢…Hô×ËKÏ–ö-Å?¢‰ý¿Å­m¬ aÿ2Àu! 0 ¥£(€•¼î¸¼P×à=ŸŸ)º{¦[œ)ÖòyLLzàÇ€ØYïuDÒ\IóÁ׬×ón¾˜Å2€åy’£w‚@©BýO‡&þâ”yiX6?ÜÊÙr™U€f¡WO¬w±ê7숣 Ç‘‚1 „°ùAì2~¨´ï£`s¦b   Ît[¬Š0a|)EÙ-fSTÊCÚ¨™«A>OXoyñý¸§fæ^].k™L&¯å,4ÈN`z#>·ŽõìdBÀKšeLÊo®>¥C? »ÌðÆðÈ€‡]¤BàÆ…Àùƒå?çCc¹E}¥äªp°RjŽÊ×TͯRiî'€ùìü¯§Å´ €!àËW4ÿË.&½áúßEû?‚x)‡×çbü;ƒg¯Ü0Ѱ¦ü]ÓÌVå¢_*Y^ÕŸ±Ôš•:¤Ú¾–ÊÜ»µüÁƒ;w™lÖsK²<àÀz¬dØÕC"–•È¥ˆ¤ Î0JtjÕ7³5ˆ¯M^~ù\l@îwLuû/'fŽf78ôwòhg€ôºÀ –ìÌNŠ€Ç‚ìßà ã^@¯à ìx›ðæÿçFz®ñðဇH#G¯Dæ®K>!pvw ãª5>~Š(Ñ“DóäD¯HÜX”N+P›éñ«m6 ŸH‰D…þé•ö‰ÈÇj•n›€5{0 ðGÐÍ›ƒÁvdâÑD$™J-ÜÍ,ò/ìC 0ÿó¥øüÏþóy"ì$Ü®vz1…gàþþò]o_ín±9ÀfN@éáö?lKB5 VÖ·y+*Z‡+XÚU5³ԥΚâ(¦Õy^Ü+Îì™y\AÕ@§.´¾9Ž€ßôÂU>V·®yôÌŽ¦¤<ŒÈ%Ç–;ÎÝ]~ŒÿeûB:u© ¶yo³°ÇÑyr¹,¼Ö±E¢3ºü}Vÿõ0ƒ½zùèÈ:KÉ1éP$Þ`G?aü ë6t ,â\,ïaCÂú8§Ç)@ì4à°…‹ˆeYñ¬™W¤|ÞRë™%â9)¬üå‹›uGÎ/g¬º^‡n!PòyÍ +ЧèÙJ^ªkÞÓóôuÖ|SD3;NïåÛÀwu=^]”ÿø£Ø˜ß8ÎÅ@ÄÑûÄâl˜0)Wõ’TSý†¯úh  àÇjFµ00ì=\þšÆ~ÛàNÄï\ØýG¾ «ß› /WøÀÓŸšÀÜå5@ë3ߟÚ%`©¥Rm<­dÌ)º×s‰¨©±ŸÝzçÿáÎåàÞ˜ç¡ Œ»à÷kWç¸MÐÈ¥<& £Ä äZÙšäÓqÍëdÁè—ìý³ÆAðÜ?( ˜;€"$ðùÀ° ž|<;¹ñxrö¯q›ñŸµp þßøâÿÄ +àó· +À7®T øþ#¹H$7Goиþ@n-ºrªZ>P½”j¥Æ¦,MûíJB=©TZ+’N…¢¤H•š†HºšÔ + +ÉDÚ¿ŠoàV3MžD`ÜMDûÛƒ-H÷oÞl­ìÖD!Ú.4ý Œ–²£ ™ÔÿÏ–~>OàCúÜè£è"•ÆúØdÁKmf–ö3"ÝÅîâV€­­ÖÖ¢(ô·¶ðÌû¼ŽìA…j~+æ¯HuÅB ž7;δ2ó^|¯ÈÅ?Ñ€ZÍ\õóèOÛ¡léuø]ŒdYQ4/žµâ3.ýV½¢[× T%‡ÓRÑ+°ËßØÐ¹Ÿ;µeFþÞpÓ¿ú¬`’}5>ï‹Ù·úbO¿À™h pí1 {€+à™(1ÇeV²4ßag ÄÊ#ÿ‡Ž¹&2è»Ä‰›;ô…p›x‚9ÏÆ§òýšëªG—ì•üûZà3:Êjf5PœEb°ê©y¡±žìZ⸚R7W: /rùeïG{’œŸ¿pžþ™ñ‹<¢ … +ð¢  ‘$ð¿ÿôá¿`ô€1ª’TÂl™Ý€}Kµ‰jŒ(‡ÏÞÿ6½Èæ¿ÖþlNø»=€ŽöʬY½ ggß³þm@¢?™€9eM5ÐÐL3[’M«Qò½’rŸ À¸eyÙ{ËÜzçÎ âcãDlyÀ5À:€qèkÞx-‘Kn–Òi¿AØ_ðÍ,YÖµ¶þýÅ<`àâÿ`<û1Ü}n[ÿÙÇL `ÀêÀ xÏîp÷gƒ^ï„ Öÿƒ;\¬þ×wßn¾YÕÌ(þ¿ÊQퟛËExáÀue€=ö¤ &ª7®ªšemZÚ\91ú]­8vŸ@D‚ü‰¢RPHE“Éf„ð¿› ÐnCØ­À’=±³¿½ Ôûëv·=‘è&›R-3?º¼*™Ë ñÌ/–îÏÏ£°4:ò ZÀábw"ÙÜ_Êlf<µµÅÛ7[\ûÃY(TBô·ŽÀ0"N \r¤¢ëL.lfÊŠâÄÊù™¸6í÷âñ™½âžiîÍìa€hüh"¿ÁiëeìuÌ¡ÅI°@w5…g\ªïÇWøì:"ˆ €d]4ï¹ p&¢wca ›ÂÄ9D¯W#EYŽF=[¿ÕËŒí=±` õŽdÃàM–`0”èü"!8Œ¨(¡ÉK  ü+÷Ñ/Ðy:¦O‘á +Äñ‰ô¹ŠR4O5³ž—ô| +i't‰gŠæjPèÓ$Å4óYKSd ücº÷òp`é”·^Yç´îÀœ÷8\àüGdçååÞoþœžÜ¡ @îõÅ @Ä@ ê…%€ 2ðG”!€ñƒ^-%xÐò‰ø>ý;”éC|À?ÉÀvƒ¿-êÿÐ’Ho½þ @;tÔüÎ à÷2€³7}ð•À,ÕŒ¸ ÅÝ"€ÔaÉõæ:·1°ŠØ³°RÙÛŸ~ðàƒ;wn¹Ù±¢ç—BüGþrÉ®6|5멜•j”J†ŸöÏð­lQQþ®µ{­oøÀIøû À,Âÿ¨œGõÿxgö8Tðöÿüþ³'!˜ÅÄÿÆ" ¼HïÿýœüvðFÁ¿N7r\þ?\$ôÏÍJ„þ‚ÿÒ\îìš@´s!€`j\“NSšD  Ò·ûIï÷1±¢S÷®¢’#iTõWTÍ_©À( ٬艦4¨D"X@`·Kø%€›l´ÕÝJowÛ-}1‘”üþòr!_]έ"6ýâE³˜IM´'&¢’mLü‰ ÝÜ\ͤ·¶áÿwþÿ[‹à€ÛëÛôL + +°­[^@?QMµÂÿµ^Ì)©ê7‹&ðß""P,ó€3/ágï—{|Öú&ö§—¡Â ÀT”à£=ËŠÇEó–4‰»÷Ü…ÁŽÎcŸž]´i1MíÉbµºÇÁ?(ñ{¡åªÃyºˆ&@bŒ·Ð ‡b¬@_!vƳóΟ Ül@鿊$¶þu¤ÿõen,p2€" eæBè@-`Ìp‚¼[ÏשÞW,:ïATAåJžÞê(ú¥|~ßË;== ¯ïHñ…?ºKWŽ04r_’ü¡Êk2þhY/ÎËåΛ<}þ)€X´¯hx÷_$D³ +@g :òDKùñe³EµB…e‚JËôk|¡ ŸFÿÍ®rXø‡¾•o{²|1 (#™¢WŽõ.¶V~¿ð+À7=à•5–YS}kÆ÷g´°p8ÕèÜc`Yšg™©±ÛŸ>øàÁ‘´lÖò|C cømWmþyV#•ÚôK¥Ò¡?GCºåNÇ«5ú3™Þ5 Às‘°Ç(ŽBËžÍnl<žÅ¨þ¢ް ªÌvxâ €Iv@'á_„àmÀ›ÖûoLPˆ”Ó|ís×T´é ϬR=Xõò;HE%¯)0 Ô¡\ÔAÜ|^CÅ/÷¥.9=†‚ú´°!ÀV^ôÎ_ÄÎÑ8?ïÐË‹?  +<è…ëÂÐ0ìs Ï ç?æ¥g±¡¯¤l”ª•R¢¦æÔšß ø9­”ŒAˆÿN3â ÿ0•ˆ®cWÜ—*óêRüúvÎÞlðŠ`ÊÚUU‚4ä<•ñ +'ß«MYZª¨Ç-oÿ£[·FnݹóKÀª¥åuÑ0¸àû&€µ¹É¸á7ªèL µxMð+¶8:bü'*pÄ–?xç`òxƒ*ýY*ó å Ô‰ìqÿóx`–¾kôß“;WR€žÿÛ[Ü}SŠÊ¿ÆÃ‡Ÿ<ìæ0üŸ›Ë1þÏ5h4"¯WMc\î„‚º’'0@¤…d±ÝîPÆP² ]®év¬Tšô*ÑËÉ ?€MÀèv¹ç¾í-^ìv¿žèFÚɈ’´Í‘%‹K¦ffæç—ö3©Ô¯7#m¸áº;ñ¿6ÿvta³ðÉÂB¡šÿ7™ûyÖ¿-LE2°=tâë=£ŠÜï8EKY%’îãÅg/^+Îþ+æžY3k[3]W“Nȧ­?±BŒašnO§éSÏ«×5ëÞ^P´Œ$vЩÆÎz0´±ls^Ï…z ÇÎêÃX@€ìâPËOŸ]Æé9ô.s0°pTÂIÀEG¢Ö€¸¯/½Åò`Ì•%7'zá‚!f>ìd‡˜°*€>§¬ËTúg‹^^õWïg½UIÑ4m† Þ]Õਯ*ݺ¢à è嘬åá8Œv†û9ñ„À§Y$÷^üˆ#‚þòZg­ü¢ü⼃ìáòÚŸ…"Àæ&@YÀpèÄ!€Îå@ܸ^gŠûI †Q…À÷k~é0qèK~é¬,K!ülÑéÇþ†}¥ â +{Cÿ_ËŽU½«à÷³‘XòSÚ¨Y„õ™æÏ˜E_v ¿K–%DÔŸÜÃ?+3öé·ÞyçÎ;«ãcD ;ÔëvI6rª5îY~r?åû‚ø5z[òÍ)¯¤úªiª×úV°ðËý1ø%Qdl`Š?yp°q´CÕÿ_Ø8` ôØÕÿ ÿñÆÎc±p0‘‚ÿ§ßÞÉ¿mÌEá¿zø0ú°0‡ùÿ"H +¼”pãšv€ØòVP§Š‚5ÀÍ1ë4дSªü}PÑ%ͳ[¼LÈ%åS+T|HÍD…ÿI;™8‰´#ƒ´‘nW¨€h-*]nr0Âú0è~Mõ}4Ù–u332?º42??ª¥Ô¥ù¿Ëx# ™ý䣉è£GíH·=ñ¿NLD û„ýÑÂÝå»QÞ$`Y;=xó^áÌàoƒ¤[‰€ž–‹Î¶b:Š¥¹ŠbZ®3mA°‡]€¢išŸ™Ÿa  Ikò¡¡8eÅþ´u´^䧯h–—-¦ŠÞ^ÞŠgLtÆ MÏDWݰceè¬elñÙIg¡°'÷†øn “~!·bð˜6û!àG#ßf¡_˜GÔçÿ +ÓqÒ…F­g(àø¸1ñ91Xó耤 õ/TåLÊì +H•&O èÈ0b ²–¯cîoy™Õ"§òJ¾–଄ȳ§¶¢äÍU÷TÑ5“>¿®÷cº)aò¯P|î£_þàÿåËíüòâ°­C,àü3€o¿>ÿ3p4d}ÊÃLà¡õ¿Hvê_ÿŸž †Ø+‹¹>üç‡ râ‡R§W ƒ8¼|Ñ0†Ä‚ôœ4†æ?a™å)±ï4ž.†B×ò‡?€õ)+XS5¨õ}ùP%`zÆLѯùžg™c–z7û³üã;#»V¦h5ˆ¬ÇÂ@É0j¾å© k3å#8Õ¨ú~ƒ €ea Z×Ûx>Íþðò=¸*pÌ«ý“¸>³;ÿ÷ÙnÀïgRôf'xö¿€¬˜drÀ&€ìô.R€þ¯·ØûfLþ©¾Ïå¾Ê}õäa4÷0yÉÁþ±Ÿªÿ´ ÉFãZÇãHÖ ÐÜ@9ÕÌÔ˜÷y>p5-€³˜qrÒL4Tp¦é÷uét×jJº’,¨$ÑÝ•&絺ÝV»=héíÊ  ·¾îÍ›…±ýö6[w»щd4•Ê,/Ïðêÿ<Èèü賑Ñ÷6“‘öÄÄ£Hw#b› #O6ïÞ-| Á6×ú„ô7Å6fÿœ^*ô€¡€î3dÅrÌÛ×W)›ùN^©µi³H°/j{kæ ½ïš\Žw‹SÖŸdðòb‘¯çH–÷^ü rRÞ~6 ˆí8a;=Ʊ}"ñMæ 7€ØÐ±íVüO9Œâpöóa€æ•îÑ‹5~ æ1Ñë½X,8#v€ÉFaHpOжûë±0P‡wrŸÀ –ƒe +ã%@¢8ˆ<aCL§J^‘8€™Å €y"Ô ®‚}‚ž §¤;–†Ï×{1Å +¸½Pfóa'Ì3¤‡UoM†ðå6¹6½¶ö¢¼V~ÑY+XcЩ[~ãgš¼@Ø/Búó t‘ +ä äk’‰—¡Æ4†®“§Â~©Z-J¥ÃCïiL2 ö¹¸È1üaΦX\•c¶&²RU<|{W'«¬Ã]€ØÙ÷mžþ”€ëÖTK¥ZßP;’éÏ•ü¬1•5©ªÏŽ[潬y7sûÖß<¸sçƒÝÝ Ñ#üÚë"†O…W8 Ïõ@Ð + ƒÎHì^Kð²}ãèèbÀ~pO¿ÙdzPÌÔˆèÃxƒ%€;;°Ü8à –ùS1J€éço÷tÿàþé¥r†³þŒ¹AþÃÜ“¯~Õø*’‹ærF£”ÿs¥d©Qâ-€ô5 @Ùq¦¥:¡¿ÂV@Ä6ÍÓ@ VÔ•“Š¡·$ÝÐ?›’tžKôZ(RÁI…ПJ~½"%'ŒþÛ­Åc´ºéÁ6/l±{üaØŽFŸ,Œ<ÿùÂþÒÈüÈèÈ2½7Bl Óœku#QØþw¿žàÀò'ÉÂÝÍd—ŽÄÖÂÀý›ìx¹ú‡ÒŸ7Öñ‘äVtÕ +ÖÊh µ¿R·vû5s/^4k3ñš‹@Ñ\5}“JW?ÐEÅóTïO±à£p=$ŸJêøý¥{™±¸ÏdŠ +îu¥ùN…Ï’8yâôŠ*Û*D l‡éê¼þ/‹d?YôýÅê—X 4z¬(÷™Bœ}ÏìˆÄÖôËÃmä²~'tû Øþ®@}9Ìä‹Q=ï d×…M€=t@¬o6næ-+eåMs„‘Ûeº~ +;Õ}v +ŸA8LÕ‰“aéÔÁÇ`ßÀécIƒkúæG:ÁüòÚôoˆtÊkk€ÿ‹N¹3 ÐùöÛΞA{F¶iú—+bþ/_÷P#&&lô'–Œ41W:”Ξ*iÑ›flê]ð€0iRÜcèç°ê²xDÆÊ¶ý}ø? ×ZÏ.߃ÿóŸ Pkj-$ŸYSµj•GøcU->•µ|/ëMyYËûègÞù ¨e<Õ¿Øë‚c )°ï©ÕZM€ÿ/¹ª¥YîµxîóçÿÚþÉ0àfãÀº½±óø˜Ðÿñctõ6¸%°qýߢ٠+ðñl(Ü›8޼ûümà?þÙ5¯ç(ÛJi8þ=üêÉW_årOr…ÜÃÆ\²‘üç‹þR„@£ÔhDr×Z(#<¯Î{šæžºjÊÒ$E TUBlä•q^–C,`EW*»Ÿ¤$*@tÝÈ`ÄÒ-ÿ¥OÖ£Û öXˆXbϯ]°6ǼÌÈüüþçÖþßÍÏ/MtFßϨ‘VwâQ!Ò]lML|Ým' ûщvÒÛL.âP[b¡@Dÿl‰ NÿþÇÐ °×CN0H·*„û²xEÕU̺ëÎXfq&/ãïaç ^”èG5‹tß›¯ºØ¥æì;ŽúÁ=ØŸÛ¡ +P:¥§u|?ëeÀâ&oÛë\Õ+’Í'Iû,ªdùJíÄâ|Ø«ãƒ{O\Ñÿg7”gÿ / ÐuÝ™ôb²¢o‹‚XϨ޳‡IÅìß¿>Gðù]?•t‘Ò+¾ ++(ûd]LÖ±x èQSôòA~{¤H ë.Öªø{ŠÄÊ‚£a'ÖÓ]ØÿÈ:½ w„Ĉ¬õ{ÿ$Lx±¶6==M¯À‚~¢/^0ú—ë/:Îêô®°Ã%€¡Ðú‰ Êε;ñ¿Ç0€*:ÕDUò¥êÓ²F\Ò€Øú/oËœ"ZHÄʱØ÷êÿpß Ô +3àߣø©h4ÍÔ¬œË€)Ë/é5Bq?[ +âSžå³)+;fßýôÁ?ÞºsçNÖËÖÛX¯rηƉä6Sþa©¡y¹ªeAè›Ù™C×·Lúïk5ºÞåàã£p°ð_ù ìeþãÇT飪Ÿäì¿4þg7ŽvŽfƒ  &pÜ8âÀ_Áàù»Ïß:uþ§À?˜ô9^íÒ\K„ýûðÉÃäC ÊÿÐü—ÿ ˆàþkլޢp*Ž’×vµ@³ÆŠ»Á©+%“+„ï•ÁŠnJ}BI‚3°ãH…• +ÖÅv_®èR"¡cýŠ|ÿq†.‚{¶Ã,@áH÷LD£Ñ‰ŠäëµÑŸÏgjIBþzzø™¥=ÓôRÍ9„´[Ä&Ð/ØÜ¤/x›…›@ðW7E°}á¼Î)€X@* ëéE=aúІÜ´RWê„øñxÜ/¾G "€øŒŸ‡p|o†Þ¡+3Ü@—/ç—?¼ ”ø±¾ìày÷2™¥¥¥¼DgK4pmÈøì³Ðå÷òÅy3,ÒÙ @Lê{¬Ìkú"wÅÀé_!l¬Î`áÇŽJ]4bœ50´hÇ–y vgŸ˜P&r‰ÏJ?ÑóQÁ¨_¦ïÚ)c*°F5½¢­C²Ÿ¿×*Z»uŽ b­ˆbšJ¯§—Ù=õ>Âe@¡îôúl/¬;},2NŸîàþ?€—ç?Žà%(Àô4Õÿ_ҿη¿)c€>º}ƒûôxê_,È"ˆ3Ã,àW8ÔùТJhúE  +9€T­T¥X,€ðoØî¿þþÅ]âaÇ€ðQÉ“§K ÿ…ÝôY˜ L/ç±óú‡ÍOe€€jøC Uw-€F-f­ÚÔ˜7žÍ­ÛŸÞb#€øivß:L_Œì6Ò°êXÎ/5kÙœdYB5}Žn™Úuˆ.l€!ßgü'Ô?ž=š‘@(è±°±ñøŒ`vòè˜]Äà,qÇt59yð÷_pˆþ—/Xð6øÿwøçg +tµ8=–çæ>Œ|Eè?ñ¿QýŸ{}˜›KÂù'7×Óžà>@£‘ÆÝ×"XÄBXS­]ÍúøîTÞÍkõ+*ò!ZNéêÜ»Õ7WdÆþcœ$¤“Šn´³›Ý4bû8¼©½!þã€Gщ·šëKóó£frid9³¿ŸR—¬¤ªªI*þçš‘V{b¹…ÍÌf´½{oN@[BLøWhÜDû]´ÿC°5Lb# ­V‹h³ULyš«Ôz±hè3 Øóÿñâ·õâ{ïã{ÅâHÀÞž†e€~/T/ûg§5TÞÂ@·Æ÷³™Læ~f¿¸™ÉìRUÜã"›€Ð Õ þPÞ 0.u€â.Ù(¿…nËæ8G$ÃC¡Ï’€&ø¨ 3ÙeÎf…ÐÅvÂY26LfÙ@Lìòj!/8a6„ÎôÀ9UàB \‡ñ·“ Ùa_̶Cô˜Ög<6S8­+вúʶ¬M€>Dc§,‡Cጠ!™ÕÿôØÆüeïåSž¿ øÿ-€ßð|º<=]ÿ q€Î ‚ÿµo;NùÛοN¿¡ˆþÆ÷q54`àW;¥ G=¶ùa»ÿ*Ú‡TÿëU#&ÖR…7ÅÕP|WÐ/âöT9ã¿ß•>€˜0Ü8d@ô3Ÿž¿É=€W$©qSµrš5Ž@Íw«¾ €¯dg²^­˜õLë#Ϻw÷oÞ¹uçŸÞ¹çNe­ÃÒÅ@^/rÎ²ÆÆs~ +"À9ä”.:šOe„fj×°üæÿæÀÑ$A<Œ~ ÄÊÿãÙdz³Çì €±?Ý·1‹!„‚y0ÿ !œ= +€/¸ðümÀkšå‹aþÓ³kàÿeªÔŒÒ"Uþ±òÿð«¿ÍQýŸ›cÏ‚ýdø6+x“K7˜\'ðßZC¥œ"¹ÛVgvƒS-V’+]§š¾×ץೱ??Õ!ñv´Â‡+2&HÐ¥„nô+í–aTäGµzºËCznÙsó~›ÉÀÄD{¢]q¨ðÓ2D¼ÔÒÂÝ»™L|~4•ò“~2ÒnN$“ôAhL¤6žD»‘Ôf¡+Ž•¿Ë ð+Wýb `k¿Øb+áýþï–o™5¥ö0Ÿø€àÅbñÐtó½8Ã?ÑäŒ`3œ^X¾Ðéìž^ÊN/Ùч-›s|Ïz—S€á^•8ãrë '‡-Çî¡å5®Ã„#Ðha É7ÎÀ¡@¾€mËaˆêíÌ.ý;"]FÇÎÛ ÓwÉ5|Ã)³a0Ò9´ƒ’˜b*ÓÊT1¨uK£‡P>À, ÎÒ+±)ØeïCúzÉL^½/Z:t Œÿ:L^ô~+àÿñr €Î—Óߢ PŸþÍtçËΗηÓôBÅ?±âe¢ßvêßž¿‰:'›}zØ7þË×ÿwÐ }|8ä·jèR¥„|:=&W™Úaðo\`ßÄí%î`áœÄ +–rj¶“ønw†jœ£ 0œhþ¤:»–ç«ÖxQ3‹ªoVƒ:V5;3F§¬gMÅǬ±ÛŒÜzçŸþaÙ¥{J¥Aø«M3°j–ç©LüC?•MÒ0QÊhæµÂÖ€ø¿cÄùþ’nlîѸ1¹s4;»ñx–j|Ü3 ;à£Ùcnü ˜… ðìä|oà&Œ‚ð¡CÀ{;øÀØú:¿jˆýÇŠa Ë)0Õ9‚ý‰¯¸ùÿÕÃdî«ÿD÷Eóÿâ +/`¥$¶JssFúßÝš3-)u)ÈyMuw½Ï])¯æ…Íûðˆ ˆxsIš¥&NtäMxÿ%$]?i#01ÁéÊú` :[-`÷` Ä Ûî¶ÛúàÕÌèüüß--,/mîÓ­‘ùùÏ[X#ð/=‚% €Í…»…d{±J2“`÷߿‛_ °®þ­Ãsƒ­-’CújÉT&îµ èiÚ{Ků˜ŠÅ,ðß‚À4ÁjÄâ3q¦ESÓÜ +“¨_èòCt=xèö²_XEo?»Ÿ‰/-/ï­JHv@è¸ cBA{˜‘ +û0Ò¯.°BŠëÞ¥ñ¦¯d0^3›ÐEL, Å{b³ìÐp(MÚ>“œ,át§OœC¸ÈašœÎƒv@OFÁOè½V. jPÆŠ 챦¨cÙ?»*Õ ³ÌçSžõY&³+qÆÜt'fHaûŸ½ƒœÏ§×çÜL‚@¡¯Tîó +â˜z?RÐËòÚÚ—kü9Ý™þò7õéwó›i‡îpˆLÿ¦Ü©¿ ø§õN§ÞYí¼ /D€ý¡p(ÿ—û¯z ^öx¤0”B +PժܱÏ]áh_tþÙY“íÃÍØ8¢#Õëuð被3l¨|Ćà²pøÎ~2Í´v=ß·f¦ü©ÓŸ©*ðn6¥dßû¨hÁá';–µîf?øàÁ;ÿôΧ§fvó°îZÄÒ2²r–5î¡àÁ—ÑKmú!¨M!fȦáüü»ð<:>]€ŽÚØ`òxö`vvö¯©äÇX#~ØþÍÒõØáà?*ù…`‡M€ÿåW_ Þ[ ÿ¡Ø¾ày0|ð_Ñöÿ^º€Ôu*›Jé¹¹‰ÜÄɇ¹¯¾*|ýŠx@.òp.B@?'œÿà ½‰@¯,H7Òiãߣ<­ˆl·Àu‰xÚ©«™j aÆ<`„ÄC(¹?³êZêcM·!„+ ò‚ˆ Äü_ç·[¸ÍÖ½bÀÍ€î×TÕ§»‘djU…€È†ÀÒüÈÈû££#ž%£ÑGIÞœH~8²¼í.¶ÚÄ)¶Øÿëj«áÑ·¡D4Àç ж¼L¶˜0ãš×f2µ`Z+ª5ÓŠÃð½bqÅ5¹PØÛ3k =€o`僿Õ`ô7ëÇúƒþ.JŠb}”É.ÝßÏ,ͬ²ç’_’?.Þ%9\8;ÞˆÙ¡íZ¨­.Ë¡ï +/ –CAcµˆ‹qŠf¡DÉ(º¶Ì zW›³ÂÀ† @×üéGFKž÷a=O0hW‡~2C8w›Ñ*ºó}±7©ïe‹YÉ¡Òß4óùb6ŸêuÞ&DCXVøˆ½ÿ”ÊçX°û|=¯i +”@! –1øqÀËTàøÙ¡+è§C .¦ÓµµNymzyQ>ý×o;7Ž` R' ¥r> +WTù†@Gƒ½CWÃ1.vþÄã±'‹ÁKR‘eØXL)cœUf>@èò•ÀÙÅàÐ}0l;08;¿à?•‽sçβ»›ÊøF¨´qhË–e¥Æj‚4ToÜó­lmŽ€jH65ó:i@_~Á6€ÇÇá`¨Ðò?þë ìù³&ðÃÿÇà gƒ>?îQ|‡ÏÁ~§pvñYxæ• ¸ú侚ˆPíO¯(ÿ“ü¹dŽxÌÿD¸,æûÙh.c3ÀtÚ¾NçHk`AÞ=%:;nå­”¦¥T*m]oj‡ŸžêzöÃñ3ðÍú>þI³­#C¼õuK‡þÿfk±Û¥š{n@€lîî×7Û‹F+º¿´ïó>O8¼Æü…J¿bÙn´©¯¸†!€Zz><Ÿ»–Öu‚ÝwæïèÑtUêaŠNÿZ¿§–ô»÷(%ȵMø'>Ç´Ä6\'ž\Y.„oWÑM3ƒŽÕ~ŒÔq ;=!¯ñêv…íЍç ÃU±Èòk”E‹‰Z¬ +e@öUUP¼Ô­õ8  + +DÚçð&_HýÈ %Bbò¥üçàVÄwMM:[øÑ¿¤Z%X@Øo…Lu5\QÔL“z”¦v윇á|_tþ–ÌÉ‚¼ú`UÕZôä¿úÔ¸YUzÜýË5,žÿ…l ¤ÂœAõÏ Ài¸‰·ÌËL븙AýÏÀR h•Þ0 Àk¨óÿΟpDöÚqô¦P˜^êßV(¤A|Êk¾]½H%¸“ºý--µ´%Ókµ…ë˜â3Øàó +€ƒ νÿ[äঌÛN|ÛHÍGy=÷Îe<[¼æÆÔùåTÊ1œeCKNùÝ÷Þ_û‡÷~jGäþ–&ê?’sâÈ_ƒ5ü‘ƒq§J_‚ #Ut;jDôÈ·>Äÿ Vùá¸À$>‚ÿváõsªþ%ì,p ï"pcêÞîî.8€ûŸ]ºtiaãÞî}'ø¹o|öŸý»z©Ÿ‹×<ΘáÄÞ,"^Ï~• óB³±®i‰<õö þíaó‹öÿãUêýé”ÍsÚo–.Ì ý§ŽŸa@‚ 1ýÇÛ~ý[P%Ö~)éôít: +SÊÛvT’¢sÏ žª×îÎÍBý¯VS’TOU¹¯Ü½[e K£»u,ôóõ€ÃõD6ðìB¯l·ÛGωÀ"5ûÁƒÂPð7‹OËW‚WPÿ ^Ùœ Ô~òÉè(A€£v ¾´´yÔæâÎ1À#Àãÿw¼%ƒÏ%P|À)à0‰çÅuÜ•§wV +á;+¸W±¶ ®~Ó½\p/» +ƒËáôö7àÞÑ·«’ +Jü÷ìšú9€n ¥»gÊ`F¾’TÃÙtRÉpÊÕIRØúFeɽ¢PáµLª½;³kÔf5 4Áâ ¢²+¿ú #?‘)€Bo m»ú!7m½ˆg÷& +¬Ïæ•?~‘õÄ> Kùq\™¨ÿ!~¬ë{ú@³SCóO¯V ˜B@•ù£ÓÁ¢`Hu žòÛt¤su½Ù´é÷D¢pG «ž’‘î)!w™ý$CfÓ + ‚(f¼ð¢û—¨ÿ¥!êô©Û?®f ÌœfšÃ{„p)[ÀÒië%VZô©tži5ûò Ã=QþÅoü‰Ç%?pàîï'ûhlý? +Aëh—äT*¼ðºO¬-¼aþjÉØ'#€Nç oôï„Ç<¼zo¬ÀwM4t˜ãó9c>’KEU·X|0›Üº}ãr*e¸cNº3œ±w=ö£÷Þ+ëi#™Ûò MÛ7eªÿÆf.'`ä¶cñÍzj¦(Fif¢î·SSbàV`–À÷v©å +€{¼þO½ÿý L X8&Ø… BàäÅsý?þýVõ§Ç1 +¦AÔ4Ð5—À•u:bp‹C&;·a*nï0)ÐávMKh‰l"‹?11ù¿SŒˆ¿O>ü3½>æ·<²D€é~æÿ'³3“\þÙ¨ýÏã«bBË ÞšÃÄÉ6nGuÝŽD»~jý9}ÜŽbI\Jý¿ÑXT™¬RÙWç"7¥ºJ•î¹T¿FÕ_ÒÌ~ûÕÿ£µ¿íFò¿F¿¿#y‹‚׿‚C×Ë‹ÁëCP¤ +l +H§_/-> +¨sTþ>™8:ÚZÚD6 (ò%_P\õÅ#øH€‚é°+~wnÝWk1úïpíy¯Hh÷‘Å ¥¨%aHU¼¿?»©4«UC·›ºáèvXO«Š­ÈVUa¨GÁÔX¥G‘Õ¯èGtYq`Y=†ž5‹9ƒ‘ ÀY笆Õ?–È´°ø¬™nî5÷lêÿ_¾Þ ïº?ýêÿ³ágÿ¹8@Ðì£I¥ŸNèÄóT˜!ǧ³‰™ÉêÛù}æã¸ôÏÌð'jÐ[ ^ºÕ4*ú3hê'@î&Dµÿ„Î&xâOŸ'¨ÜãB˜ÉÌ?*(æEÐûƒüÏϘýç’(Š8à"Ëóûôû6}k4š–à—«G£„XoGªªÜäxßžÜSí(Ï€U©\þà'³*õqQjû{p‹\ÓTU«khþëôvo½ß_‡ò¿íõí;#~~ä0Û¾;™Ü<ˆ}P($—„p(Xx\Z*lÞUd…úÿ6" +8¼²öáD`$ïú/˜ÿÁׂùßé¯÷¹ûóœèg%&½š€‹ö?—Ã@TQî¸+Tð·]|á8…ç/cHpÇݾɶ=Þl}7bº£XˆMì… žTªF²°¬W*ºÁõŸk§~ÊŠúb«®Ïg©žjï£ÿ½² €± > Ú¤’ák z`–XÒÇý›Ì ¨¦0ð¾‡nSbûÛ~’¢z‹æ°ñWx]à +Ϭ¤ +ªdÑsRæu¥jÛº][×+vd„,Ù*~Á(¢–½‡C&!}Y¬,¤Î”Ø‹¿ÀàüKJðþ©Õ2ÇÇ­ãLÎNAýc ÙÜ9U° Ø´OÓ§/m ^"7¨ùòeó·™7†½%€žeýǯ®Ÿ8=x=qæì¹ÿwYŸ*J>€‘4ÕÅHI0¥VèI·Ôù:øšð‰¸Ô‰%€b§îÛ#tgg“wÈ<€ùñܼӊ΋€Ë+WS)}9™N%Ç·Çþ·Züé{ï­¥”èSÜò|¨ l¯Ë‹†ç-€€HÌ3à̃b1mèãE€Ü·ñøÝC–û?¨ü`ŒØ¿)ˆþî-P§ÿ˜êû¥©{«~÷Nv… +ž0þýì3ø"È›<¤ú\ûO dÚœ@³®5‰Dƒ1@›»w®ÿONRQ§· öA»?3 &Ÿ¾ p‹?EßÇ|ÀÂ?ƒí§Ûø}x€î@wÌÒݳýúAÙD6‘Øà +7:åy0ÃË^ßO@VÀœŒ9À>䦯ûÍþ@Ý#Õ$¥ŠPàè,½ +oÿ$6nDëj_¨¦nKêW0 +º]•¢<¸yÚM“ @½®š}ØÔÛ‡‡Úóv=Ñ7ûýDc½ßøÄµG|šþaGsKÁÂfìJù`qéúÐжƒOŸ>¥+ÓR:ðÉQ 091ÀÑäRyíÑèQÛ ÜÙ¹@#ÈØËë^á?Ü!¼@ˆ¡Aç'þ"ü…ûT¬ÿœí•ËŽ¤dªwVÂ+á;­¬àêèµô<ü0Àïè9¥ª£©faÕÿo/x¡(2 50 ýi¼œÔÓ·á•X"µ™n©’p„ï¢,ôú¦ðLçåz°J_ÿµ½?>á¸ëÓÞIá]0Kxøš¬,„o ˆù£B+³ü¯#"€YйX.Àoå¯YE ˜aTÔÁD—©L¨ˆìùÂq_B@¸#Í—ªë–b§tÆ^u磒ú@î†$[,¾–;&0¬’Å„BH9ˆØêq½u¾ÿÿ³/^”ÎÏJLj:®Añ  Ö Ó[fïŽ@Íæ0¿8µW÷¦›™Léå)¤/3¾|C¶~ &[Æ_ŠGï!/øbŠ4ú£ßÑÌ0¥uÅób4Ì ÀO2C +{Ev»æ™{”V¨tÎcN>£7ñ „@ªËdÄ[¸³±H\O]ÕÙTN¿ª¥âƒhr?}ùÆòå”±¼˜3–cqŒ€rJÉ9NQóDÚVb{½”4œ¸`cÛˆ¥¤„0:_Ô#úí\ô[1¼û7õ^>÷ ð6à%úDhàä|~x"°ÎÿäÞtðÜ·mÜ߸´À·‹€iö8þëÞð¦fB»Îf³ ­‘ 7‚‚ +(»ùTééìˆzÿ Ðøz‚¾dõÝÀwø˜¿œ¬?ÝN''¼kø]<=nƒ~úä³þ´ Ÿ{ÿb0Ý÷Y®üY4ÿEŽ(X￞@QJWíh•jŸaÀ +XŸ©³Ë¿z36–ª*Råf5ŠU1I6-eNbK³¯ÕûÔ/^ƒ!@ÿðšý‘C:AûßÞñ<üÁÍ~9Ò ú?1·8t=X.'—–‚W‚…ß‚ÁàÓ!ÂA2¹øhtbtntô“щ‰£Ñ¥ò•¹O&Úm±Hpè© ç x)þš€ ¢³ÃÜv ÃI‚ øÂF€Û¨ö¨ü.P@xå²›Ó! nn!(8 gÀ;JM¸î³ÝÍùù·Ó¿œgÒpÚ¡¿˜˜É• –+ÍxÜqá|¯4m»ª*M ü¿…`:´>é‚J}â™>øÇbOûêoz–-–0.q‚žgWÔk T¨´-•'»<ݵL¦.&¾ˆe$L ‹cÁJõöÁ}Èô4kbñϲy€a>!¤øñ#ÕóJµŠÈ`UWC¯VtÇ®èH û—¨:Ø2õõ!ÕFî¯DL¬^ÇW0ö¼äášÌQ¥ÎþÀùY­V:³Žk¥á€Òq) ã éãtN›{@vå´9]©TšÍL+óò´ÄÅ¿õ²ùr¯ÙúÛp$hðÏkcx Ï¢}S–û¥Â3´äVÉÏö5œªƒÆžîA°—ÿÙ"Ôµ:tl,u»_›ýÃç‚ÑÆ:HÖ(AüòÿIÊçó·h0‹!þlJ¿=ŸÊEW¶¤ÔƒkÛ±\•Àò²¾<–ÓßwŒäÕ÷n¬ýè½µ¤’&àlmi†)ÇŒqǘَoÆÉx<§;q±Ú20Øþàÿ~xi + À¯Ä6àãøsý߀ǬÀü÷d÷ñ½ûˆÄ~À§¨úoìò7loð$€µ¿V ^Ü~Ö+'­Oo뚦­³ÍN‚9zÁ@™O ,6ö&éÓ$мWÙEéŸÁÀ`b2à}d½K3@F"€Ç,©ögETþ| Èÿ¬¨ùLÌìOb €`@•³ÿGe1-КöZ7Àn‡ŽõMIJEýê§Fv.ÕhnRª_{þ\ºqÊ‹ŸÞ¾:´lcÞ/Q/§Þ×yp ?@ÙTïŽ>zN/èúQ;‘?l4˜ý4ú#"¸Á2ý„ð÷[\¢Î?yP^z <]B ~>üÙ‡Ÿø„NØøÍÒÒ£¹‰6#€„Žøb@Â?ø­›;â;;~V°¹Ó>¼æÂN8ü”Ç<H†£ág[`—ÂFZÜ~‡óî£àto=±»A]LéÛð_!‹#s;½~O$&(©`Ù­Ä+º ½bØ’·«&gºb7z?ž³v9§Š¶8ÀææC4pûα<ÞøßTÙhÀÁB.*Üéµ +µÔ½6‹Y*ì=Ùïèøè‹i}WÿªÂ Oߊg5CϨJ¨¥YŵûU™ÉüøÔ¥’¬VT%]Ql;j6,,¼ `™NÊWô(xøP· ÞtXÏògµÎ_fàü¢kÇœþw\‚`©vìïf2{€§™aº0œxØ<­œNW¦ œZÍæËZé4Ó:µ~ ¥àË7€ø]‰þ°æÍc¸ˆ_H“J&ËAä"|ýþ]€½}ºÝŒé;gXдþN7IJRœºOäóÁOåÊ/ö_Y~z[FF*`è³ó¹Ù_[NöA45#]þ¯ŒØ²-;ñÔØß­½O`Y(z@Kl͘¦c ðGâNÌ™5ⱘu '‡-€Û®´Ó£ßJpû‘ôÙ¯¦Ó…K¿â`ßž<Þ±÷`ˆÆ +V» S°±ÒмÀ½á‡XøkœˆXV1ð‡–§ü:úþDBK¬óA€Þt¥–Ç€КãÝ«öƒKÔÒ·môðû^“?8Qõ§óÙ#ªþ zGíGßOÐBPÿ,ô8€¬PúÏdÙC¼ 8@óIžvg¯]³°¥#¸¡UµjW#Ñk“G’Ö—ÕÛ)ݸŽIªRTëÒ͹8œëÍ~ÏìiêókÒݨëþÄózãp¤aæ!`€ö¤¾È>¤ú?1¹™ÜL.–’ÉäÒÓ¥®ÿXa1pñ“‰ lL% °ö“£/Û^À ù§úÿ7;+ †¿ F,Ð<ÌÆS…@€íŠá‚°ç]½vÓÜ÷»Æv8§c €ú!àô*×rø¯Á‹Ùú5ç5URØ~õôÓ(ÒrËÁ•=VS±ÔŒÚ´ÓU[×U!Ü•x©J¬Q‰Ê6¿²Ê£¥§r$° RYe ÑÁÐÞÞÀ%!°cû_YÈwĈ1ߟ»¾Áˆ¶ËÿòBÛ­*½BYú×aèô0º—!l€6êzI©Ê^Æ0CaÑ B­ŒwE=m«26_8_pDQm…¥<ØW…þÖ'„z ®É^À_@x&@>µjµÚïd ýƒ!€‡šâk+s +i ]0 C½Íješ/+•¦rÚ|ù,öþÌA Üx}Hȱ¾æ@lÊŽÿ¥îÌü’/@w'ñÄ,3 ˜(+y·—:¥WÖy‡š-V‰UžÂ +ðÂå E +1DŒÕTîÎ/‹²±ŸÎ¥eù_¤RËFîýTÜ)ÿèï Œ)R<)ý€¶1eØDf¶ãñ˜ãÄ$v +\€´¡‹£úìkŸG•;Ùðdãþ}*ñÌòŸð`w—ÿ  ôßãµpÈÚÝõÿ¾ØD +À_ОU!3QÌSO0ÿΕ?ã#ëÁþ°&CÔk~Ë Ê> {YHè¦|z®æ†í,_™¥ïjpõGÙO`†O?¸È‚ªðyQù=êŸ9¦ÿ½AÀ>´ÐybŸ£(p‹V|í  Sà 5œqú¸TU©V£ô&ݽ¦!ñO‚ªÞþWÕŽÄ%US¥Í:÷TS ФÉ>ÊÛõ~{¤oîô‘Õú}ÑþãBžêÿÑÝÍr,‰áòip(y,< W‚Kåµµ©ðÏÑOÖÖ‚ÁŸMµ½Z82¹¼@ž1 `èS;‰` ¼­D¹àK-ë2}M•ÞHåÂ++…‚ëµÿ‚p9'Ð #(‡d;KªZ±´zQúf‘úïKT­«*5ÝðO´ª:aúr¡P§VmDå¨<øoê÷þì[>?ïù³²½Ü,ÓXše ¤æ ÐÛ$0yxÏ幤RÁ ÁX×òȳ°Á­Âz—ÿxïï÷@² x¡°ÓíZ’ÿpPüc‚¡€R¡/ü†9¿ÇÂ~7‚Þj¿BåÞÒݪÒ4f èØÍ&Ã)ÑŠ-;–«’¢WnKª?×€g{ÖrGˆ¾ À‹³»Ô¨í¯qìÕþ’°C€Ó àN›™=( dš{ï­ÓæÞËÒ³ݽY‚?PéåýH蹓‰*~AÀéÇ/ùçæÅL¿Ûþè>Q¾TQy…ÿ ~-—_9†Ê¬¤ê.c#šuݯ1opgÍH\7Rºþ©®ääÈþƒÛNLzçË——¯:c®žJƱµ[{o톴åÄr>X×¶fLÙq"`6q#wÒNܳŜ®Gt}<õÚçÑùLäÜÇۢܟL!ï÷da‰?—>»¿AÕ~÷ªüÂç>žú1;° vòÁi6È<;þ+çÖÖ¶û…3“]ïvÍõ·õ¢ùÏ{Ãþl@¨ÿ³(6P°‹\þQr5A 0ý;v¨¸7ò‚g|ßɢ͇Z-Á·àäþü Œ‘³ÿ@>: ë/°ëïŒzVÀ3ƒP–ây¯ÓóÐ_7x!+éh:5âãF4mWªRôƒxUªcÊ™©D«¨ÕªlIñªÜ3­G×`1§j¦\ï÷4éî(º³~t¨¶ý,ÖEÑö4ûíþ!õõík›ÁÅ¥¡rð:uÿ׃…drIl2 Z›kŽN~‹ÁòPy’G¯Ú¨€Áb€WýGIJ 8k$vïF÷r8\M†b‡+MË*`öç8èýÏ +_v =\˜÷a¯ êwæõ&j_T­±ýŽ‚ivç›È×󬔯ŸSVÕ^OS£Q;6æá/P‰Ri¬$ç%ÙjVUnÕÓÏú…WZÈsê—ý¥6_@KC­D›?ð2-°¶ÜKc‡‹Çë,²Cû¾%°Éž)R€ØèÇ«ÿuelüwT)H{ÓYôñJ‡ËµbW$Ë›÷òƒ1 +°› +€J• #Ô‚YZÕõªÐ Òs—f›°ÀW=KeE¢PB`á/+€ï½»æ‘@í©vV*s,P†e§Ïè]ÿ)á8œ¦ ›ö^“ €rZiU2%[•¦ý2“±[/~È¡(œ0&fõ°öõ7Jt<šßò6xN¤ü»€[~¹R„£yh0;çр̕¿ä}Èç¥'¾êø›~g 5ëäÄ@Ïéï8rz?§;Iéò}?µ¼¼ü¾a¤’†1öþ?Œ½ÿÞZ9½e$ðXy½ðéAtf&>—:wâ1#âòà5 ÔoϺ¯gž!ôÀ¯xàÄ‹ÞÀ•Ôç£þ{˜þ/ÜÛàÀ vܽÏopÿþýϦ… Pí¯¦þ—¶r®ó…óÅ_ôŸDãb^¤"Oý45åy¿±osõ÷ù²^ÅFÙÀm·ÀŒ¼F¥}½Ñ$` 05È‹e‚FÂ/×èù ®ø\þùÇÐØÏ3¡0ãmf9À»"àÕ~œŠÜüÓ“¡òOáעɮF©ç7bÆWÔýÛUC¿I¾¦öÙ—^­ê_¥#ÑM‰ŽÝ›ÐèOê²U¯ÖûȼPŸô5BÚH{Çì7.Ê5‡õäÛÈ ¶éà`1é‚p^¢ó+×élè×C¿þÙ³ÿ|¶8 .Ž  4_{À æÇ_<é|žo_Sô¨v%ÃA, ±m)®ë¦ŽDŽ‚¿}'¼Â^A‚°}§p¹¢H9=ªX5§:³šîÔÿ£¦Ý¬Jô÷BD‚z×Ð#qÃN¯®ÚºmëN¸œ¼U•[ð`[?*³fˆ]ÿ¼ €.[­ð±8Ä>úžÚŸ1êÇïÃÅÀÂ?†*”¾|P´è¦/1ìv;&õñf©g2#€ã3ýpo‹£ÕË_Aû¯S`E“©qøzw.vS5ÙÂJˆ ! ´”Ê*ö›Ût£¬¨J3åÚ’—& ¥€­–x !DÏR…Æ÷÷ľ%€ï½Pý/Á Dµ¿…K„Jg­Ú1;{áÀ§€‘@sˆ3•ÌžM_C ÐzyZ¢þ¯Ù:mžˆ8mfjodfà·güþ=TòB'Øë×cýŸ¢ÿCâqÛ ¾ R€©O8³àˆŠ3Þ-EÌย‰)€V|}(0&ÍtU‰Æô*šÀjURax@õ ëþ–mTÅäbÒö˜dYZ?>GåŽ*Ýd] I}¹¾nö'ýkGõ~;øå”ù°ìé ¹~q@GG“sK…äR²<4t})HgCI÷é•rpˆ£‚W’“£sX•mO,Òí‹sTÿyç¿ЀñÁýûx`g§?Ò>¼–n" 6î†#š‹6›áËŽMØÚV°PX¡S8üÑG…ðGÁàJÀå;zNÏݹ¼âFsF$WU, +Ï©Kìpÿï6ª/dKò ‘ÌP_¢?_,¶K&MgÓ¶Óv²œ\ÕW·Xc§ŠÊ®i2[¥ÂøßdË´¯ïyCòÉqlÏl‰µ¨!ÏVÒd=]‰]‚½Ñ~O¸ýúÝ]‹CUåØ ¯óé€âu2áÑk*UUžÂlÛCغ¸Æ)Ä ‹á^¤`Žá%Ê!oœ/Ut[O7s™f3c©zrþŽ]UšŠe±sö-'iX®4;V]dÚò‚¢Õó}3_|ÿõ tv •ÿ³5þôu¦ÖzVË<;E0À°_üá ÖX H~f|ÀjeºÙlV^Vè»[™V¥ÕªTN[;S:ÿ¡ç ¬0ûç  Óìøi>TÎ_Yë{ÒU<›rv«=9ßòïå?¢D <°ä™¿H3¥ œ‡Jþ û†#€ï +ÆS _¨ØŠT·åk·n,cPN¥Ý1Ãûàÿ¸‘SõrîpÒÖµ­\_6’Ææ¶Ç7“±q€í¸~°  2ŽU€¨þ-€ß}vÿñã“ÿ9Ðr»?ï߸üž,,ˆ\ )ªõ÷660C€Çv!ßr2µÁ&€L`à­—žÓ¹OMÑúþ›ÿ}sæã@¶aÒ y½Au5Á\óÆúnÈÛ˜Û{ˆ€e¼òÞ ÞcòÞž‰Pÿèø+ðÞùj ¤»ûç-<ßñÈxèD ï©ÿØý‡W Ø÷w?à‹¸úC2 <EÁÀ¬pÿµ@§†²¯HMƒ•þt¤g븞ÜïÁ +P­êvø¶t;­T%c³ªödåÑ]º§¬ÞÕzês:Âký~´]?š<\?¤R¿ÞgW¾V8  O`r¬ÿ—¯\/”9p(x%ø4HxàJð7“£ð€ÐÄ£ò•¥¥¹#á(œ~<¾ßþ{À—ÿ ÆyNʈ ª6n8„Í ÅmRµ×éªÉ„ý²{‡1@°ÀHj;á°‘Óu‚®®çnVU«jÐ/_Ãǹ9À·ºlÿ«ýžªQ¥³Ô%Ð+$âz$•tœUç ¬N”Ív-ÏšËÿî­y€^nB¥†D3=hËëíMÏη„ëùq,SÊ~8ª¥ãÅþtùƒ™· BÇ+[ž8†w9z’£z:’Zê±] +lÁ¶…˜tJ,C°Tx6UKQ3üôÑáqNœR±5¬+…Ð’ª%UYì ©< P1>yyÆ<æ€Ñ"ç +„XPƒÉPç;z.+`é•}ÖPÝoeÎj%ºøìLì2 €lÀZFHNØ;mžîA pJµ8S-ÀËÓ—¥fëŒ Ào›5™Ó—tççOΠ ;Pò•:B({Ñ?hò;ò+®¾O¬¯RÅ·tK%ñêï”øujzt¿,Ë + a„îÅ ÿ7l{‹hô7Õເù”`ÆgYC7V¹¥Î<ˆïçô_.߸ºì,'s@ê½»øßÖÞÝVrÄ€fXÐdºÙ1ŒÅR›NÒˆ‘Ý'mDÃ8‹êŸ¾ž¨QñÆ€|AçãDýþ=¸û_º/vü˜ö¿ÇŸÁx€ÝûS¸ÃÉ„à€ouÿߥ×îV‘šõuzmš(àuoÙzôð:€õϺpHôoQ?û +'Àóà£wÛuÝ2‚x(à¹j5‡pUªÂµ¶‡upê/¨býþbþÏmpC‚mbJ lU©ô'SKåy;[Jéwµªh2Üúä›ú¯´Vÿ$ŽNïvØ”Ýòz(žé·º,_,¼’â& €)’„:œ5a^†eLóÍ’˜ˆã3Á n»ø{ºbtë5wªÄ¦…°ÄI( äja‘Jq‘›ñ“ÃD€RJ+ª¶¡ú¬@>Y­D•gtPOx]±ãåÈ,'豺’j¿Øøþ“ÏÙøŒgÿ¼ 'ÿãVí U¿ö¬…ŒÀÌqíÔò䀧§ÃÂ`›™á½Leؾ•i[­f«YzÙjVZ·š™æj0¡ôâÝ?ü°¯h…ýô@80óg{_I«D¡—&Óû ÏŒ >áÀé@­ÒEpÀ‚Ђ0àýÔüîE&ðÛ¤âÔW)÷¶n䢯rQ¦>ÂXÎé7~yã£ÔøØXTÆrìÞ½º¶¶öéVzlÆ3€1ì6€e#–›‰;ñÍåä›ã‹Æ¶a€ÈÑ””6¶£ºñZà÷ÃPþPÔÍS5Çüÿ1Ï>»ôrÿ 8"ðoádá!ƒ 8bôÿÙ¥©Ç»S¯x@xööæ—´­âTKPòè²Ö9¢©˜À~y£ØÐú ¯Þ‹Á~¢!¸ù¼¨ÔY¯ˆçýÑ@ ûÊ^ŸwŽü´óùD@ûøÚtñ‹Öýòþ­‰‹nçœí“€y*ý,þ¦€3ÞbUþ€G;$èЊ‰G²'àë>ö§¿’Uõ1Ríëj½Z§ã>\€$Éø”nù`‘ºbùA€úÜMÀ„¾†á·yðìµÃ„iæ×ûT‘×… +`‡åû#<gæ²?œ-Ax«€ÁÅG‹É¡`lŽ=&Fù¹Ÿ-->š;š8¢âÿ7m¿ü{ÕÿP@€E (û#‚v€à0xwÆP®YŠãDr‘íˆÓÔ ‡š|·@=¾Ã’¿ðêÿy3€‘Ýê¤m”ÿ6v]=âתˆ®ƒ ’ [N€²:.§váû¯öûÖ§Ïáÿ}.«4ÓúJ9t«¶í,‡u›€ÝyZoö¬JªjZŠWŽyÀ¯‰ã§ØAhhËCž‹Ÿ,æþtLËŸûƒ0C=YÆ]¦ß±r(¶¨Àƒü¡#Ǽ¶ã÷wO<—®Åò>YnÿžúÏb„„à¾*|šBƒŠØâcdÍ+¬»î²Û ;vSÄ(ØO€ 1Ôe\¡ +ûx8¨xÞÐÈV§W¹X¡ï[Y÷oç/^œ£ôŸ•Ðú—j8žµJ¥ |a L¥¿Õ:­½„ÀdöÀ4©ÿß›¶3Ó™½ãÓéÓæi¥ùò´w€V¦i7W÷2«óóPfJçà~@ à¼ûb1âe@Ù ]ØRCøJ²ßË‚šÄÿnÀPdNŸl³ãIý°ûy!äp‰c§ñŸ’|#¯ŠâþæªÿT À8rÆõÈüå¬l·©¨GñËåËFyYÏ¥œ\rìï~[[»ánI1çl Y_$ ¶xuÓ‰/ÎFã'Àœ‚Àøk€Ú¥û'ON¦xàñý_aœ ནªô'p¼/0ÿÅòŸ2°±{¥ÿð|<å™>D +Ð[[ÿ©sÛ*齸µUÄ*#Áu¾*è\[o/}Í›ò£Ãz¯è£æó§„/ ÞÀ¢ì{ïPð3­Ï1¾mQùE«ÏßžÏb À»0þóåÿyo‘€‰¡$ ãžö³ ¦ñÏw¢Þ_˜Põ/z‹„L +d³Ý×0 +*”Úü +±u𚡦 b6©Þ×úªŵÕÍ9INÿĸFè@ªkê訤ÉÒ‡ñѼ‘z¦¨÷{¡>[ô _¾6ý²íöääÒKKO KÁ+KxPù¿^^û/?[{$À\ ?ù³¡µµ¿ýdf€íö—íW6¼Ö_ìû‰Ù?]쯋/Eÿß9LÜŒärŠ\ #’Ï ÇÂÊS7Ì•Þu!p€æág`ôýnÔ &øŸÁ‚ð‚Çp#¹Ù°¡ˆ];6ÚS`e/ül¨ø£êÖoR•û×¥º¬Fb¶+F2™üJQ¤h2Ì´8ïøÁl__9Ž•þ̼#ç)³EÖ/KU¦ùY‘‡ï2Åf É}³§µÞǸô_ð„¿£ñZ€·; +QÁe³+ö7é@^«çǰXh 0€e¾´ZSáKDxàŽ­pý/… !´ÝfM ÏoÛz8µš®6Aˆì#¡hèÒSƒ–q€l(ý"˜Ž…|;!øÞ£a©þ× <{FÕ¿TãLàZ©uvŒ Ô÷×Π¤«NŸ¶DF°`2§ðÚÞkVö>^…V`úÖp&Si¶^¶^îµV÷*ÕU*þöêêêËæé©uöC„jù¯64ÙXÿt¸hû­¼ìþ˜øw=žIf³?¦÷_*™<“_ˆÅÿ®@ÐaB~ÛÖS³Ž`0ˆnÏ.çL01Ǧþÿ—Ë©«e'ŠåR‹k¿Žýè]gKr’ž€\QÖ— zÇ!°œÚt–ˆ¶çs’Mo¿ŽøÝ3¬üQ¥‡ {˜Úz,Þ#pÿ’ØñCÒ/]µ‹U@ªýàü4À <öv/=|Èõÿ-]èžË¼½¡^QhèQÝûùb>” ø®sóï)û³ÞT>O¶èï&…ïsÙ¢èÚóB®Çæ>ž@€'ûí_ðvx'YÞô‡¸ +Ny!ÿÛg¿á¬—ˆ±‚Y,ý‰yCQL 0ÿ×<ÿ@!(æßìðÂR2ÐôQ¿J@ÃʘFÝ?íQ÷\Q%]ÂÂ" ¤7£R¿GÅG½67˜‹ÏÝUµ£Ãz=Ô×®Mb ½Ó3¹7o ¨g„sé‹üaà0°T¦Nhñài0HÝp©°T¸>DP`qñ'KtýO! +pâ“£öèYZ\[hƒ?ðÚÿ¿ò{A@°àT fÌõüH>ƒ£œ¡¯$“…¦b< gVVàÄ36ÿS‘í• +ð Fbë„¿€7Ppeå)]áܹr@QæÃ˜ÂU%©JíïÍ(}¬ü#–ŲàûË·^½ú\íGg£ªI&oN3¹D•zŠÕBUáÝö[²4Ÿa… ^Q´·Ð…^_ö|€ƒ€pþãDV9T‚m¶á #~¤RG÷áîÈêå`å ˜àÈÞ59ßï;zƒaaÀ~¿G¢…§gÇú}ù+ÅRÄd z׋ cBŽ•Š"éwª–*Ù,ÿãô "Ñ%±õèH¯!lþõ¸ö›|™7ð½KÏýOhþÏÎZŒ0úg€Úÿ3Ó’X¨ €!ÀÞð)!€áÊýééæç«Íé[{ÍÌ^…úÿæËJ“§÷*•S{oõ¥Ýlfj`þÐýù¼~§>)ù@n _J1ÿÌ¡PKlŽòˆ‰ª?–Ly˿þç•Á]~ÇÛ/`¥‹g:“Å €c^qxòV0ã©ñx €kÜÖs¹ù”!Gs„bÊWW®¦bcɨ»¼=;ö·ÿûoï¦¶ŠÆXqK[÷€í¢lÄl;`–77SË›'œíkìÙ\ÚÐÓÑÙ×1/B°°ð.@ÔÂßÇÆÿ'÷îÝ£þžg—NNPò|²ÁkìîRÁßø±¼t ¦¯(†ko§GZ E$ç‰äûܦçMsFéĤþkóÿ¬¿Ÿ_ôüyÀï… ÞÞ»OÀ· ò®óÀg(à•m'<ÿŸDƒ‡Bg¦AJ<:ªýLÞ‹—D±OüR²ýï{Ë€EFÂ@ûf7À.‚–úUºŠ€ŒÑ ÀàG–ªU[f.Z5~3=7)”×â$eîÑ'uIÓêf§>:Õ:!ªÃo…6_L¨3o6TÄóRl1毕‡®_¡Öi V…§››sæËÁƒQÅÿrò“Ñöè£ß,.´ó;‡#ØíøÛ‚h å_o¬›ë;ì Þ¡Ñ>D’±HIjô3ΊSU +a½P(¬¸9#\p\Ç1 ˆÃ…B°  N/þ×/åŽÀ¬!~M‰‘“°ÂòŸ@žà<ôG À[æÇøŒaÜžàª#G ÝH¥Ò¿¼ÁN€å«9}1g”Çþéjlmíê–”+gE 0@n_6R›†c|wbÉåØt¶!°¿•3ró¹ªq;3Ü×=ûlê1€˜x€˜îSùÇ €íïïNM±ê +ÿa´»;ž? „è¶K÷Þ߸Ï;€Ÿ}Æ@o#pÎÇWMó‹ÿ 'ê \˜Øç×͉î¤ý½¿¬ˆãñE}b;?ïõü‰â`0ϱ}Ÿ oƒ?ÁÖ~líÃÅ žÂÜâçÙ\˜s…Ø€®ÑYzþBÞõ‚‡³žÙ_``ü›Å¤ßg LX¡XD( ¾mŒqþPÂ" õ·ð¿AÏÙc ºZ¯ktÌîKÔüF%•=jMú"ºYÍÕïÞœ«Ó•75ôr>ÔLyô9ä€ý6oþ÷}ÿÆ!ü‡ê“ÉØ&fOƒ…ß—žRŸü4X./-Å-.]˜8šhMŒ..-mŽa`$ À—Þ`ÛŸŒ°Ô ¿Þ™ Ðmx†€æNç0q× Ç·#¹pØpt*ñiý$Ãád8Y`9ý7sÃÁB8HM¿ûEñÀABa7ì°%0á‚‚›[ çnV•›׉ Ûl=tæ}KªöÕ¾ú¼ +¿§°$Süsêó›MÌ$&õéÕ}SV¤–¿ª¨èŠš±””m+ؠ柵‚üË—`’mO±ãÇ ÛND.|߀s:•ÎÀ´@€ø?ks.àq óú—ÏJ¥gÇǧ%oñb‚O÷ö µÿÓÓ­Ó‡M {¯²šAá?]mÚͽʴ½:]±m§µó] ÞpÐyòu?à‹lI±(^ôŠ8·B_3ýc àSYBç<xeèÏÊÖ®)RèµX¡nÞÀç°èt=ðµUÀ·Dh@0ëºÙ^M-k[háSöòå©ùÔûcztÙÈýÃòÁÚ»I%ý`l{+¡  = ऌ¸±)4›±XÙ #Sd»°-¹F.7;›þæ'‘ñ&ØðVO°°û<à™À¥û 7`þ»Ë#XOí>Æ »Øx¼Á +BÃbðßÞ²Þ?ÄÍ?j¤×ûÃA7àiöó3Ùl`=ÄR~,æ¡bó†^^\ç¾üÏ×ú?á·ûY1àëÑç˜ðO Èñ¥°Ê{F@ Ðs¤OýìzÂ÷KYaFÌÊÿbÖ‹üÍú÷(Ša?@@–‡¼ú?C oÞ,±Í«Rµéè­ÑÑ_ãÊR—T*æ&+äª^åE×GkTüçªêdàZ¨‹ÊþQ[Cý‡£GmÓl)ÿ Ñ~»½“Ø¡R~8¹´–"„ðï‘ Œ4 àÚß."y@jÓÙÄbyhñ'0úò˶P°Ð}…}°ãÿõu_€³Æ:r‰vŽâI7‚P dÅY) ¡OÂê' þh%vVû‚ôQ0Pÿ <ýf@aK‚׈_‹8Žcú‰Tñç0$Þzµnõ¬zäæ¿ªªt÷ÓñÈår0¢Äu{3YGí¨^­Ú†]E¶€ŒÝ~Ù÷éÁ>Æö2ûñXV>]€ +p <¼ÊZ:Ñ¡™â@ÝÁøÀb˜ª†ž‹bzeU¤˜²çÓò*n(Ôã¯XéôðZ=q¼WUp½&z~K d_bÐ +ÿÖ’"˜} B!ËÖÙ#É’*v¸J×*)GoZ +Á!Y’ÔZÇW’)Q›Ðï1©àçÁŠÆ^ÇœÓû÷€4úžãßîÔÉ.õú˜,Ìw°Ø«Ù>„ƒr-ìwÓ#ªš¤ñ €5€]! +àÍlYbã# XþÏ'õ`ùa•(+;Jݪ–uÛÛUTTB‡Y¹³Š×Oõ+E™òAìM˜)lK Ž™¦à”¡à €Îd¯ôçM^ðüÿ¸Æë€~ÿgǘ pá/ÕžÐZøtZ;}vê©¡ 0½÷ùðçÀ{ŸOOg2Ó•ÕÊêª}kºÕzYiNï­®NÛ•=v¥rZClÔù›¾8#¾’P“&&¸÷ÍÐö{S&\ö6G;_c0?’ÙѲÃ*¹Ó V†Îån©ãµÿOλ¯D¿ À¼Cý\ŸMa óˉVÊ5ÆËQ*ÿ7Þ_ž+_Õ'{ÿ½åÔØ–¥tÑp[ÌliÚC6bޱ)€åØæâø/O8F¤˜6ÒzDB1k|ãsöÀãÏ>»ÄK|÷ŸlL!ø‘¸ ¤oÜãÕÿ{¢í_˜šÚ¸¿€±Àåºîq.@— ~–ù¿ß&€ê¿…^8ëùç|÷\¯¸b¾Î »?Èf~§Ïzz€í÷о?ÞO° °·ºç‰üÄWÙÁοoþ›?/X€‡ÂhG´ÿë^@"Ûàï€@ÃoÿEÆ_Öþ{•?áÑbüïý2 €Š<ÿ'è‚h€o˜øªª]¥8Õ™žô1Úîs‘«#Æ]/„HüÃG檚lÖ%‰:ºG?¹¦%µ#z¯çúf»q<äÿÐRyî³Ðaµ=’,S{¼"Úÿ2A8,-ŽNÎ%ËCæ>™d +sih)F`‚À—íöH~½!\Gxã¿á/xh`¤ß_,@?ßÀî@ rà(ÆJø CÉÐA”{Ãu?ZÁ ¼[!å@€²ÿSÿ,à2†Ýí0˜pÁqp}´Y5"ñx<wo*¢`8…UB±u§É!Nó…À¢V‚ ‹…ª 0võÙ°£á=/„Í@ü¨î*KXty* (( …/€g DˆËy¸ÊT$~dv‚R‡zº +ò~ø[–Äâ¯P' ÆNÿªÜ\…‰ÐjªAY×íªŠ(’«Ñ&Öþ¨dõŸ%E…¦Pî‰úÿ}O^¼8;G÷/êþ|”|´ÿÇÇ­š˜`30% ·Ž[§,æ]€‡{À{{Ôí_ž¾õù­ ÕþÊê4¡€[·N_VìéÊç{·V+ +*Ó¸v/Szq~þ†³ÝÁJRhMýL`Lo*ÄÑ’žXÔ$ frh„Ø ä¿ŠdŽîñ-8@C$ @d  Oõ¿{þ'57â +Pº›*ʳó†û¾1{ãÆ2€äûËÆíXÎ][»1¾ø£¤\ô@ €¢£m§Œœxly1û‰ó ÃpbÛn1GÀHú6÷_ðÏPñQèapÀS7/,œÜ[ðX¸0ù¿ÀÊÿ{<ø¿¿ñ˜ÿ©{»È<´Á}vÆàøÙ³·¥þw¹÷/jØŠçþ?ûªgŸ`ð‹T,gè¢Ù-No!ô÷ëµïœ¿ ¾Ï ¯÷ü; U€x Èüòž' øÔà©¿g ÈÅ?+fœ.Ü»¢'?` dùñ/t +‰ì@‡(öþ±Ê" ù_Èå5¡À/¬gÜçU¿B,\Ç £S½ªÊúbÌ¡W7œ«×ª7sU 污B-®ÖÍ^ß<ü¤®©õ¾Få’|Ôa“?¬Ã ˜JòQ»œµƒÍÅEg3x}iqé)L€Øxîhr³<´øèCìýóéhn±¼‡€š¼µÛú½ò×FB µ!Gcg@Hø “\I¥¶m7id 7eC_u“áÇqªa'â†]…•àJ0ø4a€§Á`Ðu +OŸB@à ÚTŒxx%y&ãM%LÆoªH²ÛŒ*“É¥`ò7ÁB9™Ôí¸ñóù¦mÛúbphli¾*DƒL«BYÝ{AàM&ºà/”ª-YX<¾dw1•Ò@–õ –Jÿ%“í±@ e!€µ€¡'^Èê9ËPßl+ ?ÅÀ`À¸=ŸŠÈ:h–ÝÙn,ßXN-'oÑd.òîÚ '¶¬*ÛŃâVŸT’´b\ޤ¨ö3°¶ÛŒÅ1Ýx6rÑù´aDs³Æì7KÙpa.@¿ +€êñ©úÿ#vsʺ|ºjƒåÿ˜00EŸï߇#À%Žš‚‚ð!Ož½%)t¸Õd*…[E_'ð“u~}¥Š9A_¬wÏd± +è-ÿûb,ûýüQ^ÓTc1+/nƓ奥òŒqVÞ<:ýMyNÀ<îoç&“Ct5 [Е‡Æ¡· ¸ó +—™ ·~ƒY‡6€É#½RÉE7™2”•°IÇŒˆfc'ê:9×qW(ésái?ƒ…Ÿ† ¿ÂR!XhÆ]'¢ëNx™BÜ87œ¤dÇ&oFèWŠMHøÍÓ•`8¥N¹€håÈf¹P.‡mª¤š)|ùd¦P™¾WØUÅÙ€líoZÈlñ&ž"" ´;ÈqÅ?‘ÂÍ?zjvÛ1¹Ç2Ù˵›~˜ÔÿW},åÓ7À†OPø»€|¬ïðƒ‰•Ý l0”­(ð €lÙXõ§{Ùw«dß,UW%ÅÞ®Z%´‰¶¢vx²!;ª]µz!z*AÈjVÎ'þÊß{€¨ÿ¼û *~©„^Q@"¸ÆcÿÇ—N3àZÇ™gÃÇb 3,(°Ÿ?Üã…*øÔéÛÓ·*·¨ÒW¦›6] ‹ö^Ýÿt¥¹º p +àÉ“7\ŒL®ú-Á´0Àë‚îÒ2Ÿtž¨¯{^/õe£¾/ ¿Ðâí ÒÝϽ½Ná|ŸÀN蜗žø"€Aõ;F©q/©TÌÔS®KÍ/ÿËò_¦RÉ÷cúÕíÜO×ÞMÅÖÞ} ÅÔ>S̚ƒxlÓÙ‹Åb©w O$Ùœdär·Óºaç|Ã3øÝ+€_ñ€×ùîíÞƒpã1§mxæ¿hÿÅ:"°+0µñc‘¸1õ˜Î§±ðl8óV¤„Ìïû‹m:Q÷ýèÑ3gý˜ª•°ï[õ?dšæ Þ\狘î=Oÿ KßW˜þlÑçØÀÛh€Ó÷Íý|A@ž³òFbpâM@`þÌ:„X!È6ü8`lÿûÏ^´þ¼ñ'8€âÅî¿Æ¶@Eè $@ñM‡„š ´Õhš7ÿáO‹šž¦ÕÏÕ:5w‹1]Aƒªèy¢r]½V›“Gõþá„Ö3©_Ÿè÷Ì>·é&†@ôÞhôÁ $úªJRå/ •¯“ÁëKɃàÏ=48¢–n€«}ûhrqq `âaÔþr'!,yú?ÒØñS€YÀB ÀùùöáÝ»FÄIFŒ +íŸt$«YQª’‘„p$×tühú÷NðúÊS®þ_@,P öŸ¾2šáp0ø´lFŒ°m¦c…¥d¡ðQÐÆ7ã–íl:p7,8K×]^ÿEÒu“ά¡Ï‡—œøAy1F¿otËô¦fÈâÙ*¢pQñéHIEŸYtóp ôÄýŠÝý–) ÅŽÀÇà±@Óv¼5ËKì‚eîáå˜án—¿€èì<Ô1{AÿûÑÀ‚àU­’ØãÇø^­©i5>x†Õ¦Zž T©ÊVÕU)\¶å;Xx@ê ••€B%I›²­Ð¯iI–Ú¬ªô`ì…½¸øNèE§ó½K…úïŒå~hA Pbà˜J}M,€8Æüª¸³.°–9>f!Àif/óðtzxzXœOï}¾wëóËïܺõЦžÕ®`þúÿÆ•½fóe³€U„ k€7\hJ¨üZ ™-MLJ(ñrƒ*ùë~ɳöåÂIb0d1‘]X”JÖ94Ød[ s>q. ÏßXð€—`¤Æu}›Àüû²š7báÙÿëËï߸꾿œ¼rªåµwçSc—Þ2ІAE‰@#€­\Ê1bqŒÊc¿p"ãɈ›K9=—‹Ñœþ æ÷?û +~„œL=^XXøÇ{÷{¢@hïm,p.ïìNmìžp(ðÔÔã)^Øðv§½à8@/À¾&ù +¾Rü‹¯’ÿƒË Äì4Bf [ äµõ¬ß‹}ÿ¼Èýèÿ}µ?ËDÕÎúbÀç¸NXüx ¿ ¼F_ä%ÄB ¯æ=B€+¹'( ‹dÁOíÿ…AÅýóä@ŒßôŸÍ’ªŒ¢U1:VUIz.=W5õ.½F±þ®G%ðÕ°tÑzšLÅ!Ÿ›”ú“&ä¹É::w3¤}8:ÙÎ'ú¼©×_çÕüu“-z´Û‡¾š^,”‡‚å!$…‡~\L]Zœ›˜˜øpm10zhïP¹§ú=¹ø¾zôÑDûË‘/¿ür$Ѩ·G¸Äû€"³Ö™k·Ò{;¸{¸9H&CQ\Ã])¹ppE·sɤ›\qÂÉB¹¤7¨×uƒ¼¾³Â“ÿ0kŸºá_àÓÊŠM®iÜM§$ÃÁŸTÓN2Ý4’Id ×YÕPpR©rr5n§ç{T^:ØLÎW5çs%Ü€eKãt 4a„ÃôGæ¬]ÞTZ¼†Ÿ>ZTzÌ.‡ñ.ì˜Mƒ,Þ +ª!ä§òí)ýMLgÑš ú–¾#ˆM•¿èú6ïbCÐuÀ–=lT`¢ÚÓ³KC`•ä*Â}]×ŰŸ^)«TË]… ð|••¨"˲¬–ô•ea €žgÉJÓ¥ŽŠà <œð}O^¼¨½8{&b€„ @©…©­öÌÓ·jÜþ˜€Öq©V:­ ƒ' ðì43|¼w<|:,,¦‡÷¨úO?ü|úóé[÷/_žŸž¶§WWVV®Vn­Î_^]]½Eç¾Eˆàt˜!À›©xEàÉÿPüK[Æ%äH>él)¢Å7E¸$¿DßÄ &ža—*ù„C&á v;ºÞä…sN¦W¶o™xzâ ߎ¢|ŒÙ”£ß6fgç•~sÙ5–S•å–go$—TêÁػ列ſË)Fñ#@q‹@1íÄEgóƒÍØØû‹±Ÿ¤~z1’„(¶ =šÎé:F·ÿcðoÏ8˜ê=l/ý +à1:íRÕgp² ­?âÿ68à„'»w/ß§k7X&p_?~vüìMtÏá¶ +¿?LÀ=K|nÒE'íÇöøZ±V¿?AÅ:šˆå¡õ+z3{Q±³ +¾lÂÛ +Ld}’_ ƒõ_(V÷eC ±÷Óó‰WO¨ýùÁØû ’î€âIÀ®À›`` Š=Þö‹Ù-Ìø6Á|Ã_«¤Ø¨"Š­pÀ@ã1 È{¾š¨þÞÃh‚KHˆèH$|@F+¼âv,Þ’Ç¢ Šß˜ÔAت̺RÌ´*Ü€úêµk«ªÈ¹‘¹ÍÔúR$¢h79CãvS›{ôá'õŽ6¡åµž9Ñ1¡ô[7wxeÕß ­{ ÀÄØK­n..R_Óda¨œt‚`Êå9ÌþGGlý‹ÀáHàÑâÒOFérà.ûQóßÏzŒ_x ¡èsÉyÅ kòy¹~Ø8tœÞÿz•=¬'W’+%Ýœ›¤^?I`€êÒ1 +A(ï€ówqFßRp-%ˆÓŠ-év!|'œüyÐ1ž&qÝÓBð:L ºü o„Sò æê†“Z +º«›‘¡d29ïF«–X¼g†]ñ@È,©ŠïÃZR3Ða7®ýØ«¯ŠbÎþ]Åûþt4¸÷†<½?§Ȭޗ9q§Ã·¢´J`× ‹]‚…é/×wÓbW!‘/LˆôW~…t„I>£ÀT€bIMÖ/(v³j«5KmÊ©¢¨UK.Á H‘V•Áºž•"£f{ +l¬ëB/¾wàLXÿ{#€ógÔïŸQsßâ$´ûX`ÀÀÚ±‡œÁ0s,„„¦ALŸRñ¯LcàÖe:Ýš¶§ß©LWönÍ7›våùwN+Íy¬ÜÂV@³rZATP÷̓ÿ?yïÚFšæ‹Zc6ƒ=¹gÝìL1‚ ªa,%sR]³mC7‚ +¹"dKœUtX«)-R,«Wj ä¬0Á0mtmqqãYVa’Ù¨Á…E Æä x¾¥Á°«|9ntýeÒûGͽ÷ý=ï[²33îœ 3Ýge[–-Y–e»žßó<¿?º\p²Ï^kê~8¼¿˜¹ïžÞ¾RƒºÃÓ³º¿Á÷ƒ ükåŸ;‘e?‘jÀC¤[v…0dLøMDÿ3+LŒ±Ë¬YÏÏÆL!œ m„2³c ™÷â¡Ì%ÛȤóß_ +ÙþÿÃõ´f4AÔ»Rȶýö~{}éZòÊÍK—Œ€É€¯²5Œ4»ÿÙ·So|† Ö½ïÐ`íÙ-oÝ¢’Žˆÿ·¶#€‹Éý‡A‚[;kˆ‚ ÐÎõc¸>Ží®œ|k)ÿ¨ý4üw¦á¨„gò½7÷€%PâæÇ‰Ä¦Çó1í„y± ޝ¨ìƒlßÄ›µ>ȧ\ÄÇgüdó›%€3â§YBБвï8-ßUp°7 Î(ˆt¦µŸÇŸ… a>€6€}òm ü +n/öÅ" U±Ž>•¦ªšuÚ¯ªìˆ¯’.€}VÒTuª*MõÙ?xõŸªí§jíÖx‡µø}krj¼½Ù!?^øõÀºÎ¢´` +YýÊ83جE^¤Ü%÷Pié#Vø_vÚÉqÎù9Ú™Lú“Ih§Z þ±Ï±vTÕų>êÐÿø$ Å`¿2ìdƒmÃ4m†3®>v$Òô6sØÐ€ß´swJ6FîÜ‹ !`-áž¿áµ_¸sQ%öðŽ{>÷Pj¯/¢+cÿ/š|Ø€&8c(£?¿ñbž| æYÙÏ›~½l0´‘J7L]gͲ¢…)˜Lq%‰ÕCÍ‚›ŠF‹uš…«aM‹¸ ¨ñ%‚T&eŸ‡Ò:ÝI„㚬žBˆA±]^©³ Ku—†(âTó‹Dòàm_—ÛõzÖÀ~Þs8€ùOÆX2°»E‡˜.0‹ÊzD2üev9ÒÜ V•EÝY¬@•è#yö­yûA´.q("&L(XãÝÐ`oE„ÿÉó‡sÿNxñÇ|.ÀÚÿÕ=Qú÷é]qzÀXqxec€Øöððð!í'Û3O.,Ï,ïÌÄwÆn,ÎÀ ÁpÀâQdf¹±8Â>\Ž/–ãå™rc»¼‚)À7,,HtòdØÇ@XÛ¯íkûìogŸþ kìwÜ`¸€“CCñ‡?&¹ûk$"örÄ»ž"q^SX€DÀç”Ä!2z<àõ·@`6b@DZûò˜ùôÆÕ…{¡L&cÎfÒß¿ºúßì}ßM͸oi«|`ÜWlà +àþä5vÌû±ß=ð†Mv—¾4¢ßB¼€@ +¢ÈŸƒg×Z¾/ìB‚Þ@2ù@œ?A'Ñ Q ÿ‡Y•Å'E˜°»,Âöéu÷5ú~oÿ_ÿ/00¯Ú!{‚T¡Y]07B÷‹Ÿ†Ò¡L<“ùë« ïg®f2—ŒŒ‘~¿t5¾þý¦ì3´èM´ CƆd¦?ð³ÓÒ%ÿ•ÒÕÒ„í èv:šOWô }#ýÀþz' •aapð9pÄà€KƒÚ·³³ÅŠý÷n °¶v‹Ò€Ö((pmkkëÖÎÖd" À0¾u 'ª?{bÑjRŽäÁßÚ£æ8©°ÀÛਤÙ:@bÆ|ÜŒ·# {V5άj\«w~PÍ~ÖQзåß’¯ú©ü“ôŸ³³Y'P0xî+#šÿshPw‚ðô¥Ÿ%ZŽßÿ'„p›ñ@A˜[o³ø7Y>%ñ¹ÓXhTUUúkÿ>+új«Ze=¨ª©Uµ*¡t¨²ç媤ZÚôÔÜT°Uõ´ÛZUkµV;˜Ï –Ö*«æìŽZ““íö£i»Éú~Û4“î÷ܬ6§J¥dªôt¼0úò%WŒv6G'çæž¦´M„v6)¨Î“yÅç’üÁv˜fÿ}ä‘ 1Dk3ØrÖ½ Ø ++Ë0ù÷–î4óùiÛðv›ˆpSÅϽÈçHÈJ;¢†P¢ úÙ/R/ Ô½·s+ÊlŽ=ô!SÈ€n÷|ÎÉ›Cn# ½@â‘w1ª( ]¯D"|]YQ¤š†Ldz±(§±=šnÌP-Þ0«gKt~x¦Pà"¹øX<ÈC +t—Tîß'ì¸Øb¿U•nÀÇÍ@ ²° àî27äÃòÄpB­T$Ð÷„ï §K6Š‚"R†H¡R6Ø ¤E=’0œ£°ïRŽ€4Ø€6@&ß%2·‘¡Œzà+2( ï´`ðtÐbp¶Ÿ0:ÙÛã¡€ìV'B¸·'À²Ø †Á`Â%Fs€ØÌ“íá™™ãí 3ËÇÇ–ÇÆþtld[ÿ(ËcåXcl9Ž‘Àbã«ÅÈQ¹Ñøj#€×ߘ=iñxýw’Â5ñTv&÷žïól¿aûÀ³ÚÏÿŒh½$»c’ L†‰æZ|Ž Eš篿ý€º=+V˜qlëΘagF®Žýï™Ì½…ÐB(cdìèÂR(nÿ )G ­è×´šfÜTŒËMrÂôÛ4¸äúi`ÝÐý;Ioøô´þ– @ìÉbø&4;ןAøÙãǶ¶í»sõù·¶Ðóo±Ú Lá°F‰€[·žQù¿~áøs²„ À¿|+«?Š¿¦ÕEûï$ùø´>HZ>êè]o \ëBÍßL0ÐÃȾnY«ujÄëAªû}çÞD.8]ù ¯fv€€ :@Z"8è÷™€Î"€x0¨Õ×àï` TÈŠX"a$4‚ç’€² žCà yƒÈSŒßÊì¢ï§2Hi°V+U¸Ëi¬tk-U;•OµšjU¥éª|*WºÒk]«¹äê\Û¥! +¨Õnu´N½»Éê7Å]ã´Jf}öl;“®N{®‰‰ÒíN" ØL&“fЧä÷ÃRûÇÊýäøÓäSW‹=k-ÅGÀ¨³ÀÎýÎVÀTÉ@£õl;°Îнa§í†’wߦ¹¿qÇmç›Þf€þ¦m÷Ôþ2¦^ÛÌ5ó9Öë—}ù¦á3¸CQLøú+“U{·]¦ÂÏzÿùÿg~Þt—â¬Ô¯ßIù;5ÿ^ÎÎ/²Æøa$Ñ+*lÒ°·8YеŸ­¤åÁ˜­(&ä‚ïUQèe’W‡åAˆ+f0âwÖ•ù4A¥µQ64ð!•8œsHW„Où"X¦dA¾èrR÷©BR@©òŠÝEûtDZ¤)GØýC'¡j«1e"ìi)ƒ¨à'‚Z Ë‰„Ü $” +Äsdy%^)’ àN¸ý(¬‡¡àÚê¯`ó@‘€Ñbì&{D$2 r‚öcÀ±Ã=Öò38°½÷„a€'ÃÛÃObOˆ +x K Ž—gÆâc÷ÆÆâË‹ðŒÌ4"3wØå±±23ÇGà–cåXñõëoÐ`Œ:-ú~Vùq®Ã]ÎèZÂ|Âúu×?ö5]ë\ÿⱔDÀV +îÀ\Èíº| Ðãõÿ)ø€ß˜ P¬ŒPÜ02òHf"ÿ©w„UÿÌû \Í䯆Ò./¹k’¬j²@­6aKÆàƒÔ¥_I^º:0ü¶/´Qɧ}Q#ú íûz#€/‘ÿëh.|~áç¬þ_ÇÊÿÖg¬Ä*¼p×¶à p TÀ[×·pÁ€-ÌÿŸ]à6€¬þǾ]^üÅ–™uê¼ú“jŸ[ø +³ž3¿õÅt€» Ð¯zž?Çʋ״ÿ‚¨ŒŠr6xVÑÏ^MÀÀ (æþA1Èž¹r6@0Qçª?ç:Zø×5Á¬gX"(¦Ð ›p‹P,û³÷E:Ðý# à>Ô‚˜0XðVÀ)o‰mæñœr®¥¾Ö×Xÿß§­J_¶¬êreõé”*ksj·:¿­•¨¶Û­*kõ7±ÁGóϾšvÿžUöÅY$¸&§Ÿ²Ê_jÂ0¾yÉuÛL^Y_wuZ/_"5P8³â=9ž\òO·¨¶á4úÒqý¥àBЂ€>€k`§¾Ùi7Kì_ |ç΋Ü\Ó°©à7ï˜4hr+Ó^Ÿˆ€ à5šÿläo³Ò®^äši‹~4ûCnÛÖËQ#õº_¸›M;â½{áåûÿ\þ…W×¥H Åî©Xÿ¥»d/ê¾J¥Ìd˜*h|ò.s7>΋F|R(|"T™;ù«‘Íß B¸H¾‚2 Ìz¸™ Œåû:‰Óúe‰Šÿ +™¼„©ëÁ”ó^Ðÿ»Dæ ‚wÿ©[ƒpy{Tòë%;â"'"`) )àòUÀùW”†$@I˜ÀRƒ½ÁîEð ¶°ï—AAÀ㮈…†OAô´ŸXN»Åw,Ä€ÖþEšñSøßë#÷£ñ/¢¿?!à"åî­„q#AÀ“px%ö£á#†ö?Š=‰ímÍp_À2,Žg–ñr_ŽmÝ[¾=2²\^.ÏDÊåúöâØXd±ñ°±)GF¤xòúß |êÝ``yÐdBÀ°¼Ïê?ÃgûáçÅ]‰ï™D +ůM,á:á±èÎE>1à¨ÏÙ @> *€B‚»¯Ì_Û€®_¶:ç`0Ÿe ~Û0n‡F2 _\½÷~h!c†B™tˆ€ÿû…šQÐ6‚4Ö +Æ®È$/ü¬û_Jú/]²o\6lÛç52Pt#ª§'쯇ßÿü:m.`ðógן¬‘À­n€Ñ?½}¬€-ôþäÄ qÖ¶ž‘ÐÏà&ÿò­ªþ2_ü÷µUv\ÕøöŸwàλ`a°Ïç‘> Xÿà ÐEÝÿªÅþ;´ÄÍ_üâcWB£c!k`"¯¾Žåo6{ÆÇKœ7øt‡%tðû­¢Ð'Î*}Pà‚¬ØöŸ¹d¦`q~Yò ÊŠ‘ƒC䍯ufià*PÈ1»|“"@¸Ï„Þò$ÒêùÕ+ þ³ì_šœÞ´0Ò4­ª©}í¹}t‰ÚÔrºSI–<®ZÕi×ÜÜTß:•Û“®ÉVõéòùVW=ˆÚÄ€ÕâN§ÍN®@ª4ò\ÉLæX]ýÐdx uw¼ÓâžüÇÊvôåäG)½Re¿Ï– C€Q1`…€ûèóë€}\ 8*T€ÎU››ÙV d²šmD#^¯×41°Ý¬7›¦iäJØösà0šÞ‡Ð Ú>» GŸížGz¸nÌ švΜ0íHÄðåìœÝt¿W²±1pß0*e]Ïë‘f*WJ™ï•†Þó²§³©T|>eßâVÿEºá + +¼ªV¢Ñ + ÿµ°ÊõÄðó°"‘Kvê¿B˜A¡–Œ7ö*Tˆ—IÔkNÙ–òÃ&È"®Ï{ÁÝêR„€ÅãÞSÌaóÒ£d™$ ì–¨Â÷W×u¼ w‰ +eÔs¤I>¬»¬ÆW¸1û º¤@dß4¥Bƒ, ”Ja€" ðÝR¾\€|Væií¿¿rHÞÿ{EÖý“ À¸Tóá#‚@ŒP»ÙÑʱ À `{åèp›¼i&à Ÿ,³nÿxŒA€±Û·ÇÆ–Ç`03³‰,-/—#±åFä«òL™A€×bðH 8ßÉ øÉ5UVÈHVzžhmŸ«N÷ÏåZç–gã8†sQ©¼±‡R¹ïø_[ƒà@+Þ‰„³ýÏòh#zq *#{¹‰ó  ÜÜLp ¼EP©àÐý@%I²‡òîUT%>T©V«¬•OñOmU«®>Ú:mnB’UM.LÏ=}:©zªã\U×d°Åê1†ñüC@«ÞÚì÷ëÙN»ãj¯#÷—õÓCë ̧ÌÒÃsãÈÿD•Ÿ|éí@åßyÙž›‹>j±’Þšæç<€Dÿd8Ê%ÎZ _n€ÄýE* „v?,•%L4v“ˆ.Z„API5®"…@·4<(4èEл,ˆü·ø=ÄПöñQñp龜` Li€`œp À·ÿܘ¶ÿH>:Ü£h`ØÅ>?"1 ÃÇÛ3å Û¸°Œ!ÀòN|ëöíOÇâ 00VŽ—3ñ‡Gû_± _1P.%A€oHý§ß~‘¯“T¾ À#¹Ud²¥ôXû²ü›Ù?Öà½e‘—¥LVÂÜJˆø].Uí"U°Ë/¡ö÷hBðšÇ#u€¿#0fFˆVcþ¸îÛ‰Ïnd´ÈmÃW»zûêÏ®.üu&³2g3öƒR( +}'­¥ÓÖ.éYý/¤ítÚ%“|p ³¶´a¢ùŠžö¾œ<f=?Lÿv~N@b÷Ý"¸pÒßãµÇߥê¿vZÀºáƒ` 4ŸÇ¿&@Ÿä„¼éOCí¯úë ã²ÿTL—°JÎû‚°‘Yµž{²ÿÍ/ÿê¿ýÕ‡óñdv že¶ÁôVH$ZÁâãT'Aˆ£‡z=10ø;ÿвgABT(0Q‹€¬F?†È¤Ç^Äà‡be>qÓÅÞü2%ƒ @€Þ@^M<¨H¯ÀîÃ[ÅÄÿ”=½Õ`¿ÚªZ˜ÿ[VUëWeuB²,iâ«Õ¹¹ôÔtÕR'«ZKku4¬ÑQ¬ÿ-«Þßì³ÃXŸmÁžn1óîÖÍ!7ªåP©”œ{ ,_¶'ù Ói*R°ßßdÈa‚£/Š Áà5¾N@/90`g‚ $ðÑ:+ñwRæosÂ×ÐK¦q'÷¶ï°~ÞΕXÿnÚ¶i¢ÑÏé>ÃËUþvCÉ y 8°*_öys{¢ Û0m…ÝìÏ9õÞÜ#Ÿ”×®0m8äö–gS HøµÁše•ý“t,9!Ÿ_÷ÉZ?Œë©1gÏ;\vT*¼27åçWà²àY£µ/¹ž[¢>Kèº=aµËû~T]ÚÂÒÂAæñ­b,@C‹¬,¾‘`¿¡çÊ!èy¸? ¬Èˆü¥åm"$²î «|)¬<ˆ°n^Æ_ ,ÂDó K•0lþ*@%˜Uxzð +ÀcRÕb—ß.…1ð|ù.4ÿ~"¬b{'XîŸìïÁè—Ü~ÐîŸð‹ÔþŸÀpïð„„€{tC1 8$€£ÈɈ½lC 8Ã_g¶g`ÿ·¸³¸|< +üö-Æ——uvE¼\žiŒ¡÷-Ë3åHcÿ«í¯` 6`ï;€#OWï.žûk´ÂÚ>ùQÊ5E~®öEÏyÖÙºhPþ-ZPAN' HAz”Ì(ø + ¡";ÒôH +ày-"¾õ€Ðeƒ€«úlÚ‡62ÁÈ‚¡/Œd> ýì굟-\]È„ìLH¿šµíky-z¿_ØÐ  2àg ¾ß¿ä_¿ê¿²té + ~#d?°í¨o£PÉG}¾¯›ôþîÉçBÀ)¬Ž£®?Æàú³ë|À>† ‚Aþg€WÿëkÜpëÖu"   ÀÞ7ÞÅûitüý ¦áuÍüÕqÞ§Oœy^>qy–rv»~Öžƒ­Æ¡:ÀÒû«_|ÜY¥À&Cl§ã¢s2¨Ð‘Ð + 1Ð8q€<X‚Tʹ±-îë0ä ®ùn‚AA9 µÕý§4ŠæŸ®vª?¶ÿ¬Ò]èõ]Tø]4 ¸‰´ã,].›€ƒ·NÕCÖ¾ù_ÕNÊ^a€§–Ö¥ORû °êß—ûZt\A=û„à¥ÿ4ÅAªÝÖNTè;Ù>k÷G=«Æ«uhò6Yõo·;Óëë¥Ôzn~È\Q~èÆü?°šùQ‡€ö(¯û¨ÿîú,+ýØl޶.Ž^¤¢ÑÉgüŠQ.ÄiU›¶ÍTÎD™OWŒ@Î^LÝau½äÁÌyó&ô ùå¯i³òÃíkD#9wÄØ/Ü7r¾À ·»y“VnÓœhعÜ<ƒ/°þoh>eGÖsïÍ¥ÞJÚÍfÜÈ7SnCŠäõrTUô‡i .©X“†%"Æí“ß’p. è”J¥F­·º¯±r¹¯¡ì†¹n®‹£q˜«‰Î‡õ<È‚2Pd!s€ŠÍ+;‡aÇæ¨ýر=¼‚›XaD·ó`A‹=ãøÂƒd´õ–òJR^©Tú±R°Ûw0}%Á]»Lôy¨"‘t° /Gå¹d$ ˆAèr‰`·û¥ç]¶Ä_ÒˆŸ<ý÷)ûCèüöØkøE…žÏ>ˆñ!Gä@6;Š=ÙÛ>|²÷doøh&? Œf¶X~²L¾@ÇËÇcÇccc[)#-xq±\ÞŽ3 —‹GâWGû_5à DÍïxºƒî+=8©<(¼î)5Mìù­¢õ›½¿Å×ÿ]Ê …¸ªÀ¥ˆ‹]1o(vÉV°KBDÌÿ{ÿ ¬BþüeLŒËc¡|œ€ž)(j?¸7ÊŒü,sí¯AÙ!øçgÙqH+ìj£Ï&QÛˆL3é_7ýþ,Á`)5a¯ëy³’NïFó¾tÚg¾ßþíW>'ðÙãgDà@„¬‘(àQÿo}ïñÖgx7ÚZCõç‘€p ¸.63Ÿ“ à7œH'0ûAŸ5É…sn:õk.Hý´cÜä€B}„°K´él뉵Ö{n¹\ÿâOn’ñ:6 +ÚÙü¿ ÎÏqü¹²`pâv€9œFŸoò³õ„C(dÏ’î @P žlDF€ 5ýCÓÿ¬«€x ›ü* P †Ÿ2€ŒŽï»n~ýA§c]áv2rø•.Qkx +˜Å€Òÿ~µÚ¶«ýp_•ÈÒ Ô¶ÊG Tçîºþ)Øn·:-HVû/Gë¬ùgÏ ¹÷ëNk5¾óhn½”L–æçS~÷мû=ä¸SWÚ£bÐáxLÞýÈïoÀoàüƉ4dü;ºÉµ£,0Ê}Zì6ÒfžUÿfD7ع·éµKn37sæºä?³ ƒ_/–ÿæ †òPô+JÎícxî†ûa¥ e +õ¹’þ°ä‹ÌÀ÷rÍ<éÿæÝ¦ ?8p:J¹7*ӌ땨/RQ`»‡>Y‘¬ë–+ÑŠBò•|<þ‡ÿ‚¾óÿð¾ðÌ¥«RN@1숷8 ª&ûU  KwеVð]-™žâpo‰´faÞÀ‰šß¸ôœ0 ô Ä¢ŽNñ½Rœb¹ËþVV`>aP%"¯ÈÜÕÈ‚|0"©ÜŠ@aH h…_)TòF Ó<9DÝ0À;m¿„`ï L’ÿQ΋”t‚^Ÿ‚(ñ‡]Ø'G “y÷¸öåÿ)A€Ø†‡Ñýņ!ä®ÀO¶Ëœ ¸xa9>³³|< Àí?½=v{Uÿ™ÈpìhYŸ)/î—cåý¯<¿R¾*®”÷á'²ðþhÍ/tø$D{_LîkìkZX pß²2kdîÇBïÅYïÿEæ‹{W¯-„BñŒa‡fg3þPA¹¯Õn’P¡VHÃéÏïÿ³æ ,]Kþ8é_¸4a‡&t3Í@5žŽ¤'B_3ø×Öô“€6døŒ>[# Vë¿·­ß­Ç¿»…Þgç«ý;×) + ìà…6|£cÐúƒæ§qc]šœýyðÜ6žOÝ‘ª˜ 0€`ðkT^Á`­dÖu_Ó¬ÞꪜÀT ¾ªY}«Ï¾Ûê@û>CÈ™õŸY+À„PúkÙ³]€ó°41ÿyÎÝ2z† øüÿaÏ4F«Ï +t¿›PÄ á$â6_ÿ¬þ yȪêÖð“jšåh+ª*û7ïW¥ÖTPíWÛUµÏnƒri¢ªN¹°‘ÚÖNå>+ÿöK,âi oy¨ ‡ «âV{r²ãú •j®'‡ÜÉæ V0“WÌõ¹äÜÓ——ãÔçw^¶¹ð%X€OÍNkô"€Ã(% ‰ÊqtÐé‹S}S$òå‘:bDКX·+vÎ;+ß¹Ó´Éòßl6mÓnºK¹fÎkc´ÿ£VÞ›Ⱥïé xÝ^_Ôv AàµÖÏåÜùù\3õ‚•DÆ7R år†ÏÇn]Jý2gV”¨7÷Úy„(«ÐÁ“OK]¯dO˜b@Ty™8ýaµ¦²ã'ó%<öòEGÆGT?šâÃÈÓc @âÙ€2Å7ði»‡¤Ü?€gþby`Áž…ÜþpFÂË à“ÝSRJ„'º4P+œäÇG„ÿ®¬IȨ”Uèúd¢¹/’•  1˜„܉ˆ8ì¡wY(ž" +ðßÞaø¯'+ÜÖgoåpª~ÖÓ³öEŒzòÂÍÿ(`o…G"0ƒÀëüYË¿Û>lì ³öÿhïÉÑÌáöÞÑ0Ìl_ Œà 3Ëñã8ÈñøÖí{·ÇâñÅåå±rãhfqyår£Xüê«çûÅèþ>ÖÞÎóþG›¼¦îŸ—nK“Ïø*Qkżüé?–ç·HÈáÓCÖ„ ö”ðÈü]ÚYÀYh0ƒ@Ý×]Ø?¼þ_ +8š5B—ip9ÊëWo†Æ&n…>]¸áÿâÞ¥«÷ØÍ2!h3¦­íµUÖ +…èº=a„ÌdòóÇëKKà”JÛ6Ò™t:š.,nø6|!ÃÿõÖòÆ“1ÿ¶v‹vý"pm €ïð½[×מ!ðvÓ(Èx c†È0€ý†Åé~™v`£Ÿ=#é ã‡N œ"J×ÅÍ}²A p@Ä~7]¬bö´lÁå +Ö;솴wž÷<“8Öÿçˆ}‰ £ä©|Á ØÏ|~‚¼Þó/‡›_çøˆ”þì:@ÁQ&NÀAeˆËp_Œýq™Ø$ïßå`Š@&ûÀ·<µòiøôTU¥ X€‡ÇO Ö@ÑÀ¸Tôôd*²ŠD€€ûþpoÀb—øjØ:唯òI@—¢ço(ð*ÎbSâž•ðŠL1À’B††¬®³’õôR¸HŠ…H…;!¬ˆ¾ŠÝ–ë_\ +nØJ‘&ïr@ëü0Íóy;Ï€@ì®æ'¤$yà éÿO8ùo¥H»þ±½}ÚþïŇcÃG¬ï‡ð“Ø6ûàó£ ì"4z7³\Þ™YÞa d€±1XÌÌ4gâ‹3å™ÅX¹¼‰¼.zö‹_kš,Ìø9ôúc¹[Ê7ZwK>¿ +°äšç¹¢ÖdË2¿_ÛX¢üc€ ±@ ÷Ac¼G% ‹¿žÔë±ßþë®ðúÖAÀñÀM>îÛ‰§óFøv&ýéíøÂµ¡÷¿X¸z/³nŒ]ݸœŸm^µÓ¬îË5‚µBa7d¡¤?È$?`àJÒ©بiD£…Y£²1ñµN€‡O. @ˆYU?ØzFÇxõøkŸþOy€Øó£ýßÁlàÖ^ßzŒOCˆþŸ6ß¼SZ¬)ï³Ö嘧èlФìY:‰à™]¯ãωœ/çèéƒAÿê*©ñ‚ ×ÇÙ„ËÓw¹nº‚šcºŸà†>𦠀@ÖüGóçˆþ¹Ûp$á¯:àœ`Bˆùç„ÿ9€ ø}âË +¤t9¡D<ÏL\ÙûìV÷! ;`‚ìpÆÀ± + +ûý·°Oå0ÃJà•:ù)fË$gˆ Ë–S­Jo0[‚- ”VûÒ„ÚW%Å57=}÷‘ªÉÕñV¶Õiõƒõ~£w«?:ºJìŠþ&+è›Ù6¼Ÿ~èN•†þaÈÍêèC39š‡RGIˆ¬€Æç\ÄÿkwœŽÿâ9@_ÐýE 7" Ð ÖÁf« Êkö}Š®/ú$ÉëÖuÛ› ù6rnÓh<ô¾ÊÙ‡ h¤½º××D¤(ÄŠ¹ÜP.Ò4moê{È6b‚R ”½wæo„ò¿lær%½â+ç ³äÎå'$ ,þ´/g6hÙÖ+‘h¥RŠä›°¸~ó4OjCª‚À®‹DÀµS÷¥h%Z [|ðö¿FŸ·þÔ¤q;@2ö€é?н¿;ÔW€•þ´;à[g”K÷Šcþ¹šjÄ÷ò<@b¥ûyOÖÀðöP| „=Œ®Åî¯Bвç4‚ý¬»g÷§”£ìvøË=0( ÑR¤0w Ó"à”Hïnð/À*ø^ìïŽXïšÛ;:a%žÛÀ 脊0 €½ÆÀ¤â_t¬c1Ô~pcGpdçðfŸÞþ|X@g¸"a€e@€Ûð~Ržiû°­i¿¥ísàìØ×ÕÈdš Á +a2еެÿøCã–ÀÝodÀï +|>cv iñ‘÷ô‘ÙY»6’I-Ä¿Èd~vuáŸÚ³¡Ì†Ÿ ]2ô‚Vè§ï;€€m%rý€ä%¦d³O¦CˆªéyI÷}=¾@F€×ø9zû5ÐúAà1À¢@€ëïDþ[`ç:̶>»Ž 0/\ à7jÀK?7•c¥d5Ø}qµuSXâ bôã€,÷Êž%òŽ˜Oý¹Ó̳ + AÀåòX»îOƒgå¤Y—k ðÏÄgË€Ä` +q~¬?˜T$άÿ‰ŒÈUþp>ƒæø‘èÏ1 Nð0黂çwPûg©øsn “}Xà·¦!ˆ¶ú–4€î +Ì€•WFSäSÄÎ*²GÀü>µßµ´SíGÕtõÔª>"Îà£ö”ën¢ßz4éRƒ§H:]m" pu³µ +7 V˜aàŽkúi*‰Åª„åy*5TJ%çÚDú{ùFˆþí\¤ ÀGáªQ2:Oñ#Uà€HuŸKL +  ÍN'p§Lhÿ #mè EÙ¶KÚiÃífwäÅ\Þ´}¥œm—•H4Z±_DÔ°îvÛP<4Rv³ÙÌys~;Wº1ô"•ÒuÛÓýCóï¹s‘h •Ó HW55÷{^šq_哨¤ø4΢¶Ò>”È7•¯X ¸«H$´cm³/Š Eª°“FD€}•SýÃNèŸLV¿|¼Ê·ú8ªZj¸(W0Úçu?Ìg辉†Õs"ÿ¬pàÂ:-¡ñ¦]/¼{œÐB°4¾ a.Å„Åò¨¾|™s kÄ—^) +åÈt•0»5¢+ Z’ÊÚ]C¦ò5ûëbמ®ð(ÀwW¿„àpårL†QÑqvxHf@0¦àß(ˆ \Øõ "À0€ûÆøô ƪ>á€Àà\Àîôd›×@€evŽ—ãñåÅ‘å‘cXŒÄ¡h,.Î4±ÆÃFñùW ³yjÍÊf;}ÂøÇž)Á!€3€@ÓøG²ÜSjBþgý–ÂÏ·ÿ˜i øÿZ-$D.ðX|/ðëi‚X¼c÷§?.ÐÆVùLèA\/èñøÄ†¿6{'=ö§³÷®þ,³ðý{WBùË >#4Jæ}»Ú}«p²õB´°kø7&Œ¥dÒÏ0Àµ¥ä•KÍ—Ö!c㲎n|!¾6øo?¿pýú³ƒ¢ÀX(nÝz¶CÉÀ”ÿóLÀèÿÑû³Ïƒó¿vkíà1V·Öž‰ À1Ùc(€½Á®‰çÊ÷ë«<‹çœØ¾N„ú«NÖ)°ÿ,ج¨ØÁŸµ<Ûáà!Á³tHO÷±å™‹^ý¶3JHð¼`'Mˆî™ÓùƒbçP JKÒÃ3J_1Ôƒ‡ÁtŠzv@ÿ?Ç€–Q;ç¤àŸlÖ1RÐÀ +(!Ô÷œ@¤~¯ýàÛÍŒ£¯ñæn€¬šÈ}îå¾ì9Õú§}-XmÁ†ÁU}ô¨:ÕšškKív¹AÌüë(ø£påÁÑ€7è­ÑYÍ¥’É÷JÉõfÒ6ÝCL¯§nüÇã¨òd„ý?Vãwï^¹‚ÍÀE¢mßÙæ¿sQȬÀÍ‹|Ð'{ £õì'M÷Ö«›¥’½î‹Ú ©œ2ÍRÓ6¼Þ‡¨ºóyÃK4ÿ ±KR4ÄŠ˜4‘ÏcSð@·ÁÈÙ7rþ¦i‘‹PYŸõ5ÁÿK-²›”òå(‘øÔŠnÇYŸëó¥QÄ5U©ñî?¬è;ß4¤þ)Q¯O nÿ’‚ÁÂ}د@!G].Ø:@òÒ%oß»¼¼£o÷PÐP·+Á‰•¾ªKØ [ ;±-ÐÎkg‡dÌi»–F Ü<ä `£@ÉAEE K ˆ*¶ú•²!ºh—Û‡•,‰ ` ±–"åTîy•°ÅX·7€N :cÑ»¥Rý^¡âÏzÖ·ÂÖg…øÿdøKa@˜ÿï“@q(S܆A¾X9‚ »ò;ý%Ð;ýhf›AA<ÞžšÀã‘Å Çñ‡;,ïÄÇÖ–ã ,ÎŒ,3°R^x^|.{@aòW7;“uzÏÿLlÉ΀«´}Íôö ¢Ãóàýç!çê³Å&×0é±xú'´œ›3ápþüú}dŒÙO3z`vc"T{pÛÝ[\¸–ùbaáý…kŸÞ â}#7ü¡tZÛ]­¥kš¦v¥]Øþú––’ëþKëÉï 5tmݰ ÊL¢ñhúke€ÏO†Á¼Ecüë°÷ý.+ít°†ô?Øÿ~¶¶õLý¸âoëÙÖÚέ-ˆød€]‡ @€ÿöÑö[?yÞü×ÉG/8Ü»:‚wÏëÛêYŸ]:;€sâ}º]!1p€\0 +ĺž6ëV ­Þq Û_±GÈÏVÙ3ýòˆ¾lpðý|D­<_àÏcsC úAØÙÇíµ 8 +Hï «?ž‹‡„û/'\AaC)!WG®j½·€°ú +•GU”WOV}v”ïW«ÿD } vZµJhà”U)=U >ï$²gးŸÕ 7­^âã›7]Á>æ|¯Ÿàu.$€ABp +à<@Ñ®‹DŸºHôã¡tˆŠŽÆÐXýãm3ë„à¸è]P8 gƒH#‰à ݘvÿ˜E$¨÷ö‰¿ð–§ý0Ìmç ùl?¥-2@uªÚb_ î_¶UUƒ  "PrM«ruz®­ökÓSÕ¾öh²]mµú l®öë Ô-2Þìt^NŽ·Ûs¥di~¨”šw»‡Ö]\¿™úh+ÿ—(ô‘&LãýN{î£äz›4ÏSþÏ+¸è\=3àÃÿÍQ‡"¸¹º:ÚiI:È~%³É^›~ÿÌrÿìæ‹õûïj(‘\¾éÎ¥’å *˜nÛM;¢7ÝîJÔhÄç‡r)úÄ ÷éNzrec1oT*¬ç×u_Ù4mŸ-ëùEÝ'1ðàƒE>Â|Ø1Â>E©W`õÖDÆOü>¥á+CÈ.F7"” LI a±ùWÃû"¨ÝÉ 7íìyN MéA`e]û –“ +[>%öï9À9סìx*:úО ‡Ñ94‡<9^ÒºžÓ°Z$kÀO¯R!<À~€^¯¶<0ÿ+ò°?à]W•B< “°{é’Ÿ1MH;`u‹§]¡|gGš/‹'+'GHñ9b;dû±•mÈøb´è'þ?ëóOŠ´ `µå°ˆs’²/"! kÿXÁ½ÄH @^€ObÃ_1pô#|8ƒ7Ø &À1_Ï“&€ÕÿÅ Ë;Ç;c#·ÇFF–gÊår¤hÚÿu·ð¼°ÚÛÌŽþjô%vSo@€?àQ·ë´í´ЈÊÀ¾37`Ug :þ7ÈòYùçwC_†«º¼þSXÿ.ߢÚÿ?ô Ãa0;–ÑC³¬a7Òi;ÝXåïdîe®Ý¸vï‹k™/2¶ž™MÛ³qãRÚW`à¾VÓ‚…hº`ø“¾h2Éê¾y%ù}L®&ýë¶ð5ÓÑ´¡èÑ Œ~» +`˜TžÐ.àú³[·¾K)Â5žNÏÖˆúwásÖí¬]'òÿ3pa LÜ@ðûm~Ÿéžç5 %ÉFžW|Öõ÷û$ÐcGsl:FûBi—(œIþ²Áï`*O<¹ Ó)'ÈöבðA€@ .éçS„¬ë~µÚÓ\.×ý Å`ß¿ Õÿ Hˆ¼„ȹo°vàú<ÇÆ?ûæž"{NÜDZÁ€¦à( xzðÙÔ¿~.z°@¤ƒ,÷¦e@A4ùPþñöŸ]þã£DhAYë¯öµ·Èzá0âI xÊÂêÆI„À °_åÝ¿Š%¿f…«ÒÜÔ©‡á€)EŸ›žÒªöÝiˆØ ú„áú£ýÍÑ~“ÛøÁì÷îd{<™Lº‡JþT)•r²æ–ÜCCOÛ¬èó —/‰Ànþ²íO~0'øxñâÅÑpôüEÈ @ V@u;d—æÑžßiÚ¬óÏGL·÷Ñôæ1¥¡ØÑœYö6_@ùK‘†Ò0ÜIs=ÐtÏo0„qß3MˆýQü‡†¼Þ|(_öE*•ª"5~ÝW‰ÀØ0îõIº^©¢€Kª¦ ³gÍu8òÐ)W¢ Vaúʯ²‹ Ö)QµÂ¾¢ØÑðE|`„Næ1ÁˆhU…‰Ÿpòã¡+=ŠÀ!7,Ì„ä®*yºßóž°qƒg _Äözœúï8»ÓD–4iôÏ×%~°îq#aO÷9Xüš\ {J„+RØãQ|á(”.²~Ø•ôYOWñ¡Ô7ôe‡0L$DävUÑp2zwQ€_~¹ò·+‡'ìüƒÃOÓûáÃáØÑßH@Lý÷ˆHJn ‚àð +õÿ‡E +¾àhÖ˜ù¯0<@#ÌF·Á`w¼ [`rÚ<€™ãò…24‹”8³¼HÀ‘å‘OGÊ#‘Ùñ¼n<ý¡ôtê//þÅÅ_½| õq×ÃÕðàžK.Ù_ƾ̊P­V jœ¨ Àˆõ󯣴Ô¨¬3éU~Xð€àÊ‚@P€aÑ¢,?ÿ¶~×CñdÒ‹Fawvvc*_»_ xíý{ïgî-\6ÆB»³yø´‘f@Þ-´Z%Þ{Ɉ^Jþ×õГÉïè¿’¼dú?¶Ïö±æ_šMGõYã·³ÿõKrÿ?¸N&;k”íóøñÁÀ…ƒ[[”ü˜bÿ\°uëÙõ­ëkt‹{9A@¿ è`óÿ·ê?ïõšÜüVQï7©ä¯‚FFµŸê½žÝÜt¢vYavÑ @A¹ohÎÃ'x0àM<)èß>¯›ÅØ€IV]W{Vð¦+´êbtÍØ÷ØùÎòz ôç3… CûÿµIg-8AƒÙ€*$Îi²Ž M¸ÀÑÒ%mk(Dù‡ø?8ˆ8æûNwÔ4ÚáÃÊà-N+XѪÜ÷eâ¤À°Ü÷OYÕ¯WÉP…ÁUVÔé‚ ¨úÈ577>7þHS³ãw'§'_¶‚hYQö30PȢ·'Û“ Þ&‡’ëëÉ&øs¥¡!÷ÐG¤ó#£Ÿ—;X@89÷ŸžN·;-l¾9¸è°ß›\ H£€þ 2¸3•¢F9¢G#eḀ̃ܦ™WÊ¥fÀÐu +rÞ|ÓÈ啨׬4sêØF$çN™/é\)£/”÷¤íŸ¿ãv›^[Ø~=RŽ¢Öùrn›U÷JÜ›¯Tði©úÀ€ç/û(š¨ç}Ý44Wú±#-ñç)"IR†þ ÓÃqO’  `…ÅWæÉÁÀ——ëÈÞ×â3{±\gßI!£.ßî‹"ÑÄ,tþ´‘§ø- ¹4 Ã|Π,Švg7Á"ÿ`ß/ Ë0]RÅŸ´4ƒèu%…•þ +ëþaŒø±ˆP4š7 {Q_Q6&EÂÅwEûòä5$ÅC´ÿ1b4 +ˆ’É©þhp¸·rBæ'{B°rTä~ÀÅØ +¢öWh‹ƒÀð”¼ö³ÊOÅžÀ¸L€#<9^<æ„@âÇ;€ñÙP<4 ÍFeãþäÇÿe²³ùrôâËþŠa€I­”!ˆÿC[’¢µŸ• ]©Vàì¿}L kµÝÝšÜóhp~ý/€Ì‰礃šæP …çßÊÓï,ôùBWCF ÿéíôl¼ ‹éû†¡Ä/éŸffÿ:sõg ÷¾¸—YX—Ci=nþ|€Â.²£éèÄú’-Ù—˜úà;Éä•LÒÏ:#´ÚH7Œ‚ž–6 öÕ¿ý˜œ‘$bÆúÿg<€5þŸÁ%àÖšcõOÖ@¬çÇl`|·Ø×q Ïgžü~.€4g¶9½žp½zM2£žDyf$!¸ýoÔyìÂ3ÝÎ6³›T@;‰NB°îÏéÿÎÈbÎ÷ˆÑ½ÓÀŸµóÙó&ÿ°íYe¸â¾ËU÷x‚ßte­>‡ ‡»Ï oÖqL$–_"qî.E"@P˜3?lôo@Îsÿºýs²…±ÿ¯×R± ÖŸÓ ÄÀù†˜ÿóâïÄ:YAB¹Èê?—.¾-Ü,Ev-îŒ:+,D€Cª +†>» öe©Ïn©Uææ>jOµï¶ƒ}Õ5îzÔnw:u!þ'#¾~½.&d0Ž!—;µž‚pÈÌ͹K¥§ã˜ûw»_ôüÎ܇W¦§Û|á®ÌoŸtœ€}ž +L—ëÙ)IV+ˆæƒØî¡7g6sé²·dÛëMsÞò–ÓÞ”a7óy#"!ïÞ´½¹¡Ò/Í ++ùÞŸF ß?»s©dÓ{ƒ¡sÑ@¶ÛÔ¬ã5!Sÿ¤¢(’χò­T‰A!U@ÉcÇEE ++ F5E7>¡c'ñúŒjOõ½³ýD÷Y "ñ¤Aþ£<åòÝ;eõRxŸ‡:}ÈñÔ.±ëàÍKÞ¾]¾1õ\ 0XÜÜG&JZVþ @>ÆÁhû‘HbÂO*°`uD‘W¼ðSÈ ‹@B{2\iD"œ†¢ZItÙW£8C‡*dgÐí¾»ÏÜC}ïèLücÐð­ü(&|€àûÃE”\$Ó •½Ã"ø &Ààbòtx´× ùß0ƒÄ€(àˆf޶fÛ3Ã(ýÇOØËöâöÌÌ…2Oið`ä§³ÿçå«ÙÀÓLWnNüä'?ùÕ¯.^½ÈÀ';íê”&S,îë?$à€ZM)H°›«Õ¨ù×4‚²¼«u»5"ðY¿á`‘] ükÞ‚N@µŸ¸ßÒòÿ?lß,_,¤õ±Â®n¤ F¨¶¸°øéíÙ×B÷¾¿ðƒ/®]»b·H?˜56üv4M P ÒHZZWüÉ¥ýþ¥¹,]ñ'¯ùý~;š°±þ¯ééÝÆ×åùù…ëÏžxy>zåþ{(ö›!7y{l²N²Ž%zÖ)·¼x& +NT_áœ=Ïœ‘»Sè)þ×gÚ—»g n³ïr³7³OÂõñͬfÕ]¼ög¤zîßãÐñÄ7™€ƒüag®Oé?«u‡ä¦D Áº¶ÉïËý˜<;€Õ ÜbH ¸ã ûFDÿ+$(—ˆ¢XàGáµ_Ñà? +o9†žž†ÕC6ó|OÖjâß¿ßgÅe€Õý>Ù#'¿Îjzzü£q©:Å:uUk»:®v§ÚÊöû«–…²Œ@¤óp_€É¤?•r—xÏ=Ī¿¶ À ¨Ã+{‹€—“É¥õõñÎYÛÿòØ=|Ø ¶Füª`ÖûY5öE‘hCQ"•rþaÞÖí¼i6{Ë»²¶ý…»I–@ÞŠ“ó%ÛŸ/™Í€{È=d2nš)ÓNÙf&£_S–ÍÒ¢žF ¿ù„ÕñÆWþ²¤…5Ee…–ÕF©¦´,•+’â«LE+R£œV¬ÓšSÕ©š+$¯‡%I©0x‚æ' KýZ˜`Ø>¯ÿÜ”ŸÒùõœ¦h]nŒ•û…EÔkX¶?Š êßå!ïHãál€ÞEËCfÅÓõX€ìe¿d(ª„Ã]z EÊ#;….±b8 Ý®¤GQÈè!ˆ=#H 3@ÊÀà]mXý?9¡€ØÊ`ÀŠÿðÞ†žÄ†aí_Þã”xrˆÀ•×1ÈÉxå¬OŽx4 +ûG+‡{G  èè Uü2¦úOX€}9Àñ‘“ À—å™mŠ^|²83;;{yâ²ñÁÜWæ@)i¦§³“ñ¿úÕ/þð‡˜t\®©©ŠRüòõ©þ«JMJï¦ÓÕZmŸC€}RìÊ=& ߈ÞàEDkr­6ÿkƒêOu¿Ë÷žÿ8àmÌfl8~jDBéÂ=}?mK‘…üØÂƒ{ —¿ @æ‹«†~5½q9ž¶3Ñ]j÷ ìÄÀÆúÒUÉ^ZB ÿ;$ý¦ß62;Õ >£ —¿ÓÀëÏ®P 0<¸`KTxö¶¶FÙ€[×·PýÐ×ó Àïåˆj£ñ™sp%ƒýYôeB +‚„ê¦üu*ð››}kp4çn.uŽ +êNÞË&-Dõdø‰îDìod”Ï#š|îÆ]Áñð½ÏtÎü|yÓ¨° "F8‘­'ê–¸ÉîjUë$Ä÷t¤‰ÐpÀΧ»çÌ>Ô^Ê>·Éw2€³ç×BCP§˜à¾@(ÐhbjPwP|²Z‚¯è²ãDÌ€¬˜ 8QZÐ1-.&¼mÐ+bæÏcß©AÄЙ&ÆšÊj> TB`þ)û$D‚ŸŒOO»æ\’¦¹Úm×£V«=7þHm¶²ô…ö¯Þ·êÂáŸÕwW›ÝÂ^O±Ö¿4OÖyîyw*uÃ}eq¿¢Ô·6iðòeû?-%/=E `G´úψþçô€›‚Àíû|Š ‰?%vêkŸLG#¬X¯ÛQ%RŽêzÃÖͼw(—j6mÓ[6Œ\É4½¶×H—Õ˜R²õ %ï6Ù•¡xÊ(¥ A@Í­Gš Fd1nDgmÛoûX¯D Ý6uÕñîw$Vápc¢¢G¢¬lKŸî«Y²$©àLa@&zäÿVPÿÃJÃGF +™þñ`ö[Ù'i zæP<…Iûuá°Ü%3jêTðü4±' NžoüѧƒêÏ-O­"M<ƒëE€…b~;à °Í@®ß+ÔížÅ¥>-ª•WE²ÞŸ/ºJC G_E`ôÓ•QÿAPI¡Á aü‡•ÃSÑÿùn6¯¿ ?dü¬›¦(ߨ<ý†á r ÅA*p² xMsLŽà€7öå¬úƒý7¼. A€­ý±8âÍÿöñˆ @zÀcñ†sÖýÏ<)?¸YŒÌ>øéßO|0=þ÷sݽòô—v:póéøO²££¬úÿð/þêW¼è¸ +¢î @ïFäâýZMÚn¤wwkµÕþ^ÀÀ؆D|ÖoÈ5m°õ—ÏÌ€äA»‡¯úlãòÆlærÀ°Ccväjz×Ç:öth·±0;¶°øþ‚½ð³{ï/,dîe }$íËϦ z7ˆñ?NQLJÉÿXZúð’ÿ;ÉD ;Md #ïKûÒc×gä; ÷·Oh@ ò¸ ŠýÏÙ‡¬÷ÿìñ÷0íÇH¾@ lÑøÿ`‹ìõ1bÌ|N.@¿Ç“ç$Ûar€Ó*zP‹¬û84à[ñÕàæ¹Ó¬îA– írN௜T×qfå´' €.çÄñ9]ý™%ß9ÍʳgÃΠO 01 ™ §·êúØu3aõ1àlÃàÀ§p¸ƒÒ^¤S@hÿÏÈýgÑ@ü¾¸!Åþfm€ãP'ašökÜÛB‹NXåCP¨ƒ€ hþeZÿÅÜï³…·€íÇ8ˆŸ²ºoaˆ+q2€çõ¿¬j4ø×´VKcH—Õ©¹é)UÅ[˜uþíñ)µ37>=ùfÀ-Òàw6-ŽRÎO«åjUäÜ&¼ó‡††Üó$\oó)ÁKêòù€¯,¥–’“Üý—´³VÿŒ°yÎ"€Æ>…;‰” ö”¢‘J4²nû#¬¾6t;Šþßë5sfÀxa¾°×#ù”7—²F<]1X«o7Ñ’i›C&¼>çM¯û†Rq{Ýô¯ëæüPžÁ ì¼þ8Mí_éoÉøˆ^æ1+ž¬q×+Qýaž:û†.Adv€ÆnVC­TˆôVAþ «‡>©‘ôò*öj˜ˆJO‹‘¤ªâ æÎ€²ÊõöùÌ>nø+€Hÿ#~Qr@O°vĪgpsÇAÆRÒ?¸2¸òJ’eì-²D¿D8Y°(K‘ +ÞyŠò==özȾ+sQ‡WUˆSï 0É_9Dß €põV0ºgAÒ›üO€À$õßëCJ(88ø#C•ÿˆëȨ,Ä€eŽ@ÀëÌÑñðv㘲fÊ4Xް<˜õýý£éÿkznüîÜŸüâOž®ÛöÄÇw2ù¿ú?ü!¿èÜíÌ=ºüÓüJ÷õëÇàù‚Ñ¿ÊÊ¿Ä*;MÀê> ½zö5 ‹Ksöúç €¦— Z²æX Š€ÌÀÏÿ£LØé§Ÿ†Æåx&3 +i=}ÿ~(­dB# ‹™—¯}ñý……÷3 †Á:#ŸN›FA­ »öÊžû ÖýWŒ¡?K^ZgíÎöû/]2ý& ›•ÿûÑ|:ʾÉìoßÜ>ù9ý@€íïãÇÀƒ5"²BÿìÍÿáp@d ¸EÕŸ8€k;×—9€ßË0Áygè¥Qýƒ¢C¥•ÛÜ‚Wwæü›ƒ|÷KŒø;¾ `¯^ü‰Nb½{Þd?áÿ“#.•Ï‚ðæ :êýÄùó‚Ë%h€‡ÞR†®kÕc%\7ofûZÖ%:n‡ ', +p8–ÂÙa€˜8Í~ý  \[Ï&‚ƒ€Á, êYgŒQ6ÀuíL!àLسX?ËÈ!˜8÷ݳ MtÿìÖ…à@îÀŸ‹B¢ð@÷ôPòEp„Fˆ'†ØÜ æ”·þUÈàÔjåÏ@û_¯>rõåSµªöµéöT«ÓªVÕ©v«ÕÉb €úûr´ŽUÀfk3Hs€V¶5X'GžKnw2ç~oÞdu€7µ>w¸Øÿ0ùa²ÝÚth”ÀíÏSÿÎ!Gú»éÃ2’bˆAèoާ*Ñ(²y¼¬—”èbDßðšmoÎý¢Ñh˜ˆ +´Ý¹¨ÒPC7즙ÊýÒ6×í”Û (‘Ò»IQÐ1´Ç÷ĸ¿è´ö|îO ö[åÛþ.-øUq,/è∠& Mº @¯G#¥†{V%| +ZÁ'R˜\Tò’ÂBVì-b†Eä:(3èðœn ÿ0qZä.ÀÝâ—ïªþs ëàT>Œýèp›}x4üw\°ûÖú{1"ý£Ðb÷ÏûþâI1v²ÇpA jA$ñ‡¬Ó'- ùo7Ž˜ÿ7¶€ˆàí'¬óoˆ”@ŽË3vš©üôL<šžn·ïŽß½{÷OŸÞ´×ïÞýÉ_üÅ?þŠUÿ‹4x9ÙyÙŸð ßXÁ& ÷üã’ï>‰5 »éôÆX5Þþ³ÊŽóñµ}¡ôXoÎd­V 9À€ÿ0 ¤tûÿ0à²a,f…ÆB•1c7ý`·°{Ù¨…â·C¡Ÿ…2÷n\»·Y¸Çj¸‘ÖgÓéP¾PЂ5”ÿBÚ·‘¶¯-E'––>\Zÿ³$éK˜°;4ì´ÑHW¾Î +på l®àú³­Çß}üÙ­ƒêöŸ=; ’?%ïÀüŸÒ¨æ£û‡?À7Ü à“ÃÃßÏ\g4§áíth;!*yÁú`ñ?º™ulÞ6.uq˜Ðá=Û霹îœu³A'„O;CTI-W 3zhþ]ÄHˆŒ€ÍJY ÂFßÅVAx­ZÁî {9{5U;ï=\8ïíãÐüÏQü‚NXh×ãàzÖ rL4ž@¤@ñž(ƒuQíñm5Úîb @jQþ9¸ávÁôDbò퀕«JDX¼bÖhÓKG€~SDýGB«B§UI +kª$UU×Ü£j¶Õªjšêj»:¬×V[b£ÓÁo´ÜìtÚjµÕ’©’=g³:šÊ¹çKë©ÒÐz‡ùr€“É—>œE·ñlM´¹)\€.¾IþÌ8±ÔêS^0Àè”Ò0 VÜïøl#¢ÀlŸ¡ý¡oCzÝÞh3e2p–”ˆa›>#`»JlÛ~ÏmŠw~Þm›¥ ¨û›nö°}•´n¦ôÈ„±ˆ¼ª4|¬ˆKªjÁ'·‚^_’4RíEL£‡ é_>Bš5UaÉW£¨>U“•Še ?+©åJ…Á Vü£ b‚ “Ïþ!…ÆêÖ¡D>;äÖÔ¥Í>Ê{ßCn€èàÃÄäë’°'ÄØa‹Býá3—‡ãÍjxOxÔ‹õ"À̯œŸiį|¢v)ðEv<…zð2 +“pQER}w°{0Dˆ@\…p— ðön(ÿþšLWh}Æ-<«õÃÃ?bÅ–€ö‰ CH1€˜ĈpBa@"ijö~D±€{ð`8Ö`¿# êþW |µ}ÔÀàLx£óeÖüû"|‹|ÿ÷£éÎd{rròîÝ?ùÅŸüä¬üÿã \ü!– ´§§ÿÞ¸¬Çc'€¯ÿ#ö÷Y«î¦Åi7Z¨Õ¸* P¨aɯ!oƒa [Ö¹!€¥ñ¡h'XŽзWð»€ÙüeÛw›Àˆ?:›ŸJëS»÷PmÖŒ +põýŸ][øÁµO¿ÈúìîƒÐîTÞ_Às @a7­OØÉïl¤ðŸ“K?[ºòä•ä5Óï7'Bë†ÏPÒÑYš| «þ ŸS‰om=Û¹ðsˆý©ÔCð·Fî?k×oPÝ?àæ$ €ò¿L.@±ßÓXxôëÍ™~kçôí‚Ô†i~õ„›ÙÍßðwq&œÑUwæõQ!þK­½è‘ÎÒ’OâlØFËçšÀs¦¹oœ8™"qŸd7?fï-Í•8¯4 åð¬°g‘Bѱg5=(–üÁú Âó) PüÏÔ¹NÀ‰r&ìI`RÃ`p•ª|=¡eµAì `:Ê@A2 ’;pÁ%,4o`áÄ®yËïŽõi¾—w…\å¢"ýR¨_&€u°´*kûÙYãAXeØ ÓÒN5þv‚­ŽäÁ³€ú?±ƒÝdÛ59÷”aÜ’ýA³äN•JóX %Ç;¹ ˜páÿäÉ¥¥¹ÚýÎÅ7þTœ ÀæÀHìø_‹Å^…¸Dªªøì‰J$ÃÚ{Û(GÔQòyëá)m°Êì.ÿs”Õ½äÊ5mw3¯7óCî¡!·­«¡¡y;åþDQ+‘rÒΙ U¤Å¸¡7S%}U#¿…?<~+5 ØGdá÷ÀTŸÒiÀ[(°¢û¢•JM%¹ {( 2H _¥A“˜è„÷éù?Û±†ÉXÈ4… ì!g?2?_†ó/˜wV—þ‚Ø÷ÿ‘÷þ¡mÝi¾°±oÀ®y×¥;‡Œ¥%“hÎÝZp›Aƒ„¬ˆ#KPEC«"TW`Éê•lÁqWˆh±Å‹çõ,•yx½q!…‹–kL!YÈü7#Ä:ò?Áeâë’¾wVùã}>Ï÷Ù™éng¶™?.õOY¿-Ëz>Ïó|~œš»~'wõ|0¢œ…´˜TÁGf4 ƒ˜9LNJây½}L$E”MgÈpyËt¿–U`——cß$ ‚ˆ—Õ¢<ˆˆ$àrµÜ/¿’ Àóo¾yÂ1@«]öôíPËo?¼ü`Õþ9­Š)À!'üÂp῜ p´ZfIÀ“2;Ïãt‰Ëb €7¡%´wínü½*tMû ÿóN€VÁÔ@èU½ ïêò§ËŸº}z!}ýøã¦÷¿úèã~çgï<ãùÿ8!€ã·žõž˜Ù›—¯êÑDsîèIÿ¹µø‹“Ö%jÿé€t€Ê¿àT6””rþ¹ÄUž5‚Nåœ5pS† , àQŠ€? @z÷³æ%Æ®Å!Ø÷—vÔi—š[ÉE™ó,üraaáFî§W4Uͪ¡ƒ’¢6€_³¥lVÛH¯ûcÌXúyð”ç*&)-tkª&i1Uû÷'P<"€‡÷·8à±0dàA€{ÔþAŸ±óxû'..ôûÿ›¼8üž€GùMŒ„ žÉe·”ù%Á~£²5Š÷Q1ÍÝäóàLÀ?F¹¯î%ó=Ó`çe×?ª˜%S`JåÏÀ䙟¿`”ÎÀXü%ºËƒ{üP០Øní$JØ4û±ÔyKà7ŒþÚûþŠ»Ó8P$~áüðJ†›†à å‡VÆ– À9{äù™ëÿFà\ôù`€XBðqÀ–ñ%¡PXŒ( ’ÿÑKé骷É%»âS3¹Åy*ܽý0L€N‘ï;®µÎôµ3쟰ù&fgg&dk+ƒHk¯×jaÞOgmqe´¼:œ€Ú¶‰‰ùùµTem> ®¥©à.Œ¼çH3àX< Æ-%à|*µ4ß;'úûK@±;:'Ä—Þæ¦y“á:¯êõš+K½U*PwŸ™ÞתrÌUÍTcЮ»$u1óÛâ]ÃUݨ§‹ÓŽÊ~z£Pt,:Óªê­:þ´cÄírùü~MÝ• Žî5d}ß±¸Kµ[ àõ¾ Öþ˜ØÇ–KÞˆ®z]1]o¦‹jzZŠÀÀ¸«Þ-RIE(€ €v *P@—âäàˆÿ+wˆ`?Œ—Ür˜÷¨ìeá-Œ×f8Oâ¤Gg¶?à +8E0 Û›¯å}±*À€Çù}KÀu“"Å0ܧæå<‚Õ:üòYÂÀd_qº¦9"8"yTÞXè~%YŠp^!ˆŠÂ£˜9 «§¯NÈõÿù!3;¬\Ý6Ãí#Š?Ñ„€ŽL0à›CV¬Št@°žÄã—¡äO„ÀØÎl@{³‹X`ª÷ñ&ÆÿôIe¿kðuû«*&º‹ºÝ{ÿãîáI ,l>þ«™Ÿ½ó `ôÙ[ǽwL¸¯È»+…±¹•£ÕçÏŸŸüÛ_šHÏïºÁ#÷ÆAöà@*q­ç¡~xÝ€1 ¸jèó1P„ÔOlØH€‹™é-æ üï[ÿÿ|€¦E? ]ñ‡Bc¹ƒèX2–Ý)•Ô¤çc¹ÝŸÞÝøåsoB îF³r([Úm`¿R:8È–Üšßs]›]ºIy¦–ÞXú‰'8åI{‚~-¨ÉZq]ÍÊ}¨ÿ¸hFap›)pF½ßB©¿÷øöÃûÂüÿÎMêõ©ôÿâ6Ô÷°ð–HA@O¾_à×-oѾ +Cz¬%1ïõò=ªÿ=v1·þ›< +Ø´ @>¿)<DÅk0E^aѼÉ2@{Ž9ìïHZ[QÄKC@€ ÀÎy`ÉdÓÕë¬î·ÕÓõäG6[ž@Ïröµ2†ßj䯜%ýž±ýóf¦Ÿyº@>~£@ÀÜ4Îòóç®\ ë¦wÝEl;ø’=k€_ÞB6býϺ<àÉ€ü‡ÍT‘Àœ ¾Fاœ:oF2(TÑpù› ”ÓþÀë= »Z³{~[m0Ûö†O•V»å­µzµüh‹ªy}PßDfo TÎ^£Ñê·{¶öÄ„/åɃ#ïeÜVF~ZIo6 5¾gFûõÚkS™/{-³û‡àœÀèÐöïƒ:¸aØIÁ‹ eóû‚ªìR§÷¯=Á ¶¬‰»éýLÆßtéEìê%í`±jHz1]YKÓá¢LÇ: Çë©ýÌbBÖµµŒL ¾äß—©"Æt9¡Ét¬ú©Ê‹VöS­tz©Œïò‘A¹©«ÕÝh°(ÿOp@—¥e &5ÿ„Ad87¦‘€‹u^ï‘Óˉ€(ÿkü ¬Ñ™× Oµv¤íˆá=NNR¸¬OZ¾Àðí‚È¡¦ð¤/šÿ¾ðàößI8#bPõ&TaDP½ ›GN!ý¿†0cMB–`D‚ä 6]²ËŸba@Íù÷àÀi² ¹ÃPøJê?(ã¨ôH< À~ˆÃP±ÇöÏ8ð°Üáó™™VˆÚÿÖA]:Ó‹xG°ýÿÿÜ›sXPÏßìv›ö¦I „Mªÿ‡UUURÝŸº÷Üíß!ɺwLࣙž ðÎññ°þ?{ëÙø;ã3Ï>Þó-ïjzA/TW +…Ã2ïþ²\€IÐK1÷ÎF6»“¥ò€ð˜¤?~Së%”øä—Vœ÷'Nêï°/Neàüá¤å0 S¯e L•’ÙÐAìƒÐX0ºðf(÷›_æ>[˜ÚPUY%½’¦Ç¹Tš=ÈÒ‡¦i¹ëi#ó£Ÿ\My.¤–Þð¤¦rkOZó¤74MÚÝ‹röß[<‡ÿÏmÁ¼yûÞk°dÀ‡„¨ÕÿÅ– röÆÿ·Mæß=>ŒaÀv9‡«ßóŸRxãpEΛ‚4!ÈS†Ò÷¤¨þPqÝìZê+ÒÅ +s9çëÆ‡-0 °wÖ~Ÿ%ÿ{t6ïOZJ›ˆý³ÖaÿGµ3sÌù3ó‚» +À­|ý¤ž¼…@8iºŸEõ é|I í »ÿ|`˜`Þ»ÆKFÅ+#X4þÀ0ÒÐÌþm4Î.–fª‹QŠ9È×éÞü¹ùÿY–ð<Þ{–r p~ ðýñNúTþ!0eŒúNåh€J>½MžÒ«ÃG„Oï„,àÙYß¼¯æ­ùfg[ûëµmí½õFa4Ú³ìxð3â€Û3mÛ—ˆvŒŒTRÁE.jÑ?~?€ñWy6{mÿÕÔ|Ëtû¹ôóàÌ;âŒÐË#þʃ€F£·§©Á}wsߟ5µ`6>’ZTƒ™ÅL5V¹\O7¨ ëéÅ XúPkïOûÔçSÙMŒׂÁ¢ +f2Etÿ±é)µé®Èü1¼ŠÒ,ìJ<¥—¸‘§’­ËF a¿n·šÇÐQùð®KtórÌ%U³œ¨è… kY‚NPÕ՘Ş¿GÞˆ©þGA÷š‘@|¤“¼Å ræ@ø³ï_vŠ«C|°³+ôèßÃVP+Xó‡r_ž焸†À”arÆÆ“Þe£æŠˆ¬B¶@ntA„$ÝE5ÞÐéA‹ˆÈ`˜Jâ]ü Ñ3 Dþä7Ï_X}²ú¤ƒÂ~ïØ?ïò¨Ÿÿ‡OŠ@\h>ïvì« ÷=é²qg"€ƒèñϱ@è¬2 PøRÿߤ.ÿ0€½Ûòÿ¦½º½Ç€Þ¶_` °½M§ÎÙçš_ÝMÜMdÝ~·ïÚÚ„io}|Ìd€cØY1À[ÇÏè}fb¿¬ë‰êJóRuL‹¯šà/789q–œR)›½%X±’Dïè3ïr(üg¸Ï¶µ¨ôGVpÀÐA‚ŽàSØBH¾Ã?¤ úc×üšçҥ܆<Æ ” e×s—ÆBÅŸx®}òË„n,hê®J'”JÅt I€%œ—J{:u!(M]_J-½}=õæ’ÇSñ¬ANËšv k±œÝpg¿õæŸÜ¿y{ë!(7·ß»÷‹Ûp‚áÏCN¾wïÎcKÿ·uóöÍ›X +°pë&WÿÛ÷Pþï0˜ûÞpJÂ/`ºÖrÇÊ¥J±Ø$/ó{¬è롪'¹yKø²2ÐÚ ‹¬ ãaó0ege0o…ääÿ`0dß•ò– }|‰'@h› œ„“·x`ºýÔó"¤Çœ­úóçGú,tb«:+çÃAsŽÐXk€Æ™7—|%oRØ:w!_Ï+IÆù†ð9ÈóÐÂ2fDcþBBÜÀ3Òp(RJþ‡¯¦‘Èj_~žñž©ÅQÿEÚ÷ílk’$-ûlRÍ7?[›mÏûæ'fZµZ«·7ƒ®'O(ÀœÊ·˜8Úha#Ú›˜±]YÚ÷P5MMƒo†ðû×æÛ£È :>@3ê¯Õó­}9ÑÃÿññ3 ùÜ8ƒ£Í†YúÍçKÃÌú‘Æ ¾Ùr»›Zj_–CÂÖTÿG*¿Ö´5µš^¬¨zzÙÙ½M­8­ºæŠ¨ÅJ:XYLéèWUÇß:è_‘Z9˜ÃÊ¿ª9¯ë)Jµ$S‘G˜o¢¨rå4嘤§©¸Ë˪*ÉǯƒA¹î?Ê¥«ºŒZLiê1}ùKƒ&h€MŽ@›1FXù'1*Âa*`„;~S.@5—“yy0úë{9Ñö@'"Z>ÀÎ2vö+P„µõE¬0t'"Ð)–'ˆ`P ¼`ó…w—#ý“I‰eˆB%N× +­´þOAQ°¤Z|ñª&OúR$":ÏØ‚K€—ÏûÏ_Au =ìW¹óG@ç]”nûeªâ86@Ï;²íÿ!Ûã½CÆð`u˜¼ú„@@ü2RAÿ§Ïwí]¸ÿ±%pÃÿxu›§ýÍín¼Ùä Á¡P +> wÕjáî´¬ÙÜmŸo®ŽGg „=6‘ìæü3'ÜWf£Õ¹æÊvBŸ›+ÌEž?ÿK“³T¸³î[ÙÒÁ‚iK0v)¦ûpŃ2Ok]4ûbIp–'1I-éà<PÂ?0€ €g,”ÛÐC T$KÙbv=ôaˆŽúqðÚ›¿ù$÷ã…Ü‚¶A š.•äôuÈÐÌféÅȳ”2<×—¦Ržë©7–Rž)X~šö0(!Uvol|«xû |€n@¿‡ ÀmÖÞ$4pûµÛ·ß¸xóæý-:ýÎí_lÝ»sgëÁˆq̨Ì(àïåhªLûaoœ·Tú ÑŸ³ ÿKo„Ë¿w¾û·¤€CÐÅ qÖL³ÃM ð 8ǹgãÜ¡7~Àâй?"8:wÈ䫪×tžú­dýdN@Ij·-ï!QôÍHÞ—FÿJàŒûo)ç)zÊù€9$È[kúy“7+œ`ÈÀG’PG=ÃD‚Añ0&M Î'Œ¬_cG—B Ƀ²&a¯¯1¯T]æŒ@ Q}Ëò{—ôÔp …ÛO™óErÛø!†5ìdö{øbùßÇß±ʪ,¨WÊ<,`|ç4ü>ú‡¯í]Ï4¿ÉIêÚO©x%äû +"!5‚ +N û .IxÒ/!K»š«üÔ`±Î"aH€Û;9ù=¶LTýáøj ñsQ‡zÿËq^õSo§¶x€Jý?`ú¥þ!ãMÀ!ëÿ9³€ ãÌä Â!®.ŽÂÖNX5q¸Ù­â€Þ­ +6Àœìp˜{ñUuEUÝšÛíKNØÚH¹4]®p0V쳆S€:ži¿-G Tû›+s+XÌâ«Ï¿ù /œZi}'+8€Riý ÄëüðAéH)Iþ¬= €©P†„À˪6†ì#ðè®äB~ÿµ±¬5*êÔÛkêzbáR(Z˜º¶ðÓ]à êVw5@¶è t@gΪ~-µôfvþúÒ™·¯/¥Þ¼êÉL…€Òž MÍÆ®HÓ»ê†[þÖ›ïÜxg‹¯Á+ÿ‡©µŠ,î<ÜâÆÿ6ÿA¼¹…Q67á°r‘]€úßsð.8T”,~ÒtÅ7 ây Lôzù33÷s|¯Í—gxé79ó¸t/™· ÷›³éüpR/Xÿ¦È¸ì7-Dûo¦æî숃BºïßdòÖG ˜Ûn%“E,ÿ•¼¥oTg ü¹Û œiÌ\?Ó ðÜž pF°ä KzZêAsõàÄF¾.xÉ<¯ LTLµ`2oÚ°ßnÇüÅób$Qâ÷€R*|(ÛLÓøI8ÿXÀ{A Úlí6óóm©æóOx½>_›]€k5ø@­} cß +skÓ\ä¡ ·ù%ÇRª#àµPf)µæzöçó˜`NÆÇéàDê'[Ì€Q‹°ùÀr2­Y2@ë¥BŠä§[™Ncz¥’Ö¦=‹•E-XÙO§ƒ#rV-c®˜¬‹Ô­ºÔfбæÖ3ÁÌbÖ…¤@‡cZj®ÓØå#ñc{©VƒwßS.þMƒN‰ªš¬Â Ð|ÚÜÏi¡"ê’4cÙ%«nYM%z‹©ª1=§H†\£zUÑWP‘§‡E}YØç ý{¸Û"Â\‡( .\„×°0‚Q½}&Ñó›‚}&è  €}-‹…Û2€ +?HÔŠò¥NL×`ú½éGþú;ü^H¡û´Ž=ur¨<ئ IÁ$rèàÐï?õ€ª7÷v¶ðÛî`õ/vîå¡<ìÄŸð8Ÿúú‡°(ìtH'³C°€Tþ;e¾ÆÕËîïÙR¸‹ÒÇ”c€íf•9€ÛMû ]6 "€ Ø·ïVËn·ßænÛz33¶cîþ{Ç&‹Õz±³ À³g3¿sÿ£¾«'ôm}e{E'0§7› >ÿKRKé@iv‡J&ÐήœƒðAv]9§5 ¡xX/x Pbà´Ñ“!!eý‡œøì€Ü¥€¢Ì+m£¤~H„®å*×>yó¿æÞüä³\(«ÊZ6T*Å4M WVKk¹¥ ~ÿ[J-ù¯O½!¼€×Û0€Ûÿ¼©`g\sBN?•xÐó=¶}Ä:@ªÿyxYŒ¼sܾüKRÀ†É=<ï €rŽË7Lj˜uù{Fègt“4­€Ì¥„¨ý0*> æ1€Ò0õ•–áð(!`¨€À(€…0#˜ïxE…`Dþ>»ÑF”D˜ƒØSc9ðBö¾¼çkïÍz½³kó¾½½6½ÚQu¯Á.ˆþP£½–pâÇ`sÓ jõàœJeRLj£ܧö:å_›_[ëåÑËonš`OÌø'®¦&z&$èñ Ç/YÿðÓ¦grG<ûg/À°˜ˆLÉðh@Yz*•LÊ+.÷ƒiuwºâGŠÒbB‚_uîÓ•»®fÄP§ßs¤#ÅÅ‘ÅôbH]s©‹A·d¨žô®®¥—½\±«0ÄiF‘ÞGGð×´‚ªV5Ãw… Á2uú1UCEU‚É¿3bÚ´*6€`L-f¯«Æ¿¦.×À ¨ª•;|¯Xð|_Ðÿ ,#"‘Õˆ) @E ³&p lYúöÙï‡G¼í÷:!¾>mÿú1‡?—áb™»ppÙ9É8A8ö¹j‡ ä¯Ä¶?@N¯Œ‘E9ìÅL€©`÷y¥Ðô®Ôñ +bDÐ8耮õ÷ýò©³ã]u®¾ +Àçßü«"ê·l‡Ûïöê6ëý:«ï¢ï©ß~ù°ó9ÓÿÑã£÷ǨÔ`aÄjÀCú&`A\Hxxï2'üö#;ªÆ›öjsU »8‘Ý0 +`Þ`³zw7+ï¹}>ŸÍ† fއ<ñ‚6>j!€ã‰åOc+ú\óÒ¶Þœ›Kè‰ê¥*áÁ8Ö9*ÀdríV ´ƒ>}@ +È#€pí\øŸeíkæE)¼ñ/  2iz‰ã˜Gðš¸7¢¡Ü˜ßŸ#.…¨¨—v²ª&© ‰€…ÜþîFî77ÆÔØ5z”äŠi„°¸àw_ÿùÔÒü…¥¥¥«ž)öi9mcwÃPc‰¢¬þ;*ûý;ïÀøÿáÓ€›‹ €Ûf*Ðã›ðüeZ ª?67™xK“`_ Ü|³b>/lñ“g‹sÑž‹™;›ú×Oãyáò>~ÎÞå%/@sÈ ¬ÐÛ4k~Ò§›~3šž¹a/™$€3ÝÿÎ÷ßf±Î€êƒp~3À:À“€ ž03ÊŸ)üòç¦ àèYÉ=á@>of±€‰òf(ð¦eT¤˜„‚€˜ão懥\dY a’ó3§!ƃsIBÁ<›0αRxM‚ÿÍ$}%Øù¿Õ8³·Ì®’_ÀÎfÀä$ƞϷ'I³³­ÙÚ×¾ù/çmµYßÄl­73±§@Û¿FÛÿF‹«¹™Ð ½æ;í÷¤*™ 'XqdÖÚ-ûýµàÐ`Ä×À¯ýñZ›'£ÇÜGŠÀ€Í3ϨÍÖpHÄ5@½ƒ¦—4€Í@ÍÄ[&ØŒRÝÏL«Mi·XÐ÷‹.czÙÕÔüêZ³XÜÐe—z·øÞ{šk佊ª:‚ŵªì–”ZL‡§ÆþèÙuLŒDŽ ú¾ž †Ôh1š¦ú¯€ ¿nP£¥XØ ›LGuêí±1ÐÓ!7DŠiyªá]ç½>ðGŒåýºz—nE˜QE­¹Àð†#<0Ø~×\ú{ÃÂß/ÂQB<•‡\#â{®ìhå]Ê#LýÑà›¢A¯ˆúcaæôBôZAÞô…™+ ~Áô3½ å£+X– ¹j §Àt:W)IÍPQ3‚Êý)ò1Îðö]RäDBö˜ǤóŠ\€˜ˆµ¾ðë£ÙŽì¿.µü‡p5?´ÿÏ.C p¹aÀñÏãöâq? 9tr‡O±?é®>˜ÐŽ·î »ýð…}»Ûì6aýï6···›M¸a4À¡ T»ªôélÔ¶—üG›¯g;椫QlþÏ78ãæàŸÞšp*ô=QëÎé û¥æXu%®WíåçÏŸÿ§ ÀŸt‰“ÁoÿýËÒJëÆ×pX1}Ãa¦Û™ ¯—þµt€†ÿŒ' †t-tôl¸±à Àµ\Zmd!ðWÕƒXn,QÌårS Ÿ,,L}r#‘ËÊòn,´sPÊj´jP`dUÈ“ùÑšvázêBúÂÒKS©à”g ^€ûšœÕŒ¢QÉš¶û­7ÿä?,ýï<ܺwïµ×~qû¾ø ?Py¿xÛ-(ÿàý+Œ8à1ã{ذ Àž_€D)b oÌM8`uæ@%^ 𞎡ÿ+ vœa€ùâ¾y^ hêó0"À´øº)2²êÎ"÷¬–Ü"à k£°ýOžÛ™[,6Ûo0HB | ;þYõWá¤^Ó¤'ß0™·¬˜ij¹þ\€VÌ]HàlúŸ?—*ôÊÈŸÖ„€#° %ÀJ äò/Vý<ï°  / Pä9!Ù·.ÁÓ§â¬n€‹šllúÞÈ ¯ý™ììà(ØúcÀzÀ~_=À¤ò² +ÄàK +˜û……'ÄdØehrHèa”p‚À#vŠàʺKn6Ò¥ä(;IEúNðÙÐ+<€ùë+Ùð Ã*¿øçvTkfþoÇ/Ç?ßþܾÚéP¹·wâïÒ!»ÐýÅá @íýÑe“ ŒD Ô¸a _Åô`›P…ýòvüÁ!uø(ñMÓ P§²ßÜ9àE¼ +®@l€x3N—‰Ï5w×w“†m¯œ±Í` +0 +À[ããæÀzþš,€ß¹£z4Z- +‰Kö9‚+…•¹D³Ðl®~#6™1ÀÉà£_Ñ ¸û¥Rv‡ú÷Aݘ¬O²ð—y}"A`NsëÏŒÀuÁýgLÄ|àçúÿç9»¡…r¡´ÿÚ‡—r¡Xâš*Vr6–Ë£¹\paêïn,Üøñ'ÑUûl6J!æ'˜¤daœÕÖ‚S?Zó-\½àùù…Ÿø/O:ÀP:›-JÑØnHÕ´tèÛþ¾¸ÿpë!Šür^3MãŒù!„AÀc‚ [¿¸Í¬€›<¸I‡cðøŽp¼È€ïýð±øŒçIË6×2Èãp-ÂúÎŽ»B‚ÇÃáØæ0êíÌps¨è¢ÜGg@ïoC ÔëÊËûþF~èÑ“o(/Eþœ¿OV*°÷ÉçÏ CI ˜e$Ï.8ÜpR`eœ¾àŽÐç €€™ ó•$Ü‹Ë1oÚ +cÉÌ.qTп=ú:5 ¾ÿƒZm0ès'@ÇP…«=•¼×ÞÕþ=¾Ìζ}35/µò³ÊÀûuëk( D¿.Rø‘Ð[{¯ÕžŸ÷¤Rû™T*ueÞ“Éç…_0Šûæís´Š>Ðá ³[½ó™À.´FíŸS€êì<„'£„²aÏr§<‹±ôbðClÿªë¨é¦[QÓòݪžÍ8²ÔŠ»ÖtW3Sœv82šá’6šªŒu¼š&ñ«ñ¤eYׯ¤ jA­ºÓW+…ªò$–ÑÔWQ —eYVC‚éª.O‡ŠUÈz yëp $ž%†¤(•„ôBQÖqC°òB,€[ƒ +à)§ƒÈF;ðòGņ /Â6DSOÍ·“œ— q>æú¡ø2M¥}"P¸ì¿2·û\ï9€%þØëóõ{‘-À’ï[ùxeÉéSBÔô°È° >EwyãoE"““Þ Ìwö4ìâ; ™i¹ï<5I&'¯fpˆÁ=öôåݸýryûÐ~™¥‡]l` t؉w ï‡Â#+ÌŽ¬Ï;ÃKƒƒ8Hhu5~™}€80ïv›]{“‡ÿ/æìÕnóˆÉ/ºtL÷èÐ~´}ØŒÏ!>ÀÕŒ¹äÒ§I_ÒfB€gãoÁïl8ædžDÏž½33qMŽÆj‚ÀXa»º]˜°Ù\ÑâÏÿ¢iÁá[ÿQ²TRÌ1@úÀyÎðWPû±ÀW1ôçv º ²ðÀÎz©ônõSíRîš? @ÈH€ˆÀF6véÃh"tãZeá7 S ¿‰Že³»zVÕ h%zì`˜Íº‹Ïþ…”{éúþ…µ¥¥7–®¦R怀*©ªz#õÛþæ¨ØƒçG5þök÷^»÷7¡ú{xûö/ÀÄlF[w0ímëÞ–Ðþ™0€‡f8€«ßðˆ…þÉ€‘09ôVmT"⎫ÉF€J2oöLJ²-+h ÀR.þš äùMÓ=yC8èŸÉñÌ6emz9w 7hq†®À%1"ˆ 9ø%õ“ð-憞þæµ'M—ã|=P7…~ÏÒX%?ð’j ¹|¡åË[i>‚>Ñ20dhXâÀº9hP†‹Ž’Pÿ)BñùB€9GÉ”I”İþ®¿`¿| +ÿ¿Ž×%zPgdàt¼ +,8€^Øåå¨{{mßÄÄü @Û×Rj­öŒm¯õu­¶ç›éñÚ³%–ñܾÃ* 7áIUF¯W2ÇZ0“q8Ö|ÜÖÏôZàÅšcŸÊ'˜O•F.ù„ {”O¨›O¡õâÁLeqM.f*¯W‚•J°éJdÒ•L:½8’Q÷ +Õ¢ú¯.î;Óš;Šðå3ªÔt_Q±õg`Èz”:z5íñåB0´+wåHý:aƒ¦LÞÅ`e‘n)]ÔÖ¦×HzPE‡ß„;0j|³ŠIRMXÄtµ¨ÇõÃ2¾Œÿ„û/«]†Î†Àœ àeËfÖèÃW ƒ]v1ßÏëJ¿0"… 2ðºÌ‰× †Û˜&ìŒøÓã§/ø]“'a>ŒäßIúµ#ýÓâ®· >@ß%D„)$U’vµõû®§Oqßú'§Å(†§ˆœ<›‚¾"ÀWžSý?Äô$¿Ïí—»@ÔúwâvŽf²ßa·Ã&l|q¿—…óÿaŸÔô—™ÈŸì%|ȱ@¸.´ÿVßí¼¸üÀþŒS  Ã°IU¿[%@±Å3ÞíЙ^ð, yHç:zàzš—|³þ‚æ3½ ü1ä„Ðp @Ÿo¿s<ñ±ÿmϧ‰éé»cwê¥}»°]¨ŽUWš+/âGÍçßüÛ_ü¯Æ­/?ºuë yÝ vÖJ}±`'þ˜Žÿìó+ØCh€!Àp;°~€-À¨²¦]Ë…®ø¯}º1+Œez@ßÏ&r íÊBhaáÍ……ʽÒbj,+§×Öµžl€ …R7®¤F®N]OA Èi@0Pc!‰JHjßšܹˆ €(ùLxx+*ñ¯Ý»Ç@("ðñmTÿ{¯ÝÙºw‡™L@ÿ'€¡|@™ô%+‡Ö$·Gâæ4ÞÆûx*Ƚ^’u²CÙöù¶ `~(l©Û°ò„èŠK½Þ°:òa'^2wãÓ 8? 0ýrÏÞøÞaL­~£q¶Ý*Fiˆ @³‹OÖ:pÐ-Ö…7te8÷oœ3÷ÍŸsX¨L³€—¼…ó¦e9Q #~;å0):“ˆ¯øMÅåÝf³®„˜p7$M—¾›H Ò‰×h§pfʹwÀõím08E”­·æE0œÛGuÎö>À<ÕýöL»V£oí¶¤´Ú¾žÅÓkq;Î\h[»m›XƒýÿÕÿ‘_U¯d*©H¤{L÷zËõS‘ tü> –©=3æ„Fx³wÌœF}TŒ‰‚D0TàÌ­y¿ªé¡LZu8.N«ÓŽ`Ð1âÈ8‚‹##ï½G ÿ¯‚Ž÷Fûkÿúô¢£¨®÷ƒ²D¿jH®ú3éhq—Ê8S÷´¨*K5íÃ(~Šø² >1ú¢kÕ¦®Ó÷€ƒ!UK‹…¬Ô”‹H R =&±ÚO&Ø`ÚüÀ  (ïŠ7¢à¡ç^ÝŒöºžê L‡`6ðŠ–="<‚ ¸ÂPà«p³Mÿ!}ÓKrÁp™7þ–U0'A +À©}“N`,€“°ÁÖ!bDÊ^]Óóú“&@mÿ•¦3b„4)t §§ÞÓÉI)ªãîð€@$R>í³à{¿Ô<ùæ ôÿ«lößÁÖŸt:dz­véˆËTÊ;—Áúwõ°Ã~€`®®>¡ªþ9BG«G\ùWyp„½€0ÄEW/ÇíÝw  ˜Ê;›þÚ»œ (\šÝ¹xóTÁîQ÷E\ȶ»/¶ìM×ïnÀmÛ³í´“í™ãgÌxKxZŒcPõ–˜¼3ó±ïmB¡Ät1T¼v÷ÒÊØ\5¾R-T …jµÐÜÖ›«OØ"ø•ÉOÏól°³öÛtúVž~;b¿JpŸuý¢Ð‹L 0„0ÐŒ¢¶_†J)ƒƒõ +@Ó¨>† Àg—r9Y½ÊÆvJÚ®*DC•Peá²þn,ªee9K—²µ´^ +”v4mc#«Q7ôæO|TûßüIêúK©©ÔO´´–Õô(8ÆÑâ·åÇ/Þßzü:¿-V² àýû·· °' B€ÀÜ‚D€÷ÿ,¸mŠoommñà‹WBxô¨a¶ ùdÀ´ÏÍ›Q|áP#ÞáÒgËóà8ÿ²ÿƒ_ÊEÙo˜?56Í~˜èð3Ê1õ¥uåA–7Ë0Øo(ùBW,ùügY¡¨ò¨«á°H’ƒ@¾ŽÙ@ÀdÚå™uPWt\g ¨ V€U¨Mmž"ŠiÈ Ì7ÎÊpbæç“B8˜OcÎN˜p¢.ü€ò˜Ô?ö$¨Ãêß–´Úÿ¤\¶bB0–ˆ¨ôRÀ:Þ¦þ”«WP5úâ­ NÙÈFÞóJ˾öž´‡%€¯móÍð;0€Pûµ{­–•„*ŒòÝëµ'f&Þ÷,eRûŽ‘‘ÄîdR ¢¿ÅÙÜ<' `ttfC(ÿ­M1@ç_ÈàÕ}–Xã9˜ lä[¾]êÙé#QÌMƒA÷†n@‹™_;èiÁýÅ ‘‘´ƒà@¦\TÕ»ž`°ÊVý.¯$Ëê•`0ªÈþC=VA dÃXnJËYCÂX_%–e†Z±ê÷k1CvgÝÁÅÅÅ¢3¤X5á®aõ ! öþáX@L XKÞu*›x…¡f|'à°çê>´ÿÂXhþ&9r‡A{–2Ç¿/ˆ}añÍÞ` öËa6}²t^“b–ÏdýI1ßï‹ýðÉ£IN‚"0R6¡ä4ÇÿÌôªÓ~ùÔ銩Ñ4%û,Rp~*$‹ý¾$|ú"Y¨ÿJ\ž³°ÃŽ¿\q©Ûï®n—í0îv ù¿l‡ÐM +ÿÐÝÛŸ°ðÿáË£ñ/8לÛ.\j® +t#cÍÉ'Ͻ:@¨úêõpغ2 ´GpüT’ë“Îd`'{À[Gý1½ÿ€c#P@€0Ç)ë°xzagÀ +ì^ +àÚ¡\n·0–Þ¥Žºö˜¼2Ô¢„¦¦~sãFî—ŸEµ¸€h³Y%»S…ìFÚ˜º¾äO]ŸZZºº´ta*uu*èñ¬yÒ~MËvbE£¸[ŒjßìÌú"@hîß|xxxò€û·?UŸÃî }€ù02nš"€Îê«ðædgÝ[𛽾e~/ÚpAÂùv@°  IÞjœÍü¦§ëÙH€ ¢­6Ÿä<¨ÀŸ~0-·Î·*&ƒèŒýoËŸc +‡T\dȆëâÉlÉ_èó×%ð‡o¦r}%`öìÃÂ>ä%Šï›S½ß<3'ɲ9!Ù°læÊ ? WbW`…× I Ð+¥@•Í6lÿó%'f É Nà%~Ýïü®ò>šj¿!kU´©^ŒýÊ A8À ¨ÐÔ\’$6·Ïl¾ éë=ß„(û5omoÂgkÑA“£o1ü|6Óž™Ÿ÷¯¥R‹TuGÐtgRó3V±çÀ¦™#,ä}PP÷FÇ{í«_RûOäB€lˆ(àWððýJQÉ´¦3'ÖNÜœ¢ žÚNòVœµÍ<•ÿþøË÷ççÿ‹ßÿö§WäBa嫱±;sÛÍ•xså¨\M4›åêt¿ü¼ð +ÈáA˜}Æèu¯Î½Nø[¯sr²^*e ¬—Ø °¤«ûq^|‚ë"'Ð 4ðCZDµÝPîZúʵ®]û€@B“Jjq7»Q¸”ƒÀ4o¦>‰Rµß-ÅbÁ(|–ñAjiéºÿêRjé‚géVS)ÔN–³’&'T-ú­€Þaàãaý‡íϽÛCOàû7·èÄÇ÷DÁߺ·µÅè`Kˆ¡ ¼ À"€ÕWòîØ,¿?Ô^žXlxÓž&o–`˜nr«Ü P…è Û~¡þoœ… ÀXÁ|³kë ɨú@–?‡ZJ8ðx/ z~þ²³sŽ˜g AÏëG“¥¾üûß~´öÑÚÚ—ùòõG'áp=/Ú÷Q̲LE}  ;gÜ¢ƒsz€|@yÉ£ÈrD0S ò¦°‰  Ë ÁIyØ÷äiàz’¬n®?\ÿmgVGISwÉ2K¿.Ä;‚Ž!(ßý'äÈ/€&FÊz÷ +ð4̃ðiØë5ÜÔÀJ{TûöÚ³{óóó³5¯íãÙ5ÿ½víkÞ ´ÛBÓ·Ù£¿;TjàÛ¶žÏç[sP鯤FF¤ægz\ÿéµPø¥ZðoT¬ÿa +Øþ8•j÷Ú=Á`£4þáúæ±Ùé‹K6F…N`À¨ÑÄ=kÁ”¦úÕ¦‘.æŽLLý[ºï-î¿ç¨¼¾¸_ V¯g~] 6cÁ L(!XTaè+¹ä»ÁŠ¿&ª<'¡„0û1/æ’eÝ=¼î2+Wuµ¨ùÓ„T¿¶\”q28T¢Í7Œò†ðPFB^®¹øŠ(à”°öÒYfÅ |ü\BÕ?Ç8ŘŸÝv œ§Ì²C +@%?L@§ÈbN_ÄTpñº€×¦7Ÿà‰ÔçB͉@“æÃØ+y ©âTCô£ô aLr¸q:[¸L5ßË’’îQ—ó´|1ÐÝ3NNú'¯ þ  µîHùó”,=žøŠÜ_`:ôÝ«ÌMÀ»öË¿ àro¦IÐÑj™ÐÁQ—>·±5À* ~ùÈÞÙŽ¿Kþý ¶ýùÊÎÀö¹¸ý…Ú?Œ^ Å˨üGð qEšJsÕMjIzÚ÷žñÒ_Ä·MèFÇŸõÞA\ðÇ…5Õÿ+»j·/ÌýõØ…DWo½8j%šñòØ‹çæ@ N¾Ï \ƒÇÄ‹OQÈü øö…A`g# #`(¨â³m„9p +ù€œÁ’Rþá€+EþµÐ±Ü‚<Šª³jB•eu,"àÉA[øM"šÍªÆŽ¤”Ö7À•<  +ïÎnx¦¼ýå…ÔÔÈÕŸüüjjj*‡ €ØFI•µ]­ømq€ß|qÿÎcìp£oÞÜü¾û|ÂCªþ ûß@Öþ WžÜ`å>'=yß W#+“g¨žø\…Jæþß–ì¡Ær,׿ÍÑs/ýâE~|3? +‹8æ ä{ù@/izéö¸yõ•"ky7orØ”,A Í <3í)‰A>úÇH~´ö÷û_üýoÿù–­ŽÍX½ÑË[ÍzÏ43æ ^”}¥®`öÀ7k™þ »ÿ³dßü°¥Ï ¯X㉘̳ÖÂÿFÀg–à eHLv%%ÉG@ö‡O¾g µXô—·Âò"8i’"xðÝÃß—‘Ž™AOõæôtÀ,ó ƒ´´rÖXÞó\>ÿDÛç›Ààw5o¤¶×žñµ÷ZàôáØÙOÔîèúÚóW3© (x•ÜZ*å÷M˜âþãqÓ.—ßìÑ0˜ø25ßžéÃeÈŒŒn†½ÑÂÿØFÊÊ‘VBàЧSÏçGöp& jšGŽõâOƒÌûsì/:2ª¡ ðºãõtº(Ϻ\Z0äßwûU +µ!+œ»ãIx‘ë;]5WÄkÈ:Õñ]–ÅK±]úMïkj¡@ý:¤vHï‡3Ó†àð{]F,SeõnQ•ÌaªK’¡x]¦)l +oò# +HÊ${1 ÓwÅžêf x¯ˆdÁÍs\VöÁ ¬à áI3p2 ŸX§åØ7{óÌ Ø-€N£vÅËkýúÂÂÂIoAõ"e@r…¦ËUvJ.'ă’·ìôªìê°´áŠ&y£~B…ˆ9í#^êDfLö_ÅàúììÜ’S]ß>ìbðoïRqGñÿ¼Ëó€UdÚ/tº„¼‹½ÿj\lýítön—äe@‡×X"\Ž Rßå8Œ€¶/?@ÚÕwˆâ¨úÛÌþ°7G‡èý»0 8ŠGâ.¥ªdKÕ$«ž›Õÿ-*ü›oq0àæ³ñg£Çïü KÿÛTÿ£Ñ••U»¾=ö×$ +s/ŽÊ/žé…ê‘þA¹ü|š€ï›0)Ú%,Ëè|¨t¯+€|¥o] ^†wnQáZ_`0‡™Ø‰ªï\~“ +ýp¤ü`@‘ZóÐgPä>ËÁ 8”pÇTþŠ—B¡èXî +€k ©…ß\Ò²jl¶´!—Ê?€´¶‘ÕÒ~´öþÒO–.¼‘ºþs˜„Ò,bÚº&«*]aáÿ*Oüðþ÷Š €;TóÿŸÇ9èÞC øøWü_üͽ{w¶@|Pû¿àÅ‹ ÿþ•<€ÜÙÎQ-³¾’is—õ׆â½)hð`¯;¾ùÒ0÷%ËwV”Y!‚†¹ÀV‚†Xáø9m&÷‰š/,z’¢6Z8Àôرá=™ßDý§þ¿é?ê?>>ºÕ«Ó“¼fK~Ó’OÐþLonØÍ¾½Þ´€Æ°ô+Ê0õÏúžªÄ’¢dÅrÛߘ^CB3È43„€Éüà*$ͨà€H;¶å…ñˆÿµYü@Þ˜º@®þì¾HG?ú“F"†–%gÔÑQýwBŽ@€2ðJî=—ëk*þ÷ç}6ß„!ÍÎÂ@òµgÚ¶¯9¸Õ¢¾³·)ü{{Çì4CG·ç¿œ÷{FF2ŽÔüš'•É\õ™¿ÇCà—,ÿé +ŽGgæ=Áy‚ùÑ^khôGv zÌ #øz ’€-_‰|˯¥*Ž }x2!Í V%)8­*Ž #“©«þtF-ª‹Ž‘_‹FÚž–åâ~0˜öËš&ÕðÚF‰f‡}ôò^Øþ» ÷rjŸ–Nì¦sÁœfЫMe©iÜ.f*iC¥"­ªZQÕBäeIÒ›È ä <\ÞI l'Ë +6ûx%ï#Îs\DÐú8ë§<Éþ~“f˜‹}ãB/,œý2ø™®s|ÐêÑ :ðÊj“£Â^¹ŠM€áCÀUˆEèˇ¡¦¬]qGݲDðHóC-!»¨ø#^òDÜX™s¾'Ýèù$øÆ; ÿu°žS“N-¾—ØöƒÈyÀj·ó.wòô;Rµÿ<Ž]ÿe!ÿc`ùPƒ¿|ؽlït™ýG@¡ `ñð¾ýîvœ ê~×ü +-À‹í¦‘AMªþÍxwõˆ €ý(¿ˆ¿pV•êAl'àËψ˜+Lÿ@2àñ³Þ³™Ÿ˜x߇ @ôÒÜ¥•¯.^újeîþÊ_m^<:¢+»Ûœ{ñaµ\^-3ø·ï€ï,>Ô½€J_)%…Üÿ[0ÀÉ`GËp±Wœl)Ö˜ 3Xa|ª¬ÿp@4ZDЕôµ½EuêúÕ쬖(dåB(1}%”Ór×~š[˜ZXÈE³ÙÝ|³ +ûÒ!¿šu§±ð|ùÆÒÒÒO®þèúUì8 (­i†¶NÕ_Õà[U€wÞ¡ê}GsÐ͇8¸u›5€ÛÏÜþoY»ÿ-¦ +O€;wxð þj6žÛxÜÌËè’hÂ_¢Í¬é¾‡3fxñ?¶rÞÏ2è-/>è½¼m4oVþ^ò\¾®ÙÂ×™аæ’¥Égc|NÅ @%"fÏÙØ·_lÂ…yB·nÙpb²·Y7#/ùmÀÊñ1+Rÿsdý`1„Aµ`ë@k‡ €%3–Ø4íƲ̳Á€ùk5LŽA¾¡äE/¯#d›­7þç-€ˆÛËQ ?ØË.¬üi ã¥ðÝ]ƒÈÀ‹¹?ÞN&ðzYL®]³óÔÿ·}¾åYiàmû¨D·÷l{µ†= ƵPÄgZ`|ùöüT™àÛkÈÚ÷ + ~?> …Ø4Ñß1ðŸïjfÍÖkå[@ðm€ÑO¸1Ú4Ž-Ö¿EýGû/á†à´ÚéO*‡Ã¬ŒT4c·5\‰¢[Ì‹ª\XÛÏ,¾\Ó¥¢ÃQ1šéJfYªúCÓ‹¡`úŠs1Ïå +.³¯Ä!€IÖ]líq…rª.'‚ª!©žét(T$Ó7p{*L~«éPpZÖ¦‹ìLͲ{‰í{"âu“³"RRA©)¹Â¸µ¸Ð¸",öÿŸmöùž¸"b €á2*ú'CY6s±æï³À£ ôô¦7 ¿ÊŸ˜Iì&Üç¸`z]ç™–\‚h°°b¨º«é¿÷=bèˆN¤gD.xEv5 · Ûÿˆá–›|“„c|ßœ18_  ëc×½ŠsÇʇ~Dó2 MøpèØ?Çg7~Ø)Ç;ìˆ3¬ÆŸÓY#]PÄN ÷ˆ.[¶ÓYãvýnt¿èx°MÅ»»­Û©ö?@"P·«Ñ—£ír÷Å6]Œ—ñÕí£®K)¹vÖ©Ý¡çÿø[›<ý L@L€è˳ñgÇ33?›øxâmêÿ?Mì +…•ûÕ¹—¶WæÆ.}’¸4W>z4ù¼\.T›ÝÕò£xù¹øŸ%¢ä×YËÌÌpj¡õÉ“’2P‹`2ôä®NÂë·´ƒuaȳÄ ´Î@Ö¹þƒZT‹F<¹ÜµB˜D³2Æý+‰ýT¹ºöÓ©ÜÔO>Ó²rT.•bjV‰¹Kl@`Ã?uáÂõÔÛ.,]½~=u+€5Ï•ý+˜dK¨šêúVàCÎûE‘í¶ Þ¾ýÚ/ fßM„þÜݾhüÙ xëökL 4ÃìöÎ7¯è´q +˜uIñÎ8íT’¨òš üÍM.ýIn{Ï΂à¹õß´d\£›yt’ xz@ý?ˆž Ú—,¥½"xüÖ `†ïòŽ=`0>i3™ó(ˆ +g¥`¦…©V¸Þ°dˆ|]° Qµë(}JXi ‰úþBhÏ@@¡G X®@ òT€/$â Î%ø$-ç>‹%yÎèLB`LP8„˜.5EÒªýâ›ÍL2Çy®þy¡ +0?þpRÚ³§†`ºA0à@€AM©1@‘òJ{{6ß×ë³À>Ÿä­Í¶Ûó¾6¼öj_cæF'rѲ3 pÆÖ¦º‰ù«_zÿmdd©’ +:FÞsdRmàðRЯy€IþµÌÕyŸ-°Ù¢—Säünh`B`. gàºXðSÈæ'X 3‹##Ž´a¸‚Z̳Ô‚Á G— µ˜¡ã3jS/¦ƒFVRS—— iV–êqùk±½ºNe¼ù´©¦w ©Fµ×å.~jP=_6\z"3Úi¡¢¦ïÒÍU‚ª¤(N»cjο !¦eP9)—'ùœÞ×”„Ý?×{º~G ˆo}Œ0¦7ÝüxEñ¾á~½:2ÉÖ¼}ñ3¯gbÑÏÚ?!ôGAkÜI±ÀÎ?Œ0ÀG'¸(?œa/aŠGN€°Ó…¬B©é*‡éž—BŽ ,"W"¤²Or‚" G²E±p Å —\y©v6EU° +8xf¿%±¶›§½Tý=s`Î Ì”Á䙀ž=Âuôêu¶ç^;%3š›nK1o:](¬˜KæÙÚ'lŽº¬×Lgò#¡g8  ¤@׆.>€ïëaò¼)–A`ÊïQXÉ?Œ2wæðÞ$4çg·˜Ï[¼Fú`X\²%­w“Uiº.‰Äá–CD/¢îã—dmf ð'it¾^X À€SÎxš¢Ôj^ N€{ôª¿oÂßžÝûºV“ö¨óŸÙÛ›µµZµ@£%™ÂÙë·{­šmb 8BÅ?ã¨pýV&zL‹6c!¬'À÷f*oޤ<_~ÜÎ#2 µ‰;7ÇǦ`#Ìþj–´`Ò)-ªäzÚS•§#Oº)=jèuG%v8öuƒ*úâ{#ÕO•¹\«µ*µö +J±Û]ó"È€‚Z=9Auÿ©±ïI—Ar³|Èu¯!ƒ0°›žM‡‚¡µj:\Ì|œvRµ¸lTÕÙˆ×sK’¤ªUªó<ʧ[òò)Ö\ 8 <åAL•í˜Às¸þðè³° l{ÐÌc0y6É=ù}XÔøI˜öËVÍ7EV°«8L/ù<8¯÷}°%ÓõO‚X@’"<+ 岄„tG£*Ö§}—¨O5Ù{Ê¡’$ðýí÷Ÿƒ0ùÍ÷|óä‰ðî‹ÃzÏŽànüuÿˆí+í?FúTñ;Gb!ït¹×ga_¼sÎ?qÞÿãhhpö'¬8ìtÞåXfÐÕRíïØí„ +º_ÄÿûÅm¬¾Úžkv…)û6·íÍøöÑ‹xó° &àQ¼Lh¢Yþ×õfÉ› ´7™ÝJµŸwÿ˜ýc êëññ;Ç3íqŠê_X¡›…¹••ÂJA°¢_¹rãZÎutD†çô¥gÂØÝrùyyÈ8yôgë¼( žðè?g îáµ’#”‚Ì$À—P  p³xà\‡^ªÀìf ‰ €'”Ë]K娯¥h6[ åÒWr¿YÈUnüõDL‹ÊœPZÏî”JÙ¬jéúõ¥«W± X[úÑÒ|…ãÓž¶‘É15ªÊ‰èû|óàâý‡Ù˜Gû1¸ Àk·o?d@žÿ¿Æœ!d 4‚)x›À܃W¤,Ô¼H¥-©EùKšòªjbÝÌËác^ó2Á»7¾9:z–™aÅŽráï™ÖyykþÏuÍœ´›ÏežXó-³í† $î™I  :júZxN²xº×…×…ÂDú[Ižè[ýüÙ/¢°'ŸE`*¡Ì x`]@hˆ^†úñ#iDa(Ü`¿Ÿ†ùçó቙$¶)JÞÜýÛPþ{äÅð?PÇ&Ä1¹y3 ˜Ýñ/ø“Ư'«@!PÀ °Æ:À°`"¨¦x¿öµg[³Têéû,f¾Ùšs0ÛjÏøjÞVËÖ +ˆxžÍt£y¶ñiµz¾¶o>UI­yÖ*™ ˆx¿r̛ɾb4þRõ§CÚ©‘ÓÙß÷‰Ì#€Ac4Ü þŠiB°‰ËoЧ–‚ ØB„‘Ò]Oï:>ÈÓºº¸¸ÿÉ{•àÚ¢#h¸ªš«èø0øëÌ¢êr-ÂÃÿ.bù8…Ç L} þU\ÍàˆßP´¦D˜Ú¿Ì.õ˜a¨ª,»—Õ`0½ÿá"}ý´æ2bš“ i]Ajyººªº 5q2} +Ñ\ÿ ‰¿¡óJw‚n0¦Ð †Wðþ ˆDØä×)¹„ ñ‘°%÷gýT|Ââw2ÌBNxòQ‡¡AØ qöaŸÛ°NyRïå ràø3 Ö8ÁWÄ ñ?³`>„Y…© œìé§ôQýwnztè1bA‚ó4rа öžìŸ<'ðûï=Xe¥uõTƒáÒo_EfB{í.»vØ€~©¿ýó8ŽæO¬18Ù€¼&X%$° +3?‰¶ÑùSØ`ß~@ßlÏ= ¢¿]}Ðw ̱7@Áqö„Çà‹Ãîs:´~TZßá~gà-Aj~K±#€w~wü»‰ü”êÿ\ââÊý•+÷¿š»x©p©°»«G?ýÿÏ÷=Í“¨ÄGObºzDå…1ÀóáàÏcpùÔ­—K €@­´s°¾qPãW7ú³JØŒš.'/ê¥[·˜ +`šM†… ÐÁÎøm? T¡tÈÀ5=4v%¡ÅäDBÏî&Š¡tâZ1t퓞ʅÜ5i#!ƒB-aàßвZjé®{~~aéêT…@hŸWÙ˜–ØUÓQõ[DàXà5€‹÷ G >|Ë¢û¼vŽðš + ‹ãO^ÙC¸s.z‡uøf« ›pÊ ƒ×q´kx9–(`ü|ëgð Ýÿ&c€d/9äâ ù|r¨Ä玭‚gu£¡Sž’µ,g0 |q, ø€ +ß6@Œ‰ê-¡ §ªJ­>zðz`þ3týÃW…½Ìõ=Ýâ|€¡‹o^½=ð5o$˜½g xJöÿæò 1ÌL +oÃ$S'Àd„ ð\ûŸÛ’ÉvÌŸK8ÀCë?E$*Šìü‰˜p"XݧˆöÖà€÷°9ðÖfm³Òì,|}6äSë?ëõJ³{0’سGiÁ­{ú+-0øm33ók©J*åY›Ï¤‚•‘Ÿ¾žqÌ[)½—J¿i€@ûËÊR¦òú—>î6è¯Üí8 °‡$‡pc¨ºB ?ÒiŠkÏï/R§¯‡‚žýèþ.èïd™`4fÄv]jZN‡ŠT¯%9è¦ÿ8ƒí÷cº!Ñ/ÃÜw¯KQé—¤eÈùéÛ²³¸Ï0‹¶!G©ZkËPT‹éÅ`%!ËrÌE˜ *AGÁo"0¤«f`Vç Nû +û¿ˆlD¼1vzSÕq‰€aVòMöË0‚sÒ$ð ѾìóWŒhÁ0I|¿ç@7^"X@a6êæ_¨ PâOÅt·/(0'˜ »"’·Ì–þÂx˜îhú¸s×1N—lÐ}2qˆ…v8ÁàûX|óÍ.ÕܽoSÛOõº» ï=ú´2 ƒ€ –ìÿƒÐóÅ«°ºÌ…ÿˆŽfÚ?W~F˜*¼K×ý Ãà²Ýdt/SËß½H_¿²Ãè«î\·‰X á ØìvAü+,X}± +À“GÕõR/ÙÎçyΈ1À¸˜Œc@ÕŸ­®ŽçÛûô +ÀÊÊÜW—Væ +ôAå?úï^qÿßïþågÿ½;¢¿Jy½tT­Æ›Õõ«å3o ?k +óú !j?Cäý•&E–š¢ä•AÖ¾XÿNZ~‘/9(IÂNfL +à ¬£±ÍÆ~@õÊØ•+iò€ÇäDîÀXQΪ‰hH‹æ´Pná³k7* Ÿå²!µ”Eõ_Ïnà2€©¥ëKK \_J½1òóµÔÒ”'è¹’ÎiîllÃPCªý– ÀêoÂíçâcžl‰1–€ðµ×°ô·Ì€¬ ÙàþW¯Ì@v˜Ú^ú6ÑÝšùv`Ø’íØ°Ëç—jÎÆê øø¸ Æ-øæPH@0PóL«±ç6÷‡eY Ûó\¹< Çϸü³@iè@ÈÕ–l°2fÀtùA>< ÈÒP©/ÿÇV€J=À ?$(ó©q:@@9;O€¸¨—¦ô_Xÿ%Íþò4Ìô߯Y€²éïŸä5Š@V¶äyöOl&¬°™×ʇÜþ#·«Ä–@%Žü“þŠýòi9"æÎÓ³æUÀ8 Ÿí¨–ÍÎ~-íµ á?aöD;€ž·5ÛfÕ6 ˜Žö6[À8(Þm[{Þ7¿¿¶F xÁ@™ÔÕ‘ ½got9:d…Ž÷fæ3¯W•ÌÚlËÆIƒ½Ñd-Xå‘ü;¨ožÑø‚=+RrTñº=éôêà— ÃuèÅŠ:=2Bút?Þåe¹š•ª¹iâþt‘Îi¸üž}ˆöŒò¬†À €®Ý[[GÍtÉzÓ€€ÄÄ~¹ªÞ]¦ú¯j¹˜(ºÁ/ˆ¹Øñ×ëôQé÷ªtƒFÓ¨Rñw…YÒ‹/0IÂñj(aÎEF“š>¸‹¨àþ$T~(Á„…#pØ|™æÞýü¿°×‹ÔsJ ù“}±`ߟp™_Û©Z—ûBˆ*­€ À^&OúŒ%˜ ÈùP^6"ðòü!ÂØãäÄ«³JÁ —hÃ%ôÿ,%=…6ñ™‚ ø=)'Ož¬>y‚>Î,4ýÌÈÇ Žf+´ÿ¼ˆ3€Ó€„ + ÎÅÿr¼ƒ@ÀÕá;ØìLu¬€wéªÞóÞÿ0~D?aÐ}@G< žÿ‹îsé»}nn{}{;ÞíâÕÃæQó(~D@€ðÄ‘½st´n ´•™¼ÙÝð€ë?ÆÿÏÆÙú 53û/nÿ?^‰FW +—nV ÷W +£…è¥O?ý¿ÞþÇÙûYûg?û§¿ú—É#üA&OÖÿõ®^-W›ÓÍøóþ#þ,a`ÝR`â /µA`2ÌÁ€Ìx +0-ª®Ô­EÀË«nü;;;ë ˆð ð€‡ÙÎ + UC×ÒW<þòÞ.´±;˵JŒM\©C9L²Aa)Ä[.°©ì»Ï- ö†jÔˆºB’…¾ *7‰‚R*‚²´ˆ#!š@Êxl1dŽ®L\p*ƒñ•hÔc]=oƒmÈÈ/)Ã!eüR•;ÕÃ]¿õß[v¥û!•NÃtümK[þ÷ú­µ~—ß™ 0Œ%´`*— PœÒóÁ`>7¸K — °—SÜš1‹]À:&ëéÒÐ¥R)~½ôféï~é’û:&«™©€o=—«HŶRbB0|‹ýþo}F%^ä`@íý-aøð Pþypõµ‡Íeï ˜ ²€: +Atö‹bÄy<Â4]먠BugÎp^g,¿ N ŸúM`9ÂŒ™Óaôÿ6sÀ‹ys¨?à5'èBР[¿57Ýçlç‹rˆäTÃfãÝ>þ)5°íÔBÍ17 >± Æ¿*Ôxf#-Þ««>«°¨‹ûë›]]˜ +=€aöõ›æ¨¾ Ì€ü¦{aáÂî¿.R +V¾ˆ$B‹o3¿{sÙoiM7@a +`î^Œ5¶ÿWÅŠc“çCþ°ÀÉÉÙ¡rF/‘È™“·fÝW­M€ÚW¶=t‘¨ûïxg¼^‡}àmµ ¬R¿Ü2½€ÙÖ·5V-@`³ÇÓn}5í»¹š†!À£8ç^ùã €…èÁÐû T*½^Z,Å·{&€üýúqkcðÂßœ3às… %fÂĘ7™ÂŠuZ‘®éÁ@¥2±8(ƒ|¾íÌù¨,W–´D¥ü飀ÏûâHv^BåF›ï’*ºäjêeî÷p÷I¢ÔáE“®a¹ °Ú@10A¨ ª º¤¨KÊŠÅ2òÆfÿ^ÎW@)Ç5$jÍ“.×Ó„¢H7Ö®ÊÓJsÞÀ` ‚ã§89 XaC"%"ì}ÎØuŸ@˜!ƒmy¹ÔcšŠ¿0÷Ì?ÓE¥þ|5'ͱ/Ï prg-Ì §¡È»,U!óRœJ1Wó~dDœ®§ô žõEœ!Sÿyè°pòퟥøöÿ;y"DüXó'™ùâ/z$&y‚ˆpv<€¦?ÉÿÃýÕòCÞøsÙ?`§þ`Ÿ““¼ù§+ü¿ÉöÛ`@à@Çê¾GÅ¿‹%@£jÙCíáPïÛC]ûA¨;ßd.à‹n÷ ¹p`? ƒ$“téÙl…ú³±g8¹Õ7„óÆžaçEíï‹‚mò¦÷æä?¥F—¨üG©ýn}zó‹ñ?üa|æ½gÏnÿööí¸äpâO¶pMhåäÊÊBsS€W–ÖÎ/«FøÀ³¹iø™çËQ&B[{€—ǧ§BàŸSJT´O}d åöŒÿ* ÓGƒXLOçïOk©àt*•“ƒ£Ñ„œ*ÆôTÀôÝi÷µ»ùûÚZ0fëêÚäž¡{l¸.V‹¿Œ»>t)¾QJß,½Ãa@y‰=]Ò‹[ÚT,ø'D˜ˆ±¿E€ •yv¼õ{æûsÕ7«¿) äË?ß¹óÙgB¸c?<ü ‡ˆù5µèf0}]¬Ê…9íææìܬÍf;@˜cñóÆ[Ö©°°œ°@o ´uæÎ‡ò¦Œ^˜òñ€¹µ¾©¤Ÿc/3Ø4Ds ë•Ýv1¨³[QÝQ3Ó‚ 0ÿè3@59*ÂÍá/@=:|É?ð äÁ\]ØðhÄ&|Í•‚9!Î:H€'üèúýâ·y^ÿ ›I!H°VÌñ@h˜a€ÒO¨Žaí£ñw9ð­èa¨0 µ_8àŵ½íÙnIžñqªÿãTø·=7ÎF@ÞNKkÓtth‰$ŸVof||¼§³AŸO×ãë‘¡tçbÙ?,‚Ú>ŒˆŽ?^,e³‹ôäµm÷:-ú•ÍÀˆ[Ûè¨Õëü#Fã ýz}F€2ìöQ2ƒ‹‹>IÖ‹Ù¢\ѲÙÀ£„Kd`ü#kZTÏ,R-o*[Ew…»ñ„K‹F™Œ±8"‚f ½©‰”¬ëE=¬H‰-äd–¨iÇfÀÕL,.NèðûáX!Ð4}^[’\*wÿ(èU´bZû&¢J˜+.B Ö9“ø–%ô×hJJ„{œáH szà ›Œ>Üû¦¿Ép[Ç‚“­ú ÈÚé:"¦2®èí¨LŸ„¹V;”Š‚äa¥‚8‚È‚"EU8NO´€· )àtm=MlUä§²\‰œ9 ggNŽ#d [ÿy.@Ï©û_{ÑñóÞ?Ù€U€èÔ“< +`V¿}}VxÀ#~^õw÷Ÿð»`¢å_9Ø?Ü_@Á~–@]¡àÁ¾ýmz+oCþÿ3ûNòÿjÛ?' pÔ%CùP¨Ûì6 l&Cl Ü´ /”‘3ÖóÏŽ7D§S§³Ú[¢ó;Þ8.Pó½Øö¸ÇëõÝŒMPåÇ`9öéÖ§_üSç‹ÿgæöíg·o?{öìÝßÞþ_^™ù§NÇAb}þ¶pðüàÕ0€ŽÖ-€POÕŒpÎ0&gs0û0, P³b£¿¿ `𺀓Mû}§msoî¿ +(ÆŠ[Tã§ÜAw0ÿa^žŸ¾œJÉ룗Y XÔ©»˜úhú|€Àå)5•2 ]uærH°Ôs9w鯥Ò/}×éÍ¥ë7.¥ob9tëæ@Òct¤ùàô‰v†aâ³³û uýbê¿ËŽ€ï° Ð€øÚkW_ûç7L `½ð³;¿ã( v{ÿ§Û<>õÎnòvÍ@@“þf°ïάmv|Ö6#ÀØ ã¿òrãwÅ:ýh€‚h‰ÿ "Yw˜3ˆâQ­]@]é>Ü”óò]ÔFÇ™$€5?ê ³A?¬ +Â@ÝãÌTsˆQ7ÎÙ}}hyÙ/‚YÈæš0PMÔ£ÖÍxÀº°ñüBÁv±þã[«ãŠÓ>¸ š[¡@`ÏàÁÚÀ\ö›Bñn¤@ËØÏvŒÁŒMÁq€´—ž ~àÿæé ú9jÿÑÓ±Ê?v (-˜)•m=yããÞmï8 +¿šÿqoÇ6î£×_U©<3 %þÈ€€w|Üç.nŸæ[] e¿DÔß•xI(8¡t²ü¸4D…ìßø8 …ØYð‹A Æ0f¾"…1@ ?îÎȘë+°¬­èS™€Ýʤ•¨üÑPÖ'ËÚê„æË²é@À—™ø”*pt*£QýêÊè0ð¯hEuì<äûh•œ\©|:Y‰Æ&ÜE\CZ*î¢î›`ïÿ¨|ï×¢¢³Çš š``´üŠÓ¬ÿ¨ßQëúzEÂg£Qx6£QŽ¢÷\.¹Âž‚ØW0'A,"f^ Â¢;…m~©œ;ÎøT-N×ÔÅŸ98ƒ«ŸܱS‡ØÕ‡ÍݘO1À,ARàüãâƒ>Ãv€MÜcœ'Š&+ô©ÐO¯@¯/bî ; >>’ÓçNзß.ÑÏÄ,Ž,.Ø Ü¢×#¥™žhر¸P8Ñ ˜Δ^ÿõÐPih1{Óëíu +l.<Óóo´ê-¡ cõ­.ü‡¦°yìû½[º\I4e—k}ÉõÑÐHvu"°ä¢ž[¾·éÿb6C€d1 iå{¿˜¤¦D=Eß’Z¦ì&( EõhpÒ¤éWpYÂT»ÿ¨¬&tLì%-µ-L¢ ‘ÀŠª6‹$ž /HB0\Qû©²JQVùq¢`ÔÅ”€¨ŒhMf2¢äŠ>Ŷ_ŠnE£.¾OýX@ ±‹P˜·ý¦šv;v„×Û@•§08µÈ\¦"@Øbžæœ`ÎùöÄ9uDTèÿ*.g؉ÑûBxbN€”³…ˆ¾• Ÿ‘¾ƒ³È™à„E¦0®÷ÝsnÿŒþÿ[¬ÿ9€ÚódòíÆa7Ùb@áhïv1`Å’ÞtéÍÿ-É.øû¼A€T÷™*˜|Ò…{Ï!"†ìÉ÷Vü HÂÞ¶ƒKÐ؇ ÀÏ’¡îŽ}Ç>Ün‡ìÃvðÍ£&3™ ÀC€$ÔÉ5Clâãœ_ôúüÚDíåß&~Davlã¿^ùM–<ò'~èßñ„-1•F ¼€Ä¥úUó¥ŠDœøvµ +ߟ¯<6[Çç)Àx¼ÓimÇǽL¤¿bkƒ°[‹j2•ì–­33Þ±uÒ¥Å!º`¨?’^]Í–>î]0þ±¸ü¦­ŸÈ +¤Û¼Ž•«â0Z-o¦Cx¤×*aÀ1‡JÖ8*ðÊDÔë-OEÓ*O²Ñ`P§x´ìÈb`²âÚÖ%ä ×3‹iúÌ£ L?˜<•™¤>t?Îò§ ú%DÁ¯ºÀ5Ts€€ž äEjï]rjÒjôéóÔ¹/y¨ÞÃG€~›.9Qq©ô18hà%vþ¦0p‰bˆI¢ƒ'¢’ùéæS36¸üÔ%¼‚Ø ˆÌ〰`ñ1ðÔ!ÎËN*ä¿3 ¸ 0˜Nx_×î_¦t9xúý ÓcX>?˜u¿s?Ÿ7¤TΟ˄ù=Þ¬ûÄ + t£té‘—Þܸ^‚Ð?ÜîŒÏ™Ìåš9C0û~Àʼþ¼ñP¬ýoýNþÁ þ½@¯ñóU ^{ãªøøª¼ñÙï?1]~B ë KŽæç;‘·‰*6k³ýêW›³3¶Ž0ˆ©å·rÿ¬Ú?V7Ó€9#X¤Sû_7/ÿEöœXÄs?^ÐéT¿Pº0@5¯ÍÔ*ˆ›³@µŽR¯…û”ý¹ZøqXxÓñ +5wQÔÕšÙÿ«¢ëW­ÅÓÔ‚i  +¶€ø?ã®^å_‹M,ü ÃÀŒ2ƒÌ*_8Ïøcê_Á6èùÍÉ€À6ªò¶óõ?SŒ‚€`·Øæ¬?ÆÜÚft•<à @DDr" ƒ¿Z%@™ü‚êä¤w{ÛC ¯×ÓÚöÆg¼ÞøqÛ6 ÿÇ;…–­×ÂÎ_Ç6@Ø{Z½íx:]ʦ³#C#V}étœþù1Ñ»È8·÷evˆðÂÐPÀçûòËñq:Ö a€VKèý=Aúc ˆ€‰ÇϘG’}²Ï§ÉJ%è‚Ý~eRÎäµG¾Œ{Õ•+¾ÀµLùQ Т“.ɳ„(àÄdÆW¡bœˆÅ@þçỄ‹‹šóŒ¦ÉTúçe ¨sf'Š„*Ñ„\ü!€tûh3*áq€Þ~mÍ…`‚(–jDU$eMQÕèØôMHLà`y^®ð Ýâá?›=åŒ`U â\`•ð‚ø]¡äEºF$|*øœø‡W&À+ú°™Ì6C@ìp‚³<çDDô¯S¢KY Rh#lŠŽ9ÛBþðŸb!âwÖàÛçXD¨eq(6ý˜÷£ÖS¹ÏäýÑ'ìÉv×Ü +€,ÈœALûÙˆgü +…ÿÉ>Þ²[0‡ bûþ·L0°·»‡@öý8vÛû ûQ{§—P<TÿùÆr£œlvCnƒÅ€Ýƒ¤ê,¨6¿­À.UclL]‡W€ãcgnÛ%»¶*Å„>9;5‘*O„R£Ðò(u–ÿ4ù‡?ŒsûÙñmÔÿ·ðÌàÊoŸ½;ów‰þ‘Á¿|>p¼š CKL(Õûa:m€3œÛ¤‡ªáÙ¬¢Ñpb¶ € þh ,Óý›™Ì,êš!¬›¹ÍÙÄZîoÌÇ´­|FL>¼Ó.çGƒ˜lí½ŸÑbÁb>ŸæÝwïçïÁu5¬…sô+ž5 ]GàO*ÿµiŸû¿ ]*ýý žݘä¹h,–ú#' O¶‡wM€ªÎï}ÂV? ÃðŽ0ºúÚUS @H@P^R@ÓОüIÀé¦Í*^V. ÈÔ¦Înöf7m³³¿šµ! +kr{ÅZû^èú76e¿nf×ëõAýçwk–‰~]­ŸÿÏçõ~ÿ`ÁU«aooÒ nýKãü".U=ì¨ «ý3ks¦y½ôÕó£ö­{âìÁW|!þ~|Õ¾I´ôsæŸ+æaU¶|I(Y0'þsçé…‚ xAægŠ0 ÍSæ`~Æà!Æý_Óµ6é… Ï8g'Lâ:ã @ßrÄü_Qä›ÔH{&;©ãíxÇ¿ñT ¼ã“¶íjÕoõ ãНhÐ9 È;Ó‘ŒÇã?_Z¼ž*¥W}ÙtÀcûcHB¾Ï + O/–^Z dVWW½žíN§àDÄ02†z~"ѽþ…`£Ï^’• +ýǹ©Ñª—ðTŠÍÊ”Ò}«_fêQ1»˜˜ø½›Y-£«_ WS2 +/güà¤b^er°¸%ƒðŸ“_I-êlF*•j€(‚ #8ªØ`¿Õ€×ÏI¿®*,þÁ  ã»"hþAøo¢ÍfÇaÓ8Q–Íé@“ðfü+d°f0Z?¼öàºÏ=6 +>aŽHœ dê¶x_ûx`À$Ÿp. g°M¸âŸöø§ðEBûïX`sÞ°¥ðé *‡ôiäs01¡‹…>!–S‡œœü9àôÉÉXA®g_h`*½o®º"˜÷ô‰ä +Ô< Àtξ‡Lî„Ë•“TºÝ,}U—’(k•Jy^—ýÏ©à Ôò—çéÓeIpùW¤ù”}…›þ¦k¾¢D.tì‘§.‘ ŒI¼K°ô"ŒNX!È(Óƒ…ÿ W;™@lö3 :­À¾¾S$@Åù˜0Àª»KDƒàD°Ÿ!,@˜ÝžBéè¢o÷LI$ÒÇéäô$9sœžœ9þŒúÿüÛçTÿ÷EtXyÔ›'w¨È/`ÿÏ>ÀÝ!XáO%÷`BÜ‘ìv“o;AûãÀ>ê3Øüz!)ˆ @° ¤Û~»›| •$ÜìÝn£Ýn´öáÐQ{ç<z'Ô(ÛCöån¨ydo¼€"p¿{Ð]pá\`«÷PIÕŸÏlê˜Jïp–yËcH•f¨*?(O”—›Ge:ÖÑÑîÑpttôÓ©?tÆÿîÝg·ß½ý[1xë_Þm½{ülæ›íB˜9œ×œ¯ö›Dßa±ÿ…u K¥ÔªÿÔ™£óÖ^n–Ê5Rstò`ÿ¯>«/–=ÀËt@Aêùg=9a$häöPþs“P¬U¤:ÿdÒÐ_#HÅæåüTqz€wŠrþþ嘖¦¶ö ,ô²{ŠÀTÐ=}÷î]]×ýF0VgY°Î€ b€.ýÒë.Ý(ÝH_ºäK]K»§2A·ž[—¹õÄV,œÿ¾€½½³+ôþw8 P<†˜|ò'WEßÏB@1àOq*à­Oþ2À0k”Á|ô‚R7+/ïÁàÃ_ ´ýÈú T±!O§ù#hŠ"„‚!ÀL: ‹S³ÓÉaú¢Ã…É‚ìž,œÂÐ)”"G€w¢F£þWØÕX$(gaêý±g @ùíŸVVž°Áðsu§£¨ÿlå>‹»¬dv`‰Læ§nÂîa7)p¼q@l&Ðmïï¼mßí7VÚö¶½qHU¿ÛH&Þ³ÿ fûî$?·ïÚoÙwC·šG¡£æ2]g¹*7¢£îîq@.uÎÉž ÿX­P¯Ñ‚ýþVþ¥¥¹5£Òl6šrù¨qDØá¨±:BÀîQt4õé?óªÿ·Ÿ½{[ŽñÜ{†áéLÏS€ÿñéµWûMúEjž>kŒÐÇHŽÓµ¹ºÇCåZO݉Œ@¿JçD¤¢1¨!9¸oÔ–<ð¢,v@›`X#õž^å~”º÷CŸS.V¢ØËùs>›¾k—J¥Ò ßMÿíç¿|sÕý&œ€‚¾€–ËIOÚ|*ûÞà[Lv-æßÃßqú/‹níî€Sà×, õ–^±!À„níî†ÚÉŸ˜è9ÿyÃj3·Ú6¸ÍnþŠÇÚ½Þœhý º?ú/öý”*`8XÔ­ç˜÷uk#ÿr1Øw"ÙO]’5-ÈëHé© £¯rޝ" +·Ý|þýÚ½ü#]Ðè\I¯ó““*Úƒbð†ç„œ Náü-SÑJTÁXóƒàŠD*•éƒÀ.äG5Ø UžògÀÄ[ ð‡TŸyüaÓq/,ú|B Ô’ã\{–C¼¡w‚ï·p"œÜAä{,üƒë%ÄgwG¥BÕ!|—,àݾàôqþòÄdö%P”3– +™€3vþ3&ß>ù €fëQ­G&/Šã4€Ĭ€¤å +|¥ÀÊôÚGV¬Àìî›N€ô– rÿÞNÂø¿ý6ÐÅ{IDŠ8º»C;’€“íÆNcØ¾ÓØ9ÚùœZöP;z hw¾±Ü %±H2 Ài¨Û{{nÔ ~µÕßP[8Wês8+¬y‰0J»ÛòÂP›p@{9" 0šýtêƒø7ߦËñígÇW ;èÙñÆ3ÿØṉ̃¿Ó£?ÑiøÕê ¼_­VÅ•Guf8+ŽSÌCAÃCµÇ8s†8 ~Âa™ŠU ˜ˆ±€…NCzö a~FiEŒŽHçT– JÖ üü䯤èêÓyw0øá‡S‰àý|0–ÓG5Éˆêˆ +*fŠw§ƒÓ«ÁÑ»÷ݪ«h¬}š©9¹µœ˜¤K—¼Co–nü¼tãË/†Jw&£ôDn¯B¿;9¦Ž¾ þýI{'Ä+¶ÿ¿Ã``€íŒÍ^»:xO¯Þ1EôßóíãŸX‚ôsùšÍt±Ýä½µÉqï±Ã??1°²x¹¯¿Ðø›Ý¿(ûaôé~V¯\Äbnñ +ƒõD€0¯ºT<2ýÂ'ב1€z˜³ªÃ€ýfŠæü,ñ«aÈoêc8¸õG. ßRþ `s@ÀôÑ®û"}±7(µˆê_¨«VÊ5.Ù<ÿ™ùG˜bWN²Íάõÿ¯Ä8€wð 26Å5„.ÃÀÜã‡#€çgNзgá3ÐþavFà«^‹ºÚIy+ºÅæÿTþ;q¯w<§^¼ã¯Æ;TýñŠÞF½Ößàœ'N¯ö~äT×Wã>w6½~ºÓ9~ì =¶1°ò±&cÇã¥ÒHvdR€‘4uéÙÅRͶêÇ ÐêÕû¢÷ß ;<×llôÙö¼ÖW‘ŠÎÊÐ+Ew`âžÜƒÅ`à_G²iú¿Óô-Í—Zôe™%©jôѦ»ƒ>ðý*[tÝ%öüJøõ.îîQS1ç§²ÝL̘ƒ.îôÄbW0ŸÊÈLPY—µryœB  ™C.>s`DGÖæå§R":•¡ d5_øÄ ‡B—(éáñËæìa‘ø³Ž8W$)âúßUû˜3?˜Ÿ˜Â€Ss7vD„üÿÄ´bŸ@pþ\ì6ØÌ@`µ:¹Æ³Þß)UØÔ8rƇTXJÀ{(NN~týþíÉÊØö¬0Ï]fé¡;GÛþ6µõ¨ù‚ Ü]–𵓠f‚7´t9à}<=€†ClýQæÅÛð$„ÅB‚ìídèíÐ{ woµ‡C»öå£nªIí{2Ô8*‡ÊÝr÷¨Ûx’Lº\tPmüÏM•ÖS“è,â©Jª¡D0¸ #"V¨"4)@c·}úd>+à¿ÿx†Àñ1öax{v\ŸÛxvŒÇ«nÓ1Фgz4-ì_F¯ªÃC€Î^(ù Ó®;{>©, dPÕÉn aŽF N?Z@tB<Èá£b¬©|<$þÚ@,Œƒ¾à´ÛÌ_’S÷?ÕåùËRÿt¹Óܱw&òAw&x÷~@uÅ ÿ:œô͵œ±§¯Я•~‰$ÀI¦\ûÇ´÷ÿ(]£þCÏë{¹„±žÈ%¤R/ÿ笴€Ï>¼#,ï +ÀÎCð÷·û¦#CËà¡P.‡ì‡à˜ÕK¾1¹ê›–޽P/6ê,î³ @ý¼ÿ߸Èþ³vÿç¾Ð±†ã\Gðéý¹00@¸nÎ +<8ʶ/ìó0Œ¾p_€àXÇž‡gý>ô~øPÅW è³¶Éõ@HÙ°hn\ œƒë~k}P/¨ÿuçËü¾žÈM´²çÌè#xÿ1ýoÎ ÀMÓ\[.õ›…A$!f.‚àõßé¥ZÈ3g¤ªô•gž…Õ^«æòùžòVÚ³x?±ö'$`ë|°zsÆfëm³6¯Ðª·xP€P«€,ÀVµÕéPÝtzdñõÅl:›?wðëóÿ7.DÎd³ÿBXáQT€‘ÅߺîÓ|ñ¯T8˜ì÷7D$ ãA¬íÚZQC.Uäf©|:‘Ùò-c®(•þ¬;0ôþâëÙ,ႊ¢'wq*êBOå›®^‘@õ——rUUÅÁ"¢û¤º¤¨ +› S)Ÿ/ÎO€.8Àtª÷ &–äŠê;éã*»R•/kÁ”VYÒ´rTÓ3EYƒ’+ú_³œ‚©@T¥€ +°K¦/5¥æÓ +DMúA¸+O%El°Ógý’}°×çž'˜úXT¸ÿ…ðäd<¾¢8c³`Ÿ}ÝÌ„7ÓAèÄ8¹,Ë.æñQAwá.?KZTaÏaÅyv‚UÔÂ"ßÑÃ结3lN©úónâGפþãûd¶üTëÓ Þßa7‚&7þv™ ÀeÌþ$ úX @˜ÀÂL XyÝ@’׬ßK6ÞkØÛtìFˆîc·Æ# lSóßNî4†Ãôj7´{jî6Bù4Í导=Ôl`X9ˆHNO§ÀZªÕ¿F'tß*@O {à›G¦a€n¦¸ Ï…vËË·Êó©ÉO¯{?žéÀ plìgcÂL™Ó½ÓãZø·é8‹áŒU¥':aáÜÉÍZÕŸ†ý5è̙3ÃcB@ßÃPÏÂ/0Œ@ÍRž#ÊšŸ5C~C…úÈcs8ªk’¥™Àœÿê'óÓML.Og¦òWƒ¹Ôý|*–Ó¬%ôõu½¸•Ñów§ƒÁ)Ìæœ)C•õM`/àÒµéíÀ›ÈþÇkñ_—®]Ïd2nj¿”Kè‰ØÖhìòË÷|(Àþ™h|‚lî<0­ê/DßÀ$€à§"œÎ(œûÖ›ò6±ä/œuÏ`®PpÿÍúoy¸oŒ+6êõïm΀…8ãÚ¯Ô‹Í=& ÖÌÏ® 2{Y·N@]È܈!úyܦ@,f¨ü÷E…¯‰±¿êç-Wýšy<¿¬y±…°¿f1LÕbÝ"Ì‹çææLÓC3÷GlUl›å +l®UZÌVü¶óDFƒ—~–¨ÌgTËšp*ý~䬦¨a6j¨ú&¥ˆRiIÛTþmÔþÛÐüS×߉§¡ðö¶;33=$^a +”R¨©ü{Ç©eW\“éôbvq1íŽûÒYÎ4ëÿñ•s c ²ÙôÐÁ€À¿,f‡³÷ò³Ý£ö«6ïöX¯UJî´?oüŽ`Ành8´ÜM Úß8ê–!8ÑS$étщR,çTíü6Õp®%_,€}ÀÑE]8 WAƒíe:ÌrhyxÙ~yT~‘ûâƒÎøÇ½ofzÇWêWà%0&b7ÆžÿôJ_Á^Ah™U+¢…_‹]nÝp +ÕØæöOÚƒ©Ÿ´‰Á½„UgßL 0§–/Š¢nØ:8ìVBtÆQ £jˆÉéšQ=°Hõ`48zÙœ3|4Kh—·û+Ëzl= æ/WÝ©óS›NLrëá~N;"‡€žþûR)ýË´'}£tãÆ—ÿ­äû‡ô5wÐç "ØXOLîiZ*õ=àáNhx—õ~° B>äOZ6Tûï\5®Þa? !øŒEöŸœˆ™µôgÃ[“ ¢mù¥`V;?÷ĸ³¯ ª¿á¶1ˆw=îÆ +…±ºÕå[1ÖüŠûó1€¿n:«/¡€Ú@ 00ê7¿Îä:?Œé!Ìä=à ÂàúŽªÞ0÷ý¦Óof"(f?~“`z +™J@¡û· ! Xð¶  ô… ¾E–W S&z¶¹s×ã¹ó ‚e $ž»Ï¬üL´Ì?ðŒ9Á`o@^x°Òÿ +>0^pFÎ`éÞô™À3Àºÿ«ÉIjaõ$ÿTù¿ŒÃùÇ;C ó¥>=ÞÎø8"3 ~¿µQØ  ª=[µÚëØä›éÅRöúê*=g¯­öüÖŸû˜-|¯ zÓ$¸óAúuêýa@É/ޤe—ǯ¶l©å߀ ÐІôklÅvfõui•He$ûëÅTf[ÿÅÐÈÈûÀPvdèý_LÈzFÖd½XÌOÊZÌ£D\:9A*þ ¹âBwòA’`ÍK…ÜÎÉQ-*E ç—¶ä +T +Kÿ%©m²ñÝL¤¦Q]vI¢vW`5Èöĉ¨žJTÊTð›Ý}Bb*ö›˜©cÖ0/±³›.†"9Ê—+fCa…3Ù"(ÂÁ * +s„Y„^aaÚËÁüŠ+;ŒOœ,@ À©“‰….…jCq9œóë\p„9t€1…³ÂÑC LPqrf‰ã»ÓS¸ž>ÿ‘'êÿVö“O¨NS¥,ÛÍFÃÎCú}|h1f컸æ¡0 ù+M4ñôi;0€/T°°€Á§ î7’;ÝPw˜ FHppȦf}g˜Ð‘}÷½aªþŸ·wíÃ¡ÝÆ­F¨¼Û ÍSd/7a l?h$#Í0¤€Ü xÖü{_³#!Ÿ$WD‚!ÑBx>¢Ã —w©£[å§S_L^÷yâ3gZ½±±gì%,,é!~Üë…Ùàô‡Z¨U3ºDµŒÓÕ‚`CUµM‰¾Óª!y<›ÏÚœ¤šb>ÕF0=ö±0…N†)¢â7V{eE ±ÖO fLû×ÔT¸(3€Ñ©Ër,¨óÓ™©é»Ó‰Xþþ墌 €!!éG—§ Œݱû÷õY5ŠõÊd-œÓ7׿ör¾bnNO_#P*yÜ7o\r_*ù~}mѽJ·Ë`«¬'¶´Ø÷H€ßí·¡`½DÃ"þêýîîÑÇZA€Âð5Aü³ž9ÈôLþ¤>€æÀÆy5ÐÚ¬-6¯™éV0Çïâ± 0;|ÿ†Uý7ØŽS´Ç`@—cP¨—,XKÓÂÒž¿ˆä­2y…8ŸIyVìÕùÀ"ZXF5FÆœŠ©ªæÎ^@f€ß:p¬hü 0è›Òÿš@¦>€¿À<k(/Äÿê€tP0­ÿ…Ð?XþÛXöÇ`É_°ÙÄX0*-ç?C”þM›˜vÅœ0<6-ýü“ðw6Çÿ´FáþìቄÏÎØüO¬9 ‡ûÕBUšüT¯èñíÖö¶mÜÿ`5>>ã…pÏ›N{[’ÍF„-Ôu¼imÀ  UeC^g2wA«7W}qwúf§UV@–` +dzúöâÙl2ÀÅG@&ƒa@v•ÞõÙ¾²u¼è Z "/$ Ѓdc}Zë;OªTo¥JTËŒŒ eeõEtûïdG²÷Þ™Ðe~åIx÷U¢r°ø)‚•Xš~¨á¥JBƒ£/¨¯®ƒz9*ÙµO¦«ªŠ_”jßéF\rNU¸¨…UFT€‰(Áz•ˆ&ÊZ4‘ _Oé`î#Š[Bø‘DÚBïOŸ³+Íym D;vpž,8 -DøœÊ§(êØDÖ) +…À$‚ +Søàääá‚D‡åa!fôšjŠ¢rŸ¿¶À‰âZ $éÄ¡¨'¬b8ˆ(€µ? ýÊyBVÐq΄ØÀ\ÿ¨Àó'+OV¸NÛË]*þåFò¥¼Á$‘ +€Ú¾@W8ù¡Ø‹é}R°Ù¤—³}›fÙ?H8芉¸û@û5ÞKÚÖ€FÅ|Ÿ‡t„“‡C¡v»j …Úå#êÙC寮}¹}Ô\n„^„B ºÇƒöÁÓ$Õ¼9€cmïÅ:/íçé@_'bôl@Ÿtr¬”Ùg‰}n«8Mðøo`0JÀG5>35q7ŸKå?¼Ëm5úKërB/æôLjú®ï¨ëª dˆu#¼çË­{¹¢>r\+å|7J7ÞüòÒ·Tº†0w&XÏQ+’Ò^ÄIV˜ƒ¦ìÂËPn}òÐ2ÿ1WfÝø ŽÀ?»pÔ¶ÿÄ>€Â `Îæ·Dèða(šÙs~žH (`7=ç7SùÊc/źãÌ̶AÌ"ƒyÀ@2P(Sy2¨ó‚«Ï3®ÚE³`Öò ®Œ/ÚqcàÝ+h®uL®ü…š  CxÀ9ÛäöY Ó¯‰µ¿ ÔAb0küÄÇÃof[ô?õÜ«¨ ì +QÝUÿ€èÇiAsƒÔ#Ó Ø´¶Äf·‰Ò?·9k³ÍÄ'™ïÏìEN3bÀ!à:Û3¼Š@„Nèá³pÄŒ¦ß‚¿7ª}i馼å•<˜÷{ÇWǽÔýØl«lK°Ÿ™éµZ=ŒtøGº×›él×áß·ÅåÉëéôbÚ­{½q÷—^ð7xæß»Àý»rn ÿ9–ÿ¿Áóû¿È>Òe_ í©ö¼ññB«ŽP`"ê>Ôú58o˜§'gDr"d7°HEÿýÅÅ‘ÌÈP`53²˜zôþнàä<}aÑ–¿œÑ•„OÓäÊR ÈÓ}}RªFx×·Ÿoò™©W™Ðe½<Úþ%N ^“€Ç’€ŠÑ¼JÏøÅ…© *ÜÒS#?-Sé—£å22†0òoFËë™”¦%@°\ÿðŽŒlÁ(}ÔŒjÚ<…ŽêA_.,~0ïcæ= +]·ÿ0:‘"ØüŸž°A„Cœ èÍ!½ƒ +ú‚q*'läpºBp‚Ü…"9#0ü—"¦„¿“–0ÒSÖEDå då –Cì@øÝØìïïóü¿‚nî¨i‡ï.w÷L`Ÿ^výI2 šÏd@¶ €~€Quò¸ ¦þ¦+à sÀ‡k¬@@­ÿaÃþ3äýòáí¸€mûÎþµÿÃön»;üö0½w«±:jÞ +]nŒ6Ê¡åhè\,õáNuEká5¿²¦_?Xÿzê©¡®%öö?\aA#B q›#;óÛGGG©-Ùíó~àí|0þÍL€·6PÿëðOå§ðF+L¿ŸS€¤4_©ẪOŽ rã_@ª·!Ñ"|ê(Ð͘[«R«ÊZ)•™üôÆœõ3`~6ŸE×øÜ ŽT­/N˜Ò‰Óy*²¦áðàTÍ4þ›˜ŒŽ¦R²æŽ§§ƒÔéOkó0Èi£¤uªÜ¾œ<­åïÆV§ Äfµ„±™Ëm† =“3t7Uÿôµ¡œïRéÍéÒ%ïµ(¹3Sô”Èå`¡”HÐÿûË+€o xZ+ÓÛÝ;o@ Àgw,ï?$ÿ^´ýWï<¼*¬¯ÞyCDÚ“+?=0ÌE?ro 8ß°ýpæ1«¿Ã¡5P@@çmpQ(Æ^êE”WÂXrò£z®6ûVì vªP¶˜›€¾eÍ>Xݿ؅ fKMÌ­˜»bs•—W¿¢… Ï*ZXdsŸA€_¸k«‚Pà¯YñA¢ÿßD).ÌsÏdž¹(*Ì uÜð ö`AlKXRq.ûãW››6Ä+›xÎ ´ &ì0Ú§oD¬¯ ,8;ý³³3BUõŒ@ öÀOQ*·}þÇÇaÐéŒÇ?ïxãÞÉNÇ;ç̾z¿¿ÑÚ(w„ëtªl-Úú íóÆã¥¡´7Q™t»ã‚èÞ/Rÿ/ÌÆÆÆÓØübhèý×G¨€Vó÷V3“™€¬*Bþ»þrPÝÊ2ù$Ðwô •E¨”JK¼ÿ›Å‰ÀÐûÙÊÜÅØ£{C‹mI‡¸@kÒ•ÈëºÏjýMVØ›Š•—úkˆ_¹”¨HÿS]R®‚bïRr°RxïïäÍÚöÜçá½D-~b¾˜` PND‹Á¢Æ3þh1£E˺&#›…Mÿ"˜HÍ&WW³¢•£È †1?OÞ9ˆÝýLXy"$¦Á˜ÑŸžJ,xŒ"ÏéˆöC$1|û-"€“C +7ëH¥HºmAéW\‰ +Âéì.¬yAp¢p–Qä,ü£ôéŽé[%|ò?6 ðùó'OVÜív£ÝF¹Y¶7CÔ.'1žGÝo ¨ µclîöÛ]a@69N]nå#í!ÈpÐH +…`‚èúéB¼KG† ¬@'<Ø¡«ítwèøî$íáÆç!€Ýr#´|D ÔX¶/7—øaßT$ºFíëƒr÷ëõ¯ÿíëuuÎiD0üçê¿o'lƒ¥C·ËC!^Œ6ŽB±ØÍ¥/âÞñë3ñããg$\Ç€…¯Œ…ÇêUçcÇ·„‘Nÿãô‡ ¨ÿg@Õ¼`ÀÀ£Ö`ʼnq@Õà@ ì$ÃPøÅì à“$Û©­ùyÁoNø™/è"u@û +àlaó_áoƒ Fõébp~ÀùËš>úáe]ÖR¡¦õOs¹bBèù»zƼ|?¨Ï9›¹=i6¼æ[@÷åŒõÕkéRúzivvÿóßø®•ÿ»;メb×ÊU¶¾¿xb?Ÿ@`)ÿ~Æ6€üxþ<üg*ùw8 @„YXà&جüûOÿ‹´ëa£ùŸ»Øú›%Ï/𼀺؞­gÒ¾èÁnÖƒž6Ðú›šAº ¡k `öÃVðOÍLã©«&ËO5¹ùþPÈQßEî€+V°ìnÀ`%žSPíûªÉû«ó¦ßß7é±hùëæ6¡xÀÓ?/éÍú_P-›€ +€‚‰‹ÌAmn¶gíLÌ À€0ðüg ›*bþ?° âû2,Þ¥aê1‚€nÁ*„WúKr*0¬€ÎÂgN‰ @¯ÐïG\Þ¥fe2þA|ÛcÛÞö~ùÁ8Ä€3ÛÍG« tflðéíS¾Ñ¯ó‡ €­;¡°ß?¿.OÆÓ¥UŸ]Í–Ò“­—?/™àÍL)»øúÐo¨wy}hâÁÌÈ/²ZzÕ#mÕ톤âõ –^ÁD€ÓyA4Öï+àíWôÅ|F›Ê|”½7òþ•üÀêâÐb*xÈÞ > +êzT÷&ôÀ½@Jƒqß’\‘èôEí>\}Q½£ÍJ3Ñt¹*[¹j…zö¢Õ\®ª¤àF%¿ïäÊï½Bi†ù>ýÔß7]QùFÝOpBr•õZy¾¨Ñt¸ˆÊ³zžãÃ0Ÿß*—¢œö"’ T9#V÷ š}ÂŒP8´7ÌšN—‚+b°ÀÂj¼H$f*àB€-}Â.)âP0U`e°ùà)?'° oŒPJ€H¶Ã'ЍýggÐý;ß9œ,ÿg'Çœð`ÿ€Jx¹ †}¹1ßi¾ÙèvC ÿqßß`:½ÈÄ€÷ÿÜïÓ›˜ú'›èíÁäe>,} üc >Ù=hàî :>pìR›ÎšB|ÿáý}Çþ9Ý €áýáÆï·ì©åáùÑP#Z-'—íËÉ#Œô±W odðâÉ‹ƒò×ë_—¿þúëî‹Cªý‡¼‚À*òC;ü€Ñv"P±¬½¾/ÇÇ?ž™y÷Ù•·®Ð3Û·è?¢Æ@zD‡éwzòœ.ôkú¿KgUe"Ÿˆxü_õ€óGU^ñ×Ã|.ÅÔP9 ŒC]ëªÙýƒÏçga½¥÷ÀàÏø€`ð5q]:ì&Ü>% ¢>v\¨ÿõ K59ËL烙é颮/çcër*Æ !g9·¼Ìóÿó~>7«ªë¹MCWU}}sÀlnÝ¥U)ýo¸ás¿SºæÖ3S¹2s¹=95?uQø-AÝöùà³[Pþ¿Á¡@‚pGÄþ½fF›z€;WŠIÀÕ‡B¸;²îÿ%ÙQ­6yzÍEß/\ð…ã9äFåï™ Ùðz)ôl…‚e#ÎþV@¦ÿ~„X°QçYÀéX xÀPÐøjõAç™ÿ¹%P_DAæ->J;Uø‡Þ™…º/\{ÑîsåW… KaûªIþW­™Á €ü¦?„°çÆD\øU!`‘—ežÙ›õßêÿ9FÙ``›%­k”tŒl‚hòþ˜,J ­`Ê Ø,«`q[ºÏÿxµ7t}g?âì+JŸÉ°ø«SyŸ¼©W¨V—|{}ãñq/¯:ë®wZ +™Ë¨_€Vo¼SU¿j)á¾<\…`dhÑí¾÷òŸûÊ•‹1@Ì€z½/G^_„Hÿ}*Û÷e_Z|Ä}o1ñؼq¯·W8¶°ä†™/…\‰2‚ÅßÜ_­è>WB*^Ó&e™‘¡‰À⣽»Ü#`‘"°ê)"*  UôŒ&±nb£ª®¦¦eô¢6Ì‹ÁbQ/ƒçW•µXe M¿Šr + T8Ál{ÖäC€ €Äæ€Ôá—©•/'ŠE­M4£-ªÉ®¨ž¡æ?ñ´åð]ÁØ‹pòKqq1Xƒ*ìÈRCŠ+ÒÇ4ßaŽ>ù”Šþ?uçœûÇ–b÷Ïߘ‹ $3™€Ó€¨¹~pœž€ +Àö?ŽÓp„ñ†! qÿ²áE€"Üð–Pý?uœ1ý£†…“oOà2{›`”–àá»0èl@¸ýs*0êìù×`~`C`v´£Ãow›‡ %ºMBMôÔì&Ì[@gˆF¿Ñ8ÁÞÝ?â@:B‡©üïØC;ôìØ‡‘ +Äc€æQy´‘:š§· æ&Û/°?XéR¿¿ÿâÅ׸¼H¾ âO(ÔÆ•îaòm-j´ÛBmd í6RóÅøvüã™Ûï¢ÿë-~¦…ú@ÜÚFj6*ÿóÇ?P_¡Ð£O­*jÕo>yàüëY2$cγç81ÅTÔYÜá0•u¿ÑW “(† €5uMQ¥5ÕœmÌp×Z«Òq%˜ 8„éD8,ü¥ÿõOæ cbŒézêþý˜,ϧöük9 €D0¼›ÏÅò— èªs2·gÈsN}–Ö3ôÚçäÓ]™_þæÒ¥ÿ~#~­´˜vû|:2•ŒµõD"mÍ_d®ò€Àï>ü«™à·‹À­Oî|Æk ò®–¯‰(€[»Ãívòpá/ð‹<µñDÚäµ~ËãÖ/oy30×ëÑYé¯W j¹reƒª?¬oØ=~ è6Y]cœ€¢ÿ’E 6ë‚E_¿`÷gb€¾éÎo2ýY—wŽj–ÀbØ¾Ê V¶Œ æú™V¿u•@àÒ_Qþ?ð5…i€À†17˪¼ÏjýÙÄ|ˆ!L&’ΦþO8ØÎ€…EЦ™«dˆnsNà‡9.÷ó׋㘸aÎf ¬ü…W<ýžbŸëŒT¥¯¾ª"˜ÐXµ_oµ¼>ßR5¢lÛ$o<§"ÇÞßÛéŒûV?î´ú~¯©€ðXd +èôª„ZõVÏ·äß)eKîÉ›é/½½}¿wqdqA{_–Ðÿ ½ëÀlvÚ½à£t ³½m³Åã|ObtTß8Ϙ¦óed€ýyÕÉ4ýgU–Š«zq"0Èà½÷‡Š÷²AßbæÞ=Š€À¤$5åì½XF—”5ê*ÁIH´™Ô¹²$ÁŒ¦M +{¥ŠT ,9UÛGTt•(D}B@íµðxAçPøªøAXy ¸œÂøž:„Ì0l œ",@þØ À`€Ä=êÿËF”^µPé¡Vs" º÷Ã.³ýä‡wA€X°És4ñönt{ظs¡/wMúøƒñ?^7BbŽ@¯»+˜4VövÞ@ÃÔ«žüÜ~”ü¼{«Jî6wC¡òòür*T.ï¶1Øí%íÍÃû &“ Ýýä“/ºÉ¯Wº Ì@\è®ì¯ Ä+€6ǰ@ˆ ÀÑüă@ŽêÿÇï?Cý õÿŠ lŒ…ÇÌúÿƒ¶ÿ&”ª‚@•ûÿjí.'{Û6F^[gƶí£7íÎÇ0îôü˜ÿ @X eë´Ôê •ëŽWòzW ð¦ã¾¸;>yÌÅK`¬ãû—”ý Öíe²#÷2>ßê¶gÛæ!´áë±€´n¥K‰}Ìj< èÅ! ®kº<)‡2TîGò‹Cï¿?r/K…x$XúÔ€{²ß•X-je·$¬ýµze)G8ÔŠš W¹[ªTqJöæLp¢ÎŸ*k@TiáD•VE¹¡+zå€ÅüÚ¼æJLäQþçËš>¡¹\Íb±Òljºn¥’*V„ÖÉvTdÌ^„žº”•ểº ÿIxáDX#‰€\†E/ô‹¾í(£AED 1 ÂÉ2c ÏW¸×‡= ÖÀNN*DÏÏ¢A–2"Èád÷¶ÿc<€3ŽþyçÉ™pú‘¤¯çÏŸ/¼œOiò<?v÷Szn=?E@ËßOågs›Ž€Ê¬ºN`€ê;&º;àκݥ½Ü›¿¹q©ô÷×W¯•®¹©M ®'rd{Q-6?‘pxhqnQ/ÿÉðŽÉû{H˜`‡ÁÇþ÷/2€^³B€E2à3 ¸ý—Ð#…É(ÛP¸ø qºøt¯¡ÿ•”­cBˆ „~ç3>m3(Œ™^~6ûc^?'YàSõºjæ€ßìÔûB Úo+1vÔ,* Ijí P3ñÏjT:Øü¯ßçã `ÁŠ×Íì_± ¼ÁOsª!"‘ 3xP|~1蛢ˆ9˜•Ú4ðóòÄ&Lxü_À,€Y³s³¢üsígìð+Ëçp?a§ø‰a‡(¬ƒè·Ž¸Lüs¯ø·ü÷“/vûJ„ô«km ¦+Ê”Leii\ªæ>@ë?>î âŸÍë³ÓGðêtz_Õ!äh©j«î‡°×imwÆ* ïõ‘Å,ÀõÕm³}‡™ÏñŸàÌ|¹øzvhdèŒ{©þ +xÿ׋mr½µm³y<ªÚkm˜‘@õ…HŽ>{§Î¬ºu-F[M9sïÿ|Ÿjÿë#ï>ÊüÁ€@à£@ pïÞ$UÉL`u}K7TêºeMŸ_ÊKZ&˜ÐäJ¢Y‰HÅ¥jéšË²6A½TÀLpÏ-™‰k +·ÿðïU ê—¨ÿG +Zœ˜ÈÐ EͼâJº*.*à,.XS”Jv?\ª… ¬À=t9‘ 1¥Ÿ*0¯Â''a@à‘ßtfE»Îi½¸•Kiâ6€Ä‚¡¸? ¾d9aá €ˆ_NfeAØ¥„OEeÇ`x EØ;¥Bååè;¬Aˆ˜ÉCgb(qúcY_Ð,<9XÙGn4ËÝP¹I¥µ ÀSú2½âŽÛvxò¨^Hë`ùÇQ;¬ÿ³wË ¸Ó»Ív·œD¨ @º½Û&,0hÿa0È¡¦ëÀ>}ÝŽ‚Jþlå¨ZÙéîvwß5n5>¡ïcwt—z÷ÑåååPhÆ€¡ý£n·»ÚaÍ@ b_=ab¤ì¯ìÚ8i»ûž*Þ„–Ë9ßøÇÛæ@Ðè„ùVkðÃ/JÕÅŽ–’ä Jå¿ê1°˜ô{ õñã Ϊu>†Åyg7ƒ£ÓUÑß;©¾W]†"媆¡Ð„&ÌÀZUÅn@]SÖ<ê?!¿Êø˜0Âê‚ó?åàGpæ/Ç0ä7'z*u9ÔršŽ @.‘Óµœ|-•¿»>9ýQj”šþ°L`ÏçÌÍÊ{9È7é•ÛθK9©tãÆ¥¥U÷ââ;_ÆÄú_ 0§ÅÎ'ßž>Ɔ÷ÿþá¬\…€9€Ÿ|f‘¯^´þŽÀø@²ðþw‘_¥%[·òëIJ»`Ϊy}|嘃_„oKapÙ¸Ðú_XÀý§ÏþîÞ7¤±|M5;`¸BÙ5´Åô,¶P$9´Ëj(é½NÎéÖ‡lÂ!$1,³;å°Ëf qºSWÍ‚¥ï ì[ýPsÃå.ýà. Ä›ÐäƒH ]öÀ=Ð@øå´°™¿ìÚwz§>Ü÷y+ÑêÙœ™v¨sç¶bb4jLÖû¼ïûüÙæ=Ñѯ¹!!ŽÖa°#Æø)!Ñc&`'䆸ˆt€Ðu?€®2¯Ãþ4««®{ <À¡uM‰yA‡)ÿÂCH˜ì0i &L€@Xf¹.ÁÝÖ¿+LõßãêøðŠ?ÉÁÉž+M%Ê=R<¥Ý9öÀÜÿ¾lN$…Jf–ĤE$ –ºc0~è¿ò<ý"Í2é +Cº{¶ÛµZ,”U”e”¹0²€2C™g««Ôû5¸Nµ# ´k±Õÿ5¾ÛÚcíJ»14Öò´oy"Zdtú“ÑéÑÑO2æ܆‡ÿ5-èí.ËÌôõaI¸ž™oúúî<ôͰ ¢Ô<•J¸1Dà1¶-"nSÙßléí[;Ã)±GhŒØ¶ªÙÒ².[vnžÀÃÿ?Ì3kÎ|N·›³ñâ=ú¿è7KñQ¹BMC¶uýPÕ4Mñ Ýйh(ñÔÚ‡”ÿ ”T]ß’¹ÇÁu $Ôˆûá Û*ú- Âô›t»æ|N· Ú<ìФrì8Ô¼tݲ ¼âÄÝtPTuÛÑY¥(hú<ÈgwžÎ" ­..ÎÓ"çç\á5‚bHiѳé×*n®0ÌV, _€ 8¬À­@Ž¿ÃHó ñ$ õ~çAf °Ÿ3à<ÅNÿ"hxø¿È£¨ÿÃ"eàâF€× ` jM€gU§UM2#€å€tBeã~êúÙ±_ŒÕÙ°Ê›jÕ©£·„·Uy^8^§iAYˆShþôýü%Õ¦x…:§n*0;ö ùOz½§-ª×O“ÕúÓfëN@ÍA¸ÔªƒÉ\ó¨ÚÒ«ÉlK8ÒïÛaþ^¼Y9y þ_:@žxWª'O±¸È¶`àmÕ Û îG&<¸ýû^ÿ ÀÎè?ä΄|í¸B…¿ò²Rª¨„ÃF>Œ½Àóaᘠ~èS9Áµ»ÞçviÓñ— ”ŽñجÐ+ÚüÓJ +a€Mœ)ñW”ŽK¼c7_Ÿ"€¾˜T%±¸ŸHhZîÞà9͈çcÕÌ볓‰Ï4918™‹–´a#_Ú,™!ìè%ºUÚÕÌÑé sa"x÷˯þêÿ^øhôîÏ>2vJĦ±•/Éjá-à·/^@ØÿTL¾v€ %ðAÏØŒÀk¾@O?>6ïDÀBÀ.c}Ê5švvÝàš)ÏY»Ý z¹Õm{纮€o¿쀱 pE,1®îk!ÌÜAæv\w`^1œgS¿n>_?ì²:®LåŸ/_Óºáq$‹Tˆ­c27`§ç‹¼Œ„PÜ7E€%·ë¿êÿC×| šèÿÆÜ·ü¬ù»®ÜŠM¸c€]ë0á†ß¥+§@§gÆð%.øÁÿËÅ4+Ó<¨0ü©ìt:;´2ºg Ñ«D2Ϩæ?[ͬ"Ð3–i4¨*G" ° ˜ƒ€°Sk·+¡ZcŒ¾¦]›k7F§g6F2Ó¾…™¢#‘íÞãáììö?¶‡¨ÿ¿ƒ€Ã¥>ˆû|K‡ß,ÑUòŒE"ž±ØNÍÀíÐAR$ïÀˆ)µ¼\V£–$ °·>è£þßçóÅ‹3}ŸÇ©â›„TY«êáÌç3q;ƾdçu‘ê4^øÔŒ'òò²D¾_m>Vþ¼·Uu?!³Ÿ§ë1XG¹… ¡mè€zNuì}9hË–ZLPýµâ¡_†GŸ¬,BÚï8 âu'$Ç~¥ŠHÄ*Ay_7^Áµ?šÖ˜€‰>Ó\¼´° Lƒ†˜@Ø‚÷)ƒÃ<Î&t‘@`€¾!?û!¶sS*ç"èâbQ¤ Ÿ§ÓÂw®4Ò)v#€è¿Æ9{ Bê’… ðÅó›À¤7ÔqÌê™þWMZIz#8Ý$µó°@åçþ—Lùƒ¡ï ‡ÁÛ¯©ƒþ€ÕŸ€*úU [/o,@oõ ~B˜÷;Í7z]~ õô` %ˆ9€ßö7Á<ª5Ëõ#¶LXÉr®P®&½GYl +šÉð`9à=u¾Ëÿì·jV²‹¼`1Clƒ§X WÐ[VµO"C±±ßŸý¾Ë¼ÍƒÓ³+~ ¹²- $!¬„¥å0Õ~)œ—lú`Ç*©çÃBì,Ȭ ¥„ÖySå6ÙôÓ~ªö¼ÿ7JáÍ +•}E‚kXþC9H(@Ù”6mÂvÉ5Á€s×èÿÿ —›¸ç˜‰•ÿÑÁ„VœLØZVU:çó{f>·H Ÿ˜Ìi1-%í–b›ZɈ¢þ«Ñ­©üVÔoÜ[0Cñ/?þ« ,Ü]ºkF9,8:É{9uò-@öi²_L<F€ˆb À€›ôoÞs/¼ßã¼ÿ€9Gˆ|ñŽ’/+=[@—펖6æ¦×L´Û· >Ö5½¹ëÁàºÕ%@¸ÍR@1èîÒáüâlàN7ØÝgJ—ÏïJóXÆÚ _C®U¥ëc)Êþ[ Óe¯«3yí¿ÆDÀŒÜ @väñ¿ðäsãDü_Ý£Lñž@Ôn×["ær%ØÀÓî*v{Nt™~€ ¢»AØ"Øãqí…î’ÿ?ø‰÷(/ÀeŠŽvúâ¿·g~‡x'&ði$ÜË3¿_Ò$Ù¤n^’·´x"鿦™f¢¨šfÑ’u»rªB»Þ–U5—‡ íLwÙ‘—7îôR ¢ïÓê2ø’¥êþ¸YÜÓÌy¿¿¸ïÇU.ШôÁt6hÛ§ŠàЧt›>zªÀ º§ë¬p¯ŽM»Âd<ÜÜþñ­A êCîÿ± °3¤¯0ˆu€ÂžBç‹°¾ÐS#`/a÷H¡”æú”^tÀÚ™ÃÃzHœwóldr¦0F 7Ðm÷.Îopùcwð-uÏ×h`o«ê´¼I¸æZT]éSÍd³Õ|So²îJ@f«º¡€^Þè^ ^ qMÜ–¥£C'DPÕ›@B6àpÅor<Ð)œ–SÂ@º=¸ÁZoöW[uD%r+Yf0X/WÇ­ÁjËò¶²­lý4 ‘Ù•Ó&LOFp²'ÂÐÒ5Þ§'``ÕAPÀ[íOæ¤èAfl¨}6vv'€íßsý¿u #ú‹¥øÿ:À@r}€Â½åÃ#á¼lçáJê‚û›Øš âpÈ#€XÊmý7CûMÔyú l†°tŒö¿äÁ&Øÿ§|ùfI,ÜúŸD¤Xÿ8¬€'s“¹œ­Qó?x4‘˜œÌ%ª!k%LŽYp0ñ…)'s“ZIK'l• sKÎSíŸ@l°¹anh3¡{_}¼ðñO6F~v÷®y/ªl«yÉsoYþ/^ÔëO±ï'ðOŽž¸ Þ?N àƒÞü2Az¯DPáñ“ñÇGÂð$¸ vnënþ=¼„¦b‡ •¤|·¿'ØXš‰OÏ`ÀåßwHßø¹5}3#µF$ƒLÂö,…™8°†ÙG¼÷r¦cÒè†9×¢>3hÈöõû?¼…çU;jãó³q*ñQߌÏG…Þ¦ú,‡%]—GŠà멲išþ„©£ª®©†¤8yK×!ëW9ćÎË6Rƒ9-øT €}Íó·ƒi»X«¦ð›šID-ìTÕ ×_$ùXYÚL ÿ²èØé&uìtnê0…N>Pý±ß L‚¯$¤¤‚˶;H`ßž´Á³Š•g °3°ˆÍÙ0ýÚ¶²Hj[ +@T Ž×LêK¥™(Kʹ;à‡Þ0³ÂËGŸãæ.ñ‹œ Í7ÀÅðß2€VM U;‰¡=›æëTέ¦Þd{ L÷á|"ÜV¸YÏÖâÛt²LÂdÓjZY ƒƒj5K7fÑÍQã_å9€ƒVAø¾¦˜úCl=`Õ•f!l$½ç=¢IJ½£z¿wª¹ÙJ” +ÉV=WíÏŠ]‹êIr‘“NÐøc 6Z™@ˆ7~z’ü°uò”£«Õ½IùWSCcccðBÿÅÙö/oŸÝÞ¦£\*}ñCÓ•à Í4ÀŠÃ)€a{yy1×1)u±†CbgMÄ©ÒA´s PèÃs®õp +qiÇ€>%UJJE¢k©ÿ¯lò ²] °™b‹ —(‹Àù¿ÏúÿÃ9å\BÒx@í6ƒ³¹CVa‚dä·îmIælâ¯ùD"—ËOÝ ¥£tÇäwh~+¿5¢ÈGÍ„9ªMÏ„´ÿláã3£wï.L›÷LML¶0˜œ,\§Ø­dáÀÁ¿TÍ×Pø=}:ÎÁÀbäÏÚ¿ÇlÌÞërÖ¿†Š°^ñâÛz7÷%ç_¹Ñ¿»×bî1üwÅë®ÕMŒ“…]àÜ-—»}kûö5øì‚0,˜kω`]—MÚµ?¬|Öºù@]À»z®Ê® "Œ³«D4 #€N—È î5·åÇôý "RàÌ^ˆêÏßÊŠA ºl¼ClwùÏF„ôtrƒŠc" ~>nýçdDŽëcÖ„¸þ@BÈ'RK|Ç툱ý:>ÝaáÄ£Gžß<úÍ÷_=z46!ŒBSS?üù±€…¿~‰@'T¡Š~9°G@…Ÿyöi#|@:d8hxÂcÈ +h@p†É?„ct=Á‚±â7|ŸD§©©ÿD‹/]s€Ún>×7µÈÒj÷}àÿ=|øÍCß¡ùß~þ¿úâñ¸¹‘‰x"Ï2„5nÁ ­íðà *ðxE;˜ŽF7â‡ñ>Sž7—%;q¨kŸÞç›O¨ê=3_JÄçÑþû–Цlš¼¼ÅKÙh&–%]ÓæGÍCUÎÛ¶*ëÈ ÀpÎ@°öÕm6JQe·¹ÄV`dó^§šM…Ÿ@…NØA0ûè’¥šèMå„ ]¶UÓT‘9¤«¼õçDŸÀâ"FAá|娸7ìO4U‹ +\úè+ßÑy¤ ¤ ˆ> Eú2ߟ­ ¡PD>1ý F(×ÏáûC@…ÎØÒ"­qÐN¹V<ã—xðØ{ÅB‰…ˆ—X\BÈÞÁ(þß À M0X\ys’uIoþ[N’Ú~[T¸³ÔÙ7ÁÌ:Xô£Õf6 '÷`{àmQãЀ]åµêŽØXVÒ²X[h9ìè£ÃP¡É;ÿ7TñéÝëÐÈ2ÑÀ[=íÇ +€ÎõgéµI žô9J°Êôâ-XoV[-‘ +€à‚f¶zZ=q0ñ?å ¢à®œ,r"àI-`QT¯Ö‘EèM:²tïwϘç¿ðü¢=÷‹F{¬vv6·ÓÞ ]^à¸Wù¡H•Z´ÿÔ@U¨ì/‡‘‘|XÂÇE Aùñ‹Cð9ë0û/ÛTJl ŒæŸªÿ&ì±éc ì?%$ª¿H  _bs 0dØ;…Gá`p´ALƒ -19øÅln+Ÿ8Æ_›0&g‹³„ ŒìæB o˜yudkKÓ¦ò[ZÔ47¢ñ¿*Ù}_.,|™]XúÙÝ ÍHZþØV ¹Äu^6|ZýG0ýYüõ8ÇTßÇY8þà±»ìÀIŒÞ!ÀOðÞã'Âð]‰¥„x”]‰õlˆãzØ{v§®!7íž™o°Šë¶·ß6¹åÚB%@¯â{XȦ:àäï\ñöxp°&Äû®U˾c¦à°Ëp }ÉúbÀ€· šþø3EïïB€Žàð•.׿äŠÿ°š/uµ†"* ¡Éé< ðãþ~ÿ%á™,<ÿçÄä¿ëì™èÉXgiˆ‘ DSScTý¹Ö?{ôÈý°úè7z€€À[ÜàŸy¾Â,€Ëû¼Ç:©ËN¥F-w#¼<òQDé„‘¼ñ,ã©@ ɬr‰÷4^†BJchu3.ýB +ØkTB_ZðnLÏ,Ff|¯é‰]v¾¥ù;çïÜ™ÐÔ}wþf©Ïw˜F=™ÕžEÆØqØ¥°Ó¤uny¦Íøáh|Þ7?ÿùRQÖ墖+ü yyo¤hÎÇý£3¾¥¥8hT€©&ëÈR5øõÇ5{ËŒ'P«ãþåŠ$Éj~™ª¿a8R¡X¤î½¨Ê +/;©¾ª*'¡ÐKªÄÀûÔá[ºMƒ€Y’¤‚iîÓOðUÝ‘é]‡P‘~º.&õKA¡ÕÓYˆ]é¤ËF£°ù‡%0 †ÀGØËE‘ +À1°„"0%‚Øb(è”náq‚!Ö律ҷ¿ n#0¬HôÙì€Ñ‹høKƒiN&8_¼tù¢—± ¸EßÝÐùEPWÜÀ›&¶óT½“ÛÓGŒí1ÿ§ªNýz®€ðWÝÀŸ“z</»ûQÿ4[=aA3©ˆ€ß¯×r +¼G°pcà:ìàã€TЄ_0Ëé\³ +Ò`ÓËÁ<¤'X@€¡ß[­·ªýõV½\M&ËÕr ÀAë¨Z.Põ/xšÇß—Mž$߸®CÔôŸ,âBÀ7+'+X4!üÈ];€d¡®K{#Ÿxþ‹‡ÞÚÿeŽž8cÿHOšX(0üü?pðœþÕ`Eñ/Æ)!z†¥°½lç—cùÔ…8„îÀðT_R)aAôf¬TÙäÆ¿Ä«©Þ,…d Þ3÷ŸQ8±àÐ'PÿCœÄG\Ð\& 0™Û›µÕû˜Ì&Å{9pT;_À@Å–_Ë«Ÿåî'´½\BÞ-Æ£T ¤‡&&Ø)šæh_>¸ðå_-|9ºñ³»ÓÓ£&‚›t3ÆñÞd.øü{N@ý¼8úúÁú¸~#À$Î?~,Öþï?~G€®)€à¾ÿ·‚€ÿç]Ý™qï.¥Y°Ëé«0;Ák›s-nßß?ô-ùÍ™ißù„,ÑÄjŒñ–T<ˆtЍÅ2£}þ¥¸_›ïóùeƒúwU+šª ã¿ÄÒLBUÍÙùùŸ/®ÊÔª«Å¢¹¬™ªªEõâ|BÀC3Nõ_¦ÃšbÈË‚lÃR‹{ºê× òÿûW#®äÞvTÕÂÁRuKÍŽ%y¨ýÒHÈQ-×Í\ÑÒ iÐ,Õ21 ÷O»-| +ëû |eïnÕrØOæÂ +û ×–¿’!¸9¿® $Á 2ÿ\'òÍU(0ø/ª ? › e8%Ùl  ˆ%{†Àe*>O_*Òåðåy*u‰a~bÊíÿÙðù¿iðíé +ûå²r?ÉK–x“ØÌcàm½AF@¶Zåø>Ð÷8Þ}O˜ÆßdWÀ ×ycÀÜ +•üBÕjêUMÇrøœRûoÁ [už²”°¿þ&\~û½ýÙ§Ô¦·êGÙ¿«ŽW¼G­r¶U('”’åf¹þØÇЂ~å1:…SúÍN¡<É.f_¤þÜ7ø÷>tìÚâˆ3‘ÆXÛ! :1À + ³vk;²AE>§jíÓtÝ 0ZŒ1Æ/šq*û桦ÎÀ0U)ª.[ÑDQÒ‹~Béºö+mYǸ*ÁX +v¿„dY—tµ(I%j®Â|¬ƒ«A&©' ÇÐuÕR÷u‚ +HØ—mÆ&Ÿj6*¹L‚ÈÒ0p$GßÒõ Ôi×X + +òž¬¿r°€­Ö~èßÙq'Eå\”ÿ´ ŠÏx((b;)È:ª¿¤ù—Þ²X +¤*û:ûù^ Óñè½Àf«öƸS ,#1Š™]ûŸszpúªÁ êý‡ÜP°ÈA@„Vš§ÙæfåW™¹g¸ÏË€$”üUSv*çutçTF1­ÿ?ëYx³Þ7uvô«{“Ž—‚èÔjá#X^q¢·¨_·žT¡.hÂ/â|g¾é1 Ÿ^©K&û½ô^(×ÂHf’ëÖzËk%Ëõ”},N°AÀ š¥¢¿ØiÿÚ·3ˑʯ}O±¥´²òú‡€`ðì©$fÄ:: ÍUBô•ì°.™¡À„ÑPrmRb"•]Aƒ/Q¯†Ïoi“ðœy  `ÝO7 +€6±¢T0ëêœ]±$+€Âdúzc61{ö¾?¡%r÷¿Tó¶j„:¥¼˜È³¹ÙûššÈÉ»“¥€6U +mE%SSG´-žl‰ÀÇfú£¯>^ør:úç HÛ1ò›’ªÛª>ùVð·°fÀÑø“¯]ÀûOÞ[F@¿~â¶ý,þ€ù¿ +À¤@@€Çããý-ï;s. @èÜzµlnꪮMÍõÜæ‡ÝæyïmÀ€í ‹àÛHDû«}k·}µ `GŒØwD­Ou7ù;8r­û;"Ò*ÖqwÃÝ@G@®þâûQÝSÝ’J¹KÁuR«ӛ+¬±[VG,¨žïrõ7K*‚®%’J»qÏpXßûö”¦®OIÀìFØÝu™;þ¯ÅJú^±ðç7ôöQçw=Ýú¿+Øüýnx¡ƒ‰WA¼L_vX­ý²]¡¢cDÂáHä@j|ºñÑGŸx`À0àòÏ:'ïÑI-½·Ž+yŽ‚úù~,ÂCϺk~¨ I脨íOêØ%”ùÆ,¦²FÀËjA,ðn¡ùGÄO³À"½~o={T÷&O¾®Ž8JŽ'[Í#«ì͵Žr­‚5X¨–³eBMŒZpLÂTàÄ"“€NO^Tá +™àŠwå[ðÃdó)çà—*Ôõ‚ü«àˆdÚ÷F佨üJI¯œ_¼þã½7ñ†=UˆúîYv*!ÖH5Â¥åáa¶XC@pW…5æ¦`òd“i°–6 1€»TbžŸ‚b@…-€›®_耛ŒØxŒ¦~2@¶´g¿HÜŸMäî%rTÿj^RCkpÚ’a˜õß3rƒ y÷Þqþþ²i˜ÚÞ–† Àn>?2ÀÂôæ'}?Yør!rwá³»÷L-¯b1 U/\÷ø§Ä÷‹jÿ`ýk:Ó›`Àòÿ] × è@LØèNB(gœˆ‹Ýsl®—nï™ê&ÖÎ û1ªÿcèÿÛ·»[_>ôw·¿",ð#€¹[b0×9,´‹±~•Mû0 _sÅ|kl lý`ÔÓ ¹þ€5z<€XŠ#­yùï +Bâ,/\f à0+ªyÊÝ,m¡°åžÕÿˆÉ +¹FÄ‚e <µvø©ÄFA¬d« öî {O7ô—îfþíº÷ý1˜DÌ1'àÑ£ßD~ƒ5ÿØXä7þ½âe0u…É@àFÿLпáH'!%СÊRäßE£¿Î,KáH¸¢¤¥ ½<û„Ê>¢/C«««™gC€0ʸë@·±'ϧÜe•eõnŸ¯oaf©/Òé¸ÅÒÛíÛߣÜŠLÏßñš¾‡>Xø=|x‡ €ïŽïÎ7Kwf62Cž¡±!úAgm÷&n‹T€m<(º>Ñ·nÅ$#¸WÄP_£n~Ƽã3mê˜#ms‡3³‡3p\ò›EÙ¶‹¶^ÔU-· ÍÄ +ÀOˆ!:hÈ·T]6lkN¦ÈqÚìÁÝS¨8ë–ŒþŸn·¨ú5GWý9ÖòãEÕ©S³î¨ûÔö'8†$Œ Û²ZÀbÝq‚ößUĶŸ —Ž@®ÿ˜ÀÜ?h‘ƒ þCÇO@aê=Ó ÐÝKLG€1Ï;(,• †YÈÈ:TB’NØ@Ó)E]Ff>-Ã÷_Gìàð0Á¬l`ˆ‹ï*ˆFç/8ÿÃLüÃ꟭‚.nnÀÊÊ µÊ§pô}Ã~zo„>êu3ÉSvL¬j= Ž€PÒûŸMyx?>]çºÊlÂz«IÅ¿Ë ì@° PÅ{¡i&a5$‚Ðîsú ·Z÷‚yP¯:­fP@²Ú_¯×›ýÉr+ û¿²·UhéðZwŽ +Gô9 …f³Y‡0ëFŸz³ÍE/•~ï‰w¥)² ³¿äßõ—H"ÆÕª—_%ëú½(“ö¤žØ ¦_d_ÿ«ã®½ü.(½‚¥5ý,K¿H¼¬€ÛTº3Ò.iªêVªãèn¤Í°u_e3¼)éöc€’ˆØÀÍ@H@a@@ \ň(õ£ –…U¾?;›¸ïH“X¨[Çrà8/«f^ž-ÜMȹĀ:U4BùÝRlËÄ@£—‰ãR~kb²£…™ŠöåÂÂ_ô,Ì.Ü¥Oh[#ù-©”WÃÔy¼µø§#€ß" è1ÜSM/@X1ãIïwý¸ýÇ +àñ×ããGO½Þxþ.@¬Gýë¶û"h®t]âæÔ½}vvöûߟ¹ýÀnûÖí.€í3ÂÛTGÜ3†µnLШÄw}|PÛy€Op‡sÕûôõkn0ew ¢¸†Ĺ.1 #\Ù¨G,`2~wPóRçÊjÁŽkE(Í–çõ‚KÝ»ƒ“{§˜A ì´Û—Àæ„™E~’ß#ÞöïNôÚÿ) ðta„›¼Û=C¸áfÇb‚í—&*ËP¥IàÆ½O>‰F##‘±¥Ó‘ž!hzšêþ˜'j`€0 "™F¥Æ3€¡1‚ztWU:µÕ0f-!{¶ïç} w–6â‘Ê5Ú×°›…kÓØý#~Øôù㈠°´ÑhŒe†À€S€í¼o3/Ô}@lÇ*#N|´8¹_P¹ÕHb™_–TC¥ºoèæ¾Œ`À-k ǰ©Wµ¢†~€ h­½2.³ÂžE~[ªjØ{ª­æö-µ¸¯ê†ƒDŸWœè,è–§¯2Í"[5Pˆqš¥J-)tÐtë{`‘0ÌûúWº$éÎ+[~ÅZ>Îúãè` üÓAÌþ/†ENLƒ^l0g àf³¿mȺÃË…À9¾†© ©a)HÿoCJ_ §d d€ ÜV@Bb{@ø °£r&¤1òïå¼ a„‚ÿ7üÝMÐÿ­¼99=9áî Tú¦ƒWÖì'Ùµ™Õ}ÜmCàÕÙñŠ€yñîEŠ—õÿt^ôÿ-+iAM@%ßJ:åê~v¿Z¦ÏXÉ}|²êT ,8„ Y§–œ¾8[Æþ?Zú£fö¨:Þ\§ËëÖ¸SNŽ'­B}°UÖr…#«•¯ (Ébž€ÐÌRɇ ½œ4²fÙ¬ŸÔ_xOžžà·e˜BøÁ[N¼…`roÒ»çüïú‹t6{þúâ‡×ÿç)±`O0§ †!FüÃ.sŠ;~¶GáþeS˜KPÙç­?˜ô*Uèm³„O ö·ùç\ÌMÁäþŸë?Ì#RÂâGÁ@à`w0988ŸPƒ@(/å·ÔO¶ò“³‰Yvïà €4ZÜÓ´--z¼»›Ùš ÎbaAÊÿÅÇÓy0ý³¥»£¦©Ḛ́'Œã=½°w}ð‡õd?‡õ?yð˜Ä~¬?~€¹?&Tð¿÷Á{\úQýÁÿ{¼þ`}ßþ®ÀÕ +àí½¿ðº*ÿÔþCç +ÀïÝÊÇkw“ 0à–€9Xµc¾ÕžÛ&Ø’!›²Éÿ"úÄÖÍ…Ãkks;ˆƒ|„á¯ôf• *º¨öî7wÄD@Ðþð ” +u¯õ0@—IÛ¤âÎ buæ~¶#â†bÂ6@XPÿ_šryŒÂ¶ÿªú—ºËO xû¿¶ƒtެ&Æ~Cÿ£Æ»[þÝnùßu þn¯ùïžÛºáäí¦nt´ïP‰!˜s™¾¬J‰Î~rn„+Êïž! hú£gÏ2žvx ‹ìBJÅÓhdV:±v»6W B÷…-ôyifzú£LPŽÖnu›þÛœF(à™HB˜Ï¥%ꟉüóñoîÌ÷ÍøfþÁ7“iŒE††<íF j’Û®š¥v„9$¶=;kµ°_ŠÃÐ/~èW—è¶æeMâ®Ýз&t†qª÷rqÄ6,­š i¨K~º,# @µAû7è|<>" #=B@H2d i°Ú¥v^µT >ÿûºm!òo_•e}_v,}ýƒE#hùÍ"2 Õ@µ×÷è:ÇÚ·7YÈÞ}8±u['ð êAÝÂú^ÇfàFú,¤¢,¥¡”8Ùzé”~EC#LÑüå¥.‚d° uð¶ªZøc$eXÂw Œenò‡‡ùkå * X¼dæÏ¿ƒø/Õ›ý_<ï…¾x}1|à €8Y9YNÔ~æ6½ìÍç4…“Ÿí;¯Þë k $ÓèZHöaA¿›ËòªXö[ÜÍØ¨\°«L5¿e•­2¡‚²^v +ͤÓÒ­,€…%@f…&ìÁlUalõ%[åd«lõ#` šK~QL>†[a«Új¶áí뵓M$ò8ã4{êEñ_áSø¬ k Šdà§6Ô&`=éužz zRŸÜ+½zöÅâë?Ü þ?¥C‚X Õte +¿c> Õ÷ q솖–x¬ëLõÌNy% „t +3àʦ0ü«@‘ê²Ä>€×ÿ®°ðJý8@nr`pr/1 @®8韜Hì©Ç”òšjæóêg‰D"ŸPó¹’bL”J[‰RÂÄ`+º ÀĈ¶^ÈÛ÷ýtá«È48æ=v –Ž Øèî]ŸðÀõ~ð`ýÁûÔñaÐÿõø:ÄÿgšÿÞƒÇ]À'ìô€À×lXqò.Àó˜¨e»Â¨KúëPãæ°˜h{PÿßþWÝÿÕÀÝo³`®ÍVœÀŽ=h¤Eñïë…ù'arßã/u} ÖýÂÈÍèb€€L踠€ß;WuŸ)„ Àœ-‰À?€³‚„1!?vcnEžëEsɤ@wAë·lƒ Às €* ÿ1ÍJ¬ü§ÜM¿ÛëïNõÞºaK$@ÅMÿ™˜€ €Ø¡“PEþdDŽüjcô r©¤+™2™ž­ E"™U¬ÿ#««žUúU¤ÇbÔúoׯj¨UÚcøŠ ‚¥¥éèF4˜–‡Ú.íƒyØå»ŒṖx „<€™;ÜýÇïP§¾tŸè›ùÆwgfæÙ*AOmª!¾øöÕ"`[DDàºCÿƒ°Ã µÛÑâçó‡~ÿÒÏç'©³¥ºjË5^,ýq˜þ²_Ö!È×M¿mÏk65ÌT©‹pùGdy¿8)o…ƒÉ`µ>ÒVêTš©‘7 ú·©áGóíHûE*·*~Æžå?}Ò*ª¦ï¶¥&ègB)m¿*+§Á U´¡ô«]É6 t"L€-¨ìPjQ‘$Û!H ÔwJZY Ó)[øÂHÑ!pÀÄ ‹ÔbHÂØ‡¡Z¶Ä +\ ÒX2XW\*é^Ò•ýG§è(ލ‘÷¸¼¶ü~.JÿððwçÌd àÅ ¦N‹‹'‹'Â6/Ë™|˜ÿW³o¨ü7qâð€¾*üª€I¸üµêøÙõ—ã|“ýÇF>ÔÆsì/^-nü«Ùrµ„’ Ì͹ºï-`’OW8Ž d Õ¤SÎÒy§ÜL6 \žËuœUœ#k=yÔ,'Ç­Ao¿3žL–“GÉd®:^¥OTô$ÆGÙ¤° RŠÐ/òN_ N€×[ý%ï)êV?L +! Fx­÷¼…\9é fÿp“Às$Rtlš[cuv˜ã¡'µ®AêNLÂxb™êö20€¿OÚ?m¢ÑÙŒ…”1ó/"û@©kNÀLSþ„}àà¤1yð~b6—˜L>¿ï—Õ’Ô¹ç˜F.‘£K¥Ó|þ¸”'<Ðv‘´¥™Å龉ӟ~üç ÿ[4s÷§K£QSÛÊË[¥’ ³·g]ÿÉ'¬8¢®~üÌ?üŒÕÅà‰ þÿíû +€Ü` |Y@Gï|ðÜóåÿ­À@ÄØ·1¸ ¯ëÿàB€·5`"@±[ø .´çÞ&b—Žwæ‚ ÈºVt„PäùôøJÜ +·ýïÝ~èaàšX„®^R|1&ÊÈU\¿Þý©BàêRoü?W¢v—›x‘ÝSÚÛíÙÿº Tÿ=žG««\þ»º +—2(˜‚îÄÿ{v(ñëMÿ™`xà +(MOèËN%\{ÙIËÑeY 02¤tR†ÚÿLfãÓO3ŸEÆè5`­64–" ¶ÛCíNg®Q«Ôp +ˆ¥Î;‘¾¾¾Ñ`pÄ÷Q{ûšüÿÖY»‡ÎÆÄb¿™ù{ |ßøèíá‡}ÿ0ãï{ØsÀ™éÌÐXÄã9hœ‰oëÞ ìð +€EÎkÔÁL<¾ßдDÜŸXÚ—µ¢fSûÈjûmêãåDQµ5êÊý uÙ΃ `ç¥JHÑ©éWáXd cÙ–*A‰Ú}f꣜c|¯Ê:À‚êØjbBBT…u`[›Š»¡ëfNÕ9FÀRMÍ´ÛÁ— FÐѵ¢n«Å{E•½~GÒô` +’­÷lñ@̧[º!Ü}©ü§Î‘'V€"¹ÞïAHþ*Šøƒýچ镠lHó è+TÒ¼S¿ÂB$íf*<؇P~à„á äÂ<s¡ÀðeÚ5w¹¾$€óaAõ>¿8¿! àõ·ß® üƒ*w"L}x- aê¤].y1°¯[T1­jÚvÇ¡æ€$úRÝôº¦þ¼È§«ZðÉ2¨RÁ§·‚e• ä ”›e”ûªN?+=I×WuZ2ú½ýõ–w¼y„Æ?YVÊɤC§­2]l $sÎ:}ÿQ²JB¹Ù_¥¿ y’tN„°éšó€5€Ù›IÄ ~X§_Žsà6П| +BµšƒÍA6»r#€p€*/ŃÐ5fM‰ù?X;›ùBUPî]çÞk²Ùðn@1‰qœ ¹Äÿîî?°)θ~@‚þ/ª¿{°eàA8Yž, Þ3&ïÏÞLÜà‹ÁÁ­=LR$tùyýo³ø¢UK”Ò€cíøž_ëMò Dã›é>þr4:½´ &[y©¤kÇ*Yo‘^xŸ¶ŽxpôÛÀçcð„ [a@1x¿ Äà‰p‚ ÀÑSï‹“ówz‡N¹y׈ÿxv'ØêÒ\ç}¹–â#ås°y›؉±1ðÔ®ì» Êº|7¹µ¯ÏS.§±>|õuÐétð[/k‚è áàÎB)—âÚM ¼ÿvKS›;»/‚xˆïÛé²ܾf ‚à&'¹¨@lHvw] ¥Øþc›îßêØDûOìVX)È«zá,.¾èžv_n ž3{÷2ÐIÅjµØå¥¡—ƒƒƒÌ KÓŸf$)³±‘‚û_¤A0€Š~„ºòô ÀN'Ti °§]ëTjí65ì5¥ÓZøOÓ£ñøÌÒ³ð\ûÚÿìV7.òÖÙÔ}Û·ÚCÓ3úþ=ˆ€P,Ýù† óóK3È$æâ[<Ø0f…ÈÚέm<µiSóÏÇý‡ªuWGl[.î—mBäTX+ø—áï£ÍÇãñ_ĨÛý“SŠ<ô‹&Eu94°ë§,˘Æ[ª&4…-›:s]—ô"—}K6lújý-Ú@CUƒ†ãP}—÷M¿ˆ ƒ¨!ÌAûy•nø” ñ+Z€À0 zAØ'ÿ|8v^é¶ó +-?uè\z©Ü3OS‹‹°ò±í§+Fny‰E6úPØb“ª\8hª­p@P (2HÇëT +Êzš³ϱWœÓW¦Që—]ÀïßÑ…Kv¦+ypƒ$À?|»¸âÖHú›0óñ6ßTß ›7Û—îMóƒaìÀˆ‡úS¹úcsÛ>Nùɲ. ÊÁà³êT¬1ηÊõ²Sc€*¡«P("Э/8ü´œŸâ<\Z^vûõ–a˜¤Sˆÿ³GUNL&× a” Fxdz-,$ +ÙVö´zJEœþ¢*ËêYªú/šbúϦEõ_Bè}êmÔ½HH2ÿlÃÝzveñfõÿ9§)ÔôKèvè9 ×’ +›˜èÖDwBÇ® +Ø|h+¹)€›±«þžJ¾ÂµŸ:ükWpýï}3wàÖÿTw6ôãpÌ“‰Áϳ9Á¸?8¢RÏCSµ‰¼üÙ V÷öÔÙXÀÌ—¨æk£LÔìB`š£ Ó›ÿ©ï' _Fîþä3mååü/ZÞ=uïmPGÀ×9øhåýëñ§lüõ‚éÿãuLÿÙ ø»xð`+€~oöÝNž{¦vc=+»^ýç„BÐ316uÆ$€«²ß]l÷º¸íä¹ hnGøý#`ª')¸–¤'¶ýlæ»ÖElÌé5×ó/tðúkÍð¯]«þ×p@ÈÆ@.?–ùýˆíÒƒÞc›b-ÐóbäÐÝÿÇ`PAA±«òߣëó¸~­þ»LþŸ16åy4¶ê™û>†ßC7»É‹„RèÇÛ×82‹‹†Àÿ™ tPZ…~£ô¯ À^$QÊÁÈòÈËåƒp¸æA&ä0l×<™H I‚98™µ_†æj ÏPfu®Á™Ìˆ¾ô•o#úIãìšî °§lŒµ ´#3¾ãóÝyè»Ã:€oøôa_ßR|:ãAáêXÃì¸ÒÌ`F(TÇcRû_ô/ùüÅB¼hI’|˜SmIÍùå`ˆ‡Ýtd¤Ã¥,«#á’‚×”aîÏÃè° ýhÎ C¯ÀâoóCfr½¤Šû‰"‚ת£º.ü|¥ ýʰ¨ÿw,,Ô=ì{lýÓiè ý¨ü–jÙA›ðƒŠ°`¼@ âHàBr$êð p¤âEøó¶ä@ÐOÍ9~{øô³¯?¾/ÈjºB–Ò``ãËá +œ&`H•èªmô{ITË•}`ã<¤Ø¶"íô¢bÈ"8€=bHì)”Ây#|>ü] pî.ܾø;ÁÿãþúF.€<ÿve…˵Ö>UÌïWÐl2ŸžCz à0Q“K0ö[^+‹Ø@þ<ºï‹ ÉCAµèç +8-Ìú›s«@ý=üB¡š³ +a'×,°½Ÿ%L’CÁðæªGMzwWǩޗ û·èÜ E7QÀ4 š«:GÙuoõ¿Ó×e©G60Û`àe³bNò‚äxâÍÖ³¿ä_ï)õ¼Pá÷¶ª­¤U‡ q6ýí ë?UlnøÃ•뜾#h€8  ÿSù' 0 MÑ…+ü¦ë€žž®”6éz>}ÊïPê{€î÷Ç +Bf?c'ÀûB¨–$ƒî +ÃÀl_“¿žMLnMlMþl3`î£éßKpýŸÈOØÑ¢æÆÂB0ú“……ÿ:Yøl‰@1Ÿß’ @A½îÙ¿‚8`Äùô÷¯?x+ È'L@`ýÁ:Ëß{Úÿî€^þ¶«+€º÷eu@l®Ëà·Ò?wð{ÅNµÛàýÃ8Ö¾ÕÞ +¼îpº=tÿ;sÛœ›sÅ+ÀO∠‡þ UwÀk€°¹ +uùW$×ë}çOÌ®1Ü}wû¦âÁNMqTàa¨gS¡kÔ@‚kø‘(&òn÷/§JW |ü=»½ñ=ý•®ŒanjâÑØ£nRPI…’{Â#7nòçü炪ׯQèknþÏ| ã7:èW^Âï€SG¢¿Ö+T +‘Z8¡CÌH¤KR¸R+Õ4ГS§Ÿù4Ó¨ÌUæjb@*–g™L&(MöýMßR´Ý+üë1ºí"‚³±¡1ˆsž¾®à¡úX@èŠÃHc*’‹xØSš­ÿÜ)Àm<~Øjm§}1©óŸ¤V¾(ÛSÓ­ùI³hHôO®{ðù“Ð1Á +G‘ øùl¥ý%NVýEÓ4UyÙÖ·$èê µ²?KêISÕ=ͯ¢,Cª‡¹¿ã_Ñ»n-sÓ}ÇÒ‘ê«­„êÀ*¸`‹¸XñØEM—·tKSsªdÞ~š¥ƒð»é{¦T§õWðÀé“)nÚ‡éX„há€È%Àø”í‚B-uK—raä(2v +ûT@v‚ôgÐÑ{Y¦¦ßAÉ~Aÿ{*û¯@„£›Ê¥Ó"‰è2ÀÁ]:ÀyJ‰ÀM+<È"‹× ]?€‹~‡©€Ø¼iòi¿b  8SmRÁFÁ¯ºŠz¨ë€#¼o°ÀL\@ª­:µÿÔø'™«t‚ÉBµ@ï„ +Bø‚,P†ôÁtM¹Zhå¬V9yDøa P®Ó)½¶²ƒõê ·Üh’Íñf+Û¢a"Ô‰ÙÓ‡5§Õ[0¶þ¶ R£%ÃÝ@õ›–aKºáÐ/Æ_<)JA„*âÒ 6aŽG oÚ`ØØû?gf~r€Åùwò! Àå¢ëLå?%h—ç‚ýw>üÝ뛸OÿáÛœӕfÿQ±fKÞ&*§CýÿÁxÃ'òECϺ§å†þ€´ßlZB@M?A4ßTn½"Ìôv„’:%,$ !€…ý?x¹d¡Y(´ +e½ÊóºñAg®ô&éœÿÐúcôŸÄçÖ“VµÐO°À9ª®;ëN½Z퇃‘€ë¤y* 0Û8irÐI—~I¿ªpî÷&›ð¤êߪÖëÉÖJóÅÊ9êÿžÄi@õ‡Š«RüA Ä8 µ6< † ïBÙ©¼B” +_àû vfc@œÄQ‡©.Š™Ôa…-Ì1\úÿ[/pø€‚:YHLª{‰ûŸ%î'r&‡ Nª†”§ûâ8ohyÕ‘ggÕaþGH‡Ù 1¶þAý•\œPê.àDç'è¿ä±ýoÚ½ ‹@ç’ý€é.xù2,_*éÊÁËJ8‘<áÌÙ€«áp-’2ÓŸR¿‰<ûh53VQ^Òÿú Ö©µk‚)4Úáe*zñ‡_õÍl¼l»N·oŸµ{6€gžÌ*a…³gÓ}wæïÌ<Ä€;>ÿ|<>ÿ^gf ôÀ}ÓÔÿ[;<¥SœTñÄ—–rZœ0ÃŒ©ý¹-]–‹²ªZ–.NñcÎÐo.6]gªË É…ª:<^\¦¯[¾?9O_£Ê $Äþ¨ZQ¥ç-¢wh ;Ë6й¢VP‹–nX P¹/¡"X×馘ý¦Š €ª«VQ +8Hl@ˆ$Nöcç?Ä@ H0Æ}àý§%-ª?aÉ–cПO˜j…~]Kµ ÄX6°yÜJ/2ÃaDð'‚_€*ÒMÁ«8„íB +¡>TÒ/… ƒƒ¯Ò¼¢_ê|˜xcößÅwXôŠ,Àó‹×7Š €Sdñ´§*ê5üœ&ûð&àM“çoÞ4éÓ°ó>~"8™]ß,\Ð ð¾IÂ/€J,vå$ìú¨ô'‘.\¶rk –S([ô jî Î@5WÍ5ùË0å/HÒ7öçZ¹V¹@çÊ­Ba"À¤5Xÿ¢ZöTÙ 0Iކx[Í~ȼiŒ °Û¨žÖ¹é¯g™õ~èû?ûa&»:€–·N¿^½žö®¬@øúFS$åæÿ+ðØ¡Ïð„QÀ<(e³“•z*úS›yhþóô +D°É¾€8àÄ¡k€€8ö—nã“bùߟX^/þ€*&rî‹Ïƒ !¼ŸSó%¬J†¤å±HLì©[Ü {rKËï‰ ÀnþNQ31³5F¿üé— £ÑŸÒ»%l°e”èF8ô­ ÀÌàèè·„°à–ÿÁ{=^Gßÿ¾øs&0½~ðø0züäk€§Þì»^<ç @LÌ«{å÷m> ž>·¦æÚ"ú–ë8æã;Û½@·ýÇ w­û×3Ðq›¤â¾·E`·ÈwÀNˆé!w +ÀK}A\êÍþ…æ¿»#–Anm¯Lxa Þ6C]~  õž11`£à 6ÅÁÀb¦;l··@ÿ'Ò}v쑪 „žÐ°Gîà °øŽ©5Ã`¦.S©ËŠ‚@èåKÊU*Ê¥r0d×"hô“ÕH8’9#$èÓ̳L8\‘CÏže>: ;¢ÖÀ²ÖnApЀYP&]¢òßwÇ%à-wðv»]ëúžÑ E?š¾Cu~þ¶þ úfâtyÞgšg¾¹ãÛ@ÁØØPkÞ!‰úßµÚÞéPý×*Äç}ñbJãh»vîØö¯Š~Y¦Â «hú5‡•ý äòÊ’mÀû}êýýTJ‘Æ'a“_AÝwlYgÿ¿@P)Õ}B¹">#:ï ýs‚:¨~–š+n!_ÐÚ—QÖ5¿ê8Z‘ºu +AEU `µ 'ý`Æt ˆ£8ÌxýQ—žÆÄA$-"ˆ>b!€í¿,i&Æ "jE­h‡è{‹*l„àÊŠˆ BŠ.K¬& sš%;¼nÒŠ…ɾlA_Å‚©Wp€à;¥Î/ÓTö¿Ýå•Àùc€ÁX<ÞîsðŸCoœâËš¾7^.þ<8¥w ‚®‰/xM õ ’øFÌN«ÂÚ— þ©*{Ëtm+I-~•1À>¶þTø I*øô­ƒI³ÿBÁ*0= Iu]/7«9nÿ‘ü7× +ÉÁB¹:X´Æ­rk D»£æQ•n»?{ä$³H(È6«‹ô[œVW8À˧V_@¦X…`µ^å0À   +êã‹oQüo6ÅãµÕïJ¬T‘Â(û¡µP¨)d2×($8Ì›!ˆþóâÅ.AôÇóF·ÁùžÊmžØÜ ³ÿ+à[ÇÛÔëŘ$€ñÙÏîÏæ&‚“ÕMƒîÒÍü±jŒ˜*€Ì€½Ïb‹f¾´Iuk2ç’Žóù]ÄlÜÙŽ~¼ðåO¦£ ŸA€!1 ”¡çß78;€ßº;€ß²ïÿxÿSÖ×Ä&€Oºa@¾÷ø}± ‰À?½spMú_šºæMÓËƾ¡äcŸ¸bGÈýÄKŒËÿš°˜‹c|Y@Ç`ç˜êî8Þ§Ûçã¡íFø¸¢>A¼èb€Ô¿âÅutw¡T÷¡/\6ÙÀ…ɬx@¶æ~kW%8%P€8'î–’8‰ñw‹ cãTlnbâƒ#±#õ¿äžáv~þεµà{_€`ç2Õa…ÚïFj…zûpøà ’É|º1t (žgv0Ùˆ¼”Fè`£H#C™‘ÈAà’A³—íÆ˜§i„kµZƒúõ–î@É?33vKÐö»+A ݾ}ÖxöѳÌ?ÌÜñ-=ä®þô>xˆä>Sÿœ.DG¨ÿ÷4†¦jí3FŽÞÜv­¤À$™ Ûñ™¸9ŸŸ×TÍŸ+šfÑŸ°ƒ•MIŸÑÍ‚l8j1!«ÅIURtÃå0‹Iwô0Uû euIRíR±Ù”3,ãÎüÑT]÷ç 4$ݲû„àÝCuÖÀgè&¨ãf ÿ¢²Ç2Bæä@mIG±}ÜW%6 +@¸üIìëfCvÀì<,ê]áŒ!xJû‹#‰¶ìsô—A1J.3  ÿSàóaÃ@Å]²mÙÚ +;x~®PÇôñÀ`J|k +6þ`† )‚ó†Ï/„0 _w~Ã`Þ¬¬À ‹Ù~’£ÿؽ/ÉÖ?T¼ß8àpÜ)Ài¶‰ÔXx…Óq€ø›²»!?°ŠLŸ*Ìöß`X€hA8ü²_N¶²…jÙ"(@ŸÉa@õß´rUlÿË…–c•s¹}e«\¶Z¹2]²¨ñ·ÐýÖádQÏm€·L¡Ðª®gô' €Äp+ &<ž""蜙­7Ÿž<õÖ³O ŸÀ>˜Y +O­d½U¨®dWV^_üñ¦Ïr…™#TÒ+•’›ˆl’5ÎF][¾ØáÑæp—4à 2_ÚšÊçÃT¥J<(UÜâ_ +\±þ]Ô«Ii€—Þà­ À…À‡?°§îMNîɉ¿ ðž+àÿ€ªÙùPjmóX‑›ÕòÅU+MÙÒ˜°5²›?æ@Ô\XˆoF¿Zø‹¾»‘ŸõÁ P¬l5o¨¯ö +oMþÉË+€q—øä1“¨Ø?YGF`ÿÑ×ëã®ðûï=xÏeþ¹o` °>>þ´îÍ®¼ë À‘o/"nK®ów ¢n禠ík·1˜\~®á€;s1xþð€kü¶Xᮉ!@Œ-Ü-ºˆ‰¸]^“ó [·»i!å‡ò?%FW<À?IüãºÍ‡S¡€*‡D0OÁ˜jŒø¦5æÑðŽŸÞç„×v—0Y|a,Ê?¬ÿñÝÔÿ?z´ë.8Äô_ôý%”þÅó×ÿs|5 HQ¿„Ð%$ +"^*•0„‘OÑý{”Keã“»Ï2TûeMIw¨z†<©jü#‹bcTû?jx¨ZSÇ>í›Yêëóõ-­ž¹^Àð¶{6ýlzffÞGÝûßûÎßyˆÆÿ¡¯X84Õø|Ü4ç Äÿ[fl¨“>ˆ¦ `Ç%p»‰š“‡K>ßRuþ“ñÉÁÁYº¬ÆæZj³t¼5’ŸTå{³ -?™˜T†Àq ½½Ú•ä§òÒî" àÏþlánôîOg£Qžä7 9¼GÅ[q€Ï³õ§]ð5²ÿÆÇA Šÿ€û§„ÖÇ9ð=hþÞûà‰ËþðÁ¤Ž÷'½Þï2 È} }ßð*˜û}lûی愒/&¬ývq¹ñÿÄ …!Ú]¤ÿì0ËÜ~ö¶^ëbúB±`% v™€ÂÄßÝö‹ÀE÷Ay…RÃÿƒE@— è\YðÀ‹—ñôl(ÅP¤ºÃ±PoËmÔøXìÚüŸ]ÜŠÏáInýŸ›ÃSÒ­ÿmpÜ ¬¸/à´ú?órq~~‰4@jþ‘ tx¹ü;Yª¼¬¼<ˆ¼¤NX +GD=µPð“>ßÝè2UÇhÆS9ð(!B™¡ƒÆP¤¦`+Òh·À `³ ¡O§§¿êëëûªïÓ3Tû7Òµf+ O§ŸmlDaüÍüÃ>ÿ<¹Ó÷pÞ<œGÍ¥*Ø;‡¾O|µhî20ÝaúA:hª–¦Âô}GØÙéhxi6÷áÁ?ä+éPzQ‘ÐëcøOHF.ž§‹~ ÿhø% \ŒùÕb‹$eˆ 0¸@ TTðù"m¦œ¢"ƒÔß`Heßµÿ;O#'RS‘ðvyÎ +ïóÔw.À'o8•Â`QhªØàsÿ2_«Ê)€‚ Àt°áp +0@€zý7 2¸é8(öpòGëKßxuˆ²Udq.€Õ,W± +HV1(ë˜þ—u‹'ÿ0 *äX8€1@¬Àr®º_À…uýÔã[ô±l –Ë„ +àDàqaÀ[†!0â›ãÀ%ål‹Í éW­² H€Íp&àØ"°žòb"É^€-6®–“t´Æàùó›?ßyP±Ã%z ` `13'k¬Œ€ë)¡€0üGÚOiC€Xé{KŒ<ßîž®½þ«ñïÖà€ lé&úä ïù'¿Hä +†jäcTiŽ%YÝ2UÂ9:Éå&ÕÙØâèV©TÙêæìŽliÑÑ™ŸK÷ýÅOþ<3ú7 ó%Y×soM^pèӯש´¯ÓY€÷Ÿa0¾Î¾1ø_§Žÿ}Tý˜(øN¯÷äsž?gɸӽž$(üèô¹þ{æ«ßãZï"ížCÛí9ßá\lmnGŒø±€=^WЊ€µîËŽ˜ +¬}ï!˜Z릲ë/÷îâ1yqeôþÓí¿pøÏ›¥ë²Xzôæ @Läj—`8Ƹÿ§ÖÀ%a¼Û]‘Ì倜šÛðxX2àÖÿXlsøÿ_¸i^€À,€4RöLE¾V;ˆŒ( ”ƒH#‚4Àƒƒ ®þ OdäÞè³éÌA¥£Ä§ÿòÓ ÕèN¡Ýh„b•¡Õvchucéç 3¾>ßôü·o @Bµmž´ÏF3Q‹ÿŸ÷=ì›™¿#8¾CßüÌLßÌÌ¡÷Í÷ÍŒx†í?r€Ê¦«áœkp°F=>Á;/eÃçÎP橽·ŒÝT'È`¸.ÕfÜU z,í%sKʪ®á°…/ðA €;S¡Gò ÖžD=¼r,¿Zƒ‡° ÚPb6AP¾‡NÍ52s zØnXR ¸õ-ƒ ÁûÇñåc™ÿ,$C ̃àG¿ýy&Àÿ—Þ;s×ϪÞœòÙcïôópÄ××€Ÿºôty}U±h;m¬ñs®çà‘™ àƒ° €ˆ·;ˆûmœ»ã0z|j÷ËpBë?ê‚60ä17ŸDíß¡¯ÓhÿG!$ø0ÚÄ¥ci‡.É— ±ìÒÕ»¹Ýtc¬ÝÁ࢓KÏçš¾y–¤s#¹ôç̓ôAúóÆÁS?o°û/5éávšÍÆ.ÕÿÜ«÷Ñð<ÿë|6Qé%**Fá8[߈V ++€bê<Å(€Ò0Ǥ¦_eíF牕„šX¹(ÿ÷„ÿ—€|éûFÑ¿ð|S+oêùTXó&3Fóúf±fVö«¡a„™ =dçGóÚLd~\'P\ y`µ¸QÙ(Þ!`%o|´Zúè«?}=>þQ2ïs´"œ€4ýÒ]5A¸ýÝm±ügoÿuÞÜoßeÀÝO ˆÑÿù`ý.œGžúŽŽ^ýçÿïÿ«,Ò›ŠýŠˆ¾‰)Ϻ‡{o!èKØ!@¨nMõo $úœÿÄ ì× zéŸçç®¶ê-]šAeX°ä•m âJ~Jü?z—Þ˜÷‚¾LœÏxãÿó…BÏc&)‰È +û÷PÍOlˆÁJe`ÿ—èØ.%6ˆ€AvÞ¿¿Óíä8À†À§§‘—u4µh­ö`{ÿe4Ú;=>U©þǨúÆZW[u”±ØövÌšþbù‹ØvDúb;ŸŒxY¯wÁ¼ÈÙØ[Ý«Ï +þ{Óã…äÂô$¬‰,¿Až¡‚îr¡°\ºvoâÿiNòOcø?mé¥!pÈŸ|ë¸Û‡ + ÇÊ‘ÇWD$kgÇÆ-ËÖ©Ì'ýÁ‰Ò„”3uk'o[މiœ;ã_HP+­Õ•5Ý´÷ÈÍ¥ŠZÛ 4Å.S¶½¹êð•PÇ«[NùšC…VѶʦ¢¦£mieÈ ×Ñp û&†póµ × Ì“`ú.Iâ=«Ø)M•³®2¾žÖ8ÿ—WôÍðñ{m(jæ†@ +~8ý+E³ÃF°d³ô@¦VáïÃR‚#5£fj593Ÿu™wÎ@m+Äò‚)G°¼óxæDê•ht*:Å2ÿ©È,ü°ý?I¬!¥±™Äxvi•ħÿѪ B +˜6'²çл¼;|qÙàÄ›·þ3uSc቙OS_¦&ì/Ëc3cù¼f®ÈDö$ 2€ í›”†!„%y\ßã @8ey:Àè^Q 0ý¿Þ9ühnŒ/ÿéF€€Y aãÒ]/ö>À;,ý hdwýöú]¦rà“¾°®ßÅÄài3wô&bÀ¦=fùLÂ[ˆ«ag/B‚=g?– nðçs@B0…L˜&<:W}¥&K_&C€À€‡‚µÖRßÈÏ{žöŸ”'ƒ%@࿟–.÷}1¸ ÃäX/3õ_ÐÂH¶¸ý÷ü\ýYП`DÀúÿ +«üÂÇp)1…D@2¸â™rʯ¿‘“c1èE^ªêË—µÚKµ®ª½žü²'Ÿb°‹Åâ°V³R(\«KÑñ…š4ù/­Vè*ש¢JõýÖUêÿo]E÷÷ëtÕð­åg 7Æã¿Õ—“Éá.Ë÷„úïñ]*â=|ÕmØÁªE_·_”îÝãX !¿ßÿâÏd} +,=»J0äV+võV· àR¯¿`:iom2I§… ¶I»¯í$K¥¼©ÑEº}¿•tL²” "·¢¶*5áŽy`‚‚'9¶¦àÛ,8ø¤lTOÎõq *ùTŸk’a— ä¡*4ÃØòC e4þN.¦^[AOÍ>Xƒ¶nÕ²<ë§Ž–wùµ  íƒÂ‡4*Ük -xíÖ^Ã…P‚NŸ +¿¬ˆØ?y>#½FZ¡mH›A›Ê*=>TÉPa·?WˆVkYž!ŽF¿H™~$ͬij’ ‹#‰Ó3Ì蟰 Â.ŸâÜñéñÉó¥Ë3¤K²Y^à ðMàçæ¿š‡ x”Èç¡jXv: ƒE¬÷sQïÙ|z;<s0×p!úw\öðf.Uû†ÁH€šÿ&ç6: ‘B Ì0 –ß©Vót—vž¼p` +Ðà€gŒùNžJչ펲'Àíô(¢ªÛFõàr57r–n4;¹4Ì€PûOïHþù¼ÓPëÿï¾N›7Í46ét.}”[|õæý¦~ouE’¨ÂG+ý›E»G ÎK?™ÅÐ×%ÔJEJˆ4@®ñ°@Xå…ÙË ûEf(Þ+X‹^|Í”/ï~=+€ç›››š6š2&¾üYù}ôÑXjB WÄ bÄ‹º©ç¿Iéa;?:‘J-ÉI½R±ŠTÛ„ÀØ(Þ!œ`Ý(ÌíÈs¿ùêÛ…ßþ¦Òã«’&´`¸aãä2€Úÿ6Ô|»ß­ó`÷öúu(îB7À'ößõχwï>yÙÀHºé;Z\|þ!€Ú'„Ï úÿ +;ùáÚañÉ}'6¦¼L¼á;"è†* b1‡ãÍÎr“¿ä‰½)€'Ö oëÈ’¨ë‚‚‚%ÀRDPëÛ“ó-À¥î?péÓ¥ŒÀÈ»å_ pC& W"b' ÷ä‹[1‘ªQñäÂhƒIf¹®#´íügkB<°Äœ€©¾,‡O‡²|ò÷Ìq&szÚëe{*éÔ žžfÔíí:\€·_¶bñ™¤<œUa¬§JË !5V˜œŒÁh;»z•šþáî­[ûû‘Öðöäoµ®ÆCÚêÄòrX±üñ¾ƒ¼reÖûªõÅtáÏC ÷^¼ð¿0âñ ûÜ+•JÓþ’eXþ¤åŸöû§—c·`EÔ†éÐÀT!ènOîŒk)„ú©Ñ§Š?ä/­Z(þ%28®JÉ–ÿ¦ŽòxˆÊà;‚vLë¦]sd0™´mŠ|ñ¦aêoM ]WR"`É—5űSÁ †ÂmÛeºáªS.šT· ì Ê °¤Ï©RYÀ†Í…©yhÌMÍvЇ5û+<†à”^ö|Í+‡Ûdç™XËËR0 %ûÕTr,©éÁ  +ƒSã@p€*I‘¬¡i«59“•\›uK¯©êJF†ÒOî'¸CvH$€ TÿÙàø” NA`¿¿0N=@àä¯?¯PˆþÿŽ¿Ôè7œ²ƒTXž³§±ÊotØó¯í‚ +À‚ +Àª@Ä0m‘ È+¸¸i”{äù‚Àh!Í »4ÌþÙ Íæ€M€Â^e)@ÕÍ—« 0ÿ;å*}ÄP¢C¹ÕòR€q“ªöÕF¹¼Ûóí>4ªÑŽo´]¥»˜¯¶ÓgpûÍq.°y@¾fÓçû=úfÃ÷ûÜ?4Ÿ2ÿJ»éKç88kåÞ¼'á焞’ÐõE§¢ÑâT]Fm‡0†Ž +žDÑï'x°‚—¬º´Â€:û‹W/¤‚G˜ Í>çlúÛ{—D Éeà‰@¿àhƦ–3&Rÿ1“»iÍLŒÑIÛÔVöôz_©S¦^ýïÊO¬NäÇÊ+:€pʲ  Âq€ºU(|TÿÛWCŸÍ݈ûoüÖÒíâj¸¸'iÅ=3\3.©ž¿m¦1xÈ€ëßÁ€Z~ªíOÓ#„®{`ýú]ú·þäú]ü[¿KpNÀ‚3 DÓþ¾ƒçÈkáY/&¨?ü'(°! +}exCì6¦þ·;H¾êçßykìð¤]âAÀZßöÏ+Þð¶Þ“ðÄ‹è y `Š€‡MßýŸÎA@Äû(_€¹^nF¥Ÿ†-¸½sBH"Sú Ø€Oþ/.«Tö¼ñ""ÊDp+çI@òß1Ló„^ùOé'#=ͪœU—9>­oǶ_n‡1hM.O"ê·æJtµruº°‹žMnÓ—ÑhtøjwÿV+ÑS÷[­ínŠM.bЛз>ù‘ë5Ó¯@Kà+Wº_L/¦©ï_ØyAõÞl°ÐÐô‹Ò‹kɪü;%Þ§—‡ë‰îpŒ@FVBk^€· ¸2ÝŽ!k¼”šö'í’?eO—ü [–¥ÙÉdiºÔK„ ’ajèCVXâD=™pOÕP†€œ‘ÌdI§®=Ôõšf? Kí0„Txù`MæP€šaÛ)ËF¥7L8ýÛÖ&ª¸¢” Ű7]U1è3ÿpˆþ +Áàá ÍpS62 v `5¡ €yz1Ǫ}ÖîgDYƒU B`$VçU+X*ÙDèŽgc€™…+G$ÑñMXà ¬ÄZ .€ÙÛœÁBŽ ? Y=¹0à +€¬ìé<Ñ ›ÍžÎ{:€Ÿ÷4ý€ÅW‹ ‚Öß@¬èËU8òuЗWÓ\Ȉ†Á?nE †‡ôN\ƒ¾²@ê¥Ý†Ïp™NÀQ´ý_• ‡]è4¨£O àR]w„·/ëÿ€=œ&iÿ±òXy €rÙ‡¯@ \à#tàŽ5FÛc¾|nÌç:ôz{¬Ñ(·wÛJε݃ôb3×X¤û>Éý{nä`äàߨá?H·Gè&¾Nn$ÑB³“närG¯ŽOÞ¼çŸ.xŸTÿ+õ©J4*MEéE7šHL1õ?²ÆžäB\¥â¢:[IE± Ï™óúê‚ïÔ»ht>F•ßÕþŠ&¼¿ò_nÚ©O¿ür̺9¦ÍŒ¥´ÍÕ•L*+¦¶Šá°ÿ¦ €.€´W,ê&OVõbeq€°¼1w¸üÙGßÞø§øo°ˆ¯‹ˆ,šEÃxgðÖ'º| €Ûß¡ÊB@Þ` p—>]B€»Þ +€‡ë4>Ìà9êá)¯á‡µèþ+}]ÀðÅd›YO0Ŷ€<5ÕMxS0Åœ…ß#yÍ4Œsoþö^àäù[Â| rþh´X$-V¶+¼œ¬ 5ÕT¢>Eý?†ýõh¤¢TT8KØ@ +(AXé'ò‚ä¦~Pï]Uà§õÿW4ØÔ›ÕG›úÄŒ}™Êßœa# ºþƒ¨TVjv8n®N|“ŸOäÇ&ÆôÌá¸^ŒÞÙ³‹¦%HÔÜí…î¬êz|¦0ýÕJlè³,ÌÅn¤.€0½¬\ºë¿úÒLõHuŸ-€î~ÿF~·ËA·×/¤dpÐâ«}" ¶Þíå½?3+ÂÈq>¢ú3GÃE€Y]±$èÂ3H˜! ²&6ƒ~]0Ðñ ©Å YºèúwNM¹Œ¼@à¿àÈÞ ç]¿Ÿ6â?ÿ"„aéì @ƒûÿ +oü½ËVDœïl‚S +€T¦¨þÊ?ð²Þü]ÿJà‡ @ÚïSjqÊÖ_¾¤O±m¤ºJc_,Œ¿VÕå©+/Õȃñ/ž…¨Ül¾ã†û„ÂLr ñ½±5ì!S_øvá‡åaÎñø„3 „ðñãîä4µèTí_K¶›`Ƕlë‡éRÒÚ±‚É¥…i*èñýnk_Ú¾Š%@—ƒ¤úV€| +Okµp29£;VðTó¯ùýÓ[áZÜ2JI–‚5EZuœf­FÅ@WF6u3 ª?µØóê¡l`ækRæÿèÅ©í¦¦¿VKæ©zše”q›:„›Ž¬FO`Ý 0BR؆µ‰?â›UYžç ++Ÿ°!r„•šQã ‘@¨CÃÚ?+ª¸*«›?-TjÛAó"˜Ñb°Œf_2$Èú` Õ4CÒlÝvÅ*ã¶ TVl*Ь"Uˆé!•·ÿ'" U€:mà”nw +v`fþ”¾ÂOv:çÜéšEÐáüö=À«ÃùƒEXû´ o—ÿLw«ðîëÀ¨/ +D$PãÌGoí³Ü!á€\îì¬Aå¶ísÚFÛq9.úì+ä´ÓÍŽƒ°=êî]¦RñvFÙ¸ŠÆŸªxÚ­²úÏaÑÌèÐPñOŠø€4 @ž€JÕ7Ö¨¶ËÆ®[mVw!¬6ò¾±~‚võŒ*~:W]l¶ÙNÎw)ÀÈQú÷#tn$÷ïŸw>gà¤ä<ÿo€pôæÍûýÝŸ<‡ +`EªDg l„6B„*Ñ +²FQ£ñÚÙã0àŠû?¦þ,ùCçÏ–€ð’* ϸǵŸ=U=;TùÒ @PªäÌe`QÿO~ L¹–¤iú`Æþ·±±”ïXêUàã¯Ãtù„¦çGó3z&’Ô÷öB¦5e¦@ó[Å +`j\Ak¹pc¨þê£ooÌÅoܰ¬ ¾·XTlžhµ¿]ž4ÀÑs€î®ø´¿»w©¶?x(Ü€!þûô‚ +$@p@ˆ +%v΢êÏg%xPÇ™cé*:d0œ•“€Ën¦ɓÀÃÖÊŠ¤A±a"PÅÏFß±ƒþ«‘±\@üà)½³ pPö5= øSó +(ÐW¾ù¹õߣrPÃ`'@§!4€evÞ!÷ò öpØúq>¤ +sÀþA @_ùØ5 á¦y%À;N +ê>`É¡²Su;KU£ÌÝ>µñ¶@ÕNÕé4«bÞ*ç©ÞÈà ¬ÀÆXnËk SŒŠ´@§c¤ +ø°¨6¤«.ئÝg¾@ós<æfÛ÷yú÷#êö‘ˆàÏ}¬¤/;æbîèð=ëÿóìü"¡ÅHa~ 0Øž’Ølü8#^—Ø­<"<ÿÔ(ú˜Vj B +H'Uð•Ïü—ùÐ2sžå ÎkçJêw8¿à„µ°V~dèÿýÓ/Sc©‰™Q¨´ÍÕÊ +u˜™ +¬u2@[ŸÈ§Êßè™ì¸¾½S³6L B?‚¼Xëã7 +mHŸ}P¸1·t˜óa„…ðå @3 àú÷ ÿƒp÷ûÝ݇0ý»~÷öÈHz—¾‚'=YÿXÄxàî]à†§¾5x¾FåùÖ”X°#°HñC€ +Ë*¬ô*~"!ò}g}cÀ„P &úÌz + 0aøæ¯ œ.Ú÷öu>ÃDÀËX•£K/X` æÿ‹D€ó%€,ËnÂA+Lÿ[‘ùï +8$€<ýǰ,áøLõë?ÎõßC‰{`ÿE¸ðŸ·ÿó÷¿è¾2 +€ ˜S¶ÎÊ=éeôAíe¬­c%Ðjµ†Cñ‚è·õ¬C@pqr9FðàjáëÉÉØp]P›NàœlÑ—‘ýøÂ?ß[“ÿèÙ?îSy Lo=ûzanaˆ7ÿTúý¥àÂ2'¸\(ï/”ÆC|ðúp DÀýÇK½µµ~* Û v[qj÷“Iä%æô'·躡ù“–þC©´õš²jƒa¤² zx/&ñ¹ZÒ²œÍUŒÐ14—”M®ËŠËú|Ãܺo‹Ì? "¼VÛ¬!Tð5ÿŽ¡Uø +Ù¯©þçTÉÑÈ +Â.]®á¡°úSô0¦K¸1Pr!`½\Å%ZÂ=ô¨˜ª„ü"S³€,$ú> ^‚M šš¦™,¸íÏÊêXQy«àÍÃä xóp:VÕ×õ,€ìüi–‰Yêû•×xÈTùéã¢<Ú?÷yŠú?ðÄ@ôëhÙ˼@ñ¯B©séNZ¨ú\áÿwÖ83r 68;£3¶‹?g2© ?àÜß´[ÞàŠaÃ_ Þ—vÇ|àt¨ìSag}{°g`à bå Ûè ›68>¸½›mtaøªn•9®þíC‡>ùÜÅ3jû}¹æôO±ûÿœ>çþ½Í&@möQÀG‹‹{O€• âVôKF´8P„Ü8’ø¡ÒwéG¤“• 7’%´- H{•Ê^Tb 6ÿûÍ^?_ïä 4€€ò;FÀ_ðàÿû lPy×&´?ͤ¾Ä +àÑ£±TY›Œ˜WŠa­x§¸‰¨àÕ‰|¾ü§PFM²÷U)2 0¤ß™ Ð*,|´ºòÙÐÿRøÍäã6‡«J^7‹ÆOv¾&5ù××Yÿ÷½·oÏ@ߌpRÀí»ëSó Æ}1 »þÝíÝ‘&8ÿLJ)'‘¥È07ùà½'D„æÿbR@.û³èåE©‡Yn×O}ðZßéö‡YÀ+^c€Ì;  Ð@ XÊüdpI p©ù¿´Wpù_Y¤cÓµ=ùò€.æ?«Þ…ðÞ©Áú—€D0Åú[À`ƒ¯:oþç?€áÿÿ‹ÀÞ@¥þ£i¼…n†¶£Tÿ#lÔÚŽ%çfl=$mÇõ1©^›_ž|69>=WØ®×÷[ûû Ä¢=9±ýÛ¡¡…kÉé{Ïöé÷÷øÊt¯ô œüzh®0tmèZÉ?½óC)üÁ*-”°²¿‡iÀï†îß/ùýÉ 5‚ óH·…¬Aq8/XÒƒ’²¬²•\˜±à´Ë;˜ý'KþÍ ?ƉÖéÛ›5.â+(vr6"ÏGÔ5’U»d[ZMƒQPÌlá'x€éj9Ow°¨v¨þóÀa¡ŸË-~ÃÅ Ecaœsxà°0½3ÿŸšmjða +Píä©VWTìŽSuwå†ð.Ó·àFNj?hÓåj‡ê~™ƒÝj{ÌÍ7¶rùFÞÍŸ¥éãh»šC–pã/tÇ­úªí˜ +té!=DøÎXpÔ†Ðç°þh°ðS$aùw@x7 Í¿xÃ&¼”ЋŒ`h#%°ZªlN„\šûszíIT`ûÇÎå‰ÊJ—ÑŠ°9­ˆ6†Âl} ­¿,2z?Ùž.ÿš€6µü£ móÌŒ¥è4:öh&O°z¯Âͤ^ °ÃÚè¨ö™•$ì}*)L¬›«`Â+Y˜‹gç¾úìÆÜò[×-€bQò@ø'aî~¿ŽÝÿw¼xH<ùž½€ ODç?ð¸=B Á÷d€t¢rœ¸%ü} yã5Jx…‰€^·ñ,~<Û÷.Ô}¾TøUŠ gç ÑcQà…!ÀÒ l#8 /xŽàëHïÀ¹Ð¥Àå€÷EæX¾ ÄÏÞ1ð¼½âÈÈ^T kh3Ó`/9Øñ¯àú©)Vð'¸±·Áí¿úËó™_Dý€ê›ýE+HM ¤öÔÚòÿ) PW•ìxc…q-ŸœL.ÌbTybñÑß>‹‡'—¨êËáýÙýnw8Šý±U—÷‡CË ÓËqÿ·Ó1aßë9ÁðG~¼õÅÐÂôBrç´ÿIz³t+Xò/”JÓÖ‹tÿ|ïOC÷wôh¤ÞÝïÕ‡™ØÅ1Wú~kkõ¸·’Ó©àx~Ç_ʇõTÐÂt{'oÑŸ.HðÐUŒÓ ¬¨h¹WÔ {÷:ºm“vQ¢úH0@ÉÛ!€ò&Õi-ˆAÝ5`÷§…•×®‘Ç~ŸéjöH‘¨nVèé.Öªá +c\¶ “—þì&èð€§ú„%4Í`´%ÌødÖÞSAFYΰSèÝeM7ݰ©([†«“AË4ì’?nÙ†èßeF ›ã=|ÚgP´‘ Ð6ÓÒM¡, ð€-~¹•‚Tév-Ð;Sn °ŒGÁk€BÕ%ˆP¦úNǨ–éa`bà”}.fôXÊ€TæwÝ´ã+ÈÐý4A‘¼Úgð8h/Bí÷ô “ñý{»™û_nÀºn¹‘ÆâAöÕÛ·ïõ§/œ`jIõ<ºÚm7BÅ©"½x®á%1#Ô€D–°¯\q% D¢+>"äÈò’Cã„T‘¼ÆÒçK³ÓK&@ƒÀ/3 øçLÌðè€Ogà<3:óèym³?X O¬°gnÈ  ôâêzjc/5né!M¿#d€pºQ˜ûs¶ðÙ·7æÆÇ3nY!,@·¬KEÃ!°ñ_N®£ó‡íïõ»ßݦ’¦ßú.Ó¿»}w½¿ùÿÔTûŸ<|òÎøPì⧆™Ø`™ûÞãÎ%¼>e¶_áyÍä­š˜5/žbl§¿ÖC@öoYkP¸þ'Xìi +°”è\ó`ÉË îWvOpÒŸƒÎûûÀ úŸËäKKy`‡%dz™ <ãŠ/,|dA™]YñÒüDûÏLRgè ˆÿOdúåŸ^]çЙGôƒŸb¨x¤*¯%åô8C­­ÝF4ÐËíVëê­íX|9'Çu}|<$mÇbŠ/J¡Éx´‘Z·nµnµ µ›lí·¶õ´>~ohºpË“î úþ'rïþIw²@§…jó§é›ªü¥äŽ–J÷îýÎï¿çOZ¡XkŸž/»ÃÃÝnëÇ+³"S~ÀHº²Ô‹´¬ekç¦=>nØÒ­å o~Ò©i;ILðUìî=û½š„<܈*ÑËœJÕU+•­Í³^@2Lª…f¸jçÃZª*uõvÍ44ÝU³.õÖÝšÁû“óPðšXÔ\'lðŽ_®mé¶c¬jš!b +áÄYvâ—e“0Qçè^õË‘,=Ûèu&*Ì€3oNŽa/„½•|W×]E!P' [ÓˆÔVB¬H®±Ôèã +}£cb®!¶b€E3Tºƒ, Uþë1ä4##@=ÍžòöÿH!@szºðöô8ðöäç¿Âó`qþðàð°CÀÚö&÷~ù‡2TÀ2Sñw…4€¯‡ÊCö:ó!%àG€° †? – +i(Ž‹™?,pàFÙeÒ?,›£.–ý·Ìã~ä7Ò0 hS-§Çàú@I„Aþí<Ýñ˜;v†I?}}F;²K¿ìß0WmWÛ·a¸TöÛ}/Ôívc±q˜kÂx‘€?ç†ÿÀþOûž¶›mpÓ‹‹¹çﻼÁæŽ@b…úÿbt#+†6BSô’™ Ty|ŠFè’Ü¥ˆZñLH‘~Ó"bUú*'Qü/̼Öÿ‚k­O° úUªÿ¦ü7;¼ù'Lò©ÑGx4:¡•Ê +ý/TÂfJ7msb&O!|ý't}ÅÚ(ÚË7í"d•Êꢷã3…¹B¶ðí?Îý¦0¾0~£ÞÛ´Í"•ãÝÀÈîîúûœë#êþ÷t†…€wo#`ä¶÷WëOÖ¯\r÷.@“¥ËLý÷Ú0“ÿ¦¸ìop៊pW,ý½êÏ…_@nö¡QåÜ?° XK0 + o\3€%‘$ò­„0"Î|‘µ¥¾@™¥‹<•ÀÉáÔ;˜ PUî]XdŽ©Çú? 1Á…‰\˜ð€_à ÄŽO+†ž«1@å¿XôÖÿýöŸ³Õ~('lö~J?ùéézÉׯÕSªCD·÷£Ñèöp«­oO.ïÆ%U2'c±ÖḋM~ñ¬%IWŸ]muë ŽRŒýq¸{kxr9nìÜ[XºuE0EÕ¿3ºÝgÓËË×k¼6©Ñ¯¹Sõ éW±ˆÏΫP º^:0r…]Œg-hyŠ:œpr‚5M>¿ªêØÁdЕj5êókfØ»ÖÁ"‡4fõ‚!M¡,gæE|V ©† +o¿Sãuö8ìRrœäÿ#&äÕ?ÆÿSœ¼Xœ@^¸ÜÙ7Ø ˆ:lÌü;,¸ýß-ã].‚?¶û…ø¿í".¸}–˰E°ëCèÿ:¸70þ Ð Yˆé@ƒ.p0ÈuxÓï4¶<AñÖp:Uæâ’&ÐH>Wu}F#+û:‡Ž{€“sÜ\óÐ×>h,úÚ}þ‡ÜÓöÈ烑ϟúþ!×€<€f³ÙÉaðæí{ýÅöƒšè¥‡£Ã(þ¡P¨‚¥é€Î ³Ô!÷§W*L˜ˆ†¥¿ç&¼Ð°çì½Sý3‘@ಠ¿ÆÿJ€i†Ípj4ÖþcæKLÆÆÆ¾©Ú›šD/왥3œõp>™ŸÐ7ó_ßlL€;+©=kÜŽ¯˜‚ 0tG·âÉssòògÿ:7w㋹þ + \4Rµ¢ánj—€ŽÄà.½}ÇaÌ2ÿ»1áãõOׯ‹é?H€_‡9À]ºa„æÀ4“™Äfý¡¬£ýŸŠ°,pVÌõ=–\¿ð{ŽyåŸUýkâÙºaù_ÅB€µ5\·$‚,"½‹kÕ­eç3€\0p‘x!(pž!Ї²ý[˃ k±0Xñ|z.¶ÿ +`FÌø#ALÀRÓ›ÿËçõ?‘`Û,ªÿ{Åâü/´ÿÇ¿Œñ_ÀP©þ¿V^Soˆ(5{ÚÙ@ÃõúpŒ ìr˜nšœÄ®ŸNËÿ²ü¬°ÛžœŒ&ögaÈ@‡©OßÞŽ)áay¡åùögÝY på“ÇõPáÙ²5>„Jï§êO]ÿ?cðO_à¢{þÒ5|JNƺ÷÷÷éÀ­®P +* zõÐÎŒ¥éúøÎ²e¹ šm…¬$J/’%Caã=IV#‡ê¡*Ó/™ž6µbÍ^ݲkpêLdòi&úÿä‚f˜úÊ6VùŽéÖò[ ú¹@ …çø*/ëé\NX€õ÷J>¥)¿#3oP‡)øƒx¨Õ"™ì±ª±JÖ;%Ôx=`é¡°S¯¬0@¤ ™÷ÃìaLw°j[Á D=‹d𠆀aÛ ¸X7˜’é˜R–©…ò| Ck —Éx 0 üس2rÿ8 ‰@¼:RE.à"óÞ §¾…€úÿÅÊ7Ó÷»§ymO7¼€:(ÿÕ‘jµz€-‚1Ío°ÕŸ Þý o Ü™/GÕ×uÛgpÄ!Q§é€mó~—õþ|ð*JxÕ·Ûè¸HüÉûØÀ©Æ@j`“‘Ýa‰´ÛaŽ?÷ømäœ6}G®|à´ég Ò•Îaܪý‡N®Ý8È5²bmjüÚH:†À?Pëÿô }ð4—ö¥;¹ÅöâüÛ÷¼á­ï¨þ+ÅÐøPüNq +/—'Â@]ؤ²¦*±2UGXI‚jŠ¿ÄälVÒë‹–¼XÕŸ&¥öÝ×û €Ë*€ãÌü¯†hùÑÑbøÓG3£©‰™±Ôè£|Y›øË^$‘ÉTŠZØ +kúØM{B›¸oüŒQЊw"ãE+€UL¦VÙ +ØŸžRãß~õ?ÿÓôø7ãqŽ +*M#år@ø¹ýý:öûoßf×_H…÷ÏíÛ#ˆÜ}x÷®çÀ{A€ ûAøTtÂÓ`˜oEœ=€Üõ‹%@„wþðÉOœïø#ÌþKôÏ/ñT@´øàñõ–xñlpƒ5öÿeëEr¨ÝLý÷¼(2Þàœãçy\Šœ²퀘}þ½,ò$@Qú#Œã~ù¬d¸½Ç>à0©^ÿÏ#Ž Žôúõ#JõÐüsù¼ùý¥° üXXa ,…kYúB…aNOÚF8`TzÙÝž\.èÔ¶JµXüêU$ÿÆ& _¾(&Ÿ}M¡^O$z Õ¯FÕn·ŠO%ã Ϻݾ X° àÀìðÎr<¤[¥ä‹~Tû’ŸC й{%*áC ËÃݵ^¯>…UÄp÷Gá ìÉ + #h?¾©%óÖN*h…’¥¹šn%õ%ÿP ¿¥˜óá0wÜêléI@õ{Õk«ïäÙk—]{0ɯQ{ ® ¢M®–²(YƒËmÙ0Ø}v»àÝc†?Ëü´šaKÙy>*aƒuýÔ‘ƒC@OZpǪÉù€¦‹Ã®œ¡J z^÷F÷n¢“W%P0^¡cÀÉ8¨­Ð#„ø0hëT¿í-jøéöNØ1qß&bTÓ ¸‘È«’Æ÷€±Àý ›aúm+ú¦r<¯Êó°!ÂÀ€í"Ì€Äêÿô½‘*/² Ú>ÇKóë#±“Ná¥S‹úº‰ê³á´™pAûìÌ›6Ú†iLôhhi:WßÅ\Æÿcô9ÝÌ€c«ÿ?L¨ÙwË„:íÓÿ8 +Ñ…¦e:ݽÑñ¥Ý*ö5šÐþ7Pò;m‚pt}ƒôa»½Ø8h èài»óùÓŸo¤=’k48öFMß"½L¿yõö=û¯·ìçŒWš:{oÄîÄãwîÄ‹uˆ¤^ì!zA]ªôVžг®`ÀéG&„Ð%×ߥ å?é7LËFÀÜgF|þ«T•Íp*ÿ¥f|33öeJŸ™{”ŸÈëRE^YZ’Vµ×wÂú„žÊOØå‰Gá?mŒdhϺ n'–-}5¤ßÙ«ì…ô¢·âãs7¾Z ýãÐg…¹ß.<ˆkÔÿ‡‹îŒY44ã°˜~:rûáCHúÖñéãO=7`{Oa¼Î¬@A¤Â—Pæ€ïè`ñÃøx,¦; ®ÿžú£è'À©2•”| +ÌžÓàˆÊÎ*âK xÇŒz¨û ú Ðg¢f–Öz^"%kz œïÎ¥€buÕŸÿ`@C‹Ib {ÛyEÎÈ—»ÿc¯éȰ#’§¥‚ € ‘ß +&n|—XÿSûÏõ?3àþÿ„³H©@r¶Ç€šj O3²Z—bÛõ^äåpkr<©S¬ÇE÷›¤Ó³Â³¹¯—'·£õzd­N¿Ò^¶‰n«û‘H¬0¾0TЧ§o‰Þÿ“¾ÿ ðÊÝx(¤Çw†††J/~°,žØ#芿Ÿ‡?”JÉd|²• èF‡‡·á4Ë,€+ÌìÁ2jm¿hèv*¹‡S.ÖøIÝ5Jœ.äŸö—l[ ƒ…‘1<Í"w¬j[adÉ@3oÔNv³¦òåYCr5ŒÖ ÓÐ󚤸œ&D(Hª¡dgUó5Xw˜Ó›aŽ †~Õ8hu€† NÀ|ถÒu#‚É©d†CÕ^+›l¿ÇÊ?ºpú·¨¨Ë¬'Tùþ²ðÛ fÒ5L‚º!Õ ö-¢;qµ-^[€q12‚ƒyÁAràD1MŰëxØ€-ªÕÇ12ólH¿óÓSØž2ýït"€÷)VoÞRùç$`±hçXáç ÷ØÔÿòH€êHg´¼[Þ­Â -Rü0Â@ ˜ à㔀3‚ɹð—êv“ŠwÇqÚÂëzöþCÊ¡D‚Uwc§ã+#=~Úå¢ÝA™J48ÜÒîÖúýr»ŒÅ¿‰„3Pû•NŽ‘ÑNŸ9ˆH6Ý\z1M?åQóÈ×n|~Ôl<õ5 4!ÌuÀ$ ò*ç[\|ßvj>ˆõ#øüQ„â¡á©àÖHãÕ³è–Å®²Î+ÁÇŒ¬Ld ø/NsÀw}€Þà™ò뙤6Ç´ð7fR)}lì߯fRegboEÆ ¬iº™Òì|Ê:•ÙL+V<’*­ñ”^…@E¿³AÀ"0´ú×>º17>#€ðª2ãM#|9ð?_=MìRå¿»~—êýÝëbòÏf€Ož|÷pä)”€·×ï~Ì9@ë?\àÉ“ë˜ p„À‡œfÝ¿úZ•Ñè/bÝ#Cý*ˆÙãÁéýë^-¾:†òžý.oêeT{ôÔ’ÐHZ álU¾aªó ÷Õ7¤£½g»úloizЪÕ\º}­æà*&hɤF•úX² |eíÒîûKAË1ì$;µeñ€ +:!ÖÝ¥d0CAåÈC 3RP'2Ôy{ð³auþ Pô?Š@X.žr&Pàmà¯ïUÿߊ v›WúŽààÁš·ÓèÀC ªùÝê(A¼ç;£œåסÆÛaR ËÉÀààc€¶Ïçú´†ÛwÆ­ÐiTÐÉwÀüK—ËÕ»ý¸Âq=¿ˆ +ða¦ß(»ì@%™BU‚hýÁû§ŽßWm§10ÒN®‘£ãƒüwÖ0|C¸Ñ•ô¡yÐ<ôùàC@Ó×ü<Ýn4éšt»Ýl,ú‹¹Å“÷'o­²G(}S•(VñøÆÔZeoÐîô©€™5©rÏçÎ\1PÔÿŒey#ÿ¥Kaisýto <§ðò0ð+™˜aÓ%à­ÆÎŒÙZ>\¡z°”Y)šE½¨­NäoNØÚ£ò¦2šÚ[¶,ÁÀ ~‡WÖ¿Vö>ûêÛ¹ß,ÏÇ ¬šÅ°v8V4aønàÓ4×sL>å€Ûúxý;ýzV#ðã¾0}øîúíu¬> `ŸÈ0 €[ý©1 !€Õ€ðăI 3Ø4?!’s… Ð +q°ˆÄ<~ÖFàñvÿ¨ûØñ/EüÛ[€‹3¶ºÌôx¦?€‹ +€Là'  ¨Ú3p…Ýú"—ú”|daœ%ó<à€W<`¡xV™È¡T1A&Eñ÷ÿ—隉?dÄžb +ÌL0E’êÛ^Sq¨¿ŒF#§r´µ¯ö䬔j¡ååÉå¯ Ëñbt;V õÉg±z½¡&½u«[W!•`óžPrÈÿçåØƒáî'pÿEûÿ dŸüØßtoMÏ ÍQ‡Î–Àÿ|ohÁ_*ù‡ØøÚt韡Kwâz« ·áV«¾?|ëVíÿ•+ô,Yã÷Ç{Kk]=2¿}ÚïúýI-¼C›.½øAs’VÒ²·²xþhÕSÛNR¯|Hmò*‚¦$Õ¶’¥"ý䨘üÀîcž~ͨ9Zã¸Æsîž"Áyȉzí²æÔØì/+4ò!„ûÚv®‘ÙÅWRdÕt$•»p¦ºÔ°­ÔNʆ†ßJnÕ Þü 5¬ ²© fÛA°þü÷_˜DߣÁû¥`0Hp h‡%³ÆcŠ6 \ªÔ´² ›_µL±!§dÕì<(†¯ù—Í“XŸRÿÕð%¤úÿö=¯r<ÿG@»Aåšj«/Ýh +* àŒ ‡—Mw;ùònµZöØ€2œéÛ¨öÍ©ÀÂø/íCĸ"dö€ÐBìG…οgúx ÐîM´ o°À¨[mtÒ|“ +?&n¹Ñv0tèHTëéŽX)xV…ÙÔ]DWœ¥YÌèsŽœvù¬Ùöµs + ÀœZ~*÷GTþßô¥ÚÜù/Òµ>_û ¹x°øæí{Öÿ7à‚ˆî£^‰N·7¢¡;±;¡ÙÈRåN% <Ô…g +½ŒBHÝKô< 6we•×zì?ñ·ôÓ @à|pAM}Að«1ÀH•ÿM ?ú«fhÚ„k€ TÔÍq]»iç'òÆmôx±8nERñ¢•L!øN±²×apÓ*üOßnD?úìŸæÆ3në7¡0ôì˜Y4Íð;yÀ¯|bÀ-½ bpû;Ðþ¾o êßÝ××Åà:³î>ùàáE±4Ì=§âŠ%“ç <µRÚVË  +@èÙ(x–íýuûô>xú÷ýÌ€€Ÿœ  +2ðÚxŒøYøœ•ýè@/ðDèN<3€s+« ;€þó9ã- +<Ý_½¿,_ÐUôº¼y‚/p^ÿÙ×3ÿoOâú-Úÿã_èß +F¨ÿÈ\ÿ_‡QüÕZíåK ©ÀÒvKê8ˆ/HJ,Y_žœüz9ªFêÔnã¡zBîÕ÷[Z³ÔSœÒ+S¤·šŽ›¦ +u¯œŸº ŒK[_ ý¹0= Cà³ÿ{ü~íž¿ô¢Dg@(ÚˆµöQÿ[íX«µßcÀ=m0 w‡ã¦’URþä‹éj•ý¥dPß0I°"©•J %Ë?T²;¹ãj`̇‹šn†­ÕpXz`î,”taÓ_«ÆêÂÂ_Ê*áZVáuû x8©B`éƒ:. ô¶iUÃ5&ª¦k0ß^ÎÖ 3¬…MHŠÀÑ鈆eÙLË&ˆq,ÃÚçÀIGS‹¥à–‘¼¿d_øKšâ«Šb©î—‚«›@),ˆ M8àeU!ä€ùaáŸ"ËÈN¸eÕ׫€/ˆ2Kÿ²ÌìÏÿß­öæÕââA¿ÿ÷ àC*nê{\–ÿwFÊŒv°À ¼›Î§w…0°êÉ| ×8„Ðw(¬œã²1CGâušÿÂïŸn¸NW¢ÒcÐ@Éñ·´·ðmméx.çåP÷Ó +nŠ‘t‰‡Î!&@4¹ôaÚ‡e@ü?*õ0<ôµ›9ŸïéAÇ×}rÙÀë#ðöÀ pµÿ!jÿºüø:H€##iN\ü%¿ù5®â^ý§j>;†Â‡ypÅ N³^2ˆda""Tƒ¸ƒwz^áï±\ Ã˪>Xë›Ä7]’¨ ü€ï8X.[ϵäã!<€HO¾0>Ãû` áxYàiü½ @ý¿ j@me…‰ÿÔrÎúó_ê v@¨þì-x-ŒÁp8ô ÉÊ0ŽFN3²²ì/èËãã““WcËÛô¿£DkR¸ˆy¹º?ëFf[˜Pù¨kûÃñ°òZ[µ–»ž€Ç Ž½+R?éþñëée«0=t·÷¨ç¿ç™~Ÿk¥¡¿[HZV|¸»OO“.‚qî1+£ÇâL¦wåjÌ•‚ A+ âÿ‹iÒÚs¯¿tŸ €Úrœ`)¹£Qã­*ùUÛ¶4 Lê–W·¨ˆºuÿ÷ƒŒ|k­ŸÓvVó–aÔjÔ_C#h¸ÝºI »Ùïvgë·Zó0\ëaþpåñÚÒÒãdzR¸à_í<äA[ fpgáÞЋ’cÖ\ýEI3LMUx(`éÉ{%´ù’¡­†MÅ…{ži§’;©’ T^|\ªÍ\p¬ÛÐòv^çq¶?Yxê¡{#™žG*ÕzCcM@ ¾RXb^ö YWÓ‘Ì¥XqÅø.CXhA»¦J†S3·‚Hê5øjÁd)¨Ó ä0­ûA/ÖLͶlÂ15¡6 îž~-¬#8þOEœ|Y è¢úãž’§Ç üŸdPø9Lð´?«:~¼úö{±€cý|àPévm_Ûi2PP;^.Pg4Me—ª?p@µšç‹:éÛ¸ÞÙmt @††Ïà1€Û8ôÁˆŸÞšnt@Øõ7Ø v¿ôÝîb€;ýu:TëÓÌý¯˜ 4„ý€˜n¦98-…¨éßj”ûþ? +_¹M@9ס¯Òm¬`ÿ?\@x qæssé¨ÓÔòcëßüüéÁÓz||:hЕ¹Å÷ß° {7aüX‘ŠÔýØ¡úÂn5s’aCn»Kbñº$¬~à ˜I¬ˆÄ’Ê9ˆpšÊ`b¸0ó|¹À–Μ;¿MÔ/k€Ý|JM…óßÌ|™š›ÑM­Xd@3eÜ´'&òZþÑ762Ú—Åâøt$µ£Ã UÓ⫺nA°ðí†4ôÕ?ÎÍÁ ®ëZÑ4t%¿WxרÙðÝëן\‡Þÿc*ìßøŽ'"ìÞ½û¿?yÒOÙœ¸ûa³ÎÀIfJ,÷+Âé¯A..bç)žÀ}›ö• +\rä ˜õø¼¢Ê ’.xøf¢÷ï- Z}zDÀçÌÅ'h¦Î'ïhX“€ó‹™Ø·# ÁEvf ä?Ìq6áVþräÜä—ù¸À@AÿŸ™ï¿œþb±²˜è³À©,©ÂçþrtÞoG ôöëuE2 + Éeèÿ&c/©Å º$Õ& …Xt{x;±‰toíGzõH=v«ÛÝ'††† +Ã=ŸxÀk„âÖÖ°è^ùäÇî­¯¦ ;þ¡!v œ†¨‰ßIbPÖ¬åXëÊÒìl·µŸ¾Újíï#€ÀácžÊèÆ’ÉéÔrЪj«›š·-=®hÁ~¿åhX 'v4ÃPèÎJCþkþ¤U²YѬü*õΦbÂóÏ”\«´©J³þ IÎÖ^Ûš2‘´‚–©XÁ°a²ä^ÍÖ‡Ty¡­Ã*Àµ‚š’™W9pП2²™¬6 Ó•`ðMÃÅÆ^å ûdI5WQ¥rRWj‚;޶E]¿« Y¸”¼?ikÁ`pU©Kþ’V£ mË2 O n)LãÇB_Á@2$xÅ)6l©þ`LX Sã¬cÜXeþ¼±ýÁä'ËAP`fÅSö=Ÿ®'o_°°Í+€oè#âüÚ`õë}€VŸÚÿ‘VÕÎØH~$_ec tÒ< ýwÙÔé?`æûܳæYn@„Ú.¡—wøNl¿ Aò+„„3õ÷ðúïT 6 &@evÀJ~¼ÿO·‘&”n§Û»91Àut§fà @Õ $sjüséÃN®Ñ8jp³O ÑôÑ_ó JÀçtI;w´x ÀÉû¾ì²ôž$rB*Nìð ¾QœªÌfžgf"¤Ú0LÅÎx<ÀˆH,ã—~4W¬Xú¯×ÿ‹\@6 +)ñ +ûü—Zÿÿ?¯€F '>}4ƒ ÀØ¿!Pk¯’YVõbꦞ×íüDjì@R/&oDR3ºõåO66*!ë¦5>÷¯Eå£Ï>››+@(€ôÃ|;€Úå @®ÙlÞûEý{Äþ}zýÉíÛ»»·Ÿ\gWÀݧ¬ø~ýÉu^<|‰ÀÌ Xç ²Ž>0€þ.3%¤Øu|…•€‘ÄŠ'þKô#õ.éI.”àÌ»'¼Y”Я. ºt¡ìE<–ê’—Z9@½Á àÂä ¸88¹ZÏÅçªÁó‹ŽÑË£üòš_Ž. Šüq„3„Ž™(ÔÿÇ™y^°v3UùÚ•×ÿ¯üþöKÂ]”Gª8e™ ž­KÛ¡zæø4 …ŸªŒOߨù—X14­mKR<޽¸/&cÃ/ëû‰^«›8íE^¶b­îZdzèwÓ/ +Ãkk +wë÷!Àà“î䟧¿.L‰À墂üš¶¼kí/íw U$ €! $,Ä`áÊ•V|™ª4üp©æ®.”u‚ÞŠa'KÓºEw°àÿa'ÔvJ Éi‚–uG±ü«jiR“ êýƒ[,ݳõ{ôg³Yjºåp2¨ÕÜdÉŠª‘'da¶î‡ Û¹Æªæœª¯AÝaÇ4„±/ü%¶=ß•j"ˆ;É5á œUÃ5uÛ~ ÊÙy¹fÓ±];y¿¤Oè:,Š·ü%›j¿eýòßgî_ð~é>ýߨ&Ç ÃTGùóó°2à80¬Ú,I” „]Æü±´Uƒ På¼?de³™¿ŽU^ü«¯E0²€ßüõ}áêÛW°` +`®íË¡ì7øÎl%@Ã[`0‚@à],v¹èVwËcÔþÑÅc(ÝÛå]g·:ê°?pÃ¥C8Mvra +p† ƒÓ{{l?þæÓÿëˆw‡=A÷wÒ†Ñ! 0ÊA  +£ƒ|a!€>àøøÑc.»»mt|¤áG'Ç+€\Cä7r9—ª}:wÐÈ¥ ̃€67ÿ¼ð½jÓÿÇûš>ø +© ôÿËVlc{jjåùóáÀ2+˜×pý+¼ø÷Ìÿ+ýÞ_p=Ö p14Ý[œÿñjvøÅöþ?ü§‰À˜61F@LFÇRš9aÖ–"f¥ÚËÃvj"¯ÝýÃ6䉤®'#ö¸nÛ!ˆ6*ÅUêÿãÖòÌgwV>úlî7_Ì}‰—!ÈtE[-Ö¨þ_ÿyÔL?%Àâ¾'X@àîAH?M?…)€ žôSoÏ+€§¾Üžœ–f‘2Éc¥D D„ `$rž¢ûÓ5ü °Äc*`Qñ\\:ßæ÷-ªœÛSõΙé- Às˜^Nº¬øÉ óޱ%Œ2‡ç–ýžýœ¥z,êó`ÐòÃk¬ò!À箄PW"‡òü|Ækÿß~Ù/ŒN…ø_Qà øš%ìµáX4K¨_ºº]d¥q݈O†êR¬›ŒÇÃa±8Ë…gÏþ%ínwÝnDîÕ£­á}BÛ…ä¿0]ˆ‰Ï jõ•.ü| å{¼+L?{¶34äÍþïÁºÀktvzh—èÆM+4Ü]›íîÏîSýßç\@vö‚‹ƒ_#lS·&ɹÔ]Å1”µ7~ðû¯éþ’¾ ™Á  T€M×´’ÉÒЭYVаqøý¥”mk*›ô+¬òÓòš¥é©R2e °lƒj½ÄºMáêîjšá°u ,mQ3oð¶ž}ø³FÐÖ$„¹ÄÎÁY%LßEÀ¨™Î*$ýš€(Õ jHõÓƒ:5餋„3¬ MDС”òøƒ/‚04±ƒ€=!òûà)¬°ð „`Ç ©[yØÀ+@2Ôcæýɪ /Dlü©ùG0Â1f=çúÿ÷}y‡ðóvÝ?0|ñ øó¿o@ýýH§\eWàÑN>g&\ò¸l¤Zf@ƒÎqì_ö€Tî!Ì¹í¿´Ïrˆ äå@ö>TüáÿŸ§c¥«[ÆX§ÓÉûªNÞqšn¹“G€ÝÜIÿßܽ_hyš.lÀC”]:aº‹„RÁZvC´VgÚ†*Ž-¾($E”Uº'J 'ÎG©¬3V«X¹1a1l„[ñ…ϧ9PæK.|¢€/L_çbúâ€'=ÊÍDWm|å°3ß~ïóþ$ÛI÷þ9;ÙéNü'–%YRl©Þç}Þç}uý³ LÙGÕ¾Þôm( W Ïúc:Ë˸íN&á±)`"S_ @ Ài¾ÔÛ-_Íÿ”öV+™g:zñçYÀ݆RœDÀU«jUcWó[׊ג钙əɢH(ËWƒÎÇêè€ +ð`=£¼zCpz":`BûkÖ½yýÿ0¦Â*ò€Á,ÆL5œŸaàÑ£¼öhb\°²ñ°sçïîäC— èãëÚBÌ×'Tèü¶å·ò½MT/}Y[ýh飥¥KK Tÿ­¼ú™I€3õð01==½¹9·ùÁƒé͹“4€æ<|È‹È `/ 1øpÀ¹fsd$Ñú‹AùGñ¼*†øDß]ê­¼3[øßCÄ'…1°XJ#uû${òDÆ:à6Õ'?|ÜŸøŸœåŽ€Éïà gPµ}PÿC§—;~!úàºà PäY@õª¼üz ¢Ôÿ?fÛæÖƒÁ£ùë¥oˆ²÷Œ7Ã#ßV üvll{5u|Ú®DW'·cUI©ÄÒÛ»é©ÝXîSiljÌ›ŸMUŸL^£²¼ÓÝíÞ’&‹ÛÃ;»·nÏL†K~*âºçžŸZ¸{å +fç6¢·WcOæ/\àEÿõ‹¯û÷š.€\ÎÖ÷ è®a~¶M‚ª?Þ&wv†wPýéã˜Ýp“¼X8¼J娲\9jÙ ƒþq冣år ǵ-­¡7ü¶«E¨ù·ºÞ° zPßo•dUm -ê 5|O×¹UV±Â2u½Ö,ÝòâºáÄ-§"ºû +•ôZÖ +ní¥ + …¨Co¯T¢À§(NVÕ +„ú=¥âÈq“«oHQÅb Tqå¸e©‘Ç +aC +ݼlFÇòiÑÖU° +•ÇTDZý6uÿ‹ºü{yQv,›Þ²e=¢hü"œOÌí=’ÿ–¡þ‡±©ªÊr(ŒT¼ˆ‚ÚÏ´’l@:¡Î_^¨S—ŽSh¡ @ÓÏC}ðï: 1h IíT@y´`Màh„@ÓeÓ~ªÐ-1 ð<Þxõêq;ãâ,Þé'P ¸ Äý41ú÷ +´øÜi0 +Æ&|n½àãTÁ‚-Ä‚€ë+û À^m¤ÿv2°ò þ‡= ôÕŸÕ÷úþ¦¾Çi€„r ØkÑéåÌ^fïÅÛ¨ÿ8ðö0d„ 3c0¸:µ5F?tütk‹ÇÿÔö¯ÎôcJgØ0Êf@ýHŽÿƒëí׺þ×Ê¿`CûG××þ k‡Þ›˜ù€1ºV?¸s9îŒb °¦¨F¸¤|-¯Íf‰l¼¿ó»ÀÕЂ¦]Ò×µKrHUjóliqk²J}uý£Ÿ|ù38ŸÕòa €¢¼¦yÀæ>Äþöüª9-ôXh%FF¾Ú|pþÃóÔùÓUçæÄ(àÁ$#­ +$£ÅHÙ×–ž­üÿB×ÿ] ÐO¥ ‰µT6´:C0p6©â ¸ìGSž*ƒ¯É¾oàµl€þ`Ðûs`(yÖ#0Ù ž{µà [ЃǯÐÂid@äUü¿ú~ì@¸ò@ê™`™üÞXEú拫LJÑíô¬¤|û8~R½nŒ™cÕÜÐÐ|zl{{ +‹zž^®vwwè¯V±JÒÝ¿:Ý<÷œ¾y~å9€çw7nï¤/V§®TýlLeŸª¾åŠ€°^¼è/©¦²=Ü=ž¹¶Ó½E`{rª»Ã@¶:f€õ€ÝÉÏÌ15¬Æ,×¢’Yòûs–’ÊÙ¶n*nCÓu'fYbS¶uË +kŽß߈Õ$U£JjÛª¦V<«äXFE5$S¢*êÁbß°Ìýœkh.µÓƒTÕDüž.Ã…Šº SAtÜ)¤í*ÈßU$ç~Eò3•ª5'ô"Ì~‚lè1Ó"Ñ!s/” +São‹zXqS1²Ôü{Ž…Ù¿¼o©ð4Â@–ý~¿M7¿ž’d¹¢<†b‘ã&ˆD +&‹°Š\Ã6ု¦G ô={öâŸþÒ5Uöö`Î?3˜ö¿I­ÿ»!çëF…+õÙ€>Qõ£Ço¨TÎ"Ö£œ6ìÁSàAßðûîó5P0“ ‡cäi|`/yÊ Àüs~zÄ¡ù§e6 Â:¼ì—Cµíÿ¾þƒ 0Äõ®°)é[Ù¥"ßD"Òäöê!vvÕ©XZÓòaDÄÒU-+écSc«Òð… S¨±ÎììF'w§ºtpY ù—¾ž¿òš²ºÝ[Ç,¼õüJi~j7ÝÈõwý¹ýFÃï?ÕìëT½ãÖØðέîîp´»;5¼îFp›¥€ pNP“c®Q [Vå¾ì×5'×Ð •n®dUÓÕmKcÝ=µÙú,žnyÕÕÕ”2fÇ5«êéz¼ßÝÖïî;(מ‘Š@ظž”êÞ·WQLC!œëÿÐcó*€ ~ ´['”`5€Ší{K‡J^¤Ê1]nz•ŠëÜËÓÃrµ +¡ +E2,U– £¡*aÙ¶å†ãPý_´eÛ1U:ßÑar ïÓE(ž…°`OÅN"0h06¼ˆ¦Çc˜Â*8%07 †°ÕÐãç,Wÿ‚¼ È€^/þÂêË+™þ¿oÀ €T3ÿ…Àw*`?¤uš< +@.Py´Àb`˜ @•8C°ì%°ÐnaŽà±Gpæ•GHÀõ0À,¾ÀDáï”ëØ +Šõpž›‚<á \ÇB Gø„9A{ƒ$æ$€¶K8¡LUžÐB»œÁ9ô_ o™ôo'wö|÷Z°øo¾•6Ë@yøê+¾½Goqh=²¾Jm}~ *@ØNmmMÞŠ ðö`9«8s²°Î#€þW–\ÁbíŒààµ=€(ÿtÏqÜï¥zƒãë{QgÎà„`–à9Fô{’òòcêBÜÊÆ/« £¿¾¬…ôYë’•¿WŠ[ñqçžæŒ1PÓÆ!¸ôÅÕÈ`.[NØÔLÓ`ððO™ÖHkV€ÐüöÃM–þÍmþþÿ˜¬­ˆEÀiìÿ}xVÀsÿcS é5¾øKÿŽƒ('ë$§µÿ;å¿ß…÷{ñƒàÙ¬¾3€}x’ÑhÛ€NæÇ¯€AÜïí>pð†Þ Ïÿ÷Wßœø¿ùC¢ÇOF—Å$ÿtšÐëKPã“ÂåG€…ÇÂÿ§Ç¬?ÿðrPHÙ޵GÁ#Ôÿ=àE xÕ±o+Òq*´º-MFV¥h°—œ”*éq +þTºšNÏ[‘Pt2WMSIžJ#¬êújwur—ýWcþ¡ÜüüçÏûu¿¿ H'v¢·o!àùóÝØÔÔÎTöû1C~{_„^‡0ýSZ¤^=¿ívwv¯`̰;|@ÆÆH`›DÜÅNÀNL5M-îŒi†.»FÖ¢ÞÛö#X2íRƒ—ïÍð}K§{¡ûjhô-“€”J ËÒK`¬EŒ,ÝòÉTW¡­K ÂLm´)[:[š®SñPbC‘Š¡Þ7”ˆY¨(„×#JE­>Áv/Rae^rùÁpÛfÅ@¥aV ©Ž)¹–¬;ªQ“%a¥ª™ª‰I±è§Ê¯©‹~Pþ²¦˜hÿúP5ŽC ½Ä+FE + _c¤£ã§»r0!]‚X  Tò ¶—âܧÐ!dݽCö¢gêÁË?Û±òèåÊÊÞ ü· êû € îcA ÈðFtx#°ì6£h÷ Ùr¶`ÀKõl™ @4A‡¡¶ÿÑô¿qìÕ]×kcÉ¿™h€aˆDaÔW Ž¾l¸.díB}Ôí`™¯@W¢/Ùvõi@™‚ ð+rul.­0 à£J >}é<ëp÷¿R§KžÑ‚­ÌŠQ€tÖ²oeùàèOosøqdu}r’ΫFWÇ&¯ÝŠŸOV²‹BÈ¿6cég°¬ÏsV0Q¶V;þŽÐ›‘‚Ný 3ÿËHÒ >Sýîê}a¤Gá½ì°qãæÂ„“ V +ªYLbQâÑ£Jþª±§îA]¸óë;±PvÁŠ•Æóê¥q+^…LG+ŽmmmÕbÕxÌŠÏ™—~ò“~²´t a@³µ¸J¯èJ­6=é‘t,CЄ`s"À5ÁlþvºÉfÀç׾¢ÿÇͯ6ûøð+Œèý«¾À÷—gžòåúÿ·£³‚üþçAðµùü ÙÏVû˜ôMxÏ,íc pv×ÿ ¸-Úý§§n¯ùŸºük€Pù…úü3Ö¾PÕ_ÿËÀÃËÂøŸà"ÎàVj™êÿc®ÿüß§Cê»PÿyÐWDž¥©"`Lp íÏ` øtœŒ®F*Sé{•±±)ªÚSÕ\Jùj ›é)êÌ8³³3¼;¼Ý݉îœënkþ¥X5½{’pN¨¡|ŽhßîóátîëôÔ¯rHfÿ¿~ÿ7`ø7f-k{˜®n@éÝÕstèÚxFÒ Þ ¸½±›V %³ÔŠìĬªšªÜ—†.)÷­ë¶n<–T˦{òÛ¿Ïùí"ƒý%¿í·¨ŒR'^µ!Pd=fݯž÷ûej§©ÑDyVRtÔõ?&à9¶É?û°§røzT¥ŠVU%Ú£~|YAï¿¢—BHSM7$B aì¤ “u„²­;†E¸B¶R¡JXêû `!A~9Žã˜ŠË1 Ø +pu{ÑQ]ø›Þ^PœJôðó¼ÙOÁå ‡ÿ(øCné_ ôô䀠Щn=ê¿£?þÙuJÂU?Ó®SßÏ«>„èrD®o°à«·N0@ÞÜÿw:Tï³Q&FG úƒ€l³SèL—;n õ–;h€?À¨[ Ló=áó#VëYêû  €E°[v;uÏMÀ_ îò’ fåz¢å²îî?€eöÿy?p%Á‘T÷ÛåLÇÇ¿  ›V»ÙNø|{làÛkí=ܫà  ¾wÔÚ[Y¦úÿv@ŠE)à˜ˆºöˆÀ­ÛElVá|m²ˆ´À¢°c™ÁBözq}0´½}, €8´Þþî x²MÖéK@ ˆá–èlÄöû$zŸÍŽÞQïݹyÙš…pÔ‘î©ù¶IªäåµðBÜš Ü!ð»@,4¡Ç­%«æ.ÐW0ÚÕG[Å­­1gܲ|±%ýdiè£ùŸ~¢O `´ú?O݉Tñ^¾ÖCßôôÚÜ›ûΉ*ÿáÜo§éÌç?8¿&œ‚ Ïék›¸\¾¢ #€¿üo™Ÿ.!1øÿ~‰ßÑ  íí¬WÿɈž[m¶¸Ž +àìjÿ©ðœr}ð4xæ¾WðZåýÁò.xþe.ë¯ç1=À$@/™\õ—û=îúEý§W† 8búÿ]¨ÿ„þ(Ü€Wàq—ìÁoÊTäø0™Œ}¶z||¼·¨ÃK“cSéùOA.WçÓÕô¯Àt#«Ñ[ÃWvW£‘UÔ÷H¥ô¥þ$¶+â{Î ž_¹ò¼ËÀpú¢>ýä—¶}Ýoqï?d_ïûþ‹t®ÿâF5^êÞ ÕÿáÝôî73;çDùßHÞæÒ÷.‚»ç¶caêÔ5C²õ†ÝP<£á׺§@áoªlƒûGûŸkT5Ý’sûÜI{–aÑ‹X÷Û†âiªî„=]6]ËE¼ˆlì+rtÝPUÓCÖ®®¦ëp‚Ì÷¼°i(¯,E¥¯„#ôëȆ$.eY­D<•ãƒÌÅt_X0½P¨¢:áHhy9¤RŸÛ/«*uûš¥Õè&øíEËmÎf#!X²0´<ˆF8Ú8•ê¥Ê•J‰…ˆ7 qø!¿pè Â_°\½à?_xÄ€pÿEÑïŸB÷òïó‰ežøÄ.Kú$ÀH§œ€À(ï–GbPe§ iÈËÍB§…y@‡!8Ÿ iAš@³Ý¦/.áÂûÇmÃ8‘(— œ ÀÅ?‘`·àlý•ËNÔäÚ£ ¼N½}"´p¨³< %d¾L½…=D/.âƒ2Wõ }!€nŸN®´öFÚpÿÏü7]öŒÎY~qtôÖÀ ´¦,ÂcÛù­Éâ탧I¤¬R¿V¼VÌ_{4¹…¸`zÇÀÀäµÕ(Ç—†¢É± +80þ¾ ^û‰áÿ:¯bªÉÿ,½7N€Ô”›áòlvaÖXø`a[wTÄ{?b€~}ZžÀåÅÙÀßݱB Ôù/YZx\§z/€üÖáh>ÿ2?ùó¥–.}’»lYšvÆÌ{y³R«(JgvÂ_øÀLO³¹ÿù¹¹¹~›Dàilþ–šü¬¦yù±ÁÂk€_5AøàôÀ +D¾oìð½Åÿà»hà, ÀL_†ÀPDÏ*T“ÁSàQ$_#"Nïà{†¯¿Ñqb¾¬ï»;ƒ}‰@’ƒ¸‚Áå$ïù±+PH¬ûãF°<-ÿïDý™@<Ædø°?"Ž(³áá‚ÈÔ7€À7iý’ÙäÔTº‘Ó$%–«ŽÅ¦ÒÓÑHq'ºz¼±³ÓMÑßð›áî­X *Áí»ÞsZÿ©õ¿Òý+ÐW.”~ù$æM@‡€lvé¡ÞÈ–kÎuj€ýº‹MΟëîÌt»“Ãû;·8ÆôWÏÝÝÖm[õ*^Ö¶s¶*¬ŸwkÐú'ö-Í´qº«64º³ý}|gU"‘LÌÒUÅû[' ™°ô1LO³ Të=×1ËH)Ôíß—¡È3<³âÊt®ëQU‡¯²ÃR˜;r–Ž 0âÖ¤H¹†áRŠÅ„c©F%²Ü )ªlQן\¦ßv*"l°(ÑSLZ,Ù²¬ËùE™@†«Q½·ý¢þcP³è7c€€`&lFxñ9?ì<À™T:jGRIb_üÀ®‡âåÑ;d.kùÏ0°ÇQ}¨ú¬“Cpù¼Ðæ±9Tž`2L®SE¢o¢Óibóoóûò4€Àèh9ÛÌÒ9N€Ñ'„À¼><‚ëÔ²ó8h¿2þk@Xø¸õN¡_VP×ý?¶Ý޽‚ +mVü³å¯oÔñ¨Ã‡6b@М8‚öÿqâ1.n¶á@à£EF@ ŒZ{¬"à!ág¾–/á[y¶·|tpôŸ`ÊÀÔþ_ÝÊ_Ûº–¤迃 ›‰n`0IŸ €Ä€(ÿˆ.§25 V`f`0“<þÀ ýЬCOèٸĉ3M±×ŒPâ±»éÿø“$I¦Y˜ ŒÆ;7Y8z#à°:Æ À:¨ZXÏ:…Â'7½[îwAŸ°Æg‘ó½U#PÓâÕ 0ùâG?Yúh~éÒøÄ¡UƒÀ¬…MéÊY`Åçk%F˜àí>ªìÌMÀ àA‡­‡-¸Ã$@Ô~X``°ð°åËìýà@ðD¡ï!ÿuý _ÿ(à¤Ö + :SÍûe¿op‚NƒlK žÞ¿6|ø·Tˆ¢ø÷Goð½`¨ïDô`èôùÿ$5™`—.œ¦OÞýçñÿÑ»QÿYÔÉ¡€Â¾×KÁ>¢ŒUàð;ÀÐqdr¢¤k•–üT,­ÏO4üC󱩫SR(Ý^=žYvw¨¯øfgwggæî­©ªH¯ÆvÏ '@ êpëÖîsBÏŸ_øºñdjj +~Àšµ¿oïS?nïóB Óp4ùùãzβÆvWïRýßÙÙÙÚ‰ÎlðGŸ‹P ÜüÆÝnÌ*bpTCÕ©¡¯¹nüÁ&ØòÐоš¯0³>d74³6äw Wu¤*¦e5TEvÔ˜…]}5ÌÁ=ަV[…øŽ*²êEŒš§Ê S³ ÅTµ”tãjØP*šã˜•p\®ðÞu(^Øõ**é~ TAO`‰Ð*¶ÿX„hˆ>{Bžƒæÿm$V°€ÿÃî.€mípÚžÐăh I ë¨GS€¾)ûRùov0ù$F;‚”a „mÀµr³<  S®£Pwx…†þTÿÇX tEF0âý„í_“³ëDÖcç_ºFDþ”}B=ñªÃ¹ƒú]Ÿc€Ûed&<úä¯ãs½!Ü!Sÿel<®sïßi·|{õ¿y˜!°ÒúêÿÛõ•™•Ì‹£§ÿ)‚ƒjþ³«ùüÖØöµâ µãA+Zã•hþZ(¿U¼¶5YÌ_¥ºO )^˯'±G×ÿ™~èI߈Z©7Ò€è0¨< †ú~çôÜé[›!3bùÇ›oò<xdVf³£qsჅx6¾0ºÜ°š†¢È.>ºz/àNüæ>±z ãqk)®™¥ËŠkÚ=mìÑØÖÖ£-­·¬êø/¶&>ÿ“/â`îY’šç@0ë¯1¾–Ø€pîC00è€çç6aö €@Àæxüàï¾Â`çbž&¿·øñ¶HðlíÊ'ÂÑñþp–¬$OÝûN†g@?îOû3C€àwdÿú[來G¢ë› @¯]æñ?÷t˪€;f¡þ˜ôšàK—{<ýÿQ e¿gÐc;à¤aý}ñH$\IÑyð‰‰¬F¢‘ˆ1?k†czïÆÒÕOçs¹Ü|5V‰†Vww"Ý+Wv»«“éÏ?ß]]ív»ÛéÒRNŸ{ìÚË@`ãøÖ.¼ž?ïNMYzúÂpì¢ÿ¢£êÔ’³íÔìÒ>;Ñ»M8CWa´1ÓíÞÚ½0||¼sn²¿~ðù1úÜ8Ýt4æè‹²iªT¦m]3ÕšÛ(€ûÚwë~ݵ°èìûõš¦Ë¦dVè¿cjTî˦G«a¯â)’¤ûkJ*¥R÷O¯aÏ•õF£¤#Æ}$í²å)†rŸ ƒgS›®¤Øj×´©?Wã£ê~Yu5Í„_Q5õ¦*ª¡¹†zϬªæ!+ÀŒ°"/Ú'²œŒTŒ†lÇõ¾jxÞ˜çÕd{l$œ€5¬j®¦BÛúžãˆ$NJ!ßþ|˼“¢ð_3ÅP€ð½^虞Šôaõñ?À+0ÿ Gtx¤2<ñ§ÖߨgP¡ÓŸŒF³l „œHø_ž$8,°E%™JuÂçÁ nûnÆm3,¨ÃÐ+»Mþãp¢E?M5ÞÀ<À«×³íBû%¸‚öˆý5Ûe¯™!pІ€c«êÏõ5_và”BB!™Žd€¯µ×Z¡³àøŒÐÍÓ•:êÿÁѦ(µžëÑ$@üÌÕ™ÌÅ¢Ñu'šD„úÌñºÜ÷.VÖ HÌ D‹§‰@ðØÁ7†t”~”Šöû,C/‡úîæt‚ À{Šôúχ £³ðè?\ŽOîĬ†Íht#™œ©=º–¯Åã³ZàŽsóÎÍ›ÿ½wsÜŠ—,ãÖDcn¿[ù|q+¯a~hñh{è§C}iiž.iªêHTü ø›”õ3 À?õ|[­‘iáÈ.€çy ð·ÓÔÛÿ+›pH<|Øl2FxÀqêCø4éö~ðõ¿÷Ýæÿ øzãÿ”‹þÓwô xú: X÷X€Ðk ÉàY Øþj¸Ý×ÏZÿÀà.ƒHBYf…ÿ›ÿ#Tý¤Hüé/P  ÀbóN±´Jðÿ½#±üÿn,œ¥è¯‰@ r넳 U•HHY…“Üññaè8âÜ“>³æcáUe*‹ÍçæçKKÖØêêöðÔðð…+»Ïw»Wž6È­‹I€Ï£“F»ã|~Ðj±+Pg¤ÐL4;Ù2uì jý³ÍÑ@¡O”×ÊÓÙµr³Ó,OwšTÇQü©.'8Æ·^w_¹¯¼W8ÉRGÜŽ×á$@Öf©ÌÊm0øs.= +Ðýhú; ·ç£÷Ìò‹à0äu|ô½—À(À¤@:€v „iö ô%þ¦õ7ë"°ð¢ý €ÿTºüŸœlôéSÅÑP± +²®:¹~UÇÎã¼-^“®a ÀzôL.àɦõ±È;£:p¦Š=±üÌO–A²ÉQ +åÿ½ÒzÑ »ÙÑËqsôw ñìB€ €ºn¨y0ôÛ¬å‹ù1mÜ™|¢Þ¼ù›ß]]¾iÅã`>iÄcqGS‘øË:æL(Ž}´ô31€àž¥ha¡‚•u©øô5€×PÑ?à9!€7çè¼éß>øýD` „ææo`&ð`¸‰5À&§=ˬüÏ‚è/ÊhþΔ““FÿäýµjszÎ/œ¦ý‰§îWp!xÊn§ãþƒ7Ðë¸ý'—ßÄhø{P 9ê—ÝVúSÿÿè`þN ÈødûïàªÿøC€"†G<¯oÑ +‰|;ö¿Â«ÔÿGŽÁ|[Q¨]žÏC…sUú¬:ŸOKZ,–&°{á +µýûSW¶¯íì~~åÜÝíÕÿª>~åÜ™M`çWv»çºÝ+ÃÕÒõ/‡vµÜuÌÿ1€Ðì ±$û±™cèéǶ»»;;<ö¿Ë:@ÎÜ8¾}›‡ÑíjÉ1=ˆö` èÂØÁmÙšbØ×ípCÒ-Õj°t?¥ÿMÏÓt¿QÌJX3•šîHŠEøÃ¦ÜÑé³0 ’rßÖé!5ôâ}¹j¸ú¾]Kõ¼K}8AÈöPŒC¬¢ðä¸fÉ‚S00´YöDAIºÃY}Š©ÛcteBa!Y]ÖLÎÿ;®gÙ²¥yšßF6€Í ÁqG_tÔŠYAìO°ñ`”D½§gc(•Lñ Ýø!œ£‘C~Aàd¯L,ôë?ÞÞB—Ê)¼X7¼º ×~¯Þ—òR¼O(X +ÈB€Œ0®cO(FÄ> µøÍDvd´o@ïY:Õ ŒlâA#AAˆêìÖŒç½jÿÁh»íúc8þ|n!Á?X 8 @U?S@.¿—m»>7ᨂg}Mªý<)èPg_Δ[|t‡´¨Úó„`/Á—b1€Wé _kÏ—¨?„9p ÊÆ‘ÄýEÇåÉÛÐý©µ‡Ak2ÝÀ`2”ITËá¨E£ù(6é‚Pò” 8Õ„ÌP((bÐEz𤛣½¡ãÜò{Äü¡¨ó÷ +³@8þÁBüòËÌõ°~t;8“LFµ"•v>7Õÿ÷æ¯ÿöjèfÜbà·œq§Olmm1Pÿ²8öóKK_ˆOÄ&´šWT5À\_O½Æ`À€ÍóúŽ@Tÿ›¿E­H#lD!oáÉúRH¡ôXP§" Ò_lôÝ Àª_ÝR€þV`¢EV,4£åéµù0d%``t:K¸`´Y@šåûÍf9Aíz§YÇì²@ªâÔö¿rÛÔÿ`«·:&m „ì_|&îCPöê İU° Š¿\ï$`дÐ7â˶¨Ú }‚×!Ði€íoÓ÷p´aGcˆAd|ôÏÞÃöÃý‡½•öÊÊ‹§Oÿô—?$YîOü»ÐÌÔò|Ø*.ça¯6#=Ц[ØgVCfd€èðî((€bPçzï`]ZtϘ \ÎÞËÞù$¸¸|'›_7,jÅüÕ{ãñøDàæìÍ;¿þÝÕÞ?XÜ—'â ¶°w jÅÇ¿Xý|þg_~¼tÉš°&Tí%¬Ý3éXô°BõŸʺèî…ò¾éç@È"€¯6Y€k‚@XðWÌŒ@ð?ßô`ìÿg,„ô'ßQrþnŸË?Ñ&O‚ú•qi²¿•z<ãøoPýû9%^0ûËoÎ4„Ñ'‰ÿå>†¹ùrRZyYL@Þµúß߉` T¾å°yúFJ€Ã$„etJÑ¿‰¦BÇмÇ>®VR•\zu{2ýù0EÝÝáÝ Ã3;ÃÝ™»;Õùù¡¡¡Rõ +<€yPÏž@Ïá@ýü•'O.ù«±©nú—C~ðþ9û¢mýJwü„!†Jz#¦MíÞº{¼3ƒXÀ[„-664Œ|ÁÛÉsœÈÑô NSm×TÕ_²TÕ(4Üûþûªé:‹~¿jUËoÇòЦ7ªºC˜ÕŸS½XN¯xšÜ°bFÅ”l.ç·s.õÑ&òM.É–bÈ–ÕÐ5ÏK)÷Uõ¾k†:ü…T›útÒˆ©5ªù)Eª¬C¢g¨„¦4G…U`D ×<)Á>=;C=8ÿÂø¾c©E2Ðà#6ØÔèmG#ÄB•^s¥Ç„lN¤ëÀ@ÖT‘Œa…Š¿jüÍ”Ð)n ²«3«ü‚½Ÿ ÉJ +=…Vàp¥÷ò-<…Ž^¬ô]€¹õ¯{žXøóÄì¿ñ €Ú¼è«Ö[_À:øü2ûþ5ËÙB™ÛÿfVTöËwÊwšÎt"Ðiv¨4w\xö r»|@¼WuÏ}…I@ Õ?lýlÿ°€¥?òÀ,aÿßF`3Sö5}M–ö×9~ Ö‰VËW&`€¶S‚5û +Fèzln0Bÿ£ÿ§^ÿ›ÄÃúÃ/_$|ðƒêå9NåöqÙìÇÇř赙¨™Lçzïº?Š>.‚te³3Ñ[EB"ø„…O0GÀ£ µþË\ÿß“-€ƒõâºT#¸Á @`Ö,&“3ÉÛëZ±XÓ¨þ;—oj7~óë­åŸM×ÌR|ÜÏb àQ~ë4zܪV¿ŒZ_üté‹ùbšvÏ‘TÍà, âúúYÄìó%6yª À |5=Ýœf¶³É3€‡#kk¬<ÌÍ­­± +à¡/óƒô*ÞŸYy¾#èkóÀÁé +ÿkBÀæ€)€§â'“oºþÛC€o÷ qßò™;<èKCA ŒÈ“L-ŒÄ +Í Øà×EðèdÿÿݪÿOÅï¨Ç@ž€©ˆô-Re{J%’¢îŸ ÇPšG´ñU*ÿT>dVòãCóé Ãé_­Â[¬‹ÈžÕè*!€áXµôqu¾‘~Þõ¿?`p«{%]Í]¼žk\(ÒIùTïqÝÎé[Ö€C¹†lWÇv»w»ì#|kc§»³±! 6 x›ÃŽ HîLƨÓ6œ\NS-¨÷-ù3¥"IÆïýU5¬YCºvr~}Ÿ:|ÓòëúÅœmå-”oÅ.ÅŒˆ¢8CU5ÖÐc0ÿUlÛTTzmSK"@CQujÃmË3jžbÊþ†µOÀaËýˆ¡„"®]R9£ySE¤ý2MuÙ˜ù¦áȪ¡Þ(Ù…eÿ¢­cÉ‚®v1ò×u™#šÿEy_:@=kYŽK ¾‡Øaÿ†„R¿&Æÿ¢òè²P$:DÀs$ÄÀ¸vð°·z+õ +€•eêô]|u—©þv»¯þc ; ¯]çÙ€Øà¬À:ãá +Àž@ÍlÑ€£ÙÑ,”›£ÔûSÙ/FGѵl3Ф޵}BÆ_“ý:S‚möÀ„ßmÁ(S¨b3 a0€(#.[–Ùí/ÑÁÒ?Uw¯ ’Ÿ@E ¤Ÿ*gš¾D›PÿG(ŒÔ[éAwÚv«=R©CÕH`n “ñeVŽŽ~ aàÑèäµuhøCWkZ¦ÀÁüc<£ëëyúìK¯‚A)xŒFû“Vf•–1f¢Úß;âèée>õ¾0Ô•‡Ã…Ñ@\ËÞ¼9ø$ðfóQS[ ÀL¾X´4õ²gà7ÿu+å·&Æ—,0z|<®ÍjZ> Yó–ÿ24ÿÅ¥¥ÿúñÒ||šÐòª&š¡VòS)¾¹ˆ°ßM0ú<`B ¹ÿŠký\³Ùy˜ 0ýÕf_ 671h6˸·ò Ôÿ·p3¯¯ šN×O<*'O6O†gB~þ-Àà†…¬¿¾ƒßXˆŠgÀCNû} L„`@‹‰ÙÿÑ;5ÿ?ƒz½CÔg`ÿSÊ·,äa‚#‘ÕoŠ¡U0Ꭼ†§bŸ)R86ž[ªN­N¥!'žéÞŠ®^ØÝ‰îLuoÝ޹˥§ôœÿÉós\ÿy€u€[ÑèΕÏcÖüE®ÛÞé[}@Û?ÿ³°]²íF|\¯š“Ý.¦Ý™cØÿ8N&…ø_x'y€„I)3Ñ”7Júý,µÍ:ÕJå±a_¯Z1Tk½Dݽ?çoÀ`‚@+¦ÛµHÄÓõçÔo•L$b†]ÃÒcr ;…èåÝš +ŸäZ†iÛVØÕÓÝ·5ÅS\úÞÃL_¹_¡o†üö}Sb³? ¥°Zñ¤ˆbPw/€)ÉSTKÓmÕ•­HÄÐmn4¬zyC_äÅC+,ÇÃÈ +´dîü÷‘¼(«ªci¬„R)Ï5*ý…@ ´P—¶øÙûGáôGÈõ_Rló”<Ääÿö€w-÷{/ßÂÓõO/9h/Ãî¿õþpZ|,´°åãŠÏ§9*Ðe> A@ÖÇÎÀÌùGËMÞl–o@˜ ”ïPù¿Aßm–›îfg­A`™J.<‚à&|PÿöyÀZ üAò»¾‚Û)' +¾LõxƒÀhëM¯,œ°ð/€¦¯etB¤€¶¿ã«$hµƼ`Å·Ü¡f‹ð ¢·‡õötgäÙÞòÊi8Êá«ÅÇùGEv~´^ŒâxùÑnRt]XCëOO4×=¡èG›÷ŽBA±xôþ8$¨F8py6>{çÆåË7Gî8ù¨¤g’Ë3„Ô­b¬†, Ë>ùÍoò¡¿µ,}ɉ‡K ããrüÄ 0aU‡¢ÿå‹ù¥æÒgTÍ ;aNZWÎ0ÿ´â{æ{ØÜ\ƒ·Ÿxƒÿ/Ø}ªíÓ›s`û§›ì<ÒüjMŒPûá ÄW‚O½¢ž­üPEãmeÝ¿¹Ø'r¾3žÁÉ3»áà è ø/0ob€3î m€¡ïÎØ%-yª\î;ýáÀÚ÷üï#îÿO Ÿ¾ƒ€7ÂC‡+‡),›JÇÆÆ´©ôø/ŸlO¦ŸlSß¿:3s½²ÛÝÙ™ÜÙHÞ¾ðÓ\µáÏ •Ò;"``Ðívw/¤©ÉÎYôòÙÞÞŽ±à¬ù†®ÿâúuŽ}ׇrþ¸o3\‘è¶Aìvoít7f`/D€-€xi#ɶÀºc1ËЇüzcÞ•L'+`áWqm«jù‡ô}½ªªúõ!¿åw̰ѰŽ5Ÿ“%ÊcŠäø¯ûõšB}þý1µQ²èGl[‡dÀp•TEñd]VR®M-¾çè–c7<¬L˜–ã8–«ª²£::7¬ûaƒ^ù°éOU`¬T<¯RÁƒ¡ïj\…¹`D±åFÍ3C©dÃ’§¸{á9qlȰþ¡ÇI‡Ç–ïšFØEõƒ‘6ÝS×H¬ !ˆs-TþúÃ}tV\dVöŽŽ~d\àŸÐóšOCÑäzquI‘üc¬ù¯›ë" +%ô(uâ +Äh²/!A§„CSÁ÷dðIšyo4îÜ\ˆß½¼˜ÍGÿ–ŠÔþ³0ªinX7ïüšërî-ua €ÓkW'æã–5>”šÿòc€Ü„6aiáš&™Ù°j†M³(­¼ÁÀèCÔþü=,צ9€éé~À4¬@x~îƒ9±ÀàÙÞÊ˨h¼å{“ ŸŸ3^A¯çô×ý‚Áã3†€ÿÚàè¬ÄOÜj((Vû—{gvOi°ýb¦ÊRØÿìW~¾ìˆW¹ÿ?zwë¿@Á?¢C\Qå@2‚9#ˆ³Ž¿Q¾ýGÝßH«é³ítl*VŸŸŸªÎ?ùÕð7pŸYÝÞ™ÙÙ9LoìÎûsóóZnh>Ö…à¯úBÀîóÝ+Ÿ?y2?¯Skm5bé é'T÷‡.ÚöØð[ÜŸ +oåX“-)²Ñ½»#Bnoì ò ÀêåÛwÙ€>6º±˜FåÓoÙþF¸bªªªÅLËùó–Š}:ÕˆÁïwÈï×UcÌ´,-Ö ³u§Êý*¬¼ˆâ>Ð4E.é º1E1krMQ<­w~}ßPîÛØõ«Q)WTT*Ùti—îzŸê·c¸÷?ãý”g„x»< 0ã¶Ž ò†Q¶ ÿ¢FwààneÇ54µ¢qý§âïò¢n/ê²6œ¸cYª«91¤pÆÕ +¶69 0Äû~XHò2@3–wòàahÀy%ÑýƒÀ3ú­Ôÿ#+{b 2y˜Hà«!¶Û"HDÀ\·Î€ <´¼ˆ”ž¦›  ýïðþtªþÙÁ@y §Ë›8¿€w€;âu:M·CÕ¹€zíú¨ø·á Ôö|¯Âù7‘Eâ_¡î"õç>VÜñ{°ìd0!(gú¸ÿŽ0bhõ#ŒZ‰Vëa»Eußm#Ž¥ðM³†±ÃÀM@½µò K?Ò—{(]@(H_Ök‘èrïQP8»(ňpba@¨OªÒñm™Žv\üéãå{ŠÅõõ{†‘½<:‘½s3¾p30::›*ùG3b @-F­pÜZˆâŸÜùÍoò©¡ küR,®.\ÒÇa€5ÀÚ5fª–BK_ÌòÅO—.Y¬UU +;†f†ó¦R<«XyæCÔßo7û@,øà<þk°ÿ‡à4þ´:#kÓü=>˜¬>ðìåÓ÷äí¬ PØôö ùÙu€àé OœÉ~ÀwWNå…@¶Â ý%ô1D¯ü'èTA¯ïüÏBV +öx1–ÃÞ• ˆßÆ!lm€–’@€ô ›k àô;¤Öa10¢T¶óé\î—óó±ù'»ÃV©èïìD£«Ã»Ý$ÿÕ×%]Óì!=ûõü“ô“¡ëþ}Tü‹\jèðìÇ.Öü‹¥RlòÜ­»çº»ôŽ9ÀÿÇl”äiÀF?!àÜ̘6£.ܶ­J„ +ü¸vO‰l4òÈjT,]×Nþ¾niÚØï yØjL#°cVœœŸ~.Dš‘÷çðc†IeÙŠË·kûm¿£ê,÷÷)ɵ° +~MÆ]…eYíﮄ)¨ÊŽ%sz§ëZ-.k2¡åå$ÙšçꪚJINœþ NXfDQíÒ¢ß^D ä²½o„5ͱ¸þÇåø}T óXa ÀpDR–€±ìx 6w{ÂÉ*”z+ g€g{0þõÄ €=óEú/ïýgúü€3\þaØFF@_SO— Æ +á}'|àfvºÈ6³Y*útjôŠÿè@ |#»Éç5³Ô !0°ÙI´G·ÃnÝàô>LÚ¯H Ê €:ór¢Ðr]£þŸ­„Âè¯í²õ/]¡UΔÛÍz&?­Žµ´€MŽn²õOÇ—€°‹@ð=¬'‚‹Hø|+{™g/Ž~´@ <]Oa$`>î±ãj0ø(°z" °wÆEÁÿ¿|Ÿ€õbX­FãÙxàfüÎ*ôN~}=/­ /®[ùøìB|Þnþæ7[©¿E•×,uœ€¼@~l+µHŸZçŒÿN€š5¡…µ¼i:ßj¦™7×¥×@€iaàƒóçÿ^x}…³7€ÀªßÇ#ÓÓ¬þ?¿ù`S€¹7û[-ß³g+/ߟúÿôõ¢Ý/í'.Á³@09ÈMW?®¦ÓÛÒÔjòøfÀSŸ_Ù‰Dw®œ»µ:6¥—¾®–†ü¹ ;wE$0ò¯|þdÞÿµŽ•5öuuj>Gxßö£î_÷_¼nëz'íÜ$ö–\ªïllÌœ»rç°ÀþÿB¸Á‚À»l p÷ÜΪ³,Ýž°JY/e”t½jå=ÕA(.ûK„<,Ër ~MË éUº(«_ì÷+V®¡äQÿsvNטTTRÔ¾Ûb.O¿gaµPM±õ¾¬š®ë:Î}ª×)Oö/.ÞW a8ò?øeë¾ ÁÆœƒgU*ê©Õu%£ê²agáý6?²?›÷L£ ÓS ƒz|E1ãqòÙ2‘,/ZjÅ ká0ê¿ãh†ª@­¾¦Ò·Œ¤zI¬"ï·|z„ð! “°ý9YËo«þ€¾P›½þ™ÿw™¨‹ÞÿÌÀçó2 +„a°»ƒhýY ž'ù +€iª÷Â4“µÀ(“£kÙµl ¹Ö¡kt²‰…8ü§ÓAèoÝõ Hå¿ÎÁmj×ÛÙzÁíû=—ƒÿèvÛ‰q9€pÖûÜl€2"8ƒí¿Š Uú#õ‘g„RŒZÈa3 öF˜YYyù§wá•OUð©²Î>h"œ•É×Ëû6€=g:Ú½|ÀºzÏ ÌÆg³—oÄîŒÞY˜ÍG×™`àzÑ +;ã ›>a _RãêåÒüx|ÁÑ´&[ym€ù¥ÔϾ˜Ÿÿhié’›ˆYôJ5Ílő̰‰;;£xæóQeç%êü…à”øéµfÒª÷¨ñ €ñ¿â,l`ð½a¾ËôÞ ‚ß?8ƒ¾ààÌJáÁY ×øå¤ÐÏ`õûï•Âo!‘ˆqJp +^ï¬þï1@ —©òÂJö0ùVù†ëI„úƒ^H«Há˜% IcŸ}6)¬ªtnÎoq0k„ÑéSiöÛ%§A(!òŽa4 %¤˜’§T‹åë~Ç…{0è5lXcÁºDBcŠH¦dÄé‡àÕw%¢Z–§ÚRŠú¿nÉzÜ)-ʺ'©ö {qšƒ]Q¶,Ù¶ÆL±pv ÅË„ £R‘̓‡@Š­†"¼¦?ý±xw;|d4G€5ÿœ\y˜bk¶@oçéz`vÈpK vB¨3.€º!º}*‹m®ú\þër .Ì2,ôñN  S XLSÏ6GG–@ ÍÙ;}B`:‹¥@H¢;#°¤â߬sO(ï®÷ +#ãf\'ê*²:mzXÀžW§/*ìl +\àˆfxeú9Nbé? Öþ°€ãÐLBÌ #:#å: ýFV^¾3‡ƒõõþÞ•°ak€ËØ:Ñ@‰þ?øòàè½ÒUõÛ@6>ˆß°PÍ%/Í €¢•ŸX¿¼0z `K¹iYã¥1}B/]ÒǬ{µ1Œ°¬OÇ—BCÿûãK?_0aÍÖ4µÂÀ«UŠÒzñ5 'ým~ˆ Àùx °Éks°žC—ß‚T 9Ç€slð`mnú«é>xöƒ­ü'j ^ƒ"N xº p:81:Iü^pºötÒÿI@¯¿Ô7ø™£´P¬÷'{} T0lá2ÐÄ™k1ïôüÿ ¢ÈÃÔJè0´˘Pª/ŒD¤Ôaï0¢„B©ðÿª‡"SŸ­R;ññØTdøÓ©É© »«ÇÇ«».\¾ð9€áíÜß år¥_\×Ó1K¯Nmc“ÿóôTúÉ|©ïöó‹!9]÷úÿìc<ÑFÃ>”³‡®Û×ÿίǶ©ñ§Ÿ>ž!°s9¦·©à ;Áý €˜‰ H¶ª²¼¨º\b#}ËT NU$ô®ÛuÊŠÑcÊ•†¨ÀZ¥\#¦"¦B¯˜šîoh¶^ÍÙT%Å“IÂvC•DúR³báHhEqy¿AQn¨Fê?›Ä˜Gwk±coT1'l5ªÝèça®V*šWY´Šã÷»ÔÏ[jÜ^ÔÅ‘ãà<*©ÔrR1T5ü{K5< ü‹¶ìÌZOTÍ`»æTÄœE^€ÄÅ_a#G–÷-‡ˆ'ú1¨‘ÿÇOæ¤PŠçïÛyºò +ÀÊc±€}Lö!p!¬×!Æã`@_›Ë?XÛ°? Ïc³@v QÁ ´³#(þl³9Ê^Mtþ¼f§éß;5úl6…A`þðû+7#n|€0€GÅÝk{Þ+,%&èÑ`îOm}¡ãŠà *æð#lÃè·€P¼¢+!­Èó¸ì]ìkÑC'°÷>;™zÀlìCT0[Ò6‘1”!8ôleåÅ;Õ› ÜØÙ5Éúÿd?8x4¨ÿ‚è|€UÂëÔø(Uÿ…Ñ;Ùüúú£bôv0Ê>Rµ6»]ˆ²pów¿É+KÔæç ñxéÒÂøB\«i[µ101¬Îϧ>úâ㥟-±Ð,3ÇÔL) €âk€VB8‚þgà?³;þÌ|Àà!Ç<àÀù͹͹µM!hù|{ÏÞ3ðÚ(àLºï x2ìS€“è—uðÎx½•?‚g›ÿƒSÈÛ×ûõzËb  B(€úß/ÿGï8àT¼a©Œj=¬C €ÃC^ *“’èàÿt½í§ã‘U%–žŒ¬ïîF»Ï‡W#Ñíôç»Ô©ïÆü×K9Ò~jå/ÎWǤ¼6ŸË}ûú‚6áï·ü×s¿œÿº¯þë¯Rùß&²íëCÔ]S+>µC÷Ü-B;w»ç6èÏ¿Áö˜À1ÀñLX—s‹¶žV©–jªl;÷Í‹P{®išA5WÇt»ÑÐýû6Õ~-Ö{ÚlͲ +È PL*ùzCÖK÷%Ï«é~ñBžéXòSáŽHí¾I·ãwb† +3c~Û÷ûé'LU·uGÓm+,E4kQõ*šjz%îPߎµÿ¬DÍ»šU NeËP-ÇM™‹–iȲcR%ÇÜ "…-Ùf€­Ë  CqŽÚ~S•x[#Ä@û~ào(Ùç±ÎŠÉ?Æ\ô]jàdõ¶¶xà°¼·'v2,ðÇþ¿‡ÒߦêOß¹(ùÂ0#¢Þ‹¤@ Å TMÝŽÑiuê#î(¤€µl³°V¾Ã«ò&Ö 6GÙ#¸<Úl¨ùÏŽ$`éÀ ë÷\_¹7ƒˆ€z§ÝI +ìŒ0 ŒWO¸^‡.íÀò××1ZBý×Nˆs'|…:â€;„0ûQ‘aûß RÙ ÀH"ñÀtâèz{AàèÝ:$…1ºH“Xæ @!ŒZÇÉ#Ñì¼/ º¾®†ï²…ËÙ…Ë'²Å¨d>šaëV~ö¦_”.ð»j`./…uK:•ú8ç¯jºeU/}­üõ—ó?å€fa š¦#iyE5¥³#€§+{>˜ü­‰òþÃþùüߟÿç00=ÇÓÍŽÈšžÛŒÄÆ¥ˆ2]àêêäÌjwwäÀ¯~µ{kƒÀÒP¦>‡†0ÑMM¥«ZƒJþ“ôÔT•ËýÿGßUÓéÌàýÏK'@¿?ç÷ÃßÚžDÀ­nwãø«°xnƒSÑþs>0œ7v&+1½4®/6bUóœ…í}DîVd:R*"QŸ^ºžkÀ(–× oLרñ—‡ (é9=†8«Ó4‡½ƒ½šbغ®˜÷e¿ß±tün<ûº_®™ºì±o¯%ǵ†eÉúõEÃÓ¨¬cyO§ +¯(a*Û íY*Ø–lIT¾Õ°"ä’OaÅp©”;qËL™Ž,¦D°(ˆ B+®(Ñ Z–C½„7¦YÙ +†øœ úûì}y™%™XíÅÑ›yÿ`ï#¬0Úy–oÏÏÀ½Ç+mH9 ¸íó2lóË”ôõ._fàœ–€Â°Í~mNÕ5H´‰Dýurs£b'`s”wÀÜ wú7»–ÎN»òZ§œ˜îð¤IÀWn\¯ý·mÒCÂvbÛõèz}øm‚ €<<Äú¼Â=0XÀF!¡`ÐN +\ú1­È´êlú C7_§ D¢‰T‚ÌVVŽ^öÞ9ÀoœÞcôÐ@ átö#N:ÿˆUÕ˜ @é÷Iàr`öQt]-F7ÀóÅbÌÔn^vîÄK—ÿö>Ò˜XRÇK——Jó `òÚV­¸•³Æ«qk¾ªüïŸ<Ðhñ<|4SÍ+5gמeZ‰ÖÈÈ4fýðüàk ÜœfbFÓ#}':C 8xnšEàå{ˆžž Žzß‹úßÕž8ùG'?ýæ‚gÚüƒ“áÀ þ÷0½a@ê„÷Œèèª7ê-ù™€ 0SIE*pŸ‰à3üql{,Fåè8 Ð݉F¦>¿páÊv÷\w¸1¤k{í•«6ª¥ëóSé ÃW}Îß_M?i@õÑ¿¿º¯ý ÁŸ›ß*íïc°¡Ç«»ÝsÏé67Ž£; þá RL¹ýf@Ý»ÝíxU•ãꬎ4?‹~8f€&W¼ûqËú;Øç+òõ¡¡E+¦Yþ†éiª¦ëUº}Š›# ¯Y°â³bž¢ù«ži¸ž£ëZD©ù¯Û˜»ß·r©±ï§~]Â.€ìXŽä…©‘—m¿Eÿe¿\14¿V5‚žVÝšAÀ`Ášµ`ãë±¥ ¡¼ +k„I4 æÿJ*¤8aï³”bÄé6<5Ž`@I*pDpD€`ü btüËpõ¥èY ›ŸåC†ü§ãƒ8v8Xú‡‹D +À[z¶B°¼²ÇK€>¾ ¯ùûà %€!<àûË*@¦þá À'ÚÂ.°ÎÙ‚¨Ã`ÿö%F± (€GGì½Ó ` +ôáèÑ5ú¼ÑÌŽnvÊ ÜBg4Ѥ†¼\@ü/B|<ß+$¶½W„¼Çœ•@›eð<ÿÇ’_»Àë™B¦Óv±ñï¹{^»ì¹@(Ž +€d`¤Í;õ~r„EåŽ:ÁåÇô+9:úÓËw÷È,äÑÉþ±ñh xüQ×ÿÿ‰¬º0{g!ާ”^_¿W\Ÿ Î0Móje¶ßY(Å÷»¡10ÿe©v¹4QZºtù’üµ1-?¶• À§—ªëÿ×—/ýdé§—ÌÀœ5Ãyû`NuÏö|¾ÖHsúC&>˜{ðá` `só«æW,dÐi)˜žƒT À&•ÿÍÍéM8x¯Öþ)€œÙæ;ôë~ð{dß ÊþÁ`ÒÂîŸñêß wùƒ¸Ã¾ ït$ðhcûÀ÷ƒ`|Ù륞¥RÏ`„ñƒ=åÒó˜HEî/Ä&“¡Éˆ´=öéÇŸŽWÓ ¢£ß|~áÊ•ÝèΓ SW¦v¯PµN/UÓ±ù‹6Gûùá›Um\š¿Ò½2<¦_ºÈ¾ûtsú¸~ÝÞo4t€Ü×jNÇ~@Žúuÿ“±aºAìÜš9† Ïÿû‘ý¥ÌŽ£Òg3F-½·J2µâãrÍ«(J¥¦«žì×MÅ“àÕckc1S~©dSïî÷ëT]C’&ÌnÍ#8\1mÛ‰)¦l©ªcDRéæ,*´Š]rPŒ½š,›©”©_—ãºkj ólL(@U¼°5!!ôKUÐÎÖ0è”÷Eù¬¦zÈ’³Ìd™®&‡%“€³èhб¸¨;ôÀµ1Ó‚`c–lŒ®DOc•`„M*Bx-ÔÏÿƒ9?Èu`äšâL d„³CˆvOç·Õ›¾|¹ÌyÁ¿í¡¬gÄq@ðvyÐÿO¦ÝŸà;4ÿþô1pb” –z„%ý0û›.6ÀïÓÌܸCìwµÅµ.lv¦é@¤¹#‰Q‘” Hâ¶Mº?ºOzTü[0h7±¬€xÖ TÒÝ62 z‡›ýh B7.Î%¨ÒÂcÄF8½€î£Ã›‹Íf¡Þn?ά¼è½@ðŸÞí#3h€`з þÈ“ÎÿO³Ö×¥Ù°1:;«.d/Ë—ïŒ^ÌjÑõüúÌ ¶$­X‰åã7ã…K7 üƒVY²âóKµøRüg?›_X¸  ÆYÎ<ôyKúâ£ù_þ-3ÐPûo8ªR3+¯3Ï2ô Ï°Ðùóç¡ð‡çÿL#óïa¢Ïôó€>K0÷•À påÅÓ÷öMÔÖSpp:þ¾–ýûÚ¤àà»2ÀS‚ÿŒ °'–ø^Ÿ°<°Çú€`ïôGGƒKqK8wÀн{ ÿ@”ì!‹î{˜úG"TÿS‡Ë‡‘ʽØx%„‘Àdzl,ýñøüÇÕôÔöö5þWº;>ß¾’† °{e>?w|wÌ?Jþm‘‰9ÀƹsÇôv†´…FØá @“Ý£¢*ëšéÀþgÌsÍ.YcVÃÒt,üùKú~)ó¨¶kC²[1=Ë2*yµRó#Á×´-ÃÓU%¤4TÃ1GL*ûŠãxÎþu¿¥DW”tY–­}êÜ­‹ÔÈã°myfXŽ>„%¬ìö/qeÇ­Pçñ¼W§Z^±ãJ$ì+¦a²_;šc/.8RÄÓ,¬èq#ñx÷ß0AþG„…š©ò:€’ZFøÐ5r©]<8è½µ'ëË/–÷D0ZùÔvÈüAÀˆW<ªŽ¾ÇÂ(Óêk`ȉP°H€¶(®#‰éÄ4»4Ë£ôZ@¸ŒÞÈÞ½ñÿ³÷~¡mäiÚ¨ QÏ0i¦S´Á”êÂe7$tª½Ýñ¡ +¼T“‹¢¤e—.”]°—Ÿ@Ž(•ÍZQqʃÉ áÈæàE{ œ o«A›ÆÁôù:Ó,žÆ ˜VßLËã+ewÆsÞçW²ã¤{vöû¾ôa&i9±eI–ʤ÷yŸ÷yŸ‡ÀÄ]Äõ'“•J¾ÒBü_“Ê?åþt%líÀàƒì×÷r¾ü¬^/Õ©Ù¯s&àÀF’@¼þ¬Þ+ýجïÕöOTâTø|ˆÿsäÒ{ˆÀ俾Ó…Z°NW*-¿ž²/Ò[÷ð¯Á B´M¯ÀøûHîü1 «º¯$ó3 ìú°œÐ€úÂÂ'Jþ]Ϻ4;hý÷‹w ±l±ÁùÍáYóÝØàÌàŒ¦Ôz €1LàçŸÿíâôÏcóƒÓ#Ó-ºÖ ¼@ÓeÀY`ÄôsVÿg¨êþ_œÙØX'ÀEÜ "€&D½,ÀzçÓ/¹ Ù1K¯kõ?Q<ߌúóÀ£Ãïh¢›½¬ìuþ§7ëòJmúwNpÂá©êïDs€õÆaÝè ¹6v Û=½Ç×t=2¡¬Ê›¼ß„# ´iòC„^ø8Õ-CE*þ—wÇvwûÚÛ».ŒM~ñÞ/.÷µÛߎéU ö?œêÉü?üZüj›:ù±Ë“eøýÀ”«ÔéS«¿-Óœ6¿rc®äiÓB¡!`2φ¤ò…ÝöµíµóçÛ7ÛÜ÷omí˜Ï¨ÿÏø¸€)€T'bý¹_0_ÿxe¬Ýž ðÃ\Ž+ý" <à«Ðÿ÷æè£ãáO€h0`ÎAEùÀ|À§-ì®äW úËcÀg‰Hp71 ¹‚wÍÒV³4Þ¢ZŒTÁ–íGcù´ à™<ósÏÒaÈ· +õ¿ DÐzVßóÁðÓ1”Ðìïq%`H_JÇåà ˜€Mާÿäø® Ý‹R%o"# Nß•0_§Wc*üþáéë3X8aòÉ„•¼t×JZÚæ‚TýS·oµÑ]¹3aÍÌÎ\º3{Ñsf‡Ùô|mxvøÝ‹ƒƒ33:Di€l„ ~rë¿ý€Á¿alD®)Ü 6!+/9=Æ4×¹ ðwðÖè}>x‹Kýû?û,ÝlòÀ§½H ®ˆV`ðº€DÀK*¿ÌwÔþ/«_4Œ´ÿ@ÝçdB§§çïÙÿu{ýÿ)ÿN(÷=@gyDæ‰àákôlbÔ¨·”jþ¿VŸDÁ@²24"ò´qRU‡ÆÄc*mâîØ…Ý«ííöî徫}“_|±Û¦†ýBäPØbTÇ9 (›7ÛçÒn_îûès*÷ŽîNM½=i¸St +L›ÓHt%Go˜¦P0M]øðóêîåööÚMBë·o¯­E.„t<ªŠ5ØÖÏŸÅ €|ÞI-fµ²akBÙ}'”½)×,9Žl7 +Œ™º¬4,‡¥LUß1©GoŒÜ4H”EÖM”l‡:öûBC“b®&ÓÝ"I@ûòÄo°cÈlBþoJ*¿§9ž @Yc„al˜–.§T8SU¦Ë-·œ¿Em|à29”nHžÎ$<,˜: C×mH3Ìe•îÉ’XC2óŽc+tƒ@¨È©ìžì m0›Zà¿$žtÄ êü#³>ø'p” Ò9xuÜ4vsQ0vüàõË ~xþp@È©Åæ @Ð +𹆑0†`çÁ@ðÓÁV] i5ÿã•$œ* ¾Ø«þ 0xç›T*ÉR¥•@Æ´i¿¿4Žˆ@x†9;<° ë y÷8@^µúõÅt®/qU´!‚ð uP"(ÃaúÆÓ\¦wJþÈzÄ&A€´Oß]vi©û¸óøQ÷¯çKò_²®ñ^ Ò“*áMx ˺4ƒ@^äâêÂíÑk©ÅÑ(&„_^²fg;{Çæ‡Ùà¼bÍÏ\Œ ^™ÑkCµOŠ' €1ø«¡ß\œž>7O7a¿”†¸PÑ&䜀΀\|§>×9@Áÿ?¹g8å ÙŸþ¬Õßü”'ÿŒÇz}ãú¯Ç£¨ ø×ñלˆ0ÀÀ©SSù¾uÿÿÝO¥Ñçˆ3^ŒÀáów£½×Hî×#à„Ù "xÐ(yÜÛ‹}½Ê?~òï ˆ/œ-QíÇTùˆÓò¿#2_N‰òÖÜnŽÕ¾ ¶Õ­ööîµãÑå«“¿ v|ùæåIc:&èiþf,Ö£ú¾}y—ÐA ‹~TùÝIÃ( 'bÁý†9Ý0>è™ñƒð›uªÿÍñ<¼ÿ8XɯTî¢õ'à§ D ßlåKé~»’®´Ju­8ÖëϨÒÓ1ú9¸bó{ûàüú^œg„{u,ÿQ©GÒO…>6 š´rèú¹·Q‹k+Üü‡Þ•à<ЪäÁ8¤éÇ[z¼¸øøµüÕþgÀ*Ïù‰‰¤•À !Mhâjqõï,ŒŠ0Ò¬Y}ƺséÊ+ór¹Ç4.ž+ÎLhÅ¢^,þj¨Æ†™Á +Eý7ïOž;`é’RÔG+Ú€…ÕÔó‡þ÷¯¿ŽÃå¿gnÀÃV66 ú[ ÿ³Ïšý+Ñ@túõFˆf¯oûJtŸO¸÷_çÏP‡/Å|çÔx…N¯Í?g$¯‘×o7Â,pØ=•FѯÙà,@…áÀ¨$œ=’ÕΑüK”ûÀááò©àV@½¶x,oín/oï¶ÛÇÔ„‹c“êñÑèíöÕbÕTèKŠ äû™ßÄ„Éöùóç×Ï{ùòåê¾€¡”ÿ“ÆWpýã$€`šÃcZl*æÎ™LÊ‹rÍt…}!æ]Ýn»Â ïôùમ‹¢8š¥b 3°¶•R%ÁôÕìb ™nAºšëZš-ÞÊ+Äbe:#T ·Sá¦.^o0êæYÁä¦y?°UÙ†¿IÐÂ\_”S)‡ª7ì€Zt'ïι¦Ù˜p]OÓAbLÓ]·á2#$<à ]ƒs±©É²ºgÅÖ5-àfÿr´~Šoÿññ&‹'F†Ó)ÎücÙ5Ó£ÿyÄ€¯Nð¨ `–›Eµ‹þÐòÏèœ õÏþ‹4a{r ~Ð[‘ pâ  D†@è®Aä[ãil4¡ý‡ Ù#8H΀þó¸ J’ÚñR©ž¨àkKÜ(^IS¥·_ú3D‡0ðÑýÃ=Ю?ƒ°•«ïÑMéÜA.ÍŒsp ¦›Cþg×Ãô3lÿ—êXýÏ!V ]ò+ýéVÊ~¸ñÜ^O»‡^·!ÀkVDÏÙÌ'\Ê_šÁ  >¸Ù[XxP\] Ü>˜Ÿ¹3|÷ã+w˜8k²Á²><{ébìÝÙ+sÞ€_UÓ €c¿ùü½ŸÏ_,T‡•EGSO.ÚΪX<óØQ@“#lÿõöyPļEƒ~˜7 `üÏw{BA\ÅóÿÇk<8õzΜdœ‰ï;|qê?ð2pf"Ð=#&èòVÿTÐ#z'á@Ý­`7jüñe¸ÿüdà5{ªG€›Ë@ ˜ žd¹3 +õ9"ƒSœSV ã_Œ±“Å÷>ê).·¯gÅ _,§ŽF¯o÷ 3QM-R§‹À_!6™GŸÿ–ÀØ$çüyÛ?](¸Ôü3æÆö L ‹åXAˆaŸŽ•t£hÎQt +X?^»y||û˜*=·\¿vYŠ<šReQ”G×××  \ÛÎdÍÕuY¦¢;åjËT/GèGçÊ z®ºˆl”Ý‚9”Uk [Tõ]¦äBƒQO '+×\—i¾Ö¤uUs3Ìfhþ4h ™àÞg&§/$(L1Ë==?Ð „ ²ÙPÕ@ruº?#È–¾ÇŸÂ½ÑwèÂâgÂVîK„Æ„Èô‡Ð÷3æY<éç”ìpã_üRÐjÀÿ7%[äêõk#>öOa<€?âW[ÿØ{Ø“Rëß«üq>,§³9îuø6Ïÿ…ô/JŠ˜¾Zwpj„mû0JäQ=pØmŒ·ÆóÉúOM? +}âä ˜àß +„9`¥YI¶Vüf³”Nç©ø—êT¢aúÓ$`„HýyÖ£âa«^÷}8rç"L!rÏÒa:^ߣNŸÞÿ%‚ÓýxÝÁ”è€vJuBTþ+• +œ +êþ}³{KK»á1@?€èEŽ?oi&fff[êù¢ê̪–niŠV 4GñDq€gFÿÑ…4¼€7xÐÆ?ýì­ŸñÀõˆà{€-ä|†ØÀ¨÷ °±ñe¤üŒo|½øZk™œò'÷ç¬ìo€—æþ3å? ´w£r]sbÜíeþžP¸]d$%u{õÿõD½]§³„±1L.2WÿMŒ4››¶ Ú9µ¬ŠcïÁUu õ«owNÇÇËÛ“_ÜRGÁlO9*R²çò^¿üÞ·í(ðÛËß^ž¦Þz`ÚÞ<}¬(“ž8¬±_0Ý©˜fH# wê%»Z£;\»½~~{í6Xçë}FƒZâ¬,RïÛææ€Çkë™eÓЃû„© ÁYO¦VÛ e™¹†1Ye†£›FÕ,˜Zàè nmTÌ0˜]Ôu…érŽ0uú5Ù¡\“‚ÁÀl‘МöMt&ì»èyÐ5s¨çšOG/"Ï ²™,•lÏd!ìýmÑ‘³¶I· dpáÛ¶C%”éÈì¼4æ\&™7LÓÕŽH×%ׂý/a›- »Je!ÇÄ÷lùŸU¹m°kêwjª'û;ⱎ‹t«£ˆÙ:|•$Xˆ=yß À?F@î÷Ç1@ŠnÔðóMîüÜ +(Ò +ð™6±‹7LúÓTÕ+㉠lðîÿĘŸ0¸Q=`2¿QeP©âó8¬éWšTþý4âþž…È Ê=ƒ*J=ýÓƒPÑ÷s•ƒ–ù}:.ú®0Àá Ù ¤ÒßÚƒ6ÁAq þý~hÿ+‰D¥UzFßV<·´·”å€O„ñ ÀÂê‚\â#€ü¥d~æÊLòR^›pF‹ÎÂíTÍ‹ «ºfÍLÜ`w.Íþv Àpu°<4|gðbìÝwg¹ Qü¡€“UÙ¼3ü›{ïý|þÜà°a k–^ÔEq4M.*΂øû³Ðùë\þW®¯pj#аñëñæÊÆ;ýG†¾\áµÿ:ïÿa @ €×xðè œ´ê/ ÿ„ àeÎÿÅÏNfü/0üÂ^ýïF­>¿ jü9^ˆ>ž®Å¾¦OõçBHÇPøeE¦r"BŒØböXM©cpR lömG€ªtß/Þ»Ð÷»¾_\nßc¢¬*Ì,—§¡j\hÿä| Üþöòå¯ÀùàüUµêBOçèe¡PnÌ 36õ!µÕ ­!1×ffmw÷æ:U~À€Ûp>^[[_kÊ-Úÿ¹˜9ÖîEd2·‡ YõÀš#é¯ÓÉÚÔø¦®¹eƒU 'ðÊTô«U­¨QÍí›f£ `ƒaâ ë:D„ôÖã@½ïNyµûnl +Ãè§‚‚»/¸ÜŒQ¾™;GèEXù¾)Y®Míz¾@ª&ÌITà]lö™žæÐ0ñËÊYÑ› B溮n›s̶'@Ž.Iºˆ¡ì#OX–aøBǘYLñú·ŸL'JªÕÏÏ¡þóÂÅÿuR?¼R”ˆnuþ¨ù˜ìð‘@|/ +þ…²ÿ€ëwzŽÿ|þß{à.ÀÀi ´à„ð‘«[ý-Œ£Àóê#Á—x2àJþn~%qÔ@2 *ÉþR)Ÿ¨c ’öK-ÂpüKsg?¬~ÈUpø«Ä+a»t,ù[éaéaˆaÿA+W"lP¡ó äI|Â%ºë&ºÿD¥RÉןår‹HExÌóþxøèÇÀ_8VM+mr ÀÄÌÝ»I+¿©9«Žã¬¤˜#Ö®­ê:Œÿ'Þ½tåÎàNyØšž×­ù+÷Þw~v&¯‹¬X¬ ñ,€á‚8}ïâ{Óó³†u«¦hE¥h +Ý£#>Ï<ö,! ÊýûÔÿ @@yÀ?ãkÜ °€×?Òñ¯D[¹‡¯7ø.8Ý |að"p²úÿ]/ Ó@ÄîwÎR=Àéþ(1x " +ø¸ ÛcŸ¯Ý +À÷ 1Û›(›2ä€GÖþ/ó–šUÇþekK=Ê~´u5«ŠËÛ\¾¼»{áÂ䨨ä…ÝoÛcTÐ¥iý¾R“ +fõ“ÝöùŸüä[B?˜ÞŽñazrˆ Se$ñÅxÿ1æ¹ bÁbo ®F@º¼µ~|¼vµÿüyÀ€õ#Â[Ë"³dÙ4•«×ÖÖ¸B 3½êIeºu°òò²mReŸ3Ϫ *ót\_ éŠJÕ»Àd˜)Ðø,i†g6¬cºÌgšJ_TÖÔTJÖ\—;ï3½!MQãOu?XL… wþ?Àx/”é.C—ÍÓ4¦xs°Ò©òkt–ª¿ki¡Mß“î#ò} Â’m웞l»ÌBÇ“yºBiø‰ì8_ ÔLgQ…0qÔîÂö—G`çŸóHq>ŠêÿâQ¶G¼Ršb€¹ Z}žûF‹€|,;ðN0@½çôƒ @nçNñ( 0Œ,€xÙÿ>߄Ҏ*8Õõ•þÛÏÙÿD─àä~¤'’Í|3éû¥ Z>²…vÐí#"pÏ?°C»þŒúù>ßN==¿0 s¢\HþŒ`B¼tÐú:Í­8<UTñ9(áþ•|+] +÷ö...>æO»?Šÿ +yÁÑ” m¢4ÂÀLâR~B[XUœâ5ÁjqaA×-Ëš™˜™½rÇ ÊÃætY·Þ½ÀŒk€ÃÃbÃ;xnšT‡õ¼®Ô[s´¢mñ÷«g|)þ!€HÈ©}¾ø³O?ý2ò~«·XéïǾàʧ=+ ÜöNÖ¿~ú&üj_œ œõü=Ë œUþ`·§ìïžQÃ:é?ÿg€_Ó'{·ó¥ý35ü¥<±U´–Ù[rð˱±™ìÛÚ³ËÆ•°ååå­ÝÝm—w ôMþ¢oyùÚötL0ÂpÈ…ió«>Ðÿ„΃h_hÄN€83a,¼M9á‚r£-B¡‹Å¯(冱»{óZÖqOëÇðÞ^¥*nk%ƒ ]½¹e §ˆ¶' _“k¯ì{®gšž¨ªÐ0tD …¶.š¿ÌYaUÃ55E ‹‚ôá8ŠD—j‚Àjvè ®$ìDhžé¹SS5â5jõk¶Ž%}%$taJÕþ}wNBæP±öME¦Æþ€ðô7aÎÒlC2½Pu”@WÄ–[Êט®—…9Æ`,ìnÊ91ÇL[7,¨(³ªb9À ² U-Gš hý²*wù¡¿ø#<°ž1p=Àg¸. sÄ­€_uýºøx)ÀƒÄyìïÁÉxŸË °Ñß ³ÏqO]x`4 àV@Ü0}ªH÷N¼Ü6A4“`ú9Àµ7ò܈ÊtÂ: ÂóÈô+% +`аÓâ¦0øMÀ˜ƒÚÿµöÜì*„ú÷ŠV±—HG—æ ˆ + $øñí§ýp‘×ÿÎã.Êÿ€¿|ð`a5pJùMŒù™W’ «¤,Œ:E‡€÷ ¦YÖÌHùÊ•ßÎ\ÔÃyªòóÞýüýsçLÔŠFíWzQ™&P¯Ü»Xž¿ø7̰ÌM‚ZQÑúÿ¢#ŠÎYàinç³tüw#€ œ €Ëz€ú‘Œù@dÈWÇ{ À×ߌ_.‡/è:'àð õØ‹ŠÚú—¬€¾ +pÖ ¨{ºüÇYžTà9ó…?çÿÿ¢Í±ÿ7äO» p‹:QU¾ÅÍlx½8¨¿»º%ª[#Ƭn-_moo·wwÛíö¶¸;9Ö¾¹}íڅ´&ËN(ë†1í^ˆçB üåË}“…ˆ•§‡yFpaŸ:èBa_øðCaØüL˜¢’+X:cűɱ¾6L×3ëk˜÷¯c&°ëˆdŽiêW·×¢„€ÌúµQUÎjX®/WeÑMD„¡i5ܲkÈÙÀU¨’::äºÕ0«UÕÐ4ªl3¤]V©ÆÛ¶ì—™œõMA‚OÑdO( ”ãyOfRy޾CEšs Øÿ©9ÏÖ˜`ÚaNuæz„ ×dAFaNst]™Ð=ÛSĺü9É”$¦Õð(˜݆.mÁúîÑ=¤³²½`€ÉB\€_ÿ9_лG½˜ +îÙÔÉœ `|ˆÀ+ý[í"øáÞC”ÿý€3‡pA h€\œ + òùA0T¼§¯ØAñGËÑÁ„pçÙN„ê=Õí +ìZÉÊ Tw0ÿhžJqº‘¼›¿Û„;@‚o –¨8—à „Y}«Ôo·êô¡…< žNðû4€Ò{-tþ¾ G Øý à?Û‰s/ ÅV¼BhÀ_„°’KÇ©þ7ë¥J:mWšéD¥?™OØH—|‚‹‡ˆEx)#qÁq&ò6Œ€¬ÄÌ•»ù„•/®®:€Q&®þj#fÍx³3WîÌ| ³&ÀÈ»å‹÷bÌßµ4­¨‡À WÎ]Œ½÷Þü¹i`ákš£pภŸ}ô¯ãŽ#ܪ>oðyÐFÄüŒ>á#È!€ àõë€ +„¾ä À_|ú¦ÔÿG/û¼ìû–ø3ýdÐ=Éò{‘8ÉìÉ»½¾?‚ÝèГv_çI_‡sXDÇ )` ˜<aºLµ_——eã£É±!qè½ Ûb_»oû&Á€¾ &'w· +ôM#Ïosr¡\;mPý'ÐÞý*À …É1Æé76Uh°†ðöT¹Q5 S®Yå<`šÄ»zs›'" 8“Á&@{,M×Q{hkûüú:RÖ×3c5å”]©ÐeäùxÜ€L“±ÖÿLEMem‡¾3Ç,T ]Nee½¡S‡N¨…²W¥Š»§Iòb +Q~ŽæyµlÊöei’°ÏÔ,õþS»„LÍ@óNM¾¤ë:3 ;ˆª7ßÇ +;’”!I¢»ö5ݻቲ®ûæÇSÂÇ`E€Û\¦›÷G›`–¤vÅŸ„"\dÙ¶C9ÒÿaôÏ#ÿàˆybo…%Ù,BŽ2)>¼ATðž8Î+}­€ç<Œf¼¾ó€ƒÈ€{ý†QðÏýí¥ýäâ¼É׿®GÁÀ¹ž&#ÂþÎÉ@mzdµ_ ÐßL‚àNÀ=@o°‡¨ø¯ðÀ€þd%Ì þ¿„5À +|…[é¦ßB.`)N |–&0`e#€‹ß¿ˆ€^ƒžïÃlxº*ÇÎ]œ®^œ4Œáa}‚9ºRÜt”šøÀvÄßË«/BXø{gƒ‹1ÀF Øý/ßÙè9¡Î§ûV€ïй•••( q€Oߘß/A€îÀËàºמì þÙSÔÎtÏêz;ÿ§€È†ðôÎ ðOž+^çùÓîÓΕͣÞF€ +'€à—OTÌ—ÑO/mm ¢*[“Ôó÷íîn¶Û¾˜œ¬~Q¼°Ûž¦¦>¼œ€Ë“7Ïs À·—Û}ƾ0Uö¼ý˜`ô¹Oq<0%öÀª:a·ƒg0Ï2™ñÉPQ¼ºÛ^¿}m} ë·×o¯o1Æ,ê•Ãâòñmœ`ØYLu|¡@ýwà™žâ(LDÕgôtm0ÅÑ jò³a +î«N"•r;ÍÐM³¡k5λY1ï²lJeFh‹¾æirè +¦ãaÒͿƤ¹©U~E.ªŽ§ÙßÐÃÐ5¸ÿÏ™ôˆ@€âÚÁG×i˜rBÂÔlVã&BÈ- onH3]wÎÝ7MB𭱆U³‡^øíMÏÄžÔœ•ÕÔbþN²°ø‚, œéæQö_'ÚÄü´Õá+®ÿKKKs=@dpÏñpþ: Œ ˆ ÁXöx/ ·‰×ã‘+ü(o§ðsq·ãcžÀãù•$ÚÄ'½I@"xÀÙü;ɹä]®Ìã¶Iˆô›•Dšçÿ¶|œAjo½ç9Å÷áV˜æ›}õúNÚÇ~ “ ,'¶ú¹V®tТo 뀸Mœpöÿéþ¥J?A€|²YJ o®Ç "èÇZü×öÄÕ¡7aOПϥ‰™Ù»VÞ*i rÑá#qVÚðÄ¥™‘Ù™+jÁìüàü´>|gþbìýså+¯õbMÿD¯0ñ§ç>]2<6£o²@«iZP«¤°`ᬠ+ðÑb|g§ÙÜàÂ~¾Àu€TÜ¿oò<`ú™?-¾0þidÀÀõñ/{[oð²'`/õwà…¾ŸŸÈ‚ïñþùžfÿE òúëF€îI|ÐÉ +àá ð‚ðõ†ûÝNgQ^ê©©—TÿjÑU|lfSòGMҧ겸uár\з½¼,^ø‡ »779߇³¦bÓÛQÿÿ“óHڽܦ„û,¨ÿ"ƒ*ðÃÞXÀ«št-Y!Á•ÜXÙ EÜêkß>¾½Ö†€'¶û&–YÖT:¥xVDfýÚúQf ¥º¦Þ°BÕ6mY mßÓ#¶ã˜ ÃѪº- Ñ-—M²µù¨Á%€ÀÀœiÈ-™Ã°úeh»Oò<àѦöS4'ìK8ʾóoæeCwXj,=iÂv¨´k²î–ç„3Ø%ôüL—¨ôK®°O¿¤‡ºdò8Á†÷?¸Ãþ×y‚BÂô©%ž°„ˆ†l*2õ?#‰ípŸL˜À (ªÿH¤¿ã§xµuéiDä"€w÷C•û R„\-Bùæà¯Û3úÁÚü)Ð[ ìyD­<äÛ€øüJ ]w¼?!€&¯þ•S +€+oôTüêÏÇKÉV»z‰t‰ê~=ÝÊ×óØâo¸8ë¥ð~. ¹' þõ½!•g8ºÎĹ8œƒã郜ßÁa`ªÏ'šùdå~)_ñã ð’ À¥ø¯ƒDy"ï”.MÐ_ËÌìL~"?¡9«EQ¼–‰€Ô9LX¦5{evvæb-¸3?8KàƒòÅŸÆ" h‘l W‡§ åóù÷§«çÎMëÆð°¡Y¢®)г©-ЫփÂýÇÓøÎgéæøF¯¦s;` hÆ?Ò€VxæO³ù%D`ãShšÍÏú¹àMazëgÀ©àõßËC€GRØ8uòÎt¢AÿIûßímþñÛö¾âDpøš¢×ùÇTö;„²T…ŽŽ²(FÁHÊ©"5Æ[“c[CcC[Ô¤^ûËêè2V®-/fŽŽ.ìnß¼6Ô(ĪLø¼0'ÀŸ¬q-à·—'ÿ–ŠgµÚ€¿~yxò+/ÆÊ‚›’43ö!Õ}³±?UpߎL%/»j\]ÏÜ^û÷q»ë×¶ÇL¶©‰ÙlO¹½}Uí¤©J-»¶˜ÒXž§ö®àÈY™º¨Û²Ã衘dVUE•&}† Ǧ¶,›ž,SÎj6a²D=¾,¡ñßÄ=|ó13¾™r=Æ=èÒ9&ÃÙ7Peäþªª£IsTä=«ìÂZxΖ$z,W·›5DÕÌš2·¡‡âþtæY¸¥‹=BI*b0Ä$_Ô†Bjöe{S}™[ù"(Ë€©ÂG²º. +ÈŒJ?æþP#÷_¤:¿Ú¿Têt/->|È)€>ùŠX€ƒ^* 7à@‘ºýƒx<½ƒ³é:FÖñ:7„µþñÈ €k¢DTíR+Ý<`£´¢?ÿœÞEh@" _À +„€ý%ìëµ*a%ÝÚIçÓM»’ö}¿¦VPª§ŸÕ÷ ñKן¥ëý¹J£þƒúR:×¢ÿ鯑ˆÍ„\«žFˆ˜ »L`&ÑÄ'‘w8=l€º?þÒ5«â9ïÙ¥¤v)9qéÆÝ‰ +µôʪ²ðû¿H±UB”‘Íš±fétéNÑù`~~ÞÔ‡gÏ}þÓ‹ïÈà6TÓ«Ì.èCÿúîÅé÷.Î_2tv‰)R@@ jŠó h‹^0xD ¿Ù?¾àÓ•ˆ¬#àÓHXá`<Šä àúõ•ñˆÓpzƒFœxq +Ðyið}3€GJÐ}Y)Ø:þžÇx¾ûQ/M^ûz·³`Qd•ëÿ(êõ¤Ö¦z AÁÁÐää-ú8¶;zt<º¼ÜÞ½v| ±¼»““¿Ø½09Oe|J(5›ŠMòöŸšöõõ›í¾ _|…àÂÛÔUª“Ðp _5„)Ínð@ ¡€0!!&HðÖÆØµõõÞ(a ª¿ÛÇ}cTž½@=^_çÔ…××eÛ%·Aý¾i2Ót²Y‡ŽêȲaè²Y­C†-+†#»–Yʲï0ÄìiºæëÞ»ÌÎÊ" Œßµ©†Þö[–ëî£sgšç)b$З5i‚4hxºfx%Ýt-¦Ûa [æ}6¡gSÎ Iñ4)úž. F(òjHº7ç1­ˆÌ_i8U¶=]—åM93À˜þª<8jü3pÌðÀèiA(à舿ûÏ,_10|º¸¸ôpio8¨?‹pþ?Œšþð$è Ú÷çzúÈ÷7ú\Ø#" `¤Œ€úNÒ'b@É€ˆÝê|´ +U Uû•üæÄl äóºÁŠßª$áTcŸ¦ÒߟFR`©÷Óv+ôsÜ N‡ ÀJ{¹&tþIRŸÿÓÿàI% `¨[Ò#WJu¿T^@ºî»‡xIþ‘ø‹Åò‚˜œP6-ˆ/ÍÞMX‰ Í‘‹ òµLF¯­þjaÓ³ôKÖ¥ÙÙ+Å;󃃃ú¥Øìÿñùû?˜ÉOèµO¸p¸Ê†‹Æoæß¬ž#Œ`Œ 3eFDD€° g})·ƒ@à•HÕwýÓÓòŸßëp<ÑD Àõ^ÿÿÖ§=¿àh à ½l€—u‡/DÿqðbÍô'ÊDø¿0è•ù^0Àé¦à èÉþºQÀëèüý¯õÔÆÿ_£=ÊÊO`œ:R‡,E¥¶SüãÊÑîU5s¼|<º½=zœ9Uw'/ìŽM^¨Rù.—Í}xývQ´×ùºþÍÝ/¦y\ ëN¨ 7Œi*ÿÂÛUC/jì㺾‹¹\¸/¹Sn Úb`4ªÛçÛkë¿[»¹}Æ?™õµ›ªÃæLV[>>¾¹~ûÚríªy“é¾F-vYWüÀqMÚL×å '› +›1˜ÿ2½h4 ›ZsټϵuôÍÂ’O“S²Ïd‡mÖLAå”zßüÆs¥€n! Ã߸uý2¼†¬ñ =–+|Œ½?øôz»¾SûF(ϱ'²*L0Yn…¶$Lè6(sÿèܘó’é²bÈnh-„ˆ¶±Ÿ*j–ªª-f`ø'ËÜ8"0ôHq«”ÿø4EŒÀÑ"Á´ÀÀ+väâÇ\À\Däx#ÏÃâ|öÏ €\äõô”};qv àö\r €šïÜ/L÷AÚG²(8ý÷'7*+h.¬pƒÀ“ÓÉ Ÿh%ÔS©4!„eO«äWü¦Ý¢w>•ÿtè×ý½´ ¯?‡Çɵâ-Âpû[¢¢ÿ5ô€8Ô½:W$T`MD N¢@.øa}—ÿÃîã?tÿÈ£€º?Ükà§WÄrR³7“yªÿÉŸÍæ'òš­¬: âBf@/®Žþ*Ð,Ë»¤Ï˜‰Ý²ç¯§õKgß¿øþç³3–7T3jÅO†tF \¹7oú£sóúÁ¬Ø ‹5Gtlçø‚ óu¼#€_£ø_œ€80Neÿzøe4à"Àë‘[P/pãK.|s¶ž?Îòü‡/ËOU®þGüË€ÓôŸ <ßøïuþ§ÌÁɼ?ôîb.Û¡¾8@„MGÕEÈÊSYÅøˆ;©!îf'NŽ\M·Û£™ÌQfôêªÿúú& åÂÛþ+be£}~ 2€Û™Ûç/_˜Ž Ìùc¦aŒ’ù•[xÛôˆ6YAˆMåFCâ‰&³L!&]u”`Èœšl··×¯·×o¯­#hýxt #üûAŠ:u”RdªŠ°þÕlG¶ 3©ñ·Ý‚[ÐD•Jt£Q0 ç‰ÈÊ®YUtS di8´õPt´á†>Ç|‡zo[¶ÍšŽ¬jë}E¶?Æ0€Åè°co39Rsïºv 3ÝŒ¡Šcþ/!i&ÿ¶ã•¥@Uo¶²!³\†e~Ù?\ûϘ€YLÒO¸`3Á.†ts{ +Þf$ü‡ +?hýÈéw1Å€Q÷ŸÊ.«Qšuf)¶`àÕEÀãÞ +@dHå§úæêˆü £U€ƒ(û—kþ¢Õÿx/êçnÿ;ü\ü”àλ|ò2@$€ÏcZõ–ßÏõ|ÍJ³9žþ²²’Xá¦?Ôþ'@$’<øF2y·F ™ÈßO¶ÆÓù&K­„ß,ÁÄw's õÓÜp/ä ÁXLïÔ[%ªô>äܲ(Ú ¨ç¸9q…›VüR«T¡GÞó!Uˆ÷†ŠO;ì<"ðƒ¼ü½Æ¶#ÿÿD99aÛɉ€Ù‰|~BSqà€ŠuIó&® Î:Š08=8mÌ|P¾xïÞO­Ç0Îð½‹ç¦‡ç#`gEw4QSˆw<ûèÿw<žþ¬7à«€oE#€ˆx*@®ˆ€ñë×Ï6pö߬À©à%p–ðfþôÀ£â^Þ èéüOl»Ý€3€7† —ûÔÒ⢌Úl'õu/€^6Œ‘ƒæ#UÍ P?šÞR©]¾Ú>>ÊXûÅØ…«êòP;þ+(m(Ö2™Ûíöd!f2„éM¹v¨xè¡§bn™ï”«úè:QbûSBà4 +‚PÖÇ0 S±É¾örûævÑÀØü[[ëEFå— +gny)Øå§T˜íÒIv€wÆàùóéun¿€·>=¸pú3ŒÞ´ßrxôâ.ÀK†?ÎÔù?Ap™_÷e^ gôÙ}Où?ëøÚ¯œ%¬—Ðýg5|¢òP '2ĔѣL§³¬¢â¨ÃÕ`ù8µ¼ÕÞ=Îd:Ç &/÷-ß\«‚æŸö …±mpëçÛ»cÕ˜`V‹‚‚¤õæ!Å„}AôOý¹3eY/¼=õáT WcoÇ\ Ñ:8ËÛ}—ÛíõµmX®·Ï/«EÃÔEåšç‰<)7uKq¨°ûžäºˆ%Ȧìò>\}S²Y.¸59{DHFçI=ÙÌ¢ji RA¹aÛz9€(‡šf–]šyÀÇžšn9#Æ1Ê|‰Ï…t_Ò™{G’O\aêFc{\ˆl@½`ƒÖÐmBpú1 +½ééf>rÜ÷tÎæ•GÿÈæ*²ƒ£&D *¶¼iÃ8Xæ©?<ý/E¸@Ä ƒ§b¹7]«f–è›xÕ¦X\\Úð0·DÅ^ÑîÃñ‹ç#Ùò¢äÎp›¿tn§¾“Ûák~¼âóæ§ÎoðœHsc î +Ìç-Ôn*¿•V³¼B-~3Ù7‘¨ä“‘?P~%y71w:ÈóA@ó>âúüJ ¶}øâJ:»ªÔ›õŠ Ôú°žÂ2€¿ƒ€x¥Þ"@ÐÚIÇC`€ÖC¾ºÎõ‡éz?œH¦+áâÞ^¼§xLÿžv9 øë$ûøAˆ7 +ÄU'9¡ØÉ„•OZÿýÆ„–œÐ¤_Ë Å…Õb10g4‹ÍÎ|0sef>ÐïLO³8Þ{?|Rü¤¨ëì:\.^º7ño‡ÿþ +k„)’£x&jE @àÔÎ<øtrH_Ù8ax}ÿÙõ( €oý]®à>oq@7¹>¾à3¾øèMDݳ2€îáËà¿ è•ûïsìMž3½ó§$Á)ðæq‡%¤É¤dÅ2›Z’79~AZêÖræ“[jöX]ÞÞmÈŒ^ݽ0yaùj{«:­¦225÷ È«ÆV{»}~{wzz˜Á’—Áý—*|Œ#Át! (ì—Ë…‚!}85Çjp$ÿ›qàmÁ” +ÓFß…ËtW°©pst­²sŸyšoÛ +Àq•P–S(7¨+b×S¡òêhûún€Sw†È"škÕÁuR˜À¢Ê¢¦y ³1†Fÿ2{Ôî+:Ó±Å(™ÓýxŠÞbS‚ÆÜ}³Ùì¾P0=ªÍ « J`;æ Så!wFL—»þ¹s®Pv²ç +’GÅŸ®<ÿYU ‰i6‡+š + ÔžÈOœ ¤Ÿ'XÿLÝ–7ý¼þsk  æHp^'`©‰¡=oÞ›;iH+(þþA j€ú"[8¤ë-ÀPýC˜ÀµˆœèÇD¡?A÷TòÃÅÔãè¢ÓýcçéSP»?,è,"“#CoýHü/Ž8«ŽUÒž$'’—¿(QKO…a@­ø b6ó#³ƒ³3W®”Em~zpzÚzïãwïýôÞOïXÖDmH§ŸD[C`¦ß›§6Ã2˜b)€îÏG/Šã;Ÿõ§Ça´q=²Œ$þã+Mžô5ú< ¨¿œ°¸ò%‚¸ÀWþñ®{Æôwà»Îÿ­ÿ/ÁÞÏwùÎH_X <ÓÿŸ`ŽÓ €Ã7gÐã:§ÝÒgŽ |¢(J .¥ŽRÙeã*½¥clK\¾Ês€—3ÇÛËË}c¿@Dàf¶ÓÉ–cjá…†1T3¦ÛÛCú-9ºˆüÁŒàÃÞþd ö lø«†€1€&L¹.¤Tn=SÒÍ)5Ü‚ùÅäåÝ›k×x*ðùóë™ã£TJõ$fÛ¶Ç$‡zù@¢&_½†QSð¦6^k„ª*JÓGŸšÓ ¦™TnÈñòJ•T­`ÖoN(WmêÆ= H¦¸”’%KÖ¹7‘g…6Êr€<çH¢šS%É`º¶YÒQ•àޏ ÛÑ3tÁ(õ®Å¤ŠÍ‰W |O2çî‹Tóu:8K2B:˜EU“Œ]à]¬F.€™E –Tj‘7ýpÎöŽž{ÿñ70xåÀc¬PÿÏ €‡=)`žÀ!ïôO°˜ã‹€| 0ú¿%ÑǨ¸Ÿ’øü„%ÀbÚ‚6¿™Ÿ[ú­ùÇy> ¦Ü éA€TŽæ‘!× 6ó­$µý•47ð¯TÒ•þJ¢Ô éLÝN×KaK®ç*ÐæèøÓýÔì4Àºbý tПOqÀ}‚êéÖ5ÿÐ&òp¬û¹ÅÇ.W õÿw8=ý^^¨ÿüÞ3XüàÐ?Êþ—€@¶©ä‡w'.åg.ýìF¾”×KEûâê¯Ò°fY`ffgDýÝispšýÍ?¿ûÏïß{ÿƒ$€š €AS¼7xnð½ùÁac„ÐÖáÎ÷žÆw"ñ¾§ Uw¬ø¯pQÀÆJÄ4ù€§âF×O¼€£,€Go,xô½á¿ßÓö?úi@ßFN@Q: ŸDiAÏÂYUàá›õ´;| +cà(‰ÖÙTÂ@¿|¤êâ²*ß›S··ûÚ»Ôšoo·ûvÇÚ[ÛÕiu1e7&P[_5˜P±vMÜ©Ë è°é÷!vþ„©XÁ¤2„J•n:õ¡éÅ +û‘p™zdk´»ä–ÙØØåÝõcëçoó%øTÀª²xÊ&øûÔ[{²ø¶ã3×}[Á‚ž(5DšvÖfLËLTE=°¦TõyØa'¥Êb^Z¥rº(»f•!«Wp5Y´ÝM‚¾IHÄó=A°‹2²~Pýߦëf0úô–,ÛsŠCß)áŠPVAç+ŽÅÊ‚ëêáPVvËðpÓÖ É5=é†kšÒ-*î¢,J’ÂgYU–”€ +ƒµ _ +\êÕ|îó»”îϬ,öÖ #`ڑ倇¯\ðèiçñÒÞÒâÃ¥¯÷æžîÆs|À×ùa D²¿ƒçëˆØ9QÂ5°ûÓ;ô®ë]–Fá÷¹#`=2ò{É@`ú+MªþÍÊ +ÏþÏs[þä +¦ÿ7 D4•äý&a\J—šh–JÍJs§U°´€\Õ=B}çY3l†­xú`¯ÅƒÒ;õt½…]Â4v ZÉRɧƒ\\D÷¢Òß…ð‡t2‹H{^äÚÞðD¶(?€ÿú©8{Š—×žÐßL$,Y¥¢¼ú @Ñ)Ž.8ÊÌ%8ÿîÌoggMÑ£Ú>=82ó9€{³IË*êUkxó÷æÏMO0K7OWÖDÑUÌœcODúꬄ¶cæ5mÓ³å¬wö@¦éJ¶Â<ú€ó®È£©TŠª·b‚~ Ž_gZ ÊöôÒ&:J-fx©‡)€ºÈ)°ŽŠòYÒ¥OTõˆËÿþðʰÈSö–N›ÿ“e@¾û‡`ÿ `€GÿÆ{ùõH ÈÕ€Ñ"@ˆà=êö9ÛTp ô‚áµ_çŠ=NÀ˜ +øxº™Ï .:€_H¬$ù&ÀÝž% ¬‚+‰d)Ùí`+QñKÀ¤é| Á¾H +[„5`pæV€éx³ÞшéH®Ä {ô§ëü*IÄ ïð@nÔ `—oþ;/Z /ðËdRø£GÕ?FIÑÓôGð_8Žloæ5ûîDr$ywvÖÂ@ù½è,Œf2VŠÎŒ¤XÖì•;—g­€ÍNÏ€øàÞ½uCºnVÍA]!0üsŒF˜î)º‡4 Ù*:ßeà˜æ"ÀÞ@ß_ù&?ã×7zY= ÀøpýÓw~  þÏ \z«?:œ žÚ3pøŸ´üß+ è~wðÔý§7èùJžkß<âm)KÝ'¡°¨ÅËÙŽ: ÚÕ­­ßmM9CcHÚÞý£G™k»»7 ôµS£“ÓfuH¦tqÈ(L·×ÖS!ü} °Æ~ ®?SS¸8²f È@(¸1·€`@ú~MB¯\fžfŒ]Uww‘þûzw|áÂÒ¨zžfƒ/wBª½Xè7=æÕ›5°ÀÀLÃq´FuL%C=T Qõ_$`0mZ¦é)í)s‚i$QékØf(N‰c wÊ´_øÇ)Á„ÀOˆIU¾ºÀÝ€b‚i0CÖ¦\MÓݵ€_Âì>ÔmͶ=!Ou܆÷`ÕŸŽf„ªÃø,€¾3 5|1 €§e3¬êò‹b…Yž »Oñ@D4-FH@²¨þqaÀªgà•³ÑðçrºäÑ)¾w™ÿð\€oÿO'‘ +o;QðOü…þŸ;äz›€aý Í÷ yH0@@Ú÷Óéþ§©tW6L}<÷ýÏGÖ€y$çé™V0h&[É|*ù´_©$ZÈóI'ýñR:í§Ÿaѯô¬÷ 7ˆWèð+•x+DJÀA>NGFÅŸ ‰(`Ø +õÓ—Ji»ž#Ðé<îPùÀáápdÀPù€ëeÄ…žD£fSœøüY€@Q³JO’ùKùK3³ïŒ”¼Ò„&> p{ <%pÉÒ,ëÊ,FÖƒ‘òô°9øÑÌ?ŸûžÿGlÀG(üÜÈçÞÁp@ÿ®?ì5ÿ;!Lw°þe¢þÛÐhõ—š-*þ­•€ÒxÛ@P"1ðWF@2¿QiåéfI{|ùt¢•,¥ûÓÉt¢žŽS'>«øaé!l[uóˆV½RÏÇ}”þ|½I˜¤•ö[v…?‘l¶òÂx¸‡ÀîÓÇ|0ò8üA^ò"ø>r@†Ë?Ÿ‡£òúX€DŒÀòó¬ެiùM ‘œÅ`eÄWÅâBfàA‘3Ö°613såÎ%¤³+ƒÕÁi6øÏï¾ÿ›ýå“Úÿžž6cçÎÍOÏO¿g#ÌЋڈ _,þ 8ü`4ð9ÎÓ€Þúô­ñ•h  ÀÆ—‘>€×¯oüšk¸àé£7õ4p¶t¿8ú?¡ùÿÔàQàœ˜ýŸªOH‚îYó 3—¼?óîcðÊ‹Hìt²Ê„5AE´“9R¯ªÛW¯ªêalm]½º½||tíÛÝíÑÔöèòî…ËWo9 ê’M;p´ØTaÂY][[_kï W€áO”øëEžTú ðm€©‚tV(›¦Pfn^¾²îxJ(‹¡¬¶·o~{~m}}ïn¶¯ŠYÙd ¨x"7/šœ§ÔìbJ¬Ùò^Pô5®ç—5]åó@×G«Ùžó= " +ò¦c›¦ýÄQÚøP® S¦7¨É·Ÿ e?›òç”b©ø„©rcŠ+ïÐML¦[žmXÞˆkiJ`PÃ?ÁLwSv£rß`‚µÐ÷l1Ð]×,H Ióx;T^à+¶ Óé ø‡ŽxBá+ÿÑü_õáSÀ-²O€ ø* jþÕÿ? ` ûC,Šu0xÈ5€¹^Ðó~€½9Àx¬œ˜EBþ™öDg¹~¿§ÿ‹`'Tï­€€ 0Lû=W`,ôÁˆª3Qj–¢e€|¢’àá€|p£ Tâ<Àx+O  ’÷ïðR/5Ó *ÿ­R+Q¯ø+X\ءǂât™Ái¿²SÁ\€ï ›°”æ*žà?Ã7ž}Œ!@oð‡?Là)€þ¿“‰NÙ &‡Q½ç1XÑÇ Fà :™À÷Ÿ¨"Ë%}S “.˜HhöùCàj±8ºPT,é—ú ]7sIØ,ZWÃ3æ€{÷þõ§³3yóÿŸè€akþïß?7ýsÎXúSæè6€ó@´íïl`  ÙÜØ¸Î}¢DÀ·z _û_á#ÿú×Qn ¤€À _Ž÷Öâ ÀÒZþy®Œéû^à:xtRÍ»/ݦôBµ8+ìvß ÀïüØ;OzÙ€)ù–~‹ëæ;˜@«ª¸,ìw£Ùåååm5súñ›ÇjߨØnߨ\ +ÓårM «„BG<Î@¹¿m˜±Bà Ø0ýÀ6…h ƒûKžfâ£Ç±˜Ä0Ìwl14íP×D¦ßº:ši#hýüù›ëÇ£ÛW—GÕšokBLÒŠ5ç¾§é~MáV:^I ó×D:vÑÁF@*5 +jÎ9dEsD¤ÿÒMC©0lØŽ­[}£>aý˖¡r- !¼ÿ%†´Ë-» ø÷¹€#0I³‡ S³YÖsĶ ¶̵äP"0`U™T5}ÑŸ+ Rà7d麤۷DÂô Î ‰1ÏRTþ¸Rª¼rY–ÿ©0àƒxþ©¶ˆ]@µ3ðè0ƒ\x”"ðÔÿ§\[â½?çÿ£C|ç«ñÜÉÀ?šøGëu¸ô4õ³~@hÿ{Û~Ø\>ýç͈@èõüž0ÝJ´š­fz£ÔlÂð¹@ùñû‰<|³‰Ùˆ¸Ëã‚KÉ|>™æ;Ølæ+ÍVÉO'A Àù€vŽp@ÎÛ;~''ZñRŽ*+¹ÊÔ‡õþR)` á³8‡>K wŸþñðé£Ã^ЃxçòÿG {ž·ÿQùçº@‚Ìà»@täM k€‰™‰äÌÏ®äKù¼¶éˆ|° <@P~XÓg¬wggffµ!kzMÿ »ÒÓÀ ð“â'ºn°aspxøÝع÷>8ÿó÷˜Åz´¢&'iüþ; ÀÒ×ñt«9¾Á@´°€ ãÑ +§2L °ÀÓã_?~c€³ýý‹ @Ôä<¯í_"ŸûOïãÄèìR`÷ùà4àMfðc§6§ƒA@6`+ Ró”¬l‰ÇªŒjæXüÝòöM‚ÛíåããvuòòöòätašÚû˜å}%ÄÊv(f;ð\kO ÔÓ›…}jòM8ïisTì#F  a€ 9vâ„M™šQ0­9î£!•xç©©öåöv/¨}þæq¦3:ìº\i iÌvsRž|¦çȬìBNh¶Æ´ S«Ê„LÝu60ɲÕRÙ#¤P65U¶5]ºŒŽOr-ìX(ý£$ÞÊf¥)`–œrm©€Á6t†EÁôLÁ´ƒ!6Cp#µòõú:Î;›6=¢Ã˜aèŠ$¨`s–äŽ×LW÷Es¥@ •PVó¦ÅFè…Ä>|—Tù‰môc£ö/ËMÑþ/¦à ¬†"˜µs8@×¥ÿÛCóCÔÿ?DýÿÒõß èípà€k1üÇî<ä“€Þ.Ç'~¸Ãåv/øùûÈ¡a48 82êOçÁèW*+ùfi¼„¿|1@¼‘¼qw&Òr;º¶…-Àûã\è·’TúûÃïó†–«eó½XLQ‰nT1¸šO±¥ªbªš÷ª9EE¯zyŒû‘=CôÚnAå¿L·Y&L'q(÷ð2 cÔ±éj,€Ñ` C€fi +@€ý£A ðP€Í~ŒÍücQ€£Tèb€dàÚ?¶FÝ·9Zõãf@šj¡þ7 ×u@·ëct O=»õ±0Jþ„c‘.ª6Ñx)0@}ÀŒÁî=Æ…0Ñ7Mv€~ÌHûGi×Ūá üoÕ×Ò~¸iÕÓûÌØGlû†ÿö—kk€ÿX÷³ÞÿÕ4΢Î/CÉ­-9™|ZÖ¶’ð]m‹¯ñÉ! È$€} Þqi zM‚ƒÏ?DÑTNÃá0ÛÈ…áã[Õž>¥#]͑ۋårÙd¼ ‘¿C Àÿí‹&q ðS”¨VAr´ñ•;¿¹3¾²RîZºªN<ò,ñQIL‘v¼w[Øø*Íò€P' ÖáÇ ¿™j ?‰'öd ãiŒôäÁyf0$Ó¿˜âG~ÑÛÓŠÜ}+äpˆÃq÷ùåm€ìíÇÇ$äh–jª+@ ‚Õñkœ +8¤8u5ÜfÞ!œnáv1(³9Rù€»WÉ‹"ÚY÷µããåãËhàÌ`d:aŒÜ‘«(¨¡BP9/ Š…xÖÐ;ÀÔ¦!äx­”«JéOäj ͯ†LOP1V‰UBNÅqš‚ õë{JpÃ\*ûY!†xÏ‘NŒ[R›K«,-q¡{ØýïTœ\•ÀåŠ%¢±lÁs!¹ªeàÝ”ñN/oM(ªê»D-R±b1]1ŒuUñhK$ZFÎ8EÃ).6dOâ2 L”ƒ@@Ô[ÅÁL&›Í0‹Øs¤4Ñ+ÐQ .¼Uý±ØŸç4û'ØÖÙæ?Û`Y”øÃ&ÛùóÙ]Äc@iL.žePÔÇpƒî¶›nÑu~ºÐ³7úaìï3`˜i#Ãu@&dàoö#õ´Ù7í: ;š…Óá>5õ±÷ûGéYwÔõ[Èf#£üãÖ©ÀÄ7ô¬‡áIÀ³Úfág±ºF=/þpqx5 +@$go’Ÿã€öS[I¶ˆ®›2 ?ÿN€dÞt2o>ÑÁ]ˆRÝÀ5€’\xÔ6ÛF8¢›úæÂbØ6s¶˜çóùT&ZËï&·JJUo«åòâødy1¯– ek¼ ÿjå_èàmEÅÀ§š%ƵÂÇwî„~¹òá¸dÝÈUQ,‰žý(÷ g¼ÛØO5Ö ®<ø9Ýèâ5Ä-€.Ó¼!på[;xYÿ'—ô':€‹K°¾Áî7{‡ÿ+áYŒÐNÿ;-`$ð–ºð§z¼^Å%»€œŸdùDBÀ:5ûГ±-O`&ð€:|"g䑃Ætq…Hÿì„ÛPIÁ”l'÷~É¡Ð<€¦îºMšUŠ¡b§3ÏY„ Í;K1BÜÝÄi;îáã .éh‰é‘ÞññÍÞcÌZ__O4òh£‡¡½ýR5,5Š«bðWëZ"È<®0ðÖÚI¸Tô=_–cK<æ Un©h©š–Ú°Ä9ï¢/¨1…T0ö¯…¿hÄàù‰Mxâpjlþj¸¥€:œ”™ÕÎt"V®*mÝŠé‰uÊè@˜³^^~¼=à&ÀãÇÉAF.)y9.Tî=É‹ÄáÉ£Â0F,ý"ªš"Ȫ¼À«†€Â|Ü †(ä+D€j:#ù{’!ägÍÑzˆäÎ;†ÂqN¬Bp‹Îwtê$ËžZAPÁ}…˜êñž’@ïàÛD"/m/¶@È„«‘œ‘÷ü|6ë)1RU/OMx€bL‘Ïàó~B”óد@¸7ül“i¾QVÏ×dA4|Äÿ,MhÌ`yHÓp +€AÁçñ+IŠa €7ðO'ÿGá?kþ3S@JP0Œvg[þh  ÎÀGÁ*³¥ÀQÄyºþ—n¥ƒÀ@æ³TŸmº¾ë¦ ¥{>ÕãE€Ø]¨û»}ÃÿLàúåE€ÿ%tŽ„Y2 wªÿn? Xî¢;°‰®~›ýHz̵©õß@¿‹>k­ÙºïÕm\ôëé0 ² 0ª„Q:x¾¶ºúj•¦Gm€®$˜jèþ€{²‘/¡[ÍÖÿñÀï?“z@B’uP+grA¼%# ña[ þÓîðyA1LÑÍEôpxrqÓÌ™9¥-nm=­­GSèÌc z›vÊy«\ j¡ OþÓÇÿòß¾ø¨|[7K8ÐÔ¦T(kßÝøˆ|8^,ÉJä´Gž*–òb¾­0' Ñø“æü–Ø êûßÍÐÀƒŸÓT n°`'X "À `ôåOv `ØÊ.Ȱ|€à»ÿ/eÃ|aÊì/~òàLVW³Â9°±]ÍMÉ¥„çñ@x¬ÿå$ÿ{~ª—l 2ÑA²‘ìõäÞ/zSÍÂÝéf‘S„ìšûíÿÉr{Z§@*ŽS±šJÿ¿¦®Ü×ß±Í.q¡ùŽUø Fýs,µÂU}KépHµã8\‘4?9Nm֬㼖4…ÏWæ"QÔ¯º³ +ÜÔ²¨Ç®Kˆèc¹#Rµ£‚E$ÕâŠèÇcé€è‰¢Q•1ý§3¡>Z¢3~×"–fI®`p÷à©!þ#¡ŠHy…F•JÅ"$‡†FðY +ø‚ª +¼n)ðb!Åt¨õ±~WÊðä;È‚Ä`ž¥'û¢m +1ë‹x˜TˆfÀ|ö<‹é²¼Š@¾C˜5Lý;‰RÝ?–ÿx +¼ .¸š¤¸×—ðÿ,èþë}>“ý1ä?bÞÀîGƒ@ ”à6Œ¶7 asr‚ ˆMœ¤}ªðqu( Á¼þè`ïÔ#];2fÂ7( Då_xasa1²Y¢û€&ÚbýßM£ +À6Ó}Û4ûu;ìºÝúŽi…l(þ÷Ót m­çéÙ°ßôm¨û[]ƒõpÚ¬GÆÒ£îè¬ðÿ ,˜Ù^ÍS0 ߪåKS5`×O‡­þ }Ñz?žD o HR»F +à$ 'ƒà6ñLæ'M 0·Å'm% ë·77© û(¹•O®g¶øZª–Ïéz¢Š9åɲgC_—&ïÝ@ ÀbD·•T%2ÞÑn¬¬Ü¹ñË•_K’t{B­jЧ>K¢ (¥§h`ˆÆ÷:û@6ìììÜÂ5ŠîhÿÛ¡ÎÀ;LÇÆÌ\nìì G@ÐXûi#Ñ[¨ÿÓîËÿÈÇ·Ô €ç=1! +Ù)uMë2Õ£÷ÉAèÀà|»7 RrRžþÅÈñÁý‚Ö)rÄìãî‘ilÜßÜÑŠM mx;©pÅU †Št7ðŽ(±h +‡.ÄЕ€+T,‹¨ªåöj@óG4/8À}L4XÄ´Tý¼Á]§Ù\IÀ7­oZC/T¤ë6ÂyfÏ ¦àý °ê@•€A0±MŒF`Úì‡ûOºi¬ÿÓx³»}øÔrјN$f©9 ›v[®Båi¸sôŽFÚ߇þóÙµÕ5ê|ˆ6€Ø¸š Àá¥À\¨MÕ¶à«R4š¼ì XÐ=‰3ä–¼Åo%ãt* Ó÷øÖa/dWŠ^WTì¶ÑõH;9³­ˆÉoxx)IÖjµ-ÏÒuQ×ý'7‰!!/è°‘ÌRâSàôZSZÑ&n„nܹQX'’^Ðà\ñJJ^|ä‰ +Õ†ñÎàËÆæìPhÿ…33C.0ó¦ðbãRxëËßm€Ñ—?e BÿÅáÛ^?×Èüã) Î”¶xoLí%è®ý@ÞãÙß'çà€ðÇÛ½dr0HŽüo{ǽ‘ûÇq>(“B%*v´Äñ”Öl:ö!뾫8E®è ­>æÍ;•°ÓOÿ;Uøô+@~Ë¡äÿÕ¼'$:ܼcȸ'¥Rb¤1@7àíÇÛƒLt½wüI“(ù„Eå|6.ˆPë+ \í8ª¨—=×ÀKÎâ³'Ù¦…>þú®"*¤âùŠùà6Ý@c ÊAT²BLQx™Æþa0ê-NÕã¬fÐ⿜Åâÿ$.;p…ÕøZöŠðÿõ«µÙg/±úG¼§‡Ï”~£Lô˜þ }p p\„#D}Ú xk!p´µN´øŸeñ?A€®PQ k #€O¸ ¦™È¨0®À{Pžúý N£ ZD`•8@OàúX:b×Q ˆ}„z¤1Âc‘t}4-ôê-HËíÙ®_ß7m õt8\ïºÝ0.P±AÚI«¯V)ô_°&ÀÕ4‡Ê>ÀÿT­&')âC=¿¾þV€Â HʸÀ(·â™­­Zf˜2à'=€ŠœÏJÛÆ@™f 0¶j|-ƒ µ•ŸÐ«¢¤—o/NÞV¬I‰¨“@þ~…]Ç$¨Ð *}|gå‹•W +¿”¤òç–n%òŠ˜Ïm矢ÐÈ¿0šf"@TlÐ?þQð3 +@áŸvv.¿¤| ˜}ùú§Cè_×ÿ?úA ³@âïyVÿƒ©™âÜ4 þO ½^£·÷‹éƒ‘ãûÅ‚"UœiB±ÝÔ´’x_‘w³š±­ò¹")t*óó•J1"¢E¾uTÑ‹±ù?!ÜEîW>o9óœ(ØbY{@0–h0Àöã=Ñ<€U9.<©*ÕX§²TÇ-5|C p^E#]9Bv5÷ŒÄ´O8BSúBœ¤A-q¦ˆö@PÌŸq"ð W·,Å帪ê1n¾èçIŒÄN}B§š¾ñÐSˆn"b=íµá®2YA4<ÿsÃä—² TOeÁu=\¦€³àx.Ñ]gyY¨Š¨²ŒÓÜ¿sªü;_ÍP}öž6¢CäGK s<[œ¯Æ¯b0˜P:õ§µþÑ0ùÏgàOq)Fk ëÏh°ÀT­ °…;÷Ìög”-Pħ²{¶HCõ¿ßoQC@x³Ý:Â7nÖqž©oôÃèô( z!²³‰—ÂÔí0Ê^«k÷íz·Âö­V¤e¦¤G ôñIý±¾A¦€a‚@ ü‡«ši|áE‰CvõÙ*%htÈÞ¯äJû±°‡ªyÀúP_ú—Œ§’µäV +ûÿ[IÀÿÚ]€ 0XÆ×E  à§M™y#§(ö¦©ÿcyaÒÌÕs†¨Ô’Bm=“ܪՒyU·Úznq± ô@”Æ%I-Œë‹áÀß–#R5 ÒŠøá ¿Æ-@I*&ªŸëPˆÈ µ”ç}ô˜Ýÿ +·€œïì|y Íg( H}º` n@ùJ;/ºÝ4õxùì'OÎ.²¯AùGgÏ>/>üíW7öxyjO>ÏœÇÏãÉ^2³¾Ý;>9à#ŸôšŸ{ Rì'\±©j¾È…œ‰„Út8¨ýÑý/ä8_w¤Bq~‰8¡Ð<‡5wÅ54k>dUˆÞÄE}R俉 Uº•Çõ~£Â9±¦GŽ{ðZˆ¦À7o÷ Ôή®ÊÕÏæïq¸s.¦Š¸H,MB1=W¬˜—Çx¡Špluî6 <Bòñ¬Oœùy’ˆõó@*ZWïqœhÜÕ€lª~g‰«À³çr®E´ ¶Œ¼¤]Ô\Cˆc5nxñõ=õ&–)i2Nßsó´Çoœº*^æËžOFдHh+¢€%=pDyüÇ ì^Àp™øÚjô$+àŒàœJÎ×àôõý%¼Â€£¡ßƒz&èÃZþh”úýО+ÿ¦€=jàÓYÍj ³éw~` ˆq|/00@êÿ‡ÓßwÝ àÒA3æíšØ÷ëï‘t7XÕgË€‹‘Åa< îÖéUÌ>–ó@lªk™Øˆ¤ÃÀ)"£ö¨ÛšMÿ±>[ªáøüýG¸€Nƒp»Ö¨0»6»†Y€¯_]0üÇ·«kо} €âÁÿ×üðÇ#µUk #@m ¿dÐߨ5’µ-` ô +JÒkn5€?dþ¢×ÿÆd€TsØùÿš«À¬>€ñ“¬ˆúèY¤X*¯8E UÀZ±’çcÂ|ƒX (åy…8RÛîñ59V1 ±r4;‚1ON=ÀñN…CÀÜ›èˆbÂ?|²DbºÈ+ ?Ÿsrì¹8X£ª~¡]Up}_¡­}¥j´ŸxLÒ/˜`˜ÍBØDö$Ë òj7ÿejú—¥·‘ áüбQ??YÅ÷Õx|õÊðÿõ+¨[°@»üÒiÀgÈÏÎÚâ;mÌúÔ)Àgåÿ>½‹¾ÝŸÔ÷© +`”åo4Ã7F +@e€A  ïö[4 Ý…êŸFà Jô.”öÔ¯3²¹°¸´F`B¡_§É6&×ën­ýº¨í«Föá-F‰é×10=Z÷ëpnÝ£„º9F-™6öý£ÙÙçkÏ×0 èõÅa@® -3AÿŸŠü“©õLôÑáÙ°÷ žJÕàÀ¢dp èÛV²–j@I  Má™8àF!À_‚ÿAôú&ðC €aäŸm7gGÂú?¢À4'€àEOkI5gåI_\¼½¸¨+:%Å»“ÿôá_üÍÇ›±`@m”Àÿ;+++ãH4nÈ?ó%ÅS˜@Þ xýòÙèèWcÌ ˜Iö%®þÑÀÏ¿üòv Àî^оD€™`0ú“'go^?2X…rãôx‘ÏòòPüǧ|8t£wÐ[NõnöR~óÉ'Çü”¦ÝÄ,H¢¡"ÂsE+eý}«`JîˆxÏ'•J%4_Y*Vt@^Ù ÷ˆ‘b•%—#U¿êTªOôJL1|_%%Ôlßü×ÿrs}]ï +Rœ'ÿóÔOTæ¹jõxmÏWEÞe¥¨ +2ƒlì3ËÏ[ AÈ«Gñ…|Å!•F]?M>æ…sªJ'TÕ„¯Î/ኟ«ë…¢¦Yð\±9 ET;§¾_.[w‰zþÏó9I5 ©l-‰pM}Œ‰ªrŠ:Äç ‘§ÓˆìZœ9+dâŠà·üd„y¸óÕ“hfçq<ÿ4=j€wƒâ¿x`p‚!ÀWeŠ;t¿–öûélô 4 Wý÷)@ð\i8€”üx;\¤ÜµèZŽýÑ«þ4óü£›ÿ¸õu¿ïûnÐHÓsûv•ÿÝú‹4œÜB=`IöꦶÀ¨\¤ž€T ÷Ø lÛ3i”÷Ûa¼ ”ÖÇ d‘ýðÜ} ? 8Fx,\Ï@íaºs!m´|–€ €`ž\Õq¹PBxt+HÿÖ( à§úS[x9Ý„0Eà ž¤&¸¸M¥°P›š‚ûù‹ðÿÍôå‚Õ{J~¸ªò¶mÛ·M=Rþ¯å\δÛm#_jðêß­m•ª–¢ß^//N¨Ö¤dYØø§É/¾¸³X¾­c0 +‡ÈxáóС~}c¥€3m"g=òJPþ—N±”¯yÔßM§»ÔàÖP|£›èø_ÊGHfvXô&øÙO¾p þ½ƒzñ³P“ŠžÌï•ö„øy|€3éA²×èõŽ{½›ÛƒA* _ŽŒ÷F¦-Ç!jSÇ©–7IÑ‘4â8¡é4µú‹Ü|ˆ¥ÎüßÓ¹ÇðÜÿ¼Šñ>Ç9'Äé†âœbL·,€ÇÇÃ5€ã^2.Çæ¹¥\9fhE(ƒÁóylÄC} _õ,¨À¹¢!ð*GD8´ @½ ž×šÍ¯CŽex†bŽ UŒ„%d}K«rœ+^Ì!„$ÄŽCb¢ 庺€A?¢ zž[Œ=¤~‰†"´KsEClŠdz‚¿Ï3ý>¦ +H¨Àëx\ð£€,¥UqÜÄoŒ_Š¢ÜÎÀë®Æ¬ÒÛÑå¿èÉð8»¸ª_ö+TÐá7íþ³ÏÁ©¸ß§d uÙ &`‚¿ÙêGßdQ£º0Ê ©ózhHñÙOáNp"àúÔ ¿ï»ÔŸÇîöÇê66Æ HGK 8§>ø¶q°±°¹° D€ilìü×ût ŸN›û6°‡tØØi™­0ÜGË>²[­z+ì×`ÔP$l†7¨Ÿ2ð~ÙµµWÔø;þWöJDwátgu=Ôò‡»ë— ë´¨¯5Rh¾…èOǨ X‡¿½à§³d ožª=­Õæþ,½ÿsÓ‡†êïøáN€ü7žÒεá÷YÞ\,›¦™³m±?Jø‰H>Ê麒ÓÇË“›Õ¶5I¬‰ÂøíòßÿÍ-–#VN}¤j–Fmnܸó7w +w¨@×-UU‘<óðWÿTð1Øx‡Ð0€4æâ±ÁÀ J¾üÙσX 0öJQ^¾|ùê×8t}üõš'4r7)C¥ÌË|#dO2çÙ|Ü@ +°|œzüûTïxï¸wð‹é¹ÞH“fBƒwÇ) +PËO§#9\ógˆøÀQuÑô Q(R[ .4?o)ÄU›–Ö©TšgûÚÍpyAÓn.oß|œ‰f¶?9>±\)\*Ò»lvÔ.à ‚œÃj¼ªÈÀäó¾å7+ÇþÞ±ššªX1Rå í¾J*ðèH7à/=¦ 0+šŠ› ŽUæ ª:q–ªmEX‹»KÊ©kT«2^K_2E§ J[Pô¶! §Š¢ä,Ý:¥å~Êõ,ï +ø,>@x™‡ÂŸ§f‚pže­~¼€íûÅÑÎú…ì9ЬsúCMâ4ðää +'bhÄý20Êb~°‘?J£ÿè©`t4 ³ +00f¿íü·Z£û¨ô?b“€À •Fß?¬þé§4+ÿÝ– èo €šºTÈmQa¿¾9éoÔÙ®„1 ¼¸´±´‰C€°‰‘ÁØ À$AÇ\&§]oaϸõÖLÚ®·êGOZnߨ»uxVûü/,D0 Øm Ïq>Иjÿ¯Lð¦°UKÒ¹>`û¥€Õ:Àüz2µN5°ÉuÚÈ î#üø§ps@­÷WK¦¦JsµÚŸ{ºïä¥|/Oý-ô_¨À%Fžê)ŠÙÞÌ…‘„udéÒV²ô)^ª%UIWMì,.æTkò®¥9E©üÑäoÿæÎd`>¡ªNˆvçÆoïÜ(Üù™@üWJ¢Q2J¼¡ˆùšG­ß~øÿýåËýѯÒcÝ Ô²5ÿß!ÞoÐ@P€C™™ Þn ·˜ÀuàúøëŽhçZæiÿë˜X.'Ë´ó?Èüþfjû¸×ÁÀ/z½ãéf™àÒ]þT$‹›žåHÀ¢¥Qù‡9~E"çÑp·øÏ•úý¡ÉÞ¯pÀ)†> qUCCý!á³q¥oÕ˜º?/ÛØöܾy¼ÜÓ*è1ìà?±,QåØ"b(±"éxÙ¬ÁUÊ>DN}+är5ä¨ O0ô˜ãÄNyÕó-B +8pPK •ãb1ë¨1øžTšÆRÌË«„HUÃÐÉ£gbeo,A?+L8Uƒ Hn”u]·yìçÐò_díÜåp€GÿþèÉ*”ùÑ3YÄuÚˆ³‰ÿyÐ=zø~r˧ÔE…pEš„5?Úg³ççpGW(ˆA ÀËYÖvPýߢ€ ç—€ ?Qìÿ]Φ±Ðb€QÆŽè +`Ðú®ûÓ^Ÿ>Ôþ}º Àhmô1×ÏÃMÀn}, ûPÁ×»aè@Ÿ€lF~¯ð‘2°€0š`cÀ¦1}7ÜG½`  ¿ëw4œN×[v«n»}ßnǰûpo‘™H8²,oåè°ºøÂàøqEG&pfÇ:àÿú¯ÿõá Š`3`ëÀjøcg V›*ÕÖŸÎnMÕÖ×·“µ©Ý©?ßvø“ŒµïÓ€!ü“ÖÎþ@d>Ï+mÛ(›z€ÂfE@@’J8ÐuUבLæTÝ‘¬ g\*6ùßï|æÜ6õê£OUËšh&›w? +¡à]TsPC$ò"Ó¥<¶„wG¯_ÎŽîuéˆV¿;ÿ°ñógv˜+0mÐ@` /†[€ØØ¡­ôì䃮¿*€Jh- °³¸€ŸÉA\nô’™“íãǽ`Ç{˽ƒ‘éƒã­@œq"iV§£iÓÓ{š¥aê®S,:¿¬ŒþÁ< b(­âå;PlìØ(ÖG«¦ G"å… ˆ,Ñ` ·Þ÷Í:UÿµÀVA8@šÆ̸3vxÌïÏváœt}ŸJ8ž¡Ý¸‹t>š?[c +@Zû ¸Bü‹£ É~Ö£µÃ3lò¯g2,úìo¯³‚?³žÚJ¥h÷¿VÛ-ÍMí&vGðêÉ] péÔÜîŸ'Ñÿør€aàðì¯ÿ?¼`äyA©ã€uàÿLÎn«´¤ §ëð>éÜ^\ÌY+MÉ*ŒëãŸtç£ñˆ>qÙXÑ¥¿ùè·+´ ©¸ ¨ˆÄ¼÷ÈSòJþ>o¼»pøŠèÀFxëÁƒÌÿðóŸá7( Ä@@Ôl<øTÜÂn`à>õ~} A×Ç_y +€V4«ñYÜ(í%S€ƒø9Ÿg2½ãííe”ŒôÇ¿8.0¢%,ø4!Mmoðø8aYã=×\Bø§&* ö.¢?_±R¬T zÿ€ u ÅêT8gÂ"!NR0[/ËWÇ-ͯr¡¢5Í ŽiÈzÜ×4«BpU׫ŠbY͆û”šnŠŽŽ8ïéóUÜA¯àXÚ©/+‹ðÒ žð«ª-‹ã¬DxG•ûûPÌ…»!¡æAe`9vгÿ2щw¾šY“ÑÌ×—…SQ¥æÀçÆC,î³³§¢ï4Õ÷iÕoðTÑ—Á—ØhÖ£OSàqÉ?N-â2Ïb˜Nh:ÿ €æÿ¾Ž^åKð«W/Ÿ=}ÆÖÿ)þ·ŽX½ÏB~ƒw–ù\9ÑQÿQë­!]üKÏbP 8JÓó±àRègàøÜgj?œû3€Mw©€6pŸ¿;fÒ¶¦n†»‘nÝ~qG(@¸¾°¹±¹€–@ —@åî>”6‰0ñžºFÝݰMÛÞHGöë¨80[}£oã®ÜjÇÿ;ßà#·\c6;;›Í¾z}FƒéŸÁ6ãÉç(NgJñÝuD÷íuzd2Ûð þ$"?ëúÓójs‰ÝD)ñé§¥Šçv¡¼¥ý?+€ÿ^Q÷Ñÿ iý²æ¿ŒT}»1ðW üà@ž*(9ÛŽL Øœˆè¦‚V€[5ø1¨½ÕXT¡ú×5m² m~öw¡>ÆÆ^—î6ÉøŠ5~çÆoonÜøõ¸$u&Êj¢¤Š¢XÊ+¼m<òø¼ŸÏçOߨ±T÷/^P+€C°³ƒNÀö@ðÖ€¤Q8ûìš\íãõj<»vN]÷Ya/±··Ç7’ÉœŒÇŸ¤çÛ©ã=„þc¹q0Ò;˜.iÖûPJ7Ro.OHAR’„°O?šÄ‰5q+ðk‡|mY8uÀÖò(¯!¡J3×!*)V«ö#ϰˆè«Í%ŽLäãƒä1&ÝÜÞάó|ÉxT5ü¼õ:ZòsNÓjv:œ¢æO} ͦ&–dAé´ W:’ª(§URlúbÇ™wl·*uÆ1MHÕáIÁÕRc÷ªbBÎÚŽ#SAƒ?Å<1Q®¶6!†×V­¥ªJt÷ù!+Øž!.nögSlÔÓ³ñh÷ûW¡ÂGc?@þ,¼¾fà:þÑ8(óÏãßÂgì´ êãiôℚ\DO ü¿8»¸Òßñ«—k³k³³/‚e?ÖëgËü´ÿOSÿð|¶@͆oÃÉÀ(+üiÀ>‹bû­ ¸Åé4í¾C•ßÇJ1×fÚÿá)vPhÓMjØ³Ñ ’fný±z}ÌÆ1î ðVd“ªøì°k¶0=Èه;ï×Ó];NGZ6zÿ™€ûð8u|€zšz +â.ýGßhðO{þ 5€üïðì»+ýéoÁÁ'á¿7õñ=«E·kµ¹Z*ÈŸšÃƒ~—DÑ­üÁì§ÿ‰OÍO§àâu¸áî\9ÃvêÏJǰ ô?š¼™¼½úvWà0 ï-È×jþˆÞÜ\,ëá°©Øí<Ž2©çOw·òú”'± [ÖÊmi|qò£;ΤnZèdYÍ¿+Nj++wîüfeå£_ˆ$YºZ‚W˜Gb>/úmñQ^àÿDð‡W/±Я£È­~Øx`lcæË?£U>5øŠŽÐ è{€®%×Ç{À²Ùç¨`ä†,OMM˜ê¥#Xøô2ƒÔvïø`ú`¯—ì #‘œ"éHrÜÀîÝOXÒýà1êÜj Ôç’v·©UŠD:$4r:MUQ9—‹t3À‘HˆÓ«–ÓÁH«c z¾Ñ률þÇvçöÍ,Ë +* I5Æ™BR-Êuµ" +Ó‚…}b"/¨ ^P,RÐû4™¬MÍ•vökÝZi·ø_£nØI +ÿë©mÂw©åÚîî\ÿtn{ý쬱»œZ|„ÿ\à,0€ÃèŸàÿáeàÍnEü‹wÎ~óÅû7È{yo+gçÚ‘œ¹°¹ ÔPÇ5€Rm«?Ýx~·æYº–Óõ¿/oâÀѵ ‡H“ë|´òq®\U?U'šRa|E[ùøÎoqP/Hú„¤–DE@}bˆùn¼ë|øð?hÖ? còõ>Ýö›yAE€T0Ó}±AÁŸêo!€óGq°v½p}¼ `-.d³ žÿýTo +9@¯‡Ûÿ#@’ƒAª‘ìíO-÷z{ŸŒìM[w;¤8!¸ŽvóæãÇ÷Mé®Ê@ w)äÀM1Aæ—\­2ÿW„²Ü°*ó¿…¯œ +°½BÔW$ÎR¡©ªUÍ’bÖ‰$zË7·‘D3xz×ï…BóÎü¯æC•¶EªhÄã^ $®W¢ +ªÃ¹ùψfÐe®èpåªÖ”Œ×ÉûM¢©èÒãqU(Þ+ŽÕV<¯©ªú~ÕõàÞÛŠ*éŠdÏÏòº™o[¼Ÿòèž[²‡õ¿oÐ`*ÜÇùmtž)þd©Ë| £Oœõÿi¯?CSN¢ßR÷ßË€UàÑ Äÿ+ÿ ¯Ñ@<ÊFÿ­Ñ7>€ÁÀhà +à·X€†€x¥VÐj ?¥t`ã~ŸkÃGšÎÒ6\ÐGì÷]Ûö]÷²þÇÙ}z¬>SߨτûT`ξτ)7°ëca³¾YØÄE€z$RŽ„#6ŠÿÍ1ÿnß äFPù7–ŽŒm¤ëvzû}:EHÛF×ø‡{ˆ˜uxDc“€1`õËDèûî*úsÏ™þ+ZZža¿;…J>xßU§»¥Êüè 0@°= ZA\H¥€”>ž[_"12—bƒƒ?OûdÅôMàâíä•aÿÿ-eàÅá[ì`xÅüð-€|^Äo‡M}³¼°¨‡#Økñ)$ÞîVÞÒ­jy‚›_\œPõIËRW$irqüo?^¹­W«¨Ðq ÀÑn¬Üùï+¿F À8ÑôŽX*)ªQòò +¯ày€ào˜ÎìP .ø#¬íP/à, `¬û øÙ›-€™ëÀõñ^@KúÕ¸ÌO•J|ƒoô¦PÜ;À]ÀÁ`{ýM”v©GÿPøÃ'€yàÛ©Ú\­QÚM|º›ÂªîÓåe*øó€!÷dC€7À·¤‡Lþ÷nSà²À|Ú´ ¶:ðŒ¼·eÓjÿ[¢­ÔâO$Ÿ–Ð +XW¥Üâd×õqËÒIZ,;7Bëº9a©T«)¯8wWVî|´²‚€ñfNÒK%Qq÷€XòkßxÆ÷g‡kÏ€0ÀL€o‰YO Kww†Y@/.5×àúx?޳U¤l–8%g“òÔT£—9ÉôF ¸¼=,ïò£ÐÁ +ÿE«ÐÔ<{À´»MRnJIJƛV±PÀú›Ðü<ð•j“¹75»%Y¤b‘BÑÊáøŸ6ìq»N ŸTD­9n@·Q¸žIý¢`i¤ÙqBó_;ŽÔq8ôžwå¾õ{¡¢ù©²âp–¥ûB e‡!`MÇ¿aC½]!Чu*.)ÚB‰"[ä®åyž Ÿ&&ç,å !+䬜%ú"ªúÎNh™Ï{žhÀ-=Y^Æ%' ¿5î‹óYì³Æå8”ñ2êäµÌ úaÖ>q³h/öì]2'Y!‹#ƒìù + øÇëý- ž=z9Ë:³t õŽæï(ÐùQ¯_œöûÌü§~Àü@ 8:tüG€±L°ß2àù!þ§Q¥Ï&ÔüAŸÍlÜÏ£Ó:\6fGÆ"@êh Ôíï`,`݆ÂÞìc1À‘M ‘Ms ÷ùp °ŽÍ~줻®9÷eBåovn«Û·Ãý×dð'6Њ¥…ˆivé㎠+³/W_Aýÿ/Ø»Ê@&ó<³…‚ÿä! ;ÔôS»ØøÇ-¿¹ÆÜÓ‘§ˆÿˆýô# µÿzr5€sS¥¹Ý‘O»mýå98Àöö_Ø“¢Ð“‹·Ç—€?U¾þ?øÁQx*(¦  ‚ô‰Ì¹9¥–ÌSØ*å,]Õ'ÇËåI€&©@&''?þx²¬çªššPõ¦TX·n|üÅ;+wnüº0.YŒ”Ä|)ÿȳ 1ÿTÈ‹@8Œwÿ¢Ð Í–ü6h.0öØñŸÙø÷Ï0 Ý|a4—XÀØþèþËÙ—¯®¡çúx?jD—§x9ÏhÄ3™ÞA£‘¬÷z²œœBðhÓðÇ#‘ûê^±úñÍ5!!È’ª^ E©Yàœb±2¢[ü MãBμS¬ ¯Ã9K*µ ±àZDñ«œƒ¦†#¤X¼?B ÿÿËÍí›#Ó8ôÿ  îNˆÃ0S„„–È +ªªÈ‚Q5\‹›‡W ˆG¡ƒ&¾ $|A,âZOx‰Ôì,¡/°,ä ·P$M]ôgå¬`L«d‰H¾¯±¹-üG±›ïe£çž:aµ…óxü%Mð %†Ö¿QœëGÏiÈŠþÑ÷Wyºp‚] RƒÕL”Õ_Ú8£®¿YaÂkzë‹ãwû-îÐþÿÑì0åÅù±.­üY6`àö;\íei—#€¡°ÑJ›þ>6hð([¼ÔÐâßí·úô ûR€­€zh€íb `}¬Žn½ðæ†ûæFx&©oP¡?t +²õ#·"‹ ‘°¹i†ëf?Ü2ëOºi(ôñ;x„.|Š„[aw£ÿ".M +b†Í™…[K¦ýî +ŸÊìÚ3$èpqø‡«ÿà¦_ Ó|Îâ˸Ä÷ñ?±[«¥è¦?ý<¬|A7ssHæææ»#5 g#»@þ¢ À[€Í¢Cü*ÿÄ)èMõöfAàGjüð,¾&är +}±<¹XGôpÝöjPÛòJµ’ªëêí*€M]¡`EÒ'Ëeç†S6Õ‰ê°@î®Ü¸sç£ÂãŽ[jÙPKyl´ólà~Ï +:PÊqÂýØP·?fôË~°óÌðÖ¥[×K×ÇûrÐntì@äøy&Ùë5’ççƒßo'·ƒóLãื¼w<2õPÓ4‰hÚtóû–O%,É)]q•‰JAj¢Ôâ…"öõV¨@A#¤3šÇ¤ËO u PK‚ï£äbÖ¯SÔ‡ÿz“:ÐãxŠ÷1`ˆãbV‘„ˆ(k„Šð_xï  +áN`S%x¬& +û‹*\,ÏZeI³ UóNh–ÛüÏ=+›°bœjœºmUTDÞ0ÍóDU2 z7 l—iæÀ ö§Š‡ùÃçYÁmórÖ3àTàéß‚ünñÃ+;JϳY^^¥EWæ[tþC6pH_zÏ™# Õ¢õªþáÕ8úcýjטà(¨þ =ÚgÿÀü7pô©9OùÀÑh°ù#A@ç?ÿ-€ŸöÓ£nÐpƒU€ü§QÈÀ_wY, 2:p€º’f*Ð?=ˆ-wÌžA@$ ß÷ë}äÌpic …üh lFLÛÄVÝîºéz Â]céH:Òèßûév]4B§àÞ²N»†1:›}~ñjíõÅÅ·ßÑÀÅwX%¾ÿa üŸª•j»µ½ÒÜTm¹†~8M¦Ö/œûcëà.øØKmÃ¥e ËÛÛ xÆ=€¡àr€nÁ‡ÃÿpHÎÞÙ <{O @ÞÈ 5¡ž³H.¼Y\ÜÔá?EÎ.Õâ<€d­ô´ä]¹ ì @B¯6U¨ï,|¼²(é¶n©%쌯HwC7þæÎ Ú˜Ô b(•&:Rð(/<õEåô]#€ÃïèÀWha ÅþƒßíPXOõg¨Ѓ™™7N@8@ /™0’Ô¼œ½&×ÇûÕ8Ç9¹œ‘$½å^½’˜ +ÉdΗzpÞ^¯7¥‰ B¤¦>ìá àñÍÍ’¤œáú†U¸ƒsø¢cÁÄjr¡€¸v_ëÜ#ÂõçªTt8GÍçUÇéÜm–Ä!NÇ…ÊýÇÛ7·™Pjû Y„Çé„B÷µ&÷YŒîåqN¥¬Šenì^ˆ4-§@4Ï 4’ØÒ¦58ª^,bI¸Îç ‚f¡™U5Të:±)K¤\qˆe%Œxôßuïü<ÎÛºkØm^Èâ‚þT€øFÛüÉ2/3k_¥ý2ox< +ã´¹O{þ¼¿<Ã%@üþ„ÊÎãk«(¾uñ#ý^ÿðêUöÒ-€gCo­£aà墅€~Ö  Õ=›û¿m4†‡‹ëü§÷ƒ(—¹P;@—Úº-4îs]$¨ÿ«ãº¾mS/ ôØÀÅþ±:”ÿPíÏ@ß»8çGÇ1ÀÏ7# „9õ£ˆÛ5Ñ}*Œ¹‘ml¤#c48Z +ã*! ÝH£ðYöÕê €G«üï/^_1@Ô=L&S™ÁÖ\) +ÀÚÔVþ5ÀyüAò²\®íÂ…S¸¢G Îý3ËsŸÎýÀÙÛ:€a`Èq?€¡ÿ[oÁÿ[ àÊÿþð0 ¾&˜¶-F”Èä?.,n† ˜¶˜O>MÅŸÖ¶M•ºXÆCõ‚*Q`Ù™\™Œ™ju¼f>ÖÆWîÜùíoVnüæ×ã+nÒ€!敼ˆ"@t‚üÃ÷Dûh46ÓÙA!àƒ´0³±ósj +À€°ðØŠYýÿ€Å¢`ôz àúx¯šß¢© N±SSSö)¬ûã4h9OözÛðåÞÞôô´ˆ­sÉÒöz{7§¦4Ëšp}/‘ç5§HŠNp>püî8€ÏªE,­ÂiZ³È9¤@îâÊ€*ânŸ‘—¡x&Nѩ٬œ'?Þ^î=Þ~<ØÆü!­Pä>ˆ©M®#Z¢œõ@z(ùCU Üý} 8@Â÷˜^ 9MM»kYœSÔÑ'ä ¸‰®jDÕœj‰†ŠD¢'xPøŠN=AT¼Ìê¹|ªWuDZåã¼ÁûmUÏ)¢á¡ï ªü0¶7C+ühTÆeó{‚Xÿ-ÕüÃ;] ¯»™øI&Khð*õÿEVðã‘ÿ šÎÿY ž´ž#€KÀ ãG™ð&ýRÓàË@ £ éÁÚî +ÐàË@`–˜¦>nNmºèÚæÛEKŸtËF5?êþë3Ý~¤ß5gê€ñ;áH—ûp± &ºù,ì,„#a\d*€´ WIÛ&*û£Pì×íȾGÒ;ö­~yTÿÀ:"3 èTw¡d4F…—k¯V×.^_|{ñú»×sWLÅè2^4ͬ§J‰GïXÔö7èG*•ÜN­§‚úÍæJÈ pJmãPõG£Ë#»@2ëAçè,ún àì-ôµý4ðßUÀá÷Åï¥ðyÏØªñv@îÊ“?/£G”©ˆ¥-o+>·µ¥ÖJt©:¡—Ço—Ö21®2 @¹ àv.—³Ô’}€€``åÊ*ÁùpStÈ«~€Ïû¥ï[¢ô™ÀÆÎ ì#!Øy€ÑÀ3/Ø`l¬‹_¸EÛÿ¸°ÿÓq àZx}¼w ž=Y=‰'ù½^€¿×“É^r°ÜÛF9àÞq#ƒf# MU¡ºV1!òI’¤¢(ú"!¤Y ™ERqŠ… + rI0œú¬f¡©9%q¿¸µ½æ*.Ú ˜/,©ŸCïÉò ·ýx{¹ùøæñÁÁT^ëà½qEÅŸÆä4&Šá*Z³iÒiJÍÔúEÅоæ*(€HÊU欌a~ºá!|+¾ Æ$MTàyæ=!Ïòy]ð˜5¡¨ ÿ4(ëÙmÛ*ó‚j]1N Í‚ +{Ìä?NUÿ8÷—ãYÑæyùœíž±zŸ:žãËì!5Bc`T_GqßNÑõ÷õÙëÑj΢ àQÐÿ¢~qðÇ`éÿèÒ€õúéÀ?Bð§;~ti»>#è0ŒB"@±ÿýý4\’Ö°©6l:À½t}»õúÝ¬Ï ʇg"Ô¨oã>ŸKó|6—6¨®Ñ‚3á~ú&í ¤Ít?=JGÀ ŒÈXl#¼Q§Ü®Ù‰làmìznßðgŸ¯¾Z{õúââ5r€Ãïξ»â_E] JÖ» Zû׿° °\CŒ§¾€©$5Ø®M¡<ž‘BôO&×Ùæ_æ,Š#€T2óo¾Ë†ö1$€ý‡4;zQEÏÞ‘¾Ç€­š`¢þWÔDréviëéV²VÛJ<-‰9Iɀı$u\’œrye¥S«Hp&Ñ£îüf¥°""H(z)Om€± À×|8õ½wŸs Â~€lì0¸ßAµÿÎeÐWcÝp,ÿ/€†€—/¯!çúx¯¨SW1¦ÀŸçÑ‘¬ÑÛë¥çôÆöÿò`éMôJ{¢b©PGûªá'´‡žg‘ÜÃ’¦µ’Ë8‰ç8õxÅ" ~Sôbhâ 0¯–•¼&9Í„ªI.&úù¶Ut$•ti7hú6 +ަ^BTÿ‹ºà»à¸*€ó:<®Y¤Ð„GóŒÊ=À¯†")‚ 5qX‡bø*! +M8p‹ÑT ªûSÕ,—¥l Ùó“hÖÐqÝϰ_/ûü©1៪þô³™L\0P °ÆšÿØÒóB&~*Êk4á'Ë|㲌΀‚|Â\X£«'T0zv‚¼á5°€ÙhÏf_±ò~¶5dü¢×¿thàýÑáŽ_0 ð÷}fŒoHŽ˜7ÿ¦¬BYÏ$‚Œ è£þ¯!™ºaU Ú v?õp½Ûµ‘ Dê;›õ3ÜG`;m¡ˆ¦ù,¢ + lCH‡Ón?qÃÔ `ßì¦á«Öl8Ýíšnd ˆB—ê‘%ü*l¤ívköåË5Úx  þ1@&ºÈTÂ$¿Zc®5>Ò€Ôý6s¤˜?ÇÿÛÀ¶Së—†Áë™Ãèãå] ƒL¢ ÿ/«ÿ€;þgìjðNíÿ®Að{D *ç·øú°°ùóM=‚^€J)‰€Z²TÊ?š ¹*€HyBѱP”¤rù¶ó±¤çrªU*%°PPWV¾¸sã7Ø_)I*QWòT`°-€Såû€ÃÇ8€ôþX #ÿ¨÷1ƒËþŒÀWH¨jp  ‹€ÙëÀõñ¾Ñó“l\nÈ©^cp>€º¿÷ûA&:è=†W)æ ”<8èMí©ÿ‡¦©"/Zb^”š¢8A‰æÝæÝN÷Ѝµ'!t ®h†âpN±ðË¢Ã%Í^ «÷›@ |W +•_²]kºèÔS™¯xI|±ºIÕ€—S2¿'¨Ô܇%<…jÈÄî`Ü`á®&(NHº_1Š@U‰4ÛÔåÙ¼˜Ð%‡ýǸ˜rÊ U§ Áˆ¯ž ²Pm r6³*”É©]“´÷•…¬ yATT]SN1û$<——ãçhëÇË«™,ó@©J'²‚`xÀ7<ƒ§r*8CÕÿ9†ÉñUt<¹ˆ®f×N~dŸõ×kkY¶@Ë~–ó‹ò>ªøcðOû þýKIãâGßZûg˃T#ÈØ%[ +pK`¦d Tí‡Æ@8ü¯×Ý'hÈcÛO¨ +ÀÆ…¿´I¡¿‹ÕüXý–‰X‰Ø3õp? 7Ú`ÖíHdas!L3Âuü¾…-ô´ëx ³Kû~$½“^¨‡Ãé\-èšOºuøªÞï»G¾ëŠ£Ïá‚;€ìýðbhxuSÑ3Œ¦ +À`ò?µ;5ÇZû©0] + @€ýaáO‚iHðYt;¬®ü2ó êAuòÎ:à°!p8´8¤Ëtö=|{-ðì­%Á÷ä=Ÿi°0YÞüŒŽÂŠ˜ßªm%kOŸ—¦KФ«9ývl²ÑKzY%ؘÔËã‹DÏ)ÖDi÷‘¦“qG[¹ÁlVÆ + ⣶Õ.ñFIÉþçyþì|ÿ)¬=eNT¸± ß³ÿl `l,¸ ØùrçÓtiàZp}¼ À.+'SS|#>È  ìd÷¨`{L5Ž{‰„ÕÔ¦¡ð¿;­ý›»¯5¡êŸÐšBh`?W­›’dIÍ +W¬´ûG’îªt 5­„ªèq +!PþOtrŠÝQcÄ)ÊÑè!€íõím Ç#^¢ŠY•м£´IÄj?R¡ô¯Ž«¶«¤©)FÕ)ZwUQ…Ç~b4 ‘ +–ËgeÁ0T_0Ým“˜è¡›ŸQ±e!ÑñdAôeÁÑJp¢,ế|Z­{|<{ž žÀãM…rýâžAÕÿù4ÍÄág„a¿ñó,ŽA8u^~)Àu¾Å`–„T ³&gWÑò}²k?ºð—6XÛ¿5ËÒ{G©ÐÑèáćw¦ = +}fHÝÞt†Òät€ôí¶.Ûè4ê¾Õ`CÖþ·Ñ¢×¦ëf½…~8§…i˜©Ït]`PìÏ,†w"›LÇgÛý4Úþã2àfä–‰v€‘M p©™ŽÐ-ÂôŒ©»}Ãd›®Ùߨ/tÑ~¤[7»æÞSßÞ§ÿ°ÙìÚóW¯ƒƒ¦]µ3Šÿq@ñŸ€¹)tFØ_fR?–´ +Ž!þÓÏ4+8Ê\ö—<"¦ SµÉIfõ­AÀ°@ñß.£AlÀáEôm[ ³wm‚Þ· =ob@/”þÇfxé6€`.©îæE€Û“]¢"@­ KåjyÜ‘ª9;%´W¾¸³òë;7V~=¾¢Zª‚/KJ‰ó +µz*à8ÀS¾O^¾¤*ÀaÀÆÌ»#Ìü¥€1ì0à긃^À×€ëã==0¥&›” YÎ’P›ÈƒÌI&õx@sSòöà|0uÜSï+QÒ—È]-a•Ijx —Ë‚oÄAßÎÑÅ’/– ~YÔ¦5¢%4O/Ü-PUÉÁØ`¸+®pwú¡ZÑEßî!íñözf0XßNõ¦4â1oØ1‘÷e"ŸÛ„ëˆGªUt ’tÿ¡JšyÅü6/èıÌ'ŠÕ†b¡¹T M4ðÇ/&y‚¨ÆxO=E•€QÕubMˆÔÝ·ZùóøÉª\¥AƒBÞh§2›ñŸtü¿J÷þÐП­ôñ§y9{ŽêAÜY> Md–¿ç'¬#°zòãïý¼^[[{ùŒ‰ÿhûŸeþ´Ðç¿udÐÕ¿?¢>€º 'T@Ï ß¿ö3ã_äG£C%``ðÖv R >Ý ¤M×íטOpñÏvm¥O°@ýþhÃ?ò"=V‡/6Ã3€õá l0;? 4ÃæîóE0Ü!ÝtípÝØÝÍ6ÇZuwgŽ"Ýð6žtMsf!Ò7ûißß÷áÇðüÙKT¼>AÀò¯߀.F·jºò ±;…IsȘÔN–“Œ°Q@r;IÿÃþ?D·—‘$“åȬžP jÊD£ßãP쟭FÙ&j”vü/ß ¾Ì¼òÿ¥?ðßð[[¼içŒHøöfyó”ÃÀ +Ͷ[Úâ·’OkÏÝÛz'W½]./èa]œ(«’Ši¿z¹0®#PK»¥*€ÛÍÑhüÎÊʇãã xQ*©¸ yT4aîà7žý'#€ÃWÔ ÍÖü¡ª±Ñí¦Pßÿ™H(øj ˜ÁÌïvè +à—ÔhÈA}® Àõñg˜ € +Lnÿ¾€íÔ`GPÿÃw¿9î5xͲ$øÒ†U@ ÝM¨Ø~—šÍ¦ÎqRäŠVþTÅ +¿X$EÉ’:š È~ÁÊ'´DBþÝ,84òoªóº£È8º/šÉ“ÌÔ1¢ÿöö`¹§®ÓžÖ,…‡Ú¼¯Ã©wó77U+î++›A\_MÖéðe­Ì͇õ¶ê«kÏÇà§•¬x¦myœéƒ¤~M¿Ÿ´ +Z[ÑfbÅÕΨØàGÄC¶Š7H +²B0oZÄý œŒ„Ñ?lB: ï +˜ÄÞÅÓ=”ü1D(רÐר.ØÀž`4üá,U¿£ßä ¶®‹ôøT¤3’w¡ÀÈOÜ€!Í‚`0Ðg/àEÿ¿e›ÇãË–¸OË¡€uº“åÿÛ¸PGûŸ›þoÈ}âör z*öíf¯“‹ÐÑftÕmº˜ïÇ[®Wç_©‡D`ø¨Üsí–T·{ˆÿql¢-›ìJ9§ãzsQ¸Dçúú„ÿ{'¼;ì^õþÑ•v~%?…Ì¿¥å­êÖÖÖmLL/M‡î¿)ÎýYA'`i~iYÄCØÀ$½_Ûúpúoi ŸïÇòµ|ìÕ\`1 xpÚg þQýÓÕþåeA—5€«FÖq*m]·oEW‘@4`5ê´«KÊRJþP«V«z¦h³³³s·8ˆ[•YÓˆë†ñœ€#±ø£ýÉâ/òËë‹7™ €’®%Y­Z0ÿW¿åR[·^S^ á9€æ>dý^$·AìïÝ}¡9@ €@ó.[¡`PÊßaàùy£Aüe§ÛÅ_Äïú'ýó×N´Ë`:tÐùùùÁ…ÿ4€Z mËËËÄ–cùa~wc%¿²ü9¦ww—Gùa?¿»û4Od”e£â)~2û,©h^僵Ù_Í>ËþªÏdï¿ÍÐéÎµÝ zž;™l"Ao3ßþQÂ+=Î`cßÃû³ž¬ų́¾5û0›5i©Ñ(?ú—ßNM-ߎg*e±ýWyø£ËG)Þ®è +Œxƒg³–ó#´Ì…µD›þ¬+kŠs=®&–Ñ»×bµXL)êT𛞚1+gú°Ç7Öö …A%[±4ų³^,¦I“ÿ  +pAO0)ý'c;þù<¹¦`P)ÃIˆm¢Ð?gùÀƒï +ÿÏk/ØÿöýÔѯ³0‘›éÿÇÁd_þáë¾Z瀄Ø1).õ¿/€Ü1€Â±˜ï8uNpþ-ðßé|‚@‰€›Ð¾ãR‰o£×ïŠI@H¼Ú‡€NÚd€-9°ûa }¦0!ÁkHJ;QÇ]` ¦ç\÷ ëxNLÆ@ ¾ßÍd8šÂxZŠÃÿâÕéê4Ïè… Pÿ|\`~ ž@lv@î\»†K èSýO'<êú/'ûÚ~ ÿ_Úü—ÀU#{„ÿKDÚVq5:»:÷îltUZ•t]õÖ—RKORÆsòb¥8›˜]•ÌŠjV*Vneg+Æ“vƘ~0külñ_ßú †¯ÏT€ÿU°J%Ýó½’ü…_ÒÕ× ÀÑÄÑXh¦‘ü´°p¿“î„ä¤7Ø|Cƒàü»~l›è" Âß!}×9±œ¸|ôâè¨ñž¡ÆÁþQ—Bù†ôƒítËGÌBuà‡Ó÷útäŠiËòîhjj7ÑÔîEÿòÔÆÔÆhcTåSóSOïI3Ï$âžRÊή=Ö+Ä¢ãÂò›ÙJe-û«‡ "‰Ìï?ÿœ˜ÃmåéËH<Ë®%fî}YÉÜXˬ%Œä÷u•uv­¤3O¶2 cy4šÌÿKjã·£QJV´Ê¬§(~âí‡÷+2Fø>Ê¥ ׳³mE7?±ô¤n%mOñêôG )_QìŒÇ9}18ôbPoVõJƒLQo+Ãþps}zÁT*¦>°èY³Ž E@xœèèHû“•‚ˆ`À'Ú`dè{àìߘrÓ®ÃXh[*ç +±U¶û°¿Ã?Dà§øMê§ô¨X÷‰´Ê-…s|Öþ_þEhÐ1 ú è·.¤~+Øì·.3Ë+D¯à˜]-ÿøÇ ’^ ‡]„ýCÑwÓ¹a7ýý=‡¡ô¡—‹º€ti.ú‘MŸ%º€}Ãn¹€€š`ÓšD"œ¹9„»Évë­ãr­\~±×¨ô…€êÿ«Ó¯þá¿„Øä“üÁä‡ÄF÷¥Ûˆú[ÚºMh>}ó¢þGø?ßœžg:0ÏA„ÿ© 1p:õá‡[ÓK‹€ãû±~ˆý_uùះ&Y©šüËèÿ&Ô«¿üËërɉZNñ£è,'~´:mëÕçÏ—Rʇ{ñ*!y²¢'Í[s·ìL5™0 +3‰üÒ¶¡O¶ž# x͸±ˆM€‹oýüúâb²BZˆëºQ•K %¿ªÈ²§[Þ×çÏã@§ÙC¹œ ›@ ×IGÒûP° çÍæþÿÚ)€óÀ5ˆí_ùüô Ôò;ø–#idc@±ÃyE¼È`~§ o"~0`„Wð§ùóô=ƒ0>ø¡-ðýàm_^Ö¨‡—my +¯*S©åÑòFj½Ñîçמ>›•L²’y$+ÏPÍ”È܉ßɘÙû7²<ß÷ìYâWk¿ßý¡>¿GHŽb$k¿XK¬Y¾f%*Þ»F<áŽADÁP­öš®h~<³¦ãøœ·û/Sâ­¬êYô„ ‰‡¦uóøöC½®«t+¡+~V•?™P-Ïó_µxÆÏ²â•2úˆè‰åû5EÆdlR<¢ÿ^­zÏT5p_d${ž¶öé‘ +†ù6?IÁ“ ˜úÓtÃkÐMM.|ó£›fE÷ {ˆ dß_¬À˱ò÷>eþ¯ ˆàÀ ±þ¯%fòÆszuTðÇÇ­²?ñ’h€Ïð¿GgæÇ ¨ô…0xã•¿Ö…d\DûûéNKDäœÜ'ìúsêTô;D ¸È²ÑÆg@´çFèj+ü¤({ý^%§'Ÿ$¹ïFQÖc# +uÛr[®íDë<(aw@4WÖ›oˆ6ç`”Ü—`Går£|r"ýƒƒƒ7¢Íôc±K,@ë¿=]%ô'0}mšm(ý—§ç—ù:‘˜—` HaKAà·Ó[[þOÆ&cyhµØäÅÀx $A: €A,ð×àŸß®Ð@ è6+˜5W¥÷¢ØÞ+¯§ÖÑ0TÂòâ,É4T“^¤*•sáVŬ„ðñçìxFà{ë—‹¿„p §£ý¤mT•L€Ï¿}]µŒW¿‡æ'P à¾PréÎf»ÓTÇ +À§àt H§#BÚÿŸ9 ê‰ÐI æÙBi`ôP¹XÆŸ( çYép2QT¼#`~'² NtÇÎÎŽ  b`2Ð÷}ô¢!†h~h +|OÁRûåÔh˜ïçcÃá¨?™ß-ïîN-oÐûÔ05µAE½š1Ö*wªê3™ÉΆÇãñ;†‰8@*Î3™µ_=¬<]žß… 5*Ä´âýJæÿþE6›Ì¨•Âê;•53›Œ{¥vî;Ë 2]ÓtOÓv?ßXÆúL\S²og± ±–É~tÿm“ –žxxÓ*9°ˆ[˜7Ù̧º'žõÙ¬:P¸ÿòéÅÞ£$ã>v÷¶+˜ìïk–™hû²•@’ϰOèîiý!öþÿ=z+ü þëD4Ú^ÁóÁ +”…›ôMd ]5 ­Pö”TaëoƒHÀwŠþ<Âp’on¢>öäs~ÏϵDÎÜD ÷+éä3ü‹yÿpæÿÒL`à ÷N@nüûãp`«•× *=‡@.'æzŸäêBprA + Ìþ°õI= +é*ýl*ÜÝž[ïÕÑè! ê4y€ö¾K¨oQõïú +Ê¥-»‡dÄÚ½z4×\%±*Isú¬¿guËÀÿþyÿ+NÿDoà×›Ü[ŸÜËRK¼þ[~ooA¨n]cå?o\B<½m!ôgtÆY““Ó¿þpëù·{úèüçÙöÊ}€~þ’ `R4õÃå¼!˜ñÿµ>Aô&–Vþ}ày«íZm{U2W huU*êú’RMÉb PE [¼¹zËÎDŒµäLÅ\0ÓhÆÑ0ëoÿdñ­Å_.ÞXüåLÅ0ÌŠJ¡ +ûŸZò‚)ç5  Ñ(&BÔ&#jJ9L€Ø ,vu@Wÿ|ÉÛ¨¿ä_½ù篾˜~$’ˆÅ“ƒ^„(ë!EÀcÀì€Õ~>l\ò $G¹ßŇWO_¿½‚mA"Á*ãK½´Ô€ïçéô¬ßOi©T,ŸƨþoÌølcê·ð —7¦–5bôGU1³`d*f"óô‘WA`v-y§2{-³K `©Â±¡ö«‡k™xfF'æ0K`í?ŠÇײF©ä«Æ àÜ÷ÆÛE¯”QµQl„|mK¶° @Ñ”ÄZr­ò0kQ^ŸÍš÷+öWg馢ژÞ/ 0ŠŠ"g%s|\ÉZ{žç[²âµU¿¦ t-6Œ)ãY›ˆGRÁKåä° ù2Ìþô„Ú¦ ~¢ãedýæ 1z>"ZCC¿¿`Ý´dUõÙdè%<¦Á‘X ØÇÒßïô÷÷g ~ÈFLoÎáE}èXÀlxŽËlðy&ð¥àŠX˜¸$ˆ%@ÖÅ<@ëÂ.b .vÕ9û·‡ÁØùê Èðïp°¥w»ƒØ>©Ó±;¹Ž#5£QôrQ8Ü؃‹@Q»i¿çn"Xr ÐÓD[v®ÞA# ƒõ@ÌEéc]J¯J­æ$©ãZ¾¿çƒ×ÔNN΄ppð†¬ˆä;ÈoÅØí'OO/][ºŸ­iâôΧ!ý/Mo=ÝZŠoU¯Ñ½[KSóS+ÐDVL.ÿúÃøô·zòàë‚0 ¨Å.Á?czŸ€ û/&CàYÿ•œ®X"ü×–ݶCàÿœ}ð :Àªcréyj©šªè˜Ø4+™@õ$U)7’•d%QI.P…_(f3ÅÅÅ" Ÿü|æú[Ù2†1‹ ØüŸ=m§ôuP +@€ï‚ìä øóÆ?¡°€%‚Í»Ÿ¢ °ÙÜL`c÷È+Í´ ª×ãÙ™ÇqÃÈÞÏøzF%ÒmeïBp i^V±¹‡€ÿí™]+(f"›}–€Š_ð¾Í“{…‚n* ,¶•#ö,SU†~¶ˆI¬ð-Ôòµ‚ª«m#›xü„µ‚~ ºFà­fTE¶2 ò1y ?¶JžÌ@÷þðh½TÆd¯ X^9Y SJžª({Škä'ªG? +¬ýZ1Äç“ßµ@v^+Ch•»ÿÇÖ±Ø× Hv¹"Çš>vísº/gà xl ä~94ú0/@ ÄŽÂ hì–{Èåz¼ °^ïé9pÆ“€=Žr£˜úˆlâa¸Ðÿ]WÊñº|Óp ¤{ùŸ[µç@¢Ä ì Ûu¢9»F!Eœ¨“Ö»s}„‰¹ž+õZ0 ¿óYèh~#+™!Þ -MA ú.û€ÿiÆØæç§oßž&ð§ò¿º4M,caÐJ>z:úõ3â£Ñ·|=ý¢üáT§“c@ç@ÿba0\,è]˜¼zc€Úâ~¬v´íçúüæV”ð_²U‚l"OÖ«ñꓸnÚIsuÖd1™¬‘\0¹`<ÙZZ‚ÀH.þhñçÿ¶ø£ë3‹?¡CŒÌͶN€ðÿ¹ì”dú Èž®[_þ€.+‘Ž ÑñßlÞ%ˆZ¹ ð>ÿh° +°$–¿Õ-Ñ(sű¿+D{ž0kñ i|Jp€´Ðú‘B¸?>Jþ;âÌ5~p +¹è  ~\ÞsDß ë/.©?Œ ~ߌ<ùÖÏÙ0–žüŠò!á?€‘¦šÙ$¡¬Eø_1A⪬Ñ­x<žyF{<~çw>ß]þ—ÝßÒà +ÞZ¢Rô4Åû£1{¿îÁcŸ1ŒÙ¢îYVæÏ3Ù3ÑoïÇ~EÍ.$îg-n¬a@÷ ÷uLô(pò›3ˆãS ä5PìÊ@+¨Å:ú”\@W^±dÂñÇT¾Ãˆ@:á´¦(°ȲJ¬HAÛ ¿þ¶Yà3XùðZX°”XLó1é_ð°b \hPÁ¯íyìð”F-V.jß±ø¶)_i0üwÝ–ÓÂÌ|«ã©À‰î¶ÔãÃ1ë!Ì ˆB¿/(€@¿?n øÖÅN`.ÿÙá€÷Ÿ äûr$ áx0߆s¯Ó‰b‰ßä%>‚p;ÓŽƒ€À9w®‰1€Ÿ‰Aƒ<´ˆÖDsƒâ£ô”9:œ¸ƒÓ²èçB +P_Ìž‰}Œ_½‰ßzò§“++ëˆø»€¹ö' §[Ëû¹åH€­kœt Ô€G¦Â@ Âÿƒü‡ÿ/q‚\9ßð7K|ƒ(á~€¼¨üƒ@6`=eHòEPл+Çý±PàÊ)ëëÊ:›õ¶óž);û’9;÷Þ¬cL¶ÖK–TøµðØüh6j˜4fèl P$€o-=¯ɬQYü·Ã&€Ÿß¸þ“LbÁ0jE' +àÐU_F ¯:mËzõ{8i½":ÓHŒtrðÓSµ¿À~ç€AÁ»È¸{x——¥#Øî¿ÕØÙÙÉuñFïü¥zH`ßÖý‰÷þÇ ~Ÿs›ûÍÍæa“¾äáæá!Œ‰ôq“®nîbNg:|»‚݉_{ºœ*äÁˆ?ÜÎÜŸ™xÆÕÌÌÃûŽ+øÆ/>È|á@ÓÔûºL _(Ù +r~´ºª5´O²žâ鉙¾Š©[z› ¼ÔÖuEóäjÉ –k(åE+…¨¶×ÛqO«<[§j]Võ"¡7@{HO$ƒxePÇW,ð´W=#£{Èø)ánÏ×bãuj+ІX +`iLŒ”X­ðD­zŠ_‚o°Ö¯õ 5ú€À_~÷¿»snp`k¢u±¤'dž¼"x ©sÞ×j•'XÿŸð10è—á@Nz á¿ì/Ï^~ÇgúS­–ÿ,58tëlÿ­£ý/ZŽÃ»s= Š¿×±¥ν¨Óq1(E™H„ëO:vOÊ͹˜îwçì¨m»vαëôézn³µ[®í8pÚ’›{ÚÒ*ñ™‰ˆLøå£ÂÞŸØDïxC-€|~2u0™‡§OÄNß^Úþ¿ytþ§¹ã?̓K×–®m]CNÐôôs ¦VFy! ¶wú×Ó˜ ¦ŸþõŽƒPRÜÿç +ä½Vã}ÔgýÚ$ü_<Á…'#'/7?p倷®Èë„ÊѺ^œ‹ÞúéƒwM{õ§sD’%ÿöÒúVê¶ñ\%¬§rÿÁ\q!c˜F&$ÓxbèÕçKÕª^IæO¯˜¹>ó“dÂ0 Zêmxä’^Uö¨Žõµ9À?£?¸±î‡ðàŸnBîßÄ6 îÿ‡&ÀC\4éSÈØAíü- ¨ÖÃÓ¥ò¼Ôþ<‹È;‰:\ë®7A0šÿüF_¯Iß áþáæ]Ø„ +Á¼€Îûw åÊAø…"wƒÆ8 :À<`;4 nwÄO½Í´ +¾Ÿ‚Ô~¾WF„Š£µ­¥†xAɧ–Sùa~„pŸÝQjy׈WºñÇöê# ¶Õv·ÌDæN&‘¹öT¦‡§v§6F£å§dYϪ€ëöÙÙ“*pY–‘º‡âZ1LY#è/èzñõDÒSô·Û0ÝÉÛ+KšoÖ-Ââ®ÕâžOdM®·-Ê@Á?Àì~a¨e¶"ÅŠx1°•àòžþÎõdÑS>g÷Ô@üŠ*ó1špÚpŒ§ªó9Àš¢iÕ/ùÆ‚¡V­â'ºUèù•F c€WÁ{ÖxQàh¿–ˆª·ºHæq¨PvP-çÜ^®i*N,`ð?òyðe0À™œ O ª—é@=\ô¯fÃzn< +˜³ëÇŒõa$׃ôönSÚ´›9.û%˜±Ç“éº[ïäÒ.ñÉMÓA«ðJuÉ‘ZR=êÖ]ËFPPÔõ%  O(¼ FS–ìœßU&Êå“ÚI°ˆþgõ¦Àd~ýà45¢ú?2€ŸçþqíöÖ2îÙšÞšZ"vpmëQ„)^˜ÚàM‚äýá»'ýk‚¶ÀnïàT‹q*u­Æ»x;Å«àÕ € 7¾ÒÊ•#Ïåõõ½’îDÛzñ½è­¹ï¢ðžTÔ‹%ï9@õCY5L3i>X-+mÓ¨üß PI ìOýpšÝЋ‹‹79sãçÿj¬! EU¯RåÿÂUùBö­×= /&Ø[ÏQ?i@4–pµÈ„@”Ì ©Œ£¢ I€ìh|³  sûÓà2+`¸=zÿHhCÂý4H}}:#˜¨0q¢kTÈ7!tü›ûŸî‹õÄwq‚E8ñ|LiÛ >ÆùãOq H@ç²´ˆì„4`âýò‘h ü@¾ à”êÎÂ!™5ôÿÉÉÑÆòhyyy4õÙ£¸úÈSãF&þè‘ ¾‰dàŠw ÂãOo§bü¶Ë1Bמ£Ù6ÕêjƸ¯€é€ïlÕoÈY]£W«‚®#Ø¿n)u#;c°xOi[èÛ¬l6¡*ظEüÂÍbÅÌÖ€x„¥²E^h-æe“qUå$_<&kZ2¼žeT2è@ÀâXAµ„ €KõðtD7ñœë+ 7 CW•½BI‡O¡O/·˜ÿίDR7‚5"¸ ¼ïåž“sÙ›Ï÷0tO´ØØšð»X /'^¿<öC0FüKbÀñź@«¶êüÄuÁЀ ÀA²/gû»Xñ3ÜŽ¶Ón3ºåÙ@LHùß#Øç£¹/ÍÍa- Ô™ËÙ:Q„ D{u»E\îèÒ=Ñh]Â~Á9zž—Çt cM(årã¤qÒg ï<{3¿ ªÈû±êRl*•Z™ZZæ¢iž­b5 no=Ýš†èÿtk‹uùéù%aÈ pšŸú5ß +†ø&_£“yQµÇ^=ÕÄ™XÀæÿÃ!@ô3†ÿñ8@`È¿‰Àߟ°®•Úz´+â?û0íÕ$GÕKru=ES¶Y4“æÜ"€5ãÕûºa&€ÿFõùt©ª'×ôÄ¿-Þ¸¾ø“Åë3‹‹™5VŠ:}Þª*ôg_RžÈ_ȲªËŠüÊ·ð§>yA °â÷"¬¤Ó›A}2‡}A¼ Ò¿Äæ`îž¿ø@ˆþûÌÙÄÏåÿû¨þïué‹î7›‡ûw›ý!0Xà#£ =æì€lØ<„AQãS•ˆ¡ 8ÀÇt~‡H8+˜Vâcà8O*Gàøü3“€É/Ù#è§—ŸÑIÀÃQ~˜}¶¼|”$D^p<Œñ)ÆÃ‡ˆ +x‰lïC¯?“È÷ <ƒäÕù½}[Bô—6¥Ž[ïÙ£QÛÀ† —ž¨Ó+ܦÝŒ6% ™Á– ·Ÿk¹~/ŠI@7·êF£ôe\±6øeýÔÿ¢nuË ÿ¼p€³³³/¿:?{Cø`òt º–ý.mÿ)Îý#&0=u`ëZ|kôFø{I¬˜b À$#ýô´X (@~2¨ù'ÇWò,Ò¥b¯ˆµâ)û¬€ôù€ƒ Ø¿H:==Ëõþª€Ôz¡:°£ízôAtvöÝ?‰Ì­ê¥¢.W§Ö§×oÕ’aÎ&+ÅÕU»h° ÈH$Tc!¹@ `aëùmädŒ™t¾¾¸xãÇB0‹DŠU(2–ˆ>¡ úÞ«€þï` ÄGü¯¨¯s¨÷Q£ÈÇvàp p_´Ò7›¢%/¦¿q`S uÛ†E™ gzïhâý#ÂÿˆØC@ÏŠîÿø˜ÀôØßkþ0û'8‹p‚ý»A¯_hýŸ~úÎǸ~¸/|ã©fû8öÓwèL,@D±MGn§Q ã ¹í°e!|brðoð>þpºª$`r3à0?àÕ!E§åÏžªšüT}ªÆ…VŸ>Š›fÑS3Itáû€ÿ§OïxŸ-¶›Ê!©¨„ÚH{³†šÉÜ· í'TYóï›Tô'JU ÉJ[ÖÇ?à¹wFl&r úV` +°êÈóÁB—ƒ‘òD·±(Š5ÀQ´¤(!¾Û“ äFy ¢ƒ‘Xº„í’3‡!?)‚u»­×©ìoÙÄr"öCR sôѱ_·|Ë/7öNÎÊ €³Óó75¨À>m¥¦6¦R¢¦çäßÔôx›§ 8ÅsP¶¦—Àp91,Å® À)«ýጿÐþ³'SùØ%Pƒ‡ø5dSŸöÇh?9–ýƒsar/ÄÿX*6y[ ++– `5ýéoÞMÚ³ï=` /$ÕZD7Âé¿1– Àè¾\ßdðpD€Å€ýKë\tÐøôwp”.÷;\È2æýRSSÓÁLFy'À’ £LN~˜¿,\Q°‹µ¯–ÿÄwûhÿç™Àþw,ý~|;hœb)°€ÿXl}/vpõ€L `ϲ¢ÑvÝ^š«Þµ‹³ï>Ú¥¶®T§Ö‰TãTߨ¼»ZÔ× S_Sg* ³T1̤¾ [ÏoWéÀðãÅ·~žýÙâ ‚FÒT ½¤—d¹Þ.)uEþÂC @~í/ìHxðv"ãÉy(=ÂÉÍO,bõx p¿yøO$Æ|Ågö6ß ‡ã0*ý1T ?·î Ðý¿Ë‹‡èK5›ÂýqLÐè×E‹þâ 0²À…lúLÜöÍýCžäBž>ŸD7€¼ËSÛ¡Œ™@ø¥Eod›ÿ)îCaøfõãʼþvüt ºå‡X¼‚=ÁS) ù;²üˆ +aUõ<¼ÅaÂWâÂØÏS¡½îj©ÔhD¬ajY‘‰d{<­4k~c”e½¥S‰¾mÓ£Þª¥x¥0xØï{h0ðž·´‚¬W Ý"Ž^™Å„¬¸€·TmXè×èt•¾z¬VІ1emÀÀ¯i–…ICÓL&’°û×´v±¾îhù~Aõˆ<2à=P< žAYåí@8aÉ0K/éÇ%ü‡Q.k{Zÿì*ý·=yAå ÏL”!Ðcõ:ô¹V/'‚€¨@¤:ضƒÁº×w¹eOßElÜz9Nj å",Œü/ø~þÈ·ëˆÃìnP §…õ?9ˆN°»€;¶íöØt›öf¯“«CˆFçÀî¹L-8·“‹Öé·3gÏa€ïXQË>¦Ÿ9À8<êðÞ@z÷k{µl×*û ÿì¤Ôÿg`oŒ¯åHáp{Z©ú' +€¦ÁæÇ`E0€`Pÿ€K –¯@˜¼ÔJÿ4N +ä‹~,¶·¾¬l]A@ä{}ÝÓ£vÛŠ®ÚÑÕ°‹ÒƒÕU‚mC©.­/­?¯U=)%MóÁ¬]\kWÔl€jÒ¨T*Eúì4+F%K àÇ‹‹3?žy+1“12悱 Ú^©]’¿hëÕ½Ò²NöêÖ(‘È;Ñí¶‚´½N¤Ç +Áò¦Ì Àëˆ$@t››PXèrŽÞ7À Ü|ûM~ª½#˜¤Ç¡÷€úÇýƒ.ð–/ÓÁ¥ö;茟+1&¾»û< rnø3‹‚Â~:ÔÒ ¼û1D€wÞa)à°3–úƒ8Ám\ߎ\Ê bé;Ûìä8aÌ |ýÅëÏg"úðwý?}·¯¢ümüoô—(^"‚z­Í‘V– e5®ÆÇ*Z+44ì•° {pÈÊh8̉, +Ç‹ 9JvMIqïHÓоb}t㙥'†] }š^¡£ô„LóÇ3QQUÊ lü‹©™¶ÌÞ~l8#žÿ8iÀûyz’öc<‚Ûør[•}b(XëcÁÀq\e—!,øy´’†Ùƒ#àÿ#Õèe´ ”ÁÊ{ +Õ5ÌVAU=»R¿¡“Fùg#â·;^كʼ› ‚Ø|Àá®G|ŒR!Ï“~ìâ&¸Ì†Ø Z" t s v + „žô‘ôI=Jÿ9¬îuz0ùóÀFÿmÉmF;v“¾\—8þ€žãtx“‹f€”[uyÆåƒœT'æâZn+ê С'‹J= €Vm+|k¢Ñ8=¶±ýï«7§×¤X–_Y!îK€'ÿ÷+)ÑØH±(& t1lž^ÚXÀÔþ 9a:¨ò'p¹ žýóÿ?V€}üÿ ’ýòg¡‡ü‡—“ÁŸw,–Ú[’¯"øBVÖ-Ýê æêÜØÎêƒw%ÝÓÛJuš!|µ½0kš&<Ý|’Pg’ôz±`Âl<©>¯VucͨÌÎÌ$nHÌü䃆‘™5ŠIÕ®ªº¿$·ëªâ}¡°ü篭&*ðñÝ»ûãnÿ¶ˆQÄÁ-Âýím(x°ƒ{bPàHÌ àÓƒüþ‚ÏãˆÁ7÷ÂùePòó¢¥óFíw|Ñ?Á9H<þá$HÀÏ`ñx~H0*Ë>ºà^\­‚EÜÆõß1eY†š\€r0úíüˆ®Ç“ý%ƒèÅP“IK±²ÅøÀÊΘX”¨z¼ k{1Ö—‹€ ý‰Ð9J5=1b#¶Ý‰Î 'öÄÀÀ:u7×”¤Ž3¤oÑÃÇ>Žú6±†Kíb’ãú9ÉÍY]¿ü’`ÿäì"àôÍQ¶Ôú:ô),öKqÙ¿Ä‚?<ó++ô®‚À€åÀó+pb^ŽÁ¸zâÙF‚¬„ùTù±0Xò“±Ë“€ÿÅŸj°°pP‹]ôüàUpXÞ«åïo¬[j1jµ£DóV󮩯νkª²Þ^‡° Û?%07k+ªO‰ +Tø¦¡ÇŸß®–T£7³‰ÄÚë oefˆd Ó´ôx‹^Pˆæ!—,Ïû:úR¸ƒ€>»€"¹`?p3hpt/Ày<Í}, h6Ç9À¾oèòÄÂz]ØÿÿGÝpÃP:˜õ+üéñÈߨ…GÃûœõÛ/ýűb¤O¿Zûîí€Ãý ZÁ#‚³ +€ÓÇ"%`;ð²° ¯ÎüCp¸` >°6p|Y†"ÒH| d|¥ñ¿hx \‘œ€ë´7ú¿«5¾áô;>Ó©ß8?éÿÀ.„€~Xzh,¶{jõ‘zÛ{#¿PhGp ø§zÈfúa?Ûò#Mñ ³ËÕGŠòGOöu£Me¹¢X•¤jYÓxlT<Ì£Œ§²rÀ äÉŒÑ%9ÿ”ºaÉ<ºGtBG &c·ï²ýpr2FÇšÖŸÔÔú€÷á›Á䯄öS¨®¨%–è+ä鑚¯ÃÞ§0 ÀWG¶Ãø_蟞ž^¹ß 8΂»­@è"Ð}×åõ¼L²°ë°k¿Ëñ€ õ‹1ÿÀâÐì + +€q' îûb/ 4±Þ!ü#ú§'>öˆïÀå½?ÜÝÇ +_ºéq€ ? Vº½z§àg&9*¡R€]§%ÕE¦P'g£þº_årQß[¹vppÖ?ã@d¼Aü?X—ŸoM.ü§R¨÷Ålß<Ý@éO €¹€èÌà @—Ó¦—æÙ!ÂJàL®„ã~—öõ œ ¡àÒF`õÂ¥ !,í=Áa±þia/…'ºŠIÀZÉŠ-È<æÜƒÿ°õÕ«’%ë†RšN­/Ý6ôjÜž½U4D%ÃP³úš±–¬UøüŒ"<€ÜH$žX|‹À/?@à-Ìé:€¬ƒxp +šÍ.€\Np6¿ø¾}±n/×q‰Ü 4d5÷…  +À7ë“n†Ê;žýˆåÿ‰È˜Câo +Ä”A‚AÀÎ%bît.d€Î~0Îß VüDÆV¿Ž  ßÓ¹˜- Y†%ÄÃÿ;ÿù:b”0ø2‡8âP¼c†éíŽètw÷ïótt¯+ˆ½ .P?êQ9ä壣K4`Œäbƒ4•ëèqß+½{qÖ)ü™ÛÓw üÿuññEãEpíèâ~>žB<všó+’øòû8,8¢’Ø(UVäª +À£6aõáåA÷ˆ¿?¤#†ùüî•1)qeØúTÁ-núûIò5TESgÚ˜îóelåÅÖ^¨÷ ò<Ÿ§È¼ÙwWÚ†ji%ôjË7¦ª( ETù}:ON~ãæý0f™‰J2i<Æ8Aëz—z2×p–âÕ¶ª‰zŸ^ kš± zªêQ Gƒ  Ú  XY=»‚ÿÎk/^ð.Ñà€¿–Eào[êá@ò1Y¸î` ¨Gên‹¼'%v!}1øŠ0H ôÙ,À‡ÕÃL (uúàÈqQÛ‰Ô£b0üþ´»Ùk:N«Þqx€Þt±&ÐΉ­Aœ€q?" +ôÚŸS¯G%?êÔ;-ØÿH +ˆ*Ÿ¾,RnœŽ÷ú'§Tÿÿ‰×ñùÍ€õõ…Ôä +ôLà X!üŸ§°l,MÝ„üÓ¸$,càÁÁÒiö¼Ô'&è_ëç Æ'ÅÀ%ôgħРû“gÜ& @-È¸Š€”bIŽÕ–¢RñÁƒwíöêÜ{³Õ/Úºü|)Å +€§ggnI«¶‘Ñ æ†Z)O’Æ:Õ'ÅJÆÌ&*•™Å_f7Y"†Q¬xv&Àõ:+ÊX ,—^7Ú k«&ñvˆEwy2s{0ç±ïA‚ò»Ÿò Èˆ ïùyñ €N¡;"äÀå=þz— D¾”ã× Ìc#à«nþñ98m_þœXÈ¥ÿ~ZøÿÙA%¿ *ú ÒïˆÇ? D„qàã»ôÆ‚H¸û1}ü˜¨Áv踀8àì ì‰ÝF„ü}†ÆEÏ!Ô^½òâhüÆÁ£‡x#@ïàç_~õß›œžrß‘@¶ÐàX=™0]õ,ÎPÚ° p@/¶ö +HÄáÆ0†Y;ÅR½RÜxÄ–|¯¢¢Mï+^)“Q¹ùD~By-H™µ*í=ÕÓ1M¯@Cà¯Y°²Ë5úJIÃ{äµô`H“Ü£/hm) qõÎã¶áùHT”ëƒÂÿ¼6¯(ªj• +¸ò0N) IÝR ÏS â²êÓ«iÁÃÂa*þé•óì +þBÎBàøè¸<7ùÂ…}0æ,±°ëº‘ðn ,® - …©€cÎú=n] +l‰œŸ£‚.×þÂhÑuÔÿ>Ûÿ90Üœ«;˜`ª†{lþQ»ÓÀä¦1 àH¹ž#Ù騖øß±ÓÄQ"h ÀçWÐ'Z’=%ð‘°'\?ŠÖ†d¹é:ÜÀ[ÚûâeëEí`Ò9>;;9;À³þW§goÿR±•Q,¿²’‚@tû§‚ªeec4Þ3¿a€íS£ùP`ª0…m€Aà”q> A +PþÂÒúœNþ —žL^b€ÿ>ŸÄ‡€$ô…ÅààJìU)j©’)çVß-ÖWÌIªÜ~B`*µT?‘ˆ˜¦ôÀIVÚÏÚTìWÌÌÃ4Ú•¢ ÕL%ù,QYËÀ°vcñ ˜¦éÙO`TÚu]†ß@.y¯m$Ðçu„FB?Ýpƒåû;Àl$RŽÊŸáÿ.ÕõÍNðMsÄ«—€d‚åñ‰n°]àåÓã ߯Íí]̼ò™Kì!Dÿ´hÏï%þ!T4xÐ~àåå©Ã Á,ýïðû¾\àýÿx'0rý/v ` °ÛÜÙ>€Õп&Gø1'îMtq‰AAÂGᙨÀÄ% ¾Àm*Þ˜.ŒåLøð²8ðýç…º€Cp£|$ÎtÇûâÃE/"lI4Ž +GÃq€¡à" ~gÏä\œ‹ ‰ÿ-H¬ýa;ã5‚y2À#:Uk 0Ã|õUÈ÷·—óÕÝßnL-{ªe˜„ê„ç”õ³ŨdâjIõ8ϦÉ2B€ +*‘ŠØêzÅ‚_͘XöÐWˆyæó*(Bé1ô„â<Õ§ 00¨$)X@ ÄM3W-«­òN›E4 ‡aÅRƀT I +ÆžpË^J9†­?ý«æü{ÝL”'„†ii¯Àwˆ7y{®#vî2w]‘,øh_Úä{ýÀè[ìäwîÔýVÿPÿÄ©³PdÔ!@ÀG?‚å¾nÚI»MWꥡØ®d7áä}RéÅTêÃ=`—‘8‡Q?ªö ú±/Ðw}Éw:nèä$‰žnέõjµ½ÚÙ^yïì¤qƳçç_Áð&…¡È¯Œ6R£•û±è—ýmlˆ»V6R󸜶@Fý¥@(``%@ãЩ¬gpzy@PÑÀ6\ïóbà³pÐoòTl˜ ]€“Ä€þ¼Æ*I-xsí­¿“ÈÊÒºRjÚžµ•¢«sïõÕwH%Y×奥õ©¥’/%ué€U§RTM}-¾¶–¬T á+Fr¡z9 ™L¬T’3×ßZ[»ñó3XHV<ÇðÔRi]WuyOÆ`É*•”×ÿЂIÀƒ 6ÿˆ1€Îæ¦@y°Ïp HQýtæ÷MI€wÙžƒ{@Ylÿ«ûÎ×}\ÐGBý\é§_.ä…°ApiR=ãOC´Žñ &û0tÒÛ‘p•0Ò ˆŸþ“¯±…›,„£€;÷v&èNôÏD„@ÜÕC‚üÖ½7`ðï‚ àyÀ½#H!üá(h¼˜8݃€¼_×.8ÄPà9(³ @¯Œ—(‡ã»ÞŸƒÞ\ å˦‚5¢Ì9píH  Bžà7¾`û»¾ïã„lˆ5è\«5´2÷—Ðük…Ê¥»¦ªJa8\õó£ù d +ÞMdxF‚¿W¥dÎR!VÀ?×÷&ôbj<W Õ'ûŽúõâ<\À°SJˆû±` (xЈk¼Çž7àç™Çq±#HUe„ *çp4¡ æübPØÈ®z’¡ò¨W}ú¡är­ 7 þ×®(ü#¨Á €ã=p´Ž'`æïr€ÙnÀ:—ûˆr£9Ò=ljˆÕ»u—Jtì ˆóÀ8ñߺØÈ7[Aó¿.П˜@ýØ€º˜D€Xþ޲ÞлYp{Pú%7íÐ5X¢¹4•þˆšul×íaã¯ãúnÏnI¹Žd¯º„ôŽ‹]€Ñz”¾[ËÅ•N—KQ×?uí—_½ô ú {µêÄbààôíÑÈóÀÒRÀFDò, ‹ÈýAÕ?N +­`ec¬Læ³?$€Ëi@_ËÚþ}Œ¹ôñWZ‹ˆ—Á–àɳ`KP?ˆ ¸ú`]¡·¶d[u)jFç~ú›¢EÀ.-UU§X]PgoÙ·¤UÝÎèX´ff*q½b" ¸ú¼ªVŸd*™¬YÉdf×Ö®/ÞX#4ÍoÁ@ @icÊx]–}¯Ôö××_ûK;KÖ^=€äònvv¨¾…€pàþ7Ñ×G €ðüuTˆ\Šãåò§÷Åø_Ð鿜ð¹ˆû'ø¼"ô_(¯jýtd,"ì_äõ1 €>‘}a6܇"9ã°ÃG3Øß˜ïãCéÞ`€PЀQú1`gÀ¶HØÞù;¯œûÅœ``œì îÁFè` ƒ AÂˉÀ6ðþf‡RÁÅμô€Ë¼ ô„×_9ââÊûL5„'AìkGô†ó˜½®F\HÂSð=WãבXmXƒE®Æp ã=Zû˜Ü“±HO£WÄáhykÎúZR&ˆå¦7Úž\¿µ`•<Ï+©¾"[ƒ„ú‚"†µe˜ñäU+1d÷z +ôx´“{Š—4ˆ!´u]LñS¯ž²óÿy†ô3ìÕNÙØBx ·AF òa¸`W’È_(ò%KŠzð@°­ÕïÙ·×KêÒúZÕxI/¢-š†^€ ð‰QIE[j%SIT2FeæúbbmñúL B`Ü2<ûqIUýuËQ«{ +¦|}]~ðJ` ö"Ø„ ®ˆþm¦ ꛬóð×ÜoŠ=¼þØ,òüN¾!U|˜0Èæÿqýym_ú2þGÆ`ÌÆHßÙB€#‘W—þ]nÿ_z‹ƒš_È¡É ˜€ +p(æƒÑÀK™ÀÅ:aì®@zçmïlsB@d×¶1$¸³óÿçwð™Î…@pA ºì¥¼Ç‚À=Ö +´º!º³j€cøî슥D|…m¶ Ô„î˜à)»º÷øøðÓ¸rIA8šPàh;Ҕ虈ÓûM¡,.fÆrÈ„ó Ñ?ùò{LÎÃ:‚J +ÀîÀ#ЇŎ*ÿ~ìè)Uø·5xó°‚W¥8’ý¯D€lÀŠ'óbÅ2°S8™Ì¨¥¶ê©mvçc€F¯P…’ªxˆéãõ@z¢R1ys eÄK%H§>¬`££e¨dYõ¼j˜j!Ö§¯W16`d2†ê=²€ù}8$‚æÃ8 7! /`[q¬_¡A±tvUçµÆ‹=n¿à9€ãcî c?^Þ,ì 8€Ì×;Ü{w9¢§Ç@á8hl–@+PZlõØ[Â÷‡,àú1 á#¤·¸õ/¢ÿœ::ܰžŽt_ž°#t™v°é7’v{iNê8ôêÎIÍfþ]Ž0¤çŒ¶ì}Òvš.Ö#LP$úH´¤ˆÞä@:ÎÍù'½ÂÏ΂  7KD ¿°ÂÊ~jgý•KþtuÍ€ §@rÁÆJ~Ü_™d €y…Øå;ùJ ñ‡eÿ©‘À †NÀ‚€Ãê_0ñG+vÄB +{s€¿ +@)yD|k +Àꊖô`.ú<P]¨–ŠÎ-Û¼•ìä‚‘ ¬7âÿÑçUõ‰ú„ðŸ^:ŒÊÅŵÊâÚ5 ‰˜¢ä’m©{ðü–Jíõõ×Z_^̰ Ç®?6ÓwÓÍfgg7± +H€@š¬t¿yÀ>£8Ã?wÿ¹Ý‘iv†È/ÚaåŸ÷J¿>Üé\ìn_Îû"ÀþX0ˆ„ž¿íÐ+Aÿè0 @FïÆóѼ€÷¤÷;ÛÀúÀ?È4 xÎípCÀ½ O#¼Yøu€%Àÿ€>ž,¾7Á=ñáigB¾¸qñ\Ýð©„Ê0>Ýë·wvÆJpˆÁÑ@|vôÙ`Àïô¦àÚÑàhLèúÑÑ%ý€w"ñM, 4޾ß‘Îû'ýàDŠ~É@Á’t ¼ËOÑ €ÁüäЊ$^¥¤%Ü‹ÐÞR±’ÉÄã†iÆŒ™ÑQ¸¬i#±Í‡£ý4ì´‰°ËA¸¿†Ì_ˆ(ü•ö2¦àöÒAzÒGS@52EBþxÒPKžZ´´Ø«è™y í†Tþ7x!šDkj E©]áézIÚ{ñBÿÐ&üóä^¹lð™`ÀÎY,ðC™w£ +pöD± ‡U€o +r[9–öXýs@½.fþùn°Pç± °Ç"€S'èü£cßãúŸ0I>D'ÚÉAhr:€+2€Ò¼ ‚Òˆ¢Úßna— Ÿv¥ÈG9)âDܱÔsÙgØŠvé+H=лç×ÜzÎ:!ìßk°ïþ^xú¦ €hŒÿGbܶ¾ dMñ0 66R""pPõ¿>À*Ü’ Ü%€žøšàNôÁÿëÃô_¹6yÀÃ~Âp&R˜´×ÄÒ`dá)öòWž”¬U›jüU(ﮚò:ZLž¨%S7o™’4kÅâÑüʆa<12ÆBѨÞ&ü×+É„YÉ< 0±v=q}ÍÈ$’ ¦YŠ2øBvOå ÂѤQm@Þ¿‹å?9A:ŒùwÓ0ì×þ¯€‰rù›,aU ©€«Þ=L^ªúÅ +Þ þ\€ÿåéþN0ï×¹€ÿmq¤ò —ôLò‡ëˆE\³±&˜“„Cð1¯‘Àá×a,C®ìñØ€mvùy‚YÂíÁëÎvd܃ÝyE ø«§®`ÝÓ/uBÚfîDrlZ ž9òWžï/Ý!žŸOƒî`|"øÿìhðÅÍî«Gƒ‰Áå.ÂÑ…A´¸1pòm1‡çÿÔ@¼€¼_+82:kïË£ŽF©ßnŒò0P½’ q%€^ ü%3„ír²RôdÏÊ´‰¨Ôí±Øp˜âeß{³–O¤`¨””ü‚X€ÐË L$ðô?ÝTðèÁ0/=+®Æ‘òIg5ÎCþt,<8ÀZ +Á¸?æbùèö +µ«ûRCM²'ÀŸPØ à å8?±¾gýœŸËµœ–X Ðu$ ¸0v‡Ä`æV¯ÎÍ^ø2Ôêã¼ß`Ü/ ­ppŽ Fzõ¹àXà@pÆv'«ŸË‹€Ü\”>#¡Ä—æÜ9GêÌåÐèÑ£{v+Úr»s- k‚è;ÎEsõ\[²¤nôe4Gëä(¶ÔòÝœ_ó_(''Z Ù?t>?Óò ÷®¬„9€¨ê9ì/µÂ÷–RB˜ßÚº¶tg)l +bÇà þå–%¡œ\J¸¼@p48ˆà}2_C`Œ=€!8å§"FPMðÑX¿¸š€N2Zr]*JÑÕÙwô`Õ^ZWõ@ˆWU[¿uóÖlT*ft +U÷⤛FµªêªZIf•ãܨÜÿñL‚ީ܀Q²ªžïÙ¾Š‰ß+ÕKþ뙈ç翃 ÿ½ @"ú¯ ˜ËöCøßßä™~ |ÃÏÈ@áòXhË"dh\½o‡õ¿à8:ø•ýè hŽ¥|_ Ÿˆå€H$\ ]þlô]~±ý%>×ð<'¸¿7äwÙ Ü Ûœ<0ÔÙ>Üæ®Á>1Q狚aügŠ(B8 E£õÿØù»Ná·½s1¥¹øÑøbûâÇ_ )ÁÅÏ,>^fƒÁ_?À‰¯O ÷ˆàƒð/þÅЀp4æ˜:øF!àÏ“ƒêSHšÑt‡5ˆª¥†X$œZN°è<Ï +ïÞ@a›¾ Èì¯ X¥ocD@i[×Þ8«O[Ö–eY“‰»áÖ£Céóô‚7ÔþئBzY\I¶=­ÐÐ,ì*z¤7MzA {<™£>ï%DΠ\hp 0çÿàÇ¿Z­€ô‡“þþ'ÇdòÕÿ/Øp,¶•yðøm€ ‡Ïr½˜ÒoÕ»uäGq†#Ïæ»¹ðÌ>A‘}„‰‰`(к þ-Žü .[aø?G²I¡>çbê°‡Nï÷%¨`Ö/ÝK»M'¢¶ÝAƒ×•° ÀµÓ6|‰ôXËm!H€à}Ó™ËI¼×Љ;vËÆ·)¹Ärn4*ùvËWZ/kµƒ2€0ÿ„~uú€€©ühj…p} ïTÛϳòŸ@´6x`~úÃ̯±ÕXYû05ɆDÀÁ_ÆÁ}„³}ÄÅó`¢0N>BѨø  _{S!?ЕK~4ªÔW‹’¹ºúÇŠ¾€Ô–hXÅ"ÑYÂûä‚QÁêQÃx’¡‹¤^}."€Å™µÊ €LÂ4MCY(VKªò\qK:HVûµ$ ÑpCÇ—ã`Ìq*dzèýé}hâf'˜ÿg€@B8*ƒPÙŽ€ÿ î3Œ¿¤è‡XàZ( Œ‘>$á⟋ËW~g y!xŽ÷WŠbA„¬Ä6Á°åÿq¼¿Z€èÁàa`ÜæYÀ{È5¢¢9¬âw¶YSH‹¾ð9n‹¯%Þ…!nìl‹¶w"—OÛ¯ü‹í~g%Û",rl_zØëO~ä’?¶Ûlÿ'ú8Øù#±ºþq1p#bÀ"Á½ñ ƒ0&°­@4,^Ž03Ø øÚ qXÁ?y/àìüh0ŽŠ¦=¼uX#</Sù¡âù¥O À X÷ ò€×ð ÿŸj|Ëh—0‹i^ü޼Ì'±+ VÀÖ‚æ=Š·edžktsˆ¬AU}äÁ_˜1Ô¸af°¬@·1~¶xÿƒÊÌo$2•JÂLèrt¡dU}O æ}@©ô;n XØØé2ðÀð?DPù#ΈiÞÄIÀõG|!àŸ'ÿEøßxëp',ç¿væú…ˆ©èÍ]ªˆE•;VÆé«Dvz;;9~ú¹°Þ]îï\æÁ“ }ŸGöÿýððßÁþBÀ¿£@ïÿ.¢ÿƧEù/vîtà­?"ûºú0L"tXÈûÁdÿ¸c˜Þf½ƒ›㾂&‚ÎpfôJ*B8ÉnŽG^‹’J„3 +ÿ(F"w··ÿ‹Þþø_tâ œ>×ÿµ#t‚°3qéñ^7ô# îæÂ`:ïÂ*ˆa oˆ_Éÿü~€/™œtr{½‹‰­:±ÛŸñV ,Ë…GC4þËÞ@O€•³üþ@D óê#nô +ñ¸Z¥ëÚrj8J¥@ÂxÎÂh_,†àa?¦xàûS<˜ +‘¬øFQŤ` Ê>A<Æ y"P>…~¤À7täÄúç±2Uÿ1ª›N +åZÿ*ÿ[ŸŸˆú¿Q.¿¸€ÿ †~\Ù›ùý/…Pìfó‚€^N¼^‡]y=ăà ~çä ö€ïôð‰q05föë~Tþ°B>¨÷Pús¿÷ÄÔú¶eÀQ—·ÛM§i§´ÜŽdG£v[‚:RGrÝO:N¾Œ[w[=*îq¿ÝñÓè&PÁ=ÿ{oÚVše‹>@\¼“)hc„’ ‘ÒàæuPS@AAG6RKÐGz/xЀœŒœ” +õ½X3…yâ´Iûúª,Š:".º&nƒ(®~ …1Í“/ãû'Žˆà1¿Ê‚¡âò/»’r Þ^{G’SIÍÔ¥§’ªÎ‘,K²¬8J¬½öÚk¯µ k#Ð-¾ÏÞïÚ•l¶²UÞ)WŽŽv¾:ú¾=GD€ìH|Wâa ˜ËèqÄ›SÓSMF%F +%ž,(€ƒ8;(ë?±âò½°£e?Yzý\à?A#–ùqõÇ¢ æ.ÀáWPW~)“™ÐX`N.ég# úõ%êþ3‘å0¬‹Ñ‰H"bžÓæ´I3M܈N¡©;ÄëïN±xáN0z±úãT´85ûιÀmzLâ¢]0Í¿+¦&>›°"ô¦ølÂÉ8ëŽóø¹€]ì6¥â<ô78eæÿ\n@Ô ¬K"@­.NÀü«ç¹ÿ÷ˆÁ +öÒô-EÿûûSÅß½ŸËÏ{{]NÛTõbî”&NšÖj~ (ª\ îrjÀ.cTýÜû|‚ àûïƒ \°›Ãwï¢øÃ˜U{{¸‚'£Ê»Ù–בýr¼…H»Qô'·Ÿ÷Ëù`mAü‹:n2[ÕñïË!Z‰ÎòõN+6\~l®ûîkìè’Êÿ­Í/n}ñoÿöÅú +|ñÿô¯_ü“ ¾Øü‚Êÿææú)‘‹F^\ZD`$°w~dm‘%ƒ½‡(ð˜Z i¡«}l ‚ï¿&û¾äLø„ €¼·ñ›•Ÿ;*Ö먠SóM}9oü£›Ÿ™`c€À£‰Ô-;ÿXô?ô‡ß»ï=  øóö>ŒÀ¥àzf!(q¿^aæ<“3—f²Xë€åhü˜3u0 ~~[qõé+™?ûü‚ðõGöü<ô%×’å‚%ØßN~x÷»3™Œcj ©kiS[ZºIiׂÁåx铸rñB&˜ˆ$®'–tÍL¤Í‹n‡ +Å;à.fŠw"Áh4t.!à'…·fC³¡B(”¸q1:ašfë„:Ë A™ç‹ne`q)Þl{d ãz/€çþu‘"à/Æ @{/ûâ0ÀǨâü·ÇOéõŽlûy{ƒÅ;oïtÑj=Ó¼=”þŠÞÞ!9­ +QÛ3rÃÓnŸÚšW®¼lÐwõÔ\@xtד`0P;€ŒpzŸ€w;w7©ßG¼'º}ü4±˜ÎÀ°ò"aÀ}ÉÂP@ùÊö!¤1+@_ß©at€ÙC.ê¹ÚnîÁE޾ Î¥SÕr»c®á1„jÐt©H›£jÖ`Ã; \6[iï­ô-À€õõ/nIý—Úÿ9î}qïÖ«›·6W7ÓÃ…!Ürý ”˜e“Ñ]Tì$ Œ¡RŠùÀn½ƒ´DzEs0YÀ!rY¿ÖÁ—ê>çr5þǨuÇX¯ïÒWvÅí€Ç +§¤£²Éá«JõßKž0À­/Öo}q‹Úœqú‚nÝ»wë~ú¾÷~k•Ÿ 64LöŽî¸Cõ!ü›\m{†‡,ðxçÇrap ÝÃ>ê<€døäÄ/’@Ÿøšâ+ô¥C ê«‚\ú9¥—Óú8ˆÇ—°RàïäHBüÑðvv)ŠŽH–9R(ÉL'¿åJHV'8µ +ÂòÌB$È"… äèˆø-±\-ƒÀxÕiêÿ·f þãú¿—ÕºÁ@8yžB ÈrÀŠ8ûW¤‰çEýRÛ’…äêj¢i·ÄÐPþ}|2x@åË ' Àæó~×íÍÿQóYô‡§¦ËžM8ƒnhTí1ˆÙ1S÷¶*š]«Äà Ôó"äÇZ¢æ¿f/Y ø+ô§Ø•^#Õ504Æ ½MßeXzE7̆ecAÀhë4¬ŠiTŸvgÊU€Øaà÷}„“Ô²/‚ý?Qö¾TÿW` fÓß•yÞ\äuÿÅx~z¬9_ÊÏçKb +Ä`"W•ïËsúªÕ¾çmÞ=vv8PbûøÜëø¥,Ðû¾G€ïl´¸T‰¤,}"µdHü?ë€õRx@Àr~9$`¦#×ç–LíÆÅÈä ÕöÕú(\.B°‰Þ E§±x®p;ú =&}åbâ›òÿ>{d‚3ŸM|6‘ +¤R‘çuêî  Í¿ °ã-¶ÿ£2¤ýb5¹¶‹ÉÖÀxg_¨ ï9)¹œ&$}hOi׸õF¥úÒŸ‡ü=5ÎW¬37•#Rtn1Ûjü,ñ;—ÞŸõ/þî¹uosUk­Ñ?1ý®‚BwO!¡Å€ðW=ÜÁÀ`L€ûÓqpŒU:%Jî'©ÖûOÞ ŸHð˜8•óúòáÉ¡D˜0!À¤>¢g`@õ¿|ÈXàÒ#‰  ~ÿ’ßFPz‚ DAC—Xxˆ–æ)Pðút“ãOàùSÎNd/Í–«‡Xò¦ ?ÁS–ÅÐÈŸ™é¿ò/,÷ÿ2úßRøU» +¸<k³# Ê˜×Ø5Ú09` à³Ë ØøQ7îTk…0û·cÀ\òéÛÕxÁVÃijsóo³ÇÑÞÄt­×¢ößKŠÛ§/›-ÝŽÉv`y»au Þ¨v pÁ£W¬vË®è ËcÚ ÓÐè¹õ2’SÛÕru+;Ç_=9z +@€œx"-ÿbxJjøÝ|`pÿ<X Ïç›—ócÈT*@Bál„‡kù0€Ï.‡Ã§ÀÁ71ÀiO`œeó¿§ #dvH2xu€‰íÔ:€Ã €v=² ëÁR8]Ž/çKáH´˜J¤­ëú’5i^ŒèÑàÔ™` @ôÎ/‹‘àttòoèV±ÂÀlh¶P¸X8wñÍõŒž.3 ™‰Œ½PÜÎ0 È83;/˜€àzŒÖ#zo¬Öaž@õn¨á¯Êxá—Ûó(—ƒ%ÿžTÿž[ú‡ 7¬U†÷”»Í£|Ú&WLôŸíù¹ÓWÅ^Êþù‘OîáQÐä*;è)“ïp pW™u”ö¯ÝÿЄgóîÝØÝ–×Md +4ò„Z,|Ä ÂÝ:{ Ðû‚¸ÞSõGùçÎ<à aU^ú ÅÐ ôû<@ñ¯£ö³ Í5lºrÉ¡b«dj?»Éb€[|Üû‚ÎTþÿM”·àߪF/A lH­³ëJeåR!ˆ¡:`Äuèê£S¦DÐexÿ¨ÙŸõ%ËœäIdÀ!Þ·¤§³äÁD™F çò}ˆ)þ ,ÅÝ«úHòA¬ a~ã‚»=¥ßÝã;‘pXVPj5°”@žc5zN£eÔ+­JÌÐ5B.zÊNi„ Ú¶£ã;mC7³³›=Ú®V÷©û?8æ1À˰p +‡Ã@ˆ‚¾˜tã€Ã+'ì (V+ì'0M•? +€MdÀ@xâ—‰™ß¿dp0÷;Ô<à9”tðô äð¼²"ÀHjÀ’€uǼ®—Ñðr¸Yò߉fÜø¹¾dBˆ€t!I? Þ F¢ÑsçnÏ2ðÓŸ„·/þ6:y'˜ˆ¡È¬…ÈL&0áGÏÕ`ô¶°ÉõØ@¯'^54Ÿz‡9* Ôv²-Æûýž­€Ç,—æz ë§Ò“?Å%ù‘?ØðýtæjâQÂ=ÏV{tù|XâùCÈýa¼ž0{óƒ´½Sá¸[îM…8¨WÒúÚžö@àÝĻɂ¨µ­Q_/çÞuŠÝU¶8 °ÛñŠë»¡m(!Aè鸼sõ@…¯w¨ßÏ¡´KÅw'¹]úÒn'ÿ¸ÎÝ?·þŽ4ç/:6Gzö`Dpët€¬¯¯ór€,ÜÛL{5ÉW‚\‘#¶† C© 7O«O/ ðUzedõ_Þ½Žž¨7 ìGÈʃåb:t5‡‹IòPÈ{*äTªýþþá {/Í€àø;\ñc«ð䄟¡ï;DÐŒŸkûÌpŠ-Ñ!G˜©b¾ öËÊðÊïGª»£WËÇG¯|Ö3¯ÿC°åQ[ÀÓ`€¡€Š?.¶=ݬDû6Úœ¡ÛC£o `Ø|Sðî·L×!ÑÁï¸Û€âûÇ@vñ\–Ú0´U˜¼÷á¿Æ$€ašTÛéŽ×zŽj!P§wn*äu+†¥>6A ðä]ºôè]»A¸@«|°´¶INCóh¦N¸¢RéVÚÎv6»_-ï³ 0Ÿv^%@ø;‰Ÿ”Äé%Œ@À+ÂÌCÃü@ŒKHàE@Ð32`&^ö«éÙ³Àsy€þÎÎöŒoð›àHt‚î¯d?)ë¾äÎ+ 唕±–Î5mÀµÈ„=nfâáÌhJþÈT&¨GÒºv-­™3½sñÊ[…BPˆƒwÖ£çΦŠÅÛÂüt6t»pñ·ë‰Èß½y«˜b`/¤fœ‰Àg™€“ <ïÝøqy0@Þdâ¶'¹XäM€ËÐQ j±:U…–WÖ_ìˆî}ÐÓÙˆÒ¹ú¨ýƒeÐÓác0ãßDÿgIYß|Ä颖g÷ÜŽèX*þvK.ªüñ¡{ÿùSt°ËÙÚ.±ïÝ„óÏÝÖÐGX(8ûÜU€^•» ðˆ9zÁ¸jon*‰Á¨1 jõ:ulÔ€ÞÈ16ÀÒåî.fÜê〺ðô—»9I9øæ"àÈëŸÄ€»Þo@„ÍkPzóÖæ:+þ7]hp‹îÜÑJÎÀ–¸Ù‹Ï‚€S†°ùc`¬}}~ËBU€©ýá@¨DzIW¿ìëªÎµ¿ˆý<@*Û œàÇ2K¬ÛÀg÷¾>¶û±Ëן¹4ÓDž#úÄ/Êþ>}Ý_¦ 0Uåû£ˆjþ±»Pþø1+ýý¦2஋‹ýÞ‹·΀î×AÇ“ò¤íTƒ.*ðÕQ@NÌ(ö^qù¢ÄV ¢} ¦$øO´jëŸk¿@ÓVº”Í?ÞþÓm/ê¼ÖÓz^#fé·þ†îÕt*ï="@Œ*&Ì 0tpì®ÝmxZTêZO7b)ùùݰK«ÀEЮéŽi6ã©ìmïgQÿ㎾z9Î\®OÀÿ—¨˜Ã 8 ¾1ÀÊ OÿÙ x‘Àñ±&L€TùwY„ gþ|ØŸLÒo‰?ì§'?¿ä7%€ +DŸ·Ë>Wèjù×F̃]à• öB¤>á,i})}í–“¾¦—â0ë\´æ´%Ë4‰Äzdj6„4`x(Þ)#ѳçBÓ‚$0u{vöW¡D!zîÆd1˜ˆ@ ìÌ™…Ï ©À£çÑñÏ +¼p'´<½÷s& KСTrõ:*PT÷·„z™ÉWì¿rôZÜüo=TC]"öæ_fÈÙ«Ç_º•ãË㎫ªö=«JwÖM«;\'M>‡àé.Ø«~Èëé +|¨È€MR¶¯É{Õ1ßUÑ…w7yÿß« @gw·åBÈÔ:¨ä»1• +h¨âˆF/!Q9Ý8“sGÿïçÜ€;ÜáOu^d~¹Zmw;˜õØ.Ö/c»âظ©È1 +ÉWôº~Kß°.ŽZJ,òæ3ƒ#a  )féPø“\yá³ÁˆƒàƒÍïÁï=Oܦü”ƒYÒÅJÄ ¹ ×ïCˆøm +‚È @Ü &ýþXŸ&E»°§Zÿ=?çŸó4¿å1¨ *€»/t Hý!0S=D$šèþ !üì˜û2ÿ¯*õ_w ý¾';zt¦@Ù=Ïp3€…_\8íT[–÷ÁÞKé7y   €­¥E`Jaï±OKó+Œ «a¸ù¯1˜ +0ÙoŠö_Ïz^[|€bvK«Á%Ð Þß6uQãéV¥Ö¶Åoˆƒ+½®Ù¨Aôg[5ÃªÔ àACkX] ¨èV¥ñ´ZÍV÷à¸Ã½ÿÁÑËI¶à NüYÄò?Î0^YI.JÀ||¾9–χ–4@$™Pñ|I¢Ó ‡·ýañõ{N$Ðp`8P;0üS>è+ BÛ¼àž^ià¤S}9¥ƒ°—"{I/ÆÃËEz•‹¥í €™Ó—,-=€ Èý e¢Ñ§g¨þG¢iŒŠwB³?!úŹۡÂÅ+¯dtzÄ‚©gy‚Úÿ”óhç[f›moχ߶«ˆ‰Ë‹GÂ-ïfƒ}€^ô£ÚÈÖ3ÊþžÁU´ú‹±éîðí?þF×øøàè1ý˜T«ª—ß6÷[Ré=®ªð¶†¹¶rEɆV0¶ÛŒÚjÜÑŠ±/ë´CŒèØw°£Z–ÿŒtý9túul ¤¨ój`§Æ«ÿ¼êWß…ƒ·áÉ:ƸwðKuY<„Ô€”‰@+v:o¹åú- KýHÇ¿¹é5ÙÏTßÍOXãh¨]…>† +Äç$<ÞÙù‘C€ß±BÀO“ÿƒÓÌ%³ØÚ;1€0û—8H}¿¿z(¦ýj”ÿÄ÷¤ ’'îà2å=ðU¿ex Û¿þáUdû”¹¬@€î^Ö#`KJ}wk¤ówñ€g{xœ6vB@ÞâcÙŸÔÿ! 4ûï£w‡ž“~™úc= Ù7 €7l%+”'Ð`ùgÚªÿÇÊ¡†ÞþÚMU¿€X%†€Ø’d@À]ëÑÃlø `áÀ1²F×öØ ½ÕÓ-»fQï_1[ݱS ÍÓ£o {¬Tê)ýËåýþb€1øþêe”DЖx_UúOørQùfÚÿü|8ž_Œç1.óC™àk.UÐ/ +pØçûæ`29DÖª´ó厯_–_½ƒÓ#ƒþhùO&¿W àwN`!à˜©GÚDjÉ´¨È/E&¬kfpùD@ÞŒfRZ"¢Ï-Y 0ÁHâJèb €3ëÑ?¿ŠÞ‰ÎÍÎn‡~u.t{*º˜Áb1ƒ„ÒH*³=á 0ðàñq•sz2®Gr¢˜¨ÕTëc?æ ‹y’ð"ÐxÑ@õÇl¿áEçop¿¿Ùóªº3£½©ÖDzßb-ø˜ÖýþUƒ±>süU7¨þ1=`o«:€UUú¥è¤ø†š\ÝS‹ƒ²ï¦Šd›=7˜@@ «~jpuSHÞèäÎ@åGW¤îФ &ÒÂú.ðÁ™ Nxßöw\ã@5}G¯ß!d€W»Æà ,  Üp5ªüçx[€9‚š00(‚@%Ä´VKki^œ]éà¦ëŒ<ôQNj¹wóY H‡%bXP„"”QÀ ŠaÓ;´joîüè¼ùž ö?Ág_ÿ‰ï¹¦fOÐÂb‡WÄ¢?@•ý°_ÏÏÚŸ´÷tÐÇÑßÑ!Uö£þ±D¼U©¾¿<Ór¬€ôýbWÐ?:þatÿ;_ö¥þoaÐÍV» tÑèo1ûÏŽô[ênì¹ ÚÄÌÀãi¤x¡?E=¼%BTxÝ4‡(@³mµàNõ{ì¿añò˘°X ‹–i+!®jÂp£ŽçÄôŸÞ/M*ç-À¶c}•:;Í®Ùz%FuÞD z@€n%Kx£æ±ñe»‚#Ý'@Ïìj/º™ÒmÇIugª° ãÿƒ—4 r¯|€K2€€¤¢’Ì €ÕÿóTû9 ¨YÊ—â‹'‹œšá2Í’_dôi;Ì+{¾oÿ']lŒ NŒF €¢ PýýÉWWàdœ@&½žÒ&f¬këkÉ!`T,Í£™ žHëK×,-=g&"ÑЕPáv°-ÜHÈ‹‘H:19›ˆ^ˆNÍž›ºÂ º’ƒf"ÀÏ2ˆÙdàxN@pÌߘ`A~ÛÝÖc©I5`€zG1¼°õ¢¿ wĈE߀ÚL¿tüÆæ í—±?»Êîí}ðïÍ?Þ9x qäœM[ݧâºÕüòØ5§çû-ö¥Uõ¿: +¶†g°2ˆ%AJø`€ªÊ~O]T·ª|XÝÑ*]€b<ív{ ¡¿ Ïvï¿+;ƒ0ýƒ+ÿ6Ùô€¥þøÈÁE²Ó’]À+ú7T¡4ò²ÒZÆTQu_ùzý =eõuªöãªÊ„Øà¬FÎkBí¯åàÕ@wm€¨åbµ]Êýš¦Õ´ÕZZ[K¯j«÷WéÇ=ïjzSózÓi¬~qëÊ:F.xŸY#á Ô€»ò#·†kw[›;)w"²œ7¤çr²º,!Ǫê‹VåV¦‡R÷Õ¤‚ˆŽús‚$¿' Ž}Çý£#Ô{‚„=Vð^õWÿªþoIGïéBÊãÁe~ÏÝ €PPA)ÿžm|ƒb@†» èÊöu.ý¦+ 0-5ËwÕüUúJ/B¿ÁQ=fo!µM`ÛÇôH þÓ·ƒý§?Ë{-£ezy<`ÖÌ%»¦Õè;õžî´èé4 ó"ã©‘ÅÀŽã@ -SóTzZEohÃlhQtÂf%›u²Ùjÿèè«ãワ^"8I² rÃ'aøûÄYÕ·wÀb.€¢ÿ_ÉSÿ?_YÌ# ° F@ŠçÃÉ0x;¬òóÛÿ¤Aû}ô[Vvs¿ùMI7Fð{Ö~W`@Åzde43¢/Yúz ¢§?!,D/0­pæF&8Gÿ]—þÖJ˜“ú\1šàà¿hôÆ:@æB1M'æ®.£…ÙÙPavꟄBÑÉß&¢ÖÍ °Æä`ÂÁÕŒvvöÅ xSôùèÅ…è±ýÏàØe@WÀ1¿/nóß½¿Z½1û1é¯Vüöªü/¼‰ý{-æ“/x¬Ž`@‘¸Cú"Æ®ªP´†, ¼ª$mn +$K莰 ÈÆjnõD­SÏ1Ø8ƒ²Ìñ€pTÌ¡ŸGï¿‹©|Ðÿ-WÆ7TõSóµÀs gÎÜ<3rˆ|A,…XYÈR ÀÔ7lŒ/}úéÚÒÚ§ktqimmòþäÇ«?¼wÎ÷ï­Ò§Ï~Ž~À÷î]Llmœ>Š…‹G¯ÐCCw=ÞÙù‹‚,Óãa@ŸçRõ¥³2•.ÇïNëã,ž½GÜåÃlà€ûzeA<,8>8: ìüÀ_4®ÿþWÝ¢¾¥”}x_ ›;ÝÝʺ'Þ +¤æ¿J[#k‚.}C–íF…wù¹ÿÿÈÝ4užÝ +Д½sÁ,ƒ™Œ d"©€óÉD`!“]ì¼pÀnÀ›Š@v6¹•å-ta£clÔŒ²Ù%¾óÈß0ý½M£§\}•¹';XèË2ÿŸÔÃ<ÃqÜÿ`À ÀVU”Õ€¾ð¡ÚzI.Õõ«.¾É~w[n¶pG\ÿ; +¨ˆÖnu_ìâú‡Ž<§˜Ôç:,6v;À7Ûè+.ðXUç…ßGu§ï;‹óÆÙ:ßGÎlœÝØ8³1‚6äóøøýÝï~÷1¿ûÝýŸÿîw¿øÝ/~ññÃÒñ¹œïщŽ{8ÒéÕÕ[«iMS2Æ!°éuC‚F„¿#YPÒÀVkç/í ÚüäH-<áÂïN)88p‰Kz';©ìTØ©à õOµÿè 3 +üB q÷“¯~ø5ÿÙúŸºÿƒøç+ç™ÓÇ{ÃÓô9+?_B¼›­fÝ€G.Ú@ŽGâý$Xî-.û¦Ò()Ÿ©©kî6Ÿ†N^¬þ©R›•óe³ÝXØÿ›.mà’fOúhšÝ³t³Fµ_«™5 ƒžné•Vʦ‚n;n%ûQרîu+m½gÇô ‹: +ì¬4Ðírµ°‚CU¸¿< ³ ¯ô/çyµo~qq@ÿ HÎÇçÇòñ•ùù @žŽfóB>ŒÐ€Ó€¯gËKÌJ \„|0ÚÍ÷…à¥Z¤\@×Ú÷ ‹ÿ³îÉQ `òÕ©€HäQ%øÈ$ [Z$°®¥? ‡——ËÌD3ë ÓL_Óµtz.ñæBQ?-b,F¢ë‰s¡Â…âTt64;5;õÌž›†®\ŒFƒŠ©‰…H Yœ g"³ýb +`Ô  ·é‘M@èÂûÏ–Å` +³Ëù@ð †àŸ_ð„Öƒ1çßææ_Éü=ø5õ¸x*Å_þgw‹OŽqô?ðÁp2 âüîNauØO˜}ƒáï{UÍÄy ÀQƒ=ÁŽðù’ÐV€jù.;)mœyð@•e4ì9Tç÷e”¿QGâOÌ¥þ1h!ÔÅÿM:=À¥r>3¾q¦ÎUþ¬" +6êã˜ÔϰwÀjúž†!@:­¶òžŠE + @+v÷ÉÎ_"'¹J%p¾ƒo>…Žž æcÀL'~äkÇ(ù?Ê׊·ÿ÷¶¶©zW±ï¿åÎÿûçÙ¢Rºßõ@> ~xyGšÿjw +€m°ÇÓmc +ÐvŒÇø¸–@®‚ßÔùÒ”Æß%˜“­r üãö_)ýt™ö3z0¨œ¶(lÞüƒm/•y,û‹Õ[ÿêö5êíu– ¶Uô*ô“e*Y87ºFÃôÔ¥ÞRE×ì%ÃnëF=e†V±t‹žÓé–«ÙJ`f¯ºß?>êy|tôÒæ<‹‹'¾E%Œ¿Wzoþ„ªø«ÑÿbòŸò—§Çâñùæåa€Åø<Âò%‚ó¥Å8ëˆ Ï*@dö†—ÃþçŒÐÉ#Ý·Üw}y‡m¸QòeûïÈWYÂíë2ùj€€õÀ’f¥£Š™.…%py9ïŸ(d* 3a" МÓ' +WÎ…ÒÔÛGþSÌïˆLÎ]AB0\ ³þêWçf§~ +]ŒoÜ 3N 2ˆ¤…ÏÔÌÄö )ú­ÂàŸÍy6y``k‘@îúÿŽIïå@öEF€ éý{ûµvc°äçÉÊVU~Ôàþñ÷õ?ûñッǿ0ðAU‰>t…[ô)Yà‡ëe=ôèê£=ÞtAÀ]å ,@ ½:gÆ´%k¸Õé0‡ þƒ›è  ©é7º[¸y:°1  è8‹¯cãNÿŒº.¸º:NðÀÕ2,È1<¯¯­Þ |?ÞzHçùòïA¼ý0ÀÏ>ljŽ70XÕV©ø§oÑIkòòº `T"8ôÍtü $¾‰Ô—R ²kÙÎà’Žcur“ÍŽ g?òãøˆéeý/Îÿ×—`àðé¼Ð ¸úgÙàÃ#3YP»˜l·» ìb™à# #ë#ÕùKÍÿ~¤ôëî$@­j}>,êÒmªãšuÿG/ÍÑ™Êôâ Gú!Þ7ŸÃò/©6ûâbœ\|7_|ä?µþô)<–ÿ%€±é& ƒxp„HúüËËË~¥è{fžp?‚þ¿,öX;É2oɲû_ŸÊ¿HhOm&%fxçëQ*⤵u]˜éå”À`b]3–6Gÿù&癋s³‰ÂTfÀÅlŠ‘t$1wåb±X¸}ûöìí+þ·s³… ¿ ]‰ƒie&"N ’Y8'³¼윚ìâë¾—c–-ÑôŒ„ pÃ_ðtàÚjÁ†ðm•'ÅŸ™™‚߯ù²þO?ÌÔ€@Œ‚ö¸ò+Yà‡Ê'@¼‡¯Ên/ücÀ»î¤ïo¼( 6B‹+i\-‡Ä?—•ðàë3ÿÀ×ä ÏŠ#@ XpóTæ 6TÇc€÷ÿ þs2ãߨËF€ƒt!w3`iéþï˜ñÿ{Pÿñÿþø¯?¦+Tûßøüó·?` +`u5½ + À'¯Öµq8EÙ¦Þsj20¨¨Bô4](&z(ù=Ÿn^ÃËlµ8V°ÂiCÎÓF¥ÛÈmCÒñÆ5‹MbͰ­gÚ†ÙÆOäéÚ“Í–«ûý/àçüòþw$%£‚·ÿãŸäYØ¿2X€0ð@üŒÝ¾Ü„ú>cTúñ1Õ¼Ðl¾‡©Á¢Ä¹ 9bÇ"€ÒrÜ?œŒä¢ü'ýáîûýåòï¨ì;bõÌQÙL`€g—2ø +€€³ €“J§,3­éëæ@ÐZgà#€òD!°®§uä$ÌÄÜLan¶ ÀhôÎHÀÌ››*Þ™"º=;õþê¡©ß&…hðÆz1ü,°ž 3@f"p^È·8·Oª¾K(*€ Ô:ì,p̼H\ÿÃø^ñæßrýzªûO¾|•8âÇOŽ üsÿƒ~õƒþÃ-ý‘DÁ½«ô*=:ïÒ’ä½»©t1iÞañÓéH㬠td#¿Ž%ʺ¤ý¹Mþ×DÛwS•nü©úãî ÈÝ<–è»Î¾Ïm?há$P Î€ —Ë WÛýáÆ—Ö&ÿåãy@àmªü`ýYø÷OŸËñÎ<$X]ÕÖ` +@šÖÒ[º&ÐPšÈÞ3¾?Þav0]îü%§P€ºKÑùVÿà/öå9VõKÊ?>ïy+ý\ûyÿƒÌ +ÁJÑßÊVE0lÿá,sƒ®ÇãtS§á1œF…ÀG20? x]ˆ|ÒuíMTšæ‹ë:ü‚*hõÍ +‹ùé „ ó`ÀÀŸn¶0hQõ׼ش["jô¼×èwÈ@FŽÕ0#[qzO§VÖÊN«A…ßKO_3–*f[¯`×°¡±Q·Ý +ášÊL•%í¼<}5(€ðI<Ÿ/æK¬pW¡ú›Ÿ_ñåÿ¾9==ó¿±æØôåÒXs +€±æŒa( ÀD€äòòrr¨ýKS€¨øSÃOõ½œTŽWþƒ™íry¦ìßžÁé _ö˲ì³ÛƒÉW8NÀ ¬Û N:•JX:ÁÄ` e,&WÀÜÈDÌ4ý¼¦'¬É9s!17ŠF£Sd"Å;ëéÈÜò¦£¡è;çfg£?/LnÓ‘â:µþ‘b •ÉÌdÎDŠêÿ  ì0`À +€ÊµŠ`ïZl¢×x<s“áXðÂ%€Í†1(ým·øoí¹Ûx à_Ùþ~°ƒÇ¿<>þ–BÕ‡ŽÃLœW<€› ¦ÞìóÛéìbò.SþÝXK æ[»ûa =Ëö¹ql€0€•ÎÊmwåŸËøxNjˆ?&üJ3ˆæ ZŽcVÑ[¬I—S„«N–çË…̺iΙÖÒ’i]Ÿ»¼x%D ˆFƒÁHÔbpöÀ? ÝžzçW爣ðÈL¤RLŠÀD`‚ Ç E€;;ûˆnÈ `Sd€îÛ=VÌëJ£ÆÎ€ìþÊk€/Zð üÅ“×mû«ÕW¸ô? ÐÿÕ¯#àƒ]™ Çóèjûj{h,iA^ Ìå\!>â}–6‡VzÀPuÎØÅîÿn§C‘¡ïÝoÆœÒðÉÁüþ8¯úáæx]öüÆÕ²ŸÒý8«Æ0„û±üwßÐÒÿ!ŸöÿóÏCàí‡o¿Á ÀÇ«¿›\›\ÓÚ¤ÆÎA„tB±Ö¨g Ú0ÔÞƒ1˜ &_º×Ç‹°‘äÿn£Ž+Ç\Ê·º{l˜e äê‹<#€=,T»ƒ1ò8Ù®Ç 4*P)± ð‘­6„ý€ÉÜ?³ô‰H‰Mî÷áÒWÑ•ÖOnÚìc ÁH¹cþ¯k5z²ši«L_[÷è©^ÃnÀ¨²ÝèZÙÞVÏiy4bƒÌžiV–„1ȲµhšíXÙT# ì•«ûRü^V3 9  x¡ `~žjr…ó/S翘¤^,Ÿ'0öîØåf~šêslzªÏÇóùðbxÀÈ‚~¾V*ÀeBÉïïw€ü}þÉ2“ÿþ2[dÙq'jôqäûFù €WYàdU¨å_pÌõ\ÒV0JàmÉÅpÜ?qã‘•°–Ìõk׬ôõ¹t& +]‰F‹l@Õ=z'I›sW˜˜ššº}¥ðÖßüd64u.J\H¥£ÁTfá³T$à™ ò™G/á ,€76”ï›î"@'–ÿßš"b.ð"ñžÇõöáêû½êЬ÷‡z<¦ã .þ™iB8®"P­îP‰ß…pde?×éÄNûérÎ.[ÿ×v ¸–¾¬#䵈 'Øl rçŽÿÌ@Xß`RàlN(`„ñ ! +T®ðxméÓµû¼€ê/Åuôx8XX½ˆª¿´¶„cŽÚBzM¯©øÓ9RõÛ£º€ÁñºÎ½>^Lô%`[Þ)\ &Lp–—tø" +”µ@¼d·D à +÷*@Ç“uöN5*†‘2°Û/.>¬üH-˜æ›}&è˜tÉM}Œh´„¨”úŸzv°êß’@ƒŸÍfD˜Aoi&¢{„DR£â!Lâ©TÙT×éVFˉUxžL3zÊnèvÅ4,óšn™OÕ¡·Íý£ãȤ_žõŸJ7üãñp)?¶†ÑÏJ|ÑÆ’¾Ùüu>î»üîåw/LÏŸÌKáM5/O_Îç§JˆX9YYLŽÎ–óÉeøâC€@Ÿ!€ß—ôsñ÷•å‹èõw|åƒ!ŶóL—ëÈàû}‘¾£@ŠJsÊJÌTj’€•Ž,§¬bé„e•+áxy¢Z7­9ݺ~Ý2箯§fCTì Á€;Ôýá0É#€èÔtáöO oÍÎþb¶p.”HÜY¸`"³@ ˜™Éd€ã,¼ì€cƒG§Öbàáx@Þí®3¬ü^™h¬xQ3¿Ç|Ê‚Îü?°ÆÿßÕ ô¡ +h—¼wþúÿçb»gr9iäEÍ'dÀ3(°îéìJùw!ÀìoŒçrÏ_åû›c+ ýåö€8söÌÙ W€@=0¨Q=_]}xïáÃ7xðPfoÀøçŸ>ÿâ¡ø§Ï~±zŸJÿŵ𶻍M®N®­M®-ͬ-ãyZn±÷”дƒ€×àõñï €ýòþ6<8².èzÐì ­/¶?Ð ÅBîyv ©zX€Á*«³[2:èz¶ºp‚ÜN…üàøHÒeÀž@¢Ä-5HÐe‚|îŸxMõ_sù‘Тíçê¯y5Ôþ¿åï©Qõ7õZ¶Ö3S½¶íØžŠÓKU²½§•íîVoÛÛ¥ŠßÐ=¼ò×£§4+zòÛXBÔ´®eWœlÙ³]®ö¨qÚ‡ àKÜ`_ÌûËñæ…&"ãñùÒ¢o%_är?½â{ãÝË·›?›_Ì7©ýÏ•¨øO¿Ûüe³™cã`7•”Å’×d>.É`‰Ý€UGJ Ê?µülûûþò‘2 +ÚÙñ¹Ûµ¾ƒçúm*ñÀ÷¸ó¿°°ÈXAh4ú7ÁDJ‚´Vèu™H+“ÖÜ’5~ÍLë×#©¹Äl"*"X2H›oN˜˜žº=}kö'¿ŠžKL†¢Át$˜Êd&óR •™qdߪðô¨ÔúÍöè &!ô’*ãöxHõñ Ñħö÷ßÛ?þñ-„?>æÝ€Q vî*ÿ›»,œØEI¯S“žÛÈ ­€†ºå¤ËˆHéÙÕ>Ǽ®–GÒäà µïw–E"Ø  GQûN@œ\ @†÷~MP`LbØ92Ì£^ý`Kä×eîõñ¢ú¿ + \­f·…¼3_ `Kí ñ´o@|HEŸÝaTö¿« <u×"*íŠd[éû‘mÝ žý·ÿÊH3UË/€>§3 0 ÈT 1 ' q U~Kb¬Ûr׿ÄX‚³0€¥ D Vè§IN%klUªŸe†aX´ZŠzöR„GhÚkZ¥‘ÊîÍT«ûÇ"ìõå$2`j:§ŠÎÇOàù—<@ÞO’ÿŸ-ú¦ßhRÏ?26FŸ§ÇâÍ1*ý—›·/_†!…¸ËˆÀß /38 ÏË~U¸}a×Í?I?3ÿÛ~ÿöL¹,BÉÛ¨E@eÀ.ÀIßâ+*P:özJK¤õ´uçR*˜_"NËq?Àœ¥/¥¯-™‘¹ëÅõ+¡ÙÄT"“ˆRñ/ÓÑH0IL¾boÀ&@höÜ;SÑwBs…hp=,Ì‚I…?335'û-à±$BЃi¿¢ØÏ³ÿúˆ'0ûü¶é!/Lîc ý>úþí[Øã¾¬zæl„¤&'²ëÿ™»úl¼ÿ€ÍbÃa:±g@¶T1õéQ_Ž=ÿAðBàÙö¯¾1© ¢rð R7r<Ï/-ýníþ¿¬Þ¿OgÐÿ  Vÿß_[]Ë-Õ¨þãi–ÆN¿Î€¾v­†Ÿ¡ž“èåù/)€nžðˆüOy!½.t¯€¯€öÊPùu7„ì¶¥4ÿ*Û~ØÀûÒyqåGt«ìÄy@ Ú à8<@.€%Ñ€T‰?bO@fƒE0078¡Þ+\ éj"`‹U­S·&&;jÊGÛ€º¾¤¾ ‹ƒhæ[†Y©TŒF¯b0`tmgÛÈO[ª÷ÈJA> ™ ºi˜&4 ôãXÁuO¹›%€  £'0|iÿZ‹Bœð TºÏc³?N`¦ÀóùRs,éû×|þ×ͱùÅüôåæåwŸ›Ï_n޽Ûüdl‹áÓ3€0€8’à Sïï§^NJa/c Ð-àÌ6|ú>Ÿ»\«òû‚’ý~òeeÿ¯€”óÈJ-@HP2m—3Á‰e–I$Wâq àDì¥ë€Lt.t® 1¸,"ÀŠh“s‰hqêÎô…é·f£ ýäÜí©¹Ä\ôB†@B*³0°™‰md2ß²/ ŽhK|½!þwn«‹QÉqÒýøàEÿ'«{ÇÇ_ýØEàYè9ÿ<€r’½Ñz™/‡æ¿CÕºÃ2>Hˆ2*–ùÞÖsñDH Dì ‡±¦Bxkƒs½ÃƒžüŸ 4ÙÀø†ìn(´0ž«a0–X«ÅÖjk«“÷îß¿÷1o`úÀÕš®Ñ£®£úÓùçÆë¬­áÏç¿‘ûs¶:­]Àæ)¿€×àõñ¢ã€7ªå­m 6÷€+ù¤0ÀÞyqf7€á‡ò¦/:˳°!p£G`n¾YXáXµ +pÃÝ@ÓÎ̾=BÈ¥FíB×øBú–òA¾ÃuTêêú6Ø:¨½§:,\ÁB â1²‘ne @ ÕõjFÏРݰ:GYš‡0ƒ¡!•ÀZw²Ôÿ£ã㣯àðr h¡œ/•âœðûÐþCg€%€•äÓÔúçç×± 8V»ÜÄ:@îAìÄÑ¿;î ß–€Û¼«FÞÏ〲?‰Y üþƒ¾2ÓæÓŽ´ÿ*dÓÕ@r`øJk22©@ÆJ´õŒ©¥5s=xi¡ÂÀ¤+\°ôu}I»~ À)„çÒÑP&7`0Å`4bê0(ÌgC¿z'4 +ÍE# ÐdœLÆÊdaœq–™æãø’³o›¸Éi¿í!W-äolHÿbS ÿÂÚøÕ_›˜ÌThЈu¨**%¯ÄäÔëÖùü€á¼+9À*oÙݱl¹ÓWr9Š ÜÃ5erÑ@•HL€³XdU °]ŒÓcôZª;[K±–¾†PÀ‡« +`ûs{÷Òkkuʸ¶$‡Ž½B^@ÀXÛ­ïÆ:97¹È¤ÿ<£|]çþ+hõÒÌ¥.Áƾv<¨n3wß s–‰žˆ= »îÇ-¿gpâÅ€-"tUxP—ÙÌXmÔÝ +ê)‡ù}„eÀ‘d9t^÷ÓuáÏéç@Ì1À €qÀ@ ÀõÝ­þ¸ÉÕ_¼„þV¼ زŸbSûßK]«ae{ÆÓÆÓîv£Û{Úz3¨ð·õŠÆÉEÝcY„è›jë•”•Í–³Õýãöx©Qœ$ãñ÷âùÒ¥éü{ VÆæáú_¢E]Pá_Iþlúòt~ìr‰E€ÍËÿ“î,]h–â+É8k |I™$Çüaa|ñpx[’Ï7’Üü+ªôGþò Hœ99³_¦G G À÷ü"}W'pÖ Tœ´ž6Í`jÙ ––%5y…Àrt €nŽ/8ç$B¡¿‰N¬G£™ 6#뉹Â/L7£oÍ^øcèÜ_%XÈd2„1¶¨øOL€ø–5Àq¸¹)7X`CÀlg8hqhàñ_ú»0“,Mb%væ|ÀNkD)aE‹ :±ÜûJóàûww¼ËŸ +øØu_ïØ h÷Yš 6šÌX Î² ·ÿÕ +Žƒ À¹Žˆ§Ýñµµû÷ ¬Â!H|‚d6@`a|¼~íÚøµñ¥5]=©>ì2ìhÁ» [n + kÀŸ_—éÿ¤£?sIŽêáv0Ðîqùn7˜»ïzx ¿§bþx篫ìÿ¹ì»¶€žó{J)°å)«¼"€L  +‡ao‹%°m±/ÐGÒü³@S@¶÷QRÀ9™È5hq‘И +0ï/Ú@ÍÔ]€ à aR†©þ÷zÔæãǨTœžclWª•íʶñ´×¶+–’Àà`!Gç Â6~JÝ´ŒõJ5;S=*sÐWôz½DfùÞâIøâ¿Ò/›¥Ò +'%}cñ|*€Ò|Ò÷¿£áÏ/&ÇòcX Ãè]êü/O7a \ЇßÃÓ,¢º3xwÀ Gx{—à÷'e ”þˆÊèÃv\ ð ßt1À+ ™TÀ‰ˆxÒºÖRA€°€Åp<ˆVÖõu]»xíZÂúÛ¹@èÊä•t¡õ_4ZÅŒD̹DâÂ;.þœ ýÍ_MÎæщõ\ÿ3ëÖöÄ‚0η¶—@ Þf­k{¿eí@ïÿƒfÔ+>Ùǯߊ«Š¸ê&°~ µû.×ÃMNBqe¬ƒ™*ÿûƒÐ>Ìl¼/‹ï«`_Ñ02èĨÖÖ몿¸²K5YÐA­ZìG-ÖsϘ€þhˆ9Ø•ù»¹ÚÚýÕû«Ý A¶¸?¹¶¶4Žcƒ>ÎŽïæÆe ¤Î¡ôÑ©É:‡wTˆ±W‚ Èßöõÿ ЉÂ?siO—~À#€¬·W÷«ÛU¦ïSžFC ”î_ØÑxF>³/ÐV›@ƒöÄHH©@8t‘jxàT±«¦}ö©úƒø(@0*€j8Oþ'uW@Ç›sšÔ÷ĠΣçÇÂJBÈä¯Â(ÈjõÌžm÷xѰ=†c;H ößÉn7º†cu[½K}[ïêB VJ7,ͨ T¨²žrªÙj¹JÅÿ踿sô2%€Të“áðÊI®ÿó¥Ò/§ãІæYˆÔ¿߿΃ê_Lþë4æã—§óÍ7ò¥©ù•Ë’ œŒÇWØ Xô¾wá+p"À/kɤ_MñXèG0nsá/Œô‡ÙÚ,`ÐÀÀ÷,øÎ Àµæ¬t@=\^È,/» œ,E‚•¥ˆ¦iã×µôÏNè +bþ +ÁHáBôuÿÑbq=àN´ÙŒ6§ ?½p%tî·¡‹× àâBÐÉd}t)ð <˾ígr½•u]»í9ÿèjÛÝ[ëtjµa#ÊÁÞëwc™Hÿ!w¥ßQ‘vëᦂÜ+wÜÄŸì,så,΀êŠk”÷ÿqœyý_Ì/žÌf – @©ö Y € €(@ßÎÑH¨æŽ[þ±,èïû“£õÿgeœÖÍÀºn¯ë©ÌòIJx%Xô—‚ëÖœeÎi×à˜Ì%`*F.Þ)FRÅHZO$.^¸s¡àJqöö¹¿ŠÎ…Î%nL™XÈ<²Xý7áp&ð·€ê–¢± ¯a«U@RánÌ ÞÜñåêëwãÁÀ ¼ª0‡·:»±Ý]Õ ÷6½ÆHXèt×(¿7ùr¡¸!–ÂgÜ=lœ9[W\>æû*P<ÇüW—…œwë°¨»L+ȤAæ õ=ìþ[Þ{ƒ]8à·0Ð`üs­v­®+î_|~ŽÊÈuê¬Q) ë] ƒ»)øšøó“ÿlƒJ'Â{„~¸^<ÚŸÙ—EÀlªÑ` _×£j»¸ýs + Dom±äÿ<Óý<hKR §ÚÞöŸ €ãitÛ ÂvÅh0äU*ýµý&FtÃüH¤o +£/cYq‚@ÔKoês ]ÄbÄÚßšsšîŽvˆê!È´zò§÷R½ŠÝhd{ŸÑO÷´Û}ÚmÕof=Mÿ#Å;Åé nÿšý«(•ÿD"ˆD3™‡@€‰åí…@3€À·Šó?†¯ å…ӻݨÆÕËåjRÊdí5Î>t£<2FQžøÜ”Ë +=G¯Ü¦ŠÉé1èÔypó}jïHörIÀ7Ïl(R@Rƒ7r,!Àg7ä|¶~vcüìÆ÷kgÆ7Äþn@Ô¬C(¤?êÿþ@ç?ü¡CŸè”ÛýÔ5|±o³0b–êKLüÓwÖý/(‡ÄB×À2tvE êþ¨‘ŽÝ×ÿ5þÌå¿/‘hx—@çì€)Î(g«äáúwmq@v° +À*²ìŠ% èÏ^ÑðrÇTÿSÝvŠ @£b¤è„ €ÁSÛ²oˆЂ70]»¡Á@d}<à¥[SŠ€¹‘YˆwCÀÔKÂðr€l ÊGóèÔc -†aw¬±íl7žZÛNWß2ZÃjhÍc[:=Ö£Y ŒÀþ¶'[Ý÷T«å>êÿÑKuÜaÃ=ª¸‹áOò¥éé Óù_æKH^ŒCø·²¸²2_Ê7Ǩ¹ÿ=¦þ‹‹t‰€8¶çÃótµya>?_zo,|²ÿPŠûep²\â`À$ú÷Ñ8 jí“Càß™quÿ@}Gù¥ü3°¦‹0 À÷ý*}G €“I9 )Ë jëZ$0±@¯Ä%&•2ë•9+ 0¹MÍ‚¸X(®Š8ÒZúdâF0Z¼0Ýl +nν ] Í%éÅLÆ™È,X ËN`Æq|KððhmiúÙìÿüÀÍ” €`³íÙýŽì"€ãêÖ 0h$+ež:mÌ÷áã\ æŽð_ãË7ÿÛÍ3_ŸÙøúÁÍ2xp“Ð@Núÿ›_$  lù±ÂŸ +þ×gÎÞVz.MMOçóØç Ç›+‹+ñ•ùyÜõûüÔô啸ØåéiÄMÿéÝÛÓáæŸ Ìlˆc‹µÍç[ä ýŸš%?bü'ð:`RÙùRûï÷Nv|þþÀh§Ü§›sf›j?! ¿Ú@1ëN +À^××O–Ã# œ‰¬c?EŸÓ"×#‘9øû.~,KÅO",´&ßLDƒÐ6‹·§¦ +S¡w¢³¡É+‰D rc!³0ádŒÌöBi{€óz·`i_«·ÙV ­Šð¶¨dC`öÚž'¯ß’‡ ÊÉÁð(1€G¼pX ° žãþêÃt W@Õ’Š÷ôú7ûÿàÿ~ðàknç|„`tù5A„g¾æþŸÍξææM܋Ǡêçè|6‡„A®Ž`wc£¦ô„ÿ…]ck»k±¥UnþßøüóŸq?^][ÓÇëµkPŒ+¹Áæphu:p*"0HȆ¹€ßË k(ÿ»µ×àÏyp ÊaµŸN‡~Åü€‡ úûåýjÕ3Ó¥>Õà~¬È`OmÂT\ÂÄý—•àΫaÀUäÉŠ`ÛÓð¤ ÃiƒH{ñ!jï#Ë6…€30kÞ„f_ÿßÔl‰ +”5¶ Qí§9èîÔ_™™-v걜ä?W£gWìJ¯b¶*Y»ÛÛî–+Olï©Ý¥¢Ÿµ­bzô¶iX  ð@dë•J£ºU­Âý‡—_jýß±Ù=8ð%ãÍfs>¾’ÏO¯$ÇV0€C€±éwß8™o^nþúÝwßýåŸþ4õ§wá <%‘ÀÅùÅäÊb<¼âjôÿ¡TR{€áåeaü¨X`%(ËŸ]f$Ò÷Ï èSí'@\æÂ?¤ÅÂÀŒüß÷«ôÓ'åR•…”¶à,™–YžÈp  –ƒ‘”ž&p]ODÞY„B³‰èÂDðõÿ¿ŒD¢AhàT,N›ÍÕÿÂOû¿ … Ûë…L&ã2 •õm'° ÀŒ85x¼÷øq»Õ’H[„ÙÇjÜåÉàõ{òè‹5 ¤L‚[°Ç?Fúu¤ÄFVæ[­ÝX+‡öAÀ×ÔùS=ð€A'þÝmá¶d¢õÿÍçoxøð-05\««#§ˆs­Ø]©ðµÝZmaF-WñaÍÝ[5ðúÿÅŸ­ûW½U~*ý‡3Õ™!~ÈàÉÑÎWý#삇 •Ë]Ö° +`Ë Þ6 +ñ€[< +p¯6 ‚ ¼!ž¦ +Vc]øÙ¬Ð,H¨A*÷sjÝ_mrçÏ1A&§™’=dr2ŒT¯ÑëÚÙzçéÓnÃq•FϨ´JÏ6´}8¶ÇðVèll@Ôÿ—÷éÕÙ9:þêèàåNDS 8Dûêæüüütþ$¿’_üÇ•üÊBÉßÏM-®LýšÎùæ?üéÝ_7KÍ_OOÿ:Ÿ_˜Ÿ‡Õ¶üÏ!@Pà$) €Ÿ)€^„ ¿2HBˆq„~Ôn`yøýÛ ~ tùøj”®ñ`ÑM]H†‹ÁÔ\ÚžÔ—ôDú·ÁÈdèJ"z1š°ù ò2ëf"‘ˆ‹¦óÍâÔT´0uåà;s!º;°~£8‘Y(eëÒÄÄ6¶¾sYBãìV m xÁ3x½ðÌ»YU ÀùÁR@›=q½ÿÇ1ÁJ×CެSzU~P¬S‡" WÇvàÿ¥ö1¸É¼ÿ×(ñ@7Ï*›tÞ¸ ,póæY58{œÁ™›xÀלÄ£‡\gwíþÒêêÚ­ôý[­ûtj­µî¯Ý¿¿FõÿgÌÿ«ÀÛ?þÆãÔÿ×q‚v@FºPÔìÃïˆ[l ÜxPöé/RÃ~.v_‹þlí?'£ÊéÔ?öþ¿4pôÕÑQ¹\Ýâ €®Ón80óézºâ°'« XU»€ÃU‚çùªd¶·{`<,%pm:U¬´7X_Ï@œl:ß_@{h Ć>Ȳ¹ 30äŒ]s -±”±¿É®¾–Éù>6xU¨£otímc›Úÿ§Î¶À­k?9vÃlXÛnhNlEÃjd+¢jù˜^_.Uš:â#v~Šš+\Ì'ãÿšoŽý>‰yÀ<¤ÿ„.¿‹H ±éËñ +œ°²}† +ÿ0OQˆ/—¸ò‡ÃJàSŠÀ‘€*ö þT0ö+h¼ €šø_qÀYp¨'¦Ö3“ZÒ*šµ.߯Â4e ¤ª¿¨ÿÑùcûß¶zÔ×{Aÿ£¨]‹*~×É6¶nÅó²€ýXF›~<­¡§zÝà @C3ÛÕ})üú³kâKR•T"08ÿ*äóùxøää¤_¶øã‹¾••ßÓé_WâÓÓcïŽ…ÇÆ¦›—›,\\I +ˆHú¿Û$M@’ʉ}üŒ’a.©ÇOrD€ŠüQ£€GÈ.ûE;üåXð½¿Lß™xTR)GˤtͲÒËÌ$Ád,ÝJkÚÒÜ és°HD3A¸dDÒ = <ÐÌ—šSÑèTÀìŹh¢2 ™ÀD†÷ËÎÂÓï>xáónz×.@Ï9à ´¥Ä€çþ€Œ°¸ËuÿÏŒ¿¦¾‹a@Œ³XCš VËÁ¨^Wö}uìPe¿ ] ÆúTò¥àŸù÷ ظ©Zÿ¯ù. ¬K20Ç Óùÿ]ÿtíÓûk„>m}JõÿþÃyø›·óð7¬ xãá[“ŸN®-ÑY[#$ÀK„€}¼Ç°ÛÙmrðò™ŽµÝzÄîGð¬Ir$”¯€?Ç·¸d9Éïs‡þ*Æ3 fN@üpÝ€vÔ*À~ŽÀÐñgyô}Vå‹ö,@5‹ü?è¶$(;Òü³Àã9ßÞkwñÍž†§ëišHAØV.þB`r€¶h¹‘ ñ‡­tÊ&ÈRkþô!Vì ÌÖ?òoþñô¿Åì¿Ý¨T Çp* júíŠSéVžÂ +=Á½mvµ†åÑxh5¶[ì•«ûGåéþ_.°ãV~ÉLʵ$Äÿñùù•yúŒ‹ßÏÏó{˜q@þö»¥ü¯Çòï–šùæå±üX<±ÀJ2 ÅÀ¼€ÿŸ½÷më>Ó×%ÂÑveÀž;f¹¦›;$JqÖ X9‚)T\C„õutH–20"1Ù¤àx cÀä‹°8×Ð.ˆ”&á±µ2Š’¡¬à +%öƒ*¹‘€²ú@a”è^à*E¬Î—‘'µdßçýý¥ôvîÜ´™Zjuøÿd[’õ<ïó>ïóÞ®ÞŠˆ©˜!Dvaðxy)ð– B½+™ýkaÀLò ` €’ìlð1<¾Jâq¼’~à&0ù é^P”ÝiÛQâ}éÑá4±Ìƒ7_¯¼x 1Á`ö?:ú†õÄðØøDW«@4ºô%ÿ_ûƒW&b}£¬Ðe˜‘ +€»â;úmúo;“[ÚãØ„5 9@h9;üEôt;@¯.†1y—”?"5PÂð<ÓÖ÷±ö÷S6²€KÈ +'³!°ë„"À­û²«€n€œ +D2ð¬ ' ìþ¿€ +hŽ&}UmâMWüUd80|Ü·g W¤öˆ¶€<õLÊî€Ðzºª@|'§± CŸ ÃübÊÏfIle5õ“¸©e›¸›mtLbˆj`U@¼n;Ò´Ú˜´*ê'ôoÈd–ðdû)G&?[F¤" ˜I€$@r‚~‚v:¦¯#¸{íoÿ–®õˆÇûcH´õÜQnG£Øx-…7E°ÒK¸žRøs{”ª¡W *þc¡¤D0€@od?Þ3 ø `c,<Hÿ)ü¹>è +@…°ß—ˆÇ§ÒÃ>"cÃJ)öîoèñ½ññžÑžÞàøßèè¹KA^ÕûtýŽáÆðøh/¶þU,]zËÿüDÿhÿD3€¯”H<κKœèûWsŽŽ/¤^ËåÖ»:€¬PìN–-KÎé œB9Ÿåàü,êöù‘¤á3?+fùOŠX€›bÐÅñATúï«ü… ð¸àÂLpÿ¤ËµXh—gfjí6 +ôgàŸ ýC  çyý®\.¶Îrà2úå6?s•¶¼0{i-çg[³˜ÜÛiœ‡]ÀyÔøÍ˪þ3^É€ü"€®v Äw`aHðûMdr` R? ÿìXÂ*ÄYÁxI0f_<ÀÑÐÌ%a01r €Àð¯ªß–À7‰ q/ ¾×îpI?În>¼*œ=Ò · ÷ +‡@øCðþ!jŸ¾“íøGé¯VÌŠZ±T L+Ž•€•IsRSTü[½Ž+mªŽl®LÓÜÔÌœ–Ë577·žì<ýÅÓg.¬pU:½»»;Ý~yýÿw™-€ïR¡ÿ·a]Äý¯¬DVŒÈµªN @ +0=ÍKÅ`ôXXIUéaýß^Á~?{°˜Cý=ݽ?[^þ·m3™èEwŒ·yÅ€ ¿ý/ÓçœðUâ _åAe*=æèéyN—Ü áÈ>À‹)€p¤^›è÷ö÷¿þí‰`p +ö?bwút˜Üñß©¦ˆPý ^ú’ÿùþ×GG…PqûÜñ©x ‰OJ0IÿöÇrßÍ}Wr€ä®@¢¦ÜH ‰ÂþxwÀÚ @¡P#ì¿r®|î§r¨0•öL’­|™@›ðÿçt& +à,°·q6?Ò]F ÀrÞÞy”ð›©ÿH8ÉðF493]CâÙ.€œ5üCå~’YÏ5c–†,`–ùVš¹.öüÒ E?Öæ X¼ýGCýIÎzšK ^)Ü Ø_çiBLš UˆŒûÙ´ *ÆõUÆ’ ´Tü´wÇÒÂÚ'ì}¬÷‹‚_ˆ,ðä¿lþø«iìúÇ­ +±‚õŠCÕÔOT+maI1a}vÒ1iNZfÖ™ÔzÍ:œªÕqä,1¡À“í§¼2éYÄT]XÙUÁîJ# “´”ÔÝk×° `(:½FûÂ×þsêX*M @ ˆnGÂúíkk»×„is€žjÄ0”j8¼ è„a⯢¦ß.­pèo!@Þn"‰ö˜ˆ]€‘®9ViÂC>øÙüñJÖ—H§§{Ç û wXt[€0þ`|,Ý3$ðúhÿ¥¾7ƒÁÀ€ÿ°®ŒŽº +@Š@ôM˜'F'®c‰ÑŸºÝŸ;w' ÄK¾Ê‘ð[;~ñÜwÁº/iòQ7h6™”K€úwœÊýäòˆØ¦C¯"iovV,LÚó|³ÌN²Ör^.àN€°2=À3œ|R옷—«p®üpfãáCB}TûúÝÙ(p&ô/—[Þ,¢€[Ë­2ËÿåG3ÌÚßvÒ¹ÞÓ“á¼à¼çD„ðèGá7Àÿ gœrÐydý%ØÀ^@‡ûŠi·ÌfNØ*X ÔèݵZ9ì°÷iKb1 + É&€pjœ¿a=«MËÔ¤ÀNSÌ|ëÿì$§¤å¦Àô^Û_ööQÓÖ¿Ç{&¿[ Ü(49i›þø«“ž,‚À2²f6‹úßÄ…®è/1ILÿÙOÔJÇêTêæ¤6iÑ¥1Þ蘕Žc’8 +½G³ðuÈlÂìºý¬ €¢Ü2Þýƒ+Qýó€0ÿ0ð¿zìz4:t,l?q,¾V P®+ßF†¢Þð11Ï.1¿jtú®ñ>±—þˆ°QZ¨z%¢([ Ï÷XþÀÄßÊ:<ýÇžÀ½½€ÄXàE@¸ìFÅ@¬2õ8§‡ã鸚vûJÓ¶ÀI€} éôèøð‹Aßë/Ž^ê ß1üzÕ­ßÑu#1üâè¸A׫F +@0ºtÚÿúè¹þþ7Ü£îR… ?‘¨ð€x;šGà·FØÚœC|‰ƒ9ÀgfÞç_®”ÑÿÇç—ç“-±l™u€<ºþìâ'X1BHýi¢é/¶q °Àü“ˆþ=nOÈe‚r±}ô®Â½rq#øŸ'ÿ>²IÀF­¼X(Ÿ/Ó™8@Þ•[yÀò2ð¿ÝþvûáÆC„ 8ñ,á =‹5‘³°`à³;‰þÚ‡ðþý£pÿoy½{UNLÁɫЛ¸}‹sMö: –‹Å@<ÊŽN1Ü @:°¶î°4Ñ+»€ë¯ ¼ÿC­áh,5 ˜šÙh˜¦¥0«ª´~OøE -C‚QèËÒ¼ë`°'ôÿÞø¤ “²ëϤa’Ñ_MOfÓY.þ©ü'ü‡õ@P‹€?‹9@ Ó*®YÀ–àýÁsÒìш8t蟬jfn3£å–v2O°ààÿJÉ(Q}iƒ7ÿ 0þ³¯ÿö¡øgàX£ÿ¼ÿ¯zìT8ànXùÿÂ\ÃCÒWÂ¥HŠCŸV<º¢L{ªîD" +¡·w~Üos˃íWâ¯!êá.€½ÍÀD"[‘ŒlÐçØÝ=ø-€Jlª‚  cñùñ±¬»”ØS”鈗À‹Ù±ôØøa;Z—ô ß_Òõ;†¡€ t  +ÞÖCÁçßJÐûFG'š¾Ñ¬ôÅã7+ì!ý'íÅÀ\þCî?yS–þ'!ðóô¶D€ßY1È€ø4.—k±¼V«­]ä6ÀÅ‹ÿÛÆÁøOmvÿCþÇ `ž—ÿÌc:­‘rÝI•ÿÏ?úèçŽa‚Gív½œ/c1ûyÍ0Öt9@ýHøµËÿD„ðÏ·Ýc—àß»+yÀ€<û?wggk³™Ë°  ¢9LGÖlX  ?!ü/^b°$/^k·&´w,™0 4^Cš êh˜š*b4ÎàÁû8¯ó€iUU¿7ÉàŸíâ9£ûø¤÷Å%mw¾7™¶ß$šiùÑø¤ Yý@–ÛþD*Œ€˜¨tâ*þã<8bõhuÛÓ¦@fegGmT,M[ÉmnîˆÀÏšl”Œ€aªFà˜ ’>6®…y ðµpŠ÷þ\âóŠ^Ž^ªV US©¡Ô1z'ŸïFï^»;­üzü²Q뛊¡¨FŠÇ@ P)¼ ŒŒAt—¨Vîÿ»ly»þÿmÁäš@Ñ`ŽŒƒÝÈî'>-ð >ÐÛ“~àëŒOÜDú*c†‰ûFû|¯_:ןðï” 6ýë}º±Ð‡@I°pç¶ ¾þ×S¯öO¼81à_ä»ãq@âñæø-s€'ß‘*€h¬¯¿&E# Žf?£¶XÿC7Hî[FÒâ;H_DÞ>OáïIùâyí²€d@Œ¸` tÙoá-A¼(˜c Lü¢UÏ—g°ó2@EL~´±±&€Ÿõöå2a^*ØZDx`½Ý~¸±ñð£‡Dèèi—Ë= ½ÌÄD´ðèHøµŽØbÿ‘o²•Åvó*±½S·pøÀ“ìÀYþ ;Ì×–4¹îp:0[Eð’ÖÐ^ã­@øªþÍTM}MÕ:DÄçDÄ :@º (Å€Iûd÷þmk`šÙÀþtZÚýmñŸîuÒT÷£ögôGíO`^‰[,ÿcË1f&­IÜÆ‰ ¨¦*DµSÁß@ë5'ë–IìE³Ö-íÉJ.—Aýÿì3pîÀ¨ÒÔSƒ`žêýð5qNÃÖ”þÇ E]¿+ˆ‚ ýÎÀ»bîV£×”í(oõc\ŠVÃŠ×Ø%PÅ +_OÉðˆM@%‘Ù*5={&ÈíŒ7–Ù`¥«  ÿYG?è é‹%|ãÙøãñx¶Ð3O”Ü] òºõÊXüÁØðذBOœ»Ôߟ¸Ôà ÕÀƒñ±7u·¾@ lЛˆ<¯÷O\ +ŽN4+/.”Ü Ÿ/•?@åHøíèm|wßXàk{9˜”àS¶OÎ·ÄÆe§‰>Ç z_NùÁ |"aø$ÛOR‘Ÿ<îÚgø%?@«Õ*çgfÚmÌnˆÀИY,èrå]ŒýInÿ£‘i• þgÚ¶‰<`ãÛß#&A¼!_Èc`ù3ú?ï:úø5à_Öú¯ÌÿEmc·/êÅ;°K\ÐûÝ X +ÉeLLT°û|™XÀ{öýI/  ÐÄN D‚ 0W@ {ÿl6Ôç#]ØÄ³jà‹1}"é“2¨ëö¿ñqþ³tበd¦wà¿ ©¿KPóÇá÷«`è/Ë¿5i©té±&+Ƥ£cö˜u«®öÒ_ ÅZÓÌíä´ÍÍÜæS™t@`ÁЫ ~?P'P R)ƒ8@ +¥?1‚û*ð, :½N°Ž» +©k +ÞCLÁH¡cN]»^­V#œæ·²}=5´ÿ½Uì Â#¯"€`Üï^± žLÌ‹PÀOw @0€â½Ð<¿}üÿœ kÆ*‰8Õçñ±x¼Ð“Ž'n¥i›À&¹ û†ñt|¬ïN(á~¯´?Ôý%Ý0 +UÿU#1<þ昞ÐS„ÿaCŸðGCÏÿEßDÿ•Gû›îñDÉW)1(ùJ+¾£$ gqý?™Ìç åz¹=3#ç™6]fÎôô”Ë<0Àƒá”òÿÈøµÔ;÷?ðÚ ¦ì {Gìÿ£·Ÿbëm.ÓthèýµA¸z—"ï¤ÿEK0ZKbS `Khþã•Õ°À°Y;05'¯T5æhÀWU6d;YŒìP¥”ßI }_–ÿ¶ØÏE?^âq@.þÓia ¬€bçÐÿ§Y*ýéÎO+ŒûH"P­¬•ÈBpt,ÀÚ‘EüŸiNZ“ ³£šÚ¶#çv´Ìææöh0uº¡tÕ_ +TýƱvû²æO°Œ)@ô¢C ÇèNTìÿ…RàXꚆjžVˆèÇŒÿT5x[ߣ).^yÆã=ùÛ½a§!üWþ¬@ ÈtSl @~‚]eû3ƒ«LU¨(OÄ'Ä{{³•¾’oO *1¾©DâA<ا¾þþþKà;˜—(…Kº¾€‚€!(a£:¡CÑïŸè/teÂëM”JSM_"ë󹡸1uà«ýz}&­–äº`‡ŒâdYæ'[³lî»9ÿéÍç¹d€Çë’" Û€XðG¡/öËIùˆÀàJbfÀÞè—lÑy±\^lÛkµ ‘@G›@a6_(P5’Ë€@’üá-Wž>fûƒÒñ®ˆp¨`¹§^î° ½€µÿ¹ø¨ðy •ø;ñ'³_ øïÝ@@¡ú +€m<ôÿî§;žÍLF2:› (é Iì@Λ‚ùšû˱ÞX—N@ÍA°¿®Ò'0±À\2áä‚{c;€Ø¬biO¶#ä}¡ÿw¤ñoRFû¦»?çüŒó>A±P‚· òwÐþOC`À!ªü;q<¨˜•Ž¥:Æ-Õê­LVœ•Ž:©Öá0DYËüÄ‘RËÉE@+Ï>€}!¡»HœÇZUOªÂ÷9"D¢\õ_§kBþcÐŽA8ÆÕÿs̘3\cóÀµh ÕÏÊöûѨ?e׌}k=r °½ Ø“‰Øm~Ä¡ðZÀÈÖ¾\ ›à8$Àg ÷A¥Ï½`L{³è™æ·ôR¢Ï7<5ì׃n÷¥þKý‰;~]ÑR%ª÷u7·‚ú”!€h"zýŠíñÒ„÷">w‰PßÍü¨ð,e€ïäö¿«Ògg䞀ãÂ-`Ù¼3u‘Ä•þ|wz@ÚE×ÿ¤ä³'÷8À@€ jÿËïþ_Ÿn/ƒ #ˆ"€I@•5‚9¼y u-|W cbÐPVVÞ¿îb†=¬ÐYÙµE‘ $n ÀVàÚü`Äv¶¶ØN¸%¤A¦=Ïÿ?¿ àq"žH?ˆÏöûâ†[´¦±‘@iAq'}‰aÝ–Ü·ûGûÝA½Zò/ †»o|X¬«Á7ŸýŽÿ½+oöOx}’ ø/5§â¾ŸBðM5G€gÞ +`+À û3‚uÓF°'`>Él +üðø|«µ,ÝX,ÇÙïRb|7भ°pRô dr€°ˆí.@«€…Àk" ˆ@¹Ðrµ +®ÅÂb¡Œ+,‚ÀìlrÄ O¬ M¬¡Í,`†Žžr˜ÍÌŽtgDàÑÑ÷ýsVÿ9{ÒßËÛ~?{Äv…ú?  þWäùwAxº³<# @…êud航]¤þjŒûÝ0`‹È‚X È¿ 3–ük¼Øj¨šJO©ë&Û é^Ã$j€5}YÄö¢‡Ïƒ„òªõßg”Åÿ$B„€ù=iö ¤E3 «Š@âfšm†Yªç+iStõ;ô¬#K˜/Âz\ø#F*#VKƒÔIµ²D?Xˆ@!ˆï‹›m€‰€nt\¥ˆø‰¤®¥ªÇn¿ûý÷¯_¾~ùòõë—£Tü]gpŒ%¡cÕ*]©¹”_ŸÓçR©”Y€0Ë»²òãëQb)C1@[°7 Ú!ÞH†Ýÿýò™ Öow+ÿ½F>t74}͘/î‹ÇWÆÀàK¸jö‹JZ†R"0Õ§/øK¥þþ‰þ…;zJ©VÙ0U5†ÇÒúBÀ0³l¤ˆL¼þúX°ÿJpôO”f¯À—ý˜¬  `ýŽ}Æ ×Ý„掽p ˜þ—g… +€0¿ÿ[ìþ™OJP¯‹Aó¶æï"ˆ?)#8€›þ‚Ðs, ÌB1˜?¹×@>p€yôŠv4`{¦o%ó<P,×ÊkåÅE—«àÂQp!êøWËè$ DzˆŒ”—1¸ÌNÀ½Ý@õ‘£}@ŸÿcvÜ7ù·{ x$ú˲Ÿpëðsû•í'[ˆÁ!`a@¥:6šœ +,¦¸ï/¥Ü[¬uKä;d¡/Úþ0Z*h€C•€ubÆè HìS9E»  Nvgä¢u<Í"@–gþ&÷‘8 ®û‰ Àf@¥‡ûj§‘F­Ð_üƒ&M>9z#ŽqÇ$§ÍÉŽÓÜlj ¦–Ëíì !Ãg¸§Ü Ü ôžóëÕ9=0T½|ýý_ݦ›Ëhÿ_?V½ ຸE‡üQÿPu(êýì ‡S€òtåÇïW£zu!Œœ±pÚnð$ØùûÙ@ÛžÈðTáÖ¾AP¶ŸÅÀç$1_³É $ BoÚ÷xÁgt€0€©ÄTB_ÐKîþщþ€~ÇPªØl`L×Ó°Z޾Þ +^êŸðü‰^*¹KMwœëŸ/Þœ"¶q¤ÁãÂ8‹)Yvø°!xm­¶?`y1™lãËX8³qafCtra9‘f=åò¹™smØgfjDfÚPzPí·ˆ&,Ïæ‰Èðv€å#àçû¥ Ð?@þÉͲù?àMYõ+·ö:Ä}à)ÇdvšMk8|¼Ð·>€-  ׳`o¢k‹ƒöz`"M\[ +xOSÕïPÑ h˜¦F58öòe;˜ ¸«õ*C¼°ˆ8 áÌŠ9ЀîÔÔƒI)Ù¬˜`7`\tõ‰Ðc鿽¨Vœª³Ó討Z·êfÚID§™]jÒ¡ÑÌe6Wvžn¯<Ù< ß—R©ä+ Žè·Q è~ÝO,Rèöëשúæ_§ºŸ*ÿë¢p=a :„Æ@h(tù¶?šKÁ˜bÕzeeâ?ù£Q˜Ø Ûl€ôòy½R +ðníGxmü_±·­°ù¬ð´x + /ôŒû܉’!6-b ®Â†W1JîŸ&èË]2nO„F=¥Õp˜¤ÿá±aD(‡ å.=Õƒ·¯ôýý—^}/Öí÷-VI`° ¨T|ýž=02‹% †÷w8°ÅcÂíÿá‡b6€ª{ޤ7ˆ=B'YóïFpúï|·ôç„à$Sƒã698άÀ%&ç…µ¿•N€b±\\,»’÷©Ö'N0X«]X{X«m´ÛÜß/âfj@¡Ð"À9¨ÿò# R€÷šDòù£}@ÿ}Á;›Häu×ÿÆbRõxOðO× %Ôÿn_ìwâ?ÇΓÍ\¬iq ‹ôY‡ÝÛl †@KŒ"xI¼aÉ¡ ™ß$ð'Œ‡àª?‹ÈÒ z øFðxU€ +?7T d <ýgÿÙïeå]§'ãHŒÃýÇ>Üë7 û'áÄ}4ûé!ȽÜè%*0R©WF*#¦~D¢ê$ý{VVÒK›;D:òöÙÝZÀÉ]rS âºîVçªÇôaº,öa¼>½\ªF/ãtý6½xýòåÐíÛ¡‰ ¡!ÂjêV¸D@ù?®ëÑcU&ˆæ þ] áÙˆly=™ýÅ¿¼A® ‡ÉAÏÞM| ¸ ’§âiLŒû|„ò90­p/øî……ªRšèNОÛ% +bQð@@sØÐCF°ÿÒëAýÒ•àè%%ÀWòNU„ UÀ*GSáøøŸ»*€Cî0¨;»ÀÎð:À‡t5¿¼<âäeAy©0Ì‹ ›ˆÒÿ¦ýDr^Aºo=~ÜÌ Í› +àöÿ¹µZ­6³AWÅv»VcŸ?fýË®½9süÏô”93(ßâ3Äÿ}QÀupôýþï*ÿãc1yÛ…}…µ€ý1ÛöÞÿ‰ܺå»5à¾uø}€ð¼one63¹˜†À†Ç4¿)„ð‚æàà&®slD~«KܰDÈƳmh4è¡Öx j”À‚I@utâðOØ rÌ/OðaÆ|zC ¹—¯f",Q€þ´Ú©S0ñžÊdEµê•މµ¿NµÑ1{@~uÒršfºb.5w2¹ÉææŽõ](yb%,Àp â߯ëA=Ämþ(J| ¾ˆŒÂH—h1€ÐõÛDnß~ÿ6±…}(¦Œ€ÿ÷ßE£Õ€03e7ÒÕ¼BÛ÷F¶ö«ÿÝ…€ô³ÒM°ã‚åÀô¡PШÄ+}Dò…q7€]&Ó Š×ð¹ ê ÞRèv0Dux·T ïN‡KàLÙ±a=U +ƒ(F5hL¼Þ)˜è¿¼r¥góUx +@„U|cG¿i° ±)¿›x €Èf¿ß<Ï~x󿇀ð›Ç“Ëu,Ø«Î&m™žÓ€ø¾û;yÒöú iธ àHày‘$ÉÅýùû÷! ÇŸw¹Zÿ„þTðÏpD @ ø_kÏ rŸçCLÒºà/çXƉÌ"p$_ïÚ¾Ùÿú±ÕE[ ‚ŸÓ~½„úÀ´ÿ%èß’@ØÏðë–›®Ý¿ _‰í';›;Í\ÓÒâ†ø²œ'¬€H@ÌBÓ?g-ñ¼Oˆ¤@‘  Á¦Îÿ¡ÿWZS€àS£AÇkÜ@>pŒ†Õ@F~î +¤±<˜å„ÎÌÏvT‘øGÅ|–E~÷´§³4øy¦Ð²l œ¬ íOw;èý7è–§ûN³  ãH;Us2CÿøÍÌ€wÂÀý Àëmz•æ-¥ +àÖA¿Žž>ÒÀ}D\¾~™ðŸPŸ)[è~èúÐåë„þ·_ï¿}9t{(ÄÙ©ªAŸø?þÝm †A~`w¯൧#{Ò¿Ôý=\ôï¥K +°í!à$1}à €ækÆÍx¼ò ¯ +½>Ÿh(L ¥C½B 4œ"ðŸ&®4 ³hÒ÷æôV¢©à¥‰KA÷¥+oö_jzÇï(PÜßx|¤$[êzÐ p°ð:϶x  +LÿðÃO‹­>¼-ˆ•u.ìOîMgï B„NÎïÛ$lûÿ…[À%Fçņ_ј‚C’P~¹}þD4€I@»]„òŸ/ÌæË½ùg“³-×lÒ…¤à¼ÿ¡þ·Ðÿç@Àe~L‡ëè;ý¯ÿ:ÀVßš¢úöSÅïο¢±nÃÿŽ`?]Ü ÿî\~¾O·vv2™¥1S‹c±¹ô¡ñcÚOà>Ï‚`A0zru0gw¼@ö]¶fù4+€Çû«úÿ¼hå3/xäÖ íˆG9€JŒªóxÜ‹' +½½îæ‚hìîkxK†ÙQÄNõ”Q¥¯Ž¡PÁN€‘ Ã< \ Vû^Ÿx>èî¿¡ø´æ‘p)À?ç¾#ã^3Ä:à®@Žlßü”Xâ|ZÌò˳Úçç?ºzÓ °wçÒ~vþäìÞ ®î'Yüû¡¸ü €üb¡X.kÿfãoüß@3 &¼~…Âì,Eá?ŸÇ`Ñüç—[ùÖl+ÏÅÿȲœ䛣oó¿ÿîQùïQEð€}i¿BýG»e¿›oöË«¹©À©CߨÜF .fü㎠+Õêl¨oXÒ°¾gÔÄ p.ƒ.–X Ü=ÿÛpX¸n0øÏvè?âuÎ%§xlªx—0á¸efÙ}€ä`Ì Tàj¥!þ*ŽlÖQIÜe â_M›]@EÂØãþL&¼õ·£ö6&y³ã˜5ëŽI'z ³³´™Ï@OÒwd+³åÝû(J>wiÊ=ÐüA¬ˆúCÑPQôrXOD€ð +ؽL/^¿º|ûrÿíP(tÛ,0—ºvmúÚµTåúÿùcP‚9heˆÀÛÝU¼Þ]˜€%“÷àIÛÛŸyJz…%pû§Ï?Ф’üq¢/$ÀÞ)ï‚›=Ø ¤@(Q}O€˜€ +&R +‚ûÈ.›˜ :`€¾ÛÁþ ÷è{cý—J™¾aVJv @càˆ@ ‚´uö"ˆãGFZ­V2¹7Ó‡P€OEB`ryyÄ6Ò @õ›vCÀ^|Ü @¬07æ]'çQÁ³ðÿnò]î2ÜG*êÿYøû0p®ÝfÀÅÚEn  €5Á€ú$b†ˆ7xˆÚ°,³ú¿¼—t”øßYϪ¢V&§.å2ò ðô€}Gý·¶"ØNíÍx¶¨V5 =0å¿ãês~î÷§ý± J€@(t}HE/O° 0š U9‘Àÿó4>õüw þShKî. OaüÇN`¯ÌøŒ|ïî°“í±gÔ?ù5<w%>O'âùB¯[qÿtjÚãÙÀBº¢¯FxÚÖ¯û ìS»‘iB|ô £”ë3¸!p—§ôjbbâÒíÄÄèÄ(=¨4}%(MÖÿcDŽr2 ø®hp@0[ä¦@9À:?X8€«•dxåÂ÷Oÿ¯‰À¾MÀ'킜<î:yÒ…0`p‹Ör ŸßÞpŸ +,ü¹ ³7.²êÿÅBË•çMòÖŸ¤Øœœm wx . €ö2 £À»þgàg +€k–úíŽWö/ñå–Ôÿøû€?ø UcS÷OÜî?™ +Üp߸¸pݸqx¿(;›;;›™LSsXDL†TS•™€X¸.œë–=¸$ÆdL€c/ÈBŸÛì¤Ê_Èþ "€é€`69œššÃÄ€ie‰à9DòoPùïÈ-ÀEÅ+YºAZ•ÇÿĪ!¾Ã#€p²ûf‚Τ:nލ“fÞQ7ó¦Óêuªi"@¯ÃÌÙƒÿÛí²Å‡—Nx±Úm¸@U÷ëUŒ„¢¡j(ê¿] ]öƒ„B,„X¸}û²èÐSþcìº ¬ÇgŽüÝu6¤®¥XÌ&ÀáÄ«(Ä"[v4 'o±¾¿þÝùÿ-l}ƒíCÜdHöeÓSñ+…žŠRJp r7âÙ-f +á{$®†îèa$î€p"Ø· @8lT«‰~:¡7G_¼¤d*Aä7x›" °¢ÅJZ%q¤è㟷¾Ã€wðDÀr‹·Ïßø?“ÐÿÓã7o~øéÍûÀV9nŸ'„ÿôøMQÿïë€-@'yyëƒù  ï$à]tõçÙmÀ`±U(áýïzx ª±IHn èóî?l ^ž¥sžox`_ñÏ}€£oì¿XZź€ýû²}‰ý·dé/Üú·„þò2EBü)¾æÓÔ@àç~¿ÎcÃÿðÂa$Ožìd6c9­âˆ[Ž,²|Ql› ‰é¼Ø…€ë"Бã[ð»Ià°Ø ,`"ÐÑñÀÜþ7ˆ¨Žãâ¯ñ“/u¨˜¬?˜"@ +@õ'jÀ>ö  èTT[à9L ð4+þtÓ‰ü1ýoNªõIÕt¦©î§³ƒ€uÕ\ê,MšŽ=àrÀ¾#,d¶¼‚´üOÑ)pë:–FCÕ”ŽQÀÐ( +_`0õƒÀÈt`¢?ªú«ƒ€»×î2L‡ÿ‡cÕêœ(ÿ±HA€9€W/?ð}ËëñnÑ­íHÆÎÞ’é?LÀÄBƒO¨0÷ú°ªçÁX%^èíI(¾ÄÂt„O„ +@x—ŸAÎÁ r— æ&ÜAÝ0èõ»0Ðûÿ¤b*8J ´å¢ÐŒIà‹ùšãGààk?Úúîú^'@¨]3€LÔßäˆÀ:Û/ÏB?¾/HÚ€ó÷“ó¼ãgq¦°˜ç]ö®äýw“÷!å#0?»X(#p°ˆ €¿©]¤ë5‘PàuÌî»Àæg%àèß‘üìˆp´FpÓZ€]Gà_,ÿeñÿ—Ÿ„ÿ_Rÿ1êO€Í~¨ÿÝŒþ8¦¨äúCè ÜÐoÌùý?Ÿ£“ÿçØØxÁ_{ã싇ì ódkgg3—É5M ýöF…ëj;À²D±/S—šKë–hp0Ø„öÀmÀ>Çò•@“"+îvÖ1hÒm6³£©šú ºEomr¹oU*&(€Å-^ò«Â&ȳÿÒ÷ǘÛ ?Èòn° P­7:„ûfhÀˆYoÌ6F¬¢ô„©­lfÔæöÁýŽlmeà´5êŸ* ·¾Ðçô`Ê_ éÆ1]Ÿ«úƒQЬâ~T'èÞ‰ +\ž û~?ý5n\ ˜¾þSF ÁX€<"^öˆMX€:g¼,E@‘ð #0"ªÿ-ž üç4áàh^_eª2 ··7®”t·âYÀ»aL3‚x©À§¢º[Ì +PÅ.•†û cš¡\ºÝ?‘ðOŒ/•<¾`©Yò)±·*„ÿ¾J¥¢ýÖ=Ç/~”[~@ç(¬úûÀq $WÔÅÔ@R¶þ÷ÒåŽ`Û 06ÿv±€)ìfÚAo1ÔÃõgŠÁ‰ü¨ùÑøWmr r,`'[·œf¯ª:;“˜HÓuúQz÷&¯C¹,‹¶$% €pŸþ/gŽ\€ÿ‚üŸ‘òÿ¾âÿ’Ÿ.>fn„ýrõïf€®¿`SúPþéú†Þ÷3ÿ €?>ôó¡‡,ð1x¡vvp°x¢xXÀÓÌæ6ýžÔLâªE){»£Ï'îÈq€%m]¸XàQAvh6ø‹yØ ààá„h ÓÁí{žxÍѰÔuà<‘Ì6™ XˆúQ‘Ú¿ÃNmÿŽèúÏù¹ú +b ]hÒ9IÌl2@½áÔF½NÕi©ŽÏü㟮¬ìŠï’^rë Ø +Mz J?ƒŒýXÀ'œõ¨.¿?Høï÷ƒ¹¦þw#Bñ˜¾žæ4»]TþS¡Ëæ7¯‚A€ˆ-ðVì-/•ÿ!dðTDL Àî³ ü5¦¼T’Ç}ñ´›@Ï¥ùÀ– Âê?‡(, x©R8r-b´Œ¾4èkV­ún¿7úÞ€~#â}Ó­4K^/;›1à‹WbGÀ!Bsà<€™@ðÇ÷ ÿŸ¢À¥k`»œLŠÀžÀ ¥QÛÏÌ”gÖˆ,–©²o$[H +äÈÀ‚k‘8B±X[{ëÚçd ½‡7$“ñ9@X00Û"&°<+“G„ü/ ¿Î—£oå¯ÿ…Û¯}ÿ•Õ_Xþ|<ñσìûgã¿­ýæß ÓÜs}¹9ÿÏö!ÿûç¾í÷úsàŇ—_dP<[þŸ(ž:sæ•CÀàÌä2¼ÀtĵŠh¹›¼ç—þu+gå|BÀÒº42üC°öMòÇ9º&‹ª†U þ¦ +ìè@0ùU‹;þDïÅ#)øK±_¦þ¥í@`¤û +×Eâ?êŽê$ +P7; §ju#ô–ºŠ<`z~²Ó8ÄKZ§üÑ!Ý_ÅŽ`]¯Þ`̇0Ð=$ðéðO7Õÿ +•­²U, ÕŸÙwa#ÛóoRÿ€gØJ¶p½%ŸÙ’ Œ;§¾@ ìU¦° H(JiØà¿;+ÈCà`` @ ZU þ +¯ ‚XRÒ¥ =ÆhÿĨÞ÷&Öd¼oÍ’’‰ûšìhÆšD™—ðæ v Þ ñ""è8ÏöµFƒ“³˜ó¿¿·ü÷82ï·\…ry¦Ý~Ø~¸Q{¸Ñž âž9/Àµ˜ÇsÅÁÚËÿPÿ ù$æf¹Ì_Æø`+ùn‹Y€°þåÙ +(Fd +€­þ×ëG&€_y øú›Bðÿ,ü—n‰¬?ÿ„ün¦bØO„ýÀþš_@?Ÿüþ>ý~¿}ýNCþný¶váÂ`ÿ…Aàÿ‰S«ÄÞþÒÛü+ôtų¹™ÙijM‡Y!ÔF–á+çøŠá>YèË@®ÿH<À±n¿Ä36è³`5l€†€ÜÐ`”n@àÝÁ œ $!ßaw0•ˆq±å‡]¢íÏ6U¶¤À³ˆýÅ3“I«î¨;Ì„ÿºI÷MgǜԴíCýÓüÔo”îêÀB@â‚Îþ.üûõ9Üó³@ðoܺ@…­øg£«Mw Ævwa @ ©€ +ÛäÑ´Y@SFeö´\:#ø0(ZÌÛL8*‰xúq_Ï_öô)Í>n„§=X<­ˆÕ@ àùÛp5å O‡#0BPŒ°RJèÈ-€RµZ¹4ì¿Ó þIÉãN(ͦ’ÁÒRÞÑ6 ÃIžäĪ ±(0)ý|ùÍ€›].ÀúÖ2ÆðÑ2¸?/èx·õn«µ¸XX,¯Âá‹?¡C»‡9ÀbÐç°æ§†ò¿V+‹…‚ ¾Ì`H(\ná ú„ËxÈež €ºôÿu½Ž¾‰¿Œÿ¶Ì/¯||C _ⲟ€[%7‡ýucþ0ý‡kiø§ê?ÐèÓoøûæìÛÇÐCq¢#ôðEªþ þkg¡ ž8Cøæ 1€®ì` ³¹ ^iH<%>`‰\`Œý;8ÐBá¿nÅ8#XzØÄÃr&Дܡ!îŠ[tÌÝ ï Æ­‰)ðÜöý‹ @f'¾?Ñ£4c?¿ÄM˜MÌ`צÿ³uíËiåNuĬku nÕ¡­üòæßÃI¨ð…Bz  + ÷ÙÀ}Šù}Aý–+ðÿ.W¶âãîr.ìî¨ÿü»^9 Q‰ï]¬g³éÀ~׊@Ó;@ùãøƒx¼·ÐChÝgìb€r׳[B’ˆ’ +€R5¼wA•<¼0Xè$î…=`,DÝý/NLÜI'F'Œ-o}ÊŒ4ÙÈS‡t{ôÛ÷Ð1€?þÑ:ŽØ3.QÞ‹öý§þ ü!b[-Å¿ünrVÄþ½K ÕiQýE?éÄ#þ3í™2ÚüçË„ýÇç?p¹]÷\\«µ/Ôjm¡•àà"ôÙû#ËÝÔb™ýh +€ìçœ"áPGßÄϨÿ¾níï³ß-qí»% ÿvËŸ€á†ôKLÿ ýŽ8À\à†ŸÁ_Ÿ¥ÿ¸„€þC¢þg  ¿ +@`°8¸zæ•ÕW^9ýö—î|@ ×ä¡<,v4¸¸&XvÈÊÉ?ë20¶dû5Îd`c,&÷­†ÿÏšœ„[ûÄ Ì;:üt— +˜‹ÿJ@6öÉíÁ¨øÓòAÚÈŠöò ÖìtZÎF/88ÐÉŸÁÒ2Ÿ‰®Û9Ì?ܜƫë‰Ðí©D áv³`£ ¸n±Ù¿«l£¦–X'c”ˆ˜”Àn ýú8Çè’¡ +:³þÅØ øè݃O,ŸÏÛ$øO±€ÙetZb$Pšê¼»»‹êÎí£oà/•ÿö}¶üï†ËoÀ²ýí|¿nÜïOÝøÿtͪÿýs}ý‡ü²ðòSí €nÿ_<;xªVÏ}§jjÖ¶•ùlÍ¿ó;ÿŸ@¹K¿ØCt¾y'Ä\5÷«üâA¦)€?& º +ö– ”èã`@¼ÇÓ}‰×xB)õ-ÿ]ÖðVc!xàH…©þŸŽˆ¤I Ä0Ø —RUwð½àDÀÄ›†7ãÖ•f¬äMÅ|Mâͦæ{ì;Š<´:@nIë†äáöKŠ„&t¹ÿ©`¼Ö‡òû[I®þé\oü·×jýéòˆÀì€ÅÅâââ"R]ôqXXlÛµb­X.ž_\¤'ˆ”‰!Ð5ï&FÀæÀvO»§\/÷`PC#ؼ¼·¨4{ôíÛ÷_¿Ûô— Ÿ +þ· ü·ìòŸ+ÿŸ¸ÝFÀýzü{ø=€9ýÆÜÜÏüþ¢ø¢Â?444$›ÿTþ³0Sƒ0¸Z|~À`ñÔê™ÕSg^9ý6ˆÀÁ¦Ow¶67w2KZÅ‘uT* dú‹.€°õwû9ˆ—ÿKš­äxM0ÏZÄ­Ëd@x``5€Wˆf€Pü*ß:¤ì/‹{SjÿØôC%?|’ûþ醺''pØã 8ê u«îpò– ÓI$`”“>ÃrZŽÌa–þÓCTµÀÿQÙõŠ( &¼{âSJþ±˜°Ä  š xJ¥’Q +—JÊa >"h¤ÄÇ ãSŠOL{è+`0袿$JJò‹¥@¡ì®hì†Ã Õ…`?w08\ðn‰’·4àmVšøãóåxÀ8ÄàIn‰ãD; ¾<;ËBÀ¼ú?ÿ!Çÿ!? û-–[ÉÖýû­$=ši?¬!áç ±î·8³X(ßs}€!@ÕÿƒôÜx¾V^æc¿ÜŒ;MöÒc‹[üËÒié€\ùs:Ã\ŸP-Ñãý•Ž~«cSQÙ;äÔ—ü¬ÿ‹7ûÊ}§*5â ¿Î}*ú'¬ð;jcÉB³¡ùû%üʃ]ï»ÜÅB\Žô–š]`Fø¥@l –¤ ÙäuÅ%C)•nÑÉxûÏ=àóz+ñJü:ï)¤³Š’Ð#¬L{J†\‡È¤(âÙŽÜU®Ýõˆ‰ÀiÙ P +#&XD–RQcX€áÑ îÍøÜ%lpÎ@lhú*ÍX¬â;"¿$`c !`y™9Àþ©¿ùùþa±¼H¥}{±]^\£ûh #(®ÕÖ.‚pù¿ñ\í9±ëg­X.,²PX<_,Öj2èBm†¨‹¼¸,öÌ ±‰žv»^.€p"ରC€eMõè'‰?j}»÷ïöÝ¢ýq‡)€[ÒTý€ÿŸ? ¤Üݺß>æstæ?žú + öóéE9ù_;Kè?3ƒ€³íSÅÁÁÕÁâê‰'ˆ¬žX=õ61€3gîp `egçÉfn³‰|ÿ¸ƒJr˪˜€æŠ‰B^ã‹Ö`/×-5a äH^¸¤‰X KN˜ `ˆòŸá_#ø×¤çßêÝÐû1wÀž>¿%(ìB'°»ÿ˜ñð¦?Âÿ‰Ð¥Þ@§ C±ïÓÅìXpÿ£)ðŽª:-ÓÔšK­±yôCh +¯ŽC?Šÿ¢Ðdó,€rCqSØð†R©yËÀ–¼C@|>ÍçmNÅã}ñ¾Ù1×XŸRª€DÂ¥»žRJ‰ˆHC1@`n?à(@HÓ‘°¢p. Œ4‚ï O„|Á;£Á…H¤¹€@·Yñ=vMüO–dH“í#˳Ì’‚œ¼‰Bþ^qq ‰?t,ò©]ÜX«ôŸ«]\»XAÿÁN¬‹Å2šTíè~í¹7jSã, ™  ½ mÅ¢Ôÿ3õ™±òL¹^ 1˜ß›¨×e €s²q4 ÊÿؾÂT€/n_·ègÑŸÀŸQž`cþ$òËë9=0wC¢ÿCù‡ÒÿwþkHþöÿZ Ð?x¢Hè_¤êÿDqpõÝ!ü_=Eø¿z°)ÀÎÊÎÖNf3÷IÓ¬˜ ‹j{Ë!0º€\ Ì€@zÑX’«‚AØ%(24` 09 ˆ*«O$‚‚àúÇ,П|¦)J~¡í³eÐâAD¼ÁÌ +jРJ?Ën@f bºß¬£=@Ïvœ,™@Á@§´Å"%+›;Kžß÷ò¿{0ðŠàÅ»gèªTôSýŸ¡#&x@3Ö¤÷•JÄnîÒ3ù{ÿ9ÞÊcaûËñ¬RšÚ#ûâÛ‚x˜x"¶0=ÍûXP¦K©ª1|;8ñ¦[NôéÞ­R +@3ã« 40 2~ôkø ;29Gù™)¹œÃñH}ä¬;Gˆtyc$€\÷à£=³&Ä~öçÖ.âôÜÚ‰Õâ*ÏûãéZmµ¸èúfе"&ŸÛ¨ýü¨ µ™‡mœgÊ33ÅsçÏÁ;ØF¨@»^î)÷Œð6@q½ÜͱEçQ n9îçö¹…øïÿSSSvÎ?¯÷ ü×Çܾ»súܼÿsèù‡††übè¿Í±?TùSí_£+ÿO`€Š‚þÁU:N­¾ræÄê½·‹Pö—m.€\ÓÒ²K£’Ù²ÌI^ uT¼îOc€tiÊp€œM,IüBÐäª`ó8b¼Õ°œË-Qþwx8°ÁS‘H,\ƒ è 8  iýçð_Uöœæ÷áý3éÙDGˆ~ÚÌl¯dvö–ØîüÞÿGñ(éC§˜°›èüg¼ýíi@vÄ À`þê! œˆeñ¾øp|ÌÕÓW*ù˜Æ´çÌý’Й ÀÝiTx]X¼+À]©ÜéõáQ]§/š¯g¤·‰=@D8bMŸãqÅ÷ñÑ/â/ŽøÊ'?ø¿>¸z•Îÿ „€Üz£ñ¨n¯i%y ‹êÿâÚYÍç^¿œý»øÜÅÕçÖ~¸voñ×÷îÝ[]µûÈý).î¹PÁ†m¨ÕÚµsí"€Bþ™2K årÏ"[àD@þ³î?ÛPwý°þû|€~7þ„ÿ|žbøpÈ¿;ðöøÝøeì·«qÅ?{ÿaþ¡úÇÌ_í,rÏž|÷ÿt ì/®¾‚ôÿWpCdàÔ½3«„ÿ¼°ódk3³¹B0€Ð;+ôvâ » @ðï°w®/5- ÅöOòD }ø6 `€Æ€ª|ŒšŽÎðœn9{ˆJxDh„÷XÄ¡Ä ¹V.ü¦èÿ³eÀI§wýÑ`Ài>êðóN³óÈáTŽ%ÇæææJsg‡ççŽþ—ˆƒ·x•švãßÛu  8€8ä<À€Q* ¸õ)ãÙü•?¯P!6ƒ$àx| &À`ºA¥¾!ðl3ÞO{ðØãá ÏÞèDDºêBßí;ÁD"81¬+[^¡x5‘ÐôÒ•Ï?úáúâŠðt¡pþêUÆÿ«/ÿýW®¾ü•—_>ý•/ÿöþ+or3à‘˜ hqúÿ"ê{t÷ÑðŽ»þPþ(ꀵՌ 'èÎÚ ˜þÛíâ¹µsEVäAõPž/Ì °xŽNåsísÜŽ€|¡À­$ryàH¾^·ƒ¤ àè§€?`?Ÿq’Ç”¨ùopº@6¿¹û+ÿ9yæjŽÑÍt^¼Ìõ?„ÿ³ µ³g!°ÿ  ¸zfõÄú¹ ü>À"T€ƒÎžnmîd2›Z3nÅ­F¼y@`ª†u}"ÛÇ ‚rZor&ðúÿÚº%:œluEK‚>à_cuß~Ã|Ä»¸î—û2)cƒ° 4ÄÓ©¢uw;ì@0‚ÔºÉö4ê`ªà¹MF±t;VÞ"àg'üxWVJ¨tC¼™-–ÿ·$ôË3½ƒ À]rÏÊåökŒzÍ×OÇÇz{²RØ…`éØöˆ8 HÄ&=89íø¯(¼°o"¨'ú@" Mïá¾åhú|±˜¯òøhà©<.¸®ºÎ (Àé—¯ž&põ+§{¿tõôi:Ÿ>õô—èšNg¾|úüWNå+ç¿ò•¹/˜l®kXlæ`S@29ïr-¹¶'¸ßàìŸç6.Ö¸ðÖjµçVŸ£êÿDͶï¿woñ|ñѱ%€PJnwôp‡/Ö$àHÀ.ôÄo•| ÌAáˆÇp£à±ç„a€{¢ CèmwïNßU ½šè¿C`jøÅ;ºâ‰4AJ(ü±@£;úcpû‹“à×{ +„ü¸ù_~,€‘ÿô[篾uúêóo8ýüéógNøòé/åü—¿|åÜ—¯”Ïö¬ø¾02öñr1Xw¢ñ¾œäá@WaqmPü"ƒøü/Ö˜Hà8!Æþj3µ6ñ€"¡Eq±Ÿ`Ÿ _Ì +Ò3m.üÛç +e±%–@N`ûÿ2V°`_ .çßå¶ûíŸÚ«ÿQù£ø˜ºqCÜ¥?ý q{ƒ ½~zäD À½VüCsPÿCC—^æúŸ0ÿÂÙÁ7øÝ;ÁM€AW‹@~º€¼}ï•ÕÕSg œ¹wïÌà©Õ3§6ؤJù•O¨è¯ú~bUPP«ÑŽ·õü%|Þ$Ûÿp:ì…rO £i/ÚëX@}â(ôÅš uI•ý~zŸ¥Š™DÑŽA lŠU&Öþv²²ó?© +­û~‘þOðŽ£c>I*"™šenæÒZ3³ótûé¡é¼„㫯 +ôgø§ó_½û-¾ûoøæ¿ÿ:½þ*¿ñtü&Z×ýÇ #œ½[[™Œ=àõ4Ý%÷³úš|N QEN`*<Ù—îíI¸K »¶à–-öúy D¦!`9À# Ïzä: VàÿKƒA½ÙRJB:á1@(ÚÑà{äÆ +\/ƒœ'pš+ÿ«TúŸ'ü?ÿÖù·®¾EõÕy¢çOŸpþ|áyОў±±Ü(üóo=C\ ƒn’×üÝoÍ»Ëí5äÿÕ."Üoƒ ÿ¹ (k?¤ ÛWk«k'˜0Ô·‹çŠƒE¶Eí?Cç™v¡XXtǰ@¾àêÉç{ð·x!à2¯šíüœõ# €ÿ!øO¹å þ çßTÿ’ý°ÞúÿÔ Vøõpùñ¶q׿ÿ˜nˆ®xþ@ÔÿgûÏJø?{bpðÄYBÿƒt¯†ðŸAªýO­¾ ü¿G—·WW¹ôÇÃÁWN ž:Л‚©@Îlæ2+&–ð:*ªZ±x OÖŒ›qïÀn4ù×¹Ü_’h¿îÐäKëKb‡b‚-Ëêþ"§X0͆&ý ±J Á£hþ7ÄGàVjw9°Ó=ýŽïc,h89 c13è4ˆÐ'ËZ™ÌÎaþ;ÈÀ—Ñ_¥ƒaýÕWÁ¾!8pÿ›/¼ŠêŸðÿþà«_ýú×¾Š71þ¿ôÿBW/ýâ7dM¹+» °%î ‰`@yføÿùÀÇ>öhqG<O?cPÂE€=S€Â àñ0ÞK@x"b,à® S—‚Á;º;|“@¤©”šÀ&@"M$)_¨ð¨pþêÉ—éüÁËW_þû«§q:à ñÂ\Ÿ~ëü™ÓàΟ¿r¾påܹ2@ì í|üqî»R àó8'—[ùòâÛù.b`mÃþOP]xo¯ç–@ñÄÚ™"ÒΙ +бV<·V¦¿s¹èwÍÏ»°7©`r kË"HšeÿŸßçáö›rsùïÞ×ûçê?0¥ ¸ÑÇá~:pž¯ìí>‚è6øÏ!ínѸºp¡Ýÿ³gÏúÏ"øgðÄ©'þkü'X÷/žY=S|åmº~ûÞ½·!ü¿½ŠT@1 X$ +p oȬh3ÎÅwZ• ‡Ö°ØÖÏ]KÌdìÊßS€9KR–=‘ ÄË‹°ô¨!]ëŠþùGvh šb¡xG¥!’ƒåBiûç6¿Ü`½ƒDzÂÂ8€ð šÆ#‡ª5–Ù¬#¶ùäÉÁ…~.ñà3`ðoá_úæ_ ðÒ7^]ùC!¼ºô¿|㥿úSÿ™àηþ׿úÍþþ°Å‡P¸à@©9p8·bÞf¼ò8ñ8;ü 0ž˜2¨bŽ‘ˆ{¡«ùA"’p(@äW(ÓFÕHÐõ…àp0ax‰”ˆ5•2š/F'xˆ€/ò—Òã^*ÿ?¸úòÕ¿güù¼TN£ð‘·èÎÁˆ ÐëTÿ?_>×{®gt,½þEÿ}~á@M¸Î:Ö##­‘zkddqf£&ô|Ñß§ò¿X+ž»wþî¡Ú—/nÔfèÙÅâ½Â?`&p¸~Ñukÿ¼«›ùƒGÌ–Ñþåÿ¾&€í¬ÿ>ßÀ#¾(À” BÇ :QͯßÐû°ÝׯÿÌ/VüŠý>s¼ÝghðIÀçË¡ËClûßTüŸÅq‚Ð\€³5hPŠƒ|(gÞ>qï•{t‡YÀêó¸œ›Ü p4–`Dûßlˆn€@}°I^dCš"Dˆ·4D$œùG ,ümM ¿ƒØ½«ãÐ>¦¿DÆQÉ=Ù9xÀýêùó?E>€(êÅ饯þ)ßùôôW™|åÇÛ^zé¿ûêKð}ºÿõ¯~Y€Àÿ?øßü÷_ÿÚ׾؟ +Ø€Gtˆ<»¯Öçž ê<Ÿª$*éá½=•„¡(a*þX°Mùb% GÒ€=@(Ìvj*Ñ%àÖ‡éZñx¼†×ómÅÄ`Ó«U|¾#àYuûz\ÿéÐùeî° €oÞ:/¼€§Ï<äà4·®œ+_)Ÿëû7 cÿâ;¹ï®cÙ¹`Ø# w s’@¾Ž@Ÿ™¶”ÐôGöO™*þU"'xðDàõ§>@@0]½.W^Tý(þgéÑlПêÿ^Êÿ¤Ø(x€n +`ÞÄß_0Å€ï{,*~Ÿmí +Ö?©@Õÿ}7ü¼ÜÇ^ìgßá3×ýCö/%€!?²ÿ‡B/s@Öÿ„÷'N1üÓÕ+D^9CÏpîï=¶ü­¾ývñÿ©·Ï0 X=sØ_2Lsg©ùI&—Ù|òtgåéÊ“ƒcØ~•uû?§ã%)¼Ê$`Ï àO¿‰»úõW¿úÿ|•åï¼ ÀWWþô¥o}‹Þó§_ÿ½ŠƒžþÖÒ7¿þͯøÚJv˜@À8àa!¶à˜ª ÐÓ;•˜RšJdÚ  ÁODÿ·y#dø+"†û½`pX/éÃ~A°EÁçUPùû4 >Âí/îgO+\ýÀuõƒ«ÀðòËÿãËÿ¯þµÍþ ú €—ÿt\)œ+HÿÛd2üâIîIn}Á¬Ð¥óèш³$&@.×±Âg¤]–©þPö©Ö?߆ +0ÃÁâê¹{‹ç©ðG> v ¸ŽC÷OÎóbÀy—ÝÈç \óç9üg›!,ïk8ëª3]WÿÀøÃ?þã?þá¼–üsûŸ-ÝÒwþöÞ8¦Í;M½µÁÚZˆh,d7 Ø [ + Q! ‚(ˆ4rÊ^ò±`ƒÏ† DCçrQyä4Au” j”X«ë!!T–<98R÷†eG[4ùTK}°„¦7£3œ@ªs˜Ì¤+Ý÷y¿Ïiww:Óèæ³ýÙ“êð<ïó>ïóü3þwæ8ÁU^î.ìs¶ÿ?Óþ¹bÕO…Êý+N5‚°½¼ý5Œÿ˜~d2˜ìF“Én6 þÍÄ€üãQFüqùCæ¡!b" Zf6•™¢YÓox·1 (Ep+½‘ž^7Vð9ü½±$‹ùåÌ,È”ÀÕ@àïUªv@µà ð«ëd>€K, DiÏcÎðk¹ëÏf|2ϰ6ÀDAî à•Âú¬ÿqŒ¢öçA—µ:…ž-<ÞÚ^ÚZöúv8`çû ߺŸ#¿…`~š¡¼N¶s@sèÆ_x‘€¡ðg¯ò'ë,?¨{Û2=ÝØH×Â7_Í©k¬€Ž_[ßèúv¦è¬{½ûøóú†€•ä%‹}@ž#è‚Ü*µž-kߨ騗`WÈLþ¤TÞ;ýÓŸvŸ9ÕYUÕÝÙY•w àD¯M‹ %à/zß"Ö.»GDÚ„ðB€€M,°íã¬9Àð³ú_ñxgggÍ÷Ûõ¿[^öaBP +)Dt!*#²û£»ÜÊǪ´û?…*0;:ûiÒƒ‰œåÜe5 .ðÑG—Ï¡P3‚€èœãŽÀ‡{WÖ„÷&<[`21âöÖÿ›é¨ýõcC韀~)ÿç]êì£ú?€Ÿ1€ÜDã?wøÔpÅ©ÜSðùу9¤ý°åOÅ~ÿMÀÿ9P€×Ú1ý‡Þ?ª:ìvâv;ïý1q±?dìÓuü8îÇé©yt|:G»‚g'î•:‡@÷ŠØó?òʵHÿ¼p(À‡©ë_9‡žh€Xÿ#^ ¼ËˆhôètqÖéž¡¶y³"­?Ùø×¸´[5çýQ’¾)ÝþDÐߌkÞ%Dè@èánîžúŸ }ýá¹Ssúç*xÙ/®pý󣊊¹&:¥5•7•·søüY&yükì»}ˆu€!1öO1§ ™…‡æè¨yÜ ,|γß¿(]„*né,ày?­h3pþŸ ¢ €¢?"‚´Bˆ(˜öS”fýèDèA(¦ú¿ö:»¿ö±vÍåZó.@¡œØ«Î¶Ü¿öðæÃ‡ÃÎkSD€áÙëY¨«dFpŸÀ^F?ÀRWýý:Kã4½:‡.Œÿô¼ù& ÿ‚T~[Ý!ì§ð',jX, l}½úÄÒ]ê,/_¬³Ì@#¸ÈÄ€>WY ý?›¿‘Á_ÿ¬d3¨®þ6„àæ¾þì¾±àZ´.þ§‚zG‹Óak.¥2þ œ€cе>+"€µ~Áž—^}ïIw÷_uWýí­Î÷ûnåýMÕ­'DúJ­Þ’Ò5ªþ¡4`ÐõBø€‡¾ë•.áàÒsFWq—¦‹‡9Ýÿ.œ]<XtáÙ+_¯ +<þíºO¸B¼M0æè ]M͹š?!Xg öë9äçòµ»ÂãG—>„×8÷ +žˆ¢oøO¢þgû>Ë@éÀüÍÓú““ïÜ1­­š¤Ö$ûAxwø0ø· @ÊÿÍìûë €kÿÎKy²ö¿‰;xü ÷‡¹áàŸ«"ÌFÍ´}:!øð +ÀÏ7À?Ìfˤ iÕhì­“dè_ +Ü€¿2§ Œ#`A@Ü ¯$ø·{ŒžƒÌ¶½kÛëkÛ¬Š¢ïq»Ñ ˆ;ÄÎ>ñ1Ù;ÿõè¨3€¼("GÅbËþ¿Ü$k…OPÿ£ûÅÄãXD]%,=üaè!¿pÈ©œù™öeu0ßÇý‘5oÏöÒÚ2l«\}·îóÿ[o=^ZzõÕWßúÉÃùæçoê?¤£2‡¡ÿ û4³§§g¸Âþðç|Ÿˆ1KNŽešøB%°Ÿîí+÷à¿ ô¤:ç×ô^úçS€ýýá}óÖó}¶^§Ûé~ÃÖL Oø sLUó[[Òì'€Hª—û‚…P*€±ŸjîÄQ•×Y +I@c™¨ÿéÆk\/€o“Dô## ÿÒu(´ë8OW÷ý¡ý‹0nƒ]¸váÚ½>¸«™#1`gLJ…Âtè8A¦bj>ÁbÁOî~rù“»wkîÞEÊÏå»TîsŸÿ2t€sÜïÿ01ø!ö_þdOòo¢îß› }V!ëÀÀÀü|EZòC²‘(@±€ý—±mTý³úŸžÞ·¹Ûøìs÷_Üþ¿´í+/s¹Pª¨ö—¥ÿ©9ûrÉNqÙî»Pø´·—a€€\c4™5vø FìCCãCãæ_ÑI34~üøøñqó+tW6ZVVT–e0ed˜[ ÿ´°”¹æóú¼^ÅáÖ*‘€ÖÝ@=~"½Ö€?Ö+,ý0ʶ?ª}$c›‚–\‹>±ˆ¸€–§¤öã4:/ÄdL +Èÿ‰bŸ‘ÿ¼ðhåz ˆš"¤U‚äøçkãZâ™À’wiËåóíì°÷oŸ×lr`Ï[Bø»µßÿå[+ó8†ïN©äš ^*upTŠÎj|îXfÞ¬´ÌLÏ;xsšáŸN9ôŠlF{yTªçÊl¾Ë¦Ä#Ú + 3|3à¶¹.[CÀæl:ÜÎgp¬o H^zújæX{/Z°%Ø@â³™õPÞëîþiwÕ_5w¾ßÙÜÌc€[™écÖõE[æbÃ"½ñ¸{ÛßÚ±îsèÿ©äÿvxDÿÿ8'Èq@3n]YÇ‹‹»Š³Š‹GF²FŠRóõNçæ¾}ãÙ)1Rºˆ–÷b~_è¿‹|úåz¿†ŸÐåÃOÄäbó¯ø:Uÿ׉þ¿Î­Ó=Ó$ kiÉ@éÀÍÁú“Û ƒÑhO²kö›¤{Ñü·õ¥onnö õ?/Í8ç]âkn^^b¾_þ“ˆýshýç7å7T0˜+?%J~™ý@9Šÿ¦ö‚rb<ýGõ¿Ùdo5µjˆØ¹ ¡ÚÿøÐ(l€öñãWÌÇSR¨ôŽãb5(C  ÕØê±Ÿôœ4`'À6öçø––°vÇñ +ÐÛééÕ9â¿¿—C}ý.ŒW1ˆ‰5@ÜöÑ/D–…!À‡ô€exc p¢>€/b?¡Ø,"DÅ/†´ª +‰ð™çÎû›Uá€ɼ`-"®û•ë +ŒëÖ¶—|>ïÎÎÀÿ*þ¿õ¯%Y+ül~þƒùÕ‡ás·«³s²¡âƒ¨-KÝ4=Éæþ¾4úMçTNÏÐK,–œFõãÕ²wñ?§zï£ê–,Ù3H j;¼û¿¹àâí|G^ÓÝâ³~"o¤Ÿfµ_ÔøKbúoKÅÿÌL5(¡\eàýnäU½ßÝüFgg7}mÌZß`Ë$ì·•ãEЋÀ·©,o¶Œ¼Ò5" ÅÿM5ÍÈRˆdpõOŸÏb `D*ÎÀ~ÿ¿ìã~À2¤€7 Ù‡jt‰Ãòø„.„ýb¾YOÉýªã Ÿ¨ùÕ?tz6ƒú†'ÄN§ßü8-  €(ÀI(ûÜ(±úÛ ÿÛvMÿTñ7_ÊÃè?ŠÿܼüËö…ìþÏ +À®nÿcÍo>þ!ó·‰q5?®å¢øç娱{ÌhØ£FÑ0›ÍãC¿2‹(@óÐq,€`|È<åñ† “¦µÕt²Õxò‹[ðm/jݽXÆâŠ[qGèÚï.Ž»ÿàTýÿô‘0žEé†A9(ök…<Àç]èÌ›1O Èäº_ `RS÷ +ÉœÁHŒ3bÒ ‚Ð ô'Ž¢¬i]kb`ñ‘¾÷¡ÿsÀò¯‚h… +'æWç76†Ãçª ÀE+@’XùêzŸ©@%7ðjøÙÙjÇ?ç)PM;²AÚÚ +Û&ÿsŒæ»JÎ}Àn·38–."¥UcÝ2€ À–J„p+SJ™¢A ‚žœ¾õWªÐYÕ™Ç.@n¸„`ñn{ +À²Ã9"<€ãÈêÒtgÌs€=]æbOfÌ2Q@E×R¬=‡âË‘åˆ6¤Eh@D§ú%އ%?…÷ŸÈFͽ_œv¿’P³Î!EG§g£`gxCiéÀÀ‰_:F€êàö‚dƒAÓº¿€šôŸÎÑôÏú?Á\rÅUX€ÿslhš#~§ææ„ðÔ©r,û9%±_=^#´/hýÖÿ‰þ´LFž ê¿5ƒ˜Énˆ£v jÿããϸ24>~œ G£ìÌ¢ú´Ì•aÊÐþ ÿOh#Àš×çs-ø+€¾Ãߣôô†1Àã€J@ÐãùBŒ54~èÑ AA숩ɨÿ¡¸¡19à‡#@. ` 6r^îRK}¾8/XBŒh/ ‚ '€˜àëñx< ¸ÖÖ|k;|ìãA}m ÿbyOÝ^åßo““7V7õwoc€¯qºj=¡ÿ s€º:Œ6rÅoá»Æìj~Ñþ—@%œ€ÙÂðk¾&¼ÕðVWædÓÃÁɶÂÉÏÚÚ>ûì?€­ù€+t¸îà6Uý0¾W_ZEÿ°µKêཱîÜn1Ð×\õ>+X÷Ùþ¡þÓs[[Û‡Wâù:ð„ ø*ïÑ 2[a4¡ïßeF0„˜@FĵA€úçoü·þ§ð|Kœöˆul€=@Çà^£{j¬ÿ)Ÿ¿pû= þ!Îà«y6 ŒÀë“Òù7_úøã´ +ℇS«Ñ¸óìéT÷Û6q¨Åÿ&Zÿü/1À%Ñÿ&c¿€º©óý8àî纎Nù á¿éµöòŸ—cëÿý  €)@¡À`´›LF³F£iµ·šŒ¢ `·§°ó‡ÿS0… M€âqÓèè¨ @t0æ˜0Xö.÷öº ªFw„9@/ºï1LDÄR Þ¼ þ2`y>‡.‚OpqH X+$ÔÁà p¡üׯÆóD WúrO°_úDñϼ ‚{™2ˆ1€Ã?¡¿r]«‹Ä|Ëëÿ÷ï7ãVaáý·Úî«ð/Àø­ð•‡ááðT6at#ÏñóL¿(ü1ê?Ó(luuŒû0þA +¨Ä:þ÷úªU-@ ÿ£úöÔÔÔgŸµùÉg‡’|3Ðàr•PYØ´9Á^}°7hûŸTõ×—‚,V¥É ¬ÿ[%¿ÚÈÄó½@d¼àýw¦W½«¹*Ïq‹¾ ÐgõZë½Ø@Àºï`'siý»¦Œÿ3€ `Wq‘€wÍìþËàà Ž’]0€ž8ãtn˜Ø¯8| rP9œ@Å»nW B „wUDé¿õ¹ê×éâýu þà(ò,R×3×ëë­õÖ'ðÞ<ñÒÍ?fÔlGnÁ~ý0÷›.³ÿú6áÌsÈêC”ÿAÖý9ù‡®ú«}æXýOCÄÏ\E¢ÝÿZ¹lù7ösò?¢ÛÓÒŽ=HëWë± €ð»†~MÛ1`²ÛÍ)¤²?:tüWÈ$ðçQ@óø(\€Ì0yì­­'Eà`·¶½ >Bm-‡EÜîÅM¼-þtØ|ÿþ÷ów Z±)˜ß¥æB`ØÇ¡K5ª€Y@D®ž€H,ÑãWUõˆ$nX$,<1Å]‰û¯Ç•¸îz\GOˆÆøDÀ~)…ç +þ%ø×É ~¿>O8“.~8ìÖ…ïRÁÞH ÏN@Ôý0ÿüOשCà»M†ýF©@¨Ìf#@¶J*¹üÏ©~SpHS7jj¯ùÉGGˆ|Ç €· ØÖ` ¸޼^goð>Ûáýé'„åÖ¿IO(™’ˆ>o-e&f¤E“»‰œºu«ªª;½³³¯J´2­¶u¯ÍË-(‹ûI¶v¶wÖ¿C`}9¢ééB]Ou~×ñ SWW—¹¸ëÝã¼ 8«8ÃÃ)@f^>Àൠz§Óé8HrÈãǘÄ.åå…eUE€ä¡8ô€¸#?u¿þ!ù#tPAäPH° º{&?ÿÌuë:1€’ÒwæOÌŸ8uyˆÅ¡:xŸ€\õkà €<ºäoæó‚þÃ(þ«†«†!ÿW‰}?ÜÀ^_÷¡sEÄ?A}>Ÿ_c"ÐŽÛkû_FðŸ–öù±ÏÓŽI`00üÈ`0´f´ök4&L"p, :nç,Àñ¡”ññ_ó]ÍCÅQbYefÄê «Ñh<Øm—ÏgÓj‡âpè ¸{u<èwkÝ~Å¥8›‡]‘e-L¯œ¤ÕJ%@ÒH°,ËÍ@ÿÑ:`3¬ËRàE²à<…ú»è>ñ a-€Å?gaC ¢# + ‹ÇBô7XÛÁàíýYLÕ[a[Á]¡\õ'½õVÝJÎÉÉaâùúš„ÒÙ(ó³عÞoœáP@4f§Y €/°NelÈf-x’ »Õ?ˆ€tði0§úöÔÝ]ð¡þŸ~rä'mm‡|ÇòHÀí¾ñFßXº TÓTIÀ[² ¦˜l©9(“÷± óÇ'lkî´UÕom-6[¸¾hµ1þï7ØæÈÆíï ð.ç9G^)À> ‚xÔýÅï¢Þ÷ÈÀ.ðd˜á +Àn8~w@ÿ^·ïì¬3@µCîå‹jû—Éû÷ U¿øN,‚,Ú0æpô} ÐÍ +Àûb L2I€™, l%À–ª”vß:ÕÝüãÎæª÷oußz#@æbº5ÓÚ`]w-²ÐÀ³€ûY1ïÐenß%`d¤AÀôï*6w‰9@ìâ&6g€Ÿæu€ŠŠôùz§ã ÿÝ«Â@"3 "«y…±>$Zü¢ÃŸ¸SP_*åOyz&?ÿúuºZ­HÏ(H' +€bºñ>0lÿ6®ÿû¸þßÌÛdpI”ÿTÿçüCv‹Èÿ|¤ýªáþÿçð \HHù—ûþ°ôGÈÿ+µÇK;v à4¨ÿÉL¹[ ðÏRÀÐÝ<„!$€p°Ù ÀhY–ÙŒAi4žüë“'ÿÚØz†\.«_é!@ðïî äp0‚ø~Aö²ŸE}‘ ŒŽ€\1µ °Ì£œLŸ÷Iº°ÀJ€ÐXØÕýÏ %`OñÿÔÞAõõJ,¤Äýñ—áˆÇѵ%¿ommGÔÿÏíÎMµÕQõ_XØVWÈÛ} +ë +å¢\ÞÂè +ÿŸ»wkj>¹M@­ŠúHúÙ³À‚ 5˜?Î*àþ#Ïr'€.Õo¾Yóæ¯e:@e1€ÝæêÕÕæ~rÿ3N%ú®€††E:ó—#Øìp;ŽôÅîÒúúÓ¥PòšÇ8çwnm©-€-±Þ)[™‰CšKOwwžêNÿ?aLïËKã½­­Å¾z(Û6—•ß·Ø`ÛW°½“¹ƒ¥M¸~G¡ Ð…ÀYìßåMdÿb0C.füïâ!€"½^‹ä —VÂyD5 @äç¿J „â¿[õ'~ jé—ç3ø¶2 ÿ½õÖ'%È(=]B'AnVT´·''ž»þÏáTþ£ögý¿ðŸw)HÕÿpp˜j§ðjØ èwžBÎ?À)éÿ+/‡Pûgü3â·û˹É_PVVFõÿ±Gi€ÿGtyÀ1„ý ÿ öVÜüwØ… Àü‹Ž¡¡ÿ•ññ¡_Ù£Cãöq"QbÑb¤d C¸øO_NøßJw8`kÍëóú\1G/¦ÿœñˆÛ­WܽHPI€¿—-ø.¤ˆMr8P«õ±Ëd ¦N6,,°`¡´ÀçzïÝ1IàKxd ?á|ú8¿[ÿsF@ *ÿ·)‘ëqƽ^ß¶o¿üÿmm“mmm„²m ȯKôÐRøÖÀÍTÛÝ»›ºMX=‹ã¿6Zd°E%â©ppL  +üêˆ`Bà‘€lù çMi„&@Œ š@8¸ººúÁÌ}†X‚û‡‡|S °äc 0Ïáv¿áH/S @igsw¦\ö+ Cÿ–Ì^ZâÉ“PNwwÿ´ª;ýÇU·ªÞï{  ¤ÙJÒ⺫ÁÊ€oq?[[;Û,`oãwƒø–9ˆà¿QÀDŽw™ßå`°ôw‰UÀÇÑ(ιZT¤?£w:¶Ó_V&-KPßøqpÙïO DýU¸¬•_¡}`=.«µÐôRJ €(ÀÍ›Mý?O67uîvÎàÿÈÎÎΖB¿D}±°N>oä•Ó  H œÁǹ sÐ@Žp¥°¼‰~€ô¾y#Ú$0•(¬ o+À7#¼™Çg[ÜtšÍÁÞ`sß"@)€ææÓBÛ~@èþ™BÀ9€€îîÎ÷8væ¯ú:;ÇJ»óÆòžlm-J1(µí"ü·úxp€íX €x­‡ÿ·¼ËAŒÃÀNÿŒwaöç=€þ‹Å€øˆèt()º0‚u€ùÎëøwÚw| ˜ÀõˆJ´»×ú‹³€ågðó§·ÿz}ýˆàã‰Õú~€'^"4m/ üzž‹àûGöŸÜý' €›—òò6ƒl@ñï¤#??ŸNDèQy~>¡?{ÿ¨òçtûÓšÊ xÏ_y“0ø·³µ±ŒËüµ÷?zðè]èŽU€Úþ~þ<€;†“'‰´J + §ì„÷)v3±€_ÙÇǯüâWCè°À<:j.ËŠš5f"Àý“l$u2©5)é@ïÜöù\^4€^·_눻õ===„ý +Ý+nw$PJLA‚/&ò9H`?á² ä €ÝT/7|ðºÙ ¨}•‡¸ «{‘ÿ#NOwÿ÷:Ï‹` áŒ)瑬p@¼fiMëÛñíì0þ?çb mr¦mð-ýÛê ´Õ=} ¾Ÿ) ⤷]FÈÅêÁÁl)ë[d T꤀IU ‡|0³g0€3 ˆ¥@D.ÀÅOtÁÍ«óàX¹ÿÖOM6à7mˆ1€€Íæè 8oô53ö1¸Õ\*F%ØmˆæÿÒ’,þ3…Eð=¡tþt¬*ïVg÷ØX:– nmYÓë×­ë(ÿ­ ^_ñ€ý#™Ü=+]¿À +Àì< €·t{º²$Û¸0ÎV‚ÿô›‡óoýxéñïþ£ËÿŒ“{} Ë_ú8½Êà¯]öùžX'`­•ÿâOà˜¿yóãŠþö“ÆVMkÇs£éÜú—{¹ûI´ÿó6¸ö–`8ÈØæLþ©ü9Àÿ)¢Msþ9Û—÷û¥5‰ùþ¦&ÑÞ—G™ÉTf2´?8ÆÐÿàì£G¸ ÖÏàÛÏ @oªåíIÿ“À††4„øWè4t|(å8ªAÐ(šMf3; û0þ5g*&ázp[ÛÛlpù©æw(½‚7O[ÄP€à%Á.±á7² æúý«õrÜÏ‚Lä560Ö°°ˆîÀOÆE. ‡ýÅ}´ø]»Îÿó*øŸß;(÷ +Ÿç%€/c + ~=¼´Ðú|kÛ[¿þJàÔä$ºÿ÷wk~åO –ÉÏ +K`ø¬æZMÍ9"`"ñG®NôØÀIR ˜H š‘±Â8݈`ÀF¼@˜ÿª«ñÀ`NõÛ7ÂºÐÆÆêüêWé2úÙ‘ïh €ãù±Ÿ¯¹QéÍcÖ÷¤0–~«T]÷Ç&@µòg)€˜ú¾°»»»ó‡cU?½Õy«»äVó-Ûé­%ë˜5³Þº˜¹HÕ¿À~&î Wÿt|AßwéP[>‚€x ˜çÿ²ýhþúà Åû±  ˜®|ã(à¢3×ôgœŽÇ‡ø/ÿXr]iª¨–…ì¿üêò²xþ*?}ü ~õó?†uxKPÿü#¨d£Mí&£&I£±'=ŸˆÿØØÿÏÕÿ%@?ðC€ÿΠTÎäçC˜ËÏÏŸ Û©¹9 ú5a@,üé~MMýåíò`‡?hùe†‚´³ýg ÿ=xðèXZ²4Œ0Ø€MÇP€ªÿ‡R®¤¤üB;Ø@ j6gÐϬUF² é`lm{}¾W àÜ÷èÝ=qt¸À< ÇïÖF¨Ø¡ø¥©Àõ]Â࿬Ōúÿ,ý/ø1°°sÀ—¼;–€W…òÅ}auMÎÿ^…ˆMæ Ðèe<®‹‡âñøbص¦†ôýÈ÷8žI`› À“’b%OJ­OX8Ý=ÿÒKýÉFcG‡ýùì@ø(ÿmÂÀ Â~1þø2úó ]€üü9Ü•ççŸ)/ŸCÜÿ\ÓÜ + _¦ý¶7¥õ75%·¨    ðo2 ¬|~ÐO<àÁ#æÒ’™ˆñ½“FzÔJðm—== +ÀPGÊ•Ž_Á xÅŒ5DF££„þÅeeæV³ÉÓêie;[F†ÿƒžàÃn?ÅÁš¿[ßVZ`ìq·(zÐ7/ +D(€Ë¯Fú°%`YbjFà2OÒ5Æ O$@ÚÁ´ô_'pâÿy­ŸgýŸ‚}YüGXþÇö – ürÈ @:"ôßY[ßyþ¿î·µM +ø·´Y,m»À®À©~ƒƒ“mØI3xÍ~eªz0{rfšAÿ+|Až$HÈì € +ÝhÙÓ¨lœ=ˆÕP0xñ7Ÿ„áàCØÀ––®ÒñÉwOðz!̰õÙAGúýúÂ>`€±ôÒ½c€KRXJôý¹ý)¬ˆ‚ €~íòÿUgzgú­Ò±ÿ™76–¹dµY­™tõ5x­¸ð6ìOï}kGqX©þðÑwuØ Oó>€ ¾Cú/¼Þ5¿‹Ñ€={ºŠ/Œ”]+*Ò9Ý' ð[•/ýö· D–}t]^Xxø¿”¹Nø¿žYoåþIi)1~200ÿ\€£Mðçàc·•pñ/†ÿdÿ¿ocs“jøÿ™0ôëõz*ÿ'ôùg&&&ÐÀ¦Ÿr$ýψÕ>åeååM¢ðGÂO2çûŠ3]ÿ&ªì µ+„þèrölmíÙG>?ÛŸ,r¨ü§Œv{‡F*<Б2”ò«q$rÀÿG£eæ ìh•&˜™@Iø=‡D€†W@që± ¨Wï‰÷艷¸{ô½nˆ~…cû´.AXÊ絿ô`Y%$Ç¿\èÉ;ƒb_²5@]ð‡Ib#àùˆØ Àw²ûž÷ÆxÁ¡ÄëJ\¹‡{â~b¾µ}H:R×6ù–ˆýiBÏ|M`ºþƒÄŽPù¹úÑÃðÝW¦nËÍÓ{ü{9€‰ÿÓ{Ú3ÓÜhœž‰A¬ p0PN5‡‹8€ÊêܸQÖ9ƒ—æY¸º´zõêüÕ«5ß9€óm^›-ÝpÒæ—žf Û*,œô#Êý-Tüõ™’,enÉD áÀ¡Ó?í.¥ò¿sìÖb©íý±R"ÍÖÌz¯5“À–®D|‹¿û–"€ï ŸU\|Vë!^Oü;n0,⿦?O—Gdðn€Œb±Å©EE˜Üÿm€Ï˜°EÀÇÃÏàÏ_Gõ€ê~é¤K=ž œ¸ùREE»Ádìhí0¶v<ë¿k Úÿ¸Â¸Ù'%nHó?œÿ,äçë'œùêQ4ñZ9Z"ê·`–9@A™\î‡íFÄ l ËIƒÉä1šM£É”ü –(HÀ±³+ úY0™Ø À¾Û€4öŽŽì@ÓÿJGJÊ•@иy|t&ÀQ³=Ãî!pÒD Ó€00øãrÀï·}ÞŸ+†`ö¿]â¶}°'‚e¼~,çc;‡ú‰N€X“b€Kèýìÿûrn„ú‹œH÷1é Tä`­À}?Kø·x)0Ökcx…cÃtñÅ|¾íßïl=gPx²õÿBáýSUü½p/?€ìêÁœ¶»„/Ááa}ÍÝ‹ƒ3\ÒcÄÏR·; `Ù‹ü _Àô§“¤ÎÈN€¥QÎdWþ:'[†Äjàê·oüàÆ'að/=¶­ÎCÇ/*rdØlô€£ÏÖÍ +@fw÷˜lH°%æýAøü[â.“Cê0öÃ[¥ÝôÅÝ¥¥‹ zA€ÿ¢ô&Þ 迆À^¿÷ +(@Ã!nìø\ý5BþWŠGFdƒÿÅžb^ (•€,Ï‹…AÅŠ®](Òµ¾)€?,=þHÀ3!€^„þ?ÀßÊ‹JæO¼T‘ u0(À3Öÿ…ÿ/}ÓÖ×§Î"`#//¸)à?8ìê?“ç°(ÿ' þ¿Vø/›(++#PP^VÐÔ¯öÿ›ÚÑÿo7° ¾=Ãh' +`0Ô>zT +PKø_ûèOŠ!@Èô + F#̦¤° +pqã)¼x(jŠB… Àl6™[=°´r @kˆ€ñÿ#ôÿkºäa\ Ë.á½ÞïֻÀþ‡=‘„y@̪ pñ@À2·æ Ñý_ªF~ÕÀ@(‹‹Rà§Ävõ~?þ´HŒ‡`Á@r1¦ÏËIA¾ó+DAtq2€0 ,h]¾5n Üà€Õ‹\¢_ƒÕÊ«°ã³EÜ##¯@Øïâ9?$ÿqP1‹yð]3’¹ü7spVéÎàÎÒŽÃ÷,þ¢™œ€…À%ˆ,)}bƳùô›HhÂ@¼ÁÔú¬]}\þó LJüßà€ KNºJü§òß `—‰|ôþ阘à¯|[yfQñ·3à€íÿ9 ü¦“p`ÆÏ`´ÏÖ® +𨶶öØÙGgÑ@€‰y€«,ã;ì@ €¹Àh4:Îs€Ñè§eæh™ù¸Ùc7ÓW³êߊhIœ1 ã ¿ÉxÐ¥íííÕGZKý7$€·î¬ äL ‚l…çµËÜÕŒã‚å꿘ðþïÙ@%±ðyäÿÜ/,LtÀf,BÁß;À…=<û³¶È{_8\¾<•ÍX^W÷”ïï鎿eoÍ/ç3‚<0-›r* ‘· TþZ,¬¾øƒ‹ovn¬Îϯ~°: ‹l^bðÞAgßX1 +·èEBÏØ˜Mk#ÔfÈBu?äLµ €<„À]­„™èt—Þê#ö@ ½”Àúþ/]·×Y1þ¯ïÇ?Îp õ ŸOÖþà¸;¬"ÀŽoÙáÔ  Žw1â£Ü÷ty2º²ÞåA@ú  +{/ÁüNzžÓ±Žê—'¥%¥§‘D§¬:=°ÊY€iÈÇ?)Ìðϰxµ‰úŸó80]Úò6 ÿ7¹ÿD0€úa=€{*(çË\ù +ÉÄ1kà íµÈúëçâßœœ ‰ß€ ãäþGhÇpöSÝO°MðN˜Ð.ûe@`ÌE5ÿ—Õå?; ýc±?Lûò¬ó!•}ž›Bö÷k‰q8@:”¢У»®`Ñ»¾óû-ªž ˜l›„ûŸñîKKÿ:ó´³_ý±àofpðÜfÉÆåà¹Û" ¨²š‰Øàº§ªpú’¤1 ÑÒ¨j(ý³Å~AÞX™SY}ñöššÐÆ¥ÕÕ«—t  ÿWß{ï@;¿!"{­tgµB§óîÂßz«ºý/A–PîKÅK€-I¶¤PÿÞ€?1|y©Õš)§ø+ÿÛÛÛëÞí} ê€HâšßªÊÿ ’FÀ»ìp^CPñˆìï¿‹€™ÎÌŠåŒf¡Àð_  õÌgpíŽÿ9 z×[­OLU?‹(ër+N5õ´›PÑjžY" Äuù‡p ðÿRßæF^ÞÆ¦ŒBø3ú?ÝOÌ9'æ&èŠúúÿè,—ÿ£ÿQΆö‚þÏy×q€•cÇ’‰Ô ÍÛM&Bw*òíFŽþ­e öìJ-7úû¡˜ì&¼ŽwÛA4ä iØ ˜‚͘ŽÒ@´ÌŒË€aþGõßêîÏú¿1Ióz+áÿÁÖxÀç]tõÆSÜ‚aÂ}ôq€^E§(ÚH\ˆ÷.ŽðáŠÞÏV}¨r À äÚ n,ÄD»À¥6vgÿ„ðï;¥#Ê…ÎÄ3¾ôkc<ŽmÀ°„ãÄC|®µµçÝ,Dý_ØV7“ÍÃm¢óOP?=³Ò-Ó3¢ÓOM5ûLõàTpóîå¦.V¿ývNå÷«wCƒ-»À´ªõ[vÝ»Ä`…¿eF¸Ô ¨þ+³›ƒ*+³«ß®Æý‹yÜXÕEˆRmJü§Ëo¾3€3LÖ½¢:G“Eúž?¸¹ÂìviI þa?K°!XK­«êÜR_¿½¾½¶¾ #þöö>¬žØ’ÀlB âŸaŸ¨@C‚ §ððEïø\›îÔžà)€ ÅhögÑ5+ Š=ÍB< ÙÃA GºyÒ>\ü{aúÃü߀à þâ` ¢ ãó‡×<À¹?6Üúúl›}Í}*þç]êËëËËK€ þźN` €À?¿|ben–ð‚(ÀÄhÙì=AÊF³¢ÄLÉiŸó„?âþj¡$Ú &à™= ÍzS2Ñ€è¢g#ø_A# M‚£ÑŒ;¢ ¬ʰkR4öŒ”!Í{J´€¨y|>€QÌŽG‹íf4ý5­X ¤á@ÌÐO £ã`¿1¶×Ü×ëïíqSù¯o±€ŠÞÍ~@…eTå +²ù„uÏó³ì¯e5`Y]ö…@+d„úK vF$~!h#¢÷à ÿ!.Ðï9W~×)ñžpØ­í]p¹ÖP=ÏÀ‘BÂÿº6‚ï™>sû¿m7Ø?¡çCå·ðrŸÆì™ÛŸ }¼v÷v5Ué–élKabò?1Ahû[ž†~õS»æ@LîI[ƒ  8›ñ?´ÜÜnu‘ˆ.\ §ß°äÝ^Ïä1foâËýĨ?CÿÖÓïè[K R°µ¥~,ÁXB¨Oì ܦÿÄý;ÛKû¥ýM$!PŠÿ>H % `ýÐ1(Ák#]#ÿÄqÀöÓ…<Ì*þQV±ÇTìÉ dÈ *ÿ1p¡ À9ì[zqüiå?Áÿ:¸.Õÿ%¥WKžœ>}u€é9€—ÿEˆ.•ÃMÒ³ }¼ùÇÆá?ªòßÇ*@^oD À†ˆ€p6À‰|ç(ÀÜ„8f'¸@ ÌÌÀ4jm‡ü/²~ÕÖ&ׂ 'ˆ†©sF4î$c µµýµØ@Ðo@  ÝdÒØ¦$‘ðÿ(áGÊ̤pÀužr^’=8u$zeê3ÌÔÑ©0ÑýŠÌ$€é½è¯æÈ]ÁŒÿ33{àŸµ, ®ÎΩ ‡õÃÁn8´ +EB¡ ·$8¸ à€u¨U8y ¡ ¢ÁÖ}Þú(ÛõÛôqñ-úÕî™û—™ž&™[¢ÏOÕ~;þwÖ÷gÉÔת;Rÿ÷z¿ð©Ê¿,þÕ>>n=d}€ßò¦;=€‘b9ãÇ€w³<!ÇHÖ@¾Þé<Äûÿ^À?bÿJJOÀùG·ÕÓ\þw¯r ¢©¢©¼Ýð#ƒédëëšg\<øÏÒ¿€þæMéþës``^p#€¼ átÎI €h°€9¢å÷èÁhÙ½‰{e£ Ü0›Ê̵=øœsþ<ú…=[îcGÂÇü h7FkWØ \[;[ 7@L˜Ј€¦#E£IÁ¡ºÂkЈšÑ0# ¸Ìd7µÚ¬ÑxÐÐ 8©5‰ª|ýë­ÍÁfhx]ÚEO¸¥'•.úž–øA0{‚#L¨c¨ãé‘‹%þü˜ôgm@ô¤ûß•Ø] ,‚ÿDÑ/Õ ?D#à!!ÿÇu=áž­6°àÛÙ~üÀVÝýIôë9ü¯ªv6ÎX꾊å–l‹pÀ0“=8øÑ]=Ò€³-Ùo&RÀ‹gèíO[žn앦Å4`ã´˜À¿ +#@¶Ü”3˜“S]£Óé‚AgX¯SB!m(Y½š8V0ø†Sßä ˆß–POÕ-›-…` $† 0‹¬_Žû}Äÿþþ;ÉýÉwˆ$ÙѰ‹]ŒÉÉô"Ôþ+âŠa@–Øý§!®€ +^s”n)ö+tãÁDZ pˆn£Ä¢ÅæQŒØ¡ök4­‰+ïbô= i=è]€ííµ†…@¯_i¡Ê¿¥% @ïÖ÷è@ânE׫Søˆ(Ö +±˜þúeÁbË»[þb¢³/'üŸ^û{^+±_mý«³˜ÿgïŸV¡?<âùã¡ëñp3€© Ë^,z~?—ºBÛØ÷׆&œ3Tˆ[žžèÃýtv#{X — N»{M÷vÎŒ¥ºzÏËÕ€_‰þûŠ ñùF>@9+ ’§Â!çðÆF(Ö…Ïû_7v ÀÀÕÕ«Oè^€ÿãÅïæC“ÛYWWx¥îø/I«°X™&`Ç×@ CRÿ§‚ßÔÕ•õnG™²èÊÛ„1@(g&μP¾1øSí¿]¿ŽôŸu«õ k)ý—@éÿXÒW¥°âTSûÏ .MTÊ_ÿ–çÔð_5ù×Ñ×L¨Oå?·þ¹ýŸw Ú^p8.„þsX„ a©üs`en¢ü^ѽO‹>-ý´¬,:j­M›5Í®ÿ9ëŸN„êµhÔ¸£Â?ýípF“9˜_€F€È 0ØÐ ÿ£i I!ÀF†4Q³=::4„€²QÿfÙ.ðÿu £>ÎIô¡VhI4SÖ§k^ŸËÖ«ô HÈŸêÖ»SˆÜ ³Ò£Ä!ð$€BÀÏË}]LŠ8ÑplpLæþÆü¸òWþ±éŸWAÿçâçóÐü±&´ÿq%Œk¼¥'m††µ¥ç88Éõ?Oþ‹Õ?fHç³Ô=ÕÐgñ¿Žƒ0 +˜MÇí©©WBáß\ÌyóÙ° È¢öH{Ðÿ©˜¸ ¹À±À{9@6¡ueõ ½N·±¹á$ðIäU]psµt¯°zu`þ8LÇž €¾††„þ_²ûX È&ŠpˆÀŽwySÉ¿62"ð_4ú¡þgeÈ@/ÅqÖ± ( €3z§Ói{üâýñGÉ-α`ø'ü‡ÀTüót9=?zžHÀ‰Õùîù/å~\AøßÄ[ôN +_Û·ÿ¼õÅ?UÿTúç é_ÅÿKb@0wxxcX=&†çИÐCö_™S³³÷ ̲ €ný+µ+³æÙÚê÷kei¿¿69™Êþ$#ár’ÝnÄJý;µ”\Û3– †Œ$îÀÆ×qô{ßKI±Óeˆ¢Q;¦ÅàШÙdF¯Àóz†àƉ§µ•¾’¾ö{š×Éd÷˜24ýͲíõ-./F8 ¸…?&ã©îš}XO$@w+ŽxD«(X€\ Üü1§KŸ¿v÷ž <â—VíÞâ_*ÿ‚ pý‚7PèKa/ˆýŸŽšð‡úå^Çþö¹éµum3……÷ ýÿ7÷õÛT€ß’Ð)ÿ° /ÄK³ïÞsN VVr>=myÊçÇÓ}_ z*ˆ'$úcÀ +À +À`õíOtNýÃ`H¦‹.ÙÞ °J``þêÕùkóø7ô8µü÷%þ%\ûïz9ˆÞC¥üÎ c2°ø]N|7«8"À»¦ÿŠ`lLÔÿÄF.\¸À€ÓöâýñÇÿb±Îúý¥ Tÿ—Ýÿ4·Nƒ `ðfnnnE(@ûIÇÔj2Ž}‹ €Wÿª‹}}ŽKŽ>GžCÔýyÜRÙ/Íb +€üaøÿ ýóÀ¨@ùD91€òrbÃèìÙ••µ³¦è +Uÿµµ˜òðþ;ÉDÒjï$[íDñkd#€Á8TË:Q€~tX0¨áV@Š&¥#eÚ_ ™1h¶  ™“€ÍQ³©5C“¡iÍ è?úúQîüY +8J|Ànjõ˜M΃ÿkgmmQˆù ùbúTf©úpjO;ÜÓãîñëz{1  õ;„d@2ª|†ó=‰¿P".ññÈSóÿ5ð¼Öïç0Õàçt 8 Øl¨õ#ó˜L¼LÿåX·ž×.À#uÿ©ã±œxý}‹Lbøo |ÙÏŸN ÌÐ1x.¼zûgos:^ß8½íç3Óò˧§w}ÿ{à_‰ðJ KbC d9Ù·ÏÕè¨êßÖ úG67/­ð2 Þ ôÁÕÕ«óï]]=À ðõ€ +ÿ¾=Þ¿!H +P¢>D‚wÝzxR¼>[PW4³}]]]YäÁ, ð>ËDÕ¿' ‰Àų˜\È’€ëÅûã…17[¿^屢õ $[­¼Xÿûçß!ôŸ?Á€—r+šš°Tï¤Ék5}{€ñ?ÐÏsÍüQú;xð/;ÿ<þìÏ¥ ùİx"ÿ\ÿ¯L¬ð8 q€òÙÙ²h´ìØÊìJíÊŠa#þ ýµµ,@ÿgŒéü$ Â~ìIvaÀ,ÀÙ³+ýµP VjÙ1x‡WM‘hïH! I"05E£vôÿY0ÛÇ¡ü3ìk¾÷½£¬´Jü§³‡(€§(בּÞÞZóúb†@‹Þí†@¶ê…Ðíï‰(½<a&“C{Âð'¥»?†–>¬|‰‰?5ÿ缺öG+|ÿÒþ ¨ÿ~ÐFb<‡{tºÔôÁìx^LªN²é¿MVíušžùÊê^1ˆÈ¾ ü§? íÈTÛŒ\û·+L«øß8Ó(;ý€vfÓ*¡€ô¯¾* –Ä,€h NݾÖë‡CÁSÙŒDÒWa Ó¼Àÿè=Y=ˆÀ ðµÿwdüÿ^ø/)á[÷]ÌzOàñzƒI@Tàÿ_r̯‹“‹Þ@8xc€gÎL8¿ãë¿Uù;Sv`ÿ[—ú 6ÿññÿüéôùùyªÿçOܼ™{3÷Ô©¦SMå?/8YPpÒpÒàù¶@ªn4o²ú¿Ù ߟ@~>`úƒ."@(þéJàóss¢þ¿Ç +ÀJyùÊÜ +Q€•²Ùè샕•ÙOkÔF£+TÒCà¿Ù;íLˆܹc0Ú“’X0Š »½–È¿®¿ÝìBoÀ.ޤ»ÀÍ¢väEÍö!‚! 8Ël>N/ñ=ªÑø¿Øïà€ãšŒ §ØtáèV[Û^ï¢ËáÃÐÂS„ü-aB¢aìR”¿€ ñ€EçÉ}­Ë¿§AhæþX$â—®™ý'g`÷ ùøÁ9èï¥?˜™ƒÑ)qÝõ0ÕÿápXïò/‹E@ÏgTkëvÛd[¡(ÿg,Ómu»33ØúÇóþŸLjlIìëkäy=ºà:9uy0[ŒXÓý, 4Š Îøid.0#u^4³Ç!jÁY€|'^.$€ÁÁ©Âáá0‘e>´©ÝÜÜ8Á`~ÇüÕù>àûÓ«/ÀáøG(VðÞ#®õÙúW²Hðo“ò¿êD:0ÇÒ¯wïúá ëجg€°BùGè_šÿY¸Jáß#κE €§^xþÈúŸÃ,×3ë ùþ_X()(áò¿t ô4qùùÝ,ˆ SMMýM'Ñ0yZžoã›±–°õO¸ÿšÑõwÔÅ¿(ÿ«†A)°ó8×É&@ªÿ þEýŸÏc€÷&fg'üçV˜ÌÒSBý•ÚOg­D ³È÷_ጿG\ÙÓ…@24ôÿ;:˜àÉÙ¿?{–^K¯éO®í¿#šxÉN/D€Êÿ¡Žï¥˜¯h†ìCãv‘À&€ñ¨ËÌŒóà¿ç(ã?nGfЕðßsæð8W··½ ‹®€;UÏ*@O‹¾¥G§¯i VÀ!nDqøÕŒ`q‹¡|`A€ë¼‹ü`0}Äc­3D Î3-ð¿ì‰à¬ô³ æ÷»D€.t=®Ä©þ‡[Š+æòù¶ŸŸ@•{áý6¡öψŽ=Ýr*Ä[DXÿD~šÌ4NÞ¾|w0Á}r×/N<Ï—ò- ürûwÄ·ìf@ih­Õ@ðÔ¹½3<B@psyscãêÕÕÕ „i¬Îóq•À%b—^€Ãpìà¬ÿÛJl(ý¹ú·•$tiðAÜý‚¿ G™‡â¯·lËsëGŠÕ€â®..øy +—,Ñ01öò›™ð2 3g^xþHøÏÜf ^¶ÿþŸ4À ùOŸžgøŸ81¢’O•³ ð$&“ñ[ønxñ_oüI‡þO¸îÞÁ ?ÏN,þ¡[p¸ +Ð_ðÏÏÏwæÏ1êè_›¸—?`¢<³åsÐVæÐXYyð`…@íƒÚÙ觘ðÿ{)õõÿÖ’4­„îŽý ¸C_r–‰@{2ÁÿÉ;F£Á +`7v$i::LW:8 +Àž2d·›£fÃxtœ†@4)G5ÇS4²üýup€ º§k×…bçúazïlmû¶]--#n½Ò«ï­Ñ§ºS[zZÂ=p(zl êíñ³MÅϳ ßTì GŸtF@bŠLùUM\ýGDÇ_â{¦Ú^ÄÄ´䀗.Ì œ§¯ZkXÛ~nÛu3“m‰ØËÿ††¯NÿsG_*ñÕ“éÿ* ˜€ÙÂw3¢ß³®·q2!œ«f e/5°ðWâ 9å—?ÈÏø3R `s°r0^?-ÿ,™”}äÜ+úáðDÈ9¢oºdõá%”ûAgXWó›°.¸±úpccãá&‹kGÂm7à ð59úÿ¢@Ho³•Èþ¿Màƒ|®æYëEZÐ:n‡¡ °…(@ý5Ä1@ýO4 ‹c°@¨D ²L0d1(N̾Pþcü'à— €óÿPÿÁõÿà¿ +ÿ§ÞY‡ŠiÌ}éfg.‡7 ?2ü› +þüo¦{úÄð?þ©úÿæ`ÿoUÁ*§ó P€*A† ÿE÷ß™OðÏ×{ùPr‰<ÌÍ4 mn…IÀl9òÿVVjgWj W¢C¿ˆ®ÔÊœ_xk…@7÷¤$»ÆŸ1j0£Ÿž=[Ë£+ÉɵúˆØ Øaäu¤t|¯ƒÐßžbÂ0 +&³¹ØlÎ@€aŸs4x–qô¨C.úÃø†ÝvÙb}êe‚ü^Á½ºT¸[Â=5ÄÜq=}ÄôDÜ„Ü:?ß´q-2BÒï'ýVõ"Û—mþ\ýã!E0nýË—Äb.ìጇuˆÒÕô´è›Vëòî<· AÿüÌÿW‹ew¯|>Ms_äòUV2üƒÌ˜a08uîö^]€;øÓ{]–§†ûE¯_Xx €T ÿ"&ÐÌí©káðµð„.òÓ?üÕ‡hýoëj>ùÍo>ùÙ'á`йÖ9Ãá°îr(üÊc/ÀW d®ÿYÿ§Z߆€¢°¨øïõŠ6ÿª_ÇÆä_^,oÑQs~»x`qF\ÿØeæÞ¿ÄØ$þŸÉAþü_— ­ùM!ô– H Uÿ«ï` +€ À?(û¢µO¼DýFÄÄŸ?¤çò_ñÇôº/ðSýÿ—¼3€55a7Ì…>l|>ÀÁÁÉ: þÉõÒÅgyj +oïD~¶ù‘Ð/H@ö$ó€ÉÁÛçng'Lû•¢m€Ù)$úù¬'Ì Øo”®‰øj`G˜æ™ƒËÌÌÔ‘ýD8ìÔE/-ýrãæêÀê¥áð©ß|ÿ7¿ù‹šë×uáPînÍÝ»5i\ ¬íÀ/À×HÿaŸ?•ÿ`â`3€Dþî +p l@ùòpàÀŽkÓí)>#`'ýddyȦ?‚{Ó»Y8ˆÀ %ÌEÂø" ð?z1€€Àu ÿ¼KêžXÿ%p°î +0ÿÃùwÒç»Oœ¸y©ó¥ÜŠÜ—° ­©ýçí߆üocØ‘ÿÍbøÁ¦ÿàts¾‘K ß’¿ ÿ⊨_TÄ¿:ÿ7<7Wñ0÷á͇7on€°<¤ë/o¢ðàóψ&@íŠ}<Úý”ñÿÑßß᜿;µÉɳèÜ1PÓkì /þÁiCƒ¬$''·—PüÅ ’¨ü§+¯J±Ú1ý.@ú±YcÎÈH!ôýudþµRýï9ªñðBë‘àÎ!}mmû\½o(©©Ðýn?îRÝ©¤q½¢s÷88Xx÷•8•óñÈy%àeÿ—µ/3¸s{€›ý8‘=sr@‰Ñ‡A\ˆ‚r>QB:Ýõ¸[kÂ=awD«]öy·ÿ|,[uƒƒ˜ãŸÛŸTÞ-_wd³üO@lêÝeb%ÀÔí¸+Uü—Å¿…åýbŸÑ~&! à¿È"@ãÀî—[؈=y{ê².|O7>¿ôø—«¿Ü¸ºzBWs®:çÍ·«««¿ãöTX®™ºxãÆÁóŸÝ ׄT(ð ðuøïãèÿé*ø³h0€àã,`+‚XÀqÀ½€[¾M‡ètïÊ`í¿m°þÿ×bjs€b\é¸PVô+/vüÇ!ÈÒÿIiCéÖ’’'È(9€ïÌϧ¿³*&äàK'Nq`ASAAûŸ¯þóÂù«:õÏÛ~«‚Î᪪aº«ÚSþÓÿâ3ù¸þ±ö¦hâÚµ¢{El˜Ë§ò¿¢"—¦8~ùðá\Å܃DШýt%yÈLåz´öÓh”ûÿhÔÞá2•õ¯8@LþR¨}´×Àlr{²Ñ„UIF£AÃ^€$z)\)Cv€ýãã£æâ²b32ާddhŽz4­±€àl¶ÈqˆßGz{Ü5©nEqGZ”T}*¿EO€x@ªÒƒdEéÕ)q¿Ž°\ $Úìq%䡘WÕ%þ³!@‰üsî?gÿB÷§×ºbZå|„˜D<F5©5=¿Këõ=·µìÕƒƒ“3 àžýЬëÙêiZÜU2üÿ#@%Vôª¼`†.“Ùƒ·«åú¾ì=àëé]‹?RÐ`˜‘âÂùÿ¯•X'?º¬¿¦sê®_ßúxu~þêÀj°æ“‹ÕÕß®¾}ãFNãÛ7nTO6fN^?7xîîTfèÜ ppßrßàÈþé"Û%é‚4$8@‰ÜD$€°@½Ê´°åsA``—ˆ,f «ÿ´ü‹…PF…¿ì\(=€ +ÀÓXWë~cл¤´áIR€êÙ€&¡?Ñ€ôwD€N/8‘›ûqE.L€§ ÉÄþ\üoV@³Ø÷׬Nþ塸¯rüWÁù÷7ìøs2öã6q¯MäÓÿó¢k£×Šÿ‰Ì85ÇÍÿ +fDYˆÌÿòfnÅpŃ•Ï?ÿü€ÙÚY³f¨ãt E?ò×âR«2#D€{Ç÷X°›4šà +Rƒ8a@XïkÄr@Ö¤ØS:¾w¥ãJŠf(%Sfá4—›ÍÇíæŒ”ãG‰ àɸPœÈÉê¶Ïåp÷„SõnÅíÖa0P¯O§ö„uTãÖ÷\V +!¾zóë´ñâ×*/+„â„í!%Ä>ÿÄAT WÞ³ÿ_›»ýtûÇlÔüPøs*³ÿ‘ìúÈ1È–4¡2ûë8@åžÄTj1ÀóÿOe ðNà™ìÁ©©#5×ÂλÎÐ&f]"üŸºqñí7/¾]ýæ?¼=cÉùÁEàe£åg3ô×¹¨«>75uñ8 ÇÎ:oÿ‘ú?Ãz_º|pb P*îÐâ]§ ªëúú!`½Ë=g‹]¿ºÌ]b °¸ïa  ÇTfb#œï z_¼Mþ=Y/¢ÿÔ‹(A@Ié@©(--=MÅÿÀ|úüêÓüçO¼Ô‰À©4iMM¹†‚“?*xíOþ>lé›þ›¨ÿódî'ÿyú¿*øFЬ¢¢_Èÿ-ù(ý óü‹Î”SéÿÚÄ…²¢‘¬kY×F©ú/*à ÀÄ\þÜ\yù\yS~SSù\Ó)P€›D]æoæÎ=T»+ÿ?{ïÓö¦‹^Œ±À²¸Â72›[ ù<€…©ƒKÜ…ƒ¦¡eŠ¢â½r¼9QÄI$#‘ˆh¥ f™ýntt¸„“bVH®€(ñnv5¡É$Zá{Qg5º¥CC’r:í¬tßçý|¾†tf:Óž; šæëŸ›¥~ž÷yŸ÷y7îç<ÌYóû ²Ç"«k­k¬  °Æ-$ëQÝsÔ/]ë™´xë­#ó)}Ž4@ýg’€¥Àþ+Ý,3›Œ%Î5P€â"l€ …ç éªÐe©œyôð÷ôhðd×ð@o±@½ÁØpl vÀ|Pm~ºW›&v ˆ¥W†5iHSåÿ)nqY §Ap’a?™ƒ!_:¹øÇ€SD"òˆBPýŸÄ dRûî÷5Áì“+'± ø¹(ïÝøn\öâ°]FÖŽŒÿƒ~†{±‰ÏdÿÜ¡ÃÆ>£ð£`eø·z¤@Ðiµþ.àæÁA + äE Pàöú—^wÙûÞ{ÿ»fŠ€f.®ŠïlÇ“—­>›7ìóz©öïì î;î5L5LU.TÿAÿ»º‰X^ÞÞn\°À(ÀüFNc~ù¨ü«¢À€GAü)=•õ:Þø‹Åº7ßÊñ9zÑ(4²[LAÅ6À1(À˜ˆž4O8q6›ëÿ‹ŠŠˆÂ¾FÀRmúKñªì f÷&cÉXìxlŽª}^Ï«‚@4Ú`,™&ø'ä¦KðÁ8hÀbÐß6Mi¨¨Ò…µÀüŠ\û7-òD ›¸BÞ +k8 ¦IjÓšfü¼¸õôùtnܸq™.D.»ÑàRÝÃv>ümV þV(ô°2W°ŠCÄ +ð/2Èúlýïy†ü‡°\Æø—™;Ø7"X/¿÷½ï'§´¡Ÿ&ãš«íÎöœæ†Õêµz¼>o¸úòu·úœïz§×sÝöïíôýýóe«×{ãÆ{ç¼/ À!„þÏßÈÎ14O‰ÀP[6Z& r@˜x0§œØ¯ÿa;´ `p}G @Q€b3<üþƒ´ýÿátI€IÀìx©|eéÄ–\ÿ[Ê À\ÿ£úg0*B€Ñüß|{.@tŒËFw=€,;áK¢¡±±»ªªÛÕÝPÓÝßòÊÿ2výcÓ/†Þ@ê_—ú<ŠÇØ?ÀgtýCJ-ðÿ¡ÿÓmtbÜ9nŸ &0á˜p9°ÿà¿¡…À_Ø\´!fí7>úùÏnÀ +˜³±Fè>V ‹D"«©µV62øÿSìíÃç¸öW#HÀZªu+ô©œ*ƒJ­âm€ªUXuº¢+~ÉÌ f³Ëéœ4×ÕÓ1Z„ÿÎÂó–Š‘§1TöWººb¼`9@X8ËOòHà÷1L¦cÓØVÀ‚Bùôô´c‹ýÁÅ ìÓôybBÈž~°({ÿÓ<ÈÀ+ül "ÒÁX,lN6¿›ž\É>yñâÓÏ=)€8Î…oønؼ6#vII;Œløóp£_€½U”ý@w› ¢À¿¸—&ëu&ü¶ò¤šVõ;à¾upÀ°„cDúðþË€ÎË78ø^òª¦ùýÇŸj“ïÙ|ç|6›Íë{?Ü9k Ÿ3•ÌZm×M%ôÛ¼VÛåË—½7¼—m/ À¡.¢P&#¨ÿþ©ø=Pþ‹e;`©H*å!@LÈðÞÑÃ*An­cˆ8sÆì,Æ …Ñ8¾?Ã?á¿ä!ÂÇ‹&[[‡Y×åÊ_\!ÿwPÄÿ—vˆ? ÿÎ2@ ÀmuÓõ,p7žNü}cK·½Q¯õuëí}‘¯? §²D,ûÛÁõœpþu/G惿bü¯ì…ò¯ àÀ_ü'®¬ÄMÔá·L8œ–ñ WtÂ1Õàšjh¨ÜP°¿¿ª¿ª¡¡ª¡Z@ãG‰ÄP"žˆ/<|øóÎoÌÏCÀ¨ŸNÀ€ØÖ ª_  x;0½ªÐßç×#pVà¿¿*ú*:rEWÄ6ݪŽðrÌ<)5€ºâ:bºº:ÕÿR|¾ÐùŽ¥Â¨ýËzcüíð@W0-¶" ˜óþ†ÝækbͱXP˜4b(€DOàÚJrúZðÁ»fqš¨ÀÊ4Ûe`1›Ó§Oó²é9iæZCƒÈÌÿ ÿ]"|º÷?žÇÿ~%% 7nø¨Ž¶ +À[À<²Â÷ð·á‚“ÏGdÁ +%€›Âó/ŽË‚@ûÌ ÊÖƒ^€ÿè”k¯gƒ¯cÐúÞ÷´ñÇÚ¸&ž|ïò{ßK6ÿôr§ÍûÏ>úΉùð†ÏYÛK¼žö\¢žÿƒgج^ÛeïåÙ—àð½c ÓþW6§sÀ@žXÊ €5^t@üG+`c`{©àiÇÖ2€`vÒÉ"7ÿ@ï‹öŠ~†zCs[/`é×|xÀÖQ¸AŽB +*Å + 'ØÐ@0J +°¼ìužu_X¦#€î„‘*é–Ó ìêïnÄ>€Âîššþþ¯ÉÊËÿ¹æïbüÁÇyî¿ ‘¿Mû3!Œýɪø_{ôßzÂE8EÇ]×Ä„ëÞ=WCeC¥ÿU8\t°Ð˜øÐ°?¶?žh' +ZóCÿ/@ãþWk„û"à çU‚ÿˆXúG@­Rà  *ì[ãÕúœ~½ßL„b@Q¤€˜DÖOŽMbpÂ<9É ` îLqqæ?‹£¢é/nTuïâÌôÀÀ´ Dè*ý?É:@s~¬7©‰“½Ééäp°K3œd@§"ét0¼F×yô(ÔNÎæÌ`± (È>ÁÅ4}r1é‚ÿ´&–Œ¥›¿Ÿ¯ veg¯¯_|útïyµþÏQ¡ì¥Zú²MÚöfÛ%°1î‹[yxþL¸Íß)TAijY¾ö *Îf6OfpÔ¿ä`ÍïQº³™iÎÎËïý4š» +iÞ»qî'ÍÍß³Òk¬a›÷œÍÆ‹ÂÕ¶övíºÏs}ÖÖéí´Êî…ÕZRRý’¾€Èÿ/Û1÷ñ €‘»¢˜+íP(€œÜÊLÈ>¶Á=ï Lé×PÿãÐé„þO×uØtÅOÕ¿y.À'ÁQ]N ²X¢oüæ/ïÍéÑÞÉ™®X0øOkòc0jcùùùèÐpŽ¥cD†y*0È‹‚ ,ÒÝô"=´>€àÅ 2¸2ã?\˜ÿè¹IM€d2l~÷ûÍ:™½7øñskjz%þ{/{Eg_èœÙ( «ËVþ´üÈ*E[€ÏV›)\mêñ¸Þ)b…¥!ðËfAO¦ÿ¯¸ˆhCI¦ù½7Þÿ—ï{­6ﬗ¾¨Ïë³uZ¯ÛÞÿ÷’v«—¾ez qV!ø§9ÖþÁ/ Àá:>ßÚºø„ð}„ÀÎÎ>ü À(LF ˆ@Ñ(i€¬ýn8àØÚ;zHÀVGö\þøø’ÍgÌ`f˜ÿŠÍTë»÷3Aÿ;R€ À!†B/ Z Œ«öû-Ym9¬õ?ªþ[œ µÅßé: õ-a¿Ñ¸9:J Á?tÜnãrb€;ËÈj´·¸í -‰–ƪªîþ«ú² U›ûÓËÿPy9ò~vÊwº@€ùtÇ>W~çã¡ãñã™ò?Ðh.ýù2Uu@ r¸œÑ Á\.×=;ÿdë¿¿ªJ_Ã..K1€í|¼°pááÏ[766̺y•ÈQ] @J­©ý&€Þ_‰Ð>ÞÐG| Òç/\Ãòà”^oæò_åWé + +GÝôD™`uTüÿ›®˜I¬Åø ªØ<ÙìšN'á¼ ++@0Ë×&µD°-8Ÿ·Ä‚±d/ü¨ú¹ª½€ <‚¸\)È[„=0;OL¤óðLºý€°?™H'5ZLä7'ó“ÁÂÿ|úôöÞó¢ï¿àe*ê/°m9½ÓÙ¹úõ>ˆtñzlDÐ}·ù¨î–Sô¨í²M¡Öɘ= +`qg­üôŸ}¶9 R”yt 0“pùÆO®&ãSÍï]î´…ßÿå9oøœ-\M¼ÅjóY­×=¾sÀÛì¹ë0ˆ0ža8æýNnç±—à5Ÿt¬svúˆ„ÿ!Æÿ‘Ì‘â£Tø×3à,àŽ:°ï<¤ àiGYH{5Š7÷ñ3“gÌÅÎb\™y÷_a!Wü(Ó-b + +@åñòçJŒŒœbîâ á¸8œ+OÈÔ?¾~"×ÿ”"û§V(²ú_6ºÑù§Š_ܼ½ €»‘(@#œ€--vÈÿÝݲGôX +hЫÿT$„r_Æý¢ü'ôǾ¿¹ã¢üÇØe/ÃÚ¿ƒ(s;Ôýø“pD£ãbJ”ÿB\„².›ÿ7¨ú§ÃUøŽž€ÿ5}!Ka¡ËEŸnL<& +_¨$ðpcþÒ„¿M•îJQAÄŸâ8 €5Vý†TNú?<„üê>5šþªTúú5ƒ +ö¿HMDL X… pÒ¼ö "N×d±s=€âbªþ‚ƒªŽÞ`€#ˆ|ŸÈlÉ^$i“ôal ÔÿWÀÒ¼êG“} 4@Y—t°>Ç ¿ÂÊÀ4·þ5I–ý©ðŸŽÅè¢Íï6ƒÙÙ+ƒƒ?Ý{޶æs6f—¥_öû­¼úGa>tþù·6“—©€ÍfŸl^ñ Z¢?À_Fj +†¶ ÀB0û¥ aL´ ÎÊUÄVï÷~šÔ4ÿôÆe[˜þÕs¦ªÏ}j²ùÎyèŸíôV_?fõxKÂÖÎÙöN÷%Ø¥Ðn:u®ýØ1ÛKp˜Pqp°ãbYmÙN™q"êÈÎÐHù>80 ÈQ!H—§¾à?¡ÿÖaíl]ÌžÓ:àðGñ}3œflÿ…ì çe7À  ÊP¨üy½ ¸Q/2þò/¼g¦‡o¾BLýcd×¥rþŸÇÿ ý<›ôWäÞ$ô7"ý÷¬ûìf,Àž­o´»Y-öÆ–ÆŠþÕØÝýú#ýúîT*G“úS¾‰¹rQÿ—ìÀ ÓþÑü/o:.Ìÿ"ö?‚í?Àš?zþÌy:]Q*ÿ9Â)çD-Nç„ebÂ1ßÀÒ?¤}0€×Î÷Ì……U‚ØÛãö…{S>œ_›7› ܧÓE"–þ[ט¬a%?µ»êO˜ô©ûÄÐÚþ~}*u?•Òëý@üš¢":A®À 8föOŽMš''“N ZÅuugðÝF+Žoý¿Gí}|««+H€ÚX±@ù±¿IæÀ +ÀSìHkÒi4ò9X#–°ξ4Ó„¼Å4Icì/Kbð/–NÓ…î§5Éä÷›c¤>ø§Á-(·Ÿ×ÿznÿòÆ{ÞË^aãÛ—úw%¶øW‡Ãa†õj¡ ÐÙ*zŸxþE €-ƒÿ6Ù@ðH +`>B‘"Œœ!2,c=ÕàËcôÝøéOú½÷.{è»èloÇ‹ÿÙFx½>Õg²ƒl@ßÎõ’v/0vr&éÓNÂÿð§/~ð%8 Pý_[V¶ƒò§è7Ógú@‘\Û!f¥0(m'ö£ÅÀ£ÃÈžvìÌ…®FÇÇÙöç´˜‰œ1; ¡põ_(n-™ž¬@ÕÚùºû@ù—52‚• +Æ?±î'˜,uóÄühFPø<‡lÆkKXÿ…Ùƒ‚þó_Š”ÿqZ~{Ôô_ªü/$ŒË‰ FD_XnDÀmÏêN4vÛýLú…D.ésú —Žü ò¿ úãv¿<Ž‹ëøñ§ÿó²ŸÞÊÊ^Xÿ§Dñ¦4ê„ø·8œt×Iugœ“AøïrÍO54ÌW5`G¡Þ¥/ãöÿ…}ªó~Uq¡« + À¾mL `baááñ‰ûæµb‚l]QQA$²&´ÿVQÿ§rVéfV:"}t%º<öï×ÃZóëŠtôZ•ziÀ܈¼Z¤ÓMŽÑer²nß`ò¬ÑÅúOŽÊ¿ðœÊ½Á[ƒÄÒZ-ÕûÚaxÆÑþçh€˜6Ý‹õ"3` ™ŽAÒŸN¯` 0Í1$˜®€ÀÈÈOçk×ÒAz UüÀM,9Ô4c°æ7¿›üϾµþ1Àÿ¹-Æa=w)þPÎ…ÊO°ÊÀ±Þæ%à¿iòɃª~Å'/â€Oô lûà€s@žD‹€'=BðX3;†•±MI ˜ÝBf +~«Õ&œ·^/¹î)AÓß·CVðz<%%%6^ µ!ìÃfã¶<í/ ÀáÁÿ‹áÿƒ…ªð/N¬ŒÔÄH`&¨43 È 0DA£ðôâɹ^ÇøD4*údpº\.!X$*O"*>ôu׫ð°Ä:ÿ²Êžà7RÛV0jü½£Z c"Q;ê¦ZYBfFÈ$0ã÷}¨~§JOpÛ-Ùýçµlÿ§ LNºGÝ›£ÆMÿwBñ… ‘pÛ颯ÆnwKcúYú#—ôýýz}Î¥œœK컀ØÏ‹~öÃq?²þ?Þ0:.CÿB"õÕ>ƒ¿…®õä¤úß2nwó_³xòÌ$D—ã^ƒ£¿¡ +ÀåÒ»^Có¿ŽÂ¾ó0êÕD + õ®~ ØíqûöÔÔÔÇ÷1±æ¯«Ó½J¨}Yb'°˜XÃV`ºoHTD"tQ3èÉ?©y˜üª" ê"þ±ˆ0 Àؘ@Ý$úÎIÞiqÆâtý¥¿OaIàô€V“¦Ò<¨ ækÆócÍØ$hÀ€v 9ÐK÷bé`LE*0Vþø¯eÉ@ðÌ_þé$vÿ¥µéd06¬‰! + ™îm†`æÁÅ÷öž_ù/Ôn°^æ’ERSDÀ\誚ohiŒÇíñÇö©…ùˆÌ»&¡\A@¥@k©ûÜ H­úwS)øÿ#81P0Чò÷éYÓ¯Æ + +ЍÂÌ ê®¨I@:Ýd}—.nVŒ¾ 1•{ƒ'g†§Ó1tü‡µÁ(âbÚÞd¾¦w ?†“1nåÇ‚×ÄÀtš‹Wÿi>iヱ¤¨ýÑRЇ1F ILã+üäÝXp:;ûR€ŸÞþüyÿ¨Ös7nxÈ 9!x'»ÿ˜T‡oVã0™|áŸ-\]kbÄ@^ 1Àë•À¿ï Ïx}â+yà>¯ ´ 7€'“2Ly÷ ˆÉÄË`—½ø7¼ô%¬6›ÉVbm÷]/!˜‡]ៈ€M,)DXfpÎÊɆ%/ ÀáàÕ["ÿ@~Egº}cHš è­¨U XZÓJ9 ðD¦pô)O> €ÀJ(pøoQf½8ú—n\N™þïdj E—PùØõõ~ü†Öþ×k;žePD¡k:6…ÆâÞä ó\=Ó¨­ÀÖ¡‘޶dàßwý·ØZû…ØM&Fú˦²ÝËYb b݉„Ûý%²n7]ÉZnì>Òý¯GŽä4öWé/õÃwéøÊ•¤¿9ÿí€p€PehN  ²—ÿùpD£€'ZÿÜöwÊ¿†Éº3„ýgêPZ;±rwÂ5U5U5_UEÕ?ôþ©ú§Ò_Us¾¦¨¦¦F¥òºú6íöÇt-ÜøÑÆÚÚÆuñ•+ò#c««©U¹p,•"Ð÷§üo®òï² €Êblˆ¨Æˆ)Ö°Ö?•ßãu@‘+ºº1Ÿ€:Œ(Hâ# -ûV¼[}>x²le€Jv6ÐÕ´6< _ @ì ÔÒ‡ùHògý?-‚þV¦W†Y€ß?©IsÞ?n5Øû§‰ÿy~=šts~s2½23xrppï9­xöxÿÜûç¼—­V¥œ–© ¯Ãá°©ÚDxoª›L¹=¹m§èS87·Zöà×¾°oŸpí†Ò'_Ö'Åe`°“Ûõ‹€‡?ìd)@’Ûe«÷² _–PÝëñyÏùÎy¬Þ[gI‰ÏVÒ~}ÖK/¡ÛN›Ðþñlx¹Í&V ´{Ái/ €|¿ÈóÿœýWž©ÿJîN@¼©×òÛ;Ð_Æ?á ÀŒ <€‡S€¿ÊÃÞ¨û”7~‹ÓLHà4Ÿ— €.g¦à``ÀQúº-€ß©ÿ(ã¡ +ºâz_á›FyÎô0wa̼¶´CL¼h ˜?KEàÿ 9÷ èBLEýÆ’³9j\¦ŸÇ *ÀËÿÄ"à§±ðtVc–›ªÿÆþÆ#Ýû[Žôç\B ;§»?õG|b䮜¡ŸoÿM„ÿ¡ãrô/€æþ+Wt†`±Œ[¢Nžú·@0øÿ¸®n’˶ÙO¸\ ®yŒþ»ôUzØÿ }}þó†b!𿨠†^ïªZ `¼°Ÿº÷ø£­Ýs^¹2¦+tG"*ýyð~Š(À.X@Š=‘]•lø ú”A­V©ôô¿ß¯+ /Q©ˆøUºÈ+Ⱥ¹âŸô›‘lf€ðËô¤Àö‰ÒðïÌÌÈ›GÙC,Ö s"‹ôRoç9¯­Äg%¬÷‰ð¿öëø"³%%³ô/1ôìgʰ¡c¾êyIþ¢Åô?ÿÞíG·ÅÍÿ_}úèéÓ§[OyU]þú~ô9?çKÿ?Aþ7²úðŸ“åÃù¾ P˜G™Ž4Q€ÒÌx:l€G÷Çèüàè¡c¿¹¸Þ5 uŒ_uƒð€““-.]9ÞqTIðŽâAÀÀ×øLTþë¿§ P[»Y¬/Uª}F~7Îè–£_.)÷Ê2>À'/d èõÊô‡ œü¯µìý«Ú?ƒ?~8ñÃŒ.7ÝXþC…ÿYðø™$.H4Ú³îî»Gº³ªþµ»êHÕ¥K09Òÿ•€qÁ¿Bhš Ùü‡ŽÇ›8û¯·2èź_ôÿµbîê?ýÀþ‡?ÖƒÎ8QÿC€€@ TýWõ»„ýÏ`è㈞€:ÑÝ‚¿ß€YbåC ÛöøÆÃÇïO®MMR­~>€ˆ.ò+Lÿ¥VW±˜îùwÕ«»,ì + ÆÕ©® û×ü +ŠŠ°PÍU‘"™0¦›4›a@No¶vhCo[ŽGŸ<9Ce¼V“߫Ɉi{WPüêÓ¥@ö0Ä=@øÿ̃àI0 Æ4š`0Ò0ÓÄè±?Ž ñ‚fÔÿ++3ƒƒïí}þb~Ð÷ß'`e˜ Cîà˜ßôù¨ø¯ÆèÖ/÷þ Õ½ô”› +ôóq3¬ô|é™!à•>¢7™ ˆNä9` Ûý߯|€äˆé)XXü "l6Õ>¬~akû¬ÏZr Ho›-™¥kì(á}â‹(kÿªý¿µ{IþçépYÙN½ý½ù=vñwítÑEò;R¥{;oÐ3áôë(c7ÙEÔëƒOŸ^¬-ÃÚ¿!ýþÛ €8=42âæâŸjQ¹X09–VÊ€Á­û@ad @H‡‰<ºX¶"w9Æ©ÎÇ.`hþNŒûsÍ+ Zÿþ-Q± ¨24ó5cÖäÞ¤ŽßõŽúƒŒP˜¸î}@œ™F€0^œ|®¿Òn»=qº±‘½|ÝëK;¾(ÓþtÅ€ÿþJ³Ã˜ñÿÓ4º)(À¸û„ù£LÐ p»?LdÙah<’õaã‡ý‰î#ÝýÝ—ú«úû«rú/]:r)õÕ>€2ñ‡~ZøÑ/&\Wê̺+c:Ýj¤à•1áÿËÁÙŸJí®Ò¨â‡€€Ÿ?eЧôµÊOÏX#R1F¼µ_åðj¢Wt쨛,®+¦ï0zÕ2~5_*ûì[$Zî ÎLÏ öÖ¿`þ0¢bÉäp2¦ öâ3Iîç§y àʃá“Áì™™™éáéáái̦cšôn0 žs‚AÍpò@ò?§ÓÁì7N²ðE½ý’5xû ÍÏ¡ÝÏ€O—j0ãx˜]ào†%îósML|჎@Tþx9¿0ÌRð £ @õ6‘Àgë¾ PL ðšÑR k“×óÞÎ’ëçl%×½¶öv›·¤ÓÊî?ªÿKl%¢i`µf¶YguþÓÒ±cí/ ÀÿøwŒàÍN=Åã\þÌÅCñ¹80ð/†¢¸šã½(C]嘓ƸßÈŽq„Jÿ…(À?]çªÐ0 <¢ØÍ¥øŠÄl\à"NâÿSÿ­½G +8D¿µ‹ð8¢°|3ˆ6Klùð»¢.Ìœ@!_»Íz±¶£c]P€õg\„üµFæü«•Â?ªbà¿¡yÌÿ¹[p`ð9] --v;ß»¹! @eãŸ-_tÔ—>,$ ŽGîqðpیˣ¬àçkÙ u'¨úÏjÌJ4fiÌê>Òx à?±€œ.å|ÕwYƾ¿8ZMs¼ò¹?•rëo ——þhÚ€RÿG¨þy “t˜¦Gý_÷c\êÄeÂášü»èRXØýÕ„)@ÍÝ»5¯üƒJ_sM€ùKzWC£}{È^¾ÍÀ½_üb~h½:ßš*(à<@VÞÕ«)?â€üêˆz—ˆ¦üjN@T€Ÿ›Hˆú«Uj]¤ˆÀ«ðêêÆê0hw ++£¶ëö·ëxt+»k…ê}¢Ú.íŠvÑ@İ28l"3·É4BÓ+Ó`89|’®g¤L§1-(ÂøL‚|ª¹99¬YIßdðÂ~ÊÜ÷Mÿ|ƒm@sT¹£È7)‡(÷¹˜¯ÞG?_¸)è÷nšr¼ô€J Í‚\ô3ðûXðr+À¶he4ç6&Ïùï%%Tú{L¾ö› 3à 6+¯¡ƒ'Ñÿ¿cú«c%%/ À7ÿ­²‘òx“L:ÏÇí öôÆ7/ç^¨àq¢¡¹ €ù8cüœ›€[û¨ƒ½ÜÎ `è‘7ÿO0JôÇ Ø iEP–îÏ<‚ #"0¸¾3  \w;¸µ¸œ² 0naß?N)ˆ À(ðÿ”YBè@…l"Y™;þùA¨ì‡òÏ×F#Ôr<¨X£µ ¾az®™À®wªìv‚g¤b¹¯Lú“IPO”Á?ºÔgŽ2ôÿG¥¸ñŸ®Ì€Fúbüè;d€¬„}¹ñÃF:Ž4!ü?ÒD€KÄ.]âŒü¯ø>ËçBsû¡ Õý ÅM!¹ö7Tàé?^ôÀ@‡#ê":¡ÿ˜Ï8ù öqªûñ¹À¦PWÕ|»ÿôt]Ø'ú ïkø¸[Sðw "ꜷ¾;ïêoXH”m?Þ^˜zøÑÔ~19oþ…Îïoýaë•_üJP±pU=¶»Š@ µZ½ëß3PõOwütu?g>ÆF¡ˆŽ7úÇÐG(*(À$“Ä\&¢Žq‡V;÷ôö·íØ;Ù5C€À`ïp,8€¹ÀX~2– Ʀ“ñt>Ì}éX°9ÆV b¸p ·Ãœ @`*À´ì ƒ3àiM2ÖÜ›^éšQðÿ…q€ï›L7¬Dn +ÄϪûªü‡ w÷{þÕÕ¹ƒ< ß&ôgÉÿ&êñ¼s²S®†.€±ÀO¼aouO›É—Ù4¨dy”ˆ#°„/T}(àö>yI ‰5ì!üoG€—w—pa§’ø_½tùX{Iû¬×÷’|ýc«lïw<ïÜÄ .<"À(n‡€I¡ÍÅe^Š—ÅåÃsvp:ÉÀ’ ì1r€Y@™"G׈8¡l<ªœþ™. `ëäΜV  kÐO@½+@Í;jCäNMÄÐúÖ¥BWCCãööÐÜöãøÂ½9'î™ýcck¿nõ¼ò+¬®‰}©Ô®"€qj5$ôþõ†”_ËAhð}Lÿö@ˆ¨t¯¼Bèÿª®Æ‚ÉbØ£W ÿCë·¿…ÇàÉ2‚ït¨Ï` ?ÖœŸ‹ibA ÷÷{“ù<ä/ò úœ|ð`冧‘ cA`0ÍiÓh4¿Û¬ ®o½0à~ 7×tá=pe Wñ¹&Qêÿôà(ð! Ýk xw@8i ÄãûÄ*3ƒÄäL€V›²>0?|~²‘ƒL¬<¡?cÞ/¯õü’ +r=¸’Ý€\EÊ7eúâq<ÅtPç¿É™ì0µåU÷ä*ô 0ð}g©'×Kä‚°-›7“ ¦ H §Û°˜ôòʈ¢Ì/i?ÖÞ‰ÕŶ:yPÁŸûVz†ÍWBÏè˜>I§ß®à–x‘€ìàŒÀý`ö^!œlÎÇ€aÔÿ{n¿X Àt­-/—£ÿ ýé` + Àü3H/“BÁOT‹¹€›Â"ÐóßÚ–Úrse ¯)MÕ7}^úÊ=¦¥¢Õa׿ó~âýDÆz3!ðúÄAO†Ðçyׯk‹;Ûïtn1@6€¿MY)Ø9ë7()9–»DøßÞþ’üIëpü Ãßqáq†¨m½©ôã­ /ªyþ0´ÿ\UâÀNÁ„øwìsM ‰A@$AR²€”dÚÈ0`e'°0*.€£Êa¿rsh€‹esZ8§Æ'ѫΨEtPõsÉïªÀ Á¿ƒÛÿp°`*úJ+ÿšÖŸdôçýÊ› `Ä\€t×=$iÀ¦0ºE!-Ńz¥ïrâ¹üN›**ZZ²ˆ¸e@¡Ì¬ïÈ_(ú=§ltt?ÈW›£J~Âeæèlºß“€gé1¬ÌJ|˜•õ!‘ðHìè¾ÔŸS¥Î¡’ù«\!ùç¿t:ÿä7ssdù­?|æì'‘þèœ< Ò¨Óý1ªÿ'!@(,Ô; ‹Uª¾â>a_¤&Bˆ¯®aÀÝ»5†»5ê‚õÝ»†Ö·ZÍ…Uó•vûöÈb `k0ñë"¯¼R)`ëߪH\Ýõ§Æv ÿSjôù ú׈Œá~NÎ}žЧÆ"*?Fÿ1¨{µH(ÿçž~vûÛz<œÎO'eþ€tþt2‹¥“ÃÉá,½ÉüÁáGpO€rúA¶¸å àôÉÓJVàtðZó»ï&cÁßrÀ£ÛŸß~tûEª=m‹KÄ|a“Bz€î¹&…( Ÿ¡‚ˆÙ$¨>è÷kkËk÷´eF‘àõúª?ÍÍý´ºÚæýDä¶¢ôdb0¨(øaä&ÀA  Sr€v´ÿ9MÍ›Un(™õyfgKfKŽ™>hÇKðG»]eår» †›Øç/ßëèí|¿’KüÊ8{ ð[a@à>’Ðð¦ìTJ¾b™`Ž…nÐÁc€<ÈmD$`$#Ôg€ƒ+åB€-©=*z + 84Àӎ쀫ˆBÌ8 вÐár8\Âþç¨ê¿‹ã€,Bñ¯/µ~ÖѱÏ2$€)€@Ô +¿]÷êÿ¡ÌI#‚ȱ@Ùø¢£´¾ô¹m¨ª" +ÐÒ’(Oœæù9 С4èøâ™ Gãã'£‡±l„éoytô,s7¯f' qùm„׻ݯ'½Hd}D`™x@#·  •£ß5|…0¢$þ‡B½!ñ‡^)šÿ.þeô¯CÌwrö“°"þG€Ä4œfì†rÁXˆì?³ŸÝ*C€Kz‰ ¨AÔ껆š;}»w rÞzKï/œoXHl í<ŽÇ§~´°0±66¿fXõ¯å¤ + +^¡Þ/‚ZKW ùÇ0À +€Ÿç Œ­µ¦Zç™%À@¥ã<à¢x_…Ÿ"æNÞþ6{ƒfV†±¨Ûè6 Â00œNŠI¾üw¥ÀEÿ0º¬<€7€¸»ÒÓ‹È lþß’ôÊß²ðù ßzÔ–—G Àê»iêé€Î¦Ü à˾Àþ¡@®dÒ' ˆÀM4û«÷'ö‡ª9>¸ÚK¯«cÕˆ bàµ}â;'œI ¶±D€+/'tʼ ëíàV±`ÈŠA‚N, Â'}ÌÚÛ±/À3KøÌó’|e£«l•?Œþ!Ž62~\júñr*ø ýÞù‘×þMö±ØŸEáÏn¨Jñ2<"¹CÜ.¦ð{¼©)~œ;b&9ÀCoÀ 0”±ì+Ù¢ x%`&@ òË&ÀÞá OYGÀr5}‡lûãÖõŽóŒÊ€ +Ž +ÿëÖk¿,‘ŸáØQ‹î‘ºçÂôÚçb,Ð(ûï¢ü–àùÄÄ+*[ZìH¹áo$#”ÊQÐReïo­ý»` $Žܤk¨ËX ˆ>À²0 +^ ›ÄÛˉåe¢t÷£Ä‡l„péHNŽÞ£N¾â'î:ÿ^º°ûß¡­Õ?gÿ8°ó—}Ÿæââb³³¸˜Ð¿˜»ÿœÄÝb3}ÂYÈõ?1³Ê,à©|žT©úT¨òï#Vò³»†ÈÔ[¿ž÷ºæìÛDè¸ poaáG“ókæTëïG^¹ûJÁ]uŽôò¬?QB|ƒ5)ðsü_j,µ¦Ž¬¥rrð¢†1¿Jí÷«uTÿ(€€8À‘<~+*ŸÞ¾ý-§3Ó]ÓÚ fµ3ɤõ &“ÃDb½ÁØ€ A<⇵@Ó‹ÿ¨öçNÀô©ézƒ×~òî»éX6_ì€r,å-Ê%ì çf@Äyè×r?¸ÖóAOî/÷ñßô{@µ‰Ñß'§ö‘_9|¦êS˜£…x­‡{eŠÍ+J}¯×c“+†åv!/s8­bO•ùØÿ:9ÐÇ1€ðtÎz|V1.àõ´#,«mí/ ÀþËàïãÅ&¡¦Ð¾§ç–€úòr4ûµf•ô@ Q;0e€Kÿ+xÕ‚xqHöpâq× D¯Ãpayœgç2ÓCû.f?¨Ý·f€ƒƒxô‘Ì ÿr°‚ƒ¢dà  +²24÷ ÒÖÖ`¿Pƃ€¨ýw$üãÆèføOÐubH€ÿÜbo?ˆåw€çPUñ÷ --MöÄé!&#£Êá?¾úNÄÅà +ü +äWà_øŒlI˜X¾Àð`9‘µÌGÖèYú(+‹@ã‘Æ–#t…•)}*Ç þÃ>ÀG@~\Üú¯æ?)DùÜÊ‘YOï¼F·Ø)¬ÿí#º:s]q¡… @!æbÿ*]*"|€þ*uZÝWsw·¦ïÍ»?«Ù­ùUë[­úb¿«Á¾½m܉?~¿?ŸŸ˜¼¯_[ûu+² + +~¥^Ëá$ÀûÊ8 q®Ftc)õ*ŠýÔX$2¶€§ú…C@¥Â> ¢"¶ë`S¬ã €P×àíoûñhoofæätpf 8<=Ô'WbbÈ/6œ ¦‡á„0‹5¸6½ˆZŸà?{…Yq€é ƒ`L6¿ûnsópRàÿ¡è\>:•wj)—Ðö¦)Wô¤€¯Ú®å^»F—ÜèÔsPØw ´7Uç.…M=¹7:•q¡TúiO.S‘à{f¯ ‚C_g¢€%€I@0æ±™žsÂ1€ÇòGàãÅÃʳµ¿$@ù/›hÏÁÞŸË4òåU<Î…<ÕíTŇÞ+¹€›h¡zœâèø M\òKì·ƒ'Ð+ãü•0Ð4‡‹}.#`7ðÈP¶ïHWò`8›f“”=§pH8›ÙˆU°ˆúƒÌ󿣂ÏT÷¿ÃLõ?€ +¡l}`ý÷¤cиÃÀ?$H=ŠÿÓÿåtRD!H3½QÙ\Ï]ií󨨪üû–bv÷iÞ Q¦ì&*•&Çz¹ã»’«*`d À¸¹Ì¹F£Ëî³›èöŸuƒ ° +0Êmì$Fp–˜Àë`‰™|Øx:À%Þ +2¨õ)ýþ>çñ_ 럶2€ó~õ2·s`ÉÅYh!˜ç«þEøˆ.tm..6[,Øò û¿Rþë¨ö/ äïƒ  †áŸÀ.QƒáÎz õëÖ¿¿ÐÕи=4´¹½ú3Ÿ=ò–ˆ¼Oˆz“1Ÿð¿MˆtÿZÛ5œqô|@4 '÷wú2ÀdºÙÆÆ@Aüß·È™ä¬Á}è¿éÛÿÈ+x‡}âóz•íÂ61îï¹Î €±ýøç•x:K tÚªþÏz=³œtÌ—ç9v¬½ä%ø=½ê.ÂëÖüùJª‰bæ£Ó]Xý¸×RÕ?°¾2Î(¬>dÚtfÀƒ€|fÀ|²)n' & æâ°–g"$ñŸoj?Ȭ¶‘.€ÁŒP¸3ƒ€2Q‡Cxtñd\•Ûà]\ÿýqè»Äúß‹V¸þÅ. ÊÐ7‰[ùìwb€Ëø²Y»I¿LQúücÞRèÿåPåtåN¸‡ ÿn98*†ì oK¡Á×>? ]L@”ÈÌ@‹ØßqЗN£Üdœ9Œ˜€ï7pÉ €Ñ·™ŒžEàòۣˣgGëëéÃe÷G ¦|i$óZŽ!•"ð‡ù dþi+CZ^üÃþ?iÄg…D +ÁÐ (-ªÛ?Š!ÿ›'©þ·Šã¼hÿG"©‰¨úèúnßnßnÁ°{w·æŽ:¥þ»»µ¿õ×9úB³Þµ`2··/Ü»·°qrmþþÚÚ¼Û}t‘‚ÕVHk­­lô«×ˆØø‰¬Ža@Нýþ1bk99< €Eø"5€þ¢W_ETÓy5 øÖ7äññàÅ[3Ù]ÁìÞim0¦Y ®¤‡ƒ˜˜Ž¥‚\ÿc"sؘ^!À§ª‰.„þD‰2üÿä¿—ŸÌä€nïò£¼¥¥SyÕžNÏMÔ÷ m’äükèêÚè€ôdL=%ö>ú¨­çà# +9 äoût©ÇÇ!A¹<9È[Âât3³])€0þ3ðaVÀ—É´uZŸ¿uö:/  (iç¥Âájv̲O-É5µ—xŽuzJ^€/¡ÿŠ™9ék–êe¯¤õ @ñoðS¥ÏOu<ñú|$€€Ð®… _Ũß"‚Ü`û@h¡©I4„F@_§Ü¾¿ð`@–€?xv`P¦w>ÊQ€€CàL8®ÊŸ ¸¢ŒýÜõ§süŽ +L¨ ß_oè›-\SÜëüËØˆ=ðÆqë–¡ýãô4€Äiâ ·œT<õBà8^$òc±‹æ_™¥¡¢]ûéòÓ"bôÀvÃLø¿rp 8Ö à¬P ÿÏ ° ÀãËÜx{ó¡ÿèëõËgéY‰¬å¬D"‹nÁ¿ÛÝߟ£×rÞ4ä|Eþo `0>ÐËÆ?Þáä¸Ê›£N .¼í™ûÿÅgë…ç;uuEpÐEUl1þ»àÿóû‹3ø/€Ê À€ê¿HÀ®úήáÒ;CäÍÖV½~L?ß`íÀÔBœÀm~r,燭9cw +"©VVÿïs6a"Ò?wØ hð ÿ¯µ‚`/ JUÀÀH‘8êŠãììx‰ýŠ`p}æäÉìàJoºyXÃù>Á‘ý®XÐ`@°€dº9Ö¬ISÍŸ^Äü_ž&¨Ik®ü'c?ù›üÏÉà-v¢Ÿn‰ÀRµµÓÎ0€¶žk¹mK§óWéªMÃR€TzrE§@¶ +$Üsåæ°Ÿ Ý,„9h0Ó@€Üx“·Ü‰ý‚6¯KŠP ‚Xa€%À›‚ÂÖÙ’ÙN¬žÍ5]«xC ú&ß±’Ù’jOÉ‹ˆ8¼à)ÿ„ý™@1ÕÜ«Œñ)&>pvðh> ÎÚ@K\À;6 h…°RX" ‰›Ò¢[*ìPŸÚÄ`NI./?)1 h@Ùh™Rުψƒ8ÿ÷D ç=R&%ü +0Ç꿆ý£\çà +€Ì,€°VXïˆGhÓÈ7ø×¾¤üïð@™2ÿ_¦üå"±«„  È‘ú¢®ÎhîPx/q®§NPXÕPQÙÔB  |H4Œ£ÏŠ£"ÿTñ¢õ£¯gd€eFû³›£g7Ïb×HÁëÀÿ à8Ó³‰œå@]–?ÂHzÈü׬ÔM4þa @[‰¿u-þ²8”ä¾rqæƒÅbæêŸð¿X§ƒúÙÿbÙ:†ÿ:3*—}Åþ>¿JÝç§Â?QˆôõôSÁß§V« t¯ïœ}wG½ë €¿Êµ°04´ àñ½……‰ÉµµûTñ·¶úïD^‰¬¶¶BÜÏ Å€ÿzü|¼@„ÜÇ8`b/P¤H…)Î-t:¯jCe/‘?Ã>ì89=srš0>­ j‚+ÁàÌ€&6=< cŠìMÆ’IF“&°ˆíŒþÍèÿ¿ÛœŒýÓ­Á-<4àÑÒÒ +1€ÎYOµ$yymm×>XÊÎÓä1È[Ô\Ë»Fõä*þ€éÌ•>ÀÜêܶܥ¥¶9Dhú% ú@~ C>—ýbeà¾W0œÙ0Àæ«–K0 +`íÄbB+'z‰#„…ãÏgó”|z®„7 z}GŸúª¥¢àвüPðß絿‘õì4À þ¨ö¦² *.¦Ï™ -ÎBØÿô…¿ ԈቨjÔ~u ‘¢t£6ìî¾¶«®1ܽ³«?rçg5†Të[z½_ïjX°moîlo/,l,,ÌOLNηþšÀjòüW9ê?•â&/ fáŸ×0€ÕÃgØ)0æGþ0‚Àõ]ÝxT˜ëúÍKà?ðι·÷ñ­['g¦cÓÚt²£€H÷Ì»‚ÄýD@IJ`¢É4A?F4„ÿ±fÀÿß¼›Ÿ^‰a УC%Ü>µtêÔRî¬`TÿŸZÊ#°r*{qe%{}}q%oqi 1#ø¬À©Pþy”°:x CÈtàCÅÈåþÍêƒ&¹~0Œ•ÄÕ>1RAÀËÓ‚œhõÝmaŒþU_'ü÷T‡=¶’<_»Xæ0/O zJØPrìXûg/ €À‹9m(> À?Oî÷ +@×JÅž«œ… `/Lþ•˜°úù©è‚òç8U+¢™ 9ŠÊ?΄t§¥‰€¿^¸æìvýP„P¶Ê€Aeðzý`ߨ!€ÊF@Ù8ú,úß§{|¶Ut\æ+ æ0Â~‘ûãâ0€ +‡ëVà +¬pTHÆô ÀÅŽgpÒÈIÊÆÚMîˆ :‰À¡Ävù¶};qšÀi¸îE €{33 €ôîâ °õgk€5´°  |šË@rt´Ì(Ý2ÖhÔhTæë ì‰Ô×Ö¿^{(£‚ny—~2|‚‡‰Ð—Ä\à‡HB ?GÀ?èî¡^ýké?¡6ÀÖ¿¨Ó1eé߉êßIÕ¿þ?]qQ›è¦X¥âþñy®ÿ¹ÿï/T©T~µ:"Zj?V÷Áú×WcØ5 PïÞ¹kø®áïîRùõþb=$€íM–¦æ‰¬MÞ¸A À_P *(ЮsÖ+Ïú¿Éá@<È|Ø Ù[KÝo'¾ÃQ€5º¢ˆN§Ò£à¿šš{9ðåJyooðdÙƒìô€6Ó å?†M¿èh†‰`ÕÏ€ä£êO^K¢ü§ê?ŸNÍùÉ`ð¿b ¾Ü!úɾ“Ð9k#$okû”>â/¶e_¼¸~qýÔ +¼Å¼¶¶‰þû±A¦\¡ù£¾o3ÁâÇh(È \XÉ B±š_Q 2€w Kü§{Õ>nö‡±(Øã­ö• ùßî ›ªmÖÎ%f½Ÿk„霄©zÑì±öç¿à0ôþEª¯˜hâ~?Kÿ°ò1h§ðWfºûFúZBM-â#Fyx¦8˜q_°ašr8U€¿PÓÝ¥¯ÛÂö¹ þc j¾}€)€2cÙ³@G©HVLGeó_©üEð£C@¶NÎ]Íw@ÈWêÿ¨Èû¯àQ€ŠŠ +äò¿ƒ‰~˜—‡¾a¿õ`¯QØÄ2 ãQ€ÍŽYò‹>@y9×ÿ¬° ÐÍ[”hÀìh½ôb-Oéóýـ󋥪á¯[Zà 9}Ú­t‚ÄÚ¿ZÿZ%þ_l7VFÑÍœA„Àá€ËƳ géSø$V¿ÍµÿÙMÆÿ³›gq›•À† ~D0!ÿ5€Ê@HÚ^\û³ö?EØöþ0(æD¨ü×CR§Tt×|ÞÜWh&øwêõ…\ü«ÔTÿãÙ¨Õ}í¿Æ`¨Ù%ЧޭQß½³{éÒßÝQ«RTçÏûUkó ·‡v6o?^˜ŸZ˜7O¬mЧîCˆD +tkÀÒßÖùŒÿHÿLJBð«…*ʹŸZÓc.¢*Réxs±Ó¡ ¬¿~øxpæ~sÿÓÁl¤ ¦‡»†1äh m,?$ßL¥?ÿùĈ$éi·?Ü{ôù ^ð¥#oiåÔ©S¦ÎÙ›„ݲO­œZY_§3++K+Äò4m²ÿ¯4óy=Ú«sÛzLr8ÀôŒC0÷Ù¶÷nøoúzÂ7«•ä€ê 7À†An @ÀWm‚¨/Ú^«/l+ñyJŽuúLTÿÏz— `óyÂ^ªþ}ô*Nô…;K`ð̶³½$ïìOú‡´Òè'QÐ|jJ‘ýà~¥Ìû¯DE/+åaE&@; +!ÙÄUhòYªÿãMM< @»ÿË9ð´€þýa@tèê0îf’ö¶2SÏZA^4Øêpˆ€CªHüe³?î¼ã€NDý+Xø†õÖgµ™@þ²Í2Þ—ƒ!èÿ\þ+&@ž(ç@ï‰<öº÷£už=î À$€Ó;þ\ Pyž5ÄÙíôý‰€‘Õ \Ã`€ˆB0B™0`é#KŸ³LASVêéÜ@Ìcv”þ™*‹Åòš+*[èo#Q~zH¸$4² + Üÿ£F%˜n.Àë†x#>Bÿ2Á¿{4Cj9.ÐxÖ½ÌÒÿët©­ƒ¯×Ÿ¨};‘H4Š`àK—.a ŠdFä/ÿ®+•èÿ(·ÿÇ£ãã–q§Xúì`¨ÙÅ‹kÔ»5»wjô9w~VSs¥µõ‡Gæý“®{ ñÄöæÈP"þxãÞ‚cM#g5§õ­Ö"0’CTa!VÀVÑ +À0€ÞÏzý~Pð„5z–@D¥:_¤Ò§úßè}9øGþ?tkf)@œž™Û~ø@â?±t/q€üd>ÎÚæü|zvïÌÅÁÁÙx¸l€·"p*Ï6kû ç—m‹yëÁ:°{íÉÑXlËË(t,-ᾩǔÑýM™mb©À3ýé  †DÙ/× +@ÏõÊ%?¸éµy`È%àóy×­aŸ c‚X˜—[2ë¥gû>åò?ŒxÏTÍ“løôTõ1Oûì·–ì­w!À”ð_ÒDˆ ºôZéׇ ˆ +5Å]¨ú•Sb¨”ÍÏ)‡¬ÿx ĉè`¡J%HÐ +˜Äó-ñ¦–PS߆}® +ÀœÞéþω•@#À¼ó³`´LJû `°t+C2ëŸm¼x`ïâœöj”ñŸ ÅŠ¨ "+_Q » Ñ +Á¾¾Ù eÀ~£(ÛØdÌÜäUB7#\þK +0$s€Äb`%To´V¢^P8¸V¸í;þL’ðùÂ󖪊ʿT¶´„ìLÜŠ Üdvìl^Xæi?#ûþ¼`Ùøú3Ú€›)ÀæÑ@³ žÏ¯×¿þäD=6g%Åv ~ŽG Æ©ÀÿMJs‡ê§\ý €PŸ.N6ëêT<XTT  _ÕW¨ÜÕ*ØýwÕ¬ý£&Wõßä }}}oö©þé»wîr w§  ‡Jü }ñÚü$€¡ÍÇ/ÜoXh˜˜X›ÏøÿšÎó‘Ȫ?Gøþ `B v¿”Ê}¤b5ðªÿ1¿Z¥Â +‚b}³g4šÛÙ{ ò 1oݘIÓ± Axƒ¼ ¨ b#ÀôüÉdo2? ?‰øà“·÷>Æ;Õç‡îZ0uvz{r¯å­œZߺx±ãÉ“£ô†Ûñä7O.®ŸZÄt`›ÐÿÛÚòÿóNý·ÿzJ8¸@hÿslêÁ7yQ@8LOÔ€žg†ª3|ºÚ‹m¾žp˜u~ŸÉÇîŸo)\Ò ™À›kþû¬%O¯‚‰Àcµ-õtvZÛ;K¾¥à³2À.»þ´ìóÃF÷ûYÚ³ Uk.Û‰TL¡žoáB‹O*eõÈ@H6ø‰€ 8x.Å"•‡’”Ng™ŒaC{ÓT€ò&„è @‰–I0eµBÜÎd(a€bð¨ôìeúÿ‡AèØqð`TëPvÄÁúÏõ”-€QÙ€÷=à  ~gño¼uà“'¡ÿ‹@-”mîdX0B+y%€Ô¢ËÒP¦8èùþõ"H4cþL&€óç-çÿÖU…( 8âˇN°+T‚™Ì)–èŸY$Ö}[Ôúbà²Àxôp”ŽŽ^¨EFÐY†M¡Ô3¨ÿb´þè‰úú×ÝË 7‹ßmÄ4@{ <‰¯ö?K™Ù?ŒwŒ[²P,÷þ €Ñ¿ŽÝÿ„¨Eªb]1•üÅ…*t +Í}ª>.·¹ßOþ­7Õ8í + æa òÕj!ü쎡`¬õakëw×ÌS ÛC;CîÇö…©ûóæ±µû­Ê‘*ˆD¨®—‘ÀHăô1²ÿõ0ýs p¨T~=V©T˜ ú:ðràO¢ÿvf`: Ò'Â})H=`8ŒÅòc±æv Shž¹uq7—}~È:ÂðS=ÕžNï50€õ­­'Ÿ¬?yRûd½c={}eI,÷ d<ÿ¶î/:°W(3€Àp5¶È7Àÿêg†¨Qô|þs„üF>×ä ·ÂcÙpµÉ +÷¿—§ÿ#©ÚSÒ¶äëôÞ {JÚ;¿`‹à_Ë®?¶ükå s¥P¦D³ÈÀ?šÒ S²Ñ_Ù–Wˆ¦*öMn‘Ý‚¢7€¸­”L ²²©%$æç@`ÿ€rÔþ‚È÷|xeT‹þ ì@ ð`©œØRL€_öÿ)a@/ôÿ¬‹;Ù¿OGÔòŸXï¯pá¯È×h¨dö‡nË9NÀ\—qrVïÈ]K˜þ»A`8íR–º¥ p[áþ‘YÎŒãÏDTçU狉TTþuK –O‰hè¹BfCŽ*}€ÚL#`”wة俰龀øÔøìcà!Àúq÷Âæ» ÖA7õ¿9q‚hö¸Ý&²YÐç¼–âš<¢ö£8†ˆþ¿ÃïNŒþgŠùJiþc@¶êÔ1þsmM¸oî+î+ìƒÜÞ‡ÙÁ0Þü3 èSk:vû Ø·«Þ­©¹sçµ#êÖVàç÷ý°>Nlmn?Ž/ÌOm4L˜×.¡þÿ5€UudUÿ¡ðC¦< ÷Ó…® È€ßñc²”„¾Íâb§%àø¶/þÇÑÁÿ7Ž ý§y ð +/œæÅÀÁ`:­ Æ4ìÔÆ‚·†\„ð)äÿCG8 Ïd²užËýIÞâ©­£[O¶Nœ8ú$ûÉ“õõ•¥¶kyŠ @ÏÁâ^ÿãY^ ž”¡¶¶\èóØ ˆÔ¹9X,†ÁŒ—€ã‚ õèû½|UMÓ¯Ïä5åvÚ0.`£oÚ'f<žjå뙪m¶%“Õ•ÁÖn»þÙ·ŽHø¯„ë!æZÌ/k¯ÂŸ'‚Ì$NAÿw(¨?ßTEÃTÅTJõëõ<Õøq^\P°#`!Péà†ÿ€T„bà¡{°-¨‰+ªÿíBÿ—a~‘Dçdi:jKK/–èdÿž €Ü¸ØU‰_±HŠ‹V°ÿ¿¢Bàmt2ÿÁ¸sü›€'eB÷î—m û©öçÓ¦ÑÈ ÙÀŒ½PÿGx  )îÍŒª^;*}€"¸>  àÏó sþ­ó¼å¼¥"@l€å§ßØO‡Î¿ôþ)6€M¥Ç¿,ŒËTê~éöãfÒƒèwQ€£G·¾€ÊA àlbY8º»ûs¨&NT¢ox6X nF£Q—%ꌲ ˜ÏN3Ïûñú]‘J'I@‘N%Öý«Î(¦ò¿/âWEú"ÂöGÀåÿM×ý”þØ€FÀnÂF ;‘K?Lµê_ÍïçúûóS öÇÛCÛn"S ®ÉœV¡Üûý:ud î¿û,´æüæ‡ð¦¨æ÷ûÇ `0è‰ôa®EKÔÍm½„ö¯%P¥&Ôï¢ áÿÊŒ +ét^ÁXLKƒ±™[ƒƒ{[Xt[,N­äj3åÚlï_Ë]Ì^§÷Ù-ÂÿŽ'ON¬¯¯gç}@¨Ÿ‡â?ÏmŠ! Cz¾Äzz~Ghk[¢×}J<`)¯ÇWM0p84ä*ABô‚jk³RÍϬÁöV£þWÛ>5yxXÐG¯ýw|Úëõøé 7·ÚÓ“g›ýÿØ{ÿ˜¶ï4]tƱ{lÄTǾÈ\Ûq„qpd,C¨§S,WvëF$¦uS­e á®ãÍTFbéH€8ÒÕž5éÙs-mªŠªA§`ÝH9ÙK£T?ÍHYîFk­\ %•Ħ\åBN;™+Ý÷yßÏט´{¥Ýüê¾ø¶!Æ¥<Ïû¾Ïû<œ?0l4½pâÄwŒŒž|u?•ý>Xõµéi>c“*÷y]=Ù<ÚLÒ¸¢Ÿá@:ÿ’y"Ÿ¢âF?­~q²ñ©nBRJZ­ðGFGøØsZ6ZŠ Àý´gÏÇKTùuwk‘pAÍXZS]S›SZ @E7-ì³xl`j)u®èǤ¼›hcT`σ€üó~Å ÂŒÿ©ûr]¡ò£[3Øà>ÀËä›ëXìÍH À¿²¤Jy°I_§‚ÍͰëáˆò¡ŽÉÈH¦w"âCHÄÏ´Ö°w+ó?±–5€†s!Õÿ*  óω'€˜ÿ ¨íí1ø +úß þïì<ÞE×x½+ß_ùpˆ(Àx¯Êdk&–kžÅj¹g@ÿIûCXÿ_© çÙÃgûòì½ìþÛŽŠ­¾N@], 6)¾ÿ9Yþ¿ ذ‚° +þV*ú3h¼À*FëëoŽ’Ë-¸Q«./— +Ÿ¹oÞœ^)1¸vx9^Çwª—«—wâW¯ âW–¸À=ÈýcØ„%@, @kLOL$¦£·½=cÓœì?ë÷¿šªàú¿7w»~y’·¹ @ðVÀ%:¿øö'O¼AŸ|ðêO¼þbËÛÿ<ú\ïÜù㯡`m­lÊfãH÷üèç/T.¼üýr|{{»s´²]9t!ý›rVõÿM¦´0€F4PºÉø+[{ºì3¦ ¨Må„ícÚ”–¬á´Ñ¡õè0J‹Ž0ÍÎ@§}<üÇzà}=˜þ;FÒ}Æõz¦ˆéŸ8]6>u¢†«¦ôðSÃÃß)p§;Ù€ÿ¤À€s~É0M> xzÒ/un>ŠDúàé*‘ À¢L"¥H‰Gÿ_2œl¬ò‡ß‡`zrاMØ]8©Ò +ØA,€ˆ;Òà]õ™}~€ Üø8ØPv5{4­4%ñI]<&ðùTÝÇÅÿ9-)–ן÷#ñF `Dô¶'½jïò~j®­Jp¾ÂÀ•:ç °ÏŽN7€œ Hgàÿ ³îÿóÕOíóš `^³ÙÅc?ñà¿ÂÃ) Ñxžœtö²@;l =Ãáóª'$yx‰Ò¯Ø@7€àÿâ¼Æ.6ð_­ÚµÈÀåÌùAnÿw tmÑ_·®m|DLÀàÊÊ÷‡V††ÆÇ{Ç –ö UŨÿ-û‡DæBù_ÁúÇ)Ú?ìÿ•´_žüóÉ&å?q€ŒlÙÓaCêènë¹ö'ôö¿ÂCnPéùÿíg1 +¸ÐõˆAÍ÷_Ž]»v¹z£¶S].–Ü…•›Ó7K¥R¸Z[¾ ++Àk<¨Æ/b¹Øïà;`ƒê ÄãTè³=À•«Ö«–˜Þ‹YÛÙ¸ÏattôçS©“!ÿÆãÓ©w©Êÿ%Q€“LÞ}AÀD¨üÿÛ€Ÿ<ùÆ¥O>þÓËœ€¯ØýzÚ,ÀÈx>Ñó~úBöÒ%ÞèÝÞì®Ô/eÏMY“àZj + E¦ï¡Æ´Q+çé2âg¿Da ¯1‚}|Ë¡Œ„ñÝР;ÒiÇéáÓ #,Ž.þW馉«ÿ>úB‡qBÀõôÑsÿé‹GÒ從Õì&Lèœèþ€©¥ˆþ[€ÿœZ*ÖåÚlúIÜÊ« +UÍþ“ +²¼~솋¾p1æ¡?Ϫ}j÷?ê‹úŠa¿|J³}¾((·FHóiÒAÈ [x ¥9 ù^M"˜3ÐXаð´ØH"€ÖüíVBÀƒ£Ú€¦øòÀ^ï¿qõ˜Þøz‹XÅ&áÀÀ+NÉ$ð? )Àóþ$w|~ÜæÈÌýü=`¹d…§hlÔ»ëô1ÓXÄ +G j2Àµ+ ÏÛºl(ø *$}¨"€ç¤Óé¥ßµ¨/‚±Ðô™Í €;j j+ø ô‡‰¡Òüi5¾Ømh€¿÷±m ¾½ìêDy^ ÞÅãÑXùpllln¼×Òþ¬ÅÚNóø=*ü åý¨û<ÿ?ÜqÂ?IþCáü·a +À—6`¿ F;VÁ9ÿçÔ@Ï¢?6€ x&€T÷3À6àúºþôãTÒÿ,3œªÆoÔªÕåÒgîÏnzV +¥Ò?†kãËüŒþ—«„õµ+¹œÕzÕ韬ð…ø!ñ Æ¡À¼ €‘D¬Ýb‰žT€dêdåÒÿ­ÇîÔŸ~ù§O^ÿä·ùâÛ/¾ûöÛ—þàÅ'^›Õòâë/¾üòËSMýQTÊ_Ó5 6L‰§T.ÿwvnWº+‡.™L®lZzÿ&!M £²VAµn¶l¶¦]dÿZ¹.W{Æie-À2„ãG?bÀž„‰ÑßÑgüMúµ'èI=#ÄŒð qè+'úúŒŽ‘‘ž>“k§{žz”C€ÇKî òªÿbòËþeà5?;˜)›Z­A÷kÕ¯?L€PŸJù°—.¼ àŽ0Ò÷æ£Èd? ÿ> š_s ¬AvQáò ûÕÆ:1€§¹Ö[’E@g¯ ð’,Ê&à¯yúÜc*P%íî¬í'§Xâ¨8‹ŒX’¦‰ÐûÈgÿóyVb( c•ûØD×S™t£üçœ7 €[ƒ3Rô‹`Fk`k‹=aóÁ瀡¬ÀÅx8Êð?ê:‡û9 5‘Š`*Äc¡—ºíÀ¼¤õâÀ ÷Jßœ¿„E½f|Nëh °½Á@°‹8Àñ­Îã›ÄŽßèºË´áâààÅ‹ŒÍ…{{-ÏZè0X2±{TXëpöçyà,†ÿÄöÓÁРÕ?1.ù²0Zþf1ù³²÷ïm«^–öNÏê3ú·`¬°Ž@Àð×p÷3Tã;ÕÚõÕªo-w©4þÇêø5‚ÿk\ê¸l Žqå¯YýÏs9 $\å¤hc–˜•5‰:«ÅÒÎn…DkZRK'Lþ¸­Ý—ÙùÉ»/>ñKÞþgèŸx;¿|âÉÿõÇ/¾øÁËkŸvîòñ5þ9²Ù²}¦DÑq©²¹Í,¹€K‰ŸçÀßÄ0Ÿ0îÿ›ËÕØ[pïY0¦µGŸ¦ûW{û„è¤Ü8mì9íàT€>¾0¥O‹Î/AüpØá@~k…§ûèêGé¬cÄAŸº—žC`¦Íý£²/Xd ñl5"ê7SÒë]ú¯…§eÐ3£8ÀK(ýfº™È& xC8ÕÅ"€NQì~• à㬭mž¤7ÞŸl’Xæ ôý,ÄÖ?”¯/§î«éª¥ØÅ ¨é7´ ¾}ýþ™†PÉí¿@„n³†P)éÀX·K¾àCRvؾwx-/~-àåyi†e€Ýö=€Wlô$æµ…½9ˆ`|ã9í–(85HT`Áç˜'üïÜÂß¶ãÇ7¶Á‚"%Xùþ +(@x¼—Žqñ}Ʋß(™GþO? áý¶ãgï”ÿÿ„4=™þ·¢üÀŠ=Q~:étÜz.À;€V=oÿ+%€š@À â€trëæ0Ó‹0´ï Ò¯ÕjÕp©0ä¾¹Rˆù½աºSåþ?]]ŽÇÿšp]F¿¼(˸¾Êþè,pŒÅÚcÐÒÞ~˜Ö?=Àó3þã<µû§··^‡5–x1ð¨Þø«þ§—?øÓÔÚìÔÖ×rößÜøè#—éýòùá×Î_¨to£й=J {¡\–¬à´ì$Òéæñÿü§ê@m8`46µõ³ÜW…¿Jj˜òœ€`žž—(÷õ8N¯ í{Véβã4û õ•ûFžzŠèÁéÓÌЀ»€)íX•ñ‚IÜ„{~øÃ÷^øŽ€/Þ·ÿ––¤Â~Eùsùü¹½Ê_õ€MEÑçõ}a1GKQbÑðƒ½lýÑçTñs·Væ…0Á_å ‹‚²ýOO—[Þ  hb}bäñðŸû%†Ocà¥ÍhžMƒ* «Ki:‘°¥¼€w•°üã.ÀT½ØÂY-ô†¶ÉRrY'eÀá$oHÒÂýeXVú¡°³ @«€Œÿv¶˜áÀ™i;ʘ +ÄXý§ o]% ݼVüŽ>œ74ÐaÓuœuÊ>„/ÂâØw«=ÀnîAØÙ¤`€cŠš˜ÊÅÆn_0ØH%à Ö͘PùFA5 ’_ôûÔu¼ëøö@S† „+BÆ8ˆPÒ ×5›~î÷÷c ßÉî„üJp´ƒ¡_ üÍtÙj˜™`ðêߌò?§ø—Þ?‹Ñ Ћð +–E @wѳ‰¼eýÈ^ݹ\«í\¿/•Ü••’»^î]^¾VÝa + Æý±Xk.¦ÿ@_Mp/6`° o`œ,Q…LG»Åb™ÄO²€ @÷æ ÿ»L‚§¦:_|ñã'` +ð¢8\zýƒ'[^_;ôòÖî§Ÿî~Ý–¶‰$^ËfGzÞ¿T?Ô]Ùî܆ðÒù„)›P­nnõB Lï[lôúN§o¥ôíûé´ªû9PÈ¡ i ¤…šßJÀã© ó§ûŒå‘ÿ ×þ”³þ  }}Fz}« SÏ{O ?õÃþÓ '†O¼÷ \þcáZôŒ¡õOR¹Ÿ?'øŸÇ*@^ÿ^I5£ªJÀ0Òi±ÔÆ`$J T‚àŸ`¿”B?À' ψDÙ + ,©vì(èS€çgÍ¡Ï'‹¾–“©d!²äNERK\ø»—ž^Rf¬˜nJd3î Œv•@WS@“àK˜ÿøF³u^¶`! ãIý¼¬‡dØ×Rd50,>˾‚ý¾–T‰€õ:û@Èa@õ™:·ÿ¸¸Q þ²`Ç ¯²ŸÞ rÔU€ù š¶oH +/¾ûÃÑ-ÙŽNNN:û R"ˆœ™yIUýJ¨Åp%hÌ´€fR0 ÀÞxÜ@›À߀*þ»á?2x;`Þ~q(ÀÐÊPth €^ u®¹ àWîýýGyúû¤ÿîÿÓÑbíð¿ÕfÖµÌ9ÚÿÌöë }ŽP=c¥’;¯ˆý_Hùoµ²+€õYk»DÌëæ˜Ž åw0¸^*n®¸KCáR8²\5ÔÄn€;†ßé ÙszøÿXxEQ€øUñÿ¿»³Zb±X{Lס³† ìp:ó~hr€þÝMäüó»ÿéÝßøä +|ñ‰7žøàI)¦¾‹‹.—+{Èe|êôùÍ/¶·;;GGG‰œ?¨œ¿‘A~¿ÑoÃ#Hé”ó"ŸÌ (ì86ÂÜÐß×·/`/2 !'À[==&á Ѥ_K§áþ‡¯SO¢/Oû²¦‘ÓF#½GÙ¸:|â¢Û³:2ünŠÜN­úSõÎï_Úç¸ì_ÈŸÓJ¬3'¡±€çüPÿãä ‡ ô#%œ¢¾0(Ý]ŠÒ·.AåÏOúJÀ‚Øþ+úØF@Û*Lræ`Ò®¡L‰ ²”r/a+çi©€êt7þð‹ @õšâ÷h¾BøxZ£Ýþ"¯]`àI¿8!$¹Ü—ö?äIÍÀÇ"@bG÷§»®w#< €ÿ þíõn6J5(j;šÓÜP,„"òö$@ÍÕg§§(~X*ÀïXtÂ/)™üyŠWC_šnXÕ¯'"Û_]p€o5çéVì5‚{?‹¶Î i»Pôoq  §.´‚w¶85hðÌÊÊŠ›óÚÆ{C0È^Ñçö@¿SqeýÃ+´Š +°U-˜m9Lÿf3ºÿ@È­í¯-ÞF" }òÊmÕd¬¬ o‹ýßW/Ç/üïÔvj×p¤ärN¯¸£¥ðr8Ôn¹Z­2¸¶³ß9eÕYcÖœ>wkW®\ãÆÀµË×D [`‹åÊUËkŒ­‰£p¸£¿ßïu©~°pMp€ÿôñ»k¿|ñÒO¼Žíÿ'Þxã“oÐñÅG‹[®÷•rÏ.|±½¹Å«_Ì..Êš¸’켯 @ÕóÍF!@ST p‡Ê `4bý!¿§%-¨aÿ§MÿÙ€¿‰Q@LìüÇ·I÷8úžrœæÂ´ì €3ô%²ŽžÕ>z}}åòiÄ ¬ö­rÂðÚw€líÿ¼”ý8åý ý „þ NÀ>îJjJ@ž  ÞE¦ ÑÒPaˆð¿Z櫨Ôü¾f¥(w|Š3ÀïG,€ýâà÷k™@,òÓ§¬‚¸§§=0  íH" „ª8˜`S"€ ÿÔž àÿ½óÿÇÙ¸3º„­ ù[’\çCû@úe €yf÷k½&Di£ÞM4 ´Ã  ^ŸÁ@pZ ˜‘â)펀‹ƒ¼N§ õ?<xh*@[ÇdÇè˜t†¼>ÄEþ+˵ò¿;hßK îa:hv? ôg! o0¨Ÿ?Œ]=¿‹÷ÿ‘pØ…À&ÏŽË*X ¹ °‚¥À¶ðxû³™ ýí& üÎ>{X€Žmÿ[÷Öÿ¸°|¡Óé ºÿ:=næD÷¯å¶\ÈÜV°¦À+¯ðjÀíŒUŸ¹Éå̹ŒÎœã@ 7.^¯¹WÜÓ+Óî€Ðr»eÜregG¶èYW~GßH³ê­j°qTãW †å+X °X®ZÑÐé:,D³Àç9X¸ +ÀRä­O§~ùò˯uþòíÞ –Þøfý‹eßÏΟê9´=º¹¹Ý¹¹=[9”uU\Y‚~c9í0šÊÆÆ€£Qÿ iG€>3™ ayÙe*—]å²C¾¡þw8öO ²cC l˜}ð ;n%Œ#§‡‡Ó§µI‹ +‰U8²å¾‘Gºœ6fÃ#='Nôôõ­®oXYý€Ï»[–R- >Obæ/b??Á¼“8€3“Ì4à/€$ùÅ0–ÿ…û£C¥R”ûá!ºN•Põ£ö‹ ±?I7ŠQŸžû‹¨€9OHü†y šâ)€ÏZrŸá€æ ûß ;`Åx`48:0:ªþLó*ànà ð°¶öx—7+K°^3ÀdK½"E˜ýOлÀU.ó?Ó€†Kâè}þgç@ÂÊz°¾z¹nç=m Y‹ØpfZ ÿ¹Ä¿ø‹‹¼Mÿ {Sæ?UÿJ)€e€‡$\Nvôÿ$ï û&RÌå+7 Lÿ53ÀÆ"f_êý_œ.øœäü0ê«€¸Õ + ~‡Ðèc7ÿñ]GÒ.ÜB—Á”éëéáâŸÊÿUä®}@%)Ûh@£ð_Ài ¨¿ÐŸGÀ3¡¿“méU€$›ýaõÏ7æ AÀQ°0nñÚ?]yEs°O4ð(òÀ—ÔV +0 x`ÎLøKùŸJM` 2À‚Ú¤sÝÓp°ÏHù×m+€ätBÐlÐyÏàWÿ#¦S•¥–"Ò–ÅwIíE0êû´9@òÿHN°þ‡+÷ìýý³¬mÀn´àÜ]G 7fÔ4Mv’ ÔöHÞ@¸ëh€y~Ï”l¾‡ftT÷=›­c’~9ÿŒÞ‘Ÿû"ž§=g^âMî™nʘ ]” +û5Ÿ?pQÿ+—üƒ, ´E6¨Zÿ\þƒ_“ gÌxp¼‹nw5º +v8®|h,L cÍ(ÄÖ^²“ûs˜Ç­­Tñw´jõ¿Ÿ¢ÿßJ$S€Ü:&`&Èè9eà«^-ÿëY¨W‹€ô±€(¶€ÖöŒ‹ûúLL{É';úGÏÒ«>|¸Cwv¿Èd ÔÿPÿlâûàMþ@†}€nô1¡ÖWDø/‘@ÖWþâö+±ÀÀz[=ˆAA³šuW®ÅAþãõÚõëÿf…»n€åÐrز¿¶Có ¾sÊ +p…gqìÄ÷ZUƒ &À–ØaªÿÛ¯ZBÄküÉ”çÝÍ¿Ï1þ,MíNM½¼5õiçÛoüø÷CÜyçÅóÙ/\§Oü¸‚DàJåRå’©â‚€‹Š÷좩œ5öi$@Ûúkl²0Ñç«çÈÃP›µƒÜ0~y€&À­†yOìðL$’DiÁé•ÿicÂD/Ïuú‡'Pý¯öYxï…Çð kß°IðÚÒrŽñ_£¨ûœ!?÷Byà>ÕZ2Q@NÖï;Ùןÿ©ªÃÙÇ€Â]ÊNàP‰}¸ô§Ï"D¢àÜð!;ÈËXü+¦D DSa©•?ïç)ßÏ ÿ¾[.EŒß¿Ÿc1tfZØËŒÖ’UDQóqj±]m, PíÂø‡J|i`Èîÿ@÷DZ ‹àÿø€,d‹³ã¼ ˆArXÀ^ +HùX 8áƒú/qc-µLÏx¦›3ø,2À.m ™þ7 š¶·ö«&ÌfÅ–†ò³'ÐçŸðy'¢tKÍD (oJä~ ÀçÛ‚üè@ 0S¢0ߘ¨HûßnŸž–á?çñ 4è¬s(Ð^_}P&œ¨mŒ>kæ:ÎN:ópˆ¦"ž3¢}Wt AùE2  +ü+ôW¼Ã(Ú±Ø]`— +2‚õŸôþEìw¼;Я‘,tŠ+ØAÊ€U+„€9è÷Ôk6çÿ;÷!ÿgðÇ… ¿ 3ã¿. Ëéëì &€Œÿ¼ñ/F€„í·Ñô¿-É€XýEŒ­WиÈà¶fèâê•k ?`ð½Àé•÷PiyùWáññê 4vXß9Eõ¾YÖ˜UYììõ®^‰/[ °XÚq¹¼<²,‡Bþ…dªÞ½{€á÷Wh =€—×Ö>yãø3¼3ëª8>úâÐðS‡ ˜ýb³rèP.€ec:‘¥b›*mÝ‚Ø2H¤ +PÎÂ*Àч’<¸ÕP&´…À[M†M€ŠУ·ä¹Z³@‘d2šðï:Ò "‡É…ß”(§‹Æááa*ÿÁ F^I”Ëô²×¾ Ž€Šú[XÈ/,PÉOþg>Dç<¤ þ~ÍȉL:vÊû½a ’aú,ÌKá1ßX8:ü‹úJ¨òé/ }æ&PrûJ(ÿÝQøàñp2*޾¢ŸCá‰òþ;é d5{ER)N+ ò•”®Xoã€à?Ï6÷‰¾¬؇ýšlb ƒó—˜ +É›Dø#N쿉‹ ¹í@ßÏ=÷[tI€#7ºë¼¼¿1S·Ûz:œ¦gì"@ŸÑšûóXÄú;ŠêAM:°18ØH –@p´ó!¼cgÿOÛädÇY§×™œˆÜO»—ÎØñkðËè_f- à_ÓüÛï‰þEØ_£ùÏ*…ÿ,ÿpœëÿãÇeµIt j'àøÛc0°AïTã½Ï>«‹åtºœ^רôË`ëQ]ÒþŽl­­ õX@³~³´ÿþ¹Û Qõ£4õ«þ”òÿ•ÛXü×+—@éèsÄ!ô™X.“³Z ðÓ‹?½8 ŠR*…{ÇÇ— ã§°"Ç`œÛ–+†vÈ ÑÐ6dKàšáʲA²¯Río ͪËí¡åŒO¾¼u€á÷‰ÿР6™ýxvjmí›ù~ºf_qÌΚ^è©lonÏÎÎV*ÓùD˜Ÿ0ÐO÷Õ ž.dü¯mšôëX…”Ÿ÷ö¤Ü0©VÁžZ0íøRh 1“æ:dLÈÁ‘v¬ö™èk<``ÒatŒ1– £lJgË#Ã==ü:Ø÷Þ FS9k*›>ÿ€îW[xê?ÿ]õ/ôC÷çüUžJÿ_õ÷üùûéDŸwúµ @g¾È+þ„æTÕSù C0 +0VŠ Àƒ°ô ¡;ÀózšÏW(á–—íØòÞÁ·¯ +àõ‰Ë›¯à† Ï÷*ï{üàœäbÚ®˜€è¸”8ú/%ÞùÊ!Àãýÿmk¶–*¶ˆSäÌ~ûÞ !D¾ Vø&’t'hÐýZ¯lU$:i#ÈïÜq-} ?¯Ê€*ìY¸ñçvÑú øÅ†ªÈÜ“VÁÊ4Le?úPT€´lTFO:B¿3ш»(â… ï‚(€ ¶öoßKùµkÖ¿bè;@¯žy@×¼ +4Æ «k@•÷8:×:÷‚|v‚ @X>ºæç R}=6F €êoä÷èt:õ¢ûg‘þÓµ?\€tbd³M§Yÿàúöº™W 4m:Ͼ’) ÿà·µ˜}L™+V}†€ÕjÖ#0^Û¹ñ¯ÿ€ÀÅÿv‘7ˆ£,÷VÇ-ËUé0ˆïœ:Ÿ³ðžì€ Z`GRpf €ÅÐn±,–çÆC¡ÞPh¡%uðF[Dè4µöÏ»ßØ~ÊŸo¹ÞOÌzáï+•íÎJ…(À!“ÉT¾…šºO‚ýúé½@©ýÅ'8]6A­ßg,S½¾?&P“ 6¯ 4YjE=úé[ÂŒ UÿgËiˆÿÓ¶Cú½†lÿ83‹EÇðjÛ§ûFÞë!¾A/Àôèß¼GO^Æü?ékñ/ÀúØÞ¿@øÿ+ç¹|>´ÐõÓ}ýH2cðwz9«V4^tíáÿÁ?Ó€([ô—JDJ €y¬Rù?$k%¾#Ll!#ßNfý¸N¢î‚øX‚D )¤ +n• äö¸Õ2àKlİåXÿÅ `Šý‘À÷ ›ýÏÞÿûSõ1ÑOÚ"zHßáD€î{“gÞ¼÷Ï0xÚM¿ö™mþlˆ@ãÄŸ9ù‡@ÿ.4€jû@Ô ïŸUüóÈkk«™h—›r¢_­ãÇék6ç`Û½‹5÷Ý^ Àv´Cg;ÊÐߡÀ´dþÏG€ €™ètú\Ž»ÿ·•ý¯•7ý_‘›V¶|å¶õ6ÆXuTøgô·­ Ìa£, GÀPE à7.^¿øÓç.®)ÿ~i¼¦Åã†Õ €iàôxÀ¯6Í®Å × †kX #4Nø¿ÿäÿ¦PqÂèoÊ}>…°ó—ÿU¾ŸŠºÄµ3™kèÒé§?»ìã+Å‘Çÿa¥ ‹¡¡èPi,Z"€ÿst G#%!|† u.v%.˜*^/L„“¥¨‡a'€«Rý/a0-  Ñv‹®m€e€Ì6Å pW†8€&ÙÿcLÜœ­/ €ï!¶’"ýóq×?I„ˆù€8s;$⋤NÞï«ý\–%8¨T+Ú@Úÿ¢%Ùóÿ…€ý^ÿ°ª V´§EøÞÕ?b ÐÖñ—Ng>¡QD<"‰À°7¨ïf ûv7vüY³Ïû£¸Vá?xŒ{]2í?†ÿÎÎý`“wPwïêÚb zÈ´f¬œ§½êu³-€ˆµaPÇ€f!›™ +ÿu^Ðårè¨MœÔ÷"ù“?ÕùzýíÛÿ_áÒ_—Ñåˆ1 ü¶°Zè;e,VËrüÆ P€üÍÅ‹Üp°0ÔØ&gáŽ>c±@l%hüOO,ºŒtÿi—ËÑÓ·ºŠ ƒcõ½¨Ë$Ö¾ýàÏ-ç’çØï¥?:þ¨õéÊI¸¢ ÿB^Eyù¬lœÞ¢7ö†ý^‚ò1Ÿ,øàˆÎÍ@ÿx€{HÜ0Àí!.þê@è°€[²0ˆ¯ìPýOE¿¯@e?ä¸D–Ü…†ÐôO£û;3s’WºÅá¶i @eïÃÿ­Ç¤þ§ß}·€ØÃNclQ; áŸwb"õNøÞd /‰½·(½öûÿ§YÀ:%ŸÔ&ÿ̤ü‡óÙï·³ð† +Þh\l(dkPœÒ k“ÙÑ”ä(¬ôÒ \”!´Ì€ý,àpB (ÂELþ6æ‚Àâÿ¸tÉòßq¸ÿ`Ùo8Ï]#À¾Bþf: €ð¿“¾ ½ßÿ~2 Ô5uÖàÿüïèЉîÏfµÐ +Ø7³p.§c€ÛšPÎj•øŸÌ+™Û„üëm4þq†ä/ˆer™ ÿžâ¯ë‘Ü‹ÖÀ•Þ¸Âÿ¸xÝ=Ô64Öêí·Œ·íÔNAý'ø¿_¶j«ZàÖ{]»r•Àß@àÏ€xµ:· +}©¥îð€æô§iwm÷›,©¼óÅâk—fýðï*›ÐTU² ªÿ#PÖ±v—Þ×ÝW£}lt¸²\ÇóÔ¿‘ ”é{G𙀰ª†]Œô¡}`âýBþ8mZD oâEÓÈêêªÑdJþa6˜¥×ôù·Ÿ`€à¦%éǘyÿü Âèö¯òNÌÿýTi¡À«Äœ~•Œ@_^øc£¿¨4 tsµ?$ˆ_ŠÂ8êF3`ˆ#Ð@G Žªao'^ħðÂ…ü=\€&ƒRn‚½ÂÓ…‚Û³T(H€ªÿ%äMK2gÌc0¨þœ k À=‹€Qð?6gë©BKªÀ-"RûÓÏͺÿ>ß½Þçÿhð=…ûw_W‘€ÂêÄø›d€j€/x¬/¸Ñ>ϰ´7VÕ`ÈXnö0@ €Ã““^8SMXzÚóÒÌ»ÊZví² +¸gýG·µøB$ýHN  +ÿ“°€®ynþÏ‹þO¤Ê»Ö­F`ëK£€møÍ^Ä2àܸŒ!PÞë¬ý±¿ƒjÿ£ºÖ£âýÏÇ1m 9Gð@Žê{*éõš ¶ûÿ¬U 2úLFã^üÏÅô™˜Nû ±ë½sk,×Þþ,Á5/øÁÅë¯X ‡z-㽆ªr +æ&@¼z +k°°X-W®" + *‚ \þ[À®–—Ç«ssÕð²÷}…“õÍô~P$`kwvwêü|±ùEåý/6Ïÿ÷󳈨T*J¤M®2Šú¤›Ööö°]€)áèƒ%_9­f Ào€~¢ñÙÞCjV`Jß2i€‡ lþ»Q +þá’{ѽS´„k·€¾ZÄØn@a?¦^‰ÂwbŠ@µ.GD"b€x`~*SKn~Ù„š¿BИïVF|Ìò€½€v ¸»Ï ð±·îlŽv/ø‡bKFUÿCê‡.À]c~^™D|©Èˆ_A ,p@yK šLÏ0ðÛ§• \þì¢`¿¥$R Z+Ó ôlŒß¹ð0Lâа!‹¾7ŸT{€ÓЃ(⢺víȈnpqVßÿá4cp‚®®»AYÿ»Ëê?Ž‘ìTS¢=°ì¢5€©<6þ|påá¶q˳1k³€UýƒÀQný£`¶™‰˜­æ@Žëÿu‚†}&z²ð€rËdóOoÕetrQ…}«ìZT+ø‰}å9v@áotI^0,°ú¯á?—êj»¯þUk [–‚?‘¸¥¿Inbžê*›¸þç»Pþ£û²`,;†ßv`àx¯'AØ_Îf1ÿO'þø •›pŸGò_ÿBhóÊò¡1ÁOù^…Rn‰h€›‹Ïž t`Røq*0aÏÞ€Òvj‰÷4#Øœªt_*°#€Ò$'„$“~hÃì„òâÀH4ºô À¨ê(Ù\w“ÿÏ´RÀxÚ.@»,øm°`ž€JR/;Rÿó`†—ºeã!446véþ’(©÷M"D„Ê}8¨ß»òVñÚ&ÀõE"/?€\›ØEÈGÖ?Zõñ?opÅo‡Å?Ë6`ð‹†àüàÆEÜ·""@º˜‘<“°‡€6Û$Ì€ÿ2ô|ÞKïE!²t†9ËK|Rø’ $óµÈν˜÷+-€´¸þ§‡‚’þШÿ·š¢ÜXÛÚÿ¢ Øb{¸ÎÏ#`®×ËÜCÖŽÚÎJò_ãSl´Â +ØlÎå"„Òÿ6Ëùõ9ÜC\@ +ünëxA€á?¦Ëdb™XŒþ)¢8ƒ3Xsz ØC ­X;úü° øá‘*&˽TÍ÷óéÑË;µø©x5~jÎb5X2ø>1 Ïþ¯a!àZ|ÙP%ðGˆ&Õ¶Z•bãõÙ/`ïàØ#›/Ÿ¯TοÿÁ¡Ê¡ÊìâêyÂVô×Ù¤O ]3øw-º²i‚_†é2Õâi­ÐÐðø>¡²öMWø–û%L"(”n€+-Ÿ£#0âZL;€ø ÇHð_†;@ßo{Œþ®,(Àçí}{”` +hƒøùiü÷cÀ`'Fÿ¸³)ÀÜö'6‡DÈò?OH 5çÕcàEŠ^> Ñò–Æâm@¢Øp«À 1Ùį°2?¬’~6 öñZߊHLüK4PŠ)€Š„`‰h€ô€%b³Ò8®Ytvjn€ûã[àÎæÔl½^¸ b„ý˜v¤~.¦€TüOD!¤ó›>žPÍ[> à’=^hDNKñ?cŸfü×ìä4hoZ¸(M@?Âæ¦Å Hv= @ÀÆN“NüöMø~îv? >”p£`WK€âÈ&?MÜ ÚyEP÷€PøßQlI÷°P ÕMñ àÀ@ð9ûàÊPÛx;×ä¹fp¶µÕvô(Kù¬“ñÿ±·Ì]#PÔÿ·µ€õ!å7£CŸÉdý¹£2?Cg®ÿ‰ èÐøV܀蓌n@^­±0dׯ_¯ÕŽŒ/[–C½½–åøN5¾¼¯BÉomï•=‚˜õZÜP½ÌË€§ªqÈþ↹åqÃò2ªñj­­Z¬Juûðàhnjnneÿ°YyÿOTˆÀ èAplL›]&›n ûaºç0¥ËeYö+§ñ\VâkøŸhhþe%¼Õ MÝ“ fÂ&þ„>LÜ9áÔ‡‹l4D_0â0þvÄÈ««ÃìýCÀåzŒðÿH ÀîIr@Õÿ¯ˆøóPý³üMº‡X@Þé—öÝm +À¡@~î€ððgýq/U>´œ 20ä† `É-ýaDðÏ@¬”¼œ„E€0Š~ÂýÛÞŸ‡ÿ> #RR22g0=½— Ì*^_ï–@ Q¶íššíš7`”ÿ÷>F ÀÖŒêKZF@>ß«‘Ô„tÿ#ÉhtÂ;–< +šðEÜbP(;€˜là ëVþy”@²íÓ3ƒ*÷ýç ßÚ0ÕQò?ÕÿgÀÞóâÇø0€M÷=ÝYÛ_vôÿ/NâHÑ›ng !ÅÓHðÞ.ØœoØÿÊ + #½}Cký+üøBþÇ.€X` + -luî8k[u¡ Àx°òý¶q as.°SE¿mo + ³Ößb³‹·©äÇ´}zf9Dâœã™B†ËÞþ·ZÛ­ü˜þëZ‰mÄÄèÁg3P]ŽIC»A"aøƒ×o´ÕÆ«ñ6: ¯žÚ©ZÐ8…F?<}Ëv«ÅbÉXÚ¯øWéþ*]úÓƒsËÄÐ/WkôQ­}V¨$÷4˜g/wÍþèïÎW¾øböÂMÊ`óoâ`¿, +~¥ýã žã—©Vô›Ê.<@t€·Ž¿²ïiHý÷TÿÜ?H°ŠOÎti,s«¡lJ÷-fþÆ‘žr߉>n8~;Ü—Ù?.?¬oÚ£#Ÿcïü\ú´ÿáÿ‡€Hx  ßïìàDߟMEà¥O~‚5:y±ȃµÐÿ¦dø˜Œ‰#ã=tnñvÃÛ% X4À †âU]ØëçÊ?é÷I ñŸ/I  @Xé-`¡°4 )à ³€™“ntw«!À¨ZœåE€¦EÀ†à±w¾¸³9; +ðz9MêUß«à:nx@`åÀ{ì +<‘Š<ï±èÞ€nb†—ëlþ6]ð vv´«A?(À/6TWâz1Ø×°«4 ÑÑÙ‡² ³ulG''ñ»/@÷ôKÓ3ÊK ?hÚ?ù ýd¿€îJ‹â×ܘ'ðçîQƻۜò# þmuîåEhMÕPª€] L± À~qehìY€{fæbì†Jÿ€á¶uÆ~þÐåã«×´ÿ}€ýr¹ }’á5¿:þz„3-Àš!ï‚Ð¥9 èÏ+ä`Ì-ƒÌwn°€ð¿vÕ#µx[œNÕ¸e€*«ýç,Ö˜«…¾î€¿Š@-nˆW ËË|¯V«Åb©p³Þ}088öý]™ÍúÂt¡ç|Ñ™½”øÍhû¨Ègw˜\Y“†Ó ‡€6Jt5ð.³!Ÿ–p‹m}²ü ÛøðlÁd’ö¿IÚÌ4L‰Æ÷OHkàüCtœ>aL CûG/¤çÄH"‹Ãð¸ßµGGÞE¥™ôŸCÌæä̃äû|¦²ž8óÎ…|Bg?Šÿ| àúûá[Æ}Ô‡±>üX Xb?`œÝÑ¡ ¾DW%Ù ,Á:0Ì«QÞ ‡™(NÁ»IDãa‘Ÿ*`þ/ BýH@a)²Tàt@ô^’ÀÉF\7nÊ 2Àæ8€ÝÝý³pgssôåúɥ’Zˆ¤|?Oa Iõ?ÛFßD&Áÿ›<ˆÞw(ÿçƒb?¯ÕüÓÓ  AIT6€rRLÀ®åë ;ƒ'‰À.æÃ ¶Éÿ0‰ßÎðDÔAü§o˜Ùe !øWÖþ]ü $+@àWûßU@RÿË 6ðoü’lícš*Pu° ÐEßppåÃ1‹•Ýyö½plý?Cà(­tÁø¯c Àz`Gþ0ÎÈ!P¯Ëè ÷u>Ç`\u:+Ę3Ð=6úLrHˆeàCø'^i’S€Ú#ñÚ©Ú©Sê5ªükñe a?ªü8¾#fi·<Ûn¥KË8•ý|w Áj|y®V7ü‡—«ÕÒr±XHÕl€à„oÉÏqgmñogg÷·‡0È^*'ΑõƒI¯ï›ˆ˜´>/êEòoâ¾=4 MpKÛÿ3f øW eAY>-+?3‡²|!?TN]#h€cå¾ÁOšÿý?æêÿQ€Ï»S°p.ÿ«eÿׯ|ý,þ£K'—ÿygˆè@(¯ÚNVð À‰)"°àç¶}8);È@g_ ŒÑ~ÈeC@è£îRiÈM×¢û(†}²G-ùþýš=pÑK È-_!UJ±,€ý‰D–––° à^Zb?À“ 8/»àÜ ~ÀÊ ˆ3ï™<6€@}‰ð_‰R?OE&0ï    ^ý{“à?<NNxy-Ðçy °Ô²›I@ÈáŸûø|ã dö/aÀƒóƒ¿°kÞúPJ +€¬Š ;Ž>œÀJg­cÒù“<<$Ýž3žAèÿø?{°‹Ã ®þ ÿ¸c@Œ€Ôä@|`8ʱ€£wy:pWÖk÷€†%€Fx ønCø‹•ÚX¯%¦Óïo¬­½%Íú:̶·@dæu³9XèìØþãšîÒ£æÇПð?`‹@úÆz%ý‡FôX{Ÿ™D˜3«±€µ}{þ, ó ²ÿø–™[¶P•€¡:gÈ޵[þc–¹e:Õx ×sUbGª„—‹%_‘˜ùR}긎{@æÓóÙó›ç‡ô÷—]¸th1{)qëtÂèH4"}&hÿ®. $Ž´êÛs¦`¼Ü`üEÆDÙ‘H7–›ª|â8eãÂ~ЀlšL GùÐ SÂØó^"1Üã€ð¿œIcò/ÝÿÏ¿ïÙ£" Šçüšý¯È¡ þlì\bŸ*'‡HåïTÉðúC~”ñ^Ÿø³#`˜þ!÷o£J(2Äö¾HF> ¤€+QÉ û û÷CȆ@D'Bh-@ûǶ÷h –RÑBý€RI*ÿÑ&Yà` ˆgÚ3£µ[€<P«€*xÀ¾EÀÇB”w7™œ$*£á?°·ó1ˆú’ÑÃ^Ÿ÷M¬KLD}‘HèÝÚ@]1@¾gPõfÏhÐ?ho”ÿ›¢õå?w¦åÿæÕ"ÆæCxo„ÿÿMêõF#î%7» ùuPë ŒŠ·þ…hjvÿ°»ø^¸K4¬tªß!ÍeZ3úïß DBp×]t†Jã]Œ0|ÿ+?öª"6Û[æg̼ +X7¯Û`L8 †ÿ^5ûuhÿuÒîGÊ`@Ÿ‹ÉòŸ.Gß"g6ÛÐ ÈAJ`ÎåÖá'¨‹™ ¨Ó]9¥Éèàò¿ÆÛÿU\ÔN-Ð¨Æ W'-Ëak;È †*‹ÿjhœ‚ V/W—K¥"‘òÂ¥úÁàAàÞÃtÉõ„é’é©÷gßùý;‹³•w~¿˜]$Ð<ÂT›Ê&T‹‹Ù,ô€ +ÕÕ‘Ø[€¯¿Édl|µ‰‹~yúþeVÒwȪéAÙ”åo„òßÈ‘Ä#Ã}åÓï­ÒKyï½a#£?ãÿ×ã-{D`“€æœ¿å\¡¿ÜügÙ?þ…~?¯„Ü/8Ït _n ð£ÿï åýÏû{ ­ýlT?_tÌ•l@¬°é@zwINœÀk>ó€Ùrˆ 8Œ%Ã$â¹ Bp‹P&!ð)! V +Øð,ñ:À [Ùщœ ÜHbüßí”H€¯Gà‹; •º0€-€ø&X à‹D'&&¢I*ýß ˆb%àÁüÕ•…Énn˜‹ €à>|È`P’€fÎ_Tòz,Î75¿‚ ¢È&Ìv×ÃH°é&m:ÛädÿdÞ “h7œ€T´‚ÿyíR»Áj€yûüÞ£ÝóÁn òþAبSá;ýft6v¾DÀþóÀX¯¥=ÓßûÒyùãÿÀ1³í™€ÍüÁˆà?§_7CógÍYEõO—º„zVþ¡C [1ºGÇSBzD™­¹Vˆ1 ° 'ho‡AP.ךãý€Xu§VÛÙ#¨ü«ðÿÃì'gß#ñÀ~{ÆBðo%;šcÓß87jñ¶*]©UÃÕåb±XúG¨pê•à~`Çî·åÙÊÊþ¡²éøáû‡fgg+®fßù<Ë?)àýéDÖåb.S©.ñ<\½KßdÒ,üélzˆT@t@{Ôñ¦¬Òó±¡¹ì‚ pösOüW‡GʉÃÆÄ­ÓïýpØX–½ÿ¯þ?"pçdª ¼¨5ÿ¹ý"Ð,Ș_„ªèw2@W ÄøE ‹°Â¾¢7ŒBž·YÀ÷—Üœf +PrsLÚÀ"À0wþé €ßéSù/nCÜnS€Ï +)Mȳó†ðôÔ=u0€5=t|Ìvuí©:wE°»çø¸&›w6g+ݘÐò:{¦˜ XMô''|cI¼™¾ÈDÁó`^^ùAmg®¤êÿih§§§Ï(€þa„&opý¿2¸r†Î+œ<+â$F€]³ÛÁX‹ Î6©ƒ©·Û38£b€@i$ ++ö½,  fügjÆ@’„οlÞ…Vàn×ñ.Íñwkß V¦m5Sµ(htÑ?È€%–‰ÝûÒ ö­ÿ6ó3Ü0;öÖ13æ¹ÜmÐxùZ• +#‚õL†ý±%¨ãU°žŒ‰ùÎl>F•+ƒ²'0Ër -Çû‡ Hû­AH<€}j§vx+ ø²eU~ÕÒÞÛniŸT-€I:ƒTYÈGj¼ÿOõ±HŒµ~0xøÿía²/Ÿ?´øÚS°ʺ.P‘Ÿ5–]ê•Ò›Òå¬khÅ6`9!˜¯ ܤ:¼à_ÆÝlø¯T‚Rú7Œ€ (›”ž_.˜~Ç…ýG_ϰѴ:LOu ü‹`À…ç}þuyÇ Ødÿ¹¼6ÿWFrÅ[Àúž úÏ÷ï'€§óyyà—Ö?†µ?ÂwÙ’iÀ›Â˜à D·}a‰ûÜìPäœÁ° þ“y&ŤR2 (¶¨À$¤€`œ À†ÀØ`«#®.•í¨ÆÄPà“][5ðXU€_ܹ³955Z©¿[_Z’)\#d§"Dÿè ð÷M$9'!B‘™ó +TÀ<÷dÀuÿ GR€í3ƒg`0=¨TZ$°u€ó28Cð ZnHPW׿Cø£q{ÇdhÒùh‰¸=¼³À+ < +àEvä@&Rýwóð økÎ’æ?`àÏ €­ ÅN þ÷v@¥"A€A÷o-€¯ê^0î›ÿGox¯ÿÌl¾›yÙÿ¶Y/k€1lfê„âXÈÙr64t0 ¦êž5€6]«Ùœ³µÒƒÜȰûf 9D éZqïÕZ~€5–Ü€ýÿ)n`ðÝ`Y†ÔoÎ`¡êßÒnap¸ýpè°%׿xõ`¿V=U;E .V‹%â©Ï|€èàÛ3X›ÍfM³•ÓO%\³®Cåì¥EüRµ—GÂhZteé“rÿÁF€†ÿ"óç{.—+ëBC_{š©ÁXÀ·Ñ],„Í@9]¦òŸ8ÂjÏðjÂØùaχûLÊ÷—N_£÷ëQ€Í“©×[ZÎ!ÿç\¾¿Iÿ‡#äìWêïw:5Àç)@¿(œ!M @u:ÒØá€•=ÙôA (Z€p¸Ä»ÑhÞjplh¨äFbúŠäòf`N€>Éüñû¡ú#ÀÝÿdc|ø|~ÞŠƒ#F)¶HùZ/SK’ Ä+ìhÌH$p÷žpV&šàVç¾LÀÇt@€€½^÷,©#AöaŠŠÿ(b Q¤!Mð‚Ä×ÿ¸•rw? —`ç9nžÏˆ@öÿØqã vÏÌ NŸœöLÄ«€hìš´à+îinNÎ4:ôÆ?øw.sتËd&'C¡<Ö# Ïñ@¤Q7[4Ž hþ”Þÿ×A‰ ªDBý ¬ÿ3¸ËóÿM-ì·Qü˨ÿøæþ IÕhîç€}š3C–З_;”ÿ¶uɲ½`^_Ç]=ZüXÔØç/ f?úA{€ž‡g™Ì=€X.‡€YGëˆØ›ýt¦4 zp]«-Ö#ü?€ço+ÿ8WyÓÏb1@ã77N¬ÅÒ>Ùn µ‡ÚétØR››‹WÑhk‹×xû¿V+1þ—Ðýü¸þ«ŽfÏ›f]§{.ÌV²‡¨Þ6aÊ»&P6ñJ€k±œ /'Ê{4 +¸úO@°Ç½LL SãI€r“4LvðßÅL œ^\$®Ð·zzddÕhL˜Ò}Ã'†j€ À×êíz`óRª€@öüë?Û€~:Îrà¿À€þñ7þYûrj¬€•€ì äå=@/«1¿çm>Hþ (ü‡°ú>Gó2 ØêM€1¾¿Äu.ÎEŸ?_ôy‹Tÿ©ðáäc;àb±¹ÆÃ á¹IfKKž PçH`ª»µ¨[¥h–6„€»ûíýK³ÁŠRÒñ4¶Ð€íq!Aµ?Á%ÿ„ ÿ±I!Àƒ"lدœóT0s¶°Î à ñŽú¡òþ¢}åÿJ@ðOè“›nÑ×hмí‡ÔÈÄ0ãîpöz“ÞBÔíö`UaF†v1ày‰‡àÍ?1øµrÀ®ùàÝ., ŒŠK"€·åš  ú¯…ÈßýâÑ­ý +€»P ®¸‡Âã˽íÖ/7€âüë„Ýoûq€  `F·Úîðë¡ò è×öÖ©ÚÇÆ÷ˆÄxº/‹VäØm€r´ê:ðŒÖ«ñËHü9…ü_öþgð¿Lœ ~Ê07´[âÕ¹8aý\ooo{{o¨½—øK{»eŽ*ÿ¹j¼ÖV#P«j£[µÏJEÆÿ¥›K€ìøã·ëÇ™uUþ½õÚiS¥âÊ.^ÈÓ‘MpqŸÝëÀã€DB›ÿ—5)€0"YŽ6:¼ ¨”‚xóЖâ«°ÕïB¢àÿȦÓãHOÏ*Û¬üMÒ0•Ë_³·ëá€ÍúRª…À9?«ÿµ®¿3è?fù_©z!ÍMTü‚îô‡BÒð†‹¼€Å>bð €’¸sB`T›¬HÀ]Ù‡x%f˜;þH¦ºßŸôCC€B²TLqf®² °’X øÔ=3u͘ñ_y±ðøææÔžÀ=Veâ‡ÀÔ6kN.a +PÀN#¶¹PˆýhúGS@ÿ úG$â}@¯A¼#g”þô´œäê ²€YÝ5À gýò*gqà™…þtàÚ3½23( ´_F@ d,Q½Ä¼>·gÅÃðèçEPþÉTÒŸ]“þãZI‚\õ«òŸJÿ.Æ‘ÿ¡’ߨg Üc_Õ@`‘••h)<ÞúÒ¯€¶À[œþË&@þÄÖÙõ³žàÛÿ±X&“*òQÔ›Ù)8Çæ?­¹œMcȇî_KÊÑ7jåÁ[üLÛ ¶Æ:,ñªâOÕTþo Œô1ܯâË!Ko¼mnÎ0_)`{VÁí¡qxÿÌUÛÿmñZ[JýÿY¡^¯l ÷ú{ð­k”?¦Âßø¾){ :£òVÁ»š^§ùiÞÓCùoÚ×HhB6ìì€ñ~¾L‹@¢¬ +&eQþîB«#=0ý7%ÃÿoOZzÿð p}íÞ­‡OF—^O% þ5ü‡îßÙß|,äÑÈ;Å?ú•@>õˆÇ¡|öòóC²»O  ýÅ0Û±ø¯ä’D à"ŒPðnŽúØ÷? |ã"Êÿ$Ê:|8¡= a@HàŒ ¸!Ðí)¨\Àé“b\ïæ•ð`·yÀ€)éì*À=¡@£05;Zé®w/1Htfté¬JÈ\ g«`‚0h…@g† + vmçœþxúÏ ö¤?‚þq‹¥7ýãtó'í¡ÞöÅb¡órßK¨ßFç#U¦µ€ÂÒÍzð€ÿÊ8Ó­ô?ª$çúýl…ÿºÊÊ{Gk$´u~“ô €Æ>>x +P./fUíïÊ"H@éý¥uàra€§¹¦wé>‡ ‘Ã#ï0–%ïâkøn=|Ðýz¡¥Ø’‡OC€…fèG+MˆÿÙ˜ñžàž@žA_|Žö° + +…¨dG: ä@}6ÿ¡Úžn”ÜCrÝ?Æ(ÿe0G@z:ÁyäÕHÔÿ@{ZüY‘[,d@2ék¡Ÿ„ úOó& ïðD»{^‰e0Š €fÔ4x|-€­;[Øœ v×ëuȈÌxÜ…§±ÜAƯ€Ò ï£3à“’ˆ;Ršé|p€îùî ÿ ³é Ruí9Cl`púÌMýžá\@úP +À•A€¿›ë°;0Ö*€Íí݇ðöZmÝdG{ÿOüá(Œ¡d\ »%àÈ>//ƒ>ŸŸï66r LþÙx@¹ÿ‰ p×—Dò<+lììÇÿNÙ¤·Ä=sùu›;€ÿÏË©êGI*X¬K#Œhêüu<À ~"XäÁ@.§Õü˜÷ÛôæV=;q; g6¯Ûl­­ÇŽa7à]‡®=ç†cô¿S½ ÷_ÿ95gèµÌµ‰Ï͵µÅ©òÑÇOpÑÛ»Üv¤:‡ð?XÿóQ*Õ®Æ €›õzðÀøýEøÖý@‰ßM³YÓkÈÎºØø' ìΊÿ®’ë—ÅÓWÙû&š%‚j`ÒhB"-:?Ü-[üYâà.žýkMºë“1m$øïC~@úô{'eöüåãkùf=|PØyö¿ N†ÿ¼ÌýEÀ;€ý ù_Á ?”g¿Ÿ<(þ™ð-îöçù$Þ=ðÆ *@ÌþáõÏò¿è£¾[ X0ô¡è£ !o1Œ€‘ ¬äy$ +@ N}-I¬¤¤à–T` f<žúKõ:̰ +8Jô57`Äh"€]^Ýú’У=î°0w°(2¦©¥&Nº•¢Õ?[pG"öõ"X'€µˆ&À´dœñL¾Ä}ÿiŒØ18ƒi€}pïX™–âŸp_ÍvИѬ€!|€5´Æ3ÖÞ^oT÷ô™‘°  ‘(Wò3*  q + *ôÇ ` Øu·k@¹ÿn +ü³àÞ& S<ˆ,áΆC@“'–8€Ýˆ•¢º–¯xÝÉ£l`æÞþúºY‡ý[€÷óý€îõsw€}(ós  ꑌªöùËy×/¦×éctËÜqX× +w¡Ög@À6ŽÙÌÇZÿ:®‚~éÿ_®!çoù<€k„üCÛ‘#m,·8-½íÄè#4¾|¤­Š)ÿ™|vý30€ÂÍ›õàær?˜ãߟéçÏ›eÆŠË5ëZ\ÌÊ€>ëâJ=«À*üÇàï3õ±À¿"Õ?¦Z (ʪÌÂh øbE\`àO +‹¼b ¼ZX°äq{ +*¸;€F,ŒØu1 +uiø¯Ù6›=v¼ug6ÛtNÂØÃ§ˆ[DD¢t“ê}ž°0ôwô-ˆ@¶æ÷¬§1¸éD7€X€‡€zÅ#-€ÏúOóàÊÂÿ!Ô¼îÒP ,ì* +`jûa DÆjiš#˜òzÃQúG#DV¸ö·ó^üšjØ1‰û¶€¯ž ªÖW—„Èö«ÿº8hSá¿jԣ˜ïÚãûZhÜå@ií«2Ë·©½þ;ùc¿Ÿwüðú @î äYÛ[0 æ¿N£ßÀT€È ÿb­¹\+|Ž!o຦s«­Ug{¦Õö×Ë +þѨòøŸ?½ŒÀÎN¼Úfèm‹¡ë8÷z-Tü÷†zÇC–qÿBû×VÓ@é³ÚgŸ>Ã`có` à»ßŸÉqë7ÙÙlÖ‘ÈV\ÙwÐ`›^4ðeÉ¿šé¯‰þT€éàÞ$ âüãÒÖ¹Ûo„¶ …„TÐîbø7²:Ð4r¢ÏÄ÷r àkûN=tp§þºÏ×âÏsüßYåýÃ-ÿþ=+`ñ‚`Þ™Ïî‡0æçþ($™ àÜ G€6Opå÷ÂÌ/<4äІÇ|alÿµEe *B@X‚ µÉ%NþãÂ_ ãû‰€}͘wd,¶ød%0/-¸Î»šKÁQÕØœ:ÞØØÜ•EÀǧØR€Ñ +Öê'=¼ +èá…è ùÝ‘Bg‚|nÿû¢)ôÜN¨Ì€™lÈ ÀŽXÉÄ(àæÍ3Òtï=²0£€±ýÇÝÿ¡Â»>ÐÝÓŒ¼²8õ0¼€­Ög 'ÛÛDÑòÀ½m Ùi`;ÀF @-ü‹ ×ü}úä.nÜþwu©ö?w¦pµ©Ì:÷æýô›ƒ¬Ÿ®ãHÜj²h8‚ Ø¡Xùª—mÓu°âϬõøRX_p£ÿTB@Àl~ _²øÏe$!Ð,õ?+þá  =ȉõŸ¹õ™cÏØZŸ±üÓÕ±ÖÖV[Á~„ó—aëw™®vv8hcØÇç,ã msñ#mã@ÿ^K¸mŽnŒß PÕêÿÚ‡5‚ÿ‹ 7?«×»Gûàø×‡„Û•ÅóŽ×.ImN5ú¢tî©eˆŸã“JïÑVü>ÿü÷‹ÊH³ÿ—Ðé H­Ïß„— 1pñ´À¸Ú·šš`I»ø Êý¿UdЂ`ø£åOe½ý !2àD@ŽüQ8Ì$À¯šÿýÍ^ªÂû½~Ì`å!0<&@tÍÃÿzÜüׯJc%ð…Eè¤ú?Ïm€"/ˆ{’Eªý1`U`аÒãöˆ@Ýs’)€}¦®FµEÀÆ  +¼µoàQÿŸ!ø?;; +`½îQVÏRD6ÔGi·¾H©Àå2¥×ýÀÜ׺e+^ù¡÷/‹ªÌÜ<ÿi7ã>6ü=¼ã'õÿ™i÷à™†¶NÄæ@¦Å€¾)Ó®‡Ò°ZuÖöögo8u£0hWaveü#Àdç¿=÷_5ýGTÚÿ]Ðý¡ü—ö¿¦ÿÛD`S[î_Û³ÚRßµ×à ]Nä,ÀàüO7ˆ}Õ«6Û:xá¢~³Í̾ ÿ3Šèl€GHĬŸÍÙý)}Œ ÿtâóÀèŸ]b`6ó±Ÿ;f3ÿ왟{æØÏžy-ÛÑÖ«ñøåªêœªž €$0ìß©íB„õsÕ#GâmmmØ´Xz-c7ÚBããápµv¤D囆ÿ¥Ï>ûìúMbKDDÇÿÏaJœ7}4›è1¾sÉÄ»)»(Íø²êßË„_“ó«zŸ%þ®ÅÏßQø½+áÊ6édÜ/*BÎóSØ ¸LéDߪÑà5ôȈ±ìÒþZY:øãRÊ€ |“ö¯±wîÝ™Wʬù¡)¯mj @Z!0o¨—5hÀÈ @˜þ4´GÛ° ¿ÂSâ!íXˆŽ!pÌ×ËN‚a BhÿûûY% ÏþyS`h}-Ú& Æÿ²HOUký¤Ú´‹@p´‘ -€NY€ðñuˆì¢° žx˜Áx$Þп„.@Áu@€ ‘™g¿ÊÚ8&7•KƒTþ"øÃó—Íÿ8û—×ÿEüW'i€-€Ñ€ÀÃ0°Z­–̳–vèQýÉ ¨?TCŠ~qCb‘Ò_sà|×€Pà?úýr üçÁ?üü7ÑØ<ˈ{ºýÌè+Ö¶ îÿóo}ÉÝ D¿ÿ9ˆåü„ýë:Î÷#ôX×I @È`æ‹aÿmÝí\N…€ úý ¡è÷ó"$xäXh†8ÀÆ3"ÇlDl¶Öß]“`_:a€)Ã<~ª?udÙb°Œææ0€ +ÿPïò‘¶ñjïòø\[íC­þGù_#ðÙÍ›Ÿ-ݼYßèÞ<@¹ƒã_?~“HdïÌ&þóÿÇÞÛ†¶}g뢎̃Rd]mdÆ’%"£ IÞñ6]‡ømã)ã´laªù 1‚Rq@1fSÈ–é¸õ‡žc¼™-8‘¾ öÙgtHŠñ¹Þ0ƒûÁp3_ê³UÙΡ4ÙîøË]ÏZ¿¿¬t:M›8á´Õ_¯–[ñ‹Ö³žõ¬çég¾~HÙõœÖ~mÆ/n>²Ø/0€þ%}ìêÐñ|ÿ} €¹én Öþ ,D h±Æ·ô¨ý??'逗~{~š>„gCÿ‹Ÿ^:دݼÀ ×ÿBAtE—æeM€LØôŸ +zá]­õ— mÀjÀè›ÃÑhôM?]‰E ¢Ãw£TÈs2ú!(“iÈü¿žPwø8Gà “!¤ÃÉÏ‚Ã1M°]f ÀDc)ÀÇþ)0TZqHòŠKØήÕ%¼åÞ—D¬ìw1Zõ…À¡Hx àŸ@ˆ±ê!à¡k”ÿq(@7ª0TO2+P9»’Êå‘ÑWÏJ™1@ ÞºTÿ xÙÞß³‡Ÿªö–Ù÷A[þ§ºß§ç{x92x5·n½,0•µf­Q I•ž&Ld Û|G9ÿ°¤Šÿ艛]ÿù$KÿCŠÇ +@Ûû®Ÿ×Püñƒ”` ø\ì/øÕ"MÉ >°a«Ÿw¨¹Ïf§ïËÎ=Á`€ˆùÜà¨ÙÞ£ê_§óÆQ«Ö:8ø¸zÇ×rÔ¦?¹ý¯õϨÃ÷‡ÖÖ#ßÕÔ³£¯8 +˜wÿY077Ý?4¿Úwm~UÛEÿºZ”Õ?ÜûÿÛ‹s²90G÷浯5ôo?tðI­úFàB@ \Rý]"|Ÿm€Y¨¹ÿ¢ËƳí/G»Néh x3õ3€< +j–ê¿@ü ͈yÿÎý„§IÕ-“ Íic€èïcØ £öÔ‚Ç¢XI±P*àK_X¹ÀnU뼃 ¬d?`-ø šðà6¯¤ï³%ðcÂO¾äüJ€CêÿÁìßž0xP9¸Æ_ÒÃF@a»Ýþô€ +âLmÐ-Ñ?nvýã³fú3Ðu œßÒ"ºt€‡ôS£ÖùAŠø @Ÿui髟³Ãf‹èlcpüã­>ëë³zT|aÿq_/@=\˜@€E¯Ílÿáo0Bñ' þm,˜Êç±h@ +Ào1˜¸c¼óøÃÕ™|ŽÛ×E ø9‹>ïÃÞ_ŽjÿëfóˆÙœ‹ˆßyhÞ‰Ec±»TúÍ áÿöêuŽZ-ƒ½4 Þñµ¯uýÿ±èÉÚù¿ú/Tò×úyPzò.`¾_­üËJ¿â”ÐôúÐÜ=2$ã™Ðg“qÂ\¨ý‡óapñÒEþb|ü¯ÿmzéàvú PÝ—?Uü]®b( 3‚ˆé=…@û}.Ìÿ£®7þ!å ¬íòÙÊý—"€ßödž3b˜€ȰàŸ0ý\ÿÔÒ_‡x¬Þ§=^Üw 8E_I`Ðø+£Î¦û•‘…~zjàQìaú‡YÕÿ þ3x± Owóz°ìýè&×`E€ígᘢûôAôÎ<_òFÛx€·€lcw>º÷5€ùzÿÞ€pçó\ÿL¹EóÕ‘6¡€‘Å\ÌοóÓŸc¬Ùn7ÚG ‚˜ÿó`—ýâ†{yÀ½ãëéî¿}üÁÏ~<ÿï4µ>uóP( _SȕĞR úÅ;àÔEpš{ûõ!™ôSù¿x¾}rÀé‹çÏ÷©cë;°©ò +@Ú—* Úý‚«(…V P`7º¶øÃ€ÊæŒ ÜòVT\»Lx#€®C@TÃýÄfè@öGLx ™8=2™†Lb±ÜŽ/ pÈ0²ÔQ€Àûtõ~j…cƒ|ŒpkU¯— @MEA XA/¨|îfG€m@æ°ðø”ØzÕ©€ôe¿è’0à½VSžÆU¯§†é?38ÑÝBÿŸã}†ÀÝñÍcÝ?$€hü x`®Ä@¯g¡ìõ*½ê>aO™'¼ÞÁ–Ïž+=Xb³ÄÌËKa-–{Y¥d%@ý¿§îŰ‚à ì*¸"­¿òýä@`Íò?Ý?UmneøwؽÓÏ\‘Æ +>¥ù@×lmF(€™}Lþrý‡ r€¸ýÀÆyŽýÕ¤t/«×‹Û¿Úø öÀFžØØóÏÀÊ?1kÐl£ÍFäéâlyì +Ò`BŒ°0a0èþŸ>ú¯pÑßáe@L`°¸s•}ÿr;æ6ÀbÛŒ)ÞŽy¯¹ PÞh¶fLÿ÷0Ø«³`÷ Ü[èÏ<þyšZõ'ósqícvZÒæCš€’ÿ‰#°þ§û»‚ñqô¯µñ?Þœë_ã;0þ;ÏIACóýç/ŸžWýÿwã›ôÒÀ,l˜@‰/ +§r±ô¯p¸ú‡d€Í~´¹‡àþßj Y%Ôÿ(.¡Suÿ<ˆFýÑ(ªy,!£€F£Ñaý;ã³R`Hi/àš°Ãp,À¶ÂìB¤] €I@êýWÿò‘ ÁŸ¼Z(0wƒŠè üwò¾Â ðÕ1O`€$Þ<@ÏZÙAèñˆ“Tü¹ú'«ã˜TÇϰ¥fNËAñTÝ?Œ¼-O‹ú¨ú±Ú_æÿ:›Öë^eý‡Í„=x’¬¬&ÀU´ê”3/e€ ¼)«Õ•‹%Çy ´£æIÀ®òŽjc€Q²ÀÒ?lÿ©ŒßÃSQßÌŒVþ;BÀF _Œž‚nÂ_÷sñFl¼ø+CP`ÂYUÿÅóŸ€ú¬Y€ ÿ°àá?è}º0m Ñ€RoDíGù—t¢ó:ÈØ ÍÞzkbbÂvÇ`ûèêþ—~Ƭl¿¾Ã†€WÍ9Žœùj{däjÛL‡?—É4÷ÚXÎY‰ýoRûßæé?•€Ýƒ{¸'èÏ8Àè²Öÿ/?[ý`]äúÊ ¨›àä­ú °Þµõ'–Aël&(ÿšŽµ5õ™†Ö/Rû?ÍBÁùõKçÏŸ_Wìÿwå{ôÒÀÇ7Ó Þý§ò_ \o³Þ )€@d² 7”kjò¥ñ' {%*÷@ø‡<ñˆ ‚Tý©ºcB ÛåèAÝ?wÊ$Հʿh¢RñE€«Ô2{(  ˜PéÇn@:]ó¤½Õ4(ý×¼×*ƒ,˜ »EÀ2@µ H¯êÐÀÓµ{ðU!MðÉ#l†Á° +€Ç̪(ÿ`<4þ㘈(Ð3^9ÃWÜAe–Û±Ää{PxZ^º·à…øßëaϯÊüáÕ?Ùÿç ìvÀ”Ç‹€ˆñfo³ðâe0²«ßïöƒ¬¨\¯Ø;K2ôG^!ÛKx±¬°@¼!±ú?£2ÿ:BPÕâïc@$ÕÿÔð°Cܬÿ[=ejþÞ°él²éSŸ ŽÛþ ZýÓ=ïÖû'äùl„ÞŒ?ÁD + Hûy`øUþWcà/Hgã©ÿì 0f›0NØlwþAQªû¿zÑÀ„^—À¨éMµþ#t˜Û#fî¹öýâ½bzC€&óÿñV«Ü*8 ?éU¸Þñõ¯ýýÿ±õ“ùK?ûX–¥øËÿúP·ó/3š'ðìáƒ%Â~& 6Ðk«kŒPÿ{iZ‚ú/]œ››†>pí»Sþ_L§/È@‘!üß5 æ Á`(ö?XïW¿@€(“‹J¾}¾ßròƒQ@4ÿ ðžá»~šÑà'ͪÿoÈDS†ÉÌNÌk$3”ì À9þ€Â0Æ>`@<P0àKËB ïpp½¢EÒÎj™·ÑIÛx¼Ømø*U€Ÿ>ÀàÖm7êÿF *µ + €—P€—»ªã(¯0J&¡ôTÎpŸ9OK–X ‚½uɾî¡fkôH݃»ÌÐMB³þO6à(ØÒ Îb' ±Þ)€ÞÂY¹VkòR¥°k@fqYxJ8ˆêæô¿™S»¿Ž¥¯@¦Ô(`f_(€ÃÃîXþ‹'L=zÄfäTQG »‘;~~*hÑŸzþå• ¢Œy#wþùðÿd½Uþ ?A‰Þ + 8`0Žqª°\Æ ØpCCä>‚ùŸðÿí«b +ܦ‡úî.æs¦IS4—k¾óªÿˆÙ ÿßfóaÛG ÕHÔ©ú'¨ÿß;ªm´v[»åÝÝ]ªÿ÷{dzI€¡ùO††þõ"ÚÌí×Õn¾Zœï +îïdú‰Û¯fü³.ÞÓìÀ!ôÏ׿§és`ú¯œæ.QùçÝÿµ¡ïÒ7襀€ÂrAZ}GH­ý#ݧ +,µu@\\ìe/À€6Y]2ü‡ J¾Ée¥70 ˆFCt òß6ñÀ/d>öûfUþ©Ztšêbæ3fÞð‹€“8@5þ+©¥.p2$€}¾7|Õôåtše(¤×ØnP©X(Nn€P¡€O廿šúO¸.@ûûn,À õÿà¶Ä€e˜þ£ò{öþ@ý/Ô¸ü  Þ³qvÆ×Ãq€eµ'ßî—0Ðë,ù ÕêÏ ÇªÄtÕªúƒj0~:KÐ(D€3¢þïêÿµ{r¿ËÝ¿KÐ1 ×ßð + ŸulF¸ð®P«l^säæ]‚xûOÇòÿ|^Ì äuùËç (ûTâßÂ&@ÎTôØð® ¨ÀÿO Æ;w&Æ ˜P(ü¯·¶?GàݾŜŸÿn©ü›?1·Í;#æLÃÜÞkú†}±_£‰úߤâ@ù`×àî•·ÞñÌcþã¡' ]ú\Vi±@’Ò×½(šÀþÎcìx^„Ó¬dS!Yñ§¢ÿÛßöË:àô¥óÓôkxßwëûóò€Ë¬ð“@èíP‰Êz ðˆÙ (¸Xèâ­ÿ@Al~• +@ñ¨ÿÿ¹¸öc€j?ºƒæ{9 ?¸|&³“7`jö1P€¨þ#JØ`@¸“¡úð°Uå_0€/õ>›rFàJ@…(7 6J¥5/ÒW¼Öª<`Ñ£±À¾æðdàÔ +𕺊€5€ô´A€·({+Ôü{jU0rFý¯Âôz÷³[p +Ã9§Â.`þËÞõðhö=¼ +ØòªîŸ Ogþïi$ªI«;Å +(™wË@Xœ€n½Œ5>oÉf§J®áá$}‡¼ åN–«þµm¹³Û±à(`žþ«¢> Uuþ§MU¼ŸØFuOxÐ=ºDõ?éù¦Ï÷—¬ÿa@2ê4ë?™ 'þ ‚þÅ À€žùXë°PÏÛØªÿy‘>xðÖØFÁ±1ã˜ñŽ[€rºc°"ÝÅ`ûêÕöëm ´óúÎÕ¾ÜÝ\2ÀèÝÜÈëíöH{ÄŒ½ú»$ŒŠÌn4šÔû×! ò¯0³½4€ÞñìcèƒÖ†>øÉo†Öž=?¿®4€óëO€Žô~ÑMÀµÛ€ àοëâ/ÒckkCý—.1ûÏÝÿwì·ò¥€kµ7R)ÅõÿX(…: Pq9ä*äZF*aw]¼À@Üý;Ñû[¹ìûéç±Sá/9MxÝ÷Cè2Yc~«‰îçüþ@.f&@HýU  €sØ)Ð3C.ÉÄvüw±y ¬Ä\(Sÿ`üCÞgê_²V.¬ø.øR$úظêM#è Àuöd +À-B@îÿoÍt€Ã®D WÈ<†Àý[³lðñÁ`…'yË5B€²ÀóžÐ ©…Ï ÿ@[¬ƒD¡bE€:È ¯‚@¯\$Æì€ EüL'¤”•¿"\Îü{8¥ÏNé²ôûùAtø´Sÿ%ôÿñ]QÈÃlL 3Ú×úŽ‚ÿÂh¢T?O‘ fèøfO—Š1wÿX´=ø•Qsûå˜?•üÃAy‰ +ÄàѬx£øgéœEêï•|ƒÎf4ˆ% A!#OŒy*ÿcÆ<ÆÞ¤ÓãÛ 9 w"àvÔ€TÿÏÛÍmXõåsô'kŠZw°ð°m6´Û sƒ:¬Ý¤G{{¨þu´ÿ2Ø ‡æõD/Úü0ÀÚ‡óŸÎ}°¶Ê>Dz¾Ï›ÿZVßÓÇüº,øÏ3ù?ÏnþCýÈ ±¶¶Žé?8ÿßÎá£ÖÖö×ð buÁwï»óòµÉÄç·HÍ¿Œ\žþ/$WÿvýĈfÀQ™üSmwY5à¨Õê(a@¼èÅØÊ +€¨‰CÄ¢H¥@fÇLW<07d Ð Â?IÌlyÔœAÿÆòÆ1Û åŸ`À¦Ápç=r¨ö·Û˜|ŽÀÎÎÕ6€\ο1êÿÁ´í‘Äý”÷Ø»Eð­ÝÖÆîêÿ !€ðdzû[½ã…Ž?ý0þ›_üÛ*|è4-í;Gôo ñêÞ|—ÿÐýsq_c͇L3"XcQàúüôo}iž…€ržIƒïdù€›éTkþ^ùs\η©Å!@JÄ¡ÀWT²y “Yñ£J/€Ójubàd@€D“@?ŸùŠ^Ur±U3{Á™Dg%PIsë‚9¬ îdîÆîâëú8(€íßO-+àB •z?• +\X¡Â¿BÀWUòy5(_go;0ÀÑ´·Ü°ú}ŠþLøòBØ`ß}ûvXD€vÀOíb±ÍƒA<û¤=¼  °@ù,Àa˜·Ã* +X €!ú+³€7åVøl8îÁÎ|« a"òdÚ +€ëŒ[D‹%k±˜LV—u8–ð.bÐG?ñ +›/q¾á ÿ.uBû{WW¯`_'÷G}W5G`ˆ:Á€8Øw»—$Íæoô|±­ç0*€J7rü$ÍY¥üÓa·é1ÐØ‡x/¡HõS:Hõœd0èèóakcÐñÚÿ±ÿIåŸ €fHÇØÄØF ‘÷ ø¼ @›Í€ ¼¾³hÞY\ÜÉåð·=¼Cïi?i4…Økû8„ëho£ 5‡z w|³ãöêê¿»øé9TìuYX][Wz@‰ì=…šG@?ã€5vDŠp?ÃÎþñ¯ÿZÂ~úv±ÿ;(ý{uàq-Nq°+T,:‹Å@¨èŠÂ +h9Tä5@º ÀhYÒ—£X`URéñ].1²Š0ÁW´D¨Àʦ֨‰€€?jBO‘!˘©ö›\#ÌÍ  É×fq ¦æ?–Ë5Ì ‚Qœ¢±ÀðJa¸c^æmAÀ€@š#‚VÒjP…*TKílÀC€Y¦ÜûîÓPÀ-ð°{ð*êÿžÿ30KÀd×yy‘@öîxÐSkaÞÏ +€ê~cœWΚ`›<Ðj$Š<•{VVy *€:† 0–HГáø&Xþ—¨{ºÃ„{a Àã³ý¶š& XMoú3Ô¯Ž?ø‰×?/JñG ÀR\µÿ\ȵìŸÐiùOF§ €Flu…ãuüê~3`@ïOõD¿M'e3óÁ,üÿuˆ~ˆÿ³ÔÙó{³"€7@õ? ³_ÎÏ_˜è°ûOoý¿ØúcëÜNŒÙp‹ò# >€ ïÝå€6|€eðùÎâÎÕEºÊAóû˜ùa»½ó°Ý„õo3Ñh47ÚÕ†ïB£ÊÓÿ8ª?÷ÿ N@ìöj[ïøFÇêп x}um•WøÐ³ƒË¿?¯,û絤@Yþ›—1ÿüzÿÐýcfüçY=-Àôü¥_ÿûKC0win]†¾«ß™— ž`P` ^À®ÐÛ°ÿÁ ¡ýƒ3˱@µEÐoûxRüYˆQ!õÿN…°['ƒ«Õ +òŸ*† @îCf0 +КÅú¹ú©`,×  sFr:ä ûp Àß§4,>ë>ßû+„Ò>^¬ŽÃ˜»A¶°K(­²äÝoÞÌ»Œ^™&€<Ø¿ b"ü±ýã;X{/$¶ÚÔ"Àx­æá2 [OZï™®]±s^XÒó04QŠì÷z;#O× Ap$‘LV=t$aØî?!õ¿ Ý]¸xÆ"Ó¤ÉbÍNš¢±áX"™öW/{1 Ü/ÇíJÀÆ¿£ +°ôÿ´ú³ ð—Àa—‹ßag pFØ‚Ù<º—–ê„>ü&3€`„{GPg@SŸ¥jž…üýþõYDȾd|bùÏÕ_DDP6Ï›Sœ8¥Ó!óV@¨ûAºA €àÿš‹?C€1qb mÂ0a¸CÅ?¡ËGèÿ>o?|ˆ•€»WwÌ @ÜÝmCÀÉfA{õæQ•þÀŽ6€Zªÿã?š½Ý½ãk?ëŸ_럆…º0°6߉R _MóµIÁ¼² `”ÀÝÿù¿úõOÖ• 0üæ¿«ìÿ«ÞÚ` +CE‡+ä +¼Í«ý¡Ð0=¨b‹lŒ5èÿ¤ß& À=¹šð´ÿ¡hÔÉu­Ôär& 7LQ©ÿt,Rù_Ì,æÌTúùÂù€ ̉®T@4þfTÿFŽí€|’/¸0ˆŠ ²‚€C‚W.¬Ðï/¤ePöŠ1,3Ê ÀÍNn¥àÀ!Ï^-pøäñ“‘¸oßæ%€»ìÖ˜({ð°€GYÃcO¼Ï–s¯n‡ €0^Dÿ²ìOVEøTýgcBº$¹ÿ§s£'`¨àŒ¼@Xò²ôâ—3ý¶RýŸ4™ð+Nù<âY¬T€šþj¿QÄýŒ*÷ûKú/{ík’ßýCÚY ¢xPkÿ•`ÉÎ>È߀¤ 6m[—ÿó: Õý¼D?¤}Ù þÒ›¸‹ü@6«vÿ 1@þÇ­ÿT|¯Ú ý§›c lTí'dëŸ&ÆÄÀ0†%@ØLDèš0À{wy - !€‡;à¨þï0ùÆ'ÿÐéˆÎõ=èÿ諵±Ñ*«öŸ'áðIxöÑì½ÂÖ;¾I:¾?ôÇùùÕþ9U××V9@óöRþôîã¡!ÍçWl¨œ€©ÜŸÿõ¿¿-áüPÿô§sýâ0øÞGyé V»â5@ôøEùKb(€B‘ê}1ä‚GkÙ…ê…]†£ÃŠÐ†ü…¬Tò©û'à2•N§ÃŠî? +- 5æÅ¾\fÑŸËPég€\`”<4™X±™ÅF®Á^€Ãw¾§à ¢ßÙ Z#ða(z@lV½œ  ‚|Xµ0 !€ûôÕ_ì€eðñ+dÑþsà-0âÈ#¸•EÂH¥ßÛòŽ3 På‚‹Ê_M T½gºwÍ€Z’«P ™IÔýÖ¸šÿwv”™ã@ø8ãÙ“P ‚^êÃyåŽPTg,°˜&û 1…Ãh´ÿ²õ'Sÿ£¬÷ŸØŸa×_”·”‹ àS «ù? œRjU@ê¿ç™ä7XÉ JíqàuÿTóõt¥§øÌPâï‡åý š?z§…Y‚|6ŸÊ+ @!˜ŸÒ‹ú}?AÒ fþ5ô›˜xë-DñöŸ¸Ûî ÀfØ `øh§-3€6«¶?Ùác¸•ØÊ +½£a†ùo»ÙÄêÿÞÑF}‰›ùÿ’šÿÓÏødöö~¯¶½Ètö‡ò=^û`mþâúôý鹡¡N¬/`€d¯uA€õùµcóîkù¾J·?:V§ÙQe4Ðåÿt: 8<< ð€Ôÿ®¨àÑ%;œ€¾Áæÿ:VªÐ_½:õŸ!Ð kñ—¿æþªúy>`~húüdziƒùþOçx40ÿÿÞ¼tàMû¨v.óü¿ˆ!¿£Èþ¾.Gh8ÀѼ P1 Jìp,ö £'—Í>ïûar†œ8;Ññ;Nh¢N+*?»Šá– À¢¿Ã˜5 iƦ dæõ€Å …ð +¸6Ä…hÈ%™Ë…Ó˜`º\ð­¤.ø8‹Z¨žWs† «8 âeÀ¯ZxúÿúÚŸ@x[ê?k*ö•ÅS®i»€õËùÂ#¾´<ƒgû$Y€þ׎lÈ \³ÐBY›ÿ 4HRóxÂ$g6’‚ Ú@½SÿéÛýˆ§ègZ,‹ÕÄ»%°öÄw—äçËf¿(íhý÷ÅÎW~°Ò³s0ݳ ¾šèòüåT@÷ÀagMPÛ p ¨{™g׃­$ü?ö¬QŸµpß‹%K ûYÐBµÞ˜Ÿ‚ÆŸ­~ ”ÒOQñç-˜ZôSÒõó ƒP@þ¯Rÿ¸ü#xL£ÿï0à=€‰ tþÔÿ; gÄñ^èl@Çǘ¡h˜WâÝðØn4¨õ?ÚÛ8ªòÜØhÕj7ÕþßÚ*ÿáGáG³n»{"€Þàç/þ繡þÕù9­ûWÅ ;y¾³Æ SñÕõqëës¿=ÿé<Õÿû{þSªþýß#…— Žÿ©–~Kt°(:\…¨ËQr…èL—°ãm¨Y"@à`9Z(DþN1x?…ðG‡cPFQgÔ²âL•Æ€Ý1ùMÖ>þxÚ¾3™5lTþ›æ¦dÕ5+ ¼%ë Ÿ8 vw˜Jþ0âB€ËÅSjù] èÛ§¼‚Dñ¯)!`¹Ò‰’LP·„!ÀáSÇKFeðÖþ-ÔH¡¨ˆ'W¼-.º¸ªzÇ«5ºæÚ zæNÀŠÎbX÷ªš_^àIáட¯©üû|IûÿTå­º§\ï0l¿$‹€g÷„³Óä¤?×È`õÐS_ÀÀA3ú]§Í·oàpF± ÀΞt¢åƒ¶:­¿Ü t…þ `~°%\€ŠPhbi#^?—8÷là ÖŸÿ¸“' €âOå’.N†¹O^ª?ß*` ãL@ý”£þ}žM`þodgëŸ1ƒË¿m¨ªÿÄ[co)€‰Þã €ˆÓáˆp¼ûÖ~Åÿ#sÛl¾K}TüWè”^I5 O›ÿõ#OµÚÚÝØ%\]¡òo—€“0#€ÙG„¨{uü¹›‚ŒÐÖÖ/~ñ‹~ýÓ÷·V»º~öñQk + ¬Ì­ÝçÇ:Ç*æ.žŸZ[Å'è?ÿ»¹O§§¿ß¿— ž¤lû Qý/:B–†‹.'C…eײ ù»ÃɽÐ'ÄüìîCÇpZ¼ÿ¢Öw©ÿw8œ%] Ð9KSN“ijÊÄ*í\Ÿ¿ÏŸ[¤âŸ[h&Ðøãr®AµŸê¿Â‰F"ÁÌN£!V€hà÷Ѩ°ÿÇ«Q—x¤x+`yE90÷ŸJ!ØÃ‰€ÕË\¯°OQ»²’H@tìN{ KûÂts/•xŒ@NÜg'0pÀV€’Æ è¢Æ¼×8>€žjíl—¶¶˜±+`™®äšé¯—!@õt QeòŸ.>®ÿã¼€íëÞ¸dðp½uS{¸¶"ÅR²ús± ¼‡=åx<Þ±îlûij=åðôÿJ03së)€;þ®€Æj¶À3, Ó ×±®?óÉJù +`ç?ôý\é³tæ~øù©æÓ}Þäm<¨7RÕ 0Åz^dÉ >~lìÞA,ð/ý¡ß×Fo½%@c†m˜x ÐáK(tw§½³ÃÀ^»½Ç aÞI®àO°Á©[|ÕFÖõz«Zû_®ým…ÃKhÿéDý?ç=ô +yxöñ׿ø—õõõÕõ9ð÷ªØ©Šß}w€ÕNÀeú×ç•ràÓŸýæüùß|O¾7/<¾v u²ÀT¤à¢R_¤Ú%@‡ëÍ@ñíeÿ+–!ŽÁê5‘Dù÷ùP”ý|° pÔäBûo*ÐátYC&L¨üçLTüûÀäúq˜Í# „ŒŽ4›j yî!€@“™ð…~ Àò¬®„bÃ=‚+aˆ!@`™±À +Æÿ`|Ô"c Z…‘¾lÊ.à’Šc föµP௠^ +Öàú¿¯ƒøx—í¢gëå0¯@ ̋ժVÏÐwGs¶³ UöÖ[-°ÐýI`—& š§Ê?^E÷úïK$eý?ÉQÁžz½¯@˜§Ì‰èòì&Ùl¶õûé7_±.+²¸õߌ’ë¡TœpŸ¯æö(ý£J öº÷NÀ¡fùƒöÁÁ¼ n®ÿçÉä³êøu:ªþ%])¨£¶>KÏþ3ŸQéÿÌ2Io öò‚¦`)ë~Y!ôü&ëò:õ!:8ýÃîß``€qÌ vÞâù?šFcTþ'"ÛBDCï) +`O£;‰†NàÒt¡?¨j«~t´Q/Ãa«Ìøÿ¥Ý]Ìž€艞óøÓ üîÒ/槇V§§WUÝWcÅÿ¯®J—¿ºvmkmM›¬i·øø_:ÞZÃúÿú§ŸÎ]ú×ïÍ÷æ%€Ãò¦ß¤ÞGE‡«èÿ*£…a‡D¸BËEoR ð«‰d#ɃîËs~8…˜”p8ÊëÿN—³äp–àduZ1û‡€GtO4€‹ +HPùGÁa-UÅ4ͼ hŽevj ú¿¼Ë +Àè°ìRÙ/ /»°Xˆ.Ó{V° ×* d€qeà­p5ƒàRwý—€Œ <ìŠz™ü?öÿ÷Õà-pLñ`ì¿]éVvˆŸíEÈmxùÖÙ>±°¢ØˆwY X÷x´õä`àá`"žüHÒ¯E2‰{ Mÿ@Ý ‰À¼ý€Gg§Л²pÌÅb5`ì= –¤ß ?z"dÀ>vNÜÐ̺yÀ @·æ¨~„`1 Š¿{æ»Ôÿÿ’W2æä³Y‡.XÒeéP@Íz½^švÐks}Tzw üÙòCȧòF±Ä‡LÙŒy‘?˜s1°‰ PRúqmØž°MlG&lný¬ Qý0²# ÀC¡;D#I ÑH] ¿¦ ø{:ò”Á´jµtyw£\óÌb .ÿPÿzy@ÏYÿHß¹_€%޶¾uýŸ˜ü‹ 笰®×žL2–ñe°±Ÿ?ŠÄÞX,jRëXt8x-ëV?uÿô +5™>4™r}ÌôõñÀ|Ž@À,78Œ€@^ Æÿ±ØïáGˆJA”ÓˆB¸ë¢ëe†ïÔjl¨ôW'€tm¼ +õ<² +Xæ¢íƒ\ÿE”æ>E<ø³@À—è‹< @€°]S ”aÀsÌ0Zv ïT=µÊÓ­•0(NÏ)Ûé9° Žš7 6Ð2€ $=`þ©èóø¿A·À NFñoÕËuaå—4ÆED—gômô#`ÒŠ”©dÒ_¢Þ£ÙîiT$€üs¥ª}rrrE[ 00; +çÚ™ÙѰ[ ²ÁŸ†è‘/ Å +`tFìOFq½bß8— ßÖ̳vt|PõÏZƒSpõ ¢ê[,ýg ôA½E'ã}ÍèG €öTüPotBPw †¼a ¹€„ØúwB#ÿy06±Íóÿ Õ›Pý8Šïu öPþ›„šD;ÑlTjj€ºóŸúQ«'P¥æ×{P¡æŸ1€¨O¸{"€çþ…þAÎÿç¹õ!øs­?–r¿Ê~”×ók]ÀÕûøÐû«kç‡îÑ?ø7¸¯¾7¯ÀF@Øcàï¤Ö#€·.W!Š…€"H€Ò‚ +Pý‡»KÃG/ød&I¯w‹„b9ÑéÀV@~ÀѨÓå²ÂÐd5YL~ÓKM“¦>“šð€À7ýç¸ùGùÇ* ¸²}úhÌÏ$¿ka….h:­PýfEàJ $@AÈò±„µê8úg‘Ô•¸4¨†£³2 V\þk¬ïÖÓ~pg7á`‰€ÀÙŸ +p€yÊö–Å °¥FïUìH4ð/À 6€»2ˆ{[šP¹,i][€¬Ä/„vÕHT“  ¥ðÖã TÿËØ+&·[–.Îj€“XŒž=§8Öÿp%<ªü¬ƒ ÐÉ̉¬P!EÿOUœ®è7ád´3èL0%û[Ý{¸Of¤þÓqe£~޹̳&Ôõ;:iþé:Ë +@hX gQˆ O‡Ò}Œ‚L d5PǪ?µ€G¨õ×°ïœòÿco‰ü_Ôÿ¶'6··Q÷¹þGŠï#¡÷Šïî½~ŸúùÕÕû¨í¬X]=¾¼u||­cÄï”â¿FáX&kýsÇ÷‡.Îõ¯}ï¾9/Ý +øà²X£ô‹ŽP¨äp•¨s…ÞD& ;iI@áØx"N9oÔè%2tj&D®Ç8 ¶“iäbQS u9ÎèGQ“Îi’ÚoíÀÝ>S_î^ß"c38€pÔÿó €ë“ B#˜ìdÀ 5Déw!aÑeª÷.gsa×ry…¼ €)@zEö}T*ÇÙ¨\¹Ž +ˆÓiÃJ¸ß][‡OSgö’†øŸ/TÿOõß}kÿ”ÿ§úo¯€°Ëో‘¨=^j¾€i0Û 0P>c àV˜Ó€—©.³n¢BÍ?z>O¹\¯c®ßb‡_<—q^ô @ñ¯&ãÔýc+T/×âå²6³à>¯œI‹ˆöÿÞ=úµLzʰÙÃŒ*ŸŽ‘¶ëwÈå]¼ÕdžGñÞ­CÙýÀ‡Ì »×~øÀ²êüa5^ZÚÇ ¬úsQ¿éMÿ³‹©ó·p÷?¥Ëæ³JýÌÂX€1Uó 2}¸×—¦Þ€æŸ}òFÞ ÐiC¶ˆ=l#€1›rücpGíþ3 +0ضmo¢÷·m;Šï9Š‘ˆ#ôÞrh9Ê­þ·©ò·š{G{{G‰z Õ?}@µÖ"</{ Tv—Ê»K'œ,‹XàîÍžøâ‡ClÍÍ¿¸>Ô?=êOǪ´ÿÇ(òk€[«<âSBúøã5– ýîüo¦{àÛƒ5ø°÷OÑ àx›À3ÑÒÛ(ý.v ä  a_²_Š{ëbô‚´×æ¹s¢ßƒ•ÆœXÌp~x4$ã“u +EߊSÎ2Õg±LšèÔ×÷¡¼€‚of ©A€D“7›çÚ ˆí°ÞŸ8 +Ý?=Cº¡šëè +az /^åK‚ âÈ~€ˆËa°€Z"Äînp”Ê®ˆ˜x¬†ÅOmž=@ÅŸ×ÿk€Gp ÿaÌÿ À Ю1\…ùÚÓªI.PUéñjgl,@õÿv{¼ÇwŽÚþ:O”·oKãÿ©ÐWýŸd36J6T + r•°f÷e à,CçYüba ¾ô¸Ç·K’!h€QÖ¬Õü-î‰-}èý£Kš1µôû‡J¨ª=æûÝĆÜ3Ìý#Zê?sŒ°í¤ÕdyÖÀ ù?•ì)jó³ýó™T~,3èóp€µ¯Åš|«úe&` P`ømGÜÂÿ8(o°àH T{–ÿ½%þ¿lþÇå"™ˆØ6#ŽíH<T€8–];ý@—æÃ#FTþ÷ŽšõÆ1ÖHË`· µ»[ñˆ †0p?êå<ç«Ãèÿúéôôùùµ¡yê÷Áþ°Æ>î.`€åÿãcY  anà>>öø>⃇Îÿîw=ð< *¨æ;@°ä€ÐåvPäT WaØ—¨‡yÎŒ/½Ô&ÎÕ7ÎmH¨`?ªÿ±Ì]Ôj5ÝõD­Î”)jò[uð˜¢SÚ>úNOÐõCøÇ\@“n¨ü7yE€í€X8<“èA¯ýBÔ÷Pð‡WPþCﺖyP©C_ +cËq˜è³ °Üá4@˜ ÷­ÐeðýxF,ÚÿÃýCEÿÓá¾%@*ÿØàÓ @ÊÁ—Ëÿu;nÄŽ¥°ägO`HÎxÚ¯°`Öp;@èù1ð¶À '‚ºÿÏÿ©ðs +@C™Cÿ/óɾ;ˆyË謌Έ`€>€É´‡'œ;À +ÀÑ“. ÇÊàp ãt‚Ì”mT Åi À ý®ò¯13ªú³ý_2Iõßb±Z¬Ï¨ÿù¬CgE÷ŸÏZØ (H_´dôG÷tt›×s>° ©~TýYÐÇo‚t6ÒcFäþʀܿ}lx‡‘&llÄËÊþ‡Ç†ÍmºŽlOlF¶#Û›Ø,ò ^ „ø1¡Ðÿㆪÿ8€úÆÞÑ‘ªþ5º€‚Ge­FíÿÁµƒ%¨X¸û~@³fgoõÜ{Ç×ýýýŸ~Íß*7þ@ÔáóF:}˜û0á“ßUµ HAÿ€_ï_½¿þWüÉ÷ï›óÒÀíËif + "Ž·]ElJ%ê± `9(×…B,剖ÙÞ=~7QÿÝÆ•:†öf b¿5šÃ*€u*j²ø©-Wöõ™,tÎY>¼Gà*!UþYø9 Ý€E“?/TwcÑa, G…³ B2Ý¢Ë.40˶¸ºÀ–@à;Û2[Ù•€òT«€ÿÜø¬Ê?«ÿÁÿSûÿ¸ÓÿK @XF<8°Û¯—y½?öñ¼×ËÞ…2òx=eqä À>k öŸEôvT„¡ü·Ø  ÞBç¯\þ°ŠÕ&b¾d`œ. €ýÇO³EpÁþügáàž…M¦20öÔØì±"á“Q·Êø{Üññ›9T€÷è ›.èþS€¼+ø÷££§ .àädiô +Ì’ËuO#&¿èÙg<ÛaGvªdU‹tÊ#ö—ϰÿ—ÍuYÞ dÏOl•tLô©Äà ÀÈpE@ƒÕ~:ªúÈ0âqÛØ:Æõ×™L° b˜˜ØDõlND"˜póÙ$1$?ÑÀÎH›Ê>Céýåêèh¯Îý•@ír• "1¸VÞ­Ô®‰ +P“„èU¸ÞñµÇüü|?´{Ôæ¯¢žÓ5« V`k•©ù¯­c €)Õþû[„Öû׎‡þêoþ¦¾õq«–þ4®b))¢ý/jõÿMG Ј<¨0ì«Û“uobœŠ?¦¼žúÆ•Ñ%8÷$Î5y£ßlÎø±²4€I ¬&(`4yc²ïÃ{þ{Þû~À„Fè|Ž µú###ÒþChÁ™AÔÕp†ñ0X„˜€eó+P¥ +x·XHH°o¥3Hc`]c»Êu™*@ÛtßêÔÿçO‹ÿ•ÿCªþ_¨ UÿGfo‹À`xwp÷ÀΛ€\þí’ „5F¼èâ.¶˜÷VnŸ9 KbŒù Ï”# º|:èÊ“Œ¡ôÃP¶C‰jRS–ãÀ¾$>@à†Ý·nÐwƒíóLHLž«× Å¥úã´DmºfîÃ6ÀÌlñBo°á10ÂãýÙë›Ù?ÈÊÿèh0Й@û¿¯{©þ'é4jµdŸUÿ}¾RÖ ý?ú}ªóz¤üBô÷YvÀù äÿAœ©ÓÚŒFö÷Åh4€〠ÞC÷ +©ÞÛtSø0›ÑFÐÀ`£{øË£ÔÿM~ö ù¿mÛ¶i`€a›ê>À&€°>"? hÿPÿW€@MÜÙ¨¦@ÀÛbà5ȼµkpÂ@³º7è_À¼wþ êÿ3ý«¢þc)à1#ªøÜßâv`à>ÈBÇk¸ZZ_[›ÿc<Çq|-¢ú_p9E[Är8¨ø—ŠŽ7 DœŽ¢Cb™p '=žxœ^÷ôZ¯ãå5@5» !€9³“ËÄîæüœû¥¶?jÒ™¢yðÿ:÷ñKõ$ ?Ä à*fT{Ðþ̘e Œo@˜#À®ÃŒ´òOG€X¤{˜bF‘ +; o.£üûÆ«ˆÑ­1{^)  Žô% @Œà÷»€îAÀ—€èþðÑ-÷m7ž„íƒÌTx»¬”Õ å)KóÿR$¥K§8hÿ¸·^©@ÅW®{[åºÚÄ5‰¨øxC&x0”à)@‚¢–Áq Ÿ—©%ç­KözñêpØw¯ï†ÅroÒdõÇ2fO=¾4J'”u>FÙp ›ô§â½Å26&€°/HæÈàS`K„‚3'W:?=,‰° D€K»q‰BðåxmyÖÓ… 5k ê ýÏSÃϵ?û¦ÀA´þº ©SM§B„¢Û~cØÈëF#½?Ÿ·éŒF‚ø@¶‰_ÁüM€1üW[þí¬Nl,ýÛÜ´mo6©ôoàc@;Œ¡£F“êýQ› tC{{GGÿé›5xUkŒ ¼µÚ5ïßÖvÿoUþÕF Ϻ÷j\ïøš?à¡æ×?ø³ºtŒ}@.ï[[÷·Ö¶îß¿ÏÓ{$@+ÈÀwîͯ¯®}ú7ì€ç8Óo +. ú‘w"TúÁ”TÿCŽ‚¡(:T“q»§>ΙïèïâWF-%ÎÕ›\·GFìÚg »þœŸý LéèBˆ`Êb @àÃ{“ظÁõÿªBÍ‘s|ÍóY 4Ë*ר ¡ücˆEÐáD×í_è]` €M€Ô…ÀÊÖVÅ À#›s,©‡êKÛÄPš‡"MМ€ºÜU À‹3Òþ1À€ÜÿÓù0ë@fàÖ²áÃsõÉ3òz=Xðzj—½ žõ¤•õÀqÀö2+@ê+ .}d2QÍøD’P9€Éª–\Kýkõ_ø–G·÷ÏÆàÞ½¾«}7&±8œI&<øJáÑvø £¾Ÿt3Ü¼ï« _xº÷%ɇÊ?~ °Õ‘¢ÛŸÑ¾^'ü@,ÅìÄ0ëÊ>óÙæ³Tþ³ŽlÞšÕe³:ˆþò¼ˆùÒ?¤þHX0•tjêTæ1ý7@ä§#$`ÓñcôNŒè"€mx¿aÞ?„Dô7a`à„aÛ„îЭas¥Ÿ.67 ›2x/„3'€#ó›:ÿf»ícÐ<ØhnÔ7öZåçkתÞôe‚Þr¼å­ý‡Úß@"¶—NèL?ḵ>îÉzÇ×ýC«ÿüs{1`¦ ‚ï‹W¡œ_ï_[»Ô<×ññMd¸Š0uDÀPáw”\%—õxù.p`Ap@!hü2÷Ô“’ôZÛ©aªÃ&„í{ÎÅÇ.tîn&õße`ÊŠæßd°°NYPþ'Mþ¾¾Ijÿq¹Š €~Åà 3C€s#fØ#‘,³ƒß G¯øˆv…Q@€ˆbþ±»D1Ä\-K(Pʇ9À¸&ì¡ C`O™D’.À-`Feð^/Ì ú<` .ÿpÚçîŸ5+`·² K€^@ +(>h¹@˜iœµ ÐÏíX¨€ˆc À_hÕŘðìÿ½ûDË(ápFI”úg BE9Î’<†[Ütf ÀЯ¥‹}’£Š]=c¡o_³êŠ z¾…3XˆÞi@á“ÙÑ.' míDÁÌþ—À…ÃÐÿÁ7TüÏìÿ·ôµÄµÕÀœ ñŸ>›Gçϵ?ˆrŽª®³ÙŒc ý¼æÏŽ€€Æ #ø0 + 6 ÿ±ÙTôϘMXº£­ÿÁ B¥£Û¦#¢Š1ô¬ÀxÒ‡}ŸbGõvC!€*ÊÿÑ^sƒŽ–7¾,:ÀZðèn¹B§Š +æX€ð.o³ôŠ\ïøËÇtÿÐü×’ÔltÿxMÞ8fùÿê¯b/€îϯ¯ ýægüc|ûã§éôª™¨ÿï8"%›­XR Ñá1Ç&•GÃ>O¸nWÛÝžsõø•+î0@üܹæÞ¹=VÆr‹°âÙ¿Õù‘•1À”@À”7Ñ‹I!€åƇ}¦Åt(>7Í Ì# Tÿób3§¡ ¢~ö m@X¹þ£ë½â Àe×»àËp©ÀŸÊÿxW²<穉ªÄ?rùÿǰ”‰¨UÀâ0ÐEt3Ï[·?yŒô?NÚç@ôÿûnäãÎ*:ñV³ñ/ Á€ñ‚Ðà ÷YÿV°gÒtâT^h•Ë­}¼ýï©W=Tÿë~_—GH¤/‰ÊŸH*þßãÑø»¸qýwwY¿8€ú©RŸy1cNàWSÔ†Ì6Èô_KÿëLï©W)>ûjÄï&À@O-|âÖv´8 -568ÅpŒ00]ZÚˆ{•£ßάïÙÏ–*ÉYʲ ‹þaúƒàìgy–rJà€ #Š?•s*¼{£1HWŒy£P8 |1 Þk»Tò%ðWvÿù}èþ'xÙ¶aìO`s*€âfH®œ4:7Úx¬¤V’G‰FµJÝÿfõ Ài`€Úe€øn¥V»ÉçÝ]9êíBÄþx¿WåzÇ_<æúûûŸõzzÌ0àøþÖlá Ö†Ö×ïÍýâ'½-€ç8nÕÞ`#@¼Ø"‡3üJ.‡«d+½æàÇ1€ –Œ'ìu—0m]u×ë‰æ•xÊÿßíí5107r1ß…ýŸuÊO`Êšc-`~jÊdÉêoPùŸ$pƒ·Îà@ w°ÿ‹Ôû³WHr}är"u8DÀê¿ ÷‚Ϋ¤€Ñ÷Ù èýTà},J$°2ðx[¢°³Ó |Øœ–)€}P +ŠàiÀ‹:ž¢ú?ÙüD3b p{_“rëat Œ€ù¸Îõÿ:UþÖBKâ«’T®œù+¬& ° º‰sÖ¼XñK6Ðëû’Õ„:ÿX1Ñ<` €¬bc0.Àn‡C¿Ø°à¬(._˜¸g2Ý`yé"<#‰z}!Ž%¤=i)€‡* øñ€äÿlmͰó#¨ýì ˆ<¹™N `W ÐL×¾ý† 8 „KpÅÂd¬á>ûÉ–¬%gÖjµR¥ç¸ŸÏ,šõ¯^§ÿŸÕƒAêûé¯~Ô~,ý LƒSA£íó6пbÀ{þ6nõßzkLxµ0±mÛž¸c˜Ø6lcùö?j€€Å°|˜Ÿ¹BÐÆ| P;+©@ºÑ óÑ!€ú8B="ÀQ.ïbàrí?ÔÒ–ÊÕÒ®ýÀþO˜„o÷d½ã/ëýýóŸ>ËÂo•Kÿº Á13«kkýC«ëüÇé€ç8®¥/ +!Uÿ×"¯9lºwt6ÌP÷áÞ¿-€/•‰×ý‚|×züçW–œ»²?’@†ï¡jÚ™\Ì Õú‘É©ƒÀ”î#ÓGSy½ÑgÑYÐþ›&oän|x2ÀÅ«àýÍÚ É×â-È`‘¯ +àœ¡PÔêŒböï„4ñ=œ°È’@*ü¡‚²XYáD ª¯êKó%M3µÌ5¯Ò2X¢[·¸;#€C±xüô"€Æ< +8|¢ÿ„ýW&ÍÎ*ùD¼€*¾˜XP^À^,âÕ< 28ó À—4íelÿU¨„Së¿ÐZ¨0ðp aÕ#KÿI¦À0@ÙˆÇ 9ØÙ%ù¨³¼@hëÑ™0¦É{“ö-æ(ͤC…#€°¨qÜýKÿOûƹ-HN8ȇ¥|aá&FgºF_¢º¿èÀ¾8-ÙኘlÄè¿ýMžlÔ‘ÍBXšó_ŽÌèƒúlžÃ¨ÁGÝŸàk4ýXö3Ù +ˆ— y<¸û7ŽMŒ©ïÓOm¾Arÿ&ùÏ"€;ôð¶€wd€5Â1*²ú“8ô+$qéBv¾˜/JùÒ ‚Îuªþ{Gõ:!€z-}9=^Kß¼ @¼ŒþÿæÍ›eªû`?88¸ví¿ô,{Ç_8>X›ÿ¤ÿ‹oþŠ*@e¸¾ºº~þÿëižç8¼X.ïˆØ6›Îñš.Rrpè6*ÿlâpÅ<0æ×öú9j鮌.ÕÏýýÌ!•jŽó!0"*€˜ÉOåß +÷Ÿ)Ë]Hÿ¬&Î2EoYû@ÚÞ˜„)@ßâÕÿ€Sh‚þÇôßLè '`1“ñsìpÔŠ¬a§Ëé +©ÆŸž¡+Txw9 +ý_( ª!€@k€É4õ©ˆÍÀAzo¥ÌK€vÍ Ø-2À[î§DJð%/ÀÃçD_<~ÂW÷ßAÊ€»l¤5ÿv €@KSò…0Áì™ÿVÄ¥ÿ‡ ¼À€òBËÓ*Ãþ¯ìñjUÏx¬?|t[Mð%< Åðöº©ÿLËÏž€p¹ýH€Þ¼g™ô÷q®d&Ã&„7*»üµ°¢âîÒÿýoi Ú@Ö ¢ŒcWòÄð  àŒ»£8Mø’c½9ðȽÄôýøfÏÕåÊê²V«"=,ÊÅc]«ýA(ýlAƒ1ÈKƒíLýyó߆ÀŽûe €Ê;C€ ‘ýsÉgÍ?_Ù”ñT€x$²‰öä?ïlª úÓÞ,:–¹ú»Š!$j¹çFc%°ra…@ò(A@ *ÿ¨þõ2–.§/W/W½­RoB@€êÿ†âv+BÐôd½ã/5÷ôg6ôí^îwh0Ç÷ﯯNÿ_—þóïzà9ŽÛé È6ØÞ±Ù0 «ˆ­T*¹ÀD^„:,a`¸â©Wà©ÕÏ ¸ ÐËåßù3 4î{Hò1'bÔ­ÃÈor8ý&ÁË],@8…½> Òo|Ø7¹¸Øw•küÈÕºb`‘úÿEéüLìÒÜbÎoòsаõÝÀIà=Ñ:BQ—!ÍÌ´-php›€8ª>zýª²P‹›w¼€Ü¢x„-€5`/€/'>wý,ä?÷ÿšý/Š?«Ý¢–XÂðà@CöP¡@–x¨œý˫ʴ{ÄaŸŒ…~vÀ¥QMVÙñ_ ¡9’¡“I1R@}²¢€ Fyå‚Ob»øÂä°éž^oñ#SŠ€Çs_”Û»2ö×€ŠàzOïDõ?!œ€a~˜5³ì覆ÿK @— ƒÜî8áò7þ](M•t%ë¤5;¥×qü{ã^^¯Óу°ÿ×1åRwõîÿ1áGAÞÊŒÆlþO(Çÿ Iÿ1 ê56XË"6 À‘mÕf{Pœ€ .Ä~ó­ +¿o2š_ÉŽ¼JCÕŸÎUÙ$ p3í-ÇëÞÚÍôÍ›7kµJ|#ŽÚ€•Õk×®a +0ÛË졚om=Y_ûV¯§Ðnu1«s÷×úó»‹ç{à¹@êG¡ˆc„bä5Ãk6M)9ÎרúÛþ7êÞ±±Qhäí¨g8÷ÔñúN€ƒÖ  <>Ù· ý’Ÿ‘¦ÌëÅÀe`“Ébšê›‚ +0kÊNö™,“t꛼q£O†Œèà²Oõ?³HŸ%gÊ1 ã+z3€w­Tþލx¸!§Ã)w])^Ä @€í€©üxÊ’ ` >Â̸AÎKÿß!©üoiߪþ©õÂÁÍA€* +P€‚à¬ê¿]Œ¡(_W èÿëØ(ÛÏþÕUKøU0ìnÐùW“Äü@&4hâd<<hŒkõŸCk€J|·kÀ¶ ˜wH ð ?ujþïÑ/W.—  §^Ë@xôTp¨¤û£pîÝ8½ƒ8ù„OF1,¢ˆŸòdÀÌÀYx%«5kbƒ°lö^ö†^oÒgõSHDù×Qü ‚0øÃ(Rlþ¹ü#ƒ€1¬ lQý  r”ýmöýÙ´¡þÛ¶! ;›l´1lËôÿ½a3ÂåÿtÀE`Ø—bÝ|`ãÕq_z<¿¢´ªÿéêåtÚÛŠÇémzä&dåøÆF|ƒ@|·|Pc@`¶7è_yP{}õ9rüŽ5*€Úÿ㡹þO¿‡õÿU€Ãk¡HÑF¯ 6‡^Q^s¼f+9J%l¿£s¼ƒ•¡mì‡] ž@kßÀ`Ö~ntà09PÊ%lç·OßÅÌŽ¿·¬ÔøG§Äý—@Þ2e™âôSxMj‘p\1_XäŠßG'>úèÍ ß—ÏI_q†\lûƒME6r) +“'™®@€G™>6®¦}€5e§'•UfGð` Ë +HÛxn=]ÿ¿ÑkÚ~&:½ÿ¾˜² ûÖ£ÙSÀ6ƒ‚Oèi*úþë0†òï:« žý/*6q,ÿÁË¢)%ZjøÏ6T’¾‰Fƒ—x±PŽ/0 KKÿ(‹—'ŒÎÈ +Пc¡Hf±‘`] +¯( À¨ûD„þªþÏ0ÿ»Ý?mQ鿲„ñÿèRXXP'È*Öf‡_Ï|ë#_ +€=rÿÀ0@µ?ŸB +E æƒ6F:ªÿÚò¶ Îð`ŒîÓÃ:´å ŒÑû„÷CyÇ%õk˜Ø„úÇà=Ã6,€ïlßÙ¶E Ìý# +ØQ¤òïb­Zf ”úÓN ã/ç}Äj¦|é¤oÜ7ž¬§ ¬µÞH_Æ  ê-·Ê(þTþlÄw ”7Zeo«v­ví 288øI¯Ôõޝªÿ¬n=™þdí¹¢æ8}<ÿ»é¹O{๾‰?M§ŠE”ÿÿjs@€d &¤¤³:^ÃNÀ¶ÎðŽ-Bïܦ‹h2Q_Š³Ôªÿ%‹¬66þí‘?šI þ?äXó"¯RÁš¦r&ø´LMÑ=ž®ƒTùõ“¦,ìúþûâ¢@9›!è2Ñg€W©8`‘ÊŸ¿w ­&§Sy¢ÓJ=‰@È}׉f^e2 ZpuÔ€`3} ð—¼à­;çÁº”XîIÃjpÿt@üðÛ¿4õ×€[,Øws  +„í0P~¼ÂxU$pç(/”íî³ÿ¥P.ÀˆñkAäå­/´¼TÖ«œò“ @’ZP |€HPžúºÿ…ø{ +€_d/±S/úLVÚÿÅL.@ž…J¼Âô?3ú T ôÿîÑð/7'Ðÿå4Á—<¿QI•=€Î€J ~áïéŸØ´Z­%Œÿ©òg™ÿÇ +ÀÝ—|à ëó*ùApüFÿ ƒßOЈ[«`ï_yþl«ä_Õyþmƒ-°9¹c»ƒ‘?›ˆ¢?å;úB0<Ù¡A¦¶ú£¡ª!x?•Bž½‘&Ì7^O2ÆE—½õzŒ¦é›­ÝÖËõ8ý™ÕnÖ¼Pƒû½b×;¾ŠÎÿàø‹þ¡µçûÇB ?ž¿ôéôô÷ðÛó +ÀÖí›éåb„ŠÑÿë‚[°±: :‡-R‚_Ø;Û6:G ¨ÿƼñ_n\ úç—Vód¬‘HŒ°—Ö÷r’ùÿÔ=SM½ÉdDù·ôY&1˜ÔÃèsWÍ}¬ú£ÛÌ`±X§  @¯ð}Týù“ZïF£Vèu„œ¨ÿEþ;Bµˆ˜€@h9Êà}ÖR¡`?`.ªZ,8€°¯ þ’à9¶è³~¢Õÿ[,üCû¿æÀ}7×ÿYYKTy€È¨ + À#”þÊõŠwúðæ¼×ígÿÒZ/SñÇö^…ª¿øÿ³óocAä à€šï#køD HzTG2€*qe+¼Ä€%Ž^Âá¾}F–|С³úsL#Y§¯\¾a‰%€'j§ý¿ø÷Žòêþ9WF Hõ.q2:á­€™Î  “1£õʲu豯w±ãã­sýëøp—ñËz +ãE~‹ÛDU,„—‘cq¡êz$‚®Èo5R^' Ò–+u‚è{mkkúGi/RØU•—«HWìJ UWoí?ã·é„¢[)L¸ùç~žÏ÷Ø@švÒ¡™éðæØc!Ä>Ïóù|žÏó€ +à11I-Ñ•WM?ªeŠþtC:Ì3q&[Hkв ô׺̈]–‹CÐ ¡IÏ›€æ&7öÝ÷W¾.ü- Õþl½C´üEàT}*€úNC˜a+`n´£@õ}s(Kû«2<Î?ož‡§ñ3رFrÊb÷ØÎŸþ.ªçîù¨ð÷U+5­V«Ðc@Ãqd³€5TÿW¹üg n\1ËÿÆ  #³ƒßõÑÊBÞ¤³Ûóy=›Õ4„Î +À ˜ý™rÑèxÔ]^±Äÿë&ü£ÐyTn̘4þ—ÿWªÌŽÒpzT§JÀÉÀ>.ÿ9ПM€ +’-%…R8@z!öH’ŒuÈñ\A T8È6Nûò÷Lš!bÊOÈ/ò&A>ëw‰ D/Ò£·èÞ-•Y7°äÆ›Ûãqƒ5cEÏ €O/î_žJcBÀ$£·–ìMC¨îs[­Úõ—èî++Õ{Õ{Ó¸õqphÜÏûÜ à·ÓíÓU]þ‡!kKKÿßRëÒúâÃ#|—‘õÝÖÿöãcðû!»ÿû©w1¸ª¨0ò´¢@•Ȧ¢ü5Z‹tNMwâ†äKœð¿cåÜŸa»»ÏþEÏr à´¹ÍGõ àC†ÿ–¼£¥…¨4Vb}gtu´œ{¹åe ?S\ò° r`SZr¤b€¾CŽï{Ÿ“§Û™Rs(ÿNt¢Tþ¿m +¸žAõÏÍLBÿ…t­‚ù?‘€ +ðÿÕ²b €'&€"¨±ìw}½Є­§Ô…Ú¦ÿÿކ€…€SlEh:³`Dl(@x€Ðu?6 ÿ{•®ÓÏB]Åå?Èög@›À@«U*ÉZ…s4˜àüCüõ? „Úãô;6E€Àÿ0÷Ž4¿øïpÚcz–—º¦–4l÷=©ê¯Vï®âÏvì`M³ƒ»»ûý0ŒÀ ™h*:àwµj•”ÜNˆY˜ÿ üC9l2ð‹{!%Bù[1A6ìÀ¨ÀþÁ‰ÉIQû£KwÂÿ‹<þ‡(@ËèøoÊ›J4èߌʪYÿ£{& µÜãâͱÁàè¨ßŸæ¢?~7øÕÿ§Ä<@Ó4SH‡¯Ö[A'@c‹íÞ^s@tàõ×+U° œ¾çsâ¼ øÜ àJ°L Ë=°Üˆt0ÎÿBZ;;—v;GÖ«ê¿Ãq{ñöÑÖ/Žcðï‡ì½2üBx|œÝG!!”¤OèÝŸ(ì.~5qõjâ¯Õ¯ûª?KºŽ€Hü.7º Ë\ Ð>Ë +/¿—OCh±ÇR)4ÿ!Þ»y|ÁaÏPù;¬-V‚ÿ–ÿ»…®gQúcÊO< ÿ–TŠ~€lS\ò³ €8ätº·;î’Õéæ »q*cg`ªe¸¡éaGs¡(B¢Lk"@ë­\C"`åšHØ*@/‹Q!€Xx`–ŽÛTëÛu¾ƒ +Pˆýf¹ð¯wÌšêÿ©3 ¨Ž4 sp@ ¬xL/€WÛg¸h…À«¸×þ –שKs<ÞEõ¿j¶¬Ô|]X¤Ð|üšØ_Ñ“lÖDÀT`Ñüo¿ÂŠûH#`–÷Žðc¦XBŸ#š€*q±Ø^>h(€Dú›çÖGl1×`êüT7Óþ¶] ÀÐPdÅbG#H,¹sDè š?Gx_…¨þåè"YùlJ‚%€![ŠÞ ÿ—B…Bˆûÿ=ˆý™L(=‰IºBÿwq2§_vü'”OÌ'nÉæ8 šدÿÿËQñjWbÌxÅxŠ~iZú…4¡ÿ©à¥SLzÓôÌ-¢y½t¥ £?½¨|ÓÕÞá¿Ãj öúp5þe•àÿÞ—ô”n×®½ +à}ΞŒÿæžï |3ˆnWªa´ÍU³smÇýŸþyëòâ¯:—`êOØ›M~Åõ©çÈ +>¹ÔÙúÆsð;'†O…Çomö(Ñù„2¯„æUŠÚÄ^À_siquòj2óÇ-UÂÄ®ž#Ð]=÷–˵îª&7Wû ôøgm§_~™e€ssö³øÇ>_ËM‚}k‹ã+;€gÏÚ18{Vhÿ°ðw“W[XÿO$ÀêLñ`4%± +¾ƒØ.„šðO@r«¼ÌÀDsÜ- M°èú‹A¸ÕøÙ ÝJ^¸VéC@l$‚1€9µ"s\ßnÐ<] >5 Ðßáï0þ '`ôvÌ4 oF¤µ{ïÌ4U¬˜f2p^„8ßE$à,®óðžª÷8Ôpð ÕþÀŸV­Òxö÷Z­WGU(b"R\žÆ\6€í€H“° ðh€TÊÊÑËDIã+"s@ìR)ßT˜)€ÜX)ÇÅÿ–ð–€Ø ˆÇËü¯çw”Û‰¬éWJÈw®ä4«ÿ‚UJr„þ!«5Ä €Tã;ml$ì€pBýOo!›ÕV(`!À&÷LöHÈì$æ¢ûŸ€›eÖúqæoâý"PnúÿrýÏ„9\jЀp`ÔO¯ªù‡é­|M´D?@Óz™þ³é£Ö›ä.€6Ö‹±ø'ü‡[`àKß—¡ ¾ÆÁ÷Ÿû=áðÖ½3ïá•'²GæFÕGO·¶lÛœÑF§Îãüo¿~ýúÀÒÚÀÈQ€ßìÞ^¤ãámý|‡V@ç퇋­_ПyN~·c{køÔ¥ñèÏ&6ŸøëERI™a ¶Œ®NN&®*Ñ°á³ø ݯkfÀwwˆG¥‰swíþ!f07×fvæþ[Pý;n¢ú··Üt´´XoÚ Ö›ûY«½Å +bð)àŸ…€x¯ +8èœî@ýOÀ[Y–S’ÞŸƒÀü’”“ƒSÔ”Jà®h` 0®ºùM8ÅXÎ|â40°ìåL NœiÚgº;šFCæ€gÇÀƒf$Àö¡ÀúÁÍ€o=¸ý? ËA¬ýcô¶Á€÷;Ì8àæ& è@ÀwE6Ð4gÄgi Aà3X\_3þs ×þUdÁ˜€ˆôéИ½†Þp­´d¿ï‚°¹Hpì5×*@ˆ¦2™£©s9"ˆDy½†h +èú#¢«Ï3€}`Ó¦å²ùÇuãzÄ =^—‡8+ cß?°!쯱 åÛ'àßîÄ@.ÐMA–%É–’éD9(€ÃáÌ9R©1YŠŠ}î ¢¡;¢ P„© €_šjš™ ŒU€Ê5_×´0Øa`™à×´¨M5 €i´ýÍ"€í§Þ äºÖÔ;x ×ûÒÃ;ûVÀ<`~C3Þ”´ tè€÷YD­¶ƒa`û(~º'6ûQÿ×z+šOÓ*Iˆþzm¸†OUj•$•ˆ¾^Àuõ8ªÿ+‘H¹»!05G\p¦PI§œö¼ŽÅ”•;eTýC¦ß?Z Àƒ"€róÏ »`¦ +ñø k‚ÜvÀ&þC°BÙ‘:1LœN•Ð6˜,õ'¸§· @~t Dðoå@`|õ?w¸@È/q/@–äÿ7±×?Ìùe®÷üwK¾0¾¥×7· ü“ùÅâ.…Kã¥pøBÉãù©Ç3ê)zv@Œû-7oâ급½­›ôްŸZæÎÎÙGÔþ)”÷(þ%™€jSä‚T”}ètÒ÷“RvÉøw¦Tú +ºr¡ƒN/£²1}‘T êé"<@

Ÿ™n¬ÿÃaç +Šmh$e2;G8Rö>ÉÁ€šÈâ=>.ýö€XBOÇúAÐ^Žß‰Çã+qð€¸6L1 ý©òËj›qAúÿ8 ”T)ç”BBþ´aE2p(—Ò?SH¥?¦\6Å6`£×Ôpè¡)Öÿàúý_~ÿò¦Œ.LÑ÷ç @…8€;Ê*€Í[ÄnÉ·TÀ?ïþQå_ +_pŽc +pµ¿§X- B¨£P,þƒ¢`n°øB£×äI*ÿ}ˆ +H¦5t†«UcµæûÒ0j>ˆhô ´^™¹ÿÇ hhºÈÇœùï“P0ËÓ0–‹CØR®`ñ¤MLŽm`d¤µõ/žü‚€8F:GFF:ÅM¢¸ª€õÛzf‡`}©sq±õŸwŽrì"ÂÿOlÿó’â´Ñ h^Ql“ À?@"êIZ↑ÍçÅ »Z™ààôõîþ·n=[ˆéœß7Ç`îÃìòûÅÅqó&”€| ÿÏ]‚ÿOoæ0ܧºŸŠ*õQþ‡`|jS$±…õh™N)1ŠT +¥”Ýî,©Š•‰·¨›R4Œm@'€X̘ U˜››Á€LpôV|еuù0@Ÿ‰3Ja5}ßX4êM-xCð`¿ðuOÀ§È¨³ðY@‡0¬O™ù¢`nzÍ8Fÿî·ŒäÀy~ÐÛñŒ@|z¦:]íºÇýBuƒ‹ûš¦wUtª+Ãz…9€F…­F!}òÿJo•¸Õ´°ÐË +noRyÓÙßÌìt)8ç è¹óØý8·›»ülOu(Àåªwp‘ÈÒ7Çc\V«+ñx™m„ ÿá@67w$àt"F€|ÿ°Ïg%h‡5'ºþô½/ ÝK!dca " É6ù¿ØÿWz„òO3€[,þw„ò±.žø(ºyñV‚­ÿ›·Ôw¢·„}¦Zò”Â%Ï…RxT¨f‹žQÏ‚~=í×° XD ýBð]¼~‚ôàÏýM%€9 HŠÁ@29¦½Î†>*þQÿéCÜaøÔpš^½ÿl(ë³f‘x•j€»þ=~ëÝz#„¶ÝÁ“®¿¼‚lu1°Køß&´_nm}ñä™ååP€¥ÎA˜ ú>$п½Ä,`}qñ6Àâúm0ÿ{ˆ>yæ98Òá}óTfÀªm>±¡ØæK¡RÏ'!^è¡ ¡ÿÿ2™HüI {gÕÒ–ÍëÙ6l”}F¿ËÐk_µ’Ÿ[|¾›ÙÏ"H¼ØÂ«7­Ž¯„ýg¹ÿól Õá Qù_Þs–™¤RrA.° +q¢²=HA"H'Ô˜S•8Ã@F!Û¨ª'Œá„v ùft»„L ÓÙ‹€5ªÿ§…P\ÔÐe¸H`"â.1¨Î>°~þŸ~¡Ì@ hnòÛPcG°ád¦ Xôþïó$€`õUNÀàL€gÒQŽÇgÎW©GýžµŠPxÍçÓ¡¨ñ­V£Ê¿V«ôÖˆ kY¤uù ÿ›aû_Ôÿ^6.LiÐI¬1rÓSB¨2hG U0Wc¥¯‘HðߘéTã¼µnÐ{–_±]1d„¢0„¶A¹·–£ÆúȲ”œhý;QìSåb@Qû³@â}€\ƒ„` K€[Áøï 0ÃLeàÅh¿ò¦˜ÿÓ-ïûo*·ÿ››tëßTÕqâ¥ñ’{<|qZžñ?UÿEž`pLO§ýÜ>Kó«‡@Ÿ¦ûÿz%©kµ^8&©öÁp + ~…þ?†¢þå¤lj÷Uôë8š€ÃIPŠ|H"5QÕæÎÂ}†Àæ• ÀAªþ}U‹Ïbø,àõwLG@|ñ6€ÿè‰xìN3àæ!€äÎqy/™ @ÿs‚õMg 46¤‚ ÷Ó¸GøþÀPýï&ÑÞö¿Hwݼêw c±[þAGO@WeÀiœ3J¥’G£áA~Wõ úSõ¯kcÅàŸ‹Åx ð"þ´? ¤÷ÕÌ]À}øG€>7L “‚ZuµfÔ¾\­Ö4M¬ÀM-®AðÇÁ¶©¦ˆT}µ,*œ¼~4@/ýM!ñ°€íusï¸a\ÙY‰¯¶eaŽr¶vL Àò×—_zéä™Ö‘å‘VhGLø§Âþöý‡{ÛëtChÿðáoÖwö/Þ¾}û7h èï­¯¯-î-þ{+}ýúsð;™¿c¿û# ô¬goŠô³ëÙ³7ÑpôÑ!6@W©²AéO.ða ³³ñ¯ +@☠ÐùO¢GøE¬*¢Ý©* ߌ®Aäý 0 Œ†AØÓž3¦au §:(oÍ8€Œ©t5u€ÛKØ÷>Ü8´ðM € ;€Ð$ðØáÀ`š·í3PàW›t ÝûL4€pò«V§§Qù  ÆþLkØLÿ±Xá<ÀtÍWé­ôú8(¨Â~¼çñãò!@¬ýZ@od°“9¢PÎK¬êL÷ª3q;(‚€\ñ¿£ãký:ªç >|«è”!#0“ Ë+üõÝØ°T-«–£ü˜1§Ý#DÜp +däøj¶L á½ø,w$Ä(x+àÔ +ÀWhþ0þ'*@ȯDoaüÅÿ&ø0÷˜ÜbV0WUso¦t¦Ù¥ðOð@+úƒ\ÿkÙôX°˜f MwüEš€æå¾qýÅ#½h@eƒ&€ñë¤ñkà €Ž€)!x]èêºÿÇ!d’hPŽW}FM×?Õóù£èò:µÿë|r1O0ͻܳê[ @xʱ”t®u~ÞÚúÆ‹gZ——1X^Yj€Û»÷Ö›mÖ½ßð¯kq¢€ÅE~ßÉ!³ëKÿ>²øœå˜}åõbXý¹ô·ÙæéL¤Î‡B¡’Ààêää?OF³JåR>ÿ)aÀ†|%:þg­--Øp8졜•Ð_¶¹Œþt>Ϙ·Çb)Þt8R¬ ÀÒVm¨údEŽdYaØOÀÃJ@>ëÁè(fœä1³Løì„@—¯"` +yõ3lVÓiŽƒ?àhv·9ðqÀ7v¾E ÐÿwtÀ °nŠ1€°f/ÀL†ó€Dx@Ó€—γÀ$íÏÄYeŽd0ÿo†¯f$³÷Uªÿ©â¯Á(‰LÀ×ÿ]µ^hÙgÙç;?Ÿf[/ÊqQó—Í%§f@¨v޶bcˆ=Uü`]Í€r÷Á?ò±ð÷5®CÿÂX¯U þãx»¿³ÂÂÀ‰8"VW™!á÷)ÙÑ0ƒ€°¹(1Æ‹î¿@¿!& °ål¶‚¹Âî´0Š ÀÖƒþ?o(ûÀ‰MøÄ-zw’L¸ÑO×M5½µI³€^-hÿ«*¯𗜢€iÀ¨p°Èíúmö‹t… +  Ò'ÒÚ˜ßé§ð¢#K>ÆØš°_Èk«ÉZ•à¿VÓÒ§‚ÚëX% ×ß)xuý1xo"X耰b$õ<š¿kI‰LE2ì€uhyèÀe»‘B‰ + ú`¤r ám­³óƒåËTÿ ùß²9ý'0»È `ÿ—´·¸{{¯sooý7¢=€Ez¸sm½óoŸwŽtìÞ¾T$ )L°\5Ï2dÛ|b~€ÉIU½š5¨2ðôo3&º»Û“Ú[.ÓUmbÂÓ ÿ=ÄŽÅ"À\>/4€lî‡uVà?ÀM,ûÙ­¬pXÏZsì?Ùä„M’R±óú‡DSÐ@;è\Yȹý²Œ›$+}q©JBVY46U(6Y 0—3‘ Ž˜iA^¬T¨ZEÀ/™Æ @¤Ô°`¨.Ì= +¼ý7€ïØà<Žè`ÙÏ{î+ ŽÆ "êñ^¨ÛM1`¼±ðLÕÿç‰t™;Ì4ÂyÂ{Ôÿ¶’ÝÑø×“¾j Qñ²`ºýü´¹ˆ_lù +¸Uw7S¬&ð +?à#z:¤”Ó™rƲ5ÖLÇãíwÌ €}}hú¿þÃâ0²Ùl<ÞŒ¸ÅçRâTõWñp›AOæ#­èž0?¡NGIr„$öÿÝ@}_‰(Ô¨ø‘ ʱ бP¥¥ ãÕÙcC ÁËØÙÿoo¡×¿y‘ •á^Tÿ8”Mw”Ëÿ(á?ÚÿXÿÇêxÔSò ¢0êñýƒþËéËþ1áDØïð§éJèi4’û € @VP€d’> ½Ì~]ÓÿY<Ä3VœBZÀµk Ë€àý‡ø€«ÞA¯Ãéjo-«ëyzÖü.JÀz}†Ø}† °7l¯m†H  ¼BÏAÖ¶äºa÷ï‘‘‘Öë­Bþ>ÀãÿÚâÒîîÞC gÔííݽíõÝÛÛ»l/n¯-ºÿgw.?'G=Þ.z¥¤ÌCn4™Ò<âH$z`>úÿê$}6ï³Ä-Ƨùì§m«DîÔü&Øîî²Úõ€Ž€>Ç*À9b0n¤c¸¶9 õ,g9ÎÒVœö”•íD.>Œ9¥ÿ,ËïôS‡5"r`vÐÈɲ3æò‡¢fbaBÁ@â'at ‡c—Âáb0„0áÖ/ ÷‚Àݦ >Ã~µf@dhl 7àC*€õƒ^ë3€íoc¢0ÕqPùKÕQ€Ì”©èð +øBÀ²–½ K`a_Y†ÏDR}Ï7]FçM£Â lþšdÛ¼Ó Œ€šfT|ÿ±@¿UDš4~P€±·‘ˆ›öÈ€è J­9§=èÉd¥‡›:,#èÑÅNÀ¢û_î/¯”»ŸÎÙψd¬‘4¨f5°0]­V}ûYz2ÎeéiœÏe`=G?·ÝéP üS9Îú‘CTýS¡¿!‰Å“ä6Øü‡ÉÌ€ +!Y.À­ €1˜Èè@äoBaóîñ#îOÞ^ÿfÁ/Пßà”ý¹4Î诖X†ƒÁXøRøí`ÐN@ì„ SÌ€îU§Ï·Ï°_-·L+ !‘ è:ðõM€Ã©Àqÿ[L9 p +6Àìxà@.0˜AÆ42½€þ¦€33ûÖühä™Áýö¿Ï¨±p²æð|Z×k˜ÐȬøØë•ñ™.^€ºÂÛœˆ%Öò¿Îkúω¬`sÄ ð‡Ó(œ|†¸“ÃÛÿårû +Õô+OøÙ윞Í~VÓA°¹ÞKèïC£7ÏO[;7|ò#ê1ðCúIÍ­VE²…6 +¨þ ù7 õ— P„½a· ™û‰‹…E±%ó¢ë×¢ÁHŒnb6q‘ð;j4ù¿º)vè:®nFÇÇUG_.—*¡ù 9zÌ-¹SΔÓâ,â9àÊt’R2•<6z<1¯¢)) ¬ +9”اJH¾%ËQÕwG!ˆƒaHõ*Z¥‚õ6ö«aA]æ#"ÖСo숀Çö¶ÉÚ=Nû€Èh´ÿñ6Å«L2l Ü Ñý÷š:Àö™}0Cg“È3ñBš,€ À­bTô^”úèÿƒ hô0ç ÌOŠ&+0UÁýœìj.(€Bš@^¹ð𛀳G$ëü¼p;=±°?™…`µ_A¬/zèæÀU-NèoÕ'oòádžÕó:=³u=P êº?<[­)‡ãfþ(@÷Çb~ÐU¥guŽžÛ0ü/l Ü׆„ŸBξ=/±èÏÜmPíO/IIÁö¿Ü#Ë2ü0û§¢Ÿˆ¯"' àÄ¢Ê-vÄnLèÞø8w„û„ý +ÄŠ:N@õü”ê~'×ÿtüTýsÿŸŽ_Æ ÷ÓF/a ŒFtcþ´>¦%;²cÙËɬ~9iâ?FhÐ5+iä + +S0€¿„€(ÀÔp¯üÃí¼©î`8fÔÚˆ%–Ÿöf¼Þ™LdøÏ€§ªÿ!<ì¿Sµ¬žf[•¹ÏŽXÛ{cù£‘­‘δ~´Ü:ÒÚúÅÀÀ€päŽÓSøpqwoO¤±íºöfëX”X{ßµµ·½øg÷v'þÿÞÀ¯®¥ÃŠJØx“r&ªÿ'•„_ÊñU ûœ¾ÛO…•èg•€9@pš%¹| ß Ð `ì~EçVkßWB÷>‡ƒªÿª¨N]I²3E…WÌsÛyùž¿9¬ýKV9%;Å ‚]hÅéÄ4ÊÓP…*QªúÕwÆÝf2PØ޽M ËÅw‹Áô»V4ójð†=€vÑ Hê†2à¾öÍ¿éǨ?ê>;ÀÓèdÛŽh¹±üþȉ哿 ´ÿW®û[[Ïœøb`YŒZ[[ðeËB°¸7»¶Ë-Y—ëÝlÍ><±·»öK»»KÏ ÀQޝ¼®²€.“’T’l!XïoØB¼099Ÿ(E=ÃrÎb&Ê8×ßßÝ®ç…ာyÿÓm«msYæÅ ƒ»„ÿˆ ›ÿÖœøïÄþ¿*1þGÝî˜#`‡Ã›$¦¥È{Ᲊw§a$Ù¢6EMJ1?tlÊfš »ß €•Õh8öNt:ÀXqM€ 2Ò•Êpr¸Ré‚-€é³YÍ8ÅõwÇ»ºš‰À®‹ºwÖ¯ZüpMuˆn¿X3hÌpohjCÑ8Ðàe€† +°Ñðz¹)@ôà™œ@u&Ðõù*F­×g ‹]ïš‘48ø—›Ð²ñMÕÿÕ®F~úýÍ­?n”ÿÛ×Hd€£• -©n¢{1¿NœÄ¨VWÚ»9 èQ†³þVV¯ÞöJ¾ÕÿhúÇì˜ãzxö9ý  Ž£üt¿Î ú†{Š=­΂TÈQå3 ‚‚?XþÚXÀL/ÿÈJÈ&Û&ÌÖ=“¶Ä$¯D‚IU‚Çþp&vt\f Ò‚ῊaÀ8B²1ý–.„K*(€g +@ÆÿQú‡úyþïMLþ1ö/¦‹ƒ¡ÿK >0–óCòÈ7טÀàrRó¦‡ÐkmI ²šßÏŽÂE¾¹LŸâ'\»ÿžwë‡7¨³zô1ŒFÁY¯£PnŸ;–^3±§šÐ õþ ÿþëOÿXèî_Xå1€a3pûâúÈk×ß_Ûzm`äÄÈÈÚ2ÖZˆæÓ½åÖåe°ApkkçZ牭ÎYêv99¦_RÁ ß×–lƒ°Æ"Àbƒ¼›ÑB xí•û^ïìƒÖ9wÃ?zÕ¯?Θº3€š¡Çbö…ßöÝ"™ûÄÕ1®£—5ª×ÓÍÿ±w0ª»‚†ï˜aÛÃë×?£õÆç'ßoý|¤sk­ó_¹ßt€eP€Ö‘V¢Ë#MƒàeŒZolmÍú·Ð”ÙsµÎÎ~к¶÷¼pÄÃ{**Eçç7l¶ùù””³aY‚-ÌONn*‰’ž·ô[ Âÿ6c‚@9(›À5ä:×bdksYBÿÓ§WÛæ°»2×°·P9ï°§Œý-4æì¹Pèß×g§_)EK-“Ýt¤@œÜ.<ÀáD@! +PpKl`CÙO务h [ºÊ 9І¨;*+ð~›Î|nÄR ¢a` ‚L[.W+,˜Ö®†×Lü¯74f€mJ– €¿ÆžÐXGõ/®ú»ï˜€°‘'e“ˆ¢¿á ÈW/}2“y&NÀ3•dÅL÷ƒ °BÕžþ¯ü>­Ö«ñ: Ö¡À ß½dí§ïù¦§Ï³ª²]L¼MüçþJY´Êû"@®‰Ž:f[H"‰n*ÝaE©·"ã}Ï!V ›üß¶ÊÐü¬£g êV ¡ «©þ/é'Ó´4»À&µ)ø^[%ÀŽˆ‹ˆúKÙBê|Ûªhÿ[ +{¨þ{dbø'*c Ìú1Ø”€þ +ïø1ï5÷`Ø Hø©ãNÿŸ£ô¿€âßSòÄ~êímÌb£4.ûÇ‚¼ó7êçwƒþ¢gÐCð?7€Aî\ËÂù'™=  : ic—ÿýþd›ž5ôZVú‘É-à?Èé‚§NÁèGH¾qÿþ{‘©‡?¤s®ým?Þ€aŸxA×3Äpïù|ú‡1§=ö[ð/Tà¿(þëöžþ…Pwÿ•»H8n €õþöãÖ¶þüÏüâÉ­##k³À(Ñ8yr`à‹/Z!Ä1Ò¹Ø9B<áÄ,€k §ß½ú/–fÿtymöásp46æMÿ\U¨ÔŸß˜9$¡TC¶yº=“Wç©äVùêÊ9KÛ\ÖX]éï™#b«-Ø£ú¯8=‡@~ŽgTÈsâ ÿ[¬Ö¯rV«#g·÷•$*NJlÍUèìëtöÙq¶tðCS䧨 â<Y)¨•ü +a¿ìDI¤È¸5›Y-ߢ‹ŠHàw  ‡/a iÁd'€ÞÚ0Xv€ <ëÛź:/‰L`j0¾>Ø>àpØè€àqW C€lØT¸êD½$Ê4Sz# - ðp óL¶g¦+½ˆ÷¥7ºÃëÿº¦¡ €áo·ÀÅj Q©û+]ìÿC×”ÿìQ ôþ ð7—Áh„4°]üÛv`‰pä.‚s ’šK9Ý°Ž¶ˆXV Tžh_!€À·{ùÚ~Ç‚ÓRU è¹fÅÓ­pÄZÒUL@g@z"§RηPú§ +bøK°á‚æ?ñ*úm²ÂÞ?1‚ùš]6Å–°aÕÖÿ +à_áÒ0!ÀŽ”ð6Þ?ã<ýç&@ƬÿGü®hôyøž§ÿèþýÃSôCö_4I@‘Ð{¼ è' ÏjØù3ëµ$7üDÇü£cøº,a?¡Ð)õÑ£~˜QÞ]µ¬úŽ!øâÿÖyâ¶>þñ‹?jx¿uä}*ý;y0Ò‰ÀÀògÎ|Áó€e¼-ŠŒ ­-:'ïÜ ›½Ùµ­Î‘ÿwdiké¹ð¨UeßßÐ|¨”Ëm„¬È(Á€­gG¯&þÄÙ·LXŒ,MÏMôwwÉøÈ^4®·^†¡ÚêiË黫¼»:×Ö2÷™¤L OZ9´ÿ‘Ü×ç€%i i,(Šv«Nöþ'à úÛÝ)w*¥*tN¶Ëtn†ò¿‡P_–jýÿIŽB–h8äwĹ0êF*àÛÁ·=0ôàÄ£-ø´"j\_óÝëªÎ˜ ÀU›#€f@CàÚ·ên,n¬JÞþF! fý˜4|€þ]bã@¬vì°° ,ðßÔxMg@:©ð@æ™, ÷3Ž|C¼–Ô{¡ú×5ˆ¿4ìbÿŸˆToàò•«ÓM  öò¡ì?¸¢Ñ‚ä/÷6„ÀÎÑ;ëëá%Á©›ÊëÕØöÑ|Ö°XVâDVXØö4Y>ÎTÁcîé«©B¬P8êåÔõâ1s¸r:%ü€Tþú£Á I9++\•²QPä_Ê6© Àþ€ß3)³ù/n0ÿÂú«;Êö×rTEFXÄüpà­ñ¨2®²+ÿÆÃà%tÃ`þ +à-y +@ˆüZýQþ3ìû±À"@Ö²`pðòå1ÿˆà˜9È b࿬ÿÒY|ÍhÓ!­ÔuÌ<ÿÌèx7ý.–‡O¨\{“À{÷_û™ˆðoƒêí©Œ·}º¢cÄ8¿­ÀfÞ áÿ®8Cl¯?å¼ YXÀºr‰•Ÿ9fØvæ>Þzíþ󩮌|tæúÀ‹'¿¸~’ð~™Ê~!hì³9wx?pddöÆ×P&Cgç':·–ÿåÙ¥µõçàHÇìë—Æ•Éùùy Ö¼ØJÎm(ó +¯&&¯R ¢–|–s+HR-+ýýÝCÕ¤åÑ€>Õêê]Ë*4«sX]É·äíGÊTà:—?kíûÊšËõí³÷9%ÕCøï§Â] K*¬Ý‰0¨ÜÀB 6©ÞW Š» ¦xïOa `ù¢<©Êèüs&êÅDãP¨àq»U:/¾ãq‡cÁØÛá"˂܀–iÕ{÷àYçqµèÀ{€æ 3Qÿ]xHx¨òß~lP<ØðÿªOMí+\Í5€zSЄ.ý#^®ü…°lv2ÏDˆUÿîµJ’³“ø¥±<4¼Ók>£R«bSýÿÚyßt¼ë||&7 @¤lŠAÀ, +ôšó¯èÈÐoäè?rˆà޹ÖìèI4÷™aXªñ»ñ•sUËêªñ”V~1-ˆO ž#ÿPĘ’ú‡ÁÔ…n1 ÃŠUkÊ*P¶ˆÈ^û'À'ô':£ØÜ’bƒû/Æ]68ÿ÷ôÐkP‰J …ˆ0t€H¨þ¥hx\ýEUá`ÎÆ‰¸=%Ñ(](Ñö˜¶¿%vÿá&ëÿc¸ƒžÑàà(ZÿD‚Å&(²>à—tsÓþ¤†+ó]Ôÿ—MÁA^%Ô¶¬Î(„ô¡è =ïžz¶@§Þ=ÕPÜïÙ¨Y~Wð`ûÛ:ëõL¦}¦Rѱ’Ûù-<1ã½ïe5ÏÔwÔ9°äp¨ûQ÷ÊÄ +Ȭ¶´3lûhäÅG¶þôóë['nœÁàÖå—^<óâKg^låªYÀ?ob)°uà$XÁòUÿuïÎG[7Þß:ÑùoÿÐ:{Lm€~Ÿ`88®$æ¶yiÚû*%:Tþ+ó“óÊU%È®®LL òj¢¿¿#nXºÅ´lÛõÈõ²…¶XVïž>½:wšÍ€ç€ÿ¦ ýþsøïYüÿûìv¢žX éÓ鄿V£ž¢]<€ »ÓÈü£S–Ý’ì.Ѩ$S™#eP†@bRÈÐ_€"JŽºÃtEõOø^¾Ô´ Ë´Ze˜½€»|ñéFÅ*¶à”p3 À”ì¬7½€4ÏXb' 1ðÇ÷7ã› ú€Ž©L¦)Û‚\â—Í€°€¥Ø³x.Àô‡H€VéE¹?Œ˜zó뼆 ÝP%†€5ÀóÿcŸîljæñ€Ø,GØpQˆ›{€ß X/à +9‚ÔœD420—m3V-0À õ;˜¨}oá +öúµùuÎÈÄlBµ a«T ŸÑÊ›ÄX(5Œl’M†ý¯"©Tó˜”EíÏ‚•ý²,)¥fóÝ®0Zãц€­° üé1¾¨áÒ8ìÃá î’ççÿü$@´ÿ¹ÿúƒ£tõýÄý?Üü{Xàÿ¥†RŸ5ÿÜÿ× ùAü—µË~\õ_â»¶5=[à $xÁã)ö#¦›{ÁKÿï¦ß=•ÆàMS ø™4,?¾õk¦"™™®Šôà,õ-€/ÓÜï˜xÅa€Cȯ‚ˆe"ΔÕê1ö‘_üêýëýøÆf·:¡ú¿uù‹Ož|é‹3gÎŒÌs>`“Ð{º?@D¡svOÍ'>:q¢Þyâƒ7þuowiû98ÒQÿ›Saò¢ù ‚æPÈj 9RX`+ Oz&E) Ëʹ²³~ntF?kä׉¸ZŒêŠåîÝ»«–Óm«§YÐ’GFÿ¢`m¹yÓŠ(À1Gß§T¨þ÷¹%Iu§T™ð¿€©´;í’SB§ O7GÄ67¼Ný2•@²¬ô˜µ?õdh6¬šÁ€êÛ< #\²|kèLßë‚`xevÄ ¾iÐ Ø>¬üº%ÐãàÿµE@SÿoÖÿ<xÐl°O‹º3™2÷æyç/Òôò–¯`Gä€axûkInúSËQŠt} <€X@¶â«ß°Áô«¬vÅ"Øœ˜ÝMóÿ²h ´ À¬t|/€@ÈTÕcußÞC*"¤UK5n‰ÿALT+ N>„ÀmO¥x¥…@ßQÀÏ™’èGM —+lÿ ~6$ÁóJABVOP&løúP€¨:]TúKãnâ*1^ìÿ¡ý_"2P¢§>o¨h¨üó”ÂÎ ž’Ñ´rpÐï Žè=Tö{`¡åáiÕõ1ìøý„óÉ˸hc<Ààeý²ì2jîŒ}(f6]Ïëú¦ô}ŠžqŒˆ/ À@ã…À.(^›ýœÅú||[ €Àݧù=X= ~ÓX•÷tÀrëßµÀaÀºû»ûûWúÛ‘MY7°·õþkË/~°ub‹Žå­høöŸ9ùâ‹/  üomàQÀ³ÌgÙ `hëÆÖÖk#¾´·÷¼pÔã•ô¥¨bÚõBÖÜW}0*ck€DÏü$•%K|ân~ Œ:â¾òlÖw]ÛC/ÿ—¸eeåî„eõô*èh pÐMH9°)@}V‡5×ç ¨|ð'}5*óU)çVc):Q‚•À?ÈûcnUå¦ÿE†þÜÚ·ñî?ûSÍEü)O6²,6Ù.8ûQX¹Ýá ?¶ ƒ D° öïÝ‹ÏÄÔ«ÝÜ`À{Í0€}'Àû">] ‡äßPMî{ÿšyC„@pl À8BoÝ8wxÙ '’+‘f. õ¼e–< #è§·ÆZŸÞ üOê€x²=¹xwÎÇ‘¯ûÁk7~|âÄÎVf넘÷·ŠÎ뙓žyñäIz``àÌÉ“gNžáML:ü.×NæÄÖ‘÷ÿÓ?nÛ%€ßxè}½H§e~CÊÁ¤Ç*ôYaLj³%0¸ª(ã%ÅbôŸ›à• Ö:ÊUVnOÕ3Û®–êÊÊÄÄÄÝ»¬`/,‚´ÜlHx÷Ÿ-Qÿê×µj2–CŸþ1gÀp3dµ|ÀY’@{l9»øéˆBù§š ž„œ˜Ä€30 Ç©J¢O³b‹1tü tžÓ„ ‰À0®™±zíbX-¼€!Æšr5½€E  þ"·×¿ü¶@cÀ †¢½ÐH­:€ŽÉÀ¢Rö6®eSáÚ¾bÏä„É+¼ë§¥u®þ³¢ú×5?ç¾Ó'ý‹ÙÀÀt#@(¼MøÏ˜]€öF rgùž€9àTvî´Yâ˜g…×&uÖÂ(eÏaÀIÀŸÂ ¡¾„wô! … 2 pP” 8^‚þÉx€¸Ênäbº£ +?Å¡Y¶—TÜó ~?ðþ/Á:Žº¿äÁËÀæ@S0êáí?îýS™N,*~?¯ÿùÑ ÑY€DFµ4±@Ó€ÞÒ€þ¤~ÜIà>@$BoËê.ˆþ#€q˜s›cÂÿw‰¤5fo²ÀëýÃ7½o?v3^ÌbáRìÉ3€‡8ÿÑ3|jê»5¶÷ @>åòŸÅãñò1ÓŒÔg×Þø¯³ûþG'¶¶:1à<`3€0Ÿ»Tþ/³ ø4öÄÈôKÚÚé<Ñú¾¿öZçspÔãµá AkÈ6/±Kv$•…”мÂ:€ J4`Xâ?CÀ¨žëï~«{€½€×‰œþOL¬Þ]=½j9Í‹sþ[n¶  àhà¨/×—#”¿¬g³># åœnwŒ^M1&µxV¹É•pB¤jÿ•Ê{ øe›¢ªØ 7å[‰Íh"€žô¢tºŒºY$€–A8ÆóQ·'øö%1X òâ6–Þ›žF Þ¬X›qÀCS)½iè:ÿOhÿ?üŸ8O>Ĩ/è…Ix`6ù‚d „€áô +Kº½Wð(‹Ïbl:\ISÙ¯i½Üÿ÷ëI?ð_§7¾Èb3 ’¬Õ|FU„ÂW¹IDô_7ãØѿ½ì½iôÐíøÞÀ:ˬHv8í-y{~î¶:•DJýÒ ÀˆêÿTNJˆ`ä; +ÖT’À”X9„÷Ÿ¤Jx¥ £`“ûÛ#+‘÷‡Ô?†|z^« tßuÓ“à_w3úcàVKè ”xï?\º †ê sýÏ1˜ö¿1tþ1$ À + ¯bñEPb —_ý²žËî;b%à2sM$>q ‹?Èþ @÷{F/ ¿½Hd|<|I4ÂÅKa±怠®W^3ຠðTø¿¾Ý‘‰Ìt §‘ôøä=VïzÙèâ» þ³»Y@ª|Ì:DN|¼õ±ëý“˜œà!¿¸v²ì6@h°€¹ÁòÁ–Z—ê®—kçý¹?ù`äÆò1•ü Àìpz<Š€š³:¿²ZCV{¨Àq% +Ü¢ª"}š]97Q®Z’>£ïïôÈu.þˆž­Ýëë„-ñòÄD?„€mÄæZÿèØ1ûOYsv+•ÿHî \Îç“ɪϩÂ"]JÙ9g*àtRõow’X)ªÆÔI§>¸åŸ5Y€{åÿ­ÉIY~çEÙLpk€hÀ;a7bé¤Ò)’ÐßO'd*ek^¬Üë‚sëÖLgšH䑨l4éE~ àÀ&à¡Úÿ1 ÀAsàCÇ^ùÃw̃«)Y‡­PO_‰°?êSCÿ,Ζ¨ñ5XÿðôŸ?¨³š-­±.®óTÀfÀHª² @ÜGõÿt£üoV?ݰÔtöÞ­–öý0€£§=~ ½N$Ó8R†Ï‘ @%éC@÷ÇA{Ìãp:a”b ‰èu®²Rtï`vMðLlØ\RùŸ€ó?|˜wq &¿ +&Ì“7„ÿð»tcÔÏ‚¿qdÿ¨ÜøÇÌæ¿Xû#¦ ÿ1‘þG0?(ìÿõc£‡ó~l€GÑ÷ûƒÜ 0MÙ`”=€³Üàý?á6)ÀåA6 .Pô·eéŸ @˜€ÿB/Äq÷%4äž 1t !HK +ðJ×@ ø”›zõLÆ;ã¦SŠæ›Œ:¦êß©þßn€!4"ÀìÏ–ÛY`»³¾øÑŸ¿ö·ÿ“kk`k¶³óDçZ3¸!û7‚Ícd¹õäKÿ×É/Z;—¿èäêië#×ÖÖŸ|ü~kë1Åÿß#ȼ c ärŽBHÌÐH¨Ê'ž@Õr®Etâý݆†º'ºEÀµ>Ô6ÑOøß?q÷®å.§ ÿaŒ'P“räˆä¥X>Í&v_Ì£8±MgGŒ<ùl H–“ù ÓãV©þW•ÉžDô¢š¸H'ËQ·¤ºÙ=á–a„–¸Eo‰[‰}UBE— A˜O¹tZŒ¢)ö¸ƒtö‹yÞ^À" Ö*"ÀáuœÔ¦ àÔf€ˆÄÀuÈ `ýð6À–žØàï)Œ]¬l¶„ÐNÇÎì~"à?™…r䊗ëèöö+Þ+ЈòyêY_tþkØ•L¦é´‰8¡¿ÆV1zšîöêÀÿZÅHš+€Dª3çñ›œnÀ?ÿ6¯0Æw7˜@™ªÿ;‘;½¿¿-€ÜD˜ŸðŸç[’„X+ÿ©ø·: +LˆHh@ˆÉÿ¼¬°@æ´ë i‰‚ìÊn™;[’šRÝ„ýª»äfñ_ é—è„™`Ù8ÏïáÿǺ?Ìø= ÿQªöcAQÓÇbA|2dÍßhìˆÊŸn0&ˆ Ž6ÀÓPƒ +Ð4 Ï]ÖÇ0( ‹Ç‚AÔ‚þ¾ Üy7GáKaü$ÅKt1#O-œàþýûïyÿ ¦O»¨?5iïªh5]«<ù+Øý·ã;áþÑè@œÃ?Žöã6XŸš­¿ÿƉ¯pÃEè/0¿sÄò7±ùo~–8À™ÿþWÿýäÀòÒn}Ö•ùè}×l牟üië@ëóÀ‘ÿ?®¡ `!ð•µëÿ óª"•mñ‰þŸp¥0ˆ¼E4µ¿Ûe¶Ì†V ü»ÿ~âîÄêÊiÈ_n{™@Kþf‹£S9‰Š +æÿ¥¾À§mt)'õ>§Û©*ª$œÿxA6RMΘ¤úÃ÷w§>þXp»ù4¨ ó1!sï?ÚcšDÑ.åa};£ºUÂþ,‹°¤à‹5÷ [>w`Ë;Ô”é5fíÄÿLJ²/ëÙȵKߺ~`Pç°¶ìȘnÀŒŸÿsÀtЋ\Á€ ã™øõrÿŸ%ì÷~ دqY—Æý¤°JrpÅà @_¼ÚEðh`âþ&@»9¸ã½# Ñoûx¾z¡Ô:2ì13ˆ^Õÿ9‰ ¿2ì‡7 OÎÿÇ]Š’_ïe¤û*QŽ¿FëS~5ZB‹+Œ[d^ûé-<¿_ìü_p–Ft—õþànÌ€ÌþàhÌD È™ÙtCŸõÇF™ŒBˆf€à þ¹Øoz›q:hÀe"‹c¬à8aÿ¨§(‚oxƉ~\C +8Neÿ8:—°‡ ø®¼.Ä€×îßoí€Ö;f#3]ÈÅz2x(à¿þà;<»qq±O"¼ï P€ãõêè¬ÏÎ~~ò£¿:ñÚò½Ù‘­ÎµµµÎÇá߬üÙÐÜX8óÒÿúRëÈì–+sã?¸¶¶^û‡¿øâßžwŽLÞ ŽÃqœ +‘œÃf-„}¬(ØlH€ßȟIJ–‰òD5î³Õso½õhÈÕÝ=ärøn”ÿo ˜¸»z÷.D€ðÀÅn +R9ûú°ìÿiÖ0Œ²¡rnwXrËîã¿®'ñøtRùK8÷Ñ 0‘•DOôb‚5€=QèŸä¨XúKDoD{x P”‹2Le M!B2 ÎaÞ 5}^Z’Mìº|ÓÓÓMÌ‚€Ì§4ÆôuÓ àAÓ `_ø J@~ð›Ê‰*24%¨Å®©1¬7 ÔÁ±À ?`bòÜg-@wÃE癜'™!%1î§“?½Ã6Åq7M´ )† ê­v¾ó¾êù{çYJAdŠg¢ÐÉtgš›€íýíwÚFr@½~\_½ëÿ‡~Ø" 8çp‹iË +’9 H¥ˆ ä¬NŽÆ" "öKdÀææE@Þj‘U…½- üs«ï@ +¨Jn·Zò8Õ’Û.±Öð¯b䀧ää}¿ŸÆF…êŸ~ýQ?|0F`$`/zXüÃçƒA¿g4èÁçý" Eú²Á†G Z@„ÿû €1Qù£÷Gà±,¤B 8Zôzè‚JÿB8|¡„Àx›‰`(°*šwƒ<Â+¯_ ©Ýú.¦}¾Jåö;vÐå{zü«ÅÜèêè~üçíÙãØè¬ïÝø«ÖÖ·:·ê¿ÚëlöLØ_:téiøás/½ô·E¿&ïG®úÖÖü‹ÿ4ðœõxØèH"¡µàpl€H6[ˆSÈ ŠÙx¼ÿ\ü\µê³Äûß`ð÷ýÝß=ü'€5€¶—¡˜»‰5‡ †ÿö¾@ ›5,Õr2`·œn7–æfGýïóÅ#†žtÜ%·”Ôh‘ì?%.*‰w¢,@Øó‚ú‹jâÖdBÞd; æ•KD +”¨Çéñ@ å º±è þKÐO€H¯T¾ìÂÞwÌÔúFàT‡pì?h`*ö^ŸØx¢c„º˜0˜>ƒæ @lìÔE( `ŒþݘD¼¢óÏÓÿÈ?qnÁ³ižW´šÿubL~=È>1H‚çMÀ4ݲ âKò€iVrpD$+˜ÀÌš®†t"#À­¡í–ãÚ¿k©™ûÖ¹Âù×Ê‹ +œ`-¤¬p/La! %!q!©d qኟ·_TáúC¨Owݬòw; àÃîROò0×Ç¡±Cæ_XØý{ü%ìú ÆFÅÞ?þ£Áó1Äÿéý € úãÏ¡a€6>x‚»üÝæ¹ú׳Z¶&ÀepÌ.k—õ1 Æ  þJ‚ £ ÿ˜óé +ôÇ@`=Î.¤Ói¢¯_»Ö9à}ïk™Ù©ÝðSn@‘™ékšç›œL¹¾SwËÄÿ:ðÓ<«ì%>}Ì^Û³K[×o\¨Ïî¹önÏ..­­uš#€&üæâÓô‹­Ë­¯mxÿ?¸\³¿ø‹Ÿü߀#³Ã§Tª7zè,äÈÙ¬ Àÿ´3 „"ý\UüY˹‰‰sqAüÑsÕÅçzëQ÷£G&&&V¨þG€%DZnšÀ‘ƒ- =À.mÕø•d>`ç 4·ÊA@1O ›\5|ÝñdVïsã(!êI§t"¼Ø#››þò;J:¡ :Ê›ˆêéI°+`b)¸O|%¡¢õ™TLUé< Æ‚šŽX`Þ@X]k¶à!ÀTÝéºiÈ×_Xß>Ø +xÂVàמúÄ%Ä­ÿú×îA@½„ ¹h6Pû{¯4Gëfñü ž±€¦¥á•°°¦_šDþYÀ{ïøØ#_\€žŠíMÿ¿{€€þö;Œþíæ@ÇÎìNý¸€õuÉétüKìT€M ‰ÀVö˜8BlA¬l(!•HÀŸô0å–™`¦…ú_…€UÝ%e?qf¢¸ô•ÿTñ«@S*þ/¸ÙênÿløïþǨÔPõ®?.ÈèƒæŸ0j€ eù?¦÷Ü2àAÿï–òÞÉ&þiTúëIC‡€Ð_4[þÁâèhÑï +*1ÊBLÀ@<ˆ&çA–¾~7}jáuá +ÐõJ×ýûïÝX@f¶þ¥»S‘ö™{š?–û¦/ùNýÿFý@GÇ£&ìøqìê›­µ;÷ZG¦ÖöèX\š]ZZbù“0î/™o‚4ôH píìüèúeüÉOþôóç€ïÇ¥g£Dç&"!+ÛÐY +#ežÊy÷¨Qí÷O P]é À¶‹ž½CoÑåÑ[Ø\Á"àijiÉ·À HÀŸƒ?–êùv¯>€„ÿª=%Qióÿ8ÖðY:ÊÕlVw:U•óÎ29iz È •÷ˆ8!Ž¾È©@þ£òŸ„';òisSF"JÔí «*|èª €6\âµf` ÓÑÈbàPSà¶«¹ð8þ¯~‚5À:¬àÁ‚9_ ÀŒ¨£ÀÏM€îâðœ+s·žŠêŠü.cO=Ї‰'õà‚ êip§4þ~- €vYDÁ%¹ø?Ïð_5 "M5æ)‘ŽîŽL£€$ h½\üßio:M‚ÿ?‚ +ú¬")x` €Ï¢ÿ’`Œ ?˜þÁ“è/ËÿYï§ÊÎ0ªw©üǪ¿3Œg8¢þXKãœ÷°uz<˜ýPåOÁ~@˜þøcXü÷Á„ëå?@” †Æ?Ýú16àEîûãJå?YdÅ®ù龟}€y€_zFIÀ?êô@8HÁ 0"à.@˜Ð¿XWÅ ÀÃZÀà AÌ^gkÀks÷ïß÷¾wßë}möûÈŒúþÀl$2C¯Oðû(Š··ÅYÀ„ÿn1;ã@Íc÷Šèœ]úÑçÛ»{k‹k{»ww—ô¦À¬úú›\ ! +\ó€ªÇ¶~´årýן¼ñÁÇöÌñûÜx—*Ž ¡l„Ökc“ò 8$ltFò|Z5Îõ÷Ÿ»ã;_Ÿë~4à‚к‹Ù$+wï®Þå,€ö¶³ ï[ù<ºÿçãWÚ“}ÔžI±TL’ܰ)óç³>K¤;ndu»‡Î ÅMçÁI@?/AC pÑÐw»£n¥gÒQÓûI °™ˆ&èÃMeæÀHMG±@ÿBø¿ÀWãìº*ȯ…«¹™fâ?÷¥™˜f€8€CÀÇí¶·ŸþÅ뼩hx ‰Y@?AˆÈ^G@d7·®˜»ód®˜Ðù,SO3HQî‹ ¥`lA׃iÂt-¦/¨$Í€8àŸñ?n2©Æ/“ßL@ÿ! â^€íÞ}# Ž½õã}Sî”Ó¡"8Gð_q@\ˆäàŒ @J<S`µd㮿ª ™…§± KªÓ+ýnw9J?Õ% +L÷YöÿS‚"Aüp%D À–1´ùpdôŽaæ£A„Â' ð‹íOB÷v²z¹Ð<ðׄàådÖ¬û™ w@Õÿ(à´(ƒ<“(…=\÷_àU@´,.@pÉónñRñÝ`ÁXx³2|íÚ+ '¼³™£Îê^ï÷Ë2o%íÑ‚švDôýÓ€HäQ3Fëø½$gõÁý‹÷êk{‹¿º½¸8Ë `©ôf À¤ûC±³Àú¶kv+ãÚzÿ/~ôoï?'G>¶†‹jÔÖ3Oø @Èê´†0 7lö(Ÿ(¬‘èïÿÙ9K5^-wsÀåâÀ6W‡½Eø¿rׂÀé¹¹<ªÿ–³ÜÿçæÿÜÜüÙ-ñöÈyMwúXÞ“ì©*EzÒˆw”ÏÙ˪nJ’¤Ú¸ŠVhëÑA”‹lHDÑIOŠ8 „búA oÊʦØ€@úí`ìÿgïcÛºÏlAñVÚÚ1 –W¹¼Ë–BE“•@м½$§®ÀrHÄ~zªs7FW²$??i¶½~OÖ.`k9nŠ¢ÄAœ‡—YU4o×fÑm¬™@X{!«…yà9ÆX<¼ +Mj­råêíb¿óý~—¤'Ó7¶ÖÖ—IQ´âÈâ=ç;ßùÎ÷2•³}ìäu€Ç,åx@N$Ô0he1‚7Ì.À)imz±¸- + µ ¨Eäü¬,¸‘A€hlóU +˜Dð 1 xB´ü¥÷_€,ûç÷‰ õ¿/ñ:»%ú^焘> ~l'‡l{ˆçŽRÕwÀôÒô‘¥ñ¶H1Å‹€1¾í‘€t»Ù³É«zšs€;ëú(ëNÙ+h(c)æ^€’ãåH"& Ž‰]ÄJÊÕSZÊuS:Vÿèþ›ºžög (®¡¸¢ì·\ƒÞ"i‹Q5j üÇ•³vç£çyêß4£5`?;ùÍšm›s4þÅøÑz)TxŽU@³ aR=O‚^nÚöšÿí$¢}ØÈ“óˆ¶OÏÛù’üDèsÇÏD9K(=Ã"ŒC‰T÷Ó_ðìYãüYÌœ8óRôÞ8… ++fD@ Xôæ³Ï>{äö³œb0pdnh(97×ÝýPïÆ–þÏ +@l/;ÍòöÌžØÁ{Kl/Üøàoà»wqñÐaaQ2ÁÄÝh‹´D€^i¼ùëw"ü/ÿdôƒkOÀ#PÎdߟ ÐIÊIè4å û¯(~ì(ÃÒ@4Z­Mœ«TKidÙÀÀ¡úÌõRvbâ–§Õ»ÌëÁ`ø_ Ö»BýGl–ìjlÓTƒVØ + ¨æó± _¨j›XüÅÚÓ ÑXü럿࿢Íú_á°‚x-3¨eØÑ&ñãfN€ Ÿ7¯`À€(öºdÛ‚¹00 £Oá¿l´­ØÙþLàý]€ÏKþÌ[=Â+¼-¬.4MÃørcÞb`OCGl$ èÁ>yú;d'¯½ Æ'ì!p"Ü` Àò\I(ãKãÓÓãÄ£D¤ò€ÜT êÿ¦PütüÙ ÓyéÁAÀá¨a%Hå¿h°€ <,—SÌ Púc@ÀÁf@ÅÑ]Ó]ÍÕý +~ƒ±ñ—wa¨†›V\]UU7EV•§¢fÿ™Hó"Ь*ã-!ý3ös1Àbù?Êû2!þ[}&bíjà èØ6ßš‰:á?‘{îÿ ýŸÃ€ªI”(U«§YþÇ@ +ÐþùóX:ˆ\!ÿi—¨J ÚqBâ/ÐÿØÙèYðR’Þø£¾¡§èš<ùÔ7™üh’Àÿ|„¨À_yöM8Ûi½ËîÂÿjjêâ‰NôôôÜîàömâ ?»ý_Пx–¾ ЧN õ=Z$Ûšê™K&—éî¹÷ðóBdx‹áŸéóž ý°C¶¸uqô×|ê콸þ+‚ÿ…_‰&2ø·È€gè•àšp +,^üëÑè¤ùgÿùÖ£ÛOÀC»='Ïd´Âû ë£ù¯„SÊS)-Ò.k)«VϯäF²#¾L"‚\ºÄ.U`¹å»%,€XDõñz°«kf&ßï»5rn‚jÄqœ…êt²šuìþ *€´iWóñX%竚¦«f¨à/èƒ~͸Œ?ÐñçmV÷ÏâÕÿ³~±xÒ?89)F`—bWÀໃ،‚5)W0#ÅQÜ€°<·/ '÷ˆÕuB`€”Q€êÛH@;ü{:Àú¬ø”@ïò­HÓÿ·íÍD¼A±@€,—þY`¿ˆIJ@¦)ûñ›ÀÀ¾ÄÐë¼!®A±˜Ÿ„mŒ(ëÿ§“qâ„þG…yŠã„ °§á±W!+CD8Ð&Ýtoân³ÇŒ˜Šh@™~Ãõ2ðà”ð"ð aúÜá(Aw.]?Výd0íA—@Ô ;Õ"ð7]hêãŴ˳xÚï<·ô1ê= ¡þÃÈwF:M,ÿ±$ò÷¥­3XY¥§ëµD½& +xú×À8Ï·Nw%ú¨V¹úÏ—˜pF |º*šp¯EkÏóê!\Ýó.1ó8¯Ó•ã +ÏŸu_È|U?KGVŽ&Ð÷ÒCoðT æ¹!€cN´Þôt7ÿé›·á ãÙŸÝ~í‚.ÜwüàäÉóÝN|jˆÐ¨/ý¨ÿ?ðfòÍøí݇“ÿ…ÿŸ*ôÿa”v‰ˆl"â*gu¢ÚÙ³.’‹ÏžÇðÌgþˆ† ï¡§úžz8Àë'Ÿ¢û§ž:ù“É ž:ù#‰ñ?jG{zþO ñåu†{>úøhìPßK/EõGýO|÷ö›G.ôL=,þoË:²lˆÈwÅῸöÝ‹wo\¼·Þ»½½û»……»Í(À®|Ðn +è•ø¿è‰oüp”N™ßý×#O€‡?¾rò¥L`òr€NIPÆÔT àw €\PñQ­.¬œ;çÉk4*—<ø]€wVn­r +€ 2ƒ]ÕÐ*¡ÿD£ÒÈf¹qœ*0Q”HDÍ ‘€ ¤ÊÆFÍj>žÍŽøBuÓTUeP/øu†Ò”lІVàu(Wt Ìê ÿœÿó.ñƒÙÉÙÉIl„2@·ïr0 a¤Ótû®‘¾’î‹ÂÒà2öÙa„}|º»;w¡ÑŒ§—ÍuD4WöÊuÂø©0ÀVñöoq `[.¥“üq`ì„×ð&é_“s¯ðôü Ì +îËÀI›`ž~JTðYpMðÌX_âŒÝÇÎÀäPò¨œ<Ÿ>2¾td|:•CýßÝã9*qþŠÿÛæ¸ÐèØìñ€bc3 XÖÿg—䢩1ylt ÀÅÿ1@ŽCÄq±"‹ªþ2Á>›ÿÔ4±-W…ò ]‹f­X#ø¯aî À­qéEÒO7Õ`úCü¦˜€°oñ +@+*¥ÿŠÉÖøfÞNÔéfÍ®ÎÛf;»l¸ÿ– æqK, /çZ¡€Éy»”˜Ÿ·çá¬!? •¿ËŽÄh { Šéó.a¾Þ¡C pÏžÕ_Љ°À¹@Ø|楾7ˆô½‘|ý€$ø¯ €E®CàOLÒíPòÉ!‰÷} ô|¼ÔwF|væ ¯à„H<~äÀ‰ ¦Qïµÿ¡¢bÙ^lïœÐÐâ›bûðáÿü³{{¯]\äóãÝ……¦€€wc6p,3€Ôýñ´0ŒÞè=tìƒÈÖßüo‘ÈàáÛ'ÓÚàäû²’B•Òé¨@*å(ôRµj5^97±âËå&" +˜§$þ_ª úÿªH<Õu}­«>ãó4²ü«ËBˆC@LV!LFëÜ&@V­J«ãÕ_µZ7UÌA) þ®"D 賃†á÷Ïr( ÀžÝ~ˆ@˜¼‰•À<Ì "1ÀŒ~Öâ8@lZž;:Ç +62ìsÝÓ¹în‘ZÃÙu0Ü™ŽM ó.€æB`nìx€Ïív€õ6ðy@.Ü#†ÞÀ–¤±)¹Pfx@dÊ}EûÁ{-\"¶/Ê{â@p"JŠ}ÀGçJG‘¸ÄFÊö€†X¬Øú‹c€x §áá?{¦°PV‘p`‡ÞY)%Åö¿NÅáâ_é §Ð€°ìp(}…Ð_ «Žc8.Úý–c!%Õ³A$ M\¹wÔTyÄOe ¯©2þkb× :@×¾šh@m£Wü›}ëÓ‡¼?DâsÓ²%þ'„úku{Eÿš=_ç+Ë(ÿý«¨÷év¹Ô~TyÍ1€¢ @ðžIUþÑÚy—·A Ð]„?KWý¬›aü×¥>‹FÀgž:C€~õ°/o†`Jê; Tb« ¾p’ëû¾!‰ûoî9Ö8z†WœÃ°û‡¢gØyûˆñ?òVOω¬ ÿ‡!10Ì" 32½}æ»â—‡~è/î.þdû¾±Îrÿxßm¬7 À†üÆÿv§àâµÃ_‰Üûîu/ÒûDxèãg'_ÒÞŸœLA¨$ +@ç"*üE$L€Þ¼õRÞw®1’óå*ܸÔl `…wßZ] 1è:ÕÕÕ5ò岘jÁž sçrÆøt<ŸDC1Õõ`N’–jÕ쪯{xÄ·Z3mB}E÷#"P7\º÷ënƯð>‚ý+aüÙ(LŠe@¼ à¦p`GÀà,‹zæÊÙŒ•Τ… ÏzÕÿ²±á(à ÍšUÜÞàpkïPVév8 +è‘æPÀú+ÛÜ]àÉéà^€˜ /MÝá8À˜ ²ÿX +xe@l˜Ú'ïVÿ¾ž jR,‰¢ @§XÈÿTÿÛÈLò`2~$>~d<‡U€Ý2Páþ§K6&G™…ûo³{@D.‰@`Af´`©A캠êŸ}~°¤þSc„øáÎ2ò€ tâE„üª£ºŽã:EÝQ鱪£QÕ"à‡ï?ªFƒÀ~•ŠS-ÖŠV´hšÑ YC-Ow} Ó¥?&ûqGl'Às¸XÈ2ÙçoÖM8s̵z¤‚’x@iMâ?AürUÀ~¾”¯ +@¾Ô\ ””i€èÌ›e@ˆFŸÇìŸ=_D *<gá ¨A H¿p6“y!s6#hg߀%ð¥tßoàÚÇTà bg†Î !4ê@ßÐK‚ˆ*Ÿ?òA¦9p ÊÆˆóü™ÁñQ¾ž1mà!Zµ«ÿL‰äDð:˜ €õŸ>üëÞ…‹‡FwoÚ]_ÿKÿ»t¥cØØ ìǧé3öð<àÝõ‹½\ŒüOþDx4]¼ü>f‘!(¬Põ-L€DWµíüHwÅ—ÉU*D^k2áxm¢¹ 0?3SGà á#–]ÁᄬŒÀB8~´Z¢“ŽjÍëWÖ…w­iç—bY"ÕzÝTuÇE*ú`À¯]ö»šá‡¿_Á 2‹%éþŒÁˆ?XȈ{ NÎzD€iÕÿ¬@0ؘxö§åVxøì¹îȲðNðz'F 2ÕTšf½¦`ý~ìoëü&~ËoŶ"÷ÕÿÛÒÈF ïžâ¿ŒP^#ŠœÀ>Å[[‘}¬!6Øhû-ÞS ö¶òðùhé(§}œƒ +Ъÿ<ˆÆö„\Ø\$6àíÆRÌ8±OfÆ/‰`Qý/R€ªEvèÏÂ8¦¢ö/—A0@ðï¨Á°.ª.<2ÂôïZhööÍhÑ*bm6$z‚î1|Gõ Å?+ú€~Dú˜¼ú‡ª{ȶˆõµ @ âð;·ÿ|½Z­¯Uçë ¬å’°^,¨b á~>/(öéRu~sóó6§Ø'ÀõÿyL¸ÏGUúLÖùÓì +H£ €›³î ú \Ðx À™—¢/Ñ‘~éå—Ó/AH¿Ñg!¬ðŒØ\Œy¾>zQô%bMpúA4jñ[siÑHj:j¤Ï Ðñ¼›6ÎF±!$ý¥øõh³ÿE â&÷ùèÛâð/ÿúÆ_ú•Ôþ~·Î¨ÿ;Fÿ]âøt迻˶ÀfÄvD[`cw}ëâ{¿þWÛOÀÿ¿}ò¬V˜|_s4)ÑHRN™7k©Ë€îÚÖeä\n¤A`Ûš>@+>L +€þgVÎìOL¬L¬Œ¬LLÿsÝñü²]ž´z=H‡JÍj>7\™ðågŠjqlPõkšª "…:€¿ ¨c$›PüûˆeMØg `’ËÿA œÕoHë†úÏi€ÖëìbãUöGrŒ] ®KÑvà  ØcPé‡[ @®Š|vðAz@ûXÀƒz"Ûþ·Å$ ˜ˆD`&IN`%à•ÛŸÀõZ’sÿû‡ o€¿/ à}Zä'ãÌÆáoéÿ­æ>€=Íþ‡á¡ ÌzäÀ%}*3J9À)®ü;‘µ¥Œ9h÷9—ËahaTWu·L$ % XTM•®Á(ºþøjоhÊ£¬Ñk„ôܨ‰¹?4Q³ú8 Pâ|¬ÛupîKÄÁf.`›Â"X_#ø¯¢ `Rù_­Î‹ñÿ×þ67¸Þg ©  yÚ¶9 ×ãæñù3’h€‹=Äì@/ã®èðãím¤ ÌK`T’.Ø”dè:ú ®z–Ó½”Œ´îW¾  )ÿ#þwOX÷þÁóèÛâ—‡¯ýüÚÅÞo݇ۻòð>eõcƒËþÝAÖYÀC¢ ôÒ{7¶¿÷$äF–rç@rñ|‰OEØ|ÙRéQu)›ðùBkDT…*'CQ4C `æï}EãlT½ •1P@ +a?pÞÿ.”ÿÌè™›™YѼ©ÍÞ$@W#ÊiÀ ´^·K2 6`­5hÜ–S€[­}@Û­…@Ÿ{o  ™üE&æ^ +жÌ’`K„LñR@,Ô6Àw²«+ñjkÆ3†€ÿC„ÿî@Hú¿>”H&í£èÌõ~€`¥ÛKl »?àí¤ç6ó{6ù‚Çк„p` €B¿ÄA ôy³ÿþç üÛÆŽ¬0=æAá4ÐP]§h9jÐU‰ЛD…^ + ±?¸FqS´jB À™PþcrUáÀ¿H´Íº¨õmaùãŒüCÏÕ‰òWÁùתhÔ18/”ÿå*{lÆýj)TÎJ +`ÏÏ'NóÖÀ㉵Dm@"€XGXÃv‚hôyÛ +é&=O¨ #[5<ÈdD2@:ý2AýËéÿ5M,àå´Øy aÿLëú€üg è :}_“ºžq™¬(~ÅÅÝÍÐ'ºn0 / ‚@1?ú¯·äÿH$;œ`Ÿ”öèÍ~P À¯?9ö‹ ¿<ÜöÔ!þ§^µ/ «ÿDZÄ`]ð€…ÞÅ{ëë_¹÷ͽ-OÀC»=Ci‚ÌËce'…¸²N'¬¼)À”(®j«ù|… +ý‘ÜÕó•× à@Xÿ««U9Ø5ZÉV&V|>ß*Á¿ïÖ*±€‘ŸâËyÌÖƒWƒfØ +Zf½äÛÊNŒøB]Å £ ¬FÅ~ÔïGõ+z¡ +ºßÈ þ3Æä¬6[@, !>.ž098‹åÁƒ7oÎÞ$’@/EàÙ—-£ÏŠÚìh·‘˜G–=2ls­öÜüO Oñ èEöH`çóE€–°µ!àA ÖŠÀ·j*±xJŒ#òNÀ˜ðÒÈÆN° ’ +ö'Bÿ$êÿãÈþcç_Âêb@Á?ð-€“h ã $Žç.\;››ä ûÞÄW,8{ èåâm(pîcÙ¥ÃcccHùK•S„óD` ³ñ/¬rs|Pí︪[tÕ"]T“.òE þÍú <@<´dùor’/óÙÂ×gò„Ÿ) Ÿ€4¿ÍÁ@ÿõšEèo›„ýŒþLæë˜¨VÍù–Pb Äâ2ßîLbÀãœP«%kÇÍŽGå2bbè@8ŸvÏHwd\y€Øn¨xA?ûZvgõw!í¯¸r…O[†Õ ®ãu|‘þp”žˆÂ‰À/¿â§Sý¨û~BplWþcš"­ó@¥ÃúRÔÿt*æí?ÿ+>dà âÿúÏýëÞ‹‹ßZø­ïÞÿÙ†€>ÀFÛW™ôÒóÛë‹‘ïþùàQ?{*]˜œ,ŒéŽÈ*w\(à_SRo§47ª›‰üÈD¶2Bå<úù!°ð¯ðñ fá˜é'ü_!ä§'™Aðù–|¹‘Í\Ïf¾dÛWƒu«nƒ„ÿAÓÎç¶*#+«3AÇTŒ€ï[+P\Ž@£д ~F/Ì2àgx@pãp€ƒ9#S€D0h`E_Çp{r9i'ãs\Àb~½™ÀŠ;¿÷І‡/Ò–ùÌB O¥­j àó%úf±ˆŒfc{›‘K9™ &ìô1ö(²Kèâ> D‹,û'úΰ ÐÅ KöP‚ëöœ!y”< •?ª»jF%°O#8áIŠ–RüÌÜ ¡¿ë×5âiWÑÕtZü1+ úÿþ/¦ÿ›;±“Üÿ €ŸÿòÐè½…_ŽþC5)|€»ë ‹¿ƒðSô€ž^ àÅ­ï}ýâÅÑ'à(™{D \ÉGWØÀK W3>_¶R™ÈùF&*·&^ƒpIÈ• +Á¿¯ÚŸ_ ‰@½N ²2‚™€¯Ò@ÿ*½dÉç[9Gp‘£²Â´ƒW­ºjÑ)ΪWó­Ê„oµZ Ëútø1­t% »Ú Îدd +~£€@^ \ÐnbìròÝÁwùg'ofx€S!¤©¨€(ý2òlúú€aËËXf¿4-°Kx×áYËÊ1 ð$ ·¨= °ýŸ;ÐJüœÆß°—-$];íY@SÃÂÀ Æk +™dc'¼}Eû2ðû„þ£j.Še°Œþ6oHÀ˜JbÀÑåÒ\é6Oaü÷FP×wËø?™eÖÓÝÝÓÝC€ÐSH=Ý=ÝžàÀzhÛzJöÿ‘ñë§·V +¿ú+á±0Ìÿ*/ +àò?¬:Šã¿ã€ƒEªóëlúã{.þ»Öî×ÀjâZ bóå7QçC¨Û¸¥{VüåX `Sÿ¶Äÿ™*nf¸P]ã+Ɖˆá?z6ÉÍáÿ‹—Ø +HÏœ¦äé’(ÙµùD“€ø¯„mÄL0˜fèWϫϧ9è9¶ý„<¬pR'P@¿ieT–¤RŽ Ž¢ ÐÝèZÕWñUF*¬  %+>_>ÊïÙ@ `fuÕÇŸ†ò3 ðöç}¾¥‘\n Û_¦3ÑÕºI'8"ÕP<6<±â ©*R5CQY ø'ü×&M  të/k™Â,6þù'ý¼ àf¡ÀÕ~Aþþ›“Þz@F÷ßôë¼€Š jTÑÈçãñÇ?fÿÚ…FsPö„,²· àNsP„¶\;Ÿ;оèÁ +ÀVkp§%ðà0Û0ŠØì¢ À:áýQ¬‘ºF­3‰¾ãè$°øÏ1€IspÌ¡…r$>>íEp¾oVÄ5—ËÆ?̰toJÐ#ÖÆ¬€à?êð»b×Ϙ¢ñ*€D°y â8caXРÏÔrPuÑ(Ãýobv­ˆÂ­‹@¾¥úK°_cÄçæó˜7ëk,òWÙêW%Ì·Mi ¨'þ¹ `Ö9ù—ÈÁ?†ÿªÿtšaèç1€*ýAþ_Î ô‡ù៙œÆv`.€‘ ÞÌ>ú/²÷Ïå¥@Ñh ϱ·àù4Q´P™§9 t þëìB&Înˆ2HÅx•»®#9ª»H +Ö$ö÷¸û½LÅB@a@猚ˆ)H 0¸ +›Š]þ?Tª;—@øÿ"Þò_NþmÈð߬0ùX`÷Foïèáÿó=º»A7ÿ¸%ú“P¶¿ò­§=÷Üàá€ô ¦\±²'¤€ãŠÀàFÕjÞ×!@Õ¾o  Ù¨L¬¬®øVA„€!€úÌê­þÕú4êgo@h5Zõ­øVrÝÓùx¢ãÕz=€ù%xWgÖ複ê? é†¦ ðO#G,0è}ã€~¿´Ÿ¥‚Rvý'ß-x¹$!ˆ€wõw!p°×ÎNæ± hzû€vyáµò ú›@Ö³¶öH m+Ð|*'øïþ2¸÷/¹XjD?˜LyTžø/€ýÎÕtÿÄÅbgAŸÝÇØosÀr’êÿ’ÀÿøxüÈ‘iñäIÏLÑÜØÓ2þmvoÞ†@laY€=R8 çºhTZlèž×ÿ¢¹†eÀe¶t*åΰ¢”S¸ — öU8`üÇô±XÄŒ ëöæZ}Í ¢d¯×…ì/•© à‰œ{kŒüu1¾ó%> Š|6ýAð_# +0Ï@ÞñS]ƒЮ¢þ'@w€ÿ¾b÷mWe¿,jº$óÕd)žÿ¾ÈÂ` ‹ç“óId|sø†žÐ:Pt9ðybFçŸg? ž®òw@ÿ—V=]s¿Jl_Ón²p…ŸÞÄWŒ+†A„" +ûû5& œ+ØhÉö?.øý€2æWx§2?y€þHYU ·l¸·Ô—Õ÷¬ÇÄšðOïó,ô¾idâ40p ëÿõÞÑ££‡¿~ +øÝ{ù½î.ÞX|úС'àáÿ2y-€Ï(c +€NXøP80Õ¡¸tÉŸÃJŸ‰ÊˆïÖÈ-)¼¶·wé5"#«ùÕ~Âÿ~áà£uŽ@\}3ý3üÅÕªb¹¥|¾ºLg3«n‹V5¿ÉNÜZ £cŠö¿÷”N%¿æ7¨0Þ ñk†¦¡ cç†n +P@ M€Yÿ vÛér…]€iž´m,ð\Ž//qp®Ñ”®ÅŒÝºl! p«eØnKîÝþôfàÏñ<8 H¦·Rv¶[;e`ê›ðÁªDV`¥7ÛŸ)Àßc¡+¶ºŸ!üÇ–˜>”sÀÿâÖûä@iî($€ñ#ÿb ×TÄIìDk `÷Àm"ôуòÿlj.€Ø4u0 Ö󩮎î´×HˆG½ËðÃŽƒ%L¹UÕ)cV ÃÃLpé"L¯›ÕzÓößšðºþDæëv^~ ôC篣Á¿Æ%þ¼iÎ×çÅf?|pЯHùc@¨oÏÐ-`&TªÊ™ÞXjFþ/7ÕYÿÇ¿Ïw§K%$€u _ššˆ%Œò$@”w +KðÿtB€¢¾¥%ßÊÒÀ@.—_ÙTÐØf0jÖóç†+¾™p8¬ê¼ÕÄ<ÝðkXþ§ù  š2øwF›¤O +™Âä,hª~¢ +X8)ÆD€ñߟ1tC— +€…8ûä2GÆ©~– +@ƒíödÒ¾ÐÿÅ6 w÷5íTà~Ђÿíϱb¼ ‰ýìMA†9 +xëΖ¨øàÈžð"ÂNðßm_‚£æq35£Q³¯–®IGà-RðcC `8ò1/T–€FwÏ@[žBsÄÿÛ›†ö{ó‚È ì +À‰kwŠ–i×àݾx¥xÀQÊŒübàøg‹ ÃÕ2ð‰î9üÏ ªÁ"b2Ïøô¯7E!˜Â°fÖïôBB~S}¬éÃ×o¢@Ì€orÈï|.ÿµª<à€v=Äð/zͯmXføÏ—â’Ĺp4žÏË €di>‘ä€!\0hÕêSå¯äkø 'á(rÙ + ã +-_ùª¢¸! ÿ_ÈéG O˜x ÃxO}ê½¢ú]¿Æ.á¨% CÄNX~M‡¬¢  Ï„ÿ®‚,S(è(ÐWˆÐ6hàj±òøX|büßÓÿ³ýFæ­$È\`ýÚáO~~íçÏÝXè]\¸»ûiàÿOä‹££¿}î¹OvŸ€‡õü Í@OñùJ(.)a@Ø@–_óAÿç‰ÿ )T`œà ÀÕ~ªðóŒþ†¨ìõ‡|ý¾~Aª0øB¡j(ŸÏÈ5²¹¥üŒÆu.qªùF¤21’ŸÁh”?`°ýÀýáû´3þß7XçS­ó<¿  ?¸[«ÞØòK3ò£jâ?‡ÿVç¥þ/fÿôóì@P<žÿ~\0€Ä¼}:õÁØ8ˆôa‚z›ã Qøø¼ÈE€+‹ÿ¨ú:[õ;à6Ö:Rþº–~§ó¸Ï•+ÿ¾l¼÷žú¢¡¦é¤€ft}¢ ø£~1ú0ttÿÙÀØïHñ…Ê])»*¡?~¬PxȪúØ:˜Ÿ €s“oùãÿúè_\;|øÚaüÜ{ nsÖÏx,Œ>whôرcO€‡nœLk—'ßÇÇIü;ÎS*þ±€Þ–tÆx_© ­gÂÇ@¥r)[à[ZͯúcæO ?ÿùþ[Üè +! FBß*4€\#ÖÈ-…–ë¡«p"YõêRv˜¾QÿL8œR¹C +@óûÇ4l¤€ +üÉŒV(…zþAm®¿2ß-Üô#*€v `Tg €´ž†/»NOˆXÎÇ—Å6± À›ÈÞËvyp¤Õh.hîüÜTàõ¶ˆÀí P(‘m©p `g«%lŤ 0;ËòªbaO@ àþÄ }›0Í(±K¤X„þ¼ + Áð?„- +°Âˆ6\hîìÉ~:HLÜnÀ°)zÂxЧġ(¢ ÍVš16bá–V˜„y.‡PUØïU'¬Ñòì_Ýì ëÏ7;€ÿÜuhóBµ¯Wç=üƧ!äŒô°øÛõ¨ÖÛì~â¤{ ’=þÖ €?ž§ê•œi@þ¨0&K<[HŠ; Ðô' + P£Ehÿ.£?œ®«às7(å;ègbtÕ4=Cos¢îˆýÒ_4Þ# +@w†Ÿ#B­CÑðKDÀïrÿ_LþûSJ ¥@GptGZ£¬å²NÈÏðꟘ;-‚ƒD< Á?€Ís›Ý"‘oœýŽXíýäØáQü}QÙ¿ð2€Cß%:1ú„<äñÁÉ3²0æ¤xN BªÄѧFÑ$ð®T&.Á8âc@࿇ ‰¥Uv + à‡ÿ™`ê@×ktÊùò>※‰äBy”*6Îc%߀‘þ5lG'ÌOùyP1Œ8Á¼¦LjZA1&ý:½Bl`63;9‰ €=9‰ÝÚM„ú½úß=ÉAH±ú,J)iýóTÀɉmÀËvïH €×Øi³üAs÷- |Ð€Šøm¯À߆)€LÂ:Œ4=€"H¬d°?À“Þ'k[l Z*A°çJ'“T z9ÀGƧ Ðy‡û5Z@V†õ@÷Øn@–Zke`jý`¼@ó§0ýe?\ô«øEç^Ü€abÿW¨F6€ æ@ݬ‰ád ûô9pÜ”e~] ð tG¶¯ê->Po¿o*ó3Þ«BU&¡šuÕ<±û//dÿjÞóÿÇÅ(@)'§;Þˆßû4 ¥›„kX+r° Ì\Ñ@–¯ÑA\©C¡‹–ÂÖ¡éxãûýšñbæŠÿŠò"7®èôvVü.\€ŠŽ¸Pt 5ªñ5CÌâÜ¥ÉñKÇ€=°¬ÐOÕQË¢úç €÷‚¦eYÁÇ H0,À@¥1ÑèÎÁÓð$€ƒünX\¼vè—ÇF1Æÿîý·Çž¾6::ºø„<´pF¼\€eA%89¥ú¿Ã=W)šÕvT*·Fnõ¯ÞòüOLø|ˆaæ_X>d@`ÕG5}W—X ˜Ï‡¸ÿ®±rn¥1Üh¬äó|þ¡£š‰ìU&|¡™p +DÞÑ5ú«h~%Ðü?g Â0é×ö˜˜$Ð÷ŠŸçý +“N–½fôr(h%êë­ÄÕ„ýº©&(KG>Îå.4Ø’†7_6&“8‡c ÿß6ô½8€¶0 /Êz`ÒÂŽì'xcÛÞ l ‹0@™žõLS¸o +K¦Eà_3ò€ý!À6,˘!ñéÆ(sBѸ/@z¨ü§ëÀ·»{º/\¸ Ò€z¼e@±‹Sû:ÅûåVØMƒ< Nnù…ýœ À|»Œ/PV¨ µ0P„ú_ òÚ?üÄ”qI ¶n~à|%½‰ñõj›àߦHuàA_—OÍ ÿ@ØÏl€OUà|Õÿ+Éú_–ÿôÜQ/À¶çO³ ÀÂÈeQdb‘ (x€êb×& `ÀÕ\½?¤§ƒˆ?Ê{MÏ(ƒ¿68›ñû¯ø ÿߣúŸðÛo(~HÿzJw±,ŒÃB5U`¿Ÿ]KòƒèlR6Øø×<,ÿ‰^ÙÇ êÿ7²ï##ü'M$ ç ãooïáOžûdt¡ü£…kO_ëí]|Bx¡P¸€qIÀ¨U7%ÆRØPZ¬æ}Œÿ>Büþþ~ᘙð­Üòåï¡ßpp•€8äûW'úCÅ® ÙU¯ýs¹•JöR6[i IJ+Kùüò‡uQ¸ør‚tu¦”`j~bŠß?–Ë”5"þÑÔàœÔ© Àï ø ÌçÁBÈÀ1` ¥F£}–Íç¸ÄSìMê-ƒY~oæD¼,Áv"­)À/–¼€ŸÅ¤¦ Ó…Å£í– Â9S¢ãGìxgà„èN௷? +@’dj ^!gY¨âp$ûèŠ d,ÍÅçæýç–Æ/äøÇ—ãz¾Í݃ŠfO÷ftý£Æ¹à…‚ôˆe±Ø~bô˜ÿïßÓ‡èý+rÀÀ°Œ•,PàPø iÚ,v™ÁZWËò_]cÂ,Å{Èùuo`¯Z£|ž + õn½‰ù¾&äÏ´daõouš_)UCÜ8œïªèùÓ'q¾ò™€hÄéRE kl&z6¢ˆkÄ0uÙX«¹€ÿbùSBˆê’ rï@€OêO°ÿ ï_bðºþ"½ó¯ï•á +Ô1ݯñ  âê):-hº«ˆ9Ø]¥ìÒ ¦G1@ £\VËeéRåÄõ1Eqù ÀÞÞ1€Mb¢Јì꟎½£qíéc„Ù‹ ÈØ}(`aôék£‹OÀC='û´ÁË“È΀ì/¬Ë˜pR0`1éZ~„@?gûÝòŒ¬LÜZáNüýMÿÎTáÈ÷ûVoõÏÌœ*vÍÔCù¥Æ¹ÊžXœ­d‡³_”v¤‘,BÆ·›·†e$çÿ!h@,*žÂ_náfñY^+ƒ©n:™ŸÆ R)™»Ê¨. ~-|¯3|Ëa~Žö Õg<_Hr€Ð}­ùJÏ—Bà±üH`d˜ÎTþWºWºÏÁ8pàÑŸŽÑÞÞÞQ"Øó³µ~ ¼ãwWp/¤»½ßúä‰ðŽ‹'Ïd +…Ë~g +Q@èþ‹@T(N±6“ÏŒø|#>õé_% +°âÁŠ‘ð#; ¸þ¦ÀÕÕþ™ëõbWjüú­û/‡³1"¹¥ßÄóËËÕeª3|ô€üuç}ÈOä_g¯we…îˆøy¡¾žDv!<“\ïk¬°êßœ 'uª üšndØhY¼-‰¦xs`Î3z›µ™üÒØ(vµ+ŽhÚxØ€œm¹v "z„õ'šÙ?'²DNÄž"!ì¦Ma߯~˜¨\ÇÞnöMð à\2?:7ÿøÈ¨'ÓŒç2 ¨åhYz6º/ôlvß–0 àQ²b»ñ¾Áóî<ñN hÀ—åÀ{«,†Ó9òBqx €CUkYu,€” ²ùßìì£Ý_71¹‡ÚŸ®3ž„oßWч$ 4÷¬ýôºrÕÐŒH÷Á ,9MÓ½e`¢Ïã€H_KìöË‹šßÿþÒ÷™ÈqÆþ¼dXÄI¦mö™ØP|Ü’>@÷|ÃŨ‹5­CòCðw]£ÃExO‡д T`Pc@oj8À¬?h†ž! i<#,³4”ûH Aïß1T‚tÿ‰-”áTŒ²'þyõHQ€õÇI P!´Bà¿Ò-³H> ü¿qí—‡7 ·xåŸÿ¼`wcwK€À +Ö1'ÀiAtóàÑ€Þ§G{G{Ÿ€‡=>8Ù§—5—EÆÙ³doÁµ|ÎÉ•q€ •—üüW‘óãQ9óWèê +éD–_êÎF¼ ìá=â¿ÆšÕeXŽF L¬öwA& ¤4K€8Ä_ è×þÀ,|TæOú …+…A-ÿÙ ²àçK¡ ¡Ÿ¾ exÀ@¨¸j€ð”•ÿ¨^>^:²4-Æ$xAˆñàÖ”ŒäÝníjKjSîƒý?LXßf@´¶w¤±@Ìly6¹èŽçdvÂ‹Š§ö'Àžçͱ0˜Q¢¨æPÏ%§KCvi@inn9.§rØ¥Ì1 ¥¸_h lòÚÈÿD0.xáS&@^n¼€ùßüìýˆ×…ïjçKó¾Vx%`˜Ñ?E÷ .b‚¢Feë_Ðd{?¼~èûc¢¯Î=þ™¶úÝz þ%îß7ËüV9â&3­ ¿™û]ž ߊ¿×÷^€!Ÿn–è ´R^ŒBø>~5ÄwL‰šÝW«Ñïdÿ¨ÅÃÒö@Áµƒû +Õü)DÀý§Ñû? ¥ ãÅÿ}Ù0ÞC& 24ìý14CQ2.–ÿ€”9ÇK€ñ¨\&Pæ@ÕPÃX:¤âßµ½j^íz\ÿú ÿ[Ã*& þ7^AðÁ'‹7zo{î€ÑÑÅE,úõÀ§jþÝ…{ëè´=}w÷ÓÚÀÆÂµ;|­·÷ xÈãÄú2Zár ìŒ¥:Eñ/ Tü§:éN]«ç}9B|:Ìôÿ 0€Õ~"~źŸ<þý¦Ty\?ì2ëÕÜ@¤Eèš­l" PH‹«#‘á×àÇÊô†vé=@?‚ýZÙïg+ î§÷þà$»®!ù¯€^þÄ:àB³ôçª!3ˆ!é0 Qÿ'ìRÕÆ©l M¸Ø¼޽œÄö ð?Åè¿‘“€^/ð½|n"àç˜éi^2 Ú Bˆ4ç¶"²ýpGR€Ö0ˆùÄ}ø%0M¹3S€T¼%ç93–ƒ`†pvOÎ%Kñ¹r€Y:’›žîÛyp÷}øOð úý7饈 ]€F·pߦž_xû…üì-¶alGèŸóËCˆ„yG°S¦âßá[Uÿ°ü7(Óÿð¾áú @õª^o_~­ ( ÀSfš‡àmn€:tv„q°$¿a^|zÐ})$ÞŸ¢Ý÷LÜG—üR<ïc€ùöÅ@ÉÒiú˜/%ñ.KXvÑp£üj‘Ä( rÿ;ô”žÒÜólÈ ~§ ×þ0 Àp(¿‚AÀ+–ee®¨¨ýˆÄT,V9ñÏÑÃ(üŽ_tË.2Ñýç¹ +ôþƒ„þÁ Ç)-?¶úmÞƒpÝ^àÁÇÿÅÞE€…… ô)q€Ýÿ@ûK{?÷ÝC££O¶><øA_& "ý¯ÓëKS*uŠª)ÂÂE¶ï3!} ÷ùþüªŒbÌÿpfFŠýP®wÍÔóä,ÖÀö "qæq_Œ`âV½3¥hï+ƒïJ`€².€ÀXF Æ…IÂXÐà(@ö/ÌBû‡B™åâmÖ/² ìB@XmœÐ>ÎKüo®±Èîa·è´K  •àu¤e¯©ýï´»˜ +ð @d«ÙKØñ¦ "¬x.b!wbÞÜ_³@øEû‚eªXOῚà ò0s.¶¹º›;œ#üçýèÆ—ä" FK˜"ߟ©”Ü´y»›cDþ/XV·£°_¸üwo¿}ù…¯þ ƼS*¯Û_¦½aJÊQŬZ§ã„p0lªA¦óƒÔŸª¬ýí–ÉÏ êË7»ø€lì&ú{ä¡6c¨Ú/'üÛ¾M½~Ÿ`@ß)„é‚þª$çqQ÷³óo  ?ÎÀ<ç@@$P)9¬H€@@ cÌÿ&©ú·Šô J×uD p*_Uˆ ¤t·#ÕÐ×·/Óýe¦pÿ°P¦òÿ=õeÕ02†¥é† ‹?dôú]Õ(#u©ì:a½ÕqËzÛÊRúW™V]¥­]7¯>¾_„mnÄöÔ¨œãàžl6v €¼ÀÅÞc‡/ÜE`q¡-€éØå=€mz¯ý½‹õ»ò‹»MÅ`÷ØáÑcß½6ú„<¼`è-p¹à„áP:¹Àn@'Ì ì —Ì\[C±9èOÏ·ÐÿÑ +ø€œH>ä¯Ï<3óÌ3§º®›õ¥áˆ×g­4r9ß’}&¾þ`gù^ +¨¿›)Pý_ ˆWˆÒ +ìþ/û5Hàž¡à•þÄ äüba!àA@à¿a©V¢P9›ä“×R|‰À4†``Ï6-Ãhþ‹Û-¹¸¹h»9½×æüâDÀ¬BA‘  Iä€4ˆ$‚ØöꟀañ×Ú a!ÃUµk& ¥ô³ª&K@”xX°ÌAÀKãTÿÃ(МÓ}=ßA€Ð¿Ù}»G ?¦™ð@wC2€}òüþòÛ/üÉ·ÿèíÿ6ûä1|±Ùþ2q*XáÄ"@¥ˆäUfþŠá÷ý¶=!Oøçn½7º'–Câ Ù(5«ÿ|K +@÷ à./{ „þ\ý7ø’!ßGÿô¬Ä—JBàQ€xþh ù§‘³mW“6Õÿ‰($‹@Ô-b`Qå䟢ÞÌHÁ¨#þ*ÍÕ" ½ +¤„à×ÞG€Ðüå õžeY†¡d0Þ§¢¾çý~¼9<åï¹Ö«HþwÊnÙ)KçŸZ¦JÀݬ?ÆtÏÝ«T*¼€7ŠùãÿXz?9tm‘;8Ðð€¬ïw?·ôÿ”Mpá[½ ½_?vøððð€!ÌÛUÅ@j @fábg2@X-©ïËe#—²Ü€3zö•ðžçùD@¾õ>Uô¼Ð/¢þ …‚°ýùg¹ä̰[PL ŠÑ´® /B·KËy$-MŠq‡@âžðÙ‰€X+ èþ0ÀHS¸oïýNÀ΀ÈðßÓd@s¼c8æ<À#€lØÙ@Âòƒ$0¿ ìG¬ Ñ¡î&ãBÿŸ!Ó9޼p€íúþ¿"XØé¿Í Ót×ííð’€b'ö+è'—/w|ûŸ=û¿òÖ+ß&b_À{€Ô1G R [T=âÌ?ç# }!yÍ7…ÿeTø¨Ó«¼†SÈö­öð">‘sAfBžM $½ƒ3ÕöA€¦ ¨ÔÂ~©üûäèßR\6Ä8`^ŽÆKÉùÓœˆßÂ~+z&*¢€° ˆˆ%R€ŠQ–TÕu°Ô¦£Ö?ÌþCõ€Ÿ÷¦ÀïNSÊJÙü_¥ò‹ªåW£Äêyc˜jàâè +‡ý#K‘`¿ì¨†˜©¢ü'Jk™"J‘~¦óŸ|[t†³{Ä@x0Ã?Ïè@ïèèè'˜Ý§k/à‡¸ÛØ•>@y/¯»ww™ìÞc‰ ý»þpqañ›O¢€Á1urˆêîËÇQ:ÙpRœ ìÃ_Ô0ö“‰tÍüïM`FìùɇD@ŽTC⫺®wÃæÒ€Ð_=0CÆÒR~)î[òMd#ïe'nÍÔ;®‚ P·ËòÐ|lP{x^(è° þÖM¸ù·€(hWÀØ:4ÈíBE×h(€)rJ|î_â ›nσ+Åxoj8²%ç[Ûš=O¹ßù´ à«?ëXÇ·ô²€e $n8}€¦`*Ö ØŸ€î?ªMá4çm{vé(áÿQÿsñ§sG>¦òßK÷mˆ@ÏÀs€$ `ÿ»0— ïÂdÃþ˜·;.¿ýí¿ûÉŸ<õ£¯þà;o½òŠèÈå ^ÒðxúJ´ì(–£¨nØáí?uNý“…¿¼ +Í^VírNOÜq'H`Ê}¨i ¬ÊÚ¿ÊïOé#~ü’zµíÛ - /ønL-º3ìû¨ô—2@\¸Ew ŽòŸ]§—KCý§í$X¶É;%,vÿÁþOLBˆ:°¸°ê„ü®ö6j}¦©LJStE:ß§ªäýþ‘àP¿zÕR-C€~P§g• Á¾î@  c9¬ºù/«¼YѲ0ïfU¢úGŒÂãýßø¿@%Û¨ úh*Ârt` ÀÂâÝ_]{úoG‰Ü +À"€dbÀؽ‡¯¬ã«ë»CØÝ½»øÜs‹‹½ß<ôÜ'OÀ#h¤é=wÙQ1ÐÉ—K:‰P;ápØÁ=D€®S]¼áÏ;pVþspÓ(zÏÌÌ<ÓõÌ©ëN°‰Q¬íæ2ìl¶‘Ë-­Òiei©1Ùc V”I ó<Ú >ɳ€Àu¡þC È  Ò­V Ì×Z"³ƒÌ DýïgêÀ©!t¨j”ðŸÇ’vžÏ`˜È] õ?&íö¸ÜÞjy¶Ú†¼•};­4 ÈgPÿ^€vÄ6 ϸÝfø¿`j¸iÛ¥ p€DÊ<"¬5ÛÜì2]Kó6•ÿȦ"oçû#ñø‘Ü4ö( ,g `û€hðN¸-Jÿé Ó|͵ÖðvãýAâÓçÝŽ·Ïÿ³oÿéÿóÂñsî¹Õ¹iXÿ²ôÐpƒ¶dì79Æ×nÃY¹ @êCÝ/1ô·•ê¥à!å3ù¦dúèÿ‡BßIG@Ó'Øœhf "Á©¿,ùûç—r>0u¶äÅ8 ¬ÿÙ#ˆ<ÀüñÄÓÉ*lHD­¾(€ @ͤâß*6ÇÿTÞ ñý óg:¼I84A +Zʯ¥‰Ã‡‘àsõêUÛºä0ÿ—-Øû ®ŠU¬²S†ãOõvþ(ˆü òk-+®šWù‡ûûÇMD +PöRë¡>îÅxöX”UXXèý]ïןåòŸþ‚´d€Ýxw×y6pwqawqñW »wGŸ¾¶°xíŸ<ýÜ“uÀ}lÐR‚£Rùï*ó2`à.²  ˆb‘³}q%6=3SÇ)iÕÛÜß"ž¡ Mß°t`µ·r9†ÿ¥\%ÙCÐLÞù—5ý2âþèÌàÿ4¤ÂÒ¯ø^d€@^+L¢#(°7 ÃÃ~ô ´Y\t€ÿ¬VЕ¨®¦UËŒöÙWáDp|iz‰çA€`O°p1àm”=€È}ðß +ñÙns´?ø| Ƕ½íB;RPð\B{àn»0%n¦8C`,\÷#¾%Mb­ë<só°v •Js„ÿG—9#€â²Ùr4Zªü=,`U‚Ü…éî 9Œò€´ î[ÀéÓóÿu(ÀÙgÿä§?ýÆ??ÿãsÙllg×)úAOEÞù‘ˆa5^ÿÃýú­Ê€ÿª\Ï#[ÿÞMHhõBûÏ{7LòÒ÷d‚™üLó›T›>Á6 “‹P¾Ä¤A~79û?¾üg/ ¤ŸdùøQÞ +Ä“GÅ<@²Z²}ú¬3Ñ35âÝ5¢ÞX2M Š[ÕpG—,@Gì/¶÷t ü¾? ök—)0üÔàåfýéLÄóûõ«Ëõ‰X\}ðöY@|#¨s| K~ˆ„9í×Âà¿4‘ž\ýÿÇý¯½-R€°H=[id³bØŸÅçžaɶ$ 1äÿêŸî½Án@AXÀfOeЯ2þI®îYß×Ê™@Æ?H°Ïè z­¼‚aÀ‹ÿ™‰? 5TÏ® Ê €Ò²1—rçš æàbò^†Û:bÐNk0ÒæþÛyðüÿÎ?¨ˆ]@ò…m€°LÝif°Ðܰ +@3çÑü§GÈ´íy‚[Œw!ïÎ÷ÂÀ{9 ˜êy6ýyAÀ‚lòþŸÍÛ›Øxm\ÿC5˜–À@vƦöe›÷«?þñéãÏw|ç;ß9þÓ·ÿå??ÿՎ㯾uîÜ[±áwbS‘õÈð;[œôå8ÓŽ).˜4eدm·¥üI @Y¢|¡=ägÝÞëß{V>aæcXïg%€>oÖþ¡f$ x – ^]-à[ù„Í/.Ê1°4¾‡´Æã"è¨Ä¬¤£¯/J š®1ò[jT¥{W-Féf@¢VúêýZ½eaÀŸÁT @ ÏÞ`µ/oö¡Rß¼j™Wím›@}QiðwyÒÏa£0@¢ ` WÍ.ú‰ZÂðÈýˆþ±¹áUÀœŠÎ¨ØA&íFÛ;“\\¸qíéOˆÜ€€ë¢¼6=ÿùcA*Tý/ ïG¼ôìc‡éå‡ÿÇïþí“ÀÀ7O¦3špÂg“”åÞ è0€¹†m€¸í +vuÕùÒÅVåÐrµú!ë3"PTÿ3]Ït ˜¹¬ç‡#²+$0D6ºsØ€åÀD²•‰þ™”öÏ=€AŒü#Ú_ÓPÿÃáϱ`°ükTû+…Yz.@ðŸñ³ €ÀLxgEàEš-C…&€’ms¤éÒÒ‘Üx.‡úUŒ°gy ÐpLØïšË¼…@mûmϸó€ý€ÿ`€Ç¶=9aÛ“vš.@ü×ÙÐÚ è)[Sôõ}8?„ÿ5Sµì—B@Â,%l†ÿ$ %ÎÀ1ž €†hþÔþ¸ lŠèŸiaÿÙrP7/¸¸?ÃOo{õÕWOŸ>ýãsúrÇG?ýöÛç¿öïˆd_}ëü#²Îú’ŒXnQ Ö`à…½Ë€ÿ|µî)ÿÜèï熵¿É|c€tÑ1ày@Oÿ Ïc„ùPÛ@ñEý_½…¸O¶ü ÷—šwÌ„ 0/öÇ—KخőÀù*¢mžöcØ/(@Ôåí®á˜t5zJCõÑ?EÄùúÿ¼ <…|ÿ”¦pimÄ^^þpÙ¸ +`â× òöƒj9H7êÿ´ÿ ½Ð´ºèâõaìÛÌ5Bg¿½KÙ=|Tˆ4²¬TDÏQø" 1€ÿð‡[˜ü‹c±÷>-@¤sC€ÇþD“èϩȀÐ{èðÞŧÿïï~óÐðÀYÌá„Êә"€^„A@´ŠÄРkø:¢JƒÿõÏV[¯_åíåÁëA±û.‚ÿXNTx +{{ÝËÎfÝ+9Øðr#-8)#”Wö'5=3 ý"ü€hë¼’ŸQðŸ!@ì`Ö§gyf@ üƒd˜¤uCW½1€í’h!öÁv™pb!€w»Ãôò¶ +R¾åÁ¿X ìå÷?8hû&÷» Úvò.Â)þ»på¿%5€)6'ìKp)Y3mÓ´! aŠÓxÉN² àhé(â߯ÇјÏó`ÃË”[•ùÚ³¹É1€œ@DLOóèà9:(€ý!„ð—Þúþw^ý«£ßé¸üöÛoÿô§?ùÆÏÿiÇóOÄà­ï¿{娖<Í~)€£Ê•U›ù.ËÒ<ïyý€ûý Î +õôï;€þÒ2 ëúæ| ÌȇZq^¢˜Ì·„†<{ÿYî÷y“³ã¾¥%Ï0Î6@Â|æ‡ü±\Z†ðõ>z³õEáÿ‡ø_ +ÉŸà_×Ð9>:›ÿäþùS˜éO¡è# Æ8çå¿«”!ç›W?¬Ú./ÛW¯b–ß´‚W±º2hªk•&jئV,^øó‘…ºùpõV 1?:&À×*{Yáh dÙ‚, Ÿf `±÷ë‡z7nøor€Þ¦€P€ `>aüâî®h  X£‚ ë»ôš |qñéÃô§¾÷Ãï}oý xèãgɳº¨N'|ÜHéœ8Æ»D €úÅ0â}ƒA!ðNÒ«°Ü†Ãtü6Üyýzÿ„ý§Ð Ïó )pýÎÇà࣑ 01Ñ_'æA§ƒAd|#ÿG›äõ>ƒÖõÅ$jœÿSc7 L,üã+Âüï÷#½&ðsꉆ= =ÍÀÑ€ˆa% Ýy>@o2qgváý·j °9ÑužêÿDItâ¥å£¢ú'€ ™ ‡(½8Eöþ70°‰k÷¦ÿ7ú¬tƒ\hˆmÌö‡à×-’ýûŽÓ¯üÕóÇ¿šzû£Ÿþôíè7žÿè£?ýûçŸûïÿÃ[ÿ”jJžÕ¿Àõ-*\p¼,wòÉŽ>PŸoúWÁVW?ýÛ,¡ªÿr@ ú‹´_91È „òUiþ¯Ê©>xFG +bñ¿\iÀü%± `¹„€2y,žÄN`Äü£é4´8p‚õŒ?¥‰ \€)ÅÕx!Œ2‚}5Móc-ç$9J¹He½i™õ‰-ç—óի˦}U˜V­(¶À €Ž?æý‚̰ïWä*Ð|ù¿riøÑ¥Hmý÷x +PN° 0{gžØ9.€Å£½ 7}“ªø…ÚÀ¿÷3RÀÂ.`žåù©ü{-|ñÆ·®Ñƒo~÷‡?|BþèI¦AÃUÇQ¡ú#¤œ€Tš&öÐåz1F ‹M€°×˜]Aµsl¬ó·¿ýmç©ßÒÑùÛS„þÏœzæTשë]ÁÐ-9ˆ%Fñ_éø¿yS¡z§Â@ +.Oñg0L¸¯pØ‚ +ƒì À`€*~Œip*Ä8X£û+X’ñῪŸ'xpY¬4å)€f01€XV¢,$€á©­áf€7°Ó¶¸5¸³-z6úéG]þ裿üêÛÇÿôkõýÿðÊRy*ÀcÛ¯ð21£fsQŽõX|Lj-A]*€¾¬ÞWñKÔö^Ý4È@(jRà=‹ü-`^Ž´û x@7ÐóCDgƒ øÆéáÛób @î"Š–¸\µy¿GD(­Z-Èÿh”ê~‚ÿŒÂr€ï@x/¶"‡Ãͧþ~Þ퇩~Tö„ÿ ËÃòñåeûC{lÉ$p/fþQõ«â)‚~ûj]\júß÷Úpä‘A*pV$lÐ::HPö»ÅÑÞÞ……ý£|ìÆÞ¡æ÷âct´ þÛÔéèåW‰W/²þÏ`î¾…,¡?ÿã?û³'àá[Ï&ÏfR ábJA‘rC¤Ê9@þ…ÐU—ÇÕ`8x½Ü_'Ü?u½ó·ïÓàÕÿׯw…|Y&Ñb0›ï +@w£1¼=|i﵉‰þ®”⿌5ŸeÀÿ èùkÛþØïKÅ~  °$hÒïW +Ú,w +³° ú±˜žõ—?FüºßÐu#Mˆe[t¡³“Pâhä6s˜1€<ÐØÚºÏØ}o`{ÛËók%ûÞ/|ž ÷3¡hnQÀ‘ˆ?ZSïot÷Ñ×\´E-{Ül‘çàé’€Ù€ó»TÈC2°{ Ñíy1ಀ €Ý› „WOc`Î ÛNìÏòÖ³s¯à›ÿåé¿êøEê—ñöOˆ|ûÇßùÆù·ÿûþÝ«¯G˜šòZSÛ"ù1jðþåž—yoHþ!NØÆÃ~†¦¾û4€ûU€Ð}Wë‚xQ¼> Ô +Ðüh}§UùU¸eøšöƒ_"'jÍ—âË¥eJù¤È@€ ®q“¾fE¥ü@Å 7¹a0ð»ý®ã8cad"–‘ê‡ØÂþ1º-€ŸŸ=qú]~ùÿŠ/牾D7øo â¯›Aä6Å«¸aóÿÿhÀnTxé£${{{B``Ì ñ€4œ&Àµk‹ë7zGoôî®ûî¯{{?½ÖÛ{øÚµQÆvŸÄ`€(ü{95XÒ‚QÙ;€/àiú޽üôÓO?!}l½ùC# +H ¤œ”K7NäH`–‚0Ü^Ç ÀL½‹ vW°‹ÀÿúõS@ûSÌ €\?Õyýz(ŸÝcÍõ?`Jp®‘%À­P±'‚æW2ŠÎ¶>=3ɾTõ+XÄ®1 Xh“Ø@U?}šà 8A¨yð ö©/*¯6é²\Ê/ó. q‘$8™Å±Åƒ€[ÃÌÆ‡›`«•,‡ÚÄ€6 `çQä0„ì4÷[A[lDÀÔùך)Öùo€ŠÓ( 6¯²±ÐN”ìD’£aÿ+‰ò?·éñéîéf7¿Ñ\L7<þßÓ½Ùs¡A°ýÿ (ÿsôÇèŽ#„‰&tó:€ý™ˆ‰aëKs¼ƒr¸ÒÑñ5'E,à'ýB;ßóìe¢_{õÜ«¯ÆÞA# ²µ½³55E?Û©Çø~/UÅ^*©Å"Üà÷ç}ûóˆÛ#ðA`üïohëß÷3=ðü€’ðK¼I@oPŒýW½fAK@Dw\,þAàó€q øX sX,€9¦ÿyíL%(ÅkÁ¨¥ªQCE@5T·ìºhìk:WùЋܾ0?}^6Êaƒ—ù±@€‰á0ä|ÛFÅ¿\]¶—á< €gL¾UëLÔ:Šÿ`TåwzsÿWaý«V?œ¹úE?ùÜJ6¶²²Ri¶ü+••Fn%—[é^_¯Tö†#Îvzi§÷ö*›ôâ<`tEcÃSÍ•à‘ƒ‘ ¸ˆð¿k£;ëÇFéÑC(ÛGG?¸±xO@ÿh;`FÐ&,,n,.î.nìî¢лÀœF@|6ú­ÞÅÑk_ÿ³C‡ž€‡>.žÒ]- `‰†‚0@˜q\H€£Ã"ØðßÕ…-¿]þ°.]í +¾wýz˜.שä?u½+|J¿=ÕÙyýTøúÌj#6,€€¶Ìè-¶ÒÝ¡°÷Ze¢?˜2&5%ÀC¼îÛ¼l-ÀÏŸäÕ`ZÕ?V(z€òÏô¬±ÁTIèTýÓƒ•SDM>ƒ”Dù2Í,ãÌÈ`(SÃðàO ·Z ãwÛ;lêä¾â¿É¾PàA@É&"žzà 5›Ã[w0%vlÉ=<ð¨ Uÿ³¨Øæ9ÍÕ–>àÿi!Ì]:Â1GŽä¦s<Ì'\nñÏ)€ê›=r`S¤obüZ¢ÿt·ØØ#—ìCÑ»sgXf®_ÂÌZÿÝ×¾–úÚ¿ýÅåŸü¤ã|¢ã£_|ôÑGßxëÕW†ßzë•wÞ‰½³5E7|ýÙ{ÿ˜¶ï4]4þžpkïµ*™ãbÿX[Á‘1¦¶ihT<¶ê +yÜÄ©«*ˆ)´2Ý–fr—x+.'­Øiˆ’þqv²¤;™ÛÚêªjaN‚n»¨GB­¶Û»Úͨb£ÕUå[©™ä0Ú{ßç}?_Û™Û6)i:GùŒ1ØßçyŸ÷yŸ÷î%±ù2•R¾ðC`ÿ?×ý 묈0_üU,@Œ‚çPIÒP QkÙhÕ]€*`H%W1€‚îù+pé_`€;  ÈÇ}ÿ¢ Š‘ÙܬÀ ôÜ•ï„ Ð=2Bè?ân À 0^q[\««‹ÇïÇ;„ýÈó««Õ÷#ƒºÓ³ØŒ ï)_”¿t¦ôÀÅ@`-¯ZØðJ•If _æ›ë…B'¢‰Uú)(ï :M ÏáÎSÒØ®Çéº+¥ð?‘$ ¾Þ +A¨(úøo¢*æC‚÷Ù«Ÿ,~hêÏþCk?Jøgf>$t‡ú¯ð_§ºØ à“ ªt”KPÝa2Ò›Ù³ÿó&ÿ€ÀûrÛ à²A‰ëƒ€ã¸`ìÛù(€:¢á#6ðFÀZÅ€þtEO´Ú·þµðñ„‘èØùÕW_ÁÈî’‡g^Ð0>º|”*ðC!²1N„ì³Ø-΀}Ÿ¦ã¸“`ŸÅn×x€k þSÝoÁ®à®®Ü>³å¤=—ë:™{i–„ò—¹Ír @:ϸ Jg‡p:k±è+Ä +, ! +€ÇÚàÀÔ¨¸FõP¹tK0*—Žáëj”ÏU¥ý߯ÈÛ $¨daÁÿŠ@DX8 À3ºQâ ±$nÿ`w¯ê|æÿÁìt‹5=륓.^S>¿¯»€Ö‰?"Å?¿²0ˆ>€ìú ®à€²üå?f#ùznŒéÛîŒÀ•v¥ÓôkÜòlIô:8À› ÓD>?vìÕÏ?÷â»?{îÈÑ_£ð»……ÒŽSP6ïR#@ÁnÕ1/x/ò?áþžy¬Ýª°€=Q½m_©þ­‹ ú01yx=E8ÕÇÿ¢B +T`P‘—ZÕ1Ϙ•Þ?ˆÊÌÀèS±À •eQEÛˆÓÝç´ÙœNV4w"ð׺kQú°ÿa-®­©m 2>Ì#¼`Ðï®ù¢Å¥"=—Á5:YjÀS\<-µo35 Ú?XúFøŸßAI¤0Gç¡Ðèó”^bb®žYA(äRK¤Ö·+<s€ô-Î$¶¡¹ÄÄk¼é¦þÄÂuVùg“³¦«ÉÅ­ÿåÁ£iña?á?;ªÁ~ÌÒ—Ò ¿;‹{gqO#ªØ“Ùsçff1ýÏ» è‡#7¼œZG¡?"ŒT‰È: ¬+µqÀö(æEàAÀ² ¦.4>€ï¿†h<€¢<õÁÛÛ=<õBù£‘9Cd®>!rí‰Äð•hmÀbï¢ïl1ÛmTß;Íðÿ3ÐN²ª~ì WŒší/Øg¶ŸÜw2g>éD¯ À ç¤fæWgœêä‚Cd ¯3ñ"ØdÃb%Jà@JbRÕ ¼XÉÿ›:ôëèï*~X¿®²Ôׯ—÷IpiCÆd¦¹/Qr]ßîu¬³å™†&Þæ5ÀØŒz+ÜnnöÅ8Púÿÿù!)ÿ©ç1Jeà&€ÌþqÿC\ý‹ ‚\€ õõÞ ¯7MàŽˆî®ú4±¹”ë¦k+¤“úr‚¹R?}à™wFF.^ùÇ«ÿöóŸ?~äýSÝ{ÿÝ©…SÞS £ ž»Å"•ø½‚N¢{ ý{ óÀ5 Ð5k%Hþä=:+PV»»•) ªÂ$4ÈZ¤ûŠÖj;¿€’Õ?"èà6²Dÿç–È!Ðßňm¯b¸ü‡(ß@`¤Ý=ÒnsSáï¦ë>åtޏû4$ùÄåÐç«Åëè$c««m©À8žÈp2b‘Šþ¢¯è[)ø¦ègŠV€ ¼=L¸Ï‡±ÿðÀÀf”–¾©ý??‰\¡ÿ“ÀžÀ% =Bf´']úÓíLb À™ rÒ+*ªˆÿ² äO×`Jš²ûgûM¦þä{FGÏ?œ3þ¹‘}ö:+*ì' gЯf +ãÒÃëרÀ_ɸÇdBà#ŽÙÙ{àû›û´wì°_$˜¯ã=ôä´L#ÀÞè@éo! +P‹i@ ¿ÌòàÒR˜?À…Ñÿ)¼>øì©¾úê©°Òs©Ä#žPB7L$ŽãÌLø"4|%CüÃlò,š½Ãî´¿ÔÝ¿Àú“–ºê2›OÚá8ɺ?†þa +´˜-'»,‹>p² ÅÐa6»54°¤E,ábTFšýA €–DpK‚€% +ˆ]€ž¯]¨¬{ºq_óSwlÞ’ +ôí ÜP(›EØ”•ÀL±àáÛ•M@®ÍíVêžiihÁ›·ÃúåÙXs•tÝÍ͘ó¢ÓüTwÁç÷åý–óëó²  Îÿ ½üG Py .Ó§³p/ HòÞ •"à[ nl¸ˆŒ]ò˜i"„±€£ÿûÇ¦ß ¼úù?Áðùß>wßCí8öóǾëÈé/¾XøâÔ‚g5€»Á2QôÚ [eç®A„þ=¢ÌÄýÏÚ>Ý/Œ€ÛÞ«Uþý21À5/ë®t÷­•Ì?iþ‡Õª LE?˜Gü¿®ÿ3âó5ôæM6°À‹6G ý£J(Ò ±F9ZxXq½t¸ ÿnäÿóé)9‚¥¾NsÀŒ…¾„úµî¸ gØùaåã¨Ññ0¢Æá Ð YÁ ‚¯ /Å`7lRã-òæíqöd–Šë7Úÿ¡ñèõÐÜİ”ÿÀœ£\²«œÀÅk#¶•`0B@"1±,€ $‘¦8ÿív"ÿI‚êIªÊ©úŸ=÷ÞÕ÷LF‡ñß~ðÁ?Ÿ]L^Š›¤úŸ97#ø?;[!å·Äff@!Ô¨¶ö‹ò/ô€n]=wã\ö߯{àû[.ôŽ8í–@¼ö¿påR)®Ù9 0 ü¡‹íQ›ì¦ú¿¥ÀZÞ[– ¼ÝR[ÿ”H»RˆðC€˜¨Î!‹°ÔÃ)@ &x!Vj¾ØgWÆñí-f¤ãœ`·whö}èýÆÛÝÚ¾œe_ˆoÇUïêBïŸÅ|R;Ië2›«,€húwÄy•X-•"aYå ì!@n¨@ýGeÀU¶nVQ×z PÍ{5(‚Àmr€T'p]ÿÈWèÌ¢Ò(•$ +¦0PÄ.àín„›;y >öþѯ©™Í±æbsolªY¹qP!?Æ!Àc‘J Jʲ(˜à´ÿéM„s€Øõ#õÊpG€Ç›O¯/¦üêƒéÔú¢ëB³îÓ‰£¡ÝÿÓ.{îŸÞÝñî4]^½ïÈ®û^}hÇ‘#?þø³GÞÿâèÂq­Íõ»²-H²±q üÖÇýæ‰ +Ì ó†=þzg`^ºýz@8Àª|`ê¿Þþ×UIüƒÉPv Y£: €H¬, ú§À +úᎡ‚ý}* xJ·„c]h€p'oãy)@nbN'„éý;ÙíçŒÛ ÿk“t…0:“¨¾ššÚðøÀ)ÆŠ™qüû{Ù{-€ï}¤_n{ÁÌS€¼vCC,‡e£âêÓv`  Þ¶ÿ[j?ª©@ò(>`íFm]üƒO1 + ðÿ)Õøê±§XŠT$!B±‰ð‚Ìg†‰ôÙ-Μ“ȇ{ÚîÆ.@³Í‰IÀ¸Y‹›í9ûÉ8F,–}]ÍÉ'-'sûÌ“]9sŽî6ó. aÚIÖÿÿnöcL£V<ä\à)@§ /~œtHªÿ”LUêÀ¬ïP >:PûÖõ½>›U›¿ÙPþ‡ÊS€ë`9 ¦f£’x<€M -Ï ¶¥©³-á¦_Píß”i~6ëmŽõÆ|ͱ)„O¡€@àù+ù¼I mé0ò×Ë 8hlŒ#¡Èú1Š à´¼Þ ÍSc®õÔØÔ˜·Þs“(À”—Ïég½ +\àÛñ³éééwwL¾ãرçžÛuú¹‹?{÷ÕwŸÛuðÔ©Ïèhé®l +Èå×ù#?”üù=ó•éý>¦Wü2PÿWÎy®ÿYö®FÕ=QuKÂÆÃˆÒ±ˆüuØÒ9ÕÙ/”§Œº ŽNÅx°šÌÀ0¢×ÿ° À =6ÿÕÁ7…`ëŸfscØß ýÈïVõÿÛåÙ¤ÿDñ=¢ìôùƘøV9nƒ&ôˆy¼ ᾤð€u ³ýÆþÿÄÄQßC(½ê+Ö^YÊáÒ§D·µA @e£bƹGN=ÒŠüC ìE‘OðÿžãÿûÕ‡ŸxÐña«€oz«ñ¦I/ñggMI“´ùU§_€¿|8Ì¢úÿÎ?I b/ ( 猦äìÿ¸G¾÷ óÀóN{À¢=çü-à ¦‘Ð¥ h}#Ö>SK/b­6ì û5Ò¡ËX—ð„•ŒŒb àI€_=õÕS55™(á¿Ç%-¶”G÷¾nyЀ`k+aè#Êaî²ØêF ˜Æ‹, ¦ëœ%§YNZè]‹Š}§¥‹ÞË%ÈÌuå>6çа³{P 97¬Gì¨íìÄÔÕQî¨!€zžÁ n¥¹ —õ(ü—1We +Pèå4€Ír@X€^ÿ»¾“ÀBÿÇÔø€k½ìä,`üüs #!I€øŠmVêlÏ ûWIÿmkŠ5·4Çb™ÞæpóT3¡?çws + oeˆu|”ÿÄ$cÿhx—ƒõkËè à¶tÿëý ynÿç…9Œ½Þà“w" pÍë]Oœ:PïZ\Ÿð¯ùÇÒë7nzׂR× ¿ù¾‡~å‰ûÙÅé‹v<0òøÅÿ@HÐ;Ïí¸oÇã¼súÔ©ßI`}ñ‡–x0¶,µ£èGõoÀ n@ÐÛó:ôÏW¯d¨×‡Øû·GŸ,«øŸÑ™@´È÷.úÓ?µ* À@/ø1æ} ÀW!H£*Øòñ +€{-Âd€Ð‡S+?ÝÒè¶[sæÌxÒmã彨ÿ9V|€[Œaµl Öp_‘@xÊ·2É®¡ -Šâÿ7úœNžY‚EÀ÷M¿ê`‚w[ºî_õ´UKË×Õ½Û͹à!Àƒ!†$yBhøq" àOG0™Ô†_”æýÉlkkë`OÏîìLOÖq®ñËäo€å¿j,{üXùŸÕ«üÙþê£ì ”Ï1Í&ñ&™LšL³Üøc€DLÄ ®š?\¼G¾ïqž À´fë1úØ`™F2 %`ŒÐ»#-¿€_裖ښG>¨ùOOÎ.ç'(ÓÚˆ|P÷ÁÎOíÜY÷ÕΧôQ@&„g§ø!^¥H8‘¸2èà +x—ÙÇ2@7Ò€v»7¨Âç&5zÓ5iï"7w!üç¤Ùr’p?÷qŸâ4wTÎ8ýSqwÜIÕ…B˜~£ÄÀÿ(†x>„«L€ªô¾* Ý·^|K6@9à¶€² ÀU^ ìü/G¥Tƒ€üª€ÍÒ6£R'R›šdW"(@Ks8ÜÜ‹5þw7÷ÆŠÝP]äç%ò¥@Õ~P‚±ˆ¥ÿ±å5éþ/ËÞh‘ezåáAéèëƒw‚ÓŸˆxó¿ÿldÇŽ‘÷=Ó½ã]ªþÿ¯wG»^}~ÿ}b[£jôKý¶&"ƒT…ÓqXæqà 7䎨¤T: ¤ÿUéü[¹†W^À=Ü&XîY­¢«üºBó>•Õ™ˆ¯Ò*D ô*¾@^‹u£ó/ƒ€ˆÄ&ÃFd$öóø Á;RÜ¢@”C€î×èÙédûVúÀ⟖òÇÃKVz‚³óø?@‘çèY)¢)@Ü·Ãxv3óÀtàRÄ&øm"ªþCåär—_ý•U0ÔâöWÿLTã€9Ά[ú*r,áHò? À‡T‘sŸ½z¦¬±ÕAøßêÈf¯:MY“iæWWM¦¿'$7é€?«À]Ý识|ÕÐ?Åf +ý³Êð‰H³³çÎÍ.ÎÜh¼G¾çqÝà¡}WŸ­/ß¿fÑ,–‹Ä¦w€Z¢ˆì‰fd§FÍGãØ#=E3KØþ·„T`l€³0ÿ¥æãµÑ T°@6<´!$Ðÿç€0â3 CÍÎ>»ÝÙåÖl„ùZ€êø¹fwšãš=‡õZÎ’ƒp’@ß@9³ˆ9.ÿs¼2ìfç¤É"n·Œ³K(¦Ó ·X1(ÚµjlPŽ@f¬.Uí*[øÔU¹P™ܼ(ÏVF T ‹m)f!jþ?%»BJøÜíí´4t>nhhjijnj 7µø[bŦð³MÝD|1LLŦ|¿ÏïòÁÌGµ|}½¾ Mv0ð "€ûÿy$äóD9<&Y€wİ +þõà…fÿƺ+H?Bý–ëæÍÔÖÆ†¨½'†N¿ïY_O½ùÜŽcO?ÿt÷Žé‘éw_}õÕw?ÿüÝGNÓOyF±±q½ ?Ìsq¢¢ø¸ P€ + ð_¹2po`¾* p•Ku‡ÌŠC€÷ͳ? ¬H8@†¡¿hÕÃÿ ²ƒC¬òüŸoÕ7OÅ +e@D½rFv.Ç¢Q™ Ó%–á&ÂbììlGýO¸oÖ:Pí;ûâš“ßw²Ù§i¿µ¶ø§µnÀ?üe3Bf)ŒÅÅEKdÛ!3Ž"=}ùå<1&"„Ãb?´†3Å¥Lf ÿ¥oú=#„?$g$ÿ_÷@Z¼#w9á©avzØ…\JI#Òð'Pú3dã‡b=™uø;ŒY”ëIz7y3kJ^í‡)P4ÿÆ~UðÏþÞAw$¥Ñ_¾G¬€ЃúûÏk˜LûM&c²ÿWt€I¥üTá¿©J`£Ÿ >€_ÊþY}€~|2Ã)Aôgˆàã÷À÷;.è… P÷hØ  ;Ð5mÙa\´Û#}ö‘G?ŠE tjŠÆÆy=¹uœÐIÀããKjÀØJ·ÃÚññÇÆÁž¢Ëc!¨®v ªÄ` + â€çl6ÔÂ@g{œvùh6ÍnÑrn76NÚÌ\è[rDºr“ñ}¹“ôÆLПÓ>6Ç'Í,˜Í–œep õ¿Ù [Â0«0ŠU @dy¢žS€x,€£Êƒ[µ@¢y°¿µú_w•ýõY=×—Çû¾å,PÅÊqÀ›•$@q!ŒbÝ)} k›^”ÜÐÐù ÿ Mm Ò<÷©po31ßÔùò¾!² Pö.ËbŸ Þü³Æ¶ºrýO¸KÅ7 €~^½4”* 0TéÜ™e@7ÓÄöû½.WpªÙïq¥@9¶t¯WjCzÁÓ§Cô«t%ŽìÚÿø‘_<ðO;¦§_ýù«¯þìÝÏýôôé÷ʦŠAì‡ ˜L+R8;_ìæú¥P6FË;æY˜—æ¿$VÜòAk% Õ]ÿEÜàÀ9w|¯Ã{àùŽ€ý³€­n$ÇmÄ2m·tØíÑ0ØZ2VCæh‚J(‡ãÖ=V:³à#£‰Óý „þBjxàcX Tc„ÄÀ‹‚U +€ ÞþŸÞSÓ‡F—MÓÜPó1Le<ðßU`½›Ëæçr–I¸NZ&ã'Yü§»?Þ9iÇ&QDXd‡LºÙaÜÉ+ÂZÞnÂ6`UÜHÇñ`ʳ¡ºo©Ñ²à*Ýj(Oèo\Õ«Êû¾]Xÿ½ Ãj0p]‚Y†Ø(ñ€jˆ'Ñu}s[‘ÈfCû»’ém¸éùÎÞp¸7ÜÔ‹áªæá/ǰà_‰ä‡Vò~qD¸ãü—7¨ÿÇTÑ¿,ÃþcËœÏ"yâc‘1"â ¼“`q±4z9í]»°–^Où§üÞ-EÔ´WjƒÕßÔAÈÄŽ>{äñ#ÿuäÝ츸ãâ‘瘼‘€’Ç&àúv[ç6sIJ‰DÔ,€^¯°Ðpe^?*à +ýWEþ·VˆôþWe:“ƒåL@…ýº°ZÕü§'Æj>¶ +`ÕW1ÐÛ<]ø)Ã?;ÄØ `¬Øl•2\LyµXÇålgøg# _èY'¦Û Ùˆ ÐsÔ݉¼®·¸‰_ÃnTÒù¥ «ˆ£Èòçëë#+…_´8UÄA @‰x’¿ÑÿÏÏ÷Tê‡ât_O\J@"ÀÛ¡•Pa?NXz/{àž4½—4¡óß8kÊ:Z{²³0éÍ*¸FÀ4›}/I/&bpñID€IÁ>“ØüÀ$fíéŸSóe’€'K¯L,fûË›ƒg“ýçnÜøä“s÷À÷:n<Ðî´Ú£¶¾oМÓXÄk§ë€yÄ>¢d¢†„¡8dà-dQÃ8“ö Dt¸/ `¼,XÁ«ðAÍOÕ.BU›ôå2 {CÃ{êr6Þÿ‰m 6Êx›Y³Û54xªQ@}άMÂùoŸÔÿÚǹx|RÃì@ŽîÀ: ¬wkNó¤ÆîãO±NŒëÿpX–³0Á6@ä©1@»—€Ž»¥ªJ~ÝUŽ*k››j§ï¦ìÿ¶J}ýV Ç oVp AŠñ_O%b°½ +@g[Ú´ m„ÿ-ÍMô¦©™w„{‹½tJGQw€à¿óÁà+ ö 4óÑò—`º^[^^–ù?°€»ÅrÑ9bÿ¥ +áÿ£E:J>jˆföè8„²d?”&K:`%à±qj°¨Ö:Ìz3€ ¯:ªs€”Š8qæÊvþ×Bÿ'Ø6ç&-q››*úœÛ2‰è?Â~KWW€îOšÁÿAö¥  /LK0óÉýÅ·éL4€(@"EôàgލeÀ„ÿâ@ÇÝÃkxˢ«Âd'€~QƒúDi]/ÿ]åå€ß|X¬Œü) a]o(è9@ž„`´²›˜=Ûø×onnjðßÔnki +w>Ï€~K½lŽM57÷vLŦ¦x +ÐO@4'è_VMþå²÷omymm¹ÞËÐ?ªþçíÁ‘!ަ_;ZcL¿ú;·~ƒéôå5ÿþàå b‡Aüù ‚§6x9€˜ˆ +tŸFîjêè‘Üõþ¯í˜ÞñÜÅÏöÎûGø—{çßþñ¿¿³÷ý…SÄØèõŒ–67ïÔ=Q?9´Ì!u¬p,Àp€+…Š _V• WþóesÀê|T ÚSÞde- Ü à$¡UáJ¦ÂjÔ7O€M€Ñ*õ_áD7‰»£å!¼€ˆ¯ Ë·ÞÆ v›“«l´¹Ý#ñ‘8˜€³ŽÞ±Ñ}6·†°Î–ÿ[xÁÏRf‰#;ðDņñãÑÃëˆÄŽR ‡1ß5ô¢ÍE@2q‡ð7 +„³pÿ¯ß¥Àg~¢ßÚØ +J4JZ¼Hì“úÑy1ÎOàk$ð7±:ÒÝ€Ù²³Oî(ë“Ò$È&³ø¼kâ–¿"ÊÈ$!ÉÆFnêK `VåÿÀPÍ:p:[ ÐhÊ6þérüñÇñ½mµ ôÕõi¹;wRјR¼ë'ûvØ‘ÖÝð‘aØpèD"q(b0Dç¯>D`Þ°‡CDuÜ/KÌpúÂ~çøãô6tr}è° Ï2½M€œù3ûçÈÈÈ3ãÑ£ C"”˜@ À@øÃ@€w‰‰¹¨ +þþ[Çk°"¸Ö:¡ü6|®åè‹ú9Ä‹ ×'˜œ8ëWPrhýÄÝö¸6'Óܹ}TÊŸt›Ojû0Þ·Ïr’Jý.B{·97ižü‹Ä´wÆé^î `ŘYë8«u¸Ín»‹`@8V,r€ ‚€x L…y–÷Ãà){6K•’_¥÷”*Óë®J°$ú¨-A·9 èp_#t飲\EUÁ?ïÜÆ3Wgç3m-¨ý!þ‡›ÚÂáç¡°â?,±îÏ?Õ-«€¸§ _ðLZþ˜ý˯឵üc?}" plû"Côf¨àóƒÈ:ïTè¸^J{6Ò„ÿÁ˸öl¤Ržz¿o,ðOo¸å =—×üGè+\ï»ïØŽ‘c¿Øñø‘c?î_N‡NÿúÈéý}ìçGN/¸\îÒl.n{TPaxnbîÐðßÑcq¹b` àʼ¢…j#€.þ«AÌöè‚{Dæg%€%eä$)øWõ$‚¼S`bÁ÷‚K + +#¬ð>@ÂÝ!îÄÔ ‚€õ@I¢7BÜ#,ú³Ç õ?ÎøOïÅûluµ¶–Z–ýQü£þýk;‘Ùä—#?‰¬ä#¿¸ó›ZÁGàÏ^Ɖ,~³ t×ñ]L€nà*¸Å +€öD®G~4 i2þ/ç~;Ãyãú¹OL¦lkë`«c¦<±W öa—_ÙßOµ=cJñj–uöŠðŸäÈ`ùÜFîoäø¿ò¤`ã,' êÓÕ'tucñ½‡»ÀúM&I ¸qüÑàe"š…žˆ¹@NÛ™ 8µÏºÿ-ûrq{ÀùšÓ9Ò’1J5¤B‰!’üt C°bP§\öë™ñ¥ññšq!-ÑjËü $€‰£t"™÷ ‘–¶²p¥9@vÍl×rqÍf¬›'OÆ'ÝÜÒ'`þ€jx ½E,•þñÜNºÂ1´43qv"ðS7O#·ñ ç•Aà$@f!4Ô gÔ£ï®B]5 +x]Q(©ý=ú½ëz.P¹p; –êIú~ÑJJ(U÷ès·5`„ÍáÞp¸‰Þ65õ6´…›šžmnê… ¹‰ðÿ@ób7çüãÅ'«T_i X[ίåÙû ÞBî§ €+Cþ!ªá`ɃàŽ*ìpM¦/§/ƒ ú¯÷ ¦éqyóæÆå úµo\Øï¥ +qñÄ;;î;ö¢}Çóݾ÷¾‹ï<ôÐÏÝwäÈs;ŽüÛ³<£lðT–M¾± +À/¢Å¦L:æ$vi ð, !Êk +óÑÂïå뀨¤¬–£…¨Ì r€€ê ðgJÿà× +j >°Â ¬º†!½ U VNhþE3¤þ¹“S€ÜôŠêßɧs4`]<ÞW‡™ÿ^*& ü6ÖuÐK8*‘¬Õ)ü_®Ç&jt“òb \V°BŸv-:Uädå¿ù7Œ@Éu×U +À–(‰Øäµd¡ ÐÄ4ýj¶õª)ùòþP…›fû[w÷ ö7%o4ê™= +þMU?LŒ¨ð“¦¬˜oü‡ Ï d³­Ð²€j$(GwúÕÏ Ü8§2%zx[‡éêøc/+–:›– ìÄöŸ¾Àg]/OOcO—}Ds¶d%m΄ŽF¢ƒa81ŒMVÃÃ)'°N„°Io,þ[X¨}ªîƒZCÈ¥2Õ¤àp„3Æ#¡ïLœžÿhgŸfŸ´£€·i“š¥vÒÏÙmšù¤™JþÉ8]}ŒòÞÜEønÏÙ-ö¸[¶‰C€ +@l@3O²/gÜn'&€=ÿÜæ²¢(øŸÇÛÃ? 8ÒØðl”R·®Ö×]WD BØxËt dà¶€2·Xß¼¥P 2DJ§")!®íŒ “3hA?6VšÞh"ü§s9q€6¬ŽÁè—àBžðHíÊIùÏÑ?<H`¯S¬‚@å"<¸ò‹÷EÐsǹ{鸇 éôèqºp#?8FÀµ¾á z\¬À¸qùï/ìÿŽÀ÷Ÿ{áÅû^xüå‘û÷»ïóÏ_»øù<ß»ãÈÁÓÿr:´àqªññM}lc}Û|ô̘˜c@ëwéÊ`P€€…yXýþÀé* +`P`^7ø­ŠQ`~OU6€AÂÅ(Ÿ+6B¼D}«Qµ`Õ?êïkÒÀ<'2$©HÀ¿› @‘¯$(†ùQ6–¾ÝÙbët h·5ØÀÄ üÝìôü£þGæ¯,áôÞp †ù3KHë„‘ß§2þã‘…·cÜ‹P›©è‡Zá…O¬xóÍ X¸«ý©_HñN´²` )(¹@w]pM¦«W³¿2š¨Ò¦wSÿÈÙsj¢ðû\¥ì¯Îô1‰oßd2:’YôîÅ)(³¢°¹?KëŸå[ÂèË“z,€î'À窯Ç'˜T<€ìžakt‚{à% û¶:-þkš +€ÅþÒKÓöx­ó…Ž‘g¢‡†¡C‰GRÕ><|æÌ™Ä"s˜ +°Y€pœH<ÅñŒØjjj?¨0xªçOLDòb,J¤àË>AÿØžš@_ÎŽ>®95»æFEoÖâ“qÞì§MB€Æo¶Ö[èóœñ@މíŒÇ©šÈ‰“ÆÝNvrç±öSwgÎI°p¤¸x#’J‡ýÜ0 Tß·lq^wºÐøçÞÉU•P^ ¸éúŽ +€K-جÚä÷?+S‚øJÛ)8ãÄà @¿ŸçÃÄš{Ã0†1ÿG7ÀÐ|À7%›€ò~¤ù!Þ§Ðõ_S.€zÿ‰¬1öçÇü8Ðú÷ç¹þ—(a"ôÁƒD&¼^ozô‡:ëÒsõ륽멯÷zÖ]©`0 Kà"ýÊ7ðzyíàß<öâýÞŸ?ýôÅW/¾úêç÷ýíç¯ÞwðÔû»Ž¼ÿ¾ç}g¯ôu¹ä9ZZ¿¾Yõ-ÿ8`yâèÜQ¸@¨ðŸSÕÿÕ )}c¯ ++x ŠG°là)Àò +!)÷êÏë=ƒè¼ÞKð­X ð! eµ2¢g ³²°;Jàï“…À±ð³Ôôv[§Xl Nwg»ÿ@ı 9@Î:ÿNü'À@f` îºøX§ó©áÃÈ\}ý'wË*Uý,Kä#Lå±ï®À è+~Ë/9¤wq òÔ‡Ú +¥ þO° +€Ê(Úq=r·“€Œƒ=‡qßûÒH¥¿cpñÆÃ¾›Û1s˜Í¾|c£Ia%Æ/É€Y}N«°ðÄõù@©ÿ9;Ì÷qìãì¬ÄTO2c`Å·e {‚e" Ÿãï€?êáxþÀóö€]«³üs€S³Lw}f&0m!ÐÙd錩áСPdÂNH„ÃW]QSÅTödƈX3Q"ã°ÔÔ|ðAÍ£œ`+|0]¸%I„Ö]Ø4|eOM__ Ã¼Ï©¹â3# ÞwSýŸSŽ€f¶h–œ¦éÊ~Á }4‡D޹‰¸Ï~j{M€ )r’H‹éÐ8ÅCžGl€£ní(`…”8xÓ%m~o³bÔ%ýo? ¬+­_)e;Þ` ‚ƒ€u€äÑln£ÐÔÙ€ÎHgg['&:›šÂÍ’ˆÂ¿YŽ¾î¢ +ôùWüHä1@ÕCàÚòZ=ÀXÁOŒå%˜ÎÏ~Ž^”A@bCcÒóº§àëhI¹Ò^hþ.ÌÞ 0°¥àÚùìoîÚõü±cÏ_|õó‹;^ý]¯íõž:²‹£‚Sïÿ.ujÔ³>zj(6á¯6šöŒŽŽÊºÆ?®301‘˜›˜#„þGX˜3¨©@DxYÊ + :î {ŸlXE­oÕõÿùù2äó¿²gu~¾¬"€êÓ×]›/ï(Øm ¸øYdŸSàÀ2@ 2þÃVÚÆðO°OàßàVë8èÅÆÔû¹%X<V ºFý€ êø|eø_ž«Ÿ£ž(Ì;ù¼Ó¥D˜ Ÿ ?6^ûVüGÀ]V*&@*þS[2=±’éh˜‚l¼‹Ë³ï`ÿªñKc2Ùßo2îÞýw»{ÃØ +Ü76ž3eEÐOfûQ¶76öW»ŒÛ&S–½tAJÊ (€ÑˆAÖ˜œÍ&±Eˆ‰C¶±z¸ÙNÀLƒø¨ +šé— @^xüéþæœöÏ4›&€ÞX,Ó{¶†Û›Â™áfBˆ@I…=óVab|ôgØcÄ ¶¶v<âqI¦ù(2IlÉìÐ"µ}}»=g³kœŽêHþ)Fû´I·9>ÏA +hqQ„\NËiÄ´:¸&åU‹³ _Œ<áIí,€‘TþÿsS8&€¯0”çYvž *øW9žQÙ¾3zK`Eá_o¬—ø½ë:ޝ¯ëDàÛO›.õïn* À¥¯ c‡™Kí$ݨÚK°ÉÓÛ†ÿm-mM m½m Tù?ÓŒÀÌzaÀÀææn(>\~YLUýC_4I€`ÞWT;³U +àŠ «!@rA¶úb¾b,ê£ê?*»€š3áØ/ÂÌ(.Ñén`Ç?zp¶Î†Z‚}Ä»Gþ[¸ðϨڟ½4è°§€ºþÕÒ.9Ø@¯P$"&V +ù¼ (@(|;þßàØý»ªT™$ÀĄģ¨œt5’t7~º_>Òcü’ðßñe6Ûø[ÂiGσ—¨z7ö,Þp´"Õ·µÿt~¨ö¦lcV(€Žþ&™`Å>k4±úot¸ZE„%¸ªæûWU°²ÿU·Tªàu“¹S ú6× 0¸VŽáɫˬ(p€s€ù(ÆÂ1¬ ·`®´€»Óm{݆ý~´ñ@Ä€Zÿ0¡×aY!œ /ÅÂE= À#ÿxšN, ô£F®‡@ºÈ—ÈD¢&#+bX‰|û/l?uw[‹z-¬HLþÓU™äAćîR`Ïà—»¿t¼Å¡þÈñK^éÿ»ÝAílëâbk–;ö³Ÿü'g¹Ó߀žlµ @È:²¦¤Ãa¼ªôW³É¬òÿ/HÂ$`l5e[ÌLÐf%6(©Û¹5@Ü‚—Îècì +œ9wãÜ'3ý³<(í€{à;Žû{÷}# ¡¿= Y,]ŸMÛö®—¦»¦vçó6_¢pˆ¥¡ÂÑ£õŸa8qæÄ‰3gBgt ²2K‚þã™qëféd4^óT-=÷3‘ —¾UM1€‰ˆ!e€1€Tè ýKãµ} Vin;vøp OÎw#ñßìþË}µœé،üŸ§MÆu`æNŒ€ô哿³ÚÿÝSÎYlàAžŒù ++CV&‚â(×ÿ€äQÆ»’Þ¨¸W¸Ï¶ÿ’r”þK_ß¶ +¨(z€k½¤”gôÕAÛvæºÐ˶?ªÿÛ›šxPÏB÷÷Ƹ0ÕŒö¬{ÊOåÿPÞÏ©>*ËoY4zY[#°Æ½ÿzqÿøë@.òCŒþ¢ 厩$€ô]|† T—Òð"ÈL`~$ùÜtm\þ7…ßµëè?àéÝ;rì˜÷à_¾öâãÏ¿öÿþä?¿vß‹»v=½wï®ÓÞ………’’”Ý@grë‹®ÑÑëßY³A +Õ¹‘‰ÈárÑÀ €xôvVêyõŽn ”\SaA«•ÁyTû¢ÑŠ.°JÿôµhñÚ<=9W±@¦ðaÌ£Ô.ˆ `HwƦ÷}Bψ@¸)Ü‚xÉ×¥ìïÔ¥ÿ[»Ó‰LnÄqAùç—©þ3„þÜügø÷‰ü‡2!ê?œÃA\¨ç5\ö¯H—‚÷åa¬ÿö_0 +lOy ÀÝ•d0´üO$O¸%«Ó[i üaKÿ÷ÞÛ=ø–ãKÇ?ÐUÒÔŸ4ÞýÄÃTí;¸ÿNˆžÝ}ãÆ¥,Ôý¬éœ‘¨:¤y*÷³ô.Ïð¡EŸU¹?IG‚’IŠ$³W“Ìp1{©< ßáÈÎf…tdáÔôYAþ×$œœå &É oÈjn~ÈÛð#Ü#È‘¾Ðö.BØ`ºK³Ûÿûìö‘‘ç3sÃ[áP“I>Ã\"ü?Ú +ñ$àk”Š~¥ÿd`þÇðQÁ€!€êjm㤯-–ñŸ@ý\„“G|¾HÂå"rAÿÒøS}ÈühZ_À·;Í`öœÍ™C/`ñÿq¤ýSqÓ§Qù¿Sc"ZG¸ÏJ€9Ž:&ãîÉøÙ³î³gÏ:ÝXwCðO'šb3,ËV° +P$3ŒpU·¿_ÆÿŠê_*÷J¢ +°2°Îw—ªö®' œ2¸©˜€Ì”¿=;”PºM¾ÐvL ŸÐóabmo´55Ó+úÿÜàƒNñ¾©S>ôV|~?¶äÇ$âWh’×ó×@XðË0 o 9ÀT§¡0DÿDAç¼ÁãëwõI&ã©¥4‘€ôqn 20M‡>À`ýÄOÿåÈég÷ž÷–¿ïþƒ/>¾‹ŽÞ#û÷ÜÿÊÞû÷.,œ"¸PFþëŽztàÁüAé·ßáÊ €£ôü8:ðgÃó÷#°FÄ (@‰=U!À¬:úU1AUV?™À3-€+žXUÆqäû¢…k>`ÿ5ÎÛ-ð:€¼øîT öMÅ¢±îoŽYhêlkèl Wˆÿ-Háæ6€Û]ÇXýšýÃ-ÜþXŸ¢”þ¼üW—ÿçê—•8Žæ–뉖9–`E­ X) E +·ù£Æö¤FÑs[¿‹¹Š`+t†N¼ (Èð¯:ÜøKÿGÞ{ëËÃo½åø_¥zÝÑúÈ‚Ï:L3Bl™Ûoýí9‡Âä´õggP € ”ÞÊö¬˜îà†ûŠ 7Ðp˜f­0„Y£úWt÷¿šì€¤,4™úõA5)€†À‡<  †éƒ÷Àpx_nh§ºßÖ÷];©·|FÈO kšgFšb‘<!º +à ͶÎ$†Í# (3¾Äý¼%Äÿ,-ÿ …yëÀ,¶p¡>µ^®ÿÑñŸ˜‹ÈR¨`ëD"qeÏø£9úæ}øúÌ6·¹ËìÖ^B+ߢ¶ûMšQî£Ço3³úô?-çf÷_.nÞ XÀ$ºÎI³Û|¶£Ã Àén§úÿu`7|yÞHgVÒ!O:­f=ÐÝËÆûê@Iì*hSÐ_à_Ÿ ¸.®@=à[‹Iѽ}zù¿^=¨—ÿúOááæö%]8@>ªý7Âmá¶0½µaP3’šypóTìÀ”êÀày_‚ø‡JÃÿ˜̯åùÃô‘|ÞO,`ˆCzK€ªÿˆöŒy!¤×O¶õë¥tÐuéµ{ +í‰Tʵ±ÿï÷K ËuâôÞS£Þ#ï÷ßÿô…ûŸ~úÅ#ç÷>½ÿ´ï®§÷zF<ë%%úsbð¿óŒ2X\wyÒ Ä)Ž‹=ð[ºÌ&†átƒ €`Ÿí€Wàd+ ¯˜`"0ÊÎ@}þ¯Péõ¯ò`ß¼îŒÎWñ€r7€$ 3êóU•æ ¼®ú}+ì²ç@~$:3ˆÁ+v›¥Àõ?"%ÚÕn¾°Ñ¸qd2Káb¹ö÷Iø/gÿÒStNoþ‡&dFQ,¢"çYôôÀMÆò·ù;{8òC\€?ü"À[šO* ÚHm¤¶$ ` ìG*ý@6@#Áþ[o|«õðáØÜwô<øÄîã †ø³Tí³jÏÐ=øIc+ +øFc¶Þ=ã,·QbúÝˈÿBÅX>®²‹®BËMàÛòÉINfˆOVÆ’ê‘Y}q¿¨ÄÀ™Ë3&ŒÿM˜Y¼G¾+8ÐþA.,KÀ>ò,3]C˜io¡s $ª¬·T²OÿOœ¡×ô!´¯ øÀJ€hÍIëÀuðÕ{\eü§G}h"2È}…D)µ• ØYø »¸¬ßG…~ƒÝlËÙœ°û»5I¢{1ùgG`§&É¿È R6@¾¢OF@À¤ùìäë`ÿîD€ð1ž(°5;2PIBÛ½´QÒwðºÊ \®—n锸ûK›UáÀ›‹ßA¨–Ô–!ù%ñV6¥J¥Û à_Þ{Á¡ùAþÍmmXÐG;öYÂÍÝSTÿw7#XðŸ`Ü¿‚I@ŒŠÀ[_/†?vöIþÏX^^è+èš§}*»]€¾!Þ\ïõ½éÑ3®tÜ뽜Õ·ÿ¦‚A"ˆa¿Wœý.O÷éóç÷ïÝKÐÿòþý^Ïþý{_ñ¿üë—÷îÿbÁ³0ZRôÑ…ƒ¿>¸àñHdý¹éf:= +ûÙ·¨lt– ¹b+€Z8'Ž@ü“¼>ÂkŒ|\Ä ÀæËµ¾hå@Žà¯eµ ʆ‚yå!ÀmCA>ŽüÇ_C&Ð5V8qÏ/HëS«ŠŒûÝÿ‹Í™X8ÓŒ!€7”;¸jkE +@ÐM¾ˆó¯˜ÉÐ×dŠhÍ•ô_.ÿ—ëÁ†¸Á¿±L KÂÒ?Ë,ëÝNXÄóþw3 h½<EçBv„REÍQI[z.ÙÑõ϶Â~Ç;L{këàÃO<ñàîA² ú=ár#‡ðó^ŸK3ýŽ,ÐÞhšø‡ÝoVeúgáèo”zÝdB_ÿÀ,@à?ËÝÖÝ­ŽÁÁl²• K ޲RPA¶áy°_Ï€ãçnÞ8þa#”@HÞ#ß±ñsþÀóNÍ·úPÍÏÊ¿}Úby‰€³a Z8Â* ª™‡|"[BR'BÃÃWæ FÕÿã™ëjÔ +'ò@M-€Úh}Pß@xO"1Áêc†%€ —k+‘>´g¼N °@3Ûìn­ÃB·sN;ª~̲ §ûÌq·]Ã@Ü¢i¸ÆAB~œÔ4'í8ûzGG‡Óí~½ÎHmMÍÅf_ÑÇËéÑø¥CÁ*Ú­ïJ±£ÛUª^PªÖÿ7Ë~=½ J€Îo¯èóýºø¿^•TJ¹$ —Ê$Þ¾€£ÞƒcþS½Tå7½Ñôà?kãù¿po˜#€º››}S1ÀèäŠÅôçMìõz ÐÚ7”ï/¯üÿl¤ZŸ8ÃþcÈ¢/÷åé%¹ú~TϹ›£Ç/Ãfg ²©-n lx³×Ëٺ닃ÞóÞýûž?púéýõôyzç•ý¯¼B÷|á]X]Hÿîü+{_~·åϪÿÑo}ûu@=·¹çêë…¨@@" ÿ:@ ­ {÷!»õeÁµ P¿XV„øÊ«Aðèk ,!pó_œ× +¾èµ)Vدù"+»ü•WMAàE€ˆR›€ZÚ¸€¶[ úÿ@qý‡Ã™&Ýñ¼_$þþ‹SQUÿëÑÐÿ•üÁaDåB€.-ór"TŒæoû>5Á@é1hn«à*ï ðOpŸ¶‚²ø »wÿêËA‡Ññ¥ã°ÃáÈ:‡w?ñÄ»Þ=Øê€w¿ý|Xõ“YǬ”ø—g³ +íM¬°'€JtL<öŸeà¬túõ¿Ê(¤˜o3ØcÌ:Ê&Áª^|j¶z‹ožå‰ƒFQü9°qæ“7?¹¹x³qVOÈfï€ïäƒZû³v§]±Yˆ|fÑì¯Aû·¦»öÑ›_v´„ ‘b€ÿâóGèºuÛû@x{2ããa} pÜj-¬Vë@mÍ£µ ´ŒG%ï‡ñ.=Ðç +<< Ósþ‚8`gŸí%AŸPÞ>bÖÜf³Ûbsšÿ5ý ¼`ü]– x}GLê$À=éŽOº?í8ë&øwv8ÛÛ:Û‰Ðù©XôÃÍ”Ç:» xCétý7Ô@ep¥ôwéž½’î (•ñ_¯‹?P‚oÓ”¥¿ +ØõÙ‚2p•—yJú§ñ¸àv€Q*w×^¸p€áæ¦6TÿDŠØè +€ ÝÅH¦c%ïËÑõöùrù?V©þ1°&*€¿~Œ*ÿ< þ1dn ù98Þ7„.‚hˆ~|Ĭ4zÙ»æÃ#Ór­ß¼éJñ\Àeïù´‡u—ç•Õu1T€»ÿó2Z``6€Ž,óÜûBˆ^#"@¯×0g¿‚™N*µý’è£È{Ù9Bå|‚[:›8xËÖBø_‹Ž{Y<n‚S µf–dwo ª¯è¾æ+ïŒD&ôî?¶åm)üêƒôv™i@D*ònÿ÷MO°@O«Í»¦ð°Z +  ÐÿY‘ÄZÏÖ^pøË·¾¤¢¿•-ÿÀ_Ç¿?ñÄÃ?ÜÓÚÓÓÓJ|ÀÑÚJèÏ9¡?Oó1²gMô.ÃxÒ‘åÉ}c²ßäÈê€A(Å +¿“ +úÙ¨sþžŽúÜ"D ô•— +#¨"ì4Îf¹Ò—eÀÿþËçnÞ¸qãܹs6š’B ’òà!×ý½íÇìN›À2­Yìû>ëúÌlÉÒµ8À¾‘ÎŒ{û†‘ÀM'sÐq^ÞsBVø! €šX +g0ylÍ ÔÔrÐ8Ý¡Gþ¥B÷„ÿ:eðuQC$åâV‚u`gŸÝâì"LwRùN¸Å?bvLžD fwp—„팳 6@ÌÆÝf ¿›WŽÇÝŸÆ';Ξí0wtt4´7´wv>߉“Tw6´¡ÈØD}Pyy`Zíá,qÀh©TÞ\žø½4@¥ÿKõ_¾½~]GóÛœ˜•t€Èÿ›US€å)€+%é5lŸyi4~’À¢½o47·þßE‚ë• ¢¯»y +`аÛHß<ý3ö/Ë4ÀØXy)|öÊt€¡<Õý¾<Ïp¤0cj àG¶ôtózézi}ýz:í=_ï=¼Á*K×Múlß½œ~2-Ôn}táüþÑ'GKûŸ$ÐßÿÊþ¿a@¯ç…xÙ;:º°°P<Ç«Ë5:Zý–«ÃôË +@W‡`vSÁÀx•-=Q@µÏPÕ×J@¡ ÿ•@`Õз¨7DåÁP +¼û§°ê+¬rw=Z ?ý5¾¬¬À ð¯¯ä%äÆ:`(½¿‘ì…   ó¥ h¼ ´¨C8SÄÐÿ/exÚÏŠÖ?2оhAþëá?sËjöõÿOÇ)`$æÀzv,Ô„âJô;¸,½<ôs··Tª3!ð’ĸc›2o>¼»5»{7n™n`Ë`ÕÜ Bÿl¥UÁ\ì³  _ö\þpfæÃ™ež4à¸íqüBo»Ó>bÓ¦Ÿ}fùÌ>m·tÙ÷Ù-/úÛ»öÙuZ#Tÿ×c·/_ +\< ì51L§l°Ê³¼–^kÆ­Q6 +Pc° X£‘R/C!Wb"2g5Ð dtÈã€ÁZó•F @ÓìšÝî„€jÿeŒÓ‹Ý¬íƒ=À9€÷ÿæì˜öÏ9™ØÐ˜t+)ÀŸŒ»ÏºAœÄ:Ú_oookC}[œª²L(`:-9££)Ï(âw«‚\ WûJ·¯úðf¹@/Èþæ}±Ê&¶.ÿL™alºn¨Lè9À%¶í¬U" +pÞ?vá‚2B÷o"*ðÔúMhÆå˜ò­`ŸBXæ‡ €@†ÿ•±1¼ˆ`Œ@þ Ä·0 Xè.ø…Ð:êÅ0úc{Úm–æ‡St)8VOx–Ö]7éqóféxzTé0ô©OzŸ$@€ëþóçsþoöÿæb/¿rþå¿Úû;¯—À‚Gú;‹Ò¥…ƒ_ÿ½ç¸àå¹÷Èðr¤^avèë+‚Ë{m U{Ûõ÷ ²@¨"Ò5˜/ˆü€‚‚>Øþ§Öý\Šó:0 ¸"‹xü¾nô‡|¾X±;Æk€›š¸Ä1€í„þ -lû[Ê,ñ‚Ÿ%øgè@Ú_ÆŠÀ?Â~_Q¥þ­(øÏÐÿŸÐûÿ[i‚CÈi`$x»¢Iô«Âï¨ ûòßåÏ[ôr äº{ø¯bÀØ +±þ &‚² ½åádRX“îÄ(à—ÆG¾l=ì ø‡Ÿt´²å¯up÷àà%º ^j…ÐCEyë%ôäØåçÈ&J¡OËê>ã,||&ìü)Ï÷%2PJvQª«üÀã ¶õô$M=­³­YÇफ़K&£Cð[oTõÈrÏÁ$ëƒØ Ðßøá¹s— þŸã–€ þ‰S€†¸¿½C±¦KWÀ>­½Ñûfþ¿´ÛÝ™ÂÜ¡PâÐÑ‚/²2T'ÏVJ''BǸhy»…п¶¥¶¶f|uOtÜ:ÐðQ ‚–z¾Çà Gzibn®@¤žýtFÈD#¥Ôêè»›5gÎlvç`6;-f*÷ã@|éhhØ,v8Åèdg¸õ4@37œ“îÉv÷ÙŽŽ³Ng»ûùööןo#x‹ ­p˜í„¬£AôvZE6˜ܲ °¼¦ÏÅv|1lªÞ¼êÿ»”#ßAàêÞU€\•]ø@J}³ Z@h!ª€’øWâÊ ¿:¯Ç£°-OþÊq€„(†1M}Q‘ÿ ×VxFú☚Šúb>Æg±BˤÚÚžopÚ¨öç¼ØüŠaiüsß¿h…ãŸØ¿šúSc|JýÏsä >ý7Á‚øu ‹K@¤r‰ˆÈ( Æ¢ßéË_¬‡ßÍ8àòB€-,H!ügKv‘É@²G?%mëw~ë­Ã=ŽÃ­ þ*Æ­{¶ÃýÂÙÚÛÛÿºáõ6ŒµQ¹±RËëÀt¨ÊX¾èâ{9Pï-éi½®RÕh@•¹€·³¬Wõù+M†M}A"lþO•×úöÎ/S1ëõŽù§0üc+ðá°ÌÿôcÀÇk€¦ûàp}ðšøÿÆÐÿ_“)€0/ØŸ§·+Cˆôç¥àçy^ez~œO¾RÉ“ŠWŒH@0÷Š+%a?ún¡õë›ú_y}st8ÀñôhúÉ…'‰À p~?q€½÷>}ÿý»ŽìÝ{Žó¯ì}ú/~ò—÷¿öµßV7à[½¸‘z}€Á?"ü¢Lâ zC_Ïþ/ý= roe °Ò7`ðçÄaÖ|ó¨üW®E§|Œÿ×V®­  à£SOgè° Çÿ{©øo€ôß„¸.ö©ú·†ÃoKí#øE—¬E«ø÷EW +ªúÏà0@´dYá%±‡wã¡-BHƒê”3þÓC¿ÎšûnYúB4ùîvÀ¦2E¥<¡­”‡ßbQªnÜàv¤ð€mû¾>üåÂþFc’jížÝ>øðîÖVjþK­=—ÐìÙÝ3H÷õô8Zƒô!Vä¹7rŸ4Í:ðÀ$üŽ,'ùegûQuÃ>ˆÁ€¬¾ü§2@_tU¯ÿ!8ê=Ü-Èö[‘DÿZ+Õ¡J/@äG„õ€ƒ‡%ˆ×"ørc㇬ 4âá/»G¾¥ôþUÛ Úˆszš-Ÿ!зt½´¯ë_-ÿjwÚ¬‘ÄDâ(W€cB<¶€@èûùŠÖÌÛ--„ôµÖù9ÃëÀ¸µ-°ò« ŒÜ¿HÈ3Q`Ûà@ÆŠ$Pä³0^‡";ÏÚÍN‚}bf³ÅmÎQí?©™ã“ζÇÍ»Yß$’?•ü6¨-+Œ3 +ÐÑA ó¯1@¥-6 åÿÅ ,iôÿ!põ_YP±ªŠS¯Ç]ª7_¶ +ê @¾øL€©ê°¡*`y @Ú)b\ßÖeÀܸì=?vÁ'y¼ ˆ €±&ˆüc`… {Eð!>,ó‹òÁ@=Ê~̰è¯öÊkš?ã~7lô:Æ ^Àèöù·~ÝdÁ8¥ÄZÕ7¾^*]¯ú¬Ír³g}5Ø8LóÞóiï+/ï}úé#û÷>ýâýOïzñ¾¿üˇúåC¿|õk¿cŠ'Á”¼=GйzUþc;°˜Ý¤¹SÎ~y}°ßWŽôŸ¿µÝ/€Õr Ê3 À‚jýæ« ó×T]~ÍG °²’¿FW+× À¡)^8@¦9Ì MHÝϰñ•ÿgý3KQµê'Z,Â_@€û *gñ¾¼üG…ÿaU ‘/iºà»T[¸Cà;þYõ1€»˜X-ûaŽòp9Eéл‘àCV5É6|ÇÝ»<üð#‡÷>ì`ÓýជŸxâáÝüTú÷ìnìéAòÿ%*ÿé#tJÞ8e˜—ò> ˜7QÁÏæ=lûA€C}q'²€XÌŸåæÀU1$+#q 1ŽÝYS–Ó[w_ê1é{Ó·t8.9~$ËɬÚ¬â8ðr¿ììoüOœHØß˜tH&ï€o<Îøë»³]›¶[¦»°hºkºÃl™Þ÷Ëé}öŽ;6O xó7opÇŽŠP*”`]™¾†h4cåpb-55Ö($~ŒŽ Œ×Ô|„¥ŸTdb`žà\ƒãV Ri5„J¡Dâa¼ö«>³}Än1»Y°Û§Ó2é¶KþÒ}NÆã9 ÌvÍ<’ ä,ü7b裟ÆõCl€f€³Üx¡½½ã¯Û϶µ½ñF DÔ#Å^„ÒéRÜJpŒª)€ªe®Ò­}6Pw³Tv‚€,ÞÆÀ"Bªzá°«šÞx”À¥·Ím] {¡\˜þP€o¨ Àæ©îb7;e P=‡×KO,@$Ž¢b_H }î”,BïŸGÑàê`]‚»Ÿxzä!”AÛ‹ÎÑ8YKëÂÿ±~Ëé¼¢ +`tt“8@:^xÒë}啃vÿý„þOïýõÓ½÷¿xì…ûì¿–D0&"€ÄÝ̱02,$›øt€o>ªv‹PûÕr}¿Z†þª¯F«$ÉýSåà`!ìÀ7)°þï»æ›âA~6 ÷Á +ƒH€—ÆÂ-Àþ¦·›Âlù·ø[©êç%Å¥b¦ÙÚL•Qiÿü*ë†$c0/óÿAŒƒ€\ªÿé¬ÜÒ¡?ªÄn@Lú¾ó•³ïâ:Àjüç¹h(ÿŒÿJRµš¬TÚpµÿovï|ä¿ >òÈaŒ÷ö?ô'Äïi%¦j¥?!><€=»{Z¡€€H#€çö’×+8N5¸±,‘þô‘V]P¹>&I2euäÆü¿(ü9¤±à˜éŸ5ÎrÀ¯ÉÔoB܃z÷Áh¬ø’e;¶de ‘Äô—u3ËmŽäŸ(ø!ÀõýÖþ¿:G0ö¿oÚè²¼4Ýeß×ñŸÿò%û/íÎìáH$qô/ +@t{ˆ@‰ž˜‰Db‹]€GyhÈZ$8¯}ÛZËÛQIXÇ™¨­x´¥eÓ¾ … V|j&3°@ .§,,÷>Ât*óÍû^Š›;8 ‡©¿“qzs2n¶äÌM3÷å°üWrQý«¥@“€4:œîIçY„œ=û×ííp¢»‰ö¡|žÎ2ìr€%€QYÀ[xK `©:¨úÝÒï]¹”Uÿ61º #þÕ&Ãj`Jÿx™pÈÀæ¶£\Ú[?vÁ‡\`åhV]:©ã?EäoEb€¶#˜ñSõjõ¿YCF0ÿ úƒäÙPð¤ßúðqž°_yr©‡á°g÷¥A:¨ú‡`°õÒ#­ƒD.AàBtu‰gütK^¾TæÏ*”f:ÀM{X“øÈ€òå}Æà £uД¼:H_‹z¶j€Q«cu,€þÝñÚÈ­ì"ØŸU{„UD@c#,…Â/ÿ^þ¯Ñaqw¼€Ñm_×ôt×>ûOlñ}]_ê±Ä ÉCzºèö×{ééHõ?Ú¡aH[‰eœ‡¢ëx¡33ÐR[W[;nÂÍŒ£Ð'˜§ò¿¶e ‹²)D÷€Hj@ÆZ€0™¯ ìtöÌöªþµ{GWÇH—Ùݡѕ}3R€Í'sn^ +H\€H€Û,€“ñ¸¹6÷©;þiÜ]‹0À¸›ÊÿŽIªþ;ÎBÿooÿ?ÛÛÿkÛopð ++ÊRs€<8ʃ’¨ëÿ¿ßÐó{ËR@實 Ä­Ûáÿº÷ë*•ãoÁVt )Ä×·]ry½kyÿTs‘cáì) €HÛÔT7 ¾¼£_½ôûüç×òc+ÜþWâ?Ïú%`Ð/€ì"%à( ô”ŽÿÈŸ…ëPH°µ -ºñâ·%ù.®óá¢Zà=5ZZðþnÿéƒÝÿ{ïÓö¦‹ +§ìµ+çL±^ÿL8fŒ]|œÃņ70Fx¶²œ‰[oNâµG‚¹T»Æë™Þ•À¹Ýn~ŒR¥ÊnŠ&1:•6 ÍÂLçî©Úèœhtv¥ptó®ª;î: Aº +œ2Ñ•îû¼ïçk›$m“NÓvÛùÚ8Æ€!`ûyÞç}Þçý‹îîþýþòúÇÿåûÇ\˜6ÍIp"¨a)€U6H€ÐS©&À’¬(T,þ·< þ…¥jQ@ ¬¬V`IÙ=! 2d F@Tý<X(yd€X÷” êÿ¾?C0a}<ÿ}õ}7ú°ág®)þ„ýsŠ” í_+ÿy¿Æ¬*ü—Ñÿ½Ô¸Ú¸üç˜neᛃ€Þ +þuµ•ÿ’_'þojsÀ±6Ð6rÍrd•€’$ó;dý«Þv‘ÎÉ}%}Åí>„ºÏ…Æ®.ôù©Ò‡ÎŸ¶¹Ól€ mCùosûýnþ0ÿ"Õ㘴%ÅßÇù~hÃ'畞5,òÒŸ¤šÞS¡~D Pâ%GÀèÍdµó‡~·^¯ïÅ÷%þáçÅÁ\øÛÔ¥þ‘ÀòD ~Œ!šz‹÷Ue + WŸÿ{ðcâð¿;v,`×…#¾vË7ê:;Ïé,3ç,á ¼ðjr£Aª7ò}¶ÒC•'úH¯¤çgn´PÃÏèIÁ?•û¦Ä$½úCû1ÈApø0óG•‚•-€õ©I:¥ja €È°ÅBð¯3ÚuF‹ÅÆB Îa¤§ÃÃu‘NØþ¡Lgì ƒàoDp°ÓN·Ùgœ‘x0øà£c§Oœ8pâÍ}ûd»}v5lNõâˆßŽkë€cÒ(V\ŸÖ(÷ÿË+*êÀÖ§{Ö«wi“þŽê@QkðÉ¡&dåÐ W3/\çó¼ÿ÷…Žrù¯öq ï‘j>Ë{~Ä(e–½ÿ^ÿ,rb0êÿ쬴þ#›0@o³žqm ÀõÍ"nãTz¾DÎù<>UÄIýx+P¦éþèþvä/~üŸ~øïüÃWÿòÕ‡*m[V@¨üÏÁ¸p\,€šÀ‰Áù%^ª]S™ñŸqÝÃØ~‹yÁ-¤(@}¨Š(øç@@E¸  Ž;t#ÏÞQ$`¶$³€YœïxKÙ;ìÌçûZ:^x–Á¿£EbþPë³ÿOü¾Ä\Ÿül¬XÀúWþ.bo”cz¾X ‰‡´åDONX[µÑÍ ø˜ÀUVù¾fPfx‚ÓÏs¯­œJ^aWù ÷[÷[t]´½ýÊ•Wó÷ +&ýuu¹»Üî^†\¸ÙóÇ®¿þ~ºÚ³Ø ðq/ËhÒ/ ˆ_Ljþ|Qã Ii )ˆ€Û ×ÔzU³ãóúrå®×2€’z­¿o³õF‡è3£h4@ù·iÊ¿M”°3ˆÓ‡B˜b*0oh>O•¿AÛ"T¦çßj®°†ß€ަ§|pÝî¼þÆæ[„ÝteŒ7üÓ°åcÇì¯&j‚GzOKŸÇÚÔÖsµr¨½®õÿÛú­ ,#N&)_½ @Š^R‚&ÅòúÒ¿ßg=ë[­à´ÿÚ”/Q“+ö÷÷C$DÎb±[êœv‹¥Ón ƒXŒÆ€±Iti4vÂ& +0Œ0`ŒüË@$ÿZð¤àtÄIµ?ûiûœ8ð˯c °%O€VW»€%xCS8&I¬ÞTÆøò{;eŸFoŸ×Tiàxúß6Ä @ô¥ÄÊDxž@#ˆŠÜÛÝž–|G‹$ö±€ðŸ^Úy +x¬@õu@¼Í/›µÞ–ð_úç6þ¹ö÷fgÙú7+’•þ³#Œýü6Ë…¼µ°øo᩸YÌL¸è<°ùH/ï°–Y€ã¯ÿáÅ¿þ§Gþ¨»û/þÓøÃì¡î4Œ¶ñ˜›•'Ür+Aq( @°Ê¢ç‘&=üB*EGq€J—¿2°$È{«:@[ÌÂ|_*à¾ï"…þN>_¢K  Ã[òÞ1”Ê$uÌ5Â@ÂCÀ} üÁî×7Ç®¿ò¡}«ÛôU´òýd'üÿ܉8Çîxq´•SúÊÇùkò2 ¯Y¸* Û€ ªÆax5²•»‘JR¼=úÝ_¼r¥×ÝØÓû +Ó¶tÀOpïvþéÍíÔ÷ßÓ½6¼GM滹¦Ñm]þ$ûý°êá„ œ0/96CrQRmU-n=§ûðÔ~eüOÚL8ØŒð¾h8ïóÅþWݸOÀ?Y<€%ÁCͬð›v ‡`ó[çç+ºÁï À}¯ü³ÿîØõëfS$žØ¿´–rë~ÐþÇsÎs–ö?K,-„úº½-},Âüçà(SÇ©SèÐõ]¢‡˜ª¿aê0éˆPm_ŲF½%øü{ +#¹`¡f.À”š4¥|©ÉPŽ€€çuuH¶ètNªþía»®ÓnGÇ0a¿1lœÖÍX¦;¼pXÇ cdø×:İ + $@±ÏÌ¡ÿ>œþàƒc§8±o"ïúò¼ÓŽ^kšrÚs.®ð: ŒÖ|¯²«'þîóþW ›L 6?s‘WYà}±û €v¯•@mÑÖ^ÊÄ›ÆÇ©kéÓŠzM§w=}‡™/Íb ýqIÄ. N(eeºþ¸ZÄW”up$Ûí•Àô<¢ ÐW`€ë߯“q]ý·6·uzœI@<“ÉÈßlÝáú‡¿ù›ÿçÅÿðÇ?î~¨2-SïÚ€ÀÜhÐZž(Tl#â€@!¿g§ +°Ä +çú‡¸ü—h€ò"@Y 5 +•sõQZB €wQùŸ'p'?«¡ÿ¯÷±Ãªÿ±P9HZîŸè›«§Ÿ£/´óï"Ï1Têþ…Yú«´ÿJ"Þ=±Ã³QÿÜÛ gi5(¯:.bËãú×¾†½ü"¹i·²ã¡ã§®ÈGïÃõ(³{Ü==oÿë•÷”»çJï+~ÿ+„ö(û‘ðïî²Ï&?·›Ð£~tk/¿G7÷¸ý÷~¦| 3Ž@¥y¯¤ür D´²ÞÆ+¢úêØóÅ0€^ nVÄÆ)ïýî¡f¤û+¯ˆq¶UZúrÀÎ%ú$Ñ(œ +<„%@Iƒ:æåÄ:@ó[Íü£ñÁï À}€c×Ãa§®á=S{ªvàÖÚݵºpç¹±pø\Øþj BÖ¯ àüïWøu=vJVX¡3 `*…‰ÿA“©6E_–³k4m²åÿ½h5ñ 'Ö"*8U›g°ô~Ãs æ:Ës³€KÀØié !1vìãp˜]Øhï4†‡gŒÓˆ‚ pþŽð8Øà4Rí Àx€.Nüá_²ÿN³Óv¶ª c(™"çWËüUÒ±‚ü•ú¿Òp|† 2aµ f¬Ä iÛ€µ€f(~é1å)þRÓømFÿú:ZúæÀ’òÝ¡<Ë»ÝèõΪ†>oP)€jéLB˜¥S‰®ÏÎÎr¯ŸIûfùŸYt<³Ý¹›+-ùÉ&ÆGœÂX×âøˆ7ýSFl޶øñÿõóµÞkÓÛ+xŸ[@æ=ÃNŸË–Ñ—<fê°Sgð×VÿÜ +Ý©ñ„Tô–¬Ì²Qà>è× +ô;¡çßa' Á`¶ä-þççòy¾”9R(pHí¯ ¤ý±ë?¤E ò½×¨ÿYn硞”ˆï’}9e +@èØ¦á¿º‚‹àãý-,|Ý(M(Æxê­È +üã£ô?ý ä¿8å¾r¥‘À•+==éžžžÆFt€#Ð?MàŸî÷² +ЋÛzõî´ÞÍ‚Ê~Ðtáaà·E¿Û _ ݈…=~4éG™¯ñÌ”-°šè€£Ï–ÔÀû&7’z­þg +ÐeK÷bÕ€ê €Hðêë+{õå5Aª¥`“D?H ß<ÏñÀe + 5°.@B èìþ=¨Ÿ4ýÇcás? Ø_o¯¨­8²ºPìܹ1¢–cWCK£Gà-‰¬õ¯ÛŠ®BÿkPÿù‹c£ým9*[Vj°ÜE}Z )ø1!8B'Gò>èY?„ äƒÿ¯–εBÁ˜(OaÃÿºW-öçXú§“—Nÿ‡§ëˆLÓ5Ët§eÆ#›ŒàÆ7T°Sç4Φu08ý‡§ü&À––Çyœ}Üšk`œêÿ¶ø=i»ÅЈ¹ªjó‡£x_Á¿ãJ壟£¬—§\.mëðý@ ßUŽ ÂO` +PEf=}Ý-üBÎÙî ÿçóœÀ3Þá½Veÿóª€Än{µùÿnð…¼d€‡nót{pÑ-³€èüÛQÀSQåuÈÍ×?5ý“‹S„ÖcÇÿæŠÿà¸5w<‡ÀÊñ`®< àÌîÀé%Gxø<§ —5€8íBwäƒÜ(–ªŒ€œ Ñ©ÿ=÷‘µi÷N!ï¹ `–NÒ€Ïçócd®{Ž7H!J¢e®·û†* Àb¡¢¦ì/dÃÂþI>®”þåòf½ ‚}å• àWš §¢s[»=㡎¯û…ÏjÄÜc˜¿‡ü_nGÆ5À €ëì0xð^.H`?uåâ+W^¹BØOè¥gª§Ç=uèžC‡»àýï!xçB!?€ÿîô°×¯‡p?Í=^ÀE?Sâ ½/¦{{ü~¢~®>õB 蟗?tôÑ_ ÎŒïI™ï§+7“Z®_ù²<ågÐ/öPˆ0H¨ õå¯I*2°³À܃¿Æš†˜à<¯µ4à¼Zàïúãæß€ràG/|€Rßl4Õ^¸±Ÿ(À‘µµ[{ þ¶³øjjŽÖPß×Ê¢!ç9úZåiãå©%~MZ +%æ@ÌTÜc°>TCOdNé® yjj +W g{ƒ““)Yà{ÓG1pt)5øÔ`ÃsÏaÀ¨³YöŽ…u–1ìÿé´ˆ:-„øÆNËp ÎØ9=áK4¤|Tÿ64¼ŸJ,͹ڎç‚—-ü‡#L­­ÁL újSï¥Lµ)±S*,¶ŽÖ„jŸªÓ5ØëtØìcé´Øá1Ý–v€¥@ÅØÙÙi tB §§± `µ?o +˜a€×Ø#N§qÆhw‘øÑé ¼~`ß¿<}†{Ú„dV«–àž8o3l€L%èþzÿ¡ Zþÿl`9¤ˆ¨¯bL•ùj¸Peª=+'ÛOJ¸º7Y½ÝÝT¿å¡ôa0GajÒã- Ò—!€lPÓÿ­¼ýG‚}³³(ög󳳘œõ _4ØÊþϬ÷oùgA8œáEb™¯ϯ®_}œß§|Å£~Áú–ôªZ>‡ËúÇû?Kê}[ÕÂ{äÜÊØÀñ²€È<æ=Uрʈ˹¹r(@Aþys@H²ƒ–B•ª_ë  €{»SþâÐcð/!¥GÍÞ™-ÑSP”/àA‚­À-ðŽ´ð†-ç—‰ ÿU{~±àpåèÊBYõoãD8 5qŸãð\.MþÇ%ëämñò @«Ú›÷ED$àû<@f>×ÕÕu5¿ó¥m½Àò2£)þqQ*Ê?d8ߎÿ­õ> ÷å—/~H àâÙ³SSSSÿ|¸»¦z¯¤ÙЋ~.ë¹þïêus&wºØ‡€iúýmé.°w¯u7±€¤¿— ü‹6Y D[¢åhƒ +ëS"?ö¤è“—“ªMPígŽÀá‚C›Š°iÔ¡¢÷'õUæŠþ™ËÕLà<Gk}€y¸”`ù­â[C½íBóÕf›m¨ù÷Çß>ý“ëccçì‘Kµ7j/MÐq£öÈ‘»G0xݲ7ttôh¡£#Õâ æZcÖ|M¬ +ׯ­ZçZ­Á+=¯õõ>¤þ4DM&ßû‰P¡¿ÍÕ– R©2R3RÈsX®§òÒ”ª5aOÀAÓûµ‰šŒ«ôèþÉAÝ`ƒ…Ñß®£ß ñL:ôŽeÚR7m± ‡-FbÆNãt>@þ¥7îàÐEŒ3öcÀø§fÞä1ÀÃùY(å(k8‰PŒñ¦šà‹Ÿ— –rÂlUÚÂú˜êĸ¡IÒƒ~B…b¼Õ:ž÷ô±ö`:÷Íå»óˆ€Â ¬Zô£úþ|àIï–ÄÔ't'è/yT +p^ýÇ ·Û#³€Þ‘ì‹YV¾¶…,l+þ5[ë¿}œo±U”½óšå[„€¶âòíVfÛ…pÌ£H¼]¨jh ?â PЫLs¡¥;ÜŸc@£âT$‰géŽÂè;µ‘nƒ¾ Öÿá,ù;^P¾Î ,Üíè›;Loyèÿü“°?ÑSîøWLÿl\9Ž•Ç÷§µóÛØùÏ{þ7$ß¡x0(Bã­å<ÀVYø…þüðÄ>c!P•…C£püGüò–Ë=Š£˜5W\Óþã +óù*^œ*;îâìÔóÿz¶gêg?ûáÿÔÙ‹/Ÿ={aS]HþÙŸ-€nvùAò[ Õün¹ÂAØþ?†.ÀsÜHs€­w±§ Ëzýiþ¶Å´Ÿ{õ2ð + Oδ`•ö£¿º"2€ôùmÕøoóÏ’6ƒ¿2=X±ÿ«Î²Rÿë+ܺ¨/³¤¨ÿJ0h€èlžØÞ>?ä·­oÙÒщ«C¿'W¯nÿèéשطÛ/ÕöÃpkàÒ#kõ'~¶Þ¯-$RÏvx‚­­™`çö™–¿÷ÖFƒ Ö\k!ˆ…d¡úÔ%ß $³‰xÀd¢¦&×ïj R¡85³†«ÉDÊ—ªÅÁ;L¾DÁå=º4ùÜð`ä9Âsï0ZÐþöΕûÆé€°¥ŽÐß2m O×§43<¼ÇB û´@F*ÿÆ€ôÿ?b +ðÁ/üòõoî;à +€X¬M9«Uyª¢7Pû "ü;~ [4x‡”£jÄoÚ BLÛäж?)<œˆ7Q1Ÿï;܇à>ìÌcf0æÏ-ÿ çðê?Iþ£kÿ˜ý㟷Øà+ Ç›çM€ÝÝHÌ"aB_—™JôÛψYï1~O¿}¼¿À:?¶+øHá>KVÝ üáužMÁÜŠ•èuΊ§ÏÊñ`Ù +a †÷àª9¤vÒÛËFM `̿ŠÂ4 ” W žªÖ¿§ ¸Oo è4%¤ŸNØÈ«$ £ŽöÌyæò!z¸„pIïxòõO¼DîwA´^nh]9¾P®ÿ9þðÏ¿!Ôï1ö3;.ÌÀâ÷¸U";Ö¾à#ˆcøU¼ã§²tíØÁàÖ¿\ À!¯2ö/¥¿&´b5€XøÿÜD´°ú¦^þÓ?ýïSß;{öÚµ¯}øüó^|åÊÙ+gá êßÝØØÈðÞÀƒ€Ðý{Ù(M€.f@}ììêb­{{!¤ýØЃq?Øl~Žê>üˆ¦Z{ž-†rÜ«ø"èËc}*ä·Üà[à(ˆúmú* ×Wôÿõ¿¬R[‡‰8 òã£Ñ¡y„rõ¯‰LxeМß^ŸH®_öö¾²Þ¬÷~O2‡O]·µ Ô P÷F=1€;û,–¿L…úƒõ‰g}}…ã­Å\w¨?V­™­ÇŽŒB ä•œK…Â\‚eý”ɬ3lð¥R“K£ð æFF +ÖBp©†^q&±°ö½÷k'jÿ¦ƒ©É—‹=¦ÁÈ áEg¬3êꌄã{Ñn°ÔÕ…;Ãaº0ZÂÆNÂÿéð TþH +2²ù_/ÀiçŒn&0Ò ç>úˆ£€_ÿå>å@= zYhc¡#7‘»Uˆ=ügv~àêç*匱ê+ ©ÃEõÚ§y `à‰Ì[ñV+üúÄæ€ûsÝ̰Ѓ¡oé°j6m`æéýC ðÌÏ‚}pv¶{¶ÈßíE󿱂žÙnïˆa/Ž}-€"6û€eËØ÷Xlas{SŠG<.èï½QÜ@ÂÃCm g÷¸žË5åRÅA÷„ú+Ç©þ·5þƒ…l¹ªððBÊ €_P¸ï™«äÜ«î?›Ø”_6æW÷ÿ÷K¢ƒôV*Á€-@ªü/yý ô§’Ÿ(@ˆ®äçæ„ŒÜñTÉþ ²Ø0HÐoÕ„)ÿÛÚ„0"|ñ_3‚3 Ð‵•ßÑö…¤«ÍwÍϪ*ðq¯@ÖtËH—Çÿ7YÀðqÅþW*@+έ.-‹"­;4€©?ýï×þþyœ>|þÃ?¼xöìÙ+=StžšjäMRáƒtbÕ¿·\ÿ÷Ê»zÜ]lèâ†@ Hfp¶-öva`À†@@žÑ3Deºo3€è³'‘ã«¥õ–|’<ëïg÷ Ûlj°rDõÑh³¿â|  1›~ÇíðÙ¹ËßÌÛ!ùƒÊD@Zó¼ h×òÖÄ6]Û[ú^ÃrRÿ]'ËOÿ¯Ç®Ÿûçκé_×ÔÜ8rãÆ[“7ö/ì3îMIµ·ûBÁ\›+ò¼¶£g¶îºÛ¿p<l‚¬ +B¾”/a6cûŸ®v°Á„ÿàÂñ¶œ'˜Pd“õ<h2Õ¾—ª=Hø_[›JÚb ï›ê„AKÄ"£ÿ–áéð0\ÿÆ0‡t†± ÀBð¶LÓ­ÓF  $xZÇ1F£ÎŽÕ€ÆÓ‘Î<úô‡§O¿~âÀ›OÿËÓ-sjjmÎÊ&@Lß”§µUÀ™bæs;÷§VŸï +Ç€ÅÔê!Iü‹iN@ÕŒ9*1„ÛOP`à‹³È|Äà9”þ2ˆ »Qü« `fY^é“§Ò2ýngÑùç!€l7ª~z‡Þþ(ï‘ Àn äG¼pŒ| +ÀÕí­ÌÄ8Q~`¯¥ð˜-à-zˆdˆjhñÑ1ÇÆÃ2"ÅÔÎ>ù×Úª5x^€«hœ›?’…T@êàÕzs*%¸„îCRœG<úƒ/“m<žB¡bþ+UÂ%w(Ë[zJl¤ ¥Í6¶¦VmPõä-=!(`ì! ÿ@Ñÿ8ø¿^¨Ë÷«ŒÄT°¶ ¸¨›ëOr‰ùúD+&<„Ù}Öþó² 0/€ñò‡ÿòÛm˜gggÁ©¼³ØT‚ÀéùçùA7Ë=Ôþ,Kxš0þõ=Á¶¶ŠËEBþ WÌj}sûó]€ÿm4€‰âF<¾áxhÓæÚxú_9Qî) +À:@ÕR ¬Šà‘ˆö°ýµYéÜÁ{s¹‰—Ýì3äó*µR@T„Ê^>¸ JÐì³íaÌ‚dµ@PfX ’€'4‡í@yÕŒPwXÏ?7þ9×Sýø÷¸ä¿w€ÐOç87ÿ7öš &æ({b®8–rp>. |ñ¿?ðɺ!4@žœ‚ýmøYéçŒqË@²OÛ¾< €ó€77…íc ^è±Âv€8b╸#ÈBôxXÉV§üñÔÔµç¹ðòEö¸š#ü·± àÎÇÇкҚôß•Æ;à ]ü9=ªIpð¿ØÃaA½‹œÈkÿ1 °èN³ýÏÆÒ=Ðø4îÀW¡¶žÁŸ4ÿ+6Uéc¸À¦•ÿI}¯Í¿èçÕúòæ`›mqqÑÍy„UV½?ÕËðÁ|3qÞdˆV"Ìó’`‚ÿ]ÛÛ¿ÚÞžødYŸÞuÞŸ´é‡þÇw™üfö„ý¯ÂcÿA7ã4-3&*þn ¹1pãîÀ@ýêþÉš£…šŽ}{}…þV—§ï软\Žþý£XP°ÂH¯0©¦Ô%€áˆ¹Á×`z2ªa  –ƒAëSˆ ×šÞ«Eh0“‰Pk±ôhhòà°Î¬Ó=ç|C§«ƒ­™¿Ô÷a£+úut¶X,áÎép¸θ"l8±Ì茈ÑÌ8O§ã ûèÄ믟Ø÷æöÎòV{4 ¡`+Zþ¶$‹ýîŽ ¿¹vܶù( `ƒ~1vàRÛ¸Ò‰è®`Ù(¾€mÇÖ“T¸ 0îåêMšÿ2Hè艹´ +ö‹ @Þø3‹þ^Ízg•ûoBpn™ +¤â´Bì€#ã/Z›â_ësl}ë7àT§OÄ%¸wý³ËÿâÖÖúã¾Èà +8Á¯æ0wÄ*´Š ©ŠàrðÕº²¢IŒÌð×(x=¸! $gõ60'!A¼?€®.yÄ–b;@¡zú?¨Ùõø¤²©þÏrü°Äÿ–Ê JYp;y¤ _4çé›óÈ` }$+nB®þƒ ¹`n”á¿UÊý6Á}®û9Á…î¿Ìü³*¦D‡ôÊ=´ÿ5àwùëcò]\Ök@áÿ½6ùèñ¢Ò4r´µ.€ľÔ&ÀzQ@&³1 §Û¥ èßʹeØÀ¬&zqêÚ‡ÿ×.^#üù•+Wþ»qjT€°â?]vêeï*þ®F7«]]p +лL X P9A˜ÿïq/"؆ Aè¤Q¡c`Qm¶ÉF`öF5,ÇøªL:}“ðÚÄbB¿šÔ:ý•A?›-ª× ÑÇ9GÐVN $$·ÍÏ'ËÁr‹²|X;æYˆjÕ¿Ú¤µv-7/oïZÞvP¥3±k=¹h»'àÐw—L<}âúu˹±ëuÆ_GtÑZb7ˆX#*°¶:Zã騻·½#ØßÚ:—ÝéX=Š k¶à êoLvÔ§"¦vIgNEÌfÓÁà~¨æxkΓH%|‰„ §÷L µ<È^ÁÚDMŽ€úA•ÿκ:çÓ9A"öaè¶ ðs+ÀBèOG'zØL§È´®Î¨Óñ¶" N£ÚtúØG0žxýÍ}g8ÙÖSR=IÒì¶ +þ]¨‚¿ºË8*J@ìá"À#á?+u^N–=€Ž²ÀÅW•3ð‰v¤ 0ŽÍ=ìÂJ®l`¯7(Î?™¸-ãÞæg³jøv¶Á€“K’Äïäò¹! îÔÃíkük~–­K+€ÊôøÄD¦øÙø¿Eð¿ý¸ `s‹ûñ妦ìx“ã!¦µPLa?‡àì7YU Um»µ®H`¾”ÿ8ˆWŸq¿€‡´üëQý€;–<¼9Źì& *~fúÓŒ~…rà Þ²t^É¢øÏ‚€ ¬deºÕ“ÕÆ_Ìß‘o€—Íâü[YæTæ7Ç•ÿ=:€úèÇUÿ+ÞVãÙ(SqeÿkÍýްîF´) +ÀõjüÏåè/ý_ŽçîÅ0 ðå€M-Pœ_{2ªü‡ÿW>ô·rGô/›­º‡+WÎÂðáó×®]|ùâYd7B`ügxïB—ŸI·ÿݽéCn|úþ‡õ¢ ÐEâ‘AHþrøA øõTÒ£™/óú¢ÉGmœh3è“Ú¢sþ$™ëO‡p'm~=ñ[¥P PõYt‡Øõƒ íŽ`˜—x¡2aXL2`÷_ä+'¢6šHà]6,Ÿ_&²O€J©í]ï|ìþÓÿæ»Jšž>87öÏçÂç:‡#‘ȯM—nܨ¸q„ÀÝ[kk»ûkíæ½Ï&ÚÚ¬-“÷u®ÆŽ®"=¤d åè%¦>º”òu¤|ævSĤ6ÃæŸJ„j‚Çs¹áªþ oF±¤˜jS“5Ç‹ØXß@_‚l_>œu»1¢ uÔ)åßÒY× &@Õçt¸“WX¨ðG"€™¸@ÄÐEtFûŒsÚ9c<=EÐÅN`àMnx U‹ 0×ÔTaÒÈÄ” Æ.€‡¨éûóÇ2êTÜA`€,:)r Xö8T.@eB5€Íâm\½ºåj"-ïxõ k€xPp\^ö%·•°é¿ÙY•ŒOGPÞA.þa˜Ís"0"‰tË, ï øú dØmlîa¥>NT`ý³;ú¿)®o=¶°UÜv82ñø¸÷°uüA;šÂþtÞVØÿT §Ò‚+|9Î$ÀÊ)@@ßâÏ@O©P…Ĭÿßáâ_(×û!e,/úɲ„ e ª!½ Æ² p®  ÌrÉ_ ÿ¥ Œ8©¬ °…oIœ$Tw +럖ø‡Î?à_…ýßÃl?SNþÙ “_Þ‚¥Œxš!hÁàwXîá½Ã° ˆÙO{q»Ç&…\?<ΕÏ_Zª .´;ùr%€MÞ RäéãŒlleùŸ+ xX°Þå­²N]!ôþùkx…êÿ)À:°ÿ_TwíQç§Ý‡ð苪ög> YÁ0( ìfÏïÆ:?Çêå™Ë›Ÿ×'£Ucú€sê›RÅ7Ùºüÿ·Û/­’OÞT>ɤ£·Wbï¢$ ªÆ€Zˆ&€‡XÓ!ÃÿüPT›ˆjÃÚL .7ÿjy‚¨>ý¦Q}mO,Ò«t3z]ÍßI°õ£ëc8~z.1Gœ¯;M—n üâÀÀÚ©ÕÄ^s{ªo¡ßUè¨m'Xíß´ ãÞ`0” %<“—R¦v„ +ù†Mº”Ïdn ¼Oõ…BGsmÁD"…µÀ&_C +)µŒþ„ÿïO†‚Žþ£ 5õÌ]ĬŽÐ?gUóFg¶Â}cgg]˜Çà +DC`Ú8®³[êtèØ¡è0CåÿŒsæ4&ˆ|8ýËŸ¼NøÿZM%MhR«â•ìÍLÙXÝò=àø—Ú?³Aïá­º àxT›ÐÜTɃ±¢¶øÏQΈiù[Ž'ŒÿÒxC{²êý0ÕÞ¬¯ù„ÖôÒc•=€*˜waé/ +Ôÿ%¾Ìr¤ Jä5Rò‹Ð kAÉãàøxÓæ×þDÛ,¢P,~5 3Q,~Ú¬ÿÔ|èÇè«~“á;&"gmjºÿãVë=+,Þ9)ô`lÒ€\ÙþgÕ4À*JkP€BÖ3R€I³à-cÿ‚&Ë‹$ÒxAˆÕ€¥¿„Û,åþÄ]•á¿ ~–‘?ÈgàÿJve|¥,ˆlàU>Dv + (eAN²|Çl€óoAÐ_šÿ(øeÛþ÷6peCZýE†|¾Tøï}ê=ñ/¡Pu€{бã6úAø¼ÉÐRáhë—h`[I‘GŠª•èÊlpÿŸíò¿ÄÀ÷€‚Ö\~±Õ +ÀÕ©kÿþùç?üð§ôþwuª‡ºÄìÿ±&\ ì§ÏÔwA à&ùfäòP@ZÚÒp÷ôúõj‡ÝÆé¾0²¼¯Rü ‡mU@úýZàoÒ0ß|>šÖÛˆOÈhàÿ!ž@mþŸQÝOøoÐ÷.¦éš{qQÛ +´¸ˆ¾}ܽ¨Y ñÖÕ2úƒ*ù£Ú¡9 ïíj^^^>?çà„ åî2l_]§ŸOÿŸ_úäWÍßA0qø'XÆÎ…ÿC¸ó\Ørúu]àºÅ40pcà¿82päݧFëÍ{ÛSõ£m.Ob鵨Î@Û@Í*ö„FV¡Bý\}¢v.u££ÝiÖ™ÌúȠyÐwÐ÷~ +o …Lï×¾Oå?Ñ€A“‚_m-F਩7 6`·1b6ëtÃc82lvNªó;ÿ‹é¿0¶€X¦àÓ–¯ 6ZŒv,2uÎ@D7C7Ÿ–9@"Ç>8v1@ožá!öŸÉ 1 ÚÐZ∕÷*—•/FõA|“‡«ŸG2 çÈt•Ñ>æ(#¿V iÓ[Oœı€q»¬éòu4üñ‹[×r€ÇÑþ¿]‚õÏ«Ex˜xf½<@˜gI H@8x%€jÐ_adÜú WË¡LT}QùOhM§‡"üV&>ÁzyÌŸz›¾&_ÆéAв2ì‹úo•c¥I4_«UI\ÿ+  P¶p2`ÉsßQ’]€é HZ€‡­w +e Àƒ>Ì~åi„ÿ­ûWÄâGØÍP¿RZ ®Ð30 ˜¹= šø6wäûHá!óâJpa%'ÞÿÜ= þÛø¹¬¡ö¿‡ê?V1ÿ«l¥8$yîÿß“Áø¯öq’¢W«B0Ç Q¿´ç!=§·6‹¿%PÔº2(êWÿrU>䎯ûâË€6ŠàP¥ü×4·VÚsàçèÐéPAþàý¡ ‡Ø èn”Ä·[Û”fÇjò¿ß‚®^³Í_^Ì£6þFwîìåª>âW–?¿ûæùyC³!í·©QBÕâçÀrföúrÑÎD‚HÀ"\*û§9 Ná_¤;X„-Pï·•qÞÐÜ !@Âyù ¦ð1€ (ôÜÝÈÐßoûÇÕu8ÅÐÕ­åuCô;Gšž>a¹îœF»ñ¿Ôb +``íîÀ­»k£'O.™Ì>_èhk'šL’lòÕòÚ€£±þ£"}F$ùFÌ™PÝ.“€F{“ê}®ÿé²³ÓÒI<`ºÎh霞FW j@ nè?l—p`ã¯ÎÓDNa +púØëPZÎ&0Ëb¢´j%`pfGp¹ó_% ÀW†wX0ÐÈ@ôà3:Éë;:@~ñÈ™d &ß¡jUàæö“ö@ˆ[ÇG²Þ¬t,@ÖÏfÅ´/Þ?âY.ÿé ìŸ/‰÷Â(kÿòÌ <,ÿ{x!pžƒ€eÃ`÷ÒéþŠ_ÿ3^·ø{ØØ³µ¾½ù@+ãüËñ— UØz<°½Yœˆ755½ô€·?´~5øW}®ÿñ¶"Œ+¬d% €czP}—Ð@ ŸŸÓ¬›ŒôªÑ_ÖÌ#ÿ’Gšÿ#@ð‚$ €ð„A6È߈€Øÿ²·Eþ_$°r$×$&Hxeq  +¼=%·²’+Gþ¶õsõÖ¿‹Ûý÷þµËXÙú_NÄ®Lã1Òo…, í“¯˜tøK¹/›Ðc|°J1±Á¯GZ÷Å?èàxÞÁÙq\»øòËhDI¨¬\€ ‘Z€€ûXög€>}]]½‡ºT»€‰ЕVúz±§—w +¢+Ћùþh³Aæ¢jño¹Äö‹F`K^Æ€ßüåhó^ÍJõ¯yúqk}›e|ðmšš·q+îv(ª'ÀŽê£óz=Q€ù¤ÐÀü|2ªÍ¨ļ'ÈÀ +€Lè%uÃñ‰ã¥èF1Ù»½]7úÎüúw‹|ò£ŽYêÎ{#<>g9m7F†0€#wï°°{÷d{{*´@ðÝìp¸öÔ,Õ'B}!ïx2H';j} —"‘†ˆiÐ4l& ?è3™úTpÍYëM©ƒ¾÷™4˜j¸ @” Q_Sl[8Z25˜íDÿ#f]ØhqŽÑÑLü!š?‚€˜-Ó–N6X,–:äuvã0qçéðŒ‘“€>øàƒÀ±ÓÇþðô‰oîû—nä5@®)×$I€U@VáÓµ(€ÌCGÿ=ÐŒÂ!À¡<€E‰7åàMt`À/*‚_7Ÿ|àj“°üS8 Dgô÷ñK ŽÓ9ÈûÿàýQ6;K´€>t›§<›Gä?ç@?S€LôååšTD°~#ÖâÕ¯ÂÛÚß*ÀN + ý\œáEþ­­Ç£[ÅxüÁ࣠6ö§á¿¦ýkzÁ1”M€!}uìòªJ^;ÄnÉîM¯&xªÜ¢ ØBèQ͹?DÀæ¬ 5x¯5ðU?Lê ÁÑþ¶×¾Ä$DKn¯ÓCo‹U(¼‚dĨúÿMüÿÔÇŸ\ü{Ì\»v9ÀSî +hT €‘]ÙÁР¢ÿû¢‚òí¹+ rØ â{Ýc@;X4èéêñ'õJ-XìÅ‚=§KÔÆÔF€d9 y0žvßJ¦UÝo³¥ÅxSYÙÀfAN´% ˜ÝkFÌ`’îE=ú‹Üþ÷Ã_h0B}íßò÷g@µ†vÁÈøOoT£M_¦VÔñÉ剨þùåù¡ïÈ~ó˜%&üûçsçÆ®Ï\·ÿ—H-Ò€q÷î­»«'V×Ö¾T}0— …NV€ÑþXÿÀþýK¡P*Õj-xs}©#zCƒ¯]g²c·ï ™*ýWþYªNÀBâýƒµ&ßS>¢DLfl‚t÷DŽÖBÄ0P‡)³Qçì´×„[ŒN‹3l „ ãèý%Ðß9Í+‚xJ€F"F&3N1à4Zìö€Hœ>pàõûž>Ãø/ë€e + ,hõ¿ Œ‘ýþ9¡.Uö Þoð[Eø¬úÿju2<6W1€Œ2>;bÅò*þþâ PÛež¬àŠ7Yé•Ü˶r–øÕÜ«28 È*;^Ξå鯌JPŸÇB ¶…yyøcµ|ôJÁo€WNªûÅá?~³Gp™ÀŸÎ® néÿ†¾âq[>:PÙ[5ܯÀ>Së +Ç.ò[é÷ªy@Œ½bÁGó_†ñ½ÉSâ覼š¼Ã†º‰åyŒë4UÀËR€·0‚ž²¨øÙlùÝy $ ”…ÿo¥„Ôþ¥¿›Õð_úYQ0’õ`sÝÈlòc®-ןSVþyÅÏòý6ûc2ø'öM؈Å1ØÆa€_Ã#'´T³0Ú à˵¡Ù (.€ û‘díq“êÿ&ÕA +Àµk/¿¬Úú‡. ª§óÖØî¯$)û/à“ºØÃ¶AtÜÜ.@ ÙÀ’Ôõ1ˆA#\€ðv¥mnBi·?í÷ë£C6±ëE…Tvõb°^Í +êo´1èNëéöËtKÒ —/¹©q¿ÍŸæ­ÅÐD 9`ž*ÿ!¨†f›?IßÌïO¢ ç-„œÀ]€d¹îWø/$€oŸb `B1t6ŠŽeV™Þ½ú«·—‰z8†v9Ö‡¾C`ùé½Ç,TÿDÆÎÀvî¸{wmmõäɵյ¥ŽTýQ¬ñ½ôþÉþšúúÄ\ª#ŸËÎu„托‡Í϶›ëL f:Ö¦:šOM0—8ˆ€”É×€ÀŸÉܾ×äó%jÚb Gk–Þ?èsšˆ5Ž·ëŒ‘€ÎîvÖ9uc˜Îa#öSÍß¶‡-aî„ëŒØ yÀXgë"˜ ´Gè_'¼l ì;ö˯¿¾ï vÝq[Zëäšd€rf\Uþ«6ÀΨ¿3iÿsË?£ì‚téÂmb üð¯j@ @¬Ml€.m/`e ….·O¾ÀlA(ÿ\3Âäφ}6þ[³YkVb½rÎŽÏj€YÔ÷0ëÁ¦Xÿ÷ˆУ z³##Ùàxüó„[ßÜÚÜÞÜrlm Øg`FdTïE¼v0 Wg¢ôg' +°ù˜#÷ßд–q«Òþ¹ë;¾Â7qéO¿qX/‚YQ²#ÙÂx¡Tðòü€ðOÅ÷þ³Í)ô÷J_žI@H:î” úe´/«è÷€÷ôÍKTûß^Áie%{›U• äŠ%€WYQŠè§_É-XU÷‰môôßÛˆíˆúq!óÂ¥¹ÿ;$ pC²€‰G´~õõ? GÛe‘àã2€-Ƕ0€"'« &M°~––ûÎEªÿ¯½Ì1À=SUíÿ Jà&€HJøgzàfrpˆÞ¿ ®±ðv!+¨W@ßæ BÈ î…UŽøIû£IÞ àÇ-©O£7•¿ï²^ Tq?I´ýõÑ›óQµ2P¯m öK&0ºiš(@zqÑ¿Èz€-Ù‹HBz?šÔðث×/J#¡ õÑrBû÷f4j˜wè]˜ý|¦ëÛ¬«.ooëƒímG×ú'»vÍÏgÀß¾pÌyý±±ðcL ÔMÃx—(ðôäÚÚÚîPGh4·à!PyÈ÷Ø?P³?”¨Oøæ|ã¯o®Ït #~æKÓ^*îÍæWŸjx*Õpð`ÂgzÿýPˆ^#R¦W}ŒüµPL &³Ï¼7•åŠGk)Sê9g¤!¢368uN³n޾0UöÎN{؈Á Õþ¢a ýSWgœ&6Pž¦Ï1Zt†íø*„FŒv;ü€Æë’pàÀ›oî;à +^4½2 ð.@zÚM( ¯H*„çÂC©ÿ.EÔàÀƧ+ÕÀºò0PıbÙý'WbÀWâ¼*K€9„&œ˜@ðþrI¶ª M +@þß8e ÷g…È ¸@w f@Î8ÜÝ-0„Y€²`9ÀÖoÎ3n} `{K‰EöðßÄDü¥&Bÿø2ð9>á¿Ö>mýnßÔcÍZ©¾î ãÊô…7Æ>©)úõœ½œÄ1€^&žÜ€eW §²,ˆ•®ýYð +n–—xÜŸåv®¨è*ü¹ýû6Z·¡H$ Œ0SÐ܉#Y…ÿôZ ®HêNKü½§9ÿÐî/rÑÏ×7Ê~×âÃê‘\2ˆà xÛï”ø;_â€bžÛ ÷"ld&â*ý¿I¹ÿ>ë¼|íåkgE˜šêj¬†93þ¿ÆµOÁ` D€CÜ „ïb°ç¬ wšýƒþ·¿W9! J¨—Š=;Xˇ W üTU®øß$Äæß¼‰Z_6ß”ù¿ªõ*)ÐÏ ‡m6¬æî€Þ¶¸({Œ0œèvû“~Û¢Ÿ·—;ÑÄr.:ï -Ã0±±¼±ÌÇy¢xU½úî²cc#º>ÿöºž>奡oŽà‰€âŸ¿èÂcoœë„`ì\§aã鿸5°¶º{ôÔÉU"«¡"¡Ð©*pêTÿèõõ‰”¹Ã“›ë˜koŸcÀdªkð™Í‘A3¡ÿ¬ML¦ÞO$Bk_Êl¦’ÿ©AÓÁZiø³DM0Ö_8J4™#ôu:s]D×n ˜pÞÁìDþ.§1ÈôÑi‹1Ày@,èØJ8£³z³Ûí8ðú¾7_8súè¬ì¶µ–×U¹ †72.Έe*õfp‰8ÀzÝFYÐxÀ§€õBÚÊ=UUF2ØYªâÅõ'¨=2âTuŒg #¬*@˜àì÷fKZ€6½ à½M$€{è÷Ó•Ã6xYÈsíŸ÷öä+³#Ø\(Œ7}ƒÌ7ë˜ôÛÜÚ,nmÉ_|"ƒp X6‹®å¦Û»šˆ,Ç_È@" O.nný.ÿúýÒ­A²°ª!K«ºbç’0PõÏ$€ ô W’½^%Ýg9´ ˜UÈ7¥òu5* #ùÞrÍNîU£~2\l—@6ܾ½R‚p»$£œ(ß»¼¥X9™®ŒSñ/£ÿØô‹Ð?MýWkþdéµ’4=àá忤º”À&€Ö¯‘'~Ù­8"™hO"pPk¼©ÕªÀøç|ùÙ·Ï^ãES,ìT.h6ÀÀC€}Duí*àÆaoc£»ç­@üž®^^ÐÕèïU)LléE[šˆ€ô’²ýoǾž$ÁýMîÅÓ)z™Þ•ÿ¦á2Çýý©&Ä/Õ£¾O§ù]•ûŸŒ6ÿ×·>Š"lئŸÇ¼aš=‹ ~ùöɲ£POˆÞäœ`Œ–Ù¨¿Z^n€`yÛáØˆ;^YJò­/Í'Àò|3`±ÕYƪûÏ×Ãa4œÜ¸»zòÔ©…Ý«  £¹\(QE^{­¿õO––þ©¹ŽKÞ¹¾¾T‡)å3µûÌ0ñ›Ì{}Tè›>Õ`j8èKÔ÷%êkj +Á„ÉwÐlªõ™žb ÀlöµÃ#H XSc:˜2Í fßpdãF3[tÆN‹*~Xÿa6„yÀBÕ .LŸb± Ø?€.BøoÌD°à@G´ÀbØíÇB° 0Ÿç @ h $—Vþã çŒýÚZ€² à’&ñF¦l¨\àí³,倲àj«²UÓ!¦M–G´þ˜Ë辨à-‰Àƒ+ÌÖI8ÿ¹À nÀë›eîp ÌÒñ§k‡±[X¤ˆ}s"Àбuõ›t¬c…ßÿßà—¿ß帔 ËM/-ÇãË/Å98p‹þ&¿ýþ(žl)è-HÓ\0Ÿ¯IÖ‚èÿôÁÈ/V&Þ ¨ôÐfDöf9  TæYwÄè©ü#=9 2¨ïU`¯]0üsû…ƒÿ²ùÈÞà6@‰Î\*;ÐÊí Ÿxeà +åàÀ?¥õ‹ÉÌ*Ÿ‹pǧ1lll`Q€Ú˜û:•¢/ÝâØÚÜ”××êæÿ¬¢ÿ>Õ9û2L¹§¤P%ü¼,’°MP“˜þïÑb5öÂØ(àï–!8ÿYAèüï‚@nN#·Ñ5$5}¿‚ÿQ¶Üä.”. ¸°ùÓ@vºÝË7¥ðGJ°þ¦-Ƭ  (6ˆýˆ#"¨§ÏÞÛÐ À(‚^ohŽ2OØ×¶ó;,xàÝù]Cøo–Ó®æ ÿeÞÒ¹þvqûrtzCïF£ßÐôôOKøŸ;ë0Z_wŽðô§„­‘À„ߺ»ºûÔ©“»×V×vŸíïïͪÄdœê?Õ?Y»¿>T«ž0½Ã3×Ò>gn¿Äc~„ëßð\0Õ@ ÿÞÁÁÁÁ?ëXªI$¡£…¾Ô«þŸjxÏ„šMfß³æŽDÁÕv4X“òùt:³I—4Gž£ÞiF²Ÿ½Înv¢ëo ãÄqp`,€  +@'†ÂèÿuvSçŒ8#‘ÈŒÎi7¾ÐìÀÓ„ÿûž=s†“½‚dÊPÈ(`¬Œäe`¬úÓ(€væÖÿÏnEøTháóŽ]@hS£€B˜ÙÑþ9@Ù¢Ö‹_… “T¢¯Dy¨6ã·Æf€ñÖË ‹ó\ûË)¼˜óoÖ#þ?Ø»UP<ã0¯xõ›wlB÷ÏL@€&]tÅ_jEú?‘ÌôÃá\Àßx²bX`\¶–yÆ`„Ú?×Öªá¿KÅùÆTÊµŠ»,*ßÿgÀYØpmü·}øÿHøú‚>7ÑEtÉ Vd”|nÿ_#ÿh4îTí¹ 5´µ?e +pˆ}€€ý0 ªÏCD0g² ÀÝÓØÕÓëîô÷ªU¯@èí…cÏݳ˜æÍ=i¿¾jßî'´âóTã—‰ܼœ¼L¥?—ø7oêoÆ«dà(¨øO²pž>Çϲo´1×Àu=6`f éO&ç!È8A•Ç@1ƒAö¿ÓüîЮ]Ë»–_Z^ÆV€]˼¸yy{yBj1Ã'o¿½+Ú<±=±‹£„¾í øçû,0Ž]7^'`C àºñ#ËäY[Û}êäêêîµÝ»wŸŠõçæ:ª À©S«µõ80Ðî Í…Ú;L‰KÏv¤ÚS‘ÚˆyШõ >õÿ<øjj?C5…D‡#  4ø|¦öŽgë=­®`M(‘J4êt¦ˆÉÜ`~ά³Ûf¢F} Û°ˆ÷ZÂa¬4ZXÀª`žÀ¡ÓEìF$àÄHöØíÇ@μÀ&@¯WŠØq<à° ^™¨ôâ¥Ø/'¸¸ðæ+ð¯²â½ÏèìØÀ€(mÒSUEÓ4µ ðÉðš‰75ñ, –{Äì?®øZÈ6@®üggyQ¡~VöÀgÉk¡äyî"ß=Ç‹†=ÝsÝ}¥ûØ @ öâ¸ëê7ñX—Ô¿8\˜Þ Weá­D¨üŸ ò8àæöo¿ðߥ3óå…‡ýˆÇ• å¡K”ýòË÷ª¿Âƒ6HY!ÈCx ¥’à}I1HŒƒ¬bÛ•ý?+9BYIüÙ^Øk ø–AE²,°ñ¶&` Ä@…qUÿWªÿ Š-^±ªpc ý%è7&vîjIàeyæçâ?®¸¶ è“«ßžƒðK,€.×££?d ŽGéuh€ÆÆŸí$ˆ¨â¾K¥³Õ¿±"ìÙÓuð¿b}.n“L`ÄžÀ.̤{d„°«7aº”æ~žë÷« ~[U¾|í2‘€Ë¬°ìϛҶt¯7º§{ebÐ;e&AÔBÏâ‚l¢÷™ +ÐMéhr>iH"ÇY@óˆÀL€¨š !ª)ï ½Ës»ví¹yhÒ‡¸@¼«ËÛ»Þy÷îå‰íó» ønßr°|ø'Ç=Ÿ³tÚ-€ ÜùƒÀc. hu÷k'wï^{fu÷É“±Xk¢þ”£Ò8uòÈZM}¢~2TŸ¸Ô1ç™kéèèð„Rsõµ“õp÷|Ï4°`Ò4Ø`znà~r`ÿR¢&Xùˆø`¬å]€í&Ÿ¯=€£ÁPâý»ù¹ˆ9bö5˜#öHjù0¶é Âá°Ñº4ÎÐçüñ†±?Yv]„ú'@ovgÀy ½½}_Ç™^„ÕöÞªá[\Dø îýc ð>÷µ €ÑŸߥÞ6˜Àðé€Xw 8”ý¿Ï.YC̣ꔉ©p ¼DŸ«Ÿ7í£†y„†æ%OHáJþÏÏÏ– ïxø&м è/Çy0zž/o//ÿÁìÚ51ñ_' Ì'¾ÕàGO,uoXÆ:-aÝ1{øÜ9Þ¯˜Á: »·VwŸ:¹{õ™ÝÏìÞ}êµX[G¢š¼¶ûîêjÍ${)Ï\ß3íK·N\Û½{ÿîý©ÉÚZS=¦ R‰Ó n°¶–xÁR(‘Õô™|ƒÿïáŒÔ_{‡¯/Tpõèèн¯3›‡Íf“q@:bvÅ‚n>úQõßYg´‡9ÿ§‘ÀèÀþ'€uÀýÚ:&vóNûÚŸÝ×" +çÚòÚ´–·rQÕ¼Òùךò•9WÅòÏnA~•´‘‘NÀæg WïSýÛÚ4`Å ¥f‹•46¿ÃÒ€¬ã¨) Á³pŒÓ¿Z@Y  b€¶ P€ë’' •>Ó 1Žgµ¤Ÿq°®üýÁ*zPV‰˜OÈI\!ð¥i¥•ÓúÚ´Ùÿrñ¯r~Ô£Z®Ý'¬ßOx  ÈÁAñ üváÿæ¶Ì€Tÿ üãüH÷ðÉ•³,jüù¡Ÿï0¸ï9à‚ÖÐÞ°@Ñ6ìi¼ ×ÔAµG˜ÊþFwš¾m€®.*Ü»}Œ±@ÐÌí§ÑPKþô;|o³ýf<öàË»LØÓ–ÖÛnF›×këÁv?¤^@àNÇ"Ëÿ(ó¹·€0AÎö#,>*A½‹šúD66”‰$`0ìzgžkÿwßy©€H¦3vqDpqy¿‰åèÛ†¡‰óÅóHŒê Ÿ|k ÀÖá§ X,cÆso„vË–ë×Ö„¯‡#—0¸¶pêÔîÝk«hœzí^b²LèÝSßf÷êÒRýädýÉö¹B_{ÇÜê3k»Ÿ!º°ûû»WWïRý?Pû‹ú©¡apøàäþ#õKK5õ5+…‚÷†ƒ&5hòùRÿ{(äj;êóu˜MF³ÙÒ€,@Sà9‹ÑlÇ’"ˆ €€éÿa‹±"€ÑŽ€I2ê~ q✞°ÛíνÎövÂÿ±”dª]S° Hçò2ü+ðÍHç¿j/ 6ð'"€äo¨Lî|а~µ +ÿË /i±6¥Ä´>€ÃUmŽÊ¨ö(ÑÔͯ¦ .€Üx3f¼ÐK²#Z¿·Ò`KÀ,¦±0{{6‹n{$ýŸÃ€s`V”€n6° ²€—é+߸Éݔϟ¨ÜF,ÀVqp´M—­·D,`™'áZ›‘° /êXß××2§ávIÁ½@{p\¼²x#ôæEç),×ëAnÔ¨…€¿DGß²ü/Z%D; ¹ â„]Ùrš0_ Š™Fyí£ÔÿhB¬° 0{û¶jh€)‚u%8Ž,£ÜJNôäðnÃ{¼¶ÏÕVñýkí~m½ÅÃŽð_1€Llc€ñ{ß63€:¢‡çÿ[›Æ™X­xW®|'¨†oT›€Ë +SAvAþFMÏ ìÙ³§kÏÏ÷t©†§ Ša@bƒµÁÞ¶`¯” W(@zG¼¹ /#¢Ø#»ƒ‘í£¿™Ò#èG@Œ@Â…mNä„mçƒû8—ÿA^u;«eeoK‹@Ô qN+\áÚŸÓ sØgØÊ +@+÷þy˯Kóý9v”ÿAÿõ‡4Ô ãÿ½¸ËõíÂÿ-ÎB!õ«RÿÇGýNzØðs>ƒ4þ +Ù/¸°g6¨Šø0À.@ý=Ì^€C~~As hݵ@Y‚¬ƒ@P0v r  w1íOk@Ëü©šÈ×–óaòÏO4À–ŽFçÏ’¯ §‡0ØpÓÆÛé.{ý,`a×è}Îø³Ùzý ù‹‹z–$:Øð€¤^qݯ ð2ažˆþÏð¿3ôîÔþÝùî¹X»yCÐWXÇßÞ Çúgr*ÿ3ËTóolpðFf ÌQlmjjŠs ‚6·Ö¿hÀ³Ïvôu´AáÐ%@ÿHVx—ºð"w‰Ëùë1 ûLÐç§âž}Hlæ{ ¿ØˆÄ7CȲ`qÁ‹³ŠÈV™ö³Üc°_±ò ¸ð·^áö>l€œùå( ñÛ+j&Å‚+Ã?”ÿ/1ÎAYËq Þ¿'«~*;þʰ^|àJþ×wreÐ’¾uÀ¦„mH¦ÿÆÇ_Ì6=5žâÀ©Ÿ h¬2@ ÓÏ©´¿ ¹«'Áè3öì¹poÚÑ%‚Õ Ñ}¸lü˜U„žÞ0xöméJ <—§üxó7‘@ÿü+üþzò[ô¦þ¦Ø@To >Þ@€5 E©Â74Ï7ÏKœ¯ÜiR øy@€xô¦‘ˆf€[oë%b°¸èvÛ8@é.£Ñwæÿ€ÞÞy‡=`óÆQ€ùe´ˆëo²Ñü®^ÿNT?ÿ+Bÿ·š›‡¢†o%øÛ–}ÇýŸ°Ö;œ&þ«ÎÀ±H¤¶öÆ]üÉÝRÿŸÉ6YjØ + §kˆù¿ÜýWTV Ë­.ÿ¯?tP–àô-ÃŒHª×ÿ‚ÿ ×s/Pp4N]a€lð3¸s`ú3ü7ò €Ç÷þùM¬ŠPùAîFÞäföÀY<+ÈÉý½~=#3ÏóÙv ã]Ö(@Ôp3ÊÞ<ýM?ò~nú{lìÔç 1ù%Áæaï7° ˆèW÷z±&…,¦Ó½œ>€B?ÑÅ^ÝHß{Š•Ðfâ|ôí·!¼mx×5¼Ml£™€ß0_9††8'˜XÀö[ËCoc±a´y¢ùü[ÍXC`øÖ€OŠ?jùÉ1Vª{Ýp¶ï=`¼N °œŽüzò•øÀ´N‚¼vòäkÖÿGûþ¤~2„éÄ, …[ssög‡Ùì›[Ú}*ÎÏì¾»¶¿~ÿÝ#µ“&ÝàÜH¼¢?—h75`𽆃`©DÂSjÍ…žÔ^*üu¦ˆÓät:#ˆQ7£s"âë€Â–º@'ä~ì®3†;év¢D†%PÿØ,ìÔéÀ7Ú}íLú I£½* +€µUö³@§ IRðŸÑF¡T¶þf*Ãÿ|âìD¨AŸ®”­ð)ò@¬­2 èr• @Õ&NøªÀv†%ü¢ +„'¡Mž–0̤‰öO¸ÀpþÁüÇ™@\ü«, YŽ<ì™ëÎñT€$£gý€u^ô§‚|ô²Kü§ýZ·‹™eúãÆãMMËZPMi¢ôáÁèlÁÀ`û³ûž}–x)‘ÌHæ½jöKüÒ=‰`$¦…˜%,XÆv¨2b„ÐË €å Nm Aôƒ¾â函TúAqêYùÇÌaPK! JÒ3 dYÚ— áÌhÀ™Wdü£þÇêâ\þé9u/Nå?ÓÚ¢ËXuÉ¿Éh¿ùô¯?Ì ð_äÈú–Y7eÛ¸KÍÿKÜöøcÞÍTÏ•©ïM½vejêÿÄ0 Êº )8i£\ý7–Cƒ¾G€=Â.”IbAzd*!ŸE^ ØõqOOÏÇîžìïSG•°*ø2û Ôñ(Íý„Ñ—“6oÐÍëmiôôù›D æ Û©xWÝÞõÇw ­ßfC/@LþEú2ÿ"±ð[oÚ߳Ȧ$ +ãK/'/ì¿CTãí(Ôÿy  +`àÓPó¯–ÏÓÓº¸=± ‚¾ïÐù_5ŸÿÕ>û[§¼4{øÍëDo0FLûÚuËõÐ{&Ó¥ýGVOj€SDØ;Õ¶¿ar²¾¾°ð lTÖ/$:‚sûžm79[Ú}‘ß§¯Zc€¸Àîµ»ß?²?uð©Ú5 ÖN\MédÐT[ `¢¯Ï²¶B} _»À •ÿÎH{DgþuÄ  ó4ý¤Øüƒ@Fcgg Ó„þôÞ0– c0rþô6Hïš#s¤ÝÔŽ€z\vtôµ´ÌAP^^íÇú +Æ+ïxïÀQá™-yJjoRÁÃÒ?GøF$ «àžÑ¾ÄÖ e*¤Ç}p„NŠð̾U ¢ã ¬_áôa‰zYXW‹}Ðô`å&À¸àÿ +$Nýcý_Ê¥©q€wþJù¿³å¿Éh¿ùï_5¨²9(OoÀ!Û'aÿ?›1÷~z¾75uåïŸÿÞ÷®|'ÅÞDWåý©ï¥þï‚F@éÿ8ýñ_øÿ¹{ÿ˜¶ï¬MTkâÊDf Âcl \;.Ä `Ç‚ÄÅtœõÔœ Ã;J£×¾¢-êöÄ?6"£WÓÒ]¥“ªÑ»šŠX P!5j˜Mf3]]ÍDºUµZ©Œ. \]©N“˜±f.0a¢Wºç9çóýÚ$i§mÒüúbŒÍc ø<ç9ÏyžÆfÖ 6–Ï1°{GãR!Ý0칎e¨ö¸kÎ.² Ê“••¦¡€>ÿ÷¤R& >JqBšïTÄñðjÁ‘ó‰àˆI4|fÂàòeÀ†Ôe”‚—}#}—#)‡)B—ñµ•#ì@Tyçð#¨Ô –D‡Àß¿°òëÿ¶r²Ònÿ¨ÏÞ÷¯_È€8ùQ寳 +‰ö¦ÀiªýŸ1 ÐÙµ­Vƒw~i1òà;U2<[0øÎÏ´Ç85•¬í¸´žÃ–ÀÖ/ÝZí꺵ìšo‹Â 0‡îŸ9€ªê}Õª7;b–è8êÝìØ* .i´Ð #€Ãµ-‡ZŽÖ; +¾ÞpÜi}+ê$à@´_ÔÙë ÚÿfÆì°ØøçMº0!ÄpÌl¨1DÎ1v +ˆÊ"€3Šyƒ¥m#€c‹‡a‡‚g6Ž[™®×Ò1|sin|y6äÓâõН/(Î2þ3Ú;àð5õŸ1è* R?¥ÐGò$'³€|™njëÑDé`‚7‘ÓÝ0©Õøèn©,lE›æKÞélvrR´ÿìÿ‡tÿÙp@‚=€ñÔKO+N¼ òŸ L0éM×o=Ú'ÜÝ‚ÀmxÿßO°± «ŸÌNCq…J?|òE´Üñ¸Ž®=+¤)íÁö®ýû$xÀ«2˜±¾'Âþ,"g¼¼KÁ&V ÝH‚Gƒ gáÏóüÕþ«Éo Ü+FN¯Nªê߬Ôþ´ìþ1õ¿†éýš2!b‡¿zVÈÌ_„jï¡/YKkÕß/ý¿ €;ø—âÙ¿ú3n¼§ü ØÚ-ýß(“”!Þd'€Áâµg ˆÐÄ„+.ÿsŒÆ¾¯{æ½_,½÷ÁÏ>ùÙ{¼÷Û3ÍÚ`#—xéðe ™=†J€tÿü C¼10Û8T> +à•OHS …¨ä7„QüéÜ€Oˆ©¿–þÇÊÅ\„`¯ò䯩âòjóÿ>ö®¬´ø 4¥F"#/ø8uÈÞçãs:ìH ´sì¦Tûí¦Ôe± ö¥"¾Y4ø<l +Àüত\acSŸ2ú¨²t°]_X¡sì˜è»ÚM'_øý¯·WN.Ÿ¼ÐwóYÛÃ{ÏÃð3þ^³:ƒ–«§3Ðû/ÿZcŽZŒ1fÎj"€ª³ ïüü燌Tÿ§¦j§:ÐÒç.­_Ê]™JÎ´ÕÆj“A‹1J/W7©êoV«c½næ:Œ£¢¨†Ãà•®«m–ºÛ¨þ·AX{xºûpW²+Ùf±ž ºïDå§òÿWTàìó§²!ùCB€yìÈ›æ#7kØ00° ŸŸ X-жÑñ4“¯ŠàiÍ=íæEÀCPÔíuk_ ‰ ¥÷çJ¯µÿù"ç«•À¢l +þc@žÛxÎ ;‡â‡4  ¶ ÈR-Ÿ½Õ°±ñÙ¨G8Õ@ +Э i¼Ê#€,²€°8)~lÐ@kÒ&z ´&°À®@¢¤ON?Ö0¸øP¿u?@&î®(¬Äó; þBÁ]„³_©‡~1T©vò;Ïl²¶ÿ¹½i×9HºŽ¶,Â0±E7ô÷Š…r•ðˆBW1#ù;’Ü2ycA|0ÆGb£²óíf€ºi Î +¼ªõÿjÀvƒ‰á8¨ù'.@£¯–>0™.¤u(‚Ôÿп’_)ÿ‡â²Uƒ}þîöcWýWÿ Ú»ôú_ΰk€¸µgmpmKÙŒÇUý¯÷¦¿ÛT,üÁ™ç?xéç_úa€p3v¡Jõ½qhNí 5—ôk,A㦜Ýå¤íb…€3B‘0€°‡ê?fñ^Tc9•lqv‘uúÔ»SÃýÂM;"F¨½fc`8B×1Qá³Ù¿¤¥ìØÄe:.GLà8Pý¿¬"„}\ì#—í##tK \6ù@4९²OË {U÷+aü[É~„EÀ 'Oþþÿ>I¸$B7UùÑʯÿÛöï/|TyñÂígd{Oµhþ{mÿ‹Ñ¦ ÅB}·­÷ÿür>»‚ú¯#0«ÞÙüéTŒÊÿTGl3·ŽÄ :M-ÖÍׯŒIk0I@⯷¤ôo2°oß&ürûx¥ Ýfm¹ɶd’@òØÂôѶE‚Ö ÁjuZ-Ñ_Z ˆ¾e¦ößÀq€°4Ûz¹ÿ7k›ÿ(þ¶±7ÇÀ˜yñß`° Tþëp¹Îê´X-Áùù.ªÿ‹b‡ÎÏ’õŠ +À¥1™/«¼¨éý'8%h‚ë>]weèMFà@1ãRzÁ¯ê:¥ö³›ï–¶ €ëÐ!¹ ¯¹‹ gù†­G· Í  +W€ÉfpÌâM+¾?<˜Ìª1 Õ0©~‘ª•4þ|Ìàù_ÂÿºÔ‚…€žD"ëí¡¦ö'ùÇü¼CàöÆýhLyïùæ¹9ïY‘öi3þÆÙYÛ/· +Âç0hœ›lhnÔ§³ÍúJ Øzâ_ªäºÅÊÊpåß>ÂØ‚zÿH(‚îBÃËG.C H¸ã²¸VVB]JQÁ÷„|©Ë2ŠU"ÿ>5u0õ}t’K¾D—] À&A•'ÿÂIS +w§ò…Š_¯d~½lê3]yf€;qêíSNΰz10|µ$ƒÑ¨ã?0¼e1Ær—ξ£ê?;PÕlx§j³í?À•ÜzÕ%Œõs·:bÖùä•dÒR×e1Z,ÆêûY(]?FU2à¼TµosÁXgÅ@!ÿœL;æ?œž ð÷ÂÞSíoŸ¶õ"U÷3ǵ¨çž7Σ¶Ï¨Év|j\í¸¤í2ðÎÏ««ßih8»¯z ÖÁÇú¥õõ³¹õõ[¹©äü*й1j¹ZgY\÷Ÿÿ¿™€}ût{gñziûFЩ¶»ûµÿmAC°Ë:oqZƒk0èt:>38Ì̘ß4Û6äÿRé·Ì5c’4 @À`s4Ø¢23œˆÖÕE­QÞH1àúß² ÔMÂÔ+ K€8Wñâ æó'ʾÝ@ÉÊ"PãÙ]¦˜áÏÉ|… €6þ@¦žX!€_@€h®Àƒ%áô'>J€­ê%‘fA,gY +èXs¬A0`k€¼ÿŸe' ðýè[   K± 8“hi%ÐÒŠt€±®Ë<‰€2Üw¼HE¨H=?tÿÅŠåìrE¶! °Áõ£ Akh€`[;Dª]­‡{°…¿I°Ž2‘ía^%Ûòg^XðÞ€ ²þOÚ ÞI%÷W ›^9gŸë<}uð -$½ê‘æÃUŸ#‰×$”½za“7”Kà$lÒú[¯—¨Ø¹î¢ÆŸvQÊvÙ¢ÿ–>æß(køïó®Ý#eš=Àg¬þooå™DDýw£ù¯ÿîK1;Ï_úߟì=ÿÉŸÞÛûÒ^R½¿ªðýJXšïS•/í4–ô‚\þç´òc!VÈ.]4€aOˆª1¼0ÊgO 'ù™ú”¯MzP/×ðð>Þßó±yŸo„ð›þFBhöÙhà2l/CôÏÙƒ¦.§À4à‹¡ÿ÷±C°Zû“}BIV!Á¥„"ÊÊ>ñ$é{¢¾’[‘T Pù¯?òyšÃö¾*àüû%;؉gL$ö¶Ÿît:bÀµX¬ÌÊÛ§Ž 1£î^·¬:ûÎ`UõÙ†w¨œŸ]Gý¯®ÚìèÈ]¹råÒ¥õ\ÇfÇ­ÕEËÕU‹eϺ‘ºº©·ýÕê5§ ªùÏV­ãã«øŽm@€draáh0øF°Í`í²¶A¸DëµZNýœ½fQý1˜m55èþmœ Pó&Ò 8h&pÐl ê?Æ$À‰º¬lKÂàØâa8p‹ˆËÅ H\€Ô €;û’ôOÙûÐK…_Tÿœ¸òñ¯ãÿ…þ׃€©‰ÂOÏœ®»ÞÔv±@›0O,ôëU2@ö—IOÊ€i€0À°Z®üLÿ÷$x#€T=G9¸^= ÞȺŸÄgæí퉌»0œMœHd ôüœ¥ª"NÕ +k€+ñL&¿³±ÍK…|G€• .@@pÿÿÆ  kñèâÌÑE†bž$FT²O½Jvûki™¼Á nèݯ¬zTéWU^MêE +",-‚X!”)+$Š¿Ž1€L¼ì&µ­±ý{ͯ±ÿðþÕ<5$P{p·ç_y¯W½ßØEì^$ŠgLØ€@1ïÿôÜÚÏ>üàüKþé·KϽ;77Ç9€»Š{?Ÿ”ÊŸÛ{¬ –#(`n¶l@,„<,ÿó|ŽX÷¥<×Sö”ÉçñøØ¸ÏdòøR}#)M X~Hc®>àÓ5ƒ•¾ˆï&ó÷öÊËC˜&ð¤!fØfÛ~TþÅzˆcRì G@ÎfÆŸá…]v´+c`“T{“©”RXزX˜Ê>öâ1@Èô›>$ ¯¬œüÇGßû™ÄÀÛ½6|ˆR×=oì¢Þé07EÛk¯ü¨ªªD¼3x¶ºúY ¼Býÿ:ñKëµëë¹õ[t–4F§ŒÉdôÄ”ÅHàuþûD +°Y"`@·te +{€m–ù¶¶ÿ+yx!IV³u>úKjÿ?µ`|ý”î§NP`À&¹ÈþaCLj° `£â?Æs€(#€=ªþu„k4@O­,@£¤Ë4 €2Å’ €›~z+‚蟘Pr¿ µûÏÝ¿•^¾b TÿÙ‚^ÉRk€þ² À ¶ Wf€²5ý¨G èšÔrb_Õ²èQZnpSÉ.Àh0³Jû‡ö? »ºì 5¬ mÀ-,×}Á=­ЛÖW9?Ðý$VqÚ¡ÇÞUÈÒPp‹®ý ^7Fÿ y¬ä·5‹§ïz8›¬@ü…žëÂ2ÀÑÃGAÌ,rjòQú–­=$x™bfæÏ,`žˆ7Ђ¶ R|ù·ÅŽM^ÑñýDF÷i.ûLø VW¸úˆ ^,`ñ—^ƒð¯ ÒŸÿ£Á«¨üóæÿ!hÿ]ñC~æÿãjÀ2ÖÁRÿ¯¶îù ¸kPšˆ ýCSÆÅʬˆýа7ð™ìÍÍã㦠'+V*V– à=õà}$ýÁáì ü‹­¦×f³9l¶ÓQj¹“«Iã*õ$Îdm¬výìº^ÿ«Þùù;\½ùõ?æj¯¬W½³^ÛÑ1•L^ÊUmÖvä®Ü21c]Ûžäá={ŒÇr¹þõM:XX¥£xáærSmTü Ì'“ÇŽµìwv£Á$÷Á|Šößi0üÊVã°Ú° ÛGùˆƒýkŽ@`3jèÈ6Ø¢'ÆNÈ:À‰(×ÿ¶äþyzj­=|ø0ê¿— Uh‰0˜pß‚æ¾ÔûOpå/uøJˆÍ?æý 0ðI€¾¶þohª'ÙÔ“‰ +Py ºJk€üÙ[ ×-°­fõÝšS\7æË^!—E(Óñ©C hTì¬sþO  ‡³ÿfTñÇõžD+bZ{f޾ØÓã­ß~òž˜·ó_d2+îe4ýÅbÑ]xúÿÂq„ g õqرðƒ@Ä_Ð G×~Œ @`õèbêÿ =R‰ÖV¨(zfÌ´xgþÌÁtvCþ+àîIþ a0©ùõ*@cÒªðKÅO—€êÿ×XÀ?°Ë*Èõ¾V¬‚Z”€ôÿœüC¯q¼ËUŽfÃÝÀVî¢ÏP ÜG8ÈÁølÕÿkþOpú~ þôÞÜ»¯øÀÿ³¹3gμ;WFúó"ÃÆ¬„ ±TþgåSKR€!"¨Cm@ˆÄ âamþõ”φèúoåõI4ÀÇö]À—0éõ_‚„¡äcààé ¥°€  €ôO)f Åt€ºˆ@8E.›ì˜Vð.Àµ‘[AÙè“„iw~ÑM î8ùë +“gÈþÍÈÒJÅrÅÊ’/âS¶½{Ûß>}ÚátbÀVcûךÀ¿:ÌA‹ÑH ¹JH «¶öÖfŽûÿj¬Ä5æ]¹réìÙ³¹ÚŽUãÔ"LþoårëÆ©èæúcíÕ^½:º¾Î€ªM†ØØ'"€êê³UÕ¹ÝÖzm²mÞäPÀc]É.ª×gP¬{„pD¡3Œj h°Ñ i@¼h†(€ €­ QÇÁ1È&à ž%XæÛ’ÇXpxASšÖ%jw• Ô´_vü\âö—/fdÐ/gXrbý?d¥p}€;=×ÇhA—ËÏàСRÿ/CòºÔ£f6”p½Š§ë¦Žuàšøð +'àx0ÿß"¶@L]gÅúÿV”ÿ£hý°!@OÏ Ç×M<‰ÃÙíüÄJ|åx!ûzâÇÙŠŠÂñ¡ì°;¾w¿_p»ýœ°¶`û~5°ª¤£-ØÄv•@‹b °8s´µåŸßð8`fq¦eF­ HÎï ÿÑä—żMZUÇ®’_NÈ¥nѰ°_>¢ÿzÜDAµý“ 7ºV€P’Å©õ—¥p¬fÿ×ßý³¥ŸË4l«Ìûgãþ[ƒúÆÌà¡g¬þo‹úò¿µz÷ƒ;ß>ð³å¹ç?8Ó<×<7×OG£ZT¥Ÿ€~µШ’u  ;jÎÁ¬˜Óƒâ +ÈÔM9æÿ)“ë€>ÏšãH~vO˜ST§_ôª¿û0i•žz|ÝOû/GXÈÝ?ßt*Ž?!Ö @¼ÄØãÑh…lƒìZD hD‰€ù¿Vóùƒå@;™|ôÂÊ…T³ç7¿µ›*V***–¾”ðã§d{Ûp`ð¯6Ǫ̈“ÆÕ©©©Ø¼qsýJ.§÷ÿ\ôßù¹î \Uõów®ÔþǪ³U ’WsëWjc¹ÜæcÝUc‡qÏÕ«GÛêÚ,—ªr›£ÔéçÖG77K2Iâ£u$Û`ÓC·3ÕÕ•¤Nˆ³ûèͼãQ‡9` ˜•fó›jÐ&1€GÆØà`ÍF¿á ½Œ± ZgµÖ!qGW×1HZn`gªOr,ô—9S[Ï;xŒ'Ô²¿K7@©ŸPj?,º˜À{”P0Süz`K‰žñô'nÿ¸}èÿüHÀ!è@þÑ—5p³ °[˨}uR"eÐôß`«ÌxÀ»€-ˆ ðÿ a­-3‰E0‰œŽ¶2 b ñ'ò¹9ŸÉ¬Ä3ÅÌŠ»0¼œÎ. – …aD¯¸¡ÌÐB~{ûÕíMô§t2 `¦Æ€‹=G[Ñú3`г(€¼¨ã†˜/Àô;.Ý2¶™ÔF÷‚ +‚ê¿ö`m,»ª8 žíÿË”L1H@ÙZóóÿÑtÿ̰›±ÐÿËéžì¿­’À†(\îRÜÏ 8ÿŒ)®m]qe¸AûC¸ÁÛËgÞýÅ{ï93× ¿1äÒj¾¼™Õ†âõ£sÿýÊ@Д€åŽ@l3pðþA÷?†ý®[)®×T}#a÷Rÿ?¶Û¿Ôgÿ÷¯ÿ&¥ +à.Í¿ôö—e€BÞÜÇŠ@ŒÿOž<‰ØÙH‰±øû`w|}&ØÛUÇV‚Vßa%,qêûêoÊ×q†€~½ò›æ!Ïøø…¥ +°&õ-ŸbOì=E pDÍLlÿËøïæhp~Õ¸º:Ÿ¿[ûr9÷W—(µ¨ùÎ^ºre½êì¾Í©.‹qêÖ%èr›¹ŽØÕ«1£Ñ²Çr¸®®.¹Ûì Ú?šݤr÷¿o_µ¾ ßàÊ(Ô¤'-–.kpž^è¹Ð +€Ðh}º«Ž^êúˆ‚>À¸ï5˜ Ô˜ 5mm6ÞcˆRí·ž¨û¡¥ÍjÁü©þ·ha¨à¯WÎ%,,º4Ñ!ÙÐjϸTÉ—ÚÏóAtéÚ7@[BˆÏÀ 8‹ ðСÒõ_Ò€4à­k`п&Kb“ZfLùö4€p“ †ÀÈR»3/ΰ€Þ&²°fívÙ  }¬'ë=þdvg™Œ»¢PÍ?ÞÈf‡é=Ç@ 81ñÖdŠ Z­oðB gV`°µ•ŠËb«8@€TÅ™™}Q€—T”à ¯¬jÒ/E ôK§Ë €ú»“ë€ú& s_!à( ñÄxÖ×60þúeúá(avÞû䥟½ÒÿÊ™?¦PýUËß?Û_º\‚»ôe‹€C% 0;ÇJÀYe!ÈêØÿQwö¥°ÿO¥•7ŒÆ—¨ùf`·«p:}©sÿ:ðÝøR>aùYòa@ÀICŒ Fð*Ï!Ôy;Ü€e@Ù©‰‚½ÏÎ"eˆõÉ$îcö¿ò&›ìb!Ô›¸YYyrùä ™JÏÐoÿøGÓsË+ËËK_F`Vô( À÷†÷B°ý‹³ó´ÈYp´Y¦’Æ©˜q5v+W…þºÔûjy#ÙÕ"ã?{åÊÔú;UÕ9ãüÔ”‘ÐBC€X­±6fü©¥î?·ÕÕHNÅFc±Ža€Íß•k«K¬WsžÀj›%'€ÅcÉ µMNómAj‹>ur°@›ÿjffý{9Øü𹯀K6°ÍÔýÛdþ=Qg­³ÔY~ÈkØ< @ µÿXôR¨—ÜÊ»\&Øë,‰ú@üËÈ_[ Ä8 ãâjÏ ˜9 .ßw­´ ŒO·d@³€þOìSx°œÈëKÔ[ÒX×'a0­¼¨§ôJŒ²¶ê€å€7¼œQ_VßýÃ. @BaÔÂÀ™Ö‘´ $z Üx¬€ã+…åå¥Â²{¥b¥°²R,®¸‡ ÃÃ7a*þ™ Alo<@¢±®ES ˜ÀâÑEþ €УFç¼g)õ_³ ¢öÿJ4 C Q>PT‘wïæÿékJ ö¸Â3(Ôcø_€+ N)Hû@‘h¬ÿwïˆ Çö25x¿ö¿TþïZ¸·üë–®=s‡+> û…´òaÝâ»ïý ñî+{ Ïé?Яª~c‰üï×AÞé+a@é=³J>8;Ç›„³¥hlb@Å @_ø:´ÿv_8åó`€L`_$E¥–½zSã>½¬jÇÇJówÏÕ{\•yôú¼¢_ XˆÖÞä ]öE.0 pYßð]†I`ß”ˆöÈŒx5 ÏdW €#W\R!ìÚȂױ°üû•Š‹žñ Ï-]XZñ//U\ ð%îçÓ ò‰Ä©ÎSÓ*ùfN`? ÿ`{Û’œŸZíZ%kW`Ù—ËUký¿Tý’&°êlnauê]ØŒÍÏ'Wœã#f4N{¬ÆŸî9±ÇºÚÍ1Èmî0ÀyUUÿSêÿ»j»` 8ßeq"¾ï—huF Qs§Yyа™³éš!`æÙU9ð5u'ê¨ý·°k†ÇŽ^l9¼Ð² +@° çÇõå%ÞòÓây}÷_üÿèRœ5€(ÿrbxð&å; %ÙkÆ7Dá?DÏ ‡ôÒ¯I\ŠÀ¤ôQoò À¥YpN<;Ë äµr™þß`!@‘5,þçÌ:N–yuÔ=²Áx†GÙÜü·Êv;,ÙôöøÜ¼±Ï  +À¥ÄÒráxE¡yaùwE¡pÜ €ñ<(€ûåˆc‡Vµƒí×ZºŽž;Ê8` õÜÀþÖs @ ` +NX”3Q`3p’8ØëÝ­(h$Š¿œ ð—ëÿêy%Puÿüé„ÖÖ„ PºÂhtÚ­pÿõ¯ÂÇR³¼¸w)p—-À®@Yt¹ž=pÛ%ÿ`ÞôÃû³ýäÃÄŠ+ïõ¿Ë"€~5ùŸí/ëþûeP›ø—´ZõŸ›Ý5 P¾ ÐÌc€HØÑ]Ä3àl=)ÂÒ°ÛSö‘›&ÙôWB@ÔÛ/Ë¥ÿ÷ÃüNa„ˆ¨ €Ë)9ð.õóvÎ' …80ÅÕ܇M}Ús¹uO„SK>&ûj-@² +”ð@»ú°³?`Efå¹ßx.P÷¿TQ\YZºðÒEŸ}²„§¬$Ο:Ý@ÐÛf›Ÿ9zmSTÉ“SÆÕØj¬ãÖ: |¨ÃWn~ú$@¿°>55uB¾ùº¤ñV,·Y ž?·Ù3nÛ3V×û)wÄb£?QÿÏ €%€âÈ *Ç·™kéB—žÄN@ºh¬\ýßr8èî™@±Ç”Û›æ^¾Þ[o + m†ƒVƒ¡ÎQç úoåúßfa·á.!ÀtKФ—ªèR]ÈÛ~®’ —~lòÒ?ËxYÐÅânÿ™ À +@þëÊÆâÿ·`ÒãALÿÑA±]‡D8¨Eðúà#ï’óØN–Š Ö$@vË©àÀÞNr@– q­'ÀLBìZØXÄ=ÿÏ$f°F»µ§'ÑãMO<™€€Ûí>¾RÌXÎ. W–ìä3P°@FœÃXO8OàÏ]HëµD+\Z¶vµ´œ@ýWD$3‰£p D~ ü²bÈ®J¼ è}uÁ+BÍRý÷–NœGO¦y0-Ö4 )Qå¹ôØ h’i€´2‚Я…ÿø]wÔôßUÔ,»Ëþ $ØÅ4ÜÈ@1ÿ¬•˜m¹Á¯Õ?Ô›)Ÿ{åƒþôn¿D¨ª<÷ÿýeì¿ÂÐì‚ Žš%§7Ã0ìKyP®¯SËϺ½ˆE9µà>ä󎧴¿2âß'åß§ê­OÊ>Wß8°Ä÷G«ü>½úŒ˜*GÐÞ›L—á?‚ 1¼%€ Äe:EL¾PDY  Þ( æG`·3<Ñ×µ þkèÿ{ÍoÚÞd!@¯³—wp4»³ð lXAHÞ3‹GÕ Fkz€_ùèq€.=êGó‚1PQ6`”á©?Õ^t1' +_×ÿo±àyK*Dw¯|ÿü,(Åèfƒ2ØjØá(àG¶ó„LÜÓO*Î0¯N¾Jeå'² –ÿx…ùg@M ÀÆ„Zz*p óÿ ä{_œy2U€ËcÊŸ)ýnw0@¾¸â¯.d—‡—©÷ßÀn +®­Š€ûÕµk®ÿt60ÐÞÕ¾ŸEB̰2€£©Ô’…_–àÅéUIjPûÿªük2>ÅÿKÿï àOŒ5Üösý¯Ç U~ÿÂääŸÄ¸žçøò5Ţݑ¿Ü¢L”` ä¿’¸×hý/Y@®gnð53lôõpY…ÛùÄóçÎ?Cà@‰PM#BQè54 ü4‡Õö3@JàìÜ]„ÍTþQg#\îS>k÷°' zДVéË:|­ûת­P> ¨öÿrJ x  ‡Âv$AÍÿQŸiääG¸‘›xÄ™ØÎ‘f(Sà”àˆPû#v».O(+ý,4Ðïƒ?ªXÉ—/|¸´RôWøïýËÃCH/ˆ„Ÿ:ð~¢ým^°}f08Os €Ch§Å8µŠ—Xmí(5÷›¹êœ(ÔYÙV@UÕ%£qÞX œP›4ks Ö1èèÈMÕÕíùkGGð¯–X̸9z¥SÔÿÍœŽ&ÄX© +ªÖŒmóÉ.xöXƒ–¦6ŽÄàÿ5œQÐþG†#¸›æÞ^Û¯l20÷ÖðC/ š3¼a6Nœ°@ 6ì:v"À…®ÿéún%œVkjy©ÌÖGºzËR?¦ú3<ðGŃ +À& S.~ïÄí¯S4”ú- +X%ÅuàK¥»tUCiðè[`”Ls@Yw=¯¤_ÕÿÁ€˜dþ¿À §ÖríÇJ Èÿl ZY@"p«Ä!½,ÌÙ¬ÿI|†ÞžXqg Ç1ˆ»¡ý/ à.  +Çã™ímä¸mÓ[N|ã„K+VKS°©®Rí‡p «Ž­]€‹­‹˜m=ª@k+ØS£Š€ôݼféß­W}Høë§±ÈWï×HÔ}·ÂÌPÿ@^˜Ôp,¢fÿãÀÁ ´ì¥%À†ûŠ6îórOÿßÀ+ƒÏTùç-[¿öËé‡~ãçgçß{÷•þ ýËIÅû÷—›5–5V”û5!8äán< +‡}á+Ù‰‡"ìêGo즔¯|úï»÷°ïªÿ¬¼ì‹HµW4€BØúK±õP*ŠðnßH%»üò Áðr„-‰}vªÎ)J´ÇB€…•#>v­ÕçŠÐáÓô‡¼å§Ý'“éK:#°|re%ï_ZZ¢vq…°n±xÇ}a¨1¹î‰Ø7ž*°3œhïìtœ¶DÓ"øŒá³_Î'kkk§jc1©üoB¨W­mï+õžò8»pÕbŒ^¡*~ö–eÕx%Gx¡ +L?X€©äžº=±ÚVcÇzìVǕܪ%6Ê©æd‘°®P‹³WŽR­nµðÚž%èl²:ÍN‡Ùav¢¿·±©±qµgÀ^,ôéíU–€X ´¬Á á„Á°‡žM-VFIP ǺŽÕc  ®©'¯z¿„b ÎKýì ò¿¼î $»,,jê?Q‚ È5°U¶ \Pÿ°@¿ Äcå !€­kä9¢|šýbÙY¦›½åXà#@ðÌéÉì º¢æÿ7²Ù¬Öý³P+‡ºæ™ O˜Éîa héy2Í€¯]kh(²°;^Ì7ãþ +ì¬wv6ò÷q7ò©üç¿xP û‘}%Ôk9#ÜßÕÕ~nÿ~:ío8×…ú?°_4ÌÀ'vÁ-r–Ur¡&Õ¯(‹ªíMïft- X0hañvº^IÒÓø êúë5€@@AKVùºµ)@\âow°lð@ØúZ ç‹Ï˜æÿñx}ý´7íï~èÊ0mç~pàÀ½âkTÿìlÿ.]`ÙH  ¬áňÀlöl‡3®oÄã3}”Òª8b„í#a»'l·ß¼h’Zëûؾ[ü’›Ò9Upå‡èÙЄÊ B=…H¢’à=À&DÒ¼S“úv¶ƾ?T>;ŒûÔòŸÞïË·Å8 Âé¾”ÂkÊ ÀÒ2Ô@îå +C€xá½þFú‘ÇMŸ& ~p§ÁæøŒmŸÑ»¢]Æ©©Êm¬¶£ªŒ¾®Ý¯Ò¬ü©Ñ¯ÆìþG‹Fã§¶ ˆY’1úÜ}¨ÞÜœª»ºÇx¥ÃR»£[]¿d´€$ÈmîãÛÓ!€>¨ªz§ãÖádWk›…ê?f¡N‡µ>~߯j({qéˆv 2Œ° xÐVÃ;ƒ5o €%8FåñèGIô™¸Mkõ_ãÿ' €‰?¼8 »ÿ Í(ÃOtðW‘ºŸxüëZõß’@&5óòýq¸¸Ù Ð_ +VN€º ð£\Û€{HÕþUΕ™”ù¿È²“°ÿ… Z`+ ¬X´¶2󟀯 +é|€îZL<àw±RØØi¬'öÇQÊŠ’´2‘Ç ÎnÀ ¶쉞°2 @À•ŸÎÛ÷··ïß?ÐJg­íô€kOG!híÐÓÂa 7Tíǰ†}Òo€ÂÏ¿W”¿*àÓ~æÄ¦ÝjYЀú¯°@64u ª¿’ÑŠ`QeæÅø>Ýÿ–¾À…~«á>) ÷x¦<€¶òþ×¢ÇÑ;ùðožÀâ¹Ož·Ÿ«IÀg9!¸\ iÊó´ ¡FM¨‘œ !@h<äI…L!Ý„]½ˆöx€ˆ$½Ý·[êWÎÜ}q<¥úqŸTû’ø/µ Àï/b²sôÐe="nˆàßçë»)ëü`ûS¦‘‘“XþïSƒIî…´ý(þ> cð²PÀxÙ§¹Y¹\±R,V0d 0Xt?×|`(lúm$zŠ@bïl°h tv:€ôÂlÇœ7ÆV1X%på,ÕóM,”"Ý“öÒüU˼%ÆÁ>WkYåOµÓþjl^­ÛDx0 ‚oŽ®çj·¹¹oߦ–´O¤€g«J,@UÕ•Z*Øm‡6@Ö 3J%€€c Îÿô +@Œ9Ò{„°@o XC@u†ƒ†è˜!ŠçR(1Hv££ئë»9ö„[Í ˆ·2E)ÿ»ÇE˜ºdëOSfØÃÇ%( ^t}… ÀÖ®Eÿó +à`^-¸ýO¤N»dC A—²@l¯=Ž@‘CJD¦òåÒš e7¼b0ÉCÑÿϰP™µên@¬h™á16耖™öÜ[/f½äóß‚§ßù"žß‘  P(0@¿AzòvÇãlt‹@€‰ííÛô«~@dë +kÐ ×öšPý hoØßºØ¥¼ ¢$ u”ïx1h -^¨ý^]˜ÖD€õ~êß1àÖf¨µ/ˆN°^@@=«&Ó…5‰^c‡àz¥"Зî¸d,6¡ ,¾¦ü+' Í ð+€*0ÿ¬…Júpõdý÷pó·o3ð§÷Î4ö(ÓôÃXK(Mt@ݰtMVÎíŽôx"ˆ Æ?&$àÑÙúˆ/EµŸ.šB‘‹7G.ªE<ÙÐå~å•?åÓ¹ø”Òü±ž0¥6Õf`DÓ„9±À—M(û‘ËÈ Ja{þ¾TØ>"]}Ä”ò¤0)¶™Å>í^ø$fHxɆPHFc…ÁÄ~B+—î¬V +î‚¿°âö¯ýËï8Ðj 5?-`;»W‡èþÌ"€ªî_ÇüêÔTíT ¯pàݾªê²1€RñCÀC‹Õ2…w¯rùdïÿÑ\íO©âÿî*:F;6;bJï/ÎÀj@Ù 产æ“K°Íò+«%è4tF­NæüÍ56öüAÏ_Ó+€×z{¡¤ö?€Ÿ Æ`;(I€{ê¢'êêÊVŽV€É…IY˜Ö—9X[@‘Ÿ(è9hÀhø3Ú‰¾°˜pû+ ÂÈÓ× ÌGá4$@\öápG×àðøØ4Ê È/ÞððúI7TÌ-¿ª…ÑëlöF€÷ÆLV&33^ްעì°½>ÓÊ¡@-ò®°V8öx³¢üÓ¯‚ À7~ 7&V +ﻋêó7üo¡àcÝûñ8]@`þ ¨ø÷sÞÕVë~¹ÖÚÕÞlo + +@§®ýç0èÒ¬p:šh•@P^(ÙA…3 K“N« €f@{½Ûïú_…ùRýçkŒÜœømÛqXÿ¿V/@ihy ®&óšÀ=ª¿­M SB»ëÿÆ. «c €(»j×" xáÕüÏQ)[c€úi- õ_ƪÙçBá/ÃÕôãD_ÃçîC`ÇI3P +@¥ŠÒLX åƒ` pÇ¥ûò“äÖc˜h",¤Ù@ fYÈ+fŒ +“Þ¤f ÊKVYͨ›ÈýZÎ([{z‡,´AØ“ÍÆ ‚½µÝ°ýMYzÀwvüK¯/oPðk£Á=ÌNÀEöÿÉ ,*¿½ !€¿m<00ÔY-ê|×~û› (€½€®’;  YW ÒÏ;˜Z<£w˜‰e +$Þ?iÍ„½ß¯GbÖcdP`  @ŠçÿФù½B$è2Z̘¸'XÜ,Ëù ]p_€ ððtø L#–äû©ÿ×nßξ÷§ç_yåŽ~6ùéW&@³ýš!0ý³÷åÁsês¥X€Ð$Q9ñ`9"A=â• &…4LxDðòWM|wY«¶ì&ÁׯU~€ýˆaú«}N„M‰Â×=˜8¤"Ü·ÓKÈ΃-R8eâÀB“ Šxo!ÅVƒ>†ü}ÕС Fã¾í&:ÙGn>·´´¼\ °¼´,¡î¥?öxy(ÄÖS&ÐyÚqÚaûƒíôù€d|f&DàpF“F4ÿ˜ÛÇŒ«9@ ˜+eùá2¬éò¥Ú¤åêÕùŽM¬¨–ìrÐ~º³Óa>pôÌMM¶ÓXÀ.` ` ·Œ«±©Õ©y«ÌP9¯Ú¥Àµu‰ó;;½Zw5Yg”eÍþìc ºŠÍ«ª;tÕ²z«©ð Ú$±O©u€­‘pØŒ¶9­Ñè[§ ?Õz4ùGèBMM/•|3Wý€CŒŽôþ/ƒÍpжQ€u«5jµZ¬mAä%1À6@HLW#€z™{ja@J0!AE½õç5žóSåçÖ?.ø"º‚ë÷“²õφìÿk!yµks- ˜µl§J—ã C€†AÍðñ02«ä¥±ô«Šéÿê¤bÒì\¸ÀÕ?›¶šI¨ýžô'ÄÍ~&@›Ö£’ost†C²Ãßî§‹¯Ä'¶¿=€\o‚•ûÿðÛí|‘G`á8Ïvâ+þ•L1“Ïl7\» uLóìø$€„+ü7t"j=¡]þûLÛþ`[S0È:€Sû›Ú…À‰1€X‹ êXõ@†Ù¢Uÿ4é2 ®þ×,dÀïV+1j<@/¿›@ûT@½n&0ív«4ÍCZÿä:Á╼ÚþÏËö«ÒÀÒi›[ÿ­òùCé´»úsÿÿ” ¾Á¸.Ï€qÛßpþ?8ðü{ãÍô9€Nÿ7–-ò.àÜÜPY Þù—KAÌ ýd€â % ‡s¨—sÈûÇ•3¿É4î31Ño/%úÊ”€Te/—ùüÐ{G¨(§Lž»uÿ2úç‚ë¼àç‘­ö䳇ñ’Š<<‹ðI‡ÚwØí7隇åø°‰Wù1¿ JxãÒì…€r×>g;Cüö/M/\¸ðÜòòrÅòs˜ èâÒÒϼüò¿ áÁ|òÀµ‚ˆ°h³õ::O›¼ 0Ÿ¶™;ç©ö×RåÅVkcµ±Ø:ä\™‰oN¸¡йŸ]èºzÕ8e¤¢¾^µžãe¿Mjó1 t OŒ]m£nÜÛŒ]GPu—²°=ÈLBmÒŠ\@ǘ#j~Ó66Ã?ó55¨ýæ^ókHîU*@‚<¨9 Õ`=a±Â +ÐÚf·À±Å£µGy°0)N€œ¬Dqˆ‹¬O”Y K˜õ(`îïâÂϯ™ø} €-‘¨À-iÿó⬋ÙÀÏV@p€‡²ذ±ñ˜4×¶0`/ 8–¦%°›—ø­lLfUù×61€õoV¶þy€Aᤴj“€„HÚg²Þo÷ã¹ãT€¿µûþÆÖ6=ú¾àõý¯‘XÈdÜ(…Šú•xCÃmB` €‚ù"•ýú}ì @¶·¶·6þþà íĉÒå`€&°Tû›èuW{W×¹ý]­ç\ý< +è!ÕÀž–lª‹Ôü~¨ýVýºLÀåžuRù„aˆŠNwûׄ € >-,@A‹ÒQ„öt`øŽ¤ƒ(·Ô0@Ö ùOØ€»3cšGÿ_ž\~¹ú‹Ú_ÞêcõšQ³Õÿß§þoÉöŸðÿ[z×ÿ¼Ä‹àÐÿ<Äý¿ä€ðß‘Tn¤d àñ€ü„‹ +‚”Žä@ÀW±À¹€““…ô L‡'³Ùr0£ÖŠüÕ}5T{صB +ˆH@,¶ô$²ß®É˸ãqŒß¿Ãô÷ ±îeí`À}PÀÎ}¼a'_\¡ÆßͶYw÷Ç3y…¾@ÿ¿½-q@9±9ü禠• @Sçþö¦Sí§ÚÛ»Îukïj?G`@@Rx‚¼ïíŽÜþð¯ˆ@ 4îbÿKõŸ€êÿËY€’8^A莀!V ÀÃb@šÔÛSJÜg×óù”·ç¿bXø§Ïü±?@ոϞâ._Ã(ê¢ük}*³¿||P)G¯Òí îy¿à2ß¼BœÓÙBˆ]‹ÃÌX„=Œ">¡`np] ånÑôùçÚý¥Ÿë7öß|iºÀz°KÏ-áì“w¼|€E—/?á`;;p¾©óÓ¶Óðþ§Ãìd”€–ù)´ÿð˜ÂÙ(vÐ÷WKE_—q]Ùlj€ë«Æ:ËX¬zýRÕf‡1†>¿ZVªÙüw3Y¥~<8O·6šÅ–àè¾Íêû²ˆpÁ\Ç­c>šÍoÌ56ÈþÌcQ÷Ê6€Þ׎؎à¬W$ƒa,EµÎÒöÏÄ[€GY¨ekk~ñ` s\ÄýŸDþh–º(0#º€¢XÆ•@®âýžtîCºµ˜ÀAaÀúƒø/ôz(~èŽK9‚IÍ«Àãªÿš PrãÄ ¸óÿÉ´Hä„Eoö{qý÷Î(ë¿,›J`«øÌÌ(?[0’rOŸèýVk…´ZÆÏ÷gé¿QÅÞÞ¡Ö'”ð­²î?uÿ‚{ÅUÌqøWâqªu+®† º2q €ml°Ã‹šó×tâDC€¦öÆ`ÿ¹öý]t@B@kû€d²r†Ý•³° 73/z…æò¯YëyÀXàw‹ð_¹ùñ5.ýBÜj àN»Å@m—@«ÿqÝHÿyÍ@HýßÒd€J +Ýÿ–žp¿á?ƒßý—üxÔôû †Ðºø±ÿïλ¯8 eé€Îôß}`€î^ÌÍÞ¬©çʶµE.ÿaÄ¢†Kõ÷©œ“8ï”'íØwõÿT£EÀfBl.̆Ÿ‡Yy«üäÛx„q Ži~ÊäÂL#ðnÊ+öqµgtáá~ÿH +ò@ú6©HÈgW+ôÞPóPã|›TJ$†Êk ¬M"‘ÏY50. ‹`,xŽŽ¥ìs>àå—ûéõå—ŸhpÍ»·½óôi‡ƒú˜ºèüÌAhà´ÍZ5N ˆÕÞÝT¿ZíùI>¿£JÆùUëÉhÐÅÎý¼j_Ë+ÌT­×ÖÕÕ]­«3΃ ;°¹¹©)u[ µˆ9Àz5∪.Ýš"ìµF9øˆÍ† _CÍ‘#løŽð:€Ù\Cì­q8ésÍQœ?´X  SòX×b-!€0`  »Dø5.AüÊ.?š&@…ÿJÛÏ~"Pç„î‡ñË{­ÿׇ`J8`À"à ò:Uƒø>°M?¸ß­FÝiUõ_Eè¼—é`6(Lz©ø# PqÐ$²Ào[Ø +96ð±CÝ:ÊòlPÅúVkñ +Ô'7¬ø¶ÂSöÆßQó'&øÆþ¶ñ·|þ Ìÿ‡³ô3`ïP•´b €W~C‡xÌÿ3•ðÀ~k“UŸœÚª½I•ÿvDñ™âèq<*ÑK=´¼5~ ðhf-ÀOÊŒ€páOõ‡q+ü² è8P:À‚¼b+@Ï”˜ á èëÜqe¤U”€8Xó @+ÿ2 +ØÒ67ôå?õïq_þ_×ÿåŸ&¿ÚýÃéZQõÝ““ßÛ½¹ýî\#Sýe@ÿ}#€Æ9ݰÄô7ŠI Äp8°:Á @8©Ì!EÔûxs¿Ï>n×7èʳ€u ×üË©ˆf"„ªÁÌÈ#n(Â@‡©þÙ3ß’­C‚ ö0çâk†<רøÛ=j…Ë€zùhÄÇoú‚†!;Ðés4…!äø\XˆÏY0Îûã_€ +`YÊÿÒÒýË=ßOÕÿ½¼ü$€ã<€û#@åßæx+Êq:è m(N± Û¼ξ +Cîú5!@5_Å€ÇùW¬Á=ŸRí½RU•3SÔæ¯ Ñ￳ëIäòÕÑíÆFouln®óª@•æXæ4¬ö«ù[ÑéìB2Z÷VôWN§ €¸£„[¨í'`‘úß €€!J˜Á `A$[Ä `ar¡{Ý÷šŠÐÖ]qÁ”#£vxãB\ÿã¥m@Q0T`p?€t;¥¦G¼Ñ”P 8˜Ý€ù§9ð`~:•§ÑÇ䨕 ™ ×wà ˆU€r¤'¢ÇÃß PVûy7Àli€e@µ¶Ö*žp›ÀŽà·°ä­àb¼ŸØy(b‡íü™ ‡ûe¨ø#êiîüVâƒÅbÑÅå¬X„àñøD~{ד<¤<ÜßR•õ¿“. þÓk s{QûPˆ¼~@ô÷xU2£WÛÀ 6…Ÿèã{©üÓõe@$€2øçÞžÙ€‚öZ_H—Fì ¥éÿŸ @Šs€VþK€[ ù_ªÿJSZ¸‡ü/Mž¦ò¿‰ÁAüDßà_ {“Þîïñ½2×ÿÊ~58пƒE€™S’¿Y-P—hBŠ˜+KTS)Ìž°¢ìÇ#JÎg²Ë*Én*—4)Ï2l·ŒxÁhô=vN€h?ÆçP„Âj +Öï!ÏÆ!¤3û—„.hÀëKYzªXûóÞw ð}€ÄÀ©S>ƒ@¯Ùñ«d ÐiA­N¸E {Ç(ôþ¹} üs9ŽVIÁ9žõs¹ž²¢Ö±=QWáûƒOÁªM$-1cnpnÕ›÷ÎÿKÛ::Èë cfsÔ©¿mq§{Ñò³!|Íf“)@ÔZµZ,줗.B<hùwØ ³éézÝ >€èî3:Ù¯Œÿ\¬ÿwe&x ®Ìx€?RäEWü¾@Y³Ujþó˜‘NèõŸ@üÆp0 úÞ$œÐçYéÖã˜( +€·º Ä£V¤oxÓÙ¤(ÀšP¹€XùG—ÌÌ5F×¼,@Ÿóm@ë7ng†_<øC€ +<¯¸+ +Ôüó1\^(Â8/¿ ¨2ôW A~‹Çÿ:ðPM'¬MV% ‰Êÿ~Ž’vDñ Ás€ž™oO¶… À‹ ²Ã †õ,Yî ?ˆøÕ@¸¥ÿwûK,”0Ô€æ&è.'ÐÄÁÑ™š°¼lÉ*«`à] €.iøŠ6\ ù§¨þsݧ§ßhiiùï“ÆøŠòÏíÿ+s¬Ï¿!nôçfgË‚åÚgÂhV,u!@ˆuù¥Röý쿯ÌØôåÝ +4ÿ#¥Œ?´õÍt+©›#vÄSCî +…#¡Á/œ@³l„dæÀ€!fp ¬ìgVÁ“Š0ృY ’o+NÀ‘’¹Œì@bu¡,Š p(„À_]XÊ& /_^¸ðÜ…1 +€€ž×è˜9ó²O.¸æÞ{¾³“f¤œÎ_9f‡ã ¶;ƒFÔþUŽe¿Ùa>¶ûª¥3W˜*%`n3: у±}Õ¹QùªÑÜf‹ª°F³Ûkc¹Ñ[1VÞ_P¶À+ç¨í'0fC“ÏÁðè  õØz_ƒCÿ^(͆¨!å!€Å´* äâ1vwtKP½_Ï1qÅ• &äI€Jú‹cå4þ"ˆ»” ÈÃÛ÷Öÿ-]ð\f(K€yvÒ {PñŸBŠª;˜4}éæÝÓR÷¡ s~e3wá®­ß× @9@¯}F~ÍŠŽA¾‘ñfÏ~³¯Ï RýPßé4¤ +ÿPóõPsøzˆ5ÿžpˆ.†xð:¬ˆx§/"ì#x‡Bv_©”ûX]€û-Fv¶1Œ¨­@$ +_§^càÑ܇y¬ð¹˜§Æí_¢þ_à@v©0IõÿÒÚÂ^a +àåÛO*¸=±w ómçé8ôýfç[BŒ¨º?ŸZ…Qƒ£<Ì߬f@úòMe¼)s€M£%ºÇP7¶'7€ßÑ—ŽnæÖ7•LÑÂSÆ«–«Wµ·6 ¸ºßܽ!X½¯ã­7{aT3fcß_ó› {ùx Ýÿ³­—ÀA3ÜTQ§%j¡æáê]8Žf +€'ÝyºKàg€¢Kì&d!°(ë2àà —«l!toÜû—)žðü—o(ÿs€«œ`àÿò#`à +,Ï¢ˆF +ÌiÎäs¤§ ¬ÿ+00óúÌ ªÿŒ²bÀ{êˆ` *ýè[©÷Ç$€ËVbæÛ€Œ €ãî÷ ï38ÏäèÚ¸–ŸÈ†_OìÝ»“ÿãPþ Óµ™lÁD +PEa™ÀA¦˜ß¡âÏ(­¿ÌÿéWty ýhzƒ^Dl +vv6Û•7ð)–´·2hý§ÖÖÿ$€‚y àE:QóŸÎz½^Ý ¸ ü~ƪõ/åb*! x> +¬¶H»ëß/SBà `\‚>3À AÖLÔ¿¶ A€­û²ÿ*`pðiÊPõÿÝí†o„& ð¶x¿×{Õ¯‰Ü¿ÿçòÿ—¹9=ýg–«üÖü ÀÚÃd©¿áë4 ùœ¥©Ôo˜àþõµééwÖºgÞî(À÷ÆÀ + óúÌPßrœ6fö€Ãaÿ~ìNÅnÞ ÛŸcƒ?‘n²?À&ÕòÑu±«uuÑèž±(Â~6clÿ/xªª´Y,«µ®çb\Ûs%7Àj=pWõÇâA2:öæØØ›5œXÀ“Òeþ€ 4€VKÔ€dUK€àþ®dvx € îþü2€YüŽLôyÅ_íÿ©ÅÿŒ«ä ½@†mX9xŸç)ýÛú³_^b¸?Rú¿AµxH&ˆ1/U©'Ò-‰~\Ok¼ ±¼ ˜– @Lþ°0YP+š.$ä”Q"@êPxÞÏÖõTúyM¾•0ßhXÎ/3p¨Ã-Ô»3™²ãß Ô?•ýóoSû¿ŒP¦2²Ùz±¡a'¾â.?¾Â1À;¢ýÛØÀÎàÎðº¿0ø½° /Ђhj?Å/튠â‹z¨Èô"K^d9À‹°žÜ•ö‹ ­ÿçA—¥ï ¡€t=Áµ(ï`p‹‘¶lÑêýC¾ä˜/3Ò6J ÷YþÔRò®§ÈX#®Ý9ÄÀ?^À?VÚ»Ð2ù=Mx/ Ðø +“ÿsP éïÿ·fIBŸ›Û  ÔCj`–)€¡Æ„5»žUß¾›##©Ç¨@Ÿ¾ +À€”½²¯ï£JS8|?˜ñ§Ð•‡†˜Å§*Ì´€/„À­94~ÿ»ÐûY€-ÿÔu|’ÚJàAe@•Ûç?ú$ìòÛS˜ù‡S`þCCÍÐ`Ð,ß!ÄW=˜,„Yè¹ÎŸN—¯³X@SªÜVüæË—.~ÈjÀa Òkkg×.]úó¨þo?Á`%qþíÓ€¡€ Ðô–³ÓaŽè²á3Gt~~j~êV¬–q@íh¬#ÆÎ?›ìõËÂôý¼ÐŸ»`P=³D£Ñº±¿^EÙþÝU ªó¹Íu8¸ä5"8àª1–9{á]êm#ànK€ªê³¹.«5êìµõÒD*Pï©üGØàHo9½GjÌ–¼á$à´X‚óm,ì’5@Þà @=ûÕûË]âš KÍ<ùÈÈå¸tþ¼ûŸ)j~€ñ¯Pl—˜Ï­¼f…ª™àIrcÓeg …üâ,ð€¥Tx¾¼öØìpr)8€É´žÀ<€—‘@Á{ãF–Y€¢Èj9À d@ŒfÄÀf@²€9ÑŸù-hP÷Êp@¸Áøêy8ò9ßhHÛ€Œ Caís0NP;…×ñ|\÷”ä©Ï±@Ǹý„–ž[b€g>xùÀ“¬¸¶õúÞ·ƒ§P°ô¯7Ð錾u*àŒþê ™Þát¶W§Œ1N^…°L?Êý>Ùîƒ0¨*ï(óHžºZŽí‰©¬wXVcÆùXN”ÕUëØì7-€‹¼<¸ž«úÊÙYù—KµÁ_Z³í-Ã[†Þ±Ê}o CF6¤ÖÔ Àà4˜ Ö¨#ê´:-mbÔÕµ¸ÈF@ìÐÝ=]/>€eA&‡âÚÒâ2ý癿KIÿµ¥Q püŸx¹î³ Ï~e3м(C­ùELË.Ìÿïœà¢Ç(@&'—º%˜ PÿrFàFvò†:€2# Õú‹ ]a…šÊ°ãµ@µº&+ìœü-žQöœ¥–?î^.ÐÕÂû`º½÷ÊwÆùÌûÉÄ^1.%:æóEwßÈí^qMdòzÀÞ ×ÿú|VÿÉ$ Qâ€X ‚€_•€Ë?„T?C¦&þÄð¥$O‡“õÆÅ`<%þú>ûEa€Jýès+û û‹à”®ðº9ƒðöå½CêÑG.˜¥ ¾P$|m»è¥û¿Îª?¬ùËŠ¿Ú}_X6ú=*4í=cŒÐP#– èæ› ¶@N€o€ÑBøzD|…±p]vÃ×™ä‡Y ¡E\øð¹¥,×ÿK¨ÿ—f~ðü¿=ÉàvýÞö·ßða a/ðËhÔéDQ‡¡&à°ýÒ¸j\­íˆM±@l4ëѧÙüËq ûúçFGס0ÖÕ¨»UU}É2?e4&c€ ² °¹¾3ZÐcé¨Tp/á_"r»Èõ.KÁ]Eó[5½j #s@h˜c£Áà°p8 N‹ÓÙd Û‚]„]l9ì]àþ6€ìf\Z p1®D~ŠÐ ý)ÆuEÜwÀħÚâ·¥€Á” ÏPþéuzúÐ4{Ñ‹KÒWml=Æ%€Ò @žþõæ’€tµÀ0ú&€z@B÷H¨%ªQíâÿÃC€V|s J½Â°wÙ½R`>ooü¡Ìwr¼–_)@ËC`rÐm®dv ¸ËÚd"yÅ4lo‰ÐÆwi¿ÁàÎ7À¼ @“¬¶8À©SJ +80 á)ªþ„_^ÌöÈ*=.ØH‹ +  ûøúýkªè׫á¿_¼ýëëÝŠá×ë¿Æ@ 6CWaÚ2Ð :ñϵk\ýïGp÷Ÿ×ÿ•ðc^ÜÐŽoô¥fP×$Æû?þ³èßèÚ#@šP¼ÒH@mü? <ÍJáQ?_dæ¶L¨0€ vE*! ¨:‡}©«¿žJùì##Zð/Gÿòø¹?Ô<°É.URn·GÆíÌݧR#ã×ù¶R×…X †w§Ñæïþ_xp¹³bÏ#×<&àûØâÏãH0‡ÔÊ">qnVuûbÄ@<ÒàAƒr!¸®Ÿ„åPæØ¿|‰ÀR€É?øóÿøÅæ®=ÉàZ~ïÞ·;Oÿ!€Ï̇3ú©5àt:;á`D“«S±ÑØb€T€ª}LÞ+—ß*  P€÷€ˆ]ÖDÇ¢7Ï®çj B´Õ^©Úd – —´0˜Ê]ÊåöUí¶Ø§¢öéÃÿÍ2 ›F£coÞ´ÙjÞ¤ª•@`¼e¢‚øœ†¨ÕiýÔjµ~ v%y°xY€-“بÐú?-@üNÉÉLÔýªíÛ?¥ˆ» g( €¢ÿö=ÿØ e2h= ¯‹…üÔ)a¦Å ȯ¢€&òJEµñ8€k[ñ8—ˆ 8ÉFÀi.þÞÞÙ8–ù¨4 >Sk 1ä\9§Æÿ2H$¾ H ÎW +ÙÂñ•BöÇ„¸ö·0.¼O•*Ž9ýö·Sd +{ß~@{énfYÙS €{e§a'ŸÉ¬ø! ? p2ØÊommom=l+`u°`ílr¼Ñi b ÐÉ€7x`ï–òPÀp€ €¬rV @A…ýù•Ö߯Öê†ß_à +ω@¬„@Z1à. hã®ü Kû×sÊ$€e@:P6üÏ£ú7Hýç »ÿ¤ò s8Ê ™üã¯j ‡ 2€ú´û!€Ýªÿ þ27÷î™æÆææBÝñ/ƒ~1š•³9= ´  OxaµŸÏžqv×IÙíßÇÔßkµœíõ1ï3ÁÁ¶¼½çã`xôyÆ#vîÑyÅ/ÌÌ<&ïô}ì<à‚phˆ—õCLÒGdHF.„€×`Ç‹¸Ø€>+…퀯ð¸ŸaFóu¦mãõ6;‚ëü3*€‡ã¾//>·”]†&êÆŸ'/Ý8ÿ³_¼·ód€ÛÔ†uv"è¶fè[àSKÔiítv:f‡ƒZèU£ñV®`ŠGW¨åß`Sb©ìãz¿¯*7z5ºgÏ_ÇÆ,ëUUU I£ÑhYåÊŸ[çQÀÂb€ eu_{ïØÿkŽõäØ¯Æ¢o½i~ "ö>RÃÔ˜mÛ$ƒÓ´:‚mmó­Ç% ÀôZ7l€ËÒ€Pti‘@Zã¯ÿK¦ÿEµø'×ãà?ï1óÞBæéV^Pü·$X•ÿ<<~¥üj{€Ê hš€ZTn*—Ð2¹ÿGã_/À ¦”‘@Í¿×{C·†0æþ<ùOp40p6ÓúO‰s’e§–×Z™$póúϳ…שú»+¼?& ð:foŽ‹H" .›~s>`£ÁŸ% ðöùs{Åǰ•ª(Äôkv{1È ^AôRÌLÐñO2Œ5€ïá7e0¼ñ†µéÎNëBXà|êt€ÿ¾½}/{ìUBÀÿ”˜yqæE¬¾(€Í€ +8ñÃRÐùÔêŸ*å"  °¦&ü» z—Ä »•a°f¤¸³‰’ ¦ÌkI€zöŸDcªÀ ñÇÖ=xìÿÿs÷>@mÞY–h¢„´[±­¡,B –Â"$#mK –¥[4 Ýf´’帋xâ­O9,oG/öÔ(ìÛ'(pRéˆõÌ$±Ÿ©­yZÅ{RÕ½k“çnoRSnÕT*µ»U&ÕTo +¹·¶åx«y¯€‰‡õÔ»çÞß÷IØIì ¶ÓŸ„$@`–î¹çž{N}^SÞOîfÇ÷]¹E°rÇgVž^cü©ÔÞè=º% æ pX›Pý·ÙljÁ_Õm0%ž1^ Ô ¼‹•/HD#Ž:¾­5zD?ú`×r¼mÛê0ç5°íß³F€wëCZOh,û@kˆ'úRzCbÖ_×T÷ÉOáàÛÇ~,l ‡¿_w[wjÏ9*¸Ã†l Ö °!(qA*K‘AÌ ¿µàÒÆúA•$]³qå·is…&uf„ A:!Q@ ˜˜ùÏ®Sý?ý|zû¹Ý_ÊŸm @6 ++€Ë—Û @M[[wàÃnëIêž9!Àjý=¹ÕžÅ¹€ÂÞ¥KàØâoõ‰Uo^ ›üñ«}>Ú}ôè£ËKTáûû«ûM¦à“ÐTXõ.W˜Ìð<Ólÿ?cè¿i%°„Îúº­Ý••G_·}ŠJ K!|ºJ@v2T~“ÀK¥Ábµš­TÿnÊÿÙàY¡Dˆp;Uÿ…-¦bT³3×èü!üW}¿Fhl€ÔÿÛ€zm JCmÞD§ѳ#íµ + ÝÿŒ_â1U•, •­j-ÿ—fm`˜m˜*€Jïp¡$PoiQûS-Š+}:kÔXþ×›æÆ_W¯#)஋ò7`>ï(ì¿y,¾Sgg§å2(0À;ì îHtäa”/:2y<½™Ì~zp)ŽÕK1ïAT„kJ€<ƒ€µõ•u©ÿ_öËsÜl>n=n¶:—m@®þP2 ð<TuªWM.:ÑþÇ:Ù HÂ…@ 5P{Òýû•¼O·"€Ú·Õü_M¢2?‹ò‚Œäëoõ,óÒ#€6…ð—D4 Öÿó÷`EyÝÀ ü‘»@œ ò+ÑÖ#€=:  ñb€ú¿ýÌ8,þ„Õ§v?v“k=:ÿ @CŒ5Ój ¦{–„-~ýâ¨ÃNüp ¤gû¢ì× `Ú¿juë÷?K€I €UÀ0r…›xÿ^óþgÓ¡&€Ã58÷7…9ý|Ø„(´*< @ò‡ë°=P8¤vùxºf^ŸnµâS¥Ÿjâ@A›K:Û uHûoS$€M `@!ÎÇ„6x ‰‰Ä/ Hg®§¶ï9}ú7B`ÀÌÓÛj 'ÍÝt|hî6 ”vWPÍ_Ρÿg7x#ï·7˜ÃÏA È›O,áƒ;r=Ý»º5ïÚ¨Ú±TQQ=zÉÔ?ërïrÏ%“©¿ßtéâ·IÊq@Õ­O<‘ËyGOú~Ôf­¬¬”¦ÿ©§xøå@vª4àDGe·Å`¥òoÆ$€Á.aœ@8  šlH– —týIvùÑxÎ(–þ* kT^ýn”ö ëËÁ€žœT;í2`>ìcèþÇØH’jåp?€ìdTÉS)±T±°à¼ +ÃÃÜüsÿŸNK H±ÖÉ@À¥‰Ä·¶—¥vFÄ¥–ß=dÊ “~ _jŒذ÷B܈鿣¶ÐÜÉ€……'¡¸ß£näïð G.8¢Åü¢ßqýyÏ„ÏçóôÆ3ûSšOÊé7±Àÿ ’¼@0ÉÂB¬¬¯ü-t€_úÑ{Üg6[~Ÿ0€O,X@ußçià¡_'@€J_êŒgâßîL[ªÿ·%Ht€ÊÈ_"eú¯ˆ zü +àÊ¿PBÁµÄŸg `ú…` @›Yéü¾´#.Xºýÿšn¨¯HÙ·«êϧúÀVâd ‹¸+_<Øü‘»pj¥—¢­}$ËÚ¿Í @Ã> üŸÙÎË€¬ügñL÷þ£w¨îc/€¹|Þd@õ’êóø5ÖÍ1GŽ*NP]Ø–P›sl³3NPyþúZ÷ßëè"°íxì$H„¶µÊsú!6ÿ¹‰‰•~‚7¸'çïÇ‚P¸5Tǽk!Žñ¸ÖÄ>Bá¦V^1lºJ…ÿâ$ µGÇ5$pqÇU‡ +æÚo+µç(ºD$ü¼[& ˆ¿“~ìúõëéןþ’"·d|š °s€JÇ8è|hµ*Û Ý¦o•lïè"•þQ/AØ÷`¢ßÇi¿ ïyp•-‚~ö³Õ'väL»v=ºk—yt©ªêg³Õýý&·¦¤Ko_Oд÷âbEÿRUù êó¶ÊEUK‹ÖÊ×­Ý])ÛÈÂM ®á€fÁô¬ÖFB²p ‹ €ÿ1w}9€LP±­Ûœ\@] PÔb‚¢zôŸ~S @ö35?ù[K¿®HF’v}P‰¹ÿ§ö ƒlÁÜwÀÒ €­R0@’tÎ\—þŸ€4ÿ|xZžý7§ãû+5sս¨J¨½Kß,W—KŽxú%üFf þ âÛç«M9»º‚œ¢¡9Cí{mtÄï8Íÿ-–õ>ó!®çÞæÿ ©ñªø3(¬ñ8\´uw±‰H&“#ŒÀ +p„ý8 h}ee} þóqk£Õw«ŒÌ¾ÆÀ ¡€‰Fß uÿžÞÇ{=½ÆSF Pég€À·YÀs€‚– ,i@~Già×mªõ—EÀRùW!ÁPhAÿû~ÝÀžL9¿²4ýWö*HÓýKï/$€&€ðù0¨°®¡ŒXÑtž+· oùÚH;Û܉¨Ç’íØVYÜsK.$TÿÏúàÜøM´ÿÂò£®ãÖ¾©)=pj:Ö 9ÆD8UªÿŒ¸LŽ+óþŽ„j¼·‰»~b€ZfXõ×aœÏ}~Ý?ù¾æ«ÏY}u ©·&ÂÛ°)0 9ïÔÕ%BMuÛ€~Z—€É/ ü0ïç•}Që]“~žÚÛT@ ¤ Lú³çoSLYÄ0ÿ Øl1t¥û»Æ?f‹°$!¤˜¦B‚èÕ Kêÿøøö×>øÎvL8 ×ü¨ºOÙ4+`I€7Û‰K nR ½6Þ$«váˆa»óÃïÏaÐj}o–öY@×úýD ‚\ÿuuÛ€ l꘩«“¹AîÀúd[ë'Û~ºmFÅüH]+áÁ5îôÃ× èªÞôSM…êÄbM šbS­W1Q`• 8ž-py s®”ÃQ̆GãôMgØš:Í–ó333ßùà'?‰§ÓÆöþ’êÿÖ2Ù‚qyTúŸnc7€¶Ê¶€é¤ÉÜý¡ùCƒÏ`ô{—QõáT]ݳ셹Û¯²€ 8&hUT¼Þ_í6™Ý¦K;rASE…›n¬Š3pÕRnyÑÔ³´¤‹´~_ɪn[ ,çèsKÞY+( Ù@ù¯¬|úJe% V³Õbé6Ók%-Rý¸ÎžmÆ;8c `¬¤ôëÚ?‘@`oà¨üGKSUüQûÐ~ú™@¾ìê–#‚$ HR%þB ©ÛÇÆžS |NMî«°†iìQ‰N ùÙ?»]àÌ”LÒéäΟ +e×/Î[q–¢PõrFLîv*ïjN5=žà©`ï$”ú™¸Ë˜¦úÈžBF¤ûN(›› Äq±̤þƒQ¤8¢ Ñè§ùpí–À¹>€#Åþ—2/eYHæoÔ8ð%Lý/ÈÈ{D¼'Gò¿‘o²ŽT - +h±˜Í/›Y ࣳ™]'}¢4zN T$ÄÊó,¾È°0“Q € +‚«Ÿ¢ñý*X3ªî_ÊÊÅ€J 80%Dµú¯iʆŠñ_ÑüWÖÊê¿tþÉHâX”ÿ|6û  Ùoä]FÜò”üÌEööócíw¤VêÙ `ìãÚ­FjP +j€àôö3¯í6~0nƒÊZÌþØ @´}Ô3ˆM³I°T±`1@lZS"€‹#ë´€@˜÷²7\}®þ°kù­Òß³ ¿(ÄXŸç‰Vtûá]hÏg¦çÃø oê³’/ÄË\ý;X¥…~;û¡œÛ¸€·†ñãÝlâîýš-Æ ±Xk«tö1ü¨6þa…2ࢯ ML˜Å0K0.@“zdøgfúà'ÆÇ&·Óo7û•ùç'}m>„_Á. ]>]é;Ií¿ÉtWR½ØãõRÙÏñÀhO5~€©0@NYæV¶º£jÔt ~?Õ¹ª¹~V€ðærÞUÅô,Vx«–„üÇ&aUî/ÿËr S\µ4[Y©mÿU>µ³òétú8‹J‹ÕŠ)õÿ‚Á‚]gÙð:Û) Ö_«@;Gµu5õO*(À#úË꿟+ÿ3&ùÛjý-ü?´Rìr®öÚˇÊ8ª€ú¼6¸¿@åˆÐÉׯãœq£õ¿®ù* `Zc:ãÍqŽþåV³£l«¹\Ï÷ºŒ¼ €O|»p—°5Upy\û© ÛpÿgÇ)Ce¿×¸ßŸø©°Ä& àL7wuž’=aëƒ áƒb",Ôö‚ƒÞßðϤ {|_LÄEdBF0’ÔÿI¹¹ŽT€ßˆ'pve-»¾À—~?Nÿ¡­Ç}fz“A€Œƒ¼ hta{ÑÕ«ü X„D •3€ý`¡Ã¡+uO@L‡æ(ÇÂ-Å ©` •µs`2¢‹Ö6—Ê !ÎÇ,rDF=ïƒRÿ³2¥Óå<ÇP'½ìfý_;O§öú;ê cøk‘±±åÀ¾MàpÆÿ‡ÎlŸxgû¸±ñOL À©6éôe;<Ð)¡dbêÐÌÙ%˜ pø½m‰p(1Àa@0úeÒ_Bƒ¡¤ê‹ýùºDˆ€›´Þ0ïðw4ÍÀ(&Û{a±ü“¤`t𔞉ЯÇba[GH‘¼:85%Ãÿ«0† ß6%÷eÒµ^õÿxÔªüÛxšÐ¡î¤ý[!å{ÍÌχ}ðÁw>8ƒ_ïW¬dŒ°®ä“¥íijª m>Ó‡¦Uls7€‹Lû÷y{¼Õröz½«â ìõ²ÓÿjÕ*¿«}}¹K„¾{ÉÔoM»áüë6}×d +.U]dP…$ ÙEŽ ÜñFïê¦@Ÿ1ø¬Ä ¥îË5W®T>eÀ§Ÿ¾Rs£€Jz«Å€ j—¬@ ‘“€ƒ]Á³]àD(@¿ÎD9ËŒ«?[£Š`1€&ýßTþÕ•?êøô3ëÿçu©{Èu»]·ò³P&v- +`å~¿ RŸ ‹8l¼È>Èr^O9…ù¿žÖ·ÿµ(àL§”ÿ8gÔƒï7rÓ¯é8Æ×qµp—‰(ñL³Ó§þ¿9ÕÕÀqrÒèÚ_(d˜ˆ¢hÃÑ—‡Ö©æN€-A*ާØ{û‡ñtÁYp Kð‘Bá‘ýû©Ï æ?“àÿ}>_£§×¥eg0ýFóõ7¨HEjÑ' $‹=’Ì`Rscm‹2Ž[d +pÜj¦Ÿ²ÑÚèñ ÒÏ `~€FÁ–Sœ Ô+:@ÂUØLÇ3Î È%Ô€ÞæË VôkK5Þñy ž6Uþ5 +C(÷Ð 4 ÀJy@ž;ÓÿEzn#öìƒs@£kŒ$Kà ê ÛŸõ•cs3p‡!ÀZ¾h÷¥†ç^ÜrÀž={Ê€†_n?óÁ™Ãç +l·Mk±?1•ýSvÔëwÄØ@gûÅ#˜?Ïû`Ó•óM¿ä‰yˆGë‰Ùšci+VÃLüÿ°„ÿ&ÿ@ +ð‡„¶%Z±Cþ:¶Xe' è·¡àÚX»×!L>ûôtè[(å õ;XÙ2^·-4Š!iø*+Y¸Ç_±×{–âî6Lÿc±riCLÓ‚вÇCM!„ÄþhþÌ¡ÎÛóì—Wÿ·|z°wrè­¡ËO·µa@ t¥æ­“»>Üõ¡Õ8ihëî§ò¿Üs±¾}ð$°Ú{ßJ ÈR@ÎÂ2 |,.u™.™Ü—Ììü[Á €É´¸Ä›‚ KKýž½¿TõǞ˄Ÿá XUF¨£çÊv²¡Tþ+tÁ…Ÿ@@V­¦“fs#—ž€€`xxï°r󗌅Ĕñ¿š¢Òù—]Ýr @—©ìµûW¯^µò_’`P–ô' + ¢Ï³÷¬'“Q~íç5€Ôu8ÃTþ‘ +)üi1È4gšãÍiºL¨ÈŸ8·¨lZG5ê˜K„,[»K •3”g@Wsó·)`x&aÕ _¡X_,ú‹~È û )gºëa€`K 0Øèñ´œ’ }ñ…Â~äûeö³Ž`rb÷e:|“>8ìòAÆé,jýö øÝ£V4ô+ö_íur 0{²påïV>ÝŠD€¬¡Ål±šY à3·X€TðFåÒ`Ð3øø$ýà§ŒðYŽwjV†ÊâŠ>yNd€µo 𗠀߯¿÷Yäÿfà×—4 {2iW}rióuM™a)ý¿´y€±¨ÿ·ózl$b/>H ‹¡v¿&JÚóùúr§£úúúÛä8~î.†Ùµzz‰ñïu6oq* ÆìÀ¾ÃS§ÏœûàµC§ý…lœ¤GÿÆ”ü–€ªòÒÿô4sþúFbºDÈÌ\SÍ«”@óó€>Ì"½Pø*䀭Ÿ´r0§ê`?01€þŸÇàBMu¡pøÿáý®Û *ÿ„&®¢”sí–+ýÊåOÔú¨Ù¼7Ð +¥@lº©.Ö¡Ñך¤äóÜÊæ—ÇQ:äénöŽq:‰-€œ„ug0?~øKɸ7 »‡ +[W,5WÚþ…tݦÙKS÷‡k¥¡¢§ºšúÿ¾åÕœ×Ëñ~tù³jÐöXéÃXŸs¹¬¨’QÿŽ¥&LþQûÙû¯ŸN&V«¨î/÷ÏÎöÐÝ«  CAªüO”UÝ$Ù€U³••5OÿuÍ*Tù4½Ññ__ÇJ# }f*þð´ÀF€\¨ýx¯®,SHûÏOsY(J €48›ØEþ/pÿs;`×ýÒÚ_^{Ó™·—²ЮyAØ."¦Tñ*sßJÈü¯Ä;‘œrŠ k” lÄ hVëúJðꩵXpõÙèÄñÔßÝÍÏáÜŸ¦RïJ§@äéjîê:€Ä*†½™‚3nìÍP¿^‰Ôo8ñ] |tû[úû ¨`ú&=½LB ÁÌõ¯Œñwâ/¥§&=(§C¿syhhâç(¤$H‡Ê%Uÿ¬–Rƒÿ#IüYòõëH{\_§+ëk8­Ý ÓÖüÌ–ãt¦ÿؾãfŸï¸Å +!àP˜<îéõéÍeäPÄYðœú&Ž•¼én¾µZÿ ´Š¨-«û·Ñ\ü: æ'N>Ÿ,Iòº€€bÔ @4ªþçaˆGè;_äëb¤˜} {´]µ # À O‹åE>d/><7÷Ì)ÈÇöcKy«ÊM@ÇôijY_›<ôqýøøô´rúmØÇ1ðâ¦U›ÏNl$lÀ4ÏôvYÕÕ'‡Í#KúbÓ‡Ÿ&¾`A êzB<‚”QC> $¶}ŸpA¸u n aK4…ê +|ž!`ƒ€¾áµêî)gh²ªà²Ê'Ë &ÐÃ}.ö<@`@ìèÁ4Ù®Ù:b·|w›ZвÁh–€Œ>:BM°R:_î§_=89á›=À§-55VÈk¨ö›>4í2™­mTò1X]¥ÂÎ ¿ô<T³ 0ÇáÀè㹿ïéÃ{Õ&©ÿ¦~·»¿¢¢ßÝošeÇ`QTõ¸ƒ–¡&„è ~jÏoSí/»‘ÛÄäºßj«¬¹Le¿²  ò- 1,V*ÿ°0¤âon€¬P+Qö¶ËTS†›jø/,ÀBIþ'ú§[_,$õŠ/TqD¦ÿ: °³ Ю†íŒ4€cŒÉY¬# cu`àdé€ ÝæÂïdÀ .‹€TüÓÍ鸬ã73Ýë’³‹)jÆ{I, +‰D¶p¥»\-Ôü‚.jñݦ–à© ôδǕq£EzÝø3®Þ ýkÁ b!V‹¥mM¾gÒ˜¹) +Hþ¥¦Ÿ0ø#K›ï­Ýô¬˜˜ðœR@4t©h^móå 5L„×òkÈSá_Á„€[ó×zÁj>Žíl˜-VC˜ø<ƒƒ“ƒâ +ld%€ ¤6Ó]B‰ã9}k}~GÙÖßmÌÿm•_Ž(ÎѲÍHûHRD=Rž‡%NÀk ½©CdfŨúcð`ÕÿìJÔ^êØõ ]P»]²¼ÛíŸ'Y˜» +"€¨½¶vx®yîúV?”OÕõÿÓ§·ŸÛýÚO +cõÖûÿ}ü&f1Ù¸©f1 äiÀ´6ˆ1&@¥´P…R:ëqªãÌ“cþ~myDÛ7Mâ§;'`*€á@¸µ5ÔÚzµµn[ÝOÿþ‡?ýz¢iæÇ?ý$±m¦®•ªî5Ñãw4É»ü²N/ÆÛ6æ `#[Ç?g +ÿZ“æïƒOBNÃWÄ´…™sÜÜu$obv Ll0ùÐÇ7Þ÷% +ïÈÇÞhkÃ0½†Ã»©Ÿ2u›NÌÖÀbuß²wu¹ªöj_ߨ·t€ó@Œ ¤…g€×Vs}^ùŠK¦KÌÿ÷Sûß_Ñ_aún?ªÿ²7‡ìBý=Þ¥ªÜÒyûoaÿ«n3Tï©Á¥³}}?šþ6\ðÖbw·¥­Û‚€µ@@KKÐÃ#€®³]Í„œl@*ÿ;J@T÷’ PÍ¿äù_NÜN$¥ü3 TM¿:ëoÂDô-À2`»g5­þgï;XIÚHƒ ÞŸº~ªŒ×¹>r÷¯\€•ý?Hút'J?3üiÞþ—à½.£‡÷é“ÇèL§Ì]½î;÷q0H§;›ãÁp=Á¸³ËdÞe6›Áô~(ÓŽ¢¾½»?oñxZZZn³É°ú,—/QŸDÝ7ãÒ¿û»iãã¾·†¬xLa%vh’Ïधוɼ]x;…í€Ì~¤¯(øym÷_$a0 ëõ-ãk /ï>n€à¸ÙÇ3Ï Ä"À ÇzzôÆ5SÀø·é—Uö |yÏÕªH¿¾ à/­þ9Jƒ€Ï~®ÿ¿F°kf2iW€žƒ¡¬×´ùÿšfP¶À˜˜zj{1 ' »=ûÀíþèXÉ.ÖìŒáøø™öÏûº½ççÎßiP-Ö:››Ï6où#ÑÊ?êÿ™ÝÇNÔ/üšËÿaªüûø,‡õ+F\¬€00S€ï”†ZŸ¬X®ÄMá¦ÿ²µ¯ê–¢u[Y8b0& 4?ž«è=Þ·kJ„f¾Ÿhzo[(1OŸMÀ[þlϺæ2ÌZ@Lkà FŒ;n6ľ~5ú?vÆ?\äCpþç‰Öòßäws“@A€M€ZqŸ>dûòëÿ–€ìA£gÒgiSGMLÚ¬¾/uh2[ÍÖþe.ø}=ÕÞÕUhq{µg•Ê6UcˆúýŸwÀUvûÃ-o…»¢Âdr»MýnH08{~UVV—Vs££³‹s¹ª‹K«UU›š} +b1¬§mBøàÒ“'ÍZ_?ú#Ãë¯W¾Þf}-Û¨-¢ÚÚh5SýoT +—¬` À0/ÔJP¹ ª…Hò_Ô^ý—ñÿþò›n}±Bù/ò$´H/…Åê¢NU6ãß¾ð©c?ý3o +ho›3͘]®ÓwÍß5›Z\éÂõ¸+íˆð×ÒëL»<€ÉlFÚU[ÛåÝÿ×„Ñø8¶þ}pþ Ðv¹Ò‚,)‹•žŸÇ¨‡: t8y»p®Gò7´%°•˜üßXYçœmn¬d×VnüÝýµ^°ZŽ[^° +ûo!¨Kí? @ø8ˆƒz¡À/Vqߎw–ÇsNÎR¦þØþ¯õoúkžÀŸ{нß* _qÀöÕ%'€ú2 €ž¬Y«  lÈ×qÊgÄÃowÀ= ´ ŒÄa" +?Q8‹S“ÿ¹ÅýüÃçÿå(€•l=€ajQº¶üqÀ åŸëÿîü„N#›”AJ Pnõc£j:­„ Ú< ÄÈ]l¶’^‡ôËÜ&Ãwåÿ½0gB +€úÇ1?âÌ}ÃÊÇ?ÚöãÐüOüÉ÷ëæg>™$>Mupÿã‘¿¶ +À¾ÁÜæóe‹…Yècƒ?À:¿©ÞjA?«ü0 ¸)KÚcžRA‡ +Hä!°r8®K›l;ŽwØðËûrëÿÖ€Çäà¤oÈr¥†Í©ý©i«©ñy>4ÑÉlêž}²Çë¥N}¹¯§ï¢—Í€±ÐÓ3‡ªÝ×—cðv–Vy/VöTPõ¯õö»ƒjÐmj^Î]Ìy©æçV?Îy/õWS©_êcKÀ'6µü¹øž›6oñ ÌíXÊå–«ggOú|¯°~h} öfvjl<à€–ÿÜä%@zvA0¬­Ð³XÛˆb + vDФ6ÿ¹ý×A€¿¬òó03ÐÏ&¤ýçò¯Ø;çÿ$eÛ‰wÔ@®ÛÕ&ÀêÿqhFúê…È®$GüØÈ ;3ÃÒ÷Cï¼îT›2ö—´çpBçßIu¾3Í›hþ{ÑòC  âëõrÐóñøÈ]üŽ‚#Eà¥ý…·3@™ætgWsº+ÐÝíîêJYoêv5; ˜E0QMÞ”3ãò4zzƒ-ž€¹ÑÊ—ݾ×&Tù©ôùÞÂ\`lb1$©®<ìP„S3Ìù8èIæõ?ÉÊÊ –þÝXQvô¿Û²¿ª?ƒåxãqŸ…Æl ÒÅ“"0ööÆuS`:nù%òàíZ‰ýÕ¤µþZGí&±¿ÿ G~™¨§g³?RÉ xM4kei¥¥€ ó0 æ"]ÛÌúážCÅ(ÃK”—‰öî}xîá¹¹½þ=üq{ûÆT`ìÍé'ïÁã@ûúôéíÛÏÛ¹Q_ÿ‹= ‡Qü¥ö+J—¯ +"·Ò Z <]š–ßT@€Žñkâ£?.Ù{¡gø6…®Jg¯€àìÐì?P@bgqîU÷¥;¾Wjú¤næ“ùP"â„¿p](\7 :ÃÏä¹$,á¾ÝÕû°­§ 7¿Ÿ˜‚ÑÏÔT Ö þ›ð3Cí(`úfù€ 4l£øÿ\ÇClt5ÞÔ1~sßô¾}Ù¯ÈÞx{›OoÑ â±¨l{ºÒúaÅ.+aSwK°z™ª~ßÅåžUB¨ý?[îóþ ô}UtþªbÿW©ª£fSñïÃd ‡(ÀŠêQSµû’ÉM­Ù.¶XÍ-]Ìa j¹¿†Á¹œ²,%=±ClVs›lŸ¸};  +a¹\õ⥀ÕÐæ# ÀY©'¡l¡3.BiNÐGX¬Õ)=y ‹ê6€Z ½äúS®,yÞê߉š]LqÁ+Q<-¢ó‡IZžéÐ H*€)€övåå@„wªïwP‰ð¿*8S× ×1óÏ4gxàLoræ@‰å'ÿNö¦ª{q©û½â ô<>w7h¼Ž_(Àñ¯PØÏwgÊÙœ²o¤w¹û»ºþÍ_™Lßý®ÙN¥ +×éN³E ¯Ó?Õèôœê=°ÞªýîËC—‡†|²þ‡‰€Ñè™ðYÁ˜©þ{<§<®øÙÎt'!ç°xò;Éóâ¿âpndohq[²HÝ?!”6º´ð `G Ƨ€žWà¥Ûæ(Tþ± +È%ÍQÊ.ÿŸÏüë‚éÿýÚ )y{y†l¬¨Ú¯"€5 @½Öÿ£ò«öŸ®²î!Õ?µ÷E^&š››{²ùI@€/œ?ß¾q/€µ¼Àõ0Õÿæ{ñ0¦©üŸþhüܹs‡Šõ+ì9Ü€SC 0`0=%€–øÓ!@ƒšhÿÔô¦µ961 ãã² Àísè*k©öÖ ±Ïµ?R-~ˆu€„æ ÌS??ÀKzl#á€mœî5 +ÍÌ$®†$¹÷Wþ&qækçÐóF¿™ [x*ÆBÀ†›ÛZ§ðÁ&Ñò£êŒ#d qô‘N{tˆ€íTæ±MÙîèìÆéÙ¦©þ7d¿r »ž™˜¤CZdžn°TšN™ÌÖŠnHx,³Àrµòöâ#,d€'¨R/©ÛÂx1æ¯0õ»á4Ê€Ûm +ºGG{rç%¸ê¼·úRõ›ÿU•Ut¨±ÂgU•CÍ>ð¥¥ÅJk›Á7dþÐìáê €ž¸ÎØ|½>@˜Ô~ì(D7”)ª¬Uí×Īâ+ÝŸ’`pË/“о”wÂ2ˆˆ…ˆ]¹¤Úe ‰JL@»œü4 ~-}@€l6?Bµ7•I±,n˜ê?„~NÙùCäŒZT,@F„]®xsÜÅn@ ¤ìó ×Gx@ïßEÒiؾ§€÷÷  nß_in|a×®þå6¹ûƒÁ®®4ÓNÇ‚?_õÃé Øh’'=ž‰“`ÿ}»Û._¹r¥­íòå¶Ëô¿ß盜ä`€L<-0jæe€ááç ÷Da… +0YL¬Ý ?Ô-ü¼`}Áb0ûÌ@€m–!‚ƒÌàÍC€³§8k‘'–ÛKÛ¼ À?Î~å ¤–ذöóFQnÿýý:…O€HyV~EÓ +P°ý¿q1?GŠnÿ¯CÔÿ9Œ›ŸÄé@õºöö±gî@ 0ïw` àž€,Õÿñq0ùO³7ž=|XÆÿzõ×ê¿ðÓ cñTQXOO©ÑÿtiFÓ¥€1¥š‡€šd$íIÒû°Ë·­U°ã¯„çqJˆ` üÓþýº¯ÿë?¼Êcv¬Ù+Ì$æçg>ùñ'u?mMl{/nMà‹êMaÉèáí>Ö Ød™q_SG˜¡ Ýœ +ãÓ‹<¸<ˆÍÛxJ$šP¼¡*,“Ø8ñã<@êÿÇ©þÓ¯%ûÙû'„ú¼ öÿi Fëë&S`öC*ÜÖ]&ªù‹}ÕØìð2!>ºÌ`3àÕœ8ç°º +“ ê~ñ BlâþßÝÝß¼4;·„òõ`®ºº‡­u þŠRÈ=‘+|ÑñDÕRð¤Ù°šÍö$0Ë;€gƒ²Èa€˜ìUN€* {¾ ŠÊ P4E»ÖüßB¨·…ÛLó°C‡O¼]*=Cqu“˜¤D„ +°Gt/ HiPÉùDz+# üµb P(G +#u ü¯;¥æ;uÿÿò`Åð¶KfýÌ@ +pä˜ìº´i¸î +ìwø‹Ê™NBnQÕð¹uµ¸¤‚fÓ.ÂîiüÁÓœ?˜q Ñ|‘¾Ô™AÊŸgjùÉIðÿ>_ÛøIs"æ•UÒSaÂ78‰ö¿Åsª¹‚é´lB9æ;:¢`³®ïh¬¬À xío·ð¯Õh±·ÀéÊbõ¡ø[³ø,L4Š%p/–ØÈ…_+ý¦3Ÿñ}RN à(mø_ìäp”l£WòëÏ;ëóÉH²ÌC‰Öê5ûŸ’P Ä (ÙüØ[[ëŸ{‘þk=IÕî@õ¿à|ûØd€P&1§¢ïzö^<†ñè´@{ÊûöÉ`ª¡D èÛÂ1SÓ·tÿ̘‹þŽ%s6å®ßqªüìøBÓÜÏ7…ëǧ{éÐ «þÔüÏÏ' P)¯{/Q×z5œhÝV7p5žiO$3„pjM Kø‡u­Û¶1E –þ„Rx»_Ü ¦Äš` 0X½_‡úA¹ËçÙ†<Ô)ôGc0#PÀ¦Ë$€aFÓ/!˜& ôå×ÿ{²ëñIz´‚° TÇRótM€Y8ž 4vWTG{–û–½ÕÕL¨uÀžóKlħÕKô_ç¼X8@}?{¸M¦ïè¸+Üý¦'ç¼9ÔxBKã¹àY +Ä <ÂÏúø›|^ù¯ÚÌÐW[¯ï»X½ì•ú/Îv¥u`­¸”ÙE7¤Ïׯÿ¢(n¶ýñ—m,p[„w3PnepiW¯kI{iûŸ_ð¸å‰èFyNbC–úy zªú•£þÓã‹: +)µÇSºMÅ1£@gJíËuÓÿNžtRCz·ŽhIÀ×>wÜqÖqÒï¾è_¨-ð €=ý™¸Ç…P A€zÿ\Ëwݨ3sÿ›4òšÁ/œ’Œ ·Ž‚™—Œ“ƒTýç7Cm5°•VŸob‚úh—Ò+"^à}ž9o”~IÊS翲rC¬ßXûtËþà ‚ÇÛ èÿ‡x§j/€ÞS–\ohÇs(þÊدù+ +@­ÔÞBøKÀÁÍ?ß××`š¡‹„»Ò”kú`Y + Zëþ¹þí#Ù¯ÂA­ú“ÍÍ{›ïޱG¶çRlå=À{ÃdÇÇOЭÄ©ÿ‡÷Ýz4”kß;@'ØneÿÁ°Z®Ci„7oRöMÿÀvS¸SW(§&p ¢ ã*uWBMWë¨ôÏÃt—pÀ„¯†;uuÔüC3XW—€ÉAÙä?`›jhèhhjB¸‘­ƒNGù¿n~ Çšª1¦ê¾¸ h¹€ ÅñH`±Ã±é›Ù¯(Èþ&îaÀz¥3±ÕöÖ%ªÿfêßÍݦŠÑžÅ0‹^ÖVc°¯g‰·Ÿ€0»i$@Ž‚é­ß}‰EY,Í‚9¿y¶î€{ŽÀ¢õÏõye ”}’4›Áž>ïò2{­ +³ðy4OXb1aÕ›oº ÿ ¸g[ðàl×Ù´¥xà/I¸ºl(' áôÍaûKd€¾x; Õ{f3©ü“µ™Œ@à$/w$–ç<ˆØË¦âˆ€ Ùª®_¯@4Ùìä3™Œ´ß¼ñ¯óÿÕ÷ÇËl€©øÇ»X +Ø{·;]½®c.îN{]¢à:{g+@ÇZööûÙƒkU›$2÷´P¡>å‰ØÈ»œµ{›ÿÊäîj®K5Ç{Á‰Çãïd +28½7'v íÆ> Ô““¾¶ÊÊ+t¾Ì«¥CmX˜Ø²è¿PrZcY Ž•ןf+;/|QýOFýµðؼg?Òáééñÿð£þëåÿ 8€éimÕšËÿô´mÅoºŒ`¾\ÏÏÕÌ€Øg—3xšØ·wŠÀV͈×RyX·*½?µþóÊ^¿C¼cõ>4a0?Ÿ8׉pByñQÑï@À`˜ßa“ªöahüÁ@€•˜>™‚2pJÄþ(ÿÓ%@’¦äAÙbÊØXY +h‡n$–ØÿoØþÿÞ€lþyÏÄ[CmˬV"¸Æbš5¸Ý/X»wÍö÷÷,Vs&Pµ÷bŸ—5}K⸺ÄÕ~A«;T ï[]ʨ¨ø«K»L»Ì¦ÞÀ®nÈF/V#€îúªyn¹'8z€¾Ïœ*¼Úçõö›º=Ý&«=Ì<¬æxh°$ÖÁ:(ÓV-çž`-Á,€Üî@Ð-&@lt@zNÀ{%  V¹ŸJeW+ºö¿äýë/ü³ s’|Ë/ñƈFXÎd=¿¶)WN'ô¢§7þÚ4 Ò® Û˜è@0È ûi"€ë’0¯‚ÒºôO Tÿí¾Ë•îìù?•¤.3lU{Œ÷Ä Hêþ;<Ìwßýã?~õíúl¶þÅ‚B8R™4ýK×ý‘•ÈÇÍ×Ç6œ“q‡¿«%]i>à¦ÿ ®.V)ÄãF^ü3_º@¥|¡p!ó¼ñµÉÇ'†~çÊåË—¡ +Üíº<Ô†@ ðÉ)ª éŒ3µq +):QMDïŸÁiÂŒp–@ -ÇjƒaÿY±ëÂÀç;>44ˆm”€䟟×IÚîT«åjá@µÚà-€Ú’4€mýÑò4 òÀžLnÊÁ`M„kªþƒõ®gO ~–éKGŠöìoéñ =Á?W°Â€ÀÞ­ŽÜŒ.ü÷ò,6ØÇË +LMËÁ®Àt b¼©4` C¯šÊ7é9\ÆÙ3çj¨éš=ûCÐ÷ãs!ÔÇ>·ÿˆÕ ÏK¼Ž +(Áw˜ç#13) …pL¾ » ‡%žý~Œ@S8Æk€òŽ_»3©15¥Š~C‰$ä›*P„d±Ñ¦…JäñxG‡¶iÈø!û•Ù¤Ñ31ñ–ÏWék«j«¹r¥æJ›ÕVìê6XÍÐ4W÷Œ²/õÿ ØS-¦À°öÁ€WDÄ蟋KË£¦þ]Ôÿw¿`2[Á]îþjðÿH˾ÔSq©ý ©ÜÓw5í2Zè6»+z–½¹>üƒË9ñæ•ÃeÛ²6°ºè;ÏúÕJh XîJ³Q›ƒ¤™×Z}å`Wëÿö²…?­ük €ß› +ÿ§†ÑëakÑŒ„ ¢og%€¤ž%#ùˆ†t? žˆ°=j‡„ ž}Ö_¨åhyiÿ3šñ_&®Ò•ö™pìdÀ;€p† ÷ˆKŠ/ºøFÜy‡ú‡†^~õÿøåýôRºòG™Úb”ókü‘ȉZg3¼„ÇêëOìÝ©oOÿ|"^¸`<•N¥^D&pK°…îq2êŠàüñ—ÀéíöþÎÄî+W®p.€“vb™¾0å ¢¿ ™äû!HB&B5/Ÿ”XÀuªÿ| Ë[xPý?^i1Ô`ÀJàøehÈÇ–@Týâä ×øEßJöUñWž@Úì¿¶Ôû†€JÿA–Ô&á'ó#J¹y + ;+j `í€`–AýçÅ›O[€*€úϯÿlDàžþPu ªÿ_Tþe&ÀÓ ªöǸÿ (ÿ«K ]ù‡d>ÄP Ña«_mêHØ0AÀ½¶kãx‡!À<ù¦MMªë¾Ãÿq |’˜Iœ™uˆ`X¤ÿáRj!=Xý›îˆ5À@íô!ç¸AÞôc_YýoPæAšŒ!¦‹• ³þz>×ÿ}ÓÙ¯8ÈŽÄ=>ž)¶a pÅp¥Ò Ø`økSÐä>»X3`ªÑ}Ò™÷\¬Zâ `œsš T|U9„ÿ-y1ØeÞEßc—Ù0õϺ..-¡õ¯â<`º§w¶‡…€+.UôÓ98[AÅ¿Ñlî6N™û{zr=^¤.|ô±Ä°\ÀU¿j¶Ûºxñü›;ª.zXhñÌŠÊ¿««™%N¬ïŠ@¢òo(Þ_~°4P§àò¿ @À-Oò½ãO¢vÛåÌý œÅ³Téy ÅD"êÜÎb@Ž#`»ŠV]yp(€ìˆÃ©µþqµøÏlFäÜþk7¨äw¥Y€*ÀxW'x€Îø‘^Iê•ù?¨ç9×ïÐû¾üò«ýÛwÿõ·¾WþÈ?sú£Ȱ߈ÔG6ö:éOœ:!0Fï§{ã…Œñq¤»èoïjñ´=½q!ŒlýCàx摃 7¢ÆËtó±øã»/ÿΕËÆE?¿ñÝ}Áá`á#a€(Ø”?ð?#Üö'“ÑúÃËJ þZ¿X__ÙR`@ñW*@ \)c`Ï`c#^ðô¦¿ø[ý]Js·) ÷þz² *Ü¢à?jâIÍ(²€ìÀ”A)ö+ùµ’# ZÌ‹ )²›{6Á¿çRƒH¤ýsì9V‚½ß?V›ôßÓjßžgŸU€=_(  j?_s`G¬ä—§Í:4+`ÔËqL¨üYÀš¾p‚P+PµCãˆå%`S@XÚ|”|bÕ'Ø`†Îg08“`ŒRžüì4À¾Bà°Ÿ—^Q&4à^SRÔ;l›;þÍG™°Cyð"`i =4!l±†= û²_yÍCààžÀ5mWj¬æS"â3™ 3&g«G½Ë ¼ì@õ¸Ç[%ÿ`ÞßãA="þr«}¹¥SëÌ̦@…É]½Šr»ˆúÉ‹Ýôš*.]ª¨èï¯0íê6t¸ÍæA€Õ¾Å¾>$îX¬†1 K{¹Ñ¶n³Õsö|ÕEÂ+¿p»[”ÀÕå¢öÿ,çõ¹Ê`ÌQÊ÷ˆFýJû¯l€‹›cË´ + ,ÜFð  €5ƒÈó'„P®ÖþËð?¢Y0°ù¿¿‹‰<ˆhN€ʱÎ9»úà_–þ¥ö§ñ/}.z®8+ÿ¸äëmémqëìÄ8@TqŽ:&fÀwÐÎ=üåã½{ükú¯ÿþ]õS+¿×™rlø7èµócXšžH9‡_¬Ýˆœø—/ÎE"cÎLÁùØä„qð¤9àêr6»‚ž€ÇÓ‚´"†X|m÷îË—‡&ãÔ×~21ñóø…ý…—Œ“¯MLË\p^ÀƒÅ!r +)Hò7n@°²p `Ä>’ÈóR@þ7[ËôRÉGzw †¼ `‚- r|¨ÿÚÀÓk¹£®SÇ& ¶´¨7ÿµ·.Š °< p„£ò˜Ñßœ‡@¾<h}¥^MŠpËÌñ4¡gÜ–g:  ;ïȶŽ +£©ÿèIîñõ,€@€=›pÀ¥ ¤ê†;P“+àÿUC€ÓŠý·i’yÝPÓðÊœŒËDZâjåzÈnâ :¶ìg¹~f|``̲ó1N9ƒÙ?àÁ¾ke\f"€' „l S¸©¼ü8 (ƹ?±’îO×9ìÓD€S¬w¼YVÿcZpnqܤEâ'‹í£ú¿u/Ï÷d“1Nz°è³Pño3´]©´øNõ£6™¬–À‡‹Õ}Téûúª«GG{\\Êå¼}„ +V¨öœªóRÕü*̼° F즠Ûmå4€šjE~tkÁÁ|ïî]G †Ênp€¥òdÏòjßêrßêêò24Õ‹è#€'ª}«µû¤¹ÚkB +¯<¼<ÛÕuV$€N¸Ôò¢u€%¿êbT$€ròëÀ‚v¥ÿ³L“2ÆŒUùÇ0@ª?C¤D‰cQi¢ö¼=b/+ÿ¬Œò`@lêWòpcÄ¡óÿLþ§uÿ}õ_ Ûu©ö @޹\ØäuM +èRÂ@ºgò ÿécÏíÕ‡^}èå‡ÞýÓ?ý·ÿ«o cŒüEg-A€ÆÀ®£Ú9ñð“Íc'6ö:‡ ôú>K·9O¥œ.O Ñç9EøÄèA€[»/MÀZ0êxiòòîÉÌþ …ýïHx‰nê,•ªeç•7¯ùáßû£á½©T&>9q¹¦²’@øÿ€Õ`°6zèÇë%p04¡0Àï0°¯Ÿ˜0Æ/.Þygÿ…G`ðÈ#88è ÷£TöoÜø o0àH¦„ ØbÑFce¡Í€×8ãØ2¤Â1ðÈa¸›o–b)`JP€f¨[Àp¡\ >ÀQ?Ëÿ 6@#Œ’ɲ@}¾äÄÕÊ?æõ²€]YBÉÈØ ív¹Ýngg£Ñ Öyä~<›ÚÇÚÛo[¤ú_ýŸŸùÈÚ{þC­ìy–N‡§7ìCŽýg•ÿÃûÔ– »FýWr€é˜ÌT¨UYå–ëØÆ›TpèZÓUåþ×Ô ‡¯†Cu ì;TÔn“ôÿ¼@eþ¿„l¿´ÙÄ–ûv`ðÅ™3óó3,;MÊw°ì$ +ºžA¢ØéGkÿµU‡ÒÀôTClÓfƒ&ÐA€&ä%À/?þï~€ì·ž‰¶¡6Ë•6fá8i¢²z©bÔTáíñö-z—PÔWsÞžžQå4Š‚ÞÇö¾¢ïSäþ‘,šMÝbE4`¿)`õVí“ÿ’°˜¿qñ’ 1ÂÝ»º©ô›­†£ß4ì4Ô­¬¤>çÔ2ë +¼««¹å\OI@_|q.üŸFbá¨ý´´¸Qþ»\.\œm>Kпùº“ŠÁÞÚ½j PóŠrû¿Á^Úö¿]‹ˆj©?ý/ܺu8ÎJfÀn„ Ó¨¼ÿòvD”+°– D§ {»Ã.1HÈ?8@ÀÄhÛ§¤…%€‚(ÿpDüOg¼·‹ítz•å/4½®®ÞÒ€)€çéöÛÀ¼ø8þçsßþÆC^ùÖ»}ë?ýê{_û†ë÷‘ßû‹½Ïœ ð *?a€á½àê#ÏÌ=ÜüâÜ‹©‚“0ÀPÍÓOí<ÚmöL'|†£G4zz''\V(àòå OfaäF}ÞŸ‰?þ? ÀÐ{gPÛu€${äéÕý††òùõ-ý#Ô|“žœm–ãHïÂ`È2„õE˜ ²°>†½ñ»únŽÍR@ýGé¿•þל–-”¼€Å¨¨ò¯ÊY4üTüyPÚBˆpöKÕ¸qÝî +3Ç®®Î³œçàtÞŸ]ƒ±±±ÛT\ÿ#Ðÿ±&éÞÿP+Ù_?»oϯ§OŸ>,à °•IAûà|X¦NcÀ«ºkþ@“di +@)˜ã¼ðjºÖ$‘¾¡•ýð@â½0§÷1 rîÏx“Rª#4>.õ{JqããÔúÿâ øÿ33ŒÆ9ÊG– ;jp"P(¦ëÅœXÒÿa0¥õþ eBGÝôP¬€o*ãc–6lZj”Ó¶XÃ÷ÿ÷d³Ñø„/#l…ÂZ@+wï¦Ùž*ò?óæ°õ=ÿ‹^€Eä÷ŒzW°@öôØØŸ Õì6í2í +¸]g1˜e–@Šÿ’”ÍxÂî]æîJÃQ*ú†£ä}Ó`1T*0~xë…«j@·¨:¿ä½Ø<:Ûßìoq»[àˆî +@:± `³s.%I@µšÀ±i@¼€ôÊ/:Õók'Í8è6@%j+€ÌŒp¼c… þõ4€ˆFð Ú.ïó* ø+#Ž‚¬:•õ_Z])ŒŒTÔOq]ooW<Žj?âŠwapÝÿ—ÿÊãxæ‹€ÿù~4ú~ò}DZoüÁ×¾õ÷¯àøÞ+üîŸñË*5ü€‘€Às{oìÝzsï“‚]ôÒ_(\xlâòSOí¬9jxËê³výæÑGw6z` 4ÁªÀÇé‚ÀÂÂHžJ“ +*Žò½P1¿ãu@ÆIÂÑßä?]Aùµ­E5@t>ƒjã}À!«OL²p—ß Â?¼ Ôªî_í*Ÿ!ÎÐüûýË~¢+€d>›O4ú_ ’E¬ÀåE<ûå,úSíwñ°«+èjqu¹º@Rÿ?œºO^Cí·#€!¢~Ä Ý§§ótïŸÝsú£ìÙw›QÁÐV€@>èêfL<Q¡±Ù¯ŠuùÞý­Ù£éÀ@›aí¾˜Pêçz–9¹o‰#…¸ˆ€ ú8fØ„ÀOéaìÇ ‚Nv4c¬0™ý¹ªª2• æë7]2›ºé0ƒÿ·Âô„^ì¬VK%†üÖeFø÷w¬ê € o¼±5‚wix®º_b€Hùg0‡ &j?f#@ÕÿÛ™é·ëý¿6Ñ,‹ –OºmXàVèã;°º¨B‹*[HŒÎóšÚÏÎv€ºPvXSûO€ó‰Ùh½þb²y¢À lÿéú¿³býï,€"@T{êý þ·Ä]-½ ÿyO-]Ç,|û‹€ãý÷±{÷þûoÿYç±cÿÛ·þé¯^"ð÷¯ü³?‰À râÌg +üÞÞ‡÷2%ðLúABûßyìµËO?EGe¥¡ÛÚýè£=ztçß<µó-“ÆÇ±8a4â†1ž))ŽHIg¾[š\f»Qþ‹Ìð…€ú`d·pp7»€ @8 q¨S€ÆA €Þ»ÿvTÿSŽPŽdP[ŠÐ%åå_T€Qö@ûŸÜĬ­«|`@` ʨùK)ÿ¿´hÀ–ãj ¶tupuuÒQ÷Íkð™±óíí›Ì  g¾ŒÀð}{:c +pxü£í +ܦ`—`È0ªüK4°ähr> ÒÆæã¨ÆœóGmùÀ{ìë;0 +'êZßkM„¯Ñ]C× þ~œ/Ï(0þKx ÑÙf;mû%Àüøi´ÿ¡3ÔÿCÈnA¼gÐÔT +lÒTz²Ê¯ê¿²ä£†ÛV` €šmH°®l,e³ PlÏóÿ÷dóBÒÔëÊzk4õCºgZÎ--¯‚âGÿíõæ¼ÕäsFÐhõjO5¦«¼Þ]ž€qœ«¦îŸ @·ÙÔ4™gM£¹7vè3€=Ú·Ê‹½Ãn˜Pù·¼`0|Ój¨!à3´* •åó9¬€lPr7TÉîA®j©ê|Õù'¡ÿ;p+]ÍOv6³ °snïÞTíÞSÊT¦}#RôÛeãO®7Ÿéç‹Òô_íþ/ðùv®ÿEµAÀõ~DˆÚUC¯#*  Ü +X7`§‹"ÛÔç0 @v]£ÔþŸný‡ƒçÿÆSFÌÿÓŒM¿2À#-ȤâO ¥…õð +ÌÜ¡h¾X•!û'ñ¿?ôîCýêW¯¶}ïϾ÷Ê׎aPÿÌ3o¨'YÀÃÍOΈ´w¹ÍØ(q± 0@ÀîÜyÔ  €O=Õfö4f~7ý¯Ä_z)Ã'˜ÿ®Áp[ÖþyÑ=ÉÁƒäH^€ìb;`Dv¶v0¸³c:‹‚èÿ9 § P–Æÿ¥æ$%«ø˜ÿjq¹)áͨú£üo‚øŽß;nÞ)€”ÿ5™È + ûf‹j6ÿ%hÜgA7g€ Úïq¸‚G‚.˜Q5Sÿï¸Ï›±gÆ ¼YHÏw?^Žîã|åÙ_?ûѹsç¶ÄË›§¼! €©^ ÀÈ€qübÜ7«‹µñÄl6}Y®i\LþÃW  ø3Ðzµ.Ñš¨Û6ÓÚÔg  ýΗþËø¸ ÛÓ±éq&~ù“ï|pè'‡Püñ`Þ†}?ˆY È–BxO³!^AtÿSªûÿ¬òÏŸ1P¶* ÷m*è@EÛ¦îAý¿ ûFCmCmm¯ò¢‘ïdÅhÅlÅ¢w5w‘Íþ‘û³œ[­^†%P ïb5õV%½'WÊé¡j½äå8³¦ý&“{ù|UÕÒÒj•Æþ«(¼; +`î6Sƒ†ŠO0Àg©ü¦ÁPI=›ÅòºiqÿB•¸è[‡º¢ð ¾xæü“Ï5?Iíÿ“4Üì0¼·6¥Œ™ÈÜ@Þ®ýÙËIÙ nÿ³ Eo#TvpQ,GT÷U΂E¨C×ÿGÊVDˆ\  ¾34pƒe€lþËþ?ÊüÇ%L€’ÿ¡ö#ï1×z]ØK¿÷ˆˆÿZ€8â:¿“rdV˜8]YI®Dþòÿƒc¯þý¯^ùÓ—ßÅñƒ?©çQÀ3'˜ˆDŠÀ„þèÉ®æ½õ‘ΠÙ`0§<ÆŸ¼ÖVùôSÿéxôèÿ·óhw%æm–“Æ4ô\ì/.ìg@ý>6ü©iMjI€#IÑA }(º€m­@6[c¨ámÝ–!+Úhl ÄÿW¿#ê|ŠzýBŠw +N +,èFµº€Ž÷•,æ`Yb–îHçHr3 #¥Ð™ˆ{Ö—À©ø pÑÒð´]---]Tÿ›;ÓÎæ”³ö~>qÚe åGÓÿc˜øÇÆÆjïïzÏá_ô_wï>÷‚Øw pXg4)àéíãÓû49Àtl_CCy ÄþM1i•ÅÇ'ÄN¿ ÿ©ô_¥ËÖDýú½3ðÓÿ^ÇüÀ/Á$ægJ#€íó whÚvÚvš'gÆÇ©ô£ÿLj ÄÃ&6 –ÔFÚü߯¼ã–ö¿¤þß”~\æ ¥Ø4ƒ2—c~\ô1Ð%ÙßB]/ôz&'!¢——W-¾@‘~³À¿_ä&Éë…Àh] è©ð.W{ ð&@É«W4K¹þ~ªû>ŒÌÕÕwp/OTÑVQÒÉÏñ¼ Ûb6óøŸ €Õb1XQÿ» Ð!¬¬*!A•\ë€1Ào¼yþ_>s~ï\óYl8ÁÿK0‹ÇDˆú®…ýù• +`Cø£%ß_¿Vü!»½ÿ׎¢¦‡Ò6 íâ*¬±Á‘ÛOš  =Úιjd€•J7À&qmõm€T×ÂoÔnôêe_Ùý0ókÊUÚì;ïnn¾’]A©_y¿þßýѱ¿|ùÝW^y÷Ýã/¿üµ‡^=&rú£‚ˆ7Š8"'6j›»4×Ò‡ÆÒ-+u›“„&._ùÃ?üO³óÑîG»wý;»-¯K9}«ñ[-,D¡þs0 Mí åt·®â€‹Xþ+Š0À‚ Ä1 Øâ!€¡Í.&L@¸cñ©U€ÊÈ·t H´€õ–Ò—kµ,@Eˆp™$‚Å\þ5oÄ2`M§ +È />bøûuô»ƒÁ~‚ÀlÐC  Âú ›À.W—+Þœv:ë÷õ‰‹ÏH½c1°#ûû>×:~}xÏîŸÿ|÷îíºp³`Ï>!l?wî£i ‡c\J7ÙR-¾:¢.ùf >@6Éë{úá0/ÿµ†‰«lÙ70x¯•iéüáòF[ôß>þËÓ¼opzà£ñ×m—ÚOŸ;3&Ä"À©)ªÊãâTž@ ‹%ÈXlÿK@C¹° L©=@›rTLÍb²ÿßpOêÿ}ÙOF‡ LÛ`5Öø¡©v¶"¸ ~n¹$<÷ôxûzªÙÇãb×[æÓKµú Þ`…ÕßmÎU›³Õ\¹—¤dk$>ÎK£¦n«‰ê|wåÎÃÑÊÊ•5Ùb¨l«ì6[­mÏì2ò9†PØÞ;Pßj—ÿ7øâ Â`ÿY8Çõ?Å;lØÎ}bdÃß.¦¿ö膿ŒØˆ–ÿU߯ Àí9ÀÜïëüAQq EvIJ±ë£»]Ûü×ã€Ê8b "a½e + #c­ûwó —È]làâ_WÚ%¹ºTüôvuvõ¶´ @Ko $Ü1   Ð[½×ÿìÈ7¾ñƒwzè¡—ÿÁ÷ÞýÏ¿Ï$ëÊ `€úÕú›7üþT³ËŒ§j£þTÚcµÐÿ,ƒuò±ÇûŽq7€?ìåqLo5þ \Pé§Ë÷Zß«›¡óür~Î ççÌLâÐ 5ùÛ¡°±ë5ÿ¶~9>~æÐ™s:ô×>ø€n:×üy®qH®=lê(“plñ¬ÿU/+úZÿ_Â%'€RÊaÙF ‡Þ£ú@6[ôL èUF£¾6K Ø¿Ø pÿèòs9ªúÕÕTü©ì{ ŒV÷ÒûlÀá~ú€…€¹\5OLÌžF“É`ʽ¡î£íj `iq—ÙÜ=ÀšÊoÖTB`5›±»ýM‹µšÁt‘p…|{ +r䔟€p8øòÍóç÷~ü"•ÿáá÷BÀ;¼Híÿ :møÅñ¿]…ÿÚU@TOÖÿQ-:È¿p+ Õ^ÎÑòæŸ5Xéj3€b ”":Øh—pÀ"8?ål -*á?fÿñSTêÏÆÅà,Ûñ N€J|öÿ€49†Ú: æñçnÜ]íW ‰L€÷ÿÛ_û³?x¨ñk½üƒÁ—¿öê+þ-ãÿ¬gMà‰7à_ø˜ug¼×sª7K˜toÀztçΣÝ'‹¿óÎ…É QÀÑG»»wu¿±€'Tƒµqºs!åð‹×m~{7*ý7¤øK°äFÅ0©ÞÙb€—j,m¶í„€@û[CÇ©þÿõÉ~É–ê¯t€)ÅÈÀ¡bG) X#¬+–”)Dú¿–×þ¬¬ÚáTùGtÿ-i jû³žÀɽ™=TþA´´¸‚½®4’÷ÿ©cguŠÊüãAxFzøÜîÝ““»wkBÙØsX(!ÀôésÛÏmgà0WËé}{@­OkÆ97U¯ŒaüÕð5øø ÀþüÔðSéOP­hM\ 'Âót+Lµà*wý„ät†!þÓàÿ?BûOçíÛÇ·Ó‡Ï(xÀ^Âõ7IÓ/ÉBúâÊ÷ï)è®ÿ%ó¿ò«@`YÈq¬ô Æm㢤úÿìž=Ÿþö€ìBÜ39álDΘÏRi +FûûûÏ.­zûrT{—.zaØÃv€=ÕÞÑÅžžþÑÆÔ×— 8ßOe=`r05ÌV_”-*ýWiØaÑd0tí6·°À`±ÀØÌ7* –¡ë©å‹¹¥%Þ¥¥óKÞe/¶ qTU•€7ñöæ›ç©ûwÎ Ïíå @¶ð¡ænÐ)Bݶ?* @L€üå»^¥ RÐm&´øÀ m`£' °¢œ°—‡•,# +,+ H>p>˜ˆ€VüK@§()]ì@g»Ô¾ËfÔ; + +pHPô¿ük=ôò˃Cßz÷_ÿù·._Ow‹ °Qô/`“ï\¼”ŽÃ$ŸZÃw Ð}tç|ê¨õ±—Þy䑸ÄdÛΚšn+¤*l’vu¥›),úýæq"ìÍÈÿü + +’€8 +ë><ƒY‡€htmK@ l„ÿo«a`‘€åS ˜ð/HÕ/€ (à=Y÷,IÐ|±üÚüÄÎfÀ|ÃÎaÉìˆ,©Öë×D + ó vQŒüà a?/ü¹1ûw|«Õ|’·‡ @KKVRœ©èƒðÜ)ÕÿúHý3çZoâç»>ùósÛ´G)ì9¼gŸ^þoG > “Äâ:Ê­dʸœòš®Q‰7i!=‰0wþ­W[[‰0U~4þïÍÌÌ|òS:~|&„ÿ™C33gaÖOÿÚ¸ÿãØ~îƒsçÑG·Ÿ9àø8† p!RvAœÔ£Iû?UVþnéùK;*ÿXvn–ÑÓ¼„Ø4Îé°ÿ{öžôÿ÷d×÷÷Nz©þcÐf ,VôÌöW,Î-ɲÿj€¨ÿ –{z*z¼£0éAÈO•óZ…&XºØ¿‹Ê?³ÉL˜Ú?§)øõu@‚jÓQì •/èÒb°XÍ  ÒÒÖVYi­4™–ϯ.W¬ý‹¦@E°š‰€þà7οñæùáææ¹ës{ç´ÿ˜ƒÐüÅÈF©Þoðë™=*Î@bT¾À#~ïóp(aaI7¢¥úÏ À†ý–ñ9°á× ÆÎõù••ŒXq8±ý—Ѷÿ¤þóâÿ):QéOÇ»\ªý§£Ent¹0ày4-Ìþ‹XÇßÝÝ`…:üú5ªðYxÌåëÿÝsÿíØ~ÿù?xèÝw_yå•_ýùŸÿù¯^Eh`¶þÄ3ÏÏãGõ¿y'óNü8ýô½žF«å®£ÿñoþfgÛÉI…LÁh¡ÿj怛I»ºº`Kí0@¢]ºU‘ëy±VË€"PŽ9 ¶V€š_ó*p†< gkoÍ?òûò*@mA±%ÀÔLÚ‡tÿþr+ ÅyE“LŒð"@Qf€JümÀuå–€-€Øà:úgÏ ÀÜ'}ÀIjÿÖ€';ÄF!ºš3Î)l˜ÀõœÎ~ºûµŸ¿¶{÷¹ëõOÀéÓèÁÙ3`šY,ÂKmå|€¥ ˜"äÙ8$ }tu•Ê?úÿÖ÷Z[[gè±~uïÍ|ò‹_|òïÿøÇ?þ ¡C3‡è "?0®µÿmß~nû¹Ýç}ðÚkß9ôÁ¡Có¡–Ø§ô%@Цíÿ£ük«ÿ û6—ü]x‹€!ƒ=ë˜êF„MMã¶Ø¾g©þÿío7xÀA^*öY†¬ @EÅè2kxÐë­^À©€tkq€UôTi«~.-UW°¾ÿ¸µ±1`²Îæ”þ¯Jßå¯ÒÀÿÏÞûµ]çûÂÝ8p|rÀhnÜÒ°ÉéÐ$59&ákˆVăTe16Ø™Ú+ÏmVŸYO²s²œ=- T/÷Âi·Ô°ÍœñVe;Eëd8³Ì½-pö>—= cÃÖÇͶ ³3µ§½¨ó¼_ïÏ÷B[WÝm+¬| ?¬IÈëõ~½_ï×ûö”O_À9„ý&U±à)=óƒAõ}c‘®ÞýÐÐý·QOï×¾/Þ`oˆû£©Q¹øØ^Q£÷ð˜lþ—/ÑEó¾'¤·äÄš-/Prå ÉÖ«Æ•”*h ÐÏæl’à’¨‘„3°$g[ê¯l`Ð ØĽÓÕ…ÿ ééyÙýTR€‰¨ƒþBý'Èê?2ªï'€âßf·Ëu?&àú¿=øâ—Qø?¾$ ZDWz'ÿ¨|üðÏž-?ôØ¿nذáÝ—ÞàÕÏ~0Ž®þ±ÇþãKÄfçwÌ÷üçc–÷Û¦‚ï«Ðr"ð·÷Þk8Õüîüôù~§MLñ©-­„‰Øæ1@` €+°­mºmš«~᜶ÁE'¶€·Ùà}¦fÃu|ŒXsâ²C€9[´S€h›0¾lKP2~ÿû߯ùö·Uß¿Ãp¯áÿâí‰ôÏëß"û± xËþ-óûçY1ÐÆI¿BÿO_¼Œ–ÄåËXêÚ¶sÚ:½3°3@7Öi!Üà' ›;yw•ÿ^£áúüÍÊ€°°`õ+€'g‰FîÉÖÿpv@iðR@P¥þc€bO]¾ú¿Ñ'ÿ醀_ï8h>h6½â>h2™œN“Ûiv6Ùê¨þ·wßßo]ø/<Ý#c}EÃMãò ¬l}´±Êo¦„ÿJVð¦×ÕœÁ¨)oÒy\ÌÍ‹ÿï üï,­Üü=ôü7îÝ{ׯ½P7žåóVÕ[UU·Žœüé À$¦ôïшÎ_rà(¬ˆ""å¯TtûåÄ>Á>ÄèÿãË«¯rûå˜] (ÿò€p7tÿOþšK°Aé&Õÿ_/€àt655™Ý&Dñ‡ò’Éöd^fn-÷9ìjoO†Ð +Ðñb@ÜþÑ›ÝÔ'FôS·#£/UKÈOx­%vnÒ'u¾¸0'oñÁôW‡TÊÿ–‚»1³¯“Ê 2 +ZL- ôn§2`?“IrÀ`¸GëØƒ¾®ùßöxµ?V1:Zñ,¶Äb±ââÙÏöòrO‡p^Vær¹ò_R–Èçé,ÈžkX&²@¬À_£òŸ¥ ìõå²  ~eí¯¸\.Òƒy›újS°71ÛJý¬÷ŸC„¶_mc/°Ráú;Å »Â‚_Vàó1:ñ á…4ì€õãã‡ÆÇ-%–ñ~ííÿqÃCñÐ=÷ÜóÜsÿüÐs/?÷c±/àµÃûÅÓ ®Šv݆¼ “^²w—ÙmzUÍ·ÔêkTÄ/½^·Ù‰—Põý°d·àYo¡Â~zç4û§Å&àôo±þçòÂÂåp`»‚¬;…plþ??2 ",àWÍÆfÃõú«/·¡ 0oç^€hÈM€ñ• +€G!½rð•%ÈÀÊՀ̔ÃZÊyžàaʯ ÿ\ýóUkF€jé dzÅl:Ød6K{ˆhF0Ðo]XÇ÷/|Æ/ifö5jqgÄÐ_#å^@Ÿ57à¸ï÷• +?Ø*–>ª¬ÖV»ì~Væ1žÇ ÀÄJ‰ü Õÿ{oýÞÆÁ{éòógߺ•ðÿ‘7 ÿ¿5R5rºªêtÕé®®ŸNæUà_à +[†…G°¯´ïñå¨_™ +Ü—µïegÿV6ýsÆþsàŸ®¯_4€îÿI .¿>ÙÙ¹ øÿðM{N¾^0ññ1gÞ%ÝF£[ +%uºö¡Z××…Ô—+SK]»«V—¬Í“ À… ·ÏÍÝ®ó +À®¹]:ç·õÒVL¾&•4·œã+'á÷ºj‡$½ãÿ˜¤‚¡ÿM¼PÕìÅr#ý³è[-&ÉL#!¿/„ÄWwoªý~¿Ø{¶ À +lŠeô'èXÆó@¹@çò7<ËœòZiX¯%þXd¦ã ±ìà7J–öEw骀åAÀz,@ðyªÿëW¥°ÌoY^þÓ-ªí6ð6`Âüx9@57ÿ èmuÿÕ6§< ;é“ÝÑŸ¹çWüW,|\"ìx%%‡ýK&裤¼¾üµÇî|éž—Þ¿çå—^úë{ÞýëW_ýìgõè¸Ö¿öb?AØ,aZÿ êh²ÿÝîcÞa÷9ôZ­£“äz·Éì´ùºï' + •ƒqÅR¨i*î©È—§þ„ FÞÄÙmÖ[æo¡óÓ7ü™0pf8Ð龞¹U±È;°²Æš+ähbꥀbäÍ€õá,ú+7r–"ˆ Ëùóé¯ÿlý aÙŸã~tŒn³Då€Éè6¹%´.±) ÿk\+ ¯ïŒ¦Hƒ\àÆÆÆ¾¾>±*˜Êÿ®h´g²h˜~©2+,Kæ\þ?.çè<>ð)ºçb#/³ù7••›©\ß\y’ðÿ®AÆ~\Ξ½õÖª·Þà3‚kþĪªªººº&‹&‹ŠÐP8@'¡0A?Îîaþ(À€ØBðxŽqC‰›ÿßU¾¿ø¿"ð + ¯”ÿ«DNžì|ïQÀÿÃÿþM!<P‡6EÒÁ½®=”„ ³«¶¶=//ÔÞj¯MÖºtØ  ãˆàTv!ðíJ‹ß@N`µ£F«×>eB$ Þœ§Kõæxÿ/@jè_ò´R Ã>п…°_n´`*²  *ìAm1¢`~½{ïqGPƒ¿cAžµÆž­à5ÀųDŠW¼)z¶ôW@ÖÀï}׬T.MË¿-;GàYÊ•ä-Bœ9XÎðO%þÕI@õÙ¥ÀJ@xVÝûD:`åÀnyû¯`<T2€ PÝÏWÁìb°-„·ç:»Sfýd›6½Ps5€1dMâöÞýÇ{ú翿祇Þ®À{^ pPàkuÁ~ªkél9Þ¯®"Pä6z±ù“z­£ºlKŠÍ‰åû‹[Ÿ-+Û‚×öG‰Ì~Üë " ƒ€v + 0M€XÀ*ždü7ZD/à:?ϨýYPvvÐ%kÈAÙÊßD"°E8&χÃ+%åœÛ¸ÿž‡¿Â¿+ÞO ô…xû'‹-n“Q2K&£‰†!œNgã&ÁþýëøÿeŸñ3gfPcÏÌôḬ́áhÀŒø¯ŽL ÏtþúÑG— ‚›6eísŠÖ. t„¼‚ ßyoèÜÌýÊ»ö~ïÖ»ön¤ËƳt½õ­[ß Ÿÿ.##ù#t€ÿE »‹¸ Ð)*v€ Cxc‚}¥J„Ÿ<õ'î7Éá¿ å^íû¿ÆVåÿNæÐÿyêzC—ÿßÄWÓ×N&.îP; èö:}ºdFמ—L̹2sºL{’>¯Íb€N²¶–Ð?ƒ Ô™ˆ91 èr]péò¾M?«Æ§ô’Ykrü‹sTÉÊÝ ”h×j‡|ZcJ_ã5 Ðé7wÓ²;Ÿ¡ÐÂ|bÖ!V€bHuYwuuÜ À²·ÿ+F ýgYèè¸þ1½Y +ä‚vħñžGoý÷‡g^± +žW¶^y 1,aá@Î`®öŸ5‚"”`ÀÀÇ%«O¾”÷È@·¬ûc Œ«ãò6 {u\¸}܀럈2ƒ€ð6mßöG€…’tÉ„<À÷‚Ô¿öÁßý ùïïùÇÏÞ•(Àß¿ü¯~öá¼>ðXÝ“ÝØdÔ ¾ èêq7¿BÀA@b2Õè>u5[«ËÊ*¬åÅ"?òçP‡ „–¶0Oýpfþ¦Y ˜¶Î›ßi½ÅzË&à‹1üÊhøD€ëÿ×+«øÞƒ«lPT€•ξ¶Y²“áÜÀǹ»DP°%ÍYˆHyÐ@ ?Yú_ò…ˆªþc8A¿„úŸ>xÒiÆ€˜å–uüÿòg뙇‰ °o·Bu‹F#‘ˆ:J¨+4,H* +«#JÓÀ㟾ŽÎÒÇr¾Êû6w‚ ü殽DöB¸ëçw%üGûÿ €>ßÈÏÏWç«Õ‘‘1bEEhùÖÈ`xXô"-èœA€(À@6Éw€¯‹áÄ+^aúÛtMÝŒÜ8ÐߌÿÿÛ¾Q`b™MMn£9¢K¶g2ÉP&QëÊìB;À¹€$qx’ííˆé¯ÛU›J!©_õ(€°ÔJÄP³»Ýz·I•Õ¿X˜µ ŒÆó´’CûmýL + F“H@åɳ@fàF£ÞL­C0€ÿñ¿Œ*ÿ¸hĈ°þOoáü.ÞQ|%X’ëÂfÅÙä‘%€¬íoÙùô¹S ó¶¸t5þ³œ`aÀ²T¾R~À¬ú@à9ÀU÷.q¹£Øþ/—þ¸¢`+ã¿""Æ࿎o þ;qçS,€v'g=ùÇ*ŒÿèK,÷ˆÐÃ÷â_¼„iªÿÿùÝÛ^~éýWïyèÝqÑ5Øþ´íÉ:d«ƒjâTuDo‹bƒ.šÉ˜ôW 辿ûþ²²ýÅžCô@çH–gÄö[b¿å5À9ûÏ:me@úòÂå’óVúò&<M^Ù`¸ø?qéVÏ[e +@ðo-ÎáÅYÀX¹0Ý ˆÀŠ.¤’ú´œlIŸÇí¶//4Ä}IŸ/ò 9xøÏçpH6*(Œnâôžb4¡* À‘ëìÁîùô:¬…óðÖ­Ÿ!x-Š}X4†ËXO$N©#ÑÉèî¾ÆM²ø¯ì Ø4°5gˆ~wÝ„áÆûMùÍ÷uBÿ§ÛJƒg÷" pïÆÁ[ÿ,þç øç¥‹:ZÐ'Ñh×XÑ$\¸1øñ ÏöñÙ´Ü·<€M¯/›—#€Íû¿†ð¨<ýи©¯¯“Y‡À:_¼©lrÃjxE|<]ç$àvÚCèù!û7ãªÍû—!‡]"ì¬ÍÓ‰À]®TŠ}sÊzØÕ;çj'À<]o& ×ÊÞ?æÙ±TüÛÚ_Hº¸N2þ +i@üª» rõåÄô[è/ @­Äø÷o! +‹qü/òˆ3(–ëÿŽ+´yÅÈ=Ï’¢þg½ÿòÝ5–¬–ÿÖ«Ë1n@ÿ!ƒ;Bÿe`©>' Hár€[¯Âw dÉ1@¢ €øµ[#öH:¯ªø»ë„ý¯šÃªmËc€>|8q¯,´÷ÿISó ”× AÀRbùèÉ—?{õÕÏ>ûìå{Þõý{þú… FðÒ‹‚”yíiü+#ôϦ3B—¨ÚYÇÓ6§ÍŽé¿-ô±cËŽýÅV8ÜÅ0‡<â&@_®þÑ Øéïï–ùcÖù[¬Ö¶¶ôôôMy* âÝ7è¦ÀÿæËc€Š౬L` =þ+–È€×ㆃ-_v0îkˆûñ8›ÿ!Ÿ>d¦òcEf“ŠÕ/7šÝNÆÿ?¡³ôÍÕPæõ uMMQá]Œ üŸŠNÆ£GûÄà²L¾ÓËn€×ùŠ<ñ6—Þ·ù7÷ À Hø_ÊûÏî=ù=$ÿn܈€[O¿ñÖã?@~þñ‚ùÄÊ£Á)u4ZÕ5Ö5Ù?ûþ1s4PfúÞë›éÈÎò_±×geЦ{®räÌ>le$ú L<4}" áfkIVÇK"¼Ã‰LgÓþCy!ºÓé†LõjO¶ë’íI¤ÔÖ&S v!xî‚èý‹E=)6‚èú–§L5z2Xj$ûòðßíØ ¦À^î´».8 ý¼-¸Û¨RÝýý§Œ*}꩚0=ütháÿÇDPCuCµ¿Ìó£ú¯hå€ +l"€5@³¹øX¾“K‹<(¯fÙ_ézN{þà;eΰà’âÿ³æ +¦åCÊ—²õ?¢ë˳F@á\RÂÓ–ú´P¸Wh³B¡ÿÝêˆÜþ·GÄ0Wõ@ûêxµÄ>@.õ}ÊÕÆT@¼SÿIQ­ ì ‡Ç-aaš,)±Œ?ñãÛž{è¯_ýìžW_z÷Í;~|ÏûÄ^ý쥿“sXJ¶?]k‘•LÖ©‰túÐ]†é*o±Þ²ó–ÓÓá0•ýmrê]XÄþ[Eùo%üPÎÓ+ÍÏ÷ï´Þ$@ÄØðÀ7²3¼¿XØ ÿ[³¯j˸ÜÙÊí´ÉMúù>é+W‡•!îü£ø ð¥àß_÷Å}¡8ëÿ!§ÿØ$ɬu%¯ÞLÕ¿Aïö¾‚½ÈÍMÄæèUÕ¶é_íiaáá‡5„GâñÅS‹ö8H´¨;:\¤¸ +/Ù¸¼SïuQ€oútàSy…Né}ïñ´~eéo* ø÷žÜ{²’Õÿ²0?ÿÿ=.8ÀHþHpD?52¥ž¢ê¿«g²§kl²gpR#÷†‹„ÀÎÀ>f¿Ïô,` w +`ý¯\t¥Ðˆä£™Æfšø!½ùnì «åUaU;£MíqBúxH"´—Ì&ÔÝ¡¡ %ÛÛ±û€thÔ2¸]‰‚É?… – ÎétZ´éjL-XdÒ‡zå`ž(„l ¦SºPM(“ðkŒ-îèÿO¨Z¼-HjÁ5©ôúà?!ÿ‰(€Ãçû§:~{ƒ¿ €XYkÅvp Ðl1+×”çEôÌ{J +@`…€®–/ˆÈQF—O‡Æ)Å@7åK‹’¬|Ðéì€EŒ,ì ^ø?q1lïîçòߎ5êh»:’¨G8؇©L¸|‚8muN4Ä €“~#Uáhôÿ‰Yí˜Ãã?¨pŒ[©_xîÿÉ@Ÿ½üƒÛú_Ÿ½ÿþû!+èžÇ> ío6Õ»û_è?ÞÀp7˶ìoÝRV¶¥Â*fAEµ? ÙšiàK º·¦å-yÀþýóÀÿ-;úwì˜ßa½9i!w@¸ãFÿWöƒÍ² »@i(›4žl†ì št^Nçà?[þ‡ÏÓ•~{úËÀ?¸Ïïðû|RÃgÿ›%<ÀF©Àì.0¹½F³ÉèöºÍ=T²@XÇÿ?†œ™ÑìÛ7<6°oq*³þ/F5EÃ3,¶ç. Ρ›²àõ× ŒÙüÍ÷uøÿ~€)Àæ“Gߪ:ytp©þ¯ºUÖÿ©öçÛàˆ@\¢|ºÀŠŠDà¨pÉaÿ >úú–½ûWì÷Ív–~ý•åÀW’šF>3šF8!gÀ1&¾†Vìª!é·9ö¸.©óÇ%)”ŒŠkµZ§C›çÒåÕ)h×eæ.̹j3®Ä\ªwõÝ.˜Ç¦s®¹Ú<öí՘ܒô‹w¿PF|œ[Þ"P˜jÿv(“J%$•ñnƒÑ{7Ý©jT*ø´ÿ„þPÌZ=êœ-Dð¯‹W7ø«•À2! þ-îX üYü_ò(³ÿ9sN\ÃO±@®”ømò +ÀÙ)9N@¢ìóü_VùÕ?“ËòêÀzŽ]…o—ÃÓýÝòÀŸÿ%‘ÓÿXˆ89ý—{„ÿOûìu¾§m¾:½Œ°¥ í<€®€=XÜrþGÇÃa`º×ÀúãÛÔOþÃsÏ=ôòm?øÑ=l xyÇ»/¼tbÉE?àò‘žq ùÁv¼CüŽ-ý­Oìßÿì–-Ïî/ö(¤þÊ{ny <ï¸ÛÚü3Ë~ªü·lÙÒK?ý-7éɸ ðϯn΄ + 9y@r”fN3€e ›døWn9ÿ~©{<ø…:}E+€E¿ÃW À7äÂÀ&ýЛ[àýCïéáØ]Öìv7ÃèT¯ëÿÜ3=qyF3\TTŒííʤ‹‘¢S‹]ô­a°u¥Àçu9ˆƒ6a3 ]ENÖU–ÒW›K+OŸ>zöèÞA‚ÿ»ÿϾ5òÖùoÏ?~\05]¦ò©¤ˆvE»ÆºàD˜™@¬á Ÿß lÞ×Ù‰|âG•%…+Gù•À•þ¦\¶°ò4²úk4€>P€¯ç]xÃ*zU^ˆ@ Òetöƒ¿q›Ü¦ƒ&IÒjC¡¼<"µôP»+áºâ…€·§æþJQõÅR ×®D& *÷üàÍ-ÊéL.Ü>—:ø}}<5×m  ÑØâ…óÏ«gøUÿÚ=Z3·B>›¯¡®ñ†8П)"ä`LruxxàOeÑÞ¢4yûï´Gi¾DEwþ*€S¬|"þÓœô+4v”Ë€t}Î$ †Ó%«RMá uu܈ð\_ˆ"ܧçÅÎ*@¯ÚîãrP]ĉO#L®Ë°–E ÿ‚¬,”ØqìØŽŸXÞ®{ä¹{^úìÕwßö“—ýÿçÏœøÉ3à!GZàölOn™Ÿ‡/óTÏïÇê[O^7VªeÉd‘'ØÃÙí?mrž¥ ;æ÷Ï?òÐÖÀÍz2 7íi_n‡ÉÔVŽÐȶ,òÚ+e9°%-′à/+áó˜$ô‡„_PýúãÚûŸƒåö5Iz#½¸[¼¦zƒp› +L¿" + @OO]zÿÿhpif¬(:¶O}N“L¥RñS}³“§ˆ‘Ô¸¼ à +@¶¼.L€l(Åöœ÷J° ´rsçɪ‘AdýíÝ;HàìÙ7xå?./äQÿLa§ÈTD‘ÀQˆ±Y€pJPÎ(œÙÄ늗£ý࿪‹ù+#Eá?À!3àUgàèëûšž†ÕD&.îìnˆûã?¯ÝÔ#wÃ,ýBŸ7Ä[ˆ$é `þÿªp.%§Éà~Mt’yz³¤…Àdöêub`vpN ÐuÔn,Pù’íyÍ*£·¥Öÿ»LÐÿ”þA=•þt+éµ{ôlt0þWWû1à—C€è«õÿbžXª/ÏÆ˜åJ"P ð/'ø(Ö/·¸ûÒ +üï°zfEè@qG–”{åЄ°”ÄIÓ'ç—%žX•oÛ¬ý¼€ƒÐà6¸u¨õ}Ÿ˜´?M_ÒA€>Á¯A +pÖÕñïE €=8½H6;œ¸` ŒãXècç'o?ñôß½»áé}FåÿKÿóλO¼yøµ’×þÓ‰;ó,ÁÇîßFàÏ3|ÓV(?VÁñì[Ò˜/¼Ìa?2 q;€`{ðìÜ??¿…»ýÝý®à ÇÉ?5åÙiÀòå0@Ù  >K™dÀÖÖp€],X8è’¿º¢šÄчäù?z/ Â_2¹‘ +ê5šš½Æ&¯»ÇM/®`ÿô:’ÿ @Ó3Ø÷·÷®½x«J´Ž÷øñãùÝùÁî‘àTpª;éŽ@P3À–žÿƒÀ +À)žd €YÀLãÀ@__ß4€œ¿+æýsêþ«Ocã¦>€?¦ +f5ÄÎhFè¶ïk{6¬®×Dz?«n1N Àä5Ýn¡¯ + åû“ºÚ!ddævÍÍíºpÈŸ’ þ…b)à"µôtôã+Õ˜ˆHzSFN ʲ€9Ž$ +Jš¼ú!O2 +Œ-*Õ<…(§Ô?ø ƒHÝð4Pȇþø_]/óc°µ K[‹‹™t`¯†+¿ºRVLñ­øµébºN¹–.‹YÞP¬TÿÅYï!ÕK‹’ö+:Ë$À’Væà8¿J;º“Fÿ¨šŠx5a½ºÛÎ b«‹ Ço«óaûÿ6øœô-ìâI@vÔÁ€$àùÿ}ýþuH ‹q€0"‚KJÀê‰X:ü̆—ÞÿO'^z÷''î¾ÿÍg=óþ‰/øàmñP׿vxÞ:Í'0}>#l·A€²ð[1È&û‰x¨üß±ÿ–-‘ìöÿù‚ƒÕÎJãJÎår  X}Ù&–…-òпhýc*ðüò3€øäñ ¼¬,÷—QýßòÅ©î÷ICNIï0›õ&‰ßDoG¨¼^fn·»ÇU¯ãÿŸNŽE#‘øÔ™Æ#»gýéÚ3<#¯P€WÆëˆAüOå`^týÏ^ÀÊÎÍ»OsÖÏé³§ÏnÜKèÿÖðÿ8àÿº‰LAQìæËTT¢]EEJ LVÿÑ€€)þ1œœõùgþnÊuÿåxêSc_gûg‡ûgŠºú¾Æ§`Ãj{IxZãþDÆ~°ÎíŰ­Š8C¡¼P2)F’ÉZ—k®Ö•™s]˜ýÿÔ_ñb@Þ ˆ” „.17çJ²Pk–ôz)ë½]Î ”³±S¿ß§*@ äkð¹ FUѨzê)=ò„¾Mد5k÷hõ€pІ?Q€¸ˆ€þ«(Žñ`‘\ þÀ’ei©¾žKýÜfàª@9@¼Û}ùIxÿûg­yðpÙ{§94€•‹Ó+=ô¾ùñê$—. + £A§:JÀ¯† Èσ€˜„öÏÀæó±(À¤ÀæD#¿[О´¥U_|J„0!v¯.ˆ®,ãËáßÜðÌ'N¼{bÉgžþ¿ò—wÿ剟œ8qç‡DœPÉk[ŠçÏ#ªžb~ô¸çà/ =›{Ù²ú…y [ÊúËÐþY£ƒ¼*Óª„frÈeŽ ìLË@è34ÿcaôçþÿùÀç×öÓrÜßà‡|¡xóÿìÿzŸC/˜LF½±*þ ŒÞf/ÇõôÔƒëúÿŸþc®‰D¦Šž< ™y…À@ÑdVØ´ ;s w¯¿ÎûsäT~Lÿ•>ÞYÊ@çfú8:89¢f0¸ñìÆ³gß:ýÖ[˜þƒ@¬êîðÇùD‚ È*ÀÁý)Èþ ýc“üo)Ê2^U„3L~Ï—\‘™¯\ù>BßÌn~Ø7Ó¸OCŸv~­ÿ†U÷ŠH'ev7¯0™%›üyºŒê’í:ëBÆE …­ÀX RV󗉹„È ®µSñï&ø7™ +¤T¡’,ì¦?áÄÆï½F­Ôî“0è«ÒëkØùÿ ùAýƒú=Dü;þ«¡Të” t`GùÒÒ:DXl,KÿY33_,Ëѽ¢ˆW’€¿¼§; TÏ,ýVÿ;²*+²uþø§³‘Y@ºd•®1¹˜AnØjºÅHC¿Æ>Ž€^K ïDÀ‡;§å¿I@NÞK‚Ç®óÿiö‘#àŸ`C8À„|Ëø¡žy䃟ü/møË wÒÇÝwþäì¹óGNœø‹7ÇePþD ¾|¹Hÿ—aDèJv< Ü'€ì€'°ÿþVL«1ñçŽONhV@IºÎ¦,SÔý–0[²ÿŸ¥d‡yDàsþ±ØþXÙ¢Ÿ9}C¼!g©O"èwHfÉ\`Ò«L*£+Â[ˆ@p»›{¢=uÑàzý]N¤«hñüL㇄ÁE==Ec#µË»Ò\ì'ôx\nþ—b`ó}•ÈêÄÿš£ƒU#Ç»óOžÝH€%Æÿ~¾°­(ÞéSSÑHT¤ñø_‘'›8¥>%¼åÌô’óu``àZÿW~‡è‚ýû hº¨îïCòŒFÓø5?ø«L\NwdbýN³ÛlrÖt„g¨=”Ô%kÁj3ºÌ.Wf×\JÔûssb %°€Àháh*©u»¡7׸Ö¦r×ãÊa‚.ÓË5&c¡À`”ÚÛuCf7wÿ‘Ù.þSñÿ ´Ç!Ÿ>Õ ~u\„c €ˆœõ9 à7Àÿ¥kÅõ®hý{rÑÚóUfº<û úg­té °Ì²!D¢üÇÈ¿˜{Ä0¨ˆÈøx•¾/\n›—sìAu$HÕ“>` `8íN››¯.âÃVv€ß† |âtÂh{0 Þ¨±yÂþ0'‹kšnèÁ?ôö¶§Ÿy÷ÄK'ÞÿÏêÿÁ=ÏüÓÓ?zóµ7lxæÍÂb’°ÜjaÑ_>—Qø§›& ‹mi ²ÿw`e|¢éAeþ`Y÷7Òa™Œ{VÔþBÁ +ÈCàQ‰z,B ÌÛÿXùçúßø¼]€Øà}®õuœà? V#üq¢F½Ù€´PòÂ^3á3MXÇÿë£L\ZôŒœ*š뉎iF‚ÃÚÎ>Ùë?€^Â÷M›>ÀW9ðèŸÍïUn®(-E`içÉ£»GÔùù#DîÄ. [‰@?€îün:ýÝLº#Sàj¤F9•ÕÿÉ1ž à/ôC@à‡1sBàÀµ—üdEÿM° ˆâ_CËŠºúèëûÚý «ò5ö´é ¼ snÉ7¥•ò†òÚ“X +PK,‹3.tû)äÿÉõ?ÂoÇ$‚ üKÛ+5u“©¬wý…iô¡ö”»ÙèýQ¯Q’|uZ“±ÆˆÙ¿§0Cð Ãñ 2ˆT°jØÿ«ýl#(ÿ[+ŠŸï(ðü¯G þ€ìú[Æû@ôçìÌRƒ¯6ÓM°?kí(.½„@ PRËÑúËÃå|cõT-Ñ—çq¥÷ÊU»Ç4líçúŸ×ªíÂèâ¿(í†þ|l ´ûˆ „ÀƧ˜|ÁsÃþ©„áé07ÂDˆ” ·¿øØo>}çÝyâÄON¼âÎGþéͧŸ8ôÁ3ÿö£gþîƒÃ‡>fÿå‚% š + €p‘;ˆý%*À€ˆÚÏyûAŒºƒßŒÈ™,—#,òÃ?gþ‡Ã"BQfça€ÝL íš›0¹;»¥"VW44„|˜àôä5ëÝÈþ3c[¨×hBP¸ÁÝlj†þßT¯ëÿ×ïíAó¿¨h²1HT ¨ï¨Fîöcá.]^/½ï¾ÇñUNçÿ¾Òßun~osåï*;Å €Î£GO¨³ü¼õ,€ï² _àD`|‘.Bˆðëþt;†Ý„c(Þü? +À“§x$@ƒÉýΙ÷ZÐø¹ø¿iÓïÐ+åçÑ>D +ô5VEÎÀ° +ù «ôQÒÖ±C×uº%ÉaÒ:†BíCíIW²½6™¬Mþ»j“.—.̱¬OøŸ¢sÁ…)n¦Úé'ØáJf—+ë2Þ¼Æf$¢ÉgT™jT"˜Ä€$2€ã¨ÿ!bP/ˆ=+Þ¾´ýÈ’Lp––ˆX”]½Ù¸ŸÀŠlà€ã'ÒíW%ÎâųųÅL:䀠À`@VPïcPvêÕK.ïä$`´‚v*þÕubPÍ=JûGúì¶$Â{âp ûNŸÍŽÞ¿-< pC[¶p¦‘Œ—î8·à 8tèívøíýø¯¼öØÿØpçüèÎGž~óͧ_|×Ç·=!+qÏ4àÒÂå‹—/Ša€0¡vòb «õØþù-[ö[­ÎC×bòmBõ áôê³üOüÄÏ^|ñð¡qýJ&3ÿ=—‰0øm™@Ó€4 ëülI,ÛÒÿ74Ò逰bÚo‚CÓB1°œo ú£ûOÄáü•O}¬¸›;Š+ö·–źEÀŠcýè>Çÿ0©Œn#¯ñš +¼-F¯·¹ÙÝÔä|r]ÿ¿ÞGS4õì&¨m<^5ÐÙ÷ú¦Dûõ=> {þðÉ}¥¥Ÿ +ü§+²ÿ +€1€JNîÞÝ…ÄíÉ£'OîݸWVòçþw8…ë8ÿAÄ,$ £¤€ˆÉÀ±ž¢"ÂúSl ³§D^Ïj:û–—¬¤0 ˆMB}3'¬Æ}_ß°ºs•<êVñ+b¡mNgÄá³Û“Cyííðêˆè2®LfΕI`01‚ )ñ7'wPÿƒ)@h§ŸcÓ/ô’vh´0g7 @OÁ:g×[ 2z-°ü"ÿGkÖ?(iµR-`“€œD @ÞŒM@Ïni­(?‚sàÀTþTû‹ký5·õÉ!ÀWlòa@ñÑŸ¾Tì±"{@äÀ.uyQ¹§\yõœû2 —]€õá’Õûh›§Ú¿Ý4œN5<"ˆ[û›½á?v;" üKNØÿ’Ç ȃ€×# øËË %¬¤-ãt#0|è ‚ã‡?öÁ›Ï<óÌ#‡ïÿÈúѱCÖ'o;¼mÛ¶J–I€Ü ¸xù28„±h'±€éiÞ°eK¿½»{4®`"ˆá?M…¿ÅÒF7ôÐ]‘X<+GwutT´ž‹±Ðç÷ ù|’Ï1äІ$½ƒÞ3´* DDؽF¬õz½î_›Ý=QõŽ…õÇû:‹—4žã“G5gn9Û¨éTŒý¥B`õÿÓÇ_¸¯tsé§²ÿŸªþßUn¾þÿÊû:K;}t÷¤,¸kpãÞg7V½‘üþãóÇûß9wûEã‹‹¢øÏ+ jÀŸ‰Œ€cEÏp4À‡b6pŒ#5ËÃY#ÀÖ+Œ7)àÏÝ~nœ,šá€£«åaß°ª_ é[ú!öÚ⾡P(”LÆuÉÚÚdRž˜«M¸°*8ãÚ5—ºývÈq€ðË.…¹Ì® ©Æmv:M¦ ˜3nïM\< ò¼^•׈ЯNÿE°ãAÉñ ©‚Ÿ°[€ä ?áÅèv†ÿ%ªÿ—–Ê—¶ ô¯Ç`½g9 p¥ío¥1PN¢Ë•êÎ)³¨d  À*v° ¼^n(õ½¥¤>Íb)âÄæ*~GŸïÏD Àè´«ëìN5„}gÝ©Ãøwý}vÉé³9}2ðÛe Ç!àþ›EJä¤À‰Kº¤¾¤„ƒX BðÑ¿ùoüÛwî?|ÿa:÷~çLJ…?ÎnX)°%°MÞ 0½SˆýÁupÍEÿé@À–²¿N ?*ïŠÖØ9x㎸Ïçõ’C«ç ðþ=å5`O˜Å¿×`h6ºÝng]0|iý‘¾€“»îþ¿5•}¥¥ïu(íøT€¼¿û˜tV xosé}¿®,­|¯óèdÕiu~0¿jðèÞïQùÿóÁ[Ïž}‹ À;ýóÇϧšîÅEbDD@\"v1€Ï ô`;ñT½ÂûÍð‡Àÿ±1AxVpX^¤™)Á9"€¸ò¨ŸX%Ì«°õ§¯1: ÷ßĪyùlXí/Š‹mûƒêˆÝ +ùBÉö$Œºö !ûœ+ƒòߥÓÕf.\Hq ï⥀\»v\˜KÄâZýA,òv'S½·/g…¼¯¤èÏ\˜Kµë›ÑxÊØ¢7M5lyPïø¶CÒjŽöÑÔh*5Zá×ùî÷—u‹ÀØìÒ‘#½ÿ08BØÏ  ~©~¥Ò È~Ê­ºùcñËÔ‹™ N¶ƒƒˆåmIJ @VÿEPŸg!(-€U\ʤ­hþ£v4@õ!8ù׊}ˆö¿ÓÆz>DMà°û¦µmyPD—ˆÒ^lJ[ö>4~èðÛ‡ûÎý÷¿¸íð³Ï>»íÙcO 86.;DÈ(€8$ Ð6Mè?åt·cÿ:b|n191ñ¿p –#–ô­èøáì¬ÜAnG± e¡xµä ù´>‡"`‚À¨G0¸ÊPp7 Fƒ×Ðâ66{{š¢êùõùÊwFú:OBè+íxïñR†~Fº+éÿ÷QíÏ&¾‡ ³óèéª.Ôÿ#U§÷îÝøs^|v$ÿ»ý`8Nõ7àqQ!qùv1WH•þcS‚àÓ¢}3Èè?&@ÏfW4fá_Ñðû14Àû~úf¶jº†ûVÓã½aõ¿$ÂÖn¸t’¡ÂÿPi@:‹Êþ .øtííb$1?â“Ô… .—k±ƒ Ä#RÉ\ã5…RÙ4€9­×è™@s³Qåuë@ž4ëõZI+=¨Õîq؉%¤F ‰W”ùåÀ–Ö ?×ÿG–”Á…ñ}€ú+VܯøJ,øã a+£¿œBŒN‡³ Àca²ãOD‰9@”IõaΡYÅࢵ[m1P‡)@ž„øow +±ÛœvöýÁèdO‚ +°û‰‚ؼÿ¦îmS€¼áSø?Æ7K R²í;/ÒÙ¶mÛáY‹?"`ý䨸¸UNfZIÀå‹JTlÚj½e{€v¬ƒÐ— ççÛ”ú¿|{Gy9ZdÅ£"¹£cÿlk¬€¯ºaÈçs`ÿ¯Ö§7™jÌ5ª¯ÊX Â’PC‹É@õÿ¼ÞfcOSS]ÿo×ÚvÈ;‰ üÇ-(›°€>cüM€ß÷7o®¬d/`çѪªªµúøÈÈéÓg÷n¼õ¬HÜ1œÝÄ⢀+}•É$2rc aä{Æ¢0ì;øgs óÑ@b`·ÀV…4²êϹÀÉÿ}ά®G{ÃZxI\ºØ¶¿Œ'uPý'ãHÔ â®LâR=ÏÎ@tæèW3¸Î¥ü·ÙDE¾”)›u&ossLιôF£Êmvë1ò«5™ÌzS‹äØÃ€¶Xaªp´°p´·ðùÑÞ:b£²öS~ä}Q~`‰€8hʯ4æî¸2àOyp89ÃÇò$ ¥œ'å (þ<PÂã€b‚Š.«™ú± 0¢ÖÙ#"@Mp®¶×EEõïtÚëœöˆ-B¸‰° ÀécP'bœ0þ;#솿Žÿ VÒð,L(ûƒxTýÐG;thü‰ÃOÐ'‡ÿÂãññ0>d³ Àé +.ë|ÿü±u¬ø +§¾¾¼¾œÎv‚ÿ*ÿ!xè“sçb‹œß'ì9$­Ã¨’ôz„‚Ñü‰±…ª£Á𲊀ÛÝ]Ÿ¼±?ö¿> øïcÀ€p`àõMDäÔœ÷6wÂP ô¯üõÉ“]#ê‘‘îüàHÕ[Uƒw îÝ8xö­*àÿwçŸ{g ø#üOÿ3*û3©L"‘ʤ1?F_²,`$‚„ !Ì ôgO@ÏØ‡lÄ` ëØ¼©‘5>¬ÿôÉ…?ã‹Æ­`«íÁÞ°V^ikÌ++Ë ú÷gtµ¢\ºöZÔùµíäú( ‘|!1Ç€+ãré\s…£:­Ékt»‘ŹXêÂÁÿà¥3'ÇfÜn‚~½IϘhÑkÍÿ¡½4zG{Ÿï-,¤›í½t”êû‘YúèX*§ Ûþå@à€ÈI +dmÓbC¨5‹ÿ¼‹XLÊ+Ëe¯ŸrA‘)õ<^½1@|ÚÎ!  bê?¯­}¤þ°9#P"<þÔ7ÛœfŸ³ Qô›šÄ`]ðk"JK`0=­àz ÆÖÇŸxâØ¡ñCŸúèí‡è B÷ý +q€@X,±ü¶D¦ç ÿži^ Ü¿c*¾,+á— å::f¹бÂÿ2ªÿýˆuè}Z©F2}ßhjQîÖ·<` £ò Ðl477©ëúÿ}ý1½±?/Ê!ü,íÃ$‚÷‰°Àõÿã÷€ùàäÑ““ê|õH>FªªÎîÝ;øó³gEà;°öŸ;¾ØÏåŒ)›3Tõ è‡Ø~!2Õ3å©Þ0V¤9érÀXOÏ`P36<†ü‚SÃÄú5ÊøO àLc£\õƒÿ ýécõ=ÔÖЫÂÓ‹ùu™xÆT@.“qeBÉL"Óž¬¥"_©üÅJ $cT¦´¼¸ÆX@Ðÿ +~Õ\0$–Îi©üo¡Â¿ÅTc2bûW‹Þ¬×"0$íñébxqRÕ?JÐß+ΑÞÙ#ŒþÿDŽ”Ù.¦Ô/ÄZÞÀ•€œ$y€÷ÁþÉŒLøš•0ÈfïϤ•>]V7˜GZ  >j‡9@N;¼}tU¿6–úEÿŸ.M,Øš”@@D  íë{íŠåÁ ÙõÐ÷-Ÿ¢R¿¤¤dÞõñC³Ž‡Û‡Ç?Ù9žJÂá´L,mži˜\Š/‹þ%õ"“ @ñóŒý³Ä˜+ÎÅ„5@h8´RH/©Bz£Ê¬òª¸ð7ZÞUѽCÍî¦õÀ›púdøï„°‘»œ H`Ó§ÃPúxigieiåæÊÍ÷Uvî=Ú•Oè?r|*äôéÓƒwݵwãYlüîq^¾Ý?î\ÿ9VÿŠíŸ0?U˜"  [>‰L=€èT$)f¦¢ck¨îïá”HcÃbSàXQ»‹ÀˆÈøf+–þ‚`寀ÿ‡mll\ô†µôªXHø3~¿.©ËÐ¥Ö¥Ó¶gjkáöŸ›ÛE…? â×™»qÕÂ/q%R½©ŒÞh|¥æ£×dl&à­q…CF·Tû©ô‡Т•ö@ d OÐÁ‹côùÞŽ#£GžGå?ºªú²ßYÚ¾D<`I,X‚ú¿¸Êè¹úÖ¯¶àóS€ +h³ò4Àr <€`ŒÿõbjjU3…ç9!€ìûüà šû¨üÅMþ†T'Ì(ûmM{˜0ú;Ùhùz_½ˆ ’C鋨¼‹¹d<Ík„ÂiËø¸õ“Àx8L Œï´ÒwdK@Éx@¸Ï·ôøÀøßˆÖÿû tÿ‡ÞºõáÆÿ½*æ këU‘¶ì§'0q.á÷»üÌÄó|íPú‘û“qe)Yp¹¸%€¼ ¥ +{c’‰Sݯ&âó.m+M8Z¨w›©ú—ô+›ÏÖšJ¸\e~zÝŒŽÒG/ÝníèEá îyöŸS€—'×Äþ•ß·z®K?‘Dz^ÀŽâ+$€ó²ÿ¯ž³ÿêKÒiÑ +H¯æ!@€iÿv{Ú…óÏŽ®?@Ä&\NÔ7qßÜdÛÓdnr6ÙšXÿw:eð5·n•Ñ€$¯˜(™H3%XÀüÜPÿãÖñ –ñcÇɽ‹ËøÎómˆ¶E+`#þô¡ªÇµ^xÀ³½c´£b¶‚N**Zc‹pöúªB>o2i}w´þô«ŒïâÖðÏ~elnîiR¯gÞŒsib èâ0 ûJEDà{¥› þ;×ù›½“êü zdqDMø€»oåÿóó­çZ[ÏQåŸZ¥B€Øü—’á'%û"ñ©©©d„‰8©äîa°ç&ÀØØ©}<P$ÆÐÐhö훡BŸ.[·ž +ýËoݸõa†ÿ­[Wéã¼a­½0.[:b±D,£Kp"P  Ö¥ÛÕ^›¹àraQ:™²€àèìBjö…Œz£—WzÓ)o´°pNØo•l$ „pÀfãàD*‘ñWûËbÀ€ç‰ögô£òç5ŒÿKW û®A–]€×§à/Û:D <°T®äýX П.©ûÓ•ì¹UË÷ÚºÕvŒÚÙ÷_±GŠ€B?Â…?]›œfþk’!äwÂÀ2€¨ÿé6hî\"–|dM@¾¿Pò1v +¤ÃÄvZAøjµ~NdUìõ‡¬ÖéÀykz$®­øóàÏÐ_¢ˆDX(ï(åŸkr° ØÇ1ÀZ¬Ô륓êûú–‚;T†»½¨ ïzÿ +šMfµzǺà¦5èœiìc<õHÑC@`ß§H ||`siçæ_WVV–î=Y¥æOõÃpºê,€½?Gàwçç­VÏìülÅìèìè9hÿTþBê‡ù;Ìz å6l"ÔÿÉÈTM€¢S,À@ É<—E¢±á}`gd  &€™NfÓ¦OÁÞ:±Z•Ö kðeqÞ3ÛJÀ#0’B.Bÿ´~—®–Ø@m"=@—ɰ¹ Ó] ïÔÎöÎÅõ°ð! +0D¼ÀÏ cÒ›Ý-n“Io2›%I‚ÿÏæðÙ| ºDâ[eºjŒ±Ÿ®©íÄfEå¯,â-@"È#kk4®ä×­šˆa-€ìäP ü+x+ð² Í‚ÔË{èW9ôGˆ` 0ªŽ:o‹¢’WÐ_¸þþ‚45AØ#´3XçÊX¼zJ·…•o¬ò‹ÎÀÇ %%éÀ'ÖOv°·Z-ñÛ~¶íX‰tè‡õ–u|¸’[¡ÁR²¥YP²Ü(—€r~ælkkY™ŸÞI| ¿O +9ô&‡Ö¤RµU†ºÐù‰—{¯k€êÖ€›y¥Ÿv:Í OÜñJ@½×ÙYÚÙy²³ò½ÊÊáªüHþȹh¾,ì„0 vgͶÎÎŽâÄPûCÅ]6þe[²@´ Iëÿa˜:Ø3Æc +ÖÌ c€ÀÔÔÁèÁ±±O:µo¦ +ÀÃð `_`#ÿ}þ¯âxÚüQ·x*b±˜ßOø¯sùó´!n¸°$ ½¶Ø€®½½—ˆ\ ¹ÚÚÌ®Ú }Uø¼ß¬§êßÝÜü +t“±À[†8 —d2»õf³©ÅíÖük÷ø!¢>;Gÿ%èm¢,–üŽ™íÝÞÛÁÊ4ÿ—p—>oê/à¹Æ€çú5rg‘nÎŒzV¸äÐßz‘þÇ +€Œÿ«Ú8‘nëW; ùÕN9È­‹8³Á$3•ÿtöHM’߆s“$šMJ@оªÞºV|Â`âc‘\²¶|2n=vlào·>à‰?ÞöÂÏþáÉmy²³t°ô§#ê`´;ddòt• gGò¿3oõLÏâ0þ§ýcþê§rË+¼ ΀j|wÑ+hØóŠ }¬üGI `êàXÏ)Í©}ûD@„AõÿÑOŒúñ¶'~|xǶã;ž¼í¹çž{‚Øõ›°{É9¹`e@Ü,Õ—/  MOñìþX«¿,î÷ùü!LèÍZ½^oPéþÃuÿ†&UDÜôRÚvqbýÜd +p†êûþ{ºÆ`¹ßÔ¸i t¦ó¨fø¤æèÉν'+'£#êªù(;Nï$üg`oµ‚rÝ¿˜Âg…Ÿsx0!·âü‘Œ£ì‡÷¯ð/hö! úa÷Á):CÄ>­¤JÒŒw›ï¸Ûpǽ†»†‚TÜ«ò¨Vp÷4©ÕëÃ_K' +y?$Ìöô wÎ ôuÎT wuEwí{£ïh×ÈÔdwP-€Á³„ÿ#„ÿVO`ɳ4Û1J5[/‡¹¢üïEÇ¿W´ýåöïJ@<‰t`¡ÄãQŽ$à§ûƒÑ)|v +ÿ÷ةŃS¾¡¡©¡¡_ŽA˜iüo}NÀ‡×ú¯i@ "–H$2‰Œ+áÒéæ°þ‡=íy¡ödH«¥[‚€ Ðóza—‹èIÎ8ŒÆ‚‚—½l4Mÿor +UÈaÖë%­ƒ= >_C¼Úßà'üÅàÌbø;–:DÇ}¹ùï¹rÝÏÕðo_w<ŠWÌ2%±vd³€b@0€žþcì_BOÀªžâ˜ªþo“wȪ¾ÿÙ`æk“¹i­I‚°Éf37™™ðï&© ®ÖîmŽš­\Ò„ûô<¥×~k)ÁÁ¿=~èŦï_µ¯¡!Þà/óÇà¨8‚1ÀŽ#³Ø'2‹…b¨ÿé-… +‹¥l|™>Àõ¯%”I@îÈ€%¹–V{ßÅ Ì«#¢ü¿ HÞ”5ü1äKB¬@j2›÷8éÿ¿ tÀLWüÙ¸Z€,¢-,ÈŸaB€‚jiVÒåãõ–·¿ó£ç~P÷HÝwšš¿Ùø¿ þWwV€¿bÿ+‘)@¹…%àçbþ²ê8ýÿw&kTèÜÑRð€Ae¸£À`(Pým¡€à¿ÙÝܤ~Ò3±~¾60£á-½=Hà‹Fº#ÝtÔÃÇgvÿ´+:‰VMvMž<:rºjdäøñùY‚ÿ{ä{ ÿåÏz{ •K¡BXÈP"ƒê©îÅ(Ëüу§†ˆ ENAx%JEý¿ ôOòïÕìCܯ|JÖH‰µ¶ ÀùŠXÏ*û9±0 û_<”räi¡Ð7j3¸ Ë$k“®Ì.bŽf“»ÙÍ#Ì’[Ÿ:r{jnÈ ýŸ®6ŸÃ²ÉÀ£÷‰²Dì[£££±oUˆe"x9"¶ÿ` üêý27È*7ÄÄU¡,”×xŠ m©£ÿ%ki“yx^m§êŸí=M¸ `ø7sáÙŸ3%B~§ùú†½sâœH@Ós€ÛÖ„›½0û§³š,È•X,ㇿówñòyä‘o:\S¸Ú ;Àa@KòÚvÅÄãc±xýˆW‡|’çWé%tÿ\€Öÿ½¸£ÏÝëÀ×O.i:£]cEEÑh¤h[}ãÃ;4]c#Qͬ&ZÕuzò§»Gÿó÷Ïz:,Yé­…½ä±_ýS(@ö») L )(¢ŽäGã­QŽþetê`d(2õËEx£§ÆN½3–D¢Ñ…1ªÿ·žÙúðÖ……µó»¦ @z¶5á_§ãâŸx@»Ö"Ð +…ˆ8ByÈ „îÏ'ƒÍAXD'©ÅÌ£¿Ñ¨×»%³¤ÛžÊ8Ý„ ô9bAéø¯öëÊüeÜ S ®ÅåKò€¸\¡øN#@>7¨•Ç›<2à} +X{ø?qqºßiþ?–ò£NQü7ITâã49%ÄQó&„ÿ’Í-BlÙ$àµ1À%×µ²7pÅ70phÇ‹o>ôÐ_lXïE+,`ášàJ + “ÙPÁ$¹£øóù|HýÒ×è%“ª@e4ü?†‚;TTú ^yð}ðk§—43]cQu|€D,¶í)êªRï›]’^X[Ïp›U-6õ  IXþDg¿‰˜šYþ ¨§ÿfBþ&³ónˆ”`bö`ÿyû– ˆ…•³‚²A°Ä2þ‰uÛþyÃÄúÉ>2×` +¨_I8ØÃ,Å­ô#M?^MÕµ$©$•þoïF݇É`¼WeòRý_Pàõš¬^_¿°:NçL|,G®_lq¦~}3³G£UÑ®ª®I*ÿƒùýïÌÏv,ã¡°äVú……¹àŸsæR)XÆR‰ÅàÔHw׈uúTÄç=Á‘$UúÝýCøtêÃ`~æu÷Ð?™Šœi\ƒåÚ~A|€®$ò~±"8éòBÚCZ0€¡v]mR—Ü•™sÉ"€KçÒ% $â¡Ùm4MX,I6;÷HÈÿqöÛ€þÕ ~µýÿ˜ÿ[¬ ú¯hí(?s„ ·”bOÇç+i€õÆ=&bÀ#g["XÎþûx=ÃÛ¶¨jªü£MÎXúxº$@úbPBÏ_îÿ£1€1À=ì°e]ƒOûw®±ÿù…w27( býÄúƒuÈd†tM  >;(GàÇ´‚52Έ•5 àpHZ“^¯/0¨Tª{ ÷ª Ú^Öˆº£u«ØDòS43Hõ[\ŒhÞ9U¥®šéôÌtE«ººº4ïtOMw·Î²Y[ÆÿÞfÿ?pPÿfˆÐ_ßÝŸ?üÆùËEÑîîx$>µ8E,`jê–_2ËæåG~‘—Ì$33š}kS’[Û`i–@&¡Óaä¿ÖáHîëMÚ¼öd(rh%¢¡8Q¤\—B`×@Æå§?éëÖéB’ÙI@2;Ì’ä@”LȆú¿¡ÍA~¹þÿVl´âùŽÑŽŽò#Ëà/Ç~Ñà +p”{œÿ=b|·Yÿ/YsOqx:©‹ÞF€å¶ô Ë¿­‰0þGô¬íqš‘d³¡€A@'4XÌ b@]]pÍ +¸ ËáÁ %áñqëÄú¹¦°B ¸Ò(Û°1»˜~>Lt>%««}RÈ¡w˜TŽôƒê^úFÃßî} €ðß‹%ê ëój:33‹ÝS#»‹ÔÑè™ùãûþ«¢“»ÕUÝñùùs³ +þ+ðÿ‡Oo"Àâ¹î‘Ó'ÿ϶Kïœ +Æ» úÏMEtË/3™E"ƒcÑã#STýïÛ·oÍ>†k›¤+b±L"Ææ?]{Ir$ý’I¯ÍËkÏË“´TÒH6 1Ø¥Ã< ö¸ +äÒÕf\ Ë•ÀlhÂgv:$*þÑüç @>„CýçÀ2¬  ¢£cûö#Xx€.2ôË€—{:¬×6¬nè£ÂS‡([ÎË»JÖàsb Q€&úè¶ÿ&öù©™9ÿ-ü=Ò0 ð4&v ° @yr­€…lW@|I `ýÍÿó©ÒDް° +,Ôs ¢‚³2‹g[+è'Ûo‡À¦—$•¯àn#Uþ˜ü§â_Up¯ÁËk€Ü=Ѻ`zÝw±ê8€f÷ðdtd¸±^3Ü…£™ïÊïž:Ÿ•ñ_öû¯ ·cÞësκI-.žË¯:»ùÿø÷‰‹3Áîî¸=ÒßÉd⿜>'§Æ^ùÛ±è¥ÓÚ™™µ¼r€Yì¤:¾]מÑ9ZÜ-ÚPµ^jO¶Sù?¤7ý§Ê %±/Ù xa.1ç¢?ÃéÁJ}Ëg6Q é0;lDB¤‚ÙØàg `Ylôy%àÀ€€åÿ?·ú·æŒÜà‡î<²P^«ø?ñÛùˆ3€Ñ&hBhâØ?÷=M{PîðY@{ˆÀ è„@Â4þ‚„ƒýkWÁ]XXÞD `ýÿ ØÒmÅ 6ÒG+€g¶¢8ÖZ¡+kh(ÃO¼YkÔë ’ê£Ê 2p0n½^7;×ÝUx.ifÔcÃǧÏÿ'5Ç»‚ÝDì°ôùHooΔ_üçÞ]Í08—J%GFÎV¾õñ¥¶3Ñ`w0NOÅ3‹Éw<¿D>ð‡cÿ…ÿûk[ZÛ.À„Ž“ÿÛ3™†ƒn“Y+™ôIL­Ö‘¢ Z—œ 4皃 @§Ós!H óÛ:øàöÙB6@¼ æ¯íUàÿH.þË,@épím½‚¬tÞðÇÅ#'„ Þ²²$ogYQ§:*¼ŒétÌf›ù‘&Žÿ3æø;ÿû{DÐ3÷XPׯm`ËÞ­+ÑW=.9ÀÄ5WÈ …°¸•©úlGEEEY™ßWáðù¤,7šŒ÷ +î0ÜkD ÀHðz½Í=Quÿº°J)À¥™Á[Š&‡'' ÿßéR÷O]^ì˜Åüÿ¨<òŸ[øß.îoÿ\ +ÊÌÅ3VÔùù»«þÛÅ‘ªÉüHþTp*Í Aýóñ¡$–ÿý9¼Ö¸™Ø3Ëø‰$ð:IoÒ»[Œf_(Ô +QñïóiCCyC!G¨[À +Ì¡s~P€¹DbÎ劥\X‘ŠA DPˆGã~…PùßÛ+—ÿVXÿ§÷úòÇ•®¿›ˆÿ²ø(k7Ò;ûíNxœM=MQ˜¥&LøÙÁÌК$|ʃÿ<h~DX›ÄÀgÿ †¸Ö±ÿ ÀÄDn6ðŠò€‡ð¿BΚ­ˆùc¾X5q~­dÖëM¦•Šªÿ–{‘þcxàƒ÷TÁ¯¼Æžž:õôúc½ŠÏàÌî®ÉÉÓ3;'ó»[ÏÇŽÓÿ9ýý\ø—¯× ô¡ÿP2“‰-.vww÷ŒÜ2ÝÓŒDG"‘ó³ñx2~zd·æÑŽ?‹Çm€óôìëtíIŒÀͧ2¶HŽö6™7ä û!­6”§Òæp]@h oN`7}™àœÀ¹TÂ5—«!S£e!{µÏ²£ø¯Ö••ň”Utôöfc€s(€l@ý_Ì]E@}ñ4Þf$få@}xMù\œÞ¡Ž" °§ÇÝcnƒæ&öøãö’ 8l< `Þ#&é{M’P ÔNu0ØÿñŸÁì:ø¢ÇgÅn€yÀì ÐQQÌû2™œóûbŽêOoÓš´Æ‚–ôÿËûÂÄò !ÀQuÿúc»ÊOgçiÍÈH~÷ÔeŽlïUÒÿüWJÿÜ‹€ÿ`n.sŽð ñÜd0x©+:ÖUNõÏ×Wi4šËNJÐ'õ³‰²8á{H—tp7[ô’$…|¾Bÿ!BrG(¤ÍC( .“©E +1Ç>O&.+5š‚€/@bÕ6»ýÿ_¼ºº &€²ÑíXÿ“Õÿ(Õ¿l¨_bÐ/Vêÿ¬ãÏ*WÿÖåFÀMz (€óK-€µŠ~%ÓóÁ:u]øßD€s€@ÌbÀ†¾?ÿpày< ®OqS(ÀU @I À™Ttœ{6V«ªöé}’Þ(˜ î.¸£àîÿþöÞ7´Í;]œÊ;SJNícF}„,D¤²¤Ei$ùá‘„³Úà“ì\°eÁfÁ&¥qÕˆ7VØÇnv£àónyݨc)é,¯›€ .é´_Œòs(f0fá-õœÍK>xö`?P÷ÃJ“~Øûºü'ÍÌäoëäÞq€Û:)¨`oäjåò¥&Ø*þ›úÿv € þ6½âŸØú¶%ð‡Çr%º8P}Y €‚¸gÿéŒäáþŽè…÷ýŽ âP'÷ô6,ÈâCø÷‡ÿÍÀv °pþ/Ÿg®ŽU@Ï­hÙšô;M²Åjɤo0/Hq)f‰Kac ðKyþøÇ¿û»ÿýïþî¸_|óß>ùäŸùBwͼ±=H\á;wîÌß¹sûÏ«wJ.ÿ˵ÿûÕº}Ù#ÅDÿËȺuaøÂÁÒÁèŸËÁ¬=›µ[ÅÿóèÏAÚ{’Èöû“уDþç_aP¤°pûöAQ÷C34`ßéU°€Ê¾KBú¿´M¶¦ÿØ9ú7±sæßÚ¦úü¨ß›„ëhlh/ñ/1ÀÀþi ?]ùà#ûHP„ý Àé¤ÂŸê~ïw[Aþ#]ÿïÅ>@c“Ë¿ +PûÁ@s «kÂ÷tžG +m<-—Êþ¨_V²ÉwšbR&¸lÊö›,˜´cð´Ùl¨G/ÝÙ¤_PþÝnSzôßÿO _3# kk}ßÄ+yºüÓ?mø'fÿøÇ?þŸÿÛÿóŠ»n_v …"w¢íelù»páW×~~ëWÛ•¶¬#ë°g²¬\»ÄHàðážd^€d4:Oé?ú úEú#;W±š®ºì«Pù¿ï4ÝínüÇÿÈ€Ë[`KþŸØÝóxüß +ýØËÄ1 +ð2ã?@ÿ€y:`ÎÑàSNˆýCÂõ7pz7M€Á!¤ôÀ F’û¿`i· @/ÿ1ÀøyÏøx(´ŠDJÑñh™€Î£V‹Ó$IR+]pÇ@x1¬¯6Ô£Wô÷eéÞ½û÷ÄpÍ=0…Í{›ÛN¿Ú½ÍWüðÒ€‰•RY.—Ûé–J}>>§ÓŠE¿&»,£öÿ9'µóxÿð…v†­û„W„G*0úŸ&Npißi0J¥rùØVý¿3ð¿aÛRþùÞÚN°m«¡Ðÿ¬ˆU€/óO¸‘s_è5ôÀ4Ú(ðƒ¬òcúˆOð?„8@= Ò¿SOè ~0›_î ã<±°eÐ-€]\ÿOØJ%Ïøyb+¼ ¨œŒúåaÙáÏZìvɾli•â–BÆ‹Kq¬Jçófs‹ñm5ŽAö¤°RšWd{ùÂ…[TëÿŠI€ßšÅ–¿,ë0WþXx°}¸--'…µ« ·_»}[ÿ—öíc È—NW.]ª\:} ·•cMøßu`ÂoÂ[*À%`;ýg"ù)¾=œ¤½Ô*VC­ÂÈèD@ˆÂÀI[g <€ß€m­ ^0`´qÿÝ`ÿöºèêJ°Ðé¹X·MØ"6‚ÿh¹]±*ײV‡5æÄî{,¬‹R8Ž@>`ÐŒï­q °Ïfb"RR‚¥½=ê¹ukøçþá Ñ((€ÕŠåžÙìOH^H^(½Ös³€Úç"ààüüAîÿsßÿ¶ž´ª÷è…8@åråòiäJÿ0hÇöLÿÙôRßÀ‰.z5±ÃðÓ|{î©Tÿ¿Üù75(û°ƒùt>À, 8’ú?ðþ8¡~–à?蔹ùÏ‹xV«ƒFÐ0ûŒ€WùÈ:v }\ÿGèéÂãñŒÛÎOþ—JѨÇmX‘V‹ÕnŠ›b †ÿ%bX„-ùiC0ŽAöèÿü„-¹p:e¥ý€ý²Õ*+e¿Õ‘¥CÙìo²m?g@’°ÿ :QÄçÿüm8ú•}«lýãò¿r ÊÿitD éx ¦<è"Ü·ÙXó…lz +*~ð‰]2@è§ÃH$ÚKîb­©UxòÓhó#hÅ€SŒýë"€ÈÅP x]÷Ì½æ»ÆÿöW½ü_ªý0@,bý?ÑŠ„Æ=žò·ãÛx$Rú¶\.Ã([íV‡$ÅíR&f g¤Œ%cá%€é4:†{Ä8Ø£'q÷[O)*k?¿0¬\n“³AkŠ»ÃzÄïÌš²Î6¿ÒžnC#€âöÎ<«ÿáÿd`å‘,PéODàò14°þW ?]<8öëvé`«¸Ím é¶æ  ÛV`¡ŸòôÒ»XµÔÝóH~ÿ´˜æa ¦¹ 0&8ÀÖØ?öÿét èl¦zgö™€W¹þ¯5@Ó°Uÿ7 €ºB]‘È•ÿOiü[,ž¤µlWL‹ä°X²™L6N$€Äì"¸ßÈ_6ŽAöæÉÙÎ ”ÿ ÏhV†¯ù©æ·Bü7Y­mCÖ#Y둱¬?9ìÿý0F“b`»€_ð?2Bx¥ÿ},œÞ‡¾ÿåÓ—éáåÊ%ÆÿÊÄåcÇV&Ž=ÂÛ°ú‡%€ ÷ÄV½?Á®?›ÿîæV ã×ìYNƒ€é€NòiÂÿ‘ >øŽ0úñ@ìØR`„00"z9À7`踯jÝÿбþõ€.±xbàÏà6Ûøù(â>­e«ÓoµKŽàr«ý­CX,I1)nŠÛÃát:?½ßlhGÆ1À=ª»sàw}Π=èe¿Óš…øŸu8ìVÙ?DL`ÈI7G†“?‡Ð?¬@àN€ž„æÿüíÕy„ÿUÀ.­^Âøßi~Øÿ*ÇVÿ'.¯\f +ð`† Sèý6¯ÿ™`ñß¶c#p3Øø%{Fh™5ïÏïç1ªÈFÒ#ù`h@~ b`» tÎ f ÀtïïÌÏ'À0ì] öÐ [¹úïëz@å?²ÿ"O¤ì)}ëÁÃò·Ã«_q:MrÆÙÚÏÆ +¦xAÊHñ €ðÍô"€#Ð8Ø»`¶7ð»^/a‚Ãá”­VÇoÎ6kÖþ;€ŸÈÀâCCådò÷Ib?O&±0zðB{4zPþéú né¬N«TŽ]º41Aè?qŒJˆc++6q˜ÐŶ3°‰ÿÍ~€‘>󬧞s˜ÓŒÿH  `ü#œO;Eü½–®ì +þhŒˆ€Þ‹Ï£‘»vJ…¥²nLî¥ú_/þ0ýßÔÿ©üG@׊ Às±TöŒGJžÒµRùšB…‚U’¬1I*ÄÃ{¦À;™›’¾ð¢a0ŽAöj}êŸý]o@–Ù 5kuÒå—Vz [í¿ÌZ³Ù#B°j÷øÚœÃâ´GïÌ·3 ( ÷?ã?£ÿêiº;-^©ˆ31Q©¬Tÿ/sï?¢ðÊÖ°ŸMïýïxZÆoØ3ŸÍœûŒyÚ,@>=Â>@"ét08Ìê€,WÿA!Èl  ðaà¬ö>×ÔàBGm©£Oí¨×Îð“—é/lMÿ7çÿ´¾¾žþ#€©Ìý—Æ{Êžr‰ @9ê±–ýþ°×Òê,ØQú/KËñX,s(.Åo†%y³¹ß˜5ŽAö*Hô_ì%à”°þÉLØ`m³þÆjuf­Ct{Äšu*ž¤ßª(¼àB{{tž@ûü. €UÿæÁ (À± +á?Jˆó üŒÿØûƒn&š&aä]|î.ÿŸ‹ÈS5OïŸFõŸÏSí íIcò?¨»ÿcÙ1¢€càUbkqs/†žÇÓxG‡‹g*tˆ©?›Ÿþk;Áé¡Ù? õ?¶ÿrÀl+Üð•zÊãžHéÛR٣ܒ½a«Ãb7ų±˜dóqtÂaa0´LÏ8Ø«O+©»³½¿ `ü+ëpÚ³D†d6r Àë/³ìr:­Éù¨òq²½=™T.$ ýçÛç£Ñy]úßÖÿ§éR©«\>V©Dè²ryåò±‰‰Èùˆÿ¸u³ö÷V`3ÈftÿŸÓ¹§¥fÍX 3NH9í?8ƃTúg™ ©ôR€ÈÈòØè|pÝÑð´tM¹:::ŒΓ–é/„Vì€ÿ-ï¿ñŸãÿPÿ‡`Û‰DÆ#ªû=Ѩǃ5žkQª^éE’ +t‘2q‚K& 'à‡a{Ú°Ç {û`Yœ-§œ…ØÄ­ó7‡õˆÌØO4n«WéÎÏŒ_N&á8Ø>¯û*ÿüû*§ þ/Ãüßåc++‘ñJdeâXebÅv^Èÿþ…°üŒùnQøó،߮ç$òTyàô{ÿÓ| ž ~,Hgdˆ½€Îà;AzÃXP$EbàÈÈôþ@ï€ùb˳§z÷1¶øÏ}Vü¬x–àÆøáüt +@óƒ>bö¯£Oãð?—Þþï²uaõ_¤ñDzÊ‘€HôÏåv¥,;¬‡d1ÅÁâ…¸‹Å3Âÿ°î˜6Ïã`Ïá‘Ñpfªüý²³ º?üÖ#CòÐ*å!§ß‡¶ÿêü|{´œl¿Fç£ÑÕy‚ÿӜ枬¬ 9|<9½R¡çó|lK‚¸mÍÖ?ïž”ÀøÝz^§^í7ï7OçßLësùtÞ™&¬çrL$8ƒY®ûQúŒ`Œä…€s€ž}s¡‹JÊ…³Å¹_=:úëϦ ðÓK;“ÿv¬ÿãôß®¾ÐÀÿoþ؈ôŒû¢årÔS†ÐsËoWvS«½pÈž±,ËWb”ÿ¼x14›®?dã`Ï-ÑцœóYkÐê”qc=â?bÍZÛüC~çgÖê‡=`Èy¤Mña%`{{4Úmg!W_+U扼¶AÒ¤4îñtÒSGeÐ/.¶Ø €š{B¶f 1ûÿŸã×}f} +€;œÐÄ(à;À‚cަP´ÒÎé± ÈÀ2@÷3ïs›šrMM*þitôÀÉý¢X<Ûg0€ŸžQì˜þßÎþáá?®ÿC]ôÿ4)y¢ž¨¯G){ÊåHÙs«ìw~-Û­Tü[ì™°T°¿eÀBøo¹yÃ`ƒìuà¾x" òßÔ‡ ËNDÉÎ#¿Ìfý~yh(k…pÈêôûCòìõ—“=Éd4Ùã¡=ôÄ¥—ÒŽÓYòxJèþG"§ôêŸ]…Y€[Ï±Í ãëyžÜÝ&þ§˜1ÀøøYôœÁ!!pPp0AÀù@À³+gÎNÍ­žüÆÞ{ÿ¿~þë¹®~: ¶{ùOm{øOmÎþMpûÁÀÿñèá’¯\N–Ë +ýg/÷(>‡â°;2vKVjÿc‰Å2 †Ã¼ðŒ1ÈkƒìágWhf¶éïYÌdƒö¬Sö·9ùmCÖ¬ìèÉò¸ø½2ä¢^oRQ¯Wñö(=¾žž“=ÄG=Æ}ÏáN<òœ*ñ3Gi<2~þ”ÞhŽ2 @`ÂÆ[›"†üÿ|z×lÖñ/#˜H;Ó¢Þ‡  ¡òþ W ÁÀ~  ø™­\ ÀÿbñäÇöºôúØC£sS† ð'$ ÿ[ö?Ñÿ×´Ž>.ðþ…Ðý MLDЧÿÕ=%B}>å?—£Ã>ë×ÎOLv“#ceý—caº[±°X`XŒc€½üL =X9ßI ˜u8e§Õž%€.@Özd¨ÍiÍfÛ†Ž ±À?ät¶ ù½~¿—néÐ=½ôz{“=>€.žhô°Gœ’§YüŸ¢ÒÿTdœnÇÏoÛm"§ÿEðOŸüÿJžFËO¤õ@0$ º:ÓùTü§y 0èðOo9 L÷ +ð¬Ù=SsSssÅѱã¯xüÇßùbô3—Ñx|¸~èÁ³¼Ú#6ÿþÅêß ÿ®‰®.*ÿ#+„ÿõ<=¯ð‹@Y¹¨8d«CΘZ%{ÁR(Ø3lä0`ªÿÓ‹è\7RŒc€=|ú\ôÿ[h2ᾞÎÿ;âB2°Söú‡Ž8³üòÐ_¦šß©ÃÿÇt/{½É“¾}hö@ àñ°ÐY©DJ§ÆÇOþŸj:"Íú_x'š ~âÅK¯êSU#uqzSá@Â~~!¤Ï¦éš%ÀÃÛ‚A;[AFù‘@o¯`ö¿9sS„ÿ£„ÿé+cÇDzcÇ¿(.¨µ%ƒ<)x~åÿ6ü׷г.׃wÿC¢O‡9ÞÒø)O©œôú_Ó)ÀEEʲÃs¼k—,’é†%§kk8—nZÃÁEú…3Ÿ©?bã`ŸŽ®Je>ê“0ú;­TÊV{’¿ßO•Ö’­CV¯?Š•@~.ûø{½£ õŸN™%€Ãå(ü¬Ð3‡g|¼“á_¶zú6Àwx ^ÿ)ËÿFcýÕü%ݬü3Ÿ¾„ˆNÜg!8ƒÎlÚšfz#tۀͽ¾ÏHÎέ‹_?þþÏþaäø‡?{çøŸU"FÐã#öód(ÿµ­Oeï_Ÿ+äbü˜¨L°ý?-õ(Q`¿_p€²,ÿÁ!;ì‹ÉtHjÍÆ¤Lkœc€âX`_Ì#À|ÑH0ŽAö4è{p 9>¥’§½=êE÷i€Pd?$€¶!ùÈÓ +í_Q|^ ?.€¯÷¤r2©('}L¢=eQúCÀง +ÿoééø¿•0!¦˜ˆäÿŸfóÏwµïÍ£5V^ Q zfZÀ?S€4Šÿt:í ûcvÝ@AgÞ™þïï5° ðú3 +skŸAÿëýn†Þùâä‚ÚQ[ÒŒ§'Ãÿçþµzÿ‘Ï„òßêâÜD"¶ ¤ÿÙ*‘R)ê)+=²ì•¯Éþ?øeE.Ë=áßZÐ6}c’L)F@Lºiá!@t¾4~ÂÆ1Àž~v!pùtåÒê>ºî«”ÆË>¿ßjõZ¡þ³óß:¤x”¡6‚þ!b+ +ê~Ü+^zØã;Ù£$“==O9Úe †pw¾4ÞYêgô?ÙaÿÓë +é;?šù¿±ÔØqÖ øù^[o4v)¯JO@}øŸÎ§Óï¥Å€=Èú?[Òö4šzÿŸîLöÓ½ Ì<#þÏÍ¿>6òáñ‘H½óÎÉâLÛ4CxLð<}Ûãõíú_tÿ‰ÐÿÈ•ÐD(ÒÎ^)Qýï)÷(=Š"+þ6Å/_S®ÑCù)@’d*ØMRc,0ŽAöö“KG߃˗/]º´oßûøTN¯¾vð|’• ïGœ~¹ÃJYñû!þÌízñ~ìSˆœÄ€  +àùÖCÐO÷ß–ÿÏë€[õ¿°¸i|±_æ½:£þúÕõ\ƒ®ûøtÕ®÷þDèÕmÔ¤wyEàI»>줧 ¾™þ{¬JâØŽa°gÓŽ ÞÚíº 0»€ÐH=Sàgkg‹£ÿú³‘×ÇŽ¿ÿáØ;¯Ÿ,ºÔ:áV_7žD°_Dýß±…ÿ°ÿ¹\ xÿØËÙÿ" >Ÿ,þ­~Yö;dÙqMþ-6‡:$«ä²1SLZ¶Äâb°DøŸ àÙã#Œcƒ¼P`ãòåc—öU.1ú xã7.½qét%:´§N0–°¦ŽÉ;ó#üþVüîYƒ× œ$ü9Þûúñ“Çß9<8¥jõúR½‘0–þíßÞÚÃM€gúžíÿë¨×¶6ÿõ¹¸\˜L0ðóòŸàŸ@”àß/[å¶¡£²õkÂ"Šü[‹Ýa·¼k’L‡ì{&ž‰Å-ñ0†>y“S€Œ!@ã`?½h}Ž]@SÀƒ7ö]ªT<‡ým~¿ŒÊ_¹pÁÏ +†‡„ €ÚÿPÊ=åhÙÓCð_jNý=ßv–JDˆ ‰4 î 1h›¹^ìHõ½Žý:P‰äîst¿~UÕöâã­ºЀ4ÐX5ÀfË4Zo¦`Ñ?èL§³„÷ciîõ±@gÚÁC#Áæ" s w`à̳x¹¦ææ>›+ž|äýÞ“ï?ÜýŽ äêªjt£fN@M‡ÿ¥áÁ¿ï_W—(ým‘hÿ ü*IŒÿ9e±&” +ÿ¯‰| Ùa1YL­­ÁB†Ç3 ‹áô'Áàô~ó—×5ãÇgƒìmàz°rye_e ú›Là z¸:0Ipïeè— öxÀ.@?&”Ä@¸¨×ÿ€þNzH7ã§D°˜ŒlYu#À‹ûÚî±èèo¢N£~ƒ^Ó®®_Õðf"¨ùs<ðР鿀—ÿG|ϽŸMtò„þaüiªÿýѰۃN;ÆÁX”²ÀA€ÏRÉÍ]+Î}qòÀû#££ïèaû]Œÿi„þZ—ë☈¬@¬/y"ÈüS¨p¶9­mY»ÕaÿÈ!íøHVGíGÜÑjg `\Ê,[ÄÀâ'Èœ0›gïã`oÍEÿå+§/í[Ýw{ßN€Îí}—.«ÌG“ýó+BÀ€ïc….=ÛÇÓõ° @`~TÌèä}@ˆdü_Ñ…½ó)½ ¯ +Þ~Bu€ûU®ú:_áFmÒ³ ‰"Õ¯ÿsè-¯ˆPE`š]¬þ3æÛ‰0úC ÒëA;Œ€x!Á€Ï7ðö3TrsgÏÎçþÃè‘ÑÃ'œ<|à°{ +@ê‚£ºÿ ·kÏÇðPøo3ýGÓí]œýcÁ¿+%›(ÿ£¥hTñ+²?à°šÂVûQ‡ÃrÔA·Yÿ }ô#Ù*YLÂ>@ªÿ%)¼h §ÓÿL`vÖ4ŽAö:è{šX­T*«ûVoß^]ÝMöA¸¼ou5ª° àÿ=•Ä<ýRô5þGáO¯_$ÔŸ/E*•‰•Ré[$±A€0F¶Êžˆ¼¸Â_?„ý ®ú«©j5•jIÑnâtƒôP¼Ö¡¼"@-øO§ó‹ét˜ €S¸ý±&ð€ ð` + `îÅ€y ÿéQznjj­8÷yïhïîâI⟟r/¨èPé_3Âþ… à™(€þWköÿëÍüMÀÿƒ®‚ÿC€ì?ìøàÙYvØ­a“Éd¡»ãëO,‡ì°~duXb&S«C‚ýOBà¦eq1½|szzàÌuƒÇ {üÔµ]••Êü*öù2 °úÆênOÀ¥J%ÊÞ?¿÷÷Šž (=‡ ä_‹”*ÌæK•Ê¥ËðT*ããã%ƾ=…1€ñˆ¸2ÁÚhüŬüÛîkPýOW®ý¿JUS_ pßqÖ·Vùª€x½M|é@ÂŒ@îþ7}v‚~*Ôìv»Ä Á¿CŒ<€–_|3÷ÜÜÙ¹bñ‹ý'O8ÜÝ}¸xrpʽ iõކŠ!tã9äo€ÚöÀS»¶>†Žÿ»ÊÇÿ>€ýÀŠMxÿ±ñ'YV|ŠW–íV‡É.²[&Éb±µ|íp\ûío-Žw­¦X«CÒrŒêÿxx1þ$ŸŸÞÿ‹YÃ`ƒìõ'Mu=8])­Î\¥sðàmÜÝ&&Páêû¬–z_/20öŸ„-½V"Æp‚K§/ñÁLÏ·%v on^Ùr¼˜Î¿èsUkäüsÐñ×EõŸ¥½(úEµÿ0ôoá¿Êïˆy}à%g÷rgòùü""Ó‹ïˆi4ÿ¡„Ãvž°ÛHæU¬ ` ‚€SÏ€ÿssÅîãz»GéRì.ŽÂ¸ÞQ¿Ÿ¸O5¨¡ÿ?rמC`—þ¿eÿCþ¡ÿFWHøÿ@xø½|Ð}§ÝF§Ÿ®­ _í°ü‹ÕñµÅê°Æì1 ÿ¦¸ gâ7õ5ˆœ5¶zÇ {]È…B]]høß™§[âóÌ \ÚÙ XåSÁ…Þµr‰Ç¶ŽþÊåÊ*À¼ô-±€ÎÒ·Hæ1€Èx3 ðÅÕþéÇ ƒï5õ+ úW) ½ÞûoÔé‚ì?m]WFým€Wð×!%¼ô 7 ’€‘O7M€„ÿöðXÐ>†yÀ,ψò_'œØk6œyêJnð´xòýÑîÏ»‹ƒÅÁÁâ÷ ªV×êì0Àc(õmô: +Pû‹í=üý4àÿˆú¼„ ùß*Ûí)+I¦˜D8OÀn±|$ýµì°µ„[‰Pí‹Å±˜Àbpqø½ºiüüŒc€=}´DÕM¼ÿ4#úíƒççoÿÎÓ+·oë`·+€Þ€Ë>¤—] àòåKÀŽ„M¡ÿÃpÞ¶ò"Ñ¿Ùþ*·ïaò× ý‹ÂŸ°_]W×üÚýZƒžY÷M&8uMÀ•ï Wb ÷‹|^Ä,.ÞLÔ†)´ÿ³i'n¨üÏr> ûÿ‚"h$°A€³OM¨ü/ŽŽŽuŽvŸê¸bÃþÎHå9š,cüßï `ô›b‡,­–VÉâøú#‹ãèQùk»åh\jµZ¤Œd!Àð¿øoºÐ¯??ã`€œûüùÎññÈêðb¾åÓàÊe;3–ü Äë›TíÓ;QÑÏ@² æöâˆþ¿F4€®9ñÑÐXx¹SkDòoêø”Vºu0°£ò·‹1@ûVB  ˜E`ËÓþËSŹâÉc#ÝÝÝÅA:¶…©)K®h€ñò@}§àÉŒ»|•ÿ]ÐþGü¯N&"+6‚ÿH‰ªº¶—eX±ÛMv ¾TʷƤp|Òâ°8>²|-dq˜&ñV)CÁ OÚÿÁüô´yànÊøùÇ {ûÔs wggçlâ‹–æW·ÎíùÛób(€_ÛÇ£Ûè/ä€ +®ÆÿÊ¥}•Ó—éµ +ýËž²WçÛRd|üï<ÿâ"ÿ¸JGÇ^ÿ0þW?‚m*÷©ÖIÕjBOb¤×\*Ýå\9W¢/áÒ\š–c @üe5'"‚‚¼´€•»žÇ& ¿_ü0Ï Ö? þÛÓiQüsÿœÄ.€4ðºwÄÜ;00ð´KÝ‹„ÿÅãÇÇNtwºg܃ß/ÌÐw|½Ö¡rÀxyPÓ‡÷žÔPÛI*ÿ9ü—ûÿýß5²­Pý}Ý+¯yÊI*ÿþá÷ËÖ Ýb—Lèñ$ºýËäG–£µ9>y÷kËdìh¬5YâR|1¼H×à¿ñcÐ8Øë§‘H¸û;/öy{{ÊÑùÒªhûßÞGnãÊ>ÑX&À}BX]­0 ìg=¦À}¥R¹Çíñ  <¼(rjÜf;ÿ¿ +ýëW©VÏ]]‡l¯óýÞ\Ë£ÄG“_¥«+—P]E.¢.W‚.9z.%H€854‡µ*¦/­àÍ ;x ËZ‚i_´›¨ðÏ Ròœ0Lcà©s‹ssÅÇGOŒv÷»mkî……)U­wÔ¸ Ïó'Ç +@½¶Cx,ø¯íü«ýÐýÇí¸ÿ\¡MûýŒÿ%ËI½ÿñÙa·[$S!:<x÷ËG¿uH9>ŠÅ¥Vú“8¶Å-H£pfö®a0ŽAöøÑ)÷ùÙÙžÃJ¯âK¶··ÏsÕÿ +þŠÞú÷ñú¾}º,@t@øEëC€«ò¢=¢þïä•@¥Òxi<ò‚¿Šõ††‰ÿB~E?U]‡7PÃ&zÁ¾†?ßö7ü(ýqI¸6tCo) ž@  ®‰mÍà`Nx9$ßÜ6„_·‹n?(@-€iNr¤ƒa¼=ïÌG#Óû{üöSš¹çÖ>+ŽŽ8|fÎížqϰ@Eó¥N?ãéã±ëÿzm{ð/R€í?ªý öw{ôo;û¯¯oÃÕ•M„º0˜KØO RÂð{9ªDýʰ,ËY«%l‘¤xÆ"$ÉÂ?qËdø#û¤Ãî˜üè“b“’%‹ó@‹ùàô´yö˃áÇ {ü¨ ·»³³gÀçózïÅh´ýÎíÕŠÞõgOÌ€B Ø®þ·ÿ À +ÀÊ©rOOùb9z¸Üs¸|ø"1^ Üi{Ñ_Ä=MÌð_åâ²}µ*ž}6××áhþ« ÖýUA\‰ X 7èŽÑŸÑÕ•Ûpi Uä &š9™/ãÏØlžžN£ wÂÁ0·ü³ºòO¸ïHÛÃv{3Q@ÌÈ|Z FŠÆNžíw»Ýk¶ï§T:¹f xxü—¥@mg,PSæèÑ6ü/m÷þw¸ÿú:\Á¿ áÿMû_%ôÿ“Ñž²¢ø¯ ;­‡Ãd1I|¨Ò§B@ÜBTÀbqX¤É£ñ|xýf<>_ òf{ €q °ç,çÏwú|¾Þ€7àõ^ëõ···#àf/ ²ou‡@÷ÿ‰a–ÿñúêJ4JÕ¿¯ìè(÷ôèsåñú`wzgÿ+Î÷«ªæŸÂÀƒ*..îûkTèo¨ \]¹Ó€D.‘ ?D€K~tUÞˆ ƒFãåÌ®;ó‹ÅüMÿ7… À.ÂýY{pŒ7ÙÃé¦ ˜§'q‚ÿiÂóÀSæþÏÍ|½wôÄ(;¾ŸYt¸RKuÃð8`KÿßÊðÝn<‚Ô–vfþî„ m{ö_Œÿw=Ð7ÿLT"¶ +HÕÿ=Ér{´ÌýÅ)S•Oæ©ÐZˆ21‰{ñɰÅ ONZ&cq{¬)>y3¼¸ þs~ÚüålÕˆy4ŽAöøSLÎí>ßyÑÇ€ì fƒ²âSÚ£Ñ;•JE ¾pIxÿ¶÷‰@åR%â‰ú|==Ÿ¯ÜSÆjàQ€‹ /þ¿C×_ÛÊô¥êÿj®šÒšuzC]×TlüAó?Áâ>×þTý³@‚‚J¥¿æJðŸjuMœò.aY[‰çé¹ø^*1Öt¤³XD·‚0%‹òHæ$À™§æÖFÇŽŽžè\sϬ¹ÝƒSß»XHÀh<{<–°‹ì¶ÚµÝ +À®•¿ËÿTûkzøïÛÿA"ÿã‰*·þÉaeXþƒì°†íޏ«)žÉè…Æýâ ð³LNÆMü*ÿÃPßä1À~Ãhƒìñ£%¶ÎÙþ^90ä¤#Ë#²ß«(Jç G´*¢ ^ªà¬r`eßj¥Dì¡GQèÅð¿HD ÇWæ@§/ù‚?ýÆÎHÿjª%—£­Y°ÃQûc°O ¿0üm¤W7r.uƒŸþ0—ȹÄD KÕš§A×ÍfdpN_üÒB}_nÞ0‡ÃTêÛaÌò @Öâûè@XÌPùØß;`xºgò¹¹³k£ÇôžèuÛÝk3Sk ªš¨‡DËŒ'Ƕ§–¶ +ú¥f€*ÿ-ùŸjµÙÿ¼þGøÿ0ýÑñŸÁ¿ý–ÿš_–DLö¸£ÕRˆ·~ÓZÈÄ[3±ŒDZØ'%®ÿ'ã“Òd,̬ ¿9¹x»€§qñzÎø Ç {û¬ó ÀÀ@¯×é Œ8e¯L Í)aë¯7YöD/–{n]L”;¿]-­ÎÏ—¢ówœ?Ø=8¿ºêñ)'•}DøÀç»È,Àã~ñIàßiWEŸ>÷Õè--©jJïý/¡ýdŸuîù#çGui v>»ú€}­Áƒÿ\ÔC€ÀºÿÂúÇ™œ +$D€—úG.}˜s€ñ +@§3  ê]>DF¦{Íæ3‰§úwήÍ>ðñëÇœ(Î ºÝ"Z Õª«šñÜñXõ}çÀöÿ@ عëg—í—ùO˜ÿûPüÓõA(tŒ·ÿDØÿGwÑr’,c €¿µÚah•,K¦µÐˤB,—ⓘtd&ßþ[bÈœÌLfnÆ'ã–ÅÅð›˜4_Ÿ58žq °ÇŸbr ÷ÝÎÙÃJoå¿Õ’‡/±€!Ùï÷ûé1½øü%àõ)=óç£Ñžr¹çB¯Wé%Ð÷)Ä|ŠO羞‹‡ËÞ‡¾Àß/öýå®þ·T·ªŽ:á·Ê¦?=ÞjÁK… Žê¾¡Ëý›KuQ=5 ¤å lˆ†^o4êz,æ ‘!ôÒ'œ…¥´¤Ï" ÈI°Ïj€.ˆ(À4³oàŒö4€¹©³s£'6Ò;::Jå¿ûû5‘r'ÀÇŒçŽÇ";õ‡€]ÿ.ô_úkðï‚ý_èÿ](ÿ!ÿŸ¶a·'©(Ãåä-EIÊXàp8ìî°‚,/â±+LZ8 0&Åÿ-ñV Bâ™p<>ys’@>Ÿ7 +€q °×OG.q·¿sÀÈ^/]ý§ì¤ûã2À˜€\€.Eñ*Šß›ŒRàíU¼Þq¯ò±¢ôø÷þ3ðù<¾i Ø=ªï¯æ„Àø_Í5ýQhþs¬¯ª_]¬ï»0ým¨ü¦:gþ5×5µÆÒf']°¨®„ž +¨5š#0ˆ%Á/¿¿É.ÙO؃iǘ=‹.@:æ4 GÚ¡§ò|ïïÌæÙ§â;ssSÅÑã?=p¸»ß6ãžr¯M1h`àÿã +º°Sxˆüðñ#rÿ8ø¯Ó¸üß±þ¯ÂãÿÄÿ0H+J›b•­„ÿ‹dɶþÇ +ºf +ËÏÄã–0•ýáÉx\š¤×c­ô&)¿‡?á À3³ ãGhƒìé£%ªƒ³½ç^Ö€õ²Óïè£î÷ûXÀCB~‚}/½ƒ÷cúk +Qþû|¾ësgžª‡ö]o©¦ªM Ò0jN8­nj9ÔûpûåØâ¯i¨îUm»Ë¯©„ü¢Ý/tUE0 ¦m0o€û`pùB°Àð*,: ›‚½Þ@õÖaÇV@Œ„9˜®ÿ¾3wï?Ňž:»6WüÓñÞÞÝ,,|?x–ðÁ}Ý­à1 @½cG `{`DŽ߶濴»ôßû·­þ÷1ü?èê +Mtaú €³ôÿÛ“Iex˜^®)~ùšUvX&»E²Ké›Â7±XáJ¦p`‹£ä—&-qËd|rRŠ' ðϰ0¼¸˜~ó“üôÀ€hƒìuc €/0À‰òß)Þ‡¼0 ù½TõÐÛü‰ ÉÞ­£œôÑ›YýùÇûÔ¿ÃÚ¿«¢üO]Gù/ÞÎźŠ,Ÿšj‚}ƒGý ·l¸Ô†è4Xõ'ˆWa&Àžˆ¹„ˆ ³j5¡!OXãíB˜ ¿×ñ*¨tîÛ%S/|v;‡5èà1g~$@Wž|ª!€Ïæææ~ýÅÐèÈÃ݃ n÷Âàš.ÌÔÆ àc‚ÿzÇ6ü×wÃûŽIÿ¥Ýð¯w ¶åÿ>ÿ‡ÿ>p=@ýøÇ@„W½Æþ¿a"€ÿšì·:ÚSX2eL™ÿ7W– ËË­™+ßÞ[û°B$€/Ð?L×0÷¦‰ô»¡q °§š°Ý…0 ðßï…æ/;Yõ‡ À×aÜ¢àåù¦ý¹ôïõɼÚç^c}½9@ø_Õñ(íR¹œ€SñŸsqʇýÀòŸfíOÅ>–þr¿¡» 5ð†D3.ˆ÷ð„@c©F°ŸKUÕª +#(À«2çÆìi«ÝN× æa æ°ô>] ÀgsŹâŸÞùâøû£'Ï!pmpnj¡/±æîÏÀãÀ½^۾쒮ø—šàk˜Csð_ˆÿŒþ¢þïz@ð?ñ6Îÿ+aðOQ.”‡‡yØzÍzÔaµXLLbß2±ååØr!†@&çä‹…ðª€Åxüføæb8ˆ1À_̺e€Æ1À^>\b¦óâዽg@¦B-{§î?/V£@oQ˜(l@€I€7 +€Òëó^ôÿ¸èˆÂø«³[®W«©œ€$zMeß?JûGûpùN$ûW]¹ ˆý0÷'Äêôøé!PŸmx¯ Ø6ð±4ô4Π÷TYxE +ÙûKé “J‡Óî… pz$822‚ÀÀS$ºÝŸƒð_O{gt´{ppÍ=385åRçÎÍÔ ü¬Ó€ÀþŽ]£»vÿŒþõݳÿ}bø¿ëAsýŸÍ¦ÃÿkÑžáfýÍŽŸƒðßd²Š·¶fÅ¿‘ +˅ºÚ/K10ö€DfìnZÂanœ™mÑŒŸ¡q °— @Â}¾söb/÷ÿe‚w¨?û†üC~ÀŒÊÿcV¼²WÖ(½J'=_üøŸ9Uãºý¿¥ø–<÷ï¡úñ¯m`½ŸÈúÓý*KšK<-ÀÖ_ÄÑßÇ=ò~R¼8Á“œ¸Ž8‹¹jsq0† _ #€8“Ýt8Ðg:0=b`à“´¹ÏææŠ:ðÅØØ€â Û]\›Zs© çÎ%Ö àq€@‡ÿ‡I@íèßÁð_ßþåè?Wý_èî¿.Žÿ¥êŸ×ÿE^ó$•aÄÿÜJ3üËm&»€ÔZˆ·Æ i¹°|e™hÀIÊØ¡Ä¤ÖIË$ÿ[ôhLÀóæéëÆ2 ã`O-áî¿{ø¢SLîAïÇ\ü³@A÷Ÿ_õ²5Ž3 cê¯÷§`.ØÎ§/ø%ˉ!¾AõFŽK{ 6WùbßOöçøOåû[‰¤ª¹à¿Zý +"VsÀ"ðŸ?†JïL”*þZ£Zå»´FýUJ;í  ýbЈxæ) +9¬üõñ?eß;Þ{€ÀÌ÷ųkSšzî̹º1ø¸ +@áåÇŽ€ú_âuÑõâm+øð߬þÍêŸëÿ•ˆÍ6øŸvEñC–¿µí¨Ãa?j=$™,R!/´Æâ… <72DâÌþc0èc`<“‰ÇobK@ØŽu€æÙ»Æ q °‡Rúg/îñ†CÛeeˆªY¤ü?ƨ3/î˜%è@çÀÿñד?gü×8Ÿ?W½žj©V¡Å×4Àt|‚|.=ÛOÀ °zný‹ê?ñs€”¶ž[o¤¸@%>§¢ý¿¡»ÀÔ{ðVU¼+àÒè˜ ÿ³ äaxš)ÀÏŠÅâÆ^9°ÿð¹A÷©Áµµ.×Âgf:TÃøØ +»·Ñÿð_Èõ_Íÿ:×ÿã¿*Ôl¿„þá¿Ð"Âð?éõc÷¯’T†e[›lušì&‹Åd’2±BìTàs/™BlYB%Æ-i2ã €Oˆ ,Þ´,9à˻ƀq °—Ÿa`˜À¯@ŸŸÇd–Pÿí¯pí¯C ¢Ðû*:øIj¼44,þóÿÍô?Øÿ§9Ó——üˆE?h Þç·»À€å ÿ‰*‡ü~Uý*U½š.?"ô‡ žà±@þتڨ/Õ«)‚- Q«¿ZO‚Á^Vœyl˜}æ3wŸü+ü¬8WüõïŒÑyot°{Æ]œššRÝœS; àñ€ÝØQÛeÜ¡l±Ñøß!þk,h.ƒü#ûŸ×ÿ­¬Ø"ÎöD±öÇOÕ™^üò³Íšµ˜~c7I­q„ÿIi9S â¿¹±\ˆßÈÄ2­R,ç `*þ'3˜$V³ÇãaK<¼˜þ»fu€Æ1À^>T2ßíœõù„¢ÏÉ><üïå$`ýЃaÅŸôþþÿa/OÈ=>ïÒýŸâsF`O£¡Š-¿ÿ[€(µža^OóumÝ$°ù¯ùVtr •W¥ôˆÿ*/ÎÑÆœˆDŽ×æ6xk :ZNÝÈqÙ¦ùj!µç= @°¾YLJݕïú£‹A@y9˜Þè5÷>ÍÀÔܯ‹ÿzüõìØë½ï¿×ÝÙ?3Õ=75õ½ €…ƒ<æoB]XÐ`tg&°k ¾þ;æþêºùŸêÿ ":ü»ºôí¿"þ×fãøÿEö^óc` ²Õj·Ú-v‰ê}I*X +ñe”ÿhâØDxŸ ·6µ‚þ8Ïp@`8‡‰=š¾ì7€q °‡XÐãëõ¨èg —˹üþ½_áå ^þ~ŸO±þTŸ2gö! ™ÿ—ª¶@i¬×ô +ûä6„eÿVÆ¿Xü ’P—ÜŽ#ȸ&XýçA€„*ö `¥ Ñ„ZC…a@å,áFÇsš¨çó†þľµçe{ÙÛ£8FD@Xž|œ{nn­ø§ÞŸýìgÿð~oz7:¬,˜?pÀH1 +¨ ÛóuÑò×ÓþvtÿõúŸá_ëàÏ› ÿwñì]l‘‰³¼€ê¯Âèïõ·ÉmDV‹Ód²›ˆÄ0ù_p“) `YÊ\)d2ä`êßÒÇnòû1À6Àà4ýâ-ã`/¶ ôøìÀHNcÿTîÿÞû1ýÙïÑûç ¯¿‡î~ºÏXàÿº¶.€[®§ª)÷&gÿ +[? >¤ ®DÓ@8îâ7 '½À?—hÖÿ¹íuÂ, ðr/Al T1 €Ý‚ÄPÓr ÷jèÕú³=Ñku~®ß: .ë–v®zÛU¾èoó½à@ ?’Ë€Ÿüi|îìÙâÉÙ~8ÔûÞèà¹ÁÁîb‘ðßmþ…ª.ÏÍ ôÙ(m÷DÉ¿Õòוÿ£€*þ7¸ýßå +aõÂÿ»þW"H\‰T"žvß0ç{Pd…þë[Z©ø'ø7]!è—¤ÖÜÀàráF!Óš¹²Œ<@P€ø$P_âh`0¬ b Ì-€þ§ 0Žq ð#=¿$ÜîÎÙ‹¼Y4è? öy9xÀ?¬Oþ+>ÏOû)sù¿ÞКøßR­¶¬3þ»Ñ×pb¬§WXp @s…ôŽ€Þ%ÈéC€â¨[©‚âUžú'4lüo¨ û ΀Y@#"‚NA½þÔ €žÃ5\5zþÖÿM!ìj,mm€ý®†FÁ‹Y1z§½ OîåþþìZqôø˜4öáÈþýƒçfЇ‹sSSSîÎÕ4CxÜÿŸø½¨‹ª< ¡ã½ ¢) àGí¿ÿ‚`ôÿ›ëüWÄü?¤½aaô·É²Õê°Ú³¨ÿí&þÌ!Âþo +Ò•BüÆò2{¯,g2±e)† + 5Ñ?ƒd‰.{|2½ÌOû̳×S†ÝÓ8س§¡+>èþ²“=?:þ€_!€³qôTñ“Æ¢Àþ¿«¼ Ú’»*bT‡º +%Üô*oà·°óOÅ:"«ÿÜv@´qU øé Çã€b3° UÂ9•>­¿Úxªq@,$&üßòÓswƒžÎE@´¶uÿڎ¿©Ô7ï×î¿`!`š€¹÷)¦çÎÎÍO»1ö¿¯Û63PœZX˜ù`¾£Æ³Æã +CuÌòEÃ/I­COضúƒ76m»ð_·þóI úÇð?oÿãò*‘RO’ÅÿaÌû´Áàh³;,&Ë!ɇÔO•¡u9#-£p¥@w˱åe¢¼0ΩÀ¸Å+1báL€á01óÀ/fÝ›ÆÑ8Ø£²ù]wç€××@Ûüß×iµZ³HfÑ_Ìâ¾G9² /î[obï—-©–T•`p“ ¿Ù ø1Èm°ù_(ðªÜ€úŸòs@`xN»ª‰ÖÂ…<èG\Sb1X!¬&44 ÄKØ*ȱàI5M£çkz^¯Õ40î ðßd°´åü«íÂ~~üÁÿw?‚3ðÌ'Ÿ<»v¶X<9–ý(Ý ýƒ¶Ã¿.ÎM-LÍœQ ð ÑÁ¿ô¢óöCÀváä×êÚ6ú‹ìµOxÿ.$ÿrûŸ®§m‘ÊY¬ÿ+EJÑò°Ÿ ò•ýmNÙêÈ:PþÛ%)v¥‘Z37ˆ\)Äé%³§{º{ky9Æ )Ž%€ñŒž(Yt°Èëg¿4²€c€—édË!ÊCŠ“ãþüþßsüïOÙößY4ëÀzÓØÒâÖ8ÏpÛú ¼~ªpå?ÄžÐë½ü×´uÔðxÑ®Š¬®ó˜†ÿ…û.€£"ÇkЪM¥€ž¢ŸˆÐGè€ôßù¿5·¶I4`“½]»<¸¯oC=kª ÜÕ[àÀÀõ'–¦ÎNGG_Kß9p¢¿fðó"€kjŠðßð<ö¯{³úï`‹¿ìßìØ¤ßºjúͱ¿íàaÿK< ò?´¥þ#ý¿±¡ûAýŸT˜ø‡©øo“bÀd—LA}¦ãî¿TXîòK™B!þÖr&sˆ/e,¼0ž9€Ä$º†'y€y` ÿ®AŒcã38Ó}ª8·æZpuÀ“ñÝ\øn þù†/BC"* ,ÿºñ_Óá{ÿÿ!”ÿ¨þu +@Èô¯”^‹¶sño˜à¿ €V“ÃBÀ.Å +W¨ê—¤ØåVéJë bWˆ¼•Á þ%®?ˆc%0àÁÀ‹aÎ6›û[Œ¶q ðä'§­ßÚGÈ{ ÔpV ÿ«H3Úªÿsìÿ …ôqU¼Úÿ@5¡‡ý3tkÛØ_ßf TäCüG0Ç ‹tAøU¶ªûk9ìd[@ƒàüqŸ×ÿuç½F/aú×»6±š›ü; »ÎÓõ¥Mb„ý›PKõ‡ ÂO~ή=[üüøÈÈX:½´ÿœÛ=Xœ››"Ч1ÀOB×´mhÏ€ë}æŽ5~`lìý÷òÝ3ýî…ÁâÚÔÕ OòËÞÑ€JTçæÂ+Âv¿‚¿¶%¸xõ¯+äœ ‘ý7Q™`ôGý_Š&Û“ÃÉ2ÇÿÀþ/·1þK&¢a‰þ7¤eL\ †U@ôæÂ•å+Ëñåx,–Ñ€b Æ*ÎÍpxñßÒD>˜½nü°c€Ç<‰\K*‘šq¨,¨ c‘Æ# Fï´«*¯t·â%BêXÖõ>¡¿p0' +àÞHhXê“ÒáßE,¢y¾ûhþç0°Ž(@ÿ‘  ¦»„ -]7Ä 8qƒz£^ÛLa7Šà@¬ø[´M÷ñÔ^ƒp;ÐðÏÀù¿Fíaô¿¿Yoèˆjðµ†"ú´%­¦Á*¾´ôèä@ÝJ¸ýç/ÎCØ0zàÄØû#ïèœ!°vvÊ@@3~‹W)Ò«ÿôý;B}øЯËÿŒþ®D׃&üóðŸÍÆðÿZ…çÿÚ‰$‘þï—å6'€ €CÿTÆg–ãTùDž󟰟-€…Œ„}€™å· +ĈKÂ@71&¼#8œ¾IÀ<{Ýx3ŽAþæQS©sŸ¦úûgúgèôÿ· …„Áž8¨Ð;®WUìwW©.çñ? ÿ¡â%šÿ!d„¶bC¼Þ§*Jx•×ùÞ4º‘S¿Ûllry  dþ„–9näô ú˪ÆAÀnØU¬ ø« @mlùê„æµ-éÿ~MLÿ¡’¿·™kßÕ¸ègȯ5š1ÁúÀàý%6jÚý•‹ÅMP ˜ïïXZÚ–X_àwyN®….x{{ŒØß=xÎý½{pnjA%`ODjBèhz:Àöê|݉ÿ ÿ}úä¿Æãÿßý"dÙ+¬þWJ•H)Âøßž¼äõ¿¢úÇ1YL2€3éJAÄÿeXÀäV²ðVÓPC€Ô…Kü¦åfx1Ìç§1Ûoãà¯-‘z»æÓþþëç®÷Úÿ)€ë3îêTã¹ò‡õCÃÂîëÕjÎMO/¢ÛŸK¸D·Ÿ8€;¤[ÿBn·¨ùwøµu-Ñœþƒ†ÿ]­±û€ 4{U•€*Òƒx/@“À ©Àä¥u + %À"À_é¨>øÎ’|gÂOmw]^ƒÖKú>n9"h©þt0­Þ# „m² Pocáýͺ>[P¯m +÷ ú5þGžo €««kí³Ñ£z÷œèž™q/¸çÖº\.uªÞaOðܰ…üõà~} ýEÑ¿³ø 0ÿÃü§gÿFVXû/áæµR´½çV{M€aEö·qþÃzô¨I:„ `$Ä¿¹/Ü Òÿ +ý±+ËH¸Rˆ/_yk™^Cˆ±òOÕ&fÑá_’ˆä}ÀæÙëÕšñc4ŽAþÒIäþÛ¹OûÏ]?wîísýçˆôÏ´@HåR„\ØsÜàÀìñKÐs¤[ïÏÞ§D@À¯ën,òMèÎ?Ü‚èøÏe}‰ÝkE!×ÐØ•?§Šâž«W"§ËØ$´?£'èÚRÈ/DvüøGÚ€›AmW^ßÅÄŸpÅÏ—º¨õ’ëwÖb „¦è³$€@ŸB«×ëÚR/´‚¥M1X @06Ÿ ð™ëþüøè'öÏöÏ,,ð"àuaª¦¬ö ýâ":ÚŠµûþ´¦ùO¥‹H += ‹Îl¶6ÿSéñÿÒkÀþvÆÿáaÂg›•ÐßñK»]2Ù% @ù¿‹e +­…Ëž¼ÒšÁ:À·2WbÑö/H˜‰ó†`)—,7'-‹áÅOòùé3³Æ6 ãà/ž™ëý×ûßîÿôÜÛo x»¿Ÿ^97“J͸«©Tb!•0¾Á»¨õÖ—@o.Õ“¾Tø§ùݬ@  G)¢T¶o/ªº×Ñ×G„?ë÷õwÛ¡Á/ÕïÕ… }‡!ôÖs÷Cãz#'l°ûmp kþuÔÜKK)"¹Þ¸Âð¨"þC0*Ñs;à8èèCçtŸžŠõf âp­ÑqŸÓƒ…ì¯ÛkpV)·;GßwB…²‹€&„^<Ä £¦écšö¼H@_G_×Ù"Õÿ'FOô»û¿O$¦¦0’®~_3€'8m  .LÛ…ÿVõÇûþ€þ\„ÿºâúß¶ä/‹€°ÿþ_`€@›õèoŽþ†ªªÿû¡!s£àráJlyùJæi¹Ð + ³Œå?1ÑøG ïŠÅ-áÌ"v¾™7ÿbັ À8øK§… ÊÿÛýoŸ#ÐßîÓ~âý3©™™T"EgÆ`Ûgs§óPJ»ÿ ÑP…DÅW ¾;‘ +%Ä@Šx¢ +£ Çÿˆ !à[(L8€>Ø3ZNd³mÇD«ª4„[ÏM|M›Þ¦>BP1d 4z‡*ýUdþÔ9ÿ‡Ý|ÛùîsÁÿ싪¿.Œ€ü,ôƒM¨)äu˜[¬Ã˜ˆÏH´ø7Á6èK˜©º«" +‘ßµVGP­¶‰3F ‹4ÄÖxæåÆ.W‡k­ØÝÛ=Ú}âÌàÌÌ‚{mJ¥·Ò}‚†ðø„w»üç.@£ãáòß…U•}^xóZÿ|ér¹BºÀøŒ—p ”ÚÌÿ_H+LÐü?zôè/cz×d:d?”Á`dþAð‡ °_†áÎŒÅ÷¿‰ã² Àí‚ËÍÉðâ"G +€q ð×]ÎQéO<€;o÷ϼÍ^À7d€™–„›¶ý|¨5Ú³^Í¥ª¹j]u,â5€¨þ!Pù Ô ¥ÜC„ E¯¤RUųÆé½4ÀÑßg€^–ÿjª+±‘3˜  gÜ0œk€ñ¥FB0èÌÚñ_¼/_èf{¡Ê‡ñîb€K >,õøÙ@ šáž>Þ:#ºþ*}0pþxZéÂ}*ëkÚºZMUgúïÎà=èïpp!ú u¦ øØëbÛ±ª6žqÕµp¶cªX<9ÚÝýyçÌŒ;±0µ6åR]Ú÷3Sõcºõ‰ ­£Qþá7-º÷Ÿ^6ûBPûDþ/oÀóÿ#º2þŸxÍ“T@ø÷³ð—tŽšL(R¦—Z …Ø öÿÁ€¦À2ÄÞ‚PZc‡0òßþ?‹=ÜÄ'ÃéO`4Ÿ¹^5–Ç >¹þO?…÷ïÜÛB Ðß"`2Às/¤.ã›,êóרT™§îV ‰¨— ¹6Ä +À&þWa@ åV@TÛT²»y¿/¶ÿ`Ên]ø÷~08Ä…³¿¡®ç8ìGÝZ1Œ¸—K¤€pG@€4Í ìwãSáÁÝve U]gÌoúÑèßl46묿]è‹YÀ%!ìÓçÉOýméC¼TöCÉñž^ƒèÊñîØ9¡h}µÚÒ?s×ÍAŠü·é£ßgðç–ôñ†ÆS#u±Xíï<×=ã^XHLM-h¹fjZ‡ñ‹üø 9À¡húÀ¿¨ùõúC¬ýÕèeƒ€®Dýo;Ïö¿ñSBˆö(~Eàÿp›µ­í¨L‡èÊéúûpb ðr!Nœ #Ån è­L¦5ƒÿÖ‚%&‰$ a„ +0ÇïüÅÅY·ñS4ŽAþ‚ðéuî¼ àÛḬ̂ Ÿn¡ àvïþT÷ÜË ¬çt k÷ ‘øGàoC €ƒ€CÕP*´DÕ:L¢JTÕÆRm³ñŽêù%Ñi¥9Î@ +€Ø7ˆÁ€¨ê;¸s©ªšh& «uè½óÙ¿±@Åv÷zí¡Ð_®÷Ñþ§ÂoSWõëšúÒª®á78ˆ7|+X +ˆ…«€@$„g0® ñÂ!þG6ùS¨Î¸gÝúR¡àƒ +n‚Ðã“ º>]ñv¸xò×µ©9¢§ûgÜßçÔ………¾ŽŽŽ…™)W½C3ž2û`YDFSæü $ªÝþº˜ú#&°±Õþàâõ<ýÏÀøø8;èx¢Š_V¼ ÿþa[ü&ÓÑwMï2ÁXˆIßÐ=¼0,#¸uy9»ÜJ €›™V:.èH­< +HàÏ;‚-‹á78ðå]ã§hƒ›ú>÷òu­_c­_ðžòÓ0ÄÀ½3ƒ¸XT °säÍ8"0²È.3bÕínqÏT9|ƒë±ÚHÕg8ÔH¿{šU.§ŠÅµ…¹Áb±ÿûw +á?®úb;Üî…DÝxÍKkÚ¹g£ñ@3ú‡€Ÿ¥ÿ ­oc«ô7]] äÿ‹Ûy¡”N•Ùb†(½þ"¾ˆsÅ.Õ=³·¿Ñz07ÔyªXúw»ô€pý¹C˜lÎýÑ#LTÀz—H¡<×Ös[zû£%À±ÈB1¿A°êN¨„£j³ÀÎ@Þ(Dvs =KÂ_A@XŠßmôD­a÷S€ú÷ãž q:Tõ{6 4U~¨Ìѹ×;<¦v ê… 5§3€”¸Õ•nÏ⦺ŽOߺKß“™P.„-Çl#p #ñ `æTqTs­Íͭ͹§þ+dÿŽ”[]XP Wëãôþá… 5%­iÿö« |ÑÓÀÿßL€à|äÏkžž$?á¿×M–Qÿ·YZ ýÿ»wa4™0ô/Z[ Rë̲Ä@ 4`ùÖ+ÿÇò²oE@ øYx€Îd<Ÿ´,Æ9Aw¿3~ŒÆ1À£N øŸŠÀ§î˜=÷6=¢{&ýçÎì§s¢»Øj°¸ÿù µâ k¦{ÿþ½ü}þŽ€Ü)&èê èu»¶,€zÛß] é‰ÀÕPµšÂ@5×P¹üÏåÖÕ6ëÍá8žñ¯"B(Quåøƒ¢÷Ÿ ˆ!È×Ök3n‘8øÜÅtDGroM"º»€1Ø%„|dˆÞ>×ûªÎÄMNÀ¿ÚКBæ +ë"~H(j3ï  ÿbBH"<¶  +ÏBí7ðþnân^¢„•Ç"ç›’Å~ÅÄ“S€…ÁÁÑujnmjíûï ª¦Kê÷)5±°`€'Pô}Qb@ÿ;†€¾>Ö\x€pØ„à<x¢žh™*¯ßëUdb¸ü·=Jðô7ï‚|£Bÿ¬€+1*úã…xfy¹µp¨õ'ý’ôM¬Uú]KœˆÀ$Á¿·Äã“7ËŸ,æó0Ù¯?Fãàg=5ÓòéL ºBóg +p¸ßýö™˜|pâÄæýûÍtŸoÿ‰ÏÏt~âD÷óþú§úú?ß¿ÿõ¿ßË"Œy9¶óaQšJUy•Ê@p€ÁßWÝî*—ÿ) œhÿ³ÿŽwøØÜÍHº°2‘@â¡Ð3BUtJpIU1…Šo TŽ'ô¤fŠ®…¹®®ÿ›½š{Á­ª©cªåI†aÿǯJc þû€þÌ@úÔ>Öè<¹BÍ @÷ `ø?íIö€x•aEöÊtÐøåQ.ÿß5µJ™BkL:Th…þ§; âzÒ‚¤¿*b€jÿVhR«…À’¹À$¢€ÒŸ¼™7› `ƒøà„µÿ™sg OŒž8±ÿĉÑçí¬<ÑOåÿ{¯ÿý‡îÝbˆ³y4ªZg«jK5ÿ9”­cK11@¥¿›!J7D€*,˜ï_çéÿÇøAø™Z¸ ó† Û-ö*á%Â9 @¤ïã`!úÆá¥ÝúéðÏe¿ê#‚‘k¶`ÝžèèvÿœÖ”ûyS8˜³|X^×À7u­IÔÄC²¼¦ïü"Ç:30—PFIz„[7]è{—{²¾}m¡ßåš[Àò?ׂÚÑ|c*± þÿì½LSyÚ>¬ôQ†Ô”Ž3´‘Ɇž?d$ñ±F°Abçy“òžh&ý~ÙdÌÌ3Zºä l8« gB²Ø×šŒ1»éð‡:fÍDC6ólŒÙt“ïó˜xf“}Ã÷ß,'1iþêQôÍ×÷¾îûs +θ»Ž0ŠnÏ)å‡m^×}Ý×}ÝÆÍ²àûüÒ«-•°êDþŸ±¬¢‰,‡l%<Ò¨àŸM€AàÿñK»¾L'Ûÿ6$ü¯€€Š÷+hk›oìgäJöø}ß<ÓÈ  º¿Âç T öøˆüªº£Ã÷+_uõ¦jììßuñbU÷Ly@ù(€§¦‡)@,û9¬ÿìà)À`°*qJ€·ŠÎ< Âþ¡v"í눵ÏÖ'¼IÔ}¼i€Lªƒh&’ ÿM¶†¤í‹Ñ_§"n@\3ú‹0Îá;ر Ø)?±Ñ³+Ž„ ('øYR «Þ>?*ß63ÄíÙT,¬ØKò‰èX!ºÄ5/,¥ÄÍïUÇ9Úͺ›HþCû_9ÔéqÃ,–w}_@6ÛŽdrÒŒ’²!ÿ³þé\ÿË  ('QþnmýqëáÃÈ8Øs°± €ß«aÀû¬TÿKEE8¼Ða?£HÀ4_d%ÐB¸-<7¿ðË……ŽéŒ¯#hóùªÛÜ€ Pý«êê@GE1"MSS{«ºË |” ÀÓ„Rúód?§Ë 4ÿ?§âÿhŒ¨¡þ©ª•þtÅ€×›¢·éÝÁÑö„wvc Àlb4‘¬Œ>&ŽF7ç£,káȪ¡¨c@W%¹X5IPÝÜ@’Ý€¡€}ádšðÿq4ê<²9€£Žæ5 à™!qýåé„ûßÒÕ8 @?Ïý£‘-öûiÙ?ëÉ÷aa…³s‘õˆiË €²"ŒÐºH ÈÿÑÃ4_!§Åòã–&ÅöSžÏWŠªú:=g‡ `˜ìÛ P~>[² OzܲÜww<ñmr޲08òÅ$qÝþŒ1Ò#£ÅÅäg†8 Ðý­ÄèGÈŒ`…#ü§‡oOŠÏT¼yó¦+u¥ådž±d7xëà?‡ ƒŠ¸)Àu«6@Nì‚b ÑÙYŒq9Ùrr÷îû·^† +°‡ ¿ç`çÿÕü_o×¼óöÿÝ·ëý÷ÿSÿòI8¼@õ8žÜ î(0_½·ï—  mˆÂ$ <€„ý¾Ž‚þOÿ…þ÷_œªê.”2øîa*>€ì磈%ø?zŠ +ýÄ5ïÚc +/„øÞÔ”7•b'õÞz´Žœ[oýïOy+GÐñx„XÀæd’àÏCùpנȃ2ø§RtMÌ\(vÿéÊÝþS,>;Îr +ã5_“?^:Áw#ôÄâAøó0¥]$Ìvò±Ø=†MœO( …:ýF(İ̄"‚Òw„Sx—y~°ød¯{nK ‡à@(Ê´âÂÔ‡kkÈKr°Ôˆ™@ˆçü ^°Ê¤&XŒðÌYb‘‚¹ÏÇè3<ù,L:¼Å?¿…ß5Y¢n=É‚ÿÄ€€¢l~b `Ý*ü£üï’Q€e4Ô`dQ›Ð¹þo¸DØùða¸ÂÐCྠ³ï¿ÿI__E¸bþëLf>ìóÖÏÏùæ€ü0,dæEhãX@bm¾¶_u@Šþj¶Bh¢÷Á¼÷â`¾üs/eðtàþž½¥Ëè_°ø/èÆû­CÚõUÞÞT}Â{Ä›¨§·ŽŒ®ïö§+“iàÿã‘tŽD£ÑMè(,ñ¦^ÂÀ*äÐ/WQÿšëû j¼À œÿ –%ÃÿŒÿXþ÷½ž0£ð!¸ðµ‹q€5TÃBØ¡¥¾Ì v +œºïĵ˜ëàL½µ¸,~Þ!úbfHZ2ŸbÀfïoAy‘Oì-pDª§7°A(çð‡ +¹}ßûôͬZùÖ2Þr¬6 ,ñJBÌ»ùþèlA¤ûˆÉ2å3Ì|<Ÿhˆ±$ +>Ã(ß’®At`o$–”Ÿ(¾ÿÁο’ €5 PM0þ# ¨k9´,ð``Àq´ïÆàîÃMðß#€hÔ¼Ã€ŠŠOúþ哾p¦m~>0Ÿ ·Íûò‘ú³°€lÀ¸€ÿm$´µ ´q pµTý̪‘$D€Àgýû§¦ªºË»ÊG™|÷ º4îÁ™½‘…üÿ9 Ì^K(ÀO]H¡ûÏØæC¨ŸJ%éãôâ=QO—ÁuÝühÚEõOàÿ8áF@忆Óá5Ì"î>"©`X~œ@™‡ÿKMÜ-VºMŽÑ+ +ßG‚Æ^>¥`ûF 5wΟíþö3žó׿Yí‚­Åfò®M`»ö[†Œ'ö-3äòî ÉéSʱ”Hø^PaÁøØßKðïð¬í]ɱG‘Nº<\)®°àÐÇA ¾½Qˆ7 +(!À+497 +‰·Á"xŒ 1 08dXœwhj±ü¼æÑ²KùX+Ô ² Øv·Úki€Òÿ™p <%ü[à@³âÄü›Ž8KXRcKEOE.Bî#:;þðFžMôü öóÊ€O–Sfß‹¹ï‡DؽËV}ƒs&o$¤ ò·³¸„ŽóÀ0"Õk˜Ë/æ +;×UÀ·õ‘º¯?d‹8»ðùyKïj60`œßçQD^MÀ ÆV­ý¢#ò>o.VTÀ‘2þ?ü.›ÉÉ'ÙJÒF º…TØórCŽ´ÙÎø HÂP4úõä³y-žÏZy¶r¨Â³<~hü/Ëðs +ð¸C€uÊàÑÿÅhtÙ!5 « èÿ*øRËnNj=Ì{€Žõl¼u QÀÈÜ…ú@8ö}íËÂáŒÏ·0¯Æ;2%'À|f€½…Á¿@Û<6ãð:ÕÕDªÃŠ@EuKMýû§”Žå£L¾ -út4þœõx¨ú? + ¢þ2x +€ÔoÒ‹?™„ÛÏŸ ¨g? ½#ú@ê}ýë³€QÎ~âC“èüàåyœ®¬ôo².À +÷ÿª[1 Ž³ÒŸå i>5‰ÿÑ´¼¥q鯳 ÀFþ¢¤ß|ÏŸaM‘L½¤3HÖ°$æ! +€ z%gjÙq+.‹ôeãIü“€»©˜ÙÚþ+.LBßgôǔ֪ÿm@{މBá>Ìþ(øe„½‡ðÐɱÂòNî)wí¥ð^Á+õ£ @÷Ž`„/Œ„e3BÎ3 Õ<ˆˆ[š©•ÝÝ?¼À1€+< ˆ>Àjÿ¿nµ r=€œÌÀ#× (kwnݽûðåžwß=øî1¬bøÇñþû¼ +à“¾OÂ(ÿça`F°Ÿ ß·àãïjËd°*¨jýtX@2À'M„þÕÕMýŸÑ9YÖ~ÊG™,. >LøÚ~ ý Ó¶ÈøPöcPu[`)@¿ +4}R nò5U755½óY„‰L¾,”2xâo{ÉXšYDnÜøœðÿè €SJHRý¤Hú++ÑøWG¿ŸŸßªìOVÒ;ônº?uâ„·þDêD¢™t$ÜÞ^ßÞ;ÛÞ>:;8;A½ŸØD*-!?Õýj/è1¤üÉÍó Ž–LÇÏŠèÀ?®l€šæ*ª¡xò ­éqKS @<‚^xJcü~c ¸›ztÌüÓˆhnøP0ËU>/Â(ã)4|ÍÊk½ Æð-|àù;ÁÔÿ†ý@À›*ÿ•"ÊÛ~NÍ“óq¤>{Á”ÚÙ‡‰qÅqžúߊ×A IA°JªR<ÄI0ïq#€{– å##ü׈Z扼ZuvÙÚ© x&ˆ¯\P)nP]½öd K²€PdÕÄ=—NçE—ÙH$àÖA Ðù6vTì +CÕÏ´!H8ÀBæëŒ+d2ˆÚ—Y˜@`[Ç‘žýG Яø¤º‚êÿáESÓ.nÔÕºQfå£LÖ +Kˆ^ˆÇ³Ÿß8ª€¿€xA.H{1¼UYég= ÒïJi•~¢éþJ:ý•i"ôï'ê½UõÞzï /âÛÛgƒ€y ™¦ÏM—´ÿhTºÿ Ñt:šLÕW%ÓÉÔ&êH¹Š¥|:¡NÄ09”O&ÿAµ ÈÒ½D}(ßwN±XPñt@cu  Ž»É[ò1Pü€zô—VŠÿä ›óƒ< ,û×°€µè/@.î@Ä  `±`Àn8Üs°ç݃=Jhl¬y«æíš·Þß…) ówÀßnã‰\Ü +XÀ{¥D@´PòSñßðµñ ®èÕÕŸ`°¢zW z×®¦ýÌk»¯œ9Tö‹”2Xó\–¶/6RfàQÙ|*q-qʵ°ûÏmü'• ÞðÒµŸq€š®‰¤û“ýÉä‰$FNÐéõÖ'dŠ0•òr®Ò#QÚ­þQö?–Úå´2‰Åþd4ºY¼0p + ¾*pžp”8À¸à?6ÿ2ðx´8FÑ/°ÿ—ìï7øÄϪá8ìÝ‹‡,qæb pp™ç5Rsv\C€®˜¾›£ÇÕÝ+"ß;¼\Ãáéþï;9çZþüNIû/”èÁSYƒãŽðæc‰ZâÀC´B@7;¤Ã»£›ñ4@ÐàÔ±+éŸþeD¿š?Ä~ƒb]~k]ðÇeM Ÿ2h,s €=XTÂnŒ/žÄÀ9à0€_C +pìÃFŽ~ë]}Õìð÷…Û™yC¦Ìó ó  m¾…L[ ­ƒ(ðÿ“ê÷aôùªOÂÕ »šªÄ€ªµg¼ÛËv‘òQ&k ž6–`Œ# `ô(ÿ¤“ ]€3)H 2ÈZÿÐOàßê?í' +¦Šž>PYÙߟ$*àv ä³ýý©Rã€+*òÓ\é3þÓÿägPéRé_•¢ÿ™~ìnCK–Ô¥\AMÑqô/çÚË €ây-âá  ¸ZÊǀϫBò‚]CVs»!¨ë¶¡3äSilE"h3°ùРåÍ8OÖOW!@XV{Q*q…?½<×äœ"ö O2¿ý¿87ØV@º±ÄaELi°ÂÔ@î:ÝYO>>Ó²y<⦾„шNôϱ(åNpn<ª+0ô—úO ¿½¶ r€Gÿ\@dq‚‡Æ•pù0ïx·ç ¶Aø°ñ½ß~û­š·ÞÚUA'GøPõO•|Ø×!€šT;Ж€ÀÆ?âm„ùmT÷+!Àh +#pWSÅ~6ŒŸöûÏœÙî)ãDù(€µ @œ€ž?ƒl? ·” àÇý$ePJ€Û@+€ :*@Zhíÿ‚ÝìÀu?>ÜOCP0ÏKÀ0ðÓ¦/@_‘úü‘tôñÈfL‡ë¼(RáÉÜ¥Z<ÈÖt´Þ‰Äe€møã±ðÜ]Hìï-J‚_ÌÎñ³Áü¸žïa\Æù C-à#4 üŒ¡IQÀ|ŠPnbçžú‡BÎ)íúOq6ÖTæ*‡Spâa‘-pL£´ô؈Å2ëldÿHg%neó31¦-ãq“Mƒÿ„µ?w¤d]#÷O6¾€ÚÀ)¸&€:q®í`üK¨þçE¥ú_–Ç9¨A,€¬ôô4|÷O~Hõ¿˜**ª‡ þ}¼°M!ÿ¼š$üÇZ …_fæùðF`€ð¿ A€&ÀáêŠ]Äv5µà^tí8}åJíÔµÁr`ù(€’P,rsíbˆ}>øP€Sƒ9À}Îþõ2ðS9ïš½\¢§©|§ëþµ €áßOôàïGS€(ûõ¬øK¯ÿqÚ/J€ŸèÏþE+£D!Ò é$‘¤l‚í€+Î’M À2 +9NÏåÜeÈ+ Æ3™ˆ[¼®9ý†ãžW4@N`Í®‚ö|Ä€ñ /ß7Èyºý%Ï/gÚEI2žRZpÙ9<ÇÚÿãÿü….8çï,z¸RTiCŒmàZºfÚ¨ú5è!3ׂ0Bb0;“ƒb Ãúg„s™NÓX&¾Ä´i£¿K±N_^3ü?þô&C:eࣵ€R,€œÔƒ@LRýÿî{oƒ¼óÖ®]ßœáhkóµ¼ó k s°ÿÍqýø÷eÚÿ2m¾Ž§ò:öÀX £é~×^ÛqÇ_{æÚv« å£L\r_äWhL ± ¯c ¡—ï+Áƒôí"®{ž +{; ‚fzÈ|ª@Œ9;dúú¸w¬9§øà‡ÎÍý{$ pŸ (j9Èß¡·ùÑàKZ^À¸F4@ãmŽþOóì^€å;›x¾ö7ÇÙ´7ö;)Ýu +€w|kUÿpÚ]ªýsÿÑhiYäm@„þ8E8ÖxðÖÁ?¬ùðí¢o÷½S3„«|y_¢þæ‰|í/d~É@¬ à˜Ètt° ]ºTTï  ‰ð¿z?/‚ê>ýÍWjkUÝ(OŒ”2ã¡€ŠH ØD à(Aÿ5ȉDUâT›ôV%fé ‚äJ*÷¥T'ìF…ŽAÀ4Ãÿ*@Ÿî—‘t èŸû]b ð?¢Êžö¯ÄhA%l~EW¦*±z¸ßccñi/{€=j¦)׺!KÿÇ:ÂÆe°€¸\iqÔy Vç<· À½ììþgÇ#Âã½ùññ<Ÿjÿ ¯Õ±9 —÷X|¸a?¥¦ÇÃ1Š(½‹)œ—<0õ0ÇÆ6“»S°:Xp*rÂb fã±üÌ _Üï¸e:¹ +€ÃãT÷«|‡e0€kLú6˜k¬úWV§ê¾µ °«NàúÿÍú£æÈ£Gˆ” ¸Ñ¸$ +@kÏå:ö¼û.6b Ãt {ß`‡oÀ‡­@® 0€þÿ/@|˜ïèȈd: ß^0XAlà6DÆNŸ>}çÎ•Ú e  |” Àj Æ[׊oh¿‰0lŠ}ŽUÀÛ;U äÿöÁ!ŽðG§§y\Ÿà;éçrî`<´ÕàF¿?MÀÎÿÊÝ·A-Qe¤Ï`M>XýÑÇé”L&Ó +Æ @Ÿ”J½Ìq€78ælÌê!݈È€ÆV€ &Àÿ V>®9È)ÖÖÆ\  Ô× 9k˜n ç%~zøqžDäm@ôŸ†ØúÇ} ]Ì+<»ÿBÙ§ÿn: +騜´¨1؃ ˜z^Ãì#q€¬'ŠC}ÔyÍ'½eD6Kèºòâm +ØY`c6u«Ðo¸ùï|+€€Ð2á?zþ‹ pbbbqq"81Ы€ ô> +ð.æß­yØ_Sóvß;„ÿïôUÂm¶ –SÕ/;æÅÿ÷Ë}_/|½YàV±€Žù¶À¡G  y€l¬hÚ…À@õ®I܇®Ócßœ>½cÇ•©3U×b÷ËPQ>Ê@ÍjÑó,ÁŠÁa0x²¼"À5i @çlU ++üé‘cc¦Å·Ïþ(úÿÜÄû¥ü¯Dc“€¨ëYHŠ ºÿý•®_ )ìÁïm˜F•wÊ›òÓ! àOy½/÷¹×1ébX>V1çè¶ŒF$‡—ÿÈáqá_VA30M‰Ò]‡®‘¾(€¥– æ{DZï/ØÄeëý#ºåÓ(ÚÅbÎÖâ¼8‡qÔ°ÿ† ì°„ì°FQ\yñ Ê+ŠO=$%ÐäÉKWÝ04ËÀ8@œm3Ù| dÐòÁCûuýûƃA¿yøñâÔW¸Bæ2ÿˆ¡là7- ÿ³ Ú²xí€ÌtÉÀ²Ršý1@Ø?±œhYÄ`ëVqôôî9|ðÖÁcïã¨þé¥"„}Õ¾À|À×öÁøõ×Ìd À‚ÌbÀÂBGfRÁ€¯c  =4ªwÑUSE ©úGœtâî7,ÔÖž9tíhy°|” € )¹‡¼8ƒº @6æ‰}»1ú—ÁQBþÑöÁvz=Ø>8˜À +Âÿi,ë!Ms3D ‰.ÚߟT¿_©(þ‘ ÀÓ•~5÷§(€(ÿ¢$ùqˆ"(™@~O>&Â1†Ý€^ïèË4zóÓ¶BtšÅ1t¦#®8ðòjÛÿ< ‚ÿ–l(þVÁûŒÏÆôtk„ÜÐ!-?ï%fé­üøxo0+I˜ ’¿PÀ*ÇÐâH²ÿ–@ øG"¿}ÿuþýc=Êù.èå”WjÂ|t=(³šÕ…(@V—ºØtóµlòŠßÏ‚¥$baÙÄ“$@(€i/o$@€ÚÀã€+ŒüΪ°® 8° +ôè]Eš±@@ÿE(¼ »·¶¶ö¼)ÀAn¼Ç€šN\÷õ ‡ÑChC +À¼/,€L8³ðË êß‚l¢Ó—i›ÎPåKG‡¯C±€j¬Ü%+jÇN3þïØQ{aêÚ)Oy |” €‹CxÚ Ç( ûc±1ìÆÚ¾Ñvbƒ³í탬ÈK`ßô~ºJDG*A XÁï¯,9ý¤¼ïç¾Lýjà/Z:Ôç H„ù3‘àO& ÂD ù£ÓcÓc¤PŸ}yïì0–lŒœY„¬;Ôâ?6å±?%5¼ˆ¥ø¸i©€%ÛY/¼8Àä)é8À +?NàwÄׯ³AAI“S@FLÍÀ~ú÷çÜ^î[x¹ðéäœï’Tè˜~ĉG;™F^eÌ¢€Þ·ây)ÝM'÷úiðf˜¦¥D&ØM\ +  ý,ÓCd,Ó¹¡M€‚20ýOü³N¥W÷¨À.C,¡P3¡?Í*9À{/íÞ +À›°´Âp°ó½·ßƒðÖ‡DX¨€ +0O À3ó_»£2 ^ ÀGðß6ݘ0öÏþ;Úšx@€ºÇPÿÞqgG­ÿÌ¡kÛ—ÊXQ>Ê@=»>„Ðq¸ÈÒ­¸Æ.€ì((²Ò&;Úô&ª¸À{úàÇQ>üýü£<Ê¿ZãÞ“Hè^¹ú/kÒ°=€ÕÈÿ Q¨ ÞvoŠëÿ(:¬Œ¤½‰ÙüˬÁ å$Æ"`Dòhj$OwÓ´Õห¸@Îz}õœÐgÛ¥¥yá´^Âüü¸$hyADè!±ƒv,ï1¡Ë0Š?ý+Ëô?/¹‡[Š“û–NRA5ñù!ÏŽk¶AÈ`ñBà [âˆ7_¿Åïô«gò8Iž.– +›fÅ[¨q„°&àaÀ cÿµ$@²W €"°!è4C@û¿ýÁÿ`Ë¢êð6 ÖÖÃLzÞbà{Ö` + /owSõ_A/™]‡y30Á˜qÿ—« #M€ß\Û@¦ƒÊ8E hƒ@ ˆ»dÀ¾Ó;Nûwø¯Ôz«¶[ååc£cóÌ?×6@Ä¿éàgX‰ä½ÀŸÇbGcÙøMM»ùÿiÙXo¶‹Ø”Çóûk´~?÷û  Ó#%lçúžËû ýéRÌŸ²à   À ý¬ [€à ž0ä~Áÿô8 ‰víe> ›ö’iÇ-3d™…ð"À½i(ù ’éÐù—Æ;€8ìéjpeòz¡€å|¶Ð,~>èÏrñ¯iããî"_™°ÐÑw¤[’7-5(fÿ'?ÓQöÿÍQñòõÃB)4¨à¬˜ +€u¸ã²ÃH’ƉªÛÒy¹µË½^]€›áß“Ïc bÞ¥šH~' x$p£DÄ‹`X(>™ ô¯“òßP!€¡æ—ÿÍÜàÀââ¢x þ·îÞÚÚú&@Oϱ^ø^#<ow¾õöİ¥"ì£ò½€p[¿Î„±ð— n*ã??ïì´Mû:Fý@&ÐD'q€½¸]WÆýOs à´¿¶öLÕö£e  |lПæfŠy°*ØxòÔ™€üþGeCïÄFc±s¨É“Ü ÿ>Ì}ý@úî+ò€Xü0á>™v€‘èZŸ@ZV öWŠMÀ%üO§eïÂGFÆFÆà¨ô&fG_ª`Ú蓘¦UÌx7(ÿ6Þ) mZ ³éȲx Â§øk¿-pN.¯”¶Ãx¶¤wœã€Æ³ÁR1&ÃçŸ3ãìãéçoN‰Ñ¦òSµGÕ^aÅI ‚‡Lά$èÏg#º¥]U¼+«ÉƒíÜ/äœ×Hò?Ïðïâÿ¢'’×DˆDX-³`«I€ +Bñ_@çß)Ö­õ–<<Ø%&`="ìoŽL4+ €8êÿë—ø üßÚêözØÀ€éz¸¦sx8¨à¿-˜'ü÷þÓÁd + BÀ¦3Ó¾L€E€¹ŽÜiºà€ÂÔØØOÙ@‡ÀµA«ì(µ†WœðÓ«Ê@Ä-x´ìÑX–Šÿ›Ù8½Êf³££±Q,òIV¦ypÄ…pâÃÑ•~i(„gsæÒœ(eÿ\tdnd ÝŸæê?™RIBéd*íô&°‚_6}|`zäÀã¨?ímy àšbMKúNNéÿz$XBþR€ÆtÀÒ–ïA@#Ù¯˜{`@€x.“þûNnZs”KVðKJðæxÀóyþ`ËrÈ%ÈéÒPþ¾6£€÷ ÿ üoðI?\a¬5ém€Î  õ¿œüÆú€:*úûœÌ Àk“e€œj`è‘8M4ãJõÐh¹Î`+]¶þ«(=Ÿöˆ °¦±±c€ÃÃ[ú*ú Šþ-ìà&æÿT€rp6 B:ÚÚÚàû#ôÏLî2wöp€_€}œ°ãοÿÌÔ¡kÛËyÀåcýÇ­»»{Ýžu+(Uoê0d5O6ŽêßþDzxõ‚¨4%0ΰð_Éžpû³ìÏ$%X•ÿ«øOïOõþ³ã»°]€°?áu·Óÿz<Í +@º²jЛ|i` @‹÷Î=Ìé¶›ÅGUçýp6?þÄõ?"x±)@޳õuAå6b`œ9@\×L­!.ÀÁ@tò A§ÿ™F!çh–GœÈ2.¾zièc¨›$&T·’˜b¢ÁÁø¶$ÎËMã5Y D”Óü_Í߸wcæ†à¿ €ó‘<›Pÿ ?ò ;´ ôWD`½NLü‰€'‹kFXýW3€*€“€]àDóD„àÿúÄââu¢âhÙzik+ºo" Àèlì|ûCVúÂtÏÍCýŸ`X_³ ,«çÚà t,L·ñ2€ŽNœÆü_4p‚ þ}cûNŸû†5€;;vÀxÆ»}°,”uúL÷‘î=¯8àçW¥p °ùk¸7Œ¬à?]&‰DŠ£Åêw@€Èý’ Ü$Ÿ´kôç¬Ñù+%pPÖ¨ÍÂ)Þ.Ì[‡ê©ÙDÒòŸ}~„˜Ž¦ýQï©ÔÐËé8ÿdÃѯc=×jô´‰ëÒZÊ™íɳúîáë8€8×ÞKŽS¼¿v¡¸RÄF@>‡ n<†ùƒ 6žö" ›‡>@+¢íÜJœnQ—%“·ì½Šk…’>Qp$ÓP­ +‡aÂ*è„LÞ{Äó¯ þ[•þ3WgnÌÌ0€€ƒwMi‹j#ŸXÿ +Ë6 ÜNÀ:¼ýOr 0‚œ'Æ]À@0Ï<â“c•@'êÿ–*ÿ·ò•ø¿ÙsŒÎÆcn묩îìæ³Â…}÷ü—êß,X|Ó™@[G` c€§ïæMHxpäî7cߌøsÀéÓþ?^AàPÕvOY(ë<̆î={Žì}õ€\á!v²m3×ãY=þ盆žÅH@ø;åLxS•IDòîOóedÚ ¨T›~çø#’PŠþMWFàFyK @Ò›ð¯÷zO òŠÁJ?³‚èÈcæé‘tbÖ;{Iõ¿MUüoLê˜úÜmD eÃÇü_\iЖ‡mqpœ J°g%·€Mî8¼6Œ#ˆŽ^AÄh`íäÀ$6¢lò8"Ò]y±þ,,”̲ [ãºÆB‡Ž€HæEÖ2í×Cp ”ÿÿtüé¼qð?®D‚ôXx„ÿËfbü2= ÔÙ¥5E» Kíº5ƒ€‚þÊÈ»€šaŒ47+¯O´\_¼~éú¥K"l½Ôºuëï[[Yø°¦±¦æVgãÛÀ~âþ-ìþ§£OÏÈ ï̦3Óètt È¢VfgîÞÝwê¿òì¸sE$€kÛ7Ap>W>^åÃïÞ³÷ÈžW^(°°Œß’Á‡dÃJV4²1&š'õ‚R`°_5¦ É!¤e±ŸTø#F¦ç8¨’gG”ïOBÓkDVò@Ò[_ŸHÌÎ&‰Ñ„ä§™ `H¾Y4é=UŸøëËÞl°—ŽÐE· Z#Z<¢Bù#º’`ä`KÓÁàªP€1¦Sl„â¼€(/ñÆó±Þ|^ fAˆäó1”ÿðÈsulÐwÎ[¸lº!öíã Sʺ_pr-Xê]Ü—=Á‡àHCò’’~Ëëÿ¦¥üO^p55?sï†HZ0­O‹ZPI°èĺ–CÈ€føçõ€ëàBÅ‚ÿŠE‘d +pí.€.ÛmØ!w Nîÿ‹01q.‹×[®+ã?ÕÿÿÚÚó&GÜ:v«¦ñ8@g ¡?(ÀpßUøÏÏ ü‡±å?̦ŠЖ ø¦Ñÿ¿3ÐÁ¯Ð¸ƒß¾ààßÈ ,D¦Xxéúñþ@D_ácE›ÜsþÈùM„ÿÏ«° À):KÄŽ20ì~Ó(MZZ<Mzc³^oz}¿»Õ7J2À¬íÏ8€ÜÎá9¿‘'óJsÄ¢~i¤¼^Âÿöã³í£P°f°2å âß²QéMœJ´¿v,!P¹yfDWæ?‹ê1&h2¤·âj9À8Øp¿èl€€%3q­‡ð½gò½ âŸc{Çó˜Ý”‰£ôh&s—¥¿—ð<¿;ôŒG„°ƒÂl2pŠâM> î÷Û"à¸ñÕ÷1Ѐå0ÿùy…þ‚üsÿŸÎ@`èô‡ðËà¿;6v÷4êñ" À™3ÞCÛÚ/õ‡kÌìÝ_QFÑWøÐg&÷9ÿî&ê<jMþ¶ñ4ê6L£ÎðÜ4@H&ÚO%’éd‚#z°èw$z`lV€9lƒÿôÜééèÙG˜Nû+W€G˜s'xj YIèŸLÕ×'f‡ÚÛ‡¼³Ä2R~ìœb'`š·Ânà÷Ò§|yó…?®;€ 9[–i`pÈ ^Lc¡¯ ä]€nY2 ¿Æ@älÀ@‰ ˜„‡Ê©_ã`ªþÑög@l\L€ +Ö#:q•z°Bð¸!¢¯x·¡çÝ UP…?_Ô6 X\Wò†Ø€Ç'&¤0qýúâuܸ´ €[ÿ< +pì¾E/hôIãß§êö*Àê[>_ hËtd:@ÓtvŒãÖWÝÛ÷Ó}cûÆÆ¾“Àé;;îøkk/œ9síåJvþÈþí +”%€Wÿ&»÷œ?²ç•'Å /Âi`50=¯—<šÁÑ€<ºæmLxÓ©D¢>á=‘JöG ôÇ  êýèpW€àŸÞ™æQA¶Œ<¹r>Ï”LI‚üªÄPûl¢>mJ¤x— @¿$ªZõ‰DûÍæ— ð@➦ÐrE£`²GÖÓÉ ñ<Œ¢Ä#–Å‹!,mÈd:á?øÒpuÞ ˆ,  [ÿ{±XÞçT@¾m²ØÎ9q¶#ð&¢½&€"×ÜvžDy€rX–Œ^óH¿½´’[r¤ N°NC@N@e0@0d$ÂY»ä¨°Dëep:ÆoÌl¿z~ûùí“8»'‰L¢0CøßÀø¯1E{õæÞð'̇  zôz¾úßaÌgð§ob1€Âñ Xi!D<*Dý©öÿÙâõ—Ü0@¢¨ÿAÞ|“Êÿz¹u«±±óÚ·˜°®Øυ骯"\‘á0_x^|>ìj Põ€ŒTÿÓ˜`üo>}—ðŸ°.À}Š\¹³Ã_{aêŒ÷Úö«/M0cGNìßµkWÅ®2޾ª‡Ñ0¹gÏž#{ŽœÕ •”P\¢'l*á˜PGÅ¿˜<Ñ€¹éiXä#Œõh¬6ðèVÔº ~?Çx뇳íçÞs±úÙvoJÂdC@šjÖüÞzï¹Þs/ÿe€îègTùPÑéfÿÈv68ýµ?ÜèR-Æÿß,m@ Âñìm‚Ð0Ù7`ïx¬+÷$tLƒhJD™‡û¸޽T¤°R@®nMc:À~Û4 —,1üÓy*Ú&CÚÃþìu>XW¨DbK¼ð`Íp#ö½â‡ÃÓWgü«®žgp^º|ÜkÈ744ŒŸ„0¡Mˆ  Y5ëBJÀõ€ +X™ösiôà2ðÝÓõëž8¤ C 滚YP=€ër!øàâ+!ðJ€¶öÜ:@M§:†û†Ã}[ú*¸òÿd‹ °pN¤\™0•þ˜ý›îÈx°õÿ IØwwlß¾ŸÒË7n €÷]©­½P{èLÕöøKùÙ>ÐcGöþhÿ®¦Š@E¸ ¤¯(?7º' þÁ^PdeYzKK¢¦§ð"†T”ÿHŸ»æ÷§ý#ÞAÂÿÄ‘Djš€¦D£TòŒ°@ïaj=€è·Je˜v›¬ì÷£ÿÏúïl{ïh¶³D¼Þ)ô`ôsB`¥ß;š:›xÁs‡c|‘’@Õ½©ßÇx´±º°”¨å=:'³€˜ŒCøƒ½°‹ú—ɈGæ;æ‘gñõlб@ðŸG ©Xf)‚~¢K(–×{K87ÂÓת[ÂCSÀ¦dâè5÷Kè7ÆÒ ŽÉŽ’œÜrèÅu ô¥›O7Û• t +kˆÅ«ŽÿXýGø?sµj{ÕµÛÛo³@4à*D€IîþçNŽþÓï(ÿDtp9–å +FÀe3d>O¹‹ö¿Kä€"Pø6þ«=‰ì‚@ ‹?ãö?S€K×[.]gÀï/a +`kë›­oÂøëOõܪá( ÎìîÃQÑ·%\A, ¢«~5 €^D|nÃà4–wÜ šPwçîÝ1ºŒ úLæïpæÎªºú2Vé3{÷ïß¿k?Õÿáð._K_Iü‡þßMèþÈä+„âŸ%‡½[<`MðïX cÕÄ6;àF|tÔ;öÛÔƒ³‰S©‘4Lcc#Àý9„ +v¢ 2Ò¬F ú‡÷§Ó•Hð&†fÛcÇg{oŽz‡,ý§¼l5ðó@€¿, ™lŸ=;šzñUÎê[õbζ ˜A—õ?zÄ]ÎÆžÿ‡ + €ðÿâX·2ý°c}ÝäAx]‚t¾Á¬»X“ÆÔà’­Ûúܸ¾bBŒAhκhHº?ÕÿöCÞdZ†mÑïŠFØÏÒ|–G³‹:ÂøWÈt¤+€Ó:ÅW‡qŸÕ©öyËâk²âõ>ºMV4ëM¥’, ¤T ß]äomå^¨ {Ú&·Tý{àê+ä »ÒtÍÒV‹‡ò1Fÿ®PpC1à€ùVÖ» ø–6bgÖÞòXŽ"ÌÇò ¸À>C«†éF tˆ(q bÆóÂæÿp…³ˆàû++ÏšzñüÝ®8ÿÂèZ>žÍ뎙ÕF^Ä;x-â’½n*äe[iYpñµyvá¸iíÆ ªÿo_»x)ÀÕÛÛ/£ 099Cb÷ffè‡L`BEE`` ë +þ—õÿ`ìz§ð¤À$@κ“]Y R š›#ÍnÀ OneUþ(ÿ±HÐåVOã¶š[¼£}ÌúÂÃáŠð·@/[Øÿ%€@À—Éø:2ðý·Mûæ@Ø•5~÷·c„ÿ˜C‹°ÀÿßΜ©ºvmÐz‘vÑ‚5sdï‰ý»†wUÂ>ºcŸ”áôÕû Õò¨ÿ»÷îÙÓ}¾{3m}NP,eV@\^ €²ÐÑ wõlb,ð&è‚Â<ú¿G*‰ªz¯·rä¤vÿAà¡ÎàÚN»ÿÕ ` ½wôÜ—£ÙöÁs¼r0y!5k ×ŸF&v Ñ·L z+{ëêB/øY…˜–·½r!ªcÑ ïlV‰ÿ\Ç 0-¦³wÂÿ%ÙÛÌu?Ç¿!¸!v26óßx–{<DL18Då鶃E¹–é°”ñ +@á!AÿÃÂ}tà‰ØæRÛ ðc‰¤aàKËq¢VÈb!„¾©£8äìéƒN¯A4f]{¡ ¸>Ý¿«k³éèþ[žù«“À~0€*:'Ïo?O/“W‰Ìü7Ük` !pO€`x¤ö>Š„šu¥,‡tƒe€Ð÷Î*¬jÿ…U) $|ëàT€.vŠPü· €Kœ€òÿÒÖßÿž§Z{Z‘ø)òo5ÞÚÆ6€ßêìf/àp_EEßj ö†`;@€ª®Ðè "¤ƒ'ëî þÿ龟ý¿ã@iY@2 +píÚqÀÿöÃýÞ…ÖÑ€2xå[k˜™ìøï©¢«ÍtÓž7 +¸Èƒ< +€ò¬®¸¤s]·d3f°0ëóz½CÞúT:•9àíb0 Þ;•Jc°€x€àÿÜÙÍnyoN *À;4{.Ö ÐÛ>{ +ø/æ@@̤ý¼P8=Ø^ßkh/ÚˆÁ»%Ë4âÈU±sEz4 =ŽU@€·l^vÿqF;LØ¡ˆUÀˆ”ú_<€ë­R ñÖëVi‘Žøÿ|Cþ1\±a@X €ö?¼Î™ñ%¬24ðý$BlÂþVÞá°‡†€JÞ±sáßzlèþBÐÑüT´ñ@Hù¯a›)– ØëÕÛ€|Á†ÎQÙºÉýÅYž|þj£ÿÅ‹·™ÜÞ~{’(À$]®þQ€ÿš!ÐÐÂÀ²€&T Døbà‘ + dÒ«ïk,<õAÀµŸt¸>åü·‰ŸMüÛuºúÙõë-¬l½tIü­¿çu=ºà-dþ×tv¾ÕùV_߿à ¨4€°„2˜+Ñy&m9æxðOøï¢þGñU@2¨l€wv\ñ_¹R{i×¶W½ 6€¡Ú{bjÿ®ð?@÷ˆHKü eD}Åð??ÓÝ=¹gÏy”ÿ{6Ó&€uld+UN(¶qõªU† ÿ©ŠÕ³£Ò *Ö½Þ¨7522«i£õô$:ôÚõ•bœC + f”V­Éÿy²Hg‰ß›H ž=ø’á¿dêLj +fÀšÈN§ýÉÙ„÷\ÈûÑ‹Žp$Ï©þ¶‘#ZÄæ{(ýbþ÷° Ž×z\úž8ætåØ 9LQÓu} в%Þ¸iIXpÈŠhøÄÕè¸964žïAF¨òÏ𾨇+þW +ߊ\Y*®ˆO$dÉm!ôGû#.>HM·M^‰ˆí’ŽäeÄh¨8ÒÊX'Xrñ“/êÛÏíêªËm*û€Éýÿí“Û«ÿ¯U]¼}ñöíó··Ÿ¿=y¾{’Ž{"LÂØ‚IÀ ðÒѱƒ3xzs(a@_&'€þ¼u!÷-PWà€:¦%€€Ñ €þ­™€Ûhq“ÑüK@™>íi$иíCXÕÀ>ÎØÂw#à³L |è¤Âs$MwtLcàƒv*ÿ÷ýô.ìÿŠœÞ 8€ÿŠŸ "·_}yf¶»jï ýÛ5€ô€½ïBR_©Ãþ£p@÷ëA@r% +P„Ó€ ÓúÛt­›úMϨ?•H&Þʤ7Mh±ú¡/›Ï6Ÿ=ûåÖŽŒñðß4ýJ€Bþ´¬ PqÁ#® ’C‰Ùs£íͺøg@*éõ³ Пf`äcèæìÙÂKx^6ulöC®®]§G$Œ_S¶?ž´$ €,²,™(áÿ:o5ð}G¦ìM IÀ¶Ê>Î dèÏkAOÞ€7µênÃÖGS‘\†;Ïö¼/ø¿ò°ÇßÊCÀwN…"莽²¤#æ(ΈWVHÍÒ%ð_"¼UJG:ÁËÙk"Ñ/©u¿egø‹ÿü¢~èÜñ›ÄÃ6`ZVþÆÕÉk„û„ÿ‡nßfÀµóçÏwŸ¿z`rF(ÀɆ“8„'Dh5£üàk]‘ÖôÐzí—¹oéEÆÿBqM Kõ8 ÀüF.mÅ"@øÿEÿç}€¬ôô þ'ÐXÓYsëmÿ·j:é£RýÓë-nùŸ)md+€™¶ŽLGà~”¡Óì„ ðv”ÆïÀ(;yðâ¡k§~ð6€ë®:±÷Ä~ªÿwí_6ó |eðjz~ru?Føúµh0(ˆë‡m¦„Ñé Ús$X;šôV¥‰©´·2åmÿèç]uF(t“Ο·'¼ibÑ9ôü焬VýéÒŽàt©€J©@ûl{,FW Þì•s€? +@¥?šô&êSZöìKx¶ÌxÜD¦_!â%4‚¼º.‘{<Š—õ(ÄóäAt¶ZœT|P¼¿Þ›ü]ZZâD^†'ûûßÃ`´ÿñqøò½ÄtbTõÛºmß×,61˜2¥ÿ¬Õ?ûìØ$Ê„™{“ˆaX¦‘3aBTYÑÜì×-lc [yLz QÍ¢‰4Ý#ºˆá8+˜ +DT­ý2þLvLÇ_|4ÔÞÛœËÂ6ÀhZž3ªü?tñ"Áÿí‹·«nßÞ~NàÿÍÜ»793Ù@ø|üøxKp|Bv4à j@Ö@—@XéëÀ¿-° ˆâ6Q¨ÍÂTù]B/I@E³p -c—[xõVggŸ’þÊ +dV×Bp'ÝDáˆШ;`¹0ø£ú'0".€Ó;vÜá.@í…3‡Îº¶}û° P0cUUG¦ý›î@ÿ†€á† + 8,g¼BGÑj˜éžÜSEàß}¾jÏyЀׄ¬þe9WãBÏÓÅ%îóÆã§.œ¢jÝë÷&û«Ú‡†BÂùeÚèìñúèã±k‚þçFÖ6ÿe!°PÙ LñK Çlï¹D»J†ýßë=#S•  h6‘êýkèì ß Œ½>lê×éOå?DA{‚þ8X€'¯ o„sôÈâ–õîüÆqŠëvÜ/ª@¢%pøkfHÖ!8F— L€ ±qªÿƒtk¨þ×0N·ÕÖiHèœjðLê{á¡übsÁ¿¸ìOýÓ}3VàAÀ0—A,4ä‰Ä#TorL¡fsú`mÅ=¨¡°„| i09/|?žÞ2 +ðŸ?!p®·ŽÑlóZþêÕªªÛ‡.ž¡ó›ˆœÇÑ­€É†™{ ÷Xh9$ +Дջ˜šù€Àø#N¶QÈö (ªFâ@"`só"÷áäYÐÊ»€¸ àÖ±m T÷ýk·unÃD`__gxg¸ogŸbÿühË*˜  +4ÝÈðPvÛÿ ÿO#˜^V6òB€µWj¥ PEÀú¡~LªþpõßýW "0 SSi”qõU9­ú?•ýtU…ú¿»{ò5˜p[Âd/ ½´ÄÏîœìŠŠ™ÀØœ8a>544Ô%@ÆÍP¨îlÿãÄÖFÿ»À­ÿe;°»:ØÏoýl;ÎH€—gRRI®þy0Y­ô¤‰ŒD餲ڗ‰ÊüÈÂ=gYôÀf¡À €ìnÑÿÅ I€G:zƒ ДítÖÍ?¡°A7L÷ü…ØŒ€E@A òBÀ˜ ` @ é¦f›ZÑöÄãfÜ–Í„Î3>ÉËïDÖGÌý#€?çèØ)‚ÄiÁ }ÏÞiAŽ 4ñÑI4+0©‰ERÉd/ Sç¼°äÞbxçÇá[¶ôUØù‹/†¾ì:÷×®BnÓìÿ¹1³ýü5Áÿ¯èåâí‹U·ÿô¼sù2ÀîÿšlØÝpò^CÃñ“½Á“ã-ãAôÄqß,½ d"Àb€}¤YßæÖ¶Š¥d@[BÅ ùÙâϱ˜êÿ¾¸À›­Jÿç(àctµ=·j¶Ýú ¦óƒÎþ½Ï=¶ô…W[T[ËÜèÈq›ü¿•  }w¿á9ÀoîŠ@íÂ(à•?î¸RËÀ™3‡@~6@ÑÌ'ªªNì…ù¯¿)° ·±©/ L;Ä€CX_‘ÃWíBÎè>¿¹€õ+ª À‰@‚ÿ†# WL󦕭JŒHz“éöQÿ•(tÓ¨;72266ç® ,þñ+Ùàæÿa¤Ÿ=êOñ`{û_{G{‰vì¾ øïöˆ#øý~¤§+éjh0uîf¯÷ô¾PøgÄ´yp!Çî:™Ãã%€’¤ð_ã€"*à7ÎÒúqÊnA¬%êÚÒYð׈8ÀX¾!KD€—À©¨[!ÄëŽÕ-#n™†ý¬S…‡øprì9ò×^Z‘9~Û,:’B@ÇÍeó&Öó`„fDå?¸€¤élJÄ·Õ9$9® 0íâ +5ˆÞôB(ÀO>ÞÞ¹“PcKß–~üñÿ9ôѹÙösgC˜jß%†`wÕµ‹Ï|uæâÁ?ŽÛ·÷^<þòùË“—/ïžÜ=9yò‚€î±àxËxK €‰ ¬ßþO4GøuI Ð!0 ÓÐ7öV¯²ôŠ® Ôµ,* dhý×\z„úÊm"·jjþ£f[çÜúà;ÿý­}®°Ïõf¸1€nÀpx‹}ˆŽXÒu÷·öýt?½»v"° ¸¶öÖ cãÛNÕÿ‘‹'NüH€&ö+†ùj¸B–• À+sÀþ·‡q²û<§ØT€uy$/öœ¦±Ä‘î¼#8þù©S±ÁAïoò'±¡.À¿ûw¿x#¤·°€Ùÿ¨ü£’­Lª@ÚĘôÖž=ží=7Ú>‹5À$&@öÿñ>ÀÊèãh:éOH{“£Ú—‰ú¿Ú/ðiYRŠ^DxÉð#–„=yYHå?;¨Çÿ —Üë&áÍ%gÉÄÆò:ð]1MÃð_¯Ê‚'æ#¶Ä +¬)Ä ô÷g,xXý—\î?8ø…À‚Sgr +=q"²-’¾¥¼?"Ô%¨P‹„èØˆD 1ÓöC›-&6÷~h~ðÞÞ²—p|:¤ý5ö?B/, nuŒÎ™l¼8*^-®cÐ œþuºå¦,!¾'·Î^‘xð–¤f†;8‹U€Ø€ú??sw± >¬k¦Ä‡ˆaèÆJÜŒfíœgkpèßCGá¿M<æ¾ã¬Ø †¶ãæš2q“ ÿ¸Få?šã¸2¸þÇ⺶÷6$ˆË£ƒv,…û?à‘ +ÿà +ÿÃLvÃð“¡s??{6´Y€myòW«ªPÿרújê+€½çÏ$ø¿|x÷åÝ—'wß;~éÞîK ÷vï>Ùp²'4€– ìDω m …Á% +°±m€'ËÕ€)vðfÀ‰›Xl°ukëï[y@ +¾Eç±O?%ÔßÖùŸXÀ6ºîü`Û¶?q*€‹ÿX È`'+óaI + `®#Ð  0u÷î>Hw÷ÝZ©«Ý÷SÔþ%ÀéÓ¼rúÊæW”m€•crÚÑnú9VüOíïïßÕ„òŸŽ]1 +û‰á¨ÃŠ2¶¾GQð_¹ÿ€Tñ{¯ XË8Pv.ØpôT,6šÀÄßìqÁÿœKrÌ +gÇö˜‹Vúû+WMªó¯ºÑÒL€¿2íOa P{o¬÷¯½½í³ !lþOI 0}±d2MFýèÌÆ¼g{ϦBûÅP¼#Àã¸Û 9z.=5bÅKª?½Xy‹Ù4pÄá(üwxp½›‹¼“`I|€ÐÓM î~Ôÿš˜à0 ññ^‚ÿì8ÿCˆn­k¶±t'‚¶„ „gõÈ7å‡À0ç~è6hóB›:šýòP€ì#FHS[ ‚ZˆÀ  ø¯Ô!Ä-¶]dkA+…â% ïüÏá€ÿÌá-oÌñ4ÙοþxËÇ_œëýò&€Üf`®v_ãú à+èS÷8H àðå×[qî¦ê¿ádÃnº¾tòR@]æh(é‘U +à¶~ðñ 6ÀþI B€8À¿M´ü÷ú}ëꀞžƒ˜ì8vkÛ0ü×ü‰(À¸Ú¶€XvºFÀ°zÝ7ìŽB\ïhëh‹:šøyaj&ÇöÝ­í*äº.îÛwzí±£€ÿ~:kE8TuíÚÕ úø'°j +õ¡?@¸ƒ… +0– +%T”§^…ÃÖÿ“{¤€5À{&… ¼6Àíäåàa®%®!,a'àÑÁ,€ªSÉÔJ&·m ˆ?ú~ÿoÇ¢T©óÔ ÞøW…i*Ó0üô~©Í¶·'ê½¼(uF’ý`þt²Òï§×QžH¥ƒÞ³£gíuÙs_¾ €ÃnMËæ)v(bÔ`zÇÞÿ=¼ 3€jöŸ>Kü®÷©Eç76Od°­.bàæóãqe¾¡7ßoàe€Ø Ìs°¨F„Jñû,L`'ð3¶ø{<°/:†ƒ]‚Î’©;¦P ú7#âú×Ùˆ‡%Œ&æ–žxmØ+R’Í¢ca_ æLlî]ºÑÇÇÃ_ ïìƒÐGð~#3÷»Ìïæ¶È‡~ñ“sçÎvá·w3<͘ñ«3„_qõ?U»ÿ+HS{÷î½ý.wˆžlÝÝJåÿ%ºÜ + l¬Lp&Àâσ¥#òÄáº7Úð·9ox¤¬×[° Àï[Õ žcǶü£º¿M€èêP€mtþ‰cy +p8<¬á +fý<7Õe+ wª9 ° +F€±»w&êïÔª¾ÁLÀ* üÿãŽ+w® PÅ:t-¿Að?3ˆò/¡ÿÔgý¤ê_Êÿ€/˜÷‰` ¹PV6ÿa ýGlììV€=“¯“P(%áXR¥Ÿ$¶˜Xò2:J`01˜L}ÉÀÚ vÑrç~;ÆHOU»Èé’PšÀ ,€ðâ·ž‹ÍöŸM0þ{“)LŠE ™öcj0 ôb#pjÖ[Ÿ=×û‹ÂÙÄ‹Y è K€–à°ôB!¤Ìo:Rî"¼Xbx0›‡w—%§Ù·¦ñg#b/ñX½!7U>’zÇó ã±Þ4@ÁãÄàÐlº=^0Çãᙄgº=qèq&‘ Ãs°‰QÇ€Y6ßD'BÓÝÖ¿œA]Êà?z‘ˆø°Cˆ§¢dð,Ç6@œÂÃþ?úø??&¬W€72[ÞÈ R&ý€á1ôe(„&À&øû5­üÌök§Î|õ??›šúlÿ~ô¦þ/Æÿ÷Î$ +p˜H@ëîÝ­—.Ø}o7Ž{DþOº, ÅmL<éàN Sdê/àضÁv@€×` +à_Ý ˆ$ +°íÖ§þÕ…êbúÂÿNÿpÍó`_ßN• \!azª¹ÞÈtÌuæš~Œo½÷.F«ê‚cw“ÁÉZŒ|3vÚ5"ˆÍWîˆ`ªöÌÑ ÑŠ-‚àÿÅ©ýû?£ê¿éκqÕâSTGÆÍ7.›7ÿ¡Ç&%þ‡Ÿ[“b˜ìÞûÞ¦º¡§ÔaPuW[±?gGO ¦RØ6½f ÿç:»ûí•÷ý•ýý²À2 @ŸÞœ“ ÀhšË|o½wöx{ï¹ÞØv +à@Þ¿ü•Ñd2QŸ¸9t6YJ%^H ÈÑ{&"Ú\€ms+ÕDÕ€Gc2à!€¡Ó^òÿmÀ Xñy +t)Mº)ú:³ljèæ±ï!ö 1ÀfHCÐJ¦„¸Ü¦Â3Üo¤öìÿXÉ9h U;b~\qAå FJÁÄÁg`!(‘€›º[}ÚÅ:Óª³ã–Eø¯Ç‰Õ0×ü!Êÿ†þ×Gýäãà þ;ß¿1÷F&óFæw8ÃolÙò1Ҁνêzù À1µÛ«.žùjªö³©¯j÷sù¿ŸðïÁ½ß=ä wZ[Ñ8|i÷nui8yòÒø8àÿ¤ËZZ>1Qb‘ ;'xqp©°q‘ÿy¥ k‚BB°ü÷ô¤ ðfϧ„ÿ¿n¤cÛ1BBýclTÇlëT€@x'_÷)€t—„v¬¢ëÜnü*!xŒŠ}$%‚wîb'0áÿ7n&àLüñ +]j‰ü·*þ 0×e°­ØÌÌdwÕí*Ôÿûû…4ª þ«ù4 "ÀiÆØeP&›þ( ý¿ûÇÝÝ—Ñ ˜œd:°¹nê–õÝQYÿåºdPíŸÅþ9Ïh +Àh"ùÑš¹©‚#L§]W¨üítº¹½ýiiDÓ²8­¢Jdüxéé·ý\l6‘Hx½Òpçÿ©àç :-ŽÁ”Ÿ>’¬%n¶÷ζê‡^ÄðÀɈ#ÙOGÕ¿=ZòTj•&O\—y¦øíè!\oq[È%cpñsÒžm*Ã=Z ù|–wÁÐ;Îè/=áßÖ‹޹DÛx–@#‡œùkÚ9Þ€yPÛ4â¦#ð“¿xYlõòÀ_Dãɪ1Ùû§é +rä±2˜ 6ø%FÀ© +VÜ$bSÜèYÀ„ý_ü¯}ñ±‚˜Çüßÿ.CøO¯Â¿ëÛò‹‡Î}ùeÈÞ€mݘÙ~êígµŸí'ð§cjÿ{{ßc +ppÏÁ==—÷´ ‹TÿÌvŸdà8]‹# ¥e¢¥åº À< |¢ €d@ý…ˆJè²m‰¸Ž ¢­ÿº•%€cÇ©þoÜö©(êøÓ¶ÿøl€¼ÕÙ·ö¯¾Fž„t›˜t°0€ð rW…ì;}Dëêšúé>å¼Sš8}åÊáà_€ÐLLÞ¿Õû¶›™œ¡úÿ|ÕÞ‹ûÑØÿY“ÕÕji!¬™p`Þ(+¯Â±Ÿ!ܟ܃+qpÿÏe~ë5"5ÊS,º³¶d¶/!S£YOvt4VUùeqÍÜ´ ÿt]g¼¿E@?DØþúÓ€ÿ®ø£n> VRÞÙs„æC‰Ä×ÿ<ˆ&ä^LoEy(CÔM&F½³7œýÅÃöúºÂ ÐÔÜÏÐéÊ ëÅK$98ùЬx^Sþvå·wŠÖ-n;"P 3¾S40TgÀåÈ?äÿøó€’Ä>|Ъ´‹“ƒ0Gø ÏE Â= ø'΀;‚ý ÐØ21ögDJ‹ Ý#¢‡â ÿâþè¥(:Å §P4<²Í"ü’HÜX }üÑtüä?1þ¿èÿÆ*ú3\ûÿ.Î̽‘Á@à/~B  n˜ +füFwÕWgj÷ÿ¿µŸMɹÿ«ýïýˆðÿ]fD÷\î9ü&(ÀåÃ`à—vóZ€BÿÝ —À¤p b””€ bº¢¡åˆþÂî»E&ˆšlåu˜”!€F„;ö)w¶Éะà­ïëìðViP1z-õ@a«HÓÜ ð3óø4Vï»»ãQ¡k&©¥úÕ°< +À•?Öb »‡fºgf´çì+OÅÿöó{ªöî½8µÿ³~Àÿ«KG Zäÿ@‡/ãóq"@E8PÆØÍ|Àþ÷cfòBõÿáî݇÷H/ ûµSê @¯ÖØùå*Zv4ó&Ï~'8Eùí\ûÿñÿLG¬©pï÷CôQ¹ÿ¥Œ`a• x +  >áM¥3¬¦ÿ*ùŽ À_„®§aL&ÛÛS¡Á¿&šdó‹Hp[Y²e Rg @-øˆ,⓹6X-ñ"ò‹€ðP5oHe[Ì©=€÷MƒªeÃ6؈ÒƒyÙFœÅÆ{gzó Zl€.%‘ÂÛ¶u»øgüÿGXûÿ³÷þ!mçëºhv꬀²P—f’ É÷£‚·ùÑÔ¶¤x¥æO'h6áäp-Šš„Í4üÚi›ï¢`8j×Ä€r)݃âu»èAö&¬u³‹ ´]k±›u¹ Ó?Fj@Hf`C2µ »÷}ÞÏ7¶kMç0³FÛ¡ô›ŸFÛÆXó<ïó>ïóVwKLúˆl×ÙªÔQ¥+r°T“ÅüE>]ØØðú‹úŸÛ#èþ7hE-]äF*­R®î+XT²µ,½)!øðòØ’›þ'ïMü/»4ïj–ø/¿ûàÝå;îÌßy Y˜û`"¹•uü :¥Êooþ›ï¹ß{oå½ø +?U‘,øpÕ?BàÁÿèœ>wzãÂé¥ ˆLŸ"à‡à¼=}›E±÷úõ/˜xpíñ Р_ó¶èWGpjåò×hÿÂÀ'¶_¸Ø«Î~Ê“€ŸøáþÿûAœ;:™ttÿ›Å¿¸M¡þg$má>—ØZ\õX¡\%ø¿zu¤Z=a=þü ‰À,üówÛþùŸÛþò(ñ>^óùÊnÔe‰àÿÒRsUÿ7oöÝü¸ïýøÜÞ•» tÒ{õð¼ôx’ËüT]ZË[àçŽÿi.ûÏ .çÆ¸°'ÀØÏËð“ [¬\ÿ‹@ B1ú†ÃÒÚÚ•†OX«Õ—ÉÄ ²Ÿ|2+’ÿâ™80<#D5XPÔö1âq $#öÜ%4  cúðlöÙ,?}õì,ÅìþLlÈp%|ìµoG6_Å»vMuA²¾\cP/‹¦·Â +<á¥"úÿpZ,LO`ß7Uþûd…—è@…w”¤ôšÛ€PóWF¥Ê(ß—„€}€é ¤”_·¯»·»¯M€þ~‚ÿs¿:wýtéÙ`p{â¿“¹ÀíÛª ܧÌ*¸.™Ñ žÏpkæ~‹Öòy‡ãúõë§þÛm‚ÿ¿cÀEä\¼xá׿þ5Oÿó$À;ültš:T€˜@ªÑÐÿM&1xp Xð#õ\ƒð½ç=ç«V‡yïêŸ7â üï^{x÷Ÿé¦íî/o°–˜îëY% +°”g‰hòþL)‡GóX?Ö¼:†à¦nîÞ¸Wèðzô  zn¨.q°va1½%?ãCI/À AÿÆËcPDSàçµ ðp€šë[`°amx÷†G‹ £—>8ÿÝäT + àøä“[…‚˜î7v4ÖÄ#:5 +Љ@ˆØí˜ÿc@[cõßììÉY®ÿgÕQÂ! +ÈÄFG EÖ~¾˜yæí*Á%4ðpI©ÕáØvPÝĸ„vÿÎý;ÀÿÊÎŽwagÁ{WO—îˆ^€Ë䥧r½%?ßc?èìcÇ?«ÿTú÷,u± géÜxÁÒ›Dž/ûÞ® +<Zå@# p-H @ZûhØñ g?¹Z ÜŽCP·Üü3òC(F€_—0 Û#¹õÿN uóo àä³ÙY¸ÿ1HÐ6ÔÆé‚ȸ´–yœu\I–uÓ¯àMyµØÁSªWA˜ ÷X ªçæð*< @§J€ÄöÔª‡cn¯7zb¤ Jï¤èÂ{`ñ§êŸ—:çš4j®Hô1пg>˜ŠGÆâž:?­°˜üÆ»û4¤  PYì€ý$¨\eM¿ øzÌ Í_\xA2o +JÁ¿8ô‰3É*ÿéZ ›r­ŒõJ¥cò6½²¥`ø˜\W§ pöìûÉGÀM;à¿0_X&ÈgÔg`~-ßiÇjàáÍ-kµè(¾V ®H¿û7ÜïÅwÜ^º €tû:;}téöõwÿ»{¡l\è¿ðÿ]@? ÿQ¸Nw&üïB`ƒ}t÷¶ ·Oý‹H n$™¥ë¬k¦§ä)+¯ðû¬ÖÊÏuóDðÅþ‹½ìx§•Žw>í€÷Ÿ(1€{?]Ðh¢£ZÎÒ"RŸ(€‹Ï&nœQ›^“wïÖ÷Ž_ýï_>ÌW=Ömçµ/ãwÿ|íáŸ_l<$p- €µv˾ՑՑžæÄèEÄfÑZa¢ÐrùéóïFS$67¯öÝüøc7¡¿ûþ ++ŸÑeêÿ…½Þ»0@賂Þ+D€·ÛÆò¿”äcòÿ¨ò‡€aÜéÛèû™=cÍOÿõ¬nWŸ¯ÂZ쪳 ¼VTŠÒ·k—>øn @DÈ>ûäsÑãçëY4ò‡ë Cþ6˜#<ÿgçÀúOçÌ3àÿÉY >šÍÄt¢mЋEÖrþÑl1Q4 [­G¿HŒîn—, @¹ìpˆ ÜÒŽUÖ*ÇÔ©@±òå2nžб­Æê¼zÔ€ vùÃf,¼L Àédݿ»€Ä:€ $x +á-Ocá÷*»u±¾£‚¼@æH(<¦”Ê5Æ\ýÊaÿÃU¬¤$ÂAu]€“ˆ ¾â(3€‰ÀÈ›ª!]‘““•0z åC ïçrpÿßKM¦Rÿ…ùe>1ì?WwÀ°\piæÞß²ZÙç˯ÿK•nÞxï®ûnÜ}×{ÃË€ÛÖé£Sgow¯¯Û×ÛÛ}±ûâEâÄúùØè?׳qúÜÆÆiÖþ/³!`£kã¶ §n à_Ìæ/ˆ|a6§Íf³ÇŒ>€¤Z˜¼ÊoµZv +þÓ¿` À§ïô¾Óûé;ƒ­ƒ­¿Ç&ÀhG«ÿÿájRõ~"¸«濨9¦|t-)À“Å4Ðhè; ¼?öçãÇ¿üó ö™jGåøuÏÝ«/Z~yíÚ¿ÙuùøècÐ7Ò72Ò362æ;K,À P–äb`E(£¿€ÿ›7Wéô§¾›ú1€?&°bûÝ +d€•ÅïÎݘô/Ì+ºè‰/PÞBðëÅó¬þªõ6¬â$6p´2ÀÏlÀa€¿(èÅT çÏð2 µ €âÚ•>|iv:€œÍ|ò ½(ÿ9û÷Vc5 êÿYq¥~NK$û êâbþ/£f=;ykvö1\m< €ÁÀXbôÛ„ÿÊùuó•Ùâ‰âÑÿG€ ¼¯H!EÝþ×%Þ„‹wTöãm¡Dèæà,È{Ë×þLz‚C—Ž ¨¹• šÿ£i§sÞ¦ÌiÔŒÁD^îÖ+’â¨Ëô¼èŽòýÛëå,«Û‚ªµýí}ç»Tûïò@`ØQu ·QË‹êßÓ(ý‘¨†Ha‚~\‚(ûƒJƒÈøèÏ €\÷k2f‚ì±€Ea{÷'BñãP(—œØŸl×h4®ÂòÉå“dô§âùs€Ë j–ð˜þ?g_ë@Àd´ù¦ûîÝø]ï]ïJÜëöºmD|nc'H@w7Îý¾þÞþ‹téçK÷9¸7.¨€@×Wt6Ü>è\æ˜àS‚`K70ÄRbðÊgþ˜€ øß €µþÑÿà`W4øoŠºš:`Ôjñ/ÓE°þ £iKYSâÆÍ¡€Tøy¼9}~{ìŸ÷ªÎ±''þüD€ãBxxíø üä«Nÿ]ØtÉLjèri,ŸË;`DŽI•FâOsl8Ý$ì¿ùñï>惀:VV>£ëÅ••¯wÇëàN€^„ÿoZIJߢðk;ªJZÔÿK"ó­gú!@ èù™u‘<çà0¸`8\ †‹aóš=gµVÿB¨ª«Ãaø/ŸNÞRWˆìßÙ¡F`Ѽ 2][<3¬v†CB$ó×>;9ûìäÕÙ“'¡€7èDQCÌ/ù“~ÇcqÖÿ +t[n×9 FNˆCÞ—Um»µûë°º @ÌÃÖ½ "³Š~h“m<¸ÍÀ*ݺbAq%^8j–p‘¸# ÒxÕ1IþÚ¡ÈUåX˜· o™-cÏஞ"”:È2ý“ ãŠ#¬n<ÿ ÿ/vXïçèD{ÿ胲ì(; 0@{µŒqìà AõŸøÆWÜz¼•›HnNΡý¯),þxr~¹°Œžÿò»®Ø èrÝQ€{¹­·Nl[eÇkûÍ-—*ÿ:Ö|ãFø°· ÀM'0߸¯^À^:÷#:‡ûl +¼@ ¦ÀÓ·—ÄL@×Ò™`ýÎeÿtù €)€$(·Jb§ã+¤;牘á@&刻µUœ[;;¢höGµœù—R“ L©cDè’„jÅ( *¸Ä€×kzHWN°çw¿¼zÃjuì[«Öô“êµk•æã2ØxzÂçö?6âµv³ìâëöuöõuÎôõuÐ1Æ]±±<3:"cÍ=ÍÍ}†›3t‚ïïwîÿ+÷‰¸þ¯¬Üg@—E";`z½:@Ï^€ï¡ü°ÓÊÕ·Hüš9“Óÿ6–Dþ@×9ÎDñßµÔƒ~ÀÏíYºÀÑ@õZ]L¬…ƒEGqMJNÐ/Òw{ÛÈt'>ùää­“„ñðXø6ÀÂÐ5P×f ó?ó| 0 Qá?{röÖÉ«'Ož¤¯æ.;±=€lÄžuІ¡â‡Gþ;ÂûoKTÐ 'P®ÊØÚ<¯ÇÚ_©rÌÌëKh°*¼ãîðžò°«ù©šÒP/;‚‚¬ù#H’*Ît8ÝÀøáÜ•W€ÛŠ\—Ñõ1~fõïùV…Óáý¬ÕyúOVÐÀ.„šèàC2† ÐsЂiá•jd!p³4¨Îûñ`Pí°¡_.£“‡!/<&•Jµ:,5ö;üí?Öb1»•K>ÚÜŸ#üÏpp@£¹£iOµ·³ ÉÀô°FãšÜtœ'Fkuȯ­â¢ß®cùæï­Ü]ú{½q·×b³þmîNc§ ¾qïE&>p€þWàÆé 6nøEàÿÕéÛ0€ œâÍ +JOŸ:•¾|JeO…@©ÜõêÊ+Ùá¹~§YøÕ…‹Ÿ +ðä“êüoÿуå¹ZÞ,ÆñPÃÿ7 àô…AÑðê½—ñïYã_^5oÓ{–ÇYµ¶=Ì5¿÷Âj ëü%ýFz…éb´Ñ¥ÓFw;ÝF&_} }=è +DzF–"=Í(ýGPõߘ¹îupãã7ãÿÇ÷é¼ `a^ÀÅ|°° ¨ÿÕß§\®TÌÁrý-¿ù??¶´qvÃ~¢ßá_$.q+@4Þ`@]íÉ>€²¬zäb°¸ö­ø|õ¯$€Æ`1¹úÉ<@;CH®‹Çö¢è§Ó‹QCCºúÿ4“Àæ_Z ù'Ÿ¤óU–p qtP‚[‘H(” íÓkW³Å£îTE¢Ljy7€–ÔQ@N@À±R©„O3@Ùop  Æ‘‚UÄèaû2ïôˆ?í¬„*•5§3„`3$ôzKÿ½%y_‘²€_ŽuûD èß)ÃPxùMPä¾¢?a©!û¿0X’‚a•°ê0GÑO¯Æ +BƒÈ5nȼÊêr©´[ßý›@6›-æBÓgsÉRØû[0 +‚ÿööåe×½Ô²†JD¹`|—XAjó|6ûOÄä×å¬KÇòa|ÌÍ +€… Âí% +`³YÜ)0W¦¾Þ‹¾^Ÿï¢¯W{û/°ð«Ó66 lˆ`€¯NwmœVñŸ³H QÁé49>Ê,y*N/k0¿²FÀþyá¼Ý%$€_#xðÿ¼x1«5b 0zþ.WUþ(þ£¼ÈÄQ€Z‹+£5Ð/2M@Yhíìï¯ö}yõfuÛ:¶]}ïê‰ó¿4Ÿ¿y\„¿ædüïiýØè»ß ô§[£Ñh£‹;eÄëO4`†H@÷L_ß Ì„û¸G…Ÿ˜÷ø{1öGçßÙDéï¾o# +€ºqgç³î€¨ @<9ߣ8÷*DÐä· àuü>VòK|þùËSÿ€ýF+`¬ç,]¿©@¸ŽÝÀ0†IAbYiÔžµVÿЍméâ‡ÉÙÿòŸ·nÁo‹'è/V랇4ð?£‹ICœ`=£ÀˆÿŒ)ÀÉÙ€@kÃÑb"]wdìóQ ·u*TÙ'—”rµ,<lž‚0 Ó/*Z‚€=øÿƒáRgèj‡ºà–)€x¡©ü‡ŒN, H?žúGÀÉa€N‰@ZJ ýqE +=](J©$ÿ£ü}€§ µê7Å¡T÷—Ðêõ`w…ù{—ž ä7c=b¢C˜ž—8®Èq°>IÌž` £?ÛñzQõ_.•¡`Qmt<ý±SÙb¶¸µ¶õ87:;®ÓöRèô§tˆÔ`#б äÀ…)€ÉÜVòCë¶ÕúºZJIÊ_j¾yã†û.çÆâÚæµX,nKªÓ–²±@ ~/•þB ð‰Kÿ…‹1à\ÿé®ÓK§OßÞ ôß8`|\Æœà4]€ÿÄÒØàä¡3|LJ`¯ª €Å_œº};.üê}kÀþqŒþÁüÏU¾F›Š¦Pö»RË\ðcƒŽVìàU@hhMÞtFÀ©†a•ñ>Ô?Ô{½ìðÛûòêÐ6«õ†ô$äÜ>ßv‘ÿpí*rW»Œú[ý6ÿná¿…(€^ãx_'´€Î¾TõwÞèÈï¶¹Wèçä¥"Ÿ®âwyô~z÷m÷WpueÑëôÓeíïŠÞ«_ñZ@¼ ߣ,-å‰H%Çþ[@~ÅÕ¿"íÖwm,-mp€—ÿŒ‰Â_ÈôÙ%Nxc À 'à ï€W¤pQv¿ÍnÙ§¿CÄW:²£‘Ø'ŸÜ:y;ç¼±¾1±¨± ˆ @"f§ÊŸàÆn+1ÿ—aÀ'è¿J§Y‘'À+„ÙY\ Ù‹’}íÛ«Ùbèˆ5NƨP‚µ:C/ü –àüç$  ‚ÿ0 µý§‡»àn¿†…9µ}tªÜ?G€ìYz¿$UF£ÎT‘œÌú<¿‚½Àè°c«ÕïùÁo#¸€Çÿ0ň†&° +à]d`èÏ_¦¥/ÔbIàË_ŸüÞR>﬘Krí-&¿Ââ_J®ô ê7EÛÆ–XPïþ €C#Y@b°V+ï‹ábx­t%)ëOZU…@†_À!å"†O>9yòÖP›Ž%{$ùµÑMŒ—Ši! `×!×Å ú3†Ä ±>±&·Nb—dà B†Ät1dx¼fp\*ŽæŽ˜"|¯Žý{%™§ÊŽýª·ƒaà 9kl$èó” ´—8Ì_^´ÿéj‘ª¬b ræ°Gì"*à­¤GÓ¡Ñ´Y5@#¸˜§P„«o÷¥ÍÅê70T÷Õ%PDJØP‡A¿¬;‚aNâEÈÁ°üÇö©ÔØ…$Y`; X™ ÕY€ Ê¸7àh˜q¥°PðÃhY +£›Bÿpõ…M?XøP" +ð8çç€öÉÔIX—5®w5ÿ¶9Þîjçmÿ698>ŽŒMjróÑ?å¶¶²_ÁHÉKßtJÒèo››O¸ü·Xþ{-q[Ê’}Dz{[{}*ð_lPº‡ã>Q€Û$ôß °oàRƒ\‡h|!•<_”$ÔCrx^ ¨"Å®Óç.\øuï§½­ŸŽ0R០+€†³r´…nøsæ/Ëø(EøI4€˜‚ÿ‡‚èU.ðÐ{6@¯ÞÛÇÒÎù¶«Wù0’?Q=ß|~{ iWïr/ÌlDùOõ¿¯ÕØJµÀf ÐA<@ +`ѦŒ©V0·±ÓØisÛl67Õý6/Ý®¸ñãBIoÒ#ðwa`aÅë]±-®èP÷ß÷ à' š¶â‹ô•øÓzù˳º”'ÀÀ“·¸üªŽªGªìaêéàèQـ谰ø_¢ß«§?³§hà Àï¿ÕpzÇ‹ª°ŠÙõÿB¨6‚‹æõ$€“ûñXÜ>šóÛg3:CB °÷?s`˜3Ó™±„°‰è€Ù“Ïx +À¬'  ö öK¡lB÷ah]Ö%×"ö#VÊ\ +—ÂXª¤j#á Î¨ öç(@Vêå}ªÕuÅ­ +†ô×ò®†2¯2ó2^$Vœ¡Šs ~@§dNó" $£KïQèDOéo4Üý¾9À§ûµzíÿ¸Ë°þO.•ʽ*çá¦?ŠÅ Gzîÿoè  @_ >"å@â  ±ôßHV@tê˜Làÿ¥ðý>­Öd’"þf¿5‡rÛšÉO75í˘¤êß5y/Õ®y×E `r2Õžº‡5A©öáôþã÷·²Žâë!Ø8Ö|óFÜ}ã®—×ÇB@ýŸ¢ÚÒmIv|ÆN'Ÿ¯µµµ³µ÷bk+€V!  @ ÿa?&7NÅÕ+gÇP®?€óò4¡¿“ñ?-U¾¨”$¹äQƒøJz5 à ºØaÈkú?%øoìHEqN¹´tq™– ó5t­m¡û¦–ºáúßÄ €Úº,šãŸÀ€é®i`gz€_Il[›¯]½võêUëvóñkÕêÍã×¾|ȶëÁ²µÞo5Œ­€ýT `³,ÄlhÀ¥ˆéb³YltöŒM]õgYñZ = è‰|èEìÿ¢~Ų¸²hX±Ù>þضè%ð™à‡Vàï@$ ö{@ž»Ðy'1€·À+Ã¥²$‚ú»xp‰sÅFÀ³"ÿO0€7U8€µÈ'@ƒJ±T KßåbÑ“-†ü'¾cØ®ZÙ+þ†‰£­ï¿)Nf ‰!÷ɨ‰"ˆÊ‚]âœCécub€»'¹0 sN´ bÃG¹5R*ráL(Ò¶~Äá¹r — ü„€,PQ8 €]aô¼Aˆ9Jž½ÃQ€$Ž!+ïjrƒè0ðš¥t%D˜?ê$ +€Sž €É‹j;8T®#Ê-ýúËÇ`¾‡Ï°^å ^ÿCå¸\?V¯É’$cšYGR°d¢ÀÕ?=â@JKêBE¨ýau“€ž÷X66(VËAÖdŒ[ n)|Œ{-ÛõúRIÍæ’ÉäÙ‰öñ{÷~3®™ÇΟåeM;Êÿ¨ÆU¸Ceÿ½öñÍÉñ¹”¦=•¼·¹•}”Û*žÈ¾€E2˜t»ïZÜ  Uâ„1Œ]B0ÚZ[‰ô¶úøÚ1ÕÿÁ. Mÿ¯úû7~EèõŸ%€ –/Åîr¼eåÎ.§Óy;<¾l渨 +¶Xy$!ˆŒ`ºv8äWñ{À„ àÂÅÞÖA>PÿcÒ_«qñ8õ9ËÌVþY€÷?E ¯öÿê½,x‘³çåíÀ„ÇZp€ËüߨëÚñãW¯ŽíŸؼ½=võøÕ먮ÏûÐôoå3@‡‘¡_K—€EKD ˆj©@”¨Å¦¥G´Ä¨|÷Ú¸Ž×ë‰upÚ?NHþ×/,è å óm‹ˆ"&@|@¿°è]X¤OÚ¼ô1 †—€ƒ4ðÖðjÅœïÛè!Ò¼´…¿lX@Ñ` àÒÙ.¤ŸÛó?Ì@õ@äà€ðšDï®TXÓ[ç­Õ¿äXò¸ +ÀìP<†tÿLBJÜŠt¬õÓ5<€,èbXŒ‚>Î.ÀXœ@F þ™U“‘4›‰ eX'@€ ßŸ‹øC¡Èãìþ6ÃÑ.@¹†¸úR¹º]æt{XÛ¥’‚ªŸ]oTü ]Æöµ—kõ§‡<¤¨Æ3± «$ òŽb@;+æ +F¼ ÿ›ÕxÉ#É„¸åºDü„ú¾´ÀøO7Õmv*¼Žcåj fuÉGýÅùrà «>µ DäÑËÝÉ h‘„ùÏb“ °Ôke«"9`l”ë5E ;V +#ˆxWQv÷Ÿþhàø6»•˽?±91™KMNÜÓLj` à¶·§4ï¶»î¸4÷îi65íšI—Fóï÷þýQnóŸè¿õëQdôݸ±wÇ ¬0ÂŽAKŠe4¡©ì÷1JµöbX ¡9 U"ÀËt/b pã¬Dx&àœØZ:Âm˳Ð-{ÎËνËô…3]Ä$€êWB pýÛ[µì¹n>uª«KØz{[Sƒlüã¨_{ Mõ?€1ÿ––åeü¹L‘lqyYóç c0>ö. rŸ`Ù¢Õk-¶³l~ùçãׯÎÓ;רµãÿ“Üÿ©Ü·QéßüSùoŒÚ´Ñ€Ö0´ÄEˆ¢ô±CtmÓóÅK5¼v¥Qôó1€C¯_Dôð?°c»oc à}Øvõ;tZÜa# D€ïQ–òy›|žÀÛ<€W"ÅUòK«ctö/õl +¦6º°æ™týܾC"…ÿ6ô6^º©¾ÊšC¡ÇëA€¿ø?}%iˆü'€[XÜ3 ì±L›=Ѧãð5 Hø9ò?Žs,1 ïxAàòŸ¯9=ÿL,Ñ–0Ä͉Èh(âß +&‹†¤nö(›wËp§… ²Ð`ä +Âò‚5Xp âEæ–ö÷mùÛÁ¿&èXUuò.düʤ·ôÑQ'öñ6€4ˆ‰™óúJ÷à•r*k8è»ùÇ— mÿi}¿Î Ê[d™Ðx;Ìy¾Áe¥áøcÿ?ëX,L¢ÔWaàÉ?Œb(!ˆm $$"Ù ÖkxÙêÕ²rLRÊO÷a(×ÿ†ÚçýâôãPÎÏÀðæoÎFÛSËTÿk¨üoö»Ú— šÉÉñ{“×”Fsor"wºeµn¹}¿¶Áµ<€û†›Õîÿ£ö÷Â|†b3ÅÛAèD°ÿÎÅÞwZN@¦z/^èÇHài$ + ÀÆo.ïiF xór +ü§sºRAVDã+ø%ì QÁæsGÿ–ëá@ ÛÀø ¯úѦ\©TÊÅí}$ü-7BþZôƒè=“‹Ér0þïUi€ê‘⦼WëÕ‚HqàüÌñ«¾å¶n;ymθþ­6Vÿ[ ý|.ÿÚQ€‡MiÁ´ü±M«Ðß)PDcA? 8sæÎ,€Ðõ±ý¢Šþ•EÛ}P€ÅÅ¢ +¬÷RýOŸ·ÐSû^€‹Í1bs©ü_A@bÒµŠsp2à‹Ù?f„ûy¾~“[ àà+DÚbqMúV‚ Kçé­­ªÀTÁjµC¹ÐÃHäËã¼ÈoH›#L‚jÅuC™ƒ=:¶ªÀûÿùˆ‹bp¨Á†D˜.–j‹ À`ˆ\ò?Î^I®_Z»b0d"[Gø&µË~x¸ëV02b•¸å1iMlf}p+ôìrýp§Ä¦tÿ­M^òSVÒi$ó# «F¼Ñ€\‹…€’,!¿¿.‰=ÅÊË€í§U5Dô£ÿè0üùØ'dãAÚÈ>f2 plbÙ_ýð0ƒ€Aƒi ˜ƒ²Ü`» 2e„'nïcçP]9v¬Ä©D?þ%|Êx?w¶}xrP3=N…þüåå‚«Ý¥)¼ëjŸ#*rMº&ÿÍoOn&s“ý“|¶X|ƒ€O‚gs_ߌÛí»-–¸WHÿ‹–`:ú ù[áhíGéÿ×ÿ­¼P÷â¯ÿ/^ìçl`8ÑèéYíÁŽúÃXÞI¨ €ï±"ˆiˆ×éÿŒÇC,ZÀÑ«5•\8}¡¿¿·w0ÅG”¯´.—I¦åe‚ôe–ô9ßgYtT´·@ôÇàŸW؉@=({!°ØðRj-ÆSø÷óÇ¿¼zõákWE@uƒ> @À  ÃØaëtP½ê6€@“¶qLiõ ú€M¯µè‰ X÷ÿüÔXX8sF¿00§_@¿¸¸è]´‰€P€••û;;Dl6Û"¨‰ö{[ °W‘‚ò[|>rü/-úùEgÐîo4Š~¡ÿ£ò§Ã)€7“T¿ƒÿl8“‹’´&­e¥¬‡À‰ÇÓ¡lö„£è(sŠšÕzÞº|‰\=™™½u’p>NO`έ~]ìy Ç´a³OLùý:q `›ˆÆ¥ÀQÀÜ:È$2Cºý1l Š ¹µ\2bð¯›ý‘Øúèã£UÊe¶Ã  ƒçá= ¦Áð1± +€S÷…í svtzºÈî*;12·ÖòéJš—ð¦‘TJ›œæAÀФšñÄêØ„ ;Äû¿4€ð›-€ÈþWxøS–……/ÌÂ?0"øÜë§*Pø…4ÐpùÚ?_+XÿÃL „5Â%I´JÂ/HuYòÐ=¼nÛUù…KÇŽ…YT¯W÷¬×¶ +…r¹drs8Õ>ÜžÒ¤R$ßqÝЮIiæR…;š;ã“gé+C›É÷‹ÓïÙâkÙPÍ QÆë†Ðditÿý6.^-D£ÚÇó­<ÀÀV‚ÿ^îôÒ.lô÷ôÓ&==c7±«¦yl¬™NbÑ-Ž=¦ì@" ºH:PðìšG­œ0è:}z£ÿâ§ã>apEyÏŸÆ¥% + þ¾‡¼ògy@ôû§,*þk{€ÄþŸ‡¼pjçyõ6t ÛÓ©‹ºi®}y\lr1ãEF¿Ÿ^\~::@FQë‹¢?%ðg`,Sz­žê÷®øLTô,´œ8£?sfÁ‚Õ¦"z=·þé°ÿVD<àâÊ}Ë +}/UòKyVŸó•Šçí^€£>êAªÿWÇèL ¿*†Ï-½ û?o,uå–øX@<ø°j•Ö¤ÇkÒ·„þ¬är[Ù·è0 ·ÜlÎï÷G’—ì³<îWB“Ÿ.N×<¨R€ pžBR Ò?¢€ãTÿ󘡼ꘅô?+Êÿ!”„¡!ô82 òQd}þÅuÿ•5"á÷Ýÿ B'ºÀy¿Š)‡˜o—1ÈS€HÝ-)l »€±Coûp{‚!°Æè/‹)€`8MÈŸwqÏ9š6# ÀL€£%IáÔ¢r5Ì!ÅJs€/ýë¿C‚j +0g–ÕÄàøËJžà÷_%ìŠTuÿ0£?=5 >˜Šˆýã¥üò°K‚þ(þŒ\ç, Z­\/¥KD‚š”báð1zÍËØLTûq£ÅÜt.711}î\oïxç`*¥gÓÒY›2t‹ˆ¦8/®©ú† W¥ïÁ'¼¢öסõ‹z¸öèoµE}ÌNÄÿ|üÚñ>`´Ñk̆ÿL€£àh0ôÓU@€‹~JÐã¾^æ=þ½©Eß2°`ZhY è0 ;z0ƒ)ýÔ‚~!Gàz hì,xé®wÇ»è]\ x/#O^Æðó’Þn:jü¯Ð˽JÈà{q«ý@¾k)Ïåß\@]î˧ í«Tÿ;‚Eé[IzLçâ *þ‹Ù­éœŸ€kÚ–Ê­’ICÒï¿ä QY¯Ëœd‘?ƒV?BfÅv YNô‰#((Žpߨ C:¾–»Xú“@ôÿÿo•6´ ë`‚û‘uC!ƒ!)®g±äÑ)(PëJI:F %ïÓ[VPVÓ‘±ù/,ñ +`„(Kûþ» Rø`Ð%L% §Š4]Í;+kˆ +Uè#¢kžJP-ÑaLtìî#jI@„ïåo¶_êà x1P+—x@°‘ýSòüEâÏóN@)ÈJ¿i¿¼1 ±ñ¯÷‡ 냢— c…ý¥åšÌ+é Ñ«)—Õ +õ2fÂaŽR~l.ðÚÙ¶N´OlŽOFç1ðî<•ÿ©#@ðß>¼™KnÞÓµ» +ís¶¶&²Š‹×ÑzþcäÛÿ/Š)[ÊkKYF[[YÀ, ¯é`!€ÀI:y"(ÀFÿ9Bÿž~zGkîi^½yó¦ `ì¦PÀüG™0þhÜ®›Ù À"@úˆ¿«çºùvÒúûÇ ÿh ôO«Ñj5Ï÷ü¼Xê¨XO¿ðü©é¸ò¤ç±|/ÝPÉZ,QbF1xãêÕbÅ»j|nýwà¶cüÇè£):Óá¢êjJ ü×@ýo¡»SHÒ €‰ê>ˆ,´è¹!°0E'à¿þ³•û‹;Tþß_ÙѶ³ÈYA„ÿÞÅ—wò¬9«À^¥~ËŽò+yì÷[à¿ÊÞ¿¹€š“M€HÕx3=ÕÆ™áF´¬Žbñ[)z,e¥Çæb6›5g‹ÙC[[Ù­PÈOÈOðoøÈŸóÛý†Ì°AäÿaÆØH§ Íê˜p¢¯.®:úclDç?> 6Ñ ðŸUyïj‹‰Hà˜¡ÙnXÏù§“‘õÈ·Òú­Lä[ÈÄUÂázm_‘k ÜÀP@iÂ(yÔ\”À +/¹«¦ ºÍæ?ºX˨êe1äïKØýcÆ& 'q,z ¥Óδ”†ÍŒÙ"–_±–$Ä)<ð2{úõên]Ùeã/BÞ¾þП yIl@C¢ð= >V0¸×Øì/8» +%²…yœ0HÜŠ·Ò¿'£7@´É +¸¯³_Û ë`>Ø«ð#^Êœ?w–À#*ñÇ7‡'ïˆÝ¿Ë®övMª}ùÞü¸f.™Û¼çÒ¤†Ú ©vûû¹äû'¬ÛÛÕסì¯åGú¨þwÇãq‹%.€,6­3g˜8Ù´­¶€˜RÃU§Zë%p±uðbë;l €d@l êéïß@ûuluµçf3ÁÿÿI àæ/V›—šÇ~¡2€4 €x*Œø¬þãÆÃf@uÕã_'ÒéÛ]§7.ô÷úzÑý´ÖØñWp¸ý³à(í½jØ¿Ú÷7±ÐkÒ[L^Öæ ¡ÕÂÆgë`øOÙ„ :ÒgUñ}~#ûFnýwˆâ¿£‰°_«m‚òßärû§\S@~Xèõ½VßÒ¢?³Ð …Jÿ\› þ3X˜ÂL 8ö¼˜ðêwl‹;Þ伌„áÚIFIÂi=’L& èíë†ý1¶¨×""ïŸùAø&g æ ¼ñ÷ùÖ!ÿgtê=´  CFÀ+þäãQƒîŠ$2vÿ‘lC&ܬïÃ`À^ÆzèýAi­‚"˜Çí9ÿ®$Z‡<P‹€¨F'HuPõó„þ`C‘§Âo!3Oæ¥+Es…ÍùìÌSeP– ÷öë/SjÂðÀû•2r€ä§à­Yð/‰­AÁÄä 'Vþ¨ê¯ïô÷áVàÄBNúÊ¿–½‹2ï(ÂH€0 i@r0Œ¡ÀºþÕz˜Žcåz F€ÝòÊT:{öìûö‰‰‰ÍÉááÉI," +ð Ðî¢Óƒ;"ãþÔ×;ËFî=šHn=¶þÈÐÁÃÒÀ+ù‘îNw|å.'jÕþ?Ð?å† e´Ä  -`ãuŒ Ø(T É€ý±+¸»¿ŸÀ• 8‰cL +á?¯¨ad +PQ›þé 3À«‚$æfI:bodÕc>åì:×ÓßÛi.@‹ðßÕ²ÜXñ3°¬Vÿ^Æ{ÈïÄ€¾1ý¯Wÿ.“ Áz“E‹QýsÃÞ ¤°FÐÕZºŸÛ<b²Ïµð· +ìÇ)Ê·MtšÒÒ…®Pý»\S.}÷L-ˆ´L¡  B¨?в°`š:3µ@ åÌ€ZÿüO ,˜ˆ°î¯¿‹ÁÞÅË +G¼Äâ‚ <‹Â¶éÜ#º&)oÀýÿSÒXð¼*D—†õO,®?4Íœô#q‚8—Dª¦óÍTÔj³\³Ö0ªKoãìö?_”Bk!)[ôì;è(JÙPè1 WÎd$¹‰øcöKÉKI¿?‘°æ2QÿÇ8ȰÇg3±L,¡£’ß ‹€úü9žÐA#€À+€Bý“,ú±˜óbm³œK$"‘uÿ´ß`OŠßF [GF`D(~˜ý}¬ðV\xêƒÜD °Ë9 h— m‡=X¥a¬•ÐTi„ñ¥Ó£ÎP…sÿ0Èq£.û1ð¨&@¥ ½c€p¼ô™í?-³çQÆþcXø‡ÂÆ~øaI)ñ@ÎöE€¿aIŒù+åFõ_¯ÕĸbUl/Æä1—oÚuQ‚2/ ÆkZÆ^À]+Ö ñªq‚ò…ž+½æ "ôrÊ» T?Ÿ“ɉ³›Äˆ ß)´k4æß]~—ÀM”>" +àj/¸Ú5t¢óÜä£Gïç²VëökvÍ>ÂÿΓç`Uþ·imTý»aR3úà¤7ðX«p9#@?€nßÅî~:¯èé^]½¹Ê&ðüvéþÍi^ \AhTå ,¨4LfÏu‰i€`G+X¥S]]父 °X\^äýjRøsi\ -ñ~ f,&á! \ê&=õ»% Ø:R¶(mKOtZó£%z@¥¿±$€°4á‚?Šåƒt‹òŠG@K<ÀD7Ðô¦ªü§¨è_8£?£7é[ˆ,@09ÓÂA¿~A¿³¸HÀ»³@åÿ}Ûâ‚Þ»¸ `å%é*ýŽ=6o5€#’à$ôÿÿ4Ö¼ºŠ)„ý/ýõ Ï4 ß>æì½7š(rM&P“ËP›é-ÜQ\ÛZ›^ƒPeDàüõû“Í»ÁoHDþC—xúŸ-~q±¿×0’ˆ5Ö’‘ØPÿg€åñ ÿq ;ô¡ÀÀøÕ‚º!± ôù6úÊÿÇ@¤ÃŸ Æ [rÈ¿vD«\`,+OvˆO°Ë€-î¨Ø\…vIí—9 ððæxµ`µnåÀD *6$ºò¸4ÝÑ4/9N.Õ‰$”˜ (PW¬ â¯þÍË-5Œ<Ö‰èwèd(ª«¿(Iab=á gøÀ Ȳ¿ª.ËŸô( ô³ _ˆQ?|/%þÁ2¿\+#‚¸¬8ÊÅj=ü5\X €q„ý‘‰>‘|ÿ$€‰¹áá9>¸ÃY®;ó®w5®åvMj²ýÁ».H©T{tróQ2·•uX_ÀœÁzìþó>ï¨"€Åæ6º1 ôªümF·ˆØ|½˜èmoí}§õSQû÷övúSùßGçÕ¾¾Õ‘›Íj¾¹:F`U´” L. `æ@`¬äa@©â5ÿuI@?Kî3vþw ˜ìà[êý!®ùð¬ßù=„ÀôPO/•üáô¦ëµ^-»õ¸øÇ݈©¨1 +#Ày[Ê«µpÎ/}ÎH?8@”I@“¶©‰à¿ €( øïššÒÓeJÏ ý!| gL-hþOi¡çr†žÛ¦ˆÀ¢@àÌBË‚iAÿØ¡ÿ€^¿£X\±aO ÷%€å´Áþ!ì½ÕŽâP¤<•ü« «œø¿qPóÕµ×€îI†ˆö4ç÷`x“€*GÎíb‹\.Jk[ÒyBÖ%tNd‹l\{¦úŸÊðÈHÌ@ðŸ°'#Id8aŸÁ¢¿Xb.·GÐáÛ€‡¸ `øÆ@NÿÕÁˆAÁLÕ?ƒ¡džÑ×"ú?±¬Ð d Ö&„][,B ëO†ˆ‰‹WüG£Sìì×yp°\ƒPä9x`Xxޱ¾$„v®¶ÙÍ~ˆcÿ˜²¥f{ž¸ÐôGçÄBq-- +73íá(â>UÂ¥ÿ%<ßÁR1PåЈî¼ÈOæe>a¬V^q¨Mþ<%Š÷²ºÝ&Þ(\«[kUg!Ì+<7(ï—wé.fjV´ Ø-€¹“§¼ +¸Î›¿ü¤ÆùÅ?øýïlòìÄÄ£‰‰áLA3—ââåÿåÄ|>Ow,îGñ8q€{ìI4^=Æ|„ÿÀúFó_d[ WÃh³¥Ä‚z ªlâž…Ûœ3 Oè'&@ ›_gŸ¯¯›à„àliõK¿ý + æÿÕúŸ.§Ì¼È\Y3³@˜ÿC>A¿Y ¿YRIÀFT=æé®¥s=ýÄ^Æ{é<8>>h„´1ÞŠå<­ûç}?"á_?”¯¢‰ðbÞŸ“ÿþÅȾ6БŸ€¿#šêˆ;¢éêù^‹–§-£î9 5Ðñ{áhâòjŠ=.´û]&-zMÜpµè‘K|†ëÿ3gþp†˜@ËÀ™)8ÿéã)}Ì)‹úψ |†y@Ø \‹èÿú•—µðÏçs”€J¥ô–6þWòTÿ¯¢õ/¦Ÿ/þëZÚ[êRgðcpæýÎ<]€ÿ]ù®'o*¨ +½yoïEkÕï¿Ãê(†ÿaxl^ˆ¤×B¹é+þDì ðaÆn‰Øé~2iŽëtsèþÛG2"û_º¸.1c @ê@~0Î2,€mXzž\à0ú³èĆÚbmôé6:ë †¤?w)¹r#EéÒ‘¼w?Á$º\߯•”:$ðòv5è(«à'¦ê80Ì[ƒªÜ¾ 7û¡®Ä@ά£ˆæ ‡° +`ÚzÔ‰•@Ò‡‰( ‘ÙKøO_­ì£¯Ž‚ þªÛÞºyü2:A k| ©‘¤â¿Xì Q!,– 9ĸ?›þÙ§À½ÜÓW{ôÏ“©ñ" .Ø’hXkXFH4 þ|UÏW)s2ö+ý`àý‰äDnbÂ>>WHÅÛç5œ<ÿ€À™·AXžl§Ç ËšÔð£³ëÉ×Cž¬õùÜtØcq ¡YÊÂØÄ6‹›“jë;„@p®k øxC1€Æj`!øºþq hUuÿ-ñ Ëà§Ò8ƒð8€ +4ä\¥=àœ D×G¨ÃˆQÀs0nï0úÆ}FLIz…Ùß+öþðô4´¨·À¨¥¿‹9÷ÿ£MZ€{ +å}´#ÕÚaŒÝF‹ú>Xÿ;8 ££© .¢Q¸ÿ]S-®m‹ {§ÄiŠ2µüÁD ¥Åd:ó“I¸ÿÏèZ¦ZàA0i‰|FgíÂÀ"P¿ea‘è +sdx™ðDôÿ(äç¼hT$åm&àaÏÆÿz8¨g•€ØŸ¥Jίö`øË7Œ€øQ°pÏÙµ—ïêzsM€\iÒ›¾¼+ËÛUYήe%Iv%nÔ? +IÂý÷x4t%¹ž$̉D8ÍÏn±@øÀžÈ äÏ™!ü«èßX`Œ€†C +²Žë_V¾Ïô¬Š2[ :žãi6:Aè +)€"™A¡e0˜ãÿ®RÿŽæƒú¼,sê±d8WÑßYXÁ‡E +Ü8PÉ«~uÆ~¾ø×A%€ÿÀ~ÜT«u±Ã¨¶Ïbï›þ8A€¿ +à¿&øgƒÐ–÷ëb‡á¹rɳg'†7gt…ŒF´_FÑO'ë݃yzdøÄ=ÐÞ>nÏmå’þLjµ|Å¿´µ|ŸÛÍ•¾[-ÿ½TÁz±y6Ť€5£¶!ð( MÜò†@·ÑèëäP@ÌøzûÙÐÝM S€>ØÿWÁóÿØtêò©S§Ò§žS,“­¨ã€f3÷˜°À€'GFªÏ)^¸ÐßÝÛ `œjÿAþ.ðH¤pÁŽD/2E +^¸ÿ[MZØÿµz—ŠêØáGç@”=ÚÑ1È WQ,ûA@€ÖbC{mnü3þ7t@@@«7a€Îì@SÀ…þ?ªÿAÐ ø‡3Sΰ>€§ò§ðÙ"Ö.´ @ ð_ÑÓÇ;•Å—D3Üïåö÷Äôó=çÛLÀÃwÑþ_e@EÿÕFû?¿´çüʹG/ÿWù.u(#O÷¡þç÷„ 0ýÆÞ„@–jm—ª¿¢4úXB@ññ¨ÿRîJîJB€3 +¡ø4@ù¿=2œôGìö™Ä\L7æl°ÿ‰@™Äˆ=–à`ÃLc +€cx?$€¶¡g8Yàñ¿ ¯æ¿h–ó€ÚfuCÏÜ–ˆ$×ýf¢%¹bÒo•ÏQ  Œ’KjêTzW«ÁF wЀB®„_(‘… `_Tí‡aÉØfºjÝÊCõeERwîƒìÿå@ lZK¯¥Cpt…Ó± +Ó +úîg~ÇcÀS†€q…]úlrÎ"ú²*~(9ḐÁÇÇ€Á¿&8<‹\Õ×ÄH·÷9˨Æä¡¼äÝI»<(Xcº°ÏZA­Ú`H>¦'¿ûcÀDòýäæÜ\*³¬1Í/þx‡êÿåùùùÏïÌ®ù|^“Ñ-§Ú5íÐ4.Ýø£d.9‘Ì9¬²ãï(tÂéÏM^ –3p %@¬Nl>1€!ìÂŽ`cg']Æ}ÆÞÎÞN*ü{»}½>ºõõuúf:gúfˆ¬6ÿéc`ôÖuû2btsêò4qäX 3Ã?ü×%¶š… ]Ç@ÉQ½ ÏõéÛ§Ï>wà|ܘì¤R=eLÙRnA?à¿ÓB×n"F7«#¯þဘð  Õòê­kJO¨MÈÞDðÞ$ÁA:b j‹,"×רÁl!ЊªŸÀïéÄ"}À俉þBb Ð ›]l`à§âŸ[L--xÅ,šZé©Üׯ€|æÕ/  °h[±-zwˆÂ|票Tö8¬ª3 ¿+¯T à-8¬_=©’ïõ§¥Uöÿ­Š qÀó×E˜¯r0–aðXú2l?¿ €C$(6Ëu%|å’ÁNå(ZÛ’²„ú—üþ+¹Ñ­Ð•œ?·v%éö °G Ä׉$ÎÒ£3ÉÄDd†÷¹ýŸÒ0h‹Û?Šc p޾>–˜‰ `[Œ€ð…Øúƒ?Â-NjˆmºÙg¼øý½mCC:Cä£ä•\îl(»f—Š¡õ£ ˜èß– á÷ëT ËÛÕF\Â&@á9á¶Ä+o/¨¡¹>4  *úçVŽ”9mÁü¡·–F {+!È!á²¢Àz!.a{™JiÎù©çG¾]¯20£ŸO»,˜Œºß@†j èû;”²¨øeaû«±ó_®íã~µŠˆUH|!@ì1$lǃô¯ñÇErpøŒP:@ÄT~])Ñëü¯"CHùÁ/ØYx†ç† +…ÂÐ|¡°\˜G рχ5ãù‚=ç×h,k– šåöÔäð£‰a{2ä8"éóƒ­ô¾YV°8·¸é”âÞ´àn°÷_þ¨ýF4úŒt6º}½½þ{ûûû}ýݽ}Ý}3¾™¾‘‘¾‘›ÍÍ=˜DºL×åÛètyšêâigM$™9Ð,´£ëØ%Éñ¦H°z®ŸºŒ@/Uÿœ å…@©hT4Dèå±¹Ýôvãé4‚1Á1©çO™„íÎ=Dr´)ÚÔвªßÄðßÚ1ØJ ÐÚ¢Z£‘þj’ ÷Ú@Ó”Šÿýé*bÄÇh«eЇ!h[ˆb¸çÿ@À¯§úʤg؇ÀäÇ#Z/€?ðÙÔ¢~ajqg‡% ‚~ÖW6›wñ%Û¡3ïñ æ¿.øÎUz À[À!²T£_‹ÕAzÄ€¯¨üßÛã¦?&y“™D´ËNìÕ¾ü€ZUVÂkÿõÊ·~!ëÚ¤þ®åB’ß¿ž½ +æüWÎ^bÿA,b +löäY;ñ‚¹d2“™‹gȨâíe`L$æb†¸ŽÍ€ùQïCj:É«gg‡Ô]ÀødÛì¶óL!ƒcvŒŽúsŽlÖjÎ„Ž ðÍþ7eVGê_PÙ®z€‚ÿ…B-—à“‹Ä|±<‡ê㺈Ã9œtHè€U‚Yêz€Ä ÷$;+N$sÓ_ +UB•ô¢<˜,I_‘Åܧ'ZÄ?êª%¢eØ÷dÅ +Þn°ü‚Ú¯ w¸Ìt€§–þÙí‡n?J}øûÊœÁ‚>?d¯U ¸×D¯¡&F0iRóJ–Tø¯m«–nÔd¼ÎÇÄCùËɳÉ͙ɡ!Íò<Áÿò|}€á‘Ï7Së3×Ff4ãˆ| ÑhRL OœÏæ¾ÍZ˯öíUë´ñ¬¿ˆˆóò:®ÿm)‘ móä[„ƒ ¸Á|¾Î^#ÿ¾þÞn:‰ôÍŒŒÜ黩n‚Ðuûòí˧èÝëò4B¨¢áìˆJX¯Z‘˜F€Ym&a3rH0›oŸ>}¡¿»»·•áñýØŠZRZ –ü™¼)¸ül6zÉ|Ó[ÐŒZ¸% m}øÿ¦ D£èïøýàïÅœfüa€0`#[øŒ®Wˆ|,ê¿Kø3Þ°ñŒ gIØá?«¤ß2€Cy_W*Î¥æ† q¥¶üÿ„ó_9ÅOC¸ÿX€ °ËéL¿ÁoÕ5X´©ÒŒLÍ£Tò¯…ü¡Ç~ÿ¥ä:An.4šŒøÑ€pÈoŸI$f>I9¿Ý>ç¿”™›‹©šŒšŒŒÀx¦:f„†’uƒÛ€a€ª‰ñÀ,UÿmLÚbzD²’œõ'Ö r}¿Î«t +«µ`ðkÑ|/©ëu%‘‰'•”]Yì½Uà‰øÃѪ5+ºã@Wù€eˆ  J­gzÍ\qò–w‘ +x°¬:ãk¥¬Tëå°RÆS&ðý¦ZÿK€.êÿÀ2¾ /PX ³ƒ-ÿ +kÿ»åª +ÿ|®ÃÉÏ(^gðgø¯a)¢À~è!ðb4²ú´*‚yK½X»Ü)`šÀ2Á>VÃ÷ˆ.9=å°ÄÎÅ]Œ/ü°—sólîìæœfàV ¿°ä=Zzè ÒÿΜ1µ,`C°iJï +è áÑX¬¬,Zôµ Dˆ,jqz õ?*M‚ÿ¯„óloOÍØsVÌ%Ç[ðSZJ¦±ž›«Í°°þ",|•ÿª‹$áÈÜ?Â~þÑ ?à|“ @•eZBšpb­8z%ç ù¯ø/E"—üÉ’W¨ô÷_IF’ɪüöˆ}Æ0lNÌìI{Òi·'ý£TÑÏÅçæ2qZþ‹ ?Âÿ Ï&ú£qÀlTÀ³“ÏT ð⋬ ¦¯y£]2±"ÿ•é\Vvd§‹¡µC‹®Õëßì×a¯ ÿW@øãåº ýa:—‚99ø57Æ1ÓÎ]€êOþÔA­ôW:¸/+ªÉ +þQ6¢€$*ÿÌ‹{ƒA^ø5BdÞ²Wæ€:¦ÿŠðš![û@/Ô¼^Uõ'Œë¼éC}岘Þ+³sŸžÞ6[ÿ«@yqà93ÀçÙ Œ Û܆xdâXÖ]úþ˜@ šÄv@l]d €ó•h ™žËdæfŽN.ŸücaˆpÞžÊ|>ìN†Fb#s…ɹe QƒBanrxøƒ÷CY¿ÃñŠçêyøÛaõóz¹ À<À›J±øßpØÔi3¦Œê: Þ ÐÊ#>˜|B@:°  W ÿ3„ÿ#èŒýO*tša\ZºMõËå.ȧœ˜ +H_Æ·Ðø‚à¾ÂRÀê4 ™G ˆ„à#x%žzÒ·Ïë'pÐÐjŸ_Yàü³˜´^/ó›I">CÝz¡ýëÙ¨EÙM…{S€{/Q¶DÑTÀv0bóOÆš:Ôþÿï›þ7qìßAýÏZ“W ßÃgÀ¦Z´ äÙ„3&N)¢gB€Û‹zÿtÙY¤¢‘÷/ªc‚ýBôô8÷¸ÅŒò“êPΞiH< `~«üäwu¶ÿ¯ö¬®BÀY5lôöò0‚¨~LX2ñòƒÀ èt¾Ñ V †Ãkbº+ÅPÈïäú{òáÿºý€Ö/Ù/3ÃH$a'€€HÒŸü@ +ùuCs3 âÈùÃb fqªòc$rÝL$ p°@|A +Ê̶ÅÚb±!Ñ'àÕ@° & ö’¹Q¤¸„¦‹ŽCwqpÕTŠf ¼µŽ~z0Xò0äÃÄVÀ fÖƒªÀ¡x¼PlVüé?+‡ës‘¡Áƒ7ë`y@¥?ˆÒ¿’nôÿÕ¬G]!hæ€ß’üÝyz1¡_Ž~L1(eð€ _ÔõF™G xêOdý°sg<½m㺣ƒ_Ç©Ñÿg*Àõÿv½vhÀœ«€X,Àü@›hœT¡OÔ„'By)Û è¶-TåmFŽànŠ_£¯Õ–"ø÷ø÷Ò‰êÿ^_g¯¯o¼ÏG'>º ÿ›{zš{n.5ÃxyÉ™¿Lo^]Tûw]æ¹—yp=þÿãñ÷?Òô 6p x"€Ã1711œ8 ÀçŸÏÙ— Ãó±xb8>¬ñ_9i*hà,¤ +¦‚=9¡™Ü +ù“Ó¯: Psóˆ{Üĵ?ã¾r€(þm\ë¢í²a1€üctwªrøÕ?`¿··õo÷¸¯—(À¸0²:2‚¥ÀÍcXÄ«ÌNAÿ¿í¼<}@úò)ˆéQ¬‘©¤“YìúÂŒÝ@®Gð¦lNwa%0€V£ð¢ü·¸4(À»¯7i½b –é±øWØ$ˆ üSƒÉ~Lêø»Àú·¶¶¢@WÄŒTþGQlÐ"ów*ª®ÀŽßÿñ†¨¶ 3€&­Z¢Ø xD§?´ü#ZþÐâÂ$]DýOOO¸e +=€„ë óWôýéÁû¶€ï€|…ÁEŘ.”š(=E& d€½Ë•ŠçmÀß~<‘¥J~iu„weýI`Rÿ6}€‘?¾°ÿ‚U™<{ØðŽÄ×o¥äúÚ%Ây$²n°°‚‡ÏöÖ¯Óm$2Œe@Ãëô@bÄŸL†"ºáD|.6§Nµ°Ë?# ŸcÜW1DÇfbmñXS™Yu°ÿƬ‡k  Bþg³mD,žÁ @Ö ‘ÐãlÑj]Ïö 7÷¦y°\Ãï55íW Š @¬ K%ö†EH`c .ªYTÅ? ÿkªI?:ñð‡çŸ!?ù‰‰½ƒ¯á­zÍ£îìU£zÔ H/ÿ' ÖóB_6àVjŠÐuÉúÿõýíòaŸÏlØG×ÏQ-Ù ¾« àlù¯±„áïãØßªèÔÄöAö Š Bav¨V“0ÓúW"[åÝzõ‡JÉäæðŒ.~kþd¡ðùüü­xáóLÁ×f +®ÏãC…y¯¦PHif&5C©™áááHµ~œ-¿R@î¡2þ¿8âí½¸µÄmj°ð¹3°¹Ý¶”;eã º0vBðÏg½,ôuûPÿûºûfºûºÑX°ª*—nƒøŸ2;1>e¾¬¦ é¨1 PáUÄÒj&0Ò<ÌŽàµð¤±à7H4èì¤âß•ra¹ŸÅäè«ØÏۀŽv/Êjz}ˆ¸m¶¦%SZÞÙ‡€èsõ¿‰˜[;ŒÈ$`ì°E9,0ÊÉÏ¿”.Q*ÿµM¼¨…П;M"—h#À%"§ô°šÎÐÓÂ@HZýÔ‚~jQ»Vô+‹Øl  #p?°xÿ>1´¾³üjÚ_0 WƒÕ€ |Å,ËOÞBùßö~ªpúÿê*(Œ,‰MKbðù ÚùÅ¥âÌWöÀ` ¤ß 7–ˆu@áˆÁÐÜ–È cØ/Éa¿†ˆ¿ÙÞIFüþiºØéÂ~;lÿ·»ß0g·ÇuD¸À‡ò@F§£{s™DL—Àð_}º“4€Äuèô í¬Ç„@Wm¼ €nƒo¶¿€Ù!ôÿ3Ïèª-– çæ_Ë~èOøOTˇ ÿõýš… °\U(‡9õ€ +@¥6HžŒ>:Ürè‘ï«cm?Á Fˆ€ƒW)hAxýxþYÀ¸CT \ò Àæ^ÌïŒ°Š£Í‚žîîw-1 „¾¼Ïí4 t:Áeü‹€ßm1¯/ìúh¨ e[|§œ}À]ñüàÓª°÷± ±]øD@õrX»Åô‹' t.IÇx'ã—F†íÃs·nÍÿ±póŸž™Idæ3‰ìºùÏÂÛç'‡é?êðÜÜÜðäöäÿÏÞû‡´§m£¾w’“㎩¢A’üaTÈY£M‘ˆo©yþÛ q”!à%͆I: fŽa[=Ú”¡Û³ä…鲋¼‹Ð°iߌGü­uÀÜ1bïCOÚ Xa(÷cÔp.*0?kŒ†f„P 8ýò,ØÍ[Uúõ‡fÂé+ÞÖWÍ©sÍ)Á4FŽ> +j@X6œBý€|Úä{kF`MˆÀÂ×ø¢„Í8ÌŠe¨âàK›,&m”C¬uö÷Ça·g—[xèÚÔIà´²ÀÒ÷¯ÿ.èÊÐ + fî KßC‹^_þI2BÆ ôe´ù­‰1¸/ç}ŇãÉý—®ÓãDî3Wûlåe†IÛ~‚݃d¢’ð—/)A?ƒþ”a_I‹ú¡Ù? $è!UÜÓÌ$ÔNÚf¿JúQïG{@E(¹ vV2R¥‡Pn-ƒbãòaâEƒ¯<†‡C³³;¿>uêן--}iggig)U³´3ìYÚù,ôYÓRhiøâpMMÄjž­™oŸËµž³%ŽÑ +hßrEZv1épúO! Å…Á?·]\´´¨H€6³ÆÚx ÍDùŸ»M Û°ˆ3œ€;œ#}###£ þî¨T“Ë‹Ë/ÇÇ‹sŽ9:¾ñƽæ{‹ÍÊöGáA9IìÕ¥@µ Ò|ý•™ývÈÿå_ºÜ§/¶HñßÄ–~S·ÖþÏwõ±úßË÷ÐP>D£RÛ ¨% ˜¨­}GÕõï`ðôM¬L˜'tpø7C +0áU$`BÁ÷Dp-€&ýäsy™ ÷‚µõ tË?û¹ X¯£ü¯É`Á>¢À;d€ì\jë^tÿ/{M˜ X¼/ > î«òÿ€¾³ô<Ðìèäô«Q{ò[ðWÿ³ªþwn8;q®&nl,?ˆ-̃ÊNÆœþŽ‚ü> +¸1PùŠwÆÍÆ=Æð˜}!à‡Þ߀€5ˆ ð{bñÂâ›ÙÐð¦ÝX²Ž¼'ø>;DC‘(_ +wµæÁàP8¤¯ Ég0FB” +†é¬Ò~è÷;„Šÿ£2€†ÔŒüÃðO)ŽÐˆÖybB,¬­åbacÀÿµÑEæã@žžHî¿S]lÓÑì—æ8”(¸åû8ªÌ|¤´ô”·iY¸-`÷¼¨…ëÑu Í>µ˜M ²ÿä©éGÈ;L +hÙª5êöJ‰|É…Bägùã/Q*>ÉcÏ.%ÿC›Zúc÷_iþXŸËC¡Uú¤ 4ø/îioi4§È¾=>©R/¨ £'{ÕÕ¶üËO*½þ<·¹R vTŠòqúyŒ[Æ™bTú ÈÐ{¡Ù”~H°€%X|–ŠìDô;ÃÖkK©Ï®,Y—fkvôMCÑxhxxvvÀú`lì©<¾Ç÷';ît¹Ö#at°ÞÛk‰¬[z]–Îl D(·ZÌ-mfK V,-mXüc R@40èës:û)Ñø/É&À¾à&wÇ{’0Üå À—ÔÜ[‹Å¿Å{y垣öô±™Ç%=–kªì÷/.ŽÉ;t\ÈÆv"×ø6[^ÍÙ÷9;H"~ïË?ê0(ÀüCëË=@5û×´ Ò3áP¾’5”ª˜®.¾W@~OóôÕÌ(í‘Tš`š‡Õ6#ó*G±ô¬ƒ€kX+!à_üÀ„g‡";©ï/ýÛgKŸ}víâÎRÍg—vf‡>ÛÙ^Ò_¼6§Ôÿ##Tndá¼<7·L \-ÿçÞêÿ ÿEP;§=j€hî|¨Íþ?T:@yî}ÐS‚Àž6›[th ³¯&þ-:Dâd.p?Zƒª H/b¼o2›*î¿ï ÷ߨxÓt‰¿8y±ýwšÀ-Æ4z+ ƒÿëº'pݨ Ò £DAjƒ± x;Øý˜£€à„E©ÿu† | +˜Fˆz_;„\¶Üº¬[÷Zny½¦Õ[!/Zææøz±à±Wþ3ÌxÈh§ì·M€'ü/–³Øùðw*0ÒÙIüßÒÌ7žup Éúê7SàïÈ.¿Ê€½RÉ·XðÛ3™ŒuÖø^ ¥`بfÖÀÀ¦0€y”ÿò¦^Ð_ +®1¤þKíŽÌ¢ª§÷<€0€Ý@Ïå~dÿ†äé@lwHÑé¡zJÿR)Õé—jÀ¿² $Ž@h Í4F#&±´'žóËwûzDäª5€dÒ>ž$ +ïå%)ųíûTð~2a÷É?û Pb9qÑx‡Õ€›â_ù‹ _º•Þû¨ëíÍ$îáü €B†‹™¤ôŒ÷@€Ä`eÚW*b O;½²|‹Ï·Å±ÊÓ"|ó‰d©¬” ¹ªèW¨]ú½gð¯.¥Ê·¬Ý-îaOÔÇ 5 h€Ö@£Ÿ‚€Ê4@¾L¦™ÈuÙždå/wØ“§Ýε™tv–~MÀg5K§šä-¥+ï]Yª™Ì†¢³5ïÅ=éÍ1ÄÛ_ì“ÂÊŠk×Ùü÷ +pµ¬ “ €ïâ\ Ò‰ üçaÆY‰Ú €-.'XÄèß-ç¶'Z#Bˆÿ£Xàùœ¼ªµc°(Wÿs‹sPÈ!ðÿá³@Áß®F‚þ6Û?T@àÿ7£“°Ñ øí®®ó§/šÍÍóüú‰¯DÿþÁA9¿ÛOÛ¿A¤ÿ Yœ T7@Ò×H`ª*Õ½›œ˜+ï:Íx ©ø1g +P‚üÝjpB×XœÂP«þ…x•AÀíÇ· ¨ *) íÿáAÐ ý?G¡†/ë/L,ÞË·,^ö®šÜ‹áÀžCà7䘊v€M©5—¿pÀŸî‹J:0JÕÑìâ~þ[`ÿ _Êvá¿££RücþïܸêÔ$Xì„Às5ôw¨&îdÁÄüÿs…Â?öfÿѼ€¿Î-€=¸Æøo¥ÞËHaÎ?Ö÷Ø0b€®¬˜€T̸£—RV>³˜±ýXýFÂtÿK¥ŒVöòѧ†Ð[E]Qh"ÜÔ7D(P¶,ùÑ húµ Âz`ƒÜ†9@kB¾'¬-ãkOÍM*¥rñ÷4­)çáCsø1y{%Šäò,’“ÔBþ§‚÷5É|<‘q×úWïª&z«j N–z*}­€¢¿@å?,ÇšÕ^—¶Ç}š€MP] +üâ>ˆ êÿÿ;Qþ#üÏ‹ŒñcÀ†³1 Hý¨Úœâ¼ŠÞ﫸LQ«õ‹\ÐÂsÌGÞýÈϾ@Iqê¾€Ò”©€ }˜øËEÇ÷ÑøË@8~yíÚÒ©¡¥S;WN)pí3©ü—º—–R¿L¥j–†‡£³;5ak|8><ß°µÚΕŽí/¶˜]°_Ù]€( AôäÊ‚Îd€‘^’ùgr3o"mÛ0ïhiã:`Úèpº¡ÜpB0B`ÝèOÐÈ.²Ÿ|€@VÅ-.¾¡ªÿ›5çz4} ƒ›+&@Ø øÆéòÍ·¿Ý +·©«í42,,¥‘²#8? +ð®\÷b0hÐúêjÐÐmÀ>@mï€Uôo¼)œà´ K&óiÕ¸Ù¨uµfÕ˜¨…@×M¢ëå_I˜ˆ Áǃ8u?f8@}$€XY-¡ò$lÑ]Öy½-ªЂ‰¿åò*äÿ&‹¤;¼ø@—Cy5 +þÏ)E #«¡’"ȬÅy4[ø¶ ðý¥ù2‚þ„~”þ¬ÿ9à6à(e€`Uø_¦ýÿAÕ­¤1- +sh€:^að$ñ£ŸEôq»q(=¶ hbG£aµ €å¿8'ÆM&ÍxfŒFˆøö±È‘>öûÙhÐë¡ô‹¦ô³ðÿç`$D‡!-ˆ„CÖþ‘Jhä}C”øƒp HÒ Ÿ i3ÐDh ÉŒ0ŒÇ öæ©ïëp”ú¨ @þËüø~r¯˜h-æ¹Z¯íÉ æ3hÜ>Ž¢›MsHhšÇå}Mð䯠šþZ8ŒÆó$Ä@Á|a1Þÿ˜€`¿q¬P‰ÚïÁÞ"VðçC7-tìñÿÉ[O^å åùQ´T;‰DY9ý•XóU{þ/t+޶*|àEyɳI@Q{XÕv`ÅV ² +Pìa-t#þÌ£8µ·ç¹5”ÈlêÚ©kM5ßÿl V ø¬fé3½5û,µ°z¬m©T(î‰ÇõSc­çZóÇg\ή|BꬺÖ]»rY¬£é2 µzI\Äá¹Ì]–‹nA}¸µ™pkà67ÑŸ&@”Â-€:zr¨™}#«²L• ðæšßXœ»×¬i›±òW ÖÔB –{š?Tâ?.|cU§Ï7`¨ºN·ÁïP@TÊ|©ª›ú…Ô7Õ+¼dóß0¨Þâ¿P`è–3ü{½€wjþåZ£&üø†I»ÁP®Zëkƒµ‚öòÿ»Qýë„ÔÂN  ÷²€Æ_ÿkkƒP`P[£ AùÒ +ô -Á'  «~ ñÿ2îÞº|YAÿ-‹ù–ûÖË€`ÎÌY”ÿ  Ö|Ú/²Ëí˳šÑ­ÎlaüÛ&ÀŸý;ëñg7:Nçª\î8Ùÿ礀ÿ¸,#x´² ¢˜ÕB&§ásèþÏ-ò‚ßÓâ+J¸~•HU\- f¡ˆýØÃ½~ÆËç”j?…ø_€0gÜÄ@6òÛŠª.Àf, ŸØ/X¸àYØüÛ +"F×—¿,"8Y,Úò{R‡Ã*Miª°`3`ûþ>jlvlPb´N +P5µùw21Í5¯¨ähÖ'zì : •¿1c×B€±ËÑ ‚|Ïø.Ь€…ðÃòÃÃ?þu#ºæ¾‰Ä#lø8úO¨ _µ·W.>Ë6þ­IÊjÀ_Ò„ƒ@yµôÝ-:è>p˜•Žïï'ö·ðÕ >Ÿ’óTü†µÃ*ð/ϧkß?•Ò‡¤þÿ>T¸\©©é^ú,TXXÚÙ©¹’š Y­õÞ÷´ årÇé”]ü?ÙÄGï¿l`×Y‡?0€`>`‰D؈€@Ц-˜•ðy*a€8 '.XìügÐr v&€Ç\³ÃT@¸5cpQÓj€Êb@Šþ°ø¡’ÿ}“‰ôù¹öÎŽÿó_º:º&Ý]*ö lª×þÀüÁÁþwûå®\Wdý h¾¾fì¯a¿Wmø™ªÍöL`ÚÛ¼Õq €³ÿÚî ´° à…0ØH  ’BUX‹€"ºÚz"…ÿAZäâ•÷èÖ[,^¯é–ÎëÕé.có_À-¯û–ܘn½øЙy‘u?~Kêê`î@¥Ð žÎ±ÌÀr'„ë8gíÉÃo1þO¼ÜäíÙçUçŠÛµÚF +@ àþ<6¨è\îä*Àè3 +ÿþÉdçൊ À¿üŠ +HÐxeGªrâµ³óžŒ=üÇöÔ˜b‡Ð +üXV)™bq Œr‰Ï§¬F¬òÑïWÁ?R~µ@¤úÿ0å|š„õz«Çc…%€ÿž©?;§`ó‹X`e! ‡Â‚õ)à½|4Ê~80[˜“"ÿGQjy£5f4z2þX,öÿß: D:äHz/ŸÜ·û’‚þ‰½rÞq½òT^ììïcñž oÓ@”¸ €Õöçþ½`É=B¬™çø4ƒ_ŸæÙâ`À=Ò\h÷ù*_[.¨ç1ÅH¾¸HWR\À·\bZP’˃ô3V{|OþÆeÆç¾$ü{‡O˜:¥¦ý{•¬`5ÐÜ8"` €AãÌ1øŠïb þÖÀ[ñ¸0€©áaXQ„#©k×vRÃßGñÿÝ–j–v~zeié××ä];;ÓúYaë¬Õó`Í_³ÙÎHÖ­¬¬Gzw#'ò¡ø úwíÊØFÖ9Àµ+à‡€–‰ëfç¿‹V€È„ù¿À—Óíîr‚87@þ;G¼ñÝåìh6»(¯eÈ€à H›ß€ $€\h., +hV${€\üoVâ´ì=ß ô¼Ô  ZrÀó¸)õMªM‚§Mƒýõý´Úì—CGÜPÎ@ô l©5ÔNx!ø?mÂQA}š´°ŸÓïTþ, ü ÄO¡` 7XÁ~ïÍÇÞÚ›^5P³Ö×+§`Vÿt]o%“ÐÛâ'`ÀŒµÁ~Z·Ìyã%À³î™WŠ–ÿˆ¡ýBÐÿ‹ +>uB +8:*¸U°ë ø•/ É¨sÅévYVÝ«.תü}Ð S°_ëÀ +€-ˆ6F7¶* +@º;4ïߪÿÅÊiQ±€W¸°WÊ-`êð¬e¬aÕ¿¬ ¡ú‘èÁè“\ …=ajö0ò‚g/ÆÿZpX?+÷”`8Õ³×cž€0`á Cá°”iCÌ ÚQ‘@Œ € €¾ÁhÔÏp @áÀGa¤3 ðYóŸ4€oŒuXSô,x˜?#ÇßöšTTL+À×öù½Râp›uj`Ÿ‹8Ù“>å¼W ¹Ó6ß‚Àª¥]Y¡ûK‰a1u\k"O¥žÿðƦZüãöÅ1ØäZŠÿfmr‹ñ¼Ãá´—W&ʼn|ò0ÿû?ú ËÊŒ‡ÃÄ¡p_¢˜/iò¿V…ÿ•éþ×õ ÛÓV°@”ß{¢žxÈÐÔÅgêI0òkB¿ö÷‘üòocjê­øÀ@\®ãž©x|$:FÈDddäÔε¥Ï>€À¯kº—j~5ýléJM÷ìÅaN«uxûœ=í;×ÚzlSÕdç'ÿݽ®õ]9÷JýY +€‘@oìºv{Ù€BÐâjSêÀ6)ÿÛº08ojë2Iñ߆±9:“þîNt p:G:±0ú]9/ÿd4[Èf1_~ƒtœi^¼‡+ÁýB3ýíÍ•wš{ +ö{\<íéùFWÏðÚR~Ànt¸``?ÿúßíGõ/ÿ`ý aPÍÿëéÁSo"Ü ¬€!ôV«~’¯j˜”àæéw0$`—@ÐÞ<áÐM4vc‚”;:Ј ŠÿZ@øM n²ðØ«l`öÏ´@ù²ë0ø…mš:Çà¿÷–iý–yUJÓ-“eÕ|Ëâ}ÉÏЧ/3ç3ssY j4ÕÆÁò㋹ÇòŽv \E¤Í¨ãÛp€¯xõöe–ëBòG#Øßüw­ºWØ `„]€Î €?) ” +•ʨ¶Ðü?( À_ +~U¯0(åÇd„ÞNofIfÃ!`,vÿ╳ÕhM…¨óc/?¬j` ÁR_$¢fz*ÿ£Pý‡¢ülrQê@(h84+•þÎ5ø¦ôF˜ã€\°¡"$+˜úƒ0´¬´)œ§?AXNu`ò¶ß¾‹Åüö\kîoà£CÀý»äa9±w($ ñ]~›Í·¯©¸¸HÞ‡I@‚H ×øT:ºÒŸÑ=’{=AÁV´|É·8ã·cíŸpŸ€_žÌ9¨eDM¾4ØÃ^‚Ó}áŸ/4PÿÓc@¾qhÿ11("ó—Išéß×Výk?ÛÕRó“=mëÿ‰jx”JOòj#°ô䙤 +eÌècðrà™šHÇãoÅ=éô…ôÔÔHÜ2F®ECÖÔµSK×~ýcµ (§t"5Bô¡ýùÔ¬usÖs.—N¥186°_·ò‰‹(¿»â:±îŠ|.¨ÂÕ»BgÀ•Ë\\-lþcPÐßeF ƒÿ.u¸M4èp»û¸/€ŽåuÖ¹QÇÿìÁ"-L 0[¤þ€‹¬ÿ)§R¡™F…j€N4°³ø¿÷e³ãLgŸ]“09°x/B Õèïo¢°°©å ø¯ ¨oB¦}x½Ú àæ‘€é&èÀÍÊ-ìÑ0Á +€Ò¿Zhj½ºFX JÙ¯«½\{«±6ìÿ…¦x|\ûø1¢¤ðÖëºúKÁiŸÎÒ"ÄEX€¥…ï!1yo™o™Ü·Ìr¶XÌ¦ëæ—5öšiÈì sfÕ¨vp³Ü.väWÚ¹Õ9Ú)çÑo›/{íöFGœ®u0gË*€Åí\uºWUñ?ru}!Pò0b€ÀQm +U)€s3` ¿£ÖÿBäÞ«Lò3ÿ­a&¥?õÁ{F6ÿõa£ÚP6€°ŠÇP7GýC4óy‚ïLÿøSÔªEÀˆZýÃ"a=+<#4ûƒ\p(E+y±>5Ãø@½ÑÊ=g Ëà0†)xÿ7èS33§f†Ô2q3@k""?¾Eš{2ö¹œ=c*8ݺ—ÿkÿ>ŠOr‡-ðöó{,¨Yå'•àþ8Šk#”)P>ÿ0¯êL±ÄHå4á°ê Tüóà¿WÉÄ¥| +[’NÀ ­Áog`³ÿ1nÆÇ•; rò•ó­‚åÂAÌ‚¡Ï‹@>ûa«f2°ÉÏÒ +ç†þ)×þ'ޝ±ú¯ Ô•6àŽÔÀ¡’5TBÈ€ò(Ap‘ØO~Õºÿé©´'½–c@x€'àA«)Ù¹&Ï(m +ÀÀ_ý”󀚎éᦚ+;;;³Ã›ccÃVOÚvòÿbíWO¸NHý¿»ù|·äó•Š}4ý{å.¬àÚ¥öÑhkã Í|ÞmfñßÕ¥åþ¹àæ€àFhŒþ±2°5QZófa¤ +ûï-6ãå-Ã&§J¢#z ðM[Ï$—ÿ]ÄŠéàØ/E¿5?[ýìûÓ€Þ{õT t«A<·°nòª€\ÕÞþ“ Ü4áb¢Cð³MAïÒƒi 0ìÖMu ö‡ü?X{ù7½µïÔÖÞDïÿ±Öÿ¿­E°á€¾¥Euþ Xalil¡Ñðßrë–I€p€[nóªùeχ²1ÕÀïhÑá ˜;Àï‹[é¨þ¡øbYM­ý7:ëF³öomþþý£u+HÛ\W9««ri[]u†4 ñŠ @ñÿÌ +PåÿÀù®pà?€þ_µÿ›‰ÿø=½¢@^våñKä2 O8e… V&€´6Ò +(—˼UÞNÅàïŸbùO)¿ýu'¬ +|yŠÿptÿþÿFkH>3Uø`©ùõú! „.AÖø…“çäXóÄ㞥~ú0 +„ÀÐÌ©? É'ÿH5&ðñF•T ð~ÁŸ‘âÿ©Í—K(3»ÖbÂ÷×±¡rñrØÑ'b |àQ5>ëµ XÆ BôhË^ªé•’N­" +oïÏSÍj+yµ¥ßZ*Ûlôø’š ð"*6y}ÃøÀE͘!™/%Hö} ûù‡/ÐKʇ?Ï@FØÿC7@ØÂ^ÅÏï›¨Š‹Š¨ÏL Ù¨=@¸/àÑ‚¾Ï/ _òåVžt|È¿ýþƒ19¤š_ËLF#c,<´³™Yú1ñÿŠKK¿þwïìüº¦f¨¦f¶E.ÃñáôööÚÚñýÁþ\êþ•õÈnï‰ÝõŸ£ýÏrßÅÜêc+Kþþ]mXû33¨«­Ëtž€mNÜôuÝér÷u9»T€Ô9¾»\·<ú“Ñúÿj Ôf0ä¡úÔh%)×Ê ÐÓ\5üæôÿGTíg¶(@ *zŒš˜±×ô—ò¿Ÿ v@áC°ƒ¦`SР«‚÷fo£×«T7UÒŸ©ê +pS܈Í@ÑPþë„õÁîZäë`Ä9ÀMÁþàÍÚ_Üd3à1úÿµŒ¨íÆê!Q^§kñZ´TÂôˆÿf¯ÉŒÀê-“Ûm2™_Žÿ{*“i®r5ç(haÍà`èÞ|ѾŒ6qª“>¶uT”¾…ýÊ‘ßø‡Íœµ9;s»þWž5œÜ¬ãàV° +8:Z `ûŸÒË9¬À`Q +ìÿãüM¤bþ£tʉäxÆ—ÉdRaø0±_áë|³vrc`Sˆ€5e „púkH…#têÑ«ôŸ”êÿ‡éðà ~T¨L„¤üŒñ¨[}C” „#Cœª1kxÿÿ£K௵Øzòý±x¼AoŒÂõ·^B©¡?œBj°^MŒÑ4ô7ÖQ—WBOFjãœÂ/¶Ò_Ñ@Ù®ÒòˆØ“ùC)Ž‹ðÍD»?å˜T$#€qÆïÑHOmÒ«¤ÛC̸ ð'çéÅJ0Çï­èÿÃHþ3SmRþÛ”°ù5åÛ·1nÈk7€í$0È—Zó¬ç“ùäK¤¥Šçd^~ýôÿ+þ%då¯ìhV‚Z¼Ÿú"šCV/ ÄõÃ2ý†™£âäKGé”þckk¹µíkÆÒcÛöô‚à¿Ú÷Ãàfãó‡¶XYÐ52Pà_ç•â9„(î½løE€”Ö>~Ü! ¯Î :õf@½P ?cŒZä] ˜½f“yÕbº…èf9V-/Ÿh$L“æˆÿüÀÿƒÅ(a +ܾüE–:€Q–­ètŽf¿õ®¼‚>´ÿð±¸ZZ­¥æg´¹VÚV´œl”p',ˆý[Ú ºÿ@æúÍ\ÿ“?”{‹‹÷þÑf__ u¯œÿù“ª;=ˆ¦¢Æ0»ë6ÿÃa%¹£€ÔñÑH Ž<¬‡æ&ýú»ÜákPÿp$ +E@8:"5¢L„ЈÇ7!)ì!œ‰„¯:µŽD§ÞÇVQ;ZÕñ~Ü8  @ªaèÔÐÌ©™™? é m‚\s +ø7cíOí9_ÎæøÛ|9¹ïK´æþ}I%eHG¼}{2ñ#ý½|ò6}ªà§0¯0˜†Žþ‘Š¤Çžf¶Ëv¹ÂŠ_M´æ?Wò­Z{ÞGs:üÙ3¨ñ›U 2”Ð X¾ùÛ!Œ‹ÿÅ$WüBAÿÂWc*/¾3õ}‚²”J´,—JßüW1ÿHPr ð_ñ𨥕Je:î&à²$èKöÆHñal{í©íéÚÚÚÓ÷l?x0vÁ3` -ø]›©kC³€~ü_ÿôÊ•Ÿ.]ù镚+‘šš+5;8Úô;§‡§¶·×N¶î‹ÇFV\'"'\'\®».¨ÿwQþ»V´ò½‚øØÔ^Ä ÀÀÝææUzç!p« @þ>!w” kœºÎïbð“,ñߣÀ"üÆÐ p8ÐÏ,(è),ú5OIBÀ|%hØÜs,cæfÇòÖÛšM&@'Jè€KÿcîÏ.ýþ&ºê»1 ¨nOèt–ÿJp³*¨ÞbEð;&)ÆMf°ÄNxÑöשz^nZttø#"·µï Ðøø)þÉj µ:C-ÊüFáò%-³|ñ– _ôê&ZA LÞ[nÓ­U“6¥q›_®€h~6¨vÔ @ ²í¸,·W;·`nWG»ì¢=ù-Øû2oÏ +ü F²¦Pg z–UEäâ†àU­ àÔ&4=ÍÒ:ÓÏòÿ`ÎÁšŸµÿ›÷ =ͯ$`Ó9ï{êXŸZˆEéþüðž§Ö> +ȵBÿ5ÆSñ˜Ôç‘¡ÔŒJôS!~ì4`+ž•2}–fBÖÍÕ·Æ=žÍ¸? +¨Ä`©é?¨±ÎÇCñ“Å=Ô¼•s±õœMð\:ÖËW•¯€ŽÁÌÌИ<¤TœèªÀ¼g!3–±gìãö€?7.§œï©Ϲ֒/÷'~ü£ñy˜Rõ¨œ&¥¥'ï^+"sm|Z°^¸pF ùÁ ¬Þåm e±ƒ":år% 癟nñHå¿§VßK*pC|Š‘Œ1ƒ¿öf»Ï¾oKŽ÷ØQ³Á ÍHåß ðñk¢ºßËûñ›(?|I˜M” ” Zî_ßi©ôÍÁq¯ô¢& ‚þJ æ¥²Š‚QÀ¸Ok”Šä¢~a §k9(>l9[Nî¬m?õŒ lÊóÔ÷gã¿Fé¿Ó¤¿B#à_ý´{ggúмëJÍÔÅšÙšîiëÔæpÒÖz|F‰Ÿ¬ú£ä?Ñ+· ÀýÚ áðrEN.^”Àå"ô·¹+':’`Å ]$ÈÑqÕéd0àŸ{££ÙXVxÍfçÆcÿ¢ðϧ¿à—;~Þdä=Ì`B=y, ô ÇÇígúúºÜ&³€8*zƒŽk~p¬§õï»ýMt œêU6@°©ÁÁj@ ™‘@^­á÷¼ 0Ð*ˆgÌ XÁÿ Î0aNèº16¢p3è½IýÿÍǵïÐPˆ4^oÐËU?¹jT=[ ÄCÈ…m÷ªyÕ„€ÉýòŸ½n ÕaÌ\õfn® õ?Fh +à@Ϻ[Äÿ«‚f£ÙÌ7èÒð¤úOf²1ÿ«‘^$kö¶Ð>‹:€U·ËÍ1€‹v€Ne4Ò¹¼±Å@§¦ÿÕ¢—188 óWç*K€Ë`göÞ—¯$h}XæZ~|<³ÏÀÂ×0†6cFcÝf !ŒH`b.ˆ@( 7zÂ!ÔÿÜÖêÓΗù¾\ðG÷?„%€÷Œ#Ö ˜x<é Æø…Mc<0¤ÂÿqЂ5ÖûÅjýÏ@þܹsÛñ@8Úš9•ŠD°ôW €ª°P „±@Lß¿àÏdüOÇ}æ Ð* uúor¾Ö¯ªfÆcQ¡Ïó¡Ã’rÌ'…aç1ß+æmRà³°`Z <Á}Oî €‡ +€¤-Q Óå Ö5œâ³ˆ¼J‚NQK *1£'Ôÿr_AùŠ6Œ3’öñ_®àXļ?ÝÖ¢ÊRG] âPc)ËÝ…y¡Ъ$ÜøWD¥œxRL¨VEék×þUâ7ÅИP‰¤ð`!]HŒè²Ä8ƒ½ç½OrÆä$å¿°Eù@<‰rkkÆ.<²z!ì¢ ¥jvš¤äÄßÑÕ,í\¹²teéW5KWjô¡œO¥×rï ÿ<®5À/óu+`@|¹ŠDHÐØå=׳®ÿŠ«Úý¯ˆ»ÚXÿ ê·QÐ{îópls†Ô²3{œu à(Ì€H²Àáw@J*€ï÷ü8ùy]PWìPWz<KÑÞÞÎ@—Ûl¹ 4§P‡@½TüïrôO`˜ +à_¨4 A¨ ¼{ÍÔÞT›*¨±bdê29Ì–Æ ¤*ò Ó5ê ÝX `L-àãËÂn>VkëƒÜÔþ!807zMÄ{³×l¹ˆM‹¥Å,ŸYÞ…Ù¿ûúªÙ}½ëúW4ööîinŒÍÕ©ŒZ@Àñ¢è +ô…Ö+ÚÖ9‘l;²üŸ;%øI~¿cõXÍ]pP t€.' ÀU§æ¼±%,jk´sk™n@ ͳŽâ™ \$ à üQÜC ù•ìò Âù2?úa8ü_‡Œe°ÎÏ£à4è)ø¦3€5òhÆþ33)FøÂðÕ>½Ôþ˜èÃ!kÈ8ëYWd{gÛO{<ñx ªÒÇ/¤ãk6ÛQø?2h]‹o†ôÈB<Ó€†H„jТÈŽÖ5@©H Âþ±!g·?ÍøÑ Èäаû’r/ñ® +pt%<ÿ¼ë{¦‚<‚ó`E˜>òÙÍÀg$P"¯E󲛞„·^¥¬VL(n/Ý(bßm¯¨¶òiˆKûÈó[Õ@B-øÈ ËÚ‡ RªM3D@*DÔÿ­`‰!QFYÿ‚XF’¡€(PÿGÊQ*¿Ñ8|î'ÅÊý'ªÀ=€Ã’Â~Œ,À4ž$Þ°2LÂ\á¹ÀšPþ'ˆÞ|Öä×¶åé•–'ͧŒ³³;555½Rì_™Ý™½rå§5;5X ؙީ¹8]3mšžJ¿¿f;w|{€Éº XTãÿÝÈ ŒûOðû€ró‰ý¡¼x±Úgù<)€û<Ô~ˆPêÿ6u¢Ì9$—Î:)pü«=p:-;´.À(€PÉE…ý‹@‡?«x€¼+c——:4œŽ«ØI¼áØB*°’´xu‚ì:eýþwÕ  {€‚þõ´æJ`<Á–n¹.kyù¡ô²’Wý€›îw™N+"ÐhQøíÅ!|.z'º½A]­ @\†1Ðã`#ÀceÄnÍ~©(` ‘×l²\ô^0[&Z¤ü7›Y÷¯rþ/øïþªñÑŸm FsJ°ÁŒ˜Ó|áXn‡`T©:7ê0€¹Íèb%@1±_ÈŽŽ^½ºÞÞ»þ®Þ^K…¸…HS xU±c>`°f=:«Iœ@ ü´(À=b¹–7_Í@)‘Øÿó(ð5`Œ#ö¯bÌ-€°”ý!„Fú—ô`Î;¤€?B¥s| +€‰€Õ Y¥ð—Wea›cþtÚ +0lØnólŸÔðŸX¥ ›'nl85#È}vÿ‡p;Ž"ˆ, Š•Èæ=ó±©g @õÿ#!¯e2þreÿ}<ç0þÔžHø„TðLzƒìÆžëУ^àûNtÉb>ѺW¶%|PÖð÷Õ6@où|Õ4õ¶Š P‰ì”åŽÀÚ!#ïÕ‚6 €Ó.‹£)«èœP>~¡=û¢Ðj³Pøk@ÍvÖÚ3Ž*r0_ + eþ>Ö÷^œh_¡œW_ˆR€‡ªOQ,¿i,,>ªžÈÀø¡<—åúÉ¡êE”Ç¡­H;,ùIžØžŽ ÈÙü—Dä®-·=Ÿò¤ýé@À9÷XC5M5;Mïu¤jf‡_﮹RÓ]SóúôÅš_^j0üúvÞ?w®uï¸Zûu+ŸC°) ®¥î_ÁMš*0×-5p¹WCn·‚ +ÎCñ§M•;:0@ù¯°_*© +Ñ®ƒº¹ûMßeÀ#4 ›õ€øÙà)ËÞ?±_Þâ (µ€Çg7‹E€ù™ÌÂ#å—2?)ò»Õ ï¾Û¯Žzƒú TÿõÁ¦úúî¦ Ý¼ƒ×œð𼦯ZaX0›+±•Ê¿ë;àü7Vî^/\ü…v@8aöÖêÿTÿIݳöq#­nËA€Pz•Ãñy (pM`ЂÈ&‹å–ÙDôì¿~½K¸ÍËðžžfF2)c†fµ Q ïl"Ð>çh?  ©@#Üi¿ +ã'GÖžøÏG“v¶Å?à·W.!-l( +í¦€Ë¥€ •  à)Ë[ªú'ü+ +¥ý•ûz`ö{÷ì÷ïýc=_H 2Ò‡G¢³¡áèôìöˆþJMhúŠujxçÊRwÍìt÷ìðô•š‹5S7â÷×δ±p,‡€ÝÝ»‘•‘•Å€¸Â`­€•þœ´­†V- +þiôÉ—»³€Ž XüË•+þËi bBêh«Y›•¢½ƒx/÷ûŠ +( +P +0~ŒvóyG{百>·”Ͻº‹°Ôé… ÐUè7 ä+ FPPýg¨ Ö××ëÿ‘Ädk¾Q‰LfNLäÿNN]ßAà;“•y†–îóa;!ìâó4¢ä׊ÿàïƒõA¥Ô‘h[ò9¼Ð2¢ÙlqyÍ:8cù_ˆÛuÿë]×û¾ª°¸x¯ùž]E2= #HЇÁËÔfÛ™^;J@;;HÚBÂúê²ÙÌ®.@9iÏfGëê®^uº"‘]ÁÿÞÞݦݻá–^ø3aЉ9¬¯b0¢TØ¥Üâ@% +xôH ›-øèƒ8`—ÙÜ|á˜pÌ~% ‰ñ×2gçóá@†ûá@<0ÏMû@ÆÆp*j5êSQd®.SÊõ7Å­  ?Bp«‡p(XãðL{¬é1ÏXÚšNoÛ/¼2¿vòœÖþ縗Ðúl +Ð×c@/5Šð?”ÒÆ tÔWÕ€4’bó…LfÁïÏø! ÈØÕYÜž0þÔžyêË xjÏ= ÈZø£€ +ÌMrÚ€ÜË?JÚ”0Ÿ2&±HW› J꘬«ôõì²Ú.+5 *ýª ¨Œo p§,¿¤Äù%µ›gƒ €Þ>>[ÒN ÕýoF°fÕF¯VåüO´2ˆèÐfóáK>Ì¿„¨€¼¢e^ %(>ÉÿéØß¯«š€Rõ{åÊ© &Ø'` ?Î<ƒD¾|„Ørò£æl6rÇR²Â +ŠùÜØØƒ kiO|Vh£~zÄ:2¬{¦gµtå§³žÓK;¿Þ¹X3=}~Z®¦§âÛS­çÖÎk=¦4€Ã×®žXYY‘ lPô¯ ê—{þÈ'ì¬ì*^°Ò¶âr;1pbˆÌÀEœmÈÿEp[ÛŠÔÿW+-Nàÿ:$ž×©u1úœfqë ðd=ʲ~9 ðû³¿"rÉþ\qû±JËš‘ hr›[ÌœÈ[tMLÜÚk¥?(À ¢Ðà¿T¬W< ¾>¨É÷Q½×z«ëÿZ. é¦é;rš09ÙõI¹–{×A ;Äæ¾h‹I7õ>]°¶V _>UPʼñ¸ž@P"-&Ã^sã3=[¥4µ]´˜[,æ6š4²ù½ïz_ßõë_Eî57Û¥°T à( (hZÀƒ¹vÚ¶±¬­ªhàN0åkGyÛÈhÖ¿ÿŸÅ°ì+(ðç°Lëý þßU"@©ÿ[ZÖ#½˜ þw9Cîç*M2±èìþk2@­ ÀFPþw %@ÿ‰˜üž^U À^ëCy¥Íù0ë‰ÃHîñyLþÑ0Z‘©·S0ç¦FNE•ÐG´oÐ0_Î3 )G€°>ü^È:j ŒÄñ˜Ð€Í´'=öÀn·==™È­«ŽÿUý¯ZU`ÛÓpJ¾‘™kC* pHõÿDÿ¢ÿJø‡F&êæ!\ðœð#¼Še4ð—K…ŒÛyÊ_0ý™;p$Õµ{"a‡ÍO"/aÃÆ¼M+ù)دLð¦M§'Gר ¤P`V©ýÙ +`ÇûPÞ‰`0¤ùj3;ŒIdú ö3ƒØŸŸd‚qˆì±ïÛ«ñíì S@÷a)ÿqJ¨­þrŸ—h÷Xx·–¿qôÿÊf€Šª$Ñ8¯íN–Ç¡¤ Jr¹5aÂvÐ(ùžT @bíÁûkOscÒ!}“þbtdjjøÆp|vvZ/ÿ•aëΕšš×/ÖÌÆ§kÞŠßHŸ;ßþ?Öäyx\yÀv ?T€‘ÁùÝ•ˆ ÿ'ò¹vEä+ëJ؆¿suÕ½ÚÁ92ñ_[ýWé¿!·R(ô—óÈz˜oh+㈗âtt`yÀ³ìÁ`ÁÁ^§€}ÖO +ðsÜ-øÕH€l p¼3IÇÖ™>zê&,\€ ®ÉÀ~}4°%P5ÀKý†ú ¡_0YÐÛÛmÐ5BÐ…>Fó^“JÿãæÀŸ€ÉÉLNÿ'¯Oº'»„˜M³„o |uØí‡œ h®õ*ëŸàãÇõ·ƒºßÕ ¨…Q¸A%\k…&÷i3šÚ,î6müïv›¯Cþ×wýSa_ù|ø…eOs•Èùž&h&€àÜV—«¡ÀËÜcÛàÎçH…ütfíÉWìŸ/Äê ù_qõBAËâ¿WÀß D€ë‘#n€8­(‰l§Jdðè–ÚPS€ÑÊ #‹À¹€š â²ýí= j¯æ@©T|˜(—úcOdÙ Ä=Žÿ±ˆåûÈP* ‡CÖÀ)!,ü5TF¤OJéC;¼ÁÃ0ä7"F0÷x0F‡f®¥xjˆICô 7D«1êX1Ö6cž˜œ³ ˜ø! Ôz~Æþ#õ~0ƒßdülÄæ1hÀváÐÌQŽIóÀP21¾q_fÉl$ªØ÷iد€O`ê! ܦDôÙ§¾Žv¬ä“Vð¦ÈŽ®i€£ Ycˆ@?Ÿz€;:ÿò)sJ¡ùëaÿ_K`þ#A°Ø*Ÿ;QTî9åÄÃسfP¨俨M…R±ôµ†ÿü¹¿ãç$}Œz– (§'N@„p>ù°\|R®6x=ÊëAÅí¼ÇötíÁÀƒ8d&³Öéá¸ÀÿÅ×g_Ÿšýé•‹?½rcjD æõ©x:}cjmíþöIá 6ÛñÔ»_þüê'(÷O¬ ðãZý'P÷«3Þ€,aEJ—6d™õûiF³Ÿ^cûŸü€«ŠÜ‘¢¨Ž€ Úwi dGc££±ìh,«¡¿_®?×î ôwü­¹8Þ†òas{gG‡ÉÌxM–¿&v°ˆÎÿ &õý¨ýû5b  ¾¾)¨ëÆ¿—òÀÉ}5þO&”90®mì'áHk`UöåVꢴ¥×ŽZx (©F|E‘Çá¿€GI޾²;6Që£ðßïÑriÙÚƒî€mQWL$óOÊ/Ù(éÀo¨T¨ÍûãÂÿ:{GGôNÈs T¶')R,Ÿ!ò(åò­¥œ<©‘œ"FkÆÚq-`xúâôÅøùÙááየüg§†­çkjºÿuúÆT|júõñíûésçÖr¹“¹ãù± uDpÃ¥NÐüáÎ:‚Nhï\A{"?ç†ûM€øw„ +Ü@ýÕ®ÿµ9« +¡wHF± ØIôÐæ¸ö,8Ë€Öý÷„ +ø€( ûðx_Éí£}n©Ç¹‘çUk}:Úþcí¿ ë€ýï ¨éY(€áD€öÿ'àã[Ïî¼’ð5B¡§ê“‚ ÿ§“o¿ý½·ßžœì»~ñƒn“…Gï-³eîC:ha "HÀÿ±·6ø¸íÿzN‚PR^pS®nRMàf6“vmmxË}Ý øï»Þ÷éÖ§[_=úø°¹ç^ýÈ.@³fÏxôŠÌ8Ú5+ U¹ÂÉímù“ÏöFöf»íû×AðïêÝÝäÐß°kè½´+ }€»J™ž)àßòÌSË€¦þwâ2º¥y,Wv±À_Õ@*-­P¸çó½Š@À­”HúêbþŒ'ÎÁ<àYˆó›Ð +ä"‹WÝ,þ‡ôÚØŸÐQ½€Êœ~hHÓëé#Ñp4:¼0§Ÿ •€øfzl{lìÁI”ÿš úúX|¶ €ÀÃá¡™ðgT\>̬}8*Õ uÖ:!óuþ‚_•ùrõ#?AŒÈ/¸“Ð:b Û33£3ôé[Ëò½<´ï+¯_yœ¸–§Ü€9€Ù¾z‡2B«úQ’†@ZÔŽrÜ/+Ó +´)e`±ü„ÍrÅŠ'¯L„¡'ÄÁ§~ôKÈ÷©< »¶جZ>Öÿ‰¼ ¥½Ö¢MÆ|9 ÁÁ‹À*ú+3˜PzÏéÄß¡£·§í•´JU +PÜûýþ><r÷È ¾?òhÙýã9_ò°åŒ¥ãkö7¦‡‡§â5ÃÓ÷oLŸŸNǧnL§ãñi¡Wî§Ç†_¯©¾?}ò­µbѶf³ËKæ—?¿ªñÿå~¤Büóm×Ê'¸ +¹Cmªðw«I¯³KÈÀF×ß±¡™ÿ ¸ª\N„üëFÀFäÌðø3šS€l óÈb< 8‹nÀOÔ<@Óø³þã¶<ÿÒ~¦¯Ë}Þ|=xxóêÔU>&õˆÖ¦ÿÔ@ÿ‡,È7ë™Ñ3!»Èí­Å6`%hý_øÿô{oãôæ›o~ïíOûº®Ob®Bü__ÇÙb1ü[°èÇ.@-ÎH¼=¬ vwßɨðNÜôªöÿMµWh61œ¡K­jp÷ YÛè¸Þ××÷i_ßWãOO0€ÏØLUà3_ & p,;ª^€Ëíàª_;<3ÚBwFVCm«DºÎ­vÇ«ÆòÉײ£òÇ#°?8hÓ¥»—ÿw{/„ÜíÝ•òÿ.Z(ÿ׫N@Ìv¯´­RÈ%%ìÜR €£U@GVÙǤôÿìÄ` Ð^`ýßó&øº|¤þJ"Ùæì<mÿÍ@Ìã ÿW‡ý¿¡¡°Ào4û+ väSLö­ ´1€ü3íQ«_JÿMˆðÙ6=qOóƒµÜöûÿ­ÏƒâѶýq45óÁ)~¹S3z=C؈©¾Cu +ðÃh +-˜Å<zTù ~¹ã?Ë{˜ÿ“ûåšþSRðªŽP‘2zé‹‚åûö}ôõóØ–°(Ùÿ>%ˆLø´ˆ Ÿ­ªßË?óÙ)©KB‰·‚Ïù'jĦ@ ¡lóaÿ±C¶<¾ +[Iø´áÁ®tøÂø¿åÖ<³u… +”Ê/Ù¤`¥ð'ÈCîX:ij ¼÷wà˜6?aü0sx&ü?ÄÍ^ñá>¬Š@˜~_|¦D؃Ϟ·¿–K–ª[îBÚKMM ÝŒ§§Ï߸15õ¯ÓÛÛÏù×­ÛSžáóÓ¦^ï®yýÆýøv+’ŽË +0Ÿ­[¹zbåDó¯†V\òª¶ê\q®\]]ùDî+è—ãêŠ;¤ßíÜè#л7œ}wú6œG¼ê檀ÿU”ÿr‚Ú5Î(§èĈÁУq€à_®N€k?öä’-øÇ{Ô™X>Óg‚t‚3Xyáô«ë¿\ fÚ`€ú¦KMM¿£@W/u¹Î;-€Zø º é¾Jé‘ÿä¾÷½ï½)§·q~óí7·Þt¾Þu½Ã}Ë©@¯eý¢}å³´pD ÖÛl쮿ݼ  Ú . +46ÞôV× +M]r&þƒœW7wúúÜRþo}Ú÷iñOÁ´T:£vhÆsj«€sp¨Œ„@¼Ö9Ò©âíªO·`œÛÕæ–lyî–“ãÿèhÝŠÔøw{›î6]º;x©÷Ò ÿ»8÷Þ”÷ÿ[ä]K¤ÅµÞ«uüåïkUËÖ„í‰Î-ÄËã¨-TL€ŽB–ò?6ÔF ›{ذÿƒ‰j¾ÆÇx<ó£y#"u¨ׂ•tØE‘Œ~{Cª¸?³Óz¦÷§ç?Z¬ùÉv´A=6"i5f!À ³=x`MÕÿ/l†UÀÚØègN©ÀÌ3Ȇ5 |pTÃ}cå–{ó1;(€VJþØY0m0F ÀüÏäçú#im¨ †fÂú#œú|vå¹áŸD².Zj迯íª6@BøÐ'H敃_‚q@ UÿC PV÷ô»Q–wÜÔŠ¹}PãäŸÒ?8å™9ØŸÖ¨à?úøà¦ _¹˜EœÇЗlõQiXnU-ìÛµªýµŸðÍ¥|¥ °¤¾,ý¾X…ä0*€biÚŠ‡ù£ŠD"gKä2Zöƒbò´IØÖ\HLÅ6âSSñôð{S7âÃ7~iˆ{ÎO¿~qúbÍìÔôÿœšžž¾q#~#}R@ë9ù¯ÇCß½úë÷JÕïr­8C+¡Õ¼z³òðIheueîe@}˜ý:}RñË‹ü>áΊ¯é•Zû_þ?(€³®®~gêè¤/Ðh z%4 «ìÑø‰\³ À}€ª=À±7:ËígºÜ§aägÆž=”xX„ö¯¾¾¾ n€—êû›.ûëûëµNûÿè»áÑÓØí5#¬·;Ø=á57ž6³ $à;“? …?Šÿ7ß–›3[[[”}`îÕU×-×-t„¬7!’ð P€Ç¨þåTOÓ`µd@…`]]Ê– š„3^ïØèëìœùtkù«è{χ=r¶Ø,çÄ0RÐ\h&ø{ +tmG"Ðrû€ÿaw:• +@Ô¹µ­¶9»®¿Ý÷©£çÇn÷cáoDŠºB2úR¯AH6ÿ/áJð_¨Öz ìúSrí^u†ðçq‡ `ƒÜ›”Õ@úgè¶¥ÁA=þ¸µÓ H~;÷šÿ±â¿Æ5Àäkgë~fœ÷ÛcáÍ€1¶éñ{b*fÏZѽžZ|€T›ùjûO `Æ«íÿRj¢ìÿonF¬¤[­Æh`”¾°ýàý“{Zû¿¸÷G-4s‹¶m㇆>˜a[™Áª0$<$Ì`:ø4!òýÖÕÍ×ÍÏÏÇÿþëFÓDcKm#`ð.ó€ßÅÚŸæÔ)+à`Sè/¨,ÈŒ¾¿ I~rÿ¶f×ÇÐ_èIÓääÞF€ÇÛo¾ÙþÏon½¹µÕÙw]Q÷ª{õ‹suu}½×²ºn¹, €–µµµݵRöKùï•O[;¯S«ò-Ì @¹  ÐÑÕá®tœ [gä‹8>ýêŸùãu ¾ì¡#Ð=œ¹wëù ªp WË_°ÐŽÀ–¦Ñž0ƒt l»þö¤{²o+Ûœ8ü ýåEÕ^öË“õjHàß0¨À?Zÿƒ½hÿ 0ì +ü“ô*! Òz)°pZE`;€ÌÊ’Goy£skùˆ 0ÐP€Àœò^T €fM`ïi~;EX*'Æí¹L83< žymLŽ ›ÿÚ„?œÒäøÏ\€ØÐG¤ìçBûÿ!cÔˆ¾y/øÇ€Õ#GÚ¿ ·“­ÏÍÿ+­÷Š`mÀNi@ÌÐkB#€™Ì ƒ|f&à<š¨êëæcœ÷gYÿÇΞÍ.h]Ü,Ìc`DŸCµ7à)Ä#Ü +ÑÊíµÒŸ¯Œ€/‘´%­lä™ ¸ßO(O@¡û\ @Ñž¬X뢚§«¿jýs#@™åa}î¶ê#$èýóÖÿüû’ˆùW£ÿ}»Êî±Wž}$ðH* `±µ´'Ÿ­µœOøbà^Uý¯¦H"o ÎÄ{Ç0^R´nÑ-€CXÂm¡Œ¥†Òá3àƒ»ƒÔÿOí9­3PÌ'r¶ÜX:Ž)78ÞŠßß0}þþðù‹5÷=Ï×ܸ?<•¾ñúÍ·nÜß>wN™OϤ»ÓJµà”›6Áz¾tK•ruUþùjHNWWI øÝî¾ŽŽ þrÞèèècówÅ¿\Éùª«²ˆ0 ‘‘Jý?2R72*×#˜×buTT1dÄ4)lüÇ? +òµwLv1Ó—‰F®¥»©I üC(p¥û?Ø_¼„V@}½®I ^8@­”ý¨×½(Òëu¸©§©f +‚Ò]?¨ »ºÞj?# @jô¾>!Vnÿÿåt®~þy/z¯Å 3êƒ^,ÖÒøq°;¨«à–÷¦—úÿF”ÿçåÒ'¥_GW›6¸Þ%ŸøÌ–|ö­­?ñ3ý?ÄÀÞlÿžv´î©âÿTH¦ðÁ²C[жfH%(vFVÜ}“}<¶²Û¼”€ßçòb'ÐÏçi]+vÃÝ&Å ƒw/¡ûoè¼d¸t÷$\À@Ë’“&Xq„ø(ÝáC&Ø?ºÅ8ÀªÀ€9Ha*0% €€fÍ[à_~E¯b½î$l‰Ì ÀÂØB Šúئj]˜=røñòºkÞg*@ÞÑëõ)©ù!ÏO釢F}ÈEÿ­È‚•q"\¬­´{¡ðÒÖЈÿcú‡ÃüÛŒ7üáTJÏÝÿÚÿFu¬ø¨òf¡_NÈŠyø=JòŸybgå ª  @kÿågÕô úðQ;@ô–Jª‚ß—Â>™GìV«ÏVγÞW‰ÀÜ @`|_Û´1‡Õþ£<ƒ±‰|kB­òš ƒâ;å”WÍ®ªýr‰„mœ.€Im€«¤Fö1 €þ_>ÐíAë4€P@[œ¾”h£ÿ +úkÉ@JXþãȽãàúO4`©¼§¾ å +PVÉÀRøÃÒ€¥g"€½§Hxxš±çJ• ys¶µ± ñtú‚<Õ¦¦„ ÜŸŠOݘ¾c8žž¾q!=•þåé×åtãÆýomÃŒBHÀ19îâåL#h*¾¶ÀwH‘çJHÛëã‹ûFÇŽëä}àÎgŸö²¯ ¥ø¿ã¼³á¬Ž„GFú€þhŒtŽ’Ô þ3s.ÆbÜ +ý‰´g ‡KÙÂßA +â˜4™O+ÞF]ãEÊë ‚ÿMýM†à zƒõ—À.Iñ î?ªgÙ_«${ÁàmõõÝÐñMhcúÉɼù¦p€å°õ±ÿ­Î-h*6î¬ÞY]½sgõ“KŸ¾î^ï5¬ën èÿ¢šÿÇ0º}ûv°cƉZ ÒjP€™ +7‡}îŽ85vtt95ü—ZýÏê¨À: zÍ”0‚¾ÐŒLF´;–” +àŒf„ivå9 ýê…Oš¯oM¾Ý99éÞè\~ãä¹ÿ0@X¿”Z66:'«âÊØøkp44Ðþ—³A8€áRĆ]ù‡Á]Èš€ÿªþï]G@D…i¯¶9]«àFÊ{€pà eeäP@HÄ€èÏ&@3Ó± +ÿž{öG¯$H$Ç3gÏ.Øsól“£òø<ð3€pªÊ¿¡™TD.QÿœøÓ–‡®?Êø/¥ü‡q¿>¢7†¤NŸ2΢ `¡Bñ4€žôØØûkkˆzI+B{1·y¢¤¢˜üCû?ttE™l…ý:á 'º`ÀsVÀYOŒÒl,̳à¯ìÎÏÏsj€«ªŽòŒÏÔr*]û业ø'ò{‡øQ ÌäŽM  H¢­OToEY^¬xî ô/+G lÜ«¸á„RþÃ=[’ûÿDìö÷$å"bû8Ä€ÌêñÑ9ÁèÿãK>i=Dœ3†D¢ü²~Õø§_}Ž(»kU…P –¾,ý=žÆ%µ¸G³ä’öí¨t@f)`ïí“ç| Ç¥ø·ç"B¹µˆN‹Ôÿ¶œýA:= Ï1 ÒÛéôÔ”0€ûSSÃÿL߸1uúF:~ÿÆìë÷oÜß¿/rî8³ŠÉX]ÝÊsÀµ)`kÜ+jŽ«#2?ÿ}û¨ëðNÿ5pGþ×*œ•wŽ`?p¤££o„‡€º'òªªtZ £ €l€ª@Í0ûwtí}hp}O(À„%ˆ¸ß¦Û‚Á¦`}P0¿ÿ6 €ú/ê/IáWö±à­oll”†N_Šu‹ƒ€‰FÓi¬Nþ`-€ÿòqåhÿXpR0÷ŽÕ;ë`ër¬Þú|p=è½ Ûßn4n×BýW¯Óu'ž (Ð¥õÿûºú:ú°–áî`õÝù6Ê9þþW€:^z +ÔšÁp®R}¨@pÐÞ3€3‚Y°mt2Ùn¤úDACÈ}Õ½êû´o„î¾û?þ韠É:n—çÝ(ž¡UäÐäcý&À~“’¨.@ôw »— —z±H€F{éÔbaÐJÛêªz€:Á؇R.@íË嘕úÿksò€þvíÊ^ߊ4ü’^EP|"àóÿ¼<æ_àÒöµœ/³à 6ÚÊÿ –ÿf†Ã×ôjú_íþ“  ûŽjð6FÂú55¡0ŽX¸q +q€BÆãb;×úü€êÐ +ðBôƒ¢©fô‚ÿá,* €HÈju¿€¿r+ÂIÞ„´o~ÉÀ@û¬¦ùGVðY?·Ø€m0Áßþ(ª‡­pá,è¯Îò%` ¤h ßþ¾o?!E<2%òìÉ+/M’Ú€Â=ÕÀF`«JæÉ+Ñ]‘ò;$  W^}ÜL$m6lÿù¸øO„ûH?ޤß<êÿJíò>DÿÐÿ_éÐu —ž¥3Cþ¾l®]Æw¢ÅW·«jè^¦ýßçå¢7`*U2"IYS …,ñ=þþhÏ8gO”0<®ÖZbýŸ{º¹€þ¿Ã#\3}AÍ„l¾ÿ×ÛnLOO§§^ŸJßO§ÑˆÿwäNžk=®@39B r Óµ¢½€¯¨WqUÿw8YèÔ;… [-ÜÝè»ÓáÜ9 ]‚üdw”Jÿ¥CP¿cè2öpê tŽÚ`^ÙŽÆ*KX…ò;²ŽÑüßá)`;Ã`„ô4 +þs :À&Á9êéô;Aý~÷`?öò±€€ÔüÖÞ ùWy‡üƒ¡©;¨ƒÐŒô¿ïLNN¾ý½ßüç?žû//^˜›8/Ÿéäc¸qgãÎ'Ÿ  °þÉå[«·T`(¨öþ½·Ã¨>ØÄÀ‰FP€[µZÞ Y“¢å/ «<àNGß™··Î¼¹ÜþñAûŸœzø*àÿ¡]N=vèÌš{TòÊÿB5€vÀÙŠf#j +Pa‚®BMê"™ì“·'¿÷Ûßþöÿú'[þ”Èk•oÜN‰]'Ÿ”8ÒËp¿»j¢/O€»,ýï*  ŠÐK»M” îöî +7èåénSK‹ê´¬·´¨5@×*<5™–)“êœ@ÿ·µ1ºÅ(`Gö€€nÿ9þ\(4ª-¡e2´žß«¸ ¯­“¾×æ9%÷þÛRЉ……ù@,|Ô7ÌÌÌ4@,ŸŠ¦N©\¾¡ŠSà΃õ£H°FÃÂÿ!¶¢NÜÄ­ž1(À6gç*.@Ū`ø¿fü·ô©†hýƒ;)¹£W•zC”m~•`óí­¢ÌËó¬öýžÊÚ_lC–ÿòãÅÎzØ þ+ `Œå–÷TšåÈð¥‚u}\ä -U"`"ê¿ Ì!€o|œ-m  ÿXžæ­ùCÕ H&JO•O`Yiþ“*ð—<îÿIzû&}ŒùÅA!@Ïø£DÂÞ£Yÿúzö™€ @B¹úp­B¾Þïó1=™MÕýüÆ8ü'(³PÄšÝßM9¬iž> +ð„& eæA0©¬ó”NîÑ>LhXU"—Ë­=ry!í“ß=’…¼+ŸŽ_ˆßؾ÷ܸáÆ¿n¯m¿¿Ž¿•ÞV±Åã + Àxu¥N‰öYó£éR¸ïä=êú;œÏúº}JÐ Ù:FéÿûÎNu{ǽιý¯8A( Z `ä*u£#ì<ÓÄÔ%¦Í4ðwi-v˜Ns @ð_п±€þõ +ÿƒèøó¶ÿwõõhýt‚ÿÈò Rˆ Àn¯\×½Mýõ옽ÜÙ3uM¾=ùƒ>4>~ã7py»RLnlu‚¬~òÉÿÚ¸³úùçë««—,—.Hê1ûǀΠ Ê'¯e´ Nà fÓy¸þ(°¡êÿ¾3g¶ÚßlÏøÓ ßs€{¸¢ïlŸyŽå?wh|gådÓÙWuÔŽU%D ÃíÞèûßÿßßþóÿöÛÿñO'ÿ¡(@±Œˆû8ýuu#WëÈ…]+®»»‘ÝÝ»»w‰þŽý »zÿRókÕÿ]ä€Mònº_R^½MM4怅^€–ȺEà¿mEUÌñر°Å€0€µˆáÿ½U@sá^³Ò4Óu¥YQ€W°PDªÝxælÆžñ/øsÿÓœÖÇcÌcð®o` /ÿÄS׸™U +óHDiˆÌ†¥XŸFÁ"oÂ=xÝz€¿1„;ÑÐpÀÃËrz,Y[[CKe@+þ÷þîÞ?¤í=[=oÔ$õjZâ(I“‚&ˆ¿Ò´‘æ E;!š°•74t°)ÇLéw·îÝ”Í ¤¶æzFÚ¾CXèöÌÀ S†{Ed8o§ô\½›9°g©ÍkN¡˜ìÝN9s׳ÖçÝsv;÷r_ÚM¿ùaâ¯FMó ýxðòe¢ÍJ(Q elú‡(y²Lð(à÷ܾ{nï’ûX럈ü©õ7úo¿úÕ§vë»ÁýœÙr”íA["O·*z>Bñ_ŒKˆß&×òq†àg½,üÉÎ}}·´ÿрÞg\7ö¦Ä €£ëÙ +çv †í–E§j•¶f¥À#öTÆPâ¿eöÄ€4À°ÇiM{Îè¥÷6 +UÿÁl[ÕÈÎËæ 3·3™Löì…/1üÏ^š9¡ûý‰.`ö£ÉxåäTœÛþjòO¡¬&د> i ÝiJ45%D/¤Ó iû™|ið¯äÖ3 pÿ›ì¿TÉÆ“ÕG6ËÝz”ÿM2î¿r—ðúÊ]?¡¹®¾U¬þ“òF™ÿàC¼Ë0çÿEÀ¦•Ð(§ð-'oLb`’e‡Ž†;N¾˜DwŸôDT è†¾½4’[pÿÙJÚ·:Ô"€öŒ>þ,§ïæÐæKñÀjíO2Ø3Ø®±ø?<²£îω´þ[ìÿÃÉÞâúŸ ¬ôY‰×Èïæv‹üØÿ+þ«æ?ó]P ¤ðU$ð;šn­/ _¡ ð5º/è'OO,*þÃúKÿyåþ‚4à‡çžþüç=‰$~ðG¢¢]g¬«^<§×{Ïésò–z¸rb6MßnP”€º@!ÿàðÁ›`é ¾£P¹\³ +¶!j6˜ÑÜçN>RyÚxË]Ôÿ)à=]ÚŒµ¬éÕÒ[¬é•£gÀñÀ˜÷ÖÖ“€¬ÀìuWÄFŽZ9ujeeäÔœï‰oee®YzÀO€ÿ`kOžì쬯-îPiÙkDïS€ÚÇø†µÈboÈüÿ¬ Ëÿ +ÿW\}®ˆÿúèŸþ7œ|óÏÛÑìè:Üpm ¤b³c‚¡h! +ÐB§eݘl.ÝÀ§wÿéÏ  ¯g%æö¹c^ïµß´n·¶Ž¶¶¶kýÍûÕÉ_ýùÌ­oAïš/jèÚ%#°•¦çU•®*,¸¢YÙ<„zñõNTû0ñÃ-À?7ù{ð»»‘þ€ö/"¡zùd °nì¤?Ñ:qø;ë!ô[øªs‘n´³  ÀJeƒ‰™üî€ @ —ÿh²À@ì1è£îçÞ?|×¹@ç¯ß;P„Ñ=á,f¨”Š82-É8"e3ÓTÊòþc0Q}A€ýºþo‰qªø+SƒÆ'VNUNNL! `rbJ?&§ÇƉÜõ/ÌÐkó 1€‹]Ü(Áÿ†ÕšžüøÄÑÉ©ÙKâõÛTý—ŸýìRAôd•X÷¡í?=}Û|~Ñõ#Ò¯J†WþÃñ~Ñÿ_ÁÐ÷SñŸQŸïGÀ˜Ì~*­ƒ©’« Ô ò4~ ³„zP©j[[öd9~Öa<{“»Àn˜Vh‚ÝIQåi˜Yó~Ÿ¬è«â ”“µ-ˆ>š1ÑwÿYOé?½Ï¾E/‘UöoP†ü…š"\þ¿(ä4 S!ÿmC\YiPÚ«B~‚Ùƒžü»k(QB^2ñöóc-¾,lI;囨¨’Yà?ýž` ŸZú1ÈÊ´Ì0üûüçW³ölúiOâÜè‡&`a!L”à« gÒ ?XÝÈ¿Mðâ>ÄN²°Ês¸Ì5ÿ­A]ÌMõºSŸ`( -€'P>' Wüì €qÿÁÿÏ»}Î{t¢WXç„Ó3Aðχoÿ "Up ðŒ±=PÊ +¤Ã?7-Ó&sËïêIÐáòòz¶ fDòÈ„?І]<)nPe^ ñ?á|dÿ µmãµmµå&¨·‰2°Í5•PÀ{1ú ƒ7/©ïü’ `-€¹_‚üÛ-bkë©ùEc*ÕmLÇ»ØAèîFÏÀf= PQ`ðÏu?ΧúæN¡þ?y±áo€`Wð¯¦ØDѹÇ:€= x«iÀ©f¸Ô À'ÜÐå*ùÜðz潘Üs{¼×Z[··‰;Özì7ÿë7úì'|üøÇ0¿ÒÿÆVëÿ·ü¹amRíO/«5~Õ²ò¾—Çí7`г‡^×÷Ѿçîÿ&¸€ÈÌ¿»·»–¿»— @·ô%Ô'ðߤKýz +3ƒäÓ`œu˜{Û&‹ üåÑOYnþ9*ÿ—‘ÿwu¯eOðÿ‹=‡tbØ›ØøA ¾‡lniùj)-Hõ–Ú‘Lhš!±²ÿD|r¶òRõØ¥IÙ09ùÑ$•þƒ•‰á&SœªÿÊþʉɣÿÀõÔäiLÿ!¨>=‰4 D¢©ÇŸð/„ž†pî²[µ¬öÄ¥“lЯ›¤Úü/'&+û­WB5å¿;íÏd¨Ì s£*Àj=/þá]jÛÿcHþ •òd€$@ØMMJ"ÐÔ¤h ûÿÒßÿ^ä`½VD÷P…¿Gúd°ç ~ÔêÏèÙNui2@iý$W÷¼âÏ‹`VMq€<+ÿg,î4ìþI €“QöGxñŸÑ Øê€ÛŸƒ×ñ üÇÃÌçᙓӠ(¼(|«Pö1Z/ª€Jß+H‰ï”þ¿"ÈÏ…Ñ„˜ä6r°Z nCñå7ÍÍ4m—ð?’Åd1³˜ñ/Käs2@¶ÞûÏŸ;÷óŸ£°°°J׫?HØíö®Õ…§Ö·J6¶ €]ï­[Üòä3®—ø·¸_ßÒ*€ö ǘx¤æ'À~>•­>À?îx½Oܺ†­«hÏiŸáßÉz× wªà›  Ï¦ÿýïÌG¾ÐŒdÓX ¨E60šüåòr£P€r¥4È5dÓ—?ü·a\Pnhë†$î¶ TÂuâàöýa…MrîQù¿4o£7KŒßüW=¹õdmíÖ“õOÖvÖ{{SãX;¨%ÒÁ´#À  œ%˜˜ÝulŒ_±k¤¯ïT_s_ó) O3×ÿŸ64|ú¦Ÿ–þswØ P‚ Ô˜{"9¸ +àeèÒ¯¶´èa@^s@Ö$Èé¹!šÑyϼ/æñÅ<±c¨þ‰C  õ7­¿ùÇ#ÿ¨&°ÀøÉ‘šš#]ÿ?|ƒYÑqìíI­Ï˜K*~â¸l¹Þ_ë\·´Ç ’;ÙŸÏÖNø'ü·tnrûs.ÿ{Õµ:ºeð<bÒ€ žxÀ&¬€:7Sðb c§Úˆó@܆jbÞ«ÂuÀQ@º°ìÀà*‹” «ÿlÿ'¡«ú”æ}ì$#e·ƒV-ü”e"Ç縕™©B >€•Sñøä¥1ÿeÌC€ÉÉøGTöOM6…šˆLM`o¯²3¶ì£°˜<Í~ðHþß%@•Z8ì_ìâX  ÿ™lâ×'¦æet0UM}i¸ÿ—I?'øP©?6í¿Ë#ý àð,¤‚Ú~Yÿ“ä_…ÿlh4³,àvHÍÀ®\©¾2&€©©ŸêVœq| ¯FV¢TñCÿ¯ `¡²›È +½³wÞÈå¶ ÛßJj[z?øÌN€ÎÉ]±ùµLÞÅ@†9Ö°åüKiZNì~’.üíp!”ò_,üÙv„Ú“¬#ä@dóIèÿ9è[þC³¡&BhÕ­vè [ïJyïLðrãe>ÿòÅK¶` ¼“<ùk €¼ŠÒ“–ê(è• Áõ)r„þÑXxºš¦š?AП +ðtáÜB:k?“¦g_Öþ!/‰ºh‰[K·î—è^5þR•îÆï$°äyRåZB`Ð¥Ÿ¸8]>a` +ZòúžøÜOÿg!IsºÜü'hºé>a018èä1€:†ÿqÆb NxðOƒ.Žï1›£Hæc<ÀN?0æ¡’|ôæ‰D™˜eðøß6Ρ€ †¶(ÑCy´.`ú‘­î1ß=¯wžÎ÷|OÚçïÝÃðnnåOýé²¶F—õÔú"ÁL*Õ{=ÕÍ‚CÈjà!™ÊEX  ³D|>,ý­þóæ?êÿæ“'áìûé› @0øgzƒßà°›íàè¹½IhiQ‹€<^Ñ[ß 7Ú½íÞ?܃ÄéCóŸ@ëÀ1œéøÇ#G¶©9¢t«¦¦æxÍ?>q]Õþ?¿¦m9ö2{<هœ—ííltáAÕ¿/Æãëëë–õÍxçzgØoüÛÚ;ãÔìÐümÖ¯×SéOÐÿIï7á¹Á n +`+Àh4Š'0ûl2@#!N÷,hØâíâäåÁˆ >a@ˆÉ&ò·²Ü<·ÜL¿Ù«_Òo™{—%Ýp1®ü¿VK4ÞG ZØ‘²¬q84ÀŸ@DÛ¥»™¡j(ŽÎž˜­œ¨†c^ˆp?Î{ðÎ'Àÿhjò£øÔGazµmjjª†Æ(¨ã"@÷²z¢iª÷ÄÝ1Âÿ0¯háõ™n­®¦»` œöŸþõßUß¾;&ûý°öÇhjC/Ç“z\ó9åþKð \{&öəЪ-T…òGÔºúÖ¿H0pОiš僪Xs… ­ˆôäæ~›˜_fÿü€`HT´*•=S¶Þ™/¼ã'ta#Ϲ€¢ åB»G|ë’B0¡§”%ô÷¥ó2=gäîù…Ðyìœ>]¸¸ð*|înZd«tøÏý`uaµk5oµ¿¥0`õgøWHX{^¢kA²hÿ8«l© +?½ó]ñâCKKe +iŸÔüK>¬xqËhû'0¢óxÝž³>Ž¥áö¿Ûç»ésž¥Û< @ j¬‘³Wðð K%¨]@Âÿwù—¿ƒ ÐŒ6ºíÑh~ü0ù+gGÞ€ìüñaà†@y[¹yÜlÀ”žðߥûèøczüÆ æ@I†ìÅœ¶GÞöG¼¾yÛ¼—ÀÊÒÒÜÜ“_¸õdíûkkkŸ¤Ö×6ÿ½ÝFS2y€5ÿ‰`YÈ€èø\}¨þýêøìäÉO?ý´ãÓ7fÇÚþAi”¤€Å8~ö n¹ŒK ›çzVæú†…øm^Ès£F¬´#:jEð?&ðÀÀ±c£ÇŽ#¸ß&Äê3ðóé8Ý4Ùæ]?ùåD¸Ÿ;sæï»ö–‡±WÊM%(ú&æ©Ò㴈벃ßNп_§òX¿ØiAIn¡“Štîtn2 k4þEðúŸÿXX¯”Àþ7Öë×´^ŸZ7²Ð¢Ò€X¨{zoxK#þO¦:"˜ûNf ZlÝñe྿Cÿ_lu¼—Ø­£§üy0™D2º]È[#e™+„ÿG í/MÆQÌÇ+ý—*ãq= r’Wý*§f{²~aü} +ðú¿x%Ö§þSüyTÿùa8“ðgf0ðû©8Ãb@"qîôéÓ ?ªy ó›0ç§»zÚSßê1^ÝG Þä#˜GÑçp¨rŸ¥3L2¡ ×ÿX àúzh†" D(@ˆ?üK±?`D­ìÿ ýdéï·rCÛèÈÉ 0)F}h0 ÜF_R“…À¤¨e@ÍzIòW:4±`ï¿gìÿKÕ}RÚù"þ²ÎŸ €#J €7‡šÿTûß°Û“š 8^ @~ù9 ÐÙxÍ +€´˜ °ÇŽîpG%÷‹—ùwÍ6Ø ˜sŠ"WÜø:A ïkãM0Ê $M "ˆDVCçÂ0ž~šY¸èÿùBö)Ü0XM,¬¦WÓyÔÿví-vŠ!´Ioþ íÑ b¿Š#J€ù®*À?*u+UK˜ +Hk`'.'«¥ °t«ð³¿çf§Ûí¦¢Ôã$\ò9}nÂÿ›„þÿ7™8a €NÀ¹aç ëœK¢¹0Ççeÿåä»üûkÜàUÀPh³ê®|Ü\^þ; ÊÙò×€Õ¼þåÑ瘴•Ã;m˜Œ+²¢ð¸<`ˆŽÿÈdr×Õy½&®ÛççïyÍ›LóókO üÞÒ“µ[TþïØùd}1õ 1ªÿSã©”±—é‡à™¢¦:!¨ÿÎ’íßg‚ýti!üÿûbo$Sv;wìvÆÿà¡.<ç` +¸×ÀK€ÿË—[àÔ#3€!K.çÒAnÌOÌ7zÿ#¢sÏüßÇ €ð¿u`€ À¶Àÿ‘ã̈8X´Õ9ò“«]g^'„>ûÇ?ùûåaßö‘íííFÏà ï„ÒØµÛ:Ûa½‡ñ;•ü‹ë‹ítŠ/¶3ÂCçÏUz ÖÿY”Ã/:ÿõrµàß¼óW#€înn`õ.µÝ@}|,Ô#ÀXO ÔºÚÿ«·”â-6 ¶éWƒD@Ïšj.ìðoO\çZæZ–! –Å —WeŠÿýÒ°åèØú®YþÝÿ&ü‡+}¡ÀKU[Á²:Ó»ùBðó™ªê£Høùxvj2Nõ}µ¿b +3˜ó±ãÏÔÔG§O¿" Ÿšhª¦MrÐT|k{<È'p‹ƒoÓXbúîBbš°á®ØÀ —dçgBTΗïb³Ýûêê+×\ÝKKŸ+ýhü2œà @ íM+%àÌÐLè>ºÿ™¢3uÄÆjð§“œyÜ´ò/˜|•A+“G÷? °Ôà +"@ÉÞ +îr, 'UV0¢ÁÐ”ê® A€vÉ bÝ êÀ¿¾ÿ‡¦?‹ýöe§àc©ÿ ùƒ9Î(檂nëFžÓ… åÛxùâ[ @Qã‚‘Ä\ü ìs›]¼ßAà_¿Ìä_æ%P¬¡£x™/òTå6è+ ¡"—áÐù™ðÓ†Wétzu¡i!‘Nc°pž×PÒÙ‹OÏXÏØßª ¸÷=˜ò£0¬zÃ`\˜¸ Ò«"B°$>T¯T¡ÑKdV>Xùò,ùõEЀ˜ÀœlHï¾étßôÅ|NçY] +1@€“ÀÿcÃc.™øa ¸¼|5÷NŸËÀ>``6G£„ÿ> °·aî?n*"¯0úÃã6xö–ƒ-ÐgñMøöX ãfC]€êu›ÁbÃ)`4.Ú¼÷º#p ãÿ'Kß#ð¯kÿº~km}gsg½·€ßH·!y!¡9€æ:48ÀCÌËujEþç?c +pòd¡WGW×ßЙè8öJéó<Àfú—Hú[k=²¸ââ)Ã?³€ $GS¹;ï…€Ûç¡âáÿ@ë±cÇZ û÷ÁPù—:¸ý§ëÆQ#Û:Ââ€CéXŒü?þÉOþó‚í{6ÓñšííQÛuSÀf¡šÛ&ÂûEKiŸªòvÙ싯3Æ÷Bá·ÙÉ”@æÿ6&¼¾ß‹é?ôõߨÿ7 ëÑùçô?ÂùîúzY 0Bõ‡ö"žÆ±@âÿ·i2ЂGÄÃÒÞ8?¯W9.Á 5º yy—%ðª86  µ¿jËÈ[>¿w€]äÙP±›Œ @‚¦Á/c›œÙ;•<•ŸõÇ+åÅ h¢z° {þe þ¦ÓM2¨ä­¿JÂüøT‹ù¦*ãxóc‰»aÿ˜ÿüÝsþ4ü‰……*ãž:ž:PÀØ—y~øg)—ø‰vo†>!ú`ΛqdíY Ÿ? ¯ú™ŒCzÓúÀžø‡¦å» +Ì ñGÙH.˜þÿtŠ•‡•Ggr8ðÑ£PÖ‰/-íïæ¶ôµ¿›Ñ].ù“(}M DÈ{€š,þÛs +Àò}Ìÿ üy0)å?QF|rû[Yvûu”_™ÿ$ÙGÙÿäò¹<&ì¡›,ÊJÿ·Jù%ˆHuàŸ[”XhøG´òÀWïÜ1Œ5¡EÉ’=´·ØS*Å7‡Cd¡ô‡†¼$‚|§‰8‰…pWö)¶ØŠª‡(@8Ý•/À·÷ó½Ü›c…ÔÒ0/F c7Ÿªÿ*—¾Û]åÖcÓKÞ]6àºÅ£ô0Î%¥ôyd;Ðã£}ØÑ¹º¹ €Ãé#ü'0qÖƒúÿ4ñ€ ç¼ϱ ðï‚ JW¢Ððnÿü¹fÁ3€SpbæåÏAÆe0þ7ËÍ<À`Àò¨|-" -ZWg1Séo²Y TÚêlÆq£-æ~°™¼óóKO––~ À-*ÿ¿¿¶öÏ©OÖ×>!héN©ZQùoäõs]¹êp÷Ÿ5—ØäúŸà¿å³/?£«“'?íøû.:þ¾ë»Ý.Y^ÁCB€­/9øwð*aÒ—lØ¢{¯ˆK°àñïÛ=ÞFï=ßÈŠ/æ=†%@tF[Y00°_£ãÿq®þ÷ñöHÀb¹F7öÑ 8ò§#G>mà—œ-ÇÕŸü +Ð/bšýØ£:ú²í}“¥ÂkDÓï\Î×.ׯwÆQð¯ëŒõù:Wç(ÿã6 +, ý,$ˆ'°ÞM¿ö;BRwµýÇí\ ØÄ‚f'/ÊÚàú¨ï´Ô³°¥Ý·©4`Oã„·±”žN €kå°ðr S°þ’§þ€{‡²Ö­ÞÃv"ÉB.™Mj»‘;¬R) ͧ&/]¶üÄéêɦ¦ ¶ö›ú¨¿*‘kªþu8N'¦ššþÏN±œ.ŽáÿÑ€ ^˜¨>]=æ_ bÿÌÅÌUkOÃØ\¥S˜€ûá¿êàC×?õ|æsÇmBîÛ™™ûTÃrSÊÜfS?€`ÖÉpë€Å}ÀºóyF €ÿC(ÿ1˜8PÊž +\á@ _^aÀäO«§øQÓ§6ò} (´›ÜÚbð 9F<}.Çêÿ-hö9WúVkÉg‚ý¦vÆÙô–¨€‚n¸a~ ‰ûX´~ɰGùŸ,uØ/`ßYc–ÿSù@H0`…ÿÆ·ynhô‘]},QTÛŠÈ 4òï|—\ ¼Jb’.«!üVÅaŒ¸D¤2¼Z à?u8ÿŸ†Ï/ô¼J?]Ày/®fíÖ·jÈ4åÈå›CÀ…Q(òyïÂ-¥ N°$‘oƒ  À!p,à9 À'#´üÝcn÷Y0€‘‡N§û,Q7ÊÿÓh8qvƒø茹Ǭ +´Ü²õŽ_Ó:Vb˜<à€tèx ìð;ÑÊ>ór`Ÿ9ÚffÔLJÀ ûÏ£µt?Zg2j Qƒ¥Î°êõÆN›×0ÖŽ›b¦À#ï=ï¿=Áà{OnÝZû×µõµµõOR©µî h?_ï®M¥j¯Ư—ÌL#Lä C£`’ñ¿ÓÙ7Û_Àÿe\šÏþñ)ðßÞõ&qIG‡]ÀŸá?xx±s˜87¨Hz.O—¥Ь[ùðÔ8YŠôÆàóþ¦u»u¿µ^Lj#po=¾½­—ÿ|µÏ"€y›­‚îŒb@þ‘?mûVˆz^¬Zú+E-@ÁdÚ§/Ú~`#ï4¹üï4Š/üy1Òï\¤› +û±ê%c\ðÊ|åÓý_g½èÿqs³÷Bï_Ý‚ýXß]ÏK½„ëMú'hü/ê€8Ñ¿Ã,£½ÝÛ8O´È3/:€%þÿärÍ©‚€ ør¯åKüšÑà@]òÏnþo ={ÿ4EvµhB—]-²¥íRvƒ‘Hfº +¸8Û? ;_Lô«S ¢©zjp¬i¬©©rÒŸëÿc0‘öŸ›¨ž .ø!˜äÀݪÌüþ™t:´Î¦ÓépÃS´m™àäp”…Í3¬ðÏDÞC™²gPå>¤OðYÌŽ>H@$3Ûß`<PĈ2„†f–¡Äga`z芴$  ºú§ôæ¨Ä ÐÝD‘—xÖº@yVîÑ,±²‘ÆE»ô¤€YŽgì^[|¦åJ«úPÿ3H2îBþo×ÔÚ`0¸›³j°úK:$Àþ×Íÿ$³°Mœ9N¸hU ”…¯µ]ôñ¿zKýo©ÿ5V.žDÀ÷ xÇ Eúò/‹©ÿ ÷7òسÔX°øFh`mHó¥ Ò§_ÿŸ²ù”#üô|ý´²Öì¦o“·–§‡‡¿'á|ì‹;”âèMâ6æÐç¡4w¡=Àd@²}`Œò߉ 8è‡ó¡Êÿ‡Î³}cgg ýé]° p–À„rÀA8°AðØ ·\Ã=º %øŽ_Ó +-+n‚SE…Él2ëø_^þ=€—üÀî°( ¶îøl×Mto_d£„𦕥ö®ÅNËEŽK Àôh-€?l¶1ŒCuO€ªrúF£¤òa¹ß‚Ö¾ÑØËL ³] l¶¸lìóþ?sv¸Ó»Þ«¤€½b +ØÍ²?Y4 +êƒ +à¯CàOÿ&‡QýwZ¸Áè/Ó¬N̤kJŸÈ6пÀ,¼ÜÂ@JÿïpHå¿õÅÖA€Àë}ììÂçŽ0… +ÿ]øìæ’p’¬< ïŸÅ2_õG³MÞc§ÏýSúbOSuÓpËj8Ñ”ûav¦' ›¿©©¸„ÆáÜ?9;;Y‰Y@u|R\Y¸‹ß§«!$Òë±Rn;2Yƒ>ªõUõet§ ø›Þ;t{æ>ýtÅ¿7 +0Üç±þt¦ µÿ« öüø» âW ŒÿQö£À쀾׌ÊS^@“?•]ÀÉI4ˆª\¹;ý_>'BÀünŽ%2@tAÎ.©½É­d‰°ª=¸`qÚçáÆ3@®¬Ý!À<ýç+(ó±õtlI3Ãn ¨Aþ¼$ó +%,„òϪŠåÂF.É£üÂÑ–¯¿MçQÌá›Ìé1Ì d'P…pä×/ÿÒ%]¶¸Q`âõ·:áPFŒ!fˆOf !ÈŸi …³Yzš=mxŠ9ÓÓ§™Õðj&¼š'²i:ç¬oÕ#u+4÷=~u.¬È—õ|¦UK®ª¥a5¨¢×.zÇ *?Ÿ‹C~ÐpÂõÿMø0 Ü÷qíÿð¦óáYHÜ7éîi4&”Ð) J-ªÀòžö®_Ô‚}1w†Pˆð¹üCž Hç¿ù9@t< R¿>V¥·Ï D Æ?šÛÚjH¨ƒb?j¨­' +°ÔÖÛÍÑÔ=²yïýAÖþumgmíû럤Ö`RRÝ)C­q‘BÈ0s 0=,Ž„ÐÇËÈ +pòòåÏÎ þüŸyc€—¸ !€êluìúoQåùE&{ì|õjór w†çæVàHO—ÒH<Ðì¾SH÷=÷1Ö´î׌¶ŽRý?Ê#€íýšmrÕØç›í¶€Z +8Τ`ßv¬®sÓI˜Ê:A…ÿtU÷ˆon7Ú¶¸…‡î\€ö®ó2þ:*t1ç‡ËŸq}—ý`Í_Xâ6‰ûã®ÅHÀ¿$ z€?ö± ØKô0è…s@½q]eÕ€¥Ó&ÆÞôòYÒ•@\•—[`Ô ÀúM_–ffþzø¥@£÷¬ÏínE"É]Î[ü§[»»Z0BÅ8r.MVORm?;åoIüÃ?ÁÞTWz5‘HøÓ]éžéäÒ‰ÄÌi^˜•x^ü1q(Шnš Ð4æ_ ‚¿!s1}1¹ø4Z˜NлBaï ÍdþþŽÏ™Û™q™ÛÜø',§w”…t¦ø"´ ^Eˆ)8è=Ÿ;BC,ùÿýOfÐÈȽ¦CÐTÿ `ªzR:,²ø0œÍúo°0f/Š˜$Ùó($¾¾²õ·Åþ0°'¥@çøzµçÈEðù¿êÁs 8ÊGÈ/þ¡îç÷0äKN ²àfÂ3µ^ ,†‹.ÿ‹p'ïüo]` !yHèƒì报p!Åw.7ÂüKÎT®‰y› 6öÆ@8¤ž™†Œž@~Bþ êÿp8ó´áÕ*®Ð Èdìéì[Îäÿo[{ðHûÞð/n1Зð{†¿y ø§«%!.ר|ÄÆdÉ÷7t|®AÄó($àáÈÍ›î›1ßCœŸ:é.Q€³,lôœhÔWÑQÃÀ5œP `οì(¾ëg@þäJÌ3=0U0ü?0™pàÃr´ ,7ó ŒdÀ`n{ŽaÄ‚æ(òÚñqs -%̶¨É‹™Çëm&3Q€¨Ù0n `ÔÙ%ðdíû;ß_[K]ød‡*ÑÞT·q±Ûh À8P'€ÿ&w}77'3˜@ÿóÌXHàÌ™3ö3gÞHôË­E¾Ðð–4 PØ.³P3Z+ÌÅ +Ú³41ïiä³ÇÓî‰Å˜ø  +PC,k­ûG€þz÷Ÿü¸tZ Îõ¡”‚ûû¦Bó{Æúîm!ºr``·¶k¼¶>‹Íf±XËÇ x›lÏÃ[ýª_úT`“7õ;ÛaÀ»y¶xéS:EØ»i,þ²(Áݰì®åY@-¼€Ä +X$€½0î³50X‘ ›ü#Ù8˜€ ÿb<Î%õÿgX˜PùOð¤Þ _ø{ ߘý /Û’M-º¼_ªswƒ\þs=ºK·’š Åçe3Wª0ÍŸ˜š­œHøý‰Ó­y¯k9ûûÅ…ÄùW¿¾hM¤ô1Nâ `¬ÌöWÎNöWÆé¶^þ³ ÐÝ¿ÅúâSº¼zšÎÒËôª6ˆa=rèpDn¦G¸«{›Åþeh „fPç—92Äès"Y§ÿáÅ?’E`hˆˆðŸ»X +ÍÜŸfýÿ_DX}E¥ýôàíØ•°c&­iV‘¢¿N¿¥]iPÔ^PÙM¿‰b Àä.ïQbDŸÄü_DÌD¨) açƒÏXÓŸÔ=¶²'th" d† øŸ„ñßA „þÒ¸×^°—ßë[ø,T*@yó"§òŠ1Èç8è/¼Ì¿,r4 ýXE«¤&±#џזa¢Àó ˜B„¯ÐJÓÛ4é”!àHûþÏx«îÞÐÜ/–ç–©’þÞÜôœnÃ7×3÷M +u½Û¥(À Kï_º8ž7úè]Nƒ?Ôþ>'SßÈÃØÍ˜{Ä9òÐwÓíéÞYïMít§xÙÌhç @“²FûßävÇ|þ'²ÿó'ކ‹ +ÿA^ÿc~jç€À¿Ý®,Ôª Ô°ÇnÀDZæØ ¸G€Ð{!bHÅîÄϼïˆ![£­ûÛÇ‘pŒ®J#€]XÀã5­ÅºŠãrÔ€ì_0¤ê„³­êº +€¹À~Í5[À°HÀø§+‚atä Åyü_¯;ütÖ¯S…žRø/3Œ,î¬Ã  ÷cj À¨ þë€p€N¶X—p`ÎTÙÿogýo0€5‚ÊI„o¢Ä(Ìþà…5€’L‡ÿvþV4C{ÿ:Åd‘ +HÂý] ŠN“ÝÅlýJ5¯ú}Ôtοà÷û›.Z5{ú",$íôÚy¦«ç?ÿicúçéD"tºz’íûYX9g5@e%/VWŸ† @â.{®ÒËoÚžíÊÚ»Òá4ZiÖòGt¯ÛˆDëF"™Û„ï™ÏC÷3·Ñú¿í(£×òÏq …þçpÇud#Á,Ì‹B™Ì +Pßßæ:ÿ6kÿ® ‰óÏ«ÿfnCHpŸ…¼%Ðô˱_ª„A¥»2óʱjÏ¥‹lÀÓh‚àùƒI.º ¨èÕfÀíÐôçìlУ×úœcûL÷(àóT[êø¤$ÚÑäïàn?¾QŽíþÔn€ä hlü LŠ‚ ûµŸQõÿ[Õn$÷ö¦—1=÷ äðÎM/Os_Òáûñʤ&òü)XÐ ¨” ‹“Ï Ó×炸þßtŽŒÄn>ñŒŒÜ¹É›€€7ï:ÏzÎ:½g½g©BX0ã¿gplpŒ;¸nù.Ô7 x€y;Êÿ™H#€]è}Î`Ñÿc ¾ú€èóçfp(øUÿQg D ð2˜b×Lõµˆl«m  ›É`ØLóÞyVÜZûçub©îOÖz{/,0vÑ&@ @¡¿¸ +cåbÓ—¾S§Øø—Ž«„ý8—|¼–vüYþÜЕ€‘tAo¦! °¹eyNÏ–çD/©õ6ÏR»ç÷º¯ùbèPÄ~C ¿½¿]C, õwx°/@^²Âeû‘Ñöè¸Î +Ž£0jèí­»¾Ù;°?ª&z'€[ÛóTÿû!¨W#øz#õRØ7U}/–ÿÑâ`A®ËAx˜OŸq0úg%@ý¦$æ× Á@l # ²E›à__ÔõôíÛm0àN@#<íz ‹w(‡eÿ¯™ð@—õ à†l^ üÿBt[ú‰Ð_Úï›@Ó°ê†&ãQ²d -"÷CÓUG+§&&ÓöóT¹'`ŸnÇÞ4^:éÉmíúïቱɅ±I,^bü§â?^9I·*Ò-è©ú¯â @²ìtÚ+;.éð+ˆù³á8 é²IQÓe·"! "„ÿ8ÊЀK1Wù¬øœ!+ç`$” :Beøñ¬?DXæ>‚ÐwþY 0R{‚¿„éQ¸H¤Àôt&˜uä´,DZÆP”/j<Àh>‡åXÉó³3þ Àö¼l[WrÈÙ¥j·Ê}‚Zî@»ÂM»#H8oÏí x Ýÿø1¡=ÀÉ’žÕ9YS”úCÜþ¿ ‹¢®ÃÞ‚ô’ +¤'O¼ÈIÀ;ïÿ"Pð€]µçó&áþHŸm€›#¾›#âpÖÃZ ÓíôÒíFØN :õlúz‚„¾ /o¹“#פ€ž;Cÿƒæò²(õ‚ÿçì ð\Rÿã½Xˆ¶™þ†pm&@, P‹µýŸ ÑqäÕ &º,.Ú¼O<€ÿ[·vvÖwÖvþï ;ë½ÖS½Ý©T} +À@TìpW¸©Àæ@ß +¹ðo8©à+g8júM@µý`ô!€(7ž\½Ü°Çy@,Ï-÷4Ïõ­ ÷­¸”ÄÉŸÇÛîmÇ Õ¼ñÅ|÷¼1Tý­ú µµu€ €ôüueŽ×lŒ¥ `ÀèñÑ@ªw1`é¼WÁ `ÿ¸>5à/Þ>î#ü7ð Ówéú7Øë €jÌ¿ÉÎ?íú@œ!5>Æ!€›œ€76ïôÞÊoö7Kæ¿Ýµ< èî®í­Åô¿iJ0@Œ£“gF‘Z:m¼g¨ú ˆôN¨0½…Æõ¿L¾¼ÌàD·`À¬ïûË"ØQúÛHë{G66^Hã€ÁŸÏTðfnUWš:¿AH}Ñ?ÖÎhËæsz½¾øÃ³‰éÊÉJdÏÎ";8>g- ÎÈàÙâJúÿ ápC¯½t È[5Øù|¿B©›…»Ì#€ö`Àþ2Æÿ`ÆïGYY÷3< ˆ$AŠ£P$B¸Vÿí4ƒ!\bxOO Á +èJõ/9càJ5[ý²jzfÆ¡e³ÄNò2‘æRis¢„ 5j0gÏÙíúâ?c?DZNG|ÿ‡wHóÝ.º»"¤ü9½œ‡Ž»€2öÇÇÑéP¦,~ãõBþø +vÄcÄç%ÔìââW| <Üã'yÁ¹Dðø!EŠPò,"*€w?À&@aCbB?¯UÞÔÀóÐôßcÆ¸Ç ›}EO° (ÀS<ш; +§ñüC•õí€\do9´ü 0€¹_˜ž^öc7À)ü0Á?rùPýûé•ê€Ì¡#Ð7ìâ<¨ÏÑ]Âÿsƒçÿ©ô÷ÝDq:‚#¾‡7‰œur€-˜`à¬f%AÌZ´ïÂëZC€ +Ó“ýÍ‚|hVm~3ºþìÄÞ€bPNTàCÂ& Ñò¨!o3FëpSy›9vÍTû¸­îÓ; hí,‹‹óÞ[óÜXûçõïï¬}ra}}ýBʘ¢BsÜ8ÔÁX¯ÿcnêü¦#.1¸Ì“*¾øô"<€ºì‹4àx—Bœ;›Èþ¢èyyÀÈ” z¸Ä!Þ%d?OÌs³»½Ñ‰-€˜×é=F•?a?ÀèÀ@ëè±}øloó⟎öLŽoÛ- û>6߯!P½Â˜z@_yüKìÁd  ”#~Ôá›õâÉ’>Þ¹^ßi!Œ·t¦â–õöÅv`³tèÛmñvNêÜ\‡QP'ëþ8îô²Ì¿··4€ ^äP*‘4t€…U–ÃX¤É‹0€ Ñz\>®þÁtW†A§šçZZ, ¼øÿóÿ`É„]Ý|ÿÀFÑeWÇÿüáw“[e¡tš¬DÎjÿÐm„îc40Ä÷gØ€à_í V3 ø%Lˆa4”Õ²ö‚Òïr Ýhl²äå:djšè“äl€ì¢²SJ{»òF7À.ÛwA‘@.`#ÈåvYç÷,)yÂ|;ÿ³˜Œÿñõ»I»¦+ö 9Õ˜àòuCøÐ ø6 £ÇWdy=Ã)Îz‡"wÐ%@ìaaã]¯lˆ!1‡²l!É®E,š,¼ ©9ºQæ{Ü%BO^¯ ¯à , ¾“Pz*3z«2GGYè>¡ÿýe\Oó…NÃôf=ÜX^æ€Â6/ëëã&dÃÒ8çtžsºFèí ¯o¤ïÜÈ9ß9tFFúR7¼s>t?TÛ€8=H v"oPèÛε$¿ ¯k¹Ë§ˆÄ*ÜÀ€b $G¹øýtá@Uý—h~NŸ†K j6aÒo°DÍQót1ÚÌ×®EkÛø´ÁbÐl0Ø®ÛlíókžµEb;ë;;kë½ë;Týïô¦®{Æ€€ +.þÝ1^´‡ÀÅ@RÿÊñ¥ÐuæŒõotìV¯7þÊÀ!qpF&З-———[ܳ2Ü'N€¾%ç’ÓãtbÏIÀÀ»Fo ¦Pn·7ö¿Ž ØoÀ"àè(€ýã9ûJ¸½H°½/〚ß?nJ©”m`à·ÇÕŠ Rð?°Øl 2ò—Q’Ë#B@¶wÊΦóJ/qгT —­ú¹ólÀÈB@qâž-§É ÕIA :u+ö†;a|Ñ&‘ôOÍOx濱8Ç+ÃÜk#NÕÂãÿËW‰k9¾èø¢Á¡ïû—þ<ß8ìÏÞC°QLB˜Û•úÑÎEº]}ô褟^&ÏØüþðE¼f:蕳áïÓ!{ªÿû/]šEé߯쟥ÒjrrvfÕc`Œÿ¡™óab«OÃçá´ðÔœ´ÿõê[j¬¤€8ÿ?çÅ€HNùØ ÷Ë" fÿ%¨ïÔiÁlªf ŒýC™Ì}^"!ÀÀFzWt»`ö# +€œ!GRË4»•@NT€/ +¼FÙbïÿ ŒêrA*éYáÇF€s€gtVŠÿ’í¾.À”þ°”VANž«MÌØR(¨¬™ÓÙ[ ÷L~7Ðþå@Ð^ôæ5’ü0¥øvK"•>ôÙzXfT3 ûšjh’ +ðU>ÿîŸÕäãyh-Òoì™–Ìås IÚ‹7t4"‡0…"È/sû3¼!–˜ :^½rPùïx +àÈB +ø4 Me^%Q¾UÜ -‡Ðø? ËhðáŸó/sM_z±jQz€9‘ëó³KR}ú0 ó9—¤ÒúnðõÝì ¸ U Ïíö(œuò…[g‰œ¦ºQæ—,!^ýNt6ìÍ#1<0±s€©¼'”À-€qëÿ±ÀŽ¿ÞG LQ¢QƒÙ-õÛÚL×*Æ_KpN_ZW0Œ6:æ½k·nØù>Ö×{×èÒm!4þS€o&VÄÐÿǀ蕯ÀÐþKë_j`}Їþ‡á_ÉÌ;”б×Aõÿ WEpµ…áî ÒÉÀ'Njw¯Co/œ€cnOã5BýíÑÖíý}ŒXP£éÿ£Èo%ªcäŒâ#Rµ£µ©TÅÀè¾bz7ì¬L‡Á‚ê¿^"y!X‡mŸxl¢&çà‹íôù- Jñ3Â>@¿)¥¿bþ]Ç ¾·žE€PЛZñ`3€ÞÍz6 êì4t¢WBÂ}0LøŸ¹ÁYb(+àÃÂ0Xná-Ë=L\öDý/Jþü³ý0þ¿—ÎÒ_‹úcØ ð#e¡ª£•³ Àú4Á÷j‡ €ôÐÈ[Ó§3™‰©x%áÿ%ÌNö÷ÿ«!ÿdø§úÿî0|ØWáÎ^ùéÆ q.k/a¸¦Ê¤ñQæ¬Ï_q9˜¥—ú ¾'Äœ€ÏPÌó®½^û«+]†^MUµJ À/ü)@Äüb ûAM|¾aA¢{ zé +íÿëåñ ¹¯`²Ï;u/ I,Š€NQTgs…üËw/qÍ¿€â¢ i…â°ø¢À{Ö7€ F/†dÀûÜ4r8^E¨ìÁÄ4€Jÿ§Y–ÓôœCÀZÈ¿mÒ“tìíÝ…¸pyˆØS€áiþT–ý§͇nQž %Ьö{X +€>WÂ5xnÐÕ×Gg:FøÊu“«ÿ‘›}#}#°~Hˆï>K×âȧFÏÄ„Ç);c!°%÷xaË74_‹a +€ãCßHóJ@^þg3@àÀŒ¨ ný³ÀL<á94ƒÑ@ jˆR‰Ï›è”›ÇÛ>¬¸fzü¸ œWÑ€Á@Õâ#oû­ùµElì,®§zSë½½;Æ”ñºñz] Ž п"fŠÅÿ}#+4†Å4>%Ðø4Møß¥$`tõí?aGIZv^é%xOÓ!PkiA`€9–° +]ÝvÏ o{£À{nw]¬µu›€5û0lÝôß3`5Ø?>Ê¿}Ûfoçñš#5û£ûJp¼bq<5šJÕ Œ裂CÚÁSÀ`×}BÜz FåÿhïÕ#zãÊŸ¯½äÎgã(€E–¨0Àz®ÿ±pGåt²dì¯ú÷öÖÙ  7µ.[Äøðƒ!@õÿ@Õùãmâô¼Üü\×ÿîðÎ~!j¨«‹F1`õ@ôùãòŠc×Ê?.7™Ÿ·Æ£3ÕøíÞùùöùµ˜,Ò¥·$ uŠL›!ðÈ`&@#ÆåLŽ‘>_ŸãÕæÒ::º¸ FÜxƒ°„ýÖ¡0#â3Â’æ‹Î¸Ü²‡0 x¡°¢ì èŒ)‹ÿ½Tþ{&½à(n“Ç»ÔoÝßGÐ@ëèj¨Eù/&Û£÷Z¨Ð>¾-ดûã©ñý€15P1:0º¿]j(Ášk–:6ü‘…›ðâ +l‘;¢ïïd§ß¸¥sé¿<üç&€â¸Î~~08\(è/‹€ ¸m¬OõeMðoÜ4ÿKd ªÿEe9ÐwäC#€aלK5–ç ÀÕ/ö®òÈ…k®ÿÕÈ_™5óŸ +pÏÞS°Q”@¡¸ñ"ìB‘@$T=9[9vf#¿:³ÐrÑn×'âŸJõ“ÝÿÑlåì‰KXì¿4Ûß_9ÛŸeãŸê¦Ájªý›Æšü þ@HÇÅ™UŒ`ÓZÞJ%½ßr¸D!êG•ÿúkY\’EðQþÉý\Á +Ý€¦ìgî‹¥ð\ù%1PrƒÙ†f¿ZPGµË  ¨m‰Ûo0—ƒp~>J€Öÿ3ìëå0à4Àƒ"ûн¦ßuýÏx0'SÝPS{‚É\IS¸Ë¾ÈýxÐçÝÿ—¯“ïk¹ÿjò5êj<^´)Dpè±ñïPÖ?òï~ |ãEüQ¹½’+°rîõP F²Ró³‰$¯‡ú¿£â„ýY DÙ‰@±¨·z#{™=â÷ ý÷þ÷Zˆ„ÿC|ZÆ–i5Æ{”,W—›—Áz†{ÄÀÇåës ÷ “þTsß©þùÚ×ôç“Ûwö¬ó§×íV‘APJ2€“W +‰Hœû®€ŽæS×bc˜Túš?4—C 8Îø?^n@0÷ÿͰx*0þ|\†æ? +S‰[f¢Ü(§3}Ùµcmé Ú5Û0ï]\k_#"°žJí€ØŒã6Ûõ€- »ÿÁßÄ}.}õ§ÿuÉu—ÔIÜx à þù ©  ýP@”èP øâªrfüŸ[éãÉ  åñy˜4zd¸Îi€1úóÆ*®mmÝ?Ò:€UòÝ£ ªPS t{mÇ··köFe4@ï{4Þ=J`-€QÔê´êl6`ÿG +d±({ßN¥d yŸ…X@ÜÂö<6}q +‚ ó€Ü9pá‚ þ»Ù ˆý€ô#Õ[ŸÂ¿¦°Øn[l§kÎÀ¿Dø½.…ÿ¢¡á=@iˆÓ;%ÿ”¦ÿvTýAû3¥Ö´ßS°QÜÕuàyâp«ÛŠÜ®š¹ä.Uÿ.´ +¹ÒhB¾Ì>÷îóu¨ ë€33¢˜þw©ü9hÀL6¨å Y-Y¥q€—#“A–J(ðôüœŒöªMÚKÂ:í0ÂÒÅ*]vÁ¦ŒúÏÄÚ¡€9I‚ €MØP~,ù&Ðÿ±×K¶ˆ©¡ûÿºŸ¯‹ZÆüœ% °_ÓJÍÕ¯Hò·G”àÆ»w‚+HFA¡ˆß‘Ø$²ÎB³¾¾€- xOŠÑ`V¦xÃýWF²B‚Yú®’¤ðÖŽ£l¯ŒŠÔÿÜàÛÄè´ÌWê˜Àܲ_­ +úçz–{ýç¤0<œfÐ×7×Ó|ª¯™H@OsŸBÿ‘›1^ð}è;;BÐöìY7G¸¡l„gˆ5 k¸å»òòVø´BÀ‡˜|øLø±`½?ÌÿÚ00?<Å@Bœ¡ÿ‹Šk¾›€È` Ÿ÷ü±ùÚ5óãÇåæèãññè¸Áf°ÙÐXœ¿µvkqg}mq'µó¨ów½©@Êl¦À#“4L þ×x o…Nº`×ÿ]]Á.9ì2°¾a ã¾ûÁ@ÉEœ3ÿŠô  FÎ%Ÿ{žÆFìÊxÝëÆ”Âín7Ř´n# +§Èû!ÄßÖ­ÑØÀ +ÿƒº#5¿À¤à1õ[¯ÑHø?Z±/ë%øÇÍhE? -ðB@g§´ÿ¡°P}R˜Û:Û1.¨¦`3àR àŽºQÏz@v@o7ê~£Rôr ćÆz4 ;•Àbܶh‹ãºüŸðN8²#"---{¼xµÕÜ(-”Ð¥?ݲÃÕÕ|_ üâ _ç9 *€b2ºr”ð¼çbb,q>}æ`ÿO T¥ÞÔ?û³ÿüß¹„òÿ£˜þ£öçÞbL5ÿåXðûþUcþ+wíH±¬ÜÈñÞ½¼"çQGt™Ÿ*ô“»Vwî@ö_Ò äÿ¶2`ƒ[úŒdS4ùËxšpm€™Û·C·¹Àr€WB€!æÄ2ÒÐt\v{‘7‹É-iösôa+ +~è÷Ÿ%Y д4÷·ÚsoêëîŠ9Þ`Ì·‹(€ÿb Èn¯$U©Îð Ç>I(„€]ó_¼dàkÚÿ€ûÏ.®'ñ„p*Ò +4•[ÌÐ|ñÅËwÿ¬Î³ÈázX¡Ð¶8C!ÿÚTFb ‰¶?1L"hûs»(˜å6@D‡ú~V5GyÛÇÖ@†¯÷2Š\%äßc ½€!AÿéåÒA4`ÙßL7z`Ѓ ´ƒTÓîþÖLWs€\¨Üq²A0Ý:Ë.öœÀW|¸¤0èúÎÈúŽ¡å^Aõ¿É !»`ø€ÓtæçãœDÕ?Íì“5ApüÂÀ `¹˜%Ñ?zýÏñ¾]â•r0)}þî-‹àÙ7€D_ð€×.Ÿ@ÿ¥y®½ \(ý± è$€ózéÌÀ#@··Îë>F2€cXøM¬r8Î=ÿý +6ïÿH``_uF+~7>po|q b`¿Ÿ¶Ègw jÁÀ Ë€½¬úÿ(É× ù;ÿ–v^Ï×Cz,í–¸q½³w½^wÖ‘ÿWý*ðÂ&úÙ@œ± h”ú6²XòÀf‚ÍÆÿ¼Úmí7¼ž%ð•DܲÜìYìoŠý9 gvû3u¿ï³dî½%0“G ÷– Å]-¹ºr”0½²zlðîù.«õ@grkÏÚ›.Uþìã__ºCø‚ð¿2^9¯nªžj¾ ü¿ë¿Ë˜#£é¿áôL"œ©ö[“¡p&ŸÏÚó<Ž•›Y…‚&»ý[ÜègØ·r¥_КýII¶·¢/^ô§;ôµ¡?GY&RÆÞ ¸¹}b€Ð}Ž †#$€ÿŽòÈÏÉANÒ-VYà™4†€Ô FÈQTÛ~lþ ¿lhzÕÿM+ÕòJ‰Ÿ?€œRü3‹°å~P…Xû_”õ?(4Tü/p+_xÉê¿×6pÑŠÒÊPRÄ ;Ùµƒ6E’•(ÿ_¾ø*ÿ`lÀ³ ñ†È Ãz­Ö‘>œMóY)ù©ÜÖÃ"Œ€›dÙ7Ì3§žpoûÇKBØêÀɱ—¹ººša@d Kð +¢ó¼Ðâg +°ÜÒÓÒ¼<×Ò³¼¬ÜÇÐèkîÁ8ºY½•&ÀO|hŒ8c±æ<ëEL°˜`à•h P€¨Z +ß™·ÜÉæ>ªcMnØï#‹ìþ?ÎçÖ?êz€?‡À°¼´.øÙ`¶Q‘Oè5«Ý|EEÅøïÛÌã?n‹^[×ëñÌ/zn¬í¬­ïÌ冷/Qù=`»n’X"oE,f"Tå ]ßÊ)©ÿ›/Ë@æþˆÿû3ƒ?odσ¿ýpõ_òà8X ð2·>ã@`8ð`Y@tÍ[îèvOÔä5úb&·/æõÆî]CÙ?:z VœþwÐÌg¤g‰,õêSGjè³äãø@€@à:‘‡ýû¿U_VS²®¹f“€èFÜÀ*âzXâõ°ýi§[èÇÇEhkä!½#€zlûaŸ_R€ÔàÎ…C¡@"¬‡´ï»% `3Eõ¿„`QÖéŸìd ðFY'`NÆàr3»Ë; ¿jÿ?“ÀfªüƒT›¡üf×Þ[ €ÞŠè&¿Ü`V¤Ì•£'¨¨ŸhjJ¬ž±–žÓrÓnÏf/VÎö8qçRÿ‰—ú+'㳕<þçÃ~‹ÿn"q*DúÃŽpØáœ +jÙ»vÍoú§þ­êÄ n(ƒ³Éˆ¦w ùÑêgü·Šâ¯ 7@ ¨2¦GL€ßÂØ÷¶$PÀQ–ÑO÷3eØ ÌÜÆ> ' Éìÿ +î„f†Bè *qÐÃ=1æ1p =ÿBidO?ûsÚïs¹Â!@!÷ } ëYˆýAiÙ±7xx}Á?ÇËjý¯À"^ý€aæ/ÉâˆD²¤@ÄÒrJ¥Ánð;Üäx™“ôB‰W(ò øZ#€\2 *üÀ¾€z¦<ÈŠr{V廘]q@Ü"$€h3«™«áPh/Œf]µp_$ EÔ‚`¸@3½möÏ€ž}¥?›ôŽžÒ @Œ}È®=Kg6F’W•ÿN*ŒèÔçº98ø"öÏúF¨àþ {ì  OÊѶñ¶òh´œC€þ÷]€"¢²´Ox0×ÕQõ_” ™Æï㠀ţï„|‹l9¶€ÿ|ÙƒyÁUǞþÚÛ +a@Ëýå¨yÿKï´\îiéiYnö÷ÌÁ- "€zWsé8Ï×=}J +0Â2@ìÄFõo6ú¼ èF.²}§O8À ëêwˆl44¸9¸ÂD,n&ÑÊ ãåm†¶hÿ¢< v`.çárƒÁÀFBÚx@‚¾øÂïÛ·Gh¸Ÿ˜rkgqqѶ¸“ +¤l× t2=âæÃ=ú×c^Ÿo…ÀÊ©¾Sp Hëî ¹C•Òk €(ÊíI@zïÿÀHµÔà$(À—Í ÿÍè€øœK¬ àiœ ÐØÞH€nS£×tm uÿØ(ÕÿÇ®!–?ûÄJ>tðàA=–ê{kj€ý@`àzÅoÇ+j~»( Hvê„þŒü?²ÑÛv›RÈÂ?‹¥‘my‘ÍÀƱC?Ô€"Ä$?•‚ð°üïB©ý/w. bâ8@cª³#bàtlrnï\dÇÁvÀ£W¶, +b¼HÇeôÿþat`ÿ+‚(ÐöGíÏŠ­gôšô~€1èôGÿ×¹\ì꺸úÇUy,|ÅÖ²/E@(¹òýûÿ.^9qú|Wî@€( *ÿÓ™Õ©~ü³„ÿ³'À`ý3V=ó¿êÄt8œX ü»K<`¬éœßn‡³ WîV÷O6iÉ1M›¾Xð[5Gغq08 < °*Ó;^Æ—À†–,¬ úŒÿºi}Aæ.ç +ÿ¥dàøR¢¼Àà?$WÓrBÿÿ>:YЊC3€¼p‘rO½ô|nC!4Ϩ5.þs¥m}ú¸ý`,V¦/9-Ï ÷öÒ>@N÷æg p9´ë±½šDöŠúò?¼ú^°aþF^Y÷¿¿Pûkx´EÏÁï?'ÆÄü¨ùqócá.;=€$/|`øQ5l¨E"v};ÀD?›”mÖü£ÝaC’>á÷8”ë$ýeÞ‘ ·!àØÚ‹ì1ø;xÐ!p5³w@Ð`q ³ÌZZš——›à_ö«Æ}úÀÉóŸÿL@sq€lª}:³)àÙF÷{ù”ÀÃ]€*(ƒ-ùïÐË[îü +ZnSÅb lâ4 3´{åbÿ `^þu~¹‰½Ø¹—Çþ.ûa€O6?ç`¡MX"øýcb:tžø¼žùyÏ“ÅÅ5Ûâ|ʸxýÿÀ£ºG¦{&“7óVÜã|ÌÿYÿ'ø™08“;£¿JŠUÊë €=X’–# +ÈÞ¡»Í£­ëaر‡€“œ¿Ìø?×¼‚=Ä"À ¯ûFŒÿåÊÛèà æm¬«»v £Âÿc­¸1¯_@¾òÐר€q“êéššÖkûúÀ¾i`ÿ·¶šßV€ð ”$<ÀTg1Ø€þÜ€-ÍÖ‰@½€NYþ·p6_üG¢°ÈkÏ×;{S›Æ^ã:·ü/¸°yA'õB º/ô^èî¾€@-Äõ½|b @'’9”Ћt;`"íž* @Íÿá4Œ( ªÿ¿Ü €Žàƒíü’v ¿]^8‰¼'€üBSü×%VW>:ߨâWÞ T€0Žã5€ddæû'úÿ®?>Õ”NÛ@ÎŽ0?ÇjfúÎlåÏþøÿñ‰þþþÉ©Ùɦ&¿ÿnb¬:q><ã‡î&°ú—HœK,¤ÓÿXx&Žl …ÜÌB0é·;¬ùlâbþ Ö.V‘ºë‹ørŒ@+0ªî2ÄG—@A5=ô¼Xÿ‹¤õF”0!€ˆB·oßFBˆü;rƒCH F`Wø/=à0$õhLçŠAÞ¬‡;m‘¥ÿèàëözúØßZR@¿Î«ÒÝYs‡Eƒr'©ôþ²—‡Ø¾\A€IÞ‡ÔŠœ“ˆäo_Èrj’TùY-Œþó°ÓY•UANŽɳ¾€-¦[+:x{qŒ3{Ž«{ŽÌÕÐUµ°ÌD e¯¥%¤€:D0 ] ]-4Cð?ÿYËy:1@  ™ÍNZaE 2ƒYÿÇ>^Ÿ×íü{œƒ¾—-€«ߥ££¹/†¡¢Ïäv» îXÌ}·)vÝúÿ\_Ÿo½j½ÞzÝ„@7L‹‹¦ÅÑEÈÿíúyôBpVÖÿz' +ö‚ N•BýW ' ¼€­Âf?èú»B€ê?v†ëÿ¦œ ¯äjÉÉÿ}-úqŽ>ÆðÿÇüÿO˜ mìÖÿ©Å‹ÛoC•÷æJ[ÍGZÚ+çÝí ˆ;ÑàÒËs‡>œ(î¾oÓ]€8È'ØÌ]œ¸|ó2ãÿÜÜÅ≉Éá÷„àïÖx2$†kº[çè}55¤ÿÖp©79Qs~xxXñ +J\ᵿ”%ý"à €&Q=ÿQ‰ö«eÝ/Zz7œ×Xèû8*ý„¥ ùl py±7ür@Ôÿ,€PÃ?'›û¹Üt)É›ŠhðÏËȆFµg³\LKñŸù6`Éè´¬0ååÞ¾ìÈGU}çOs–eƒ¬GÄr&«ÿs3ÿL6ó§ ‹ó‹˜U_d ÎDÖŽ U0£Ên¤„ €£€yrÓ—eSDÔì_û7s•Ï=€ sá’{ñ6w|Q±èc}w,í%¹e}ÿL‚Ì6òxä8œ”Ò@ÿ#^ þCPïŸöÏìû§uü§‹nâ^/V€úu(Çѯc +àe1 ]é€q‡Ê|$€î†ÓM44°#P…= žÆƒE2žÑQöàs®™ Àx¿¨(Ta`jîÁâê« ³”"ÈPØ "Í"?èí·¡x»bã_7v }SPÜuc°°k½¾~Ý:?Ýzµ¤o}ÝÄ €Eöêœÿ÷é¥w€ºÎº¥éñ‚ ®ÿsøo­Ìo$¢ð¸@ØR {I‡ÆŽ›ýÚÙ@F•gÈ÷ñq-“‚8sóGxdT!ûÏjRÜ lú4ÚŸ0íËbn 7,þmYXÏ{ +¸v(æh¤Â&X–}—èÆf÷e5ëÛàëÈ 2Ÿ:°7™âš_f)±J’W°+@]µoŸ üˆ\ts³essÓ¡ŸØ³ø°dÉGfÄûbIP€ßЋh +à­–Ýõ¿g0=Ž@Úñ*âÓãô)R ÐÙÝI&ƒ¿jD(€h 0†H€ˆF¸§±ê@€´Z78ê4~ÚÎ +Ž6õ…àXT9ˆ@¨yÒ€>Lúˆôõñ  ¶¿ô9»¨üÃ( ¹h·b%#Vª•=‹€»‹îëÖu*þ¯^µ^íë[Gùot;GÝTþãSàÿ ô_®ë¬Ëg‰ð?(Äž«ÿu } P}ù5¾ò/`®Ðø¯z d€±Zw­q÷ÖÂBZn"ÄlVÂZ›sÑél `[¥êÿèÑþY¬q@¬H!˜ûѯ¼ŠkF£ÞØ[œí7ýÏÕþŠþÚ­Úüö€àÇL}fku_µ1 UäU 'þj›îüWM¿½Ð›f/ òæùçç…ñß§%Bî'*ÿ¹Pà xö,oTŠúŸÇbý¯>%Õôr¬ºÓÀu×»±˜-ÖôîX~à-vìå@ýÃú™iÑÿG `ûÿ?¤ö"€> `W èÙ Àÿ°/â‚éCèì¨ +¾kázã¿&d€êŽ ÜPeÀ®ê"ÿ‚@úû²¹1€¸Ü—mE•†@ºp`§Ð=àoá¡?Ó ý\·_4²šhu|+„‚%ì° +)ÀtßZôNÃsë‰8q‚Á° :{b%tˆ£’¢™,[$ª_Û°?OSQôPé+Ü ðÉ^¿uA¹ Àá@-pÊX~z`ýáDÒ¦/زÜtøh +ÛbÖ~ä‚ÿ䣀FnÌÔ?šÀ/IfÞß0úÏ  ï˜étþ×c. H@SvêEнç¦Ïi“³Á ll9X ]…€ð2V˜Þ6Ç@¿‚ðߨ Íôjwd·yU~3,‚Bp €!@&EÂ;ÍEðÞ-Ú}ûøîn31¥K(<ž» ‹wÝëî÷úõ˜õúÕ«}ëp²Rõïv»yýÿûƒôÿYÿ Ài½À«ÿø/„I¾þ1 ð,íå}Åø¿ÅþœKÒ+ð§… +~¶åàroãò‚gA8974¹]TûÛÞÅ Àe›¢¿‡h‹ÉMpë%蟥ÓQ¶z »ýêÞ3^íé)¯ü®õeî_‹ŒÆÑþþ-·‘»y#p€ß›Ìf+ïòøo2@áûSíjµêãxŒè*Þ¶Y«ÅÜ’~tæ?•Þ~D><+[ÿ= +2Ð%… + ’¾¦r,ûƒô-®3öcêp]á4à²Zm¿tÅšž_&Ý@È€˜´ä¦ÿÒhgí½ˆ¾ÿ€ sWÿ +FôHµ)çþ¿t¼øDx,ÜýfwâöGe%-zŸ³¯œhD“\|½}îâX`ƒØíXŒÇSÞɉRÂÿâ¹ËÏæþŸž†ÛÒöá¶”7P+`OMœ‹{ÖÔűáÉ›—¼'"þ‹ýÅÃIŸ?lù6p£Û³~ƒM«–ó ÊQ‚tÎOItð‘oÀÎ:Ðnòàž°dpçNäÎ)Îâh Säa¤` ° C,fYžLoªQ.–ùÀÂx ønÉïûÉ6.³ï-â%ƒF¼¦"vïÙà7+§Y™÷›å•?q’Ö z–~ò­è…¯“‹‹bEÊ}»ªX2óÛˆ"œ(JŸ Ü Ÿì„œ)ÙuN€ZVA @ýZ €‚`h˜üa~’Rð +¼‡ý¤Å@P:Éx  ¯¼´@:ýñšÍM>Ó)èãQ€> òãx”£ù9$À_?C/õ¿`^<¦Ç;¦99¶ƒ>oÎÔëjý༠8 øÿ•ÇÓ0JÀﱦöF2ulhtÒyí8‘ˆ©¨7üqFk6TøÓy$ÔghUõ¸€IÀHEb›1&ØåSsÑÛH`YÀˆ tPùÿß=‹®«1ëºuݼNõÿz_̼¸3:9þ÷¾gðþ`ïrgç2×ÿz …-X(šÿ–Ó7¨LìÒõG6tÅYË 2€ðn!ð`†€Pwb P¤Â§&ý›Ù +Ðfu9ÝtÏšÜT‰›F—gg¢ €ÀÑ!Œ`þ¿U›S”í! ÈhÀ^}HŒ¶Vs¡¿µµkëkx×Ú,Ä‚>@˜ü"63Vx÷Žê{ˆ«­T޳ðŸO¬ø·Úè÷ª~—ÐÿÝêê)¼«Ä +ìò—”|*œýt÷ÿ³gÏ~H4àC 0èbS€³,Ð%€pà9À|k5Úÿ†’ja`…Éàu:ÁuÀÝäþ%7ÞhZÈ¥¿µÜÍ€i¸U €´öµü‡¸+ ü·ÛY0ÀU’`|¼Ú-ü6oâäß=S,c'káp÷g‰xø3µû×¢ψ €öø=üÁG—>œû(¼½'ÈoKÿ¡hkKù''&/ß|V|âò³sØþ»Ä“Ýô3jö§ão >‘pDªãò¶Ã;÷ì?]r8†Ÿ/}#éˆLüyÏ5ùÿ+±A˜y~RÀ"¹Ï³„ä;;²à“}€ÃØ +<ì¿q'¹ãg; ^ +w’È„õ ºƒŽ{á"ûîC"§² j‘­ 0ì°í_&#P~_Lüq û?¾báE>5T>È-y¶Àûâ-¹ï¯é°^“É÷ªõú?³Oý·ß>™,3®£Ù`ÿIVSôDbþa¹0‹Uˆ¾8í,6# â¤_l?³ÃÆÈ_›Ü§ø’þÀÓ¤#ùTû¡v|o‹ÂZ1%ñ_Xp28ÅK²¿26ýƒ8€´€èª@±˜”$`&9ƒ³8ý‰Ìp;À/[ãð‰ ÌtÌðÎX]  ¨Ÿge :K, äÀ »_1äÁÀçÀOC£rÀ@ºeE,8àqrþ¨Ì!ü/ç>À. úÊ™ŒúŠ }kbæo(’vÁôVóÈnsÑnóîîns3Q‘>ÆÿegÑã^¼ë¼³Æb릫æ˜ÉÃiÑävêú?Ïr/€°¸TÇ€Wª„ú_ùfüÿZÅ‚ùc™/ÇzP8xÐ⨂9-¦Ô¼È<ðÿ4›kX´¹.YYè²™àóDÀÚjršîÎÞçÀ±¡¡þ×8 @B¹0âà²þë%„ªó0î7nÕ4ûûûú°4îÕîÕÖøâ˜5ã°ZÍ.+1 =v ´r­_-TÿRø½ T¡š]{°ÉW9ß3_‚­>QþsøÏY1ý? 3€O™H z©,)¯œ/áýÎ8…f„¼dxÝêº^ àj:ã>sCHd©QÔÕý‘0S•ëÿ3`ã?ÞùPçd\õÍìWœX,+á±KÏ>«y'½òYq8üâÝŸEo_°ÇÇ/ óÿDÌb š$pâ$m©8Ò€ÚR(ÿÛR©À仓o¶Ï¸|¹xrb‚ηŽ@*×TÍ›°;¼ÞDÀë­Ny‡'æIée*ýSçŠ +¾àpàÏ­µ¯6ž’q‚ŸÊ}€h0”mÇ=äÝIÞ¹@}ÀŸô; €° +¨Î¤ÖWò6Å`JŸ6h ïúå }@¹…‘Ýí=û¾° (d€Uxû*:Àçc\ ëÜÙH¿X£‰U€?U¿fµ}o,ý¬[Ü¡;&Ëñ°P0q°³å.Þ8m–[ø¸ >QhVð•¿ÚžRÔTä”?L:`•‘ ŠKÿAGáÉ‘‚Ç2&-ý’†p-àÚ/È]ü–-Á‡L4Ä( )q1“¬b€-Á™ô¦õ3h€øU€q‘O|s€Ži¶’6¨ñWžÑ_y>ið¸N7g‚ÐѰì;h@í…°ñ“œ@E_ÅHa|ÈÚ…Ê7üE +ºh ŒÐÇàl@0ÿEÍ»2 `„@Ÿà¿€ææ£žÁFb £wÝëëîë„üë}ÐýMÎE§pÿõ v./wvb "êÿœ Àò˜_¨gþêŸõ¶_ÃÕÿ"*ÿ¾¢ ÿ†f0€P__¨ˆ÷ÿD§·+*v‰ +ÿw7`¼Û\Qa6›àíƒÀ‚g1æ¾³º×­ëDLn¢n÷â¨í^ÿ£Ú¿Sà?ÕÿÓDt\i¹ü„ºpü_¸Òüu–é¡Âe^ÚØ¥ `A €ïÊ-3 ˜×êÄýNh4¸9˜7]¼ +àš2ûÀØhö0Å*Àlÿ챡þþ-‚í¡þc{e²˜Ïúûç ]»BÜè_Õp¬×kýC[}ý2¸, +\Vkf`bðÇ8€ó¨$Ç‹xÀËyS<pa°„?«N>ðóÑ>]gý îÞóó.¹€m|$YÀ•ålLÔ¡¼‡@¿g~žÍPü·2ñ pÝÚê"DW¬‰ë¡”+€ØŒ©çp%ñó '„ü½¢,û/HuU ö¹^a`°_xãßÞ¶£o ´ÜnAVÙd‹ZøÔh:9Ð4Kn!P®@À.ÅÄPÕC*U5þà<}jïâ¾HÓTM¨þxîÏLi2ø œÌŸÒÿñ ‘Þ#ˆ!wt·¢uÂÌB‘½-™•–à =€/v8i™€ µÕ¯ëØ1õ·§ìq¸`Ð÷¼}ƒ¢¤ž:ȃ&\ÙÀl(]^– +õ©|`Ä)¾– O8 ¦âà)$ÿôTåð« ù~&Äêñ6°ßQE'¾ȚþÇëëëdJ€0l„¤Ýéi:ÝàvÓkæ€BÇ#vÄ£à4 +G€ãE*æ©Ì/ý±9*ßE`ÑH¨Ü°a14 DŠÌÂü—˜BÅÛˆ ØE€êþ t $©8îv:— Ùï{= ‹nÏâUTÿ¦õuŒÜ‹T?»¹û?¸Œ€ÎºNLç-t ‹ú\ý_¨TúºÚp8‹&€È‘ô:úÓ©åA•ãJUUÀÒtØè]~ €7à'wc¿ÛfuÙª­Öw­n쎎Z=¦EúóþÎÂà˜è?6T¶W[–¯òW©â7†æ+»ºBpXXÕ§eCkkýBP›ÏÐ;µÄ“ `ð·ÙÌ€_D–ð21³›½ÿ¸ôwé1=ÖV¸÷òÀoç?§W%óbÚ¶‹ÿhûšÂj¯À ¼£´ÿ[…# ࿤D(«…Ë0‹bgbô œù‡¼áÙpR¸VϼÀõ¿èˆ{‚jÿÇðü“²ÿ¯2€W˜ØÛâcÿ6VüYøÜÉ7ãÅ-5áð;—Æ~}áöÓ@{Àb‡s¼g° ødÿ ‡4w"¼ß¾@uÿ +ñ€íÀx||²ýÄä‡7Û/ž˜;qdrø½ÒaÏH\Óž½ñ¤÷épià|Ø¡–žˆøK/+þ?—<âriq*y¹XMýÓ°åIúGXÂÊ+0Æ€hŒ)ÀŽpˆF7ó €c"§îDôÀÿ¤ã!„OÈ [²_ €Ýd‹]MzìKÉ•§ ölûÈ.^Ñ{0+€t²ÈjŸÁ>Ã$@Wýëå?¾é“úiÎ%Ú‡Pó;ܼÀ²ì- wH¥{•€òkK&›s" Že€u9V'bW2Ê›–ÚW÷Sú¡:ˆÁŸ[Ó±(>‰ÿHfâ»7£f¾ñ¹ù'øÃ%OpþØÇs€ =ý;|IÄjà£ÃUŽGŽb3˜T=‚"àÑLÀ?#Z’ P!CÏcqÈ™âÀŒ*|, &ÓãõK¼ÐÛ»^Ïà œ± ànÂ1'ËÚ ·F!4?1UãÜGØ]Ô `yh£¼(Dõ|y@¼@¼`¤y„8/4#4 ¹¨âí·ÙpwݱA`w‘>³Éídk¿åÁÏÂý¦ÅÅ•ÿðÿ³Æ p.Ž:=LéSý;—–ê–d@•>à€Å¢¯%ËÎ’ö­ ÿƒvÑx,Í€}¹,} °Š]ªTͰ`ý’n ²€x 1€Œÿˆ²Án¿atÔé6Κ߰Ñßwtö¾Xä4 ×ч†¶Êô!?.‡ˆô¤@íÐjÎ +Uk¿#°ºgZ¬e@aPmÙ(wÜ„þ1³ÙŠ À¼ø .ÑöG6›e€'ZmìಶZ û¯³0zJ~[òÛž¸ý ûŸ®ž.ž °K®àƒTõwÁ ˜^8 P ?θ¨9ô®· +ݶ›b2 +¨©qAzA8M`Züßè&¢ÿÏúÐÿXÕ·» +ÀçW—ºWÅ—Æn‡kε ¬Ò.Ú_ß¾Šùov¯ØŸŽ§Và›É>€hòƒC'ŠyÀŠ]O\ˆ¼‰mï\ûÜäGÀÿ#Å¥Ãï¿I&ýþ€š¶$©…H<âˆÌ…ýïÅSÊ{—‡“ç/¯(ÿtÙ,ýÛɉÉhéÏU{NÈ÷è @{ò¶vTeG<ãÁ‡%ð߈܉Ü]D;’ œ@ˆ¿P€>÷TPôÖeµŒ¸`ÌõQËg °ÈJß²ŸÀ¢öû¼R°­ öö*+öäÎý÷y‚¡£~®¨Oëa€ßévÈJ Rþ•(qa„]ÕbgK ™^rÁ5»@€ÊÓ¶)fòôÂCÐ߆ {jg攟ANš’r0ú'“¡®²  Eɼ¼úŸ;9 + š²láQ€ØÈÍxÍá÷ŒõUÉG3Ž™$®1Ðs¯ØqÅZg:x@Ÿ À€¥€˜°p¶€Ÿx¨xt»uGg“s±wæàßQžÙø¸ˆ¨èã-€òr‚üP9Œ€ Íõ£üoæ1˜Òg¡`z›U»¡]ž°,p¤‚ +e'Šûe*ï ç ˆ™ÖqáŽ-ºbý_ :—±þ¿Ô  P°€]l<'H?ßø– a¹X6ÇÀþB ‡Vqý:Ç>€K¸ { þ1ð4"ÁîAÖäfè¹»aŸ<ÚïtÇLf·K€ý¬è?†4 ½c{yÀZiú³ZRN ŠÀ*F{ùÀ^ßïú¯öC¸º—Ê=À2¤ƒ¸‰¸Üf¶«Í­Õf$þCŸÈþ"˜ó\rMñ¿cVÎSÏè?ßÅî¿28«‡a +PYYÞU‰éOfÒ +@ŒJXX å×9 +Èu&æÒ]›¸° N˜;€ì¶ìh‘ÛÿEÝy¿ôBèW¥µë«Kâ5ÝáCï\¸5vòÍÄ¥ûÊŠnÓ^_ „ãñÏþ.‘±¯PÙüyFºe£7J‹‹çÎG »=žˆþ{5íí—&Úo^>1W<ñÞùóç#É WYŠ’"`§³#H–û^Ô^_}GÚµäßÎG¾Œü<’ú`Ò’þñª¯‚o‹¿Aù\®@"ðF2rÇï—*ÿ©þ;p„k0~G±ºò últSÁvp)ª|žƒ[f‡b€^v,Ú‡.ïÚ·KcMTùYŽ HóØ_Ìþ³¢õŸCþBf²é'ß ÿÅsøü(28—0ÈREéF¬°A' à`Œ¹²VE 3_ѾbHðÿtC)¢;þþÃ(µç€#éÇ…#HFÞˆ +OAí%€éPáËq€M^Øb@†ÿÍG¢ $ŽÔƒÄ÷3 àq@½;€ €>¶Ç¹ @\ ÊÁšè;f¦ÇÙ ûZowcc/D €êÿ&7ó7UÞƒ7H[êœÆQã'£¦ãFã'kÇMÇ+ŽW˜‹ *—a€»ÍE!ÁF ͸€À€$™XˆÐ  x`!`¤‚(î{ï/Ô/.6Ŭ‹ë1÷:€‹n÷]úð"-c`©“ €é,Ú„*-3Ï•ü‚äüɾNäÂþ²£Ò@trA€-¼žMǃiŽ?¬_’IÝË`ìßDøO¿+g›]S²¹œ³GMN"Ö +“ѸLà²ð°Ü[²Ê_"À½Ð|É|:pý¥ä„€{k}Ƶþþ¡-¹P–O€Ótœgn›ÛdÀê2TÛ8ýÇ,:6¹—¤"«ðé}Âx¾õS)à%€.± ø!–¹ýô?{–cò7õ+KZy°d^a´ÀY@×­Õ­×Yànúe,Œ XÑ ;ú£=ÀÎKv*þÔ¯€?¿Ê¼Ê€D¢øõpâÍ[ç. $ºãön%ñìR‚ðߢÖ·YÞ,Nn'5੟݉ޙ˜»4ŽÔþ¯x„7‘˜¸Ü>1÷ìfûÄÄD)ÊfÆTî±:ÇӸߞJú‘ÉÒ”Ø)M¾÷ó§¾ó_Že&þßÉTðˆ7y$å»eOÿ˜í×Âo-¢!Ô ¦7ü7"7ü} +ôö'ïaüŠE1ú +ÌÚÕ‚ïªi™¤r­,tô=›Æœ_Ћ¬ýÅ+º‚4Anþgeù/Ì}APÐ`_ÿ¬h2ˆÒ´ýå+ô'ßõfÓDÿ_Ȳ<€þÉ>'á1½Íä\ЏÅÎûhˆ=@èNÈf qØ9›þŠ õôB|»Š9€]!— FÕ<}Ñ”§Ž@’Nþ¤°[ */Ë +•—-‰ðGÙà•^¥ ×`ì'0ã &IP(«déŸT±j 0=S?ÞALº!Xnìmìeàñpélb.ànjŒ<îtMº ‰u€pýék.oÞØê77ïnð+DpÑl¨0ŒT4‡š+8 ¢:âEØ,Úeü?nvàÙþ21€Åeè­ÿëÄbÄwD€õuK9ø×C€ Pä %ßÿ×ôg ñÆ×?Î`1Ë»ºàyÀ´ ¶—¦ëaÔ `ï2Uÿðnbû:£ýoµÙlÎÑ££££0ÿYì7ÎgÙ ¸ÿèÐlÿ†úC[y€¾¸g(¡òZ*÷WËVóàêÚÚš„ÚÚÚ|ó¿V_0¡þ·™lnzÅ2@Ϊ¶š©ö!¥€®‰€0±óV¶œGмôbìïê’Ò$ˆ\:~Î àý®.nÿ—  ˆ5Ð7Á·ªæ é &¿l>À M ðä T†1À"Pßx¬/°_êÀs€Ë _¼²ÀbôfMÍJ÷gáñÔ…TjòöÊí ðõ±[,5cöÀ­ª@<ÊÒ9ÞƒW£7~V\<ñÆDbú€ÄùD$<÷ìâ䉛7çJ'J#7"ÂÊÔ=žXÂfÕAÏ·D"‘@dÂ›Š”–¾71¡ù2™œ8añ}ù³ˆoxR=_š²ÿ„O½,hø<»Ã«Ñœ/ðá{Id0øê†Èþ$/à¹Ù¢dž·zÑNÀ {øD£"•÷ó³¼hÉè'4°“®XÄ @ü¥·¿.–^CÜH¿Øû×Ç Úçšþ³¾Ç €9€À5ê£÷í³ 0+\-šð@>ò!nÄ~¢v è• +gF4+²|K½ QLÅŸ:¶·/lÇŸ¦”Œ8\°€¡k +=q$‰àyÀA_Æ’Ñ^ž)Ìe@ŠƒÐl:°À"€Í<Mh«  @t çs†:§¸ ÀC€$ë!œ™Œ¨«¯ë¾†@#Ç ¢†„ˆ£dl6¨4àÜàÎ4êDà8„ÀxTô`€0¾|cʾ"‘@$€†– +ä¯ € +Ñír„póo@€ñþòèýeÏýE"±Åغ͊À‚®ÿ[ù?:þw,åúÿh<† ,/Ìüe à›gP¨Ùr.·X`X%×ÑÄAàRý’ôè^ædŽvjr 3 ªqÕcœ¥¬k«ÖmZî… K joíår}åo®®–ã]o÷÷¯®ÖæÀÐÚÕi}uuk¨ÿ9ùŸxµ'5nà¿v?n¶pîÝ.‚îNتå€GôÖw­ÖV—˜ß#Õ§íÿùßöÈ5É><+fÿg?änÀYaÜÕÓ\¢ÛWö  µdžG¹âjس +ÐED®Iú± Ð2L€ ”V8ôú¿ù?`Êc½Cš·qµ0ÉCƒ7óÊ»¿t(>´’ð^:—XY±‡Oˆ|?0€pÂ÷{S{‚Pµµ=udòYÍdØnœ üÞá¹Ë—ç&Úo¶cíUäµÙj€Ê¬mÿS5ˆDÞ+M¦ÎÿïG"ç¦6™L†•Œ÷A@Ó~| +õü“;\ö³QÙðñ. ãp#€ÐÞ¸s*O€È)ÿ Ça?ëĪøÎsMb^.„0º©JÍf‘Ù†|¹ÿ¤°[ÈÅ-O¾Ò3|’oéŸß>«9r-ΈFµlZÏ,Tž_oUyWgÒ/™`…¿ŒHaBàkã€SñÀx`{{›{%,˜_hö§q¿¿>‰>€ßF@Ê—Ê(šå«Ó?é_&’ã² À¦`ÁM08 SéBðÈÁM&¨óõÙnœ[ü!¨¡œî`!ü{Á@„Œ¬Áãq8›Þò@üOkU£7 ›ÿC44o”‡š7Pù#ÀÏ_ûÿŒÀøkkÂãÿf4ŠÌÇMÇÝÎÅÁFh.Ìß÷xï»]‹±»nbÉí¹ëY¡Soà ­ÅκÀR°ö—ëß}kàgÌaèl×]}Kìø`æÊÿŽªÿÇ +'€å:)ôokh8-öð… Á3;:jÚÛš5ÍRé ÅÿÑ!"0ÚÚËKÐêçÑ~_y9+¶Ö@ö +4E¿[³ö { ÿºÀ×ÿ\û›ÜnÈ1p g"î¦&"n.ÿy:ÀÞ€×Ô%¿-ieŸ¶ .  lÈ `LxÀøß³Ñó>æ]•]x!ÀÀP DÂ ÈÆ/cgˆüƒh4pà­e¶ªÈ€*–Ί¾™4cäàßÇö|ùo÷®*ÀŸ•]¯n Õ–ø»Ïn·]84vr,Oâ³³/üýWˆà]Ã)‹%Í•#ÌpÕè©É‰›“{*|îÁñ³g—‹çnÞü²øg¥7ñY¤ýq +™»Tý£¼¢JËn§ª+òŸüIßù#‘`é?e’¥Š%ãS4®ü¢gÝÌs=]rìú±ïc ˆEÿ?w"?Ò€"w¨H¼‘<ìð¥ ?Ëྡ¹œ^6šyö¿QÂ`͉üX÷ÇÕ5¬þ¿½‹&"„ûFLTµ6° ÷ËGïzîß÷À +˜ëÿØ]¢Ï‚pb ðŸU.\ÑCs+€™L€¾ëTö1Ò9¢£ + 5›\ÿWa °Š“€ ÿg.ñ ‘¸ÎîNÆÿ78ŹÉíÆôÛ¦lè±O¹Ý¦Qã¢ébŽ™ˆì =Ú?ÄnÀ[ee[Øñ+Ó]@°Ý*¯$H]«ý½ÁØo4®ÖævþŒ¡PWßúìÞÞÐÐ^!þË+³&—YôÿÝ`ÈoµÅÌœÉëvC Ðäj²²?£?LzxTßÚ*wøJ`4¡dÐ5_™›ˆ£§«²œÝ€+ËË@¥\¬áÂr`½Þjm…Ö¿të v@0’€ê9€Uú +€î /Ê1ûÏc×Ì+Þøâä¹âÏÂ+ñÛÅZüDñ›QþÛWâmqe%n·ö”ß›Ò'Ù„šJôðá€?>17×þ‹_´_¾ùìg¥ï%‘—ÜQ¸NÏ`£~Q‚É”CIyô<{êo¼ñyÿfØž±X´— +ÿú_ÃZxGàÇ“˜œò³$àNćûĈ¤Bñë +ö}vØaŸÚ·s‘ÎËÿБù!·_Vß=€Mtø•(¶#eÝoW +r9& še3 •… /Wð92ŒÐ_Ù'¦¥~˯’è~3ÜÝNŒ'ÀÒiÜsôJo¼Ýáð-ÁüO«Ð¡r¤R9’ûòDªhè2…CÀD4œ¬ûÑ AÿaÖö ˜¾Ï"Ëü7 f:Æe¹®÷Zg#æ„ ì&{±igl&þ§§?¡²Ôˆ!À'og`Å,¸@è_Þ¼‹P@tŠPàWŒpf °ÿm!¬íUìnl„Ê‹Ð=@ÓÚétzzEýŸ +}€…ÅØB¬)æ¾ëYXôÜçýÿe6ÿ…ÿ4|Ðñ  +€¶–ÿ°Ûó!€r~añïO=Ðè_Ž7ÏóŸ> €ªÖL×Õ×  –:áŒ'{9ø»à8ÅÀŒšŽ–ýž0{¨loh €cLþ‹œàçt€®bÒ_w¥Ú×BëÆµµ½ÚU©Ü»š/ï+2åueµGQú›Üf›“ÀºyÝeåm?«+ææúKŠ.¡Î­ÜªÇß|%øoí§Çé4 çÓJ=ð/Œ€é–Åûy ±Ÿ¾ ¾G s ÏàxÆEèÿM !À€“Yð6€º(žõ{þÜófÌÜújÎû•í\ºt)œøõöJñGZüf\Cý¯Úíñø€%¾bi³?­§VU§#_ðžw"ì¼ØþQ{{ûG—NܼüåïÝÚü1QÈ(œ·ç‹¦¨hÆ–•’<ŸL¦‚ÃïùO•SþáÌË·æëë'™Ï³b õ±$³Õ?N¸r3€ÃÁ¤’ÁoeS?á[yûéÌéÈg÷!È +ÝZÀº?T_ÔÎC»tÈ2©úò}¶/‘³ÁÓrøgÄ‚Ä71€poø³î7!ˆ·ÙÓìó£¤VDb,Ì€fJl_6à‘[æ„€º%àýKø/ˆà˜@}& vôùô}rX +¶¤Ð`ázÓ3ãÓõõ¹@@GgšÎ`Vz†jµ:HwŒ:NBÿÑãFHŽc02ì/§’Â?¤ý6CæoÀ@ÀÿÛ€„UTì±û߯FsQQ__Ÿ¹øÏþÈ÷Y>Š4€ûúÇb‹Mÿ=v÷.Qªÿ`¸Œñ¿>Àüÿ¿±°Tõ €–yÎøOûn🻀D¢z@°NÝaà£êÁLo,Õ/-ÉpçNvsô€¿ØàÄç¢ó¦íæj³É3;ë=º·ul á?T»ƒ@0´U&|ù5€²!0CˆªëQ¼w  §,«´öw   +2‰@œvC`²¸Í˜ÄÜ1«Ëmuq€} +­`â§õ þnCÆW‰Ëß–°À< ž @—ôüˆTvmta°²¤‡‰€l 0ê‹E@|_L8‚‡;v&o€ÀµÞkÝu‚°°Åq%×ð {´Ç¹‹ˆx—u?(€ðp}e ÀäíšÏ0,õjâ;¤¨ñ•¦ŠÝž:wÁ¢$ðçæJ_å?¹|âÃg¿hÿ¨øÐ‰/oþìƒó÷6Sÿ,bÚ26›W¸µî»—Ц|ÞóŽŒ/ùÞ{Éà{þdœC1_iÿô:€4–3œäÕ ¡ôß¹ã¿sÊã”q@‘ð’sø“Áƒµ ÷Ÿ,ýú?HcÍoð–æÍð‚Î.’TadÉÒ;1ŒÞ£w5Ë2—6à•D¢™é Ü µoecccŸ%¶‰TÜBÏË)Ƕ}{|;>£7ðú#¬>r”—K˜äUàe>Ÿîä +K ÑÐÑ þ!ˆû¹½Ì | ÿvÞ)ÓSeXK&¦39CÀÞk½oAHÞØðFv¤Ä³ä/ÏÔPPetY`rš* D`dd„«~8†Øé¿k!C‘<ÿE€áŽÀôù}Sf· £Èû—q Ü_¾»¸xGÓöÿ—YH`›[àÀWªx€'Lt@Fú>€ôœ +T¸°‰€¼ã® Ú±cºciü!Áÿ‚ˆÐ©Îˆpnržv‹E@›™ÐßMÀeœ5Öîílpà±þ£C¯ òá4D°¾ºW»W]ÒUY~r@ãÚúÚjž\-)é*Y7Ñ'be ¬P€+¦ãlàf@ðo#`s[cVwS“í ˜’9P®êW£xµ{É<¯âb1œÐÅ®€g?­&ÀPtÝè!P â •ˆ„Pɧ%œÜ*m€ª¥ï û—Ä„€5€ËoõŠÀ4oΠÁ"º-ÌšóRÆ€Xrûܪþ¢q„è+Ü8¾Ý>™OÄ/µ[aL¾—Q´¼îO{©ª¥3ûOD €U€TYNÞ‘*€d€Á¤ÿTð`nBe9ÙàaLgcþóýš 3»˜° +À.ry +%>_äk/éO6€ôK±¤¿ ÿÓé0á?1€•í {ʢމñ€7è3 À3€@ÀŸ +$q;KR^ê@Jز£ètÀO}Â@Z«€|ÁæLúuô—^ævá-ßR8˜ tp6 0®ƒ#pãž7ÞÈé¤éuý“ØG1àP@§ÉtÜ\% a¤™W±ßŸ_^h. P/wÿÅ €-€‹*šC\ÿƒG âwÑsó}Ñ@à]& w–Y€@'£î’èàx^`†ØÐ=¥»ÇóñßçwCðX·t žn¦å‘ nÓD¦Ñý_’ €îNÖoâ€}“»|b Ð5e®¶ÅÀѽ×ö°ñ·7´wŒ°–ÓŽåå<ÿ Ø[]­-³†`Êo-«ýýÕµßõ íå†ó¡ùÃÚÂ÷dï ,¿PFw‡Î ŒYc.WŒƒxݰ—d Ëeã”H«[¡håÞ½°ð«„ŸVú©ÆýÿJö‰`^„ƒ¼ßõ>Þ_Ξ€•åLø»”ˆï¥[ W[Ùw0v&öK·ôlôðÀ2’€ëŠ »êÿÁ©Œ¹÷§fö…KÖ¢iÿµW–\ª¹ s"±Ÿ{– +',Z[<Þ »Ån°ûoÇÕTÄ’¤ƒ7o¶Ô^|è—/~yä½$* +çëe8ˆ ÂãKúhfú¾´ïÆù¤OñûÒZF;7ØÈ2,ä[`‘;~–caAMÿbQA€TénBÀ¥§)BïÚ¥0 +a€â“ÑbÄÀ—pfÒjöœ¹¸cÉjòtû6!ýÊJÁ•++ãÛ‰ð›TûÝþŒ@··Û+ìžÚ©”jyÉ @Ü#ª¾ +˜>”",l +Ó +Ñ ÊÊ$àðŒ.ÌÐðÉ6¦ m¹@ ;VÍð@fÔ±’¼Ú¨†7–ÞD—õ™ƒùÖ샣ŸkÇMN©@:@xý€ÿð÷mÞ!¿Ý'–9`ƒ>ÄÉ#ŒÿîÑE碇—üÅqa‘Î ‹wÝ„ÿ Øÿ_ ö²ÿÿòÒÃNèÿáÿ‹Àªÿ €6¡+€ÚóÀçVþd €€O)oøZÄìæ +ÇUMÏ`s©¾SH81èd# övfÅg›B Úlu™FggGG;·ÊŽþ—a0t”—Žöÿ¾,§ÿÃÀ:€½«¡žòòSmíìÕµ¢¾ÕœPY›íšúAòiez0ðkNÀ?ÏÿéeÝfÅ»àñ À³Y9&€·8²WŒî«õ$øwÉÞþ…@^L÷»ºÎv½ÿ~9úÿ`Tÿcû¯„W«KJ¸ú¯fCàë"x ærÿÒ €¦žô^{kF€E ªJJèç$QÒ@Öÿ´{ÿÖúÕ4’WŠœ»€–hb80ysÌž¸€h_»fOÙÛ2x{ÇÕ §û¸xùrñ/ÚÛ?ürâƒSA–þ)Lÿ3: `XMm*ØPÇTÆ—d*0±¶UŠ ntäcK@ö”KŠ}Œµ4¨0Øá¼öùOÿKïp‹œ_àšþþïÆ>û€‰±ÏØ ûì³Û¿º}rŒ@$¤ÞÀS‡DíåÔÝ @)HÜd ’ƒRè:@l:óô?ùœø¯%ØÒ”;dð1Q°ûòS‡šFJÝoºë®õ^«ëí½†)@c#¦ o,¼ÑPŸ=°bÇà쨰>Ž@`ô̰4€ì +˜G+.? }E}»<ØE\ "C0¨è«091þGÊß}Qäß§s#À~Ëxõ?•ÿèûKU@zÿ_µçB,ú ­iß»×}Ìf€„A›2wY‹ð˜é`@ÉÛ:ÁH:—õ €Ó  É'@›Õ†Ýû)—iÐxÔh<º·?b[{h!è/ËÇîI ½þUÂùÊùÊ’ß:éÝfc__Þ +°ÌTê)q#x¨Œ÷k âd:mr›<pÛ¬ÿÇ ”˜Y9Xm€i¨òA~­•óìÌŠ?}ü/É@Oå§Ò ¼çý®Ê÷Ñ€™@lÜ*­€Ä@kµ«4€=™ ÐHðïilD†צë%þëjK €"'Ý¢ +7Wìýéù­-óí}ȃ>ÃócØ;<ž+.¥'Џ=íñ”e€þâ@MÊžÚ¦:X/…í_~ùåÍ¿8ñÁeøgøså¯=ÙÏ@Ÿat¡g± ²ã»—ôíøVƒD"è´þЉÈÅ‹Ïn>ûK¶4Èè4ÁUx @8¼Œ–¿ö“ÎC´Ü¨ãÛØÀ€-éí>áÄ\ã€(8€Êú@6â øÉó™ôþξBÿ{h5¥éAöÝ«OÞ¤Ç÷ØíÛÿ6–ðRáû9ù/'OrkÀ;žô'¼Dài<%—R_v€ Qþ«b;UŽ6¹ €¤°ÌsÿGÏ¡?àßçðÈú_‘ …ÎÒTŽ£8^__w­ûRê–»—å!˜@ã£KÒi¥ê¨é¢NŒ*Ä&@ßH2ÿ„ÒæÍE!Š€8BTþ‡6Øÿ·î?nÓâ( bÆ/ÞCåÿ$ ü…Ðrð–€èÃüW]q@èkóÿ‹LÔkÃo ÿù–)ò€¢¹ wªZfWDœSÇt}ïÿ‰@gÝàro/v8ÊÙ} «Ù6ÅN@6ó%Óèlÿ¬ñØA? ºvoh `c€B°'½€ ­DÀïÖúæû‡ô8À2Ó|¨¤¤ÏÜ?ÿ Õ²²œ L˜Κ10 # 6«Û•#6°&8ÌV[5õ%ß÷© %=]`•ÐþI»ß®r0€’ŽŠ€³•px¿¼¼‹*~ì¶b •sú«K ¸»†X9سZ[€ú€P´è(0BÅϲ?ö àŸyùÛl¨I¬„Ãov‡ééð£âá‹t² lÛñ0¶×Ä•”CÉä;_^ü÷ŸºwçpéxYa+#jXâ=A4 Øã?ºèÑ”oG ïQm­d‚öô5“‹œ8râ"—ÿ2h+/2ì仃çÚ`póï¼Äºœ½úÕÌþý€Ò%€<À*€{ûéL”wÑuC ìâ^D\žX@Ü·~ÒÇX4oøch-Gj¿ë+™*úû‡„b@Hü¯¢Ô}ÜÆ³uݳQõíZwA(Ö]ÕX…[Õbö/’üØÑO ½ûwñÂ_¥ r/ïÞ@0:lØ…æ?_cp½î‚­Þd aˆë ô)Š@ÅeK@¸“ŠLäsÞAö§ô€ØQSa° n)¼¾Çm>ýú;¯ÿóéžzýãDˆ¼s’8@w¸;œØŽâ)»%¿˜ò;Ì„ÞBwŽ˜s€Ï|qøEègñ_‹îþøOcìð €Ø*' +ÀžÀDêë~SÇ —°Q,•õ.£@šQÓ›虀ÇMÿ¦ô ¼ç_QQÔG À (B€xöÚÀjæ6Áqs…{ÔmZtâä&0*êüe4ýïËö¿x à<‚þ@À[¿´Ô1Í€Wÿ¯´ØÛ¸Õ¢è€–tÐ~H í‹>FàcßcáãÄ;LÚ°¾9³ô°nI´:;!ôø¤ÁCõ¿“áÕ7ü€§¨Ä6WÛf¡Ü*c×ÿ2^ìçú_vÄ*ÿ§í Õö÷×–™ I rËjKJLk¡¾Õœ@È +õ™ú‡"<”gº€IïÄØ˜ên›Þ` `µÕÆ«øL%:À§ðDÚÿröè: C`Ùè‚à_rôºÎ¢ï_fÀN­Üà=”Tª+¹À†èØ\¶XS¬ž…Þktvó±˜óÀ¿Î@AýŸ³-“/þ ø¾qÀm5c‰ÄxÂûF¤ædMéJZ÷ °[ì+á_ʧ*fêÿ³Ë?/ˆê_¬’ç•èOà‚'[†Qžd¢  V¸<œ«ÿ¿ç-æ-¾Øþ¡€ÿö‹ss“IôgM<ú­… +@ü‚¸seN_ö[8›Ö[|®Tµç²>8ÐGðeDÃ]L0}B.p–['ì´¯IÆ!~ê¹%™å}>ÉBX 6£Gü•k~E iñJ;j؆?ÍCŸ1?­f5 n5 ¤2ß“”u7ÿóáÿë#8O½~éÒ¥wΜô²`|Àò²…)‡ ŸAxJKü¡ÀìLÿA,(È Â?zôÔåù±¾þ?VXÕi]€6»((z 0!@á÷òµÞÆÞ^Ào#¦Ê„y¿QÒšLŽš>1ÑÙYaÂFazUþÇÿ¹Ýo`üçÅn4ÿqËÿ|F…‰ýLnaÿâ¢Ç­{ýÜ/,.Ü]¾Kð¿ÐÈ$øßy­n™`÷!ao½Ôÿ‹€Xäþa àÇ^àúÿ±¾¿ÉŽÜ¶ï˜áúŸ[X[èDùßð‰³¡áôi§àÓÙZm³N٦̣`³Ç0Ø"ü¯Ú:6k4ÿgõ?6âÀ*‚~×ËÙf§¬öjÈÔ7€`«¡ßÊ&ÙØ+ËI xm‹8²˜…Àý'†@´ßÑ@gÂõ® €­Sèž±´ghÐ]Âz~áÜE€ûýÜà}гü®æÊ÷+ePO—h`@l²@¥È¬¶Š$€˜«INþÙ˜wx “•Žœ €r 5£Š@!òg´WŸ¼YoN…í+5çÚaÅ[€xÛ·ÇWRš#•Ù)¬þ¯Ë_~0ñ_ý÷8û6›Ía½*&OÉ÷ìdwÞ®V£ +=ù”h‰Ò‰9½þ?qñÄ‘â#“Á %·ºÝü˜(Êa^Wà–3þm³Ú¾Æ"¬ÜeõÿcÂøÏñ®}™‘,"yngõé:c»œ±õ÷%[RùCZïÈ쳟=©ì5@辟 @ü?š?½Ðm`aS忟ÛÍjæ •žs@I&7•Ç<–Ff‡Ü PEÑOCˆ ÝŽ3™Lšç6hDíú" °ßÎ¥¿ÜP®YStø'ò¥ˆ0"I:Ðø¾Ï¨Zúõyçõæ×M½þzñÔ¥ÓïÜ«•í”Årþu @T݉F9=€ ôÊÛ ºÿÁ–Üî¿þ  VYé$p¢“.hóµ0¸Â€REX6=.å•÷övö6ö2ü/¼um3}À@ç¯Fáp|ut1é@…p(D,`·)ÁÍååå`¬ÿc¹o¬Åbn÷ÝQ* 1ÿ÷P½×s×-èô–,pÔc–¼R`ç`9+¶ ÿW\€¾Ï_ôgÐ"}€D `z¦^HØ‘÷Øà`ïà¯<ž†O p: ·™O›Íl`rΛ%p ʽ²½½½¡~Ö<ôÑ LG`—ïËkûCýÆ«å¡cùÀÕ’ò 탡¡2á˜wDÀi":%\1} 0¦Û›ÝÕ)´bA‘Àß\­kKt+¿= §R >ïüá·Áõ³b%°RÆð[=• ýb P¨aTÝÊ[†.« ög¼ –—!Ä]úPøW9®8r@d2)¼ ôÿÐþ ë±èÿk ‰Û‰íðÉD¸&€V[[|@³‡¸0¾]¥d^ô:7öéÅ‚Z_Ëè°Î/œ7Ówä\_‚9¯ÊùwØÐ¾³¨œõWYœ•hV¢¹ï· h då£Lp‹·ñ,þ’$À`C¥5 +I»`v;¯(}l  bYÀγé(çf~lW'NmdžA.Up;æ‡}»©×§¦^?ðÎí“'?ëö&âö”=}öx4¾'¸ ‡Fyp3ÊÕ¿ÏA—!»€*ûYùï`áŸ>ú——Ü ;Îò˜ÑŸ¾ç>âmܸBGGUÇxÇøÒ¸nD%å2€F0€kAí 3€–^´„'0FÇAXH°?ÂÁªù©øßh†=CŸÁÐÇ fÆ¢ÚºÛEÈ‹¹<÷=Üö¿ëáâݪüéå­k\ý?¬«‡ÐLÇ ;´ˆ€\ K!6d¾_`áa#€\ Š“áßÄ&ÀuR؉Àà ÇãùõÃiÛñ˜­fˆ]§g¹À9@{ee[CÇ 4öË5À2!,@ŒöjVö”÷­­]Ÿ¯4†ÊC‹«œT»Z{ìj¨¤²ÏD`uHŽ rI‚ñãù`xÿºÑ~gc››À”ÍUmƒWÁTµËP] Ûáã ÐSÙ3_"пk€z÷ŸÎö° pWׯÙòò÷áU„%8ÀJ¸R,PõÏ<€»RH¿ƒ­)fss0H]w]в €ðÔ 4…šEö3–ç„wñ«MnŸKÆÎµYÿùœjã? ²èñš”=®h_v }Q†%í™-«Ðí²CÚŽrãÔÿ8Ÿ|瞿ٸP+ø]ý–¤weÛž +$ãÉxŠ;—©x öFJ'í@¸´¦tÜïøÁðϽp.€±¨Õk1 Û–牲“ž™- @eãCqŠîHO^G"" ?*gåÊdù\4*_eqcÐ%Ó,~s|¢äjv_S³Rh’Ö…?jƒ]Ÿ(››Ä‚›Ùô‚ž@ŸÐ^ŒÁˆ øxA@‡ÜaCþÌ\uþNôUH2ÓÚé> ªé?‡uŒºD4 'lj•¸j·h‚°@ŠXIEoð`×Qóo¶H6Åä?ÈÒ¿ €ib¦Ã?NÒÒ§r!€ l.ÓAí¸´•í† +o`pÍ‘>ð‡¯sÔ9jr28Î=€·±P„€’æòòP(D¨ß\N €Žr*ÿK #}}¸ÑÑa^·ÆlЩŨ<\¼»ˆÌßÌéDõ?à_Æ üŸ®'À‚<±€^.ZôY±Lªøs:d_ø¸À€lÄ-€ºiaˆãh/K=ÎOD Áä¶¡þG,¯yÊf¶º‰5þ¾lˆ ÀÞÖÖð `V4ÿ9xO®ú Qq_{´¤ëDyßZ­¹2d*ïªì«]åÀ^íïC%å•}}F¨Ù (ï$(›GyÁdC€ËsÅØ€Gd³ ³ +€æjCu‰ÝûyÂ}¦#ü—±óþÝ  Köt½ßµQٵѳQY^I  DäÐý@/ÿ ìTÍÉÃLB lhj€ ‘×:ëêêÖÏÈ€Lë³ÂÕIÖÿZ.Þ9óWFî½t;ÁÏ ñøÀ€0²´ÏKúRx-í¥¸bÍD3‚‡ Bò”Ø›ô§ôORXlö}'L ,v<‘HþDòBÊžJÑ}’ŠÇ#ïùððä‰#¥ÃÞñ[áa/¤\á ï¢L`¨†Pp37Ïjû™}1îÑ'ýûw²ŠšóÑGµ¦r: lr K}½„.Ãѯò³u~å8H&ðXãŸÍY"¬²P|ÀÃçMn7Ó­EÓУúd.°~Gl‚EB h€’…/šòr#ïGø7Ȉú)ÍϤPw;‘ð¯P1dA… DÑj<>9žŠ:¾¾u¯¡vÕXû–Q2>…-ãuǹá {SöøÞa‰ˆ ¢ݱ]•X ¬Æý‰ñxlŠíñí•d‚8A$|«¦æ–7|¾f¸´´g:½{¤ØïHù|ŽÔwïdD€9S‰¾·¹WE¾‘ð¿!¨VvTݱ…­Û¹™/ž²U‰îhÛÒ3÷&jjBÕÛ¨¬£:Ðù€\©Ï½¤[ñÍ30ºg+êý¸ ­Ë@ð«+HbÀÑ€jNˆf€ÑOö¨žY¯¢5"Ëoét~õýߺã¨å’Y å¯ªü~U¼õg_¤÷_?ùÙéÛ·ÃñøJÜòòWõ;‚E#\ÿ3Åâê_LÄ ½´¥ :̘8|°þ+çê_7V¦ +Q…Ñ_§m-mWx ðC€éq9èí^®{«ñ­ÿŸ¼÷mëÞòEsT‹À b¯õd$a´epCRë×qbdLñטpüÇ«ðÊ_kÃCŸ† ;‚%ÆãXÐ …˜²vÃéæ»íÍõ? â l¿É)€7Onú‚IÖýÛyrÀóüœ”»a6¸Ü}£û­ÿÊ Ûœ’òÿ¼¨+âØåJš.€aÔÃõgªÿ¿»¼ã¥CW¯Ü7mí6!Û¶--Ì™@ãµ\,VÒg˜÷Qåߦ+#LG,Œm{M³×t;Fo™ÿr-:ahfÎÔf¿ã×ã:¸æï¿U^Bí§«”™¢3‹Rvy«kÂÊå2Å ÁºLÐe«‚—^¾D(àñnþŸ¨=ªð:|Kù¯ ¨í‰'Züsø+PŸ«Üì£þUՄߨºE<Ï^-y €*•þW^‰Ñåܬ–btõJì¿çœG¯Í_¨Wªxßœ0ðÄ.aMz¨ÒþÁÉg1€¯¨ê¥j­²‡(G:úŽXÉ¢û  cK}Ç)鼫ÎNX&îÃ3²ÏB€'ÿnjû„€\Ô’_£&``k!ŒZå{Ë!Èä¶Rãø†ÿ«M\  À~.Y@yéÿ…«Îb÷Ï;º­*ó¬1‡©¹6€ŠÀ ÚØQ€–PB@5Y†àìYf–{±5‚| C*]#}}x_ó¿îà"ǵQñïÇàî PÀ\ „êï ù¨øC(¹u™]bºoÄ©I}ÿ},@Âùò?ª<¸~„ÆœíbÏ8ÙK¨¬…&P?Q-^LÃ[Tü‘Ü•`áÁÙ+ÊøŽ,`p„€ûú>5ôà9ãÅ™ŽŽŽ3ÞÕûpï?~|÷ ’±Ð1:ºy¦g°`×uú¥&+þ=SïBGu÷æàBhx°`œ‚¦Ž{ç‚íÁ9oßÔè®ò<~ü püøh_ú4ûވߞ´»ÀËx,ˆ3XŒ$=\´eÀoƒŠV&@2À" •~v¾9È W8`˜m€ xXPHÍ?ˆ [ïŸä-€÷›€½Ë.=­® 0½¦ zU;[JÿT. aÍ4SC³V*7},ÊÃÊ8æšMÇûúÇÛZÇàz µšú•ºnØÎšÛŠåìØš½¶–ùã̱kvîíroçjæý—ÿö\}¸ëk°åutÛŒÅÄrœM¨¥ÆÇÇm ºàC‚[K+W,E LLX™bôØå£Tÿ/ýÅå?¦÷מWPÇsà.ìa{ qðSÊlƒ]ðЙ©Â¿£ŒÚªêK9¬©åE¹¶W›¬€QÅG%:ˆ#Þò%.þ(ÿr”Ï—xb€ô=ÑI+h8ÛßÈÐåª?ká€(éÛtìÿwJ¨"\:4Nd1 î_sCkè‘b?¶¾Ÿ‹QkýZk‡/e]šûG­ƒUýÕökê×¢¦¦ÿõ½ @…-jß_U~Y- €kµ «4ÀªRÂfy>£åÏ û¯ÄÿnûÏLŽÿA˜™ÆÔ¿£©3ÞÆeàwZJOÉ~Y—ìî°PÔÑtC? ±<"ူ~ #€ÎlÛÅÎ9€ÿ§þ_VÆ|L„Ïè«Í¿{¦šÏ´9;´2ó“îúX¿F¸;íU÷óÜú3WZñnw18yÀ”]ˆì« 1Pد {ƒca^¸Wo|¿`[¶!Y è` W Øpå@=)íRÊa M ˜5¸·ÄYWK-ÍÚ_«·ÐõVZàë0ÅûXÖJ݇Tõ£Cv\¬ˆàûM" ¿D¼ØÅiÓ˜^ €Là¼; `-Áñh¥ÿ5ÞàTÃ37Æ %P†ÀãM; èEÈ@Xz+ òŸ8Ñ{çÄ¡•Z×¹ÉÏß@*Àç¯#ˆª¿§íâE¸÷·÷÷Þ½K…¢½Ý7‡þ?â‰dCxÅ >t+O¢qRÜÀiÔÎý[ï¥ñ ÷:J?ÓÿLwñ€)X댩žîÿëO–Šï¬¨î0€0~–ϮȠÚÄQ““TúûÄÀß瀈,†éÉÕÑQv<3Euú¾*ÿLlž!pft +Ãüã.€àF0æSwÛ©c À®×— ¶g¼£Sð êqÃ]+`Fj ð +/#Ñßc ß}³ÿøb „5 01êÃÀO’|¨™‡' [ò%PøÐÍ…»hÿƒA0éÀü3 +ô%}>¶‚ ÔÄ»»O+€=—‘s¬h!Àêè Δ٨…ëOÉþ[Û›C*ÔþS[`R©ÿqéÒ±èt1:[Ëå §úßç}­óbggq¿mltwŽêÿÝÁàœÏ ÷9XÅàDåÿ–ˆNŸþÛ“;0€w‡¿¡Î¿—Ï'z¡ÿ_‘Ð85þO¨þß‹Qõo¶Šªõ¯¿ OŒÓL¼—ˆÝ‹AØ nÿïH4€ð:93Ї Š?ÎTü „^oÇêæêîñ3Shô1À{€»TʽTö÷°Ûÿ.ÀTÏèÜ0oÜñæ•à jþésS»›è´Û‘0êÝØ/ÿ­FÿyƯ|¾P +ÀîÓ§Otc ¤<úrÑ} ‚Ááêÿ»ÃTÓ9ýoAéÔ@€Ý€‚íw1 Xh_0HÅŸ·Û¡à®ýj0 šGª?]ºoPý 3Û±±Óoz ×5m€b*@—¿ötTúïÓÝÿKWý¿3›Ú¸£YeúmúÙ±·s­Ù\þKõú™k½¾mÐñÚ —j†^××Âöcò4^ÉÏÍÌÐt13ÿ§[Z-lAP ÛùØÚÄÕÿgJ¹æ«g“q3ºfkvŒŠ}n©lj)M¨ÿØ€raÈÊÑ BaΪ#àbݶ†Ê¡€h´8={ìò±i—£ÇŽMÄòßMÁ¬âXؼXäýõWLæcVï´hø•_½!†þlð5ûºïqÑúZy>Ú«ï=âN[Ì[€BÃ/0†Šç<^Åã >8á Òrb°Ãß L¶186Œ¬=² ÈC*ìÚž8Ñí¸zD(0£`uAþXØ J”Öwª^sÅ‚L*ÕÝÞWòïø†dK ) V 0Crn‘ëµï—xÉ€ÓTèj °jWóªÌ«š¯®žqRí“@õg º66 Ģϸ®ýNWn@p˜ã ¨ÛWÎ.ß),Î.cÞ]X>ëšg¯Ö5Ù·ê÷®¾æõoR÷úðß~HƒÌÃ1†Êd1 aXd‘™âd(y+Éå¿ûÆé¾Ó§¨6 ô^§úJÅá΃eæþ¨ÀXqŒIÈÂ@/Œ«À@ý€ð»þÒ @Wµ+ñ0( ezYx m¸ÿ?'"€¿àúß7ÃÀïd»¡Åx÷k£Tò‘0u¼çþ} `Àêè*¢7FyÉOÙlØÝð ƒü'0øøxŒv± +ÐÇuÖ€]×HøÉ1ÀªÜ þ?À;§!Œ¨âßMÝù"±8l€BÉ ´ÿÈnWäÿ>ï¿¿ À ÀMøÜ\`€ª~;Ûÿ²PÚOèŽÞIýÅx<À Gœ:5Â"À;è×댣€tιNM­™ðTù? l:Ì ÖRvªl–©Ë.\ûèZW,¯sýç.­Ñ2¬¯mÓÕݰpnB»VÖ­­\¦+X¹Üµè±èùÿ÷Ô¤W´\MËÅrù ž]5§þ´èÏ}*¹ÄF!Èw‚¶fv™XÑ2S¤øs©¥²u› V5›yMº½d ‡2™b4:=þü±éécÀç‹ßå¹Pü½òí)‰:Ï€…®ëp푚OýðÙLÏ7X»¶‡ú‹¥+ké qBûZa;»Ú×`¸ëßÔ¹^¼*wWÁ¬TêØ×oˆ¹R.IèãG€q±£#À‚ó„_ŒÀÏ)ÁByÊŒ}$ËJÚtÜ”`#°ª¡cÅ]†°Ì@ËÍ’^ûžZ !ª>¡ÐÞþž X,mÔÜûœú#üX ãæfj?` RS6€F3 ˆûÝmýÁàâ¶þyWü§NÐhÂý×P ;.  ¹€†=€q kâ ü„€1¦Ä˜ @®úáyúê½0ö{áÐæéÌzg€ÎH€*lw è=³Jo÷§îï² P“]õŽîb `TE2 0…Àî*?5âÁxð:|6¦¦F;æ »‹LMõLzÙÐì{þƒšÜ’áÊxüôé÷ Œ§ãuÇÙ§ßzâ•§¿o¸ý `AÔòapÎ7á´0|Sl€Ú1˜;€§ù‚Š`àbd‘M‡èA°Щ“x•GFØÛù®ÿ¢Làˆ®C%;u•%Hgôs8Pá#ZT%æl×{¸Æ»Ú¥À¥QeíSýèÓ¤n`HPã\åG{¨}NI3žŠ£Rbèëçò9Xp£Qªé_ëœÑ/¿è~†lZDßãÑ"¥4 EŠ¡ÃÜᬠ<ƒY§„u‡!@;0·ó;¿î6ÿqàvI{JûÁ/½bj +g!qO˜–©?68pò‰‡ÝÈ{¾Ìz°íNŸt½ỉ€x/EÿÛB0÷Ï9À,Ü~c ‡é¾WµŒ$‹1Õ€aÀÊJâ0€Ø$g{ýž‹Ù‹Ù‹mž‹Øý»ÏLò¦¹Ï§6Ä]›n¹78500B¥uýÈaÄîÈ’¸œºšô¿š`®ÒB´Šá*ñ¢[¢¨&0 l€î,·Ø2ý/ÀÀÌÌÀ$Èï ]±0¿x(àïë=sÆÛqj÷>½Ma @ëVÏ ë?_F¯oìNµSý‡Å^pxp0À&Ü66¦6V}ï¶û"p×ÿ[,øaÀÿÝpúÆéô[7âÝ„Bqx„H.Ò%ø¥/Içà°OFýîù’,¸h@­2 0 &¡þo'pça3 ìÀÿÏû¡¦•ÿÅ8|€º œ?uʵ¸þà×(š6€úŽZ|ÚÖ¡rÐõôeËüî bQU-‚V7mœè±6êû>GÚ|¤6ŒpÌзb¦}­¶£™L†ðB4SŒ¨ý?võ'cÓcFØNmå4{mzþØŸ]{L¥¡VÿëZmû‰'‹©ÿŠÛòAˆ¥Bx).ûX`ÿÖšf™® ŒÓ' åÂ… ³³Ñh¦l‡Í% žÀ™˜™+ÍÏOOG½uí;=NSÆÏ´-ø½^ÙsSÛxU•þ¨ûœÄžà`VÉg¥r¯îÂô5±‡|ŸLh¥„äZ%¤ |÷ !¬ åXD߉›oˆ„ñ:î ﺑwœª£;ù’ÞÈÓÇ{¥Ú¶óB rj +! –JÛ•=ªõp=:–2†¾ƒ)ó~"ì?´€›5IœžQkQD¹Õè»’&ýkŠh2Ø'€½€h+êB8?´×xªþ{|H{pØÀÞ6§FÓ¯E^æn6ð3‹?wÿ¼þ'€€l¥qC-8ÊxÜqvÄ +@Ó%f.áÊätv…™Búazú}ŸÃ ˜]lúÛîA¿ÚÏÉñ †™† ]aIœ;ÃbjO¦ÞçÙ°¨Ãz¹ù‡ä¾ðþ¿2’ÀqÉPÔüÅq±˜®ÿN€Dì^‚¾?¤½'ÎöÞ €Ê˜‘þÀŒ" "˜~‡º»ý3¼p†úÿãTíä…`•·¦¦À +´2S£ôU˜Æ‡©Ñ.@°Iµ£gjjt)AÞûX +¯äÿûV€˜ÜÜè¾uùÖ-(,o|¿‘>Ý}ƒs.Rûe"€ïKöòc€…ƒÃÿ¦kÿ 7°š@­=Ø?ÜÞ>Èñ¿Ðüc—ÀçÆãyYr S€în8úOαγ oEIåOI3š‹µæ uñ¯ÖÒÁþ0@¥2^¢¯ÄvfIÁØèL¨5@Lšìqhœ´¿¸ƒ'5`À—®–ÓÊáÆ$ÇJ`g§'ë¹êŸëz€ú=Ä!V†…|R}â‘ËTP—>Ý7ðþI*ÿ“###0AèíeÝ!ŽÜ£w÷ºTóïÎÿ 1ÈÞOh]oÊ`_àG’t'~‰îÅP ÀžÍw\ +`ò܈ôÿ“33}“¬¤tèFàA à_]…éß™ãÜ´cúïF pwŠ€Ý&€*¿±;…-ÀÁ¿ü”ó÷>È xw£gt^ýs>l ߨ7Þ_”H`,&“Tüo]&pã½·n¤Óñ@<ÝÍÞo†Ñ]ð…‰éÂØZd;Ÿš80„ðž´•= Þ£,JˆCeÃÅ>(?ÀU3;!îu5€»žaºÛhÙ"áѨõˆ=`  5 àò†ÿ?(:º;{øð ’¾ns­§¶Ã=À$¥5 +È­ó%÷ƒf÷.£”š!&BôKûïr,Tì€Ò…€)Àd¯ùXË÷O1ç0Á§Þ¿@0A€×^ó^ËzŠRû_,·2—þ|ËÊÄìšÉlÙfÆš>fä4#‹m`®k\w`ŠŠxÀÕ\€c˜á‹”a–µ%«`Qù/[Vy©ÌÀTˆÒ 3¥-±< •Zº}a¬XÌX)­lÍÎF‹¹­\.—yû£écÇþèík[6´jÏÛÏ ‘•2¯Þ5 (…l„£<'’ïãDvB] EêÇ™. AuÝa˜i@ ã< wŸ¢ªŸçI´ÕR"¯5X_ǽ4 âéi§bÉqz)apý×׌ÚÿXãáZìÌ… }›°Á×z©‚}…@NJtÈà…ð5&šìù‰³,ôeŽ&!% xQAåˆ3 $lñàð6ë?®x¢U~¼«óâ @?Ømó&@]N\†B½â–`,ñdª4ê¿ú~zÃÆ÷\Û\Ös¨€„6] ¯CAÕü—XúWýŸ ìmJíàÏþaVÀ7XöԔʴ ¼ãYÈ¢ôÄVü.àGâ‚‹Tû=T0%æ´8,‡'á/þpénTÿ“§FFÖOqa€8á=nþ©òRííº—Pyq %‡å?Œñ¦@M?ŒJåEwÅ߀, ‡C®tX>Kè¤p§W…(À$~ªÿé¾û>a ´È @‡é=g¦¦¦Î ïgÀ+À e`ϾpUù)7½Çƒ`ðAûppwË=Sïç’ïb[ 9PNÀûÀÿ kXpãFü-„vZŠ$e:= ÁÐHƒöÿ”ððð»üá]˜a °½ýÓ ¤„æØЃÀ OvYà †ð Õ³b¦‡€Nò¨‡}€9 𬔠í4Yz=ü-ÀKZþ_TÂá\yËœX«Uôµý;+èΨ}wòa#¯Ùf̼–ÛšX³¦s©Üü¼;Z(Æ¢ýì‚{¬MÛaÓ,X±ÌµcGuûq̶<•_ìú5Zž2Ãu|Ä3€:ç ;¶æ€å·Ë);e–Í\нuÁ²,(SæR¡\&X¢w˜”5À ”SåÙèð@®P¸V`#ak"÷öôtn-¦Ûy;Ÿ×ëÆóÕAeâU;4Oü©ïèhqwÐÔ¬'4ú•)ŸÙ×»x[á]’ú`E—{X\õ¿^1 + h²«ÎYî2& °ƒ°útÕ³Îú{èú÷dc«ÿTvõ„ÃÈ!ÿÙƒWb±‡%> :/ŒÁŸ†~`êßðÀ  $Òþ#€/”á½ò—}B|ÆîÅLU°gª}]è€F‹:ïô‡!íçœ#§.‰ÇPú……¨ñ8€ó ÔdA’^‹’žX%éïÖ;KoÚ?!€t|†‹ïêêj‡×Oõ~÷ŒT}¯W¦^ðÞQLµ¦mŒ\þõÂ. •ýQï»@ÿp|ªçø}—øoî61Àèéèý©þÿÓ­ø{7âñ4[Æ•6þ 0äLÿ‚Uü@þ+ €¸Êîjþí Ü\à, O©Ùïç!…=> ðq¾PÕI–z„ظû4ï2°ÞÜ\æxGw¬pc@ÔžLu:0øáø<¡kÖA,vQ£nTœðvÅÐëáµµ°=a®ÅRr9+ge¬ÂüÕŒu´XœÝ*)NÌf¢þ˱Ò/ýô'–£[öcÃÈ¥¼~oÿIƒÿ«ü•(€Òý™2pÄ—E÷G-þíâ…Ù±¯Š`Êtu»|ÛºPB €i©-ÑýC™œF¢áÖ„©Ùå5s+óöDÌÎOäm:xÚºñ/›ø¹jNÌ)µ¾,~çôõñQ×WT§F»Ô+ ç¹ùÇ +b,L\ý1ðçÇM<ïàŽ¼LPö ¸¥×ÑAï?¤ +^P`u5–E‚µ‡«k'^¡›F¾ŠÄ]{£Äà÷nßÎÿÉ›p?fÑCýkà^D‘á%X¸B—%4%•dÄÖ†RþŽl86 ±F6 ·“çÏU”‡°„ ÔD<¨‚2ÿ¯c¢ÑÐ÷ðÿ5ž5žˆ§Ì?!€,読ób6ë?´à›í¦ÞtÑòÚ¥¡)`¨!Àþ@­¬qlÃŽxíßž€\ý64,ÂCÉÕ;;‡Y€PÚ¡’öøhÿý\ÿTû=è/}!éþy€ígâTºÙ1}'Ï+`¤À‰‚¼÷ו@o¢é+B1¬H­¨;2¨?•ÿ‚ @Âib ` šË8 +I€#ëç:FÖ''›;€3tò" íg+Þ@„¥öêøWÏlfÓ˜œ…"Ðû÷J@H`uuŠ“þ¦ö÷w‚ ƒˆ*ñà¯oŒbíojtô]ª±¿ü‡ã»Ç{¼?îi‰Ø—ÐùL:ýÅ ž¼w+~ã-˜Æ…%#ÉËR™ƒLëœ ó9¨,†E8Ìßܵ†—CoßäíH<°áÑÿ¿¤/Ä ˆ}(€ˆ'©‹ÝØà|×yÒ³Ì €J@0’T ?ý»_ù_ÆÙ#ßßÅ«Z(˜ÿô ¾æÔm˦š:QÞ2—¬L¦\Îd¢ÑâP´X›žÏÌšVôçÿ2;ÿ“± ჟþ´lÛ¹ {ܶm*Nv£ÞOàšHÄl˜;`€€ÁºRíi†?l ðDðÅBH“Êói «Á+¸pXdÜAC¹Í +†±-ÞÇ £!Õ^¥ !yÛ 7¤ïwXÀ‹€„IOl?ùÃPç?×üµ{Þýð~ Ó¿òãeçæ<Ý/±ŽMùÜÿ·6þr¦ )À”?æšÂªú‹°a4 Q®ôO9ÔoPB~‹\€©%zc!üî¶*¥¼A½öµ¾Îˆ§3õ„. >Äõß'1±ý²F•‡IaÌ…¢o˜ÞœàÀŠÈ ©÷X¤šµ I‹ŽsÀýø À÷£€ $€¬Î.÷6wÖ•*ÿ}3~è† + ZLüÞÕŽÕ¬tõÌÔ*ÕüM*ûªþó4ÿ»SÇŸ SC~.È™ Ã÷{F78ºñ˹Ppî³fðñ§–Å èF$òOI(ãñ¿ê~/ýUÿt<¹ç¤>~ã ÌêÑüã + )ÿ-à bÚ% +€`BûÂݾ‰j ÞÄÇã¡Û!çó®Ï¬d¼€ê¡òï2ëj@W×þ !g7¨þ$S9¨øAc»Æ™Ô—× £±‹…mjûm-“+|”ÚÊXÅÙÌP4W.”‹W1V¤²Ÿ;ú“h&z$öÓ?½ûsÓ,äìœI!€p½´ P;1Õê²ü´alÇL[+›9“C±ûÇô>ª*U.,ü/•/\¸ðÉW_]È] P¼04tᣠCVy)eZCKvªœ+@+`š1üW6ƽ†|{>•žCPS8 ýKæ1}ϳ{‘ýñj<ý‡èý×VÊ-´M\î× ºVòôÕyú‡+±¦LÐÅr³ +¦µ*ŸÑùã,_,ï~ú¡Q×°Àa&ðñŒ?í…`:tÇ1nôy!øØï÷Âý*þæÇ«3£Í-»ìÜ´ü€@ṵ̂”á¹ú¢ÑÑÀßd}¾Ž·ø7qÀþ]}–þ#€_ÝúÕ¯°ȉÀXŒ$™šWƒ¶í¡H–YÿA‘È`pPÒˆT° nÞlg #@Áþ §Ÿðþ1 HÀ ' „"‹tîŽ/ºÓoˆàÉ÷O¬s€øu±Á3[vÔjdÎÓ@퀯Cí `.[‡…¿Q·ëµ’Q³©tš–a›9ËîÚÊMr[]óÅ\&JeÙ<^¹:VŒ©ù:Ë}øá'™âRfÉ6-SúzÃÈëpûEÃï–2Žªó ´‚t{l° €BŽÉÿ%´¾UØBPÊ4o—Å05n]}óÊØÜ¬Ù¨5dÝ.Sï?k¥RVÑÒR[es\C„àVì±ÆúB,ð¦ásÓdmŠ›§’΢·ÿ`÷cÊÆçáZ—¢ø»ä]sè¯ì«¼ãŸïÊ'ò]\ÝÆäÜóÇ”½_É‹" +Ax £@ú&59™æxõ @sÄäC¬ªŒd©Ð– 4à¿ €^»$Á€LØ—ê{  ÃÈÑdö¯XTvרF®ñ+Òu¤ 3 €ÅF6à%ŽYÀ÷á¿3Ö ðÊ ‡o1[ q ŽX0TEøäOÑÙÙ–ëþNÿñ?þLJ?XXhëD&ü·þhp€Áâ€çtðåô `;i·ê+.€ª·èÔM…\P ±({5³ ±#^, ptCÈ]µþªø«s=±âò¯œne0p˜4€"›é ^£æ× +dÑþS—˜L¢Çôqñ€œáºý/@˜Ã^¢òÿ—½+'öb¹úËs"õŸåoŠ‹ÐÍBå×ö!À÷@'ø[?x@å¿pg.“ë“çÖG”ÀÌÇØ˜I÷ùûÒ}i¿_…Ò3à?³êíXý8â—Š?³¹éeÕ~º¹‰\ªÿûV€=0ýõ B’ü"ÈÂüÁáÝ]¨{z6¼¾¹sYwû +´¨ïû¿èŽü•øÝz/ŽE@0ñˆ*ýôR`€@Á³à°Ú€@Û‡Jè° R€àÌí7ƒÁöþ¬<'ÜKžðôÈø‘åž àôÉ“Ølj—÷¿¸¥q +7ÂOöÿµ—uòÿ=¬fW¨G«‡©e§ÎÊ'pÍ6mÛ¤Bc~TÄt>Z´ +EB…ÇÅù±«Åb4úÖ…µŸ\[{Óú™•ƒ¯°‰œJ·nÇòƶnÔÙNà`Ic¢@„74ÛÙZBÌOÝ~0®™K·­ Ÿ|2då¶4Í·µD€fjܼð®9rõïŠÑ±±¿›-”Ë·-«¬¥ÊEki<¥Á˜þxÚ(ýa¤íÕL!þàðonªpbì§:ÿŒýY׿Rå²K—X~@À:Ê?Ï àÕ? öûßH¿áGPw·'IFúfþ~”@–꾟2¨”WXüô´œ¦FwG#ƒ €òáöá¹Ý]ÉÜúedjt.Û³/ýëyZðã©Ó_tc €WâïÝH¿Ç@6¾ì'“ä%ý/ƒ¬ÏLºJ@,ú£îóð_Ñÿ²èºß]¸9s ‚@l;×ã&Ç=*`Qd‘¦ßs7•ÿ÷±íÁQôJ+»'L½øÕÝ1à@s•Ê‹y:PÇŒ•z›@:1»¢åì--üQN£žßÊär•‹+S´¬Œuôê•«G¯ZCW2Gg ÖØ'Ñ«™«™®ÛeõhF.åš­çóQž°Å3Ý¡F8÷‘ÛKšeÙªèk‰jz±ËmÙCíñqŽ6S£¼8améöÐís|Ü×RŸDg± À™Áð56œ0~ +7¬0#úö1´;| ,ÅDúïÊù ·§“Sâi=Ö…¿DŸÇ˜ Ä99ù<Œr«y½Š À@]ëùª‘—r`ê‡Ûµà~GÞî>@ˆ) Úm.¼ìD"¿§ Gwvçôˆ ` …'`4ŒºÓø=Ò‚<ºgO`FÌT• Ã×Ú~ €Á£h™ â $˜ b—)wµ; ¸"¹ígË€üÔøôg-5¶µµuvúg:î¾:÷Û»wÌLv¬®~ËÕIEê?Òƒ|s>vzùÆ v按ƒ$ž4V +hŠ\@gc]V„ño‚]ˆÿýs´4k¬y•Ø·H: LVÀ³Îb29øå Î(I¸ÿ„BìIÛÝM_7À€L€ÿÿKêÿOœ(¨eû#Öâÿƒ51}_ÿ‡ƒ]jáÚA @ýIÛ˜ï6Ïà£ëÞÃ.¯œ¸SxÀý?0ÀÈ$– ÿÀ܇1‚ùÇ\$„úçg ÀL$K…¿3Ab2þ½Jè÷nnÀ#X1ÇÝ@cøà»ñàð`à™LØÊø"«šþ}/Àƒà³™/nÜb@ïQý‡ ².Ë€Ú_2‚ä>BÃÉ 2À÷âŽ?8ØD 2 {î.Ü7ÐîSÏô×jÇ'îÿ}IáLz0ìYŒ„©þ¿ñVúdú´d²ìö  v4Qí­öò#€˜(쀄îk`†a#ýeÙŽ™¹-TÿóÓÅBÆÊ])–sVôÊÐÑ_¼yeìèl&úéüìX4sµh-|T(/åÌ0 @¸¶M%©¾~T©?ÙÎÑwÓ!5¬aëh¼—TnÖLYKfñê•£o¾ùæÑŸ¹zôÊüX4zÁÔ4kö#s<®TèUÂY»¢7Ì­¥r¹X´Ì%k ’Ó¶ „ØlD£¼f*ϘP•ç ¤ëJý¯çWJ+< ÐÒ}ΊRõÑm^Ü“‰uU6éáÌÞàã8}A©£:Zpò1&P* ©$ÐÅP ¤'㦒ïÌ䯨ÀaâKßjǹsßò#   ÀÊÀ\;öaô€fïï6þ¬ªä«ÿ‹BªLùȵâÉ¿¾Ó¤ܪü§Êb«ÜŠöŸ›ñT—V9„'ãúÈ€Rø@$âYL&=Wa ¼Œ¢ƒ‰0úAÞH÷ýÿÈ)‚Šÿ'€±pEý bÒ';*hÑiµrmUÿ_ÁÀD5?$Ѐ½`xn#êþÏM‚ýGP³?ßðüÝiB?!â€üþ¸þe~ïÇY‡À¦¿) ëì¦w +Ù¾-V€Çw 4<¡?-‚>ßîTR‚{zF³þûþ¬¼ïÔ¢øñýÝ37ؘªÿeh1è¾$é|9’L^NªSP ˜lH*€v1PV +àîvI„€=É~öö0 ‰×Ó"g Òë½tw÷QýÇ༫è½£^ë®Ä;üBc×Ûp=ê-ZŽ}à‡ ò¶Cζ!ÆüPûN¿ðk–昙Œ­YǨ·ŠQ+W˜žµ2köÓèÒü§Wgç?-_}³øéÕâÕ1Ë*N|…ñ}X+›âýÖ*ÿˆ¨;µJÃxª Ǿa­æÔ¨/Îç&bes4X²n({ayʸûW'C&ªþ7¸þÎ3êçfg[['Ëffþš_߯þkdõÜgß0 „hoï—äÏË–Po¸›€ÂìªóW@´ÒªþËF¦âüݶ¿)üs•› eäúÿ( ðN‚íÐb‚ø¶q@Eë¥v‹ð¡ÕÁÅn×Vúÿ8 ¨¤PþÏ#`„ãá¹ÿ_.¬VöÝaSº»ü 1;)4#Ü×è@@¥uuì»ÎžÅë€(‚.˜,/ßyÐ{ýNï:V×e ûÿ,ûïóûùÜ—¤y²èaœfµcôÌLÖñNfãžM«²èÝý%ò€zÜ€Tó©©3Y&ÿ©ô~ ^ÐsIÙÍÝãþÈqÙýk¢€ãÇ?îsÐ?Ñå4ߢgž“ù’ñ$«1¥þøÒÇ&b Þ ³€2\ÀÁv¶lÄ }°f€ííÜôäÁ€™>"g€0 +X$@€Êÿ§1òÞsa€ð{8+ëž®¾c¼iÐê\;ÀïÐaܶœzrÐò¸wÛ´ÙŸw©˜Ë}”ÉYÖDôr&7_,YCóc³ÅòØO£oŽ‹³cÅ1*ÀÖÕLù62ý4ú7Ú¸3ÃuÛÎSû_S­7-«.åþ$Çk•±=˜¹}³‹~2ÿIa6:;;öæ'ÔÞg|åµ.+U ›å£þË‘OгÅÂÒØæfaËÔìÇ6á± öŸ TØðWŠ-®ò1eý‡1vBg]`ÂÐ:{³Èâ:Rl8ä^ÎìcÃÖºøÔ7õ½G¼Ú¾Ç÷5¾º– @5¯UU:@^ÂـÞl¯'b»Xs£ít [I}[g› úf:<‡xÁ5|›*Ï)ë¿Í»0¥¯ÒC­Uºjó5…Ðx [å(ï’E§Ìê˜üpX™fpt°p%GUýùZµÿû €üVäó¼5ðõ3ê?ÿÎÎÎ54««¯·½ÞéßôžùÑîtœyæÓ j4N} u sAªýýí’!ð²M°n­/©‚Ï" +‡ïr}) ÑâÌý?”*@GfG¤Š?Îp°n.¨ÑL¤fÍM@•a °{(@E¿>2p’Ê`< Qp(„I‘ƒ¡EiÎÿý@ɆéeQ˜¸Ã¿ãªÿüN×v”Ï¢ú5m˜¨·ä`‹_Ä"„.I#XYYy° ½X\_™9790Éý_z†÷ÿûÐÿ÷AºŠ`ÂßDZ¿Ù@ÖûË@ä"d›âÈgo–ÀÆ¡?YŸà®È Á¹Ï +`ã—ÙÝ]ogKéïqÏNŸýò—·âÿ”'€Ë·B·’J +è Jýÿ×0àéÿ‡EÈÓ€öàÂà]ƒw9 ˜{þ›ð<€Õ½IlŸxß/|DYa ;é“<¸ÎF@'š.8‰@“yä“&À‡€þÿ>€nP¡ÆºžiÎc-¬Û¶©ik¹-í1Èõ²µ2ÑⱫE³h-Y篌Áèh´xähÑŠFÇèK®3Å!ðeÀtUÑ'lG-á•xï—\øçÿ¥úN0ù?„À!ÿSÿÏÞÿüçFÿˆˆRR–ÇÁþïSû@aeT? ÿB @×;lE°rÞè|b¥·.@hþ'GF ˜é˜œaÀ—€?ô! +ø¢'r+ðÙÀ ÀÇ6éö\ôú6½3^nþ½›í·ÚÐitw·ÓdÛ]\Ñ;_’á8Õ™E~°ŒŽïiÕ4ŽcðVäÖ­_%ÿ*ÎI `@/•ÿËÌþ3@uß÷å0R||XÿcàÂMfpsXy°ÀÍÁ…»àÚ9 +hPÒû“0 Â1€ˆØ °6AñîÅîî7Ò}§ñ&#€w +* +ˆ!½Æ˜ï¸ Àþà`М°_YÀD­mÓ/;gó˜s‚ù~!gMg¬c™âO3e+cÙæÕŸŒEËW¯¼uåê‘èì'EX–Ç¢s ~>ÚV.\{œÓä0V2¤ÛÏù\Z·ËÖíÛ¢…k±«bU2„Âá”yáBÅz³\Ι[šùضe£¿Î1õìCð¼ €›·š×aÌãšó”è×ëkìc¨(¢:WzGùòÀ›³}Ù$òRÕP7Þi' ðÿ†¿yïy]D|0 +dÖáé…5¶ØGB +|>¡vÔæ/Σo1”tl:Ì+l¾÷ÜÆ@üãÈ: ô„t½ñMIº{剒àçÃa€U³’&É5t'.®‘­ú7ìb ®ÀPå¿ùNTüAc[ÏFIÏx¼sž6œ²þæ÷{W;:Îtœûì³ýè›gü(}333}þÓÃ?õÕÁ Šœ›ëo{ùÜ’üè¨æßF\öaÈäBžü(·@Y¿`PV‚îý¿¶£Æ3rç?µøÇ)ÕM?ËD¢éôN !w-8 ;ÜÅHÚCý¶Ád<°ØMý€5sÔÿŸfþ}HÆÿ*ÿ+²S‰Þ¼îâæ'î-þ­€º;û¯·ÿ®‰'6†`ùAïƒëçN¬`ýŸ.ðÆã¤(úúðçðó$ý̈'÷t®®z½}ž¬'ük?Õÿe¸9ºÙ6º1µñÄÀîÆÔTÖÇ„ „ÂþcþïõφO‹,ôDùg`dd]e*®ÿ¿SIj°éçtXªÿ÷Âä×Öt£Žþß6lÙþÓìœË=.—‹åpÞ{åâå+Çæ3™ùâùO>J™G¯FÍ+GÆ¢cŸXÖÐWÅ«CÑÛe³\,j5ÍÔÂa;Ãÿýlù¿m8õÚó‰ñé‹­ý>?Anmív¥2^\²— +–Ka >ÆámΛn F‡T'ïĘêŽûÙw¨]aŽ­‘™äj˜¯£ÀꜙÇe×iPÁO€6€¿¡ÙÎC…¶¾Ô¨—¶{2% Öœ*Ý6á +À¿I0àx&æ¡oû5WKèýŒªd c•[ÛiÀî•KöíP(U9g°ƒÊ0Og»Ô00¨=_Fìeà.È…ªáTja‘18îS"Z*&IÆ0¤ìäÀ…†W\Øy€¸Ór?«© +çÒÿlÀU§¶­WYßxÿïñd7;ÛæÚ:;_óÂüR€ŽÉsç::žÕÿÏô Ì̬wÿã«ÿøá‡ƒAÍ¡ü¿„*GÜ€˜P¥ßU:Í» öØ÷ijˉ  ýq­¹YAú~ãO¿#‰–¥?ÿKlEW¢Étɇïp€Þ8¤ ¶>p2N8Ò¿\ŽP%ˆtƒ0ïKSÝäð‘õ^ †¹ƒ@A¥Ã» €Œ¸\ùïÝŒ·€fPm? + þÄÄø»W´ÿ÷ººV–ï¡RÑe{ŠÐöN®sÐipÿ~7U6¦Æ×Oh¼£«£}‹é ¶_³þξØDF0Uÿ©ž W¨D»Ss>Œá¡ÉÃ~pîãQªÿ=»»»¾ìT»ÿ×Ó"p]¥þ÷ôü}$~ëVòŸ0ÿGý'±@x ù+©ý!ÞËd1€‡e`ßó‡ -'Ôÿ ûÒ{¼7Àƒ€~¸<ö‡ƒœÜ/‘4Ÿ‹Ý!zÝßHƒ—QçÀœX>{ö¬"~Ç' €Ã¡þÿE€kÿ‡ :N£úÛv*Œl=+gNÌbYÏYÅ\Á:våòüµó³—ŽFÇŠšvôÓèÕ¡¥(\ù®d¬Ü’UŒ-M[ZB²_Ø.ä4-lØ1­nÔé°Vo°àö°¹¨Uô7—L+³Dß„DÎ`”./êó1ža;*ûÇ]Ì3غF°K ‰˜ðÃ*HÈïËÞèð¼£ -.š|ȳ€(ÿáÖç8y¶ÇáÀ›šÃrÁLôªl€ÆýÙ?[sP3˜Q@3˜‡¢k\Q‘Ç‹‡èð"»ôÓÿ˜×Ù”§Dõå›çbê¬PTxÀ°I¦Ÿ€Gž5ñW\¿ÒþI­×Ôˆ€ë?dz1¶Ô9¥NzÛ§YçT^÷m0¨|ž@$’„"þ™ÍÕÑŽO äY$(°ìe'lìŽîR]ßèÙ7Ä`cãݹw‡ƒÁ/Û±–·Ìh˜ê™ê9“ÍNíö´Rÿû +€V/Àžÿ¸¹•Ä@÷{lˆúa ¶ŠaÊœdqàó (•qaaxá×ný¿;ØäL€›ƒ È-@e +.z‚‹X +äe€P$3 îÅn0ô¢Ÿìã­O8ËÀYaÜ$@Í `#¼ïçüï +ÄìX~ÍcXoÇp1µÇ¦d+ó‘•ÊMË*¶ŠCÑ£WÏOGçÇ¢³GÇLgìˆu´h??0k}”±Êå å0µÿ„ +[)fÀqÉx$ ;ÆÎdt)eѯ衚 /è`Ys áÿYðœM ³Ú1™u#„EC±vj{Ì^pãîÔXÒÏûöÊ‹Eâ–Ø Wq³ø÷UUyP­þµ^ÝnTóP×É”«{nóê /¿gäTd1µ†S¡/`° ¸@§È¾.`xÒ°W§ZÍÛ‡gËóŽ Æò ^Kx-À×òpŒo+°€ª8ýøk!yr¡'ªÒîóÎ@Ž(hìT·còñßA%_òw˜ÒV®Ú ÿ•Òê+È6.=Ûİ–&¯·õÏÍ]ô{;ÿ¹Ÿi˜œë˜|tŒô®Ÿ›™$pnýËÿôê$Ð>—mËbà™k{éâƒë5™4›—þoªø†dýÊFÀŸÑøïh\õKhÜiFWËÞŸ®·DˉÎOüþ™x‡ßÀˆEåŸ]#ïSŸŸÄ»ñÅœx¬;€úCØÓç©þŸ’üßÔÿή,ó +€û0À³ª©|…§&NSЬþõïM3.å¿ë,³ÿèrç7½½#ë ÿGˆò?2àÙx#íï\ÄÌã"ÕÿoÑïß\]=ã,z<‹ž@g K÷lz›k€Tý™×ß=  ûææ¨ +ûxøN•Ø÷7›ÌlLMÝÏfG{šËÿ.phúþ¸9¸ÿÅ/ã·n¸Ñ}CÆqqD4ƒ/$ +ÀPÒÇÀ\û}\ö9}HÖØx¸¹ 8<ÌM;Ü„`û Õÿvd>öƒ°}ìGÀ0ÈÅPÄࢬï*ßGñ|zpY€`ÞQ €f¨%€ZøÉþÿp`€gbù|¾^×mý±­ÃDGƒû_Æ´3VÁ2·2CåLù#êô‹ËÌÿt¬½òÓŸÌ…#Ñ«W +ÅÙ«WèscEëj.¾XŃ·?\„©X=¦ò¿Í…ØÙ†Pøö4ܾ]ïº`æì²iÃÀv8k &¡ÃõçDìjçVt¨Ë¹E3”Åfël“_rýØÐâ*å;7¿×JG—¥.ñyƒõÙikŒŒmçküŠqèôêßÂnˆ¡¡—w—e`ÀB…=dÔU|+j±Û­¬f¨r ‡ýyv’ $J†*Ãz¨_Ó'Œ*[ûTÿüc3߬± Š P¿ÄhÈ„;°”}C—x­z›ß8¾A€Óx&PÙìÜôžñnεÍõ÷÷¯þOo[›wÆ;³ÚÑqPxöΉÞs드K9üêÂð»ï.|øá»smYÙÌvö½l½+«IÔžd“p›kð[Úa9 ]ëœÌ&hÿ¡h¶þºëi£Ê×¾íD—¼%DøÎ ò85–OJ§!ˆ‹w3@ˆñß@U‚¾ÓTþAÿ¹g©ú3#Sá¿ZBsGÆ'p¹¸Ï0ÏX«¼8àÇr¶k…UÐÿؼs}ý\/D', œ„úÿ´?ý›_Œ²ˆB Ÿòömð}É#´ÿ +´° ‚ÀýAŒÛÕ&`;ûÜ¥êßì‡ àb¿§뀘u„<‹ AèuD”À~§è»sâìrs >€;ÍpÇZ­öïpP±×ìüšQ×ók:<ümó±¥™9ÓÊYVŽ0@¹œ2‡¢Åù"äþ—ŽEç?¹rä'GíÜØ•+cVñê•è›Ñ¡èWCe-·”Jie+åp$Ìx5ëþÛÌÔ øƒ=©B¸T¶Šˆ"°Q eßvûy—áyàÏ::ìÐ7”ÆŸCíy­N/Õ«8âVÙÞV—Há‘[’ú¦³¾+«òH]— w`†ªQÍóŠ]•¹ú._Ô¾æ½g—Þ2À Øi€` ˜$„~é¼ ŽiýtÖŒé€lÈÃÛ ÿæ Ë€€*ìaÄ ÅQþ?MÎÒ?ºÊ$@Ç¢¢Š +à‰5§©ípùu¨d7¸üWœWòÌÿóŽÅ3Vçf[Û?oz±ÐÖÖ³³cÕÛæ]]=wîGwZû§³gá—FÒêÌL_ÇÌ¿úrØçñ .|øÿdç²mž6ôÿÙ5>ø xÔpM\Qéþžä>-À›• õò‰ù‰ÃvTÓªª?ëØczÓí'ñNP¯»Bo1ýW~X'çÄòN§}ÝñÌ`‹Ýl@@Ô#×ׇX ¹pJ&³YœPË"ÿRà°rËÿ÷sê{Jœ=ñ`ù7Ô²>¸sýÜõsX\ŸÄüŸÎÔÖò@ú5 Ýù¯D/F:C‘,µÀLüWÏø‘‰ç¡g 3›öoΰ0ÀFÏ §žs>´Ü¾áóɃ¿ÌfyZ@ ›ÝÜmÿ?ÃPN羈ñW·š°ÿ*0”& €á¿/©L$ˆ÷Dz0\Pk€®³•„dà›7Û}Ã7ûy0 KàPÊ(tÄÃ!ØÀ±@Z!€Ó Fz×{a©Ì6@ÂHÈ㸠ZÍ,€ ³óz]Ÿx¬¯ék)³œBùñoæ¬bÑ,Âs¾8{éÊ[ÓÅèU:Gg£W?-šå1ºQ,ËGǬ+óˆæÑÝk‡ÇÍ-0 ¼À«(Æ ”ÿ?ì3[+°}C¯%2ëu·êÏ«>¬èRÁù_ð_3ÂZ®÷躪ê6§±UVûk%G™ßklç"Gñ¥äVw–Ø#–‹Uƒÿ1NÛb– ?z|àð<Óbxõð*`^å 7²ÌÝ«oÔ¹¨n—œ^O°€Ãxÿ¶=°,1²-°þ×ZX¸Pa™$&%vó ä(—@¼Üî2Öÿ ³í`M]/©LWýOpÀÕ&¯@°Påúÿì‹=:½ÞÍ,¶š;ûÛ:::g:Î}ÖZÿ wzG:f`”>sn0ù«áá‹Ï» ÿøjç\[€øo^:€xÌ– gaBà’s@ €ü_´# + ,jê;û€‰² [€0»Y©ü`ONï)(äú¨ïíNwâÔ‡öÁ 7‚C##C½×{‡˜ÿö¥ËuFÒSlÇÛáôücÍÆÙß]EÿïÔ•`ß ~ øG]©­œ¥Fu„5Xë½×ÏQñ™™œ<•&N¿‘î†ýO Ïÿ<€º¡Å@(pÑÀ*üEeŒžùшÔ²Y™x_g`Šj=ªÿî`·ço‚¿å@*É 2à¡…¶Hv_2¸ßý÷´,ðG?¾#‚0€x÷iDDÐüÇãÌûû¨í÷ù|l Tïeç`Ø]ÿ_`à×|Gót—Ó€Úƒí70ÜÞ>Øþ©dð Ôä€ ‚ q„ ÿ‡óóM`äÔú9°>ËË4€êup:ëðïTl}ímÛÈÛ'b[HòÓ¶råbŽê~´\Œ øÿØ{ÿжî|[4V­gÞAõ‹tu¥+#‰°·ÌØ©¡Ç–Æ¶ØÆ„TyºÂ8ÂŒ-Æœ£AJF5ζ¹rÆ÷FÂpÂK:'ʆ¾?ÆP‡Ü„ÁFƒƒÞ^Æ…ó8LZbÁáTÓR,5NÃã}Öç»%ËNÚ¦9I'9é–,+ŠȲ¥µ>ŸÏú¬%­$$õl‹$ÞŸ•fC15´pWÊåfc¹˜¦*ó¹C1uVË% +¹\67(/Ìx )„XŒ-ù (Vž{ÔhÖsÏãâúJ8ÅÎ|Ra3ý-þƒÊl…™øa˜Öñ<•NÕ¬mÒ¥Æ×ˆƒ»úk¸þŠÎ‚<†ÿ”Ø›KóÖÛ6kµ\~P|2¥þ}èm–Œ ¥¢Gâ¡ïV‘KeÞëGîÙ?gî>Øæ&¶„ €)@5ŒaB8ÝËÖHÜÿàr‰7äÚ\ æ¢&6Ò>ÓUÈþƒJqG%\»+Õ4áÿÖøx +1oRØ&lôÖeƒ y*oÌ-ƒÖÌzÓêêÀˆöþéOm«èLw»,«Íævøã)Çåÿ:ÞøgúÐÿB>“+õ¿›½=À†ÕI OD€rú3± ã:ëT©ˆøÆRm !ü¯7,_#Üy⮣ý\üù° ~„aº8þWwœäŠy0•ÿz ,¼6*Æÿ£ûžÕÄ\»<hTž]͈޿8SùO§U®×é€Ýÿ£Än|Øþ?Ó…Ù†ÅrÆm1sSlä¶[Œ™L¦»‹˜¯aÎa°Ùy&y¸Ñ.Fû$€LƺNÃ&³)ŸoÇ`r28²×0x4Pß œ<|xÇ~•£®ña€ŽÆÀ„Ö¿É)€M¼0l¾ã×[þ¼þ÷~Mü?¬¿ŸÁÀŒÿÚ¦:€k¦žaÌD*€“ç=÷ÜOÿ§ìì†| K]oýÂÏë'N\ÄkŸ: ¶÷k]5UGùelüû @ª°ü OJ.œ<ž¬W»—Ðrý{¥H$”RåHhHJú·.œ•uaAÂÔ_’I¹¡ŸÁ(—Pcªæ-Ì{µÄü¼ìh®Â|Ö#§²¼ÈñBxH«©Ò÷ô ¤^ SE…_ ˆ"zÒß#¦ñ•ª¾êÇ +uHèõ~ÿ6úßú˜vßkÇvI÷ÐÓxKÂPÿ m!ê W´fBX¹ÿ w„fw_'`—ÌðVX÷,ÖY€ÌßW+¬\ä†>K<.†ï˜üWþÐÜN迳³q¥9@ïôÅÿFÀáý"ÀöŸû6€ïMDSý$À>wmÿ¯¯ÏÀ€;ÃØÐÝÿYÿO—ï×q_¼þˆ üñ0`6ÀX4oÒW`ià:†g°}pó + ìî9ž ù7?Ä@$€Ø¬˜;=¼àr•]/M àÏrt1U+,/Gä‡%É)‰D±Èø]P *¼ùÎ&CÑIÕf/-„îJw‰ +ijrö†¤iZB‹ÑÛhÜÁ›e @!%?”EJ¬K—â=ãÀ7•²ðð+¦1x(—¿Ã·ŠÿeVüo’¶R"a—ë}¾»òÛ5ˆgw?°öú!Qd[{>Wvp¯ÿ£Æ ðÆå\ZˆjÍ…Ò×Væ‰ü%‹plø«¼ÿŠÿñÌêxá4áîU™ÂVSŒÈã¼.Fß¶Ê3‡Ýoð€)VÓâfŽU4¦{SBÐh>#ö„gbmb_rIg@µêŸMÃ[g¼ýu€æææ|Q€œm:±fN¯¯7 ¬½³t²AXZZF`ÆéøôÜð°ÃtÙ?ók4ÿq[Þò¢>—À`oò_ÚS°ú ”¨$§èïá…øoët ¾A/ùgÞìåÿÑþ.aà €':°ØÉÀ<Ð=êŒÿ£ ©Q¡Wm0ä@•пê*7îTž¡lL4VÙà/„YïÂàÄ¿`ù¯ÿèéþ.ßÑ.„Áç¶Ë×ewûŽØvÃ6þ T» sÇ‘üCÀmŸ›ë +l–Àm zyŒ&‚;è0âïkl´wLµ•<®Ñ‡Í}W`Ø>ÙÞ|Û¶±ÓÞ˜Èoû²˜|b¹ÍYÀ¾Zà±cÿ;8ÀÄœE  ƒUþBë?̸/Zþ=# ´ff®Áð1Žÿ1›ôp}Ží€¬vÄÀ97EŒ‡Ðßí†)TW—øÝƒ ¸Sô|Ä€\ÆmüÇ.zηžO=TF²Ë÷"¹Ü|d^Id³Šš•Ôœªå’ZvVS’!é¬$%CŠ2{(¹ I1XkÚÐzHÊa 0§Îgz—-hY9‹u|^[B÷ßÅ*ÀÄžÝZ) +¯Eõ bOãp!.Œ‡A8*ßá; +§?ݱWÈç¹\¯öÕ:æWuÌïõBÏMg_BÞ_)WËvu{à†Ï †BŽw„¿ôµå¿¬žÂõ‘Ø[„÷¡0Ŷˆ+àýÅÂÂß-’«ðF*¨IYñ°Å» [Ü·ßs(m—Ò[%½ëQƒ¼÷Íù{÷VÑÓ —â•þ³–à•Hßa|@x”Ëå¯!qÛ„`Æi«@MKKK'äëK^ºa`µÃz;–<öŸ{ŒÓÓðûÿc‚FËtfÚòâ>™«¥½@£ +°F8RA, þ€ô_wô¾{héCýï;‚=0´ÿOÓ‰%€Cœ@ðßy!rñâ' øï-Ô—ÿJ €©>€€ÿJŵþŸ!T´uú¯^XEÉzý/ÿv½cðúõAà¿“ Â4ßq"]ö#H?ì²#j_lÌÙÜÜo:õèÌùS{3²òÜؘÀb€ý#€Éöî?˜âúJ>]Á¤>îèæ=ÀÃù@>Èkƒ‡k!€á_ücç“Ñ øóÈ1B˜ÜBúïdk 4Ý!2Ð'l€ ÿ@:>ÚC~ј1;8!Ðï€  ùZ~ó0j–ôsÂñÈàœâ »ß‘3 KNþë€ÄÞ@¯ÞëÖNûÀ_o輀˭­+rxe,›]Žh‘,ayAË­dCÙœÚ9«eCC…I%¥³7T8ÿ,,̆$iá]×9m~þ­¢Æb‰œšõ&´,]ädW!Kô¹ §8^¨´í*–+º/ß3z`=…ñåeÏx8OQeº*©È:>B™‚ðG 篺[ÙÕñ!ØÛúLÄØ ÔoD|=øGà<|¡CeºÂ׫eú:H +ÚÅà=ÄÇ6’†úЗpS©ow«"^@Ä Ôþ«"ˆO(+‹b;̲¥*»/¢ç ×mJøî»× ÿ¡ÿïïåÿÜœAÀî&øŸ³[朆)¾©9ØáLÍï Zƒss†¾¹)“Án ØPÿçƒ €ýÞè6ù‡E6ŸÿñÇŒS7œ»Ûƒ·›ƒ:c8ü ;¯_?<í~Ê~ßÕ#W;rì‚Øâ} Ð)@Ÿéΰƒ ùMÂp¸ÁzD¿ˆ2 ôÇÀï@ Ì€ è@ –‡pB˜²/"–”Ì.@ý§õÀêê…½ÀW2žFõ„§ò««(.¶þ§h¡ jËžHdq>+ÍSý¯årI9Ò’S¥yIÍIª$Io½u‰~^»´ …B±ÙYuHcŸ`9‹ôžP.!i®\bå¿,ß…ÔvJ,ÀÊF'Ïhð Ï8áÿ8_Â"Gf†ã„þ…4o᧞ðJ[<¬Þ®£¥¤'ëôÄ£¼'ˆܳ¿,Þ |§Ÿ}—ØÁ.”ˆø­S +¼àcñ¾”NKo¢üe¹FB8o°ª«ýéVáÇKÀß[[ÅghFêϪ%áч@x›­¸7QýÆA +ѰßÒyïAüŽ»÷UTòãÜ~H‹-€´~ÌM¸ oD,%è{ÿé­×x”ùƒ, ¬>–r +ÐÄs€fÛ ¬ÍþË'?nÉÛ{rimµÃÚ?m1¦ly[>Ðl„o°Ñºnµf¬ÖÓVëô ýl.ï1€Æ%ÀF3bv?ôþ¿ùAô8 +íßÑ#G¾yôèHÿ‰ýo…ÀлC¨ÿ.Dö²zÿ_ÏÿÑaÿ ÊgOPÝŸü–PÑqau•ëÿÁÁëBÿw¢ÿç€ °k„pgì„ý9ŸÝ0Gïœ(„§èÂn™€éÏqÝl!\¤'¡Þ8±¡€Idühlžlï&tF1îôû ŽÍþ¼1ϑؤ'ÒNƒ +ððcd€í‡_?¼C$àêícWݾ#î7ÙÈÉ‹€nÝ ÈAgäs ßq ÀT7ÿá¥@Æÿá÷ý{6~ñföÓÙqíúþf³Ølp˜L&3¯Îzà@?,ç!»íÐÒaaÿ§é£Ü8qb°Ch.Ô:^h˜>c ÀcL^‰,ok]~¸¨dµ{ž{š–XÑÔˆš‹hj,«*CjN Í+Òzna¡EŠI WîfË쬚 …´œ¢ET*üsÚšPïªÞHNSç©ü˜ÍÞÀìr‰½áÉÇoÕgòÀþ¿¨àácÈbÄMüÃém¨ÿ¿;(¥·î˜Pˆ™½(·«,­/×PŸàÿWùOñWB_£²[ïè‰Bé'IK,Å8a»*T}d^dO„ƒ"¯;bðå—õ½úª°JAÓ÷ÿtÄev+ÕoìÇÜá@ÜH±yÞØb5gÙ[º÷¯Èü Ãæhû·„12›#³Þ‘ ^_ûO{ÄcŒû$ €ÓÌ´Êéþ1ÑÌ5Œ [qçë«K8Šû €wiim`ðôt׿ÐÒ+_ µ£Ñz¦ƒVëã“^(P©IERuC€š-@šêÿR:õÄÛƒØ64 xÂ~ßYëÿ`Ïí:ëÀ‘‹m(þ—ôt$¡þ‡¾’g©ƒb ÐUb Wõ@àÙ1¨TýËàjÇà»×©üï§ó4×ÿ]G}"Šÿ®#öã¾3ªÿÝö9B@»30Ån8†©ãÿÿw0h dì LPÐ-Á #¯‚ìK®¥eâ&˜î¾Oõ6âz›óÁøåÌÆ,7Èì4®ÔHÀÁE"V·ÛwÌGç#î#Ècècn8y àôÿÿº vÿqůÛ3ø4óÑžÀ<ƒ@@|ýþMìLáŒó7 v÷Ô\àø‹ ðÂÉÓ×O Xí\åK´}x7V–Ge!p¬ÿ_ :Z[“­cm‘N¹È|vH•4/Ò}µ˜L >›K¼•Õn¨³¡äˆR$Å•½Ñr³E +…B+Z"››MfUIº‘KhCÙl.;Š(d¤da1ÜH—é¹Rú®=€‹  +ð€¬ é +dnbÉŽª\|+Wñ»çš¤ÄÜ;Å+sz圬0æWj)ÑÿÎÀ”r™Á·6(ñ8àÉ>ó2wyG¡*Îbg±Ä€G²?%2yeÖÕ±@´é9*€E UâH»ßüíx# Êø/T,Ö¯Ù÷VK["2yK€ÿg"!¼¥ÇÕmés-溙…¶Æ_Ûâ ‹Ú®[±”Ú}äO£¹kªyª[€Â €¥|0X[ÚWÿ½_y{Y°6m·X-¶8Ï òœlœ>ͺÁÁþ ]Aþ³X ©{&³×„X#©þ€ïOð,F €]`éÝtàâĉ¡Á!€ûê‚Qþ7$¦FS,ÿ}t··žàjÀÿÊ3Ÿ__½þ—A:]¿~¢ÿúõ~, ÀÕ¿èœ9Š-÷3vßàŸÞSsv„Ï9a 0ØDaÜc·lÜÈóÁ øR%¿1Ùþè±ÑÞw¼Î 1ßg6‚ù+¦`P›ÿ`l¨ÿ×Åû%€üö‰›€ÿ*¡¿" ! &vàý?“‰ÁØï¨ D€PøÿªÀa1 €2{†± †,äú™é<5Eè?ÌÙÅf„ï ¼ûoÿß üg À@­ ·žxÿ_-'@:–Ïk*‹ZD‹xîi‘Ü)%–Õ´%7;”HæÔPVmIJ!iH]ÐZbrj^ýZZbpÖT%‘\hI†ÔÜ|N›ÏÊ¥‚’ƒ!/2ùR•p +Ì…{Ö¿“ƒ§4â$BJ¨r\FéOu*wzOgÀLªò¾*Õ'ÎhD¼”X—•IŒøwŸÃNH¹¸«k*BPPú. Q¬Üƒ€“¡^€QŠ §{yÀËúz]ѦGã=ųÝʃÝocc_âý*ÅÆ…aÞØ«‘b+ÓÒxWŠ]zyp‹mjS:þT}éŠ?Ý\ ½¥¯@è aevþ³ñü?o9žÇ+™Ívœ ÀÀ¾ú¿LØïõz—ÖšÖWצ ØŒãÓò6 ¤ƒÓÓH:`ü¢G:MúÜŸä¨v\õxãhì (àÐ!¬þˆ4„Þ½þšjB8- +ð=€ÿª{VÀõÓ³¾ÿ×;Wáÿß‚@ÿõÓ¼€O|_—ý •þSgŒÞ·}Ê95‡šß07u€n#”q&[ÀDO#l&ý'Ä`cã1`ƒ +þa3°Éä7™ýŽ@&c € ~'Ï´·E ñõöF@û…¢€5À#Çê6ÀNÿk>@Ã\þsõïۀ·Ô&±)±l¸6| ~À€ú"Üp‚äô íអ«ûÔœÍn9`ñY°Ê#€Ó×Ot +*}éS-ºe/Oð3!Å_´FWΫž{Þ{5‘¸—ФYe(Q¤Ø¼¦†r³jváP¨Âÿ…СøåîÆnü³ª9PÕ¡Ü|V‹å´˜ì’5 mY~/@ö`#@8óó%•£X xÂ{¦Ìgï)ªB4Cõ–SÊrÛxÞ‚hW8¿°ìÇ ÌÀ;?ÀTqå»?TäêKtbâ_Ù}~rÐ/«B'Xæ‰ÀwûÜå/yY žóә弈Ÿ +‹}‚jùp¥T îcÂT•í¾ýÇc®!bŒð¹Dxz¦—«DxU’^8¹#¢êÓz|ð°¯ü—S¼‹À«Ø/ é4÷.ĉÀzƺdk¶Æmù8ÓªÄê upÕú<£ËU14`OøÙ÷f£ñòÏ.vžxãþ‘þ¡þ7Øÿ÷70ü¯ "þ—Ý‘y#\·ÿa÷RùQ䯰O(6Ÿ9ü·hÿú¯¿Að F8íb#Âÿ3€|l»ùìð¿·àL ‡·áì·8÷oÊÐã虚 +X,˜ŸÑ A–îÀÜgã𣀠Èp˜ÌÃN³807]ŠÐàÒ€‚‡÷¦{q€;¯ÝWyÃMàØ§ÉäæÞ?Îê3aüoºC¸ÏÀÏ ¬¾ï×÷?¿pýKü›þk8üL &“C€¹!tóú_€¡ àÈñ3]8úûÿ¡ÿĉAÖv¬®®&0à@¯7¬ï¾DðÿŒÀJ4U"J$Q”{š–%p/1+©ZªU›JÞj‰I1UM.ÄfÊfDì`6–£Ps u¨ §d­EKäx+À”k;Lm¥ÄnG¨owS ì:À¹.t¬Æd`.ó‹<Ý41Ü€ +¦ÁÇ &ãf3Öñ©Âv›ýþ+“Á?èªú¯ÛÛ»?iß§Ø· °wýûUûUb¾c>·ûÐÀïø³ Œïð Õüï‹j9À~½и òfüáCüfÿæpßo6à €…XŽ“¥¦A6â·Žþoœ@ `µs5Ác€ý7ÿDº +pÿÀ«5(£—ZÇV4×ÊP.«h 9çU&+!Í›Õ$5¡i!Eón†TihvX@h6¤i‘콈·ÒîE´ÇE”Ù» m^.`~À‰<)9U®¤üÓSæAoB øí/l´¨¤H+š¢h­JI‘<ËË‘ÅEåüؘ‡;ÿ©:à-Cž«—uÅAõ)±»$DúEû¯÷En<Ýç~Yß),2Ý)?`·A6áç‚_°€­¤‚œÑðXß’?õûÕê¶ðF؃€tx\$#ð€áÛ¾D¥*؃¾Ì®K…Æ’(Èî×=61˜0f&¾øâ 64¥·Ì´uu x½^®ÿ×ÖÞYZz§)c±f63Öð¹lþgìÂàôê×Þ½ŽK@$ªÔ¸(XÓâÿ'§ÆmÊ»'8ùwèú‘šð·f€ˆðr€.ù?1önXÐÏõùÿsù þGëº_ÿ÷û¦QΊ ŸÅÞE¸o?Bð?å6@ÿÛ=gƒÀ0uÆb Nf&¦00LA0aœÐÓ€ƒ°ØØn|òè `2‡u·Él2[&ÛñÉ òííŸL>¼üíûTíõ‹Ã¯g|W} ÿÇÜN–8Eñ¯DX¨Oþ!ûׇÿ¼pMøk–@¸†˜Ã× W`Ñ@°'r€ †€Ýf?^ƒ˜%è €þÓ§±¸Ê-tÚ–zÛxà3ù3át@ðª€ä¥èbdQÍ*cJÖ+gsR"¦Éª–õjRH;¥©RL’囄ÿÉ–Y)Sï.„¸QÓæ³Z¤mYSb³7b§T-’ËFrZV.¤ —EÎbŵ]`ü/ëÌ[»ùÖìPtvDR†$E[Œ(ç²aIódÃÈ(Æ "gHJ­@¬W©?-‹åÊS;p)KLâ +ãgHžúà4y¦,µyþnI„0•öRû`¬ÛìVÙ·'ͱ…µêûÉþÚ…?—þãaæ0AÉô_Û5—ÃR‰­xZZD0€“-üEȰ˜iW™ƒ|ý÷´ä-¶©©æ‰ææLw·±‰„ç™ÓƒMº °«ôÕ•ÿTÿÓññZÓÚZw¦¹»¹™H€nP“|Ý7Yíè¼øBQ€²Ø-‰ÄDÖþPÿ§'q¤³³cèíëCt1xâ],€.Ö;„å^ÿÁ Ðýƒÿ¢ À€r­þN÷ÿ_0øçþ¿XÿÃ蟦-ðÿ=î³»1pÎÍÍ9ív'‘€)Ä9úÇ'‚™`ÐÈ%²Á‡p€ ¼oÿÇt6ÚwâfÇeôÜýŸ›&“er£½ù}ù/0&ЮwÿëjÀý>@º Óo÷á€@$¢`¸:Lÿ}Ã3œ,tÿ̇p4×ÀÜüëœL˜*é‹»ßü½mÇ1øb³9ؽn §­?K€.WiTÆþá?aÿ;MëĬ– À¶òôƒƒ™¯+ÿè¥ázÿ‰7^,àÚ”R©ÔÿßíH]ümÇ»o¸þîЉ7Þêx»!€‰Î ù€0 EþŸ€!ØæµO Zû€ÏíþÿËi´ú»>ìºÞåû°ÿî#>v¶é¢K;çPç€gSsLÁyp +K )ƒÍÂAFaèߘܘ<ü`óeGïóÇÿ`Ž[°Xs +Úò;ð +hÔ0¿ñŠ0 ü˜Àÿ*¢ÜÎ#nÞ|›ì èY@}uÉÿŒhú 7€Á¸õÿÑŒ®d ßÏI¦$âŠÁä49`ˆ€p²¹-v]ÿgéXœÆqÂÚQ—üi€ð_wF¿ç±"€W‹Wˆ I®e…jø„–Íåb꼺+gaøj9+Ýh ÉÚObêÈ Z€SêJHRUâ M»‡ (õ‡åVe¹¥:½$§\•”+…‹óDïLW~ýc¬©-?‘”›³‰åˆ"-„¢QEQVÆ$5Üó<ô,ˆ¬Û%¼Z +á_ +yî¨?==Ç$û…ÿýﻃåûn¥ó,¡¬#Vëæ<¬sFÚ.Ç ”¶Ež/쪼 ð¤?ïýj©æì2Ì'Ý÷ÿt{Àtø3¡Ø,‰$öû|AÿßöýˆÎ[@ò¶ *ç¿hîîÎOX,ëÀZ/»Ó3W•¿òz×–>þ¸Éºþq·um½;“Ïó¶L&žç=€é áÓãkü¥^Ø® ž8ýÆ/Ô F˜üéßñðP¹ßàßë<üêê@Qþ·µõ¶ñþŸ··¦ÿû,õuÕ?*3ÔÿÜx®õ?ÿún¿~LûPÿ±øŽN#ý¯ËÞe Й#v÷œeÎÚß`sö¦ÜlÐcû‡À|<Žì Kp‚­èæ ®íÛßظ7q½í¸b Çó;$ü‚vz¬­ÿtÜ¿ðñ‡zàˆó˜Û¤Çðõ?Çšúîè}ÿ÷gj€Ú6 ¿ÞýŸAèlâfH6˜0¸‘LÇT»Ín±ðô‡hܺ5}tšÀõÁÁÁux­^h#ÐF ì€Ñýk¯b ¨DçǤBDÊÉ9’ŸWγ³-Þ”*Ý rvá¬Ò*Í¿µþKwÕÜ)ªÊÕ4´rJцÎþkX ü@Íf½µlA@4á˜à¿ä*ù]•о ˆ¦@êkø3ü†£—~2äñ<S)™T%IQÔe%q^UÆ"ž{Dä½îItÿ…Ï@…s”¿‘`| ¶V^šW¹rý=¤wbð€—éH  &×x\ª<@nŠðïDw¾çéZXørª!Ã<Ô¼Ý'’Ŭ_O€I +póÿIF,¶ãXã›8ÎÃBó/š§ØX;éõz駤'n‰ðŸëÿ×»qÊt €P o³vÛŒFÞ\]mzÜ ]ö¶ýiø½uÿý–ç7[©1h%~ôïüÀ ƒÞÿÇ`çÅ‹ú +á¿×[3â—“QþåGÑ_Çá°+Œ€žïýgð÷MØåó}x”ÕîóY|°·ñè|Sv8Þ‡÷wÀç¸Þwv"“ÝÆ)"=St¦çO^ôÿE`r#¸±±sÐ x²}#`Šór¾ÃûÁv=3ˆ/-Bü .þoø·èÀ +èpã¿ûØ1ço +vvÜ @_Ÿèýsí/ºl PÓú™‰ÌøÅ¨ÿÌf\7›Mf3¬€MfÞäÖ?«@ƒìx€Sõ/°Ÿ8À­.†ÿ8}ÚÊ‹M°­íO<yðˆðËSÿ?;P¼·|¾Ud©tÏzs9äûÅæµ–®ÒÐBKLeïÿæ’¥›7Bê;ƆԻtNÀ*ÄîÍgµ¡\!âņx%\Ðÿ.½o†k%ð‚¯ Ò”³­êyiavÑsv6J_S‰jcª:¦¬¨8-æ–z +žeO¡ +×E,(Ut»>úˆÃ§:v_¢_}ÓQ˜–«%ªËb' LøÁÞ€{ëT¤Ëhû#$ÓùR0øŽ~†Õjª”(vútBØ3YX)¥ÒbBÆíüÿ[o" +àó™üÃf]¸yÍo¦²Ÿ^“`ÀÉ?=:,8Ž@mgòÊÿ[P¢ü‡È…ÕÕz$pXìóxYBž9(*-­ª–Uró2"‰¨Ò¼Ör3[ξuHUCª[Àü?R’ç³¹Ø?߸A| ¦ê‡”¼+ÅàÍ©¾G`ù^ÁU*¤˜;ý„ÿ)Õ®4ú<¿oÌ6‰D£­#+Ñd2ªDcRò-õl‹$Ec¡s—¤¨*E#°"°<¶¼<' ªm 隀÷¡Ýgc›ïb(äV»ÕòËûRWÖ§Uá*@?V…p‰C<èÈiÑø,ÍÎ@ÕÔ–~[$ÀãçUèþu ’?]æG@¿¥_åØ} Mñwû&ñfÃúwe`ÿc4f¬ë?]›'ü'@ÿOOZר¼ÿßõîAôÿ'©ÔÉÀźþñÚO×~ú1¡ÿÚÒIïW££>sT–{—ÚVW¯÷O×\Öpñýb9úñ(Êg…§­íÂF~1ÿ§úÿ×ÿmlXè {õ Ò£ö?è\ÖÅÿ5èÇ ŠãïãµâCôÿ}Œ¥>»É¿ Àÿ.vþÃU,Šº¿Çi‡/ŽÓi·äÁÉOŒâSâÏÞÜÀ"ÀÆÆÎÆÖ7î´Oš„ ß|Åü¹ÅrX`?[·ONëa@‡"¿¸Žû|ìÈUlbì6õÝ¡³ƒªÿ>Þ ëÕ¾.ô×Ý® ó_К7gÐú'àïáêŸ.hpð ÞSn"{õ?5 `×ô­[Ó<8=È#¬\¸0Ðö'áè•GSÿ]/ã +À³%ÅV%*É®•\ÖÑÚ©œŠM€–›r)w³eˆðVÍÆ†B³„îYžWgC³ÿ¹å-‡Zn¨ä¹l$ë½Ée½…1 VÀ% *ºr–à°ÏŠ€r*+©0ýÿþ«Q)•ÎFGf¥•˜tiVYIÉÙÖÙ…Yþ¤$I‹‘±ójd±­@$€­þ·k›€¼ +€ßÄðOÖ`Ï•Ê.Ñö°{© >ÀÏÁ?e¸–Øx\°^ ”D¿ ÎMÆPùÎÄ¡„µRŸŽ *±Ç°žt\³(*•ÒÛWúÇð “¡b~ ‰Ðõ ÿK£Þ¥µõÁunú»3A´;ÁnëúêÚ;K'O¾ƒÇ±¿g íoIæÀêàé~¬WYø|Æ×ÿ"E#}ú(ZúÔFˆß9Й¸À@ ±Øæa ªÿ +0fý?ªÿÑÒãÅ8Uõù?޾Ÿú-Bÿ®«–«„ÿGìn·Û~u5ÝñºÝ2Ç0Ï{ðœúëÏ'„þqM!0 +h‚;“;““‰ÚØùäJÜl6¡2›ýWtÓá~`ÜÑÕõ€zàžP¿¶îsi9‚€Ó„)€ ö¿¦Ë¼Hœè3l†Ptþuôg2 €Yà0³ +²?äù7¹@wT˜ÓÚnHS»^ÿ[j[„þ·¦OŸ®€ŽAbD [áÑÚ `Oørý?KP‹ªY—"y嬚Óª¦J±ìPË!ÙùÉφ†N©êÒfoÆ´ÇýÌçräæ©äÇ$­ g% )¹ì ̬¹ +§ÊbP˜h”+%î0þ6‰o^XTFZ£TÿŸ—’`±…õçoÅÔó‰Å‘dòR(šT[Õªÿ•1e¹ày(#(-¤ˆþ)±KÙ + ü¨‰üY¡,;_îA¸Ïö¤ÒÿK=‰›Õ²z±'§èe~èp +ëO•§i|!†HTùÛiÀý}†ªÇµøwŸÊÅ®yJwò±Ùò· å[gõÿW:þ³Àåõ¾Cøoµ"¶<1fº»›Ö„âŸÍ>:j=ºY–½¼>ÝÅe7WA^¨ßéã»3/áKÕ_áH1ä_¸p!ÑYÃÿ‹bàÀ2@ +€îþqçs€ª0vé="ßÓÝgí?1˱«·8|.þ‘€ºwÎíd`rô˜ðÞÖE `£ÛŸŠ÷løT~Â2Á[ÀÿàÎÆÎΣ€ný$7_æü¼?06þïá`~Ïîÿ‘ Àý;‡_úÎøìÇÜîc°èã'ñ`ØÁc×üÃõU@‘$Œ„úŸÏfv0û¯}Ž)€YØ`+ÀbN°7`½Ðe©­tAxk v4­Bü÷x½a/ýæ÷w^¶?ñgJŠ’)Ȫ&ËbÚ1€S9åPK¹<ôÿ-¨ê©\ @ê,J‚í~ÎË…ì|!m>§å"ê½lŒ PÚfŒ'L.¥ÄàOõ?œ|¶Ó$•Èb²õíÖäßH#Qé,}›Ð%I]ˆª?›•08«HŠÖšŒž(Ë‹žBaÙ“*Ô¼K"fˆ7©~O ò·-ˆi9, K0Õ‡ ‘Rù?BÅÅFrÛåêö.§”€È¥ôÓÒCNÉ(ÛõvÁw9îÓ§TïW·«ÕÝçòS쇕éñ<÷¨ªgÉ;ê•‹50úü¡úÏЙê,rbðɯ¾Õ¿` 9ÿ.ÔÿôÞÞÎ_þ§;n†zaÅ\õ¸ÅþBý.¿î—‚W+ˆ ]Åޝ;*á¶‹m ¦ëøß¦wzõ޳lˆq?TË *rÅå÷Ÿý¶ýöm·›®p Ànw® ¹9ìþ 0MþM¦æ|žê|t¦ q›ÁŽ0à‰s e³šË#eSYäûh*Ëüs7V,Çþ¾%R4xÄ4õî»Ò 57_Úl–è‚:«ÄrJ.—ˆä²€ÿ¬n½Ä ®b©Òz‰ P,oSZIÆÅ ˜’”Æ¢Òb2m=•’’•Ô䂲p)&¨#IuLU£ç”•³ª¤,+ÊØòrÁS@2 öÊRÛ)WUz°'ø†ßdYØç ×ßje·T-–Šè @|`÷¥}Éã&+¾Ü­VS»pïãß)^Æç9ÛËäC6!¼yª»åOó Ÿ—G=Êÿ@s€ðßfãu÷€÷ÕõuX»zùÄÇ® ¶ 3mxt5¹ Ë¥·ÿË/ÿ?þl°A=d L9ÙJüåøMëøÿø¦©—j½‹‰ BþÈ@›ðèõ´×,ö·ÿ]õ7ŒÿkÛÿÜùÀïñîúß¾xÏâö¹ÝÂ}·ïQDÞœDWsnøà°ÞàŒS5lyTû“ÆÀT 'n±YŒØŸà4À Àoúm´ïØâæË¦Ë±WL†?ìûˆÃôŒÚÙ›þïyÔ«ÿö†…€ÃVŸï¦n§èAÀÃÜüF€Þù¯ìïˆ6”¼ +€âÿÚ r¹°‰†Ä5¿Ù¼é‡0€MtâBˆMâ==Ä Œg±Å(šÂèô´ÀÿÓ§­ú €Ý€E"pX®^VüÆ èZÖ"…H¨ ç$À)¤h¹ŸÜ(çò÷³R,§†b°Ò4)v{ÿZ.7¯ I1Uâ\`ºa¾àE0P®T‘Êð¤¯`% ¯°M…á?L(Î"@¯\x»UM.ž'üo¥ú¿U=+©Šš”ú^¡¤*-\ºÔr6yVý¹.F#ËËžBXˆ`z/´…bÏ€gHú¦Ò»œæé?@òªž¾ÂZ€ +®¿ÔýU±øð/V軬KêÇgiP.ñâþÓ¥ŠïhÓÅ_û¥Ó4üë™|3q€©)TPSüWË?‡°@€Ùè«JÊaç[?HémÜÿï"€Þ^½}™­Éÿ¹ @+‹þpÕ¶ÿKõÀïõG¼m¹¸mì·Ý÷ªþMNL ô/ƒ!éŸÝ-êƒÉà…=&'»'ÄŸ È>@è€ ÀãFxü2ÊkûŽÛßß#عm1Þ‹Ø[¬E6z¼ži‘›ï­³e€&X€ÃtÇÌY@tÍ¡[ÿ:Ä.À°£fôþµ3»ÿÎPÕ¿9óGÿý„ÿü—f± `0˜áh69èÇvº€ɇÿoYºþÊ Ÿ­Á°/ÀÞ¥^6Ð ÀKŠÿÏœ#‘±BA¥²ju¾JÅ},›ûI‹·XÖn¶¨pRCš6¤jô¿X̨JN=¥j1m^š¥#9¹Ô{ÏSxèIUäBÁ•N•Ùÿ?ÅðOOªr9íAž/ËP4)ü"=/;Ÿü¹ÔÚ:Ò:ΆT@Ð")#-7ßúy¨U:›^°»Mà_EÁ+Âèõ‘ìêqÁ¤€ÏÛ/y xõ÷ÙM³ ̪€úÞÞðx/ç}&s$ìd0€ÝFÿPnž€…×ÿTþ3˜ÎXWºD¨Îξ<êõ6Á ¨»»9ÏN§x¹ƒ÷O÷úúÀÚ’÷¤·X|¤àð¿äõžøå/ÝÇ܆Ë?þ5‚ƒ͆)Ô-0õ"·t +Ãè/ìG_Ñ!@Šð?ÜöíCO üÙ°ÛÿìÈ€’,€)ÝÀ%Òa+5ë}ð¯Ÿ*ß7Ùºm§êßpû®¼`¡?”þ>»kï§Ám"N0˜ &üóŠÁ×byú{lÈÎד€°ÀÆcœ7šã—ã~óeÓëÆ?øã>"o >¼7¨‡îÖþ‘±øØ¼ýÿZ ÉÔ7ü{f‚°°žÄ~¿®œ¹†úŸ?×ôÍÂþÓfOÉ@DÀŒ,,  +@?nÀ‚èO1˜æÀéÓ½þ?¡kVá0 ¬€yBØ | ŸÏœ³ÒÊh6©¸åûü©RÖ{óïÔrqô?ß$R ÞUqû©•˜$À4í®*© >6—Íådùò²)y¹à*{ ²¡gl +òü’«ìª„zÆõ'S!*I¤FÕd4z®Uúy«tN:/-DÕUQ19w¨¥U•.µ$£’"µFWÎkÄ +ãã…TZD²€7 #À¯Qô£þOÁ¹~7\™´©RºwzP§§¯U9ä6ý2×VÐTùA¨èKyå2Ûˆ9€G7Æþ3>Ì^”úÕ¾AfXc2Âh°iiiÉ{_à¿ì%ø_zçîL&?Ñlžè66ƒØzBÿu`íïÒÉûè¯ÏÍÑý‡{ðÒ’óر>H•L¿þ1Z†8^G¦^è€K˜È^ae'ÒL^¹@¹”÷\„œï[GP¥Þ^$ÿèa?×ÿa]’­ÿuô¯íþ»xæ_uÕ{Õïj±öï¶û6Ðßôªj*ú-"ô.à }& ã0pò"À@`Êb n`(VëLl +c€Ç46hÄM}]f<ÜŸ˜Ïêø¯—ýí<€öˆ€Ñç³ó¹ßs ÏiÂl‚ÀŸpÿ¶†M< +0¡öŸq0þ‹0@¿ØüˆVÿ?ú|æsîþC +ðG³™Þ6›=æžxOOÜa6ôQùÀ\û¸í›Ý&ð@âÓº `} ÷mK4¾¬K5Ïž5¯+¢%³²“ÿS`1M“¥¿Ÿ¥WÞº¡jÚ©fö§ûsóÄRL +…þ9¦e= Í[¸§ä䇑l©° %`¡4>©ü¯ʸ°ÿ7^u  Ü|$ªÊФ¬D[ÕäÙÖŸK­É³Òˆ`E‰µ†bÑä¡–óJhá,Ýþvô¬šl(ç=Ë‹„S/ 7ÀŠžÐYÖ}+ÿ*AûV*¼õ%[פ¶ÒŸ¥SÅþÁñµðµRIØØm¿Ô¯’ʨ–‹_–RÛÂð€nƒ}0ÅÔgWØÎ¦R/HÀb³5ç›1ùüc0‘7æ1øéÒIŽF÷›êûwÖÖÖÖ­ô +7Ñ=ak›-¨w \_[:)>ô @Û€ˆÃÚÀÒªóÈ1§}ʉ@ 9`04ǧ=¼¸¿S,tÿéÅk‰…̽^n¼Z=€jj˳|Ñó)Úž@@˜¿„Ê ÓQÿ÷zu ÿ{,ÀÅëþ®šè¯Ô`ˆMãïýG½o'ìÔxè£rß°ÐMÜûwøÝ}ƒ“þð?n +ØÄ@И·M僈þ›`AÀˆþÿc\˜\1Ç‘·gv܉ÇMÖ} +v#œ€ö ä¾´ñÝ>âv:ûˆ\÷¹ûû üûx°‘~­û?ã¿£÷†q#ÿ›Yh6Såïß$ð9¤×6=ÄSœ· ø‰8 î)<"p62 óôt×­éÌ­º +ð„õ3l ÏQ!`@±ðªí5”Vm¡PˆIRLÕf‡b¹˜–Hh÷“Uðóÿ|(t*§©1mHû€à~>›…06šÕèz$—•ï­D¼OVNe#ax„S„Ó…T¹L×d*ÑÞB¸^´„V”KŠçRRŠF£#ÉÖs­ÒÙÖ_HÉÖ!I’T:IÒ‚z^m¹ùÖ¬¢¾Õ"]J¶&•Ũâ!ræº0;l 3 ± `c€~•Å~épxœÊû°f;¾›b[ÎÇÛBF.÷ЀOÞË(Pf—ãûì Ì>ITê  —~fÞ(qüOC^€¿~z7×úþ0¡‹ic`|ýŠP¢‰Oè?д¾Ö1¿ Ú¢9ÓýE‚L÷úêO½Þ¯¼åÆÞ¹ÀÿQÙ»´´´6°º¾>`ó9ÝØ£r ÿúÇyss3Q€)•/î/tÉ‹îÝ}*b8ÔEŒëU"åRØãùtìÓ‹cúJß·~† ħ×û6¡þÓËÑM•ö$€.Æwý¹å¿·ðýîÿ5Tú®DñÅÉ +Èÿì‹=oƒ›ÈÔÿ8aˆ`ƒ(€±ŠTÿØAnØ|¬Àw\Æ0ÞÑì0}²_#h¼m¬{7ZµïyÕG¯g®òÖ¢w3XÝáM€ah©ö€Jÿ;ÃÃõ`ž àÿƒ¥?¿óó?"^ý==`†8¼€1èÃ" ¡Çíž³ÛѰ»Œ„ÿþèܪ/ˆ=ÀŽÁŽÕŠ @mP¼dðÿœ@ñܹH$)/ƤY5¦ÜMhZîgª6÷æ‚{ÿœzê”vJ ݈Ý@@.¡¨wgoœÊÊ¥ÂÃĽˆ¢Íç²Dd¸õ hüa¸”Z.•+—±û—Ú 8_”.]’䂪H?O®„ZÏJ&‰ + P Iª*-DWF’‡Z¢¿]::«D¢Z4‰FÏ{<Ë—=l\¥ú?U›þ± X9Øx°[­€¤ÓüqØâл­þYþ{Jã°®ô‹T;¢Û¥—=RÑU °-‡*á`UPŽ JÁ +(Å +@t^- Åò…Íbÿ‰<^¸Œ¶ Aš¨ª—¿¸Ÿ\ZZ…Ûÿzww0?ñE>¦9h`+Ö¾Úïÿ/¦ç££Þ¥ùµµ¦õAkSÞ‡*“yØÿç_7 Í„ÿ{q À޶Ax"âUlI™_P +Sñÿ)¡ÿØÅ‹Ÿ¶a +pñÛ)C/Àɳ¤÷ÿÃ"€#dL¾äÚüŸá¿–ý³×(—¾wý¸¸âæúßä¸Ân€@~"\……ÞÞd +ÔF;;;“˜÷±ö#à = A@íí_3ppÚžcØl6Mèä7ô@þë«€‡Û1šö݆ +ªÿ>Hàx‡wx`³C÷òëâÿ Ž"È÷CHe?‹ÿéŠc³Ç +@ÐoŽsùÏò?‡Þ` Ђp#xÀ-ÞÐ5§OˆDàAL¸pÿ÷ªÿ—Š<PÔ²)uÖ¥†$IÓb9-Ë¡¿¹ù»?‹ÅrÙpêa$‘•³ó¹NiwvãÆ?ÿìT/Áp!«išBçù{ó÷+œ-€ŒËáBª€­¿”LïJá‚ÜØ  iraÿÒÏ[[[FÎ_j EÕèY5“F$u$6{è’´¨.\j -ªgÏ/DÏJË‘±EÞ@]€Š‹;åšË»†€~6Å«¦Â[½ãaOzIvÂý­-ÏV)½åá’+U‹µñu¥5fø’¶Ø˜Èšüâ-Uvë )nsÈiPžÿó  úW¥†ƒ1³i#æ ]µÙlp÷iZýiyÉÛ‹]À¥Õ&ÂÿÁŒ±Ûš¡_Èç­ð  xÇÛ°ÿ_‡à¿ÙÁÀÿ̺Åâ6à.>óã_ßîáŃãöã¶®ö× Óêê`ÿýý§é:{™ŒŠ8óWýSaϧ;?»øi„."Ÿ¶AÐöíŸÖÃÿ˜4:54ÿõñ?Oþq®›ÿWá^ZúÞå Àp…JixaÄb·Ûn ýTï»ÅèŸ/MT,l°3É‚?t6PþyK–Apc§}çÑÀdÐb¾|Mâù+fËþ@0¿SOÞKjßÿ5šZÝv6,èèã€ÉAWÜ 3€a‡¦Áÿ"€ÿg8ÐŒÚf“ 7ýf±ÿç¿¶IÕ¾1GqGÜLøïì19Ñ`+Àz€±‹ÎN‹%@= ðÄà*ç  7J_F!à¡çõ\+dÏ)¥hA¿¹¬vj(¦Å¤![Ú©D$›½ç-d±CË,šP£nP½>¤h‰¶Ê¼„ÿªÑ—Ó…qÂÿBøa¡TIÉûLY‹Y¹,'”KRë²§å\ò\§ÔmM†¢ç¥Öª.$U=Û’T‡ÎÞ\PCçZZCI©E]TÇ"˜ÿ)Îæ¶Ù+•bu  +;ôpPøo…=ž-Âýqª&Òá­×z—·Â)ÏøVš{éñpXÄ×¥YX„S`±ô2¿p>Ø­ì‚US©m0ØT«Ü(¹Òl ˆæ nfjð4¾ýÏêh6zz2ÆMcþ%Œýb0a±d¬ëMëK'ù$"€¬°â@ä-Æu6lZÃ|oO'žáŒÿ'—è‰5LO[›}ξáá÷ýÃþ±€ö|q“C¨aNûÞøó¿óÒËŒÿ®ÿøÆÀåt¯çÓÎO;Çèí"Q:]üò~ϼšõ6aÁê+€zýïªI…ù_…8€Þ +¨¸v+¥¿ÞÃ{Å`r^q^1¦º!ÀršÐ˜°àt›˜˜^Üb@v˜cð`BÏØÙy4 ˜>Ðg6s?n¾l<ðb 0x¸>ho°Þóæ4Ààm0•cn“»¯³úxð÷Ža“Žÿ&?¿î\óžá\æØûgüßúà ÈMÀµ@êÎ;4£À>5'`Öt§Ñ˜Þ›œÀs{€zŒ€] €—/èy€¢¬­\Z,)³#³jv>†ÄßSZèÆ1€q-q/;?ŸÍÒ +Tëçîžb›`øçèÖ{ó̲ËÏCOÀ.xÆ–‰*¬T²ÒyOJIjªÔ2¦œ{«U9wvå¬ÔQ¢¡äˆ4¤&¥¤4$½Õ¢ª¡b#êbRm•”èÊì€Âã*<È€•GFTËðÝçt5*#¶Ðû÷l½¶5N< ü гåaôO#Ø–¨}H˜{æÅR•§ãÿ¾‡óþƒ¿âKg±üà>¶‹ÕÒvš·+EØ—¹— ÂÐ?Üÿ+ÝWƒ \~*c±ô¡î£3šy[ {ié¥ù?ͯ-5­®[ÿF+qv¢¬C8°vÒ `,7â?ûqhZµâÈd¦FKÝM/G3~x¦Ù-–3]Ç}Ç_Üg{?äÌÓ]ý¿þõ¯ÿ÷ÿoo$N‚æÔZ˜ÿ¡”çâXggçØo;?ý-1¢y½ÿSOø ^ÍÂ{àß«/Ê©Ôg)y/˜ôÁ©¬;ÿ”¾oûßÇ<%®8 à±G÷^•ú\öÛoc`w[˜ƒcNÿÍ;&ÀÎ$Ëý9ùæb€5€I>'7,—ã¼ïp¬ÀŽ€þ`ƒPÃæÿ9€Õâ³súœ&º_î÷ÐýGù¯ÜÇ›€~6ðëïÏ ;ô< a¿Ð@÷ÍíóMó7¯™1ø|“›×67¡ˆðÇ{茞SÈ`'@ 6Æ.]p+³gÄ"@áLà+yßàËùzn ˜ˆ&ßÒ\‘$Á¯¢ˆÁXû@ý qJ HDr‘y˜Ìà ®Á*¯j9E1 žìr–ýÂèñå±Å±BCöŸ~,Ϋÿ-é* ¨Jèܘò~ôí–hô¬U’ÊŠ +â%8„Z~¦Ž¼•TUõìlälRiÕÎkÜD €J[^Ä¢7‚úöy,ßêõxèùÑðx¶R©×<„ÿ iÏ8qL¶ D›ƒÿ®TöûÕjú7_¦…%„/kÅõ—Õú©øåóçú‹»UÞöÃî?1ÆþÞtš^EªR‰Ç%$ûýuƆø”­¹§¹Ç–±Ù‚Ö‰æ .í±`™°3™Áõ¥wÚÖšVW›ÖÖ…0ÝðþÃaE“`õ§KÞ¯ø©]ûéYçËÉókMVîL3u0Z¾0X,¶<‘‘ Bèú?Û-ÓýÓÓËÌqüù¿ÿòb¯W~™—˜Ÿ¼!éëüí»¿å4 óÓ cÜ€Àóí¿²r˜ÿ¸ôçñ?2€VÚ¸ ·ª®Ú€€\ùkâàJXjº‚)€“­€EíﶸÝWL†+WPü÷!q§ïŠé +:;;‡Û7Ð` Q—‚` ø Ýœ›Òãèûd2Ï>0€š ^øÞ¯àc͈°(î€1ÀTÿ# ÐïÐçþïÏ1€@þaŽb/ ÿgИñNÀlÞüzëá±xÇã=Ü€pÀ`ÑgFˇè°`º?ƒ€X aØ+|Ây¯¶üƒÀ£‡šLF—]Ù¤¤J U‰ÅrÿÕþZ.ñz*N Ñ­ BeÜN !.WÙl.{/w/‚ý¢'];~qqÙ#?òM"¹eIõ,Ë+¡ójrö|òísÉhR:¯H­êYõ¼42 ÀBhE‰. "8¤H-ªÒ]XQ[eœ± ° €žDå­h4ö±ÁªÄJ,O§ Þ¡ä9?|„à0^Â6!?S€×¶Rlˆ‹Ê¿ÿ¿$øÿÕ¯~—Æ9]ýÕ6hÀ¯øíW"·÷Kœ¿Ü=àªû,IA¹ÈIh”8šcä&•°Q’·d"Ÿ¥…°¼[å|ßï `s*ÞŸÂ`Sýn€;fûTÿOäcƺÖ4ðñúàúà uÍjΰCÆ›™`ww÷z÷à`SÓÚ;®ÍÅøË"ð¾kÖéÓÆi#ŒRá/d=a×pzŰ¼ÀOöþþé.þøsÿg†/›þǹ —þãã5å9ÿ6ï¾-ðÿÓÎí¼p±S÷ùôIŠ¥07Ð-?K5xèöÿöËÿj-°êú«jb®°ë×çt;—D÷í·yÀ};p…(À{&ôÄa¸b¸ ÀNû$í“;í;œ™ç°!ࣀ`ü2¶ý—›/[8@ôe€Ã; 74.4´ûH-àβ0r ùïÃ?B“¾(Üÿê†À$‚fVÿ¸ùѦy“̈`ÐÀ؇k‡Ù _öÄÙÄËn·Xò ¼ #zNŸ¶Ö;ºPÇÿ†(`×>9ç ²K–BjT¥Ò>A¸¯%>@—?AU>±ù„šËÍÓ-÷r9€ÿÂî€ójΣ)J¤ üG<=ã‹Ñ_œ_S>ú- @þW©íþW…@å¯ì´|Åýž[øN'¯Ø¡ü3®Â!ØyÅùžûö{¦+üW` +ì˃ØlŸD`À>Á2€ ðz\¿lŠû~‡Ù$Ò€7H j7æ»wêÀß~¸½aÐ ôzÐn±sd¬éŽ9œ¢ À ?oøYøÏ$7r`ø#Îâ5€k€òó3ÌüÜ ·ƒ¹è%Çþ{°`Ÿ‚I"[øŒ–é.dÐ pý„¸ ¢€ê6@.×K¼G{蹇r+úç.©‚ÿ¨Ôÿ€[ýt9¤Ík¹l.§©ô>‡â_ËE‘ˆšœM¸JáÂX4â{Xx­õÏø×}ùlk’>PMJcŠ´pII&£ç’ÚßHQuDŠŽH­ÒYIR¢‡BhA,Ì*g%Ez_R“—ZZÕVm12æ)Ð)f'ÀR=C€ƒY%Xý1 è §=Ûá-ºm·±ïCu>¸ÄÖøk¯A8¾µ]*¥Š°ÿz* ЗÕôoÞó»­¿}í¿Vÿöô£_ý/û£¿ýÝï^ûÑo^£[÷â¯ýh‹ÈÀÖïÒéíÚ@ H$àKn;ïòAð€•À÷WóAã$ŒvØc0#8ƒÉÇäO 8nº|yØìpw?ÒþçÃh³LîÍö¥ï­¶¿žAV¶à³…€ófwŒõ¼°·ÿ'ŽÿÓ›ð¿‰( kìd6Sõãš¾3`Bÿ)Œ0ø7LÅy"``O;gO‹e@AD@h:VV9`IÞ x™}4ž?(f5äóµ\º”R¨Ä§²?74„+ ¼ +‹äx@\@Q¥–PÎåJy•Há¼/þ­ç¿–¡GàQT%z6¹øÿ³÷>0mÞiºhqìI@6v‘àæ~˜qþ°' Á°üÑ—Ë¢Öc±Ç`ÞñµÊ°2$n&|T5);qöV‚D¾›HÓ©k¤„;!º•öº \[t”eËU†Ù+rF=RÕj«bíœÁg¢ H+í}Ÿ÷÷™¤¤%]:MGýlŒ!@ÀàïyÞ÷}Þç‘_ȧv7ŸÍ–³¥FG’”ŽyØ“°Sv:=}ΉFYvÉùCEæùÂ8fèb¯Sl˜\ÀŸ¶fd›O$x–ÍÖåä&Rƒ“[IÅñ„r©Tb×íàíÖOÄ¿5^*!|†âQ«õ†7¬·/Gÿò¿†¢¯g¾á³†|»èCQº†˜0# A"°ÎD໣cªÿ×ñ˜¬m¦÷6ƒlr€‡$FT„›¦àïÀ X˜ZÝE„ÿËˉ?Â27ö´^­_Ëä^«ÕB¹”†N4‰ù}范Øù €NÄÿ>_ñ»{oíþU|t|hˆ}ƒ±A¿®ÔÓªõ¿ ' œrªŸðç:6õõÆÁ’37ó+«ZjÎ Xˆü)¢ÿZ"d±¸Vþ³º^8À‘¬æÃÍBø›ßdü‡Ð %`ÞvZt³Œÿ‹Ðü?ñ`ùÏ6€ªúo“^%Ùÿ'‘üн±G + /¢  ¾0ž…¹·Œ•0 wAˆhFì6͈>ßžËa@«lÄìŠö¿˜þ³7¡øê§ €Cï÷›q Û‹Jö–Ü2éÚ‹ÛÓà¾öÿAG€â½3¹Æ\‹4P`ÀÀHäꟳ€ íEþ°ØZ«ûe-ê~XYä¶ÿ¢pZ\4c'¼Xþ÷ûÅÔEv¯‰þWÀG%D˜˜©øŸÃOp–TOžcmÕAK_ß§ÐSŒÿD‘d·"eŸÞMu·îB5ÇÂüë£/ àLÀëvMx}e´ ’³¯Ï}ìrÏ%ƒž—äñGe÷hX.rˆx©OjÞ}6Ð-KÝø*ÙÝpn<ëì?¶›Jg¶S +t+Ýg»w£ Ëîq׸¥yMb0Ýf€ŸFeæòÉd"Q~»)q{ùþû¹Ñ Ñ@*L[C¡Ö4xLg¼ ÿÁy4·îÊüÖë—3­¯gRýßp¹!5uÙç{#êóYoûZ­qk«µÕ÷†o×.«õv3h(% !ÈRëk;+¸š#°ð¿ g z8Qb ŽÁ"µ5€)ÀmHy)àËþ ƒÁ—Ù«½AÎ4`4 óX0™êMF¡¸Nlý!)@ç€`&cúxEÑ}goµüGf »NOgLOþ`¦Ãè4hsØmðø0¸…=“ó„×ÿóÏÔE @—ã]Ê?Ruþ _pÛâ¥E_—sZ*¯_ׂÿWŽtSõú;G/\8r©±¹ù +(ÀÁ+Wòá:8àZÁ6àÁíÈ@+~@üTÐVðOúæ_ñƒQ8Rh·1öçöÂ÷—Çë¹Fv°ß2þD´Fl…óG +|Ñ¡$€_-~¿]‡-€ÙU‘ÈS€Y–̾ÿ‡^@p²ßÑë‡õæZ³þai€÷˜ÝnrÀF`ïÖ6àƒË€þ÷î}\•¾ã|B~ ò€õ¶|3þ˜þײÛ /@Ô‰á?€µ¿<°gÍ¿°@ùoR@z%Œ¸ì/ó{ý¶ð{‰¨ä]…`¶ã:[Þa¤V  !H·¾¾Tù©?ÎS4z½ü…¹QY +¼ðÈDd¥‹I€ûú nÎT€Ï]sEÁ å¥ð‡£Y Ò©¸hü3» £]Ù£g‚ëýÝewcà”ËÓ—­x$ç¬Gr"PR:Ñ8Kl û¬"”€B"y$¹ß5N`®)4Gh–XKtÏÓ½O•Fê™’ÎÁÖ¦$²Ño)1 1E%´Ga¼±ë6Öú×R²¾žŠGvEã«5î»|ùrÔ/sÏ®“™— õ_ßµþ¥o—/óöÔ>«o—r€]>+·âÖx\Ì"˜Dèº,ºk;¹’l€ufHq2ý”›PFBò°\]$&¸€uÀT*” +}É{ŠeÿoŽùµ~“Vë÷Ò+:Dߟ_ÅD@£§7ì~bƶ˜‘x€ê›ÁÒšŒç‡**Ò{½[å?ÿÂü/##£fff¦f0v7fÒÆJZ­wÿ;:JP!L>éOõ*¸œ À ñè‘K͹°Mü'nTT^Q1ô5(ýW^éi>|8KÀ?§‰¼Â*ÀóWX àÿÊA×ÊA"+Ûšào¾e¿ãË'îqîÏfZð(ÃÛEñÏ-ª«¸É­4þ¤ÒHdÀž[x‹I€^o‡c€è´‹Àl1[a0Ëq€èü!ÀÏ9°ôúZzÑ;>Ñ÷¿ÏöGˆÐgï½/ Lû}B8Høo‡{!òòõ³ž×ÿê˜`°¶Vøâð¿Vøॶn î?†ºtÁo0˜™”ø¥À¼^/tvÞ` :i3@£²`K=Á¯ñ€ð*O'%¾!Û<ææx£ª¨KÚýò©€Gñx¢{$ÅM4€A–¢Èî¹9‹eÜ•%š&<òèçw'‹Ü]î9L_-›À)÷Æ€Ò³[’¤ìF©Qj–$eBêîD# o¢±Oêq°ÐØç–%YîQÜãn‹M€ Õ°k +,Öç×6×Þ½K&MÁ¦ÍV¡oSUné*y3´JÍï‚'@(¡âÈö‹ÿH<Æ£·£»þárfCfæåŸÿüò¾Ì×§2£ ¾©ËÑLßTff¦•ðßz›¯Ü-ˆý‰°€[Њ1À΢oò^rž{œ‹°œPm€Ä^E"‘ìÜ^Nm®Ù+:-”ÆÌe-(ÿµ¦˜Ö$‚Û„;FÎ2Æ88Æ­-ßùß4ðŸýçEùÿa•ÿÕœPSZ33h$ø7ùé3µ^S½ñ%<h©yÒŸé-Xlî€Íy̘3ØqàÀ¹¼ò¢mo/U A!‚åóóyOjíß´‹êþæ¬æ#Gº_éî&ø?}áèÅÓ§~çè…W^ÉÊ:,VÃà +SÑXÉÛÀ€ë°ÿÄý àµô€A?©ŠD/à«H +/rp!œÿüô +Å¿±’.?1Þ2"0—ÝG4íy @©ß*ŒPè¯ÎrýÏ7<€?Ðlñ§t€Lüج«Õ̬>l@wbv»}DdžâÕ-G€ûÀ´)ðûÆJpM >€Kfï°Pm혰þ‡ó ¯ÔšÅàC]- †±:®ý!P_~ ) 00ôbú¯aà×§Gô”®èŸ[Â;3ÀÿA þ'ü¨F.dùG©àk<,û£Âò¹ˆ#/ ^|öÙŸ}ñÅg_~ùéÀ©@¶”-)ýn—';½[R\Á åcˇYþ¼¯Ùó‚[þpTQz”lIòìn”_–”>YîódwŸ•<ÎlYjV”FE’EàÜMõ#ÝÒ;v÷H©»_ñ¸\p´„0X †–‰pà¡Cñs$‚" ­›°øYSTêG®m¢Þ¼·+t›.‰zë)ÂþèmkÔJÅCfÃåË{~þÓüÑÉË™S¾×}Ö†]™ ‘ËVŸõ²Õêóù¢QßmÂ~ô¢˜Ä™8à5f¸P¾YF ¹ƒ€wÄ ±žL±Ö[Ðýà ¾ÜX-XO%¾\_@Ôÿ½0ö3øµ&“–Ú¤m‹iÛ´ZXÐùŒã€ÛL1ÿº˜°6êL:–7ùgfÐþ'æçÓΘý=?ôü»TÿÏ”æä +@bô êü:ô K þ«Ÿôþÿ<1Ü +ÐA?Ç̆>*(xLü':T>4T^”÷$þˆÉÛ®¬W.\ ¢¿Ðvôèþ£G/ÅqáôÿÃ3€ÆWl°ÀA×AÊÿíã(@úßï¸ýBÔþ"!?VÿsàIHÆáâÿVe.ö¨ì  º¿Wi´ã^¡]\òGòóõö‘Â@³é/\~E:Ü€ÐáÝF=Ò÷j ÃÃæÒâ‡èØíì4T\ ðþ§âÓKØá„±„ÍÌãÿ%¬rùF,¨‘ P˵ô^xþÓ !~ï þ+ÃýE¾ð v½e,0øý xMi õ%%%º#¯¼“ÓRÓ’ÃaÀlŒ<è¦Òøâ°íÃ2Z07:*S‰ì~ùÅ_ü÷Ÿdg…-®ìS»O)×Ýe®(9?êÞÎW »ÝŠÅrLžðHÙéÔıÝöý’âqº‰UÈ’Ó#5Jò1³Sšèë–¤¾€tú¬Ò–Ÿí:vªQ—zÜãt´Îꦅ +‚Àºýä#ä»ÉT¢©)”jåç7âØçk<€õ÷Í]¡PÓíàc6RÀ‚oëåË—}S {öüð‡?üÇüáž}S™¯OM¼íËôíñE^ffì7D#¾]V:vù¬q¬@ô'ŠCÀ$€•ëë©¶‚ø? Óƒ5öسàwÁ RxHÝKnðã‘â‡êKÓ`üo.{“•½Dê©þg vÿL,ÿÖëýb&±ÍÈD9#X‡ ¤ÿUT$N¤»<ÿU¯˜†ðï“5T4Š-ÂA&´¦œ-&êØ ãIž_Ë©jL3€Ý Káb¶= a? –ãb¡;MOÜO˜²È¯=}ú¦ÍvûîóO£ôG àèé‹G¿sô;¯É:œÅ2x€¬ðõ 2¶9àÀ§p€5át_€-€'áQaøÏÍý‰‘‹ÿJcne¥‘×Ýèæ‘#±¨Á0Ü®^À(ýgÛ‹Qî³F€DØÞΊÀO®¶¯:tšÚ3CmA¯±?D@‡iÄ>B‡X3àFÀÞUµðÀ ½räb`6„þu¨ÿÍÂX ßåõèO}»|tìÚE ~› ÿ6vT5`„ÑDjƒ€ž$‘ˆŒ@^ 1À6@)ÈÜ ëòf’û"ˆe_‘o6Ìæ§Ì¦š2¿Ö¤ñ£ýƒ@ úc1Ý`¬M˲¿˜Xÿ#ü'¦Àñ¿5bP-ó„íoÁÿd’ÿÐÿgó?¸þ€€.'Ç€pƒ'] `b/ôC þéÞÌä€m}çCC„ÿì€>ôÂÝZ†ÊËŸ¬04Þ|áôÍÓ7oÚNëmH’ÏÏ·å½xš{ß9J¯/\8Òx©ùü8èºò›++b00°]À|òÓè_p߀UÿBð¤øÂêÿÄX‰@e%ºþF~1bú*`áÀ…l¬G.ÍŽp¬vxs@-ê4€àœ@P€Oì O 1×Öš‡ËôKÛÞOòß¶ß²ÛGì¹#v]ÎûLÚ€È üvN%êmš| >ê«YP[+¦@TÇNÀª öoþ! +xQD/ªL€ €_h8 È«/0o`ÀnÀhý×c ƒ +ÿ–gZjÔ€0,//*Jƒ°oÀgbÅ|’p +älùC‹»_öÈ׸ËåzÉóÒKÒ…ÿ[:þ½iƒJà/ðÅÃrØ='Ë2$§¤þÓò.ER$OcÀ)y”lEiô8émÙã쓟ڭ(#y:•³×å7]n©QöôÈýÐ6Ía‡-§/Ëúèö~ÉM˜üµ®A—PÏ©{b-oîºj}œ ÀðŸŠÿÌ"ô?yùäÉ}ûnÜøîwoþŸ$:à#R°ïdtßž†E|‘ŸîÉŒÆ_¸üoSoL½žI@Hãê .FØ +„U ¼‚RÂh[ÈHB¢Ÿ¸Ëèð…ôð``™Þ·™@Š—#׿Œs"2½êž €¿‡· +ôöîš´m&ÖÿÇ _fÄMm&Žý‹Åàˆ„@S[}Œ q¦úùŠÒ“mÕö÷ed 1R¶þ§â™ s†pgÑšc;„ž{ÒŸå5ÀÿŽ:Ä€äÛí@‘W$ájÕHÀUý—ÿÕá G—–lKˆ)Ì·êµ>j³¡@<à;/½ðJÖá,aÄ €ý LÛ­j„ïoÚýOhÿ„ ߃`~í ydDÝ_ ôçšÕ=jÑ ÃÎÆ@D4z;üíļ¬¿úÙÕÙYQÿ³€h8>Ý@`û¬nج7ÔÖ-éÍìî}@€-¨üè ê+´%¸ïŒO(ÍU]—ÓÛl04# í~Eòo­*€°N fý13  efž¨<ÀP6¦Q €Wlbàõj02Àza™Á™Àƒ-мÓ tÞÍ+Ïã€pú:ãÿ—J¶N.h¨=OOì§’[îyÉãy©§§G&°«ç¯~ÖÚúEÿƒ¢ðÄ1÷¸è&x<}4\ŠÒéQ:ÞTò¶>XO-þ‡¢»öìi@ùOE?Áÿûöÿ/7ìñ!Ø÷ÃLßIª÷#ÖˆÏgµF­ÿ#Ý3Màô&¦»xÀþQш¤"¼ &ì¤ {Tû'–釆èom¦@ˆ¦K雈 +²!`jþËþklhè™Å\Ïd*Óš¼^SÙ¢‰ŸM€è@80fÿ&5ßkÔê`æcÔ bphKÙvBØþO •¢ô/É)l²|N—Ó23“Q3=1ƒÂ'kžt€Žk-ð?Òј©™É˜œGÛÁôþóª3&k2&'LVc +:d)Ú©Àx˜°¼íê9rÚVg^23`Ç"§m§y +à…Wf?àóê€êÿst¥cŽâÞ&¦?­¥o9ˆJ'ÇÛ•Æý•\òSá_B·ÏïÃn.ÕÙ¦Bÿà?FœT\ü>@}–£Pÿ¯Rù߆ù¿#Mîc<¬Ú:?ðØ`¶ÅŠ:ÀÀÛ'z[sqdDïhß±Z\ü@÷+'°4ׄ¹¶l6ø²Á€YX‹Ð¿±3g„ à¢p†¿ƒáL™Yþc cbP¬Øbf€Bà5¡kªçÂ=;D @G˵––g°0yà\õÀ9Ñ(‚ĉ¯7þ¹€¤Jx¢*ÿ™â–û‰È=bp÷ïù+â7µZ¾à×u‡·¥K–eO#a»,’w+n*ø!ÿ‡ ä¡7Ej”ÎJ’óeEÙÝG¯¥°ò¬[Ùýqã©fÉ#ËãX„›m0 `Š.÷XÛ÷¨@*Ø”X»=¿‘J €¨ßeÀ"è- @a»å átˆêÿ©»LÐOP¿‡ÊÀÿž“{N^n¸Lw ð# ëêåÞÆú|jc}=µ‰Æ­>L¬»ýãqá((@$DoÜŽ.¯£Ã°³ €Ÿ¸'$‡ÖÄ`#¤ú#€¦PB(×ÙøË1›Å9áÍ2NöæzBC¨õ–a M¨D»¿Íí_¸ÿSù¯£5™LºÁ–"ÇÓ¬RÀCÓ9Ó5ƒ\/Cÿ7è`¡Œ &32r¸1x€îW(>ÙÏq£©êŽŽÁ«"À¨M ÔÿE' +¶µðÿ“`…v ƒj .ô†vŠäýLjáZÈâºÒLøo[‚QÜUŠT62p°qàÂiÖ^ȆÐùt"Lœ[9ø˜-€û   Ý(à€pJ¬=1˜ü j~ôþ+sÕˆtñ)`n®)—àßø 2-ì… ×ý¢þkíÐû‹…À-lŸ-Æ`Vg6ôúaƒM_¼÷a>€{± e'b‚ÿû-dlù? ¤×Fl-B ½^O¿Ý%½p8ê?ºð›uj¯Îü +2D3;œcÌ/+sNTEØ\LÏ4Þ2. `\ŸK…¿‰)î@PRÒRÅ[>×øïÿÀä9¶æÀï˜|C>¯ @Ñw^v÷Ë €ÿæ—ðçrõç…ZÇ¿¸ž÷¡&@5¿äÎvÊTëÜS¤l'‚$¥@‘ú•ÝN©Oêî;Õ){úÎJ²òrX~ÖéQ\r…½æ–ƒ¼À¶ÆÝˆná“L`»½‰*ÚÄ< þ\ÿ³;Toðnn³üpû?Þðó“ {nìÃqcwÿO89ÝÜØXØÜH-D"©…å…T$B@ißüÆüƽùù{˜´Z¡ ˆ[Ó,€p$ åôÀH(´¼ü‰0áøåÞƒÑÈG 4Ïž@ L‚Eì ,©Ä—$ˆ6›Ÿð1ü?e+ëå@¯é®w0 ˜gÕ?a¿– +ÿA4„-0¦lå«ë L¯žVTŸ(¢úˆŠÿ™]”€ŽŽÔÌL¢Æ1™‘`Æþ'ø¯4oÅx°ÞÈ?ÂôqÎ<ØþWO½0=9Y#òŽPuãE¨úî,­Ä¼ãï#õÀ`.´ ¸67¾r:>±K˜›©`Dëø´-ÿ¦íôMŒÿ1xå¼ÎŸïáÀÊÁ++çX8p½,Û< %·’ÅúŸ…¬ý{’bá¸ùOà_YOÕ? _,¹á6HGøo·{ÿôâ/ÐÐ3d– ¦ÿô¯5©€5ô¢õû€U„ÎÆ†ë4XØÇáá-€XáÈÈÈÛvýˆŸ ½r¤½½Ô±÷d ½iw€½{K·ˆ(\™Óó`< ®Î ÒΜ«S»œþw†Gg„4.À‹¿4ëúe,þãDà1Ñ€€j@U™AÃQD¼¹ØTg蘤E€¬¼Ö‚(€ƒ“¿97p"@” +ó߀ÏfIÕR%Ùóï²  ¹§§s—«g¼©u|î }ye¢¸-,(T- +{ï]t¸Ðþç¼W:Øfb×?Æ~$€€£©dppfòùŒiÿ+pz~&'G7ƒ”ºþÓ€ÁšŒŒêêçqÃãð¡¡'}PUu-çAI{W¤`ë€m4’C/TOOfÔÐ)Éè5Ïp *:;Ã,–<‹ÅÒ +nË0³ d¡ºSƒd*X~ðüáª#‡»/µ-å³QÜ’9ßl³qý¿tÓ¶tú&¦7ÅÀ… ÝÝ—²7g©¹ÀWVx`@p€Çi$UÁßZZü§v’¼ +ð$ýê…ö/eFžþsqkª¯g´óÂÇ+üðùª±covòÿâÙÕ“Öh' ky€<û×q"°ãA€Çû:ƒÙ †w¿ß¾·øaqÀF»Ön§âÙ#Ʒ鋨3€âTB¨»•{Ñ^¨×CÕA  ¼Bõ„úÿUÑN€€þ_ñ€ß0À `±ÌÌÞ?è˜UèWo ýÇÊÄ hØI\c÷B@ F%¹¬˜() +°£Š8@Í5Œ&ž;÷î€Ø(J%¾!~ž$Ó2œ—8÷gZ== +•ÿÍ/A àrõ÷¸C­®/4(R¤°"¬ ÃèX@qQíßåh 4Êáì1€³¥³QRœçnE +H»RgŸtÖ9e>É UÀ¸Å%Ï…Zç°f€¢¾}(b%ƒ©"nDáí_*Ä*€e"b1¾õv(±¼±ø ûo½íûÑÉÌ©†ÿ‰ãÏ÷D¢ÑH„Q9Š߇ñ?ê|kœ>3Ê{Ë ÷6–£øFïm¬¯¯‡âÌýÑXÀ.€ª Œð2ÀÎ%?U €¨$Ì'7ˆ‰eHÑ€câÚŽ[ðLp¬wÌ,šÿ~<5^“Ñ»¨Õ¢Ú‡ +0fÒµcÜúœy¯Ô¡Õ±!ÒÍa ÃHrj~0Í(^Áè_14=]1C%Î 7ˆ"€n@MKÍdõq^Š;>T~¼¼âIÄÿ¡ £¥*§ô·t¡ÇÁ¤E#'ƒ À6$“ÕôX@Ò!BZˆ`*oh´¼b‡€e…^Ê[›Ðøìo'hY!ȯª:œ×Ôd9x˜¥ìû î‡@ìU}­™ÊDRãòóÍTýÛ^¶¾yú"¶/^¸yt«p¾¹Yí\9xevÀn ?ÝÜîÜ;¼óÏMUÈÛÿOÒo>7·°rìý•ä +‡›ç¸ +`ª÷z ™ ðó Ÿ×QÝð}õ½˜]32ð‹<Ñý‡1@ûûíŸnwÌvPý¯7üÕoÿŸŸÆÞÐ޼­·`ÓK1–ÒþT:`±*tÜ2ލ1zVÿÙïõfF{áûKèoP×ÿϨ!€ufCíì" +í?|ÿ9@…þôQ&tC[Ëø5~nÐÔ~zÈ*1(!âKÈÀ `r`ü·‰Í€ç¿!ŸÅ¶BUà°~êYBg¹GéñxÐð¼Ô/¿ÔÓßßÔ:nù":ÀQ·"w†Ç·VO†€ +Á¿¤(Š$Iò1©[ò8%ø:•>g§ÓóÜnKg‰HN¹O’»ÎñqyÂÒ:g/ZN›Ö°Fþ‡«7¨Ä]#3¼dŠ>)%DA€ `/•¸MDàs+þ1»Ÿúdž©Ì†Ì†=èþï»ñûßßð-,lDR„ä>_<è§Š?곂`ð/,‰,¤Ð ˆG—éË­ó2E*mµú~vù82…„0*rƒÓ)A;ôû]›ßäeîÐONÌ ¥>Ì’M| Šînjž_ñ#²Cÿ¹™*ÿ7å žŸÏ=¼^þÄéµ8õĸÀç:ú?ÂûÒÇ]phL`&]c¿¬™™É¨žŸž~oèøGÇŸžžÎ˜œ©lŒ•š`€MAfƒB0=t¼ü8È"‚+žtPUÕQi$¢ãüm)Ô 9¥33ÓCÛšLNfLÒc‘ÓbÔØÌcGK'¢å U4íH8ÀF:K“¥©©©ˆþ^ +X†öÍ9Ú˜/%B¡¦¥uåÊ•æÆÆªC%•UÏÐDÈ;¯¦7ß px–“â X4ÓKKK7—– r‰ÝÕÀÕ˜ÑÛÛ®C’ôM +Í?–ÿYþ'ÆOÖocþ\±òW¯^>ÿtô +ü§+[âz5Zdh·¯®b¬¿úmÈdÕ­Y‘H †vÛì'Ò~ÛgÛu³»ž·Î¯×ûýß~¨°Înûm?úÿÃ7mš‹í¥¬Ø[ü‰1¿ÇÎ@D±këè*,9 @¨ÿØ0m$¶Î,RMo!@ªòoŒ_,–-–l±èµçš¼F#@¥ñ¹Ê\ÔÿÆç:ZZÞàÚ5gã´žÀLËÖvF ˆY/'ÑeÌ<†qZ˜&ÿb™©Þ_»^–ÆŒmF&Øü+}/ÆÀˆàE@ž;jfj&Oÿ ïy‚µçßÎÈ €,Ô–j m&Á „!hu5ÇWp8\QÅÿ$u”±­NÉÚÖ&‹ÀçáÆÌdFMÍ`‡1ÿµï}ï&1"<(§G`G:Œÿå· ÿAšŠš8u7D¯›Ê›Ê-–>²ÅïáÆª#‡ªP—+YÃü'h¶a4Ìvñ0Œ³™ó—lu6¢¶›Tþc àôØ +€[—ΧW¯¸Øh@è¶mV•TÑ(€5€OØ/žÀŸ'¢jt}= Ÿ^«øïõ¦[B¯-Ó¢Þç(ªêßwÄ®‚: +ì‡PÛ> ÌK³_N½aØàÿt ¨ñc#vÿˆ~X?<¬×ß´ ëy”pŸ|¢ ÐqËŽméˆXñW'Ò€êjÅ*¸ƒ @ØƒØ PHÿùŽð“1æe‹~”ü<0b Wø$”ªÄ褥øÿN˵šçøÍ¹¼¼ò!lÍC>Ÿ¨*€äèŸܲ"÷` ‹YPô»,D¾À.³@þÐ#‡ee‚ÐBVW8ìFп j?…ð¿ñ¬ì”z$'•þ»’Ô×}–‚© }è)ùcKÿ„¥i®)8—Xn€˜ÿƒ<¼î %Ö ü79òny5 +À2ÄB›©à|ð³·7R‘ªËaæ?u¹á‡{2}SS '÷lxë÷û|ûgú¢S˜üƒD¦2}>â˜àåþ¬‘õTåû™õg?‹®ß[€ñß= DBqä‚p@Ð2¢Ð Hm¬ïhS!à•VNÞà Èf‚ÐÇ$D 9¿ù³fÍSftðÌc˜Ðج1hqƒ¬ß €6æ×¢¾ç.€ ¦¦X[i©õŒ³ؽô!õ,Ì«žœ~ž.CÓÓlûå¿iæ®nð®.ÆÒÇ [Cù79Åÿ‰¯Ç9 ä*~1­=m{”3“13½ ŠIúÈÔÿÆ×^{íû¯ým¾©£¥fòÜ4›¡îÈžgY(·´–7Ý?ŠÊ›è]y–¼—Àêžóßj>L àPÕ!´ecC—^{/tÜfùMÖ(l6øþ1*8=zôÈ‘W_jnnþS€ƒìtðà€[UX¶_ˆ è/Å’ÿû€'îoâ€èúÁÅ?ð_Y§¡ß«Õ0þ‹{ü'†‡Ír~ÁtŒ:äưè Š°÷A €ö÷³Þ?ì×>̰¸ØôöÈÅ‘áaó°m˜®z½qÕ1HDâÀÖÛQx1-äõ?›6€¼PwF¥"X¨&è,¦-€·š, ܇P#4<àF€Ÿ×í^;ýYõM^&•ûÏU–À`UË3מ¹vðÿào@òÊ+š*¾äÿ+ïÜŸ$³_ìwMðÀ“Å ç%&.K¸w(ø8_Ü-0ûWò”côZöÈØèSº7,KJX†ñRœRç„3€NIîCbð~gwÀIoÓíntŸ „Ç»$yÎ2>+ &!úÿG‰6S¡ù Uÿ{„ÿ0Á œ ?\N¡@`ø™[€ëhÛó¦ž5óç?ÚscOC&ïÿŸ<ùÖ[T¸Gèj]ðýãT<êËDåÏæÿSS>ÀëÐúë ok´«©ÿ‹ß»U¨þào±  ×\ä¯ýÀG¤ è(µ _Ò«"€a´ê *øŸA"ÐL„èË ˜àÿWØ€€j<Æy€3÷ÌX +DÕo^¤3Ç›ª€Í€!".ÔØM/þ¬ê÷ó ò9aØÑü€sçÎ ¼Ë‰À_û€?ØR$çž~` €l:èouÿ:¸Æf¼ÛþÒ×ß|ñ”D°ß7çv + (=’Û-»Ãr—[éTdYêTœÒ1Eñ8;É©tÊγôÉ™ý7R·³›î*]ô%Ž[p»-–q‹%¸ ëÖØ(ùp [þ1è±®Šÿ‚ `?€XÁgl5…XÕ[/Ÿ¤²þä>@?Õþ'2oÜ@í2ЧÐø¯™™™>!ý· +è°FÓøò2a{$’Š 1‰§Ö#qôú×yÒŠÄÁ'迃#à:–ƒ¸YÞÁx€M‘˜B@`Ù?\ä'°VÂ…ÅÝx°îÝïüG±ô‡€™nÍš±­)¿xѰûM1žÐ  :¾í®£ô®˜ÿ¦·±ÐkÔ•üíýÁ–Xþ‰?a下=è6ææô!¥¥ ~/Loï%ž1™÷՛沽YŒ£ÐDÐÐ瀌tC`"89öÚkßãËkÿZG #;Òý ø_!ø//o—–ËŠ#€ÔÿßH:¨2óæËì^Ƽ¨FÅþ—`#¼|S Àö£@ «9«ùõæûžÀ®st}ÌM@qv( ¿úè’kOâÉ ÌDu¬7—Ð^´þës¹ó¯ÞòãŠÀÖÅktpðêÞUùðø µ 0›£K{?Ѐ }µÝ®÷SùoðûßvTÿ’$÷IÉÙHdÀéá·eªÿqËnËx¸n™Àh$×)±øÐçõz"µL¡XK%xþÍJ@zÙ¸\NÜ{ø7¾üÆ?| Ö}™?'XoØ·çd¦€ÿ“{PþG}ÑÈB´á߬Vxkƒ jõOŸá‹³0à>Ê©?Xú®©XŽØcc0²Y_Ç(`è€/÷íŠ øG8@JlìÜB «<@؈§IŽHq @­%ÔìäùÏðXØÆQ¦á@€ØÍÛ@Ïa/$€H°Ò*˜ò¹Àj\àg‚9ÀÝA‡VËlÔV#£qp°£ž?ì÷3:L°rhu9wÛˆ;èM:Ý`)ô«§_Ê۞쟓s«§«'¿òì\-:ÁFž‹˜Œœ}”î|Ög¡!Rƒ acÇÌ"|¼ö¯Û2ùƒwŸ/‡‘àN|oy–1 ªKÀò?z÷ÀŠëàÒÍÐràÒ!f¡>ób¡n†º±7 Œýgže@W½…&Ø ü?º¿û‘#—²0H/¸®À¡ÀGÌ?Ø„b˜À“yr?²ú^¯·¾ÞkªП øgnµê(@emƒ¨òÛ…ß´£ºoSëtb³m³mD§ ÷Uà¿£¸=W£÷›ýмó‰ý?õÚ~ +€ÛÍat†õš[·JÓn€éÒk à};vòáh6Ã]À\§G­_Wk^â ÀýôÄÀ\ËJ@Ø›q³È™Àµwé a¸¸X¦ç&À˜Øôs @~™&Ÿïåz{+^`?ë'*;JžÃ€tþçä¹sÕÕyOVÆ“«HÏ + +‚E?}Ê%c [é2‹ËµËÒš¢ ¿Í/-w‹®ËòÙ³ëœ tºÂ2¾Gé +Ë–ëĺ,aIRÂR@’:'éF‘;)pLB*`·e@·VÇÜ]’âV\pškjšk +1.³¶ík€Éµ žÛÞ|Ïs$ŽjˆFÀÆ–à!´~ëþÉ—™ùÆ™ºí;¹‡ê~†ÿ†”ÿÈû£)ÜîÉŒ³ùOC*Ÿ5³!S°P\ÕDE„0øðòE­!n. Ø_gÛ`^6XH­G°  Eà °>¿cÛù,dc`ì¬ ¨O¬Á ˆ®b •îŠ0Yø¢ì¹ÌüT>A¯ ÌN°2h½õÔjíÚÂE­.gZ# Mm¨äM˜ý—ê8&H+Bt±_ðv4L~øÀæÿ š&GN[[N›©”-22¦0T^1”ñ°?õO¾]TTôQáÿлՓt|ÅOòB»e|‘\=$€Ï$ÏOÏp²ŽèQǯ^ûÞ;L–1ýnùN5ˆ`"”ÿB€»xßJÞÊÀAÆÿ¼ÔœÕxépãÿsD¨ž%(£·fŒkÿ11 ø?Í-³íô’í4€ì?ZÙ]‰‡››_WC¯t­t¥–Ç;Á¡ °¶ù¤â?a•³„óDL˜Ðm/æ&µ!`òzï#¿IÜmC€ @1GB +ÀÀ߯ö?ºYD³ŽÙâ»üXÜ®óküèø‡uì}ä=°ÿf4€æá‘ÂBøÅª(ûÓ2@ñRj·Øêl<€´SOÀ?\§®ppÝs­ºûÇ à?&  À,"€kÉà¿ßÀ6\Càûsû.PäšzÁšrs÷sK„0Dï píüsçP]þ ø¼'HÁ   ‘e¿(ËÍ=èÿ‹@–'«ÇÕ:î·|Ü´Ö4çroï+Ÿ}¶q|®¨hîºóoæ¤7Ö(2úÿn·–Ã]n·Ò)KÇ'ÕúðV&ž=«Hž³NÉé!Àÿvº‰.úw÷¨åc×ÇsMÀÿP‚žÙkÜÇ~(H-S¡{I,+3ö‹4 Æ~¬Òg݆î¡g×åoýõ_û|S™ÿÍ:µo²DýÿV&•ÿ<²Š)@„Õý¸ñeNMñ`*= ˆò C¿U~ã×Ö]ÖhÈ}Aÿr4ŠÅÿu^ ŒDS¤…8 0… _æwL €Ž ïl²!NŠÉµÄòï`¬2€äýÝ<°_l€FÏÒ:ÍSfzÊæ—½I$Ô]ìñb™NbðÌ5••±€×°ˆŽ¿ÖÔ¦ÕÅîÒIì.zÿñÆ6ü ”±_ç 7€ö›£MçÐÆrt1‡IW:3˜33ÃëEÙûOŠMý°>q‚ †ª«‰8pà+}ŽßÓæ{íZ»)ÆžH:ý(?ø¼,àŠé¡éÉÿ¦ã4îܹsæ{?ίá Z°Pý¿"(ÀÖ`«`H/ôœï9ßÜ|øpccÕ‘’Ê’\#Úÿ^¶}È/3cÔ`~Õl` €`Üü¬m 4 7oµ=Z¸¿2·reå:.ÎÊÚrrapeq@yDG—$ŸØ>0{ÚåæRñŸ[Ï"Ôü`¢ò‡PHÔ‹–…±V#ÿPýÃâ§@6ÿCÞ +pÐ Àì–pq» +@^?ì7~2Hܾ7rÑ62Ì[€6›þmÛÈÛ#ºöÕö-+€ûV€˜Øáç`Ös ·fa¼´µ vÓGÝV Á\»xFlÿ³ðââ¢À°Ÿ×ÁÌ ~3΄³%"oNx{Eý$%c%áÕ;U×®¯¹và@ÍÁÉß¼[—7ÿ ØN `«(*èv¢_žh”{º=ÿ³³{äqË8*]=Û#sÊ˱;ð²âškº^ÔÕ'õ9=Naùx8|Ý},|,–»¸Ã?A%?þMJA +v†?ìup»Üý–¦¹àÜÌ€þEÀÃlk0ÝN7Ù €„€›ÖçS·ƒ‰åGˆƒ—úÓL_þÿ¼ïÆI¡ügü'Øçú?ÎÍ+½Iu?á¾/:5•9eŨßJ¯}jòŸ5®ÎTk`ŸHC<÷…|™!‚{Âþ诉,,ð$`{‡­Œÿ¼°°œ¢k$ÁÝ€‹éM®s4@BXá«&ÖBL%Y5™Ü"œ»üEð¿7ÿMs¾Æk.3hÄ&¦Ìï×–iéÉ»ˆ~¿=¦¥âÞeôkì¼`dW þ·™t¦2ªì!èÐþuF“I¤ä0ìþµ±R­Nk‚öycƒg2f2ªŸgà«x8ü¯á/üĉðŸ.EMéúÿ@Íš¯ò9u³7¿ˆè8É€G/TTü}ÅôtÜ¡4Ž1þŸ9ó½ï}`¬™"ú°CëXö`ø/ßÒðˆWÆà@3OJJ*Qžq;×›)8€¹LìÔ=ËÀ:lràæiHûsÂø¨±1+ëpVs:XY¹²¢jÆòB}Š{bÏí&z”æ!úórÅïU¿ikÕ‚ðÕK7&`ýì*€Ðâ_mo×ÝOà«™|b°¸Ø¡µkX ýaÐÞâoÇ.^D€êÿ†o~ )ÔͶ‹\Á½÷"xu$DƒúŸ»ÿè` ¯ƒþ÷êØ°Ö¬¦ñaæö­¡öñ¿Pþß :¢³¡¬n̬!ü×4~;8€@®W,ä¦)@IIÉUbt\«B  æÊ¹s“çÎýiàÿcfÁ„åi§KñÈ=Lø/ey<Ù==Tÿè'ôÉåÞÎW¾^1±;pöÙ§Þ쓜Áàèè8üŽM„»ä.÷‡/¸~À|ÎwJò1„èAgPžUdÉé†o`8ìR\áÇ?&€<Æ/:¡?BZ&¤ß¼§6þÕ¤Þ¯$Só‰&¼Gd…þéG?ºÜðŸÿ—·ö©ðW7¢ ØöG}¨ö§¬ QžúûDåOåþ”OŒ|VÕ q" еT(ógS¼>_XÞ@ÑHdóþõõ/®/c_ Á‚ %”ôy˩쨦€)± @d #îlÞƒ|ò¾!àjæ÷jlš—édÏ®%ÂÇÓïEû®L£-+‹± €OLÀë÷›Xc!vàèvð—w!ÄTð_¢ãö?·¸ô7ÅbZUÿ1 Csظ&''czš•o‰?pÿLnÅ]Å=‘¾T”W åqù_SSsí™–¯ð9Þk·{¡`S8Ïd }VÀ‰}TQñüô &F¢ÆŽ_¡@øÿã›æ–™j^Ø—7°bQ÷,MåsjÀ":+D\Øh 8|N@%%b ZnQ%÷&s€:4‹5K°¦èi3¶l§óžÞ¿®ø%ÄJ.U]:|©9 ªBÿW\+®•÷Ê㩟ôÃÔKà­?/Æÿ&–ü3ð·©ínüC€…P¢Ñ¦z¶cþH ÙYªüÛXô×ÖÎË~;ü±ð :íųv»fØŒ€}ïÃÀ-Øþß„àmýðÈÈ-üŠˆDÀ½°B‹u úa3›úÍ0¬3Ÿ‹u†3é(`zY¤ [«Ù„òé@¾%‚”Qí`vˆ?" ûŠjL½èÔ ÿÄ\˜¨ª*©ºJðÿN6jþf2oò°} €J'‚ÙO_'ü—„ '+;;[†À\«Åå +Î5yzÂÛùÊ’lQvt»ÿwP’]îq·Ûs €QÅ=w½ â>Ù9倾l®þåN¬8ÏJÝ +’¤FéâTŽøsË]’ÜïvõZššæ–×‚Â HͼýÓ$ÿƒ˜i¯©i¸ê µ–HmΧ¨¶m +¥%|ýçÿÛÿ¾çÏÿõ÷7ö4¨ÇTà ´ý±îgõ4,÷'>0•ÙàË$š‰"?­¼ˆþ¿5î#.ÏŒ¦" Ö(L©ÖD–aÈÙë ‘ø._”1H-0 cãÞæ½‘¤Ä#D8B’÷(a +È2ÎWØšü'ñð=®qzs/Õÿæ§Ìªý¿>€nà•a“Ù¯5ù5ôBØà¿ËÈo÷ÚY Èxo¤¢^{×ähûeYÌ(|‚ëØ÷3éŒØFv4µå´9à€êÈÉ™©)ÍÉ)Í˜Ì øÿè2`ÿÿ“< .H¨Å?½@€úŸàÿZ ,DžùÊžâ¹¹ô0€ˆð#€÷†ŽŸ8ñhü'À €Òßêbv­F;¸¨©%ðãê +[j2ªÃig¾9ìú /@à¿El²[€ãlî†Ðt 0‚ÖÁȬ)ÝþÓà)€yÉ–O<À|ZxœÞ_¸®xW¯vT"Kàp#ZY,„€áÿÀÊÀxÞÀŸþ³èÕ?ÝÔ åÿ} SZõoò~b ^ñ#о—ñ?&T€êÀ¬1¦. +¶3\ó«Uöí¿Ù¯ÖǾý µª7Ž\Æ@?|wˆ +ÜrÌ®¾ïX}0 P¬Gô8̨ým,Ôëaý[§?ƒ>€Øà6€êþË9@ljõ=À]Oˆï÷£ àgì÷‹ƒß`^¬-ƒ¿´~¼K,A ØëÕôBbÊ +¹•%Uجê¸ZõŽÚ +ðOõ¾^ ­À üg]ý²âÉR^ò@ @ @~ÉÓ?ÞTdŸh +Žö+㣟ÿ…=Ù·¥ï”2A¾»³hwLÿäNyÔî•ÃãîÑ.¹+,ÃH–©Ô÷ (€¤Ð=g#dR@ +ÀJXî ‡»²;¯»” ‹eîcÞb¯‡ÇÿmÁŸ0´Iª·Æ·)6ÁK¦šè^Þþ÷¿~kßɆïÿþÆ{Pÿïþ?ºAð,D¬SbÀojàúß7‡ k”‚3§Ø Hôv©ø$í #Q,F°ˆÝ€HjjÀ&kók|9r;Î)‚ ›ë;cÒ¯ +˜0ÚCAð¸à5¦Ò-€dòq€·;_£é5# Œ3‰µ?¥vˆ¹úǼ~»ßK˜E\€ñAË2,² ù‹ÞA¶ 8o4vP™_"²‚yï«hÜÕ šè=ƒ*–qL¢ûÝ;ªü‡·¹ÔúŸñ#ÔÇCTÿ øÇöpKKU‹ñ«zŠWz 鼯Úáëž339TQTðˆ@A€¿;>ýÞL©#‡ø‘ÉN¡»££r¾½%'§z²º¢¢b‡ü6°°baðÀ* $¼àb@ó•f¢ç=‡_j—vÏÚ4Kðµå›m°Ì?š{´’£Ý®–p/÷Ò¥Ã,-Âÿ´ oÀ’÷§BÔe?“·×$þEÿž#0pkJ3mz€7ëEÒ&üt¥ºžžƒím¼ ›ðëT @±š´ÊN@p,.ÖQñO¥º­Ö~_Í·woZÝ¿÷êO +‡‡?°Ý®ø¿=2rkÕÑÞ¾ú ß¾5RHD@¹n˜€HWVÿy•ƒÔ(`!0 cààÎÛÄî”±/ðân”ô~¬èˈ^¸ü_Ä2 `0âIìTæÒ_ÍÕtÀª€ÿ×jÎ_;p~þðX#€ô `îé³ã2¬‰HYÙØ|Éó’k.8géq?vËîmÌ}yN HXõû¿ƒr_„rØ2Úåvwv)£†Ã·âvžm–ŽÉbã¯sBU°= ätvK}J¸/ì–Òh8 XFÇÇ-ˆ²0o®=TÉÇ`9ˆªmCu¶}à{XЇ áÿÃF—¿õÓÿô÷N~÷û„ÿûö1þïüŸµ|0üÀGEãš?êÿL«¯¡aŠîì‚ €µ€ý(Ü~£Àÿ_G|ûûvE9*8²F8Mf°`-Í|Cqñ¿žn¤°0po'~ë©ÍÔÛÿˆàö$ÛÂ)[†€óI‘ ðl:46s¯Á¬yÓŒ$Oî˜Ç4<(3q±ï%p7ÙïŠrÕL}ƒø_«‹iµ¢ÒaøÁÁ¶6çQ­ãÁ»&GN é?53ï=ÿüôóCÇ+8<‘V‚*û+ ü«(¯¨øh¨ñÂw.9Ó1zA¢èWó ·W¢°à-À™ ‘0ÿ(üÿˆñÿvD2 +ñÀ/ v»¶¤c†]+v̪î<ÌÊa¬bi*W%ÂCyç¿êþ÷ˆÀ! 󱀦¶ÆkâæíSj,„Ù€Ñ|9ßf~9¿nɶ”¿”úâÑýû‘‰SRyµäjGáU㥬Ƭæ,¬^Y¹²‚]VÆò,*§v“PýyUÛS}ý-w´vuPtÐ9ÿ<Ë[„éƒl¥18«VÿXÚ_5Â+¨]‡ÈÀ4X]å˜@*ä5ˆúñ× ‹ÿÐ xïޜ‘aÛ¶ˆÜ6¤ØôŽU,ì-¾¯YxÏtë¢ÿëy`¨æ‚~*ÿÍ¢ bk놅ÐP[ëR‚}ƒßl@"€Ê?bÄ€þ|…ÀoÖkôa hæ*ÂÌø¯ñzó½…^;QNä-ìT^Å•Àµkó߀퀂OˆE‰ì§»d™€ÙYRvVv v€ãEÁ¹~¹hÎå[>üÜ/œuê‚<ç&÷tz”³Eã§öÝnYv[>u^µ|˜G¸~lŽÐþ,+deBV¨ø—¥Qé”%g·Ó)uö;;ÃÇ$çœû”2îqÏÑ$p®AÖõˆ}u®õo£nÓŠ­ÍsÌÞü|ˆD(”H«à>9þãò?ü¿?jøýž·þœðŸ9Àž“ÐÿÅ!ò‹7€Àå‡ ´¸NÁ$¸Ëÿ7î[ˆ9@\ˆ…ÀîŠð +@”Ð}!µîBž@¸  µL{›ã˜,,§à{;ã ”S€„ºê·É=\Rp ºo‘•Ô¶utÏÏïí5÷šÙȬª^AãǹŒ_0ðüqŽ3rÀk#ìÓA +PFÿPV†h½·­Þh,ÑBã ·S 0*ÐÞµ™b¥9ËÁ1ç8pÑ¿à“š¯5õ]xuâ«þÕãDuËw.½ðã×TuTa‚XuõPeIîWñ?„@x£9ç@˜bôC¡ÀÀä#ǧ§grrرÂô¹:£ÖØ18S= )ÄÐŽ€<^¾(  î 0>0àf ãsccã¥CGö—ÔWÒoNU³y9М_ö²ø«xY¬½l¶Á0?ÿ(Wst"'EwÕ¥K‡.e±ÀÁBàZAàOfÀ»~¹Âò—,*û úÛ¼mmê @þth´j*€·×ÛFðï€Ûÿ,þƒø8¡Љ$€ÕUÄ:fuí«ª ¶°€½ºa¿axØðÀàV+€`½}d›€7ëÀê–Ð,¦/ÁÁ§²‹…#a€Í_W§§O1 ×üÃõ©®¶îÕ3¯B)€yxXíPý_ç§Â8-Póðý˜þ3ð/š‰”™ýfyÌ @: ß«É7åÚváŒà‰«HŸª¬ºZòNUNÕµw®ø†¥±Ï­tv^·ôIrv~€<@ ÅIh¬%×yļ·9¿†LÜÍ”èn«ûkók¯F߸üo¾©ï6ìûþ[„þ'÷`p£!ºõEÖÙ ꛊª¦>út“ üÏLwÒ`Wz u?ü~ZéKÔGSì „é?6 ãlöÚ`_€¸X`c`,†ˆlÌï €áý·¦Nl°å0,…äÚæ6ëÿ£Ïå÷B¼£1?eèeÊ®)ë]ìeÚîÕ Æ-³cì3jý¬û×¶icœ +L5ŒØ„Î ‹OœlBqÛ6SªmspõÏ‘Áp¤n‹™rJ‘šCxWñÑ ®þïG[ðÞȸÆ5 ÿÓÕt¤ÛŠÊ ðž»ù¯ÆŽŽî=—Tö|ÏolÍÁܼÄ3¦“]s2¦=JˆðŸN!cBæ CrMF5ÎŽ}0Ä Ï2TΑÀÜÀ À@ÞŠKTƒ:täPåþÜzâ3F!l÷r‰mn¼j«ƒmi)ÿtþÑJNÅ­4^58|©ñ‹^:@.ËŠ 2 ^ìù«Ã?÷þé©ÇLý±(t€éÅÅôÒƒF0]ýóþÿ¬#6ˆŽiÚ ˜ñŽt¯}X?Œ¸_ÇÞO 1X¹…€~xéfæKöá«DÚÛﯪL vkdDÏ“uÃÐý›ë†±æ/ºýØøÕ«µ¬$àGq-&Tþ×ÖÞÙR.òð? ÿÑ +Nƒ•fu S¨ÿ9à9£±¤̱’x|Õ;„ÿB €/›¨ €‚-´<pËÅÓè¡êŸ®lÙ“í±Põ?1ü°?üôÙÏk§º³¥¦.çYiBö8ÃA%»?l!Ðw‡?œëïírHTÀîRÂ〪Eê$ÞÁGcÀ”ÝŠ|V–F΢pà:¤„–¹¦9$×Ö„ðaN)`þySDò#wžEp¢% +ð‡Ÿ÷€ý­†“ßGõO/ÄnøÖy¡ßÇþÂñ ódCš° 3ÝØÅW믅€‡¾8D€ô^(Bà>ÔüÄ·²ÇÄîmÜK.,[oÇãqöb 6–wÌP˜ª=€$¢’ÐX.vª´n ›kÛóÈíÝßGõ¿¦×üú¼üæ—i¼fw~MÜÿ`úãÕêLÚEtLZa~+^ W@o =?bÏŒ^£×ÛV¯5•–š˜€Ä¨þ7iï¶1P +o:/=ûþÕt+õ`ø¯È›®®Î¨žDªPEËÍÓ7mzÛÍï}oЈ(^€OIåW 8|èH%¦ i€FÞr­BKãáàïÄà·ƒ9:ö b…„  ÞØÑ’#¢wî\á0 g÷Ùc¸wºúÂa9Ü3ÊŽDÁ¦àšj´ö0 W·PßòZ·¶Sjk€#î4Oå¸oÏwö@@`ßÉ“ oaJ÷Y£Pù˜ÂÆOÿOžÌä)€/3=  wÿlËøuÀh<2•‰7–£—ãú§P$±úþ;rƒáŒWü XØØXÄPIÀrD(B;´‹$VIˆÝ@ÁÐYáGé~ C€m0€ÞJªÿmPrá¯Á$@õd zÊ +½?!½ÝWË%+ëÞ…•ô1¡|.g¼z¯¿¬íˆúk+Å&Ú˜ÖÞv·^ÇbÈþ™©~þxzøŸÜê˜ ü_»ÿÇ©ôÏ@¤ Üsk*ò oÚòõfÛ¿¯3ŠàO>Dsa¡Ýd'ÄÔu0­É¡ŸjèDâ6@„ÿ?ô1f¦Xs€X®ÑØ‘S3Y·“ d©y€þüXœ³ˆ4 ´8¨Y„9t¤d?F³Æz¦u" PhB5ÂH#Âã¨ø¯3?m³ÙòOæR1wËXY©»Z¢;ÝÿréHãá¬ÃYçÓC0€ñÄ”oüi“‰èm="1êyݯޔ^hnÜþ‡T*-úc¿ ¤ÿg8µ³Êom4ïgp³ÚUÀ*á>:ÂÕDolëö> þgø%xï֯ؖ†ë–Ó—ˆ °Ъ£øÁþ?Ýÿí-{aáEv *€Zƒ5¿Ù\7l6ë9𠺿ãå¿ÚaÀ=€M^¤í"ÿnøýwXÀúº~=ëx €Y"J4{.âr¡ÌVxúb% ’ð¿ƒð¿jþ°MPðÀ%­`1É“È&(¿@ ;K¶p÷‡OK}ŽЩS§ž¾àñÈs.E–û]aÏ\0;ûÃ~÷ÇyTÁ8:÷aÞèuùX¸K¾î–·ûØh‚† ”R©O’º¸u“ŽS»ÃnÙí »‘J0×´\°–XN[­}!IÛÝñ6kó›kÜx„Õ}ä6ö7öý^€ûN¾•^ò~°ƒ(×ÿ¾)±þ× J.ÿ§¦^ßšˆ@\eø„]¾¸ïg™»¢0Ї8(.DBôe­j шàóH €äà6ò„>Év¨Wàt4 ýPÂWB]Àö\ª`†@¹û÷?‡ @Moo4^cfŽÀÀ€Ví&?0Þhò.ú‘|£µ«ò?£: 7¼ZY™©Œ[¢e0Bã„@væ@´ èªmýîŒ ŠØ3¯à“Øk,ûC¿œð¿üùêiÄ× =‡ˆCµy~¾ñe¯Í`ú4òÇ~rxæðá#ûs±`g$7~›Q­ú>TðÑߟž,ÍDW$fç&À pIîhAàŽâÿü|€À†˜´–§÷¹€Á Yìz9Ò¸ÿ·LÄêMöƒè-+3#ú|sþS˜ý‹D€%ª6ó ææ +ÖQÕQ9÷¡K—@²šÕ<ˆ-DˆXþT€ikÛÿ®—×a00© +æÃ­ªüÃGj´eªðl›¬Î®–¶±Sa~? +G.Z|…U`±H5 ;•ýˆ^1çSù~{÷b×O7Bð_G•]ÝÒð0šúÄ^Ym'°zßP0€«· +/^$f;@}?Kü 0æð§3,8ƒv€-€ê¨þ®õûñæ"7ˆ7ÜထX€è p4½«Œw96À ¢¦?výàüµC‡°ƒv¿É3²ð$K¾Pñ÷ÿ.:¶F`_$цÁŽAT ßI@õÿÕÝyåÜy@¬lË€Ûu°Ÿ[¬<ÔxäÐ~¸7r€5B[/’"óE*àÒRÝ’íåü£G{Uo·JãU:—w\…©Ë¿ºÔx2Àó´Vа„þT€W˜ýäÕÀ¿ºÃ[‚Ä4Úæj`©syÖ÷·ëtõ°ÄBýßÎÛô +aí`ö®‚` Ð1 ŒGe=òú«]â·.¾=ÏÜ +\¸ˆâ²¿=ï³Ë, ´ÛáÐÒàÑ–}Ñ–h|_Ü~AŽ·Dö¨œq$ À p{ë°üÿ–†u_n9uºæ·š ?y«ð-`æ‡-À„S¬ù#*sËÿÕ ÀFñ?‰Üà``µÿ‡)ÀìlJ ‚!ð$Lg‰M)Î Rà \] ZVIAô€n#"€E‚C³ŒÖÖׇ°¶ +@ pgNÉ ŒøÃµ 7vþªû©,//?T¼ã $üÖÕ'½ì +³fGQ@Ûy©ÀÃÈ`‚¦É»l³É€4ëèÅHŸ@à§†Š†¦i™¹Mjn4>̨êkÒ"&HµË©Ë™ÞËæY®GüŒf¿Ÿš^¨gnÝ‚Œ×c1m¥vÆ`öÒƒ²èÿëJ¯Ñd6y½fSí_»s|ýDE¹ÇHç4ÓùY iUðEÏÒ½Ÿí… ÀÇÂHD"ÀAˆ¾ë}ŒDr¦‡.07 à¶<p0÷¿sC›àmƒþA?œ¡Ü_Aå߀æöi¡´ºúXÈoôK·f€ÅýÞˆÛÚíî ê?dz¾®§€ +Äࢠþ&—¸ÕÏÚûqùçŸmýùü€KEÝ”ðBÐ÷fÙ0€›¾ ‰-²‹€øB;oý1ç¿"ü¶_fy ߻һŠe4½á”µöÕžŸŸ÷ÝÑ+£npÿïeÍüõú÷Eäà†  ŠÞ7Щ2x@ÛO%ßP/R^nlü-L€ñ±þƒò§®£}Ô÷ú?Õ_U¸ëÿ‹ꯉ=@ •ÐÃK"{„y @?sèZZÏùŽóž¹¹Gà[TŽü?|[òzºzººò»0ÈË“3gó£KEýò¾¼ûW#€¼¼¼-¡¤ßß?H&þ“™@’à@&à¿8ÆñøÎ’qz÷\RŽ6:ñ(3P" ødûìÏçÙŸí´G£0|~ÜÞ 'ýç h•L|ëø—}!‘ÒEtŸä^ú„ ¶ë“ · 4;SªÊ¿Š¸üã®ïWló:uc–0AŠZ}¨x%`Öy:ü/¡á¹ö~òêÚÈþYVb êüúúU•àA2'©A€ºÿ~„Üá^¿Ÿƒ„W²XBŠ5v^þŠú_y¸²¼øÔ·ã±°Í"ýV‚@Ìþ]¢ûw¡½×Ñ˘L’Á…Ñç°êº&ÍöÀ^¯"̨$BötÙH» ‰@¿F·b ¶å§‡÷>}Ÿœe.»ó/6þkj¨žÆÛŒ¶ ÖÑÑ¡íàÅy­±nÙF…ˆNKè›ÐRx%ï_ûoûõûk Ø€’4¨ã8lT#à/úžá½ÿ„ kÿE<(^¨ËÙõ»½ÃË0 0pˆ4 =æv +` ÀþÞ³ûåû+ªZªªŠ‹‘ØÔd$ЇH«¥~€à$êÿ%V4ŠÀ{–n«ÍÚWÌC3¼kÏÓqªª +"BûO\<ûÑGlúÈá¸þ7Ðã ä®au@À¼õ žö.F +áð?Äà€M@^ñ_¹©5™ÞF 6» py{;[ÿ‹–;ãx  ]£ŒR³>&¤bÀÖþÿK{~ìÝݼÎÿ=ý(”€nË}[Wîéð=7ÏÏMèßÕgóF \âah©§êÿ2 ^Ïw¥~T¥ân0ŒZ=fÿª#pýµz$ýÉ ŒRû¯F ÂHÁ žõza`ÕK +½J&³f»I³µßhóÒÓÇc«ôTvÌ=ßl`tEḢBr(›ó»ºº „wÜãðwžëoÏWÞï§!8$ý­%IGò®c`À7éwÜ-iMÞ- zã%ùBÆÈŒÇÇ;ãq9*_HF£ªÿçäh(jß|8„LÀ£¢!{ï>ÙNõä¹9:`$ïöƒ(âE@ÖÀó ]$Ò|©íÒ'…©Â·²€ªñ:³ø‘oøS©ÇøŸK3×~HÞÈ.²Ð&ðý7 Ð9#§#:\ב 4ËB¸N:g'l5À¤8ªÞÖo‹¤ µ«CV&Ä:€ð|àÔ«l¨p!Ê,Äî?æ+@Kª@à+8€òÊòòâò>«µÏb ?†¢Ï;a—!ì’pIg6ÅëE3(™ŒfÍ2L€$i™û¯Ðþ!$Ȩ`U@â(:*`ûM„‚>V‚iþ Òi#uó99ÓY¿ï¢¹EÖ¥§Ÿ~ºä³ágÐ +OOOïšÞ5<¥QéW…cÈÛ1†Í†gŸýŸÏ>KÀK§[ð’ô×þÛÞ¢¢¶Êc4ÓCà$/€MGÁÌôô—GÒ?˜©.ð‰ €´Ö—.˜™xð!Z08ˆ5Àp& 'ˆT/@ù,§µ9²ÏsÈxkìpÓ‡ É-e€éYÒ +:@ˈÛ:âv[­6[ŸÙl3z´<8_yÞS‹PÀ–S-ûOà?›%èåoÁ +@óìñoâИmþ4â¯A±ýÇu_ãrqùgÀVÀ ø!ðkß¾Ò3ÁøGexô¿½|èEË~€ð  L@ßå}W/é'þ›jì—mè·þ¯ôüÄ»n7š½›{Ë•ÿF‹[Oèî¸z#P½R0ïEv€Þíö²€~´ž«=^ –Æ—-Üü×[è…꺢7y¿¢¨A@õõ‚æçŠ?ªp÷¯.2?@@„[ôtU’,Š Ì¦°—J¿.Ztؼ^£Ícƒ†Äó|kàÞ`n©d±¿7Ÿ€ èÎïÊ颋®Í'ÆCùù=ò8ëô:¿šõ8ú3ýãŽLÒáÈ8üÉq¿?ãpô÷—ôß dçÆ“Ñ ÑqÿÑmw£Ñx  ñxô0Ý»|4*ïÃ*à‘}ûކŽÊû¢‡ m% Ð?o%0Ñß¿º°-ßê—)úä f ðï +› ßb7àÂK þguoFŒÞ>Ù³0Jqígµú_Ô¥N³ +PUžNÍ6§"hýÁ0À›ÔÒG0÷‡?ÐÐ$&gE>@B ˜\‡OÐÕ9¤¬/ð@ÐìiôP¤ÐKk¼ +€Z³z‡ €HN,ºÃû’ˆäÛÀè+LATZûú¼}ÔåéQô-tÖ÷Pø£Q$ÅKÝ½Ä E“ÖÂk¼°l‚ŽzB•:!úó6b2@ ˜FD Ö +«|¨q~ÔÆb33S»ÔòÏ̺è饧÷Ö ïÝ55=ý³é©œ™™º™f¦b¦˜‰Ê%C“1]àòZž}ÇO™Ê¯¢Hå¯ý·MõÿTe¥Ç(€À5TÉ; +r¦†k>û’%€™©iȘÿg@ÚÇ@ {¿nfjxø³š‡[ÿ 8·!X8"è¾D@¡{ge4¼P~è±²Éhl2ÂâÎ*õY\}.vdÀe%@`±4ޏ­t0 >6ö@ @åùJO•çߪªZ**Äà³Ï^ü÷,ø› °øQö±$&€³M&uÿŸù.Èþ€ 3€ìàVJÞØà6¿]\2@l ÇoÇ6¿oeûe/lÆôYÿ߬½ÏãÚùóócŽº¡lÔê'ÜØï¿Ò¨Ÿ5¸/è¼wÌ=A÷5Æa£ðül /7QúYû‡ý£Š2*€˜óC ·ÀHu¨7ü©þOؤÏ)zL(‹âÖ0ðJ²3$¯ÍÌÀlÃa†Œç¼§Ò8÷| €:ÿÏžAé\Ú_R”ÌÏóGCy-PlîÚœ?2² 仺òâ™@(Ú#_øjžQö8Zý™ÅŒ#spˆ.Zï:@äd&ãhÍ´Êã™Î[%Ñx&.:Q˜tÆ£²lÛ[d{ôð¾(¦-G[ŽFíñ¨=°w†ìöè€=ã„pqIÿµ‡FÜžuFRÍoµ~r©9 ­¹­Ð¹°¢êݬ n6à "È5 rŸÐ œ–€‰Î˜ T}² ÂIÁ‘Mì04;+L‡²YB`hòöU‚·o_<˜;ƒCëÂ`ý¡ Èî|ÊrJÕ  _x,ñ2 oQÂè«(:ŠÍ6©Ïlɲÿ’Ëe Þ¦IѸè•Nh +ýÉš`ðç]•\Äò´“—Œ&àF“Y2óä“þL‡ÅÀ J7 Q'ërrrææžÎ.û (ûtMM*ÿ4Áƒ©þQg3UkbÁ´1˜æDPæý³Ï>ùëß?ùk£‚TBÄVøÇü5WÊ+ªÊ_2Z9 +Ý?œŒ±žl|1@†C€c"™ª¿ ¦åßÇô3Ÿ•|öôéi@€2`J6v2  S—^Ú@Õ¾JÏ!ãÛÆ·µ0ºé£Ò¯Æ[“0°"ÕÍbÅP^@î·Þjë³™Mã¼ÑE—§ö|ymÕ©*B-û+À°ðâà(ùè_ÿ…°Ÿ#€¼TÕVûá™/i²»!‡!í’\ ^ÖhƒÐø˜ JÌ @µêÄ >aúÓΫP +` `å2OV.¯xß•¼cÞù,ŸÅ[}óÆù‰õWÜpîã €JèÝZ¸ ÃøÞ70z¸9?661¡—°  µF!õ«¯Ù`±°ð¸ÖȬÔÿ,íãe¨ýYóòŸçŠÞÀìÿ¨KõzûÓ'¡¨Çë%N¤§‹Š$‰Ú~«WÒSÿ?o¶!`îøV €0J˺ÓgúK3]=þ^==]ù›ó©þïÉïÉïêðÛóìG@Ž÷4Œ‡þþ+c“ÉdëAÇjkkæ`ëÐÁƒý­ýùãÓÉqêà·úñ§oufÆí°¦Ú!Ï‹Çå}Ø pnUýd4ÈÏGÄ»çdG2ÓÚÚÏú\¬>œœh ï{âRîO/5^ºôVa[ªí’ó*5þë“oþ‘ÃQå 4Ã% €8tÍgšu÷\©ôÓp¤ÂZ§;£ÃÀ&1Þ@Âé/!²" 6jþ4‡“ª0ÆTï¨Ø#D˜¿ c€‡3`ÀC€9 ,øÐ`NX(àF_µ +`.¯ô÷í¬RxC¤Ãâ:oõQÏ‚FFј0è¦z¯(¦ ü V@ÓL+ Œ}z%NÆ[°¬e °¬]ÑÀ+ü=¼35½ÈJÿ¢û,>Û;ýôtÎT55þtÄb3±‚j-ˆ2k´4>ûä“¿~Va†gYÍmÔ£VûWûã®­¨­®)úB°T7•3SGýÿût²gî?íMû Œ½_=“ó»=Ô‡XV†>l ++ ,ÿÏ¯ì €¯2(;{âÄaÄqý¿Ë&s¸zXøCAà²<&a" I}Vzºèál¥úoí³Yé>oš÷°€G @#€O¼qöì& A€ëýÐý€—„Û+Å3_Òh$‰P(§Ý(.¿ +?-(]áe, ¼ãcÆ_$ôQe¯šTëþÑõ_Ö^¾,Z…•vh… +peÅg£¢=/¢úóqs~¾cŒš~ªû–FË{Ù°_P^ßö­+í7±E Ú¨ìÁöóTý?Ô»'õn·eé}ÃË/××[p(Àký€£Bâo`×õsÌþëy/e^dBô§À:sPôH ÄN¤’^¡Æ¸XÀÆÀhž7{€oK܃õCˆæåÙ»º7sÿ?r,¿ksþæîP¯lïŠg:£ò>9jP‰¶iåÍ8Rã¿ÚÏÉ=ýPíµâ2™t8î:ÿÝ»²œ ŒãeÜ!Ûåøx ï´Ë ‡Hÿ#J÷¿/´/ŠÆ„Óþ®¸Ü »håP@öûýßýXg‹ßKb 07•úÄ9ÉNÀ©„“:ygJˆÿÚ0ÿèÔ ôÿºÈ&(° ûÿ7P÷7Ñg6Á;pC Ò…öo“ Ì.ú'®NÂ0‹x qr-2;ËrÀYgÖðê +X\–Àê€ÀÒ§wÖÄ& nSôåS€ÚòrµÒL'.Ôÿ>½êÙ‰ 6î +£ùGýVè4çâµ?LÿyÊÏ+€0ÅÇØðz5F€è¿ üÿ@T_[fNó­ÓZ¶Ë#ðYÍÓ%,û+ù [ÿÓ93ÔÄ + +´ÔüÇÀ”P­i5tÚe- ƒàΩÐv˜e þc.„‘Áo Õ¿I«íÐvÔvüþ¶«Ê«ŠÍ6«Éè¥:ó±´?Ý13½·æ‹]¦Ôú¯…ï‹*ÿ3yµ¾ÿˆi9aïgElK"XXŠÞ,Q‡lœ,£ò_VZÚðúîÝ•µ¿z»ãmBÚ&#õ·æ>¹ÓÀUN‰`BÀÒÍ,€ÕÝ'y­^¯pd¬ôxÌ6Om9=«ªªÊ[*^o8qâDìü¡Sb@x‹å–°Fâ®_bM ¯ÐPý‡‹¶8¸Š`ŒÀåw°uûe.oèׯ΂>ªÛXäÍÀvÌ|ÞwõîQoõÖÚ/–û7ΟŸÓ7ºQÿé@ÕµRS5?þVl¿§¸9À(½ ˆ‡ÿ°6X^fßé0ÀÑGÊ_/üþ–ýáMÁj€Ea…€×ëy 5@B£A,JP*ºÐKú°—P€›ºÿ1*ÿnªÿLŒymsÀ·K÷#ú¸¿(Ù•'÷æÉëÉg`½lî&(Ð’åžÐ¶¤œ‡}¯ü÷{ŽŽé½·tì/ZèǾ~ÿõëCC`€»Ž¤?IåÛ!Ëòxë¹@ íŒÆe{ô–?DåÎx§=8ŒµÀdDåÃ-Ñ}Q öN»½3$'“pDëŠXà;«ipvý©Ko]ú¤ãs #ÎÂ…õO' ètTïS„°ô¯kÎ-ÌmVyÿ”îŒîž #+gRº,+aKªú˜Ä6abVç<„Ijþ,gséOpùOð`€…ÎÉõYBë‹@‰¡¡ÙÙÉ¡…‡4X,Z[\bOà5®ÿŒ[Ý^ÂièêØ/á***[¡°†%CXdwJ’NÔº˜ÂÞ&:uQÝV¨QØÌÏ´ö²0_˜ÒŠFË >S.¬ ²2€€†0À²IãÓ.t ;ÑŠíAmANÎÔϦŸÙ;¼—wýÿ©f/]ù§½9Õ±i^öóÁG310-W›ÒËZM0-ö „ФYÆ©ˆN´Š¤ð`‰< :bÚ™±ïûoÛã)ö­z6AÓh–¡Œ¥;ª§k>û"Àšáé©°ÂöOèÐxÓÿQ«ËùªÝ>>*û(0èÈ®dT3`LÄ€aǶÁd™¿ŒB»wï®­-¯ìxûm-D€P°ôϪFIl2[ÜViÂl¦úïõÀÑÕlµ™+Ïcà)÷0€ãýg߀_Uìt´þ OëXñGÚŸ)¼aø£zþH ý5<’€®ëšK ‚°…^MZi®õe½€²Ï´@ˆÀ& 笴û¤w•wÝ£lÝðÈŠŒçXèCý‡»?]ìÀ{½{ìòå•­,¼¼õžïM`°q´Q?ŠÿQþ-Ð4rñ‡‚J?Ý'ø‰!€Êü×+bÛ{}FðT`'dPèc®@¸-=a~G É` ë%ôý6¨þóؼsÀ·EÉ`P”ÉËëíµc pds>•ÿc{öŒtŒtôôÊ¡ž¸ÿB4Þs>ûo;åî/ËÄô~=â k ‹ýdñ‚€ßjkÉÝ@IÀîˆJÆ;3Ñrü9˜ŒËÑxT¶ŽŽÚ¢˜Žîƒ€  è•t? HªYZ]{X›€ëê~þ€ÂÜÂK…m—RζÉÛë‰UâHÂIm¿FTàfÁˆt ,ý±0ð§³õŸÛDÀÍ¿sS*raB,Øä¼Ž÷lÒ1pΊbº?Äþ@Ì$Tiµýë“Ø˜\Ÿ%„p°ÂÐÐÚäCAkEklŽœШÀ¥…¡¬¿ÎÚê"ì‚¿ðÛUzÌ}VU}3NñØþ“\(ÿfÅä2‰Ý~‰.Óf !Ì û×hÄ x@cÔ¨®ÀFôEù±7Ž) ½¼¬TûŒ.M“I$˜P7“35µkúgÓ{§aõ?ý uÎÉÕ~ÀõÑX mœÖŒ¡Yö«5&mP¥p7ˆßïŠS­¢ p±‰Ýx4Ðq î{žfÉ+Ü D"’¶`¦nzï¸Ô ?³+g¦õŸ-YÀºc:6#€§¿¾þK€PV6Hõ_``'šÿ%%­%%%;…¯¢þ¿@ ®b÷_Õ¾ÝñvGGS%¡)ìöÁ ÈÚçbÁ=ËDQûá„ÌÝÍó&¡èF®{±ÙãÁ>ÕÿÝ'NœÝOõÿA!€ð`çõ4Q¼ÿ/BÿÉ+)¢øcâ¯ÁŸ¢¨V˜ð4€-Ø (xò¾öö•ö˜¶ÉóiEpзq°70àvÿÚW„p»oe¥`LÕ{Ý7³ÃÿíYwŸê±ÿeú0Ûÿó2•kz½Ñ¸²€[·näÓ÷Ÿ›p#?ptTÏXd  AXˆ=>,òé¼1®ÿ< T`U0híoáÄ@ߨ:ßÍ€¥^Ï¢ƒž;Gè­ô\udó¾;6æ3ÿ-öÿ]€Utö/y±+$o µý#Çöà@þH*€²sã¡£ÏÇ£=ÉŽ§ö„¢_â +´Ú?T´ZÄ"½Õ¹Å…"ÆCŒ ¨ü;ÉLòn¿#“qôgÆò-‡ÄɸŽÇ¹ØãD%4pî°]ŽüçìŒãn+2yð À’:xëÑÛ¥Tê'kë‰D +‰¾W'QíSjøŸÊü£î7·åæþ¢MQ€"ÙÀ`ðû"/0»Yà&Týˆf›ðAsä:>¦¢>›ÕLªåŸ>\àÀ̈' “ŸÞ¾³À¡Äì +>íÃÚb‘H‚ +`¨q0`qmnuqHÝXZðÅ€¹²ÜÜ'ñ@ÎÕ'2»ùÄVšÉÅ~XùCѧF›…|&/(w‘LM~šk?ÓP;P—ƒL¤5×þU ÓM¨¢#37f¬ŒuÄ ó›É™þ`:‡p@ÎÓÓ?«öø +bÁlL.rré"F¢šîÆ·¬Aû/2‰Òì·:’Ê?ýÈ ÉÈÅD+!€^¯ûžgˆ¤Óô@ðãÓFãLMÍÞÏþ¢“ÿ¬foÍðTüŒ85PØ#QÁ(„Â<`ék껈þüS‚mÛa€’ëþ?,,h-©QgA€ÀTiiCÝ*'ÐD}®>ôm.z{ÌÒG×­˜s«í?]¸é¬nFÀ µtÔþ{j=fÊ¿§ªª¶¢âuêÿ÷#i WX³p䇬€”5,,LMÀaú`Ï ù™ÐH*ÿope¸QÚÛƒ¨ÅíÛÛ}Œ“Õò/€˜ÿk±èÓ2 æ‚8¨ö޽;:6±r_¸zÓ;ÞææÁ¿ž!€^ï–ÜÔˆ[ôcf¯lmooÏZªß´ueÂ6æÿߨŒ6ê!4ÀèeûÃÍO•û±§ +¾>ëø÷'&FÑõcàOÙ oF1ü70ó…#± +@HB²è½^ó<ˆ*ÿôê}¾eý_º×ÿßcŠKúº^¤J߀êÿžcôFGþæ‘.¸Ä{ã½öÃ]ÑÍÏ—Ø÷Ø[¢ö–/þCð–ã³5 €E† ¨þ‡Z[3IG2à„’þ[àVHvDãÉN¹s<Þ¿”ãì +âõ!€h½Å.#0>`ï‰;’~LpŸL<擺kj×ÿÓŸ¸Ô–ºTx5á\XO¤Ro&tÍjë$À¶f81 ÁBðfîoÚx$Ðü DÞÀ­6©È@͸èœÝÔܼ)ÁK&‡f"`RŠ+À ·Ö¡˜AAÀ2€;ø °¿u¨$ÀâÕ9u +€Ô%¶úÂUeì+¶õñˆ^Œ¤¾°bÂøß%,ÎÑÓÓiÎ@½¾(ú^Aù§©³Ð(ŒÏ€¨á‚Zúì2ƒÁeÉ¥\G€Ñ¨¥ª©í@—^P73S0M `&çƒêœ™êiâ´“ƒÓ!ªdÐ0Öh –5>RµÑé{3AåNk„²QÊ‚±leGGÕÿï€æ6zå bƒÀ‰êÄé’§‹žþ\!/âPƒá]ôo=M‘6ÀZv6ié—1“#€¹¯Â)ñ?ÄAŽÀ@(QÿQþé­õ3º¬QcËÁ”ò àWt¼m<¤m25Añçz,ŒA@ØÕÇ!ÑÈtu1°°P²AÓí7=••«­ø%§ò¥bOí©–×wŸØOàGû÷¿Á€9hèçþpSÙH]ëK.IƒÄ,ÅÅDÙÑ?ïÓn\4 Ð$B.c´ß~ YáÊì@+6ÿèƒ@A-ƒ‚ .¯Ì#ówleû½Ú/.þ›qÞhþ–>ìÒ„K}1üè%ãM¤ +ng'û€jÇ&Üî17;# p´žê?zÿkõ†F°ú1ÇW„ý?°0ÊÄÿ¨¤¯†z¯zCý(ÝY½EiTðieTBõ÷*È à–¬c ÿ¥¿åúÿ½Õh¨˜`±$™—×êéÚ à±c#Ç^=FàØH~wwèHWOÏø{ù}íÉ8žzþ\‹½kß×8¬zP‘¡Ì¡€ÖþLIfÀ?.ûãù\ôVo<Ðpî­sñÀ­NÄh€0.Ç¢öhË>ûßÃ)S€ûx²Ž€‹b@M´ùÎÇU¥žxâ“·rÛ +sEPáÚÂäÕ«‘„“šþH"! €é«mBÿŸZÿ3¿(|¦€ÙNŸuÿ°¼Èý?Ô¼ pCð5"à"A€æ5ØÄ Œ(^ù›eÀ°€]‚ññÚäúÜÚä † ¼70¹¶öéw;.­²ìJÀ5îýŨJÀÛýý\ôo¯‚X[ìÿ‚o/.6÷# PvÝ< ó¾Òä2›¼’Y‹Ug蜯ioR˜`Q ³ªÅbÒ:1òàã°ÿ"]c0av`jÒò²|¥¶2 Po:¦ëªg +ª b3Õ¾ŸÁ3Ä?Fý"%—ª:f¹úO¦›‚· `ú1rÅq)ssuZ#Û+˜´ÂU´£ãêé÷ù§íõÐ/Ž~³!hæMœpP½Wdsn”Þq¨ž†0†*üÅAÕߨ¡-˜™~F(¾•|cà6u Pl‚ÀÎ’Öö (ë$P·{÷¯jx@¬à)¡gfè1·¾>+¬—!°¢Ñ´Ò™\²ÑÓ„n~^ ÌfOù§ª¶–)€ý[öWvgÕP ;¸™lù›.ÿ.8e„ñtÌÊÿ\¤iaöÁšjºVXÓDþ;púÛºÒ¾ÒÞÄ‚Pýiš \ú|i–à)ÑÀ +çc9pe%Mål´]íþï ·úl/Ǭ(­"â×"ém¨êzI/qô»e§ÿªvpëöù ”Ä¢_olåßÈË€œl¨·è zÑós_/ª?Õ ½?(=|êY(¬‚v(õŒ!À_HÁø€žJzÅkePbyW¯óêÅÀØÜ#ðÕèÀ¨Àו߅ À±=¯¾zìÕ=Fò»òº»òò]ö–}#ñÅ}›Ø£½¡h(=øu`‰Q€ W‡P` (êÏ9é8'âöÎ@€AüB¼SŽ wñ8þ£G÷ñ@ :l/ œk“­­$ØcíáX¬AÐü–ÚrÛryð­K‰uHÀÊ3± €Ts3‚€Ú˜ ЉŠÏÚþÔ¿ÈÍÍ}3÷µ_d'P¦ &8ÂSvx›ºMp„Ûo"1‹ž–~Ö"… `vV ÌNÞ˜LPÇ¿¾žØ”˜R“‚Ùè;A€Õ;ýkì0·$Ö|ÌC€¥ÛC<4¢þò»Ãæ¦âC’ÙêÌøRÿO½¿ÄN?.“â¶XôÓpó i@šõЉŒ°Âe¯ j„éÅÈN€iÎ ‚#*:%cº â=#¿Q‘f¥Öýc¾X¬:› ÓÔõð˜'¾ ¯`»>íª^^®6]Ó@È[ø °ùOGGe%(ú9®g õÏ6JžŽÚ¯—–NM}ÙååhÞ¼,;ÛÚ‚‚êêgö~vÿ +€ð7¨Ù»+§ŽÀN¬C,A >‘• †{à3ÿôÙ7‘2Å÷ôâÓ%‹ßŒP³€¹ýÇ €Ë?•}”`Î`;@‚/”•¡þï®Ý]û+ú•VV¾ÍÀõ˜Ôg•ú¨ô3°Ja3l¡]°vëß³Y-n«ÛjõÂËÅìµ™a}d•§¶ö¼Om9õ£ŠûO¼q–ÀØtlÛyÝñÃ¥`ò£ájŽØ+áõÇP@qiÔ *ùEeÿ%ñÞ"¶'¤&­ñC°Ò ­tµOôü(ü¾jàdŸVSÉ«"€èüW¶Cÿ‡ˆ í˜mllL{_÷¯6õ+6ê»ÉÜVNn²X­zÌhܦ‚íÛÛ9@¸Ý“nÝÃ"à( +àˆ’ÿìµÆ— lÿ.ÀÀ«ÿÂ@É®þó‡ŠâÕ*Ï  € ÂóEÏ¢=³ÿJã(Á1èþq/ð‘Æ&æ€ÜgôIGÞ–(F=#{ö¼J½ÿSÇ@èÞœßÕÒ5â8·§gÏóEþ§ìrˆÊÿþs¡Ð×äáød}Ñ2gVûWúá”é?˜lÍøýy<)žKÊþ@ü\g<¾-ï¤Òß¿mˆÇGãöhèyhèC;´‚Ѽ^Ç]fqbmõá0k¨ïÍŸ4_ºÔF¼sßz+q{!¥ãFÜÙöm¬Œ¨Ë:¾h>Óv&âý àöƒÈþH·‘xC5Ø$º–ÿ9±wpƒ¿ƒ €YQ, ÄFà$“(ôt…“ ®˜e0$L±øéíïÄVpû¡«ý³ Ÿ0‡/©7ZûÂMS_Ÿ¹ÏÊÝ +–¼ÌtÆB,çacæâ¶FA Öš'p^pý˜ í‡Ð”‚Ñ9RC `  (¦Áh›´Ô®p¼O5"þ°ñçÓVMAM°z§@† Ðuh—Óšk>í¿Bo™B’&,?!‰-{Ô×ÿòÉß¿rÅ]\[»»nªô{Ü®¥ç©×ä…égúåLï}æŸ>§åcãφ§§Pý9ÈÄNŠìúÂÌt ×ÿ¢¯ˆIFR"ßäQ&·A'ÀLl4ÿª€Ð@V8X6ØYVÚ€ÀµåoT5™ X±þGÕÿ±0›b/´œ9Š?µsVD]Øèè8ï±Ùè—Sùo§j+NUœÚ¿e ç  ìl™ØØyý‡* ¿ +lõ!øBf¦ý‰ÍQù¯‰Ò¿!Àw½­Eà;>,ö¯T›L&zú·W ¶R­FC^€Ò‚ûogo ›+ïÏSý·½t-æócZ­×:†èI(õ6Blz·ä¡ÿßNßßžeÿ7´[_½ [ßXc#ü7èy ,ÂãǨx§çK Ë|êfõýœ¤ˆu@=ŒƒG±Œ@÷MU_ïÕ[Ùâ›~TšmÌ€÷x €(þ€Å"G^èÅPÏæ#]#,xõÕ§@€ÈéÞÒ5 t?52Þ¿yO4„]½<{ˆ^åÎoÔk®®®-Ð+µ™«ýCûû¶ötdIGÜ‘L&/Bp¸µ C9È â Qzm8j? /€8¡€¸,‡ä¸ü¢æbðPÝTêÌOshƒð'…“ëÔû§ +T}SÌÕ5·q ûÊÀæ¶æÜ3ͪ/pórégþ˜ûfó™?Š¡Àé ‡`¶:@zÑý(q‘Þ]yÁÎëJ̪j€ÙIlú±,T?+¨×çÄ€ÙÉO×o¯%"B4(ƒ‡Ö©zЖh‰»ûO—îÌ-a`q¨dˆ‰ +8Ô*üï|ŠÄà/¢ŠÍ}FœãàâöŽÎmf;¢ÙÆf\ÿÓP*(ùP¤±î'LøV¨Í`¸5Æ´‘ ‚¬‘–aŠ‚Ù!léQñ7b`2¦+ÁÏh™üäþ‡~DPC ˆa?ÝŠ`’ÒØù£[ý¯ËËü#AÁn<üX¬ £kŠ–ã¿ÿõïŸ|òø/ß;Y\[QW:5¸ë{ûó+n†#†$PƒJ~?àlãÏön›a[#†=FŒþµì¢Àû +39¥Óløõê>úÅþo‚^Ø6(\T ­Ý?# +$Tƒ±X‹ªÿ•‡šÌMæ>×cV‹«Êö>W¸Ï$ž àêýõ ¨í÷ï1mÆyÏyc­ÇãÁ2`EEÊÿ–-ûO8{öQÿ×zûZÿ!òPx½¢xQB (@@ö°¸^æòÏW³ŸÇÀ„`Å×^€¾¯±™L¤‰ª¾É«- ¼‚€o{52|æç³U|CÕ·u«ÖX;ó’ÕŠ°voÆîk­Vßã* 2Bpžpê¯èõnê˱ûoh¼V_Íð,Ûû@ÓÝ +>ØQë èÇ”wÁÀb`Á(ܱ  F \ýõ£Ø\@ñgÓ@ ôì2è0ïJsÀ·'DéÏ©Ì-mx:zòB¡®®} ¨òsùõر=#›÷Œ€C{Æ‹ö?Õ#·œ ɲÜboéí É™ñoòs?-â•2 Ðh¶Â$(ƒÐ ¤ÿ–ß½•ôG/ŒŸ“Ÿ Dã’ñh 3Þ§WxEíÑÃEÇ_ìŠg’™¡~Õ èဈ.ÕöwÔúcüßö“æHó'j¸×ºÄÕ„“@€¶Ü\hR)UðÏ+þÜî7¿Yø¿ÿ!÷Í?žÉ}Åß™Bá¿!²„üŸ:ÿ3ôÓn¤ÞàÍá 4+ê?.1ؘÿqˆàÐ;.€˜\ ~ÿ*}×}zZ€ÄÚÂí—¬®-eu€Ÿ.–°{#@dÔú«` 2€…/ <Ðø³ 0.¨Ë—̉›~m: ýäÿúƒÏ7!H#BMìè‚JëF6H¡Ë7…MØ‹ÒcDoÁ&ììk¹jµÕFÖ˜|é`uz9˜^nGr FËr¤ƒ3¸vͧÁÂ=† +šûþ‚‚ÚJý•÷~ÿä/¯àøß®”{*JK | +ÀªbY2‹ Ts¶ž®))ºßüÿÓ5ÃÔtt°Sd,þCx ‹¦¦¦Gàÿúêþ%•¼³¦þo€Z… Xàâ/^T D b3€††Ý‡+~U^{¨¼ÒÓdõŸZýÇ$aÌÁ7B IzÉæF ÕB Àf¶MP퟇¡›‘Êq忕מ:uêßö¿BõÿÔþ- ö—ž-+û¨ì£mv^ÿnðŒ_âµ>¼òÕ0>©Q\.5HKèÿ¯ØP‹ë¿…·àÃX¼\M%}{ûåíàéývû;Y`Lë«N+ +õüi¯H‹¢K¬ x¯øV`pÓ8o›Ÿðn½²ž€+cÚ˜×k³RÁ·XX§‰• ñéµÜøßÄá}c•0~èÅ!J8!Ì®YvÀRŸXæçµÃý$À¨âõÒ+œý™€U"ƒ ²Tä ZF½—†ý=kư¨ŒzõsÀƒ€lý_šaEý‹E%/æÉ¡®ž¼®¬¼úÔSŒ° Ø5r¬‹@^HîOî9Fý^´×Þ1Ú+Çþ}‡/|³r#°ÀkGÆ8qg2.û£ññ[TøÇ‘Øp®!Ú@õ2¢r´³ç¹Þh4r82ý T¼Ò€@J×üÓŸï~A7K'ú°X4ã¯4iš mұ؟ƸÀ¬ð¢ö{€MZA-FCî5 +‹@3S64†¨ðI7…Qc&,òa¾Ï»p&muPkb“_j÷}Áeí²ïýe° ˜§Å2Œšôò¿¦µËbëïsŸêÿ£¥ûø•+ï]¹Ò½ãÇÝÝ¿fØpé~ðÙðÔLA¬R& +‰ë@ °kxïÞÏžþ&Cý%¤% 3Ÿ_ó Èý{€jí/¹Ÿ@> P” ‚(­Ø}€À¡âCôïk"Ð×GÕÄeuõõAó–LŒ­.«‚7›Ím›°y6£‘ÝlžZOmÕ©*ÿ¯¼²å•-PžØ¢ìì • ²/ÁÎè@Õø©©Yˆ·cÕ¿Ä<¿·]÷‹Ë`PèU€hêÅW|Ac“êÄô?®(zcŒ¯–G`°ŒÌRí0 ^ÙŠÀÄü†öï^5¿Iˆ2F¶U¢ÿ0u`ÅÆ$U⇭¬Ü¼Ü~Oý·q+nøÀ6ØÂZ L€ £õTú±Ë»E„þ2÷ÿ®=¿2ÆþØÆ•DL^ÄB@ÅŒzü1½aT?!¯#¯¤®*6Òƒ“LÌ=Š–î«ÿ‹‹8õ•dJBçzá42püÕWUàžîüc#y=Ý`zŽ ‘å¨,‡¢œíÉ ”üy2à÷û¾ˆŸµÕ¢Õ+ø`&—à¤?ãˆß +Øåñ€—¢qBÑs„ ;à†@(ÏëE“ÉÖV º§µï¾¸D ’jþ)b€ÛÚr Ûš ?ÑM®S¦Rý‡ÂH"·°M+@ÎþCõoÎ +ÔËæ7ÄgÛ^kn~#ѧSÙˆ@´ÿÂ`““¾|æ"•ûÔEçéAù¿É9ƒàÙ¡YÁp4Ьj IJÿ«Œf'×Pð¯Îrœ0F‰!ä> €\e˜€¸ƒ @ u`iî΂ª˜ûBëA³¹˜Nóa µ1\&ÉeÔô)×LưÉx÷ú¨Æ1ðR­7)\õ4 +^Ô2³B¹ͨ1°Ì|=}zÃè°)…û0¦›: +¸³g†ßÄ[~1lBsÉúÒÁಯz9ä +Iu?-d‡tïÆe×µ˜†·­?ÿðë +^?Ðá©úe>Õw7½î8yò½r¥e/¼ð=Õÿ†bB6£D¿p!;¤cÕ3SÃ5ŸwóaàôTÁl*#yEû/²‘˜˜Þ5<üÁô7ú_.*¡ò¿m½ ðõ`P¸ítd%€jï_’j(Ý*°m°³¬¬a÷îŠÝåµå‡Ê=MÅ}Ì@`铬űÕ=›¸Sw òŸºÿ‰î ÛKÔõÛŒçÏŸïx¿ö¼Ç³ÃóRåùªÚS¯l9Eà•-[**öŸh8q¶´¬¬lð#Çï¶úÖ´ô*§–6öýÅÄUùë]P°0€m)?œô{™n“¯šWüƒ—øŒ’bŠùÌi! +ÀŸ +ßú2Dü€[cc8>ØÐÜ›t¤µ+6«-ëÓ˜=˜bHD$À=óÀì:ÀÖǵºéÿ‘ +>ÕþF 29L¾Á2šý›¢ù÷jhƼ`»FHÎVÀ&ŸÚ}\ê‘d,!þoÔïáFþ¢ò·L|ß ÀýõŸ@ÑRÑb‰ãn2 +åíÙÃÀS@ŽÁ¨ëHב¼îcùÝöÞž<ªþ-yQœ €¼$ðGEÝÔÜê쯿pá¹ç¢=QrCYÔ¤¡-=þ5Þá/Zè_èo ãH¶úå@ ;ï&¢òsw£¼Gãµ¶GÃà–=:î?'‡è[Ä`íaØ'@ä7ÿÔpTûæO +&S:g&À©Â\]³“=šSªíDµ†+€ðÖmËo¶å¾Ù‰\L©2€, àD6 ó¸Ï¥tÎëÌýð@dÐä¬3‘¸ž€ý/²PX%f¯&¨ÛÇõ…õÛë·RÎë 53`èÁg¢«Kw—V¡X[äà†!ÀíO©õÏJ¿è02÷™!jÆè¾>.£Âf£šðãÕˆps#Œ~¼./|yÀ+ª¼Èøáõ|ºB¥_Yæ 4“Ñöº®¡gä$AHŒËÕ&êô1ðä*±?týÁô2r|0ú`™§ °ë +3 škZVüÙï««#pò—'wìØÑíî.>ùÊ+'\Lõ¦lªìûåUÅ;Šád&Ñ£ôjx£/VðÁÞ–îŸ ïª+èÐj½ü óšTj„C‘ÔÕMíšÞùÍþâ‹j¦wåünŽmÛ¾Ø&$€Ûx "€û«ÿ= + *€mƒ l¨8\^àÐsqŸµŠ¿[@Âá°Wb`‘¬tp_¡â11AàüyÏùÊ—æÍO‡ç¥bOUmUUuÿ'ÿO €Š–ý'€ÊÊ0˜p\0ùf°§ŸÄ³}ᙥªü @ަ¤ë\u!Içš·5\/³PJg=ÿA´ûšLÚv_Œ>~‡#"´—}Z«äÅž0~ Àö•Ë+¾vßÊÍí7ß…ðƒ{1)¿+Þ‚cš~<ø1è-T¡ÛÙûïfûö  k%´õñ›úQ¶hDÛ¯@ È?ésIÇ~?ïªõ_â·wD+ª¢º`Áô:†­?–þ)Y +@Ï^€b0PgáQýÒ#ð]€ú1»Œûǽ¡h׫#› ¼úÔqQÿapldOwO~W^Ož=¯§'/ÔÛ}1tË/‡ä^ù®ã–ÃáÚ:ž“eû…šñ’§3¨Ý²8¢ö@Mæ¹£O½ºç±h šw¤'ïdWמüVa°º¸&¦Î äLr[ÒŸ S82 QºN$Býg‡°½!÷”¢eö@Ò·uˆgka€N?ÒöÉÏ/µ1È%🛯.Ì:ׯ®O:''sÒìL8›y€ã> Ë›ßÌýÅo +s_{íóÚkmÀº”Zø³N@›ØþµNçEÝ?Ÿ‰lJD~”Ú`â.¦N'˜È–~Ìÿ¯b€ò…9àìZëwÖ@€@„à«ÖP÷°E Ì€úûKX ˆ¤ õ¥µ;ý_ŠÍÅæ°Nìf(ÃÐø5aþŸ{©ð*FFŠù™úcàÕ\ƒ¯=›®ià,hüÃZd6IBC2æ A£6h } ø~ý‘( á’Ïs €eöcüH€ ˜í˜9ðç?VW·»£ö½“U'wXw쨪­mAm-5œeeÛ¾—?¾Ê«<VÙÊyˆØU,(˜v¾÷NhÂ`¦.f4h“pPàyúÿJ<󻜜oô÷^´kÿ®©º©œ)FÃ;wí¿î#ÇG`؈%€÷€þì(@ä€@@ùáòÿQE øïÍ}„¬}ÒcÖÇèå_ò†Ej4Ï—mný{W\¹Òížp»'l6Û¼í%›uâ¥/¿ä©ú7 €WNÒKÕd7œ8QZV6X6øÑ¶¶]ßy}ç0PäüYÐß‹µ*ö’ºîÏ_b``L`à,=*¦/»ð‚Ojx¯ß‡¥þöËTí €Ø× +,]øLTMÓ1ÄDá3ÀF<úþÃ×Þ¾õqú%Ï¿T}‰Ÿl/öÝL[î-°!°v~’éV¬l¿wë4í{&ÔE@DÔsÈ«µý‡²ÏÀ9Àlÿã÷àõ*ôŒ¦w‚ཀQu]P Á˜2*±À˜>[úÁཛu‚Òèß2ðWs.@ŽdO~ÏžW»F 8à)ŒŒtuÉ QñÏËëî‘íyr4 +d{KHF‹ •ÛåÌþ†ñ[’@CçL}q{|¼S¶‰Ê#‡ã/jû›1'hN!î¿ Lþáí'4N§î";±@ìÜPWÅ»ë‘Hó›ÎĤóµÔÍÎ:©À_Ô½™eW  M ‹DN “‡ý4;¹¾†¤àõÛŸ®ÏFœ˜$øãý·ÍaËi Ïd1øj8` ]W!ÀŸs1:=œØËMPµK`÷I0¨ûZûÿQ«*ðrWï5)TáNñ¯¡úÍ(@¢’-…¯]ÃVAØe¢· )h4jMA7Ñj—yÍ_ƒÓ\0m‚k06þ|ZÍòÍ´$8Ôd¼—MšÕ†æ¿èÿçæ¦Jë¨=YAu¿¸ª¼vwÅ©–Š×ËËwŸh8[öý¨é§”{v˜­ftiÞéOÇb3?ûsÀ&€Ó L¦˜Æ ð ‚ú±£ƒ ÃÔôðÉ{QQIKñ{;êÔ•–N½°kpÛð×Ûé:vf“€pÜ–”ôók–Ø)(€À ƒ XlA&ð¡òâ‡ÌÅ}¶>ëc¨÷}R ÃÛFSõ§NÓ&€+Wð6±cbÞOù  ù©MFýça¸E|Š)a€—- ®¹,‚¸Ì?±Ø;Ú`“¶]8 àR£Z¡`'€ËÕíÛ??ïŸðÝ·H½¿¨éFm»ÏÊ&ÀÆß6Þ³Üú¹á¿Õ޹GGGÝl`áL_°%ÐÒ*²‹x”²´ˆÎ¿uh¨uèc^\ã€!:à ô—ÀxÈ*fTªQö¹ÖRã.¼õ½&cXc$x€^ÜËɧŠ)ì50€ñ?ª´QÌê9"“Ålæ™§—zFÌÒM¦`S€D+èt4¨ÿA|ˆ€?ûóÿÕç[Ö˜‚,ö7©[ô(™8÷ÿòŸN%ñõºª-û+ZŽ—×V¨¨x½â@E)(€ïC¸ÿDUùŽZ›‡gÁ0-vØÍçø,»矂4c/Û&;b±×©›Þ•óÊÑÓS'wØ~Ùøú¥¥/t2ðu€Õ}ÃàÏÊÿÇBH Ãv@ƒ/˜h9\Q¾àPqS1 +¿Ä#W_¸¯O¬„­’•Ê +–Dý¿2A`â%›yþ¥ù¶;&º'¼òÒÉW^yåäÉÿzòäÉ--˜”ÒÁ8”ÿë?4@aÒß@Õß ü%¬Ë_ãù¾Þ¥,,@ÓŒø;LÓÑ„¿L¯<ÐKôoç Çýa»üŽ/˜õ X`’lZΘö  +x À·}kûüüÄDûãÛ·Þ3uü¦1]P-IzW–p[$·EïÒ[¤ÊËÂÿ'ûÛï­ÒÑþ!õÔø[àäþß"æŠb •uý(ûþ«²? J»×;ÆÅ]âeEŒƒ0 h@ÅŸF¼HüõêùvTÿ­’› Åñ|—úŸ¥ÿÅ 3~בÌ;Ž•¿ªÏdU##ÇFò{¶Ø·äuåE»ºä@ï‘^Hî;nQùwŒ;Æo9¢-‹ò¾¨½ænt›ã‚܈¶Åí îCÇ/|^umFÈÐ0#ÇC¸5À*U 293Ø+ÂR@΀ç‡ãQ»=w”êH¶–£r pNŽ3Üÿ/~w + @ªí-uPØæt¶å¦œ·×'ˆt ØIŸnÃ~žDRÜÒ«ÃöŒ4§t¯ýæÿÇt¬û?Iæ @*›a+ÀHdÖùÚ€tÿLm?n +5@ +;›@ ÌfWyÀWD@޵,þX_»º~;áœ)‰…µö 0„!LÿúûK 2€;«wÜ04„]ÀÏ«Çìñô±¸+,LÎÓFÑÐkÌø˜~4a“¢`éMV^ï5…·P¡ÍiÀޱ€¬Ó›™*5º8\Â,ô‰6_ Ã?^þ÷©3Ø-k`º$ a€œÕð}š“é þåSSS»s*öŸ:qª¼ªœº€Ý¯—¿^zBþ^êÿÜþÚ–*O_±d33E‘záW+Èþó@Ÿg>ûlïôTA¨E1ÆA¥5^úÿ·M=÷Ïv»ª¨Û¶<ùËæ1ÞÿZ ûŠúßzo  õcFge;… Dðj8ÜR^~¸r_ñ¡âC•}8Ðí»úúÜôŸ +ž¨¬ÿÁfnåÿ=ôÿî ÛÄļwbÂ=áÞqeâ䎓ÿòJ|¼RÕBÿ7 ¥˜ðpüŽ +~X:€r”3Võ,¬ú3(Bå`SÀ0ét³—ë × /[°¨—zúÇ À;Aí;lLä…?­I’L•äZû²ÁØÜŽøÀv¯ÌÛÆlçÏZùm¤o_ñjÛ?0Š,«Êÿ[;ôÖpLäoßþ9í úÁäFGG-HóQô£œà-¿àÿ¡íÏ*½š1P€Šwã˜ÞC‚ ¬…Tx=PAä5ÁkB èb“b˜<ßúl?wýÂrdqý¿ãVÞñ=##Ý,<þäñ'™8Î{€°ÊïêêÎë=Ò%ËrÞÈ‹¨Ð9Ú÷Ç8:òæ ý]Ñ¥¥’P|||ݯúµ²àð d€ »wÆ&@yå¡Êbè­Tþû` ÆU`áþ‡ÀÚ”^øp‚@mG1ªÿŽO þŸ<ùcFU„^ß}‚úÕÿï£~HÀ†àL½ž% »ü(Y·—Eq©¢9 Ôc’^ ·Ã¿—YHÏ}SS*@Ÿ6(rÿb,” ›OkE0=µÒ++Û·ßô!ÏgëãÚyÛÄü½V6ø+óÖnÆË>€®þâÂê¶èM7QîW¶oÄßÓ>¾Õ6?JPÛyðüå>¥Þ"üüd”úQ‘ý‡†žË<Æ à¼ðñb;ˆ>E(z—º/½„—ª¾Ïl/®`@ ` + +àx0½†óÄ**ÿãIyóñî¼$ïùí«¿}ŠêÿSO<…-€c¿<6²9¤$€Ü+çåÙó¨—ã·žsÜç@¨³(S’ìÚŠÇ·o‹oï}>Nõ¿ÅNÍ|/}C^׿|Ž|õÿ£þ$ó½‡Ä`‘­Ž»­ IF~9îˆFãrƒ €–èfº³¨Ü½Ð•ó¢IG?dj ‹Ÿ~Ç_J{€¹oýü“BŒ°Ý)lN­¯ÏM¢Ô'.ý4—¾ššt^*a|´iËýC³NLû#œx&•ºØüfs3Ç]„o°\Ä+È]d“n“ºø&¼€SÎ3ož¦«7œ0÷‰DÐïG  1Î!öš…€;˜ +¬‰œ`týk b +0”@8àÏúQìWa€-@@:†Øxmn} ¥/>:*+Í’1ìUM|Œ&¡¿ƒ?Ìy%l¢×0{2ï§A˜£}zg6¹„ºÝ$ Má°ƒnêý髨RyWEÿZ.ôË@ú¤ö[€Â&'ÓÒUšÿ4Ó_ÿïÞµkWéÔï¦vO½°ÿ•î“eSµ•ꦦJ+öŸ-ó¶>ì?½ÒŠS-µåfÕ¿ŒÿéÁòNÿÌ3{aè{ÏKcxïðïXÈ; þ{9‘ÈuuSÃt‹¯”vÂúŸêÿ®]ÃM•¿|¶¾žÀ“¿÷ 6º“À×Îàºïp¨>€÷¶éø˜)!Ì"€mÞ<±fVV*îëîã@I²†û$³× +  UEÄô¦çº ÷Ä•+?þðä¿üø_T ª¶¢¢n7D¥/ ò. ?<$ÿ€Îè­g«¨rÙÜÔf  öæ¼?,¨ÂƒhþÕêÀ(—bŠ}—.ÇLMMpÈnòÅ´& mÌko÷š‘0‰æŸ0ñ¼¬lݺÒþíí7·?î›·Í{W¶n¸ùÃ…\ë–*·oÕZÜÜþö4¾,€[ÿžä½¹={Üg ¾}åÃQ÷»n7F£õJ#çøŒÖ‹Aëÿ=d} Ôú>Ô¾÷a)( ÙF¶@ +S"üËÁù"ÌdÙì5° +@Bá˜uÌ=6¦}¤þϩ쿀K«Eý%ãŽÌ@ϱãy¡žÍ›Gºa@µÿøSÿ÷qUÀ2ÀjÚóGºòì/F{ãy'·ô¼X 0ûïgÅÿ‘ç–伞Îñ’ñqúH>ò\f¤ÇnGÌß6Y¶9à1&øÞ6wÜc¡y)` +™¡þÖä]:÷ôÞrÄýwe{`@†‚Ÿ=o?"Gâçzâ¡.9pƒgßy €ÜŸçþ”€t…mm‘ÜÜÈÚíõ„sòêÕ„.59élÓ9S—~¢.Š$€¶¶×r³Q:Ýì ¤.þEt¨ÿô¦»È(€QBóÅÞÃ0àâ€toL4óÖ(…Èì“, %€:EZPÀ`íê佬¯Mò€ÁÚƒQ«w¡þX*j]d+€Vz[\\]D 0(€Å!h†þœ0šÍÔ¦§%vÿ¥‚Ö¤§¯€pûõbÿ[1èAºeÕ}Å$,°# ÑÇ.SØ$!h2pFŠ7 » mФ2ÿ*°ìÓòæ?ûþ{æË¾Ô±0Vëé£à7˜˜Úµk[ÎîÚÒ©Ò©ŠJÏÛuS»JKwW4”î÷;Z²Ù "îj‹‹+%£9¬ÀÞÈ '`ÖÌLí­ùœ¥Íððt‡ …$›á—¡õ`05=¼·¦æ+þÊá"ë¿]9Ó&cã“Ï +ðlÅnj£¿žp8Ôò¿aÔªJûŸ.ù˜‰uPÓ:Λ€/t–5€¨` +àìÌ};° S +XÃVáþgu«óèÝz› ¶@ný„ÛæÞáþðäÄI‚„~ÌÀ‘ªòŠÝ»9¤qªl×  +}Âõ’Ò9}ÑÑbÛÈLŸ­&ÿð&«ÿ®,ªsŽ@«sÍð2>Uop¥cA±pÙÇYÀF¬›Ò1nø!IJœ×[©öÿóB°B‹€—WÚaÝ7oóToUCýø­½Ïk³R£ïs[ܪð=¾4`@â–ecõ/;þÇÕÚÿ݈JܨŸÐ[,Èò€Ù±£/ÞT^T4Y a`/•†È3¼ >€`“/3eŒÌ`0æ¶Ú8>àx°†OØpùï_…P #{uOHîéÞœ¿ýo‹öÿ)á(¨gÉïBµþÑ-y#¡@(ÏÞÛ9wÆoõn.Z;6ò\2Éç¶÷ôõ n΀tBSŒè$á `Ä4|Y¡Ò5dÿÿì½L[yš-عñmì’ÃÄto/ +¤LÀ(ƒã2dX^¸»6‰P{­¸[r0ôôFPéÐ`e_#AÒõç-£ÑšhIíRI˘¨ c”´¢lEb¢iU^”Z•*šè…W“ +ª§ +TjÔµßù~×$Õ]éJR©Õæ)0Æü‰qðýÎw¾óOá˜" ? èýeùlÓYc€æ¿ºŒ ÙˆþYª–2fål—›zœß»â£†“• ~·îºsÇý•…TkŠ«zën<[%>¿³ÓVTw*}úã(€u?‡à˜9þ“IÄÑyÜdù0D„OŽÃ×ÿÏñÿû·ÿIÅLźʆ¹¨êøkxù• ¢·÷[¦ç÷ +@å¿ ¼®lК0¿{?ÖDóû„VA †ð®Ý»÷þ¦È]tÈ}èPÞë—- Ktÿa§Óê2k €ä¥®Ž“Þ­Ž e úÏ@?‚ðdYkIIñ”@Øc<ŠúM€¸Ô=Wgõ{u§÷ØÁº½!€ +àòeOzW|»aÀƒ»À8šJ¡úÃ`3=á:AÈ%Ì“~¤7'tGì}i!Å[Ôÿ§ø*;o0ļqí¡¥¾-[ÀLèV«³tK¥Ã!Ê¿=ýÎÓo·ªf¶£ºØp}ã†'>ðR9Ž TÛ€¨øWÓo ±¼·–3qY§¦@…Ûa›Ðþ `·$f@ ¹“ús³¨NÝ!a-ÀíÀ§eÖ`uÜK+çNåWõô´¼}ds{TútŒìÀñ +½ŒŒôôtýjGWmWVVµí--GZ6×76¾ÓžÕ^õöKô}UǪê3ãK_uÔw¼½õíÃU-›{vl*ø›7ßl<Ö²73³½=Ï¢þ¿‡Ži ³­ýkb4c­Ku êþ½±àÜæ‚üªŽ·ëÙy¸£££õµöͯ·wìªêhϬ·ÔìC{zsé;ŠF¡çÿi2t'7”L†rs©»Ï½ãsE,·BÛ·ÆF-{ö$]/ŸOºr‘Äš8ÿ³ À<Gx?W-–wƒ?Dð‡tM×38§/:Y %BåÚrÅeù!!, +º²O L<ÏxÀ5?¿FPÿ?ÞÀ€£Â"ðÒèÍ{w/Fæ €¾§dVW¯€ø‚þ ¨öç÷å×aзÈ9ìĀś_§ +Ünwžâ ó@åNôá%¢.½>ù0Œ?´ÎˬÒí&hü`ÙÃÕdÃâ¿ ÛT"SYX ðþÕ~‚gáz’ú¼V©TCtöüg—|ÿÿ3åqtäÏ ðQʹÊÊʹÉ÷Taƒß_\r:çTNÁ3E9'Šý%~_§OR¬*º»è<(Ù¾ÿCnÚ33“•H;–yL`@Ä_‹fÏMÎßþåöíKÿïÏ?^1·n]eevC¢Ò¤T¿R]]ý×;­Õîb*£‡+r¾M>w{¨À€>–,¢ù§w鉀1ÈÉéÝZ¸õí»wÿ¬¸#€¢CyyÂbÀîÔ:"‡(­¬^<ì´ µýºÿúÑÉ¡È+ñSý¯à°rns&@AÝsvb_½Ç†È6ŒýÙèõþ²Xý³€ òë\†½¾]P*µúÍÍg±ø;5 ÃL5ps(0§6SJˆ +pZ²3¥ˆñÛ'ßÒææ[6,,hNyÍË—E„ ¬Ó…€Ý˜ÿW§€¤e‹/4´€Æ +áeaÁÉW'E& µÑ}V(mÕ6Îùc[?kºû·Æ¤tïæ“¢¹éT¡‡Ãa„‚…%azÃP„w¨ú‡¡P©ÇÐtEKË’uhþÙài @úšnªºÝçªþKÖ®cU›3ã°®­íñЃE@zéÁè¾?#«¶ y@-­-ÿÿcUK;V3é¶Ì––®Í+'kWQµîxgoÇ››ßÞÔ}¸±± +Óøÿõ£ÿgVaÏú[ãým™_'«Âèfw÷¹îƒÿ^wäÍîú–ÆÆúw:ªêßhoÝüÞë›;vmÞÜÚñN[æ©s‹œð÷ »‹ü‡dhdüæóHú ýeD¬äQU3φÆ\Û\££cI¬ †`ü +šÿÏÜñPpœ—þꛆvМû ¨ýjA]ù0y×bùÄ1c.q½›Ä0À2îZ/æÃpà´„»¨þ @0àªK†có‘UÜ—›b+Ê¿ÑQìÜýbÔ5/b胧€+›V»ûú¾¸ÿÅÅÅò¾:ìc þ³ pÁÊ=|úæjßâjßÃt‹?êö»5znª)ÞæCýWàoc´7ÁüM•T¬ôÃ<&)zì¿ÛLÐ `#Ùpý‘L—/ÓS=ö˜’¾ì‘t +=o“Ðÿ±á‰`@ˆ HãMªQ ét5üÏ”ÔãÕd €£‡QW&©üN®ÓÖíÎ+ª,+>zÅï—{……SEþ"‡_Ñ$úíeS +Ëýœs #øÕÿøJõùè'sÙ ü:ô Æ qБÈ)À xT2=Àÿ¿:³®Ò/ÂŽ²éÌ9ò××b÷»§vMRýV# Ûå·%€‚rÀûïïþ à³îýÀ‰P¼YžC ¢‘€âÝl\ä?¤:¤uÖ„k´Ië¤òvjµnŽ¡2Gºü0@õßjE("‘ôBõÿ¶ eNþS•ÿ¶“e`Š P8yøhEïÑ£<ÅÀžâóg@nž“@ŒUþXpy'½*LðlÆN€-æ1±(€ÀïLaF¿+êZ@¬ý•6”A*Ž€büÀà7//__Þ¸Aц” ¸|ªþ×—eiÐ+ Ê¥²Ý^û þWÛË`huÊ× ^زaù÷Ct”2Œ¸î° |Àá½à‹@±qÀ¢ý‡ÊÜ=רÙ!x  „=è™H1!|1¾ZU4 €®‚qêÎA@€ ÀS1kõŸ·ðºëÎü/HõimÂ(ÿ¹VcõŸí€k³úk³ÚO¶·Ð‘YõöÖÆso¾ùv#}cfGÇK-ñžüºͬ:òNkÇá‚Fr«Žlniy-3³µÚÿþÚîÿw|Åõ?#«=#Nèák•HÌVov÷ÁèTwÁ;ožªê¨' ÐÒÑØ±¹%^ûZ|ók›÷Vµy-ëÈÁÅûl%ð3–ÐYêãsg©j»,‚ÀlÔ•»m,y~ÛùàìËc®¤+ȼ¿%I;[#8â?ÂR‚ã‘õAËB„>‰Ç#–w“ "ë-„æÇ-.˜ð– j<¡€õ,å+Tý¯æ@ìÌzìrÑ¿4 +`tý˜Øì}Ї‚Í~0K¡ï]¬C÷Oý½å³2à ºÙpê[½ù°€?êwG 86© ¼&îTÔtxÿqÓ<&Åþ–é2[þê°ÖcŠnó˜l˜ jazïÑ<x$OX£'?Ú6ËǦs@Ÿ7Ã÷WÆ B­‡ §¸ççT%ª< Ä>\ÅQªÿ…•8¦¢¾†É©Î©Ê6waËéœúò¾Åg÷Ä;1U\X\âÓ4‰ÎaÔЈõð àË%}ݺ™ÉÊD”~9é¿ V ˆ&d_!ÈÌÿæg÷’ˆ¦úß„pËJ4¦¨ˆOñîÌsûwOíýV'à5 ÀA1õ_Lÿ¼@]a\¸#€Ý~ÿoüEîC‡Üy5Tÿk:;šÞI/Ô»9†Àó_¸ð# €»W¶7<^0÷JqxÛ¼˜´ýh ÀÉ“eÅS» ç&ÿ @ïÑÆ£b€U€çޏXWB7ü¨®_¦w—Ñï湨œ;‘ªGÍ´•‡ÜEëˆýiÆYsKO@N¼x}9 è¦AáUú»RŒü@Îòj@yÈ©-d§—øØ`¹T£¢ìþûõÃê… +ÐØ4Ä*þƒCCΠ⧆¬ˆĴ߯i¾bwÜj@ºDS`‚€Pâd1"p3‰úoЉõZ!–bB€¯Tx'Ð à´z_€§%Ò `e±ûà©‘¿è8²w3éÿ€âÜ ÀY=¯ôüºCÐ_‹šÝ–™Ù²ù¥–#ØÔo,Èù¯9§ +ÞnÉÊÜôÎæíoæ7᛫¨÷o·´l΄ý_ÚƒMáúß³/àŸV£µ€ºƒçêŽÕŸ+8FÿRÕÛU-ípΈ·g x­ãxKûÉSЩß_úŽ @Uàä¶ yÏó¹¡Ù—ÍÁ`$ø?͎ͳsß6‹köÇ/Ÿ$gÏÿ/³!KRpýŒ”´oo‡,¬ü§Ò? þ0ò¡e|Ü•¤F:B·M›#Ó–È©ôÃþŸ¾åÖz×8}3DW9&8‚ 6#Wy!àÁN Áð)doÀÕ»÷ÆÖ N@x>iý‡ Û ûÑúSåg + AŒ¾X[€ªŠQ¿?mPÜa9Å‚¿œ÷!\—à†Ì-ìÜ? ¬„é|g2‰(\ 28ê†ù¼@ÐÇ ñl÷`  aü#^™ +H5™J—!”›Ä®!tòøÿV §¢&s¬h¨¬Ô´ŠßXÝ»}N×÷ä/>;§™Æ…S%%nŸß©+|.Ã@e#¥¸s3©ú–*&gæ*d…*ªV(t>Vf_KTÎÿºbðaöýÿ—¯þäãuÙÙôõŠŒ,AYµ+Š^&Å´"?Ò¿Õâàž\"± d€Ÿµ¿{ZŽàMŒŽ‚°Û¿÷7î߸ój܇hèݤNµRnTþÛ.| `õ…/û½aå+†9Éî°CxrèÂ?•••ý¨ìdYYºçô¿S89yt2€£½·srn”C÷ðJyy÷óvr?XÒé¨Ôc'ð2¯ü³èÏ +½?¬ÄÁ_‚FšÊ¡Ê<ÿÙæ³g›ÎQåTJe’“ÍÍ2tõòD +zØÔ ’ZÀw”Š@`™@¶¾ ;•^~èÛ’Õ> Ê +‡í¦ƒÄ€äõš†Ál yoСl0~LbhÀ;`€À6Pc# $Øb&NþÄîÎuÿÀEë(qì Aàùœ“ ÀIÁ ª€®(@t ¾O_þÅØ}µ{ýKñ¿¾÷ÚÞÌÖVêÿ 'ÀÚ.L`HõŸ ± È:À,‚ ñÌ–—27©:ÒQìíÆªSoù¯õ§²ªŽµÐ õU-oWe®å¿Ë?Õÿ>vôt±Ì ¿­ª€¬¬Œ?â¬EÂßÊ +H€sÝu§ÎÕÁ¸þ0B‚27WÙ¼0äõx{ËÞŒÌöS79¶ö[(î•¥% †‹$ssÍ{„ΟŸ…'ðÿ‘‹ ¾ìJ†¨¶]£÷X4ì€9ÐeÈÿ‚H Æ.€ Ê?—%h¶ÌÇ-Aºj7»>9c9LF¨ê»"ãË>Ü@å½{Pý‘«Éõðd*Z@—ký¼ëªXtÍ ) Ò0:¶*ÜG¿ éÀ ø„ë‹«}}@„ ÿóëúÊÅF ƒ/ð%}@,¸ø¨tG³©ãV¨Ýà-u±¶N%Žü*Ø;Î=£gx,¬;l—M¬0ÅTX{šÔËàùL&‚vÇÄé?G„ñýôó¨ÞËFïV¬ÈMŸö_iâ“GSJ}ÊgCN9ÀaÔÿ©Ý•••QMk¨ÔÃþÊ<ñÞ‚‚üÕ‹Ï +ônÝz ¸8­(Ö!è\†(@,@|ŽNN|üóWÿ÷wlr…7*±ì€é¿¥£²¢²²âø—KZý9ÔãËí3O~šÈ¦o—T…J?!Ž·¬N-J裘—é¾ý—‚Ù~ÚÈØ|È +è3ªÿk{€Ûϱ +0f€»NìÚ]  €ûwîCZÖ©iNêþ©icà¤îј x¹üë<àTXž´YYÐv¡ŒMNž,ñù‹„ +°brkÅá +¡à@ùó ØW¹±`·]æš‹sVtá˜ÿï4ÔbP + Þc@–„µ('ÿ >¨+,„Ñeêÿ„XĘïJ7n¬\Ð4=°!m¼qËr`°Ìk¨¶«r€þe¨þZ$°WYÞò5àÇÊÀС!c`ÃÙ{Ã;ý_ul'ÒÿìÌYì4škz€ÿ³%]Ôt_aá±K¸x£K¤€Ÿ{b—cb¾,Ÿ0  FBÁ@r J/ÀÓMÖÎüuë‡dîøíHüõ®=èù5šÿt0uì¿îÙ!šv±ð6²¨r·¶f¾´9sï;-G޼C¿ñHUKK¼„ +Þ>BíÕÞ̽ÈŒgÁZx8BL1´µÇÛãtu}SEbp³»{å๾S§ + +Þ>ÕX¬±±esGÕ;Ó?’ï½½¥½¶j=bj–¾òð[àáQ"ÀùùdÒüò¶=wîÌÎÞ™ ™·™ püžkvvll–Úþ±K£‘þÆAEÞ ­Ÿ¸Î›€Áé$uþæHp|:â +ý;? ŽIŽÃh8ùn0rþ€@ Ã",Ì?½[æ#cÃúƆ-ÃØXŸ„ìÚÀ5[ ®þØ€-‘ Àë÷îݽ;% XxBW॥U̺é¡\áh@:ã_©ë& ¦E¶Z„Gƒ@1Q´Áu£;E¥baÃ>ž[»0T½’d#L޽õÏX SÖU#Æô?N6›É£ƒüïŒÁX ÛÔ° +)6þçþÿ,âÐ…0âýRà}êgÕÈVLNN5¸£Ñ†kn·v­ÁéÏ+ÞzºàvÝâÊÒÊ3yÞÝÞzzkqqQ‘Ã>‘PT\Qu¤ë|ÎàrÝñ4°nfæ'“• Q…óŒxBçôhv"»¹ìô' €aý·ÿ—?_7—ˆ¦´RŠª…©gRj¢S~¿¿rWåãÝûH¬®­Ö¥×ó¹ó7ª¿a\ßàÞ +fvÿÌÿ3‘:@ØjZ¸Sëthšäœ Î2êÿ Hؾa œ!€ÝkçEÁ¡ eC'/”½q2Ïç+)ò00Y1y´‚ý€rn2€çË€îV§Câ~û2Úý4 °¶H‹PöÕeã@OX>+7@6„ñ YÕ•@©Ø, è¦÷õ!c¥Rü‘¼|N@@7^Wu'ÕÏÓY€[–S²ê¿Ýk”eïC…ŸA€çxØ›…`cúݧpmºfð– Ê§‹ö¼ÿF ìäx¿5 Ûÿ¤ªª@ ³¢äŸ M@˜—ÓGL°h%è„¢Ò_”î©_E¯þ|`ie±ïàÁ‚ƪÚßþö¯üaǪýLó3HSöÔ¹cð[øÐ§©go‹ÇO¶·¶gÒ±‚€#GÔ׿ S€S‡« 'ø%RÛ3[ãì*Àål¯{zv ìgd +dc _~¸h$Ö!%èß N*8E?·¾±ê¥Žªª×vŒddÐÝÜûÚ‘áî‹ßzŠŒ~äÅG€±¤%t>w϶жóçƒóìù;{,£ÐÖ¹ré½Ùt¹ÆØX¼ŠP€PÈpà}®ÙL}þt$òIÐ2íZO!—T@º(,ë©ý×by—¾- ùƒ àúäU„÷Í_O^`0*€>2B@Óbõÿû¯Þ½·:Ï”€}OÆP㿺rNø>zÈëÄ#8®,Ýÿbu±{Õÿáú¯(Q@€¨Û­È²IæìݰpõÅêNë&À°£ò¦‡?‚í°D(Ÿ­Áô°Õc cî–Þ¢7U„#ׇŠ<¦ýTúé NjJýO‡œòr¡(¬¬lhÈž¬ŒúÝ +Á™¥¸x×ÖÛð™ZZ}O¼£½§ O—ùœeN%»ôZB7ÅÞç1êÌÔ@¶ñµ“ë¨þÏ@\*ORr"‘Èæ=…uåsý_Úô§Ã”èÿæ²DJCÐ1Nwb*Û¿{÷î©Ý…§S»`ùZ04èü?{x€ë?/4B@@˜¹‹° Ò™‡òßé;jþ5'=êô©$Hbßñ°aFVŒ¼mCC„†NRù/ñ¤ðïžªÜ ëf‡é¥ña + àùãZ:ØñÇnˆÿÓ lh3äÿ6«a‹ò@#€R™J¦ª‡ÕhBÓú—0ÖÁ.M$ä eB… +€)€ëË[®C¸Ü¼qÖ7°çºܲ!àt²u/ ˆWÉ–ÒQÀ6ã½{^Ojã`\ùø jù½C G¡ ¼,@ÛoE ]øÿÚxÈ÷Ð + $Z•k>„À¸T™þ7ñ(Sìs½òêωcð@I‡@²:_0ß Åž¯ë+¨oyoÏžWvô·µÁ ¿¶¿@íH,€FFB€@üdk<ó¥öÖ–êô_jÁrÕ}úˆ*fGK{f;Øÿ cš €?ôìØAB¼½5ÞÏÁ]ôÚòÈÉôJw÷Ís"&°¾þXUU㱖̪–ö®÷Újw¼×Þ¸ïàÒŸýMéòþÒEá5üh°4 + €ùÎìžP2tþNn07—_Ø&ƒc—’³!—‹=~’\ÿ…¹¯ÿe)€Å2>==>ý õþà¨ç„@üS¥7[\Áq «Ç-ë©ë·¸Ø5p_2¹ +¾+¹Âa¶ ^Ïê úÿù½¤Û×GÖ]5„kÆ@Ø@„)0/àÒµz÷î%ºó xR {•­€@§ôÕÕQÛ/Rà»1X\\¹·ôMn ²¢L€À!‡.þ&%Å>LÄÂßÁõL Çt§ôÏ—uEB$ÄM€á? Âö·¨÷Þ(*•R5*Oú9ë¤)p–U8ñl‹qßéÙ¼¼<‡7 ©°TFÓ‡¯Á_| jëÖ‚:úÕŸ‰ê+§·÷ÄÞâ<Ÿæ±Ú.Ó:}-… Ó ˆE4)Q¹A|í\ÅÌäúÿ”ÐJ|ŽÝ +x úOÎ?þ%—ÿ¥oÿíÏõËW_)•³e®LªIJiÔþ+n´¡aª²rj÷cÝß{b¸~ÅØÀèüó÷‹@`‚rä/#ôpaá®»ŠæçLàxª>ó·¿}ïõ6ÁÈ3ÿß/®1 `haá/T»¡<Ù_&D­'ÛQø[[Zé².ÚOfijژI0Øÿ?00B?£¿5“>Gÿ ýÈ,¸³ÌP]‚ ýܹSõ§ªªŽ5ëh©ÊlwõÿºöÀðð¦oˆ³öÒ}ã—f€wq:¥öÞBàÎ,Õs3²þ"–=wFº,‘1×|'t~Ï$(‹ ÿ1ðåŽcø¤ëÀIK02Nœ æFäž¡Îÿ–™ÚýqËtò‡–3Ó–HðL2âz7ˆþÿ V©½O»æ“–õI± ˆ‹äAæ !@fÀØH¼*ÌñáØà±±+¢Ú®ŽZ/ݽ7Šä"¼ú$ËKðX¼‰=?ž“,ÀU@€G}#J‹õk jT̬±»OOS™ß’s;I÷°ó¯¤Jð3§†€F¥ä>RX³áIŽü?À|?Z„&x qÖ‰|Bgd¡Ê0?ç6ÇûnϪbP89Y˜½;»2Ûß>#á÷ŸÀ  {ñ™å·szûŠ|Ц«6’ÐMò„)ÅYˆ˜Ä(Cή\ À¨LçH¾]×?g¿àÊÊu3TþáðÇ€µàŸW阙ù8;•MœŠôEòƒ¢²;Šò¿{ò±ïðZ±ˆ5€n#Ðx×· xPTò›"a_žrHéTÀ84§C”ÿ…2ªÿmÆÀ+ÆÂ¬…:91ˆÌ³zVúú²7Þ(û§<Eþ"ë4žztžç3ÿ£†‘¾ª@¸ƒqÿòOµÿ²(ÿðˆy@EX“TýŽÿ‘€¾çÀýÅ›‹ÝôZw°þ—=¿íoÏhkk˨.@t €eÔýV€T«%r²˜ïCÈœôþhî!ûg %ÁHºùåtaþߊƒxºúk[Éݯ§L!p0À±#-U@-íñöþ‘ÚwÎt¯|céÇ»c×ñ¾7„òÿ(º  t'4›kqY^ž=çüì·çŠ$ÇÆ’ç-®Ph[2 +&¹þ  ò hñ ª?>þjñ͹׸%4î²L‡,@ô*ŒÁýHZ†“Tþ‘´Þ2<ÆÁW±¸>2LåžnÂ6àUÞ œ°C‚®Š½Cט˜À ÈÕÇbÀ»«—æ#œOÔ÷d»H,b `qõ‹ûK÷¿ ¿ +zʼnÿ[Ò…¨´hšÛwÈM@AùWÂTëˆò“Dÿ¯ÃÖVÀ&-,ý3Á^ ¤_Fòçç6:-Ø.ÛÂØ{K‚3j8Ì2@ìöqê¹òÁ¹'z^uu­mvÛ¥º¿SÝa;¹ï´Y=Vnÿ‘ÐT +' ¶†á’«º5]R ^$RÒ€n]H¥®A¸0‘šl8-oYnn¾ÞL¥; Kƒ^'uD˜¥[66gë¬ý—ähØ þ«™‚°YÙÓ‡PˆÌ(âAÀÆ@õë ïÇ<pÞ¸1P=ÀÂ:€‚ ßFp6€" ت#ÞÑá\ôQûy`Gƒ0ˆ:Kx˜ˆ àù<Æ4·à†¨Wèì #@‚0aÅà© 4}ÝuW +Ž}ð̶۬Úx<£ ¾Qà0Â$€±}@í_ðç³ø•Þ²Ú²2²²úÛ˜ PØûÛo€Ž¢ÒÏ;vŒ`‰úÏ +€_ÕfAWxïÏ”¦•Õîn¬8Xpê$ï´Ù¼·%žyªïODZÂÜÀ°9X1"WVùaà @„*°ùÎ={ö˜gïÜ™5[ÆÆ,c—¨¥¶Á¶¹ ÝŸLZÒsÿÜŸnËÍ ‡¦ƒÓ2›#Ó*öfªñã¡õI³ešà„Ù„6‹¡ †ñ*B†“ÃÁäú±È‡Tì“HŒÐ'ßeêßµ>2]@l æs( <æé®°)ÿѱù»«È X½;JŸ¾"n]½ù˜RÀ%á€!V*ÅþxPŠ¢©ŠÏí£žÙ­ºå „ ²|Ãvêä%¤JpÿÓàì¡ó øÉc»ŒcÉ<6é2=¿Ãx¦‡ñŒWMMLÿC(Ãà¬x㘀.î?À"€Š£ÔS"¸ÒŸ®ÿE%…N€Ò3xêå÷þÿ_|NIwè²È.Òa[¬§ä÷Š"q»1¬R¥BT‰2&êL5€ÉŠW©ÿÏÿcýŸQþ©ÿŸù¸bÝÇëæJP "F© +*{ãhxüû+œö9 P„I°ú¿>ކ @9§ãØU¸»øg„ŠZ©ü·úå:äÖ|œNmA¤ž~oCFý÷¦Eá’á +ƒ xF0ePö†¯ÌçóÓ«Û_ÔீÃG+ŽVô†tñÜq{½Þµ½{DèyDß/vE€H¦wlø ` Q£²=€Ðý#ù/  Ƭƒ-å…Ôï'&èÖkÀòõëN@V§$9¬ÒÓê¬NuÖ ÍÞ<°ªQÉj ªÿ6ƒ Àg¤Á‹eC€¡ÿuùÂ…ýÿǃÞ7¼Ä`€ƒº~XXÀÀªó + œª³Õ ˆØ‚Ã0&XØÁKœ®1§Ø‰x)"@êx"°ô€õ²¯ƒuõßÓÞÑþ^¼µ=«–[v£ú $ÀH-7ÿ¸àžnû@p˜0 + @uœBF†¸ êþ&ÿ '¡ž?üºGø õ·îÝ›™Á¨ÿþ¬¬¯ùþÀôP$À¹ƒÏúeKKU}Ký±cûöQýÿ:©¿”¦VÖ¬ŽÒ3€%,=Šplûñžó³çÏŸGÂÏìžÈݱHäV®9ÉK÷®ÈÚòÛþ&ƒæÜ\*ú"(4›ÇƒôÂTƒg\–_L[> YÆÇ“ãF:òÀ¬§ë·Æ,Tó-BH°`ø•ûá¤pºšvñ`é¢ù¿j\ ýŸOï\º4ºJ`u +‚y#+à±I€/àpsñæ“Æ*QýW·¦iÑwÍïPµ˜Ñ Ã׋ž±šIå¥^ɤÅšdCà7Ä^:·‘úi¢§vض۸ÁÁ+ÈNÉcª2Hi¢:ÙÄõ? T€ à€~ç0ó8rŽ÷B7 ©øDáo˜W|¢åÀmBùÝÏb˼ïha1•1ŧ+6]æ}IãÐe,èˆDÐ/ÚL«hÜ#,çˆhÈFðöíÛÿØÐþ¹Ú*ÿ¥s¥¥ÙˆD’Mz*¦Ä$MI4TV®£Òùøw÷**4bÀôñëgùk€ué @NãQ”ÿÅÅ(ÿt”äµæÑ¡åùòàÛ¢ Þãÿ²eeCm7ʬ(ÿ0†e‰8#aBÈA¼`¨úOù˜€ +‹œ À~@”ç\)îrèXÜËѶ\ÿm€v–þÙ4ßBˆC +ã)`8% &yN®ºPÊþiV¤A+Ôü ÿ òÄï¡,]nÞþ¿Žçœ:¤¬ÊÊœÿ 9Ý0b–ìšì¶?ŠD?vöZSn‡òñƇ¼²‡.x‡×?º10ð¾÷€VÖ°Ð) „ôc¶¶2ØÃû`«ü7f €ì° P:QÀ,œÚXX숓CXHáE÷÷ðtå_ã¡8XÐòíõ™µñÌ8G Zw‰âŸÁ‚QðÙêÿ©üÈê<•qqµö^!Èò òÃO©‚€ †ûÛ÷b _tÑ÷ÇÛÛ_ûÇcP¯®„êÖ>L?÷jD°„†Ñé#4˜'ì``„dõá<§º\†)0ô€«cc7ïÞ½4æb0?:Ö=zstõûýU4M¯‰*šé¼;ªÔ()ª÷aöëÿèþÃXù ‹žîÁvmFø1•n¶]î y.Kô|7Ñ-& +‚à ]ÿ 9Ê–å¥gŽ +€u€…•»§4¸Ýô®°õÀªÞ‚ò¾gâ\Gõߟ‡PSA‘ ³~ •³~9È„\T–K°ã™¦óàó5E€ €íû/þñô?‚ÿ¶cø?7Wúiiviv"‘Š}.§˜-„|ëÜdNå=2Æ Ž£é¥ï³E6êNkØý?Û¢ÿ?±ëgÅ?Û[´·¤¨µõP^@gYMYžSsÒßÈÂ*ºÃ[6t^Ê8ˆË?ra â÷4A"‚Åéôåy >ß¿ø|nE„*Nn=<Ãg«Àý¨üôQW¿Qþ׃0?]†ðoǃþGÏ+;øÔÆ[3ãTÿ3²è«³`/œÑoÝÜÒ¸µþÏŒ¨¯¬vßd pðÔ¾3YxsõkS ž÷?TúâV9õ`é3€{«.„f÷ÌÎR™ŸÍýñž=£ó÷1›-Á;³‘Pˆ€ÆÌ?dÞöSÐû€zjóCÓŸX,¡i*㹡qÈŒçZPÿCãA1ù§ÚO—H†#–}–qú™Ã‚¸j1°ei@rñgO@¶ +€€q;‹0¢yWÚ°C@\š§>ïâm€ÑÕ¾Õû÷¾¿?QUÃп†`€æ¯!àVÔ0½ÚÃlïH¿°J-h˜0×ä}Ä4êð)"‚tÕÉþœ?ÃHŽOsÞ +VÅ€ Ù@pþazŠì“Ä3Ñæ•—o//  Ì44TR™Éö»'Ëv—”œ PW÷,€Ï|×œŠ¢Ëhu¡ì‡µ{v€>Dv, aã†ÝI•CÒñÑçºJ4‹ÈÞ¾}ækÓ<Ãøwû«3ýœúÿ¹ìl”„ (6MWwCå:ª•Otwï ZýJZh ¸[èK€œÞu€€’×JZ_Ë+Ë+++{=¯³3OëÔtŸ² -8õ!g™—JÿP½`ÕßÁîn:¯‹bð¹Î3!x#=ìÔ 9øÀLøÜÑ·ð(D(Ò迬¢"§÷vÁG·±À÷8çy;Íß-h`ó4üÕ†àNú@B`1—j€Ïžm¦f>¡„UÔ£ÃÁ{„(KŠ³êƒ¿Pã¿ðûÀµÀµ] hFR8éN‡S²:ô6ªŸ‡Œ¹þr§Õnÿ]RÏC†Àc"`Õe«œV°pnÐ;xc`è\ñ‚ƒ ªø6^´‚ˆÅìôëÖ˜äÄß7œ°ÓÙCÜý0qÁg6õ° †™âà&`€  éN¾`žŽ`àf_ßÁú¿ÿûª#ñö–8Fö="§§¶¤gä¡Ma $J>Êû_ýÖèªÁ.–ô‰É?\„ÒÝϯ{þ@×F0_ˆo~)3#â  Fí™ç^ª:w®££þQà"ÐÔ¨õ¿¹ #ý›íh­ˆVéë“€ô¹r…›ÿÅG.®B{‡^ƒ6¿|þΞ;‘›(´ú w6Ä>@‚ýOŠúŸ‹ù?èÔô‡Æ-æq3'Aú'“˜@@·†> G‚g"A-g’g0ÿO&…,+€X ëIx]à;®µ(—ØHÆØ`õî%úM\W\ìxóÒêÍï‘@\/§µÎCš[uGkÜ)hz:õ F¥×U°zšÎ¡&5† °˜d³™8ŒNó±°+€Vˆ{íb@÷ˆ¨³°€`ø¶©9ДÍÕ_–ŸÉ/p¼`;ËŽçG;‰²R™]9ÙàvOú +}%EP<“¶r5gjªÁ‡Ø$þ?hé9 `@"^À* ûPø±?ÁFĄ́˜@ÇïNL­›<þêöÏÒ…?mü‡òüç3?ùý?öÿñšH©ÿ].ÕcQ%ꯜ™ùh¦â ¡ª?€|–.þÆ*`·p怂lž®"°«x/¨ÿ­y¯—塸—åå9ó|„´7`<äºÐ6ô£!o™{ð‚æþ?6ö!M"FU5¾>'ê¿oý?Sþ©Ý•Þ$a X^ðQ¹X¸R0õ¼è»_rxyo'À’;Û°Ù.³ûT +UNn(5*x6þ›a€¢é@J¢\©k…ÔD +#€å@óõ-×—›KÞ2áäõC\8·°š„ŒbI °A¡aœ&ì° °Ê ±À†-Íìýp]²zoxÌ;pAôÿôj·Á b6T¬ tèpó£WEŒôÓ‡ -?ÏclÿPè†x"Àò ”v²Ñ}…jÑóTý¨ÛÖTnTúéâþ¦‹Ýß ØÀ’»'D DõÞ5ziôþ•Ú`n(˜› % %û~âE˜þð:`Z K$4m¶XÌÁà»$ÍãAú(€ð»[° Àä0Õýa€€«¨´ 0° »®Ò3¬ ¸š4¦Œ®FæñqÄeìÎs*¶ùÚýѱ3Aq{ßèêè¥ïˆM­“¼;ìŽR™âÃa%†3“ä¡þ¿¢…ßAH«Â³a¸J¼ê†@ì + 0v„S*¶ýD ÐÙ&9Ñ$³ßIâÙôÿ/..² +$x¸\ÙÐÐPèŸôûŠŠŠ {±)ø êañœßUÜzJþÿøÝRô“H˜°@™ÒÙõŸ¾@£Š-ŽQ¦U­Q¢„K ˜YcþEùÏÿ’êÿqªýs(ÿÙ‰h -\K¥>ÏN˜ ÿ›9¾ýÕãOv‡ïq ÀLêÄ@~÷gÝâ-ß@Â@0[{ OØ `oI^kk^^#€2zƒ +`Á§ø4'uþeTþ˼m^§äìÔá  Œ;TÈʶ|ão{ÃçŸðO¹ý °€…I6À ÷6bÊg-às—|ºÌñE–JõÎj«]€ €ªG4Scªø¿á´Ü|6ð; ièuÖ:¬ÿä4ƒ7ÿ1 @å_^¾Þ¼ O [ü:’|ÐØh¤ü\—=ØGt$dÍãH—}Ñý‹Kžļ©l Ë;!–ÿݸÁµ¿zÀ;ˆD ìÐ¯Æ +o8xb’•úx õß Ê‚å‹B÷Çüs¨0þÇ_a„9¡Hf€%‚°ãB(/ÀSôÿÐÞìîë;øe9Ÿþ.*Ò"˜zûkG؈ ôg`ð¾à¡Æÿ‚úíÿ;ÿû†Ôÿƒ Ö¿¿½?ÞÖÅt&/EdTé(ø÷Æwlî(8õè_wúæbßÍ%Ñì¯ý+FO´²Öø/]ü:¸ÈäÿÊ&h +¿‘ˆãVÿ<–ýgggC‘±±QËïÜ¥’: ¢Ww%C¹/‡„é/÷üÐý‰P±ŒX4mÎÍX 4O3F Æ©þé+‚°ãT‹å‡bz0l¹šL¢´dM@äÃaŒ¸ðó¸ÀP2@ÀH`Ì’ €Ëˆî3RæïÞ[KZ®`qÊ€Õ¾ÑïO@]=Qñ•0–Í¥FQ%vñÑà ±N‰³¿ÃIc õ+—ñäÖôEg…·Þºìa³@ID€‚<0Õ°«pJib`zZg-î³²}Ë/¯ÛnŽÏ©XGå¥2»Ðïúý»ORû×ËsŽNEý>%ªQ¯¯›RTöxô¯2ù7Å/,+:ìÿñ»ë&fÿ¡Te7ÀñWPÿYú¿J;¸ÿÊÊl>ÀŽàÀUú¶9%ñé:X<Èz|À•+忉ù?Õ¡ +àKo7n=}ºªðÀâÞh-ÀNH5-OS4*ÿo` Ì{;e^§—!r„þߤà +ÝÄI’p{S”7|¾ ?0À¿° ˜¬›¬àP ŠÞŠÞœÞÞ + + óâ+W°ºø\êWx½éU€Õv+oÚìF0Šûi‡gÙ +Šy ÁWSk)Ý¡fœÖ÷­ƒÊ5™ +?¿—¯Á?£™MJá°qc)•r§ÕkµKêu!èÛ¸¼,Çì?’"Ëgpå·òUÄX ô­^InnN‡l\–‡½CØ WÿjìJÿ°€=ã¼§ßM‘ë,Õÿš5Àƒ@Öø™Â,ŠA +k# mÅ 8<<06Ï ð˜`é! À@_÷Á_:Vç¾øŽžfä{~ûÛW~Û3RÛF £­]D©§Úß&Öûj³x@4þØäƒŸPþt±u (ÿtôüzOèÖ¶Ì×Û2Û1ù§·Ú_Ñ?7"œé>¼ùæ)¬÷¿]PÿgÁòâjw7§ÿ¬å}%þò| û¬üYÀ*@è|0w@ÁPîy,^…PÐßý\ª÷ˆþK²œ/ˆ¯É5‡,éƒÚûPp<ø®Ùœ£è“CãAsÈŒ@ éqþ2Ë»¨û¦aø!j>êÿUêúÁÿ»nч˜ þƒ# «ó ˆ +¸ýwÍs1Ì€„€0›]½´:fáO0péæ§>æQƒr®áÕ-©rDv8ÌÞó˜û#ß[…ü_èyÑñ«t›¤Úø‰íáþ¿KÎvñ¬–¨›$Š”?Uød!YêôÀ4÷Y €ío?^p€Žj/ ¦v7ìžÚµµ·¼ü»ªWsþmÒ?åN(Qz|R<ßO™¨Ó‡øOTu%¥* m\ƒ‡;}]Å 4…ÇAƒp]ÅÌÕNý™ù˜GÿTñ€Fôÿ‰ì9ºMÎþ¸!{rf;üŸð.3°Öÿ‹òàn8D­Ù# °œRoo}ïV‚»v±`o‰¨ÿšÛ×™çÔÊœeXPœoˆ5€ ?ºp¡ÍÛ¯©SÚ`׃·€’äW'à LøøØ˜UÌ€È!ïâœ+å"Á˜Àóe ¸¾ÕëÀD›zgl߃€Š^8ðPc€X¸¡9 Ÿ=»|–Å#§rQE] ;u9 Y­ï/° Õþ ™·šË×áà``Ý)Y½«Õ¡ý§-i‡ßØÀ ¡Ò¿(qég@F(ç¸svë`¢ÙÈÚH?qÂ9ä½0`½@õ¿Úˆ¨ÞÉB@®ûV«ÇNÅ_H8ñÑf°ÂÜÏù:k þŸåý¬fÍÈ…ˆ1ðˆa€$8Ø… +°m¢ýxÌòÿ5`‰Wž9R_¤¥%³½«;J?5èhå³^ÏàmÀµþ?#«-+N¤mmVV?Èþ,Vþ³@øRõÑ¿ƒ%¼²ÃPî©m¿GíV†øú®‘¯z 0ÈêoÏÜ[pîTfûæö͇O½ýç“›ÝÐó­ÕðúFß¿ôPÙ_y 4nf ÅG-®¢Ê†Î'“æ L€è¸³k€£c¡ÿ¶ æ:.3Œ€ÙöÇbøxà À ¿%„m?úBs.µû©ý§ú?> ½`dzœé4ÿÓÓ·8 )TB˜¾J€¯ãÇb=`®ÁÃ0€Z0Éo7p¥gBÀc€±ÑÕ{wÙˆ×Go®®öÝý^„€˜QBðÔ¦Õ¨žN?P$œ¹Ù/ÁÀcRuO šeUéá˜&¡þ³ù›-ì0¦'õ[ 5sÀ¦&MœÜÄD΂xVnt $GÍT ²ðÚüÕ™£½ß™S¦úb÷œ?:‰Î£~öf3|€"#­G–à{=µ2ñÞ€7@CåäOŽW`Sºý?þ*UÿJ–ýËFï|Tš]ºn’nŸ›™ü9ö6íßô¤wš­uÒXþuò,ô‰›Ò>€9½·©þoÝuúÀϨþ—µæÑkž–'ؼ(º²à3\€èåGCmÔó:À]CÅ.¡›560øàEºUS'(÷ЉÏïçTàÝ•…ë„%p€ +Ô± P`8óòB_þs$øÏŽ6L ·¯®ÞiÿoÙwÂKdžÉô4I@ÔO Æä`_] f.®tU (ïÃÌÿï2JÏšA\/5¢Ë$,ýym-ágYõx=?°ÿÀª$Tkzöï/F’ÝË[}^»|]ÌDŽ “Ú~¯€Þ¼vkõ€•ç€ ìàÁóÝŽÚÕ}Ý©Ia˜ù‡Ãé=LXýæù?x êù¹øóHHH é¬`\‘Ä›ð žj°´´r³»ný¾úúªw^ÊŒ£cI?¾¹å#U™qjÊ©ýÏ‚UoZÑ–!,~â`þAøguñnÏòkÅì„ÈÜÿ÷0 °ûýïá'ôsþÅWvt@IКÙx.'žÑÞÞÞÑØxê[ 3ñ+`¹ï¾ø¯­õ~éëô¿¸mueéþâÊʦ•o¬R)MgÍ{öÌŠ-À\êûG’Ûfs]cêä“—aÌ‹ü BLX,éMË8x~³ÅŒÑC‚Õó¸%ÂÕ`èBŸp,€Ù$,` R•ÿ +ºEÔy*òA¡ æ¬ºÉøÀ0fû ’È!¾Ê†€‚`C N˜¿;ú \LŒÂàûÜIó"”T­ñèj@§‘ð {o9À£Šýÿ0½ÚÃó=æÑñ,ŽÇ Œº„·.ÛbH£F€~"ÂeÂmJÁê!@rJVž•0Ä@Ç!¬À€¹RLš ·Âð; s¶NWN4ø¢n%ŠE}º|ý}][äЩTTŒ ÀWA, °0»²¢"MlÚd´ÿXüã­?DÁȼS€ë¥ss¥3??>·î8Ö7}Cpà·¬ª7ê¿Át ÀnÃ@8@xûvãé­§«Nì:P| xïÞ¢’¢’Cyy‡ò4Ÿ–§9ËœešSqêpÀ AC°@%ÈÉÛa*;"–Îøœ&‰½p]vP”7Žð»ÿ¥È/" +…¼**x0'§üöí+éÃrãž?Gj€¾<¨Æ. Aˆ `xêy„0æ‘K‰±¼¼…šúhX¤êxÐ¥ÓCé”S’uhpð÷ý=|е9Š©A)¬l °q£âµRù§op§ €-×åN*òõëEŠãÁ" èÅʘ‰å4°‘~¢óÂï«õ°@`X±Xc@@B¸·ÿþ¯;UÌt]ƒ€Qlÿü? C + ¼ 0H/ˆI€'à‰ùO¬0 +™s1ÿ7‡PõÍŸ@ðIÈbù$bù$8}&¹Åe}˜E–ƒˇË0ÿPÜÄ`#)Ô‚ŒðË¡=à@"fŒ]€1jþÇæé>c`t,›ŸG.ÐêêÍïcÝD­¿Z“ªI©=}uvvh÷šTøùSV%í²¤ЛG• 2Ycaˆ‚lb¬ÇhÞîyë¯=àcT˜å©l˜bJ‰æ_VäÄ3ÀblÀ`Ý$¬s ++Ožðô3åÕœ£'¨þ»ýî¨2aÒ©þ/˜Rƒ&“é}]Eày0€`ÌR Ððgà­\WñslJ·ÿ?Ÿ™œãÜ¿„ÌO HÈΞ›ÄÆà«¯ŠØ€¥? +|,Xt¥Àh¤9’^¨ðw‹êo(˜ÀÆÞ­õ`#À’¢¼¢ͧäù4M+s”ITûŧ,@pÃ[v¡­ k€^4…‰Ý€u5Æ €Ø4Ü$ùGל>å ŸC€¿óÿ@±°€`Å$õÿŒnÜ./ø¨à¡»mÜõîÏ_¹º´úÿ÷óýj}ŒXáijcô$;Ûé0.¥’N`ùlsàw†”Nëb†sÜAë aJÂÌXœä@éuf–—9Lpˆ܇PÌS =߯æNúú=P"y%¡F¨æ€m€™t^‡ ¶4ËCÖ^êû½^xÓnÀ,3äP@ú‡ d”ðÝ©kbèÃõ_}h ‘‹cÂSBb1,Ãø¡€`àƒ00àÀ ð¸ýÿÃ6@+« NÕWý²¥J{VÏWñÌŽªÃÿøæ›Û¸«£åHfÏHk>@i•[üd<žÏгåQ>]]põ¯ízÏXÿÃÀˆ±¸#­ ú¯í#8«ŸG===¯Œ0ЖÙÒR¿¹¿5 À;»S7ÀAè¯<´ø·tñâŸp°²´rsÓÊ7ž W9ìwvöÎêÕYé—;{'twCvª²³çƒÁäìË®ˆpàB„¼Ÿ¯A@%ž.~š¢3ÕÿXæZÆø+Ì, ?·˜ƒÓÓIº12m +°X>´ˆŸ±?d8`Iî³ì³ ÉÅ_,?A®> +ÀèöîR×û=G ›—Ü}öõ_–kd%UÓ¤ +æAÀšªhˆ¦u'0 +ˆ™` ¨«Pèðÿ‘Øñ†e¶ËžNIêÄSù­Ë6f¤PçÛD?%Õ$Ó"RªÁÿ§žmý¿H嬼R¼¤Çì \9UY|àDo/5•OÛK.æœ.œ*ö_s_Ó ¤”®èìû“¢B7È»þº®ÐYz"[NѧR@< +zäã1CÂBÀô&ß~±û÷·3“ë0éÇ^DJøˆŠÿ§¥ŸÎMþ|æUžüåÿ‰%“KWPÚÓA#`ÖðUA”ääôÖSý?} êÄì”WrÈ—§*Óò¤2g™Cs:§²@Ù!€ p€ . ¬Œ©’ˆˆ' Â_l¢ù‡ °È¿Ûˆ˜¬N0¾Sp»€^…ƒqÔ}–ß××Ýݽø€‹oŸtx?üûN[õNv`G Ô<+N4gaéÈ*ª¥6,òŒÃ¡[­ïßHMüõÿ½È +Ì„¸¶1úÂ>uƒ‘𻜠:/´V¶s!sÿ’×ÃvÀ\×ÑÄD’0ËŸ*7¼^+…ÐZmõò—Ѝ!«Š}?²|Ã5š†üŸkjXS%€YÕ|äðýq„±€E€Ï¤˜1 £ÓCÈäx<àë +€¥Uõ§Îiɤ¶¾ŸêûÛÛó7‰æâ\Õ‘ŽxOW;ü~ÚÒŽ?Y¨þœò“g!–…I Aÿw½Ç?ªú{ ´ÿxƒKð^ÂY""€£ ÐÖÖÒ²¹µ6ÞÞßÿúßtìzçñ~£ûK+kEÿ€Áðdà~: `éâý57àÅ›œ ø§ @Ä``ñšÅ‘›º„‚:–4C!Ü>z)L®mýñ6€èýÅV€%¸-„]*ù³¹fv åæB,n Dõ? Ž“À ÓÁ[Óº´XnE’?4~à‡¦ÇÇ ì"`\LûÖþeþ{ºÖ  ûßK"³àæè½Q te¬oõ.8€gj¨ê¨5rM“RcâtrE‡$$vX‰a“Mƒ‡ÍeU±‚ÔÕu=m1 l¯8æ—Ã:7m¶·`àA|€Ä+¦&¥I@ÿ¯ªÈA+§<ë'Z9!~ɳXø´²Á?µûÄÖ­¼eö4?z¥®··ðÄÔTÔíSÜŠ¢c¹] Øÿ"€!€lRdEV°¨š`EÀ„EÄ+Š àäß +`?ÓÿXýƒò/ ²à±B@WJKçDû¿ýK‘D`é)V&àï':é>ôÑ\ôñî³>1à(€:N*¸Ý»µþtÕ‘0` ¨$Y€0¦êWªâ ¾žðµ•µY1 ŠÖàh.À’‰ÿï›TèaˆŸsÁíc€b&Ä& G0_“àmÞ¸} Fuéí…¾¾Ïúº?[\\]yNù'áàµW[mÕ @…6ºpÓ±ÃMÇC@–ϲ±o @Ø1 +¬ŸÁ#‰êïЃƒºs"i- œ€à ÜÜܼ±Ô+|ôNì³eãr'-ú[;D@ ’Ø`>Àa•äÀu!`è0åº`¨¾%//¦#¼Èu yìÜÿó€ÆëÿÌÀ Àˆ÷€0‚ À¿ˆØBcaî¶@Æawð +^Z!°¾~}ý±#\ÿ¿êiëØ¾I´ Ðçoni©í1¸ÿ6C€”Ÿ“ør¸ø ß¿Z1û§wï±úWýéJWZ˜ÖŒ¼×ßßž™Áù(ÿ]_Qù‡ê`¤?+£µãH{W{¼?#£½åg-qZ]¢þû(í¦ÿâÊÊR°- à˰ˆAÀ7²ˆVGHÄà@ ¿Å…‚¿<ÿò6sˆ@nn.fHbS OÞ¥¦?ò?ƒHÂ`Ú2Ì:€à>úì‡ܺu À¾[bìB@A\å½ bƘ@2½`îO€nw]ARÀ3G²%áZ +þ¿¬ÚguP`ÿOÇ“›ú^ø|cÌSÃ0ÿ7…c<¾ÓæÿÔýÛmoy.#òTŠYÃ1øÁÆ 8ÅíŠÿTJhåŸù3mÍè.ßg`nª¡¡ÚÍ­·sžn +°Z¾uë‰Ââ†"ŸÛM­,,þQþU=3Âï(0rC2à Œ¦Ÿ~Q5E·ðBD€•ë&×1_Æ~ûöã3tÿ²áù' 8C€Dö§sWÌüü8G +àé’{i |®£† ˜ô r‚)ô6öÖŸÞzúô‘`°PR’Wâöùù4gY^™*@ͧ(o8œe È` €„²å”48Ù¨ªhÿõôú‡‰#¥èaÓ hP\󆓼`°À @iî‚îx]ßb_÷3Êtþÿ@ +x¤¬  š“xìˆÒµÃI‡'dô䈅åÒ³2ºù-×›¿ÓUÉ”öÏ£Â:%«cÐ9¤;ä‰ 8f"(›Úþ3¥Í,|¬ˆnÞk54gý¨òÞ´ë{ÿ ºù„^×APÝêñ% 4’7–ú¬Þ hÿ¹æ X«íö˜G°8m°¬sþ_&Ì> # HûÂüçò/äÿ€…BÛˆÆß„[ÃÆøÿ¡qÀ ð8€‡€¥û++‹ÝϨjÉÌlwõÄçïïæfAŒÔÇ÷¶wa @†X÷ψ·ÆÛAð. öø„•ˆ +êâ:OÕÿ=± >WF.ìhßÛûnÿá ‹à‘‘Zúâ/µ´õ··ÁZàoöV| ö•רÈð8 D Á`€EØèþf€+9±„ö0çRó?› +Fàù_n0’D­§šq‰^ŸgèòCA‘LïÇÍÁܿڲPÝßfÎ}9לû¶1QýG€ÕÀw#Á\˸ËbþE’­…|°Lߺ¿õCˆnYÆ#Túßõ~Ÿ± X€a£ý·D̈ˆ¤I HFû[466ïE,€‹Ê¿k¾otuõ{Ï´þ£cEenR䦌ªY_°üì¨ô#@˜½¨B¨Ç4c»/výʼn筘džµA/ CÈ”jå¿ óívá À÷ðT;mù_æo¯ÛŽúU€ÉÊʆ©lÿµÝSÅ' +o³ ÷IOçå§sNVúýQÅ7á&„†Æ„5¿Võ»ý¨¦A>Oë²”~O_‚iÁLNÒýrþþ|jÿ2¹nÒæÿ›dS o»VZúñŒÑþ£üZ„«(S¼ÀkŒu&s»¾·w+[ó@Ik‘/^óò|eehÿXXx÷/€¡2Ì.@è"–~ÓŸ§ÁëÆ¨˜tj}·Ï·àŽNø§@3È +Ò‹9½½ô_Ä@ÁGWÖ ŒòAW0°ôœœô¿8í Ç…]¡ cØéHö˜‡¹ôT)uö˼‚ømVÃI¬ R«;©ý§ú¯M\ \K@V²H´¼‘ Í×èa§_j`.¿TrE¬1;…þ,„˜xjñY‚¨Js:˜…€Cƒpd3`°ÿ<`3 ¬`ÐùÔøw @lÆÿñTý Ć¿0’€°:KØ s"ð%€ç…àI5€\3—..Þì;uæÔ©cG^Ê|)žÕÓþf~þþMbPÀ  =óõ¶Ú‘ŒþŒ¶8}@¼ ¯mYYl ü•°ÿaÿ¬ùd¿XìêZ#jû3FÚZ°ü×Úÿ]ô¼Âæ€]µY,ÞioÆ@í{m“ù³Çè«V˜0– ­ŸÁü¯¬8`%Mÿ +Ðgî™À+ÝÝ+ß0¼{%ér%Cw ÿ òœ½;ê +a"š?± Õ†ð/)ª¾…@Ûÿ¡†cÛßœ»m[î¶Ù—gC³/¿êþ‡¢þñߺ•dŽ i €‡¶FÇÆ¨ñŸ_]2‚Œî®^zv€œä)TþkdwªF5Æz«·TÎûäkTÌ%Žy׉ŸÏÈÐ=@ÔK8.ã¼ã±ñ–o§$ÄÂôÆ?¼BSª)¥pETRÐ íûŸÕ3‡¡h¸ÖjÀ€u½åO²°T×Û{º°°˜J–?ê£ö_R¨Ÿ5±= ƒô‹~zL§ß ¢€ß7˃©¡wLÁ'®¸FÑÄ\åLÎÅí¯nGè/µÿ“• x"§¥L©˜œm’‰ì¹ÉQþŸxõÿk@ù•‚K\ü©f >¨ë®# Hˆ·ž8À&%Ey¾"jÛó°à„¥¯SQß‚“^ß(ó–• yÐH^ÉF¤)ÌX›Ð2ÿ%wìjšâÐ௜"@/»+§Ö‹€`zÙðöí‚ÛWØhÍÀ¨û³¾îçdÀÇýÛ­Tdyçžß8WϾa‹>µ®9=Ðo–±K/VhÁ¥ å¶:œÎAç‚S_Pp„å(½gó À®*ÈÌp”R)Ÿãÿ;vÖ¢«íÕ¶i?@ÐbÀÁפ(€°Ú²q¡@VÁÿ߀€M¬Û€‚ÍÇЩ† %@8,\ 0àïÝ`ÿŒE@~Ç¢@‰9Ï×úÿ ÀcJ—ÈãVà|ðÌ©‚ú}GZ23Û¾jß~.SzLÀ ¿¥½­½–3ÚØ(‹€²&ÁÐñ{.ÿ]#ïá*€÷x kdGmFÿŽ‘ÍÂý½ÿÈÈW==øWV ?èHU?íïõ·oî¨zŒ=¥WÓÖÆ2À}z\•Åxa²mÿ¢ ºW¾‘ˆ¸’Á;"07J&©î]£rk…Ì" ˆjN_'D€As0b ]|:}óO_FÌçg·½<›» {ô=ì@ß:ÎáãÁ_D"? Fx*ðCË8Šþ¸98ŒÂ>¼EÇø-Ë­aûóo0FûË2}‹î.x bÄŒ‰lÀQÄŒ]r]½´:*B¯ŒŽö]º ?€gó÷Äfü¸hRšjd–þ§”°ªz$d“)f‡lz¶+¦0Üïc&…ʾÀñ¦˜ÆÀìh—lö·.¿ek½L„Ùü¶)¥šèg4©räP© ”ïå¹–öµù²ŽƒØ @Cƒ¿á›ÂÓG{sʱxûqi€ÅºÞ­GOœ ò?áGž®Q/ËDtÿPÒ¢ÄTX-ÈÊ‚ª§šŸbø/¿¯¢¬cT RU%‘¨œ«€¬ŸÞŽŸ\·ÎOíT埽‚Ô&•sÔÿ¹‰êÿ¦ïö€@93lÿÃ&@ÝÆ ‚èE €°òï-)q•¸¡МN>t ý NÍÇz9 2@§äpêT $ž"€ XqS1P4Ÿâ‹úýSø?¡‡´xw1{‰EÀ£½½GXx» `ÍÀà³¾¾ü>êÿWŸ§óþÁìZ½l¿<ÍêN:GXÉ. ðÞ–ëÈþ¢ºBO¡ëƒº€)áOÀD¾Œ–›¥Í¥ú¯ƒj¾œþò™®Z=R^žÕÐÿï´_®fK Vñl• Xµæ„'ðußÀ!ï@ï ¯hýíö‡5¶æDwì>ÇþÔh5ŒðÆŽ¡i6Î Îå©@RÚCˆÇ±tïñ@Òÿ¸àY20è‚»ûÖŸ:xªþXKËKñÚ×ÿ6ÿ¡úÏ cùõíTô{jÛ^ÏjË€ò?#.6a÷¿.Ñÿ ïÿ‘öþEÕßâ`zë¯ÝÑdÀýÔ@Ï"¡ëï¨oÉìïȨíßQÛ¶¹ã[%"ðâª÷/¡ú³ p5mô'‚/Šôß%‘ÌÔ€AÜì^üSpŠ9wî̆¨Ì‡¨xSávÝ%dtE` §6Ì?dÞCž¤%Ä +?ú–ÜY³ÅÊ}™ ¡3Ý4 +Á. ˜;ü³å¯ráh±L¯þ‚zþ[·X=ˆÄ@ºŒDÆoM'ÍŸP÷•á 4̃€5}b:2m¾¤o½Å¦D‘‡@z^#—\÷Æ@Œí»ywõîè3Ùn3é£éw2¡…9=&™”4 ‹5_‰ë¸IgN@2ÁÝ “‰žtR¹ìñØÞ’l±pÌÉ~À1–…UŽÇQ?‡œRäA€Tf9ß2€íuÛY àdaaee¶¿a*»aÊôÙÛ[{©¾pîÍ—úo˜)ÝË/@ýG`É„/õ)zÔŠŠoÒØåWWßçâ}]¦l (_O™ þ_æTþRUf—VnŸ9þêñWsfÖÍ4¡òŸÀfTƒ€rJΖ¿iÓþMß­þß˹ýÐ.=QÌÿYÿß×·5( + +rê{·($°«Ø €¿Äçö¢·=Bˆ* Åy `J‹l@üC{g þM¦Ù-[ª „  ‰î©Õf2Úª§èGÅàfKZB~´˜ÐiŸO÷ú}ʧ[Ïò@¶`O€×tØ}(—Æ…0?`h‚PÿÒ佉[Wx*À‰¡+«÷~ÿ(À +ϼÜ€A¿f®I‚<m£*Y½È%¡z~ºAÄá…Œt[*ñ•Í `‰#†¨°8“~G Ì@y`5ÀM:8'Òò¤Ç×X8±Û‡J2 ²g¶¢ÐØö^›á\ã¹sûNlž& +pÌvû˜ÿØÃé@‹‹+¥ôöÉ)óŠÓím/mm­¨pvÉQ6ÃC5«Â˜›€u½ºˆ€jõìÿìwüfNíe==³1±@^ÓfØôóÿ€Àß‹0ý•¢Ì‘B,1'”ƒ†á÷.®Ûùô‡BúÿWò!ETl¸ö `H(üŒÿ©cÇÛŽMþo…PÖ*·7þ»ä¸™Àße‘,fY>yuŒ×¡D"0ÀßlVÑ·T²Gl†aÄ`4„ÃÇ„=²ì’¥JWå›DÎ5VœÛGg6˜™y~ÛÎçw¾tlg;/æsŒÅþâÐçH°ö'ÕŠItÌ„·1ˆè Ìá0½J4^¯—±÷îÛ’ÑìÀwÏx0êó\…À"±ü&“Bˆ8âÞŽi]±ï/£‘ï­E¸®*X kKN˜Ù%ùÜjîn±€›¿ªy_|t¬Vÿ>ÚÿÇ!Øs\q„ €ž×0DQÐàâ@ð+;ŒÌpÁñA EÜ ú†÷þc2}›Ã|i¸ó%øÒŽÄY)]-½å_XŸ + "hàÛkãÿ±1tg¡´üÕ¾ñæÆ{0(è.î.^ÀÐt¬e ˆ@=‡ÿþ/`àLXpÈA2YÐs¸¹¾»«YaKp@ì`°¸¹ÌÝu4ÙSŸ¼Pìùöî#Y€a;Qê¯"ä— >VKAV «üxù&¾eáÖÊâBé-ª ŸÒ@ ðìòü,×ì&øÍÚoQí?Ë.€‘Œp +aKø>­á=¼à‡6?PümÙ2‚bÐGŸ§2¦Þ·"ºÈKgÎö"6¸73Õ _?"S9ðm»9Ó뺴.w¢@x) eÀ iL r¡·Øà¡.À%¥@`Òþû‰ „B81¹zï«¢º²®óÞµÀ\“¦‰ÓlUxY{<„jß(…1ñÆr vÚe¬,A´ÌÖå¼p¯©Šè•î¸v on$rÈ;ñ0…hÂb8ª[úAtq~fTjzl*?d3€›„€½Û m„ÿ†÷Ú pö˜>1M(“bÁYž,&Kùô ±”ØA5ñ‰­ç*ÎnˆnY$޶sÄ$!PD` €=Þ½*¡á=§ÁðîæMŽ˜Ý}<  šááuÐ%^lÅ¥„'ü Àÿ ËØ6.ž)ç]ž¿¶rûaú‹‰¡ß&C8±p~`K °õÄÖÝ'öa@ÀU]Yé’y *x‹Ùj±œ”Äj©ü'ðwÖÖZj±"h¶ÈÐÈÅ?:S©• 0ÜÆfR¥ôfe5ºÿhÿ‰lãÀótzIÿŸÛ„@L/~K¿óç­° â-µz1Õ_Gq `ê»»^dè©âa¢ÏB`óPõ•Ζ«obQgB×À*À»›á@\ ÃâQÕäC诿6±NÅ{~ôÂy`Í €=0@PoÂ@€Ð½²Cä øeôxíèØ¨~´] +#@=\Á,ØæððC¶äK* ˆÖ=_\Ä:ŠšðÇr°æ ÄײRÙøA¿¸B(‰HÝÄPjp}{ ¯¯uCqÁ«ªÿÅ  ´<ë?záh3Ýpï%ô/€ú-®bA @óø@~ëÿOÿY ê››/4ÃH°…ÇÇ?çHèÇtúŽ6$ê“Égúÿ9õñÕþâ­UÂû{Dˆ$p=±’¸µ Ÿi7îà_𿺳@-€?u&%°E4óg—‰\±ëª~±›LЈ `mƾÆT­GàÌ^:ÎÎÎn™Ÿ'0 ðŸåžS_hªêÐY­ÉÑþcD7õµPhÊ׫ëEÀÔfëuK!´rÄ íKGrö9‚üõiÐô¿‘€/Kk}¸¦øèÖö/ñÀêÄäV'.eì €W‰!ÐŽF7Øg”U€bD/<€=a¾Róè+ÐÿQ•sþKð8ŒzÞä—y‘q§a¾$P·À˜P:b90Š·²¶hºëÕ&Ì„àç˜`ÐHèo0¼gh|o_C'N´n{iÛm*xoo³Sôƒ‹åDʉT–H.²úoÓ±/8A`ذàßExíèæA5c¤GˆâŸuîj$ÅØ ?ªöÞ40úóòãHö'5†Æ‹ükŽj¢Ä‚†¹GÂËòÈÀ>†aø7ÈýÅ‹¹ô¯%œ«ëW|ýå Øé%Ö¬‡ü$A–E)¢ç3€s-¬ÓwØî²:-V÷ÿe‹Ë,£ý?Fåÿ;ÎwÆÆÞqÖÂÀ¢²ÈèȲ +ó`ü®)¾98.L!†®ÊWCEÃ>бF:³aÿ̶c/µ à&¤^_c/ô«~ñŸHv+$zøû¢[VÂYÀqœÃÏ!Ó¯ƒ·ð6Þ–Ãæp˜‘S…ÀQ‚aàÿ¨Å"GÁÎߤ¿fØûž÷nÍÝÍ7ï² °Ãû¦YO€·ýTÜËÿªFeC„÷<Àÿ=ù]@ž×¡þ§“€J{OãÍÍù(A¹¶¶öýÑÚÚãÈz+%ÇÙ ˆC„¸…á‘9È(ó´1P…óù¾ +þÇÅŠ¿ s™ƒ²J,ó¸ÀÁ,A Ç / Àœ`|NèçÇ`*xÖÝY8€µúÿŽX™»ãÏÖ½p&É? ŠEÛ0úãb@Lõ¡ÿöØ€n¾ÐÌ™BôéÅúæîdW²YLÆŽ( €“€›»;ÅÍÝ…Éqb eýÁøúÐ +£üb‚È­EŽ4Z ÷§•z©Óq L÷X)X]½£ÌVï,¬&˜ ñûô'ŸšÉµÌü`´Ì€ÉLÈ>1iϘ°Éd|&âuPí!ì j«´Üê'ÌßKÿ®ªŠ~BÕ¬¨ÿ}X¤Ý!l:kê…%ð[ºœiI»¤M/¥µé©\š°|Ê·„OiªêÓ—y 绀ïYâÌúé4îv(M¿Dާ¶œäˆ@îLLN®NL¼>Á«€n + . àÞ#x?¬kl$€ 4¤ô¡ €u´oÙïgmÀ£–PÌ3@Æ«Ëo’ƒW—b1Dœ(f×®yðòư“s€`7'2æ4\‡u“ÔTùØÀB¢®nÀ@î8f·Ml W´œk­8±mzÛ¶mÇDÃyÓ1á!€|ܘ‹—û‡v +·U^¹\Q—@äŸ9$•C„"¨c`x¢$ Ë<ù÷zÑð Kú¬æÅ~Ü6hsÃm†á¶(ÃÒ°dŒ©ÕÀ&ã †‹3ßøÿ×¶DmÿÃ~ºyèO$YŸØ¸`K¥ŽÝ†€v+¶[¶ €í.ÙIØßmá=cWÇÆœTþ¿à¬% +·Ä-Tü›é)‚QP$"¡9;–ñ„F^$äM€†ŠsÄÍÿÏåu€Ï¿„)3€Û;n_ç&¯0~^ña!è´ð†Ûè䋳P>lô¾íön¾5X ‡µþZËè(ÿ£WÇ<ž«oJ^¥?‰¨:ÇÀÀ[㵨8 ÖQ¢×ˆ, ;ò8KNå)ÀƒVoâ‚Gp¦®†áÿ«7nÔxôÇõcccÿc`~O‘>ßP©F=øÿ‹v6aŠÀ°QäÒk  ¢RrþÐä×£þ/²!«q›ˆF*A_ä5€'=þ£#¾˜ÊŸ }ÓG:_)xþ@é' ¢ÐwôBý™ôü»°ØNv{º”@q’£ÇëÅÀ¸¨ûÇë›…8°Y$ ×ôt—uå‡ͼ¸Öh..HöõŒCXŸdÐþçߤ‡®_G­H¤Šk+Aÿ­¾¼•(]UH>3ð¸s‹ÞÄný© BX™®óàÊĄݙ¼2™1e8 ª½H†7û``ϰQ÷þMUUß ò~Ø?‹5-|CÌžÒj«z«¦L¾)Sï!SoÄ÷”/£{j)Ñézÿôc—r™× ÙÓK9v ¼AøŸ»áãù¿2 È1Kˆ˜–è2?€ £ŒÄ `b‰¸KæÖ½U;û) àQ0ì {½ÿ‚"ãÇXGkÒ X-±–›…ëb•Ï#±âWF æÐù­Rƒ<ø„9,¥ËV˜U¶jÞ1PcðoŒJÑÊh´áñuvÔ)¡@Œÿ8m½È àÜ{†÷†¢ˆ¤¯F õD+QŒŽQ½ ÜgMÜoÑ>ðû›ŽÑw·ž ;·ÞUé’0À&(3sÛƒsoÁ„ ÀF€¶€Bù÷®— Ó÷=/§iæÔNWKRe”ÎQd"NÄÒÿƒžƒ  QC›Á°îüwê>$üÿ£Ø¯ÿ_1C6k€¼ +`H1„D€( #Ûÿ§OìÞG{ûiŒ¬V—Õétþ[ÍyÌrrì$:c€ÿwjÇx ð?.cg$l ‹\à0(‡IÉb_\‰rTCôß×(RŸiçKÛ^:ö‹ „L@¥ðÛÄâï>—oþ+­³nýz%)S¡Êa‡qøn ì|Eïp8îQêÛï2°\…º.^x^%¢îõ¾ àÝ»o³ ÀÌ®=\ß›™L|užÿ„ý„ú§jEé_¨0‹h`ìê­DJJ<ÞÂxóÆ‹s£ôŸ­­}_Ï2ýžã*î­%jgö0C@4d£ϧౕˆ)€YTýÌp#!>Æ„ U<€‹ ¸öE7x< ” +`0ÐG `°¯ïHW×”þ kåÙÂñ g>ê> ÌÇ  ˜€L` À*@ õ¢óAlÿŸ@T`2ÙÓS\ÀfÁÍC—GÇ1`@,ìïâ áñd×3v €ØKâúÏ~ô£gŸýQêõ¥‚ô8ˆãgƒ‹·‚6B¿h$0ã_¥Kt;V ÷¹Y°H ‰â€Ù? ¿É€|+€!náÏkMvÄúf}™Ìì¼&ß,ÛüÏΆtm&d å¯Ý2;_¥ó™¶ L¨ +†`¬0MÁ ×Š„´¡ÄÁÙÞ4UîK¦tD§]šò¥Óº™)‚ñ4]¼ž!F` +mÿ ü™¬ ò*—¥«zu!mŽ®‹(@gÇc“tåÊêä•ÕÈ„]‡TÀ!¥ pïÞ#èÜi¬AÏ„ ‰eûÔÜœQ"â\@õÕX«1¼úUaÅÐXÂ, †8 •²Ä r5#?Ú Â+®BD-MØ0 ÿø1€ÜØÁ Þà4t† çP{»ÎQZÝP½¯¢uú8À1áDHYnƒ ~‡íZá»gvWlmimh°nwE ý]ì²CYD5¦uLFÐì Ô•€ƒswç¸û?7¬ö^¬Ñ`¼Ce5½kʼnIMs•sØ—ÿÏý3Ž +†üÑ?w"ŠsØé3Ëþ-„3‹ ®ÿ×BhKݦ'"ðÒ¶é­È¨h ZV˜šN³ðE ³»Öù·ccïŒ9kß!CÀB o [Œr“',¤’ž°M#Þ(eWIL +dÉ%7¸ˆ„µƒй}'`øüÌKÛ N #6vn¾~Ý}hèsÚ@ À‰¤DsI~ J¹'šmbØ[ƒM@î;bŒÿ@ÿ«c}ÒD5ï Ó…·’à›€¼€ú¿£ÑCð§R^Åé¾›k0æ¦ÿ"þ—%þ{@ + t_àZªA†DQzûðxôïêGSýÿ>]¾0ÊD@ïUê= 3øn’šØ€Ä&£ð .QZû%0 ‡ÚðÚµîþ—@PÃ,„9 —ÿJØ—à?*`ø'õg¯ú§ûŽv3¸³Æ(øèÌxt˜üwwå—y-þVý׋ͶøÖ@ÍbHðD}w'ÑÑ €*àå—•@=úq­…ÅÍÅü³Ðèü36wVVWÁõÁÁ#?øÁ‘Ï~¿/•²SÁ m(H³CY¼Wù¹€nåbb•IÀªÿEb «Á•ÄJ)Ú¢ÈèìöŒiÿ¼ Í|tfC¦É‰áûü2fþv‚WPŸX4Íï Ío™Õm™ØM³U¬Øâó™æC¡ùC³Ü¨"Ô‡žp„¡J{(4åÓNié–ªz}9ÝÔ”îlæõÈem:MgŸ/“Ö=› qy¯[Òé~–I³è@ê/¾Îðïƒ @ZK‡Î”†ùp¿,KÌ1†ˆ˜˜˜°¯j'#C÷.e"Üšºr‹ÀïØ ú‡”€¼ ¾ çv’G‚íDîFU ãhxd¼1ëÇ ŸØ¿G™ì©0ôI0zbû]CÕ“QŽb ®²²©2ºO®\xŒ `G9|7á¼sçyN$üol34F Ñ÷\WÃvWuuEKEEk+Q€écc ›vÐÙvl´p[·Û½µ¢b_Cµu»ÜP)±Þñí²EœÞó ªH­–àp¨V¼ÿ¼sèÔbƒÅ˜Úû=cô¬ª5h£¨ŒbÑ‚žD‡:Bîh¢QÃo×1ü—>øW<®ûwy ßX„ÒÙæ$`–¤ ‹Üvlzë¶ÝûZ÷U´œ®ÞNðï²ZcáÏÌa\• šœccÝccc;ÖýÎ;µDèö¸E%[¨Æ—ùG#öÛ ²'l† ›¸`ØpŽ(À¾}»·ÒñüKÛ¨üßvŒu€pØqÝÆ:ÿçÿî´b`¶„AÆ %ü„š.âš›ñ àÝøUoXÌÆõ*ÂhϨ@Û«²$yEDt”8"CGÍ]ø + ¦VEØ +Sq ÐÍ00a½þAã¿H4ÿ÷”èkUb €A€J¯²`…@ön‹›7ÞŒZFkõP Œrà8‡¾  2·$üïå­aQúcþ/Ø?ì†`f€ŠŸðß;E׋РúÉDÌ*n`F ”ÿØü’üÙcQ,½•&ÐH,®FƒTüO÷a yø‡ùÄ;kÀ;¥þ`áÑ3%÷ÞÿÀGAWw"hÆØŸ±¼žóÆ•æ?ýÍÉä@})à›¼ð$ÕÿG_† +YØß…P¡ñz¢=…ýeÿWV††‚ëS8)[*õì‘LÙlƒn¦Ù¡D6Á +¿˜Pµ?ëßÅ[«„þ?@*°ˆ›ÿ„üî•òöÌì~4ð¡Ú ÍÎúBDL± +e ``x˜Bö‰È¼O‡aÄdò™ Ü2?¿<¯­Ú2‹ì!&`!®ê-Ó×BU_;´÷k&Ýÿ¦…p&}9Àe-±ŠÜë"ôé¥Èc:¢BN¸¡SLƒ´&¢Ä-´¡´N§Ý›!Q€UÿÅxrâRfub53qeÒ®£Û.¡-0±Ê:€‰[}‹ò[mÃÞñ®1 @™ü‡cèmÃñ†cY ˆëHöR…aÄk1£ÃVû9Ò4fÄÖ  +ÎAl…ÔÜPi0ÆÞDo ¯°€( ÛÎ#?Ùùs Xð›‹Ã3m˜@ ÓÇÕ`m¨n"$oþ/mÚ´í¥M'vnkÝ:ƒe¸ +â ²«¡²²2*S}‹ò‡ ‡"žl;bj–bãŽ!üójæüÏypݨ®ùͰöH2g-Æ<Ĩ8.%æ2 ÂaþÃðÿˆð߯´Ï¯+2:Œý¹ý¿HC,€ ß¶ ÀÆ[€x*vŸà4Àíĸ`!ü§“b8&AXë¬ív޽3öNwí;ÝfsÜâ”Í ôXŒˆ‰ã±0ŽXK 椒ÃY²BP 3€­çöÛݸø?³mfÛ¶—¸3ÀMpÆ=€?Õú|~Ž!+L”–ÀF¿aÞ÷jJß¹Ùáå@>T2yŽ©ðkV]µŒ^»Jøï‘¯‚ w¼‰<Àa¯WI¾[Cl ¦Æ!wüUoc’o䪺„~ô +ú³è_•ç%DX +P)&…–†››ó‘5®Zý1€wß}÷øûïç}@´<ªQì‰éoW惓š°À'ÎbÏÛ:Jâà\ñŸâA?dEø²ÈŠ@bÑ à³Ê±– +hþ’üÙ?$–¼Ý)J¬ÜYá&yÖOØéìëììë)~æ‡kø¯øÓçE¶ðÿ©§Âÿðáž.eP!¯°|Xˆvþ›ÙXý³Dð‰ú–²ž.±/Ø ÀÇD>&ì 8vuv²=ÀÑqú~€Ôï> þVîÜZŸEÛ1›E2›:Rø¿wé ¸t“Ÿ(@*èÏeñ(‡²~ªøC‰UP\Y¡·±¡;‰`$(;äÿ €ŽÊ{E€úŸPß7yÅNÕ³nyÖ®3i}¼ô§Ë g´!­}R›ñÍjµU³!ªðQñc"ÿUà&­¢ô}~näÿS&Cx}(‚îÿÙËÚÈÙ!ùë‘õ6ÒÝȼ®õå–´ºÜÔë¡4v¨úGÓŸm¦rD Ðjs9­I  Ö4±‡´‚Øu0-²çÍ&W'uw® @G`äN€úëárG^\ 38(9Ξ\cˆõ…É aœ‹nØPË꘬â,€°¬2«bá"Ñ`ó_X«% vyŽ¢˜QŠÒ)FoF©IŽF%¹²²M~Œ`a‡Œ' Ö]œYG$À°ÓÐ6lhh‹¾'G¥í®†êí§··T´œ«ØÝzâÄôóǶn:qlÛ¿ŸØ´ûßOÌœ ê¿ÂUQmqE]² Ë訄g;ÔÌa›Ð3#c€`ŸzrõOTÀ‹^ÀAÈÔs¿w" +€® +«p,,”êˆ>Ì5•ÃúçŸÞÁøÿfÿuuuþÇÀ%Mo­þ€EæC¼(\€‚bp[¬b°»¢ât{»ª-N+GƬ—Y²\•1pÖ:Ç^s¾3Ö=æ¤ï9U á¸ÌCb$IH¢ô±1\+zâ*Ù—X°½ºa{EÃ>"çDàÄÖib·é|û¶2€¡Ï©@ÓNkÜ‚€î‘cÛ?ü0Ó8 Gÿ›¢°ycGX„à~£*-ãÅ«²Òž“<è€lî¸ÛQ6P£¡R+–üŒ5w½¨ª•࿼ô~¾EŠüÏÁð_ò .À,”< :kFõïŽRé?úþñwéC,ŽzFõžQÏZqá’Ü„ŽV“’ÄÜ_º—t'ô/Á®?|ÂPý_+Š©\hÐ;JŸ ‡"Œ©¾$^8—¢÷,¿•&€CÙ` ïÈ4Õÿ +»º~øÿó€Ò€ÿÜLø_ØsÙ¿ÝŠ°‡5¢ðÓz¶â3ê1ûOòü?™¬¯/ìøÿÓææâÎ:*$€ƒ,$“Å=-…"ÿª«§Ìý^ëÐñßYºnó¡{6‘Ý‘ì$ +Pìn?RØ7˜J¥l)4%SÙ ¾Sn q7u¿²ôãjÖÿÇ`•€Ò÷ëe-pßÇ€LhÖþ‡Iªøµ³™ UÛÀ¤þ°ü_kšŸçåŒX5;?ošßËAÂóX@`Kv +´¾*Sè?=eª +}9ÀÄ t‘Þ¥ÐeÝRšªùt°¾¡¬ù¥ÓiíìÐÿG»Ÿî@4€ +ÿÜôÿéœvIkú†i‰W ÓZS(Ç΄:(\Š<$œ´Û'&Ó«—t"1èÒ¤² +ð(vüH¢}› Àƒ>Àœ4×-7¤\T®¶$óeµG¦7r9F*ˆèt¯bOŒ³‚bˆ TacŒIl…F 7Ñ»E\§b!}îq€¼p伨œ9Oçó/žo446¶EÛ¢Q™P½ÒE·b€†Š–ŠÖŠ}'v¿D ´µb¦å¥Š™}çZZ\ÕVWƒ«@rIDTJR±û1F ôЋbDŽØÇwÎ{ ŸŸÅƒl¤aù¿‹_ XS˜}˜ëañÀ15v‰PùÏÑ¿Ê<ûûiK€uOü¨ù‹ï¼èÀ«ÿ +X€¬_àÿí”-€À¶­î»a´½…Òv—µÚjvvcàtZ¬cž“òIÙr²-V‚  jµ`@ [âô÷!ó@dI©×‚ þÑ0rIàôöÓpÚw¢ñľ[wƒl›žÞvûvà6§ì€€Ÿk‹˜Å«l¶Äãæ8Ø(̶?šuØêçé;(€èG¸ªÖƒA öå«úû~S3<ç툾9÷&@ÈÆ8Àëe`×—fkUŠÝ?n{HúÏö¿*6.yx2ÀÚÄÚZ³JÚ˜·ØxSÒ×ZÆÆF¿{üø»ï‹}@!PyDÀC¿1%öjBJXX8Â(€ëþS§J8éE§ð«êsÀÁ „‰XD Æ»_€?7LºUšrñ¿ˆî¿ÀÝFàH__kgaKOñ??D”0 ÒÄý`ᙣ/ò )ZJ‰ô%`}\x°õ’ ¬t’õõÊZºÆÇ bŒàpt@¤C2PÜUع¡+YÜoUèêéì|æø ÆCÁ,ã¿I–(£§³³ðãÎþN7ýÓÀý”-ë¿o»oÃgzƒÊò0 «lÜ‚<`Åïeôƒþè?qïÊ•+¡ý˳ÂÙ‡ð?3»lÿÝd¨Ê>©«šÍÀ ˆ-øøû(½±éç3…f}Üì×!Ð"JÈ5ã¿Ö´¥ŠÕDt_Û{èOÍëLS¾ÐS—§zµº´î¬ö-"étd}€JƒŸŠý^ÝÒR: èç@zê†O‹>ÀÁ:·´dÒžÍäLHÒò’Ø> “¹Ä¦€“Š+pD71a¿w› öëvÅ€ï_/€ë‹×à_#r ÌÕ\¾yX¨A ΄aa™ŠXÛªb1v{ò·Š•ñÆp çºԒJ­Žybô3¢ô/¤¦&©­±¡É¬ €ÎD DßÚy~Óù™ó;/^œ¹Øf S¥TY)5(uhu5s€êŠŠŠ­ /mŸiÙ·}kõö§Õe…úO¶È.ªõ=ü­ºS9èQ¡‰Æ–Œ~PïÏy±úGøy€F!04r2ñ( ïQbq úFƒáâÌÈÓå–¸–üÇó¼ÒåŸxd#ß©#šP·£n„®Že8O¤¡ôîþ'‘,|ÐðûÑög 8ò;€¼Äà¦ÛĶŸØ- á9B@Ž[p /Ä« 2ÀZç;Ä àð¾ÅRkf™€9n1ËqŒ‰Ã2ÛH"@½Ò9ÎŽW© ™lCöÚ@§é­Ó Ûn¿¤d‹<Àϯ@6§3NO[Üç¸\U8N‡Jo2tt wlÌoá ¨I€¢ú'üGË]FðpGtx‰Àô¯jØ €È@ÍðM‰ÿ8ú7Ìõ¿R~cïŽÑÞQT¢wÔ*DÀ¡X•˜Ùœ€Q½Ù»1?¸õ KA„°*Æã/øÊ’Åø‡Î£©I‰vYã¨W•\¿ÿ׋§Švº¦ü^×è&UÑ©ñ»ò¯‹[±’k_€?¯þ[\L /NU1¡cÖ– +¸;;[; üçŸðÀ–->sf¼à0v +”@ž$Ñ€±ïÇã<ý¯û}bøŸäÀÍãÉÃotsÚ/æ<ü׋@t/ÔÙÕ ­ÀÇÀÿä+=eíŸ-\Yò©À§ú?[Îåýâot=ãîú¸¹Ïý†Û½Á=èNÙlô}t‚Yº_6˜H\'0”b ð¯$ÖSùŸ(þñ"¤rW&Cû÷‡ìš éBËË“°ë"W&|ó&_†+ÿü‚·„Ø2ؤ¥@¬Á#`n˜83t’Bb +ËZÓ7C¦½ï{ß +UQõŸ‹,ÁõO›^¢²?Ç!¼þÿl.—;{Yÿ¥3>bÚËiíß§AèúÒ~úì¡CUU‡Ò¾ÞPˆíBb!0’‰ˆÈB»]Ú'&/äOÚA ®c?`â–°øÝ_=H4bÀ½k6›£3v]÷aùxÏè_zàú#çÏ/,œ_7sñâE 5êžyzgºýüù‘§™ˆ{’$®ÛÀ?|…à·ŠÀÛqýÏ"€ op Q€VÞ@€83'=VÙb•¯bò*‚Æj‰Ô¾‚@ D²ÅL…./ÂòGÉ~aáïá%xÖ[ÁªNà àÜwŸØ½uú€éÛÓÛǸ`ÛdãÀçVv}¢Ã"¬Äãt†Ž¿ãf>Œos¥1@ðT¦§P(e‰“ôžá=†î}s˜Ï"€ÍÜÀYÙýÇ‘ø›_3ûý—°€%%Op©Í:=ñ…=ø&,ŠkõµôGíº›ÿ%6vXjGGߣ÷*hÞU40ˆt ‡ö?¶š j€Š]1¶;dø¿v¡ˆÛ°$¼F¨_B`Xˆ¦(ÀP \ÛEŽ¢/ ÀŸAÿ[‹CÙD‚1h#@$hLø/ìê*xíÀCøÏçÒDÖ8s¦ž«þdB(|Ø(Ù €¼éÿ€ðýS¦ÿÍô‰<Œ$Å`Î/ÆÿBÐ<€t¡.Lè[¸[WOaÙ§orÿ•Þ}ÿm¶,«’ ÿWî,vö¶¿|”M Õp÷ÛÙ€í>îôgSÁ„Ÿ@vˆ˜]É.®¤lèÐ[×€CßÜšœˆì_f“ŸÙÙiyvâÞ%_&’™E`ýÊ(èOGk€ÀWfçgµ³ó[¨ôŸ €!R…©BÇ.à,Q¿ÓþÝrÆtèÐ7Mºœö¬/ŠèÒ¾%íåùrÿºý|SD ¦Ò72¹™g¹ð'àOŸÅ®@Ýÿ¥%PŽ´¶×d:„@‰i8 +O@%‡ý’=s)réÊä„=ó#;RÀêê_¯Ì·Œrh/ +>ÀÊ&€,F£äÐPY'ó¦—‡ð^ŽyÂ1¹È#œÌam L•æÿsÇ©ku4J$€ÐŸê…xe“ÜôX |€`42²é;¼ @Å2}ìgƒ³º[¶Zã€*³ÚulV)fç}‘*\ÄÎfáÁ»D`~PupN\ÌåI…žùÄ…Ø cÔjÏãœG2ËѶuÜþ¯;ðôüàþó#þ3Ï_œù>h è¡ìÜù­ó;Áè~¥L>™ì`Ì+€ÜÀ @ \[x`˜Út;€4ài7€Þlh¨lpU:]§Uü»L ='ð޽rÚ@§Ùi‰³Þ=.³bBüÅЫá(ÅÉ@èÐÚôÌWoohi8Ý"œOœ8A€À¶é¿½íöícè ðÛÅÏ=$ªéɇÕ/æ_ÊYe¾IÅ|wÞq4†™arÿŸÕ”úì1z®j†±Ybðº¢DØÁ{y Aê‡ñ~­Ãaæ¤_!ôGڌيÿ Çã~TúÚQýž«žZ½' +-#îz= +@€®é‰¨FU,„à;ÁbPV«ÔavÿÅb¢¦/ÿ¡’k»¨ô§ßíÔµ=¢ö/ 8åàÍ€"üNŽ"¢øk4¾$Ÿu¬h®_O¤=觺˜Jb[ª=t÷õwvvwuí~h 0? VO ™@Ÿx^PÀ.,ÈŠ4 ±ë§~AsWwOb€ùëæŸ&YÿÏ`0lF[¡0YÜ|t@˜6'» +Ëú>k`î;„‡Bäå¾[‰Ò•RªèË; û  + +Ÿéìïk·½öÃTû ;å¾o ²©TПºŸ°ùÑg—üt¾LÑûWv(õÉÀïV©Höý:2a_Þ?Kµ<{h~~âÓ¬ÎgÊLš°Cºµ€³~µ0  ó–Yßì–-Jí? G Ù*“–X€ð6UÍî×úæ¿:ôoìEÇÀ—6¥×—©üúÃîG4àÿ›Kë–tKiº9±:½Dç)Ý3€³gMK¦³&íý˜*Èð›àÈù|ºµl û$·&#CW&&&&‘ ìû#À#Íü1^rÀa´«áäA*yb¶àVëÑÀI¢š~ï}‘A0ãF@€µq¬I.’UØ}g±[¥F¢þ‚MR¥ÄÏ=¶=ÀWQýc€e€€H¾D `ݺ}†C¥d¨ŒJ.œ\.Xåíf«‹ÈÀ¾Šë>s…Ù +];ªT½þ«d™}TUE+õ1•Vc˜hÔêƒs˜ü{Ñ8(ÖØþ‡.‚ë.´Ö@X°–ñÐýaPlÿÍr(À,ã¿VÈ–÷j·|íßÐiµº-éª\ÎÔK¨G?vüy=Âk~°ÿ÷=›óM-åÒt™™JÓ½¦–`|V›¾¼„Ðßt¶êrU¯É´¤å°4!Ÿ’œQE `Ân÷ E.]YøtëE`âo<‚?-´Xø/^>xP3g”æÂ¼û§Ø { XÕ’GMoî2[¡!îáÊó]æ¼=ÀR %#°ßÐxq]#ë⺭mm„zëå6‚î<@33óóu?' +°ŽÛ¢.)êªD €%þøärZ\-Û!ü³¢£–7•½æ8µ%²XqFsÉeŒÿK1nâK¢Õ@8¼ÂP£QkØÂüK‘Ä<ŠjOÌ ËR´qÝù§ëêˆü¹øGŸèÊ šÿëèyƒ„ñâºuÃE„¶akÇ/vœŸÙ92òt]ù‰‡ë ” žÿãcˆu€‹è =ähÚ·¦ÝÓÓ„ÿXlؾ½²AŒ¨*¥ÂŸž&úd¡ §Óù>äÿc¯8Çœ'‘Ä<€(€5.d~¼:æš·“ò°XÜì:À††Óbó\+Áë´8nOßÜNþ_·]ÿíÿ„ùæpÜoÂô_ˆWÞ½ÙQÓ±fÅ¿ÑÀ«ùlªˆú¾»Ð[ÈÒÜ›š÷†½5F¶í¤ª¿†c„ovxkîz;~шa>ƒ>T » !ì¯s{&h°«laL@\´‡Ñ˜ïјûE>øæ°Ç<ªÇ@üݱQýûæãðÔë=k^ÿ%?z(|€Jb1Ý÷œ**ÙE.‹€þ{v]£ÿð®SE§ö ÷_„%ì/Š•‡Êlv|I>cŒÄ/ƒÒàýòÒç`Ê–%Ð×évs §«¸ ¬i€°-½£dgSí©žýg +D õŰ Xƒue±_ñø]«þ øë“=É?¹ãQ¥þ'ðr3!>Æ G“ÍãGlj$8\VøcaåÀz0Û÷c7iqñÎÅTaÏáæ/ÒcêÚ]X– +¼–ºßélO ÚîÛ„þ)0˜²%‚h$JS6'˜Ÿl•Ø'¯LV}}vÿþ ë{Ë_¿5Aµtf62  -\þ‹=“2Ðò€èB¤jYáZŽœ…NЧ­biñ‰ª*“î)“o‹i)¤5å´¿4ÁðçFnjŠÝ|ŸU:Töcîc)·´t6Ý›^"€ÑÿÙ³K˜ÿŸ5õV™MþÓOÑ‚hE2A(„h úùl`;gM^Ò]™˜¸²:á;ë‹\Wt€· (¯ÑˆÀƒ]@öí| “$&6U+Cö²¡7xp6 BÙ·w¨©,óÖ€ºÈ®½ID£Rì}—›š¨ +46Á÷q€îàär|BÓ€™ó3ë` ØÖVFY +è›*Ñœ®¸SÞnm0[ ÎÌkͲʇ†Z·¨â%±¸ž‡E*=d¨¥9µÈöbôÿöAá ½' £Ú¨{¨úé¹K ‘ ºÉ¦¨aæ[#Ѝ€ººòº§GfÖ‰Ø C£¡q9Œü„ýIÂbå0…jgž>3þò+[ÏÔ•ø€D,ì¸î·íÈ×þåÊ@¹b­%-Ý”Èûs€(¶n ä@K L+ätŽ! +è¤äº*Ÿ”='1{¿›°ÿ§£øXaˆeA™ëC…1âoƒ½’üÆÞxXŽËį8`ûéÓçZO·¶r@¨Dà6C‰/ m·ÊШDû_÷  ÕtttÔÜTf›7ÿBB£ÝÌ@B•…^aô\^uy5•· +/‡uÐý;x@×oz þÍ„»µãW7ÿÂhÆz=PèOÀíЃ)wÿJ_ {•¹„À(ýkïݯ +ÀÆϘglll‡žh:`÷XF@’`xôÉ(D¼Ê§Â üÔs1@Ñ ÿ."»^Øuê…¢]Pœ*Êï òF¢ù zð“²}I>B×ý‰Ò;+‹‰Ô`ßÛRPº;ûû:;Ë6~¥8ÙóÃr±D$€úmÁöîýõìøW êzöîfùóƒ0à¼Á¿ÿ)å’µƒ—ÿì\?^ô»‚à'‹›÷$»Š“…°»ë•ÂÎO'¼H ÚÖÛîû³~áLRZšX)Íöw=SXà~£ÿ™7le=íý…îvw»íµqÛ`*Leý¶”ÿg‰¬m(›M¬ØƒÙlŠHÄ' œ'Lû©pe–Åçç'&í9“)B•´/Ðd +‰-Ôÿt§ +nýo™]öaw€Ùgñí€úb~~/¬2ZŸ©*Wå«Ê¤CºËÚ_F¦.›þ«XýßÐå¦nøÒZbhûçèò­t~@ØO4ÀD  ×¤EÀDø9‚ ÀÇBÀ-€ÌP$29±:yïž}*4›àë“ øH +¤ƒ× ? 5C^œc?~׌þ’hÈjX9&Ø#Ç<2ö¾‘öæ ÇöÈa¾;~Ž +®÷’ôc\9Ž1ù¹¨,?®8 –üˆ`€ó`“ó™ë8¸(á¿T)ÞÌdkÜ*[10» e“â*kÜBïÚØßŽó SK^æv(®ÇØæçÂvN-R5çνÍ5CüÏÿéÙCÎß367ý?Ò$´TÆJ"ÿp ŽÇuOÓÅ΋m@ûè0!~tXƒ+„ÿpiÖHêaµ4G·k Ãß™{òÉ^®¡Gàw°\Ûô³}`Cè @пƒëÛíÔíÛpšvO·¶Vlà8 WµËê2;-cNËUwx@ö÷]À$ÈrÕ‚%Hò#jDIx¢ÿÏYR`ƒF@HÜ¢l6T7œ®8ÝZÑŠskëtëþÃïtýzùêŽYMN™°ßæm@à¿Y¾xóü›lâcØcAÀcQ1 `E– Œ ¼4û<x[!7%:šü†Í›¿ª)Q{ÐÚCð‡?\•b¹ƒª{WQ‘² È9¨í©â/Ñ{ïn ‰šZñ½QOí»úãc°€€JÏ9ÙÂ>€ô@âü`tlo€Î¶üK˜aí*zþÃh”ìÙsm×®"€’=§N•q8zÿô;Ó +n.!šm~ÑìL-|I>ãXw{{û Êw_Kaᆞž®æ®Ýu¥å„€¥¥‹ÙT ÝýÝý’XT€«È,Häeýyx@Rdÿþ/4în~Pü‹û\@`ðÑ£Ì88h Y@aC×@l^Nö§>cà÷+‹·°`°»œÿýÅ•Òßû?:sf ¬³óµÁ–þWÝýýîÁûöÁ€; É` •²T°¤†¨ö_êãUì'W¥îØ#“¡È$÷ïC0 ùf«&nE «›ˆdæíº¬v‰ˆ-@-7÷yçŸÿó³ó¾Ð|HùnPý¯­š_¦ê_»·êP(}¨WçÓ¦M9m&÷ëˆÏtÙô3¯ü  îYDýþk:§Kë¦t7Ò„ÿ——–Ò(þ—Îö^®:{Ùt¶ª·WÛ‹A•ÿ¡)6œÒŠEà?1€LfÍ À~åÊä%â1TòGˆÅ`sE$=iu†,{¶`¼ŸC°¨æ¤ðœbˆñ_%ovKˆó`@&Ð7š¡ñBœ° +*p ©6r÷;,7Q‘ÐD5÷sTzËßÇ&d +P)`9Á¿ŸàÿÃ:ŒÎlB[S€s$òi¸ C×n•¢ÖJ«Svše"s¥³Äen‚¨=^ÂêªZ‡™ÍÚé͢墘Ce¡ +ÞãRŸ{þÿHõAþ²ˆ}ÀÊ *ÚµˆÌ?#,¸þÇ¥J­jŠÖYÀJ«ûGvÎü#´}NkÔ /ã5 Ó0j¼Fu4F„Œ˜€Æ0óä“»ž|ùåu;ñó¯„!ÿøWªaÀê?^ô—ç%€„ÿAN©c¶Ûcì¸ v$]ÕÀönªí ç]2»\µŒ™Åø¿ÛlqYœ.ä8-V36YâÇð?^(eÕc˜íxÀ"8—ËUyºå41€Ó­8·žþ~k߉ï38FõÿzÛç`­.ù¶õÅ&gØÌÈÏ­ ân2È{mþ…¤lâ)Ä@–=ÈâWdñÃb„o¬;ˆ@Ðq³C¥`•ƒ*•ƒ§ÿ±¢’k 1Þpˆù@‘âÄ>€ì!°v"r7Z«×:G¾{*ýñãz³= ›9ÐIæò?6Jaak ²ƒcì)B°¿ ×w•ìºöµ]{ŠöИ]P‰|„a~Øít¶úï|I>s `%› üSY6ëO¹ úÝöv(aŒ%€W’=îÌ8HüNéby6ÕÞÞf¿#™—ûñ4º¸!0 êÿ¤ÒÿWŒ~…úþþ=ÝàŠ ð…ñ \ÿ×—ÊŒ°P\PÜUØ S¬4'‹»z +ݩϚ¬,&üë ƒ˜Àè§\¨¶Ô -[¾òê¿pô£¤ÛÝUà-PævÓ¹p{ òý~[ÐOe¿-X~ˆQˆ~È'×ìC™-&ìÎcˆž Î''ìvÝ^{&4«› ÁÏ/äív­2˜Ÿ÷-›ÿéê²Ðò.@hЩjy˼ɤ­ +íÅê>av¾Uº´6ÉME./e„×?²þ¦Ò—‰¼¾D`iéòÒeíRð_Eàlt:t¨·Š¨Ð’€?QšÝ€Xð_4ˆLên]¹7aL‰]@6x4CÊ5 ÜxàVΘïà‹Úñ­°pÇCý6ZXh Ë1##jñ†©( «%©­Rjj"ü¯¤++ˆc€x ®¼¼üC?_Ð,<¿I„]ÜghkkŽ6TJ•Ø@9[­r­Õc¶-2½AÇ­æ¸S…€SÕæ‘o.dŽ¢Sª°¹¦@v <ó?8'€`xìð@V²‚51z"bœDÏ!2ƒ˜ÐÏ0ÊÑÆu3üí@ýÿ­ó;w6^ŒF+ótaÌ@ŸæèÍŸÿ¹îÂôã5tÃð™ž|ò…'/î<¿ }¥à¿þþMÙP€!Þb ` +€àØÜæ=ÀÛÛǦ§wO÷+`ûöj«Õy3€Z§Ùj¡²ýªå*€,ÎZ„:aàâ°¸cÀç1kÄÌHý À@t $Weµëôé tjÝÐÚú•Ó߯hýþ‰ééAÀõÿooýþ‹‚~«5neퟷ 77NäRª¹Ûá½{WIâÙ¸ù«p : x*ËÒUÙ;ü¦æM,êà%z·a5ï`ðîÝp-Ëï-_„‡¹ÚߎȽpäU o•CÌÛ± @¡tYFõfô¢7YðÕãè»*ýéöwõïŽÕê•£Þ@‡U€²ÑÈ鯰æ0C½¾h—XJÔïÉKvá&ÔÿÄ +Ní)):µGÌþ%ñÚ8½¼ +ÌqBÿíî¡Õ……/ À§óÇ•;+@ôÁzžÊú>b¯^k öwö»û ÷t½ÒÕ•ìêé=>h7¥Ú]gÎ<º_1òå}qwA7#¿ OÿšóS€ÃpRôÍÍ<δ¾«LDž`WYñÇG?>úñO~Jtàp˧Ä­.ÞÊ®¿UÈþyÖ–¥3X€­³ë9“ &JÝg>z±¹ ÛÓ‡GÀöZ€>§üí}6ÿ`6˜ò§²T±dþÔw `³½ö  s¦ý³Ë³­6ÃJ¿ySæ“v“}R;›ñÙg‘¸›å?N‚ÌγÐ àYmóu0 š‡50_ܧ*g2Ú{ȧ½Ê™t9_îP.·´¤Óþ,¢í}=“ã À©im÷ò„ÿÚ·ÞB÷rÁ¥%1€^:=E'í!´° ÊùèŒ!Ÿ ¨‹À$;L^¹r)71‰ÀßÓ­—®ON^Â"À£ù+-_gÀÀ°Àªÿ›4ÒA:SÙ¯ÆÏý52Sþгè- ,q»×lD¹ïF5FÀaΔ"Hÿ¢i8ÚÖm¢º¿)Úþ8ú¸ðŸ-€þw”ï`ø//ßQ÷aù‡#u;žÆZ ;7r !Z —b—±’*.£Ë%S±´:³ kûx¥Ù7ײ.ÛÌñ©D +JDÊiL.¢÷;#BÕ깃û|ÀDànôúKa¡ÈRAÍœ}– °Í’'¬V«bj)zqf]ùw6ñr?~·‹Ã?Vâ¸ý¢aW&6À`ÁHÿ ¢15®ã9óÂÿ|òå'gfÀfüßñ øÏw”Ú_dp£# :Aÿuð:wlë7Á  Œ@À +z8°3a±œä@@1ü·bIÐâyyK@1"f„q2@5÷8A’Q3X¢Ÿ +𓯜þɉ §¿ÒÚ:ý}e€ú?ñ…Áè‰`* ýúk²4 ß¼ÙÑqó®²H—.<Éf‚Y‰þ%Y0)Ùë•Ø ¦ÞŽ·k:îÞ¼KPÝQÓ;᎚=b„1Æß\ɪzª«Ù°H$ôŠýU$óÅôk†€,”\R¥K_SI5Š +Ð`TY° +8ú¾~”“ôz³Gåá OŒ$Œð2Êr À,ñ°*àXŒ~8/îBÓ¿„Kÿ¢=»öp!ݲkÏžSô:òµã£÷Ð……/ Àg€ë?K+’¯emí}î¾míƒîö€»p·ûHKO!ÂþŠ“=-u‹$ÿÑH¹»öŸŽ~y-¡1b¸ô¬` 9ßð3侨ÓÓœìÎ ñmdÃ.øè“õOr àÉXܳ¡ qB/ãg³àgÌrVVoÁÉàNv½ígp4òÓ¹(½+ÙŽþÛ™3g’ÄböÛ½˜oîêq÷ô»ßhw§Üí¶û@" +‚ƒôvu?Už  ~•úäìÒäD$ÄÝû ¡¶âpvu¾Iú¦o2’ ™BÊ@Èýò ?€¢ÿŸå(­vžC‚ùX-cïúŠþY¨ +Æ@¹GûåΦQù/ét<¸áCðßûÒg ÷—žÍý×¥åæzjêòYÓ[Oqùß«]"Ñ[UE-†þV¬B à¿ÐØ'"—ì¼GÇ7amàÐЕGEJ¿eð¢ ðp<ðAhùkÔ’b4Å:»cc%,dO¥Šg¾‹ŠÞØN2ª Šñ2@¥ŒðÊ&•™!1€¨\Ùö¸$€¼ÈÝÿºrÿåÒ·ÐØùó;yÀÐvnJÀ¼€â%Ïy`c«"P/á·isÉEqaX®¢ê¥ˆNÃ*='9<ù @´GÀè**^:Å`Ã@q.¦Q«5Ãsj!ÿ’k<ô•* 7E×Ìœßù­ŸÓ/Öh0´†¥˜ÑaT‡%ü#ëÔbsÆ4jž¹ ê¡2O=¹ë…^~òâÌÌNølbüÿÄ‘ÈÇòèˆõÿ‰¼;€¨ÿƒy@à6ö·Á +°“ÀZ“k{§Õ*a!Ã~…8±)y³â<*pŠ ¿,‰<Ôþœéy *fC@sXŒ\Àÿ< Ó‰¯œ˜žþ>Ì€×Û®û‡~ÿ‚ÅíNkÜI…=qKºpÒI– 77Þ쨹{—#pÔ ù/‹,w‘ä‘¢ÃÒ°Fô7 ׿3ØøöÛ^/ î›U%TK·‰@`îó«XïWT"Âö8f G‘¸™.Ù㯤ijÝÃ×ô*/裋€@~ t€Çõb=P&X˜”ÿ± £'bì"ðn¿(ýa9°GЀ¿?P²ëS‡ ôSHü~aáKðg¶l?ø§Ál"Ø,ûj ¿ÓÝïnßævo ”u¶¾Ñy˜×º’‡»þû«TL‹ƒ˜Bª½ÿÅý5ç]|”£» @þ ìɼ²Èw®§»t±PÌÿþÂ/¸¡ÿwéí‚®îdWaOñÀÇ/aÈ—C>ôïµÈ¼uɎ¿Êg·›|º—ñ=èhYý¿ùù-Ë„Âèl™!@`¡yŸo~Ë7æ—uûçç«f÷îÅî~’|ˆhu`KiÓRdéòëtý¢ÿþIàÿ¯KSiŒÿ§¶¸|–àÿò[Ú©½‡èè¥-‚œ‘@é oáËøò^¢0±_š˜äE{æÿ‚O0Û­>²¾ÙÊÓ kØxSg‰8}­hµÀÏV˜?îQãmžN²ŠÞíãØ•—y3Ê@V$•ÑᤨõTQ8Ü–›ŒMrœPwßãz±í>€TõûEÿÿ€ u;>äÀt€3Ø7b +… +@ÑH¶H’JŽ»ø©ÞG§U”CE ^{Ê1^„`S.§`k_±ówþz<„Ô„Ñ1ªÑUjäÁúGM À i ÄƒÂÃ9Ä%Äç ¼æ×¸®ÑÐŽj†£ˆ’Ô1âjüü9–âˆyAbt± 4ÿ癈Ô6Ø9²iZ‰‡–ÿù?»+"ö à +)+שú§“-uìv;€€{zº¿kÕÕÛ­Äœâ³i—ì´ŒYÆØ ØÌ=—•[ÎüÀ7[¸A¬XGÍ¡ ã †N̲ð_ ð“ï}ïôW~ÒJõÿ†ÖÖï:0ý#ÿ_¬–°ÍJÇsV®ÿãax+Ç­šš›7‘ì+œ€ hOÊ  'ˆ€Gb×½6XÌÍ19Ææ€÷m6î!àÝXC|À ÒQyïåMþÍ2÷ûÍlÅÏݽékˆõÂ’-,H¯ÒÓK†z}Ã]!FØÜ¡Ò¿K ÀcóPù?jI¿fda[,<@ñï 71ô‡9%+N„û˜3`þuÆè÷€œÅŽZ=ýq¬ø¾ÈÇ_OV=_+þ›ÂNw¶®ÝÝÙ¹»¯¿ïµÁ~÷ ]ïßPˆ@AWq²§ðÅgÿ!›}õÕ_Á(¸ÝÖþFrÿ©ñüdÝúd1;ó@³Â„ù¿˜Ñ_òpÏ@R8åS€…þˆ „°¹¸;YÌ9Cãˆø)Œ^)ûôÀÊÊÂ*"|S©ÁWïÜñߦVRí ªøUžíëùø#wgý/ô” h¾Ðtžéî,+ëìé?\ö†Û]6ø¼»þ}‘#Œ0¾ o¸¯=¼xÏŽÔ<ºLÆgÒ†|¦YÓÄĤ=cÐÙDàOèj‡PkR:óÜ ôŸ×Î=´‹Ò¨@hý‡ 4…¾¾šÕU}]›ƒ}.Cº´0Ô.¥#SÚ%ðúϽî[Ò>«%ôÇZ „7ár©÷—ÚËOzj/zUg÷n1ai@S!Æø„rà&>€‡ íxO\ºwïŠÝ~6‚ÀäУY m¤f‡—å°頑£Ñ + Š?Š®. ¿’Oh +ð8à†¹*äÀàŸó‘ `$øo +9Œ•?ŽJ ?&æÐ 5=Ö(@lÖÕí Ô÷Síÿ[¥ PW^Ç=€MLÖÁ  ­M(í*%Iì4PÑCÀÈo‰s~[IœßKq•ãÔ®SŽk€ÿ8gÈl(6þ¼ô,}`„÷¬“bFkýÕF*ã¹ì7zç<üÆðäD$Ló© vÄÂjM[ÛpÛð0ÿ. NÌÆØsRÌ!]qº Hs’†èwÔ#1ð+õ{2€'Ÿ´ÌlE `ÓŽ‡ðŸÑ_(ý•€Äo•< e@À¿_ôÿq¤R·ÛiìvVT´T‹€NÀ÷«…Šv ðßBØÎí˜õ¤Åz’;NÔÿNs7O±ãbÀ*€9ÌÀf€ª°Yñ²Z]'««‰|oÆŸ|å'_iý>Q€il^¿þ…æßþ¦Ÿ`O@3;;¥¨áîÝŽ:oTøÏK²h± €‚î¯Ê²¦MfJÎ"º»WHï*‹€ÞŽ*âc*•ñe_XÈë—Dî‰@,¦â8@Ôèì ˆ8àZ³S²èõžZ½Þ¨Ì4œÌÝB GÍ¡€%€-¶yF“6¡ ò † øùpÔ³¸üx!àš¾Di¨jÍ%ñ:õÅmþ?pçwCÁ eeñùþÎWËS¯õµtAcüù¾7vwöwv–¾Òs¸€·««§°§§Ì½#Û¾éÕWmí¿J=ß÷ÿî¿007÷a +Ä@’‹îÿ?d Øô )àÁþ?úÿHØ?^ÿ$HÀw…  +wõt5=Jà§IhzºÊv†À„Ÿ üH6q'Uøƒìâ‘Îû}?¤«=Å=é¶{°ySO¿ûÛgÚÝã=¯¹_,ìw—õ»ûËún÷`g =`K  üS¶Ávª°¯Ï +þq š×b†ÒÎj}ºÐü¯ :#Äì“‘±]Dëc PÞ`ž{°ýùú²/4Oè®L0ý÷a2€NÀ׫–—«¶/𙪪~iŠhµé4Ö÷o˜ªÒ뵇Öçt¿­±²¸²’ÊþìHaaÂÖ_ÞW¸R^ØÕÕÿji¶øL}Y²=Ðü«úç/úû{^,o/øn»ÝýL²ÀÝ^VvØÝßÙN$ З²õéKíÁÁ¾TvCá‘þÀÃN÷.Ù'í¾ªeŽúE0:úóvM»=D;w|­ðä?wÐ ü_®2-£âWŸovy~y¾JÑ †æÿ*ú÷‚ü²Ê”Ö¦C¹\:ÌßH¡À¿Ô½µ”¹ÁaŒþ—ÓK¿´ô—ÿÇ[g—žZzë©¥©¿Ó¾Þ»å©·L‡¨î?Ô{¨ + ÂhJçó¥C>%«HçSÖ3e€xÌê•{ºÿ|ݹtÉ~}âÊ­GØXX(¿h2p€á|€ú QãÑx¢¢@7F+5²2G7Jq"j¸þ¨?À{¿¦jÙ¡‰^süßô!E£²Ã¼¯6!¬£ÿ‰òÅòrp€:Ö€@03³:@¸üG]XZ«”%Hþ±%ÇÍ ³³kPUCÿwVªhw +X–© +󊄆៣œ%Þ}Ç$ݬVÏi>P{½sïÅà" +sÜ#€¨º‰÷夃Xr¶`,¦™“®I1è£Ãa8+ω ˆ 9_@jܵgÏßþ´qfæù›6ÁL`ªqVð?Ÿ(öÿ¹ýŸð+Ýÿ ’Äø¿Þ–ºHÝÞèƒP§ÀÿjNJ° +¹Ÿì” ìk-ÝænFÿßuÒêR:ݵÝN~_WT€F9¿^Ä@HɘÄÑ8ptž|å{|ü`ÃŒÐRýÿ +ú[›˜X!ˆ» Ã7ç7×d€3.‹xž-b¾Æý5¯,EçàáÓ a€6Û{ßî¸{Ó뭑РG•of p¸Hxîb!ÐS5Õlö¶y„ñŽJøï9j1PaЀL *ù=Q¾ÖŒìËè»Äþ³-¡ÙÌfDó±š cÖÇ)YÂÀ‚o bv±å¿~>³9€¨þ“æsœÈ_u ñ»…/ À_ªËî$²G>.ît¦¶ æo>ÞÝ×ßúFKgKYa×ážWº +Š»8‡§³ìµ”-kkß”|­pÿtí¹·4 Äv‹>€0Pz¢üç¯ +’ÈöQü€p§ ¢PÏîßåOõŠ 0ä…]‡ ^?:>0þrr ¸¸ø•žÎOÓ¬'HÜZ¼åÇc¡?õ7]¿*-ïdªÚ;kÚ»÷×U¦ª§ª~iª"Îå8Üw½Nû•ÌÙ\Žhnä`û³´Ôû?Þzê¿^¾|ùìR/€Þ¥o|ý›KgypHÔÿÜ .¡ói}9g°P0€È`;€‰ÿ½÷jû¾¶EƒŒ‚ä!ª)™*² ØQ€Š`~ˉÁÈA„x¨ŒŒ­V‡±œI9©NÁAC^™sRn ïÐ;±!ð‚yŸç™¨~e\:žÉuÏL|rJœ1i'ƺšðúzŒqšäÆo¯ýù +;=¹÷6­óOIHBóÃè»ÖÞ{íµú +x©} þö´ÜW°¼7A£©Côu î Œh{96ú!D¿Ü C:xÒ™‹å¬¥+D+Àí©Õ&J|G«5Ë©RVëÌj¨éHõõ¾Ü¶snÍv–î]ZÚ¼´w‰¥ŸŠÝŽ’JC€ÚÒÚbv¤oÍŒx“;MæÍ¹“aü›!4ÿàP ·ËßY,Ý,§’%»½¡dY·Å†Î¼ö€äxÈ>¥N´$b´oƒžð{ +2AÛbXéKœº¶¨€RÚ8B|ÌŵñÓ¯Êym^óÿ¶è¥Ge‰D5<~4cˆPù¥–£w¡)¼˜‘‘]š]RòÂû7Ò+¬} ÿa÷_W t“KDsàŠè˜øMŒ`tÚqz¼€÷a@åa®©È<ÐA è/(`ÿ¿‚üü—3^FPú†^?ºh0¸«Ù +À&ܤ½b7Y"hÿÑÀ©ëå“ ¯Ÿü×öú¾OŸ…`éoQ¶ºÓpˆU‡ ˜„B:õ[y‹‹‹y‹WŠw®ñžkÔ²`^X'÷“®J(Ñù‡p¼@ê Y^Æ¢?XòÁûÏÂïWæÖlÙ²xP͆@B§s‹dñ‰6¼¤†°€=ÿ’ °÷÷=@øß›Ñ‹T‚^½Losëõ!¢!·-CË aºŒ¨«Œó0€ë†)¡`¼çmC¬ +ü/è‘]½ÿóó߀ÿíA¹½æÖòf“Ï—štä³­Fˆþæ]Vëp°© €•€/ÕO×£*¸Ó9{ÂÙêìÙÚ÷v_ŸèÖKêdK@áî—z×õWZ¬IÀ"'¨³óÞÞ@s/¶}è_$\€è ¬*ð%u¶ÑgonN­ð§&ùT®áà—*n­"ʯÝôãÖ&ëæÔж¤M›¬¯V4¿ú‹MͯŽ V5%Yƒ ›]FcU‹õX`ÖiL +vq†YƒV£Ñõ¬ªÉÙä0Y›Z›†ø˜œ*—«ç^ ÉêKårn¦#ó'jº‰¹Øíþ¬i8£¨³¦ +ø‡徂 V瞺9öÔ\úÜÍ›éhþß¼97aŸ“žñ‘‚7&rÓ™8@Î uEL‰z?il|B•ª{$¢„ÿÿÌÌ}%i¹:ò‡Gùþ÷ŸP~‚ ¿)#9é#ÿÓ0 RD$ ðŸ3êïé   ?ÀÛý‘ߎ½Q¶Ÿ3îç€*ÈIM¥¦R¾»(——…ÕeZy!Ïm´a·Gë¡;Të‡ÍÂPy1“â y?rv R»¡ôB>¨sË.w{EjÈ×ûrÛoÐéø‡ +àqÁÆ1@ €@­Ø ƒ¬¹P'ÓQÁ„ñ¿¶äzÂý¬êÿ1èF€;Ù]ˆ²*E†&<¡?<°¼Jk“¥$j9ñ/‘Á_‹à›–E‚S䕉4×&+¬ž’qbŽ× ¯\·V¤- ¿<ú\™\+“[¸ÔwË&ŒoÓ†IFÇöxŠk‹ÓŠw—f?ÿ¼h´ü¾}óïñ›éèóe©E´K åÿ•]ö?.T!aÄá8Ý´ÏJ `=‹¶ +Í…\äÒ (À $>€…|6`àïÍ÷3(ÐçÇ[6±ÍÈ6€6áH¿ìëÝ +ø±GðæË'‰ü#(Àëë܇À•¿Õð–m‡ i`òuOåâÊâAp€-qP‹ß3ÂY™jcà©ÔÉåjpé@Ï ’g°>¸aËÁÊ aVÊd¢ºO£?ÏnÑH}yèW*µÉ"‡†ýɘxõ²´d™íçS/¥ S@$#ü/©„/e¼Mgz íîà‘pB@e07@JF2Ñ +¨ ùŸ$ÀOy2™] <Ä^ ›èõDs«óó߀?G=òFÓr»ÉªºSubðˆ*èòUU«ŒÕÁÖ}p6ªŒ*Ì|„Û© "`='{¬Gw>õ*»O,ì³üm%_ f©÷ú ƒ’hÁy–Tœ—€‹ú„ 0”6‰øˆ$Ü9~§ïNEs*ÚÕ;­_º@—––YÓà­MÖ–ø:Û~QóêS¯¾úêßo2¾z¤µï³þ¤kÀzì„)xÖjÝ{œ„ýÇ‚*«Õ´:‡­ƒV½µ¶:O›‰Xïí¬)±³æ&”,§WÚ3çb×ûûëìYJ;vìuJ;·÷XTð`fÜïgùÁs7»™‰ç` ÄÐ äÌ¥ç@ÿ—“s8=’s8b‡ R¢ìWFGfˆì3xöÿ3Ñ]/~ðÊ»ffF®>ý¿Ï5žÛñİ&øûF8 Ê¿ºº!{ÜÀÎÁÀõwUèdÕOôß^ͪÿŽr¨ÿ¬Dîë ©C“§ +€JÞ`›9ë¹éÌ)ªf±DofàñÔÒ]˜ëk€SSjUì$˜(,ƒÔ›Ì[¦³¹é˜F£¯}ð8V÷ü÷.-Ñ[Ë^± +!`ÇÆ:e&dà ¹Df‘ 5£Ì¢Ocí_( ëÿiOvsP Û§tó0Í7ޝt£sOq‡_.mNqí.Š]NMâ,Эä@׉&'Ã\ò{ ¥²Y¨Èóñ©Üþçx!›Z.û¹ÅC_BÇýÂ{¢*…2O1~ë…æbs-kŠÏמÉÎ.ya#$€KÜ óï…é_»´€€$h‰Ã¿ð¢38ï7}´›€Ð4íÛ·o}.Œ +· …:Â$Œ`Üëïõg ÞÏÏïÄ€%˜øóýÒIgàÜx"#5ƒMëÆOê&¬¡ZíeßÕÅC€×yðìíÿÛÝ {áʤ€§2ooæÅG ²(«”ºB¶ÝÕš ý!DA^%«6¬ðJàbå…?ÿ-ø_Vþü·Ìoz]å°þx_EpÐi5ºâ©æW­PZ«ë *Dü´CÀÀêt8zœƒ©Ou÷ Ç^†tªþ©Bg!ûû‹!¾À©ß_‘”z×þ—ñÿ|<€@Q___‡ +!z¶_å;ÞÜÖ×w§¯â;>â]AgðË~H–Zjf[Ö`‹Ïg,j›-zõ'EE¿ý¿f}Í#³Ö¶Fãã` àfU'NTX{¦¤Î 1p,PíJrµ«V—ËÙÔŠReØaR\AÓŸhúÇ2£kûM…ÝŽ>ÀÜŽôÛõõʬ¬z%›eÑÃöt$M°pþ%ØÇ"²ÿnΡôŸ»{Êœ˜ÈLGH ¢\aŸÈÉ)?lO¥CUÄÊ…ú¡XT©$ÄgéßHtáÿÐЩèÕÈÂÌÓÑW£¯œ›9÷ýè‹<ý 1Š@ÿá0TÇQvIÿÇF÷ ²â™ + ¿>òËéú¬+YWÚûïëKi)!/\™K 8Éå¿’Ë„§ÐöW—©åSí”y +þ9¹‡ê}'ì©õ›¹’Æ›Y-§çð¤@Ëa8˜Ž£,s«u&¹¿öÀöšÍÜXÚÛ²w‰1¸ °}óã°Dør&Àë̲‡p4K q-…Úÿ'9©„=NÓ,Ýÿ€Ã)Õ?2­Òá!I„õèýk±ó_™×+•»„ä‰L0°%‹U>ŒRò0™Jä¹–0Ñ&ƒ"xÿhQàk‹1QA±ofb±§xw1‘Mqam¡‡ _sæLé™Ýgv—þt ÿÛ%ÁïüÅ—ýýK¨ÿ¥F+kÚÛ… ®Ä"Âÿu9§·Bàâ=ÀêÜÂm†ÂB‘XþÁ€J*ÿÀ N <§ÇY -h9 @&³% +Eƒ²˜d°ŠàÍü7»Þì:¹ €üéÙ®¬þíÎ…[¶q@GN:³9¼"fBˆAÀC?סÿ_˜‘AÜ/C”ÙĬÍrµØtyPn8Èû•¢<×#°Ú’OÛ•ÏexÚÊ–ƒZÞHIc­¾¥Ìd:µM&àÉ2xþ°½Íz| \l6¢òlèìæá¿è¸9&#™˜Dÿ(ö“Ÿ|Fb1ý‰ö¡GdÈ\žÿ–ü¯F7W[ÖíoiùÐåKR¶V ü \çW«],Tu5€pÐß01p8›œÖW_­hæLþýÍ}œ +àKZ˾'è¯BìûÁýçÿÞè@¢ýßÖ†}P +A|pþél>Þw¼¯€ +ŸOõ¬Óúe€[×éX4Û^Cä¤ÉØâJõW|n2¾ZôùùÏ{ÚÛš­G7[;O´ž¨®€ÿßk’Óø…Ã8´žu3ŽVÖaË ]=X°¶š\¾/€KÓYÓ—²”;uõõv Öíu9uוcYX@ >Ë^§¬WNæÚëx à@P€úô›7›xŠàŸÊýt¾¡‡Ñ @; ü1€ÅáœôôH,çƒHT1£ˆ)‘ÈØ©J~{4#ŠàŸ…èHl×HôõÇ®¾xu¤ñêÈLy´q¦|¤î¿ÑtéÌI€uCuûã +€µ@ý]Ð?0€àþéúþ¡³Yö³Óýßž¾Ÿ3Ñ`øÿ•ˆ”¿u@Örž­GËAZ ¿‡›Ðžp1ZæZî„‹åžp˜Ÿ"öÔ,Yã€YëölªÝ_³ + Â`‰7ÞèØØÑQ2Z2šp†@1°È@…vaHF… +Ôÿô–fч*B°$-íº»SôR:m:›Ì-ZÚÜ´?ÀÞ¾Z›,Ñ‹õGtþaýŸxb@b°–'r?€ê|M^¢ÈT”«Y¯kàÚŸ-ÓªåH)2³>±Ð ‚e¦Z¿öÌîââmµg¶ÕŸÉ.ÞMôewiön‚ÿç_(ÙH?ÕÆ%dý`×o‰àþ÷ì™ ,@°$ÙòÀÿ+&(ÿ¯¬c 6·žÞ×´oßzÉ ¡¡0ß@U©Aå4¬ùëó_îÍ¿çäg! Vüú|ah£E­Èº?¬LÒ››­€BTH"ü C„ü®¸ð__ÿÙƒg?jÿ›–…9 †m‡Á(?d0Þ"°áZeÌýâ3€R]†ûPÂs:ÀÚ0·„°þ¯\@Maå ¤+•j™È¨²¤ €ÍÕ ,­°‰•VŽYÁÊJ%ý){97@rL>[¡-#ÙË€d‚½ ßöR|@ }}H=b? õµºM¦CK@&é…µJ2’À&èüä“)b ýz¿^Ÿß»¯e~þ[ð¿iü3þ_¿ukݯ«öo>a­n4Y*úý>p€ ‹×«UBàG{ŸÞ§ªVYÖ É÷jŸ´çßÙÙÜéjjhîK¥§ùR…Pgª X+ÿé]Ÿ´ù/¥ÿrþàŸ@¿/Ìó(š; Ä›aÀfløé½®àënÜZ^¾µ €ÙÁV‡UÕb¬hðõ¹v¾úÞO:_­ªI2}ÏžpUÍ:ƒ®£ÎÃG‚'ŒÆÃUNÇQªþŸvÇþ]F¤¸‚¾a+Á¿µÉZC`øÞÀ´–? ÏŸú1ýUL¤+‰ô!@ÆîØXÝUÖlÎ],æL@@¥ÿ®ææ»yøO13˜¸11wcnbGùk7&ÊçD—+bTÂGc±g"ˆø"3 +– ÿ_ü2² Þÿç"3‘]W_9wõÅsÊsçˆ4ÎPõŧrý Àbßç]ZˆwêbJåØ=^@¼€«ÛýýýßyEùƒ+—VWûÛÛ/Ý×6òÖ° €0?уپ@®æµuGxÂÙS‹{žp­Y¦ºÕã-üo©ðÅ=­ŽŽÿt4“i‰|½ ¦æqìˆâ_à?/ @ˆ@6« ¤oùüÜlšªgûßn™þZœ]BUÿ(ÊþÒŸ–fŸÉÎÎÞ:ú,LóKíí¿§7.÷¥µnû3ì/‰;è + +°_2d"À"€u¡ ¯ÿYnnC®Á@C>!Õ¬ùÿz*Þý½½½ù/¿,¡?½OÅ?ðÎÏ€Î0þµé6X¼Ä`OørUj¼ °ëäz(þÆñ~éÑmÛ¶¡Ÿ @(ß`–cwp1oqQ2|è±­B–€>aþ£V‡'Õˆ‚”£3—È?¸ À–• ·àêàâ–E¢ÖÞäá;€ÀOÕ~(YÜõ†Ù8`KÞTJJ²E–, ¶,0Ä_²ˆ†,9™îãbt•ñöÛo÷¾më}Iß‹€(óÝœä`³…2´6>@üªa·a:%'ÃgŠÿ'…Ù ¾˜^F$›ù†}ß ñß_GV¥þÿò|Mëë?øŽÏqÂtäC“1ÐéSÃ…à¿ÚE£JÕ@ï©X€9?>êê!P„|^É࿹Âp9:›Ñ)Hòû Z€ +I ˆç¤&uŠ]À5w€ +*ý…U`Ä„à}Püc±ÐÏO‡àñ¶ææ;wú޳pj ø%ˆ!hi1 :­ÆW’êXsÑ΢Ÿœ¯¨(ª ¹z¬ÆàfGpg xÂa ZXÿwV9Ö`…Ñz´µÚh­îÙtºœ[‡UO“5Øjµš\©ª/|±Õzûô€Rùݧn>õÌTÓéöëÓTÿ+íìÈAuP‡òF¿™pB‘Oàÿq€Ì¹ à&°@àÝMŸ+WLä”——ß8œ͉òü>Fgå©(UìTþX‰F"»ð6³+zná—#CWÿðâ‹O7žšŽ—®D0†ÿ‘cCbÝ€é[WÞãÏ"ŠÓ¿Ú?ýÊß½~éÒôÀíý«÷wœÖ1™—à ^„%=ÂI± §‚D#Gÿ_Sëù Aÿoj &€°z‚ÿ29Ð_Œà~'£ŠÁM°C௷P³'-bþÏ=n|ÊàñŽuŒwŒ–Œf#°TS îb†# L + ¼E•&{@†F€h¤"NõÉ_§X.Ët²4Xé-Øò—éˆ+ؼHýEõ/§Ê_vÙ+c ݧÃq¢È곟?{û&ÚärÛ”PT¨y<¿`­ T z<ÅÅ……Tïîú—fgïÎÞ=šÓÎÑ÷³Gÿ{ îRùŸÍÂÿ_š_¥”ðå?οçjŸeÿKöc ×ÿÓ¢ý…E5¦+û×!ð£ÁÓ„œ®Þ‡ @u.•¬†|ØØ£×@ñ~ïÿËg ÄX ÷ˆèô<Ķɤ€ÌË{âBÜ6N€ƒŸ`×›ñÀIàÿß:˜ U B™„9œ—·aeñ`q€EL0(ƹ…bB]ȃD`u˜€ý¼€¡-%°ˆ±ÀÊ¢î™uÃ2 ÷-B¯"¯<¸U2N”qcK&,®!úÜ&Ölû§d™÷%L*Ôokß¶¡Oà}²„ð2~è€ý8…dB Y ðs +þIäþ! ðIaü#cMMžþˆr¿Qðÿ€[K‚0Ò‹õÖòfW ÐÖi=a%ŒøýI~¿¯r—Ñe\o¬öU»De/Ú÷t_åR¹Ž¨~[„2_rnnóÍúÚ’|*ÞóKò£úO½;@êŸè‚4 ùý¿„ÿ(ü ú¡ÀãRû 5µ“hCEÅñæã}wè&µ³Ë§ªþÏ€ùåOØ f6¾ƒVW €€ª¢!ðysRQÑ ÍG­FÕ a¾¯AÀ~kµ§!¸Ó¨r«'Æmk°j¸Á8hÅþc@F&R“)ès©îý:ý«—¨Ôì)¸éŽLÔ¥Ý&ø´+ê™Hõ5à_ÁÆþ÷žæ„o™\ü yàM‚ÿ¹é‡sêr"ué±™º™X$J>‘EäÔØ©vÿ¢‘h¬q¡ÿÈ+tdfa!ùùWÞ<öôÓOÏÌÌDŸËT4¦Ïˆâ_‘>sxH™žÎÎbp/ü+% 4` +@Lfºÿö¥þ¡¡¡KoìB Pû},wh4š<j˜„åáaµÜ¬õH:@*ð‰È5fŒÿk5(Pkk5žZpmØÌöXðLÉÊñúºÖæåÎ_s àqiPPÞ‹€5„ÿwt””ŒbÀv€ +ø' Ó¹Ù¨!å–´p” u³à×–KÈ-ë¶$[ô^^®F‰$³$"á'Q Å¿—~@›—ˆ ´„éB/<-,97»S‰,ŽÄ/‡ôo :t@î‘{ÞòxJÏÔöS­¦t7p>%vöó[·¾¿ñù’’÷·ŽÎ3øõ]Zj‰£ÿZÑßÎi ³ZÄ`Í -60]ùÈàGĬ§]®' +ÐÛÐ öÖáñ‚E¬Wß«/ðä?Ü ÆË˜îèÂ"€Ÿ-¡“¦Ä ¦À×d}2Ô„ùPþw­?yöìG«óká«6l3ª +U f†€1Àâš#p6‚ˆªé7h.,ýÂ~õ«sXÇ€Ø\9G ¼•-‹S®O´ý1Ý7l“ ãj¦’÷¶¬„µ²¸Ç“-ñÑd¾Ø¨¨ÇïK€¤«m/½M ÷¥— Àj d!·Í¦ +[æŽo~ 8@2zþÇ+€Oòæ_2ûþèýCî7Gü÷×€åU!lY÷FSËò­šYSg[Õ‡&cg’·ô: îýªêõFÂùjÖ£ì÷û…ºŸ>h¨¬ÃmÎ~vî÷«TÍ•/žì OêýÉ ¾û×\!ô~\ÿÇ•€h@ Ô‚à ]¾Î;Ø<^Ñì«ð§ªŒÖž/hÀYÓ‡&GkkpPº’ÕmIç›­ÎcÖGÆVçà‡„þN£Ñi 4 ëi ;«U¹ª’;]Æ +阫º)Øê°ZMM>ã@{}V?öåÊ¿«°ÁòH‘cŸÈú¤Þ^¯!àÏ×%+ ÄúpŸÝ~æ2ÑöG'à&Íe–ÓÍTÿOä(ÏÉ™8|#àM SÄì±H$[¨;Å›ÿTüŸ›Áõ®«W‡¾ýÁHãÓW¿»ëœbÝÿõÅÆÆ™‘‘èÈ#0@ó@\°‰€=.ðü·+ã2À{;YÓ«·ûû§/]êϪ€1@ÿý]¨ùdOiž†ƒ ¬Ä2•òej†(ÖÿÁ¹6¬AÄ õj‹‰ÐMiØ£Ñx4a\ö„=fºá&FSj‚Ó!ÿÆmûš@\((@ d€ñçoìÀ3€3šRM-UÜf³Y´\Ct ¥<ç_ºIc «Tú£¸B5e‘éd6À¼Í’BøÍ¦?,sD¸ *‹MZèSO ïß)aæO¥ÿ”++âœøä#0ú½‘*-=sf÷OwÄggfsñf÷èÖçŸ/yz¿÷K²³¿ä˜±º„úŸIÀ’´ù¢Il,Iq@5ÒÀ•öšýWè\Ã:Þ@"€cÐqút¼Ñ ÀûýéUÛ«ÏðüαWÿpï›ùR@,  Bô° ’Zn†½W&\i0 €X]_P±÷Í®®“`ÿúúú³¦oÂ^˜éж±ÈÙòp3€Ebyè<´aË¢¿<ƒH©2ˆL@yÞb7€ÑÀ`Ý[Yá‘À†-–á±öÓSx@t+Q~´aˆ +µB!¨Ç +þü¦VÛ ýuj›8õ‚¼”,8œÙÈYü×fp°ñ]³AúŸ…DF¢l”œ’VYYQôGT½~þ[ðg4â"‰[¯§¾»tkS‹©¹Ùètø+÷¥ß$_ƒÊX-ÀjˆøEìzS}¾W°¢‚hAEEª0¬hî£ÏRù dW <Û'nâvÒä¿‚Ã×Ê^$À-›õÝi6€ÜBhî ¤6?Þv2€¤wR}ê`Í,/ß‚©æ3ì;­T뻪ÕÕ¢cEÎóúFÕ³Fë/œÖ­® ÉjüѬó˜+)è4žè ;1üï ª‚AcµÕ@â`°ÕÚ$ ò}aOô·E .w¿ªÕ×éëL­À}©ÖO%¸ÄgB+HàÍAI èóáSãÒ‘€¼_Hþûúú*Àúš1h£; ¤b’ÚÜFŸHàç¶æÎf¬þd5Ÿ”[«·–oµÌ™5õ8á`Ðt¹TIU¾æóÀh0{‚NÇ ÿÎ*«³ÁhrVƒ¯á‘ qãÑg­Áê #tì ÐIÅ^ˆ¦ ýîýZ—ˆ (_»1MPYO˜:TW761p]™SŸ5VÏ>@Ð(ïé@˜>‘žC¾ÈäíÿœL°€sååå€ÿ‰t›s#çpÎLNÎLzÎá™@õ¿²^þÃýï\ãBdäéWfFüåÕ軑È+/D‡®FÏ 8:iœ9,äx~Bi_Ûÿ»KìR(ðš0Ot„à¬Û—V~ù¼1ÝNœ ýöõû|è¼Å: g!ˆªHÓåæ²0  ~ UÐ_Z[:Y[;©©- OÐHŸ‹Å@"¼€š™°_ëå¾á×M6så/‰Z¤M€íR$ÐÆ÷Ä2ÀÉÒ3¥µµáb³ÙÃZ+](Ä#Ò´%${€Ž¢ÝÝ2’ËÒºéPŠ£)g«¥ÈÜØßóZmX æÚºD¢îØ%M ÿ©ô‡G€V`ÿ” +~ÉZ9QJPþëäfsXS{¦Öþ£Ïô—¼ðBÉ %%Ù/ÜýÙGÜñÿ¬½¼º„&ÀZ  =>X.@’ à^€Wö_Z@ö€Рã#) €(À£¹ÕÜÐå³j }\\ühô^ìíêõ¼pw'žAlÏSbo"/€%›÷\|¸7ÿMÞX¿ïì•oÈh¸}[nÕZÀà) Cþ[¢°á¡¸¨§V]¨óð ¤-«Ì»&Î˹7¬‚~–®¬ -°ÅŒ_´ÔfaxÇ€%”¨eÚpá’þ4‰É^¨ÑH¶ÜÅmljj®Ö"ƒÈöÒh3^ :Î 2²dnlwôÜv°IÃñ-V +yñ¿ €ý¡rKóó߀?kP4+Póúë[6Õìou¸ÚúZO8Œ,êë;Ïsz¿/) £ +*€@ U"Ï'à®Ú™T‘êó3P§²08B*1…¤$fì ,‚y¤¿¶ü/Ò@ãÿî½6a  ø@'ÖîôµÑµ/i€ë‡M_üyØ ½åÖRÍgƒƒ&çà Õ +ü¶“c¾¢Öª¤¤† 1hu8NB{“ѹ9˜d=´›«=ÖÁ#=Æ*cgÐt9‚FU•Ñhmµ­/¸|ª¤/jˆL+sr™¨W(éöÌÛÊ,ÄAÿ/­Ø `¢Ný 3w3}âæM üç”ss;2ç2'ûçæÊ'nð5Ó9éé‡Óg"Ȉ1ˆŸŠ4bíO[D#§®îBøïÐÐÕ«3Ñ]Êz‡ÐEÿPt¤QÁ¡A"ÿÂ?ûdÿ§¢ë¡øS¸J".ÿa8½z ƒŽ±¬ú+Yí«—î³`¼ ¨ K~€jiBýsºÔþÄÐïG®.<õ4£áQf²Tƒ›<¦€Y€†Gr­ˆ†qÛ´^/Õ$_Þ€ÙÀýÐZ³@`?“€½R$ÐæÍóà¹Pd'dã»g;@³Ç\VÒɘ’& éá Ø&ú¤–îºk ŸUìÐá.ÅÂæöœ‚Â)·^/2${EÓŸÛSjíÔÚ»S‰"OQÍM‘)þ ÊðJöxŠ×࿤dcÉF>•<þgîLßZE`é:!þuI xÀ]`Qÿ³ Pû~Ñ` £?Ç„EÀÓÖ&TWç¶!8”oÈ22ôú^¬^ÌïíòÓ%¿‹@øßëïÊ¿;È ç³ÈM§sëdk* êH¶¢‘%ÿ® —þ‘‡»Þ<ùë<ûÑ•o +,[«¶¥Â2€¹6ÿ¼Jªð%Cà‡®E/4s™.•TjëtSy9 H%àÁÅ õ‘ý·D8o±è¹óÏŽÿ^&N‰!t$µUtžï#†§bø D *U—$`E'Ö»| 7 Ðôç-Ÿ/À=z""ÂЗ³€ +iñ/Nõü¾ + ýÙpM<Ø|¼YÕEOo;ÞœzCŸÏµþOÃnÝZž‡”¡¥¥†j &Ö­Aœ¨šï³Šük%øwª'f;O œ0{zŽƒF_ gg gØj}ÖJ,ÀΠª¶žºèŸQ÷~¥ëX“›‹Õ}÷©ï*ÞCÄŽBqãö4Á~=ÐðWH ÝÎà/åý(ÒoNd¦Ï혘ËÌ™˜+ÏÜQ¾cÇŽ¹×æ&¸0Q^>q8'''ZMIø¯ˆ¦+g"ï*b§”‘Xl(6‰>±°ð`ôE¬^9}e$úXäõÆ(¸ÂáØá‘È >¹.2ƒ÷/+þìCÊX<@8 + +o° ðÑÆØ¸„m‡³õ—úûÛo_ºïÓÓM%“yì ¨A­/÷LQ¯fZVúC  ôOÐŒjˆ”NN–Nj4ÈdÀ'Nº•‡åSvÇÉ6)‰î/ñZÆ6žºLýרüßܲ¹eio| € (Á§Üxœe%%% l4Zû›Òb¤ëÌ:7Æ®2Y§…ã,ÉÈdÝz:Xv§ýº[fqs`JGXw¢å2¯ø—qmdQÓ”’bq{½6^í—£±@{À&ç²?ÞàdXèþ¬Œ„gèU!q0–ý³³G·fþ¿¿±ɆŸÿ +Ò¡UÁü¯ õ¿Ô Xbý_û¨á!À‘ˆë+WD¼€0ØÇ{ÛÌk€ðû eä£Àû~Xì x¸ °Ÿ‘ßÀãz\/ž›ɸ±kf[bÉÉ)HŸ/@  ÷áü7»v¡üÿèT¶änÛVCàC D<“×ÐXáwè\i(<„š„³!mFYeÞA¹üWai@¸ã…% «µŒÃ!ŒZ¼i²d±  /ÓVò.O%1† <¼`ý$»Ý¶©Ü‡u³M-Ÿ’ÿœn3Ô6¸8âqþ/´q$° cÿŒ«Ü!HôˆÍÔëã@6q‹/®ú°b”ðŸi~þ[ðç6ö/K>€ËÿòÛ¶·´ožužpZ}E狊úÎ÷q™Ÿ`À¨ZUíjPUù|(äÙ×`¸1½(÷Ép òq\/Il2'€'OtÖü€šã§ +¬ö±ëoQs< ¸ ž}wú„Kš›U©wÞÀ;Ç1¨T®¦/ +1¸µÜR3;KÓ‡&ªÿ›Œ;ƒ®žÖ ÑØPð'T—u§»€¿0]ƒÁ@õg=A× “³Çal{ÖÑy4#«±!XdôРĺ5ðÅqCÿ4:cö1û#cÂLO‘>Qw;F…´Äë;'³P| Ñ¿Dü锓NðÏj€‰œò¹7  Ð Øøò+Øòw,- HÁ6€ñÿ®QþýÕèô¹èȹSÊhä\ôé™è/£‘‘!´F†¹ÿx ±Ç¨ô¿ üB@œÅᢤÄUÿê4Kn¯öOg½1Ðß>0}åÒ'÷_>½w´t²¶’=èèÁÞavÿñ`áOãÉó ÷¯©M(¥Â¿”nJK¯˜œÌK˜ÔL汊 O¢L"i?…&ò¡üÂ׃0F ÐŹÿzðûÍTößÛØËº€½R&PÉÆKJè;NÈ®•ZžBÎ0âÔ[Ò `¼âú?ÍrÞbé¾Ì¦êÝ!¯Ì¢# ¦üîD^ý/“Ùˆx½œÝ›È6€0ö? ’DT€˜Ø@‚ÔT_¡ðçŒ%5\ÞˆÀØw7ÊÎöÝøþfŽ6þ*uÓò- –â ¾ y,± @‹Àa@ÓbÀŽ@ÂxÝG&tžÙÇ^€?Û7`FÔÿzð¿€dÿTÀç¿™ïÏ¿Øwêêb‡ ˜ b ”ZëÿC,ÙÍôò`×É“Tÿ?¾úñ7œ Ûª¶ l±¸ÍS ܇Äà†‡¶tf¼Þtº°Ðº3Ìó*°€ÀAŽæ@˜“a´²8…LÞ4þ»…P +[XBø;;0%\ܰn€L xã…ª_§·¹3t¨ÝÝ6Z=%' + f¯ÿ—2@ˆ`mSHýÝzîý«m|ƒø>ƒûzúÜLA¼XœH©?†õ¦Õùo ÀŸý2nŸ_€–ã«m?Üh1}Túý¤í'ts}~’Ÿ U*#t€Éwòî>gÿø ê÷ãAùðèÁ$¦Iâ–ù@¨Cg*ZRé_áRÔ\Ô¯ýI[ba03Ÿ¯â;ÍÇïÇv`ª¯+ Zo[þ“eŽn¹~ @Ó`Ð4è°Z©Ü·ZÖg]G.cs•Ú:h ‚ÛÆ=UN“ÕZÑc²ö˜œÆžãVßùª# \~£ï¨Ê7¼ÞÙÚªÚy/·üxÝXýô@Vlh¬îûõvFÔºô‰úÛÓb¥^)v±HÞU€ +€@æÄÍtÅÂnÖå¤ÏeÎe–—gfÞÈ!àŸËÜA ¼üªÿsfrfRæO,ª\ˆEbvÅ©hD¹`EÖο2s*2Yù÷™sOöGG" Ð,DFØ&pÀ:¸G#¢û?deY3f @Œ®çGïzþ÷׋m€þÕKýôðÙ¬uY_à š0I¯©£|5ÆLØýWã)õhˆdSÙ_RšP:^Z299NŸ2>:ym’y5ÜFˆ+­ÛÂ#‹0Wër9MœÝ2KÈkÑ¢±ª•iÕtÄ´xeZ×}9QZ“¨Óz¡íSOqê[ Nnb3@a˜&ª=…ó6Oín¨þ³7ÀñûŽÇÿçóþ/?}|k•…Ò @:_oYZj›Ä·Ú…°Ôà3·Ö‰E@Žx”÷ s1ÜGI¯Óôk €Þ®‚®ü.Õñâd`c?áðï§çöëò $P;¦‰=1ÄЈĹß\ì͸‹àßéö¿Qˆ°T½-·j[î!, Íš<€Eˆã*À‡4:ƒÚ« ue]†;¤s»Ë*óÐÈç=€Ê„Wr àBå +»ü""8ÌÛ–¡ÊKa³?ú•Ó+î@™Ö]&çÀ¢\ø²ò]ûM¬jÚ8•ÊFÔTþs¼Pmj[ÆK6[þÛ<ed°²PûÓ_¾-o@\ÐÐÁÞAÒx±çI*èäçW“ú;÷,½;/&óíM-³ÃªàÕÖ$UL$ +úŸOÕÀC ¼ß×)ì{‘ýÓ׆€O4üqć‡PÀwï)b@ ¼ÿ*ú*â €"^ÿgIØÇK}R@€@jsêñ¾¾Šã0 ohýzןT&ì´¹³€zL§³ÇÄÌ¿WÆ€1Påªê¦Ç¬ƒÕI΃VLJDœ³Æ`+pÌ ΚžýÐé´«¬Ö ÊJ|Ç×ÖV_ëšK—¨.®W<öˆ²îûv…h©žÈºÝ_'±0&:R`æÿÜÈœHÏœ°ßÌ™HÏIŸH¯Ëœ¨Ë,¿Qžy#Å?|€3'Ê'>Èi<<£ªeŒªÿˆ2Í:ÅïÇ”@øGž:wuýÐߌœ{æ\4Rá +ý!E£w"é»"²æü7fW(ìÂ{1øÒ–+bÏêðºÿÒ*²^ß5°4Ý_3ïay¥aoÖô—QÏÖÜüú׎&¼?I@ú\)¡ÿxµ„ñÉk£“ “ñS^iÞÝ>ïBO%²—·ç½2zC¶ ™ÎeHu'º½*\þªcì^¡Ø$ZqÀ§ì ;Àã<(•¼d@à_èÖêu!‹›kt?`ÌTÓà(³¸9WŽ”!o +"˱ÙèÖºÅAÏ‚H?Âaþ‡%) /QÊù³±2[Ò†jMØcóo+þÍî3¥¼ñWò× ˜W¹ pwÐ"Üâ€x ž< ! HÀ `úhPŒ\V?Z› '¾æ4¡ü ½ÞPÑ/©ÿÿ»âÊ¿®¸"°7?##;;È*C2ÉFNŸÆò0:õ`€êÿõëOtéão$˜¶Uo34äâ ¥m¼@ `ñÚJ\¸á!ó!³š^0‡t:ZÚ¹Ûv0/,GDׯ¼"jŽ€(`%Œ?E‹´äŸâÅà%Mæ¶b­Šì¿ÈÅ"€šñ~=~·›wùµpÿA0µ½0Ô)uOJœA·nÎûqgèB˜ì¸õîñ}(3zlr °ä ŒÿsNýé:Ýòñü·àÏ Ò^ƒ1€åé]*gÓÑ>Ø\¥ª +ðýäs"Eˆéúú© ï +  jð¥ú}©Rß™”ÚWAóû⢠ÂB£€À]DÄ-ï™4ÇqW"À¢¾;/Ð,©ðL&mÍ©ÇHÿ¸q}ëŸö&¯/ÝZ¾5kšÝO à3SËêz68¼sØÙP(XÿOoTõ?£¤â†ˆ€"οYÉYyêé…¡G¢C#Ñ]Ñ‘…™hdˆ?ƒxÀ4ƒ3Ñz%q€H½2îü3DïsëŸî³%4uJH-€»¡@ýtº2ö/gûW³Ú¯-`þqbßaÞô@þ¯Aþ¯ÆLð_[Kð_;Yª)IèH/íH-/¹öܵqb×&¯]K .@U6æPjÂjù”:Ñ–ÈNúnöÒ¥ZZëaû`„{µ^ Ι6ñ/'/\ò À&:ÇÍ€X°çq)p4›(6Ù Hg¦"†½ëôi—Å †êiÝç-i—ý^·×ká'Åë¶Ø´üCPñƒ¨Ö‹7›Æ\æËáÿÏ34ÿñá¿Í6eãÜÊy·R.5Âê¿ƾ¢øÿ+ÀY +¸Ú²ÿÒ½5ø¯‘$ñ[XHj!vÀl€=À܆ü\I׋Ÿ½ŸE€½ùú.Èòã+Ìz»zÙßÁA®ÿa Ì `ÑsýŸ–üNò“Ob‰õÿ¾³ë¾yÝá7>[½m[î¶ÂÜ\ȹ°aqm€E¡Ì Ú­Ó½…!²•Ê*ó°‘swðàA8làd`xå]K[ùz,¬ÈâI€ô÷9%WÛdÚ0«‰&¤Y’ÙžèÏ-7Ôÿ:LYªZýóJyx +‹;:›.##ƒ  Îz[Ü@¢ï*$Óch& …ôø§B¶»Óäþ`ø_ó͆ÿ¯NVÿAöÿãwRMNÓ`§*¨:Ïøÿ½÷Ðèk- ÐrW5`PEœ YúzóX ¬þI¢ïßÙ©Zod¿à$f"G0¾ uÿ+XûÇ +Ìý9Q)Àñ¾¶¶fºjn~§¹&ƒètªüØ8~¼ù8»|Õïý‰ X†‰€¬ŽA§³§ÇJ¥ü‘ªé«ƒAcCPe ¸;z¬N{ècÖàgF£)8왵öüÂuþ¨+8ÚzÄa¬ðª@Õp°i_“©ÕõE×Áé±ú¬úz¬Ë¯SRÝM€_7§¼NÁ×â +TÿcÈ@ ðû¤Qé¯@' g.G‘y¸œŠ~LvØ•;^Sľ_Ž@úÈ oýÍØŸ¡ê?RÿA4Fëc§b‘XŒð=¹yê‰×"ý~ôQ<òÿ_Òg(`ŒíAE´.R§ŒDcJe½õ>†vEcädB )€RäÄE;$øo'°z{à¬þúut÷_ X.™„#šYü¯® cS{~¥PþM–v”>žÐ1šÐ1^2žðÜøøxÇøÇǯ^+I¸vm4áZ‚à“y¥šI:~%…àÂXÅR;ðry™;QfñÆZ.[.ÿ‡Å›˜èÖýÅÛ‚›Ö:„ÿ›D€w?e;`tÆG… °ôL)Fl¤¦¢Fçæ=ª-ÈH±tc"তè,—Ý^7ZZ­­Ìæ&n@ú WxþA?\ÿ^ö +Ò +ë:¨ªE¼"æ*«Lš‹Ùõgë—ü|e‘´ в6¢€[Zâ6€P´óèŸïIúæM@ìœ>-¬€~†@—ÔàÏäSõü§7‘ÿsQ€{Râ„€Ýìtz‚ +(È‘=‡t˜´‚'Ÿ¼X@ç®7O®?ëøý¿˜pë4ð¿!×l0 +k5‹×¨è¿¶x ]Ipͬ֙éeW¦+ «CpÜÉp›YËW‰5€¼Et.Hæ>+èí/!»…Î"-E†}á½äõ–!¬Â¡­<(†j¯Ì"ˆ½qݯãâŸ-ªð*˜âM^¥¼V­¶ÙÞ¦Š_>@H'³…B6@?¡p‡Üèñp†¦VïŽû>#íø¿þ£Õùùo ÀW8}²¼¿… ‡µ¨þí·ŸÍ.ø‡ƒ mçûþ?ïs4³€Ÿ¥~¨òùé½Naä'vûUD º|©¾.0ìúºTª€ÊÕ©rÖ3)è}À S²’8@Ÿ$µ8¸¹èät)ŠÇv6Ã; ­Ùç«8^ñжо;œ¨:ò Y^E ¡M T€'­ƒÖáÖž Õe þ?Ø4‚;F§³á¨Ó<<áxÖÚãpÛ[ƒÆà‰à±MÖ*¢ «+XÝtU×pкuP5ü…%€¦§ûß}-¢¬/Ïd-ý˜2ó1û@}=êHø?ŸØÇ&ÐÈa @´”ö9zçð\fúÜcJÕÿ9åå7väÜxíÆ Å½ÿAN#Õïé÷7f_ˆÄ¢ï*ˆ(b ±zb Š…ÈÈë”›9×8󇧆¢‘]ôY Ïm؉AP¤.‚ èþÑêW*C9Ü€)°2f²ÃÎpM(•ÿý"hàÒm,¼‘ÕNTàk!óK㥓y•b‚Ïž>Bÿ4á< |&qÞ®Ù>úÜøèÆÇŸ#ðn|ÏøsׯAÆÇ˜ $ KÞd±†ñp¸ÑZ±ýfCD,QÂZ* é`å¾ìMù¯7ñ²¹zÞm©o0·þ7ý™  °‹ðÞÓÑñ#$”–Ž–jŠ‹=Å"y—ëÿP(Äë~!ð€ó)G„$kuËe:d¦tC@2޵n™WëÖêèxš’‚ÙF¢X÷'"À¶ÿ|PEò¯M–Èè/ +,¹tæàŸÑ3ÅžÙ9z:û¿o½¼í–Ð2À2@ûÒÝ->ÕÜ3¸Â÷¯Hvë t4I‹€¹' þ7òcÈ€ùÆÅ‚ÞÿEÎý%&àÇÌmÐÛ%XA¯€ÿ|ÄÚóœØ¢—éÙåÿ;ÿD—‹¿ëZ¿Ïq囉ËíÁmÕÛ¶aÅÂ[\›·Heÿ5Ñ67ÔªÍpÑÒé¶©¡¤¤úº Û|¿ +Ç;àÿ 3@a +¸r°2@4 ½°]Ã¯Û #N=: [4Z™žSüln/l¹tZ·›;S(øÅ¬ªåšÊÊJ{ À ¶3BZŒÿy¸c@bÄï° üõ`ÜýŸÿöôÀWüÓøŒñVçéj¶¨-©³3ØdôQþ“÷^}ïÕÏßãÚ\ìûSùÞE¥?zXçóùãÖ¾~E—ÑÇÐú§ÂXÅ€õĈ¸¨ŠîL"B –…¯os|ØGP|ü¯ˆÖ?oˆÓ;X„1Aóq_CjEjÛñ;ÍÇ›@#Øô'ǤÕ%xÖ|6è¶:¬V§1¸Óh4>Û3¸ÓIDàY‚tëWÀøáVãN“3Øã´=Æ“‘ðŸp?Øc´šdž7º¬A—ÕW /AŸâ29Ž/.I£:βE‡Ò±ö§TÖ½67Ö?ÀMôzá7RÔ!  .½n‚Ê}a01W7Á‹s™;›8üÚDùÄáòÃ7nL¤§ï˜¸q¸üƒòœhÎLÎXd&6„ wg"Qû»±È»ÊHäTý‚»D †ÖÅF®]:ÙõÝ¡‘HÁ€ÊsônD"±G¢±ÈP]D1dĤ©?Uýéé߯aYÀ’5J»b€>HÔaÆ’à%ÿý««ýYî:[¿Úÿõhè´}rR£A4`8l–kÐà¼,NÖŽjJ&K·Ovtòc»¾ƒÐ1çÀ@è ª€ÈÇéßš¼FÜ!ì#ð21×jej¹Ù,Wk-TT'z-\/{ÙWÙ£6÷_2 +XÚ´7^þóC€½X€»n€‡ýPf5[éd¼(³¤„dn6èÆA´;-%…W¬QO¹-ÝÝÝøæÜ^­Wx{[¦ìêÿàªäøs@ÿÁì_›¨[UÚD9çqÈb¡<ì1›‹KÏŒfïË~~ëîû/ÿ¯¯m\o—ÊmŽ $K`é†GWjös& ã£Ó§÷F$ðÉ܆†®\^î3ägè{õˆö÷^ô_ì¢V÷ÞÕH®@ô@o¾¡0Ÿ÷2`! až¤òÿ:ÿÓÅü®õßïŸ/“ÿ qæfI€E€–é~Äü5CùO=azÀ{€X½ÊÇOöùŸy €ÞsζþBAà/Z3ºƒš¿¤£™Á.@¬„é`Åw:›û:©„þˆLm®H%>âºwpYü`ÂüÖæY¶ý]TþÎ#Tñ;‚UA£qçpàX +}çlO ø §óˆµÊa +$©é1žØØc šzZ«ˆ8‚­Õôƒùª‚.:Í:\³_üÀО¥´(ÇÞ@ñ|)«îúõ¬,€»€:¾Ø¬€°\xÙ3A”ßÍT(Ï)Ês—çìÈÙ³ß(çSNŽb&‰>Qå ¾^¡X‹(£Ê…HL©ˆÄ"œmŒFžˆü…¡ú!±ýÇFG"CÑ]0 ‚‚Ð..0ý¾?õvEzæ˜2Ë®RÖSõ?¬À^7TÏV@ pÿ ¬Bp¥¿½õãÕ¯ÅdsS ¡v^8¾Éö„‰ü¦¶V3J$`T3™P:¹9a|û N·wlß³gÏûÛŸÛó>±€ç~8ŽÀéœ0.hÀääè¦$\Ë1€@­¤’S{Âo©Õ‰j/U!`X”Ó&^¶\†a›ßþ‚6ë¦ø`Ó¦»-€íPn—ì€Ð(ÕÀ +ØSHe¹NmÓ¹©¤Ñ±•ZHDªt C5l"\Ír™>Fpîö'°ÉÜTa_à¿u'º©ügôç `íhPXË‘ÙèˆjƒÎjjj*ÞûG¦¢'FØouvIIöÖçïÓ›Xl‘¥l ѨoöÅåŠts€+û¯¬c'€Óg1x4w}îÉÜ“ è]Piß[Ðë÷_ìåJ¿ËÏýþ.®ü¥)@4€y@aH‡ !™^ÿ@>MV ² íI¢ÿTà?ÙteùŒ +Ÿl}6î²PX ÀCmàߨ5–Éåµ0Òête„»e!FÂÿ_Éóàþ—<ß°²ráŠd T©ÍÙôñ• Ü *Øó•D’Ðfng3ÛÐÂöë¸SE7p.ƒ^–ò0‡W*+5¥µ®ÔÒ·©ŽYO† B¡2îÿÝz·°}ÈÈ×eäšn} þ_•,¯^Ù,›æçkÿòomª cvIU”ÔYQô“Ïß{õ½Ïßkû‡òJž>À¿ª¨N…>±•¯L É×äò5¨ü©ªa×zU’pÄ==. T©À "˜÷xg-ù¯OÌýãsøÿIëÍïÜy'.@`…¯+µóxß;©}mDZp­ÿÂd~yþÖ²ˆœ5Õ|¶yvÐÙjÝétZ­Îac0¸3xÔj  @ätpÐXÕ³±5xÄi4ZIAzæ‰Á#®*“M€áྠÓ×d%rãr]æ?úx:k`º>B•ÿáº7¸pNLùÉ€rŒƒ€•ÀÙ{’€xi€™‡y;€ +¢ é9uÀEzyÝŽ %z,€gÒ£é(äé4´Àæ¿§¢§0ûW +ôE¨º.|0UžŠÎü A #Ct;DE¿b¤ñ {ó‚ø¡˜’7ýa0b¯S^x¬‘%0Œ›feñ@=\€ã3‚ÿþÕþuÓY°ºýõHmÐÈËC.<ýгù?ìÿJ'F'G·nïØÓñéžíÛ÷|ºgϧã{øŒYÀ8“€çˆ”Œ?—pmrÏ5Í8.Xf h»óN`0ØMZ„ëzÁlÖýꃀxñÇÿ%±°—}¶C€=Àlü P ÿ‡S7ÆšOA˜&êÿËTIu[ÜœdÌl€ªÿËœkoqëBn˯/cJàÅ@€*~¯VÈÿH2­ê´ÄÕʧäx“ÃWàSýÛ—½ñùJî×Ûòê-Ixg n—¢€ï=K| Îö ! 6Ÿ9Ýtzý¾õës«»º ]](ò{ òù¿»ègzøáü‡þ» +òï’8Á<ÈÊ' + /@’á’>¹ íwÒÞ)xçâIÓÒ7[Ö²ïÑGYhÈÍÅ à¡ !ˆ;|Ê£?HµÚì)S€³:úKÓâ¾QåZ ú¿¸)0z±ˆGõ?üûc•†šMkvk‘íÁ=ƒ äZ7¤ô²•Ý-ÿAt67þ`1 ×!}‚&¯rËâdÞ"}¹ÿKóã›TÞæCâï'øtÑ[gsjjƒ«-É×°ª|IœÛ+¾žà‹ËÿRÑð‹€h°ÿ+Ðÿ7Íà¼(Â:SéÎ;tÿx<5¸EEÛñ;mX /µÞèºg7ï–˜KÞºu½¥¥fÐÔjýÌ´ù„+xÄzÔ¸sçN+ûGšŽZD@Œ©à:G«‚=Vºí1&m\A£Õèl +8]>£1ØdT½àpþ X›îÈ+ƸèWÞxzâúíµ@ˆ€C…iÀ9°Pp(@º='='³ÎžSž©ÈÙ‘S~ãƒP¯Ì4~kœáµþ˜2}õ½Ò>3¤\¨g6ÀÙ¬÷Géz&»†ðˆ0 ¢wí‘«öúSv%ðŸÅo(ë‡ìÊ:º—nê±,¥pˆˆÑÛH2@N®"€~ÎD «½½ÿú¿ž˜[T¸¯YúÕr#ý‡.,žK ðxGÂæŽB‚ÿŽíÿ "°çŸÇ÷% ÐAççÀ  ˜|®c2a\s {µá0Ö +Ô r³¦–‚Êà£Õz´a¹Ç,×¢§ž"ÖV´_Ä‚¬­þÅ@ɨ Oq1€š•ÿn.ô€äb9CiwÊe<àd@ÌpíÕiËRd²Ëxµe¼Á˜( !ÿ‡W ö6·.ªF-§#"V‰®¦ˆýÆã©=S\º3;{ëÖ’’ûù·ººæ,Å´ÜãTó +Ð.µÚ¯Ä[oœ~cßY¬Ï=Ù•Û•ÿrþ›ùðøyOoA/– ¾èïõ_„°««‹uo¾Ìr¾_Ÿ!€Î`Ðtz˜Åa/¼;Ÿ|§`ý•o<<Ôˆ‹Ü†ÂÝ“\ø³ ¶é ‡ÔæZÏ!µhÐߥ[.KÎu9”ð8¸ÜØ‚w=2™;Ù›–æM†,9Åkñ'ÐÏv—o¨¬d÷  [ÂlÙ“èæ\™6N8½‰)+öUÔêBâ×W*‰›lÁ—Z\Ì —e5@QPº…€[¯ÇÀ'”‘¡3äš¾Eþ¯Nn-I€MËóíëöÏ.-×X¶ +«ÊßYÑ'¯~ÞÖöy›X™††µ¾$5wZ]¾æ +UÐÑ´¯Õ×ì÷}ÙI%ÌR×â+*Rãö?ÍR Ð`€-ÅØÇþˆÿ¡wÑøo>ÞG|£ùÎq‚ÿÔÎã˜8XƒÆ/ŒÐ@#r–.NÇ Õ1ôš? €s6xþ¨µú¨‘à¿ú묓p¾çYë`c˜Á‘Ög“’6Ÿ«Nûþ Élí4º\MAUpÐqâO…ýíýÓå +¸äp¢zPÞ¾TÅøŸ@V8ï @…"{<ÿçY€"gB9‘É—¹ºòºôÙ9é™9DrÊË?@P4ýeTÁµ>ú)E4‹.Äxø¯|C€ÈÂPŒõ~hÿ_UžÛÙ%žY‰ž£ò?2QÎ4¢Á ÿA©Õo·q©³+¯4Õ )ë†ê”Cñ<@ÄÄ @‘xÔ?}iu`º~:ëÊ}¾§PI¸VŠ\ J^ãCüO©8O––Ž&ŒŽ—<·w”Wë·ú).Û?ÝC ãŸ÷ìaÐ1ÀúÀ^Ûœ0Ù‘0NŸ +Am-wÐ @&¯\ãa) Úãð¨e¼ÜLDkàXƒÿM¬þs"àžÇ;:ÆÄÀ¥µ˜úëÌÚBLçFdq2Ûšó Ufä/È€;EÆ¢nž¸Y0ÐýëËÝ–DÁ?7t˜ûcé €!jÐa“*™ˆƒ«ÿr1ý@q…X…ÚÚÚ3°ÿÙúü}HT€ëxѵ¯õÿ…€zm 1€Í¢€@¨ßpœnú):?;™{²áeBõÂ.‚ý^?Þàÿ›ÿp,©þ÷?œßW îSЯíäëØð>„aÄéõÉß)(ðwíkÿ–_ØWý³Ü܆Ü\öÚkÜöÇÀ†x à¡°®PwH­~Km>TÆ€2]è-úÓy«2æ 4çónA 0Z° ¶%&#l‘'iÉi)ÐѨÝ`·ZyeÞ±Á2˜nè´nÁÊÊÔ‰QiC‚ èt6íÛX 0Ë+5T„/AW‹šC:]>/&"ñQ* à…x €ü¡°ºæÛúÿ/!€›Ö=óúúAª$"EŸïóW!hC`Í€€°ê"4÷w6ûû|Õ.•ÃÑàs¥6Kf?q?@ÿ~É ( Á€ˆŽ—ÿbÇŸýY + èh>θÝtÆD#@îTTøRS„Üó_è` §ÙšÏL§Ãåp‚@úötôzµkõ?쎵¶DDÚˆ%¤u{Ýh©N¡ý?…ù¿š©ÏojSZûS„þ>Ÿ}ŸÿãV—®‹ú ) 8>þ¿·ôà/šÓ5bpãôÙÓg÷œT<™²‹jû7ó ýõoú{/æ÷>ÌTàbvý~ ˆàœï`Ca~¡AW¨.,4ä>(€‹>¿ë¤£ýö·°0?¿´µúÑ\f…»K7üŸ ØpmÃÚ@c ˆ-«5«ãðO—2uø-lV.nY„`%§¯¬\€ ­€ƒ:‚ÿd¶]€ôÒ›æ•l°·Ôyµ˜à6ˆ@^%ñ«æ®U¿àìT!¢Éåyyô½1ذ"AÏ5¼!C!/„Üz6 é‰~ú­úÿ/!·–Þ €ååë5óó›|çß|­›­çzŸ¿.€Ÿ¿÷‘€ïµIþ|¼ ˜„Aƒ*Ð¥êTís©š]©©Ö&DPYï ¬9þâî¿â«ÿ$ìT¬éÿûâW}b ´€ÐÂü¯¯¢³Ýÿ$ø¿#]HMõo¾óNçq¶ŒM;¿¨@À-D}ftÎn†ÙŸõH“±º‡NA§3t6Œ;­ÖaÿQ½ã4ƒGŽ8zz¬ÕÇ‚³¦`pØXÝjÚüaµÈçªðŒMAã>‡Ëñ§¿ÂÛèŒÕ+Ó³„ðàô“iB}„ dŽö©øg+àt¤ÿe)o*±`Ç> ÒíßM/Ï<œSÞx8}æpNzô0Êeäµ3Š(då:ÂõX”@§êùé*:%¹äG#ö'Î6îŠòþ_ä—Ê«<¡ún4vöpl]ý:{D¹ 9ÿƒ (²Æ†°¹0ÿ‚¡FEÔn?Kà,Q€ú±±{ð_ L_ÊZ½=05=Ý¿ºz铯‰r/wŒNÆMýKk'5¥â4™0::Z2>þÃŽ½÷üºyïÞíâÌ}€íÄ:¶Jàß±g;Ýëxn|ós%Ÿ–Œ—tŒŽÃ¯”ªo¢»'4Iÿ¬ü¹2ÌÔ¹©B aÙ»ü½_ÿÃeÑ@Wò«·–6ÝÓàH€ÍÛ7üÃk€ Âñjº¬tƒ7JÈ‚寅½T-úînŽ<òþ£á‘ªþýë˪—d„÷T? À}ÕDâÞ)­Z’¥¥\FýŸc1@®’GŽ@qm-ý²Ÿ¡äù’ùûΤD 5ø—Ðÿ `³˜ H+‚ +°ÎôÑGo°ðúõ?[Ÿ{²ðf½]ö º üë½xñá.ÔÿÆ ?ÿá»^€ù¢ý_Ègu!!‚ÈÈ÷ú»¾Ý ŸÚ÷=ÊC€ÜÜŸi® FñÀ¸Ù ƒ?5Á~È­+Ó†Beî2¸f²šŸ·Ø +€g|¦“\Çnüzáô›œ–,Bz½Dl&|áÂA±5øÿ³÷>@Mßùºð¤äçЂCŠ@Mb#BÅ‚‚à=Ñ­kÒys¢%g³¿-uIÒ£„¢E…¡³™;¯N•s¶»h2]Ï2玲Vàœiqïç}o©gyÛU{gasrÊìÜymÝSßÏóùþ‚v·Ý?n=÷œ¹ü’H¨yžÏçó|ž‡kÓ¿!T¸ßÐêÛ8ÊZ™hY«Óê ì«Ð–»®ð’ætôøuU{ÔþuСçrôôÿѲüïAÀÜBw“‚ÿ—»›Òf¨úÊxïˆ5Ôù1زåéO?}ø{‡·œÇ༕;òñiüþãþ6Æë¸Ý»Ý^^„ßqŸ"ù Ÿ#RS­¬ + €{ù¿|œ @ô0kèæÖÎ-ì=À!Àwï ØÂ)Þö­¬ðû‡£÷¢VNšN˜ÎôuµÎl³0`©?Ã` +„ÎXøëÛü3}Z†¾>CàD£ÁBt ‘a0Î3¨ ù3ünƒ»Øò[&@ ããaù/%æô‹Ù¹Ý~‹ ÓEè/›íJ>GÚyðf>xošãOþƒl3ÿÍÞ”÷Ëæü'7¸¾öµ¯½ð†è¸Iû'¤äþ¿Œ%'öO(&€þÛŸÄÍþd~’)“€˜z:&ÓýêþÄÐM¶À `èë±o½/=÷T"6 ¤ææ?½WKTû‡þC×ñ(½´sæS\ÿÇéœÍrÊ@  w‡¯t‡å©0]Ï<´@ÃèŠ WÃÓ7Õü‡ÁßÖ­5+jF×®£æG€@HOþîγw0 ¨dß½J"£ÏG_¬„>]øÙƒG´ÐL¸°gÅ…žÕ-={ÒW\Âw¨YÑrõožþðõŸþ/å­­Š’îOoÌÝ7(äH ;©%€5<غuÏÙÕXÔ•Âß\E%‘Nï)/È.÷txš‚?ÕUnù’Ÿ,¿zëSôvçáæÿÕÖ•¹å þp¦RJôàwlC¼€*;ûj¶JET€ßT/¥k{ZtÚžÒôø)"þg]qMqÍÑ/ÿonQñR|€ äïGÿn^ R0RÓˆì:6B  dÕªãeDZ”ÿß÷m>þ6þÇß®€àøæÇ}¾Ç ‘ (ÀñªãÂHWTTŇ® +=Œ¨Ö]µ»iv–Ž£»_­g°þØÆGÅÀ}€¬‚ØçQùCm¯ót` —÷G{–@3»û®½@hnNWÙR3€Ì¼ì¼¼òLεBHÕŽol¬å)=ìÖîÈEWî]îbÚ—”Öbt6âpZ]K-s†¬ùÕÊR¢ +vT€PýO§":—ñÿAÈMsÊqy¡iì‘ö¦ ãDà ÅÒÔy©ìæ Ìÿ…/}œ3ðŸÐ_rïîôû±€÷Áü'Äî9ÂòŸ‡þ˜û‡Ø8Ÿýÿ%`*0uc«h s(ÄÛ ˆÒ€yÆ9¡#waœ““c0¸ïÌq²‘ÃÑ=‰<`ço,–Ɔm„þ{-ÛoXBÛˆêo4ˆ;X }û,:ÿ7žè:h ôí³4†¾2irLšÜCÝ:ÃîÈK«~w‘ˆ‘qܬNÊf±üïJÞvÊ’Ä›€/à7Õñ77ØßŒKo>)ÇŸ|sÿ›O¼ù¤]zòÉ7Õû_ ú?ÿ† êü_¹’/¼ žxòfþÍ›ùÉ„XH$©ØO¨cÓjP©?‘L&§á<'.°+¢›Ñs Ðcþgš´ÿËCæ±ûÐþíÜäAÕoO˜ÍjyÌ´#àèÝe +V€ŸaJñÍÝ·ÃSæðøC\žëÅß…ÕèÓ_غbõŠ­+ßj†©š§ƒ@¥ñak!3€;Ü’t Ä1ÚP9jìí5ÖTŽ~wtXDñ°?žlxEOeúÖÕ=+Ò1|aÅèš ¶“Oõé§Ÿ~ýÿá;Ž?}m ¸¿p@€4 b$‚…þWW·TUi‘D¬ƒ¼åR+ëû Ê9 HU~R…$‡óÕO%€ÐÓZ~Ú@ŽÀBU«Ç³2WÂùg%oRÙ +xk ӣŽ·²°E»ƒ>ªKWWŸeüÇàèÃø«cOà™îÙn¡0¦8ð?¨ý¡3T:04M 3ÀöÝ«V­zÈ˸ð¶ï-Ÿïø[¬þÿûÿþãoü »€÷ùä+à_UZ…Ô»²²úúçÿÖ›Ÿó÷S\_ +°¾¬zëõG9èÆ£÷TØ,ÚQD«ÛÑQàÀb°`£bp‘eý¬XË"€ùÚ­¶LndaÍÌÌÌkå ¾P{jéoS€µ76¦#]þhþë@°Íгº*ªö«8þO»úfÓulLŸ"¬§’¿¨HfDôê—åÿF§‚—Sàr቟þýƒ#8w"'ƒ*|”ôÐâ}ïé-[΋êœ+t^T´ÿëiMÆqQÜg0¶”ù¬÷÷²QÿH¦OøAèy­œ",Êy+÷ú‰á}ØR@§,©@0€ °W¬"Я Ü'\¸Ìq@ ÁÙɈóD£eÒÑ1öEê·ýr;à˜ú܆:Õ÷í>˶Fªý÷ ]ðj<@øoill48áôúMASWÀ²m¯ßò9 ú?ueqP’d—,_øÿTþ­™Áp•µ=7sÚŽÚeWó* úM—ëÿƒæïÉ'óí2Õýùù\øÿ/lذ?ÃDþM)ÿ¦=ù«‰¿úfbÿDL€$Êÿ˜4”°ùGW±hLb@¬?‹"ˆÀþĄĞ±'žÚµ=–&K¨ÑØÝža§´$äÄeyD–¢vµ,G%)—ì/›e;ќ + ‹mÀn"ã·`0î†àÃúl½žJ÷»@ `ëŠ ‚ÔÔ|“àŸ@e¥‘ëÿÙ…ܹ#úʹ’«î†ÞgÏöÞé­ü ·wt”5øÀ`ðˆš[GW`¹àBËhzÏÖ5½/îQýÍWß~ûºªì•T¾|ã:øot¯0ÛP¨H8 +HH ÿ÷ +€À_«Ê-Èí°iaìC€_ÞÁãþrèÿÊóW§7ÙÛ×£L2àÈL |ÊŸC^//.Y‡:­÷”}<^ Å ÀbÀ]‘¬˜Òa1€•ž¦X9ôz5uŸýñf +éÌ‹ÆIK£3ÐTßèCßPo8-3 ½î@__ã>úcc`6M ]›& V 2‰ìs[œnÍçü Ç ÷cXû—%õ—9|kPÆ$€÷é¹ÿ/Ëj—Òˆ»$W\Â" äzR8¨óÿÂÏ2?ÿ…ü CÄ^P'6Ä&ÔQ¹ß5¡¾ùÂM% +8šŒÆÔüöØ4Á¾2@·èÉ(Z»°!Å*`"1M7~Š d’{bbèÉ(§ÿØGìÑ!upjàÞ¡l7ÀZÁE&0å@$ T€ÿU¯½¶êxÜÛŽs€.Þ>~œ.Pþ?^ñøñãP¼uœCߢÓ+EÇ‹*ªRýœõ%%»‹7— Ãß=L»w×—½Zÿj}õVöÿ¹qcþÆ£Š ëºöy-á"õŒ²:Äîå–^JïÙ¸äØœ%ºÿky»€«=¶ÑÈÌSe–gÂÏ¢@åùǵk©ú¿x±§¶Yì,Q<¶¹åÒ%-ïjµÂ“ýgéõú¢ªYókE2!î*æCP zÿº¢õÛ–åFæg¦–ða*Íᘠ:,9gNLº ¿ÀÝO@¼åðùÎÂèq€0ßߦ ¹5!xûå0¦‡D(P†pÈŸ!¨€—ݾó + °Pr€”u‘ö+ ‚èâ¼ JÕÏÑÀÈJI0þ?bÍñæXE±Och¿Oà’H&ƒ&‹óLWÄòK‹Áà6èÔxÂàœ±X,~k qVÿØ`[ Ðh ìµôA!ØȨ;Œø¸ý†ÆIÓµ&‹»½ïs~3èŒËò9žÌÅòôÉ`RŠÇä°Ìý¨ÕÊ"€ÿQøç»Pÿc/Ðo6¨ó‡6$ò_˜Ôê‰ $ç'&n&7¹Àe}2š´÷_K­øO'%âÓ1öH$ ö úÓ±šø)‘ƒ'þ9MŠICçÒbês7e¬ˆ0`Y²G±æg‡{æhøe‚üéáAùå8‡ǧ–€Y, ,º‹‹ôw...<´7ØÙG‡¯_`Gÿááë¢ù_SóÁ7?x‘ñ¿rb¡µWä€@p§²DaS€=ü5½k^\C$¢F„ÅÏnÞºbxÏÖ=«W|sS劈›-ØüîW<ýº­•g¶hþ/|F'àÞÞ…aÏðÖŸïia + ƒæIס‚€§ƒ-Ô;<å' ʳ©†*ÏóœÌ|W;Tå'¯zr‘œMÕ¿*v0¶­l]©Z©ÃbtfvëId!`@EõT:KÿðAõÿ÷´ToÝyvݺÙwèК£õHDtß ¾×øÇ¦Ç/‚'¤Ú~ôÑé¬zíxÙkÇq|í–TTøˆ<ÎÀ㯉»Þ:þ +]½Rõ + ~LåuIIɱ⣎eåßçÿ×ruý«ëןMÉ/ ä–êŠPü3` +À™;*]© °‘¡‚>L8¸¹¹…þÁe² {B@ÿ8Ó7Þ¸HkÞÈ:@ô + x@óÅæÚôô¹Ú:à?  b±öÓ‡^«ÝØŒú @ú"ªöÿˆˆÔƒT PÔvtùïù ÀBpjaI0›–6Öoœ¤×búånÂÿ2‚wo(ãüÀôáyI¯S8óQ½-ô|šãÞUXà½ÈëÍáÀ ˆýQö+#þ‡¼!#€>‡Oÿ¹#  Æ ``·Šý€Î6dpD|ðçsü9¡Ã¡úF^¿æà}?ÝŸ¨ö7™~Ó5Ùh  eÛ–½–m#Û,†ŒƒþÆ_î6 ` μÑ×xÆPghlº¢ë/®A ’;…ÆB®ÿÅ ]P€; + `2@,¬¼3K_º©aSeïÞÔ±OÑ[SS9<<|áƒÕ[G÷ `¬\­«ÐWUTøêë—²ÙSïÒ€ûñŸÿ1¨Áž=--¼XZEou¹Z• `­SåÂãïjÊï‡Ç*6%@Žº +¹WËÙýÿ$1›g%ª}[y®ÑÆöpÈV,Ï&øçÙ‡à&@ôýèÛîþ¯;´ïPÍчý´°¸ÈÏ3 ù ß¾uûöå/ßÏ?ÆWqtð Oc +ð÷V­*#ðýãòo•}ÿ­·¾üñ·¨úÿþãtÏñão½†Áñ²WŽ¿òJÛ+\ú¯ÿ1àÿìé5ŽÙeTøÂÃqzwIý«õ¯–•^à$à7æ± øhje?¢÷Âó›/f¥FÐÜà¡B-•ÿ¬ ¼&€€M¯ÕsàWþ#šXÏ™DÿÙ ^cæÿë—Ý|òñL÷þÏ]69"»ÚÛ˜£±8û,ˆú£óAwHÿy+@ñëe”§¿Í²æÔç ˜ ü]Bã#ÖT.KÑqèOªâ§Ça®ZBú”°hÿg°€0¤Ä…”þÖE"ÀÝ¥\ øt¾k=ÂñÀ>¯ ^¯ßýÙÀÂìB×LŽÉFS¤=`©·¼[Pà2ꋥΟq€Šÿ®¾@__Ÿ3òG,~Cà—¦Æm½“ÁFï“Óë?àÏøN¤Iãnÿ|] Òr“ù_—ºÍj5*þüñ[T(£½Îûtlä‚ܱ¨v‰<€|tûqÈù/äLäÇò'èq’:‘ŒÝ¼)õK7…¹?ÛüKíÉi^HF‰ôO$wMLÇ’ý±é‰„”ÒÏÅ¢çÛ±íHý Ñ„:: ÓÂÿiH&ryù\·¬–e{Tú‘9*É#quôåsÄY„9@”½€e‹€ãpÄ@N“ouŠÀC\ží%Ü¿><¼‚íýWpÿŸðÿY‚#€††ÏtÚÅaDþ.òޱ¡°FüÐ{›Ä.Þ&!ô"F`K[·öî¹paÅÆg÷@ND àûo¿ýöëéWWòÀƒ0€¹ÂßjpÇåð"8»‡M1Ъ<:m9ì|Tº*ó;Dp6$ªîÕD®ò»©*6øÛü>±¯oðo9ýäPLBë"½“¤(ì~å)‘?^ ÇÇ$éÀ#ìb‚µÈñs\:'Ë2~iJ,N¥aõßøàà­p˜G‘\nàô_gO_äüԼث(î°þ¯ð¾£¡pIˆÝ½³•…è +ÜAÛñUn"P¹éqˆšÊÊáÞáÑáš £Djˆ"¬.Z_µ¾ªªÂ÷vÁÛ¯ÿ?Wá©‹lÜÓÎÿJ Ð…uàˆ€ÒÒ\¡ÐÃ@UŽª©¼#›=ÿ +¤ºš­‚1Q6œXÙωê6U6\ƒl¶ÖòrgåJä‘ÈËζ!oÚ?Pkµ¥é-h{ØÿOuuõγ0®9t´ø?öû×ÜåÛs‹0 þ(mÍy/à•·*ˆ +¼Å€ðÇ+¯•½öêkØjß½ûôéÓÅŧ.£ÿäÖMŧÁè×¶•u€ó÷™f­ÖUñü¿ÀS Â¢v ô°öå!°†À€üâEE °öb•*—AOmU®Ç¦«Ý¼Ç›o¾8Qùj…àæ£7j/í ª:íŽØ $ð/ªø'½ +S=1-¨èÀGAÅóXñì€ëcQý²üï ÀÌÔÌeÿñEw7Úå&·ß}Æ8éÎ1¸5tnÓ´ù…0¯JÀÃHç`U~Èê˱®ÒX‹å¼Ã<¢çn¾Õš#D#€@ž§\Òû2”A†" ôt"á/Uÿ‹ÒÉSeIP± ¢—pw€¿Ñ&ˆðy5 *¡ïïýhºÄLÆHŸG `Øk°lû¥%°ÏÐ×hé;q †ºÆ.bξ½g~³Ï@DÀÛèè˰˜Î„°ÿoØÖíÎÉù"*58.›gÔò¯ìÙIªíñðb8,Bw`{2®0õ†{u¾П°èŠEÕjõ„+¶!¦Fàk±ÄþdTÊŸVG7Å`"ÖŸ§'ÄÀù?<p±K-bûIl%&þ"ÿ‰¡þíýçÛŸ;'"0q.¦NlˆÚ‡ÔõñhÜ.Çì²k$,ÿ *GÕýC÷7‚ˆ 8GEÏÉèÿc l–§ ”ǰ–Óƒ·ºÀCd…•£ê÷âèèwk^]#ÐÿÙ%0ÛðüŸU(À,n]@áìBøð] y ëxäᎆˆôW×ÔÔlÅ@CåÖ²’²êõX=ó½ýº¶•}õ/]Ò^z°p/ 9£ß]Z<»z J©äAPV•«Ú¡+÷ì@ ßQ΋åªl4Êyù?®NfSÁŸ­j%Vàiͦ÷W„yZmúÃ2X•ÝZÎ1Æ*]½eztØ©ÎEã–à¿§E€’³Ö­YóŸåìöå?¾2»8kj:]²êÕ×”ªÿøk«^+YµjUɪÝÇNdjšêž]œ[•Ìòñ‡èU÷Ñc»KJ^­¯n«VZ÷œ²J‹`¶ «=¾„Ý. ô:m!ÿ ÑàR^0f ëó¹PòÄ€x*<¹+ye°™{ôÁÝ17=ÅèFÏ%vd÷`bÅ6ôûùÐUè(ÂÍ +ýó*@EGQÛéeù߃€à‚pÌÀ´]cMŽî`Ð4i º;5€ž¦Nã½{Àû]ÎTpx€€w•†8uŸrp¼¯2åp޾?w¸ €ºßÇv@° Rf9Ks ?€”ð/ådÅüŸ^…r_§z—Ÿß‹8èüšûÌ€ææ +gè§šœ49'푈aUø·%à~ÃbqÒ-ú!1ÿ§Û†º€¥k¯!à?hš´8h1½¨sNº3Üî:C} Øåé‹~“·Æ“áu|CR²'íqsx|Cx†8ŽË)/€¸KrßsÑ—¼ÉE +àŠºÔQ—Ës©v‚*ñó7ÄâöD>‘€D26ë]±ÄÍþ +ýýŠég`î7c»’±]ìýËaÀ‰¤4´ÿ é©§rbú‰'çìÑ¡¨=v.KûÓ¢ê1É.KÑýö¡ç®¼óœüˆpþaÁ ãÄ<Âæqµ—Ó˜0 O˜¹=ÈÉÀ‹W椵¡WDû±­ÿ7Ùá¿r©`l˜-¼Ÿ°€‘Ÿ;¸aä{Œ øH]7ôVþzMeMeÍpï…á­Ã½›*×µ(xüݯ¶°¹î¥tí¥!K>À Æ¥ Àšáë`¸óçØlÓIVgSyô:ªümT7y:€ðålÿ›)Šþ«yåïàÖ:ÿ„þ­(°ø;*t_=±{¥ÃNÍ£Óz´œÿ‹ò²ƒê=g· ¯;T\sôКÿdïg·A»?*ÞNÁÿéš>úÈô‘ijvñãÛ——µþš:cÖÁCXV_‡ðÿÆZ…\¯äôrõOéʰÞ×¥¯V†ÍBÒ.@–˜4×Â(]¥Êà +gþÀœB•{‰>‘µVtšÙJJÓ k© pãFzúp‘@›2úG¾ƒЋ)ÒUÔ¡ ÐV¼Üíù3ÀœÒ&À4íšþ©Û99klÏ1X4÷î€[Ce5!µä-hÿsV/¾ÕÆÿ÷Ã4ñw¹wÏmýÒø§þ?XÿïTªaÌÖ`© âÔ)Tèö/yÿá;YC©ï&œ€@6rX’ ä ´ù—TsŸÌ]þdn¡p!8éhšœtžhêkßÙë¶}Cà Å‰É~ÛàŸ%` ën:-u&M~ƒ³/h4üí}`o“Éoq~a/Å<3c†Œ[fɵáM‚G³<.‹þœvÕŠ# âoªE, Ú•¯ÞÀÊ@,øÅÔ¢qõö ± u,iO``B4?a˜6!OK¬`ùŸX ˆÅÔýï«12ˆ©§û·'v%vŧ/G£ é™§bÕ¿_ý„º{Lºfª£’:‹ªÍØI‘eûЋ¾÷ÜËa‚VýÄeÞÿ‘Ô²:VGã2ÿ`xD1Àà##ãáA¶?ž\¼õ0 Àl勽£©sï‹\þ?{üü I 8)w,¤¦F#vŒ¿øÿšnP]q`ï¦x9pxE @ÍúÓe¯Ò{"˜Gþ5ýZxè?@…µp/ ø€fÀKgÑØ@•Â}}¹JyÀ¶­¼£†ÿ* Ê©¤W! +ÐÃýêÿòÌVÂúÈ¥â"kzœ§õêJx ]…°@§Òé;0T`ý}“–†ÿžj®;»îP ÕÿGÿ“¾­Ý¾M$À9r:M, Þ¾½ŒýÔX4š°lñªb1Þý-€Õ˜¹‹©{ ë/Ø\ ×õÔnlæE^\»” ¸v¾y#¬þ6Úþl¼’<(Ù°ù>æ0¯l,¹ 1 xôÆÅtÄå²0lD  BÞÓ=4€Àþ狊Šê—§=PŠd1: ”{é‡?<´ä¸»Ü†mξ.w½®¿>^ÖGý/°D 'Ãên#¸8¬Èò¬BŸÿ®`!âhÏóŸ—°ß—㥯ÎÈI- ÒÓ¢+@, Cé@½AÎÒü?…óÐt¦ŒƒX¨Ø€nàËsèÙ|>¦Ÿ!Eo€ ã7‘&gÄÔé²lëk¬7XLù†}}Bû3Î>‹…°‡…nµ,kÀ1i±llt2,†6§Ãív~ñûÒ-Ù<.%©^6óÎR=388n6#Tµ5–îDõ/ ~W>;ªq™O·£®˜Ýb„»qÙ~*Vú'7'&&úc7'bQDÿÅÞþó ÿßX¬?‘ŒuOÿe²IM÷KiÉ~uÿ×¥iõ?Çbò?oï÷oI$¥Ä†hRç¡„úæ¿%KÑü!xóÐHœÍ%ÇOҤó¸=ƶFH9”Íiá)^0ÿ4|%LÈ}¨¼æ°±—cýØÛÿY–ÿ‰@%á9\öæçø”ÒÜ#Tþω6€QœX8KàœÅ´ÀhÜTÙkÄnàððh/1„Þ’£šzÖœåTajžNà™žþ o°sJ è4ô¾Èþ+”<¢­{ª÷”r°NUjClOJvU¹g‡íª‹€*aPÎCÿ«ž`jÛö³|x`K§/”£qÓýlÍÇæ@÷Í`ÓÇ9¿¢½/?ƒÚ«¨üaäÍàtàœ”H»ÿ9ÌB@v±Yh¶@l1ÀáéïD_/² +աϧ©×ø½~¿b´À•Ø"À8ÙÕgê2h,ÃAƒNÿÎ@[ þ€!€  ®mÎ0ìuêfD¿Ù›A_ãx¿ì=ÓÝøy€KoI×%s2iNr½owÝ4‡Í¢³@~ÜåbôÇGt)¸À†|DÐýɘ+³oÇ7L¸&’ùùÄÔ 5ÿt,Au¿Ô¯¾–¼9=!,è¾dÁ )|-1»Ùo¾6M÷ôÿÛ×i?ŠÇ'䯿üi|0퉧&† ý'!‹&H,´G1ç—ÌÑü÷âRxJzêez­ø^î{D]$WT=$ '€¨2€P~ìJø¿ÞZ c àÊâå‡(,$ì¬}¶÷ÅgSA¿ˆø £"XBÿßæœÈÓ ´€Ì8˜gfó…³lÐk„®`xtÍ&, ì;vúµ²UÇËVù†[V¯îééù9ñ€zá"YE•Ê +@J°uëžÕÕ--¥p;©ÊÕ£ò×墓Ïi¿*ó{ +„ù_Vé„ÿžòìòVO9½³®Ìf +€&¿ +ËÌtª“­\§²é:T:Q ,SAhHߪ”¾_õÙê³;w®û—á£G׬Y~\ž˜Žnã)@YYÙ:ºqãzÊ (ëF áD¹˜ôþlδí `^©ãohžWÄ›…µOfüTÈôÓ!NKëÉe;¿µÂDÑÀÍk¹}°–â¤H³æ›ÓA;RÌ*8á™Ã€Y€ÙÑúõ»—ñÿKèˆúÿòåàØØØd°ÉùŒfÒi‰´[/-n·ß‡¼_Vîñ>Ëñáä yõ9>Dôq™¾T±w~&ÞG, +'@ô÷½¼àO‚h?äÕ4T¸+{‚Š‘ æ(NÀb= 3e 9 -bgç€b! Zð.#*þëÝn_ã6‰6ì"êNš Û»"&gŸ“Ê{;Ðgi BuþógöZöY¸þ7êÑ k÷ÁŒ>£1‘¡ øëÿݦÀïÁÿËTKÐZ'XM&]·Âæq3¢âÊ áªZéH€ÛÿÛ …€+¡ÎW_“óÕ±¤Œ%?:â¼þ§fÄŸØ»¹?¡Õ"I•?¯Ä~…ÍÀ4é}¹-€Xšý©Xšº)í\âGO=9x!ÝAAâÜvº!’€@Ìäõ©sô‚ßyYËêwdéT,ËÑiD-=8'E%xÊi˜ ˜Óà0%…ÍÝáñð 쀻ÿ‹·nòÐê±¹Ê^QýWrºß³• ’ú r¥þŸ»o ð»3 Ñc*ü©þŸUÒzg9¨×øëM•5•ý½•Žã¯{Ý8ºÇÿ…“ƒÿuõêÕ„ÿ——°x¶÷ƒšQÄ3þïÁ€¹ªT·CgëÈ%¸Îú{tXñïhUew®_Åê¿ +‚.ò˳¡­Î+Wµ–SåßJ§•6º¶µ–gçj±mU Êà !ÑB<4ÕWíеhKQÿÿ¼…÷ÿwn]wl]q €åwÎeÜt´˜w¡¸ Ø)ðOW׉ >¿³H§óé*x ¸ÒcàÆ’óÿæµó¼Ð,¶ûçm­™¶•ÿ'r(lt°×ï¥áÅø@¡ókA%à#”•ÐÕÆ± ¨¿ï€ö¯€à¿ ƒU€Ï—­_oY–ÿ}I€›åsÁÈ®]iN·»rÒ±Xœíî€[£©7 ¦æ@§¢½ƒ'¿ÕçÍ©×@ÂoU€VŤ÷]…ð–¾âùËâÿŒ+¶¬¢ÜÏ`Vá£jBDú‰VÚÿ9¼AH¼~ØiXê„؈à0ù›=+¶B>¯O°ÔàÕþ„ý³ì ²ÿN &¸‹1ßÒµw ôƒêZÿû‰`åóŒÿÎ`ä‹çÿ|t›ÇãIûIvõµý“ANf€¡ºÙ•‡Ð"éÀ’KàL¬Ä\I9®ÎO¸bÉÕþêdLÞ'&bR"ö~l"1‘œž&ÿPÿ'Y0A<`W"Ö›€~i:‘øÕ¹‰þÄvéæsO$âßú‹ýçbCûQ¿`©ÑúÆGÔ’Ùü!Ï÷Ÿ{ì[Ï=öØs~+j7‡ÃïѧÂöSD ÌCçÌQÑ`€>»š‰Œ„Ú}{*À+‹·>¾õuFÀ>œï°IØc 0…ÿs¿Ý¸¿P(:…FTÿ…\þ§>ÄóT×TÖôönºc46Tö›NïÖ”¬Y1¼âÂÖ[/lìéy0õ‚Øÿã€^xq3€Õg÷ü€RíóZÞ£Ó«`œ·²C·?}xtˆ¼ZÞÚãt²O¶¢5@Ü€ªýÖÖ•ªr›­UGè¯jÕ‰ÜU›NU®' +×ÃYX§‡Å@é-4--{JÏî9»óìÎáu‡]S³Üøß~€pSñéÝh¼Z_öª€þûTY+ž/*ªB2`/ôdÒ© /·§¶ö":ù7Ä$_ìöÏg1 Pêøô\ú% ‹ì¦Ñâ?x]ÜÈ ù";q° "ÀD`c®C¬‚Àä¡ ÐßÁýµ•/û<}9^N5-Ì9ù骗&ƒ‘ÆövS—»¯ñ—C»»M8ørë‹àÖ§×ãóYYÈ}, L™õˆàžw¡Ò³*-€ (DH€H +Àú>ϼÞÐ’þOÔþÄBì tD,, bXD8Ìˈb6ÿ`HNˆá?Û¥™§ˆÈÑð_›ÃƒWÆǯt/.ÞºE\ëáÍ6U>Ë]tÀ¸€-þ†1˜û½=€BÅ@4ÿ ʼnΠʒ~ wÓšÞM•¼P¹fͦÞM½ðXqaøÂŠ­ìuó7ÄØ¡rӳ fûcþ_ W~PêÖr òs©ü‡ÒŸ§ÙWU0ûÍÎ-Ï+ÏS©Nª°÷‡-@Œ~°@Ef«Mך«Ê%Ð +鱉¬nèÐþoiÁ ´ûÿ;w[Gà(ËïŽËÇâlÐq´xwÉn6¬ß™%b³îVt•ê¨ì.`üÏÌ+Ø\°y³*³:Íx˜_ /`žð±ÔÎTkµ+mœU±R•›~Q|JLj…¥àZ&©&}6}‡ÎcÃ?á›B@=0‰às2‹ÚÚê~²üwø%uþ§¥&w½ÔHXç_¨³ÍIŸ€{¬b:p—Ï©Í}TçÊÀ—òÿÍÀü!È …}ƒ–ÿå÷­ï +3¡Ç:;Àá-Àóð Fð‘%(‰0Gð÷¶iÇÛNî, "ÇBð%g0 ±¸-CÆÄø¿bõôÓ½¾®3C}À`hCýﮫs»ë3~qÂøË@Ý/,MAG¤¯ñü¯Œ‡ûãbíß¾áMuüüóáˆ;Û• !à  šûÿÜHÚíT›»¤d,)ITàþ÷'©øßß/È'ÔÓû“ ¥À= xL`Z€iÀ´ÔŸ–Ø?žº•¢Qé¹h<“£ý’úIâá§ðí‰ØÏ…§äSç¦ä¸ù±sSƒCv³Ú ƉHXͧ†$1ÀR lNKåN™ÇQùŽ#€ÅÅOn?S$`¡ßH£sßÂÿˈƒq.þe;¬þåOÂðГe¥þÛíqÅ P1Ž.W¾À{”™ÕýRRN&“vªá iÚ•HKb±¿‰¥ýD×õ„Èý› –01œ&üO‹Å’O&Æ'ÆãO<7=4.%†&¤i{Ô³ÇÆÍãòþ1;||Dо0Ë ÏŠ¿ÙTÿŸáNñéƒSQ€;´øVå&N XóâšÑÑáÅ~VXV¾ØûÝF¿ù±‰¥žÛÎjªÿµœÜ)9UIÙTÒcëÿ$›ù”{P©²±ýGu+LZ¡lmµÑ»©þª +ïª*mn¦J‹$ ›J±Q¯B®´ª”ÎUìþ[²ŽÎëÖýËšš£k–ˇ»MG‹wï.©çM€âÈšO…B +PéV@ŽßA 0¢é==Í + j~> nÀÈùã^>ù’ÏïÚ¡@@«M¯mV¨ +ò> ’#² rÐÓ¡CØŸžê}lèÑü/Ðöóø¿­jÙýïK%‹³3³3ަ´ÈØ®ö¦Â ³Ëä˜t¶¿ävN «¼~oHˆñRž~9Þ&¤¸pÕÏþ€¬Íë\ÚÏï\’í…R†€Š×OF²{é"”ãUŽœ å—3þx¼/…¾@ûac€»Ä¶|ï0]³$Q|tümßÝÞeérv9.#  +ä75»ö-oö[,Û,w} à>°*à÷×¹ÏXºˆtÜ~ƒæ q•ïÔý¢Îéø“î<1ùÇüÃÝád?«!îS›g š‹¡žfügÐgà[H $üGõQ…N ‰» «‰#Äc’Ù>]¨ûe¶üKöK7ÿòf,6=øÏ¥?}$oò-8$võHëÿË¿h²ÿU,MšøÑ¾P’¢ÉqYJüèG15}ó˜‹Q™¯ІÍ?S„ßQKñ¨=z +X‘Fì/Û¥bt3.ÉcB Àqáð3cæG® .Þ‚ÀÌÂþ[Q€€8þŽ;ÿ°ô¯„¸nÉ +X$YÜȘzÿ¢ÀÇõ=€âÑ» {3HÙŠ¤`@¥»©ò ?S=‹è¬ùíNR€;tèܸ=TþÛDÁÏ’?€ž‡]€à Œ{[Ë=P`¿šàZ@›­µU ×?ì”êè:}j'mi•®ø_Z]Z]½ `çÎuëŽ:zhÍ¦å·ÆåC´‚Ý›LÎÓ§ëëKêÿï²¶Ý×S­ÿ{ `V¯KoÑU訯(ÈTm~73o³js¦.=½Vô¸ @ K€óJÙŸu_Ú/@ý¢#úÐkµ¥µ…ÝàüÅ‹µx¸ðžçLa…4§ÃØS@Åt¾}EA ŠÚŠÚÚ—å_&XèîÎt7pîŠ/™&¦]íííAªÿÝ¿×kUæù9œðã³fhØ£ÿ0O¸ €ÛwY „TÊç(Ý%m_(eüg=bÍñe0ÈA’Ñ‚Kþ„аs oû)5þÝ-Ê¢_F±‡-@ÿïáSD:ÏóPÆBÀƒ¦MC%¾“ŽÂ…Ë ³³ÜpLšLÁIKd28<ñ“¯|ÛÛæo3Ô»í,ÿ[Ðû7¸Ý†œŒ:_è+¡¯¬ûÉ^'ñ zƒûwÿG¡ÝO¸žt©]áATÎ" ˜5LR4€‰€Lø¹?q€d4b±qDó$]±¤]&èO&â»’Òt"¹kBŠM#(ÀA?ݢ뉛œü à?‹É |Iÿö¯SÍ›ÀíO Ù£Iº;¦Þ.™Õ’ôˆÄCö¡‘ð‡vyÈ<ø³÷¾5ôÎЩ÷¢ï½÷ÒO¥™‰àõFÍæÔ. 1äŒIæpšüHx||qp|­o_^|h›€s…Üû¿Syï`  ðõ)ÅüܽÀ¬¨ü—Œøð+ûÿ……— +¹é5W¸" <®ÿ5 g¹j72¡Á<øÿle£½ßýÝ}nµ0ëñ°gºG¥+×y<Ù0bÛúÈæúÿ¿xèº5³\è ûG0a¤ÊµéZu6­ªUWEÅZ‘ŠÀ_[¤#Pª¥ê¿e=ÖÿªÏÖï”#$ÿ98À à¡N{%uˆžùÿÅÀÿ(FgÈŠ¯£‡[Ù“˜}ÙÀyëy~U¾ HŽû5m« DÚÎÆ®ßÌ.Ì-Ì… `rÒ1ÙØh²4ƒ Æ_œÿÞ·Ïgdd„||mš:?sz_áÞ]]ÀÔ=é ¸#ûúþØ> +:qµŒÊÞ>3¼ [ÑP†ÿJ€Nê¤=ê²þap%“©Ï&ÍR2ž”„Õ2¡&R1O çRH úþßœ`üǧ¦cÓ±~ÄNËÓ®ii:*E¥DÔž˜€+ÿ¶ÓÕiðû3§ÅǤwö»>Œš¥©ð‡O]‰…eó‡a»}äD‰þ}týóˆ,ZfÌÒÌqЀp÷àø•AD+€‡çÌVX¹4ö¯äú_¸ú³Ä^,ÀBJÚÏ÷¦ºÿJý/Î…÷ž^}³Ê¦ ¤€ Â-ˆˆÀGå¦;ÆM½½•wð%3‘¨D`%VÖŒ~ðÍßý"Ö:ÁþdžݿVü0ý9 ÷®tå­úK´ W|¦?lœµ’kÓÚTýGOU Õ¢r"ð×Ui«àþS]Z]R}¶dçγë¶óÀ¡å7ÆåCàÿ'/‰8‹O³°¬¬úBŠÜÛ¸AxK‹ è-À |t¡OOOC€ÚÚ…œOlõ-Áþ’»1€K6ÛJ½ÎÆ—úÜÆù,6¸¸ÔÑ‚¬ØaƒóÀRO_QQP¡¯(*+k+*[®ÿ¿l½|·vy…Ý‘H·£ÉätîrFL]îv·ÛíÏÍá?Çö²XŸ ˜ñÿð]ìãÑ»[„òŸ}û… +°S$úŠý>oŽN½,ðòB ürîZyøïÍI­ÿuò–ÿ®ûQâïS=]àèä! +Yék¸0 +`=o+€ÄŽcà®wSAßnŠœy©Ýiúx¡;ØMgGÓ¬qò7t§! ÎN¾ñ‹ï|åÛ[þ¯-Ä;2ü9Öз·|%ãÀŸì 싘& þ ÷‰ÈÏ¢Ããܹ'´·çÛ7°RöÇ•kÁîÉ\ýG“„ÿ1WŒuüuɘ$K15•îÀýä.º¯Ÿ0þš´—²€âŸM‚Yþ/¦£„þÒ4=.è=eŒªþ¡Ù¯Ù÷?1$Ç¥~»&°:12ËïHòÏ΄ã†íÑŸ ¾K4dÆ>“¥±8V`Æ+#aóÈà•pÓ­ÅñÁÁÁ[cðáy-4pɯt8Çž}àJà¥K“áÃ#¼øg—Z Ÿy¼7€Q@³ÆJb›îôÆ+æî±”g7qrÁ‹½½Ÿ+%ԭשt¼ÄÏá>å©)@y^knóX Ï“—KÐï«Ù0YWµæÚ²³©ªòèµ6Æ~½Ê¦+­B¡U5æÿ¼þW²óìÎcëÖ:th¹þ_>îýÀ& ‰ÀîW!Øy]Ù„# »ge]Ð趦c¯ ´™XÀ»yXÈÛlÓŠ]Àµµky°v^,¦Šù{L`íÚÌEùŸkÓÛˆ±Úr÷ˆ¯!qñ¢p`;! €ôØ<Vÿëà Ÿ¾þÿeee‘å°Ç/Ÿàm6èÎ-4EŽÉ¦4ç˜ÓÙeéjÉ­ÉYªç­BÑoå•@®ÿE*€»[ŽÀè7ÄÈK}!_Êú7”ãWt€„Õý+Q&  ÿØ'Dkÿ{Ì@>ý0EXåç…΃ °åüÀyî@b(‚€4~Æ@¼ÅýR_¤)Òµ«ëþ}Ó¤ f@CÀD?¦i_`ïOþ[Æ·ÏŸ?ÿí¯üo{}û"SýM¿¡ý®þqÜ +wÇûÕ<í—¾¶Aú$ŒP {«€vA¤¥,@p1þ»’tйÄx䀮éý 1Îú±_ëOÂpÙ€©-À_M¼O“€„²œN¢]0-íþ3PǢѤ$ŶÇå(^G¿ÀIN“Îí7_‘¢ïIF£çž±O™¿uê”ô˜9e“¤¨,ŸJ }±‹õq™àÌ<òŒü3Ù–ÇÇÆ¯\Y ÎÌ@ÿ÷0E—xòÇ(êVV²@é(2@¡ë»Wü +í¿À~B÷Ùûêåß|j`ÀäÀÈ£€/ã³úëx<;ú…“•Mâ+!îg›ÿÏILÊ=B€™y¹MŸÝJuv.(€ÊÖšIÌ¡¤ò¿U‹æji§@‹Ìô"]UiUQU•Põ_R²Màã¡}Ëo‹ËÇ=ü_˜ vO™>úè41€Uõeõe;eÜçX GAÀu­¾ek•ŽJðÍ›1È„ +p³*OßÒƒ>ZÑ€»ü®½ÏØ÷^7€žj¾¶T ÑKUnº˜õ¯çG*†@)µu½®C¯ïÀúŸ½½@àÿúeüH ÛqÍ±àˆ T6¥E"i„Ng»[ã}—Wð„)oûôZy€Žlúwî¼›Rÿ¥¢{Ù¹—ÿ^‚üP§ÆK5q€Mh0H­°`anniP8›Zûk(\ÒüüóS+¢`CaC×õzÁ#ÀU6mB`A†_ô¥°þñ Ú׃¤ŸV¬¶"©lØêQµ´ªÊ³µØë[3[aÈQ+ýë2›ŽPÁ[)äÚ@ÿ¢ªÒõU-ŒÿÕTþï\·îôpñÑåúùøÝ½ÝGœÅ–Ý%«v××—­ÆÀ£ÞH-2(­èY]UAh¼Y +@$€.[„—O-ü¨”G Ÿ{Šü?k‰¤DYóku6¬„§L.ÖŠ9À¼¼Q[á)HíVt` ÎEmEeëËLËøÿÀåIG0ØÔ=»lºFUp“ÉdŠìr¯ú¡WdóY•-€Nöâáü¿»„ÿøÀ `@¬êá^.þ;yÊi¿µò¿ŒœN¦Ó›:@òú˜ÃÍ´ÿÙ\H„ Ü%<駱ÿÓÇ_Çå‡O¿~øÓ§ù&Tˆ ~ +΋Á–§y pàô€ÄÞ«$TÿÓɸÄ>iÚ.¥Ùév¿‹¾¯ŒgU§…‰p?‚Šzéû¥hT–íÑSCô…#ñ‘è;ïD£Qäú{3äcò#cæø#²$É#æðȈYž2O .^¹ *@Ðûaz^ž3ŠÎtwÄ’}Cª°pÏ Xÿüß'¤«Ï'sô ŸKþŒúóÿMX^D +@oïèq™ÇV€î6€ùt+›®yß¿<Ô [• Ž |aXÎA«ôiØyl-‚Sr颊ºÒ¢ÒªêõUÕ;÷”ì<»íرu‡Š ÿ—ËÇgÿ_}²(ÀG4,»ëWÕCp]±*ïzEÕÖd€XÆÈÄÍ¢Ké ¶o4צƒ\dIÀÅZa xüSóqçõZm®º”ý¿X$@€åtOz‘^Wàá@4tEØÿ+*:^UVV²¼Âúð€#8œ](œq45Qaìh +#í«4þ èy£/Ãw¶â9Ìö;Pé‹=BþÃGXûŸjÿ¿»$ì>ÀVM]g†°D÷ßKOìå)@çÝ#Gî¹{ø®hôz·óðá- è8à[ø-¬úûÚ¼~¯/Ã:p*€§·ˆ=Àa ãój4«€ýîv*åÝgœôc»AÓoÿËiì³ôüþ@àŒ¥¯ÑqöYÎXÎ,Û,}n¿¥ýôü¾ÇÃÓFI&3ãæq³Y2ÇÍ.–ÜóÀnÏw©©æRŽ»ÌùŠ =J…¾‹.¢vº‘”RóH±¤dŸŽÇúa K^‹O'ûE æhLŽ¿<%»F\cvéĪGòé›þ5˜è;±5Ý}F‹?? I~D¦Ú?š&7™£ÿãƒrÚ‚þ$£ð0;—¸@ÈÅ?.ŒwR ¸0Çëý…Šòo6e`ÄUð‹ËûÂ/ýñj@ã&#R fü{w `ã¯Ru¨tÙÐüeóÈ¿¼Ü¦:©â4@øÿ ð¨2=­{Ú#eÀfÓWU© +ôÚm•®ûeUeÕÏW­ß³ž×ÿŽí,&phßÑåÀòñY€¸´Ùn‡Ãù¨Øyš8@I}ÉõTàúGU–o”µl­B!þý + æ7cP *PikÑð§² @ØúóRàÚµkï_X¢|k¾µ‘ý»[ÿ‚l$p_ÓƒÝ?7ÿþ‹@**ªŠÿ—íÿ"¸¼PÍ@99~ Á8߽ˉu:ü^+gçdø±{è÷ú « m~¿àõ?"<¬-à +QÉ¿E ÿ‡(ý q ¿ }3í–.K{»%â˜1R‰ï0N~v›¿Ýâl÷¶ú¾ûÆ'¾kzã—',=äÁß·ÂaYæþ}Ò¾!_š ›ÍðÔÛ «Íã¼hwÅå7]vWXVÇc)7@¶†‹P^|±§[ýt¡OöËýêé$‡þI»ÔýTûK‰Øtâæ´zz|b"ö>±é›R?Ñ4Ø%%ûÑ7¸f—ãýPÄãûÕ±„=Ç*¹l¶›ÃÛåAÙœŸãN™åÇpï3QIQ%ìtcLŠÚéEv =I\–ûågäyLN#f36/Ž„o †9 àö'—o?Ä@!Fê•ì×Ó`\Z TZ ÷ŒE@\ðgþÿß/A®Ð¦M¼ø{âhõ@Èù< ›WÙ Õ“I×z̲U6þØTy2Uªl¸åнN[ª×UUéª0ÿ_¿ž·ÿKvîÞylÛºâuÅÅG/WOËÇïö @¿÷£ˆ“8€e÷±o>ªP!äŽÀªžŸë …©ú'°9“Õª‚‚ôÕopã?+ýE"`í|ÖRë?ë¾…€”.`>=WûDÄ.‹.¾®G¥G’¥Þ'½® +À"bmeeõŽÛËe‘ptn083‹½yl4AãeÑ?–ï8È—Gÿ‡yïo¥?.ްøï.ýïZ;s„jÐËýÞèôçdø|ðYs|~ÌéÝÕúß8ñF±…¾¡>!¼ÆýÓ—Üî—¨€w"ÐýÝ7 þÐë¯cãßÊ¿}óØP"àRÈZC,óa@ã¼DOÐÕC É`ø ‚³Ÿg Õî&šÐNÈÿçþëš'ôïP«í3aXÛ]² Q_*H²Ëö ø/ˆu)@µ¿M"+0ž”®Å ¾“P쳘Ÿð?ï%¥ät¬z€é~NŒÝŒ½?111 °KìĤiû4½äJiñ4mÉL¯É~..'ì˜ûKЧ“ÃÒvé¹åýѰ4E/e +®’}DŠ¿3¤Ž>ÂG“„ ®Acñ(&ñG¦ä©px, ÀíOte€Ë±P(w*Ǟʥ5@¤Èp‰@ªøÿþ¿Ã뫬4Rñ7¡g{_ìýn‚¼ÖGèŸY^^.ül j=Y®d”Û2U¬ÈDéoËÖ­ô´fzZU¹¹X«VéU]•N[UðüÓ¹ºº¤¤úìÙmÇÖ­£úýÿåúùø¼&Àâì,œÒLSä¨ótñ±áÿ–-½ž%˜ËKW—T¯Ðû* +*¾ï+ØŒ`•JÏ:ÀùùÀ›S柵¸_ 2°Q SÀžæGEfÀ|³b'0Ÿ•5¯õè P`Óu(K€Eôº¢¨¬þt÷òß×C%Äfgfgyk. šºÜS•n lD/äõ„ü¼÷ø°püþrÙDYþcû^8ý!ÎÏ›ÓéúCãçõZ±€-Âï]o»æ ¡{ÀÒØ¸f²±ÑÙ~f·e_ãªÛ-ξïN•¶nÐâÐÛ½ÿð§<ù¼~Ÿ×—áË ?œç,@a,êÿ ; +»¨w» Ótêêršì€T`˜_ü1¿ +d!Dšþ´_ßàxX–þ'Ù]’á™q3óÃÕœ?§?Êq—$úRªŒÚ…þzÛ€p„€-“Tý£d¡ŸÛ±(Œx†@X˜žNBÿ¿‹^G”žåš™Øƒ=>.ÛÃXI”c¬ÿ3ó€<4$}K›íaY˧Æp½Âè;ïÀ0.?µ¿ƒy@€¸L4€éØyŒƯ ..Þ¿2³xëöѧ‡Î:þhÜaÀÊÔ ¡p6E +áïó¿ú¿|„F*Ðûâxˆbûßêɦs9'Áö§<Ï#–¸ñ¯²]…õÝ\‰¡}B¤þæ Êÿ*(ÿ颬ôÕõÕe%%;QùvÛºâCûˆ,'/ŸÛøx`ÊdÚ´fÍðè‹ +ð·^gøgõ¯?^]u3›}âÐW÷° `síÆZ!̺¿ýŸ@Ö=5àZm®nÇŽô¢E â6ŠiÂ¥[b€¨ö/°a@|¶¬¶¬$2»ü·õ À'³‹ ‹ ‹J|Ž)Ò¾ÊëõY}‡­þgøBáüw—Ýz°ñße÷ïˆ~Y­)ÿ?«5C1ðÏÐ/ðâp€_ãoo׸#'NXN¬‰4ö5N +0c_Úëbƒw#qË ~뇟Š6?1€ƒ^~ >¯ '» û2¼±&P§Ñ¸ÝðöuF"ΈÓÙeº6É?Spa–QâþS +:]ô˜?é×·OºúÑuOæ»ÌƒXĺ½dOåÅyÀ¥6ÿ•tïH*ë2Vâ˜@ï—åk2lb±4ú’ñé•÷Ø ˜NN³@XQ$€IŒv©é‹úÓ$z†~$Œ›íOv‡ÕQ9Êêÿ°ÜÏX¯Î—·»>–ÕSö1ùTô[2Ä~Èþ‘$ûå®N™¥hT¶ás€óHœ@xJ/šoݺÂV€üÛssÀz1ôN}Ê­Ù†Þù_P(À„ÿvK@nð‡S`Wñ¸€xʯ*Í&úgó´Úr[[yÀÛƒl"«×ý¸´E«­¨^¿¾´ Õÿúb\ÿ->ÔX¼ŒÿËÇï¡ÄˆÌvwÏ6+Á”.@ +ÿÍÚúó=UÇ ýé‚®|›Ñ[P J_ð€Ä¨ˆ¿qOÿŸ•ÿ”¿ïÚ¬{Þ@—rsuZmËÆµKw³ð¼GO¨ï)ö¨°¨'ð×§­ßmZÆÿ‡ßødù9³3lŸßq¾¤ñ>žã ÞB˜žáódœö"à^áŸrî (~ ¾Vë»9Jh Œ2BL4!?–ÙHÀË2€—,í“&cW{$òK“qÒ8épÁà’·»âïN¼èÜò4¯dßEœvÿyyÀŠÈ¡Úœàõûý¼ho·0Ñ)ÂëýÁœYýòÅ¿‡Óošèa“¦ÒØôV8<Ÿ@ý.ÅÔÉøŒl&ħzÛeÇHu7ï÷Ij»L÷Hq±hê§ì%ŒîãÄ!ª¥$èÓãã‰$4ýùètRÉšVóò_âý JFcÈý¹–&Ì1;¦öæ4YЉ>1ôusÔ,qí/1 Ârt<ü­¸ý©@÷€@î‡sr,.ÇžŠE‡ˆA<#="ÕŒÁð™)$ÊÝáÁñðøâà-„ß"ì˜"JÁë4î, +–Zÿ!ð¿•, ø¯ýcì„y῜ӄ€ð1À¼ÀL@׊a€j¥ .@ôaóxtªÌr6t:}i5ÕþëK«ÖWaüÿ*Q€’’uëŽmû—u¬ÿ[N\>¾øýîòÜâeªý>^ 3ýwû»¿åãÑû¢•e€þãm¯üÿì½ol[÷™%<¯˜±îš›&,¢V´\•dse;±S[baŒŽ-O÷¶’–¡‡$æ<[¿€£+. J…X‹J8pfˆ1 õ,º™ÒÌ%B»®½0öVýób?T€¾ T+ŒÞ Yö¾Õ›SRŽmÞç<¿KÙiÓ9bï‚?Iõ¢d‹ç<ÏsžsˆLÜuprç$Œ‚?ó$œýA„ë!øÅÖ5·Îm~ýàoÿ|ý§}ä/¾þÛÖ;ßúë/~ñ?LëØ5=½œ–˜ÀÎîƒÝ»0}%˜jÏÿ·4Öë­ÝL8\ˆè/£…?7dzӌ˜3ÙÀî@3¢ýÿ‚{™}ïñº€TüÔ³sÀL"‘5ÍI/;Bh*¦7¡wMu¥‘ó„µD•@àƒð¿îZ»­Ÿ™#üç&"1ÉÑÂÂhä¶øn]H +ô©Ù©$šÁXÐü=zE Jðßhô6˜,­ÿ±ò?VˆU +éè÷îN˜!Lô9È„¹ÏFY5$Ìü},4D(@+@läl· `o:!8€7&†VZ³K%äòc~gM[«;r^a°•Êÿ:–ÿùsœ²û?¸öÑ7`.¡É-ä5Ù > ý2ë¥ÓñÓê/_²,*é¹"_Û +–ŠÎC²QÿÃ#ÿwÛ¹F¤AV‹9{á U5¬kp^)g¬›ïª ¼ð§‹(þøgàwŸD +è­µt€÷þs ðãÿÙ­6è 8ÑqÂí ÐøÀçØ ãÀ±Øìxà(càh 1}W7B…†þbh¨ûñï ø.¼ÿöÚ `ÿ+ǹp&ÚÆÿöùw(6žîx8ìý{—ÜAöïÿ6ž¿=qnøóöMôõõ}ÿ­O¿õ×O¢ðé;[à»m~þ|åÁ·þ®ûÑîîGý»·\žðÅ/~ñÑÇ8x'±ƒbü¿ë`7êÿ‹ÁTÛÿwÛ À:sžTS™LÅ“î2ͬ7û˧~xa„ 7;Õ•0ÝŒ^Ø”‹ô^‚ÿˆxéC/Œ èGØýw2àOR•Þ¥cEßäD à?°ZÑ/éJ(Ü'øO1úþ]ðOνöÔŸ™‰NÂøÄ¤€ÑdàŒ`“]€Mq‘0ÊW!ìÂ* (@€X,V‰Á(Å$€)@ƒèÆí~ +èï&EtÅ—Ky«lÉ%4ñ5'.U-¤è¨l¼‹÷1Ƴ°ÁiÜì›yAB ó0^–sª‘sµ\rÌ÷Yì¬i€ùU‡uu¸Åʘ`/‹€ôiõ#e»„v÷íUÃö%ƒ·|†q™C +l¹¨~…h‚¥Éñ¼eÅKFñš]ºÆ=ˆk%#Wú©*ÿ´nËc|™Þgï¸F7uÍø©å!^QV3Öò²Ñ,ߨ(g–7šD¶õôNøw¡ïK»ÆÿtîüçœÂÁÁÿÀ_"QppkB'ð0þ‰cNtø~Öq`b‚~,x”ÿv`xb׉ŽTÿÓä# }whHÿîáêÿêÞ£Üþß}f÷ó/¾Ø6lŸ»FƒÞ¿ Åþñ]£ß%üg"01Ñ7qp‚q¡¯?ùÖ[oýöÉ¿øôo݉ÿæ|ÿ÷à_ŒÞúóc>Úýè#÷ãß +üò²-¦w‰á?|€±ÓzphÿОã¿fjíÀ'ÐXZ¿¹Þh6šÐË@Ÿûh³fb$¢$\usß  òg8Īÿ,]@„Ô˜õ°w`gÒ?2¡˜ìãG”Â̲ ®ƒi(ô©ÚmøoñQ—B ówÿÏLçÒz¾‰(€¾ÝN¬vvNº¡Â‰sTý#änÀ~èõK" XˆËaªíc¬t^Ö[äg½‘â<&®Pˆ†¦ôg/ÝÝï3€xŽÊn">¢†ªÚqðS ¨â‚8š\õ97å16`€çU•AX˪SÂ,œ5TþŽ3æäJÚÚšStפ–'` ±@²Ä×þbÙ(W%ž"Û_ƒ¿¿ñßÿÀ²¤¢z™SåÙ°ðW4^º,áÿ³lˆÀR‘^çê;ì/ÓgÌ6ršQ\@8°ê1V,Õ“Ïä›ùüƆ•_nn ÿs;ÿBÇÝ€{që6 pC~kûã®V{÷mv…<8;ð—[K¤úþÀ'ü .þ‹ÿ³a€ úêÿ:è‹RýOå73€!1ÿ?tèè¡CW‘þ³÷êÑWž}¥÷¯Ÿ‡ÿ_{ÿ¯}>ÿû¿ÿûÿÚjüã?¾²÷xW×h×·è…Xq¾„,`hÏg>óž¤1à“oÝn| p»'@çIúŸ{lº{úÑGðþ'ÿœÞÚybçNªü§Ô½kˆÀÁîýû¿u|7á£ýϱýÕpsŠj* f‘ÜKµ7Öì̉‘P¤S™äÎ;ba +€™>AþC3?yˆÞÿBväç#.þ ÇzóBÖïïœèĦŸ—C‰(z2™ŽΧ‘½ƒòýøÏm)–T&ýæ/Ÿ™4¿ à$†°¦[O¨ù…7 Žà«~ÑÇà@°@õ&“ªÄ° Ðlð,À¥ t£¶@ˆU‚Á·£¡Ð¥ÿxw¨–±2eÉÁò}üW’j©6€W•ŽØ®–¸Â×·xÁ°Ÿ°™˜€ŠÉ¿Í-{ú•Þa8Ž+³©êwJEîï¯1X+Iu ¾C•?»¯­ùÐ&F@rN¥ï±jZã„Ux ÿË–&Ñõ‘‹¾Q±¬j,¤Â¾¨òÚ5mGQ[Ó䥢ŒáFÿòšñ†‘3®©œ´¢æ-œüÍ 77¶Õ G;š-& €°û¿OK½1£€ ààS€Á-F +Ÿ‚€À‰@§=ÐÑñ_:ü »ØÄ~ S€cÇØÝ»éƒô*¥Ç‡úïÈþÙ{ôjÿÕWú¯`ÿù¿ÃíÀöùè,€J0Ðð€ãÇ_9޳—(Àèèèþ‰ý£ß&ðmâ‡þù3ŸùçÏüöÁ·„àß9ðzüÑîP<ùé·þî/ÐûïØEлÝ}þïêÚ34úì‹„ÿíÀ'Bn.6¡ð¤“0üµ9ŽÚ1GÌÈ…D";â*ü½Xöÿ¹wäçôŠJrªýµ÷GÄœß; T£³dßœœT:¹E?É¡=æg;•d(-¢=ó•@ ¨}þ Pé}êµ"Nè)33“Àÿ +¦ò{ç«°€0d€é‹ n`@蟉ÅRÕTµVm¢ и“4ªèÿÇ‚ÁX!,|¯P¸»8,–%)ÿÿIvUµ,U3$‰¶-ù|§%ëÁ;ª}ìû‰È`ºŽúamÉX54Þ@å/;9‚ùœÍóÿ5žð¼¿Q \ÿê¬ +¼^rrîjAÉvâöâa¬þƒ…Ћ?©-ÃR-Â{_ÎÖŠ_»ŒHb~!4ŠQmM†p±¨åJ×ä%î ¤;äòµµ\.[V9CПÏ7E`c;ÿ/×n—ÿ›$€y@j\þÖî0(öûoôÿ%Tƒƒ[üÚS'Nœ:A$@$þìGOàØý£7¨ò?¤ÔGùRUè uúú¡!z:´—ÊÂÿC¯ìí?Úßße÷îç ü£m€öùxxÀø­ßD~³pñ•$Ñ€½ÇG»öÒÓ(Qýû÷øö¡þÌ?ÿÕßýø­',2ü0Ü¿­ |믿ÞÝ=ÝÝýŸy)ÖØqb'€võ=rM-öïÙ³ûÅ`˜êµö¿À'@„/B¢ª€ÁY…ªõ/ͱð¤yáÒÔL‚§ïìæ×9Énÿ@yïÏ_Pö…ì „ ‰.=AÿÈ !ÿ7 ös‚jsÓ<ç%Ì6Mè…J%X!ü`óß…ÿ¥Mà€õ‚©üò)ÿSœ)œÍ>53Ù9Iø¯L(¦ÒÐïRºô.Â|?a¿¢Œ¢ÿß凧( @DÃ\ Æb±p†€c€Z-Õ„`½ÅÜWÕT%‹¦Ó¡ä¥ãþÈÝ-nd,K޳à¤ääU["æ.Õ üçà_¢¢öÇ`ïUþ{¥wÿ™þ©þïi´ÏÇvÞ]j¾[­ Ï€ßD"‰ ì=.úß½ú™þ§?óä/~üÖ/Þjy¶XÀƒ¿Ïèâ­¿{¤o¨¯¯{úÄ4”þ»vî:APþ#ùwÏž½ §Ú€O†à×|s©Ñh6S©p,2›ùæÌk3là7™MD ôa¶ÇR>¯‰.?=y÷ïÿ<ûÐÈ Yzžá¬MN4³3Y*ÔñžÉN“ ™ßÏ¥»~< ¾¨¥°ýÇô_ ÿ’ ½çýæ/G:áAØùÍN˜Á’°3arðlÿzâç.}”^ùù>ž† O° @O±J-Qò£å_k°ê¡Q£§Ïà†˜ W*…B$NßÝü4_¶Vë•ñNüG¿ªªeIà + Í3~Y…Pc{›Gÿ«¬ÒCÿ}Õ^•ùó cÍÞL° Í‘J 틢ê_“Eç¿Ä–@°(Êk‹cR)·xÝS*åÖ ÙËÙqËùr +€¾Ú4¬º!×ë¶±¢ÖUÕ¨”Ã.ˆjÈ=ôê—±G¨í +ÀIĈ ÄN<ò}ŠÇ°¨þ·V¨þ¯.W7;7ÑØ6Àzï€qwÓn“ˆ@í~ø›ÃÝy‡£Ð@ùÿæÀÙ­9FXÿ?q +Jªþþ²€‰  ðtÞ¿pýAÿÿ‘]CÝ|Ýÿ=ÿ0€«„ý„ÿýHÿ»xåÌîÝÜýo×ÿí³-ìôšÉ¬ Iˆ˜Àñþ+W~üã_üâAÂÿ–‰ ÛxðÓ­7ýL·8Ólù³óı¬þcó¿ýCTþ¾Bõ&Õl.µ3?™@ƒ×ˆd±´‚ÀSßäi»9¢˜YÖ¾,¸Ã”ßôz;E±ÏL¼33xo–½z²“ °,è'&Ñ®bÓËÏêu?|ÿè$Ï×°àN–nKEý¿ð+3s#6òùì7³ÙÉìÈS#Ä?`øë×»ôY½…öw\N‰wÁ -ð?(xI¥bž0ýœDzkÕL,ä é„Ãá +±„06b•`ÚwC€fÙ*Úw¤×}ÕØèêÛ†ü3Ô³íŸÁƒˆlØþ +» 쮪XdI ¶ïƒ.ø9û:O´’@ÿ\iM[\ÅZ ºZ—ëÒìRIƒy°ˆû•éÎP½ù™À‚f©§/ûž³Œ’†âŸxe½$(þ‰¬ª¶\\5ê—ýtÃòš]tŠF‘Wá)dää2\€èVñ”_Îç«7Ü@s›5º½-Ù?××ÿ·6gã)7û÷¾ ¢@Õÿ­[gñt`‰ðÿ§ºO=|âĉŽðäŸÁ±cÀú·ãÑcP‘ô7Äòêÿ¿úô²÷PÿÞ£Üý‡ýïógÎÀÿ·-lŸížܸ¹Ô¬eg{zzÞ¼råÊ÷ñ‹ÿëÇnîºn‚›\àÓ-"ðàgº¢°ë`ßôô.L¦wMœFò__7•ÿ£{ÿTÿ7Ûðÿ‰€›èº‹5ª’ IeæÂÜS„¸TÆ{z‚`UñÎö¢~çšÞ; ðˆ×ë}èçÈ@S¸ÿ!ü7ÛùM!ѧz?‘Åz¾®×!ÓŸÒŸ¥úü|4:5ß ÀðÉÝÒ_ïí-$ü¿œû³‘ìS?déKÍ º$÷b0›Ä¡×úÉã—ŽÏNŸb‹±Hð/:ÁØJ,“ŠÅz‰]pÇ¿·&N€ ©2ŠÌ0U0ýwõ+´2–äCÍþGµ ÍÖþãŒûœþÓò š_6øôqµl;9½v5çî ²5AÙ!\/Êr‰wé¬ÕQøCà¬9ZyM“KugqÌ©—d{M+ò À÷yI–NªGVí2Á|ù±Ï[ûŠyÞ@,ÛªÇ.¿#³50/挺TZµ‹ØsX?¨«kÄIð¤ + Æ‚\6T¶èÍä—oÞ¨¢°!:Û÷Ó;Þšÿè•ãÈgÓ Œßsî’­A1` à]Í&Àè{ðþGx¸uìSùìØ®GØþ‡åÿß}ü»Èý¹zèêÑ«Wû¯>ý +Ägv÷Ÿ¡ò¸§mØ>ŸXGà=f÷Þüþ_^¹ò ¯ÞIn» +2xð­¡>*õû¦ îû¦wN³³0‡úúö íÙ¿wïñÝ=±p¦Öl´ À'Ø€%OBÙ¹/ýÃHggÂ;7ãõ‡Î§CÑèùB…1`¿—À|Þýƒ àϽY¨èËÌI&&ÕþHôSè-û)Ý?©„ú¨_¿Ä"ýP!z¾&6{—>Hðÿ©70¥ŒÌý0Ûyá)4þ±WOøýÏ&»”ÙÙdš?‰è?:ˆfõ?â„BéÝéÝ‘ˆ»À#€XŒª{”ýëÜ€%@•)Á¿Øˆ[€pR׻Ъ˜¸«€•±¯;TKkGö9y¶`3`™Xná¿d}ê:FzCvìœjQá.||éPÝ­AìçxŒºŒ…gÍíü£õ®@iÌÉÉku 9Éa±€#ƒ,ðî^Y>™Ñ¹ª¡YòyÞPå²EÕþaúâ!«*ÖdùË> +þâô#ŠòªZ$ÄÏ *F +9CÝ¡.¨êеbÈÃøf¾ +üßàÀöqˆëÇ7Möì¸9¨‰UÀûàO4€•ÿÜ`pW7›_Xþ`ðÔ üO°%бîÇwîêè~d¨û‘]ÝC»ˆ =þu1ý¿zõé«O÷÷?ÝÏò¿á3ÿÓÓîÿ·Ï=h ¬¿Ûè ŒÿW6B¨€¸lu>-º>©Lôì:Øw°› +ÿé];wM÷ íÿÖèÞã/Pÿ·Ÿ ‹‘8Áˆ2÷¥ß]è윙óêçÓÉ„’˜ +é¡·#—L/Öù:½¼/DÐÀH4LXód;qL†þ 4ì'ÌÉ.?T =¡„¦týÙK¡óçC¡ó…óƒlø‹!À&,=b°³a„þXD@ñëI]Ñ“èðX‡Ò¢Û+ûÓ<[‰ú &F¬ˆ„oö²è¯Vk¤š©˜'ScÀt"‘Ñ +?ý ÞìÝü«VF}`9îyÝÈ—Ù +Ø?öÿ%›5ˆ ”JÈÊ4Ë9hì@ôÖdÞp4yÍ–êc2‚œºÄCÿÒ˜<&ç8€è¶–sÊœ˜£ë²S"º †—xûßö uŰÕË–uZ¶NÓ[VY³Ub$ –Ì €‚§ë%-ÿaƒ¾¿±F¯‹üâ%*Ý5±°`H*«D2ùŒ…é?]4ol4·w  w¼ÈQÀâÕ-Ñwwï +S¸Eåÿ­[®à]€uŽý;uàÔ±S'NñBÀ)XŸ:q¢ûQ ÿw>òÈ#ýúz„åÿßâùÿÓ¯\úï¾òü™çÏ ø±]ÿ·Ï=¦hÝ SÁEÀP«@‡ƒ«'†úú¦Ñôï›ÞÕÍåôß:~üâ‹Á•p*Õl®·ŸdàÝF³š¢B893÷»/ü¿ŸEBºÿy`ç=øvTñ&º 0½„ÿ“¦ ü‚tòÌNXP¥è»ùx­ÐÅ9TÕ!€)}*M‡ž„¢·-—îìþÏ+‰¹¹ÎÉì…¢ÙoÒ•l'ãHW’(ØÇ`ýAúñ¢I\ÐQPÑà@l¥‚!@ÊUý§ªT,¼¾Iõ?ÿ1 ?Ý +á¿¢(“Xv¸‹_`ÓÊX¿òÉrQ“~bWU£l¨exjq˜ÿ!×v vÿ+©¶±}€…Àª½j»øùñ…ºý%cM^¬»ª”ÿuI\]­€Ò;ÿÑ©´ + BîrI³‹–ÁŽ‚_;)ÛÆ± ð€ïXÆ?0l£íÿŠñ·Úe|&€y‚þz©¨±=qÎ0Št‹BŸãö‘”ÖUõXªÅ"tnä3ËÜXÚV@/gìßi…3 xGLjÞHÀ}ÐhiPûßÄåÙ»òaõß©ý?…@Žèx>ñßãCõ?.8ôWWö?ýô+(ÿwŸ93|†^ý{Ú }îÐ{' pÓ†a%´(@ߺ88}pºoß~zç^àÿ‹±ãû÷÷‰·°ÄãðX0bνö¥§¾é¥ò?4¥LÍ÷йüø”?Z™×áåOU¾wR ¼wÀ?ÛòwfùrÂdЧç.XôûyO߯ø©<×§¦ˆèç£S"¼è.®o +{kÀ”93GuÿSÐÂòæ‡æ$lþ’³J²PpõýèÛGÒcÉdšÑ'Â?J§[^ÀÄ*\ÿXI­h¸YCüq3\åúøïáÛ%õQ,+ÀÑhjë¿Å›U¨ ôöÿ—lA~§ÈÇ%Møüþ#¤‡®ØÚªa©Õûe£¼ +5?Œ~བྷ“9À1dI“J@ð¿&‚€ÙÿGZ£OE7`Í^+]_,iØÝCv0– Õ²,/H>#¿G@ºº¥òc_Ë«¶ÊóëŸ4£¤J墡®XUé•Vª#~ˆîÔ:þN1ퟡ²ü•ªÃðÐW¯Xå+ïZå›Í&og  Æ ?.j\†oÝjã÷I @t$üsûÏw½ xêÔ£XüûÔ°H>ÀËûÝòïyá?‡xýÿèÕÿ·ÿi8ÿüúJÿîáŸ'øn?¶Ï}Æ6#þq/ìÞïß;4±g?ñ¼5::º7tqw4Îdj5*HÛ à“ê¸;ÕL¨þªÓ;—ÕuÅß³iÓ»´ô åÙùŠž5»„/‘äðxy'@ó$&³¦9aR¡Žþ?Vó¿ŠÒ_ðèdTúO…BIâ¡hZþíäó|ówÿÿJ MwaÆì¼0Â1€Ù§²“_í½tq¶k Ú~8üÄÂáT8U "D"Ü` +À…|„­€…ÑfÀ<ˆez5df2OŒÐ?SÁŒ À +Àd úžð3~ÿ.þ ,J’ Þ×µ²¥ª†#³! ­ÁÀçs\s^™ß‰!€ºªÚ¢ô·í5{Õáþ?º#¯" ¸¾Æ&?oüÉB0ÿ‡ž‰°9Pé:}ªÆëƒ×d¹¸ srÜÐâˆ#rà5$/qÍúÎaÙú,çó5iÅ~Â*Ò{mÙÃÃÐ$yÕ(9­%„5ú²5´,€þ̵Œ5@ËÊäóÕåe"ËÍÛ=`ô'àQ@X´çÐ÷™7÷¼POaÐê„9øÖÀÝÞΣÇXðÀçNqùâTÇÄÿŸêè>öh_w÷#ˆG{ü»C_?´‡£ö^Ý{õéþ§ÿ¿þþ3ÃW¨ü~Ñ-ÿÚís?ò6~åøèèqöÝ¿gÿèžQÈþõãÇCÇ/^¼¸; ÒÃr­Ù|r€+|6Èd‚É s_z*KøOðýl%5Þ{›ôú•J¡+«ˆeþÍg>ÈýÿÐü%xUß?Ú²é &ô)Åæÿq¬N]:~>:¥G£úøí· Л +Ì"¯Î=e~s&‹››@ÀÜDò⬒&øç‚>®ÀÜ7ÅÊűÙdä=ñhäŽå9Á{ìXá)@†(ÀŠŽ€þÇ«Ì\`El4Å Š,€ÍÀvÍÖÙa‡Åÿ˜ð"`«þ窛°wüÞÏøÎ¼†oÁ +c€ÁÁ»¿œø?ÀŽNzøaBÿÝðNíc !ÿãû…÷ïÓGû¯Âúâ?œyü߯ÿö¹ŸO +VB}ö7Á =d¿¹ùÍo"¿¡‡ö•p&Åøß®ÿ?±ÀÍõ›P (òêS¿›#ü÷j‡SãêëMŒV¢Š@9G/‹Å@%qŽ€ÞŸàɿӓMyhé&Ä$€žGu}Ôºš‚OßTh6Ô£+oëç×{7‘Ÿ¿I-0¬œÏz/¼ß™èÌBõï7‰dGúñPz¶+‘>Öõ¡ßgÀ‹üáQ€×ñ~~âú¿ œ€þ‰5„ËáL̳ÜybzàA|¡§Á6A—âvp<{-€¼¬Õmxþë¯òe5npÍoÛœÀwž÷_ôý1ñÏÁ-€'øŒÿkÂÒe¿ì°Ý'°Õ?H€Ì€EtÿåUǨ/D8ƇÞ%#¼·(k—UÓ̇lv"ºü –•¿,ÉuÙ’îÙ"Àœ¤õzÝ.÷–²±Æw×ÃÈ@V°P¶2&Í bÄšÛØBü7Hσ·.:€ÞñÀ½wpï êÿp€0¸õQFœbüçhBÿìêèØylç®î]¼ýàGûôèÕ§¯}š Àî+¿¾rfx¸§G4þªýØ>÷÷¹±´^ ÿQ?Kw›µ ÂÚ‚ôàŒîªÆûmüÿdÁ¿»@Uq¸œ›ûo–ñ¿Fk½½w8õÌ›ÏÒçÌ.Åtëz~á7'ÌÎItûö&¶ý?¤ÿþÏþõ %W~ª¯C—t4ôKéŠú[^Àø6½½ÿoÞKz³ï¿?™0½~vJLèŠwdBEfg#Pô!Û'•êm¤`â×p)@€(@:X b™¿Ð:¼Ç2@b+܈…S„ýOl…ãX"(ôÿ®PW”s H>žÙúo²iåä}‚kß×|US•Šn€>A<€$›m‹¢ ,ÿpe•œ¨@Αí5X ²"€~R t è¬Adaÿ‡|à:óg½}9 þ=õ}EºÝk’¦ù4ße¹7YZ°èNÈTÿKÆ +0ÿ‰—ÔËe*ÿ54øÕUc]VBLá* ðÄ<2ê~#Çå¿åepLµZÑh²À히sK¬ÂX¶ ·dµ€ˆºÇqƒ®7aóÿÀ;ô2pkp0<øQn«ãÀ?ü©jmѾ½š°òs» AÑpÁ?¸‰þøÂ +OÄs“^ôà“02H‚pÆKt´õM€fUÖ®ÃðÏy}ŸÊÀÂý8 €õxe[vèbåß@$¡~ Ú"«Õð«ŒëŒÿŽ“Cá¯9kŽ«ýÃê?ô€«\rrÊýEz]¦q¤œzZ^mmÁþÎ>4ä¸+Æ‚aÈFù0=kòßöy´z®µ¨íP=ì#(Œÿå"ÝA¸ ¡ùÏ;«FLuÈÊ[ùŒµœß¸±Ù¸¹­€·„0@˜J,`à–€.î °ÔêH5wx`« å¶ù?wʵÀH cç‰îÝ»††v=>´gè·ÿ±üGØÏÖw~m»ÿß>ÿ;2€›TLПqOwÛèÿ €:p$‹)sÿðCï\– üYDõ¸ð/ŠsôÒ…B2¡‡J›õ /vý“\ÿ 0;¹ÿOð?êßÔÿ33@R¯?RZ QèúÔ<Ó *þ+•ùàÛÁ‚2ó—°ÿ« +4ÿ0ý é½ÿþˆNõ°Uý§ˆ°@¸@$ VëåS€Hr6¬þ¹øg@ïáJŸªÿŠÀÿpŠÞ(‡¡ýó ýÅ!,…t¥Ë¯œKtr `$›Mlõ7¹Q5œ_É9MŽÿäu¹jY„¯qaÍË[€¢÷_V ¤K¼uï”la{_vVËÀ|cM,ée î¨þÙægM¹@‹êu õ?Q€êõÒš$-Ö‹rý²Æö?¥“¯í+>C> —AÙ^áYë¢mÉ_É—‹O\¶òÚ“dDÿ!çÖ š3FŸ:fˆˆÂœÍÚ@8®–˪`–Gµ\#@ÑàA¬¶×xܵÿã ꀠ® p<5Þ›ºçnÀW†.#¹5æû9Àw6ðÑÖý¡ýëè8Ðý¹;;Ø(µû Õÿ}CĆöÚûW„ÿ˜´ëÚçÿ +@$€³YþÛà“íü¿{;q±ÈÜÜŒwn„ð?4O_)Æÿ@  ðÍ`$¤èl–'Ôr ,üQý0¡ø'çDýÿÕ.¿Î:@Æþ ØŒúG‘ LEF‰$C!¢J"©'ø›U*ܽ&M‚?ßþ%=yiv6”žýïJRùìØlºäúsåO„¤!î[ øÏO™÷"É1Œý¹ügÀJð=L „p0&N8#D±B̃‘AðŸLŽq²¿Kè³##?Ln•äÕÒItõãÒ3>+ß´âeÃ5æcdåö>]¢îöí+9ñº*Ä×ek6A>±‚Kü¡$ÈGàŸã9þo‰üß5$ÿæl¢Ž%/ò§'‹r..kuË>i[lÙ(ÅeY-"ø+–ªž|Iµ¿sø%˰ÊOúîP ,Xÿ7ØÀ ›]U×d£lsPÀ*bV­2êÿ2oü #À;5ÛúŸy\ðú¿@Õhí6wSµÞñÚ½6Þ”%Ò=C©Àë€ñæ>pêħœ"ðï˜î8A—Ý»¦‡º‡ötz|Ïwõï½úô+íǹöù?‹¸ëèíóI€‚Kf³–нsOu^˜õ….þ·Æ•Îùଞ>¹8â8>Ìû'üTÿÀu‚qkÿçÂý£P¸:@¶D`Ÿ®LECú¥Q?1€K£É$øCâ«Ä"XÝÍš=dr¸Ï%Xü%aù“Þ‘æ&}!Τª©&еÿ‹ )"©J8L' +PýWߣú¿ +ÀoBfâZÁ€ÇÿÁ‚â¿H:2–†°ðÀôšØsœÙâ¯òF¦ìÛìÕ´#OÈù²dØl„V»†;Ã2šÿôÕ–¤:Á¿ä”$Ù¡k«6&úÜX¥Köûç\€èýô¢¶&­–¹€À‘˜ñz™Ç3t ò¾#; 9|œ¾Ã l¬løsRͪzZ:]¤;cå­Ï—,zýÒ5uûˆú5@`«œÿwbtÁâU,XyÖ²P¾Ê-€¥æÒÍml¸>€Ø @õuXôÙ"}:€Ôxã·6 ˆž` ìÆTƒ‚Ç:Æ  ££c×tÇô®é¾îƒ}ÿihÏÁ>n?ĵOû´ÏÇÓpM€‘˜œ›yá‚i&ž Vîà:ó{•PW4Duý k’¡»7ÎçS ÷ÃÿØ@®D˜o@ÃqQÃC|Ÿ3 ù7Vm¼ƒíÿˆPÁ_¯;9ÈÖJ`%øý¬Ù9{ѹ,{4 êØ(I?ËáEzƒÓWD ÂxÉòù¬•Ó„ý’Aø­Ê—˪Q,Ê*Ûx „g!« @ÿ²js`ñªŠ Â~µ\V-Õ ²ˆ,old–áÀ`ñ— ­6@ƒá[ü²©|'uˆ6ïM˜@` pk0Ìn€ƒù<ܱ«ãsÓK™ÞÙÝ7Ý7ÔwpOß¡¡îG6ÚqíÓ>íó±u–ÍF5Ž<ôÚÌÌSægÉïU+BøA°4®D+Aý|0úvR &Qîû±2—Íš ŽýEýŸ˜à-ݯtùÙø\b‚‚x7 =M†üº¦þzW‚³…F¼Þ¿!ÄU.%CaæÏ.~@é‚«!™LµQkºÐÿÔÀ%×Ex½×f„ü‘±dš@…‹ÿ Ëÿð*, \ø÷ ÐÿQý?;Û….…2ËF¬oT“Do¶ö»læeç´|MÓâñ}_‘òy•@S­³Û¾&Æ9Ù¶58ÿÇK²ÏÁØßv´ÅVÿaþÇVÀÂéWBÝÏ,@*9ÅÒ"zуµë1I“=¶÷8—&ÉeÃx¢(EY+É— *֋ھÚÌi,>0ì“ÖlG,ÕÃÍ岪±ÈZ?´ äktè:‚<,[°Ê2g Áûô\f@>€ù ŒšÜxw£¹t“ Ûò¹×Ø!DðÓÅ=3àº$@¸Þã?9Ñà–ß¿ð-¶üÈ·HåÿLPÿO÷M !?íÐþ¡þöã[û´Oû|,r‹uv¬¥Â±—wáÂû“Þ¯†¢óóƒ-üßDnôNM+‘P4’>þ^ÚD±ùÛÿ¢ÄO€œ3 ð•QÖ*lâÃFAt9!ä€ú³zB‰êúq$ó u÷,rüp"Àþ°˜ÕgR©j­Z[_¿ÙjYl¾Z¿# Ú½5Þ €GPa,9„Ço…{aA\C®þ Á˜Gøÿæ"édzvVïâ”aºCÊ«çˆè|•î¸w‹-€Œäød[+ú~ô¯RÙÊ;¶š·5´áÄË +;yM+I‘yñ´]Òr6!»¼ø¿NCXGîŸT‡ë¿ðÿw#ëuP5"2„ƒ‹<*(]v$¹7êÆ3Õêרä/IuÍ8l”ó¶,[q©ÈqÄ*2 ù´úÝ-Y-öWòyC-ƒäX!ˆšÿš¬í°û[fÿyU$ä¸öÇX€º¢º ¡àò¿É*Àm< ˆên…DMF]`0È;ïÔî‡=€ÍˆBºo (¸³xùS4ùŸ;Eè¿óÄÎ]Ó»º»v÷Á9ýОöÃ[û´Oû|Lˆ/×o"(“ ýò©¹¹I3Šöç+ã½`‚,Í+çß D#çC» !E›ˆ$ô‡ÿï9³ó—Î VþcàŸ4[ø?1ª+0 +J˜¡)ý÷Û üu?$Ékà'ò{ÂT÷¯Ä2U¬†4?¸j¶î^¶¿Õ`¢Ò¨5ØÞ…(@®WÂ1ýáØêí÷ +žß@[‹ÀK8)€$óU&'ètvmé·¹‘/ûöi9øþh¿:I³SR­:§òÚ\‘³ÐÀêŸ-K¥¢f8ÎáÃ×}öªhìË9I$-JÄ ê.þ;uGÆûÙ%È^“rFIÍI>5gAºÕ×ËòeIÎÅKR1^Ôž«Ëª$K¾ äî7•—3ªVTeù´¥^^ÉkTëÛ öÈä dUÕTŒ4 >ã¿j©–;€*U‘ÄNÀ 7·SX þAà®håûmÄåDÀ{mغ+Ü »9-àÙðÝ}  @øß1ݱkçÐt÷4²Ò†~Ó×~tkŸöiŸ‰4è‰w›©L䡘™3³f¨'ü¯Õzžõ¥t'¡3"w#ºNNŽd'98g’("ÌIÂÎ (0ú‡¿W€ ö „R€@ߟ …¦’!ý8Ot*ý“é‹èú³w/Ás&œÉ ó_eWÈß“†þþo²€V'€õ™ŠM * á +WþaÿÅ<¿ñ‚n`!=›MÎê¢x9ñ*LŽºô.¤²'À–~ŸÍ¼ñ+‰À^óýèó?2,:†ŒX^4ÖÚÛßÑJZ©ä{æ‰'ž8íPY.ÿê4d|¹UÃÀì_Fò]ÔùJžœz±HàPw…¡ðS}vnŸQ÷iì4 •¬b¼®í;é;IÄB2¬83Í¥ºï°JLD}²^’mË8 ^@•?<Æ‚) *k%â)×´2}‰Z„O04e.ÿÑýWËÖŠ•@`ùf3/œ€šÛ*6ì¯o}Áx`s ÐK uïU€î +3úÃXdÿI{ù§¦wî„à`&íǶöiŸöùø: ñÔ¬¦‚¯ÎÍÌe;³¡hôíùÁ€kØÛŠà>ÀÒº™O×'ºD`9‘èÉvš /w&M/†&4°†¨Ï/è À5„@v@‘‘ìü³ä/"þ¸ö3ú¯¤0öo¬ÿQð‡Ç}_£·Ê !Öþ+0¨¸@±à=€:cé1hg¹'¡(/'/ó€@§wk†@7ªyß‘†¦I’ïúÉjÙP-ÇG…5,y ¥Ó§K`Žïä‘“’¡}Izæ™Åº,9«Èÿ“eØý:»ýÚ/!ê¼0†Êk˜h9[ªÕWø²GŽï®¡àg¡ }³²!©Ö>¹hÛ’¬JTåkVÑÊÛªšÎZÉKFÙWD³ß^Y €Ö¿\¼ óÙ(j«e)ÇQÁÜP…üOÄ”3,ÀúºÍfàæ6þ_ˆ~:7ÖѶºk€áwvÇï§À;aHÑpOøOºÝŽ]Ó„ÿ;»ûöt÷ µÚÚ§}Úçc#0]h®ÃŒ9•™}ᇯeÍ‘ÐÛÑïÍWÿ+@­ÿ›À ?P%;Ê sfÆLLfÁD“ßøOœKœkuþE€%‰Ä9<ï'  ˜Íw“!ìúÿÙª>?ý…«X÷o|È^(ãÿú‡¢ÿmZÐèm™æ*áTÅd*" ôÀ õÿB!²Ic ý æ)/+fâU¥µ˜%†“ m­PþÕ>9'k>éG>5oa˜Ž €X°TCÖÈëÊ–‘sêñ¸Ï!¸/í#€/;¥Ò"fý0þüî Xbs`€9§i¼¿¯ÉF lúBÌ÷m­¨Ù¥×-{Ÿ¬Æ‹XE° -^´ä¢*㪦¼[F1Ÿ×Œ¦õìú ²ð)Z°TãŸlz.²NÐöØlìqñ ‘'Àü2Âop`=€mÕÂ"\7,ša! ÜÞÔj½µ{nP÷”Ý÷® œèùÓn¸ãs; þ»vO·ÛÿíÓ>íóq€¥&ŠëF£š*<ô»ßÍ$füў VæáÍ3Þ’¸øUæÃi³‹göXðó^1ÍΑ™lÖ‹ àIFû ó\‚;.ðvò’_‹@ 0Š]€KX&Œ"‚·5ø_©`ÓèO§Zk4×ÿh$ôú‡Öÿë·7Ö‰;ðJ@llá=´Âa4Vü·ÂCîÿ{ˆwä" é‹c® +À$^u¥ ±åàÝZ0àjÞÙW·mYŠû|G6ª†l«–Aµ7‹ìU®©1½?éØðÜXüÕ"L Îmnÿ;bPrJXî“Ä2 àßf{ :ú9Â÷& +šæf,qC>l'`ÓAªáé»kªöŒ‘ÏËŸ·âùücª*û–­²$³þ_™¿DOŠZY¸kj¹¸ ‹ÞD÷ß²˜°þ6å û5·Ù (ÀÅ?£˜íu¹]À"XÜóÀ;-B‚V,0þüÉæ¼}û»»‡ºGÛõû´Oû|Œ€jÿÆú+b]ss_2gÌç ÑùÊüüü7@;‡ë½‘D´R0½Š»-o&²Y`#ìò0ýŸôæsoº5?Q±Àõ? ‘àQ€TM…Ò‘hAøxç/Ì ŒÿTýÿáìÿß…ÿõÍí@¦½œƒ…PŠ˜E%À°x<Ì + ‘\d,"F]ú¬ýùU0Åà\ NïÈÈŒ¹•Rw#_>"—dfr^µé©Ì€Cÿd +~ }¢9ƒƒK‹‹uyÍW‚ÎÑŸ#×W(!ÀÍ +Æ—h§5 n¬*´‰;xd¾eG.jù!0?-Û„üT²K¸|FÎ[†ºÏÒ,ãt^•-Ùr£€ ù#º®Ñ­•‹LUãšÌÀå([ª%r€ò´|cc9ßÌ€T·µ°.rõÎ + +€g‘·Þ,¸¹@ pÿèj­¦+Zø¶çìŸÌ:††N´á¿}Ú§}>Vp£Á(‹ÀÂ/ç~—ÍfÏGÓߘŸœŸ'üœ¿­@Jï|2Q¨»LÂÿP’ @vd²ðovf½^6˜ä6?„ü­ºß *pŽáÔÄÒt=y)y>Ž‚.ð+üBûWCïÿæ¿ ù!Øßû—x +ÿÜÈÀ + \YA6f„ÿÌÆØ €. `¾ÌJØ¡ÝJ2àz>ïò¬Ç¥}?*[Õ¼a—yÒΠ/Û|yÑ PÓq*òãŽÁ}øŽÉ\þ;¥œíx + kcH rŠš\‚ãæ‰x¨ô·à1ƒ`AÖlNÿËVQ¸ª]¤×ù“Q ùeÕ^á>›Ê}ÛcÛ"1@ê5C-zŒ"j¼›¯ÿ‹€2l€3,oܨ6ol þÏoo Æ¸kð,cêà€Ð„!h!HÝNnWBÏÏbð1äó µåíÓ>íó±Ž^øàsäRúùè|p`BÀÔxï¸Èê«U +S:•ë!EÑCɤÞÕÅñNØåwfÑÿ+lì{ÒÿN,rýÇÀTÄ*Rô)=‰À|¥N¦#TÇbÿT•áý×ÿ@cöGËÿ;¦î§ñ Ž]°IP%ƒ4 át; pf°ƒà_ïR^~5ñ2á?&ôÓx‰äLn¥±¾ ‘´¸&í;’‡ %¤vXp ›=¨ªºK†á¬:TÀKN]EC ¾H¨/Á€áEúø, ¹¤ÚŽQ÷6ìûxþQ€«,j’lÃq DÈ"–55n,«$}V\¶× Ù°V\ à}ð.ü2P‡Ê1À<ùç¿´&HΗ3ËUzÙ¸±€ÞM-ÝÙAÑàvhéßá5À{? ø¿vÝE÷ÿìÙ`Oϛ턾öiŸö¹ßÀ:á?œué2–|ÿµ ‰å|$¾ÝC `¾Rá¥fXï­<š +½]HrýŸL„@óq9“n©Ï#s8ñ Ë$ÀKØ?‰+“æŸ#vÿ1  W‚…àjWÿR)Æÿ¥ÛŽwÉnwÀ` D˜¿šâùš±peE,ÿ ¹Hn ‹€`ú¬ÒõƬ+0Ù"ú!¼Ù¬9Û0NJ>4ûãû¤2´÷ÐÚ«*þ†›²Ç }HáqìUñíUèÿe²¿º#;õÅ:›úàðDÀ–Kåœ$yì“u™Qž‡ ²|MÖ ùÓ4•Gÿûrœ;úq~ÀºD¼zZn"Œ@ÍØ% +obHùƒXÈ+Ð,z¸þ7X¬Î`•…p¹5@Õ¿Ü\¦×ËÍj¾yóÆ6FôŠÀÙ;æL¨eº÷3ãé–Kþé#€Ï ·”Ú§}Úç~" 7}±YKE¼¯ýƒ™í EÎG£ßcü¬ úϳP ¢r=’Tèu $€qY¹èÿ‹º…ý¨ßïw À¤ €^xº­—%$&èç8àP$’>_¨+á +×é®Û¯@ÿÛ ~·ð¿~»À  À•XŒ¿(@%ÓÊð ´0KÎî˜í‚З1x•ŠÅÁ€Äg¼¸º•_¬e9‡÷5Ç·Ê>* Ö`àuY÷d[ ïs¶a³îÏ‘J‹>¹.£þ—`¸È3hýì5CµK>qÑÔ¾ö9 ÀŠ5 ´;.iD«+ô.éÄTöÇ2ʪì° Þõ£»†kôp7¯"<)€ €%- @´Ð ÈW·×°&€_œAw¸=›…Ý5€ÞÚøxàž·Â"© 0n üϾØs†Î‹íG¥öiŸö¹¯@³ ¼m¦bæk¿Ëš3þH:ô|4úö7æYP™/` M°u%‘ý¬©Ñàyááv²ÓD0ýÒ'ÁÐ/–ý¹ožEã¼KtYog§p  vû¢ÁB6=Ø÷!æ—{]Tÿ­Àï3ÿK[ ÂæÁÁÕ1a¡¬V8 ˆ³"cј}£ë ¶V^U”—M×»CŒDWrKÉÀͪ%ù.sO^’âù¸·W騲+¹ã“³!àg +°ÊûN½$ÕëŽS:r½$K× þë‹¥5¹ähkÐýK>Ã#?fŸ¶5x cìO< ¨E Þ‚E[“4™>$ýÄö‘WTͧÒçYª×æ-•§ª¸/¸_À}ÔüÜ †qÍòÈE,C5\`µì¶ÿ[€<à‰·µð®X¥ãbzÀ僮¡€µð84½Z`ü·R„ü\û‡ñª‡žÎÒÅpÏð™áÝmÿöiŸö¹Àz“À¿†1@&9÷ÚHb$J‡ÎG£…žùtæ£ÑùÊ|Ò¯Ê+Êäˆ÷œØŠ'🛛™aÉŸ‰¡­?á]}¿î÷ûGyÐ9éíÌf ý±D'(€×µÕõPú*ÿ…H!P©ö×xø¿Æ‡wþ7Ëú¯poû€ˆŽ­¤ªX1¨¤ÂÜXa7€ Çñ0€ +`L,¾áº¼ +¶bžƒã‹ÙddK¿ÿ|¦|ý$œxå8t€p™­Ú²Üjp^ôrPÈØÿw$GªK9yqñº¼ú/‹%  ä#N`wJ²±è (Ú qCìÈ„úvÉá”AÍÖ ìûK÷ûò¶eü$o=ç³ò‡OÒ7F‚î a>¡¿Mµ½jƒÈ­S€âÀ2]±ÊˆŒµ€˜dh.oÜ@À2»åollk ·ÒÏòÀ…×`ps €¢xïñŸ›p×øN£üï!ü?óâóÃýmÐ>íÓ>÷ ¼]o"^7Uð¾vAñf©(…¢Ñï½ývp~>¥Ë÷"ºB¸ _|,ü¡î™››»0“õºÎ?\ïŸãšc<ê°r;YïHVp€V"‚@(Z(+•@ª©ÔRUébóosðßjÜþ[ÿß묣«@Ä¢™‰Õª¢ À}€ðJ˜ <ìˆ@RDÏò*à—•Íë€ôó'Ó±ÚV~µyKþüsÚ‚!kñ}q ¾»³c?‡ª"¨¥þËܨËúNÝwú_éH©.´H.Ò‡‹¶, É6Nkìü#kî A+b ID|Ä~·dÉÐTK³´©Æâ–¥‚XjѰ¸Á o¬XÖOí2Vè£Ð”Uh=H‚ì7Ø ø¶€“€Ð ¨º6KÛØXâbð?v 5pÖ2 Fìà À€°À=<Ëw»gøE"ÿWú_i3€öiŸö¹oÀR£¹„Z¬ëµ¹D"«L…ô©àÛÑh´çíyBÿpðÒ¹‘¬ÎÌb)ÎKHþÂû¼Y×ÔG^¬@¿tüRrj6tijj–€ß­?ÄÿYì °Q@V(&ñet“]~ÿE +‘h •ê RXØãú¿µÅÿáÚ¿­5Ö?ÀX€§ÚJŠ€ë5.»©@Ä„ðØÅ$Ì€Þ«€]›à1 ÄËŠžŒDb[úÕ6óßuFv).çóªf C@.ûÕ²Ðb%0gc“F?„ÿRÉöY@‹Ò¿”J§µR}‘Ã$z2ì"òÿ$¹hø GØxaœ¢!û|š-Ç59þXÞ²þ•¾%iϨ’e[ð:LÐoI܇X±„"Êý—Ö!ÿSE“‚­yú¿Æb '@öj­d–1ôç—«Ëlç€ kéΊ€X´ü€E&P­s€{>lÎþydÑÓÃõÿîá3Wv÷?ÚßfíÓ>ísÿ€F3SkT3ɹ¹Nåç =¤|u>¸ûüóTûƒÑn¾?bR©Þ5wõA)?éF¨â§Ø5OEžOG·BI· ˆ=|> XÈBà@—P@€Ú?Œ¥z…øÿæú;€ÿM«ß¥-2€õÍ6@5“jÜÑ`W€Ø +z …ÂS€äìB}VÑ•7n7` +D?h:RØâ¿@3¯>V„K<Ëy.¯[“ ˆ =mÑ@ÿ_öÕ1¨óè_ª—|‹¥Ó—Á ¤Ë§C+!ñ—°^¶%YCÉ_Š£ €å?Ö €ðŸ¸ŒÖ>]æ<¦å<}ÕŠ—,Ã¶Š„órž•ô¾"VmË’=b€{¸+ ê +Ó* 8 (íÌóÍå*²¶µ°pýtÜAÀàí6À@`ð€ª½ƒÀ½ý³s¥Š=ôò&Fÿ/Ÿ9Ó/ÎÞ½íG¦öiŸö¹O,÷›ÍTá…§.$¼^àÿ{AýŒy"~sdfÄ«ŒÎŽú'ÌÓ›8gzéÌÀî‡÷øºD½\âÕÁB´ …Bîú+D¥ÿÈ_À+p²Sì`­Ná<$¤“$õU©ªôõÆúÒí§«þ×—Ö·4¸³Ð"ÄjÍTë°PdÃp:€¤0šírÑßí˜ÌYèþ+[ü'ÈgäÃ'5õZ䖹Ŀ®¿,6lñ–(ä©üwûëø;fÿ×Á‹R©ôÌ¢†x ɧéZ[ÿ`@|ƒ¢&ÁvÑD Œ¼-YqiÙú¡û²êS©æÿŽj¶ó1KTûF>Z-æ‹ô6D0lq” b´Â€|Z"À ìPñŸoÒ%:Û› ªi6Ô;ëNX ¸%²÷Þ!0>Îb€{ûg7hQ ÿ›=Ão÷ ï¾²û +¡ÿÑ«G÷î=Ñ~hjŸöiŸû‚Tƒ¹L¦Q‹y粓æL‚ ¹LLE{ +:¡ÿûæ9ýÙä³ +Çà ä÷ҵϚæ«.&öwÍ&áäûb¡@دëXé ]R?btVÎc Ð §€ÞV‰s°MôˆpT”Pÿ7ÖÿùïÀÿ¥»|…Xoå©Öè)UÍ´8@x…ý +¹Hd,‰À¬ ÜÐoO€ÿ…Bj«-«,•>¯QE.Iq»içYnçîÿË»Bx»@€8Àu$Aøw}QÀGJ§OÖe陕ÿR]“Š’$ÙZ\¦ç8°ß.Ê­M@IÖl#¾O“U~Ëgi¶h—¼}EËÞUeÖ#ð{Uk…ø¨‰VÌ#°À†Eà‚¡î É­@U¤ó`~³Є°šo²%Ð6g +=žÝ5€³® Tƒ·ƒ(ýaY¸uÏ5ƒ®ô÷÷Ížžááá3W†_!ðôÞ½{÷ìn?6µOû´Ïý@‚©ØJµ~un$kz³ŠIø¯LEBJvƋΒJy/7‡â*¦HÆë‚W¾>;›KGÒé`°+ Á¨’èò›Éç/…’Sb ´âXm9´ìyp6y‰0•@•@Jä÷ý1çßÍ©Àçÿî”ànn}©QeÙC³ÊjVV*+1^@& wÄ©s(€îræ;Áp*³Å+cHÆá"¾ä#¦ú:¯ÞÉÄœ{UAJ¥ºo@‹’t}Q’O—¤Ã_“ŠNýäIŸ#iTùkq¼ÈEM£Kÿ… ^¶fûTK’1Ó×p’‹xº 2•òôahlàŠFU½ñe5_”óyùûÿEÃ2®±øÏR9ˆ][.Õåež°çnÜØÎ4àu¶ÓkQ¾Þ2 +ßäè=ŒÆØÁ»×kb_øßóæYBÿ7‡Ï ÷÷ÓóÑWŽî½zhÏžC¯´œÚ§}ÚçÞ€f& 7S³/Œ¼‹¯^ñ$ü]fsÿã„z¦÷…‘줩øg‘ FK¦üðíÁ¹¯À>Á‚âï]÷¼· ]€P:ÈœËóYq¼L\g@“ûô©‘¦ DÞCûÿŸÿ;äÿÿø=†°ô! Sk4ˆÔªÍZJ(3+° IŠH Y}V„¿Ñ¡£Þ…vE2RˆÅ*[Mw_.[ÒTxôª†t2ù½ò€Íë€ àÎD äÔÙ¨.Õë}þ‰ëZ©$->vò²Ï)ú¨ü/iKþ¤x1î¿ûÕ¶¬ùdàŽÿBshK¼øï‹—á@¬ÆY÷W¤+X + {Ó€n F>Ï[‚¶Z,Ò‡„,×ÿòåo76ò™j>#ÈÜæ5@^¨ëžzg[j€Á³ÂàÖÀ``ís¯ @²0«®$&ß¿ðY3™+¤Ré÷³Š ­ßÈ #„þ(zßà^Ás1¿õ*œ W˜ڇ …Jrª·¨¬§º§ +%CIª™Ñè‡û/FÄF^È¢ø×ÓiÿEà*¬(³…XŠðp,†à&Ìÿ!œßñäÊû>À n£ý‡}Éï3¸Âþ£€jS¬„Å2 Ü8@ïB@H‘@ðßD°BŸ¸e`•µÓ_ ’Z‹Ç÷±ò„¹Æ¦€-^8!Ý8c¤I‹ÏväÓÏ->ç+IŸwÖd麤5Y¢úµ¿$cß\0äV_Ý~Õ"ºa«r‰ð݈Û‘M]†û¯a/ô¡°V6íUöøi^ö¨rÞ*· ‚Wx†`”ËùÍÀ²0°šÍªüßÞ(€¥†P|ƒ€ÿ. h­²ãÞ-\ŽÞ ï½&ìýËÛÃoCü÷lÿÞ«G¯öïÙsˆªÿ=û‡ö µ[íÓ>ísÏ aÚJ¬Ë̾ ¼‘¦º>µTSÌī旻”/w;1;6»6F5,¶"Öå8§W\×Ñ?o4‚…H4U £ëa%|/¢cÐR€·3;3CØÜŸP›öÊTFùìl:9V@T/±xóÕ>¼öÿ½Ñ¿‹ø\¼Ó3hý÷nãC ˆH`%€PÆ` ¼™ À~¼îBÇ"»ˆ @8¶õ63Üw|_9¢rÍ®- ùGpòí3ì83[a+ gÛŽ ©?q€úõEÛ#=ñÌÉÅgNJu­ôXür mÿb<!•ÿbøÏá²Ðlš ÇmËÎn«’!VþŒ¼uš +~[¨ÿ 5o¸ËEzІk­˜#‚V Ûü`Å‚ÀjY ŒpÀÆÆ¶þWn ð +À0«ê¾ñ&°Šaæ¥@a ˆ|€ð=þ»ëy“½ÿ†‡_Dýewÿ•þWž=úÊ¡«ÿ÷Þ={÷ìßÿŸö õµ@û´OûÜk0–«D²¸I‡ AÂ߆çRrW=@~*ò9œ7Å¢ùÌÅ|t¯GŸRˆöT*Á·#•Ú¬^’¨ÿõK:½Bb€)œ€¼#f¨Œ”F^Óë5C©ÙD8\ËôÒ¤RëëZo þÿXé¿ÅŸýCøÃ2€æ:(@­‰•AØ €e€B ûßÐј %ÑÿO +Áp8Ö¨mõ_ac¥,©yû9ªÖ M“òPÜÛÊsxõÆeKTï.vC÷]¿¾X’còõ#‹%G:üœT*¬—â—ã¥xI‹kt‰ÊŸ)”=ß„ÛO`Ć2ƒ¹•§g~qÃ.€ ²Å|ÄVÙPЏ€²›B$«Îä @îÿ/ãÅþ—óM«¹ÑÜ^ ^Œ¾áŠ¡xQè ¸%ÒnÆkTýãê½þÃãÅœç¡þ#ôÇôÏ¡CTüêÃên›´Oû´Ï='³c…´wNyµ+I +/ñz\³ÊØÎ¡y)Þ—ƒ\®õº)˜€øŒp™ÈB¡PiP2ˆ*‘`AGàRr*Ñͬ’0g¨ôW&“‰PÞcš‰‚BŒÃ|y*Rè;Å‚p,•©ô.ÝðûpøÿH¿†d +Þùþfƒžßå1@…žo@°Ù˜Õ•.,;ÒØb¡ßýð[þþyK}`{ħaKŸðÒöqð.öó°`Éñ–5³xdÑW"Ï•¯×1 +¸¼X’_F$ O’J’£ è—ý5‘ÈØo¸¶Â¢°YÕC¹ÇÖÿ@y,æEöga¿Ÿ>²’Ï_³ î ±}p_E†ÿTïÀ^nÞÀ:€U¥&³œ¯67nlw€§þg¿ßóŸß¤×Û3€³"—nàÞãÿ|‡ñ|¥ÿ •ÿýGŸÞ{O˜þïßß7=z¬½Ø>íÓ>÷ž,-Lé/Æ¥“ÁÂfa\k¶ð¾ÚûrM%›îá%z®™ÃèÄÞ "¡t ’Lÿ£…äÿº27— é *ýýº’ÐcAÝœûŸÞ‘φº¼TS¿¬¤b³©Úÿ:©?^ÀÐÓç£P€gKb +Ð Þ#~–.DÆ. +Àƒz= û +±JjË{€KK72yùðç%˲ãñ½þ“'ØOλq”ìr|ÙŠ?³Ïçó]—âXÄWegßõÓ’ãÈkNÝ·&—®£õOLø/Å}õx¼€I@œíM|õöáÁ>±Œ<Š|Ñí7ÜMD—ð ÝYmM,|´°ô/Ø—ýù.hnl@Èý€2fÛm¼Ô‹ Àî9û}Œ†¿1<Ìû³=¼p7x–c°ÈA÷üøÿ"Zÿ»¯þ?ÝßûŸC{õí¡3Ô×¶Oû´ÏýA–üú«JZmªÚÈ76î ¡œË5ZoŠ‚YÌ*cÁH:HU‚ó‘t4‚g^×%Ý›MD"º>J+Ù™ÓÔ¿ï½”4Ò/y“‘‚®ÔR ±Z3+¬ÈÄ©ßCw™éOÀþóÜ$°Ž6Àí@8Ã*€tšÍ“„ûTüƒÐË<‹#žB!œ +ßE`i#_öû~‚í¼elÓ©„›¬¿G÷ýzw¹Î*¥}G®—Ô„þ-–dGªêKR]Z”JX —4z×ðÔ‚{³úŠ~ÑùO×úªû ùý†û!Õ…† ÿîB€ŠfÐÏØýçQÞrm€ÿ-yÅôçËå|;€7¶÷¿rïÿpÏ÷ÿÃt¥§çûD†ÅB •ý¸õ?q€{þ‡÷õÏ\ùu?žûû_yúèUz:Dø¿gÇÞ½{ÚKíÓ>ís߀ +Û¢v*‹ 9:_\Ù|K\u!C‚Êj°,©* +´Þ÷*¡t(¤+z!­(Ç+µä”€;õ†b…Yo"¢báÂZ£¶K5ñðzÆnôf*µÍâ|ýö¶ßÇþì&š:,x 3€jŠØ ZÌt¶@W“‘1¶< Ï ü.¾¹•—}T«ïûÉO~7`Ó»lɆ%¨œ Ÿï'G|>Ÿw=}T”5¢%)@’¯îó1àæ¿ä*âš+ÿ¿Ýúÿ`ýßjç[›å>È}›¨Ë¶j¹U?hCѲ )D Å©SЈþéúr~ãFÓ°Ëb f¬ü¶+¸ ÀŸOOëd€èpJpÀÜû{þÿÕ?ÕÿWÙøÐÞC‡vµ“Ú§}Úç¾"X ˆëM*1"_§§;¸@Ã…K &õ‚ž`… 1ÐH£0ô‰(/xg£‘P4”œš“ sD™ÞH¤K7JêÉ`DyÕ,$ƒ©Tl¡ÖˆÅzµXj)ƒÜ œºc p}[‹ÿÖy—‚ ¬ŠÀJ,IG’œ(JÞÿŸE + Õÿ …`Œîý]t–š–õÒcO|å1_ÜçÛìÖò˘ȫB€‡®¼¦bO’~ó9Àõº¯ä‘ÿGÏÿ.(¶€qÉ% ·Ëÿ–ôo³½/ð¿…ï·§†;àÞ@«@§¸laC C]r?º\Ê¿æ2óêÆŸîc9p³¹¼±Ýÿ•gÏRùÿ}*þ¡«¿ÂøvøìY~qýƒƒa¶ ¾÷yO/õ_yþÊ™þ+gÎô}ÚÅÿöRû´OûÜÿ€+c6åo®7€Kpè£ëë7ßÅ+ÆKŒbT˧*áFª‚4€HhVñ*óáÂlä½@ª7ù~$¢{½AÝ$@Õ^ýÿgïzBÜȯtzE›*z@iÜÁµ‡í¢«ãhDÄ–ü‡e·ØU(*ꪥ³ÙbäÚ°‘…bU‡j¼Ã†\âÁU¤m&Ê2à¡ÜA>µíYÓd —@¤@LIj3‡}ïýJê¶'—±ÝrÛyŸÔ²úou—¦æûÞ¿ïm/YêöíÛj­î&ÆÝAâ[ (znÇõ‡T˜5;§Îý„§“Ä4öxž0œ¥°02#Õ·@ð´Ýo2k6 ÒûXW”¦-çm9ìbŸz _l+ºôž":±,åmt´?'c`tT>Uò” À—æ§€ñ, =“OŠM;~Õò˜ö ¢mf%â@£úD«›VøEüïc@>ìw;cgÏ3a ‡N½°ƒöº·ûýƒh¤‰b2 zŸn½K}ÿ \zCà~lünƒÿ7Ä`0Þ0ЮŠ;yážÌn#|¤Ï0èû4¿ç’6õÇ{^}ÛóÖ\«´+µw̨vûN[½R/•jço×kK‘á]¹ÒöϵþÁ`ˆAâ'¢<ßrŸqû›Ûÿ­á¯¢a€ðT-,eˆ•€iþ 5ï^í¹îÍG|£as Qm÷š´ß”…õ¿Þܧf„/µåãÜž­Ë4ܯ£@ àÏ‘ø +ÿûáŽÌoëðyÆ3;!ç9öf €t¼~~/ÔŽ§¨ @ß]âþØiá÷@ýš¯a¾¿;µýÁ€°ß%àÎXû$Öz4Ð +ÃVw €Nçlù{ˆ¹ÿtÖ=!Rwà÷? o}|‹¯|ƒÁà¥XqFûÃôM<³˜0,w¸®aÖÏ›Q¤ªj¤mW­á–Ÿ’·VûßmÓ¬ßñsuÓ¬ÝP7D®z®n$‘‘ô€ø‹ðøÓÅ1;Ç`^Hèm(MšPÑ @í/ê <¯ÁߨV#/2¢oÈ`Ø='+²ÝÔe¤rtñ%'>ZÀ#ƒдø–à5EC[`ñ’?ÜÕ?·%ésÛ¶?Çw§üR@–åã.@{fEGLú§œ ä='Ð÷bš HÅvø?y¿âˆL~ºHù Æ w|#ÓŸ±óÅ_È p-`Ør2!UNÿ5Z»…}ÿTXÀ;J€ÂïáíVá÷4 ðöâ‚€[ùÊg0,^òû§a?2?>tè!é<%%„écøo홆k †‰ +Áþ•¥;÷ séÊùè ~[u¿¬ùnæK×½û n¹VyoÉàØ ÛöGnxvÎu7¦–À–eD´ µ @ù‹ø_U Ku¿ñ! ´Ö[ÙWlIǤ}lË8‡‡ëŠX!>%F= ~1ÈÊGë?¸bòŸ”V„˜æ¨´ ¥IGKéæû0R‡/ôá§²æa7¤ð=œ.÷þîØCèß…'Hù öáq$â|ßù$üä—Ÿ¼óËŸÚ;ÿ‡½®îÉÔ0‡ +@çý‡$n"õ/4 "ö.¤]±#Xxð…Ï`0ßzE?'I÷E~öÍi]®A<©C·~e©™WÎûíúܘW6’½Ì`•×:ç ê÷3™oý‡tŸþáäÃìÐàŠ¿†i ¤}, `½Ná¿¡ª_µ ×}sôè’nÅã¤fë’vÉ•GרEPv$Yw° <¿”@pH ]€ü¯Ocšgƒ€2ÕB ªG?rýmasˆ ò!ÕµwðSÒGڇЂä`e`VJÐ)”ÿðEðé§²ôÅ/Ãí…}­‡ÎŸÝþ<::Ã[ …ưq£±°"4åÈ-ˆÿA ð•Ï`0X¼²ðxf¦?œ¾‹9óA’ \r­¾–˜WjQdÕ– ?*¸I¯ÝAwŸL¹=t÷ö2nÇÈ$£…É Ñ0rû¸í(ÂýD®á›5JP&ÀtöǪÚþ +;àsƒ@¸š¤ØŠ­ëè\á8Fê@Ú6(Úâg øëýhÉ/ÅýiÂf¿ø]Ãê¿æØvœv¤óJÿ›Ýud'þô0˜58˜:ÍC¬ + ÿ/l‹b5@ãV§.þëE±ç"öò•Ï`0X¼R’Íy4€%DLΡ áZ{{õ(qëuKUÍ/­ÄÈìY8äo®a$ÃA&³ç­^gà÷Ïÿ‹¿Nl¤íÞÁ^¹lª_]ŒDà|Ýô uËÛÂFG«sm÷EŽ<«5×ÅNü¤¼B]x¸£møä>¯Ø±Øñ‡;‚e±Ëéæßg¦ÿcªýDZÆq ÇøÆ8¸ß¥æ=LÐO[ùh…/Ð5ÖüA*èN ºäüVjÅy‰,p›0üñ´‰U6+ìþöaü‡¸K› âžX𙦣€y¼>?‚Ð~á!ÆÿÆB±X\@ P8€†…ÂMaÄW>ƒÁ`ðJ òø_ìÄ@àÿddX{®™{&ðþgeËW¿4F @ô èOÒïìe,×µ°åtOÕSR,i¸´ïX͘eoë?#ï|½~ÞÃ…‡¿(á&ã­Hm·}оá¿ÈŽºA×Qlm|(|Ç$@@{'uë Ù¶o\ÓcŒ¸g@î·…j@0mü±kû›;a,ßR_òíÅ0ÐÂÂ}èÀ±ÉDïØ2$u|C‹BÜ(L3 +˜ž°•O•]¬C8ŽüÛÍ Seÿ¶àØ»®žÌãõY{X(4¨ö¿ä¿\D4Š Pˆ™x¸ÙÀý{¬ ã[§óc)0"ï<7ñ-+ù®•Ù+gÜA¹lŸO£»2*õE½ß]=ÓçjD)€þ #Ü ë@Ň[ØþgXªwÿ~É4ÿ©pÿ +Þ· ÿÅR8„¶¢ÛvL$¬Kºá–`±À(Ëøò¿LKþïëbÛ/~ ¾€!òÞèè7"S^ü92±9ü`2tÐÛWs$Ü=¤Ø©w€#úÌ#ÄThˆS'¡ôpÂVØ™:Æq:<@ïùŽÖÒöâ–?Ÿ@§óASÿâ£âÂÆ# ”¬ŠØ ¸Aö€›…Æ(‚ÿâKŸÁ`°8%`¢å¾›$Ù[–ÑW3 Œ$³g¹ÑÝt­¯`ÿaºÊïÙLÂTèo8èû¸æØoãR@õ+µ\«m{f}i©¶µ}¥ªTUµ í/&:lû“ŸH¶-Û¸ƒÏx\NwðÑz`âøXŠ!övtY0²Ž ‡Ö’y0Z÷ÉA¬AXT>ã> ôÁ—Iù7ò +n + ôe ð»±P€T?€ÐŸÊ $*b±þ'>¡¾ô {¦ÿAÈð‹ŸC{àù¼:`üìO €´°P·… á pâtßÇ4_ú ƒÀéÑ%ð?h€!ez¸BþmwaãŸRÿ 7ÿagÖHx61a€Xr좼JêwþîþÖ?þXýx+Â¥G†‰€ñ‚‡š`/`^×›H·À¶zóš#’]°¨`pÞøÓ¡&éòô¡£Ù´î·@¦Eú +ýq¿´0'/+‡öµK—®)Âçv…Y,Ši6AŸÒ|º: žÒÿñN¡“ …þ‚Ðdm·;Á\LñŹ…ÝÿHüÅ"%6–+ËHÿT +˜UnnÜlll6øÒg0,NÄÿ>¶÷õ÷\·wlä?%ÿáÌÓïXœeŒú#kÀ.¿mjt×ôjåRÍ+y[¸èÑùXÅ…€m×j¿0ŸaãŸÝÔ›ÈÌv,cK€Ý +Òå½b”Ÿ4€ã¾`ˆËC ·ïâ'¬øk²Þj…A—S•^Rn\û§KÍ<þDõbb`—æt}Êñ8_@uýY’3¢çoê!t¼VàyöŸ.èéáîn+èΩ¡cXx¸Ðx„Ôÿ}*ÿWŠ•exûM¥QÜ(â\`¡¸AO66®®³`0,NóÉhlY.vöh‹î “þ‰ØÿÍÂhàÓ\ƒk´1p€Ë¼rÍ3Í_À“›ÂD!`E(Ë2^øPG bEnê¦âÐþÕ¾NwFAnîEo?G‰C$cÙÑCÂ~[0³Æ­þ8ZùJ×Þû‡÷Ö/}(‰ž=¢wyÚ"8k¤r@ÊÿÓåÁ$¨‹ÐIŸg¯“?™÷¨V‘þŸÌç•\,ýãÃN£ÿåëËÅb”ÀòÆB¡±°Qh€øañúu¸óÞ=ƒÁà43®ke0öOF=ËCñÏmð›=Ÿ.8óö}lt±ÍßR1ê7M4 ÍÀõZÙôöL3“‰0_ðâ;B­Ùl*Ф@\o+vÓ–ãV F÷5ìØ×B4ð·e%t4) <àÝÀi…­`ܵøPR$[É_ûðɵfs½ë +yQG:'˜’¿L + >ò‰ýǤ¯œcY0Ý"t¬p +°…r0§ÀNçG……Ìþ?Z¦ÀJey¹BI¸‰‰Àbë×7á–ãKŸÁ`°8Í ÌÊ °ú·g=Gî'Òýh®3JFÃñ‘H|ߥÀ®Ñj«ÑŸq%ÀÔ¸VóÊ÷<ó.Ò„½/^À|ð¼´nï7íØÑmÙ¶•õ÷p2@ Ñtcm\Ê뀰)@ úá¶¾@Dþ’Çʯ.=Y_WšÍ¼ { XÜÒ2€C™,'Т7ÆøFê€þ‰Sq@™²Õ‚«Âi€T„ñgáÜ&:× + ˆþa‚¸W°P¬VªÄû×70ò¯\¿ ü¿¹É€Á`°8ÍîZ**¿ç'É´çÿ9<ôG£ÑÓ7©€+‰i#P›vbÀ+—D V.yeÓƒe¨`DÑK¤:“.𹼯ì+Ô ëʺ­Ù±d;úç²ÖÇiþ¹õûA·?úÀÿ-ˆáëôûЬoÃS±!8-î#¨CÿÉK·an ÄîM¬Àh8ˆÞ +é²&Ó´Á³#Ç=‚T h…-x6¯ÀPm<ö?˜@þ/î@ü_EP-^§ÛFqØÿòææG¹Ë|é3 §)®oõ¬Ôgø\› ôòþÏ)€že$®Ñ¶à®¨‰=–k¦·çEÆ€aEmëeŽ5ÂLÿzSiê›ÛºoOÖ•÷ó±=  ü1‘>Òw|¨Ë¶"Úù¤¦­+Dû ‡þÄò"|l 1êïá§Eø8Ù ê"O`KšfÓ–a´@«Aü²0mHÃþ“eú‹]Âè+|4¯Wåb¨ÿÑò÷‰ÿw(ÿ_©îTªUÐ×)÷¥ÿjqsór.wù#¾ô  €SÄ Á9Ã÷Ý¿þýßÈ“–Ÿ–Ô$À=oJÿ¤<Ïô2 0Ð~™@gr„É}i_ÙǸ\—ÑÏ7V[Qö?DRVòŠ$IÍ?5óÍ&ò3R5æùcPè ¨£M¯.Âÿéª]ŒÒˆ¿,vzB\.,~à=Ž-šð»ÓÑ,Ðú`X”¦œ¯…ÔŸ€=XŒèŽçö¢\l,`äÌ¿³S©ì@ü_ÍVwª•Jn³²¹Y¡€Üfnó£•Ü»¹Ü +_ú ƒÀi +€¾Aórý¯ó?ŽÔOÞÐs6ì$½Œáºm«­ª¦úMÏ«•¦üOË5dÓ3Û†µö’G›à* ø½æ>NÐ>_‰ü $ŶŸäáI €yÉÖã4ů 7_òöB 0en'ž…î³É~'5IGG¯!ÜJ€‚öéÓçŽH -a(FR{ êMèáãh~žÎCÊö¯ì<®>Î>Îå*ÕH€ðq³X©lVª—sÙwWþöç?`À`0Xœn¨Üøîàëãýolì?K^X™¶kXj›pð^¹VªÏj÷Êeœ4½È¼ôÁ&GhýóžÝn§Å»rˆÔKY{ÝVšOö›ëy%%z=ÖÓî}b{YÆò¿.jøäëç¤~³1>1ê/Fý„He®àüAs_iÒQq¡l£U€Ø¤OÉ^“ãYó_HA?6$ô´n ƒñ_’Bcy¹‚©|ÌVW«¹\î£j‚þÊï6¿WÁ<Àåþ?ZYùŸŸó•Ï`0XœîÇݹÎsóþÉhô†Ÿµag5³g 0 b t¢  T®ye³fÞ5Û¯äp“P õ8¿ß´ØÖ±X´èO»ôf „‰/9ûP1€züœ©2@“ßÔßzÚlª_ìö# Íýuø2‘CP( E4JðÞ3€)ñýGÝQó}I’ºÿýïTsÙ²‹Ù«Ùle@µZ­7+¹Ür+@ÿßÛ¼üC¾ð ã[§~„ѳô?FÉÚ†Aæ.5Z8ñgÞóî¡(¡ )Pªyž½²ã+’.)û—ž4íÙ>¹ø;éÞ¿xjäCvýÀþ’ÏœÔíwZ´Ç\~ZHÜ  +Í- .rÿ±$)¢ ¿Ì‰iûO:î Rþïváå'ýpÞ/¡€å ÿÇÙ\h²Õ*<ËmV‹×sÕËü¿»’}—³ÿ ƒ1à>Cÿý7>úOÿa¯l¸m`ÿtÂþÚ3Ãæ«œmÄy@-¶›ëMYn6›äæGëúbÙqŽ úO"–Óú>åÿmi×Þ•¶DMÔ(–û ¯K6mù¥%DíÒ~S‘lQNXÙ¡#ñÏ:þ5êìâ­tûŽŽ»:ZÁœ_Õñµúx§ºø8W]Ì®€À{µúëJÛÿ6¹÷Á`0æ)NÞŠè?ý“†ƒ½rÛU-3¢@É,•JõÏ4@)z¥<êÂãBwÜØÌÓˆ¾ãÄÏÒ¿ðèûiÒ—&!„·•¼žÚùÐÀŸ“uÚâû¦-ÚøEÎ ] HŸ¤}p¨ À,Mþ…Çqÿd2鼿–Τ1Mý/Âíê²¹ ÙÜJ5[ݬüæzõ»ß­ðåÎ`0ó'Âÿ·çÄ ‡Ãdï³Èh#ýGžwo:°½]«o›æ+?àäh2éR¼© ›þ°*"àŸy÷ŠÔÆö4–ù©ƒOÿñ=[¢Gà~\ ,IN:H6>šØ<jé°¿ã ö˜ZýCìÌü“³1Ì‘h`'›]„°1›Í^€èÿBv%[ÍU½YeóƒÁx€2#÷- ÿg +`P>gjdnQ Wª—ê@ÿÛÛÛÞiuP³Œ}u…LbÆÿh¶æóD׿ŒÃûÇKh “! DŽ@¶pˆcçØÇÏ™õóݰ+ºùS¾ÇO Áð ÖŸœî/ÇB‘âÿ*f¯®ü4{aå§+ ²‹¹*_è ƒñú2®?š¼Mg«‰ù n©Ø€JµúIx§íl ÈÙÁv|Ǿ–Ï+6h€æ¯¯7ó¸9HQD»Ÿê@æµ–é[h’GÏ )ëOù½;ëèÃwðˆì‡“£Î¼s_Çaáfª‹;‹W³W«®^øyö¿g³›Ìþ ƒñz€ß³Gÿÿr Q<ˆTs n%¯Vº÷%sŸL Nc´ö¦‡¨^v„_H«ùd[ú4/a>¿%Ö‘CVíѵÓz]¸wǓщˆžnip?I¹þÍÐm…âòÎòÎâãÅǘþÇào²Y¾Æ ãu +€¡ïÞ²37ÄÀjÒ¾r»$ºK5¼×þy^¿Àd<6õ-yA÷dæ^Kõ‚÷‚ò»£ 0þ;“·ëå(T€þwvsÙÜ…Ÿù¯l^ø{¾À ãõ +€¡ßOÞ¾s7¬ÚK?¹]7#³æ•ðnÎó7˜Œº³Vüây¸Ýc˜œˆwúNè¿]U˜g@qñ¸š]ü—ìU ÿùêf0Œ×.Üþèèí;w”X]Ôîüìöý’W‚»·5ï_bD´?§Ô>éŒO?<æŸ 'oùÈI£¸³¼³³¸³¸¸³à*_Û ƒqÀÛubÀêêš·ôŸÕ·<Ó4·ÎÐo¢ óÖóþ3€E +€Å®ü3  €ÓV«ÉêšZÿΔÌ_˜|F^ +"þÿG|: ƒÀé+€ÕÁ ½ôí%Ïàóñºÿ2Ó?ƒÁ`°˜‹XVWÕ;ß.ñÙxýî|* ƒÀÜRÃ់׊Վ»ÃôÏ`0,NŸùO¦:C>! ƒÁ`ðW¥ ƒÁ`ðWÆÿX`!À`0  ƒÁ`0X0 ƒÁ`À`0 ƒƒÁ`0  ƒÁ`0X0 ƒÁ`À`0 ƒƒÁ`0  ƒÁ`0X0 ƒÁ`À`0 ƒƒÁ`0õø)S/{ž³uáIEND®B`‚ \ No newline at end of file diff --git a/examples/web/models/models_obj_loading.html b/examples/web/models/models_obj_loading.html new file mode 100644 index 0000000..ba0d080 --- /dev/null +++ b/examples/web/models/models_obj_loading.html @@ -0,0 +1,239 @@ + + + + + + + raylib HTML5 GAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + +
+
Downloading...
+ + + + + +
+ +
+
+ +
+ +
+ + + + + + + \ No newline at end of file diff --git a/examples/web/models/models_obj_loading.js b/examples/web/models/models_obj_loading.js new file mode 100644 index 0000000..e259738 --- /dev/null +++ b/examples/web/models/models_obj_loading.js @@ -0,0 +1,45212 @@ + +var Module; + +if (typeof Module === 'undefined') Module = {}; + +if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + Module.finishedDataFileDownloads = 0; +} +Module.expectedDataFileDownloads++; +(function() { + var loadPackage = function(metadata) { + + var PACKAGE_PATH; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/'); + } else if (typeof location !== 'undefined') { + // worker + PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/'); + } else { + throw 'using preloaded data can only be done on a web page or in a web worker'; + } + var PACKAGE_NAME = 'models/models_obj_loading.data'; + var REMOTE_PACKAGE_BASE = 'models_obj_loading.data'; + if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) { + Module['locateFile'] = Module['locateFilePackage']; + Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)'); + } + var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ? + Module['locateFile'](REMOTE_PACKAGE_BASE) : + ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE); + + var REMOTE_PACKAGE_SIZE = metadata.remote_package_size; + var PACKAGE_UUID = metadata.package_uuid; + + function fetchRemotePackage(packageName, packageSize, callback, errback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function(event) { + var url = packageName; + var size = packageSize; + if (event.total) size = event.total; + if (event.loaded) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: size + }; + } else { + Module.dataFileDownloads[url].loaded = event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil(total * Module.expectedDataFileDownloads/num); + if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')'); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) Module['setStatus']('Downloading data...'); + } + }; + xhr.onerror = function(event) { + throw new Error("NetworkError for: " + packageName); + } + xhr.onload = function(event) { + if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + var packageData = xhr.response; + callback(packageData); + } else { + throw new Error(xhr.statusText + " : " + xhr.responseURL); + } + }; + xhr.send(null); + }; + + function handleError(error) { + console.error('package error:', error); + }; + + var fetchedCallback = null; + var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null; + + if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, handleError); + + function runWithFS() { + + function assert(check, msg) { + if (!check) throw msg + new Error().stack; + } +Module['FS_createPath']('/', 'resources', true, true); +Module['FS_createPath']('/resources', 'model', true, true); + + function DataRequest(start, end, crunched, audio) { + this.start = start; + this.end = end; + this.crunched = crunched; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function(mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency']('fp ' + this.name); + }, + send: function() {}, + onload: function() { + var byteArray = this.byteArray.subarray(this.start, this.end); + + this.finish(byteArray); + + }, + finish: function(byteArray) { + var that = this; + + Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change + Module['removeRunDependency']('fp ' + that.name); + + this.requests[this.name] = null; + } + }; + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename); + } + + + function processPackageData(arrayBuffer) { + Module.finishedDataFileDownloads++; + assert(arrayBuffer, 'Loading data file failed.'); + assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData'); + var byteArray = new Uint8Array(arrayBuffer); + var curr; + + // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though + // (we may be allocating before malloc is ready, during startup). + if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting'); + var ptr = Module['getMemory'](byteArray.length); + Module['HEAPU8'].set(byteArray, ptr); + DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length); + + var files = metadata.files; + for (i = 0; i < files.length; ++i) { + DataRequest.prototype.requests[files[i].filename].onload(); + } + Module['removeRunDependency']('datafile_models/models_obj_loading.data'); + + }; + Module['addRunDependency']('datafile_models/models_obj_loading.data'); + + if (!Module.preloadResults) Module.preloadResults = {}; + + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it + } + + } + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 2748249, "filename": "/resources/model/dwarf.obj"}, {"audio": 0, "start": 2748249, "crunched": 0, "end": 4022872, "filename": "/resources/model/dwarf_diffuse.png"}], "remote_package_size": 4022872, "package_uuid": "8916150a-89d4-4b0a-884f-4bcfc1694720"}); + +})(); + +// The Module object: Our interface to the outside world. We import +// and export values on it, and do the work to get that through +// closure compiler if necessary. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(Module) { ..generated code.. } +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to do an eval in order to handle the closure compiler +// case, where this code here is minified but Module was defined +// elsewhere (e.g. case 4 above). We also need to check if Module +// already exists (e.g. case 3 above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module; +if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; + +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } +} + +// The environment setup code below is customized to use Module. +// *** Environment setup code *** +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) + +if (Module['ENVIRONMENT']) { + if (Module['ENVIRONMENT'] === 'WEB') { + ENVIRONMENT_IS_WEB = true; + } else if (Module['ENVIRONMENT'] === 'WORKER') { + ENVIRONMENT_IS_WORKER = true; + } else if (Module['ENVIRONMENT'] === 'NODE') { + ENVIRONMENT_IS_NODE = true; + } else if (Module['ENVIRONMENT'] === 'SHELL') { + ENVIRONMENT_IS_SHELL = true; + } else { + throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.'); + } +} else { + ENVIRONMENT_IS_WEB = typeof window === 'object'; + ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; + ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; +} + + +if (ENVIRONMENT_IS_NODE) { + // Expose functionality in the same simple way that the shells work + // Note that we pollute the global namespace here, otherwise we break in node + if (!Module['print']) Module['print'] = console.log; + if (!Module['printErr']) Module['printErr'] = console.warn; + + var nodeFS; + var nodePath; + + Module['read'] = function read(filename, binary) { + if (!nodeFS) nodeFS = require('fs'); + if (!nodePath) nodePath = require('path'); + filename = nodePath['normalize'](filename); + var ret = nodeFS['readFileSync'](filename); + return binary ? ret : ret.toString(); + }; + + Module['readBinary'] = function readBinary(filename) { + var ret = Module['read'](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + if (!Module['thisProgram']) { + if (process['argv'].length > 1) { + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + } else { + Module['thisProgram'] = 'unknown-program'; + } + } + + Module['arguments'] = process['argv'].slice(2); + + if (typeof module !== 'undefined') { + module['exports'] = Module; + } + + process['on']('uncaughtException', function(ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + + Module['inspect'] = function () { return '[Emscripten Module object]'; }; +} +else if (ENVIRONMENT_IS_SHELL) { + if (!Module['print']) Module['print'] = print; + if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm + + if (typeof read != 'undefined') { + Module['read'] = read; + } else { + Module['read'] = function read() { throw 'no read() available' }; + } + + Module['readBinary'] = function readBinary(f) { + if (typeof readbuffer === 'function') { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, 'binary'); + assert(typeof data === 'object'); + return data; + }; + + if (typeof scriptArgs != 'undefined') { + Module['arguments'] = scriptArgs; + } else if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof quit === 'function') { + Module['quit'] = function(status, toThrow) { + quit(status); + } + } + +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + Module['readBinary'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return xhr.response; + }; + } + + Module['readAsync'] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.warn(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WORKER) { + Module['load'] = importScripts; + } + + if (typeof Module['setWindowTitle'] === 'undefined') { + Module['setWindowTitle'] = function(title) { document.title = title }; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] && Module['read']) { + Module['load'] = function load(f) { + globalEval(Module['read'](f)); + }; +} +if (!Module['print']) { + Module['print'] = function(){}; +} +if (!Module['printErr']) { + Module['printErr'] = Module['print']; +} +if (!Module['arguments']) { + Module['arguments'] = []; +} +if (!Module['thisProgram']) { + Module['thisProgram'] = './this.program'; +} +if (!Module['quit']) { + Module['quit'] = function(status, toThrow) { + throw toThrow; + } +} + +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. +moduleOverrides = undefined; + + + +// {{PREAMBLE_ADDITIONS}} + +// === Preamble library stuff === + +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + return value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + STACK_ALIGN: 16, + prepVararg: function (ptr, type) { + if (type === 'double' || type === 'i64') { + // move so the load is aligned + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); + } + return ptr; + }, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + dynCall: function (sig, ptr, args) { + if (args && args.length) { + assert(args.length == sig.length-1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); + } else { + assert(sig.length == 1); + assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); + return Module['dynCall_' + sig].call(null, ptr); + } + }, + functionPointers: [], + addFunction: function (func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + // optimize away arguments usage in common cases + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func); + }; + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]); + }; + } else { + // general case + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)); + }; + } + } + return sigCache[func]; + }, + getCompilerSetting: function (name) { + throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; + }, + stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { assert(DYNAMICTOP_PTR);var ret = HEAP32[DYNAMICTOP_PTR>>2];var end = (((ret + size + 15)|0) & -16);HEAP32[DYNAMICTOP_PTR>>2] = end;if (end >= TOTAL_MEMORY) {var success = enlargeMemory();if (!success) {HEAP32[DYNAMICTOP_PTR>>2] = ret;return 0;}}return ret;}, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + + +Module["Runtime"] = Runtime; + + + +//======================================== +// Runtime essentials +//======================================== + +var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + var func = Module['_' + ident]; // closure exported function + if (!func) { + try { func = eval('_' + ident); } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var JSfuncs = { + // Helpers for cwrap -- it can't refer to Runtime directly because it might + // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find + // out what the minified function name is. + 'stackSave': function() { + Runtime.stackSave() + }, + 'stackRestore': function() { + Runtime.stackRestore() + }, + // type conversion from js to c + 'arrayToC' : function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, + 'stringToC' : function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len); + } + return ret; + } + }; + // For fast lookup of conversion functions + var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; + + // C calling interface. + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { + assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); + } + if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); + if (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; + } + Runtime.stackRestore(stack); + } + return ret; + } + + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + // Match the body and the return value of a javascript function source + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} + } + + // sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file + var JSsource = null; + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + // Elements of toCsource are arrays of three items: + // the code, and the return value + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } + } + } + } + + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + // When the function takes numbers and returns a number, we can just return + // the original function + var numericArgs = argTypes.every(function(type){ return type === 'number'}); + var numericRet = (returnType !== 'string'); + if ( numericRet && numericArgs) { + return cfunc; + } + // Creation of the arguments list (["$1","$2",...,"$nargs"]) + var argNames = argTypes.map(function(x,i){return '$'+i}); + var funcstr = "(function(" + argNames.join(',') + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + // Generate the code needed to convert the arguments from javascript + // values to pointers + ensureJSsource(); + funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === 'number') continue; + var convertCode = JSsource[type + 'ToC']; // [code, return] + funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; + funcstr += convertCode.body + ';'; + funcstr += arg + '=(' + convertCode.returnValue + ');'; + } + } + + // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore + var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; + // Call the function + funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; + if (!numericRet) { // Return type can only by 'string' or 'number' + // Convert the result to a string + var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; + funcstr += 'ret = ' + strgfy + '(ret);'; + } + funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; + if (!numericArgs) { + // If we had a stack, restore it + ensureJSsource(); + funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module["setValue"] = setValue; + + +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module["getValue"] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + assert(type, 'Must know what type to store in allocate!'); + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module["allocate"] = allocate; + +// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size); +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0 || !ptr) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = 0; + var t; + var i = 0; + while (1) { + assert(ptr + i < TOTAL_MEMORY); + t = HEAPU8[(((ptr)+(i))>>0)]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (hasUtf < 128) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + return Module['UTF8ToString'](ptr); +} +Module["Pointer_stringify"] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function AsciiToString(ptr) { + var str = ''; + while (1) { + var ch = HEAP8[((ptr++)>>0)]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +} +Module["AsciiToString"] = AsciiToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); +} +Module["stringToAscii"] = stringToAscii; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns +// a copy of that string as a Javascript String object. + +var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + while (u8Array[endPtr]) ++endPtr; + + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); + } else { + var u0, u1, u2, u3, u4, u5; + + var str = ''; + while (1) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + u1 = u8Array[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + u2 = u8Array[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 0xF8) == 0xF0) { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 0xFC) == 0xF8) { + u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; + } + } + } + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8,ptr); +} +Module["UTF8ToString"] = UTF8ToString; + +// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', +// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. +// outIdx: The starting offset in the array to begin the copying. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. +// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 0xC0 | (u >> 6); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 0xE0 | (u >> 12); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x1FFFFF) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 0xF0 | (u >> 18); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0x3FFFFFF) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 0xF8 | (u >> 24); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 0xFC | (u >> 30); + outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); + outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); + outU8Array[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + outU8Array[outIdx] = 0; + return outIdx - startIdx; +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. +// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); +} +Module["stringToUTF8"] = stringToUTF8; + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); + if (u <= 0x7F) { + ++len; + } else if (u <= 0x7FF) { + len += 2; + } else if (u <= 0xFFFF) { + len += 3; + } else if (u <= 0x1FFFFF) { + len += 4; + } else if (u <= 0x3FFFFFF) { + len += 5; + } else { + len += 6; + } + } + return len; +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. + +var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; +function UTF16ToString(ptr) { + assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. + // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + while (HEAP16[idx]) ++idx; + endPtr = idx << 1; + + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + } else { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. +// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. +// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF16(str, outPtr, maxBytesToWrite) { + assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[((outPtr)>>1)]=codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr)>>1)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF16(str) { + return str.length*2; +} + + +function UTF32ToString(ptr) { + assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} + + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. +// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. +// Parameters: +// str: the Javascript string to copy. +// outPtr: Byte address in Emscripten HEAP where to write the string to. +// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null +// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. +// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. +// Returns the number of bytes written, EXCLUDING the null terminator. + +function stringToUTF32(str, outPtr, maxBytesToWrite) { + assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); + assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 0x7FFFFFFF; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[((outPtr)>>2)]=codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr)>>2)]=0; + return outPtr - startPtr; +} + + +// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. + +function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + + return len; +} + + +function demangle(func) { + var __cxa_demangle_func = Module['___cxa_demangle'] || Module['__cxa_demangle']; + if (__cxa_demangle_func) { + try { + var s = + func.substr(1); + var len = lengthBytesUTF8(s)+1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, 'i32') === 0 && ret) { + return Pointer_stringify(ret); + } + // otherwise, libcxxabi failed + } catch(e) { + // ignore problems here + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + // failure when using libcxxabi, don't demangle + return func; + } + Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + return func; +} + +function demangleAll(text) { + var regex = + /__Z[\w\d_]+/g; + return text.replace(regex, + function(x) { + var y = demangle(x); + return x === y ? x : (x + ' [' + y + ']'); + }); +} + +function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, + // so try that as a special-case. + try { + throw new Error(0); + } catch(e) { + err = e; + } + if (!err.stack) { + return '(no stack trace available)'; + } + } + return err.stack.toString(); +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); + return demangleAll(js); +} +Module["stackTrace"] = stackTrace; + +// Memory management + +var PAGE_SIZE = 16384; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; +var MIN_TOTAL_MEMORY = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple); + } + return x; +} + +var HEAP; +var buffer; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module['buffer'] = buffer = buf; +} + +function updateGlobalBufferViews() { + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); +} + +var STATIC_BASE, STATICTOP, staticSealed; // static area +var STACK_BASE, STACKTOP, STACK_MAX; // stack area +var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk + + STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; + staticSealed = false; + + +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + assert((STACK_MAX & 3) == 0); + HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; + HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; +} + +function checkStackCookie() { + if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { + abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); + } + // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. + if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; +} + +function abortStackOverflow(allocSize) { + abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!'); +} + +function abortOnCannotGrowMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); +} + + +function enlargeMemory() { + abortOnCannotGrowMemory(); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 67108864; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + + + +// Use a provided buffer, if there is one, or else allocate a new one +if (Module['buffer']) { + buffer = Module['buffer']; + assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); +} else { + // Use a WebAssembly memory where available + { + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + assert(buffer.byteLength === TOTAL_MEMORY); +} +updateGlobalBufferViews(); + + +function getTotalMemory() { + return TOTAL_MEMORY; +} + +// Endianness check (note: assumes compiler arch was little-endian) + HEAP32[0] = 0x63736d65; /* 'emsc' */ +HEAP16[1] = 0x6373; +if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Module['dynCall_v'](func); + } else { + Module['dynCall_vi'](func, callback.arg); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; +var runtimeExited = false; + + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + checkStackCookie(); + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + checkStackCookie(); + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module["addOnPostRun"] = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module["intArrayToString"] = intArrayToString; + +// Deprecated: This function should not be called because it is unsafe and does not provide +// a maximum length limit of how many bytes it is allowed to write. Prefer calling the +// function stringToUTF8Array() instead, which takes in a maximum length that can be used +// to be secure from out of bounds writes. +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); + + var lastChar, end; + if (dontAddNull) { + // stringToUTF8Array always appends null. If we don't want to do that, remember the + // character that existed at the location where the null will be placed, and restore + // that after the write (below). + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end]; + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); + HEAP8[((buffer++)>>0)]=str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[((buffer)>>0)]=0; +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +if (!Math['clz32']) Math['clz32'] = function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & (1 << (31 - i))) return i; + } + return 32; +}; +Math.clz32 = Math['clz32'] + +if (!Math['trunc']) Math['trunc'] = function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +}; +Math.trunc = Math['trunc']; + +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + return id; +} + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 10000); + } + } else { + Module.printErr('warning: run dependency added without ID'); + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module["removeRunDependency"] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + + +var memoryInitializer = null; + + + + + + +// === Body === + +var ASM_CONSTS = [function($0, $1) { { Module.printErr('bad name in getProcAddress: ' + [Pointer_stringify($0), Pointer_stringify($1)]); } }]; + +function _emscripten_asm_const_iii(code, a0, a1) { + return ASM_CONSTS[code](a0, a1); +} + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 23760; + /* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([32,3,0,0,194,1,0,0,0,0,64,64,0,0,64,64,0,0,64,64,0,0,0,0,0,0,192,63,0,0,0,0,0,0,0,0,0,0,128,63,0,0,0,0,0,0,52,66,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,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,3,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,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,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,0,0,0,0,0,0,0,0,0,0,20,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,16,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,199,88,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,95,112,137,0,255,9,47,15,114,97,121,108,105,98,32,91,109,111,100,101,108,115,93,32,101,120,97,109,112,108,101,32,45,32,111,98,106,32,109,111,100,101,108,32,108,111,97,100,105,110,103,0,114,101,115,111,117,114,99,101,115,47,109,111,100,101,108,47,100,119,97,114,102,46,111,98,106,0,114,101,115,111,117,114,99,101,115,47,109,111,100,101,108,47,100,119,97,114,102,95,100,105,102,102,117,115,101,46,112,110,103,0,40,99,41,32,68,119,97,114,102,32,51,68,32,109,111,100,101,108,32,98,121,32,68,97,118,105,100,32,77,111,114,101,110,111,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,69,115,99,97,112,101,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,91,86,65,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,118,101,114,116,101,120,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,91,86,65,79,32,73,68,32,37,105,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,77,101,115,104,32,99,111,117,108,100,32,110,111,116,32,98,101,32,117,112,108,111,97,100,101,100,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,91,86,66,79,115,93,32,77,101,115,104,32,117,112,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,116,111,32,86,82,65,77,32,40,71,80,85,41,0,109,111,100,101,108,77,97,116,114,105,120,0,118,105,101,119,68,105,114,0,103,108,111,115,115,105,110,101,115,115,0,117,115,101,78,111,114,109,97,108,0,117,115,101,83,112,101,99,117,108,97,114,0,114,105,46,98,105,116,115,95,112,101,114,95,99,104,97,110,110,101,108,32,61,61,32,49,54,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,105,109,97,103,101,46,104,0,115,116,98,105,95,95,108,111,97,100,95,97,110,100,95,112,111,115,116,112,114,111,99,101,115,115,95,56,98,105,116,0,111,117,116,111,102,109,101,109,0,117,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,98,97,100,32,114,101,113,95,99,111,109,112,0,114,101,113,95,99,111,109,112,32,62,61,32,49,32,38,38,32,114,101,113,95,99,111,109,112,32,60,61,32,52,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,49,54,0,48,0,115,116,98,105,95,95,99,111,110,118,101,114,116,95,102,111,114,109,97,116,0,109,117,108,116,105,112,108,101,32,73,72,68,82,0,98,97,100,32,73,72,68,82,32,108,101,110,0,116,111,111,32,108,97,114,103,101,0,49,47,50,47,52,47,56,47,49,54,45,98,105,116,32,111,110,108,121,0,98,97,100,32,99,116,121,112,101,0,98,97,100,32,99,111,109,112,32,109,101,116,104,111,100,0,98,97,100,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,98,97,100,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,48,45,112,105,120,101,108,32,105,109,97,103,101,0,102,105,114,115,116,32,110,111,116,32,73,72,68,82,0,105,110,118,97,108,105,100,32,80,76,84,69,0,116,82,78,83,32,97,102,116,101,114,32,73,68,65,84,0,116,82,78,83,32,98,101,102,111,114,101,32,80,76,84,69,0,98,97,100,32,116,82,78,83,32,108,101,110,0,116,82,78,83,32,119,105,116,104,32,97,108,112,104,97,0,0,255,85,0,17,0,0,0,1,110,111,32,80,76,84,69,0,111,117,116,111,102,100,97,116,97,0,110,111,32,73,68,65,84,0,88,88,88,88,32,80,78,71,32,99,104,117,110,107,32,110,111,116,32,107,110,111,119,110,0,115,45,62,105,109,103,95,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,100,101,95,105,112,104,111,110,101,0,111,117,116,95,110,32,61,61,32,50,32,124,124,32,111,117,116,95,110,32,61,61,32,52,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,116,114,97,110,115,112,97,114,101,110,99,121,49], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([54,0,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,32,124,124,32,111,117,116,95,110,32,61,61,32,115,45,62,105,109,103,95,110,43,49,0,115,116,98,105,95,95,99,114,101,97,116,101,95,112,110,103,95,105,109,97,103,101,95,114,97,119,0,110,111,116,32,101,110,111,117,103,104,32,112,105,120,101,108,115,0,105,109,103,95,119,105,100,116,104,95,98,121,116,101,115,32,60,61,32,120,0,0,1,0,5,6,105,109,103,95,110,43,49,32,61,61,32,111,117,116,95,110,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,0,105,109,103,95,110,32,61,61,32,51,0,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,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,98,97,100,32,104,117,102,102,109,97,110,32,99,111,100,101,0,98,97,100,32,100,105,115,116,0,111,117,116,112,117,116,32,98,117,102,102,101,114,32,108,105,109,105,116,0,122,45,62,115,105,122,101,91,98,93,32,61,61,32,115,0,115,116,98,105,95,95,122,104,117,102,102,109,97,110,95,100,101,99,111,100,101,95,115,108,111,119,112,97,116,104,0,98,105,116,115,32,60,61,32,49,54,0,115,116,98,105,95,95,98,105,116,95,114,101,118,101,114,115,101,0,122,45,62,99,111,100,101,95,98,117,102,102,101,114,32,60,32,40,49,85,32,60,60,32,122,45,62,110,117,109,95,98,105,116,115,41,0,115,116,98,105,95,95,102,105,108,108,95,98,105,116,115,0,98,97,100,32,99,111,100,101,108,101,110,103,116,104,115,0,99,32,61,61,32,49,56,0,115,116,98,105,95,95,99,111,109,112,117,116,101,95,104,117,102,102,109,97,110,95,99,111,100,101,115,0,98,97,100,32,115,105,122,101,115,0,97,45,62,110,117,109,95,98,105,116,115,32,61,61,32,48,0,115,116,98,105,95,95,112,97,114,115,101,95,117,110,99,111,109,112,114,101,115,115,101,100,95,98,108,111,99,107,0,122,108,105,98,32,99,111,114,114,117,112,116,0,114,101,97,100,32,112,97,115,116,32,98,117,102,102,101,114,0,98,97,100,32,122,108,105,98,32,104,101,97,100,101,114,0,110,111,32,112,114,101,115,101,116,32,100,105,99,116,0,98,97,100,32,99,111,109,112,114,101,115,115,105,111,110,0,98,97,100,32,112,110,103,32,115,105,103,0,46,114,114,101,115,0,91,37,115,93,32,82,101,115,111,117,114,99,101,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,105,109,97,103,101,32,100,97,116,97,0,46,112,110,103,0,91,37,115,93,32,73,109,97,103,101,32,102,105,108,101,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,37,115,93,32,73,109,97,103,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,91,37,115,93,32,73,109,97,103,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,73,109,97,103,101,32,102,111,114,109,97,116,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,0,114,98,0,91,37,115,93,32,114,82,69,83,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,91,37,115,93,32,84,104,105,115,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,114,97,121,108,105,98,32,114,101,115,111,117,114,99,101,32,102,105,108,101,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,115,111,117,114,99,101,32,100,97,116,97,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,37,115,93,91,73,68,32,37,105,93,32,82,101,113,117,101,115,116,101,100,32,114,101,115,111,117,114,99,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,102,111,117,110,100,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,119,104,105,108,101,32,100,101,99,111,109,112,114,101,115,115,105,110,103,32,100,97,116,97,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,32,110,111,116,32,109,97,116,99,104,44,32,100,97,116,97,32,109,97,121,32,98,101,32,99,111,114,114,117,112,116,101,100,0,32,45,45,32,69,120,112,101,99,116,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,32,45,45,32,82,101,116,117,114,110,101,100,32,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,58,32,37,105,0,68,97,116,97,32,100,101,99,111,109,112,114,101,115,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,102,114,111,109,32,37,117,32,98,121,116,101,115,32,116,111,32,37,117,32,98,121,116,101,115,0,5,5,4,0,16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,2,3,7,0,3,3,11,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,37,50,105,32,70,80,83,0,46,111,98,106,0,77,101,115,104,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,114,116,0,91,37,115,93,32,79,66,74,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,37,99,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,118,101,114,116,105,99,101,115,58,32,37,105,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,116,101,120,99,111,111,114,100,115,58,32,37,105,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,110,111,114,109,97,108,115,58,32,37,105,0,91,37,115,93,32,77,111,100,101,108,32,110,117,109,32,116,114,105,97,110,103,108,101,115,58,32,37,105,0,37,102,32,37,102,37,42,91,94,10,93,115,10,0,37,102,32,37,102,32,37,102,0,91,37,115,93,32,78,111,32,110,111,114,109,97,108,115,32,100,97,116,97,32,111,110,32,79,66,74,44,32,110,111,114,109,97,108,115,32,119,105,108,108,32,98,101,32,103,101,110,101,114,97,116,101,100,32,102,114,111,109,32,102,97,99,101,115,32,100,97,116,97,0,37,105,32,37,105,32,37,105,0,37,105,47,37,105,32,37,105,47,37,105,32,37,105,47,37,105,0,37,105,47,47,37,105,32,37,105,47,47,37,105,32,37,105,47,47,37,105,0,37,105,47,37,105,47,37,105,32,37,105,47,37,105,47,37,105,32,37,105,47,37,105,47,37,105,0,91,37,115,93,32,77,111,100,101,108,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,105,110,32,82,65,77,32,40,67,80,85,41,0,85,110,108,111,97,100,101,100,32,109,111,100,101,108,32,100,97,116,97,32,40,109,101,115,104,32,97,110,100,32,109,97,116,101,114,105,97,108,41,32,102,114,111,109,32,82,65,77,32,97,110,100,32,86,82,65,77,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,110,97,110,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); + + + + + +/* no memory initializer */ +var tempDoublePtr = STATICTOP; STATICTOP += 16; + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + +// {{PRE_LIBRARY}} + + + + var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function () { + GL.miniTempBuffer = new Float32Array(GL.MINI_TEMP_BUFFER_SIZE); + for (var i = 0; i < GL.MINI_TEMP_BUFFER_SIZE; i++) { + GL.miniTempBufferViews[i] = GL.miniTempBuffer.subarray(0, i+1); + } + + // For functions such as glDrawBuffers, glInvalidateFramebuffer and glInvalidateSubFramebuffer that need to pass a short array to the WebGL API, + // create a set of short fixed-length arrays to avoid having to generate any garbage when calling those functions. + for (var i = 0; i < 32; i++) { + GL.tempFixedLengthArray.push(new Array(i)); + } + },recordError:function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + },getNewId:function (table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + },MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function (shader, count, string, length) { + var source = ''; + for (var i = 0; i < count; ++i) { + var frag; + if (length) { + var len = HEAP32[(((length)+(i*4))>>2)]; + if (len < 0) { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)], len); + } + } else { + frag = Pointer_stringify(HEAP32[(((string)+(i*4))>>2)]); + } + source += frag; + } + return source; + },createContext:function (canvas, webGLContextAttributes) { + if (typeof webGLContextAttributes['majorVersion'] === 'undefined' && typeof webGLContextAttributes['minorVersion'] === 'undefined') { + webGLContextAttributes['majorVersion'] = 1; + webGLContextAttributes['minorVersion'] = 0; + } + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + if (webGLContextAttributes['majorVersion'] == 1 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl", webGLContextAttributes) || canvas.getContext("experimental-webgl", webGLContextAttributes); + } else if (webGLContextAttributes['majorVersion'] == 2 && webGLContextAttributes['minorVersion'] == 0) { + ctx = canvas.getContext("webgl2", webGLContextAttributes) || canvas.getContext("experimental-webgl2", webGLContextAttributes); + } else { + throw 'Unsupported WebGL context version ' + majorVersion + '.' + minorVersion + '!' + } + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e, JSON.stringify(webGLContextAttributes)]); + return 0; + } + // possible GL_DEBUG entry point: ctx = wrapDebugGL(ctx); + + if (!ctx) return 0; + return GL.registerContext(ctx, webGLContextAttributes); + },registerContext:function (ctx, webGLContextAttributes) { + var handle = GL.getNewId(GL.contexts); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes['majorVersion'], + GLctx: ctx + }; + + + // Store the created context object so that we can access the context given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes['enableExtensionsByDefault'] === 'undefined' || webGLContextAttributes['enableExtensionsByDefault']) { + GL.initExtensions(context); + } + return handle; + },makeContextCurrent:function (contextHandle) { + var context = GL.contexts[contextHandle]; + if (!context) return false; + GLctx = Module.ctx = context.GLctx; // Active WebGL context object. + GL.currentContext = context; // Active Emscripten GL layer context object. + return true; + },getContext:function (contextHandle) { + return GL.contexts[contextHandle]; + },deleteContext:function (contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents === 'object') JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all JS event handlers on the DOM element that the GL context is associated with since the context is now deleted. + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; // Make sure the canvas object no longer refers to the context object so there are no GC surprises. + GL.contexts[contextHandle] = null; + },initExtensions:function (context) { + // If this function is called without a specific context object, init the extensions of the currently active context. + if (!context) context = GL.currentContext; + + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + + var GLctx = context.GLctx; + + context.maxVertexAttribs = GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS); + + // Detect the presence of a few extensions manually, this GL interop layer itself will need to know if they exist. + + if (context.version < 2) { + // Extension available from Firefox 26 and Google Chrome 30 + var instancedArraysExt = GLctx.getExtension('ANGLE_instanced_arrays'); + if (instancedArraysExt) { + GLctx['vertexAttribDivisor'] = function(index, divisor) { instancedArraysExt['vertexAttribDivisorANGLE'](index, divisor); }; + GLctx['drawArraysInstanced'] = function(mode, first, count, primcount) { instancedArraysExt['drawArraysInstancedANGLE'](mode, first, count, primcount); }; + GLctx['drawElementsInstanced'] = function(mode, count, type, indices, primcount) { instancedArraysExt['drawElementsInstancedANGLE'](mode, count, type, indices, primcount); }; + } + + // Extension available from Firefox 25 and WebKit + var vaoExt = GLctx.getExtension('OES_vertex_array_object'); + if (vaoExt) { + GLctx['createVertexArray'] = function() { return vaoExt['createVertexArrayOES'](); }; + GLctx['deleteVertexArray'] = function(vao) { vaoExt['deleteVertexArrayOES'](vao); }; + GLctx['bindVertexArray'] = function(vao) { vaoExt['bindVertexArrayOES'](vao); }; + GLctx['isVertexArray'] = function(vao) { return vaoExt['isVertexArrayOES'](vao); }; + } + + var drawBuffersExt = GLctx.getExtension('WEBGL_draw_buffers'); + if (drawBuffersExt) { + GLctx['drawBuffers'] = function(n, bufs) { drawBuffersExt['drawBuffersWEBGL'](n, bufs); }; + } + } + + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + + // These are the 'safe' feature-enabling extensions that don't add any performance impact related to e.g. debugging, and + // should be enabled by default so that client GLES2/GL code will not need to go through extra hoops to get its stuff working. + // As new extensions are ratified at http://www.khronos.org/registry/webgl/extensions/ , feel free to add your new extensions + // here, as long as they don't produce a performance impact for users that might not be using those extensions. + // E.g. debugging-related extensions should probably be off by default. + var automaticallyEnabledExtensions = [ "OES_texture_float", "OES_texture_half_float", "OES_standard_derivatives", + "OES_vertex_array_object", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", + "OES_element_index_uint", "EXT_texture_filter_anisotropic", "ANGLE_instanced_arrays", + "OES_texture_float_linear", "OES_texture_half_float_linear", "WEBGL_compressed_texture_atc", + "WEBGL_compressed_texture_pvrtc", "EXT_color_buffer_half_float", "WEBGL_color_buffer_float", + "EXT_frag_depth", "EXT_sRGB", "WEBGL_draw_buffers", "WEBGL_shared_resources", + "EXT_shader_texture_lod", "EXT_color_buffer_float"]; + + function shouldEnableAutomatically(extension) { + var ret = false; + automaticallyEnabledExtensions.forEach(function(include) { + if (ext.indexOf(include) != -1) { + ret = true; + } + }); + return ret; + } + + var exts = GLctx.getSupportedExtensions(); + if (exts && exts.length > 0) { + GLctx.getSupportedExtensions().forEach(function(ext) { + if (automaticallyEnabledExtensions.indexOf(ext) != -1) { + GLctx.getExtension(ext); // Calling .getExtension enables that extension permanently, no need to store the return value to be enabled. + } + }); + } + },populateUniformTable:function (program) { + var p = GL.programs[program]; + GL.programInfos[program] = { + uniforms: {}, + maxUniformLength: 0, // This is eagerly computed below, since we already enumerate all uniforms anyway. + maxAttributeLength: -1, // This is lazily computed and cached, computed when/if first asked, "-1" meaning not computed yet. + maxUniformBlockNameLength: -1 // Lazily computed as well + }; + + var ptable = GL.programInfos[program]; + var utable = ptable.uniforms; + // A program's uniform table maps the string name of an uniform to an integer location of that uniform. + // The global GL.uniforms map maps integer locations to WebGLUniformLocations. + var numUniforms = GLctx.getProgramParameter(p, GLctx.ACTIVE_UNIFORMS); + for (var i = 0; i < numUniforms; ++i) { + var u = GLctx.getActiveUniform(p, i); + + var name = u.name; + ptable.maxUniformLength = Math.max(ptable.maxUniformLength, name.length+1); + + // Strip off any trailing array specifier we might have got, e.g. "[0]". + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + name = name.slice(0, ls); + } + + // Optimize memory usage slightly: If we have an array of uniforms, e.g. 'vec3 colors[3];', then + // only store the string 'colors' in utable, and 'colors[0]', 'colors[1]' and 'colors[2]' will be parsed as 'colors'+i. + // Note that for the GL.uniforms table, we still need to fetch the all WebGLUniformLocations for all the indices. + var loc = GLctx.getUniformLocation(p, name); + if (loc != null) + { + var id = GL.getNewId(GL.uniforms); + utable[name] = [u.size, id]; + GL.uniforms[id] = loc; + + for (var j = 1; j < u.size; ++j) { + var n = name + '['+j+']'; + loc = GLctx.getUniformLocation(p, n); + id = GL.getNewId(GL.uniforms); + + GL.uniforms[id] = loc; + } + } + } + }};function _emscripten_glIsRenderbuffer(renderbuffer) { + var rb = GL.renderbuffers[renderbuffer]; + if (!rb) return 0; + return GLctx.isRenderbuffer(rb); + } + + function _emscripten_glStencilMaskSeparate(x0, x1) { GLctx['stencilMaskSeparate'](x0, x1) } + + + + function _emscripten_get_now() { abort() } + + + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + + if (!Browser.mainLoop.func) { + console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); + return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. + } + + if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now())|0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else if (mode == 1 /*EM_TIMING_RAF*/) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) { + if (!window['setImmediate']) { + // Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed) + var setImmediates = []; + var emscriptenMainLoopMessageId = 'setimmediate'; + function Browser_setImmediate_messageHandler(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + } + window.addEventListener("message", Browser_setImmediate_messageHandler, true); + window['setImmediate'] = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module['setImmediates'] === undefined) Module['setImmediates'] = []; + Module['setImmediates'].push(func); + window.postMessage({target: emscriptenMainLoopMessageId}); // In --proxy-to-worker, route the message via proxyClient.js + } else window.postMessage(emscriptenMainLoopMessageId, "*"); // On the main thread, can just send the message to itself. + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window['setImmediate'](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'immediate'; + } + return 0; + }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); + + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + + var browserIterationFunc; + if (typeof arg !== 'undefined') { + browserIterationFunc = function() { + Module['dynCall_vi'](func, arg); + }; + } else { + browserIterationFunc = function() { + Module['dynCall_v'](func); + }; + } + + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + + // catches pause/resume main loop from blocker execution + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + setTimeout(Browser.mainLoop.runner, 0); + return; + } + + // catch pauses from non-main loop sources + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Implement very basic swap interval control + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + // Not the scheduled time to render this frame - skip. + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0/*EM_TIMING_SETTIMEOUT*/) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + + if (Browser.mainLoop.method === 'timeout' && Module.ctx) { + Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); + Browser.mainLoop.method = ''; // just warn once per call to set main loop + } + + Browser.mainLoop.runIter(browserIterationFunc); + + checkStackCookie(); + + // catch pauses from the main loop itself + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + + // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able + // to queue the newest produced audio samples. + // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() + // do not need to be hardcoded into this function, but can be more generic. + if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + + Browser.mainLoop.scheduler(); + } + + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) + + Browser.mainLoop.scheduler(); + } + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. + },resume:function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + },updateStatus:function () { + if (Module['setStatus']) { + var message = Module['statusMessage'] || 'Please wait...'; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); + } else { + Module['setStatus'](message); + } + } else { + Module['setStatus'](''); + } + } + },runIter:function (func) { + if (ABORT) return; + if (Module['preMainLoop']) { + var preRet = Module['preMainLoop'](); + if (preRet === false) { + return; // |return false| skips a frame + } + } + try { + func(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } + if (Module['postMainLoop']) Module['postMainLoop'](); + }},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted) return; + Browser.initted = true; + + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch(e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); + Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + var imagePlugin = {}; + imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); + } + } catch(e) { + Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, 'Image ' + name + ' could not be decoded'); + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log('Image ' + url + ' could not be decoded'); + if (onerror) onerror(); + }; + img.src = url; + }; + Module['preloadPlugins'].push(imagePlugin); + + var audioPlugin = {}; + audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; + }; + audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + if (onerror) onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch(e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! + assert(typeof url == 'string', 'createObjectURL must return a url as a string'); + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); + function encode64(data) { + var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var PAD = '='; + var ret = ''; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === Module['canvas'] || + document['mozPointerLockElement'] === Module['canvas'] || + document['webkitPointerLockElement'] === Module['canvas'] || + document['msPointerLockElement'] === Module['canvas']; + } + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + document.addEventListener('pointerlockchange', pointerLockChange, false); + document.addEventListener('mozpointerlockchange', pointerLockChange, false); + document.addEventListener('webkitpointerlockchange', pointerLockChange, false); + document.addEventListener('mspointerlockchange', pointerLockChange, false); + + if (Module['elementPointerLock']) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. + + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } else { + ctx = canvas.getContext('2d'); + } + + if (!ctx) return null; + + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); + + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); + Browser.init(); + } + return ctx; + },destroyContext:function (canvas, useWebGL, setInModule) {},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function (lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; + + var canvas = Module['canvas']; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvasContainer) { + canvas.exitFullscreen = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['msExitFullscreen'] || + document['webkitCancelFullScreen'] || + function() {}; + canvas.exitFullscreen = canvas.exitFullscreen.bind(document); + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize(); + } else { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + + if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); + } + if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullscreen); + if (Module['onFullscreen']) Module['onFullscreen'](Browser.isFullscreen); + Browser.updateCanvasDimensions(canvas); + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener('fullscreenchange', fullscreenChange, false); + document.addEventListener('mozfullscreenchange', fullscreenChange, false); + document.addEventListener('webkitfullscreenchange', fullscreenChange, false); + document.addEventListener('MSFullscreenChange', fullscreenChange, false); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + + if (vrDevice) { + canvasContainer.requestFullscreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullscreen(); + } + },requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { + Module.printErr('Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.'); + Browser.requestFullScreen = function(lockPointer, resizeCanvas, vrDevice) { + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + } + return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice); + },nextRAF:0,fakeRequestAnimationFrame:function (func) { + // try to keep 60fps between calls to here + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1000/60; + } else { + while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 + Browser.nextRAF += 1000/60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + Browser.fakeRequestAnimationFrame(func); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { + Browser.allowAsyncCallbacks = false; + },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func) { + func(); + }); + } + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } else { + Browser.queuedAsyncCallbacks.push(func); + } + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func(); + } // drop it on the floor otherwise, next interval will kick in + }, timeout); + },getMimetype:function (name) { + return { + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'png': 'image/png', + 'bmp': 'image/bmp', + 'ogg': 'audio/ogg', + 'wav': 'audio/wav', + 'mp3': 'audio/mpeg' + }[name.substr(name.lastIndexOf('.')+1)]; + },getUserMedia:function (func) { + if(!window.getUserMedia) { + window.getUserMedia = navigator['getUserMedia'] || + navigator['mozGetUserMedia']; + } + window.getUserMedia(func); + },getMovementX:function (event) { + return event['movementX'] || + event['mozMovementX'] || + event['webkitMovementX'] || + 0; + },getMovementY:function (event) { + return event['movementY'] || + event['mozMovementY'] || + event['webkitMovementY'] || + 0; + },getMouseWheelDelta:function (event) { + var delta = 0; + switch (event.type) { + case 'DOMMouseScroll': + delta = event.detail; + break; + case 'mousewheel': + delta = event.wheelDelta; + break; + case 'wheel': + delta = event['deltaY']; + break; + default: + throw 'unrecognized mouse wheel event: ' + event.type; + } + return delta; + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); + // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset + // and we have no viable fallback. + assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); + + if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { + var touch = event.touch; + if (touch === undefined) { + return; // the "touch" property is only defined in SDL + + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + + var coords = { x: adjustedX, y: adjustedY }; + + if (event.type === 'touchstart') { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === 'touchend' || event.type === 'touchmove') { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + x = x * (cw / rect.width); + y = y * (ch / rect.height); + + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + },asyncLoad:function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; + Module['readAsync'](url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (dep) addRunDependency(dep); + },resizeListeners:[],updateResizeListeners:function () { + var canvas = Module['canvas']; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + },setCanvasSize:function (width, height, noUpdates) { + var canvas = Module['canvas']; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + },windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },updateCanvasDimensions:function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { + if (w/h < Module['forcedAspectRatio']) { + w = Math.round(h * Module['forcedAspectRatio']); + } else { + h = Math.round(w / Module['forcedAspectRatio']); + } + } + if (((document['fullscreenElement'] || document['mozFullScreenElement'] || + document['msFullscreenElement'] || document['webkitFullscreenElement'] || + document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != 'undefined') { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != 'undefined') { + if (w != wNative || h != hNative) { + canvas.style.setProperty( "width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty( "width"); + canvas.style.removeProperty("height"); + } + } + } + },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + }};var GLFW={Window:function (id, width, height, title, monitor, share) { + this.id = id; + this.x = 0; + this.y = 0; + this.fullscreen = false; // Used to determine if app in fullscreen mode + this.storedX = 0; // Used to store X before fullscreen + this.storedY = 0; // Used to store Y before fullscreen + this.width = width; + this.height = height; + this.storedWidth = width; // Used to store width before fullscreen + this.storedHeight = height; // Used to store height before fullscreen + this.title = title; + this.monitor = monitor; + this.share = share; + this.attributes = GLFW.hints; + this.inputModes = { + 0x00033001:0x00034001, // GLFW_CURSOR (GLFW_CURSOR_NORMAL) + 0x00033002:0, // GLFW_STICKY_KEYS + 0x00033003:0, // GLFW_STICKY_MOUSE_BUTTONS + }; + this.buttons = 0; + this.keys = new Array(); + this.shouldClose = 0; + this.title = null; + this.windowPosFunc = null; // GLFWwindowposfun + this.windowSizeFunc = null; // GLFWwindowsizefun + this.windowCloseFunc = null; // GLFWwindowclosefun + this.windowRefreshFunc = null; // GLFWwindowrefreshfun + this.windowFocusFunc = null; // GLFWwindowfocusfun + this.windowIconifyFunc = null; // GLFWwindowiconifyfun + this.framebufferSizeFunc = null; // GLFWframebuffersizefun + this.mouseButtonFunc = null; // GLFWmousebuttonfun + this.cursorPosFunc = null; // GLFWcursorposfun + this.cursorEnterFunc = null; // GLFWcursorenterfun + this.scrollFunc = null; // GLFWscrollfun + this.keyFunc = null; // GLFWkeyfun + this.charFunc = null; // GLFWcharfun + this.userptr = null; + },WindowFromId:function (id) { + if (id <= 0 || !GLFW.windows) return null; + return GLFW.windows[id - 1]; + },errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function (keycode) { + switch (keycode) { + // these keycodes are only defined for GLFW3, assume they are the same for GLFW2 + case 0x20:return 32; // DOM_VK_SPACE -> GLFW_KEY_SPACE + case 0xDE:return 39; // DOM_VK_QUOTE -> GLFW_KEY_APOSTROPHE + case 0xBC:return 44; // DOM_VK_COMMA -> GLFW_KEY_COMMA + case 0xAD:return 45; // DOM_VK_HYPHEN_MINUS -> GLFW_KEY_MINUS + case 0xBD:return 45; // DOM_VK_MINUS -> GLFW_KEY_MINUS + case 0xBE:return 46; // DOM_VK_PERIOD -> GLFW_KEY_PERIOD + case 0xBF:return 47; // DOM_VK_SLASH -> GLFW_KEY_SLASH + case 0x30:return 48; // DOM_VK_0 -> GLFW_KEY_0 + case 0x31:return 49; // DOM_VK_1 -> GLFW_KEY_1 + case 0x32:return 50; // DOM_VK_2 -> GLFW_KEY_2 + case 0x33:return 51; // DOM_VK_3 -> GLFW_KEY_3 + case 0x34:return 52; // DOM_VK_4 -> GLFW_KEY_4 + case 0x35:return 53; // DOM_VK_5 -> GLFW_KEY_5 + case 0x36:return 54; // DOM_VK_6 -> GLFW_KEY_6 + case 0x37:return 55; // DOM_VK_7 -> GLFW_KEY_7 + case 0x38:return 56; // DOM_VK_8 -> GLFW_KEY_8 + case 0x39:return 57; // DOM_VK_9 -> GLFW_KEY_9 + case 0x3B:return 59; // DOM_VK_SEMICOLON -> GLFW_KEY_SEMICOLON + case 0x3D:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0xBB:return 61; // DOM_VK_EQUALS -> GLFW_KEY_EQUAL + case 0x41:return 65; // DOM_VK_A -> GLFW_KEY_A + case 0x42:return 66; // DOM_VK_B -> GLFW_KEY_B + case 0x43:return 67; // DOM_VK_C -> GLFW_KEY_C + case 0x44:return 68; // DOM_VK_D -> GLFW_KEY_D + case 0x45:return 69; // DOM_VK_E -> GLFW_KEY_E + case 0x46:return 70; // DOM_VK_F -> GLFW_KEY_F + case 0x47:return 71; // DOM_VK_G -> GLFW_KEY_G + case 0x48:return 72; // DOM_VK_H -> GLFW_KEY_H + case 0x49:return 73; // DOM_VK_I -> GLFW_KEY_I + case 0x4A:return 74; // DOM_VK_J -> GLFW_KEY_J + case 0x4B:return 75; // DOM_VK_K -> GLFW_KEY_K + case 0x4C:return 76; // DOM_VK_L -> GLFW_KEY_L + case 0x4D:return 77; // DOM_VK_M -> GLFW_KEY_M + case 0x4E:return 78; // DOM_VK_N -> GLFW_KEY_N + case 0x4F:return 79; // DOM_VK_O -> GLFW_KEY_O + case 0x50:return 80; // DOM_VK_P -> GLFW_KEY_P + case 0x51:return 81; // DOM_VK_Q -> GLFW_KEY_Q + case 0x52:return 82; // DOM_VK_R -> GLFW_KEY_R + case 0x53:return 83; // DOM_VK_S -> GLFW_KEY_S + case 0x54:return 84; // DOM_VK_T -> GLFW_KEY_T + case 0x55:return 85; // DOM_VK_U -> GLFW_KEY_U + case 0x56:return 86; // DOM_VK_V -> GLFW_KEY_V + case 0x57:return 87; // DOM_VK_W -> GLFW_KEY_W + case 0x58:return 88; // DOM_VK_X -> GLFW_KEY_X + case 0x59:return 89; // DOM_VK_Y -> GLFW_KEY_Y + case 0x5a:return 90; // DOM_VK_Z -> GLFW_KEY_Z + case 0xDB:return 91; // DOM_VK_OPEN_BRACKET -> GLFW_KEY_LEFT_BRACKET + case 0xDC:return 92; // DOM_VK_BACKSLASH -> GLFW_KEY_BACKSLASH + case 0xDD:return 93; // DOM_VK_CLOSE_BRACKET -> GLFW_KEY_RIGHT_BRACKET + case 0xC0:return 94; // DOM_VK_BACK_QUOTE -> GLFW_KEY_GRAVE_ACCENT + + + case 0x1B:return 256; // DOM_VK_ESCAPE -> GLFW_KEY_ESCAPE + case 0x0D:return 257; // DOM_VK_RETURN -> GLFW_KEY_ENTER + case 0x09:return 258; // DOM_VK_TAB -> GLFW_KEY_TAB + case 0x08:return 259; // DOM_VK_BACK -> GLFW_KEY_BACKSPACE + case 0x2D:return 260; // DOM_VK_INSERT -> GLFW_KEY_INSERT + case 0x2E:return 261; // DOM_VK_DELETE -> GLFW_KEY_DELETE + case 0x27:return 262; // DOM_VK_RIGHT -> GLFW_KEY_RIGHT + case 0x25:return 263; // DOM_VK_LEFT -> GLFW_KEY_LEFT + case 0x28:return 264; // DOM_VK_DOWN -> GLFW_KEY_DOWN + case 0x26:return 265; // DOM_VK_UP -> GLFW_KEY_UP + case 0x21:return 266; // DOM_VK_PAGE_UP -> GLFW_KEY_PAGE_UP + case 0x22:return 267; // DOM_VK_PAGE_DOWN -> GLFW_KEY_PAGE_DOWN + case 0x24:return 268; // DOM_VK_HOME -> GLFW_KEY_HOME + case 0x23:return 269; // DOM_VK_END -> GLFW_KEY_END + case 0x14:return 280; // DOM_VK_CAPS_LOCK -> GLFW_KEY_CAPS_LOCK + case 0x91:return 281; // DOM_VK_SCROLL_LOCK -> GLFW_KEY_SCROLL_LOCK + case 0x90:return 282; // DOM_VK_NUM_LOCK -> GLFW_KEY_NUM_LOCK + case 0x2C:return 283; // DOM_VK_SNAPSHOT -> GLFW_KEY_PRINT_SCREEN + case 0x13:return 284; // DOM_VK_PAUSE -> GLFW_KEY_PAUSE + case 0x70:return 290; // DOM_VK_F1 -> GLFW_KEY_F1 + case 0x71:return 291; // DOM_VK_F2 -> GLFW_KEY_F2 + case 0x72:return 292; // DOM_VK_F3 -> GLFW_KEY_F3 + case 0x73:return 293; // DOM_VK_F4 -> GLFW_KEY_F4 + case 0x74:return 294; // DOM_VK_F5 -> GLFW_KEY_F5 + case 0x75:return 295; // DOM_VK_F6 -> GLFW_KEY_F6 + case 0x76:return 296; // DOM_VK_F7 -> GLFW_KEY_F7 + case 0x77:return 297; // DOM_VK_F8 -> GLFW_KEY_F8 + case 0x78:return 298; // DOM_VK_F9 -> GLFW_KEY_F9 + case 0x79:return 299; // DOM_VK_F10 -> GLFW_KEY_F10 + case 0x7A:return 300; // DOM_VK_F11 -> GLFW_KEY_F11 + case 0x7B:return 301; // DOM_VK_F12 -> GLFW_KEY_F12 + case 0x7C:return 302; // DOM_VK_F13 -> GLFW_KEY_F13 + case 0x7D:return 303; // DOM_VK_F14 -> GLFW_KEY_F14 + case 0x7E:return 304; // DOM_VK_F15 -> GLFW_KEY_F15 + case 0x7F:return 305; // DOM_VK_F16 -> GLFW_KEY_F16 + case 0x80:return 306; // DOM_VK_F17 -> GLFW_KEY_F17 + case 0x81:return 307; // DOM_VK_F18 -> GLFW_KEY_F18 + case 0x82:return 308; // DOM_VK_F19 -> GLFW_KEY_F19 + case 0x83:return 309; // DOM_VK_F20 -> GLFW_KEY_F20 + case 0x84:return 310; // DOM_VK_F21 -> GLFW_KEY_F21 + case 0x85:return 311; // DOM_VK_F22 -> GLFW_KEY_F22 + case 0x86:return 312; // DOM_VK_F23 -> GLFW_KEY_F23 + case 0x87:return 313; // DOM_VK_F24 -> GLFW_KEY_F24 + case 0x88:return 314; // 0x88 (not used?) -> GLFW_KEY_F25 + case 0x60:return 320; // DOM_VK_NUMPAD0 -> GLFW_KEY_KP_0 + case 0x61:return 321; // DOM_VK_NUMPAD1 -> GLFW_KEY_KP_1 + case 0x62:return 322; // DOM_VK_NUMPAD2 -> GLFW_KEY_KP_2 + case 0x63:return 323; // DOM_VK_NUMPAD3 -> GLFW_KEY_KP_3 + case 0x64:return 324; // DOM_VK_NUMPAD4 -> GLFW_KEY_KP_4 + case 0x65:return 325; // DOM_VK_NUMPAD5 -> GLFW_KEY_KP_5 + case 0x66:return 326; // DOM_VK_NUMPAD6 -> GLFW_KEY_KP_6 + case 0x67:return 327; // DOM_VK_NUMPAD7 -> GLFW_KEY_KP_7 + case 0x68:return 328; // DOM_VK_NUMPAD8 -> GLFW_KEY_KP_8 + case 0x69:return 329; // DOM_VK_NUMPAD9 -> GLFW_KEY_KP_9 + case 0x6E:return 330; // DOM_VK_DECIMAL -> GLFW_KEY_KP_DECIMAL + case 0x6F:return 331; // DOM_VK_DIVIDE -> GLFW_KEY_KP_DIVIDE + case 0x6A:return 332; // DOM_VK_MULTIPLY -> GLFW_KEY_KP_MULTIPLY + case 0x6D:return 333; // DOM_VK_SUBTRACT -> GLFW_KEY_KP_SUBTRACT + case 0x6B:return 334; // DOM_VK_ADD -> GLFW_KEY_KP_ADD + // case 0x0D:return 335; // DOM_VK_RETURN -> GLFW_KEY_KP_ENTER (DOM_KEY_LOCATION_RIGHT) + // case 0x61:return 336; // DOM_VK_EQUALS -> GLFW_KEY_KP_EQUAL (DOM_KEY_LOCATION_RIGHT) + case 0x10:return 340; // DOM_VK_SHIFT -> GLFW_KEY_LEFT_SHIFT + case 0x11:return 341; // DOM_VK_CONTROL -> GLFW_KEY_LEFT_CONTROL + case 0x12:return 342; // DOM_VK_ALT -> GLFW_KEY_LEFT_ALT + case 0x5B:return 343; // DOM_VK_WIN -> GLFW_KEY_LEFT_SUPER + // case 0x10:return 344; // DOM_VK_SHIFT -> GLFW_KEY_RIGHT_SHIFT (DOM_KEY_LOCATION_RIGHT) + // case 0x11:return 345; // DOM_VK_CONTROL -> GLFW_KEY_RIGHT_CONTROL (DOM_KEY_LOCATION_RIGHT) + // case 0x12:return 346; // DOM_VK_ALT -> GLFW_KEY_RIGHT_ALT (DOM_KEY_LOCATION_RIGHT) + // case 0x5B:return 347; // DOM_VK_WIN -> GLFW_KEY_RIGHT_SUPER (DOM_KEY_LOCATION_RIGHT) + case 0x5D:return 348; // DOM_VK_CONTEXT_MENU -> GLFW_KEY_MENU + // XXX: GLFW_KEY_WORLD_1, GLFW_KEY_WORLD_2 what are these? + default:return -1; // GLFW_KEY_UNKNOWN + }; + },getModBits:function (win) { + var mod = 0; + if (win.keys[340]) mod |= 0x0001; // GLFW_MOD_SHIFT + if (win.keys[341]) mod |= 0x0002; // GLFW_MOD_CONTROL + if (win.keys[342]) mod |= 0x0004; // GLFW_MOD_ALT + if (win.keys[343]) mod |= 0x0008; // GLFW_MOD_SUPER + return mod; + },onKeyPress:function (event) { + if (!GLFW.active || !GLFW.active.charFunc) return; + + // correct unicode charCode is only available with onKeyPress event + var charCode = event.charCode; + if (charCode == 0 || (charCode >= 0x00 && charCode <= 0x1F)) return; + + + Module['dynCall_vii'](GLFW.active.charFunc, GLFW.active.id, charCode); + },onKeyChanged:function (event, status) { + if (!GLFW.active) return; + + var key = GLFW.DOMToGLFWKeyCode(event.keyCode); + if (key == -1) return; + + var repeat = status && GLFW.active.keys[key]; + GLFW.active.keys[key] = status; + if (!GLFW.active.keyFunc) return; + + + if (repeat) status = 2; // GLFW_REPEAT + Module['dynCall_viiiii'](GLFW.active.keyFunc, GLFW.active.id, key, event.keyCode, status, GLFW.getModBits(GLFW.active)); + },onKeydown:function (event) { + GLFW.onKeyChanged(event, 1); // GLFW_PRESS or GLFW_REPEAT + + // This logic comes directly from the sdl implementation. We cannot + // call preventDefault on all keydown events otherwise onKeyPress will + // not get called + if (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */) { + event.preventDefault(); + } + },onKeyup:function (event) { + GLFW.onKeyChanged(event, 0); // GLFW_RELEASE + },onMousemove:function (event) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"] || !GLFW.active.cursorPosFunc) return; + + + Module['dynCall_vidd'](GLFW.active.cursorPosFunc, GLFW.active.id, Browser.mouseX, Browser.mouseY); + },DOMToGLFWMouseButton:function (event) { + // DOM and glfw have different button codes. + // See http://www.w3schools.com/jsref/event_button.asp. + var eventButton = event['button']; + if (eventButton > 0) { + if (eventButton == 1) { + eventButton = 2; + } else { + eventButton = 1; + } + } + return eventButton; + },onMouseenter:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 1); + },onMouseleave:function (event) { + if (!GLFW.active) return; + + if (event.target != Module["canvas"] || !GLFW.active.cursorEnterFunc) return; + + Module['dynCall_vii'](GLFW.active.cursorEnterFunc, GLFW.active.id, 0); + },onMouseButtonChanged:function (event, status) { + if (!GLFW.active) return; + + Browser.calculateMouseEvent(event); + + if (event.target != Module["canvas"]) return; + + eventButton = GLFW.DOMToGLFWMouseButton(event); + + if (status == 1) { // GLFW_PRESS + GLFW.active.buttons |= (1 << eventButton); + try { + event.target.setCapture(); + } catch (e) {} + } else { // GLFW_RELEASE + GLFW.active.buttons &= ~(1 << eventButton); + } + + if (!GLFW.active.mouseButtonFunc) return; + + + Module['dynCall_viiii'](GLFW.active.mouseButtonFunc, GLFW.active.id, eventButton, status, GLFW.getModBits(GLFW.active)); + },onMouseButtonDown:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 1); // GLFW_PRESS + },onMouseButtonUp:function (event) { + if (!GLFW.active) return; + GLFW.onMouseButtonChanged(event, 0); // GLFW_RELEASE + },onMouseWheel:function (event) { + // Note the minus sign that flips browser wheel direction (positive direction scrolls page down) to native wheel direction (positive direction is mouse wheel up) + var delta = -Browser.getMouseWheelDelta(event); + delta = (delta == 0) ? 0 : (delta > 0 ? Math.max(delta, 1) : Math.min(delta, -1)); // Quantize to integer so that minimum scroll is at least +/- 1. + GLFW.wheelPos += delta; + + if (!GLFW.active || !GLFW.active.scrollFunc || event.target != Module['canvas']) return; + + + var sx = 0; + var sy = 0; + if (event.type == 'mousewheel') { + sx = event.wheelDeltaX; + sy = event.wheelDeltaY; + } else { + sx = event.deltaX; + sy = event.deltaY; + } + + Module['dynCall_vidd'](GLFW.active.scrollFunc, GLFW.active.id, sx, sy); + + event.preventDefault(); + },onCanvasResize:function (width, height) { + if (!GLFW.active) return; + + var resizeNeeded = true; + + // If the client is requestiong fullscreen mode + if (document["fullscreen"] || document["fullScreen"] || document["mozFullScreen"] || document["webkitIsFullScreen"]) { + GLFW.active.storedX = GLFW.active.x; + GLFW.active.storedY = GLFW.active.y; + GLFW.active.storedWidth = GLFW.active.width; + GLFW.active.storedHeight = GLFW.active.height; + GLFW.active.x = GLFW.active.y = 0; + GLFW.active.width = screen.width; + GLFW.active.height = screen.height; + GLFW.active.fullscreen = true; + + // If the client is reverting from fullscreen mode + } else if (GLFW.active.fullscreen == true) { + GLFW.active.x = GLFW.active.storedX; + GLFW.active.y = GLFW.active.storedY; + GLFW.active.width = GLFW.active.storedWidth; + GLFW.active.height = GLFW.active.storedHeight; + GLFW.active.fullscreen = false; + + // If the width/height values do not match current active window sizes + } else if (GLFW.active.width != width || GLFW.active.height != height) { + GLFW.active.width = width; + GLFW.active.height = height; + } else { + resizeNeeded = false; + } + + // If any of the above conditions were true, we need to resize the canvas + if (resizeNeeded) { + // resets the canvas size to counter the aspect preservation of Browser.updateCanvasDimensions + Browser.setCanvasSize(GLFW.active.width, GLFW.active.height, true); + // TODO: Client dimensions (clientWidth/clientHeight) vs pixel dimensions (width/height) of + // the canvas should drive window and framebuffer size respectfully. + GLFW.onWindowSizeChanged(); + GLFW.onFramebufferSizeChanged(); + } + },onWindowSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.windowSizeFunc) return; + + + Module['dynCall_viii'](GLFW.active.windowSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },onFramebufferSizeChanged:function () { + if (!GLFW.active) return; + + if (!GLFW.active.framebufferSizeFunc) return; + + Module['dynCall_viii'](GLFW.active.framebufferSizeFunc, GLFW.active.id, GLFW.active.width, GLFW.active.height); + },requestFullscreen:function () { + var RFS = Module["canvas"]['requestFullscreen'] || + Module["canvas"]['mozRequestFullScreen'] || + Module["canvas"]['webkitRequestFullScreen'] || + (function() {}); + RFS.apply(Module["canvas"], []); + },requestFullScreen:function () { + Module.printErr('GLFW.requestFullScreen() is deprecated. Please call GLFW.requestFullscreen instead.'); + GLFW.requestFullScreen = function() { + return GLFW.requestFullscreen(); + } + return GLFW.requestFullscreen(); + },exitFullscreen:function () { + var CFS = document['exitFullscreen'] || + document['cancelFullScreen'] || + document['mozCancelFullScreen'] || + document['webkitCancelFullScreen'] || + (function() {}); + CFS.apply(document, []); + },cancelFullScreen:function () { + Module.printErr('GLFW.cancelFullScreen() is deprecated. Please call GLFW.exitFullscreen instead.'); + GLFW.cancelFullScreen = function() { + return GLFW.exitFullscreen(); + } + return GLFW.exitFullscreen(); + },getTime:function () { + return _emscripten_get_now() / 1000; + },setWindowTitle:function (winid, title) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + win.title = Pointer_stringify(title); + if (GLFW.active.id == win.id) { + document.title = win.title; + } + },setKeyCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.keyFunc = cbfun; + },setCharCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.charFunc = cbfun; + },setMouseButtonCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.mouseButtonFunc = cbfun; + },setCursorPosCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorPosFunc = cbfun; + },setScrollCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.scrollFunc = cbfun; + },setWindowSizeCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowSizeFunc = cbfun; + + },setWindowCloseCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowCloseFunc = cbfun; + },setWindowRefreshCallback:function (winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowRefreshFunc = cbfun; + },onClickRequestPointerLock:function (e) { + if (!Browser.pointerLock && Module['canvas'].requestPointerLock) { + Module['canvas'].requestPointerLock(); + e.preventDefault(); + } + },setInputMode:function (winid, mode, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + switch(mode) { + case 0x00033001: { // GLFW_CURSOR + switch(value) { + case 0x00034001: { // GLFW_CURSOR_NORMAL + win.inputModes[mode] = value; + Module['canvas'].removeEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].exitPointerLock(); + break; + } + case 0x00034002: { // GLFW_CURSOR_HIDDEN + console.log("glfwSetInputMode called with GLFW_CURSOR_HIDDEN value not implemented."); + break; + } + case 0x00034003: { // GLFW_CURSOR_DISABLED + win.inputModes[mode] = value; + Module['canvas'].addEventListener('click', GLFW.onClickRequestPointerLock, true); + Module['canvas'].requestPointerLock(); + break; + } + default: { + console.log("glfwSetInputMode called with unknown value parameter value: " + value + "."); + break; + } + } + break; + } + case 0x00033002: { // GLFW_STICKY_KEYS + console.log("glfwSetInputMode called with GLFW_STICKY_KEYS mode not implemented."); + break; + } + case 0x00033003: { // GLFW_STICKY_MOUSE_BUTTONS + console.log("glfwSetInputMode called with GLFW_STICKY_MOUSE_BUTTONS mode not implemented."); + break; + } + default: { + console.log("glfwSetInputMode called with unknown mode parameter value: " + mode + "."); + break; + } + } + },getKey:function (winid, key) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return win.keys[key]; + },getMouseButton:function (winid, button) { + var win = GLFW.WindowFromId(winid); + if (!win) return 0; + return (win.buttons & (1 << button)) > 0; + },getCursorPos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'double'); + setValue(y, Browser.mouseY, 'double'); + },getMousePos:function (winid, x, y) { + setValue(x, Browser.mouseX, 'i32'); + setValue(y, Browser.mouseY, 'i32'); + },setCursorPos:function (winid, x, y) { + },getWindowPos:function (winid, x, y) { + var wx = 0; + var wy = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + wx = win.x; + wy = win.y; + } + + setValue(x, wx, 'i32'); + setValue(y, wy, 'i32'); + },setWindowPos:function (winid, x, y) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.x = x; + win.y = y; + },getWindowSize:function (winid, width, height) { + var ww = 0; + var wh = 0; + + var win = GLFW.WindowFromId(winid); + if (win) { + ww = win.width; + wh = win.height; + } + + setValue(width, ww, 'i32'); + setValue(height, wh, 'i32'); + },setWindowSize:function (winid, width, height) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (GLFW.active.id == win.id) { + if (width == screen.width && height == screen.height) { + GLFW.requestFullscreen(); + } else { + GLFW.exitFullscreen(); + Browser.setCanvasSize(width, height); + win.width = width; + win.height = height; + } + } + + if (!win.windowSizeFunc) return; + + + Module['dynCall_viii'](win.windowSizeFunc, win.id, width, height); + },createWindow:function (width, height, title, monitor, share) { + var i, id; + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] !== null; i++); + if (i > 0) throw "glfwCreateWindow only supports one window at time currently"; + + // id for window + id = i + 1; + + // not valid + if (width <= 0 || height <= 0) return 0; + + if (monitor) { + GLFW.requestFullscreen(); + } else { + Browser.setCanvasSize(width, height); + } + + // Create context when there are no existing alive windows + for (i = 0; i < GLFW.windows.length && GLFW.windows[i] == null; i++); + if (i == GLFW.windows.length) { + var contextAttributes = { + antialias: (GLFW.hints[0x0002100D] > 1), // GLFW_SAMPLES + depth: (GLFW.hints[0x00021005] > 0), // GLFW_DEPTH_BITS + stencil: (GLFW.hints[0x00021006] > 0), // GLFW_STENCIL_BITS + alpha: (GLFW.hints[0x00021004] > 0) // GLFW_ALPHA_BITS + } + Module.ctx = Browser.createContext(Module['canvas'], true, true, contextAttributes); + } + + // If context creation failed, do not return a valid window + if (!Module.ctx) return 0; + + // Get non alive id + var win = new GLFW.Window(id, width, height, title, monitor, share); + + // Set window to array + if (id - 1 == GLFW.windows.length) { + GLFW.windows.push(win); + } else { + GLFW.windows[id - 1] = win; + } + + GLFW.active = win; + return win.id; + },destroyWindow:function (winid) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + + if (win.windowCloseFunc) + Module['dynCall_vi'](win.windowCloseFunc, win.id); + + GLFW.windows[win.id - 1] = null; + if (GLFW.active.id == win.id) + GLFW.active = null; + + // Destroy context when no alive windows + for (var i = 0; i < GLFW.windows.length; i++) + if (GLFW.windows[i] !== null) return; + + Module.ctx = Browser.destroyContext(Module['canvas'], true, true); + },swapBuffers:function (winid) { + },GLFW2ParamToGLFW3Param:function (param) { + table = { + 0x00030001:0, // GLFW_MOUSE_CURSOR + 0x00030002:0, // GLFW_STICKY_KEYS + 0x00030003:0, // GLFW_STICKY_MOUSE_BUTTONS + 0x00030004:0, // GLFW_SYSTEM_KEYS + 0x00030005:0, // GLFW_KEY_REPEAT + 0x00030006:0, // GLFW_AUTO_POLL_EVENTS + 0x00020001:0, // GLFW_OPENED + 0x00020002:0, // GLFW_ACTIVE + 0x00020003:0, // GLFW_ICONIFIED + 0x00020004:0, // GLFW_ACCELERATED + 0x00020005:0x00021001, // GLFW_RED_BITS + 0x00020006:0x00021002, // GLFW_GREEN_BITS + 0x00020007:0x00021003, // GLFW_BLUE_BITS + 0x00020008:0x00021004, // GLFW_ALPHA_BITS + 0x00020009:0x00021005, // GLFW_DEPTH_BITS + 0x0002000A:0x00021006, // GLFW_STENCIL_BITS + 0x0002000B:0x0002100F, // GLFW_REFRESH_RATE + 0x0002000C:0x00021007, // GLFW_ACCUM_RED_BITS + 0x0002000D:0x00021008, // GLFW_ACCUM_GREEN_BITS + 0x0002000E:0x00021009, // GLFW_ACCUM_BLUE_BITS + 0x0002000F:0x0002100A, // GLFW_ACCUM_ALPHA_BITS + 0x00020010:0x0002100B, // GLFW_AUX_BUFFERS + 0x00020011:0x0002100C, // GLFW_STEREO + 0x00020012:0, // GLFW_WINDOW_NO_RESIZE + 0x00020013:0x0002100D, // GLFW_FSAA_SAMPLES + 0x00020014:0x00022002, // GLFW_OPENGL_VERSION_MAJOR + 0x00020015:0x00022003, // GLFW_OPENGL_VERSION_MINOR + 0x00020016:0x00022006, // GLFW_OPENGL_FORWARD_COMPAT + 0x00020017:0x00022007, // GLFW_OPENGL_DEBUG_CONTEXT + 0x00020018:0x00022008, // GLFW_OPENGL_PROFILE + }; + return table[param]; + }};function _glfwGetVideoModes(monitor, count) { + setValue(count, 0, 'i32'); + return 0; + } + + function _glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glStencilFunc(x0, x1, x2) { GLctx['stencilFunc'](x0, x1, x2) } + + function _glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glUniform3iv(location, count, value) { + + + GLctx.uniform3iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*12)>>2)); + } + + function _emscripten_glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glReleaseShaderCompiler() { + // NOP (as allowed by GLES 2.0 spec) + } + + function _glfwSetScrollCallback(winid, cbfun) { + GLFW.setScrollCallback(winid, cbfun); + } + + function _emscripten_glTexParameterf(x0, x1, x2) { GLctx['texParameterf'](x0, x1, x2) } + + function _emscripten_glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + + + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; + + var ERRNO_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"}; + + function ___setErrNo(value) { + if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; + else Module.printErr('failed to set errno from JS'); + return value; + } + + var PATH={splitPath:function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function (parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + return parts; + },normalize:function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function (path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function (path) { + return PATH.splitPath(path)[3]; + },join:function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function (l, r) { + return PATH.normalize(l + '/' + r); + },resolve:function () { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function (from, to) { + from = PATH.resolve(from).substr(1); + to = PATH.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + stream.tty = tty; + stream.seekable = false; + },close:function (stream) { + // flush any pending line data + stream.tty.ops.flush(stream.tty); + },flush:function (stream) { + stream.tty.ops.flush(stream.tty); + },read:function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + for (var i = 0; i < length; i++) { + try { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = new Buffer(BUFSIZE); + var bytesRead = 0; + + var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion + + var fd = process.stdin.fd; + if (isPosixPlatform) { + // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) + var usingDevice = false; + try { + fd = fs.openSync('/dev/stdin', 'r'); + usingDevice = true; + } catch (e) {} + } + + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); + } catch(e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().indexOf('EOF') != -1) bytesRead = 0; + else throw e; + } + + if (usingDevice) { fs.closeSync(fd); } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + + } else if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function (tty, val) { + if (val === null || val === 10) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['print'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }},default_tty1_ops:{put_char:function (tty, val) { + if (val === null || val === 10) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + },flush:function (tty) { + if (tty.output && tty.output.length > 0) { + Module['printErr'](UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }}}; + + var MEMFS={ops_table:null,mount:function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },getFileDataAsRegularArray:function (node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr; // Returns a copy of the original data. + } + return node.contents; // No-op, the file contents are already in a JS array. Return as-is. + },getFileDataAsTypedArray:function (node) { + if (!node.contents) return new Uint8Array; + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + },expandFileStorage:function (node, newCapacity) { + // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file + // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to + // increase the size. + if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { + node.contents = MEMFS.getFileDataAsRegularArray(node); + node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. + } + + if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + return; + } + // Not using a typed array to back the file storage. Use a standard JS array instead. + if (!node.contents && newCapacity > 0) node.contents = []; + while (node.contents.length < newCapacity) node.contents.push(0); + },resizeFileStorage:function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + return; + } + if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. + var oldContents = node.contents; + node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + return; + } + // Backing with a JS array. + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; + else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize; + },node_ops:{getattr:function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + },lookup:function (parent, name) { + throw FS.genericErrors[ERRNO_CODES.ENOENT]; + },mknod:function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function (parent, name) { + delete parent.contents[name]; + },rmdir:function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + delete parent.contents[name]; + },readdir:function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return node.link; + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position+length); + if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. + else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position+length); + return length; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + },allocate:function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < stream.node.usedBytes) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); + } + buffer.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (mmapFlags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }}}; + + var IDBFS={dbs:{},indexedDB:function () { + if (typeof indexedDB !== 'undefined') return indexedDB; + var ret = null; + if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + assert(ret, 'IDBFS used, but indexedDB not supported'); + return ret; + },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { + // reuse all of the core MEMFS functionality + return MEMFS.mount.apply(null, arguments); + },syncfs:function (mount, populate, callback) { + IDBFS.getLocalSet(mount, function(err, local) { + if (err) return callback(err); + + IDBFS.getRemoteSet(mount, function(err, remote) { + if (err) return callback(err); + + var src = populate ? remote : local; + var dst = populate ? local : remote; + + IDBFS.reconcile(src, dst, callback); + }); + }); + },getDB:function (name, callback) { + // check the cache first + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + if (!req) { + return callback("Unable to connect to IndexedDB"); + } + req.onupgradeneeded = function(e) { + var db = e.target.result; + var transaction = e.target.transaction; + + var fileStore; + + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + + if (!fileStore.indexNames.contains('timestamp')) { + fileStore.createIndex('timestamp', 'timestamp', { unique: false }); + } + }; + req.onsuccess = function() { + db = req.result; + + // add to the cache + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },getLocalSet:function (mount, callback) { + var entries = {}; + + function isRealDir(p) { + return p !== '.' && p !== '..'; + }; + function toAbsolute(root) { + return function(p) { + return PATH.join2(root, p); + } + }; + + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + + while (check.length) { + var path = check.pop(); + var stat; + + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + + entries[path] = { timestamp: stat.mtime }; + } + + return callback(null, { type: 'local', entries: entries }); + },getRemoteSet:function (mount, callback) { + var entries = {}; + + IDBFS.getDB(mount.mountpoint, function(err, db) { + if (err) return callback(err); + + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); + transaction.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index('timestamp'); + + index.openKeyCursor().onsuccess = function(event) { + var cursor = event.target.result; + + if (!cursor) { + return callback(null, { type: 'remote', db: db, entries: entries }); + } + + entries[cursor.primaryKey] = { timestamp: cursor.key }; + + cursor.continue(); + }; + }); + },loadLocalEntry:function (path, callback) { + var stat, node; + + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode }); + } else if (FS.isFile(stat.mode)) { + // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. + // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. + node.contents = MEMFS.getFileDataAsTypedArray(node); + return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); + } else { + return callback(new Error('node type not supported')); + } + },storeLocalEntry:function (path, entry, callback) { + try { + if (FS.isDir(entry.mode)) { + FS.mkdir(path, entry.mode); + } else if (FS.isFile(entry.mode)) { + FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); + } else { + return callback(new Error('node type not supported')); + } + + FS.chmod(path, entry.mode); + FS.utime(path, entry.timestamp, entry.timestamp); + } catch (e) { + return callback(e); + } + + callback(null); + },removeLocalEntry:function (path, callback) { + try { + var lookup = FS.lookupPath(path); + var stat = FS.stat(path); + + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + + callback(null); + },loadRemoteEntry:function (store, path, callback) { + var req = store.get(path); + req.onsuccess = function(event) { callback(null, event.target.result); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },storeRemoteEntry:function (store, path, entry, callback) { + var req = store.put(entry, path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },removeRemoteEntry:function (store, path, callback) { + var req = store.delete(path); + req.onsuccess = function() { callback(null); }; + req.onerror = function(e) { + callback(this.error); + e.preventDefault(); + }; + },reconcile:function (src, dst, callback) { + var total = 0; + + var create = []; + Object.keys(src.entries).forEach(function (key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e.timestamp > e2.timestamp) { + create.push(key); + total++; + } + }); + + var remove = []; + Object.keys(dst.entries).forEach(function (key) { + var e = dst.entries[key]; + var e2 = src.entries[key]; + if (!e2) { + remove.push(key); + total++; + } + }); + + if (!total) { + return callback(null); + } + + var errored = false; + var completed = 0; + var db = src.type === 'remote' ? src.db : dst.db; + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= total) { + return callback(null); + } + }; + + transaction.onerror = function(e) { + done(this.error); + e.preventDefault(); + }; + + // sort paths in ascending order so directory entries are created + // before the files inside them + create.sort().forEach(function (path) { + if (dst.type === 'local') { + IDBFS.loadRemoteEntry(store, path, function (err, entry) { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, function (err, entry) { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + + // sort paths in descending order so files are deleted before their + // parent directories + remove.sort().reverse().forEach(function(path) { + if (dst.type === 'local') { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + }}; + + var NODEFS={isWindows:false,staticInit:function () { + NODEFS.isWindows = !!process.platform.match(/^win/); + },mount:function (mount) { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + },getMode:function (path) { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so + // propagate write bits to execute bits. + stat.mode = stat.mode | ((stat.mode & 146) >> 1); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return stat.mode; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { + flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. + flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. + if (flags in NODEFS.flagsToPermissionStringMap) { + return NODEFS.flagsToPermissionStringMap[flags]; + } else { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },node_ops:{getattr:function (node) { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. + // See http://support.microsoft.com/kb/140365 + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function (node, attr) { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + },mknod:function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function (node) { + var path = NODEFS.realPath(node); + try { + path = fs.readlinkSync(path); + path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); + return path; + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + if (length === 0) return 0; // node errors on 0 length reads + // FIXME this is terrible. + var nbuffer = new Buffer(length); + var res; + try { + res = fs.readSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + if (res > 0) { + for (var i = 0; i < res; i++) { + buffer[offset + i] = nbuffer[i]; + } + } + return res; + },write:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); + var res; + try { + res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return res; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + return position; + }}}; + + var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { + assert(ENVIRONMENT_IS_WORKER); + if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); + var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); + var createdParents = {}; + function ensureParent(path) { + // return the parent node, creating subdirs as necessary + var parts = path.split('/'); + var parent = root; + for (var i = 0; i < parts.length-1; i++) { + var curr = parts.slice(0, i+1).join('/'); + // Issue 4254: Using curr as a node name will prevent the node + // from being found in FS.nameTable when FS.open is called on + // a path which holds a child of this node, + // given that all FS functions assume node names + // are just their corresponding parts within their given path, + // rather than incremental aggregates which include their parent's + // directories. + if (!createdParents[curr]) { + createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); + } + parent = createdParents[curr]; + } + return parent; + } + function base(path) { + var parts = path.split('/'); + return parts[parts.length-1]; + } + // We also accept FileList here, by using Array.prototype + Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { + WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); + }); + (mount.opts["blobs"] || []).forEach(function(obj) { + WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); + }); + (mount.opts["packages"] || []).forEach(function(pack) { + pack['metadata'].files.forEach(function(file) { + var name = file.filename.substr(1); // remove initial slash + WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); + }); + }); + return root; + },createNode:function (parent, name, mode, dev, contents, mtime) { + var node = FS.createNode(parent, name, mode); + node.mode = mode; + node.node_ops = WORKERFS.node_ops; + node.stream_ops = WORKERFS.stream_ops; + node.timestamp = (mtime || new Date).getTime(); + assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); + if (mode === WORKERFS.FILE_MODE) { + node.size = contents.size; + node.contents = contents; + } else { + node.size = 4096; + node.contents = {}; + } + if (parent) { + parent.contents[name] = node; + } + return node; + },node_ops:{getattr:function (node) { + return { + dev: 1, + ino: undefined, + mode: node.mode, + nlink: 1, + uid: 0, + gid: 0, + rdev: undefined, + size: node.size, + atime: new Date(node.timestamp), + mtime: new Date(node.timestamp), + ctime: new Date(node.timestamp), + blksize: 4096, + blocks: Math.ceil(node.size / 4096), + }; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + },lookup:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + },mknod:function (parent, name, mode, dev) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rename:function (oldNode, newDir, newName) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },unlink:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },rmdir:function (parent, name) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readdir:function (node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newName, oldPath) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + },readlink:function (node) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + if (position >= stream.node.size) return 0; + var chunk = stream.node.contents.slice(position, position + length); + var ab = WORKERFS.reader.readAsArrayBuffer(chunk); + buffer.set(new Uint8Array(ab), offset); + return chunk.size; + },write:function (stream, buffer, offset, length, position) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.size; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return position; + }}}; + + var _stdin=STATICTOP; STATICTOP += 16;; + + var _stdout=STATICTOP; STATICTOP += 16;; + + var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return ___setErrNo(e.errno); + },lookupPath:function (path, opts) { + path = PATH.resolve(FS.cwd(), path); + opts = opts || {}; + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function (parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function (parent, name) { + var err = FS.mayLookup(parent); + if (err) { + throw new FS.ErrnoError(err, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function (parent, name, mode, rdev) { + if (!FS.FSNode) { + FS.FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + + FS.FSNode.prototype = {}; + + // compatibility + var readMode = 292 | 73; + var writeMode = 146; + + // NOTE we must use Object.defineProperties instead of individual calls to + // Object.defineProperty in order to make closure compiler happy + Object.defineProperties(FS.FSNode.prototype, { + read: { + get: function() { return (this.mode & readMode) === readMode; }, + set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } + }, + write: { + get: function() { return (this.mode & writeMode) === writeMode; }, + set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } + }, + isFolder: { + get: function() { return FS.isDir(this.mode); } + }, + isDevice: { + get: function() { return FS.isChrdev(this.mode); } + } + }); + } + + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function (node) { + FS.hashRemoveNode(node); + },isRoot:function (node) { + return node === node.parent; + },isMountpoint:function (node) { + return !!node.mounted; + },isFile:function (mode) { + return (mode & 61440) === 32768; + },isDir:function (mode) { + return (mode & 61440) === 16384; + },isLink:function (mode) { + return (mode & 61440) === 40960; + },isChrdev:function (mode) { + return (mode & 61440) === 8192; + },isBlkdev:function (mode) { + return (mode & 61440) === 24576; + },isFIFO:function (mode) { + return (mode & 61440) === 4096; + },isSocket:function (mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function (flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function (node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return ERRNO_CODES.EACCES; + } + return 0; + },mayLookup:function (dir) { + var err = FS.nodePermissions(dir, 'x'); + if (err) return err; + if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; + return 0; + },mayCreate:function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return ERRNO_CODES.EEXIST; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var err = FS.nodePermissions(dir, 'wx'); + if (err) { + return err; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return ERRNO_CODES.ENOTDIR; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return ERRNO_CODES.EBUSY; + } + } else { + if (FS.isDir(node.mode)) { + return ERRNO_CODES.EISDIR; + } + } + return 0; + },mayOpen:function (node, flags) { + if (!node) { + return ERRNO_CODES.ENOENT; + } + if (FS.isLink(node.mode)) { + return ERRNO_CODES.ELOOP; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return ERRNO_CODES.EISDIR; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(ERRNO_CODES.EMFILE); + },getStream:function (fd) { + return FS.streams[fd]; + },createStream:function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function(){}; + FS.FSStream.prototype = {}; + // compatibility + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }); + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function (fd) { + FS.streams[fd] = null; + },chrdev_stream_ops:{open:function (stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function () { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + }},major:function (dev) { + return ((dev) >> 8); + },minor:function (dev) { + return ((dev) & 0xff); + },makedev:function (ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function (dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function (dev) { + return FS.devices[dev]; + },getMounts:function (mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function (populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(err) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(err); + } + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return doCallback(err); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function (type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function (parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.mayCreate(parent, name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function (path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function (path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdirTree:function (path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch(e) { + if (e.errno != ERRNO_CODES.EEXIST) throw e; + } + } + },mkdev:function (path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function (oldpath, newpath) { + if (!PATH.resolve(oldpath)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + var newname = PATH.basename(newpath); + var err = FS.mayCreate(parent, newname); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(ERRNO_CODES.EXDEV); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + // new path should not be an ancestor of the old path + relative = PATH.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var err = FS.mayDelete(old_dir, old_name, isdir); + if (err) { + throw new FS.ErrnoError(err); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + err = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + err = FS.nodePermissions(old_dir, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, true); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + },unlink:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, false); + if (err) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + },stat:function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return node.node_ops.getattr(node); + },lstat:function (path) { + return FS.stat(path, true); + },chmod:function (path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function (path, mode) { + FS.chmod(path, mode, true); + },fchmod:function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chmod(stream.node, mode); + },chown:function (path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function (path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chown(stream.node, uid, gid); + },truncate:function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.nodePermissions(node, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + FS.truncate(stream.node, len); + },utime:function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function (path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(ERRNO_CODES.EEXIST); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var err = FS.mayOpen(node, flags); + if (err) { + throw new FS.ErrnoError(err); + } + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + Module['printErr']('read file: ' + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function (stream) { + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + },llseek:function (stream, offset, whence) { + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + },read:function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if (stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function (stream, offset, length) { + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + // TODO if PROT is PROT_WRITE, make sure we have write access + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EACCES); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },msync:function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + },munmap:function (stream) { + return 0; + },ioctl:function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + opts.encoding = opts.encoding || 'utf8'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var stream = FS.open(path, opts.flags, opts.mode); + if (opts.encoding === 'utf8') { + var buf = new Uint8Array(lengthBytesUTF8(data)+1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); + } else if (opts.encoding === 'binary') { + FS.write(stream, data, 0, data.length, 0, opts.canOwn); + } + FS.close(stream); + },cwd:function () { + return FS.currentPath; + },chdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + var err = FS.nodePermissions(lookup.node, 'x'); + if (err) { + throw new FS.ErrnoError(err); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function () { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + },createDefaultDevices:function () { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function(stream, buffer, offset, length, pos) { return length; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device; + if (typeof crypto !== 'undefined') { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs + random_device = function() { return require('crypto').randomBytes(1)[0]; }; + } else { + // default for ES5 platforms + random_device = function() { return (Math.random()*256)|0; }; + } + FS.createDevice('/dev', 'random', random_device); + FS.createDevice('/dev', 'urandom', random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createSpecialDirectories:function () { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount: function() { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: function(parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: function() { return stream.path } } + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + },createStandardStreams:function () { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + + var stdout = FS.open('/dev/stdout', 'w'); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + + var stderr = FS.open('/dev/stderr', 'w'); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + //Module.printErr(stackTrace()); // useful for debugging + this.node = node; + this.setErrno = function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) this.stack = demangleAll(this.stack); + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [ERRNO_CODES.ENOENT].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function () { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + 'IDBFS': IDBFS, + 'NODEFS': NODEFS, + 'WORKERFS': WORKERFS, + }; + },init:function (input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function () { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + var fflush = Module['_fflush']; + if (fflush) fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function (relative, base) { + return PATH.resolve(base, relative); + },standardizePath:function (path) { + return PATH.normalize(path); + },findObject:function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + ___setErrNo(ret.error); + return null; + } + },analyzePath:function (path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function (parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (Module['read']) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(Module['read'](obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) ___setErrNo(ERRNO_CODES.EIO); + return success; + },createLazyFile:function (parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize)|0; + return this.getter(chunkNum)[chunkOffset]; + } + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + } + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); // XXX perhaps this method should move onto Browser? + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency(dep); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function () { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + console.log('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { + if (path[0] !== '/') { + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + dir = dirstream.path; + } + path = PATH.join2(dir, path); + } + return path; + },doStat:function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -ERRNO_CODES.ENOTDIR; + } + throw e; + } + HEAP32[((buf)>>2)]=stat.dev; + HEAP32[(((buf)+(4))>>2)]=0; + HEAP32[(((buf)+(8))>>2)]=stat.ino; + HEAP32[(((buf)+(12))>>2)]=stat.mode; + HEAP32[(((buf)+(16))>>2)]=stat.nlink; + HEAP32[(((buf)+(20))>>2)]=stat.uid; + HEAP32[(((buf)+(24))>>2)]=stat.gid; + HEAP32[(((buf)+(28))>>2)]=stat.rdev; + HEAP32[(((buf)+(32))>>2)]=0; + HEAP32[(((buf)+(36))>>2)]=stat.size; + HEAP32[(((buf)+(40))>>2)]=4096; + HEAP32[(((buf)+(44))>>2)]=stat.blocks; + HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; + HEAP32[(((buf)+(52))>>2)]=0; + HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; + HEAP32[(((buf)+(60))>>2)]=0; + HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; + HEAP32[(((buf)+(68))>>2)]=0; + HEAP32[(((buf)+(72))>>2)]=stat.ino; + return 0; + },doMsync:function (addr, stream, len, flags) { + var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); + FS.msync(stream, buffer, 0, len, flags); + },doMkdir:function (path, mode) { + // remove a trailing slash, if one - /a/b/ has basename of '', but + // we want to create b in the context of this function + path = PATH.normalize(path); + if (path[path.length-1] === '/') path = path.substr(0, path.length-1); + FS.mkdir(path, mode, 0); + return 0; + },doMknod:function (path, mode, dev) { + // we don't want this in the JS API as it uses mknod to create all nodes. + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: return -ERRNO_CODES.EINVAL; + } + FS.mknod(path, mode, dev); + return 0; + },doReadlink:function (path, buf, bufsize) { + if (bufsize <= 0) return -ERRNO_CODES.EINVAL; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf+len]; + stringToUTF8(ret, buf, bufsize+1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf+len] = endChar; + + return len; + },doAccess:function (path, amode) { + if (amode & ~7) { + // need a valid mode + return -ERRNO_CODES.EINVAL; + } + var node; + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + var perms = ''; + if (amode & 4) perms += 'r'; + if (amode & 2) perms += 'w'; + if (amode & 1) perms += 'x'; + if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { + return -ERRNO_CODES.EACCES; + } + return 0; + },doDup:function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd; + },doReadv:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.read(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + },doWritev:function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(((iov)+(i*8))>>2)]; + var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; + var curr = FS.write(stream, HEAP8,ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + },varargs:0,get:function (varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; + return ret; + },getStr:function () { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + },getStreamFromFD:function () { + var stream = FS.getStream(SYSCALLS.get()); + if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return stream; + },getSocketFromFD:function () { + var socket = SOCKFS.getSocket(SYSCALLS.get()); + if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); + return socket; + },getSocketAddress:function (allowNull) { + var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); + if (allowNull && addrp === 0) return null; + var info = __read_sockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; + },get64:function () { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) assert(high === 0); + else assert(high === -1); + return low; + },getZero:function () { + assert(SYSCALLS.get() === 0); + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; + try { + // ioctl + var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); + switch (op) { + case 21505: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + case 21506: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return -ERRNO_CODES.EINVAL; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + default: abort('bad ioctl syscall ' + op); + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glSampleCoverage(value, invert) { + GLctx.sampleCoverage(value, !!invert); + } + + function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glFrustum() { + Module['printErr']('missing function: emscripten_glFrustum'); abort(-1); + } + + function _glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glfwSetWindowSizeCallback(winid, cbfun) { + GLFW.setWindowSizeCallback(winid, cbfun); + } + + function _emscripten_glGetTexParameterfv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAPF32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _emscripten_glUniform4i(location, v0, v1, v2, v3) { + GLctx.uniform4i(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, renderbuffer ? GL.renderbuffers[renderbuffer] : null); + } + + function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + + + var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () { + if (typeof window !== 'undefined') { + window.addEventListener("gamepadconnected", function() { ++JSEvents.numGamepadsConnected; }); + window.addEventListener("gamepaddisconnected", function() { --JSEvents.numGamepadsConnected; }); + } + },registerRemoveEventListeners:function () { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(function() { + for(var i = JSEvents.eventHandlers.length-1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + }); + JSEvents.removeEventListenersRegistered = true; + } + },findEventTarget:function (target) { + if (target) { + if (typeof target == "number") { + target = Pointer_stringify(target); + } + if (target == '#window') return window; + else if (target == '#document') return document; + else if (target == '#screen') return window.screen; + else if (target == '#canvas') return Module['canvas']; + + if (typeof target == 'string') return document.getElementById(target); + else return target; + } else { + // The sensible target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + return window; + } + },deferredCalls:[],deferCall:function (targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + + for(var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + // Test if the given call was already queued, and if so, don't add it again. + for(var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + + JSEvents.deferredCalls.sort(function(x,y) { return x.precedence < y.precedence; }); + },removeDeferredCalls:function (targetFunction) { + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + },canPerformEventHandlerRequests:function () { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + },runDeferredCalls:function () { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for(var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(this, call.argsList); + } + },inEventHandler:0,currentEventHandler:null,eventHandlers:[],isInternetExplorer:function () { return navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0; },removeAllHandlersOnTarget:function (target, eventTypeString) { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && + (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + },_removeHandler:function (i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + },registerOrRemoveHandler:function (eventHandler) { + var jsEventHandler = function jsEventHandler(event) { + // Increment nesting count for the event handler. + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + // Process any old deferred calls the user has placed. + JSEvents.runDeferredCalls(); + // Process the actual event, calls back to user C code handler. + eventHandler.handlerFunc(event); + // Process any new deferred calls that were placed right now from this event handler. + JSEvents.runDeferredCalls(); + // Out of event handler - restore nesting count. + --JSEvents.inEventHandler; + } + + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for(var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target + && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + },registerKeyEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.keyEvent) { + JSEvents.keyEvent = _malloc( 164 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + stringToUTF8(e.key ? e.key : "", JSEvents.keyEvent + 0, 32); + stringToUTF8(e.code ? e.code : "", JSEvents.keyEvent + 32, 32); + HEAP32[(((JSEvents.keyEvent)+(64))>>2)]=e.location; + HEAP32[(((JSEvents.keyEvent)+(68))>>2)]=e.ctrlKey; + HEAP32[(((JSEvents.keyEvent)+(72))>>2)]=e.shiftKey; + HEAP32[(((JSEvents.keyEvent)+(76))>>2)]=e.altKey; + HEAP32[(((JSEvents.keyEvent)+(80))>>2)]=e.metaKey; + HEAP32[(((JSEvents.keyEvent)+(84))>>2)]=e.repeat; + stringToUTF8(e.locale ? e.locale : "", JSEvents.keyEvent + 88, 32); + stringToUTF8(e.char ? e.char : "", JSEvents.keyEvent + 120, 32); + HEAP32[(((JSEvents.keyEvent)+(152))>>2)]=e.charCode; + HEAP32[(((JSEvents.keyEvent)+(156))>>2)]=e.keyCode; + HEAP32[(((JSEvents.keyEvent)+(160))>>2)]=e.which; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.keyEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: JSEvents.isInternetExplorer() ? false : true, // MSIE doesn't allow fullscreen and pointerlock requests from key handlers, others do. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getBoundingClientRectOrZeros:function (target) { + return target.getBoundingClientRect ? target.getBoundingClientRect() : { left: 0, top: 0 }; + },fillMouseEventData:function (eventStruct, e, target) { + HEAPF64[((eventStruct)>>3)]=JSEvents.tick(); + HEAP32[(((eventStruct)+(8))>>2)]=e.screenX; + HEAP32[(((eventStruct)+(12))>>2)]=e.screenY; + HEAP32[(((eventStruct)+(16))>>2)]=e.clientX; + HEAP32[(((eventStruct)+(20))>>2)]=e.clientY; + HEAP32[(((eventStruct)+(24))>>2)]=e.ctrlKey; + HEAP32[(((eventStruct)+(28))>>2)]=e.shiftKey; + HEAP32[(((eventStruct)+(32))>>2)]=e.altKey; + HEAP32[(((eventStruct)+(36))>>2)]=e.metaKey; + HEAP16[(((eventStruct)+(40))>>1)]=e.button; + HEAP16[(((eventStruct)+(42))>>1)]=e.buttons; + HEAP32[(((eventStruct)+(44))>>2)]=e["movementX"] || e["mozMovementX"] || e["webkitMovementX"] || (e.screenX-JSEvents.previousScreenX); + HEAP32[(((eventStruct)+(48))>>2)]=e["movementY"] || e["mozMovementY"] || e["webkitMovementY"] || (e.screenY-JSEvents.previousScreenY); + + if (Module['canvas']) { + var rect = Module['canvas'].getBoundingClientRect(); + HEAP32[(((eventStruct)+(60))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(64))>>2)]=e.clientY - rect.top; + } else { // Canvas is not initialized, return 0. + HEAP32[(((eventStruct)+(60))>>2)]=0; + HEAP32[(((eventStruct)+(64))>>2)]=0; + } + if (target) { + var rect = JSEvents.getBoundingClientRectOrZeros(target); + HEAP32[(((eventStruct)+(52))>>2)]=e.clientX - rect.left; + HEAP32[(((eventStruct)+(56))>>2)]=e.clientY - rect.top; + } else { // No specific target passed, return 0. + HEAP32[(((eventStruct)+(52))>>2)]=0; + HEAP32[(((eventStruct)+(56))>>2)]=0; + } + // wheel and mousewheel events contain wrong screenX/screenY on chrome/opera + // https://github.com/kripken/emscripten/pull/4997 + // https://bugs.chromium.org/p/chromium/issues/detail?id=699956 + if (e.type !== 'wheel' && e.type !== 'mousewheel') { + JSEvents.previousScreenX = e.screenX; + JSEvents.previousScreenY = e.screenY; + } + },registerMouseEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.mouseEvent) { + JSEvents.mouseEvent = _malloc( 72 ); + } + target = JSEvents.findEventTarget(target); + var handlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.mouseEvent, e, target); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.mouseEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: eventTypeString != 'mousemove' && eventTypeString != 'mouseenter' && eventTypeString != 'mouseleave', // Mouse move events do not allow fullscreen/pointer lock requests to be handled in them! + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + // In IE, mousedown events don't either allow deferred calls to be run! + if (JSEvents.isInternetExplorer() && eventTypeString == 'mousedown') eventHandler.allowsDeferredCalls = false; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWheelEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.wheelEvent) { + JSEvents.wheelEvent = _malloc( 104 ); + } + target = JSEvents.findEventTarget(target); + // The DOM Level 3 events spec event 'wheel' + var wheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["deltaX"]; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=e["deltaY"]; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=e["deltaZ"]; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=e["deltaMode"]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + // The 'mousewheel' event as implemented in Safari 6.0.5 + var mouseWheelHandlerFunc = function(event) { + var e = event || window.event; + JSEvents.fillMouseEventData(JSEvents.wheelEvent, e, target); + HEAPF64[(((JSEvents.wheelEvent)+(72))>>3)]=e["wheelDeltaX"] || 0; + HEAPF64[(((JSEvents.wheelEvent)+(80))>>3)]=-(e["wheelDeltaY"] ? e["wheelDeltaY"] : e["wheelDelta"]) /* 1. Invert to unify direction with the DOM Level 3 wheel event. 2. MSIE does not provide wheelDeltaY, so wheelDelta is used as a fallback. */; + HEAPF64[(((JSEvents.wheelEvent)+(88))>>3)]=0 /* Not available */; + HEAP32[(((JSEvents.wheelEvent)+(96))>>2)]=0 /* DOM_DELTA_PIXEL */; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.wheelEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: (eventTypeString == 'wheel') ? wheelHandlerFunc : mouseWheelHandlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },pageScrollPos:function () { + if (window.pageXOffset > 0 || window.pageYOffset > 0) { + return [window.pageXOffset, window.pageYOffset]; + } + if (typeof document.documentElement.scrollLeft !== 'undefined' || typeof document.documentElement.scrollTop !== 'undefined') { + return [document.documentElement.scrollLeft, document.documentElement.scrollTop]; + } + return [document.body.scrollLeft|0, document.body.scrollTop|0]; + },registerUiEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.uiEvent) { + JSEvents.uiEvent = _malloc( 36 ); + } + + if (eventTypeString == "scroll" && !target) { + target = document; // By default read scroll events on document rather than window. + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + if (e.target != target) { + // Never take ui events such as scroll via a 'bubbled' route, but always from the direct element that + // was targeted. Otherwise e.g. if app logs a message in response to a page scroll, the Emscripten log + // message box could cause to scroll, generating a new (bubbled) scroll message, causing a new log print, + // causing a new scroll, etc.. + return; + } + var scrollPos = JSEvents.pageScrollPos(); + HEAP32[((JSEvents.uiEvent)>>2)]=e.detail; + HEAP32[(((JSEvents.uiEvent)+(4))>>2)]=document.body.clientWidth; + HEAP32[(((JSEvents.uiEvent)+(8))>>2)]=document.body.clientHeight; + HEAP32[(((JSEvents.uiEvent)+(12))>>2)]=window.innerWidth; + HEAP32[(((JSEvents.uiEvent)+(16))>>2)]=window.innerHeight; + HEAP32[(((JSEvents.uiEvent)+(20))>>2)]=window.outerWidth; + HEAP32[(((JSEvents.uiEvent)+(24))>>2)]=window.outerHeight; + HEAP32[(((JSEvents.uiEvent)+(28))>>2)]=scrollPos[0]; + HEAP32[(((JSEvents.uiEvent)+(32))>>2)]=scrollPos[1]; + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.uiEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // Neither scroll or resize events allow running requests inside them. + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },getNodeNameForTarget:function (target) { + if (!target) return ''; + if (target == window) return '#window'; + if (target == window.screen) return '#screen'; + return (target && target.nodeName) ? target.nodeName : ''; + },registerFocusEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.focusEvent) { + JSEvents.focusEvent = _malloc( 256 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + var nodeName = JSEvents.getNodeNameForTarget(e.target); + var id = e.target.id ? e.target.id : ''; + stringToUTF8(nodeName, JSEvents.focusEvent + 0, 128); + stringToUTF8(id, JSEvents.focusEvent + 128, 128); + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.focusEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },tick:function () { + if (window['performance'] && window['performance']['now']) return window['performance']['now'](); + else return Date.now(); + },registerDeviceOrientationEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceOrientationEvent) { + JSEvents.deviceOrientationEvent = _malloc( 40 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceOrientationEvent)+(8))>>3)]=e.alpha; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(16))>>3)]=e.beta; + HEAPF64[(((JSEvents.deviceOrientationEvent)+(24))>>3)]=e.gamma; + HEAP32[(((JSEvents.deviceOrientationEvent)+(32))>>2)]=e.absolute; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceOrientationEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerDeviceMotionEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.deviceMotionEvent) { + JSEvents.deviceMotionEvent = _malloc( 80 ); + } + var handlerFunc = function(event) { + var e = event || window.event; + + HEAPF64[((JSEvents.deviceOrientationEvent)>>3)]=JSEvents.tick(); + HEAPF64[(((JSEvents.deviceMotionEvent)+(8))>>3)]=e.acceleration.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(16))>>3)]=e.acceleration.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(24))>>3)]=e.acceleration.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(32))>>3)]=e.accelerationIncludingGravity.x; + HEAPF64[(((JSEvents.deviceMotionEvent)+(40))>>3)]=e.accelerationIncludingGravity.y; + HEAPF64[(((JSEvents.deviceMotionEvent)+(48))>>3)]=e.accelerationIncludingGravity.z; + HEAPF64[(((JSEvents.deviceMotionEvent)+(56))>>3)]=e.rotationRate.alpha; + HEAPF64[(((JSEvents.deviceMotionEvent)+(64))>>3)]=e.rotationRate.beta; + HEAPF64[(((JSEvents.deviceMotionEvent)+(72))>>3)]=e.rotationRate.gamma; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.deviceMotionEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },screenOrientation:function () { + if (!window.screen) return undefined; + return window.screen.orientation || window.screen.mozOrientation || window.screen.webkitOrientation || window.screen.msOrientation; + },fillOrientationChangeEventData:function (eventStruct, e) { + var orientations = ["portrait-primary", "portrait-secondary", "landscape-primary", "landscape-secondary"]; + var orientations2 = ["portrait", "portrait", "landscape", "landscape"]; + + var orientationString = JSEvents.screenOrientation(); + var orientation = orientations.indexOf(orientationString); + if (orientation == -1) { + orientation = orientations2.indexOf(orientationString); + } + + HEAP32[((eventStruct)>>2)]=1 << orientation; + HEAP32[(((eventStruct)+(4))>>2)]=window.orientation; + },registerOrientationChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.orientationChangeEvent) { + JSEvents.orientationChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = window.screen; // Orientation events need to be captured from 'window.screen' instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillOrientationChangeEventData(JSEvents.orientationChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.orientationChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + if (eventTypeString == "orientationchange" && window.screen.mozOrientation !== undefined) { + eventTypeString = "mozorientationchange"; + } + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fullscreenEnabled:function () { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; + },fillFullscreenChangeEventData:function (eventStruct, e) { + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isFullscreen = !!fullscreenElement; + HEAP32[((eventStruct)>>2)]=isFullscreen; + HEAP32[(((eventStruct)+(4))>>2)]=JSEvents.fullscreenEnabled(); + // If transitioning to fullscreen, report info about the element that is now fullscreen. + // If transitioning to windowed mode, report info about the element that just was fullscreen. + var reportedElement = isFullscreen ? fullscreenElement : JSEvents.previousFullscreenElement; + var nodeName = JSEvents.getNodeNameForTarget(reportedElement); + var id = (reportedElement && reportedElement.id) ? reportedElement.id : ''; + stringToUTF8(nodeName, eventStruct + 8, 128); + stringToUTF8(id, eventStruct + 136, 128); + HEAP32[(((eventStruct)+(264))>>2)]=reportedElement ? reportedElement.clientWidth : 0; + HEAP32[(((eventStruct)+(268))>>2)]=reportedElement ? reportedElement.clientHeight : 0; + HEAP32[(((eventStruct)+(272))>>2)]=screen.width; + HEAP32[(((eventStruct)+(276))>>2)]=screen.height; + if (isFullscreen) { + JSEvents.previousFullscreenElement = fullscreenElement; + } + },registerFullscreenChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.fullscreenChangeEvent) { + JSEvents.fullscreenChangeEvent = _malloc( 280 ); + } + + if (!target) { + target = document; // Fullscreen change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillFullscreenChangeEventData(JSEvents.fullscreenChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.fullscreenChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },resizeCanvasForFullscreen:function (target, strategy) { + var restoreOldStyle = __registerRestoreOldStyle(target); + var cssWidth = strategy.softFullscreen ? window.innerWidth : screen.width; + var cssHeight = strategy.softFullscreen ? window.innerHeight : screen.height; + var rect = target.getBoundingClientRect(); + var windowedCssWidth = rect.right - rect.left; + var windowedCssHeight = rect.bottom - rect.top; + var windowedRttWidth = target.width; + var windowedRttHeight = target.height; + + if (strategy.scaleMode == 3) { + __setLetterbox(target, (cssHeight - windowedCssHeight) / 2, (cssWidth - windowedCssWidth) / 2); + cssWidth = windowedCssWidth; + cssHeight = windowedCssHeight; + } else if (strategy.scaleMode == 2) { + if (cssWidth*windowedRttHeight < windowedRttWidth*cssHeight) { + var desiredCssHeight = windowedRttHeight * cssWidth / windowedRttWidth; + __setLetterbox(target, (cssHeight - desiredCssHeight) / 2, 0); + cssHeight = desiredCssHeight; + } else { + var desiredCssWidth = windowedRttWidth * cssHeight / windowedRttHeight; + __setLetterbox(target, 0, (cssWidth - desiredCssWidth) / 2); + cssWidth = desiredCssWidth; + } + } + + // If we are adding padding, must choose a background color or otherwise Chrome will give the + // padding a default white color. Do it only if user has not customized their own background color. + if (!target.style.backgroundColor) target.style.backgroundColor = 'black'; + // IE11 does the same, but requires the color to be set in the document body. + if (!document.body.style.backgroundColor) document.body.style.backgroundColor = 'black'; // IE11 + // Firefox always shows black letterboxes independent of style color. + + target.style.width = cssWidth + 'px'; + target.style.height = cssHeight + 'px'; + + if (strategy.filteringMode == 1) { + target.style.imageRendering = 'optimizeSpeed'; + target.style.imageRendering = '-moz-crisp-edges'; + target.style.imageRendering = '-o-crisp-edges'; + target.style.imageRendering = '-webkit-optimize-contrast'; + target.style.imageRendering = 'optimize-contrast'; + target.style.imageRendering = 'crisp-edges'; + target.style.imageRendering = 'pixelated'; + } + + var dpiScale = (strategy.canvasResolutionScaleMode == 2) ? window.devicePixelRatio : 1; + if (strategy.canvasResolutionScaleMode != 0) { + target.width = cssWidth * dpiScale; + target.height = cssHeight * dpiScale; + if (target.GLctxObject) target.GLctxObject.GLctx.viewport(0, 0, target.width, target.height); + } + return restoreOldStyle; + },requestFullscreen:function (target, strategy) { + // EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT + EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE is a mode where no extra logic is performed to the DOM elements. + if (strategy.scaleMode != 0 || strategy.canvasResolutionScaleMode != 0) { + JSEvents.resizeCanvasForFullscreen(target, strategy); + } + + if (target.requestFullscreen) { + target.requestFullscreen(); + } else if (target.msRequestFullscreen) { + target.msRequestFullscreen(); + } else if (target.mozRequestFullScreen) { + target.mozRequestFullScreen(); + } else if (target.mozRequestFullscreen) { + target.mozRequestFullscreen(); + } else if (target.webkitRequestFullscreen) { + target.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') { + return -1; + } else { + return -3; + } + } + + if (strategy.canvasResizedCallback) { + Module['dynCall_iiii'](strategy.canvasResizedCallback, 37, 0, strategy.canvasResizedCallbackUserData); + } + + return 0; + },fillPointerlockChangeEventData:function (eventStruct, e) { + var pointerLockElement = document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement || document.msPointerLockElement; + var isPointerlocked = !!pointerLockElement; + HEAP32[((eventStruct)>>2)]=isPointerlocked; + var nodeName = JSEvents.getNodeNameForTarget(pointerLockElement); + var id = (pointerLockElement && pointerLockElement.id) ? pointerLockElement.id : ''; + stringToUTF8(nodeName, eventStruct + 4, 128); + stringToUTF8(id, eventStruct + 132, 128); + },registerPointerlockChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.pointerlockChangeEvent) { + JSEvents.pointerlockChangeEvent = _malloc( 260 ); + } + + if (!target) { + target = document; // Pointer lock change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillPointerlockChangeEventData(JSEvents.pointerlockChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.pointerlockChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerPointerlockErrorEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = document; // Pointer lock events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },requestPointerLock:function (target) { + if (target.requestPointerLock) { + target.requestPointerLock(); + } else if (target.mozRequestPointerLock) { + target.mozRequestPointerLock(); + } else if (target.webkitRequestPointerLock) { + target.webkitRequestPointerLock(); + } else if (target.msRequestPointerLock) { + target.msRequestPointerLock(); + } else { + // document.body is known to accept pointer lock, so use that to differentiate if the user passed a bad element, + // or if the whole browser just doesn't support the feature. + if (document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock || document.body.msRequestPointerLock) { + return -3; + } else { + return -1; + } + } + return 0; + },fillVisibilityChangeEventData:function (eventStruct, e) { + var visibilityStates = [ "hidden", "visible", "prerender", "unloaded" ]; + var visibilityState = visibilityStates.indexOf(document.visibilityState); + + HEAP32[((eventStruct)>>2)]=document.hidden; + HEAP32[(((eventStruct)+(4))>>2)]=visibilityState; + },registerVisibilityChangeEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.visibilityChangeEvent) { + JSEvents.visibilityChangeEvent = _malloc( 8 ); + } + + if (!target) { + target = document; // Visibility change events need to be captured from 'document' by default instead of 'window' + } else { + target = JSEvents.findEventTarget(target); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillVisibilityChangeEventData(JSEvents.visibilityChangeEvent, e); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.visibilityChangeEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerTouchEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.touchEvent) { + JSEvents.touchEvent = _malloc( 1684 ); + } + + target = JSEvents.findEventTarget(target); + + var handlerFunc = function(event) { + var e = event || window.event; + + var touches = {}; + for(var i = 0; i < e.touches.length; ++i) { + var touch = e.touches[i]; + touches[touch.identifier] = touch; + } + for(var i = 0; i < e.changedTouches.length; ++i) { + var touch = e.changedTouches[i]; + touches[touch.identifier] = touch; + touch.changed = true; + } + for(var i = 0; i < e.targetTouches.length; ++i) { + var touch = e.targetTouches[i]; + touches[touch.identifier].onTarget = true; + } + + var ptr = JSEvents.touchEvent; + HEAP32[(((ptr)+(4))>>2)]=e.ctrlKey; + HEAP32[(((ptr)+(8))>>2)]=e.shiftKey; + HEAP32[(((ptr)+(12))>>2)]=e.altKey; + HEAP32[(((ptr)+(16))>>2)]=e.metaKey; + ptr += 20; // Advance to the start of the touch array. + var canvasRect = Module['canvas'] ? Module['canvas'].getBoundingClientRect() : undefined; + var targetRect = JSEvents.getBoundingClientRectOrZeros(target); + var numTouches = 0; + for(var i in touches) { + var t = touches[i]; + HEAP32[((ptr)>>2)]=t.identifier; + HEAP32[(((ptr)+(4))>>2)]=t.screenX; + HEAP32[(((ptr)+(8))>>2)]=t.screenY; + HEAP32[(((ptr)+(12))>>2)]=t.clientX; + HEAP32[(((ptr)+(16))>>2)]=t.clientY; + HEAP32[(((ptr)+(20))>>2)]=t.pageX; + HEAP32[(((ptr)+(24))>>2)]=t.pageY; + HEAP32[(((ptr)+(28))>>2)]=t.changed; + HEAP32[(((ptr)+(32))>>2)]=t.onTarget; + if (canvasRect) { + HEAP32[(((ptr)+(44))>>2)]=t.clientX - canvasRect.left; + HEAP32[(((ptr)+(48))>>2)]=t.clientY - canvasRect.top; + } else { + HEAP32[(((ptr)+(44))>>2)]=0; + HEAP32[(((ptr)+(48))>>2)]=0; + } + HEAP32[(((ptr)+(36))>>2)]=t.clientX - targetRect.left; + HEAP32[(((ptr)+(40))>>2)]=t.clientY - targetRect.top; + + ptr += 52; + + if (++numTouches >= 32) { + break; + } + } + HEAP32[((JSEvents.touchEvent)>>2)]=numTouches; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.touchEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: target, + allowsDeferredCalls: false, // XXX Currently disabled, see bug https://bugzilla.mozilla.org/show_bug.cgi?id=966493 + // Once the above bug is resolved, enable the following condition if possible: + // allowsDeferredCalls: eventTypeString == 'touchstart', + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },fillGamepadEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.timestamp; + for(var i = 0; i < e.axes.length; ++i) { + HEAPF64[(((eventStruct+i*8)+(16))>>3)]=e.axes[i]; + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i].value; + } else { + HEAPF64[(((eventStruct+i*8)+(528))>>3)]=e.buttons[i]; + } + } + for(var i = 0; i < e.buttons.length; ++i) { + if (typeof(e.buttons[i]) === 'object') { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i].pressed; + } else { + HEAP32[(((eventStruct+i*4)+(1040))>>2)]=e.buttons[i] == 1.0; + } + } + HEAP32[(((eventStruct)+(1296))>>2)]=e.connected; + HEAP32[(((eventStruct)+(1300))>>2)]=e.index; + HEAP32[(((eventStruct)+(8))>>2)]=e.axes.length; + HEAP32[(((eventStruct)+(12))>>2)]=e.buttons.length; + stringToUTF8(e.id, eventStruct + 1304, 64); + stringToUTF8(e.mapping, eventStruct + 1368, 64); + },registerGamepadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.gamepadEvent) { + JSEvents.gamepadEvent = _malloc( 1432 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillGamepadEventData(JSEvents.gamepadEvent, e.gamepad); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.gamepadEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: true, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerBeforeUnloadEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + var handlerFunc = function(event) { + var e = event || window.event; + + var confirmationMessage = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + + if (confirmationMessage) { + confirmationMessage = Pointer_stringify(confirmationMessage); + } + if (confirmationMessage) { + e.preventDefault(); + e.returnValue = confirmationMessage; + return confirmationMessage; + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },battery:function () { return navigator.battery || navigator.mozBattery || navigator.webkitBattery; },fillBatteryEventData:function (eventStruct, e) { + HEAPF64[((eventStruct)>>3)]=e.chargingTime; + HEAPF64[(((eventStruct)+(8))>>3)]=e.dischargingTime; + HEAPF64[(((eventStruct)+(16))>>3)]=e.level; + HEAP32[(((eventStruct)+(24))>>2)]=e.charging; + },registerBatteryEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!JSEvents.batteryEvent) { + JSEvents.batteryEvent = _malloc( 32 ); + } + + var handlerFunc = function(event) { + var e = event || window.event; + + JSEvents.fillBatteryEventData(JSEvents.batteryEvent, JSEvents.battery()); + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, JSEvents.batteryEvent, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + },registerWebGlEventCallback:function (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) { + if (!target) { + target = Module['canvas']; + } + var handlerFunc = function(event) { + var e = event || window.event; + + var shouldCancel = Module['dynCall_iiii'](callbackfunc, eventTypeId, 0, userData); + if (shouldCancel) { + e.preventDefault(); + } + }; + + var eventHandler = { + target: JSEvents.findEventTarget(target), + allowsDeferredCalls: false, + eventTypeString: eventTypeString, + callbackfunc: callbackfunc, + handlerFunc: handlerFunc, + useCapture: useCapture + }; + JSEvents.registerOrRemoveHandler(eventHandler); + }};function __emscripten_sample_gamepad_data() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return; + + // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation. + if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) { + JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null); + JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber; + } + }function _emscripten_get_gamepad_status(index, gamepadState) { + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + + // INVALID_PARAM is returned on a Gamepad index that never was there. + if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5; + + // NO_DATA is returned on a Gamepad index that was removed. + // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index. + // This is because gamepads must keep their original position in the array. + // For example, removing the first of two gamepads produces [null/undefined/false, gamepad]. + if (!JSEvents.lastGamepadState[index]) return -7; + + JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]); + return 0; + } + + function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _emscripten_glTexParameterfv(target, pname, params) { + var param = HEAPF32[((params)>>2)]; + GLctx.texParameterf(target, pname, param); + } + + function _emscripten_glLinkProgram(program) { + GLctx.linkProgram(GL.programs[program]); + GL.programInfos[program] = null; // uniforms no longer keep the same names after linking + GL.populateUniformTable(program); + } + + function _glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glGetObjectParameterivARB() { + Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1); + } + + function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _emscripten_glUniform3i(location, v0, v1, v2) { + GLctx.uniform3i(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) } + + function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + + Module["_memset"] = _memset; + + function _glfwMakeContextCurrent(winid) {} + + function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel"); + return 0; + } + + function ___lock() {} + + function _emscripten_glBlendFuncSeparate(x0, x1, x2, x3) { GLctx['blendFuncSeparate'](x0, x1, x2, x3) } + + function _glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glGetVertexAttribPointerv(index, pname, pointer) { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null pointer. Since calling this function does not make sense + // if pointer == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)]=GLctx.getVertexAttribOffset(index, pname); + } + + function _emscripten_glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glEnable(x0) { GLctx['enable'](x0) } + + function _emscripten_glNormalPointer() { + Module['printErr']('missing function: emscripten_glNormalPointer'); abort(-1); + } + + + var _emscripten_GetProcAddress=undefined; + Module["_emscripten_GetProcAddress"] = _emscripten_GetProcAddress; + + var EGL={errorCode:12288,defaultDisplayInitialized:false,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function (code) { + EGL.errorCode = code; + },chooseConfig:function (display, attribList, config, config_size, numConfigs) { + if (display != 62000 /* Magic ID for Emscripten 'default display' */) { + EGL.setErrorCode(0x3008 /* EGL_BAD_DISPLAY */); + return 0; + } + // TODO: read attribList. + if ((!config || !config_size) && !numConfigs) { + EGL.setErrorCode(0x300C /* EGL_BAD_PARAMETER */); + return 0; + } + if (numConfigs) { + HEAP32[((numConfigs)>>2)]=1; // Total number of supported configs: 1. + } + if (config && config_size > 0) { + HEAP32[((config)>>2)]=62002; + } + + EGL.setErrorCode(0x3000 /* EGL_SUCCESS */); + return 1; + }};function _eglGetProcAddress(name_) { + return _emscripten_GetProcAddress(name_); + } + + function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_get_pointerlock_status(pointerlockStatus) { + if (pointerlockStatus) JSEvents.fillPointerlockChangeEventData(pointerlockStatus); + if (!document.body || (!document.body.requestPointerLock && !document.body.mozRequestPointerLock && !document.body.webkitRequestPointerLock && !document.body.msRequestPointerLock)) { + return -1; + } + return 0; + } + + function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glfwGetPrimaryMonitor() { + return 1; + } + + + function emscriptenWebGLGetVertexAttrib(index, pname, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getVertexAttrib(index, pname); + if (pname == 0x889F/*VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/) { + HEAP32[((params)>>2)]=data["name"]; + } else if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + case 'FloatToInteger': HEAP32[((params)>>2)]=Math.fround(data); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + case 'FloatToInteger': HEAP32[(((params)+(i))>>2)]=Math.fround(data[i]); break; + default: throw 'internal emscriptenWebGLGetVertexAttrib() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetVertexAttribfv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'Float'); + } + + function _emscripten_set_touchstart_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 22, "touchstart"); + return 0; + } + + function _glUniform3f(location, v0, v1, v2) { + GLctx.uniform3f(GL.uniforms[location], v0, v1, v2); + } + + function _emscripten_glVertexPointer(){ throw 'Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_glTexParameteriv(target, pname, params) { + var param = HEAP32[((params)>>2)]; + GLctx.texParameteri(target, pname, param); + } + + function _glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwTerminate() { + window.removeEventListener("keydown", GLFW.onKeydown, true); + window.removeEventListener("keypress", GLFW.onKeyPress, true); + window.removeEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].removeEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].removeEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].removeEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].removeEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].removeEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].removeEventListener('mouseleave', GLFW.onMouseleave, true); + Module["canvas"].width = Module["canvas"].height = 1; + GLFW.windows = null; + GLFW.active = null; + } + + function _emscripten_glUniformMatrix2fv(location, count, transpose, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + try { + // open + var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = []; + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length-1; + } + + function _emscripten_glGetVertexAttribiv(index, pname, params) { + // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttrib*f(), + // otherwise the results are undefined. (GLES3 spec 6.1.12) + emscriptenWebGLGetVertexAttrib(index, pname, params, 'FloatToInteger'); + } + + function _emscripten_glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _glVertexAttrib3f(x0, x1, x2, x3) { GLctx['vertexAttrib3f'](x0, x1, x2, x3) } + + function _emscripten_glDrawArraysInstanced(mode, first, count, primcount) { + GLctx['drawArraysInstanced'](mode, first, count, primcount); + } + + function _emscripten_glEnableClientState() { + Module['printErr']('missing function: emscripten_glEnableClientState'); abort(-1); + } + + function _emscripten_glGetPointerv() { + Module['printErr']('missing function: emscripten_glGetPointerv'); abort(-1); + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doWritev(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; + try { + // readv + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) } + + function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) } + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + function _emscripten_set_touchend_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 23, "touchend"); + return 0; + } + + function _glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glVertexAttrib1f(x0, x1) { GLctx['vertexAttrib1f'](x0, x1) } + + function _emscripten_glFinish() { GLctx['finish']() } + + function _glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + function _emscripten_get_num_gamepads() { + // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected. + if (!JSEvents.numGamepadsConnected) return 0; + + __emscripten_sample_gamepad_data(); + if (!JSEvents.lastGamepadState) return -1; + return JSEvents.lastGamepadState.length; + } + + function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glUniform4iv(location, count, value) { + + + GLctx.uniform4iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*16)>>2)); + } + + function _glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glLoadIdentity(){ throw 'Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _emscripten_glUniform3fv(location, count, value) { + + + var view; + if (3*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[3*count-1]; + for (var i = 0; i < 3*count; i += 3) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*12)>>2); + } + GLctx.uniform3fv(GL.uniforms[location], view); + } + + function _emscripten_glIsTexture(texture) { + var texture = GL.textures[texture]; + if (!texture) return 0; + return GLctx.isTexture(texture); + } + + function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); + } + + function _emscripten_glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _emscripten_request_pointerlock(target, deferUntilInEventHandler) { + if (!target) target = '#canvas'; + target = JSEvents.findEventTarget(target); + if (!target) return -4; + if (!target.requestPointerLock && !target.mozRequestPointerLock && !target.webkitRequestPointerLock && !target.msRequestPointerLock) { + return -1; + } + + var canPerformRequests = JSEvents.canPerformEventHandlerRequests(); + + // Queue this function call if we're not currently in an event handler and the user saw it appropriate to do so. + if (!canPerformRequests) { + if (deferUntilInEventHandler) { + JSEvents.deferCall(JSEvents.requestPointerLock, 2 /* priority below fullscreen */, [target]); + return 1; + } else { + return -2; + } + } + + return JSEvents.requestPointerLock(target); + } + + + + 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_STATIC); + Module["_llvm_cttz_i32"] = _llvm_cttz_i32; + Module["___udivmoddi4"] = ___udivmoddi4; + Module["___udivdi3"] = ___udivdi3; + + function _glfwCreateWindow(width, height, title, monitor, share) { + return GLFW.createWindow(width, height, title, monitor, share); + } + + function _glfwDefaultWindowHints() { + GLFW.hints = GLFW.defaultHints; + } + + function _emscripten_glClearStencil(x0) { GLctx['clearStencil'](x0) } + + function _emscripten_glDetachShader(program, shader) { + GLctx.detachShader(GL.programs[program], + GL.shaders[shader]); + } + + function _emscripten_glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos)+(i*4))>>2)]; + GLctx['deleteVertexArray'](GL.vaos[id]); + GL.vaos[id] = null; + } + } + + function _glfwInit() { + if (GLFW.windows) return 1; // GL_TRUE + + GLFW.initialTime = GLFW.getTime(); + GLFW.hints = GLFW.defaultHints; + GLFW.windows = new Array() + GLFW.active = null; + + window.addEventListener("keydown", GLFW.onKeydown, true); + window.addEventListener("keypress", GLFW.onKeyPress, true); + window.addEventListener("keyup", GLFW.onKeyup, true); + Module["canvas"].addEventListener("mousemove", GLFW.onMousemove, true); + Module["canvas"].addEventListener("mousedown", GLFW.onMouseButtonDown, true); + Module["canvas"].addEventListener("mouseup", GLFW.onMouseButtonUp, true); + Module["canvas"].addEventListener('wheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mousewheel', GLFW.onMouseWheel, true); + Module["canvas"].addEventListener('mouseenter', GLFW.onMouseenter, true); + Module["canvas"].addEventListener('mouseleave', GLFW.onMouseleave, true); + + Browser.resizeListeners.push(function(width, height) { + GLFW.onCanvasResize(width, height); + }); + return 1; // GL_TRUE + } + + function _emscripten_glGetTexParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getTexParameter(target, pname); + } + + function _glfwSwapBuffers(winid) { + GLFW.swapBuffers(winid); + } + + function _emscripten_glGenerateMipmap(x0) { GLctx['generateMipmap'](x0) } + + function _emscripten_glCullFace(x0) { GLctx['cullFace'](x0) } + + function _emscripten_glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(GL.uniforms[location], v0, v1, v2, v3); + } + + function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); + } + + function _emscripten_glUseProgram(program) { + GLctx.useProgram(program ? GL.programs[program] : null); + } + + function _emscripten_glHint(x0, x1) { GLctx['hint'](x0, x1) } + + function _emscripten_glUniform2fv(location, count, value) { + + + var view; + if (2*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[2*count-1]; + for (var i = 0; i < 2*count; i += 2) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*8)>>2); + } + GLctx.uniform2fv(GL.uniforms[location], view); + } + + function _glfwSwapInterval(interval) { + interval = Math.abs(interval); // GLFW uses negative values to enable GLX_EXT_swap_control_tear, which we don't have, so just treat negative and positive the same. + if (interval == 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 0); + else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, interval); + } + + function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glMatrixMode(){ throw 'Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.'; } + + function _abort() { + Module['abort'](); + } + + function _emscripten_glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, + GL.renderbuffers[renderbuffer]); + } + + function _emscripten_glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers)+(i*4))>>2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } + } + + function _emscripten_glIsBuffer(buffer) { + var b = GL.buffers[buffer]; + if (!b) return 0; + return GLctx.isBuffer(b); + } + + function _emscripten_glUniform2iv(location, count, value) { + + + GLctx.uniform2iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*8)>>2)); + } + + function _emscripten_glVertexAttrib1fv(index, v) { + + GLctx.vertexAttrib1f(index, HEAPF32[v>>2]); + } + + function _glEnable(x0) { GLctx['enable'](x0) } + + + + function emscriptenWebGLComputeImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return Math.floor((x + y - 1) / y) * y + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return (height <= 0) ? 0 : + ((height - 1) * alignedRowSize + plainRowSize); + }function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var sizePerPixel; + var numChannels; + switch(format) { + case 0x1906 /* GL_ALPHA */: + case 0x1909 /* GL_LUMINANCE */: + case 0x1902 /* GL_DEPTH_COMPONENT */: + numChannels = 1; + break; + case 0x190A /* GL_LUMINANCE_ALPHA */: + numChannels = 2; + break; + case 0x1907 /* GL_RGB */: + case 0x8C40 /* GL_SRGB_EXT */: + numChannels = 3; + break; + case 0x1908 /* GL_RGBA */: + case 0x8C42 /* GL_SRGB_ALPHA_EXT */: + numChannels = 4; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + switch (type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + sizePerPixel = numChannels*1; + break; + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + sizePerPixel = numChannels*2; + break; + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x1406 /* GL_FLOAT */: + sizePerPixel = numChannels*4; + break; + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + sizePerPixel = 4; + break; + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + sizePerPixel = 2; + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + var bytes = emscriptenWebGLComputeImageSize(width, height, sizePerPixel, GL.unpackAlignment); + switch(type) { + case 0x1401 /* GL_UNSIGNED_BYTE */: + return HEAPU8.subarray((pixels),(pixels+bytes)); + case 0x1406 /* GL_FLOAT */: + return HEAPF32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1405 /* GL_UNSIGNED_INT */: + case 0x84FA /* GL_UNSIGNED_INT_24_8_WEBGL/GL_UNSIGNED_INT_24_8 */: + return HEAPU32.subarray((pixels)>>2,(pixels+bytes)>>2); + case 0x1403 /* GL_UNSIGNED_SHORT */: + case 0x8363 /* GL_UNSIGNED_SHORT_5_6_5 */: + case 0x8033 /* GL_UNSIGNED_SHORT_4_4_4_4 */: + case 0x8034 /* GL_UNSIGNED_SHORT_5_5_5_1 */: + case 0x8D61 /* GL_HALF_FLOAT_OES */: + return HEAPU16.subarray((pixels)>>1,(pixels+bytes)>>1); + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return null; + } + }function _emscripten_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) { + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); + } + + function _emscripten_glPolygonOffset(x0, x1) { GLctx['polygonOffset'](x0, x1) } + + var _emscripten_asm_const_int=true; + + function _emscripten_glUniform2f(location, v0, v1) { + GLctx.uniform2f(GL.uniforms[location], v0, v1); + } + + function _glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _glfwWindowHint(target, hint) { + GLFW.hints[target] = hint; + } + + function _emscripten_glUniform2i(location, v0, v1) { + GLctx.uniform2i(GL.uniforms[location], v0, v1); + } + + function _glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) } + + function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((renderbuffers)+(i*4))>>2)]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; // GL spec: "glDeleteRenderbuffers silently ignores 0s and names that do not correspond to existing renderbuffer objects". + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } + } + + function _emscripten_glGetBufferParameteriv(target, value, data) { + if (!data) { + // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense + // if data == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((data)>>2)]=GLctx.getBufferParameter(target, value); + } + + + function emscriptenWebGLGetUniform(program, location, params, type) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var data = GLctx.getUniform(GL.programs[program], GL.uniforms[location]); + if (typeof data == 'number' || typeof data == 'boolean') { + switch (type) { + case 'Integer': HEAP32[((params)>>2)]=data; break; + case 'Float': HEAPF32[((params)>>2)]=data; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } else { + for (var i = 0; i < data.length; i++) { + switch (type) { + case 'Integer': HEAP32[(((params)+(i))>>2)]=data[i]; break; + case 'Float': HEAPF32[(((params)+(i))>>2)]=data[i]; break; + default: throw 'internal emscriptenWebGLGetUniform() error, bad type: ' + type; + } + } + } + }function _emscripten_glGetUniformiv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Integer'); + } + + function _emscripten_glDepthMask(flag) { + GLctx.depthMask(!!flag); + } + + + function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) } + + function _emscripten_set_fullscreenchange_callback(target, userData, useCapture, callbackfunc) { + if (typeof JSEvents.fullscreenEnabled() === 'undefined') return -1; + if (!target) target = document; + else { + target = JSEvents.findEventTarget(target); + if (!target) return -4; + } + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "fullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "mozfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "webkitfullscreenchange"); + JSEvents.registerFullscreenChangeEventCallback(target, userData, useCapture, callbackfunc, 19, "msfullscreenchange"); + return 0; + } + + + + Module["___muldsi3"] = ___muldsi3; + Module["___muldi3"] = ___muldi3; + + function _emscripten_glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) { + var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType); + HEAP32[((range)>>2)]=result.rangeMin; + HEAP32[(((range)+(4))>>2)]=result.rangeMax; + HEAP32[((precision)>>2)]=result.precision; + } + + function _emscripten_glUniform1fv(location, count, value) { + + + var view; + if (count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[count-1]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*4)>>2); + } + GLctx.uniform1fv(GL.uniforms[location], view); + } + + function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers)+(i*4))>>2)]; + var buffer = GL.buffers[id]; + + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + + if (id == GL.currArrayBuffer) GL.currArrayBuffer = 0; + if (id == GL.currElementArrayBuffer) GL.currElementArrayBuffer = 0; + } + } + + function _emscripten_set_gamepaddisconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 27, "gamepaddisconnected"); + return 0; + } + + function _emscripten_glBindProgramARB() { + Module['printErr']('missing function: emscripten_glBindProgramARB'); abort(-1); + } + + function _emscripten_glBindTexture(target, texture) { + GLctx.bindTexture(target, texture ? GL.textures[texture] : null); + } + + function _emscripten_glCheckFramebufferStatus(x0) { return GLctx['checkFramebufferStatus'](x0) } + + function _emscripten_glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { // glDeleteProgram actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; + GL.programInfos[id] = null; + } + + function _emscripten_glDisable(x0) { GLctx['disable'](x0) } + + function _emscripten_glVertexAttrib3fv(index, v) { + + GLctx.vertexAttrib3f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2]); + } + + function _glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glGetActiveAttrib(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveAttrib(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size and type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + function _emscripten_glIsFramebuffer(framebuffer) { + var fb = GL.framebuffers[framebuffer]; + if (!fb) return 0; + return GLctx.isFramebuffer(fb); + } + + function _emscripten_glLineWidth(x0) { GLctx['lineWidth'](x0) } + + function _glfwGetCursorPos(winid, x, y) { + GLFW.getCursorPos(winid, x, y); + } + + function _emscripten_glGetString(name_) { + if (GL.stringCache[name_]) return GL.stringCache[name_]; + var ret; + switch(name_) { + case 0x1F00 /* GL_VENDOR */: + case 0x1F01 /* GL_RENDERER */: + case 0x9245 /* UNMASKED_VENDOR_WEBGL */: + case 0x9246 /* UNMASKED_RENDERER_WEBGL */: + ret = allocate(intArrayFromString(GLctx.getParameter(name_)), 'i8', ALLOC_NORMAL); + break; + case 0x1F02 /* GL_VERSION */: + var glVersion = GLctx.getParameter(GLctx.VERSION); + // return GLES version string corresponding to the version of the WebGL context + { + glVersion = 'OpenGL ES 2.0 (' + glVersion + ')'; + } + ret = allocate(intArrayFromString(glVersion), 'i8', ALLOC_NORMAL); + break; + case 0x1F03 /* GL_EXTENSIONS */: + var exts = GLctx.getSupportedExtensions(); + var gl_exts = []; + for (var i = 0; i < exts.length; ++i) { + gl_exts.push(exts[i]); + gl_exts.push("GL_" + exts[i]); + } + ret = allocate(intArrayFromString(gl_exts.join(' ')), 'i8', ALLOC_NORMAL); + break; + case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: + var glslVersion = GLctx.getParameter(GLctx.SHADING_LANGUAGE_VERSION); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + '0'; // ensure minor version has 2 digits + glslVersion = 'OpenGL ES GLSL ES ' + ver_num[1] + ' (' + glslVersion + ')'; + } + ret = allocate(intArrayFromString(glslVersion), 'i8', ALLOC_NORMAL); + break; + default: + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return 0; + } + GL.stringCache[name_] = ret; + return ret; + } + + function _emscripten_glGetAttribLocation(program, name) { + program = GL.programs[program]; + name = Pointer_stringify(name); + return GLctx.getAttribLocation(program, name); + } + + function _emscripten_glRotatef() { + Module['printErr']('missing function: emscripten_glRotatef'); abort(-1); + } + + + function emscriptenWebGLGet(name_, p, type) { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null pointer should be treated. + // Testing on desktop core GL 3, the application crashes on glGetIntegerv to a null pointer, but + // better to report an error instead of doing anything random. + if (!p) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + var ret = undefined; + switch(name_) { // Handle a few trivial GLES values + case 0x8DFA: // GL_SHADER_COMPILER + ret = 1; + break; + case 0x8DF8: // GL_SHADER_BINARY_FORMATS + if (type !== 'Integer' && type !== 'Integer64') { + GL.recordError(0x0500); // GL_INVALID_ENUM + } + return; // Do not write anything to the out pointer, since no binary formats are supported. + case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length), + // so implement it ourselves to allow C++ GLES2 code get the length. + var formats = GLctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/); + ret = formats.length; + break; + } + + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof(result)) { + case "number": + ret = result; + break; + case "boolean": + ret = result ? 1 : 0; + break; + case "string": + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - perhaps nothing is bound), but otherwise + // can mean an invalid name_, which we need to report as an error + switch(name_) { + case 0x8894: // ARRAY_BUFFER_BINDING + case 0x8B8D: // CURRENT_PROGRAM + case 0x8895: // ELEMENT_ARRAY_BUFFER_BINDING + case 0x8CA6: // FRAMEBUFFER_BINDING + case 0x8CA7: // RENDERBUFFER_BINDING + case 0x8069: // TEXTURE_BINDING_2D + case 0x8514: { // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + default: { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || + result instanceof Uint32Array || + result instanceof Int32Array || + result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 'Integer': HEAP32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Float': HEAPF32[(((p)+(i*4))>>2)]=result[i]; break; + case 'Boolean': HEAP8[(((p)+(i))>>0)]=result[i] ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + } + return; + } else if (result instanceof WebGLBuffer || + result instanceof WebGLProgram || + result instanceof WebGLFramebuffer || + result instanceof WebGLRenderbuffer || + result instanceof WebGLTexture) { + ret = result.name | 0; + } else { + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + break; + default: + GL.recordError(0x0500); // GL_INVALID_ENUM + return; + } + } + + switch (type) { + case 'Integer64': (tempI64 = [ret>>>0,(tempDouble=ret,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((p)>>2)]=tempI64[0],HEAP32[(((p)+(4))>>2)]=tempI64[1]); break; + case 'Integer': HEAP32[((p)>>2)]=ret; break; + case 'Float': HEAPF32[((p)>>2)]=ret; break; + case 'Boolean': HEAP8[((p)>>0)]=ret ? 1 : 0; break; + default: throw 'internal glGet error, bad type: ' + type; + } + }function _emscripten_glGetIntegerv(name_, p) { + emscriptenWebGLGet(name_, p, 'Integer'); + } + + function _emscripten_glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) { + var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); + HEAP32[((params)>>2)]=result; + } + + function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret); + } + + function _glfwSetWindowShouldClose(winid, value) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.shouldClose = value; + } + + function _emscripten_glClientActiveTexture() { + Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1); + } + + function _glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _glfwGetTime() { + return GLFW.getTime() - GLFW.initialTime; + } + + function _emscripten_glGetRenderbufferParameteriv(target, pname, params) { + if (!params) { + // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense + // if params == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname); + } + + function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) } + + function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) { + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); + } + + function _emscripten_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) { + GLctx['compressedTexSubImage2D'](target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glGetError() { + // First return any GL error generated by the emscripten library_gl.js interop layer. + if (GL.lastError) { + var error = GL.lastError; + GL.lastError = 0/*GL_NO_ERROR*/; + return error; + } else { // If there were none, return the GL error from the browser GL context. + return GLctx.getError(); + } + } + + function _emscripten_glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, + GL.textures[texture], level); + } + + function _emscripten_glIsEnabled(x0) { return GLctx['isEnabled'](x0) } + + function _glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + + Module["_memmove"] = _memmove; + + function _glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) } + + function _glDepthFunc(x0) { GLctx['depthFunc'](x0) } + + + Module["___uremdi3"] = ___uremdi3; + + function _emscripten_glClearDepthf(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_glClear(x0) { GLctx['clear'](x0) } + + function _emscripten_glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glGetUniformfv(program, location, params) { + emscriptenWebGLGetUniform(program, location, params, 'Float'); + } + + function _glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _emscripten_exit_pointerlock() { + // Make sure no queued up calls will fire after this. + JSEvents.removeDeferredCalls(JSEvents.requestPointerLock); + + if (document.exitPointerLock) { + document.exitPointerLock(); + } else if (document.msExitPointerLock) { + document.msExitPointerLock(); + } else if (document.mozExitPointerLock) { + document.mozExitPointerLock(); + } else if (document.webkitExitPointerLock) { + document.webkitExitPointerLock(); + } else { + return -1; + } + return 0; + } + + function _emscripten_glDrawRangeElements() { + Module['printErr']('missing function: emscripten_glDrawRangeElements'); abort(-1); + } + + function _glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _emscripten_glGetAttachedShaders(program, maxCount, count, shaders) { + var result = GLctx.getAttachedShaders(GL.programs[program]); + var len = result.length; + if (len > maxCount) { + len = maxCount; + } + HEAP32[((count)>>2)]=len; + for (var i = 0; i < len; ++i) { + var id = GL.shaders.indexOf(result[i]); + assert(id !== -1, 'shader not bound to local id'); + HEAP32[(((shaders)+(i*4))>>2)]=id; + } + } + + function _emscripten_glGenRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var renderbuffer = GLctx.createRenderbuffer(); + if (!renderbuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((renderbuffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.renderbuffers); + renderbuffer.name = id; + GL.renderbuffers[id] = renderbuffer; + HEAP32[(((renderbuffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _emscripten_glUniform1iv(location, count, value) { + + + GLctx.uniform1iv(GL.uniforms[location], HEAP32.subarray((value)>>2,(value+count*4)>>2)); + } + + function _emscripten_glTexCoordPointer() { + Module['printErr']('missing function: emscripten_glTexCoordPointer'); abort(-1); + } + + function _emscripten_glGetInfoLogARB() { + Module['printErr']('missing function: emscripten_glGetInfoLogARB'); abort(-1); + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + function _emscripten_glRenderbufferStorage(x0, x1, x2, x3) { GLctx['renderbufferStorage'](x0, x1, x2, x3) } + + function _emscripten_glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexSubImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) } + + function _glfwSetCursorPosCallback(winid, cbfun) { + GLFW.setCursorPosCallback(winid, cbfun); + } + + function _glBindAttribLocation(program, index, name) { + name = Pointer_stringify(name); + GLctx.bindAttribLocation(GL.programs[program], index, name); + } + + function _emscripten_glShaderBinary() { + GL.recordError(0x0500/*GL_INVALID_ENUM*/); + } + + function _emscripten_glIsProgram(program) { + var program = GL.programs[program]; + if (!program) return 0; + return GLctx.isProgram(program); + } + + function _emscripten_glBlendColor(x0, x1, x2, x3) { GLctx['blendColor'](x0, x1, x2, x3) } + + function _emscripten_glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glUniformMatrix3fv(location, count, transpose, value) { + + + var view; + if (9*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[9*count-1]; + for (var i = 0; i < 9*count; i += 9) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*36)>>2); + } + GLctx.uniformMatrix3fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _emscripten_glUniform4fv(location, count, value) { + + + var view; + if (4*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[4*count-1]; + for (var i = 0; i < 4*count; i += 4) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*16)>>2); + } + GLctx.uniform4fv(GL.uniforms[location], view); + } + + function _glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glGenFramebuffers(n, ids) { + for (var i = 0; i < n; ++i) { + var framebuffer = GLctx.createFramebuffer(); + if (!framebuffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((ids)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.framebuffers); + framebuffer.name = id; + GL.framebuffers[id] = framebuffer; + HEAP32[(((ids)+(i*4))>>2)]=id; + } + } + + function _glGetShaderiv(shader, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else { + HEAP32[((p)>>2)]=GLctx.getShaderParameter(GL.shaders[shader], pname); + } + } + + function _emscripten_glBlendEquationSeparate(x0, x1) { GLctx['blendEquationSeparate'](x0, x1) } + + function _glfwSetWindowIconifyCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.windowIconifyFunc = cbfun; + } + + function _emscripten_glUniform1i(location, v0) { + GLctx.uniform1i(GL.uniforms[location], v0); + } + + function _emscripten_glGenTextures(n, textures) { + for (var i = 0; i < n; i++) { + var texture = GLctx.createTexture(); + if (!texture) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); // GLES + EGL specs don't specify what should happen here, so best to issue an error and create IDs with 0. + while(i < n) HEAP32[(((textures)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + HEAP32[(((textures)+(i*4))>>2)]=id; + } + } + + function _emscripten_glVertexAttrib2fv(index, v) { + + GLctx.vertexAttrib2f(index, HEAPF32[v>>2], HEAPF32[v+4>>2]); + } + + function _emscripten_glGetActiveUniform(program, index, bufSize, length, size, type, name) { + program = GL.programs[program]; + var info = GLctx.getActiveUniform(program, index); + if (!info) return; // If an error occurs, nothing will be written to length, size, type and name. + + if (bufSize > 0 && name) { + var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + + if (size) HEAP32[((size)>>2)]=info.size; + if (type) HEAP32[((type)>>2)]=info.type; + } + + + Module["_roundf"] = _roundf; + + function _emscripten_glDeleteObjectARB() { + Module['printErr']('missing function: emscripten_glDeleteObjectARB'); abort(-1); + } + + function _emscripten_set_touchmove_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 24, "touchmove"); + return 0; + } + + function _emscripten_glUniform1f(location, v0) { + GLctx.uniform1f(GL.uniforms[location], v0); + } + + function _emscripten_glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); + } + + function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + + + GLctx.shaderSource(GL.shaders[shader], source); + } + + function _emscripten_glDrawArrays(mode, first, count) { + + GLctx.drawArrays(mode, first, count); + + } + + function _emscripten_glGenBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var buffer = GLctx.createBuffer(); + if (!buffer) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((buffers)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.buffers); + buffer.name = id; + GL.buffers[id] = buffer; + HEAP32[(((buffers)+(i*4))>>2)]=id; + } + } + + function _emscripten_glClearDepth(x0) { GLctx['clearDepth'](x0) } + + function _emscripten_set_keypress_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerKeyEventCallback(target, userData, useCapture, callbackfunc, 1, "keypress"); + return 0; + } + + function _glfwSetCharCallback(winid, cbfun) { + GLFW.setCharCallback(winid, cbfun); + } + + function _emscripten_glGetUniformLocation(program, name) { + name = Pointer_stringify(name); + + var arrayOffset = 0; + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (name.indexOf(']', name.length-1) !== -1) { + var ls = name.lastIndexOf('['); + var arrayIndex = name.slice(ls+1, -1); + if (arrayIndex.length > 0) { + arrayOffset = parseInt(arrayIndex); + if (arrayOffset < 0) { + return -1; + } + } + name = name.slice(0, ls); + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + return -1; + } + var utable = ptable.uniforms; + var uniformInfo = utable[name]; // returns pair [ dimension_of_uniform_array, uniform_location ] + if (uniformInfo && arrayOffset < uniformInfo[0]) { // Check if user asked for an out-of-bounds element, i.e. for 'vec4 colors[3];' user could ask for 'colors[10]' which should return -1. + return uniformInfo[1]+arrayOffset; + } else { + return -1; + } + } + + function _glActiveTexture(x0) { GLctx['activeTexture'](x0) } + + function _glBindBuffer(target, buffer) { + var bufferObj = buffer ? GL.buffers[buffer] : null; + + + GLctx.bindBuffer(target, bufferObj); + } + + function _emscripten_glVertexAttrib4fv(index, v) { + + GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); + } + + function _emscripten_glScissor(x0, x1, x2, x3) { GLctx['scissor'](x0, x1, x2, x3) } + + function _glfwSetCursorEnterCallback(winid, cbfun) { + var win = GLFW.WindowFromId(winid); + if (!win) return; + win.cursorEnterFunc = cbfun; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function _glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + function _emscripten_glIsShader(shader) { + var s = GL.shaders[shader]; + if (!s) return 0; + return GLctx.isShader(s); + } + + function _emscripten_glDrawBuffers(n, bufs) { + + var bufArray = GL.tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs)+(i*4))>>2)]; + } + + GLctx['drawBuffers'](bufArray); + } + + function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _emscripten_glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : null); + } + + function _emscripten_glBlendEquation(x0) { GLctx['blendEquation'](x0) } + + function _emscripten_glBufferSubData(target, offset, size, data) { + GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); + } + + function _emscripten_glBufferData(target, size, data, usage) { + if (!data) { + GLctx.bufferData(target, size, usage); + } else { + GLctx.bufferData(target, HEAPU8.subarray(data, data+size), usage); + } + } + + + Module["_sbrk"] = _sbrk; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _emscripten_glGetShaderSource(shader, bufSize, length, source) { + var result = GLctx.getShaderSource(GL.shaders[shader]); + if (!result) return; // If an error occurs, nothing will be written to length or source. + if (bufSize > 0 && source) { + var numBytesWrittenExclNull = stringToUTF8(result, source, bufSize); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + + Module["_llvm_bswap_i32"] = _llvm_bswap_i32; + + function _emscripten_set_click_callback(target, userData, useCapture, callbackfunc) { + JSEvents.registerMouseEventCallback(target, userData, useCapture, callbackfunc, 4, "click"); + return 0; + } + + function _glfwSetKeyCallback(winid, cbfun) { + GLFW.setKeyCallback(winid, cbfun); + } + + function _emscripten_set_gamepadconnected_callback(userData, useCapture, callbackfunc) { + if (!navigator.getGamepads && !navigator.webkitGetGamepads) return -1; + JSEvents.registerGamepadEventCallback(window, userData, useCapture, callbackfunc, 26, "gamepadconnected"); + return 0; + } + + function _emscripten_glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 'Float'); + } + + function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function ___assert_fail(condition, filename, line, func) { + ABORT = true; + throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + } + + function _emscripten_glVertexAttribDivisor(index, divisor) { + GLctx['vertexAttribDivisor'](index, divisor); + } + + function _emscripten_glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx['drawElementsInstanced'](mode, count, type, indices, primcount); + } + + function _emscripten_glDrawElements(mode, count, type, indices) { + + GLctx.drawElements(mode, count, type, indices); + + } + + function _glfwSetMouseButtonCallback(winid, cbfun) { + GLFW.setMouseButtonCallback(winid, cbfun); + } + + function _emscripten_glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + GL.programs[id] = program; + return id; + } + + function _emscripten_glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null); + } + + function _emscripten_glClearColor(x0, x1, x2, x3) { GLctx['clearColor'](x0, x1, x2, x3) } + + function _emscripten_glBindVertexArray(vao) { + GLctx['bindVertexArray'](GL.vaos[vao]); + } + + function _emscripten_glLoadMatrixf() { + Module['printErr']('missing function: emscripten_glLoadMatrixf'); abort(-1); + } + + function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { // glDeleteShader actually signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; + } + + function _emscripten_glGetProgramiv(program, pname, p) { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null pointer. Since calling this function does not make sense + // if p == null, issue a GL error to notify user about it. + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + if (program >= GL.counter) { + GL.recordError(0x0501 /* GL_INVALID_VALUE */); + return; + } + + var ptable = GL.programInfos[program]; + if (!ptable) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + return; + } + + if (pname == 0x8B84) { // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + HEAP32[((p)>>2)]=log.length + 1; + } else if (pname == 0x8B87 /* GL_ACTIVE_UNIFORM_MAX_LENGTH */) { + HEAP32[((p)>>2)]=ptable.maxUniformLength; + } else if (pname == 0x8B8A /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */) { + if (ptable.maxAttributeLength == -1) { + var program = GL.programs[program]; + var numAttribs = GLctx.getProgramParameter(program, GLctx.ACTIVE_ATTRIBUTES); + ptable.maxAttributeLength = 0; // Spec says if there are no active attribs, 0 must be returned. + for (var i = 0; i < numAttribs; ++i) { + var activeAttrib = GLctx.getActiveAttrib(program, i); + ptable.maxAttributeLength = Math.max(ptable.maxAttributeLength, activeAttrib.name.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxAttributeLength; + } else if (pname == 0x8A35 /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */) { + if (ptable.maxUniformBlockNameLength == -1) { + var program = GL.programs[program]; + var numBlocks = GLctx.getProgramParameter(program, GLctx.ACTIVE_UNIFORM_BLOCKS); + ptable.maxUniformBlockNameLength = 0; + for (var i = 0; i < numBlocks; ++i) { + var activeBlockName = GLctx.getActiveUniformBlockName(program, i); + ptable.maxUniformBlockNameLength = Math.max(ptable.maxUniformBlockNameLength, activeBlockName.length+1); + } + } + HEAP32[((p)>>2)]=ptable.maxUniformBlockNameLength; + } else { + HEAP32[((p)>>2)]=GLctx.getProgramParameter(GL.programs[program], pname); + } + } + + function _emscripten_glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = '(unknown error)'; + + if (maxLength > 0 && infoLog) { + var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength); + if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull; + } else { + if (length) HEAP32[((length)>>2)]=0; + } + } + + function _emscripten_glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + + var pixelData = null; + if (pixels) pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); + } + + function _glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function ___unlock() {} + + function _emscripten_glColorPointer() { + Module['printErr']('missing function: emscripten_glColorPointer'); abort(-1); + } + + function _glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) } + + function _glVertexAttrib2f(x0, x1, x2) { GLctx['vertexAttrib2f'](x0, x1, x2) } + + function _glfwDestroyWindow(winid) { + return GLFW.destroyWindow(winid); + } + + function _emscripten_glFlush() { GLctx['flush']() } + + function _glfwSetErrorCallback(cbfun) { + GLFW.errorFunc = cbfun; + } + + function _emscripten_glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; + } + + function _glUniformMatrix4fv(location, count, transpose, value) { + + + var view; + if (16*count <= GL.MINI_TEMP_BUFFER_SIZE) { + // avoid allocation when uploading few enough uniforms + view = GL.miniTempBufferViews[16*count-1]; + for (var i = 0; i < 16*count; i += 16) { + view[i] = HEAPF32[(((value)+(4*i))>>2)]; + view[i+1] = HEAPF32[(((value)+(4*i+4))>>2)]; + view[i+2] = HEAPF32[(((value)+(4*i+8))>>2)]; + view[i+3] = HEAPF32[(((value)+(4*i+12))>>2)]; + view[i+4] = HEAPF32[(((value)+(4*i+16))>>2)]; + view[i+5] = HEAPF32[(((value)+(4*i+20))>>2)]; + view[i+6] = HEAPF32[(((value)+(4*i+24))>>2)]; + view[i+7] = HEAPF32[(((value)+(4*i+28))>>2)]; + view[i+8] = HEAPF32[(((value)+(4*i+32))>>2)]; + view[i+9] = HEAPF32[(((value)+(4*i+36))>>2)]; + view[i+10] = HEAPF32[(((value)+(4*i+40))>>2)]; + view[i+11] = HEAPF32[(((value)+(4*i+44))>>2)]; + view[i+12] = HEAPF32[(((value)+(4*i+48))>>2)]; + view[i+13] = HEAPF32[(((value)+(4*i+52))>>2)]; + view[i+14] = HEAPF32[(((value)+(4*i+56))>>2)]; + view[i+15] = HEAPF32[(((value)+(4*i+60))>>2)]; + } + } else { + view = HEAPF32.subarray((value)>>2,(value+count*64)>>2); + } + GLctx.uniformMatrix4fv(GL.uniforms[location], !!transpose, view); + } + + function _emscripten_glValidateProgram(program) { + GLctx.validateProgram(GL.programs[program]); + } + + function _glTexParameteri(x0, x1, x2) { GLctx['texParameteri'](x0, x1, x2) } + + function _glFrontFace(x0) { GLctx['frontFace'](x0) } + + function _emscripten_glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); + } + + function _emscripten_glPixelStorei(pname, param) { + if (pname == 0x0D05 /* GL_PACK_ALIGNMENT */) { + GL.packAlignment = param; + } else if (pname == 0x0cf5 /* GL_UNPACK_ALIGNMENT */) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); + } + + function _emscripten_glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures)+(i*4))>>2)]; + var texture = GL.textures[id]; + if (!texture) continue; // GL spec: "glDeleteTextures silently ignores 0s and names that do not correspond to existing textures". + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } + } + + function _emscripten_glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); + } + + function _emscripten_glGenVertexArrays(n, arrays) { + + for (var i = 0; i < n; i++) { + var vao = GLctx['createVertexArray'](); + if (!vao) { + GL.recordError(0x0502 /* GL_INVALID_OPERATION */); + while(i < n) HEAP32[(((arrays)+(i++*4))>>2)]=0; + return; + } + var id = GL.getNewId(GL.vaos); + vao.name = id; + GL.vaos[id] = vao; + HEAP32[(((arrays)+(i*4))>>2)]=id; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _emscripten_glGetBooleanv(name_, p) { + emscriptenWebGLGet(name_, p, 'Boolean'); + } + + function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; + try { + // fcntl64 + var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -ERRNO_CODES.EINVAL; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 12: + case 12: { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + } + case 13: + case 14: + case 13: + case 14: + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: { + return -ERRNO_CODES.EINVAL; + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } +var GLctx; GL.init(); +if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function _emscripten_get_now_actual() { + var t = process['hrtime'](); + return t[0] * 1e3 + t[1] / 1e6; + }; + } else if (typeof dateNow !== 'undefined') { + _emscripten_get_now = dateNow; + } else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { + _emscripten_get_now = function() { return self['performance']['now'](); }; + } else if (typeof performance === 'object' && typeof performance['now'] === 'function') { + _emscripten_get_now = function() { return performance['now'](); }; + } else { + _emscripten_get_now = Date.now; + }; +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."); Module["requestFullScreen"] = Module["requestFullscreen"]; Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; + Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; +FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(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;Module["FS_unlink"] = FS.unlink;; +__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; +JSEvents.staticInit();; +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); + +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); + +HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + +staticSealed = true; // seal the static portion of memory + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vd(x) { Module["printErr"]("Invalid function pointer called with signature 'vd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viddd(x) { Module["printErr"]("Invalid function pointer called with signature 'viddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vidddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vidddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdi(x) { Module["printErr"]("Invalid function pointer called with signature 'vdi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdddd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vdd(x) { Module["printErr"]("Invalid function pointer called with signature 'vdd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vd(index,a1) { + try { + Module["dynCall_vd"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_viddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidd(index,a1,a2,a3) { + try { + Module["dynCall_vidd"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vidddd(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_vidddd"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdi(index,a1,a2) { + try { + Module["dynCall_vdi"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + try { + Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddddd(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_vdddddd"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdddd(index,a1,a2,a3,a4) { + try { + Module["dynCall_vdddd"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_vdd(index,a1,a2) { + try { + Module["dynCall_vdd"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + Module["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_glVertexAttrib4f": _glVertexAttrib4f, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_glVertexAttrib3f": _glVertexAttrib3f, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_glUniform3f": _glUniform3f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glVertexAttrib2f": _glVertexAttrib2f, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_emscripten_set_keypress_callback": _emscripten_set_keypress_callback, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_set_click_callback": _emscripten_set_click_callback, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_get_pointerlock_status": _emscripten_get_pointerlock_status, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_glActiveTexture": _glActiveTexture, "_emscripten_request_pointerlock": _emscripten_request_pointerlock, "_glGetFloatv": _glGetFloatv, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_exit_pointerlock": _emscripten_exit_pointerlock, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_glUniform1f": _glUniform1f, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_glGenTextures": _glGenTextures, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var cttz_i8=env.cttz_i8|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vd=env.nullFunc_vd; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viddd=env.nullFunc_viddd; + var nullFunc_vidd=env.nullFunc_vidd; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiiiii=env.nullFunc_viiiiiiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_vidddd=env.nullFunc_vidddd; + var nullFunc_vdi=env.nullFunc_vdi; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_viiiiiiiii=env.nullFunc_viiiiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vdddddd=env.nullFunc_vdddddd; + var nullFunc_vdddd=env.nullFunc_vdddd; + var nullFunc_vdd=env.nullFunc_vdd; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vd=env.invoke_vd; + var invoke_vid=env.invoke_vid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viddd=env.invoke_viddd; + var invoke_vidd=env.invoke_vidd; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiiiii=env.invoke_viiiiiiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_viii=env.invoke_viii; + var invoke_vidddd=env.invoke_vidddd; + var invoke_vdi=env.invoke_vdi; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_viiiiiiiii=env.invoke_viiiiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_i=env.invoke_i; + var invoke_vdddddd=env.invoke_vdddddd; + var invoke_vdddd=env.invoke_vdddd; + var invoke_vdd=env.invoke_vdd; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_viiii=env.invoke_viiii; + var _emscripten_glGetTexParameterfv=env._emscripten_glGetTexParameterfv; + var _glUseProgram=env._glUseProgram; + var _emscripten_glShaderSource=env._emscripten_glShaderSource; + var _glfwCreateWindow=env._glfwCreateWindow; + var _emscripten_glReleaseShaderCompiler=env._emscripten_glReleaseShaderCompiler; + var _emscripten_glBlendFuncSeparate=env._emscripten_glBlendFuncSeparate; + var _emscripten_glVertexAttribPointer=env._emscripten_glVertexAttribPointer; + var _emscripten_glGetIntegerv=env._emscripten_glGetIntegerv; + var _emscripten_glCullFace=env._emscripten_glCullFace; + var _emscripten_glIsProgram=env._emscripten_glIsProgram; + var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate; + var _emscripten_glViewport=env._emscripten_glViewport; + var _emscripten_glFrontFace=env._emscripten_glFrontFace; + var ___assert_fail=env.___assert_fail; + var _glDeleteProgram=env._glDeleteProgram; + var _emscripten_glUniform3fv=env._emscripten_glUniform3fv; + var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset; + var _emscripten_glUseProgram=env._emscripten_glUseProgram; + var _glVertexAttrib4f=env._glVertexAttrib4f; + var _glBindBuffer=env._glBindBuffer; + var _emscripten_glDepthFunc=env._emscripten_glDepthFunc; + var _glGetShaderInfoLog=env._glGetShaderInfoLog; + var _emscripten_set_fullscreenchange_callback=env._emscripten_set_fullscreenchange_callback; + var _emscripten_set_touchmove_callback=env._emscripten_set_touchmove_callback; + var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; + var _emscripten_set_gamepaddisconnected_callback=env._emscripten_set_gamepaddisconnected_callback; + var _glDisable=env._glDisable; + var _glBlendFunc=env._glBlendFunc; + var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray; + var _glGetAttribLocation=env._glGetAttribLocation; + var _glDisableVertexAttribArray=env._glDisableVertexAttribArray; + var _glCreateShader=env._glCreateShader; + var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage; + var _emscripten_glVertexPointer=env._emscripten_glVertexPointer; + var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback; + var emscriptenWebGLComputeImageSize=env.emscriptenWebGLComputeImageSize; + var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv; + var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource; + var _glUniform4f=env._glUniform4f; + var _llvm_stacksave=env._llvm_stacksave; + var _emscripten_glUniform1i=env._emscripten_glUniform1i; + var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate; + var _emscripten_glFrustum=env._emscripten_glFrustum; + var _emscripten_glGenBuffers=env._emscripten_glGenBuffers; + var _emscripten_glDeleteObjectARB=env._emscripten_glDeleteObjectARB; + var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback; + var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat; + var _glfwInit=env._glfwInit; + var _glGenBuffers=env._glGenBuffers; + var _glShaderSource=env._glShaderSource; + var _emscripten_glGetString=env._emscripten_glGetString; + var _emscripten_glIsFramebuffer=env._emscripten_glIsFramebuffer; + var _glVertexAttrib3f=env._glVertexAttrib3f; + var _emscripten_glIsEnabled=env._emscripten_glIsEnabled; + var _emscripten_glScissor=env._emscripten_glScissor; + var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv; + var _emscripten_glFramebufferTexture2D=env._emscripten_glFramebufferTexture2D; + var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv; + var ___syscall145=env.___syscall145; + var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB; + var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate; + var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer; + var ___syscall140=env.___syscall140; + var _glfwSetErrorCallback=env._glfwSetErrorCallback; + var _glfwDefaultWindowHints=env._glfwDefaultWindowHints; + var _glfwDestroyWindow=env._glfwDestroyWindow; + var ___syscall146=env.___syscall146; + var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib; + var _emscripten_glAttachShader=env._emscripten_glAttachShader; + var _glVertexAttribPointer=env._glVertexAttribPointer; + var _emscripten_glUniform2i=env._emscripten_glUniform2i; + var _emscripten_glUniform2f=env._emscripten_glUniform2f; + var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv; + var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv; + var _glGetProgramInfoLog=env._glGetProgramInfoLog; + var _glfwSetScrollCallback=env._glfwSetScrollCallback; + var _emscripten_glTexParameterf=env._emscripten_glTexParameterf; + var _emscripten_glGetAttachedShaders=env._emscripten_glGetAttachedShaders; + var _emscripten_glGenTextures=env._emscripten_glGenTextures; + var _emscripten_glTexParameteri=env._emscripten_glTexParameteri; + var _llvm_stackrestore=env._llvm_stackrestore; + var _glfwMakeContextCurrent=env._glfwMakeContextCurrent; + var _emscripten_glClear=env._emscripten_glClear; + var _glDrawElements=env._glDrawElements; + var _glBufferSubData=env._glBufferSubData; + var _emscripten_glValidateProgram=env._emscripten_glValidateProgram; + var _emscripten_glVertexAttrib2fv=env._emscripten_glVertexAttrib2fv; + var _glViewport=env._glViewport; + var _emscripten_glUniform4iv=env._emscripten_glUniform4iv; + var _emscripten_glGetTexParameteriv=env._emscripten_glGetTexParameteriv; + var ___setErrNo=env.___setErrNo; + var _eglGetProcAddress=env._eglGetProcAddress; + var _emscripten_glBindAttribLocation=env._emscripten_glBindAttribLocation; + var _glDeleteTextures=env._glDeleteTextures; + var _glDepthFunc=env._glDepthFunc; + var _emscripten_glClientActiveTexture=env._emscripten_glClientActiveTexture; + var _emscripten_glVertexAttrib2f=env._emscripten_glVertexAttrib2f; + var _glUniform3f=env._glUniform3f; + var _emscripten_glFlush=env._emscripten_glFlush; + var _emscripten_glCheckFramebufferStatus=env._emscripten_glCheckFramebufferStatus; + var _emscripten_glGenerateMipmap=env._emscripten_glGenerateMipmap; + var _emscripten_glGetError=env._emscripten_glGetError; + var _emscripten_glClearDepthf=env._emscripten_glClearDepthf; + var _emscripten_glBufferData=env._emscripten_glBufferData; + var _emscripten_glUniform3i=env._emscripten_glUniform3i; + var _emscripten_glRotatef=env._emscripten_glRotatef; + var _emscripten_glDeleteShader=env._emscripten_glDeleteShader; + var _glEnable=env._glEnable; + var _glVertexAttrib2f=env._glVertexAttrib2f; + var _emscripten_glReadPixels=env._emscripten_glReadPixels; + var _emscripten_glMatrixMode=env._emscripten_glMatrixMode; + var _glGetString=env._glGetString; + var _emscripten_glClearStencil=env._emscripten_glClearStencil; + var _emscripten_glGetUniformLocation=env._emscripten_glGetUniformLocation; + var emscriptenWebGLGet=env.emscriptenWebGLGet; + var _emscripten_glEnableVertexAttribArray=env._emscripten_glEnableVertexAttribArray; + var _emscripten_glGetAttribLocation=env._emscripten_glGetAttribLocation; + var _emscripten_get_now=env._emscripten_get_now; + var _emscripten_glNormalPointer=env._emscripten_glNormalPointer; + var _glAttachShader=env._glAttachShader; + var _emscripten_glTexCoordPointer=env._emscripten_glTexCoordPointer; + var _emscripten_glEnable=env._emscripten_glEnable; + var _glCreateProgram=env._glCreateProgram; + var _glUniformMatrix4fv=env._glUniformMatrix4fv; + var _emscripten_glClearDepth=env._emscripten_glClearDepth; + var ___lock=env.___lock; + var emscriptenWebGLGetTexPixelData=env.emscriptenWebGLGetTexPixelData; + var ___syscall6=env.___syscall6; + var ___syscall5=env.___syscall5; + var _emscripten_glIsBuffer=env._emscripten_glIsBuffer; + var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f; + var _time=env._time; + var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f; + var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv; + var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate; + var _exit=env._exit; + var _emscripten_glEnableClientState=env._emscripten_glEnableClientState; + var _emscripten_glUniform4i=env._emscripten_glUniform4i; + var _emscripten_glDrawRangeElements=env._emscripten_glDrawRangeElements; + var _glCullFace=env._glCullFace; + var _emscripten_glGetPointerv=env._emscripten_glGetPointerv; + var _emscripten_set_keypress_callback=env._emscripten_set_keypress_callback; + var __emscripten_sample_gamepad_data=env.__emscripten_sample_gamepad_data; + var _emscripten_get_gamepad_status=env._emscripten_get_gamepad_status; + var _emscripten_glUniform4f=env._emscripten_glUniform4f; + var _emscripten_glUniform2fv=env._emscripten_glUniform2fv; + var _glfwGetVideoModes=env._glfwGetVideoModes; + var _emscripten_set_click_callback=env._emscripten_set_click_callback; + var _emscripten_glFinish=env._emscripten_glFinish; + var _emscripten_glShaderBinary=env._emscripten_glShaderBinary; + var _emscripten_glDrawElements=env._emscripten_glDrawElements; + var _emscripten_glBlendFunc=env._emscripten_glBlendFunc; + var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads; + var ___syscall221=env.___syscall221; + var _glCompressedTexImage2D=env._glCompressedTexImage2D; + var _emscripten_glUniform1iv=env._emscripten_glUniform1iv; + var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv; + var _glClearDepthf=env._glClearDepthf; + var _emscripten_glCompressedTexSubImage2D=env._emscripten_glCompressedTexSubImage2D; + var emscriptenWebGLGetUniform=env.emscriptenWebGLGetUniform; + var _emscripten_glGenRenderbuffers=env._emscripten_glGenRenderbuffers; + var _emscripten_glDeleteVertexArrays=env._emscripten_glDeleteVertexArrays; + var _glfwSetWindowShouldClose=env._glfwSetWindowShouldClose; + var _emscripten_glUniform1fv=env._emscripten_glUniform1fv; + var _emscripten_glGetActiveUniform=env._emscripten_glGetActiveUniform; + var _glBindTexture=env._glBindTexture; + var _emscripten_glUniform3iv=env._emscripten_glUniform3iv; + var _emscripten_glUniform2iv=env._emscripten_glUniform2iv; + var _emscripten_glHint=env._emscripten_glHint; + var _glfwSetCharCallback=env._glfwSetCharCallback; + var emscriptenWebGLGetVertexAttrib=env.emscriptenWebGLGetVertexAttrib; + var _emscripten_glLoadMatrixf=env._emscripten_glLoadMatrixf; + var _emscripten_glDeleteProgram=env._emscripten_glDeleteProgram; + var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers; + var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced; + var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f; + var _glDrawArrays=env._glDrawArrays; + var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _emscripten_glPixelStorei=env._emscripten_glPixelStorei; + var _glCompileShader=env._glCompileShader; + var _emscripten_get_pointerlock_status=env._emscripten_get_pointerlock_status; + var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv; + var _emscripten_glColorPointer=env._emscripten_glColorPointer; + var _emscripten_glGetBufferParameteriv=env._emscripten_glGetBufferParameteriv; + var _glActiveTexture=env._glActiveTexture; + var _emscripten_request_pointerlock=env._emscripten_request_pointerlock; + var _glGetFloatv=env._glGetFloatv; + var _emscripten_asm_const_iii=env._emscripten_asm_const_iii; + var _emscripten_glDepthMask=env._emscripten_glDepthMask; + var _glfwSetWindowIconifyCallback=env._glfwSetWindowIconifyCallback; + var _emscripten_glDrawBuffers=env._emscripten_glDrawBuffers; + var _glfwTerminate=env._glfwTerminate; + var _glFrontFace=env._glFrontFace; + var _emscripten_glGetObjectParameterivARB=env._emscripten_glGetObjectParameterivARB; + var _emscripten_exit_pointerlock=env._emscripten_exit_pointerlock; + var _glfwSwapInterval=env._glfwSwapInterval; + var _glUniform1i=env._glUniform1i; + var _glEnableVertexAttribArray=env._glEnableVertexAttribArray; + var _emscripten_glStencilFunc=env._emscripten_glStencilFunc; + var _abort=env._abort; + var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv; + var _glDeleteBuffers=env._glDeleteBuffers; + var _glBufferData=env._glBufferData; + var _glTexImage2D=env._glTexImage2D; + var _emscripten_glGetShaderiv=env._emscripten_glGetShaderiv; + var _glfwSetKeyCallback=env._glfwSetKeyCallback; + var _emscripten_glGenFramebuffers=env._emscripten_glGenFramebuffers; + var _glUniform1f=env._glUniform1f; + var _emscripten_glUniformMatrix4fv=env._emscripten_glUniformMatrix4fv; + var _emscripten_glLoadIdentity=env._emscripten_glLoadIdentity; + var _glDeleteShader=env._glDeleteShader; + var _emscripten_glUniform1f=env._emscripten_glUniform1f; + var _glGetProgramiv=env._glGetProgramiv; + var _emscripten_glBindFramebuffer=env._emscripten_glBindFramebuffer; + var _emscripten_glIsRenderbuffer=env._emscripten_glIsRenderbuffer; + var _glfwGetTime=env._glfwGetTime; + var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage; + var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback; + var _emscripten_glBlendColor=env._emscripten_glBlendColor; + var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv; + var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray; + var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced; + var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback; + var _emscripten_glCreateShader=env._emscripten_glCreateShader; + var _emscripten_glStencilMask=env._emscripten_glStencilMask; + var _emscripten_glDeleteTextures=env._emscripten_glDeleteTextures; + var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer; + var _glfwGetPrimaryMonitor=env._glfwGetPrimaryMonitor; + var _glLinkProgram=env._glLinkProgram; + var _emscripten_glVertexAttribDivisor=env._emscripten_glVertexAttribDivisor; + var _emscripten_set_touchend_callback=env._emscripten_set_touchend_callback; + var _emscripten_glGetUniformfv=env._emscripten_glGetUniformfv; + var _emscripten_glGetVertexAttribfv=env._emscripten_glGetVertexAttribfv; + var _emscripten_glGetRenderbufferParameteriv=env._emscripten_glGetRenderbufferParameteriv; + var _emscripten_glDeleteFramebuffers=env._emscripten_glDeleteFramebuffers; + var _glGetShaderiv=env._glGetShaderiv; + var _emscripten_glVertexAttrib3fv=env._emscripten_glVertexAttrib3fv; + var _glGetUniformLocation=env._glGetUniformLocation; + var _emscripten_glGetInfoLogARB=env._emscripten_glGetInfoLogARB; + var _emscripten_glCompileShader=env._emscripten_glCompileShader; + var _glClear=env._glClear; + var _glGenTextures=env._glGenTextures; + var _emscripten_glDisable=env._emscripten_glDisable; + var _emscripten_glDepthRangef=env._emscripten_glDepthRangef; + var __exit=env.__exit; + var _emscripten_glLineWidth=env._emscripten_glLineWidth; + var _emscripten_glUniform3f=env._emscripten_glUniform3f; + var _emscripten_glGetShaderInfoLog=env._emscripten_glGetShaderInfoLog; + var _emscripten_glStencilOp=env._emscripten_glStencilOp; + var _glBindAttribLocation=env._glBindAttribLocation; + var _glPixelStorei=env._glPixelStorei; + var _emscripten_glColorMask=env._emscripten_glColorMask; + var _emscripten_glLinkProgram=env._emscripten_glLinkProgram; + var _emscripten_glBlendEquation=env._emscripten_glBlendEquation; + var _emscripten_glIsTexture=env._emscripten_glIsTexture; + var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv; + var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv; + var _emscripten_glBindTexture=env._emscripten_glBindTexture; + var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback; + var _glfwGetCursorPos=env._glfwGetCursorPos; + var _emscripten_glActiveTexture=env._emscripten_glActiveTexture; + var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_glBufferSubData=env._emscripten_glBufferSubData; + var _glfwSwapBuffers=env._glfwSwapBuffers; + var _emscripten_glDepthRange=env._emscripten_glDepthRange; + var _emscripten_set_main_loop=env._emscripten_set_main_loop; + var _emscripten_glGetProgramInfoLog=env._emscripten_glGetProgramInfoLog; + var _glfwWindowHint=env._glfwWindowHint; + var _emscripten_glIsShader=env._emscripten_glIsShader; + var _emscripten_glUniform4fv=env._emscripten_glUniform4fv; + var _emscripten_glGenVertexArrays=env._emscripten_glGenVertexArrays; + var _emscripten_glDrawArrays=env._emscripten_glDrawArrays; + var _emscripten_glCompressedTexImage2D=env._emscripten_glCompressedTexImage2D; + var _emscripten_glClearColor=env._emscripten_glClearColor; + var _emscripten_glCreateProgram=env._emscripten_glCreateProgram; + var _emscripten_glCopyTexSubImage2D=env._emscripten_glCopyTexSubImage2D; + var _glTexParameteri=env._glTexParameteri; + var _emscripten_glBindBuffer=env._emscripten_glBindBuffer; + var _emscripten_glGetFloatv=env._emscripten_glGetFloatv; + var _emscripten_glDetachShader=env._emscripten_glDetachShader; + var _glClearColor=env._glClearColor; + var _glfwSetCursorPosCallback=env._glfwSetCursorPosCallback; + var _glfwSetCursorEnterCallback=env._glfwSetCursorEnterCallback; + var _emscripten_glCopyTexImage2D=env._emscripten_glCopyTexImage2D; + var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; + var tempFloat = 0.0; + +// EMSCRIPTEN_START_FUNCS + +function stackAlloc(size) { + size = size|0; + var ret = 0; + ret = STACKTOP; + STACKTOP = (STACKTOP + size)|0; + STACKTOP = (STACKTOP + 15)&-16; + if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); + + return ret|0; +} +function stackSave() { + return STACKTOP|0; +} +function stackRestore(top) { + top = top|0; + STACKTOP = top; +} +function establishStackSpace(stackBase, stackMax) { + stackBase = stackBase|0; + stackMax = stackMax|0; + STACKTOP = stackBase; + STACK_MAX = stackMax; +} + +function setThrew(threw, value) { + threw = threw|0; + value = value|0; + if ((__THREW__|0) == 0) { + __THREW__ = threw; + threwValue = value; + } +} + +function setTempRet0(value) { + value = value|0; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; +} + +function _main() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $dwarf$byval_copy = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $dwarf$byval_copy = sp + 288|0; + $0 = sp + 24|0; + $1 = sp; + $2 = HEAP32[2]|0; + $3 = HEAP32[3]|0; + _InitWindow($2,$3,4408); + _LoadModel($0,4452); + _memcpy((18212|0),($0|0),264)|0; + _LoadTexture($1,4478); + ;HEAP32[18476>>2]=HEAP32[$1>>2]|0;HEAP32[18476+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[18476+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[18476+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[18476+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[(18400)>>2]=HEAP32[$1>>2]|0;HEAP32[(18400)+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[(18400)+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[(18400)+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[(18400)+16>>2]=HEAP32[$1+16>>2]|0; + _emscripten_set_main_loop((1|0),0,1); + ;HEAP32[$dwarf$byval_copy>>2]=HEAP32[18476>>2]|0;HEAP32[$dwarf$byval_copy+4>>2]=HEAP32[18476+4>>2]|0;HEAP32[$dwarf$byval_copy+8>>2]=HEAP32[18476+8>>2]|0;HEAP32[$dwarf$byval_copy+12>>2]=HEAP32[18476+12>>2]|0;HEAP32[$dwarf$byval_copy+16>>2]=HEAP32[18476+16>>2]|0; + _UnloadTexture($dwarf$byval_copy); + _memcpy(($dwarf$byval_copy|0),(18212|0),264)|0; + _UnloadModel($dwarf$byval_copy); + _CloseWindow(); + STACKTOP = sp;return 0; +} +function _UpdateDrawFrame() { + var $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dwarf$byval_copy = 0, $position$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0; + var stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 280|0; + $position$byval_copy = sp + 268|0; + $dwarf$byval_copy = sp; + $0 = sp + 324|0; + $1 = sp + 264|0; + $2 = sp + 320|0; + _BeginDrawing(); + HEAP8[$0>>0] = -11; + $3 = ((($0)) + 1|0); + HEAP8[$3>>0] = -11; + $4 = ((($0)) + 2|0); + HEAP8[$4>>0] = -11; + $5 = ((($0)) + 3|0); + HEAP8[$5>>0] = -1; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$0>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$0+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$0+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$0+3>>0]|0; + _ClearBackground($$byval_copy2); + dest=$$byval_copy2; src=16; stop=dest+40|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _Begin3dMode($$byval_copy2); + HEAP32[$1>>2] = -1; + _memcpy(($dwarf$byval_copy|0),(18212|0),264)|0; + ;HEAP32[$position$byval_copy>>2]=HEAP32[18200>>2]|0;HEAP32[$position$byval_copy+4>>2]=HEAP32[18200+4>>2]|0;HEAP32[$position$byval_copy+8>>2]=HEAP32[18200+8>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$1+3>>0]|0; + _DrawModel($dwarf$byval_copy,$position$byval_copy,2.0,$$byval_copy2); + _DrawGrid(10,1.0); + ;HEAP32[$$byval_copy2>>2]=HEAP32[18200>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[18200+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[18200+8>>2]|0; + _DrawGizmo($$byval_copy2); + _End3dMode(); + $6 = HEAP32[2]|0; + $7 = (($6) + -200)|0; + $8 = HEAP32[3]|0; + $9 = (($8) + -20)|0; + HEAP8[$2>>0] = -126; + $10 = ((($2)) + 1|0); + HEAP8[$10>>0] = -126; + $11 = ((($2)) + 2|0); + HEAP8[$11>>0] = -126; + $12 = ((($2)) + 3|0); + HEAP8[$12>>0] = -1; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(4512,$7,$9,10,$$byval_copy2); + _DrawFPS(10,10); + _EndDrawing(); + STACKTOP = sp;return; +} +function _Vector2Distance($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = +HEAPF32[$1>>2]; + $4 = $2 - $3; + $5 = $4 * $4; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 - $9; + $11 = $10 * $10; + $12 = $5 + $11; + $13 = (+Math_sqrt((+$12))); + return (+$13); +} +function _Vector2Angle($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($1)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $3 - $5; + $7 = +HEAPF32[$1>>2]; + $8 = +HEAPF32[$0>>2]; + $9 = $7 - $8; + $10 = (+Math_atan2((+$6),(+$9))); + $11 = $10 * 57.2957763671875; + $12 = $11 < 0.0; + $13 = $11 + 360.0; + $$0 = $12 ? $13 : $11; + return (+$$0); +} +function _VectorZero($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 0.0; + $1 = ((($0)) + 4|0); + HEAPF32[$1>>2] = 0.0; + $2 = ((($0)) + 8|0); + HEAPF32[$2>>2] = 0.0; + return; +} +function _VectorSubtract($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$1>>2]; + $4 = +HEAPF32[$2>>2]; + $5 = $3 - $4; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = ((($1)) + 4|0); + $8 = +HEAPF32[$7>>2]; + $9 = ((($2)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $8 - $10; + HEAPF32[$6>>2] = $11; + $12 = ((($0)) + 8|0); + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($2)) + 8|0); + $16 = +HEAPF32[$15>>2]; + $17 = $14 - $16; + HEAPF32[$12>>2] = $17; + return; +} +function _VectorCrossProduct($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0; + var $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($2)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = $4 * $6; + $8 = ((($1)) + 8|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($2)) + 4|0); + $11 = +HEAPF32[$10>>2]; + $12 = $9 * $11; + $13 = $7 - $12; + $14 = +HEAPF32[$2>>2]; + $15 = $9 * $14; + $16 = +HEAPF32[$1>>2]; + $17 = $6 * $16; + $18 = $15 - $17; + $19 = $11 * $16; + $20 = $4 * $14; + $21 = $19 - $20; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $18; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $21; + return; +} +function _VectorLength($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = $1 * $1; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = $4 * $4; + $6 = $2 + $5; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $8; + $10 = $6 + $9; + $11 = (+Math_sqrt((+$10))); + return (+$11); +} +function _VectorScale($0,$1) { + $0 = $0|0; + $1 = +$1; + var $2 = 0.0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = $2 * $1; + HEAPF32[$0>>2] = $3; + $4 = ((($0)) + 4|0); + $5 = +HEAPF32[$4>>2]; + $6 = $5 * $1; + HEAPF32[$4>>2] = $6; + $7 = ((($0)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * $1; + HEAPF32[$7>>2] = $9; + return; +} +function _VectorNormalize($0) { + $0 = $0|0; + var $$byval_copy = 0, $$op = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $2 = 0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + $1 = (+_VectorLength($$byval_copy)); + $2 = $1 == 0.0; + $$op = 1.0 / $1; + $3 = $2 ? 1.0 : $$op; + $4 = +HEAPF32[$0>>2]; + $5 = $4 * $3; + HEAPF32[$0>>2] = $5; + $6 = ((($0)) + 4|0); + $7 = +HEAPF32[$6>>2]; + $8 = $3 * $7; + HEAPF32[$6>>2] = $8; + $9 = ((($0)) + 8|0); + $10 = +HEAPF32[$9>>2]; + $11 = $3 * $10; + HEAPF32[$9>>2] = $11; + STACKTOP = sp;return; +} +function _VectorTransform($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0; + var $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0.0; + var $47 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[$0>>2]; + $3 = ((($0)) + 4|0); + $4 = +HEAPF32[$3>>2]; + $5 = ((($0)) + 8|0); + $6 = +HEAPF32[$5>>2]; + $7 = +HEAPF32[$1>>2]; + $8 = $2 * $7; + $9 = ((($1)) + 4|0); + $10 = +HEAPF32[$9>>2]; + $11 = $4 * $10; + $12 = $8 + $11; + $13 = ((($1)) + 8|0); + $14 = +HEAPF32[$13>>2]; + $15 = $6 * $14; + $16 = $12 + $15; + $17 = ((($1)) + 12|0); + $18 = +HEAPF32[$17>>2]; + $19 = $18 + $16; + HEAPF32[$0>>2] = $19; + $20 = ((($1)) + 16|0); + $21 = +HEAPF32[$20>>2]; + $22 = $2 * $21; + $23 = ((($1)) + 20|0); + $24 = +HEAPF32[$23>>2]; + $25 = $4 * $24; + $26 = $22 + $25; + $27 = ((($1)) + 24|0); + $28 = +HEAPF32[$27>>2]; + $29 = $6 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 + $30; + HEAPF32[$3>>2] = $33; + $34 = ((($1)) + 32|0); + $35 = +HEAPF32[$34>>2]; + $36 = $2 * $35; + $37 = ((($1)) + 36|0); + $38 = +HEAPF32[$37>>2]; + $39 = $4 * $38; + $40 = $36 + $39; + $41 = ((($1)) + 40|0); + $42 = +HEAPF32[$41>>2]; + $43 = $6 * $42; + $44 = $40 + $43; + $45 = ((($1)) + 44|0); + $46 = +HEAPF32[$45>>2]; + $47 = $46 + $44; + HEAPF32[$5>>2] = $47; + return; +} +function _MatrixTranspose($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 24|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 28|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($0)) + 32|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($0)) + 44|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 52|0); + $22 = HEAP32[$21>>2]|0; + $23 = ((($0)) + 56|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$1>>2] = $8; + HEAP32[$3>>2] = $14; + HEAP32[$5>>2] = $20; + HEAP32[$7>>2] = $2; + HEAP32[$9>>2] = $16; + HEAP32[$11>>2] = $22; + HEAP32[$13>>2] = $4; + HEAP32[$15>>2] = $10; + HEAP32[$17>>2] = $24; + HEAP32[$19>>2] = $6; + HEAP32[$21>>2] = $12; + HEAP32[$23>>2] = $18; + return; +} +function _MatrixInvert($0) { + $0 = $0|0; + var $1 = 0.0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0; + var $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0; + var $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0.0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0.0; + var $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0; + var $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0, $29 = 0.0; + var $3 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0; + var $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0; + var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0; + var $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $1 = +HEAPF32[$0>>2]; + $2 = ((($0)) + 16|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 32|0); + $5 = +HEAPF32[$4>>2]; + $6 = ((($0)) + 48|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($0)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($0)) + 20|0); + $11 = +HEAPF32[$10>>2]; + $12 = ((($0)) + 36|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($0)) + 52|0); + $15 = +HEAPF32[$14>>2]; + $16 = ((($0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + $18 = ((($0)) + 24|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($0)) + 40|0); + $21 = +HEAPF32[$20>>2]; + $22 = ((($0)) + 56|0); + $23 = +HEAPF32[$22>>2]; + $24 = ((($0)) + 12|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($0)) + 28|0); + $27 = +HEAPF32[$26>>2]; + $28 = ((($0)) + 44|0); + $29 = +HEAPF32[$28>>2]; + $30 = ((($0)) + 60|0); + $31 = +HEAPF32[$30>>2]; + $32 = $1 * $11; + $33 = $3 * $9; + $34 = $32 - $33; + $35 = $1 * $13; + $36 = $5 * $9; + $37 = $35 - $36; + $38 = $1 * $15; + $39 = $7 * $9; + $40 = $38 - $39; + $41 = $3 * $13; + $42 = $5 * $11; + $43 = $41 - $42; + $44 = $3 * $15; + $45 = $7 * $11; + $46 = $44 - $45; + $47 = $5 * $15; + $48 = $7 * $13; + $49 = $47 - $48; + $50 = $17 * $27; + $51 = $19 * $25; + $52 = $50 - $51; + $53 = $17 * $29; + $54 = $21 * $25; + $55 = $53 - $54; + $56 = $17 * $31; + $57 = $23 * $25; + $58 = $56 - $57; + $59 = $19 * $29; + $60 = $21 * $27; + $61 = $59 - $60; + $62 = $19 * $31; + $63 = $23 * $27; + $64 = $62 - $63; + $65 = $21 * $31; + $66 = $23 * $29; + $67 = $65 - $66; + $68 = $34 * $67; + $69 = $37 * $64; + $70 = $68 - $69; + $71 = $40 * $61; + $72 = $71 + $70; + $73 = $43 * $58; + $74 = $73 + $72; + $75 = $46 * $55; + $76 = $74 - $75; + $77 = $49 * $52; + $78 = $77 + $76; + $79 = 1.0 / $78; + $80 = $11 * $67; + $81 = $13 * $64; + $82 = $80 - $81; + $83 = $15 * $61; + $84 = $83 + $82; + $85 = $84 * $79; + $86 = $3 * $67; + $87 = $5 * $64; + $88 = $87 - $86; + $89 = $7 * $61; + $90 = $88 - $89; + $91 = $90 * $79; + $92 = $49 * $27; + $93 = $46 * $29; + $94 = $92 - $93; + $95 = $43 * $31; + $96 = $94 + $95; + $97 = $96 * $79; + $98 = $19 * $49; + $99 = $46 * $21; + $100 = $99 - $98; + $101 = $43 * $23; + $102 = $100 - $101; + $103 = $102 * $79; + $104 = -$9; + $105 = $67 * $104; + $106 = $13 * $58; + $107 = $105 + $106; + $108 = $15 * $55; + $109 = $107 - $108; + $110 = $109 * $79; + $111 = $1 * $67; + $112 = $5 * $58; + $113 = $111 - $112; + $114 = $7 * $55; + $115 = $114 + $113; + $116 = $115 * $79; + $117 = -$25; + $118 = $49 * $117; + $119 = $40 * $29; + $120 = $118 + $119; + $121 = $37 * $31; + $122 = $120 - $121; + $123 = $122 * $79; + $124 = $17 * $49; + $125 = $40 * $21; + $126 = $124 - $125; + $127 = $37 * $23; + $128 = $126 + $127; + $129 = $128 * $79; + $130 = $9 * $64; + $131 = $11 * $58; + $132 = $130 - $131; + $133 = $15 * $52; + $134 = $133 + $132; + $135 = $134 * $79; + $136 = $1 * $64; + $137 = $3 * $58; + $138 = $137 - $136; + $139 = $7 * $52; + $140 = $138 - $139; + $141 = $140 * $79; + $142 = $46 * $25; + $143 = $40 * $27; + $144 = $142 - $143; + $145 = $34 * $31; + $146 = $144 + $145; + $147 = $146 * $79; + $148 = $17 * $46; + $149 = $19 * $40; + $150 = $149 - $148; + $151 = $34 * $23; + $152 = $150 - $151; + $153 = $152 * $79; + $154 = $61 * $104; + $155 = $11 * $55; + $156 = $154 + $155; + $157 = $13 * $52; + $158 = $156 - $157; + $159 = $158 * $79; + $160 = $1 * $61; + $161 = $3 * $55; + $162 = $160 - $161; + $163 = $5 * $52; + $164 = $163 + $162; + $165 = $164 * $79; + $166 = $43 * $117; + $167 = $37 * $27; + $168 = $166 + $167; + $169 = $34 * $29; + $170 = $168 - $169; + $171 = $170 * $79; + $172 = $17 * $43; + $173 = $37 * $19; + $174 = $172 - $173; + $175 = $34 * $21; + $176 = $174 + $175; + $177 = $176 * $79; + HEAPF32[$0>>2] = $85; + HEAPF32[$8>>2] = $110; + HEAPF32[$16>>2] = $135; + HEAPF32[$24>>2] = $159; + HEAPF32[$2>>2] = $91; + HEAPF32[$10>>2] = $116; + HEAPF32[$18>>2] = $141; + HEAPF32[$26>>2] = $165; + HEAPF32[$4>>2] = $97; + HEAPF32[$12>>2] = $123; + HEAPF32[$20>>2] = $147; + HEAPF32[$28>>2] = $171; + HEAPF32[$6>>2] = $103; + HEAPF32[$14>>2] = $129; + HEAPF32[$22>>2] = $153; + HEAPF32[$30>>2] = $177; + return; +} +function _MatrixIdentity($0) { + $0 = $0|0; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = 1.0; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = 1.0; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixTranslate($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = 1.0; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + ;HEAP32[$$sroa$4$0$$sroa_idx2>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+4>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+8>>2]=0|0;HEAP32[$$sroa$4$0$$sroa_idx2+12>>2]=0|0; + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = 1.0; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + ;HEAP32[$$sroa$9$0$$sroa_idx12>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+4>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+8>>2]=0|0;HEAP32[$$sroa$9$0$$sroa_idx12+12>>2]=0|0; + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = 1.0; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $2; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $3; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + return; +} +function _MatrixRotate($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + var $$ = 0.0, $$221 = 0.0, $$222 = 0.0, $$sroa$10$0$$sroa_idx199 = 0, $$sroa$11$0$$sroa_idx201 = 0, $$sroa$12$0$$sroa_idx203 = 0, $$sroa$13$0$$sroa_idx205 = 0, $$sroa$14$0$$sroa_idx207 = 0, $$sroa$15$0$$sroa_idx209 = 0, $$sroa$16$0$$sroa_idx211 = 0, $$sroa$17$0$$sroa_idx213 = 0, $$sroa$18$0$$sroa_idx215 = 0, $$sroa$4$0$$sroa_idx187 = 0, $$sroa$5$0$$sroa_idx189 = 0, $$sroa$6$0$$sroa_idx191 = 0, $$sroa$7$0$$sroa_idx193 = 0, $$sroa$8$0$$sroa_idx195 = 0, $$sroa$9$0$$sroa_idx197 = 0, $10 = 0.0, $100 = 0.0; + var $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0; + var $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; + var $138 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0; + var $32 = 0.0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0; + var $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0; + var $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0.0, $80 = 0.0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0; + var $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $3 = sp; + _MatrixIdentity($3); + $4 = +HEAPF32[$1>>2]; + $5 = ((($1)) + 4|0); + $6 = +HEAPF32[$5>>2]; + $7 = ((($1)) + 8|0); + $8 = +HEAPF32[$7>>2]; + $9 = $4 * $4; + $10 = $6 * $6; + $11 = $9 + $10; + $12 = $8 * $8; + $13 = $11 + $12; + $14 = (+Math_sqrt((+$13))); + $15 = $14 != 1.0; + $16 = $14 != 0.0; + $or$cond = $15 & $16; + $17 = 1.0 / $14; + $18 = $4 * $17; + $19 = $6 * $17; + $20 = $8 * $17; + $$ = $or$cond ? $20 : $8; + $$221 = $or$cond ? $19 : $6; + $$222 = $or$cond ? $18 : $4; + $21 = (+Math_sin((+$2))); + $22 = (+Math_cos((+$2))); + $23 = 1.0 - $22; + $24 = +HEAPF32[$3>>2]; + $25 = ((($3)) + 16|0); + $26 = +HEAPF32[$25>>2]; + $27 = ((($3)) + 32|0); + $28 = +HEAPF32[$27>>2]; + $29 = ((($3)) + 48|0); + $30 = +HEAPF32[$29>>2]; + $31 = ((($3)) + 4|0); + $32 = +HEAPF32[$31>>2]; + $33 = ((($3)) + 20|0); + $34 = +HEAPF32[$33>>2]; + $35 = ((($3)) + 36|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($3)) + 52|0); + $38 = +HEAPF32[$37>>2]; + $39 = ((($3)) + 8|0); + $40 = +HEAPF32[$39>>2]; + $41 = ((($3)) + 24|0); + $42 = +HEAPF32[$41>>2]; + $43 = ((($3)) + 40|0); + $44 = +HEAPF32[$43>>2]; + $45 = ((($3)) + 56|0); + $46 = +HEAPF32[$45>>2]; + $47 = $$222 * $$222; + $48 = $23 * $47; + $49 = $22 + $48; + $50 = $$221 * $$222; + $51 = $23 * $50; + $52 = $21 * $$; + $53 = $52 + $51; + $54 = $$ * $$222; + $55 = $23 * $54; + $56 = $21 * $$221; + $57 = $55 - $56; + $58 = $51 - $52; + $59 = $$221 * $$221; + $60 = $23 * $59; + $61 = $22 + $60; + $62 = $$ * $$221; + $63 = $23 * $62; + $64 = $21 * $$222; + $65 = $64 + $63; + $66 = $56 + $55; + $67 = $63 - $64; + $68 = $$ * $$; + $69 = $23 * $68; + $70 = $22 + $69; + $71 = $24 * $49; + $72 = $53 * $32; + $73 = $71 + $72; + $74 = $57 * $40; + $75 = $73 + $74; + $76 = $26 * $49; + $77 = $53 * $34; + $78 = $76 + $77; + $79 = $57 * $42; + $80 = $78 + $79; + $81 = $28 * $49; + $82 = $53 * $36; + $83 = $81 + $82; + $84 = $57 * $44; + $85 = $83 + $84; + $86 = $30 * $49; + $87 = $53 * $38; + $88 = $86 + $87; + $89 = $57 * $46; + $90 = $88 + $89; + $91 = $24 * $58; + $92 = $61 * $32; + $93 = $91 + $92; + $94 = $65 * $40; + $95 = $93 + $94; + $96 = $26 * $58; + $97 = $61 * $34; + $98 = $96 + $97; + $99 = $65 * $42; + $100 = $98 + $99; + $101 = $28 * $58; + $102 = $61 * $36; + $103 = $101 + $102; + $104 = $65 * $44; + $105 = $103 + $104; + $106 = $30 * $58; + $107 = $61 * $38; + $108 = $106 + $107; + $109 = $65 * $46; + $110 = $108 + $109; + $111 = $24 * $66; + $112 = $67 * $32; + $113 = $111 + $112; + $114 = $70 * $40; + $115 = $113 + $114; + $116 = $26 * $66; + $117 = $67 * $34; + $118 = $116 + $117; + $119 = $70 * $42; + $120 = $118 + $119; + $121 = $28 * $66; + $122 = $67 * $36; + $123 = $121 + $122; + $124 = $70 * $44; + $125 = $123 + $124; + $126 = $30 * $66; + $127 = $67 * $38; + $128 = $126 + $127; + $129 = $70 * $46; + $130 = $128 + $129; + $131 = ((($3)) + 12|0); + $132 = HEAP32[$131>>2]|0; + $133 = ((($3)) + 28|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($3)) + 44|0); + $136 = HEAP32[$135>>2]|0; + $137 = ((($3)) + 60|0); + $138 = HEAP32[$137>>2]|0; + HEAPF32[$0>>2] = $75; + $$sroa$4$0$$sroa_idx187 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx187>>2] = $95; + $$sroa$5$0$$sroa_idx189 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx189>>2] = $115; + $$sroa$6$0$$sroa_idx191 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx191>>2] = $132; + $$sroa$7$0$$sroa_idx193 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx193>>2] = $80; + $$sroa$8$0$$sroa_idx195 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx195>>2] = $100; + $$sroa$9$0$$sroa_idx197 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx197>>2] = $120; + $$sroa$10$0$$sroa_idx199 = ((($0)) + 28|0); + HEAP32[$$sroa$10$0$$sroa_idx199>>2] = $134; + $$sroa$11$0$$sroa_idx201 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx201>>2] = $85; + $$sroa$12$0$$sroa_idx203 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx203>>2] = $105; + $$sroa$13$0$$sroa_idx205 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx205>>2] = $125; + $$sroa$14$0$$sroa_idx207 = ((($0)) + 44|0); + HEAP32[$$sroa$14$0$$sroa_idx207>>2] = $136; + $$sroa$15$0$$sroa_idx209 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx209>>2] = $90; + $$sroa$16$0$$sroa_idx211 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx211>>2] = $110; + $$sroa$17$0$$sroa_idx213 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx213>>2] = $130; + $$sroa$18$0$$sroa_idx215 = ((($0)) + 60|0); + HEAP32[$$sroa$18$0$$sroa_idx215>>2] = $138; + STACKTOP = sp;return; +} +function _MatrixScale($0,$1,$2,$3) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$sroa$5$0$$sroa_idx = 0, $$sroa$55$0$$sroa_idx6 = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$611$0$$sroa_idx12 = 0, $$sroa$7$0$$sroa_idx = 0, $$sroa$717$0$$sroa_idx18 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF32[$0>>2] = $1; + $$sroa$5$0$$sroa_idx = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$5$0$$sroa_idx+12>>2]=0|0; + $$sroa$55$0$$sroa_idx6 = ((($0)) + 20|0); + HEAPF32[$$sroa$55$0$$sroa_idx6>>2] = $2; + $$sroa$6$0$$sroa_idx = ((($0)) + 24|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$6$0$$sroa_idx+12>>2]=0|0; + $$sroa$611$0$$sroa_idx12 = ((($0)) + 40|0); + HEAPF32[$$sroa$611$0$$sroa_idx12>>2] = $3; + $$sroa$7$0$$sroa_idx = ((($0)) + 44|0); + ;HEAP32[$$sroa$7$0$$sroa_idx>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+4>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+8>>2]=0|0;HEAP32[$$sroa$7$0$$sroa_idx+12>>2]=0|0; + $$sroa$717$0$$sroa_idx18 = ((($0)) + 60|0); + HEAPF32[$$sroa$717$0$$sroa_idx18>>2] = 1.0; + return; +} +function _MatrixMultiply($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0.0, $100 = 0.0, $101 = 0.0, $102 = 0.0, $103 = 0.0; + var $104 = 0.0, $105 = 0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0.0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0; + var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0; + var $140 = 0.0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $148 = 0, $149 = 0.0, $15 = 0.0, $150 = 0.0, $151 = 0.0, $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0.0, $157 = 0.0, $158 = 0.0; + var $159 = 0.0, $16 = 0.0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0.0, $17 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $176 = 0.0; + var $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0; + var $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0; + var $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0; + var $73 = 0.0, $74 = 0.0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0.0, $90 = 0.0; + var $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $3 = +HEAPF32[$2>>2]; + $4 = +HEAPF32[$1>>2]; + $5 = $3 * $4; + $6 = ((($2)) + 16|0); + $7 = +HEAPF32[$6>>2]; + $8 = ((($1)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = $7 * $9; + $11 = $5 + $10; + $12 = ((($2)) + 32|0); + $13 = +HEAPF32[$12>>2]; + $14 = ((($1)) + 8|0); + $15 = +HEAPF32[$14>>2]; + $16 = $13 * $15; + $17 = $11 + $16; + $18 = ((($2)) + 48|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 12|0); + $21 = +HEAPF32[$20>>2]; + $22 = $19 * $21; + $23 = $17 + $22; + $24 = ((($1)) + 16|0); + $25 = +HEAPF32[$24>>2]; + $26 = $3 * $25; + $27 = ((($1)) + 20|0); + $28 = +HEAPF32[$27>>2]; + $29 = $7 * $28; + $30 = $26 + $29; + $31 = ((($1)) + 24|0); + $32 = +HEAPF32[$31>>2]; + $33 = $13 * $32; + $34 = $30 + $33; + $35 = ((($1)) + 28|0); + $36 = +HEAPF32[$35>>2]; + $37 = $19 * $36; + $38 = $34 + $37; + $39 = ((($1)) + 32|0); + $40 = +HEAPF32[$39>>2]; + $41 = $3 * $40; + $42 = ((($1)) + 36|0); + $43 = +HEAPF32[$42>>2]; + $44 = $7 * $43; + $45 = $41 + $44; + $46 = ((($1)) + 40|0); + $47 = +HEAPF32[$46>>2]; + $48 = $13 * $47; + $49 = $45 + $48; + $50 = ((($1)) + 44|0); + $51 = +HEAPF32[$50>>2]; + $52 = $19 * $51; + $53 = $49 + $52; + $54 = ((($1)) + 48|0); + $55 = +HEAPF32[$54>>2]; + $56 = $3 * $55; + $57 = ((($1)) + 52|0); + $58 = +HEAPF32[$57>>2]; + $59 = $7 * $58; + $60 = $56 + $59; + $61 = ((($1)) + 56|0); + $62 = +HEAPF32[$61>>2]; + $63 = $13 * $62; + $64 = $60 + $63; + $65 = ((($1)) + 60|0); + $66 = +HEAPF32[$65>>2]; + $67 = $19 * $66; + $68 = $64 + $67; + $69 = ((($2)) + 4|0); + $70 = +HEAPF32[$69>>2]; + $71 = $4 * $70; + $72 = ((($2)) + 20|0); + $73 = +HEAPF32[$72>>2]; + $74 = $9 * $73; + $75 = $71 + $74; + $76 = ((($2)) + 36|0); + $77 = +HEAPF32[$76>>2]; + $78 = $15 * $77; + $79 = $75 + $78; + $80 = ((($2)) + 52|0); + $81 = +HEAPF32[$80>>2]; + $82 = $21 * $81; + $83 = $79 + $82; + $84 = $25 * $70; + $85 = $28 * $73; + $86 = $84 + $85; + $87 = $32 * $77; + $88 = $86 + $87; + $89 = $36 * $81; + $90 = $88 + $89; + $91 = $40 * $70; + $92 = $43 * $73; + $93 = $91 + $92; + $94 = $47 * $77; + $95 = $93 + $94; + $96 = $51 * $81; + $97 = $95 + $96; + $98 = $55 * $70; + $99 = $58 * $73; + $100 = $98 + $99; + $101 = $62 * $77; + $102 = $100 + $101; + $103 = $66 * $81; + $104 = $102 + $103; + $105 = ((($2)) + 8|0); + $106 = +HEAPF32[$105>>2]; + $107 = $4 * $106; + $108 = ((($2)) + 24|0); + $109 = +HEAPF32[$108>>2]; + $110 = $9 * $109; + $111 = $107 + $110; + $112 = ((($2)) + 40|0); + $113 = +HEAPF32[$112>>2]; + $114 = $15 * $113; + $115 = $111 + $114; + $116 = ((($2)) + 56|0); + $117 = +HEAPF32[$116>>2]; + $118 = $21 * $117; + $119 = $115 + $118; + $120 = $25 * $106; + $121 = $28 * $109; + $122 = $120 + $121; + $123 = $32 * $113; + $124 = $122 + $123; + $125 = $36 * $117; + $126 = $124 + $125; + $127 = $40 * $106; + $128 = $43 * $109; + $129 = $127 + $128; + $130 = $47 * $113; + $131 = $129 + $130; + $132 = $51 * $117; + $133 = $131 + $132; + $134 = $55 * $106; + $135 = $58 * $109; + $136 = $134 + $135; + $137 = $62 * $113; + $138 = $136 + $137; + $139 = $66 * $117; + $140 = $138 + $139; + $141 = ((($2)) + 12|0); + $142 = +HEAPF32[$141>>2]; + $143 = $4 * $142; + $144 = ((($2)) + 28|0); + $145 = +HEAPF32[$144>>2]; + $146 = $9 * $145; + $147 = $143 + $146; + $148 = ((($2)) + 44|0); + $149 = +HEAPF32[$148>>2]; + $150 = $15 * $149; + $151 = $147 + $150; + $152 = ((($2)) + 60|0); + $153 = +HEAPF32[$152>>2]; + $154 = $21 * $153; + $155 = $151 + $154; + $156 = $25 * $142; + $157 = $28 * $145; + $158 = $156 + $157; + $159 = $32 * $149; + $160 = $158 + $159; + $161 = $36 * $153; + $162 = $160 + $161; + $163 = $40 * $142; + $164 = $43 * $145; + $165 = $163 + $164; + $166 = $47 * $149; + $167 = $165 + $166; + $168 = $51 * $153; + $169 = $167 + $168; + $170 = $55 * $142; + $171 = $58 * $145; + $172 = $170 + $171; + $173 = $62 * $149; + $174 = $172 + $173; + $175 = $66 * $153; + $176 = $174 + $175; + HEAPF32[$0>>2] = $23; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $83; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $119; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = $155; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $38; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $90; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $126; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = $162; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $53; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $97; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $133; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = $169; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $68; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $104; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $140; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = $176; + return; +} +function _MatrixFrustum($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0; + var $35 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = $5 * 2.0; + $14 = $8; + $15 = $13 / $14; + $16 = $15; + $17 = $10; + $18 = $13 / $17; + $19 = $18; + $20 = $1 + $2; + $21 = $20 / $14; + $22 = $21; + $23 = $3 + $4; + $24 = $23 / $17; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + $31 = $5 * $6; + $32 = $31 * 2.0; + $33 = -$32; + $34 = $33 / $28; + $35 = $34; + HEAPF32[$0>>2] = $16; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = $22; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = 0.0; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $19; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = $25; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = 0.0; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $30; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $35; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = -1.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 0.0; + return; +} +function _MatrixOrtho($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + $6 = +$6; + var $$sroa$10$0$$sroa_idx24 = 0, $$sroa$11$0$$sroa_idx26 = 0, $$sroa$12$0$$sroa_idx28 = 0, $$sroa$13$0$$sroa_idx30 = 0, $$sroa$14$0$$sroa_idx32 = 0, $$sroa$15$0$$sroa_idx34 = 0, $$sroa$16$0$$sroa_idx36 = 0, $$sroa$17$0$$sroa_idx38 = 0, $$sroa$18$0$$sroa_idx40 = 0, $$sroa$4$0$$sroa_idx12 = 0, $$sroa$5$0$$sroa_idx14 = 0, $$sroa$6$0$$sroa_idx16 = 0, $$sroa$7$0$$sroa_idx18 = 0, $$sroa$8$0$$sroa_idx20 = 0, $$sroa$9$0$$sroa_idx22 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0; + var $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0; + var sp = 0; + sp = STACKTOP; + $7 = $2 - $1; + $8 = $7; + $9 = $4 - $3; + $10 = $9; + $11 = $6 - $5; + $12 = $11; + $13 = 2.0 / $8; + $14 = 2.0 / $10; + $15 = -2.0 / $12; + $16 = $1 + $2; + $17 = -$16; + $18 = $8; + $19 = $17 / $18; + $20 = $19; + $21 = $3 + $4; + $22 = -$21; + $23 = $10; + $24 = $22 / $23; + $25 = $24; + $26 = $5 + $6; + $27 = -$26; + $28 = $12; + $29 = $27 / $28; + $30 = $29; + HEAPF32[$0>>2] = $13; + $$sroa$4$0$$sroa_idx12 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx12>>2] = 0.0; + $$sroa$5$0$$sroa_idx14 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx14>>2] = 0.0; + $$sroa$6$0$$sroa_idx16 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx16>>2] = $20; + $$sroa$7$0$$sroa_idx18 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx18>>2] = 0.0; + $$sroa$8$0$$sroa_idx20 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx20>>2] = $14; + $$sroa$9$0$$sroa_idx22 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx22>>2] = 0.0; + $$sroa$10$0$$sroa_idx24 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx24>>2] = $25; + $$sroa$11$0$$sroa_idx26 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx26>>2] = 0.0; + $$sroa$12$0$$sroa_idx28 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx28>>2] = 0.0; + $$sroa$13$0$$sroa_idx30 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx30>>2] = $15; + $$sroa$14$0$$sroa_idx32 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx32>>2] = $30; + $$sroa$15$0$$sroa_idx34 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx34>>2] = 0.0; + $$sroa$16$0$$sroa_idx36 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx36>>2] = 0.0; + $$sroa$17$0$$sroa_idx38 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx38>>2] = 0.0; + $$sroa$18$0$$sroa_idx40 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx40>>2] = 1.0; + return; +} +function _MatrixLookAt($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy4 = 0, $$byval_copy5 = 0, $$sroa$10$0$$sroa_idx14 = 0, $$sroa$11$0$$sroa_idx16 = 0, $$sroa$12$0$$sroa_idx18 = 0, $$sroa$13$0$$sroa_idx20 = 0, $$sroa$14$0$$sroa_idx22 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$17$0$$sroa_idx28 = 0, $$sroa$18$0$$sroa_idx30 = 0, $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $$sroa$8$0$$sroa_idx10 = 0, $$sroa$9$0$$sroa_idx12 = 0, $10 = 0, $11 = 0.0, $12 = 0.0; + var $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0; + var $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $44 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy5 = sp + 48|0; + $$byval_copy4 = sp + 36|0; + $4 = sp + 24|0; + $5 = sp + 12|0; + $6 = sp; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$2+8>>2]|0; + _VectorSubtract($4,$$byval_copy4,$$byval_copy5); + _VectorNormalize($4); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$3+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$4+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy4,$$byval_copy5); + _VectorNormalize($5); + ;HEAP32[$$byval_copy4>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy4+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$5+8>>2]|0; + _VectorCrossProduct($6,$$byval_copy4,$$byval_copy5); + _VectorNormalize($6); + $7 = +HEAPF32[$5>>2]; + $8 = ((($5)) + 4|0); + $9 = +HEAPF32[$8>>2]; + $10 = ((($5)) + 8|0); + $11 = +HEAPF32[$10>>2]; + $12 = +HEAPF32[$1>>2]; + $13 = $7 * $12; + $14 = ((($1)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = $9 * $15; + $17 = $13 + $16; + $18 = ((($1)) + 8|0); + $19 = +HEAPF32[$18>>2]; + $20 = $11 * $19; + $21 = $17 + $20; + $22 = -$21; + $23 = +HEAPF32[$6>>2]; + $24 = ((($6)) + 4|0); + $25 = +HEAPF32[$24>>2]; + $26 = ((($6)) + 8|0); + $27 = +HEAPF32[$26>>2]; + $28 = $12 * $23; + $29 = $15 * $25; + $30 = $28 + $29; + $31 = $19 * $27; + $32 = $30 + $31; + $33 = -$32; + $34 = +HEAPF32[$4>>2]; + $35 = ((($4)) + 4|0); + $36 = +HEAPF32[$35>>2]; + $37 = ((($4)) + 8|0); + $38 = +HEAPF32[$37>>2]; + $39 = $12 * $34; + $40 = $15 * $36; + $41 = $39 + $40; + $42 = $19 * $38; + $43 = $41 + $42; + $44 = -$43; + HEAPF32[$0>>2] = $7; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAPF32[$$sroa$4$0$$sroa_idx2>>2] = $23; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAPF32[$$sroa$5$0$$sroa_idx4>>2] = $34; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAPF32[$$sroa$6$0$$sroa_idx6>>2] = 0.0; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAPF32[$$sroa$7$0$$sroa_idx8>>2] = $9; + $$sroa$8$0$$sroa_idx10 = ((($0)) + 20|0); + HEAPF32[$$sroa$8$0$$sroa_idx10>>2] = $25; + $$sroa$9$0$$sroa_idx12 = ((($0)) + 24|0); + HEAPF32[$$sroa$9$0$$sroa_idx12>>2] = $36; + $$sroa$10$0$$sroa_idx14 = ((($0)) + 28|0); + HEAPF32[$$sroa$10$0$$sroa_idx14>>2] = 0.0; + $$sroa$11$0$$sroa_idx16 = ((($0)) + 32|0); + HEAPF32[$$sroa$11$0$$sroa_idx16>>2] = $11; + $$sroa$12$0$$sroa_idx18 = ((($0)) + 36|0); + HEAPF32[$$sroa$12$0$$sroa_idx18>>2] = $27; + $$sroa$13$0$$sroa_idx20 = ((($0)) + 40|0); + HEAPF32[$$sroa$13$0$$sroa_idx20>>2] = $38; + $$sroa$14$0$$sroa_idx22 = ((($0)) + 44|0); + HEAPF32[$$sroa$14$0$$sroa_idx22>>2] = 0.0; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 48|0); + HEAPF32[$$sroa$15$0$$sroa_idx24>>2] = $22; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 52|0); + HEAPF32[$$sroa$16$0$$sroa_idx26>>2] = $33; + $$sroa$17$0$$sroa_idx28 = ((($0)) + 56|0); + HEAPF32[$$sroa$17$0$$sroa_idx28>>2] = $44; + $$sroa$18$0$$sroa_idx30 = ((($0)) + 60|0); + HEAPF32[$$sroa$18$0$$sroa_idx30>>2] = 1.0; + STACKTOP = sp;return; +} +function _ProcessGestureEvent($0) { + $0 = $0|0; + var $$$sink = 0, $$sink = 0, $$sink10 = 0, $$sink11 = 0, $$sink16 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0; + var $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0.0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0; + var $167 = 0.0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0.0, $174 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0; + var $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $moveDownPosition$byval_copy11 = 0; + var $moveDownPosition2$byval_copy12 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $moveDownPosition2$byval_copy12 = sp + 8|0; + $moveDownPosition$byval_copy11 = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + HEAP32[4625] = $2; + $3 = ($2|0)<(2); + $4 = HEAP32[$0>>2]|0; + $5 = ($4|0)==(1); + if (!($3)) { + if ($5) { + $88 = ((($0)) + 24|0); + $89 = $88; + $90 = $89; + $91 = HEAP32[$90>>2]|0; + $92 = (($89) + 4)|0; + $93 = $92; + $94 = HEAP32[$93>>2]|0; + $95 = 17928; + $96 = $95; + HEAP32[$96>>2] = $91; + $97 = (($95) + 4)|0; + $98 = $97; + HEAP32[$98>>2] = $94; + $99 = ((($0)) + 32|0); + $100 = $99; + $101 = $100; + $102 = HEAP32[$101>>2]|0; + $103 = (($100) + 4)|0; + $104 = $103; + $105 = HEAP32[$104>>2]|0; + $106 = 17968; + $107 = $106; + HEAP32[$107>>2] = $102; + $108 = (($106) + 4)|0; + $109 = $108; + HEAP32[$109>>2] = $105; + $110 = +HEAPF32[4492]; + $111 = +HEAPF32[4482]; + $112 = $110 - $111; + HEAPF32[4494] = $112; + $113 = +HEAPF32[(17972)>>2]; + $114 = +HEAPF32[(17932)>>2]; + $115 = $113 - $114; + HEAPF32[(17980)>>2] = $115; + HEAP32[4624] = 4; + STACKTOP = sp;return; + } + switch ($4|0) { + case 2: { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17960>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17960+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17984>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17984+4>>2]|0; + $116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + HEAPF32[4630] = $116; + $117 = 17960; + $118 = $117; + $119 = HEAP32[$118>>2]|0; + $120 = (($117) + 4)|0; + $121 = $120; + $122 = HEAP32[$121>>2]|0; + $123 = 17928; + $124 = $123; + HEAP32[$124>>2] = $119; + $125 = (($123) + 4)|0; + $126 = $125; + HEAP32[$126>>2] = $122; + $127 = 17984; + $128 = $127; + $129 = HEAP32[$128>>2]|0; + $130 = (($127) + 4)|0; + $131 = $130; + $132 = HEAP32[$131>>2]|0; + $133 = 17968; + $134 = $133; + HEAP32[$134>>2] = $129; + $135 = (($133) + 4)|0; + $136 = $135; + HEAP32[$136>>2] = $132; + $137 = ((($0)) + 24|0); + $138 = $137; + $139 = $138; + $140 = HEAP32[$139>>2]|0; + $141 = (($138) + 4)|0; + $142 = $141; + $143 = HEAP32[$142>>2]|0; + $144 = 17960; + $145 = $144; + HEAP32[$145>>2] = $140; + $146 = (($144) + 4)|0; + $147 = $146; + HEAP32[$147>>2] = $143; + $148 = ((($0)) + 32|0); + $149 = $148; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = (($149) + 4)|0; + $153 = $152; + $154 = HEAP32[$153>>2]|0; + $155 = 17984; + $156 = $155; + HEAP32[$156>>2] = $151; + $157 = (($155) + 4)|0; + $158 = $157; + HEAP32[$158>>2] = $154; + $159 = +HEAPF32[4496]; + $160 = +HEAPF32[4490]; + $161 = $159 - $160; + HEAPF32[4494] = $161; + $162 = +HEAPF32[(17988)>>2]; + $163 = +HEAPF32[(17964)>>2]; + $164 = $162 - $163; + HEAPF32[(17980)>>2] = $164; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17960>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17960+4>>2]|0; + $165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $166 = !($165 >= 0.004999999888241291); + if ($166) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17968>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17968+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17984>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17984+4>>2]|0; + $167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $168 = !($167 >= 0.004999999888241291); + if ($168) { + $$sink16 = 4; + } else { + label = 29; + } + } else { + label = 29; + } + if ((label|0) == 29) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17960>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17960+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17984>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17984+4>>2]|0; + $169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $170 = +HEAPF32[4630]; + $171 = $169 - $170; + $172 = $171 < 0.0; + $$sink11 = $172 ? 256 : 512; + $$sink16 = $$sink11; + } + HEAP32[4624] = $$sink16; + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17960>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17960+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17984>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17984+4>>2]|0; + $173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $174 = 360.0 - $173; + HEAPF32[4631] = $174; + STACKTOP = sp;return; + break; + } + case 0: { + HEAPF32[4630] = 0.0; + HEAPF32[4631] = 0.0; + HEAPF32[4494] = 0.0; + HEAPF32[(17980)>>2] = 0.0; + HEAP32[4625] = 0; + HEAP32[4624] = 0; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } + } + if ($5) { + $6 = HEAP32[4626]|0; + $7 = (($6) + 1)|0; + HEAP32[4626] = $7; + $8 = HEAP32[4624]|0; + $9 = ($8|0)==(0); + $10 = ($6|0)>(0); + $or$cond = $10 & $9; + if ($or$cond) { + $11 = ((($0)) + 24|0); + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0; + $12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $13 = $12 < 0.029999999329447746; + if ($13) { + HEAP32[4624] = 2; + HEAP32[4626] = 0; + } else { + label = 6; + } + } else { + label = 6; + } + if ((label|0) == 6) { + HEAP32[4626] = 1; + HEAP32[4624] = 1; + } + $14 = ((($0)) + 24|0); + $15 = $14; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = 17928; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = 17936; + $26 = $25; + HEAP32[$26>>2] = $17; + $27 = (($25) + 4)|0; + $28 = $27; + HEAP32[$28>>2] = $20; + $29 = 17944; + $30 = $29; + HEAP32[$30>>2] = $17; + $31 = (($29) + 4)|0; + $32 = $31; + HEAP32[$32>>2] = $20; + $33 = ((($0)) + 8|0); + $34 = HEAP32[$33>>2]|0; + HEAP32[14] = $34; + HEAPF32[4488] = 0.0; + HEAPF32[(17956)>>2] = 0.0; + STACKTOP = sp;return; + } + switch ($4|0) { + case 0: { + $35 = HEAP32[4624]|0; + $36 = ($35|0)==(8); + if ($36) { + $37 = ((($0)) + 24|0); + $38 = $37; + $39 = $38; + $40 = HEAP32[$39>>2]|0; + $41 = (($38) + 4)|0; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = 17944; + $45 = $44; + HEAP32[$45>>2] = $40; + $46 = (($44) + 4)|0; + $47 = $46; + HEAP32[$47>>2] = $43; + } + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17944>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17944+4>>2]|0; + $48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $49 = $48 / 0.0; + HEAPF32[4627] = $49; + HEAP32[4628] = 0; + $50 = $49 > 5.0000002374872565E-4; + if ($50) { + $51 = HEAP32[14]|0; + $52 = ((($0)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51|0)==($53|0); + if ($54) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17944>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17944+4>>2]|0; + $55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $56 = 360.0 - $55; + HEAPF32[4629] = $56; + $57 = $56 < 30.0; + $58 = $56 > 330.0; + $or$cond3 = $57 | $58; + if ($or$cond3) { + $$sink10 = 16; + } else { + $59 = $56 > 30.0; + $60 = $56 < 120.0; + $or$cond5 = $59 & $60; + if ($or$cond5) { + $$sink10 = 64; + } else { + $61 = $56 > 120.0; + $62 = $56 < 210.0; + $or$cond7 = $61 & $62; + $63 = $56 > 210.0; + $64 = $56 < 300.0; + $or$cond9 = $63 & $64; + $$sink = $or$cond9 ? 128 : 0; + $$$sink = $or$cond7 ? 32 : $$sink; + $$sink10 = $$$sink; + } + } + } else { + label = 16; + } + } else { + label = 16; + } + if ((label|0) == 16) { + HEAPF32[4627] = 0.0; + HEAPF32[4629] = 0.0; + $$sink10 = 0; + } + HEAP32[4624] = $$sink10; + HEAPF32[4484] = 0.0; + HEAPF32[(17940)>>2] = 0.0; + HEAP32[4625] = 0; + STACKTOP = sp;return; + break; + } + case 2: { + $65 = HEAP32[4628]|0; + $66 = ($65|0)==(0); + if ($66) { + HEAP32[4628] = 1; + } + $67 = ((($0)) + 24|0); + $68 = $67; + $69 = $68; + $70 = HEAP32[$69>>2]|0; + $71 = (($68) + 4)|0; + $72 = $71; + $73 = HEAP32[$72>>2]|0; + $74 = 17960; + $75 = $74; + HEAP32[$75>>2] = $70; + $76 = (($74) + 4)|0; + $77 = $76; + HEAP32[$77>>2] = $73; + $78 = HEAP32[4624]|0; + $79 = ($78|0)==(4); + if ($79) { + ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[17928>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[17928+4>>2]|0; + ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[17960>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[17960+4>>2]|0; + $80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12)); + $81 = !($80 >= 0.014999999664723873); + if (!($81)) { + HEAP32[4624] = 8; + } + } + $82 = +HEAPF32[4490]; + $83 = +HEAPF32[4484]; + $84 = $82 - $83; + HEAPF32[4488] = $84; + $85 = +HEAPF32[(17964)>>2]; + $86 = +HEAPF32[(17940)>>2]; + $87 = $85 - $86; + HEAPF32[(17956)>>2] = $87; + STACKTOP = sp;return; + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _UpdateGestures() { + var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4624]|0; + $$off = (($0) + -1)|0; + $1 = ($$off>>>0)<(2); + $2 = HEAP32[4625]|0; + $3 = ($2|0)<(2); + $or$cond3 = $1 & $3; + if ($or$cond3) { + HEAP32[4624] = 4; + } + $4 = HEAP32[4624]|0; + $5 = (($4) + -16)|0; + $6 = $5 >>> 4; + $7 = $5 << 28; + $8 = $6 | $7; + switch ($8|0) { + case 0: case 1: case 3: case 7: { + break; + } + default: { + return; + } + } + HEAP32[4624] = 0; + return; +} +function _GetMousePosition($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = 17992; + $2 = $1; + $3 = HEAP32[$2>>2]|0; + $4 = (($1) + 4)|0; + $5 = $4; + $6 = HEAP32[$5>>2]|0; + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $3; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $6; + return; +} +function _GetScreenWidth() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4634]|0; + return ($0|0); +} +function _GetScreenHeight() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4633]|0; + return ($0|0); +} +function _InitWindow($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _TraceLog(0,4547,$vararg_buffer); + HEAP32[4636] = $2; + _InitGraphicsDevice($0,$1); + _LoadDefaultFont(); + _InitTimer(); + (_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(5|0))|0); + (_emscripten_set_keypress_callback((4576|0),(0|0),1,(6|0))|0); + (_emscripten_set_click_callback((4576|0),(0|0),1,(7|0))|0); + (_emscripten_set_touchstart_callback((4576|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchend_callback((4576|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchmove_callback((4576|0),(0|0),1,(8|0))|0); + (_emscripten_set_touchcancel_callback((4576|0),(0|0),1,(8|0))|0); + (_emscripten_set_gamepadconnected_callback((0|0),1,(9|0))|0); + (_emscripten_set_gamepaddisconnected_callback((0|0),1,(9|0))|0); + $3 = HEAP32[4634]|0; + $4 = (+($3|0)); + $5 = $4 * 0.5; + HEAPF32[4498] = $5; + $6 = HEAP32[4633]|0; + $7 = (+($6|0)); + $8 = $7 * 0.5; + HEAPF32[(17996)>>2] = $8; + $9 = HEAP32[4637]|0; + $10 = ($9|0)==(0); + if ($10) { + STACKTOP = sp;return; + } + _SetTargetFPS(60); + _LogoAnimation(); + STACKTOP = sp;return; +} +function _TraceLog($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $endptr = 0, $strlen = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + switch ($0|0) { + case 0: { + ;HEAP8[18032>>0]=HEAP8[9076>>0]|0;HEAP8[18032+1>>0]=HEAP8[9076+1>>0]|0;HEAP8[18032+2>>0]=HEAP8[9076+2>>0]|0;HEAP8[18032+3>>0]=HEAP8[9076+3>>0]|0;HEAP8[18032+4>>0]=HEAP8[9076+4>>0]|0;HEAP8[18032+5>>0]=HEAP8[9076+5>>0]|0;HEAP8[18032+6>>0]=HEAP8[9076+6>>0]|0; + break; + } + case 1: { + $3 = 18032; + $4 = $3; + HEAP32[$4>>2] = 1330795077; + $5 = (($3) + 4)|0; + $6 = $5; + HEAP32[$6>>2] = 2112082; + break; + } + case 2: { + dest=18032; src=9083; stop=dest+10|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + break; + } + case 3: { + $7 = 18032; + $8 = $7; + HEAP32[$8>>2] = 1430406468; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = 2112071; + break; + } + default: { + } + } + (_strcat(18032,$1)|0); + $strlen = (_strlen(18032)|0); + $endptr = (18032 + ($strlen)|0); + HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8; + HEAP32[$2>>2] = $varargs; + $11 = ($0|0)==(3); + if ($11) { + STACKTOP = sp;return; + } + (_vprintf(18032,$2)|0); + $12 = ($0|0)==(1); + if ($12) { + _exit(1); + // unreachable; + } else { + STACKTOP = sp;return; + } +} +function _InitGraphicsDevice($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$015 = 0, $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 136|0; + $vararg_buffer22 = sp + 64|0; + $vararg_buffer18 = sp + 56|0; + $vararg_buffer14 = sp + 48|0; + $vararg_buffer10 = sp + 40|0; + $vararg_buffer8 = sp + 32|0; + $vararg_buffer6 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 140|0; + HEAP32[4634] = $0; + HEAP32[4633] = $1; + _MatrixIdentity($2); + dest=18624; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_glfwSetErrorCallback((2|0))|0); + $4 = (_glfwInit()|0); + $5 = ($4|0)==(0); + if ($5) { + _TraceLog(1,5218,$vararg_buffer); + } + $6 = HEAP32[4634]|0; + HEAP32[4672] = $6; + $7 = HEAP32[4633]|0; + HEAP32[4673] = $7; + _glfwDefaultWindowHints(); + $8 = HEAP8[21368]|0; + $9 = $8 & 4; + $10 = ($9<<24>>24)==(0); + if ($10) { + _glfwWindowHint(131075,0); + } else { + _glfwWindowHint(131075,1); + } + $11 = HEAP8[21368]|0; + $12 = $11 & 8; + $13 = ($12<<24>>24)==(0); + if (!($13)) { + _glfwWindowHint(131077,1); + } + $14 = HEAP8[21368]|0; + $15 = $14 & 32; + $16 = ($15<<24>>24)==(0); + if (!($16)) { + _glfwWindowHint(135181,4); + _TraceLog(0,5244,$vararg_buffer1); + } + $17 = (_rlGetVersion()|0); + $18 = ($17|0)==(2); + if ($18) { + _glfwWindowHint(139266,2); + _glfwWindowHint(139267,1); + } else { + $19 = (_rlGetVersion()|0); + $20 = ($19|0)==(3); + if ($20) { + _glfwWindowHint(139266,3); + _glfwWindowHint(139267,3); + _glfwWindowHint(139272,204801); + _glfwWindowHint(139270,0); + } + } + $21 = HEAP32[4674]|0; + $22 = ($21|0)==(0); + if ($22) { + $47 = HEAP32[4634]|0; + $48 = HEAP32[4633]|0; + $49 = HEAP32[4636]|0; + $50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0); + HEAP32[4632] = $50; + $51 = HEAP32[4634]|0; + HEAP32[4675] = $51; + $52 = HEAP32[4633]|0; + HEAP32[4676] = $52; + $54 = $50; + } else { + $23 = (_glfwGetPrimaryMonitor()|0); + $24 = (_glfwGetVideoModes(($23|0),($$byval_copy|0))|0); + $25 = HEAP32[$$byval_copy>>2]|0; + $26 = ($25|0)>(0); + L22: do { + if ($26) { + $27 = HEAP32[4634]|0; + $28 = HEAP32[$$byval_copy>>2]|0; + $29 = HEAP32[4633]|0; + $$015 = 0; + while(1) { + $30 = (($24) + (($$015*24)|0)|0); + $31 = HEAP32[$30>>2]|0; + $32 = ($31|0)<($27|0); + if (!($32)) { + $33 = (((($24) + (($$015*24)|0)|0)) + 4|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)<($29|0); + if (!($35)) { + break; + } + } + $36 = (($$015) + 1)|0; + $37 = ($36|0)<($28|0); + if ($37) { + $$015 = $36; + } else { + break L22; + } + } + HEAP32[4672] = $31; + HEAP32[4673] = $34; + } + } while(0); + $38 = HEAP32[4672]|0; + $39 = HEAP32[4673]|0; + HEAP32[$vararg_buffer3>>2] = $38; + $vararg_ptr5 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr5>>2] = $39; + _TraceLog(2,5269,$vararg_buffer3); + $40 = HEAP32[4672]|0; + $41 = HEAP32[4673]|0; + _SetupFramebufferSize($40,$41); + $42 = HEAP32[4672]|0; + $43 = HEAP32[4673]|0; + $44 = HEAP32[4636]|0; + $45 = (_glfwGetPrimaryMonitor()|0); + $46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0); + HEAP32[4632] = $46; + $54 = $46; + } + $53 = ($54|0)==(0|0); + if ($53) { + _glfwTerminate(); + _TraceLog(1,5307,$vararg_buffer6); + } else { + _TraceLog(0,5340,$vararg_buffer8); + $55 = HEAP32[4675]|0; + $56 = HEAP32[4676]|0; + HEAP32[$vararg_buffer10>>2] = $55; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $56; + _TraceLog(0,5380,$vararg_buffer10); + $57 = HEAP32[4634]|0; + $58 = HEAP32[4633]|0; + HEAP32[$vararg_buffer14>>2] = $57; + $vararg_ptr17 = ((($vararg_buffer14)) + 4|0); + HEAP32[$vararg_ptr17>>2] = $58; + _TraceLog(0,5401,$vararg_buffer14); + $59 = HEAP32[4677]|0; + $60 = HEAP32[4678]|0; + HEAP32[$vararg_buffer18>>2] = $59; + $vararg_ptr21 = ((($vararg_buffer18)) + 4|0); + HEAP32[$vararg_ptr21>>2] = $60; + _TraceLog(0,5422,$vararg_buffer18); + } + $61 = HEAP32[4632]|0; + (_glfwSetWindowSizeCallback(($61|0),(1|0))|0); + $62 = HEAP32[4632]|0; + (_glfwSetCursorEnterCallback(($62|0),(3|0))|0); + $63 = HEAP32[4632]|0; + (_glfwSetKeyCallback(($63|0),(1|0))|0); + $64 = HEAP32[4632]|0; + (_glfwSetMouseButtonCallback(($64|0),(1|0))|0); + $65 = HEAP32[4632]|0; + (_glfwSetCursorPosCallback(($65|0),(1|0))|0); + $66 = HEAP32[4632]|0; + (_glfwSetCharCallback(($66|0),(4|0))|0); + $67 = HEAP32[4632]|0; + (_glfwSetScrollCallback(($67|0),(2|0))|0); + $68 = HEAP32[4632]|0; + (_glfwSetWindowIconifyCallback(($68|0),(5|0))|0); + $69 = HEAP32[4632]|0; + _glfwMakeContextCurrent(($69|0)); + _glfwSwapInterval(0); + $70 = HEAP8[21368]|0; + $71 = $70 & 64; + $72 = ($71<<24>>24)==(0); + if ($72) { + $73 = HEAP32[4634]|0; + $74 = HEAP32[4633]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4675]|0; + $76 = HEAP32[4677]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4676]|0; + $80 = HEAP32[4678]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; + } + _glfwSwapInterval(1); + _TraceLog(0,5447,$vararg_buffer22); + $73 = HEAP32[4634]|0; + $74 = HEAP32[4633]|0; + _rlglInit($73,$74); + _SetupViewport(); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $75 = HEAP32[4675]|0; + $76 = HEAP32[4677]|0; + $77 = (($75) - ($76))|0; + $78 = (+($77|0)); + $79 = HEAP32[4676]|0; + $80 = HEAP32[4678]|0; + $81 = (($79) - ($80))|0; + $82 = (+($81|0)); + _rlOrtho(0.0,$78,$82,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + HEAP8[$3>>0] = -11; + $83 = ((($3)) + 1|0); + HEAP8[$83>>0] = -11; + $84 = ((($3)) + 2|0); + HEAP8[$84>>0] = -11; + $85 = ((($3)) + 3|0); + HEAP8[$85>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$3+3>>0]|0; + _ClearBackground($$byval_copy); + STACKTOP = sp;return; +} +function _LoadDefaultFont() { + var $$ = 0, $$0101 = 0, $$090100 = 0, $$09299 = 0, $$095104 = 0, $$096103 = 0, $$097102 = 0, $$191 = 0, $$193 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$sroa$0$0$$sroa_idx = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy1 = sp + 44|0; + $vararg_buffer = sp; + $0 = sp + 4|0; + $1 = sp + 24|0; + HEAP32[(18592)>>2] = 224; + $2 = (_malloc(65536)|0); + _memset(($2|0),0,65536)|0; + $$095104 = 0;$$096103 = 0; + while(1) { + $3 = (60 + ($$095104<<2)|0); + $4 = HEAP32[$3>>2]|0; + $$097102 = 31; + while(1) { + $16 = 1 << $$097102; + $17 = $4 & $16; + $18 = ($17|0)==(0); + if (!($18)) { + $19 = (($$097102) + ($$096103))|0; + $$sroa$0$0$$sroa_idx = (($2) + ($19<<2)|0); + HEAP8[$$sroa$0$0$$sroa_idx>>0]=-1&255;HEAP8[$$sroa$0$0$$sroa_idx+1>>0]=(-1>>8)&255;HEAP8[$$sroa$0$0$$sroa_idx+2>>0]=(-1>>16)&255;HEAP8[$$sroa$0$0$$sroa_idx+3>>0]=-1>>24; + } + $20 = (($$097102) + -1)|0; + $21 = ($$097102|0)>(0); + if ($21) { + $$097102 = $20; + } else { + break; + } + } + $12 = (($$095104) + 1)|0; + $13 = ($$095104|0)>(511); + $$ = $13 ? 0 : $12; + $14 = (($$096103) + 32)|0; + $15 = ($14|0)<(16384); + if ($15) { + $$095104 = $$;$$096103 = $14; + } else { + break; + } + } + _LoadImageEx($0,$2,128,128); + _ImageFormat($0,2); + _free($2); + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _LoadTextureFromImage($1,$$byval_copy1); + ;HEAP32[18568>>2]=HEAP32[$1>>2]|0;HEAP32[18568+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[18568+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[18568+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[18568+16>>2]=HEAP32[$1+16>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + _UnloadImage($$byval_copy1); + $5 = HEAP32[(18592)>>2]|0; + $6 = $5 << 5; + $7 = (_malloc($6)|0); + HEAP32[(18596)>>2] = $7; + $8 = ($5|0)>(0); + if (!($8)) { + $$lcssa = $7; + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(18588)>>2] = $23; + $24 = HEAP32[4642]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4771,$vararg_buffer); + STACKTOP = sp;return; + } + $9 = HEAP32[(18572)>>2]|0; + $10 = HEAP32[(18592)>>2]|0; + $11 = HEAP32[(18596)>>2]|0; + $$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7; + while(1) { + $25 = (($$0101) + 32)|0; + $26 = (($27) + ($$0101<<5)|0); + HEAP32[$26>>2] = $25; + $28 = (((($27) + ($$0101<<5)|0)) + 4|0); + HEAP32[$28>>2] = $$090100; + $29 = ($$09299*11)|0; + $30 = (($29) + 1)|0; + $31 = (((($27) + ($$0101<<5)|0)) + 8|0); + HEAP32[$31>>2] = $30; + $32 = (2108 + ($$0101<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (((($27) + ($$0101<<5)|0)) + 12|0); + HEAP32[$34>>2] = $33; + $35 = (((($27) + ($$0101<<5)|0)) + 16|0); + HEAP32[$35>>2] = 10; + $36 = (($$090100) + 1)|0; + $37 = (($36) + ($33))|0; + $38 = ($37|0)<($9|0); + $39 = (($$09299) + 1)|0; + if ($38) { + $$191 = $37;$$193 = $$09299; + } else { + $40 = ($39*11)|0; + $41 = (($40) + 1)|0; + $42 = (($33) + 2)|0; + HEAP32[$28>>2] = 1; + HEAP32[$31>>2] = $41; + $$191 = $42;$$193 = $39; + } + $43 = (((($27) + ($$0101<<5)|0)) + 20|0); + HEAP32[$43>>2] = 0; + $44 = (((($27) + ($$0101<<5)|0)) + 24|0); + HEAP32[$44>>2] = 0; + $45 = (((($27) + ($$0101<<5)|0)) + 28|0); + HEAP32[$45>>2] = 0; + $46 = (($$0101) + 1)|0; + $47 = ($46|0)<($10|0); + if ($47) { + $$0101 = $46;$$090100 = $$191;$$09299 = $$193;$27 = $11; + } else { + $$lcssa = $11; + break; + } + } + $22 = ((($$lcssa)) + 16|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(18588)>>2] = $23; + $24 = HEAP32[4642]|0; + HEAP32[$vararg_buffer>>2] = $24; + _TraceLog(0,4771,$vararg_buffer); + STACKTOP = sp;return; +} +function _InitTimer() { + var $0 = 0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_time((0|0))|0); + _srand($0); + $1 = (+_GetTime()); + HEAPF64[2253] = $1; + return; +} +function _EmscriptenFullscreenChangeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $3 = HEAP32[$1>>2]|0; + $4 = ($3|0)==(0); + $5 = ((($1)) + 264|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 268|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 272|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($1)) + 276|0); + $12 = HEAP32[$11>>2]|0; + if ($4) { + HEAP32[$vararg_buffer4>>2] = $6; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $8; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $10; + $vararg_ptr9 = ((($vararg_buffer4)) + 12|0); + HEAP32[$vararg_ptr9>>2] = $12; + _TraceLog(0,4704,$vararg_buffer4); + STACKTOP = sp;return 0; + } else { + HEAP32[$vararg_buffer>>2] = $6; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $12; + _TraceLog(0,4635,$vararg_buffer); + STACKTOP = sp;return 0; + } + return (0)|0; +} +function _EmscriptenKeyboardCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(1); + if (!($3)) { + return 0; + } + $4 = ((($1)) + 32|0); + $5 = (_strcmp($4,4628)|0); + $6 = ($5|0)==(0); + if (!($6)) { + return 0; + } + (_emscripten_exit_pointerlock()|0); + return 0; +} +function _EmscriptenMouseCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); + $3 = sp; + $4 = ($0|0)==(4); + if (!($4)) { + STACKTOP = sp;return 0; + } + (_emscripten_get_pointerlock_status(($3|0))|0); + $5 = HEAP32[$3>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + (_emscripten_request_pointerlock((0|0),1)|0); + } else { + (_emscripten_exit_pointerlock()|0); + (_emscripten_get_pointerlock_status(($3|0))|0); + } + STACKTOP = sp;return 0; +} +function _EmscriptenTouchCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$sink = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$03$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx2 = 0, $$sroa$24$0$$sroa_idx5 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0, $59 = 0.0, $6 = 0; + var $60 = 0.0, $61 = 0.0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + switch ($0|0) { + case 22: { + $$sink = 1; + label = 4; + break; + } + case 23: { + $$sink = 0; + label = 4; + break; + } + case 24: { + $$sink = 2; + label = 4; + break; + } + default: { + } + } + if ((label|0) == 4) { + HEAP32[$3>>2] = $$sink; + } + $4 = HEAP32[$1>>2]|0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = $4; + $6 = ((($1)) + 20|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($3)) + 8|0); + HEAP32[$8>>2] = $7; + $9 = ((($1)) + 72|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $10; + $12 = ((($1)) + 56|0); + $13 = HEAP32[$12>>2]|0; + $14 = (+($13|0)); + $15 = ((($1)) + 60|0); + $16 = HEAP32[$15>>2]|0; + $17 = (+($16|0)); + $$sroa$03$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$03$0$$sroa_idx>>2] = $14; + $$sroa$24$0$$sroa_idx5 = ((($3)) + 28|0); + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $17; + $18 = ((($1)) + 108|0); + $19 = HEAP32[$18>>2]|0; + $20 = (+($19|0)); + $21 = ((($1)) + 112|0); + $22 = HEAP32[$21>>2]|0; + $23 = (+($22|0)); + $$sroa$0$0$$sroa_idx = ((($3)) + 32|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $20; + $$sroa$2$0$$sroa_idx2 = ((($3)) + 36|0); + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $23; + $24 = ((($3)) + 24|0); + $25 = $24; + $26 = $25; + $27 = HEAP32[$26>>2]|0; + $28 = (($25) + 4)|0; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $31 = 18008; + $32 = $31; + HEAP32[$32>>2] = $27; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = $30; + $35 = ((($3)) + 32|0); + $36 = $35; + $37 = $36; + $38 = HEAP32[$37>>2]|0; + $39 = (($36) + 4)|0; + $40 = $39; + $41 = HEAP32[$40>>2]|0; + $42 = (18016); + $43 = $42; + HEAP32[$43>>2] = $38; + $44 = (($42) + 4)|0; + $45 = $44; + HEAP32[$45>>2] = $41; + $46 = (_GetScreenWidth()|0); + $47 = (+($46|0)); + $48 = +HEAPF32[$24>>2]; + $49 = $48 / $47; + HEAPF32[$24>>2] = $49; + $50 = (_GetScreenHeight()|0); + $51 = (+($50|0)); + $52 = +HEAPF32[$$sroa$24$0$$sroa_idx5>>2]; + $53 = $52 / $51; + HEAPF32[$$sroa$24$0$$sroa_idx5>>2] = $53; + $54 = (_GetScreenWidth()|0); + $55 = (+($54|0)); + $56 = +HEAPF32[$35>>2]; + $57 = $56 / $55; + HEAPF32[$35>>2] = $57; + $58 = (_GetScreenHeight()|0); + $59 = (+($58|0)); + $60 = +HEAPF32[$$sroa$2$0$$sroa_idx2>>2]; + $61 = $60 / $59; + HEAPF32[$$sroa$2$0$$sroa_idx2>>2] = $61; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return 1; +} +function _EmscriptenGamepadCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$sink = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($1)) + 1296|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0); + if ($5) { + label = 3; + } else { + $6 = ((($1)) + 1300|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)<(4); + if ($8) { + $$sink = 1; + } else { + label = 3; + } + } + if ((label|0) == 3) { + $$sink = 0; + } + $9 = ((($1)) + 1300|0); + $10 = HEAP32[$9>>2]|0; + $11 = (18552 + ($10<<2)|0); + HEAP32[$11>>2] = $$sink; + return 0; +} +function _SetTargetFPS($0) { + $0 = $0|0; + var $$ = 0.0, $$op = 0.0, $1 = 0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ($0|0)<(1); + $2 = (+($0|0)); + $3 = 1.0 / $2; + $$ = $1 ? 0.0 : $3; + HEAPF64[2250] = $$; + $4 = $3; + $$op = $4 * 1000.0; + $5 = $$op; + $6 = $1 ? 0.0 : $5; + HEAPF64[$vararg_buffer>>3] = $6; + _TraceLog(0,4584,$vararg_buffer); + STACKTOP = sp;return; +} +function _LogoAnimation() { + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4637] = 0; + return; +} +function _GetTime() { + var $0 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_glfwGetTime()); + return (+$0); +} +function _LoadImageEx($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$03334 = 0, $$035 = 0, $$sroa$12$0$$sroa_idx21 = 0, $$sroa$15$0$$sroa_idx24 = 0, $$sroa$16$0$$sroa_idx26 = 0, $$sroa$9$0$$sroa_idx18 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = $2 << 2; + $5 = Math_imul($4, $3)|0; + $6 = (_malloc($5)|0); + $7 = ($5|0)>(0); + if ($7) { + $8 = (($5) + -1)|0; + $9 = $8 >>> 2; + $$03334 = 0;$$035 = 0; + while(1) { + $10 = (($1) + ($$03334<<2)|0); + $11 = HEAP8[$10>>0]|0; + $12 = (($6) + ($$035)|0); + HEAP8[$12>>0] = $11; + $13 = (((($1) + ($$03334<<2)|0)) + 1|0); + $14 = HEAP8[$13>>0]|0; + $15 = $$035 | 1; + $16 = (($6) + ($15)|0); + HEAP8[$16>>0] = $14; + $17 = (((($1) + ($$03334<<2)|0)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = $$035 | 2; + $20 = (($6) + ($19)|0); + HEAP8[$20>>0] = $18; + $21 = (((($1) + ($$03334<<2)|0)) + 3|0); + $22 = HEAP8[$21>>0]|0; + $23 = $$035 | 3; + $24 = (($6) + ($23)|0); + HEAP8[$24>>0] = $22; + $25 = (($$03334) + 1)|0; + $26 = (($$035) + 4)|0; + $exitcond = ($$03334|0)==($9|0); + if ($exitcond) { + break; + } else { + $$03334 = $25;$$035 = $26; + } + } + } + HEAP32[$0>>2] = $6; + $$sroa$9$0$$sroa_idx18 = ((($0)) + 4|0); + HEAP32[$$sroa$9$0$$sroa_idx18>>2] = $2; + $$sroa$12$0$$sroa_idx21 = ((($0)) + 8|0); + HEAP32[$$sroa$12$0$$sroa_idx21>>2] = $3; + $$sroa$15$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$15$0$$sroa_idx24>>2] = 1; + $$sroa$16$0$$sroa_idx26 = ((($0)) + 16|0); + HEAP32[$$sroa$16$0$$sroa_idx26>>2] = 7; + return; +} +function _ImageFormat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166199 = 0, $$0167197 = 0, $$0168195 = 0, $$0169192 = 0, $$0170190 = 0, $$0171188 = 0, $$0172189 = 0, $$0202 = 0, $$1194 = 0, $$2201 = 0, $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0; + var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; + var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; + var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; + var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0.0, $178 = 0, $179 = 0, $18 = 0; + var $180 = 0, $181 = 0.0, $182 = 0.0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0.0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; + var $199 = 0, $2 = 0, $20 = 0.0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; + var $216 = 0, $217 = 0, $218 = 0.0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0, $224 = 0.0, $225 = 0.0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0, $23 = 0.0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0; + var $234 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0.0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0.0, $250 = 0, $251 = 0; + var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; + var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; + var $289 = 0, $29 = 0.0, $290 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0.0, $62 = 0.0; + var $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0.0, $99 = 0; + var $or$cond = 0, $roundf = 0.0, $roundf173 = 0.0, $roundf174 = 0.0, $roundf175 = 0.0, $roundf176 = 0.0, $roundf177 = 0.0, $roundf178 = 0.0, $roundf179 = 0.0, $roundf180 = 0.0, $roundf181 = 0.0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + $2 = ((($0)) + 16|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)==($1|0); + if ($4) { + STACKTOP = sp;return; + } + $5 = ($3|0)<(8); + $6 = ($1|0)<(8); + $or$cond = $6 & $5; + if (!($or$cond)) { + _TraceLog(2,5118,$vararg_buffer); + STACKTOP = sp;return; + } + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0; + $7 = (_GetImageData($$byval_copy)|0); + $8 = HEAP32[$0>>2]|0; + _free($8); + HEAP32[$2>>2] = $1; + switch ($1|0) { + case 1: { + $9 = ((($0)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 8|0); + $12 = HEAP32[$11>>2]|0; + $13 = Math_imul($12, $10)|0; + $14 = (_malloc($13)|0); + HEAP32[$0>>2] = $14; + $15 = Math_imul($12, $10)|0; + $16 = ($15|0)>(0); + if ($16) { + $$0171188 = 0; + while(1) { + $17 = (($7) + ($$0171188<<2)|0); + $18 = HEAP8[$17>>0]|0; + $19 = (+($18&255)); + $20 = $19 * 0.29899999499320984; + $21 = (((($7) + ($$0171188<<2)|0)) + 1|0); + $22 = HEAP8[$21>>0]|0; + $23 = (+($22&255)); + $24 = $23 * 0.58700001239776611; + $25 = $20 + $24; + $26 = (((($7) + ($$0171188<<2)|0)) + 2|0); + $27 = HEAP8[$26>>0]|0; + $28 = (+($27&255)); + $29 = $28 * 0.11400000005960464; + $30 = $25 + $29; + $31 = (~~(($30))&255); + $32 = HEAP32[$0>>2]|0; + $33 = (($32) + ($$0171188)|0); + HEAP8[$33>>0] = $31; + $34 = (($$0171188) + 1)|0; + $35 = HEAP32[$9>>2]|0; + $36 = HEAP32[$11>>2]|0; + $37 = Math_imul($36, $35)|0; + $38 = ($34|0)<($37|0); + if ($38) { + $$0171188 = $34; + } else { + break; + } + } + } + break; + } + case 2: { + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = ((($0)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = $40 << 1; + $44 = Math_imul($43, $42)|0; + $45 = (_malloc($44)|0); + HEAP32[$0>>2] = $45; + $46 = HEAP32[$39>>2]|0; + $47 = $46 << 1; + $48 = Math_imul($47, $42)|0; + $49 = ($48|0)>(0); + if ($49) { + $$0170190 = 0;$$0172189 = 0; + while(1) { + $50 = (($7) + ($$0172189<<2)|0); + $51 = HEAP8[$50>>0]|0; + $52 = (+($51&255)); + $53 = $52 * 0.29899999499320984; + $54 = (((($7) + ($$0172189<<2)|0)) + 1|0); + $55 = HEAP8[$54>>0]|0; + $56 = (+($55&255)); + $57 = $56 * 0.58700001239776611; + $58 = $53 + $57; + $59 = (((($7) + ($$0172189<<2)|0)) + 2|0); + $60 = HEAP8[$59>>0]|0; + $61 = (+($60&255)); + $62 = $61 * 0.11400000005960464; + $63 = $58 + $62; + $64 = (~~(($63))&255); + $65 = HEAP32[$0>>2]|0; + $66 = (($65) + ($$0170190)|0); + HEAP8[$66>>0] = $64; + $67 = (((($7) + ($$0172189<<2)|0)) + 3|0); + $68 = HEAP8[$67>>0]|0; + $69 = HEAP32[$0>>2]|0; + $70 = $$0170190 | 1; + $71 = (($69) + ($70)|0); + HEAP8[$71>>0] = $68; + $72 = (($$0172189) + 1)|0; + $73 = (($$0170190) + 2)|0; + $74 = HEAP32[$39>>2]|0; + $75 = HEAP32[$41>>2]|0; + $76 = $74 << 1; + $77 = Math_imul($76, $75)|0; + $78 = ($73|0)<($77|0); + if ($78) { + $$0170190 = $73;$$0172189 = $72; + } else { + break; + } + } + } + break; + } + case 3: { + $79 = ((($0)) + 4|0); + $80 = HEAP32[$79>>2]|0; + $81 = ((($0)) + 8|0); + $82 = HEAP32[$81>>2]|0; + $83 = $80 << 1; + $84 = Math_imul($83, $82)|0; + $85 = (_malloc($84)|0); + HEAP32[$0>>2] = $85; + $86 = HEAP32[$79>>2]|0; + $87 = Math_imul($82, $86)|0; + $88 = ($87|0)>(0); + if ($88) { + $89 = HEAP8[$7>>0]|0; + $90 = (+($89&255)); + $91 = $90 * 31.0; + $92 = $91 / 255.0; + $roundf179 = (+_roundf((+$92))); + $93 = (~~(($roundf179))&255); + $94 = ((($7)) + 1|0); + $95 = HEAP8[$94>>0]|0; + $96 = (+($95&255)); + $97 = $96 * 63.0; + $98 = $97 / 255.0; + $roundf180 = (+_roundf((+$98))); + $99 = (~~(($roundf180))&255); + $100 = ((($7)) + 2|0); + $101 = HEAP8[$100>>0]|0; + $102 = (+($101&255)); + $103 = $102 * 31.0; + $104 = $103 / 255.0; + $roundf181 = (+_roundf((+$104))); + $105 = (~~(($roundf181))&255); + $106 = $93&255; + $107 = $106 << 11; + $108 = $99&255; + $109 = $108 << 5; + $110 = $109 | $107; + $111 = $105&255; + $112 = $110 | $111; + $113 = $112&65535; + $114 = HEAP32[$0>>2]|0; + $115 = HEAP32[$79>>2]|0; + $116 = HEAP32[$81>>2]|0; + $117 = Math_imul($116, $115)|0; + $$0169192 = 0; + while(1) { + $118 = (($114) + ($$0169192<<1)|0); + HEAP16[$118>>1] = $113; + $119 = (($$0169192) + 1)|0; + $120 = ($119|0)<($117|0); + if ($120) { + $$0169192 = $119; + } else { + break; + } + } + } + break; + } + case 4: { + $121 = ((($0)) + 4|0); + $122 = HEAP32[$121>>2]|0; + $123 = ((($0)) + 8|0); + $124 = HEAP32[$123>>2]|0; + $125 = ($122*3)|0; + $126 = Math_imul($125, $124)|0; + $127 = (_malloc($126)|0); + HEAP32[$0>>2] = $127; + $128 = HEAP32[$121>>2]|0; + $129 = ($128*3)|0; + $130 = Math_imul($129, $124)|0; + $131 = ($130|0)>(0); + if ($131) { + $$0168195 = 0;$$1194 = 0; + while(1) { + $132 = (($7) + ($$1194<<2)|0); + $133 = HEAP8[$132>>0]|0; + $134 = HEAP32[$0>>2]|0; + $135 = (($134) + ($$0168195)|0); + HEAP8[$135>>0] = $133; + $136 = (((($7) + ($$1194<<2)|0)) + 1|0); + $137 = HEAP8[$136>>0]|0; + $138 = HEAP32[$0>>2]|0; + $139 = (($$0168195) + 1)|0; + $140 = (($138) + ($139)|0); + HEAP8[$140>>0] = $137; + $141 = (((($7) + ($$1194<<2)|0)) + 2|0); + $142 = HEAP8[$141>>0]|0; + $143 = HEAP32[$0>>2]|0; + $144 = (($$0168195) + 2)|0; + $145 = (($143) + ($144)|0); + HEAP8[$145>>0] = $142; + $146 = (($$1194) + 1)|0; + $147 = (($$0168195) + 3)|0; + $148 = HEAP32[$121>>2]|0; + $149 = HEAP32[$123>>2]|0; + $150 = ($148*3)|0; + $151 = Math_imul($150, $149)|0; + $152 = ($147|0)<($151|0); + if ($152) { + $$0168195 = $147;$$1194 = $146; + } else { + break; + } + } + } + break; + } + case 5: { + $153 = ((($0)) + 4|0); + $154 = HEAP32[$153>>2]|0; + $155 = ((($0)) + 8|0); + $156 = HEAP32[$155>>2]|0; + $157 = $154 << 1; + $158 = Math_imul($157, $156)|0; + $159 = (_malloc($158)|0); + HEAP32[$0>>2] = $159; + $160 = HEAP32[$153>>2]|0; + $161 = Math_imul($156, $160)|0; + $162 = ($161|0)>(0); + if ($162) { + $163 = HEAP32[$0>>2]|0; + $164 = HEAP32[$153>>2]|0; + $165 = HEAP32[$155>>2]|0; + $166 = Math_imul($165, $164)|0; + $$0167197 = 0; + while(1) { + $167 = (($7) + ($$0167197<<2)|0); + $168 = HEAP8[$167>>0]|0; + $169 = (+($168&255)); + $170 = $169 * 31.0; + $171 = $170 / 255.0; + $roundf176 = (+_roundf((+$171))); + $172 = (~~(($roundf176))&255); + $173 = (((($7) + ($$0167197<<2)|0)) + 1|0); + $174 = HEAP8[$173>>0]|0; + $175 = (+($174&255)); + $176 = $175 * 31.0; + $177 = $176 / 255.0; + $roundf177 = (+_roundf((+$177))); + $178 = (~~(($roundf177))&255); + $179 = (((($7) + ($$0167197<<2)|0)) + 2|0); + $180 = HEAP8[$179>>0]|0; + $181 = (+($180&255)); + $182 = $181 * 31.0; + $183 = $182 / 255.0; + $roundf178 = (+_roundf((+$183))); + $184 = (~~(($roundf178))&255); + $185 = (((($7) + ($$0167197<<2)|0)) + 3|0); + $186 = HEAP8[$185>>0]|0; + $187 = ($186&255)>(50); + $188 = $172&255; + $189 = $188 << 11; + $190 = $178&255; + $191 = $190 << 6; + $192 = $191 | $189; + $193 = $184&255; + $194 = $193 << 1; + $195 = $192 | $194; + $196 = $187&1; + $197 = $195 | $196; + $198 = $197&65535; + $199 = (($163) + ($$0167197<<1)|0); + HEAP16[$199>>1] = $198; + $200 = (($$0167197) + 1)|0; + $201 = ($200|0)<($166|0); + if ($201) { + $$0167197 = $200; + } else { + break; + } + } + } + break; + } + case 6: { + $202 = ((($0)) + 4|0); + $203 = HEAP32[$202>>2]|0; + $204 = ((($0)) + 8|0); + $205 = HEAP32[$204>>2]|0; + $206 = $203 << 1; + $207 = Math_imul($206, $205)|0; + $208 = (_malloc($207)|0); + HEAP32[$0>>2] = $208; + $209 = HEAP32[$202>>2]|0; + $210 = Math_imul($205, $209)|0; + $211 = ($210|0)>(0); + if ($211) { + $212 = HEAP32[$0>>2]|0; + $213 = HEAP32[$202>>2]|0; + $214 = HEAP32[$204>>2]|0; + $215 = Math_imul($214, $213)|0; + $$0166199 = 0; + while(1) { + $216 = (($7) + ($$0166199<<2)|0); + $217 = HEAP8[$216>>0]|0; + $218 = (+($217&255)); + $219 = $218 * 15.0; + $220 = $219 / 255.0; + $roundf = (+_roundf((+$220))); + $221 = (~~(($roundf))&255); + $222 = (((($7) + ($$0166199<<2)|0)) + 1|0); + $223 = HEAP8[$222>>0]|0; + $224 = (+($223&255)); + $225 = $224 * 15.0; + $226 = $225 / 255.0; + $roundf173 = (+_roundf((+$226))); + $227 = (~~(($roundf173))&255); + $228 = (((($7) + ($$0166199<<2)|0)) + 2|0); + $229 = HEAP8[$228>>0]|0; + $230 = (+($229&255)); + $231 = $230 * 15.0; + $232 = $231 / 255.0; + $roundf174 = (+_roundf((+$232))); + $233 = (~~(($roundf174))&255); + $234 = (((($7) + ($$0166199<<2)|0)) + 3|0); + $235 = HEAP8[$234>>0]|0; + $236 = (+($235&255)); + $237 = $236 * 15.0; + $238 = $237 / 255.0; + $roundf175 = (+_roundf((+$238))); + $239 = (~~(($roundf175))&255); + $240 = $221&255; + $241 = $240 << 12; + $242 = $227&255; + $243 = $242 << 8; + $244 = $243 | $241; + $245 = $233&255; + $246 = $245 << 4; + $247 = $244 | $246; + $248 = $239&255; + $249 = $247 | $248; + $250 = $249&65535; + $251 = (($212) + ($$0166199<<1)|0); + HEAP16[$251>>1] = $250; + $252 = (($$0166199) + 1)|0; + $253 = ($252|0)<($215|0); + if ($253) { + $$0166199 = $252; + } else { + break; + } + } + } + break; + } + case 7: { + $254 = ((($0)) + 4|0); + $255 = HEAP32[$254>>2]|0; + $256 = ((($0)) + 8|0); + $257 = HEAP32[$256>>2]|0; + $258 = $255 << 2; + $259 = Math_imul($258, $257)|0; + $260 = (_malloc($259)|0); + HEAP32[$0>>2] = $260; + $261 = HEAP32[$254>>2]|0; + $262 = $261 << 2; + $263 = Math_imul($262, $257)|0; + $264 = ($263|0)>(0); + if ($264) { + $$0202 = 0;$$2201 = 0; + while(1) { + $265 = (($7) + ($$2201<<2)|0); + $266 = HEAP8[$265>>0]|0; + $267 = HEAP32[$0>>2]|0; + $268 = (($267) + ($$0202)|0); + HEAP8[$268>>0] = $266; + $269 = (((($7) + ($$2201<<2)|0)) + 1|0); + $270 = HEAP8[$269>>0]|0; + $271 = HEAP32[$0>>2]|0; + $272 = $$0202 | 1; + $273 = (($271) + ($272)|0); + HEAP8[$273>>0] = $270; + $274 = (((($7) + ($$2201<<2)|0)) + 2|0); + $275 = HEAP8[$274>>0]|0; + $276 = HEAP32[$0>>2]|0; + $277 = $$0202 | 2; + $278 = (($276) + ($277)|0); + HEAP8[$278>>0] = $275; + $279 = (((($7) + ($$2201<<2)|0)) + 3|0); + $280 = HEAP8[$279>>0]|0; + $281 = HEAP32[$0>>2]|0; + $282 = $$0202 | 3; + $283 = (($281) + ($282)|0); + HEAP8[$283>>0] = $280; + $284 = (($$2201) + 1)|0; + $285 = (($$0202) + 4)|0; + $286 = HEAP32[$254>>2]|0; + $287 = HEAP32[$256>>2]|0; + $288 = $286 << 2; + $289 = Math_imul($288, $287)|0; + $290 = ($285|0)<($289|0); + if ($290) { + $$0202 = $285;$$2201 = $284; + } else { + break; + } + } + } + break; + } + default: { + } + } + _free($7); + STACKTOP = sp;return; +} +function _LoadTextureFromImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$11$0$$sroa_idx8 = 0, $$sroa$5$0$$sroa_idx2 = 0, $$sroa$7$0$$sroa_idx4 = 0, $$sroa$9$0$$sroa_idx6 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($1)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($1)) + 12|0); + $10 = HEAP32[$9>>2]|0; + $11 = (_rlglLoadTexture($2,$4,$6,$8,$10)|0); + $12 = HEAP32[$3>>2]|0; + $13 = HEAP32[$5>>2]|0; + HEAP32[$0>>2] = $11; + $$sroa$5$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$5$0$$sroa_idx2>>2] = $12; + $$sroa$7$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx4>>2] = $13; + $$sroa$9$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$9$0$$sroa_idx6>>2] = $10; + $$sroa$11$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$11$0$$sroa_idx8>>2] = $8; + return; +} +function _UnloadImage($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + _free($1); + return; +} +function _rlglLoadTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$off = 0, $$off92 = 0, $$off93 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond100 = 0, $or$cond7 = 0, $or$cond96 = 0, $or$cond98 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0; + var $vararg_buffer9 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer15 = sp + 64|0; + $vararg_buffer11 = sp + 48|0; + $vararg_buffer9 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $5 = sp + 68|0; + _glBindTexture(3553,0); + HEAP32[$5>>2] = 0; + $6 = HEAP32[4650]|0; + $7 = ($6|0)==(0); + $8 = $3 & -4; + $switch = ($8|0)==(8); + $or$cond100 = $switch & $7; + if ($or$cond100) { + _TraceLog(2,4816,$vararg_buffer); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $9 = HEAP32[4651]|0; + $10 = ($9|0)==(0); + $11 = ($3|0)==(12); + $or$cond7 = $11 & $10; + if ($or$cond7) { + _TraceLog(2,4860,$vararg_buffer1); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $12 = HEAP32[4652]|0; + $13 = ($12|0)==(0); + $$off = (($3) + -13)|0; + $14 = ($$off>>>0)<(2); + $or$cond = $14 & $13; + if ($or$cond) { + _TraceLog(2,4905,$vararg_buffer3); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $15 = HEAP32[4653]|0; + $16 = ($15|0)==(0); + $$off92 = (($3) + -15)|0; + $17 = ($$off92>>>0)<(2); + $or$cond96 = $17 & $16; + if ($or$cond96) { + _TraceLog(2,4950,$vararg_buffer5); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + $18 = HEAP32[4654]|0; + $19 = ($18|0)==(0); + $$off93 = (($3) + -17)|0; + $20 = ($$off93>>>0)<(2); + $or$cond98 = $20 & $19; + if ($or$cond98) { + _TraceLog(2,4995,$vararg_buffer7); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + _glGenTextures(1,($5|0)); + $21 = HEAP32[$5>>2]|0; + _glBindTexture(3553,($21|0)); + do { + switch ($3|0) { + case 1: { + _glTexImage2D(3553,0,6409,($1|0),($2|0),0,6409,5121,($0|0)); + break; + } + case 2: { + _glTexImage2D(3553,0,6410,($1|0),($2|0),0,6410,5121,($0|0)); + break; + } + case 3: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,33635,($0|0)); + break; + } + case 4: { + _glTexImage2D(3553,0,6407,($1|0),($2|0),0,6407,5121,($0|0)); + break; + } + case 5: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32820,($0|0)); + break; + } + case 6: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,32819,($0|0)); + break; + } + case 7: { + _glTexImage2D(3553,0,6408,($1|0),($2|0),0,6408,5121,($0|0)); + break; + } + case 8: { + $22 = HEAP32[4650]|0; + $23 = ($22|0)==(0); + if (!($23)) { + _LoadCompressedTexture($0,$1,$2,$4,33776); + } + break; + } + case 9: { + $24 = HEAP32[4650]|0; + $25 = ($24|0)==(0); + if (!($25)) { + _LoadCompressedTexture($0,$1,$2,$4,33777); + } + break; + } + case 10: { + $26 = HEAP32[4650]|0; + $27 = ($26|0)==(0); + if (!($27)) { + _LoadCompressedTexture($0,$1,$2,$4,33778); + } + break; + } + case 11: { + $28 = HEAP32[4650]|0; + $29 = ($28|0)==(0); + if (!($29)) { + _LoadCompressedTexture($0,$1,$2,$4,33779); + } + break; + } + case 12: { + $30 = HEAP32[4651]|0; + $31 = ($30|0)==(0); + if (!($31)) { + _LoadCompressedTexture($0,$1,$2,$4,36196); + } + break; + } + case 13: { + $32 = HEAP32[4652]|0; + $33 = ($32|0)==(0); + if (!($33)) { + _LoadCompressedTexture($0,$1,$2,$4,37492); + } + break; + } + case 14: { + $34 = HEAP32[4652]|0; + $35 = ($34|0)==(0); + if (!($35)) { + _LoadCompressedTexture($0,$1,$2,$4,37496); + } + break; + } + case 15: { + $36 = HEAP32[4653]|0; + $37 = ($36|0)==(0); + if (!($37)) { + _LoadCompressedTexture($0,$1,$2,$4,35840); + } + break; + } + case 16: { + $38 = HEAP32[4653]|0; + $39 = ($38|0)==(0); + if (!($39)) { + _LoadCompressedTexture($0,$1,$2,$4,35842); + } + break; + } + case 17: { + $40 = HEAP32[4654]|0; + $41 = ($40|0)==(0); + if (!($41)) { + _LoadCompressedTexture($0,$1,$2,$4,37808); + } + break; + } + case 18: { + $42 = HEAP32[4654]|0; + $43 = ($42|0)==(0); + if (!($43)) { + _LoadCompressedTexture($0,$1,$2,$4,37815); + } + break; + } + default: { + _TraceLog(2,5040,$vararg_buffer9); + } + } + } while(0); + $44 = HEAP32[4655]|0; + $45 = ($44|0)==(0); + if ($45) { + _glTexParameteri(3553,10242,33071); + _glTexParameteri(3553,10243,33071); + } else { + _glTexParameteri(3553,10242,10497); + _glTexParameteri(3553,10243,10497); + } + _glTexParameteri(3553,10240,9728); + _glTexParameteri(3553,10241,9728); + _glBindTexture(3553,0); + $46 = HEAP32[$5>>2]|0; + $47 = ($46|0)==(0); + if ($47) { + _TraceLog(2,11773,$vararg_buffer15); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer11>>2] = $46; + $vararg_ptr13 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 8|0); + HEAP32[$vararg_ptr14>>2] = $2; + _TraceLog(0,5069,$vararg_buffer11); + $$0 = HEAP32[$5>>2]|0; + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadCompressedTexture($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$03645 = 0, $$03744 = 0, $$038 = 0, $$03943 = 0, $$046 = 0, $$140 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond42 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glPixelStorei(3317,1); + switch ($4|0) { + case 33776: case 33777: case 36196: case 37492: { + $$038 = 8; + break; + } + default: { + $$038 = 16; + } + } + $5 = ($3|0)<(1); + $6 = $1 | $2; + $7 = ($6|0)==(0); + $or$cond42 = $5 | $7; + if ($or$cond42) { + return; + } else { + $$03645 = 0;$$03744 = 0;$$03943 = $2;$$046 = $1; + } + while(1) { + $8 = (($$046) + 3)|0; + $9 = (($8|0) / 4)&-1; + $10 = (($$03943) + 3)|0; + $11 = (($10|0) / 4)&-1; + $12 = Math_imul($11, $$038)|0; + $13 = Math_imul($12, $9)|0; + $14 = (($0) + ($$03744)|0); + _glCompressedTexImage2D(3553,($$03645|0),($4|0),($$046|0),($$03943|0),0,($13|0),($14|0)); + $15 = (($13) + ($$03744))|0; + $16 = (($$046|0) / 2)&-1; + $17 = (($$03943|0) / 2)&-1; + $18 = ($$046|0)<(2); + $$ = $18 ? 1 : $16; + $19 = ($$03943|0)<(2); + $$140 = $19 ? 1 : $17; + $20 = (($$03645) + 1)|0; + $21 = ($20|0)>=($3|0); + $22 = $$ | $$140; + $23 = ($22|0)==(0); + $or$cond = $21 | $23; + if ($or$cond) { + break; + } else { + $$03645 = $20;$$03744 = $15;$$03943 = $$140;$$046 = $$; + } + } + return; +} +function _GetImageData($0) { + $0 = $0|0; + var $$0104105 = 0, $$0106 = 0, $$1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0.0, $98 = 0.0, $99 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 4|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = $2 << 2; + $6 = Math_imul($5, $4)|0; + $7 = (_malloc($6)|0); + $8 = HEAP32[$1>>2]|0; + $9 = Math_imul($4, $8)|0; + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return ($7|0); + } + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = HEAP32[$0>>2]|0; + $$0104105 = 0;$$0106 = 0; + while(1) { + switch ($12|0) { + case 1: { + $14 = (($13) + ($$0106)|0); + $15 = HEAP8[$14>>0]|0; + $16 = (($7) + ($$0104105<<2)|0); + HEAP8[$16>>0] = $15; + $17 = HEAP8[$14>>0]|0; + $18 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$18>>0] = $17; + $19 = HEAP8[$14>>0]|0; + $20 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$20>>0] = $19; + $21 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$21>>0] = -1; + $22 = (($$0106) + 1)|0; + $$1 = $22; + break; + } + case 2: { + $23 = (($13) + ($$0106)|0); + $24 = HEAP8[$23>>0]|0; + $25 = (($7) + ($$0104105<<2)|0); + HEAP8[$25>>0] = $24; + $26 = HEAP8[$23>>0]|0; + $27 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$27>>0] = $26; + $28 = HEAP8[$23>>0]|0; + $29 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$29>>0] = $28; + $30 = (($$0106) + 1)|0; + $31 = (($13) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$33>>0] = $32; + $34 = (($$0106) + 2)|0; + $$1 = $34; + break; + } + case 5: { + $35 = (($13) + ($$0106<<1)|0); + $36 = HEAP16[$35>>1]|0; + $37 = $36&65535; + $38 = $37 >>> 11; + $39 = (+($38|0)); + $40 = $39 * 8.0; + $41 = (~~(($40))&255); + $42 = (($7) + ($$0104105<<2)|0); + HEAP8[$42>>0] = $41; + $43 = $37 >>> 6; + $44 = $43 & 31; + $45 = (+($44|0)); + $46 = $45 * 8.0; + $47 = (~~(($46))&255); + $48 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$48>>0] = $47; + $49 = $37 >>> 1; + $50 = $49 & 31; + $51 = (+($50|0)); + $52 = $51 * 8.0; + $53 = (~~(($52))&255); + $54 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$54>>0] = $53; + $55 = $37 & 1; + $56 = (0 - ($55))|0; + $57 = $56&255; + $58 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$58>>0] = $57; + $59 = (($$0106) + 1)|0; + $$1 = $59; + break; + } + case 3: { + $60 = (($13) + ($$0106<<1)|0); + $61 = HEAP16[$60>>1]|0; + $62 = $61&65535; + $63 = $62 >>> 11; + $64 = (+($63|0)); + $65 = $64 * 8.0; + $66 = (~~(($65))&255); + $67 = (($7) + ($$0104105<<2)|0); + HEAP8[$67>>0] = $66; + $68 = $62 >>> 5; + $69 = $68 & 63; + $70 = (+($69|0)); + $71 = $70 * 4.0; + $72 = (~~(($71))&255); + $73 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$73>>0] = $72; + $74 = $62 & 31; + $75 = (+($74|0)); + $76 = $75 * 8.0; + $77 = (~~(($76))&255); + $78 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$78>>0] = $77; + $79 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$79>>0] = -1; + $80 = (($$0106) + 1)|0; + $$1 = $80; + break; + } + case 6: { + $81 = (($13) + ($$0106<<1)|0); + $82 = HEAP16[$81>>1]|0; + $83 = $82&65535; + $84 = $83 >>> 12; + $85 = (+($84|0)); + $86 = $85 * 17.0; + $87 = (~~(($86))&255); + $88 = (($7) + ($$0104105<<2)|0); + HEAP8[$88>>0] = $87; + $89 = $83 >>> 8; + $90 = $89 & 15; + $91 = (+($90|0)); + $92 = $91 * 17.0; + $93 = (~~(($92))&255); + $94 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$94>>0] = $93; + $95 = $83 >>> 4; + $96 = $95 & 15; + $97 = (+($96|0)); + $98 = $97 * 17.0; + $99 = (~~(($98))&255); + $100 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$100>>0] = $99; + $101 = $83 & 15; + $102 = (+($101|0)); + $103 = $102 * 17.0; + $104 = (~~(($103))&255); + $105 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$105>>0] = $104; + $106 = (($$0106) + 1)|0; + $$1 = $106; + break; + } + case 7: { + $107 = (($13) + ($$0106)|0); + $108 = HEAP8[$107>>0]|0; + $109 = (($7) + ($$0104105<<2)|0); + HEAP8[$109>>0] = $108; + $110 = (($$0106) + 1)|0; + $111 = (($13) + ($110)|0); + $112 = HEAP8[$111>>0]|0; + $113 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$113>>0] = $112; + $114 = (($$0106) + 2)|0; + $115 = (($13) + ($114)|0); + $116 = HEAP8[$115>>0]|0; + $117 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$117>>0] = $116; + $118 = (($$0106) + 3)|0; + $119 = (($13) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $121 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$121>>0] = $120; + $122 = (($$0106) + 4)|0; + $$1 = $122; + break; + } + case 4: { + $123 = (($13) + ($$0106)|0); + $124 = HEAP8[$123>>0]|0; + $125 = (($7) + ($$0104105<<2)|0); + HEAP8[$125>>0] = $124; + $126 = (($$0106) + 1)|0; + $127 = (($13) + ($126)|0); + $128 = HEAP8[$127>>0]|0; + $129 = (((($7) + ($$0104105<<2)|0)) + 1|0); + HEAP8[$129>>0] = $128; + $130 = (($$0106) + 2)|0; + $131 = (($13) + ($130)|0); + $132 = HEAP8[$131>>0]|0; + $133 = (((($7) + ($$0104105<<2)|0)) + 2|0); + HEAP8[$133>>0] = $132; + $134 = (((($7) + ($$0104105<<2)|0)) + 3|0); + HEAP8[$134>>0] = -1; + $135 = (($$0106) + 3)|0; + $$1 = $135; + break; + } + default: { + _TraceLog(2,5172,$vararg_buffer); + $$1 = $$0106; + } + } + $136 = (($$0104105) + 1)|0; + $137 = HEAP32[$1>>2]|0; + $138 = HEAP32[$3>>2]|0; + $139 = Math_imul($138, $137)|0; + $140 = ($136|0)<($139|0); + if ($140) { + $$0104105 = $136;$$0106 = $$1; + } else { + break; + } + } + STACKTOP = sp;return ($7|0); +} +function _ErrorCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $1; + _TraceLog(2,9038,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlGetVersion() { + var label = 0, sp = 0; + sp = STACKTOP; + return 4; +} +function _SetupFramebufferSize($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sink1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; + var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0; + var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0, $or$cond = 0, $roundf = 0.0, $roundf38 = 0.0, $roundf39 = 0.0, $roundf40 = 0.0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0; + var $vararg_ptr3 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 40|0; + $3 = HEAP32[4634]|0; + $4 = ($3|0)>($0|0); + if (!($4)) { + $5 = HEAP32[4633]|0; + $6 = ($5|0)>($1|0); + if (!($6)) { + $30 = ($3|0)<($0|0); + $31 = ($5|0)<($1|0); + $or$cond = $30 | $31; + if (!($or$cond)) { + HEAP32[4675] = $3; + HEAP32[4676] = $5; + HEAP32[4677] = 0; + HEAP32[4678] = 0; + STACKTOP = sp;return; + } + HEAP32[$vararg_buffer8>>2] = $3; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $5; + $vararg_ptr12 = ((($vararg_buffer8)) + 8|0); + HEAP32[$vararg_ptr12>>2] = $0; + $vararg_ptr13 = ((($vararg_buffer8)) + 12|0); + HEAP32[$vararg_ptr13>>2] = $1; + _TraceLog(0,8972,$vararg_buffer8); + $32 = (+($0|0)); + $33 = (+($1|0)); + $34 = $32 / $33; + $35 = HEAP32[4634]|0; + $36 = (+($35|0)); + $37 = HEAP32[4633]|0; + $38 = (+($37|0)); + $39 = $36 / $38; + $40 = !($34 <= $39); + if ($40) { + $44 = $34 * $38; + $roundf = (+_roundf((+$44))); + $45 = (~~(($roundf))); + HEAP32[4675] = $45; + HEAP32[4676] = $37; + $46 = (($45) - ($35))|0; + HEAP32[4677] = $46; + $$sink1 = 0; + } else { + HEAP32[4675] = $35; + $41 = $36 / $34; + $roundf38 = (+_roundf((+$41))); + $42 = (~~(($roundf38))); + HEAP32[4676] = $42; + HEAP32[4677] = 0; + $43 = (($42) - ($37))|0; + $$sink1 = $43; + } + HEAP32[4678] = $$sink1; + STACKTOP = sp;return; + } + } + $7 = HEAP32[4633]|0; + HEAP32[$vararg_buffer>>2] = $3; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $7; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $0; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $1; + _TraceLog(2,8829,$vararg_buffer); + $8 = (+($0|0)); + $9 = HEAP32[4634]|0; + $10 = (+($9|0)); + $11 = $8 / $10; + $12 = (+($1|0)); + $13 = HEAP32[4633]|0; + $14 = (+($13|0)); + $15 = $12 / $14; + $16 = !($11 <= $15); + if ($16) { + $22 = $10 * $15; + $roundf39 = (+_roundf((+$22))); + $23 = (~~(($roundf39))); + HEAP32[4675] = $23; + HEAP32[4676] = $1; + $24 = (($0) - ($23))|0; + HEAP32[4677] = $24; + $$sink = 0; + } else { + HEAP32[4675] = $0; + $17 = HEAP32[4633]|0; + $18 = (+($17|0)); + $19 = $11 * $18; + $roundf40 = (+_roundf((+$19))); + $20 = (~~(($roundf40))); + HEAP32[4676] = $20; + HEAP32[4677] = 0; + $21 = (($1) - ($20))|0; + $$sink = $21; + } + HEAP32[4678] = $$sink; + $25 = HEAP32[4675]|0; + $26 = (+($25|0)); + $27 = HEAP32[4634]|0; + $28 = (+($27|0)); + $29 = $26 / $28; + _MatrixScale($2,$29,$29,$29); + dest=18624; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4675] = $0; + HEAP32[4676] = $1; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $1; + _TraceLog(2,8907,$vararg_buffer4); + STACKTOP = sp;return; +} +function _WindowSizeCallback($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0.0, $4 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlViewport(0,0,$1,$2); + _rlMatrixMode(5889); + _rlLoadIdentity(); + $3 = (+($1|0)); + $4 = (+($2|0)); + _rlOrtho(0.0,$3,$4,0.0,0.0,1.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlClearScreenBuffers(); + HEAP32[4634] = $1; + HEAP32[4633] = $2; + HEAP32[4675] = $1; + HEAP32[4676] = $2; + return; +} +function _CursorEnterCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _KeyCallback($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = HEAP32[752]|0; + $6 = ($5|0)==($1|0); + $7 = ($3|0)==(1); + $or$cond = $7 & $6; + if ($or$cond) { + _glfwSetWindowShouldClose(($0|0),1); + return; + } + $8 = $3&255; + $9 = (21375 + ($1)|0); + HEAP8[$9>>0] = $8; + if (!($7)) { + return; + } + HEAP32[751] = $1; + return; +} +function _MouseButtonCallback($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0; + var $28 = 0.0, $29 = 0, $30 = 0.0, $31 = 0, $32 = 0.0, $33 = 0.0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy = sp + 64|0; + $4 = sp + 8|0; + $5 = sp; + $6 = $2&255; + $7 = (21369 + ($1)|0); + HEAP8[$7>>0] = $6; + $8 = (_IsMouseButtonPressed(0)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = (_IsMouseButtonReleased(0)|0); + $11 = ($10|0)==(0); + if (!($11)) { + $$sink = 0; + label = 3; + } + } else { + $$sink = 1; + label = 3; + } + if ((label|0) == 3) { + HEAP32[$4>>2] = $$sink; + } + $12 = ((($4)) + 8|0); + HEAP32[$12>>2] = 0; + $13 = ((($4)) + 4|0); + HEAP32[$13>>2] = 1; + $14 = ((($4)) + 24|0); + _GetMousePosition($5); + $15 = $5; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $18 = (($15) + 4)|0; + $19 = $18; + $20 = HEAP32[$19>>2]|0; + $21 = $14; + $22 = $21; + HEAP32[$22>>2] = $17; + $23 = (($21) + 4)|0; + $24 = $23; + HEAP32[$24>>2] = $20; + $25 = (_GetScreenWidth()|0); + $26 = (+($25|0)); + $27 = +HEAPF32[$14>>2]; + $28 = $27 / $26; + HEAPF32[$14>>2] = $28; + $29 = (_GetScreenHeight()|0); + $30 = (+($29|0)); + $31 = ((($4)) + 28|0); + $32 = +HEAPF32[$31>>2]; + $33 = $32 / $30; + HEAPF32[$31>>2] = $33; + dest=$$byval_copy; src=$4; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _MouseCursorPosCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$sroa$0$0$$sroa_idx = 0, $$sroa$2$0$$sroa_idx1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); + $$byval_copy = sp + 56|0; + $3 = sp; + HEAP32[$3>>2] = 2; + $4 = ((($3)) + 8|0); + HEAP32[$4>>2] = 0; + $5 = ((($3)) + 4|0); + HEAP32[$5>>2] = 1; + $6 = $1; + $7 = $2; + $$sroa$0$0$$sroa_idx = ((($3)) + 24|0); + HEAPF32[$$sroa$0$0$$sroa_idx>>2] = $6; + $$sroa$2$0$$sroa_idx1 = ((($3)) + 28|0); + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $7; + $8 = ((($3)) + 24|0); + $9 = $8; + $10 = $9; + $11 = HEAP32[$10>>2]|0; + $12 = (($9) + 4)|0; + $13 = $12; + $14 = HEAP32[$13>>2]|0; + $15 = 18008; + $16 = $15; + HEAP32[$16>>2] = $11; + $17 = (($15) + 4)|0; + $18 = $17; + HEAP32[$18>>2] = $14; + $19 = (_GetScreenWidth()|0); + $20 = (+($19|0)); + $21 = +HEAPF32[$8>>2]; + $22 = $21 / $20; + HEAPF32[$8>>2] = $22; + $23 = (_GetScreenHeight()|0); + $24 = (+($23|0)); + $25 = +HEAPF32[$$sroa$2$0$$sroa_idx1>>2]; + $26 = $25 / $24; + HEAPF32[$$sroa$2$0$$sroa_idx1>>2] = $26; + dest=$$byval_copy; src=$3; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _ProcessGestureEvent($$byval_copy); + STACKTOP = sp;return; +} +function _CharCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[751] = $1; + return; +} +function _ScrollCallback($0,$1,$2) { + $0 = $0|0; + $1 = +$1; + $2 = +$2; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (~~(($2))); + HEAP32[5048] = $3; + return; +} +function _WindowIconifyCallback($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)!=(0); + $$sink = $2&1; + HEAP32[5047] = $$sink; + return; +} +function _rlglInit($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$05965 = 0, $$06066 = 0, $$06167 = 0, $$062 = 0, $$sink63 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $exitcond = 0, $exitcond69 = 0, $exitcond70 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0; + var $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer39 = 0, $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2464|0); + $vararg_buffer41 = sp + 2184|0; + $vararg_buffer39 = sp + 2176|0; + $vararg_buffer36 = sp + 2168|0; + $vararg_buffer34 = sp + 2160|0; + $vararg_buffer31 = sp + 2152|0; + $vararg_buffer29 = sp + 2144|0; + $vararg_buffer27 = sp + 2136|0; + $vararg_buffer25 = sp + 2128|0; + $vararg_buffer23 = sp + 2120|0; + $vararg_buffer21 = sp + 2112|0; + $vararg_buffer19 = sp + 2104|0; + $vararg_buffer17 = sp + 2096|0; + $vararg_buffer15 = sp + 2088|0; + $vararg_buffer13 = sp + 2080|0; + $vararg_buffer10 = sp + 2072|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 2400|0; + $3 = sp + 2384|0; + $4 = sp + 2320|0; + $5 = sp + 2256|0; + $6 = sp + 2192|0; + $7 = (_glGetString(7936)|0); + HEAP32[$vararg_buffer>>2] = $7; + _TraceLog(0,5470,$vararg_buffer); + $8 = (_glGetString(7937)|0); + HEAP32[$vararg_buffer1>>2] = $8; + _TraceLog(0,5488,$vararg_buffer1); + $9 = (_glGetString(7938)|0); + HEAP32[$vararg_buffer4>>2] = $9; + _TraceLog(0,5506,$vararg_buffer4); + $10 = (_glGetString(35724)|0); + HEAP32[$vararg_buffer7>>2] = $10; + _TraceLog(0,5524,$vararg_buffer7); + $11 = (_glGetString(7939)|0); + $12 = (_strlen($11)|0); + $13 = (($12) + 1)|0; + $14 = (_malloc($13)|0); + _memcpy(($14|0),($11|0),($13|0))|0; + $$062 = 0;$$sink63 = $14; + while(1) { + $15 = (_strtok($$sink63,5542)|0); + $16 = (($vararg_buffer7) + ($$062<<2)|0); + HEAP32[$16>>2] = $15; + $17 = ($15|0)==(0|0); + $18 = (($$062) + 1)|0; + if ($17) { + break; + } else { + $$062 = $18;$$sink63 = 0; + } + } + _free($14); + $19 = (($$062) + -1)|0; + HEAP32[$vararg_buffer10>>2] = $19; + _TraceLog(0,5544,$vararg_buffer10); + $20 = ($$062|0)>(1); + if ($20) { + $$06167 = 0; + while(1) { + $23 = (($vararg_buffer7) + ($$06167<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (_strcmp($24,5579)|0); + $26 = ($25|0)==(0); + if ($26) { + HEAP32[4713] = 1; + $27 = (_eglGetProcAddress((5606|0))|0); + HEAP32[4714] = $27; + $28 = (_eglGetProcAddress((5627|0))|0); + HEAP32[4715] = $28; + $29 = (_eglGetProcAddress((5648|0))|0); + HEAP32[4716] = $29; + } + $30 = (_strcmp($24,5672)|0); + $31 = ($30|0)==(0); + if ($31) { + HEAP32[4655] = 1; + } + $32 = (_strcmp($24,5692)|0); + $33 = ($32|0)==(0); + if ($33) { + label = 12; + } else { + $34 = HEAP32[$23>>2]|0; + $35 = (_strcmp($34,5724)|0); + $36 = ($35|0)==(0); + if ($36) { + label = 12; + } else { + $37 = (_strcmp($34,5757)|0); + $38 = ($37|0)==(0); + if ($38) { + label = 12; + } + } + } + if ((label|0) == 12) { + label = 0; + HEAP32[4650] = 1; + } + $39 = (_strcmp($24,5797)|0); + $40 = ($39|0)==(0); + if ($40) { + label = 15; + } else { + $41 = HEAP32[$23>>2]|0; + $42 = (_strcmp($41,5833)|0); + $43 = ($42|0)==(0); + if ($43) { + label = 15; + } + } + if ((label|0) == 15) { + label = 0; + HEAP32[4651] = 1; + } + $44 = HEAP32[$23>>2]|0; + $45 = (_strcmp($44,5866)|0); + $46 = ($45|0)==(0); + if ($46) { + HEAP32[4652] = 1; + } + $47 = (_strcmp($44,5891)|0); + $48 = ($47|0)==(0); + if ($48) { + HEAP32[4653] = 1; + } + $49 = (_strcmp($44,5924)|0); + $50 = ($49|0)==(0); + if ($50) { + HEAP32[4654] = 1; + } + $51 = (_strcmp($44,5960)|0); + $52 = ($51|0)==(0); + if ($52) { + HEAP32[4717] = 1; + _glGetFloatv(34047,(18872|0)); + } + $53 = HEAP32[$23>>2]|0; + $54 = (_strcmp($53,5994)|0); + $55 = ($54|0)==(0); + if ($55) { + HEAP32[4719] = 1; + } + $56 = (($$06167) + 1)|0; + $exitcond70 = ($56|0)==($19|0); + if ($exitcond70) { + break; + } else { + $$06167 = $56; + } + } + } + $21 = HEAP32[4713]|0; + $22 = ($21|0)==(0); + if ($22) { + _TraceLog(2,6097,$vararg_buffer15); + } else { + _TraceLog(0,6022,$vararg_buffer13); + } + $57 = HEAP32[4655]|0; + $58 = ($57|0)==(0); + if ($58) { + _TraceLog(2,6233,$vararg_buffer19); + } else { + _TraceLog(0,6158,$vararg_buffer17); + } + $59 = HEAP32[4650]|0; + $60 = ($59|0)==(0); + if (!($60)) { + _TraceLog(0,6325,$vararg_buffer21); + } + $61 = HEAP32[4651]|0; + $62 = ($61|0)==(0); + if (!($62)) { + _TraceLog(0,6371,$vararg_buffer23); + } + $63 = HEAP32[4652]|0; + $64 = ($63|0)==(0); + if (!($64)) { + _TraceLog(0,6418,$vararg_buffer25); + } + $65 = HEAP32[4653]|0; + $66 = ($65|0)==(0); + if (!($66)) { + _TraceLog(0,6469,$vararg_buffer27); + } + $67 = HEAP32[4654]|0; + $68 = ($67|0)==(0); + if (!($68)) { + _TraceLog(0,6516,$vararg_buffer29); + } + $69 = HEAP32[4717]|0; + $70 = ($69|0)==(0); + if (!($70)) { + $71 = +HEAPF32[4718]; + $72 = $71; + HEAPF64[$vararg_buffer31>>3] = $72; + _TraceLog(0,6563,$vararg_buffer31); + } + $73 = HEAP32[4719]|0; + $74 = ($73|0)==(0); + if (!($74)) { + _TraceLog(0,6629,$vararg_buffer34); + } + HEAP32[$vararg_buffer10>>2] = -1; + $75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0); + HEAP32[4720] = $75; + $76 = ($75|0)==(0); + if ($76) { + _TraceLog(2,6733,$vararg_buffer39); + } else { + HEAP32[$vararg_buffer36>>2] = $75; + _TraceLog(0,6682,$vararg_buffer36); + } + _LoadDefaultShader($2); + dest=18884; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18940; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _LoadDefaultBuffers(); + $77 = (_malloc(49152)|0); + HEAP32[4749] = $77; + $$06066 = 0; + while(1) { + $79 = HEAP32[4749]|0; + $80 = (($79) + (($$06066*12)|0)|0); + _VectorZero($3); + ;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0; + $81 = (($$06066) + 1)|0; + $exitcond69 = ($81|0)==(4096); + if ($exitcond69) { + break; + } else { + $$06066 = $81; + } + } + $78 = (_malloc(36864)|0); + HEAP32[4750] = $78; + $$05965 = 0; + while(1) { + $82 = (((($78) + (($$05965*144)|0)|0)) + 8|0); + HEAP32[$82>>2] = 0; + $83 = (($78) + (($$05965*144)|0)|0); + HEAP32[$83>>2] = 0; + $84 = (($$05965) + 1)|0; + $exitcond = ($84|0)==(256); + if ($exitcond) { + break; + } else { + $$05965 = $84; + } + } + HEAP32[4751] = 1; + $85 = HEAP32[4720]|0; + $86 = ((($78)) + 8|0); + HEAP32[$86>>2] = $85; + HEAP32[4752] = 4; + _MatrixIdentity($4); + dest=19012; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19076); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19140); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19204); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19268); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19332); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19396); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19460); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19524); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19588); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19652); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19716); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19780); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19844); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19908); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($4); + dest=(19972); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($5); + dest=18720; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixIdentity($6); + dest=18784; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + HEAP32[4679] = 18784; + _glDepthFunc(515); + _glDisable(2929); + _glBlendFunc(770,771); + _glEnable(3042); + _glCullFace(1029); + _glFrontFace(2305); + _glEnable(2884); + _glClearColor(0.0,0.0,0.0,1.0); + _glClearDepthf(1.0); + _glClear(16640); + HEAP32[5009] = $0; + HEAP32[5010] = $1; + _TraceLog(0,6772,$vararg_buffer41); + STACKTOP = sp;return; +} +function _SetupViewport() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4677]|0; + $1 = (($0|0) / 2)&-1; + $2 = HEAP32[4678]|0; + $3 = (($2|0) / 2)&-1; + $4 = HEAP32[4675]|0; + $5 = (($4) - ($0))|0; + $6 = HEAP32[4676]|0; + $7 = (($6) - ($2))|0; + _rlViewport($1,$3,$5,$7); + return; +} +function _rlMatrixMode($0) { + $0 = $0|0; + var $modelview$sink = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($0|0) { + case 5889: { + $modelview$sink = 18720; + label = 3; + break; + } + case 5888: { + $modelview$sink = 18784; + label = 3; + break; + } + default: { + } + } + if ((label|0) == 3) { + HEAP32[4679] = $modelview$sink; + } + HEAP32[4712] = $0; + return; +} +function _rlLoadIdentity() { + var $0 = 0, $1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $0 = sp; + $1 = HEAP32[4679]|0; + _MatrixIdentity($0); + dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlOrtho($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixOrtho($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4679]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _ClearBackground($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP8[$0>>0]|0; + $2 = ((($0)) + 1|0); + $3 = HEAP8[$2>>0]|0; + $4 = ((($0)) + 2|0); + $5 = HEAP8[$4>>0]|0; + $6 = ((($0)) + 3|0); + $7 = HEAP8[$6>>0]|0; + _rlClearColor($1,$3,$5,$7); + return; +} +function _rlClearColor($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0.0, $11 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $4 = (+($0&255)); + $5 = $4 / 255.0; + $6 = (+($1&255)); + $7 = $6 / 255.0; + $8 = (+($2&255)); + $9 = $8 / 255.0; + $10 = (+($3&255)); + $11 = $10 / 255.0; + _glClearColor((+$5),(+$7),(+$9),(+$11)); + return; +} +function _rlViewport($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var label = 0, sp = 0; + sp = STACKTOP; + _glViewport(($0|0),($1|0),($2|0),($3|0)); + return; +} +function _LoadDefaultShader($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1008|0); + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $1 = sp + 16|0; + $2 = sp + 513|0; + $3 = sp + 72|0; + _memcpy(($2|0),(7348|0),489)|0; + _memcpy(($3|0),(7837|0),441)|0; + $4 = (_LoadShaderProgram($2,$3)|0); + HEAP32[$1>>2] = $4; + $5 = ($4|0)==(0); + if ($5) { + HEAP32[$vararg_buffer1>>2] = $4; + _TraceLog(2,8326,$vararg_buffer1); + } else { + HEAP32[$vararg_buffer>>2] = $4; + _TraceLog(0,8278,$vararg_buffer); + } + $6 = HEAP32[$1>>2]|0; + $7 = ($6|0)==(0); + if (!($7)) { + _LoadDefaultShaderLocations($1); + } + dest=$0; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadDefaultBuffers() { + var $$05365 = 0, $$05467 = 0, $$05770 = 0, $$05972 = 0, $$066 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond75 = 0, $exitcond78 = 0, $exitcond80 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer17 = 0; + var $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer17 = sp + 48|0; + $vararg_buffer14 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $0 = (_malloc(24576)|0); + HEAP32[(20056)>>2] = $0; + $1 = (_malloc(8192)|0); + HEAP32[(20064)>>2] = $1; + HEAP32[(20060)>>2] = 0; + HEAP32[(20068)>>2] = 0; + _memset(($0|0),0,24576)|0; + $$05972 = 0; + while(1) { + $2 = HEAP32[(20064)>>2]|0; + $3 = (($2) + ($$05972)|0); + HEAP8[$3>>0] = 0; + $4 = (($$05972) + 1)|0; + $exitcond80 = ($4|0)==(8192); + if ($exitcond80) { + break; + } else { + $$05972 = $4; + } + } + HEAP32[5011] = 0; + HEAP32[(20052)>>2] = 0; + HEAP32[(20048)>>2] = 0; + $5 = (_malloc(73728)|0); + HEAP32[(20104)>>2] = $5; + $6 = (_malloc(24576)|0); + HEAP32[(20112)>>2] = $6; + HEAP32[(20108)>>2] = 0; + HEAP32[(20116)>>2] = 0; + _memset(($5|0),0,73728)|0; + $$05770 = 0; + while(1) { + $7 = HEAP32[(20112)>>2]|0; + $8 = (($7) + ($$05770)|0); + HEAP8[$8>>0] = 0; + $9 = (($$05770) + 1)|0; + $exitcond78 = ($9|0)==(24576); + if ($exitcond78) { + break; + } else { + $$05770 = $9; + } + } + HEAP32[5023] = 0; + HEAP32[(20100)>>2] = 0; + HEAP32[(20096)>>2] = 0; + $10 = (_malloc(49152)|0); + HEAP32[(20152)>>2] = $10; + $11 = (_malloc(32768)|0); + HEAP32[(20156)>>2] = $11; + $12 = (_malloc(16384)|0); + HEAP32[(20160)>>2] = $12; + $13 = (_malloc(12288)|0); + HEAP32[(20164)>>2] = $13; + $14 = HEAP32[(20152)>>2]|0; + _memset(($14|0),0,49152)|0; + $15 = HEAP32[(20156)>>2]|0; + _memset(($15|0),0,32768)|0; + $$05467 = 0; + while(1) { + $17 = HEAP32[(20160)>>2]|0; + $18 = (($17) + ($$05467)|0); + HEAP8[$18>>0] = 0; + $19 = (($$05467) + 1)|0; + $exitcond75 = ($19|0)==(16384); + if ($exitcond75) { + break; + } else { + $$05467 = $19; + } + } + $16 = HEAP32[(20164)>>2]|0; + $$05365 = 0;$$066 = 0; + while(1) { + $22 = $$05365 << 2; + $23 = $22&65535; + $24 = (($16) + ($$066<<1)|0); + HEAP16[$24>>1] = $23; + $25 = $22 | 1; + $26 = $25&65535; + $27 = $$066 | 1; + $28 = (($16) + ($27<<1)|0); + HEAP16[$28>>1] = $26; + $29 = $22 | 2; + $30 = $29&65535; + $31 = (($$066) + 2)|0; + $32 = (($16) + ($31<<1)|0); + HEAP16[$32>>1] = $30; + $33 = (($$066) + 3)|0; + $34 = (($16) + ($33<<1)|0); + HEAP16[$34>>1] = $23; + $35 = (($$066) + 4)|0; + $36 = (($16) + ($35<<1)|0); + HEAP16[$36>>1] = $30; + $37 = $22 | 3; + $38 = $37&65535; + $39 = (($$066) + 5)|0; + $40 = (($16) + ($39<<1)|0); + HEAP16[$40>>1] = $38; + $41 = (($$05365) + 1)|0; + $42 = (($$066) + 6)|0; + $exitcond = ($41|0)==(1024); + if ($exitcond) { + break; + } else { + $$05365 = $41;$$066 = $42; + } + } + HEAP32[5035] = 0; + HEAP32[(20144)>>2] = 0; + HEAP32[(20148)>>2] = 0; + _TraceLog(0,6819,$vararg_buffer); + $20 = HEAP32[4713]|0; + $21 = ($20|0)==(0); + if (!($21)) { + $43 = HEAP32[4714]|0; + FUNCTION_TABLE_vii[$43 & 63](1,(20072)); + $44 = HEAP32[4715]|0; + $45 = HEAP32[(20072)>>2]|0; + FUNCTION_TABLE_vi[$44 & 31]($45); + } + _glGenBuffers(2,((20076)|0)); + $46 = HEAP32[(20076)>>2]|0; + _glBindBuffer(34962,($46|0)); + $47 = HEAP32[(20056)>>2]|0; + _glBufferData(34962,24576,($47|0),35048); + $48 = HEAP32[(18944)>>2]|0; + _glEnableVertexAttribArray(($48|0)); + $49 = HEAP32[(18944)>>2]|0; + _glVertexAttribPointer(($49|0),3,5126,0,0,(0|0)); + _glGenBuffers(2,((20080)|0)); + $50 = HEAP32[(20080)>>2]|0; + _glBindBuffer(34962,($50|0)); + $51 = HEAP32[(20064)>>2]|0; + _glBufferData(34962,8192,($51|0),35048); + $52 = HEAP32[(18964)>>2]|0; + _glEnableVertexAttribArray(($52|0)); + $53 = HEAP32[(18964)>>2]|0; + _glVertexAttribPointer(($53|0),4,5121,1,0,(0|0)); + $54 = HEAP32[4713]|0; + $55 = ($54|0)==(0); + if ($55) { + $57 = HEAP32[(20076)>>2]|0; + $58 = HEAP32[(20080)>>2]|0; + HEAP32[$vararg_buffer3>>2] = $57; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $58; + _TraceLog(0,6957,$vararg_buffer3); + } else { + $56 = HEAP32[(20072)>>2]|0; + HEAP32[$vararg_buffer1>>2] = $56; + _TraceLog(0,6892,$vararg_buffer1); + } + $59 = HEAP32[4713]|0; + $60 = ($59|0)==(0); + if (!($60)) { + $61 = HEAP32[4714]|0; + FUNCTION_TABLE_vii[$61 & 63](1,(20120)); + $62 = HEAP32[4715]|0; + $63 = HEAP32[(20120)>>2]|0; + FUNCTION_TABLE_vi[$62 & 31]($63); + } + _glGenBuffers(1,((20124)|0)); + $64 = HEAP32[(20124)>>2]|0; + _glBindBuffer(34962,($64|0)); + $65 = HEAP32[(20104)>>2]|0; + _glBufferData(34962,73728,($65|0),35048); + $66 = HEAP32[(18944)>>2]|0; + _glEnableVertexAttribArray(($66|0)); + $67 = HEAP32[(18944)>>2]|0; + _glVertexAttribPointer(($67|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((20128)|0)); + $68 = HEAP32[(20128)>>2]|0; + _glBindBuffer(34962,($68|0)); + $69 = HEAP32[(20112)>>2]|0; + _glBufferData(34962,24576,($69|0),35048); + $70 = HEAP32[(18964)>>2]|0; + _glEnableVertexAttribArray(($70|0)); + $71 = HEAP32[(18964)>>2]|0; + _glVertexAttribPointer(($71|0),4,5121,1,0,(0|0)); + $72 = HEAP32[4713]|0; + $73 = ($72|0)==(0); + if ($73) { + $75 = HEAP32[(20124)>>2]|0; + $76 = HEAP32[(20128)>>2]|0; + HEAP32[$vararg_buffer10>>2] = $75; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $76; + _TraceLog(0,7103,$vararg_buffer10); + } else { + $74 = HEAP32[(20120)>>2]|0; + HEAP32[$vararg_buffer7>>2] = $74; + _TraceLog(0,7034,$vararg_buffer7); + } + $77 = HEAP32[4713]|0; + $78 = ($77|0)==(0); + if (!($78)) { + $79 = HEAP32[4714]|0; + FUNCTION_TABLE_vii[$79 & 63](1,(20168)); + $80 = HEAP32[4715]|0; + $81 = HEAP32[(20168)>>2]|0; + FUNCTION_TABLE_vi[$80 & 31]($81); + } + _glGenBuffers(1,((20172)|0)); + $82 = HEAP32[(20172)>>2]|0; + _glBindBuffer(34962,($82|0)); + $83 = HEAP32[(20152)>>2]|0; + _glBufferData(34962,49152,($83|0),35048); + $84 = HEAP32[(18944)>>2]|0; + _glEnableVertexAttribArray(($84|0)); + $85 = HEAP32[(18944)>>2]|0; + _glVertexAttribPointer(($85|0),3,5126,0,0,(0|0)); + _glGenBuffers(1,((20176)|0)); + $86 = HEAP32[(20176)>>2]|0; + _glBindBuffer(34962,($86|0)); + $87 = HEAP32[(20156)>>2]|0; + _glBufferData(34962,32768,($87|0),35048); + $88 = HEAP32[(18948)>>2]|0; + _glEnableVertexAttribArray(($88|0)); + $89 = HEAP32[(18948)>>2]|0; + _glVertexAttribPointer(($89|0),2,5126,0,0,(0|0)); + _glGenBuffers(1,((20180)|0)); + $90 = HEAP32[(20180)>>2]|0; + _glBindBuffer(34962,($90|0)); + $91 = HEAP32[(20160)>>2]|0; + _glBufferData(34962,16384,($91|0),35048); + $92 = HEAP32[(18964)>>2]|0; + _glEnableVertexAttribArray(($92|0)); + $93 = HEAP32[(18964)>>2]|0; + _glVertexAttribPointer(($93|0),4,5121,1,0,(0|0)); + _glGenBuffers(1,((20184)|0)); + $94 = HEAP32[(20184)>>2]|0; + _glBindBuffer(34963,($94|0)); + $95 = HEAP32[(20164)>>2]|0; + _glBufferData(34963,12288,($95|0),35044); + $96 = HEAP32[4713]|0; + $97 = ($96|0)==(0); + if ($97) { + $99 = HEAP32[(20172)>>2]|0; + $100 = HEAP32[(20176)>>2]|0; + $101 = HEAP32[(20180)>>2]|0; + $102 = HEAP32[(20184)>>2]|0; + HEAP32[$vararg_buffer17>>2] = $99; + $vararg_ptr20 = ((($vararg_buffer17)) + 4|0); + HEAP32[$vararg_ptr20>>2] = $100; + $vararg_ptr21 = ((($vararg_buffer17)) + 8|0); + HEAP32[$vararg_ptr21>>2] = $101; + $vararg_ptr22 = ((($vararg_buffer17)) + 12|0); + HEAP32[$vararg_ptr22>>2] = $102; + _TraceLog(0,7249,$vararg_buffer17); + } else { + $98 = HEAP32[(20168)>>2]|0; + HEAP32[$vararg_buffer14>>2] = $98; + _TraceLog(0,7184,$vararg_buffer14); + } + $103 = HEAP32[4713]|0; + $104 = ($103|0)==(0); + if ($104) { + STACKTOP = sp;return; + } + $105 = HEAP32[4715]|0; + FUNCTION_TABLE_vi[$105 & 31](0); + STACKTOP = sp;return; +} +function _LoadShaderProgram($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$alloca_mul = 0, $$alloca_mul34 = 0, $$alloca_mul36 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); + $vararg_buffer22 = sp + 64|0; + $vararg_buffer19 = sp + 56|0; + $vararg_buffer16 = sp + 48|0; + $vararg_buffer13 = sp + 40|0; + $vararg_buffer10 = sp + 32|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 80|0; + $3 = sp + 76|0; + $4 = sp + 72|0; + $5 = sp + 68|0; + $6 = (_glCreateShader(35633)|0); + $7 = (_glCreateShader(35632)|0); + HEAP32[$2>>2] = $0; + HEAP32[$3>>2] = $1; + _glShaderSource(($6|0),1,($2|0),(0|0)); + _glShaderSource(($7|0),1,($3|0),(0|0)); + HEAP32[$4>>2] = 0; + _glCompileShader(($6|0)); + _glGetShaderiv(($6|0),35713,($4|0)); + $8 = HEAP32[$4>>2]|0; + $9 = ($8|0)==(1); + if ($9) { + HEAP32[$vararg_buffer4>>2] = $6; + _TraceLog(0,8582,$vararg_buffer4); + } else { + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(2,8530,$vararg_buffer); + HEAP32[$vararg_buffer>>2] = 0; + _glGetShaderiv(($6|0),35716,($vararg_buffer|0)); + $10 = HEAP32[$vararg_buffer>>2]|0; + $11 = (_llvm_stacksave()|0); + $$alloca_mul = $10; + $12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul)|0)+15)&-16)|0);; + $13 = HEAP32[$vararg_buffer>>2]|0; + _glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0)); + HEAP32[$vararg_buffer1>>2] = $12; + _TraceLog(0,8579,$vararg_buffer1); + _llvm_stackrestore(($11|0)); + } + _glCompileShader(($7|0)); + _glGetShaderiv(($7|0),35713,($4|0)); + $14 = HEAP32[$4>>2]|0; + $15 = ($14|0)==(1); + if ($15) { + HEAP32[$vararg_buffer13>>2] = $7; + _TraceLog(0,8683,$vararg_buffer13); + } else { + HEAP32[$vararg_buffer7>>2] = $7; + _TraceLog(2,8632,$vararg_buffer7); + HEAP32[$vararg_buffer7>>2] = 0; + _glGetShaderiv(($7|0),35716,($vararg_buffer7|0)); + $16 = HEAP32[$vararg_buffer7>>2]|0; + $17 = (_llvm_stacksave()|0); + $$alloca_mul34 = $16; + $18 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul34)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul34)|0)+15)&-16)|0);; + $19 = HEAP32[$vararg_buffer7>>2]|0; + _glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0)); + HEAP32[$vararg_buffer10>>2] = $18; + _TraceLog(0,8579,$vararg_buffer10); + _llvm_stackrestore(($17|0)); + } + $20 = (_glCreateProgram()|0); + _glAttachShader(($20|0),($6|0)); + _glAttachShader(($20|0),($7|0)); + _glBindAttribLocation(($20|0),0,(8374|0)); + _glBindAttribLocation(($20|0),1,(8389|0)); + _glBindAttribLocation(($20|0),2,(8420|0)); + _glBindAttribLocation(($20|0),3,(8447|0)); + _glBindAttribLocation(($20|0),4,(8433|0)); + _glBindAttribLocation(($20|0),5,(8404|0)); + _glLinkProgram(($20|0)); + _glGetProgramiv(($20|0),35714,($4|0)); + $21 = HEAP32[$4>>2]|0; + $22 = ($21|0)==(0); + if ($22) { + HEAP32[$vararg_buffer16>>2] = $20; + _TraceLog(2,8735,$vararg_buffer16); + HEAP32[$vararg_buffer16>>2] = 0; + _glGetProgramiv(($20|0),35716,($vararg_buffer16|0)); + $23 = HEAP32[$vararg_buffer16>>2]|0; + $24 = (_llvm_stacksave()|0); + $$alloca_mul36 = $23; + $25 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul36)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(((((1*$$alloca_mul36)|0)+15)&-16)|0);; + $26 = HEAP32[$vararg_buffer16>>2]|0; + _glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0)); + HEAP32[$vararg_buffer19>>2] = $25; + _TraceLog(0,8579,$vararg_buffer19); + _glDeleteProgram(($20|0)); + _llvm_stackrestore(($24|0)); + $$0 = 0; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } else { + HEAP32[$vararg_buffer22>>2] = $20; + _TraceLog(0,8781,$vararg_buffer22); + $$0 = $20; + _glDeleteShader(($6|0)); + _glDeleteShader(($7|0)); + STACKTOP = sp;return ($$0|0); + } + return (0)|0; +} +function _LoadDefaultShaderLocations($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = (_glGetAttribLocation(($1|0),(8374|0))|0); + $3 = ((($0)) + 4|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$0>>2]|0; + $5 = (_glGetAttribLocation(($4|0),(8389|0))|0); + $6 = ((($0)) + 8|0); + HEAP32[$6>>2] = $5; + $7 = HEAP32[$0>>2]|0; + $8 = (_glGetAttribLocation(($7|0),(8404|0))|0); + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = $8; + $10 = HEAP32[$0>>2]|0; + $11 = (_glGetAttribLocation(($10|0),(8420|0))|0); + $12 = ((($0)) + 16|0); + HEAP32[$12>>2] = $11; + $13 = HEAP32[$0>>2]|0; + $14 = (_glGetAttribLocation(($13|0),(8433|0))|0); + $15 = ((($0)) + 20|0); + HEAP32[$15>>2] = $14; + $16 = HEAP32[$0>>2]|0; + $17 = (_glGetAttribLocation(($16|0),(8447|0))|0); + $18 = ((($0)) + 24|0); + HEAP32[$18>>2] = $17; + $19 = HEAP32[$0>>2]|0; + $20 = (_glGetUniformLocation(($19|0),(8459|0))|0); + $21 = ((($0)) + 28|0); + HEAP32[$21>>2] = $20; + $22 = HEAP32[$0>>2]|0; + $23 = (_glGetUniformLocation(($22|0),(8469|0))|0); + $24 = ((($0)) + 32|0); + HEAP32[$24>>2] = $23; + $25 = HEAP32[$0>>2]|0; + $26 = (_glGetUniformLocation(($25|0),(8480|0))|0); + $27 = ((($0)) + 36|0); + HEAP32[$27>>2] = $26; + $28 = HEAP32[$0>>2]|0; + $29 = (_glGetUniformLocation(($28|0),(8491|0))|0); + $30 = ((($0)) + 40|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$0>>2]|0; + $32 = (_glGetUniformLocation(($31|0),(8503|0))|0); + $33 = ((($0)) + 44|0); + HEAP32[$33>>2] = $32; + $34 = HEAP32[$0>>2]|0; + $35 = (_glGetUniformLocation(($34|0),(8512|0))|0); + $36 = ((($0)) + 48|0); + HEAP32[$36>>2] = $35; + $37 = HEAP32[$0>>2]|0; + $38 = (_glGetUniformLocation(($37|0),(8521|0))|0); + $39 = ((($0)) + 52|0); + HEAP32[$39>>2] = $38; + return; +} +function _IsMouseButtonPressed($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (21369 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (21372 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(1); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _IsMouseButtonReleased($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (21369 + ($0)|0); + $2 = HEAP8[$1>>0]|0; + $3 = (21372 + ($0)|0); + $4 = HEAP8[$3>>0]|0; + $5 = ($2<<24>>24)!=($4<<24>>24); + $6 = ($2<<24>>24)==(0); + $or$cond = $6 & $5; + $$0 = $or$cond&1; + return ($$0|0); +} +function _rlClearScreenBuffers() { + var label = 0, sp = 0; + sp = STACKTOP; + _glClear(16640); + return; +} +function _CloseWindow() { + var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultFont(); + _rlglClose(); + $0 = HEAP32[4632]|0; + _glfwDestroyWindow(($0|0)); + _glfwTerminate(); + _TraceLog(0,9093,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadDefaultFont() { + var $$byval_copy = 0, $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $$byval_copy = sp; + ;HEAP32[$$byval_copy>>2]=HEAP32[18568>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[18568+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[18568+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[18568+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[18568+16>>2]|0; + _UnloadTexture($$byval_copy); + $0 = HEAP32[(18596)>>2]|0; + _free($0); + STACKTOP = sp;return; +} +function _rlglClose() { + var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + _UnloadDefaultShader(); + _UnloadDefaultBuffers(); + _glDeleteTextures(1,(18880|0)); + $0 = HEAP32[4720]|0; + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(0,9120,$vararg_buffer); + $1 = HEAP32[4750]|0; + _free($1); + STACKTOP = sp;return; +} +function _UnloadDefaultShader() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + _glUseProgram(0); + $0 = HEAP32[4721]|0; + _glDeleteProgram(($0|0)); + return; +} +function _UnloadDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4713]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[4715]|0; + FUNCTION_TABLE_vi[$2 & 31](0); + } + _glDisableVertexAttribArray(0); + _glDisableVertexAttribArray(1); + _glDisableVertexAttribArray(2); + _glDisableVertexAttribArray(3); + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + _glDeleteBuffers(1,((20076)|0)); + _glDeleteBuffers(1,((20080)|0)); + _glDeleteBuffers(1,((20124)|0)); + _glDeleteBuffers(1,((20128)|0)); + _glDeleteBuffers(1,((20172)|0)); + _glDeleteBuffers(1,((20176)|0)); + _glDeleteBuffers(1,((20180)|0)); + _glDeleteBuffers(1,((20184)|0)); + $3 = HEAP32[4713]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4716]|0; + FUNCTION_TABLE_vii[$5 & 63](1,(20072)); + $6 = HEAP32[4716]|0; + FUNCTION_TABLE_vii[$6 & 63](1,(20120)); + $7 = HEAP32[4716]|0; + FUNCTION_TABLE_vii[$7 & 63](1,(20168)); + } + $8 = HEAP32[(20056)>>2]|0; + _free($8); + $9 = HEAP32[(20064)>>2]|0; + _free($9); + $10 = HEAP32[(20104)>>2]|0; + _free($10); + $11 = HEAP32[(20112)>>2]|0; + _free($11); + $12 = HEAP32[(20152)>>2]|0; + _free($12); + $13 = HEAP32[(20156)>>2]|0; + _free($13); + $14 = HEAP32[(20160)>>2]|0; + _free($14); + $15 = HEAP32[(20164)>>2]|0; + _free($15); + return; +} +function _UnloadTexture($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = HEAP32[$0>>2]|0; + $2 = ($1|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _rlDeleteTextures($1); + $3 = HEAP32[$0>>2]|0; + HEAP32[$vararg_buffer>>2] = $3; + _TraceLog(0,9185,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteTextures($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if (!($2)) { + _glDeleteTextures(1,($1|0)); + } + STACKTOP = sp;return; +} +function _BeginDrawing() { + var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $downscaleView$byval_copy = sp; + $0 = (+_GetTime()); + HEAPF64[2270] = $0; + $1 = +HEAPF64[2253]; + $2 = $0 - $1; + HEAPF64[2271] = $2; + HEAPF64[2253] = $0; + _rlClearScreenBuffers(); + _rlLoadIdentity(); + dest=$downscaleView$byval_copy; src=18624; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($downscaleView$byval_copy)|0); + _rlMultMatrixf(20196); + STACKTOP = sp;return; +} +function _MatrixToFloat($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + HEAP32[5049] = $1; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + HEAP32[(20200)>>2] = $3; + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[(20204)>>2] = $5; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + HEAP32[(20208)>>2] = $7; + $8 = ((($0)) + 16|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[(20212)>>2] = $9; + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + HEAP32[(20216)>>2] = $11; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[(20220)>>2] = $13; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[(20224)>>2] = $15; + $16 = ((($0)) + 32|0); + $17 = HEAP32[$16>>2]|0; + HEAP32[(20228)>>2] = $17; + $18 = ((($0)) + 36|0); + $19 = HEAP32[$18>>2]|0; + HEAP32[(20232)>>2] = $19; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[(20236)>>2] = $21; + $22 = ((($0)) + 44|0); + $23 = HEAP32[$22>>2]|0; + HEAP32[(20240)>>2] = $23; + $24 = ((($0)) + 48|0); + $25 = HEAP32[$24>>2]|0; + HEAP32[(20244)>>2] = $25; + $26 = ((($0)) + 52|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[(20248)>>2] = $27; + $28 = ((($0)) + 56|0); + $29 = HEAP32[$28>>2]|0; + HEAP32[(20252)>>2] = $29; + $30 = ((($0)) + 60|0); + $31 = HEAP32[$30>>2]|0; + HEAP32[(20256)>>2] = $31; + return (20196|0); +} +function _rlMultMatrixf($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + $3 = HEAP32[$0>>2]|0; + HEAP32[$1>>2] = $3; + $4 = ((($1)) + 4|0); + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + HEAP32[$4>>2] = $6; + $7 = ((($1)) + 8|0); + $8 = ((($0)) + 8|0); + $9 = HEAP32[$8>>2]|0; + HEAP32[$7>>2] = $9; + $10 = ((($1)) + 12|0); + $11 = ((($0)) + 12|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($1)) + 16|0); + $14 = ((($0)) + 16|0); + $15 = HEAP32[$14>>2]|0; + HEAP32[$13>>2] = $15; + $16 = ((($1)) + 20|0); + $17 = ((($0)) + 20|0); + $18 = HEAP32[$17>>2]|0; + HEAP32[$16>>2] = $18; + $19 = ((($1)) + 24|0); + $20 = ((($0)) + 24|0); + $21 = HEAP32[$20>>2]|0; + HEAP32[$19>>2] = $21; + $22 = ((($1)) + 28|0); + $23 = ((($0)) + 28|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$22>>2] = $24; + $25 = ((($1)) + 32|0); + $26 = ((($0)) + 32|0); + $27 = HEAP32[$26>>2]|0; + HEAP32[$25>>2] = $27; + $28 = ((($1)) + 36|0); + $29 = ((($0)) + 36|0); + $30 = HEAP32[$29>>2]|0; + HEAP32[$28>>2] = $30; + $31 = ((($1)) + 40|0); + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + HEAP32[$31>>2] = $33; + $34 = ((($1)) + 44|0); + $35 = ((($0)) + 44|0); + $36 = HEAP32[$35>>2]|0; + HEAP32[$34>>2] = $36; + $37 = ((($1)) + 48|0); + $38 = ((($0)) + 48|0); + $39 = HEAP32[$38>>2]|0; + HEAP32[$37>>2] = $39; + $40 = ((($1)) + 52|0); + $41 = ((($0)) + 52|0); + $42 = HEAP32[$41>>2]|0; + HEAP32[$40>>2] = $42; + $43 = ((($1)) + 56|0); + $44 = ((($0)) + 56|0); + $45 = HEAP32[$44>>2]|0; + HEAP32[$43>>2] = $45; + $46 = ((($1)) + 60|0); + $47 = ((($0)) + 60|0); + $48 = HEAP32[$47>>2]|0; + HEAP32[$46>>2] = $48; + $49 = HEAP32[4679]|0; + dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$$byval_copy,$$byval_copy1); + dest=$49; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _EndDrawing() { + var $0 = 0.0, $1 = 0.0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _SwapBuffers(); + _PollInputEvents(); + $0 = (+_GetTime()); + HEAPF64[2270] = $0; + $1 = +HEAPF64[2253]; + $2 = $0 - $1; + HEAPF64[2272] = $2; + HEAPF64[2253] = $0; + $3 = +HEAPF64[2271]; + $4 = $2 + $3; + HEAPF64[2273] = $4; + $5 = +HEAPF64[2250]; + $6 = $4 < $5; + if (!($6)) { + return; + } + $7 = $5 - $4; + $8 = $7 * 1000.0; + $9 = $8; + _Wait($9); + $10 = (+_GetTime()); + HEAPF64[2270] = $10; + $11 = +HEAPF64[2253]; + $12 = $10 - $11; + HEAPF64[2253] = $10; + $13 = +HEAPF64[2273]; + $14 = $12 + $13; + HEAPF64[2273] = $14; + return; +} +function _rlglDraw() { + var label = 0, sp = 0; + sp = STACKTOP; + _UpdateDefaultBuffers(); + _DrawDefaultBuffers(); + return; +} +function _SwapBuffers() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[4632]|0; + _glfwSwapBuffers(($0|0)); + return; +} +function _PollInputEvents() { + var $$04857 = 0, $$05160 = 0, $$058 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0.0, $40 = 0; + var $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep67 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1456|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1456|0); + $0 = sp + 1440|0; + $1 = sp + 1432|0; + $2 = sp; + _UpdateGestures(); + HEAP32[751] = -1; + HEAP32[753] = -1; + HEAP32[5065] = 0; + $3 = HEAP32[4632]|0; + _glfwGetCursorPos(($3|0),($0|0),($1|0)); + $4 = +HEAPF64[$0>>3]; + $5 = $4; + HEAPF32[4498] = $5; + $6 = +HEAPF64[$1>>3]; + $7 = $6; + HEAPF32[(17996)>>2] = $7; + _memcpy((21887|0),(21375|0),512)|0; + ;HEAP8[21372>>0]=HEAP8[21369>>0]|0;HEAP8[21372+1>>0]=HEAP8[21369+1>>0]|0;HEAP8[21372+2>>0]=HEAP8[21369+2>>0]|0; + $8 = HEAP32[5048]|0; + HEAP32[4635] = $8; + HEAP32[5048] = 0; + $9 = (_emscripten_get_num_gamepads()|0); + $10 = ($9|0)>(0); + if (!($10)) { + STACKTOP = sp;return; + } + $11 = ((($2)) + 12|0); + $12 = ((($2)) + 8|0); + $$05160 = 0; + while(1) { + $scevgep = (22399 + ($$05160<<5)|0); + $scevgep67 = (22527 + ($$05160<<5)|0); + dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); + $13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0); + $14 = ($13|0)==(0); + if ($14) { + $15 = HEAP32[$11>>2]|0; + $16 = ($15|0)>(0); + if ($16) { + $17 = HEAP32[$11>>2]|0; + $$04857 = 0; + while(1) { + $21 = (((($2)) + 1040|0) + ($$04857<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = ($22|0)==(1); + $24 = ((22527 + ($$05160<<5)|0) + ($$04857)|0); + if ($23) { + HEAP8[$24>>0] = 1; + HEAP32[753] = $$04857; + } else { + HEAP8[$24>>0] = 0; + } + $25 = (($$04857) + 1)|0; + $26 = ($25|0)<($17|0); + $27 = ($25|0)<(32); + $28 = $27 & $26; + if ($28) { + $$04857 = $25; + } else { + break; + } + } + } + $18 = HEAP32[$12>>2]|0; + $19 = ($18|0)>(0); + if ($19) { + $20 = HEAP32[$12>>2]|0; + $$058 = 0; + while(1) { + $29 = (((($2)) + 16|0) + ($$058<<3)|0); + $30 = +HEAPF64[$29>>3]; + $31 = $30; + $32 = ((20264 + ($$05160<<5)|0) + ($$058<<2)|0); + HEAPF32[$32>>2] = $31; + $33 = (($$058) + 1)|0; + $34 = ($33|0)<($20|0); + $35 = ($33|0)<(8); + $36 = $35 & $34; + if ($36) { + $$058 = $33; + } else { + $$lcssa = $20; + break; + } + } + } else { + $$lcssa = $18; + } + HEAP32[5065] = $$lcssa; + } + $37 = (($$05160) + 1)|0; + $38 = ($37|0)<($9|0); + $39 = ($37|0)<(4); + $40 = $38 & $39; + if ($40) { + $$05160 = $37; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _Wait($0) { + $0 = +$0; + var $1 = 0.0, $2 = 0.0, $3 = 0.0, $4 = 0.0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (+_GetTime()); + $2 = 0.0 - $1; + $3 = $0 / 1000.0; + $4 = $3; + $5 = $2 < $4; + if (!($5)) { + return; + } + while(1) { + $6 = (+_GetTime()); + $7 = $6 - $1; + $8 = $7 < $4; + if (!($8)) { + break; + } + } + return; +} +function _UpdateDefaultBuffers() { + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[5011]|0; + $1 = ($0|0)>(0); + if ($1) { + $2 = HEAP32[4713]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = HEAP32[4715]|0; + $5 = HEAP32[(20072)>>2]|0; + FUNCTION_TABLE_vi[$4 & 31]($5); + } + $6 = HEAP32[(20076)>>2]|0; + _glBindBuffer(34962,($6|0)); + $7 = HEAP32[5011]|0; + $8 = ($7*12)|0; + $9 = HEAP32[(20056)>>2]|0; + _glBufferSubData(34962,0,($8|0),($9|0)); + $10 = HEAP32[(20080)>>2]|0; + _glBindBuffer(34962,($10|0)); + $11 = HEAP32[(20052)>>2]|0; + $12 = $11 << 2; + $13 = HEAP32[(20064)>>2]|0; + _glBufferSubData(34962,0,($12|0),($13|0)); + } + $14 = HEAP32[5023]|0; + $15 = ($14|0)>(0); + if ($15) { + $16 = HEAP32[4713]|0; + $17 = ($16|0)==(0); + if (!($17)) { + $18 = HEAP32[4715]|0; + $19 = HEAP32[(20120)>>2]|0; + FUNCTION_TABLE_vi[$18 & 31]($19); + } + $20 = HEAP32[(20124)>>2]|0; + _glBindBuffer(34962,($20|0)); + $21 = HEAP32[5023]|0; + $22 = ($21*12)|0; + $23 = HEAP32[(20104)>>2]|0; + _glBufferSubData(34962,0,($22|0),($23|0)); + $24 = HEAP32[(20128)>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[(20100)>>2]|0; + $26 = $25 << 2; + $27 = HEAP32[(20112)>>2]|0; + _glBufferSubData(34962,0,($26|0),($27|0)); + } + $28 = HEAP32[5035]|0; + $29 = ($28|0)>(0); + if ($29) { + $30 = HEAP32[4713]|0; + $31 = ($30|0)==(0); + if (!($31)) { + $32 = HEAP32[4715]|0; + $33 = HEAP32[(20168)>>2]|0; + FUNCTION_TABLE_vi[$32 & 31]($33); + } + $34 = HEAP32[(20172)>>2]|0; + _glBindBuffer(34962,($34|0)); + $35 = HEAP32[5035]|0; + $36 = ($35*12)|0; + $37 = HEAP32[(20152)>>2]|0; + _glBufferSubData(34962,0,($36|0),($37|0)); + $38 = HEAP32[(20176)>>2]|0; + _glBindBuffer(34962,($38|0)); + $39 = HEAP32[5035]|0; + $40 = $39 << 3; + $41 = HEAP32[(20156)>>2]|0; + _glBufferSubData(34962,0,($40|0),($41|0)); + $42 = HEAP32[(20180)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[5035]|0; + $44 = $43 << 2; + $45 = HEAP32[(20160)>>2]|0; + _glBufferSubData(34962,0,($44|0),($45|0)); + } + $46 = HEAP32[4713]|0; + $47 = ($46|0)==(0); + if ($47) { + return; + } + $48 = HEAP32[4715]|0; + FUNCTION_TABLE_vi[$48 & 31](0); + return; +} +function _DrawDefaultBuffers() { + var $$ = 0, $$02830 = 0, $$02932 = 0, $$031 = 0, $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; + var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; + var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; + var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $modelview$byval_copy = 0; + var $or$cond = 0, $or$cond3 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(320|0); + $$byval_copy2 = sp + 256|0; + $modelview$byval_copy = sp + 192|0; + $0 = sp + 128|0; + $1 = sp + 64|0; + $2 = sp; + dest=$0; src=18720; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$1; src=18784; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $3 = HEAP32[5098]|0; + $4 = ($3|0)!=(0); + $$ = $4 ? 2 : 1; + $$02932 = 0; + while(1) { + if ($4) { + dest=$modelview$byval_copy; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2); + } + $8 = HEAP32[5011]|0; + $9 = ($8|0)>(0); + $10 = HEAP32[5023]|0; + $11 = ($10|0)>(0); + $or$cond = $9 | $11; + $12 = HEAP32[5035]|0; + $13 = ($12|0)>(0); + $or$cond3 = $or$cond | $13; + if ($or$cond3) { + $14 = HEAP32[4735]|0; + _glUseProgram(($14|0)); + dest=$modelview$byval_copy; src=18784; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=18720; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2); + $15 = HEAP32[(18968)>>2]|0; + dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $16 = (_MatrixToFloat($$byval_copy2)|0); + _glUniformMatrix4fv(($15|0),1,0,($16|0)); + $17 = HEAP32[(18972)>>2]|0; + _glUniform4f(($17|0),1.0,1.0,1.0,1.0); + $18 = HEAP32[(18984)>>2]|0; + _glUniform1i(($18|0),0); + } + $19 = HEAP32[5011]|0; + $20 = ($19|0)>(0); + if ($20) { + $21 = HEAP32[4720]|0; + _glBindTexture(3553,($21|0)); + $22 = HEAP32[4713]|0; + $23 = ($22|0)==(0); + if ($23) { + $26 = HEAP32[(20076)>>2]|0; + _glBindBuffer(34962,($26|0)); + $27 = HEAP32[(18944)>>2]|0; + _glVertexAttribPointer(($27|0),3,5126,0,0,(0|0)); + $28 = HEAP32[(18944)>>2]|0; + _glEnableVertexAttribArray(($28|0)); + $29 = HEAP32[(20080)>>2]|0; + _glBindBuffer(34962,($29|0)); + $30 = HEAP32[(18964)>>2]|0; + _glVertexAttribPointer(($30|0),4,5121,1,0,(0|0)); + $31 = HEAP32[(18964)>>2]|0; + _glEnableVertexAttribArray(($31|0)); + } else { + $24 = HEAP32[4715]|0; + $25 = HEAP32[(20072)>>2]|0; + FUNCTION_TABLE_vi[$24 & 31]($25); + } + $32 = HEAP32[5011]|0; + _glDrawArrays(1,0,($32|0)); + $33 = HEAP32[4713]|0; + $34 = ($33|0)==(0); + if ($34) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $35 = HEAP32[5023]|0; + $36 = ($35|0)>(0); + if ($36) { + $37 = HEAP32[4720]|0; + _glBindTexture(3553,($37|0)); + $38 = HEAP32[4713]|0; + $39 = ($38|0)==(0); + if ($39) { + $42 = HEAP32[(20124)>>2]|0; + _glBindBuffer(34962,($42|0)); + $43 = HEAP32[(18944)>>2]|0; + _glVertexAttribPointer(($43|0),3,5126,0,0,(0|0)); + $44 = HEAP32[(18944)>>2]|0; + _glEnableVertexAttribArray(($44|0)); + $45 = HEAP32[(20128)>>2]|0; + _glBindBuffer(34962,($45|0)); + $46 = HEAP32[(18964)>>2]|0; + _glVertexAttribPointer(($46|0),4,5121,1,0,(0|0)); + $47 = HEAP32[(18964)>>2]|0; + _glEnableVertexAttribArray(($47|0)); + } else { + $40 = HEAP32[4715]|0; + $41 = HEAP32[(20120)>>2]|0; + FUNCTION_TABLE_vi[$40 & 31]($41); + } + $48 = HEAP32[5023]|0; + _glDrawArrays(4,0,($48|0)); + $49 = HEAP32[4713]|0; + $50 = ($49|0)==(0); + if ($50) { + _glBindBuffer(34962,0); + } + _glBindTexture(3553,0); + } + $51 = HEAP32[5035]|0; + $52 = ($51|0)>(0); + if ($52) { + $53 = HEAP32[4713]|0; + $54 = ($53|0)==(0); + if ($54) { + $57 = HEAP32[(20172)>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[(18944)>>2]|0; + _glVertexAttribPointer(($58|0),3,5126,0,0,(0|0)); + $59 = HEAP32[(18944)>>2]|0; + _glEnableVertexAttribArray(($59|0)); + $60 = HEAP32[(20176)>>2]|0; + _glBindBuffer(34962,($60|0)); + $61 = HEAP32[(18948)>>2]|0; + _glVertexAttribPointer(($61|0),2,5126,0,0,(0|0)); + $62 = HEAP32[(18948)>>2]|0; + _glEnableVertexAttribArray(($62|0)); + $63 = HEAP32[(20180)>>2]|0; + _glBindBuffer(34962,($63|0)); + $64 = HEAP32[(18964)>>2]|0; + _glVertexAttribPointer(($64|0),4,5121,1,0,(0|0)); + $65 = HEAP32[(18964)>>2]|0; + _glEnableVertexAttribArray(($65|0)); + $66 = HEAP32[(20184)>>2]|0; + _glBindBuffer(34963,($66|0)); + } else { + $55 = HEAP32[4715]|0; + $56 = HEAP32[(20168)>>2]|0; + FUNCTION_TABLE_vi[$55 & 31]($56); + } + $67 = HEAP32[4751]|0; + $68 = ($67|0)>(0); + if ($68) { + $$02830 = 0;$$031 = 0; + while(1) { + $71 = HEAP32[4750]|0; + $72 = (($71) + (($$031*144)|0)|0); + $73 = HEAP32[$72>>2]|0; + $74 = (($73|0) / 4)&-1; + $75 = ($74*6)|0; + $76 = (((($71) + (($$031*144)|0)|0)) + 8|0); + $77 = HEAP32[$76>>2]|0; + _glBindTexture(3553,($77|0)); + $78 = $$02830 << 1; + $79 = $78; + _glDrawElements(4,($75|0),5123,($79|0)); + $80 = HEAP32[4750]|0; + $81 = (($80) + (($$031*144)|0)|0); + $82 = HEAP32[$81>>2]|0; + $83 = (($82|0) / 4)&-1; + $84 = ($83*6)|0; + $85 = (($84) + ($$02830))|0; + $86 = (($$031) + 1)|0; + $87 = HEAP32[4751]|0; + $88 = ($86|0)<($87|0); + if ($88) { + $$02830 = $85;$$031 = $86; + } else { + break; + } + } + } + $69 = HEAP32[4713]|0; + $70 = ($69|0)==(0); + if ($70) { + _glBindBuffer(34962,0); + _glBindBuffer(34963,0); + } + _glBindTexture(3553,0); + } + $89 = HEAP32[4713]|0; + $90 = ($89|0)==(0); + if (!($90)) { + $91 = HEAP32[4715]|0; + FUNCTION_TABLE_vi[$91 & 31](0); + } + _glUseProgram(0); + $92 = (($$02932) + 1)|0; + $93 = ($92|0)<($$|0); + if ($93) { + $$02932 = $92; + } else { + break; + } + } + HEAP32[4751] = 1; + $5 = HEAP32[4720]|0; + $6 = HEAP32[4750]|0; + $7 = ((($6)) + 8|0); + HEAP32[$7>>2] = $5; + HEAP32[$6>>2] = 0; + HEAP32[5011] = 0; + HEAP32[(20052)>>2] = 0; + HEAP32[5023] = 0; + HEAP32[(20100)>>2] = 0; + HEAP32[5035] = 0; + HEAP32[(20144)>>2] = 0; + HEAP32[(20148)>>2] = 0; + HEAPF32[754] = -1.0; + dest=18720; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18784; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _SetStereoView($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$byval_copy = 0, $$byval_copy3 = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy3 = sp + 192|0; + $$byval_copy = sp + 64|0; + $3 = sp; + $4 = sp + 128|0; + dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $5 = HEAP32[5009]|0; + $6 = Math_imul($5, $0)|0; + $7 = (($6|0) / 2)&-1; + $8 = (($5|0) / 2)&-1; + $9 = HEAP32[5010]|0; + _rlViewport($7,0,$8,$9); + $10 = (20624 + ($0<<6)|0); + dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy3); + $11 = (20496 + ($0<<6)|0); + dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixModelview($$byval_copy3); + dest=$$byval_copy3; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetMatrixProjection($$byval_copy3); + STACKTOP = sp;return; +} +function _SetMatrixModelview($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=18784; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _SetMatrixProjection($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=18720; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _Begin3dMode($0) { + $0 = $0|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy3 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0; + var $8 = 0.0, $9 = 0.0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); + $$byval_copy3 = sp + 88|0; + $$byval_copy1 = sp + 76|0; + $$byval_copy = sp + 64|0; + $1 = sp; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPushMatrix(); + _rlLoadIdentity(); + $2 = HEAP32[4634]|0; + $3 = (+($2|0)); + $4 = HEAP32[4633]|0; + $5 = (+($4|0)); + $6 = $3 / $5; + $7 = ((($0)) + 36|0); + $8 = +HEAPF32[$7>>2]; + $9 = $8 * 3.1415927410125732; + $10 = $9; + $11 = $10 / 360.0; + $12 = (+Math_tan((+$11))); + $13 = $12 * 0.01; + $14 = $6; + $15 = $13 * $14; + $16 = -$15; + $17 = -$13; + _rlFrustum($16,$15,$17,$13,0.01,1000.0); + _rlMatrixMode(5888); + _rlLoadIdentity(); + $18 = ((($0)) + 12|0); + $19 = ((($0)) + 24|0); + ;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$18>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$18+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$19+8>>2]|0; + _MatrixLookAt($1,$$byval_copy,$$byval_copy1,$$byval_copy3); + dest=$$byval_copy3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + (_MatrixToFloat($$byval_copy3)|0); + _rlMultMatrixf(20196); + _rlEnableDepthTest(); + STACKTOP = sp;return; +} +function _rlPushMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $0 = HEAP32[5188]|0; + $1 = ($0|0)==(15); + if ($1) { + HEAP32[$vararg_buffer>>2] = 16; + _TraceLog(1,9235,$vararg_buffer); + } + $2 = HEAP32[5188]|0; + $3 = (19012 + ($2<<6)|0); + $4 = HEAP32[4679]|0; + dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlLoadIdentity(); + $5 = HEAP32[5188]|0; + $6 = (($5) + 1)|0; + HEAP32[5188] = $6; + $7 = HEAP32[4712]|0; + $8 = ($7|0)==(5888); + if (!($8)) { + STACKTOP = sp;return; + } + HEAP32[5189] = 1; + STACKTOP = sp;return; +} +function _rlFrustum($0,$1,$2,$3,$4,$5) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + $4 = +$4; + $5 = +$5; + var $$byval_copy = 0, $$byval_copy1 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $6 = sp + 64|0; + $7 = sp; + _MatrixFrustum($6,$0,$1,$2,$3,$4,$5); + _MatrixTranspose($6); + $8 = HEAP32[4679]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy,$$byval_copy1); + dest=$8; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlEnableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glEnable(2929); + return; +} +function _End3dMode() { + var label = 0, sp = 0; + sp = STACKTOP; + _rlglDraw(); + _rlMatrixMode(5889); + _rlPopMatrix(); + _rlMatrixMode(5888); + _rlLoadIdentity(); + _rlDisableDepthTest(); + return; +} +function _rlPopMatrix() { + var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[5188]|0; + $1 = ($0|0)>(0); + if (!($1)) { + return; + } + $2 = HEAP32[5188]|0; + $3 = (($2) + -1)|0; + $4 = (19012 + ($3<<6)|0); + $5 = HEAP32[4679]|0; + _memmove(($5|0),($4|0),64)|0; + $6 = (($2) + -1)|0; + HEAP32[5188] = $6; + return; +} +function _rlDisableDepthTest() { + var label = 0, sp = 0; + sp = STACKTOP; + _glDisable(2929); + return; +} +function _GetFPS() { + var $0 = 0.0, $1 = 0.0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (+_GetFrameTime()); + $1 = 1.0 / $0; + $2 = (~~(($1))); + return ($2|0); +} +function _GetFrameTime() { + var $0 = 0.0, $1 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $0 = +HEAPF64[2273]; + $1 = $0; + return (+$1); +} +function _IsFileExtension($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strrchr($0,46)|0); + $3 = ($2|0)==(0|0); + if ($3) { + return 0; + } else { + $4 = (_strcmp($2,$1)|0); + $5 = ($4|0)==(0); + $$ = $5&1; + return ($$|0); + } + return (0)|0; +} +function _rlTranslatef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixTranslate($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[4679]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlRotatef($0,$1,$2,$3) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + $3 = +$3; + var $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy2 = sp + 272|0; + $$byval_copy1 = sp + 208|0; + $4 = sp + 144|0; + $5 = sp + 64|0; + $6 = sp + 80|0; + $7 = sp; + _MatrixIdentity($4); + HEAPF32[$5>>2] = $1; + $8 = ((($5)) + 4|0); + HEAPF32[$8>>2] = $2; + $9 = ((($5)) + 8|0); + HEAPF32[$9>>2] = $3; + _VectorNormalize($5); + $10 = $0 * 0.01745329238474369; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + _MatrixRotate($6,$$byval_copy2,$10); + dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($4); + $11 = HEAP32[4679]|0; + dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($7,$$byval_copy1,$$byval_copy2); + dest=$11; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlScalef($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $$byval_copy = 0, $$byval_copy1 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $$byval_copy1 = sp + 192|0; + $$byval_copy = sp + 128|0; + $3 = sp + 64|0; + $4 = sp; + _MatrixScale($3,$0,$1,$2); + _MatrixTranspose($3); + $5 = HEAP32[4679]|0; + dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($4,$$byval_copy,$$byval_copy1); + dest=$5; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlBegin($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[4752] = $0; + return; +} +function _rlEnd() { + var $$03956 = 0, $$04052 = 0, $$04154 = 0, $$04248 = 0, $$04347 = 0, $$byval_copy = 0, $$promoted = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; + var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; + var $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; + var $146 = 0, $147 = 0, $148 = 0.0, $149 = 0.0, $15 = 0.0, $16 = 0, $17 = 0.0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; + var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; + var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond60 = 0, $exitcond63 = 0; + var $scevgep = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $$byval_copy = sp; + $0 = HEAP32[5189]|0; + $1 = ($0|0)==(0); + if (!($1)) { + $2 = HEAP32[5190]|0; + $3 = ($2|0)>(0); + if ($3) { + $$03956 = 0; + while(1) { + $6 = HEAP32[4749]|0; + $7 = (($6) + (($$03956*12)|0)|0); + $8 = HEAP32[4679]|0; + dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _VectorTransform($7,$$byval_copy); + $9 = (($$03956) + 1)|0; + $5 = HEAP32[5190]|0; + $10 = ($9|0)<($5|0); + if ($10) { + $$03956 = $9; + } else { + break; + } + } + HEAP32[5189] = 0; + $4 = ($5|0)>(0); + if ($4) { + $$04154 = 0; + while(1) { + $11 = HEAP32[4749]|0; + $12 = (($11) + (($$04154*12)|0)|0); + $13 = +HEAPF32[$12>>2]; + $14 = (((($11) + (($$04154*12)|0)|0)) + 4|0); + $15 = +HEAPF32[$14>>2]; + $16 = (((($11) + (($$04154*12)|0)|0)) + 8|0); + $17 = +HEAPF32[$16>>2]; + _rlVertex3f($13,$15,$17); + $18 = (($$04154) + 1)|0; + $19 = HEAP32[5190]|0; + $20 = ($18|0)<($19|0); + if ($20) { + $$04154 = $18; + } else { + break; + } + } + } + } else { + HEAP32[5189] = 0; + } + HEAP32[5190] = 0; + } + $21 = HEAP32[4752]|0; + switch ($21|0) { + case 1: { + $22 = HEAP32[5011]|0; + $23 = HEAP32[(20052)>>2]|0; + $24 = ($22|0)==($23|0); + if ($24) { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + $25 = (($22) - ($23))|0; + $26 = ($25|0)>(0); + if ($26) { + $$04347 = 0; + } else { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + while(1) { + $27 = HEAP32[(20064)>>2]|0; + $28 = HEAP32[(20052)>>2]|0; + $29 = $28 << 2; + $30 = (($29) + -4)|0; + $31 = (($27) + ($30)|0); + $32 = HEAP8[$31>>0]|0; + $33 = (($27) + ($29)|0); + HEAP8[$33>>0] = $32; + $34 = HEAP32[(20064)>>2]|0; + $35 = HEAP32[(20052)>>2]|0; + $36 = $35 << 2; + $37 = (($36) + -3)|0; + $38 = (($34) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + $40 = $36 | 1; + $41 = (($34) + ($40)|0); + HEAP8[$41>>0] = $39; + $42 = HEAP32[(20064)>>2]|0; + $43 = HEAP32[(20052)>>2]|0; + $44 = $43 << 2; + $45 = (($44) + -2)|0; + $46 = (($42) + ($45)|0); + $47 = HEAP8[$46>>0]|0; + $48 = $44 | 2; + $49 = (($42) + ($48)|0); + HEAP8[$49>>0] = $47; + $50 = HEAP32[(20064)>>2]|0; + $51 = HEAP32[(20052)>>2]|0; + $52 = $51 << 2; + $53 = (($52) + -1)|0; + $54 = (($50) + ($53)|0); + $55 = HEAP8[$54>>0]|0; + $56 = $52 | 3; + $57 = (($50) + ($56)|0); + HEAP8[$57>>0] = $55; + $58 = HEAP32[(20052)>>2]|0; + $59 = (($58) + 1)|0; + HEAP32[(20052)>>2] = $59; + $60 = (($$04347) + 1)|0; + $exitcond = ($60|0)==($25|0); + if ($exitcond) { + break; + } else { + $$04347 = $60; + } + } + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + break; + } + case 4: { + $61 = HEAP32[5023]|0; + $62 = HEAP32[(20100)>>2]|0; + $63 = ($61|0)==($62|0); + if ($63) { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + $64 = (($61) - ($62))|0; + $65 = ($64|0)>(0); + if ($65) { + $$04248 = 0; + } else { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + while(1) { + $66 = HEAP32[(20112)>>2]|0; + $67 = HEAP32[(20100)>>2]|0; + $68 = $67 << 2; + $69 = (($68) + -4)|0; + $70 = (($66) + ($69)|0); + $71 = HEAP8[$70>>0]|0; + $72 = (($66) + ($68)|0); + HEAP8[$72>>0] = $71; + $73 = HEAP32[(20112)>>2]|0; + $74 = HEAP32[(20100)>>2]|0; + $75 = $74 << 2; + $76 = (($75) + -3)|0; + $77 = (($73) + ($76)|0); + $78 = HEAP8[$77>>0]|0; + $79 = $75 | 1; + $80 = (($73) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = HEAP32[(20112)>>2]|0; + $82 = HEAP32[(20100)>>2]|0; + $83 = $82 << 2; + $84 = (($83) + -2)|0; + $85 = (($81) + ($84)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $83 | 2; + $88 = (($81) + ($87)|0); + HEAP8[$88>>0] = $86; + $89 = HEAP32[(20112)>>2]|0; + $90 = HEAP32[(20100)>>2]|0; + $91 = $90 << 2; + $92 = (($91) + -1)|0; + $93 = (($89) + ($92)|0); + $94 = HEAP8[$93>>0]|0; + $95 = $91 | 3; + $96 = (($89) + ($95)|0); + HEAP8[$96>>0] = $94; + $97 = HEAP32[(20100)>>2]|0; + $98 = (($97) + 1)|0; + HEAP32[(20100)>>2] = $98; + $99 = (($$04248) + 1)|0; + $exitcond60 = ($99|0)==($64|0); + if ($exitcond60) { + break; + } else { + $$04248 = $99; + } + } + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + break; + } + case 7: { + $100 = HEAP32[5035]|0; + $101 = HEAP32[(20148)>>2]|0; + $102 = ($100|0)==($101|0); + if (!($102)) { + $103 = (($100) - ($101))|0; + $104 = ($103|0)>(0); + if ($104) { + $$04052 = 0; + while(1) { + $105 = HEAP32[(20160)>>2]|0; + $106 = HEAP32[(20148)>>2]|0; + $107 = $106 << 2; + $108 = (($107) + -4)|0; + $109 = (($105) + ($108)|0); + $110 = HEAP8[$109>>0]|0; + $111 = (($105) + ($107)|0); + HEAP8[$111>>0] = $110; + $112 = HEAP32[(20160)>>2]|0; + $113 = HEAP32[(20148)>>2]|0; + $114 = $113 << 2; + $115 = (($114) + -3)|0; + $116 = (($112) + ($115)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $114 | 1; + $119 = (($112) + ($118)|0); + HEAP8[$119>>0] = $117; + $120 = HEAP32[(20160)>>2]|0; + $121 = HEAP32[(20148)>>2]|0; + $122 = $121 << 2; + $123 = (($122) + -2)|0; + $124 = (($120) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = $122 | 2; + $127 = (($120) + ($126)|0); + HEAP8[$127>>0] = $125; + $128 = HEAP32[(20160)>>2]|0; + $129 = HEAP32[(20148)>>2]|0; + $130 = $129 << 2; + $131 = (($130) + -1)|0; + $132 = (($128) + ($131)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $130 | 3; + $135 = (($128) + ($134)|0); + HEAP8[$135>>0] = $133; + $136 = HEAP32[(20148)>>2]|0; + $137 = (($136) + 1)|0; + HEAP32[(20148)>>2] = $137; + $138 = (($$04052) + 1)|0; + $exitcond63 = ($138|0)==($103|0); + if ($exitcond63) { + break; + } else { + $$04052 = $138; + } + } + } + } + $139 = HEAP32[5035]|0; + $140 = HEAP32[(20144)>>2]|0; + $141 = ($139|0)>($140|0); + if (!($141)) { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + $142 = HEAP32[(20156)>>2]|0; + $$promoted = HEAP32[(20144)>>2]|0; + $143 = $$promoted << 1; + $scevgep = (($142) + ($143<<2)|0); + $144 = (($139) - ($140))|0; + $145 = $144 << 3; + _memset(($scevgep|0),0,($145|0))|0; + $146 = (($139) + ($$promoted))|0; + $147 = (($146) - ($140))|0; + HEAP32[(20144)>>2] = $147; + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + break; + } + default: { + $148 = +HEAPF32[754]; + $149 = $148 + 4.9999998736893758E-5; + HEAPF32[754] = $149; + STACKTOP = sp;return; + } + } +} +function _rlVertex3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = HEAP32[5189]|0; + $4 = ($3|0)==(0); + if (!($4)) { + $5 = HEAP32[4749]|0; + $6 = HEAP32[5190]|0; + $7 = (($5) + (($6*12)|0)|0); + HEAPF32[$7>>2] = $0; + $8 = (((($5) + (($6*12)|0)|0)) + 4|0); + HEAPF32[$8>>2] = $1; + $9 = (((($5) + (($6*12)|0)|0)) + 8|0); + HEAPF32[$9>>2] = $2; + $10 = (($6) + 1)|0; + HEAP32[5190] = $10; + STACKTOP = sp;return; + } + $11 = HEAP32[4752]|0; + switch ($11|0) { + case 1: { + $12 = HEAP32[5011]|0; + $13 = ($12|0)<(2048); + if ($13) { + $14 = HEAP32[(20056)>>2]|0; + $15 = ($12*3)|0; + $16 = (($14) + ($15<<2)|0); + HEAPF32[$16>>2] = $0; + $17 = (($15) + 1)|0; + $18 = (($14) + ($17<<2)|0); + HEAPF32[$18>>2] = $1; + $19 = (($15) + 2)|0; + $20 = (($14) + ($19<<2)|0); + HEAPF32[$20>>2] = $2; + $21 = (($12) + 1)|0; + HEAP32[5011] = $21; + STACKTOP = sp;return; + } else { + _TraceLog(1,9273,$vararg_buffer); + STACKTOP = sp;return; + } + break; + } + case 4: { + $22 = HEAP32[5023]|0; + $23 = ($22|0)<(6144); + if ($23) { + $24 = HEAP32[(20104)>>2]|0; + $25 = ($22*3)|0; + $26 = (($24) + ($25<<2)|0); + HEAPF32[$26>>2] = $0; + $27 = (($25) + 1)|0; + $28 = (($24) + ($27<<2)|0); + HEAPF32[$28>>2] = $1; + $29 = (($25) + 2)|0; + $30 = (($24) + ($29<<2)|0); + HEAPF32[$30>>2] = $2; + $31 = (($22) + 1)|0; + HEAP32[5023] = $31; + STACKTOP = sp;return; + } else { + _TraceLog(1,9298,$vararg_buffer1); + STACKTOP = sp;return; + } + break; + } + case 7: { + $32 = HEAP32[5035]|0; + $33 = ($32|0)<(4096); + if ($33) { + $34 = HEAP32[(20152)>>2]|0; + $35 = ($32*3)|0; + $36 = (($34) + ($35<<2)|0); + HEAPF32[$36>>2] = $0; + $37 = (($35) + 1)|0; + $38 = (($34) + ($37<<2)|0); + HEAPF32[$38>>2] = $1; + $39 = (($35) + 2)|0; + $40 = (($34) + ($39<<2)|0); + HEAPF32[$40>>2] = $2; + $41 = (($32) + 1)|0; + HEAP32[5035] = $41; + $42 = HEAP32[4750]|0; + $43 = HEAP32[4751]|0; + $44 = (($43) + -1)|0; + $45 = (($42) + (($44*144)|0)|0); + $46 = HEAP32[$45>>2]|0; + $47 = (($46) + 1)|0; + HEAP32[$45>>2] = $47; + STACKTOP = sp;return; + } else { + _TraceLog(1,9327,$vararg_buffer3); + STACKTOP = sp;return; + } + break; + } + default: { + STACKTOP = sp;return; + } + } +} +function _rlVertex2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = +HEAPF32[754]; + _rlVertex3f($0,$1,$2); + return; +} +function _rlTexCoord2f($0,$1) { + $0 = +$0; + $1 = +$1; + var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[4752]|0; + $3 = ($2|0)==(7); + if (!($3)) { + return; + } + $4 = HEAP32[(20156)>>2]|0; + $5 = HEAP32[(20144)>>2]|0; + $6 = $5 << 1; + $7 = (($4) + ($6<<2)|0); + HEAPF32[$7>>2] = $0; + $8 = $6 | 1; + $9 = (($4) + ($8<<2)|0); + HEAPF32[$9>>2] = $1; + $10 = (($5) + 1)|0; + HEAP32[(20144)>>2] = $10; + return; +} +function _rlNormal3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _rlColor4ub($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = HEAP32[4752]|0; + switch ($4|0) { + case 1: { + $$sink37 = (20052);$$sink38 = (20064); + break; + } + case 4: { + $$sink37 = (20100);$$sink38 = (20112); + break; + } + case 7: { + $$sink37 = (20148);$$sink38 = (20160); + break; + } + default: { + return; + } + } + $5 = HEAP32[$$sink38>>2]|0; + $6 = HEAP32[$$sink37>>2]|0; + $7 = $6 << 2; + $8 = (($5) + ($7)|0); + HEAP8[$8>>0] = $0; + $9 = HEAP32[$$sink38>>2]|0; + $10 = HEAP32[$$sink37>>2]|0; + $11 = $10 << 2; + $12 = $11 | 1; + $13 = (($9) + ($12)|0); + HEAP8[$13>>0] = $1; + $14 = HEAP32[$$sink38>>2]|0; + $15 = HEAP32[$$sink37>>2]|0; + $16 = $15 << 2; + $17 = $16 | 2; + $18 = (($14) + ($17)|0); + HEAP8[$18>>0] = $2; + $19 = HEAP32[$$sink38>>2]|0; + $20 = HEAP32[$$sink37>>2]|0; + $21 = $20 << 2; + $22 = $21 | 3; + $23 = (($19) + ($22)|0); + HEAP8[$23>>0] = $3; + $24 = HEAP32[$$sink37>>2]|0; + $25 = (($24) + 1)|0; + HEAP32[$$sink37>>2] = $25; + return; +} +function _rlColor3f($0,$1,$2) { + $0 = +$0; + $1 = +$1; + $2 = +$2; + var $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $0 * 255.0; + $4 = (~~(($3))&255); + $5 = $1 * 255.0; + $6 = (~~(($5))&255); + $7 = $2 * 255.0; + $8 = (~~(($7))&255); + _rlColor4ub($4,$6,$8,-1); + return; +} +function _rlEnableTexture($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4750]|0; + $2 = HEAP32[4751]|0; + $3 = (($2) + -1)|0; + $4 = (((($1) + (($3*144)|0)|0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==($0|0); + if ($6) { + return; + } + $7 = (($1) + (($3*144)|0)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(0); + if ($9) { + $10 = (($2) + 1)|0; + HEAP32[4751] = $10; + } + $11 = HEAP32[4751]|0; + $12 = (($11) + -1)|0; + $13 = (((($1) + (($12*144)|0)|0)) + 8|0); + HEAP32[$13>>2] = $0; + $14 = (($1) + (($12*144)|0)|0); + HEAP32[$14>>2] = 0; + return; +} +function _rlDisableTexture() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[5035]|0; + $1 = ($0|0)>(4095); + if (!($1)) { + return; + } + _rlglDraw(); + return; +} +function _rlDeleteVertexArrays($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = HEAP32[4713]|0; + $3 = ($2|0)==(0); + if ($3) { + STACKTOP = sp;return; + } + $4 = ($0|0)==(0); + if (!($4)) { + $5 = HEAP32[4716]|0; + FUNCTION_TABLE_vii[$5 & 63](1,$1); + } + $6 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $6; + _TraceLog(0,9352,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlDeleteBuffers($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = sp + 4|0; + HEAP32[$1>>2] = $0; + $2 = ($0|0)==(0); + if ($2) { + STACKTOP = sp;return; + } + _glDeleteBuffers(1,($1|0)); + $3 = HEAP32[4713]|0; + $4 = ($3|0)==(0); + if (!($4)) { + STACKTOP = sp;return; + } + $5 = HEAP32[$1>>2]|0; + HEAP32[$vararg_buffer>>2] = $5; + _TraceLog(0,9400,$vararg_buffer); + STACKTOP = sp;return; +} +function _rlglLoadMesh($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 20|0; + $4 = ((($0)) + 36|0); + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 44|0); + $7 = ((($0)) + 48|0); + $8 = ((($0)) + 52|0); + $9 = ((($0)) + 56|0); + $10 = ((($0)) + 60|0); + $11 = ((($0)) + 64|0); + $12 = ($1|0)!=(0); + $$ = $12 ? 35048 : 35044; + ;HEAP32[$4>>2]=0|0;HEAP32[$4+4>>2]=0|0;HEAP32[$4+8>>2]=0|0;HEAP32[$4+12>>2]=0|0;HEAP32[$4+16>>2]=0|0;HEAP32[$4+20>>2]=0|0;HEAP32[$4+24>>2]=0|0;HEAP32[$4+28>>2]=0|0; + HEAP32[$2>>2] = 0; + ;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;HEAP32[$3+16>>2]=0|0;HEAP32[$3+20>>2]=0|0;HEAP32[$3+24>>2]=0|0; + $13 = HEAP32[4713]|0; + $14 = ($13|0)==(0); + if (!($14)) { + $15 = HEAP32[4714]|0; + FUNCTION_TABLE_vii[$15 & 63](1,$2); + $16 = HEAP32[4715]|0; + $17 = HEAP32[$2>>2]|0; + FUNCTION_TABLE_vi[$16 & 31]($17); + } + _glGenBuffers(1,($3|0)); + $18 = HEAP32[$3>>2]|0; + _glBindBuffer(34962,($18|0)); + $19 = HEAP32[$0>>2]|0; + $20 = ($19*12)|0; + $21 = ((($0)) + 8|0); + $22 = HEAP32[$21>>2]|0; + _glBufferData(34962,($20|0),($22|0),($$|0)); + _glVertexAttribPointer(0,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(0); + $23 = ((($3)) + 4|0); + _glGenBuffers(1,($23|0)); + $24 = HEAP32[$23>>2]|0; + _glBindBuffer(34962,($24|0)); + $25 = HEAP32[$0>>2]|0; + $26 = $25 << 3; + $27 = ((($0)) + 12|0); + $28 = HEAP32[$27>>2]|0; + _glBufferData(34962,($26|0),($28|0),($$|0)); + _glVertexAttribPointer(1,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(1); + $29 = ((($0)) + 20|0); + $30 = HEAP32[$29>>2]|0; + $31 = ($30|0)==(0|0); + if ($31) { + _glVertexAttrib3f(2,1.0,1.0,1.0); + _glDisableVertexAttribArray(2); + } else { + $32 = ((($3)) + 8|0); + _glGenBuffers(1,($32|0)); + $33 = HEAP32[$32>>2]|0; + _glBindBuffer(34962,($33|0)); + $34 = HEAP32[$0>>2]|0; + $35 = ($34*12)|0; + $36 = HEAP32[$29>>2]|0; + _glBufferData(34962,($35|0),($36|0),($$|0)); + _glVertexAttribPointer(2,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(2); + } + $37 = ((($0)) + 28|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==(0|0); + if ($39) { + _glVertexAttrib4f(3,1.0,1.0,1.0,1.0); + _glDisableVertexAttribArray(3); + } else { + $40 = ((($3)) + 12|0); + _glGenBuffers(1,($40|0)); + $41 = HEAP32[$40>>2]|0; + _glBindBuffer(34962,($41|0)); + $42 = HEAP32[$0>>2]|0; + $43 = $42 << 2; + $44 = HEAP32[$37>>2]|0; + _glBufferData(34962,($43|0),($44|0),($$|0)); + _glVertexAttribPointer(3,4,5121,1,0,(0|0)); + _glEnableVertexAttribArray(3); + } + $45 = ((($0)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(0|0); + if ($47) { + _glVertexAttrib3f(4,0.0,0.0,0.0); + _glDisableVertexAttribArray(4); + } else { + $48 = ((($3)) + 16|0); + _glGenBuffers(1,($48|0)); + $49 = HEAP32[$48>>2]|0; + _glBindBuffer(34962,($49|0)); + $50 = HEAP32[$0>>2]|0; + $51 = ($50*12)|0; + $52 = HEAP32[$45>>2]|0; + _glBufferData(34962,($51|0),($52|0),($$|0)); + _glVertexAttribPointer(4,3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(4); + } + $53 = ((($0)) + 16|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==(0|0); + if ($55) { + _glVertexAttrib2f(5,0.0,0.0); + _glDisableVertexAttribArray(5); + } else { + $56 = ((($3)) + 20|0); + _glGenBuffers(1,($56|0)); + $57 = HEAP32[$56>>2]|0; + _glBindBuffer(34962,($57|0)); + $58 = HEAP32[$0>>2]|0; + $59 = $58 << 3; + $60 = HEAP32[$53>>2]|0; + _glBufferData(34962,($59|0),($60|0),($$|0)); + _glVertexAttribPointer(5,2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(5); + } + $61 = ((($0)) + 32|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $64 = ((($3)) + 24|0); + _glGenBuffers(1,($64|0)); + $65 = HEAP32[$64>>2]|0; + _glBindBuffer(34963,($65|0)); + $66 = ((($0)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = ($67*6)|0; + $69 = HEAP32[$61>>2]|0; + _glBufferData(34963,($68|0),($69|0),35044); + } + $70 = HEAP32[$3>>2]|0; + HEAP32[$5>>2] = $70; + $71 = HEAP32[$23>>2]|0; + HEAP32[$6>>2] = $71; + $72 = ((($3)) + 8|0); + $73 = HEAP32[$72>>2]|0; + HEAP32[$7>>2] = $73; + $74 = ((($3)) + 12|0); + $75 = HEAP32[$74>>2]|0; + HEAP32[$8>>2] = $75; + $76 = ((($3)) + 16|0); + $77 = HEAP32[$76>>2]|0; + HEAP32[$9>>2] = $77; + $78 = ((($3)) + 20|0); + $79 = HEAP32[$78>>2]|0; + HEAP32[$10>>2] = $79; + $80 = ((($3)) + 24|0); + $81 = HEAP32[$80>>2]|0; + HEAP32[$11>>2] = $81; + $82 = HEAP32[4713]|0; + $83 = ($82|0)==(0); + if ($83) { + _TraceLog(0,9549,$vararg_buffer3); + STACKTOP = sp;return; + } + $84 = HEAP32[$2>>2]|0; + $85 = ($84|0)==(0); + if ($85) { + _TraceLog(2,9508,$vararg_buffer1); + STACKTOP = sp;return; + } else { + HEAP32[$4>>2] = $84; + HEAP32[$vararg_buffer>>2] = $84; + _TraceLog(0,9455,$vararg_buffer); + STACKTOP = sp;return; + } +} +function _rlglDrawMesh($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$020 = 0, $$byval_copy5 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; + var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0.0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; + var $17 = 0.0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $19 = 0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0.0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0.0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $modelview$byval_copy4 = 0, dest = 0; + var label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); + $$byval_copy5 = sp + 320|0; + $modelview$byval_copy4 = sp + 256|0; + $3 = sp + 192|0; + $4 = sp + 128|0; + $5 = sp + 64|0; + $6 = sp; + $7 = HEAP32[$1>>2]|0; + _glUseProgram(($7|0)); + $8 = ((($1)) + 32|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($1)) + 116|0); + $11 = HEAP8[$10>>0]|0; + $12 = (+($11&255)); + $13 = $12 / 255.0; + $14 = ((($1)) + 117|0); + $15 = HEAP8[$14>>0]|0; + $16 = (+($15&255)); + $17 = $16 / 255.0; + $18 = ((($1)) + 118|0); + $19 = HEAP8[$18>>0]|0; + $20 = (+($19&255)); + $21 = $20 / 255.0; + $22 = ((($1)) + 119|0); + $23 = HEAP8[$22>>0]|0; + $24 = (+($23&255)); + $25 = $24 / 255.0; + _glUniform4f(($9|0),(+$13),(+$17),(+$21),(+$25)); + $26 = ((($1)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = ($27|0)==(-1); + if (!($28)) { + $29 = ((($1)) + 120|0); + $30 = HEAP8[$29>>0]|0; + $31 = (+($30&255)); + $32 = $31 / 255.0; + $33 = ((($1)) + 121|0); + $34 = HEAP8[$33>>0]|0; + $35 = (+($34&255)); + $36 = $35 / 255.0; + $37 = ((($1)) + 122|0); + $38 = HEAP8[$37>>0]|0; + $39 = (+($38&255)); + $40 = $39 / 255.0; + $41 = ((($1)) + 123|0); + $42 = HEAP8[$41>>0]|0; + $43 = (+($42&255)); + $44 = $43 / 255.0; + _glUniform4f(($27|0),(+$32),(+$36),(+$40),(+$44)); + } + $45 = ((($1)) + 40|0); + $46 = HEAP32[$45>>2]|0; + $47 = ($46|0)==(-1); + if (!($47)) { + $48 = ((($1)) + 124|0); + $49 = HEAP8[$48>>0]|0; + $50 = (+($49&255)); + $51 = $50 / 255.0; + $52 = ((($1)) + 125|0); + $53 = HEAP8[$52>>0]|0; + $54 = (+($53&255)); + $55 = $54 / 255.0; + $56 = ((($1)) + 126|0); + $57 = HEAP8[$56>>0]|0; + $58 = (+($57&255)); + $59 = $58 / 255.0; + $60 = ((($1)) + 127|0); + $61 = HEAP8[$60>>0]|0; + $62 = (+($61&255)); + $63 = $62 / 255.0; + _glUniform4f(($46|0),(+$51),(+$55),(+$59),(+$63)); + } + dest=$3; src=18784; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$4; src=18720; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=18784; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($5,$modelview$byval_copy4,$$byval_copy5); + $64 = HEAP32[$1>>2]|0; + $65 = HEAP32[4721]|0; + $66 = ($64|0)==($65|0); + if (!($66)) { + $67 = (_glGetUniformLocation(($64|0),(9597|0))|0); + $68 = ($67|0)==(-1); + if (!($68)) { + dest=$modelview$byval_copy4; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixTranspose($modelview$byval_copy4); + _MatrixInvert($modelview$byval_copy4); + dest=$$byval_copy5; src=$modelview$byval_copy4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $69 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($67|0),1,0,($69|0)); + } + $70 = HEAP32[$1>>2]|0; + $71 = (_glGetUniformLocation(($70|0),(9609|0))|0); + $72 = ($71|0)==(-1); + if (!($72)) { + $73 = ((($3)) + 8|0); + $74 = +HEAPF32[$73>>2]; + $75 = ((($3)) + 24|0); + $76 = +HEAPF32[$75>>2]; + $77 = ((($3)) + 40|0); + $78 = +HEAPF32[$77>>2]; + _glUniform3f(($71|0),(+$74),(+$76),(+$78)); + } + $79 = (_glGetUniformLocation(($70|0),(9617|0))|0); + $80 = ($79|0)==(-1); + if (!($80)) { + $81 = ((($1)) + 128|0); + $82 = +HEAPF32[$81>>2]; + _glUniform1f(($79|0),(+$82)); + } + } + _glActiveTexture(33984); + $83 = ((($1)) + 56|0); + $84 = HEAP32[$83>>2]|0; + _glBindTexture(3553,($84|0)); + $85 = ((($1)) + 44|0); + $86 = HEAP32[$85>>2]|0; + _glUniform1i(($86|0),0); + $87 = ((($1)) + 76|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0); + if (!($89)) { + $90 = ((($1)) + 48|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)==(-1); + if (!($92)) { + $93 = HEAP32[$1>>2]|0; + $94 = (_glGetUniformLocation(($93|0),(9628|0))|0); + _glUniform1i(($94|0),1); + _glActiveTexture(33985); + $95 = HEAP32[$87>>2]|0; + _glBindTexture(3553,($95|0)); + $96 = HEAP32[$90>>2]|0; + _glUniform1i(($96|0),1); + } + } + $97 = ((($1)) + 96|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0); + if (!($99)) { + $100 = ((($1)) + 52|0); + $101 = HEAP32[$100>>2]|0; + $102 = ($101|0)==(-1); + if (!($102)) { + $103 = HEAP32[$1>>2]|0; + $104 = (_glGetUniformLocation(($103|0),(9638|0))|0); + _glUniform1i(($104|0),1); + _glActiveTexture(33986); + $105 = HEAP32[$97>>2]|0; + _glBindTexture(3553,($105|0)); + $106 = HEAP32[$100>>2]|0; + _glUniform1i(($106|0),2); + } + } + $107 = HEAP32[4713]|0; + $108 = ($107|0)==(0); + if ($108) { + $112 = ((($0)) + 40|0); + $113 = HEAP32[$112>>2]|0; + _glBindBuffer(34962,($113|0)); + $114 = ((($1)) + 4|0); + $115 = HEAP32[$114>>2]|0; + _glVertexAttribPointer(($115|0),3,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($115|0)); + $116 = ((($0)) + 44|0); + $117 = HEAP32[$116>>2]|0; + _glBindBuffer(34962,($117|0)); + $118 = ((($1)) + 8|0); + $119 = HEAP32[$118>>2]|0; + _glVertexAttribPointer(($119|0),2,5126,0,0,(0|0)); + _glEnableVertexAttribArray(($119|0)); + $120 = ((($1)) + 16|0); + $121 = HEAP32[$120>>2]|0; + $122 = ($121|0)==(-1); + if (!($122)) { + $123 = ((($0)) + 48|0); + $124 = HEAP32[$123>>2]|0; + _glBindBuffer(34962,($124|0)); + $125 = HEAP32[$120>>2]|0; + _glVertexAttribPointer(($125|0),3,5126,0,0,(0|0)); + $126 = HEAP32[$120>>2]|0; + _glEnableVertexAttribArray(($126|0)); + } + $127 = ((($1)) + 24|0); + $128 = HEAP32[$127>>2]|0; + $129 = ($128|0)==(-1); + do { + if (!($129)) { + $130 = ((($0)) + 52|0); + $131 = HEAP32[$130>>2]|0; + $132 = ($131|0)==(0); + if ($132) { + _glVertexAttrib4f(($128|0),1.0,1.0,1.0,1.0); + $135 = HEAP32[$127>>2]|0; + _glDisableVertexAttribArray(($135|0)); + break; + } else { + _glBindBuffer(34962,($131|0)); + $133 = HEAP32[$127>>2]|0; + _glVertexAttribPointer(($133|0),4,5121,1,0,(0|0)); + $134 = HEAP32[$127>>2]|0; + _glEnableVertexAttribArray(($134|0)); + break; + } + } + } while(0); + $136 = ((($1)) + 20|0); + $137 = HEAP32[$136>>2]|0; + $138 = ($137|0)==(-1); + if (!($138)) { + $139 = ((($0)) + 56|0); + $140 = HEAP32[$139>>2]|0; + _glBindBuffer(34962,($140|0)); + $141 = HEAP32[$136>>2]|0; + _glVertexAttribPointer(($141|0),3,5126,0,0,(0|0)); + $142 = HEAP32[$136>>2]|0; + _glEnableVertexAttribArray(($142|0)); + } + $143 = ((($1)) + 12|0); + $144 = HEAP32[$143>>2]|0; + $145 = ($144|0)==(-1); + if (!($145)) { + $146 = ((($0)) + 60|0); + $147 = HEAP32[$146>>2]|0; + _glBindBuffer(34962,($147|0)); + $148 = HEAP32[$143>>2]|0; + _glVertexAttribPointer(($148|0),2,5126,0,0,(0|0)); + $149 = HEAP32[$143>>2]|0; + _glEnableVertexAttribArray(($149|0)); + } + $150 = ((($0)) + 32|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==(0|0); + if (!($152)) { + $153 = HEAP32[(20184)>>2]|0; + _glBindBuffer(34963,($153|0)); + } + } else { + $109 = HEAP32[4715]|0; + $110 = ((($0)) + 36|0); + $111 = HEAP32[$110>>2]|0; + FUNCTION_TABLE_vi[$109 & 31]($111); + } + $154 = HEAP32[5098]|0; + $155 = ($154|0)!=(0); + $$ = $155 ? 2 : 1; + $156 = ((($1)) + 28|0); + $157 = ((($0)) + 32|0); + $158 = HEAP32[$0>>2]|0; + $159 = ((($0)) + 4|0); + $$020 = 0; + while(1) { + if ($155) { + dest=$modelview$byval_copy4; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _SetStereoView($$020,$modelview$byval_copy4,$$byval_copy5); + } else { + dest=18784; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + } + dest=$modelview$byval_copy4; src=18784; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy5; src=18720; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($6,$modelview$byval_copy4,$$byval_copy5); + $162 = HEAP32[$156>>2]|0; + dest=$$byval_copy5; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $163 = (_MatrixToFloat($$byval_copy5)|0); + _glUniformMatrix4fv(($162|0),1,0,($163|0)); + $164 = HEAP32[$157>>2]|0; + $165 = ($164|0)==(0|0); + if ($165) { + _glDrawArrays(4,0,($158|0)); + } else { + $166 = HEAP32[$159>>2]|0; + $167 = ($166*3)|0; + _glDrawElements(4,($167|0),5123,(0|0)); + } + $168 = (($$020) + 1)|0; + $169 = ($168|0)<($$|0); + if ($169) { + $$020 = $168; + } else { + break; + } + } + $160 = HEAP32[$87>>2]|0; + $161 = ($160|0)==(0); + if (!($161)) { + _glActiveTexture(33985); + _glBindTexture(3553,0); + } + $170 = HEAP32[$97>>2]|0; + $171 = ($170|0)==(0); + if (!($171)) { + _glActiveTexture(33986); + _glBindTexture(3553,0); + } + _glActiveTexture(33984); + _glBindTexture(3553,0); + $172 = HEAP32[4713]|0; + $173 = ($172|0)==(0); + if (!($173)) { + $174 = HEAP32[4715]|0; + FUNCTION_TABLE_vi[$174 & 31](0); + _glUseProgram(0); + dest=18720; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18784; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34962,0); + $175 = ((($0)) + 32|0); + $176 = HEAP32[$175>>2]|0; + $177 = ($176|0)==(0|0); + if ($177) { + _glUseProgram(0); + dest=18720; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18784; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + _glBindBuffer(34963,0); + _glUseProgram(0); + dest=18720; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=18784; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _rlglUnloadMesh($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 8|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if (!($3)) { + _free($2); + } + $4 = ((($0)) + 12|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + if (!($6)) { + _free($5); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==(0|0); + if (!($9)) { + _free($8); + } + $10 = ((($0)) + 28|0); + $11 = HEAP32[$10>>2]|0; + $12 = ($11|0)==(0|0); + if (!($12)) { + _free($11); + } + $13 = ((($0)) + 24|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)==(0|0); + if (!($15)) { + _free($14); + } + $16 = ((($0)) + 16|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==(0|0); + if (!($18)) { + _free($17); + } + $19 = ((($0)) + 32|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0|0); + if (!($21)) { + _free($20); + } + $22 = ((($0)) + 40|0); + $23 = HEAP32[$22>>2]|0; + _rlDeleteBuffers($23); + $24 = ((($0)) + 44|0); + $25 = HEAP32[$24>>2]|0; + _rlDeleteBuffers($25); + $26 = ((($0)) + 48|0); + $27 = HEAP32[$26>>2]|0; + _rlDeleteBuffers($27); + $28 = ((($0)) + 52|0); + $29 = HEAP32[$28>>2]|0; + _rlDeleteBuffers($29); + $30 = ((($0)) + 56|0); + $31 = HEAP32[$30>>2]|0; + _rlDeleteBuffers($31); + $32 = ((($0)) + 60|0); + $33 = HEAP32[$32>>2]|0; + _rlDeleteBuffers($33); + $34 = ((($0)) + 64|0); + $35 = HEAP32[$34>>2]|0; + _rlDeleteBuffers($35); + $36 = ((($0)) + 36|0); + $37 = HEAP32[$36>>2]|0; + _rlDeleteVertexArrays($37); + return; +} +function _GetDefaultTexture($0) { + $0 = $0|0; + var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[4720]|0; + HEAP32[$0>>2] = $1; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1; + $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0); + HEAP32[$$sroa$5$0$$sroa_idx4>>2] = 1; + $$sroa$6$0$$sroa_idx6 = ((($0)) + 12|0); + HEAP32[$$sroa$6$0$$sroa_idx6>>2] = 1; + $$sroa$7$0$$sroa_idx8 = ((($0)) + 16|0); + HEAP32[$$sroa$7$0$$sroa_idx8>>2] = 7; + return; +} +function _GetDefaultShader($0) { + $0 = $0|0; + var dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + dest=$0; src=18884; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + return; +} +function _stbi__err($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + HEAP32[5191] = $0; + return; +} +function _stbi_load_from_file($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $5 = sp; + _stbi__start_file($5,$0); + $6 = (_stbi__load_and_postprocess_8bit($5,$1,$2,$3,$4)|0); + $7 = ($6|0)==(0|0); + if ($7) { + STACKTOP = sp;return ($6|0); + } + $8 = ((($5)) + 172|0); + $9 = HEAP32[$8>>2]|0; + $10 = ((($5)) + 168|0); + $11 = HEAP32[$10>>2]|0; + $12 = (($11) - ($9))|0; + (_fseek($0,$12,1)|0); + STACKTOP = sp;return ($6|0); +} +function _stbi__start_file($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + _stbi__start_callbacks($0,3132,$1); + return; +} +function _stbi__load_and_postprocess_8bit($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$070 = 0, $$07175 = 0, $$07276 = 0, $$07378 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond79 = 0, $exitcond80 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $5 = sp; + $6 = (_stbi__load_main($0,$1,$2,$3,$4,$5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $8 = HEAP32[$5>>2]|0; + switch ($8|0) { + case 8: { + $$070 = $6; + break; + } + case 16: { + label = 4; + break; + } + default: { + ___assert_fail((9650|0),(9676|0),1041,(9699|0)); + // unreachable; + } + } + if ((label|0) == 4) { + $9 = HEAP32[$1>>2]|0; + $10 = HEAP32[$2>>2]|0; + $11 = ($4|0)==(0); + if ($11) { + $12 = HEAP32[$3>>2]|0; + $13 = $12; + } else { + $13 = $4; + } + $14 = (_stbi__convert_16_to_8($6,$9,$10,$13)|0); + HEAP32[$5>>2] = 8; + $$070 = $14; + } + $15 = HEAP32[5192]|0; + $16 = ($15|0)==(0); + if ($16) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $17 = HEAP32[$1>>2]|0; + $18 = HEAP32[$2>>2]|0; + $19 = ($4|0)==(0); + if ($19) { + $20 = HEAP32[$3>>2]|0; + $25 = $20; + } else { + $25 = $4; + } + $21 = $18 >> 1; + $22 = ($21|0)>(0); + if (!($22)) { + $$0 = $$070; + STACKTOP = sp;return ($$0|0); + } + $23 = ($17|0)>(0); + $24 = ($25|0)>(0); + $26 = (($18) + -1)|0; + $$07378 = 0; + while(1) { + if ($23) { + $27 = Math_imul($$07378, $17)|0; + $28 = (($26) - ($$07378))|0; + $29 = Math_imul($28, $17)|0; + $$07276 = 0; + while(1) { + if ($24) { + $30 = (($$07276) + ($27))|0; + $31 = Math_imul($30, $25)|0; + $32 = (($$07276) + ($29))|0; + $33 = Math_imul($32, $25)|0; + $$07175 = 0; + while(1) { + $34 = (($$07175) + ($31))|0; + $35 = (($$070) + ($34)|0); + $36 = HEAP8[$35>>0]|0; + $37 = (($$07175) + ($33))|0; + $38 = (($$070) + ($37)|0); + $39 = HEAP8[$38>>0]|0; + HEAP8[$35>>0] = $39; + HEAP8[$38>>0] = $36; + $40 = (($$07175) + 1)|0; + $exitcond = ($40|0)==($25|0); + if ($exitcond) { + break; + } else { + $$07175 = $40; + } + } + } + $41 = (($$07276) + 1)|0; + $exitcond79 = ($41|0)==($17|0); + if ($exitcond79) { + break; + } else { + $$07276 = $41; + } + } + } + $42 = (($$07378) + 1)|0; + $exitcond80 = ($42|0)==($21|0); + if ($exitcond80) { + $$0 = $$070; + break; + } else { + $$07378 = $42; + } + } + STACKTOP = sp;return ($$0|0); +} +function _stbi__load_main($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$0 = 0, $10 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAP32[$5>>2] = 8; + $6 = ((($5)) + 8|0); + HEAP32[$6>>2] = 0; + $7 = ((($5)) + 4|0); + HEAP32[$7>>2] = 0; + $8 = (_stbi__png_test($0)|0); + $9 = ($8|0)==(0); + if ($9) { + _stbi__err(9740); + $$0 = 0; + return ($$0|0); + } else { + $10 = (_stbi__png_load($0,$1,$2,$3,$4,$5)|0); + $$0 = $10; + return ($$0|0); + } + return (0)|0; +} +function _stbi__convert_16_to_8($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$0 = 0, $$01819 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = Math_imul($4, $3)|0; + $6 = (_stbi__malloc($5)|0); + $7 = ($6|0)==(0|0); + if ($7) { + _stbi__err(9731); + $$0 = 0; + return ($$0|0); + } + $8 = ($5|0)>(0); + if ($8) { + $$01819 = 0; + while(1) { + $9 = (($0) + ($$01819<<1)|0); + $10 = HEAP16[$9>>1]|0; + $11 = ($10&65535) >>> 8; + $12 = $11&255; + $13 = (($6) + ($$01819)|0); + HEAP8[$13>>0] = $12; + $14 = (($$01819) + 1)|0; + $exitcond = ($14|0)==($5|0); + if ($exitcond) { + break; + } else { + $$01819 = $14; + } + } + } + _free($0); + $$0 = $6; + return ($$0|0); +} +function _stbi__malloc($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_malloc($0)|0); + return ($1|0); +} +function _stbi__png_test($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__check_png_header($0)|0); + _stbi__rewind($0); + return ($1|0); +} +function _stbi__png_load($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $6 = sp; + HEAP32[$6>>2] = $0; + $7 = (_stbi__do_png($6,$1,$2,$3,$4,$5)|0); + STACKTOP = sp;return ($7|0); +} +function _stbi__do_png($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$0 = 0, $$045 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $6 = ($4>>>0)>(4); + if ($6) { + _stbi__err(9759); + $$045 = 0; + return ($$045|0); + } + $7 = (_stbi__parse_png_file($0,0,$4)|0); + $8 = ($7|0)==(0); + if ($8) { + $$2 = 0; + } else { + $9 = ((($0)) + 16|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(8); + $$ = $11 ? $10 : 8; + HEAP32[$5>>2] = $$; + $12 = ((($0)) + 12|0); + $13 = HEAP32[$12>>2]|0; + HEAP32[$12>>2] = 0; + $14 = ($4|0)==(0); + if ($14) { + $$1 = $13; + } else { + $15 = HEAP32[$0>>2]|0; + $16 = ((($15)) + 12|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)==($4|0); + if ($18) { + $$1 = $13; + } else { + $19 = HEAP32[$5>>2]|0; + $20 = ($19|0)==(8); + $21 = ((($15)) + 4|0); + $22 = HEAP32[$21>>2]|0; + $23 = HEAP32[$15>>2]|0; + if ($20) { + $24 = (_stbi__convert_format($13,$17,$4,$23,$22)|0); + $$0 = $24; + } else { + $25 = (_stbi__convert_format16($13,$17,$4,$23,$22)|0); + $$0 = $25; + } + $26 = HEAP32[$0>>2]|0; + $27 = ((($26)) + 12|0); + HEAP32[$27>>2] = $4; + $28 = ($$0|0)==(0|0); + if ($28) { + $$045 = 0; + return ($$045|0); + } else { + $$1 = $$0; + } + } + } + $29 = HEAP32[$0>>2]|0; + $30 = HEAP32[$29>>2]|0; + HEAP32[$1>>2] = $30; + $31 = ((($29)) + 4|0); + $32 = HEAP32[$31>>2]|0; + HEAP32[$2>>2] = $32; + $33 = ($3|0)==(0|0); + if ($33) { + $$2 = $$1; + } else { + $34 = ((($29)) + 8|0); + $35 = HEAP32[$34>>2]|0; + HEAP32[$3>>2] = $35; + $$2 = $$1; + } + } + $36 = ((($0)) + 12|0); + $37 = HEAP32[$36>>2]|0; + _free($37); + HEAP32[$36>>2] = 0; + $38 = ((($0)) + 8|0); + $39 = HEAP32[$38>>2]|0; + _free($39); + HEAP32[$38>>2] = 0; + $40 = ((($0)) + 4|0); + $41 = HEAP32[$40>>2]|0; + _free($41); + HEAP32[$40>>2] = 0; + $$045 = $$2; + return ($$045|0); +} +function _stbi__parse_png_file($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0217 = 0, $$0206 = 0, $$0211 = 0, $$0214 = 0, $$0217 = 0, $$0226593 = 0, $$0228 = 0, $$0231 = 0, $$0235 = 0, $$0239591 = 0, $$0241 = 0, $$0245 = 0, $$1207 = 0, $$1212 = 0, $$1215 = 0, $$1218 = 0, $$1227588 = 0, $$1229 = 0, $$1240589 = 0; + var $$1246 = 0, $$2219 = 0, $$2233 = 0, $$2237 = 0, $$2243 = 0, $$254 = 0, $$3209 = 0, $$3220 = 0, $$4 = 0, $$6$ph = 0, $$7 = 0, $$lobit = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; + var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; + var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; + var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0; + var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0; + var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0; + var $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond248 = 0, $or$cond5$not = 0, $or$cond7 = 0, $switch$split112D = 0, $switch$split142D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $3 = sp + 32|0; + $4 = sp + 22|0; + $5 = sp + 16|0; + $6 = sp + 8|0; + $7 = sp; + $8 = HEAP32[$0>>2]|0; + $9 = ((($0)) + 8|0); + HEAP32[$9>>2] = 0; + $10 = ((($0)) + 4|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 12|0); + HEAP32[$11>>2] = 0; + $12 = (_stbi__check_png_header($8)|0); + $13 = ($12|0)==(0); + if ($13) { + $$7 = 0; + STACKTOP = sp;return ($$7|0); + } + $14 = ($1|0)==(1); + if ($14) { + $$7 = 1; + STACKTOP = sp;return ($$7|0); + } + $15 = ((($6)) + 4|0); + $16 = ((($8)) + 4|0); + $17 = ((($0)) + 16|0); + $18 = ((($8)) + 8|0); + $19 = ($1|0)==(2); + $20 = ((($8)) + 8|0); + $21 = ((($8)) + 8|0); + $22 = ((($0)) + 16|0); + $23 = ($1|0)==(2); + $24 = ($1|0)==(2); + $$0206 = 0;$$0211 = 0;$$0214 = 0;$$0217 = 0;$$0228 = 0;$$0231 = 0;$$0235 = 0;$$0241 = 1;$$0245 = 0; + L7: while(1) { + _stbi__get_chunk_header($6,$8); + $25 = HEAP32[$15>>2]|0; + $switch$split2D = ($25|0)<(1229472850); + L9: do { + if ($switch$split2D) { + $switch$split52D = ($25|0)<(1229209940); + if ($switch$split52D) { + switch ($25|0) { + case 1130840649: { + break; + } + default: { + label = 103; + break L9; + } + } + $26 = HEAP32[$6>>2]|0; + _stbi__skip($8,$26); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = 1;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + $switch$split112D = ($25|0)<(1229278788); + if (!($switch$split112D)) { + switch ($25|0) { + case 1229278788: { + label = 85; + break L7; + break; + } + default: { + label = 103; + break L9; + } + } + } + switch ($25|0) { + case 1229209940: { + break; + } + default: { + label = 103; + break L9; + } + } + $130 = ($$0241|0)==(0); + if (!($130)) { + label = 70; + break L7; + } + $131 = ($$0206<<24>>24)==(0); + $132 = ($$0245|0)!=(0); + $or$cond = $132 | $131; + if (!($or$cond)) { + label = 72; + break L7; + } + if ($24) { + label = 74; + break L7; + } + $135 = HEAP32[$6>>2]|0; + $136 = (($135) + ($$0214))|0; + $137 = ($136|0)<($$0214|0); + if ($137) { + $$6$ph = 0; + break L7; + } + $138 = ($136>>>0)>($$0217>>>0); + if ($138) { + $139 = ($$0217|0)==(0); + $140 = ($135>>>0)>(4096); + $141 = $140 ? $135 : 4096; + $$$0217 = $139 ? $141 : $$0217; + $142 = HEAP32[$6>>2]|0; + $143 = (($142) + ($$0214))|0; + $$1218 = $$$0217; + while(1) { + $144 = ($143>>>0)>($$1218>>>0); + $145 = $$1218 << 1; + if ($144) { + $$1218 = $145; + } else { + break; + } + } + $146 = HEAP32[$10>>2]|0; + $147 = (_realloc($146,$$1218)|0); + $148 = ($147|0)==(0|0); + if ($148) { + label = 81; + break L7; + } + HEAP32[$10>>2] = $147; + $$2219 = $$1218; + } else { + $$2219 = $$0217; + } + $149 = HEAP32[$10>>2]|0; + $150 = (($149) + ($$0214)|0); + $151 = HEAP32[$6>>2]|0; + $152 = (_stbi__getn($8,$150,$151)|0); + $153 = ($152|0)==(0); + if ($153) { + label = 83; + break L7; + } + $154 = HEAP32[$6>>2]|0; + $155 = (($154) + ($$0214))|0; + $$1212 = $$0211;$$1215 = $155;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$2219; + } else { + $switch$split82D = ($25|0)<(1347179589); + if ($switch$split82D) { + switch ($25|0) { + case 1229472850: { + break; + } + default: { + label = 103; + break L9; + } + } + $27 = ($$0241|0)==(0); + if ($27) { + label = 7; + break L7; + } + $28 = HEAP32[$6>>2]|0; + $29 = ($28|0)==(13); + if (!($29)) { + label = 9; + break L7; + } + $30 = (_stbi__get32be($8)|0); + HEAP32[$8>>2] = $30; + $31 = ($30>>>0)>(16777216); + if ($31) { + label = 11; + break L7; + } + $32 = (_stbi__get32be($8)|0); + HEAP32[$16>>2] = $32; + $33 = ($32>>>0)>(16777216); + if ($33) { + label = 13; + break L7; + } + $34 = (_stbi__get8($8)|0); + $35 = $34&255; + HEAP32[$17>>2] = $35; + switch ($34<<24>>24) { + case 16: case 8: case 4: case 2: case 1: { + break; + } + default: { + label = 15; + break L7; + } + } + $36 = (_stbi__get8($8)|0); + $37 = $36&255; + $38 = ($36&255)>(6); + if ($38) { + label = 17; + break L7; + } + $39 = ($36<<24>>24)==(3); + if ($39) { + $40 = HEAP32[$17>>2]|0; + $41 = ($40|0)==(16); + if ($41) { + label = 20; + break L7; + } else { + $$1207 = 3; + } + } else { + $42 = $37 & 1; + $43 = ($42|0)==(0); + if ($43) { + $$1207 = $$0206; + } else { + label = 22; + break L7; + } + } + $44 = (_stbi__get8($8)|0); + $45 = ($44<<24>>24)==(0); + if (!($45)) { + label = 24; + break L7; + } + $46 = (_stbi__get8($8)|0); + $47 = ($46<<24>>24)==(0); + if (!($47)) { + label = 26; + break L7; + } + $48 = (_stbi__get8($8)|0); + $49 = $48&255; + $50 = ($48&255)>(1); + if ($50) { + label = 28; + break L7; + } + $51 = HEAP32[$8>>2]|0; + $52 = ($51|0)==(0); + if ($52) { + label = 31; + break L7; + } + $53 = HEAP32[$16>>2]|0; + $54 = ($53|0)==(0); + if ($54) { + label = 31; + break L7; + } + $55 = ($$1207<<24>>24)==(0); + $56 = (1073741824 / ($51>>>0))&-1; + if (!($55)) { + HEAP32[$20>>2] = 1; + $63 = $56 >>> 2; + $64 = ($63>>>0)<($53>>>0); + if ($64) { + label = 37; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = $$1207;$$3220 = $$0217; + break; + } + } + $57 = $37 & 2; + $58 = $57 | 1; + $59 = $37 >>> 2; + $$lobit = $59 & 1; + $60 = (($58) + ($$lobit))|0; + HEAP32[$18>>2] = $60; + $61 = (($56>>>0) / ($60>>>0))&-1; + $62 = ($61>>>0)<($53>>>0); + if ($62) { + label = 34; + break L7; + } + if ($19) { + $$6$ph = 1; + break L7; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $37;$$2237 = $49;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + } + $switch$split142D = ($25|0)<(1951551059); + if ($switch$split142D) { + switch ($25|0) { + case 1347179589: { + break; + } + default: { + label = 103; + break L9; + } + } + $65 = ($$0241|0)==(0); + if (!($65)) { + label = 39; + break L7; + } + $66 = HEAP32[$6>>2]|0; + $67 = ($66>>>0)>(768); + if ($67) { + label = 41; + break L7; + } + $68 = (($66>>>0) / 3)&-1; + $69 = ($68*3)|0; + $70 = ($69|0)==($66|0); + if (!($70)) { + label = 44; + break L7; + } + $71 = ($66>>>0)>(2); + if ($71) { + $$0226593 = 0; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + break; + } + while(1) { + $72 = (_stbi__get8($8)|0); + $73 = $$0226593 << 2; + $74 = (($3) + ($73)|0); + HEAP8[$74>>0] = $72; + $75 = (_stbi__get8($8)|0); + $76 = $73 | 1; + $77 = (($3) + ($76)|0); + HEAP8[$77>>0] = $75; + $78 = (_stbi__get8($8)|0); + $79 = $73 | 2; + $80 = (($3) + ($79)|0); + HEAP8[$80>>0] = $78; + $81 = $73 | 3; + $82 = (($3) + ($81)|0); + HEAP8[$82>>0] = -1; + $83 = (($$0226593) + 1)|0; + $84 = ($83>>>0)<($68>>>0); + if ($84) { + $$0226593 = $83; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $68;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break L9; + } + } + } + switch ($25|0) { + case 1951551059: { + break; + } + default: { + label = 103; + break L9; + } + } + $85 = ($$0241|0)==(0); + if (!($85)) { + label = 47; + break L7; + } + $86 = HEAP32[$10>>2]|0; + $87 = ($86|0)==(0|0); + if (!($87)) { + label = 49; + break L7; + } + $88 = ($$0206<<24>>24)==(0); + if (!($88)) { + if ($23) { + label = 52; + break L7; + } + $90 = ($$0245|0)==(0); + if ($90) { + label = 54; + break L7; + } + $91 = HEAP32[$6>>2]|0; + $92 = ($91>>>0)>($$0245>>>0); + if ($92) { + label = 58; + break L7; + } + $93 = HEAP32[$6>>2]|0; + $94 = ($93|0)==(0); + if ($94) { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 4;$$3220 = $$0217; + break; + } + $95 = HEAP32[$6>>2]|0; + $$1227588 = 0; + while(1) { + $96 = (_stbi__get8($8)|0); + $97 = $$1227588 << 2; + $98 = $97 | 3; + $99 = (($3) + ($98)|0); + HEAP8[$99>>0] = $96; + $100 = (($$1227588) + 1)|0; + $101 = ($100>>>0)<($95>>>0); + if ($101) { + $$1227588 = $100; + } else { + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = 4;$$3220 = $$0217; + break L9; + } + } + } + $102 = HEAP32[$21>>2]|0; + $103 = $102 & 1; + $104 = ($103|0)==(0); + if ($104) { + label = 61; + break L7; + } + $105 = HEAP32[$6>>2]|0; + $106 = $102 << 1; + $107 = ($105|0)==($106|0); + if (!($107)) { + label = 63; + break L7; + } + $108 = HEAP32[$22>>2]|0; + $109 = ($108|0)==(16); + $110 = HEAP32[$21>>2]|0; + $111 = ($110|0)>(0); + if ($109) { + if ($111) { + $$0239591 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $112 = (_stbi__get16be($8)|0); + $113 = $112&65535; + $114 = (($5) + ($$0239591<<1)|0); + HEAP16[$114>>1] = $113; + $115 = (($$0239591) + 1)|0; + $116 = HEAP32[$21>>2]|0; + $117 = ($115|0)<($116|0); + if ($117) { + $$0239591 = $115; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } else { + if ($111) { + $$1240589 = 0; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = 0;$$3220 = $$0217; + break; + } + while(1) { + $118 = (_stbi__get16be($8)|0); + $119 = $118 & 255; + $120 = HEAP32[$22>>2]|0; + $121 = (10075 + ($120)|0); + $122 = HEAP8[$121>>0]|0; + $123 = $122&255; + $124 = Math_imul($123, $119)|0; + $125 = $124&255; + $126 = (($4) + ($$1240589)|0); + HEAP8[$126>>0] = $125; + $127 = (($$1240589) + 1)|0; + $128 = HEAP32[$21>>2]|0; + $129 = ($127|0)<($128|0); + if ($129) { + $$1240589 = $127; + } else { + $$1212 = 1;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = $$0241;$$3209 = $$0206;$$3220 = $$0217; + break; + } + } + } + } + } while(0); + if ((label|0) == 103) { + label = 0; + $202 = ($$0241|0)==(0); + if (!($202)) { + label = 104; + break; + } + $203 = $25 & 536870912; + $204 = ($203|0)==(0); + if ($204) { + label = 106; + break; + } + $213 = HEAP32[$6>>2]|0; + _stbi__skip($8,$213); + $$1212 = $$0211;$$1215 = $$0214;$$1229 = $$0228;$$1246 = $$0245;$$2233 = $$0231;$$2237 = $$0235;$$2243 = 0;$$3209 = $$0206;$$3220 = $$0217; + } + (_stbi__get32be($8)|0); + $$0206 = $$3209;$$0211 = $$1212;$$0214 = $$1215;$$0217 = $$3220;$$0228 = $$1229;$$0231 = $$2233;$$0235 = $$2237;$$0241 = $$2243;$$0245 = $$1246; + } + switch (label|0) { + case 7: { + _stbi__err(9849); + $$6$ph = 0; + break; + } + case 9: { + _stbi__err(9863); + $$6$ph = 0; + break; + } + case 11: { + _stbi__err(9876); + $$6$ph = 0; + break; + } + case 13: { + _stbi__err(9876); + $$6$ph = 0; + break; + } + case 15: { + _stbi__err(9886); + $$6$ph = 0; + break; + } + case 17: { + _stbi__err(9906); + $$6$ph = 0; + break; + } + case 20: { + _stbi__err(9906); + $$6$ph = 0; + break; + } + case 22: { + _stbi__err(9906); + $$6$ph = 0; + break; + } + case 24: { + _stbi__err(9916); + $$6$ph = 0; + break; + } + case 26: { + _stbi__err(9932); + $$6$ph = 0; + break; + } + case 28: { + _stbi__err(9950); + $$6$ph = 0; + break; + } + case 31: { + _stbi__err(9971); + $$6$ph = 0; + break; + } + case 34: { + _stbi__err(9876); + $$6$ph = 0; + break; + } + case 37: { + _stbi__err(9876); + $$6$ph = 0; + break; + } + case 39: { + _stbi__err(9985); + $$6$ph = 0; + break; + } + case 41: { + _stbi__err(10000); + $$6$ph = 0; + break; + } + case 44: { + _stbi__err(10000); + $$6$ph = 0; + break; + } + case 47: { + _stbi__err(9985); + $$6$ph = 0; + break; + } + case 49: { + _stbi__err(10013); + $$6$ph = 0; + break; + } + case 52: { + $89 = ((($8)) + 8|0); + HEAP32[$89>>2] = 4; + $$6$ph = 1; + break; + } + case 54: { + _stbi__err(10029); + $$6$ph = 0; + break; + } + case 58: { + _stbi__err(10046); + $$6$ph = 0; + break; + } + case 61: { + _stbi__err(10059); + $$6$ph = 0; + break; + } + case 63: { + _stbi__err(10046); + $$6$ph = 0; + break; + } + case 70: { + _stbi__err(9985); + $$6$ph = 0; + break; + } + case 72: { + _stbi__err(10084); + $$6$ph = 0; + break; + } + case 74: { + $133 = $$0206&255; + $134 = ((($8)) + 8|0); + HEAP32[$134>>2] = $133; + $$6$ph = 1; + break; + } + case 81: { + _stbi__err(9731); + $$6$ph = 0; + break; + } + case 83: { + _stbi__err(10092); + $$6$ph = 0; + break; + } + case 85: { + $156 = ($$0241|0)==(0); + do { + if ($156) { + $157 = ($1|0)==(0); + if ($157) { + $158 = HEAP32[$10>>2]|0; + $159 = ($158|0)==(0|0); + if ($159) { + _stbi__err(10102); + $$4 = 0; + break; + } + $160 = HEAP32[$8>>2]|0; + $161 = ((($0)) + 16|0); + $162 = HEAP32[$161>>2]|0; + $163 = Math_imul($162, $160)|0; + $164 = (($163) + 7)|0; + $165 = $164 >>> 3; + $166 = ((($8)) + 4|0); + $167 = HEAP32[$166>>2]|0; + $168 = ((($8)) + 8|0); + $169 = HEAP32[$168>>2]|0; + $170 = Math_imul($169, $167)|0; + $171 = Math_imul($170, $165)|0; + $172 = (($171) + ($167))|0; + HEAP32[$7>>2] = $172; + $173 = ($$0228|0)!=(0); + $174 = $173 ^ 1; + $175 = $174&1; + $176 = (_stbi_zlib_decode_malloc_guesssize_headerflag($158,$$0214,$172,$7,$175)|0); + HEAP32[$9>>2] = $176; + $177 = ($176|0)==(0|0); + if ($177) { + $$4 = 0; + } else { + $178 = HEAP32[$10>>2]|0; + _free($178); + HEAP32[$10>>2] = 0; + $179 = HEAP32[$168>>2]|0; + $180 = (($179) + 1)|0; + $notlhs = ($180|0)!=($2|0); + $notrhs = ($2|0)==(3); + $or$cond5$not = $notrhs | $notlhs; + $181 = ($$0206<<24>>24)!=(0); + $or$cond7 = $181 | $or$cond5$not; + $182 = ($$0211<<24>>24)==(0); + $or$cond248 = $182 & $or$cond7; + $$254 = $or$cond248 ? $179 : $180; + $183 = ((($8)) + 12|0); + HEAP32[$183>>2] = $$254; + $184 = HEAP32[$9>>2]|0; + $185 = HEAP32[$7>>2]|0; + $186 = HEAP32[$161>>2]|0; + $187 = (_stbi__create_png_image($0,$184,$185,$$254,$186,$$0231,$$0235)|0); + $188 = ($187|0)==(0); + if ($188) { + $$4 = 0; + } else { + do { + if (!($182)) { + $189 = HEAP32[$161>>2]|0; + $190 = ($189|0)==(16); + if ($190) { + $191 = HEAP32[$183>>2]|0; + _stbi__compute_transparency16($0,$5,$191); + break; + } else { + $192 = HEAP32[$183>>2]|0; + _stbi__compute_transparency($0,$4,$192); + break; + } + } + } while(0); + $193 = HEAP32[5193]|0; + $194 = ($193|0)!=(0); + $or$cond11 = $173 & $194; + if ($or$cond11) { + $195 = HEAP32[$183>>2]|0; + $196 = ($195|0)>(2); + if ($196) { + _stbi__de_iphone($0); + } + } + if ($181) { + $197 = $$0206&255; + HEAP32[$168>>2] = $197; + $198 = ($2|0)>(2); + $$ = $198 ? $2 : $197; + HEAP32[$183>>2] = $$; + $199 = (_stbi__expand_png_palette($0,$3,$$)|0); + $200 = ($199|0)==(0); + if ($200) { + $$4 = 0; + break; + } + } + $201 = HEAP32[$9>>2]|0; + _free($201); + HEAP32[$9>>2] = 0; + $$4 = 1; + } + } + } else { + $$4 = 1; + } + } else { + _stbi__err(9985); + $$4 = 0; + } + } while(0); + $$6$ph = $$4; + break; + } + case 104: { + _stbi__err(9985); + $$6$ph = 0; + break; + } + case 106: { + $205 = $25 >>> 24; + $206 = $205&255; + HEAP8[10110] = $206; + $207 = HEAP32[$15>>2]|0; + $208 = $207 >>> 16; + $209 = $208&255; + HEAP8[(10111)>>0] = $209; + $210 = $207 >>> 8; + $211 = $210&255; + HEAP8[(10112)>>0] = $211; + $212 = $207&255; + HEAP8[(10113)>>0] = $212; + _stbi__err(10110); + $$6$ph = 0; + break; + } + } + $$7 = $$6$ph; + STACKTOP = sp;return ($$7|0); +} +function _stbi__convert_format($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; + var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9772|0),(9676|0),1477,(9828|0)); + // unreachable; + } + $7 = (_stbi__malloc_mad3($2,$3,$4)|0); + $8 = ($7|0)==(0|0); + if ($8) { + _free($0); + _stbi__err(9731); + $$0163 = 0; + return ($$0163|0); + } + $9 = ($4|0)>(0); + L11: do { + if ($9) { + $10 = $1 << 3; + $11 = (($10) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $12 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $13 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $14 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $15 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $16 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $17 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $18 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $19 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $20 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $21 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $22 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $23 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $24 = Math_imul($$0164259, $3)|0; + $25 = Math_imul($24, $1)|0; + $26 = (($0) + ($25)|0); + $27 = Math_imul($24, $2)|0; + $28 = (($7) + ($27)|0); + do { + switch ($11|0) { + case 10: { + if ($12) { + $$0151255 = $26;$$0165257 = $$0165254;$$0256 = $28; + while(1) { + $29 = HEAP8[$$0151255>>0]|0; + HEAP8[$$0256>>0] = $29; + $30 = ((($$0256)) + 1|0); + HEAP8[$30>>0] = -1; + $31 = ((($$0151255)) + 1|0); + $32 = ((($$0256)) + 2|0); + $$0165 = (($$0165257) + -1)|0; + $33 = ($$0165|0)>(-1); + if ($33) { + $$0151255 = $31;$$0165257 = $$0165;$$0256 = $32; + } else { + break; + } + } + } + break; + } + case 11: { + if ($13) { + $$1152250 = $26;$$1166252 = $$1166249;$$1251 = $28; + while(1) { + $34 = HEAP8[$$1152250>>0]|0; + $35 = ((($$1251)) + 2|0); + HEAP8[$35>>0] = $34; + $36 = ((($$1251)) + 1|0); + HEAP8[$36>>0] = $34; + HEAP8[$$1251>>0] = $34; + $37 = ((($$1152250)) + 1|0); + $38 = ((($$1251)) + 3|0); + $$1166 = (($$1166252) + -1)|0; + $39 = ($$1166|0)>(-1); + if ($39) { + $$1152250 = $37;$$1166252 = $$1166;$$1251 = $38; + } else { + break; + } + } + } + break; + } + case 12: { + if ($14) { + $$2153245 = $26;$$2167247 = $$2167244;$$2246 = $28; + while(1) { + $40 = HEAP8[$$2153245>>0]|0; + $41 = ((($$2246)) + 2|0); + HEAP8[$41>>0] = $40; + $42 = ((($$2246)) + 1|0); + HEAP8[$42>>0] = $40; + HEAP8[$$2246>>0] = $40; + $43 = ((($$2246)) + 3|0); + HEAP8[$43>>0] = -1; + $44 = ((($$2153245)) + 1|0); + $45 = ((($$2246)) + 4|0); + $$2167 = (($$2167247) + -1)|0; + $46 = ($$2167|0)>(-1); + if ($46) { + $$2153245 = $44;$$2167247 = $$2167;$$2246 = $45; + } else { + break; + } + } + } + break; + } + case 17: { + if ($15) { + $$3154240 = $26;$$3168242 = $$3168239;$$3241 = $28; + while(1) { + $47 = HEAP8[$$3154240>>0]|0; + HEAP8[$$3241>>0] = $47; + $48 = ((($$3154240)) + 2|0); + $49 = ((($$3241)) + 1|0); + $$3168 = (($$3168242) + -1)|0; + $50 = ($$3168|0)>(-1); + if ($50) { + $$3154240 = $48;$$3168242 = $$3168;$$3241 = $49; + } else { + break; + } + } + } + break; + } + case 19: { + if ($16) { + $$4155235 = $26;$$4169237 = $$4169234;$$4236 = $28; + while(1) { + $51 = HEAP8[$$4155235>>0]|0; + $52 = ((($$4236)) + 2|0); + HEAP8[$52>>0] = $51; + $53 = ((($$4236)) + 1|0); + HEAP8[$53>>0] = $51; + HEAP8[$$4236>>0] = $51; + $54 = ((($$4155235)) + 2|0); + $55 = ((($$4236)) + 3|0); + $$4169 = (($$4169237) + -1)|0; + $56 = ($$4169|0)>(-1); + if ($56) { + $$4155235 = $54;$$4169237 = $$4169;$$4236 = $55; + } else { + break; + } + } + } + break; + } + case 20: { + if ($17) { + $$5156230 = $26;$$5170232 = $$5170229;$$5231 = $28; + while(1) { + $57 = HEAP8[$$5156230>>0]|0; + $58 = ((($$5231)) + 2|0); + HEAP8[$58>>0] = $57; + $59 = ((($$5231)) + 1|0); + HEAP8[$59>>0] = $57; + HEAP8[$$5231>>0] = $57; + $60 = ((($$5156230)) + 1|0); + $61 = HEAP8[$60>>0]|0; + $62 = ((($$5231)) + 3|0); + HEAP8[$62>>0] = $61; + $63 = ((($$5156230)) + 2|0); + $64 = ((($$5231)) + 4|0); + $$5170 = (($$5170232) + -1)|0; + $65 = ($$5170|0)>(-1); + if ($65) { + $$5156230 = $63;$$5170232 = $$5170;$$5231 = $64; + } else { + break; + } + } + } + break; + } + case 28: { + if ($18) { + $$6157225 = $26;$$6171227 = $$6171224;$$6226 = $28; + while(1) { + $66 = HEAP8[$$6157225>>0]|0; + HEAP8[$$6226>>0] = $66; + $67 = ((($$6157225)) + 1|0); + $68 = HEAP8[$67>>0]|0; + $69 = ((($$6226)) + 1|0); + HEAP8[$69>>0] = $68; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP8[$70>>0]|0; + $72 = ((($$6226)) + 2|0); + HEAP8[$72>>0] = $71; + $73 = ((($$6226)) + 3|0); + HEAP8[$73>>0] = -1; + $74 = ((($$6157225)) + 3|0); + $75 = ((($$6226)) + 4|0); + $$6171 = (($$6171227) + -1)|0; + $76 = ($$6171|0)>(-1); + if ($76) { + $$6157225 = $74;$$6171227 = $$6171;$$6226 = $75; + } else { + break; + } + } + } + break; + } + case 25: { + if ($19) { + $$7158220 = $26;$$7172222 = $$7172219;$$7221 = $28; + while(1) { + $77 = HEAP8[$$7158220>>0]|0; + $78 = $77&255; + $79 = ((($$7158220)) + 1|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP8[$82>>0]|0; + $84 = $83&255; + $85 = (_stbi__compute_y($78,$81,$84)|0); + HEAP8[$$7221>>0] = $85; + $86 = ((($$7158220)) + 3|0); + $87 = ((($$7221)) + 1|0); + $$7172 = (($$7172222) + -1)|0; + $88 = ($$7172|0)>(-1); + if ($88) { + $$7158220 = $86;$$7172222 = $$7172;$$7221 = $87; + } else { + break; + } + } + } + break; + } + case 26: { + if ($20) { + $$8159215 = $26;$$8173217 = $$8173214;$$8216 = $28; + while(1) { + $89 = HEAP8[$$8159215>>0]|0; + $90 = $89&255; + $91 = ((($$8159215)) + 1|0); + $92 = HEAP8[$91>>0]|0; + $93 = $92&255; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP8[$94>>0]|0; + $96 = $95&255; + $97 = (_stbi__compute_y($90,$93,$96)|0); + HEAP8[$$8216>>0] = $97; + $98 = ((($$8216)) + 1|0); + HEAP8[$98>>0] = -1; + $99 = ((($$8159215)) + 3|0); + $100 = ((($$8216)) + 2|0); + $$8173 = (($$8173217) + -1)|0; + $101 = ($$8173|0)>(-1); + if ($101) { + $$8159215 = $99;$$8173217 = $$8173;$$8216 = $100; + } else { + break; + } + } + } + break; + } + case 33: { + if ($21) { + $$9160210 = $26;$$9174212 = $$9174209;$$9211 = $28; + while(1) { + $102 = HEAP8[$$9160210>>0]|0; + $103 = $102&255; + $104 = ((($$9160210)) + 1|0); + $105 = HEAP8[$104>>0]|0; + $106 = $105&255; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP8[$107>>0]|0; + $109 = $108&255; + $110 = (_stbi__compute_y($103,$106,$109)|0); + HEAP8[$$9211>>0] = $110; + $111 = ((($$9160210)) + 4|0); + $112 = ((($$9211)) + 1|0); + $$9174 = (($$9174212) + -1)|0; + $113 = ($$9174|0)>(-1); + if ($113) { + $$9160210 = $111;$$9174212 = $$9174;$$9211 = $112; + } else { + break; + } + } + } + break; + } + case 34: { + if ($22) { + $$10161205 = $26;$$10175207 = $$10175204;$$10206 = $28; + while(1) { + $114 = HEAP8[$$10161205>>0]|0; + $115 = $114&255; + $116 = ((($$10161205)) + 1|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP8[$119>>0]|0; + $121 = $120&255; + $122 = (_stbi__compute_y($115,$118,$121)|0); + HEAP8[$$10206>>0] = $122; + $123 = ((($$10161205)) + 3|0); + $124 = HEAP8[$123>>0]|0; + $125 = ((($$10206)) + 1|0); + HEAP8[$125>>0] = $124; + $126 = ((($$10161205)) + 4|0); + $127 = ((($$10206)) + 2|0); + $$10175 = (($$10175207) + -1)|0; + $128 = ($$10175|0)>(-1); + if ($128) { + $$10161205 = $126;$$10175207 = $$10175;$$10206 = $127; + } else { + break; + } + } + } + break; + } + case 35: { + if ($23) { + $$11162201 = $26;$$11176203 = $$11176200;$$11202 = $28; + while(1) { + $129 = HEAP8[$$11162201>>0]|0; + HEAP8[$$11202>>0] = $129; + $130 = ((($$11162201)) + 1|0); + $131 = HEAP8[$130>>0]|0; + $132 = ((($$11202)) + 1|0); + HEAP8[$132>>0] = $131; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP8[$133>>0]|0; + $135 = ((($$11202)) + 2|0); + HEAP8[$135>>0] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = ((($$11202)) + 3|0); + $$11176 = (($$11176203) + -1)|0; + $138 = ($$11176|0)>(-1); + if ($138) { + $$11162201 = $136;$$11176203 = $$11176;$$11202 = $137; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $139 = (($$0164259) + 1)|0; + $140 = ($139|0)<($4|0); + if ($140) { + $$0164259 = $139; + } else { + break L11; + } + } + ___assert_fail((9826|0),(9676|0),1506,(9828|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $7; + return ($$0163|0); +} +function _stbi__convert_format16($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0151255 = 0, $$0163 = 0, $$0164259 = 0, $$0165 = 0, $$0165254 = 0, $$0165257 = 0, $$0256 = 0, $$10161205 = 0, $$10175 = 0, $$10175204 = 0, $$10175207 = 0, $$10206 = 0, $$11162201 = 0, $$11176 = 0, $$11176200 = 0, $$11176203 = 0, $$11202 = 0, $$1152250 = 0, $$1166 = 0, $$1166249 = 0; + var $$1166252 = 0, $$1251 = 0, $$2153245 = 0, $$2167 = 0, $$2167244 = 0, $$2167247 = 0, $$2246 = 0, $$3154240 = 0, $$3168 = 0, $$3168239 = 0, $$3168242 = 0, $$3241 = 0, $$4155235 = 0, $$4169 = 0, $$4169234 = 0, $$4169237 = 0, $$4236 = 0, $$5156230 = 0, $$5170 = 0, $$5170229 = 0; + var $$5170232 = 0, $$5231 = 0, $$6157225 = 0, $$6171 = 0, $$6171224 = 0, $$6171227 = 0, $$6226 = 0, $$7158220 = 0, $$7172 = 0, $$7172219 = 0, $$7172222 = 0, $$7221 = 0, $$8159215 = 0, $$8173 = 0, $$8173214 = 0, $$8173217 = 0, $$8216 = 0, $$9160210 = 0, $$9174 = 0, $$9174209 = 0; + var $$9174212 = 0, $$9211 = 0, $$off = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($2|0)==($1|0); + if ($5) { + $$0163 = $0; + return ($$0163|0); + } + $$off = (($2) + -1)|0; + $6 = ($$off>>>0)<(4); + if (!($6)) { + ___assert_fail((9772|0),(9676|0),1526,(9803|0)); + // unreachable; + } + $7 = $2 << 1; + $8 = Math_imul($7, $3)|0; + $9 = Math_imul($8, $4)|0; + $10 = (_stbi__malloc($9)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _free($0); + _stbi__err(9731); + $$0163 = 0; + return ($$0163|0); + } + $12 = ($4|0)>(0); + L11: do { + if ($12) { + $13 = $1 << 3; + $14 = (($13) + ($2))|0; + $$0165254 = (($3) + -1)|0; + $15 = ($$0165254|0)>(-1); + $$1166249 = (($3) + -1)|0; + $16 = ($$1166249|0)>(-1); + $$2167244 = (($3) + -1)|0; + $17 = ($$2167244|0)>(-1); + $$3168239 = (($3) + -1)|0; + $18 = ($$3168239|0)>(-1); + $$4169234 = (($3) + -1)|0; + $19 = ($$4169234|0)>(-1); + $$5170229 = (($3) + -1)|0; + $20 = ($$5170229|0)>(-1); + $$6171224 = (($3) + -1)|0; + $21 = ($$6171224|0)>(-1); + $$7172219 = (($3) + -1)|0; + $22 = ($$7172219|0)>(-1); + $$8173214 = (($3) + -1)|0; + $23 = ($$8173214|0)>(-1); + $$9174209 = (($3) + -1)|0; + $24 = ($$9174209|0)>(-1); + $$10175204 = (($3) + -1)|0; + $25 = ($$10175204|0)>(-1); + $$11176200 = (($3) + -1)|0; + $26 = ($$11176200|0)>(-1); + $$0164259 = 0; + L13: while(1) { + $27 = Math_imul($$0164259, $3)|0; + $28 = Math_imul($27, $1)|0; + $29 = (($0) + ($28<<1)|0); + $30 = Math_imul($27, $2)|0; + $31 = (($10) + ($30<<1)|0); + do { + switch ($14|0) { + case 10: { + if ($15) { + $$0151255 = $29;$$0165257 = $$0165254;$$0256 = $31; + while(1) { + $32 = HEAP16[$$0151255>>1]|0; + HEAP16[$$0256>>1] = $32; + $33 = ((($$0256)) + 2|0); + HEAP16[$33>>1] = -1; + $34 = ((($$0151255)) + 2|0); + $35 = ((($$0256)) + 4|0); + $$0165 = (($$0165257) + -1)|0; + $36 = ($$0165|0)>(-1); + if ($36) { + $$0151255 = $34;$$0165257 = $$0165;$$0256 = $35; + } else { + break; + } + } + } + break; + } + case 11: { + if ($16) { + $$1152250 = $29;$$1166252 = $$1166249;$$1251 = $31; + while(1) { + $37 = HEAP16[$$1152250>>1]|0; + $38 = ((($$1251)) + 4|0); + HEAP16[$38>>1] = $37; + $39 = ((($$1251)) + 2|0); + HEAP16[$39>>1] = $37; + HEAP16[$$1251>>1] = $37; + $40 = ((($$1152250)) + 2|0); + $41 = ((($$1251)) + 6|0); + $$1166 = (($$1166252) + -1)|0; + $42 = ($$1166|0)>(-1); + if ($42) { + $$1152250 = $40;$$1166252 = $$1166;$$1251 = $41; + } else { + break; + } + } + } + break; + } + case 12: { + if ($17) { + $$2153245 = $29;$$2167247 = $$2167244;$$2246 = $31; + while(1) { + $43 = HEAP16[$$2153245>>1]|0; + $44 = ((($$2246)) + 4|0); + HEAP16[$44>>1] = $43; + $45 = ((($$2246)) + 2|0); + HEAP16[$45>>1] = $43; + HEAP16[$$2246>>1] = $43; + $46 = ((($$2246)) + 6|0); + HEAP16[$46>>1] = -1; + $47 = ((($$2153245)) + 2|0); + $48 = ((($$2246)) + 8|0); + $$2167 = (($$2167247) + -1)|0; + $49 = ($$2167|0)>(-1); + if ($49) { + $$2153245 = $47;$$2167247 = $$2167;$$2246 = $48; + } else { + break; + } + } + } + break; + } + case 17: { + if ($18) { + $$3154240 = $29;$$3168242 = $$3168239;$$3241 = $31; + while(1) { + $50 = HEAP16[$$3154240>>1]|0; + HEAP16[$$3241>>1] = $50; + $51 = ((($$3154240)) + 4|0); + $52 = ((($$3241)) + 2|0); + $$3168 = (($$3168242) + -1)|0; + $53 = ($$3168|0)>(-1); + if ($53) { + $$3154240 = $51;$$3168242 = $$3168;$$3241 = $52; + } else { + break; + } + } + } + break; + } + case 19: { + if ($19) { + $$4155235 = $29;$$4169237 = $$4169234;$$4236 = $31; + while(1) { + $54 = HEAP16[$$4155235>>1]|0; + $55 = ((($$4236)) + 4|0); + HEAP16[$55>>1] = $54; + $56 = ((($$4236)) + 2|0); + HEAP16[$56>>1] = $54; + HEAP16[$$4236>>1] = $54; + $57 = ((($$4155235)) + 4|0); + $58 = ((($$4236)) + 6|0); + $$4169 = (($$4169237) + -1)|0; + $59 = ($$4169|0)>(-1); + if ($59) { + $$4155235 = $57;$$4169237 = $$4169;$$4236 = $58; + } else { + break; + } + } + } + break; + } + case 20: { + if ($20) { + $$5156230 = $29;$$5170232 = $$5170229;$$5231 = $31; + while(1) { + $60 = HEAP16[$$5156230>>1]|0; + $61 = ((($$5231)) + 4|0); + HEAP16[$61>>1] = $60; + $62 = ((($$5231)) + 2|0); + HEAP16[$62>>1] = $60; + HEAP16[$$5231>>1] = $60; + $63 = ((($$5156230)) + 2|0); + $64 = HEAP16[$63>>1]|0; + $65 = ((($$5231)) + 6|0); + HEAP16[$65>>1] = $64; + $66 = ((($$5156230)) + 4|0); + $67 = ((($$5231)) + 8|0); + $$5170 = (($$5170232) + -1)|0; + $68 = ($$5170|0)>(-1); + if ($68) { + $$5156230 = $66;$$5170232 = $$5170;$$5231 = $67; + } else { + break; + } + } + } + break; + } + case 28: { + if ($21) { + $$6157225 = $29;$$6171227 = $$6171224;$$6226 = $31; + while(1) { + $69 = HEAP16[$$6157225>>1]|0; + HEAP16[$$6226>>1] = $69; + $70 = ((($$6157225)) + 2|0); + $71 = HEAP16[$70>>1]|0; + $72 = ((($$6226)) + 2|0); + HEAP16[$72>>1] = $71; + $73 = ((($$6157225)) + 4|0); + $74 = HEAP16[$73>>1]|0; + $75 = ((($$6226)) + 4|0); + HEAP16[$75>>1] = $74; + $76 = ((($$6226)) + 6|0); + HEAP16[$76>>1] = -1; + $77 = ((($$6157225)) + 6|0); + $78 = ((($$6226)) + 8|0); + $$6171 = (($$6171227) + -1)|0; + $79 = ($$6171|0)>(-1); + if ($79) { + $$6157225 = $77;$$6171227 = $$6171;$$6226 = $78; + } else { + break; + } + } + } + break; + } + case 25: { + if ($22) { + $$7158220 = $29;$$7172222 = $$7172219;$$7221 = $31; + while(1) { + $80 = HEAP16[$$7158220>>1]|0; + $81 = $80&65535; + $82 = ((($$7158220)) + 2|0); + $83 = HEAP16[$82>>1]|0; + $84 = $83&65535; + $85 = ((($$7158220)) + 4|0); + $86 = HEAP16[$85>>1]|0; + $87 = $86&65535; + $88 = (_stbi__compute_y_16($81,$84,$87)|0); + HEAP16[$$7221>>1] = $88; + $89 = ((($$7158220)) + 6|0); + $90 = ((($$7221)) + 2|0); + $$7172 = (($$7172222) + -1)|0; + $91 = ($$7172|0)>(-1); + if ($91) { + $$7158220 = $89;$$7172222 = $$7172;$$7221 = $90; + } else { + break; + } + } + } + break; + } + case 26: { + if ($23) { + $$8159215 = $29;$$8173217 = $$8173214;$$8216 = $31; + while(1) { + $92 = HEAP16[$$8159215>>1]|0; + $93 = $92&65535; + $94 = ((($$8159215)) + 2|0); + $95 = HEAP16[$94>>1]|0; + $96 = $95&65535; + $97 = ((($$8159215)) + 4|0); + $98 = HEAP16[$97>>1]|0; + $99 = $98&65535; + $100 = (_stbi__compute_y_16($93,$96,$99)|0); + HEAP16[$$8216>>1] = $100; + $101 = ((($$8216)) + 2|0); + HEAP16[$101>>1] = -1; + $102 = ((($$8159215)) + 6|0); + $103 = ((($$8216)) + 4|0); + $$8173 = (($$8173217) + -1)|0; + $104 = ($$8173|0)>(-1); + if ($104) { + $$8159215 = $102;$$8173217 = $$8173;$$8216 = $103; + } else { + break; + } + } + } + break; + } + case 33: { + if ($24) { + $$9160210 = $29;$$9174212 = $$9174209;$$9211 = $31; + while(1) { + $105 = HEAP16[$$9160210>>1]|0; + $106 = $105&65535; + $107 = ((($$9160210)) + 2|0); + $108 = HEAP16[$107>>1]|0; + $109 = $108&65535; + $110 = ((($$9160210)) + 4|0); + $111 = HEAP16[$110>>1]|0; + $112 = $111&65535; + $113 = (_stbi__compute_y_16($106,$109,$112)|0); + HEAP16[$$9211>>1] = $113; + $114 = ((($$9160210)) + 8|0); + $115 = ((($$9211)) + 2|0); + $$9174 = (($$9174212) + -1)|0; + $116 = ($$9174|0)>(-1); + if ($116) { + $$9160210 = $114;$$9174212 = $$9174;$$9211 = $115; + } else { + break; + } + } + } + break; + } + case 34: { + if ($25) { + $$10161205 = $29;$$10175207 = $$10175204;$$10206 = $31; + while(1) { + $117 = HEAP16[$$10161205>>1]|0; + $118 = $117&65535; + $119 = ((($$10161205)) + 2|0); + $120 = HEAP16[$119>>1]|0; + $121 = $120&65535; + $122 = ((($$10161205)) + 4|0); + $123 = HEAP16[$122>>1]|0; + $124 = $123&65535; + $125 = (_stbi__compute_y_16($118,$121,$124)|0); + HEAP16[$$10206>>1] = $125; + $126 = ((($$10161205)) + 6|0); + $127 = HEAP16[$126>>1]|0; + $128 = ((($$10206)) + 2|0); + HEAP16[$128>>1] = $127; + $129 = ((($$10161205)) + 8|0); + $130 = ((($$10206)) + 4|0); + $$10175 = (($$10175207) + -1)|0; + $131 = ($$10175|0)>(-1); + if ($131) { + $$10161205 = $129;$$10175207 = $$10175;$$10206 = $130; + } else { + break; + } + } + } + break; + } + case 35: { + if ($26) { + $$11162201 = $29;$$11176203 = $$11176200;$$11202 = $31; + while(1) { + $132 = HEAP16[$$11162201>>1]|0; + HEAP16[$$11202>>1] = $132; + $133 = ((($$11162201)) + 2|0); + $134 = HEAP16[$133>>1]|0; + $135 = ((($$11202)) + 2|0); + HEAP16[$135>>1] = $134; + $136 = ((($$11162201)) + 4|0); + $137 = HEAP16[$136>>1]|0; + $138 = ((($$11202)) + 4|0); + HEAP16[$138>>1] = $137; + $139 = ((($$11162201)) + 8|0); + $140 = ((($$11202)) + 6|0); + $$11176 = (($$11176203) + -1)|0; + $141 = ($$11176|0)>(-1); + if ($141) { + $$11162201 = $139;$$11176203 = $$11176;$$11202 = $140; + } else { + break; + } + } + } + break; + } + default: { + break L13; + } + } + } while(0); + $142 = (($$0164259) + 1)|0; + $143 = ($142|0)<($4|0); + if ($143) { + $$0164259 = $142; + } else { + break L11; + } + } + ___assert_fail((9826|0),(9676|0),1555,(9803|0)); + // unreachable; + } + } while(0); + _free($0); + $$0163 = $10; + return ($$0163|0); +} +function _stbi__compute_y_16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&65535; + return ($9|0); +} +function _stbi__malloc_mad3($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mad3sizes_valid($0,$1,$2)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + $5 = Math_imul($1, $0)|0; + $6 = Math_imul($5, $2)|0; + $7 = (_stbi__malloc($6)|0); + $$0 = $7; + return ($$0|0); +} +function _stbi__compute_y($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0*77)|0; + $4 = ($1*150)|0; + $5 = (($4) + ($3))|0; + $6 = ($2*29)|0; + $7 = (($5) + ($6))|0; + $8 = $7 >>> 8; + $9 = $8&255; + return ($9|0); +} +function _stbi__mad3sizes_valid($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_stbi__mul2sizes_valid($0,$1)|0); + $4 = ($3|0)==(0); + if ($4) { + $12 = 0; + } else { + $5 = Math_imul($1, $0)|0; + $6 = (_stbi__mul2sizes_valid($5,$2)|0); + $7 = ($6|0)==(0); + if ($7) { + $12 = 0; + } else { + $8 = Math_imul($5, $2)|0; + $9 = (_stbi__addsizes_valid($8)|0); + $10 = ($9|0)!=(0); + $12 = $10; + } + } + $11 = $12&1; + return ($11|0); +} +function _stbi__mul2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 | $0; + $3 = ($2|0)<(0); + if ($3) { + $$0 = 0; + } else { + $4 = ($1|0)==(0); + if ($4) { + $$0 = 1; + } else { + $5 = (2147483647 / ($1|0))&-1; + $6 = ($5|0)>=($0|0); + $7 = $6&1; + $$0 = $7; + } + } + return ($$0|0); +} +function _stbi__addsizes_valid($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 1; +} +function _stbi__check_png_header($0) { + $0 = $0|0; + var $$05 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = ($1<<24>>24)==(-119); + if ($2) { + $3 = (_stbi__get8($0)|0); + $4 = ($3<<24>>24)==(80); + if ($4) { + $5 = (_stbi__get8($0)|0); + $6 = ($5<<24>>24)==(78); + if ($6) { + $7 = (_stbi__get8($0)|0); + $8 = ($7<<24>>24)==(71); + if ($8) { + $9 = (_stbi__get8($0)|0); + $10 = ($9<<24>>24)==(13); + if ($10) { + $11 = (_stbi__get8($0)|0); + $12 = ($11<<24>>24)==(10); + if ($12) { + $13 = (_stbi__get8($0)|0); + $14 = ($13<<24>>24)==(26); + if ($14) { + $15 = (_stbi__get8($0)|0); + $16 = ($15<<24>>24)==(10); + if ($16) { + $$05 = 1; + return ($$05|0); + } + } + } + } + } + } + } + } + _stbi__err(11087); + $$05 = 0; + return ($$05|0); +} +function _stbi__get_chunk_header($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sroa$4$0$$sroa_idx2 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__get32be($1)|0); + $3 = (_stbi__get32be($1)|0); + HEAP32[$0>>2] = $2; + $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0); + HEAP32[$$sroa$4$0$$sroa_idx2>>2] = $3; + return; +} +function _stbi__skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(0); + if ($2) { + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 168|0); + HEAP32[$5>>2] = $4; + return; + } + $6 = ((($0)) + 16|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0|0); + if (!($8)) { + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 168|0); + $12 = HEAP32[$11>>2]|0; + $13 = $10; + $14 = (($13) - ($12))|0; + $15 = ($14|0)<($1|0); + if ($15) { + HEAP32[$11>>2] = $10; + $16 = ((($0)) + 20|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($0)) + 28|0); + $19 = HEAP32[$18>>2]|0; + $20 = (($1) - ($14))|0; + FUNCTION_TABLE_vii[$17 & 63]($19,$20); + return; + } + } + $21 = ((($0)) + 168|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($22) + ($1)|0); + HEAP32[$21>>2] = $23; + return; +} +function _stbi__get32be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get16be($0)|0); + $2 = $1 << 16; + $3 = (_stbi__get16be($0)|0); + $4 = (($2) + ($3))|0; + return ($4|0); +} +function _stbi__get8($0) { + $0 = $0|0; + var $$0 = 0, $$sink6 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 168|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 172|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)<($4>>>0); + do { + if ($5) { + $$sink6 = $2; + } else { + $6 = ((($0)) + 32|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)==(0); + if ($8) { + $$0 = 0; + return ($$0|0); + } else { + _stbi__refill_buffer($0); + $9 = HEAP32[$1>>2]|0; + $$sink6 = $9; + break; + } + } + } while(0); + $10 = ((($$sink6)) + 1|0); + HEAP32[$1>>2] = $10; + $11 = HEAP8[$$sink6>>0]|0; + $$0 = $11; + return ($$0|0); +} +function _stbi__get16be($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__get8($0)|0); + $2 = $1&255; + $3 = $2 << 8; + $4 = (_stbi__get8($0)|0); + $5 = $4&255; + $6 = $3 | $5; + return ($6|0); +} +function _stbi__getn($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($0)) + 172|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($0)) + 168|0); + $9 = HEAP32[$8>>2]|0; + $10 = $9; + $11 = (($7) - ($10))|0; + $12 = ($11|0)<($2|0); + if ($12) { + _memcpy(($1|0),($9|0),($11|0))|0; + $13 = HEAP32[$3>>2]|0; + $14 = ((($0)) + 28|0); + $15 = HEAP32[$14>>2]|0; + $16 = (($1) + ($11)|0); + $17 = (($2) - ($11))|0; + $18 = (FUNCTION_TABLE_iiii[$13 & 15]($15,$16,$17)|0); + $19 = ($18|0)==($17|0); + $20 = $19&1; + $21 = HEAP32[$6>>2]|0; + HEAP32[$8>>2] = $21; + $$1 = $20; + return ($$1|0); + } + } + $22 = ((($0)) + 168|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($23) + ($2)|0); + $25 = ((($0)) + 172|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($24>>>0)>($26>>>0); + if ($27) { + $$1 = 0; + return ($$1|0); + } + _memcpy(($1|0),($23|0),($2|0))|0; + $28 = HEAP32[$22>>2]|0; + $29 = (($28) + ($2)|0); + HEAP32[$22>>2] = $29; + $$1 = 1; + return ($$1|0); +} +function _stbi_zlib_decode_malloc_guesssize_headerflag($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 4080|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(4080|0); + $5 = sp; + $6 = (_stbi__malloc($2)|0); + $7 = ($6|0)==(0|0); + do { + if ($7) { + $$0 = 0; + } else { + HEAP32[$5>>2] = $0; + $8 = (($0) + ($1)|0); + $9 = ((($5)) + 4|0); + HEAP32[$9>>2] = $8; + $10 = (_stbi__do_zlib($5,$6,$2,1,$4)|0); + $11 = ($10|0)==(0); + $12 = ((($5)) + 20|0); + $13 = HEAP32[$12>>2]|0; + if ($11) { + _free($13); + $$0 = 0; + break; + } + $14 = ($3|0)==(0|0); + if ($14) { + $$0 = $13; + } else { + $15 = ((($5)) + 16|0); + $16 = HEAP32[$15>>2]|0; + $17 = $13; + $18 = (($16) - ($17))|0; + HEAP32[$3>>2] = $18; + $$0 = $13; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _stbi__create_png_image($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$0103117 = 0, $$0106116 = 0, $$0107115 = 0, $$095119 = 0, $$099118 = 0, $$3102$ph = 0, $$398$ph = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $7 = ($4|0)==(16); + $8 = $7 ? 2 : 1; + $9 = Math_imul($8, $3)|0; + $10 = ($6|0)==(0); + $11 = HEAP32[$0>>2]|0; + $12 = HEAP32[$11>>2]|0; + $13 = ((($11)) + 4|0); + $14 = HEAP32[$13>>2]|0; + if ($10) { + $15 = (_stbi__create_png_image_raw($0,$1,$2,$3,$12,$14,$4,$5)|0); + $$4 = $15; + return ($$4|0); + } + $16 = (_stbi__malloc_mad3($12,$14,$9)|0); + $17 = ((($0)) + 12|0); + $18 = ((($0)) + 12|0); + $$0103117 = 0;$$095119 = $1;$$099118 = $2; + while(1) { + $19 = HEAP32[$0>>2]|0; + $20 = HEAP32[$19>>2]|0; + $21 = (3020 + ($$0103117<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = (3048 + ($$0103117<<2)|0); + $24 = HEAP32[$23>>2]|0; + $25 = (($20) + -1)|0; + $26 = (($25) - ($22))|0; + $27 = (($26) + ($24))|0; + $28 = (($27>>>0) / ($24>>>0))&-1; + $29 = ((($19)) + 4|0); + $30 = HEAP32[$29>>2]|0; + $31 = (3076 + ($$0103117<<2)|0); + $32 = HEAP32[$31>>2]|0; + $33 = (3104 + ($$0103117<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (($30) + -1)|0; + $36 = (($35) - ($32))|0; + $37 = (($36) + ($34))|0; + $38 = (($37>>>0) / ($34>>>0))&-1; + $39 = ($24>>>0)<=($27>>>0); + $40 = ($34>>>0)<=($37>>>0); + $or$cond = $39 & $40; + if ($or$cond) { + $41 = ((($19)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = Math_imul($28, $4)|0; + $44 = Math_imul($43, $42)|0; + $45 = (($44) + 7)|0; + $46 = $45 >> 3; + $47 = (($46) + 1)|0; + $48 = Math_imul($47, $38)|0; + $49 = (_stbi__create_png_image_raw($0,$$095119,$$099118,$3,$28,$38,$4,$5)|0); + $50 = ($49|0)==(0); + if ($50) { + label = 13; + break; + } + $51 = ($38|0)>(0); + if ($51) { + $52 = ($28|0)>(0); + $$0106116 = 0; + while(1) { + if ($52) { + $53 = HEAP32[$33>>2]|0; + $54 = Math_imul($53, $$0106116)|0; + $55 = HEAP32[$31>>2]|0; + $56 = (($54) + ($55))|0; + $57 = HEAP32[$23>>2]|0; + $58 = HEAP32[$21>>2]|0; + $59 = Math_imul($56, $9)|0; + $60 = Math_imul($$0106116, $28)|0; + $$0107115 = 0; + while(1) { + $61 = Math_imul($57, $$0107115)|0; + $62 = (($61) + ($58))|0; + $63 = HEAP32[$0>>2]|0; + $64 = HEAP32[$63>>2]|0; + $65 = Math_imul($59, $64)|0; + $66 = (($16) + ($65)|0); + $67 = Math_imul($62, $9)|0; + $68 = (($66) + ($67)|0); + $69 = HEAP32[$18>>2]|0; + $70 = (($$0107115) + ($60))|0; + $71 = Math_imul($70, $9)|0; + $72 = (($69) + ($71)|0); + _memcpy(($68|0),($72|0),($9|0))|0; + $73 = (($$0107115) + 1)|0; + $74 = ($73|0)<($28|0); + if ($74) { + $$0107115 = $73; + } else { + break; + } + } + } + $75 = (($$0106116) + 1)|0; + $76 = ($75|0)<($38|0); + if ($76) { + $$0106116 = $75; + } else { + break; + } + } + } + $77 = HEAP32[$17>>2]|0; + _free($77); + $78 = (($$095119) + ($48)|0); + $79 = (($$099118) - ($48))|0; + $$3102$ph = $79;$$398$ph = $78; + } else { + $$3102$ph = $$099118;$$398$ph = $$095119; + } + $80 = (($$0103117) + 1)|0; + $81 = ($80|0)<(7); + if ($81) { + $$0103117 = $80;$$095119 = $$398$ph;$$099118 = $$3102$ph; + } else { + label = 15; + break; + } + } + if ((label|0) == 13) { + _free($16); + $$4 = 0; + return ($$4|0); + } + else if ((label|0) == 15) { + $82 = ((($0)) + 12|0); + HEAP32[$82>>2] = $16; + $$4 = 1; + return ($$4|0); + } + return (0)|0; +} +function _stbi__compute_transparency16($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP16[$$04>>1]|0; + $15 = HEAP16[$1>>1]|0; + $not$ = ($14<<16>>16)!=($15<<16>>16); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 2|0); + HEAP16[$17>>1] = $16; + $18 = ((($$04)) + 4|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 2|0); + $12 = ((($1)) + 4|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP16[$$16>>1]|0; + $21 = HEAP16[$1>>1]|0; + $22 = ($20<<16>>16)==($21<<16>>16); + if ($22) { + $23 = ((($$16)) + 2|0); + $24 = HEAP16[$23>>1]|0; + $25 = HEAP16[$11>>1]|0; + $26 = ($24<<16>>16)==($25<<16>>16); + if ($26) { + $27 = ((($$16)) + 4|0); + $28 = HEAP16[$27>>1]|0; + $29 = HEAP16[$12>>1]|0; + $30 = ($28<<16>>16)==($29<<16>>16); + if ($30) { + $31 = ((($$16)) + 6|0); + HEAP16[$31>>1] = 0; + } + } + } + $32 = ((($$16)) + 8|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((10169|0),(9676|0),4569,(10221|0)); + // unreachable; + } + } +} +function _stbi__compute_transparency($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0323 = 0, $$04 = 0, $$1335 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($2|0) { + case 2: { + $13 = ($7|0)==(0); + if ($13) { + return; + } else { + $$0323 = 0;$$04 = $9; + } + while(1) { + $14 = HEAP8[$$04>>0]|0; + $15 = HEAP8[$1>>0]|0; + $not$ = ($14<<24>>24)!=($15<<24>>24); + $16 = $not$ << 31 >> 31; + $17 = ((($$04)) + 1|0); + HEAP8[$17>>0] = $16; + $18 = ((($$04)) + 2|0); + $19 = (($$0323) + 1)|0; + $exitcond = ($19|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0323 = $19;$$04 = $18; + } + } + return; + break; + } + case 4: { + $10 = ($7|0)==(0); + if ($10) { + return; + } + $11 = ((($1)) + 1|0); + $12 = ((($1)) + 2|0); + $$1335 = 0;$$16 = $9; + while(1) { + $20 = HEAP8[$$16>>0]|0; + $21 = HEAP8[$1>>0]|0; + $22 = ($20<<24>>24)==($21<<24>>24); + if ($22) { + $23 = ((($$16)) + 1|0); + $24 = HEAP8[$23>>0]|0; + $25 = HEAP8[$11>>0]|0; + $26 = ($24<<24>>24)==($25<<24>>24); + if ($26) { + $27 = ((($$16)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = HEAP8[$12>>0]|0; + $30 = ($28<<24>>24)==($29<<24>>24); + if ($30) { + $31 = ((($$16)) + 3|0); + HEAP8[$31>>0] = 0; + } + } + } + $32 = ((($$16)) + 4|0); + $33 = (($$1335) + 1)|0; + $exitcond9 = ($33|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1335 = $33;$$16 = $32; + } + } + return; + break; + } + default: { + ___assert_fail((10169|0),(9676|0),4544,(10194|0)); + // unreachable; + } + } +} +function _stbi__de_iphone($0) { + $0 = $0|0; + var $$05158 = 0, $$059 = 0, $$15263 = 0, $$164 = 0, $$25360 = 0, $$261 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond68 = 0, $exitcond69 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP32[$1>>2]|0; + $3 = ((($1)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = Math_imul($4, $2)|0; + $6 = ((($0)) + 12|0); + $7 = HEAP32[$6>>2]|0; + $8 = ((($1)) + 12|0); + $9 = HEAP32[$8>>2]|0; + switch ($9|0) { + case 3: { + $10 = ($5|0)==(0); + if ($10) { + return; + } else { + $$05158 = $7;$$059 = 0; + } + while(1) { + $11 = HEAP8[$$05158>>0]|0; + $12 = ((($$05158)) + 2|0); + $13 = HEAP8[$12>>0]|0; + HEAP8[$$05158>>0] = $13; + HEAP8[$12>>0] = $11; + $14 = ((($$05158)) + 3|0); + $15 = (($$059) + 1)|0; + $exitcond = ($15|0)==($5|0); + if ($exitcond) { + break; + } else { + $$05158 = $14;$$059 = $15; + } + } + return; + break; + } + case 4: { + $16 = HEAP32[5194]|0; + $17 = ($16|0)==(0); + $18 = ($5|0)!=(0); + if ($17) { + if ($18) { + $$25360 = $7;$$261 = 0; + } else { + return; + } + while(1) { + $42 = HEAP8[$$25360>>0]|0; + $43 = ((($$25360)) + 2|0); + $44 = HEAP8[$43>>0]|0; + HEAP8[$$25360>>0] = $44; + HEAP8[$43>>0] = $42; + $45 = ((($$25360)) + 4|0); + $46 = (($$261) + 1)|0; + $exitcond68 = ($46|0)==($5|0); + if ($exitcond68) { + break; + } else { + $$25360 = $45;$$261 = $46; + } + } + return; + } + if ($18) { + $$15263 = $7;$$164 = 0; + } else { + return; + } + while(1) { + $19 = ((($$15263)) + 3|0); + $20 = HEAP8[$19>>0]|0; + $21 = HEAP8[$$15263>>0]|0; + $22 = ($20<<24>>24)==(0); + $23 = ((($$15263)) + 2|0); + $24 = HEAP8[$23>>0]|0; + if ($22) { + HEAP8[$$15263>>0] = $24; + $$sink = $21; + } else { + $25 = $24&255; + $26 = ($25*255)|0; + $27 = $20&255; + $28 = (($26>>>0) / ($27>>>0))&-1; + $29 = $28&255; + HEAP8[$$15263>>0] = $29; + $30 = ((($$15263)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = ($32*255)|0; + $34 = (($33>>>0) / ($27>>>0))&-1; + $35 = $34&255; + HEAP8[$30>>0] = $35; + $36 = $21&255; + $37 = ($36*255)|0; + $38 = (($37>>>0) / ($27>>>0))&-1; + $39 = $38&255; + $$sink = $39; + } + HEAP8[$23>>0] = $$sink; + $40 = ((($$15263)) + 4|0); + $41 = (($$164) + 1)|0; + $exitcond69 = ($41|0)==($5|0); + if ($exitcond69) { + break; + } else { + $$15263 = $40;$$164 = $41; + } + } + return; + break; + } + default: { + ___assert_fail((10135|0),(9676|0),4650,(10153|0)); + // unreachable; + } + } +} +function _stbi__expand_png_palette($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0574 = 0, $$0583 = 0, $$1595 = 0, $$16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = HEAP32[$3>>2]|0; + $5 = ((($3)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = Math_imul($6, $4)|0; + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_stbi__malloc_mad2($7,$2)|0); + $11 = ($10|0)==(0|0); + if ($11) { + _stbi__err(9731); + $$0 = 0; + return ($$0|0); + } + $12 = ($2|0)==(3); + $13 = ($7|0)!=(0); + if ($12) { + if ($13) { + $$0574 = 0;$$0583 = $10; + while(1) { + $14 = (($9) + ($$0574)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = $16 << 2; + $18 = (($1) + ($17)|0); + $19 = HEAP8[$18>>0]|0; + HEAP8[$$0583>>0] = $19; + $20 = $17 | 1; + $21 = (($1) + ($20)|0); + $22 = HEAP8[$21>>0]|0; + $23 = ((($$0583)) + 1|0); + HEAP8[$23>>0] = $22; + $24 = $17 | 2; + $25 = (($1) + ($24)|0); + $26 = HEAP8[$25>>0]|0; + $27 = ((($$0583)) + 2|0); + HEAP8[$27>>0] = $26; + $28 = ((($$0583)) + 3|0); + $29 = (($$0574) + 1)|0; + $exitcond = ($29|0)==($7|0); + if ($exitcond) { + break; + } else { + $$0574 = $29;$$0583 = $28; + } + } + } + } else { + if ($13) { + $$1595 = $10;$$16 = 0; + while(1) { + $30 = (($9) + ($$16)|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 << 2; + $34 = (($1) + ($33)|0); + $35 = HEAP8[$34>>0]|0; + HEAP8[$$1595>>0] = $35; + $36 = $33 | 1; + $37 = (($1) + ($36)|0); + $38 = HEAP8[$37>>0]|0; + $39 = ((($$1595)) + 1|0); + HEAP8[$39>>0] = $38; + $40 = $33 | 2; + $41 = (($1) + ($40)|0); + $42 = HEAP8[$41>>0]|0; + $43 = ((($$1595)) + 2|0); + HEAP8[$43>>0] = $42; + $44 = $33 | 3; + $45 = (($1) + ($44)|0); + $46 = HEAP8[$45>>0]|0; + $47 = ((($$1595)) + 3|0); + HEAP8[$47>>0] = $46; + $48 = ((($$1595)) + 4|0); + $49 = (($$16) + 1)|0; + $exitcond9 = ($49|0)==($7|0); + if ($exitcond9) { + break; + } else { + $$1595 = $48;$$16 = $49; + } + } + } + } + $50 = HEAP32[$8>>2]|0; + _free($50); + HEAP32[$8>>2] = $10; + $$0 = 1; + return ($$0|0); +} +function _stbi__malloc_mad2($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mad2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $$0 = 0; + return ($$0|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__malloc($4)|0); + $$0 = $5; + return ($$0|0); +} +function _stbi__mad2sizes_valid($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_stbi__mul2sizes_valid($0,$1)|0); + $3 = ($2|0)==(0); + if ($3) { + $8 = 0; + $7 = $8&1; + return ($7|0); + } + $4 = Math_imul($1, $0)|0; + $5 = (_stbi__addsizes_valid($4)|0); + $6 = ($5|0)!=(0); + $8 = $6; + $7 = $8&1; + return ($7|0); +} +function _stbi__create_png_image_raw($0,$1,$2,$3,$4,$5,$6,$7) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + $7 = $7|0; + var $$0568 = 0, $$0568724 = 0, $$0568725 = 0, $$0571$lcssa = 0, $$0571715 = 0, $$0574$lcssa = 0, $$0574714 = 0, $$0577817 = 0, $$0588 = 0, $$0597 = 0, $$0608816 = 0, $$0611815 = 0, $$0614 = 0, $$0614793 = 0, $$0614796 = 0, $$0623814 = 0, $$0625734 = 0, $$0731 = 0, $$1 = 0, $$10635764 = 0; + var $$11$ph = 0, $$11636755 = 0, $$12747 = 0, $$13739 = 0, $$14$lcssa = 0, $$14713 = 0, $$15$lcssa = 0, $$15705 = 0, $$1572$lcssa = 0, $$1572707 = 0, $$1575$lcssa = 0, $$1575706 = 0, $$1578 = 0, $$16$lcssa = 0, $$1609 = 0, $$1612 = 0, $$1615 = 0, $$1615785 = 0, $$1615788 = 0, $$1624727 = 0; + var $$1626812 = 0, $$16700 = 0, $$1721 = 0, $$1722 = 0, $$2 = 0, $$2573$lcssa = 0, $$2573702 = 0, $$2579795 = 0, $$2599794 = 0, $$2616 = 0, $$2616776 = 0, $$2616780 = 0, $$2627810 = 0, $$3580787 = 0, $$3592778 = 0, $$3600786 = 0, $$3617 = 0, $$3617767 = 0, $$3617771 = 0, $$3628808 = 0; + var $$4$lcssa = 0, $$4581779 = 0, $$4593769 = 0, $$4601777 = 0, $$4618 = 0, $$4618758 = 0, $$4618762 = 0, $$4629806 = 0, $$4701 = 0, $$5582770 = 0, $$5594760 = 0, $$5602768 = 0, $$5619 = 0, $$5619750 = 0, $$5619753 = 0, $$5630804 = 0, $$6583761 = 0, $$6603759 = 0, $$6620 = 0, $$6620742 = 0; + var $$6620745 = 0, $$6631802 = 0, $$7584752 = 0, $$7604751 = 0, $$7621798 = 0, $$7632790 = 0, $$8585744 = 0, $$8605743 = 0, $$8622729 = 0, $$8633782 = 0, $$9586 = 0, $$9606799 = 0, $$9634773 = 0, $$not = 0, $$sink = 0, $$sink1 = 0, $$sink641 = 0, $10 = 0, $100 = 0, $101 = 0; + var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; + var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; + var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; + var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; + var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; + var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; + var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; + var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; + var $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0; + var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; + var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0; + var $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0; + var $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0; + var $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0; + var $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0; + var $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0; + var $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0; + var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0; + var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0; + var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0; + var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0; + var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0; + var $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0; + var $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0; + var $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0; + var $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0; + var $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0; + var $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0; + var $611 = 0, $612 = 0, $613 = 0, $614 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; + var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; + var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge894 = 0, $exitcond = 0, $exitcond864 = 0, $exitcond865 = 0, $exitcond867 = 0, $exitcond869 = 0, $exitcond871 = 0, $exitcond873 = 0, $exitcond875 = 0, $exitcond877 = 0, $exitcond880 = 0, $exitcond881 = 0, $exitcond882 = 0, $exitcond883 = 0, $exitcond884 = 0; + var $exitcond885 = 0, $exitcond886 = 0, $indvars$iv = 0, $indvars$iv$next = 0, $indvars$iv$next849 = 0, $indvars$iv$next852 = 0, $indvars$iv$next855 = 0, $indvars$iv$next858 = 0, $indvars$iv$next861 = 0, $indvars$iv848 = 0, $indvars$iv851 = 0, $indvars$iv854 = 0, $indvars$iv857 = 0, $indvars$iv860 = 0, $or$cond = 0, $scevgep = 0, $scevgep850 = 0, $scevgep853 = 0, $scevgep856 = 0, $scevgep859 = 0; + var $scevgep862 = 0, $scevgep866 = 0, $scevgep868 = 0, $scevgep870 = 0, $scevgep872 = 0, $scevgep874 = 0, $scevgep876 = 0, $scevgep879 = 0, $trunc = 0, $trunc637 = 0, $trunc638 = 0, label = 0, sp = 0; + sp = STACKTOP; + $8 = ($6|0)==(16); + $9 = $8 ? 2 : 1; + $10 = HEAP32[$0>>2]|0; + $11 = Math_imul($4, $3)|0; + $12 = Math_imul($9, $11)|0; + $13 = ((($10)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = Math_imul($9, $3)|0; + $16 = Math_imul($14, $9)|0; + $17 = ($14|0)==($3|0); + $18 = (($14) + 1)|0; + $19 = ($18|0)==($3|0); + $or$cond = $17 | $19; + if (!($or$cond)) { + ___assert_fail((10250|0),(9676|0),4294,(10291|0)); + // unreachable; + } + $20 = (_stbi__malloc_mad3($4,$5,$15)|0); + $21 = ((($0)) + 12|0); + HEAP32[$21>>2] = $20; + $22 = ($20|0)==(0|0); + if ($22) { + _stbi__err(9731); + $$2 = 0; + return ($$2|0); + } + $23 = Math_imul($14, $4)|0; + $24 = Math_imul($23, $6)|0; + $25 = (($24) + 7)|0; + $26 = $25 >>> 3; + $27 = (($26) + 1)|0; + $28 = Math_imul($27, $5)|0; + $29 = HEAP32[$10>>2]|0; + $30 = ($29|0)==($4|0); + if ($30) { + $31 = ((($10)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($5|0); + if ($33) { + $34 = ($28|0)==($2|0); + if (!($34)) { + _stbi__err(10318); + $$2 = 0; + return ($$2|0); + } + } else { + label = 9; + } + } else { + label = 9; + } + if ((label|0) == 9) { + $35 = ($28>>>0)>($2>>>0); + if ($35) { + _stbi__err(10318); + $$2 = 0; + return ($$2|0); + } + } + $36 = ($5|0)==(0); + L18: do { + if (!($36)) { + $37 = ($6|0)<(8); + $38 = ($26>>>0)>($4>>>0); + $39 = (($11) - ($26))|0; + $40 = (0 - ($12))|0; + $41 = ($6|0)==(8); + $brmerge = $37 | $17; + $42 = ($4|0)==(0); + $$0614793 = (($4) + -1)|0; + $43 = ($$0614793|0)==(0); + $$1615785 = (($4) + -1)|0; + $44 = ($$1615785|0)==(0); + $$2616776 = (($4) + -1)|0; + $45 = ($$2616776|0)==(0); + $$3617767 = (($4) + -1)|0; + $46 = ($$3617767|0)==(0); + $$4618758 = (($4) + -1)|0; + $47 = ($$4618758|0)==(0); + $$5619750 = (($4) + -1)|0; + $48 = ($$5619750|0)==(0); + $$6620742 = (($4) + -1)|0; + $49 = ($$6620742|0)==(0); + $$not = $8 ^ 1; + $brmerge894 = $42 | $$not; + $$0577817 = $1;$$0608816 = $4;$$0611815 = $16;$$0623814 = 0; + while(1) { + $50 = HEAP32[$21>>2]|0; + $51 = Math_imul($$0623814, $12)|0; + $52 = (($50) + ($51)|0); + $53 = ((($$0577817)) + 1|0); + $54 = HEAP8[$$0577817>>0]|0; + $55 = $54&255; + $56 = ($54&255)>(4); + if ($56) { + label = 105; + break; + } + if ($37) { + if ($38) { + label = 16; + break; + } + $57 = (($52) + ($39)|0); + $$0597 = $57;$$1609 = $26;$$1612 = 1; + } else { + $$0597 = $52;$$1609 = $$0608816;$$1612 = $$0611815; + } + $58 = (($$0597) + ($40)|0); + $59 = ($$0623814|0)==(0); + if ($59) { + $60 = (10357 + ($55)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $$0588 = $62; + } else { + $$0588 = $55; + } + $63 = ($$1612|0)>(0); + L30: do { + if ($63) { + $trunc638 = $$0588&255; + $$0625734 = 0; + while(1) { + switch ($trunc638<<24>>24) { + case 0: { + $64 = (($53) + ($$0625734)|0); + $65 = HEAP8[$64>>0]|0; + $$sink = $65; + label = 30; + break; + } + case 1: { + $66 = (($53) + ($$0625734)|0); + $67 = HEAP8[$66>>0]|0; + $$sink = $67; + label = 30; + break; + } + case 2: { + $68 = (($53) + ($$0625734)|0); + $69 = HEAP8[$68>>0]|0; + $70 = $69&255; + $71 = (($58) + ($$0625734)|0); + $72 = HEAP8[$71>>0]|0; + $73 = $72&255; + $74 = (($73) + ($70))|0; + $75 = $74&255; + $$sink = $75; + label = 30; + break; + } + case 3: { + $76 = (($53) + ($$0625734)|0); + $77 = HEAP8[$76>>0]|0; + $78 = $77&255; + $79 = (($58) + ($$0625734)|0); + $80 = HEAP8[$79>>0]|0; + $81 = $80&255; + $82 = $81 >>> 1; + $83 = (($82) + ($78))|0; + $84 = $83&255; + $$sink = $84; + label = 30; + break; + } + case 4: { + $85 = (($53) + ($$0625734)|0); + $86 = HEAP8[$85>>0]|0; + $87 = $86&255; + $88 = (($58) + ($$0625734)|0); + $89 = HEAP8[$88>>0]|0; + $90 = $89&255; + $91 = (_stbi__paeth(0,$90,0)|0); + $92 = (($91) + ($87))|0; + $93 = $92&255; + $$sink = $93; + label = 30; + break; + } + case 5: { + $94 = (($53) + ($$0625734)|0); + $95 = HEAP8[$94>>0]|0; + $$sink = $95; + label = 30; + break; + } + case 6: { + $96 = (($53) + ($$0625734)|0); + $97 = HEAP8[$96>>0]|0; + $$sink = $97; + label = 30; + break; + } + default: { + } + } + if ((label|0) == 30) { + label = 0; + $$sink1 = (($$0597) + ($$0625734)|0); + HEAP8[$$sink1>>0] = $$sink; + } + $98 = (($$0625734) + 1)|0; + $exitcond864 = ($98|0)==($$1612|0); + if ($exitcond864) { + break L30; + } else { + $$0625734 = $98; + } + } + } + } while(0); + do { + if ($41) { + if (!($17)) { + $99 = (($$0597) + ($14)|0); + HEAP8[$99>>0] = -1; + } + $100 = (($53) + ($14)|0); + $$1578 = $100;$$sink641 = $3; + } else { + if (!($8)) { + $105 = ((($$0577817)) + 2|0); + $$1578 = $105;$$sink641 = 1; + break; + } + if (!($17)) { + $101 = (($$1612) + 1)|0; + $102 = (($$0597) + ($101)|0); + $103 = (($$0597) + ($$1612)|0); + HEAP8[$103>>0] = -1; + HEAP8[$102>>0] = -1; + } + $104 = (($53) + ($$1612)|0); + $$1578 = $104;$$sink641 = $15; + } + } while(0); + $106 = (($$0597) + ($$sink641)|0); + $107 = (($58) + ($$sink641)|0); + if ($brmerge) { + $108 = (($$1609) + -1)|0; + $109 = Math_imul($108, $$1612)|0; + $trunc637 = $$0588&255; + switch ($trunc637<<24>>24) { + case 0: { + _memcpy(($106|0),($$1578|0),($109|0))|0; + break; + } + case 1: { + $115 = ($109|0)>(0); + if ($115) { + $$1626812 = 0; + while(1) { + $116 = (($$1578) + ($$1626812)|0); + $117 = HEAP8[$116>>0]|0; + $118 = $117&255; + $119 = (($$1626812) - ($$1612))|0; + $120 = (($106) + ($119)|0); + $121 = HEAP8[$120>>0]|0; + $122 = $121&255; + $123 = (($122) + ($118))|0; + $124 = $123&255; + $125 = (($106) + ($$1626812)|0); + HEAP8[$125>>0] = $124; + $126 = (($$1626812) + 1)|0; + $exitcond886 = ($126|0)==($109|0); + if ($exitcond886) { + break; + } else { + $$1626812 = $126; + } + } + } + break; + } + case 2: { + $114 = ($109|0)>(0); + if ($114) { + $$2627810 = 0; + while(1) { + $127 = (($$1578) + ($$2627810)|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = (($107) + ($$2627810)|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = (($132) + ($129))|0; + $134 = $133&255; + $135 = (($106) + ($$2627810)|0); + HEAP8[$135>>0] = $134; + $136 = (($$2627810) + 1)|0; + $exitcond885 = ($136|0)==($109|0); + if ($exitcond885) { + break; + } else { + $$2627810 = $136; + } + } + } + break; + } + case 3: { + $113 = ($109|0)>(0); + if ($113) { + $$3628808 = 0; + while(1) { + $137 = (($$1578) + ($$3628808)|0); + $138 = HEAP8[$137>>0]|0; + $139 = $138&255; + $140 = (($107) + ($$3628808)|0); + $141 = HEAP8[$140>>0]|0; + $142 = $141&255; + $143 = (($$3628808) - ($$1612))|0; + $144 = (($106) + ($143)|0); + $145 = HEAP8[$144>>0]|0; + $146 = $145&255; + $147 = (($146) + ($142))|0; + $148 = $147 >>> 1; + $149 = (($148) + ($139))|0; + $150 = $149&255; + $151 = (($106) + ($$3628808)|0); + HEAP8[$151>>0] = $150; + $152 = (($$3628808) + 1)|0; + $exitcond884 = ($152|0)==($109|0); + if ($exitcond884) { + break; + } else { + $$3628808 = $152; + } + } + } + break; + } + case 4: { + $112 = ($109|0)>(0); + if ($112) { + $$4629806 = 0; + while(1) { + $153 = (($$1578) + ($$4629806)|0); + $154 = HEAP8[$153>>0]|0; + $155 = $154&255; + $156 = (($$4629806) - ($$1612))|0; + $157 = (($106) + ($156)|0); + $158 = HEAP8[$157>>0]|0; + $159 = $158&255; + $160 = (($107) + ($$4629806)|0); + $161 = HEAP8[$160>>0]|0; + $162 = $161&255; + $163 = (($107) + ($156)|0); + $164 = HEAP8[$163>>0]|0; + $165 = $164&255; + $166 = (_stbi__paeth($159,$162,$165)|0); + $167 = (($166) + ($155))|0; + $168 = $167&255; + $169 = (($106) + ($$4629806)|0); + HEAP8[$169>>0] = $168; + $170 = (($$4629806) + 1)|0; + $exitcond883 = ($170|0)==($109|0); + if ($exitcond883) { + break; + } else { + $$4629806 = $170; + } + } + } + break; + } + case 5: { + $111 = ($109|0)>(0); + if ($111) { + $$5630804 = 0; + while(1) { + $171 = (($$1578) + ($$5630804)|0); + $172 = HEAP8[$171>>0]|0; + $173 = $172&255; + $174 = (($$5630804) - ($$1612))|0; + $175 = (($106) + ($174)|0); + $176 = HEAP8[$175>>0]|0; + $177 = $176&255; + $178 = $177 >>> 1; + $179 = (($178) + ($173))|0; + $180 = $179&255; + $181 = (($106) + ($$5630804)|0); + HEAP8[$181>>0] = $180; + $182 = (($$5630804) + 1)|0; + $exitcond882 = ($182|0)==($109|0); + if ($exitcond882) { + break; + } else { + $$5630804 = $182; + } + } + } + break; + } + case 6: { + $110 = ($109|0)>(0); + if ($110) { + $$6631802 = 0; + while(1) { + $183 = (($$1578) + ($$6631802)|0); + $184 = HEAP8[$183>>0]|0; + $185 = $184&255; + $186 = (($$6631802) - ($$1612))|0; + $187 = (($106) + ($186)|0); + $188 = HEAP8[$187>>0]|0; + $189 = $188&255; + $190 = (_stbi__paeth($189,0,0)|0); + $191 = (($190) + ($185))|0; + $192 = $191&255; + $193 = (($106) + ($$6631802)|0); + HEAP8[$193>>0] = $192; + $194 = (($$6631802) + 1)|0; + $exitcond881 = ($194|0)==($109|0); + if ($exitcond881) { + break; + } else { + $$6631802 = $194; + } + } + } + break; + } + default: { + } + } + $195 = (($$1578) + ($109)|0); + $$11$ph = $195; + } else { + if (!($19)) { + label = 58; + break; + } + $trunc = $$0588&255; + switch ($trunc<<24>>24) { + case 0: { + if ($43) { + $$9586 = $$1578; + } else { + $208 = ($$1612|0)>(0); + $209 = Math_imul($$6620742, $$1612)|0; + $$0614796 = $$0614793;$$2579795 = $$1578;$$2599794 = $106; + while(1) { + if ($208) { + $$7632790 = 0; + while(1) { + $210 = (($$2579795) + ($$7632790)|0); + $211 = HEAP8[$210>>0]|0; + $212 = (($$2599794) + ($$7632790)|0); + HEAP8[$212>>0] = $211; + $213 = (($$7632790) + 1)|0; + $exitcond877 = ($213|0)==($$1612|0); + if ($exitcond877) { + break; + } else { + $$7632790 = $213; + } + } + } + $214 = (($$2599794) + ($$1612)|0); + HEAP8[$214>>0] = -1; + $215 = (($$2579795) + ($$1612)|0); + $216 = (($$2599794) + ($15)|0); + $$0614 = (($$0614796) + -1)|0; + $217 = ($$0614|0)==(0); + if ($217) { + break; + } else { + $$0614796 = $$0614;$$2579795 = $215;$$2599794 = $216; + } + } + $scevgep879 = (($$1578) + ($209)|0); + $$9586 = $scevgep879; + } + break; + } + case 1: { + if ($44) { + $$9586 = $$1578; + } else { + $206 = ($$1612|0)>(0); + $207 = Math_imul($$6620742, $$1612)|0; + $$1615788 = $$1615785;$$3580787 = $$1578;$$3600786 = $106; + while(1) { + if ($206) { + $$8633782 = 0; + while(1) { + $218 = (($$3580787) + ($$8633782)|0); + $219 = HEAP8[$218>>0]|0; + $220 = $219&255; + $221 = (($$8633782) - ($15))|0; + $222 = (($$3600786) + ($221)|0); + $223 = HEAP8[$222>>0]|0; + $224 = $223&255; + $225 = (($224) + ($220))|0; + $226 = $225&255; + $227 = (($$3600786) + ($$8633782)|0); + HEAP8[$227>>0] = $226; + $228 = (($$8633782) + 1)|0; + $exitcond875 = ($228|0)==($$1612|0); + if ($exitcond875) { + break; + } else { + $$8633782 = $228; + } + } + } + $229 = (($$3600786) + ($$1612)|0); + HEAP8[$229>>0] = -1; + $230 = (($$3580787) + ($$1612)|0); + $231 = (($$3600786) + ($15)|0); + $$1615 = (($$1615788) + -1)|0; + $232 = ($$1615|0)==(0); + if ($232) { + break; + } else { + $$1615788 = $$1615;$$3580787 = $230;$$3600786 = $231; + } + } + $scevgep876 = (($$1578) + ($207)|0); + $$9586 = $scevgep876; + } + break; + } + case 2: { + if ($45) { + $$9586 = $$1578; + } else { + $204 = ($$1612|0)>(0); + $205 = Math_imul($$6620742, $$1612)|0; + $$2616780 = $$2616776;$$3592778 = $107;$$4581779 = $$1578;$$4601777 = $106; + while(1) { + if ($204) { + $$9634773 = 0; + while(1) { + $233 = (($$4581779) + ($$9634773)|0); + $234 = HEAP8[$233>>0]|0; + $235 = $234&255; + $236 = (($$3592778) + ($$9634773)|0); + $237 = HEAP8[$236>>0]|0; + $238 = $237&255; + $239 = (($238) + ($235))|0; + $240 = $239&255; + $241 = (($$4601777) + ($$9634773)|0); + HEAP8[$241>>0] = $240; + $242 = (($$9634773) + 1)|0; + $exitcond873 = ($242|0)==($$1612|0); + if ($exitcond873) { + break; + } else { + $$9634773 = $242; + } + } + } + $243 = (($$4601777) + ($$1612)|0); + HEAP8[$243>>0] = -1; + $244 = (($$4581779) + ($$1612)|0); + $245 = (($$4601777) + ($15)|0); + $246 = (($$3592778) + ($15)|0); + $$2616 = (($$2616780) + -1)|0; + $247 = ($$2616|0)==(0); + if ($247) { + break; + } else { + $$2616780 = $$2616;$$3592778 = $246;$$4581779 = $244;$$4601777 = $245; + } + } + $scevgep874 = (($$1578) + ($205)|0); + $$9586 = $scevgep874; + } + break; + } + case 3: { + if ($46) { + $$9586 = $$1578; + } else { + $202 = ($$1612|0)>(0); + $203 = Math_imul($$6620742, $$1612)|0; + $$3617771 = $$3617767;$$4593769 = $107;$$5582770 = $$1578;$$5602768 = $106; + while(1) { + if ($202) { + $$10635764 = 0; + while(1) { + $248 = (($$5582770) + ($$10635764)|0); + $249 = HEAP8[$248>>0]|0; + $250 = $249&255; + $251 = (($$4593769) + ($$10635764)|0); + $252 = HEAP8[$251>>0]|0; + $253 = $252&255; + $254 = (($$10635764) - ($15))|0; + $255 = (($$5602768) + ($254)|0); + $256 = HEAP8[$255>>0]|0; + $257 = $256&255; + $258 = (($257) + ($253))|0; + $259 = $258 >>> 1; + $260 = (($259) + ($250))|0; + $261 = $260&255; + $262 = (($$5602768) + ($$10635764)|0); + HEAP8[$262>>0] = $261; + $263 = (($$10635764) + 1)|0; + $exitcond871 = ($263|0)==($$1612|0); + if ($exitcond871) { + break; + } else { + $$10635764 = $263; + } + } + } + $264 = (($$5602768) + ($$1612)|0); + HEAP8[$264>>0] = -1; + $265 = (($$5582770) + ($$1612)|0); + $266 = (($$5602768) + ($15)|0); + $267 = (($$4593769) + ($15)|0); + $$3617 = (($$3617771) + -1)|0; + $268 = ($$3617|0)==(0); + if ($268) { + break; + } else { + $$3617771 = $$3617;$$4593769 = $267;$$5582770 = $265;$$5602768 = $266; + } + } + $scevgep872 = (($$1578) + ($203)|0); + $$9586 = $scevgep872; + } + break; + } + case 4: { + if ($47) { + $$9586 = $$1578; + } else { + $200 = ($$1612|0)>(0); + $201 = Math_imul($$6620742, $$1612)|0; + $$4618762 = $$4618758;$$5594760 = $107;$$6583761 = $$1578;$$6603759 = $106; + while(1) { + if ($200) { + $$11636755 = 0; + while(1) { + $269 = (($$6583761) + ($$11636755)|0); + $270 = HEAP8[$269>>0]|0; + $271 = $270&255; + $272 = (($$11636755) - ($15))|0; + $273 = (($$6603759) + ($272)|0); + $274 = HEAP8[$273>>0]|0; + $275 = $274&255; + $276 = (($$5594760) + ($$11636755)|0); + $277 = HEAP8[$276>>0]|0; + $278 = $277&255; + $279 = (($$5594760) + ($272)|0); + $280 = HEAP8[$279>>0]|0; + $281 = $280&255; + $282 = (_stbi__paeth($275,$278,$281)|0); + $283 = (($282) + ($271))|0; + $284 = $283&255; + $285 = (($$6603759) + ($$11636755)|0); + HEAP8[$285>>0] = $284; + $286 = (($$11636755) + 1)|0; + $exitcond869 = ($286|0)==($$1612|0); + if ($exitcond869) { + break; + } else { + $$11636755 = $286; + } + } + } + $287 = (($$6603759) + ($$1612)|0); + HEAP8[$287>>0] = -1; + $288 = (($$6583761) + ($$1612)|0); + $289 = (($$6603759) + ($15)|0); + $290 = (($$5594760) + ($15)|0); + $$4618 = (($$4618762) + -1)|0; + $291 = ($$4618|0)==(0); + if ($291) { + break; + } else { + $$4618762 = $$4618;$$5594760 = $290;$$6583761 = $288;$$6603759 = $289; + } + } + $scevgep870 = (($$1578) + ($201)|0); + $$9586 = $scevgep870; + } + break; + } + case 5: { + if ($48) { + $$9586 = $$1578; + } else { + $198 = ($$1612|0)>(0); + $199 = Math_imul($$6620742, $$1612)|0; + $$5619753 = $$5619750;$$7584752 = $$1578;$$7604751 = $106; + while(1) { + if ($198) { + $$12747 = 0; + while(1) { + $292 = (($$7584752) + ($$12747)|0); + $293 = HEAP8[$292>>0]|0; + $294 = $293&255; + $295 = (($$12747) - ($15))|0; + $296 = (($$7604751) + ($295)|0); + $297 = HEAP8[$296>>0]|0; + $298 = $297&255; + $299 = $298 >>> 1; + $300 = (($299) + ($294))|0; + $301 = $300&255; + $302 = (($$7604751) + ($$12747)|0); + HEAP8[$302>>0] = $301; + $303 = (($$12747) + 1)|0; + $exitcond867 = ($303|0)==($$1612|0); + if ($exitcond867) { + break; + } else { + $$12747 = $303; + } + } + } + $304 = (($$7604751) + ($$1612)|0); + HEAP8[$304>>0] = -1; + $305 = (($$7584752) + ($$1612)|0); + $306 = (($$7604751) + ($15)|0); + $$5619 = (($$5619753) + -1)|0; + $307 = ($$5619|0)==(0); + if ($307) { + break; + } else { + $$5619753 = $$5619;$$7584752 = $305;$$7604751 = $306; + } + } + $scevgep868 = (($$1578) + ($199)|0); + $$9586 = $scevgep868; + } + break; + } + case 6: { + if ($49) { + $$9586 = $$1578; + } else { + $196 = ($$1612|0)>(0); + $197 = Math_imul($$6620742, $$1612)|0; + $$6620745 = $$6620742;$$8585744 = $$1578;$$8605743 = $106; + while(1) { + if ($196) { + $$13739 = 0; + while(1) { + $308 = (($$8585744) + ($$13739)|0); + $309 = HEAP8[$308>>0]|0; + $310 = $309&255; + $311 = (($$13739) - ($15))|0; + $312 = (($$8605743) + ($311)|0); + $313 = HEAP8[$312>>0]|0; + $314 = $313&255; + $315 = (_stbi__paeth($314,0,0)|0); + $316 = (($315) + ($310))|0; + $317 = $316&255; + $318 = (($$8605743) + ($$13739)|0); + HEAP8[$318>>0] = $317; + $319 = (($$13739) + 1)|0; + $exitcond865 = ($319|0)==($$1612|0); + if ($exitcond865) { + break; + } else { + $$13739 = $319; + } + } + } + $320 = (($$8605743) + ($$1612)|0); + HEAP8[$320>>0] = -1; + $321 = (($$8585744) + ($$1612)|0); + $322 = (($$8605743) + ($15)|0); + $$6620 = (($$6620745) + -1)|0; + $323 = ($$6620|0)==(0); + if ($323) { + break; + } else { + $$6620745 = $$6620;$$8585744 = $321;$$8605743 = $322; + } + } + $scevgep866 = (($$1578) + ($197)|0); + $$9586 = $scevgep866; + } + break; + } + default: { + $$9586 = $$1578; + } + } + if ($brmerge894) { + $$11$ph = $$9586; + } else { + $324 = HEAP32[$21>>2]|0; + $325 = (($324) + ($51)|0); + $326 = (($$1612) + 1)|0; + $$7621798 = 0;$$9606799 = $325; + while(1) { + $327 = (($$9606799) + ($326)|0); + HEAP8[$327>>0] = -1; + $328 = (($$7621798) + 1)|0; + $329 = (($$9606799) + ($15)|0); + $exitcond880 = ($328|0)==($4|0); + if ($exitcond880) { + $$11$ph = $$9586; + break; + } else { + $$7621798 = $328;$$9606799 = $329; + } + } + } + } + $330 = (($$0623814) + 1)|0; + $331 = ($330>>>0)<($5>>>0); + if ($331) { + $$0577817 = $$11$ph;$$0608816 = $$1609;$$0611815 = $$1612;$$0623814 = $330; + } else { + break L18; + } + } + if ((label|0) == 16) { + ___assert_fail((10336|0),(9676|0),4315,(10291|0)); + // unreachable; + } + else if ((label|0) == 58) { + ___assert_fail((10362|0),(9676|0),4377,(10291|0)); + // unreachable; + } + else if ((label|0) == 105) { + _stbi__err(10379); + $$2 = 0; + return ($$2|0); + } + } + } while(0); + $332 = ($6|0)<(8); + if (!($332)) { + if (!($8)) { + $$2 = 1; + return ($$2|0); + } + $601 = Math_imul($4, $3)|0; + $602 = Math_imul($601, $5)|0; + $603 = ($602|0)==(0); + if ($603) { + $$2 = 1; + return ($$2|0); + } + $604 = HEAP32[$21>>2]|0; + $$0731 = $604;$$8622729 = 0; + while(1) { + $605 = HEAP8[$$0731>>0]|0; + $606 = $605&255; + $607 = $606 << 8; + $608 = ((($$0731)) + 1|0); + $609 = HEAP8[$608>>0]|0; + $610 = $609&255; + $611 = $607 | $610; + $612 = $611&65535; + HEAP16[$$0731>>1] = $612; + $613 = (($$8622729) + 1)|0; + $614 = ((($$0731)) + 2|0); + $exitcond = ($613|0)==($602|0); + if ($exitcond) { + $$2 = 1; + break; + } else { + $$0731 = $614;$$8622729 = $613; + } + } + return ($$2|0); + } + $333 = ($5|0)==(0); + if ($333) { + $$2 = 1; + return ($$2|0); + } + $334 = (0 - ($26))|0; + $335 = ($7|0)==(0); + $336 = (10075 + ($6)|0); + $$0568724 = (($4) + -1)|0; + $337 = ($$0568724|0)>(-1); + $$1721 = (($4) + -1)|0; + $338 = ($$1721|0)>(-1); + $339 = ($23|0)>(1); + $340 = ($23|0)>(3); + $341 = ($23|0)>(7); + $342 = (($23) + -8)|0; + $343 = $342 >>> 3; + $344 = $343 << 3; + $345 = (($344) + 8)|0; + $346 = (($342) - ($344))|0; + $347 = (($343) + ($11))|0; + $348 = (($347) + 1)|0; + $349 = (($348) - ($26))|0; + $350 = (($23) + -4)|0; + $351 = $350 >>> 2; + $352 = $351 << 2; + $353 = (($352) + 4)|0; + $354 = (($350) - ($352))|0; + $355 = (($351) + ($11))|0; + $356 = (($355) + 1)|0; + $357 = (($356) - ($26))|0; + $358 = (($23) + -2)|0; + $359 = $358 >>> 1; + $360 = $359 << 1; + $361 = (($360) + 2)|0; + $362 = (($358) - ($360))|0; + $363 = (($359) + ($11))|0; + $364 = (($363) + 1)|0; + $365 = (($364) - ($26))|0; + $$1624727 = 0;$indvars$iv = $345;$indvars$iv848 = $349;$indvars$iv851 = $353;$indvars$iv854 = $357;$indvars$iv857 = $361;$indvars$iv860 = $365; + L174: while(1) { + $366 = HEAP32[$21>>2]|0; + $367 = Math_imul($$1624727, $12)|0; + $368 = (($366) + ($367)|0); + $369 = (($368) + ($11)|0); + $370 = (($369) + ($334)|0); + if ($335) { + $371 = HEAP8[$336>>0]|0; + $372 = $371&255; + $377 = $372; + } else { + $377 = 1; + } + switch ($6|0) { + case 4: { + if ($339) { + $scevgep859 = (($366) + ($indvars$iv857)|0); + $$0571715 = $370;$$0574714 = $368;$$14713 = $23; + while(1) { + $373 = HEAP8[$$0571715>>0]|0; + $374 = $373&255; + $375 = $374 >>> 4; + $376 = Math_imul($375, $377)|0; + $378 = $376&255; + $379 = ((($$0574714)) + 1|0); + HEAP8[$$0574714>>0] = $378; + $380 = HEAP8[$$0571715>>0]|0; + $381 = $380 & 15; + $382 = $381&255; + $383 = Math_imul($382, $377)|0; + $384 = $383&255; + $385 = ((($$0574714)) + 2|0); + HEAP8[$379>>0] = $384; + $386 = (($$14713) + -2)|0; + $387 = ((($$0571715)) + 1|0); + $388 = ($386|0)>(1); + if ($388) { + $$0571715 = $387;$$0574714 = $385;$$14713 = $386; + } else { + break; + } + } + $scevgep862 = (($366) + ($indvars$iv860)|0); + $$0571$lcssa = $scevgep862;$$0574$lcssa = $scevgep859;$$14$lcssa = $362; + } else { + $$0571$lcssa = $370;$$0574$lcssa = $368;$$14$lcssa = $23; + } + $389 = ($$14$lcssa|0)==(1); + if ($389) { + $390 = HEAP8[$$0571$lcssa>>0]|0; + $391 = $390&255; + $392 = $391 >>> 4; + $393 = Math_imul($392, $377)|0; + $394 = $393&255; + HEAP8[$$0574$lcssa>>0] = $394; + } + break; + } + case 2: { + if ($340) { + $scevgep853 = (($366) + ($indvars$iv851)|0); + $$15705 = $23;$$1572707 = $370;$$1575706 = $368; + while(1) { + $395 = HEAP8[$$1572707>>0]|0; + $396 = $395&255; + $397 = $396 >>> 6; + $398 = Math_imul($397, $377)|0; + $399 = $398&255; + $400 = ((($$1575706)) + 1|0); + HEAP8[$$1575706>>0] = $399; + $401 = HEAP8[$$1572707>>0]|0; + $402 = $401&255; + $403 = $402 >>> 4; + $404 = $403 & 3; + $405 = Math_imul($404, $377)|0; + $406 = $405&255; + $407 = ((($$1575706)) + 2|0); + HEAP8[$400>>0] = $406; + $408 = HEAP8[$$1572707>>0]|0; + $409 = $408&255; + $410 = $409 >>> 2; + $411 = $410 & 3; + $412 = Math_imul($411, $377)|0; + $413 = $412&255; + $414 = ((($$1575706)) + 3|0); + HEAP8[$407>>0] = $413; + $415 = HEAP8[$$1572707>>0]|0; + $416 = $415 & 3; + $417 = $416&255; + $418 = Math_imul($417, $377)|0; + $419 = $418&255; + $420 = ((($$1575706)) + 4|0); + HEAP8[$414>>0] = $419; + $421 = (($$15705) + -4)|0; + $422 = ((($$1572707)) + 1|0); + $423 = ($421|0)>(3); + if ($423) { + $$15705 = $421;$$1572707 = $422;$$1575706 = $420; + } else { + break; + } + } + $scevgep856 = (($366) + ($indvars$iv854)|0); + $$15$lcssa = $354;$$1572$lcssa = $scevgep856;$$1575$lcssa = $scevgep853; + } else { + $$15$lcssa = $23;$$1572$lcssa = $370;$$1575$lcssa = $368; + } + $424 = ($$15$lcssa|0)>(0); + if ($424) { + $425 = HEAP8[$$1572$lcssa>>0]|0; + $426 = $425&255; + $427 = $426 >>> 6; + $428 = Math_imul($427, $377)|0; + $429 = $428&255; + HEAP8[$$1575$lcssa>>0] = $429; + $430 = ($$15$lcssa|0)==(1); + if (!($430)) { + $431 = ((($$1575$lcssa)) + 1|0); + $432 = HEAP8[$$1572$lcssa>>0]|0; + $433 = $432&255; + $434 = $433 >>> 4; + $435 = $434 & 3; + $436 = Math_imul($435, $377)|0; + $437 = $436&255; + HEAP8[$431>>0] = $437; + $438 = ($$15$lcssa|0)>(2); + if ($438) { + $439 = ((($$1575$lcssa)) + 2|0); + $440 = HEAP8[$$1572$lcssa>>0]|0; + $441 = $440&255; + $442 = $441 >>> 2; + $443 = $442 & 3; + $444 = Math_imul($443, $377)|0; + $445 = $444&255; + HEAP8[$439>>0] = $445; + } + } + } + break; + } + case 1: { + if ($341) { + $scevgep = (($366) + ($indvars$iv)|0); + $$16700 = $23;$$2573702 = $370;$$4701 = $368; + while(1) { + $446 = HEAP8[$$2573702>>0]|0; + $447 = $446&255; + $448 = $447 >>> 7; + $449 = (0 - ($448))|0; + $450 = $377 & $449; + $451 = $450&255; + $452 = ((($$4701)) + 1|0); + HEAP8[$$4701>>0] = $451; + $453 = HEAP8[$$2573702>>0]|0; + $454 = $453&255; + $455 = $454 >>> 6; + $456 = $455 & 1; + $457 = (0 - ($456))|0; + $458 = $377 & $457; + $459 = $458&255; + $460 = ((($$4701)) + 2|0); + HEAP8[$452>>0] = $459; + $461 = HEAP8[$$2573702>>0]|0; + $462 = $461&255; + $463 = $462 >>> 5; + $464 = $463 & 1; + $465 = (0 - ($464))|0; + $466 = $377 & $465; + $467 = $466&255; + $468 = ((($$4701)) + 3|0); + HEAP8[$460>>0] = $467; + $469 = HEAP8[$$2573702>>0]|0; + $470 = $469&255; + $471 = $470 >>> 4; + $472 = $471 & 1; + $473 = (0 - ($472))|0; + $474 = $377 & $473; + $475 = $474&255; + $476 = ((($$4701)) + 4|0); + HEAP8[$468>>0] = $475; + $477 = HEAP8[$$2573702>>0]|0; + $478 = $477&255; + $479 = $478 >>> 3; + $480 = $479 & 1; + $481 = (0 - ($480))|0; + $482 = $377 & $481; + $483 = $482&255; + $484 = ((($$4701)) + 5|0); + HEAP8[$476>>0] = $483; + $485 = HEAP8[$$2573702>>0]|0; + $486 = $485&255; + $487 = $486 >>> 2; + $488 = $487 & 1; + $489 = (0 - ($488))|0; + $490 = $377 & $489; + $491 = $490&255; + $492 = ((($$4701)) + 6|0); + HEAP8[$484>>0] = $491; + $493 = HEAP8[$$2573702>>0]|0; + $494 = $493&255; + $495 = $494 >>> 1; + $496 = $495 & 1; + $497 = (0 - ($496))|0; + $498 = $377 & $497; + $499 = $498&255; + $500 = ((($$4701)) + 7|0); + HEAP8[$492>>0] = $499; + $501 = HEAP8[$$2573702>>0]|0; + $502 = $501 & 1; + $503 = $502&255; + $504 = (0 - ($503))|0; + $505 = $377 & $504; + $506 = $505&255; + $507 = ((($$4701)) + 8|0); + HEAP8[$500>>0] = $506; + $508 = (($$16700) + -8)|0; + $509 = ((($$2573702)) + 1|0); + $510 = ($508|0)>(7); + if ($510) { + $$16700 = $508;$$2573702 = $509;$$4701 = $507; + } else { + break; + } + } + $scevgep850 = (($366) + ($indvars$iv848)|0); + $$16$lcssa = $346;$$2573$lcssa = $scevgep850;$$4$lcssa = $scevgep; + } else { + $$16$lcssa = $23;$$2573$lcssa = $370;$$4$lcssa = $368; + } + $511 = ($$16$lcssa|0)>(0); + if ($511) { + $512 = HEAP8[$$2573$lcssa>>0]|0; + $513 = $512&255; + $514 = $513 >>> 7; + $515 = (0 - ($514))|0; + $516 = $377 & $515; + $517 = $516&255; + HEAP8[$$4$lcssa>>0] = $517; + $518 = ($$16$lcssa|0)==(1); + if (!($518)) { + $519 = ((($$4$lcssa)) + 1|0); + $520 = HEAP8[$$2573$lcssa>>0]|0; + $521 = $520&255; + $522 = $521 >>> 6; + $523 = $522 & 1; + $524 = (0 - ($523))|0; + $525 = $377 & $524; + $526 = $525&255; + HEAP8[$519>>0] = $526; + $527 = ($$16$lcssa|0)>(2); + if ($527) { + $528 = ((($$4$lcssa)) + 2|0); + $529 = HEAP8[$$2573$lcssa>>0]|0; + $530 = $529&255; + $531 = $530 >>> 5; + $532 = $531 & 1; + $533 = (0 - ($532))|0; + $534 = $377 & $533; + $535 = $534&255; + HEAP8[$528>>0] = $535; + $536 = ($$16$lcssa|0)==(3); + if (!($536)) { + $537 = ((($$4$lcssa)) + 3|0); + $538 = HEAP8[$$2573$lcssa>>0]|0; + $539 = $538&255; + $540 = $539 >>> 4; + $541 = $540 & 1; + $542 = (0 - ($541))|0; + $543 = $377 & $542; + $544 = $543&255; + HEAP8[$537>>0] = $544; + $545 = ($$16$lcssa|0)>(4); + if ($545) { + $546 = ((($$4$lcssa)) + 4|0); + $547 = HEAP8[$$2573$lcssa>>0]|0; + $548 = $547&255; + $549 = $548 >>> 3; + $550 = $549 & 1; + $551 = (0 - ($550))|0; + $552 = $377 & $551; + $553 = $552&255; + HEAP8[$546>>0] = $553; + $554 = ($$16$lcssa|0)==(5); + if (!($554)) { + $555 = ((($$4$lcssa)) + 5|0); + $556 = HEAP8[$$2573$lcssa>>0]|0; + $557 = $556&255; + $558 = $557 >>> 2; + $559 = $558 & 1; + $560 = (0 - ($559))|0; + $561 = $377 & $560; + $562 = $561&255; + HEAP8[$555>>0] = $562; + $563 = ($$16$lcssa|0)>(6); + if ($563) { + $564 = ((($$4$lcssa)) + 6|0); + $565 = HEAP8[$$2573$lcssa>>0]|0; + $566 = $565&255; + $567 = $566 >>> 1; + $568 = $567 & 1; + $569 = (0 - ($568))|0; + $570 = $377 & $569; + $571 = $570&255; + HEAP8[$564>>0] = $571; + } + } + } + } + } + } + } + break; + } + default: { + } + } + L213: do { + if (!($17)) { + $572 = HEAP32[$21>>2]|0; + $573 = (($572) + ($367)|0); + switch ($14|0) { + case 1: { + if ($337) { + $$0568725 = $$0568724; + } else { + break L213; + } + while(1) { + $574 = $$0568725 << 1; + $575 = $574 | 1; + $576 = (($573) + ($575)|0); + HEAP8[$576>>0] = -1; + $577 = (($573) + ($$0568725)|0); + $578 = HEAP8[$577>>0]|0; + $579 = (($573) + ($574)|0); + HEAP8[$579>>0] = $578; + $$0568 = (($$0568725) + -1)|0; + $580 = ($$0568|0)>(-1); + if ($580) { + $$0568725 = $$0568; + } else { + break; + } + } + break; + } + case 3: { + if ($338) { + $$1722 = $$1721; + } else { + break L213; + } + while(1) { + $581 = $$1722 << 2; + $582 = $581 | 3; + $583 = (($573) + ($582)|0); + HEAP8[$583>>0] = -1; + $584 = ($$1722*3)|0; + $585 = (($584) + 2)|0; + $586 = (($573) + ($585)|0); + $587 = HEAP8[$586>>0]|0; + $588 = $581 | 2; + $589 = (($573) + ($588)|0); + HEAP8[$589>>0] = $587; + $590 = (($584) + 1)|0; + $591 = (($573) + ($590)|0); + $592 = HEAP8[$591>>0]|0; + $593 = $581 | 1; + $594 = (($573) + ($593)|0); + HEAP8[$594>>0] = $592; + $595 = (($573) + ($584)|0); + $596 = HEAP8[$595>>0]|0; + $597 = (($573) + ($581)|0); + HEAP8[$597>>0] = $596; + $$1 = (($$1722) + -1)|0; + $598 = ($$1|0)>(-1); + if ($598) { + $$1722 = $$1; + } else { + break; + } + } + break; + } + default: { + label = 144; + break L174; + } + } + } + } while(0); + $599 = (($$1624727) + 1)|0; + $600 = ($599>>>0)<($5>>>0); + $indvars$iv$next = (($indvars$iv) + ($12))|0; + $indvars$iv$next849 = (($indvars$iv848) + ($12))|0; + $indvars$iv$next852 = (($indvars$iv851) + ($12))|0; + $indvars$iv$next855 = (($indvars$iv854) + ($12))|0; + $indvars$iv$next858 = (($indvars$iv857) + ($12))|0; + $indvars$iv$next861 = (($indvars$iv860) + ($12))|0; + if ($600) { + $$1624727 = $599;$indvars$iv = $indvars$iv$next;$indvars$iv848 = $indvars$iv$next849;$indvars$iv851 = $indvars$iv$next852;$indvars$iv854 = $indvars$iv$next855;$indvars$iv857 = $indvars$iv$next858;$indvars$iv860 = $indvars$iv$next861; + } else { + $$2 = 1; + label = 151; + break; + } + } + if ((label|0) == 144) { + ___assert_fail((10394|0),(9676|0),4466,(10291|0)); + // unreachable; + } + else if ((label|0) == 151) { + return ($$2|0); + } + return (0)|0; +} +function _stbi__paeth($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ispos = 0, $ispos26 = 0, $ispos28 = 0, $neg = 0, $neg27 = 0, $neg29 = 0, $or$cond = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = (($1) + ($0))|0; + $4 = (($3) - ($2))|0; + $5 = (($4) - ($0))|0; + $ispos = ($5|0)>(-1); + $neg = (0 - ($5))|0; + $6 = $ispos ? $5 : $neg; + $7 = (($4) - ($1))|0; + $ispos26 = ($7|0)>(-1); + $neg27 = (0 - ($7))|0; + $8 = $ispos26 ? $7 : $neg27; + $9 = (($4) - ($2))|0; + $ispos28 = ($9|0)>(-1); + $neg29 = (0 - ($9))|0; + $10 = $ispos28 ? $9 : $neg29; + $11 = ($6|0)>($8|0); + $12 = ($6|0)>($10|0); + $or$cond = $11 | $12; + $13 = ($8|0)>($10|0); + $$ = $13 ? $2 : $1; + $$0 = $or$cond ? $$ : $0; + return ($$0|0); +} +function _stbi__do_zlib($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 20|0); + HEAP32[$5>>2] = $1; + $6 = ((($0)) + 16|0); + HEAP32[$6>>2] = $1; + $7 = (($1) + ($2)|0); + $8 = ((($0)) + 24|0); + HEAP32[$8>>2] = $7; + $9 = ((($0)) + 28|0); + HEAP32[$9>>2] = $3; + $10 = (_stbi__parse_zlib($0,$4)|0); + return ($10|0); +} +function _stbi__parse_zlib($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + if (!($2)) { + $3 = (_stbi__parse_zlib_header($0)|0); + $4 = ($3|0)==(0); + if ($4) { + $$0 = 0; + return ($$0|0); + } + } + $5 = ((($0)) + 8|0); + HEAP32[$5>>2] = 0; + $6 = ((($0)) + 12|0); + HEAP32[$6>>2] = 0; + $7 = ((($0)) + 32|0); + $8 = ((($0)) + 2052|0); + L5: while(1) { + $9 = (_stbi__zreceive($0,1)|0); + $10 = (_stbi__zreceive($0,2)|0); + switch ($10|0) { + case 3: { + $$0 = 0; + label = 11; + break L5; + break; + } + case 0: { + $11 = (_stbi__parse_uncompressed_block($0)|0); + $12 = ($11|0)==(0); + if ($12) { + $$0 = 0; + label = 11; + break L5; + } + break; + } + case 1: { + $13 = (_stbi__zbuild_huffman($7,10405,288)|0); + $14 = ($13|0)==(0); + if ($14) { + $$0 = 0; + label = 11; + break L5; + } + $15 = (_stbi__zbuild_huffman($8,10693,32)|0); + $16 = ($15|0)==(0); + if ($16) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + break; + } + default: { + $17 = (_stbi__compute_huffman_codes($0)|0); + $18 = ($17|0)==(0); + if ($18) { + $$0 = 0; + label = 11; + break L5; + } else { + label = 9; + } + } + } + if ((label|0) == 9) { + label = 0; + $19 = (_stbi__parse_huffman_block($0)|0); + $20 = ($19|0)==(0); + if ($20) { + $$0 = 0; + label = 11; + break; + } + } + $21 = ($9|0)==(0); + if (!($21)) { + $$0 = 1; + label = 11; + break; + } + } + if ((label|0) == 11) { + return ($$0|0); + } + return (0)|0; +} +function _stbi__parse_zlib_header($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_stbi__zget8($0)|0); + $2 = $1&255; + $3 = $2 & 15; + $4 = (_stbi__zget8($0)|0); + $5 = $4&255; + $6 = $2 << 8; + $7 = $6 | $5; + $8 = (($7>>>0) % 31)&-1; + $9 = ($8|0)==(0); + if (!($9)) { + _stbi__err(11040); + $$0 = 0; + return ($$0|0); + } + $10 = $5 & 32; + $11 = ($10|0)==(0); + if (!($11)) { + _stbi__err(11056); + $$0 = 0; + return ($$0|0); + } + $12 = ($3|0)==(8); + if ($12) { + $$0 = 1; + return ($$0|0); + } + _stbi__err(11071); + $$0 = 0; + return ($$0|0); +} +function _stbi__zreceive($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<($1|0); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = 1 << $1; + $8 = (($7) + -1)|0; + $9 = $6 & $8; + $10 = $6 >>> $1; + HEAP32[$5>>2] = $10; + $11 = HEAP32[$2>>2]|0; + $12 = (($11) - ($1))|0; + HEAP32[$2>>2] = $12; + return ($9|0); +} +function _stbi__parse_uncompressed_block($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$034 = 0, $$037 = 0, $$136 = 0, $$lcssa = 0, $$ph = 0, $$pr = 0, $$promoted = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; + var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond47 = 0, $smax = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & 7; + $5 = ($4|0)==(0); + if ($5) { + $$ph = $3; + } else { + (_stbi__zreceive($0,$4)|0); + $$pr = HEAP32[$2>>2]|0; + $$ph = $$pr; + } + $6 = ($$ph|0)>(0); + if ($6) { + $7 = ((($0)) + 12|0); + $$promoted = HEAP32[$7>>2]|0; + $8 = $$ph ^ -1; + $9 = ($8|0)>(-9); + $smax = $9 ? $8 : -9; + $10 = (($$ph) + ($smax))|0; + $11 = (($10) + 8)|0; + $12 = $11 >>> 3; + $13 = (($12) + 1)|0; + $14 = $12 << 3; + $$037 = 0;$16 = $$promoted; + while(1) { + $15 = $16&255; + $17 = (($$037) + 1)|0; + $18 = (($1) + ($$037)|0); + HEAP8[$18>>0] = $15; + $19 = $16 >>> 8; + $exitcond47 = ($17|0)==($13|0); + if ($exitcond47) { + break; + } else { + $$037 = $17;$16 = $19; + } + } + $20 = (($$ph) + -8)|0; + $21 = (($20) - ($14))|0; + HEAP32[$7>>2] = $19; + HEAP32[$2>>2] = $21; + $$0$lcssa = $13;$$lcssa = $21; + } else { + $$0$lcssa = 0;$$lcssa = $$ph; + } + $22 = ($$lcssa|0)==(0); + if (!($22)) { + ___assert_fail((10962|0),(9676|0),4033,(10979|0)); + // unreachable; + } + $23 = ($$0$lcssa|0)<(4); + if ($23) { + $$136 = $$0$lcssa; + while(1) { + $24 = (_stbi__zget8($0)|0); + $25 = (($$136) + 1)|0; + $26 = (($1) + ($$136)|0); + HEAP8[$26>>0] = $24; + $exitcond = ($25|0)==(4); + if ($exitcond) { + break; + } else { + $$136 = $25; + } + } + } + $27 = ((($1)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = HEAP8[$1>>0]|0; + $32 = $31&255; + $33 = $30 | $32; + $34 = ((($1)) + 3|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = $36 << 8; + $38 = ((($1)) + 2|0); + $39 = HEAP8[$38>>0]|0; + $40 = $39&255; + $41 = $37 | $40; + $42 = $33 ^ 65535; + $43 = ($41|0)==($42|0); + if (!($43)) { + _stbi__err(11010); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $44 = HEAP32[$0>>2]|0; + $45 = (($44) + ($33)|0); + $46 = ((($0)) + 4|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($45>>>0)>($47>>>0); + if ($48) { + _stbi__err(11023); + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + $49 = ((($0)) + 16|0); + $50 = HEAP32[$49>>2]|0; + $51 = (($50) + ($33)|0); + $52 = ((($0)) + 24|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($51>>>0)>($53>>>0); + if ($54) { + $55 = (_stbi__zexpand($0,$50,$33)|0); + $56 = ($55|0)==(0); + if ($56) { + $$034 = 0; + STACKTOP = sp;return ($$034|0); + } + } + $57 = HEAP32[$49>>2]|0; + $58 = HEAP32[$0>>2]|0; + _memcpy(($57|0),($58|0),($33|0))|0; + $59 = HEAP32[$0>>2]|0; + $60 = (($59) + ($33)|0); + HEAP32[$0>>2] = $60; + $61 = HEAP32[$49>>2]|0; + $62 = (($61) + ($33)|0); + HEAP32[$49>>2] = $62; + $$034 = 1; + STACKTOP = sp;return ($$034|0); +} +function _stbi__zbuild_huffman($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$075 = 0, $$07688 = 0, $$07785 = 0, $$07884 = 0, $$081 = 0, $$286 = 0, $$382 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond91 = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $3 = sp + 72|0; + $4 = sp; + dest=$4; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _memset(($0|0),0,1024)|0; + $5 = ($2|0)>(0); + if ($5) { + $$07688 = 0; + while(1) { + $6 = (($1) + ($$07688)|0); + $7 = HEAP8[$6>>0]|0; + $8 = $7&255; + $9 = (($4) + ($8<<2)|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($10) + 1)|0; + HEAP32[$9>>2] = $11; + $12 = (($$07688) + 1)|0; + $exitcond91 = ($12|0)==($2|0); + if ($exitcond91) { + break; + } else { + $$07688 = $12; + } + } + } + HEAP32[$4>>2] = 0; + $16 = ((($4)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = ($17|0)>(2); + if (!($18)) { + $13 = ((($4)) + 8|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)>(4); + if (!($15)) { + $69 = ((($4)) + 12|0); + $70 = HEAP32[$69>>2]|0; + $71 = ($70|0)>(8); + if (!($71)) { + $72 = ((($4)) + 16|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)>(16); + if (!($74)) { + $75 = ((($4)) + 20|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($76|0)>(32); + if (!($77)) { + $78 = ((($4)) + 24|0); + $79 = HEAP32[$78>>2]|0; + $80 = ($79|0)>(64); + if (!($80)) { + $81 = ((($4)) + 28|0); + $82 = HEAP32[$81>>2]|0; + $83 = ($82|0)>(128); + if (!($83)) { + $84 = ((($4)) + 32|0); + $85 = HEAP32[$84>>2]|0; + $86 = ($85|0)>(256); + if (!($86)) { + $87 = ((($4)) + 36|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)>(512); + if (!($89)) { + $90 = ((($4)) + 40|0); + $91 = HEAP32[$90>>2]|0; + $92 = ($91|0)>(1024); + if (!($92)) { + $93 = ((($4)) + 44|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)>(2048); + if (!($95)) { + $96 = ((($4)) + 48|0); + $97 = HEAP32[$96>>2]|0; + $98 = ($97|0)>(4096); + if (!($98)) { + $99 = ((($4)) + 52|0); + $100 = HEAP32[$99>>2]|0; + $101 = ($100|0)>(8192); + if (!($101)) { + $102 = ((($4)) + 56|0); + $103 = HEAP32[$102>>2]|0; + $104 = ($103|0)>(16384); + if (!($104)) { + $105 = ((($4)) + 60|0); + $106 = HEAP32[$105>>2]|0; + $107 = ($106|0)>(32768); + if (!($107)) { + $$07785 = 0;$$07884 = 0;$$286 = 1; + while(1) { + $19 = (($3) + ($$286<<2)|0); + HEAP32[$19>>2] = $$07884; + $20 = $$07884&65535; + $21 = (((($0)) + 1024|0) + ($$286<<1)|0); + HEAP16[$21>>1] = $20; + $22 = $$07785&65535; + $23 = (((($0)) + 1124|0) + ($$286<<1)|0); + HEAP16[$23>>1] = $22; + $24 = (($4) + ($$286<<2)|0); + $25 = HEAP32[$24>>2]|0; + $26 = (($25) + ($$07884))|0; + $27 = ($25|0)!=(0); + $28 = 1 << $$286; + $29 = ($26|0)>($28|0); + $or$cond = $27 & $29; + if ($or$cond) { + label = 7; + break; + } + $30 = (16 - ($$286))|0; + $31 = $26 << $30; + $32 = (((($0)) + 1056|0) + ($$286<<2)|0); + HEAP32[$32>>2] = $31; + $33 = $26 << 1; + $34 = (($25) + ($$07785))|0; + $35 = (($$286) + 1)|0; + $36 = ($35|0)<(16); + if ($36) { + $$07785 = $34;$$07884 = $33;$$286 = $35; + } else { + break; + } + } + if ((label|0) == 7) { + _stbi__err(10900); + $$075 = 0; + STACKTOP = sp;return ($$075|0); + } + $37 = ((($0)) + 1120|0); + HEAP32[$37>>2] = 65536; + $38 = ($2|0)>(0); + if ($38) { + $$382 = 0; + } else { + $$075 = 1; + STACKTOP = sp;return ($$075|0); + } + while(1) { + $39 = (($1) + ($$382)|0); + $40 = HEAP8[$39>>0]|0; + $41 = $40&255; + $42 = ($40<<24>>24)==(0); + if (!($42)) { + $43 = (($3) + ($41<<2)|0); + $44 = HEAP32[$43>>2]|0; + $45 = (((($0)) + 1024|0) + ($41<<1)|0); + $46 = HEAP16[$45>>1]|0; + $47 = $46&65535; + $48 = (($44) - ($47))|0; + $49 = (((($0)) + 1124|0) + ($41<<1)|0); + $50 = HEAP16[$49>>1]|0; + $51 = $50&65535; + $52 = (($48) + ($51))|0; + $53 = $41 << 9; + $54 = $53 | $$382; + $55 = $54&65535; + $56 = (((($0)) + 1156|0) + ($52)|0); + HEAP8[$56>>0] = $40; + $57 = $$382&65535; + $58 = (((($0)) + 1444|0) + ($52<<1)|0); + HEAP16[$58>>1] = $57; + $59 = ($40&255)<(10); + do { + if ($59) { + $60 = (_stbi__bit_reverse($44,$41)|0); + $61 = ($60|0)<(512); + if (!($61)) { + break; + } + $62 = 1 << $41; + $$081 = $60; + while(1) { + $63 = (($0) + ($$081<<1)|0); + HEAP16[$63>>1] = $55; + $64 = (($$081) + ($62))|0; + $65 = ($64|0)<(512); + if ($65) { + $$081 = $64; + } else { + break; + } + } + } + } while(0); + $66 = HEAP32[$43>>2]|0; + $67 = (($66) + 1)|0; + HEAP32[$43>>2] = $67; + } + $68 = (($$382) + 1)|0; + $exitcond = ($68|0)==($2|0); + if ($exitcond) { + $$075 = 1; + break; + } else { + $$382 = $68; + } + } + STACKTOP = sp;return ($$075|0); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + _stbi__err(10952); + $$075 = 0; + STACKTOP = sp;return ($$075|0); +} +function _stbi__compute_huffman_codes($0) { + $0 = $0|0; + var $$ = 0, $$0 = 0, $$061 = 0, $$06579 = 0, $$066$be = 0, $$066$lcssa = 0, $$06678 = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $not$ = 0, dest = 0; + var label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(2496|0); + $1 = sp; + $2 = sp + 2039|0; + $3 = sp + 2020|0; + $4 = (_stbi__zreceive($0,5)|0); + $5 = (($4) + 257)|0; + $6 = (_stbi__zreceive($0,5)|0); + $7 = (($6) + 1)|0; + $8 = (_stbi__zreceive($0,4)|0); + $9 = (($8) + 4)|0; + $10 = (($7) + ($5))|0; + dest=$3; stop=dest+19|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $11 = ($9|0)>(0); + if ($11) { + $$06579 = 0; + while(1) { + $12 = (_stbi__zreceive($0,3)|0); + $13 = $12&255; + $14 = (11746 + ($$06579)|0); + $15 = HEAP8[$14>>0]|0; + $16 = $15&255; + $17 = (($3) + ($16)|0); + HEAP8[$17>>0] = $13; + $18 = (($$06579) + 1)|0; + $exitcond = ($18|0)==($9|0); + if ($exitcond) { + break; + } else { + $$06579 = $18; + } + } + } + $19 = (_stbi__zbuild_huffman($1,$3,19)|0); + $20 = ($19|0)==(0); + if ($20) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $21 = ($10|0)>(0); + L8: do { + if ($21) { + $$06678 = 0; + L9: while(1) { + $22 = (_stbi__zhuffman_decode($0,$1)|0); + $23 = ($22>>>0)>(18); + if ($23) { + label = 6; + break; + } + $24 = ($22|0)<(16); + if ($24) { + $25 = $22&255; + $26 = (($$06678) + 1)|0; + $27 = (($2) + ($$06678)|0); + HEAP8[$27>>0] = $25; + $$066$be = $26; + } else { + switch ($22|0) { + case 16: { + $28 = (_stbi__zreceive($0,2)|0); + $29 = ($$06678|0)==(0); + if ($29) { + label = 11; + break L9; + } + $30 = (($28) + 3)|0; + $31 = (($$06678) + -1)|0; + $32 = (($2) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $$0 = $33;$$061 = $30; + break; + } + case 17: { + $34 = (_stbi__zreceive($0,3)|0); + $35 = (($34) + 3)|0; + $$0 = 0;$$061 = $35; + break; + } + case 18: { + $36 = (_stbi__zreceive($0,7)|0); + $37 = (($36) + 11)|0; + $$0 = 0;$$061 = $37; + break; + } + default: { + label = 14; + break L9; + } + } + $38 = (($10) - ($$06678))|0; + $39 = ($38|0)<($$061|0); + if ($39) { + label = 17; + break; + } + $40 = (($2) + ($$06678)|0); + _memset(($40|0),($$0|0),($$061|0))|0; + $41 = (($$061) + ($$06678))|0; + $$066$be = $41; + } + $42 = ($10|0)>($$066$be|0); + if ($42) { + $$06678 = $$066$be; + } else { + $$066$lcssa = $$066$be; + break L8; + } + } + if ((label|0) == 6) { + _stbi__err(10900); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 11) { + _stbi__err(10900); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + else if ((label|0) == 14) { + ___assert_fail((10916|0),(9676|0),4006,(10924|0)); + // unreachable; + } + else if ((label|0) == 17) { + _stbi__err(10900); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + } else { + $$066$lcssa = 0; + } + } while(0); + $43 = ($10|0)==($$066$lcssa|0); + if (!($43)) { + _stbi__err(10900); + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $44 = ((($0)) + 32|0); + $45 = (_stbi__zbuild_huffman($44,$2,$5)|0); + $46 = ($45|0)==(0); + if ($46) { + $$4 = 0; + STACKTOP = sp;return ($$4|0); + } + $47 = ((($0)) + 2052|0); + $48 = (($2) + ($5)|0); + $49 = (_stbi__zbuild_huffman($47,$48,$7)|0); + $not$ = ($49|0)!=(0); + $$ = $not$&1; + $$4 = $$; + STACKTOP = sp;return ($$4|0); +} +function _stbi__parse_huffman_block($0) { + $0 = $0|0; + var $$063 = 0, $$064 = 0, $$067 = 0, $$070 = 0, $$171 = 0, $$266 = 0, $$272 = 0, $$3$ph = 0, $$5 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $scevgep = 0, $scevgep92 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 32|0); + $4 = ((($0)) + 24|0); + $5 = ((($0)) + 2052|0); + $6 = ((($0)) + 20|0); + $7 = ((($0)) + 24|0); + $$070 = $2; + while(1) { + $10 = (_stbi__zhuffman_decode($0,$3)|0); + $11 = ($10|0)<(256); + if ($11) { + $12 = ($10|0)<(0); + if ($12) { + label = 6; + break; + } + $13 = HEAP32[$4>>2]|0; + $14 = ($$070>>>0)<($13>>>0); + if ($14) { + $$171 = $$070; + } else { + $15 = (_stbi__zexpand($0,$$070,1)|0); + $16 = ($15|0)==(0); + if ($16) { + $$3$ph = 0; + label = 28; + break; + } + $17 = HEAP32[$1>>2]|0; + $$171 = $17; + } + $18 = $10&255; + $19 = ((($$171)) + 1|0); + HEAP8[$$171>>0] = $18; + $$070 = $19; + continue; + } + $20 = ($10|0)==(256); + if ($20) { + label = 12; + break; + } + $21 = (($10) + -257)|0; + $22 = (3280 + ($21<<2)|0); + $23 = HEAP32[$22>>2]|0; + $24 = (($10) + -265)|0; + $25 = ($24>>>0)<(20); + if ($25) { + $26 = (3156 + ($21<<2)|0); + $27 = HEAP32[$26>>2]|0; + $28 = (_stbi__zreceive($0,$27)|0); + $29 = (($28) + ($23))|0; + $$064 = $29; + } else { + $$064 = $23; + } + $30 = (_stbi__zhuffman_decode($0,$5)|0); + $31 = ($30|0)<(0); + if ($31) { + label = 16; + break; + } + $32 = (3532 + ($30<<2)|0); + $33 = HEAP32[$32>>2]|0; + $34 = (($30) + -4)|0; + $35 = ($34>>>0)<(26); + if ($35) { + $36 = (3404 + ($30<<2)|0); + $37 = HEAP32[$36>>2]|0; + $38 = (_stbi__zreceive($0,$37)|0); + $39 = (($38) + ($33))|0; + $$063 = $39; + } else { + $$063 = $33; + } + $40 = HEAP32[$6>>2]|0; + $41 = $$070; + $42 = (($41) - ($40))|0; + $43 = ($42|0)<($$063|0); + if ($43) { + label = 20; + break; + } + $44 = (($$070) + ($$064)|0); + $45 = HEAP32[$7>>2]|0; + $46 = ($44>>>0)>($45>>>0); + if ($46) { + $47 = (_stbi__zexpand($0,$$070,$$064)|0); + $48 = ($47|0)==(0); + if ($48) { + $$3$ph = 0; + label = 28; + break; + } + $49 = HEAP32[$1>>2]|0; + $$272 = $49; + } else { + $$272 = $$070; + } + $50 = (0 - ($$063))|0; + $9 = (($$272) + ($50)|0); + $51 = ($$063|0)==(1); + $52 = ($$064|0)!=(0); + if ($51) { + if (!($52)) { + $$070 = $$272; + continue; + } + $8 = HEAP8[$9>>0]|0; + _memset(($$272|0),($8|0),($$064|0))|0; + $scevgep92 = (($$272) + ($$064)|0); + $$070 = $scevgep92; + continue; + } + if ($52) { + $$067 = $9;$$266 = $$064;$$5 = $$272; + } else { + $$070 = $$272; + continue; + } + while(1) { + $53 = ((($$067)) + 1|0); + $54 = HEAP8[$$067>>0]|0; + $55 = ((($$5)) + 1|0); + HEAP8[$$5>>0] = $54; + $56 = (($$266) + -1)|0; + $57 = ($56|0)==(0); + if ($57) { + break; + } else { + $$067 = $53;$$266 = $56;$$5 = $55; + } + } + $scevgep = (($$272) + ($$064)|0); + $$070 = $scevgep; + } + if ((label|0) == 6) { + _stbi__err(10725); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 12) { + HEAP32[$1>>2] = $$070; + $$3$ph = 1; + return ($$3$ph|0); + } + else if ((label|0) == 16) { + _stbi__err(10725); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 20) { + _stbi__err(10742); + $$3$ph = 0; + return ($$3$ph|0); + } + else if ((label|0) == 28) { + return ($$3$ph|0); + } + return (0)|0; +} +function _stbi__zhuffman_decode($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 8|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)<(16); + if ($4) { + _stbi__fill_bits($0); + } + $5 = ((($0)) + 12|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 511; + $8 = (($1) + ($7<<1)|0); + $9 = HEAP16[$8>>1]|0; + $10 = $9&65535; + $11 = ($9<<16>>16)==(0); + if ($11) { + $17 = (_stbi__zhuffman_decode_slowpath($0,$1)|0); + $$0 = $17; + return ($$0|0); + } else { + $12 = $10 >>> 9; + $13 = $6 >>> $12; + HEAP32[$5>>2] = $13; + $14 = HEAP32[$2>>2]|0; + $15 = (($14) - ($12))|0; + HEAP32[$2>>2] = $15; + $16 = $10 & 511; + $$0 = $16; + return ($$0|0); + } + return (0)|0; +} +function _stbi__zexpand($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$029 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + HEAP32[$3>>2] = $1; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0); + if ($6) { + _stbi__err(10751); + $$0 = 0; + return ($$0|0); + } + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = $1; + $10 = $8; + $11 = (($9) - ($10))|0; + $12 = ((($0)) + 24|0); + $13 = HEAP32[$12>>2]|0; + $14 = (($13) - ($10))|0; + $15 = (($11) + ($2))|0; + $$029 = $14; + while(1) { + $16 = ($15|0)>($$029|0); + $17 = $$029 << 1; + if ($16) { + $$029 = $17; + } else { + break; + } + } + $18 = (_realloc($8,$$029)|0); + $19 = ($18|0)==(0|0); + if ($19) { + _stbi__err(9731); + $$0 = 0; + return ($$0|0); + } else { + HEAP32[$7>>2] = $18; + $20 = (($18) + ($11)|0); + HEAP32[$3>>2] = $20; + $21 = (($18) + ($$029)|0); + HEAP32[$12>>2] = $21; + $$0 = 1; + return ($$0|0); + } + return (0)|0; +} +function _stbi__fill_bits($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 12|0); + $2 = ((($0)) + 8|0); + while(1) { + $3 = HEAP32[$1>>2]|0; + $4 = HEAP32[$2>>2]|0; + $5 = 1 << $4; + $6 = ($3>>>0)<($5>>>0); + if (!($6)) { + label = 3; + break; + } + $7 = (_stbi__zget8($0)|0); + $8 = $7&255; + $9 = HEAP32[$2>>2]|0; + $10 = $8 << $9; + $11 = HEAP32[$1>>2]|0; + $12 = $11 | $10; + HEAP32[$1>>2] = $12; + $13 = (($9) + 8)|0; + HEAP32[$2>>2] = $13; + $14 = ($13|0)<(25); + if (!($14)) { + label = 5; + break; + } + } + if ((label|0) == 3) { + ___assert_fail((10847|0),(9676|0),3848,(10884|0)); + // unreachable; + } + else if ((label|0) == 5) { + return; + } +} +function _stbi__zhuffman_decode_slowpath($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$025 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 12|0); + $3 = HEAP32[$2>>2]|0; + $4 = (_stbi__bit_reverse($3,16)|0); + $$025 = 10; + while(1) { + $5 = (((($1)) + 1056|0) + ($$025<<2)|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($4|0)<($6|0); + $8 = (($$025) + 1)|0; + if ($7) { + break; + } else { + $$025 = $8; + } + } + $9 = ($$025|0)==(16); + if ($9) { + $$0 = -1; + return ($$0|0); + } + $10 = (16 - ($$025))|0; + $11 = $4 >> $10; + $12 = (((($1)) + 1024|0) + ($$025<<1)|0); + $13 = HEAP16[$12>>1]|0; + $14 = $13&65535; + $15 = (($11) - ($14))|0; + $16 = (((($1)) + 1124|0) + ($$025<<1)|0); + $17 = HEAP16[$16>>1]|0; + $18 = $17&65535; + $19 = (($15) + ($18))|0; + $20 = (((($1)) + 1156|0) + ($19)|0); + $21 = HEAP8[$20>>0]|0; + $22 = $21&255; + $23 = ($22|0)==($$025|0); + if (!($23)) { + ___assert_fail((10771|0),(9676|0),3876,(10787|0)); + // unreachable; + } + $24 = HEAP32[$2>>2]|0; + $25 = $24 >>> $$025; + HEAP32[$2>>2] = $25; + $26 = ((($0)) + 8|0); + $27 = HEAP32[$26>>2]|0; + $28 = (($27) - ($$025))|0; + HEAP32[$26>>2] = $28; + $29 = (((($1)) + 1444|0) + ($19<<1)|0); + $30 = HEAP16[$29>>1]|0; + $31 = $30&65535; + $$0 = $31; + return ($$0|0); +} +function _stbi__bit_reverse($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)<(17); + if ($2) { + $3 = (_stbi__bitreverse16($0)|0); + $4 = (16 - ($1))|0; + $5 = $3 >> $4; + return ($5|0); + } else { + ___assert_fail((10818|0),(9676|0),3766,(10829|0)); + // unreachable; + } + return (0)|0; +} +function _stbi__bitreverse16($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $1 = $0 >>> 1; + $2 = $1 & 21845; + $3 = $0 << 1; + $4 = $3 & 43690; + $5 = $2 | $4; + $6 = $5 >>> 2; + $7 = $6 & 13107; + $8 = $5 << 2; + $9 = $8 & 52428; + $10 = $7 | $9; + $11 = $10 >>> 4; + $12 = $11 & 3855; + $13 = $10 << 4; + $14 = $13 & 61680; + $15 = $12 | $14; + $16 = $15 >>> 8; + $17 = $15 << 8; + $18 = $17 & 65280; + $19 = $18 | $16; + return ($19|0); +} +function _stbi__zget8($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($1>>>0)<($3>>>0); + if (!($4)) { + $$0 = 0; + return ($$0|0); + } + $5 = ((($1)) + 1|0); + HEAP32[$0>>2] = $5; + $6 = HEAP8[$1>>0]|0; + $$0 = $6; + return ($$0|0); +} +function _stbi__refill_buffer($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 16|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 40|0); + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + $8 = (FUNCTION_TABLE_iiii[$2 & 15]($4,$5,$7)|0); + $9 = ($8|0)==(0); + if ($9) { + $10 = ((($0)) + 32|0); + HEAP32[$10>>2] = 0; + $11 = ((($0)) + 168|0); + HEAP32[$11>>2] = $5; + $12 = ((($0)) + 41|0); + $13 = ((($0)) + 172|0); + HEAP32[$13>>2] = $12; + HEAP8[$5>>0] = 0; + return; + } else { + $14 = ((($0)) + 168|0); + HEAP32[$14>>2] = $5; + $15 = (((($0)) + 40|0) + ($8)|0); + $16 = ((($0)) + 172|0); + HEAP32[$16>>2] = $15; + return; + } +} +function _stbi__rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 176|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 168|0); + HEAP32[$3>>2] = $2; + $4 = ((($0)) + 180|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 172|0); + HEAP32[$6>>2] = $5; + return; +} +function _stbi__start_callbacks($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + ;HEAP32[$3>>2]=HEAP32[$1>>2]|0;HEAP32[$3+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$1+8>>2]|0; + $4 = ((($0)) + 28|0); + HEAP32[$4>>2] = $2; + $5 = ((($0)) + 36|0); + HEAP32[$5>>2] = 128; + $6 = ((($0)) + 32|0); + HEAP32[$6>>2] = 1; + $7 = ((($0)) + 40|0); + $8 = ((($0)) + 176|0); + HEAP32[$8>>2] = $7; + _stbi__refill_buffer($0); + $9 = ((($0)) + 172|0); + $10 = HEAP32[$9>>2]|0; + $11 = ((($0)) + 180|0); + HEAP32[$11>>2] = $10; + return; +} +function _stbi__stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_fread($1,1,$2,$0)|0); + return ($3|0); +} +function _stbi__stdio_skip($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (_fseek($0,$1,1)|0); + return; +} +function _stbi__stdio_eof($0) { + $0 = $0|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_feof($0)|0); + return ($1|0); +} +function _LoadImage($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$1 = 0, $$sroa$0$144 = 0, $$sroa$10$0 = 0, $$sroa$10$0$$sroa_idx19 = 0, $$sroa$10$0$$sroa_idx20 = 0, $$sroa$10$0$copyload = 0, $$sroa$10$1 = 0, $$sroa$10$140 = 0, $$sroa$10$141 = 0, $$sroa$13$0 = 0, $$sroa$13$0$$sroa_idx23 = 0, $$sroa$13$0$$sroa_idx24 = 0, $$sroa$13$0$copyload = 0, $$sroa$13$1 = 0, $$sroa$13$146 = 0, $$sroa$13$147 = 0, $$sroa$15$0 = 0; + var $$sroa$15$0$$sroa_idx27 = 0, $$sroa$15$0$$sroa_idx28 = 0, $$sroa$15$0$copyload = 0, $$sroa$15$1 = 0, $$sroa$15$2 = 0, $$sroa$15$248 = 0, $$sroa$15$249 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx15 = 0, $$sroa$7$0$$sroa_idx16 = 0, $$sroa$7$0$copyload = 0, $$sroa$7$1 = 0, $$sroa$7$142 = 0, $$sroa$7$143 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0; + var $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer9 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer9 = sp + 32|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 48|0; + $3 = sp + 44|0; + $4 = sp + 40|0; + $5 = sp + 36|0; + $6 = (_IsFileExtension($1,11099)|0); + $7 = ($6|0)==(0); + do { + if ($7) { + $19 = (_IsFileExtension($1,11152)|0); + $20 = ($19|0)==(0); + if ($20) { + HEAP32[$vararg_buffer1>>2] = $1; + _TraceLog(2,11157,$vararg_buffer1); + $$sroa$10$141 = 0;$$sroa$13$147 = 0;$$sroa$15$249 = 0;$$sroa$7$143 = 0; + break; + } + HEAP32[$3>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$5>>2] = 0; + $21 = (_fopen($1,11291)|0); + $22 = (_stbi_load_from_file($21,$3,$4,$5,0)|0); + (_fclose($21)|0); + $23 = HEAP32[$3>>2]|0; + $24 = HEAP32[$4>>2]|0; + $25 = HEAP32[$5>>2]|0; + switch ($25|0) { + case 1: { + $$sink = 1; + label = 11; + break; + } + case 2: { + $$sink = 2; + label = 11; + break; + } + case 3: { + $$sink = 4; + label = 11; + break; + } + case 4: { + $$sink = 7; + label = 11; + break; + } + default: { + $$sroa$15$1 = 0; + } + } + if ((label|0) == 11) { + $$sroa$15$1 = $$sink; + } + $$sroa$0$1 = $22;$$sroa$10$1 = $24;$$sroa$13$1 = 1;$$sroa$15$2 = $$sroa$15$1;$$sroa$7$1 = $23; + label = 14; + } else { + $8 = (_LoadResource($1,0)|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)==(1); + if ($10) { + $11 = ((($8)) + 20|0); + $12 = HEAP32[$11>>2]|0; + $13 = ((($8)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($8)) + 8|0); + $16 = HEAP32[$15>>2]|0; + $17 = ((($8)) + 12|0); + $18 = HEAP32[$17>>2]|0; + _LoadImagePro($2,$12,$14,$16,$18); + $$sroa$0$0$copyload = HEAP32[$2>>2]|0; + $$sroa$7$0$$sroa_idx15 = ((($2)) + 4|0); + $$sroa$7$0$copyload = HEAP32[$$sroa$7$0$$sroa_idx15>>2]|0; + $$sroa$10$0$$sroa_idx19 = ((($2)) + 8|0); + $$sroa$10$0$copyload = HEAP32[$$sroa$10$0$$sroa_idx19>>2]|0; + $$sroa$13$0$$sroa_idx23 = ((($2)) + 12|0); + $$sroa$13$0$copyload = HEAP32[$$sroa$13$0$$sroa_idx23>>2]|0; + $$sroa$15$0$$sroa_idx27 = ((($2)) + 16|0); + $$sroa$15$0$copyload = HEAP32[$$sroa$15$0$$sroa_idx27>>2]|0; + $$sroa$0$0 = $$sroa$0$0$copyload;$$sroa$10$0 = $$sroa$10$0$copyload;$$sroa$13$0 = $$sroa$13$0$copyload;$$sroa$15$0 = $$sroa$15$0$copyload;$$sroa$7$0 = $$sroa$7$0$copyload; + } else { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,11105,$vararg_buffer); + $$sroa$0$0 = 0;$$sroa$10$0 = 0;$$sroa$13$0 = 0;$$sroa$15$0 = 0;$$sroa$7$0 = 0; + } + _UnloadResource($8); + $$sroa$0$1 = $$sroa$0$0;$$sroa$10$1 = $$sroa$10$0;$$sroa$13$1 = $$sroa$13$0;$$sroa$15$2 = $$sroa$15$0;$$sroa$7$1 = $$sroa$7$0; + label = 14; + } + } while(0); + if ((label|0) == 14) { + $26 = ($$sroa$0$1|0)==(0|0); + if ($26) { + $$sroa$10$141 = $$sroa$10$1;$$sroa$13$147 = $$sroa$13$1;$$sroa$15$249 = $$sroa$15$2;$$sroa$7$143 = $$sroa$7$1; + } else { + HEAP32[$vararg_buffer4>>2] = $1; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $$sroa$7$1; + $vararg_ptr8 = ((($vararg_buffer4)) + 8|0); + HEAP32[$vararg_ptr8>>2] = $$sroa$10$1; + _TraceLog(0,11193,$vararg_buffer4); + $$sroa$0$144 = $$sroa$0$1;$$sroa$10$140 = $$sroa$10$1;$$sroa$13$146 = $$sroa$13$1;$$sroa$15$248 = $$sroa$15$2;$$sroa$7$142 = $$sroa$7$1; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; + } + } + HEAP32[$vararg_buffer9>>2] = $1; + _TraceLog(2,11232,$vararg_buffer9); + $$sroa$0$144 = 0;$$sroa$10$140 = $$sroa$10$141;$$sroa$13$146 = $$sroa$13$147;$$sroa$15$248 = $$sroa$15$249;$$sroa$7$142 = $$sroa$7$143; + HEAP32[$0>>2] = $$sroa$0$144; + $$sroa$7$0$$sroa_idx16 = ((($0)) + 4|0); + HEAP32[$$sroa$7$0$$sroa_idx16>>2] = $$sroa$7$142; + $$sroa$10$0$$sroa_idx20 = ((($0)) + 8|0); + HEAP32[$$sroa$10$0$$sroa_idx20>>2] = $$sroa$10$140; + $$sroa$13$0$$sroa_idx24 = ((($0)) + 12|0); + HEAP32[$$sroa$13$0$$sroa_idx24>>2] = $$sroa$13$146; + $$sroa$15$0$$sroa_idx28 = ((($0)) + 16|0); + HEAP32[$$sroa$15$0$$sroa_idx28>>2] = $$sroa$15$248; + STACKTOP = sp;return; +} +function _LoadResource($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$05665 = 0, $$05764 = 0, $$1 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond60 = 0; + var $or$cond62 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $vararg_buffer8 = sp + 24|0; + $vararg_buffer4 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $2 = sp + 64|0; + $3 = sp + 32|0; + $4 = (_fopen($0,11291)|0); + $5 = ($4|0)==(0|0); + if ($5) { + HEAP32[$vararg_buffer>>2] = $0; + _TraceLog(2,11294,$vararg_buffer); + $$2 = 0; + STACKTOP = sp;return ($$2|0); + } + (_fread($2,1,1,$4)|0); + $6 = ((($2)) + 1|0); + (_fread($6,1,1,$4)|0); + $7 = ((($2)) + 2|0); + (_fread($7,1,1,$4)|0); + $8 = ((($2)) + 3|0); + (_fread($8,1,1,$4)|0); + $9 = ((($2)) + 4|0); + (_fread($9,2,1,$4)|0); + $10 = ((($2)) + 6|0); + (_fread($10,2,1,$4)|0); + $11 = HEAP8[$2>>0]|0; + $12 = ($11<<24>>24)==(114); + $13 = HEAP8[$6>>0]|0; + $14 = ($13<<24>>24)==(82); + $or$cond = $12 | $14; + $15 = HEAP8[$7>>0]|0; + $16 = ($15<<24>>24)==(69); + $or$cond60 = $or$cond | $16; + $17 = HEAP8[$8>>0]|0; + $18 = ($17<<24>>24)==(83); + $or$cond62 = $or$cond60 | $18; + if ($or$cond62) { + $19 = HEAP16[$10>>1]|0; + $20 = ($19<<16>>16)==(0); + if ($20) { + $$0$lcssa = 0; + } else { + $21 = ((($3)) + 7|0); + $22 = HEAP16[$10>>1]|0; + $23 = $22&65535; + $24 = ((($3)) + 8|0); + $25 = ((($3)) + 4|0); + $26 = ((($3)) + 16|0); + $27 = ((($3)) + 20|0); + $28 = ((($3)) + 24|0); + $29 = ((($3)) + 28|0); + $30 = ((($3)) + 8|0); + $31 = ((($3)) + 5|0); + $32 = ((($3)) + 12|0); + $$05665 = 0; + while(1) { + (_fread($3,32,1,$4)|0); + $36 = HEAP8[$21>>0]|0; + $37 = $36&255; + $38 = ($37*24)|0; + $39 = (_malloc($38)|0); + $40 = HEAP32[$3>>2]|0; + $41 = ($40|0)==($1|0); + if ($41) { + $42 = HEAP8[$21>>0]|0; + $43 = ($42<<24>>24)==(0); + if (!($43)) { + $$05764 = 0; + while(1) { + $44 = HEAP8[$25>>0]|0; + $45 = $44&255; + $46 = (($39) + (($$05764*24)|0)|0); + HEAP32[$46>>2] = $45; + $47 = HEAP32[$26>>2]|0; + $48 = (((($39) + (($$05764*24)|0)|0)) + 4|0); + HEAP32[$48>>2] = $47; + $49 = HEAP32[$27>>2]|0; + $50 = (((($39) + (($$05764*24)|0)|0)) + 8|0); + HEAP32[$50>>2] = $49; + $51 = HEAP32[$28>>2]|0; + $52 = (((($39) + (($$05764*24)|0)|0)) + 12|0); + HEAP32[$52>>2] = $51; + $53 = HEAP32[$29>>2]|0; + $54 = (((($39) + (($$05764*24)|0)|0)) + 16|0); + HEAP32[$54>>2] = $53; + $55 = HEAP32[$30>>2]|0; + $56 = (_malloc($55)|0); + (_fread($56,$55,1,$4)|0); + $57 = HEAP8[$31>>0]|0; + $58 = ($57<<24>>24)==(1); + if ($58) { + $59 = HEAP32[$30>>2]|0; + $60 = HEAP32[$32>>2]|0; + $61 = (_DecompressData($56,$59,$60)|0); + $62 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$62>>2] = $61; + _free($56); + } else { + $63 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + HEAP32[$63>>2] = $56; + } + $64 = (((($39) + (($$05764*24)|0)|0)) + 20|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if (!($66)) { + $67 = HEAP32[$3>>2]|0; + HEAP32[$vararg_buffer4>>2] = $0; + $vararg_ptr7 = ((($vararg_buffer4)) + 4|0); + HEAP32[$vararg_ptr7>>2] = $67; + _TraceLog(0,11391,$vararg_buffer4); + } + (_fread($3,32,1,$4)|0); + $68 = (($$05764) + 1)|0; + $69 = HEAP8[$21>>0]|0; + $70 = $69&255; + $71 = ($68|0)<($70|0); + if ($71) { + $$05764 = $68; + } else { + break; + } + } + } + } else { + $72 = HEAP32[$24>>2]|0; + (_fseek($4,$72,1)|0); + } + $73 = (($$05665) + 1)|0; + $74 = ($73|0)<($23|0); + if ($74) { + $$05665 = $73; + } else { + $$0$lcssa = $39; + break; + } + } + } + $33 = ((($$0$lcssa)) + 20|0); + $34 = HEAP32[$33>>2]|0; + $35 = ($34|0)==(0|0); + if ($35) { + HEAP32[$vararg_buffer8>>2] = $0; + $vararg_ptr11 = ((($vararg_buffer8)) + 4|0); + HEAP32[$vararg_ptr11>>2] = $1; + _TraceLog(2,11437,$vararg_buffer8); + $$1 = $$0$lcssa; + } else { + $$1 = $$0$lcssa; + } + } else { + HEAP32[$vararg_buffer1>>2] = $0; + _TraceLog(2,11345,$vararg_buffer1); + $$1 = 0; + } + (_fclose($4)|0); + $$2 = $$1; + STACKTOP = sp;return ($$2|0); +} +function _LoadImagePro($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$byval_copy = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $$byval_copy = sp + 20|0; + $5 = sp; + HEAP32[$5>>2] = $1; + $6 = ((($5)) + 4|0); + HEAP32[$6>>2] = $2; + $7 = ((($5)) + 8|0); + HEAP32[$7>>2] = $3; + $8 = ((($5)) + 12|0); + HEAP32[$8>>2] = 1; + $9 = ((($5)) + 16|0); + HEAP32[$9>>2] = $4; + ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$5+16>>2]|0; + _ImageCopy($0,$$byval_copy); + STACKTOP = sp;return; +} +function _UnloadResource($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0|0); + if ($3) { + return; + } + _free($2); + return; +} +function _ImageCopy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$sroa$6$0 = 0, $$sroa$6$0$$sroa_idx10 = 0, $$sroa$7$0 = 0, $$sroa$7$0$$sroa_idx12 = 0, $$sroa$8$0 = 0, $$sroa$8$0$$sroa_idx14 = 0, $$sroa$9$0 = 0, $$sroa$9$0$$sroa_idx16 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $2 = ((($1)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($1)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = Math_imul($5, $3)|0; + $7 = ((($1)) + 16|0); + $8 = HEAP32[$7>>2]|0; + switch ($8|0) { + case 17: case 14: case 11: case 10: case 1: { + $$0 = $6; + break; + } + case 6: case 5: case 3: case 2: { + $9 = $6 << 1; + $$0 = $9; + break; + } + case 4: { + $10 = ($6*3)|0; + $$0 = $10; + break; + } + case 7: { + $11 = $6 << 2; + $$0 = $11; + break; + } + case 16: case 15: case 13: case 12: case 9: case 8: { + $12 = (($6|0) / 2)&-1; + $$0 = $12; + break; + } + case 18: { + $13 = (($6|0) / 4)&-1; + $$0 = $13; + break; + } + default: { + _TraceLog(2,11263,$vararg_buffer); + $$0 = $6; + } + } + $14 = (_malloc($$0)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$sroa$6$0 = 0;$$sroa$7$0 = 0;$$sroa$8$0 = 0;$$sroa$9$0 = 0; + } else { + $16 = HEAP32[$1>>2]|0; + _memcpy(($14|0),($16|0),($$0|0))|0; + $17 = HEAP32[$2>>2]|0; + $18 = HEAP32[$4>>2]|0; + $19 = ((($1)) + 12|0); + $20 = HEAP32[$19>>2]|0; + $21 = HEAP32[$7>>2]|0; + $$sroa$6$0 = $17;$$sroa$7$0 = $18;$$sroa$8$0 = $20;$$sroa$9$0 = $21; + } + HEAP32[$0>>2] = $14; + $$sroa$6$0$$sroa_idx10 = ((($0)) + 4|0); + HEAP32[$$sroa$6$0$$sroa_idx10>>2] = $$sroa$6$0; + $$sroa$7$0$$sroa_idx12 = ((($0)) + 8|0); + HEAP32[$$sroa$7$0$$sroa_idx12>>2] = $$sroa$7$0; + $$sroa$8$0$$sroa_idx14 = ((($0)) + 12|0); + HEAP32[$$sroa$8$0$$sroa_idx14>>2] = $$sroa$8$0; + $$sroa$9$0$$sroa_idx16 = ((($0)) + 16|0); + HEAP32[$$sroa$9$0$$sroa_idx16>>2] = $$sroa$9$0; + STACKTOP = sp;return; +} +function _DecompressData($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr13 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer10 = sp + 40|0; + $vararg_buffer7 = sp + 32|0; + $vararg_buffer5 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer1 = sp + 8|0; + $vararg_buffer = sp; + $3 = (_malloc($2)|0); + $4 = ($3|0)==(0|0); + if ($4) { + _TraceLog(2,11487,$vararg_buffer); + STACKTOP = sp;return ($3|0); + } + $5 = (_tinfl_decompress_mem_to_mem($3,$2,$0,$1,1)|0); + $6 = ($5|0)==(-1); + if ($6) { + _TraceLog(2,11526,$vararg_buffer1); + _free($3); + } + $7 = ($5|0)==($2|0); + if (!($7)) { + _TraceLog(2,11552,$vararg_buffer3); + HEAP32[$vararg_buffer5>>2] = $2; + _TraceLog(2,11615,$vararg_buffer5); + HEAP32[$vararg_buffer7>>2] = $5; + _TraceLog(2,11650,$vararg_buffer7); + } + HEAP32[$vararg_buffer10>>2] = $1; + $vararg_ptr13 = ((($vararg_buffer10)) + 4|0); + HEAP32[$vararg_ptr13>>2] = $5; + _TraceLog(0,11685,$vararg_buffer10); + STACKTOP = sp;return ($3|0); +} +function _tinfl_decompress_mem_to_mem($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 11008|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(11008|0); + $5 = sp + 11000|0; + $6 = sp; + $7 = sp + 8|0; + HEAP32[$5>>2] = $1; + HEAP32[$6>>2] = $3; + HEAP32[$7>>2] = 0; + $8 = $4 & -7; + $9 = $8 | 4; + $10 = (_tinfl_decompress($7,$2,$6,$0,$0,$5,$9)|0); + $11 = ($10|0)!=(0); + $12 = HEAP32[$5>>2]|0; + $13 = $11 ? -1 : $12; + STACKTOP = sp;return ($13|0); +} +function _tinfl_decompress($0,$1,$2,$3,$4,$5,$6) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + $6 = $6|0; + var $$ = 0, $$$301127 = 0, $$010861840 = 0, $$010871839 = 0, $$010881838 = 0, $$010911856 = 0, $$010941846 = 0, $$010951864 = 0, $$01097 = 0, $$01194 = 0, $$011971855 = 0, $$01202 = 0, $$01202$shrunk = 0, $$01203 = 0, $$01300 = 0, $$01300$shrunk = 0, $$01309 = 0, $$01410 = 0, $$01410$shrunk = 0, $$01411 = 0; + var $$01411$shrunk = 0, $$01412 = 0, $$01413 = 0, $$01413$shrunk = 0, $$01416 = 0, $$01507 = 0, $$01607 = 0, $$01834 = 0, $$0937$lcssa = 0, $$09371833 = 0, $$0938$lcssa = 0, $$09381832 = 0, $$0941$lcssa = 0, $$09411816 = 0, $$09431831 = 0, $$09441830 = 0, $$0947 = 0, $$0947$shrunk = 0, $$0948 = 0, $$0949 = 0; + var $$0950 = 0, $$0950$shrunk = 0, $$0951 = 0, $$0952 = 0, $$0952$shrunk = 0, $$0953 = 0, $$0956 = 0, $$0959 = 0, $$0959$shrunk = 0, $$0960 = 0, $$0963 = 0, $$0967 = 0, $$0971 = 0, $$0971$shrunk = 0, $$0972 = 0, $$0975 = 0, $$0978 = 0, $$0979 = 0, $$0979$shrunk = 0, $$0980 = 0; + var $$0980$shrunk = 0, $$0981 = 0, $$0984 = 0, $$0987 = 0, $$0991 = 0, $$1$lcssa = 0, $$100 = 0, $$1001409 = 0, $$101426 = 0, $$101617 = 0, $$110891852 = 0, $$11098 = 0, $$11098$ph = 0, $$111427 = 0, $$111518 = 0, $$111618 = 0, $$11198 = 0, $$11204 = 0, $$11204$ph = 0, $$11310 = 0; + var $$11310$ph = 0, $$11417 = 0, $$11508 = 0, $$11608 = 0, $$11818 = 0, $$121428 = 0, $$121428$ph = 0, $$121519 = 0, $$121619 = 0, $$121619$ph = 0, $$13 = 0, $$131004 = 0, $$131110 = 0, $$131216 = 0, $$131322 = 0, $$131429 = 0, $$131520 = 0, $$131620 = 0, $$14 = 0, $$141005 = 0; + var $$141111 = 0, $$141217 = 0, $$141323 = 0, $$141430 = 0, $$141521 = 0, $$141621 = 0, $$15 = 0, $$151006 = 0, $$151112 = 0, $$151218 = 0, $$151324 = 0, $$151431 = 0, $$151522 = 0, $$151622 = 0, $$16 = 0, $$161007 = 0, $$161113 = 0, $$161113$ph = 0, $$161219 = 0, $$161325 = 0; + var $$161432 = 0, $$161523 = 0, $$161623 = 0, $$17 = 0, $$17$ph = 0, $$171008 = 0, $$171008$ph = 0, $$171114 = 0, $$171220 = 0, $$171220$ph = 0, $$171326 = 0, $$171326$ph = 0, $$171433 = 0, $$171524 = 0, $$171624 = 0, $$1753 = 0, $$1754 = 0, $$18 = 0, $$181009 = 0, $$181115 = 0; + var $$181221 = 0, $$181327 = 0, $$181434 = 0, $$181525 = 0, $$181625 = 0, $$19 = 0, $$191010 = 0, $$191116 = 0, $$191222 = 0, $$191328 = 0, $$191435 = 0, $$191526 = 0, $$191626 = 0, $$1939$lcssa = 0, $$19391817 = 0, $$19421823 = 0, $$1945$lcssa = 0, $$19451815 = 0, $$1954 = 0, $$1957 = 0; + var $$1961 = 0, $$1961$ = 0, $$1964 = 0, $$1968 = 0, $$1973 = 0, $$1976 = 0, $$1982 = 0, $$1985 = 0, $$1988 = 0, $$1988$ph = 0, $$1992 = 0, $$1992$ph = 0, $$2$lcssa = 0, $$20 = 0, $$201011 = 0, $$201117 = 0, $$201223 = 0, $$201329 = 0, $$201436 = 0, $$201527 = 0; + var $$201627 = 0, $$21 = 0, $$21099 = 0, $$211012 = 0, $$211118 = 0, $$211224 = 0, $$211330 = 0, $$211437 = 0, $$211437$ph = 0, $$211528 = 0, $$211628 = 0, $$211628$ph = 0, $$21196 = 0, $$21199$lcssa = 0, $$211991845 = 0, $$21205 = 0, $$21311 = 0, $$21418 = 0, $$21509 = 0, $$21609 = 0; + var $$21825 = 0, $$22 = 0, $$221013 = 0, $$221119 = 0, $$221225 = 0, $$221331 = 0, $$221438 = 0, $$221529 = 0, $$221629 = 0, $$23 = 0, $$231014 = 0, $$231120 = 0, $$231226 = 0, $$231332 = 0, $$231439 = 0, $$231530 = 0, $$231630 = 0, $$24 = 0, $$241015 = 0, $$241121 = 0; + var $$241227 = 0, $$241333 = 0, $$241440 = 0, $$241531 = 0, $$241631 = 0, $$25 = 0, $$251016 = 0, $$251122 = 0, $$251122$ph = 0, $$251228 = 0, $$251334 = 0, $$251441 = 0, $$251532 = 0, $$251632 = 0, $$26 = 0, $$26$ph = 0, $$261017 = 0, $$261017$ph = 0, $$261123 = 0, $$261229 = 0; + var $$261229$ph = 0, $$261335 = 0, $$261335$ph = 0, $$261442 = 0, $$261533 = 0, $$261633 = 0, $$27 = 0, $$271018 = 0, $$271124 = 0, $$271230 = 0, $$271336 = 0, $$271443 = 0, $$271534 = 0, $$271634 = 0, $$28 = 0, $$281019 = 0, $$281125 = 0, $$281231 = 0, $$281337 = 0, $$281444 = 0; + var $$281535 = 0, $$281635 = 0, $$29 = 0, $$291020 = 0, $$291126 = 0, $$291232 = 0, $$291338 = 0, $$291445 = 0, $$291536 = 0, $$291636 = 0, $$2940$lcssa = 0, $$29401824 = 0, $$2946$lcssa = 0, $$29461822 = 0, $$2955 = 0, $$2958 = 0, $$2965 = 0, $$2969 = 0, $$2974 = 0, $$2977 = 0; + var $$2983 = 0, $$2986 = 0, $$2989 = 0, $$2993 = 0, $$30 = 0, $$301021 = 0, $$301127 = 0, $$301233 = 0, $$301339 = 0, $$301446 = 0, $$301537 = 0, $$301637 = 0, $$31 = 0, $$31100$v = 0, $$311022 = 0, $$311128 = 0, $$311234 = 0, $$311340 = 0, $$311447 = 0, $$311538 = 0; + var $$311638 = 0, $$31200 = 0, $$31206 = 0, $$31206$ph = 0, $$31312 = 0, $$31312$ph = 0, $$31419 = 0, $$31419$ph = 0, $$31610 = 0, $$31610$ph = 0, $$32 = 0, $$321023 = 0, $$321129 = 0, $$321235 = 0, $$321341 = 0, $$321448 = 0, $$321448$ph = 0, $$321539 = 0, $$321639 = 0, $$321639$ph = 0; + var $$33 = 0, $$331024 = 0, $$331130 = 0, $$331236 = 0, $$331342 = 0, $$331449 = 0, $$331540 = 0, $$331640 = 0, $$34 = 0, $$341025 = 0, $$341131 = 0, $$341237 = 0, $$341343 = 0, $$341450 = 0, $$341541 = 0, $$341641 = 0, $$35 = 0, $$351026 = 0, $$351132 = 0, $$351238 = 0; + var $$351344 = 0, $$351451 = 0, $$351542 = 0, $$351642 = 0, $$36 = 0, $$361027 = 0, $$361027$ph = 0, $$361133 = 0, $$361133$ph = 0, $$361239 = 0, $$361345 = 0, $$361452 = 0, $$361543 = 0, $$361643 = 0, $$37 = 0, $$37$ph = 0, $$371028 = 0, $$371134 = 0, $$371240 = 0, $$371240$ph = 0; + var $$371346 = 0, $$371346$ph = 0, $$371453 = 0, $$371453$ph = 0, $$371544 = 0, $$371644 = 0, $$371644$ph = 0, $$38 = 0, $$381029 = 0, $$381135 = 0, $$381241 = 0, $$381347 = 0, $$381454 = 0, $$381545 = 0, $$381645 = 0, $$39 = 0, $$391030 = 0, $$391136 = 0, $$391242 = 0, $$391348 = 0; + var $$391455 = 0, $$391546 = 0, $$391646 = 0, $$3966 = 0, $$3970 = 0, $$3990 = 0, $$3990$ph = 0, $$3994 = 0, $$3994$ph = 0, $$40 = 0, $$401031 = 0, $$401137 = 0, $$401243 = 0, $$401349 = 0, $$401456 = 0, $$401547 = 0, $$401647 = 0, $$41 = 0, $$411032 = 0, $$411032$ph = 0; + var $$411138 = 0, $$411138$ph = 0, $$411244 = 0, $$411350 = 0, $$411457 = 0, $$411548 = 0, $$411648 = 0, $$41201 = 0, $$41420 = 0, $$41511 = 0, $$41611 = 0, $$42 = 0, $$42$ph = 0, $$421033 = 0, $$421139 = 0, $$421245 = 0, $$421245$ph = 0, $$421351 = 0, $$421351$ph = 0, $$421458 = 0; + var $$421549 = 0, $$421649 = 0, $$43 = 0, $$431034 = 0, $$431140 = 0, $$431246 = 0, $$431352 = 0, $$431459 = 0, $$431550 = 0, $$431650 = 0, $$44 = 0, $$441035 = 0, $$441141 = 0, $$441247 = 0, $$441353 = 0, $$441460 = 0, $$441460$ph = 0, $$441551 = 0, $$441651 = 0, $$441651$ph = 0; + var $$45 = 0, $$451036 = 0, $$451142 = 0, $$451248 = 0, $$451354 = 0, $$451461 = 0, $$451552 = 0, $$451652 = 0, $$46 = 0, $$461037 = 0, $$461143 = 0, $$461249 = 0, $$461355 = 0, $$461462 = 0, $$461553 = 0, $$461653 = 0, $$47 = 0, $$471038 = 0, $$471144 = 0, $$471250 = 0; + var $$471356 = 0, $$471463 = 0, $$471554 = 0, $$471654 = 0, $$48 = 0, $$481039 = 0, $$481039$ph = 0, $$481145 = 0, $$481145$ph = 0, $$481251 = 0, $$481357 = 0, $$481464 = 0, $$481555 = 0, $$481655 = 0, $$49 = 0, $$49$ph = 0, $$491040 = 0, $$491146 = 0, $$491252 = 0, $$491252$ph = 0; + var $$491358 = 0, $$491358$ph = 0, $$491465 = 0, $$491465$ph = 0, $$491556 = 0, $$491656 = 0, $$491656$ph = 0, $$5 = 0, $$50 = 0, $$501041 = 0, $$501147 = 0, $$501253 = 0, $$501359 = 0, $$501466 = 0, $$501557 = 0, $$501657 = 0, $$51 = 0, $$51102 = 0, $$511042 = 0, $$511148 = 0; + var $$511254 = 0, $$511360 = 0, $$511467 = 0, $$511558 = 0, $$511658 = 0, $$51208 = 0, $$51314 = 0, $$51512 = 0, $$52 = 0, $$521043 = 0, $$521043$ph = 0, $$521149 = 0, $$521255 = 0, $$521361 = 0, $$521468 = 0, $$521559 = 0, $$521659 = 0, $$53 = 0, $$531044 = 0, $$531150 = 0; + var $$531150$ph = 0, $$531256 = 0, $$531362 = 0, $$531469 = 0, $$531560 = 0, $$531660 = 0, $$54 = 0, $$54$ph = 0, $$541045 = 0, $$541151 = 0, $$541257 = 0, $$541257$ph = 0, $$541363 = 0, $$541363$ph = 0, $$541470$ph = 0, $$541561 = 0, $$541661$lcssa = 0, $$541661$ph = 0, $$5416611868 = 0, $$55 = 0; + var $$551046 = 0, $$551152 = 0, $$551258 = 0, $$551364 = 0, $$551471 = 0, $$551562 = 0, $$551662 = 0, $$56 = 0, $$561047 = 0, $$561153 = 0, $$561259 = 0, $$561365 = 0, $$561472 = 0, $$561563 = 0, $$561663 = 0, $$57 = 0, $$571048$ph = 0, $$571154 = 0, $$571260 = 0, $$571366 = 0; + var $$571473 = 0, $$571473$ph = 0, $$571564 = 0, $$571664 = 0, $$571664$ph = 0, $$58 = 0, $$581049 = 0, $$581155$lcssa = 0, $$581155$ph = 0, $$5811551871 = 0, $$581261 = 0, $$581367 = 0, $$581474 = 0, $$581565$lcssa = 0, $$581565$ph = 0, $$5815651869 = 0, $$581665 = 0, $$59$lcssa = 0, $$59$ph = 0, $$591050 = 0; + var $$591156 = 0, $$591262$ph = 0, $$591368$lcssa = 0, $$591368$ph = 0, $$5913681870 = 0, $$591475 = 0, $$591566 = 0, $$591666 = 0, $$591872 = 0, $$5996 = 0, $$6 = 0, $$60 = 0, $$601051 = 0, $$601051$ph = 0, $$601157 = 0, $$601263 = 0, $$601369 = 0, $$601476 = 0, $$601567 = 0, $$61 = 0; + var $$61103 = 0, $$611052 = 0, $$611158 = 0, $$611158$ph = 0, $$611264 = 0, $$611370 = 0, $$611477 = 0, $$611568 = 0, $$611668 = 0, $$61209 = 0, $$61315 = 0, $$61513 = 0, $$62 = 0, $$62$ph = 0, $$621053 = 0, $$621159 = 0, $$621265 = 0, $$621265$ph = 0, $$621371 = 0, $$621371$ph = 0; + var $$621478 = 0, $$621569 = 0, $$621669 = 0, $$63 = 0, $$631054 = 0, $$631266 = 0, $$631372 = 0, $$631479 = 0, $$631479$ph = 0, $$631570 = 0, $$631670 = 0, $$64 = 0, $$641055 = 0, $$641161 = 0, $$641267 = 0, $$641373 = 0, $$641480 = 0, $$641571 = 0, $$641671 = 0, $$641671$ph = 0; + var $$65 = 0, $$651056 = 0, $$651162 = 0, $$651268 = 0, $$651374 = 0, $$651481 = 0, $$651572 = 0, $$651672 = 0, $$66 = 0, $$661057 = 0, $$661057$ph = 0, $$661163 = 0, $$661269 = 0, $$661375 = 0, $$661482 = 0, $$661673 = 0, $$671058 = 0, $$671164 = 0, $$671164$ph = 0, $$671270 = 0; + var $$671483 = 0, $$671574 = 0, $$671674 = 0, $$68 = 0, $$681059 = 0, $$681165 = 0, $$681271 = 0, $$681271$ph = 0, $$681377 = 0, $$681484 = 0, $$681484$ph = 0, $$681575 = 0, $$681675 = 0, $$69 = 0, $$691060 = 0, $$691166 = 0, $$691272 = 0, $$691378 = 0, $$691485 = 0, $$691576 = 0; + var $$691676 = 0, $$691676$ph = 0, $$6997 = 0, $$7 = 0, $$70 = 0, $$701061 = 0, $$701167 = 0, $$701273 = 0, $$701379 = 0, $$701486 = 0, $$701577 = 0, $$701677 = 0, $$71 = 0, $$71$ph = 0, $$71104 = 0, $$711062 = 0, $$711062$ph = 0, $$711168 = 0, $$711274 = 0, $$711380 = 0; + var $$711380$ph = 0, $$711487 = 0, $$711578 = 0, $$711678 = 0, $$71210 = 0, $$71316 = 0, $$71514 = 0, $$72 = 0, $$721063 = 0, $$721169 = 0, $$721169$ph = 0, $$721275 = 0, $$721381 = 0, $$721488 = 0, $$721488$ph = 0, $$721579 = 0, $$721679 = 0, $$73 = 0, $$731064 = 0, $$731170 = 0; + var $$731276 = 0, $$731276$ph = 0, $$731382 = 0, $$731489 = 0, $$731580 = 0, $$731680 = 0, $$731680$ph = 0, $$74 = 0, $$741065 = 0, $$741065$ph = 0, $$741171 = 0, $$741277 = 0, $$741383 = 0, $$741490 = 0, $$741581 = 0, $$741681 = 0, $$75 = 0, $$751066 = 0, $$751172 = 0, $$751278 = 0; + var $$751384 = 0, $$751491 = 0, $$751582 = 0, $$751682 = 0, $$76 = 0, $$76$ph = 0, $$761067 = 0, $$761173 = 0, $$761173$ph = 0, $$761279 = 0, $$761279$ph = 0, $$761385 = 0, $$761385$ph = 0, $$761492 = 0, $$761583 = 0, $$761683 = 0, $$77 = 0, $$771068 = 0, $$771174 = 0, $$771280 = 0; + var $$771386 = 0, $$771584 = 0, $$771684 = 0, $$78 = 0, $$781069 = 0, $$781175 = 0, $$781281 = 0, $$781387 = 0, $$781585 = 0, $$781685 = 0, $$79 = 0, $$791070 = 0, $$791176 = 0, $$791282 = 0, $$791388 = 0, $$791586 = 0, $$791686 = 0, $$7998 = 0, $$8 = 0, $$8$ph = 0; + var $$80 = 0, $$80$ph = 0, $$801071 = 0, $$801177 = 0, $$801283 = 0, $$801389 = 0, $$801389$ph = 0, $$801496 = 0, $$801587 = 0, $$801687 = 0, $$81 = 0, $$81105 = 0, $$81105$ph = 0, $$811178 = 0, $$811284 = 0, $$811390 = 0, $$811497 = 0, $$811588 = 0, $$81211 = 0, $$81211$ph = 0; + var $$81317 = 0, $$81317$ph = 0, $$81424 = 0, $$81515 = 0, $$81615 = 0, $$82 = 0, $$821179 = 0, $$821285 = 0, $$821391 = 0, $$821498 = 0, $$821589 = 0, $$83 = 0, $$831180 = 0, $$831392 = 0, $$831499 = 0, $$831590 = 0, $$84 = 0, $$841075 = 0, $$841393 = 0, $$841500 = 0; + var $$841500$ph = 0, $$841591 = 0, $$841691 = 0, $$85 = 0, $$851076 = 0, $$851394 = 0, $$851501 = 0, $$851592 = 0, $$851692 = 0, $$86 = 0, $$861077 = 0, $$861289 = 0, $$861395 = 0, $$861502 = 0, $$861693 = 0, $$871078 = 0, $$871184 = 0, $$871290 = 0, $$871503 = 0, $$871694 = 0; + var $$881079 = 0, $$881079$ph = 0, $$881185 = 0, $$881291 = 0, $$881504 = 0, $$881595 = 0, $$881695 = 0, $$881695$ph = 0, $$891080 = 0, $$891186 = 0, $$891292 = 0, $$891505 = 0, $$891596 = 0, $$891696 = 0, $$8999 = 0, $$8999$ph = 0, $$9 = 0, $$90 = 0, $$901081 = 0, $$901187 = 0; + var $$901187$ph = 0, $$901293 = 0, $$901293$ph = 0, $$901399 = 0, $$901506 = 0, $$901597 = 0, $$901697 = 0, $$91 = 0, $$91000 = 0, $$91106 = 0, $$911082 = 0, $$911188 = 0, $$911294 = 0, $$911400 = 0, $$911598 = 0, $$911698 = 0, $$91212 = 0, $$91318 = 0, $$91425 = 0, $$91616 = 0; + var $$92 = 0, $$921083 = 0, $$921189 = 0, $$921295 = 0, $$921401 = 0, $$921599 = 0, $$921699 = 0, $$93 = 0, $$931084 = 0, $$931190 = 0, $$931296 = 0, $$931402 = 0, $$931600 = 0, $$931700 = 0, $$94 = 0, $$94$ph = 0, $$941085 = 0, $$941191 = 0, $$941297 = 0, $$941403 = 0; + var $$941403$ph = 0, $$941601 = 0, $$941701 = 0, $$95 = 0, $$951192 = 0, $$951298 = 0, $$951404 = 0, $$951602 = 0, $$96 = 0, $$961193 = 0, $$961299 = 0, $$961405 = 0, $$961603 = 0, $$97 = 0, $$971406 = 0, $$971604 = 0, $$98 = 0, $$981407 = 0, $$981605 = 0, $$99 = 0; + var $$991408 = 0, $$991606 = 0, $$lcssa1778 = 0, $$lcssa1779 = 0, $$lcssa1799 = 0, $$lcssa1802 = 0, $$not = 0, $$not1747 = 0, $$sink12 = 0, $$sink13 = 0, $$sink16 = 0, $$sink17 = 0, $$sink1705 = 0, $$sink1710 = 0, $$sink1713 = 0, $$sink1716 = 0, $$sink1719 = 0, $$sink1722 = 0, $$sink1729 = 0, $$sink1732 = 0; + var $$sink1736 = 0, $$sink1739 = 0, $$sink1743 = 0, $$sink1746 = 0, $$sink1750 = 0, $$sink3 = 0, $$sink3$shrunk = 0, $$sink30 = 0, $$sink9 = 0, $$sink9$shrunk = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; + var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; + var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; + var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; + var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; + var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; + var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; + var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; + var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0; + var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0; + var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0; + var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; + var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; + var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; + var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; + var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; + var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0; + var $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0; + var $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0; + var $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0; + var $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0; + var $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0; + var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; + var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; + var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; + var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; + var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; + var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; + var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; + var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; + var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; + var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; + var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; + var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; + var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; + var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; + var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; + var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; + var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; + var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; + var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; + var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; + var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $exitcond = 0, $not$ = 0, $not$1755 = 0, $or$cond = 0, $or$cond1702 = 0, $or$cond1752 = 0, $or$cond24 = 0, $or$cond29 = 0, $scevgep = 0; + var $scevgep1947 = 0, $scevgep1948 = 0, $scevgep1955 = 0, $scevgep1957 = 0, $scevgep1959 = 0, $scevgep19611962 = 0, $trunc = 0, $trunc$clear = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $7 = sp + 64|0; + $8 = sp; + $9 = HEAP32[$2>>2]|0; + $10 = (($1) + ($9)|0); + $11 = HEAP32[$5>>2]|0; + $12 = (($4) + ($11)|0); + $13 = $6 & 4; + $14 = ($13|0)!=(0); + $15 = $4; + $16 = $3; + $17 = $16 ^ -1; + $18 = (($15) + ($17))|0; + $19 = (($18) + ($11))|0; + $$1753 = $14 ? -1 : $19; + $20 = (($$1753) + 1)|0; + $21 = $20 & $$1753; + $22 = ($21|0)!=(0); + $23 = ($4>>>0)<($3>>>0); + $or$cond1702 = $23 | $22; + if ($or$cond1702) { + HEAP32[$5>>2] = 0; + HEAP32[$2>>2] = 0; + $$0951 = -3; + STACKTOP = sp;return ($$0951|0); + } + $24 = ((($0)) + 4|0); + $25 = HEAP32[$24>>2]|0; + $26 = ((($0)) + 56|0); + $27 = HEAP32[$26>>2]|0; + $28 = ((($0)) + 32|0); + $29 = HEAP32[$28>>2]|0; + $30 = ((($0)) + 36|0); + $31 = HEAP32[$30>>2]|0; + $32 = ((($0)) + 40|0); + $33 = HEAP32[$32>>2]|0; + $34 = ((($0)) + 60|0); + $35 = HEAP32[$34>>2]|0; + $36 = HEAP32[$0>>2]|0; + L5: do { + switch ($36|0) { + case 0: { + $37 = ((($0)) + 12|0); + HEAP32[$37>>2] = 0; + $38 = ((($0)) + 8|0); + HEAP32[$38>>2] = 0; + $39 = ((($0)) + 28|0); + HEAP32[$39>>2] = 1; + $40 = ((($0)) + 16|0); + HEAP32[$40>>2] = 1; + $41 = $6 & 1; + $42 = ($41|0)==(0); + if ($42) { + $$01416 = $35;$$01607 = $4;$$41511 = $1;$$5 = 0;$$51102 = 0;$$51208 = 0;$$51314 = 0;$$5996 = 0; + label = 14; + } else { + $43 = ($9|0)<(1); + if ($43) { + $$01097 = 0;$$01203 = 0;$$01309 = 0;$$0987 = 0;$$0991 = 0; + label = 6; + } else { + $$11098$ph = 0;$$11204$ph = 0;$$11310$ph = 0;$$1988$ph = 0;$$1992$ph = 0; + label = 8; + } + } + break; + } + case 1: { + $46 = ($9|0)>(0); + if ($46) { + $$11098$ph = $31;$$11204$ph = $33;$$11310$ph = $27;$$1988$ph = $25;$$1992$ph = $29; + label = 8; + } else { + $$01097 = $31;$$01203 = $33;$$01309 = $27;$$0987 = $25;$$0991 = $29; + label = 6; + } + break; + } + case 2: { + $53 = ($9|0)>(0); + if ($53) { + $$31206$ph = $33;$$31312$ph = $27;$$3990$ph = $25;$$3994$ph = $29;$$sink1705 = $1; + label = 12; + } else { + $$11508 = $1;$$21099 = $31;$$21205 = $33;$$21311 = $27;$$2989 = $25;$$2993 = $29; + label = 10; + } + break; + } + case 36: { + $$0960 = -1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 36; + label = 243; + break; + } + case 3: { + $75 = ($9|0)>(0); + if ($75) { + $$31419$ph = $35;$$31610$ph = $4;$$8$ph = $25;$$81105$ph = $31;$$81211$ph = $33;$$81317$ph = $27;$$8999$ph = $29;$$sink1710 = $1; + label = 18; + } else { + $$21418 = $35;$$21609 = $4;$$61513 = $1;$$7 = $25;$$71104 = $31;$$71210 = $33;$$71316 = $27;$$7998 = $29; + label = 16; + } + break; + } + case 5: { + $90 = ($9|0)>(0); + if ($90) { + $91 = ((($1)) + 1|0); + $92 = HEAP8[$1>>0]|0; + $93 = $92&255; + $$01412 = $93;$$111518 = $91; + } else { + $88 = $6 & 2; + $89 = ($88|0)==(0); + if ($89) { + $$01412 = 0;$$111518 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 5; + label = 243; + break L5; + } + } + $94 = $$01412 << $25; + $95 = $94 | $27; + $96 = (($25) + 8)|0; + $$121519 = $$111518;$$13 = $96;$$131004 = $29;$$131216 = $33;$$131322 = $95;$$81424 = $35;$$81615 = $4; + label = 25; + break; + } + case 6: { + $106 = ($9|0)>(0); + if ($106) { + $$121428$ph = $35;$$121619$ph = $4;$$161113$ph = $31;$$17$ph = $25;$$171008$ph = $29;$$171220$ph = $33;$$171326$ph = $27;$$sink1713 = $1; + label = 32; + } else { + $$111427 = $35;$$111618 = $4;$$151112 = $31;$$151522 = $1;$$16 = $25;$$161007 = $29;$$161219 = $33;$$161325 = $27; + label = 30; + } + break; + } + case 7: { + $120 = ($9|0)>(0); + if ($120) { + $121 = ((($1)) + 1|0); + $122 = HEAP8[$1>>0]|0; + $$151431 = $35;$$151622 = $4;$$191116 = $31;$$191526 = $121;$$20 = $25;$$201011 = $29;$$201223 = $33;$$201329 = $27;$$sink12 = $122; + label = 39; + } else { + $$141430 = $35;$$141621 = $4;$$181115 = $31;$$181525 = $1;$$19 = $25;$$191010 = $29;$$191222 = $33;$$191328 = $27; + label = 36; + } + break; + } + case 39: { + $$171433 = $35;$$171624 = $4;$$211118 = $31;$$211528 = $1;$$22 = $25;$$221013 = $29;$$221225 = $33;$$221331 = $27; + label = 43; + break; + } + case 51: { + $152 = ($9|0)>(0); + if ($152) { + $$211437$ph = $35;$$211628$ph = $4;$$251122$ph = $31;$$26$ph = $25;$$261017$ph = $29;$$261229$ph = $33;$$261335$ph = $27;$$sink1716 = $1; + label = 49; + } else { + $$201436 = $35;$$201627 = $4;$$241121 = $31;$$241531 = $1;$$25 = $25;$$251016 = $29;$$251228 = $33;$$251334 = $27; + label = 47; + } + break; + } + case 52: { + $$231439 = $35;$$231630 = $4;$$271018 = $29;$$271124 = $31;$$271534 = $1;$$28 = $25;$$281231 = $33;$$281337 = $27; + label = 52; + break; + } + case 9: { + $$251441 = $35;$$251632 = $4;$$291020 = $29;$$291126 = $31;$$291536 = $1;$$30 = $25;$$301233 = $33;$$301339 = $27; + label = 55; + break; + } + case 38: { + $$261442 = $35;$$261633 = $4;$$301021 = $29;$$301127 = $31;$$301537 = $1;$$31 = $25;$$311234 = $33;$$311340 = $27; + label = 56; + break; + } + case 40: { + $$271443 = $35;$$271634 = $4;$$311022 = $29;$$311128 = $31;$$311538 = $1;$$32 = $25;$$321235 = $33;$$321341 = $27; + label = 58; + break; + } + case 10: { + $$281444 = $35;$$281635 = $4;$$321023 = $29;$$321129 = $31;$$321539 = $1;$$33 = $25;$$331236 = $33;$$331342 = $27; + label = 60; + break; + } + case 11: { + $193 = ($9|0)>(0); + if ($193) { + $$321448$ph = $35;$$321639$ph = $4;$$361027$ph = $29;$$361133$ph = $31;$$37$ph = $25;$$371240$ph = $33;$$371346$ph = $27;$$sink1719 = $1; + label = 66; + } else { + $$311447 = $35;$$311638 = $4;$$351026 = $29;$$351132 = $31;$$351542 = $1;$$36 = $25;$$361239 = $33;$$361345 = $27; + label = 64; + } + break; + } + case 14: { + $224 = ($9|0)>(0); + if ($224) { + $$371453$ph = $35;$$371644$ph = $4;$$411032$ph = $29;$$411138$ph = $31;$$42$ph = $25;$$421245$ph = $33;$$421351$ph = $27;$$sink1722 = $1; + label = 75; + } else { + $$361452 = $35;$$361643 = $4;$$401031 = $29;$$401137 = $31;$$401547 = $1;$$41 = $25;$$411244 = $33;$$411350 = $27; + label = 73; + } + break; + } + case 35: { + $$401456 = $35;$$401647 = $4;$$441035 = $29;$$441141 = $31;$$441551 = $1;$$45 = $25;$$451248 = $33;$$451354 = $27; + label = 86; + break; + } + case 16: { + $452 = ($9|0)>(0); + if ($452) { + $$441460$ph = $35;$$441651$ph = $4;$$481039$ph = $29;$$481145$ph = $31;$$49$ph = $25;$$491252$ph = $33;$$491358$ph = $27;$$sink1729 = $1; + label = 116; + } else { + $$431459 = $35;$$431650 = $4;$$471038 = $29;$$471144 = $31;$$471554 = $1;$$48 = $25;$$481251 = $33;$$481357 = $27; + label = 114; + } + break; + } + case 17: { + $$461462 = $35;$$461653 = $4;$$491040 = $29;$$501147 = $31;$$501557 = $1;$$51 = $25;$$511254 = $33;$$511360 = $27; + label = 125; + break; + } + case 18: { + $503 = ($9|0)>(0); + if ($503) { + $$491465$ph = $35;$$491656$ph = $4;$$521043$ph = $29;$$531150$ph = $31;$$54$ph = $25;$$541257$ph = $33;$$541363$ph = $27;$$sink1732 = $1; + label = 130; + } else { + $$481464 = $35;$$481655 = $4;$$511042 = $29;$$521149 = $31;$$521559 = $1;$$53 = $25;$$531256 = $33;$$531362 = $27; + label = 128; + } + break; + } + case 21: { + $$511467 = $35;$$511658 = $4;$$541045 = $29;$$551152 = $31;$$551562 = $1;$$56 = $25;$$561259 = $33;$$561365 = $27; + label = 136; + break; + } + case 23: { + $572 = ($9|0)>(0); + if ($572) { + $$571473$ph = $35;$$571664$ph = $4;$$601051$ph = $29;$$611158$ph = $31;$$62$ph = $25;$$621265$ph = $33;$$621371$ph = $27;$$sink1736 = $1; + label = 153; + } else { + $$561472 = $35;$$561663 = $4;$$591050 = $29;$$601157 = $31;$$601567 = $1;$$61 = $25;$$611264 = $33;$$611370 = $27; + label = 151; + } + break; + } + case 24: { + $$591475 = $35;$$591666 = $4;$$621053 = $29;$$621159 = $31;$$631570 = $1;$$64 = $25;$$641267 = $33;$$641373 = $27; + label = 160; + break; + } + case 25: { + $696 = ($9|0)>(0); + if ($696) { + $$631479$ph = $35;$$641671$ph = $4;$$661057$ph = $29;$$671164$ph = $31;$$681271$ph = $33;$$71$ph = $25;$$711380$ph = $27;$$sink1739 = $1; + label = 182; + } else { + $$621478 = $35;$$631670 = $4;$$651056 = $29;$$661163 = $31;$$671270 = $33;$$691576 = $1;$$70 = $25;$$701379 = $27; + label = 180; + } + break; + } + case 26: { + $737 = ($9|0)>(0); + if ($737) { + $$681484$ph = $35;$$691676$ph = $4;$$711062$ph = $29;$$721169$ph = $31;$$731276$ph = $33;$$76$ph = $25;$$761385$ph = $27;$$sink1743 = $1; + label = 195; + } else { + $$671483 = $35;$$681675 = $4;$$701061 = $29;$$711168 = $31;$$721275 = $33;$$741581 = $1;$$75 = $25;$$751384 = $27; + label = 193; + } + break; + } + case 27: { + $784 = ($9|0)>(0); + if ($784) { + $$721488$ph = $35;$$731680$ph = $4;$$741065$ph = $29;$$761173$ph = $31;$$761279$ph = $33;$$80$ph = $25;$$801389$ph = $27;$$sink1746 = $1; + label = 206; + } else { + $$711487 = $35;$$721679 = $4;$$731064 = $29;$$751172 = $31;$$751278 = $33;$$781585 = $1;$$79 = $25;$$791388 = $27; + label = 204; + } + break; + } + case 37: { + $$731489 = $35;$$761683 = $4;$$771068 = $29;$$791176 = $31;$$791282 = $33;$$821589 = $1;$$83 = $25;$$831392 = $27; + label = 210; + break; + } + case 53: { + $$751491 = $35;$$781685 = $4;$$791070 = $29;$$811178 = $31;$$811284 = $33;$$841591 = $1;$$85 = $25;$$851394 = $27; + label = 213; + break; + } + case 32: { + $842 = ($9|0)>(0); + if ($842) { + $843 = ((($1)) + 1|0); + $844 = HEAP8[$1>>0]|0; + $845 = $844&255; + $$0949 = $845;$$881595 = $843; + } else { + $840 = $6 & 2; + $841 = ($840|0)==(0); + if ($841) { + $$0949 = 0;$$881595 = $1; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $29;$$931700 = $4;$$951192 = $31;$$951298 = $33;$$981605 = $1;$$99 = $25;$$991408 = $27;$$sink30 = 32; + label = 243; + break L5; + } + } + $846 = $$0949 << $25; + $847 = $846 | $27; + $848 = (($25) + 8)|0; + $$801496 = $35;$$841075 = $29;$$841691 = $4;$$861289 = $33;$$891596 = $$881595;$$90 = $848;$$901399 = $847; + label = 226; + break; + } + case 41: { + $858 = ($9|0)>(0); + if ($858) { + $$841500$ph = $35;$$881079$ph = $29;$$881695$ph = $4;$$901187$ph = $31;$$901293$ph = $33;$$94$ph = $25;$$941403$ph = $27;$$sink1750 = $1; + label = 233; + } else { + $$831499 = $35;$$871078 = $29;$$871694 = $4;$$891186 = $31;$$891292 = $33;$$921599 = $1;$$93 = $25;$$931402 = $27; + label = 231; + } + break; + } + case 42: { + $871 = ($9|0)>(0); + if ($871) { + $872 = ((($1)) + 1|0); + $873 = HEAP8[$1>>0]|0; + $874 = $873&255; + $$0948 = $874;$$871503 = $35;$$911082 = $29;$$911698 = $4;$$931190 = $31;$$931296 = $33;$$961603 = $872;$$97 = $25;$$971406 = $27; + label = 241; + } else { + $$861502 = $35;$$901081 = $29;$$901697 = $4;$$921189 = $31;$$921295 = $33;$$951602 = $1;$$96 = $25;$$961405 = $27; + label = 237; + } + break; + } + case 34: { + $$881504 = $35;$$921083 = $29;$$921699 = $4;$$941191 = $31;$$941297 = $33;$$971604 = $1;$$98 = $25;$$981407 = $27; + label = 242; + break; + } + default: { + $$100 = $25;$$1001409 = $27;$$1961 = -1;$$901506 = $35;$$941085 = $29;$$941701 = $4;$$961193 = $31;$$961299 = $33;$$991606 = $1; + label = 244; + } + } + } while(0); + if ((label|0) == 6) { + $44 = $6 & 2; + $45 = ($44|0)==(0); + if ($45) { + $$01507 = $1;$$11098 = $$01097;$$11204 = $$01203;$$11310 = $$01309;$$1988 = $$0987;$$1992 = $$0991;$$sink3$shrunk = 0; + label = 9; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$0991;$$931700 = $4;$$951192 = $$01097;$$951298 = $$01203;$$981605 = $1;$$99 = $$0987;$$991408 = $$01309;$$sink30 = 1; + label = 243; + } + } + else if ((label|0) == 8) { + $47 = ((($1)) + 1|0); + $48 = HEAP8[$1>>0]|0; + $$01507 = $47;$$11098 = $$11098$ph;$$11204 = $$11204$ph;$$11310 = $$11310$ph;$$1988 = $$1988$ph;$$1992 = $$1992$ph;$$sink3$shrunk = $48; + label = 9; + } + if ((label|0) == 9) { + $$sink3 = $$sink3$shrunk&255; + $49 = ((($0)) + 8|0); + HEAP32[$49>>2] = $$sink3; + $50 = ($$01507>>>0)<($10>>>0); + if ($50) { + $$31206$ph = $$11204;$$31312$ph = $$11310;$$3990$ph = $$1988;$$3994$ph = $$1992;$$sink1705 = $$01507; + label = 12; + } else { + $$11508 = $$01507;$$21099 = $$11098;$$21205 = $$11204;$$21311 = $$11310;$$2989 = $$1988;$$2993 = $$1992; + label = 10; + } + } + if ((label|0) == 10) { + $51 = $6 & 2; + $52 = ($51|0)==(0); + if ($52) { + $$21509 = $$11508;$$31206 = $$21205;$$31312 = $$21311;$$3990 = $$2989;$$3994 = $$2993;$$sink9$shrunk = 0; + label = 13; + } else { + $$0960 = 1;$$891505 = $35;$$931084 = $$2993;$$931700 = $4;$$951192 = $$21099;$$951298 = $$21205;$$981605 = $$11508;$$99 = $$2989;$$991408 = $$21311;$$sink30 = 2; + label = 243; + } + } + else if ((label|0) == 12) { + $54 = ((($$sink1705)) + 1|0); + $55 = HEAP8[$$sink1705>>0]|0; + $$21509 = $54;$$31206 = $$31206$ph;$$31312 = $$31312$ph;$$3990 = $$3990$ph;$$3994 = $$3994$ph;$$sink9$shrunk = $55; + label = 13; + } + if ((label|0) == 13) { + $$sink9 = $$sink9$shrunk&255; + $56 = ((($0)) + 12|0); + HEAP32[$56>>2] = $$sink9; + $57 = ((($0)) + 8|0); + $58 = HEAP32[$57>>2]|0; + $59 = $58 << 8; + $60 = $59 | $$sink9; + $61 = (($60>>>0) % 31)&-1; + $62 = $$sink9 & 32; + $63 = $61 | $62; + $64 = $58 & 15; + $65 = ($64|0)!=(8); + $not$ = ($63|0)!=(0); + $$1754 = $65 | $not$; + $66 = $58 >>> 4; + $67 = 256 << $66; + $68 = ($67>>>0)>(32768); + $69 = ($20>>>0)<($67>>>0); + $$ = $68 | $69; + $not$1755 = $14 ^ 1; + $70 = $$ & $not$1755; + $$31100$v = $70 | $$1754; + if ($$31100$v) { + $$0960 = -1;$$891505 = $35;$$931084 = $$3994;$$931700 = $4;$$951192 = 1;$$951298 = $$31206;$$981605 = $$21509;$$99 = $$3990;$$991408 = $$31312;$$sink30 = 36; + label = 243; + } else { + $$01416 = $35;$$01607 = $4;$$41511 = $$21509;$$5 = $$3990;$$51102 = 0;$$51208 = $$31206;$$51314 = $$31312;$$5996 = $$3994; + label = 14; + } + } + L46: while(1) { + switch (label|0) { + case 14: { + label = 0; + $71 = ($$5>>>0)<(3); + if ($71) { + $$11417 = $$01416;$$11608 = $$01607;$$51512 = $$41511;$$6 = $$5;$$61103 = $$51102;$$61209 = $$51208;$$61315 = $$51314;$$6997 = $$5996; + label = 15; + } else { + $$41420 = $$01416;$$41611 = $$01607;$$81515 = $$41511;$$9 = $$5;$$91000 = $$5996;$$91106 = $$51102;$$91212 = $$51208;$$91318 = $$51314; + label = 20; + } + break; + } + case 16: { + label = 0; + $73 = $6 & 2; + $74 = ($73|0)==(0); + if ($74) { + $$01413$shrunk = 0;$$31419 = $$21418;$$31610 = $$21609;$$71514 = $$61513;$$8 = $$7;$$81105 = $$71104;$$81211 = $$71210;$$81317 = $$71316;$$8999 = $$7998; + label = 19; + } else { + $$0960 = 1;$$891505 = $$21418;$$931084 = $$7998;$$931700 = $$21609;$$951192 = $$71104;$$951298 = $$71210;$$981605 = $$61513;$$99 = $$7;$$991408 = $$71316;$$sink30 = 3; + label = 243; + continue L46; + } + break; + } + case 18: { + label = 0; + $76 = ((($$sink1710)) + 1|0); + $77 = HEAP8[$$sink1710>>0]|0; + $$01413$shrunk = $77;$$31419 = $$31419$ph;$$31610 = $$31610$ph;$$71514 = $76;$$8 = $$8$ph;$$81105 = $$81105$ph;$$81211 = $$81211$ph;$$81317 = $$81317$ph;$$8999 = $$8999$ph; + label = 19; + break; + } + case 25: { + label = 0; + $97 = $$13 & 7; + $98 = $$131322 >>> $97; + $99 = (($$13) - ($97))|0; + $$131110 = 0;$$131520 = $$121519;$$14 = $99;$$141005 = $$131004;$$141217 = $$131216;$$141323 = $98;$$91425 = $$81424;$$91616 = $$81615; + label = 26; + break; + } + case 30: { + label = 0; + $104 = $6 & 2; + $105 = ($104|0)==(0); + if ($105) { + $$01411$shrunk = 0;$$121428 = $$111427;$$121619 = $$111618;$$161113 = $$151112;$$161523 = $$151522;$$17 = $$16;$$171008 = $$161007;$$171220 = $$161219;$$171326 = $$161325; + label = 33; + } else { + $$0960 = 1;$$891505 = $$111427;$$931084 = $$161007;$$931700 = $$111618;$$951192 = $$151112;$$951298 = $$161219;$$981605 = $$151522;$$99 = $$16;$$991408 = $$161325;$$sink30 = 6; + label = 243; + continue L46; + } + break; + } + case 32: { + label = 0; + $107 = ((($$sink1713)) + 1|0); + $108 = HEAP8[$$sink1713>>0]|0; + $$01411$shrunk = $108;$$121428 = $$121428$ph;$$121619 = $$121619$ph;$$161113 = $$161113$ph;$$161523 = $107;$$17 = $$17$ph;$$171008 = $$171008$ph;$$171220 = $$171220$ph;$$171326 = $$171326$ph; + label = 33; + break; + } + case 36: { + label = 0; + $118 = $6 & 2; + $119 = ($118|0)==(0); + if ($119) { + $$151431 = $$141430;$$151622 = $$141621;$$191116 = $$181115;$$191526 = $$181525;$$20 = $$19;$$201011 = $$191010;$$201223 = $$191222;$$201329 = $$191328;$$sink12 = 0; + label = 39; + continue L46; + } else { + $$0960 = 1;$$891505 = $$141430;$$931084 = $$191010;$$931700 = $$141621;$$951192 = $$181115;$$951298 = $$191222;$$981605 = $$181525;$$99 = $$19;$$991408 = $$191328;$$sink30 = 7; + label = 243; + continue L46; + } + break; + } + case 39: { + label = 0; + $$sink13 = (((($0)) + 10528|0) + ($$191116)|0); + HEAP8[$$sink13>>0] = $$sink12; + $$161432 = $$151431;$$161623 = $$151622;$$201117 = $$191116;$$201527 = $$191526;$$21 = $$20;$$211012 = $$201011;$$211224 = $$201223;$$211330 = $$201329; + label = 41; + break; + } + case 43: { + label = 0; + $$0960 = -1;$$891505 = $$171433;$$931084 = $$221013;$$931700 = $$171624;$$951192 = $$211118;$$951298 = $$221225;$$981605 = $$211528;$$99 = $$22;$$991408 = $$221331;$$sink30 = 39; + label = 243; + continue L46; + break; + } + case 47: { + label = 0; + $150 = $6 & 2; + $151 = ($150|0)==(0); + if ($151) { + $$01410$shrunk = 0;$$211437 = $$201436;$$211628 = $$201627;$$251122 = $$241121;$$251532 = $$241531;$$26 = $$25;$$261017 = $$251016;$$261229 = $$251228;$$261335 = $$251334; + label = 50; + } else { + $$0960 = 1;$$891505 = $$201436;$$931084 = $$251016;$$931700 = $$201627;$$951192 = $$241121;$$951298 = $$251228;$$981605 = $$241531;$$99 = $$25;$$991408 = $$251334;$$sink30 = 51; + label = 243; + continue L46; + } + break; + } + case 49: { + label = 0; + $153 = ((($$sink1716)) + 1|0); + $154 = HEAP8[$$sink1716>>0]|0; + $$01410$shrunk = $154;$$211437 = $$211437$ph;$$211628 = $$211628$ph;$$251122 = $$251122$ph;$$251532 = $153;$$26 = $$26$ph;$$261017 = $$261017$ph;$$261229 = $$261229$ph;$$261335 = $$261335$ph; + label = 50; + break; + } + case 52: { + label = 0; + $162 = ($$231630>>>0)<($12>>>0); + if (!($162)) { + $$0960 = 2;$$891505 = $$231439;$$931084 = $$271018;$$931700 = $$231630;$$951192 = $$271124;$$951298 = $$281231;$$981605 = $$271534;$$99 = $$28;$$991408 = $$281337;$$sink30 = 52; + label = 243; + continue L46; + } + $163 = $$271018&255; + $164 = ((($$231630)) + 1|0); + HEAP8[$$231630>>0] = $163; + $165 = (($$271124) + -1)|0; + $$181434 = $$231439;$$181625 = $164;$$221119 = $165;$$221529 = $$271534;$$23 = $$28;$$231014 = $$271018;$$231226 = $$281231;$$231332 = $$281337; + label = 44; + break; + } + case 55: { + label = 0; + $167 = ($$251632>>>0)<($12>>>0); + if ($167) { + $$261442 = $$251441;$$261633 = $$251632;$$301021 = $$291020;$$301127 = $$291126;$$301537 = $$291536;$$31 = $$30;$$311234 = $$301233;$$311340 = $$301339; + label = 56; + continue L46; + } else { + $$0960 = 2;$$891505 = $$251441;$$931084 = $$291020;$$931700 = $$251632;$$951192 = $$291126;$$951298 = $$301233;$$981605 = $$291536;$$99 = $$30;$$991408 = $$301339;$$sink30 = 9; + label = 243; + continue L46; + } + break; + } + case 56: { + label = 0; + $168 = ($$301537>>>0)<($10>>>0); + if ($168) { + $171 = $12; + $172 = $$261633; + $173 = (($171) - ($172))|0; + $174 = $10; + $175 = $$301537; + $176 = (($174) - ($175))|0; + $177 = ($173>>>0)<($176>>>0); + $$sink17 = $177 ? $12 : $10; + $$sink16 = $177 ? $$261633 : $$301537; + $178 = $$sink17; + $179 = $$sink16; + $180 = (($178) - ($179))|0; + $181 = ($180>>>0)<($$301127>>>0); + $$$301127 = $181 ? $180 : $$301127; + _memcpy(($$261633|0),($$301537|0),($$$301127|0))|0; + $182 = (($$301537) + ($$$301127)|0); + $183 = (($$261633) + ($$$301127)|0); + $184 = (($$301127) - ($$$301127))|0; + $$241440 = $$261442;$$241631 = $183;$$281019 = $$301021;$$281125 = $184;$$281535 = $182;$$29 = $$31;$$291232 = $$311234;$$291338 = $$311340; + label = 54; + break; + } else { + $169 = $6 & 2; + $170 = ($169|0)==(0); + if ($170) { + $$271443 = $$261442;$$271634 = $$261633;$$311022 = $$301021;$$311128 = $$301127;$$311538 = $$301537;$$32 = $$31;$$321235 = $$311234;$$321341 = $$311340; + label = 58; + continue L46; + } else { + $$0960 = 1;$$891505 = $$261442;$$931084 = $$301021;$$931700 = $$261633;$$951192 = $$301127;$$951298 = $$311234;$$981605 = $$301537;$$99 = $$31;$$991408 = $$311340;$$sink30 = 38; + label = 243; + continue L46; + } + } + break; + } + case 58: { + label = 0; + $$0960 = -1;$$891505 = $$271443;$$931084 = $$311022;$$931700 = $$271634;$$951192 = $$311128;$$951298 = $$321235;$$981605 = $$311538;$$99 = $$32;$$991408 = $$321341;$$sink30 = 40; + label = 243; + continue L46; + break; + } + case 60: { + label = 0; + $$0960 = -1;$$891505 = $$281444;$$931084 = $$321023;$$931700 = $$281635;$$951192 = $$321129;$$951298 = $$331236;$$981605 = $$321539;$$99 = $$33;$$991408 = $$331342;$$sink30 = 10; + label = 243; + continue L46; + break; + } + case 64: { + label = 0; + $191 = $6 & 2; + $192 = ($191|0)==(0); + if ($192) { + $$01300$shrunk = 0;$$321448 = $$311447;$$321639 = $$311638;$$361027 = $$351026;$$361133 = $$351132;$$361543 = $$351542;$$37 = $$36;$$371240 = $$361239;$$371346 = $$361345; + label = 67; + } else { + $$0960 = 1;$$891505 = $$311447;$$931084 = $$351026;$$931700 = $$311638;$$951192 = $$351132;$$951298 = $$361239;$$981605 = $$351542;$$99 = $$36;$$991408 = $$361345;$$sink30 = 11; + label = 243; + continue L46; + } + break; + } + case 66: { + label = 0; + $194 = ((($$sink1719)) + 1|0); + $195 = HEAP8[$$sink1719>>0]|0; + $$01300$shrunk = $195;$$321448 = $$321448$ph;$$321639 = $$321639$ph;$$361027 = $$361027$ph;$$361133 = $$361133$ph;$$361543 = $194;$$37 = $$37$ph;$$371240 = $$371240$ph;$$371346 = $$371346$ph; + label = 67; + break; + } + case 73: { + label = 0; + $222 = $6 & 2; + $223 = ($222|0)==(0); + if ($223) { + $$01202$shrunk = 0;$$371453 = $$361452;$$371644 = $$361643;$$411032 = $$401031;$$411138 = $$401137;$$411548 = $$401547;$$42 = $$41;$$421245 = $$411244;$$421351 = $$411350; + label = 76; + } else { + $$0960 = 1;$$891505 = $$361452;$$931084 = $$401031;$$931700 = $$361643;$$951192 = $$401137;$$951298 = $$411244;$$981605 = $$401547;$$99 = $$41;$$991408 = $$411350;$$sink30 = 14; + label = 243; + continue L46; + } + break; + } + case 75: { + label = 0; + $225 = ((($$sink1722)) + 1|0); + $226 = HEAP8[$$sink1722>>0]|0; + $$01202$shrunk = $226;$$371453 = $$371453$ph;$$371644 = $$371644$ph;$$411032 = $$411032$ph;$$411138 = $$411138$ph;$$411548 = $225;$$42 = $$42$ph;$$421245 = $$421245$ph;$$421351 = $$421351$ph; + label = 76; + break; + } + case 86: { + label = 0; + $$0960 = -1;$$891505 = $$401456;$$931084 = $$441035;$$931700 = $$401647;$$951192 = $$441141;$$951298 = $$451248;$$981605 = $$441551;$$99 = $$45;$$991408 = $$451354;$$sink30 = 35; + label = 243; + continue L46; + break; + } + case 114: { + label = 0; + $450 = $6 & 2; + $451 = ($450|0)==(0); + if ($451) { + $$0980$shrunk = 0;$$441460 = $$431459;$$441651 = $$431650;$$481039 = $$471038;$$481145 = $$471144;$$481555 = $$471554;$$49 = $$48;$$491252 = $$481251;$$491358 = $$481357; + label = 117; + } else { + $$0960 = 1;$$891505 = $$431459;$$931084 = $$471038;$$931700 = $$431650;$$951192 = $$471144;$$951298 = $$481251;$$981605 = $$471554;$$99 = $$48;$$991408 = $$481357;$$sink30 = 16; + label = 243; + continue L46; + } + break; + } + case 116: { + label = 0; + $453 = ((($$sink1729)) + 1|0); + $454 = HEAP8[$$sink1729>>0]|0; + $$0980$shrunk = $454;$$441460 = $$441460$ph;$$441651 = $$441651$ph;$$481039 = $$481039$ph;$$481145 = $$481145$ph;$$481555 = $453;$$49 = $$49$ph;$$491252 = $$491252$ph;$$491358 = $$491358$ph; + label = 117; + break; + } + case 125: { + label = 0; + $$0960 = -1;$$891505 = $$461462;$$931084 = $$491040;$$931700 = $$461653;$$951192 = $$501147;$$951298 = $$511254;$$981605 = $$501557;$$99 = $$51;$$991408 = $$511360;$$sink30 = 17; + label = 243; + continue L46; + break; + } + case 128: { + label = 0; + $501 = $6 & 2; + $502 = ($501|0)==(0); + if ($502) { + $$0979$shrunk = 0;$$491465 = $$481464;$$491656 = $$481655;$$521043 = $$511042;$$531150 = $$521149;$$531560 = $$521559;$$54 = $$53;$$541257 = $$531256;$$541363 = $$531362; + label = 131; + } else { + $$0960 = 1;$$891505 = $$481464;$$931084 = $$511042;$$931700 = $$481655;$$951192 = $$521149;$$951298 = $$531256;$$981605 = $$521559;$$99 = $$53;$$991408 = $$531362;$$sink30 = 18; + label = 243; + continue L46; + } + break; + } + case 130: { + label = 0; + $504 = ((($$sink1732)) + 1|0); + $505 = HEAP8[$$sink1732>>0]|0; + $$0979$shrunk = $505;$$491465 = $$491465$ph;$$491656 = $$491656$ph;$$521043 = $$521043$ph;$$531150 = $$531150$ph;$$531560 = $504;$$54 = $$54$ph;$$541257 = $$541257$ph;$$541363 = $$541363$ph; + label = 131; + break; + } + case 136: { + label = 0; + $$0960 = -1;$$891505 = $$511467;$$931084 = $$541045;$$931700 = $$511658;$$951192 = $$551152;$$951298 = $$561259;$$981605 = $$551562;$$99 = $$56;$$991408 = $$561365;$$sink30 = 21; + label = 243; + continue L46; + break; + } + case 151: { + label = 0; + $570 = $6 & 2; + $571 = ($570|0)==(0); + if ($571) { + $$0971$shrunk = 0;$$571473 = $$561472;$$571664 = $$561663;$$601051 = $$591050;$$611158 = $$601157;$$611568 = $$601567;$$62 = $$61;$$621265 = $$611264;$$621371 = $$611370; + label = 154; + } else { + $$0960 = 1;$$891505 = $$561472;$$931084 = $$591050;$$931700 = $$561663;$$951192 = $$601157;$$951298 = $$611264;$$981605 = $$601567;$$99 = $$61;$$991408 = $$611370;$$sink30 = 23; + label = 243; + continue L46; + } + break; + } + case 153: { + label = 0; + $573 = ((($$sink1736)) + 1|0); + $574 = HEAP8[$$sink1736>>0]|0; + $$0971$shrunk = $574;$$571473 = $$571473$ph;$$571664 = $$571664$ph;$$601051 = $$601051$ph;$$611158 = $$611158$ph;$$611568 = $573;$$62 = $$62$ph;$$621265 = $$621265$ph;$$621371 = $$621371$ph; + label = 154; + break; + } + case 160: { + label = 0; + $610 = ($$591666>>>0)<($12>>>0); + if (!($610)) { + $$0960 = 2;$$891505 = $$591475;$$931084 = $$621053;$$931700 = $$591666;$$951192 = $$621159;$$951298 = $$641267;$$981605 = $$631570;$$99 = $$64;$$991408 = $$641373;$$sink30 = 24; + label = 243; + continue L46; + } + $611 = $$621159&255; + $612 = ((($$591666)) + 1|0); + HEAP8[$$591666>>0] = $611; + $$541470$ph = $$591475;$$541661$ph = $612;$$571048$ph = $$621053;$$581155$ph = $$621159;$$581565$ph = $$631570;$$59$ph = $$64;$$591262$ph = $$641267;$$591368$ph = $$641373; + label = 140; + break; + } + case 180: { + label = 0; + $694 = $6 & 2; + $695 = ($694|0)==(0); + if ($695) { + $$0959$shrunk = 0;$$631479 = $$621478;$$641671 = $$631670;$$661057 = $$651056;$$671164 = $$661163;$$681271 = $$671270;$$701577 = $$691576;$$71 = $$70;$$711380 = $$701379; + label = 183; + } else { + $$0960 = 1;$$891505 = $$621478;$$931084 = $$651056;$$931700 = $$631670;$$951192 = $$661163;$$951298 = $$671270;$$981605 = $$691576;$$99 = $$70;$$991408 = $$701379;$$sink30 = 25; + label = 243; + continue L46; + } + break; + } + case 182: { + label = 0; + $697 = ((($$sink1739)) + 1|0); + $698 = HEAP8[$$sink1739>>0]|0; + $$0959$shrunk = $698;$$631479 = $$631479$ph;$$641671 = $$641671$ph;$$661057 = $$661057$ph;$$671164 = $$671164$ph;$$681271 = $$681271$ph;$$701577 = $697;$$71 = $$71$ph;$$711380 = $$711380$ph; + label = 183; + break; + } + case 193: { + label = 0; + $735 = $6 & 2; + $736 = ($735|0)==(0); + if ($736) { + $$0952$shrunk = 0;$$681484 = $$671483;$$691676 = $$681675;$$711062 = $$701061;$$721169 = $$711168;$$731276 = $$721275;$$751582 = $$741581;$$76 = $$75;$$761385 = $$751384; + label = 196; + } else { + $$0960 = 1;$$891505 = $$671483;$$931084 = $$701061;$$931700 = $$681675;$$951192 = $$711168;$$951298 = $$721275;$$981605 = $$741581;$$99 = $$75;$$991408 = $$751384;$$sink30 = 26; + label = 243; + continue L46; + } + break; + } + case 195: { + label = 0; + $738 = ((($$sink1743)) + 1|0); + $739 = HEAP8[$$sink1743>>0]|0; + $$0952$shrunk = $739;$$681484 = $$681484$ph;$$691676 = $$691676$ph;$$711062 = $$711062$ph;$$721169 = $$721169$ph;$$731276 = $$731276$ph;$$751582 = $738;$$76 = $$76$ph;$$761385 = $$761385$ph; + label = 196; + break; + } + case 204: { + label = 0; + $782 = $6 & 2; + $783 = ($782|0)==(0); + if ($783) { + $$0950$shrunk = 0;$$721488 = $$711487;$$731680 = $$721679;$$741065 = $$731064;$$761173 = $$751172;$$761279 = $$751278;$$791586 = $$781585;$$80 = $$79;$$801389 = $$791388; + label = 207; + } else { + $$0960 = 1;$$891505 = $$711487;$$931084 = $$731064;$$931700 = $$721679;$$951192 = $$751172;$$951298 = $$751278;$$981605 = $$781585;$$99 = $$79;$$991408 = $$791388;$$sink30 = 27; + label = 243; + continue L46; + } + break; + } + case 206: { + label = 0; + $785 = ((($$sink1746)) + 1|0); + $786 = HEAP8[$$sink1746>>0]|0; + $$0950$shrunk = $786;$$721488 = $$721488$ph;$$731680 = $$731680$ph;$$741065 = $$741065$ph;$$761173 = $$761173$ph;$$761279 = $$761279$ph;$$791586 = $785;$$80 = $$80$ph;$$801389 = $$801389$ph; + label = 207; + break; + } + case 210: { + label = 0; + $$0960 = -1;$$891505 = $$731489;$$931084 = $$771068;$$931700 = $$761683;$$951192 = $$791176;$$951298 = $$791282;$$981605 = $$821589;$$99 = $$83;$$991408 = $$831392;$$sink30 = 37; + label = 243; + continue L46; + break; + } + case 213: { + label = 0; + $809 = ($$781685>>>0)<($12>>>0); + if (!($809)) { + $$0960 = 2;$$891505 = $$751491;$$931084 = $$791070;$$931700 = $$781685;$$951192 = $$811178;$$951298 = $$811284;$$981605 = $$841591;$$99 = $$85;$$991408 = $$851394;$$sink30 = 53; + label = 243; + continue L46; + } + $810 = (($$751491) + 1)|0; + $811 = (($$751491) - ($$791070))|0; + $812 = $811 & $$1753; + $813 = (($3) + ($812)|0); + $814 = HEAP8[$813>>0]|0; + $815 = ((($$781685)) + 1|0); + HEAP8[$$781685>>0] = $814; + $$741490 = $810;$$771684 = $815;$$781069 = $$791070;$$801177 = $$811178;$$801283 = $$811284;$$831590 = $$841591;$$84 = $$85;$$841393 = $$851394; + label = 212; + break; + } + case 226: { + label = 0; + $849 = $$90 & 7; + $850 = $$901399 >>> $849; + $851 = (($$90) - ($849))|0; + $$811497 = $$801496;$$851076 = $$841075;$$851692 = $$841691;$$871184 = 0;$$871290 = $$861289;$$901597 = $$891596;$$91 = $851;$$911400 = $850; + label = 227; + break; + } + case 231: { + label = 0; + $856 = $6 & 2; + $857 = ($856|0)==(0); + if ($857) { + $$0947$shrunk = 0;$$841500 = $$831499;$$881079 = $$871078;$$881695 = $$871694;$$901187 = $$891186;$$901293 = $$891292;$$931600 = $$921599;$$94 = $$93;$$941403 = $$931402; + label = 234; + } else { + $$0960 = 1;$$891505 = $$831499;$$931084 = $$871078;$$931700 = $$871694;$$951192 = $$891186;$$951298 = $$891292;$$981605 = $$921599;$$99 = $$93;$$991408 = $$931402;$$sink30 = 41; + label = 243; + continue L46; + } + break; + } + case 233: { + label = 0; + $859 = ((($$sink1750)) + 1|0); + $860 = HEAP8[$$sink1750>>0]|0; + $$0947$shrunk = $860;$$841500 = $$841500$ph;$$881079 = $$881079$ph;$$881695 = $$881695$ph;$$901187 = $$901187$ph;$$901293 = $$901293$ph;$$931600 = $859;$$94 = $$94$ph;$$941403 = $$941403$ph; + label = 234; + break; + } + case 237: { + label = 0; + $869 = $6 & 2; + $870 = ($869|0)==(0); + if ($870) { + $$0948 = 0;$$871503 = $$861502;$$911082 = $$901081;$$911698 = $$901697;$$931190 = $$921189;$$931296 = $$921295;$$961603 = $$951602;$$97 = $$96;$$971406 = $$961405; + label = 241; + continue L46; + } else { + $$0960 = 1;$$891505 = $$861502;$$931084 = $$901081;$$931700 = $$901697;$$951192 = $$921189;$$951298 = $$921295;$$981605 = $$951602;$$99 = $$96;$$991408 = $$961405;$$sink30 = 42; + label = 243; + continue L46; + } + break; + } + case 241: { + label = 0; + $878 = ((($0)) + 16|0); + $879 = HEAP32[$878>>2]|0; + $880 = $879 << 8; + $881 = $880 | $$0948; + HEAP32[$878>>2] = $881; + $882 = (($$931190) + 1)|0; + $$811497 = $$871503;$$851076 = $$911082;$$851692 = $$911698;$$871184 = $882;$$871290 = $$931296;$$901597 = $$961603;$$91 = $$97;$$911400 = $$971406; + label = 227; + break; + } + case 242: { + label = 0; + $$0960 = 0;$$891505 = $$881504;$$931084 = $$921083;$$931700 = $$921699;$$951192 = $$941191;$$951298 = $$941297;$$981605 = $$971604;$$99 = $$98;$$991408 = $$981407;$$sink30 = 34; + label = 243; + continue L46; + break; + } + case 243: { + label = 0; + HEAP32[$0>>2] = $$sink30; + $$100 = $$99;$$1001409 = $$991408;$$1961 = $$0960;$$901506 = $$891505;$$941085 = $$931084;$$941701 = $$931700;$$961193 = $$951192;$$961299 = $$951298;$$991606 = $$981605; + label = 244; + continue L46; + break; + } + case 244: { + label = 0; + HEAP32[$24>>2] = $$100; + HEAP32[$26>>2] = $$1001409; + HEAP32[$28>>2] = $$941085; + HEAP32[$30>>2] = $$961193; + HEAP32[$32>>2] = $$961299; + HEAP32[$34>>2] = $$901506; + $883 = $$991606; + $884 = $1; + $885 = (($883) - ($884))|0; + HEAP32[$2>>2] = $885; + $886 = $$941701; + $887 = $4; + $888 = (($886) - ($887))|0; + HEAP32[$5>>2] = $888; + $889 = $6 & 9; + $890 = ($889|0)!=(0); + $891 = ($$1961|0)>(-1); + $or$cond29 = $890 & $891; + if ($or$cond29) { + break L46; + } else { + $$0951 = $$1961; + label = 258; + break L46; + } + break; + } + } + switch (label|0) { + case 19: { + label = 0; + $$01413 = $$01413$shrunk&255; + $78 = $$01413 << $$8; + $79 = $78 | $$81317; + $80 = (($$8) + 8)|0; + $81 = ($80>>>0)<(3); + if ($81) { + $$11417 = $$31419;$$11608 = $$31610;$$51512 = $$71514;$$6 = $80;$$61103 = $$81105;$$61209 = $$81211;$$61315 = $79;$$6997 = $$8999; + label = 15; + } else { + $$41420 = $$31419;$$41611 = $$31610;$$81515 = $$71514;$$9 = $80;$$91000 = $$8999;$$91106 = $$81105;$$91212 = $$81211;$$91318 = $79; + label = 20; + } + break; + } + case 33: { + label = 0; + $$01411 = $$01411$shrunk&255; + $109 = $$01411 << $$17; + $110 = $109 | $$171326; + $111 = (($$17) + 8)|0; + $112 = ($$17>>>0)>(4294967287); + if ($112) { + $$101426 = $$121428;$$101617 = $$121619;$$141111 = $$161113;$$141521 = $$161523;$$15 = $111;$$151006 = $$171008;$$151218 = $$171220;$$151324 = $110; + label = 29; + } else { + $$131429 = $$121428;$$131620 = $$121619;$$171114 = $$161113;$$171524 = $$161523;$$18 = $111;$$181009 = $$171008;$$181221 = $$171220;$$181327 = $110; + label = 34; + } + break; + } + case 50: { + label = 0; + $$01410 = $$01410$shrunk&255; + $155 = $$01410 << $$26; + $156 = $155 | $$261335; + $157 = (($$26) + 8)|0; + $158 = ($$26>>>0)>(4294967287); + if ($158) { + $$191435 = $$211437;$$191626 = $$211628;$$231120 = $$251122;$$231530 = $$251532;$$24 = $157;$$241015 = $$261017;$$241227 = $$261229;$$241333 = $156; + label = 46; + } else { + $$221438 = $$211437;$$221629 = $$211628;$$261123 = $$251122;$$261533 = $$251532;$$27 = $157;$$271230 = $$261229;$$271336 = $156; + label = 51; + } + break; + } + case 67: { + label = 0; + $$01300 = $$01300$shrunk&255; + $196 = $$01300 << $$37; + $197 = $196 | $$371346; + $198 = (($$37) + 8)|0; + $199 = (11742 + ($$361133)|0); + $200 = HEAP8[$199>>0]|0; + $201 = $200 << 24 >> 24; + $202 = ($198>>>0)<($201>>>0); + if ($202) { + $$301446 = $$321448;$$301637 = $$321639;$$341025 = $$361027;$$341131 = $$361133;$$341541 = $$361543;$$35 = $198;$$351238 = $$371240;$$351344 = $197; + label = 63; + } else { + $$331449 = $$321448;$$331640 = $$321639;$$371028 = $$361027;$$371134 = $$361133;$$371544 = $$361543;$$38 = $198;$$381241 = $$371240;$$381347 = $197; + label = 68; + } + break; + } + case 76: { + label = 0; + $$01202 = $$01202$shrunk&255; + $227 = $$01202 << $$42; + $228 = $227 | $$421351; + $229 = (($$42) + 8)|0; + $230 = ($229>>>0)<(3); + if ($230) { + $$351451 = $$371453;$$351642 = $$371644;$$391030 = $$411032;$$391136 = $$411138;$$391546 = $$411548;$$40 = $229;$$401243 = $$421245;$$401349 = $228; + label = 72; + } else { + $$381454 = $$371453;$$381645 = $$371644;$$421033 = $$411032;$$421139 = $$411138;$$421549 = $$411548;$$43 = $229;$$431246 = $$421245;$$431352 = $228; + label = 77; + } + break; + } + case 117: { + label = 0; + $$0980 = $$0980$shrunk&255; + $455 = $$0980 << $$49; + $456 = $455 | $$491358; + $457 = (($$49) + 8)|0; + $458 = ($457>>>0)<(15); + if ($458) { + $$421458 = $$441460;$$421649 = $$441651;$$461037 = $$481039;$$461143 = $$481145;$$461553 = $$481555;$$47 = $457;$$471250 = $$491252;$$471356 = $456; + label = 108; + } else { + $$451461 = $$441460;$$451652 = $$441651;$$491146 = $$481145;$$491556 = $$481555;$$50 = $457;$$501253 = $$491252;$$501359 = $456; + label = 119; + } + break; + } + case 131: { + label = 0; + $$0979 = $$0979$shrunk&255; + $506 = $$0979 << $$54; + $507 = $506 | $$541363; + $508 = (($$54) + 8)|0; + $509 = ($508>>>0)<($$541257>>>0); + if ($509) { + $$471463 = $$491465;$$471654 = $$491656;$$501041 = $$521043;$$511148 = $$531150;$$511558 = $$531560;$$52 = $508;$$521255 = $$541257;$$521361 = $507; + label = 127; + } else { + $$501466 = $$491465;$$501657 = $$491656;$$531044 = $$521043;$$541151 = $$531150;$$541561 = $$531560;$$55 = $508;$$551258 = $$541257;$$551364 = $507; + label = 132; + } + break; + } + case 154: { + label = 0; + $$0971 = $$0971$shrunk&255; + $575 = $$0971 << $$62; + $576 = $575 | $$621371; + $577 = (($$62) + 8)|0; + $578 = ($577>>>0)<(15); + if ($578) { + $$551471 = $$571473;$$551662 = $$571664;$$581049 = $$601051;$$591156 = $$611158;$$591566 = $$611568;$$60 = $577;$$601263 = $$621265;$$601369 = $576; + label = 145; + } else { + $$581474 = $$571473;$$581665 = $$571664;$$611052 = $$601051;$$621569 = $$611568;$$63 = $577;$$631266 = $$621265;$$631372 = $576; + label = 156; + } + break; + } + case 183: { + label = 0; + $$0959 = $$0959$shrunk&255; + $699 = $$0959 << $$71; + $700 = $699 | $$711380; + $701 = (($$71) + 8)|0; + $702 = ($701>>>0)<($$681271>>>0); + if ($702) { + $$611477 = $$631479;$$621669 = $$641671;$$641055 = $$661057;$$651162 = $$671164;$$661269 = $$681271;$$681575 = $$701577;$$69 = $701;$$691378 = $700; + label = 179; + } else { + $$641480 = $$631479;$$651672 = $$641671;$$671058 = $$661057;$$681165 = $$671164;$$691272 = $$681271;$$711578 = $$701577;$$72 = $701;$$721381 = $700; + label = 184; + } + break; + } + case 196: { + label = 0; + $$0952 = $$0952$shrunk&255; + $740 = $$0952 << $$76; + $741 = $740 | $$761385; + $742 = (($$76) + 8)|0; + $743 = ($742>>>0)<(15); + if ($743) { + $$661482 = $$681484;$$671674 = $$691676;$$691060 = $$711062;$$701167 = $$721169;$$711274 = $$731276;$$731580 = $$751582;$$74 = $742;$$741383 = $741; + label = 187; + } else { + $$691485 = $$681484;$$701677 = $$691676;$$731170 = $$721169;$$761583 = $$751582;$$77 = $742;$$771386 = $741; + label = 198; + } + break; + } + case 207: { + label = 0; + $$0950 = $$0950$shrunk&255; + $787 = $$0950 << $$80; + $788 = $787 | $$801389; + $789 = (($$80) + 8)|0; + $790 = ($789>>>0)<($$761279>>>0); + if ($790) { + $$701486 = $$721488;$$711678 = $$731680;$$721063 = $$741065;$$741171 = $$761173;$$741277 = $$761279;$$771584 = $$791586;$$78 = $789;$$781387 = $788; + label = 203; + } else { + $$741681 = $$731680;$$751066 = $$741065;$$771174 = $$761173;$$771280 = $$761279;$$801587 = $$791586;$$81 = $789;$$811390 = $788; + label = 208; + } + break; + } + case 227: { + label = 0; + $852 = ($$871184>>>0)<(4); + if (!($852)) { + $$881504 = $$811497;$$921083 = $$851076;$$921699 = $$851692;$$941191 = $$871184;$$941297 = $$871290;$$971604 = $$901597;$$98 = $$91;$$981407 = $$911400; + label = 242; + continue L46; + } + $853 = ($$91|0)==(0); + if (!($853)) { + $854 = ($$91>>>0)<(8); + if ($854) { + $$821498 = $$811497;$$861077 = $$851076;$$861693 = $$851692;$$881185 = $$871184;$$881291 = $$871290;$$911598 = $$901597;$$92 = $$91;$$921401 = $$911400; + label = 230; + break; + } else { + $$851501 = $$811497;$$891080 = $$851076;$$891696 = $$851692;$$911188 = $$871184;$$911294 = $$871290;$$941601 = $$901597;$$95 = $$91;$$951404 = $$911400; + label = 235; + break; + } + } + $868 = ($$901597>>>0)<($10>>>0); + if (!($868)) { + $$861502 = $$811497;$$901081 = $$851076;$$901697 = $$851692;$$921189 = $$871184;$$921295 = $$871290;$$951602 = $$901597;$$96 = 0;$$961405 = $$911400; + label = 237; + continue L46; + } + $875 = ((($$901597)) + 1|0); + $876 = HEAP8[$$901597>>0]|0; + $877 = $876&255; + $$0948 = $877;$$871503 = $$811497;$$911082 = $$851076;$$911698 = $$851692;$$931190 = $$871184;$$931296 = $$871290;$$961603 = $875;$$97 = 0;$$971406 = $$911400; + label = 241; + continue L46; + break; + } + case 234: { + label = 0; + $$0947 = $$0947$shrunk&255; + $861 = $$0947 << $$94; + $862 = $861 | $$941403; + $863 = (($$94) + 8)|0; + $864 = ($$94>>>0)>(4294967287); + if ($864) { + $$821498 = $$841500;$$861077 = $$881079;$$861693 = $$881695;$$881185 = $$901187;$$881291 = $$901293;$$911598 = $$931600;$$92 = $863;$$921401 = $862; + label = 230; + } else { + $$851501 = $$841500;$$891080 = $$881079;$$891696 = $$881695;$$911188 = $$901187;$$911294 = $$901293;$$941601 = $$931600;$$95 = $863;$$951404 = $862; + label = 235; + } + break; + } + } + L119: do { + if ((label|0) == 15) { + label = 0; + $72 = ($$51512>>>0)<($10>>>0); + if ($72) { + $$31419$ph = $$11417;$$31610$ph = $$11608;$$8$ph = $$6;$$81105$ph = $$61103;$$81211$ph = $$61209;$$81317$ph = $$61315;$$8999$ph = $$6997;$$sink1710 = $$51512; + label = 18; + continue L46; + } else { + $$21418 = $$11417;$$21609 = $$11608;$$61513 = $$51512;$$7 = $$6;$$71104 = $$61103;$$71210 = $$61209;$$71316 = $$61315;$$7998 = $$6997; + label = 16; + continue L46; + } + } + else if ((label|0) == 20) { + label = 0; + $82 = $$91318 & 7; + $83 = ((($0)) + 20|0); + HEAP32[$83>>2] = $82; + $84 = $$91318 >>> 3; + $85 = (($$9) + -3)|0; + $86 = $82 >>> 1; + $87 = ((($0)) + 24|0); + HEAP32[$87>>2] = $86; + $trunc = $86&255; + $trunc$clear = $trunc & 3; + switch ($trunc$clear<<24>>24) { + case 0: { + $$121519 = $$81515;$$13 = $85;$$131004 = $$91000;$$131216 = $$91212;$$131322 = $84;$$81424 = $$41420;$$81615 = $$41611; + label = 25; + continue L46; + break; + } + case 3: { + $$281444 = $$41420;$$281635 = $$41611;$$321023 = $$91000;$$321129 = $$91106;$$321539 = $$81515;$$33 = $85;$$331236 = $$91212;$$331342 = $84; + label = 60; + continue L46; + break; + } + case 1: { + break; + } + default: { + $$291445 = $$41420;$$291636 = $$41611;$$331024 = $$91000;$$331130 = 0;$$331540 = $$81515;$$34 = $85;$$341237 = $$91212;$$341343 = $84; + label = 61; + break L119; + } + } + $240 = ((($0)) + 44|0); + HEAP32[$240>>2] = 288; + $241 = ((($0)) + 48|0); + HEAP32[$241>>2] = 32; + $242 = ((($0)) + 3552|0); + ;HEAP32[$242>>2]=84215045|0;HEAP32[$242+4>>2]=84215045|0;HEAP32[$242+8>>2]=84215045|0;HEAP32[$242+12>>2]=84215045|0;HEAP32[$242+16>>2]=84215045|0;HEAP32[$242+20>>2]=84215045|0;HEAP32[$242+24>>2]=84215045|0;HEAP32[$242+28>>2]=84215045|0; + $scevgep19611962 = ((($0)) + 64|0); + _memset(($scevgep19611962|0),8,144)|0; + $scevgep1959 = ((($0)) + 208|0); + dest=$scevgep1959; stop=dest+112|0; do { HEAP8[dest>>0]=9|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1957 = ((($0)) + 320|0); + dest=$scevgep1957; stop=dest+24|0; do { HEAP8[dest>>0]=7|0; dest=dest+1|0; } while ((dest|0) < (stop|0)); + $scevgep1955 = ((($0)) + 344|0); + $243 = $scevgep1955; + $244 = $243; + HEAP8[$244>>0]=134744072&255;HEAP8[$244+1>>0]=(134744072>>8)&255;HEAP8[$244+2>>0]=(134744072>>16)&255;HEAP8[$244+3>>0]=134744072>>24; + $245 = (($243) + 4)|0; + $246 = $245; + HEAP8[$246>>0]=134744072&255;HEAP8[$246+1>>0]=(134744072>>8)&255;HEAP8[$246+2>>0]=(134744072>>16)&255;HEAP8[$246+3>>0]=134744072>>24; + $$391455 = $$41420;$$391646 = $$41611;$$431034 = $$91000;$$431140 = $$91106;$$431550 = $$81515;$$44 = $85;$$441247 = $$91212;$$441353 = $84; + label = 80; + } + else if ((label|0) == 230) { + label = 0; + $855 = ($$911598>>>0)<($10>>>0); + if ($855) { + $$841500$ph = $$821498;$$881079$ph = $$861077;$$881695$ph = $$861693;$$901187$ph = $$881185;$$901293$ph = $$881291;$$94$ph = $$92;$$941403$ph = $$921401;$$sink1750 = $$911598; + label = 233; + continue L46; + } else { + $$831499 = $$821498;$$871078 = $$861077;$$871694 = $$861693;$$891186 = $$881185;$$891292 = $$881291;$$921599 = $$911598;$$93 = $$92;$$931402 = $$921401; + label = 231; + continue L46; + } + } + else if ((label|0) == 235) { + label = 0; + $865 = $$951404 & 255; + $866 = $$951404 >>> 8; + $867 = (($$95) + -8)|0; + $$0948 = $865;$$871503 = $$851501;$$911082 = $$891080;$$911698 = $$891696;$$931190 = $$911188;$$931296 = $$911294;$$961603 = $$941601;$$97 = $867;$$971406 = $866; + label = 241; + continue L46; + } + } while(0); + L125: while(1) { + L126: switch (label|0) { + case 26: { + label = 0; + $100 = ($$131110>>>0)<(4); + if (!($100)) { + $127 = ((($0)) + 10528|0); + $128 = HEAP8[$127>>0]|0; + $129 = $128&255; + $130 = ((($0)) + 10529|0); + $131 = HEAP8[$130>>0]|0; + $132 = $131&255; + $133 = $132 << 8; + $134 = $133 | $129; + $135 = ((($0)) + 10530|0); + $136 = HEAP8[$135>>0]|0; + $137 = $136&255; + $138 = ((($0)) + 10531|0); + $139 = HEAP8[$138>>0]|0; + $140 = $139&255; + $141 = $140 << 8; + $142 = $141 | $137; + $143 = $142 ^ 65535; + $144 = ($134|0)==($143|0); + if ($144) { + $$181434 = $$91425;$$181625 = $$91616;$$221119 = $134;$$221529 = $$131520;$$23 = $$14;$$231014 = $$141005;$$231226 = $$141217;$$231332 = $$141323; + label = 44; + continue L125; + } else { + $$171433 = $$91425;$$171624 = $$91616;$$211118 = $134;$$211528 = $$131520;$$22 = $$14;$$221013 = $$141005;$$221225 = $$141217;$$221331 = $$141323; + label = 43; + continue L46; + } + } + $101 = ($$14|0)==(0); + if (!($101)) { + $102 = ($$14>>>0)<(8); + if ($102) { + $$101426 = $$91425;$$101617 = $$91616;$$141111 = $$131110;$$141521 = $$131520;$$15 = $$14;$$151006 = $$141005;$$151218 = $$141217;$$151324 = $$141323; + label = 29; + continue L125; + } else { + $$131429 = $$91425;$$131620 = $$91616;$$171114 = $$131110;$$171524 = $$131520;$$18 = $$14;$$181009 = $$141005;$$181221 = $$141217;$$181327 = $$141323; + label = 34; + continue L125; + } + } + $117 = ($$131520>>>0)<($10>>>0); + if (!($117)) { + $$141430 = $$91425;$$141621 = $$91616;$$181115 = $$131110;$$181525 = $$131520;$$19 = 0;$$191010 = $$141005;$$191222 = $$141217;$$191328 = $$141323; + label = 36; + continue L46; + } + $123 = ((($$131520)) + 1|0); + $124 = HEAP8[$$131520>>0]|0; + $125 = (((($0)) + 10528|0) + ($$131110)|0); + HEAP8[$125>>0] = $124; + $$161432 = $$91425;$$161623 = $$91616;$$201117 = $$131110;$$201527 = $123;$$21 = 0;$$211012 = $$141005;$$211224 = $$141217;$$211330 = $$141323; + label = 41; + continue L125; + break; + } + case 29: { + label = 0; + $103 = ($$141521>>>0)<($10>>>0); + if ($103) { + $$121428$ph = $$101426;$$121619$ph = $$101617;$$161113$ph = $$141111;$$17$ph = $$15;$$171008$ph = $$151006;$$171220$ph = $$151218;$$171326$ph = $$151324;$$sink1713 = $$141521; + label = 32; + continue L46; + } else { + $$111427 = $$101426;$$111618 = $$101617;$$151112 = $$141111;$$151522 = $$141521;$$16 = $$15;$$161007 = $$151006;$$161219 = $$151218;$$161325 = $$151324; + label = 30; + continue L46; + } + break; + } + case 34: { + label = 0; + $113 = $$181327&255; + $114 = (((($0)) + 10528|0) + ($$171114)|0); + HEAP8[$114>>0] = $113; + $115 = $$181327 >>> 8; + $116 = (($$18) + -8)|0; + $$161432 = $$131429;$$161623 = $$131620;$$201117 = $$171114;$$201527 = $$171524;$$21 = $116;$$211012 = $$181009;$$211224 = $$181221;$$211330 = $115; + label = 41; + continue L125; + break; + } + case 41: { + label = 0; + $126 = (($$201117) + 1)|0; + $$131110 = $126;$$131520 = $$201527;$$14 = $$21;$$141005 = $$211012;$$141217 = $$211224;$$141323 = $$211330;$$91425 = $$161432;$$91616 = $$161623; + label = 26; + continue L125; + break; + } + case 44: { + label = 0; + $145 = ($$221119|0)!=(0); + $146 = ($$23|0)!=(0); + $147 = $145 & $146; + if (!($147)) { + $$241440 = $$181434;$$241631 = $$181625;$$281019 = $$231014;$$281125 = $$221119;$$281535 = $$221529;$$29 = $$23;$$291232 = $$231226;$$291338 = $$231332; + label = 54; + continue L125; + } + $148 = ($$23>>>0)<(8); + if ($148) { + $$191435 = $$181434;$$191626 = $$181625;$$231120 = $$221119;$$231530 = $$221529;$$24 = $$23;$$241015 = $$231014;$$241227 = $$231226;$$241333 = $$231332; + label = 46; + continue L125; + } else { + $$221438 = $$181434;$$221629 = $$181625;$$261123 = $$221119;$$261533 = $$221529;$$27 = $$23;$$271230 = $$231226;$$271336 = $$231332; + label = 51; + continue L125; + } + break; + } + case 46: { + label = 0; + $149 = ($$231530>>>0)<($10>>>0); + if ($149) { + $$211437$ph = $$191435;$$211628$ph = $$191626;$$251122$ph = $$231120;$$26$ph = $$24;$$261017$ph = $$241015;$$261229$ph = $$241227;$$261335$ph = $$241333;$$sink1716 = $$231530; + label = 49; + continue L46; + } else { + $$201436 = $$191435;$$201627 = $$191626;$$241121 = $$231120;$$241531 = $$231530;$$25 = $$24;$$251016 = $$241015;$$251228 = $$241227;$$251334 = $$241333; + label = 47; + continue L46; + } + break; + } + case 51: { + label = 0; + $159 = $$271336 & 255; + $160 = $$271336 >>> 8; + $161 = (($$27) + -8)|0; + $$231439 = $$221438;$$231630 = $$221629;$$271018 = $159;$$271124 = $$261123;$$271534 = $$261533;$$28 = $161;$$281231 = $$271230;$$281337 = $160; + label = 52; + continue L46; + break; + } + case 54: { + label = 0; + $166 = ($$281125|0)==(0); + if ($166) { + $$761492 = $$241440;$$801071 = $$281019;$$801687 = $$241631;$$821285 = $$291232;$$831180 = 0;$$851592 = $$281535;$$86 = $$29;$$861395 = $$291338; + label = 220; + break L125; + } else { + $$251441 = $$241440;$$251632 = $$241631;$$291020 = $$281019;$$291126 = $$281125;$$291536 = $$281535;$$30 = $$29;$$301233 = $$291232;$$301339 = $$291338; + label = 55; + continue L46; + } + break; + } + case 61: { + label = 0; + $185 = ($$331130>>>0)<(3); + if ($185) { + $186 = (11742 + ($$331130)|0); + $187 = HEAP8[$186>>0]|0; + $188 = $187 << 24 >> 24; + $189 = ($$34>>>0)<($188>>>0); + if ($189) { + $$301446 = $$291445;$$301637 = $$291636;$$341025 = $$331024;$$341131 = $$331130;$$341541 = $$331540;$$35 = $$34;$$351238 = $$341237;$$351344 = $$341343; + label = 63; + continue L125; + } else { + $$331449 = $$291445;$$331640 = $$291636;$$371028 = $$331024;$$371134 = $$331130;$$371544 = $$331540;$$38 = $$34;$$381241 = $$341237;$$381347 = $$341343; + label = 68; + continue L125; + } + } else { + $216 = ((($0)) + 7040|0); + _memset(($216|0),0,288)|0; + $$341450 = $$291445;$$341641 = $$291636;$$381029 = $$331024;$$381135 = 0;$$381545 = $$331540;$$39 = $$34;$$391242 = $$341237;$$391348 = $$341343; + label = 70; + break; + } + break; + } + case 63: { + label = 0; + $190 = ($$341541>>>0)<($10>>>0); + if ($190) { + $$321448$ph = $$301446;$$321639$ph = $$301637;$$361027$ph = $$341025;$$361133$ph = $$341131;$$37$ph = $$35;$$371240$ph = $$351238;$$371346$ph = $$351344;$$sink1719 = $$341541; + label = 66; + continue L46; + } else { + $$311447 = $$301446;$$311638 = $$301637;$$351026 = $$341025;$$351132 = $$341131;$$351542 = $$341541;$$36 = $$35;$$361239 = $$351238;$$361345 = $$351344; + label = 64; + continue L46; + } + break; + } + case 68: { + label = 0; + $203 = (11742 + ($$371134)|0); + $204 = HEAP8[$203>>0]|0; + $205 = $204 << 24 >> 24; + $206 = 1 << $205; + $207 = (($206) + -1)|0; + $208 = $207 & $$381347; + $209 = (((($0)) + 44|0) + ($$371134<<2)|0); + $210 = $$381347 >>> $205; + $211 = (($$38) - ($205))|0; + $212 = (3144 + ($$371134<<2)|0); + $213 = HEAP32[$212>>2]|0; + $214 = (($208) + ($213))|0; + HEAP32[$209>>2] = $214; + $215 = (($$371134) + 1)|0; + $$291445 = $$331449;$$291636 = $$331640;$$331024 = $$371028;$$331130 = $215;$$331540 = $$371544;$$34 = $211;$$341237 = $$381241;$$341343 = $210; + label = 61; + continue L125; + break; + } + case 72: { + label = 0; + $221 = ($$391546>>>0)<($10>>>0); + if ($221) { + $$371453$ph = $$351451;$$371644$ph = $$351642;$$411032$ph = $$391030;$$411138$ph = $$391136;$$42$ph = $$40;$$421245$ph = $$401243;$$421351$ph = $$401349;$$sink1722 = $$391546; + label = 75; + continue L46; + } else { + $$361452 = $$351451;$$361643 = $$351642;$$401031 = $$391030;$$401137 = $$391136;$$401547 = $$391546;$$41 = $$40;$$411244 = $$401243;$$411350 = $$401349; + label = 73; + continue L46; + } + break; + } + case 77: { + label = 0; + $231 = $$431352 & 7; + $232 = $$431352 >>> 3; + $233 = (($$43) + -3)|0; + $234 = $231&255; + $235 = (11746 + ($$421139)|0); + $236 = HEAP8[$235>>0]|0; + $237 = $236&255; + $238 = (((($0)) + 7040|0) + ($237)|0); + HEAP8[$238>>0] = $234; + $239 = (($$421139) + 1)|0; + $$341450 = $$381454;$$341641 = $$381645;$$381029 = $$421033;$$381135 = $239;$$381545 = $$421549;$$39 = $233;$$391242 = $$431246;$$391348 = $232; + label = 70; + break; + } + case 80: { + label = 0; + $247 = ((($0)) + 24|0); + $248 = HEAP32[$247>>2]|0; + $249 = ($248|0)>(-1); + if ($249) { + dest=$8; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $250 = (((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0); + _memset(($250|0),0,3200)|0; + $251 = HEAP32[$247>>2]|0; + $252 = (((($0)) + 44|0) + ($251<<2)|0); + $253 = HEAP32[$252>>2]|0; + $254 = ($253|0)==(0); + if (!($254)) { + $255 = HEAP32[$247>>2]|0; + $256 = (((($0)) + 44|0) + ($255<<2)|0); + $257 = HEAP32[$256>>2]|0; + $$010951864 = 0; + while(1) { + $258 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010951864)|0); + $259 = HEAP8[$258>>0]|0; + $260 = $259&255; + $261 = (($8) + ($260<<2)|0); + $262 = HEAP32[$261>>2]|0; + $263 = (($262) + 1)|0; + HEAP32[$261>>2] = $263; + $264 = (($$010951864) + 1)|0; + $265 = ($264>>>0)<($257>>>0); + if ($265) { + $$010951864 = $264; + } else { + break; + } + } + } + $266 = ((($7)) + 4|0); + HEAP32[$266>>2] = 0; + HEAP32[$7>>2] = 0; + $267 = ((($8)) + 4|0); + $268 = HEAP32[$267>>2]|0; + $269 = $268 << 1; + $270 = ((($7)) + 8|0); + HEAP32[$270>>2] = $269; + $271 = ((($8)) + 8|0); + $272 = HEAP32[$271>>2]|0; + $273 = (($272) + ($268))|0; + $274 = (($272) + ($269))|0; + $275 = $274 << 1; + $276 = ((($7)) + 12|0); + HEAP32[$276>>2] = $275; + $277 = ((($8)) + 12|0); + $278 = HEAP32[$277>>2]|0; + $279 = (($278) + ($273))|0; + $280 = (($278) + ($275))|0; + $281 = $280 << 1; + $282 = ((($7)) + 16|0); + HEAP32[$282>>2] = $281; + $283 = ((($8)) + 16|0); + $284 = HEAP32[$283>>2]|0; + $285 = (($284) + ($279))|0; + $286 = (($284) + ($281))|0; + $287 = $286 << 1; + $288 = ((($7)) + 20|0); + HEAP32[$288>>2] = $287; + $289 = ((($8)) + 20|0); + $290 = HEAP32[$289>>2]|0; + $291 = (($290) + ($285))|0; + $292 = (($290) + ($287))|0; + $293 = $292 << 1; + $294 = ((($7)) + 24|0); + HEAP32[$294>>2] = $293; + $295 = ((($8)) + 24|0); + $296 = HEAP32[$295>>2]|0; + $297 = (($296) + ($291))|0; + $298 = (($296) + ($293))|0; + $299 = $298 << 1; + $300 = ((($7)) + 28|0); + HEAP32[$300>>2] = $299; + $301 = ((($8)) + 28|0); + $302 = HEAP32[$301>>2]|0; + $303 = (($302) + ($297))|0; + $304 = (($302) + ($299))|0; + $305 = $304 << 1; + $306 = ((($7)) + 32|0); + HEAP32[$306>>2] = $305; + $307 = ((($8)) + 32|0); + $308 = HEAP32[$307>>2]|0; + $309 = (($308) + ($303))|0; + $310 = (($308) + ($305))|0; + $311 = $310 << 1; + $312 = ((($7)) + 36|0); + HEAP32[$312>>2] = $311; + $313 = ((($8)) + 36|0); + $314 = HEAP32[$313>>2]|0; + $315 = (($314) + ($309))|0; + $316 = (($314) + ($311))|0; + $317 = $316 << 1; + $318 = ((($7)) + 40|0); + HEAP32[$318>>2] = $317; + $319 = ((($8)) + 40|0); + $320 = HEAP32[$319>>2]|0; + $321 = (($320) + ($315))|0; + $322 = (($320) + ($317))|0; + $323 = $322 << 1; + $324 = ((($7)) + 44|0); + HEAP32[$324>>2] = $323; + $325 = ((($8)) + 44|0); + $326 = HEAP32[$325>>2]|0; + $327 = (($326) + ($321))|0; + $328 = (($326) + ($323))|0; + $329 = $328 << 1; + $330 = ((($7)) + 48|0); + HEAP32[$330>>2] = $329; + $331 = ((($8)) + 48|0); + $332 = HEAP32[$331>>2]|0; + $333 = (($332) + ($327))|0; + $334 = (($332) + ($329))|0; + $335 = $334 << 1; + $336 = ((($7)) + 52|0); + HEAP32[$336>>2] = $335; + $337 = ((($8)) + 52|0); + $338 = HEAP32[$337>>2]|0; + $339 = (($338) + ($333))|0; + $340 = (($338) + ($335))|0; + $341 = $340 << 1; + $342 = ((($7)) + 56|0); + HEAP32[$342>>2] = $341; + $343 = ((($8)) + 56|0); + $344 = HEAP32[$343>>2]|0; + $345 = (($344) + ($339))|0; + $346 = (($344) + ($341))|0; + $347 = $346 << 1; + $348 = ((($7)) + 60|0); + HEAP32[$348>>2] = $347; + $349 = ((($8)) + 60|0); + $350 = HEAP32[$349>>2]|0; + $351 = (($350) + ($345))|0; + $352 = (($350) + ($347))|0; + $353 = $352 << 1; + $354 = ((($7)) + 64|0); + HEAP32[$354>>2] = $353; + $355 = ($353|0)!=(65536); + $356 = ($351>>>0)>(1); + $or$cond = $355 & $356; + if ($or$cond) { + $$401456 = $$391455;$$401647 = $$391646;$$441035 = $$431034;$$441141 = $$431140;$$441551 = $$431550;$$45 = $$44;$$451248 = $$441247;$$451354 = $$441353; + label = 86; + continue L46; + } + $357 = HEAP32[$247>>2]|0; + $358 = (((($0)) + 44|0) + ($357<<2)|0); + $359 = HEAP32[$358>>2]|0; + $360 = ($359|0)==(0); + if ($360) { + $$lcssa1779 = $357; + } else { + $$010911856 = 0;$$011971855 = -1; + while(1) { + $361 = ((((($0)) + 64|0) + (($248*3488)|0)|0) + ($$010911856)|0); + $362 = HEAP8[$361>>0]|0; + $363 = $362&255; + $364 = ($362<<24>>24)==(0); + L142: do { + if ($364) { + $$41201 = $$011971855; + } else { + $365 = (($7) + ($363<<2)|0); + $366 = HEAP32[$365>>2]|0; + $367 = (($366) + 1)|0; + HEAP32[$365>>2] = $367; + $$010861840 = $366;$$010871839 = $363;$$010881838 = 0; + while(1) { + $368 = $$010881838 << 1; + $369 = $$010861840 & 1; + $370 = $369 | $368; + $371 = (($$010871839) + -1)|0; + $372 = $$010861840 >>> 1; + $373 = ($371|0)==(0); + if ($373) { + break; + } else { + $$010861840 = $372;$$010871839 = $371;$$010881838 = $370; + } + } + $374 = ($362&255)<(11); + if ($374) { + $375 = $363 << 9; + $376 = $375 | $$010911856; + $377 = $376&65535; + $378 = ($370>>>0)<(1024); + if (!($378)) { + $$41201 = $$011971855; + break; + } + $379 = 1 << $363; + $$110891852 = $370; + while(1) { + $380 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($$110891852<<1)|0); + HEAP16[$380>>1] = $377; + $381 = (($$110891852) + ($379))|0; + $382 = ($381>>>0)<(1024); + if ($382) { + $$110891852 = $381; + } else { + $$41201 = $$011971855; + break L142; + } + } + } + $383 = $370 & 1023; + $384 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 288|0) + ($383<<1)|0); + $385 = HEAP16[$384>>1]|0; + $386 = $385 << 16 >> 16; + $387 = ($385<<16>>16)==(0); + if ($387) { + $388 = (($$011971855) + -2)|0; + $389 = $$011971855&65535; + HEAP16[$384>>1] = $389; + $$01194 = $$011971855;$$11198 = $388; + } else { + $$01194 = $386;$$11198 = $$011971855; + } + $390 = $$010881838 >>> 9; + $391 = ($362&255)>(11); + $392 = $390 & 1; + $393 = (($392) - ($$01194))|0; + $394 = (($393) + -1)|0; + if ($391) { + $395 = $390 & 4194303; + $$010941846 = $363;$$211991845 = $$11198;$397 = $394;$406 = $395; + while(1) { + $396 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($397<<1)|0); + $398 = HEAP16[$396>>1]|0; + $399 = ($398<<16>>16)==(0); + if ($399) { + $400 = $$211991845&65535; + HEAP16[$396>>1] = $400; + $401 = (($$211991845) + -2)|0; + $$21196 = $$211991845;$$31200 = $401; + } else { + $402 = $398 << 16 >> 16; + $$21196 = $402;$$31200 = $$211991845; + } + $403 = (($$010941846) + -1)|0; + $404 = ($403>>>0)>(11); + $405 = $406 >>> 1; + $407 = $405 & 1; + $408 = (($407) - ($$21196))|0; + $409 = (($408) + -1)|0; + if ($404) { + $$010941846 = $403;$$211991845 = $$31200;$397 = $409;$406 = $405; + } else { + $$21199$lcssa = $$31200;$$lcssa1778 = $409; + break; + } + } + } else { + $$21199$lcssa = $$11198;$$lcssa1778 = $394; + } + $410 = $$010911856&65535; + $411 = ((((((($0)) + 64|0) + (($248*3488)|0)|0)) + 2336|0) + ($$lcssa1778<<1)|0); + HEAP16[$411>>1] = $410; + $$41201 = $$21199$lcssa; + } + } while(0); + $412 = (($$010911856) + 1)|0; + $413 = HEAP32[$247>>2]|0; + $414 = (((($0)) + 44|0) + ($413<<2)|0); + $415 = HEAP32[$414>>2]|0; + $416 = ($412>>>0)<($415>>>0); + if ($416) { + $$010911856 = $412;$$011971855 = $$41201; + } else { + $$lcssa1779 = $413; + break; + } + } + } + $417 = ($$lcssa1779|0)==(2); + if ($417) { + $$411457 = $$391455;$$411648 = $$391646;$$451036 = $$431034;$$451142 = 0;$$451552 = $$431550;$$46 = $$44;$$461249 = $$441247;$$461355 = $$441353; + label = 105; + } else { + $$521468 = $$391455;$$521659 = $$391646;$$551046 = $$431034;$$561153 = $$431140;$$561563 = $$431550;$$57 = $$44;$$571260 = $$441247;$$571366 = $$441353; + label = 138; + } + } else { + $$531469 = $$391455;$$531660 = $$391646;$$561047 = $$431034;$$571154 = $$431140;$$571564 = $$431550;$$58 = $$44;$$581261 = $$441247;$$581367 = $$441353; + label = 139; + } + break; + } + case 108: { + label = 0; + $429 = $$471356 & 1023; + $430 = (((($0)) + 7328|0) + ($429<<1)|0); + $431 = HEAP16[$430>>1]|0; + $432 = $431 << 16 >> 16; + $433 = ($431<<16>>16)>(-1); + if ($433) { + $434 = $432 >> 9; + $435 = (($434) + -1)|0; + $436 = ($435>>>0)<($$47>>>0); + if ($436) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } else { + label = 113; + break L125; + } + } + $437 = ($$47>>>0)>(10); + if ($437) { + $$0981 = 10;$$0984 = $432; + } else { + label = 113; + break L125; + } + while(1) { + $438 = $$0984 ^ -1; + $439 = $$471356 >>> $$0981; + $440 = $439 & 1; + $441 = (($440) + ($438))|0; + $442 = (((($0)) + 9376|0) + ($441<<1)|0); + $443 = HEAP16[$442>>1]|0; + $444 = ($443<<16>>16)<(0); + if (!($444)) { + $$451461 = $$421458;$$451652 = $$421649;$$491146 = $$461143;$$491556 = $$461553;$$50 = $$47;$$501253 = $$471250;$$501359 = $$471356; + label = 119; + continue L125; + } + $445 = (($$0981) + 1)|0; + $446 = $443 << 16 >> 16; + $447 = (($$0981) + 2)|0; + $448 = ($$47>>>0)<($447>>>0); + if ($448) { + label = 113; + break L125; + } else { + $$0981 = $445;$$0984 = $446; + } + } + break; + } + case 119: { + label = 0; + $471 = $$501359 & 1023; + $472 = (((($0)) + 7328|0) + ($471<<1)|0); + $473 = HEAP16[$472>>1]|0; + $474 = $473 << 16 >> 16; + $475 = ($473<<16>>16)>(-1); + if ($475) { + $476 = $474 >> 9; + $477 = $474 & 511; + $$2983 = $476;$$2986 = $477; + } else { + $$1982 = 10;$$1985 = $474; + while(1) { + $478 = $$1985 ^ -1; + $479 = (($$1982) + 1)|0; + $480 = $$501359 >>> $$1982; + $481 = $480 & 1; + $482 = (($481) + ($478))|0; + $483 = (((($0)) + 9376|0) + ($482<<1)|0); + $484 = HEAP16[$483>>1]|0; + $485 = $484 << 16 >> 16; + $486 = ($484<<16>>16)<(0); + if ($486) { + $$1982 = $479;$$1985 = $485; + } else { + $$2983 = $479;$$2986 = $485; + break; + } + } + } + $487 = $$501359 >>> $$2983; + $488 = (($$50) - ($$2983))|0; + $489 = ($$2986>>>0)<(16); + if ($489) { + $490 = $$2986&255; + $491 = (($$491146) + 1)|0; + $492 = (((($0)) + 10532|0) + ($$491146)|0); + HEAP8[$492>>0] = $490; + $$411457 = $$451461;$$411648 = $$451652;$$451036 = $$2986;$$451142 = $491;$$451552 = $$491556;$$46 = $488;$$461249 = $$501253;$$461355 = $487; + label = 105; + break; + } + $493 = ($$2986|0)!=(16); + $494 = ($$491146|0)!=(0); + $or$cond24 = $494 | $493; + if (!($or$cond24)) { + $$461462 = $$451461;$$461653 = $$451652;$$491040 = $$2986;$$501147 = $$491146;$$501557 = $$491556;$$51 = $488;$$511254 = $$501253;$$511360 = $487; + label = 125; + continue L46; + } + $495 = (($$2986) + -16)|0; + $496 = (11765 + ($495)|0); + $497 = HEAP8[$496>>0]|0; + $498 = $497 << 24 >> 24; + $499 = ($488>>>0)<($498>>>0); + if ($499) { + $$471463 = $$451461;$$471654 = $$451652;$$501041 = $$2986;$$511148 = $$491146;$$511558 = $$491556;$$52 = $488;$$521255 = $498;$$521361 = $487; + label = 127; + continue L125; + } else { + $$501466 = $$451461;$$501657 = $$451652;$$531044 = $$2986;$$541151 = $$491146;$$541561 = $$491556;$$55 = $488;$$551258 = $498;$$551364 = $487; + label = 132; + continue L125; + } + break; + } + case 127: { + label = 0; + $500 = ($$511558>>>0)<($10>>>0); + if ($500) { + $$491465$ph = $$471463;$$491656$ph = $$471654;$$521043$ph = $$501041;$$531150$ph = $$511148;$$54$ph = $$52;$$541257$ph = $$521255;$$541363$ph = $$521361;$$sink1732 = $$511558; + label = 130; + continue L46; + } else { + $$481464 = $$471463;$$481655 = $$471654;$$511042 = $$501041;$$521149 = $$511148;$$521559 = $$511558;$$53 = $$52;$$531256 = $$521255;$$531362 = $$521361; + label = 128; + continue L46; + } + break; + } + case 132: { + label = 0; + $510 = 1 << $$551258; + $511 = (($510) + -1)|0; + $512 = $511 & $$551364; + $513 = $$551364 >>> $$551258; + $514 = (($$55) - ($$551258))|0; + $515 = (($$531044) + -16)|0; + $516 = (11769 + ($515)|0); + $517 = HEAP8[$516>>0]|0; + $518 = $517 << 24 >> 24; + $519 = (($518) + ($512))|0; + $520 = (((($0)) + 10532|0) + ($$541151)|0); + $521 = ($$531044|0)==(16); + if ($521) { + $522 = (($$541151) + -1)|0; + $523 = (((($0)) + 10532|0) + ($522)|0); + $524 = HEAP8[$523>>0]|0; + $525 = $524&255; + $527 = $525; + } else { + $527 = 0; + } + $526 = $527&255; + _memset(($520|0),($526|0),($519|0))|0; + $528 = (($519) + ($$541151))|0; + $$411457 = $$501466;$$411648 = $$501657;$$451036 = $$531044;$$451142 = $528;$$451552 = $$541561;$$46 = $514;$$461249 = $$551258;$$461355 = $513; + label = 105; + break; + } + case 140: { + label = 0; + $539 = $10; + $540 = $$581565$ph; + $541 = (($539) - ($540))|0; + $542 = ($541|0)<(4); + $543 = ($$59$ph>>>0)<(15); + L241: do { + if ($542) { + $$541661$lcssa = $$541661$ph;$$581155$lcssa = $$581155$ph;$$581565$lcssa = $$581565$ph;$$59$lcssa = $$59$ph;$$591368$lcssa = $$591368$ph;$$lcssa1799 = $543;$$lcssa1802 = $541; + } else { + $544 = $12; + $$5416611868 = $$541661$ph;$$5811551871 = $$581155$ph;$$5815651869 = $$581565$ph;$$5913681870 = $$591368$ph;$$591872 = $$59$ph;$965 = $543;$966 = $541; + while(1) { + $545 = $$5416611868; + $546 = (($544) - ($545))|0; + $547 = ($546|0)<(2); + if ($547) { + $$541661$lcssa = $$5416611868;$$581155$lcssa = $$5811551871;$$581565$lcssa = $$5815651869;$$59$lcssa = $$591872;$$591368$lcssa = $$5913681870;$$lcssa1799 = $965;$$lcssa1802 = $966; + break L241; + } + if ($965) { + $613 = HEAP8[$$5815651869>>0]|0; + $614 = $613&255; + $615 = ((($$5815651869)) + 1|0); + $616 = HEAP8[$615>>0]|0; + $617 = $616&255; + $618 = $617 << 8; + $619 = $618 | $614; + $620 = $619 << $$591872; + $621 = $620 | $$5913681870; + $622 = ((($$5815651869)) + 2|0); + $623 = (($$591872) + 16)|0; + $$641571 = $622;$$65 = $623;$$651374 = $621; + } else { + $$641571 = $$5815651869;$$65 = $$591872;$$651374 = $$5913681870; + } + $624 = $$651374 & 1023; + $625 = (((($0)) + 352|0) + ($624<<1)|0); + $626 = HEAP16[$625>>1]|0; + $627 = $626 << 16 >> 16; + $628 = ($626<<16>>16)>(-1); + if ($628) { + $629 = $627 >> 9; + $$1964 = $629;$$1968 = $627; + } else { + $$0963 = 10;$$0967 = $627; + while(1) { + $630 = $$0967 ^ -1; + $631 = (($$0963) + 1)|0; + $632 = $$651374 >>> $$0963; + $633 = $632 & 1; + $634 = (($633) + ($630))|0; + $635 = (((($0)) + 2400|0) + ($634<<1)|0); + $636 = HEAP16[$635>>1]|0; + $637 = $636 << 16 >> 16; + $638 = ($636<<16>>16)<(0); + if ($638) { + $$0963 = $631;$$0967 = $637; + } else { + $$1964 = $631;$$1968 = $637; + break; + } + } + } + $639 = $$651374 >>> $$1964; + $640 = (($$65) - ($$1964))|0; + $641 = $$1968 & 256; + $642 = ($641|0)==(0); + if (!($642)) { + $$601476 = $$541470$ph;$$611668 = $$5416611868;$$631054 = $$571048$ph;$$641161 = $$1968;$$651268 = $$591262$ph;$$671574 = $$641571;$$68 = $640;$$681377 = $639; + label = 176; + break L126; + } + $643 = ($640>>>0)<(15); + if ($643) { + $644 = HEAP8[$$641571>>0]|0; + $645 = $644&255; + $646 = ((($$641571)) + 1|0); + $647 = HEAP8[$646>>0]|0; + $648 = $647&255; + $649 = $648 << 8; + $650 = $649 | $645; + $651 = $650 << $640; + $652 = $651 | $639; + $653 = ((($$641571)) + 2|0); + $654 = (($640) + 16)|0; + $$651572 = $653;$$66 = $654;$$661375 = $652; + } else { + $$651572 = $$641571;$$66 = $640;$$661375 = $639; + } + $655 = $$661375 & 1023; + $656 = (((($0)) + 352|0) + ($655<<1)|0); + $657 = HEAP16[$656>>1]|0; + $658 = $657 << 16 >> 16; + $659 = ($657<<16>>16)>(-1); + if ($659) { + $660 = $658 >> 9; + $$3966 = $660;$$3970 = $658; + } else { + $$2965 = 10;$$2969 = $658; + while(1) { + $661 = $$2969 ^ -1; + $662 = (($$2965) + 1)|0; + $663 = $$661375 >>> $$2965; + $664 = $663 & 1; + $665 = (($664) + ($661))|0; + $666 = (((($0)) + 2400|0) + ($665<<1)|0); + $667 = HEAP16[$666>>1]|0; + $668 = $667 << 16 >> 16; + $669 = ($667<<16>>16)<(0); + if ($669) { + $$2965 = $662;$$2969 = $668; + } else { + $$3966 = $662;$$3970 = $668; + break; + } + } + } + $670 = $$661375 >>> $$3966; + $671 = (($$66) - ($$3966))|0; + $672 = $$1968&255; + HEAP8[$$5416611868>>0] = $672; + $673 = $$3970 & 256; + $674 = ($673|0)==(0); + if (!($674)) { + break; + } + $676 = $$3970&255; + $677 = ((($$5416611868)) + 1|0); + HEAP8[$677>>0] = $676; + $678 = ((($$5416611868)) + 2|0); + $679 = $$651572; + $680 = (($539) - ($679))|0; + $681 = ($680|0)<(4); + $682 = ($671>>>0)<(15); + if ($681) { + $$541661$lcssa = $678;$$581155$lcssa = $$1968;$$581565$lcssa = $$651572;$$59$lcssa = $671;$$591368$lcssa = $670;$$lcssa1799 = $682;$$lcssa1802 = $680; + break L241; + } else { + $$5416611868 = $678;$$5811551871 = $$1968;$$5815651869 = $$651572;$$5913681870 = $670;$$591872 = $671;$965 = $682;$966 = $680; + } + } + $675 = ((($$5416611868)) + 1|0); + $$601476 = $$541470$ph;$$611668 = $675;$$631054 = $$571048$ph;$$641161 = $$3970;$$651268 = $$591262$ph;$$671574 = $$651572;$$68 = $671;$$681377 = $670; + label = 176; + break L126; + } + } while(0); + if (!($$lcssa1799)) { + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $$581565$lcssa;$$63 = $$59$lcssa;$$631266 = $$591262$ph;$$631372 = $$591368$lcssa; + label = 156; + continue L125; + } + $548 = ($$lcssa1802|0)<(2); + if ($548) { + $$551471 = $$541470$ph;$$551662 = $$541661$lcssa;$$581049 = $$571048$ph;$$591156 = $$581155$lcssa;$$591566 = $$581565$lcssa;$$60 = $$59$lcssa;$$601263 = $$591262$ph;$$601369 = $$591368$lcssa; + label = 145; + continue L125; + } + $579 = HEAP8[$$581565$lcssa>>0]|0; + $580 = $579&255; + $581 = $580 << $$59$lcssa; + $582 = ((($$581565$lcssa)) + 1|0); + $583 = HEAP8[$582>>0]|0; + $584 = $583&255; + $585 = (($$59$lcssa) + 8)|0; + $586 = $584 << $585; + $587 = $581 | $$591368$lcssa; + $588 = $587 | $586; + $589 = ((($$581565$lcssa)) + 2|0); + $590 = (($$59$lcssa) + 16)|0; + $$581474 = $$541470$ph;$$581665 = $$541661$lcssa;$$611052 = $$571048$ph;$$621569 = $589;$$63 = $590;$$631266 = $$591262$ph;$$631372 = $588; + label = 156; + continue L125; + break; + } + case 145: { + label = 0; + $549 = $$601369 & 1023; + $550 = (((($0)) + 352|0) + ($549<<1)|0); + $551 = HEAP16[$550>>1]|0; + $552 = $551 << 16 >> 16; + $553 = ($551<<16>>16)>(-1); + if ($553) { + $554 = $552 >> 9; + $555 = (($554) + -1)|0; + $556 = ($555>>>0)<($$60>>>0); + if ($556) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } else { + label = 150; + break L125; + } + } + $557 = ($$60>>>0)>(10); + if ($557) { + $$0972 = 10;$$0975 = $552; + } else { + label = 150; + break L125; + } + while(1) { + $558 = $$0975 ^ -1; + $559 = $$601369 >>> $$0972; + $560 = $559 & 1; + $561 = (($560) + ($558))|0; + $562 = (((($0)) + 2400|0) + ($561<<1)|0); + $563 = HEAP16[$562>>1]|0; + $564 = ($563<<16>>16)<(0); + if (!($564)) { + $$581474 = $$551471;$$581665 = $$551662;$$611052 = $$581049;$$621569 = $$591566;$$63 = $$60;$$631266 = $$601263;$$631372 = $$601369; + label = 156; + continue L125; + } + $565 = (($$0972) + 1)|0; + $566 = $563 << 16 >> 16; + $567 = (($$0972) + 2)|0; + $568 = ($$60>>>0)<($567>>>0); + if ($568) { + label = 150; + break L125; + } else { + $$0972 = $565;$$0975 = $566; + } + } + break; + } + case 156: { + label = 0; + $591 = $$631372 & 1023; + $592 = (((($0)) + 352|0) + ($591<<1)|0); + $593 = HEAP16[$592>>1]|0; + $594 = $593 << 16 >> 16; + $595 = ($593<<16>>16)>(-1); + if ($595) { + $596 = $594 >> 9; + $597 = $594 & 511; + $$2974 = $596;$$2977 = $597; + } else { + $$1973 = 10;$$1976 = $594; + while(1) { + $598 = $$1976 ^ -1; + $599 = (($$1973) + 1)|0; + $600 = $$631372 >>> $$1973; + $601 = $600 & 1; + $602 = (($601) + ($598))|0; + $603 = (((($0)) + 2400|0) + ($602<<1)|0); + $604 = HEAP16[$603>>1]|0; + $605 = $604 << 16 >> 16; + $606 = ($604<<16>>16)<(0); + if ($606) { + $$1973 = $599;$$1976 = $605; + } else { + $$2974 = $599;$$2977 = $605; + break; + } + } + } + $607 = $$631372 >>> $$2974; + $608 = (($$63) - ($$2974))|0; + $609 = ($$2977>>>0)>(255); + if ($609) { + $$601476 = $$581474;$$611668 = $$581665;$$631054 = $$611052;$$641161 = $$2977;$$651268 = $$631266;$$671574 = $$621569;$$68 = $608;$$681377 = $607; + label = 176; + } else { + $$591475 = $$581474;$$591666 = $$581665;$$621053 = $$611052;$$621159 = $$2977;$$631570 = $$621569;$$64 = $608;$$641267 = $$631266;$$641373 = $607; + label = 160; + continue L46; + } + break; + } + case 179: { + label = 0; + $693 = ($$681575>>>0)<($10>>>0); + if ($693) { + $$631479$ph = $$611477;$$641671$ph = $$621669;$$661057$ph = $$641055;$$671164$ph = $$651162;$$681271$ph = $$661269;$$71$ph = $$69;$$711380$ph = $$691378;$$sink1739 = $$681575; + label = 182; + continue L46; + } else { + $$621478 = $$611477;$$631670 = $$621669;$$651056 = $$641055;$$661163 = $$651162;$$671270 = $$661269;$$691576 = $$681575;$$70 = $$69;$$701379 = $$691378; + label = 180; + continue L46; + } + break; + } + case 184: { + label = 0; + $703 = 1 << $$691272; + $704 = (($703) + -1)|0; + $705 = $704 & $$721381; + $706 = $$721381 >>> $$691272; + $707 = (($$72) - ($$691272))|0; + $708 = (($705) + ($$681165))|0; + $$651481 = $$641480;$$661673 = $$651672;$$681059 = $$671058;$$691166 = $708;$$701273 = $$691272;$$721579 = $$711578;$$73 = $707;$$731382 = $706; + label = 185; + break; + } + case 187: { + label = 0; + $714 = $$741383 & 1023; + $715 = (((($0)) + 3840|0) + ($714<<1)|0); + $716 = HEAP16[$715>>1]|0; + $717 = $716 << 16 >> 16; + $718 = ($716<<16>>16)>(-1); + if ($718) { + $719 = $717 >> 9; + $720 = (($719) + -1)|0; + $721 = ($720>>>0)<($$74>>>0); + if ($721) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } else { + label = 192; + break L125; + } + } + $722 = ($$74>>>0)>(10); + if ($722) { + $$0953 = 10;$$0956 = $717; + } else { + label = 192; + break L125; + } + while(1) { + $723 = $$0956 ^ -1; + $724 = $$741383 >>> $$0953; + $725 = $724 & 1; + $726 = (($725) + ($723))|0; + $727 = (((($0)) + 5888|0) + ($726<<1)|0); + $728 = HEAP16[$727>>1]|0; + $729 = ($728<<16>>16)<(0); + if (!($729)) { + $$691485 = $$661482;$$701677 = $$671674;$$731170 = $$701167;$$761583 = $$731580;$$77 = $$74;$$771386 = $$741383; + label = 198; + continue L125; + } + $730 = (($$0953) + 1)|0; + $731 = $728 << 16 >> 16; + $732 = (($$0953) + 2)|0; + $733 = ($$74>>>0)<($732>>>0); + if ($733) { + label = 192; + break L125; + } else { + $$0953 = $730;$$0956 = $731; + } + } + break; + } + case 198: { + label = 0; + $756 = $$771386 & 1023; + $757 = (((($0)) + 3840|0) + ($756<<1)|0); + $758 = HEAP16[$757>>1]|0; + $759 = $758 << 16 >> 16; + $760 = ($758<<16>>16)>(-1); + if ($760) { + $761 = $759 >> 9; + $762 = $759 & 511; + $$2955 = $761;$$2958 = $762; + } else { + $$1954 = 10;$$1957 = $759; + while(1) { + $763 = $$1957 ^ -1; + $764 = (($$1954) + 1)|0; + $765 = $$771386 >>> $$1954; + $766 = $765 & 1; + $767 = (($766) + ($763))|0; + $768 = (((($0)) + 5888|0) + ($767<<1)|0); + $769 = HEAP16[$768>>1]|0; + $770 = $769 << 16 >> 16; + $771 = ($769<<16>>16)<(0); + if ($771) { + $$1954 = $764;$$1957 = $770; + } else { + $$2955 = $764;$$2958 = $770; + break; + } + } + } + $772 = $$771386 >>> $$2955; + $773 = (($$77) - ($$2955))|0; + $774 = (3404 + ($$2958<<2)|0); + $775 = HEAP32[$774>>2]|0; + $776 = (3532 + ($$2958<<2)|0); + $777 = HEAP32[$776>>2]|0; + $778 = (($$2958) + -4)|0; + $779 = ($778>>>0)<(26); + if ($779) { + $780 = ($773>>>0)<($775>>>0); + if ($780) { + $$701486 = $$691485;$$711678 = $$701677;$$721063 = $777;$$741171 = $$731170;$$741277 = $775;$$771584 = $$761583;$$78 = $773;$$781387 = $772; + label = 203; + continue L125; + } else { + $$741681 = $$701677;$$751066 = $777;$$771174 = $$731170;$$771280 = $775;$$801587 = $$761583;$$81 = $773;$$811390 = $772; + label = 208; + continue L125; + } + } else { + $$751682 = $$701677;$$761067 = $777;$$781175 = $$731170;$$781281 = $775;$$811588 = $$761583;$$82 = $773;$$821391 = $772; + label = 209; + } + break; + } + case 203: { + label = 0; + $781 = ($$771584>>>0)<($10>>>0); + if ($781) { + $$721488$ph = $$701486;$$731680$ph = $$711678;$$741065$ph = $$721063;$$761173$ph = $$741171;$$761279$ph = $$741277;$$80$ph = $$78;$$801389$ph = $$781387;$$sink1746 = $$771584; + label = 206; + continue L46; + } else { + $$711487 = $$701486;$$721679 = $$711678;$$731064 = $$721063;$$751172 = $$741171;$$751278 = $$741277;$$781585 = $$771584;$$79 = $$78;$$791388 = $$781387; + label = 204; + continue L46; + } + break; + } + case 208: { + label = 0; + $791 = 1 << $$771280; + $792 = (($791) + -1)|0; + $793 = $792 & $$811390; + $794 = $$811390 >>> $$771280; + $795 = (($$81) - ($$771280))|0; + $796 = (($793) + ($$751066))|0; + $$751682 = $$741681;$$761067 = $796;$$781175 = $$771174;$$781281 = $$771280;$$811588 = $$801587;$$82 = $795;$$821391 = $794; + label = 209; + break; + } + case 212: { + label = 0; + $807 = (($$801177) + -1)|0; + $808 = ($$801177|0)==(0); + if ($808) { + $$531469 = $$741490;$$531660 = $$771684;$$561047 = $$781069;$$571154 = $807;$$571564 = $$831590;$$58 = $$84;$$581261 = $$801283;$$581367 = $$841393; + label = 139; + } else { + $$751491 = $$741490;$$781685 = $$771684;$$791070 = $$781069;$$811178 = $807;$$811284 = $$801283;$$841591 = $$831590;$$85 = $$84;$$851394 = $$841393; + label = 213; + continue L46; + } + break; + } + } + do { + if ((label|0) == 70) { + label = 0; + $217 = ((($0)) + 52|0); + $218 = HEAP32[$217>>2]|0; + $219 = ($$381135>>>0)<($218>>>0); + if ($219) { + $220 = ($$39>>>0)<(3); + if ($220) { + $$351451 = $$341450;$$351642 = $$341641;$$391030 = $$381029;$$391136 = $$381135;$$391546 = $$381545;$$40 = $$39;$$401243 = $$391242;$$401349 = $$391348; + label = 72; + continue L125; + } else { + $$381454 = $$341450;$$381645 = $$341641;$$421033 = $$381029;$$421139 = $$381135;$$421549 = $$381545;$$43 = $$39;$$431246 = $$391242;$$431352 = $$391348; + label = 77; + continue L125; + } + } else { + HEAP32[$217>>2] = 19; + $$391455 = $$341450;$$391646 = $$341641;$$431034 = $$381029;$$431140 = $$381135;$$431550 = $$381545;$$44 = $$39;$$441247 = $$391242;$$441353 = $$391348; + label = 80; + continue L125; + } + } + else if ((label|0) == 105) { + label = 0; + $418 = ((($0)) + 44|0); + $419 = HEAP32[$418>>2]|0; + $420 = ((($0)) + 48|0); + $421 = HEAP32[$420>>2]|0; + $422 = (($421) + ($419))|0; + $423 = ($$451142>>>0)<($422>>>0); + if (!($423)) { + $529 = ($422|0)==($$451142|0); + if (!($529)) { + $$511467 = $$411457;$$511658 = $$411648;$$541045 = $$451036;$$551152 = $$451142;$$551562 = $$451552;$$56 = $$46;$$561259 = $$461249;$$561365 = $$461355; + label = 136; + continue L46; + } + $530 = ((($0)) + 64|0); + $531 = ((($0)) + 10532|0); + _memcpy(($530|0),($531|0),($419|0))|0; + $532 = ((($0)) + 3552|0); + $533 = HEAP32[$418>>2]|0; + $534 = (((($0)) + 10532|0) + ($533)|0); + $535 = HEAP32[$420>>2]|0; + _memcpy(($532|0),($534|0),($535|0))|0; + $$521468 = $$411457;$$521659 = $$411648;$$551046 = $$451036;$$561153 = $$451142;$$561563 = $$451552;$$57 = $$46;$$571260 = $$461249;$$571366 = $$461355; + label = 138; + break; + } + $424 = ($$46>>>0)<(15); + if (!($424)) { + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $$451552;$$50 = $$46;$$501253 = $$461249;$$501359 = $$461355; + label = 119; + continue L125; + } + $425 = $10; + $426 = $$451552; + $427 = (($425) - ($426))|0; + $428 = ($427|0)<(2); + if ($428) { + $$421458 = $$411457;$$421649 = $$411648;$$461037 = $$451036;$$461143 = $$451142;$$461553 = $$451552;$$47 = $$46;$$471250 = $$461249;$$471356 = $$461355; + label = 108; + continue L125; + } + $459 = HEAP8[$$451552>>0]|0; + $460 = $459&255; + $461 = $460 << $$46; + $462 = ((($$451552)) + 1|0); + $463 = HEAP8[$462>>0]|0; + $464 = $463&255; + $465 = (($$46) + 8)|0; + $466 = $464 << $465; + $467 = $461 | $$461355; + $468 = $467 | $466; + $469 = ((($$451552)) + 2|0); + $470 = (($$46) + 16)|0; + $$451461 = $$411457;$$451652 = $$411648;$$491146 = $$451142;$$491556 = $469;$$50 = $470;$$501253 = $$461249;$$501359 = $468; + label = 119; + continue L125; + } + else if ((label|0) == 176) { + label = 0; + $683 = $$641161 & 511; + $684 = ($683|0)==(256); + if ($684) { + $$761492 = $$601476;$$801071 = $$631054;$$801687 = $$611668;$$821285 = $$651268;$$831180 = 256;$$851592 = $$671574;$$86 = $$68;$$861395 = $$681377; + label = 220; + break L125; + } + $685 = (($683) + -257)|0; + $686 = (3156 + ($685<<2)|0); + $687 = HEAP32[$686>>2]|0; + $688 = (3280 + ($685<<2)|0); + $689 = HEAP32[$688>>2]|0; + $690 = (($683) + -265)|0; + $691 = ($690>>>0)<(20); + if ($691) { + $692 = ($$68>>>0)<($687>>>0); + if ($692) { + $$611477 = $$601476;$$621669 = $$611668;$$641055 = $$631054;$$651162 = $689;$$661269 = $687;$$681575 = $$671574;$$69 = $$68;$$691378 = $$681377; + label = 179; + continue L125; + } else { + $$641480 = $$601476;$$651672 = $$611668;$$671058 = $$631054;$$681165 = $689;$$691272 = $687;$$711578 = $$671574;$$72 = $$68;$$721381 = $$681377; + label = 184; + continue L125; + } + } else { + $$651481 = $$601476;$$661673 = $$611668;$$681059 = $$631054;$$691166 = $689;$$701273 = $687;$$721579 = $$671574;$$73 = $$68;$$731382 = $$681377; + label = 185; + } + } + else if ((label|0) == 209) { + label = 0; + $797 = $$751682; + $798 = $3; + $799 = (($797) - ($798))|0; + $$not = ($799>>>0)>=($$761067>>>0); + $$not1747 = $14 ^ 1; + $brmerge = $$not | $$not1747; + if (!($brmerge)) { + $$731489 = $799;$$761683 = $$751682;$$771068 = $$761067;$$791176 = $$781175;$$791282 = $$781281;$$821589 = $$811588;$$83 = $$82;$$831392 = $$821391; + label = 210; + continue L46; + } + $800 = (($799) - ($$761067))|0; + $801 = $800 & $$1753; + $802 = (($3) + ($801)|0); + $803 = ($$751682>>>0)>($802>>>0); + $804 = $803 ? $$751682 : $802; + $805 = (($804) + ($$781175)|0); + $806 = ($805>>>0)>($12>>>0); + if ($806) { + $$741490 = $799;$$771684 = $$751682;$$781069 = $$761067;$$801177 = $$781175;$$801283 = $$781281;$$831590 = $$811588;$$84 = $$82;$$841393 = $$821391; + label = 212; + continue L125; + } else { + $$0978 = $802;$$791686 = $$751682;$$821179 = $$781175; + } + while(1) { + $816 = HEAP8[$$0978>>0]|0; + HEAP8[$$791686>>0] = $816; + $817 = ((($$0978)) + 1|0); + $818 = HEAP8[$817>>0]|0; + $819 = ((($$791686)) + 1|0); + HEAP8[$819>>0] = $818; + $820 = ((($$0978)) + 2|0); + $821 = HEAP8[$820>>0]|0; + $822 = ((($$791686)) + 2|0); + HEAP8[$822>>0] = $821; + $823 = ((($$791686)) + 3|0); + $824 = ((($$0978)) + 3|0); + $825 = (($$821179) + -3)|0; + $826 = ($825|0)>(2); + if ($826) { + $$0978 = $824;$$791686 = $823;$$821179 = $825; + } else { + break; + } + } + $827 = ($825|0)>(0); + if ($827) { + $828 = HEAP8[$824>>0]|0; + HEAP8[$823>>0] = $828; + $829 = ($825|0)==(1); + if (!($829)) { + $830 = ((($$0978)) + 4|0); + $831 = HEAP8[$830>>0]|0; + $832 = ((($$791686)) + 4|0); + HEAP8[$832>>0] = $831; + } + $833 = (($823) + ($825)|0); + $$531469 = $799;$$531660 = $833;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } else { + $$531469 = $799;$$531660 = $823;$$561047 = $$761067;$$571154 = $825;$$571564 = $$811588;$$58 = $$82;$$581261 = $$781281;$$581367 = $$821391; + label = 139; + } + } + } while(0); + if ((label|0) == 138) { + label = 0; + $536 = ((($0)) + 24|0); + $537 = HEAP32[$536>>2]|0; + $538 = (($537) + -1)|0; + HEAP32[$536>>2] = $538; + $$391455 = $$521468;$$391646 = $$521659;$$431034 = $$551046;$$431140 = $$561153;$$431550 = $$561563;$$44 = $$57;$$441247 = $$571260;$$441353 = $$571366; + label = 80; + continue; + } + else if ((label|0) == 139) { + label = 0; + $$541470$ph = $$531469;$$541661$ph = $$531660;$$571048$ph = $$561047;$$581155$ph = $$571154;$$581565$ph = $$571564;$$59$ph = $$58;$$591262$ph = $$581261;$$591368$ph = $$581367; + label = 140; + continue; + } + else if ((label|0) == 185) { + label = 0; + $709 = ($$73>>>0)<(15); + if (!($709)) { + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $$721579;$$77 = $$73;$$771386 = $$731382; + label = 198; + continue; + } + $710 = $10; + $711 = $$721579; + $712 = (($710) - ($711))|0; + $713 = ($712|0)<(2); + if ($713) { + $$661482 = $$651481;$$671674 = $$661673;$$691060 = $$681059;$$701167 = $$691166;$$711274 = $$701273;$$731580 = $$721579;$$74 = $$73;$$741383 = $$731382; + label = 187; + continue; + } + $744 = HEAP8[$$721579>>0]|0; + $745 = $744&255; + $746 = $745 << $$73; + $747 = ((($$721579)) + 1|0); + $748 = HEAP8[$747>>0]|0; + $749 = $748&255; + $750 = (($$73) + 8)|0; + $751 = $749 << $750; + $752 = $746 | $$731382; + $753 = $752 | $751; + $754 = ((($$721579)) + 2|0); + $755 = (($$73) + 16)|0; + $$691485 = $$651481;$$701677 = $$661673;$$731170 = $$691166;$$761583 = $754;$$77 = $755;$$771386 = $753; + label = 198; + continue; + } + } + if ((label|0) == 113) { + label = 0; + $449 = ($$461553>>>0)<($10>>>0); + if ($449) { + $$441460$ph = $$421458;$$441651$ph = $$421649;$$481039$ph = $$461037;$$481145$ph = $$461143;$$49$ph = $$47;$$491252$ph = $$471250;$$491358$ph = $$471356;$$sink1729 = $$461553; + label = 116; + continue; + } else { + $$431459 = $$421458;$$431650 = $$421649;$$471038 = $$461037;$$471144 = $$461143;$$471554 = $$461553;$$48 = $$47;$$481251 = $$471250;$$481357 = $$471356; + label = 114; + continue; + } + } + else if ((label|0) == 150) { + label = 0; + $569 = ($$591566>>>0)<($10>>>0); + if ($569) { + $$571473$ph = $$551471;$$571664$ph = $$551662;$$601051$ph = $$581049;$$611158$ph = $$591156;$$62$ph = $$60;$$621265$ph = $$601263;$$621371$ph = $$601369;$$sink1736 = $$591566; + label = 153; + continue; + } else { + $$561472 = $$551471;$$561663 = $$551662;$$591050 = $$581049;$$601157 = $$591156;$$601567 = $$591566;$$61 = $$60;$$611264 = $$601263;$$611370 = $$601369; + label = 151; + continue; + } + } + else if ((label|0) == 192) { + label = 0; + $734 = ($$731580>>>0)<($10>>>0); + if ($734) { + $$681484$ph = $$661482;$$691676$ph = $$671674;$$711062$ph = $$691060;$$721169$ph = $$701167;$$731276$ph = $$711274;$$76$ph = $$74;$$761385$ph = $$741383;$$sink1743 = $$731580; + label = 195; + continue; + } else { + $$671483 = $$661482;$$681675 = $$671674;$$701061 = $$691060;$$711168 = $$701167;$$721275 = $$711274;$$741581 = $$731580;$$75 = $$74;$$751384 = $$741383; + label = 193; + continue; + } + } + else if ((label|0) == 220) { + label = 0; + $834 = ((($0)) + 20|0); + $835 = HEAP32[$834>>2]|0; + $836 = $835 & 1; + $837 = ($836|0)==(0); + if ($837) { + $$01416 = $$761492;$$01607 = $$801687;$$41511 = $$851592;$$5 = $$86;$$51102 = $$831180;$$51208 = $$821285;$$51314 = $$861395;$$5996 = $$801071; + label = 14; + continue; + } + $838 = $6 & 1; + $839 = ($838|0)==(0); + if ($839) { + $$881504 = $$761492;$$921083 = $$801071;$$921699 = $$801687;$$941191 = $$831180;$$941297 = $$821285;$$971604 = $$851592;$$98 = $$86;$$981407 = $$861395; + label = 242; + continue; + } else { + $$801496 = $$761492;$$841075 = $$801071;$$841691 = $$801687;$$861289 = $$821285;$$891596 = $$851592;$$90 = $$86;$$901399 = $$861395; + label = 226; + continue; + } + } + } + if ((label|0) == 258) { + STACKTOP = sp;return ($$0951|0); + } + $892 = ((($0)) + 28|0); + $893 = HEAP32[$892>>2]|0; + $894 = $893 & 65535; + $895 = $893 >>> 16; + $896 = ($888|0)==(0); + if ($896) { + $$0937$lcssa = $895;$$0938$lcssa = $894; + } else { + $897 = (($888>>>0) % 5552)&-1; + $$01834 = $897;$$09371833 = $895;$$09381832 = $894;$$09431831 = $888;$$09441830 = $4; + while(1) { + $898 = ($$01834>>>0)>(7); + if ($898) { + $899 = (($$01834) + -8)|0; + $900 = $899 & -8; + $scevgep = ((($$09441830)) + 8|0); + $$09411816 = 0;$$11818 = $$09371833;$$19391817 = $$09381832;$$19451815 = $$09441830; + while(1) { + $904 = HEAP8[$$19451815>>0]|0; + $905 = $904&255; + $906 = (($905) + ($$19391817))|0; + $907 = (($906) + ($$11818))|0; + $908 = ((($$19451815)) + 1|0); + $909 = HEAP8[$908>>0]|0; + $910 = $909&255; + $911 = (($906) + ($910))|0; + $912 = (($907) + ($911))|0; + $913 = ((($$19451815)) + 2|0); + $914 = HEAP8[$913>>0]|0; + $915 = $914&255; + $916 = (($911) + ($915))|0; + $917 = (($912) + ($916))|0; + $918 = ((($$19451815)) + 3|0); + $919 = HEAP8[$918>>0]|0; + $920 = $919&255; + $921 = (($916) + ($920))|0; + $922 = (($917) + ($921))|0; + $923 = ((($$19451815)) + 4|0); + $924 = HEAP8[$923>>0]|0; + $925 = $924&255; + $926 = (($921) + ($925))|0; + $927 = (($922) + ($926))|0; + $928 = ((($$19451815)) + 5|0); + $929 = HEAP8[$928>>0]|0; + $930 = $929&255; + $931 = (($926) + ($930))|0; + $932 = (($927) + ($931))|0; + $933 = ((($$19451815)) + 6|0); + $934 = HEAP8[$933>>0]|0; + $935 = $934&255; + $936 = (($931) + ($935))|0; + $937 = (($932) + ($936))|0; + $938 = ((($$19451815)) + 7|0); + $939 = HEAP8[$938>>0]|0; + $940 = $939&255; + $941 = (($936) + ($940))|0; + $942 = (($937) + ($941))|0; + $943 = (($$09411816) + 8)|0; + $944 = ((($$19451815)) + 8|0); + $945 = $943 | 7; + $946 = ($945>>>0)<($$01834>>>0); + if ($946) { + $$09411816 = $943;$$11818 = $942;$$19391817 = $941;$$19451815 = $944; + } else { + break; + } + } + $901 = (($900) + 8)|0; + $scevgep1947 = (($scevgep) + ($900)|0); + $$0941$lcssa = $901;$$1$lcssa = $942;$$1939$lcssa = $941;$$1945$lcssa = $scevgep1947; + } else { + $$0941$lcssa = 0;$$1$lcssa = $$09371833;$$1939$lcssa = $$09381832;$$1945$lcssa = $$09441830; + } + $902 = ($$01834>>>0)>($$0941$lcssa>>>0); + if ($902) { + $903 = (($$01834) - ($$0941$lcssa))|0; + $$19421823 = $$0941$lcssa;$$21825 = $$1$lcssa;$$29401824 = $$1939$lcssa;$$29461822 = $$1945$lcssa; + while(1) { + $947 = ((($$29461822)) + 1|0); + $948 = HEAP8[$$29461822>>0]|0; + $949 = $948&255; + $950 = (($949) + ($$29401824))|0; + $951 = (($950) + ($$21825))|0; + $952 = (($$19421823) + 1)|0; + $exitcond = ($952|0)==($$01834|0); + if ($exitcond) { + break; + } else { + $$19421823 = $952;$$21825 = $951;$$29401824 = $950;$$29461822 = $947; + } + } + $scevgep1948 = (($$1945$lcssa) + ($903)|0); + $$2$lcssa = $951;$$2940$lcssa = $950;$$2946$lcssa = $scevgep1948; + } else { + $$2$lcssa = $$1$lcssa;$$2940$lcssa = $$1939$lcssa;$$2946$lcssa = $$1945$lcssa; + } + $953 = (($$2940$lcssa>>>0) % 65521)&-1; + $954 = (($$2$lcssa>>>0) % 65521)&-1; + $955 = (($$09431831) - ($$01834))|0; + $956 = ($955|0)==(0); + if ($956) { + $$0937$lcssa = $954;$$0938$lcssa = $953; + break; + } else { + $$01834 = 5552;$$09371833 = $954;$$09381832 = $953;$$09431831 = $955;$$09441830 = $$2946$lcssa; + } + } + } + $957 = $$0937$lcssa << 16; + $958 = $957 | $$0938$lcssa; + HEAP32[$892>>2] = $958; + $959 = ($$1961|0)!=(0); + $960 = $6 & 1; + $961 = ($960|0)==(0); + $or$cond1752 = $961 | $959; + if ($or$cond1752) { + $$0951 = $$1961; + STACKTOP = sp;return ($$0951|0); + } else { + $962 = ((($0)) + 16|0); + $963 = HEAP32[$962>>2]|0; + $964 = ($958|0)==($963|0); + $$1961$ = $964 ? $$1961 : -2; + STACKTOP = sp;return ($$1961$|0); + } + return (0)|0; +} +function _LoadTexture($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy1 = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$5 = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx5 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); + $$byval_copy1 = sp + 60|0; + $vararg_buffer = sp + 16|0; + $$sroa$5 = sp; + $2 = sp + 20|0; + $3 = sp + 40|0; + _LoadImage($2,$1); + $4 = HEAP32[$2>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + _TraceLog(2,11773,$vararg_buffer); + $$sroa$0$0 = 0; + } else { + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _LoadTextureFromImage($3,$$byval_copy1); + $$sroa$0$0$copyload = HEAP32[$3>>2]|0; + $$sroa$5$0$$sroa_idx = ((($3)) + 4|0); + ;HEAP32[$$sroa$5>>2]=HEAP32[$$sroa$5$0$$sroa_idx>>2]|0;HEAP32[$$sroa$5+4>>2]=HEAP32[$$sroa$5$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$5+8>>2]=HEAP32[$$sroa$5$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$5+12>>2]=HEAP32[$$sroa$5$0$$sroa_idx+12>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$2+16>>2]|0; + _UnloadImage($$byval_copy1); + $$sroa$0$0 = $$sroa$0$0$copyload; + } + HEAP32[$0>>2] = $$sroa$0$0; + $$sroa$5$0$$sroa_idx5 = ((($0)) + 4|0); + ;HEAP32[$$sroa$5$0$$sroa_idx5>>2]=HEAP32[$$sroa$5>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+4>>2]=HEAP32[$$sroa$5+4>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+8>>2]=HEAP32[$$sroa$5+8>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx5+12>>2]=HEAP32[$$sroa$5+12>>2]|0; + STACKTOP = sp;return; +} +function _GetDefaultFont($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + ;HEAP32[$0>>2]=HEAP32[18568>>2]|0;HEAP32[$0+4>>2]=HEAP32[18568+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[18568+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[18568+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[18568+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[18568+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[18568+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[18568+28>>2]|0; + return; +} +function _GetCharIndex($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$08 = 0, $$09 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 24|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(0); + if (!($4)) { + $$08 = 0; + return ($$08|0); + } + $5 = ((($0)) + 28|0); + $6 = HEAP32[$5>>2]|0; + $$09 = 0; + while(1) { + $7 = (($6) + ($$09<<5)|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)==($1|0); + if ($9) { + $$08 = $$09; + label = 5; + break; + } + $10 = (($$09) + 1)|0; + $11 = HEAP32[$2>>2]|0; + $12 = ($10|0)<($11|0); + if ($12) { + $$09 = $10; + } else { + $$08 = 0; + label = 5; + break; + } + } + if ((label|0) == 5) { + return ($$08|0); + } + return (0)|0; +} +function _DrawTexturePro($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = +$4; + $5 = $5|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0.0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0; + var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0; + var $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; + var $87 = 0.0, $88 = 0, $89 = 0.0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $6 = HEAP32[$0>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + return; + } + $8 = ((($1)) + 8|0); + $9 = HEAP32[$8>>2]|0; + $10 = ($9|0)<(0); + if ($10) { + $11 = HEAP32[$1>>2]|0; + $12 = (($11) - ($9))|0; + HEAP32[$1>>2] = $12; + } + $13 = ((($1)) + 12|0); + $14 = HEAP32[$13>>2]|0; + $15 = ($14|0)<(0); + if ($15) { + $16 = ((($1)) + 4|0); + $17 = HEAP32[$16>>2]|0; + $18 = (($17) - ($14))|0; + HEAP32[$16>>2] = $18; + } + $19 = HEAP32[$0>>2]|0; + _rlEnableTexture($19); + _rlPushMatrix(); + $20 = HEAP32[$2>>2]|0; + $21 = (+($20|0)); + $22 = ((($2)) + 4|0); + $23 = HEAP32[$22>>2]|0; + $24 = (+($23|0)); + _rlTranslatef($21,$24,0.0); + _rlRotatef($4,0.0,0.0,1.0); + $25 = +HEAPF32[$3>>2]; + $26 = -$25; + $27 = ((($3)) + 4|0); + $28 = +HEAPF32[$27>>2]; + $29 = -$28; + _rlTranslatef($26,$29,0.0); + _rlBegin(7); + $30 = HEAP8[$5>>0]|0; + $31 = ((($5)) + 1|0); + $32 = HEAP8[$31>>0]|0; + $33 = ((($5)) + 2|0); + $34 = HEAP8[$33>>0]|0; + $35 = ((($5)) + 3|0); + $36 = HEAP8[$35>>0]|0; + _rlColor4ub($30,$32,$34,$36); + $37 = HEAP32[$1>>2]|0; + $38 = (+($37|0)); + $39 = ((($0)) + 4|0); + $40 = HEAP32[$39>>2]|0; + $41 = (+($40|0)); + $42 = $38 / $41; + $43 = ((($1)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (+($44|0)); + $46 = ((($0)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $45 / $48; + _rlTexCoord2f($42,$49); + _rlVertex2f(0.0,0.0); + $50 = HEAP32[$1>>2]|0; + $51 = (+($50|0)); + $52 = HEAP32[$39>>2]|0; + $53 = (+($52|0)); + $54 = $51 / $53; + $55 = HEAP32[$43>>2]|0; + $56 = HEAP32[$13>>2]|0; + $57 = (($56) + ($55))|0; + $58 = (+($57|0)); + $59 = HEAP32[$46>>2]|0; + $60 = (+($59|0)); + $61 = $58 / $60; + _rlTexCoord2f($54,$61); + $62 = ((($2)) + 12|0); + $63 = HEAP32[$62>>2]|0; + $64 = (+($63|0)); + _rlVertex2f(0.0,$64); + $65 = HEAP32[$1>>2]|0; + $66 = HEAP32[$8>>2]|0; + $67 = (($66) + ($65))|0; + $68 = (+($67|0)); + $69 = HEAP32[$39>>2]|0; + $70 = (+($69|0)); + $71 = $68 / $70; + $72 = HEAP32[$43>>2]|0; + $73 = HEAP32[$13>>2]|0; + $74 = (($73) + ($72))|0; + $75 = (+($74|0)); + $76 = HEAP32[$46>>2]|0; + $77 = (+($76|0)); + $78 = $75 / $77; + _rlTexCoord2f($71,$78); + $79 = ((($2)) + 8|0); + $80 = HEAP32[$79>>2]|0; + $81 = (+($80|0)); + $82 = HEAP32[$62>>2]|0; + $83 = (+($82|0)); + _rlVertex2f($81,$83); + $84 = HEAP32[$1>>2]|0; + $85 = HEAP32[$8>>2]|0; + $86 = (($85) + ($84))|0; + $87 = (+($86|0)); + $88 = HEAP32[$39>>2]|0; + $89 = (+($88|0)); + $90 = $87 / $89; + $91 = HEAP32[$43>>2]|0; + $92 = (+($91|0)); + $93 = HEAP32[$46>>2]|0; + $94 = (+($93|0)); + $95 = $92 / $94; + _rlTexCoord2f($90,$95); + $96 = HEAP32[$79>>2]|0; + $97 = (+($96|0)); + _rlVertex2f($97,0.0); + _rlEnd(); + _rlPopMatrix(); + _rlDisableTexture(); + return; +} +function _DrawText($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy2 = sp + 112|0; + $$byval_copy1 = sp + 104|0; + $$byval_copy = sp + 72|0; + $5 = sp + 32|0; + $6 = sp + 64|0; + $7 = sp; + _GetDefaultFont($5); + $8 = HEAP32[$5>>2]|0; + $9 = ($8|0)==(0); + if ($9) { + STACKTOP = sp;return; + } + $10 = (+($1|0)); + HEAPF32[$6>>2] = $10; + $11 = ((($6)) + 4|0); + $12 = (+($2|0)); + HEAPF32[$11>>2] = $12; + $13 = ($3|0)>(10); + $$ = $13 ? $3 : 10; + $14 = (($$>>>0) / 10)&-1; + _GetDefaultFont($7); + $15 = (+($$|0)); + ;HEAP32[$$byval_copy>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$7+16>>2]|0;HEAP32[$$byval_copy+20>>2]=HEAP32[$7+20>>2]|0;HEAP32[$$byval_copy+24>>2]=HEAP32[$7+24>>2]|0;HEAP32[$$byval_copy+28>>2]=HEAP32[$7+28>>2]|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$6+4>>2]|0; + ;HEAP8[$$byval_copy2>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy2+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy2+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy2+3>>0]=HEAP8[$4+3>>0]|0; + _DrawTextEx($$byval_copy,$0,$$byval_copy1,$15,$14,$$byval_copy2); + STACKTOP = sp;return; +} +function _DrawTextEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$04954 = 0, $$05153 = 0, $$055 = 0, $$1 = 0, $$150 = 0, $$152 = 0, $$2 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $$sink = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; + var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0; + var $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; + var $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $$byval_copy5 = sp + 88|0; + $$byval_copy4 = sp + 80|0; + $$byval_copy3 = sp + 64|0; + $$byval_copy2 = sp + 48|0; + $$byval_copy1 = sp + 24|0; + $6 = sp + 8|0; + $7 = sp; + $8 = (_strlen($1)|0); + $9 = ((($0)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (+($10|0)); + $12 = $3 / $11; + $13 = ($8|0)>(0); + if (!($13)) { + STACKTOP = sp;return; + } + $14 = ((($0)) + 28|0); + $15 = +HEAPF32[$2>>2]; + $16 = ((($6)) + 4|0); + $17 = ((($2)) + 4|0); + $18 = ((($6)) + 8|0); + $19 = ((($6)) + 12|0); + $20 = ((($7)) + 4|0); + $21 = (+($4|0)); + $$04954 = 0;$$05153 = 0;$$055 = 0; + while(1) { + $22 = (($1) + ($$055)|0); + $23 = HEAP8[$22>>0]|0; + switch ($23<<24>>24) { + case 10: { + $24 = HEAP32[$9>>2]|0; + $25 = (($24|0) / 2)&-1; + $26 = (($25) + ($24))|0; + $27 = (+($26|0)); + $28 = $12 * $27; + $29 = (~~(($28))); + $30 = (($29) + ($$05153))|0; + $$150 = 0;$$152 = $30;$$2 = $$055; + break; + } + case -62: { + $31 = (($$055) + 1)|0; + $32 = (($1) + ($31)|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $$1 = $31;$$sink = $34; + label = 9; + break; + } + case -61: { + $35 = (($$055) + 1)|0; + $36 = (($1) + ($35)|0); + $37 = HEAP8[$36>>0]|0; + $38 = $37&255; + $39 = (($38) + 64)|0; + $$1 = $35;$$sink = $39; + label = 9; + break; + } + default: { + $40 = $23 << 24 >> 24; + $$1 = $$055;$$sink = $40; + label = 9; + } + } + do { + if ((label|0) == 9) { + label = 0; + ;HEAP32[$$byval_copy5>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy5+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy5+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy5+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy5+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy5+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy5+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy5+28>>2]=HEAP32[$0+28>>2]|0; + $41 = (_GetCharIndex($$byval_copy5,$$sink)|0); + $42 = HEAP32[$14>>2]|0; + $43 = (((($42) + ($41<<5)|0)) + 4|0); + $44 = (+($$04954|0)); + $45 = $44 + $15; + $46 = (((($42) + ($41<<5)|0)) + 20|0); + $47 = HEAP32[$46>>2]|0; + $48 = (+($47|0)); + $49 = $12 * $48; + $50 = $45 + $49; + $51 = (~~(($50))); + HEAP32[$6>>2] = $51; + $52 = +HEAPF32[$17>>2]; + $53 = (+($$05153|0)); + $54 = $53 + $52; + $55 = (((($42) + ($41<<5)|0)) + 24|0); + $56 = HEAP32[$55>>2]|0; + $57 = (+($56|0)); + $58 = $12 * $57; + $59 = $54 + $58; + $60 = (~~(($59))); + HEAP32[$16>>2] = $60; + $61 = (((($42) + ($41<<5)|0)) + 12|0); + $62 = HEAP32[$61>>2]|0; + $63 = (+($62|0)); + $64 = $12 * $63; + $65 = (~~(($64))); + HEAP32[$18>>2] = $65; + $66 = (((($42) + ($41<<5)|0)) + 16|0); + $67 = HEAP32[$66>>2]|0; + $68 = (+($67|0)); + $69 = $12 * $68; + $70 = (~~(($69))); + HEAP32[$19>>2] = $70; + HEAPF32[$7>>2] = 0.0; + HEAPF32[$20>>2] = 0.0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$43>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$43+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$43+8>>2]|0;HEAP32[$$byval_copy2+12>>2]=HEAP32[$43+12>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$byval_copy3+12>>2]=HEAP32[$6+12>>2]|0; + ;HEAP32[$$byval_copy4>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy4+4>>2]=HEAP32[$7+4>>2]|0; + ;HEAP8[$$byval_copy5>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy5+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy5+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy5+3>>0]=HEAP8[$5+3>>0]|0; + _DrawTexturePro($$byval_copy1,$$byval_copy2,$$byval_copy3,$$byval_copy4,0.0,$$byval_copy5); + $71 = HEAP32[$14>>2]|0; + $72 = (((($71) + ($41<<5)|0)) + 28|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($73|0)==(0); + if ($74) { + $75 = (((($71) + ($41<<5)|0)) + 12|0); + $76 = HEAP32[$75>>2]|0; + $77 = (+($76|0)); + $78 = $12 * $77; + $79 = $21 + $78; + $80 = (~~(($79))); + $81 = (($80) + ($$04954))|0; + $$150 = $81;$$152 = $$05153;$$2 = $$1; + break; + } else { + $82 = (+($73|0)); + $83 = $12 * $82; + $84 = $21 + $83; + $85 = (~~(($84))); + $86 = (($85) + ($$04954))|0; + $$150 = $86;$$152 = $$05153;$$2 = $$1; + break; + } + } + } while(0); + $87 = (($$2) + 1)|0; + $88 = ($87|0)<($8|0); + if ($88) { + $$04954 = $$150;$$05153 = $$152;$$055 = $87; + } else { + break; + } + } + STACKTOP = sp;return; +} +function _FormatText($0,$varargs) { + $0 = $0|0; + $varargs = $varargs|0; + var $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + HEAP32[$1>>2] = $varargs; + (_vsprintf(22655,$0,$1)|0); + STACKTOP = sp;return (22655|0); +} +function _DrawFPS($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$byval_copy = 0, $$sink = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $$byval_copy = sp; + $2 = sp + 4|0; + $3 = HEAP32[5195]|0; + $4 = HEAP32[915]|0; + $5 = ($3|0)<($4|0); + if ($5) { + $6 = (($3) + 1)|0; + $$sink = $6; + } else { + $7 = (_GetFPS()|0); + HEAP32[5196] = $7; + HEAP32[915] = $7; + $$sink = 0; + } + HEAP32[5195] = $$sink; + $8 = HEAP32[5196]|0; + HEAP32[$$byval_copy>>2] = $8; + (_FormatText(11802,$$byval_copy)|0); + HEAP8[$2>>0] = 0; + $9 = ((($2)) + 1|0); + HEAP8[$9>>0] = -98; + $10 = ((($2)) + 2|0); + HEAP8[$10>>0] = 47; + $11 = ((($2)) + 3|0); + HEAP8[$11>>0] = -1; + ;HEAP8[$$byval_copy>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy+3>>0]=HEAP8[$2+3>>0]|0; + _DrawText(22655,$0,$1,20,$$byval_copy); + STACKTOP = sp;return; +} +function _DrawGrid($0,$1) { + $0 = $0|0; + $1 = +$1; + var $$024 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0|0) / 2)&-1; + _rlBegin(1); + $3 = (0 - ($2))|0; + $4 = ($2|0)<($3|0); + if ($4) { + _rlEnd(); + return; + } + $5 = (+($3|0)); + $6 = $5 * $1; + $7 = (+($2|0)); + $8 = $7 * $1; + $$024 = $3; + while(1) { + $9 = ($$024|0)==(0); + if ($9) { + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + _rlColor3f(0.5,0.5,0.5); + } else { + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + _rlColor3f(0.75,0.75,0.75); + } + $10 = (+($$024|0)); + $11 = $10 * $1; + _rlVertex3f($11,0.0,$6); + _rlVertex3f($11,0.0,$8); + _rlVertex3f($6,0.0,$11); + _rlVertex3f($8,0.0,$11); + $12 = (($$024) + 1)|0; + $13 = ($$024|0)<($2|0); + if ($13) { + $$024 = $12; + } else { + break; + } + } + _rlEnd(); + return; +} +function _DrawGizmo($0) { + $0 = $0|0; + var $1 = 0.0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + _rlPushMatrix(); + $1 = +HEAPF32[$0>>2]; + $2 = ((($0)) + 4|0); + $3 = +HEAPF32[$2>>2]; + $4 = ((($0)) + 8|0); + $5 = +HEAPF32[$4>>2]; + _rlTranslatef($1,$3,$5); + _rlScalef(1.0,1.0,1.0); + _rlBegin(1); + _rlColor3f(1.0,0.0,0.0); + _rlVertex3f(0.0,0.0,0.0); + _rlColor3f(1.0,0.0,0.0); + _rlVertex3f(1.0,0.0,0.0); + _rlColor3f(0.0,1.0,0.0); + _rlVertex3f(0.0,0.0,0.0); + _rlColor3f(0.0,1.0,0.0); + _rlVertex3f(0.0,1.0,0.0); + _rlColor3f(0.0,0.0,1.0); + _rlVertex3f(0.0,0.0,0.0); + _rlColor3f(0.0,0.0,1.0); + _rlVertex3f(0.0,0.0,1.0); + _rlEnd(); + _rlPopMatrix(); + return; +} +function _LoadMesh($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $vararg_buffer = sp; + $2 = sp + 72|0; + $3 = sp + 4|0; + dest=$2; stop=dest+68|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $4 = (_IsFileExtension($1,11810)|0); + $5 = ($4|0)==(0); + if (!($5)) { + _LoadOBJ($3,$1); + dest=$2; src=$3; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + } + $6 = HEAP32[$2>>2]|0; + $7 = ($6|0)==(0); + if ($7) { + _TraceLog(2,11815,$vararg_buffer); + } else { + _rlglLoadMesh($2,0); + } + dest=$0; src=$2; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadOBJ($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$ph374433 = 0, $$0$ph377422 = 0, $$0$ph379$lcssa386 = 0, $$0$ph379412 = 0, $$0$ph445 = 0, $$0344$ph373432 = 0, $$0344$ph376$lcssa388 = 0, $$0344$ph376421 = 0, $$0344$ph444 = 0, $$0345$ph372$lcssa389 = 0, $$0345$ph372431 = 0, $$0345$ph443 = 0, $$0346$ph$lcssa = 0, $$0346$ph442 = 0, $$0347392 = 0, $$0348391 = 0, $$0350$ph = 0, $$0350$ph$ph = 0, $$0351$ph$ph = 0, $$0352$ph = 0; + var $$0352$ph$ph = 0, $$0353$ph365399 = 0, $$0353$ph367397 = 0, $$0353$ph402 = 0, $$0354$ph364398 = 0, $$0354$ph401 = 0, $$0355$ph400 = 0, $$0356 = 0, $$0357 = 0, $$1 = 0, $$byval_copy102 = 0, $$byval_copy103 = 0, $$sroa$12$0$$sroa_idx244 = 0, $$sroa$12247$0$$sroa_idx249 = 0, $$sroa$31$0$$sroa_idx270 = 0, $$sroa$45$0$$sroa_idx286 = 0, $$sroa$45289$0$$sroa_idx291 = 0, $$sroa$64$0 = 0, $$sroa$64$0$$sroa_idx312 = 0, $$sroa$74$0$$sroa_idx324 = 0; + var $$sroa$75 = 0, $$sroa$75$0$$sroa_idx = 0, $$sroa$75$0$$sroa_idx328 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; + var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; + var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; + var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; + var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0; + var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0; + var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0; + var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0.0, $238 = 0.0, $239 = 0, $24 = 0, $240 = 0; + var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0.0; + var $26 = 0, $260 = 0.0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0; + var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0; + var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0.0, $312 = 0; + var $313 = 0, $314 = 0.0, $315 = 0, $316 = 0, $317 = 0.0, $318 = 0, $319 = 0, $32 = 0, $320 = 0.0, $321 = 0, $322 = 0, $323 = 0.0, $324 = 0, $325 = 0, $326 = 0.0, $327 = 0.0, $328 = 0.0, $329 = 0.0, $33 = 0, $330 = 0.0; + var $331 = 0.0, $332 = 0.0, $333 = 0.0, $334 = 0.0, $335 = 0.0, $336 = 0.0, $337 = 0.0, $338 = 0.0, $339 = 0.0, $34 = 0, $340 = 0.0, $341 = 0.0, $342 = 0.0, $343 = 0.0, $344 = 0.0, $345 = 0.0, $346 = 0.0, $347 = 0, $348 = 0, $349 = 0; + var $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0; + var $368 = 0, $369 = 0, $37 = 0, $370 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer23 = 0, $vararg_buffer26 = 0, $vararg_buffer29 = 0, $vararg_buffer33 = 0, $vararg_buffer36 = 0; + var $vararg_buffer4 = 0, $vararg_buffer41 = 0, $vararg_buffer44 = 0, $vararg_buffer49 = 0, $vararg_buffer52 = 0, $vararg_buffer55 = 0, $vararg_buffer58 = 0, $vararg_buffer63 = 0, $vararg_buffer7 = 0, $vararg_buffer71 = 0, $vararg_buffer79 = 0, $vararg_buffer90 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0, $vararg_ptr18 = 0, $vararg_ptr22 = 0, $vararg_ptr32 = 0, $vararg_ptr39 = 0, $vararg_ptr40 = 0, $vararg_ptr47 = 0; + var $vararg_ptr48 = 0, $vararg_ptr61 = 0, $vararg_ptr62 = 0, $vararg_ptr66 = 0, $vararg_ptr67 = 0, $vararg_ptr68 = 0, $vararg_ptr69 = 0, $vararg_ptr70 = 0, $vararg_ptr74 = 0, $vararg_ptr75 = 0, $vararg_ptr76 = 0, $vararg_ptr77 = 0, $vararg_ptr78 = 0, $vararg_ptr82 = 0, $vararg_ptr83 = 0, $vararg_ptr84 = 0, $vararg_ptr85 = 0, $vararg_ptr86 = 0, $vararg_ptr87 = 0, $vararg_ptr88 = 0; + var $vararg_ptr89 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 672|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(672|0); + $$byval_copy103 = sp + 320|0; + $$byval_copy102 = sp + 304|0; + $vararg_buffer90 = sp + 296|0; + $vararg_buffer79 = sp + 256|0; + $vararg_buffer71 = sp + 232|0; + $vararg_buffer63 = sp + 208|0; + $vararg_buffer58 = sp + 192|0; + $vararg_buffer55 = sp + 184|0; + $vararg_buffer52 = sp + 176|0; + $vararg_buffer49 = sp + 168|0; + $vararg_buffer44 = sp + 152|0; + $vararg_buffer41 = sp + 144|0; + $vararg_buffer36 = sp + 128|0; + $vararg_buffer33 = sp + 120|0; + $vararg_buffer29 = sp + 112|0; + $vararg_buffer26 = sp + 104|0; + $vararg_buffer23 = sp + 96|0; + $vararg_buffer11 = sp + 80|0; + $vararg_buffer7 = sp + 64|0; + $vararg_buffer4 = sp + 56|0; + $vararg_buffer1 = sp + 48|0; + $vararg_buffer = sp + 40|0; + $$sroa$75 = sp; + $2 = sp + 664|0; + $3 = sp + 464|0; + $4 = sp + 428|0; + $5 = sp + 416|0; + $6 = sp + 452|0; + $7 = sp + 440|0; + $8 = sp + 404|0; + $9 = sp + 392|0; + $10 = sp + 380|0; + $11 = sp + 368|0; + $12 = sp + 356|0; + $13 = sp + 344|0; + $14 = sp + 332|0; + dest=$$sroa$75; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $15 = (_fopen($1,11840)|0); + $16 = ($15|0)==(0|0); + if ($16) { + HEAP32[$vararg_buffer>>2] = $1; + _TraceLog(2,11843,$vararg_buffer); + $$sroa$75$0$$sroa_idx = ((($0)) + 32|0); + ;HEAP32[$0>>2]=0|0;HEAP32[$0+4>>2]=0|0;HEAP32[$0+8>>2]=0|0;HEAP32[$0+12>>2]=0|0;HEAP32[$0+16>>2]=0|0;HEAP32[$0+20>>2]=0|0;HEAP32[$0+24>>2]=0|0;HEAP32[$0+28>>2]=0|0; + dest=$$sroa$75$0$$sroa_idx; src=$$sroa$75; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; + } + $17 = (_feof($15)|0); + $18 = ($17|0)==(0); + L5: do { + if ($18) { + $$0$ph445 = 0;$$0344$ph444 = 0;$$0345$ph443 = 0;$$0346$ph442 = 0; + while(1) { + $$0$ph374433 = $$0$ph445;$$0344$ph373432 = $$0344$ph444;$$0345$ph372431 = $$0345$ph443; + L8: while(1) { + $$0$ph377422 = $$0$ph374433;$$0344$ph376421 = $$0344$ph373432; + L10: while(1) { + $$0$ph379412 = $$0$ph377422; + L12: while(1) { + L14: while(1) { + HEAP32[$vararg_buffer1>>2] = $2; + (_fscanf($15,11877,$vararg_buffer1)|0); + $19 = HEAP8[$2>>0]|0; + $20 = $19 << 24 >> 24; + switch ($20|0) { + case 102: { + break L8; + break; + } + case 118: { + break L14; + break; + } + case 117: case 109: case 115: case 103: case 111: case 35: { + (_fgets($3,200,$15)|0); + break; + } + default: { + } + } + $21 = (_feof($15)|0); + $22 = ($21|0)==(0); + if (!($22)) { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + HEAP32[$vararg_buffer4>>2] = $2; + (_fscanf($15,11877,$vararg_buffer4)|0); + $23 = HEAP8[$2>>0]|0; + switch ($23<<24>>24) { + case 116: { + break L10; + break; + } + case 110: { + break L12; + break; + } + default: { + } + } + $30 = (($$0$ph379412) + 1)|0; + (_fgets($3,200,$15)|0); + $31 = (_feof($15)|0); + $32 = ($31|0)==(0); + if ($32) { + $$0$ph379412 = $30; + } else { + $$0$ph379$lcssa386 = $30;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + $27 = (($$0344$ph376421) + 1)|0; + (_fgets($3,200,$15)|0); + $28 = (_feof($15)|0); + $29 = ($28|0)==(0); + if ($29) { + $$0$ph377422 = $$0$ph379412;$$0344$ph376421 = $27; + } else { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $27;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + $24 = (($$0345$ph372431) + 1)|0; + (_fgets($3,200,$15)|0); + $25 = (_feof($15)|0); + $26 = ($25|0)==(0); + if ($26) { + $$0$ph374433 = $$0$ph379412;$$0344$ph373432 = $$0344$ph376421;$$0345$ph372431 = $24; + } else { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $24;$$0346$ph$lcssa = $$0346$ph442; + break L5; + } + } + $33 = (($$0346$ph442) + 1)|0; + (_fgets($3,200,$15)|0); + $34 = (_feof($15)|0); + $35 = ($34|0)==(0); + if ($35) { + $$0$ph445 = $$0$ph379412;$$0344$ph444 = $$0344$ph376421;$$0345$ph443 = $$0345$ph372431;$$0346$ph442 = $33; + } else { + $$0$ph379$lcssa386 = $$0$ph379412;$$0344$ph376$lcssa388 = $$0344$ph376421;$$0345$ph372$lcssa389 = $$0345$ph372431;$$0346$ph$lcssa = $33; + break; + } + } + } else { + $$0$ph379$lcssa386 = 0;$$0344$ph376$lcssa388 = 0;$$0345$ph372$lcssa389 = 0;$$0346$ph$lcssa = 0; + } + } while(0); + HEAP32[$vararg_buffer7>>2] = $1; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = $$0$ph379$lcssa386; + _TraceLog(3,11880,$vararg_buffer7); + HEAP32[$vararg_buffer11>>2] = $1; + $vararg_ptr14 = ((($vararg_buffer11)) + 4|0); + HEAP32[$vararg_ptr14>>2] = $$0345$ph372$lcssa389; + _TraceLog(3,11908,$vararg_buffer11); + HEAP32[$$byval_copy102>>2] = $1; + $vararg_ptr18 = ((($$byval_copy102)) + 4|0); + HEAP32[$vararg_ptr18>>2] = $$0344$ph376$lcssa388; + _TraceLog(3,11937,$$byval_copy102); + HEAP32[$$byval_copy103>>2] = $1; + $vararg_ptr22 = ((($$byval_copy103)) + 4|0); + HEAP32[$vararg_ptr22>>2] = $$0346$ph$lcssa; + _TraceLog(3,11964,$$byval_copy103); + $36 = ($$0$ph379$lcssa386*12)|0; + $37 = (_malloc($36)|0); + $38 = ($$0344$ph376$lcssa388|0)>(0); + if ($38) { + $39 = ($$0344$ph376$lcssa388*12)|0; + $40 = (_malloc($39)|0); + $$0357 = $40;$369 = $40; + } else { + $$0357 = 0;$369 = 0; + } + $41 = ($$0345$ph372$lcssa389|0)>(0); + if ($41) { + $42 = $$0345$ph372$lcssa389 << 3; + $43 = (_malloc($42)|0); + $$0356 = $43;$370 = $43; + } else { + $$0356 = 0;$370 = 0; + } + _rewind($15); + $44 = (_feof($15)|0); + $45 = ($44|0)==(0); + L31: do { + if ($45) { + $$0353$ph402 = 0;$$0354$ph401 = 0;$$0355$ph400 = 0; + while(1) { + $$0353$ph365399 = $$0353$ph402;$$0354$ph364398 = $$0354$ph401; + L34: while(1) { + $$0353$ph367397 = $$0353$ph365399; + L36: while(1) { + L38: while(1) { + HEAP32[$vararg_buffer23>>2] = $2; + (_fscanf($15,11877,$vararg_buffer23)|0); + $46 = HEAP8[$2>>0]|0; + $47 = $46 << 24 >> 24; + switch ($47|0) { + case 118: { + break L38; + break; + } + case 102: case 117: case 109: case 115: case 103: case 111: case 35: { + (_fgets($3,200,$15)|0); + break; + } + default: { + } + } + $48 = (_feof($15)|0); + $49 = ($48|0)==(0); + if (!($49)) { + break L31; + } + } + HEAP32[$vararg_buffer26>>2] = $2; + (_fscanf($15,11877,$vararg_buffer26)|0); + $50 = HEAP8[$2>>0]|0; + switch ($50<<24>>24) { + case 110: { + break L36; + break; + } + case 116: { + break; + } + default: { + break L34; + } + } + $51 = (($$0356) + ($$0353$ph367397<<3)|0); + $52 = (((($$0356) + ($$0353$ph367397<<3)|0)) + 4|0); + HEAP32[$vararg_buffer29>>2] = $51; + $vararg_ptr32 = ((($vararg_buffer29)) + 4|0); + HEAP32[$vararg_ptr32>>2] = $52; + (_fscanf($15,11993,$vararg_buffer29)|0); + $53 = (($$0353$ph367397) + 1)|0; + HEAP32[$vararg_buffer33>>2] = $2; + (_fscanf($15,11877,$vararg_buffer33)|0); + $54 = (_feof($15)|0); + $55 = ($54|0)==(0); + if ($55) { + $$0353$ph367397 = $53; + } else { + break L31; + } + } + $56 = (($$0357) + (($$0354$ph364398*12)|0)|0); + $57 = (((($$0357) + (($$0354$ph364398*12)|0)|0)) + 4|0); + $58 = (((($$0357) + (($$0354$ph364398*12)|0)|0)) + 8|0); + HEAP32[$vararg_buffer36>>2] = $56; + $vararg_ptr39 = ((($vararg_buffer36)) + 4|0); + HEAP32[$vararg_ptr39>>2] = $57; + $vararg_ptr40 = ((($vararg_buffer36)) + 8|0); + HEAP32[$vararg_ptr40>>2] = $58; + (_fscanf($15,12007,$vararg_buffer36)|0); + $59 = (($$0354$ph364398) + 1)|0; + HEAP32[$vararg_buffer41>>2] = $2; + (_fscanf($15,11877,$vararg_buffer41)|0); + $60 = (_feof($15)|0); + $61 = ($60|0)==(0); + if ($61) { + $$0353$ph365399 = $$0353$ph367397;$$0354$ph364398 = $59; + } else { + break L31; + } + } + $62 = (($37) + (($$0355$ph400*12)|0)|0); + $63 = (((($37) + (($$0355$ph400*12)|0)|0)) + 4|0); + $64 = (((($37) + (($$0355$ph400*12)|0)|0)) + 8|0); + HEAP32[$vararg_buffer44>>2] = $62; + $vararg_ptr47 = ((($vararg_buffer44)) + 4|0); + HEAP32[$vararg_ptr47>>2] = $63; + $vararg_ptr48 = ((($vararg_buffer44)) + 8|0); + HEAP32[$vararg_ptr48>>2] = $64; + (_fscanf($15,12007,$vararg_buffer44)|0); + $65 = (($$0355$ph400) + 1)|0; + HEAP32[$vararg_buffer49>>2] = $2; + (_fscanf($15,11877,$vararg_buffer49)|0); + $66 = (_feof($15)|0); + $67 = ($66|0)==(0); + if ($67) { + $$0353$ph402 = $$0353$ph367397;$$0354$ph401 = $$0354$ph364398;$$0355$ph400 = $65; + } else { + break; + } + } + } + } while(0); + $68 = ($$0346$ph$lcssa*3)|0; + $69 = ($$0346$ph$lcssa*9)|0; + $70 = ($$0346$ph$lcssa*36)|0; + $71 = (_malloc($70)|0); + $72 = ($$0346$ph$lcssa*6)|0; + $73 = ($$0346$ph$lcssa*24)|0; + $74 = (_malloc($73)|0); + $75 = (_malloc($70)|0); + _rewind($15); + $76 = ($$0344$ph376$lcssa388|0)==(0); + if ($76) { + HEAP32[$vararg_buffer52>>2] = $1; + _TraceLog(0,12016,$vararg_buffer52); + } + $77 = ($$0345$ph372$lcssa389|0)==(0); + $78 = $$0344$ph376$lcssa388 | $$0345$ph372$lcssa389; + $79 = ($78|0)==(0); + $80 = ((($vararg_buffer11)) + 4|0); + $81 = ((($vararg_buffer11)) + 8|0); + $82 = ((($vararg_buffer11)) + 4|0); + $83 = ((($vararg_buffer11)) + 8|0); + $84 = ((($4)) + 4|0); + $85 = ((($4)) + 8|0); + $86 = ((($5)) + 4|0); + $87 = ((($5)) + 8|0); + $88 = ((($vararg_buffer11)) + 4|0); + $89 = ((($vararg_buffer7)) + 4|0); + $90 = ((($vararg_buffer11)) + 8|0); + $91 = ((($vararg_buffer7)) + 8|0); + $92 = ((($vararg_buffer11)) + 4|0); + $93 = ((($4)) + 4|0); + $94 = ((($vararg_buffer11)) + 8|0); + $95 = ((($4)) + 8|0); + $96 = ((($vararg_buffer11)) + 4|0); + $97 = ((($vararg_buffer7)) + 4|0); + $98 = ((($4)) + 4|0); + $99 = ((($vararg_buffer11)) + 8|0); + $100 = ((($vararg_buffer7)) + 8|0); + $101 = ((($4)) + 8|0); + $102 = ((($vararg_buffer7)) + 4|0); + $103 = ((($vararg_buffer7)) + 8|0); + $$0350$ph$ph = 0;$$0351$ph$ph = 0;$$0352$ph$ph = 0; + L51: while(1) { + $$0350$ph = $$0350$ph$ph;$$0352$ph = $$0352$ph$ph; + while(1) { + $104 = (_feof($15)|0); + $105 = ($104|0)==(0); + if (!($105)) { + break L51; + } + L55: while(1) { + HEAP32[$vararg_buffer55>>2] = $2; + (_fscanf($15,11877,$vararg_buffer55)|0); + $106 = HEAP8[$2>>0]|0; + $107 = $106 << 24 >> 24; + switch ($107|0) { + case 102: { + break L55; + break; + } + case 118: case 117: case 109: case 115: case 103: case 111: case 35: { + (_fgets($3,200,$15)|0); + break; + } + default: { + } + } + $108 = (_feof($15)|0); + $109 = ($108|0)==(0); + if (!($109)) { + break L51; + } + } + do { + if ($79) { + HEAP32[$vararg_buffer58>>2] = $vararg_buffer11; + $vararg_ptr61 = ((($vararg_buffer58)) + 4|0); + HEAP32[$vararg_ptr61>>2] = $80; + $vararg_ptr62 = ((($vararg_buffer58)) + 8|0); + HEAP32[$vararg_ptr62>>2] = $81; + (_fscanf($15,12087,$vararg_buffer58)|0); + } else { + if ($76) { + HEAP32[$vararg_buffer63>>2] = $vararg_buffer11; + $vararg_ptr66 = ((($vararg_buffer63)) + 4|0); + HEAP32[$vararg_ptr66>>2] = $vararg_buffer7; + $vararg_ptr67 = ((($vararg_buffer63)) + 8|0); + HEAP32[$vararg_ptr67>>2] = $88; + $vararg_ptr68 = ((($vararg_buffer63)) + 12|0); + HEAP32[$vararg_ptr68>>2] = $89; + $vararg_ptr69 = ((($vararg_buffer63)) + 16|0); + HEAP32[$vararg_ptr69>>2] = $90; + $vararg_ptr70 = ((($vararg_buffer63)) + 20|0); + HEAP32[$vararg_ptr70>>2] = $91; + (_fscanf($15,12096,$vararg_buffer63)|0); + break; + } + if ($77) { + HEAP32[$vararg_buffer71>>2] = $vararg_buffer11; + $vararg_ptr74 = ((($vararg_buffer71)) + 4|0); + HEAP32[$vararg_ptr74>>2] = $4; + $vararg_ptr75 = ((($vararg_buffer71)) + 8|0); + HEAP32[$vararg_ptr75>>2] = $92; + $vararg_ptr76 = ((($vararg_buffer71)) + 12|0); + HEAP32[$vararg_ptr76>>2] = $93; + $vararg_ptr77 = ((($vararg_buffer71)) + 16|0); + HEAP32[$vararg_ptr77>>2] = $94; + $vararg_ptr78 = ((($vararg_buffer71)) + 20|0); + HEAP32[$vararg_ptr78>>2] = $95; + (_fscanf($15,12114,$vararg_buffer71)|0); + break; + } else { + HEAP32[$vararg_buffer79>>2] = $vararg_buffer11; + $vararg_ptr82 = ((($vararg_buffer79)) + 4|0); + HEAP32[$vararg_ptr82>>2] = $vararg_buffer7; + $vararg_ptr83 = ((($vararg_buffer79)) + 8|0); + HEAP32[$vararg_ptr83>>2] = $4; + $vararg_ptr84 = ((($vararg_buffer79)) + 12|0); + HEAP32[$vararg_ptr84>>2] = $96; + $vararg_ptr85 = ((($vararg_buffer79)) + 16|0); + HEAP32[$vararg_ptr85>>2] = $97; + $vararg_ptr86 = ((($vararg_buffer79)) + 20|0); + HEAP32[$vararg_ptr86>>2] = $98; + $vararg_ptr87 = ((($vararg_buffer79)) + 24|0); + HEAP32[$vararg_ptr87>>2] = $99; + $vararg_ptr88 = ((($vararg_buffer79)) + 28|0); + HEAP32[$vararg_ptr88>>2] = $100; + $vararg_ptr89 = ((($vararg_buffer79)) + 32|0); + HEAP32[$vararg_ptr89>>2] = $101; + (_fscanf($15,12135,$vararg_buffer79)|0); + break; + } + } + } while(0); + $110 = HEAP32[$vararg_buffer11>>2]|0; + $111 = (($110) + -1)|0; + $112 = (($37) + (($111*12)|0)|0); + $113 = HEAP32[$112>>2]|0; + $114 = (($71) + ($$0352$ph<<2)|0); + HEAP32[$114>>2] = $113; + $115 = (((($37) + (($111*12)|0)|0)) + 4|0); + $116 = HEAP32[$115>>2]|0; + $117 = (($$0352$ph) + 1)|0; + $118 = (($71) + ($117<<2)|0); + HEAP32[$118>>2] = $116; + $119 = (((($37) + (($111*12)|0)|0)) + 8|0); + $120 = HEAP32[$119>>2]|0; + $121 = (($$0352$ph) + 2)|0; + $122 = (($71) + ($121<<2)|0); + HEAP32[$122>>2] = $120; + $123 = (($$0352$ph) + 3)|0; + $124 = HEAP32[$82>>2]|0; + $125 = (($124) + -1)|0; + $126 = (($37) + (($125*12)|0)|0); + $127 = HEAP32[$126>>2]|0; + $128 = (($71) + ($123<<2)|0); + HEAP32[$128>>2] = $127; + $129 = (((($37) + (($125*12)|0)|0)) + 4|0); + $130 = HEAP32[$129>>2]|0; + $131 = (($$0352$ph) + 4)|0; + $132 = (($71) + ($131<<2)|0); + HEAP32[$132>>2] = $130; + $133 = (((($37) + (($125*12)|0)|0)) + 8|0); + $134 = HEAP32[$133>>2]|0; + $135 = (($$0352$ph) + 5)|0; + $136 = (($71) + ($135<<2)|0); + HEAP32[$136>>2] = $134; + $137 = (($$0352$ph) + 6)|0; + $138 = HEAP32[$83>>2]|0; + $139 = (($138) + -1)|0; + $140 = (($37) + (($139*12)|0)|0); + $141 = HEAP32[$140>>2]|0; + $142 = (($71) + ($137<<2)|0); + HEAP32[$142>>2] = $141; + $143 = (((($37) + (($139*12)|0)|0)) + 4|0); + $144 = HEAP32[$143>>2]|0; + $145 = (($$0352$ph) + 7)|0; + $146 = (($71) + ($145<<2)|0); + HEAP32[$146>>2] = $144; + $147 = (((($37) + (($139*12)|0)|0)) + 8|0); + $148 = HEAP32[$147>>2]|0; + $149 = (($$0352$ph) + 8)|0; + $150 = (($71) + ($149<<2)|0); + HEAP32[$150>>2] = $148; + $151 = (($$0352$ph) + 9)|0; + if ($38) { + $152 = HEAP32[$4>>2]|0; + $153 = (($152) + -1)|0; + $154 = (($$0357) + (($153*12)|0)|0); + $155 = HEAP32[$154>>2]|0; + $156 = (($75) + ($$0350$ph<<2)|0); + HEAP32[$156>>2] = $155; + $157 = (((($$0357) + (($153*12)|0)|0)) + 4|0); + $158 = HEAP32[$157>>2]|0; + $159 = (($$0350$ph) + 1)|0; + $160 = (($75) + ($159<<2)|0); + HEAP32[$160>>2] = $158; + $161 = (((($$0357) + (($153*12)|0)|0)) + 8|0); + $162 = HEAP32[$161>>2]|0; + $163 = (($$0350$ph) + 2)|0; + $164 = (($75) + ($163<<2)|0); + HEAP32[$164>>2] = $162; + $165 = (($$0350$ph) + 3)|0; + $166 = HEAP32[$84>>2]|0; + $167 = (($166) + -1)|0; + $168 = (($$0357) + (($167*12)|0)|0); + $169 = HEAP32[$168>>2]|0; + $170 = (($75) + ($165<<2)|0); + HEAP32[$170>>2] = $169; + $171 = (((($$0357) + (($167*12)|0)|0)) + 4|0); + $172 = HEAP32[$171>>2]|0; + $173 = (($$0350$ph) + 4)|0; + $174 = (($75) + ($173<<2)|0); + HEAP32[$174>>2] = $172; + $175 = (((($$0357) + (($167*12)|0)|0)) + 8|0); + $176 = HEAP32[$175>>2]|0; + $177 = (($$0350$ph) + 5)|0; + $178 = (($75) + ($177<<2)|0); + HEAP32[$178>>2] = $176; + $179 = (($$0350$ph) + 6)|0; + $180 = HEAP32[$85>>2]|0; + $181 = (($180) + -1)|0; + $182 = (($$0357) + (($181*12)|0)|0); + $183 = HEAP32[$182>>2]|0; + $184 = (($75) + ($179<<2)|0); + HEAP32[$184>>2] = $183; + $185 = (((($$0357) + (($181*12)|0)|0)) + 4|0); + $186 = HEAP32[$185>>2]|0; + $187 = (($$0350$ph) + 7)|0; + $188 = (($75) + ($187<<2)|0); + HEAP32[$188>>2] = $186; + $189 = (((($$0357) + (($181*12)|0)|0)) + 8|0); + $190 = HEAP32[$189>>2]|0; + $191 = (($$0350$ph) + 8)|0; + $192 = (($75) + ($191<<2)|0); + HEAP32[$192>>2] = $190; + } else { + $193 = HEAP32[$82>>2]|0; + $194 = (($193) + -1)|0; + $195 = (($37) + (($194*12)|0)|0); + $196 = HEAP32[$vararg_buffer11>>2]|0; + $197 = (($196) + -1)|0; + $198 = (($37) + (($197*12)|0)|0); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$195>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$195+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$195+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$198>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$198+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$198+8>>2]|0; + _VectorSubtract($6,$$byval_copy102,$$byval_copy103); + $199 = HEAP32[$83>>2]|0; + $200 = (($199) + -1)|0; + $201 = (($37) + (($200*12)|0)|0); + $202 = HEAP32[$vararg_buffer11>>2]|0; + $203 = (($202) + -1)|0; + $204 = (($37) + (($203*12)|0)|0); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$201>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$201+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$201+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$204>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$204+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$204+8>>2]|0; + _VectorSubtract($7,$$byval_copy102,$$byval_copy103); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$6>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$6+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$7+8>>2]|0; + _VectorCrossProduct($5,$$byval_copy102,$$byval_copy103); + _VectorNormalize($5); + $205 = HEAP32[$5>>2]|0; + $206 = (($75) + ($$0350$ph<<2)|0); + HEAP32[$206>>2] = $205; + $207 = HEAP32[$86>>2]|0; + $208 = (($$0350$ph) + 1)|0; + $209 = (($75) + ($208<<2)|0); + HEAP32[$209>>2] = $207; + $210 = HEAP32[$87>>2]|0; + $211 = (($$0350$ph) + 2)|0; + $212 = (($75) + ($211<<2)|0); + HEAP32[$212>>2] = $210; + $213 = (($$0350$ph) + 3)|0; + $214 = HEAP32[$5>>2]|0; + $215 = (($75) + ($213<<2)|0); + HEAP32[$215>>2] = $214; + $216 = HEAP32[$86>>2]|0; + $217 = (($$0350$ph) + 4)|0; + $218 = (($75) + ($217<<2)|0); + HEAP32[$218>>2] = $216; + $219 = HEAP32[$87>>2]|0; + $220 = (($$0350$ph) + 5)|0; + $221 = (($75) + ($220<<2)|0); + HEAP32[$221>>2] = $219; + $222 = (($$0350$ph) + 6)|0; + $223 = HEAP32[$5>>2]|0; + $224 = (($75) + ($222<<2)|0); + HEAP32[$224>>2] = $223; + $225 = HEAP32[$86>>2]|0; + $226 = (($$0350$ph) + 7)|0; + $227 = (($75) + ($226<<2)|0); + HEAP32[$227>>2] = $225; + $228 = HEAP32[$87>>2]|0; + $229 = (($$0350$ph) + 8)|0; + $230 = (($75) + ($229<<2)|0); + HEAP32[$230>>2] = $228; + } + $$1 = (($$0350$ph) + 9)|0; + if ($41) { + break; + } else { + $$0350$ph = $$1;$$0352$ph = $151; + } + } + $231 = HEAP32[$vararg_buffer7>>2]|0; + $232 = (($231) + -1)|0; + $233 = (($$0356) + ($232<<3)|0); + $234 = HEAP32[$233>>2]|0; + $235 = (($74) + ($$0351$ph$ph<<2)|0); + HEAP32[$235>>2] = $234; + $236 = (((($$0356) + ($232<<3)|0)) + 4|0); + $237 = +HEAPF32[$236>>2]; + $238 = 1.0 - $237; + $239 = $$0351$ph$ph | 1; + $240 = (($74) + ($239<<2)|0); + HEAPF32[$240>>2] = $238; + $241 = (($$0351$ph$ph) + 2)|0; + $242 = HEAP32[$102>>2]|0; + $243 = (($242) + -1)|0; + $244 = (($$0356) + ($243<<3)|0); + $245 = HEAP32[$244>>2]|0; + $246 = (($74) + ($241<<2)|0); + HEAP32[$246>>2] = $245; + $247 = (((($$0356) + ($243<<3)|0)) + 4|0); + $248 = +HEAPF32[$247>>2]; + $249 = 1.0 - $248; + $250 = (($$0351$ph$ph) + 3)|0; + $251 = (($74) + ($250<<2)|0); + HEAPF32[$251>>2] = $249; + $252 = (($$0351$ph$ph) + 4)|0; + $253 = HEAP32[$103>>2]|0; + $254 = (($253) + -1)|0; + $255 = (($$0356) + ($254<<3)|0); + $256 = HEAP32[$255>>2]|0; + $257 = (($74) + ($252<<2)|0); + HEAP32[$257>>2] = $256; + $258 = (((($$0356) + ($254<<3)|0)) + 4|0); + $259 = +HEAPF32[$258>>2]; + $260 = 1.0 - $259; + $261 = (($$0351$ph$ph) + 5)|0; + $262 = (($74) + ($261<<2)|0); + HEAPF32[$262>>2] = $260; + $263 = (($$0351$ph$ph) + 6)|0; + $$0350$ph$ph = $$1;$$0351$ph$ph = $263;$$0352$ph$ph = $151; + } + (_fclose($15)|0); + $264 = ($$0345$ph372$lcssa389|0)==(0); + if ($264) { + $265 = ($72|0)>(0); + if ($265) { + $368 = ($$0346$ph$lcssa*24)|0; + _memset(($74|0),0,($368|0))|0; + $$sroa$64$0 = 0; + } else { + $$sroa$64$0 = 0; + } + } else { + $266 = (_malloc($70)|0); + $267 = ($69|0)>(0); + if ($267) { + $268 = ((($5)) + 4|0); + $269 = ((($5)) + 8|0); + $270 = ((($8)) + 4|0); + $271 = ((($8)) + 8|0); + $272 = ((($9)) + 4|0); + $273 = ((($9)) + 8|0); + $274 = ((($12)) + 4|0); + $275 = ((($10)) + 4|0); + $276 = ((($12)) + 8|0); + $277 = ((($10)) + 8|0); + $278 = ((($13)) + 4|0); + $279 = ((($11)) + 4|0); + $280 = ((($13)) + 8|0); + $281 = ((($11)) + 8|0); + $282 = ((($14)) + 4|0); + $283 = ((($14)) + 8|0); + $$0347392 = 0;$$0348391 = 0; + while(1) { + $284 = (($71) + ($$0348391<<2)|0); + $285 = HEAP32[$284>>2]|0; + HEAP32[$5>>2] = $285; + $286 = (($$0348391) + 1)|0; + $287 = (($71) + ($286<<2)|0); + $288 = HEAP32[$287>>2]|0; + HEAP32[$268>>2] = $288; + $289 = (($$0348391) + 2)|0; + $290 = (($71) + ($289<<2)|0); + $291 = HEAP32[$290>>2]|0; + HEAP32[$269>>2] = $291; + $292 = (($$0348391) + 3)|0; + $293 = (($71) + ($292<<2)|0); + $294 = HEAP32[$293>>2]|0; + HEAP32[$8>>2] = $294; + $295 = (($$0348391) + 4)|0; + $296 = (($71) + ($295<<2)|0); + $297 = HEAP32[$296>>2]|0; + HEAP32[$270>>2] = $297; + $298 = (($$0348391) + 5)|0; + $299 = (($71) + ($298<<2)|0); + $300 = HEAP32[$299>>2]|0; + HEAP32[$271>>2] = $300; + $301 = (($$0348391) + 6)|0; + $302 = (($71) + ($301<<2)|0); + $303 = HEAP32[$302>>2]|0; + HEAP32[$9>>2] = $303; + $304 = (($$0348391) + 7)|0; + $305 = (($71) + ($304<<2)|0); + $306 = HEAP32[$305>>2]|0; + HEAP32[$272>>2] = $306; + $307 = (($$0348391) + 8)|0; + $308 = (($71) + ($307<<2)|0); + $309 = HEAP32[$308>>2]|0; + HEAP32[$273>>2] = $309; + $310 = (($74) + ($$0347392<<2)|0); + $311 = +HEAPF32[$310>>2]; + $312 = $$0347392 | 1; + $313 = (($74) + ($312<<2)|0); + $314 = +HEAPF32[$313>>2]; + $315 = (($$0347392) + 2)|0; + $316 = (($74) + ($315<<2)|0); + $317 = +HEAPF32[$316>>2]; + $318 = (($$0347392) + 3)|0; + $319 = (($74) + ($318<<2)|0); + $320 = +HEAPF32[$319>>2]; + $321 = (($$0347392) + 4)|0; + $322 = (($74) + ($321<<2)|0); + $323 = +HEAPF32[$322>>2]; + $324 = (($$0347392) + 5)|0; + $325 = (($74) + ($324<<2)|0); + $326 = +HEAPF32[$325>>2]; + ;HEAP32[$$byval_copy102>>2]=HEAP32[$8>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$8+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$5+8>>2]|0; + _VectorSubtract($10,$$byval_copy102,$$byval_copy103); + ;HEAP32[$$byval_copy102>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$9+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$5+8>>2]|0; + _VectorSubtract($11,$$byval_copy102,$$byval_copy103); + $327 = $317 - $311; + $328 = $320 - $314; + $329 = $323 - $311; + $330 = $326 - $314; + $331 = $327 * $330; + $332 = $328 * $329; + $333 = $331 - $332; + $334 = 1.0 / $333; + $335 = +HEAPF32[$10>>2]; + $336 = $330 * $335; + HEAPF32[$12>>2] = $336; + $337 = +HEAPF32[$275>>2]; + $338 = $330 * $337; + HEAPF32[$274>>2] = $338; + $339 = +HEAPF32[$277>>2]; + $340 = $330 * $339; + HEAPF32[$276>>2] = $340; + $341 = +HEAPF32[$11>>2]; + $342 = $328 * $341; + HEAPF32[$13>>2] = $342; + $343 = +HEAPF32[$279>>2]; + $344 = $328 * $343; + HEAPF32[$278>>2] = $344; + $345 = +HEAPF32[$281>>2]; + $346 = $328 * $345; + HEAPF32[$280>>2] = $346; + ;HEAP32[$$byval_copy102>>2]=HEAP32[$12>>2]|0;HEAP32[$$byval_copy102+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$$byval_copy102+8>>2]=HEAP32[$12+8>>2]|0; + ;HEAP32[$$byval_copy103>>2]=HEAP32[$13>>2]|0;HEAP32[$$byval_copy103+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$$byval_copy103+8>>2]=HEAP32[$13+8>>2]|0; + _VectorSubtract($14,$$byval_copy102,$$byval_copy103); + _VectorScale($14,$334); + $347 = HEAP32[$14>>2]|0; + $348 = (($266) + ($$0348391<<2)|0); + HEAP32[$348>>2] = $347; + $349 = HEAP32[$282>>2]|0; + $350 = (($266) + ($286<<2)|0); + HEAP32[$350>>2] = $349; + $351 = HEAP32[$283>>2]|0; + $352 = (($266) + ($289<<2)|0); + HEAP32[$352>>2] = $351; + $353 = HEAP32[$14>>2]|0; + $354 = (($266) + ($292<<2)|0); + HEAP32[$354>>2] = $353; + $355 = HEAP32[$282>>2]|0; + $356 = (($266) + ($295<<2)|0); + HEAP32[$356>>2] = $355; + $357 = HEAP32[$283>>2]|0; + $358 = (($266) + ($298<<2)|0); + HEAP32[$358>>2] = $357; + $359 = HEAP32[$14>>2]|0; + $360 = (($266) + ($301<<2)|0); + HEAP32[$360>>2] = $359; + $361 = HEAP32[$282>>2]|0; + $362 = (($266) + ($304<<2)|0); + HEAP32[$362>>2] = $361; + $363 = HEAP32[$283>>2]|0; + $364 = (($266) + ($307<<2)|0); + HEAP32[$364>>2] = $363; + $365 = (($$0348391) + 9)|0; + $366 = (($$0347392) + 6)|0; + $367 = ($365|0)<($69|0); + if ($367) { + $$0347392 = $366;$$0348391 = $365; + } else { + $$sroa$64$0 = $266; + break; + } + } + } else { + $$sroa$64$0 = $266; + } + } + _free($37); + _free($369); + _free($370); + HEAP32[$vararg_buffer90>>2] = $1; + _TraceLog(0,12162,$vararg_buffer90); + HEAP32[$0>>2] = $68; + $$sroa$12$0$$sroa_idx244 = ((($0)) + 4|0); + HEAP32[$$sroa$12$0$$sroa_idx244>>2] = 0; + $$sroa$12247$0$$sroa_idx249 = ((($0)) + 8|0); + HEAP32[$$sroa$12247$0$$sroa_idx249>>2] = $71; + $$sroa$31$0$$sroa_idx270 = ((($0)) + 12|0); + HEAP32[$$sroa$31$0$$sroa_idx270>>2] = $74; + $$sroa$45$0$$sroa_idx286 = ((($0)) + 16|0); + HEAP32[$$sroa$45$0$$sroa_idx286>>2] = 0; + $$sroa$45289$0$$sroa_idx291 = ((($0)) + 20|0); + HEAP32[$$sroa$45289$0$$sroa_idx291>>2] = $75; + $$sroa$64$0$$sroa_idx312 = ((($0)) + 24|0); + HEAP32[$$sroa$64$0$$sroa_idx312>>2] = $$sroa$64$0; + $$sroa$74$0$$sroa_idx324 = ((($0)) + 28|0); + HEAP32[$$sroa$74$0$$sroa_idx324>>2] = 0; + $$sroa$75$0$$sroa_idx328 = ((($0)) + 32|0); + dest=$$sroa$75$0$$sroa_idx328; src=$$sroa$75; stop=dest+36|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + STACKTOP = sp;return; +} +function _LoadModel($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(464|0); + $2 = sp + 200|0; + $3 = sp + 136|0; + $4 = sp; + _memset(($2|0),0,264)|0; + _LoadMesh($2,$1); + $5 = ((($2)) + 68|0); + _MatrixIdentity($3); + dest=$5; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = ((($2)) + 132|0); + _LoadDefaultMaterial($4); + _memcpy(($6|0),($4|0),132)|0; + _memcpy(($0|0),($2|0),264)|0; + STACKTOP = sp;return; +} +function _LoadDefaultMaterial($0) { + $0 = $0|0; + var $$sroa$09 = 0, $$sroa$09$56$sroa_idx = 0, $$sroa$18$0$$sroa_idx15 = 0, $$sroa$6$0$$sroa_idx = 0, $1 = 0, $2 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); + $$sroa$09 = sp; + $1 = sp + 136|0; + $2 = sp + 116|0; + dest=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultShader($1); + dest=$$sroa$09; src=$1; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _GetDefaultTexture($2); + $$sroa$09$56$sroa_idx = ((($$sroa$09)) + 56|0); + ;HEAP32[$$sroa$09$56$sroa_idx>>2]=HEAP32[$2>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$$sroa$09$56$sroa_idx+16>>2]=HEAP32[$2+16>>2]|0; + dest=$0; src=$$sroa$09; stop=dest+116|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $$sroa$6$0$$sroa_idx = ((($0)) + 116|0); + $$sroa$18$0$$sroa_idx15 = ((($0)) + 128|0); + ;HEAP32[$$sroa$6$0$$sroa_idx>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+4>>2]=4294967295|0;HEAP32[$$sroa$6$0$$sroa_idx+8>>2]=4294967295|0; + HEAPF32[$$sroa$18$0$$sroa_idx15>>2] = 100.0; + STACKTOP = sp;return; +} +function _UnloadMesh($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + _rlglUnloadMesh($0); + return; +} +function _UnloadModel($0) { + $0 = $0|0; + var $$byval_copy = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); + $$byval_copy = sp + 4|0; + $vararg_buffer = sp; + _UnloadMesh($0); + $1 = ((($0)) + 132|0); + _memcpy(($$byval_copy|0),($1|0),132)|0; + _UnloadMaterial($$byval_copy); + _TraceLog(0,12206,$vararg_buffer); + STACKTOP = sp;return; +} +function _UnloadMaterial($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 56|0); + $2 = HEAP32[$1>>2]|0; + _rlDeleteTextures($2); + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + _rlDeleteTextures($4); + $5 = ((($0)) + 96|0); + $6 = HEAP32[$5>>2]|0; + _rlDeleteTextures($6); + return; +} +function _DrawModel($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = +$2; + $3 = $3|0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); + $$byval_copy4 = sp + 324|0; + $$byval_copy3 = sp + 312|0; + $$byval_copy2 = sp + 300|0; + $$byval_copy1 = sp + 288|0; + $$byval_copy = sp + 24|0; + $4 = sp + 12|0; + $5 = sp; + HEAPF32[$4>>2] = $2; + $6 = ((($4)) + 4|0); + HEAPF32[$6>>2] = $2; + $7 = ((($4)) + 8|0); + HEAPF32[$7>>2] = $2; + ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0; + _memcpy(($$byval_copy|0),($0|0),264)|0; + ;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0; + ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0; + ;HEAP32[$$byval_copy3>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy3+8>>2]=HEAP32[$4+8>>2]|0; + ;HEAP8[$$byval_copy4>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy4+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy4+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy4+3>>0]=HEAP8[$3+3>>0]|0; + _DrawModelEx($$byval_copy,$$byval_copy1,$$byval_copy2,0.0,$$byval_copy3,$$byval_copy4); + STACKTOP = sp;return; +} +function _DrawModelEx($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = +$3; + $4 = $4|0; + $5 = $5|0; + var $$byval_copy5 = 0, $$byval_copy6 = 0, $$byval_copy7 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 592|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(592|0); + $$byval_copy7 = sp + 520|0; + $$byval_copy6 = sp + 388|0; + $$byval_copy5 = sp + 320|0; + $6 = sp + 128|0; + $7 = sp + 64|0; + $8 = sp; + $9 = sp + 256|0; + $10 = sp + 192|0; + $11 = $3 * 0.01745329238474369; + ;HEAP32[$$byval_copy7>>2]=HEAP32[$2>>2]|0;HEAP32[$$byval_copy7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$$byval_copy7+8>>2]=HEAP32[$2+8>>2]|0; + _MatrixRotate($6,$$byval_copy7,$11); + $12 = +HEAPF32[$4>>2]; + $13 = ((($4)) + 4|0); + $14 = +HEAPF32[$13>>2]; + $15 = ((($4)) + 8|0); + $16 = +HEAPF32[$15>>2]; + _MatrixScale($7,$12,$14,$16); + $17 = +HEAPF32[$1>>2]; + $18 = ((($1)) + 4|0); + $19 = +HEAPF32[$18>>2]; + $20 = ((($1)) + 8|0); + $21 = +HEAPF32[$20>>2]; + _MatrixTranslate($8,$17,$19,$21); + $22 = ((($0)) + 68|0); + dest=$$byval_copy6; src=$7; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($9,$$byval_copy6,$$byval_copy7); + dest=$$byval_copy6; src=$9; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + dest=$$byval_copy7; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _MatrixMultiply($10,$$byval_copy6,$$byval_copy7); + dest=$22; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $23 = ((($0)) + 132|0); + $24 = ((($0)) + 248|0); + $25 = HEAPU8[$5>>0]|(HEAPU8[$5+1>>0]<<8)|(HEAPU8[$5+2>>0]<<16)|(HEAPU8[$5+3>>0]<<24); + HEAP32[$24>>2] = $25; + dest=$$byval_copy5; src=$0; stop=dest+68|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _memcpy(($$byval_copy6|0),($23|0),132)|0; + dest=$$byval_copy7; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + _rlglDrawMesh($$byval_copy5,$$byval_copy6,$$byval_copy7); + STACKTOP = sp;return; +} +function _emscripten_GetProcAddress($0) { + $0 = $0|0; + var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; + var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; + var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; + var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0; + var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; + var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; + var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0; + var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; + var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; + var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; + var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0; + var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0; + var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; + var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; + var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; + var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; + var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp + 12|0; + $2 = sp + 8|0; + $3 = sp + 4|0; + $4 = sp; + HEAP32[$2>>2] = $0; + $5 = HEAP32[$2>>2]|0; + $6 = (_strlen($5)|0); + $7 = (($6) + 1)|0; + $8 = (_malloc($7)|0); + HEAP32[$3>>2] = $8; + $9 = HEAP32[$3>>2]|0; + $10 = HEAP32[$2>>2]|0; + (_strcpy($9,$10)|0); + $11 = HEAP32[$3>>2]|0; + $12 = (_strstr($11,12264)|0); + HEAP32[$4>>2] = $12; + $13 = HEAP32[$4>>2]|0; + $14 = ($13|0)!=(0|0); + if ($14) { + $15 = HEAP32[$4>>2]|0; + HEAP8[$15>>0] = 0; + } + $16 = HEAP32[$3>>2]|0; + $17 = (_strstr($16,12268)|0); + HEAP32[$4>>2] = $17; + $18 = HEAP32[$4>>2]|0; + $19 = ($18|0)!=(0|0); + if ($19) { + $20 = HEAP32[$4>>2]|0; + HEAP8[$20>>0] = 0; + } + $21 = HEAP32[$3>>2]|0; + $22 = (_strstr($21,12272)|0); + HEAP32[$4>>2] = $22; + $23 = HEAP32[$4>>2]|0; + $24 = ($23|0)!=(0|0); + if ($24) { + $25 = HEAP32[$4>>2]|0; + HEAP8[$25>>0] = 0; + } + $26 = HEAP32[$3>>2]|0; + $27 = (_strstr($26,12276)|0); + HEAP32[$4>>2] = $27; + $28 = HEAP32[$4>>2]|0; + $29 = ($28|0)!=(0|0); + if ($29) { + $30 = HEAP32[$4>>2]|0; + HEAP8[$30>>0] = 0; + } + $31 = HEAP32[$3>>2]|0; + $32 = (_strcmp($31,12282)|0); + $33 = ($32|0)!=(0); + do { + if ($33) { + $34 = HEAP32[$3>>2]|0; + $35 = (_strcmp($34,12320)|0); + $36 = ($35|0)!=(0); + if (!($36)) { + HEAP32[$3>>2] = 12339; + break; + } + $37 = HEAP32[$3>>2]|0; + $38 = (_strcmp($37,12352)|0); + $39 = ($38|0)!=(0); + if (!($39)) { + HEAP32[$3>>2] = 12373; + break; + } + $40 = HEAP32[$3>>2]|0; + $41 = (_strcmp($40,12388)|0); + $42 = ($41|0)!=(0); + if (!($42)) { + HEAP32[$3>>2] = 12403; + break; + } + $43 = HEAP32[$3>>2]|0; + $44 = (_strcmp($43,12418)|0); + $45 = ($44|0)!=(0); + if (!($45)) { + HEAP32[$3>>2] = 12433; + } + } else { + HEAP32[$3>>2] = 12304; + } + } while(0); + $46 = HEAP32[$3>>2]|0; + $47 = (_strcmp($46,12448)|0); + $48 = ($47|0)!=(0); + do { + if ($48) { + $49 = HEAP32[$3>>2]|0; + $50 = (_strcmp($49,12462)|0); + $51 = ($50|0)!=(0); + if (!($51)) { + HEAP32[$1>>2] = 3; + break; + } + $52 = HEAP32[$3>>2]|0; + $53 = (_strcmp($52,12474)|0); + $54 = ($53|0)!=(0); + if (!($54)) { + HEAP32[$1>>2] = 7; + break; + } + $55 = HEAP32[$3>>2]|0; + $56 = (_strcmp($55,12488)|0); + $57 = ($56|0)!=(0); + if (!($57)) { + HEAP32[$1>>2] = 8; + break; + } + $58 = HEAP32[$3>>2]|0; + $59 = (_strcmp($58,12500)|0); + $60 = ($59|0)!=(0); + if (!($60)) { + HEAP32[$1>>2] = 9; + break; + } + $61 = HEAP32[$3>>2]|0; + $62 = (_strcmp($61,12514)|0); + $63 = ($62|0)!=(0); + if (!($63)) { + HEAP32[$1>>2] = 10; + break; + } + $64 = HEAP32[$3>>2]|0; + $65 = (_strcmp($64,12528)|0); + $66 = ($65|0)!=(0); + if (!($66)) { + HEAP32[$1>>2] = 11; + break; + } + $67 = HEAP32[$3>>2]|0; + $68 = (_strcmp($67,12545)|0); + $69 = ($68|0)!=(0); + if (!($69)) { + HEAP32[$1>>2] = 1; + break; + } + $70 = HEAP32[$3>>2]|0; + $71 = (_strcmp($70,12568)|0); + $72 = ($71|0)!=(0); + if (!($72)) { + HEAP32[$1>>2] = 1; + break; + } + $73 = HEAP32[$3>>2]|0; + $74 = (_strcmp($73,12594)|0); + $75 = ($74|0)!=(0); + if (!($75)) { + HEAP32[$1>>2] = 2; + break; + } + $76 = HEAP32[$3>>2]|0; + $77 = (_strcmp($76,12607)|0); + $78 = ($77|0)!=(0); + if (!($78)) { + HEAP32[$1>>2] = 3; + break; + } + $79 = HEAP32[$3>>2]|0; + $80 = (_strcmp($79,12623)|0); + $81 = ($80|0)!=(0); + if (!($81)) { + HEAP32[$1>>2] = 1; + break; + } + $82 = HEAP32[$3>>2]|0; + $83 = (_strcmp($82,12636)|0); + $84 = ($83|0)!=(0); + if (!($84)) { + HEAP32[$1>>2] = 12; + break; + } + $85 = HEAP32[$3>>2]|0; + $86 = (_strcmp($85,12650)|0); + $87 = ($86|0)!=(0); + if (!($87)) { + HEAP32[$1>>2] = 2; + break; + } + $88 = HEAP32[$3>>2]|0; + $89 = (_strcmp($88,12670)|0); + $90 = ($89|0)!=(0); + if (!($90)) { + HEAP32[$1>>2] = 3; + break; + } + $91 = HEAP32[$3>>2]|0; + $92 = (_strcmp($91,12690)|0); + $93 = ($92|0)!=(0); + if (!($93)) { + HEAP32[$1>>2] = 4; + break; + } + $94 = HEAP32[$3>>2]|0; + $95 = (_strcmp($94,12707)|0); + $96 = ($95|0)!=(0); + if (!($96)) { + HEAP32[$1>>2] = 5; + break; + } + $97 = HEAP32[$3>>2]|0; + $98 = (_strcmp($97,12724)|0); + $99 = ($98|0)!=(0); + if (!($99)) { + HEAP32[$1>>2] = 4; + break; + } + $100 = HEAP32[$3>>2]|0; + $101 = (_strcmp($100,12736)|0); + $102 = ($101|0)!=(0); + if (!($102)) { + HEAP32[$1>>2] = 13; + break; + } + $103 = HEAP32[$3>>2]|0; + $104 = (_strcmp($103,12749)|0); + $105 = ($104|0)!=(0); + if (!($105)) { + HEAP32[$1>>2] = 14; + break; + } + $106 = HEAP32[$3>>2]|0; + $107 = (_strcmp($106,12765)|0); + $108 = ($107|0)!=(0); + if (!($108)) { + HEAP32[$1>>2] = 6; + break; + } + $109 = HEAP32[$3>>2]|0; + $110 = (_strcmp($109,12788)|0); + $111 = ($110|0)!=(0); + if (!($111)) { + HEAP32[$1>>2] = 2; + break; + } + $112 = HEAP32[$3>>2]|0; + $113 = (_strcmp($112,12801)|0); + $114 = ($113|0)!=(0); + if (!($114)) { + HEAP32[$1>>2] = 3; + break; + } + $115 = HEAP32[$3>>2]|0; + $116 = (_strcmp($115,12817)|0); + $117 = ($116|0)!=(0); + if (!($117)) { + HEAP32[$1>>2] = 5; + break; + } + $118 = HEAP32[$3>>2]|0; + $119 = (_strcmp($118,12828)|0); + $120 = ($119|0)!=(0); + if (!($120)) { + HEAP32[$1>>2] = 15; + break; + } + $121 = HEAP32[$3>>2]|0; + $122 = (_strcmp($121,12847)|0); + $123 = ($122|0)!=(0); + if (!($123)) { + HEAP32[$1>>2] = 16; + break; + } + $124 = HEAP32[$3>>2]|0; + $125 = (_strcmp($124,12869)|0); + $126 = ($125|0)!=(0); + if (!($126)) { + HEAP32[$1>>2] = 17; + break; + } + $127 = HEAP32[$3>>2]|0; + $128 = (_strcmp($127,12888)|0); + $129 = ($128|0)!=(0); + if (!($129)) { + HEAP32[$1>>2] = 7; + break; + } + $130 = HEAP32[$3>>2]|0; + $131 = (_strcmp($130,12917)|0); + $132 = ($131|0)!=(0); + if (!($132)) { + HEAP32[$1>>2] = 6; + break; + } + $133 = HEAP32[$3>>2]|0; + $134 = (_strcmp($133,12934)|0); + $135 = ($134|0)!=(0); + if (!($135)) { + HEAP32[$1>>2] = 8; + break; + } + $136 = HEAP32[$3>>2]|0; + $137 = (_strcmp($136,12949)|0); + $138 = ($137|0)!=(0); + if (!($138)) { + HEAP32[$1>>2] = 9; + break; + } + $139 = HEAP32[$3>>2]|0; + $140 = (_strcmp($139,12964)|0); + $141 = ($140|0)!=(0); + if (!($141)) { + HEAP32[$1>>2] = 1; + break; + } + $142 = HEAP32[$3>>2]|0; + $143 = (_strcmp($142,12985)|0); + $144 = ($143|0)!=(0); + if (!($144)) { + HEAP32[$1>>2] = 10; + break; + } + $145 = HEAP32[$3>>2]|0; + $146 = (_strcmp($145,13005)|0); + $147 = ($146|0)!=(0); + if (!($147)) { + HEAP32[$1>>2] = 11; + break; + } + $148 = HEAP32[$3>>2]|0; + $149 = (_strcmp($148,13025)|0); + $150 = ($149|0)!=(0); + if (!($150)) { + HEAP32[$1>>2] = 12; + break; + } + $151 = HEAP32[$3>>2]|0; + $152 = (_strcmp($151,13051)|0); + $153 = ($152|0)!=(0); + if (!($153)) { + HEAP32[$1>>2] = 2; + break; + } + $154 = HEAP32[$3>>2]|0; + $155 = (_strcmp($154,13070)|0); + $156 = ($155|0)!=(0); + if (!($156)) { + HEAP32[$1>>2] = 1; + break; + } + $157 = HEAP32[$3>>2]|0; + $158 = (_strcmp($157,13082)|0); + $159 = ($158|0)!=(0); + if (!($159)) { + HEAP32[$1>>2] = 3; + break; + } + $160 = HEAP32[$3>>2]|0; + $161 = (_strcmp($160,13094)|0); + $162 = ($161|0)!=(0); + if (!($162)) { + HEAP32[$1>>2] = 1; + break; + } + $163 = HEAP32[$3>>2]|0; + $164 = (_strcmp($163,13106)|0); + $165 = ($164|0)!=(0); + if (!($165)) { + HEAP32[$1>>2] = 1; + break; + } + $166 = HEAP32[$3>>2]|0; + $167 = (_strcmp($166,13118)|0); + $168 = ($167|0)!=(0); + if (!($168)) { + HEAP32[$1>>2] = 18; + break; + } + $169 = HEAP32[$3>>2]|0; + $170 = (_strcmp($169,13130)|0); + $171 = ($170|0)!=(0); + if (!($171)) { + HEAP32[$1>>2] = 13; + break; + } + $172 = HEAP32[$3>>2]|0; + $173 = (_strcmp($172,13142)|0); + $174 = ($173|0)!=(0); + if (!($174)) { + HEAP32[$1>>2] = 4; + break; + } + $175 = HEAP32[$3>>2]|0; + $176 = (_strcmp($175,13154)|0); + $177 = ($176|0)!=(0); + if (!($177)) { + HEAP32[$1>>2] = 2; + break; + } + $178 = HEAP32[$3>>2]|0; + $179 = (_strcmp($178,13166)|0); + $180 = ($179|0)!=(0); + if (!($180)) { + HEAP32[$1>>2] = 14; + break; + } + $181 = HEAP32[$3>>2]|0; + $182 = (_strcmp($181,13179)|0); + $183 = ($182|0)!=(0); + if (!($183)) { + HEAP32[$1>>2] = 15; + break; + } + $184 = HEAP32[$3>>2]|0; + $185 = (_strcmp($184,13192)|0); + $186 = ($185|0)!=(0); + if (!($186)) { + HEAP32[$1>>2] = 16; + break; + } + $187 = HEAP32[$3>>2]|0; + $188 = (_strcmp($187,13205)|0); + $189 = ($188|0)!=(0); + if (!($189)) { + HEAP32[$1>>2] = 17; + break; + } + $190 = HEAP32[$3>>2]|0; + $191 = (_strcmp($190,13218)|0); + $192 = ($191|0)!=(0); + if (!($192)) { + HEAP32[$1>>2] = 18; + break; + } + $193 = HEAP32[$3>>2]|0; + $194 = (_strcmp($193,13231)|0); + $195 = ($194|0)!=(0); + if (!($195)) { + HEAP32[$1>>2] = 19; + break; + } + $196 = HEAP32[$3>>2]|0; + $197 = (_strcmp($196,13244)|0); + $198 = ($197|0)!=(0); + if (!($198)) { + HEAP32[$1>>2] = 20; + break; + } + $199 = HEAP32[$3>>2]|0; + $200 = (_strcmp($199,13257)|0); + $201 = ($200|0)!=(0); + if (!($201)) { + HEAP32[$1>>2] = 21; + break; + } + $202 = HEAP32[$3>>2]|0; + $203 = (_strcmp($202,13270)|0); + $204 = ($203|0)!=(0); + if (!($204)) { + HEAP32[$1>>2] = 5; + break; + } + $205 = HEAP32[$3>>2]|0; + $206 = (_strcmp($205,13289)|0); + $207 = ($206|0)!=(0); + if (!($207)) { + HEAP32[$1>>2] = 6; + break; + } + $208 = HEAP32[$3>>2]|0; + $209 = (_strcmp($208,13308)|0); + $210 = ($209|0)!=(0); + if (!($210)) { + HEAP32[$1>>2] = 7; + break; + } + $211 = HEAP32[$3>>2]|0; + $212 = (_strcmp($211,13327)|0); + $213 = ($212|0)!=(0); + if (!($213)) { + HEAP32[$1>>2] = 19; + break; + } + $214 = HEAP32[$3>>2]|0; + $215 = (_strcmp($214,13340)|0); + $216 = ($215|0)!=(0); + if (!($216)) { + HEAP32[$1>>2] = 20; + break; + } + $217 = HEAP32[$3>>2]|0; + $218 = (_strcmp($217,13358)|0); + $219 = ($218|0)!=(0); + if (!($219)) { + HEAP32[$1>>2] = 21; + break; + } + $220 = HEAP32[$3>>2]|0; + $221 = (_strcmp($220,13376)|0); + $222 = ($221|0)!=(0); + if (!($222)) { + HEAP32[$1>>2] = 22; + break; + } + $223 = HEAP32[$3>>2]|0; + $224 = (_strcmp($223,13394)|0); + $225 = ($224|0)!=(0); + if (!($225)) { + HEAP32[$1>>2] = 23; + break; + } + $226 = HEAP32[$3>>2]|0; + $227 = (_strcmp($226,13412)|0); + $228 = ($227|0)!=(0); + if (!($228)) { + HEAP32[$1>>2] = 2; + break; + } + $229 = HEAP32[$3>>2]|0; + $230 = (_strcmp($229,13432)|0); + $231 = ($230|0)!=(0); + if (!($231)) { + HEAP32[$1>>2] = 3; + break; + } + $232 = HEAP32[$3>>2]|0; + $233 = (_strcmp($232,12373)|0); + $234 = ($233|0)!=(0); + if (!($234)) { + HEAP32[$1>>2] = 7; + break; + } + $235 = HEAP32[$3>>2]|0; + $236 = (_strcmp($235,13450)|0); + $237 = ($236|0)!=(0); + if (!($237)) { + HEAP32[$1>>2] = 1; + break; + } + $238 = HEAP32[$3>>2]|0; + $239 = (_strcmp($238,13465)|0); + $240 = ($239|0)!=(0); + if (!($240)) { + HEAP32[$1>>2] = 8; + break; + } + $241 = HEAP32[$3>>2]|0; + $242 = (_strcmp($241,13486)|0); + $243 = ($242|0)!=(0); + if (!($243)) { + HEAP32[$1>>2] = 9; + break; + } + $244 = HEAP32[$3>>2]|0; + $245 = (_strcmp($244,13501)|0); + $246 = ($245|0)!=(0); + if (!($246)) { + HEAP32[$1>>2] = 10; + break; + } + $247 = HEAP32[$3>>2]|0; + $248 = (_strcmp($247,13519)|0); + $249 = ($248|0)!=(0); + if (!($249)) { + HEAP32[$1>>2] = 2; + break; + } + $250 = HEAP32[$3>>2]|0; + $251 = (_strcmp($250,13535)|0); + $252 = ($251|0)!=(0); + if (!($252)) { + HEAP32[$1>>2] = 11; + break; + } + $253 = HEAP32[$3>>2]|0; + $254 = (_strcmp($253,13554)|0); + $255 = ($254|0)!=(0); + if (!($255)) { + HEAP32[$1>>2] = 22; + break; + } + $256 = HEAP32[$3>>2]|0; + $257 = (_strcmp($256,13568)|0); + $258 = ($257|0)!=(0); + if (!($258)) { + HEAP32[$1>>2] = 23; + break; + } + $259 = HEAP32[$3>>2]|0; + $260 = (_strcmp($259,13583)|0); + $261 = ($260|0)!=(0); + if (!($261)) { + HEAP32[$1>>2] = 8; + break; + } + $262 = HEAP32[$3>>2]|0; + $263 = (_strcmp($262,12304)|0); + $264 = ($263|0)!=(0); + if (!($264)) { + HEAP32[$1>>2] = 1; + break; + } + $265 = HEAP32[$3>>2]|0; + $266 = (_strcmp($265,13594)|0); + $267 = ($266|0)!=(0); + if (!($267)) { + HEAP32[$1>>2] = 3; + break; + } + $268 = HEAP32[$3>>2]|0; + $269 = (_strcmp($268,12403)|0); + $270 = ($269|0)!=(0); + if (!($270)) { + HEAP32[$1>>2] = 24; + break; + } + $271 = HEAP32[$3>>2]|0; + $272 = (_strcmp($271,12433)|0); + $273 = ($272|0)!=(0); + if (!($273)) { + HEAP32[$1>>2] = 25; + break; + } + $274 = HEAP32[$3>>2]|0; + $275 = (_strcmp($274,13610)|0); + $276 = ($275|0)!=(0); + if (!($276)) { + HEAP32[$1>>2] = 12; + break; + } + $277 = HEAP32[$3>>2]|0; + $278 = (_strcmp($277,13637)|0); + $279 = ($278|0)!=(0); + if (!($279)) { + HEAP32[$1>>2] = 4; + break; + } + $280 = HEAP32[$3>>2]|0; + $281 = (_strcmp($280,13651)|0); + $282 = ($281|0)!=(0); + if (!($282)) { + HEAP32[$1>>2] = 13; + break; + } + $283 = HEAP32[$3>>2]|0; + $284 = (_strcmp($283,12339)|0); + $285 = ($284|0)!=(0); + if (!($285)) { + HEAP32[$1>>2] = 5; + break; + } + $286 = HEAP32[$3>>2]|0; + $287 = (_strcmp($286,13671)|0); + $288 = ($287|0)!=(0); + if (!($288)) { + HEAP32[$1>>2] = 6; + break; + } + $289 = HEAP32[$3>>2]|0; + $290 = (_strcmp($289,13689)|0); + $291 = ($290|0)!=(0); + if (!($291)) { + HEAP32[$1>>2] = 9; + break; + } + $292 = HEAP32[$3>>2]|0; + $293 = (_strcmp($292,13701)|0); + $294 = ($293|0)!=(0); + if (!($294)) { + HEAP32[$1>>2] = 24; + break; + } + $295 = HEAP32[$3>>2]|0; + $296 = (_strcmp($295,13722)|0); + $297 = ($296|0)!=(0); + if (!($297)) { + HEAP32[$1>>2] = 26; + break; + } + $298 = HEAP32[$3>>2]|0; + $299 = (_strcmp($298,13740)|0); + $300 = ($299|0)!=(0); + if (!($300)) { + HEAP32[$1>>2] = 27; + break; + } + $301 = HEAP32[$3>>2]|0; + $302 = (_strcmp($301,13758)|0); + $303 = ($302|0)!=(0); + if (!($303)) { + HEAP32[$1>>2] = 28; + break; + } + $304 = HEAP32[$3>>2]|0; + $305 = (_strcmp($304,13779)|0); + $306 = ($305|0)!=(0); + if (!($306)) { + HEAP32[$1>>2] = 14; + break; + } + $307 = HEAP32[$3>>2]|0; + $308 = (_strcmp($307,13805)|0); + $309 = ($308|0)!=(0); + if (!($309)) { + HEAP32[$1>>2] = 3; + break; + } + $310 = HEAP32[$3>>2]|0; + $311 = (_strcmp($310,13828)|0); + $312 = ($311|0)!=(0); + if (!($312)) { + HEAP32[$1>>2] = 15; + break; + } + $313 = HEAP32[$3>>2]|0; + $314 = (_strcmp($313,13866)|0); + $315 = ($314|0)!=(0); + if (!($315)) { + HEAP32[$1>>2] = 10; + break; + } + $316 = HEAP32[$3>>2]|0; + $317 = (_strcmp($316,13882)|0); + $318 = ($317|0)!=(0); + if (!($318)) { + HEAP32[$1>>2] = 7; + break; + } + $319 = HEAP32[$3>>2]|0; + $320 = (_strcmp($319,13897)|0); + $321 = ($320|0)!=(0); + if (!($321)) { + HEAP32[$1>>2] = 25; + break; + } + $322 = HEAP32[$3>>2]|0; + $323 = (_strcmp($322,13920)|0); + $324 = ($323|0)!=(0); + if (!($324)) { + HEAP32[$1>>2] = 16; + break; + } + $325 = HEAP32[$3>>2]|0; + $326 = (_strcmp($325,13933)|0); + $327 = ($326|0)!=(0); + if (!($327)) { + HEAP32[$1>>2] = 29; + break; + } + $328 = HEAP32[$3>>2]|0; + $329 = (_strcmp($328,13947)|0); + $330 = ($329|0)!=(0); + if (!($330)) { + HEAP32[$1>>2] = 30; + break; + } + $331 = HEAP32[$3>>2]|0; + $332 = (_strcmp($331,13961)|0); + $333 = ($332|0)!=(0); + if (!($333)) { + HEAP32[$1>>2] = 1; + break; + } + $334 = HEAP32[$3>>2]|0; + $335 = (_strcmp($334,13981)|0); + $336 = ($335|0)!=(0); + if (!($336)) { + HEAP32[$1>>2] = 8; + break; + } + $337 = HEAP32[$3>>2]|0; + $338 = (_strcmp($337,14001)|0); + $339 = ($338|0)!=(0); + if (!($339)) { + HEAP32[$1>>2] = 17; + break; + } + $340 = HEAP32[$3>>2]|0; + $341 = (_strcmp($340,14017)|0); + $342 = ($341|0)!=(0); + if (!($342)) { + HEAP32[$1>>2] = 18; + break; + } + $343 = HEAP32[$3>>2]|0; + $344 = (_strcmp($343,14035)|0); + $345 = ($344|0)!=(0); + if (!($345)) { + HEAP32[$1>>2] = 26; + break; + } + $346 = HEAP32[$3>>2]|0; + $347 = (_strcmp($346,14051)|0); + $348 = ($347|0)!=(0); + if (!($348)) { + HEAP32[$1>>2] = 19; + break; + } + $349 = HEAP32[$3>>2]|0; + $350 = (_strcmp($349,14066)|0); + $351 = ($350|0)!=(0); + if (!($351)) { + HEAP32[$1>>2] = 9; + break; + } + $352 = HEAP32[$3>>2]|0; + $353 = (_strcmp($352,14088)|0); + $354 = ($353|0)!=(0); + if (!($354)) { + HEAP32[$1>>2] = 31; + break; + } + $355 = HEAP32[$3>>2]|0; + $356 = (_strcmp($355,14106)|0); + $357 = ($356|0)!=(0); + if (!($357)) { + HEAP32[$1>>2] = 32; + break; + } + $358 = HEAP32[$3>>2]|0; + $359 = (_strcmp($358,14127)|0); + $360 = ($359|0)!=(0); + if (!($360)) { + HEAP32[$1>>2] = 10; + break; + } + $361 = HEAP32[$3>>2]|0; + $362 = (_strcmp($361,14145)|0); + $363 = ($362|0)!=(0); + if (!($363)) { + HEAP32[$1>>2] = 11; + break; + } + $364 = HEAP32[$3>>2]|0; + $365 = (_strcmp($364,14158)|0); + $366 = ($365|0)!=(0); + if (!($366)) { + HEAP32[$1>>2] = 2; + break; + } + $367 = HEAP32[$3>>2]|0; + $368 = (_strcmp($367,14173)|0); + $369 = ($368|0)!=(0); + if (!($369)) { + HEAP32[$1>>2] = 12; + break; + } + $370 = HEAP32[$3>>2]|0; + $371 = (_strcmp($370,14187)|0); + $372 = ($371|0)!=(0); + if (!($372)) { + HEAP32[$1>>2] = 1; + break; + } + $373 = HEAP32[$3>>2]|0; + $374 = (_strcmp($373,14197)|0); + $375 = ($374|0)!=(0); + if (!($375)) { + HEAP32[$1>>2] = 1; + break; + } + $376 = HEAP32[$3>>2]|0; + $377 = (_strcmp($376,14207)|0); + $378 = ($377|0)!=(0); + if (!($378)) { + HEAP32[$1>>2] = 2; + break; + } + $379 = HEAP32[$3>>2]|0; + $380 = (_strcmp($379,14229)|0); + $381 = ($380|0)!=(0); + if (!($381)) { + HEAP32[$1>>2] = 13; + break; + } + $382 = HEAP32[$3>>2]|0; + $383 = (_strcmp($382,14255)|0); + $384 = ($383|0)!=(0); + if (!($384)) { + HEAP32[$1>>2] = 14; + break; + } + $385 = HEAP32[$3>>2]|0; + $386 = (_strcmp($385,14282)|0); + $387 = ($386|0)!=(0); + if (!($387)) { + HEAP32[$1>>2] = 27; + break; + } + $388 = HEAP32[$3>>2]|0; + $389 = (_strcmp($388,14295)|0); + $390 = ($389|0)!=(0); + if (!($390)) { + HEAP32[$1>>2] = 20; + break; + } + $391 = HEAP32[$3>>2]|0; + $392 = (_strcmp($391,14310)|0); + $393 = ($392|0)!=(0); + if (!($393)) { + HEAP32[$1>>2] = 4; + break; + } + $394 = HEAP32[$3>>2]|0; + $395 = (_strcmp($394,14325)|0); + $396 = ($395|0)!=(0); + if (!($396)) { + HEAP32[$1>>2] = 3; + break; + } + $397 = HEAP32[$3>>2]|0; + $398 = (_strcmp($397,14349)|0); + $399 = ($398|0)!=(0); + if (!($399)) { + HEAP32[$1>>2] = 2; + break; + } + $400 = HEAP32[$3>>2]|0; + $401 = (_strcmp($400,14360)|0); + $402 = ($401|0)!=(0); + if (!($402)) { + HEAP32[$1>>2] = 33; + break; + } + $403 = HEAP32[$3>>2]|0; + $404 = (_strcmp($403,14382)|0); + $405 = ($404|0)!=(0); + if (!($405)) { + HEAP32[$1>>2] = 21; + break; + } + $406 = HEAP32[$3>>2]|0; + $407 = (_strcmp($406,14404)|0); + $408 = ($407|0)!=(0); + if (!($408)) { + HEAP32[$1>>2] = 5; + break; + } + $409 = HEAP32[$3>>2]|0; + $410 = (_strcmp($409,14428)|0); + $411 = ($410|0)!=(0); + if (!($411)) { + HEAP32[$1>>2] = 4; + break; + } + $412 = HEAP32[$3>>2]|0; + $413 = (_strcmp($412,14437)|0); + $414 = ($413|0)!=(0); + if (!($414)) { + HEAP32[$1>>2] = 5; + break; + } + $415 = HEAP32[$3>>2]|0; + $416 = (_strcmp($415,14445)|0); + $417 = ($416|0)!=(0); + if (!($417)) { + HEAP32[$1>>2] = 1; + break; + } + $418 = HEAP32[$3>>2]|0; + $419 = (_strcmp($418,14458)|0); + $420 = ($419|0)!=(0); + if (!($420)) { + HEAP32[$1>>2] = 2; + break; + } + $421 = HEAP32[$3>>2]|0; + $422 = (_strcmp($421,14472)|0); + $423 = ($422|0)!=(0); + if (!($423)) { + HEAP32[$1>>2] = 15; + break; + } + $424 = HEAP32[$3>>2]|0; + $425 = (_strcmp($424,14484)|0); + $426 = ($425|0)!=(0); + if (!($426)) { + HEAP32[$1>>2] = 16; + break; + } + $427 = HEAP32[$3>>2]|0; + $428 = (_strcmp($427,14493)|0); + $429 = ($428|0)!=(0); + if (!($429)) { + HEAP32[$1>>2] = 17; + break; + } + $430 = HEAP32[$3>>2]|0; + $431 = (_strcmp($430,14503)|0); + $432 = ($431|0)!=(0); + if (!($432)) { + HEAP32[$1>>2] = 18; + break; + } + $433 = HEAP32[$3>>2]|0; + $434 = (_strcmp($433,14515)|0); + $435 = ($434|0)!=(0); + if (!($435)) { + HEAP32[$1>>2] = 19; + break; + } + $436 = HEAP32[$3>>2]|0; + $437 = (_strcmp($436,14526)|0); + $438 = ($437|0)!=(0); + if (!($438)) { + HEAP32[$1>>2] = 20; + break; + } + $439 = HEAP32[$3>>2]|0; + $440 = (_strcmp($439,14534)|0); + $441 = ($440|0)!=(0); + if (!($441)) { + HEAP32[$1>>2] = 3; + break; + } + $442 = HEAP32[$3>>2]|0; + $443 = (_strcmp($442,14546)|0); + $444 = ($443|0)!=(0); + if (!($444)) { + HEAP32[$1>>2] = 21; + break; + } + $445 = HEAP32[$3>>2]|0; + $446 = (_strcmp($445,14561)|0); + $447 = ($446|0)!=(0); + if (!($447)) { + HEAP32[$1>>2] = 22; + break; + } + $448 = HEAP32[$3>>2]|0; + $449 = (_strcmp($448,14573)|0); + $450 = ($449|0)!=(0); + if (!($450)) { + HEAP32[$1>>2] = 23; + break; + } + $451 = HEAP32[$3>>2]|0; + $452 = (_strcmp($451,14587)|0); + $453 = ($452|0)!=(0); + if (!($453)) { + HEAP32[$1>>2] = 11; + break; + } + $454 = HEAP32[$3>>2]|0; + $455 = (_strcmp($454,14612)|0); + $456 = ($455|0)!=(0); + if (!($456)) { + HEAP32[$1>>2] = 24; + break; + } + $457 = HEAP32[$3>>2]|0; + $458 = (_strcmp($457,14629)|0); + $459 = ($458|0)!=(0); + if (!($459)) { + HEAP32[$1>>2] = 25; + break; + } + $460 = HEAP32[$3>>2]|0; + $461 = (_strcmp($460,14645)|0); + $462 = ($461|0)!=(0); + if (!($462)) { + HEAP32[$1>>2] = 26; + break; + } + $463 = HEAP32[$3>>2]|0; + $464 = (_strcmp($463,14661)|0); + $465 = ($464|0)!=(0); + if (!($465)) { + HEAP32[$1>>2] = 12; + break; + } + $466 = HEAP32[$3>>2]|0; + $467 = (_strcmp($466,14673)|0); + $468 = ($467|0)!=(0); + if (!($468)) { + HEAP32[$1>>2] = 34; + break; + } + $469 = HEAP32[$3>>2]|0; + $470 = (_strcmp($469,14685)|0); + $471 = ($470|0)!=(0); + if (!($471)) { + HEAP32[$1>>2] = 35; + break; + } + $472 = HEAP32[$3>>2]|0; + $473 = (_strcmp($472,14709)|0); + $474 = ($473|0)!=(0); + if (!($474)) { + HEAP32[$1>>2] = 1; + break; + } + $475 = HEAP32[$3>>2]|0; + $476 = (_strcmp($475,14722)|0); + $477 = ($476|0)!=(0); + if (!($477)) { + HEAP32[$1>>2] = 2; + break; + } + $478 = HEAP32[$3>>2]|0; + $479 = (_strcmp($478,14736)|0); + $480 = ($479|0)!=(0); + if (!($480)) { + HEAP32[$1>>2] = 36; + break; + } + $481 = HEAP32[$3>>2]|0; + $482 = (_strcmp($481,14758)|0); + $483 = ($482|0)!=(0); + if (!($483)) { + HEAP32[$1>>2] = 37; + break; + } + $484 = HEAP32[$3>>2]|0; + $485 = (_strcmp($484,14765)|0); + $486 = ($485|0)!=(0); + if (!($486)) { + HEAP32[$1>>2] = 3; + break; + } + $487 = HEAP32[$3>>2]|0; + $488 = (_strcmp($487,14781)|0); + $489 = ($488|0)!=(0); + if (!($489)) { + HEAP32[$1>>2] = 2; + break; + } + $490 = HEAP32[$3>>2]|0; + $491 = (_strcmp($490,14798)|0); + $492 = ($491|0)!=(0); + if (!($492)) { + HEAP32[$1>>2] = 1; + break; + } + $493 = HEAP32[$3>>2]|0; + $494 = (_strcmp($493,14815)|0); + $495 = ($494|0)!=(0); + if (!($495)) { + HEAP32[$1>>2] = 28; + break; + } + $496 = HEAP32[$3>>2]|0; + $497 = (_strcmp($496,14831)|0); + $498 = ($497|0)!=(0); + if (!($498)) { + HEAP32[$1>>2] = 1; + break; + } + $499 = HEAP32[$3>>2]|0; + $500 = (_strcmp($499,14847)|0); + $501 = ($500|0)!=(0); + if (!($501)) { + HEAP32[$1>>2] = 4; + break; + } + $502 = HEAP32[$3>>2]|0; + $503 = (_strcmp($502,14864)|0); + $504 = ($503|0)!=(0); + if (!($504)) { + HEAP32[$1>>2] = 29; + break; + } + $505 = HEAP32[$3>>2]|0; + $506 = (_strcmp($505,14878)|0); + $507 = ($506|0)!=(0); + if (!($507)) { + HEAP32[$1>>2] = 30; + break; + } + $508 = HEAP32[$3>>2]|0; + $509 = (_strcmp($508,14890)|0); + $510 = ($509|0)!=(0); + if (!($510)) { + HEAP32[$1>>2] = 22; + break; + } + $511 = HEAP32[$3>>2]|0; + $512 = (_strcmp($511,14901)|0); + $513 = ($512|0)!=(0); + if (!($513)) { + HEAP32[$1>>2] = 2; + break; + } + $514 = HEAP32[$3>>2]|0; + $515 = (_strcmp($514,14914)|0); + $516 = ($515|0)!=(0); + if (!($516)) { + HEAP32[$1>>2] = 23; + break; + } + $517 = HEAP32[$3>>2]|0; + $518 = (_strcmp($517,14924)|0); + $519 = ($518|0)!=(0); + if (!($519)) { + HEAP32[$1>>2] = 2; + break; + } + $520 = HEAP32[$3>>2]|0; + $521 = (_strcmp($520,14941)|0); + $522 = ($521|0)!=(0); + if (!($522)) { + HEAP32[$1>>2] = 24; + break; + } + $523 = HEAP32[$3>>2]|0; + $524 = (_strcmp($523,14953)|0); + $525 = ($524|0)!=(0); + if (!($525)) { + HEAP32[$1>>2] = 25; + break; + } + $526 = HEAP32[$3>>2]|0; + $527 = (_strcmp($526,14975)|0); + $528 = ($527|0)!=(0); + if (!($528)) { + HEAP32[$1>>2] = 26; + break; + } + $529 = HEAP32[$3>>2]|0; + $530 = (_strcmp($529,14995)|0); + $531 = ($530|0)!=(0); + if (!($531)) { + HEAP32[$1>>2] = 3; + break; + } + $532 = HEAP32[$3>>2]|0; + $533 = (_strcmp($532,15008)|0); + $534 = ($533|0)!=(0); + if (!($534)) { + HEAP32[$1>>2] = 27; + break; + } + $535 = HEAP32[$3>>2]|0; + $536 = (_strcmp($535,15030)|0); + $537 = ($536|0)!=(0); + if (!($537)) { + HEAP32[$1>>2] = 28; + break; + } + $538 = HEAP32[$3>>2]|0; + $539 = (_strcmp($538,15050)|0); + $540 = ($539|0)!=(0); + if (!($540)) { + HEAP32[$1>>2] = 2; + break; + } + $541 = HEAP32[$3>>2]|0; + $542 = (_strcmp($541,15067)|0); + $543 = ($542|0)!=(0); + if (!($543)) { + HEAP32[$1>>2] = 2; + break; + } + $544 = HEAP32[$3>>2]|0; + $545 = (_strcmp($544,15084)|0); + $546 = ($545|0)!=(0); + if (!($546)) { + HEAP32[$1>>2] = 3; + break; + } + $547 = HEAP32[$3>>2]|0; + $548 = (_strcmp($547,15104)|0); + $549 = ($548|0)!=(0); + if ($549) { + $550 = HEAP32[$2>>2]|0; + $551 = HEAP32[$3>>2]|0; + $552 = _emscripten_asm_const_iii(0, ($550|0), ($551|0))|0; + HEAP32[$1>>2] = 0; + break; + } else { + HEAP32[$1>>2] = 38; + break; + } + } else { + HEAP32[$1>>2] = 6; + } + } while(0); + $553 = HEAP32[$1>>2]|0; + STACKTOP = sp;return ($553|0); +} +function _emscripten_get_global_libc() { + var label = 0, sp = 0; + sp = STACKTOP; + return (20788|0); +} +function ___stdio_close($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $vararg_buffer = sp; + $1 = ((($0)) + 60|0); + $2 = HEAP32[$1>>2]|0; + $3 = (_dummy_738($2)|0); + HEAP32[$vararg_buffer>>2] = $3; + $4 = (___syscall6(6,($vararg_buffer|0))|0); + $5 = (___syscall_ret($4)|0); + STACKTOP = sp;return ($5|0); +} +function ___stdio_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0; + var $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $3 = sp + 32|0; + $4 = ((($0)) + 28|0); + $5 = HEAP32[$4>>2]|0; + HEAP32[$3>>2] = $5; + $6 = ((($3)) + 4|0); + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = (($8) - ($5))|0; + HEAP32[$6>>2] = $9; + $10 = ((($3)) + 8|0); + HEAP32[$10>>2] = $1; + $11 = ((($3)) + 12|0); + HEAP32[$11>>2] = $2; + $12 = (($9) + ($2))|0; + $13 = ((($0)) + 60|0); + $14 = HEAP32[$13>>2]|0; + $15 = $3; + HEAP32[$vararg_buffer>>2] = $14; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $15; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $16 = (___syscall146(146,($vararg_buffer|0))|0); + $17 = (___syscall_ret($16)|0); + $18 = ($12|0)==($17|0); + L1: do { + if ($18) { + label = 3; + } else { + $$04756 = 2;$$04855 = $12;$$04954 = $3;$26 = $17; + while(1) { + $25 = ($26|0)<(0); + if ($25) { + break; + } + $34 = (($$04855) - ($26))|0; + $35 = ((($$04954)) + 4|0); + $36 = HEAP32[$35>>2]|0; + $37 = ($26>>>0)>($36>>>0); + $38 = ((($$04954)) + 8|0); + $$150 = $37 ? $38 : $$04954; + $39 = $37 << 31 >> 31; + $$1 = (($39) + ($$04756))|0; + $40 = $37 ? $36 : 0; + $$0 = (($26) - ($40))|0; + $41 = HEAP32[$$150>>2]|0; + $42 = (($41) + ($$0)|0); + HEAP32[$$150>>2] = $42; + $43 = ((($$150)) + 4|0); + $44 = HEAP32[$43>>2]|0; + $45 = (($44) - ($$0))|0; + HEAP32[$43>>2] = $45; + $46 = HEAP32[$13>>2]|0; + $47 = $$150; + HEAP32[$vararg_buffer3>>2] = $46; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = $47; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = $$1; + $48 = (___syscall146(146,($vararg_buffer3|0))|0); + $49 = (___syscall_ret($48)|0); + $50 = ($34|0)==($49|0); + if ($50) { + label = 3; + break L1; + } else { + $$04756 = $$1;$$04855 = $34;$$04954 = $$150;$26 = $49; + } + } + $27 = ((($0)) + 16|0); + HEAP32[$27>>2] = 0; + HEAP32[$4>>2] = 0; + HEAP32[$7>>2] = 0; + $28 = HEAP32[$0>>2]|0; + $29 = $28 | 32; + HEAP32[$0>>2] = $29; + $30 = ($$04756|0)==(2); + if ($30) { + $$051 = 0; + } else { + $31 = ((($$04954)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($2) - ($32))|0; + $$051 = $33; + } + } + } while(0); + if ((label|0) == 3) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 16|0); + HEAP32[$24>>2] = $23; + HEAP32[$4>>2] = $20; + HEAP32[$7>>2] = $20; + $$051 = $2; + } + STACKTOP = sp;return ($$051|0); +} +function ___stdio_seek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 20|0; + $4 = ((($0)) + 60|0); + $5 = HEAP32[$4>>2]|0; + $6 = $3; + HEAP32[$vararg_buffer>>2] = $5; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 0; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $1; + $vararg_ptr3 = ((($vararg_buffer)) + 12|0); + HEAP32[$vararg_ptr3>>2] = $6; + $vararg_ptr4 = ((($vararg_buffer)) + 16|0); + HEAP32[$vararg_ptr4>>2] = $2; + $7 = (___syscall140(140,($vararg_buffer|0))|0); + $8 = (___syscall_ret($7)|0); + $9 = ($8|0)<(0); + if ($9) { + HEAP32[$3>>2] = -1; + $10 = -1; + } else { + $$pre = HEAP32[$3>>2]|0; + $10 = $$pre; + } + STACKTOP = sp;return ($10|0); +} +function ___syscall_ret($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0>>>0)>(4294963200); + if ($1) { + $2 = (0 - ($0))|0; + $3 = (___errno_location()|0); + HEAP32[$3>>2] = $2; + $$0 = -1; + } else { + $$0 = $0; + } + return ($$0|0); +} +function ___errno_location() { + var $0 = 0, $1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (___pthread_self_108()|0); + $1 = ((($0)) + 64|0); + return ($1|0); +} +function ___pthread_self_108() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _pthread_self() { + var label = 0, sp = 0; + sp = STACKTOP; + return (3868|0); +} +function _dummy_738($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return ($0|0); +} +function ___stdio_read($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + HEAP32[$3>>2] = $1; + $4 = ((($3)) + 4|0); + $5 = ((($0)) + 48|0); + $6 = HEAP32[$5>>2]|0; + $7 = ($6|0)!=(0); + $8 = $7&1; + $9 = (($2) - ($8))|0; + HEAP32[$4>>2] = $9; + $10 = ((($3)) + 8|0); + $11 = ((($0)) + 44|0); + $12 = HEAP32[$11>>2]|0; + HEAP32[$10>>2] = $12; + $13 = ((($3)) + 12|0); + HEAP32[$13>>2] = $6; + $14 = ((($0)) + 60|0); + $15 = HEAP32[$14>>2]|0; + $16 = $3; + HEAP32[$vararg_buffer>>2] = $15; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $16; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 2; + $17 = (___syscall145(145,($vararg_buffer|0))|0); + $18 = (___syscall_ret($17)|0); + $19 = ($18|0)<(1); + if ($19) { + $20 = $18 & 48; + $21 = $20 ^ 16; + $22 = HEAP32[$0>>2]|0; + $23 = $22 | $21; + HEAP32[$0>>2] = $23; + $$0 = $18; + } else { + $24 = HEAP32[$4>>2]|0; + $25 = ($18>>>0)>($24>>>0); + if ($25) { + $26 = (($18) - ($24))|0; + $27 = HEAP32[$11>>2]|0; + $28 = ((($0)) + 4|0); + HEAP32[$28>>2] = $27; + $29 = (($27) + ($26)|0); + $30 = ((($0)) + 8|0); + HEAP32[$30>>2] = $29; + $31 = HEAP32[$5>>2]|0; + $32 = ($31|0)==(0); + if ($32) { + $$0 = $2; + } else { + $33 = ((($27)) + 1|0); + HEAP32[$28>>2] = $33; + $34 = HEAP8[$27>>0]|0; + $35 = (($2) + -1)|0; + $36 = (($1) + ($35)|0); + HEAP8[$36>>0] = $34; + $$0 = $2; + } + } else { + $$0 = $18; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___stdout_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $vararg_buffer = sp; + $3 = sp + 16|0; + $4 = ((($0)) + 36|0); + HEAP32[$4>>2] = 10; + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 64; + $7 = ($6|0)==(0); + if ($7) { + $8 = ((($0)) + 60|0); + $9 = HEAP32[$8>>2]|0; + $10 = $3; + HEAP32[$vararg_buffer>>2] = $9; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 21523; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = $10; + $11 = (___syscall54(54,($vararg_buffer|0))|0); + $12 = ($11|0)==(0); + if (!($12)) { + $13 = ((($0)) + 75|0); + HEAP8[$13>>0] = -1; + } + } + $14 = (___stdio_write($0,$1,$2)|0); + STACKTOP = sp;return ($14|0); +} +function ___shlim($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 104|0); + HEAP32[$2>>2] = $1; + $3 = ((($0)) + 8|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $4; + $8 = $6; + $9 = (($7) - ($8))|0; + $10 = ((($0)) + 108|0); + HEAP32[$10>>2] = $9; + $11 = ($1|0)!=(0); + $12 = ($9|0)>($1|0); + $or$cond = $11 & $12; + $13 = (($6) + ($1)|0); + $$sink = $or$cond ? $13 : $4; + $14 = ((($0)) + 100|0); + HEAP32[$14>>2] = $$sink; + return; +} +function ___intscan($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0154222 = 0, $$0157 = 0, $$0157$ = 0, $$0159 = 0, $$1155192 = 0, $$1158 = 0, $$1160 = 0, $$1160169 = 0, $$1165 = 0, $$1165167 = 0, $$1165168 = 0, $$166 = 0, $$2156210 = 0, $$2161$be = 0, $$2161$lcssa = 0, $$3162$be = 0, $$3162215 = 0, $$4163$be = 0, $$4163$lcssa = 0, $$5$be = 0; + var $$6$be = 0, $$6$lcssa = 0, $$7$be = 0, $$7198 = 0, $$8 = 0, $$9$be = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; + var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; + var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; + var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0; + var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0; + var $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0; + var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0; + var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0; + var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0; + var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0; + var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0; + var $294 = 0, $295 = 0, $296 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; + var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; + var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond12 = 0; + var $or$cond187 = 0, $or$cond5 = 0, $or$cond7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ($1>>>0)>(36); + L1: do { + if ($5) { + $8 = (___errno_location()|0); + HEAP32[$8>>2] = 22; + $289 = 0;$290 = 0; + } else { + $6 = ((($0)) + 4|0); + $7 = ((($0)) + 100|0); + while(1) { + $9 = HEAP32[$6>>2]|0; + $10 = HEAP32[$7>>2]|0; + $11 = ($9>>>0)<($10>>>0); + if ($11) { + $12 = ((($9)) + 1|0); + HEAP32[$6>>2] = $12; + $13 = HEAP8[$9>>0]|0; + $14 = $13&255; + $16 = $14; + } else { + $15 = (___shgetc($0)|0); + $16 = $15; + } + $17 = (_isspace($16)|0); + $18 = ($17|0)==(0); + if ($18) { + break; + } + } + L11: do { + switch ($16|0) { + case 43: case 45: { + $19 = ($16|0)==(45); + $20 = $19 << 31 >> 31; + $21 = HEAP32[$6>>2]|0; + $22 = HEAP32[$7>>2]|0; + $23 = ($21>>>0)<($22>>>0); + if ($23) { + $24 = ((($21)) + 1|0); + HEAP32[$6>>2] = $24; + $25 = HEAP8[$21>>0]|0; + $26 = $25&255; + $$0157 = $20;$$0159 = $26; + break L11; + } else { + $27 = (___shgetc($0)|0); + $$0157 = $20;$$0159 = $27; + break L11; + } + break; + } + default: { + $$0157 = 0;$$0159 = $16; + } + } + } while(0); + $28 = ($1|0)==(0); + $29 = $1 | 16; + $30 = ($29|0)==(16); + $31 = ($$0159|0)==(48); + $or$cond5 = $30 & $31; + do { + if ($or$cond5) { + $32 = HEAP32[$6>>2]|0; + $33 = HEAP32[$7>>2]|0; + $34 = ($32>>>0)<($33>>>0); + if ($34) { + $35 = ((($32)) + 1|0); + HEAP32[$6>>2] = $35; + $36 = HEAP8[$32>>0]|0; + $37 = $36&255; + $40 = $37; + } else { + $38 = (___shgetc($0)|0); + $40 = $38; + } + $39 = $40 | 32; + $41 = ($39|0)==(120); + if (!($41)) { + if ($28) { + $$1160169 = $40;$$1165168 = 8; + label = 46; + break; + } else { + $$1160 = $40;$$1165 = $1; + label = 32; + break; + } + } + $42 = HEAP32[$6>>2]|0; + $43 = HEAP32[$7>>2]|0; + $44 = ($42>>>0)<($43>>>0); + if ($44) { + $45 = ((($42)) + 1|0); + HEAP32[$6>>2] = $45; + $46 = HEAP8[$42>>0]|0; + $47 = $46&255; + $50 = $47; + } else { + $48 = (___shgetc($0)|0); + $50 = $48; + } + $49 = ((15221) + ($50)|0); + $51 = HEAP8[$49>>0]|0; + $52 = ($51&255)>(15); + if ($52) { + $53 = HEAP32[$7>>2]|0; + $54 = ($53|0)!=(0|0); + if ($54) { + $55 = HEAP32[$6>>2]|0; + $56 = ((($55)) + -1|0); + HEAP32[$6>>2] = $56; + } + $57 = ($2|0)==(0); + if ($57) { + ___shlim($0,0); + $289 = 0;$290 = 0; + break L1; + } + if (!($54)) { + $289 = 0;$290 = 0; + break L1; + } + $58 = HEAP32[$6>>2]|0; + $59 = ((($58)) + -1|0); + HEAP32[$6>>2] = $59; + $289 = 0;$290 = 0; + break L1; + } else { + $$1160169 = $50;$$1165168 = 16; + label = 46; + } + } else { + $$166 = $28 ? 10 : $1; + $60 = ((15221) + ($$0159)|0); + $61 = HEAP8[$60>>0]|0; + $62 = $61&255; + $63 = ($62>>>0)<($$166>>>0); + if ($63) { + $$1160 = $$0159;$$1165 = $$166; + label = 32; + } else { + $64 = HEAP32[$7>>2]|0; + $65 = ($64|0)==(0|0); + if (!($65)) { + $66 = HEAP32[$6>>2]|0; + $67 = ((($66)) + -1|0); + HEAP32[$6>>2] = $67; + } + ___shlim($0,0); + $68 = (___errno_location()|0); + HEAP32[$68>>2] = 22; + $289 = 0;$290 = 0; + break L1; + } + } + } while(0); + L43: do { + if ((label|0) == 32) { + $69 = ($$1165|0)==(10); + if ($69) { + $70 = (($$1160) + -48)|0; + $71 = ($70>>>0)<(10); + if ($71) { + $$0154222 = 0;$74 = $70; + while(1) { + $72 = ($$0154222*10)|0; + $73 = (($72) + ($74))|0; + $75 = HEAP32[$6>>2]|0; + $76 = HEAP32[$7>>2]|0; + $77 = ($75>>>0)<($76>>>0); + if ($77) { + $78 = ((($75)) + 1|0); + HEAP32[$6>>2] = $78; + $79 = HEAP8[$75>>0]|0; + $80 = $79&255; + $$2161$be = $80; + } else { + $81 = (___shgetc($0)|0); + $$2161$be = $81; + } + $82 = (($$2161$be) + -48)|0; + $83 = ($82>>>0)<(10); + $84 = ($73>>>0)<(429496729); + $85 = $83 & $84; + if ($85) { + $$0154222 = $73;$74 = $82; + } else { + break; + } + } + $$2161$lcssa = $$2161$be;$291 = $73;$292 = 0; + } else { + $$2161$lcssa = $$1160;$291 = 0;$292 = 0; + } + $86 = (($$2161$lcssa) + -48)|0; + $87 = ($86>>>0)<(10); + if ($87) { + $$3162215 = $$2161$lcssa;$88 = $291;$89 = $292;$93 = $86; + while(1) { + $90 = (___muldi3(($88|0),($89|0),10,0)|0); + $91 = tempRet0; + $92 = ($93|0)<(0); + $94 = $92 << 31 >> 31; + $95 = $93 ^ -1; + $96 = $94 ^ -1; + $97 = ($91>>>0)>($96>>>0); + $98 = ($90>>>0)>($95>>>0); + $99 = ($91|0)==($96|0); + $100 = $99 & $98; + $101 = $97 | $100; + if ($101) { + $$1165167 = 10;$$8 = $$3162215;$293 = $88;$294 = $89; + label = 72; + break L43; + } + $102 = (_i64Add(($90|0),($91|0),($93|0),($94|0))|0); + $103 = tempRet0; + $104 = HEAP32[$6>>2]|0; + $105 = HEAP32[$7>>2]|0; + $106 = ($104>>>0)<($105>>>0); + if ($106) { + $107 = ((($104)) + 1|0); + HEAP32[$6>>2] = $107; + $108 = HEAP8[$104>>0]|0; + $109 = $108&255; + $$3162$be = $109; + } else { + $110 = (___shgetc($0)|0); + $$3162$be = $110; + } + $111 = (($$3162$be) + -48)|0; + $112 = ($111>>>0)<(10); + $113 = ($103>>>0)<(429496729); + $114 = ($102>>>0)<(2576980378); + $115 = ($103|0)==(429496729); + $116 = $115 & $114; + $117 = $113 | $116; + $or$cond7 = $112 & $117; + if ($or$cond7) { + $$3162215 = $$3162$be;$88 = $102;$89 = $103;$93 = $111; + } else { + break; + } + } + $118 = ($111>>>0)>(9); + if ($118) { + $$1158 = $$0157;$263 = $103;$265 = $102; + } else { + $$1165167 = 10;$$8 = $$3162$be;$293 = $102;$294 = $103; + label = 72; + } + } else { + $$1158 = $$0157;$263 = $292;$265 = $291; + } + } else { + $$1160169 = $$1160;$$1165168 = $$1165; + label = 46; + } + } + } while(0); + L63: do { + if ((label|0) == 46) { + $119 = (($$1165168) + -1)|0; + $120 = $119 & $$1165168; + $121 = ($120|0)==(0); + if ($121) { + $126 = ($$1165168*23)|0; + $127 = $126 >>> 5; + $128 = $127 & 7; + $129 = (15477 + ($128)|0); + $130 = HEAP8[$129>>0]|0; + $131 = $130 << 24 >> 24; + $132 = ((15221) + ($$1160169)|0); + $133 = HEAP8[$132>>0]|0; + $134 = $133&255; + $135 = ($134>>>0)<($$1165168>>>0); + if ($135) { + $$1155192 = 0;$138 = $134; + while(1) { + $136 = $$1155192 << $131; + $137 = $138 | $136; + $139 = HEAP32[$6>>2]|0; + $140 = HEAP32[$7>>2]|0; + $141 = ($139>>>0)<($140>>>0); + if ($141) { + $142 = ((($139)) + 1|0); + HEAP32[$6>>2] = $142; + $143 = HEAP8[$139>>0]|0; + $144 = $143&255; + $$4163$be = $144; + } else { + $145 = (___shgetc($0)|0); + $$4163$be = $145; + } + $146 = ((15221) + ($$4163$be)|0); + $147 = HEAP8[$146>>0]|0; + $148 = $147&255; + $149 = ($148>>>0)<($$1165168>>>0); + $150 = ($137>>>0)<(134217728); + $151 = $150 & $149; + if ($151) { + $$1155192 = $137;$138 = $148; + } else { + break; + } + } + $$4163$lcssa = $$4163$be;$155 = $147;$158 = 0;$160 = $137; + } else { + $$4163$lcssa = $$1160169;$155 = $133;$158 = 0;$160 = 0; + } + $152 = (_bitshift64Lshr(-1,-1,($131|0))|0); + $153 = tempRet0; + $154 = $155&255; + $156 = ($154>>>0)>=($$1165168>>>0); + $157 = ($158>>>0)>($153>>>0); + $159 = ($160>>>0)>($152>>>0); + $161 = ($158|0)==($153|0); + $162 = $161 & $159; + $163 = $157 | $162; + $or$cond187 = $156 | $163; + if ($or$cond187) { + $$1165167 = $$1165168;$$8 = $$4163$lcssa;$293 = $160;$294 = $158; + label = 72; + break; + } else { + $164 = $160;$165 = $158;$169 = $155; + } + while(1) { + $166 = (_bitshift64Shl(($164|0),($165|0),($131|0))|0); + $167 = tempRet0; + $168 = $169&255; + $170 = $168 | $166; + $171 = HEAP32[$6>>2]|0; + $172 = HEAP32[$7>>2]|0; + $173 = ($171>>>0)<($172>>>0); + if ($173) { + $174 = ((($171)) + 1|0); + HEAP32[$6>>2] = $174; + $175 = HEAP8[$171>>0]|0; + $176 = $175&255; + $$5$be = $176; + } else { + $177 = (___shgetc($0)|0); + $$5$be = $177; + } + $178 = ((15221) + ($$5$be)|0); + $179 = HEAP8[$178>>0]|0; + $180 = $179&255; + $181 = ($180>>>0)>=($$1165168>>>0); + $182 = ($167>>>0)>($153>>>0); + $183 = ($170>>>0)>($152>>>0); + $184 = ($167|0)==($153|0); + $185 = $184 & $183; + $186 = $182 | $185; + $or$cond = $181 | $186; + if ($or$cond) { + $$1165167 = $$1165168;$$8 = $$5$be;$293 = $170;$294 = $167; + label = 72; + break L63; + } else { + $164 = $170;$165 = $167;$169 = $179; + } + } + } + $122 = ((15221) + ($$1160169)|0); + $123 = HEAP8[$122>>0]|0; + $124 = $123&255; + $125 = ($124>>>0)<($$1165168>>>0); + if ($125) { + $$2156210 = 0;$189 = $124; + while(1) { + $187 = Math_imul($$2156210, $$1165168)|0; + $188 = (($189) + ($187))|0; + $190 = HEAP32[$6>>2]|0; + $191 = HEAP32[$7>>2]|0; + $192 = ($190>>>0)<($191>>>0); + if ($192) { + $193 = ((($190)) + 1|0); + HEAP32[$6>>2] = $193; + $194 = HEAP8[$190>>0]|0; + $195 = $194&255; + $$6$be = $195; + } else { + $196 = (___shgetc($0)|0); + $$6$be = $196; + } + $197 = ((15221) + ($$6$be)|0); + $198 = HEAP8[$197>>0]|0; + $199 = $198&255; + $200 = ($199>>>0)<($$1165168>>>0); + $201 = ($188>>>0)<(119304647); + $202 = $201 & $200; + if ($202) { + $$2156210 = $188;$189 = $199; + } else { + break; + } + } + $$6$lcssa = $$6$be;$204 = $198;$295 = $188;$296 = 0; + } else { + $$6$lcssa = $$1160169;$204 = $123;$295 = 0;$296 = 0; + } + $203 = $204&255; + $205 = ($203>>>0)<($$1165168>>>0); + if ($205) { + $206 = (___udivdi3(-1,-1,($$1165168|0),0)|0); + $207 = tempRet0; + $$7198 = $$6$lcssa;$209 = $296;$211 = $295;$218 = $204; + while(1) { + $208 = ($209>>>0)>($207>>>0); + $210 = ($211>>>0)>($206>>>0); + $212 = ($209|0)==($207|0); + $213 = $212 & $210; + $214 = $208 | $213; + if ($214) { + $$1165167 = $$1165168;$$8 = $$7198;$293 = $211;$294 = $209; + label = 72; + break L63; + } + $215 = (___muldi3(($211|0),($209|0),($$1165168|0),0)|0); + $216 = tempRet0; + $217 = $218&255; + $219 = $217 ^ -1; + $220 = ($216>>>0)>(4294967295); + $221 = ($215>>>0)>($219>>>0); + $222 = ($216|0)==(-1); + $223 = $222 & $221; + $224 = $220 | $223; + if ($224) { + $$1165167 = $$1165168;$$8 = $$7198;$293 = $211;$294 = $209; + label = 72; + break L63; + } + $225 = (_i64Add(($217|0),0,($215|0),($216|0))|0); + $226 = tempRet0; + $227 = HEAP32[$6>>2]|0; + $228 = HEAP32[$7>>2]|0; + $229 = ($227>>>0)<($228>>>0); + if ($229) { + $230 = ((($227)) + 1|0); + HEAP32[$6>>2] = $230; + $231 = HEAP8[$227>>0]|0; + $232 = $231&255; + $$7$be = $232; + } else { + $233 = (___shgetc($0)|0); + $$7$be = $233; + } + $234 = ((15221) + ($$7$be)|0); + $235 = HEAP8[$234>>0]|0; + $236 = $235&255; + $237 = ($236>>>0)<($$1165168>>>0); + if ($237) { + $$7198 = $$7$be;$209 = $226;$211 = $225;$218 = $235; + } else { + $$1165167 = $$1165168;$$8 = $$7$be;$293 = $225;$294 = $226; + label = 72; + break; + } + } + } else { + $$1165167 = $$1165168;$$8 = $$6$lcssa;$293 = $295;$294 = $296; + label = 72; + } + } + } while(0); + if ((label|0) == 72) { + $238 = ((15221) + ($$8)|0); + $239 = HEAP8[$238>>0]|0; + $240 = $239&255; + $241 = ($240>>>0)<($$1165167>>>0); + if ($241) { + while(1) { + $242 = HEAP32[$6>>2]|0; + $243 = HEAP32[$7>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + $245 = ((($242)) + 1|0); + HEAP32[$6>>2] = $245; + $246 = HEAP8[$242>>0]|0; + $247 = $246&255; + $$9$be = $247; + } else { + $248 = (___shgetc($0)|0); + $$9$be = $248; + } + $249 = ((15221) + ($$9$be)|0); + $250 = HEAP8[$249>>0]|0; + $251 = $250&255; + $252 = ($251>>>0)<($$1165167>>>0); + if (!($252)) { + break; + } + } + $253 = (___errno_location()|0); + HEAP32[$253>>2] = 34; + $254 = $3 & 1; + $255 = ($254|0)==(0); + $256 = (0)==(0); + $257 = $255 & $256; + $$0157$ = $257 ? $$0157 : 0; + $$1158 = $$0157$;$263 = $4;$265 = $3; + } else { + $$1158 = $$0157;$263 = $294;$265 = $293; + } + } + $258 = HEAP32[$7>>2]|0; + $259 = ($258|0)==(0|0); + if (!($259)) { + $260 = HEAP32[$6>>2]|0; + $261 = ((($260)) + -1|0); + HEAP32[$6>>2] = $261; + } + $262 = ($263>>>0)<($4>>>0); + $264 = ($265>>>0)<($3>>>0); + $266 = ($263|0)==($4|0); + $267 = $266 & $264; + $268 = $262 | $267; + if (!($268)) { + $269 = $3 & 1; + $270 = ($269|0)!=(0); + $271 = (0)!=(0); + $272 = $270 | $271; + $273 = ($$1158|0)!=(0); + $or$cond12 = $272 | $273; + if (!($or$cond12)) { + $274 = (___errno_location()|0); + HEAP32[$274>>2] = 34; + $275 = (_i64Add(($3|0),($4|0),-1,-1)|0); + $276 = tempRet0; + $289 = $276;$290 = $275; + break; + } + $277 = ($263>>>0)>($4>>>0); + $278 = ($265>>>0)>($3>>>0); + $279 = ($263|0)==($4|0); + $280 = $279 & $278; + $281 = $277 | $280; + if ($281) { + $282 = (___errno_location()|0); + HEAP32[$282>>2] = 34; + $289 = $4;$290 = $3; + break; + } + } + $283 = ($$1158|0)<(0); + $284 = $283 << 31 >> 31; + $285 = $265 ^ $$1158; + $286 = $263 ^ $284; + $287 = (_i64Subtract(($285|0),($286|0),($$1158|0),($284|0))|0); + $288 = tempRet0; + $289 = $288;$290 = $287; + } + } while(0); + tempRet0 = ($289); + return ($290|0); +} +function ___shgetc($0) { + $0 = $0|0; + var $$0 = 0, $$phi$trans$insert = 0, $$phi$trans$insert28$phi$trans$insert = 0, $$pre = 0, $$pre$phi34Z2D = 0, $$pre29$pre = 0, $$pre35 = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 104|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if ($3) { + label = 3; + } else { + $4 = ((($0)) + 108|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)<($2|0); + if ($6) { + label = 3; + } else { + label = 4; + } + } + if ((label|0) == 3) { + $7 = (___uflow($0)|0); + $8 = ($7|0)<(0); + if ($8) { + label = 4; + } else { + $10 = HEAP32[$1>>2]|0; + $11 = ($10|0)==(0); + $$phi$trans$insert = ((($0)) + 8|0); + if ($11) { + $$pre = HEAP32[$$phi$trans$insert>>2]|0; + $$phi$trans$insert28$phi$trans$insert = ((($0)) + 4|0); + $$pre29$pre = HEAP32[$$phi$trans$insert28$phi$trans$insert>>2]|0; + $$pre35 = ((($0)) + 108|0); + $$pre$phi34Z2D = $$pre35;$$sink = $$pre;$26 = $$pre;$29 = $$pre29$pre; + } else { + $12 = HEAP32[$$phi$trans$insert>>2]|0; + $13 = ((($0)) + 4|0); + $14 = HEAP32[$13>>2]|0; + $15 = $14; + $16 = (($12) - ($15))|0; + $17 = ((($0)) + 108|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($10) - ($18))|0; + $20 = ($16|0)<($19|0); + $21 = $12; + if ($20) { + $$pre$phi34Z2D = $17;$$sink = $21;$26 = $21;$29 = $14; + } else { + $22 = (($19) + -1)|0; + $23 = (($14) + ($22)|0); + $$pre$phi34Z2D = $17;$$sink = $23;$26 = $21;$29 = $14; + } + } + $24 = ((($0)) + 100|0); + HEAP32[$24>>2] = $$sink; + $25 = ($26|0)==(0|0); + if (!($25)) { + $27 = $26; + $28 = $29; + $30 = HEAP32[$$pre$phi34Z2D>>2]|0; + $31 = (($27) + 1)|0; + $32 = (($31) - ($28))|0; + $33 = (($32) + ($30))|0; + HEAP32[$$pre$phi34Z2D>>2] = $33; + } + $34 = ((($29)) + -1|0); + $35 = HEAP8[$34>>0]|0; + $36 = $35&255; + $37 = ($36|0)==($7|0); + if ($37) { + $$0 = $7; + } else { + $38 = $7&255; + HEAP8[$34>>0] = $38; + $$0 = $7; + } + } + } + if ((label|0) == 4) { + $9 = ((($0)) + 100|0); + HEAP32[$9>>2] = 0; + $$0 = -1; + } + return ($$0|0); +} +function _isspace($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(32); + $2 = (($0) + -9)|0; + $3 = ($2>>>0)<(5); + $4 = $1 | $3; + $5 = $4&1; + return ($5|0); +} +function ___uflow($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = (___toread($0)|0); + $3 = ($2|0)==(0); + if ($3) { + $4 = ((($0)) + 32|0); + $5 = HEAP32[$4>>2]|0; + $6 = (FUNCTION_TABLE_iiii[$5 & 15]($0,$1,1)|0); + $7 = ($6|0)==(1); + if ($7) { + $8 = HEAP8[$1>>0]|0; + $9 = $8&255; + $$0 = $9; + } else { + $$0 = -1; + } + } else { + $$0 = -1; + } + STACKTOP = sp;return ($$0|0); +} +function ___toread($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = ((($0)) + 20|0); + $8 = HEAP32[$7>>2]|0; + $9 = ((($0)) + 28|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($8>>>0)>($10>>>0); + if ($11) { + $12 = ((($0)) + 36|0); + $13 = HEAP32[$12>>2]|0; + (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0); + } + $14 = ((($0)) + 16|0); + HEAP32[$14>>2] = 0; + HEAP32[$9>>2] = 0; + HEAP32[$7>>2] = 0; + $15 = HEAP32[$0>>2]|0; + $16 = $15 & 4; + $17 = ($16|0)==(0); + if ($17) { + $19 = ((($0)) + 44|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($0)) + 48|0); + $22 = HEAP32[$21>>2]|0; + $23 = (($20) + ($22)|0); + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = $23; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = $23; + $26 = $15 << 27; + $sext = $26 >> 31; + $$0 = $sext; + } else { + $18 = $15 | 32; + HEAP32[$0>>2] = $18; + $$0 = -1; + } + return ($$0|0); +} +function _copysign($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + HEAPF64[tempDoublePtr>>3] = $1;$4 = HEAP32[tempDoublePtr>>2]|0; + $5 = HEAP32[tempDoublePtr+4>>2]|0; + $6 = $3 & 2147483647; + $7 = $5 & -2147483648; + $8 = $7 | $6; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $8;$9 = +HEAPF64[tempDoublePtr>>3]; + return (+$9); +} +function _strcmp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $2 = HEAP8[$0>>0]|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($2<<24>>24)!=($3<<24>>24); + $5 = ($2<<24>>24)==(0); + $or$cond9 = $5 | $4; + if ($or$cond9) { + $$lcssa = $3;$$lcssa8 = $2; + } else { + $$011 = $1;$$0710 = $0; + while(1) { + $6 = ((($$0710)) + 1|0); + $7 = ((($$011)) + 1|0); + $8 = HEAP8[$6>>0]|0; + $9 = HEAP8[$7>>0]|0; + $10 = ($8<<24>>24)!=($9<<24>>24); + $11 = ($8<<24>>24)==(0); + $or$cond = $11 | $10; + if ($or$cond) { + $$lcssa = $9;$$lcssa8 = $8; + break; + } else { + $$011 = $7;$$0710 = $6; + } + } + } + $12 = $$lcssa8&255; + $13 = $$lcssa&255; + $14 = (($12) - ($13))|0; + return ($14|0); +} +function _memcmp($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $14 = 0; + } else { + $$01318 = $0;$$01417 = $2;$$019 = $1; + while(1) { + $4 = HEAP8[$$01318>>0]|0; + $5 = HEAP8[$$019>>0]|0; + $6 = ($4<<24>>24)==($5<<24>>24); + if (!($6)) { + break; + } + $7 = (($$01417) + -1)|0; + $8 = ((($$01318)) + 1|0); + $9 = ((($$019)) + 1|0); + $10 = ($7|0)==(0); + if ($10) { + $14 = 0; + break L1; + } else { + $$01318 = $8;$$01417 = $7;$$019 = $9; + } + } + $11 = $4&255; + $12 = $5&255; + $13 = (($11) - ($12))|0; + $14 = $13; + } + } while(0); + return ($14|0); +} +function _vsprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (_vsnprintf($0,2147483647,$1,$2)|0); + return ($3|0); +} +function _vsnprintf($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$$015 = 0, $$0 = 0, $$014 = 0, $$015 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); + $4 = sp + 124|0; + $5 = sp; + dest=$5; src=4244; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); + $6 = (($1) + -1)|0; + $7 = ($6>>>0)>(2147483646); + if ($7) { + $8 = ($1|0)==(0); + if ($8) { + $$014 = $4;$$015 = 1; + label = 4; + } else { + $9 = (___errno_location()|0); + HEAP32[$9>>2] = 75; + $$0 = -1; + } + } else { + $$014 = $0;$$015 = $1; + label = 4; + } + if ((label|0) == 4) { + $10 = $$014; + $11 = (-2 - ($10))|0; + $12 = ($$015>>>0)>($11>>>0); + $$$015 = $12 ? $11 : $$015; + $13 = ((($5)) + 48|0); + HEAP32[$13>>2] = $$$015; + $14 = ((($5)) + 20|0); + HEAP32[$14>>2] = $$014; + $15 = ((($5)) + 44|0); + HEAP32[$15>>2] = $$014; + $16 = (($$014) + ($$$015)|0); + $17 = ((($5)) + 16|0); + HEAP32[$17>>2] = $16; + $18 = ((($5)) + 28|0); + HEAP32[$18>>2] = $16; + $19 = (_vfprintf($5,$2,$3)|0); + $20 = ($$$015|0)==(0); + if ($20) { + $$0 = $19; + } else { + $21 = HEAP32[$14>>2]|0; + $22 = HEAP32[$17>>2]|0; + $23 = ($21|0)==($22|0); + $24 = $23 << 31 >> 31; + $25 = (($21) + ($24)|0); + HEAP8[$25>>0] = 0; + $$0 = $19; + } + } + STACKTOP = sp;return ($$0|0); +} +function _vfprintf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$0 = 0, $$1 = 0, $$1$ = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); + $3 = sp + 120|0; + $4 = sp + 80|0; + $5 = sp; + $6 = sp + 136|0; + dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $vacopy_currentptr = HEAP32[$2>>2]|0; + HEAP32[$3>>2] = $vacopy_currentptr; + $7 = (_printf_core(0,$1,$3,$5,$4)|0); + $8 = ($7|0)<(0); + if ($8) { + $$0 = -1; + } else { + $9 = ((($0)) + 76|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)>(-1); + if ($11) { + $12 = (___lockfile($0)|0); + $40 = $12; + } else { + $40 = 0; + } + $13 = HEAP32[$0>>2]|0; + $14 = $13 & 32; + $15 = ((($0)) + 74|0); + $16 = HEAP8[$15>>0]|0; + $17 = ($16<<24>>24)<(1); + if ($17) { + $18 = $13 & -33; + HEAP32[$0>>2] = $18; + } + $19 = ((($0)) + 48|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($20|0)==(0); + if ($21) { + $23 = ((($0)) + 44|0); + $24 = HEAP32[$23>>2]|0; + HEAP32[$23>>2] = $6; + $25 = ((($0)) + 28|0); + HEAP32[$25>>2] = $6; + $26 = ((($0)) + 20|0); + HEAP32[$26>>2] = $6; + HEAP32[$19>>2] = 80; + $27 = ((($6)) + 80|0); + $28 = ((($0)) + 16|0); + HEAP32[$28>>2] = $27; + $29 = (_printf_core($0,$1,$3,$5,$4)|0); + $30 = ($24|0)==(0|0); + if ($30) { + $$1 = $29; + } else { + $31 = ((($0)) + 36|0); + $32 = HEAP32[$31>>2]|0; + (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0); + $33 = HEAP32[$26>>2]|0; + $34 = ($33|0)==(0|0); + $$ = $34 ? -1 : $29; + HEAP32[$23>>2] = $24; + HEAP32[$19>>2] = 0; + HEAP32[$28>>2] = 0; + HEAP32[$25>>2] = 0; + HEAP32[$26>>2] = 0; + $$1 = $$; + } + } else { + $22 = (_printf_core($0,$1,$3,$5,$4)|0); + $$1 = $22; + } + $35 = HEAP32[$0>>2]|0; + $36 = $35 & 32; + $37 = ($36|0)==(0); + $$1$ = $37 ? $$1 : -1; + $38 = $35 | $14; + HEAP32[$0>>2] = $38; + $39 = ($40|0)==(0); + if (!($39)) { + ___unlockfile($0); + } + $$0 = $$1$; + } + STACKTOP = sp;return ($$0|0); +} +function _printf_core($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$ = 0, $$$ = 0, $$$0259 = 0, $$$0262 = 0, $$$0269 = 0, $$$4266 = 0, $$$5 = 0, $$0 = 0, $$0228 = 0, $$0228$ = 0, $$0229322 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240$lcssa = 0, $$0240$lcssa357 = 0, $$0240321 = 0, $$0243 = 0, $$0247 = 0, $$0249$lcssa = 0; + var $$0249306 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0, $$0254$$0254$ = 0, $$0259 = 0, $$0262$lcssa = 0, $$0262311 = 0, $$0269 = 0, $$0269$phi = 0, $$1 = 0, $$1230333 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241332 = 0, $$1244320 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0; + var $$1260 = 0, $$1263 = 0, $$1263$ = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242305 = 0, $$2245 = 0, $$2251 = 0, $$2256 = 0, $$2256$ = 0, $$2256$$$2256 = 0, $$2261 = 0, $$2271 = 0, $$284$ = 0, $$289 = 0, $$290 = 0, $$3257 = 0, $$3265 = 0; + var $$3272 = 0, $$3303 = 0, $$377 = 0, $$4258355 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa295 = 0, $$pre = 0, $$pre346 = 0, $$pre347 = 0, $$pre347$pre = 0, $$pre349 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; + var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; + var $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0; + var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0; + var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0; + var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0; + var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0; + var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; + var $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; + var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $isdigit = 0, $isdigit275 = 0, $isdigit277 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp274 = 0; + var $isdigittmp276 = 0, $narrow = 0, $or$cond = 0, $or$cond281 = 0, $or$cond283 = 0, $or$cond286 = 0, $storemerge = 0, $storemerge273310 = 0, $storemerge278 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $5 = sp + 16|0; + $6 = sp; + $7 = sp + 24|0; + $8 = sp + 8|0; + $9 = sp + 20|0; + HEAP32[$5>>2] = $1; + $10 = ($0|0)!=(0|0); + $11 = ((($7)) + 40|0); + $12 = $11; + $13 = ((($7)) + 39|0); + $14 = ((($8)) + 4|0); + $$0243 = 0;$$0247 = 0;$$0269 = 0;$21 = $1; + L1: while(1) { + $15 = ($$0247|0)>(-1); + do { + if ($15) { + $16 = (2147483647 - ($$0247))|0; + $17 = ($$0243|0)>($16|0); + if ($17) { + $18 = (___errno_location()|0); + HEAP32[$18>>2] = 75; + $$1248 = -1; + break; + } else { + $19 = (($$0243) + ($$0247))|0; + $$1248 = $19; + break; + } + } else { + $$1248 = $$0247; + } + } while(0); + $20 = HEAP8[$21>>0]|0; + $22 = ($20<<24>>24)==(0); + if ($22) { + label = 87; + break; + } else { + $23 = $20;$25 = $21; + } + L9: while(1) { + switch ($23<<24>>24) { + case 37: { + $$0249306 = $25;$27 = $25; + label = 9; + break L9; + break; + } + case 0: { + $$0249$lcssa = $25;$39 = $25; + break L9; + break; + } + default: { + } + } + $24 = ((($25)) + 1|0); + HEAP32[$5>>2] = $24; + $$pre = HEAP8[$24>>0]|0; + $23 = $$pre;$25 = $24; + } + L12: do { + if ((label|0) == 9) { + while(1) { + label = 0; + $26 = ((($27)) + 1|0); + $28 = HEAP8[$26>>0]|0; + $29 = ($28<<24>>24)==(37); + if (!($29)) { + $$0249$lcssa = $$0249306;$39 = $27; + break L12; + } + $30 = ((($$0249306)) + 1|0); + $31 = ((($27)) + 2|0); + HEAP32[$5>>2] = $31; + $32 = HEAP8[$31>>0]|0; + $33 = ($32<<24>>24)==(37); + if ($33) { + $$0249306 = $30;$27 = $31; + label = 9; + } else { + $$0249$lcssa = $30;$39 = $31; + break; + } + } + } + } while(0); + $34 = $$0249$lcssa; + $35 = $21; + $36 = (($34) - ($35))|0; + if ($10) { + _out($0,$21,$36); + } + $37 = ($36|0)==(0); + if (!($37)) { + $$0269$phi = $$0269;$$0243 = $36;$$0247 = $$1248;$21 = $39;$$0269 = $$0269$phi; + continue; + } + $38 = ((($39)) + 1|0); + $40 = HEAP8[$38>>0]|0; + $41 = $40 << 24 >> 24; + $isdigittmp = (($41) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $42 = ((($39)) + 2|0); + $43 = HEAP8[$42>>0]|0; + $44 = ($43<<24>>24)==(36); + $45 = ((($39)) + 3|0); + $$377 = $44 ? $45 : $38; + $$$0269 = $44 ? 1 : $$0269; + $isdigittmp$ = $44 ? $isdigittmp : -1; + $$0253 = $isdigittmp$;$$1270 = $$$0269;$storemerge = $$377; + } else { + $$0253 = -1;$$1270 = $$0269;$storemerge = $38; + } + HEAP32[$5>>2] = $storemerge; + $46 = HEAP8[$storemerge>>0]|0; + $47 = $46 << 24 >> 24; + $48 = (($47) + -32)|0; + $49 = ($48>>>0)<(32); + L24: do { + if ($49) { + $$0262311 = 0;$329 = $46;$51 = $48;$storemerge273310 = $storemerge; + while(1) { + $50 = 1 << $51; + $52 = $50 & 75913; + $53 = ($52|0)==(0); + if ($53) { + $$0262$lcssa = $$0262311;$$lcssa295 = $329;$62 = $storemerge273310; + break L24; + } + $54 = $50 | $$0262311; + $55 = ((($storemerge273310)) + 1|0); + HEAP32[$5>>2] = $55; + $56 = HEAP8[$55>>0]|0; + $57 = $56 << 24 >> 24; + $58 = (($57) + -32)|0; + $59 = ($58>>>0)<(32); + if ($59) { + $$0262311 = $54;$329 = $56;$51 = $58;$storemerge273310 = $55; + } else { + $$0262$lcssa = $54;$$lcssa295 = $56;$62 = $55; + break; + } + } + } else { + $$0262$lcssa = 0;$$lcssa295 = $46;$62 = $storemerge; + } + } while(0); + $60 = ($$lcssa295<<24>>24)==(42); + if ($60) { + $61 = ((($62)) + 1|0); + $63 = HEAP8[$61>>0]|0; + $64 = $63 << 24 >> 24; + $isdigittmp276 = (($64) + -48)|0; + $isdigit277 = ($isdigittmp276>>>0)<(10); + if ($isdigit277) { + $65 = ((($62)) + 2|0); + $66 = HEAP8[$65>>0]|0; + $67 = ($66<<24>>24)==(36); + if ($67) { + $68 = (($4) + ($isdigittmp276<<2)|0); + HEAP32[$68>>2] = 10; + $69 = HEAP8[$61>>0]|0; + $70 = $69 << 24 >> 24; + $71 = (($70) + -48)|0; + $72 = (($3) + ($71<<3)|0); + $73 = $72; + $74 = $73; + $75 = HEAP32[$74>>2]|0; + $76 = (($73) + 4)|0; + $77 = $76; + $78 = HEAP32[$77>>2]|0; + $79 = ((($62)) + 3|0); + $$0259 = $75;$$2271 = 1;$storemerge278 = $79; + } else { + label = 23; + } + } else { + label = 23; + } + if ((label|0) == 23) { + label = 0; + $80 = ($$1270|0)==(0); + if (!($80)) { + $$0 = -1; + break; + } + if ($10) { + $arglist_current = HEAP32[$2>>2]|0; + $81 = $arglist_current; + $82 = ((0) + 4|0); + $expanded4 = $82; + $expanded = (($expanded4) - 1)|0; + $83 = (($81) + ($expanded))|0; + $84 = ((0) + 4|0); + $expanded8 = $84; + $expanded7 = (($expanded8) - 1)|0; + $expanded6 = $expanded7 ^ -1; + $85 = $83 & $expanded6; + $86 = $85; + $87 = HEAP32[$86>>2]|0; + $arglist_next = ((($86)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0259 = $87;$$2271 = 0;$storemerge278 = $61; + } else { + $$0259 = 0;$$2271 = 0;$storemerge278 = $61; + } + } + HEAP32[$5>>2] = $storemerge278; + $88 = ($$0259|0)<(0); + $89 = $$0262$lcssa | 8192; + $90 = (0 - ($$0259))|0; + $$$0262 = $88 ? $89 : $$0262$lcssa; + $$$0259 = $88 ? $90 : $$0259; + $$1260 = $$$0259;$$1263 = $$$0262;$$3272 = $$2271;$94 = $storemerge278; + } else { + $91 = (_getint($5)|0); + $92 = ($91|0)<(0); + if ($92) { + $$0 = -1; + break; + } + $$pre346 = HEAP32[$5>>2]|0; + $$1260 = $91;$$1263 = $$0262$lcssa;$$3272 = $$1270;$94 = $$pre346; + } + $93 = HEAP8[$94>>0]|0; + $95 = ($93<<24>>24)==(46); + do { + if ($95) { + $96 = ((($94)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = ($97<<24>>24)==(42); + if (!($98)) { + $125 = ((($94)) + 1|0); + HEAP32[$5>>2] = $125; + $126 = (_getint($5)|0); + $$pre347$pre = HEAP32[$5>>2]|0; + $$0254 = $126;$$pre347 = $$pre347$pre; + break; + } + $99 = ((($94)) + 2|0); + $100 = HEAP8[$99>>0]|0; + $101 = $100 << 24 >> 24; + $isdigittmp274 = (($101) + -48)|0; + $isdigit275 = ($isdigittmp274>>>0)<(10); + if ($isdigit275) { + $102 = ((($94)) + 3|0); + $103 = HEAP8[$102>>0]|0; + $104 = ($103<<24>>24)==(36); + if ($104) { + $105 = (($4) + ($isdigittmp274<<2)|0); + HEAP32[$105>>2] = 10; + $106 = HEAP8[$99>>0]|0; + $107 = $106 << 24 >> 24; + $108 = (($107) + -48)|0; + $109 = (($3) + ($108<<3)|0); + $110 = $109; + $111 = $110; + $112 = HEAP32[$111>>2]|0; + $113 = (($110) + 4)|0; + $114 = $113; + $115 = HEAP32[$114>>2]|0; + $116 = ((($94)) + 4|0); + HEAP32[$5>>2] = $116; + $$0254 = $112;$$pre347 = $116; + break; + } + } + $117 = ($$3272|0)==(0); + if (!($117)) { + $$0 = -1; + break L1; + } + if ($10) { + $arglist_current2 = HEAP32[$2>>2]|0; + $118 = $arglist_current2; + $119 = ((0) + 4|0); + $expanded11 = $119; + $expanded10 = (($expanded11) - 1)|0; + $120 = (($118) + ($expanded10))|0; + $121 = ((0) + 4|0); + $expanded15 = $121; + $expanded14 = (($expanded15) - 1)|0; + $expanded13 = $expanded14 ^ -1; + $122 = $120 & $expanded13; + $123 = $122; + $124 = HEAP32[$123>>2]|0; + $arglist_next3 = ((($123)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $330 = $124; + } else { + $330 = 0; + } + HEAP32[$5>>2] = $99; + $$0254 = $330;$$pre347 = $99; + } else { + $$0254 = -1;$$pre347 = $94; + } + } while(0); + $$0252 = 0;$128 = $$pre347; + while(1) { + $127 = HEAP8[$128>>0]|0; + $129 = $127 << 24 >> 24; + $130 = (($129) + -65)|0; + $131 = ($130>>>0)>(57); + if ($131) { + $$0 = -1; + break L1; + } + $132 = ((($128)) + 1|0); + HEAP32[$5>>2] = $132; + $133 = HEAP8[$128>>0]|0; + $134 = $133 << 24 >> 24; + $135 = (($134) + -65)|0; + $136 = ((15486 + (($$0252*58)|0)|0) + ($135)|0); + $137 = HEAP8[$136>>0]|0; + $138 = $137&255; + $139 = (($138) + -1)|0; + $140 = ($139>>>0)<(8); + if ($140) { + $$0252 = $138;$128 = $132; + } else { + break; + } + } + $141 = ($137<<24>>24)==(0); + if ($141) { + $$0 = -1; + break; + } + $142 = ($137<<24>>24)==(19); + $143 = ($$0253|0)>(-1); + do { + if ($142) { + if ($143) { + $$0 = -1; + break L1; + } else { + label = 49; + } + } else { + if ($143) { + $144 = (($4) + ($$0253<<2)|0); + HEAP32[$144>>2] = $138; + $145 = (($3) + ($$0253<<3)|0); + $146 = $145; + $147 = $146; + $148 = HEAP32[$147>>2]|0; + $149 = (($146) + 4)|0; + $150 = $149; + $151 = HEAP32[$150>>2]|0; + $152 = $6; + $153 = $152; + HEAP32[$153>>2] = $148; + $154 = (($152) + 4)|0; + $155 = $154; + HEAP32[$155>>2] = $151; + label = 49; + break; + } + if (!($10)) { + $$0 = 0; + break L1; + } + _pop_arg($6,$138,$2); + } + } while(0); + if ((label|0) == 49) { + label = 0; + if (!($10)) { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + } + $156 = HEAP8[$128>>0]|0; + $157 = $156 << 24 >> 24; + $158 = ($$0252|0)!=(0); + $159 = $157 & 15; + $160 = ($159|0)==(3); + $or$cond281 = $158 & $160; + $161 = $157 & -33; + $$0235 = $or$cond281 ? $161 : $157; + $162 = $$1263 & 8192; + $163 = ($162|0)==(0); + $164 = $$1263 & -65537; + $$1263$ = $163 ? $$1263 : $164; + L71: do { + switch ($$0235|0) { + case 110: { + $trunc = $$0252&255; + switch ($trunc<<24>>24) { + case 0: { + $171 = HEAP32[$6>>2]|0; + HEAP32[$171>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 1: { + $172 = HEAP32[$6>>2]|0; + HEAP32[$172>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 2: { + $173 = ($$1248|0)<(0); + $174 = $173 << 31 >> 31; + $175 = HEAP32[$6>>2]|0; + $176 = $175; + $177 = $176; + HEAP32[$177>>2] = $$1248; + $178 = (($176) + 4)|0; + $179 = $178; + HEAP32[$179>>2] = $174; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 3: { + $180 = $$1248&65535; + $181 = HEAP32[$6>>2]|0; + HEAP16[$181>>1] = $180; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 4: { + $182 = $$1248&255; + $183 = HEAP32[$6>>2]|0; + HEAP8[$183>>0] = $182; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 6: { + $184 = HEAP32[$6>>2]|0; + HEAP32[$184>>2] = $$1248; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + case 7: { + $185 = ($$1248|0)<(0); + $186 = $185 << 31 >> 31; + $187 = HEAP32[$6>>2]|0; + $188 = $187; + $189 = $188; + HEAP32[$189>>2] = $$1248; + $190 = (($188) + 4)|0; + $191 = $190; + HEAP32[$191>>2] = $186; + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$0243 = 0;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + } + } + break; + } + case 112: { + $192 = ($$0254>>>0)>(8); + $193 = $192 ? $$0254 : 8; + $194 = $$1263$ | 8; + $$1236 = 120;$$1255 = $193;$$3265 = $194; + label = 61; + break; + } + case 88: case 120: { + $$1236 = $$0235;$$1255 = $$0254;$$3265 = $$1263$; + label = 61; + break; + } + case 111: { + $210 = $6; + $211 = $210; + $212 = HEAP32[$211>>2]|0; + $213 = (($210) + 4)|0; + $214 = $213; + $215 = HEAP32[$214>>2]|0; + $216 = (_fmt_o($212,$215,$11)|0); + $217 = $$1263$ & 8; + $218 = ($217|0)==(0); + $219 = $216; + $220 = (($12) - ($219))|0; + $221 = ($$0254|0)>($220|0); + $222 = (($220) + 1)|0; + $223 = $218 | $221; + $$0254$$0254$ = $223 ? $$0254 : $222; + $$0228 = $216;$$1233 = 0;$$1238 = 15950;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215; + label = 67; + break; + } + case 105: case 100: { + $224 = $6; + $225 = $224; + $226 = HEAP32[$225>>2]|0; + $227 = (($224) + 4)|0; + $228 = $227; + $229 = HEAP32[$228>>2]|0; + $230 = ($229|0)<(0); + if ($230) { + $231 = (_i64Subtract(0,0,($226|0),($229|0))|0); + $232 = tempRet0; + $233 = $6; + $234 = $233; + HEAP32[$234>>2] = $231; + $235 = (($233) + 4)|0; + $236 = $235; + HEAP32[$236>>2] = $232; + $$0232 = 1;$$0237 = 15950;$242 = $231;$243 = $232; + label = 66; + break L71; + } else { + $237 = $$1263$ & 2048; + $238 = ($237|0)==(0); + $239 = $$1263$ & 1; + $240 = ($239|0)==(0); + $$ = $240 ? 15950 : (15952); + $$$ = $238 ? $$ : (15951); + $241 = $$1263$ & 2049; + $narrow = ($241|0)!=(0); + $$284$ = $narrow&1; + $$0232 = $$284$;$$0237 = $$$;$242 = $226;$243 = $229; + label = 66; + break L71; + } + break; + } + case 117: { + $165 = $6; + $166 = $165; + $167 = HEAP32[$166>>2]|0; + $168 = (($165) + 4)|0; + $169 = $168; + $170 = HEAP32[$169>>2]|0; + $$0232 = 0;$$0237 = 15950;$242 = $167;$243 = $170; + label = 66; + break; + } + case 99: { + $259 = $6; + $260 = $259; + $261 = HEAP32[$260>>2]|0; + $262 = (($259) + 4)|0; + $263 = $262; + $264 = HEAP32[$263>>2]|0; + $265 = $261&255; + HEAP8[$13>>0] = $265; + $$2 = $13;$$2234 = 0;$$2239 = 15950;$$2251 = $11;$$5 = 1;$$6268 = $164; + break; + } + case 109: { + $266 = (___errno_location()|0); + $267 = HEAP32[$266>>2]|0; + $268 = (_strerror($267)|0); + $$1 = $268; + label = 71; + break; + } + case 115: { + $269 = HEAP32[$6>>2]|0; + $270 = ($269|0)!=(0|0); + $271 = $270 ? $269 : 15960; + $$1 = $271; + label = 71; + break; + } + case 67: { + $278 = $6; + $279 = $278; + $280 = HEAP32[$279>>2]|0; + $281 = (($278) + 4)|0; + $282 = $281; + $283 = HEAP32[$282>>2]|0; + HEAP32[$8>>2] = $280; + HEAP32[$14>>2] = 0; + HEAP32[$6>>2] = $8; + $$4258355 = -1;$331 = $8; + label = 75; + break; + } + case 83: { + $$pre349 = HEAP32[$6>>2]|0; + $284 = ($$0254|0)==(0); + if ($284) { + _pad_674($0,32,$$1260,0,$$1263$); + $$0240$lcssa357 = 0; + label = 84; + } else { + $$4258355 = $$0254;$331 = $$pre349; + label = 75; + } + break; + } + case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { + $306 = +HEAPF64[$6>>3]; + $307 = (_fmt_fp($0,$306,$$1260,$$0254,$$1263$,$$0235)|0); + $$0243 = $307;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue L1; + break; + } + default: { + $$2 = $21;$$2234 = 0;$$2239 = 15950;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$; + } + } + } while(0); + L95: do { + if ((label|0) == 61) { + label = 0; + $195 = $6; + $196 = $195; + $197 = HEAP32[$196>>2]|0; + $198 = (($195) + 4)|0; + $199 = $198; + $200 = HEAP32[$199>>2]|0; + $201 = $$1236 & 32; + $202 = (_fmt_x($197,$200,$11,$201)|0); + $203 = ($197|0)==(0); + $204 = ($200|0)==(0); + $205 = $203 & $204; + $206 = $$3265 & 8; + $207 = ($206|0)==(0); + $or$cond283 = $207 | $205; + $208 = $$1236 >> 4; + $209 = (15950 + ($208)|0); + $$289 = $or$cond283 ? 15950 : $209; + $$290 = $or$cond283 ? 0 : 2; + $$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200; + label = 67; + } + else if ((label|0) == 66) { + label = 0; + $244 = (_fmt_u($242,$243,$11)|0); + $$0228 = $244;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $$1263$;$248 = $242;$250 = $243; + label = 67; + } + else if ((label|0) == 71) { + label = 0; + $272 = (_memchr($$1,0,$$0254)|0); + $273 = ($272|0)==(0|0); + $274 = $272; + $275 = $$1; + $276 = (($274) - ($275))|0; + $277 = (($$1) + ($$0254)|0); + $$3257 = $273 ? $$0254 : $276; + $$1250 = $273 ? $277 : $272; + $$2 = $$1;$$2234 = 0;$$2239 = 15950;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164; + } + else if ((label|0) == 75) { + label = 0; + $$0229322 = $331;$$0240321 = 0;$$1244320 = 0; + while(1) { + $285 = HEAP32[$$0229322>>2]|0; + $286 = ($285|0)==(0); + if ($286) { + $$0240$lcssa = $$0240321;$$2245 = $$1244320; + break; + } + $287 = (_wctomb($9,$285)|0); + $288 = ($287|0)<(0); + $289 = (($$4258355) - ($$0240321))|0; + $290 = ($287>>>0)>($289>>>0); + $or$cond286 = $288 | $290; + if ($or$cond286) { + $$0240$lcssa = $$0240321;$$2245 = $287; + break; + } + $291 = ((($$0229322)) + 4|0); + $292 = (($287) + ($$0240321))|0; + $293 = ($$4258355>>>0)>($292>>>0); + if ($293) { + $$0229322 = $291;$$0240321 = $292;$$1244320 = $287; + } else { + $$0240$lcssa = $292;$$2245 = $287; + break; + } + } + $294 = ($$2245|0)<(0); + if ($294) { + $$0 = -1; + break L1; + } + _pad_674($0,32,$$1260,$$0240$lcssa,$$1263$); + $295 = ($$0240$lcssa|0)==(0); + if ($295) { + $$0240$lcssa357 = 0; + label = 84; + } else { + $$1230333 = $331;$$1241332 = 0; + while(1) { + $296 = HEAP32[$$1230333>>2]|0; + $297 = ($296|0)==(0); + if ($297) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $298 = (_wctomb($9,$296)|0); + $299 = (($298) + ($$1241332))|0; + $300 = ($299|0)>($$0240$lcssa|0); + if ($300) { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break L95; + } + $301 = ((($$1230333)) + 4|0); + _out($0,$9,$298); + $302 = ($299>>>0)<($$0240$lcssa>>>0); + if ($302) { + $$1230333 = $301;$$1241332 = $299; + } else { + $$0240$lcssa357 = $$0240$lcssa; + label = 84; + break; + } + } + } + } + } while(0); + if ((label|0) == 67) { + label = 0; + $245 = ($$2256|0)>(-1); + $246 = $$4266 & -65537; + $$$4266 = $245 ? $246 : $$4266; + $247 = ($248|0)!=(0); + $249 = ($250|0)!=(0); + $251 = $247 | $249; + $252 = ($$2256|0)!=(0); + $or$cond = $252 | $251; + $253 = $$0228; + $254 = (($12) - ($253))|0; + $255 = $251 ^ 1; + $256 = $255&1; + $257 = (($256) + ($254))|0; + $258 = ($$2256|0)>($257|0); + $$2256$ = $258 ? $$2256 : $257; + $$2256$$$2256 = $or$cond ? $$2256$ : $$2256; + $$0228$ = $or$cond ? $$0228 : $11; + $$2 = $$0228$;$$2234 = $$1233;$$2239 = $$1238;$$2251 = $11;$$5 = $$2256$$$2256;$$6268 = $$$4266; + } + else if ((label|0) == 84) { + label = 0; + $303 = $$1263$ ^ 8192; + _pad_674($0,32,$$1260,$$0240$lcssa357,$303); + $304 = ($$1260|0)>($$0240$lcssa357|0); + $305 = $304 ? $$1260 : $$0240$lcssa357; + $$0243 = $305;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + continue; + } + $308 = $$2251; + $309 = $$2; + $310 = (($308) - ($309))|0; + $311 = ($$5|0)<($310|0); + $$$5 = $311 ? $310 : $$5; + $312 = (($$$5) + ($$2234))|0; + $313 = ($$1260|0)<($312|0); + $$2261 = $313 ? $312 : $$1260; + _pad_674($0,32,$$2261,$312,$$6268); + _out($0,$$2239,$$2234); + $314 = $$6268 ^ 65536; + _pad_674($0,48,$$2261,$312,$314); + _pad_674($0,48,$$$5,$310,0); + _out($0,$$2,$310); + $315 = $$6268 ^ 8192; + _pad_674($0,32,$$2261,$312,$315); + $$0243 = $$2261;$$0247 = $$1248;$$0269 = $$3272;$21 = $132; + } + L114: do { + if ((label|0) == 87) { + $316 = ($0|0)==(0|0); + if ($316) { + $317 = ($$0269|0)==(0); + if ($317) { + $$0 = 0; + } else { + $$2242305 = 1; + while(1) { + $318 = (($4) + ($$2242305<<2)|0); + $319 = HEAP32[$318>>2]|0; + $320 = ($319|0)==(0); + if ($320) { + $$3303 = $$2242305; + break; + } + $321 = (($3) + ($$2242305<<3)|0); + _pop_arg($321,$319,$2); + $322 = (($$2242305) + 1)|0; + $323 = ($322|0)<(10); + if ($323) { + $$2242305 = $322; + } else { + $$0 = 1; + break L114; + } + } + while(1) { + $326 = (($4) + ($$3303<<2)|0); + $327 = HEAP32[$326>>2]|0; + $328 = ($327|0)==(0); + $325 = (($$3303) + 1)|0; + if (!($328)) { + $$0 = -1; + break L114; + } + $324 = ($325|0)<(10); + if ($324) { + $$3303 = $325; + } else { + $$0 = 1; + break; + } + } + } + } else { + $$0 = $$1248; + } + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function ___lockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return 0; +} +function ___unlockfile($0) { + $0 = $0|0; + var label = 0, sp = 0; + sp = STACKTOP; + return; +} +function _out($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = $3 & 32; + $5 = ($4|0)==(0); + if ($5) { + (___fwritex($1,$2,$0)|0); + } + return; +} +function _getint($0) { + $0 = $0|0; + var $$0$lcssa = 0, $$06 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit5 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $isdigittmp7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = HEAP32[$0>>2]|0; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $isdigittmp4 = (($3) + -48)|0; + $isdigit5 = ($isdigittmp4>>>0)<(10); + if ($isdigit5) { + $$06 = 0;$7 = $1;$isdigittmp7 = $isdigittmp4; + while(1) { + $4 = ($$06*10)|0; + $5 = (($isdigittmp7) + ($4))|0; + $6 = ((($7)) + 1|0); + HEAP32[$0>>2] = $6; + $8 = HEAP8[$6>>0]|0; + $9 = $8 << 24 >> 24; + $isdigittmp = (($9) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $$06 = $5;$7 = $6;$isdigittmp7 = $isdigittmp; + } else { + $$0$lcssa = $5; + break; + } + } + } else { + $$0$lcssa = 0; + } + return ($$0$lcssa|0); +} +function _pop_arg($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; + var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; + var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; + var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; + var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; + var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; + var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; + var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(20); + L1: do { + if (!($3)) { + do { + switch ($1|0) { + case 9: { + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded28 = $5; + $expanded = (($expanded28) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded32 = $7; + $expanded31 = (($expanded32) - 1)|0; + $expanded30 = $expanded31 ^ -1; + $8 = $6 & $expanded30; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + HEAP32[$0>>2] = $10; + break L1; + break; + } + case 10: { + $arglist_current2 = HEAP32[$2>>2]|0; + $11 = $arglist_current2; + $12 = ((0) + 4|0); + $expanded35 = $12; + $expanded34 = (($expanded35) - 1)|0; + $13 = (($11) + ($expanded34))|0; + $14 = ((0) + 4|0); + $expanded39 = $14; + $expanded38 = (($expanded39) - 1)|0; + $expanded37 = $expanded38 ^ -1; + $15 = $13 & $expanded37; + $16 = $15; + $17 = HEAP32[$16>>2]|0; + $arglist_next3 = ((($16)) + 4|0); + HEAP32[$2>>2] = $arglist_next3; + $18 = ($17|0)<(0); + $19 = $18 << 31 >> 31; + $20 = $0; + $21 = $20; + HEAP32[$21>>2] = $17; + $22 = (($20) + 4)|0; + $23 = $22; + HEAP32[$23>>2] = $19; + break L1; + break; + } + case 11: { + $arglist_current5 = HEAP32[$2>>2]|0; + $24 = $arglist_current5; + $25 = ((0) + 4|0); + $expanded42 = $25; + $expanded41 = (($expanded42) - 1)|0; + $26 = (($24) + ($expanded41))|0; + $27 = ((0) + 4|0); + $expanded46 = $27; + $expanded45 = (($expanded46) - 1)|0; + $expanded44 = $expanded45 ^ -1; + $28 = $26 & $expanded44; + $29 = $28; + $30 = HEAP32[$29>>2]|0; + $arglist_next6 = ((($29)) + 4|0); + HEAP32[$2>>2] = $arglist_next6; + $31 = $0; + $32 = $31; + HEAP32[$32>>2] = $30; + $33 = (($31) + 4)|0; + $34 = $33; + HEAP32[$34>>2] = 0; + break L1; + break; + } + case 12: { + $arglist_current8 = HEAP32[$2>>2]|0; + $35 = $arglist_current8; + $36 = ((0) + 8|0); + $expanded49 = $36; + $expanded48 = (($expanded49) - 1)|0; + $37 = (($35) + ($expanded48))|0; + $38 = ((0) + 8|0); + $expanded53 = $38; + $expanded52 = (($expanded53) - 1)|0; + $expanded51 = $expanded52 ^ -1; + $39 = $37 & $expanded51; + $40 = $39; + $41 = $40; + $42 = $41; + $43 = HEAP32[$42>>2]|0; + $44 = (($41) + 4)|0; + $45 = $44; + $46 = HEAP32[$45>>2]|0; + $arglist_next9 = ((($40)) + 8|0); + HEAP32[$2>>2] = $arglist_next9; + $47 = $0; + $48 = $47; + HEAP32[$48>>2] = $43; + $49 = (($47) + 4)|0; + $50 = $49; + HEAP32[$50>>2] = $46; + break L1; + break; + } + case 13: { + $arglist_current11 = HEAP32[$2>>2]|0; + $51 = $arglist_current11; + $52 = ((0) + 4|0); + $expanded56 = $52; + $expanded55 = (($expanded56) - 1)|0; + $53 = (($51) + ($expanded55))|0; + $54 = ((0) + 4|0); + $expanded60 = $54; + $expanded59 = (($expanded60) - 1)|0; + $expanded58 = $expanded59 ^ -1; + $55 = $53 & $expanded58; + $56 = $55; + $57 = HEAP32[$56>>2]|0; + $arglist_next12 = ((($56)) + 4|0); + HEAP32[$2>>2] = $arglist_next12; + $58 = $57&65535; + $59 = $58 << 16 >> 16; + $60 = ($59|0)<(0); + $61 = $60 << 31 >> 31; + $62 = $0; + $63 = $62; + HEAP32[$63>>2] = $59; + $64 = (($62) + 4)|0; + $65 = $64; + HEAP32[$65>>2] = $61; + break L1; + break; + } + case 14: { + $arglist_current14 = HEAP32[$2>>2]|0; + $66 = $arglist_current14; + $67 = ((0) + 4|0); + $expanded63 = $67; + $expanded62 = (($expanded63) - 1)|0; + $68 = (($66) + ($expanded62))|0; + $69 = ((0) + 4|0); + $expanded67 = $69; + $expanded66 = (($expanded67) - 1)|0; + $expanded65 = $expanded66 ^ -1; + $70 = $68 & $expanded65; + $71 = $70; + $72 = HEAP32[$71>>2]|0; + $arglist_next15 = ((($71)) + 4|0); + HEAP32[$2>>2] = $arglist_next15; + $$mask31 = $72 & 65535; + $73 = $0; + $74 = $73; + HEAP32[$74>>2] = $$mask31; + $75 = (($73) + 4)|0; + $76 = $75; + HEAP32[$76>>2] = 0; + break L1; + break; + } + case 15: { + $arglist_current17 = HEAP32[$2>>2]|0; + $77 = $arglist_current17; + $78 = ((0) + 4|0); + $expanded70 = $78; + $expanded69 = (($expanded70) - 1)|0; + $79 = (($77) + ($expanded69))|0; + $80 = ((0) + 4|0); + $expanded74 = $80; + $expanded73 = (($expanded74) - 1)|0; + $expanded72 = $expanded73 ^ -1; + $81 = $79 & $expanded72; + $82 = $81; + $83 = HEAP32[$82>>2]|0; + $arglist_next18 = ((($82)) + 4|0); + HEAP32[$2>>2] = $arglist_next18; + $84 = $83&255; + $85 = $84 << 24 >> 24; + $86 = ($85|0)<(0); + $87 = $86 << 31 >> 31; + $88 = $0; + $89 = $88; + HEAP32[$89>>2] = $85; + $90 = (($88) + 4)|0; + $91 = $90; + HEAP32[$91>>2] = $87; + break L1; + break; + } + case 16: { + $arglist_current20 = HEAP32[$2>>2]|0; + $92 = $arglist_current20; + $93 = ((0) + 4|0); + $expanded77 = $93; + $expanded76 = (($expanded77) - 1)|0; + $94 = (($92) + ($expanded76))|0; + $95 = ((0) + 4|0); + $expanded81 = $95; + $expanded80 = (($expanded81) - 1)|0; + $expanded79 = $expanded80 ^ -1; + $96 = $94 & $expanded79; + $97 = $96; + $98 = HEAP32[$97>>2]|0; + $arglist_next21 = ((($97)) + 4|0); + HEAP32[$2>>2] = $arglist_next21; + $$mask = $98 & 255; + $99 = $0; + $100 = $99; + HEAP32[$100>>2] = $$mask; + $101 = (($99) + 4)|0; + $102 = $101; + HEAP32[$102>>2] = 0; + break L1; + break; + } + case 17: { + $arglist_current23 = HEAP32[$2>>2]|0; + $103 = $arglist_current23; + $104 = ((0) + 8|0); + $expanded84 = $104; + $expanded83 = (($expanded84) - 1)|0; + $105 = (($103) + ($expanded83))|0; + $106 = ((0) + 8|0); + $expanded88 = $106; + $expanded87 = (($expanded88) - 1)|0; + $expanded86 = $expanded87 ^ -1; + $107 = $105 & $expanded86; + $108 = $107; + $109 = +HEAPF64[$108>>3]; + $arglist_next24 = ((($108)) + 8|0); + HEAP32[$2>>2] = $arglist_next24; + HEAPF64[$0>>3] = $109; + break L1; + break; + } + case 18: { + $arglist_current26 = HEAP32[$2>>2]|0; + $110 = $arglist_current26; + $111 = ((0) + 8|0); + $expanded91 = $111; + $expanded90 = (($expanded91) - 1)|0; + $112 = (($110) + ($expanded90))|0; + $113 = ((0) + 8|0); + $expanded95 = $113; + $expanded94 = (($expanded95) - 1)|0; + $expanded93 = $expanded94 ^ -1; + $114 = $112 & $expanded93; + $115 = $114; + $116 = +HEAPF64[$115>>3]; + $arglist_next27 = ((($115)) + 8|0); + HEAP32[$2>>2] = $arglist_next27; + HEAPF64[$0>>3] = $116; + break L1; + break; + } + default: { + break L1; + } + } + } while(0); + } + } while(0); + return; +} +function _fmt_x($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; + var sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0); + $5 = ($1|0)==(0); + $6 = $4 & $5; + if ($6) { + $$05$lcssa = $2; + } else { + $$056 = $2;$15 = $1;$8 = $0; + while(1) { + $7 = $8 & 15; + $9 = (15998 + ($7)|0); + $10 = HEAP8[$9>>0]|0; + $11 = $10&255; + $12 = $11 | $3; + $13 = $12&255; + $14 = ((($$056)) + -1|0); + HEAP8[$14>>0] = $13; + $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); + $17 = tempRet0; + $18 = ($16|0)==(0); + $19 = ($17|0)==(0); + $20 = $18 & $19; + if ($20) { + $$05$lcssa = $14; + break; + } else { + $$056 = $14;$15 = $17;$8 = $16; + } + } + } + return ($$05$lcssa|0); +} +function _fmt_o($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0); + $4 = ($1|0)==(0); + $5 = $3 & $4; + if ($5) { + $$0$lcssa = $2; + } else { + $$06 = $2;$11 = $1;$7 = $0; + while(1) { + $6 = $7&255; + $8 = $6 & 7; + $9 = $8 | 48; + $10 = ((($$06)) + -1|0); + HEAP8[$10>>0] = $9; + $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); + $13 = tempRet0; + $14 = ($12|0)==(0); + $15 = ($13|0)==(0); + $16 = $14 & $15; + if ($16) { + $$0$lcssa = $10; + break; + } else { + $$06 = $10;$11 = $13;$7 = $12; + } + } + } + return ($$0$lcssa|0); +} +function _fmt_u($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($1>>>0)>(0); + $4 = ($0>>>0)>(4294967295); + $5 = ($1|0)==(0); + $6 = $5 & $4; + $7 = $3 | $6; + if ($7) { + $$0914 = $2;$8 = $0;$9 = $1; + while(1) { + $10 = (___uremdi3(($8|0),($9|0),10,0)|0); + $11 = tempRet0; + $12 = $10&255; + $13 = $12 | 48; + $14 = ((($$0914)) + -1|0); + HEAP8[$14>>0] = $13; + $15 = (___udivdi3(($8|0),($9|0),10,0)|0); + $16 = tempRet0; + $17 = ($9>>>0)>(9); + $18 = ($8>>>0)>(4294967295); + $19 = ($9|0)==(9); + $20 = $19 & $18; + $21 = $17 | $20; + if ($21) { + $$0914 = $14;$8 = $15;$9 = $16; + } else { + break; + } + } + $$010$lcssa$off0 = $15;$$09$lcssa = $14; + } else { + $$010$lcssa$off0 = $0;$$09$lcssa = $2; + } + $22 = ($$010$lcssa$off0|0)==(0); + if ($22) { + $$1$lcssa = $$09$lcssa; + } else { + $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; + while(1) { + $23 = (($$012>>>0) % 10)&-1; + $24 = $23 | 48; + $25 = $24&255; + $26 = ((($$111)) + -1|0); + HEAP8[$26>>0] = $25; + $27 = (($$012>>>0) / 10)&-1; + $28 = ($$012>>>0)<(10); + if ($28) { + $$1$lcssa = $26; + break; + } else { + $$012 = $27;$$111 = $26; + } + } + } + return ($$1$lcssa|0); +} +function _strerror($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___pthread_self_105()|0); + $2 = ((($1)) + 188|0); + $3 = HEAP32[$2>>2]|0; + $4 = (___strerror_l($0,$3)|0); + return ($4|0); +} +function _memchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$13745 = 0, $$140 = 0, $$2 = 0, $$23839 = 0, $$3 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; + var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1 & 255; + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)!=(0); + $7 = ($2|0)!=(0); + $or$cond53 = $7 & $6; + L1: do { + if ($or$cond53) { + $8 = $1&255; + $$03555 = $0;$$03654 = $2; + while(1) { + $9 = HEAP8[$$03555>>0]|0; + $10 = ($9<<24>>24)==($8<<24>>24); + if ($10) { + $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; + label = 6; + break L1; + } + $11 = ((($$03555)) + 1|0); + $12 = (($$03654) + -1)|0; + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)!=(0); + $16 = ($12|0)!=(0); + $or$cond = $16 & $15; + if ($or$cond) { + $$03555 = $11;$$03654 = $12; + } else { + $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; + label = 5; + break; + } + } + } else { + $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; + label = 5; + } + } while(0); + if ((label|0) == 5) { + if ($$lcssa) { + $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; + label = 6; + } else { + $$2 = $$035$lcssa;$$3 = 0; + } + } + L8: do { + if ((label|0) == 6) { + $17 = HEAP8[$$035$lcssa65>>0]|0; + $18 = $1&255; + $19 = ($17<<24>>24)==($18<<24>>24); + if ($19) { + $$2 = $$035$lcssa65;$$3 = $$036$lcssa64; + } else { + $20 = Math_imul($3, 16843009)|0; + $21 = ($$036$lcssa64>>>0)>(3); + L11: do { + if ($21) { + $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; + while(1) { + $22 = HEAP32[$$046>>2]|0; + $23 = $22 ^ $20; + $24 = (($23) + -16843009)|0; + $25 = $23 & -2139062144; + $26 = $25 ^ -2139062144; + $27 = $26 & $24; + $28 = ($27|0)==(0); + if (!($28)) { + break; + } + $29 = ((($$046)) + 4|0); + $30 = (($$13745) + -4)|0; + $31 = ($30>>>0)>(3); + if ($31) { + $$046 = $29;$$13745 = $30; + } else { + $$0$lcssa = $29;$$137$lcssa = $30; + label = 11; + break L11; + } + } + $$140 = $$046;$$23839 = $$13745; + } else { + $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; + label = 11; + } + } while(0); + if ((label|0) == 11) { + $32 = ($$137$lcssa|0)==(0); + if ($32) { + $$2 = $$0$lcssa;$$3 = 0; + break; + } else { + $$140 = $$0$lcssa;$$23839 = $$137$lcssa; + } + } + while(1) { + $33 = HEAP8[$$140>>0]|0; + $34 = ($33<<24>>24)==($18<<24>>24); + if ($34) { + $$2 = $$140;$$3 = $$23839; + break L8; + } + $35 = ((($$140)) + 1|0); + $36 = (($$23839) + -1)|0; + $37 = ($36|0)==(0); + if ($37) { + $$2 = $35;$$3 = 0; + break; + } else { + $$140 = $35;$$23839 = $36; + } + } + } + } + } while(0); + $38 = ($$3|0)!=(0); + $39 = $38 ? $$2 : 0; + return ($39|0); +} +function _pad_674($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); + $5 = sp; + $6 = $4 & 73728; + $7 = ($6|0)==(0); + $8 = ($2|0)>($3|0); + $or$cond = $8 & $7; + if ($or$cond) { + $9 = (($2) - ($3))|0; + $10 = ($9>>>0)<(256); + $11 = $10 ? $9 : 256; + _memset(($5|0),($1|0),($11|0))|0; + $12 = ($9>>>0)>(255); + if ($12) { + $13 = (($2) - ($3))|0; + $$011 = $9; + while(1) { + _out($0,$5,256); + $14 = (($$011) + -256)|0; + $15 = ($14>>>0)>(255); + if ($15) { + $$011 = $14; + } else { + break; + } + } + $16 = $13 & 255; + $$0$lcssa = $16; + } else { + $$0$lcssa = $9; + } + _out($0,$5,$$0$lcssa); + } + STACKTOP = sp;return; +} +function _wctomb($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = (_wcrtomb($0,$1,0)|0); + $$0 = $3; + } + return ($$0|0); +} +function _fmt_fp($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = +$1; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$ = 0, $$$$559 = 0.0, $$$3484 = 0, $$$3484691 = 0, $$$3484692 = 0, $$$3501 = 0, $$$4502 = 0, $$$542 = 0.0, $$$559 = 0.0, $$0 = 0, $$0463$lcssa = 0, $$0463584 = 0, $$0464594 = 0, $$0471 = 0.0, $$0479 = 0, $$0487642 = 0, $$0488 = 0, $$0488653 = 0, $$0488655 = 0; + var $$0496$$9 = 0, $$0497654 = 0, $$0498 = 0, $$0509582 = 0.0, $$0510 = 0, $$0511 = 0, $$0514637 = 0, $$0520 = 0, $$0521 = 0, $$0521$ = 0, $$0523 = 0, $$0525 = 0, $$0527 = 0, $$0527629 = 0, $$0527631 = 0, $$0530636 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0; + var $$1480 = 0, $$1482$lcssa = 0, $$1482661 = 0, $$1489641 = 0, $$1499$lcssa = 0, $$1499660 = 0, $$1508583 = 0, $$1512$lcssa = 0, $$1512607 = 0, $$1515 = 0, $$1524 = 0, $$1526 = 0, $$1528614 = 0, $$1531$lcssa = 0, $$1531630 = 0, $$1598 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2476$$547 = 0; + var $$2476$$549 = 0, $$2483$ph = 0, $$2500 = 0, $$2513 = 0, $$2516618 = 0, $$2529 = 0, $$2532617 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484648 = 0, $$3501$lcssa = 0, $$3501647 = 0, $$3533613 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478590 = 0, $$4492 = 0, $$4502 = 0, $$4518 = 0; + var $$5$lcssa = 0, $$534$ = 0, $$539 = 0, $$539$ = 0, $$542 = 0.0, $$546 = 0, $$548 = 0, $$5486$lcssa = 0, $$5486623 = 0, $$5493597 = 0, $$5519$ph = 0, $$555 = 0, $$556 = 0, $$559 = 0.0, $$5602 = 0, $$6 = 0, $$6494589 = 0, $$7495601 = 0, $$7505 = 0, $$7505$ = 0; + var $$7505$ph = 0, $$8 = 0, $$9$ph = 0, $$lcssa673 = 0, $$neg = 0, $$neg567 = 0, $$pn = 0, $$pn566 = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi690Z2D = 0, $$pre689 = 0, $$sink545$lcssa = 0, $$sink545622 = 0, $$sink562 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; + var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0; + var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; + var $14 = 0.0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; + var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; + var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; + var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0; + var $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0.0, $23 = 0; + var $230 = 0, $231 = 0.0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0; + var $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0; + var $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0; + var $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; + var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; + var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0; + var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0.0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0; + var $358 = 0, $359 = 0, $36 = 0.0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0; + var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0; + var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; + var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0; + var $narrow = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond537 = 0, $or$cond541 = 0, $or$cond544 = 0, $or$cond554 = 0, $or$cond6 = 0, $scevgep684 = 0, $scevgep684685 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); + $6 = sp + 8|0; + $7 = sp; + $8 = sp + 524|0; + $9 = $8; + $10 = sp + 512|0; + HEAP32[$7>>2] = 0; + $11 = ((($10)) + 12|0); + (___DOUBLE_BITS_675($1)|0); + $12 = tempRet0; + $13 = ($12|0)<(0); + if ($13) { + $14 = -$1; + $$0471 = $14;$$0520 = 1;$$0521 = 15967; + } else { + $15 = $4 & 2048; + $16 = ($15|0)==(0); + $17 = $4 & 1; + $18 = ($17|0)==(0); + $$ = $18 ? (15968) : (15973); + $$$ = $16 ? $$ : (15970); + $19 = $4 & 2049; + $narrow = ($19|0)!=(0); + $$534$ = $narrow&1; + $$0471 = $1;$$0520 = $$534$;$$0521 = $$$; + } + (___DOUBLE_BITS_675($$0471)|0); + $20 = tempRet0; + $21 = $20 & 2146435072; + $22 = ($21>>>0)<(2146435072); + $23 = (0)<(0); + $24 = ($21|0)==(2146435072); + $25 = $24 & $23; + $26 = $22 | $25; + do { + if ($26) { + $35 = (+_frexpl($$0471,$7)); + $36 = $35 * 2.0; + $37 = $36 != 0.0; + if ($37) { + $38 = HEAP32[$7>>2]|0; + $39 = (($38) + -1)|0; + HEAP32[$7>>2] = $39; + } + $40 = $5 | 32; + $41 = ($40|0)==(97); + if ($41) { + $42 = $5 & 32; + $43 = ($42|0)==(0); + $44 = ((($$0521)) + 9|0); + $$0521$ = $43 ? $$0521 : $44; + $45 = $$0520 | 2; + $46 = ($3>>>0)>(11); + $47 = (12 - ($3))|0; + $48 = ($47|0)==(0); + $49 = $46 | $48; + do { + if ($49) { + $$1472 = $36; + } else { + $$0509582 = 8.0;$$1508583 = $47; + while(1) { + $50 = (($$1508583) + -1)|0; + $51 = $$0509582 * 16.0; + $52 = ($50|0)==(0); + if ($52) { + break; + } else { + $$0509582 = $51;$$1508583 = $50; + } + } + $53 = HEAP8[$$0521$>>0]|0; + $54 = ($53<<24>>24)==(45); + if ($54) { + $55 = -$36; + $56 = $55 - $51; + $57 = $51 + $56; + $58 = -$57; + $$1472 = $58; + break; + } else { + $59 = $36 + $51; + $60 = $59 - $51; + $$1472 = $60; + break; + } + } + } while(0); + $61 = HEAP32[$7>>2]|0; + $62 = ($61|0)<(0); + $63 = (0 - ($61))|0; + $64 = $62 ? $63 : $61; + $65 = ($64|0)<(0); + $66 = $65 << 31 >> 31; + $67 = (_fmt_u($64,$66,$11)|0); + $68 = ($67|0)==($11|0); + if ($68) { + $69 = ((($10)) + 11|0); + HEAP8[$69>>0] = 48; + $$0511 = $69; + } else { + $$0511 = $67; + } + $70 = $61 >> 31; + $71 = $70 & 2; + $72 = (($71) + 43)|0; + $73 = $72&255; + $74 = ((($$0511)) + -1|0); + HEAP8[$74>>0] = $73; + $75 = (($5) + 15)|0; + $76 = $75&255; + $77 = ((($$0511)) + -2|0); + HEAP8[$77>>0] = $76; + $notrhs = ($3|0)<(1); + $78 = $4 & 8; + $79 = ($78|0)==(0); + $$0523 = $8;$$2473 = $$1472; + while(1) { + $80 = (~~(($$2473))); + $81 = (15998 + ($80)|0); + $82 = HEAP8[$81>>0]|0; + $83 = $82&255; + $84 = $83 | $42; + $85 = $84&255; + $86 = ((($$0523)) + 1|0); + HEAP8[$$0523>>0] = $85; + $87 = (+($80|0)); + $88 = $$2473 - $87; + $89 = $88 * 16.0; + $90 = $86; + $91 = (($90) - ($9))|0; + $92 = ($91|0)==(1); + if ($92) { + $notlhs = $89 == 0.0; + $or$cond3$not = $notrhs & $notlhs; + $or$cond = $79 & $or$cond3$not; + if ($or$cond) { + $$1524 = $86; + } else { + $93 = ((($$0523)) + 2|0); + HEAP8[$86>>0] = 46; + $$1524 = $93; + } + } else { + $$1524 = $86; + } + $94 = $89 != 0.0; + if ($94) { + $$0523 = $$1524;$$2473 = $89; + } else { + break; + } + } + $95 = ($3|0)!=(0); + $96 = $77; + $97 = $11; + $98 = $$1524; + $99 = (($98) - ($9))|0; + $100 = (($97) - ($96))|0; + $101 = (($99) + -2)|0; + $102 = ($101|0)<($3|0); + $or$cond537 = $95 & $102; + $103 = (($3) + 2)|0; + $$pn = $or$cond537 ? $103 : $99; + $$0525 = (($100) + ($45))|0; + $104 = (($$0525) + ($$pn))|0; + _pad_674($0,32,$2,$104,$4); + _out($0,$$0521$,$45); + $105 = $4 ^ 65536; + _pad_674($0,48,$2,$104,$105); + _out($0,$8,$99); + $106 = (($$pn) - ($99))|0; + _pad_674($0,48,$106,0,0); + _out($0,$77,$100); + $107 = $4 ^ 8192; + _pad_674($0,32,$2,$104,$107); + $$sink562 = $104; + break; + } + $108 = ($3|0)<(0); + $$539 = $108 ? 6 : $3; + if ($37) { + $109 = $36 * 268435456.0; + $110 = HEAP32[$7>>2]|0; + $111 = (($110) + -28)|0; + HEAP32[$7>>2] = $111; + $$3 = $109;$$pr = $111; + } else { + $$pre = HEAP32[$7>>2]|0; + $$3 = $36;$$pr = $$pre; + } + $112 = ($$pr|0)<(0); + $113 = ((($6)) + 288|0); + $$556 = $112 ? $6 : $113; + $$0498 = $$556;$$4 = $$3; + while(1) { + $114 = (~~(($$4))>>>0); + HEAP32[$$0498>>2] = $114; + $115 = ((($$0498)) + 4|0); + $116 = (+($114>>>0)); + $117 = $$4 - $116; + $118 = $117 * 1.0E+9; + $119 = $118 != 0.0; + if ($119) { + $$0498 = $115;$$4 = $118; + } else { + break; + } + } + $120 = ($$pr|0)>(0); + if ($120) { + $$1482661 = $$556;$$1499660 = $115;$122 = $$pr; + while(1) { + $121 = ($122|0)<(29); + $123 = $121 ? $122 : 29; + $$0488653 = ((($$1499660)) + -4|0); + $124 = ($$0488653>>>0)<($$1482661>>>0); + if ($124) { + $$2483$ph = $$1482661; + } else { + $$0488655 = $$0488653;$$0497654 = 0; + while(1) { + $125 = HEAP32[$$0488655>>2]|0; + $126 = (_bitshift64Shl(($125|0),0,($123|0))|0); + $127 = tempRet0; + $128 = (_i64Add(($126|0),($127|0),($$0497654|0),0)|0); + $129 = tempRet0; + $130 = (___uremdi3(($128|0),($129|0),1000000000,0)|0); + $131 = tempRet0; + HEAP32[$$0488655>>2] = $130; + $132 = (___udivdi3(($128|0),($129|0),1000000000,0)|0); + $133 = tempRet0; + $$0488 = ((($$0488655)) + -4|0); + $134 = ($$0488>>>0)<($$1482661>>>0); + if ($134) { + break; + } else { + $$0488655 = $$0488;$$0497654 = $132; + } + } + $135 = ($132|0)==(0); + if ($135) { + $$2483$ph = $$1482661; + } else { + $136 = ((($$1482661)) + -4|0); + HEAP32[$136>>2] = $132; + $$2483$ph = $136; + } + } + $$2500 = $$1499660; + while(1) { + $137 = ($$2500>>>0)>($$2483$ph>>>0); + if (!($137)) { + break; + } + $138 = ((($$2500)) + -4|0); + $139 = HEAP32[$138>>2]|0; + $140 = ($139|0)==(0); + if ($140) { + $$2500 = $138; + } else { + break; + } + } + $141 = HEAP32[$7>>2]|0; + $142 = (($141) - ($123))|0; + HEAP32[$7>>2] = $142; + $143 = ($142|0)>(0); + if ($143) { + $$1482661 = $$2483$ph;$$1499660 = $$2500;$122 = $142; + } else { + $$1482$lcssa = $$2483$ph;$$1499$lcssa = $$2500;$$pr564 = $142; + break; + } + } + } else { + $$1482$lcssa = $$556;$$1499$lcssa = $115;$$pr564 = $$pr; + } + $144 = ($$pr564|0)<(0); + if ($144) { + $145 = (($$539) + 25)|0; + $146 = (($145|0) / 9)&-1; + $147 = (($146) + 1)|0; + $148 = ($40|0)==(102); + $$3484648 = $$1482$lcssa;$$3501647 = $$1499$lcssa;$150 = $$pr564; + while(1) { + $149 = (0 - ($150))|0; + $151 = ($149|0)<(9); + $152 = $151 ? $149 : 9; + $153 = ($$3484648>>>0)<($$3501647>>>0); + if ($153) { + $157 = 1 << $152; + $158 = (($157) + -1)|0; + $159 = 1000000000 >>> $152; + $$0487642 = 0;$$1489641 = $$3484648; + while(1) { + $160 = HEAP32[$$1489641>>2]|0; + $161 = $160 & $158; + $162 = $160 >>> $152; + $163 = (($162) + ($$0487642))|0; + HEAP32[$$1489641>>2] = $163; + $164 = Math_imul($161, $159)|0; + $165 = ((($$1489641)) + 4|0); + $166 = ($165>>>0)<($$3501647>>>0); + if ($166) { + $$0487642 = $164;$$1489641 = $165; + } else { + break; + } + } + $167 = HEAP32[$$3484648>>2]|0; + $168 = ($167|0)==(0); + $169 = ((($$3484648)) + 4|0); + $$$3484 = $168 ? $169 : $$3484648; + $170 = ($164|0)==(0); + if ($170) { + $$$3484692 = $$$3484;$$4502 = $$3501647; + } else { + $171 = ((($$3501647)) + 4|0); + HEAP32[$$3501647>>2] = $164; + $$$3484692 = $$$3484;$$4502 = $171; + } + } else { + $154 = HEAP32[$$3484648>>2]|0; + $155 = ($154|0)==(0); + $156 = ((($$3484648)) + 4|0); + $$$3484691 = $155 ? $156 : $$3484648; + $$$3484692 = $$$3484691;$$4502 = $$3501647; + } + $172 = $148 ? $$556 : $$$3484692; + $173 = $$4502; + $174 = $172; + $175 = (($173) - ($174))|0; + $176 = $175 >> 2; + $177 = ($176|0)>($147|0); + $178 = (($172) + ($147<<2)|0); + $$$4502 = $177 ? $178 : $$4502; + $179 = HEAP32[$7>>2]|0; + $180 = (($179) + ($152))|0; + HEAP32[$7>>2] = $180; + $181 = ($180|0)<(0); + if ($181) { + $$3484648 = $$$3484692;$$3501647 = $$$4502;$150 = $180; + } else { + $$3484$lcssa = $$$3484692;$$3501$lcssa = $$$4502; + break; + } + } + } else { + $$3484$lcssa = $$1482$lcssa;$$3501$lcssa = $$1499$lcssa; + } + $182 = ($$3484$lcssa>>>0)<($$3501$lcssa>>>0); + $183 = $$556; + if ($182) { + $184 = $$3484$lcssa; + $185 = (($183) - ($184))|0; + $186 = $185 >> 2; + $187 = ($186*9)|0; + $188 = HEAP32[$$3484$lcssa>>2]|0; + $189 = ($188>>>0)<(10); + if ($189) { + $$1515 = $187; + } else { + $$0514637 = $187;$$0530636 = 10; + while(1) { + $190 = ($$0530636*10)|0; + $191 = (($$0514637) + 1)|0; + $192 = ($188>>>0)<($190>>>0); + if ($192) { + $$1515 = $191; + break; + } else { + $$0514637 = $191;$$0530636 = $190; + } + } + } + } else { + $$1515 = 0; + } + $193 = ($40|0)!=(102); + $194 = $193 ? $$1515 : 0; + $195 = (($$539) - ($194))|0; + $196 = ($40|0)==(103); + $197 = ($$539|0)!=(0); + $198 = $197 & $196; + $$neg = $198 << 31 >> 31; + $199 = (($195) + ($$neg))|0; + $200 = $$3501$lcssa; + $201 = (($200) - ($183))|0; + $202 = $201 >> 2; + $203 = ($202*9)|0; + $204 = (($203) + -9)|0; + $205 = ($199|0)<($204|0); + if ($205) { + $206 = ((($$556)) + 4|0); + $207 = (($199) + 9216)|0; + $208 = (($207|0) / 9)&-1; + $209 = (($208) + -1024)|0; + $210 = (($206) + ($209<<2)|0); + $211 = (($207|0) % 9)&-1; + $$0527629 = (($211) + 1)|0; + $212 = ($$0527629|0)<(9); + if ($212) { + $$0527631 = $$0527629;$$1531630 = 10; + while(1) { + $213 = ($$1531630*10)|0; + $$0527 = (($$0527631) + 1)|0; + $exitcond = ($$0527|0)==(9); + if ($exitcond) { + $$1531$lcssa = $213; + break; + } else { + $$0527631 = $$0527;$$1531630 = $213; + } + } + } else { + $$1531$lcssa = 10; + } + $214 = HEAP32[$210>>2]|0; + $215 = (($214>>>0) % ($$1531$lcssa>>>0))&-1; + $216 = ($215|0)==(0); + $217 = ((($210)) + 4|0); + $218 = ($217|0)==($$3501$lcssa|0); + $or$cond541 = $218 & $216; + if ($or$cond541) { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } else { + $219 = (($214>>>0) / ($$1531$lcssa>>>0))&-1; + $220 = $219 & 1; + $221 = ($220|0)==(0); + $$542 = $221 ? 9007199254740992.0 : 9007199254740994.0; + $222 = (($$1531$lcssa|0) / 2)&-1; + $223 = ($215>>>0)<($222>>>0); + $224 = ($215|0)==($222|0); + $or$cond544 = $218 & $224; + $$559 = $or$cond544 ? 1.0 : 1.5; + $$$559 = $223 ? 0.5 : $$559; + $225 = ($$0520|0)==(0); + if ($225) { + $$1467 = $$$559;$$1469 = $$542; + } else { + $226 = HEAP8[$$0521>>0]|0; + $227 = ($226<<24>>24)==(45); + $228 = -$$542; + $229 = -$$$559; + $$$542 = $227 ? $228 : $$542; + $$$$559 = $227 ? $229 : $$$559; + $$1467 = $$$$559;$$1469 = $$$542; + } + $230 = (($214) - ($215))|0; + HEAP32[$210>>2] = $230; + $231 = $$1469 + $$1467; + $232 = $231 != $$1469; + if ($232) { + $233 = (($230) + ($$1531$lcssa))|0; + HEAP32[$210>>2] = $233; + $234 = ($233>>>0)>(999999999); + if ($234) { + $$5486623 = $$3484$lcssa;$$sink545622 = $210; + while(1) { + $235 = ((($$sink545622)) + -4|0); + HEAP32[$$sink545622>>2] = 0; + $236 = ($235>>>0)<($$5486623>>>0); + if ($236) { + $237 = ((($$5486623)) + -4|0); + HEAP32[$237>>2] = 0; + $$6 = $237; + } else { + $$6 = $$5486623; + } + $238 = HEAP32[$235>>2]|0; + $239 = (($238) + 1)|0; + HEAP32[$235>>2] = $239; + $240 = ($239>>>0)>(999999999); + if ($240) { + $$5486623 = $$6;$$sink545622 = $235; + } else { + $$5486$lcssa = $$6;$$sink545$lcssa = $235; + break; + } + } + } else { + $$5486$lcssa = $$3484$lcssa;$$sink545$lcssa = $210; + } + $241 = $$5486$lcssa; + $242 = (($183) - ($241))|0; + $243 = $242 >> 2; + $244 = ($243*9)|0; + $245 = HEAP32[$$5486$lcssa>>2]|0; + $246 = ($245>>>0)<(10); + if ($246) { + $$4492 = $$sink545$lcssa;$$4518 = $244;$$8 = $$5486$lcssa; + } else { + $$2516618 = $244;$$2532617 = 10; + while(1) { + $247 = ($$2532617*10)|0; + $248 = (($$2516618) + 1)|0; + $249 = ($245>>>0)<($247>>>0); + if ($249) { + $$4492 = $$sink545$lcssa;$$4518 = $248;$$8 = $$5486$lcssa; + break; + } else { + $$2516618 = $248;$$2532617 = $247; + } + } + } + } else { + $$4492 = $210;$$4518 = $$1515;$$8 = $$3484$lcssa; + } + } + $250 = ((($$4492)) + 4|0); + $251 = ($$3501$lcssa>>>0)>($250>>>0); + $$$3501 = $251 ? $250 : $$3501$lcssa; + $$5519$ph = $$4518;$$7505$ph = $$$3501;$$9$ph = $$8; + } else { + $$5519$ph = $$1515;$$7505$ph = $$3501$lcssa;$$9$ph = $$3484$lcssa; + } + $$7505 = $$7505$ph; + while(1) { + $252 = ($$7505>>>0)>($$9$ph>>>0); + if (!($252)) { + $$lcssa673 = 0; + break; + } + $253 = ((($$7505)) + -4|0); + $254 = HEAP32[$253>>2]|0; + $255 = ($254|0)==(0); + if ($255) { + $$7505 = $253; + } else { + $$lcssa673 = 1; + break; + } + } + $256 = (0 - ($$5519$ph))|0; + do { + if ($196) { + $not$ = $197 ^ 1; + $257 = $not$&1; + $$539$ = (($257) + ($$539))|0; + $258 = ($$539$|0)>($$5519$ph|0); + $259 = ($$5519$ph|0)>(-5); + $or$cond6 = $258 & $259; + if ($or$cond6) { + $260 = (($5) + -1)|0; + $$neg567 = (($$539$) + -1)|0; + $261 = (($$neg567) - ($$5519$ph))|0; + $$0479 = $260;$$2476 = $261; + } else { + $262 = (($5) + -2)|0; + $263 = (($$539$) + -1)|0; + $$0479 = $262;$$2476 = $263; + } + $264 = $4 & 8; + $265 = ($264|0)==(0); + if ($265) { + if ($$lcssa673) { + $266 = ((($$7505)) + -4|0); + $267 = HEAP32[$266>>2]|0; + $268 = ($267|0)==(0); + if ($268) { + $$2529 = 9; + } else { + $269 = (($267>>>0) % 10)&-1; + $270 = ($269|0)==(0); + if ($270) { + $$1528614 = 0;$$3533613 = 10; + while(1) { + $271 = ($$3533613*10)|0; + $272 = (($$1528614) + 1)|0; + $273 = (($267>>>0) % ($271>>>0))&-1; + $274 = ($273|0)==(0); + if ($274) { + $$1528614 = $272;$$3533613 = $271; + } else { + $$2529 = $272; + break; + } + } + } else { + $$2529 = 0; + } + } + } else { + $$2529 = 9; + } + $275 = $$0479 | 32; + $276 = ($275|0)==(102); + $277 = $$7505; + $278 = (($277) - ($183))|0; + $279 = $278 >> 2; + $280 = ($279*9)|0; + $281 = (($280) + -9)|0; + if ($276) { + $282 = (($281) - ($$2529))|0; + $283 = ($282|0)>(0); + $$546 = $283 ? $282 : 0; + $284 = ($$2476|0)<($$546|0); + $$2476$$547 = $284 ? $$2476 : $$546; + $$1480 = $$0479;$$3477 = $$2476$$547;$$pre$phi690Z2D = 0; + break; + } else { + $285 = (($281) + ($$5519$ph))|0; + $286 = (($285) - ($$2529))|0; + $287 = ($286|0)>(0); + $$548 = $287 ? $286 : 0; + $288 = ($$2476|0)<($$548|0); + $$2476$$549 = $288 ? $$2476 : $$548; + $$1480 = $$0479;$$3477 = $$2476$$549;$$pre$phi690Z2D = 0; + break; + } + } else { + $$1480 = $$0479;$$3477 = $$2476;$$pre$phi690Z2D = $264; + } + } else { + $$pre689 = $4 & 8; + $$1480 = $5;$$3477 = $$539;$$pre$phi690Z2D = $$pre689; + } + } while(0); + $289 = $$3477 | $$pre$phi690Z2D; + $290 = ($289|0)!=(0); + $291 = $290&1; + $292 = $$1480 | 32; + $293 = ($292|0)==(102); + if ($293) { + $294 = ($$5519$ph|0)>(0); + $295 = $294 ? $$5519$ph : 0; + $$2513 = 0;$$pn566 = $295; + } else { + $296 = ($$5519$ph|0)<(0); + $297 = $296 ? $256 : $$5519$ph; + $298 = ($297|0)<(0); + $299 = $298 << 31 >> 31; + $300 = (_fmt_u($297,$299,$11)|0); + $301 = $11; + $302 = $300; + $303 = (($301) - ($302))|0; + $304 = ($303|0)<(2); + if ($304) { + $$1512607 = $300; + while(1) { + $305 = ((($$1512607)) + -1|0); + HEAP8[$305>>0] = 48; + $306 = $305; + $307 = (($301) - ($306))|0; + $308 = ($307|0)<(2); + if ($308) { + $$1512607 = $305; + } else { + $$1512$lcssa = $305; + break; + } + } + } else { + $$1512$lcssa = $300; + } + $309 = $$5519$ph >> 31; + $310 = $309 & 2; + $311 = (($310) + 43)|0; + $312 = $311&255; + $313 = ((($$1512$lcssa)) + -1|0); + HEAP8[$313>>0] = $312; + $314 = $$1480&255; + $315 = ((($$1512$lcssa)) + -2|0); + HEAP8[$315>>0] = $314; + $316 = $315; + $317 = (($301) - ($316))|0; + $$2513 = $315;$$pn566 = $317; + } + $318 = (($$0520) + 1)|0; + $319 = (($318) + ($$3477))|0; + $$1526 = (($319) + ($291))|0; + $320 = (($$1526) + ($$pn566))|0; + _pad_674($0,32,$2,$320,$4); + _out($0,$$0521,$$0520); + $321 = $4 ^ 65536; + _pad_674($0,48,$2,$320,$321); + if ($293) { + $322 = ($$9$ph>>>0)>($$556>>>0); + $$0496$$9 = $322 ? $$556 : $$9$ph; + $323 = ((($8)) + 9|0); + $324 = $323; + $325 = ((($8)) + 8|0); + $$5493597 = $$0496$$9; + while(1) { + $326 = HEAP32[$$5493597>>2]|0; + $327 = (_fmt_u($326,0,$323)|0); + $328 = ($$5493597|0)==($$0496$$9|0); + if ($328) { + $334 = ($327|0)==($323|0); + if ($334) { + HEAP8[$325>>0] = 48; + $$1465 = $325; + } else { + $$1465 = $327; + } + } else { + $329 = ($327>>>0)>($8>>>0); + if ($329) { + $330 = $327; + $331 = (($330) - ($9))|0; + _memset(($8|0),48,($331|0))|0; + $$0464594 = $327; + while(1) { + $332 = ((($$0464594)) + -1|0); + $333 = ($332>>>0)>($8>>>0); + if ($333) { + $$0464594 = $332; + } else { + $$1465 = $332; + break; + } + } + } else { + $$1465 = $327; + } + } + $335 = $$1465; + $336 = (($324) - ($335))|0; + _out($0,$$1465,$336); + $337 = ((($$5493597)) + 4|0); + $338 = ($337>>>0)>($$556>>>0); + if ($338) { + break; + } else { + $$5493597 = $337; + } + } + $339 = ($289|0)==(0); + if (!($339)) { + _out($0,16014,1); + } + $340 = ($337>>>0)<($$7505>>>0); + $341 = ($$3477|0)>(0); + $342 = $340 & $341; + if ($342) { + $$4478590 = $$3477;$$6494589 = $337; + while(1) { + $343 = HEAP32[$$6494589>>2]|0; + $344 = (_fmt_u($343,0,$323)|0); + $345 = ($344>>>0)>($8>>>0); + if ($345) { + $346 = $344; + $347 = (($346) - ($9))|0; + _memset(($8|0),48,($347|0))|0; + $$0463584 = $344; + while(1) { + $348 = ((($$0463584)) + -1|0); + $349 = ($348>>>0)>($8>>>0); + if ($349) { + $$0463584 = $348; + } else { + $$0463$lcssa = $348; + break; + } + } + } else { + $$0463$lcssa = $344; + } + $350 = ($$4478590|0)<(9); + $351 = $350 ? $$4478590 : 9; + _out($0,$$0463$lcssa,$351); + $352 = ((($$6494589)) + 4|0); + $353 = (($$4478590) + -9)|0; + $354 = ($352>>>0)<($$7505>>>0); + $355 = ($$4478590|0)>(9); + $356 = $354 & $355; + if ($356) { + $$4478590 = $353;$$6494589 = $352; + } else { + $$4478$lcssa = $353; + break; + } + } + } else { + $$4478$lcssa = $$3477; + } + $357 = (($$4478$lcssa) + 9)|0; + _pad_674($0,48,$357,9,0); + } else { + $358 = ((($$9$ph)) + 4|0); + $$7505$ = $$lcssa673 ? $$7505 : $358; + $359 = ($$3477|0)>(-1); + if ($359) { + $360 = ((($8)) + 9|0); + $361 = ($$pre$phi690Z2D|0)==(0); + $362 = $360; + $363 = (0 - ($9))|0; + $364 = ((($8)) + 8|0); + $$5602 = $$3477;$$7495601 = $$9$ph; + while(1) { + $365 = HEAP32[$$7495601>>2]|0; + $366 = (_fmt_u($365,0,$360)|0); + $367 = ($366|0)==($360|0); + if ($367) { + HEAP8[$364>>0] = 48; + $$0 = $364; + } else { + $$0 = $366; + } + $368 = ($$7495601|0)==($$9$ph|0); + do { + if ($368) { + $372 = ((($$0)) + 1|0); + _out($0,$$0,1); + $373 = ($$5602|0)<(1); + $or$cond554 = $361 & $373; + if ($or$cond554) { + $$2 = $372; + break; + } + _out($0,16014,1); + $$2 = $372; + } else { + $369 = ($$0>>>0)>($8>>>0); + if (!($369)) { + $$2 = $$0; + break; + } + $scevgep684 = (($$0) + ($363)|0); + $scevgep684685 = $scevgep684; + _memset(($8|0),48,($scevgep684685|0))|0; + $$1598 = $$0; + while(1) { + $370 = ((($$1598)) + -1|0); + $371 = ($370>>>0)>($8>>>0); + if ($371) { + $$1598 = $370; + } else { + $$2 = $370; + break; + } + } + } + } while(0); + $374 = $$2; + $375 = (($362) - ($374))|0; + $376 = ($$5602|0)>($375|0); + $377 = $376 ? $375 : $$5602; + _out($0,$$2,$377); + $378 = (($$5602) - ($375))|0; + $379 = ((($$7495601)) + 4|0); + $380 = ($379>>>0)<($$7505$>>>0); + $381 = ($378|0)>(-1); + $382 = $380 & $381; + if ($382) { + $$5602 = $378;$$7495601 = $379; + } else { + $$5$lcssa = $378; + break; + } + } + } else { + $$5$lcssa = $$3477; + } + $383 = (($$5$lcssa) + 18)|0; + _pad_674($0,48,$383,18,0); + $384 = $11; + $385 = $$2513; + $386 = (($384) - ($385))|0; + _out($0,$$2513,$386); + } + $387 = $4 ^ 8192; + _pad_674($0,32,$2,$320,$387); + $$sink562 = $320; + } else { + $27 = $5 & 32; + $28 = ($27|0)!=(0); + $29 = $28 ? 15986 : 15990; + $30 = ($$0471 != $$0471) | (0.0 != 0.0); + $31 = $28 ? 17917 : 15994; + $$0510 = $30 ? $31 : $29; + $32 = (($$0520) + 3)|0; + $33 = $4 & -65537; + _pad_674($0,32,$2,$32,$33); + _out($0,$$0521,$$0520); + _out($0,$$0510,3); + $34 = $4 ^ 8192; + _pad_674($0,32,$2,$32,$34); + $$sink562 = $32; + } + } while(0); + $388 = ($$sink562|0)<($2|0); + $$555 = $388 ? $2 : $$sink562; + STACKTOP = sp;return ($$555|0); +} +function ___DOUBLE_BITS_675($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _frexpl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_frexp($0,$1)); + return (+$2); +} +function _frexp($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; + var sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $5 = tempRet0; + $6 = $4&65535; + $trunc$clear = $6 & 2047; + switch ($trunc$clear<<16>>16) { + case 0: { + $7 = $0 != 0.0; + if ($7) { + $8 = $0 * 1.8446744073709552E+19; + $9 = (+_frexp($8,$1)); + $10 = HEAP32[$1>>2]|0; + $11 = (($10) + -64)|0; + $$016 = $9;$storemerge = $11; + } else { + $$016 = $0;$storemerge = 0; + } + HEAP32[$1>>2] = $storemerge; + $$0 = $$016; + break; + } + case 2047: { + $$0 = $0; + break; + } + default: { + $12 = $4 & 2047; + $13 = (($12) + -1022)|0; + HEAP32[$1>>2] = $13; + $14 = $3 & -2146435073; + $15 = $14 | 1071644672; + HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; + $$0 = $16; + } + } + return (+$$0); +} +function _wcrtomb($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; + var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; + var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $not$ = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($0|0)==(0|0); + do { + if ($3) { + $$0 = 1; + } else { + $4 = ($1>>>0)<(128); + if ($4) { + $5 = $1&255; + HEAP8[$0>>0] = $5; + $$0 = 1; + break; + } + $6 = (___pthread_self_448()|0); + $7 = ((($6)) + 188|0); + $8 = HEAP32[$7>>2]|0; + $9 = HEAP32[$8>>2]|0; + $not$ = ($9|0)==(0|0); + if ($not$) { + $10 = $1 & -128; + $11 = ($10|0)==(57216); + if ($11) { + $13 = $1&255; + HEAP8[$0>>0] = $13; + $$0 = 1; + break; + } else { + $12 = (___errno_location()|0); + HEAP32[$12>>2] = 84; + $$0 = -1; + break; + } + } + $14 = ($1>>>0)<(2048); + if ($14) { + $15 = $1 >>> 6; + $16 = $15 | 192; + $17 = $16&255; + $18 = ((($0)) + 1|0); + HEAP8[$0>>0] = $17; + $19 = $1 & 63; + $20 = $19 | 128; + $21 = $20&255; + HEAP8[$18>>0] = $21; + $$0 = 2; + break; + } + $22 = ($1>>>0)<(55296); + $23 = $1 & -8192; + $24 = ($23|0)==(57344); + $or$cond = $22 | $24; + if ($or$cond) { + $25 = $1 >>> 12; + $26 = $25 | 224; + $27 = $26&255; + $28 = ((($0)) + 1|0); + HEAP8[$0>>0] = $27; + $29 = $1 >>> 6; + $30 = $29 & 63; + $31 = $30 | 128; + $32 = $31&255; + $33 = ((($0)) + 2|0); + HEAP8[$28>>0] = $32; + $34 = $1 & 63; + $35 = $34 | 128; + $36 = $35&255; + HEAP8[$33>>0] = $36; + $$0 = 3; + break; + } + $37 = (($1) + -65536)|0; + $38 = ($37>>>0)<(1048576); + if ($38) { + $39 = $1 >>> 18; + $40 = $39 | 240; + $41 = $40&255; + $42 = ((($0)) + 1|0); + HEAP8[$0>>0] = $41; + $43 = $1 >>> 12; + $44 = $43 & 63; + $45 = $44 | 128; + $46 = $45&255; + $47 = ((($0)) + 2|0); + HEAP8[$42>>0] = $46; + $48 = $1 >>> 6; + $49 = $48 & 63; + $50 = $49 | 128; + $51 = $50&255; + $52 = ((($0)) + 3|0); + HEAP8[$47>>0] = $51; + $53 = $1 & 63; + $54 = $53 | 128; + $55 = $54&255; + HEAP8[$52>>0] = $55; + $$0 = 4; + break; + } else { + $56 = (___errno_location()|0); + HEAP32[$56>>2] = 84; + $$0 = -1; + break; + } + } + } while(0); + return ($$0|0); +} +function ___pthread_self_448() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___pthread_self_105() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function ___strerror_l($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $$016 = 0; + while(1) { + $3 = (16016 + ($$016)|0); + $4 = HEAP8[$3>>0]|0; + $5 = $4&255; + $6 = ($5|0)==($0|0); + if ($6) { + label = 2; + break; + } + $7 = (($$016) + 1)|0; + $8 = ($7|0)==(87); + if ($8) { + $$01214 = 16104;$$115 = 87; + label = 5; + break; + } else { + $$016 = $7; + } + } + if ((label|0) == 2) { + $2 = ($$016|0)==(0); + if ($2) { + $$012$lcssa = 16104; + } else { + $$01214 = 16104;$$115 = $$016; + label = 5; + } + } + if ((label|0) == 5) { + while(1) { + label = 0; + $$113 = $$01214; + while(1) { + $9 = HEAP8[$$113>>0]|0; + $10 = ($9<<24>>24)==(0); + $11 = ((($$113)) + 1|0); + if ($10) { + break; + } else { + $$113 = $11; + } + } + $12 = (($$115) + -1)|0; + $13 = ($12|0)==(0); + if ($13) { + $$012$lcssa = $11; + break; + } else { + $$01214 = $11;$$115 = $12; + label = 5; + } + } + } + $14 = ((($1)) + 20|0); + $15 = HEAP32[$14>>2]|0; + $16 = (___lctrans($$012$lcssa,$15)|0); + return ($16|0); +} +function ___lctrans($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___lctrans_impl($0,$1)|0); + return ($2|0); +} +function ___lctrans_impl($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0|0); + if ($2) { + $$0 = 0; + } else { + $3 = HEAP32[$1>>2]|0; + $4 = ((($1)) + 4|0); + $5 = HEAP32[$4>>2]|0; + $6 = (___mo_lookup($3,$5,$0)|0); + $$0 = $6; + } + $7 = ($$0|0)!=(0|0); + $8 = $7 ? $$0 : $0; + return ($8|0); +} +function ___mo_lookup($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = HEAP32[$0>>2]|0; + $4 = (($3) + 1794895138)|0; + $5 = ((($0)) + 8|0); + $6 = HEAP32[$5>>2]|0; + $7 = (_swapc($6,$4)|0); + $8 = ((($0)) + 12|0); + $9 = HEAP32[$8>>2]|0; + $10 = (_swapc($9,$4)|0); + $11 = ((($0)) + 16|0); + $12 = HEAP32[$11>>2]|0; + $13 = (_swapc($12,$4)|0); + $14 = $1 >>> 2; + $15 = ($7>>>0)<($14>>>0); + L1: do { + if ($15) { + $16 = $7 << 2; + $17 = (($1) - ($16))|0; + $18 = ($10>>>0)<($17>>>0); + $19 = ($13>>>0)<($17>>>0); + $or$cond = $18 & $19; + if ($or$cond) { + $20 = $13 | $10; + $21 = $20 & 3; + $22 = ($21|0)==(0); + if ($22) { + $23 = $10 >>> 2; + $24 = $13 >>> 2; + $$090 = 0;$$094 = $7; + while(1) { + $25 = $$094 >>> 1; + $26 = (($$090) + ($25))|0; + $27 = $26 << 1; + $28 = (($27) + ($23))|0; + $29 = (($0) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = (_swapc($30,$4)|0); + $32 = (($28) + 1)|0; + $33 = (($0) + ($32<<2)|0); + $34 = HEAP32[$33>>2]|0; + $35 = (_swapc($34,$4)|0); + $36 = ($35>>>0)<($1>>>0); + $37 = (($1) - ($35))|0; + $38 = ($31>>>0)<($37>>>0); + $or$cond102 = $36 & $38; + if (!($or$cond102)) { + $$4 = 0; + break L1; + } + $39 = (($35) + ($31))|0; + $40 = (($0) + ($39)|0); + $41 = HEAP8[$40>>0]|0; + $42 = ($41<<24>>24)==(0); + if (!($42)) { + $$4 = 0; + break L1; + } + $43 = (($0) + ($35)|0); + $44 = (_strcmp($2,$43)|0); + $45 = ($44|0)==(0); + if ($45) { + break; + } + $62 = ($$094|0)==(1); + $63 = ($44|0)<(0); + $64 = (($$094) - ($25))|0; + $$195 = $63 ? $25 : $64; + $$191 = $63 ? $$090 : $26; + if ($62) { + $$4 = 0; + break L1; + } else { + $$090 = $$191;$$094 = $$195; + } + } + $46 = (($27) + ($24))|0; + $47 = (($0) + ($46<<2)|0); + $48 = HEAP32[$47>>2]|0; + $49 = (_swapc($48,$4)|0); + $50 = (($46) + 1)|0; + $51 = (($0) + ($50<<2)|0); + $52 = HEAP32[$51>>2]|0; + $53 = (_swapc($52,$4)|0); + $54 = ($53>>>0)<($1>>>0); + $55 = (($1) - ($53))|0; + $56 = ($49>>>0)<($55>>>0); + $or$cond104 = $54 & $56; + if ($or$cond104) { + $57 = (($0) + ($53)|0); + $58 = (($53) + ($49))|0; + $59 = (($0) + ($58)|0); + $60 = HEAP8[$59>>0]|0; + $61 = ($60<<24>>24)==(0); + $$ = $61 ? $57 : 0; + $$4 = $$; + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } else { + $$4 = 0; + } + } while(0); + return ($$4|0); +} +function _swapc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$ = 0, $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)==(0); + $3 = (_llvm_bswap_i32(($0|0))|0); + $$ = $2 ? $0 : $3; + return ($$|0); +} +function ___fwritex($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$038 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; + var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)==(0|0); + if ($5) { + $7 = (___towrite($2)|0); + $8 = ($7|0)==(0); + if ($8) { + $$pre = HEAP32[$3>>2]|0; + $12 = $$pre; + label = 5; + } else { + $$1 = 0; + } + } else { + $6 = $4; + $12 = $6; + label = 5; + } + L5: do { + if ((label|0) == 5) { + $9 = ((($2)) + 20|0); + $10 = HEAP32[$9>>2]|0; + $11 = (($12) - ($10))|0; + $13 = ($11>>>0)<($1>>>0); + $14 = $10; + if ($13) { + $15 = ((($2)) + 36|0); + $16 = HEAP32[$15>>2]|0; + $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0); + $$1 = $17; + break; + } + $18 = ((($2)) + 75|0); + $19 = HEAP8[$18>>0]|0; + $20 = ($19<<24>>24)>(-1); + L10: do { + if ($20) { + $$038 = $1; + while(1) { + $21 = ($$038|0)==(0); + if ($21) { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + break L10; + } + $22 = (($$038) + -1)|0; + $23 = (($0) + ($22)|0); + $24 = HEAP8[$23>>0]|0; + $25 = ($24<<24>>24)==(10); + if ($25) { + break; + } else { + $$038 = $22; + } + } + $26 = ((($2)) + 36|0); + $27 = HEAP32[$26>>2]|0; + $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0); + $29 = ($28>>>0)<($$038>>>0); + if ($29) { + $$1 = $28; + break L5; + } + $30 = (($0) + ($$038)|0); + $$042 = (($1) - ($$038))|0; + $$pre47 = HEAP32[$9>>2]|0; + $$139 = $$038;$$141 = $30;$$143 = $$042;$31 = $$pre47; + } else { + $$139 = 0;$$141 = $0;$$143 = $1;$31 = $14; + } + } while(0); + _memcpy(($31|0),($$141|0),($$143|0))|0; + $32 = HEAP32[$9>>2]|0; + $33 = (($32) + ($$143)|0); + HEAP32[$9>>2] = $33; + $34 = (($$139) + ($$143))|0; + $$1 = $34; + } + } while(0); + return ($$1|0); +} +function ___towrite($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 74|0); + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $4 = (($3) + 255)|0; + $5 = $4 | $3; + $6 = $5&255; + HEAP8[$1>>0] = $6; + $7 = HEAP32[$0>>2]|0; + $8 = $7 & 8; + $9 = ($8|0)==(0); + if ($9) { + $11 = ((($0)) + 8|0); + HEAP32[$11>>2] = 0; + $12 = ((($0)) + 4|0); + HEAP32[$12>>2] = 0; + $13 = ((($0)) + 44|0); + $14 = HEAP32[$13>>2]|0; + $15 = ((($0)) + 28|0); + HEAP32[$15>>2] = $14; + $16 = ((($0)) + 20|0); + HEAP32[$16>>2] = $14; + $17 = ((($0)) + 48|0); + $18 = HEAP32[$17>>2]|0; + $19 = (($14) + ($18)|0); + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = $19; + $$0 = 0; + } else { + $10 = $7 | 32; + HEAP32[$0>>2] = $10; + $$0 = -1; + } + return ($$0|0); +} +function _sn_write($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $10 = 0, $11 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 16|0); + $4 = HEAP32[$3>>2]|0; + $5 = ((($0)) + 20|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6; + $8 = (($4) - ($7))|0; + $9 = ($8>>>0)>($2>>>0); + $$ = $9 ? $2 : $8; + _memcpy(($6|0),($1|0),($$|0))|0; + $10 = HEAP32[$5>>2]|0; + $11 = (($10) + ($$)|0); + HEAP32[$5>>2] = $11; + return ($2|0); +} +function ___floatscan($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$0105$ph = 0, $$0106$ph = 0, $$0107$lcssa = 0, $$0107127 = 0, $$0113 = 0, $$0114 = 0.0, $$1$lcssa = 0, $$1108 = 0, $$1128 = 0, $$2 = 0, $$2109125 = 0, $$3110 = 0, $$3126 = 0, $$4 = 0, $$4111 = 0, $$5 = 0, $$6 = 0, $$in = 0, $$old8 = 0; + var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; + var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0.0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; + var $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; + var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; + var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0; + sp = STACKTOP; + switch ($1|0) { + case 0: { + $$0105$ph = -149;$$0106$ph = 24; + label = 4; + break; + } + case 1: { + $$0105$ph = -1074;$$0106$ph = 53; + label = 4; + break; + } + case 2: { + $$0105$ph = -1074;$$0106$ph = 53; + label = 4; + break; + } + default: { + $$0114 = 0.0; + } + } + L4: do { + if ((label|0) == 4) { + $3 = ((($0)) + 4|0); + $4 = ((($0)) + 100|0); + while(1) { + $5 = HEAP32[$3>>2]|0; + $6 = HEAP32[$4>>2]|0; + $7 = ($5>>>0)<($6>>>0); + if ($7) { + $8 = ((($5)) + 1|0); + HEAP32[$3>>2] = $8; + $9 = HEAP8[$5>>0]|0; + $10 = $9&255; + $12 = $10; + } else { + $11 = (___shgetc($0)|0); + $12 = $11; + } + $13 = (_isspace($12)|0); + $14 = ($13|0)==(0); + if ($14) { + break; + } + } + L13: do { + switch ($12|0) { + case 43: case 45: { + $15 = ($12|0)==(45); + $16 = $15&1; + $17 = $16 << 1; + $18 = (1 - ($17))|0; + $19 = HEAP32[$3>>2]|0; + $20 = HEAP32[$4>>2]|0; + $21 = ($19>>>0)<($20>>>0); + if ($21) { + $22 = ((($19)) + 1|0); + HEAP32[$3>>2] = $22; + $23 = HEAP8[$19>>0]|0; + $24 = $23&255; + $$0 = $24;$$0113 = $18; + break L13; + } else { + $25 = (___shgetc($0)|0); + $$0 = $25;$$0113 = $18; + break L13; + } + break; + } + default: { + $$0 = $12;$$0113 = 1; + } + } + } while(0); + $$0107127 = 0;$$1128 = $$0; + while(1) { + $26 = $$1128 | 32; + $27 = (17908 + ($$0107127)|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28 << 24 >> 24; + $30 = ($26|0)==($29|0); + if (!($30)) { + $$0107$lcssa = $$0107127;$$1$lcssa = $$1128; + break; + } + $31 = ($$0107127>>>0)<(7); + do { + if ($31) { + $32 = HEAP32[$3>>2]|0; + $33 = HEAP32[$4>>2]|0; + $34 = ($32>>>0)<($33>>>0); + if ($34) { + $35 = ((($32)) + 1|0); + HEAP32[$3>>2] = $35; + $36 = HEAP8[$32>>0]|0; + $37 = $36&255; + $$2 = $37; + break; + } else { + $38 = (___shgetc($0)|0); + $$2 = $38; + break; + } + } else { + $$2 = $$1128; + } + } while(0); + $39 = (($$0107127) + 1)|0; + $40 = ($39>>>0)<(8); + if ($40) { + $$0107127 = $39;$$1128 = $$2; + } else { + $$0107$lcssa = $39;$$1$lcssa = $$2; + break; + } + } + L29: do { + switch ($$0107$lcssa|0) { + case 8: { + break; + } + case 3: { + label = 23; + break; + } + default: { + $41 = ($$0107$lcssa>>>0)>(3); + $42 = ($2|0)!=(0); + $or$cond5 = $42 & $41; + if ($or$cond5) { + $43 = ($$0107$lcssa|0)==(8); + if ($43) { + break L29; + } else { + label = 23; + break L29; + } + } + $56 = ($$0107$lcssa|0)==(0); + L34: do { + if ($56) { + $$2109125 = 0;$$3126 = $$1$lcssa; + while(1) { + $57 = $$3126 | 32; + $58 = (17917 + ($$2109125)|0); + $59 = HEAP8[$58>>0]|0; + $60 = $59 << 24 >> 24; + $61 = ($57|0)==($60|0); + if (!($61)) { + $$3110 = $$2109125;$$5 = $$3126; + break L34; + } + $62 = ($$2109125>>>0)<(2); + do { + if ($62) { + $63 = HEAP32[$3>>2]|0; + $64 = HEAP32[$4>>2]|0; + $65 = ($63>>>0)<($64>>>0); + if ($65) { + $66 = ((($63)) + 1|0); + HEAP32[$3>>2] = $66; + $67 = HEAP8[$63>>0]|0; + $68 = $67&255; + $$4 = $68; + break; + } else { + $69 = (___shgetc($0)|0); + $$4 = $69; + break; + } + } else { + $$4 = $$3126; + } + } while(0); + $70 = (($$2109125) + 1)|0; + $71 = ($70>>>0)<(3); + if ($71) { + $$2109125 = $70;$$3126 = $$4; + } else { + $$3110 = $70;$$5 = $$4; + break; + } + } + } else { + $$3110 = $$0107$lcssa;$$5 = $$1$lcssa; + } + } while(0); + switch ($$3110|0) { + case 3: { + $72 = HEAP32[$3>>2]|0; + $73 = HEAP32[$4>>2]|0; + $74 = ($72>>>0)<($73>>>0); + if ($74) { + $75 = ((($72)) + 1|0); + HEAP32[$3>>2] = $75; + $76 = HEAP8[$72>>0]|0; + $77 = $76&255; + $80 = $77; + } else { + $78 = (___shgetc($0)|0); + $80 = $78; + } + $79 = ($80|0)==(40); + if ($79) { + $$4111 = 1; + } else { + $81 = HEAP32[$4>>2]|0; + $82 = ($81|0)==(0|0); + if ($82) { + $$0114 = nan; + break L4; + } + $83 = HEAP32[$3>>2]|0; + $84 = ((($83)) + -1|0); + HEAP32[$3>>2] = $84; + $$0114 = nan; + break L4; + } + while(1) { + $85 = HEAP32[$3>>2]|0; + $86 = HEAP32[$4>>2]|0; + $87 = ($85>>>0)<($86>>>0); + if ($87) { + $88 = ((($85)) + 1|0); + HEAP32[$3>>2] = $88; + $89 = HEAP8[$85>>0]|0; + $90 = $89&255; + $93 = $90; + } else { + $91 = (___shgetc($0)|0); + $93 = $91; + } + $92 = (($93) + -48)|0; + $94 = ($92>>>0)<(10); + $95 = (($93) + -65)|0; + $96 = ($95>>>0)<(26); + $or$cond = $94 | $96; + if (!($or$cond)) { + $97 = (($93) + -97)|0; + $98 = ($97>>>0)<(26); + $99 = ($93|0)==(95); + $or$cond7 = $99 | $98; + if (!($or$cond7)) { + break; + } + } + $111 = (($$4111) + 1)|0; + $$4111 = $111; + } + $100 = ($93|0)==(41); + if ($100) { + $$0114 = nan; + break L4; + } + $101 = HEAP32[$4>>2]|0; + $102 = ($101|0)==(0|0); + if (!($102)) { + $103 = HEAP32[$3>>2]|0; + $104 = ((($103)) + -1|0); + HEAP32[$3>>2] = $104; + } + if (!($42)) { + $106 = (___errno_location()|0); + HEAP32[$106>>2] = 22; + ___shlim($0,0); + $$0114 = 0.0; + break L4; + } + $105 = ($$4111|0)==(0); + if ($105) { + $$0114 = nan; + break L4; + } else { + $$in = $$4111; + } + while(1) { + $107 = (($$in) + -1)|0; + if (!($102)) { + $108 = HEAP32[$3>>2]|0; + $109 = ((($108)) + -1|0); + HEAP32[$3>>2] = $109; + } + $110 = ($107|0)==(0); + if ($110) { + $$0114 = nan; + break L4; + } else { + $$in = $107; + } + } + break; + } + case 0: { + $117 = ($$5|0)==(48); + if ($117) { + $118 = HEAP32[$3>>2]|0; + $119 = HEAP32[$4>>2]|0; + $120 = ($118>>>0)<($119>>>0); + if ($120) { + $121 = ((($118)) + 1|0); + HEAP32[$3>>2] = $121; + $122 = HEAP8[$118>>0]|0; + $123 = $122&255; + $126 = $123; + } else { + $124 = (___shgetc($0)|0); + $126 = $124; + } + $125 = $126 | 32; + $127 = ($125|0)==(120); + if ($127) { + $128 = (+_hexfloat($0,$$0106$ph,$$0105$ph,$$0113,$2)); + $$0114 = $128; + break L4; + } + $129 = HEAP32[$4>>2]|0; + $130 = ($129|0)==(0|0); + if ($130) { + $$6 = 48; + } else { + $131 = HEAP32[$3>>2]|0; + $132 = ((($131)) + -1|0); + HEAP32[$3>>2] = $132; + $$6 = 48; + } + } else { + $$6 = $$5; + } + $133 = (+_decfloat($0,$$6,$$0106$ph,$$0105$ph,$$0113,$2)); + $$0114 = $133; + break L4; + break; + } + default: { + $112 = HEAP32[$4>>2]|0; + $113 = ($112|0)==(0|0); + if (!($113)) { + $114 = HEAP32[$3>>2]|0; + $115 = ((($114)) + -1|0); + HEAP32[$3>>2] = $115; + } + $116 = (___errno_location()|0); + HEAP32[$116>>2] = 22; + ___shlim($0,0); + $$0114 = 0.0; + break L4; + } + } + } + } + } while(0); + if ((label|0) == 23) { + $44 = HEAP32[$4>>2]|0; + $45 = ($44|0)==(0|0); + if (!($45)) { + $46 = HEAP32[$3>>2]|0; + $47 = ((($46)) + -1|0); + HEAP32[$3>>2] = $47; + } + $48 = ($2|0)!=(0); + $49 = ($$0107$lcssa>>>0)>(3); + $or$cond9 = $48 & $49; + if ($or$cond9) { + $$1108 = $$0107$lcssa; + while(1) { + if (!($45)) { + $50 = HEAP32[$3>>2]|0; + $51 = ((($50)) + -1|0); + HEAP32[$3>>2] = $51; + } + $52 = (($$1108) + -1)|0; + $$old8 = ($52>>>0)>(3); + if ($$old8) { + $$1108 = $52; + } else { + break; + } + } + } + } + $53 = (+($$0113|0)); + $54 = $53 * inf; + $55 = $54; + $$0114 = $55; + } + } while(0); + return (+$$0114); +} +function _hexfloat($0,$1,$2,$3,$4) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + var $$0 = 0, $$0133 = 0, $$0142 = 0, $$0146 = 0, $$0148 = 0, $$0148$ = 0, $$0151 = 0.0, $$0152 = 0.0, $$0155 = 0.0, $$0155$ = 0.0, $$0159 = 0, $$0165 = 0.0, $$0166 = 0, $$0166169 = 0, $$0166170 = 0, $$1$ph = 0, $$1147 = 0, $$1149 = 0, $$1153 = 0.0, $$1156 = 0.0; + var $$1160 = 0, $$2 = 0, $$2$lcssa = 0, $$2144 = 0, $$2150 = 0, $$2154 = 0.0, $$2157 = 0.0, $$2161 = 0, $$3145 = 0, $$3158$lcssa = 0.0, $$3158179 = 0.0, $$3162$lcssa = 0, $$3162183 = 0, $$4 = 0.0, $$4163$lcssa = 0, $$4163178 = 0, $$5 = 0.0, $$5164 = 0, $$6 = 0, $$pn = 0.0; + var $$pre = 0.0, $$pre$phiZ2D = 0.0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; + var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; + var $152 = 0, $153 = 0.0, $154 = 0.0, $155 = 0.0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0.0, $167 = 0.0, $168 = 0.0, $169 = 0, $17 = 0; + var $170 = 0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; + var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0.0, $197 = 0, $198 = 0.0, $199 = 0.0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0.0, $206 = 0.0; + var $207 = 0.0, $208 = 0.0, $209 = 0.0, $21 = 0, $210 = 0.0, $211 = 0, $212 = 0, $213 = 0.0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; + var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; + var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0.0; + var $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; + var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0, $not$ = 0, $or$cond = 0, $or$cond168 = 0, $or$cond206 = 0, $or$cond4 = 0; + var $or$cond6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $5 = ((($0)) + 4|0); + $6 = HEAP32[$5>>2]|0; + $7 = ((($0)) + 100|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($6>>>0)<($8>>>0); + if ($9) { + $10 = ((($6)) + 1|0); + HEAP32[$5>>2] = $10; + $11 = HEAP8[$6>>0]|0; + $12 = $11&255; + $$0 = $12;$$0142 = 0; + } else { + $13 = (___shgetc($0)|0); + $$0 = $13;$$0142 = 0; + } + L4: while(1) { + switch ($$0|0) { + case 46: { + label = 8; + break L4; + break; + } + case 48: { + break; + } + default: { + $$0146 = 0;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $$0;$$2144 = $$0142;$101 = 0;$53 = 0;$55 = 0;$99 = 0; + break L4; + } + } + $14 = HEAP32[$5>>2]|0; + $15 = HEAP32[$7>>2]|0; + $16 = ($14>>>0)<($15>>>0); + if ($16) { + $17 = ((($14)) + 1|0); + HEAP32[$5>>2] = $17; + $18 = HEAP8[$14>>0]|0; + $19 = $18&255; + $$0 = $19;$$0142 = 1; + continue; + } else { + $20 = (___shgetc($0)|0); + $$0 = $20;$$0142 = 1; + continue; + } + } + if ((label|0) == 8) { + $21 = HEAP32[$5>>2]|0; + $22 = HEAP32[$7>>2]|0; + $23 = ($21>>>0)<($22>>>0); + if ($23) { + $24 = ((($21)) + 1|0); + HEAP32[$5>>2] = $24; + $25 = HEAP8[$21>>0]|0; + $26 = $25&255; + $$1$ph = $26; + } else { + $27 = (___shgetc($0)|0); + $$1$ph = $27; + } + $28 = ($$1$ph|0)==(48); + if ($28) { + $36 = 0;$37 = 0; + while(1) { + $29 = HEAP32[$5>>2]|0; + $30 = HEAP32[$7>>2]|0; + $31 = ($29>>>0)<($30>>>0); + if ($31) { + $32 = ((($29)) + 1|0); + HEAP32[$5>>2] = $32; + $33 = HEAP8[$29>>0]|0; + $34 = $33&255; + $41 = $34; + } else { + $35 = (___shgetc($0)|0); + $41 = $35; + } + $38 = (_i64Add(($36|0),($37|0),-1,-1)|0); + $39 = tempRet0; + $40 = ($41|0)==(48); + if ($40) { + $36 = $38;$37 = $39; + } else { + $$0146 = 1;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $41;$$2144 = 1;$101 = $39;$53 = 0;$55 = 0;$99 = $38; + break; + } + } + } else { + $$0146 = 1;$$0148 = 0;$$0152 = 1.0;$$0155 = 0.0;$$0159 = 0;$$2 = $$1$ph;$$2144 = $$0142;$101 = 0;$53 = 0;$55 = 0;$99 = 0; + } + } + while(1) { + $42 = (($$2) + -48)|0; + $43 = ($42>>>0)<(10); + $44 = ($$2|0)==(46); + if (!($43)) { + $45 = $$2 | 32; + $46 = (($45) + -97)|0; + $47 = ($46>>>0)<(6); + $or$cond6 = $44 | $47; + if (!($or$cond6)) { + $$2$lcssa = $$2; + break; + } + } + if ($44) { + $48 = ($$0146|0)==(0); + if ($48) { + $$1147 = 1;$$2150 = $$0148;$$2154 = $$0152;$$2157 = $$0155;$$2161 = $$0159;$$3145 = $$2144;$214 = $55;$215 = $53;$216 = $55;$217 = $53; + } else { + $$2$lcssa = 46; + break; + } + } else { + $49 = ($$2|0)>(57); + $50 = $$2 | 32; + $51 = (($50) + -87)|0; + $$0133 = $49 ? $51 : $42; + $52 = ($53|0)<(0); + $54 = ($55>>>0)<(8); + $56 = ($53|0)==(0); + $57 = $56 & $54; + $58 = $52 | $57; + do { + if ($58) { + $59 = $$0159 << 4; + $60 = (($$0133) + ($59))|0; + $$1149 = $$0148;$$1153 = $$0152;$$1156 = $$0155;$$1160 = $60; + } else { + $61 = ($53|0)<(0); + $62 = ($55>>>0)<(14); + $63 = ($53|0)==(0); + $64 = $63 & $62; + $65 = $61 | $64; + if ($65) { + $66 = (+($$0133|0)); + $67 = $$0152 * 0.0625; + $68 = $67 * $66; + $69 = $$0155 + $68; + $$1149 = $$0148;$$1153 = $67;$$1156 = $69;$$1160 = $$0159; + break; + } else { + $70 = ($$0133|0)==(0); + $71 = ($$0148|0)!=(0); + $or$cond = $71 | $70; + $72 = $$0152 * 0.5; + $73 = $$0155 + $72; + $$0155$ = $or$cond ? $$0155 : $73; + $$0148$ = $or$cond ? $$0148 : 1; + $$1149 = $$0148$;$$1153 = $$0152;$$1156 = $$0155$;$$1160 = $$0159; + break; + } + } + } while(0); + $74 = (_i64Add(($55|0),($53|0),1,0)|0); + $75 = tempRet0; + $$1147 = $$0146;$$2150 = $$1149;$$2154 = $$1153;$$2157 = $$1156;$$2161 = $$1160;$$3145 = 1;$214 = $99;$215 = $101;$216 = $74;$217 = $75; + } + $76 = HEAP32[$5>>2]|0; + $77 = HEAP32[$7>>2]|0; + $78 = ($76>>>0)<($77>>>0); + if ($78) { + $79 = ((($76)) + 1|0); + HEAP32[$5>>2] = $79; + $80 = HEAP8[$76>>0]|0; + $81 = $80&255; + $$0146 = $$1147;$$0148 = $$2150;$$0152 = $$2154;$$0155 = $$2157;$$0159 = $$2161;$$2 = $81;$$2144 = $$3145;$101 = $215;$53 = $217;$55 = $216;$99 = $214; + continue; + } else { + $82 = (___shgetc($0)|0); + $$0146 = $$1147;$$0148 = $$2150;$$0152 = $$2154;$$0155 = $$2157;$$0159 = $$2161;$$2 = $82;$$2144 = $$3145;$101 = $215;$53 = $217;$55 = $216;$99 = $214; + continue; + } + } + $83 = ($$2144|0)==(0); + do { + if ($83) { + $84 = HEAP32[$7>>2]|0; + $85 = ($84|0)!=(0|0); + if ($85) { + $86 = HEAP32[$5>>2]|0; + $87 = ((($86)) + -1|0); + HEAP32[$5>>2] = $87; + } + $88 = ($4|0)==(0); + if ($88) { + ___shlim($0,0); + } else { + if ($85) { + $89 = HEAP32[$5>>2]|0; + $90 = ((($89)) + -1|0); + HEAP32[$5>>2] = $90; + } + $91 = ($$0146|0)==(0); + $92 = ($84|0)==(0|0); + $or$cond206 = $91 | $92; + if (!($or$cond206)) { + $93 = HEAP32[$5>>2]|0; + $94 = ((($93)) + -1|0); + HEAP32[$5>>2] = $94; + } + } + $95 = (+($3|0)); + $96 = $95 * 0.0; + $$0165 = $96; + } else { + $97 = ($$0146|0)==(0); + $98 = $97 ? $55 : $99; + $100 = $97 ? $53 : $101; + $102 = ($53|0)<(0); + $103 = ($55>>>0)<(8); + $104 = ($53|0)==(0); + $105 = $104 & $103; + $106 = $102 | $105; + if ($106) { + $$3162183 = $$0159;$108 = $55;$109 = $53; + while(1) { + $107 = $$3162183 << 4; + $110 = (_i64Add(($108|0),($109|0),1,0)|0); + $111 = tempRet0; + $112 = ($111|0)<(0); + $113 = ($110>>>0)<(8); + $114 = ($111|0)==(0); + $115 = $114 & $113; + $116 = $112 | $115; + if ($116) { + $$3162183 = $107;$108 = $110;$109 = $111; + } else { + $$3162$lcssa = $107; + break; + } + } + } else { + $$3162$lcssa = $$0159; + } + $117 = $$2$lcssa | 32; + $118 = ($117|0)==(112); + if ($118) { + $119 = (_scanexp($0,$4)|0); + $120 = tempRet0; + $121 = ($119|0)==(0); + $122 = ($120|0)==(-2147483648); + $123 = $121 & $122; + if ($123) { + $124 = ($4|0)==(0); + if ($124) { + ___shlim($0,0); + $$0165 = 0.0; + break; + } + $125 = HEAP32[$7>>2]|0; + $126 = ($125|0)==(0|0); + if ($126) { + $137 = 0;$138 = 0; + } else { + $127 = HEAP32[$5>>2]|0; + $128 = ((($127)) + -1|0); + HEAP32[$5>>2] = $128; + $137 = 0;$138 = 0; + } + } else { + $137 = $119;$138 = $120; + } + } else { + $129 = HEAP32[$7>>2]|0; + $130 = ($129|0)==(0|0); + if ($130) { + $137 = 0;$138 = 0; + } else { + $131 = HEAP32[$5>>2]|0; + $132 = ((($131)) + -1|0); + HEAP32[$5>>2] = $132; + $137 = 0;$138 = 0; + } + } + $133 = (_bitshift64Shl(($98|0),($100|0),2)|0); + $134 = tempRet0; + $135 = (_i64Add(($133|0),($134|0),-32,-1)|0); + $136 = tempRet0; + $139 = (_i64Add(($135|0),($136|0),($137|0),($138|0))|0); + $140 = tempRet0; + $141 = ($$3162$lcssa|0)==(0); + if ($141) { + $142 = (+($3|0)); + $143 = $142 * 0.0; + $$0165 = $143; + break; + } + $144 = (0 - ($2))|0; + $145 = ($144|0)<(0); + $146 = $145 << 31 >> 31; + $147 = ($140|0)>($146|0); + $148 = ($139>>>0)>($144>>>0); + $149 = ($140|0)==($146|0); + $150 = $149 & $148; + $151 = $147 | $150; + if ($151) { + $152 = (___errno_location()|0); + HEAP32[$152>>2] = 34; + $153 = (+($3|0)); + $154 = $153 * 1.7976931348623157E+308; + $155 = $154 * 1.7976931348623157E+308; + $$0165 = $155; + break; + } + $156 = (($2) + -106)|0; + $157 = ($156|0)<(0); + $158 = $157 << 31 >> 31; + $159 = ($140|0)<($158|0); + $160 = ($139>>>0)<($156>>>0); + $161 = ($140|0)==($158|0); + $162 = $161 & $160; + $163 = $159 | $162; + if ($163) { + $165 = (___errno_location()|0); + HEAP32[$165>>2] = 34; + $166 = (+($3|0)); + $167 = $166 * 2.2250738585072014E-308; + $168 = $167 * 2.2250738585072014E-308; + $$0165 = $168; + break; + } + $164 = ($$3162$lcssa|0)>(-1); + if ($164) { + $$3158179 = $$0155;$$4163178 = $$3162$lcssa;$173 = $139;$174 = $140; + while(1) { + $169 = !($$3158179 >= 0.5); + $170 = $$4163178 << 1; + $171 = $$3158179 + -1.0; + $not$ = $169 ^ 1; + $172 = $not$&1; + $$5164 = $170 | $172; + $$pn = $169 ? $$3158179 : $171; + $$4 = $$3158179 + $$pn; + $175 = (_i64Add(($173|0),($174|0),-1,-1)|0); + $176 = tempRet0; + $177 = ($$5164|0)>(-1); + if ($177) { + $$3158179 = $$4;$$4163178 = $$5164;$173 = $175;$174 = $176; + } else { + $$3158$lcssa = $$4;$$4163$lcssa = $$5164;$184 = $175;$185 = $176; + break; + } + } + } else { + $$3158$lcssa = $$0155;$$4163$lcssa = $$3162$lcssa;$184 = $139;$185 = $140; + } + $178 = ($1|0)<(0); + $179 = $178 << 31 >> 31; + $180 = ($2|0)<(0); + $181 = $180 << 31 >> 31; + $182 = (_i64Subtract(32,0,($2|0),($181|0))|0); + $183 = tempRet0; + $186 = (_i64Add(($182|0),($183|0),($184|0),($185|0))|0); + $187 = tempRet0; + $188 = ($179|0)>($187|0); + $189 = ($1>>>0)>($186>>>0); + $190 = ($179|0)==($187|0); + $191 = $190 & $189; + $192 = $188 | $191; + if ($192) { + $193 = ($186|0)>(0); + if ($193) { + $$0166 = $186; + label = 59; + } else { + $$0166170 = 0;$197 = 84; + label = 61; + } + } else { + $$0166 = $1; + label = 59; + } + if ((label|0) == 59) { + $194 = ($$0166|0)<(53); + $195 = (84 - ($$0166))|0; + if ($194) { + $$0166170 = $$0166;$197 = $195; + label = 61; + } else { + $$pre = (+($3|0)); + $$0151 = 0.0;$$0166169 = $$0166;$$pre$phiZ2D = $$pre; + } + } + if ((label|0) == 61) { + $196 = (+($3|0)); + $198 = (+_scalbn(1.0,$197)); + $199 = (+_copysignl($198,$196)); + $$0151 = $199;$$0166169 = $$0166170;$$pre$phiZ2D = $196; + } + $200 = ($$0166169|0)<(32); + $201 = $$3158$lcssa != 0.0; + $or$cond4 = $201 & $200; + $202 = $$4163$lcssa & 1; + $203 = ($202|0)==(0); + $or$cond168 = $203 & $or$cond4; + $204 = $or$cond168&1; + $$6 = (($204) + ($$4163$lcssa))|0; + $$5 = $or$cond168 ? 0.0 : $$3158$lcssa; + $205 = (+($$6>>>0)); + $206 = $$pre$phiZ2D * $205; + $207 = $$0151 + $206; + $208 = $$pre$phiZ2D * $$5; + $209 = $208 + $207; + $210 = $209 - $$0151; + $211 = $210 != 0.0; + if (!($211)) { + $212 = (___errno_location()|0); + HEAP32[$212>>2] = 34; + } + $213 = (+_scalbnl($210,$184)); + $$0165 = $213; + } + } while(0); + return (+$$0165); +} +function _decfloat($0,$1,$2,$3,$4,$5) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + $4 = $4|0; + $5 = $5|0; + var $$ = 0, $$$0345 = 0, $$$0350 = 0, $$$0385 = 0, $$$0401 = 0, $$$5355 = 0, $$$5390 = 0, $$0329 = 0, $$0332490 = 0, $$0333 = 0, $$0334 = 0, $$0336486 = 0, $$0340496 = 0, $$0341$lcssa = 0, $$0341463 = 0, $$0341464 = 0, $$0341465 = 0, $$0341513 = 0, $$0345$lcssa = 0, $$0345467 = 0; + var $$0345468 = 0, $$0345469 = 0, $$0345512 = 0, $$0350$lcssa554 = 0, $$0350494 = 0, $$0360 = 0.0, $$0361 = 0.0, $$0365484 = 0.0, $$0372 = 0, $$0380 = 0, $$0380$ph = 0, $$0385$lcssa553 = 0, $$0385493 = 0, $$0393 = 0, $$0396 = 0, $$0401$lcssa = 0, $$0401473 = 0, $$0401474 = 0, $$0401475 = 0, $$0401509 = 0; + var $$1 = 0.0, $$10 = 0, $$1330$be = 0, $$1330$ph = 0, $$1335 = 0, $$1337 = 0, $$1362 = 0.0, $$1366 = 0.0, $$1373 = 0, $$1373$ph448 = 0, $$1381 = 0, $$1381$ph = 0, $$1381$ph558 = 0, $$1394$lcssa = 0, $$1394511 = 0, $$2 = 0, $$2343 = 0, $$2347 = 0, $$2352$ph449 = 0, $$2367 = 0.0; + var $$2371$v = 0, $$2374 = 0, $$2387$ph447 = 0, $$2395 = 0, $$2398 = 0, $$2403 = 0, $$3$be = 0, $$3$lcssa = 0, $$3344503 = 0, $$3348 = 0, $$3364 = 0.0, $$3368 = 0.0, $$3375 = 0, $$3383 = 0, $$3399$lcssa = 0, $$3399510 = 0, $$3514 = 0, $$413 = 0, $$425 = 0, $$4349495 = 0; + var $$4354 = 0, $$4354$ph = 0, $$4354$ph559 = 0, $$4376 = 0, $$4384 = 0, $$4389$ph = 0, $$4389$ph445 = 0, $$4400 = 0, $$4485 = 0, $$5 = 0, $$5$in = 0, $$5355488 = 0, $$5390487 = 0, $$6378$ph = 0, $$6489 = 0, $$9483 = 0, $$neg442 = 0, $$neg443 = 0, $$pre = 0, $$promoted = 0; + var $$sink = 0, $$sink421$off0 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; + var $116 = 0, $117 = 0, $118 = 0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0.0, $132 = 0.0, $133 = 0.0; + var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0.0, $144 = 0.0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; + var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0.0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0, $162 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0, $166 = 0, $167 = 0, $168 = 0.0, $169 = 0.0, $17 = 0; + var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0.0, $177 = 0.0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; + var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0.0, $304 = 0, $305 = 0, $306 = 0.0, $307 = 0.0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; + var $316 = 0, $317 = 0.0, $318 = 0.0, $319 = 0, $32 = 0, $320 = 0.0, $321 = 0.0, $322 = 0.0, $323 = 0.0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; + var $334 = 0.0, $335 = 0.0, $336 = 0, $337 = 0.0, $338 = 0.0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0.0, $343 = 0.0, $344 = 0.0, $345 = 0.0, $346 = 0, $347 = 0, $348 = 0.0, $349 = 0, $35 = 0, $350 = 0.0, $351 = 0.0; + var $352 = 0.0, $353 = 0, $354 = 0, $355 = 0, $356 = 0.0, $357 = 0, $358 = 0.0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0.0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0; + var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $39 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; + var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; + var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; + var $98 = 0, $99 = 0, $cond = 0, $exitcond = 0, $exitcond551 = 0, $narrow = 0, $not$ = 0, $or$cond = 0, $or$cond11 = 0, $or$cond14 = 0, $or$cond415 = 0, $or$cond417 = 0, $or$cond419 = 0, $or$cond420 = 0, $or$cond422 = 0, $or$cond422$not = 0, $or$cond423 = 0, $or$cond426 = 0, $or$cond5 = 0, $sum = 0; + var label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(512|0); + $6 = sp; + $sum = (($3) + ($2))|0; + $7 = (0 - ($sum))|0; + $8 = ((($0)) + 4|0); + $9 = ((($0)) + 100|0); + $$0329 = $1;$$0396 = 0; + L1: while(1) { + switch ($$0329|0) { + case 46: { + label = 6; + break L1; + break; + } + case 48: { + break; + } + default: { + $$0393 = 0;$$2 = $$0329;$$2398 = $$0396;$366 = 0;$367 = 0; + break L1; + } + } + $10 = HEAP32[$8>>2]|0; + $11 = HEAP32[$9>>2]|0; + $12 = ($10>>>0)<($11>>>0); + if ($12) { + $13 = ((($10)) + 1|0); + HEAP32[$8>>2] = $13; + $14 = HEAP8[$10>>0]|0; + $15 = $14&255; + $$0329 = $15;$$0396 = 1; + continue; + } else { + $16 = (___shgetc($0)|0); + $$0329 = $16;$$0396 = 1; + continue; + } + } + if ((label|0) == 6) { + $17 = HEAP32[$8>>2]|0; + $18 = HEAP32[$9>>2]|0; + $19 = ($17>>>0)<($18>>>0); + if ($19) { + $20 = ((($17)) + 1|0); + HEAP32[$8>>2] = $20; + $21 = HEAP8[$17>>0]|0; + $22 = $21&255; + $$1330$ph = $22; + } else { + $23 = (___shgetc($0)|0); + $$1330$ph = $23; + } + $24 = ($$1330$ph|0)==(48); + if ($24) { + $25 = 0;$26 = 0; + while(1) { + $27 = (_i64Add(($25|0),($26|0),-1,-1)|0); + $28 = tempRet0; + $29 = HEAP32[$8>>2]|0; + $30 = HEAP32[$9>>2]|0; + $31 = ($29>>>0)<($30>>>0); + if ($31) { + $32 = ((($29)) + 1|0); + HEAP32[$8>>2] = $32; + $33 = HEAP8[$29>>0]|0; + $34 = $33&255; + $$1330$be = $34; + } else { + $35 = (___shgetc($0)|0); + $$1330$be = $35; + } + $36 = ($$1330$be|0)==(48); + if ($36) { + $25 = $27;$26 = $28; + } else { + $$0393 = 1;$$2 = $$1330$be;$$2398 = 1;$366 = $27;$367 = $28; + break; + } + } + } else { + $$0393 = 1;$$2 = $$1330$ph;$$2398 = $$0396;$366 = 0;$367 = 0; + } + } + HEAP32[$6>>2] = 0; + $37 = (($$2) + -48)|0; + $38 = ($37>>>0)<(10); + $39 = ($$2|0)==(46); + $40 = $39 | $38; + L20: do { + if ($40) { + $41 = ((($6)) + 496|0); + $$0341513 = 0;$$0345512 = 0;$$0401509 = 0;$$1394511 = $$0393;$$3399510 = $$2398;$$3514 = $$2;$368 = $39;$369 = $37;$370 = $366;$371 = $367;$44 = 0;$45 = 0; + L22: while(1) { + do { + if ($368) { + $cond = ($$1394511|0)==(0); + if ($cond) { + $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = 1;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $44;$373 = $45;$374 = $44;$375 = $45; + } else { + break L22; + } + } else { + $43 = ($$0345512|0)<(125); + $46 = (_i64Add(($44|0),($45|0),1,0)|0); + $47 = tempRet0; + $48 = ($$3514|0)!=(48); + if (!($43)) { + if (!($48)) { + $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = $$1394511;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $370;$373 = $371;$374 = $46;$375 = $47; + break; + } + $57 = HEAP32[$41>>2]|0; + $58 = $57 | 1; + HEAP32[$41>>2] = $58; + $$2343 = $$0341513;$$2347 = $$0345512;$$2395 = $$1394511;$$2403 = $$0401509;$$4400 = $$3399510;$372 = $370;$373 = $371;$374 = $46;$375 = $47; + break; + } + $$$0401 = $48 ? $46 : $$0401509; + $49 = ($$0341513|0)==(0); + $$pre = (($6) + ($$0345512<<2)|0); + if ($49) { + $$sink = $369; + } else { + $50 = HEAP32[$$pre>>2]|0; + $51 = ($50*10)|0; + $52 = (($$3514) + -48)|0; + $53 = (($52) + ($51))|0; + $$sink = $53; + } + HEAP32[$$pre>>2] = $$sink; + $54 = (($$0341513) + 1)|0; + $55 = ($54|0)==(9); + $56 = $55&1; + $$$0345 = (($56) + ($$0345512))|0; + $$413 = $55 ? 0 : $54; + $$2343 = $$413;$$2347 = $$$0345;$$2395 = $$1394511;$$2403 = $$$0401;$$4400 = 1;$372 = $370;$373 = $371;$374 = $46;$375 = $47; + } + } while(0); + $59 = HEAP32[$8>>2]|0; + $60 = HEAP32[$9>>2]|0; + $61 = ($59>>>0)<($60>>>0); + if ($61) { + $62 = ((($59)) + 1|0); + HEAP32[$8>>2] = $62; + $63 = HEAP8[$59>>0]|0; + $64 = $63&255; + $$3$be = $64; + } else { + $65 = (___shgetc($0)|0); + $$3$be = $65; + } + $66 = (($$3$be) + -48)|0; + $67 = ($66>>>0)<(10); + $68 = ($$3$be|0)==(46); + $69 = $68 | $67; + if ($69) { + $$0341513 = $$2343;$$0345512 = $$2347;$$0401509 = $$2403;$$1394511 = $$2395;$$3399510 = $$4400;$$3514 = $$3$be;$368 = $68;$369 = $66;$370 = $372;$371 = $373;$44 = $374;$45 = $375; + } else { + $$0341$lcssa = $$2343;$$0345$lcssa = $$2347;$$0401$lcssa = $$2403;$$1394$lcssa = $$2395;$$3$lcssa = $$3$be;$$3399$lcssa = $$4400;$72 = $372;$73 = $374;$75 = $373;$76 = $375; + label = 29; + break L20; + } + } + $42 = ($$3399510|0)!=(0); + $$0341465 = $$0341513;$$0345469 = $$0345512;$$0401475 = $$0401509;$376 = $44;$377 = $45;$378 = $370;$379 = $371;$380 = $42; + label = 37; + } else { + $$0341$lcssa = 0;$$0345$lcssa = 0;$$0401$lcssa = 0;$$1394$lcssa = $$0393;$$3$lcssa = $$2;$$3399$lcssa = $$2398;$72 = $366;$73 = 0;$75 = $367;$76 = 0; + label = 29; + } + } while(0); + do { + if ((label|0) == 29) { + $70 = ($$1394$lcssa|0)==(0); + $71 = $70 ? $73 : $72; + $74 = $70 ? $76 : $75; + $77 = ($$3399$lcssa|0)!=(0); + $78 = $$3$lcssa | 32; + $79 = ($78|0)==(101); + $or$cond415 = $77 & $79; + if (!($or$cond415)) { + $94 = ($$3$lcssa|0)>(-1); + if ($94) { + $$0341465 = $$0341$lcssa;$$0345469 = $$0345$lcssa;$$0401475 = $$0401$lcssa;$376 = $73;$377 = $76;$378 = $71;$379 = $74;$380 = $77; + label = 37; + break; + } else { + $$0341464 = $$0341$lcssa;$$0345468 = $$0345$lcssa;$$0401474 = $$0401$lcssa;$381 = $73;$382 = $76;$383 = $77;$384 = $71;$385 = $74; + label = 39; + break; + } + } + $80 = (_scanexp($0,$5)|0); + $81 = tempRet0; + $82 = ($80|0)==(0); + $83 = ($81|0)==(-2147483648); + $84 = $82 & $83; + if ($84) { + $85 = ($5|0)==(0); + if ($85) { + ___shlim($0,0); + $$1 = 0.0; + break; + } + $86 = HEAP32[$9>>2]|0; + $87 = ($86|0)==(0|0); + if ($87) { + $90 = 0;$91 = 0; + } else { + $88 = HEAP32[$8>>2]|0; + $89 = ((($88)) + -1|0); + HEAP32[$8>>2] = $89; + $90 = 0;$91 = 0; + } + } else { + $90 = $80;$91 = $81; + } + $92 = (_i64Add(($90|0),($91|0),($71|0),($74|0))|0); + $93 = tempRet0; + $$0341463 = $$0341$lcssa;$$0345467 = $$0345$lcssa;$$0401473 = $$0401$lcssa;$105 = $92;$106 = $73;$108 = $93;$109 = $76; + label = 41; + } + } while(0); + if ((label|0) == 37) { + $95 = HEAP32[$9>>2]|0; + $96 = ($95|0)==(0|0); + if ($96) { + $$0341464 = $$0341465;$$0345468 = $$0345469;$$0401474 = $$0401475;$381 = $376;$382 = $377;$383 = $380;$384 = $378;$385 = $379; + label = 39; + } else { + $97 = HEAP32[$8>>2]|0; + $98 = ((($97)) + -1|0); + HEAP32[$8>>2] = $98; + if ($380) { + $$0341463 = $$0341465;$$0345467 = $$0345469;$$0401473 = $$0401475;$105 = $378;$106 = $376;$108 = $379;$109 = $377; + label = 41; + } else { + label = 40; + } + } + } + if ((label|0) == 39) { + if ($383) { + $$0341463 = $$0341464;$$0345467 = $$0345468;$$0401473 = $$0401474;$105 = $384;$106 = $381;$108 = $385;$109 = $382; + label = 41; + } else { + label = 40; + } + } + do { + if ((label|0) == 40) { + $99 = (___errno_location()|0); + HEAP32[$99>>2] = 22; + ___shlim($0,0); + $$1 = 0.0; + } + else if ((label|0) == 41) { + $100 = HEAP32[$6>>2]|0; + $101 = ($100|0)==(0); + if ($101) { + $102 = (+($4|0)); + $103 = $102 * 0.0; + $$1 = $103; + break; + } + $104 = ($105|0)==($106|0); + $107 = ($108|0)==($109|0); + $110 = $104 & $107; + $111 = ($109|0)<(0); + $112 = ($106>>>0)<(10); + $113 = ($109|0)==(0); + $114 = $113 & $112; + $115 = $111 | $114; + $or$cond = $115 & $110; + if ($or$cond) { + $116 = ($2|0)>(30); + $117 = $100 >>> $2; + $118 = ($117|0)==(0); + $or$cond417 = $116 | $118; + if ($or$cond417) { + $119 = (+($4|0)); + $120 = (+($100>>>0)); + $121 = $119 * $120; + $$1 = $121; + break; + } + } + $122 = (($3|0) / -2)&-1; + $123 = ($122|0)<(0); + $124 = $123 << 31 >> 31; + $125 = ($108|0)>($124|0); + $126 = ($105>>>0)>($122>>>0); + $127 = ($108|0)==($124|0); + $128 = $127 & $126; + $129 = $125 | $128; + if ($129) { + $130 = (___errno_location()|0); + HEAP32[$130>>2] = 34; + $131 = (+($4|0)); + $132 = $131 * 1.7976931348623157E+308; + $133 = $132 * 1.7976931348623157E+308; + $$1 = $133; + break; + } + $134 = (($3) + -106)|0; + $135 = ($134|0)<(0); + $136 = $135 << 31 >> 31; + $137 = ($108|0)<($136|0); + $138 = ($105>>>0)<($134>>>0); + $139 = ($108|0)==($136|0); + $140 = $139 & $138; + $141 = $137 | $140; + if ($141) { + $142 = (___errno_location()|0); + HEAP32[$142>>2] = 34; + $143 = (+($4|0)); + $144 = $143 * 2.2250738585072014E-308; + $145 = $144 * 2.2250738585072014E-308; + $$1 = $145; + break; + } + $146 = ($$0341463|0)==(0); + if ($146) { + $$3348 = $$0345467; + } else { + $147 = ($$0341463|0)<(9); + if ($147) { + $148 = (($6) + ($$0345467<<2)|0); + $$promoted = HEAP32[$148>>2]|0; + $$3344503 = $$0341463;$150 = $$promoted; + while(1) { + $149 = ($150*10)|0; + $151 = (($$3344503) + 1)|0; + $exitcond551 = ($151|0)==(9); + if ($exitcond551) { + break; + } else { + $$3344503 = $151;$150 = $149; + } + } + HEAP32[$148>>2] = $149; + } + $152 = (($$0345467) + 1)|0; + $$3348 = $152; + } + $153 = ($$0401473|0)<(9); + if ($153) { + $154 = ($$0401473|0)<=($105|0); + $155 = ($105|0)<(18); + $or$cond5 = $154 & $155; + if ($or$cond5) { + $156 = ($105|0)==(9); + $157 = HEAP32[$6>>2]|0; + if ($156) { + $158 = (+($4|0)); + $159 = (+($157>>>0)); + $160 = $158 * $159; + $$1 = $160; + break; + } + $161 = ($105|0)<(9); + if ($161) { + $162 = (+($4|0)); + $163 = (+($157>>>0)); + $164 = $162 * $163; + $165 = (8 - ($105))|0; + $166 = (4368 + ($165<<2)|0); + $167 = HEAP32[$166>>2]|0; + $168 = (+($167|0)); + $169 = $164 / $168; + $$1 = $169; + break; + } + $$neg442 = Math_imul($105, -3)|0; + $$neg443 = (($2) + 27)|0; + $170 = (($$neg443) + ($$neg442))|0; + $171 = ($170|0)>(30); + $172 = $157 >>> $170; + $173 = ($172|0)==(0); + $or$cond419 = $171 | $173; + if ($or$cond419) { + $174 = (($105) + -10)|0; + $175 = (4368 + ($174<<2)|0); + $176 = (+($4|0)); + $177 = (+($157>>>0)); + $178 = $176 * $177; + $179 = HEAP32[$175>>2]|0; + $180 = (+($179|0)); + $181 = $178 * $180; + $$1 = $181; + break; + } + } + } + $182 = (($105|0) % 9)&-1; + $183 = ($182|0)==(0); + if ($183) { + $$0380$ph = 0;$$1373$ph448 = $$3348;$$2352$ph449 = 0;$$2387$ph447 = $105; + } else { + $184 = ($105|0)>(-1); + $185 = (($182) + 9)|0; + $186 = $184 ? $182 : $185; + $187 = (8 - ($186))|0; + $188 = (4368 + ($187<<2)|0); + $189 = HEAP32[$188>>2]|0; + $190 = ($$3348|0)==(0); + if ($190) { + $$0350$lcssa554 = 0;$$0372 = 0;$$0385$lcssa553 = $105; + } else { + $191 = (1000000000 / ($189|0))&-1; + $$0340496 = 0;$$0350494 = 0;$$0385493 = $105;$$4349495 = 0; + while(1) { + $192 = (($6) + ($$4349495<<2)|0); + $193 = HEAP32[$192>>2]|0; + $194 = (($193>>>0) % ($189>>>0))&-1; + $195 = (($193>>>0) / ($189>>>0))&-1; + $196 = (($195) + ($$0340496))|0; + HEAP32[$192>>2] = $196; + $197 = Math_imul($191, $194)|0; + $198 = ($$4349495|0)==($$0350494|0); + $199 = ($196|0)==(0); + $or$cond420 = $198 & $199; + $200 = (($$0350494) + 1)|0; + $201 = $200 & 127; + $202 = (($$0385493) + -9)|0; + $$$0385 = $or$cond420 ? $202 : $$0385493; + $$$0350 = $or$cond420 ? $201 : $$0350494; + $203 = (($$4349495) + 1)|0; + $204 = ($203|0)==($$3348|0); + if ($204) { + break; + } else { + $$0340496 = $197;$$0350494 = $$$0350;$$0385493 = $$$0385;$$4349495 = $203; + } + } + $205 = ($197|0)==(0); + if ($205) { + $$0350$lcssa554 = $$$0350;$$0372 = $$3348;$$0385$lcssa553 = $$$0385; + } else { + $206 = (($6) + ($$3348<<2)|0); + $207 = (($$3348) + 1)|0; + HEAP32[$206>>2] = $197; + $$0350$lcssa554 = $$$0350;$$0372 = $207;$$0385$lcssa553 = $$$0385; + } + } + $208 = (9 - ($186))|0; + $209 = (($208) + ($$0385$lcssa553))|0; + $$0380$ph = 0;$$1373$ph448 = $$0372;$$2352$ph449 = $$0350$lcssa554;$$2387$ph447 = $209; + } + L101: while(1) { + $210 = ($$2387$ph447|0)<(18); + $211 = ($$2387$ph447|0)==(18); + $212 = (($6) + ($$2352$ph449<<2)|0); + $$0380 = $$0380$ph;$$1373 = $$1373$ph448; + while(1) { + if (!($210)) { + if (!($211)) { + $$1381$ph = $$0380;$$4354$ph = $$2352$ph449;$$4389$ph445 = $$2387$ph447;$$6378$ph = $$1373; + break L101; + } + $213 = HEAP32[$212>>2]|0; + $214 = ($213>>>0)<(9007199); + if (!($214)) { + $$1381$ph = $$0380;$$4354$ph = $$2352$ph449;$$4389$ph445 = 18;$$6378$ph = $$1373; + break L101; + } + } + $215 = (($$1373) + 127)|0; + $$0334 = 0;$$2374 = $$1373;$$5$in = $215; + while(1) { + $$5 = $$5$in & 127; + $216 = (($6) + ($$5<<2)|0); + $217 = HEAP32[$216>>2]|0; + $218 = (_bitshift64Shl(($217|0),0,29)|0); + $219 = tempRet0; + $220 = (_i64Add(($218|0),($219|0),($$0334|0),0)|0); + $221 = tempRet0; + $222 = ($221>>>0)>(0); + $223 = ($220>>>0)>(1000000000); + $224 = ($221|0)==(0); + $225 = $224 & $223; + $226 = $222 | $225; + if ($226) { + $227 = (___udivdi3(($220|0),($221|0),1000000000,0)|0); + $228 = tempRet0; + $229 = (___uremdi3(($220|0),($221|0),1000000000,0)|0); + $230 = tempRet0; + $$1335 = $227;$$sink421$off0 = $229; + } else { + $$1335 = 0;$$sink421$off0 = $220; + } + HEAP32[$216>>2] = $$sink421$off0; + $231 = (($$2374) + 127)|0; + $232 = $231 & 127; + $233 = ($$5|0)!=($232|0); + $234 = ($$5|0)==($$2352$ph449|0); + $or$cond422 = $233 | $234; + $or$cond422$not = $or$cond422 ^ 1; + $235 = ($$sink421$off0|0)==(0); + $or$cond423 = $235 & $or$cond422$not; + $$3375 = $or$cond423 ? $$5 : $$2374; + $236 = (($$5) + -1)|0; + if ($234) { + break; + } else { + $$0334 = $$1335;$$2374 = $$3375;$$5$in = $236; + } + } + $237 = (($$0380) + -29)|0; + $238 = ($$1335|0)==(0); + if ($238) { + $$0380 = $237;$$1373 = $$3375; + } else { + break; + } + } + $239 = (($$2387$ph447) + 9)|0; + $240 = (($$2352$ph449) + 127)|0; + $241 = $240 & 127; + $242 = ($241|0)==($$3375|0); + $243 = (($$3375) + 127)|0; + $244 = $243 & 127; + $245 = (($$3375) + 126)|0; + $246 = $245 & 127; + $247 = (($6) + ($246<<2)|0); + if ($242) { + $248 = (($6) + ($244<<2)|0); + $249 = HEAP32[$248>>2]|0; + $250 = HEAP32[$247>>2]|0; + $251 = $250 | $249; + HEAP32[$247>>2] = $251; + $$4376 = $244; + } else { + $$4376 = $$3375; + } + $252 = (($6) + ($241<<2)|0); + HEAP32[$252>>2] = $$1335; + $$0380$ph = $237;$$1373$ph448 = $$4376;$$2352$ph449 = $241;$$2387$ph447 = $239; + } + L119: while(1) { + $289 = (($$6378$ph) + 1)|0; + $287 = $289 & 127; + $290 = (($$6378$ph) + 127)|0; + $291 = $290 & 127; + $292 = (($6) + ($291<<2)|0); + $$1381$ph558 = $$1381$ph;$$4354$ph559 = $$4354$ph;$$4389$ph = $$4389$ph445; + while(1) { + $265 = ($$4389$ph|0)==(18); + $293 = ($$4389$ph|0)>(27); + $$425 = $293 ? 9 : 1; + $$1381 = $$1381$ph558;$$4354 = $$4354$ph559; + while(1) { + $$0336486 = 0; + while(1) { + $253 = (($$0336486) + ($$4354))|0; + $254 = $253 & 127; + $255 = ($254|0)==($$6378$ph|0); + if ($255) { + $$1337 = 2; + label = 88; + break; + } + $256 = (($6) + ($254<<2)|0); + $257 = HEAP32[$256>>2]|0; + $258 = (4400 + ($$0336486<<2)|0); + $259 = HEAP32[$258>>2]|0; + $260 = ($257>>>0)<($259>>>0); + if ($260) { + $$1337 = 2; + label = 88; + break; + } + $261 = ($257>>>0)>($259>>>0); + if ($261) { + break; + } + $262 = (($$0336486) + 1)|0; + $263 = ($262|0)<(2); + if ($263) { + $$0336486 = $262; + } else { + $$1337 = $262; + label = 88; + break; + } + } + if ((label|0) == 88) { + label = 0; + $264 = ($$1337|0)==(2); + $or$cond11 = $265 & $264; + if ($or$cond11) { + $$0365484 = 0.0;$$4485 = 0;$$9483 = $$6378$ph; + break L119; + } + } + $266 = (($$425) + ($$1381))|0; + $267 = ($$4354|0)==($$6378$ph|0); + if ($267) { + $$1381 = $266;$$4354 = $$6378$ph; + } else { + break; + } + } + $268 = 1 << $$425; + $269 = (($268) + -1)|0; + $270 = 1000000000 >>> $$425; + $$0332490 = 0;$$5355488 = $$4354;$$5390487 = $$4389$ph;$$6489 = $$4354; + while(1) { + $271 = (($6) + ($$6489<<2)|0); + $272 = HEAP32[$271>>2]|0; + $273 = $272 & $269; + $274 = $272 >>> $$425; + $275 = (($274) + ($$0332490))|0; + HEAP32[$271>>2] = $275; + $276 = Math_imul($273, $270)|0; + $277 = ($$6489|0)==($$5355488|0); + $278 = ($275|0)==(0); + $or$cond426 = $277 & $278; + $279 = (($$5355488) + 1)|0; + $280 = $279 & 127; + $281 = (($$5390487) + -9)|0; + $$$5390 = $or$cond426 ? $281 : $$5390487; + $$$5355 = $or$cond426 ? $280 : $$5355488; + $282 = (($$6489) + 1)|0; + $283 = $282 & 127; + $284 = ($283|0)==($$6378$ph|0); + if ($284) { + break; + } else { + $$0332490 = $276;$$5355488 = $$$5355;$$5390487 = $$$5390;$$6489 = $283; + } + } + $285 = ($276|0)==(0); + if ($285) { + $$1381$ph558 = $266;$$4354$ph559 = $$$5355;$$4389$ph = $$$5390; + continue; + } + $286 = ($287|0)==($$$5355|0); + if (!($286)) { + break; + } + $294 = HEAP32[$292>>2]|0; + $295 = $294 | 1; + HEAP32[$292>>2] = $295; + $$1381$ph558 = $266;$$4354$ph559 = $$$5355;$$4389$ph = $$$5390; + } + $288 = (($6) + ($$6378$ph<<2)|0); + HEAP32[$288>>2] = $276; + $$1381$ph = $266;$$4354$ph = $$$5355;$$4389$ph445 = $$$5390;$$6378$ph = $287; + } + while(1) { + $296 = (($$4485) + ($$4354))|0; + $297 = $296 & 127; + $298 = ($297|0)==($$9483|0); + $299 = (($$9483) + 1)|0; + $300 = $299 & 127; + if ($298) { + $301 = (($300) + -1)|0; + $302 = (($6) + ($301<<2)|0); + HEAP32[$302>>2] = 0; + $$10 = $300; + } else { + $$10 = $$9483; + } + $303 = $$0365484 * 1.0E+9; + $304 = (($6) + ($297<<2)|0); + $305 = HEAP32[$304>>2]|0; + $306 = (+($305>>>0)); + $307 = $303 + $306; + $308 = (($$4485) + 1)|0; + $exitcond = ($308|0)==(2); + if ($exitcond) { + break; + } else { + $$0365484 = $307;$$4485 = $308;$$9483 = $$10; + } + } + $309 = (+($4|0)); + $310 = $309 * $307; + $311 = (($$1381) + 53)|0; + $312 = (($311) - ($3))|0; + $313 = ($312|0)<($2|0); + $314 = ($312|0)>(0); + $$ = $314 ? $312 : 0; + $$0333 = $313 ? $$ : $2; + $315 = ($$0333|0)<(53); + if ($315) { + $316 = (105 - ($$0333))|0; + $317 = (+_scalbn(1.0,$316)); + $318 = (+_copysignl($317,$310)); + $319 = (53 - ($$0333))|0; + $320 = (+_scalbn(1.0,$319)); + $321 = (+_fmodl($310,$320)); + $322 = $310 - $321; + $323 = $318 + $322; + $$0360 = $318;$$0361 = $321;$$1366 = $323; + } else { + $$0360 = 0.0;$$0361 = 0.0;$$1366 = $310; + } + $324 = (($$4354) + 2)|0; + $325 = $324 & 127; + $326 = ($325|0)==($$10|0); + if ($326) { + $$3364 = $$0361; + } else { + $327 = (($6) + ($325<<2)|0); + $328 = HEAP32[$327>>2]|0; + $329 = ($328>>>0)<(500000000); + do { + if ($329) { + $330 = ($328|0)==(0); + if ($330) { + $331 = (($$4354) + 3)|0; + $332 = $331 & 127; + $333 = ($332|0)==($$10|0); + if ($333) { + $$1362 = $$0361; + break; + } + } + $334 = $309 * 0.25; + $335 = $334 + $$0361; + $$1362 = $335; + } else { + $336 = ($328|0)==(500000000); + if (!($336)) { + $337 = $309 * 0.75; + $338 = $337 + $$0361; + $$1362 = $338; + break; + } + $339 = (($$4354) + 3)|0; + $340 = $339 & 127; + $341 = ($340|0)==($$10|0); + if ($341) { + $342 = $309 * 0.5; + $343 = $342 + $$0361; + $$1362 = $343; + break; + } else { + $344 = $309 * 0.75; + $345 = $344 + $$0361; + $$1362 = $345; + break; + } + } + } while(0); + $346 = (53 - ($$0333))|0; + $347 = ($346|0)>(1); + if ($347) { + $348 = (+_fmodl($$1362,1.0)); + $349 = $348 != 0.0; + if ($349) { + $$3364 = $$1362; + } else { + $350 = $$1362 + 1.0; + $$3364 = $350; + } + } else { + $$3364 = $$1362; + } + } + $351 = $$1366 + $$3364; + $352 = $351 - $$0360; + $353 = $311 & 2147483647; + $354 = (-2 - ($sum))|0; + $355 = ($353|0)>($354|0); + do { + if ($355) { + $356 = (+Math_abs((+$352))); + $357 = !($356 >= 9007199254740992.0); + $358 = $352 * 0.5; + $not$ = $357 ^ 1; + $359 = $not$&1; + $$3383 = (($359) + ($$1381))|0; + $$2367 = $357 ? $352 : $358; + $360 = (($$3383) + 50)|0; + $361 = ($360|0)>($7|0); + if (!($361)) { + $362 = ($$0333|0)!=($312|0); + $narrow = $362 | $357; + $$2371$v = $313 & $narrow; + $363 = $$3364 != 0.0; + $or$cond14 = $363 & $$2371$v; + if (!($or$cond14)) { + $$3368 = $$2367;$$4384 = $$3383; + break; + } + } + $364 = (___errno_location()|0); + HEAP32[$364>>2] = 34; + $$3368 = $$2367;$$4384 = $$3383; + } else { + $$3368 = $352;$$4384 = $$1381; + } + } while(0); + $365 = (+_scalbnl($$3368,$$4384)); + $$1 = $365; + } + } while(0); + STACKTOP = sp;return (+$$1); +} +function _scanexp($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$04861 = 0, $$049 = 0, $$1$be = 0, $$160 = 0, $$2$be = 0, $$2$lcssa = 0, $$254 = 0, $$3$be = 0, $$lcssa = 0, $$pre = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0; + var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = ((($0)) + 100|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($3>>>0)<($5>>>0); + if ($6) { + $7 = ((($3)) + 1|0); + HEAP32[$2>>2] = $7; + $8 = HEAP8[$3>>0]|0; + $9 = $8&255; + $11 = $9; + } else { + $10 = (___shgetc($0)|0); + $11 = $10; + } + switch ($11|0) { + case 43: case 45: { + $12 = ($11|0)==(45); + $13 = $12&1; + $14 = HEAP32[$2>>2]|0; + $15 = HEAP32[$4>>2]|0; + $16 = ($14>>>0)<($15>>>0); + if ($16) { + $17 = ((($14)) + 1|0); + HEAP32[$2>>2] = $17; + $18 = HEAP8[$14>>0]|0; + $19 = $18&255; + $22 = $19; + } else { + $20 = (___shgetc($0)|0); + $22 = $20; + } + $21 = (($22) + -48)|0; + $23 = ($21>>>0)>(9); + $24 = ($1|0)!=(0); + $or$cond3 = $24 & $23; + if ($or$cond3) { + $25 = HEAP32[$4>>2]|0; + $26 = ($25|0)==(0|0); + if ($26) { + $$0 = $13;$$049 = $22; + } else { + $27 = HEAP32[$2>>2]|0; + $28 = ((($27)) + -1|0); + HEAP32[$2>>2] = $28; + $$0 = $13;$$049 = $22; + } + } else { + $$0 = $13;$$049 = $22; + } + break; + } + default: { + $$0 = 0;$$049 = $11; + } + } + $29 = (($$049) + -48)|0; + $30 = ($29>>>0)>(9); + if ($30) { + $31 = HEAP32[$4>>2]|0; + $32 = ($31|0)==(0|0); + if ($32) { + $100 = -2147483648;$101 = 0; + } else { + $33 = HEAP32[$2>>2]|0; + $34 = ((($33)) + -1|0); + HEAP32[$2>>2] = $34; + $100 = -2147483648;$101 = 0; + } + } else { + $$04861 = 0;$$160 = $$049; + while(1) { + $35 = ($$04861*10)|0; + $36 = (($$160) + -48)|0; + $37 = (($36) + ($35))|0; + $38 = HEAP32[$2>>2]|0; + $39 = HEAP32[$4>>2]|0; + $40 = ($38>>>0)<($39>>>0); + if ($40) { + $41 = ((($38)) + 1|0); + HEAP32[$2>>2] = $41; + $42 = HEAP8[$38>>0]|0; + $43 = $42&255; + $$1$be = $43; + } else { + $44 = (___shgetc($0)|0); + $$1$be = $44; + } + $45 = (($$1$be) + -48)|0; + $46 = ($45>>>0)<(10); + $47 = ($37|0)<(214748364); + $48 = $46 & $47; + if ($48) { + $$04861 = $37;$$160 = $$1$be; + } else { + break; + } + } + $49 = ($37|0)<(0); + $50 = $49 << 31 >> 31; + $51 = (($$1$be) + -48)|0; + $52 = ($51>>>0)<(10); + if ($52) { + $$254 = $$1$be;$56 = $37;$57 = $50; + while(1) { + $58 = (___muldi3(($56|0),($57|0),10,0)|0); + $59 = tempRet0; + $60 = ($$254|0)<(0); + $61 = $60 << 31 >> 31; + $62 = (_i64Add(($$254|0),($61|0),-48,-1)|0); + $63 = tempRet0; + $64 = (_i64Add(($62|0),($63|0),($58|0),($59|0))|0); + $65 = tempRet0; + $66 = HEAP32[$2>>2]|0; + $67 = HEAP32[$4>>2]|0; + $68 = ($66>>>0)<($67>>>0); + if ($68) { + $69 = ((($66)) + 1|0); + HEAP32[$2>>2] = $69; + $70 = HEAP8[$66>>0]|0; + $71 = $70&255; + $$2$be = $71; + } else { + $72 = (___shgetc($0)|0); + $$2$be = $72; + } + $73 = (($$2$be) + -48)|0; + $74 = ($73>>>0)<(10); + $75 = ($65|0)<(21474836); + $76 = ($64>>>0)<(2061584302); + $77 = ($65|0)==(21474836); + $78 = $77 & $76; + $79 = $75 | $78; + $80 = $74 & $79; + if ($80) { + $$254 = $$2$be;$56 = $64;$57 = $65; + } else { + $$2$lcssa = $$2$be;$94 = $64;$95 = $65; + break; + } + } + } else { + $$2$lcssa = $$1$be;$94 = $37;$95 = $50; + } + $53 = (($$2$lcssa) + -48)|0; + $54 = ($53>>>0)<(10); + $55 = HEAP32[$4>>2]|0; + if ($54) { + $83 = $55; + while(1) { + $81 = HEAP32[$2>>2]|0; + $82 = ($81>>>0)<($83>>>0); + if ($82) { + $84 = ((($81)) + 1|0); + HEAP32[$2>>2] = $84; + $85 = HEAP8[$81>>0]|0; + $86 = $85&255; + $$3$be = $86;$102 = $83; + } else { + $87 = (___shgetc($0)|0); + $$pre = HEAP32[$4>>2]|0; + $$3$be = $87;$102 = $$pre; + } + $88 = (($$3$be) + -48)|0; + $89 = ($88>>>0)<(10); + if ($89) { + $83 = $102; + } else { + $$lcssa = $102; + break; + } + } + } else { + $$lcssa = $55; + } + $90 = ($$lcssa|0)==(0|0); + if (!($90)) { + $91 = HEAP32[$2>>2]|0; + $92 = ((($91)) + -1|0); + HEAP32[$2>>2] = $92; + } + $93 = ($$0|0)!=(0); + $96 = (_i64Subtract(0,0,($94|0),($95|0))|0); + $97 = tempRet0; + $98 = $93 ? $96 : $94; + $99 = $93 ? $97 : $95; + $100 = $99;$101 = $98; + } + tempRet0 = ($100); + return ($101|0); +} +function _scalbn($0,$1) { + $0 = +$0; + $1 = $1|0; + var $$ = 0, $$$ = 0, $$0 = 0.0, $$020 = 0, $$1 = 0, $$1$ = 0, $$21 = 0.0, $$22 = 0.0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0.0; + var $3 = 0.0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($1|0)>(1023); + if ($2) { + $3 = $0 * 8.9884656743115795E+307; + $4 = (($1) + -1023)|0; + $5 = ($4|0)>(1023); + $6 = $3 * 8.9884656743115795E+307; + $7 = (($1) + -2046)|0; + $8 = ($7|0)<(1023); + $$ = $8 ? $7 : 1023; + $$$ = $5 ? $$ : $4; + $$21 = $5 ? $6 : $3; + $$0 = $$21;$$020 = $$$; + } else { + $9 = ($1|0)<(-1022); + if ($9) { + $10 = $0 * 2.2250738585072014E-308; + $11 = (($1) + 1022)|0; + $12 = ($11|0)<(-1022); + $13 = $10 * 2.2250738585072014E-308; + $14 = (($1) + 2044)|0; + $15 = ($14|0)>(-1022); + $$1 = $15 ? $14 : -1022; + $$1$ = $12 ? $$1 : $11; + $$22 = $12 ? $13 : $10; + $$0 = $$22;$$020 = $$1$; + } else { + $$0 = $0;$$020 = $1; + } + } + $16 = (($$020) + 1023)|0; + $17 = (_bitshift64Shl(($16|0),0,52)|0); + $18 = tempRet0; + HEAP32[tempDoublePtr>>2] = $17;HEAP32[tempDoublePtr+4>>2] = $18;$19 = +HEAPF64[tempDoublePtr>>3]; + $20 = $$0 * $19; + return (+$20); +} +function _copysignl($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_copysign($0,$1)); + return (+$2); +} +function _fmodl($0,$1) { + $0 = +$0; + $1 = +$1; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_fmod($0,$1)); + return (+$2); +} +function _scalbnl($0,$1) { + $0 = +$0; + $1 = $1|0; + var $2 = 0.0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (+_scalbn($0,$1)); + return (+$2); +} +function _fmod($0,$1) { + $0 = +$0; + $1 = +$1; + var $$ = 0.0, $$070 = 0.0, $$071$lcssa = 0, $$07194 = 0, $$073$lcssa = 0, $$073100 = 0, $$172$ph = 0, $$174 = 0, $$275$lcssa = 0, $$27586 = 0, $$376$lcssa = 0, $$37683 = 0, $$lcssa = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0.0, $104 = 0, $105 = 0; + var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; + var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; + var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0.0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; + var $160 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; + var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; + var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; + var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; + var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; + $3 = HEAP32[tempDoublePtr+4>>2]|0; + HEAPF64[tempDoublePtr>>3] = $1;$4 = HEAP32[tempDoublePtr>>2]|0; + $5 = HEAP32[tempDoublePtr+4>>2]|0; + $6 = (_bitshift64Lshr(($2|0),($3|0),52)|0); + $7 = tempRet0; + $8 = $6 & 2047; + $9 = (_bitshift64Lshr(($4|0),($5|0),52)|0); + $10 = tempRet0; + $11 = $9 & 2047; + $12 = $3 & -2147483648; + $13 = (_bitshift64Shl(($4|0),($5|0),1)|0); + $14 = tempRet0; + $15 = ($13|0)==(0); + $16 = ($14|0)==(0); + $17 = $15 & $16; + L1: do { + if ($17) { + label = 3; + } else { + $18 = (___DOUBLE_BITS_272($1)|0); + $19 = tempRet0; + $20 = $19 & 2147483647; + $21 = ($20>>>0)>(2146435072); + $22 = ($18>>>0)>(0); + $23 = ($20|0)==(2146435072); + $24 = $23 & $22; + $25 = $21 | $24; + $26 = ($8|0)==(2047); + $or$cond = $26 | $25; + if ($or$cond) { + label = 3; + } else { + $29 = (_bitshift64Shl(($2|0),($3|0),1)|0); + $30 = tempRet0; + $31 = ($30>>>0)>($14>>>0); + $32 = ($29>>>0)>($13>>>0); + $33 = ($30|0)==($14|0); + $34 = $33 & $32; + $35 = $31 | $34; + if (!($35)) { + $36 = ($29|0)==($13|0); + $37 = ($30|0)==($14|0); + $38 = $36 & $37; + $39 = $0 * 0.0; + $$ = $38 ? $39 : $0; + return (+$$); + } + $40 = ($8|0)==(0); + if ($40) { + $41 = (_bitshift64Shl(($2|0),($3|0),12)|0); + $42 = tempRet0; + $43 = ($42|0)>(-1); + $44 = ($41>>>0)>(4294967295); + $45 = ($42|0)==(-1); + $46 = $45 & $44; + $47 = $43 | $46; + if ($47) { + $$073100 = 0;$49 = $41;$50 = $42; + while(1) { + $48 = (($$073100) + -1)|0; + $51 = (_bitshift64Shl(($49|0),($50|0),1)|0); + $52 = tempRet0; + $53 = ($52|0)>(-1); + $54 = ($51>>>0)>(4294967295); + $55 = ($52|0)==(-1); + $56 = $55 & $54; + $57 = $53 | $56; + if ($57) { + $$073100 = $48;$49 = $51;$50 = $52; + } else { + $$073$lcssa = $48; + break; + } + } + } else { + $$073$lcssa = 0; + } + $58 = (1 - ($$073$lcssa))|0; + $59 = (_bitshift64Shl(($2|0),($3|0),($58|0))|0); + $60 = tempRet0; + $$174 = $$073$lcssa;$87 = $59;$88 = $60; + } else { + $61 = $3 & 1048575; + $62 = $61 | 1048576; + $$174 = $8;$87 = $2;$88 = $62; + } + $63 = ($11|0)==(0); + if ($63) { + $64 = (_bitshift64Shl(($4|0),($5|0),12)|0); + $65 = tempRet0; + $66 = ($65|0)>(-1); + $67 = ($64>>>0)>(4294967295); + $68 = ($65|0)==(-1); + $69 = $68 & $67; + $70 = $66 | $69; + if ($70) { + $$07194 = 0;$72 = $64;$73 = $65; + while(1) { + $71 = (($$07194) + -1)|0; + $74 = (_bitshift64Shl(($72|0),($73|0),1)|0); + $75 = tempRet0; + $76 = ($75|0)>(-1); + $77 = ($74>>>0)>(4294967295); + $78 = ($75|0)==(-1); + $79 = $78 & $77; + $80 = $76 | $79; + if ($80) { + $$07194 = $71;$72 = $74;$73 = $75; + } else { + $$071$lcssa = $71; + break; + } + } + } else { + $$071$lcssa = 0; + } + $81 = (1 - ($$071$lcssa))|0; + $82 = (_bitshift64Shl(($4|0),($5|0),($81|0))|0); + $83 = tempRet0; + $$172$ph = $$071$lcssa;$89 = $82;$90 = $83; + } else { + $84 = $5 & 1048575; + $85 = $84 | 1048576; + $$172$ph = $11;$89 = $4;$90 = $85; + } + $86 = ($$174|0)>($$172$ph|0); + $91 = (_i64Subtract(($87|0),($88|0),($89|0),($90|0))|0); + $92 = tempRet0; + $93 = ($92|0)>(-1); + $94 = ($91>>>0)>(4294967295); + $95 = ($92|0)==(-1); + $96 = $95 & $94; + $97 = $93 | $96; + L23: do { + if ($86) { + $$27586 = $$174;$101 = $92;$156 = $97;$157 = $87;$158 = $88;$99 = $91; + while(1) { + if ($156) { + $98 = ($99|0)==(0); + $100 = ($101|0)==(0); + $102 = $98 & $100; + if ($102) { + break; + } else { + $104 = $99;$105 = $101; + } + } else { + $104 = $157;$105 = $158; + } + $106 = (_bitshift64Shl(($104|0),($105|0),1)|0); + $107 = tempRet0; + $108 = (($$27586) + -1)|0; + $109 = ($108|0)>($$172$ph|0); + $110 = (_i64Subtract(($106|0),($107|0),($89|0),($90|0))|0); + $111 = tempRet0; + $112 = ($111|0)>(-1); + $113 = ($110>>>0)>(4294967295); + $114 = ($111|0)==(-1); + $115 = $114 & $113; + $116 = $112 | $115; + if ($109) { + $$27586 = $108;$101 = $111;$156 = $116;$157 = $106;$158 = $107;$99 = $110; + } else { + $$275$lcssa = $108;$$lcssa = $116;$118 = $110;$120 = $111;$159 = $106;$160 = $107; + break L23; + } + } + $103 = $0 * 0.0; + $$070 = $103; + break L1; + } else { + $$275$lcssa = $$174;$$lcssa = $97;$118 = $91;$120 = $92;$159 = $87;$160 = $88; + } + } while(0); + if ($$lcssa) { + $117 = ($118|0)==(0); + $119 = ($120|0)==(0); + $121 = $117 & $119; + if ($121) { + $129 = $0 * 0.0; + $$070 = $129; + break; + } else { + $123 = $120;$125 = $118; + } + } else { + $123 = $160;$125 = $159; + } + $122 = ($123>>>0)<(1048576); + $124 = ($125>>>0)<(0); + $126 = ($123|0)==(1048576); + $127 = $126 & $124; + $128 = $122 | $127; + if ($128) { + $$37683 = $$275$lcssa;$130 = $125;$131 = $123; + while(1) { + $132 = (_bitshift64Shl(($130|0),($131|0),1)|0); + $133 = tempRet0; + $134 = (($$37683) + -1)|0; + $135 = ($133>>>0)<(1048576); + $136 = ($132>>>0)<(0); + $137 = ($133|0)==(1048576); + $138 = $137 & $136; + $139 = $135 | $138; + if ($139) { + $$37683 = $134;$130 = $132;$131 = $133; + } else { + $$376$lcssa = $134;$141 = $132;$142 = $133; + break; + } + } + } else { + $$376$lcssa = $$275$lcssa;$141 = $125;$142 = $123; + } + $140 = ($$376$lcssa|0)>(0); + if ($140) { + $143 = (_i64Add(($141|0),($142|0),0,-1048576)|0); + $144 = tempRet0; + $145 = (_bitshift64Shl(($$376$lcssa|0),0,52)|0); + $146 = tempRet0; + $147 = $143 | $145; + $148 = $144 | $146; + $153 = $148;$155 = $147; + } else { + $149 = (1 - ($$376$lcssa))|0; + $150 = (_bitshift64Lshr(($141|0),($142|0),($149|0))|0); + $151 = tempRet0; + $153 = $151;$155 = $150; + } + $152 = $153 | $12; + HEAP32[tempDoublePtr>>2] = $155;HEAP32[tempDoublePtr+4>>2] = $152;$154 = +HEAPF64[tempDoublePtr>>3]; + $$070 = $154; + } + } + } while(0); + if ((label|0) == 3) { + $27 = $0 * $1; + $28 = $27 / $27; + $$070 = $28; + } + return (+$$070); +} +function ___DOUBLE_BITS_272($0) { + $0 = +$0; + var $1 = 0, $2 = 0, label = 0, sp = 0; + sp = STACKTOP; + HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; + $2 = HEAP32[tempDoublePtr+4>>2]|0; + tempRet0 = ($2); + return ($1|0); +} +function _strlen($0) { + $0 = $0|0; + var $$0 = 0, $$015$lcssa = 0, $$01519 = 0, $$1$lcssa = 0, $$pn = 0, $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = $0; + $2 = $1 & 3; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $$015$lcssa = $0; + label = 4; + } else { + $$01519 = $0;$23 = $1; + while(1) { + $4 = HEAP8[$$01519>>0]|0; + $5 = ($4<<24>>24)==(0); + if ($5) { + $$sink = $23; + break L1; + } + $6 = ((($$01519)) + 1|0); + $7 = $6; + $8 = $7 & 3; + $9 = ($8|0)==(0); + if ($9) { + $$015$lcssa = $6; + label = 4; + break; + } else { + $$01519 = $6;$23 = $7; + } + } + } + } while(0); + if ((label|0) == 4) { + $$0 = $$015$lcssa; + while(1) { + $10 = HEAP32[$$0>>2]|0; + $11 = (($10) + -16843009)|0; + $12 = $10 & -2139062144; + $13 = $12 ^ -2139062144; + $14 = $13 & $11; + $15 = ($14|0)==(0); + $16 = ((($$0)) + 4|0); + if ($15) { + $$0 = $16; + } else { + break; + } + } + $17 = $10&255; + $18 = ($17<<24>>24)==(0); + if ($18) { + $$1$lcssa = $$0; + } else { + $$pn = $$0; + while(1) { + $19 = ((($$pn)) + 1|0); + $$pre = HEAP8[$19>>0]|0; + $20 = ($$pre<<24>>24)==(0); + if ($20) { + $$1$lcssa = $19; + break; + } else { + $$pn = $19; + } + } + } + $21 = $$1$lcssa; + $$sink = $21; + } + $22 = (($$sink) - ($1))|0; + return ($22|0); +} +function _strchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (___strchrnul($0,$1)|0); + $3 = HEAP8[$2>>0]|0; + $4 = $1&255; + $5 = ($3<<24>>24)==($4<<24>>24); + $6 = $5 ? $2 : 0; + return ($6|0); +} +function ___strchrnul($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$029$lcssa = 0, $$02936 = 0, $$030$lcssa = 0, $$03039 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; + var $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond33 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1 & 255; + $3 = ($2|0)==(0); + L1: do { + if ($3) { + $8 = (_strlen($0)|0); + $9 = (($0) + ($8)|0); + $$0 = $9; + } else { + $4 = $0; + $5 = $4 & 3; + $6 = ($5|0)==(0); + if ($6) { + $$030$lcssa = $0; + } else { + $7 = $1&255; + $$03039 = $0; + while(1) { + $10 = HEAP8[$$03039>>0]|0; + $11 = ($10<<24>>24)==(0); + $12 = ($10<<24>>24)==($7<<24>>24); + $or$cond = $11 | $12; + if ($or$cond) { + $$0 = $$03039; + break L1; + } + $13 = ((($$03039)) + 1|0); + $14 = $13; + $15 = $14 & 3; + $16 = ($15|0)==(0); + if ($16) { + $$030$lcssa = $13; + break; + } else { + $$03039 = $13; + } + } + } + $17 = Math_imul($2, 16843009)|0; + $18 = HEAP32[$$030$lcssa>>2]|0; + $19 = (($18) + -16843009)|0; + $20 = $18 & -2139062144; + $21 = $20 ^ -2139062144; + $22 = $21 & $19; + $23 = ($22|0)==(0); + L10: do { + if ($23) { + $$02936 = $$030$lcssa;$25 = $18; + while(1) { + $24 = $25 ^ $17; + $26 = (($24) + -16843009)|0; + $27 = $24 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if (!($30)) { + $$029$lcssa = $$02936; + break L10; + } + $31 = ((($$02936)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = (($32) + -16843009)|0; + $34 = $32 & -2139062144; + $35 = $34 ^ -2139062144; + $36 = $35 & $33; + $37 = ($36|0)==(0); + if ($37) { + $$02936 = $31;$25 = $32; + } else { + $$029$lcssa = $31; + break; + } + } + } else { + $$029$lcssa = $$030$lcssa; + } + } while(0); + $38 = $1&255; + $$1 = $$029$lcssa; + while(1) { + $39 = HEAP8[$$1>>0]|0; + $40 = ($39<<24>>24)==(0); + $41 = ($39<<24>>24)==($38<<24>>24); + $or$cond33 = $40 | $41; + $42 = ((($$1)) + 1|0); + if ($or$cond33) { + $$0 = $$1; + break; + } else { + $$1 = $42; + } + } + } + } while(0); + return ($$0|0); +} +function _mbrtowc($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$03952 = 0, $$04051 = 0, $$04350 = 0, $$1 = 0, $$141 = 0, $$144 = 0, $$2 = 0, $$47 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; + var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $4 = sp; + $5 = ($3|0)==(0|0); + $$ = $5 ? 20852 : $3; + $6 = HEAP32[$$>>2]|0; + $7 = ($1|0)==(0|0); + L1: do { + if ($7) { + $8 = ($6|0)==(0); + if ($8) { + $$0 = 0; + } else { + label = 17; + } + } else { + $9 = ($0|0)==(0|0); + $$47 = $9 ? $4 : $0; + $10 = ($2|0)==(0); + if ($10) { + $$0 = -2; + } else { + $11 = ($6|0)==(0); + if ($11) { + $12 = HEAP8[$1>>0]|0; + $13 = ($12<<24>>24)>(-1); + if ($13) { + $14 = $12&255; + HEAP32[$$47>>2] = $14; + $15 = ($12<<24>>24)!=(0); + $16 = $15&1; + $$0 = $16; + break; + } + $17 = (___pthread_self_439()|0); + $18 = ((($17)) + 188|0); + $19 = HEAP32[$18>>2]|0; + $20 = HEAP32[$19>>2]|0; + $not$ = ($20|0)==(0|0); + $21 = HEAP8[$1>>0]|0; + if ($not$) { + $22 = $21 << 24 >> 24; + $23 = $22 & 57343; + HEAP32[$$47>>2] = $23; + $$0 = 1; + break; + } + $24 = $21&255; + $25 = (($24) + -194)|0; + $26 = ($25>>>0)>(50); + if ($26) { + label = 17; + break; + } + $27 = ((($1)) + 1|0); + $28 = (3664 + ($25<<2)|0); + $29 = HEAP32[$28>>2]|0; + $30 = (($2) + -1)|0; + $31 = ($30|0)==(0); + if ($31) { + $$2 = $29; + } else { + $$03952 = $27;$$04051 = $29;$$04350 = $30; + label = 11; + } + } else { + $$03952 = $1;$$04051 = $6;$$04350 = $2; + label = 11; + } + L14: do { + if ((label|0) == 11) { + $32 = HEAP8[$$03952>>0]|0; + $33 = $32&255; + $34 = $33 >>> 3; + $35 = (($34) + -16)|0; + $36 = $$04051 >> 26; + $37 = (($34) + ($36))|0; + $38 = $35 | $37; + $39 = ($38>>>0)>(7); + if ($39) { + label = 17; + break L1; + } else { + $$1 = $$03952;$$141 = $$04051;$$144 = $$04350;$43 = $32; + } + while(1) { + $40 = $$141 << 6; + $41 = ((($$1)) + 1|0); + $42 = $43&255; + $44 = (($42) + -128)|0; + $45 = $44 | $40; + $46 = (($$144) + -1)|0; + $47 = ($45|0)<(0); + if (!($47)) { + break; + } + $49 = ($46|0)==(0); + if ($49) { + $$2 = $45; + break L14; + } + $50 = HEAP8[$41>>0]|0; + $51 = $50 & -64; + $52 = ($51<<24>>24)==(-128); + if ($52) { + $$1 = $41;$$141 = $45;$$144 = $46;$43 = $50; + } else { + label = 17; + break L1; + } + } + HEAP32[$$>>2] = 0; + HEAP32[$$47>>2] = $45; + $48 = (($2) - ($46))|0; + $$0 = $48; + break L1; + } + } while(0); + HEAP32[$$>>2] = $$2; + $$0 = -2; + } + } + } while(0); + if ((label|0) == 17) { + HEAP32[$$>>2] = 0; + $53 = (___errno_location()|0); + HEAP32[$53>>2] = 84; + $$0 = -1; + } + STACKTOP = sp;return ($$0|0); +} +function ___pthread_self_439() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _strcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var label = 0, sp = 0; + sp = STACKTOP; + (___stpcpy($0,$1)|0); + return ($0|0); +} +function ___stpcpy($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0$lcssa = 0, $$025$lcssa = 0, $$02536 = 0, $$026$lcssa = 0, $$02642 = 0, $$027$lcssa = 0, $$02741 = 0, $$029 = 0, $$037 = 0, $$1$ph = 0, $$128$ph = 0, $$12834 = 0, $$135 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; + var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; + var $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = $1; + $3 = $0; + $4 = $2 ^ $3; + $5 = $4 & 3; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = $2 & 3; + $8 = ($7|0)==(0); + if ($8) { + $$026$lcssa = $1;$$027$lcssa = $0; + } else { + $$02642 = $1;$$02741 = $0; + while(1) { + $9 = HEAP8[$$02642>>0]|0; + HEAP8[$$02741>>0] = $9; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$029 = $$02741; + break L1; + } + $11 = ((($$02642)) + 1|0); + $12 = ((($$02741)) + 1|0); + $13 = $11; + $14 = $13 & 3; + $15 = ($14|0)==(0); + if ($15) { + $$026$lcssa = $11;$$027$lcssa = $12; + break; + } else { + $$02642 = $11;$$02741 = $12; + } + } + } + $16 = HEAP32[$$026$lcssa>>2]|0; + $17 = (($16) + -16843009)|0; + $18 = $16 & -2139062144; + $19 = $18 ^ -2139062144; + $20 = $19 & $17; + $21 = ($20|0)==(0); + if ($21) { + $$02536 = $$027$lcssa;$$037 = $$026$lcssa;$24 = $16; + while(1) { + $22 = ((($$037)) + 4|0); + $23 = ((($$02536)) + 4|0); + HEAP32[$$02536>>2] = $24; + $25 = HEAP32[$22>>2]|0; + $26 = (($25) + -16843009)|0; + $27 = $25 & -2139062144; + $28 = $27 ^ -2139062144; + $29 = $28 & $26; + $30 = ($29|0)==(0); + if ($30) { + $$02536 = $23;$$037 = $22;$24 = $25; + } else { + $$0$lcssa = $22;$$025$lcssa = $23; + break; + } + } + } else { + $$0$lcssa = $$026$lcssa;$$025$lcssa = $$027$lcssa; + } + $$1$ph = $$0$lcssa;$$128$ph = $$025$lcssa; + label = 8; + } else { + $$1$ph = $1;$$128$ph = $0; + label = 8; + } + } while(0); + if ((label|0) == 8) { + $31 = HEAP8[$$1$ph>>0]|0; + HEAP8[$$128$ph>>0] = $31; + $32 = ($31<<24>>24)==(0); + if ($32) { + $$029 = $$128$ph; + } else { + $$12834 = $$128$ph;$$135 = $$1$ph; + while(1) { + $33 = ((($$135)) + 1|0); + $34 = ((($$12834)) + 1|0); + $35 = HEAP8[$33>>0]|0; + HEAP8[$34>>0] = $35; + $36 = ($35<<24>>24)==(0); + if ($36) { + $$029 = $34; + break; + } else { + $$12834 = $34;$$135 = $33; + } + } + } + } + return ($$029|0); +} +function ___unlist_locked_file($0) { + $0 = $0|0; + var $$pre = 0, $$sink = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 68|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)==(0); + if (!($3)) { + $4 = ((($0)) + 116|0); + $5 = HEAP32[$4>>2]|0; + $6 = ($5|0)==(0|0); + $$pre = ((($0)) + 112|0); + if (!($6)) { + $7 = HEAP32[$$pre>>2]|0; + $8 = ((($5)) + 112|0); + HEAP32[$8>>2] = $7; + } + $9 = HEAP32[$$pre>>2]|0; + $10 = ($9|0)==(0|0); + if ($10) { + $12 = (___pthread_self_607()|0); + $13 = ((($12)) + 232|0); + $$sink = $13; + } else { + $11 = ((($9)) + 116|0); + $$sink = $11; + } + HEAP32[$$sink>>2] = $5; + } + return; +} +function ___pthread_self_607() { + var $0 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = (_pthread_self()|0); + return ($0|0); +} +function _fopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0; + var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); + $vararg_buffer8 = sp + 32|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = HEAP8[$1>>0]|0; + $3 = $2 << 24 >> 24; + $memchr = (_memchr(17921,$3,4)|0); + $4 = ($memchr|0)==(0|0); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 22; + $$0 = 0; + } else { + $6 = (___fmodeflags($1)|0); + $7 = $0; + $8 = $6 | 32768; + HEAP32[$vararg_buffer>>2] = $7; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = $8; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 438; + $9 = (___syscall5(5,($vararg_buffer|0))|0); + $10 = (___syscall_ret($9)|0); + $11 = ($10|0)<(0); + if ($11) { + $$0 = 0; + } else { + $12 = $6 & 524288; + $13 = ($12|0)==(0); + if (!($13)) { + HEAP32[$vararg_buffer3>>2] = $10; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 2; + $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); + HEAP32[$vararg_ptr7>>2] = 1; + (___syscall221(221,($vararg_buffer3|0))|0); + } + $14 = (___fdopen($10,$1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + HEAP32[$vararg_buffer8>>2] = $10; + (___syscall6(6,($vararg_buffer8|0))|0); + $$0 = 0; + } else { + $$0 = $14; + } + } + } + STACKTOP = sp;return ($$0|0); +} +function ___fmodeflags($0) { + $0 = $0|0; + var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; + var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (_strchr($0,43)|0); + $2 = ($1|0)==(0|0); + $3 = HEAP8[$0>>0]|0; + $not$ = ($3<<24>>24)!=(114); + $$ = $not$&1; + $$0 = $2 ? $$ : 2; + $4 = (_strchr($0,120)|0); + $5 = ($4|0)==(0|0); + $6 = $$0 | 128; + $$0$ = $5 ? $$0 : $6; + $7 = (_strchr($0,101)|0); + $8 = ($7|0)==(0|0); + $9 = $$0$ | 524288; + $$2 = $8 ? $$0$ : $9; + $10 = ($3<<24>>24)==(114); + $11 = $$2 | 64; + $$2$ = $10 ? $$2 : $11; + $12 = ($3<<24>>24)==(119); + $13 = $$2$ | 512; + $$4 = $12 ? $13 : $$2$; + $14 = ($3<<24>>24)==(97); + $15 = $$4 | 1024; + $$$4 = $14 ? $15 : $$4; + return ($$$4|0); +} +function ___fdopen($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); + $vararg_buffer12 = sp + 40|0; + $vararg_buffer7 = sp + 24|0; + $vararg_buffer3 = sp + 16|0; + $vararg_buffer = sp; + $2 = sp + 56|0; + $3 = HEAP8[$1>>0]|0; + $4 = $3 << 24 >> 24; + $memchr = (_memchr(17921,$4,4)|0); + $5 = ($memchr|0)==(0|0); + if ($5) { + $6 = (___errno_location()|0); + HEAP32[$6>>2] = 22; + $$0 = 0; + } else { + $7 = (_malloc(1156)|0); + $8 = ($7|0)==(0|0); + if ($8) { + $$0 = 0; + } else { + dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); + $9 = (_strchr($1,43)|0); + $10 = ($9|0)==(0|0); + if ($10) { + $11 = ($3<<24>>24)==(114); + $12 = $11 ? 8 : 4; + HEAP32[$7>>2] = $12; + } + $13 = (_strchr($1,101)|0); + $14 = ($13|0)==(0|0); + if ($14) { + $16 = $3; + } else { + HEAP32[$vararg_buffer>>2] = $0; + $vararg_ptr1 = ((($vararg_buffer)) + 4|0); + HEAP32[$vararg_ptr1>>2] = 2; + $vararg_ptr2 = ((($vararg_buffer)) + 8|0); + HEAP32[$vararg_ptr2>>2] = 1; + (___syscall221(221,($vararg_buffer|0))|0); + $$pre = HEAP8[$1>>0]|0; + $16 = $$pre; + } + $15 = ($16<<24>>24)==(97); + if ($15) { + HEAP32[$vararg_buffer3>>2] = $0; + $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); + HEAP32[$vararg_ptr6>>2] = 3; + $17 = (___syscall221(221,($vararg_buffer3|0))|0); + $18 = $17 & 1024; + $19 = ($18|0)==(0); + if ($19) { + $20 = $17 | 1024; + HEAP32[$vararg_buffer7>>2] = $0; + $vararg_ptr10 = ((($vararg_buffer7)) + 4|0); + HEAP32[$vararg_ptr10>>2] = 4; + $vararg_ptr11 = ((($vararg_buffer7)) + 8|0); + HEAP32[$vararg_ptr11>>2] = $20; + (___syscall221(221,($vararg_buffer7|0))|0); + } + $21 = HEAP32[$7>>2]|0; + $22 = $21 | 128; + HEAP32[$7>>2] = $22; + $29 = $22; + } else { + $$pre31 = HEAP32[$7>>2]|0; + $29 = $$pre31; + } + $23 = ((($7)) + 60|0); + HEAP32[$23>>2] = $0; + $24 = ((($7)) + 132|0); + $25 = ((($7)) + 44|0); + HEAP32[$25>>2] = $24; + $26 = ((($7)) + 48|0); + HEAP32[$26>>2] = 1024; + $27 = ((($7)) + 75|0); + HEAP8[$27>>0] = -1; + $28 = $29 & 8; + $30 = ($28|0)==(0); + if ($30) { + $31 = $2; + HEAP32[$vararg_buffer12>>2] = $0; + $vararg_ptr15 = ((($vararg_buffer12)) + 4|0); + HEAP32[$vararg_ptr15>>2] = 21523; + $vararg_ptr16 = ((($vararg_buffer12)) + 8|0); + HEAP32[$vararg_ptr16>>2] = $31; + $32 = (___syscall54(54,($vararg_buffer12|0))|0); + $33 = ($32|0)==(0); + if ($33) { + HEAP8[$27>>0] = 10; + } + } + $34 = ((($7)) + 32|0); + HEAP32[$34>>2] = 11; + $35 = ((($7)) + 36|0); + HEAP32[$35>>2] = 10; + $36 = ((($7)) + 40|0); + HEAP32[$36>>2] = 3; + $37 = ((($7)) + 12|0); + HEAP32[$37>>2] = 2; + $38 = HEAP32[(20792)>>2]|0; + $39 = ($38|0)==(0); + if ($39) { + $40 = ((($7)) + 76|0); + HEAP32[$40>>2] = -1; + } + $41 = (___ofl_add($7)|0); + $$0 = $7; + } + } + STACKTOP = sp;return ($$0|0); +} +function ___ofl_add($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (___ofl_lock()|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 56|0); + HEAP32[$3>>2] = $2; + $4 = HEAP32[$1>>2]|0; + $5 = ($4|0)==(0|0); + if (!($5)) { + $6 = ((($4)) + 52|0); + HEAP32[$6>>2] = $0; + } + HEAP32[$1>>2] = $0; + ___ofl_unlock(); + return ($0|0); +} +function ___ofl_lock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___lock((20856|0)); + return (20864|0); +} +function ___ofl_unlock() { + var label = 0, sp = 0; + sp = STACKTOP; + ___unlock((20856|0)); + return; +} +function _fclose($0) { + $0 = $0|0; + var $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $29 = $4; + } else { + $29 = 0; + } + ___unlist_locked_file($0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & 1; + $7 = ($6|0)!=(0); + if (!($7)) { + $8 = (___ofl_lock()|0); + $9 = ((($0)) + 52|0); + $10 = HEAP32[$9>>2]|0; + $11 = ($10|0)==(0|0); + $12 = $10; + $$pre = ((($0)) + 56|0); + if (!($11)) { + $13 = HEAP32[$$pre>>2]|0; + $14 = ((($10)) + 56|0); + HEAP32[$14>>2] = $13; + } + $15 = HEAP32[$$pre>>2]|0; + $16 = ($15|0)==(0|0); + if (!($16)) { + $17 = ((($15)) + 52|0); + HEAP32[$17>>2] = $12; + } + $18 = HEAP32[$8>>2]|0; + $19 = ($18|0)==($0|0); + if ($19) { + HEAP32[$8>>2] = $15; + } + ___ofl_unlock(); + } + $20 = (_fflush($0)|0); + $21 = ((($0)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = (FUNCTION_TABLE_ii[$22 & 15]($0)|0); + $24 = $23 | $20; + $25 = ((($0)) + 92|0); + $26 = HEAP32[$25>>2]|0; + $27 = ($26|0)==(0|0); + if (!($27)) { + _free($26); + } + if ($7) { + $28 = ($29|0)==(0); + if (!($28)) { + ___unlockfile($0); + } + } else { + _free($0); + } + return ($24|0); +} +function _fflush($0) { + $0 = $0|0; + var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; + var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + do { + if ($1) { + $8 = HEAP32[1060]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $29 = 0; + } else { + $10 = HEAP32[1060]|0; + $11 = (_fflush($10)|0); + $29 = $11; + } + $12 = (___ofl_lock()|0); + $$02325 = HEAP32[$12>>2]|0; + $13 = ($$02325|0)==(0|0); + if ($13) { + $$024$lcssa = $29; + } else { + $$02327 = $$02325;$$02426 = $29; + while(1) { + $14 = ((($$02327)) + 76|0); + $15 = HEAP32[$14>>2]|0; + $16 = ($15|0)>(-1); + if ($16) { + $17 = (___lockfile($$02327)|0); + $26 = $17; + } else { + $26 = 0; + } + $18 = ((($$02327)) + 20|0); + $19 = HEAP32[$18>>2]|0; + $20 = ((($$02327)) + 28|0); + $21 = HEAP32[$20>>2]|0; + $22 = ($19>>>0)>($21>>>0); + if ($22) { + $23 = (___fflush_unlocked($$02327)|0); + $24 = $23 | $$02426; + $$1 = $24; + } else { + $$1 = $$02426; + } + $25 = ($26|0)==(0); + if (!($25)) { + ___unlockfile($$02327); + } + $27 = ((($$02327)) + 56|0); + $$023 = HEAP32[$27>>2]|0; + $28 = ($$023|0)==(0|0); + if ($28) { + $$024$lcssa = $$1; + break; + } else { + $$02327 = $$023;$$02426 = $$1; + } + } + } + ___ofl_unlock(); + $$0 = $$024$lcssa; + } else { + $2 = ((($0)) + 76|0); + $3 = HEAP32[$2>>2]|0; + $4 = ($3|0)>(-1); + if (!($4)) { + $5 = (___fflush_unlocked($0)|0); + $$0 = $5; + break; + } + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = (___fflush_unlocked($0)|0); + if ($phitmp) { + $$0 = $7; + } else { + ___unlockfile($0); + $$0 = $7; + } + } + } while(0); + return ($$0|0); +} +function ___fflush_unlocked($0) { + $0 = $0|0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + var $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 20|0); + $2 = HEAP32[$1>>2]|0; + $3 = ((($0)) + 28|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($2>>>0)>($4>>>0); + if ($5) { + $6 = ((($0)) + 36|0); + $7 = HEAP32[$6>>2]|0; + (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0); + $8 = HEAP32[$1>>2]|0; + $9 = ($8|0)==(0|0); + if ($9) { + $$0 = -1; + } else { + label = 3; + } + } else { + label = 3; + } + if ((label|0) == 3) { + $10 = ((($0)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 8|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + $15 = $11; + $16 = $13; + $17 = (($15) - ($16))|0; + $18 = ((($0)) + 40|0); + $19 = HEAP32[$18>>2]|0; + (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0); + } + $20 = ((($0)) + 16|0); + HEAP32[$20>>2] = 0; + HEAP32[$3>>2] = 0; + HEAP32[$1>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $$0 = 0; + } + return ($$0|0); +} +function _fgets($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$06266 = 0, $$063 = 0, $$064 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; + var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; + var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0; + var $sext$mask = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($2)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $6 = (___lockfile($2)|0); + $17 = $6; + } else { + $17 = 0; + } + $7 = (($1) + -1)|0; + $8 = ($1|0)<(2); + $9 = ($7|0)!=(0); + if ($8) { + $10 = ((($2)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ($17|0)==(0); + if (!($16)) { + ___unlockfile($2); + } + if ($9) { + $$0 = 0; + } else { + HEAP8[$0>>0] = 0; + $$0 = $0; + } + } else { + L11: do { + if ($9) { + $18 = ((($2)) + 4|0); + $19 = ((($2)) + 8|0); + $$063 = $7;$$064 = $0; + while(1) { + $20 = HEAP32[$18>>2]|0; + $21 = HEAP32[$19>>2]|0; + $22 = $20; + $23 = (($21) - ($22))|0; + $24 = (_memchr($20,10,$23)|0); + $25 = ($24|0)==(0|0); + $26 = $24; + $27 = (1 - ($22))|0; + $28 = (($27) + ($26))|0; + $29 = $25 ? $23 : $28; + $30 = ($29>>>0)<($$063>>>0); + $31 = $30 ? $29 : $$063; + _memcpy(($$064|0),($20|0),($31|0))|0; + $32 = HEAP32[$18>>2]|0; + $33 = (($32) + ($31)|0); + HEAP32[$18>>2] = $33; + $34 = (($$064) + ($31)|0); + $35 = (($$063) - ($31))|0; + $36 = ($35|0)!=(0); + $or$cond = $25 & $36; + if (!($or$cond)) { + $$1 = $34; + label = 17; + break L11; + } + $37 = HEAP32[$19>>2]|0; + $38 = ($33>>>0)<($37>>>0); + if ($38) { + $39 = ((($33)) + 1|0); + HEAP32[$18>>2] = $39; + $40 = HEAP8[$33>>0]|0; + $41 = $40&255; + $50 = $41; + } else { + $42 = (___uflow($2)|0); + $43 = ($42|0)<(0); + if ($43) { + break; + } else { + $50 = $42; + } + } + $48 = (($35) + -1)|0; + $49 = $50&255; + $51 = ((($34)) + 1|0); + HEAP8[$34>>0] = $49; + $sext$mask = $50 & 255; + $52 = ($sext$mask|0)!=(10); + $53 = ($48|0)!=(0); + $or$cond3 = $53 & $52; + if ($or$cond3) { + $$063 = $48;$$064 = $51; + } else { + $$1 = $51; + label = 17; + break L11; + } + } + $44 = ($34|0)==($0|0); + if ($44) { + $$06266 = 0; + } else { + $45 = HEAP32[$2>>2]|0; + $46 = $45 & 16; + $47 = ($46|0)==(0); + if ($47) { + $$06266 = 0; + } else { + $$1 = $34; + label = 17; + } + } + } else { + $$1 = $0; + label = 17; + } + } while(0); + if ((label|0) == 17) { + $54 = ($0|0)==(0|0); + if ($54) { + $$06266 = 0; + } else { + HEAP8[$$1>>0] = 0; + $$06266 = $0; + } + } + $55 = ($17|0)==(0); + if ($55) { + $$0 = $$06266; + } else { + ___unlockfile($2); + $$0 = $$06266; + } + } + return ($$0|0); +} +function _feof($0) { + $0 = $0|0; + var $$lobit = 0, $$lobit8 = 0, $$lobit9 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $6 = (___lockfile($0)|0); + $phitmp = ($6|0)==(0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 >>> 4; + $$lobit = $8 & 1; + if ($phitmp) { + $$lobit9 = $$lobit; + } else { + ___unlockfile($0); + $$lobit9 = $$lobit; + } + } else { + $4 = HEAP32[$0>>2]|0; + $5 = $4 >>> 4; + $$lobit8 = $5 & 1; + $$lobit9 = $$lobit8; + } + return ($$lobit9|0); +} +function _fscanf($0,$1,$varargs) { + $0 = $0|0; + $1 = $1|0; + $varargs = $varargs|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + HEAP32[$2>>2] = $varargs; + $3 = (_vfscanf($0,$1,$2)|0); + STACKTOP = sp;return ($3|0); +} +function _vfscanf($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$ = 0, $$$0266 = 0, $$$0268 = 0, $$$0305 = 0, $$$3 = 0, $$0266$lcssa = 0, $$0266417 = 0, $$0268 = 0, $$0272 = 0, $$0273429 = 0, $$0276$ph = 0, $$0278$ph = 0, $$0278$ph$phi = 0, $$0278$ph336 = 0, $$0283428 = 0, $$0286420 = 0, $$0288$ = 0, $$0288425 = 0, $$0292 = 0, $$0293 = 0; + var $$0305423 = 0, $$10 = 0, $$11 = 0, $$1267 = 0, $$1271 = 0, $$1274 = 0, $$1277$ph = 0, $$1279 = 0, $$1284 = 0, $$1289 = 0, $$2 = 0, $$2275 = 0, $$2280 = 0, $$2280$ph = 0, $$2280$ph$phi = 0, $$2285 = 0, $$2290 = 0, $$2307$ph = 0, $$3$lcssa = 0, $$319 = 0; + var $$320 = 0, $$321 = 0, $$322 = 0, $$327 = 0, $$328$le439 = 0, $$328$le441 = 0, $$3281 = 0, $$3291 = 0, $$3416 = 0, $$4282 = 0, $$4309 = 0, $$5 = 0, $$5299 = 0, $$5310 = 0, $$6 = 0, $$6311 = 0, $$7 = 0, $$7$ph = 0, $$7312 = 0, $$8 = 0; + var $$8313 = 0, $$9 = 0, $$9314 = 0, $$9314$ph = 0, $$lcssa355 = 0, $$not = 0, $$old4 = 0, $$ph = 0, $$ph353 = 0, $$pre = 0, $$pre$phi516Z2D = 0, $$pre507 = 0, $$pre509 = 0, $$pre511 = 0, $$pre512 = 0, $$pre513 = 0, $$pre514 = 0, $$pre515 = 0, $$sink443 = 0, $$sroa$2$0$$sroa_idx13 = 0; + var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; + var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; + var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; + var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; + var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; + var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; + var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; + var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; + var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; + var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; + var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0.0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0.0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; + var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; + var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; + var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; + var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; + var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded1 = 0, $expanded3 = 0, $expanded4 = 0, $expanded5 = 0, $factor = 0, $factor331 = 0, $isdigit = 0; + var $isdigit316 = 0, $isdigit316415 = 0, $isdigittmp = 0, $isdigittmp315 = 0, $isdigittmp315414 = 0, $narrow = 0, $narrow469 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond318 = 0, $or$cond5 = 0, $trunc = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); + $3 = sp + 8|0; + $4 = sp + 17|0; + $5 = sp; + $6 = sp + 16|0; + $7 = ((($0)) + 76|0); + $8 = HEAP32[$7>>2]|0; + $9 = ($8|0)>(-1); + if ($9) { + $10 = (___lockfile($0)|0); + $306 = $10; + } else { + $306 = 0; + } + $11 = HEAP8[$1>>0]|0; + $12 = ($11<<24>>24)==(0); + L4: do { + if ($12) { + $$3291 = 0; + } else { + $13 = ((($0)) + 4|0); + $14 = ((($0)) + 100|0); + $15 = ((($0)) + 108|0); + $16 = ((($0)) + 8|0); + $17 = ((($4)) + 10|0); + $18 = ((($4)) + 33|0); + $$sroa$2$0$$sroa_idx13 = ((($3)) + 4|0); + $19 = ((($4)) + 46|0); + $20 = ((($4)) + 94|0); + $21 = ((($4)) + 1|0); + $22 = ((($4)) + 1|0); + $$0273429 = $1;$$0283428 = 0;$$0288425 = 0;$$0305423 = 0;$102 = 0;$24 = $11; + L6: while(1) { + $23 = $24&255; + $25 = (_isspace($23)|0); + $26 = ($25|0)==(0); + L8: do { + if ($26) { + $53 = ($24<<24>>24)==(37); + L10: do { + if ($53) { + $54 = ((($$0273429)) + 1|0); + $55 = HEAP8[$54>>0]|0; + L12: do { + switch ($55<<24>>24) { + case 37: { + break L10; + break; + } + case 42: { + $76 = ((($$0273429)) + 2|0); + $$0293 = 0;$$2275 = $76; + break; + } + default: { + $77 = $55&255; + $isdigittmp = (($77) + -48)|0; + $isdigit = ($isdigittmp>>>0)<(10); + if ($isdigit) { + $78 = ((($$0273429)) + 2|0); + $79 = HEAP8[$78>>0]|0; + $80 = ($79<<24>>24)==(36); + if ($80) { + $81 = (_arg_n($2,$isdigittmp)|0); + $82 = ((($$0273429)) + 3|0); + $$0293 = $81;$$2275 = $82; + break L12; + } + } + $arglist_current = HEAP32[$2>>2]|0; + $83 = $arglist_current; + $84 = ((0) + 4|0); + $expanded1 = $84; + $expanded = (($expanded1) - 1)|0; + $85 = (($83) + ($expanded))|0; + $86 = ((0) + 4|0); + $expanded5 = $86; + $expanded4 = (($expanded5) - 1)|0; + $expanded3 = $expanded4 ^ -1; + $87 = $85 & $expanded3; + $88 = $87; + $89 = HEAP32[$88>>2]|0; + $arglist_next = ((($88)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $$0293 = $89;$$2275 = $54; + } + } + } while(0); + $90 = HEAP8[$$2275>>0]|0; + $91 = $90&255; + $isdigittmp315414 = (($91) + -48)|0; + $isdigit316415 = ($isdigittmp315414>>>0)<(10); + if ($isdigit316415) { + $$0266417 = 0;$$3416 = $$2275;$95 = $91; + while(1) { + $92 = ($$0266417*10)|0; + $93 = (($92) + -48)|0; + $94 = (($93) + ($95))|0; + $96 = ((($$3416)) + 1|0); + $97 = HEAP8[$96>>0]|0; + $98 = $97&255; + $isdigittmp315 = (($98) + -48)|0; + $isdigit316 = ($isdigittmp315>>>0)<(10); + if ($isdigit316) { + $$0266417 = $94;$$3416 = $96;$95 = $98; + } else { + $$0266$lcssa = $94;$$3$lcssa = $96;$$lcssa355 = $97; + break; + } + } + } else { + $$0266$lcssa = 0;$$3$lcssa = $$2275;$$lcssa355 = $90; + } + $99 = ($$lcssa355<<24>>24)==(109); + $100 = ($$0293|0)!=(0|0); + $101 = ((($$3$lcssa)) + 1|0); + $$$0305 = $99 ? 0 : $$0305423; + $$327 = $99 ? 0 : $102; + $$$3 = $99 ? $101 : $$3$lcssa; + $narrow = $100 & $99; + $103 = ((($$$3)) + 1|0); + $104 = HEAP8[$$$3>>0]|0; + switch ($104<<24>>24) { + case 104: { + $105 = HEAP8[$103>>0]|0; + $106 = ($105<<24>>24)==(104); + $107 = ((($$$3)) + 2|0); + $$319 = $106 ? $107 : $103; + $$320 = $106 ? -2 : -1; + $$0268 = $$320;$$5 = $$319; + break; + } + case 108: { + $108 = HEAP8[$103>>0]|0; + $109 = ($108<<24>>24)==(108); + $110 = ((($$$3)) + 2|0); + $$321 = $109 ? $110 : $103; + $$322 = $109 ? 3 : 1; + $$0268 = $$322;$$5 = $$321; + break; + } + case 106: { + $$0268 = 3;$$5 = $103; + break; + } + case 116: case 122: { + $$0268 = 1;$$5 = $103; + break; + } + case 76: { + $$0268 = 2;$$5 = $103; + break; + } + case 110: case 112: case 67: case 83: case 91: case 99: case 115: case 88: case 71: case 70: case 69: case 65: case 103: case 102: case 101: case 97: case 120: case 117: case 111: case 105: case 100: { + $$0268 = 0;$$5 = $$$3; + break; + } + default: { + $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; + label = 137; + break L6; + } + } + $111 = HEAP8[$$5>>0]|0; + $112 = $111&255; + $113 = $112 & 47; + $114 = ($113|0)==(3); + $115 = $112 | 32; + $$ = $114 ? $115 : $112; + $$$0268 = $114 ? 1 : $$0268; + $trunc = $$&255; + switch ($trunc<<24>>24) { + case 99: { + $116 = ($$0266$lcssa|0)>(1); + $$$0266 = $116 ? $$0266$lcssa : 1; + $$1267 = $$$0266;$$1284 = $$0283428; + break; + } + case 91: { + $$1267 = $$0266$lcssa;$$1284 = $$0283428; + break; + } + case 110: { + $117 = ($$0283428|0)<(0); + $118 = $117 << 31 >> 31; + _store_int($$0293,$$$0268,$$0283428,$118); + $$11 = $$5;$$1289 = $$0288425;$$2285 = $$0283428;$$6311 = $$$0305;$307 = $$327; + break L8; + break; + } + default: { + ___shlim($0,0); + while(1) { + $119 = HEAP32[$13>>2]|0; + $120 = HEAP32[$14>>2]|0; + $121 = ($119>>>0)<($120>>>0); + if ($121) { + $122 = ((($119)) + 1|0); + HEAP32[$13>>2] = $122; + $123 = HEAP8[$119>>0]|0; + $124 = $123&255; + $126 = $124; + } else { + $125 = (___shgetc($0)|0); + $126 = $125; + } + $127 = (_isspace($126)|0); + $128 = ($127|0)==(0); + if ($128) { + break; + } + } + $129 = HEAP32[$14>>2]|0; + $130 = ($129|0)==(0|0); + if ($130) { + $$pre507 = HEAP32[$13>>2]|0; + $138 = $$pre507; + } else { + $131 = HEAP32[$13>>2]|0; + $132 = ((($131)) + -1|0); + HEAP32[$13>>2] = $132; + $133 = $132; + $138 = $133; + } + $134 = HEAP32[$15>>2]|0; + $135 = HEAP32[$16>>2]|0; + $136 = (($134) + ($$0283428))|0; + $137 = (($136) + ($138))|0; + $139 = (($137) - ($135))|0; + $$1267 = $$0266$lcssa;$$1284 = $139; + } + } + ___shlim($0,$$1267); + $140 = HEAP32[$13>>2]|0; + $141 = HEAP32[$14>>2]|0; + $142 = ($140>>>0)<($141>>>0); + if ($142) { + $143 = ((($140)) + 1|0); + HEAP32[$13>>2] = $143; + $147 = $141; + } else { + $144 = (___shgetc($0)|0); + $145 = ($144|0)<(0); + if ($145) { + $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; + label = 137; + break L6; + } + $$pre509 = HEAP32[$14>>2]|0; + $147 = $$pre509; + } + $146 = ($147|0)==(0|0); + if (!($146)) { + $148 = HEAP32[$13>>2]|0; + $149 = ((($148)) + -1|0); + HEAP32[$13>>2] = $149; + } + L55: do { + switch ($trunc<<24>>24) { + case 91: case 99: case 115: { + $150 = ($$|0)==(99); + $151 = $$ | 16; + $152 = ($151|0)==(115); + L57: do { + if ($152) { + $153 = ($$|0)==(115); + _memset(($21|0),-1,256)|0; + HEAP8[$4>>0] = 0; + if ($153) { + HEAP8[$18>>0] = 0; + ;HEAP8[$17>>0]=0|0;HEAP8[$17+1>>0]=0|0;HEAP8[$17+2>>0]=0|0;HEAP8[$17+3>>0]=0|0;HEAP8[$17+4>>0]=0|0; + $$9 = $$5; + } else { + $$9 = $$5; + } + } else { + $154 = ((($$5)) + 1|0); + $155 = HEAP8[$154>>0]|0; + $156 = ($155<<24>>24)==(94); + $157 = ((($$5)) + 2|0); + $$0292 = $156&1; + $$6 = $156 ? $157 : $154; + $158 = $156&1; + _memset(($22|0),($158|0),256)|0; + HEAP8[$4>>0] = 0; + $159 = HEAP8[$$6>>0]|0; + switch ($159<<24>>24) { + case 45: { + $$sink443 = $19; + label = 64; + break; + } + case 93: { + $$sink443 = $20; + label = 64; + break; + } + default: { + $$pre514 = $$0292 ^ 1; + $$pre515 = $$pre514&255; + $$7$ph = $$6;$$pre$phi516Z2D = $$pre515; + } + } + if ((label|0) == 64) { + label = 0; + $160 = ((($$6)) + 1|0); + $161 = $$0292 ^ 1; + $162 = $161&255; + HEAP8[$$sink443>>0] = $162; + $$7$ph = $160;$$pre$phi516Z2D = $162; + } + $$7 = $$7$ph; + while(1) { + $163 = HEAP8[$$7>>0]|0; + L69: do { + switch ($163<<24>>24) { + case 0: { + $$7312 = $$$0305;$309 = $$327;$narrow469 = $narrow; + label = 137; + break L6; + break; + } + case 93: { + $$9 = $$7; + break L57; + break; + } + case 45: { + $164 = ((($$7)) + 1|0); + $165 = HEAP8[$164>>0]|0; + switch ($165<<24>>24) { + case 93: case 0: { + $$8 = $$7;$176 = 45; + break L69; + break; + } + default: { + } + } + $166 = ((($$7)) + -1|0); + $167 = HEAP8[$166>>0]|0; + $168 = ($167&255)<($165&255); + if ($168) { + $169 = $167&255; + $$0286420 = $169; + while(1) { + $170 = (($$0286420) + 1)|0; + $171 = (($4) + ($170)|0); + HEAP8[$171>>0] = $$pre$phi516Z2D; + $172 = HEAP8[$164>>0]|0; + $173 = $172&255; + $174 = ($170|0)<($173|0); + if ($174) { + $$0286420 = $170; + } else { + $$8 = $164;$176 = $172; + break; + } + } + } else { + $$8 = $164;$176 = $165; + } + break; + } + default: { + $$8 = $$7;$176 = $163; + } + } + } while(0); + $175 = $176&255; + $177 = (($175) + 1)|0; + $178 = (($4) + ($177)|0); + HEAP8[$178>>0] = $$pre$phi516Z2D; + $179 = ((($$8)) + 1|0); + $$7 = $179; + } + } + } while(0); + $180 = (($$1267) + 1)|0; + $181 = $150 ? $180 : 31; + $182 = ($$$0268|0)==(1); + L77: do { + if ($182) { + if ($narrow) { + $183 = $181 << 2; + $184 = (_malloc($183)|0); + $185 = ($184|0)==(0|0); + if ($185) { + $$7312 = 0;$309 = 0;$narrow469 = 1; + label = 137; + break L6; + } else { + $311 = $184; + } + } else { + $311 = $$0293; + } + HEAP32[$3>>2] = 0; + HEAP32[$$sroa$2$0$$sroa_idx13>>2] = 0; + $$0276$ph = $181;$$0278$ph = 0;$$ph = $311; + L82: while(1) { + $186 = ($$ph|0)==(0|0); + $$0278$ph336 = $$0278$ph; + while(1) { + L86: while(1) { + $187 = HEAP32[$13>>2]|0; + $188 = HEAP32[$14>>2]|0; + $189 = ($187>>>0)<($188>>>0); + if ($189) { + $190 = ((($187)) + 1|0); + HEAP32[$13>>2] = $190; + $191 = HEAP8[$187>>0]|0; + $192 = $191&255; + $195 = $192; + } else { + $193 = (___shgetc($0)|0); + $195 = $193; + } + $194 = (($195) + 1)|0; + $196 = (($4) + ($194)|0); + $197 = HEAP8[$196>>0]|0; + $198 = ($197<<24>>24)==(0); + if ($198) { + break L82; + } + $199 = $195&255; + HEAP8[$6>>0] = $199; + $200 = (_mbrtowc($5,$6,1,$3)|0); + switch ($200|0) { + case -1: { + $$7312 = 0;$309 = $$ph;$narrow469 = $narrow; + label = 137; + break L6; + break; + } + case -2: { + break; + } + default: { + break L86; + } + } + } + if ($186) { + $$1279 = $$0278$ph336; + } else { + $201 = (($$ph) + ($$0278$ph336<<2)|0); + $202 = (($$0278$ph336) + 1)|0; + $203 = HEAP32[$5>>2]|0; + HEAP32[$201>>2] = $203; + $$1279 = $202; + } + $204 = ($$1279|0)==($$0276$ph|0); + $or$cond = $narrow & $204; + if ($or$cond) { + break; + } else { + $$0278$ph336 = $$1279; + } + } + $factor331 = $$0276$ph << 1; + $205 = $factor331 | 1; + $206 = $205 << 2; + $207 = (_realloc($$ph,$206)|0); + $208 = ($207|0)==(0|0); + if ($208) { + $$7312 = 0;$309 = $$ph;$narrow469 = 1; + label = 137; + break L6; + } else { + $$0278$ph$phi = $$0276$ph;$$0276$ph = $205;$$ph = $207;$$0278$ph = $$0278$ph$phi; + } + } + $209 = (_mbsinit($3)|0); + $210 = ($209|0)==(0); + if ($210) { + $$7312 = 0;$309 = $$ph;$narrow469 = $narrow; + label = 137; + break L6; + } else { + $$4282 = $$0278$ph336;$$4309 = 0;$$5299 = $$ph;$312 = $$ph; + } + } else { + if ($narrow) { + $211 = (_malloc($181)|0); + $212 = ($211|0)==(0|0); + if ($212) { + $$7312 = 0;$309 = 0;$narrow469 = 1; + label = 137; + break L6; + } else { + $$1277$ph = $181;$$2280$ph = 0;$$2307$ph = $211; + } + while(1) { + $$2280 = $$2280$ph; + while(1) { + $213 = HEAP32[$13>>2]|0; + $214 = HEAP32[$14>>2]|0; + $215 = ($213>>>0)<($214>>>0); + if ($215) { + $216 = ((($213)) + 1|0); + HEAP32[$13>>2] = $216; + $217 = HEAP8[$213>>0]|0; + $218 = $217&255; + $221 = $218; + } else { + $219 = (___shgetc($0)|0); + $221 = $219; + } + $220 = (($221) + 1)|0; + $222 = (($4) + ($220)|0); + $223 = HEAP8[$222>>0]|0; + $224 = ($223<<24>>24)==(0); + if ($224) { + $$4282 = $$2280;$$4309 = $$2307$ph;$$5299 = 0;$312 = 0; + break L77; + } + $225 = $221&255; + $226 = (($$2280) + 1)|0; + $227 = (($$2307$ph) + ($$2280)|0); + HEAP8[$227>>0] = $225; + $228 = ($226|0)==($$1277$ph|0); + if ($228) { + break; + } else { + $$2280 = $226; + } + } + $factor = $$1277$ph << 1; + $229 = $factor | 1; + $230 = (_realloc($$2307$ph,$229)|0); + $231 = ($230|0)==(0|0); + if ($231) { + $$7312 = $$2307$ph;$309 = 0;$narrow469 = 1; + label = 137; + break L6; + } else { + $$2280$ph$phi = $$1277$ph;$$1277$ph = $229;$$2307$ph = $230;$$2280$ph = $$2280$ph$phi; + } + } + } + $232 = ($$0293|0)==(0|0); + if ($232) { + $250 = $147; + while(1) { + $248 = HEAP32[$13>>2]|0; + $249 = ($248>>>0)<($250>>>0); + if ($249) { + $251 = ((($248)) + 1|0); + HEAP32[$13>>2] = $251; + $252 = HEAP8[$248>>0]|0; + $253 = $252&255; + $256 = $253; + } else { + $254 = (___shgetc($0)|0); + $256 = $254; + } + $255 = (($256) + 1)|0; + $257 = (($4) + ($255)|0); + $258 = HEAP8[$257>>0]|0; + $259 = ($258<<24>>24)==(0); + if ($259) { + $$4282 = 0;$$4309 = 0;$$5299 = 0;$312 = 0; + break L77; + } + $$pre512 = HEAP32[$14>>2]|0; + $250 = $$pre512; + } + } else { + $$3281 = 0;$235 = $147; + while(1) { + $233 = HEAP32[$13>>2]|0; + $234 = ($233>>>0)<($235>>>0); + if ($234) { + $236 = ((($233)) + 1|0); + HEAP32[$13>>2] = $236; + $237 = HEAP8[$233>>0]|0; + $238 = $237&255; + $241 = $238; + } else { + $239 = (___shgetc($0)|0); + $241 = $239; + } + $240 = (($241) + 1)|0; + $242 = (($4) + ($240)|0); + $243 = HEAP8[$242>>0]|0; + $244 = ($243<<24>>24)==(0); + if ($244) { + $$4282 = $$3281;$$4309 = $$0293;$$5299 = 0;$312 = 0; + break L77; + } + $245 = $241&255; + $246 = (($$3281) + 1)|0; + $247 = (($$0293) + ($$3281)|0); + HEAP8[$247>>0] = $245; + $$pre511 = HEAP32[$14>>2]|0; + $$3281 = $246;$235 = $$pre511; + } + } + } + } while(0); + $260 = HEAP32[$14>>2]|0; + $261 = ($260|0)==(0|0); + if ($261) { + $$pre513 = HEAP32[$13>>2]|0; + $268 = $$pre513; + } else { + $262 = HEAP32[$13>>2]|0; + $263 = ((($262)) + -1|0); + HEAP32[$13>>2] = $263; + $264 = $263; + $268 = $264; + } + $265 = HEAP32[$15>>2]|0; + $266 = HEAP32[$16>>2]|0; + $267 = (($268) - ($266))|0; + $269 = (($267) + ($265))|0; + $270 = ($269|0)==(0); + if ($270) { + $$9314$ph = $$4309;$$ph353 = $312; + label = 139; + break L6; + } + $$not = $150 ^ 1; + $271 = ($269|0)==($$1267|0); + $or$cond318 = $271 | $$not; + if (!($or$cond318)) { + $$9314$ph = $$4309;$$ph353 = $312; + label = 139; + break L6; + } + do { + if ($narrow) { + if ($182) { + HEAP32[$$0293>>2] = $$5299; + break; + } else { + HEAP32[$$0293>>2] = $$4309; + break; + } + } + } while(0); + if ($150) { + $$10 = $$9;$$5310 = $$4309;$310 = $312; + } else { + $272 = ($$5299|0)==(0|0); + if (!($272)) { + $273 = (($$5299) + ($$4282<<2)|0); + HEAP32[$273>>2] = 0; + } + $274 = ($$4309|0)==(0|0); + if ($274) { + $$10 = $$9;$$5310 = 0;$310 = $312; + break L55; + } + $275 = (($$4309) + ($$4282)|0); + HEAP8[$275>>0] = 0; + $$10 = $$9;$$5310 = $$4309;$310 = $312; + } + break; + } + case 120: case 88: case 112: { + $$0272 = 16; + label = 125; + break; + } + case 111: { + $$0272 = 8; + label = 125; + break; + } + case 117: case 100: { + $$0272 = 10; + label = 125; + break; + } + case 105: { + $$0272 = 0; + label = 125; + break; + } + case 71: case 103: case 70: case 102: case 69: case 101: case 65: case 97: { + $285 = (+___floatscan($0,$$$0268,0)); + $286 = HEAP32[$15>>2]|0; + $287 = HEAP32[$13>>2]|0; + $288 = HEAP32[$16>>2]|0; + $289 = (($288) - ($287))|0; + $290 = ($286|0)==($289|0); + if ($290) { + $$9314$ph = $$$0305;$$ph353 = $$327; + label = 139; + break L6; + } + $291 = ($$0293|0)==(0|0); + if ($291) { + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + } else { + switch ($$$0268|0) { + case 0: { + $292 = $285; + HEAPF32[$$0293>>2] = $292; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + break; + } + case 1: { + HEAPF64[$$0293>>3] = $285; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + break; + } + case 2: { + HEAPF64[$$0293>>3] = $285; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + break; + } + default: { + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break L55; + } + } + } + break; + } + default: { + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + } + } + } while(0); + do { + if ((label|0) == 125) { + label = 0; + $276 = (___intscan($0,$$0272,0,-1,-1)|0); + $277 = tempRet0; + $278 = HEAP32[$15>>2]|0; + $279 = HEAP32[$13>>2]|0; + $280 = HEAP32[$16>>2]|0; + $281 = (($280) - ($279))|0; + $282 = ($278|0)==($281|0); + if ($282) { + $$9314$ph = $$$0305;$$ph353 = $$327; + label = 139; + break L6; + } + $283 = ($$|0)==(112); + $or$cond3 = $100 & $283; + if ($or$cond3) { + $284 = $276; + HEAP32[$$0293>>2] = $284; + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break; + } else { + _store_int($$0293,$$$0268,$276,$277); + $$10 = $$5;$$5310 = $$$0305;$310 = $$327; + break; + } + } + } while(0); + $293 = HEAP32[$15>>2]|0; + $294 = HEAP32[$13>>2]|0; + $295 = HEAP32[$16>>2]|0; + $296 = (($293) + ($$1284))|0; + $297 = (($296) + ($294))|0; + $298 = (($297) - ($295))|0; + $299 = $100&1; + $$0288$ = (($299) + ($$0288425))|0; + $$11 = $$10;$$1289 = $$0288$;$$2285 = $298;$$6311 = $$5310;$307 = $310; + break L8; + } + } while(0); + $56 = $53&1; + $57 = (($$0273429) + ($56)|0); + ___shlim($0,0); + $58 = HEAP32[$13>>2]|0; + $59 = HEAP32[$14>>2]|0; + $60 = ($58>>>0)<($59>>>0); + if ($60) { + $61 = ((($58)) + 1|0); + HEAP32[$13>>2] = $61; + $62 = HEAP8[$58>>0]|0; + $63 = $62&255; + $68 = $63; + } else { + $64 = (___shgetc($0)|0); + $68 = $64; + } + $65 = HEAP8[$57>>0]|0; + $66 = $65&255; + $67 = ($68|0)==($66|0); + if (!($67)) { + label = 22; + break L6; + } + $75 = (($$0283428) + 1)|0; + $$11 = $57;$$1289 = $$0288425;$$2285 = $75;$$6311 = $$0305423;$307 = $102; + } else { + $$1274 = $$0273429; + while(1) { + $27 = ((($$1274)) + 1|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = (_isspace($29)|0); + $31 = ($30|0)==(0); + if ($31) { + break; + } else { + $$1274 = $27; + } + } + ___shlim($0,0); + while(1) { + $32 = HEAP32[$13>>2]|0; + $33 = HEAP32[$14>>2]|0; + $34 = ($32>>>0)<($33>>>0); + if ($34) { + $35 = ((($32)) + 1|0); + HEAP32[$13>>2] = $35; + $36 = HEAP8[$32>>0]|0; + $37 = $36&255; + $39 = $37; + } else { + $38 = (___shgetc($0)|0); + $39 = $38; + } + $40 = (_isspace($39)|0); + $41 = ($40|0)==(0); + if ($41) { + break; + } + } + $42 = HEAP32[$14>>2]|0; + $43 = ($42|0)==(0|0); + if ($43) { + $$pre = HEAP32[$13>>2]|0; + $51 = $$pre; + } else { + $44 = HEAP32[$13>>2]|0; + $45 = ((($44)) + -1|0); + HEAP32[$13>>2] = $45; + $46 = $45; + $51 = $46; + } + $47 = HEAP32[$15>>2]|0; + $48 = HEAP32[$16>>2]|0; + $49 = (($47) + ($$0283428))|0; + $50 = (($49) + ($51))|0; + $52 = (($50) - ($48))|0; + $$11 = $$1274;$$1289 = $$0288425;$$2285 = $52;$$6311 = $$0305423;$307 = $102; + } + } while(0); + $300 = ((($$11)) + 1|0); + $301 = HEAP8[$300>>0]|0; + $302 = ($301<<24>>24)==(0); + if ($302) { + $$3291 = $$1289; + break L4; + } else { + $$0273429 = $300;$$0283428 = $$2285;$$0288425 = $$1289;$$0305423 = $$6311;$102 = $307;$24 = $301; + } + } + if ((label|0) == 22) { + $69 = HEAP32[$14>>2]|0; + $70 = ($69|0)==(0|0); + if (!($70)) { + $71 = HEAP32[$13>>2]|0; + $72 = ((($71)) + -1|0); + HEAP32[$13>>2] = $72; + } + $73 = ($68|0)>(-1); + $74 = ($$0288425|0)!=(0); + $or$cond5 = $74 | $73; + if ($or$cond5) { + $$3291 = $$0288425; + break; + } else { + $$1271 = 0;$$8313 = $$0305423;$308 = $102; + label = 138; + } + } + else if ((label|0) == 137) { + $$328$le441 = $narrow469&1; + $$old4 = ($$0288425|0)==(0); + if ($$old4) { + $$1271 = $$328$le441;$$8313 = $$7312;$308 = $309; + label = 138; + } else { + $$2 = $$328$le441;$$2290 = $$0288425;$$9314 = $$7312;$304 = $309; + } + } + else if ((label|0) == 139) { + $$328$le439 = $narrow&1; + $$2 = $$328$le439;$$2290 = $$0288425;$$9314 = $$9314$ph;$304 = $$ph353; + } + if ((label|0) == 138) { + $$2 = $$1271;$$2290 = -1;$$9314 = $$8313;$304 = $308; + } + $303 = ($$2|0)==(0); + if ($303) { + $$3291 = $$2290; + } else { + _free($$9314); + _free($304); + $$3291 = $$2290; + } + } + } while(0); + $305 = ($306|0)==(0); + if (!($305)) { + ___unlockfile($0); + } + STACKTOP = sp;return ($$3291|0); +} +function _arg_n($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded1 = 0, $expanded3 = 0, $expanded4 = 0, $expanded5 = 0, $vacopy_currentptr = 0, label = 0; + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $2 = sp; + $vacopy_currentptr = HEAP32[$0>>2]|0; + HEAP32[$2>>2] = $vacopy_currentptr; + $$0 = $1; + while(1) { + $3 = ($$0>>>0)>(1); + $arglist_current = HEAP32[$2>>2]|0; + $4 = $arglist_current; + $5 = ((0) + 4|0); + $expanded1 = $5; + $expanded = (($expanded1) - 1)|0; + $6 = (($4) + ($expanded))|0; + $7 = ((0) + 4|0); + $expanded5 = $7; + $expanded4 = (($expanded5) - 1)|0; + $expanded3 = $expanded4 ^ -1; + $8 = $6 & $expanded3; + $9 = $8; + $10 = HEAP32[$9>>2]|0; + $arglist_next = ((($9)) + 4|0); + HEAP32[$2>>2] = $arglist_next; + $11 = (($$0) + -1)|0; + if ($3) { + $$0 = $11; + } else { + break; + } + } + STACKTOP = sp;return ($10|0); +} +function _store_int($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $10 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = ($0|0)==(0|0); + L1: do { + if (!($4)) { + switch ($1|0) { + case -2: { + $5 = $2&255; + HEAP8[$0>>0] = $5; + break L1; + break; + } + case -1: { + $6 = $2&65535; + HEAP16[$0>>1] = $6; + break L1; + break; + } + case 0: { + HEAP32[$0>>2] = $2; + break L1; + break; + } + case 1: { + HEAP32[$0>>2] = $2; + break L1; + break; + } + case 3: { + $7 = $0; + $8 = $7; + HEAP32[$8>>2] = $2; + $9 = (($7) + 4)|0; + $10 = $9; + HEAP32[$10>>2] = $3; + break L1; + break; + } + default: { + break L1; + } + } + } + } while(0); + return; +} +function _mbsinit($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + $5 = 1; + } else { + $2 = HEAP32[$0>>2]|0; + $3 = ($2|0)==(0); + $5 = $3; + } + $4 = $5&1; + return ($4|0); +} +function _fseek($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = (___fseeko($0,$1,$2)|0); + return ($3|0); +} +function ___fseeko($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ((($0)) + 76|0); + $4 = HEAP32[$3>>2]|0; + $5 = ($4|0)>(-1); + if ($5) { + $7 = (___lockfile($0)|0); + $phitmp = ($7|0)==(0); + $8 = (___fseeko_unlocked($0,$1,$2)|0); + if ($phitmp) { + $9 = $8; + } else { + ___unlockfile($0); + $9 = $8; + } + } else { + $6 = (___fseeko_unlocked($0,$1,$2)|0); + $9 = $6; + } + return ($9|0); +} +function ___fseeko_unlocked($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = ($2|0)==(1); + if ($3) { + $4 = ((($0)) + 8|0); + $5 = HEAP32[$4>>2]|0; + $6 = ((($0)) + 4|0); + $7 = HEAP32[$6>>2]|0; + $8 = (($1) - ($5))|0; + $9 = (($8) + ($7))|0; + $$019 = $9; + } else { + $$019 = $1; + } + $10 = ((($0)) + 20|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($0)) + 28|0); + $13 = HEAP32[$12>>2]|0; + $14 = ($11>>>0)>($13>>>0); + if ($14) { + $15 = ((($0)) + 36|0); + $16 = HEAP32[$15>>2]|0; + (FUNCTION_TABLE_iiii[$16 & 15]($0,0,0)|0); + $17 = HEAP32[$10>>2]|0; + $18 = ($17|0)==(0|0); + if ($18) { + $$0 = -1; + } else { + label = 5; + } + } else { + label = 5; + } + if ((label|0) == 5) { + $19 = ((($0)) + 16|0); + HEAP32[$19>>2] = 0; + HEAP32[$12>>2] = 0; + HEAP32[$10>>2] = 0; + $20 = ((($0)) + 40|0); + $21 = HEAP32[$20>>2]|0; + $22 = (FUNCTION_TABLE_iiii[$21 & 15]($0,$$019,$2)|0); + $23 = ($22|0)<(0); + if ($23) { + $$0 = -1; + } else { + $24 = ((($0)) + 8|0); + HEAP32[$24>>2] = 0; + $25 = ((($0)) + 4|0); + HEAP32[$25>>2] = 0; + $26 = HEAP32[$0>>2]|0; + $27 = $26 & -17; + HEAP32[$0>>2] = $27; + $$0 = 0; + } + } + return ($$0|0); +} +function _strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; + var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = ($2<<24>>24)==(0); + do { + if ($3) { + $$0 = $0; + } else { + $4 = $2 << 24 >> 24; + $5 = (_strchr($0,$4)|0); + $6 = ($5|0)==(0|0); + if ($6) { + $$0 = 0; + } else { + $7 = ((($1)) + 1|0); + $8 = HEAP8[$7>>0]|0; + $9 = ($8<<24>>24)==(0); + if ($9) { + $$0 = $5; + } else { + $10 = ((($5)) + 1|0); + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + $$0 = 0; + } else { + $13 = ((($1)) + 2|0); + $14 = HEAP8[$13>>0]|0; + $15 = ($14<<24>>24)==(0); + if ($15) { + $16 = (_twobyte_strstr($5,$1)|0); + $$0 = $16; + break; + } + $17 = ((($5)) + 2|0); + $18 = HEAP8[$17>>0]|0; + $19 = ($18<<24>>24)==(0); + if ($19) { + $$0 = 0; + } else { + $20 = ((($1)) + 3|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + $23 = (_threebyte_strstr($5,$1)|0); + $$0 = $23; + break; + } + $24 = ((($5)) + 3|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + $$0 = 0; + } else { + $27 = ((($1)) + 4|0); + $28 = HEAP8[$27>>0]|0; + $29 = ($28<<24>>24)==(0); + if ($29) { + $30 = (_fourbyte_strstr($5,$1)|0); + $$0 = $30; + break; + } else { + $31 = (_twoway_strstr($5,$1)|0); + $$0 = $31; + break; + } + } + } + } + } + } + } + } while(0); + return ($$0|0); +} +function _twobyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$sink = 0, $$sink$in = 0, $$sink$masked = 0, $$sink17$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; + var label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 8; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $4 | $7; + $9 = HEAP8[$0>>0]|0; + $10 = $9&255; + $$sink$in = $10;$$sink17$sink = $0; + while(1) { + $11 = ((($$sink17$sink)) + 1|0); + $12 = HEAP8[$11>>0]|0; + $13 = ($12<<24>>24)==(0); + if ($13) { + $$lcssa = 0; + break; + } + $$sink = $$sink$in << 8; + $14 = $12&255; + $$sink$masked = $$sink & 65280; + $15 = $14 | $$sink$masked; + $16 = ($15|0)==($8|0); + if ($16) { + $$lcssa = $$sink17$sink; + break; + } else { + $$sink$in = $15;$$sink17$sink = $11; + } + } + return ($$lcssa|0); +} +function _threebyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$016$lcssa = 0, $$01619 = 0, $$020 = 0, $$lcssa = 0, $$not = 0, $$not17 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0; + var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = HEAP8[$0>>0]|0; + $16 = $15&255; + $17 = $16 << 24; + $18 = ((($0)) + 1|0); + $19 = HEAP8[$18>>0]|0; + $20 = $19&255; + $21 = $20 << 16; + $22 = $21 | $17; + $23 = ((($0)) + 2|0); + $24 = HEAP8[$23>>0]|0; + $25 = $24&255; + $26 = $25 << 8; + $27 = $22 | $26; + $28 = ($24<<24>>24)!=(0); + $$not17 = $28 ^ 1; + $29 = ($27|0)==($14|0); + $or$cond18 = $29 | $$not17; + if ($or$cond18) { + $$016$lcssa = $23;$$lcssa = $28; + } else { + $$01619 = $23;$$020 = $27; + while(1) { + $30 = ((($$01619)) + 1|0); + $31 = HEAP8[$30>>0]|0; + $32 = $31&255; + $33 = $32 | $$020; + $34 = $33 << 8; + $35 = ($31<<24>>24)!=(0); + $$not = $35 ^ 1; + $36 = ($34|0)==($14|0); + $or$cond = $36 | $$not; + if ($or$cond) { + $$016$lcssa = $30;$$lcssa = $35; + break; + } else { + $$01619 = $30;$$020 = $34; + } + } + } + $37 = ((($$016$lcssa)) + -2|0); + $38 = $$lcssa ? $37 : 0; + return ($38|0); +} +function _fourbyte_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$lcssa = 0, $$not = 0, $$not22 = 0, $$sink21$lcssa = 0, $$sink2124 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond23 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP8[$1>>0]|0; + $3 = $2&255; + $4 = $3 << 24; + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = $6&255; + $8 = $7 << 16; + $9 = $8 | $4; + $10 = ((($1)) + 2|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11&255; + $13 = $12 << 8; + $14 = $9 | $13; + $15 = ((($1)) + 3|0); + $16 = HEAP8[$15>>0]|0; + $17 = $16&255; + $18 = $14 | $17; + $19 = HEAP8[$0>>0]|0; + $20 = $19&255; + $21 = $20 << 24; + $22 = ((($0)) + 1|0); + $23 = HEAP8[$22>>0]|0; + $24 = $23&255; + $25 = $24 << 16; + $26 = $25 | $21; + $27 = ((($0)) + 2|0); + $28 = HEAP8[$27>>0]|0; + $29 = $28&255; + $30 = $29 << 8; + $31 = $26 | $30; + $32 = ((($0)) + 3|0); + $33 = HEAP8[$32>>0]|0; + $34 = $33&255; + $35 = $34 | $31; + $36 = ($33<<24>>24)!=(0); + $$not22 = $36 ^ 1; + $37 = ($35|0)==($18|0); + $or$cond23 = $37 | $$not22; + if ($or$cond23) { + $$lcssa = $36;$$sink21$lcssa = $32; + } else { + $$sink2124 = $32;$39 = $35; + while(1) { + $38 = $39 << 8; + $40 = ((($$sink2124)) + 1|0); + $41 = HEAP8[$40>>0]|0; + $42 = $41&255; + $43 = $42 | $38; + $44 = ($41<<24>>24)!=(0); + $$not = $44 ^ 1; + $45 = ($43|0)==($18|0); + $or$cond = $45 | $$not; + if ($or$cond) { + $$lcssa = $44;$$sink21$lcssa = $40; + break; + } else { + $$sink2124 = $40;$39 = $43; + } + } + } + $46 = ((($$sink21$lcssa)) + -3|0); + $47 = $$lcssa ? $46 : 0; + return ($47|0); +} +function _twoway_strstr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0166 = 0, $$0168 = 0, $$0169 = 0, $$0169$be = 0, $$0170 = 0, $$0175$ph$ph$lcssa220 = 0, $$0175$ph$ph$lcssa220323 = 0, $$0175$ph$ph256 = 0, $$0179244 = 0, $$0183$ph200$ph255 = 0, $$0183$ph200250 = 0, $$0183$ph262 = 0, $$0185$ph$lcssa = 0, $$0185$ph$lcssa322 = 0, $$0185$ph261 = 0, $$0187$lcssa320321 = 0, $$0187266 = 0, $$1176$$0175 = 0, $$1176$ph$ph$lcssa211 = 0, $$1176$ph$ph235 = 0; + var $$1180224 = 0, $$1184$ph196$ph234 = 0, $$1184$ph196229 = 0, $$1184$ph241 = 0, $$1186$$0185 = 0, $$1186$$0185$ = 0, $$1186$ph$lcssa = 0, $$1186$ph240 = 0, $$2181 = 0, $$2181$sink = 0, $$3 = 0, $$3173 = 0, $$3178 = 0, $$3182223 = 0, $$4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0; + var $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0; + var $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; + var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; + var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; + var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; + var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; + var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond191 = 0, $cond191222 = 0, $cond265 = 0, $div = 0, $div188 = 0, $or$cond = 0, $or$cond190 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1056|0); + $2 = sp + 1024|0; + $3 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $4 = HEAP8[$1>>0]|0; + $cond265 = ($4<<24>>24)==(0); + L1: do { + if ($cond265) { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = 0;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } else { + $5 = $4&255; + $$0187266 = 0;$12 = $4;$20 = $5; + while(1) { + $8 = (($0) + ($$0187266)|0); + $9 = HEAP8[$8>>0]|0; + $10 = ($9<<24>>24)==(0); + if ($10) { + $$3 = 0; + break L1; + } + $11 = $12 & 31; + $13 = $11&255; + $14 = 1 << $13; + $div188 = ($12&255) >>> 5; + $15 = $div188&255; + $16 = (($2) + ($15<<2)|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 | $14; + HEAP32[$16>>2] = $18; + $7 = (($$0187266) + 1)|0; + $19 = (($3) + ($20<<2)|0); + HEAP32[$19>>2] = $7; + $21 = (($1) + ($7)|0); + $22 = HEAP8[$21>>0]|0; + $23 = $22&255; + $cond = ($22<<24>>24)==(0); + if ($cond) { + break; + } else { + $$0187266 = $7;$12 = $22;$20 = $23; + } + } + $6 = ($7>>>0)>(1); + if ($6) { + $$0183$ph262 = 0;$$0185$ph261 = -1;$129 = 1; + L7: while(1) { + $$0175$ph$ph256 = 1;$$0183$ph200$ph255 = $$0183$ph262;$132 = $129; + while(1) { + $$0183$ph200250 = $$0183$ph200$ph255;$131 = $132; + L11: while(1) { + $$0179244 = 1;$31 = $131; + while(1) { + $27 = (($$0179244) + ($$0185$ph261))|0; + $28 = (($1) + ($27)|0); + $29 = HEAP8[$28>>0]|0; + $30 = (($1) + ($31)|0); + $32 = HEAP8[$30>>0]|0; + $33 = ($29<<24>>24)==($32<<24>>24); + if (!($33)) { + break L11; + } + $34 = ($$0179244|0)==($$0175$ph$ph256|0); + $25 = (($$0179244) + 1)|0; + if ($34) { + break; + } + $24 = (($25) + ($$0183$ph200250))|0; + $26 = ($24>>>0)<($7>>>0); + if ($26) { + $$0179244 = $25;$31 = $24; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $35 = (($$0175$ph$ph256) + ($$0183$ph200250))|0; + $36 = (($35) + 1)|0; + $37 = ($36>>>0)<($7>>>0); + if ($37) { + $$0183$ph200250 = $35;$131 = $36; + } else { + $$0175$ph$ph$lcssa220 = $$0175$ph$ph256;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $38 = ($29&255)>($32&255); + $39 = (($31) - ($$0185$ph261))|0; + if (!($38)) { + break; + } + $43 = (($31) + 1)|0; + $44 = ($43>>>0)<($7>>>0); + if ($44) { + $$0175$ph$ph256 = $39;$$0183$ph200$ph255 = $31;$132 = $43; + } else { + $$0175$ph$ph$lcssa220 = $39;$$0185$ph$lcssa = $$0185$ph261; + break L7; + } + } + $40 = (($$0183$ph200250) + 1)|0; + $41 = (($$0183$ph200250) + 2)|0; + $42 = ($41>>>0)<($7>>>0); + if ($42) { + $$0183$ph262 = $40;$$0185$ph261 = $$0183$ph200250;$129 = $41; + } else { + $$0175$ph$ph$lcssa220 = 1;$$0185$ph$lcssa = $$0183$ph200250; + break; + } + } + if ($6) { + $$1184$ph241 = 0;$$1186$ph240 = -1;$130 = 1; + while(1) { + $$1176$ph$ph235 = 1;$$1184$ph196$ph234 = $$1184$ph241;$134 = $130; + while(1) { + $$1184$ph196229 = $$1184$ph196$ph234;$133 = $134; + L26: while(1) { + $$1180224 = 1;$52 = $133; + while(1) { + $48 = (($$1180224) + ($$1186$ph240))|0; + $49 = (($1) + ($48)|0); + $50 = HEAP8[$49>>0]|0; + $51 = (($1) + ($52)|0); + $53 = HEAP8[$51>>0]|0; + $54 = ($50<<24>>24)==($53<<24>>24); + if (!($54)) { + break L26; + } + $55 = ($$1180224|0)==($$1176$ph$ph235|0); + $46 = (($$1180224) + 1)|0; + if ($55) { + break; + } + $45 = (($46) + ($$1184$ph196229))|0; + $47 = ($45>>>0)<($7>>>0); + if ($47) { + $$1180224 = $46;$52 = $45; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $56 = (($$1176$ph$ph235) + ($$1184$ph196229))|0; + $57 = (($56) + 1)|0; + $58 = ($57>>>0)<($7>>>0); + if ($58) { + $$1184$ph196229 = $56;$133 = $57; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $$1176$ph$ph235;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $59 = ($50&255)<($53&255); + $60 = (($52) - ($$1186$ph240))|0; + if (!($59)) { + break; + } + $64 = (($52) + 1)|0; + $65 = ($64>>>0)<($7>>>0); + if ($65) { + $$1176$ph$ph235 = $60;$$1184$ph196$ph234 = $52;$134 = $64; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = $60;$$1186$ph$lcssa = $$1186$ph240; + label = 27; + break L1; + } + } + $61 = (($$1184$ph196229) + 1)|0; + $62 = (($$1184$ph196229) + 2)|0; + $63 = ($62>>>0)<($7>>>0); + if ($63) { + $$1184$ph241 = $61;$$1186$ph240 = $$1184$ph196229;$130 = $62; + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = $$1184$ph196229; + label = 27; + break; + } + } + } else { + $$0175$ph$ph$lcssa220323 = $$0175$ph$ph$lcssa220;$$0185$ph$lcssa322 = $$0185$ph$lcssa;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } else { + $$0175$ph$ph$lcssa220323 = 1;$$0185$ph$lcssa322 = -1;$$0187$lcssa320321 = $7;$$1176$ph$ph$lcssa211 = 1;$$1186$ph$lcssa = -1; + label = 27; + } + } + } while(0); + L36: do { + if ((label|0) == 27) { + $66 = (($$1186$ph$lcssa) + 1)|0; + $67 = (($$0185$ph$lcssa322) + 1)|0; + $68 = ($66>>>0)>($67>>>0); + $$1176$$0175 = $68 ? $$1176$ph$ph$lcssa211 : $$0175$ph$ph$lcssa220323; + $$1186$$0185 = $68 ? $$1186$ph$lcssa : $$0185$ph$lcssa322; + $69 = (($1) + ($$1176$$0175)|0); + $70 = (($$1186$$0185) + 1)|0; + $71 = (_memcmp($1,$69,$70)|0); + $72 = ($71|0)==(0); + if ($72) { + $77 = (($$0187$lcssa320321) - ($$1176$$0175))|0; + $$0168 = $77;$$3178 = $$1176$$0175; + } else { + $73 = (($$0187$lcssa320321) - ($$1186$$0185))|0; + $74 = (($73) + -1)|0; + $75 = ($$1186$$0185>>>0)>($74>>>0); + $$1186$$0185$ = $75 ? $$1186$$0185 : $74; + $76 = (($$1186$$0185$) + 1)|0; + $$0168 = 0;$$3178 = $76; + } + $78 = $$0187$lcssa320321 | 63; + $79 = (($$0187$lcssa320321) + -1)|0; + $80 = ($$0168|0)!=(0); + $81 = (($$0187$lcssa320321) - ($$3178))|0; + $$0166 = $0;$$0169 = 0;$$0170 = $0; + while(1) { + $82 = $$0170; + $83 = $$0166; + $84 = (($82) - ($83))|0; + $85 = ($84>>>0)<($$0187$lcssa320321>>>0); + do { + if ($85) { + $86 = (_memchr($$0170,0,$78)|0); + $87 = ($86|0)==(0|0); + if ($87) { + $91 = (($$0170) + ($78)|0); + $$3173 = $91; + break; + } else { + $88 = $86; + $89 = (($88) - ($83))|0; + $90 = ($89>>>0)<($$0187$lcssa320321>>>0); + if ($90) { + $$3 = 0; + break L36; + } else { + $$3173 = $86; + break; + } + } + } else { + $$3173 = $$0170; + } + } while(0); + $92 = (($$0166) + ($79)|0); + $93 = HEAP8[$92>>0]|0; + $div = ($93&255) >>> 5; + $94 = $div&255; + $95 = (($2) + ($94<<2)|0); + $96 = HEAP32[$95>>2]|0; + $97 = $93 & 31; + $98 = $97&255; + $99 = 1 << $98; + $100 = $99 & $96; + $101 = ($100|0)==(0); + L50: do { + if ($101) { + $$0169$be = 0;$$2181$sink = $$0187$lcssa320321; + } else { + $102 = $93&255; + $103 = (($3) + ($102<<2)|0); + $104 = HEAP32[$103>>2]|0; + $105 = (($$0187$lcssa320321) - ($104))|0; + $106 = ($105|0)==(0); + if (!($106)) { + $107 = ($$0169|0)!=(0); + $or$cond = $80 & $107; + $108 = ($105>>>0)<($$3178>>>0); + $or$cond190 = $or$cond & $108; + $$2181 = $or$cond190 ? $81 : $105; + $$0169$be = 0;$$2181$sink = $$2181; + break; + } + $110 = ($70>>>0)>($$0169>>>0); + $111 = $110 ? $70 : $$0169; + $112 = (($1) + ($111)|0); + $113 = HEAP8[$112>>0]|0; + $cond191222 = ($113<<24>>24)==(0); + L55: do { + if ($cond191222) { + $$4 = $70; + } else { + $$3182223 = $111;$117 = $113; + while(1) { + $114 = (($$0166) + ($$3182223)|0); + $115 = HEAP8[$114>>0]|0; + $116 = ($117<<24>>24)==($115<<24>>24); + if (!($116)) { + break; + } + $118 = (($$3182223) + 1)|0; + $119 = (($1) + ($118)|0); + $120 = HEAP8[$119>>0]|0; + $cond191 = ($120<<24>>24)==(0); + if ($cond191) { + $$4 = $70; + break L55; + } else { + $$3182223 = $118;$117 = $120; + } + } + $121 = (($$3182223) - ($$1186$$0185))|0; + $$0169$be = 0;$$2181$sink = $121; + break L50; + } + } while(0); + while(1) { + $122 = ($$4>>>0)>($$0169>>>0); + if (!($122)) { + $$3 = $$0166; + break L36; + } + $123 = (($$4) + -1)|0; + $124 = (($1) + ($123)|0); + $125 = HEAP8[$124>>0]|0; + $126 = (($$0166) + ($123)|0); + $127 = HEAP8[$126>>0]|0; + $128 = ($125<<24>>24)==($127<<24>>24); + if ($128) { + $$4 = $123; + } else { + $$0169$be = $$0168;$$2181$sink = $$3178; + break; + } + } + } + } while(0); + $109 = (($$0166) + ($$2181$sink)|0); + $$0166 = $109;$$0169 = $$0169$be;$$0170 = $$3173; + } + } + } while(0); + STACKTOP = sp;return ($$3|0); +} +function _strrchr($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($2) + 1)|0; + $4 = (___memrchr($0,$1,$3)|0); + return ($4|0); +} +function ___memrchr($0,$1,$2) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $3 = $1&255; + $$09 = $2; + while(1) { + $4 = (($$09) + -1)|0; + $5 = ($$09|0)==(0); + if ($5) { + $$0 = 0; + break; + } + $6 = (($0) + ($4)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==($3<<24>>24); + if ($8) { + $$0 = $6; + break; + } else { + $$09 = $4; + } + } + return ($$0|0); +} +function _strspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$01925 = 0, $$020 = 0, $$1$lcssa = 0, $$123 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; + var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $div21 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + do { + if ($4) { + $$0 = 0; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + $$020 = $0; + while(1) { + $8 = HEAP8[$$020>>0]|0; + $9 = ($8<<24>>24)==($3<<24>>24); + $10 = ((($$020)) + 1|0); + if ($9) { + $$020 = $10; + } else { + break; + } + } + $11 = $$020; + $12 = $0; + $13 = (($11) - ($12))|0; + $$0 = $13; + break; + } else { + $$01925 = $1;$17 = $3; + } + while(1) { + $16 = $17 & 31; + $18 = $16&255; + $19 = 1 << $18; + $div21 = ($17&255) >>> 5; + $20 = $div21&255; + $21 = (($2) + ($20<<2)|0); + $22 = HEAP32[$21>>2]|0; + $23 = $22 | $19; + HEAP32[$21>>2] = $23; + $24 = ((($$01925)) + 1|0); + $25 = HEAP8[$24>>0]|0; + $26 = ($25<<24>>24)==(0); + if ($26) { + break; + } else { + $$01925 = $24;$17 = $25; + } + } + $14 = HEAP8[$0>>0]|0; + $15 = ($14<<24>>24)==(0); + L10: do { + if ($15) { + $$1$lcssa = $0; + } else { + $$123 = $0;$27 = $14; + while(1) { + $div = ($27&255) >>> 5; + $28 = $div&255; + $29 = (($2) + ($28<<2)|0); + $30 = HEAP32[$29>>2]|0; + $31 = $27 & 31; + $32 = $31&255; + $33 = 1 << $32; + $34 = $30 & $33; + $35 = ($34|0)==(0); + if ($35) { + $$1$lcssa = $$123; + break L10; + } + $36 = ((($$123)) + 1|0); + $37 = HEAP8[$36>>0]|0; + $38 = ($37<<24>>24)==(0); + if ($38) { + $$1$lcssa = $36; + break; + } else { + $$123 = $36;$27 = $37; + } + } + } + } while(0); + $39 = $$1$lcssa; + $40 = $0; + $41 = (($39) - ($40))|0; + $$0 = $41; + } + } while(0); + STACKTOP = sp;return ($$0|0); +} +function _srand($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = (($0) + -1)|0; + $2 = 18192; + $3 = $2; + HEAP32[$3>>2] = $1; + $4 = (($2) + 4)|0; + $5 = $4; + HEAP32[$5>>2] = 0; + return; +} +function _fread($0,$1,$2,$3) { + $0 = $0|0; + $1 = $1|0; + $2 = $2|0; + $3 = $3|0; + var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; + var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $4 = Math_imul($2, $1)|0; + $5 = ($1|0)==(0); + $$ = $5 ? 0 : $2; + $6 = ((($3)) + 76|0); + $7 = HEAP32[$6>>2]|0; + $8 = ($7|0)>(-1); + if ($8) { + $9 = (___lockfile($3)|0); + $36 = $9; + } else { + $36 = 0; + } + $10 = ((($3)) + 74|0); + $11 = HEAP8[$10>>0]|0; + $12 = $11 << 24 >> 24; + $13 = (($12) + 255)|0; + $14 = $13 | $12; + $15 = $14&255; + HEAP8[$10>>0] = $15; + $16 = ((($3)) + 8|0); + $17 = HEAP32[$16>>2]|0; + $18 = ((($3)) + 4|0); + $19 = HEAP32[$18>>2]|0; + $20 = $19; + $21 = (($17) - ($20))|0; + $22 = ($21|0)>(0); + $23 = ($21>>>0)<($4>>>0); + $$57 = $23 ? $21 : $4; + if ($22) { + $24 = (($4) - ($$57))|0; + $25 = (($0) + ($$57)|0); + _memcpy(($0|0),($19|0),($$57|0))|0; + $26 = (($19) + ($$57)|0); + HEAP32[$18>>2] = $26; + $$054$ph = $24;$$056$ph = $25; + } else { + $$054$ph = $4;$$056$ph = $0; + } + $27 = ($$054$ph|0)==(0); + L7: do { + if ($27) { + label = 13; + } else { + $28 = ((($3)) + 32|0); + $$05460 = $$054$ph;$$05659 = $$056$ph; + while(1) { + $29 = (___toread($3)|0); + $30 = ($29|0)==(0); + if (!($30)) { + break; + } + $31 = HEAP32[$28>>2]|0; + $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0); + $33 = (($32) + 1)|0; + $34 = ($33>>>0)<(2); + if ($34) { + break; + } + $39 = (($$05460) - ($32))|0; + $40 = (($$05659) + ($32)|0); + $41 = ($39|0)==(0); + if ($41) { + label = 13; + break L7; + } else { + $$05460 = $39;$$05659 = $40; + } + } + $35 = ($36|0)==(0); + if (!($35)) { + ___unlockfile($3); + } + $37 = (($4) - ($$05460))|0; + $38 = (($37>>>0) / ($1>>>0))&-1; + $$0 = $38; + } + } while(0); + if ((label|0) == 13) { + $42 = ($36|0)==(0); + if ($42) { + $$0 = $$; + } else { + ___unlockfile($3); + $$0 = $$; + } + } + return ($$0|0); +} +function _rewind($0) { + $0 = $0|0; + var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $phitmp = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ((($0)) + 76|0); + $2 = HEAP32[$1>>2]|0; + $3 = ($2|0)>(-1); + if ($3) { + $4 = (___lockfile($0)|0); + $phitmp = ($4|0)==(0); + (___fseeko_unlocked($0,0,0)|0); + $5 = HEAP32[$0>>2]|0; + $6 = $5 & -33; + HEAP32[$0>>2] = $6; + if (!($phitmp)) { + ___unlockfile($0); + } + } else { + (___fseeko_unlocked($0,0,0)|0); + $7 = HEAP32[$0>>2]|0; + $8 = $7 & -33; + HEAP32[$0>>2] = $8; + } + return; +} +function _vprintf($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = HEAP32[1028]|0; + $3 = (_vfprintf($2,$0,$1)|0); + return ($3|0); +} +function _strcspn($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$01824 = 0, $$019$sink = 0, $$01922 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0; + var $div20 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); + $2 = sp; + $3 = HEAP8[$1>>0]|0; + $4 = ($3<<24>>24)==(0); + L1: do { + if ($4) { + label = 3; + } else { + $5 = ((($1)) + 1|0); + $6 = HEAP8[$5>>0]|0; + $7 = ($6<<24>>24)==(0); + if ($7) { + label = 3; + } else { + ;HEAP32[$2>>2]=0|0;HEAP32[$2+4>>2]=0|0;HEAP32[$2+8>>2]=0|0;HEAP32[$2+12>>2]=0|0;HEAP32[$2+16>>2]=0|0;HEAP32[$2+20>>2]=0|0;HEAP32[$2+24>>2]=0|0;HEAP32[$2+28>>2]=0|0; + $$01824 = $1;$13 = $3; + while(1) { + $12 = $13 & 31; + $14 = $12&255; + $15 = 1 << $14; + $div20 = ($13&255) >>> 5; + $16 = $div20&255; + $17 = (($2) + ($16<<2)|0); + $18 = HEAP32[$17>>2]|0; + $19 = $18 | $15; + HEAP32[$17>>2] = $19; + $20 = ((($$01824)) + 1|0); + $21 = HEAP8[$20>>0]|0; + $22 = ($21<<24>>24)==(0); + if ($22) { + break; + } else { + $$01824 = $20;$13 = $21; + } + } + $10 = HEAP8[$0>>0]|0; + $11 = ($10<<24>>24)==(0); + if ($11) { + $$019$sink = $0; + } else { + $$01922 = $0;$23 = $10; + while(1) { + $div = ($23&255) >>> 5; + $24 = $div&255; + $25 = (($2) + ($24<<2)|0); + $26 = HEAP32[$25>>2]|0; + $27 = $23 & 31; + $28 = $27&255; + $29 = 1 << $28; + $30 = $26 & $29; + $31 = ($30|0)==(0); + if (!($31)) { + $$019$sink = $$01922; + break L1; + } + $32 = ((($$01922)) + 1|0); + $33 = HEAP8[$32>>0]|0; + $34 = ($33<<24>>24)==(0); + if ($34) { + $$019$sink = $32; + break; + } else { + $$01922 = $32;$23 = $33; + } + } + } + } + } + } while(0); + if ((label|0) == 3) { + $8 = $3 << 24 >> 24; + $9 = (___strchrnul($0,$8)|0); + $$019$sink = $9; + } + $35 = $$019$sink; + $36 = $0; + $37 = (($35) - ($36))|0; + STACKTOP = sp;return ($37|0); +} +function _strcat($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $2 = 0, $3 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (_strlen($0)|0); + $3 = (($0) + ($2)|0); + (_strcpy($3,$1)|0); + return ($0|0); +} +function _strtok($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0 = 0, $$010 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = HEAP32[5217]|0; + $4 = ($3|0)==(0|0); + if ($4) { + $$0 = 0; + } else { + $$010 = $3; + label = 3; + } + } else { + $$010 = $0; + label = 3; + } + do { + if ((label|0) == 3) { + $5 = (_strspn($$010,$1)|0); + $6 = (($$010) + ($5)|0); + $7 = HEAP8[$6>>0]|0; + $8 = ($7<<24>>24)==(0); + if ($8) { + HEAP32[5217] = 0; + $$0 = 0; + break; + } + $9 = (_strcspn($6,$1)|0); + $10 = (($6) + ($9)|0); + HEAP32[5217] = $10; + $11 = HEAP8[$10>>0]|0; + $12 = ($11<<24>>24)==(0); + if ($12) { + HEAP32[5217] = 0; + $$0 = $6; + break; + } else { + $13 = ((($10)) + 1|0); + HEAP32[5217] = $13; + HEAP8[$10>>0] = 0; + $$0 = $6; + break; + } + } + } while(0); + return ($$0|0); +} +function _malloc($0) { + $0 = $0|0; + var $$$0192$i = 0, $$$0193$i = 0, $$$4236$i = 0, $$$4351$i = 0, $$$i = 0, $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i18$i = 0, $$01$i$i = 0, $$0189$i = 0, $$0192$lcssa$i = 0, $$01928$i = 0, $$0193$lcssa$i = 0, $$01937$i = 0, $$0197 = 0, $$0199 = 0, $$0206$i$i = 0, $$0207$i$i = 0, $$0211$i$i = 0; + var $$0212$i$i = 0, $$024371$i = 0, $$0287$i$i = 0, $$0288$i$i = 0, $$0289$i$i = 0, $$0295$i$i = 0, $$0296$i$i = 0, $$0342$i = 0, $$0344$i = 0, $$0345$i = 0, $$0347$i = 0, $$0353$i = 0, $$0358$i = 0, $$0359$$i = 0, $$0359$i = 0, $$0361$i = 0, $$0362$i = 0, $$0368$i = 0, $$1196$i = 0, $$1198$i = 0; + var $$124470$i = 0, $$1291$i$i = 0, $$1293$i$i = 0, $$1343$i = 0, $$1348$i = 0, $$1363$i = 0, $$1370$i = 0, $$1374$i = 0, $$2234253237$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2355$i = 0, $$3$i = 0, $$3$i$i = 0, $$3$i201 = 0, $$3350$i = 0, $$3372$i = 0, $$4$lcssa$i = 0, $$4$ph$i = 0, $$415$i = 0; + var $$4236$i = 0, $$4351$lcssa$i = 0, $$435114$i = 0, $$4357$$4$i = 0, $$4357$ph$i = 0, $$435713$i = 0, $$723948$i = 0, $$749$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i19$i = 0, $$pre$i210 = 0, $$pre$i212 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i20$iZ2D = 0, $$pre$phi$i211Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi11$i$iZ2D = 0, $$pre$phiZ2D = 0; + var $$pre10$i$i = 0, $$sink1$i = 0, $$sink1$i$i = 0, $$sink16$i = 0, $$sink2$i = 0, $$sink2$i204 = 0, $$sink3$i = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0; + var $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0; + var $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0; + var $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; + var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; + var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; + var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; + var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0; + var $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0; + var $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0; + var $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0; + var $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0; + var $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0; + var $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0; + var $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0; + var $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0; + var $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0; + var $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0; + var $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0; + var $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0; + var $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0; + var $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0; + var $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0; + var $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0; + var $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0; + var $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0; + var $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0; + var $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0; + var $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0; + var $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0; + var $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0; + var $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0; + var $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0; + var $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0; + var $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0; + var $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0; + var $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0; + var $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0; + var $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0; + var $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0; + var $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0; + var $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0; + var $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0; + var $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0; + var $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0; + var $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0; + var $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0; + var $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0; + var $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0; + var $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i208 = 0, $exitcond$i$i = 0, $not$$i = 0, $not$$i$i = 0, $not$$i17$i = 0, $not$$i209 = 0, $not$$i216 = 0, $not$1$i = 0, $not$1$i203 = 0, $not$5$i = 0, $not$7$i$i = 0, $not$8$i = 0, $not$9$i = 0; + var $or$cond$i = 0, $or$cond$i214 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond11$not$i = 0, $or$cond12$i = 0, $or$cond2$i = 0, $or$cond2$i215 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); + $1 = sp; + $2 = ($0>>>0)<(245); + do { + if ($2) { + $3 = ($0>>>0)<(11); + $4 = (($0) + 11)|0; + $5 = $4 & -8; + $6 = $3 ? 16 : $5; + $7 = $6 >>> 3; + $8 = HEAP32[5218]|0; + $9 = $8 >>> $7; + $10 = $9 & 3; + $11 = ($10|0)==(0); + if (!($11)) { + $12 = $9 & 1; + $13 = $12 ^ 1; + $14 = (($13) + ($7))|0; + $15 = $14 << 1; + $16 = (20912 + ($15<<2)|0); + $17 = ((($16)) + 8|0); + $18 = HEAP32[$17>>2]|0; + $19 = ((($18)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ($16|0)==($20|0); + do { + if ($21) { + $22 = 1 << $14; + $23 = $22 ^ -1; + $24 = $8 & $23; + HEAP32[5218] = $24; + } else { + $25 = HEAP32[(20888)>>2]|0; + $26 = ($20>>>0)<($25>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($18|0); + if ($29) { + HEAP32[$27>>2] = $16; + HEAP32[$17>>2] = $20; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $30 = $14 << 3; + $31 = $30 | 3; + $32 = ((($18)) + 4|0); + HEAP32[$32>>2] = $31; + $33 = (($18) + ($30)|0); + $34 = ((($33)) + 4|0); + $35 = HEAP32[$34>>2]|0; + $36 = $35 | 1; + HEAP32[$34>>2] = $36; + $$0 = $19; + STACKTOP = sp;return ($$0|0); + } + $37 = HEAP32[(20880)>>2]|0; + $38 = ($6>>>0)>($37>>>0); + if ($38) { + $39 = ($9|0)==(0); + if (!($39)) { + $40 = $9 << $7; + $41 = 2 << $7; + $42 = (0 - ($41))|0; + $43 = $41 | $42; + $44 = $40 & $43; + $45 = (0 - ($44))|0; + $46 = $44 & $45; + $47 = (($46) + -1)|0; + $48 = $47 >>> 12; + $49 = $48 & 16; + $50 = $47 >>> $49; + $51 = $50 >>> 5; + $52 = $51 & 8; + $53 = $52 | $49; + $54 = $50 >>> $52; + $55 = $54 >>> 2; + $56 = $55 & 4; + $57 = $53 | $56; + $58 = $54 >>> $56; + $59 = $58 >>> 1; + $60 = $59 & 2; + $61 = $57 | $60; + $62 = $58 >>> $60; + $63 = $62 >>> 1; + $64 = $63 & 1; + $65 = $61 | $64; + $66 = $62 >>> $64; + $67 = (($65) + ($66))|0; + $68 = $67 << 1; + $69 = (20912 + ($68<<2)|0); + $70 = ((($69)) + 8|0); + $71 = HEAP32[$70>>2]|0; + $72 = ((($71)) + 8|0); + $73 = HEAP32[$72>>2]|0; + $74 = ($69|0)==($73|0); + do { + if ($74) { + $75 = 1 << $67; + $76 = $75 ^ -1; + $77 = $8 & $76; + HEAP32[5218] = $77; + $98 = $77; + } else { + $78 = HEAP32[(20888)>>2]|0; + $79 = ($73>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } + $80 = ((($73)) + 12|0); + $81 = HEAP32[$80>>2]|0; + $82 = ($81|0)==($71|0); + if ($82) { + HEAP32[$80>>2] = $69; + HEAP32[$70>>2] = $73; + $98 = $8; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $83 = $67 << 3; + $84 = (($83) - ($6))|0; + $85 = $6 | 3; + $86 = ((($71)) + 4|0); + HEAP32[$86>>2] = $85; + $87 = (($71) + ($6)|0); + $88 = $84 | 1; + $89 = ((($87)) + 4|0); + HEAP32[$89>>2] = $88; + $90 = (($87) + ($84)|0); + HEAP32[$90>>2] = $84; + $91 = ($37|0)==(0); + if (!($91)) { + $92 = HEAP32[(20892)>>2]|0; + $93 = $37 >>> 3; + $94 = $93 << 1; + $95 = (20912 + ($94<<2)|0); + $96 = 1 << $93; + $97 = $98 & $96; + $99 = ($97|0)==(0); + if ($99) { + $100 = $98 | $96; + HEAP32[5218] = $100; + $$pre = ((($95)) + 8|0); + $$0199 = $95;$$pre$phiZ2D = $$pre; + } else { + $101 = ((($95)) + 8|0); + $102 = HEAP32[$101>>2]|0; + $103 = HEAP32[(20888)>>2]|0; + $104 = ($102>>>0)<($103>>>0); + if ($104) { + _abort(); + // unreachable; + } else { + $$0199 = $102;$$pre$phiZ2D = $101; + } + } + HEAP32[$$pre$phiZ2D>>2] = $92; + $105 = ((($$0199)) + 12|0); + HEAP32[$105>>2] = $92; + $106 = ((($92)) + 8|0); + HEAP32[$106>>2] = $$0199; + $107 = ((($92)) + 12|0); + HEAP32[$107>>2] = $95; + } + HEAP32[(20880)>>2] = $84; + HEAP32[(20892)>>2] = $87; + $$0 = $72; + STACKTOP = sp;return ($$0|0); + } + $108 = HEAP32[(20876)>>2]|0; + $109 = ($108|0)==(0); + if ($109) { + $$0197 = $6; + } else { + $110 = (0 - ($108))|0; + $111 = $108 & $110; + $112 = (($111) + -1)|0; + $113 = $112 >>> 12; + $114 = $113 & 16; + $115 = $112 >>> $114; + $116 = $115 >>> 5; + $117 = $116 & 8; + $118 = $117 | $114; + $119 = $115 >>> $117; + $120 = $119 >>> 2; + $121 = $120 & 4; + $122 = $118 | $121; + $123 = $119 >>> $121; + $124 = $123 >>> 1; + $125 = $124 & 2; + $126 = $122 | $125; + $127 = $123 >>> $125; + $128 = $127 >>> 1; + $129 = $128 & 1; + $130 = $126 | $129; + $131 = $127 >>> $129; + $132 = (($130) + ($131))|0; + $133 = (21176 + ($132<<2)|0); + $134 = HEAP32[$133>>2]|0; + $135 = ((($134)) + 4|0); + $136 = HEAP32[$135>>2]|0; + $137 = $136 & -8; + $138 = (($137) - ($6))|0; + $139 = ((($134)) + 16|0); + $140 = HEAP32[$139>>2]|0; + $not$5$i = ($140|0)==(0|0); + $$sink16$i = $not$5$i&1; + $141 = (((($134)) + 16|0) + ($$sink16$i<<2)|0); + $142 = HEAP32[$141>>2]|0; + $143 = ($142|0)==(0|0); + if ($143) { + $$0192$lcssa$i = $134;$$0193$lcssa$i = $138; + } else { + $$01928$i = $134;$$01937$i = $138;$145 = $142; + while(1) { + $144 = ((($145)) + 4|0); + $146 = HEAP32[$144>>2]|0; + $147 = $146 & -8; + $148 = (($147) - ($6))|0; + $149 = ($148>>>0)<($$01937$i>>>0); + $$$0193$i = $149 ? $148 : $$01937$i; + $$$0192$i = $149 ? $145 : $$01928$i; + $150 = ((($145)) + 16|0); + $151 = HEAP32[$150>>2]|0; + $not$$i = ($151|0)==(0|0); + $$sink1$i = $not$$i&1; + $152 = (((($145)) + 16|0) + ($$sink1$i<<2)|0); + $153 = HEAP32[$152>>2]|0; + $154 = ($153|0)==(0|0); + if ($154) { + $$0192$lcssa$i = $$$0192$i;$$0193$lcssa$i = $$$0193$i; + break; + } else { + $$01928$i = $$$0192$i;$$01937$i = $$$0193$i;$145 = $153; + } + } + } + $155 = HEAP32[(20888)>>2]|0; + $156 = ($$0192$lcssa$i>>>0)<($155>>>0); + if ($156) { + _abort(); + // unreachable; + } + $157 = (($$0192$lcssa$i) + ($6)|0); + $158 = ($$0192$lcssa$i>>>0)<($157>>>0); + if (!($158)) { + _abort(); + // unreachable; + } + $159 = ((($$0192$lcssa$i)) + 24|0); + $160 = HEAP32[$159>>2]|0; + $161 = ((($$0192$lcssa$i)) + 12|0); + $162 = HEAP32[$161>>2]|0; + $163 = ($162|0)==($$0192$lcssa$i|0); + do { + if ($163) { + $173 = ((($$0192$lcssa$i)) + 20|0); + $174 = HEAP32[$173>>2]|0; + $175 = ($174|0)==(0|0); + if ($175) { + $176 = ((($$0192$lcssa$i)) + 16|0); + $177 = HEAP32[$176>>2]|0; + $178 = ($177|0)==(0|0); + if ($178) { + $$3$i = 0; + break; + } else { + $$1196$i = $177;$$1198$i = $176; + } + } else { + $$1196$i = $174;$$1198$i = $173; + } + while(1) { + $179 = ((($$1196$i)) + 20|0); + $180 = HEAP32[$179>>2]|0; + $181 = ($180|0)==(0|0); + if (!($181)) { + $$1196$i = $180;$$1198$i = $179; + continue; + } + $182 = ((($$1196$i)) + 16|0); + $183 = HEAP32[$182>>2]|0; + $184 = ($183|0)==(0|0); + if ($184) { + break; + } else { + $$1196$i = $183;$$1198$i = $182; + } + } + $185 = ($$1198$i>>>0)<($155>>>0); + if ($185) { + _abort(); + // unreachable; + } else { + HEAP32[$$1198$i>>2] = 0; + $$3$i = $$1196$i; + break; + } + } else { + $164 = ((($$0192$lcssa$i)) + 8|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165>>>0)<($155>>>0); + if ($166) { + _abort(); + // unreachable; + } + $167 = ((($165)) + 12|0); + $168 = HEAP32[$167>>2]|0; + $169 = ($168|0)==($$0192$lcssa$i|0); + if (!($169)) { + _abort(); + // unreachable; + } + $170 = ((($162)) + 8|0); + $171 = HEAP32[$170>>2]|0; + $172 = ($171|0)==($$0192$lcssa$i|0); + if ($172) { + HEAP32[$167>>2] = $162; + HEAP32[$170>>2] = $165; + $$3$i = $162; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $186 = ($160|0)==(0|0); + L73: do { + if (!($186)) { + $187 = ((($$0192$lcssa$i)) + 28|0); + $188 = HEAP32[$187>>2]|0; + $189 = (21176 + ($188<<2)|0); + $190 = HEAP32[$189>>2]|0; + $191 = ($$0192$lcssa$i|0)==($190|0); + do { + if ($191) { + HEAP32[$189>>2] = $$3$i; + $cond$i = ($$3$i|0)==(0|0); + if ($cond$i) { + $192 = 1 << $188; + $193 = $192 ^ -1; + $194 = $108 & $193; + HEAP32[(20876)>>2] = $194; + break L73; + } + } else { + $195 = HEAP32[(20888)>>2]|0; + $196 = ($160>>>0)<($195>>>0); + if ($196) { + _abort(); + // unreachable; + } else { + $197 = ((($160)) + 16|0); + $198 = HEAP32[$197>>2]|0; + $not$1$i = ($198|0)!=($$0192$lcssa$i|0); + $$sink2$i = $not$1$i&1; + $199 = (((($160)) + 16|0) + ($$sink2$i<<2)|0); + HEAP32[$199>>2] = $$3$i; + $200 = ($$3$i|0)==(0|0); + if ($200) { + break L73; + } else { + break; + } + } + } + } while(0); + $201 = HEAP32[(20888)>>2]|0; + $202 = ($$3$i>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } + $203 = ((($$3$i)) + 24|0); + HEAP32[$203>>2] = $160; + $204 = ((($$0192$lcssa$i)) + 16|0); + $205 = HEAP32[$204>>2]|0; + $206 = ($205|0)==(0|0); + do { + if (!($206)) { + $207 = ($205>>>0)<($201>>>0); + if ($207) { + _abort(); + // unreachable; + } else { + $208 = ((($$3$i)) + 16|0); + HEAP32[$208>>2] = $205; + $209 = ((($205)) + 24|0); + HEAP32[$209>>2] = $$3$i; + break; + } + } + } while(0); + $210 = ((($$0192$lcssa$i)) + 20|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + if (!($212)) { + $213 = HEAP32[(20888)>>2]|0; + $214 = ($211>>>0)<($213>>>0); + if ($214) { + _abort(); + // unreachable; + } else { + $215 = ((($$3$i)) + 20|0); + HEAP32[$215>>2] = $211; + $216 = ((($211)) + 24|0); + HEAP32[$216>>2] = $$3$i; + break; + } + } + } + } while(0); + $217 = ($$0193$lcssa$i>>>0)<(16); + if ($217) { + $218 = (($$0193$lcssa$i) + ($6))|0; + $219 = $218 | 3; + $220 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$0192$lcssa$i) + ($218)|0); + $222 = ((($221)) + 4|0); + $223 = HEAP32[$222>>2]|0; + $224 = $223 | 1; + HEAP32[$222>>2] = $224; + } else { + $225 = $6 | 3; + $226 = ((($$0192$lcssa$i)) + 4|0); + HEAP32[$226>>2] = $225; + $227 = $$0193$lcssa$i | 1; + $228 = ((($157)) + 4|0); + HEAP32[$228>>2] = $227; + $229 = (($157) + ($$0193$lcssa$i)|0); + HEAP32[$229>>2] = $$0193$lcssa$i; + $230 = ($37|0)==(0); + if (!($230)) { + $231 = HEAP32[(20892)>>2]|0; + $232 = $37 >>> 3; + $233 = $232 << 1; + $234 = (20912 + ($233<<2)|0); + $235 = 1 << $232; + $236 = $8 & $235; + $237 = ($236|0)==(0); + if ($237) { + $238 = $8 | $235; + HEAP32[5218] = $238; + $$pre$i = ((($234)) + 8|0); + $$0189$i = $234;$$pre$phi$iZ2D = $$pre$i; + } else { + $239 = ((($234)) + 8|0); + $240 = HEAP32[$239>>2]|0; + $241 = HEAP32[(20888)>>2]|0; + $242 = ($240>>>0)<($241>>>0); + if ($242) { + _abort(); + // unreachable; + } else { + $$0189$i = $240;$$pre$phi$iZ2D = $239; + } + } + HEAP32[$$pre$phi$iZ2D>>2] = $231; + $243 = ((($$0189$i)) + 12|0); + HEAP32[$243>>2] = $231; + $244 = ((($231)) + 8|0); + HEAP32[$244>>2] = $$0189$i; + $245 = ((($231)) + 12|0); + HEAP32[$245>>2] = $234; + } + HEAP32[(20880)>>2] = $$0193$lcssa$i; + HEAP32[(20892)>>2] = $157; + } + $246 = ((($$0192$lcssa$i)) + 8|0); + $$0 = $246; + STACKTOP = sp;return ($$0|0); + } + } else { + $$0197 = $6; + } + } else { + $247 = ($0>>>0)>(4294967231); + if ($247) { + $$0197 = -1; + } else { + $248 = (($0) + 11)|0; + $249 = $248 & -8; + $250 = HEAP32[(20876)>>2]|0; + $251 = ($250|0)==(0); + if ($251) { + $$0197 = $249; + } else { + $252 = (0 - ($249))|0; + $253 = $248 >>> 8; + $254 = ($253|0)==(0); + if ($254) { + $$0358$i = 0; + } else { + $255 = ($249>>>0)>(16777215); + if ($255) { + $$0358$i = 31; + } else { + $256 = (($253) + 1048320)|0; + $257 = $256 >>> 16; + $258 = $257 & 8; + $259 = $253 << $258; + $260 = (($259) + 520192)|0; + $261 = $260 >>> 16; + $262 = $261 & 4; + $263 = $262 | $258; + $264 = $259 << $262; + $265 = (($264) + 245760)|0; + $266 = $265 >>> 16; + $267 = $266 & 2; + $268 = $263 | $267; + $269 = (14 - ($268))|0; + $270 = $264 << $267; + $271 = $270 >>> 15; + $272 = (($269) + ($271))|0; + $273 = $272 << 1; + $274 = (($272) + 7)|0; + $275 = $249 >>> $274; + $276 = $275 & 1; + $277 = $276 | $273; + $$0358$i = $277; + } + } + $278 = (21176 + ($$0358$i<<2)|0); + $279 = HEAP32[$278>>2]|0; + $280 = ($279|0)==(0|0); + L117: do { + if ($280) { + $$2355$i = 0;$$3$i201 = 0;$$3350$i = $252; + label = 81; + } else { + $281 = ($$0358$i|0)==(31); + $282 = $$0358$i >>> 1; + $283 = (25 - ($282))|0; + $284 = $281 ? 0 : $283; + $285 = $249 << $284; + $$0342$i = 0;$$0347$i = $252;$$0353$i = $279;$$0359$i = $285;$$0362$i = 0; + while(1) { + $286 = ((($$0353$i)) + 4|0); + $287 = HEAP32[$286>>2]|0; + $288 = $287 & -8; + $289 = (($288) - ($249))|0; + $290 = ($289>>>0)<($$0347$i>>>0); + if ($290) { + $291 = ($289|0)==(0); + if ($291) { + $$415$i = $$0353$i;$$435114$i = 0;$$435713$i = $$0353$i; + label = 85; + break L117; + } else { + $$1343$i = $$0353$i;$$1348$i = $289; + } + } else { + $$1343$i = $$0342$i;$$1348$i = $$0347$i; + } + $292 = ((($$0353$i)) + 20|0); + $293 = HEAP32[$292>>2]|0; + $294 = $$0359$i >>> 31; + $295 = (((($$0353$i)) + 16|0) + ($294<<2)|0); + $296 = HEAP32[$295>>2]|0; + $297 = ($293|0)==(0|0); + $298 = ($293|0)==($296|0); + $or$cond2$i = $297 | $298; + $$1363$i = $or$cond2$i ? $$0362$i : $293; + $299 = ($296|0)==(0|0); + $not$8$i = $299 ^ 1; + $300 = $not$8$i&1; + $$0359$$i = $$0359$i << $300; + if ($299) { + $$2355$i = $$1363$i;$$3$i201 = $$1343$i;$$3350$i = $$1348$i; + label = 81; + break; + } else { + $$0342$i = $$1343$i;$$0347$i = $$1348$i;$$0353$i = $296;$$0359$i = $$0359$$i;$$0362$i = $$1363$i; + } + } + } + } while(0); + if ((label|0) == 81) { + $301 = ($$2355$i|0)==(0|0); + $302 = ($$3$i201|0)==(0|0); + $or$cond$i = $301 & $302; + if ($or$cond$i) { + $303 = 2 << $$0358$i; + $304 = (0 - ($303))|0; + $305 = $303 | $304; + $306 = $250 & $305; + $307 = ($306|0)==(0); + if ($307) { + $$0197 = $249; + break; + } + $308 = (0 - ($306))|0; + $309 = $306 & $308; + $310 = (($309) + -1)|0; + $311 = $310 >>> 12; + $312 = $311 & 16; + $313 = $310 >>> $312; + $314 = $313 >>> 5; + $315 = $314 & 8; + $316 = $315 | $312; + $317 = $313 >>> $315; + $318 = $317 >>> 2; + $319 = $318 & 4; + $320 = $316 | $319; + $321 = $317 >>> $319; + $322 = $321 >>> 1; + $323 = $322 & 2; + $324 = $320 | $323; + $325 = $321 >>> $323; + $326 = $325 >>> 1; + $327 = $326 & 1; + $328 = $324 | $327; + $329 = $325 >>> $327; + $330 = (($328) + ($329))|0; + $331 = (21176 + ($330<<2)|0); + $332 = HEAP32[$331>>2]|0; + $$4$ph$i = 0;$$4357$ph$i = $332; + } else { + $$4$ph$i = $$3$i201;$$4357$ph$i = $$2355$i; + } + $333 = ($$4357$ph$i|0)==(0|0); + if ($333) { + $$4$lcssa$i = $$4$ph$i;$$4351$lcssa$i = $$3350$i; + } else { + $$415$i = $$4$ph$i;$$435114$i = $$3350$i;$$435713$i = $$4357$ph$i; + label = 85; + } + } + if ((label|0) == 85) { + while(1) { + label = 0; + $334 = ((($$435713$i)) + 4|0); + $335 = HEAP32[$334>>2]|0; + $336 = $335 & -8; + $337 = (($336) - ($249))|0; + $338 = ($337>>>0)<($$435114$i>>>0); + $$$4351$i = $338 ? $337 : $$435114$i; + $$4357$$4$i = $338 ? $$435713$i : $$415$i; + $339 = ((($$435713$i)) + 16|0); + $340 = HEAP32[$339>>2]|0; + $not$1$i203 = ($340|0)==(0|0); + $$sink2$i204 = $not$1$i203&1; + $341 = (((($$435713$i)) + 16|0) + ($$sink2$i204<<2)|0); + $342 = HEAP32[$341>>2]|0; + $343 = ($342|0)==(0|0); + if ($343) { + $$4$lcssa$i = $$4357$$4$i;$$4351$lcssa$i = $$$4351$i; + break; + } else { + $$415$i = $$4357$$4$i;$$435114$i = $$$4351$i;$$435713$i = $342; + label = 85; + } + } + } + $344 = ($$4$lcssa$i|0)==(0|0); + if ($344) { + $$0197 = $249; + } else { + $345 = HEAP32[(20880)>>2]|0; + $346 = (($345) - ($249))|0; + $347 = ($$4351$lcssa$i>>>0)<($346>>>0); + if ($347) { + $348 = HEAP32[(20888)>>2]|0; + $349 = ($$4$lcssa$i>>>0)<($348>>>0); + if ($349) { + _abort(); + // unreachable; + } + $350 = (($$4$lcssa$i) + ($249)|0); + $351 = ($$4$lcssa$i>>>0)<($350>>>0); + if (!($351)) { + _abort(); + // unreachable; + } + $352 = ((($$4$lcssa$i)) + 24|0); + $353 = HEAP32[$352>>2]|0; + $354 = ((($$4$lcssa$i)) + 12|0); + $355 = HEAP32[$354>>2]|0; + $356 = ($355|0)==($$4$lcssa$i|0); + do { + if ($356) { + $366 = ((($$4$lcssa$i)) + 20|0); + $367 = HEAP32[$366>>2]|0; + $368 = ($367|0)==(0|0); + if ($368) { + $369 = ((($$4$lcssa$i)) + 16|0); + $370 = HEAP32[$369>>2]|0; + $371 = ($370|0)==(0|0); + if ($371) { + $$3372$i = 0; + break; + } else { + $$1370$i = $370;$$1374$i = $369; + } + } else { + $$1370$i = $367;$$1374$i = $366; + } + while(1) { + $372 = ((($$1370$i)) + 20|0); + $373 = HEAP32[$372>>2]|0; + $374 = ($373|0)==(0|0); + if (!($374)) { + $$1370$i = $373;$$1374$i = $372; + continue; + } + $375 = ((($$1370$i)) + 16|0); + $376 = HEAP32[$375>>2]|0; + $377 = ($376|0)==(0|0); + if ($377) { + break; + } else { + $$1370$i = $376;$$1374$i = $375; + } + } + $378 = ($$1374$i>>>0)<($348>>>0); + if ($378) { + _abort(); + // unreachable; + } else { + HEAP32[$$1374$i>>2] = 0; + $$3372$i = $$1370$i; + break; + } + } else { + $357 = ((($$4$lcssa$i)) + 8|0); + $358 = HEAP32[$357>>2]|0; + $359 = ($358>>>0)<($348>>>0); + if ($359) { + _abort(); + // unreachable; + } + $360 = ((($358)) + 12|0); + $361 = HEAP32[$360>>2]|0; + $362 = ($361|0)==($$4$lcssa$i|0); + if (!($362)) { + _abort(); + // unreachable; + } + $363 = ((($355)) + 8|0); + $364 = HEAP32[$363>>2]|0; + $365 = ($364|0)==($$4$lcssa$i|0); + if ($365) { + HEAP32[$360>>2] = $355; + HEAP32[$363>>2] = $358; + $$3372$i = $355; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $379 = ($353|0)==(0|0); + L164: do { + if ($379) { + $470 = $250; + } else { + $380 = ((($$4$lcssa$i)) + 28|0); + $381 = HEAP32[$380>>2]|0; + $382 = (21176 + ($381<<2)|0); + $383 = HEAP32[$382>>2]|0; + $384 = ($$4$lcssa$i|0)==($383|0); + do { + if ($384) { + HEAP32[$382>>2] = $$3372$i; + $cond$i208 = ($$3372$i|0)==(0|0); + if ($cond$i208) { + $385 = 1 << $381; + $386 = $385 ^ -1; + $387 = $250 & $386; + HEAP32[(20876)>>2] = $387; + $470 = $387; + break L164; + } + } else { + $388 = HEAP32[(20888)>>2]|0; + $389 = ($353>>>0)<($388>>>0); + if ($389) { + _abort(); + // unreachable; + } else { + $390 = ((($353)) + 16|0); + $391 = HEAP32[$390>>2]|0; + $not$$i209 = ($391|0)!=($$4$lcssa$i|0); + $$sink3$i = $not$$i209&1; + $392 = (((($353)) + 16|0) + ($$sink3$i<<2)|0); + HEAP32[$392>>2] = $$3372$i; + $393 = ($$3372$i|0)==(0|0); + if ($393) { + $470 = $250; + break L164; + } else { + break; + } + } + } + } while(0); + $394 = HEAP32[(20888)>>2]|0; + $395 = ($$3372$i>>>0)<($394>>>0); + if ($395) { + _abort(); + // unreachable; + } + $396 = ((($$3372$i)) + 24|0); + HEAP32[$396>>2] = $353; + $397 = ((($$4$lcssa$i)) + 16|0); + $398 = HEAP32[$397>>2]|0; + $399 = ($398|0)==(0|0); + do { + if (!($399)) { + $400 = ($398>>>0)<($394>>>0); + if ($400) { + _abort(); + // unreachable; + } else { + $401 = ((($$3372$i)) + 16|0); + HEAP32[$401>>2] = $398; + $402 = ((($398)) + 24|0); + HEAP32[$402>>2] = $$3372$i; + break; + } + } + } while(0); + $403 = ((($$4$lcssa$i)) + 20|0); + $404 = HEAP32[$403>>2]|0; + $405 = ($404|0)==(0|0); + if ($405) { + $470 = $250; + } else { + $406 = HEAP32[(20888)>>2]|0; + $407 = ($404>>>0)<($406>>>0); + if ($407) { + _abort(); + // unreachable; + } else { + $408 = ((($$3372$i)) + 20|0); + HEAP32[$408>>2] = $404; + $409 = ((($404)) + 24|0); + HEAP32[$409>>2] = $$3372$i; + $470 = $250; + break; + } + } + } + } while(0); + $410 = ($$4351$lcssa$i>>>0)<(16); + do { + if ($410) { + $411 = (($$4351$lcssa$i) + ($249))|0; + $412 = $411 | 3; + $413 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$413>>2] = $412; + $414 = (($$4$lcssa$i) + ($411)|0); + $415 = ((($414)) + 4|0); + $416 = HEAP32[$415>>2]|0; + $417 = $416 | 1; + HEAP32[$415>>2] = $417; + } else { + $418 = $249 | 3; + $419 = ((($$4$lcssa$i)) + 4|0); + HEAP32[$419>>2] = $418; + $420 = $$4351$lcssa$i | 1; + $421 = ((($350)) + 4|0); + HEAP32[$421>>2] = $420; + $422 = (($350) + ($$4351$lcssa$i)|0); + HEAP32[$422>>2] = $$4351$lcssa$i; + $423 = $$4351$lcssa$i >>> 3; + $424 = ($$4351$lcssa$i>>>0)<(256); + if ($424) { + $425 = $423 << 1; + $426 = (20912 + ($425<<2)|0); + $427 = HEAP32[5218]|0; + $428 = 1 << $423; + $429 = $427 & $428; + $430 = ($429|0)==(0); + if ($430) { + $431 = $427 | $428; + HEAP32[5218] = $431; + $$pre$i210 = ((($426)) + 8|0); + $$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210; + } else { + $432 = ((($426)) + 8|0); + $433 = HEAP32[$432>>2]|0; + $434 = HEAP32[(20888)>>2]|0; + $435 = ($433>>>0)<($434>>>0); + if ($435) { + _abort(); + // unreachable; + } else { + $$0368$i = $433;$$pre$phi$i211Z2D = $432; + } + } + HEAP32[$$pre$phi$i211Z2D>>2] = $350; + $436 = ((($$0368$i)) + 12|0); + HEAP32[$436>>2] = $350; + $437 = ((($350)) + 8|0); + HEAP32[$437>>2] = $$0368$i; + $438 = ((($350)) + 12|0); + HEAP32[$438>>2] = $426; + break; + } + $439 = $$4351$lcssa$i >>> 8; + $440 = ($439|0)==(0); + if ($440) { + $$0361$i = 0; + } else { + $441 = ($$4351$lcssa$i>>>0)>(16777215); + if ($441) { + $$0361$i = 31; + } else { + $442 = (($439) + 1048320)|0; + $443 = $442 >>> 16; + $444 = $443 & 8; + $445 = $439 << $444; + $446 = (($445) + 520192)|0; + $447 = $446 >>> 16; + $448 = $447 & 4; + $449 = $448 | $444; + $450 = $445 << $448; + $451 = (($450) + 245760)|0; + $452 = $451 >>> 16; + $453 = $452 & 2; + $454 = $449 | $453; + $455 = (14 - ($454))|0; + $456 = $450 << $453; + $457 = $456 >>> 15; + $458 = (($455) + ($457))|0; + $459 = $458 << 1; + $460 = (($458) + 7)|0; + $461 = $$4351$lcssa$i >>> $460; + $462 = $461 & 1; + $463 = $462 | $459; + $$0361$i = $463; + } + } + $464 = (21176 + ($$0361$i<<2)|0); + $465 = ((($350)) + 28|0); + HEAP32[$465>>2] = $$0361$i; + $466 = ((($350)) + 16|0); + $467 = ((($466)) + 4|0); + HEAP32[$467>>2] = 0; + HEAP32[$466>>2] = 0; + $468 = 1 << $$0361$i; + $469 = $470 & $468; + $471 = ($469|0)==(0); + if ($471) { + $472 = $470 | $468; + HEAP32[(20876)>>2] = $472; + HEAP32[$464>>2] = $350; + $473 = ((($350)) + 24|0); + HEAP32[$473>>2] = $464; + $474 = ((($350)) + 12|0); + HEAP32[$474>>2] = $350; + $475 = ((($350)) + 8|0); + HEAP32[$475>>2] = $350; + break; + } + $476 = HEAP32[$464>>2]|0; + $477 = ($$0361$i|0)==(31); + $478 = $$0361$i >>> 1; + $479 = (25 - ($478))|0; + $480 = $477 ? 0 : $479; + $481 = $$4351$lcssa$i << $480; + $$0344$i = $481;$$0345$i = $476; + while(1) { + $482 = ((($$0345$i)) + 4|0); + $483 = HEAP32[$482>>2]|0; + $484 = $483 & -8; + $485 = ($484|0)==($$4351$lcssa$i|0); + if ($485) { + label = 139; + break; + } + $486 = $$0344$i >>> 31; + $487 = (((($$0345$i)) + 16|0) + ($486<<2)|0); + $488 = $$0344$i << 1; + $489 = HEAP32[$487>>2]|0; + $490 = ($489|0)==(0|0); + if ($490) { + label = 136; + break; + } else { + $$0344$i = $488;$$0345$i = $489; + } + } + if ((label|0) == 136) { + $491 = HEAP32[(20888)>>2]|0; + $492 = ($487>>>0)<($491>>>0); + if ($492) { + _abort(); + // unreachable; + } else { + HEAP32[$487>>2] = $350; + $493 = ((($350)) + 24|0); + HEAP32[$493>>2] = $$0345$i; + $494 = ((($350)) + 12|0); + HEAP32[$494>>2] = $350; + $495 = ((($350)) + 8|0); + HEAP32[$495>>2] = $350; + break; + } + } + else if ((label|0) == 139) { + $496 = ((($$0345$i)) + 8|0); + $497 = HEAP32[$496>>2]|0; + $498 = HEAP32[(20888)>>2]|0; + $499 = ($497>>>0)>=($498>>>0); + $not$9$i = ($$0345$i>>>0)>=($498>>>0); + $500 = $499 & $not$9$i; + if ($500) { + $501 = ((($497)) + 12|0); + HEAP32[$501>>2] = $350; + HEAP32[$496>>2] = $350; + $502 = ((($350)) + 8|0); + HEAP32[$502>>2] = $497; + $503 = ((($350)) + 12|0); + HEAP32[$503>>2] = $$0345$i; + $504 = ((($350)) + 24|0); + HEAP32[$504>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $505 = ((($$4$lcssa$i)) + 8|0); + $$0 = $505; + STACKTOP = sp;return ($$0|0); + } else { + $$0197 = $249; + } + } + } + } + } + } while(0); + $506 = HEAP32[(20880)>>2]|0; + $507 = ($506>>>0)<($$0197>>>0); + if (!($507)) { + $508 = (($506) - ($$0197))|0; + $509 = HEAP32[(20892)>>2]|0; + $510 = ($508>>>0)>(15); + if ($510) { + $511 = (($509) + ($$0197)|0); + HEAP32[(20892)>>2] = $511; + HEAP32[(20880)>>2] = $508; + $512 = $508 | 1; + $513 = ((($511)) + 4|0); + HEAP32[$513>>2] = $512; + $514 = (($511) + ($508)|0); + HEAP32[$514>>2] = $508; + $515 = $$0197 | 3; + $516 = ((($509)) + 4|0); + HEAP32[$516>>2] = $515; + } else { + HEAP32[(20880)>>2] = 0; + HEAP32[(20892)>>2] = 0; + $517 = $506 | 3; + $518 = ((($509)) + 4|0); + HEAP32[$518>>2] = $517; + $519 = (($509) + ($506)|0); + $520 = ((($519)) + 4|0); + $521 = HEAP32[$520>>2]|0; + $522 = $521 | 1; + HEAP32[$520>>2] = $522; + } + $523 = ((($509)) + 8|0); + $$0 = $523; + STACKTOP = sp;return ($$0|0); + } + $524 = HEAP32[(20884)>>2]|0; + $525 = ($524>>>0)>($$0197>>>0); + if ($525) { + $526 = (($524) - ($$0197))|0; + HEAP32[(20884)>>2] = $526; + $527 = HEAP32[(20896)>>2]|0; + $528 = (($527) + ($$0197)|0); + HEAP32[(20896)>>2] = $528; + $529 = $526 | 1; + $530 = ((($528)) + 4|0); + HEAP32[$530>>2] = $529; + $531 = $$0197 | 3; + $532 = ((($527)) + 4|0); + HEAP32[$532>>2] = $531; + $533 = ((($527)) + 8|0); + $$0 = $533; + STACKTOP = sp;return ($$0|0); + } + $534 = HEAP32[5336]|0; + $535 = ($534|0)==(0); + if ($535) { + HEAP32[(21352)>>2] = 4096; + HEAP32[(21348)>>2] = 4096; + HEAP32[(21356)>>2] = -1; + HEAP32[(21360)>>2] = -1; + HEAP32[(21364)>>2] = 0; + HEAP32[(21316)>>2] = 0; + $536 = $1; + $537 = $536 & -16; + $538 = $537 ^ 1431655768; + HEAP32[$1>>2] = $538; + HEAP32[5336] = $538; + $542 = 4096; + } else { + $$pre$i212 = HEAP32[(21352)>>2]|0; + $542 = $$pre$i212; + } + $539 = (($$0197) + 48)|0; + $540 = (($$0197) + 47)|0; + $541 = (($542) + ($540))|0; + $543 = (0 - ($542))|0; + $544 = $541 & $543; + $545 = ($544>>>0)>($$0197>>>0); + if (!($545)) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + $546 = HEAP32[(21312)>>2]|0; + $547 = ($546|0)==(0); + if (!($547)) { + $548 = HEAP32[(21304)>>2]|0; + $549 = (($548) + ($544))|0; + $550 = ($549>>>0)<=($548>>>0); + $551 = ($549>>>0)>($546>>>0); + $or$cond1$i = $550 | $551; + if ($or$cond1$i) { + $$0 = 0; + STACKTOP = sp;return ($$0|0); + } + } + $552 = HEAP32[(21316)>>2]|0; + $553 = $552 & 4; + $554 = ($553|0)==(0); + L244: do { + if ($554) { + $555 = HEAP32[(20896)>>2]|0; + $556 = ($555|0)==(0|0); + L246: do { + if ($556) { + label = 163; + } else { + $$0$i$i = (21320); + while(1) { + $557 = HEAP32[$$0$i$i>>2]|0; + $558 = ($557>>>0)>($555>>>0); + if (!($558)) { + $559 = ((($$0$i$i)) + 4|0); + $560 = HEAP32[$559>>2]|0; + $561 = (($557) + ($560)|0); + $562 = ($561>>>0)>($555>>>0); + if ($562) { + break; + } + } + $563 = ((($$0$i$i)) + 8|0); + $564 = HEAP32[$563>>2]|0; + $565 = ($564|0)==(0|0); + if ($565) { + label = 163; + break L246; + } else { + $$0$i$i = $564; + } + } + $588 = (($541) - ($524))|0; + $589 = $588 & $543; + $590 = ($589>>>0)<(2147483647); + if ($590) { + $591 = (_sbrk(($589|0))|0); + $592 = HEAP32[$$0$i$i>>2]|0; + $593 = HEAP32[$559>>2]|0; + $594 = (($592) + ($593)|0); + $595 = ($591|0)==($594|0); + if ($595) { + $596 = ($591|0)==((-1)|0); + if ($596) { + $$2234253237$i = $589; + } else { + $$723948$i = $589;$$749$i = $591; + label = 180; + break L244; + } + } else { + $$2247$ph$i = $591;$$2253$ph$i = $589; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } while(0); + do { + if ((label|0) == 163) { + $566 = (_sbrk(0)|0); + $567 = ($566|0)==((-1)|0); + if ($567) { + $$2234253237$i = 0; + } else { + $568 = $566; + $569 = HEAP32[(21348)>>2]|0; + $570 = (($569) + -1)|0; + $571 = $570 & $568; + $572 = ($571|0)==(0); + $573 = (($570) + ($568))|0; + $574 = (0 - ($569))|0; + $575 = $573 & $574; + $576 = (($575) - ($568))|0; + $577 = $572 ? 0 : $576; + $$$i = (($577) + ($544))|0; + $578 = HEAP32[(21304)>>2]|0; + $579 = (($$$i) + ($578))|0; + $580 = ($$$i>>>0)>($$0197>>>0); + $581 = ($$$i>>>0)<(2147483647); + $or$cond$i214 = $580 & $581; + if ($or$cond$i214) { + $582 = HEAP32[(21312)>>2]|0; + $583 = ($582|0)==(0); + if (!($583)) { + $584 = ($579>>>0)<=($578>>>0); + $585 = ($579>>>0)>($582>>>0); + $or$cond2$i215 = $584 | $585; + if ($or$cond2$i215) { + $$2234253237$i = 0; + break; + } + } + $586 = (_sbrk(($$$i|0))|0); + $587 = ($586|0)==($566|0); + if ($587) { + $$723948$i = $$$i;$$749$i = $566; + label = 180; + break L244; + } else { + $$2247$ph$i = $586;$$2253$ph$i = $$$i; + label = 171; + } + } else { + $$2234253237$i = 0; + } + } + } + } while(0); + do { + if ((label|0) == 171) { + $597 = (0 - ($$2253$ph$i))|0; + $598 = ($$2247$ph$i|0)!=((-1)|0); + $599 = ($$2253$ph$i>>>0)<(2147483647); + $or$cond7$i = $599 & $598; + $600 = ($539>>>0)>($$2253$ph$i>>>0); + $or$cond10$i = $600 & $or$cond7$i; + if (!($or$cond10$i)) { + $610 = ($$2247$ph$i|0)==((-1)|0); + if ($610) { + $$2234253237$i = 0; + break; + } else { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + $601 = HEAP32[(21352)>>2]|0; + $602 = (($540) - ($$2253$ph$i))|0; + $603 = (($602) + ($601))|0; + $604 = (0 - ($601))|0; + $605 = $603 & $604; + $606 = ($605>>>0)<(2147483647); + if (!($606)) { + $$723948$i = $$2253$ph$i;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + $607 = (_sbrk(($605|0))|0); + $608 = ($607|0)==((-1)|0); + if ($608) { + (_sbrk(($597|0))|0); + $$2234253237$i = 0; + break; + } else { + $609 = (($605) + ($$2253$ph$i))|0; + $$723948$i = $609;$$749$i = $$2247$ph$i; + label = 180; + break L244; + } + } + } while(0); + $611 = HEAP32[(21316)>>2]|0; + $612 = $611 | 4; + HEAP32[(21316)>>2] = $612; + $$4236$i = $$2234253237$i; + label = 178; + } else { + $$4236$i = 0; + label = 178; + } + } while(0); + if ((label|0) == 178) { + $613 = ($544>>>0)<(2147483647); + if ($613) { + $614 = (_sbrk(($544|0))|0); + $615 = (_sbrk(0)|0); + $616 = ($614|0)!=((-1)|0); + $617 = ($615|0)!=((-1)|0); + $or$cond5$i = $616 & $617; + $618 = ($614>>>0)<($615>>>0); + $or$cond11$i = $618 & $or$cond5$i; + $619 = $615; + $620 = $614; + $621 = (($619) - ($620))|0; + $622 = (($$0197) + 40)|0; + $623 = ($621>>>0)>($622>>>0); + $$$4236$i = $623 ? $621 : $$4236$i; + $or$cond11$not$i = $or$cond11$i ^ 1; + $624 = ($614|0)==((-1)|0); + $not$$i216 = $623 ^ 1; + $625 = $624 | $not$$i216; + $or$cond50$i = $625 | $or$cond11$not$i; + if (!($or$cond50$i)) { + $$723948$i = $$$4236$i;$$749$i = $614; + label = 180; + } + } + } + if ((label|0) == 180) { + $626 = HEAP32[(21304)>>2]|0; + $627 = (($626) + ($$723948$i))|0; + HEAP32[(21304)>>2] = $627; + $628 = HEAP32[(21308)>>2]|0; + $629 = ($627>>>0)>($628>>>0); + if ($629) { + HEAP32[(21308)>>2] = $627; + } + $630 = HEAP32[(20896)>>2]|0; + $631 = ($630|0)==(0|0); + do { + if ($631) { + $632 = HEAP32[(20888)>>2]|0; + $633 = ($632|0)==(0|0); + $634 = ($$749$i>>>0)<($632>>>0); + $or$cond12$i = $633 | $634; + if ($or$cond12$i) { + HEAP32[(20888)>>2] = $$749$i; + } + HEAP32[(21320)>>2] = $$749$i; + HEAP32[(21324)>>2] = $$723948$i; + HEAP32[(21332)>>2] = 0; + $635 = HEAP32[5336]|0; + HEAP32[(20908)>>2] = $635; + HEAP32[(20904)>>2] = -1; + $$01$i$i = 0; + while(1) { + $636 = $$01$i$i << 1; + $637 = (20912 + ($636<<2)|0); + $638 = ((($637)) + 12|0); + HEAP32[$638>>2] = $637; + $639 = ((($637)) + 8|0); + HEAP32[$639>>2] = $637; + $640 = (($$01$i$i) + 1)|0; + $exitcond$i$i = ($640|0)==(32); + if ($exitcond$i$i) { + break; + } else { + $$01$i$i = $640; + } + } + $641 = (($$723948$i) + -40)|0; + $642 = ((($$749$i)) + 8|0); + $643 = $642; + $644 = $643 & 7; + $645 = ($644|0)==(0); + $646 = (0 - ($643))|0; + $647 = $646 & 7; + $648 = $645 ? 0 : $647; + $649 = (($$749$i) + ($648)|0); + $650 = (($641) - ($648))|0; + HEAP32[(20896)>>2] = $649; + HEAP32[(20884)>>2] = $650; + $651 = $650 | 1; + $652 = ((($649)) + 4|0); + HEAP32[$652>>2] = $651; + $653 = (($649) + ($650)|0); + $654 = ((($653)) + 4|0); + HEAP32[$654>>2] = 40; + $655 = HEAP32[(21360)>>2]|0; + HEAP32[(20900)>>2] = $655; + } else { + $$024371$i = (21320); + while(1) { + $656 = HEAP32[$$024371$i>>2]|0; + $657 = ((($$024371$i)) + 4|0); + $658 = HEAP32[$657>>2]|0; + $659 = (($656) + ($658)|0); + $660 = ($$749$i|0)==($659|0); + if ($660) { + label = 190; + break; + } + $661 = ((($$024371$i)) + 8|0); + $662 = HEAP32[$661>>2]|0; + $663 = ($662|0)==(0|0); + if ($663) { + break; + } else { + $$024371$i = $662; + } + } + if ((label|0) == 190) { + $664 = ((($$024371$i)) + 12|0); + $665 = HEAP32[$664>>2]|0; + $666 = $665 & 8; + $667 = ($666|0)==(0); + if ($667) { + $668 = ($630>>>0)>=($656>>>0); + $669 = ($630>>>0)<($$749$i>>>0); + $or$cond51$i = $669 & $668; + if ($or$cond51$i) { + $670 = (($658) + ($$723948$i))|0; + HEAP32[$657>>2] = $670; + $671 = HEAP32[(20884)>>2]|0; + $672 = ((($630)) + 8|0); + $673 = $672; + $674 = $673 & 7; + $675 = ($674|0)==(0); + $676 = (0 - ($673))|0; + $677 = $676 & 7; + $678 = $675 ? 0 : $677; + $679 = (($630) + ($678)|0); + $680 = (($$723948$i) - ($678))|0; + $681 = (($671) + ($680))|0; + HEAP32[(20896)>>2] = $679; + HEAP32[(20884)>>2] = $681; + $682 = $681 | 1; + $683 = ((($679)) + 4|0); + HEAP32[$683>>2] = $682; + $684 = (($679) + ($681)|0); + $685 = ((($684)) + 4|0); + HEAP32[$685>>2] = 40; + $686 = HEAP32[(21360)>>2]|0; + HEAP32[(20900)>>2] = $686; + break; + } + } + } + $687 = HEAP32[(20888)>>2]|0; + $688 = ($$749$i>>>0)<($687>>>0); + if ($688) { + HEAP32[(20888)>>2] = $$749$i; + $752 = $$749$i; + } else { + $752 = $687; + } + $689 = (($$749$i) + ($$723948$i)|0); + $$124470$i = (21320); + while(1) { + $690 = HEAP32[$$124470$i>>2]|0; + $691 = ($690|0)==($689|0); + if ($691) { + label = 198; + break; + } + $692 = ((($$124470$i)) + 8|0); + $693 = HEAP32[$692>>2]|0; + $694 = ($693|0)==(0|0); + if ($694) { + break; + } else { + $$124470$i = $693; + } + } + if ((label|0) == 198) { + $695 = ((($$124470$i)) + 12|0); + $696 = HEAP32[$695>>2]|0; + $697 = $696 & 8; + $698 = ($697|0)==(0); + if ($698) { + HEAP32[$$124470$i>>2] = $$749$i; + $699 = ((($$124470$i)) + 4|0); + $700 = HEAP32[$699>>2]|0; + $701 = (($700) + ($$723948$i))|0; + HEAP32[$699>>2] = $701; + $702 = ((($$749$i)) + 8|0); + $703 = $702; + $704 = $703 & 7; + $705 = ($704|0)==(0); + $706 = (0 - ($703))|0; + $707 = $706 & 7; + $708 = $705 ? 0 : $707; + $709 = (($$749$i) + ($708)|0); + $710 = ((($689)) + 8|0); + $711 = $710; + $712 = $711 & 7; + $713 = ($712|0)==(0); + $714 = (0 - ($711))|0; + $715 = $714 & 7; + $716 = $713 ? 0 : $715; + $717 = (($689) + ($716)|0); + $718 = $717; + $719 = $709; + $720 = (($718) - ($719))|0; + $721 = (($709) + ($$0197)|0); + $722 = (($720) - ($$0197))|0; + $723 = $$0197 | 3; + $724 = ((($709)) + 4|0); + HEAP32[$724>>2] = $723; + $725 = ($717|0)==($630|0); + do { + if ($725) { + $726 = HEAP32[(20884)>>2]|0; + $727 = (($726) + ($722))|0; + HEAP32[(20884)>>2] = $727; + HEAP32[(20896)>>2] = $721; + $728 = $727 | 1; + $729 = ((($721)) + 4|0); + HEAP32[$729>>2] = $728; + } else { + $730 = HEAP32[(20892)>>2]|0; + $731 = ($717|0)==($730|0); + if ($731) { + $732 = HEAP32[(20880)>>2]|0; + $733 = (($732) + ($722))|0; + HEAP32[(20880)>>2] = $733; + HEAP32[(20892)>>2] = $721; + $734 = $733 | 1; + $735 = ((($721)) + 4|0); + HEAP32[$735>>2] = $734; + $736 = (($721) + ($733)|0); + HEAP32[$736>>2] = $733; + break; + } + $737 = ((($717)) + 4|0); + $738 = HEAP32[$737>>2]|0; + $739 = $738 & 3; + $740 = ($739|0)==(1); + if ($740) { + $741 = $738 & -8; + $742 = $738 >>> 3; + $743 = ($738>>>0)<(256); + L314: do { + if ($743) { + $744 = ((($717)) + 8|0); + $745 = HEAP32[$744>>2]|0; + $746 = ((($717)) + 12|0); + $747 = HEAP32[$746>>2]|0; + $748 = $742 << 1; + $749 = (20912 + ($748<<2)|0); + $750 = ($745|0)==($749|0); + do { + if (!($750)) { + $751 = ($745>>>0)<($752>>>0); + if ($751) { + _abort(); + // unreachable; + } + $753 = ((($745)) + 12|0); + $754 = HEAP32[$753>>2]|0; + $755 = ($754|0)==($717|0); + if ($755) { + break; + } + _abort(); + // unreachable; + } + } while(0); + $756 = ($747|0)==($745|0); + if ($756) { + $757 = 1 << $742; + $758 = $757 ^ -1; + $759 = HEAP32[5218]|0; + $760 = $759 & $758; + HEAP32[5218] = $760; + break; + } + $761 = ($747|0)==($749|0); + do { + if ($761) { + $$pre10$i$i = ((($747)) + 8|0); + $$pre$phi11$i$iZ2D = $$pre10$i$i; + } else { + $762 = ($747>>>0)<($752>>>0); + if ($762) { + _abort(); + // unreachable; + } + $763 = ((($747)) + 8|0); + $764 = HEAP32[$763>>2]|0; + $765 = ($764|0)==($717|0); + if ($765) { + $$pre$phi11$i$iZ2D = $763; + break; + } + _abort(); + // unreachable; + } + } while(0); + $766 = ((($745)) + 12|0); + HEAP32[$766>>2] = $747; + HEAP32[$$pre$phi11$i$iZ2D>>2] = $745; + } else { + $767 = ((($717)) + 24|0); + $768 = HEAP32[$767>>2]|0; + $769 = ((($717)) + 12|0); + $770 = HEAP32[$769>>2]|0; + $771 = ($770|0)==($717|0); + do { + if ($771) { + $781 = ((($717)) + 16|0); + $782 = ((($781)) + 4|0); + $783 = HEAP32[$782>>2]|0; + $784 = ($783|0)==(0|0); + if ($784) { + $785 = HEAP32[$781>>2]|0; + $786 = ($785|0)==(0|0); + if ($786) { + $$3$i$i = 0; + break; + } else { + $$1291$i$i = $785;$$1293$i$i = $781; + } + } else { + $$1291$i$i = $783;$$1293$i$i = $782; + } + while(1) { + $787 = ((($$1291$i$i)) + 20|0); + $788 = HEAP32[$787>>2]|0; + $789 = ($788|0)==(0|0); + if (!($789)) { + $$1291$i$i = $788;$$1293$i$i = $787; + continue; + } + $790 = ((($$1291$i$i)) + 16|0); + $791 = HEAP32[$790>>2]|0; + $792 = ($791|0)==(0|0); + if ($792) { + break; + } else { + $$1291$i$i = $791;$$1293$i$i = $790; + } + } + $793 = ($$1293$i$i>>>0)<($752>>>0); + if ($793) { + _abort(); + // unreachable; + } else { + HEAP32[$$1293$i$i>>2] = 0; + $$3$i$i = $$1291$i$i; + break; + } + } else { + $772 = ((($717)) + 8|0); + $773 = HEAP32[$772>>2]|0; + $774 = ($773>>>0)<($752>>>0); + if ($774) { + _abort(); + // unreachable; + } + $775 = ((($773)) + 12|0); + $776 = HEAP32[$775>>2]|0; + $777 = ($776|0)==($717|0); + if (!($777)) { + _abort(); + // unreachable; + } + $778 = ((($770)) + 8|0); + $779 = HEAP32[$778>>2]|0; + $780 = ($779|0)==($717|0); + if ($780) { + HEAP32[$775>>2] = $770; + HEAP32[$778>>2] = $773; + $$3$i$i = $770; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $794 = ($768|0)==(0|0); + if ($794) { + break; + } + $795 = ((($717)) + 28|0); + $796 = HEAP32[$795>>2]|0; + $797 = (21176 + ($796<<2)|0); + $798 = HEAP32[$797>>2]|0; + $799 = ($717|0)==($798|0); + do { + if ($799) { + HEAP32[$797>>2] = $$3$i$i; + $cond$i$i = ($$3$i$i|0)==(0|0); + if (!($cond$i$i)) { + break; + } + $800 = 1 << $796; + $801 = $800 ^ -1; + $802 = HEAP32[(20876)>>2]|0; + $803 = $802 & $801; + HEAP32[(20876)>>2] = $803; + break L314; + } else { + $804 = HEAP32[(20888)>>2]|0; + $805 = ($768>>>0)<($804>>>0); + if ($805) { + _abort(); + // unreachable; + } else { + $806 = ((($768)) + 16|0); + $807 = HEAP32[$806>>2]|0; + $not$$i17$i = ($807|0)!=($717|0); + $$sink1$i$i = $not$$i17$i&1; + $808 = (((($768)) + 16|0) + ($$sink1$i$i<<2)|0); + HEAP32[$808>>2] = $$3$i$i; + $809 = ($$3$i$i|0)==(0|0); + if ($809) { + break L314; + } else { + break; + } + } + } + } while(0); + $810 = HEAP32[(20888)>>2]|0; + $811 = ($$3$i$i>>>0)<($810>>>0); + if ($811) { + _abort(); + // unreachable; + } + $812 = ((($$3$i$i)) + 24|0); + HEAP32[$812>>2] = $768; + $813 = ((($717)) + 16|0); + $814 = HEAP32[$813>>2]|0; + $815 = ($814|0)==(0|0); + do { + if (!($815)) { + $816 = ($814>>>0)<($810>>>0); + if ($816) { + _abort(); + // unreachable; + } else { + $817 = ((($$3$i$i)) + 16|0); + HEAP32[$817>>2] = $814; + $818 = ((($814)) + 24|0); + HEAP32[$818>>2] = $$3$i$i; + break; + } + } + } while(0); + $819 = ((($813)) + 4|0); + $820 = HEAP32[$819>>2]|0; + $821 = ($820|0)==(0|0); + if ($821) { + break; + } + $822 = HEAP32[(20888)>>2]|0; + $823 = ($820>>>0)<($822>>>0); + if ($823) { + _abort(); + // unreachable; + } else { + $824 = ((($$3$i$i)) + 20|0); + HEAP32[$824>>2] = $820; + $825 = ((($820)) + 24|0); + HEAP32[$825>>2] = $$3$i$i; + break; + } + } + } while(0); + $826 = (($717) + ($741)|0); + $827 = (($741) + ($722))|0; + $$0$i18$i = $826;$$0287$i$i = $827; + } else { + $$0$i18$i = $717;$$0287$i$i = $722; + } + $828 = ((($$0$i18$i)) + 4|0); + $829 = HEAP32[$828>>2]|0; + $830 = $829 & -2; + HEAP32[$828>>2] = $830; + $831 = $$0287$i$i | 1; + $832 = ((($721)) + 4|0); + HEAP32[$832>>2] = $831; + $833 = (($721) + ($$0287$i$i)|0); + HEAP32[$833>>2] = $$0287$i$i; + $834 = $$0287$i$i >>> 3; + $835 = ($$0287$i$i>>>0)<(256); + if ($835) { + $836 = $834 << 1; + $837 = (20912 + ($836<<2)|0); + $838 = HEAP32[5218]|0; + $839 = 1 << $834; + $840 = $838 & $839; + $841 = ($840|0)==(0); + do { + if ($841) { + $842 = $838 | $839; + HEAP32[5218] = $842; + $$pre$i19$i = ((($837)) + 8|0); + $$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i; + } else { + $843 = ((($837)) + 8|0); + $844 = HEAP32[$843>>2]|0; + $845 = HEAP32[(20888)>>2]|0; + $846 = ($844>>>0)<($845>>>0); + if (!($846)) { + $$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843; + break; + } + _abort(); + // unreachable; + } + } while(0); + HEAP32[$$pre$phi$i20$iZ2D>>2] = $721; + $847 = ((($$0295$i$i)) + 12|0); + HEAP32[$847>>2] = $721; + $848 = ((($721)) + 8|0); + HEAP32[$848>>2] = $$0295$i$i; + $849 = ((($721)) + 12|0); + HEAP32[$849>>2] = $837; + break; + } + $850 = $$0287$i$i >>> 8; + $851 = ($850|0)==(0); + do { + if ($851) { + $$0296$i$i = 0; + } else { + $852 = ($$0287$i$i>>>0)>(16777215); + if ($852) { + $$0296$i$i = 31; + break; + } + $853 = (($850) + 1048320)|0; + $854 = $853 >>> 16; + $855 = $854 & 8; + $856 = $850 << $855; + $857 = (($856) + 520192)|0; + $858 = $857 >>> 16; + $859 = $858 & 4; + $860 = $859 | $855; + $861 = $856 << $859; + $862 = (($861) + 245760)|0; + $863 = $862 >>> 16; + $864 = $863 & 2; + $865 = $860 | $864; + $866 = (14 - ($865))|0; + $867 = $861 << $864; + $868 = $867 >>> 15; + $869 = (($866) + ($868))|0; + $870 = $869 << 1; + $871 = (($869) + 7)|0; + $872 = $$0287$i$i >>> $871; + $873 = $872 & 1; + $874 = $873 | $870; + $$0296$i$i = $874; + } + } while(0); + $875 = (21176 + ($$0296$i$i<<2)|0); + $876 = ((($721)) + 28|0); + HEAP32[$876>>2] = $$0296$i$i; + $877 = ((($721)) + 16|0); + $878 = ((($877)) + 4|0); + HEAP32[$878>>2] = 0; + HEAP32[$877>>2] = 0; + $879 = HEAP32[(20876)>>2]|0; + $880 = 1 << $$0296$i$i; + $881 = $879 & $880; + $882 = ($881|0)==(0); + if ($882) { + $883 = $879 | $880; + HEAP32[(20876)>>2] = $883; + HEAP32[$875>>2] = $721; + $884 = ((($721)) + 24|0); + HEAP32[$884>>2] = $875; + $885 = ((($721)) + 12|0); + HEAP32[$885>>2] = $721; + $886 = ((($721)) + 8|0); + HEAP32[$886>>2] = $721; + break; + } + $887 = HEAP32[$875>>2]|0; + $888 = ($$0296$i$i|0)==(31); + $889 = $$0296$i$i >>> 1; + $890 = (25 - ($889))|0; + $891 = $888 ? 0 : $890; + $892 = $$0287$i$i << $891; + $$0288$i$i = $892;$$0289$i$i = $887; + while(1) { + $893 = ((($$0289$i$i)) + 4|0); + $894 = HEAP32[$893>>2]|0; + $895 = $894 & -8; + $896 = ($895|0)==($$0287$i$i|0); + if ($896) { + label = 265; + break; + } + $897 = $$0288$i$i >>> 31; + $898 = (((($$0289$i$i)) + 16|0) + ($897<<2)|0); + $899 = $$0288$i$i << 1; + $900 = HEAP32[$898>>2]|0; + $901 = ($900|0)==(0|0); + if ($901) { + label = 262; + break; + } else { + $$0288$i$i = $899;$$0289$i$i = $900; + } + } + if ((label|0) == 262) { + $902 = HEAP32[(20888)>>2]|0; + $903 = ($898>>>0)<($902>>>0); + if ($903) { + _abort(); + // unreachable; + } else { + HEAP32[$898>>2] = $721; + $904 = ((($721)) + 24|0); + HEAP32[$904>>2] = $$0289$i$i; + $905 = ((($721)) + 12|0); + HEAP32[$905>>2] = $721; + $906 = ((($721)) + 8|0); + HEAP32[$906>>2] = $721; + break; + } + } + else if ((label|0) == 265) { + $907 = ((($$0289$i$i)) + 8|0); + $908 = HEAP32[$907>>2]|0; + $909 = HEAP32[(20888)>>2]|0; + $910 = ($908>>>0)>=($909>>>0); + $not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0); + $911 = $910 & $not$7$i$i; + if ($911) { + $912 = ((($908)) + 12|0); + HEAP32[$912>>2] = $721; + HEAP32[$907>>2] = $721; + $913 = ((($721)) + 8|0); + HEAP32[$913>>2] = $908; + $914 = ((($721)) + 12|0); + HEAP32[$914>>2] = $$0289$i$i; + $915 = ((($721)) + 24|0); + HEAP32[$915>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $1047 = ((($709)) + 8|0); + $$0 = $1047; + STACKTOP = sp;return ($$0|0); + } + } + $$0$i$i$i = (21320); + while(1) { + $916 = HEAP32[$$0$i$i$i>>2]|0; + $917 = ($916>>>0)>($630>>>0); + if (!($917)) { + $918 = ((($$0$i$i$i)) + 4|0); + $919 = HEAP32[$918>>2]|0; + $920 = (($916) + ($919)|0); + $921 = ($920>>>0)>($630>>>0); + if ($921) { + break; + } + } + $922 = ((($$0$i$i$i)) + 8|0); + $923 = HEAP32[$922>>2]|0; + $$0$i$i$i = $923; + } + $924 = ((($920)) + -47|0); + $925 = ((($924)) + 8|0); + $926 = $925; + $927 = $926 & 7; + $928 = ($927|0)==(0); + $929 = (0 - ($926))|0; + $930 = $929 & 7; + $931 = $928 ? 0 : $930; + $932 = (($924) + ($931)|0); + $933 = ((($630)) + 16|0); + $934 = ($932>>>0)<($933>>>0); + $935 = $934 ? $630 : $932; + $936 = ((($935)) + 8|0); + $937 = ((($935)) + 24|0); + $938 = (($$723948$i) + -40)|0; + $939 = ((($$749$i)) + 8|0); + $940 = $939; + $941 = $940 & 7; + $942 = ($941|0)==(0); + $943 = (0 - ($940))|0; + $944 = $943 & 7; + $945 = $942 ? 0 : $944; + $946 = (($$749$i) + ($945)|0); + $947 = (($938) - ($945))|0; + HEAP32[(20896)>>2] = $946; + HEAP32[(20884)>>2] = $947; + $948 = $947 | 1; + $949 = ((($946)) + 4|0); + HEAP32[$949>>2] = $948; + $950 = (($946) + ($947)|0); + $951 = ((($950)) + 4|0); + HEAP32[$951>>2] = 40; + $952 = HEAP32[(21360)>>2]|0; + HEAP32[(20900)>>2] = $952; + $953 = ((($935)) + 4|0); + HEAP32[$953>>2] = 27; + ;HEAP32[$936>>2]=HEAP32[(21320)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(21320)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(21320)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(21320)+12>>2]|0; + HEAP32[(21320)>>2] = $$749$i; + HEAP32[(21324)>>2] = $$723948$i; + HEAP32[(21332)>>2] = 0; + HEAP32[(21328)>>2] = $936; + $955 = $937; + while(1) { + $954 = ((($955)) + 4|0); + HEAP32[$954>>2] = 7; + $956 = ((($955)) + 8|0); + $957 = ($956>>>0)<($920>>>0); + if ($957) { + $955 = $954; + } else { + break; + } + } + $958 = ($935|0)==($630|0); + if (!($958)) { + $959 = $935; + $960 = $630; + $961 = (($959) - ($960))|0; + $962 = HEAP32[$953>>2]|0; + $963 = $962 & -2; + HEAP32[$953>>2] = $963; + $964 = $961 | 1; + $965 = ((($630)) + 4|0); + HEAP32[$965>>2] = $964; + HEAP32[$935>>2] = $961; + $966 = $961 >>> 3; + $967 = ($961>>>0)<(256); + if ($967) { + $968 = $966 << 1; + $969 = (20912 + ($968<<2)|0); + $970 = HEAP32[5218]|0; + $971 = 1 << $966; + $972 = $970 & $971; + $973 = ($972|0)==(0); + if ($973) { + $974 = $970 | $971; + HEAP32[5218] = $974; + $$pre$i$i = ((($969)) + 8|0); + $$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i; + } else { + $975 = ((($969)) + 8|0); + $976 = HEAP32[$975>>2]|0; + $977 = HEAP32[(20888)>>2]|0; + $978 = ($976>>>0)<($977>>>0); + if ($978) { + _abort(); + // unreachable; + } else { + $$0211$i$i = $976;$$pre$phi$i$iZ2D = $975; + } + } + HEAP32[$$pre$phi$i$iZ2D>>2] = $630; + $979 = ((($$0211$i$i)) + 12|0); + HEAP32[$979>>2] = $630; + $980 = ((($630)) + 8|0); + HEAP32[$980>>2] = $$0211$i$i; + $981 = ((($630)) + 12|0); + HEAP32[$981>>2] = $969; + break; + } + $982 = $961 >>> 8; + $983 = ($982|0)==(0); + if ($983) { + $$0212$i$i = 0; + } else { + $984 = ($961>>>0)>(16777215); + if ($984) { + $$0212$i$i = 31; + } else { + $985 = (($982) + 1048320)|0; + $986 = $985 >>> 16; + $987 = $986 & 8; + $988 = $982 << $987; + $989 = (($988) + 520192)|0; + $990 = $989 >>> 16; + $991 = $990 & 4; + $992 = $991 | $987; + $993 = $988 << $991; + $994 = (($993) + 245760)|0; + $995 = $994 >>> 16; + $996 = $995 & 2; + $997 = $992 | $996; + $998 = (14 - ($997))|0; + $999 = $993 << $996; + $1000 = $999 >>> 15; + $1001 = (($998) + ($1000))|0; + $1002 = $1001 << 1; + $1003 = (($1001) + 7)|0; + $1004 = $961 >>> $1003; + $1005 = $1004 & 1; + $1006 = $1005 | $1002; + $$0212$i$i = $1006; + } + } + $1007 = (21176 + ($$0212$i$i<<2)|0); + $1008 = ((($630)) + 28|0); + HEAP32[$1008>>2] = $$0212$i$i; + $1009 = ((($630)) + 20|0); + HEAP32[$1009>>2] = 0; + HEAP32[$933>>2] = 0; + $1010 = HEAP32[(20876)>>2]|0; + $1011 = 1 << $$0212$i$i; + $1012 = $1010 & $1011; + $1013 = ($1012|0)==(0); + if ($1013) { + $1014 = $1010 | $1011; + HEAP32[(20876)>>2] = $1014; + HEAP32[$1007>>2] = $630; + $1015 = ((($630)) + 24|0); + HEAP32[$1015>>2] = $1007; + $1016 = ((($630)) + 12|0); + HEAP32[$1016>>2] = $630; + $1017 = ((($630)) + 8|0); + HEAP32[$1017>>2] = $630; + break; + } + $1018 = HEAP32[$1007>>2]|0; + $1019 = ($$0212$i$i|0)==(31); + $1020 = $$0212$i$i >>> 1; + $1021 = (25 - ($1020))|0; + $1022 = $1019 ? 0 : $1021; + $1023 = $961 << $1022; + $$0206$i$i = $1023;$$0207$i$i = $1018; + while(1) { + $1024 = ((($$0207$i$i)) + 4|0); + $1025 = HEAP32[$1024>>2]|0; + $1026 = $1025 & -8; + $1027 = ($1026|0)==($961|0); + if ($1027) { + label = 292; + break; + } + $1028 = $$0206$i$i >>> 31; + $1029 = (((($$0207$i$i)) + 16|0) + ($1028<<2)|0); + $1030 = $$0206$i$i << 1; + $1031 = HEAP32[$1029>>2]|0; + $1032 = ($1031|0)==(0|0); + if ($1032) { + label = 289; + break; + } else { + $$0206$i$i = $1030;$$0207$i$i = $1031; + } + } + if ((label|0) == 289) { + $1033 = HEAP32[(20888)>>2]|0; + $1034 = ($1029>>>0)<($1033>>>0); + if ($1034) { + _abort(); + // unreachable; + } else { + HEAP32[$1029>>2] = $630; + $1035 = ((($630)) + 24|0); + HEAP32[$1035>>2] = $$0207$i$i; + $1036 = ((($630)) + 12|0); + HEAP32[$1036>>2] = $630; + $1037 = ((($630)) + 8|0); + HEAP32[$1037>>2] = $630; + break; + } + } + else if ((label|0) == 292) { + $1038 = ((($$0207$i$i)) + 8|0); + $1039 = HEAP32[$1038>>2]|0; + $1040 = HEAP32[(20888)>>2]|0; + $1041 = ($1039>>>0)>=($1040>>>0); + $not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0); + $1042 = $1041 & $not$$i$i; + if ($1042) { + $1043 = ((($1039)) + 12|0); + HEAP32[$1043>>2] = $630; + HEAP32[$1038>>2] = $630; + $1044 = ((($630)) + 8|0); + HEAP32[$1044>>2] = $1039; + $1045 = ((($630)) + 12|0); + HEAP32[$1045>>2] = $$0207$i$i; + $1046 = ((($630)) + 24|0); + HEAP32[$1046>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } + } while(0); + $1048 = HEAP32[(20884)>>2]|0; + $1049 = ($1048>>>0)>($$0197>>>0); + if ($1049) { + $1050 = (($1048) - ($$0197))|0; + HEAP32[(20884)>>2] = $1050; + $1051 = HEAP32[(20896)>>2]|0; + $1052 = (($1051) + ($$0197)|0); + HEAP32[(20896)>>2] = $1052; + $1053 = $1050 | 1; + $1054 = ((($1052)) + 4|0); + HEAP32[$1054>>2] = $1053; + $1055 = $$0197 | 3; + $1056 = ((($1051)) + 4|0); + HEAP32[$1056>>2] = $1055; + $1057 = ((($1051)) + 8|0); + $$0 = $1057; + STACKTOP = sp;return ($$0|0); + } + } + $1058 = (___errno_location()|0); + HEAP32[$1058>>2] = 12; + $$0 = 0; + STACKTOP = sp;return ($$0|0); +} +function _free($0) { + $0 = $0|0; + var $$0212$i = 0, $$0212$in$i = 0, $$0383 = 0, $$0384 = 0, $$0396 = 0, $$0403 = 0, $$1 = 0, $$1382 = 0, $$1387 = 0, $$1390 = 0, $$1398 = 0, $$1402 = 0, $$2 = 0, $$3 = 0, $$3400 = 0, $$pre = 0, $$pre$phi443Z2D = 0, $$pre$phi445Z2D = 0, $$pre$phiZ2D = 0, $$pre442 = 0; + var $$pre444 = 0, $$sink3 = 0, $$sink5 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; + var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; + var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0; + var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0; + var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0; + var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0; + var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0; + var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0; + var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0; + var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0; + var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0; + var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0; + var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; + var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; + var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; + var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; + var $99 = 0, $cond421 = 0, $cond422 = 0, $not$ = 0, $not$405 = 0, $not$437 = 0, label = 0, sp = 0; + sp = STACKTOP; + $1 = ($0|0)==(0|0); + if ($1) { + return; + } + $2 = ((($0)) + -8|0); + $3 = HEAP32[(20888)>>2]|0; + $4 = ($2>>>0)<($3>>>0); + if ($4) { + _abort(); + // unreachable; + } + $5 = ((($0)) + -4|0); + $6 = HEAP32[$5>>2]|0; + $7 = $6 & 3; + $8 = ($7|0)==(1); + if ($8) { + _abort(); + // unreachable; + } + $9 = $6 & -8; + $10 = (($2) + ($9)|0); + $11 = $6 & 1; + $12 = ($11|0)==(0); + L10: do { + if ($12) { + $13 = HEAP32[$2>>2]|0; + $14 = ($7|0)==(0); + if ($14) { + return; + } + $15 = (0 - ($13))|0; + $16 = (($2) + ($15)|0); + $17 = (($13) + ($9))|0; + $18 = ($16>>>0)<($3>>>0); + if ($18) { + _abort(); + // unreachable; + } + $19 = HEAP32[(20892)>>2]|0; + $20 = ($16|0)==($19|0); + if ($20) { + $104 = ((($10)) + 4|0); + $105 = HEAP32[$104>>2]|0; + $106 = $105 & 3; + $107 = ($106|0)==(3); + if (!($107)) { + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $108 = (($16) + ($17)|0); + $109 = ((($16)) + 4|0); + $110 = $17 | 1; + $111 = $105 & -2; + HEAP32[(20880)>>2] = $17; + HEAP32[$104>>2] = $111; + HEAP32[$109>>2] = $110; + HEAP32[$108>>2] = $17; + return; + } + $21 = $13 >>> 3; + $22 = ($13>>>0)<(256); + if ($22) { + $23 = ((($16)) + 8|0); + $24 = HEAP32[$23>>2]|0; + $25 = ((($16)) + 12|0); + $26 = HEAP32[$25>>2]|0; + $27 = $21 << 1; + $28 = (20912 + ($27<<2)|0); + $29 = ($24|0)==($28|0); + if (!($29)) { + $30 = ($24>>>0)<($3>>>0); + if ($30) { + _abort(); + // unreachable; + } + $31 = ((($24)) + 12|0); + $32 = HEAP32[$31>>2]|0; + $33 = ($32|0)==($16|0); + if (!($33)) { + _abort(); + // unreachable; + } + } + $34 = ($26|0)==($24|0); + if ($34) { + $35 = 1 << $21; + $36 = $35 ^ -1; + $37 = HEAP32[5218]|0; + $38 = $37 & $36; + HEAP32[5218] = $38; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $39 = ($26|0)==($28|0); + if ($39) { + $$pre444 = ((($26)) + 8|0); + $$pre$phi445Z2D = $$pre444; + } else { + $40 = ($26>>>0)<($3>>>0); + if ($40) { + _abort(); + // unreachable; + } + $41 = ((($26)) + 8|0); + $42 = HEAP32[$41>>2]|0; + $43 = ($42|0)==($16|0); + if ($43) { + $$pre$phi445Z2D = $41; + } else { + _abort(); + // unreachable; + } + } + $44 = ((($24)) + 12|0); + HEAP32[$44>>2] = $26; + HEAP32[$$pre$phi445Z2D>>2] = $24; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + $45 = ((($16)) + 24|0); + $46 = HEAP32[$45>>2]|0; + $47 = ((($16)) + 12|0); + $48 = HEAP32[$47>>2]|0; + $49 = ($48|0)==($16|0); + do { + if ($49) { + $59 = ((($16)) + 16|0); + $60 = ((($59)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = ($61|0)==(0|0); + if ($62) { + $63 = HEAP32[$59>>2]|0; + $64 = ($63|0)==(0|0); + if ($64) { + $$3 = 0; + break; + } else { + $$1387 = $63;$$1390 = $59; + } + } else { + $$1387 = $61;$$1390 = $60; + } + while(1) { + $65 = ((($$1387)) + 20|0); + $66 = HEAP32[$65>>2]|0; + $67 = ($66|0)==(0|0); + if (!($67)) { + $$1387 = $66;$$1390 = $65; + continue; + } + $68 = ((($$1387)) + 16|0); + $69 = HEAP32[$68>>2]|0; + $70 = ($69|0)==(0|0); + if ($70) { + break; + } else { + $$1387 = $69;$$1390 = $68; + } + } + $71 = ($$1390>>>0)<($3>>>0); + if ($71) { + _abort(); + // unreachable; + } else { + HEAP32[$$1390>>2] = 0; + $$3 = $$1387; + break; + } + } else { + $50 = ((($16)) + 8|0); + $51 = HEAP32[$50>>2]|0; + $52 = ($51>>>0)<($3>>>0); + if ($52) { + _abort(); + // unreachable; + } + $53 = ((($51)) + 12|0); + $54 = HEAP32[$53>>2]|0; + $55 = ($54|0)==($16|0); + if (!($55)) { + _abort(); + // unreachable; + } + $56 = ((($48)) + 8|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==($16|0); + if ($58) { + HEAP32[$53>>2] = $48; + HEAP32[$56>>2] = $51; + $$3 = $48; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $72 = ($46|0)==(0|0); + if ($72) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $73 = ((($16)) + 28|0); + $74 = HEAP32[$73>>2]|0; + $75 = (21176 + ($74<<2)|0); + $76 = HEAP32[$75>>2]|0; + $77 = ($16|0)==($76|0); + do { + if ($77) { + HEAP32[$75>>2] = $$3; + $cond421 = ($$3|0)==(0|0); + if ($cond421) { + $78 = 1 << $74; + $79 = $78 ^ -1; + $80 = HEAP32[(20876)>>2]|0; + $81 = $80 & $79; + HEAP32[(20876)>>2] = $81; + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } + } else { + $82 = HEAP32[(20888)>>2]|0; + $83 = ($46>>>0)<($82>>>0); + if ($83) { + _abort(); + // unreachable; + } else { + $84 = ((($46)) + 16|0); + $85 = HEAP32[$84>>2]|0; + $not$405 = ($85|0)!=($16|0); + $$sink3 = $not$405&1; + $86 = (((($46)) + 16|0) + ($$sink3<<2)|0); + HEAP32[$86>>2] = $$3; + $87 = ($$3|0)==(0|0); + if ($87) { + $$1 = $16;$$1382 = $17;$113 = $16; + break L10; + } else { + break; + } + } + } + } while(0); + $88 = HEAP32[(20888)>>2]|0; + $89 = ($$3>>>0)<($88>>>0); + if ($89) { + _abort(); + // unreachable; + } + $90 = ((($$3)) + 24|0); + HEAP32[$90>>2] = $46; + $91 = ((($16)) + 16|0); + $92 = HEAP32[$91>>2]|0; + $93 = ($92|0)==(0|0); + do { + if (!($93)) { + $94 = ($92>>>0)<($88>>>0); + if ($94) { + _abort(); + // unreachable; + } else { + $95 = ((($$3)) + 16|0); + HEAP32[$95>>2] = $92; + $96 = ((($92)) + 24|0); + HEAP32[$96>>2] = $$3; + break; + } + } + } while(0); + $97 = ((($91)) + 4|0); + $98 = HEAP32[$97>>2]|0; + $99 = ($98|0)==(0|0); + if ($99) { + $$1 = $16;$$1382 = $17;$113 = $16; + } else { + $100 = HEAP32[(20888)>>2]|0; + $101 = ($98>>>0)<($100>>>0); + if ($101) { + _abort(); + // unreachable; + } else { + $102 = ((($$3)) + 20|0); + HEAP32[$102>>2] = $98; + $103 = ((($98)) + 24|0); + HEAP32[$103>>2] = $$3; + $$1 = $16;$$1382 = $17;$113 = $16; + break; + } + } + } + } else { + $$1 = $2;$$1382 = $9;$113 = $2; + } + } while(0); + $112 = ($113>>>0)<($10>>>0); + if (!($112)) { + _abort(); + // unreachable; + } + $114 = ((($10)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = $115 & 1; + $117 = ($116|0)==(0); + if ($117) { + _abort(); + // unreachable; + } + $118 = $115 & 2; + $119 = ($118|0)==(0); + if ($119) { + $120 = HEAP32[(20896)>>2]|0; + $121 = ($10|0)==($120|0); + $122 = HEAP32[(20892)>>2]|0; + if ($121) { + $123 = HEAP32[(20884)>>2]|0; + $124 = (($123) + ($$1382))|0; + HEAP32[(20884)>>2] = $124; + HEAP32[(20896)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = ($$1|0)==($122|0); + if (!($127)) { + return; + } + HEAP32[(20892)>>2] = 0; + HEAP32[(20880)>>2] = 0; + return; + } + $128 = ($10|0)==($122|0); + if ($128) { + $129 = HEAP32[(20880)>>2]|0; + $130 = (($129) + ($$1382))|0; + HEAP32[(20880)>>2] = $130; + HEAP32[(20892)>>2] = $113; + $131 = $130 | 1; + $132 = ((($$1)) + 4|0); + HEAP32[$132>>2] = $131; + $133 = (($113) + ($130)|0); + HEAP32[$133>>2] = $130; + return; + } + $134 = $115 & -8; + $135 = (($134) + ($$1382))|0; + $136 = $115 >>> 3; + $137 = ($115>>>0)<(256); + L108: do { + if ($137) { + $138 = ((($10)) + 8|0); + $139 = HEAP32[$138>>2]|0; + $140 = ((($10)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = $136 << 1; + $143 = (20912 + ($142<<2)|0); + $144 = ($139|0)==($143|0); + if (!($144)) { + $145 = HEAP32[(20888)>>2]|0; + $146 = ($139>>>0)<($145>>>0); + if ($146) { + _abort(); + // unreachable; + } + $147 = ((($139)) + 12|0); + $148 = HEAP32[$147>>2]|0; + $149 = ($148|0)==($10|0); + if (!($149)) { + _abort(); + // unreachable; + } + } + $150 = ($141|0)==($139|0); + if ($150) { + $151 = 1 << $136; + $152 = $151 ^ -1; + $153 = HEAP32[5218]|0; + $154 = $153 & $152; + HEAP32[5218] = $154; + break; + } + $155 = ($141|0)==($143|0); + if ($155) { + $$pre442 = ((($141)) + 8|0); + $$pre$phi443Z2D = $$pre442; + } else { + $156 = HEAP32[(20888)>>2]|0; + $157 = ($141>>>0)<($156>>>0); + if ($157) { + _abort(); + // unreachable; + } + $158 = ((($141)) + 8|0); + $159 = HEAP32[$158>>2]|0; + $160 = ($159|0)==($10|0); + if ($160) { + $$pre$phi443Z2D = $158; + } else { + _abort(); + // unreachable; + } + } + $161 = ((($139)) + 12|0); + HEAP32[$161>>2] = $141; + HEAP32[$$pre$phi443Z2D>>2] = $139; + } else { + $162 = ((($10)) + 24|0); + $163 = HEAP32[$162>>2]|0; + $164 = ((($10)) + 12|0); + $165 = HEAP32[$164>>2]|0; + $166 = ($165|0)==($10|0); + do { + if ($166) { + $177 = ((($10)) + 16|0); + $178 = ((($177)) + 4|0); + $179 = HEAP32[$178>>2]|0; + $180 = ($179|0)==(0|0); + if ($180) { + $181 = HEAP32[$177>>2]|0; + $182 = ($181|0)==(0|0); + if ($182) { + $$3400 = 0; + break; + } else { + $$1398 = $181;$$1402 = $177; + } + } else { + $$1398 = $179;$$1402 = $178; + } + while(1) { + $183 = ((($$1398)) + 20|0); + $184 = HEAP32[$183>>2]|0; + $185 = ($184|0)==(0|0); + if (!($185)) { + $$1398 = $184;$$1402 = $183; + continue; + } + $186 = ((($$1398)) + 16|0); + $187 = HEAP32[$186>>2]|0; + $188 = ($187|0)==(0|0); + if ($188) { + break; + } else { + $$1398 = $187;$$1402 = $186; + } + } + $189 = HEAP32[(20888)>>2]|0; + $190 = ($$1402>>>0)<($189>>>0); + if ($190) { + _abort(); + // unreachable; + } else { + HEAP32[$$1402>>2] = 0; + $$3400 = $$1398; + break; + } + } else { + $167 = ((($10)) + 8|0); + $168 = HEAP32[$167>>2]|0; + $169 = HEAP32[(20888)>>2]|0; + $170 = ($168>>>0)<($169>>>0); + if ($170) { + _abort(); + // unreachable; + } + $171 = ((($168)) + 12|0); + $172 = HEAP32[$171>>2]|0; + $173 = ($172|0)==($10|0); + if (!($173)) { + _abort(); + // unreachable; + } + $174 = ((($165)) + 8|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==($10|0); + if ($176) { + HEAP32[$171>>2] = $165; + HEAP32[$174>>2] = $168; + $$3400 = $165; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $191 = ($163|0)==(0|0); + if (!($191)) { + $192 = ((($10)) + 28|0); + $193 = HEAP32[$192>>2]|0; + $194 = (21176 + ($193<<2)|0); + $195 = HEAP32[$194>>2]|0; + $196 = ($10|0)==($195|0); + do { + if ($196) { + HEAP32[$194>>2] = $$3400; + $cond422 = ($$3400|0)==(0|0); + if ($cond422) { + $197 = 1 << $193; + $198 = $197 ^ -1; + $199 = HEAP32[(20876)>>2]|0; + $200 = $199 & $198; + HEAP32[(20876)>>2] = $200; + break L108; + } + } else { + $201 = HEAP32[(20888)>>2]|0; + $202 = ($163>>>0)<($201>>>0); + if ($202) { + _abort(); + // unreachable; + } else { + $203 = ((($163)) + 16|0); + $204 = HEAP32[$203>>2]|0; + $not$ = ($204|0)!=($10|0); + $$sink5 = $not$&1; + $205 = (((($163)) + 16|0) + ($$sink5<<2)|0); + HEAP32[$205>>2] = $$3400; + $206 = ($$3400|0)==(0|0); + if ($206) { + break L108; + } else { + break; + } + } + } + } while(0); + $207 = HEAP32[(20888)>>2]|0; + $208 = ($$3400>>>0)<($207>>>0); + if ($208) { + _abort(); + // unreachable; + } + $209 = ((($$3400)) + 24|0); + HEAP32[$209>>2] = $163; + $210 = ((($10)) + 16|0); + $211 = HEAP32[$210>>2]|0; + $212 = ($211|0)==(0|0); + do { + if (!($212)) { + $213 = ($211>>>0)<($207>>>0); + if ($213) { + _abort(); + // unreachable; + } else { + $214 = ((($$3400)) + 16|0); + HEAP32[$214>>2] = $211; + $215 = ((($211)) + 24|0); + HEAP32[$215>>2] = $$3400; + break; + } + } + } while(0); + $216 = ((($210)) + 4|0); + $217 = HEAP32[$216>>2]|0; + $218 = ($217|0)==(0|0); + if (!($218)) { + $219 = HEAP32[(20888)>>2]|0; + $220 = ($217>>>0)<($219>>>0); + if ($220) { + _abort(); + // unreachable; + } else { + $221 = ((($$3400)) + 20|0); + HEAP32[$221>>2] = $217; + $222 = ((($217)) + 24|0); + HEAP32[$222>>2] = $$3400; + break; + } + } + } + } + } while(0); + $223 = $135 | 1; + $224 = ((($$1)) + 4|0); + HEAP32[$224>>2] = $223; + $225 = (($113) + ($135)|0); + HEAP32[$225>>2] = $135; + $226 = HEAP32[(20892)>>2]|0; + $227 = ($$1|0)==($226|0); + if ($227) { + HEAP32[(20880)>>2] = $135; + return; + } else { + $$2 = $135; + } + } else { + $228 = $115 & -2; + HEAP32[$114>>2] = $228; + $229 = $$1382 | 1; + $230 = ((($$1)) + 4|0); + HEAP32[$230>>2] = $229; + $231 = (($113) + ($$1382)|0); + HEAP32[$231>>2] = $$1382; + $$2 = $$1382; + } + $232 = $$2 >>> 3; + $233 = ($$2>>>0)<(256); + if ($233) { + $234 = $232 << 1; + $235 = (20912 + ($234<<2)|0); + $236 = HEAP32[5218]|0; + $237 = 1 << $232; + $238 = $236 & $237; + $239 = ($238|0)==(0); + if ($239) { + $240 = $236 | $237; + HEAP32[5218] = $240; + $$pre = ((($235)) + 8|0); + $$0403 = $235;$$pre$phiZ2D = $$pre; + } else { + $241 = ((($235)) + 8|0); + $242 = HEAP32[$241>>2]|0; + $243 = HEAP32[(20888)>>2]|0; + $244 = ($242>>>0)<($243>>>0); + if ($244) { + _abort(); + // unreachable; + } else { + $$0403 = $242;$$pre$phiZ2D = $241; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $245 = ((($$0403)) + 12|0); + HEAP32[$245>>2] = $$1; + $246 = ((($$1)) + 8|0); + HEAP32[$246>>2] = $$0403; + $247 = ((($$1)) + 12|0); + HEAP32[$247>>2] = $235; + return; + } + $248 = $$2 >>> 8; + $249 = ($248|0)==(0); + if ($249) { + $$0396 = 0; + } else { + $250 = ($$2>>>0)>(16777215); + if ($250) { + $$0396 = 31; + } else { + $251 = (($248) + 1048320)|0; + $252 = $251 >>> 16; + $253 = $252 & 8; + $254 = $248 << $253; + $255 = (($254) + 520192)|0; + $256 = $255 >>> 16; + $257 = $256 & 4; + $258 = $257 | $253; + $259 = $254 << $257; + $260 = (($259) + 245760)|0; + $261 = $260 >>> 16; + $262 = $261 & 2; + $263 = $258 | $262; + $264 = (14 - ($263))|0; + $265 = $259 << $262; + $266 = $265 >>> 15; + $267 = (($264) + ($266))|0; + $268 = $267 << 1; + $269 = (($267) + 7)|0; + $270 = $$2 >>> $269; + $271 = $270 & 1; + $272 = $271 | $268; + $$0396 = $272; + } + } + $273 = (21176 + ($$0396<<2)|0); + $274 = ((($$1)) + 28|0); + HEAP32[$274>>2] = $$0396; + $275 = ((($$1)) + 16|0); + $276 = ((($$1)) + 20|0); + HEAP32[$276>>2] = 0; + HEAP32[$275>>2] = 0; + $277 = HEAP32[(20876)>>2]|0; + $278 = 1 << $$0396; + $279 = $277 & $278; + $280 = ($279|0)==(0); + do { + if ($280) { + $281 = $277 | $278; + HEAP32[(20876)>>2] = $281; + HEAP32[$273>>2] = $$1; + $282 = ((($$1)) + 24|0); + HEAP32[$282>>2] = $273; + $283 = ((($$1)) + 12|0); + HEAP32[$283>>2] = $$1; + $284 = ((($$1)) + 8|0); + HEAP32[$284>>2] = $$1; + } else { + $285 = HEAP32[$273>>2]|0; + $286 = ($$0396|0)==(31); + $287 = $$0396 >>> 1; + $288 = (25 - ($287))|0; + $289 = $286 ? 0 : $288; + $290 = $$2 << $289; + $$0383 = $290;$$0384 = $285; + while(1) { + $291 = ((($$0384)) + 4|0); + $292 = HEAP32[$291>>2]|0; + $293 = $292 & -8; + $294 = ($293|0)==($$2|0); + if ($294) { + label = 124; + break; + } + $295 = $$0383 >>> 31; + $296 = (((($$0384)) + 16|0) + ($295<<2)|0); + $297 = $$0383 << 1; + $298 = HEAP32[$296>>2]|0; + $299 = ($298|0)==(0|0); + if ($299) { + label = 121; + break; + } else { + $$0383 = $297;$$0384 = $298; + } + } + if ((label|0) == 121) { + $300 = HEAP32[(20888)>>2]|0; + $301 = ($296>>>0)<($300>>>0); + if ($301) { + _abort(); + // unreachable; + } else { + HEAP32[$296>>2] = $$1; + $302 = ((($$1)) + 24|0); + HEAP32[$302>>2] = $$0384; + $303 = ((($$1)) + 12|0); + HEAP32[$303>>2] = $$1; + $304 = ((($$1)) + 8|0); + HEAP32[$304>>2] = $$1; + break; + } + } + else if ((label|0) == 124) { + $305 = ((($$0384)) + 8|0); + $306 = HEAP32[$305>>2]|0; + $307 = HEAP32[(20888)>>2]|0; + $308 = ($306>>>0)>=($307>>>0); + $not$437 = ($$0384>>>0)>=($307>>>0); + $309 = $308 & $not$437; + if ($309) { + $310 = ((($306)) + 12|0); + HEAP32[$310>>2] = $$1; + HEAP32[$305>>2] = $$1; + $311 = ((($$1)) + 8|0); + HEAP32[$311>>2] = $306; + $312 = ((($$1)) + 12|0); + HEAP32[$312>>2] = $$0384; + $313 = ((($$1)) + 24|0); + HEAP32[$313>>2] = 0; + break; + } else { + _abort(); + // unreachable; + } + } + } + } while(0); + $314 = HEAP32[(20904)>>2]|0; + $315 = (($314) + -1)|0; + HEAP32[(20904)>>2] = $315; + $316 = ($315|0)==(0); + if ($316) { + $$0212$in$i = (21328); + } else { + return; + } + while(1) { + $$0212$i = HEAP32[$$0212$in$i>>2]|0; + $317 = ($$0212$i|0)==(0|0); + $318 = ((($$0212$i)) + 8|0); + if ($317) { + break; + } else { + $$0212$in$i = $318; + } + } + HEAP32[(20904)>>2] = -1; + return; +} +function _realloc($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; + var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ($0|0)==(0|0); + if ($2) { + $3 = (_malloc($1)|0); + $$1 = $3; + return ($$1|0); + } + $4 = ($1>>>0)>(4294967231); + if ($4) { + $5 = (___errno_location()|0); + HEAP32[$5>>2] = 12; + $$1 = 0; + return ($$1|0); + } + $6 = ($1>>>0)<(11); + $7 = (($1) + 11)|0; + $8 = $7 & -8; + $9 = $6 ? 16 : $8; + $10 = ((($0)) + -8|0); + $11 = (_try_realloc_chunk($10,$9)|0); + $12 = ($11|0)==(0|0); + if (!($12)) { + $13 = ((($11)) + 8|0); + $$1 = $13; + return ($$1|0); + } + $14 = (_malloc($1)|0); + $15 = ($14|0)==(0|0); + if ($15) { + $$1 = 0; + return ($$1|0); + } + $16 = ((($0)) + -4|0); + $17 = HEAP32[$16>>2]|0; + $18 = $17 & -8; + $19 = $17 & 3; + $20 = ($19|0)==(0); + $21 = $20 ? 8 : 4; + $22 = (($18) - ($21))|0; + $23 = ($22>>>0)<($1>>>0); + $24 = $23 ? $22 : $1; + _memcpy(($14|0),($0|0),($24|0))|0; + _free($0); + $$1 = $14; + return ($$1|0); +} +function _try_realloc_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$1272 = 0, $$1275 = 0, $$2 = 0, $$3 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$sink1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; + var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; + var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; + var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; + var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; + var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; + var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; + var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; + var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; + var $cond = 0, $not$ = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = ((($0)) + 4|0); + $3 = HEAP32[$2>>2]|0; + $4 = $3 & -8; + $5 = (($0) + ($4)|0); + $6 = HEAP32[(20888)>>2]|0; + $7 = $3 & 3; + $notlhs = ($0>>>0)>=($6>>>0); + $notrhs = ($7|0)!=(1); + $or$cond$not = $notrhs & $notlhs; + $8 = ($0>>>0)<($5>>>0); + $or$cond3 = $or$cond$not & $8; + if (!($or$cond3)) { + _abort(); + // unreachable; + } + $9 = ((($5)) + 4|0); + $10 = HEAP32[$9>>2]|0; + $11 = $10 & 1; + $12 = ($11|0)==(0); + if ($12) { + _abort(); + // unreachable; + } + $13 = ($7|0)==(0); + if ($13) { + $14 = ($1>>>0)<(256); + if ($14) { + $$2 = 0; + return ($$2|0); + } + $15 = (($1) + 4)|0; + $16 = ($4>>>0)<($15>>>0); + if (!($16)) { + $17 = (($4) - ($1))|0; + $18 = HEAP32[(21352)>>2]|0; + $19 = $18 << 1; + $20 = ($17>>>0)>($19>>>0); + if (!($20)) { + $$2 = $0; + return ($$2|0); + } + } + $$2 = 0; + return ($$2|0); + } + $21 = ($4>>>0)<($1>>>0); + if (!($21)) { + $22 = (($4) - ($1))|0; + $23 = ($22>>>0)>(15); + if (!($23)) { + $$2 = $0; + return ($$2|0); + } + $24 = (($0) + ($1)|0); + $25 = $3 & 1; + $26 = $25 | $1; + $27 = $26 | 2; + HEAP32[$2>>2] = $27; + $28 = ((($24)) + 4|0); + $29 = $22 | 3; + HEAP32[$28>>2] = $29; + $30 = (($24) + ($22)|0); + $31 = ((($30)) + 4|0); + $32 = HEAP32[$31>>2]|0; + $33 = $32 | 1; + HEAP32[$31>>2] = $33; + _dispose_chunk($24,$22); + $$2 = $0; + return ($$2|0); + } + $34 = HEAP32[(20896)>>2]|0; + $35 = ($5|0)==($34|0); + if ($35) { + $36 = HEAP32[(20884)>>2]|0; + $37 = (($36) + ($4))|0; + $38 = ($37>>>0)>($1>>>0); + $39 = (($37) - ($1))|0; + $40 = (($0) + ($1)|0); + if (!($38)) { + $$2 = 0; + return ($$2|0); + } + $41 = $39 | 1; + $42 = ((($40)) + 4|0); + $43 = $3 & 1; + $44 = $43 | $1; + $45 = $44 | 2; + HEAP32[$2>>2] = $45; + HEAP32[$42>>2] = $41; + HEAP32[(20896)>>2] = $40; + HEAP32[(20884)>>2] = $39; + $$2 = $0; + return ($$2|0); + } + $46 = HEAP32[(20892)>>2]|0; + $47 = ($5|0)==($46|0); + if ($47) { + $48 = HEAP32[(20880)>>2]|0; + $49 = (($48) + ($4))|0; + $50 = ($49>>>0)<($1>>>0); + if ($50) { + $$2 = 0; + return ($$2|0); + } + $51 = (($49) - ($1))|0; + $52 = ($51>>>0)>(15); + $53 = $3 & 1; + if ($52) { + $54 = (($0) + ($1)|0); + $55 = (($54) + ($51)|0); + $56 = $53 | $1; + $57 = $56 | 2; + HEAP32[$2>>2] = $57; + $58 = ((($54)) + 4|0); + $59 = $51 | 1; + HEAP32[$58>>2] = $59; + HEAP32[$55>>2] = $51; + $60 = ((($55)) + 4|0); + $61 = HEAP32[$60>>2]|0; + $62 = $61 & -2; + HEAP32[$60>>2] = $62; + $storemerge = $54;$storemerge1 = $51; + } else { + $63 = $53 | $49; + $64 = $63 | 2; + HEAP32[$2>>2] = $64; + $65 = (($0) + ($49)|0); + $66 = ((($65)) + 4|0); + $67 = HEAP32[$66>>2]|0; + $68 = $67 | 1; + HEAP32[$66>>2] = $68; + $storemerge = 0;$storemerge1 = 0; + } + HEAP32[(20880)>>2] = $storemerge1; + HEAP32[(20892)>>2] = $storemerge; + $$2 = $0; + return ($$2|0); + } + $69 = $10 & 2; + $70 = ($69|0)==(0); + if (!($70)) { + $$2 = 0; + return ($$2|0); + } + $71 = $10 & -8; + $72 = (($71) + ($4))|0; + $73 = ($72>>>0)<($1>>>0); + if ($73) { + $$2 = 0; + return ($$2|0); + } + $74 = (($72) - ($1))|0; + $75 = $10 >>> 3; + $76 = ($10>>>0)<(256); + L49: do { + if ($76) { + $77 = ((($5)) + 8|0); + $78 = HEAP32[$77>>2]|0; + $79 = ((($5)) + 12|0); + $80 = HEAP32[$79>>2]|0; + $81 = $75 << 1; + $82 = (20912 + ($81<<2)|0); + $83 = ($78|0)==($82|0); + if (!($83)) { + $84 = ($78>>>0)<($6>>>0); + if ($84) { + _abort(); + // unreachable; + } + $85 = ((($78)) + 12|0); + $86 = HEAP32[$85>>2]|0; + $87 = ($86|0)==($5|0); + if (!($87)) { + _abort(); + // unreachable; + } + } + $88 = ($80|0)==($78|0); + if ($88) { + $89 = 1 << $75; + $90 = $89 ^ -1; + $91 = HEAP32[5218]|0; + $92 = $91 & $90; + HEAP32[5218] = $92; + break; + } + $93 = ($80|0)==($82|0); + if ($93) { + $$pre = ((($80)) + 8|0); + $$pre$phiZ2D = $$pre; + } else { + $94 = ($80>>>0)<($6>>>0); + if ($94) { + _abort(); + // unreachable; + } + $95 = ((($80)) + 8|0); + $96 = HEAP32[$95>>2]|0; + $97 = ($96|0)==($5|0); + if ($97) { + $$pre$phiZ2D = $95; + } else { + _abort(); + // unreachable; + } + } + $98 = ((($78)) + 12|0); + HEAP32[$98>>2] = $80; + HEAP32[$$pre$phiZ2D>>2] = $78; + } else { + $99 = ((($5)) + 24|0); + $100 = HEAP32[$99>>2]|0; + $101 = ((($5)) + 12|0); + $102 = HEAP32[$101>>2]|0; + $103 = ($102|0)==($5|0); + do { + if ($103) { + $113 = ((($5)) + 16|0); + $114 = ((($113)) + 4|0); + $115 = HEAP32[$114>>2]|0; + $116 = ($115|0)==(0|0); + if ($116) { + $117 = HEAP32[$113>>2]|0; + $118 = ($117|0)==(0|0); + if ($118) { + $$3 = 0; + break; + } else { + $$1272 = $117;$$1275 = $113; + } + } else { + $$1272 = $115;$$1275 = $114; + } + while(1) { + $119 = ((($$1272)) + 20|0); + $120 = HEAP32[$119>>2]|0; + $121 = ($120|0)==(0|0); + if (!($121)) { + $$1272 = $120;$$1275 = $119; + continue; + } + $122 = ((($$1272)) + 16|0); + $123 = HEAP32[$122>>2]|0; + $124 = ($123|0)==(0|0); + if ($124) { + break; + } else { + $$1272 = $123;$$1275 = $122; + } + } + $125 = ($$1275>>>0)<($6>>>0); + if ($125) { + _abort(); + // unreachable; + } else { + HEAP32[$$1275>>2] = 0; + $$3 = $$1272; + break; + } + } else { + $104 = ((($5)) + 8|0); + $105 = HEAP32[$104>>2]|0; + $106 = ($105>>>0)<($6>>>0); + if ($106) { + _abort(); + // unreachable; + } + $107 = ((($105)) + 12|0); + $108 = HEAP32[$107>>2]|0; + $109 = ($108|0)==($5|0); + if (!($109)) { + _abort(); + // unreachable; + } + $110 = ((($102)) + 8|0); + $111 = HEAP32[$110>>2]|0; + $112 = ($111|0)==($5|0); + if ($112) { + HEAP32[$107>>2] = $102; + HEAP32[$110>>2] = $105; + $$3 = $102; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $126 = ($100|0)==(0|0); + if (!($126)) { + $127 = ((($5)) + 28|0); + $128 = HEAP32[$127>>2]|0; + $129 = (21176 + ($128<<2)|0); + $130 = HEAP32[$129>>2]|0; + $131 = ($5|0)==($130|0); + do { + if ($131) { + HEAP32[$129>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $132 = 1 << $128; + $133 = $132 ^ -1; + $134 = HEAP32[(20876)>>2]|0; + $135 = $134 & $133; + HEAP32[(20876)>>2] = $135; + break L49; + } + } else { + $136 = HEAP32[(20888)>>2]|0; + $137 = ($100>>>0)<($136>>>0); + if ($137) { + _abort(); + // unreachable; + } else { + $138 = ((($100)) + 16|0); + $139 = HEAP32[$138>>2]|0; + $not$ = ($139|0)!=($5|0); + $$sink1 = $not$&1; + $140 = (((($100)) + 16|0) + ($$sink1<<2)|0); + HEAP32[$140>>2] = $$3; + $141 = ($$3|0)==(0|0); + if ($141) { + break L49; + } else { + break; + } + } + } + } while(0); + $142 = HEAP32[(20888)>>2]|0; + $143 = ($$3>>>0)<($142>>>0); + if ($143) { + _abort(); + // unreachable; + } + $144 = ((($$3)) + 24|0); + HEAP32[$144>>2] = $100; + $145 = ((($5)) + 16|0); + $146 = HEAP32[$145>>2]|0; + $147 = ($146|0)==(0|0); + do { + if (!($147)) { + $148 = ($146>>>0)<($142>>>0); + if ($148) { + _abort(); + // unreachable; + } else { + $149 = ((($$3)) + 16|0); + HEAP32[$149>>2] = $146; + $150 = ((($146)) + 24|0); + HEAP32[$150>>2] = $$3; + break; + } + } + } while(0); + $151 = ((($145)) + 4|0); + $152 = HEAP32[$151>>2]|0; + $153 = ($152|0)==(0|0); + if (!($153)) { + $154 = HEAP32[(20888)>>2]|0; + $155 = ($152>>>0)<($154>>>0); + if ($155) { + _abort(); + // unreachable; + } else { + $156 = ((($$3)) + 20|0); + HEAP32[$156>>2] = $152; + $157 = ((($152)) + 24|0); + HEAP32[$157>>2] = $$3; + break; + } + } + } + } + } while(0); + $158 = ($74>>>0)<(16); + $159 = $3 & 1; + if ($158) { + $160 = $72 | $159; + $161 = $160 | 2; + HEAP32[$2>>2] = $161; + $162 = (($0) + ($72)|0); + $163 = ((($162)) + 4|0); + $164 = HEAP32[$163>>2]|0; + $165 = $164 | 1; + HEAP32[$163>>2] = $165; + $$2 = $0; + return ($$2|0); + } else { + $166 = (($0) + ($1)|0); + $167 = $159 | $1; + $168 = $167 | 2; + HEAP32[$2>>2] = $168; + $169 = ((($166)) + 4|0); + $170 = $74 | 3; + HEAP32[$169>>2] = $170; + $171 = (($166) + ($74)|0); + $172 = ((($171)) + 4|0); + $173 = HEAP32[$172>>2]|0; + $174 = $173 | 1; + HEAP32[$172>>2] = $174; + _dispose_chunk($166,$74); + $$2 = $0; + return ($$2|0); + } + return (0)|0; +} +function _dispose_chunk($0,$1) { + $0 = $0|0; + $1 = $1|0; + var $$0419 = 0, $$0420 = 0, $$0431 = 0, $$0438 = 0, $$1 = 0, $$1418 = 0, $$1426 = 0, $$1429 = 0, $$1433 = 0, $$1437 = 0, $$2 = 0, $$3 = 0, $$3435 = 0, $$pre = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $$pre23 = 0, $$pre25 = 0, $$sink2 = 0; + var $$sink4 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; + var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; + var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; + var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; + var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; + var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; + var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; + var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; + var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; + var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; + var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; + var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; + var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; + var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; + var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; + var $97 = 0, $98 = 0, $99 = 0, $cond = 0, $cond17 = 0, $not$ = 0, $not$1 = 0, $not$19 = 0, label = 0, sp = 0; + sp = STACKTOP; + $2 = (($0) + ($1)|0); + $3 = ((($0)) + 4|0); + $4 = HEAP32[$3>>2]|0; + $5 = $4 & 1; + $6 = ($5|0)==(0); + L1: do { + if ($6) { + $7 = HEAP32[$0>>2]|0; + $8 = $4 & 3; + $9 = ($8|0)==(0); + if ($9) { + return; + } + $10 = (0 - ($7))|0; + $11 = (($0) + ($10)|0); + $12 = (($7) + ($1))|0; + $13 = HEAP32[(20888)>>2]|0; + $14 = ($11>>>0)<($13>>>0); + if ($14) { + _abort(); + // unreachable; + } + $15 = HEAP32[(20892)>>2]|0; + $16 = ($11|0)==($15|0); + if ($16) { + $100 = ((($2)) + 4|0); + $101 = HEAP32[$100>>2]|0; + $102 = $101 & 3; + $103 = ($102|0)==(3); + if (!($103)) { + $$1 = $11;$$1418 = $12; + break; + } + $104 = (($11) + ($12)|0); + $105 = ((($11)) + 4|0); + $106 = $12 | 1; + $107 = $101 & -2; + HEAP32[(20880)>>2] = $12; + HEAP32[$100>>2] = $107; + HEAP32[$105>>2] = $106; + HEAP32[$104>>2] = $12; + return; + } + $17 = $7 >>> 3; + $18 = ($7>>>0)<(256); + if ($18) { + $19 = ((($11)) + 8|0); + $20 = HEAP32[$19>>2]|0; + $21 = ((($11)) + 12|0); + $22 = HEAP32[$21>>2]|0; + $23 = $17 << 1; + $24 = (20912 + ($23<<2)|0); + $25 = ($20|0)==($24|0); + if (!($25)) { + $26 = ($20>>>0)<($13>>>0); + if ($26) { + _abort(); + // unreachable; + } + $27 = ((($20)) + 12|0); + $28 = HEAP32[$27>>2]|0; + $29 = ($28|0)==($11|0); + if (!($29)) { + _abort(); + // unreachable; + } + } + $30 = ($22|0)==($20|0); + if ($30) { + $31 = 1 << $17; + $32 = $31 ^ -1; + $33 = HEAP32[5218]|0; + $34 = $33 & $32; + HEAP32[5218] = $34; + $$1 = $11;$$1418 = $12; + break; + } + $35 = ($22|0)==($24|0); + if ($35) { + $$pre25 = ((($22)) + 8|0); + $$pre$phi26Z2D = $$pre25; + } else { + $36 = ($22>>>0)<($13>>>0); + if ($36) { + _abort(); + // unreachable; + } + $37 = ((($22)) + 8|0); + $38 = HEAP32[$37>>2]|0; + $39 = ($38|0)==($11|0); + if ($39) { + $$pre$phi26Z2D = $37; + } else { + _abort(); + // unreachable; + } + } + $40 = ((($20)) + 12|0); + HEAP32[$40>>2] = $22; + HEAP32[$$pre$phi26Z2D>>2] = $20; + $$1 = $11;$$1418 = $12; + break; + } + $41 = ((($11)) + 24|0); + $42 = HEAP32[$41>>2]|0; + $43 = ((($11)) + 12|0); + $44 = HEAP32[$43>>2]|0; + $45 = ($44|0)==($11|0); + do { + if ($45) { + $55 = ((($11)) + 16|0); + $56 = ((($55)) + 4|0); + $57 = HEAP32[$56>>2]|0; + $58 = ($57|0)==(0|0); + if ($58) { + $59 = HEAP32[$55>>2]|0; + $60 = ($59|0)==(0|0); + if ($60) { + $$3 = 0; + break; + } else { + $$1426 = $59;$$1429 = $55; + } + } else { + $$1426 = $57;$$1429 = $56; + } + while(1) { + $61 = ((($$1426)) + 20|0); + $62 = HEAP32[$61>>2]|0; + $63 = ($62|0)==(0|0); + if (!($63)) { + $$1426 = $62;$$1429 = $61; + continue; + } + $64 = ((($$1426)) + 16|0); + $65 = HEAP32[$64>>2]|0; + $66 = ($65|0)==(0|0); + if ($66) { + break; + } else { + $$1426 = $65;$$1429 = $64; + } + } + $67 = ($$1429>>>0)<($13>>>0); + if ($67) { + _abort(); + // unreachable; + } else { + HEAP32[$$1429>>2] = 0; + $$3 = $$1426; + break; + } + } else { + $46 = ((($11)) + 8|0); + $47 = HEAP32[$46>>2]|0; + $48 = ($47>>>0)<($13>>>0); + if ($48) { + _abort(); + // unreachable; + } + $49 = ((($47)) + 12|0); + $50 = HEAP32[$49>>2]|0; + $51 = ($50|0)==($11|0); + if (!($51)) { + _abort(); + // unreachable; + } + $52 = ((($44)) + 8|0); + $53 = HEAP32[$52>>2]|0; + $54 = ($53|0)==($11|0); + if ($54) { + HEAP32[$49>>2] = $44; + HEAP32[$52>>2] = $47; + $$3 = $44; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $68 = ($42|0)==(0|0); + if ($68) { + $$1 = $11;$$1418 = $12; + } else { + $69 = ((($11)) + 28|0); + $70 = HEAP32[$69>>2]|0; + $71 = (21176 + ($70<<2)|0); + $72 = HEAP32[$71>>2]|0; + $73 = ($11|0)==($72|0); + do { + if ($73) { + HEAP32[$71>>2] = $$3; + $cond = ($$3|0)==(0|0); + if ($cond) { + $74 = 1 << $70; + $75 = $74 ^ -1; + $76 = HEAP32[(20876)>>2]|0; + $77 = $76 & $75; + HEAP32[(20876)>>2] = $77; + $$1 = $11;$$1418 = $12; + break L1; + } + } else { + $78 = HEAP32[(20888)>>2]|0; + $79 = ($42>>>0)<($78>>>0); + if ($79) { + _abort(); + // unreachable; + } else { + $80 = ((($42)) + 16|0); + $81 = HEAP32[$80>>2]|0; + $not$1 = ($81|0)!=($11|0); + $$sink2 = $not$1&1; + $82 = (((($42)) + 16|0) + ($$sink2<<2)|0); + HEAP32[$82>>2] = $$3; + $83 = ($$3|0)==(0|0); + if ($83) { + $$1 = $11;$$1418 = $12; + break L1; + } else { + break; + } + } + } + } while(0); + $84 = HEAP32[(20888)>>2]|0; + $85 = ($$3>>>0)<($84>>>0); + if ($85) { + _abort(); + // unreachable; + } + $86 = ((($$3)) + 24|0); + HEAP32[$86>>2] = $42; + $87 = ((($11)) + 16|0); + $88 = HEAP32[$87>>2]|0; + $89 = ($88|0)==(0|0); + do { + if (!($89)) { + $90 = ($88>>>0)<($84>>>0); + if ($90) { + _abort(); + // unreachable; + } else { + $91 = ((($$3)) + 16|0); + HEAP32[$91>>2] = $88; + $92 = ((($88)) + 24|0); + HEAP32[$92>>2] = $$3; + break; + } + } + } while(0); + $93 = ((($87)) + 4|0); + $94 = HEAP32[$93>>2]|0; + $95 = ($94|0)==(0|0); + if ($95) { + $$1 = $11;$$1418 = $12; + } else { + $96 = HEAP32[(20888)>>2]|0; + $97 = ($94>>>0)<($96>>>0); + if ($97) { + _abort(); + // unreachable; + } else { + $98 = ((($$3)) + 20|0); + HEAP32[$98>>2] = $94; + $99 = ((($94)) + 24|0); + HEAP32[$99>>2] = $$3; + $$1 = $11;$$1418 = $12; + break; + } + } + } + } else { + $$1 = $0;$$1418 = $1; + } + } while(0); + $108 = HEAP32[(20888)>>2]|0; + $109 = ($2>>>0)<($108>>>0); + if ($109) { + _abort(); + // unreachable; + } + $110 = ((($2)) + 4|0); + $111 = HEAP32[$110>>2]|0; + $112 = $111 & 2; + $113 = ($112|0)==(0); + if ($113) { + $114 = HEAP32[(20896)>>2]|0; + $115 = ($2|0)==($114|0); + $116 = HEAP32[(20892)>>2]|0; + if ($115) { + $117 = HEAP32[(20884)>>2]|0; + $118 = (($117) + ($$1418))|0; + HEAP32[(20884)>>2] = $118; + HEAP32[(20896)>>2] = $$1; + $119 = $118 | 1; + $120 = ((($$1)) + 4|0); + HEAP32[$120>>2] = $119; + $121 = ($$1|0)==($116|0); + if (!($121)) { + return; + } + HEAP32[(20892)>>2] = 0; + HEAP32[(20880)>>2] = 0; + return; + } + $122 = ($2|0)==($116|0); + if ($122) { + $123 = HEAP32[(20880)>>2]|0; + $124 = (($123) + ($$1418))|0; + HEAP32[(20880)>>2] = $124; + HEAP32[(20892)>>2] = $$1; + $125 = $124 | 1; + $126 = ((($$1)) + 4|0); + HEAP32[$126>>2] = $125; + $127 = (($$1) + ($124)|0); + HEAP32[$127>>2] = $124; + return; + } + $128 = $111 & -8; + $129 = (($128) + ($$1418))|0; + $130 = $111 >>> 3; + $131 = ($111>>>0)<(256); + L96: do { + if ($131) { + $132 = ((($2)) + 8|0); + $133 = HEAP32[$132>>2]|0; + $134 = ((($2)) + 12|0); + $135 = HEAP32[$134>>2]|0; + $136 = $130 << 1; + $137 = (20912 + ($136<<2)|0); + $138 = ($133|0)==($137|0); + if (!($138)) { + $139 = ($133>>>0)<($108>>>0); + if ($139) { + _abort(); + // unreachable; + } + $140 = ((($133)) + 12|0); + $141 = HEAP32[$140>>2]|0; + $142 = ($141|0)==($2|0); + if (!($142)) { + _abort(); + // unreachable; + } + } + $143 = ($135|0)==($133|0); + if ($143) { + $144 = 1 << $130; + $145 = $144 ^ -1; + $146 = HEAP32[5218]|0; + $147 = $146 & $145; + HEAP32[5218] = $147; + break; + } + $148 = ($135|0)==($137|0); + if ($148) { + $$pre23 = ((($135)) + 8|0); + $$pre$phi24Z2D = $$pre23; + } else { + $149 = ($135>>>0)<($108>>>0); + if ($149) { + _abort(); + // unreachable; + } + $150 = ((($135)) + 8|0); + $151 = HEAP32[$150>>2]|0; + $152 = ($151|0)==($2|0); + if ($152) { + $$pre$phi24Z2D = $150; + } else { + _abort(); + // unreachable; + } + } + $153 = ((($133)) + 12|0); + HEAP32[$153>>2] = $135; + HEAP32[$$pre$phi24Z2D>>2] = $133; + } else { + $154 = ((($2)) + 24|0); + $155 = HEAP32[$154>>2]|0; + $156 = ((($2)) + 12|0); + $157 = HEAP32[$156>>2]|0; + $158 = ($157|0)==($2|0); + do { + if ($158) { + $168 = ((($2)) + 16|0); + $169 = ((($168)) + 4|0); + $170 = HEAP32[$169>>2]|0; + $171 = ($170|0)==(0|0); + if ($171) { + $172 = HEAP32[$168>>2]|0; + $173 = ($172|0)==(0|0); + if ($173) { + $$3435 = 0; + break; + } else { + $$1433 = $172;$$1437 = $168; + } + } else { + $$1433 = $170;$$1437 = $169; + } + while(1) { + $174 = ((($$1433)) + 20|0); + $175 = HEAP32[$174>>2]|0; + $176 = ($175|0)==(0|0); + if (!($176)) { + $$1433 = $175;$$1437 = $174; + continue; + } + $177 = ((($$1433)) + 16|0); + $178 = HEAP32[$177>>2]|0; + $179 = ($178|0)==(0|0); + if ($179) { + break; + } else { + $$1433 = $178;$$1437 = $177; + } + } + $180 = ($$1437>>>0)<($108>>>0); + if ($180) { + _abort(); + // unreachable; + } else { + HEAP32[$$1437>>2] = 0; + $$3435 = $$1433; + break; + } + } else { + $159 = ((($2)) + 8|0); + $160 = HEAP32[$159>>2]|0; + $161 = ($160>>>0)<($108>>>0); + if ($161) { + _abort(); + // unreachable; + } + $162 = ((($160)) + 12|0); + $163 = HEAP32[$162>>2]|0; + $164 = ($163|0)==($2|0); + if (!($164)) { + _abort(); + // unreachable; + } + $165 = ((($157)) + 8|0); + $166 = HEAP32[$165>>2]|0; + $167 = ($166|0)==($2|0); + if ($167) { + HEAP32[$162>>2] = $157; + HEAP32[$165>>2] = $160; + $$3435 = $157; + break; + } else { + _abort(); + // unreachable; + } + } + } while(0); + $181 = ($155|0)==(0|0); + if (!($181)) { + $182 = ((($2)) + 28|0); + $183 = HEAP32[$182>>2]|0; + $184 = (21176 + ($183<<2)|0); + $185 = HEAP32[$184>>2]|0; + $186 = ($2|0)==($185|0); + do { + if ($186) { + HEAP32[$184>>2] = $$3435; + $cond17 = ($$3435|0)==(0|0); + if ($cond17) { + $187 = 1 << $183; + $188 = $187 ^ -1; + $189 = HEAP32[(20876)>>2]|0; + $190 = $189 & $188; + HEAP32[(20876)>>2] = $190; + break L96; + } + } else { + $191 = HEAP32[(20888)>>2]|0; + $192 = ($155>>>0)<($191>>>0); + if ($192) { + _abort(); + // unreachable; + } else { + $193 = ((($155)) + 16|0); + $194 = HEAP32[$193>>2]|0; + $not$ = ($194|0)!=($2|0); + $$sink4 = $not$&1; + $195 = (((($155)) + 16|0) + ($$sink4<<2)|0); + HEAP32[$195>>2] = $$3435; + $196 = ($$3435|0)==(0|0); + if ($196) { + break L96; + } else { + break; + } + } + } + } while(0); + $197 = HEAP32[(20888)>>2]|0; + $198 = ($$3435>>>0)<($197>>>0); + if ($198) { + _abort(); + // unreachable; + } + $199 = ((($$3435)) + 24|0); + HEAP32[$199>>2] = $155; + $200 = ((($2)) + 16|0); + $201 = HEAP32[$200>>2]|0; + $202 = ($201|0)==(0|0); + do { + if (!($202)) { + $203 = ($201>>>0)<($197>>>0); + if ($203) { + _abort(); + // unreachable; + } else { + $204 = ((($$3435)) + 16|0); + HEAP32[$204>>2] = $201; + $205 = ((($201)) + 24|0); + HEAP32[$205>>2] = $$3435; + break; + } + } + } while(0); + $206 = ((($200)) + 4|0); + $207 = HEAP32[$206>>2]|0; + $208 = ($207|0)==(0|0); + if (!($208)) { + $209 = HEAP32[(20888)>>2]|0; + $210 = ($207>>>0)<($209>>>0); + if ($210) { + _abort(); + // unreachable; + } else { + $211 = ((($$3435)) + 20|0); + HEAP32[$211>>2] = $207; + $212 = ((($207)) + 24|0); + HEAP32[$212>>2] = $$3435; + break; + } + } + } + } + } while(0); + $213 = $129 | 1; + $214 = ((($$1)) + 4|0); + HEAP32[$214>>2] = $213; + $215 = (($$1) + ($129)|0); + HEAP32[$215>>2] = $129; + $216 = HEAP32[(20892)>>2]|0; + $217 = ($$1|0)==($216|0); + if ($217) { + HEAP32[(20880)>>2] = $129; + return; + } else { + $$2 = $129; + } + } else { + $218 = $111 & -2; + HEAP32[$110>>2] = $218; + $219 = $$1418 | 1; + $220 = ((($$1)) + 4|0); + HEAP32[$220>>2] = $219; + $221 = (($$1) + ($$1418)|0); + HEAP32[$221>>2] = $$1418; + $$2 = $$1418; + } + $222 = $$2 >>> 3; + $223 = ($$2>>>0)<(256); + if ($223) { + $224 = $222 << 1; + $225 = (20912 + ($224<<2)|0); + $226 = HEAP32[5218]|0; + $227 = 1 << $222; + $228 = $226 & $227; + $229 = ($228|0)==(0); + if ($229) { + $230 = $226 | $227; + HEAP32[5218] = $230; + $$pre = ((($225)) + 8|0); + $$0438 = $225;$$pre$phiZ2D = $$pre; + } else { + $231 = ((($225)) + 8|0); + $232 = HEAP32[$231>>2]|0; + $233 = HEAP32[(20888)>>2]|0; + $234 = ($232>>>0)<($233>>>0); + if ($234) { + _abort(); + // unreachable; + } else { + $$0438 = $232;$$pre$phiZ2D = $231; + } + } + HEAP32[$$pre$phiZ2D>>2] = $$1; + $235 = ((($$0438)) + 12|0); + HEAP32[$235>>2] = $$1; + $236 = ((($$1)) + 8|0); + HEAP32[$236>>2] = $$0438; + $237 = ((($$1)) + 12|0); + HEAP32[$237>>2] = $225; + return; + } + $238 = $$2 >>> 8; + $239 = ($238|0)==(0); + if ($239) { + $$0431 = 0; + } else { + $240 = ($$2>>>0)>(16777215); + if ($240) { + $$0431 = 31; + } else { + $241 = (($238) + 1048320)|0; + $242 = $241 >>> 16; + $243 = $242 & 8; + $244 = $238 << $243; + $245 = (($244) + 520192)|0; + $246 = $245 >>> 16; + $247 = $246 & 4; + $248 = $247 | $243; + $249 = $244 << $247; + $250 = (($249) + 245760)|0; + $251 = $250 >>> 16; + $252 = $251 & 2; + $253 = $248 | $252; + $254 = (14 - ($253))|0; + $255 = $249 << $252; + $256 = $255 >>> 15; + $257 = (($254) + ($256))|0; + $258 = $257 << 1; + $259 = (($257) + 7)|0; + $260 = $$2 >>> $259; + $261 = $260 & 1; + $262 = $261 | $258; + $$0431 = $262; + } + } + $263 = (21176 + ($$0431<<2)|0); + $264 = ((($$1)) + 28|0); + HEAP32[$264>>2] = $$0431; + $265 = ((($$1)) + 16|0); + $266 = ((($$1)) + 20|0); + HEAP32[$266>>2] = 0; + HEAP32[$265>>2] = 0; + $267 = HEAP32[(20876)>>2]|0; + $268 = 1 << $$0431; + $269 = $267 & $268; + $270 = ($269|0)==(0); + if ($270) { + $271 = $267 | $268; + HEAP32[(20876)>>2] = $271; + HEAP32[$263>>2] = $$1; + $272 = ((($$1)) + 24|0); + HEAP32[$272>>2] = $263; + $273 = ((($$1)) + 12|0); + HEAP32[$273>>2] = $$1; + $274 = ((($$1)) + 8|0); + HEAP32[$274>>2] = $$1; + return; + } + $275 = HEAP32[$263>>2]|0; + $276 = ($$0431|0)==(31); + $277 = $$0431 >>> 1; + $278 = (25 - ($277))|0; + $279 = $276 ? 0 : $278; + $280 = $$2 << $279; + $$0419 = $280;$$0420 = $275; + while(1) { + $281 = ((($$0420)) + 4|0); + $282 = HEAP32[$281>>2]|0; + $283 = $282 & -8; + $284 = ($283|0)==($$2|0); + if ($284) { + label = 121; + break; + } + $285 = $$0419 >>> 31; + $286 = (((($$0420)) + 16|0) + ($285<<2)|0); + $287 = $$0419 << 1; + $288 = HEAP32[$286>>2]|0; + $289 = ($288|0)==(0|0); + if ($289) { + label = 118; + break; + } else { + $$0419 = $287;$$0420 = $288; + } + } + if ((label|0) == 118) { + $290 = HEAP32[(20888)>>2]|0; + $291 = ($286>>>0)<($290>>>0); + if ($291) { + _abort(); + // unreachable; + } + HEAP32[$286>>2] = $$1; + $292 = ((($$1)) + 24|0); + HEAP32[$292>>2] = $$0420; + $293 = ((($$1)) + 12|0); + HEAP32[$293>>2] = $$1; + $294 = ((($$1)) + 8|0); + HEAP32[$294>>2] = $$1; + return; + } + else if ((label|0) == 121) { + $295 = ((($$0420)) + 8|0); + $296 = HEAP32[$295>>2]|0; + $297 = HEAP32[(20888)>>2]|0; + $298 = ($296>>>0)>=($297>>>0); + $not$19 = ($$0420>>>0)>=($297>>>0); + $299 = $298 & $not$19; + if (!($299)) { + _abort(); + // unreachable; + } + $300 = ((($296)) + 12|0); + HEAP32[$300>>2] = $$1; + HEAP32[$295>>2] = $$1; + $301 = ((($$1)) + 8|0); + HEAP32[$301>>2] = $296; + $302 = ((($$1)) + 12|0); + HEAP32[$302>>2] = $$0420; + $303 = ((($$1)) + 24|0); + HEAP32[$303>>2] = 0; + return; + } +} +function runPostSets() { +} +function _memset(ptr, value, num) { + ptr = ptr|0; value = value|0; num = num|0; + var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; + end = (ptr + num)|0; + + value = value & 0xff; + if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { + while ((ptr&3) != 0) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + + aligned_end = (end & -4)|0; + block_aligned_end = (aligned_end - 64)|0; + value4 = value | (value << 8) | (value << 16) | (value << 24); + + while((ptr|0) <= (block_aligned_end|0)) { + HEAP32[((ptr)>>2)]=value4; + HEAP32[(((ptr)+(4))>>2)]=value4; + HEAP32[(((ptr)+(8))>>2)]=value4; + HEAP32[(((ptr)+(12))>>2)]=value4; + HEAP32[(((ptr)+(16))>>2)]=value4; + HEAP32[(((ptr)+(20))>>2)]=value4; + HEAP32[(((ptr)+(24))>>2)]=value4; + HEAP32[(((ptr)+(28))>>2)]=value4; + HEAP32[(((ptr)+(32))>>2)]=value4; + HEAP32[(((ptr)+(36))>>2)]=value4; + HEAP32[(((ptr)+(40))>>2)]=value4; + HEAP32[(((ptr)+(44))>>2)]=value4; + HEAP32[(((ptr)+(48))>>2)]=value4; + HEAP32[(((ptr)+(52))>>2)]=value4; + HEAP32[(((ptr)+(56))>>2)]=value4; + HEAP32[(((ptr)+(60))>>2)]=value4; + ptr = (ptr + 64)|0; + } + + while ((ptr|0) < (aligned_end|0) ) { + HEAP32[((ptr)>>2)]=value4; + ptr = (ptr+4)|0; + } + } + // The remaining bytes. + while ((ptr|0) < (end|0)) { + HEAP8[((ptr)>>0)]=value; + ptr = (ptr+1)|0; + } + return (end-num)|0; +} +function _i64Subtract(a, b, c, d) { + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a - c)>>>0; + h = (b - d)>>>0; + h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. + return ((tempRet0 = h,l|0)|0); +} +function _i64Add(a, b, c, d) { + /* + x = a + b*2^32 + y = c + d*2^32 + result = l + h*2^32 + */ + a = a|0; b = b|0; c = c|0; d = d|0; + var l = 0, h = 0; + l = (a + c)>>>0; + h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. + return ((tempRet0 = h,l|0)|0); +} +function _llvm_cttz_i32(x) { + x = x|0; + var ret = 0; + ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); + if ((ret|0) < 8) return ret|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 8)|0; + ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); + if ((ret|0) < 8) return (ret + 16)|0; + return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; +} +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (($n_sroa_1_4_extract_trunc | 0) == 0) { + $4 = ($rem | 0) != 0; + if (($d_sroa_1_4_extract_trunc | 0) == 0) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do { + if (($d_sroa_0_0_extract_trunc | 0) == 0) { + if ($17) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (($n_sroa_0_0_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); + } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; + $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; + } + if (($rem | 0) == 0) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = 0 | $a$0 & -1; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { + $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; + $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = 0 | $a$0 & -1; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + } + } while (0); + if (($sr_1_ph | 0) == 0) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + while (1) { + $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $149 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $152 = $151$0 & 1; + $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; + $r_sroa_0_0_extract_trunc = $154$0; + $r_sroa_1_4_extract_trunc = tempRet0; + $155 = $sr_1202 - 1 | 0; + if (($155 | 0) == 0) { + break; + } else { + $q_sroa_1_1198 = $147; + $q_sroa_0_1199 = $149; + $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; + $sr_1202 = $155; + $carry_0203 = $152; + } + } + $q_sroa_1_1_lcssa = $147; + $q_sroa_0_1_lcssa = $149; + $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; + $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $152; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; + if (($rem | 0) != 0) { + HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; + } + $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; +} +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0; + $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; + return $1$0 | 0; +} +function ___muldsi3($a, $b) { + $a = $a | 0; + $b = $b | 0; + var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; + $1 = $a & 65535; + $2 = $b & 65535; + $3 = Math_imul($2, $1) | 0; + $6 = $a >>> 16; + $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0; + $11 = $b >>> 16; + $12 = Math_imul($11, $1) | 0; + return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; +} +function ___muldi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0; + $x_sroa_0_0_extract_trunc = $a$0; + $y_sroa_0_0_extract_trunc = $b$0; + $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; + $1$1 = tempRet0; + $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; + return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; +} +function _memcpy(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + var aligned_dest_end = 0; + var block_aligned_dest_end = 0; + var dest_end = 0; + // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. + if ((num|0) >= + 8192 + ) { + return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; + } + + ret = dest|0; + dest_end = (dest + num)|0; + if ((dest&3) == (src&3)) { + // The initial unaligned < 4-byte front. + while (dest & 3) { + if ((num|0) == 0) return ret|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + num = (num-1)|0; + } + aligned_dest_end = (dest_end & -4)|0; + block_aligned_dest_end = (aligned_dest_end - 64)|0; + while ((dest|0) <= (block_aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); + HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); + HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); + HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); + HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); + HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); + HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); + HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); + HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); + HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); + HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); + HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); + HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); + HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); + HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); + dest = (dest+64)|0; + src = (src+64)|0; + } + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } else { + // In the unaligned copy case, unroll a bit as well. + aligned_dest_end = (dest_end - 4)|0; + while ((dest|0) < (aligned_dest_end|0) ) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); + HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); + HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); + dest = (dest+4)|0; + src = (src+4)|0; + } + } + // The remaining unaligned < 4 byte tail. + while ((dest|0) < (dest_end|0)) { + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + dest = (dest+1)|0; + src = (src+1)|0; + } + return ret|0; +} +function _memmove(dest, src, num) { + dest = dest|0; src = src|0; num = num|0; + var ret = 0; + if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { + // Unlikely case: Copy backwards in a safe manner + ret = dest; + src = (src + num)|0; + dest = (dest + num)|0; + while ((num|0) > 0) { + dest = (dest - 1)|0; + src = (src - 1)|0; + num = (num - 1)|0; + HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); + } + dest = ret; + } else { + _memcpy(dest, src, num) | 0; + } + return dest | 0; +} +function ___uremdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0; + STACKTOP = __stackBase__; + return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; +} +function _roundf(f) { + f = +f; + return f >= +0 ? +Math_floor(f + +0.5) : +Math_ceil(f - +0.5); // TODO: use fround? +} +function _bitshift64Lshr(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = high >>> bits; + return (low >>> bits) | ((high&ander) << (32 - bits)); + } + tempRet0 = 0; + return (high >>> (bits - 32))|0; +} +function _sbrk(increment) { + increment = increment|0; + var oldDynamicTop = 0; + var oldDynamicTopOnChange = 0; + var newDynamicTop = 0; + var totalMemory = 0; + increment = ((increment + 15) & -16)|0; + oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; + newDynamicTop = oldDynamicTop + increment | 0; + + if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. + | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. + abortOnCannotGrowMemory()|0; + ___setErrNo(12); + return -1; + } + + HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; + totalMemory = getTotalMemory()|0; + if ((newDynamicTop|0) > (totalMemory|0)) { + if ((enlargeMemory()|0) == 0) { + ___setErrNo(12); + HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; + return -1; + } + } + return oldDynamicTop|0; +} +function _bitshift64Shl(low, high, bits) { + low = low|0; high = high|0; bits = bits|0; + var ander = 0; + if ((bits|0) < 32) { + ander = ((1 << bits) - 1)|0; + tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); + return low << bits; + } + tempRet0 = low << (bits - 32); + return 0; +} +function _llvm_bswap_i32(x) { + x = x|0; + return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; +} + + +function dynCall_viiiii(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; + FUNCTION_TABLE_viiiii[index&7](a1|0,a2|0,a3|0,a4|0,a5|0); +} + + +function dynCall_vd(index,a1) { + index = index|0; + a1=+a1; + FUNCTION_TABLE_vd[index&3](+a1); +} + + +function dynCall_vid(index,a1,a2) { + index = index|0; + a1=a1|0; a2=+a2; + FUNCTION_TABLE_vid[index&3](a1|0,+a2); +} + + +function dynCall_vi(index,a1) { + index = index|0; + a1=a1|0; + FUNCTION_TABLE_vi[index&31](a1|0); +} + + +function dynCall_vii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + FUNCTION_TABLE_vii[index&63](a1|0,a2|0); +} + + +function dynCall_ii(index,a1) { + index = index|0; + a1=a1|0; + return FUNCTION_TABLE_ii[index&15](a1|0)|0; +} + + +function dynCall_viddd(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_viddd[index&3](a1|0,+a2,+a3,+a4); +} + + +function dynCall_vidd(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; + FUNCTION_TABLE_vidd[index&7](a1|0,+a2,+a3); +} + + +function dynCall_iiii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0; +} + + +function dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; + FUNCTION_TABLE_viiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0); +} + + +function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; + FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); +} + + +function dynCall_viii(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; + FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0); +} + + +function dynCall_vidddd(index,a1,a2,a3,a4,a5) { + index = index|0; + a1=a1|0; a2=+a2; a3=+a3; a4=+a4; a5=+a5; + FUNCTION_TABLE_vidddd[index&3](a1|0,+a2,+a3,+a4,+a5); +} + + +function dynCall_vdi(index,a1,a2) { + index = index|0; + a1=+a1; a2=a2|0; + FUNCTION_TABLE_vdi[index&1](+a1,a2|0); +} + + +function dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; + FUNCTION_TABLE_viiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0); +} + + +function dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; a7=a7|0; a8=a8|0; a9=a9|0; + FUNCTION_TABLE_viiiiiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0,a7|0,a8|0,a9|0); +} + + +function dynCall_iii(index,a1,a2) { + index = index|0; + a1=a1|0; a2=a2|0; + return FUNCTION_TABLE_iii[index&3](a1|0,a2|0)|0; +} + + +function dynCall_i(index) { + index = index|0; + + return FUNCTION_TABLE_i[index&3]()|0; +} + + +function dynCall_vdddddd(index,a1,a2,a3,a4,a5,a6) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; a5=+a5; a6=+a6; + FUNCTION_TABLE_vdddddd[index&1](+a1,+a2,+a3,+a4,+a5,+a6); +} + + +function dynCall_vdddd(index,a1,a2,a3,a4) { + index = index|0; + a1=+a1; a2=+a2; a3=+a3; a4=+a4; + FUNCTION_TABLE_vdddd[index&3](+a1,+a2,+a3,+a4); +} + + +function dynCall_vdd(index,a1,a2) { + index = index|0; + a1=+a1; a2=+a2; + FUNCTION_TABLE_vdd[index&3](+a1,+a2); +} + + +function dynCall_v(index) { + index = index|0; + + FUNCTION_TABLE_v[index&7](); +} + + +function dynCall_viid(index,a1,a2,a3) { + index = index|0; + a1=a1|0; a2=a2|0; a3=+a3; + FUNCTION_TABLE_viid[index&1](a1|0,a2|0,+a3); +} + + +function dynCall_viiii(index,a1,a2,a3,a4) { + index = index|0; + a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; + FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0); +} + +function b0(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(0); +} +function _emscripten_glUniform4i__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glUniform4i(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glFramebufferTexture2D__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glFramebufferTexture2D(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glShaderBinary__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glShaderBinary(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function _emscripten_glDrawElementsInstanced__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; _emscripten_glDrawElementsInstanced(p0|0,p1|0,p2|0,p3|0,p4|0); +} +function b1(p0) { + p0 = +p0; nullFunc_vd(1); +} +function _emscripten_glClearDepth__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepth(+p0); +} +function _emscripten_glClearDepthf__wrapper(p0) { + p0 = +p0; _emscripten_glClearDepthf(+p0); +} +function _emscripten_glLineWidth__wrapper(p0) { + p0 = +p0; _emscripten_glLineWidth(+p0); +} +function b2(p0,p1) { + p0 = p0|0;p1 = +p1; nullFunc_vid(2); +} +function _emscripten_glUniform1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glUniform1f(p0|0,+p1); +} +function _emscripten_glVertexAttrib1f__wrapper(p0,p1) { + p0 = p0|0;p1 = +p1; _emscripten_glVertexAttrib1f(p0|0,+p1); +} +function b3(p0) { + p0 = p0|0; nullFunc_vi(3); +} +function _emscripten_glDeleteShader__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteShader(p0|0); +} +function _emscripten_glCompileShader__wrapper(p0) { + p0 = p0|0; _emscripten_glCompileShader(p0|0); +} +function _emscripten_glDeleteProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteProgram(p0|0); +} +function _emscripten_glLinkProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glLinkProgram(p0|0); +} +function _emscripten_glUseProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glUseProgram(p0|0); +} +function _emscripten_glValidateProgram__wrapper(p0) { + p0 = p0|0; _emscripten_glValidateProgram(p0|0); +} +function _emscripten_glDeleteObjectARB__wrapper(p0) { + p0 = p0|0; _emscripten_glDeleteObjectARB(p0|0); +} +function _emscripten_glEnableClientState__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableClientState(p0|0); +} +function _emscripten_glClientActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glClientActiveTexture(p0|0); +} +function _emscripten_glBindVertexArray__wrapper(p0) { + p0 = p0|0; _emscripten_glBindVertexArray(p0|0); +} +function _emscripten_glMatrixMode__wrapper(p0) { + p0 = p0|0; _emscripten_glMatrixMode(p0|0); +} +function _emscripten_glLoadMatrixf__wrapper(p0) { + p0 = p0|0; _emscripten_glLoadMatrixf(p0|0); +} +function _emscripten_glEnableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glEnableVertexAttribArray(p0|0); +} +function _emscripten_glDisableVertexAttribArray__wrapper(p0) { + p0 = p0|0; _emscripten_glDisableVertexAttribArray(p0|0); +} +function _emscripten_glDepthFunc__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthFunc(p0|0); +} +function _emscripten_glEnable__wrapper(p0) { + p0 = p0|0; _emscripten_glEnable(p0|0); +} +function _emscripten_glDisable__wrapper(p0) { + p0 = p0|0; _emscripten_glDisable(p0|0); +} +function _emscripten_glFrontFace__wrapper(p0) { + p0 = p0|0; _emscripten_glFrontFace(p0|0); +} +function _emscripten_glCullFace__wrapper(p0) { + p0 = p0|0; _emscripten_glCullFace(p0|0); +} +function _emscripten_glClear__wrapper(p0) { + p0 = p0|0; _emscripten_glClear(p0|0); +} +function _emscripten_glClearStencil__wrapper(p0) { + p0 = p0|0; _emscripten_glClearStencil(p0|0); +} +function _emscripten_glDepthMask__wrapper(p0) { + p0 = p0|0; _emscripten_glDepthMask(p0|0); +} +function _emscripten_glStencilMask__wrapper(p0) { + p0 = p0|0; _emscripten_glStencilMask(p0|0); +} +function _emscripten_glGenerateMipmap__wrapper(p0) { + p0 = p0|0; _emscripten_glGenerateMipmap(p0|0); +} +function _emscripten_glActiveTexture__wrapper(p0) { + p0 = p0|0; _emscripten_glActiveTexture(p0|0); +} +function _emscripten_glBlendEquation__wrapper(p0) { + p0 = p0|0; _emscripten_glBlendEquation(p0|0); +} +function b4(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_vii(4); +} +function _emscripten_glPixelStorei__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glPixelStorei(p0|0,p1|0); +} +function _emscripten_glGetIntegerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetIntegerv(p0|0,p1|0); +} +function _emscripten_glGetFloatv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetFloatv(p0|0,p1|0); +} +function _emscripten_glGetBooleanv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetBooleanv(p0|0,p1|0); +} +function _emscripten_glGenTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenTextures(p0|0,p1|0); +} +function _emscripten_glDeleteTextures__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteTextures(p0|0,p1|0); +} +function _emscripten_glBindTexture__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindTexture(p0|0,p1|0); +} +function _emscripten_glGenBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenBuffers(p0|0,p1|0); +} +function _emscripten_glDeleteBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteBuffers(p0|0,p1|0); +} +function _emscripten_glGenRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenRenderbuffers(p0|0,p1|0); +} +function _emscripten_glDeleteRenderbuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteRenderbuffers(p0|0,p1|0); +} +function _emscripten_glBindRenderbuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindRenderbuffer(p0|0,p1|0); +} +function _emscripten_glUniform1i__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glUniform1i(p0|0,p1|0); +} +function _emscripten_glBindBuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindBuffer(p0|0,p1|0); +} +function _emscripten_glVertexAttrib1fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib1fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib2fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib2fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib3fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib3fv(p0|0,p1|0); +} +function _emscripten_glVertexAttrib4fv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttrib4fv(p0|0,p1|0); +} +function _emscripten_glAttachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glAttachShader(p0|0,p1|0); +} +function _emscripten_glDetachShader__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDetachShader(p0|0,p1|0); +} +function _emscripten_glBindFramebuffer__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindFramebuffer(p0|0,p1|0); +} +function _emscripten_glGenFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenFramebuffers(p0|0,p1|0); +} +function _emscripten_glDeleteFramebuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteFramebuffers(p0|0,p1|0); +} +function _emscripten_glBindProgramARB__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBindProgramARB(p0|0,p1|0); +} +function _emscripten_glGetPointerv__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGetPointerv(p0|0,p1|0); +} +function _emscripten_glGenVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glGenVertexArrays(p0|0,p1|0); +} +function _emscripten_glDeleteVertexArrays__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDeleteVertexArrays(p0|0,p1|0); +} +function _emscripten_glVertexAttribDivisor__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glVertexAttribDivisor(p0|0,p1|0); +} +function _emscripten_glBlendFunc__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendFunc(p0|0,p1|0); +} +function _emscripten_glBlendEquationSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glBlendEquationSeparate(p0|0,p1|0); +} +function _emscripten_glStencilMaskSeparate__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glStencilMaskSeparate(p0|0,p1|0); +} +function _emscripten_glHint__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glHint(p0|0,p1|0); +} +function _emscripten_glDrawBuffers__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; _emscripten_glDrawBuffers(p0|0,p1|0); +} +function b5(p0) { + p0 = p0|0; nullFunc_ii(5);return 0; +} +function _emscripten_glGetString__wrapper(p0) { + p0 = p0|0; return _emscripten_glGetString(p0|0)|0; +} +function _emscripten_glIsTexture__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsTexture(p0|0)|0; +} +function _emscripten_glIsBuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsBuffer(p0|0)|0; +} +function _emscripten_glIsRenderbuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsRenderbuffer(p0|0)|0; +} +function _emscripten_glCreateShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glCreateShader(p0|0)|0; +} +function _emscripten_glIsShader__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsShader(p0|0)|0; +} +function _emscripten_glIsProgram__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsProgram(p0|0)|0; +} +function _emscripten_glIsFramebuffer__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsFramebuffer(p0|0)|0; +} +function _emscripten_glCheckFramebufferStatus__wrapper(p0) { + p0 = p0|0; return _emscripten_glCheckFramebufferStatus(p0|0)|0; +} +function _emscripten_glIsEnabled__wrapper(p0) { + p0 = p0|0; return _emscripten_glIsEnabled(p0|0)|0; +} +function b6(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_viddd(6); +} +function _emscripten_glUniform3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glUniform3f(p0|0,+p1,+p2,+p3); +} +function _emscripten_glVertexAttrib3f__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glVertexAttrib3f(p0|0,+p1,+p2,+p3); +} +function b7(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; nullFunc_vidd(7); +} +function _emscripten_glUniform2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glUniform2f(p0|0,+p1,+p2); +} +function _emscripten_glVertexAttrib2f__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = +p1;p2 = +p2; _emscripten_glVertexAttrib2f(p0|0,+p1,+p2); +} +function b8(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(8);return 0; +} +function b9(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; nullFunc_viiiiiiii(9); +} +function _emscripten_glCompressedTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCompressedTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function _emscripten_glCopyTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0; _emscripten_glCopyTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0); +} +function b10(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); +} +function _emscripten_glDrawRangeElements__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glDrawRangeElements(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function _emscripten_glVertexAttribPointer__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; _emscripten_glVertexAttribPointer(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0); +} +function b11(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(11); +} +function _emscripten_glGetTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameterfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameterfv(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetBufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetBufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetRenderbufferParameteriv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetRenderbufferParameteriv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetUniformiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetUniformiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribfv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribfv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetVertexAttribPointerv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetVertexAttribPointerv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2i__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2i(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4iv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4iv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform1fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform1fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform2fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform2fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform3fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform3fv(p0|0,p1|0,p2|0); +} +function _emscripten_glUniform4fv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glUniform4fv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetShaderiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetShaderiv(p0|0,p1|0,p2|0); +} +function _emscripten_glGetProgramiv__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetProgramiv(p0|0,p1|0,p2|0); +} +function _emscripten_glBindAttribLocation__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glBindAttribLocation(p0|0,p1|0,p2|0); +} +function _emscripten_glGetObjectParameterivARB__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glGetObjectParameterivARB(p0|0,p1|0,p2|0); +} +function _emscripten_glNormalPointer__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glNormalPointer(p0|0,p1|0,p2|0); +} +function _emscripten_glDrawArrays__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glDrawArrays(p0|0,p1|0,p2|0); +} +function _emscripten_glTexParameteri__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glTexParameteri(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilFunc__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilFunc(p0|0,p1|0,p2|0); +} +function _emscripten_glStencilOp__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = p2|0; _emscripten_glStencilOp(p0|0,p1|0,p2|0); +} +function b12(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; nullFunc_vidddd(12); +} +function _emscripten_glUniform4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glUniform4f(p0|0,+p1,+p2,+p3,+p4); +} +function _emscripten_glVertexAttrib4f__wrapper(p0,p1,p2,p3,p4) { + p0 = p0|0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4; _emscripten_glVertexAttrib4f(p0|0,+p1,+p2,+p3,+p4); +} +function b13(p0,p1) { + p0 = +p0;p1 = p1|0; nullFunc_vdi(13); +} +function _emscripten_glSampleCoverage__wrapper(p0,p1) { + p0 = +p0;p1 = p1|0; _emscripten_glSampleCoverage(+p0,p1|0); +} +function b14(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; nullFunc_viiiiiii(14); +} +function _emscripten_glReadPixels__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glReadPixels(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveUniform__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveUniform(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function _emscripten_glGetActiveAttrib__wrapper(p0,p1,p2,p3,p4,p5,p6) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0; _emscripten_glGetActiveAttrib(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0); +} +function b15(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; nullFunc_viiiiiiiii(15); +} +function _emscripten_glCompressedTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glCompressedTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function _emscripten_glTexSubImage2D__wrapper(p0,p1,p2,p3,p4,p5,p6,p7,p8) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0;p6 = p6|0;p7 = p7|0;p8 = p8|0; _emscripten_glTexSubImage2D(p0|0,p1|0,p2|0,p3|0,p4|0,p5|0,p6|0,p7|0,p8|0); +} +function b16(p0,p1) { + p0 = p0|0;p1 = p1|0; nullFunc_iii(16);return 0; +} +function _emscripten_glGetUniformLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetUniformLocation(p0|0,p1|0)|0; +} +function _emscripten_glGetAttribLocation__wrapper(p0,p1) { + p0 = p0|0;p1 = p1|0; return _emscripten_glGetAttribLocation(p0|0,p1|0)|0; +} +function b17() { + ; nullFunc_i(17);return 0; +} +function _emscripten_glCreateProgram__wrapper() { + ; return _emscripten_glCreateProgram()|0; +} +function _emscripten_glGetError__wrapper() { + ; return _emscripten_glGetError()|0; +} +function b18(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; nullFunc_vdddddd(18); +} +function _emscripten_glFrustum__wrapper(p0,p1,p2,p3,p4,p5) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3;p4 = +p4;p5 = +p5; _emscripten_glFrustum(+p0,+p1,+p2,+p3,+p4,+p5); +} +function b19(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; nullFunc_vdddd(19); +} +function _emscripten_glRotatef__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glRotatef(+p0,+p1,+p2,+p3); +} +function _emscripten_glClearColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glClearColor(+p0,+p1,+p2,+p3); +} +function _emscripten_glBlendColor__wrapper(p0,p1,p2,p3) { + p0 = +p0;p1 = +p1;p2 = +p2;p3 = +p3; _emscripten_glBlendColor(+p0,+p1,+p2,+p3); +} +function b20(p0,p1) { + p0 = +p0;p1 = +p1; nullFunc_vdd(20); +} +function _emscripten_glDepthRange__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRange(+p0,+p1); +} +function _emscripten_glDepthRangef__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glDepthRangef(+p0,+p1); +} +function _emscripten_glPolygonOffset__wrapper(p0,p1) { + p0 = +p0;p1 = +p1; _emscripten_glPolygonOffset(+p0,+p1); +} +function b21() { + ; nullFunc_v(21); +} +function _emscripten_glLoadIdentity__wrapper() { + ; _emscripten_glLoadIdentity(); +} +function _emscripten_glReleaseShaderCompiler__wrapper() { + ; _emscripten_glReleaseShaderCompiler(); +} +function _emscripten_glFinish__wrapper() { + ; _emscripten_glFinish(); +} +function _emscripten_glFlush__wrapper() { + ; _emscripten_glFlush(); +} +function b22(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; nullFunc_viid(22); +} +function _emscripten_glTexParameterf__wrapper(p0,p1,p2) { + p0 = p0|0;p1 = p1|0;p2 = +p2; _emscripten_glTexParameterf(p0|0,p1|0,+p2); +} +function b23(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(23); +} +function _emscripten_glBufferData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBufferSubData__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBufferSubData(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniform3i__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniform3i(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix2fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix2fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix3fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix3fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glUniformMatrix4fv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glUniformMatrix4fv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetAttachedShaders__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetAttachedShaders(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderSource__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderSource(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetShaderPrecisionFormat__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetShaderPrecisionFormat(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetProgramInfoLog__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetProgramInfoLog(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glFramebufferRenderbuffer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glFramebufferRenderbuffer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetFramebufferAttachmentParameteriv__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetFramebufferAttachmentParameteriv(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glGetInfoLogARB__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glGetInfoLogARB(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glVertexPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glVertexPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glTexCoordPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glTexCoordPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorPointer__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorPointer(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawElements__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawElements(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glDrawArraysInstanced__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glDrawArraysInstanced(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glViewport__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glViewport(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glScissor__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glScissor(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glColorMask__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glColorMask(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glRenderbufferStorage__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glRenderbufferStorage(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glBlendFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glBlendFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilFuncSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilFuncSeparate(p0|0,p1|0,p2|0,p3|0); +} +function _emscripten_glStencilOpSeparate__wrapper(p0,p1,p2,p3) { + p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; _emscripten_glStencilOpSeparate(p0|0,p1|0,p2|0,p3|0); +} + +// EMSCRIPTEN_END_FUNCS +var FUNCTION_TABLE_viiiii = [b0,_KeyCallback,_emscripten_glUniform4i__wrapper,_emscripten_glFramebufferTexture2D__wrapper,_emscripten_glShaderBinary__wrapper,_emscripten_glDrawElementsInstanced__wrapper,b0,b0]; +var FUNCTION_TABLE_vd = [b1,_emscripten_glClearDepth__wrapper,_emscripten_glClearDepthf__wrapper,_emscripten_glLineWidth__wrapper]; +var FUNCTION_TABLE_vid = [b2,_emscripten_glUniform1f__wrapper,_emscripten_glVertexAttrib1f__wrapper,b2]; +var FUNCTION_TABLE_vi = [b3,_emscripten_glDeleteShader__wrapper,_emscripten_glCompileShader__wrapper,_emscripten_glDeleteProgram__wrapper,_emscripten_glLinkProgram__wrapper,_emscripten_glUseProgram__wrapper,_emscripten_glValidateProgram__wrapper,_emscripten_glDeleteObjectARB__wrapper,_emscripten_glEnableClientState__wrapper,_emscripten_glClientActiveTexture__wrapper,_emscripten_glBindVertexArray__wrapper,_emscripten_glMatrixMode__wrapper,_emscripten_glLoadMatrixf__wrapper,_emscripten_glEnableVertexAttribArray__wrapper,_emscripten_glDisableVertexAttribArray__wrapper,_emscripten_glDepthFunc__wrapper,_emscripten_glEnable__wrapper,_emscripten_glDisable__wrapper,_emscripten_glFrontFace__wrapper,_emscripten_glCullFace__wrapper,_emscripten_glClear__wrapper,_emscripten_glClearStencil__wrapper,_emscripten_glDepthMask__wrapper,_emscripten_glStencilMask__wrapper,_emscripten_glGenerateMipmap__wrapper,_emscripten_glActiveTexture__wrapper,_emscripten_glBlendEquation__wrapper,b3,b3 +,b3,b3,b3]; +var FUNCTION_TABLE_vii = [b4,_stbi__stdio_skip,_ErrorCallback,_CursorEnterCallback,_CharCallback,_WindowIconifyCallback,_emscripten_glPixelStorei__wrapper,_emscripten_glGetIntegerv__wrapper,_emscripten_glGetFloatv__wrapper,_emscripten_glGetBooleanv__wrapper,_emscripten_glGenTextures__wrapper,_emscripten_glDeleteTextures__wrapper,_emscripten_glBindTexture__wrapper,_emscripten_glGenBuffers__wrapper,_emscripten_glDeleteBuffers__wrapper,_emscripten_glGenRenderbuffers__wrapper,_emscripten_glDeleteRenderbuffers__wrapper,_emscripten_glBindRenderbuffer__wrapper,_emscripten_glUniform1i__wrapper,_emscripten_glBindBuffer__wrapper,_emscripten_glVertexAttrib1fv__wrapper,_emscripten_glVertexAttrib2fv__wrapper,_emscripten_glVertexAttrib3fv__wrapper,_emscripten_glVertexAttrib4fv__wrapper,_emscripten_glAttachShader__wrapper,_emscripten_glDetachShader__wrapper,_emscripten_glBindFramebuffer__wrapper,_emscripten_glGenFramebuffers__wrapper,_emscripten_glDeleteFramebuffers__wrapper,_emscripten_glBindProgramARB__wrapper,_emscripten_glGetPointerv__wrapper,_emscripten_glGenVertexArrays__wrapper,_emscripten_glDeleteVertexArrays__wrapper,_emscripten_glVertexAttribDivisor__wrapper,_emscripten_glBlendFunc__wrapper,_emscripten_glBlendEquationSeparate__wrapper,_emscripten_glStencilMaskSeparate__wrapper,_emscripten_glHint__wrapper,_emscripten_glDrawBuffers__wrapper,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_ii = [b5,_stbi__stdio_eof,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5]; +var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6]; +var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7]; +var FUNCTION_TABLE_iiii = [b8,_stbi__stdio_read,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenKeyboardCallback,_EmscriptenMouseCallback,_EmscriptenTouchCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,b8,b8,b8,b8]; +var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper]; +var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10]; +var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11]; +var FUNCTION_TABLE_vidddd = [b12,_emscripten_glUniform4f__wrapper,_emscripten_glVertexAttrib4f__wrapper,b12]; +var FUNCTION_TABLE_vdi = [b13,_emscripten_glSampleCoverage__wrapper]; +var FUNCTION_TABLE_viiiiiii = [b14,_emscripten_glReadPixels__wrapper,_emscripten_glGetActiveUniform__wrapper,_emscripten_glGetActiveAttrib__wrapper]; +var FUNCTION_TABLE_viiiiiiiii = [b15,_emscripten_glCompressedTexSubImage2D__wrapper,_emscripten_glTexImage2D__wrapper,_emscripten_glTexSubImage2D__wrapper]; +var FUNCTION_TABLE_iii = [b16,_emscripten_glGetUniformLocation__wrapper,_emscripten_glGetAttribLocation__wrapper,b16]; +var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glGetError__wrapper,b17]; +var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper]; +var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper]; +var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper]; +var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21]; +var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper]; +var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23]; + + return { _roundf: _roundf, _main: _main, _memset: _memset, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _llvm_cttz_i32: _llvm_cttz_i32, _sbrk: _sbrk, _memcpy: _memcpy, _llvm_bswap_i32: _llvm_bswap_i32, ___muldi3: ___muldi3, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, ___errno_location: ___errno_location, ___muldsi3: ___muldsi3, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; +}) +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + +var real__roundf = asm["_roundf"]; asm["_roundf"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__roundf.apply(null, arguments); +}; + +var real__main = asm["_main"]; asm["_main"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__main.apply(null, arguments); +}; + +var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackSave.apply(null, arguments); +}; + +var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_getTempRet0.apply(null, arguments); +}; + +var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_cttz_i32.apply(null, arguments); +}; + +var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setThrew.apply(null, arguments); +}; + +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Lshr.apply(null, arguments); +}; + +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__bitshift64Shl.apply(null, arguments); +}; + +var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__fflush.apply(null, arguments); +}; + +var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__sbrk.apply(null, arguments); +}; + +var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__llvm_bswap_i32.apply(null, arguments); +}; + +var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____muldi3.apply(null, arguments); +}; + +var real____uremdi3 = asm["___uremdi3"]; asm["___uremdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____uremdi3.apply(null, arguments); +}; + +var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackAlloc.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real____udivmoddi4 = asm["___udivmoddi4"]; asm["___udivmoddi4"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivmoddi4.apply(null, arguments); +}; + +var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_setTempRet0.apply(null, arguments); +}; + +var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Add.apply(null, arguments); +}; + +var real__emscripten_get_global_libc = asm["_emscripten_get_global_libc"]; asm["_emscripten_get_global_libc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_get_global_libc.apply(null, arguments); +}; + +var real__emscripten_GetProcAddress = asm["_emscripten_GetProcAddress"]; asm["_emscripten_GetProcAddress"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__emscripten_GetProcAddress.apply(null, arguments); +}; + +var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____udivdi3.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real____muldsi3 = asm["___muldsi3"]; asm["___muldsi3"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____muldsi3.apply(null, arguments); +}; + +var real__free = asm["_free"]; asm["_free"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__free.apply(null, arguments); +}; + +var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_establishStackSpace.apply(null, arguments); +}; + +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__memmove.apply(null, arguments); +}; + +var real__strstr = asm["_strstr"]; asm["_strstr"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__strstr.apply(null, arguments); +}; + +var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real_stackRestore.apply(null, arguments); +}; + +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__malloc.apply(null, arguments); +}; +var _roundf = Module["_roundf"] = asm["_roundf"]; +var _main = Module["_main"] = asm["_main"]; +var stackSave = Module["stackSave"] = asm["stackSave"]; +var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; +var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"]; +var setThrew = Module["setThrew"] = asm["setThrew"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var _memset = Module["_memset"] = asm["_memset"]; +var _sbrk = Module["_sbrk"] = asm["_sbrk"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; +var ___muldi3 = Module["___muldi3"] = asm["___muldi3"]; +var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; +var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var ___udivmoddi4 = Module["___udivmoddi4"] = asm["___udivmoddi4"]; +var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = asm["_emscripten_get_global_libc"]; +var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; +var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var ___muldsi3 = Module["___muldsi3"] = asm["___muldsi3"]; +var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _strstr = Module["_strstr"] = asm["_strstr"]; +var stackRestore = Module["stackRestore"] = asm["stackRestore"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"]; +var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viddd = Module["dynCall_viddd"] = asm["dynCall_viddd"]; +var dynCall_vidd = Module["dynCall_vidd"] = asm["dynCall_vidd"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_vidddd = Module["dynCall_vidddd"] = asm["dynCall_vidddd"]; +var dynCall_vdi = Module["dynCall_vdi"] = asm["dynCall_vdi"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = asm["dynCall_viiiiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_vdddddd = Module["dynCall_vdddddd"] = asm["dynCall_vdddddd"]; +var dynCall_vdddd = Module["dynCall_vdddd"] = asm["dynCall_vdddd"]; +var dynCall_vdd = Module["dynCall_vdd"] = asm["dynCall_vdd"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; +; + +Runtime.stackAlloc = Module['stackAlloc']; +Runtime.stackSave = Module['stackSave']; +Runtime.stackRestore = Module['stackRestore']; +Runtime.establishStackSpace = Module['establishStackSpace']; + +Runtime.setTempRet0 = Module['setTempRet0']; +Runtime.getTempRet0 = Module['getTempRet0']; + + + +// === Auto-generated postamble setup entry stuff === + +Module['asm'] = asm; + + + + + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun']) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret, /* implicit = */ true); + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + var toLog = e; + if (e && typeof e === 'object' && e.stack) { + toLog = [e, e.stack]; + } + Module.printErr('exception thrown: ' + toLog); + Module['quit'](1, e); + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + writeStackCookie(); + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + if (ABORT) return; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (Module['_main'] && shouldRunNow) Module['callMain'](args); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} +Module['run'] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); + return; + } + + if (Module['noExitRuntime']) { + Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); + } else { + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + exitRuntime(); + + if (Module['onExit']) Module['onExit'](status); + } + + if (ENVIRONMENT_IS_NODE) { + process['exit'](status); + } + Module['quit'](status, new ExitStatus(status)); +} +Module['exit'] = Module.exit = exit; + +var abortDecorators = []; + +function abort(what) { + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = ''; + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = ''; + + var output = 'abort(' + what + ') at ' + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + +// {{MODULE_ADDITIONS}} + + + diff --git a/examples/web/models/models_obj_loading.png b/examples/web/models/models_obj_loading.png new file mode 100644 index 0000000..560348b Binary files /dev/null and b/examples/web/models/models_obj_loading.png differ diff --git a/examples/web/models/resources/billboard.png b/examples/web/models/resources/billboard.png new file mode 100644 index 0000000..e2fe398 Binary files /dev/null and b/examples/web/models/resources/billboard.png differ diff --git a/examples/web/models/resources/cubicmap.png b/examples/web/models/resources/cubicmap.png new file mode 100644 index 0000000..b361c01 Binary files /dev/null and b/examples/web/models/resources/cubicmap.png differ diff --git a/examples/web/models/resources/cubicmap_atlas.png b/examples/web/models/resources/cubicmap_atlas.png new file mode 100644 index 0000000..7ddfc83 Binary files /dev/null and b/examples/web/models/resources/cubicmap_atlas.png differ diff --git a/examples/web/models/resources/heightmap.png b/examples/web/models/resources/heightmap.png new file mode 100644 index 0000000..fe30f67 Binary files /dev/null and b/examples/web/models/resources/heightmap.png differ diff --git a/examples/web/models/resources/model/dwarf.obj b/examples/web/models/resources/model/dwarf.obj new file mode 100644 index 0000000..a24f0c1 --- /dev/null +++ b/examples/web/models/resources/model/dwarf.obj @@ -0,0 +1,54966 @@ +# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware +# File Created: 28.05.2015 21:59:00 + +mtllib Enano_Final_001.mtl + +# +# object Box001 +# + +v 0.387459278107 0.001037180424 -0.000000000000 +v 0.357966661453 0.000561296940 -0.148274183273 +v 0.273977041245 0.000000000000 -0.273975044489 +v 0.148276805878 -0.000561356544 -0.357965648174 +v 0.000002622604 -0.001037240028 -0.387459248304 +v -0.148271799088 -0.001355171204 -0.357965648174 +v -0.273973226547 -0.001466870308 -0.273975044489 +v -0.357964754105 -0.001355171204 -0.148274242878 +v -0.387459278107 -0.001037240028 -0.000000059605 +v -0.357966899872 -0.000561356544 0.148274183273 +v -0.273977279663 -0.000000059605 0.273975014687 +v -0.148276805878 0.000561296940 0.357965707779 +v -0.000002861023 0.001037180424 0.387459278107 +v 0.148271799088 0.001355111599 0.357965588570 +v 0.273973226547 0.001466810703 0.273974895477 +v 0.357964634895 0.001355111599 0.148274123669 +v 0.387031078339 0.161010622978 -0.000428199768 +v 0.357538461685 0.160534739494 -0.148702442646 +v 0.273548841476 0.159973442554 -0.274403274059 +v 0.147848606110 0.159412086010 -0.358393877745 +v -0.000425577164 0.158936202526 -0.387887477875 +v -0.148699998856 0.158618271351 -0.358393877745 +v -0.274401426315 0.158506572247 -0.274403274059 +v -0.358391761780 0.158147990704 -0.148701190948 +v -0.387881040573 0.156506061554 -0.000421762466 +v -0.358393907547 0.158941805363 0.147847235203 +v -0.274405479431 0.159973382950 0.273546814919 +v -0.148705244064 0.160534739494 0.357537508011 +v -0.000431060791 0.161010622978 0.387031078339 +v 0.147843360901 0.161328554153 0.357537388802 +v 0.273545026779 0.161440253258 0.273546695709 +v 0.357536435127 0.161328554153 0.147845864296 +v 0.353100299835 0.160919785500 -0.000428199768 +v 0.326190590858 0.160485565662 -0.135717749596 +v 0.249556064606 0.159973442554 -0.250410705805 +v 0.134863615036 0.159461259842 -0.327046126127 +v -0.000425815582 0.159027040005 -0.353956878185 +v -0.135715484619 0.158736944199 -0.327046126127 +v -0.250409126282 0.158635079861 -0.250410705805 +v -0.327044963837 0.158685207367 -0.135717630386 +v -0.353955745697 0.158622086048 -0.000427186489 +v -0.327047109604 0.159409523010 0.134861409664 +v -0.250412702560 0.159973382950 0.249554216862 +v -0.135720252991 0.160485565662 0.326189637184 +v -0.000430822372 0.160919785500 0.353100419044 +v 0.134859085083 0.161209881306 0.326189637184 +v 0.249552488327 0.161311805248 0.249554157257 +v 0.326188802719 0.161209881306 0.134861171246 +v 0.353296518326 0.087664961815 -0.000232100487 +v 0.326386690140 0.087230741978 -0.135521650314 +v 0.249752044678 0.086718618870 -0.250214606524 +v 0.135059833527 0.086206436157 -0.326850026846 +v -0.000229597092 0.085772216320 -0.353760749102 +v -0.135519504547 0.085482120514 -0.326850026846 +v -0.250212907791 0.085380256176 -0.250214606524 +v -0.326848983765 0.085482120514 -0.135521650314 +v -0.353760719299 0.085772216320 -0.000232160091 +v -0.326851129532 0.086206436157 0.135057389736 +v -0.250216484070 0.086718559265 0.249750316143 +v -0.135524034500 0.087230741978 0.326385736465 +v -0.000234603882 0.087664961815 0.353296518326 +v 0.135055065155 0.087955057621 0.326385736465 +v 0.249748706818 0.088056981564 0.249750256538 +v 0.326384902000 0.087955057621 0.135057270527 +v 0.375676870346 0.177378296852 -0.000472128391 +v 0.364366769791 0.177348017693 -0.000472128391 +v 0.347045183182 0.176916301250 -0.144418120384 +v 0.336596012115 0.176899909973 -0.140089869499 +v 0.265507221222 0.176371395588 -0.266449689865 +v 0.257509708405 0.176371395588 -0.258452177048 +v 0.143476247787 0.175826430321 -0.347988516092 +v 0.139147996902 0.175842821598 -0.337539315224 +v -0.000469446182 0.175364434719 -0.376621156931 +v -0.000469684601 0.175394713879 -0.365310996771 +v -0.144415855408 0.175055742264 -0.347988516092 +v -0.140087604523 0.175095319748 -0.337539315224 +v -0.266447782516 0.174947381020 -0.266449689865 +v -0.258450269699 0.174990177155 -0.258452177048 +v -0.347987651825 0.175055742264 -0.144418120384 +v -0.337538242340 0.175095319748 -0.140089929104 +v -0.376621246338 0.175364434719 -0.000472187996 +v -0.365311145782 0.175394713879 -0.000472187996 +v -0.347989559174 0.175826430321 0.143473863602 +v -0.337540388107 0.175842821598 0.139145612717 +v -0.266451835632 0.176371335983 0.265505313873 +v -0.258454084396 0.176371335983 0.257507801056 +v -0.144420623779 0.176916301250 0.347044229507 +v -0.140092372894 0.176899909973 0.336595058441 +v -0.000474929810 0.177378296852 0.375676870346 +v -0.000474691391 0.177348017693 0.364366769791 +v 0.143471479416 0.177686989307 0.347044229507 +v 0.139143228531 0.177647411823 0.336595058441 +v 0.265503644943 0.177795350552 0.265505313873 +v 0.257506132126 0.177752554417 0.257507801056 +v 0.347043275833 0.177686989307 0.143473744392 +v 0.336594104767 0.177647411823 0.139145493507 +v -0.260723114014 0.157754421234 -0.259547352791 +v 0.188534498215 0.162128329277 0.220312714577 +v 0.150835990906 0.255903840065 -0.122018277645 +v -0.367745399475 0.145474791527 -0.000509381294 +v 0.326006412506 0.188046872616 0.061991870403 +v -0.140351295471 0.145963966846 0.338536977768 +v -0.092543125153 0.133517801762 0.209983170033 +v -0.045091629028 0.219104647636 0.071014165878 +v 0.117162466049 0.138920009136 0.148487687111 +v 0.094516038895 0.211338222027 0.006093084812 +v 0.141849040985 0.167456209660 -0.338641077280 +v -0.132145881653 0.224308967590 -0.168267190456 +v -0.290617465973 0.153861880302 0.041577756405 +v 0.232747793198 0.220157623291 -0.020193576813 +v -0.104435920715 0.156720459461 0.107542216778 +v 0.261220932007 0.215893089771 0.140530586243 +v 0.339339137077 0.144055008888 0.139837384224 +v 0.232198715210 0.238567829132 -0.074207901955 +v 0.139328241348 0.221993207932 -0.251845806837 +v 0.001096725464 0.115566849709 0.232506930828 +v 0.235008478165 0.183093011379 -0.224647879601 +v 0.025869607925 0.220658242702 0.010586977005 +v -0.260028839111 0.142340183258 0.258761763573 +v 0.149353027344 0.195868253708 0.071023166180 +v -0.312650203705 0.150955259800 0.143607854843 +v -0.012047052383 0.257859528065 -0.223151683807 +v -0.092512130737 0.135187923908 0.292060732841 +v -0.015312671661 0.255189657211 -0.138771057129 +v 0.137337684631 0.183658897877 -0.296297132969 +v -0.172811269760 0.177352190018 -0.007483303547 +v 0.223266124725 0.217488348484 0.090728402138 +v 0.064405202866 0.252335906029 -0.226450979710 +v -0.188626766205 0.189203381538 -0.061699330807 +v 0.016028881073 0.124756276608 0.299646496773 +v 0.089669704437 0.233257532120 -0.075778305531 +v 0.139914751053 0.137555956841 0.338332772255 +v 0.284914731979 0.198863744736 -0.022770822048 +v 0.304054975510 0.196833968163 0.028051853180 +v -0.097067356110 0.222885787487 -0.054254412651 +v -0.237313508987 0.144842386246 0.232705712318 +v 0.269050121307 0.216346383095 0.051027357578 +v -0.120793342590 0.202318608761 0.021182298660 +v -0.339625835419 0.138534486294 0.138899505138 +v 0.037177801132 0.231764197350 -0.090419173241 +v 0.143469810486 0.149774491787 0.195432603359 +v 0.293514966965 0.187747895718 -0.097219467163 +v -0.168785572052 0.151870310307 0.060518741608 +v 0.020806550980 0.266882598400 -0.172512531281 +v 0.259666919708 0.145984232426 0.258646607399 +v 0.034334182739 0.252145409584 -0.135116934776 +v -0.140362977982 0.156036436558 -0.339551180601 +v 0.032037258148 0.132924497128 0.150658845901 +v 0.366469740868 0.153844237328 -0.000785291195 +v -0.013993501663 0.172754645348 0.088831484318 +v 0.075382471085 0.258517682552 -0.122498214245 +v -0.144392013550 0.200841248035 -0.234057486057 +v 0.200603008270 0.174400389194 0.172962725163 +v -0.017191648483 0.226316809654 0.000772595406 +v 0.077378988266 0.224100291729 -0.039400041103 +v -0.000497341156 0.134032607079 0.366490840912 +v 0.338284015656 0.156314671040 -0.141668856144 +v -0.153885364532 0.204451203346 -0.099687397480 +v 0.195820569992 0.205458104610 0.131933152676 +v 0.216483592987 0.239142835140 -0.141529560089 +v -0.048132896423 0.252258181572 -0.187425732613 +v 0.048329114914 0.181412041187 0.058874249458 +v 0.297631740570 0.188538789749 0.118461728096 +v 0.094685554504 0.275856882334 -0.177895724773 +v 0.291773080826 0.176003396511 0.168679654598 +v 0.258277654648 0.169047772884 -0.258827954531 +v -0.025267601013 0.222986042500 -0.080369651318 +v -0.082452535629 0.196722209454 -0.287426501513 +v -0.052076101303 0.149037420750 0.130536139011 +v 0.078437328339 0.166446685791 -0.351232022047 +v -0.079320430756 0.196040034294 0.077153921127 +v 0.147503852844 0.252151966095 -0.186089634895 +v -0.237520694733 0.165661454201 -0.003286302090 +v -0.029679536819 0.118149220943 0.186804175377 +v 0.181889533997 0.212109684944 -0.008958518505 +v -0.094622135162 0.229876041412 -0.137650251389 +v 0.069519281387 0.135161101818 0.174413204193 +v 0.278537750244 0.214016139507 0.012907266617 +v -0.000745296478 0.139973580837 0.130587935448 +v 0.161170482635 0.208140671253 0.035515487194 +v -0.166126012802 0.139393448830 0.192975401878 +v 0.290117979050 0.177705764771 -0.146035611629 +v 0.020158529282 0.206230044365 0.052492976189 +v -0.134399890900 0.143064141273 0.142413377762 +v -0.266332864761 0.169014453888 -0.063792705536 +v 0.132324457169 0.250333786011 -0.097359597683 +v 0.001193761826 0.159170746803 -0.367280960083 +v -0.188598394394 0.189268946648 -0.191226005554 +v 0.097879648209 0.156538784504 0.109527528286 +v 0.203623294830 0.224369049072 -0.037161529064 +v -0.129595041275 0.211527705193 -0.041961491108 +v -0.339376449585 0.143820405006 -0.140513777733 +v 0.205133199692 0.213180243969 -0.004063129425 +v 0.233246803284 0.214453101158 -0.008401036263 +v 0.206484079361 0.212388336658 0.016018033028 +v 0.242507219315 0.213977515697 0.010456264019 +v 0.209819316864 0.211635589600 0.041306018829 +v 0.251682043076 0.213515639305 0.034897506237 +v 0.219023942947 0.211915493011 0.102876901627 +v 0.255498886108 0.213328659534 0.102843940258 +v 0.209807872772 0.211321473122 0.073793649673 +v 0.260978460312 0.213306427002 0.070012688637 +v 0.218056917191 0.213957488537 -0.009956002235 +v 0.237318038940 0.212719857693 0.106576442719 +v 0.201871395111 0.223009884357 -0.005214691162 +v 0.234170436859 0.224603056908 -0.010290384293 +v 0.201443910599 0.221436142921 0.017751872540 +v 0.247167825699 0.223902463913 0.009773075581 +v 0.204860687256 0.220546007156 0.042006075382 +v 0.256182670593 0.223231375217 0.033681809902 +v 0.217150449753 0.220006823540 0.104498565197 +v 0.257226705551 0.222062766552 0.105154514313 +v 0.202792167664 0.219771981239 0.074708163738 +v 0.266690969467 0.222605288029 0.069311499596 +v 0.216041564941 0.224303185940 -0.016883432865 +v 0.236886978149 0.220857679844 0.113419055939 +v 0.201165676117 0.241792380810 -0.002464711666 +v 0.235595226288 0.243774831295 -0.008793592453 +v 0.200091838837 0.239008307457 0.019165515900 +v 0.248582601547 0.241591095924 0.009618818760 +v 0.203350067139 0.236650824547 0.041424393654 +v 0.256637573242 0.239299356937 0.032281756401 +v 0.218260288239 0.230036914349 0.104059219360 +v 0.253784656525 0.232075154781 0.103391885757 +v 0.206028461456 0.232413649559 0.076064765453 +v 0.216443300247 0.243729174137 -0.014796018600 +v 0.236021757126 0.231211543083 0.111301779747 +v 0.247812032700 0.238879442215 0.099651157856 +v 0.235158205032 0.239502251148 0.103205502033 +v 0.262071609497 0.235375046730 0.069712936878 +v 0.252540349960 0.260097324848 0.055052101612 +v 0.222467422485 0.237549602985 0.101014792919 +v 0.212550878525 0.258014202118 0.062277555466 +v 0.201892614365 0.345312535763 0.008776485920 +v 0.242216825485 0.349303513765 0.009433805943 +v 0.191249847412 0.342574447393 0.028094410896 +v 0.255865812302 0.346988528967 0.028772234917 +v 0.196735858917 0.339674323797 0.052435636520 +v 0.258110046387 0.343376874924 0.052006244659 +v 0.221249341965 0.348548620939 0.002917945385 +v 0.222075462341 0.356713175774 0.034231722355 +v 0.229865312576 0.337269216776 0.076513707638 +v 0.232888221741 0.263725697994 0.063763737679 +v 0.204312324524 0.270660489798 0.003390491009 +v 0.236067295074 0.272651731968 -0.001152694225 +v 0.200947046280 0.266749739647 0.023094773293 +v 0.249783754349 0.268808007240 0.012558996677 +v 0.202597379684 0.262279391289 0.042629957199 +v 0.255157470703 0.263839781284 0.032649099827 +v 0.218951225281 0.272833973169 -0.005811095238 +v 0.248102664948 0.339510381222 0.071823954582 +v 0.211038351059 0.337233841419 0.072277426720 +v 0.212896347046 0.211532533169 0.087992787361 +v 0.260196208954 0.213362693787 0.086466848850 +v 0.206652641296 0.219657599926 0.088583350182 +v 0.265573501587 0.222268044949 0.086174011230 +v 0.208487510681 0.231236219406 0.089933633804 +v 0.261114358902 0.233485519886 0.086178541183 +v 0.249599456787 0.241804718971 0.087328910828 +v 0.218761682510 0.240887939930 0.090320706367 +v 0.234282970428 0.244165539742 0.089901387691 +v 0.249197959900 0.245250940323 0.071763932705 +v 0.233741044998 0.248610019684 0.075530111790 +v 0.218100309372 0.243478000164 0.076156377792 +v 0.259891033173 0.237450182438 0.052915513515 +v 0.262217521667 0.222825467587 0.053764879704 +v 0.257991552353 0.213336646557 0.054791927338 +v 0.209878206253 0.211354732513 0.060339868069 +v 0.203500509262 0.219918906689 0.060940921307 +v 0.205494880676 0.234648823738 0.060976922512 +v 0.232362031937 0.296486437321 0.068670928478 +v 0.247957706451 0.297481447458 0.058879435062 +v 0.214935302734 0.296461522579 0.063020169735 +v 0.256248474121 0.300734728575 0.041230976582 +v 0.205139160156 0.308436393738 0.010030686855 +v 0.238288879395 0.311282992363 0.009258210659 +v 0.199443340302 0.304088622332 0.028930902481 +v 0.251448392868 0.306685805321 0.022934615612 +v 0.202795028687 0.299219369888 0.047689616680 +v 0.221186876297 0.311318457127 0.002745151520 +v 0.225008487701 0.352216601372 0.053049981594 +v 0.202267408371 0.358467698097 0.014773547649 +v 0.193837165833 0.356905907393 0.031560063362 +v 0.200456142426 0.354091018438 0.051699697971 +v 0.214915990829 0.351570516825 0.066617071629 +v 0.227507829666 0.352972269058 0.069517612457 +v 0.240033149719 0.354288905859 0.067502856255 +v 0.247437715530 0.356183379889 0.048327982426 +v 0.255626201630 0.361346334219 0.031195163727 +v 0.243300676346 0.363204896450 0.016159296036 +v 0.220804214478 0.361127465963 0.011520028114 +v -0.006412744522 0.219254732132 -0.070368289948 +v -0.034497737885 0.219416260719 -0.075179994106 +v -0.007551431656 0.219255983829 -0.050698041916 +v -0.043589591980 0.219416618347 -0.056793034077 +v -0.010588407516 0.219317317009 -0.025610864162 +v -0.052551269531 0.219525873661 -0.032343029976 +v -0.019434452057 0.219501733780 0.036931097507 +v -0.056055307388 0.219407021999 0.036677896976 +v -0.010255813599 0.219376742840 0.007310867310 +v -0.061593055725 0.219416677952 0.003298044205 +v -0.019374847412 0.219313621521 -0.076339542866 +v -0.037804126740 0.219456374645 0.040600121021 +v -0.003419399261 0.229272305965 -0.072110950947 +v -0.035720348358 0.229651033878 -0.077736675739 +v -0.002564668655 0.228819966316 -0.049440383911 +v -0.048538923264 0.229538142681 -0.058115601540 +v -0.005802154541 0.228773951530 -0.025171041489 +v -0.057313680649 0.229480981827 -0.033867120743 +v -0.017800569534 0.228000402451 0.038410604000 +v -0.058048009872 0.228443384171 0.038873791695 +v -0.003192663193 0.228343427181 0.008078634739 +v -0.067610979080 0.228918552399 0.002470076084 +v -0.017654657364 0.229513227940 -0.083801627159 +v -0.037597417831 0.228035628796 0.047402024269 +v -0.003135919571 0.248828172684 -0.071072876453 +v -0.037687301636 0.249413430691 -0.078146457672 +v -0.001599311829 0.247187077999 -0.049244463444 +v -0.050426006317 0.247864484787 -0.059458792210 +v -0.004717350006 0.245696306229 -0.026384413242 +v -0.058178663254 0.246295332909 -0.035779118538 +v -0.019185543060 0.238504111767 0.037673413754 +v -0.054839372635 0.239117026329 0.036907553673 +v -0.006999969482 0.241730749607 0.009231150150 +v -0.018567800522 0.249538004398 -0.083647012711 +v -0.037009954453 0.238889813423 0.044985234737 +v -0.049028873444 0.246678113937 0.033095300198 +v -0.036361932755 0.247815668583 0.036695182323 +v -0.063289403915 0.242662429810 0.002855598927 +v -0.054507970810 0.268849194050 -0.014230966568 +v -0.023601055145 0.246319174767 0.034479141235 +v -0.014294147491 0.268415987492 -0.006592750549 +v -0.007125854492 0.352546513081 -0.070307731628 +v -0.047215461731 0.354491233826 -0.074513196945 +v 0.003531694412 0.351069599390 -0.050791621208 +v -0.060627460480 0.352100074291 -0.057532072067 +v -0.001306772232 0.349359750748 -0.028730213642 +v -0.062292337418 0.349174886942 -0.036085724831 +v -0.026328802109 0.354579001665 -0.078574538231 +v -0.027374744415 0.363825768232 -0.050758659840 +v -0.033916950226 0.346315592527 -0.004494011402 +v -0.034796714783 0.273458153009 -0.005827486515 +v -0.007123708725 0.278406739235 -0.068862497807 +v -0.038926839828 0.278996378183 -0.074869096279 +v -0.003371477127 0.275840729475 -0.048226654530 +v -0.052319049835 0.275491327047 -0.060075223446 +v -0.004662275314 0.272252291441 -0.027530074120 +v -0.057320117950 0.271499335766 -0.038320362568 +v -0.021856307983 0.279480308294 -0.079001605511 +v -0.051886796951 0.346334606409 -0.018019616604 +v -0.015472888947 0.347499132156 -0.012708246708 +v -0.013341426849 0.219453394413 0.021781980991 +v -0.060760498047 0.219377577305 0.020002603531 +v -0.007234573364 0.228128254414 0.022226035595 +v -0.066421747208 0.228480756283 0.019553661346 +v -0.009428262711 0.240280926228 0.023335456848 +v -0.062236309052 0.240545749664 0.019495189190 +v -0.050906419754 0.249981880188 0.020713865757 +v -0.019988298416 0.250182330608 0.023671388626 +v -0.035615205765 0.253143727779 0.023297965527 +v -0.050571680069 0.253851354122 0.004940390587 +v -0.035207986832 0.258085966110 0.008688688278 +v -0.019476890564 0.253200232983 0.009263873100 +v -0.061208486557 0.244841516018 -0.014327108860 +v -0.063190460205 0.229270637035 -0.013317525387 +v -0.058711767197 0.219515621662 -0.012146055698 +v -0.010442733765 0.219379901886 -0.006376981735 +v -0.004127025604 0.228489577770 -0.005963206291 +v -0.006670236588 0.244056880474 -0.006213486195 +v -0.035041809082 0.306504577398 -0.012205660343 +v -0.050817012787 0.305917531252 -0.022203505039 +v -0.017575979233 0.306866586208 -0.015941679478 +v -0.059380531311 0.307994395494 -0.039807379246 +v -0.009127378464 0.316277623177 -0.068142294884 +v -0.042343616486 0.317533701658 -0.072862088680 +v -0.003009557724 0.313361108303 -0.048151373863 +v -0.055118322372 0.313115835190 -0.059049367905 +v -0.005843162537 0.309433162212 -0.029619455338 +v -0.025185585022 0.317963033915 -0.077642977238 +v -0.029360532761 0.360437393188 -0.033840239048 +v -0.013695001602 0.365091145039 -0.063374280930 +v -0.005713224411 0.364561080933 -0.049769103527 +v -0.006861448288 0.363386452198 -0.031659960747 +v -0.019543409348 0.360915482044 -0.018560290337 +v -0.032689571381 0.360493153334 -0.010817825794 +v -0.045087814331 0.359358161688 -0.021629929543 +v -0.058130502701 0.362013280392 -0.034903645515 +v -0.055710792542 0.363338232040 -0.056892096996 +v -0.040955543518 0.367505073547 -0.065858364105 +v -0.026666879654 0.366931766272 -0.066344976425 +v 0.019335746765 0.891146719456 0.147463440895 +v 0.077193498611 0.876855552197 -0.156872689724 +v 0.077016353607 0.674709022045 -0.110481500626 +v 0.026651859283 0.777218222618 0.134643375874 +v 0.027640104294 0.662163913250 0.117864131927 +v 0.092115879059 0.819933474064 0.165385544300 +v 0.022340536118 0.851363182068 0.150859296322 +v 0.081831455231 0.861464142799 0.176887631416 +v 0.145524740219 0.883852779865 0.172923028469 +v 0.158493518829 0.841617703438 0.157872855663 +v 0.277504920959 1.007843017578 0.047269701958 +v 0.272853851318 1.025377511978 0.051120281219 +v 0.286534786224 1.034585952759 0.047402620316 +v 0.302318572998 0.995641767979 0.049039125443 +v 0.262354612350 0.997510433197 0.039628624916 +v 0.254748582840 1.029515981674 0.052300691605 +v 0.286922931671 0.964170455933 0.051867485046 +v 0.263444900513 0.934777021408 -0.010773301125 +v 0.278232336044 0.898669064045 -0.017279744148 +v 0.282225131989 0.895403862000 -0.048148393631 +v 0.268206119537 0.922013401985 -0.048899114132 +v 0.263873815536 0.932216346264 -0.047488868237 +v 0.249542474747 0.950950801373 -0.014343142509 +v 0.242866039276 0.973144650459 0.013231754303 +v 0.257011651993 0.958706617355 0.025045931339 +v 0.272060394287 0.937663674355 0.036257743835 +v 0.267414808273 0.922991752625 0.012871444225 +v 0.282770156860 0.902756571770 0.011130094528 +v 0.123666524887 0.582465767860 -0.075673460960 +v 0.149766921997 0.525964796543 -0.038310170174 +v 0.177918195724 0.547954797745 -0.041567981243 +v 0.164103984833 0.607049584389 -0.064459025860 +v 0.103845834732 0.528503477573 -0.026832699776 +v 0.132575511932 0.506744384766 -0.010294854641 +v 0.262545824051 0.962624549866 -0.120018243790 +v 0.277079582214 0.942464232445 -0.121075093746 +v 0.283565044403 0.978037595749 -0.130021154881 +v 0.242907762527 1.002508759499 -0.135505557060 +v 0.261280298233 0.944051027298 -0.092559337616 +v 0.272555112839 0.925887763500 -0.087273895741 +v 0.231066703796 0.961506426334 -0.136641144753 +v 0.218405961990 0.840843498707 0.091216206551 +v 0.210432529449 0.794565856457 0.084894001484 +v 0.186074256897 0.768438935280 0.106157541275 +v 0.168217658997 0.802124977112 0.130858242512 +v 0.239678859711 0.831269502640 0.040043413639 +v 0.225566387177 0.781253993511 0.055830478668 +v 0.209580659866 0.882061362267 0.132225513458 +v 0.155940294266 0.740337014198 0.119884729385 +v 0.106715440750 0.770864248276 0.151021718979 +v 0.178981781006 0.699676811695 0.084566056728 +v 0.182432651520 0.725065171719 0.095114350319 +v 0.204370975494 0.743299126625 0.076818108559 +v 0.213043212891 0.707077801228 0.041539013386 +v 0.136242151260 0.711864829063 0.109547138214 +v 0.155378341675 0.589013695717 0.109423935413 +v 0.137723207474 0.638659536839 0.112122654915 +v 0.171539545059 0.636296868324 0.090351223946 +v 0.201073408127 0.608585000038 0.070430636406 +v 0.217098474503 0.565734565258 0.062991678715 +v 0.191636562347 0.555289149284 0.088190674782 +v 0.150764703751 1.090515971184 0.031594216824 +v 0.133168458939 1.064684152603 0.068517208099 +v 0.107606649399 1.083139657974 0.037304639816 +v 0.119329452515 1.104554176331 0.014675736427 +v 0.187176704407 1.110415458679 0.029244542122 +v 0.202834844589 1.080092191696 0.052686989307 +v 0.179083585739 1.058245539665 0.064180791378 +v 0.160923242569 1.034242868423 0.096240758896 +v 0.254607439041 1.061115264893 0.052536368370 +v 0.220592498779 1.047652482986 0.058174490929 +v 0.231979370117 1.086294531822 0.047397136688 +v 0.231719017029 1.019516706467 0.049612939358 +v 0.293545246124 0.912459313869 0.040535092354 +v 0.235724687576 1.107659101486 0.028177142143 +v 0.274882793427 1.085638523102 0.028672218323 +v 0.096796751022 0.524665117264 0.020752966404 +v 0.121049642563 1.164031744003 -0.039851784706 +v 0.109050750732 1.171761870384 -0.060386240482 +v 0.151132822037 1.143172383308 -0.073541879654 +v 0.162862539291 1.139242529869 -0.047275900841 +v 0.166463375092 1.129762411118 -0.013145327568 +v 0.125269412994 1.148490905762 -0.022257208824 +v 0.222014427185 1.136164307594 -0.085919082165 +v 0.229552507401 1.134870767593 -0.049831032753 +v 0.233881950378 1.128509044647 -0.008981227875 +v 0.281436681747 1.108168125153 -0.051254689693 +v 0.281991004944 1.102712631226 -0.009698688984 +v 0.317685604095 1.067490458488 -0.049807429314 +v 0.317203044891 1.065495610237 -0.009583413601 +v 0.306344747543 1.052000999451 0.026935875416 +v 0.343569040298 1.024486541748 -0.007518947124 +v 0.329200625420 1.013627648354 0.025783419609 +v 0.366793274879 0.985834360123 -0.007350325584 +v 0.354122877121 0.976988136768 0.026278495789 +v 0.334745645523 0.958747029305 0.052049517632 +v 0.379283428192 0.947536230087 0.020861685276 +v 0.362321138382 0.928932666779 0.043664336205 +v 0.342812895775 0.907195210457 0.044864654541 +v 0.314275741577 0.935671687126 0.057043790817 +v 0.319790363312 0.888074278831 0.029314041138 +v 0.379310607910 0.902640283108 0.024499237537 +v 0.358928322792 0.880074322224 0.019105792046 +v 0.338169336319 0.861247479916 0.001740396023 +v 0.400299787521 0.877586364746 0.025739133358 +v 0.380050063133 0.852149724960 0.022235631943 +v 0.363364696503 0.827350735664 0.010587811470 +v 0.362974047661 0.811894834042 -0.017841279507 +v 0.332549810410 0.850514173508 -0.031367659569 +v 0.376002192497 0.802355408669 -0.049095809460 +v 0.339113950729 0.838486850262 -0.071368515491 +v 0.312850952148 0.871554672718 -0.076692581177 +v 0.306100845337 0.872793436050 -0.043697237968 +v 0.402581334114 0.810562849045 -0.068494379520 +v 0.367998600006 0.846436321735 -0.105324327946 +v 0.326204538345 0.882910430431 -0.107103466988 +v 0.432064533234 0.831387817860 -0.069692969322 +v 0.409785628319 0.862663328648 -0.103722870350 +v 0.452204942703 0.860042333603 -0.057465374470 +v 0.432444095612 0.890474557877 -0.088653087616 +v 0.403483510017 0.924710273743 -0.103032827377 +v 0.390702843666 0.900007128716 -0.125450611115 +v 0.458554625511 0.884764671326 -0.038810074329 +v 0.440712213516 0.916401028633 -0.064721584320 +v 0.409626007080 0.946123480797 -0.076701641083 +v 0.377049446106 0.978414773941 -0.079899370670 +v 0.369030594826 0.959930837154 -0.107197761536 +v 0.434939265251 0.931571722031 -0.036256074905 +v 0.403420209885 0.955381631851 -0.043758153915 +v 0.375007867813 0.986278414726 -0.043334543705 +v 0.346902847290 1.024103283882 -0.045506417751 +v 0.346037387848 1.015392422676 -0.082815170288 +v 0.391106963158 0.955277502537 -0.011757612228 +v 0.418347239494 0.931938529015 -0.009633421898 +v 0.398629426956 0.921277165413 0.011540293694 +v 0.441792011261 0.907627224922 0.005505323410 +v 0.420485854149 0.897287666798 0.019965410233 +v 0.454711556435 0.901762425900 -0.017239570618 +v 0.312911748886 1.057415366173 -0.085565030575 +v 0.301878452301 1.036462783813 -0.110103130341 +v 0.341517090797 0.998458266258 -0.115687966347 +v 0.291906356812 1.012423157692 -0.127237200737 +v 0.328496098518 0.970709323883 -0.136209249496 +v 0.354727029800 0.934686720371 -0.121113419533 +v 0.311561107635 0.939342975616 -0.134227514267 +v 0.340052127838 0.908680558205 -0.124131619930 +v 0.367459774017 0.884051918983 -0.123385787010 +v 0.297220230103 0.911664009094 -0.117913901806 +v 0.289204835892 0.899315834045 -0.083201110363 +v 0.250025033951 1.053760290146 -0.137834787369 +v 0.264823913574 1.083865046501 -0.119606435299 +v 0.201839447021 1.117434144020 -0.118024945259 +v 0.189693689346 1.079212427139 -0.142952740192 +v 0.277281999588 1.102975010872 -0.089239239693 +v 0.120431184769 1.085181832314 -0.138198077679 +v 0.121253252029 1.037931799889 -0.155860960484 +v 0.184354066849 1.029958724976 -0.157751560211 +v 0.119925260544 1.132153749466 -0.108325600624 +v 0.123482465744 0.987731099129 -0.170279264450 +v 0.180538892746 0.979573845863 -0.163978517056 +v 0.125545501709 0.932765841484 -0.173250615597 +v 0.179258108139 0.925383329391 -0.162734568119 +v 0.227316141129 0.914090216160 -0.128659784794 +v 0.178707361221 0.866539001465 -0.151616394520 +v 0.224370002747 0.859528779984 -0.116147398949 +v 0.256502151489 0.857412219048 -0.071282267570 +v 0.259006500244 0.905853331089 -0.084065675735 +v 0.258020401001 0.867200314999 -0.023059964180 +v 0.263725519180 0.906981647015 -0.038188934326 +v 0.246686458588 0.885027527809 0.019917786121 +v 0.248519420624 0.927023947239 0.000404238701 +v 0.239131689072 0.904338777065 0.060729622841 +v 0.241918325424 0.948883771896 0.032647311687 +v 0.229748249054 0.932023048401 0.094542920589 +v 0.231833934784 0.972128450871 0.056386351585 +v 0.237094879150 0.996514856815 0.032092094421 +v 0.225894212723 0.997993648052 0.079689145088 +v 0.216531753540 0.964301168919 0.116260170937 +v 0.190495014191 0.998777031898 0.114465355873 +v 0.204521656036 1.026806235313 0.079624712467 +v 0.192690134048 0.921263933182 0.150567412376 +v 0.164333105087 0.961874485016 0.145105898380 +v 0.135314941406 1.002291202545 0.123882234097 +v 0.122396469116 0.928251743317 0.165373027325 +v 0.099461555481 0.973314642906 0.142395615578 +v 0.080953598022 1.017653703690 0.112643778324 +v 0.110545635223 1.040468931198 0.096353948116 +v 0.067555904388 1.051582455635 0.072920858860 +v 0.089736461639 1.065327763557 0.058615803719 +v 0.057373523712 0.952757716179 0.147553682327 +v 0.047913312912 1.000822305679 0.117389440536 +v 0.042551279068 1.041895747185 0.078767657280 +v 0.069515228271 0.905283331871 0.168992578983 +v 0.244445800781 0.817365288734 -0.006311953068 +v 0.244346380234 0.804270505905 -0.054641485214 +v 0.217851400375 0.751652359962 -0.033641099930 +v 0.227277755737 0.763818323612 0.012114584446 +v 0.197771310806 0.745314657688 -0.074247181416 +v 0.188985824585 0.683782935143 -0.054120063782 +v 0.209798336029 0.693763196468 -0.014226317406 +v 0.216273546219 0.801639676094 -0.098835766315 +v 0.174543857574 0.806066751480 -0.130712211132 +v 0.165594577789 0.745285034180 -0.103144109249 +v 0.123121976852 0.748481452465 -0.116453528404 +v 0.120306491852 0.673266887665 -0.099647700787 +v 0.158249378204 0.678283751011 -0.080645978451 +v 0.126316308975 0.812821507454 -0.142758727074 +v 0.126960277557 0.873750686646 -0.163805663586 +v 0.068856477737 0.984705030918 -0.177298188210 +v 0.055420398712 1.084348678589 -0.154314756393 +v 0.046322107315 1.128087520599 -0.128710865974 +v 0.075109720230 0.593776226044 -0.089249253273 +v 0.192573547363 0.621916353703 -0.036496400833 +v 0.203611850739 0.571760535240 -0.021339297295 +v 0.217868804932 0.595229387283 0.017003238201 +v 0.213207960129 0.638992846012 0.003613412380 +v 0.204703092575 0.652575969696 0.048748970032 +v 0.170325040817 0.665199697018 0.078543841839 +v 0.130563020706 0.677610635757 0.104269742966 +v 0.083450555801 0.650120198727 0.126545190811 +v 0.081408262253 0.691678225994 0.131133735180 +v 0.086372137070 0.729118704796 0.137566983700 +v 0.026894569397 0.740492343903 0.127000212669 +v 0.088793277740 0.606545627117 0.116948366165 +v 0.091482639313 0.568313062191 0.093596041203 +v 0.093423366547 0.540040552616 0.060054659843 +v 0.137021780014 0.550631523132 0.090929865837 +v 0.129982471466 0.524636745453 0.061635315418 +v 0.129219055176 0.512163639069 0.027145802975 +v 0.155890464783 0.512163281441 0.061540365219 +v 0.151852607727 0.501129508018 0.032996356487 +v 0.151466369629 0.490233093500 0.004889369011 +v 0.164501428604 0.473722547293 0.017774462700 +v 0.166211366653 0.483703285456 0.041170895100 +v 0.176519632339 0.462068229914 0.050208270550 +v 0.178006410599 0.457004278898 0.029782295227 +v 0.190201759338 0.459076434374 0.014697730541 +v 0.178750276566 0.478803396225 0.000907838345 +v 0.166320323944 0.497839301825 -0.015286624432 +v 0.207526922226 0.465957105160 0.009304404259 +v 0.199348926544 0.490522235632 -0.004005312920 +v 0.189775466919 0.514920592308 -0.020356297493 +v 0.225358963013 0.475811570883 0.017339110374 +v 0.221742391586 0.505469441414 0.004819691181 +v 0.213993549347 0.536153674126 -0.007584154606 +v 0.236834526062 0.485237836838 0.038113415241 +v 0.233140468597 0.520117580891 0.029869019985 +v 0.226602554321 0.556548476219 0.023947119713 +v 0.239451885223 0.491162627935 0.065631270409 +v 0.229833841324 0.528143048286 0.060667395592 +v 0.239911079407 0.454511433840 0.042522192001 +v 0.245521306992 0.457225382328 0.067053318024 +v 0.237636566162 0.455539733171 0.084717154503 +v 0.226967334747 0.489047199488 0.082951843739 +v 0.211964607239 0.523329734802 0.080300390720 +v 0.217800378799 0.450385510921 0.087392747402 +v 0.206350564957 0.480243116617 0.084223449230 +v 0.190374135971 0.509804129601 0.078286647797 +v 0.183592557907 0.468741506338 0.072134256363 +v 0.173839807510 0.494874238968 0.062670707703 +v 0.168895244598 0.532966911793 0.083921194077 +v 0.194311380386 0.443297296762 0.078714847565 +v 0.186420440674 0.440069437027 0.057327508926 +v 0.193065404892 0.417387604713 0.057190775871 +v 0.203305721283 0.417975842953 0.076225996017 +v 0.205404996872 0.391247153282 0.066273987293 +v 0.194074869156 0.392329305410 0.049775362015 +v 0.190062761307 0.393557667732 0.030566751957 +v 0.192551136017 0.417236864567 0.037556171417 +v 0.188753843307 0.438155025244 0.037616431713 +v 0.199758052826 0.395951777697 0.012652158737 +v 0.201189756393 0.418664783239 0.020802915096 +v 0.198827505112 0.439186781645 0.022741913795 +v 0.220117330551 0.398994356394 0.008019566536 +v 0.217715263367 0.422239899635 0.015295565128 +v 0.213492631912 0.443650007248 0.018471002579 +v 0.236896991730 0.400686651468 0.011681675911 +v 0.232114553452 0.425558745861 0.022678315639 +v 0.227942943573 0.449451982975 0.025451838970 +v 0.247877597809 0.399994522333 0.024417579174 +v 0.242132186890 0.427206337452 0.038007915020 +v 0.250198125839 0.367911368608 0.023290991783 +v 0.239138841629 0.370674878359 0.011764705181 +v 0.234215259552 0.326959192753 0.024860799313 +v 0.239667415619 0.325394153595 0.032651007175 +v 0.239298582077 0.323285490274 0.041500747204 +v 0.250197172165 0.363285213709 0.041953921318 +v 0.248555660248 0.397186785936 0.044638574123 +v 0.236860036850 0.320421725512 0.050307810307 +v 0.239134788513 0.358723700047 0.058663964272 +v 0.239214897156 0.393967717886 0.063256323338 +v 0.230540990829 0.316507697105 0.058507502079 +v 0.225771665573 0.354905188084 0.069335877895 +v 0.224077701569 0.390892267227 0.075807273388 +v 0.220066547394 0.317402213812 0.054555177689 +v 0.211529970169 0.357036679983 0.059551179409 +v 0.212295293808 0.320155978203 0.044720351696 +v 0.198891878128 0.359852999449 0.045892953873 +v 0.208841085434 0.323172211647 0.033653140068 +v 0.194800376892 0.364280372858 0.028407096863 +v 0.212930202484 0.325841575861 0.024493038654 +v 0.203210353851 0.368161261082 0.013654232025 +v 0.223614931107 0.327202796936 0.020913243294 +v 0.221999883652 0.371129333973 0.011114120483 +v 0.299593925476 0.875928103924 -0.016731262207 +v 0.305377960205 0.881739974022 0.006167829037 +v 0.124761581421 1.127089619637 -0.005370020866 +v 0.144920587540 1.114051818848 -0.000504493713 +v 0.320274353027 0.867451727390 -0.003048002720 +v 0.317344665527 0.863656222820 -0.015280425549 +v 0.081691741943 1.171155452728 -0.082533001900 +v 0.489620566368 0.754746913910 0.055047810078 +v 0.492703795433 0.744488835335 0.057417750359 +v 0.500872254372 0.748085975647 0.052790284157 +v 0.503330826759 0.759612381458 0.050021946430 +v 0.455907583237 0.767686963081 0.180662214756 +v 0.448605775833 0.763490140438 0.179388940334 +v 0.454131126404 0.774452686310 0.183209419250 +v 0.512239336967 0.719803869724 0.108971118927 +v 0.513665318489 0.712346911430 0.098931610584 +v 0.501137852669 0.723156571388 0.088684141636 +v 0.498448848724 0.729723930359 0.098093867302 +v 0.506369471550 0.735136747360 0.129543185234 +v 0.510510444641 0.727772593498 0.119067549706 +v 0.495698451996 0.736607313156 0.107330560684 +v 0.491642713547 0.742265939713 0.117717981339 +v 0.492995619774 0.730934858322 0.070337891579 +v 0.488109588623 0.732578217983 0.080537736416 +v 0.505285978317 0.719612061977 0.078231096268 +v 0.525172829628 0.681995272636 0.167945027351 +v 0.521392345428 0.683978497982 0.175799846649 +v 0.521812319756 0.691806197166 0.180061340332 +v 0.519139647484 0.787753224373 0.090079247952 +v 0.529436826706 0.773348331451 0.102756619453 +v 0.523522257805 0.779470205307 0.115589499474 +v 0.511284351349 0.795331001282 0.102586388588 +v 0.539867997169 0.729618787766 0.089468300343 +v 0.531417727470 0.747590124607 0.073452115059 +v 0.527307748795 0.738277912140 0.066966652870 +v 0.535834193230 0.725835144520 0.077996909618 +v 0.523569345474 0.720503687859 0.128831326962 +v 0.526804924011 0.719818413258 0.135298848152 +v 0.537645578384 0.725556254387 0.133212625980 +v 0.540601491928 0.730802595615 0.123283326626 +v 0.534850597382 0.748413085938 0.143720269203 +v 0.533050775528 0.738149583340 0.147188425064 +v 0.521691203117 0.732560038567 0.148685574532 +v 0.515544414520 0.738024771214 0.147808253765 +v 0.521300554276 0.711467444897 0.118006944656 +v 0.506483316422 0.747644484043 0.153991520405 +v 0.502677559853 0.742156207561 0.140237092972 +v 0.501390576363 0.751134574413 0.149526238441 +v 0.541826605797 0.742310583591 0.123451471329 +v 0.541710376740 0.746488988400 0.128475904465 +v 0.540703296661 0.751621305943 0.123491525650 +v 0.541983366013 0.746656119823 0.119618058205 +v 0.532743930817 0.764434099197 0.148749291897 +v 0.529609441757 0.768829822540 0.144122123718 +v 0.533065080643 0.763605058193 0.139945745468 +v 0.534711122513 0.759675085545 0.143647730350 +v 0.519114732742 0.724147796631 0.142600655556 +v 0.515840530396 0.728727519512 0.137992262840 +v 0.540112376213 0.734770715237 0.138869524002 +v 0.540696740150 0.740617036819 0.133606433868 +v 0.522036075592 0.709590852261 0.079642355442 +v 0.515752315521 0.708322763443 0.088428199291 +v 0.523067712784 0.698891818523 0.096575498581 +v 0.528108596802 0.700006604195 0.087751507759 +v 0.538988947868 0.715688526630 0.081110537052 +v 0.540867447853 0.712676644325 0.084093391895 +v 0.543041229248 0.715164959431 0.088397443295 +v 0.540838479996 0.719581723213 0.084006726742 +v 0.506251692772 0.761048257351 0.153887510300 +v 0.509725928307 0.757334053516 0.158531010151 +v 0.525017738342 0.770337998867 0.149724423885 +v 0.527247309685 0.767623901367 0.152778089046 +v 0.526124477386 0.703662514687 0.107429325581 +v 0.541818618774 0.721548616886 0.089130938053 +v 0.543096542358 0.717609286308 0.092653989792 +v 0.514024734497 0.685954689980 0.172047317028 +v 0.515303611755 0.692099928856 0.177232980728 +v 0.518338084221 0.682923436165 0.165953993797 +v 0.535277485847 0.708344936371 0.147681176662 +v 0.524157166481 0.704845070839 0.148237943649 +v 0.523532152176 0.699540019035 0.152397453785 +v 0.534913420677 0.702481508255 0.152555465698 +v 0.519562959671 0.716747760773 0.161118566990 +v 0.530426263809 0.720963180065 0.161624073982 +v 0.530594706535 0.714648783207 0.166401624680 +v 0.519082903862 0.711292505264 0.165497899055 +v 0.516831398010 0.709372937679 0.154453039169 +v 0.516183376312 0.703925609589 0.158576548100 +v 0.538677573204 0.715157747269 0.155361831188 +v 0.538471341133 0.711140751839 0.158608913422 +v 0.533556699753 0.693566560745 0.159267961979 +v 0.521171927452 0.692192018032 0.156506180763 +v 0.519478797913 0.686819851398 0.160811662674 +v 0.531105518341 0.687699437141 0.163550257683 +v 0.516932487488 0.704223155975 0.170683681965 +v 0.529407978058 0.705302298069 0.173214852810 +v 0.527298688889 0.699028372765 0.177262067795 +v 0.515662312508 0.698305785656 0.174661695957 +v 0.512620925903 0.697871327400 0.162089228630 +v 0.511643767357 0.691746532917 0.166646361351 +v 0.537143468857 0.698810040951 0.168046832085 +v 0.535217404366 0.695275962353 0.170467853546 +v 0.537539839745 0.719420015812 0.138411521912 +v 0.526125192642 0.715106844902 0.139984965324 +v 0.524770259857 0.710178494453 0.144071102142 +v 0.534347414970 0.711749315262 0.141898036003 +v 0.521291613579 0.727184534073 0.152451038361 +v 0.531763315201 0.732593894005 0.152449965477 +v 0.526586532593 0.727051615715 0.158230066299 +v 0.519834280014 0.721794843674 0.156188130379 +v 0.519172072411 0.719282746315 0.146682977676 +v 0.518319606781 0.714717566967 0.150376081467 +v 0.542425036430 0.726674139500 0.146438956261 +v 0.541626691818 0.720945656300 0.142000854015 +v 0.540896654129 0.716939508915 0.144021809101 +v 0.542814254761 0.723198592663 0.149447917938 +v 0.538549065590 0.730741381645 0.152049660683 +v 0.537324070930 0.727843642235 0.155685722828 +v 0.540292024612 0.714531242847 0.147353291512 +v 0.541417002678 0.719230473042 0.152375280857 +v 0.537661671638 0.723493218422 0.157489120960 +v 0.522315740585 0.696558475494 0.153652429581 +v 0.532957553864 0.696634590626 0.154145359993 +v 0.526823282242 0.710777997971 0.170685768127 +v 0.517996311188 0.707997262478 0.167178988457 +v 0.514600038528 0.702156662941 0.159258484840 +v 0.540738582611 0.708825647831 0.160881042480 +v 0.539718866348 0.703809440136 0.156380772591 +v 0.539808750153 0.700395345688 0.157848179340 +v 0.541602373123 0.705698668957 0.163604915142 +v 0.537238717079 0.712285995483 0.166008591652 +v 0.536659955978 0.709942877293 0.169121146202 +v 0.539298772812 0.698089897633 0.160789132118 +v 0.540274739265 0.702055811882 0.166186392307 +v 0.536662101746 0.706197261810 0.170638501644 +v 0.540821313858 0.729771852493 0.143572688103 +v 0.534619212151 0.690335750580 0.174641072750 +v 0.534919500351 0.687159657478 0.171165943146 +v 0.534467816353 0.684770822525 0.172516167164 +v 0.533648490906 0.687150001526 0.176869094372 +v 0.533669948578 0.692957580090 0.178517937660 +v 0.532203197479 0.690804123878 0.179874420166 +v 0.528633236885 0.684847950935 0.177231550217 +v 0.531227588654 0.682927608490 0.170618474483 +v 0.534844160080 0.687096238136 0.168217778206 +v 0.534787893295 0.692861855030 0.172489643097 +v 0.532088637352 0.695515155792 0.178507089615 +v 0.528244614601 0.691161870956 0.180853903294 +v 0.542320370674 0.728663325310 0.099375784397 +v 0.542763829231 0.724370181561 0.102947711945 +v 0.543692111969 0.728317677975 0.108140170574 +v 0.543245792389 0.733878433704 0.103289365768 +v 0.539205074310 0.750491321087 0.133062005043 +v 0.538523197174 0.754346132278 0.129205644131 +v 0.543280839920 0.732618570328 0.112749457359 +v 0.543036103249 0.737028181553 0.108903169632 +v 0.531576871872 0.715822875500 0.076436996460 +v 0.537781238556 0.706454157829 0.084965169430 +v 0.516264319420 0.770024180412 0.150568723679 +v 0.521349906921 0.763900756836 0.157923758030 +v 0.548167467117 0.667905509472 0.148447632790 +v 0.546362757683 0.670237898827 0.157298624516 +v 0.545064449310 0.678077816963 0.161700785160 +v 0.530092954636 0.702552258968 0.114723563194 +v 0.540755271912 0.707639873028 0.112147867680 +v 0.542485356331 0.714294910431 0.102276742458 +v 0.538369178772 0.719116032124 0.127693057060 +v 0.527642726898 0.713942587376 0.130929112434 +v 0.524290800095 0.705752372742 0.123955726624 +v 0.543419122696 0.722295403481 0.112965941429 +v 0.543574094772 0.715997815132 0.118450582027 +v 0.538602828979 0.668676257133 0.156609654427 +v 0.538909435272 0.675573229790 0.161329925060 +v 0.541661739349 0.665838003159 0.149098932743 +v 0.544516205788 0.691595375538 0.125912368298 +v 0.534333825111 0.686268508434 0.128116250038 +v 0.535755872726 0.680908918381 0.132590770721 +v 0.546100020409 0.686485588551 0.130807101727 +v 0.530930757523 0.697768330574 0.144220829010 +v 0.540539383888 0.703372836113 0.142738342285 +v 0.542316913605 0.698138594627 0.147101879120 +v 0.532684803009 0.692637383938 0.148399233818 +v 0.528201103210 0.689944863319 0.137334823608 +v 0.529621005058 0.684429168701 0.141547918320 +v 0.547267079353 0.699201166630 0.134586215019 +v 0.548285603523 0.695777177811 0.137413918972 +v 0.549032688141 0.678514897823 0.138707518578 +v 0.538316488266 0.672254383564 0.139705061913 +v 0.539997816086 0.668147265911 0.143931210041 +v 0.549917817116 0.673808932304 0.142802059650 +v 0.535045385361 0.684714317322 0.155533432961 +v 0.545179843903 0.690104901791 0.154163777828 +v 0.546261072159 0.685271203518 0.157988131046 +v 0.536641716957 0.680283010006 0.159242749214 +v 0.531511306763 0.676025629044 0.148519396782 +v 0.533580183983 0.671684741974 0.152756392956 +v 0.551849842072 0.686028897762 0.146424531937 +v 0.552071809769 0.683168113232 0.148839414120 +v 0.542264461517 0.702010095119 0.117023289204 +v 0.531574487686 0.696618914604 0.119827747345 +v 0.533209562302 0.691803276539 0.124981045723 +v 0.542015671730 0.694402575493 0.120017051697 +v 0.527886033058 0.708098948002 0.135989665985 +v 0.538574695587 0.713628768921 0.133871257305 +v 0.536827564240 0.708746492863 0.140737891197 +v 0.529211044312 0.702663362026 0.140047073364 +v 0.525272846222 0.700050890446 0.129155695438 +v 0.527511239052 0.695425748825 0.133208036423 +v 0.547236084938 0.709693551064 0.126150548458 +v 0.546826839447 0.704466640949 0.120804965496 +v 0.547609567642 0.700840175152 0.122550547123 +v 0.548392534256 0.706934809685 0.128966629505 +v 0.544142603874 0.712298274040 0.132492303848 +v 0.544166088104 0.709887802601 0.136017978191 +v 0.548007726669 0.698595046997 0.125999212265 +v 0.548170447350 0.703358292580 0.131739497185 +v 0.545077085495 0.706430852413 0.137581646442 +v 0.536803126335 0.676721870899 0.136981487274 +v 0.546262025833 0.680178046227 0.133575916290 +v 0.541578054428 0.694177865982 0.152556836605 +v 0.533885598183 0.688042283058 0.151733100414 +v 0.530973911285 0.680204808712 0.144950151443 +v 0.550747156143 0.694574475288 0.139328360558 +v 0.550565600395 0.689205110073 0.134101927280 +v 0.551587820053 0.686272799969 0.135594725609 +v 0.551995396614 0.692323207855 0.141612648964 +v 0.547929286957 0.697340607643 0.145395517349 +v 0.548542022705 0.695518493652 0.148347735405 +v 0.552347660065 0.684621572495 0.138660132885 +v 0.552754878998 0.689439475536 0.144070029259 +v 0.549746870995 0.692574083805 0.149577498436 +v 0.544905066490 0.711640059948 0.123353600502 +v 0.554090023041 0.679983973503 0.152069270611 +v 0.554366350174 0.676740288734 0.148733615875 +v 0.555369496346 0.674915611744 0.149775743484 +v 0.555078744888 0.677470684052 0.154006123543 +v 0.553590416908 0.682599842548 0.155873715878 +v 0.553566455841 0.680583536625 0.157422304153 +v 0.552198171616 0.673865497112 0.155969619751 +v 0.553200006485 0.671683013439 0.148962199688 +v 0.553523778915 0.675942182541 0.146138072014 +v 0.552976369858 0.681672930717 0.150468468666 +v 0.551427602768 0.684173226357 0.156823754311 +v 0.550627708435 0.679804623127 0.159817218781 +v 0.561773300171 0.667005836964 0.108489274979 +v 0.562437891960 0.667055547237 0.116291821003 +v 0.561485767365 0.672465205193 0.121660053730 +v 0.532580971718 0.693629801273 0.092338800430 +v 0.540351271629 0.699979722500 0.089606344700 +v 0.542522072792 0.705165266991 0.104129672050 +v 0.533750057220 0.698765039444 0.106722295284 +v 0.530255436897 0.693876147270 0.100649118423 +v 0.544795274734 0.705484151840 0.095455408096 +v 0.543451189995 0.710095763206 0.092419564724 +v 0.556688308716 0.663857758045 0.117876172066 +v 0.557191729546 0.668581724167 0.123596191406 +v 0.557321429253 0.663886785507 0.110297203064 +v 0.550040364265 0.687514245510 0.096655666828 +v 0.542815566063 0.681384682655 0.099399805069 +v 0.546362757683 0.677153646946 0.101630270481 +v 0.552957534790 0.683309435844 0.099402546883 +v 0.543991684914 0.686676859856 0.113965272903 +v 0.550568699837 0.692732572556 0.109966218472 +v 0.552548170090 0.688747942448 0.112151980400 +v 0.546415090561 0.682839512825 0.116651713848 +v 0.540330171585 0.681044578552 0.107999801636 +v 0.543417692184 0.676724195480 0.110768854618 +v 0.553754329681 0.691745519638 0.102674782276 +v 0.555277824402 0.688932120800 0.104441046715 +v 0.558210253716 0.676781058311 0.102892100811 +v 0.551411271095 0.670395851135 0.105135142803 +v 0.554313540459 0.666436553001 0.107223451138 +v 0.560604929924 0.672852039337 0.104644954205 +v 0.551035642624 0.676183104515 0.121510207653 +v 0.557325959206 0.682806491852 0.115938246250 +v 0.559729456902 0.679148495197 0.118263065815 +v 0.554118156433 0.672260820866 0.123688340187 +v 0.547722101212 0.669512152672 0.114816784859 +v 0.551224112511 0.665718138218 0.116806447506 +v 0.561138749123 0.681422650814 0.108677029610 +v 0.562478303909 0.679623842239 0.109518647194 +v 0.544580936432 0.695759892464 0.091603696346 +v 0.536828517914 0.688898324966 0.094865858555 +v 0.539610147476 0.684746026993 0.097163736820 +v 0.545929908752 0.689909696579 0.093230366707 +v 0.538297772408 0.693749725819 0.109103918076 +v 0.546232938766 0.700979232788 0.105687260628 +v 0.547426342964 0.696206927299 0.109800815582 +v 0.541006326675 0.689810454845 0.111045122147 +v 0.534368872643 0.688101053238 0.103304982185 +v 0.538012027740 0.685010075569 0.105363309383 +v 0.550858020782 0.700949549675 0.097763538361 +v 0.549491643906 0.697909832001 0.093589007854 +v 0.550813794136 0.695187926292 0.094435930252 +v 0.552393674850 0.698510527611 0.099156975746 +v 0.550143718719 0.701255559921 0.102890193462 +v 0.551577091217 0.699175059795 0.104868292809 +v 0.552265882492 0.693053603172 0.096573829651 +v 0.553521633148 0.695399820805 0.100726366043 +v 0.552729487419 0.696392178535 0.105458736420 +v 0.549271106720 0.673505485058 0.104050397873 +v 0.554521441460 0.678445816040 0.100325822830 +v 0.553958654404 0.685331046581 0.116456747055 +v 0.548520803452 0.679022014141 0.118942022324 +v 0.546076059341 0.673519492149 0.112744927406 +v 0.557391166687 0.687807381153 0.105319499969 +v 0.556760072708 0.685200691223 0.101653337479 +v 0.558141469955 0.683105111122 0.102121174335 +v 0.559174299240 0.686151802540 0.106331229210 +v 0.556374430656 0.688750267029 0.109533429146 +v 0.557712197304 0.687251687050 0.111271739006 +v 0.559688806534 0.681563556194 0.103728890419 +v 0.560254931450 0.683878600597 0.107563853264 +v 0.559006214142 0.685161352158 0.111566960812 +v 0.547902107239 0.702368199825 0.096936225891 +v 0.564785003662 0.677279114723 0.110871613026 +v 0.565037727356 0.675400853157 0.107921242714 +v 0.566116333008 0.673743724823 0.108678221703 +v 0.566264390945 0.674956560135 0.112121045589 +v 0.564288020134 0.678330838680 0.113956749439 +v 0.565272808075 0.676626622677 0.115107536316 +v 0.565854787827 0.671615004539 0.113909065723 +v 0.565153121948 0.671011805534 0.108082771301 +v 0.564292907715 0.675019502640 0.105877757072 +v 0.563846707344 0.678827285767 0.109954953194 +v 0.563235521317 0.679445624352 0.115319430828 +v 0.564523458481 0.675631463528 0.117880046368 +v 0.508027791977 0.705808162689 0.185932517052 +v 0.503305912018 0.708674609661 0.193543970585 +v 0.504237651825 0.716933488846 0.197534382343 +v 0.514192581177 0.739058196545 0.152600765228 +v 0.527436256409 0.742018103600 0.152551293373 +v 0.521233081818 0.757511794567 0.163559794426 +v 0.510088562965 0.753134310246 0.162780582905 +v 0.506630778313 0.744708418846 0.157582461834 +v 0.531264781952 0.752472937107 0.158268332481 +v 0.532356500626 0.758174300194 0.153628230095 +v 0.496481537819 0.711037337780 0.188681483269 +v 0.497926712036 0.717670679092 0.193979084492 +v 0.501640081406 0.707217693329 0.182956755161 +v 0.524531006813 0.727519810200 0.166848421097 +v 0.513245224953 0.726689815521 0.165383756161 +v 0.511902570724 0.722795486450 0.168308913708 +v 0.523548841476 0.723003327847 0.171342372894 +v 0.509620904922 0.739431321621 0.176361441612 +v 0.520829081535 0.741701781750 0.179257631302 +v 0.519819498062 0.736979722977 0.183732628822 +v 0.508016705513 0.736198961735 0.179792046547 +v 0.506378054619 0.732324659824 0.169591844082 +v 0.504464268684 0.729115188122 0.172098159790 +v 0.528473019600 0.734543383121 0.174971342087 +v 0.527720928192 0.731290459633 0.178188145161 +v 0.518843531609 0.715346276760 0.178183495998 +v 0.507250308990 0.715426683426 0.173481583595 +v 0.504154086113 0.710596859455 0.177767276764 +v 0.515055418015 0.710507869720 0.182130753994 +v 0.502767324448 0.729494333267 0.186172127724 +v 0.514684081078 0.728843152523 0.190630316734 +v 0.510843634605 0.723370432854 0.194603562355 +v 0.499645948410 0.723829448223 0.190759420395 +v 0.498818874359 0.722565889359 0.177140593529 +v 0.495809078217 0.716866850853 0.182247757912 +v 0.521199822426 0.721097052097 0.187072217464 +v 0.518935918808 0.718163132668 0.189251482487 +v 0.525767803192 0.736793160439 0.157169640064 +v 0.513168215752 0.734809756279 0.157476186752 +v 0.513290882111 0.730967700481 0.161826848984 +v 0.522656917572 0.730214118958 0.160739362240 +v 0.510023117065 0.747913599014 0.168063998222 +v 0.522023916245 0.752246916294 0.169538915157 +v 0.518543243408 0.747491836548 0.175433754921 +v 0.509775161743 0.743234395981 0.172257661819 +v 0.506842017174 0.740149796009 0.162537455559 +v 0.507179975510 0.736026167870 0.166410088539 +v 0.533026695251 0.745195150375 0.165490031242 +v 0.531216979027 0.738591969013 0.161130785942 +v 0.530287504196 0.734632968903 0.163438796997 +v 0.532566308975 0.741663217545 0.168802976608 +v 0.529102921486 0.749674737453 0.170213341713 +v 0.527972817421 0.746949017048 0.173987030983 +v 0.529739618301 0.732569515705 0.167208254337 +v 0.531125068665 0.737987637520 0.172155261040 +v 0.527689337730 0.742842078209 0.176281332970 +v 0.509422302246 0.719553887844 0.170410692692 +v 0.519722938538 0.717905282974 0.172781825066 +v 0.514890789986 0.734458565712 0.187463164330 +v 0.505210161209 0.733366072178 0.182220578194 +v 0.502490282059 0.726530313492 0.174150884151 +v 0.528773427010 0.728935301304 0.181077003479 +v 0.527782201767 0.723789393902 0.176339983940 +v 0.526475429535 0.720672547817 0.177816569805 +v 0.527674317360 0.726253092289 0.183694541454 +v 0.525176644325 0.733416676521 0.184952259064 +v 0.523093461990 0.731555163860 0.187405228615 +v 0.524735569954 0.719069778919 0.180645465851 +v 0.525143027306 0.723502397537 0.185845911503 +v 0.521940231323 0.728395640850 0.189189791679 +v 0.531512737274 0.747916936874 0.162386298180 +v 0.516651630402 0.713900744915 0.192825019360 +v 0.516959309578 0.710621714592 0.189882099628 +v 0.516236543655 0.708358943462 0.191311597824 +v 0.515579700470 0.710943758488 0.195346117020 +v 0.515369772911 0.716586649418 0.195921123028 +v 0.514391779900 0.714817166328 0.197931408882 +v 0.510539889336 0.709055662155 0.195576369762 +v 0.513627529144 0.706451058388 0.189301311970 +v 0.517277002335 0.710314393044 0.187095999718 +v 0.517525792122 0.716093361378 0.190888464451 +v 0.514751195908 0.719347119331 0.196116745472 +v 0.510549068451 0.715662777424 0.198681712151 +v 0.533120870590 0.762782216072 0.130480825901 +v 0.524248719215 0.772845745087 0.138786017895 +v 0.540866613388 0.746797680855 0.109364151955 +v 0.537410974503 0.759103238583 0.116162776947 +v 0.540438890457 0.742126762867 0.095553338528 +v 0.520689725876 0.728452146053 0.065447509289 +v 0.512445688248 0.721606135368 0.069535374641 +v 0.484276175499 0.737580657005 0.089107573032 +v 0.532676100731 0.765493094921 0.091823399067 +v 0.533045768738 0.757094204426 0.081643581390 +v 0.514222741127 0.784138381481 0.129911184311 +v 0.490095019341 0.767989397049 0.145252108574 +v 0.479055404663 0.768541455269 0.143870294094 +v 0.488378524780 0.780031323433 0.144005358219 +v 0.498183012009 0.777795016766 0.142598867416 +v 0.481902122498 0.759345829487 0.139733493328 +v 0.467978596687 0.763386905193 0.133951485157 +v 0.455418944359 0.777963399887 0.119988799095 +v 0.451926827431 0.777264595032 0.134350359440 +v 0.458689928055 0.767885684967 0.141088008881 +v 0.468816995621 0.769495069981 0.148243069649 +v 0.476413726807 0.779487848282 0.150034487247 +v 0.438565135002 0.771156847477 0.177375793457 +v 0.441770315170 0.764434158802 0.175460696220 +v 0.444827079773 0.770441770554 0.183847427368 +v 0.469913721085 0.779009222984 0.155741333961 +v 0.463364720345 0.769138574600 0.153375625610 +v 0.460401535034 0.767174780369 0.158601582050 +v 0.467330098152 0.775935709476 0.162042737007 +v 0.453510165215 0.769425153732 0.147249221802 +v 0.450202226639 0.768634498119 0.153188824654 +v 0.467652678490 0.791541039944 0.152924060822 +v 0.464564323425 0.787662565708 0.161086738110 +v 0.456722617149 0.792148888111 0.148283004761 +v 0.454262137413 0.790213525295 0.153603911400 +v 0.449564695358 0.782195746899 0.142867326736 +v 0.445333719254 0.781309008598 0.150482535362 +v 0.462369918823 0.796061277390 0.131073176861 +v 0.470566511154 0.799281775951 0.136529088020 +v 0.469121217728 0.797714054585 0.143102586269 +v 0.460547566414 0.795852959156 0.138329267502 +v 0.455207109451 0.789058446884 0.126723527908 +v 0.453316926956 0.788498997688 0.133789181709 +v 0.477501153946 0.792452573776 0.146006584167 +v 0.465461015701 0.796401441097 0.147136926651 +v 0.458685755730 0.794838547707 0.143734753132 +v 0.453046441078 0.789503097534 0.139946758747 +v 0.477824330330 0.801583707333 0.131692588329 +v 0.462747812271 0.795654177666 0.121492981911 +v 0.461746931076 0.769132852554 0.174213290215 +v 0.453706622124 0.761957705021 0.170404195786 +v 0.443747997284 0.765161931515 0.166959524155 +v 0.460104227066 0.781512916088 0.175598621368 +v 0.445243358612 0.784041821957 0.176206707954 +v 0.449878454208 0.784194827080 0.178927242756 +v 0.448585391045 0.782106339931 0.182242095470 +v 0.443793654442 0.781242489815 0.181344807148 +v 0.440421819687 0.782552838326 0.174964666367 +v 0.439622640610 0.780634343624 0.178736805916 +v 0.438029885292 0.777883410454 0.165846407413 +v 0.457392096519 0.764703154564 0.162105917931 +v 0.465457439423 0.772188305855 0.166752159595 +v 0.447040438652 0.767057418823 0.158573865891 +v 0.465133786201 0.783054172993 0.168668568134 +v 0.452129364014 0.790718674660 0.158209085464 +v 0.459192514420 0.790737628937 0.162641108036 +v 0.459162950516 0.789255976677 0.167319536209 +v 0.450338006020 0.789745509624 0.162790656090 +v 0.445508122444 0.787147641182 0.154866278172 +v 0.442550182343 0.785621106625 0.158436417580 +v 0.440964460373 0.777064740658 0.156837046146 +v 0.456962108612 0.787429749966 0.170820236206 +v 0.448460698128 0.787783861160 0.167056441307 +v 0.441197395325 0.784746885300 0.163089811802 +v 0.447333574295 0.785258412361 0.169726729393 +v 0.443022251129 0.777300119400 0.184506356716 +v 0.450631856918 0.780292212963 0.183982253075 +v 0.453623771667 0.784703671932 0.178378582001 +v 0.445952057838 0.786179065704 0.172527611256 +v 0.438473701477 0.781861722469 0.171767473221 +v 0.437908291817 0.777420401573 0.178881585598 +v 0.492766499519 0.755644321442 0.143515646458 +v 0.486923098564 0.747458815575 0.130217909813 +v 0.466797590256 0.757182359695 0.099651396275 +v 0.472083091736 0.750997185707 0.089635670185 +v 0.469869136810 0.760206878185 0.083161294460 +v 0.463792681694 0.773227989674 0.097641050816 +v 0.480604887009 0.743164718151 0.097418367863 +v 0.509183526039 0.740819334984 0.056642234325 +v 0.515854835510 0.750867664814 0.056534111500 +v 0.500680327415 0.800476849079 0.113281011581 +v 0.480252742767 0.809417188168 0.104322493076 +v 0.496218204498 0.805853843689 0.093608915806 +v 0.494943737984 0.789026916027 0.136653363705 +v 0.501828312874 0.788901865482 0.133081078529 +v 0.507851958275 0.797888576984 0.081428110600 +v 0.522942423820 0.779709160328 0.077857553959 +v 0.499507188797 0.765030682087 0.148840188980 +v 0.507470130920 0.774820327759 0.144708752632 +v 0.476036071777 0.746732592583 0.106510400772 +v 0.493361711502 0.803006708622 0.122841835022 +v 0.478899002075 0.807841002941 0.117558896542 +v 0.463644027710 0.796741485596 0.111424744129 +v 0.465716123581 0.794997811317 0.103478550911 +v 0.458229780197 0.777908682823 0.107420504093 +v 0.462887525558 0.761031866074 0.109043002129 +v 0.471899509430 0.750320196152 0.116126954556 +v 0.478152394295 0.753174483776 0.131771326065 +v 0.468824982643 0.755779623985 0.124225437641 +v 0.461404800415 0.763227701187 0.116893410683 +v 0.489722132683 0.797489106655 0.133335888386 +v 0.486714601517 0.789863348007 0.141924619675 +v 0.484797358513 0.741189062595 0.067133903503 +v 0.478503465652 0.751935124397 0.068854808807 +v 0.500882506371 0.734169185162 0.061571240425 +v 0.477385044098 0.744656562805 0.080763101578 +v 0.481624126434 0.739364206791 0.075847864151 +v 0.500677943230 0.775840044022 0.048178792000 +v 0.488707780838 0.765670180321 0.051871418953 +v 0.477584242821 0.762718737125 0.063034832478 +v 0.467450737953 0.766845524311 0.076912343502 +v 0.461498498917 0.778625905514 0.089994966984 +v 0.461806297302 0.795562386513 0.096759736538 +v 0.470135807991 0.809676170349 0.096153378487 +v 0.483797073364 0.812756240368 0.088045477867 +v 0.497678637505 0.805696189404 0.075719475746 +v 0.504785418510 0.791619062424 0.059249997139 +v 0.513334751129 0.788233518600 0.068128407001 +v 0.511568665504 0.770020723343 0.053026437759 +v 0.520908117294 0.761221706867 0.061087131500 +v 0.497784495354 0.788155913353 0.046932697296 +v 0.488117575645 0.775684356689 0.047841131687 +v 0.475840330124 0.770089447498 0.057217180729 +v 0.463661313057 0.771884500980 0.069685220718 +v 0.455235481262 0.782279491425 0.081061065197 +v 0.454746246338 0.798582255840 0.087480664253 +v 0.461082696915 0.812864422798 0.088064253330 +v 0.473519444466 0.820378422737 0.082788586617 +v 0.488731861115 0.816120684147 0.070775330067 +v 0.498112678528 0.803522765636 0.056562244892 +v 0.494563221931 0.799096226692 0.042310714722 +v 0.486902475357 0.808524429798 0.030907094479 +v 0.478900671005 0.793341755867 0.029809832573 +v 0.486203432083 0.785064756870 0.041563153267 +v 0.464779496193 0.783073127270 0.035595595837 +v 0.472564697266 0.777089834213 0.049066007137 +v 0.450284838676 0.780604720116 0.044155120850 +v 0.458022236824 0.776483118534 0.058857560158 +v 0.440367698669 0.784753084183 0.049066960812 +v 0.443802475929 0.787280976772 0.064302384853 +v 0.444123268127 0.804896831512 0.073245406151 +v 0.451916456223 0.821180701256 0.076650619507 +v 0.464986562729 0.832542598248 0.073360800743 +v 0.480245232582 0.831362009048 0.059292852879 +v 0.481340765953 0.834166049957 0.044129669666 +v 0.492998480797 0.814772903919 0.050042569637 +v 0.486271023750 0.822800278664 0.037332177162 +v 0.523271918297 0.770754814148 0.068353176117 +v 0.514518499374 0.778774738312 0.058889150620 +v 0.507184267044 0.776329338551 0.050279438496 +v 0.508969664574 0.781902492046 0.054183304310 +v 0.244488239288 0.426662117243 0.058280527592 +v 0.238626718521 0.424758225679 0.073367774487 +v 0.224532604218 0.421156793833 0.082624495029 +v 0.024168014526 0.813921332359 0.149686336517 +v -0.045492410660 0.811454951763 0.138143301010 +v -0.043429851532 0.849619209766 0.152232885361 +v -0.103686809540 0.858773767948 0.124039173126 +v -0.105726003647 0.821566998959 0.105698108673 +v -0.216044902802 1.015913844109 -0.065555334091 +v -0.209439516068 0.999427437782 -0.058619439602 +v -0.211006164551 0.987861990929 -0.064142704010 +v -0.230187892914 0.988817870617 -0.073895573616 +v -0.197565555573 0.993671536446 -0.052417397499 +v -0.196903944016 0.968688607216 -0.066415429115 +v -0.226006031036 0.954002797604 -0.069144666195 +v -0.186616420746 0.850906968117 -0.171889841557 +v -0.197167158127 0.860019028187 -0.140617847443 +v -0.179961204529 0.897772192955 -0.115278422832 +v -0.166189670563 0.875091910362 -0.153516530991 +v -0.148694753647 0.880870044231 -0.136985838413 +v -0.150884389877 0.907215118408 -0.104235470295 +v -0.157392501831 0.931122899055 -0.078570246696 +v -0.191499710083 0.929601490498 -0.075881302357 +v -0.215350627899 0.919599175453 -0.078258514404 +v -0.203397989273 0.897285580635 -0.100253224373 +v -0.217379808426 0.875960350037 -0.118124604225 +v -0.029005050659 0.571525335312 -0.088107168674 +v 0.002735614777 0.548631310463 -0.070256829262 +v 0.027010679245 0.590999245644 -0.090317308903 +v -0.018280744553 0.620064198971 -0.103850007057 +v 0.018197059631 0.528473854065 -0.041200280190 +v 0.039121389389 0.542406558990 -0.043555021286 +v -0.148338317871 0.925767302513 -0.247407793999 +v -0.147905111313 0.887462854385 -0.231083989143 +v -0.130671024323 0.907526671886 -0.214898705482 +v -0.110074996948 0.950674951077 -0.223033547401 +v -0.158329963684 0.874756038189 -0.191096603870 +v -0.134732007980 0.893178164959 -0.177285671234 +v -0.090615749359 0.914829909801 -0.207994282246 +v -0.112192392349 0.762768864632 0.047738432884 +v -0.126791477203 0.781367957592 0.019289433956 +v -0.137742519379 0.815532445908 0.021429121494 +v -0.104435205460 0.789754331112 0.077099800110 +v -0.129538536072 0.770201504230 -0.012699365616 +v -0.138639211655 0.806268036366 -0.033546984196 +v -0.147496223450 0.848499417305 0.061839640141 +v -0.089931488037 0.741834282875 0.071407139301 +v -0.054453372955 0.767961084843 0.118939399719 +v -0.098224401474 0.709381341934 0.028533697128 +v -0.111907958984 0.714046895504 -0.023087024689 +v -0.118014335632 0.742692947388 0.013800978661 +v -0.105286121368 0.729441761971 0.038245499134 +v -0.068748474121 0.719616711140 0.068620622158 +v -0.085082054138 0.653443753719 0.027877748013 +v -0.058162212372 0.656390905380 0.056895077229 +v -0.050686836243 0.607604086399 0.047678053379 +v -0.099447727203 0.621420621872 0.005962431431 +v -0.068820476532 0.563984632492 0.037404358387 +v -0.093855857849 0.573501050472 0.006214916706 +v -0.061287641525 1.064289569855 0.001488387585 +v -0.092086315155 1.040367364883 0.017865002155 +v -0.100042343140 1.063028454781 -0.025874853134 +v -0.068414211273 1.083276271820 -0.024904131889 +v -0.152829885483 1.043263196945 -0.030532896519 +v -0.132411718369 1.076464056969 -0.043527424335 +v -0.132525444031 1.024463057518 -0.009899616241 +v -0.121130466461 1.003944158554 0.032351315022 +v -0.171019792557 1.007393002510 -0.034520506859 +v -0.196717739105 1.027601242065 -0.048720419407 +v -0.173523902893 1.051656365395 -0.044109880924 +v -0.172769784927 0.976805567741 -0.047324657440 +v -0.238524913788 0.893932402134 -0.094456076622 +v -0.167498588562 1.074029922485 -0.061905801296 +v -0.199609756470 1.058331489563 -0.076546132565 +v 0.035741090775 0.537817895412 0.004574596882 +v 0.063968896866 0.537479221821 0.012407362461 +v 0.069581508636 0.543589949608 -0.037130057812 +v -0.067850828171 1.115831255913 -0.122188806534 +v -0.044815301895 1.153640151024 -0.091253459454 +v -0.061902284622 1.142533540726 -0.076420962811 +v -0.087494134903 1.110044360161 -0.101176381111 +v -0.102974891663 1.099434852600 -0.071468591690 +v -0.069273948669 1.125692009926 -0.061185836792 +v -0.110057592392 1.099711656570 -0.165807723999 +v -0.129351377487 1.099599599838 -0.132730364799 +v -0.150191068649 1.093798398972 -0.095395982265 +v -0.167793750763 1.074134111404 -0.162128686905 +v -0.187201261520 1.073685646057 -0.118393898010 +v -0.200552225113 1.044490218163 -0.186491847038 +v -0.215443849564 1.052723646164 -0.141018509865 +v -0.222080469131 1.039790749550 -0.094145119190 +v -0.239657878876 1.022207856178 -0.158943414688 +v -0.241830825806 1.013184070587 -0.110611021519 +v -0.260427713394 0.986940979958 -0.176530241966 +v -0.263617753983 0.981970906258 -0.132411062717 +v -0.260305166245 0.958638668060 -0.098890125751 +v -0.278702974319 0.955592036247 -0.163595557213 +v -0.278200626373 0.932817518711 -0.130598545074 +v -0.271001577377 0.901743829250 -0.119967401028 +v -0.252998113632 0.927197396755 -0.088302910328 +v -0.255738973618 0.872728466988 -0.122977674007 +v -0.288134813309 0.917696714401 -0.166244506836 +v -0.280348777771 0.886196553707 -0.155893802643 +v -0.267940998077 0.855949759483 -0.158157467842 +v -0.322344541550 0.899317681789 -0.184273540974 +v -0.314202308655 0.871414363384 -0.169530987740 +v -0.304754018784 0.841402471066 -0.163097262383 +v -0.351705789566 0.865829944611 -0.176985263824 +v -0.346288204193 0.842895746231 -0.165701746941 +v -0.342967510223 0.821778357029 -0.172056436539 +v -0.297340869904 0.818372488022 -0.180801868439 +v -0.255311727524 0.834150016308 -0.184277534485 +v -0.344840049744 0.807662725449 -0.190519332886 +v -0.298639774323 0.802460789680 -0.209736287594 +v -0.253891229630 0.813284337521 -0.222991466522 +v -0.215986251831 0.835866868496 -0.183695673943 +v -0.214768171310 0.830051660538 -0.219524562359 +v -0.309920310974 0.802444458008 -0.240571200848 +v -0.261218309402 0.820708096027 -0.265693724155 +v -0.202613115311 0.844021797180 -0.252863943577 +v -0.351272106171 0.804853558540 -0.214755058289 +v -0.361089944839 0.814315497875 -0.239227890968 +v -0.324601888657 0.821000874043 -0.263598829508 +v -0.283481359482 0.848797678947 -0.284017473459 +v -0.368223667145 0.837127387524 -0.253749161959 +v -0.336348056793 0.853153288364 -0.277962535620 +v -0.297395467758 0.883530080318 -0.294476032257 +v -0.240055322647 0.874735951424 -0.304646462202 +v -0.264170885086 0.907689154148 -0.292484790087 +v -0.343079566956 0.886833965778 -0.280547678471 +v -0.304080247879 0.919566035271 -0.288546800613 +v -0.274107933044 0.937634170055 -0.272911608219 +v -0.237725257874 0.939036250114 -0.275381207466 +v -0.246447801590 0.963879764080 -0.250892400742 +v -0.299230575562 0.941379368305 -0.261109113693 +v -0.274475336075 0.952009916306 -0.239782989025 +v -0.254629850388 0.977320313454 -0.217426180840 +v -0.217944860458 0.993275702000 -0.236558616161 +v -0.229768037796 1.010393023491 -0.203123748302 +v -0.274976491928 0.958194017410 -0.204134941101 +v -0.294450044632 0.945626258850 -0.227268993855 +v -0.291128396988 0.938337326050 -0.193792879581 +v -0.336385011673 0.927444577217 -0.237453699112 +v -0.328366279602 0.918976187706 -0.207168340683 +v -0.373788356781 0.900349020958 -0.237839400768 +v -0.367165803909 0.902696073055 -0.212942600250 +v -0.358767509460 0.887838721275 -0.192018508911 +v -0.399082183838 0.886386156082 -0.210687160492 +v -0.391416311264 0.878774166107 -0.190892636776 +v -0.385291337967 0.862347722054 -0.175807774067 +v -0.380799770355 0.844238936901 -0.168828010559 +v -0.377043247223 0.828504204750 -0.168903589249 +v -0.378103971481 0.815952479839 -0.178110599518 +v -0.382728338242 0.809657692909 -0.196520686150 +v -0.389034032822 0.812136590481 -0.218078017235 +v -0.393783569336 0.826233685017 -0.232942044735 +v -0.374763011932 0.861356377602 -0.261329650879 +v -0.397455453873 0.845723807812 -0.239633858204 +v -0.401363134384 0.864607393742 -0.240126490593 +v -0.377741813660 0.885030388832 -0.257234215736 +v -0.342441082001 0.914424657822 -0.266438513994 +v -0.402511835098 0.878381252289 -0.229500651360 +v -0.170168876648 1.000604867935 -0.237006545067 +v -0.184483528137 1.026935815811 -0.219662249088 +v -0.204886913300 0.972634196281 -0.262749642134 +v -0.159294366837 0.967827081680 -0.247309863567 +v -0.191198587418 0.937436878681 -0.281654030085 +v -0.222276926041 0.905950903893 -0.284064441919 +v -0.177347660065 0.896951436996 -0.278299987316 +v -0.199582099915 0.874506413937 -0.276412338018 +v -0.219844818115 0.853652238846 -0.284712314606 +v -0.174687385559 0.863596737385 -0.250282466412 +v -0.181549310684 0.849696934223 -0.207981944084 +v -0.116446971893 1.003559350967 -0.234433829784 +v -0.131599664688 1.042656898499 -0.224299788475 +v -0.063884496689 1.038912057877 -0.210333466530 +v -0.085042953491 1.078667521477 -0.191534459591 +v -0.149874925613 1.067245244980 -0.198640346527 +v 0.006145715714 1.018314838409 -0.186279118061 +v -0.007123947144 1.064264893532 -0.171564280987 +v -0.048004388809 0.991492629051 -0.217727243900 +v -0.026478528976 1.111588954926 -0.142706692219 +v 0.017360448837 0.970607042313 -0.195879101753 +v -0.035747051239 0.945858657360 -0.214797735214 +v 0.026816844940 0.918899655342 -0.194363832474 +v -0.025933980942 0.897993922234 -0.206000804901 +v -0.080864667892 0.874895334244 -0.192031383514 +v -0.018188714981 0.847238957882 -0.190483808517 +v -0.072869777679 0.831310868263 -0.174542069435 +v -0.116947174072 0.821985781193 -0.144294202328 +v -0.121940612793 0.859033942223 -0.160447001457 +v -0.136636972427 0.828852474689 -0.101162433624 +v -0.142194747925 0.857307851315 -0.121078729630 +v -0.143414735794 0.845660209656 -0.058004975319 +v -0.144388198853 0.880819320679 -0.082161068916 +v -0.153039455414 0.862532734871 -0.018098533154 +v -0.153266906738 0.903006434441 -0.052416980267 +v -0.161772251129 0.888247668743 0.014432668686 +v -0.160099267960 0.926342248917 -0.032119214535 +v -0.164556503296 0.953284680843 -0.062894344330 +v -0.171996355057 0.952526032925 -0.012361943722 +v -0.164795875549 0.921657145023 0.036377131939 +v -0.147756576538 0.961669743061 0.040470600128 +v -0.158525466919 0.986356794834 -0.006434679031 +v -0.145291805267 0.885101556778 0.083670973778 +v -0.126105070114 0.929664313793 0.086600899696 +v -0.100680828094 0.976286113262 0.074836552143 +v -0.088333368301 0.904943823814 0.124103307724 +v -0.068841934204 0.954400718212 0.109162628651 +v -0.050687789917 1.002869248390 0.086499452591 +v -0.076419353485 1.019973993301 0.056980848312 +v -0.031089067459 1.040452837944 0.053422629833 +v -0.048895835876 1.049849748611 0.030142068863 +v -0.028286457062 0.943060517311 0.130822718143 +v -0.018934726715 0.993253171444 0.104324102402 +v -0.008577823639 1.036106586456 0.068773925304 +v 0.016984224319 0.938255190849 0.132273197174 +v 0.016255617142 0.988211154938 0.106916069984 +v 0.017256975174 1.034857988358 0.074777126312 +v -0.037022590637 0.893554985523 0.148184359074 +v -0.125862836838 0.795052647591 -0.077642142773 +v -0.088509559631 0.748381972313 -0.091158628464 +v -0.106392145157 0.784361839294 -0.120982527733 +v -0.114890336990 0.757017672062 -0.053101658821 +v -0.051238536835 0.693981826305 -0.101675391197 +v -0.053010225296 0.743843674660 -0.121231853962 +v -0.086938619614 0.703561365604 -0.072716116905 +v -0.064249753952 0.786670446396 -0.151442766190 +v -0.010465383530 0.743931651115 -0.136873304844 +v -0.013234376907 0.796020328999 -0.166346788406 +v 0.032855987549 0.676068127155 -0.117384016514 +v 0.034677505493 0.748068869114 -0.133399724960 +v -0.010420322418 0.684079170227 -0.115326344967 +v 0.036463499069 0.808236598969 -0.159694790840 +v 0.077756881714 0.752460122108 -0.118776857853 +v 0.079266071320 0.817305207253 -0.140415549278 +v 0.034280061722 0.864266276360 -0.182166934013 +v 0.072944402695 0.932042717934 -0.169168591499 +v 0.063047170639 1.036345005035 -0.171650230885 +v -0.058959484100 0.640669405460 -0.090303719044 +v -0.066095590591 0.592738807201 -0.077589452267 +v -0.097780227661 0.609835147858 -0.045422494411 +v -0.095155477524 0.656358480453 -0.060826182365 +v -0.105790376663 0.668013811111 -0.016322851181 +v -0.087153911591 0.680714309216 0.023537695408 +v -0.060539484024 0.690345466137 0.063132166862 +v -0.022153139114 0.659986138344 0.099782228470 +v -0.026333808899 0.697329998016 0.108290851116 +v -0.032596349716 0.731493532658 0.113822937012 +v 0.026883125305 0.702849328518 0.121817588806 +v -0.007471561432 0.622038125992 0.083720922470 +v 0.033208370209 0.620859384537 0.106691539288 +v 0.010722160339 0.584229052067 0.067391037941 +v 0.046667098999 0.584562242031 0.083252370358 +v 0.025924444199 0.553159415722 0.041892528534 +v 0.057153224945 0.554712772369 0.051456034184 +v -0.020308732986 0.569664835930 0.051660239697 +v 0.001250267029 0.543498456478 0.031863629818 +v 0.013638973236 0.532003760338 -0.001672267914 +v -0.000382900238 0.520153343678 -0.005273222923 +v -0.012644290924 0.528460025787 0.023336231709 +v 0.006472110748 0.512750744820 -0.036196351051 +v -0.007425308228 0.474734485149 -0.000116705894 +v -0.005846261978 0.500033557415 -0.004471659660 +v 0.000211715698 0.494048833847 -0.030069172382 +v -0.006864786148 0.472749769688 -0.022261261940 +v -0.018941164017 0.475434243679 -0.039400577545 +v -0.014056682587 0.499557584524 -0.049792110920 +v -0.007712841034 0.522083699703 -0.061311900616 +v -0.037567615509 0.480722934008 -0.046939432621 +v -0.037078142166 0.509507179260 -0.057908356190 +v -0.034726858139 0.538039565086 -0.071861624718 +v -0.058244705200 0.486637681723 -0.040571570396 +v -0.064287900925 0.519816040993 -0.052058398724 +v -0.066971778870 0.554416954517 -0.064069986343 +v -0.073494434357 0.490894377232 -0.019915223122 +v -0.083090543747 0.529140114784 -0.027455270290 +v -0.092357873917 0.568181574345 -0.034658551216 +v -0.079753637314 0.491208374500 0.009451150894 +v -0.086676597595 0.532695353031 0.006102561951 +v -0.073581457138 0.454350113869 0.007979691029 +v -0.066380023956 0.457608014345 -0.017444491386 +v -0.067813158035 0.488057374954 0.029619216919 +v -0.066108465195 0.450441658497 0.027257204056 +v -0.069606781006 0.527580559254 0.030218899250 +v -0.044326543808 0.482478886843 0.033305048943 +v -0.044793844223 0.448259085417 0.031902611256 +v -0.042425155640 0.517599105835 0.031794846058 +v -0.017328262329 0.477021217346 0.022542297840 +v -0.018852710724 0.507313489914 0.017633438110 +v -0.037883758545 0.545025348663 0.042228996754 +v -0.019141912460 0.447015106678 0.024648547173 +v -0.009853363037 0.448897719383 0.002969503403 +v -0.010138511658 0.424218118191 -0.001672625542 +v -0.006133556366 0.399529516697 -0.015495121479 +v -0.017596960068 0.394342869520 -0.000591039658 +v -0.020816802979 0.419395595789 0.016798019409 +v -0.009426116943 0.427912145853 -0.021588802338 +v -0.001868963242 0.404415190220 -0.034041702747 +v -0.011332273483 0.450134307146 -0.017913401127 +v -0.018124103546 0.431156426668 -0.039218008518 +v -0.011564016342 0.408847093582 -0.052631855011 +v -0.021310806274 0.452264279127 -0.034315645695 +v -0.035163879395 0.433271795511 -0.046046972275 +v -0.032569646835 0.410334706306 -0.058933556080 +v -0.036829233170 0.455296754837 -0.040022969246 +v -0.050311565399 0.433117091656 -0.039737045765 +v -0.049625396729 0.409451037645 -0.056582272053 +v -0.052719354630 0.457712709904 -0.034135818481 +v -0.060839176178 0.430344671011 -0.025123417377 +v -0.060647249222 0.405378311872 -0.044947326183 +v -0.039075374603 0.333637267351 -0.059441745281 +v -0.046819448471 0.377576559782 -0.066945731640 +v -0.057845830917 0.373610943556 -0.056396543980 +v -0.044396162033 0.332225650549 -0.051878690720 +v -0.043912887573 0.330512613058 -0.042705893517 +v -0.057412862778 0.368281006813 -0.038785338402 +v -0.061007261276 0.399160534143 -0.025505304337 +v -0.041280269623 0.328136712313 -0.033087968826 +v -0.046390056610 0.364219039679 -0.022349596024 +v -0.051404714584 0.393975228071 -0.006930351257 +v -0.035102367401 0.325139790773 -0.023742496967 +v -0.033584117889 0.360739827156 -0.011030375957 +v -0.036393165588 0.389957576990 0.006403863430 +v -0.024703979492 0.326273173094 -0.026353597641 +v -0.019546747208 0.364557057619 -0.018281936646 +v -0.016890287399 0.328833460808 -0.035211801529 +v -0.006627321243 0.368008077145 -0.028945624828 +v -0.013489007950 0.331431388855 -0.046256422997 +v -0.002036094666 0.373024463654 -0.045083582401 +v -0.017686605453 0.333469033241 -0.056734740734 +v -0.010092020035 0.377158254385 -0.060950160027 +v -0.028373241425 0.334166795015 -0.062248706818 +v -0.029481172562 0.378683656454 -0.066067218781 +v -0.219955444336 0.842094063759 -0.154961943626 +v -0.235270023346 0.857862532139 -0.137915790081 +v -0.087909221649 1.087654352188 -0.050910711288 +v -0.070798635483 1.104470491409 -0.045316457748 +v -0.247585058212 0.849854946136 -0.153714001179 +v -0.240604400635 0.840870857239 -0.163044929504 +v -0.011443376541 1.160188794136 -0.101308941841 +v 0.036525011063 1.165561199188 -0.098447144032 +v -0.447368383408 0.797736108303 -0.173693537712 +v -0.447412490845 0.796239554882 -0.162157893181 +v -0.443197250366 0.802235960960 -0.155865490437 +v -0.438388586044 0.805791616440 -0.164553344250 +v -0.494693517685 0.893587052822 -0.106214702129 +v -0.495902061462 0.900918126106 -0.105787515640 +v -0.493417978287 0.900910675526 -0.096440255642 +v -0.491146326065 0.891790270805 -0.099022448063 +v -0.489644289017 0.821257293224 -0.123335301876 +v -0.471888542175 0.823015093803 -0.132293999195 +v -0.468766212463 0.813135862350 -0.129689037800 +v -0.484895229340 0.811676740646 -0.120194315910 +v -0.476134061813 0.841621756554 -0.135791420937 +v -0.474495887756 0.832299590111 -0.135184764862 +v -0.494080066681 0.831160485744 -0.126861453056 +v -0.496844291687 0.842333674431 -0.129078328609 +v -0.451151609421 0.806489586830 -0.139960348606 +v -0.466060161591 0.802223086357 -0.129936814308 +v -0.452974319458 0.816859483719 -0.137552082539 +v -0.485681533813 0.851063311100 -0.187404632568 +v -0.502808094025 0.846567988396 -0.173310935497 +v -0.499794721603 0.830486893654 -0.174043655396 +v -0.483735561371 0.833467781544 -0.188756585121 +v -0.491135358810 0.786839187145 -0.137906074524 +v -0.477485179901 0.788113296032 -0.152600586414 +v -0.484442234039 0.794747292995 -0.160152792931 +v -0.501042604446 0.794560611248 -0.139316618443 +v -0.508388519287 0.830364823341 -0.119966745377 +v -0.521482229233 0.819912433624 -0.130728006363 +v -0.523111343384 0.828098714352 -0.121222257614 +v -0.512018680573 0.834384858608 -0.118249833584 +v -0.514605045319 0.853373050690 -0.127098441124 +v -0.517944812775 0.850607991219 -0.124822854996 +v -0.530208826065 0.845044076443 -0.127292752266 +v -0.531853437424 0.844683170319 -0.137332379818 +v -0.500032663345 0.821590065956 -0.116037189960 +v -0.509562015533 0.864964723587 -0.132301747799 +v -0.504422664642 0.864491283894 -0.132351279259 +v -0.500204324722 0.853452622890 -0.129730045795 +v -0.520584106445 0.822443604469 -0.147195518017 +v -0.522242069244 0.828122496605 -0.150109887123 +v -0.526848316193 0.828633189201 -0.143665313721 +v -0.523217201233 0.823370218277 -0.141705751419 +v -0.528179168701 0.850113034248 -0.151596605778 +v -0.527724266052 0.857582092285 -0.153711855412 +v -0.533334732056 0.857348978519 -0.147594749928 +v -0.531985759735 0.850167274475 -0.146348357201 +v -0.507945299149 0.843233942986 -0.123751223087 +v -0.509826183319 0.844902992249 -0.121303021908 +v -0.529620647430 0.830736279488 -0.135385751724 +v -0.531349182129 0.833562910557 -0.126550495625 +v -0.487643718719 0.804054796696 -0.111395001411 +v -0.480391025543 0.801913261414 -0.119697570801 +v -0.480456352234 0.792149066925 -0.122189939022 +v -0.488045692444 0.794178664684 -0.112424015999 +v -0.495940208435 0.784620106220 -0.126145541668 +v -0.499251127243 0.786586403847 -0.129543840885 +v -0.504209518433 0.787554085255 -0.123033821583 +v -0.499408006668 0.785145521164 -0.121613442898 +v -0.510551452637 0.871032297611 -0.138833642006 +v -0.515317440033 0.871675372124 -0.137129485607 +v -0.526596546173 0.864687561989 -0.151889979839 +v -0.530538082123 0.864613473415 -0.148025453091 +v -0.497328281403 0.811198830605 -0.112283110619 +v -0.503155469894 0.790419399738 -0.130545675755 +v -0.506678104401 0.791445076466 -0.125318050385 +v -0.493824243546 0.871466159821 -0.085897326469 +v -0.490470170975 0.869438707829 -0.092285215855 +v -0.485040903091 0.863280296326 -0.091263115406 +v -0.487308979034 0.865945041180 -0.082743287086 +v -0.485924720764 0.855860471725 -0.088013470173 +v -0.489061117172 0.856862902641 -0.081349372864 +v -0.520172119141 0.836955487728 -0.100135803223 +v -0.515067815781 0.840695142746 -0.093722283840 +v -0.506313800812 0.841244280338 -0.101609706879 +v -0.510276794434 0.838908553123 -0.105833172798 +v -0.512242078781 0.857203602791 -0.107409000397 +v -0.522161960602 0.857336878777 -0.099027633667 +v -0.526552677155 0.854199707508 -0.105519115925 +v -0.515424251556 0.854900300503 -0.111687183380 +v -0.508421897888 0.847175776958 -0.111868441105 +v -0.505060672760 0.849078774452 -0.108070075512 +v -0.524366140366 0.847588360310 -0.093832015991 +v -0.527771949768 0.845007956028 -0.098792850971 +v -0.504534959793 0.847885608673 -0.086177408695 +v -0.498050689697 0.852172255516 -0.082087755203 +v -0.490575790405 0.850792109966 -0.091464221478 +v -0.496593952179 0.846407592297 -0.095529913902 +v -0.496419668198 0.867350459099 -0.096872746944 +v -0.503741264343 0.868512868881 -0.087242722511 +v -0.511126995087 0.864330530167 -0.091117858887 +v -0.503080606461 0.863209724426 -0.101341784000 +v -0.495740175247 0.854071259499 -0.103795528412 +v -0.489275217056 0.858667314053 -0.098730802536 +v -0.510396480560 0.857069015503 -0.083190023899 +v -0.506175994873 0.859634041786 -0.081316232681 +v -0.511812210083 0.838328003883 -0.109384715557 +v -0.512324810028 0.836986780167 -0.113109648228 +v -0.523508548737 0.831316888332 -0.112718701363 +v -0.519570350647 0.833538651466 -0.105941951275 +v -0.527900457382 0.853996634483 -0.113405644894 +v -0.530893802643 0.848428845406 -0.119828045368 +v -0.517930030823 0.852390527725 -0.120005369186 +v -0.516858100891 0.853576421738 -0.115721166134 +v -0.510461807251 0.846561253071 -0.116781532764 +v -0.510272741318 0.846948623657 -0.114067971706 +v -0.528704881668 0.833988189697 -0.105706632137 +v -0.529921531677 0.832707405090 -0.110456645489 +v -0.535176277161 0.837255477905 -0.113185763359 +v -0.535221815109 0.839498996735 -0.107395589352 +v -0.535897016525 0.844757020473 -0.115204930305 +v -0.535224437714 0.848018705845 -0.110409140587 +v -0.527960300446 0.836800575256 -0.101769506931 +v -0.532390594482 0.842326819897 -0.102183938026 +v -0.532948493958 0.849078893661 -0.105126917362 +v -0.501554489136 0.843218922615 -0.099216759205 +v -0.507042169571 0.842735946178 -0.091056108475 +v -0.515851497650 0.862206101418 -0.097064733505 +v -0.508196115494 0.859079062939 -0.104793012142 +v -0.501304626465 0.850616335869 -0.106691837311 +v -0.514235734940 0.845977485180 -0.086078166962 +v -0.518186092377 0.844501137733 -0.088461101055 +v -0.522804021835 0.849747896194 -0.088824689388 +v -0.519546508789 0.852388918400 -0.085314571857 +v -0.523418426514 0.855972528458 -0.091820836067 +v -0.520101308823 0.859155178070 -0.089708983898 +v -0.511596202850 0.849000573158 -0.083929896355 +v -0.515213012695 0.854938268661 -0.083392798901 +v -0.516395092010 0.860537409782 -0.087069749832 +v -0.532750368118 0.836167395115 -0.118552982807 +v -0.497567176819 0.865602970123 -0.074603199959 +v -0.496635437012 0.860588312149 -0.074069917202 +v -0.499092817307 0.859558403492 -0.075726687908 +v -0.501167774200 0.863645672798 -0.076683282852 +v -0.499398469925 0.869491815567 -0.076963126659 +v -0.502336740494 0.868161380291 -0.077675879002 +v -0.493256807327 0.858881592751 -0.076175630093 +v -0.492352008820 0.866495013237 -0.076975762844 +v -0.499328136444 0.856431543827 -0.076817274094 +v -0.503676176071 0.861703813076 -0.079042315483 +v -0.503543376923 0.868796229362 -0.080610632896 +v -0.497124195099 0.871228098869 -0.080048918724 +v -0.508443832397 0.800419390202 -0.136265814304 +v -0.511143684387 0.804700791836 -0.140411615372 +v -0.514699935913 0.806024491787 -0.133704960346 +v -0.511139869690 0.801549851894 -0.131215751171 +v -0.524834394455 0.834584176540 -0.149969577789 +v -0.528397083282 0.835094690323 -0.144962668419 +v -0.514429330826 0.810142576694 -0.141759753227 +v -0.517162799835 0.811100900173 -0.136384963989 +v -0.496298074722 0.786881387234 -0.115870833397 +v -0.486750125885 0.785451531410 -0.128098964691 +v -0.527594327927 0.869485437870 -0.141907572746 +v -0.518058300018 0.869149982929 -0.149671852589 +v -0.510817766190 0.799105167389 -0.121699333191 +v -0.512484073639 0.806650936604 -0.113031685352 +v -0.502429008484 0.813118338585 -0.111305117607 +v -0.508829832077 0.828153192997 -0.116886317730 +v -0.518706083298 0.822669982910 -0.117713034153 +v -0.501774787903 0.822176635265 -0.114453732967 +v -0.519619703293 0.812057256699 -0.116438627243 +v -0.517436027527 0.808292090893 -0.126053214073 +v -0.483708858490 0.853024780750 -0.088355422020 +v -0.481112241745 0.850262880325 -0.093426942825 +v -0.475982189178 0.844028592110 -0.091422438622 +v -0.477612257004 0.847269892693 -0.084727108479 +v -0.475871086121 0.837056696415 -0.086321115494 +v -0.478466987610 0.838783323765 -0.080502748489 +v -0.504234790802 0.817612648010 -0.093765556812 +v -0.500945329666 0.822281956673 -0.087224364281 +v -0.490716695786 0.824029862881 -0.093403875828 +v -0.494282245636 0.819924414158 -0.099487662315 +v -0.496157646179 0.841752350330 -0.100961446762 +v -0.505415439606 0.841348707676 -0.095487833023 +v -0.508846998215 0.836988449097 -0.101620197296 +v -0.499357938766 0.838020980358 -0.106621682644 +v -0.492764949799 0.830117106438 -0.105411946774 +v -0.489102363586 0.833834648132 -0.099696338177 +v -0.508481979370 0.830541670322 -0.089690744877 +v -0.510588169098 0.827774941921 -0.093720853329 +v -0.492753744125 0.831151664257 -0.079553246498 +v -0.486364841461 0.835210800171 -0.078461050987 +v -0.479637861252 0.832388997078 -0.086949884892 +v -0.484333038330 0.829082310200 -0.088134169579 +v -0.485946178436 0.848959863186 -0.095764815807 +v -0.492048025131 0.851611673832 -0.087720692158 +v -0.497788429260 0.848133265972 -0.089569866657 +v -0.490402221680 0.846298635006 -0.097313344479 +v -0.483847379684 0.837090373039 -0.096990287304 +v -0.479485511780 0.840040266514 -0.095492541790 +v -0.497706413269 0.841334342957 -0.080382227898 +v -0.493602514267 0.843913137913 -0.079816043377 +v -0.498492002487 0.817435145378 -0.105219185352 +v -0.501165628433 0.814163446426 -0.109083890915 +v -0.511910438538 0.809615671635 -0.104608774185 +v -0.505473136902 0.811411023140 -0.099508881569 +v -0.510790824890 0.835031032562 -0.109548807144 +v -0.516519069672 0.828535556793 -0.111123204231 +v -0.506266832352 0.830387651920 -0.115914404392 +v -0.502544403076 0.833584547043 -0.112453937531 +v -0.499927043915 0.823450028896 -0.114233195782 +v -0.497344493866 0.826164782047 -0.110643565655 +v -0.513412475586 0.815074205399 -0.096650004387 +v -0.516290664673 0.813745021820 -0.099655687809 +v -0.519789934158 0.819998562336 -0.101308584213 +v -0.517743349075 0.822623610497 -0.098065078259 +v -0.519121646881 0.827042996883 -0.104812145233 +v -0.516560077667 0.830451726913 -0.103179037571 +v -0.511471986771 0.818441748619 -0.094288408756 +v -0.514646053314 0.825179815292 -0.095527946949 +v -0.514303207397 0.831783711910 -0.099781036377 +v -0.487943172455 0.827379703522 -0.090247273445 +v -0.495469808578 0.824954450130 -0.082411110401 +v -0.500364780426 0.846157968044 -0.094868063927 +v -0.493069171906 0.843513786793 -0.098693013191 +v -0.487038612366 0.835436344147 -0.097534894943 +v -0.502112865448 0.828593492508 -0.079975128174 +v -0.504857540131 0.826588690281 -0.083056867123 +v -0.508306980133 0.833120644093 -0.085304498672 +v -0.506083965302 0.836166918278 -0.082021951675 +v -0.507864236832 0.840063154697 -0.089241921902 +v -0.505406856537 0.843329131603 -0.087880432606 +v -0.499519109726 0.832336187363 -0.078415036201 +v -0.502271652222 0.839114248753 -0.080325365067 +v -0.502671241760 0.844747602940 -0.085275530815 +v -0.520011425018 0.816879510880 -0.107176601887 +v -0.485849618912 0.848793625832 -0.077213406563 +v -0.484879255295 0.844172120094 -0.075477480888 +v -0.486962318420 0.843352615833 -0.076518177986 +v -0.488926410675 0.847343027592 -0.078180730343 +v -0.487652778625 0.852373063564 -0.079998552799 +v -0.490156412125 0.851481437683 -0.079959809780 +v -0.482032775879 0.841814160347 -0.076701343060 +v -0.481650590897 0.848758876324 -0.079696655273 +v -0.487200260162 0.840355038643 -0.076348960400 +v -0.491241216660 0.845820188522 -0.079050183296 +v -0.491406917572 0.852079093456 -0.082417190075 +v -0.486078977585 0.853447556496 -0.083156108856 +v -0.498555898666 0.789247334003 -0.110209047794 +v -0.490535259247 0.795914649963 -0.107083380222 +v -0.499561071396 0.808594465256 -0.109262883663 +v -0.509321451187 0.801345944405 -0.113677084446 +v -0.491660594940 0.804835021496 -0.106762707233 +v -0.506342411041 0.790087342262 -0.117207169533 +v -0.507618427277 0.792013823986 -0.113375782967 +v -0.489049196243 0.826286792755 -0.079535543919 +v -0.485815525055 0.826620817184 -0.084511041641 +v -0.480561256409 0.821815013885 -0.084118247032 +v -0.483257293701 0.822232902050 -0.077751755714 +v -0.479671239853 0.815304994583 -0.082047581673 +v -0.482170104980 0.815054416656 -0.077047288418 +v -0.498437404633 0.795974731445 -0.094222247601 +v -0.495993852615 0.799155712128 -0.089099407196 +v -0.488581657410 0.803750157356 -0.092741906643 +v -0.489798069000 0.801814615726 -0.097452342510 +v -0.499174118042 0.816335558891 -0.095021665096 +v -0.505331993103 0.810285627842 -0.091094553471 +v -0.508020877838 0.806802392006 -0.096497237682 +v -0.500244140625 0.813882708549 -0.098373711109 +v -0.491198301315 0.810434281826 -0.099174976349 +v -0.490566730499 0.812255382538 -0.095983982086 +v -0.504388093948 0.801935672760 -0.089532196522 +v -0.506303787231 0.799559772015 -0.093178451061 +v -0.490227460861 0.806715846062 -0.080041587353 +v -0.486819744110 0.810494184494 -0.077443838120 +v -0.481586694717 0.811227262020 -0.084623336792 +v -0.484838962555 0.807765960693 -0.087508916855 +v -0.489450216293 0.825551927090 -0.087533473969 +v -0.494817018509 0.822417318821 -0.080430269241 +v -0.498338937759 0.818705558777 -0.082634210587 +v -0.493239879608 0.822486460209 -0.090337991714 +v -0.485663890839 0.816083729267 -0.092872619629 +v -0.482256412506 0.819070279598 -0.089587986469 +v -0.495429277420 0.813326537609 -0.077522575855 +v -0.493692398071 0.815349698067 -0.076042175293 +v -0.490639209747 0.799663007259 -0.100690245628 +v -0.491382598877 0.797495901585 -0.103254914284 +v -0.500654220581 0.789737641811 -0.104475378990 +v -0.497671604156 0.792602598667 -0.098903775215 +v -0.509530782700 0.806396782398 -0.102260172367 +v -0.511167049408 0.801594376564 -0.108417809010 +v -0.500758171082 0.809814274311 -0.105136036873 +v -0.500140190125 0.811406195164 -0.101884782314 +v -0.491745948792 0.806727945805 -0.103401362896 +v -0.492305278778 0.808004617691 -0.101605892181 +v -0.505864143372 0.790762722492 -0.098364591599 +v -0.506949424744 0.789222061634 -0.102397680283 +v -0.511898517609 0.792011439800 -0.104481697083 +v -0.511413574219 0.793921768665 -0.099860727787 +v -0.513942241669 0.797082841396 -0.105452656746 +v -0.513425111771 0.799474656582 -0.101383924484 +v -0.505221366882 0.793554723263 -0.095338940620 +v -0.509412050247 0.796497941017 -0.095882833004 +v -0.511485099792 0.800802588463 -0.097495257854 +v -0.487203598022 0.805865585804 -0.089809119701 +v -0.491508483887 0.801817178726 -0.084747970104 +v -0.501916170120 0.816967248917 -0.087054252625 +v -0.496026515961 0.819197714329 -0.092714369297 +v -0.489030599594 0.813616871834 -0.094238102436 +v -0.496573925018 0.803260147572 -0.081626772881 +v -0.499391555786 0.800740122795 -0.084920167923 +v -0.503435134888 0.803725183010 -0.085128188133 +v -0.500617980957 0.807261526585 -0.080836713314 +v -0.505204677582 0.808161199093 -0.085975766182 +v -0.502797126770 0.812113285065 -0.082701086998 +v -0.494894981384 0.806727290154 -0.079006910324 +v -0.497905254364 0.810785889626 -0.078416407108 +v -0.500154018402 0.814402937889 -0.080199837685 +v -0.509780406952 0.792054593563 -0.109013736248 +v -0.489554882050 0.819736123085 -0.072930335999 +v -0.487940311432 0.816487431526 -0.072609961033 +v -0.489381313324 0.815415918827 -0.073478043079 +v -0.491574764252 0.818117618561 -0.074059128761 +v -0.491600751877 0.822124600410 -0.074348628521 +v -0.493067026138 0.820745110512 -0.075044274330 +v -0.485497951508 0.815698802471 -0.073549985886 +v -0.486885070801 0.821202099323 -0.073756098747 +v -0.488751888275 0.812952458858 -0.073907077312 +v -0.492937803268 0.816626131535 -0.074767291546 +v -0.494431257248 0.821339190006 -0.076288044453 +v -0.491227149963 0.824168622494 -0.075623750687 +v -0.527001857758 0.853478670120 -0.125246942043 +v -0.513896465302 0.857641816139 -0.126969873905 +v -0.517309665680 0.873407602310 -0.133468151093 +v -0.529544591904 0.871562659740 -0.133002638817 +v -0.510344266891 0.866749882698 -0.130797505379 +v -0.535715341568 0.858517348766 -0.139212429523 +v -0.535772323608 0.861216902733 -0.129334509373 +v -0.490445613861 0.890650033951 -0.100051939487 +v -0.488363265991 0.888513207436 -0.107455074787 +v -0.485354423523 0.880579829216 -0.108673691750 +v -0.485455274582 0.882985472679 -0.099698960781 +v -0.487403631210 0.872754931450 -0.105823457241 +v -0.488933801651 0.873876035213 -0.098851382732 +v -0.518436908722 0.863012790680 -0.108661413193 +v -0.512920618057 0.866162419319 -0.104191660881 +v -0.507155895233 0.865417718887 -0.113856613636 +v -0.510566711426 0.863865315914 -0.116527736187 +v -0.512574672699 0.881888926029 -0.117601990700 +v -0.519688844681 0.883390605450 -0.107507109642 +v -0.524630069733 0.880152225494 -0.113091707230 +v -0.515925884247 0.879324555397 -0.120808780193 +v -0.509762763977 0.871237039566 -0.122120618820 +v -0.506671428680 0.872891902924 -0.120059609413 +v -0.521101236343 0.874487102032 -0.101826131344 +v -0.524887323380 0.872092723846 -0.105790376663 +v -0.502747774124 0.870004713535 -0.100400567055 +v -0.497266054153 0.871715247631 -0.097897529602 +v -0.492583751678 0.869514763355 -0.108082056046 +v -0.498463630676 0.867662549019 -0.110751748085 +v -0.494890928268 0.888140499592 -0.110826432705 +v -0.499839544296 0.889504313469 -0.100029766560 +v -0.507523536682 0.887580394745 -0.102457940578 +v -0.502919435501 0.885920166969 -0.114045023918 +v -0.498455524445 0.875417351723 -0.118292808533 +v -0.491332054138 0.877597153187 -0.115070879459 +v -0.506424903870 0.879839777946 -0.096214175224 +v -0.503129482269 0.880639374256 -0.095109224319 +v -0.512672424316 0.862300992012 -0.120484471321 +v -0.513113737106 0.860535264015 -0.123115837574 +v -0.525039196014 0.856878221035 -0.118569016457 +v -0.519091129303 0.858681201935 -0.114477872849 +v -0.526840448380 0.879119575024 -0.120443284512 +v -0.530992031097 0.874435842037 -0.125046432018 +v -0.518256187439 0.875537931919 -0.128518223763 +v -0.517742633820 0.876998245716 -0.124922633171 +v -0.511662721634 0.868683815002 -0.127072453499 +v -0.511864900589 0.869614481926 -0.124864697456 +v -0.530849933624 0.860190629959 -0.111503541470 +v -0.533360242844 0.859168589115 -0.115616202354 +v -0.536691904068 0.865351617336 -0.116629421711 +v -0.534475564957 0.867561042309 -0.111754179001 +v -0.535916090012 0.871988415718 -0.118930697441 +v -0.533593416214 0.874997556210 -0.115182757378 +v -0.527114391327 0.863506555557 -0.108078002930 +v -0.529962301254 0.869924604893 -0.107841134071 +v -0.530357837677 0.875990808010 -0.111109972000 +v -0.503102540970 0.866510391235 -0.113218367100 +v -0.505452632904 0.866206705570 -0.104708135128 +v -0.513443470001 0.887060940266 -0.106990933418 +v -0.508520841599 0.883631944656 -0.116348564625 +v -0.503959178925 0.873957514763 -0.119046747684 +v -0.510499000549 0.870763242245 -0.097471833229 +v -0.514724016190 0.870366811752 -0.098390698433 +v -0.518878698349 0.876383900642 -0.097725093365 +v -0.514991760254 0.878054201603 -0.095596671104 +v -0.519540309906 0.882226943970 -0.100633978844 +v -0.515974521637 0.884334146976 -0.099541544914 +v -0.507736682892 0.872971475124 -0.096328496933 +v -0.510526895523 0.879325091839 -0.095016777515 +v -0.511901855469 0.884887933731 -0.097839653492 +v -0.535580873489 0.863515138626 -0.121753752232 +v -0.494115114212 0.883353888988 -0.090229034424 +v -0.494159221649 0.878465473652 -0.090765476227 +v -0.496655464172 0.878225266933 -0.091974556446 +v -0.497776508331 0.882385611534 -0.092055082321 +v -0.494970798492 0.887757301331 -0.091351509094 +v -0.497639894485 0.886616647243 -0.092495083809 +v -0.491739749908 0.876264393330 -0.093018054962 +v -0.489335536957 0.883648872375 -0.093107581139 +v -0.497393131256 0.875543773174 -0.093272686005 +v -0.500410795212 0.881527364254 -0.093731045723 +v -0.499048471451 0.888204634190 -0.094248950481 +v -0.492660522461 0.889721930027 -0.094091176987 +v -0.521483898163 0.842776119709 -0.155532121658 +v -0.518549919128 0.858851313591 -0.158480763435 +v -0.513115406036 0.815885305405 -0.150368809700 +v -0.514750003815 0.828490138054 -0.158624708652 +v -0.504255294800 0.803942263126 -0.149980843067 +v -0.471243858337 0.786971271038 -0.142925024033 +v -0.466823101044 0.792440652847 -0.134708881378 +v -0.454370021820 0.826037108898 -0.138828337193 +v -0.495823860168 0.816522121429 -0.171279489994 +v -0.490122318268 0.804616093636 -0.166800975800 +v -0.501922845840 0.864825129509 -0.167882800102 +v -0.488729238510 0.869901716709 -0.140693187714 +v -0.494021654129 0.873752593994 -0.152330935001 +v -0.487847566605 0.878740549088 -0.152684986591 +v -0.480398416519 0.872110724449 -0.138898909092 +v -0.463868141174 0.866027951241 -0.132292509079 +v -0.478146791458 0.862194061279 -0.133633494377 +v -0.463702440262 0.875368595123 -0.127856612206 +v -0.453201293945 0.882918894291 -0.131946742535 +v -0.446355819702 0.873552322388 -0.141134619713 +v -0.483682394028 0.883540391922 -0.145150899887 +v -0.476632833481 0.876343607903 -0.133325040340 +v -0.484167098999 0.901457369328 -0.093008697033 +v -0.485260963440 0.893595635891 -0.095105886459 +v -0.483138322830 0.889306485653 -0.131258606911 +v -0.477747440338 0.882396876812 -0.121179759502 +v -0.476070404053 0.880022823811 -0.127019524574 +v -0.481888771057 0.887317419052 -0.138192296028 +v -0.468255043030 0.884616315365 -0.116226017475 +v -0.464697837830 0.881538629532 -0.122920870781 +v -0.479435443878 0.900566041470 -0.136166751385 +v -0.477606296539 0.898043036461 -0.145556926727 +v -0.468045234680 0.902096092701 -0.133089959621 +v -0.465980529785 0.900569677353 -0.139554977417 +v -0.462095737457 0.895440816879 -0.121656596661 +v -0.457749605179 0.892096400261 -0.130192101002 +v -0.470758438110 0.897547125816 -0.155327796936 +v -0.466237306595 0.894115865231 -0.159044146538 +v -0.457171916962 0.892076790333 -0.153369426727 +v -0.461186885834 0.897225439548 -0.149793088436 +v -0.450381755829 0.887220442295 -0.144794583321 +v -0.453635215759 0.891810834408 -0.140942871571 +v -0.480525970459 0.891566216946 -0.156198561192 +v -0.471389532089 0.900366127491 -0.149930894375 +v -0.463864564896 0.900258302689 -0.145290255547 +v -0.457410335541 0.896189451218 -0.139161109924 +v -0.469795703888 0.888008773327 -0.165396869183 +v -0.452988624573 0.883881807327 -0.157703280449 +v -0.491194486618 0.891927838326 -0.114754319191 +v -0.486534357071 0.885707378387 -0.106756806374 +v -0.479014396667 0.889679074287 -0.100693225861 +v -0.489616870880 0.903515696526 -0.117441117764 +v -0.487568616867 0.908877730370 -0.099188625813 +v -0.490461826324 0.908248662949 -0.103589415550 +v -0.486899375916 0.906276345253 -0.106632411480 +v -0.481706142426 0.906772732735 -0.103209018707 +v -0.484368562698 0.908297657967 -0.096467256546 +v -0.480246782303 0.906286239624 -0.099046111107 +v -0.472922801971 0.901211500168 -0.101609766483 +v -0.481368541718 0.883780658245 -0.114653468132 +v -0.486560106277 0.890575349331 -0.123603880405 +v -0.473132371902 0.886498153210 -0.109143614769 +v -0.485536098480 0.901406943798 -0.128164887428 +v -0.480238437653 0.907655954361 -0.126654922962 +v -0.476631164551 0.906661093235 -0.131565809250 +v -0.469987869263 0.906214416027 -0.128223299980 +v -0.473164319992 0.908138692379 -0.122179150581 +v -0.465127468109 0.902755975723 -0.122632205486 +v -0.467630147934 0.903878688812 -0.116376280785 +v -0.467125654221 0.895816802979 -0.111212134361 +v -0.482595682144 0.906823217869 -0.120295464993 +v -0.477108955383 0.906865596771 -0.115525126457 +v -0.472041606903 0.904061913490 -0.110747873783 +v -0.477966785431 0.905460000038 -0.110133111477 +v -0.493883132935 0.907011985779 -0.104439914227 +v -0.491958379745 0.907425343990 -0.096913754940 +v -0.489140272141 0.905874848366 -0.111298918724 +v -0.479014158249 0.906400084496 -0.107349276543 +v -0.476996898651 0.905042469501 -0.099129199982 +v -0.484606742859 0.906890451908 -0.093938052654 +v -0.491485834122 0.862887859344 -0.133998870850 +v -0.478189468384 0.851019322872 -0.133088052273 +v -0.436126470566 0.836560726166 -0.156523883343 +v -0.442461729050 0.835687577724 -0.147658109665 +v -0.441426515579 0.845188915730 -0.148403167725 +v -0.437577724457 0.854609191418 -0.159161508083 +v -0.454926490784 0.834215760231 -0.140588104725 +v -0.462005615234 0.792235910892 -0.166105270386 +v -0.456657409668 0.791631460190 -0.155758082867 +v -0.483422994614 0.867121934891 -0.181242167950 +v -0.468945980072 0.855017066002 -0.193509101868 +v -0.462913751602 0.870561540127 -0.183496356010 +v -0.491529464722 0.874752402306 -0.165132880211 +v -0.487841367722 0.878770470619 -0.162872314453 +v -0.468900203705 0.836523592472 -0.196922063828 +v -0.479998111725 0.818049311638 -0.186679184437 +v -0.499879121780 0.870677828789 -0.139983534813 +v -0.504315376282 0.871536970139 -0.151580274105 +v -0.454349756241 0.840840578079 -0.139953255653 +v -0.480731725693 0.877718329430 -0.174314856529 +v -0.464861869812 0.879262804985 -0.174113869667 +v -0.446362018585 0.868979811668 -0.170653223991 +v -0.449486732483 0.874917387962 -0.165948867798 +v -0.440111875534 0.863788783550 -0.154974460602 +v -0.441115617752 0.851662218571 -0.146024465561 +v -0.454034090042 0.845933496952 -0.138140499592 +v -0.456007719040 0.854448795319 -0.133829414845 +v -0.469702482224 0.854526937008 -0.132327675819 +v -0.444778442383 0.858243584633 -0.139310777187 +v -0.481812000275 0.882776081562 -0.167174339294 +v -0.484746932983 0.884817302227 -0.160003304482 +v -0.442131519318 0.811856746674 -0.148359179497 +v -0.436752319336 0.819676995277 -0.155522286892 +v -0.452622652054 0.797102570534 -0.146845281124 +v -0.443253278732 0.825838088989 -0.145939826965 +v -0.444576740265 0.818954288960 -0.143559813499 +v -0.433326005936 0.807289421558 -0.173588871956 +v -0.441542625427 0.803750753403 -0.187457442284 +v -0.430660247803 0.819438576698 -0.164661586285 +v -0.430188417435 0.836086511612 -0.162424981594 +v -0.432472229004 0.853630959988 -0.163688778877 +v -0.439163208008 0.866289258003 -0.172386646271 +v -0.448523044586 0.868499755859 -0.185838401318 +v -0.454426765442 0.857727229595 -0.197017431259 +v -0.454931259155 0.839325785637 -0.202164053917 +v -0.465736627579 0.819396853447 -0.194947898388 +v -0.450971364975 0.817552566528 -0.198323130608 +v -0.456123352051 0.800768375397 -0.183851480484 +v -0.468741416931 0.797707617283 -0.175054907799 +v -0.425196409225 0.807017326355 -0.182153224945 +v -0.429808616638 0.808018207550 -0.197672486305 +v -0.423538684845 0.817356407642 -0.170044660568 +v -0.423536777496 0.833735704422 -0.165797650814 +v -0.425173997879 0.851301014423 -0.165531635284 +v -0.430070877075 0.863844513893 -0.173078656197 +v -0.436095714569 0.867850482464 -0.187229573727 +v -0.440057992935 0.861827850342 -0.201652050018 +v -0.439754009247 0.844789445400 -0.210174918175 +v -0.435653448105 0.823165953159 -0.207971274853 +v -0.419240474701 0.811311781406 -0.205702304840 +v -0.414561510086 0.807009160519 -0.189636647701 +v -0.403192281723 0.809433162212 -0.199932932854 +v -0.409330129623 0.817718327045 -0.216658353806 +v -0.413339853287 0.815283596516 -0.174596428871 +v -0.399246454239 0.813498079777 -0.181282222271 +v -0.413203001022 0.829875349998 -0.168070018291 +v -0.397543668747 0.824719786644 -0.171226143837 +v -0.395318984985 0.834834337234 -0.168890595436 +v -0.408400058746 0.846953988075 -0.167888164520 +v -0.413450241089 0.863622665405 -0.173395872116 +v -0.419510841370 0.872239351273 -0.188069701195 +v -0.424756288528 0.871203422546 -0.206108510494 +v -0.424194335938 0.854732930660 -0.219132661819 +v -0.414286136627 0.851325511932 -0.227738976479 +v -0.424114227295 0.828399658203 -0.215525388718 +v -0.413206815720 0.834980130196 -0.225028336048 +v -0.474735736847 0.806489527225 -0.181779563427 +v -0.461838483810 0.807741761208 -0.190207779408 +v -0.450213432312 0.803499877453 -0.189132690430 +v -0.453882694244 0.808152139187 -0.192983090878 +v -0.063398599625 0.425415545702 -0.004801809788 +v -0.057441711426 0.421231210232 0.011059165001 +v -0.042950868607 0.417842894793 0.021519958973 +v 0.144121408463 0.511780261993 0.077085554600 +v 0.108297348022 0.528908789158 0.076607823372 +v 0.103316783905 0.511069953442 0.013130068779 +v 0.120876550674 0.499709635973 0.015783727169 +v 0.143322706223 0.510246276855 0.023608624935 +v 0.161252737045 0.523530781269 0.064749538898 +v 0.152065515518 0.501725971699 -0.009824156761 +v 0.140231609344 0.498346298933 -0.030532300472 +v 0.192918300629 0.507425546646 -0.030843675137 +v 0.185611486435 0.508959054947 -0.011636078358 +v 0.187336921692 0.531630814075 -0.041304111481 +v 0.124450206757 0.523272991180 -0.047710359097 +v 0.227248430252 0.552403509617 -0.004147112370 +v 0.228659629822 0.532396197319 -0.002932310104 +v 0.227637529373 0.592922449112 0.034270524979 +v 0.233801364899 0.565752506256 0.035560011864 +v 0.223552703857 0.587897717953 -0.008055388927 +v 0.221391916275 0.630149424076 0.032777488232 +v 0.188503026962 0.624325811863 0.092208683491 +v 0.197622060776 0.591138243675 0.090726375580 +v 0.214549303055 0.686934411526 0.045682489872 +v 0.187195301056 0.673267960548 0.099526941776 +v 0.216737031937 0.692575335503 -0.008495330811 +v 0.199777126312 0.701083362103 -0.008754312992 +v 0.194094419479 0.686676740646 0.034240126610 +v 0.220711708069 0.636359512806 -0.020351350307 +v 0.182755708694 0.725424706936 -0.089372277260 +v 0.179335832596 0.729352295399 -0.071519851685 +v 0.187209367752 0.650559663773 -0.072877883911 +v 0.166259288788 0.675132751465 0.078442573547 +v 0.195732593536 0.668351173401 0.035658538342 +v 0.165970325470 0.662057161331 0.079006195068 +v 0.184274196625 0.697052001953 -0.025637030602 +v 0.136685848236 0.621061325073 0.124828457832 +v 0.146819353104 0.581296682358 0.115078270435 +v 0.209793090820 0.565983176231 0.086855173111 +v 0.165661096573 0.548517227173 0.104174733162 +v 0.134027719498 0.671311855316 0.129685342312 +v 0.078870058060 0.624179244041 0.127473473549 +v 0.088960170746 0.573084473610 0.105961620808 +v 0.077410221100 0.682400047779 0.141914546490 +v 0.184307813644 0.588923692703 -0.058013796806 +v 0.129453897476 0.595893144608 -0.086390793324 +v 0.133975744247 0.663929998875 -0.106234252453 +v 0.236451148987 0.552949547768 0.037623882294 +v 0.224511861801 0.541902184486 0.036363959312 +v 0.211948394775 0.525437772274 0.006383121014 +v 0.214318037033 0.545253038406 0.069983601570 +v 0.212549924850 0.552964806557 0.068517923355 +v 0.224463939667 0.549749970436 0.033728003502 +v 0.218957901001 0.557131946087 0.083203673363 +v 0.187869310379 0.532874941826 0.092133939266 +v 0.187714338303 0.534057557583 0.080063939095 +v 0.181240797043 0.545281291008 0.081068098545 +v 0.146420955658 0.531102359295 0.067861676216 +v 0.212937355042 0.534900724888 0.000919044018 +v 0.184135675430 0.516894340515 -0.018340229988 +v 0.071259021759 0.544855475426 -0.057795166969 +v 0.062549352646 0.523616433144 0.002657234669 +v 0.072495937347 0.605195105076 -0.099032998085 +v 0.012754201889 0.670661449432 -0.129763662815 +v 0.074255228043 0.671743631363 -0.122924923897 +v 0.016004562378 0.604284882545 -0.108093738556 +v -0.047175407410 0.665716767311 -0.120963096619 +v -0.047187089920 0.735366821289 -0.127462327480 +v 0.014084577560 0.746303260326 -0.145008087158 +v -0.093496322632 0.661609470844 -0.084233760834 +v -0.096379756927 0.725130677223 -0.084452211857 +v -0.035370826721 0.739451408386 -0.115991532803 +v 0.016326665878 0.748082160950 -0.129412829876 +v -0.076249361038 0.729390442371 -0.078382790089 +v -0.043362140656 0.605586290359 -0.104780077934 +v -0.089107990265 0.608498692513 -0.073513865471 +v -0.114396095276 0.659402668476 -0.028737843037 +v -0.114691495895 0.720096588135 -0.025828123093 +v -0.112749338150 0.613461971283 -0.024391472340 +v 0.026057243347 0.539770305157 -0.068712770939 +v -0.036364793777 0.558640837669 -0.091128528118 +v 0.081735372543 0.748860776424 -0.142071723938 +v 0.138632535934 0.742601990700 -0.123913228512 +v 0.074531555176 0.752696514130 -0.124717712402 +v 0.130490541458 0.744501113892 -0.108744025230 +v 0.031629323959 0.521139383316 -0.005045592785 +v 0.039030313492 0.551695644855 0.056075632572 +v -0.001458644867 0.553142666817 0.050433158875 +v 0.022727251053 0.514308512211 -0.007078170776 +v 0.018694400787 0.521275639534 -0.064219474792 +v -0.013375759125 0.545891344547 0.025897085667 +v 0.010625362396 0.528762698174 -0.008753895760 +v -0.013785123825 0.537784159184 0.044802665710 +v -0.003431797028 0.556365251541 0.031631588936 +v 0.021438360214 0.537024855614 -0.007674217224 +v -0.044837236404 0.555213034153 0.041083216667 +v -0.037632226944 0.567453145981 0.046529829502 +v -0.051511764526 0.550408124924 0.056568264961 +v -0.049501657486 0.569334208965 0.059367895126 +v -0.012590885162 0.593995332718 0.081816494465 +v -0.056488513947 0.606606721878 0.067150175571 +v 0.028929233551 0.585341632366 0.093791067600 +v 0.008466243744 0.527554392815 -0.046013593674 +v 0.015324592590 0.539409756660 -0.046251296997 +v -0.025128364563 0.548998892307 -0.059863686562 +v -0.028495788574 0.536334693432 -0.059524655342 +v -0.034542560577 0.529292702675 -0.083323836327 +v 0.145991802216 0.508340239525 -0.014416158199 +v 0.131390333176 0.516479372978 0.021855235100 +v 0.026699304581 0.634563446045 0.117274522781 +v -0.020232677460 0.642315804958 0.100721597672 +v -0.026278018951 0.702590823174 0.111697435379 +v -0.068937778473 0.706630170345 0.078983545303 +v -0.064911603928 0.651495337486 0.071269571781 +v -0.015012741089 0.704616785049 0.095527708530 +v -0.054348468781 0.709064245224 0.065617680550 +v 0.026480436325 0.697825789452 0.111364364624 +v 0.025828838348 0.691604137421 0.109849214554 +v -0.014955997467 0.698180437088 0.094332814217 +v 0.071362495422 0.688030838966 0.115027904510 +v 0.069956779480 0.677348077297 0.113705933094 +v 0.121142864227 0.674957156181 0.104752779007 +v 0.119457006454 0.664903819561 0.103474259377 +v 0.021538257599 0.694689214230 0.131033778191 +v -0.053185701370 0.703009426594 0.064263105392 +v -0.084846496582 0.713242530823 0.025584518909 +v -0.102933645248 0.712332844734 0.035015225410 +v -0.095738649368 0.717043399811 -0.024513781071 +v -0.100670337677 0.658007621765 0.027561366558 +v -0.096192121506 0.614809751511 0.028727471828 +v -0.093750953674 0.575753808022 0.032837092876 +v -0.107775926590 0.575954735279 -0.015404582024 +v -0.076748132706 0.721031785011 -0.079203486443 +v -0.095304489136 0.708831727505 -0.024215877056 +v -0.035797357559 0.727729797363 -0.117839038372 +v 0.016345024109 0.738378584385 -0.135166823864 +v -0.084352016449 0.707949042320 0.025263905525 +v -0.074731111526 0.537435054779 -0.053000748158 +v -0.060385465622 0.543911695480 -0.041588306427 +v -0.085829257965 0.563987195492 -0.064947962761 +v -0.100173950195 0.556139528751 -0.010330975056 +v -0.076323747635 0.554702341557 -0.007672071457 +v -0.072488784790 0.558982849121 0.027619063854 +v -0.093396186829 0.559440493584 0.031786739826 +v -0.076028823853 0.564334809780 -0.006530702114 +v -0.068377733231 0.567896723747 0.030334770679 +v -0.061259269714 0.555227398872 -0.041971862316 +v 0.073889255524 0.745370209217 -0.123060703278 +v 0.128804206848 0.738630473614 -0.107519149780 +v 0.170720815659 0.713177621365 -0.074004113674 +v 0.014654159546 0.516860008240 -0.008520841599 +v 0.013562679291 0.518869280815 -0.057164371014 +v -0.016606330872 0.536776065826 0.037213981152 +v -0.049576044083 0.547559082508 0.050266206264 +v -0.032561779022 0.526100814342 -0.075417101383 +v -0.081507205963 0.541957616806 -0.059140264988 +v -0.090506315231 0.551226019859 -0.008307635784 +v -0.086373806000 0.554394304752 0.030092954636 +v 0.154227733612 0.513570308685 0.073047876358 +v 0.132213592529 0.500396609306 0.018915951252 +v 0.146581411362 0.496055126190 -0.020876288414 +v 0.191246986389 0.503775417805 -0.022085011005 +v 0.222658157349 0.525225639343 0.000867187977 +v 0.230988979340 0.543813467026 0.037524938583 +v 0.219683170319 0.549111723900 0.076172590256 +v 0.182136535645 0.536433517933 0.100669324398 +v 0.046369791031 0.719563126564 0.135822176933 +v 0.042241811752 0.721289813519 0.120435237885 +v -0.003053903580 0.735716164112 0.113252401352 +v -0.001557350159 0.734151005745 0.128390729427 +v 0.048724651337 0.693842947483 0.145092248917 +v 0.088016271591 0.680101275444 0.143559694290 +v 0.088751792908 0.712511181831 0.134645402431 +v -0.005078792572 0.687308907509 0.133116126060 +v 0.005204916000 0.678244352341 0.114929139614 +v 0.045290470123 0.679847002029 0.130735397339 +v -0.046638011932 0.679906129837 0.107797205448 +v -0.036025047302 0.673013865948 0.093445062637 +v -0.047019481659 0.748887658119 0.117437124252 +v -0.043670654297 0.749698400497 0.105795860291 +v -0.083326578140 0.758892953396 0.081229805946 +v -0.092339754105 0.758642017841 0.089627742767 +v -0.084635972977 0.674705922604 0.074784040451 +v -0.118670225143 0.769500553608 0.044728934765 +v -0.110567569733 0.675210475922 0.032601892948 +v -0.073696851730 0.668749451637 0.062748491764 +v -0.096913099289 0.669786691666 0.024165332317 +v -0.136384248734 0.778806865215 -0.006764948368 +v -0.125165224075 0.685560584068 -0.010455846786 +v -0.128728628159 0.779637575150 -0.004121005535 +v -0.123834848404 0.788750588894 -0.051987946033 +v -0.134121894836 0.787187457085 -0.055941343307 +v -0.112501621246 0.770408868790 0.043770790100 +v -0.125114917755 0.696647584438 -0.048348546028 +v 0.088402271271 0.679888308048 0.132619023323 +v 0.127837419510 0.673484921455 0.119722843170 +v 0.132176876068 0.673645257950 0.122276902199 +v 0.162997484207 0.673051953316 0.104590058327 +v 0.168073177338 0.673548042774 0.111319541931 +v 0.194190502167 0.675714135170 0.075663864613 +v 0.201750755310 0.681370317936 0.081253111362 +v 0.160883426666 0.700167834759 0.107342004776 +v 0.126739978790 0.702453672886 0.123044371605 +v 0.196573019028 0.701241195202 0.081610202789 +v 0.218851804733 0.692234337330 0.023782670498 +v 0.218031644821 0.722697138786 0.022761344910 +v 0.211975812912 0.697270512581 -0.019005358219 +v 0.210978746414 0.684415698051 0.022575974464 +v 0.206652164459 0.696023881435 -0.015635728836 +v 0.217346906662 0.742312967777 -0.024935722351 +v 0.212719678879 0.723642468452 0.022974371910 +v 0.189186811447 0.703710496426 0.071625590324 +v 0.151532173157 0.701240718365 0.096213757992 +v 0.119452953339 0.703918457031 0.109877347946 +v 0.084906578064 0.714441061020 0.121117770672 +v -0.109468936920 0.675620913506 -0.013445198536 +v -0.102214574814 0.688136637211 -0.049785196781 +v -0.112360954285 0.709139764309 -0.096938610077 +v -0.090363025665 0.703007459641 -0.084746301174 +v -0.079424858093 0.723271906376 -0.131462454796 +v -0.063344240189 0.716237366199 -0.108357429504 +v -0.031183481216 0.732107281685 -0.152232766151 +v -0.028877019882 0.723726272583 -0.136132776737 +v 0.020634174347 0.744759976864 -0.156958043575 +v 0.014694929123 0.733487784863 -0.142659604549 +v 0.069174766541 0.743137419224 -0.152602612972 +v 0.061331748962 0.735695242882 -0.140975654125 +v 0.110146522522 0.735085666180 -0.144149661064 +v 0.103978872299 0.731820046902 -0.132717370987 +v 0.077984094620 0.798910439014 -0.141461968422 +v 0.119859457016 0.790866315365 -0.137311816216 +v 0.074426889420 0.802294850349 -0.135301411152 +v 0.116223812103 0.793579339981 -0.130329132080 +v 0.161331653595 0.781449317932 -0.127611219883 +v 0.152729034424 0.728924751282 -0.130435585976 +v 0.157443046570 0.783650875092 -0.121536970139 +v 0.016957759857 0.807849287987 -0.168082594872 +v 0.013961553574 0.810384929180 -0.162219345570 +v 0.142093658447 0.720312654972 -0.115514278412 +v 0.183982133865 0.712360918522 -0.110098004341 +v 0.172728776932 0.703007578850 -0.095244884491 +v 0.204134464264 0.694908976555 -0.070124804974 +v 0.194279670715 0.698028326035 -0.065750300884 +v 0.193339109421 0.770651638508 -0.104809045792 +v 0.212558984756 0.760952532291 -0.071953296661 +v -0.037868022919 0.804407358170 -0.172462224960 +v -0.085999965668 0.798096537590 -0.150223016739 +v -0.079912900925 0.801035761833 -0.145433545113 +v -0.039311408997 0.806997716427 -0.165538191795 +v -0.114581584930 0.791720926762 -0.122836530209 +v -0.107570171356 0.793677270412 -0.103108108044 +v 0.188315153122 0.773532092571 -0.101306200027 +v 0.206870555878 0.763117253780 -0.069325089455 +v 0.211477041245 0.744883477688 -0.024265110493 +v 0.042490959167 0.714094579220 0.143952012062 +v 0.087229490280 0.708064198494 0.141458809376 +v -0.003680706024 0.725511908531 0.134795546532 +v -0.046833276749 0.736211478710 0.117370963097 +v -0.090959787369 0.743731617928 0.091760039330 +v -0.118830442429 0.753062367439 0.045624971390 +v -0.137614011765 0.761805653572 -0.004316985607 +v -0.138007164001 0.771108925343 -0.055927753448 +v 0.164827346802 0.696167469025 0.115181803703 +v 0.129087686539 0.698045313358 0.129442453384 +v 0.202077627182 0.697257161140 0.083701729774 +v 0.223474979401 0.716901838779 0.021489858627 +v 0.219713687897 0.734807431698 -0.024288654327 +v 0.116148948669 0.780359745026 -0.140539228916 +v 0.075758695602 0.788216233253 -0.143896400928 +v 0.158277511597 0.770472466946 -0.130922555923 +v 0.016254663467 0.794478595257 -0.169810354710 +v 0.214664697647 0.750561535358 -0.070789575577 +v 0.193098306656 0.760572731495 -0.107543230057 +v -0.038340330124 0.789423942566 -0.169972777367 +v -0.089158058167 0.786127924919 -0.148080706596 +v -0.117129564285 0.774500608444 -0.117468833923 +v 0.042947053909 0.680678486824 0.141971707344 +v 0.088331699371 0.690217196941 0.148079514503 +v 0.003902912140 0.677657604218 0.129070520401 +v -0.041256189346 0.671179771423 0.103981673717 +v -0.082117557526 0.666609048843 0.067920327187 +v -0.102604150772 0.668240845203 0.030974626541 +v -0.117699861526 0.673860788345 -0.010850131512 +v -0.117666482925 0.687893807888 -0.057794094086 +v 0.130661725998 0.680747628212 0.129106581211 +v 0.167012929916 0.680982887745 0.119741201401 +v 0.203903198242 0.687600016594 0.084002554417 +v 0.223474740982 0.696553647518 0.024260759354 +v 0.218124628067 0.702928543091 -0.021467387676 +v -0.105328559875 0.700765669346 -0.090611577034 +v -0.074398279190 0.714329957962 -0.125499725342 +v -0.027653694153 0.722540020943 -0.144668102264 +v 0.022192239761 0.732428669930 -0.150135040283 +v 0.065891504288 0.733176171780 -0.148831009865 +v 0.109828948975 0.726947844028 -0.140057563782 +v 0.145726919174 0.717888236046 -0.127151072025 +v 0.178150177002 0.702635169029 -0.105906605721 +v 0.208762645721 0.699994683266 -0.072454273701 +v 0.474818944931 0.829751849174 0.080761909485 +v 0.447371721268 0.827144682407 0.082335829735 +v 0.436402082443 0.801355779171 0.076726853848 +v 0.437137126923 0.782028198242 0.062518715858 +v 0.449114084244 0.774479269981 0.043720185757 +v 0.466235399246 0.780543923378 0.026742458344 +v 0.482433199883 0.796503424644 0.020002663136 +v 0.497534036636 0.817176282406 0.030400276184 +v 0.490592956543 0.825681328773 0.062343478203 +v 0.416083812714 0.856479287148 0.063238620758 +v 0.397818565369 0.822540879250 0.058679580688 +v 0.394402980804 0.790257930756 0.037392973900 +v 0.409307241440 0.778394103050 -0.000016272068 +v 0.435056686401 0.793707430363 -0.030144393444 +v 0.461454987526 0.821685552597 -0.037738919258 +v 0.478555798531 0.853732824326 -0.014944911003 +v 0.468921065331 0.879577338696 0.027264356613 +v 0.445375442505 0.880728542805 0.053184807301 +v 0.466699838638 0.886996567249 -0.046786844730 +v 0.444378852844 0.847988784313 -0.076629161835 +v 0.406841993332 0.809575557709 -0.076438903809 +v 0.371905088425 0.787828385830 -0.042897462845 +v 0.357719540596 0.804510772228 0.005992591381 +v 0.362805366516 0.843034982681 0.036714971066 +v 0.391008257866 0.879716992378 0.041662096977 +v 0.425895571709 0.907973527908 0.033029556274 +v 0.459516048431 0.908767938614 0.004759609699 +v 0.474973201752 0.818710982800 0.074997305870 +v 0.461808919907 0.809670209885 0.079118371010 +v 0.456480264664 0.798067808151 0.076258957386 +v 0.455782771111 0.786437451839 0.067734181881 +v 0.461717367172 0.781551599503 0.053859353065 +v 0.471699953079 0.783859133720 0.044202029705 +v 0.482946038246 0.793918967247 0.038748741150 +v 0.489899158478 0.805950462818 0.046118319035 +v 0.486937761307 0.816467463970 0.063097000122 +v 0.441228270531 0.887848794460 -0.051129221916 +v 0.419926643372 0.855345606804 -0.080606341362 +v 0.393717527390 0.828494906425 -0.076067388058 +v 0.370517253876 0.811828851700 -0.047418713570 +v 0.361316323280 0.823268711567 -0.005200862885 +v 0.369323611259 0.850542843342 0.018845379353 +v 0.388053059578 0.882371962070 0.021297752857 +v 0.414115905762 0.906186938286 0.015702068806 +v 0.435689449310 0.907421112061 -0.006201267242 +v 0.457625389099 0.893979549408 -0.053317129612 +v 0.432103991508 0.851549267769 -0.084864497185 +v 0.397927403450 0.816684424877 -0.084416866302 +v 0.365631699562 0.796897709370 -0.048830389977 +v 0.351232051849 0.811093628407 -0.000877141953 +v 0.357836484909 0.846324503422 0.031680703163 +v 0.384871840477 0.884247660637 0.031613469124 +v 0.419532299042 0.913497269154 0.023943066597 +v 0.448849439621 0.918320059776 -0.001152694225 +v 0.468704581261 0.841255605221 0.076112985611 +v 0.455493927002 0.817524373531 0.086187958717 +v 0.447009682655 0.798206448555 0.080420792103 +v 0.444962501526 0.781422913074 0.068031430244 +v 0.455179333687 0.774285674095 0.049756467342 +v 0.471616744995 0.778853714466 0.036065757275 +v 0.486483812332 0.790827751160 0.029048442841 +v 0.496397018433 0.808861613274 0.039405584335 +v 0.487864613533 0.835947692394 0.054146111012 +v 0.153582811356 1.146741271019 -0.023735761642 +v 0.146487712860 1.131359100342 -0.001364409924 +v 0.166741371155 1.124185800552 0.018122673035 +v 0.193145751953 1.149736404419 -0.011541187763 +v 0.155054807663 1.159122467041 -0.049359142780 +v 0.204403400421 1.165102362633 -0.054153501987 +v 0.122463703156 1.154211997986 -0.012223064899 +v 0.122359752655 1.165279030800 -0.031655430794 +v 0.111874103546 1.145521163940 -0.014831602573 +v 0.108873367310 1.130098581314 0.001646161079 +v 0.118844747543 1.140482068062 0.008030056953 +v 0.112039089203 1.157532334328 -0.030208945274 +v 0.117567777634 1.174703359604 -0.051419258118 +v 0.107257843018 1.165954709053 -0.045900940895 +v 0.104554653168 1.179394125938 -0.069682717323 +v 0.096223115921 1.169898509979 -0.061130762100 +v 0.078921318054 1.169709205627 -0.074586033821 +v 0.084147691727 1.179101228714 -0.084845960140 +v 0.060791492462 1.176911592484 -0.095880866051 +v 0.057977199554 1.167713642120 -0.084590315819 +v 0.036164999008 1.174309372902 -0.102829873562 +v 0.034911155701 1.165031433105 -0.090920388699 +v 0.010727643967 1.171227931976 -0.105658352375 +v 0.011106491089 1.162466049194 -0.093655586243 +v 0.043484210968 1.148231267929 -0.125569045544 +v 0.015298843384 1.144926548004 -0.130406677723 +v 0.071163892746 1.151486396790 -0.119160473347 +v 0.099195003510 1.154577970505 -0.109847664833 +v 0.129453897476 1.156361937523 -0.098611533642 +v 0.148039340973 1.161061882973 -0.075409770012 +v 0.194738388062 1.157809615135 -0.093097984791 +v 0.166496038437 1.133596062660 -0.120083212852 +v 0.241148471832 1.147128343582 -0.110760331154 +v 0.205090999603 1.108767747879 -0.138120114803 +v 0.296813964844 1.119970321655 -0.113083600998 +v 0.248097181320 1.079767704010 -0.139568984509 +v 0.314052343369 1.139110684395 -0.062264442444 +v 0.255768775940 1.160152196884 -0.056023120880 +v 0.125734090805 1.143847703934 -0.100883603096 +v 0.157966852188 1.121018052101 -0.115687131882 +v 0.195927619934 1.096690416336 -0.130942702293 +v 0.102578163147 1.110636472702 0.020105242729 +v 0.110338211060 1.120410561562 0.029318034649 +v 0.135500192642 1.112133264542 0.027387619019 +v 0.121419668198 1.085264921188 0.053761780262 +v 0.096231937408 1.096061944962 0.048072874546 +v 0.121106386185 1.072343826294 0.043408513069 +v 0.135016918182 1.098165869713 0.015953302383 +v 0.146015644073 1.118869185448 -0.003721117973 +v 0.161901235580 1.110084056854 0.008137762547 +v 0.196237564087 1.113056898117 0.041670143604 +v 0.231638908386 1.147067785263 0.005591809750 +v 0.187341213226 1.099266767502 0.029134333134 +v 0.101557731628 1.063514590263 0.082820892334 +v 0.102081298828 1.052370190620 0.074180006981 +v 0.079520702362 1.077967882156 0.068052530289 +v 0.091128826141 1.087718725204 0.037324488163 +v 0.076925516129 1.069971561432 0.055388748646 +v 0.073636531830 1.045414447784 0.104310035706 +v 0.060042619705 1.063298940659 0.085158526897 +v 0.060029506683 1.056650996208 0.070179820061 +v 0.076045036316 1.035140991211 0.095563471317 +v 0.043664932251 1.024097084999 0.109484314919 +v 0.049406528473 1.016946673393 0.102544367313 +v -0.092731475830 1.104547619820 -0.051223099232 +v -0.113844156265 1.093252182007 -0.044122219086 +v -0.106844902039 1.081219434738 -0.051757276058 +v -0.089383363724 1.092386722565 -0.054474711418 +v -0.142742395401 1.079518079758 -0.034633517265 +v -0.133426666260 1.067001342773 -0.045482337475 +v -0.184802770615 1.058834671974 -0.039483308792 +v -0.173303604126 1.048474073410 -0.050417959690 +v -0.212892293930 1.028311491013 -0.072805166245 +v -0.225590705872 1.036243677139 -0.063136100769 +v -0.252138376236 1.016947031021 -0.094444274902 +v -0.238336086273 1.010701894760 -0.105198681355 +v -0.261181116104 1.009418725967 -0.139634251595 +v -0.249701499939 1.001395821571 -0.147045373917 +v -0.236275196075 1.050160169601 -0.116216957569 +v -0.220269918442 1.051454544067 -0.180383503437 +v -0.255511283875 1.006905913353 -0.191586971283 +v -0.200874567032 1.088705539703 -0.091722786427 +v -0.183070182800 1.090037822723 -0.163334965706 +v -0.194282293320 1.042732954025 -0.226393222809 +v -0.229079723358 1.004474639893 -0.227474808693 +v -0.159255266190 1.014430284500 -0.241221547127 +v -0.196877479553 1.004197716713 -0.243847310543 +v -0.161328792572 1.084260106087 -0.219420254230 +v -0.119579792023 1.036281943321 -0.230625808239 +v -0.244533061981 0.997296631336 -0.191611886024 +v -0.223453521729 0.995631098747 -0.221788883209 +v -0.153653621674 1.110693693161 -0.078140616417 +v -0.146693229675 1.116624593735 -0.140892207623 +v -0.119409322739 1.117959380150 -0.075315594673 +v -0.110646963120 1.127498865128 -0.118036568165 +v -0.091603517532 1.119367361069 -0.072633266449 +v -0.084799051285 1.131223559380 -0.097159922123 +v -0.115998268127 1.108692765236 -0.190854609013 +v -0.089858293533 1.122802376747 -0.153536438942 +v -0.082515239716 1.073935151100 -0.031460642815 +v -0.089494943619 1.087044239044 -0.020607233047 +v -0.073734283447 1.050684690475 0.000546932220 +v -0.080284357071 1.062893509865 0.010187029839 +v -0.068449974060 1.044618606567 0.047623455524 +v -0.062891244888 1.033905506134 0.039388358593 +v -0.047109127045 1.031812429428 0.080443978310 +v -0.031396150589 1.052964568138 0.067215263844 +v -0.045845985413 1.064046025276 0.042960286140 +v -0.017226934433 1.017256498337 0.097646474838 +v -0.012994289398 1.040772914886 0.082050144672 +v -0.024281263351 1.047124743462 0.053621292114 +v -0.036925554276 1.057082414627 0.032743573189 +v -0.047004699707 1.072139143944 0.009349822998 +v -0.057619094849 1.078983664513 0.016488373280 +v -0.069085836411 1.100236415863 -0.007317364216 +v -0.056204557419 1.092651844025 -0.012012958527 +v -0.059460639954 1.110859036446 -0.031832396984 +v -0.073314666748 1.118509888649 -0.030457615852 +v -0.059396266937 1.125840187073 -0.048513889313 +v -0.072108268738 1.131877303123 -0.050584912300 +v -0.009020328522 1.040055990219 0.067265510559 +v -0.008279085159 1.048065781593 0.086258769035 +v -0.001708984375 1.044293761253 0.063691854477 +v -0.011102437973 1.013419628143 0.107842206955 +v 0.012402534485 1.014568805695 0.111340701580 +v -0.007885932922 1.000435948372 0.096706688404 +v 0.016772985458 0.998014330864 0.098615229130 +v -0.018301010132 1.009325742722 0.089410901070 +v 0.012949943542 1.049798607826 0.088101744652 +v 0.018573284149 1.045927882195 0.061640202999 +v 0.036473512650 1.048622608185 0.071156620979 +v 0.042591094971 1.045850872993 0.077319562435 +v 0.032891273499 1.053035736084 0.094713449478 +v -0.043589353561 1.021625638008 0.071766734123 +v -0.062194108963 1.102410316467 -0.172938823700 +v -0.045767784119 1.134480834007 -0.135547220707 +v -0.039524316788 1.122236609459 -0.136410057545 +v -0.056471109390 1.089962005615 -0.166750788689 +v -0.069718599319 1.135420084000 -0.119947195053 +v -0.057276010513 1.154541730881 -0.085973024368 +v -0.039468765259 1.162768602371 -0.098182201385 +v -0.047900676727 1.148107647896 -0.076298177242 +v -0.032938718796 1.155064463615 -0.086415827274 +v -0.067025423050 1.143415451050 -0.068977236748 +v -0.056419372559 1.138137459755 -0.063298463821 +v -0.015136957169 1.167805433273 -0.104464530945 +v -0.012070894241 1.159346342087 -0.092343151569 +v -0.014311790466 1.140978336334 -0.133057236671 +v -0.011669158936 1.129227042198 -0.125870227814 +v 0.016017198563 1.133123755455 -0.120839774609 +v 0.042919397354 1.136187195778 -0.116020321846 +v 0.069320917130 1.139438748360 -0.110212624073 +v 0.096272230148 1.142657041550 -0.103571355343 +v -0.084033012390 1.068661570549 -0.209112644196 +v -0.079619884491 1.055715084076 -0.200545787811 +v -0.114229202271 1.024448990822 -0.220436096191 +v -0.152589321136 1.005478620529 -0.229532003403 +v -0.190863609314 0.997435450554 -0.232511520386 +v 0.283624172211 1.127811551094 0.019655466080 +v 0.238133430481 1.093801021576 0.054984629154 +v 0.281615972519 1.070061683655 0.051802158356 +v 0.324586987495 1.083217859268 0.015623211861 +v 0.317109346390 1.049089670181 0.037077486515 +v 0.344853520393 1.035368323326 0.004752695560 +v 0.272841930389 1.062416911125 0.039141774178 +v 0.309236288071 1.042762875557 0.023036181927 +v 0.228971004486 1.083329319954 0.041944861412 +v 0.336932301521 1.026821017265 -0.005697131157 +v 0.352009296417 1.016058206558 -0.045218408108 +v 0.363454222679 1.025239586830 -0.041483044624 +v 0.350228548050 1.082829117775 -0.050576865673 +v 0.331254720688 1.069567441940 -0.102947354317 +v 0.354001879692 1.020647644997 -0.085915803909 +v 0.344488024712 1.012196183205 -0.082506895065 +v 0.291500329971 1.049303770065 -0.131860733032 +v 0.316508769989 1.020089149475 -0.108288466930 +v 0.278244972229 1.045682430267 -0.121770381927 +v 0.329316139221 1.025645136833 -0.117285430431 +v 0.237555980682 1.070979237556 -0.131267666817 +v 0.035062551498 1.018665790558 0.116485953331 +v 0.040465593338 1.046646237373 0.092548847198 +v 0.039201974869 1.005905747414 0.105759739876 +v 0.407534599304 1.049324989319 -0.053019642830 +v 0.407415151596 1.048302650452 -0.055281043053 +v 0.409241080284 1.045540690422 -0.054215550423 +v 0.409348964691 1.045631766319 -0.052197813988 +v 0.407567024231 1.045038938522 -0.053497850895 +v 0.408619165421 1.045577406883 -0.051431357861 +v 0.405469179153 1.048570752144 -0.051153659821 +v 0.405564785004 1.047778606415 -0.056019663811 +v 0.403634786606 1.047237396240 -0.053114891052 +v 0.403636693954 1.047934293747 -0.055059254169 +v 0.400758862495 1.061518907547 -0.057837843895 +v 0.404543042183 1.054217815399 -0.054585695267 +v 0.403454065323 1.053356051445 -0.050477862358 +v 0.400370597839 1.052134513855 -0.054630398750 +v 0.400712847710 1.052084445953 -0.049256503582 +v 0.390304088593 1.109333515167 -0.057016730309 +v 0.388536572456 1.106098771095 -0.056595444679 +v 0.390356302261 1.105766057968 -0.046931087971 +v 0.392881512642 1.108199954033 -0.046167612076 +v 0.386311173439 1.096173763275 -0.029934227467 +v 0.384410738945 1.113091945648 -0.026496827602 +v 0.389004111290 1.130117177963 -0.037221312523 +v 0.392682909966 1.108635425568 -0.037295579910 +v 0.393145322800 1.127447843552 -0.052910566330 +v 0.390158653259 1.094229102135 -0.034627795219 +v 0.365346193314 1.095366001129 -0.075250387192 +v 0.361508131027 1.084615111351 -0.066927909851 +v 0.372699022293 1.087730288506 -0.066918432713 +v 0.371014833450 1.094595193863 -0.072323203087 +v 0.361182332039 1.096700906754 -0.029368877411 +v 0.354959249496 1.107748985291 -0.019379496574 +v 0.363673329353 1.110366463661 -0.021963655949 +v 0.367691278458 1.100643992424 -0.026672244072 +v 0.374418973923 1.110103130341 -0.023161590099 +v 0.377149462700 1.091655015945 -0.026055395603 +v 0.373545646667 1.081293344498 -0.038487195969 +v 0.338927745819 1.093048810959 -0.023161709309 +v 0.335716485977 1.096756339073 -0.022189855576 +v 0.333831310272 1.101293921471 -0.015252113342 +v 0.339010357857 1.099372625351 -0.015726268291 +v 0.336115360260 1.103556871414 -0.011844396591 +v 0.344871759415 1.091088294983 -0.023372709751 +v 0.330793619156 1.106926560402 -0.018525958061 +v 0.326990127563 1.115554690361 -0.016181170940 +v 0.328750967979 1.092396497726 -0.021561920643 +v 0.325265884399 1.098267674446 -0.019644141197 +v 0.346914052963 1.103241682053 -0.017480194569 +v 0.338825702667 1.108204364777 -0.011111140251 +v 0.344290256500 1.120107769966 -0.013092637062 +v 0.340465307236 1.136773347855 -0.015785038471 +v 0.324753522873 1.125427603722 -0.015070736408 +v 0.325292944908 1.136361837387 -0.017429172993 +v 0.329348087311 1.116966009140 -0.013588488102 +v 0.332792520523 1.118334770203 -0.096988618374 +v 0.332243442535 1.122267842293 -0.094619393349 +v 0.323136806488 1.125333309174 -0.083494544029 +v 0.327710032463 1.113504409790 -0.092576861382 +v 0.341573119164 1.120945453644 -0.094311773777 +v 0.335590600967 1.131715416908 -0.092355489731 +v 0.328661322594 1.133670330048 -0.089798271656 +v 0.324473619461 1.135583043098 -0.085328757763 +v 0.353020310402 1.126932740211 -0.091999888420 +v 0.346932053566 1.140344977379 -0.090539395809 +v 0.324019074440 1.120222568512 -0.017995357513 +v 0.289908170700 1.127960801125 -0.085108101368 +v 0.304053783417 1.121056914330 -0.078729987144 +v 0.358429908752 1.193968534470 -0.088134527206 +v 0.357683658600 1.184876799583 -0.100257873535 +v 0.363889813423 1.171106338501 -0.087482929230 +v 0.366210937500 1.176288127899 -0.080222189426 +v 0.368631839752 1.159053325653 -0.078640401363 +v 0.373743414879 1.167661428452 -0.066681802273 +v 0.375433444977 1.182421684265 -0.018816709518 +v 0.371500611305 1.164965748787 -0.026864171028 +v 0.360645771027 1.163048863411 -0.020475804806 +v 0.365925073624 1.182272315025 -0.013802051544 +v 0.355728268623 1.168922543526 -0.016866326332 +v 0.365192413330 1.144321084023 -0.023384571075 +v 0.351355433464 1.141466021538 -0.019072234631 +v 0.347202420235 1.153388857841 -0.018843293190 +v 0.341611385345 1.160166978836 -0.015560805798 +v 0.308113574982 1.139430522919 -0.086172342300 +v 0.313164234161 1.145732045174 -0.091821610928 +v 0.344058752060 1.152563452721 -0.093004882336 +v 0.359626531601 1.152780056000 -0.086724877357 +v 0.353022336960 1.166682362556 -0.092923939228 +v 0.347189664841 1.169834375381 -0.094244897366 +v 0.342811346054 1.158735275269 -0.094510555267 +v 0.353778600693 1.178154706955 -0.104299247265 +v 0.348872900009 1.177428722382 -0.102648377419 +v 0.331777811050 1.146316647530 -0.093712210655 +v 0.320755481720 1.145852565765 -0.098560571671 +v 0.323286175728 1.148737668991 -0.101337194443 +v 0.333321571350 1.152906417847 -0.097986042500 +v 0.326210260391 1.151933670044 -0.103993952274 +v 0.320780992508 1.131242513657 -0.019613742828 +v 0.316488265991 1.137263059616 -0.026703536510 +v 0.320133447647 1.137962102890 -0.020618379116 +v 0.337424993515 1.147775053978 -0.018649101257 +v 0.334059238434 1.153875350952 -0.016800880432 +v 0.332339167595 1.160215377808 -0.011005222797 +v 0.333034753799 1.162801146507 -0.010488092899 +v 0.342080116272 1.164801001549 -0.014642059803 +v 0.329650044441 1.156030654907 -0.012940168381 +v 0.320695400238 1.147234559059 -0.025550961494 +v 0.324349880219 1.148427605629 -0.021465837955 +v 0.324996113777 1.144489049911 -0.022029399872 +v 0.319767236710 1.142206072807 -0.025610327721 +v 0.316439867020 1.145988821983 -0.028391957283 +v 0.314030408859 1.140980482101 -0.030016005039 +v 0.306605100632 1.136893630028 -0.031398415565 +v 0.311094760895 1.138293743134 -0.030661761761 +v 0.314454317093 1.133188128471 -0.029211819172 +v 0.307747125626 1.131512522697 -0.031591475010 +v 0.291517019272 1.138318657875 -0.033916234970 +v 0.304842948914 1.122800350189 -0.030405402184 +v 0.289185523987 1.130287408829 -0.033323228359 +v 0.286009788513 1.137142181396 -0.090150713921 +v 0.292701721191 1.141978979111 -0.107457876205 +v 0.304615020752 1.142538189888 -0.102706909180 +v 0.309559822083 1.150496006012 -0.024630010128 +v 0.318125486374 1.150960326195 -0.022390007973 +v 0.317887067795 1.153405547142 -0.009570956230 +v 0.321745395660 1.151527643204 -0.017602443695 +v 0.312289476395 1.154029130936 -0.016137778759 +v 0.300724506378 1.151372194290 -0.025900006294 +v 0.302543878555 1.155046701431 -0.016855716705 +v 0.311131477356 1.148434042931 -0.121525228024 +v 0.314778566360 1.145795822144 -0.111356735229 +v 0.318232536316 1.148830175400 -0.113018929958 +v 0.316641569138 1.155373811722 -0.125974237919 +v 0.310946226120 1.160884141922 -0.130396544933 +v 0.305948495865 1.152399063110 -0.128264009953 +v 0.322793602943 1.153211474419 -0.114452242851 +v 0.319596290588 1.160681724548 -0.123025000095 +v 0.319034099579 1.171830296516 0.017393767834 +v 0.317905664444 1.160627365112 0.008475244045 +v 0.311162710190 1.163662672043 0.014921247959 +v 0.310447931290 1.172396779060 0.019649803638 +v 0.309610843658 1.159015893936 0.012034296989 +v 0.310906410217 1.144272089005 -0.107071161270 +v 0.306469917297 1.144841670990 -0.117874324322 +v 0.302479743958 1.143570303917 -0.114495694637 +v 0.301431417465 1.147624731064 -0.126265466213 +v 0.295472621918 1.145630240440 -0.120796620846 +v 0.288472175598 1.148880720139 -0.025115370750 +v 0.301652908325 1.141206622124 -0.031471252441 +v 0.309620141983 1.142498731613 -0.029031515121 +v 0.273790359497 1.148244857788 -0.025866985321 +v 0.272537946701 1.142426609993 -0.030830979347 +v 0.272406339645 1.134789586067 -0.032956182957 +v 0.291519165039 1.153991341591 -0.016412615776 +v 0.305040836334 1.167021632195 0.019629895687 +v 0.307030200958 1.163709878922 0.017679572105 +v 0.305133104324 1.161130547523 0.017725169659 +v 0.303712606430 1.163359761238 0.020457804203 +v 0.294210910797 1.150454163551 -0.129565417767 +v 0.297544717789 1.151566028595 -0.131443619728 +v 0.299007177353 1.157061815262 -0.131160855293 +v 0.289251804352 1.162134289742 -0.127951741219 +v 0.300848484039 1.162901401520 0.020725965500 +v 0.299931526184 1.168733119965 0.019787251949 +v 0.302267789841 1.160912990570 0.017476558685 +v 0.284586906433 1.155997037888 -0.118712186813 +v 0.320478677750 1.183388590813 0.019893288612 +v 0.315504550934 1.185158967972 0.021765649319 +v 0.304894447327 1.174435973167 0.020509123802 +v 0.311547279358 1.187007069588 0.021684288979 +v 0.294510126114 1.164358973503 0.015730142593 +v 0.295584678650 1.166682958603 0.018493294716 +v 0.298225879669 1.162472367287 0.019704580307 +v 0.296677112579 1.161968946457 0.018077135086 +v 0.299949407578 1.160799622536 0.016491711140 +v 0.297479152679 1.160787940025 0.014298200607 +v 0.295337200165 1.162495613098 0.013063669205 +v 0.297493457794 1.159226298332 0.006240844727 +v 0.292984724045 1.162090659142 0.007228136063 +v 0.289747714996 1.165970087051 0.009980738163 +v 0.293587207794 1.173587322235 0.017361879349 +v 0.295882701874 1.184546113014 0.019877433777 +v 0.289324522018 1.170376300812 0.013289868832 +v 0.304202318192 1.163235664368 -0.131868004799 +v 0.295037984848 1.173500776291 -0.132903218269 +v 0.339935421944 1.204928994179 0.011042654514 +v 0.323164343834 1.198740124702 0.019174516201 +v 0.319356679916 1.202640295029 0.017888188362 +v 0.333619713783 1.216896772385 0.006251335144 +v 0.316392660141 1.223941683769 0.004564166069 +v 0.318291187286 1.236307144165 -0.009308457375 +v 0.339412450790 1.232521295547 -0.013116896152 +v 0.309664726257 1.210659503937 0.013969600201 +v 0.320227146149 1.235717296600 -0.089737355709 +v 0.315104484558 1.228830337524 -0.112790822983 +v 0.326388478279 1.222050905228 -0.113814830780 +v 0.333210706711 1.227595806122 -0.095670104027 +v 0.337775707245 1.211602926254 -0.112435698509 +v 0.344557762146 1.216145873070 -0.082126915455 +v 0.326203584671 1.226114869118 -0.064788460732 +v 0.278375148773 1.164562225342 0.002692937851 +v 0.286962032318 1.159514427185 -0.002162218094 +v 0.278234004974 1.155510902405 -0.013907790184 +v 0.260844707489 1.160049319267 -0.009037494659 +v 0.253694772720 1.171441078186 0.002056777477 +v 0.274199008942 1.172616839409 0.009002089500 +v 0.241376399994 1.164381980896 -0.022117018700 +v 0.236744165421 1.171596884727 -0.017185091972 +v 0.257408142090 1.154074668884 -0.020835101604 +v 0.240831613541 1.161932706833 -0.027496337891 +v 0.272498369217 1.184606671333 0.015063345432 +v 0.283818006516 1.195466637611 0.018259227276 +v 0.251496076584 1.179788351059 0.004774987698 +v 0.280345439911 1.187177538872 -0.130770325661 +v 0.278849363327 1.200135588646 -0.128845155239 +v 0.264022827148 1.197203159332 -0.124487996101 +v 0.263042688370 1.188585639000 -0.125758051872 +v 0.247735500336 1.194719552994 -0.112018883228 +v 0.248827695847 1.181841850281 -0.113283038139 +v 0.269680976868 1.173762202263 -0.124203026295 +v 0.254821300507 1.213196992874 -0.005989432335 +v 0.259692907333 1.217268109322 -0.002873539925 +v 0.264866352081 1.212918281555 0.006526708603 +v 0.262398242950 1.203422427177 0.007279813290 +v 0.274141788483 1.213083267212 0.013194501400 +v 0.276415348053 1.206676006317 0.013642489910 +v 0.247564315796 1.194469571114 -0.000649333000 +v 0.245563030243 1.205689191818 -0.011326313019 +v 0.232998371124 1.204849720001 -0.033008277416 +v 0.242313385010 1.215915679932 -0.027005612850 +v 0.237220525742 1.198678970337 -0.018567323685 +v 0.235009908676 1.188932180405 -0.016125142574 +v 0.229682207108 1.194204092026 -0.034655272961 +v 0.280081987381 1.256208896637 -0.019527673721 +v 0.266340732574 1.257276535034 -0.021893620491 +v 0.272911071777 1.248642563820 -0.034798681736 +v 0.289152145386 1.246002078056 -0.035115897655 +v 0.308747768402 1.234785199165 -0.048455655575 +v 0.315008163452 1.240252733231 -0.028551578522 +v 0.295452594757 1.246342897415 -0.017771065235 +v 0.291768074036 1.252464294434 -0.011624932289 +v 0.272852182388 1.246320486069 0.026719093323 +v 0.274995565414 1.244897484779 0.026039719582 +v 0.270889520645 1.239411234856 0.026342213154 +v 0.269581317902 1.240408897400 0.026497364044 +v 0.264169454575 1.234132766724 0.025929450989 +v 0.263763427734 1.235451221466 0.026660978794 +v 0.263376712799 1.240142583847 0.021522641182 +v 0.268235921860 1.245139122009 0.023626983166 +v 0.227350234985 1.201413989067 -0.060404598713 +v 0.226505756378 1.187961101532 -0.062663376331 +v 0.232470035553 1.193228960037 -0.089262902737 +v 0.238893508911 1.210202097893 -0.088255286217 +v 0.253223896027 1.206307768822 -0.110778868198 +v 0.239593505859 1.224539875984 -0.073748230934 +v 0.232012033463 1.216619491577 -0.053089022636 +v 0.252145767212 1.219983339310 -0.097832560539 +v 0.250634193420 1.229226589203 -0.085364758968 +v 0.252376794815 1.238263368607 -0.057780742645 +v 0.267105579376 1.240937113762 -0.056898772717 +v 0.258289337158 1.241248607635 -0.051965177059 +v 0.252767086029 1.235920786858 -0.034247636795 +v 0.247609376907 1.233851552010 -0.039491355419 +v 0.265551090240 1.267001390457 0.009194791317 +v 0.272844314575 1.261870384216 0.012323737144 +v 0.270809888840 1.260163426399 0.015809416771 +v 0.262974262238 1.263656973839 0.012956202030 +v 0.268976211548 1.265585422516 0.000393331051 +v 0.258705377579 1.266561031342 -0.002085030079 +v 0.261866092682 1.261532545090 -0.010348796844 +v 0.274395465851 1.261371612549 -0.009189963341 +v 0.238660573959 1.248261332512 0.003617167473 +v 0.232067346573 1.245571255684 0.001219451427 +v 0.233589172363 1.253527522087 -0.000213980675 +v 0.238280773163 1.252982854843 0.002291560173 +v 0.241975069046 1.261794805527 0.000397861004 +v 0.244624614716 1.256234288216 0.001851916313 +v 0.222787380219 1.257822632790 -0.151930749416 +v 0.228422880173 1.254693269730 -0.147209823132 +v 0.230664730072 1.257706403732 -0.153383851051 +v 0.225557327271 1.260083436966 -0.156076908112 +v 0.224181652069 1.269489765167 -0.164974153042 +v 0.218438386917 1.260652661324 -0.156715095043 +v 0.235471725464 1.260826349258 -0.157907843590 +v 0.216721296310 1.261644721031 -0.151875853539 +v 0.215643405914 1.258587121964 -0.150196969509 +v 0.234998703003 1.261462807655 -0.124403178692 +v 0.224088907242 1.267516016960 -0.134056270123 +v 0.228742599487 1.274905562401 -0.138475537300 +v 0.243557214737 1.273823022842 -0.127884268761 +v 0.218826293945 1.271217346191 -0.139695227146 +v 0.223790407181 1.282513380051 -0.156298041344 +v 0.229401111603 1.281741142273 -0.159395992756 +v 0.243339538574 1.285583496094 -0.155722141266 +v 0.240149497986 1.285640001297 -0.147173225880 +v 0.263746500015 1.284044027328 -0.144365310669 +v 0.256647109985 1.283450603485 -0.135616004467 +v 0.249143123627 1.278396368027 -0.130899667740 +v 0.231034517288 1.281445980072 -0.142535567284 +v 0.228749275208 1.279866695404 -0.162645876408 +v 0.225111246109 1.280306816101 -0.161672592163 +v 0.326325416565 1.095832467079 -0.026897907257 +v 0.328660488129 1.092162013054 -0.027155876160 +v 0.334224581718 1.083390593529 -0.031802475452 +v 0.331976652145 1.086985468864 -0.036189317703 +v 0.244880199432 1.142374873161 -0.073979854584 +v 0.242966175079 1.142764568329 -0.078356206417 +v 0.235785722733 1.146784543991 -0.078433096409 +v 0.238635778427 1.145627975464 -0.074249148369 +v 0.232438325882 1.149214863777 -0.073069214821 +v 0.236898422241 1.147114753723 -0.069623470306 +v 0.255175828934 1.136546134949 -0.077648699284 +v 0.255682229996 1.136946439743 -0.070239722729 +v 0.269840002060 1.141850829124 -0.088529407978 +v 0.257449388504 1.150468826294 -0.085283041000 +v 0.282135963440 1.148957133293 -0.107223212719 +v 0.262875080109 1.157893180847 -0.106579840183 +v 0.264955282211 1.164611697197 -0.115844190121 +v 0.244687318802 1.169971346855 -0.105285048485 +v 0.246577739716 1.164339303970 -0.095911860466 +v 0.234338521957 1.172934412956 -0.084621906281 +v 0.237678050995 1.167568325996 -0.080495774746 +v 0.230271100998 1.181651115417 -0.088845074177 +v 0.227655649185 1.178839325905 -0.062708079815 +v 0.231756448746 1.172751188278 -0.062062919140 +v 0.229456424713 1.177902221680 -0.036529541016 +v 0.232846736908 1.170946717262 -0.038640320301 +v 0.227507114410 1.182419776917 -0.036165595055 +v 0.234830379486 1.176739931107 -0.015439331532 +v 0.235546827316 1.166122555733 -0.040820002556 +v 0.235387325287 1.167956709862 -0.061342179775 +v 0.236512184143 1.160708308220 -0.043142557144 +v 0.237915754318 1.161495804787 -0.059940874577 +v 0.241000175476 1.156659126282 -0.029682040215 +v 0.256223201752 1.147885084152 -0.025309741497 +v 0.252270221710 1.141531467438 -0.026705861092 +v 0.236812353134 1.148920893669 -0.030205547810 +v 0.290362834930 1.128957509995 -0.035883367062 +v 0.271513700485 1.134885430336 -0.035297334194 +v 0.306781768799 1.119673848152 -0.033734023571 +v 0.317042827606 1.112375974655 -0.022598922253 +v 0.317406177521 1.108932733536 -0.028873980045 +v 0.332089543343 1.094723105431 -0.085125267506 +v 0.322933316231 1.108649253845 -0.085476875305 +v 0.319103002548 1.109926819801 -0.080069780350 +v 0.329759955406 1.096952438354 -0.079336047173 +v 0.334635496140 1.087565541267 -0.070015192032 +v 0.337785124779 1.084333658218 -0.074962139130 +v 0.336755514145 1.081413388252 -0.053044438362 +v 0.338276147842 1.079147696495 -0.053146123886 +v 0.346428036690 1.085549473763 -0.069611251354 +v 0.343625307083 1.093718051910 -0.081809461117 +v 0.333607673645 1.104474425316 -0.090680718422 +v 0.343541741371 1.081957101822 -0.052684903145 +v 0.353684067726 1.082917213440 -0.067507863045 +v 0.358879923820 1.093483090401 -0.077935218811 +v 0.351037502289 1.092784404755 -0.080610275269 +v 0.360334396362 1.102306008339 -0.085941970348 +v 0.347621440887 1.101400613785 -0.092805027962 +v 0.345952153206 1.079882979393 -0.052633166313 +v 0.355161905289 1.077038049698 -0.051688134670 +v 0.343386173248 1.084547519684 -0.034452319145 +v 0.352032899857 1.082792043686 -0.035345792770 +v 0.340294599533 1.086036086082 -0.034663975239 +v 0.321768999100 1.104483842850 -0.020316779613 +v 0.326095461845 1.115695357323 -0.020195245743 +v 0.319353103638 1.123223304749 -0.025029301643 +v 0.322834372520 1.101128458977 -0.027329206467 +v 0.321851253510 1.127054452896 -0.022767901421 +v 0.353766679764 1.095177173615 -0.026385903358 +v 0.359876632690 1.086948037148 -0.037192046642 +v 0.368791699409 1.081473231316 -0.054299533367 +v 0.366416454315 1.085834145546 -0.039678335190 +v 0.375720381737 1.077826261520 -0.054867923260 +v 0.385641813278 1.069572925568 -0.047519683838 +v 0.386780261993 1.068247556686 -0.054583191872 +v 0.379089593887 1.078935027122 -0.064835965633 +v 0.387892365456 1.068310856819 -0.060149490833 +v 0.394519090652 1.059546113014 -0.055611908436 +v 0.389144182205 1.068464994431 -0.063209295273 +v 0.381745100021 1.079965829849 -0.068755567074 +v 0.395897269249 1.059724450111 -0.058292984962 +v 0.397762775421 1.058734893799 -0.060246050358 +v 0.390513181686 1.068549633026 -0.065918266773 +v 0.401293635368 1.052220582962 -0.057137370110 +v 0.402930855751 1.052381992340 -0.058841645718 +v 0.399328708649 1.059069991112 -0.062133789063 +v 0.404549121857 1.052707433701 -0.057922661304 +v 0.400724768639 1.060495495796 -0.061055362225 +v 0.394371271133 1.071512341499 -0.065981507301 +v 0.392708420753 1.069672346115 -0.067366063595 +v 0.394284963608 1.071869850159 -0.062373280525 +v 0.388498425484 1.083336234093 -0.066320896149 +v 0.388929486275 1.082942962646 -0.069176137447 +v 0.389878511429 1.092170119286 -0.038135766983 +v 0.392562985420 1.073132753372 -0.038371622562 +v 0.393902897835 1.072458386421 -0.036485314369 +v 0.400479316711 1.060284376144 -0.040919661522 +v 0.400619268417 1.059895157814 -0.042878329754 +v 0.392677068710 1.071635484695 -0.034626603127 +v 0.399963617325 1.058247804642 -0.039560496807 +v 0.389219284058 1.072089076042 -0.033550858498 +v 0.398481249809 1.057546377182 -0.040394842625 +v 0.385063409805 1.070487856865 -0.035343050957 +v 0.395586490631 1.058170080185 -0.044803380966 +v 0.402001142502 1.052767753601 -0.042411684990 +v 0.388577699661 1.095486879349 -0.066482841969 +v 0.387288451195 1.094378232956 -0.064481914043 +v 0.389545917511 1.108287096024 -0.069271624088 +v 0.387219429016 1.094375610352 -0.071040332317 +v 0.390260934830 1.124660015106 -0.067944049835 +v 0.383810281754 1.146947145462 -0.036770582199 +v 0.387935638428 1.145303487778 -0.049735426903 +v 0.385385751724 1.144845247269 -0.066654205322 +v 0.379234194756 1.167300224304 -0.047699809074 +v 0.378260374069 1.142871618271 -0.078380703926 +v 0.384638786316 1.121478676796 -0.079748928547 +v 0.371328830719 1.114236831665 -0.083621263504 +v 0.366134643555 1.134753823280 -0.086642682552 +v 0.358268737793 1.111678957939 -0.091841936111 +v 0.384584784508 1.105457901955 -0.077077627182 +v 0.377453684807 1.103823542595 -0.078171491623 +v 0.383101344109 1.092535972595 -0.074570477009 +v 0.376216292381 1.093980312347 -0.073397576809 +v 0.384114503860 1.080561161041 -0.071538448334 +v 0.387168884277 1.081826567650 -0.071408987045 +v 0.378217101097 1.166335225105 -0.036741614342 +v 0.376491785049 1.185984611511 -0.027371287346 +v 0.375539779663 1.191256642342 -0.040807008743 +v 0.376024484634 1.146698236465 -0.028571903706 +v 0.380968809128 1.128817915916 -0.027356445789 +v 0.372819066048 1.124244213104 -0.021395444870 +v 0.357726931572 1.123675107956 -0.019232869148 +v 0.363764047623 1.199695229530 -0.003253161907 +v 0.359092354774 1.192318797112 -0.001357376575 +v 0.363418817520 1.207986116409 -0.009030759335 +v 0.363287687302 1.216881036758 -0.024423658848 +v 0.353446960449 1.214913725853 -0.051911473274 +v 0.367811679840 1.192584276199 -0.062469363213 +v 0.335019469261 1.232254981995 -0.039931237698 +v 0.341472268105 1.196155428886 0.010244071484 +v 0.354283452034 1.192304849625 -0.001765370369 +v 0.339673757553 1.196221947670 0.007006824017 +v 0.363298535347 1.182292938232 -0.012944102287 +v 0.354795575142 1.171777725220 -0.016488790512 +v 0.327435612679 1.161281824112 -0.002656698227 +v 0.324092507362 1.165798902512 0.006462395191 +v 0.322525382042 1.168064355850 0.004236161709 +v 0.326949238777 1.164337635040 -0.003446638584 +v 0.325284123421 1.158543467522 -0.003361463547 +v 0.322180032730 1.162310838699 0.007995128632 +v 0.320963859558 1.172976732254 0.015366852283 +v 0.319886207581 1.174322366714 0.011200785637 +v 0.321480035782 1.183079004288 0.017309784889 +v 0.326878428459 1.193821310997 0.018233954906 +v 0.327511191368 1.192236304283 0.015911042690 +v 0.303445339203 1.120934963226 -0.074148416519 +v 0.251810550690 1.141942739487 -0.031309187412 +v 0.241466999054 1.146666526794 -0.036401212215 +v 0.236400604248 1.148872971535 -0.047140300274 +v 0.230206489563 1.152073264122 -0.044595956802 +v 0.229574203491 1.151367187500 -0.061807334423 +v 0.239748239517 1.160202145576 -0.073878407478 +v 0.247816801071 1.157876133919 -0.081561207771 +v 0.234130144119 1.149081230164 -0.061738610268 +v 0.224230289459 1.281635522842 -0.153767704964 +v 0.223762512207 1.278146028519 -0.159069538116 +v 0.219611406326 1.279417753220 -0.152326762676 +v 0.213749408722 1.273561835289 -0.144396305084 +v 0.217382907867 1.273008942604 -0.147697806358 +v 0.221839427948 1.275884628296 -0.154915273190 +v 0.210401773453 1.265159130096 -0.141010046005 +v 0.213674545288 1.265947461128 -0.146045088768 +v 0.217527627945 1.274109721184 -0.141741633415 +v 0.215512275696 1.264181613922 -0.138061285019 +v 0.220313549042 1.262314796448 -0.135805130005 +v 0.220573663712 1.257741451263 -0.138237059116 +v 0.216372489929 1.257721900940 -0.141187667847 +v 0.212907791138 1.258577108383 -0.145352184772 +v 0.233858585358 1.256473422050 -0.125267803669 +v 0.234248638153 1.251918315887 -0.127823233604 +v 0.246033430099 1.251870393753 -0.112772464752 +v 0.246748685837 1.247483968735 -0.115507006645 +v 0.247130870819 1.256455659866 -0.111137330532 +v 0.258541584015 1.245236992836 -0.084437072277 +v 0.256093978882 1.239906072617 -0.086883187294 +v 0.257097005844 1.266151666641 -0.110764563084 +v 0.266882419586 1.251339793205 -0.085104942322 +v 0.267502307892 1.270240545273 -0.112958729267 +v 0.275364637375 1.256015896797 -0.091180860996 +v 0.275161266327 1.274131059647 -0.118503391743 +v 0.285532474518 1.258744239807 -0.098316013813 +v 0.281810045242 1.273761987686 -0.128352165222 +v 0.294841051102 1.259177684784 -0.109563946724 +v 0.285378694534 1.267878890038 -0.136893749237 +v 0.299645662308 1.256075739861 -0.122435271740 +v 0.267150640488 1.279207229614 -0.152110457420 +v 0.266644477844 1.272503018379 -0.155482232571 +v 0.285328865051 1.260385632515 -0.145259499550 +v 0.245440483093 1.281306147575 -0.162130832672 +v 0.247352838516 1.277317881584 -0.164401888847 +v 0.226536273956 1.277150392532 -0.165146172047 +v 0.244216680527 1.272458314896 -0.165734708309 +v 0.265185594559 1.264242410660 -0.158591628075 +v 0.225196361542 1.271236658096 -0.164832949638 +v 0.240829467773 1.264716506004 -0.164158344269 +v 0.256122827530 1.256213188171 -0.158023118973 +v 0.249283313751 1.251091122627 -0.154383540154 +v 0.264867782593 1.238259196281 -0.149782478809 +v 0.271236419678 1.243698835373 -0.152746677399 +v 0.242131233215 1.248456358910 -0.149258136749 +v 0.259697437286 1.235559821129 -0.143175721169 +v 0.238021850586 1.246404170990 -0.140355885029 +v 0.255519628525 1.235976219177 -0.134220600128 +v 0.235714912415 1.248224496841 -0.132601261139 +v 0.249901533127 1.242415428162 -0.121484637260 +v 0.225628137589 1.255354166031 -0.141528964043 +v 0.219279289246 1.256212234497 -0.146652877331 +v 0.261144638062 1.227618336678 -0.105385541916 +v 0.265067815781 1.218194127083 -0.118982553482 +v 0.255488157272 1.234093666077 -0.095165371895 +v 0.257819652557 1.237515091896 -0.082652032375 +v 0.256304979324 1.231330990791 -0.090660393238 +v 0.261433124542 1.242497920990 -0.080974459648 +v 0.269018650055 1.247485637665 -0.080007076263 +v 0.276544094086 1.249154090881 -0.084097981453 +v 0.286174535751 1.250129461288 -0.091734588146 +v 0.297051906586 1.250920057297 -0.101950109005 +v 0.304772377014 1.248518705368 -0.115050077438 +v 0.297762155533 1.245796918869 -0.131601870060 +v 0.303509950638 1.239294528961 -0.125708818436 +v 0.278063774109 1.251515507698 -0.150501132011 +v 0.292453289032 1.234364628792 -0.138768732548 +v 0.285548925400 1.222070693970 -0.138958930969 +v 0.275888442993 1.216582298279 -0.135062336922 +v 0.269642829895 1.214331030846 -0.127090573311 +v 0.265042543411 1.214603662491 -0.116683065891 +v 0.270244359970 1.211904883385 -0.125036418438 +v 0.259296417236 1.223366022110 -0.101866900921 +v 0.260845899582 1.212415218353 -0.112328946590 +v 0.266552209854 1.205083847046 -0.122853875160 +v 0.268821239471 1.210025906563 -0.123203098774 +v 0.277948856354 1.207428336143 -0.128034055233 +v 0.277915716171 1.211367130280 -0.128684759140 +v 0.288717508316 1.213802814484 -0.129420161247 +v 0.287309169769 1.217238068581 -0.130407452583 +v 0.277626991272 1.213335871696 -0.130287289619 +v 0.286727428436 1.219543695450 -0.133292317390 +v 0.297491550446 1.224069118500 -0.127825796604 +v 0.295832872391 1.229104042053 -0.133770406246 +v 0.299275398254 1.222613096237 -0.126457333565 +v 0.306288719177 1.231516838074 -0.115943133831 +v 0.303650856018 1.233008384705 -0.119831323624 +v 0.304522037506 1.218244671822 -0.125307500362 +v 0.291501283646 1.207969903946 -0.129891932011 +v 0.295377254486 1.198327302933 -0.132311940193 +v 0.312335252762 1.210624575615 -0.126865327358 +v 0.307499647141 1.182762622833 -0.133446455002 +v 0.321811676025 1.199660181999 -0.127626895905 +v 0.313686370850 1.178631782532 -0.132702827454 +v 0.327832698822 1.190094709396 -0.127820491791 +v 0.318174362183 1.174999833107 -0.130550682545 +v 0.329443216324 1.184651136398 -0.126586496830 +v 0.320348262787 1.172263383865 -0.127011775970 +v 0.329268336296 1.182359218597 -0.124253869057 +v 0.319159746170 1.172549962997 -0.124517083168 +v 0.327510595322 1.181082725525 -0.121122121811 +v 0.341977953911 1.186866998672 -0.119443237782 +v 0.340240001678 1.181673407555 -0.114829957485 +v 0.342066526413 1.190820455551 -0.118938207626 +v 0.343557119370 1.197325468063 -0.114280879498 +v 0.308367967606 1.238885641098 -0.100797057152 +v 0.302496671677 1.241308212280 -0.108589589596 +v 0.297030925751 1.244460582733 -0.094559252262 +v 0.288425922394 1.242414832115 -0.070966482162 +v 0.300933361053 1.241560339928 -0.084082663059 +v 0.287242650986 1.245997667313 -0.082513213158 +v 0.276428461075 1.242347240448 -0.063216865063 +v 0.276814937592 1.246329665184 -0.074558973312 +v 0.262533426285 1.248234033585 -0.033080637455 +v 0.268426895142 1.245181202888 -0.070157289505 +v 0.255537271500 1.244341135025 -0.030193269253 +v 0.255340337753 1.255470871925 -0.021258711815 +v 0.248293161392 1.248656272888 -0.019238531590 +v 0.246406555176 1.241610646248 -0.014172136784 +v 0.252004623413 1.238135337830 -0.023450851440 +v 0.240248918533 1.252865195274 -0.008260846138 +v 0.236009836197 1.244751214981 -0.002041816711 +v 0.250643014908 1.260913610458 -0.006915748119 +v 0.241449356079 1.238094210625 0.000856995583 +v 0.248243808746 1.235244989395 -0.007029771805 +v 0.236295223236 1.238589763641 0.006947577000 +v 0.244088888168 1.237448453903 0.010651528835 +v 0.245872020721 1.235504984856 0.007974743843 +v 0.240644693375 1.243501543999 0.007078409195 +v 0.245250463486 1.240480542183 0.010777413845 +v 0.252675771713 1.233302831650 0.020247042179 +v 0.254426479340 1.231533646584 0.017972588539 +v 0.254062652588 1.237539768219 0.019096493721 +v 0.276159763336 1.255128741264 0.018554508686 +v 0.275947093964 1.249229311943 0.022302091122 +v 0.272867918015 1.249667882919 0.024674117565 +v 0.271744251251 1.251732468605 0.021295309067 +v 0.283636093140 1.255234718323 0.014072477818 +v 0.280255317688 1.247575402260 0.019362986088 +v 0.276215314865 1.261920690536 0.008904576302 +v 0.278604030609 1.259399175644 0.004241228104 +v 0.285460472107 1.252817630768 0.010138630867 +v 0.266534566879 1.266445875168 0.005049049854 +v 0.258428096771 1.268704891205 0.002973020077 +v 0.254645347595 1.267239928246 0.003869831562 +v 0.287663459778 1.258239984512 -0.004414916039 +v 0.298110485077 1.250542998314 0.003384351730 +v 0.298449993134 1.244361400604 -0.001860737801 +v 0.299829959869 1.234122157097 0.006569683552 +v 0.298758268356 1.238474845886 0.010709106922 +v 0.303976297379 1.239164352417 -0.006211340427 +v 0.305155038834 1.229295969009 0.004372239113 +v 0.300870895386 1.218429088593 0.011674880981 +v 0.295304775238 1.223464488983 0.011802554131 +v 0.293110609055 1.205903887749 0.015846788883 +v 0.286343812943 1.213704109192 0.013587355614 +v 0.302354812622 1.196681976318 0.018828034401 +v 0.283874988556 1.219200730324 0.015126287937 +v 0.293270826340 1.227752089500 0.015739440918 +v 0.283052444458 1.240837812424 0.023119628429 +v 0.276622056961 1.233630180359 0.024268507957 +v 0.286540031433 1.246751070023 0.017804086208 +v 0.272910356522 1.237592816353 0.025359690189 +v 0.278305053711 1.243288516998 0.024740695953 +v 0.267666101456 1.227963447571 0.022224366665 +v 0.264769792557 1.232656955719 0.024754941463 +v 0.260413408279 1.224851250648 0.011581957340 +v 0.257379055023 1.225758671761 -0.000789821148 +v 0.253545045853 1.232021093369 -0.012868225574 +v 0.254851341248 1.226656675339 -0.018729388714 +v 0.251304626465 1.230217099190 0.003005683422 +v 0.256979942322 1.228909850121 0.014670252800 +v 0.250156402588 1.223106861115 -0.021990776062 +v 0.239892244339 1.227292776108 -0.045880913734 +v 0.245432853699 1.234084725380 -0.064319491386 +v 0.254643917084 1.237128496170 -0.077797412872 +v 0.259204149246 1.241605043411 -0.074413061142 +v 0.253374576569 1.265572071075 0.004234373569 +v 0.252619743347 1.259510278702 0.004528701305 +v 0.295717954636 1.157437562943 -0.004984855652 +v 0.302157163620 1.158133268356 0.007280886173 +v 0.303221464157 1.155419707298 -0.004480600357 +v 0.306118011475 1.158186078072 0.009157180786 +v 0.309594392776 1.154529452324 -0.002081036568 +v 0.317309141159 1.145281672478 -0.095512390137 +v 0.342793583870 1.111549854279 -0.096035361290 +v 0.370063781738 1.103682756424 -0.078702569008 +v 0.223846435547 1.280663371086 -0.149150192738 +v 0.262922763824 1.260004043579 0.011266469955 +v 0.278262376785 1.128904223442 -0.071313738823 +v 0.278782129288 1.129065513611 -0.078170895576 +v 0.214526414871 1.261890172958 -0.147512257099 +v 0.403749704361 1.053897500038 -0.044087231159 +v -0.173335313797 1.189228773117 -0.074161946774 +v -0.172501087189 1.194711208344 -0.077600002289 +v -0.156718730927 1.200044989586 -0.067752003670 +v -0.159983634949 1.195769190788 -0.064942240715 +v -0.157345533371 1.192241907120 -0.064338445663 +v -0.176035165787 1.182665348053 -0.074862539768 +v -0.153723001480 1.198203325272 -0.067141354084 +v -0.154419660568 1.185277462006 -0.061343967915 +v -0.174031734467 1.176616787910 -0.076530218124 +v -0.153948068619 1.192448616028 -0.066138029099 +v -0.152566671371 1.196974277496 -0.068748712540 +v -0.149900436401 1.188096642494 -0.064178586006 +v -0.167804479599 1.171906828880 -0.078679144382 +v -0.151026010513 1.177392482758 -0.069037199020 +v -0.159547805786 1.170724391937 -0.081492185593 +v -0.137443780899 1.179318189621 -0.071261107922 +v -0.151052713394 1.171566128731 -0.090630888939 +v -0.145410776138 1.202758073807 -0.074415385723 +v -0.146416664124 1.204916477203 -0.073959469795 +v -0.142997503281 1.206828117371 -0.075007200241 +v -0.139394283295 1.203434348106 -0.075942695141 +v -0.143990516663 1.207095742226 -0.077334642410 +v -0.152405261993 1.204598784447 -0.072375178337 +v -0.150315523148 1.201716780663 -0.070241928101 +v -0.169452428818 1.199298620224 -0.083030939102 +v -0.163226604462 1.203215003014 -0.090547025204 +v -0.193114757538 1.175109863281 -0.086916208267 +v -0.185326576233 1.171366214752 -0.082843124866 +v -0.186292409897 1.165282964706 -0.088589191437 +v -0.200573444366 1.166569828987 -0.092627763748 +v -0.138775825500 1.205187916756 -0.076617836952 +v -0.135615825653 1.203529238701 -0.077090024948 +v -0.155732393265 1.203607797623 -0.096656978130 +v -0.149366855621 1.200804471970 -0.100724101067 +v -0.137942790985 1.205677509308 -0.079242825508 +v -0.131234407425 1.203546047211 -0.080529451370 +v -0.130687952042 1.197476148605 -0.079052925110 +v -0.130004167557 1.197584390640 -0.081454098225 +v -0.129281997681 1.189852356911 -0.077395677567 +v -0.131329774857 1.190665483475 -0.076595366001 +v -0.141457080841 1.192768573761 -0.102260649204 +v -0.127812385559 1.196197390556 -0.082319319248 +v -0.144458770752 1.197188854218 -0.101949512959 +v -0.177466392517 1.161493182182 -0.094907760620 +v -0.163338899612 1.165530800819 -0.106261909008 +v -0.128491640091 1.187958240509 -0.082086682320 +v -0.140712261200 1.182583570480 -0.100011527538 +v -0.210927009583 1.107810139656 -0.110981822014 +v -0.211072683334 1.103303790092 -0.109917879105 +v -0.213212490082 1.101778507233 -0.109918236732 +v -0.214309692383 1.109030246735 -0.111766934395 +v -0.204130172729 1.105494737625 -0.113910675049 +v -0.205763339996 1.099799871445 -0.112921178341 +v -0.223363876343 1.117204904556 -0.114630222321 +v -0.214059114456 1.124341964722 -0.111509382725 +v -0.219065189362 1.105570316315 -0.114096760750 +v -0.238481521606 1.129768848419 -0.130072593689 +v -0.234876394272 1.134552240372 -0.130008339882 +v -0.223749637604 1.136018037796 -0.118461847305 +v -0.207642078400 1.120860934258 -0.111469984055 +v -0.208950042725 1.096844553947 -0.112857937813 +v -0.215140581131 1.098256349564 -0.112100958824 +v -0.209567785263 1.147545337677 -0.113711655140 +v -0.197745561600 1.140209794044 -0.107432365417 +v -0.193334102631 1.132169842720 -0.107758402824 +v -0.193572998047 1.150783538818 -0.107727050781 +v -0.203800201416 1.156490325928 -0.111603617668 +v -0.175592660904 1.145561695099 -0.106927514076 +v -0.172769784927 1.138006210327 -0.105781555176 +v -0.177102327347 1.152362346649 -0.109004378319 +v -0.203049182892 1.103446960449 -0.115947484970 +v -0.205771446228 1.097857356071 -0.116888880730 +v -0.200581550598 1.109675526619 -0.119850099087 +v -0.202297449112 1.114114880562 -0.116474270821 +v -0.205280303955 1.096752166748 -0.122693479061 +v -0.225318193436 1.093360424042 -0.128429234028 +v -0.225040435791 1.096657991409 -0.123039066792 +v -0.220809221268 1.096151828766 -0.119270980358 +v -0.221869707108 1.091606855392 -0.126757025719 +v -0.228603363037 1.095641136169 -0.129044175148 +v -0.228597879410 1.101918220520 -0.122385978699 +v -0.224291801453 1.103944659233 -0.118215620518 +v -0.247853517532 1.125877380371 -0.145480275154 +v -0.241319656372 1.134932279587 -0.146954476833 +v -0.224902391434 1.146563768387 -0.131057977676 +v -0.189874410629 1.125573754311 -0.113757431507 +v -0.188519477844 1.120980858803 -0.117558717728 +v -0.197483062744 1.107985734940 -0.124557018280 +v -0.203064918518 1.094104051590 -0.134538710117 +v -0.212108135223 1.091883540154 -0.125092267990 +v -0.146539926529 1.190650701523 -0.114794254303 +v -0.146754264832 1.180134177208 -0.115530133247 +v -0.152557849884 1.174678444862 -0.113840103149 +v -0.143783569336 1.177394032478 -0.097335398197 +v -0.152518033981 1.177743196487 -0.127124845982 +v -0.154675722122 1.168212413788 -0.123611927032 +v -0.152200698853 1.192405939102 -0.124226093292 +v -0.149080038071 1.190506696701 -0.121930062771 +v -0.149870634079 1.194133043289 -0.115894854069 +v -0.152212619781 1.190471172333 -0.127474963665 +v -0.152487754822 1.182887434959 -0.127529799938 +v -0.154866933823 1.185299873352 -0.129990160465 +v -0.154926300049 1.181805968285 -0.133388638496 +v -0.233518838882 1.051918983459 -0.153825461864 +v -0.234681367874 1.048460602760 -0.154123127460 +v -0.235526800156 1.045760154724 -0.156687140465 +v -0.238681077957 1.048464179039 -0.156781077385 +v -0.229362010956 1.049855709076 -0.154987037182 +v -0.227258443832 1.057394742966 -0.153537988663 +v -0.231667280197 1.046329975128 -0.156813800335 +v -0.223042964935 1.088201880455 -0.145084559917 +v -0.215483188629 1.087337613106 -0.146565556526 +v -0.215860605240 1.081712245941 -0.155044794083 +v -0.226407766342 1.085251331329 -0.153320491314 +v -0.235337972641 1.090702056885 -0.156869351864 +v -0.226635932922 1.075340270996 -0.153673052788 +v -0.235593795776 1.084217786789 -0.159696042538 +v -0.230427265167 1.064726591110 -0.154860198498 +v -0.235838890076 1.056318044662 -0.154584050179 +v -0.244804859161 1.037203311920 -0.166494607925 +v -0.242951393127 1.043129205704 -0.159860074520 +v -0.236907005310 1.041309475899 -0.161783397198 +v -0.243432760239 1.035140395164 -0.168893754482 +v -0.224668979645 1.052752375603 -0.157276332378 +v -0.230270862579 1.046147704124 -0.159191727638 +v -0.159595966339 1.184921741486 -0.135831117630 +v -0.160187005997 1.181343317032 -0.141996622086 +v -0.153135061264 1.179491877556 -0.142091393471 +v -0.169377088547 1.185044288635 -0.136880159378 +v -0.170533895493 1.181570768356 -0.151052296162 +v -0.160138130188 1.174441456795 -0.159372687340 +v -0.222903490067 1.065987110138 -0.152610003948 +v -0.210915327072 1.058199882507 -0.158076643944 +v -0.219084739685 1.052546024323 -0.157240092754 +v -0.209656953812 1.069716095924 -0.156206488609 +v -0.242612361908 1.097414970398 -0.161309957504 +v -0.247563600540 1.103350877762 -0.164090692997 +v -0.248119831085 1.110607266426 -0.158350706100 +v -0.241690874100 1.101655244827 -0.159433066845 +v -0.244697809219 1.092168807983 -0.164222717285 +v -0.251339673996 1.101027250290 -0.169793009758 +v -0.253261089325 1.111646056175 -0.160615861416 +v -0.246266365051 1.039236307144 -0.166336178780 +v -0.249294042587 1.037806272507 -0.168891787529 +v -0.250867843628 1.039080262184 -0.168178379536 +v -0.247174024582 1.041245818138 -0.164608359337 +v -0.252528667450 1.034430623055 -0.174002289772 +v -0.255876541138 1.036398887634 -0.174964785576 +v -0.248456478119 1.035744786263 -0.171986579895 +v -0.207899332047 1.087407350540 -0.147547543049 +v -0.209868431091 1.082488656044 -0.153715491295 +v -0.206011295319 1.082607984543 -0.148635447025 +v -0.207342624664 1.075194835663 -0.155124664307 +v -0.252168178558 1.045034170151 -0.165443241596 +v -0.258034706116 1.046116113663 -0.173089325428 +v -0.262003183365 1.051245570183 -0.178000867367 +v -0.252234935760 1.049173116684 -0.164762079716 +v -0.252549409866 1.041483521461 -0.167263507843 +v -0.259843349457 1.041425228119 -0.177599608898 +v -0.270201206207 1.045489907265 -0.187091112137 +v -0.276372432709 1.040201425552 -0.192463517189 +v -0.278449535370 1.034975290298 -0.196169674397 +v -0.284775257111 1.029717683792 -0.197532415390 +v -0.284212112427 1.040760636330 -0.193028330803 +v -0.271418571472 1.038434147835 -0.194264531136 +v -0.273589372635 1.034032583237 -0.199454545975 +v -0.281298398972 1.027353167534 -0.202217400074 +v -0.285241842270 1.052183389664 -0.197862207890 +v -0.287758827209 1.044720053673 -0.200536787510 +v -0.285270452499 1.052050352097 -0.209925532341 +v -0.284770965576 1.056814908981 -0.208144426346 +v -0.286429882050 1.041720151901 -0.204202711582 +v -0.282965183258 1.049952030182 -0.209141969681 +v -0.281043052673 1.048063278198 -0.188708662987 +v -0.144400358200 1.176907896996 -0.151417970657 +v -0.135134458542 1.175758123398 -0.166907787323 +v -0.129020690918 1.170335769653 -0.138893842697 +v -0.141971826553 1.174503087997 -0.135131359100 +v -0.119428634644 1.164143443108 -0.165285944939 +v -0.116199493408 1.159146547318 -0.141210973263 +v -0.142082691193 1.176310896873 -0.178735315800 +v -0.151244163513 1.175081014633 -0.169050514698 +v -0.125181674957 1.176591157913 -0.177203238010 +v -0.130443096161 1.183761119843 -0.186303555965 +v -0.245208501816 1.111506700516 -0.205009043217 +v -0.232599973679 1.125318527222 -0.206095397472 +v -0.240747690201 1.128869056702 -0.186226844788 +v -0.252095937729 1.110360264778 -0.190840721130 +v -0.230934619904 1.112748980522 -0.219200611115 +v -0.201740980148 1.135213136673 -0.227704524994 +v -0.210019588470 1.145615220070 -0.203961193562 +v -0.256554365158 1.026075959206 -0.197485446930 +v -0.252297163010 1.025413274765 -0.206123828888 +v -0.262440681458 1.028629183769 -0.203707456589 +v -0.262872934341 1.028875350952 -0.197542905807 +v -0.253294944763 1.027410507202 -0.211396694183 +v -0.259093761444 1.029339194298 -0.211079478264 +v -0.246476411819 1.024986743927 -0.206110835075 +v -0.252317905426 1.024993419647 -0.197774946690 +v -0.311765909195 0.993130266666 -0.226933717728 +v -0.310108184814 0.996098339558 -0.225180983543 +v -0.310272455215 0.995082259178 -0.224124073982 +v -0.309615135193 0.992788553238 -0.226431727409 +v -0.307722568512 0.995178222656 -0.223333239555 +v -0.308899879456 0.997443914413 -0.225597083569 +v -0.306552886963 0.996318519115 -0.226082086563 +v -0.301561355591 0.999858021736 -0.221365690231 +v -0.301273822784 0.999540150166 -0.223513543606 +v -0.300451040268 0.999494612217 -0.225161433220 +v -0.291275262833 1.008644461632 -0.219689548016 +v -0.289765357971 1.008863568306 -0.223312497139 +v -0.303882122040 1.002618789673 -0.222436308861 +v -0.245472908020 1.029212474823 -0.216191470623 +v -0.251756668091 1.032742142677 -0.216125905514 +v -0.240088224411 1.029202461243 -0.212740898132 +v -0.305489063263 0.996842980385 -0.228073120117 +v -0.301641464233 1.000535249710 -0.226922750473 +v -0.297816038132 1.000618338585 -0.226435422897 +v -0.304344177246 0.995790660381 -0.228550374508 +v -0.307172536850 0.993706703186 -0.230047941208 +v -0.308262586594 0.994648814201 -0.229670286179 +v -0.308869600296 0.993044137955 -0.230499446392 +v -0.308663368225 0.993162393570 -0.231502115726 +v -0.309333801270 0.993721485138 -0.231109619141 +v -0.308087825775 0.994998931885 -0.231224834919 +v -0.103364944458 1.130733013153 -0.165089964867 +v -0.107626914978 1.133225798607 -0.140607297421 +v -0.110349178314 1.147431254387 -0.169585108757 +v -0.118245124817 1.140465259552 -0.188436806202 +v -0.112480401993 1.127350330353 -0.185356020927 +v -0.119234800339 1.154477119446 -0.179611444473 +v -0.122121334076 1.162646651268 -0.173162460327 +v -0.123259067535 1.147673130035 -0.192043066025 +v -0.307780742645 0.994723260403 -0.231847167015 +v -0.307749986649 0.993669688702 -0.231788516045 +v -0.306983709335 0.993704020977 -0.230996787548 +v -0.193033456802 1.081855773926 -0.203872740269 +v -0.194959878922 1.074067234993 -0.206613779068 +v -0.192106723785 1.074653506279 -0.197215080261 +v -0.189585685730 1.081505656242 -0.199741780758 +v -0.181468963623 1.087621688843 -0.203916847706 +v -0.182246923447 1.086801290512 -0.208190560341 +v -0.180797338486 1.080666303635 -0.200190067291 +v -0.238004446030 1.038412332535 -0.221756696701 +v -0.255303144455 1.040868282318 -0.221722602844 +v -0.259346246719 1.034848093987 -0.217119097710 +v -0.226242780685 1.046014308929 -0.223912119865 +v -0.243605136871 1.045503258705 -0.225179314613 +v -0.229806661606 1.033677101135 -0.221885204315 +v -0.128174781799 1.188377022743 -0.200627446175 +v -0.148290157318 1.179109573364 -0.194076895714 +v -0.271722316742 1.054550886154 -0.227642059326 +v -0.274076938629 1.049859046936 -0.228212535381 +v -0.270540475845 1.041400551796 -0.231285452843 +v -0.265389442444 1.048523783684 -0.231947541237 +v -0.279670238495 1.057693004608 -0.219425976276 +v -0.279539346695 1.051576972008 -0.220776438713 +v -0.275705814362 1.041727423668 -0.228427529335 +v -0.199706077576 1.055555105209 -0.210151553154 +v -0.194469451904 1.055464029312 -0.201491832733 +v -0.188562631607 1.062397480011 -0.194959938526 +v -0.193209409714 1.067214727402 -0.202750325203 +v -0.197559595108 1.061594724655 -0.212190330029 +v -0.199322462082 1.054384827614 -0.212732195854 +v -0.264539003372 1.034891843796 -0.224602222443 +v -0.264505386353 1.033686161041 -0.220391511917 +v -0.259446859360 1.043034553528 -0.228882968426 +v -0.253154993057 1.049899816513 -0.229087173939 +v -0.192896127701 1.083252668381 -0.207294523716 +v -0.205631494522 1.076366066933 -0.214735269547 +v -0.194759368896 1.084827780724 -0.212751626968 +v -0.223470926285 1.074144601822 -0.221447348595 +v -0.204793214798 1.086842775345 -0.216361939907 +v -0.216625213623 1.087888479233 -0.219625651836 +v -0.195574283600 1.087720632553 -0.216327428818 +v -0.220762968063 1.036061048508 -0.216470956802 +v -0.213054895401 1.035783767700 -0.213620066643 +v -0.201663494110 1.045588612556 -0.206914484501 +v -0.209848642349 1.043720960617 -0.214580178261 +v -0.216307878494 1.038053512573 -0.218539953232 +v -0.226351261139 1.035285830498 -0.218240320683 +v -0.205461740494 1.046299815178 -0.217294871807 +v -0.213101387024 1.042110800743 -0.219072997570 +v -0.220921278000 1.039087295532 -0.221290767193 +v -0.220387458801 1.042260169983 -0.223516404629 +v -0.213362932205 1.046354770660 -0.223494648933 +v -0.166803121567 1.090283155441 -0.212349832058 +v -0.172270536423 1.087766289711 -0.218560039997 +v -0.183573484421 1.086018800735 -0.212494730949 +v -0.167399406433 1.091666579247 -0.207822561264 +v -0.158848285675 1.093401670456 -0.218638300896 +v -0.162909030914 1.089765548706 -0.223327994347 +v -0.030130147934 1.186614990234 -0.177592396736 +v -0.028016805649 1.185017704964 -0.176330447197 +v -0.027128219604 1.182949185371 -0.177097141743 +v -0.030794620514 1.185065984726 -0.177214145660 +v -0.027263402939 1.185469865799 -0.176604092121 +v -0.029033184052 1.187615036964 -0.178278744221 +v -0.025565147400 1.183858990669 -0.176834225655 +v -0.026248216629 1.187106251717 -0.178503096104 +v -0.155820369720 1.101422905922 -0.208842039108 +v -0.143939018250 1.110964536667 -0.203809499741 +v -0.147772073746 1.116233944893 -0.210553169250 +v -0.153800964355 1.103918313980 -0.216478586197 +v -0.151521444321 1.110116600990 -0.224545180798 +v -0.153570175171 1.098989486694 -0.229076087475 +v -0.153712034225 1.098475694656 -0.221522092819 +v -0.143598556519 1.121090412140 -0.215590834618 +v -0.025197982788 1.179040908813 -0.178160905838 +v -0.028691530228 1.180666327477 -0.177641034126 +v -0.024049282074 1.180395364761 -0.178064346313 +v -0.023061275482 1.183145642281 -0.176922082901 +v -0.024633884430 1.187012076378 -0.180191814899 +v -0.022006034851 1.183752536774 -0.176543354988 +v -0.023281335831 1.181692600250 -0.177503108978 +v -0.041700124741 1.194597840309 -0.188832759857 +v -0.040053844452 1.195041775703 -0.191445589066 +v -0.038641691208 1.194105863571 -0.194117784500 +v -0.021546125412 1.184016108513 -0.178950071335 +v -0.023211956024 1.185567021370 -0.181426763535 +v -0.020884990692 1.182555675507 -0.179597258568 +v -0.155306577682 1.094101190567 -0.223596096039 +v -0.153067588806 1.095505952835 -0.230197072029 +v -0.024875402451 1.176557660103 -0.180157959461 +v -0.029001712799 1.177595734596 -0.180325567722 +v -0.022265434265 1.178601741791 -0.180594265461 +v -0.022731781006 1.183528065681 -0.182420313358 +v -0.129092454910 1.126704692841 -0.201514482498 +v -0.129842519760 1.138575315475 -0.203304290771 +v -0.140452623367 1.137107372284 -0.216508805752 +v -0.143960952759 1.126296997070 -0.219137907028 +v -0.154357194901 1.127161264420 -0.228255271912 +v -0.149726629257 1.136419534683 -0.223747491837 +v -0.174418687820 1.142764806747 -0.223434805870 +v -0.169390678406 1.132646441460 -0.235435843468 +v -0.159634113312 1.138588905334 -0.227177619934 +v -0.183374881744 1.151468753815 -0.210604786873 +v -0.202531337738 1.122591972351 -0.235654771328 +v -0.174713850021 1.123547434807 -0.239896833897 +v -0.026677846909 1.177809119225 -0.182901620865 +v -0.028857231140 1.177586197853 -0.182363390923 +v -0.180840730667 1.098434567451 -0.228965997696 +v -0.177192926407 1.093732595444 -0.232580184937 +v -0.174651861191 1.104560375214 -0.238290369511 +v -0.178368806839 1.106090188026 -0.233393609524 +v -0.168076038361 1.097283363342 -0.234453976154 +v -0.169014692307 1.107891798019 -0.237803101540 +v -0.176104545593 1.089681625366 -0.227148771286 +v -0.167286634445 1.091750741005 -0.230993151665 +v -0.157043457031 1.091841936111 -0.227160215378 +v -0.159157276154 1.091518163681 -0.229555249214 +v -0.155268907547 1.095846176147 -0.231792688370 +v -0.160398960114 1.094118118286 -0.232700586319 +v -0.161424636841 1.113683462143 -0.233527243137 +v -0.153696537018 1.112774372101 -0.227253794670 +v -0.160377740860 1.100663542747 -0.232878029346 +v -0.155321598053 1.101318359375 -0.229982614517 +v -0.129415988922 1.121230006218 -0.195909500122 +v -0.115429162979 1.119397759438 -0.179361224174 +v -0.130902051926 1.117012500763 -0.191515922546 +v -0.115962266922 1.118604898453 -0.176315546036 +v -0.110272169113 1.120705842972 -0.160776674747 +v -0.113960504532 1.119729280472 -0.159553110600 +v -0.120643854141 1.123042941093 -0.142679691315 +v -0.116504192352 1.124894142151 -0.141778171062 +v -0.116237640381 1.119012355804 -0.159137606621 +v -0.121575117111 1.122238159180 -0.143324553967 +v -0.133432149887 1.123821258545 -0.128500640392 +v -0.129076957703 1.126407384872 -0.125177204609 +v -0.133791923523 1.122404217720 -0.126223802567 +v -0.151261806488 1.118286848068 -0.116750955582 +v -0.150382995605 1.123445391655 -0.118158876896 +v -0.165156841278 1.112223029137 -0.114312648773 +v -0.168798208237 1.119785189629 -0.114506125450 +v -0.146946668625 1.111286401749 -0.115677714348 +v -0.159301757813 1.103829860687 -0.112823069096 +v -0.169470071793 1.095391631126 -0.113259613514 +v -0.176546573639 1.104174375534 -0.116012811661 +v -0.181593179703 1.086678743362 -0.119435906410 +v -0.187299728394 1.095249652863 -0.122014880180 +v -0.192334890366 1.079224348068 -0.132685303688 +v -0.196459770203 1.086544990540 -0.133203148842 +v -0.167187929153 1.093284368515 -0.118592262268 +v -0.158042192459 1.100373268127 -0.117775142193 +v -0.177332639694 1.085744619370 -0.124823093414 +v -0.188689470291 1.078408122063 -0.135257482529 +v -0.133802890778 1.114060878754 -0.127829909325 +v -0.147693157196 1.107499122620 -0.121569573879 +v -0.130974292755 1.116622328758 -0.124757289886 +v -0.118712902069 1.116385936737 -0.142161726952 +v -0.114444732666 1.114831447601 -0.156344830990 +v -0.116871118546 1.115381836891 -0.173745512962 +v -0.127918481827 1.112462520599 -0.189754128456 +v -0.140444517136 1.105615377426 -0.201572239399 +v -0.153226137161 1.096442341805 -0.206420838833 +v -0.166574478149 1.087847948074 -0.204887628555 +v -0.148325681686 1.084455490112 -0.202776551247 +v -0.132059097290 1.095326542854 -0.197568535805 +v -0.118970394135 1.104256153107 -0.183249711990 +v -0.113605022430 1.110781550407 -0.171092212200 +v -0.119467735291 1.110980629921 -0.156059205532 +v -0.118595600128 1.107293367386 -0.167004108429 +v -0.122451543808 1.113593697548 -0.145232379436 +v -0.123160123825 1.101921558380 -0.179320454597 +v -0.134120464325 1.093572258949 -0.190831780434 +v -0.149135828018 1.083696126938 -0.196358323097 +v -0.164771795273 1.075974822044 -0.199542462826 +v -0.178263664246 1.069347739220 -0.194986939430 +v -0.178308486938 1.067918300629 -0.193336069584 +v -0.187574863434 1.061674833298 -0.193846702576 +v -0.165014982224 1.074935913086 -0.195628762245 +v -0.203114748001 1.047059774399 -0.203367710114 +v -0.194963455200 1.055162310600 -0.198111474514 +v -0.211767911911 1.036029338837 -0.208810448647 +v -0.212155818939 1.037373661995 -0.206103205681 +v -0.226508617401 1.025479078293 -0.212446689606 +v -0.223773002625 1.027394175529 -0.209277987480 +v -0.234503984451 1.028979897499 -0.212858796120 +v -0.240490436554 1.019392728806 -0.204267203808 +v -0.244890213013 1.018656373024 -0.196853935719 +v -0.253900766373 1.026709318161 -0.190710783005 +v -0.246401309967 1.020783185959 -0.188246011734 +v -0.252592563629 1.030183553696 -0.180509030819 +v -0.245979547501 1.024557352066 -0.179143786430 +v -0.256746768951 1.027064442635 -0.190641164780 +v -0.255533695221 1.030755162239 -0.181877255440 +v -0.261640310287 1.031444549561 -0.191453814507 +v -0.259487628937 1.033203363419 -0.183249652386 +v -0.265381097794 1.035956144333 -0.193069219589 +v -0.262969732285 1.038062810898 -0.186465203762 +v -0.266802787781 1.033626079559 -0.198642969131 +v -0.266010284424 1.031839489937 -0.204385280609 +v -0.270675420761 1.031339287758 -0.205536782742 +v -0.263313770294 1.031893968582 -0.211139619350 +v -0.266834974289 1.031145095825 -0.212556302547 +v -0.272355556488 1.027421116829 -0.214405179024 +v -0.271020889282 1.027558326721 -0.222151696682 +v -0.277619600296 1.026623606682 -0.207558810711 +v -0.287308216095 1.017905473709 -0.209584236145 +v -0.281747341156 1.017393589020 -0.217522501945 +v -0.290399074554 1.018112540245 -0.206793189049 +v -0.296507358551 1.008396148682 -0.213786959648 +v -0.293893098831 1.008637905121 -0.215864181519 +v -0.293311119080 1.018383622169 -0.204794526100 +v -0.298957824707 1.008759021759 -0.211997389793 +v -0.304624319077 1.000485181808 -0.218563914299 +v -0.302252292633 1.000493049622 -0.219046711922 +v -0.300442457199 1.010485529900 -0.212966322899 +v -0.295816421509 1.020895838737 -0.206146836281 +v -0.304791212082 1.002254843712 -0.220315814018 +v -0.298930644989 1.011639118195 -0.215272247791 +v -0.294509649277 1.021376132965 -0.208923101425 +v -0.305289983749 0.996663510799 -0.231430888176 +v -0.299525260925 1.002564072609 -0.230026721954 +v -0.304598808289 0.995765805244 -0.231520950794 +v -0.298396825790 1.001657962799 -0.230945348740 +v -0.303261518478 0.995977520943 -0.230365991592 +v -0.297660827637 1.000682115555 -0.229683041573 +v -0.297706365585 1.000391125679 -0.228264808655 +v -0.289501190186 1.008563995361 -0.227962017059 +v -0.289624452591 1.008912801743 -0.230370998383 +v -0.289333820343 1.008850455284 -0.225851535797 +v -0.279825210571 1.017765641212 -0.226271927357 +v -0.280007839203 1.018149375916 -0.228962600231 +v -0.279944658279 1.017497062683 -0.223519802094 +v -0.270844221115 1.027772903442 -0.226072430611 +v -0.271415948868 1.028410196304 -0.229272961617 +v -0.265730381012 1.036768198013 -0.229641437531 +v -0.273293256760 1.029914379120 -0.231202602386 +v -0.281020164490 1.019194722176 -0.231097579002 +v -0.275867462158 1.031501293182 -0.230385065079 +v -0.282980203629 1.020815610886 -0.230529665947 +v -0.276958703995 1.032087326050 -0.227720260620 +v -0.283688306808 1.021362662315 -0.227996766567 +v -0.275023937225 1.041705608368 -0.224775314331 +v -0.277465105057 1.049158096313 -0.218947708607 +v -0.292066335678 1.011417031288 -0.228806972504 +v -0.291158199310 1.010475993156 -0.230765581131 +v -0.289323091507 1.031211256981 -0.203581392765 +v -0.290323972702 1.031991720200 -0.200689315796 +v -0.239644289017 1.023190736771 -0.194890260696 +v -0.243260860443 1.023399710655 -0.188031911850 +v -0.234212636948 1.023423552513 -0.201564133167 +v -0.236090183258 1.021491050720 -0.202814877033 +v -0.199890851974 1.066753745079 -0.155146598816 +v -0.198434829712 1.067134857178 -0.156990110874 +v -0.202668666840 1.063336849213 -0.159977316856 +v -0.203597068787 1.063326001167 -0.157728374004 +v -0.194704532623 1.071926832199 -0.149038195610 +v -0.198426008224 1.071671962738 -0.146451592445 +v -0.204805612564 1.071662425995 -0.154704451561 +v -0.202652454376 1.077832579613 -0.147649407387 +v -0.199759483337 1.090992927551 -0.134201765060 +v -0.193034887314 1.103491783142 -0.123884439468 +v -0.185172319412 1.115739107132 -0.117173492908 +v -0.169998168945 1.124291777611 -0.114598035812 +v -0.171854734421 1.130073547363 -0.107446432114 +v -0.148004770279 1.133014440536 -0.109064579010 +v -0.149436950684 1.126783370972 -0.117963194847 +v -0.150363683701 1.141389131546 -0.109232008457 +v -0.129365682602 1.151356697083 -0.121360957623 +v -0.122787952423 1.133342862129 -0.118729412556 +v -0.155005455017 1.151965379715 -0.112209022045 +v -0.138591766357 1.161190986633 -0.122988164425 +v -0.160556554794 1.158395051956 -0.114823222160 +v -0.147845268250 1.166557192802 -0.123666226864 +v -0.164972066879 1.160841345787 -0.116209328175 +v -0.178743362427 1.155038595200 -0.107457756996 +v -0.193982124329 1.154866933823 -0.105260729790 +v -0.203804731369 1.162194013596 -0.107664465904 +v -0.203792333603 1.170711994171 -0.114600837231 +v -0.206958532333 1.165179967880 -0.118471503258 +v -0.199360370636 1.174407482147 -0.126586496830 +v -0.196566343307 1.177967667580 -0.121480822563 +v -0.211217403412 1.155824661255 -0.123464763165 +v -0.203953742981 1.165765166283 -0.134148895741 +v -0.217429161072 1.159095644951 -0.144569456577 +v -0.199710369110 1.170780539513 -0.160428583622 +v -0.189121007919 1.175161838531 -0.143832862377 +v -0.234441280365 1.145398378372 -0.158812522888 +v -0.208461523056 1.159196853638 -0.180670976639 +v -0.252185583115 1.116116285324 -0.170371294022 +v -0.254233121872 1.105154395103 -0.180382847786 +v -0.260434627533 1.096214771271 -0.185628652573 +v -0.256431102753 1.092083334923 -0.177367925644 +v -0.260645627975 1.097700595856 -0.194319903851 +v -0.270902156830 1.083015918732 -0.199528574944 +v -0.269893407822 1.081749439240 -0.189446091652 +v -0.256181478500 1.098464727402 -0.206231713295 +v -0.266798496246 1.083191156387 -0.212066352367 +v -0.273687601089 1.068179607391 -0.216568171978 +v -0.278900146484 1.067694902420 -0.202702641487 +v -0.258903264999 1.083254337311 -0.220462024212 +v -0.247154474258 1.097606897354 -0.216386973858 +v -0.265223979950 1.066669940948 -0.225265324116 +v -0.269017219543 1.059843063354 -0.226757824421 +v -0.277544975281 1.061369776726 -0.218553006649 +v -0.256574153900 1.063487887383 -0.228868722916 +v -0.250155687332 1.081251740456 -0.223481357098 +v -0.261117696762 1.055521845818 -0.231173992157 +v -0.248385906219 1.057556748390 -0.228811144829 +v -0.238748550415 1.076548695564 -0.223608195782 +v -0.234692811966 1.056388735771 -0.223354101181 +v -0.211627244949 1.056368947029 -0.221282124519 +v -0.228275060654 1.091947317123 -0.220990777016 +v -0.238418102264 1.094660639763 -0.219326555729 +v -0.216057777405 1.107417821884 -0.225473523140 +v -0.224503517151 1.109220266342 -0.227116346359 +v -0.211361885071 1.098301529884 -0.220512151718 +v -0.212726354599 1.104912161827 -0.221194267273 +v -0.207950830460 1.100727200508 -0.218157291412 +v -0.203674316406 1.092759370804 -0.219182014465 +v -0.202742576599 1.096199750900 -0.218188643456 +v -0.196501970291 1.090510606766 -0.218953371048 +v -0.196993589401 1.093491673470 -0.220363080502 +v -0.187599182129 1.091245770454 -0.224233686924 +v -0.188641786575 1.095030307770 -0.223733663559 +v -0.186239719391 1.088770151138 -0.220787882805 +v -0.185178756714 1.086016893387 -0.216318964958 +v -0.174246788025 1.087175607681 -0.223291456699 +v -0.165641307831 1.089258909225 -0.227088153362 +v -0.211334466934 1.109454154968 -0.224141299725 +v -0.196863412857 1.116337895393 -0.232053399086 +v -0.198950290680 1.117026805878 -0.234745264053 +v -0.180886983871 1.115268468857 -0.233694016933 +v -0.180615663528 1.115485668182 -0.236742198467 +v -0.177260398865 1.118756055832 -0.240124464035 +v -0.201287984848 1.117602467537 -0.238141715527 +v -0.282895326614 1.060189247131 -0.204914152622 +v -0.282418012619 1.057005047798 -0.194644689560 +v -0.277503967285 1.065804839134 -0.192061483860 +v -0.270702600479 1.064300417900 -0.181479215622 +v -0.276010751724 1.054841160774 -0.184064984322 +v -0.264964342117 1.078153371811 -0.180190920830 +v -0.254631042480 1.068855047226 -0.170619845390 +v -0.259245395660 1.057962894440 -0.174149036407 +v -0.248440742493 1.082378029823 -0.167859196663 +v -0.239177227020 1.074390888214 -0.160453259945 +v -0.243740320206 1.063062429428 -0.160507678986 +v -0.249438762665 1.055111646652 -0.162672996521 +v -0.241800546646 1.051291108131 -0.157198011875 +v -0.245920419693 1.046977758408 -0.160051584244 +v -0.247624635696 1.043250799179 -0.161501169205 +v -0.185623407364 1.163547277451 -0.191922187805 +v -0.178851366043 1.168696165085 -0.170140326023 +v -0.171039104462 1.162240505219 -0.197747766972 +v -0.167164564133 1.171891689301 -0.179815948009 +v -0.169514179230 1.153752446175 -0.212879836559 +v -0.163647174835 1.155890226364 -0.217210114002 +v -0.164894342422 1.163555622101 -0.203335464001 +v -0.162951707840 1.147874236107 -0.221974015236 +v -0.158002376556 1.151909351349 -0.223278760910 +v -0.154706716537 1.144289135933 -0.224242210388 +v -0.152066946030 1.148701906204 -0.224407970905 +v -0.146767616272 1.142306327820 -0.221583485603 +v -0.143728017807 1.146293640137 -0.221992492676 +v -0.138458013535 1.141785860062 -0.215267539024 +v -0.135710000992 1.144933223724 -0.215805530548 +v -0.130891323090 1.143802881241 -0.204370617867 +v -0.129570007324 1.146505594254 -0.206188857555 +v -0.125153064728 1.151684284210 -0.194277405739 +v -0.120690345764 1.156343221664 -0.196658849716 +v -0.123557567596 1.151302337646 -0.207581400871 +v -0.123983860016 1.158541202545 -0.182885527611 +v -0.120908975601 1.161676406860 -0.185635268688 +v -0.127824783325 1.167345404625 -0.175681769848 +v -0.122528076172 1.169641494751 -0.178976297379 +v -0.113455295563 1.165868759155 -0.187700688839 +v -0.108748197556 1.163328170776 -0.198548078537 +v -0.110469579697 1.173360347748 -0.185494899750 +v -0.091323852539 1.179773807526 -0.191483795643 +v -0.090184450150 1.176342606544 -0.194954812527 +v -0.111765384674 1.178711295128 -0.185415387154 +v -0.092939138412 1.184199452400 -0.190637469292 +v -0.113289833069 1.182440042496 -0.187966227531 +v -0.095153093338 1.187181711197 -0.191652655602 +v -0.073956251144 1.192005038261 -0.192678928375 +v -0.073637962341 1.188065290451 -0.191455483437 +v -0.099256277084 1.190625190735 -0.194961786270 +v -0.073813676834 1.195713639259 -0.195692181587 +v -0.096777915955 1.196445703506 -0.206112921238 +v -0.072917699814 1.198483467102 -0.200721621513 +v -0.095563650131 1.196424365044 -0.214924454689 +v -0.071158885956 1.198626756668 -0.206956505775 +v -0.129826784134 1.190738201141 -0.212317109108 +v -0.157343387604 1.172712326050 -0.208674550056 +v -0.128477811813 1.186428785324 -0.221658170223 +v -0.093955516815 1.193287849426 -0.221389353275 +v -0.154647350311 1.168583154678 -0.219737291336 +v -0.149827718735 1.162814021111 -0.225700199604 +v -0.124877214432 1.179793953896 -0.226911485195 +v -0.144460201263 1.156676888466 -0.227152824402 +v -0.120687484741 1.171841144562 -0.228286266327 +v -0.139381647110 1.150594115257 -0.223807334900 +v -0.117116689682 1.165078282356 -0.225237190723 +v -0.128769636154 1.149663209915 -0.217538893223 +v -0.111747980118 1.161472201347 -0.217855334282 +v -0.109767198563 1.161700129509 -0.209116935730 +v -0.088203907013 1.172519445419 -0.211088180542 +v -0.088263034821 1.173820972443 -0.218165874481 +v -0.089234113693 1.173993110657 -0.201246440411 +v -0.071101665497 1.179669737816 -0.199828505516 +v -0.069531917572 1.179702758789 -0.205872833729 +v -0.072219848633 1.181545853615 -0.195242881775 +v -0.056831598282 1.183016300201 -0.193188905716 +v -0.055566310883 1.181527018547 -0.196716129780 +v -0.073021411896 1.184370517731 -0.192374467850 +v -0.057552337646 1.185418963432 -0.190718352795 +v -0.057724237442 1.188611626625 -0.189705491066 +v -0.045343875885 1.186881065369 -0.185175061226 +v -0.045280933380 1.183866500854 -0.186353206635 +v -0.057383060455 1.192056655884 -0.190340936184 +v -0.044640541077 1.190080165863 -0.185317754745 +v -0.056554079056 1.195130228996 -0.192540347576 +v -0.043342113495 1.192810654640 -0.186669468880 +v -0.055220603943 1.197255134583 -0.196023941040 +v -0.053610086441 1.197649002075 -0.200031757355 +v -0.052100419998 1.196197032928 -0.203523576260 +v -0.069370269775 1.196292161942 -0.211897075176 +v -0.068021297455 1.192861676216 -0.214833736420 +v -0.050945520401 1.193327188492 -0.205915927887 +v -0.092361450195 1.188226699829 -0.224879384041 +v -0.090728044510 1.182599067688 -0.225352346897 +v -0.067334413528 1.188707113266 -0.215543806553 +v -0.089248895645 1.177467584610 -0.223018467426 +v -0.067439317703 1.184669256210 -0.214068412781 +v -0.068172216415 1.181514143944 -0.210815250874 +v -0.052105903625 1.183036804199 -0.204133033752 +v -0.050871849060 1.185964107513 -0.206329762936 +v -0.053818464279 1.181404590607 -0.200728774071 +v -0.041506052017 1.180616259575 -0.193893551826 +v -0.039731979370 1.182307600975 -0.196195423603 +v -0.043209075928 1.180416822433 -0.191138744354 +v -0.044537305832 1.181544065475 -0.188471496105 +v -0.031432151794 1.183127760887 -0.177642107010 +v -0.023880004883 1.179421424866 -0.182783424854 +v -0.023120403290 1.181398153305 -0.182788312435 +v -0.038379907608 1.185227513313 -0.197383880615 +v -0.021365642548 1.180629491806 -0.180217981339 +v -0.037654399872 1.188567876816 -0.197493553162 +v -0.037757396698 1.191774725914 -0.196288704872 +v -0.050418376923 1.189674615860 -0.206975281239 +v -0.158075809479 1.171878576279 -0.187048196793 +v -0.184828758240 1.181181192398 -0.133212804794 +v -0.183850765228 1.183899402618 -0.127866744995 +v -0.169936895370 1.187874436378 -0.131015658379 +v -0.160047531128 1.187471389771 -0.131462752819 +v -0.157574653625 1.192477464676 -0.129109740257 +v -0.170529127121 1.193306446075 -0.127960264683 +v -0.157630920410 1.193547725677 -0.127042472363 +v -0.168020248413 1.194449782372 -0.126551985741 +v -0.155678272247 1.197181582451 -0.117395758629 +v -0.168904304504 1.200421571732 -0.116072595119 +v -0.177747726440 1.199375391006 -0.109128236771 +v -0.186355590820 1.196253895760 -0.100548923016 +v -0.188017368317 1.190521001816 -0.119188547134 +v -0.194039821625 1.188312888145 -0.112169504166 +v -0.203054904938 1.179349541664 -0.106702864170 +v -0.192745685577 1.189022660255 -0.093927919865 +v -0.195131540298 1.185600280762 -0.119000375271 +v -0.185272932053 1.190236568451 -0.123825550079 +v -0.202980279922 1.177518606186 -0.111484885216 +v -0.206887245178 1.169745087624 -0.105333983898 +v -0.206416130066 1.174813270569 -0.101252019405 +v -0.199194669724 1.162851572037 -0.099504411221 +v -0.197700738907 1.180861234665 -0.091671824455 +v -0.150561571121 1.174575209618 -0.132039248943 +v -0.209591627121 1.058356404305 -0.160460770130 +v -0.217305183411 1.052603721619 -0.160649895668 +v -0.238281965256 1.033112168312 -0.170957684517 +v -0.244051933289 1.025660991669 -0.180232465267 +v -0.239808082581 1.032481074333 -0.169264376163 +v -0.232315063477 1.036808967590 -0.161297738552 +v -0.230905294418 1.037472367287 -0.163685441017 +v -0.225137472153 1.044082164764 -0.158028185368 +v -0.223443984985 1.044231295586 -0.160395681858 +v -0.223054885864 1.028931379318 -0.207141757011 +v -0.210240125656 1.094408273697 -0.117802858353 +v -0.226145267487 1.091406583786 -0.144528210163 +v -0.228773593903 1.093539595604 -0.144238770008 +v -0.229978561401 1.091392636299 -0.150956988335 +v -0.231330394745 1.094696521759 -0.150297284126 +v -0.228517770767 1.097494721413 -0.144955992699 +v -0.229495048523 1.099721908569 -0.131893873215 +v -0.229601860046 1.105694532394 -0.127975225449 +v -0.230824470520 1.112782955170 -0.126599431038 +v -0.231130123138 1.112404465675 -0.120916366577 +v -0.238191127777 1.121705651283 -0.135489940643 +v -0.240043640137 1.121748328209 -0.132544755936 +v -0.242587566376 1.117125391960 -0.144999742508 +v -0.246487855911 1.119711399078 -0.144290924072 +v -0.241481542587 1.113143205643 -0.153935611248 +v -0.245183229446 1.112014532089 -0.156490027905 +v -0.238260984421 1.105642080307 -0.157133936882 +v -0.240424156189 1.103380203247 -0.159065842628 +v -0.233463764191 1.100573539734 -0.154703736305 +v -0.235453605652 1.097964048386 -0.155216693878 +v -0.235904932022 1.095326662064 -0.155326545238 +v -0.230455398560 1.097877264023 -0.150153517723 +v -0.249421119690 1.121675491333 -0.144378840923 +v -0.240281105042 1.124884128571 -0.131052792072 +v -0.227780818939 1.113982677460 -0.117298245430 +v -0.130397796631 1.182343721390 -0.076600074768 +v -0.129862308502 1.183777570724 -0.072378516197 +v -0.136162042618 1.179548740387 -0.069244503975 +v -0.137062549591 1.183297991753 -0.068274199963 +v -0.133409261703 1.184647083282 -0.072437226772 +v -0.144817352295 1.180659770966 -0.065627694130 +v -0.142683744431 1.184700131416 -0.066475808620 +v -0.271175146103 1.039876699448 -0.190005302429 +v -0.301822423935 1.001146674156 -0.225157797337 +v 0.040446281433 1.266857385635 0.129650652409 +v 0.045840978622 1.267236709595 0.128639698029 +v 0.042178869247 1.272785186768 0.116086125374 +v 0.035976171494 1.262238383293 0.125946938992 +v -0.000801801682 1.292400956154 0.102130472660 +v -0.000761747360 1.303220987320 0.093628942966 +v 0.015448331833 1.314785122871 0.084255039692 +v 0.030528545380 1.315371155739 0.082960784435 +v 0.019721984863 1.301102638245 0.098109424114 +v 0.034617424011 1.303159475327 0.095117151737 +v -0.001373052597 1.277826786041 0.111266195774 +v -0.001722097397 1.284371614456 0.109198451042 +v 0.011536121368 1.282118082047 0.111050844193 +v 0.009827852249 1.276010155678 0.111163258553 +v 0.008899927139 1.272522568703 0.108775258064 +v 0.007982730865 1.269812107086 0.108590006828 +v -0.013120889664 1.280258178711 0.103836178780 +v -0.013952493668 1.287459611893 0.096029043198 +v -0.010375499725 1.274148821831 0.106453537941 +v -0.007061481476 1.270083665848 0.105696380138 +v 0.000071287155 1.273618578911 0.108782231808 +v -0.005353450775 1.267195701599 0.105669260025 +v -0.003715276718 1.265943884850 0.104040384293 +v -0.004131793976 1.253381729126 0.104748189449 +v -0.003669261932 1.256071329117 0.105417490005 +v -0.002878904343 1.257432699203 0.105259358883 +v -0.013543844223 1.267071247101 0.099097788334 +v -0.009968519211 1.265434265137 0.100078165531 +v -0.008393764496 1.263895630836 0.101276814938 +v -0.006794929504 1.262893676758 0.101056635380 +v -0.010854721069 1.252157211304 0.098580598831 +v -0.008997440338 1.255574226379 0.100211143494 +v -0.010912179947 1.258270978928 0.096816718578 +v -0.011093616486 1.261292099953 0.096696496010 +v -0.007898807526 1.257424354553 0.101626813412 +v -0.009550809860 1.259004950523 0.098516225815 +v -0.009840488434 1.260907649994 0.098658919334 +v -0.006556272507 1.258249044418 0.101993978024 +v -0.008103132248 1.259290218353 0.099143624306 +v -0.008106708527 1.260651588440 0.098746120930 +v 0.000634908676 1.269962787628 0.108458042145 +v 0.001318454742 1.268399953842 0.106259763241 +v 0.007476329803 1.268658280373 0.106844902039 +v 0.003443002701 1.252889513969 0.108284533024 +v 0.002853155136 1.255975246429 0.108673334122 +v 0.002923965454 1.257455945015 0.107795357704 +v 0.011467933655 1.255045294762 0.108669996262 +v 0.009955406189 1.257626056671 0.108927190304 +v 0.009441614151 1.258421897888 0.107399821281 +v 0.014464855194 1.289756536484 0.104732036591 +v 0.025943517685 1.283508300781 0.107297778130 +v 0.039303779602 1.279110550880 0.106710374355 +v 0.036115169525 1.278290748596 0.107457518578 +v 0.042536735535 1.278733968735 0.105807304382 +v 0.030768871307 1.288198709488 0.104064941406 +v 0.037350654602 1.289890766144 0.102047562599 +v 0.032482862473 1.275633811951 0.108351588249 +v 0.028729915619 1.263514757156 0.113653242588 +v 0.018857955933 1.271643638611 0.108702600002 +v 0.016063928604 1.269024133682 0.106653332710 +v 0.028270483017 1.270699024200 0.108028233051 +v 0.022220373154 1.277044057846 0.110479056835 +v 0.019372463226 1.258092880249 0.110031247139 +v 0.023556232452 1.262869477272 0.107618689537 +v 0.035057067871 1.268901348114 0.115687489510 +v 0.039037466049 1.272062182426 0.116605579853 +v 0.014039754868 1.267450094223 0.106931269169 +v 0.012716054916 1.266707539558 0.106147646904 +v 0.017132282257 1.259011745453 0.106750369072 +v 0.020047903061 1.262408375740 0.104903697968 +v 0.019694805145 1.265416860580 0.105079472065 +v 0.017275571823 1.264821529388 0.105033516884 +v 0.017734289169 1.262517094612 0.104454278946 +v 0.015003919601 1.260491371155 0.107061386108 +v 0.015677213669 1.264597892761 0.104555845261 +v 0.016396999359 1.262519359589 0.103408336639 +v 0.014380216599 1.260196924210 0.104527294636 +v 0.023535966873 1.267078399658 0.106167256832 +v -0.012151002884 1.235135316849 0.109545886517 +v -0.016305923462 1.224170684814 0.110445380211 +v -0.010377168655 1.200674295425 0.124419331551 +v -0.006423950195 1.185832023621 0.138172209263 +v -0.010899543762 1.192893743515 0.129531621933 +v -0.017629623413 1.210340738297 0.107257723808 +v -0.026541233063 1.185374736786 0.118990361691 +v -0.022340297699 1.197549104691 0.109548330307 +v 0.035350084305 1.248472332954 0.142883300781 +v 0.051932334900 1.253603696823 0.148347139359 +v 0.041118383408 1.258031487465 0.142182707787 +v 0.049641847610 1.260149955750 0.141103088856 +v 0.044825792313 1.252733945847 0.148908674717 +v 0.042319774628 1.246564269066 0.148949384689 +v 0.041991710663 1.241669535637 0.144866228104 +v 0.052286386490 1.246867418289 0.148005247116 +v 0.051711082458 1.241842269897 0.144327402115 +v 0.035593986511 1.255735874176 0.134251892567 +v 0.029677391052 1.244845509529 0.136716425419 +v 0.033319473267 1.250971555710 0.137745916843 +v 0.031243801117 1.242845058441 0.136967241764 +v 0.030688762665 1.256210803986 0.122289538383 +v 0.030338525772 1.250825643539 0.129136621952 +v 0.028740406036 1.247478961945 0.134274959564 +v 0.033815860748 1.242522120476 0.134662628174 +v 0.036343336105 1.243577361107 0.131516873837 +v 0.035639047623 1.243583917618 0.141259193420 +v 0.038025856018 1.243572592735 0.136724710464 +v 0.038744688034 1.229243755341 0.136170148849 +v 0.024222373962 1.241967678070 0.129807054996 +v 0.026626348495 1.240379929543 0.132212758064 +v 0.025287628174 1.233862161636 0.128705739975 +v 0.029455423355 1.240218400955 0.133426547050 +v 0.032053232193 1.237096786499 0.129116058350 +v 0.032113552094 1.241108894348 0.132747650146 +v 0.035292625427 1.241956233978 0.129371285439 +v 0.030912876129 1.229870319366 0.131015717983 +v 0.030648946762 1.224499464035 0.134449362755 +v 0.044306993484 1.238245844841 0.135809302330 +v 0.043252468109 1.240461349487 0.139098584652 +v 0.042135715485 1.240919113159 0.133995532990 +v 0.041716814041 1.241783857346 0.135482788086 +v 0.039429187775 1.243738889694 0.133056044579 +v 0.050420999527 1.240142822266 0.139068543911 +v 0.044756889343 1.234812498093 0.136098802090 +v 0.045078516006 1.231711387634 0.137417495251 +v 0.049524068832 1.238426923752 0.135339796543 +v 0.049675464630 1.235311508179 0.135039925575 +v 0.049990892410 1.232141256332 0.135455429554 +v 0.050583839417 1.228020906448 0.136361002922 +v 0.039813756943 1.238145470619 0.129698514938 +v 0.039825677872 1.242085576057 0.130345582962 +v 0.038737535477 1.233376264572 0.133297681808 +v 0.021462440491 1.217258930206 0.132264912128 +v 0.022056579590 1.212752580643 0.133517026901 +v 0.018235683441 1.205214858055 0.139099240303 +v 0.020352602005 1.209083795547 0.136137485504 +v 0.026568651199 1.202765941620 0.148095548153 +v 0.023966073990 1.192803263664 0.152344107628 +v 0.016592502594 1.199261784554 0.141214609146 +v 0.012834787369 1.191551685333 0.144409120083 +v 0.037743806839 1.215576529503 0.149055123329 +v 0.045881509781 1.225828409195 0.145537972450 +v 0.052435159683 1.227740526199 0.144624948502 +v 0.046445846558 1.218936204910 0.150274634361 +v 0.053923368454 1.220834851265 0.149113297462 +v 0.037250757217 1.206232309341 0.152749001980 +v 0.035874843597 1.194463729858 0.157640993595 +v 0.046791553497 1.196104288101 0.159853577614 +v 0.056510210037 1.197567701340 0.158931136131 +v 0.046874284744 1.208952426910 0.154512763023 +v 0.055248498917 1.210875630379 0.153577446938 +v 0.029203891754 1.216282963753 0.141427814960 +v 0.038281440735 1.222136378288 0.144550740719 +v 0.039469957352 1.224807739258 0.138187825680 +v 0.027691841125 1.210708260536 0.145226716995 +v 0.031136751175 1.219664812088 0.136600375175 +v 0.045809268951 1.227646589279 0.138405919075 +v 0.014129638672 1.249409794807 0.115332782269 +v 0.012882471085 1.252357363701 0.110826134682 +v 0.003088235855 1.244774341583 0.113203525543 +v 0.015806198120 1.243852615356 0.119367957115 +v 0.002343654633 1.237422823906 0.117558121681 +v 0.001748561859 1.226236939430 0.122058868408 +v 0.018728971481 1.236750602722 0.120574116707 +v 0.013330936432 1.222983598709 0.124980926514 +v 0.020515918732 1.223115921021 0.129145741463 +v -0.008113384247 1.243763685226 0.107061862946 +v -0.005330562592 1.249330997467 0.104984104633 +v 0.003616333008 1.249160528183 0.109515726566 +v 0.024304866791 1.250104308128 0.120198249817 +v 0.023406744003 1.245513081551 0.126008749008 +v 0.022205352783 1.255663037300 0.115017294884 +v 0.022286176682 1.233654975891 0.123781740665 +v 0.005661487579 1.202055335045 0.129107356071 +v -0.006587982178 1.211276650429 0.122517585754 +v 0.004577875137 1.210666298866 0.126435041428 +v 0.000176429749 1.201238393784 0.127685189247 +v 0.010596990585 1.210288167000 0.128963351250 +v 0.011595726013 1.201239705086 0.133424997330 +v 0.008545637131 1.200110793114 0.130007266998 +v 0.008605241776 1.202653884888 0.129701614380 +v 0.013861179352 1.203346967697 0.131477773190 +v 0.010287761688 1.201593160629 0.130020737648 +v 0.010378360748 1.202918767929 0.129963099957 +v 0.013339757919 1.208619117737 0.130371451378 +v 0.014328479767 1.206321358681 0.130973219872 +v 0.004492282867 1.192520976067 0.136268198490 +v 0.005780458450 1.198042392731 0.130144894123 +v 0.000226497650 1.195833086967 0.130556583405 +v 0.009120702744 1.197683811188 0.134836256504 +v -0.030488014221 1.283267021179 0.061819374561 +v -0.020040273666 1.274581432343 0.086394488811 +v -0.024308919907 1.279701232910 0.074724912643 +v -0.023217916489 1.261051177979 0.081465482712 +v -0.028754949570 1.261417388916 0.070602059364 +v -0.036482095718 1.283128738403 0.047661483288 +v -0.035109758377 1.260555624962 0.058661758900 +v -0.041009902954 1.257912158966 0.046594083309 +v -0.021064043045 1.302900314331 0.072026371956 +v -0.003322601318 1.312586545944 0.080484449863 +v -0.016522645950 1.296046495438 0.085470199585 +v -0.025208473206 1.303212285042 0.054149925709 +v -0.007358551025 1.313477158546 0.060375809669 +v 0.010043859482 1.317523241043 0.063381493092 +v 0.024682044983 1.319341421127 0.062246799469 +v -0.017404079437 1.270059585571 0.095172524452 +v -0.018391847610 1.253546833992 0.091046571732 +v -0.013947963715 1.256553530693 0.094790697098 +v -0.014717340469 1.261037349701 0.094909310341 +v -0.018908500671 1.260896086693 0.090010643005 +v -0.020776271820 1.238931417465 0.095742464066 +v -0.023503780365 1.249016761780 0.084496319294 +v -0.025747776031 1.229195833206 0.091487228870 +v -0.028454780579 1.243663668633 0.075471043587 +v -0.028841972351 1.217222690582 0.085641384125 +v -0.036760330200 1.200345516205 0.081055641174 +v -0.043103218079 1.175856351852 0.098108768463 +v -0.034443616867 1.237311244011 0.066220164299 +v -0.040151596069 1.230180382729 0.055966675282 +v -0.047009706497 1.225324869156 0.042491793633 +v -0.047743082047 1.194535493851 0.058303952217 +v -0.054014205933 1.190686464310 0.040780961514 +v -0.015044689178 1.246884107590 0.097714483738 +v 0.051012039185 1.267523407936 0.126842677593 +v 0.053725004196 1.263754844666 0.121200740337 +v 0.044191360474 1.316711425781 0.076770126820 +v 0.049160242081 1.303004741669 0.090367913246 +v 0.070050954819 1.296021223068 0.083691716194 +v 0.064377546310 1.307411193848 0.076644003391 +v 0.044227600098 1.289105176926 0.100519239902 +v 0.046434164047 1.276561975479 0.104707181454 +v 0.050604581833 1.285138130188 0.100853264332 +v 0.058474540710 1.292474508286 0.093251526356 +v 0.065127134323 1.284862875938 0.097177326679 +v 0.048618316650 1.269841313362 0.112119197845 +v 0.045237541199 1.272487878799 0.114981353283 +v 0.053706645966 1.265324115753 0.107027411461 +v 0.050548315048 1.272162795067 0.102230787277 +v 0.056096792221 1.279160976410 0.101499915123 +v 0.055377244949 1.264985799789 0.099373936653 +v 0.058884382248 1.273606300354 0.098348557949 +v 0.060819864273 1.270249724388 0.095299720764 +v 0.067456960678 1.278015136719 0.096721053123 +v 0.067724943161 1.273309826851 0.094431757927 +v 0.068783521652 1.270277500153 0.094106316566 +v 0.060762882233 1.261790990829 0.099568009377 +v 0.054175376892 1.268918275833 0.098160982132 +v 0.062816143036 1.268297910690 0.094869017601 +v 0.063694953918 1.267551422119 0.093782484531 +v 0.068581581116 1.269197702408 0.092460989952 +v 0.061268568039 1.263207793236 0.095967531204 +v 0.057333707809 1.264688968658 0.095514893532 +v 0.057271957397 1.267230391502 0.095370531082 +v 0.059454441071 1.266519188881 0.094323635101 +v 0.059153795242 1.264902830124 0.094141185284 +v 0.062749862671 1.265080451965 0.095315635204 +v 0.060599803925 1.266317009926 0.093307375908 +v 0.059796094894 1.264950871468 0.092611730099 +v 0.062308549881 1.264286756516 0.092826724052 +v 0.067521333694 1.262562036514 0.095242917538 +v 0.068541765213 1.265034556389 0.094969451427 +v 0.068204641342 1.265207529068 0.093506395817 +v 0.077112913132 1.279425144196 0.091373026371 +v 0.075383424759 1.286835432053 0.089299082756 +v 0.082441329956 1.283947467804 0.079257071018 +v 0.078902959824 1.292372465134 0.071949005127 +v 0.075701475143 1.271097064018 0.090313911438 +v 0.074272155762 1.269963860512 0.088880062103 +v 0.080384016037 1.272943258286 0.083734631538 +v 0.075593948364 1.274363636971 0.090127468109 +v 0.079707145691 1.270199537277 0.084501504898 +v 0.077773094177 1.269171714783 0.084009110928 +v 0.074470520020 1.262153863907 0.091184914112 +v 0.074804306030 1.264805197716 0.091423273087 +v 0.074141263962 1.265561819077 0.090759217739 +v 0.079296112061 1.262190818787 0.084158301353 +v 0.078951358795 1.264721870422 0.085185348988 +v 0.078058242798 1.265552878380 0.085563898087 +v 0.080155134201 1.268244743347 0.078729867935 +v 0.078858852386 1.267360806465 0.079410076141 +v 0.080429077148 1.264863848686 0.079188346863 +v 0.080001354218 1.264985084534 0.075401127338 +v 0.080117464066 1.266297817230 0.075324594975 +v 0.079468488693 1.265514373779 0.080408871174 +v 0.079141855240 1.265153050423 0.076866209507 +v 0.078771829605 1.266029000282 0.076456785202 +v 0.082354784012 1.277361154556 0.082759082317 +v 0.082641601563 1.272576570511 0.074128508568 +v 0.080540895462 1.270089030266 0.076882600784 +v 0.081943511963 1.258766055107 0.074625015259 +v 0.080802440643 1.262812852859 0.077187001705 +v 0.080394029617 1.264332532883 0.073039591312 +v 0.080169439316 1.266933917999 0.072909772396 +v 0.057654857635 1.259309649467 0.137847244740 +v 0.058503150940 1.253966927528 0.145442008972 +v 0.064238071442 1.251279354095 0.135221183300 +v 0.061223030090 1.248335599899 0.143793106079 +v 0.060226678848 1.243742227554 0.139886677265 +v 0.058931112289 1.258131980896 0.127938270569 +v 0.063202142715 1.254297494888 0.129694104195 +v 0.065549135208 1.247506380081 0.127456486225 +v 0.057339906693 1.259414553642 0.114988744259 +v 0.062293052673 1.246687650681 0.126744151115 +v 0.058286666870 1.246920347214 0.125443816185 +v 0.066583871841 1.249766945839 0.126530528069 +v 0.061671018600 1.255462884903 0.120306611061 +v 0.065866470337 1.252713918686 0.123935759068 +v 0.054228067398 1.239598989487 0.133096814156 +v 0.056482315063 1.242153167725 0.135511994362 +v 0.054856777191 1.242565155029 0.130528688431 +v 0.055840969086 1.243560433388 0.131651639938 +v 0.056303262711 1.246041178703 0.128419876099 +v 0.063732147217 1.246660113335 0.133645892143 +v 0.059375524521 1.246311187744 0.130905628204 +v 0.054415225983 1.236288070679 0.133475065231 +v 0.055111885071 1.233415126801 0.134682297707 +v 0.059905767441 1.232897996902 0.130329132080 +v 0.055068492889 1.240468859673 0.125481486320 +v 0.054852485657 1.244311332703 0.126182913780 +v 0.061526775360 1.241811394691 0.120923161507 +v 0.062999248505 1.245989322662 0.124036252499 +v 0.058302879333 1.245635032654 0.122877240181 +v 0.058226346970 1.236359000206 0.127980589867 +v 0.068130016327 1.248301506042 0.117564380169 +v 0.067496299744 1.246428251266 0.120817005634 +v 0.067075014114 1.240431427956 0.117183685303 +v 0.065690279007 1.245734214783 0.123227000237 +v 0.063593864441 1.235562324524 0.122017323971 +v 0.065532922745 1.231557369232 0.124712467194 +v 0.058642148972 1.228264093399 0.141964733601 +v 0.060995340347 1.221785545349 0.146217465401 +v 0.067803859711 1.221554160118 0.140724539757 +v 0.065596818924 1.198537349701 0.155037641525 +v 0.063088893890 1.211889743805 0.150147914886 +v 0.070540428162 1.212059378624 0.143783211708 +v 0.074363708496 1.199054241180 0.147871077061 +v 0.055469512939 1.229463577271 0.135724365711 +v 0.064706325531 1.227428913116 0.137217521667 +v 0.060773849487 1.229086875916 0.132322847843 +v 0.070334196091 1.226015686989 0.129881024361 +v 0.073707818985 1.221224188805 0.132331371307 +v 0.066503286362 1.228003025055 0.126726925373 +v 0.071586132050 1.228841543198 0.118208587170 +v 0.071873664856 1.225707650185 0.119430422783 +v 0.077915668488 1.220404744148 0.122084975243 +v 0.074536085129 1.223444819450 0.120662927628 +v 0.076755285263 1.212785243988 0.134442687035 +v 0.081811666489 1.200371980667 0.137430131435 +v 0.080988883972 1.214165449142 0.123166322708 +v 0.086687803268 1.203819513321 0.124526441097 +v 0.062492609024 1.254801988602 0.109791696072 +v 0.066610813141 1.251634597778 0.113950848579 +v 0.061021566391 1.259107947350 0.104773223400 +v 0.068827152252 1.254087090492 0.101265370846 +v 0.067484378815 1.258732795715 0.097137033939 +v 0.069918870926 1.248601675034 0.105034232140 +v 0.067322969437 1.240279912949 0.111719012260 +v 0.068537473679 1.242500543594 0.107286572456 +v 0.075018405914 1.232970237732 0.108255088329 +v 0.070877790451 1.232767581940 0.115252256393 +v 0.077867746353 1.249896764755 0.094340682030 +v 0.081087350845 1.242408514023 0.097182273865 +v 0.083758115768 1.234669685364 0.100204110146 +v 0.075211763382 1.256941318512 0.091831862926 +v 0.080814123154 1.256867170334 0.083383440971 +v 0.084712028503 1.249413847923 0.083412945271 +v 0.090125322342 1.240862131119 0.083279728889 +v 0.094750881195 1.231421947479 0.081762373447 +v 0.077249050140 1.224474191666 0.112283647060 +v 0.076828718185 1.222699880600 0.113141000271 +v 0.078745365143 1.225707769394 0.109818100929 +v 0.080643415451 1.218926310539 0.113611519337 +v 0.081604242325 1.218360304832 0.109059333801 +v 0.081132650375 1.220607519150 0.109011828899 +v 0.077664852142 1.220381379128 0.113147377968 +v 0.080033540726 1.219517707825 0.110023081303 +v 0.079794406891 1.220654487610 0.110094487667 +v 0.083391666412 1.220073938370 0.107060670853 +v 0.082854270935 1.225638270378 0.104710161686 +v 0.087911605835 1.218507766724 0.103260695934 +v 0.091594696045 1.224019408226 0.096191704273 +v 0.096889257431 1.214898347855 0.095897138119 +v 0.083808422089 1.215420007706 0.113558650017 +v 0.089332103729 1.208635091782 0.112731575966 +v 0.084277868271 1.216469287872 0.107762217522 +v 0.089827299118 1.213289976120 0.105555117130 +v 0.101368904114 1.198026537895 0.110524892807 +v 0.100582122803 1.206828474998 0.100248575211 +v 0.095614671707 1.219149708748 0.078378736973 +v 0.110302448273 1.196131229401 0.085673749447 +v 0.101401090622 1.207566261292 0.078618407249 +v 0.038086652756 1.319437146187 0.056139290333 +v 0.058758258820 1.316738009453 0.064338445663 +v 0.052024126053 1.317465305328 0.045089304447 +v 0.071031332016 1.309057235718 0.048146665096 +v 0.074790716171 1.301920175552 0.061692059040 +v 0.065555095673 1.309342384338 0.030936956406 +v 0.076519966125 1.290452003479 0.034301042557 +v 0.081107854843 1.281051397324 0.059998869896 +v 0.083610057831 1.276207208633 0.068830192089 +v 0.084535121918 1.260300159454 0.064144432545 +v 0.082194328308 1.262906312943 0.069637179375 +v 0.082393407822 1.267321228981 0.069480359554 +v 0.083597660065 1.267654538155 0.063186764717 +v 0.078208923340 1.286485910416 0.048090279102 +v 0.083045482635 1.268104314804 0.053750872612 +v 0.082231521606 1.268839240074 0.041879594326 +v 0.074455499649 1.290663003922 0.019667565823 +v 0.081685543060 1.268450379372 0.028919160366 +v 0.080770254135 1.266295671463 0.016477346420 +v 0.085688114166 1.253255128860 0.071567714214 +v 0.090450763702 1.245868682861 0.066874861717 +v 0.086171150208 1.256250977516 0.055930197239 +v 0.086350440979 1.251328825951 0.045859992504 +v 0.093620538712 1.236952662468 0.060706198215 +v 0.094166755676 1.225640654564 0.054646670818 +v 0.099492788315 1.210208415985 0.048777282238 +v 0.114588975906 1.187431573868 0.062622427940 +v 0.087287187576 1.245572805405 0.035482227802 +v 0.087604761124 1.239173889160 0.025138556957 +v 0.087361097336 1.235268592834 0.012534439564 +v 0.098117351532 1.205789446831 0.027765154839 +v 0.095893383026 1.203208208084 0.014717459679 +v -0.011510133743 1.163360238075 0.149067997932 +v -0.004560947418 1.134804606438 0.155196785927 +v -0.023927450180 1.173175573349 0.133506655693 +v -0.025471687317 1.141367435455 0.137405753136 +v 0.017634153366 1.178678154945 0.157647490501 +v 0.025628328323 1.157846570015 0.168135166168 +v 0.003703117371 1.180795431137 0.148849606514 +v 0.006724596024 1.158563613892 0.161044716835 +v 0.032204389572 1.178767085075 0.163424730301 +v 0.045523643494 1.179651737213 0.165940761566 +v 0.057294130325 1.180637598038 0.164849698544 +v 0.042539596558 1.158673048019 0.171049177647 +v 0.056924104691 1.159794092178 0.170381605625 +v 0.017149686813 1.133303642273 0.166976332664 +v 0.037201642990 1.133634090424 0.172211468220 +v 0.054214477539 1.134839653969 0.171566545963 +v -0.010805606842 1.115299701691 0.134994447231 +v -0.012533187866 1.105522513390 0.110044121742 +v 0.010537385941 1.112756729126 0.149111986160 +v 0.047211885452 1.112629652023 0.157582700253 +v 0.030074119568 1.112287878990 0.156457722187 +v 0.006142139435 1.103373646736 0.121430158615 +v 0.022053003311 1.103733062744 0.127525568008 +v 0.036193370819 1.104734897614 0.128820121288 +v -0.040673494339 1.155994772911 0.117093861103 +v -0.049955368042 1.141332268715 0.095714688301 +v -0.032525300980 1.123396158218 0.116316258907 +v -0.032552003860 1.114442110062 0.094371557236 +v -0.031067371368 1.110062003136 0.075444519520 +v -0.052037954330 1.167015790939 0.075356423855 +v -0.056231737137 1.161347627640 0.056636929512 +v -0.059476852417 1.156821727753 0.039392709732 +v -0.059850692749 1.140776157379 0.039435088634 +v -0.061575651169 1.141006946564 0.028368413448 +v -0.050864934921 1.133266210556 0.076295912266 +v -0.056070089340 1.117838740349 0.039700746536 +v -0.049790382385 1.128654956818 0.061231255531 +v -0.052109718323 1.122534751892 0.050932705402 +v -0.034054994583 1.104509353638 0.060616970062 +v -0.043396234512 1.096928238869 0.048614859581 +v -0.048959255219 1.091627120972 0.033554553986 +v -0.056957721710 1.112890362740 0.023788034916 +v -0.035567522049 1.043387889862 0.047449171543 +v -0.039433956146 1.039121747017 0.052413821220 +v -0.064744234085 1.050780534744 0.014951646328 +v -0.038980245590 1.074284434319 0.043637633324 +v -0.041082859039 1.069077014923 0.029278635979 +v -0.034406661987 1.055065155029 0.043360531330 +v -0.047071218491 1.085974812508 0.015686988831 +v -0.049998521805 1.061222076416 0.019102632999 +v -0.053887367249 1.043840646744 0.036689996719 +v -0.042478322983 1.050164461136 0.036054790020 +v -0.014271974564 1.099223375320 0.086969316006 +v 0.000830411911 1.094314455986 0.095309138298 +v -0.019607543945 1.090406298637 0.068407773972 +v -0.029613494873 1.080608129501 0.054361045361 +v -0.005763530731 1.081238627434 0.073860049248 +v -0.027546405792 1.059183478355 0.053171813488 +v -0.013939142227 1.067626953125 0.057299792767 +v 0.014307975769 1.093263268471 0.099898755550 +v 0.027014970779 1.094081640244 0.101382076740 +v 0.021053075790 1.074604153633 0.082123875618 +v 0.007202863693 1.075435996056 0.078675389290 +v -0.027371644974 1.043602824211 0.054658472538 +v -0.017439126968 1.044979572296 0.062561631203 +v -0.024429798126 1.035316348076 0.064470529556 +v -0.010132312775 1.032010316849 0.071531534195 +v 0.004372358322 1.030398845673 0.073763489723 +v 0.017338514328 1.031093001366 0.076553463936 +v 0.000297546387 1.051457285881 0.063539087772 +v 0.017464637756 1.050814867020 0.071853816509 +v 0.068420410156 1.181527853012 0.160425603390 +v 0.079635143280 1.182518243790 0.152125537395 +v 0.070542097092 1.160900115967 0.164953768253 +v 0.085201978683 1.162357091904 0.154878497124 +v 0.090045928955 1.184562206268 0.140001475811 +v 0.098061561584 1.189689755440 0.125387966633 +v 0.099827289581 1.165438413620 0.139908611774 +v 0.070614814758 1.136290311813 0.165854871273 +v 0.088030338287 1.138740301132 0.153091609478 +v 0.104446411133 1.143034815788 0.133147954941 +v 0.097229003906 1.124236106873 0.117044687271 +v 0.083167791367 1.114722371101 0.099347352982 +v 0.111231565475 1.172423601151 0.120619416237 +v 0.114904880524 1.183718919754 0.100513756275 +v 0.116925716400 1.151993751526 0.107569992542 +v 0.063422679901 1.115132212639 0.151529729366 +v 0.080619335175 1.118611931801 0.138225674629 +v 0.050387620926 1.106717824936 0.125205457211 +v 0.066112041473 1.109486579895 0.115795731544 +v 0.086173295975 1.122708439827 0.068399488926 +v 0.080250263214 1.118033289909 0.063007235527 +v 0.082655668259 1.112149238586 0.061163365841 +v 0.121577978134 1.167878985405 0.081856548786 +v 0.119044303894 1.154315471649 0.063807129860 +v 0.111441612244 1.134985923767 0.090731918812 +v 0.098887205124 1.126488447189 0.077325224876 +v 0.111427545547 1.179712891579 0.043127000332 +v 0.106110334396 1.175122380257 0.031305313110 +v 0.102075576782 1.172155618668 0.024685502052 +v 0.102116584778 1.157317161560 0.033418297768 +v 0.101032018661 1.158340215683 0.029302597046 +v 0.100531339645 1.143308043480 0.048263728619 +v 0.097441434860 1.138330459595 0.048066020012 +v 0.109502553940 1.146957397461 0.052747786045 +v 0.096754789352 1.134839057922 0.047012090683 +v 0.085198402405 1.107511401176 0.055232167244 +v 0.094857692719 1.130478262901 0.041637301445 +v 0.040197134018 1.096347808838 0.099944472313 +v 0.054687500000 1.100618243217 0.094639301300 +v 0.048788309097 1.088074207306 0.078770637512 +v 0.035143613815 1.078818082809 0.081493318081 +v 0.048858642578 1.075313687325 0.068564772606 +v 0.070461988449 1.108810186386 0.084021329880 +v 0.064486742020 1.100866556168 0.073438167572 +v 0.065836668015 1.092562913895 0.068579912186 +v 0.060715675354 1.069221019745 0.070371031761 +v 0.030231714249 1.033327579498 0.078828334808 +v 0.035176753998 1.055608034134 0.070235610008 +v 0.043811559677 1.038117885590 0.082073748112 +v 0.050953388214 1.052722811699 0.075931191444 +v 0.063144207001 1.053842663765 0.072386682034 +v 0.073226213455 1.055658340454 0.068940043449 +v 0.075714349747 1.052077531815 0.075281441212 +v 0.058623790741 1.044714212418 0.080729842186 +v 0.072857141495 1.087235689163 0.064580619335 +v 0.071193933487 1.066993713379 0.064158737659 +v 0.079437494278 1.082699298859 0.053134381771 +v 0.086660146713 1.101273775101 0.041690945625 +v 0.092396974564 1.077137112617 0.048476576805 +v 0.108497619629 1.069890260696 0.052235901356 +v 0.082067012787 1.064140319824 0.061126887798 +v 0.093047380447 1.060159802437 0.067036211491 +v -0.040343284607 1.237436652184 -0.032936990261 +v -0.052459239960 1.221552133560 0.028179645538 +v -0.056158065796 1.218947887421 0.012705385685 +v -0.055384397507 1.217468619347 -0.008952379227 +v -0.058702945709 1.188291907310 0.024425923824 +v -0.061626672745 1.162003040314 0.018809258938 +v -0.061149597168 1.186267733574 0.006660997868 +v -0.059507608414 1.179691553116 -0.010669171810 +v -0.055477380753 1.198352456093 -0.021095275879 +v -0.052834749222 1.169609308243 -0.030598759651 +v -0.042055368423 1.195482850075 -0.042439877987 +v -0.019744396210 1.243911266327 -0.053574860096 +v 0.005693435669 1.249059438705 -0.062779784203 +v -0.040396451950 1.167162179947 -0.069658398628 +v -0.015247583389 1.206512212753 -0.057519495487 +v 0.014311552048 1.212281465530 -0.062326133251 +v -0.013623714447 1.176701664925 -0.078638434410 +v 0.025074958801 1.182491421700 -0.078897595406 +v 0.055553436279 1.246190905571 -0.042324364185 +v 0.072591066360 1.207378625870 -0.039697229862 +v 0.085914134979 1.232458949089 0.001026153564 +v 0.083698034286 1.230814695358 -0.009619951248 +v 0.077988386154 1.229747176170 -0.023236691952 +v 0.094089031219 1.202184319496 0.005038857460 +v 0.098302841187 1.178545475006 0.013474762440 +v 0.091052532196 1.195588827133 -0.011169850826 +v 0.092413902283 1.201389551163 -0.004166901112 +v 0.082178831100 1.212141036987 -0.025714099407 +v 0.089784622192 1.185250520706 -0.019735872746 +v 0.032395839691 1.248675107956 -0.057501971722 +v 0.044507265091 1.212738394737 -0.056064784527 +v 0.063519954681 1.185031294823 -0.068458735943 +v 0.090191364288 1.181271433830 -0.050654113293 +v -0.059590101242 1.158144712448 0.001819372177 +v -0.060241460800 1.136449337006 0.012746274471 +v -0.055771827698 1.128415822983 -0.007795572281 +v -0.056196689606 1.149477005005 -0.018423438072 +v -0.059613704681 1.094871759415 -0.017021775246 +v -0.052507877350 1.106217026711 0.003190934658 +v -0.061356782913 1.135336041451 -0.044591844082 +v -0.055210590363 1.152688622475 -0.057234942913 +v -0.061703920364 1.115628957748 -0.031736850739 +v -0.076354265213 1.118670940399 -0.068626523018 +v -0.078945398331 1.100923299789 -0.053504228592 +v -0.072272777557 1.063135385513 -0.010518550873 +v -0.077728748322 1.081091284752 -0.034207820892 +v -0.055848836899 1.076079010963 0.000701248646 +v -0.070124626160 1.134061932564 -0.082705259323 +v -0.052391529083 1.145668983459 -0.097816407681 +v -0.014596939087 1.152688741684 -0.108650863171 +v 0.038563251495 1.158075928688 -0.105544686317 +v 0.095056056976 1.175324201584 0.007279813290 +v 0.097741365433 1.154363512993 0.024574756622 +v 0.096329450607 1.145889043808 0.014402627945 +v 0.095551252365 1.166598796844 -0.001544177532 +v 0.092842340469 1.122950792313 0.029080450535 +v 0.106817960739 1.113699555397 0.016706228256 +v 0.110495090485 1.154946565628 -0.013335943222 +v 0.104727029800 1.170523405075 -0.031004786491 +v 0.110179185867 1.135258436203 0.001379370689 +v 0.134946107864 1.143305301666 -0.026512145996 +v 0.134920597076 1.125534772873 -0.009499669075 +v 0.100990295410 1.093693971634 0.033296287060 +v 0.121155023575 1.084573626518 0.031806349754 +v 0.130618572235 1.104586720467 0.010483145714 +v 0.088234901428 1.164701461792 -0.088147342205 +v 0.131562232971 1.157645463943 -0.042793512344 +v 0.118981122971 1.165749549866 -0.063742041588 +v 0.061493158340 1.307609081268 0.082881748676 +v 0.060327529907 1.318495154381 0.079182028770 +v 0.072385311127 1.317370176315 0.066087126732 +v 0.075205326080 1.306590318680 0.068933367729 +v 0.076874732971 1.311258077621 0.048126757145 +v 0.079223632813 1.301067113876 0.051980793476 +v 0.079833984375 1.300073146820 0.031079173088 +v 0.080294847488 1.289757966995 0.038935780525 +v 0.084419488907 1.282017230988 0.020341932774 +v 0.084472656250 1.274614810944 0.031600832939 +v 0.089787960052 1.257214426994 0.028529644012 +v 0.093410491943 1.257125258446 0.016011953354 +v 0.093643188477 1.237569332123 0.028812587261 +v 0.099745988846 1.236010193825 0.015180408955 +v 0.101211547852 1.209712862968 0.029784440994 +v 0.105703353882 1.216141939163 0.016078948975 +v 0.107604503632 1.206364512444 0.004519283772 +v 0.106831312180 1.196551799774 0.008540511131 +v 0.103477239609 1.200936555862 -0.016821682453 +v 0.102436780930 1.189777612686 -0.016660988331 +v 0.094894409180 1.201877832413 -0.033474504948 +v 0.091467142105 1.192241907120 -0.033644795418 +v 0.081027984619 1.205593347549 -0.044518053532 +v 0.078697204590 1.196267604828 -0.045972108841 +v 0.030203104019 1.317878961563 0.092599034309 +v 0.031599044800 1.306848764420 0.096550464630 +v 0.000533103943 1.315608501434 0.092406988144 +v 0.001453638077 1.304747343063 0.097599565983 +v -0.019915580750 1.309429168701 0.081647753716 +v -0.018998622894 1.298553228378 0.086916089058 +v -0.033011198044 1.297790884972 0.064219474792 +v -0.029258489609 1.289492845535 0.072676897049 +v -0.041879415512 1.274564981461 0.053379595280 +v -0.035678148270 1.269248962402 0.063527703285 +v -0.049278259277 1.251981019974 0.053342640400 +v -0.040801525116 1.249933481216 0.062599599361 +v -0.052246570587 1.230650424957 0.054706454277 +v -0.042381286621 1.229251742363 0.063888192177 +v -0.056648731232 1.206089735031 0.058673679829 +v -0.047176122665 1.203041553497 0.068685829639 +v -0.063978195190 1.193070888519 0.045640826225 +v -0.059770822525 1.182946562767 0.046971440315 +v -0.068000316620 1.188966512680 0.023967921734 +v -0.064295291901 1.178698301315 0.022614359856 +v -0.068785667419 1.192012310028 0.001784324646 +v -0.065010547638 1.183354616165 -0.002156734467 +v -0.066419363022 1.198132634163 -0.014372169971 +v -0.061841726303 1.189954519272 -0.018084764481 +v -0.056248426437 1.205180168152 -0.032190322876 +v -0.050663232803 1.196324706078 -0.035794079304 +v -0.035155773163 1.208442568779 -0.053844273090 +v -0.033224582672 1.197817921638 -0.051412761211 +v -0.008906602859 1.210032224655 -0.066920220852 +v -0.007337331772 1.200033903122 -0.065757989883 +v 0.025993824005 1.211974382401 -0.073480010033 +v 0.026358604431 1.201002120972 -0.069385886192 +v 0.049157142639 1.212844133377 -0.068056046963 +v 0.048957347870 1.202935099602 -0.064820349216 +v 0.065938234329 1.210010766983 -0.056550920010 +v 0.063969373703 1.200293183327 -0.057101726532 +v 0.026063919067 1.253668546677 -0.073655724525 +v -0.009798765182 1.251827239990 -0.066984713078 +v -0.036081075668 1.251029968262 -0.053802967072 +v -0.053255796432 1.248492121696 -0.030867159367 +v -0.061401128769 1.237682819366 -0.006527304649 +v -0.065071582794 1.235451579094 0.005308210850 +v -0.066051959991 1.232313632965 0.024793028831 +v -0.063958168030 1.215806245804 0.036684691906 +v -0.058470249176 1.244234442711 0.038768827915 +v -0.056696653366 1.254055619240 0.036476075649 +v 0.047235488892 1.252357602119 -0.067458629608 +v 0.065943956375 1.248579740524 -0.052758038044 +v 0.082094430923 1.242822408676 -0.039423704147 +v 0.101416587830 1.234602212906 0.000243604183 +v 0.095574378967 1.254433631897 -0.000831246376 +v 0.081856250763 1.282060623169 0.002210915089 +v 0.070363283157 1.305048108101 0.002756774426 +v 0.064732551575 1.325939893723 0.037348568439 +v 0.059475421906 1.330581545830 0.056172847748 +v 0.051770687103 1.331991195679 0.066862940788 +v 0.026969909668 1.331480026245 0.080155074596 +v 0.000534296036 1.328585267067 0.078154027462 +v -0.016364336014 1.321949958801 0.068262755871 +v -0.032131671906 1.307672977448 0.049133062363 +v -0.046026468277 1.281006813049 0.033047616482 +v -0.057170391083 1.264941453934 0.018052995205 +v -0.059194087982 1.260551929474 0.005703926086 +v -0.056351184845 1.267251372337 -0.005363285542 +v -0.049419403076 1.281430959702 0.018636167049 +v -0.050104856491 1.281523466110 -0.026480972767 +v -0.032762527466 1.285117030144 -0.046894788742 +v -0.006237030029 1.288429498672 -0.060750246048 +v 0.045986413956 1.285272717476 -0.059156835079 +v 0.060814857483 1.282638311386 -0.047715902328 +v 0.081722974777 1.278753519058 -0.015161991119 +v 0.093460798264 1.257528543472 -0.016839504242 +v 0.099166631699 1.234176397324 -0.016934752464 +v 0.080812215805 1.267979621887 -0.031077861786 +v 0.066226243973 1.297156810760 -0.022842288017 +v 0.025224208832 1.286554098129 -0.066509544849 +v 0.046222925186 1.308892011642 -0.040655016899 +v 0.025389671326 1.311321735382 -0.048380911350 +v -0.002219676971 1.312392711639 -0.044137835503 +v -0.024477481842 1.309771776199 -0.033741474152 +v -0.040723323822 1.304569959641 -0.014032125473 +v -0.038681983948 1.307122945786 0.022028684616 +v -0.033923625946 1.316653251648 0.007554233074 +v -0.022377967834 1.325628161430 0.032776713371 +v -0.011242151260 1.334012389183 0.047734975815 +v 0.005346775055 1.339532971382 0.057651221752 +v 0.023217439651 1.341475963593 0.059436559677 +v 0.043385505676 1.340054035187 0.050687074661 +v 0.050596475601 1.337354063988 0.041210770607 +v 0.055289745331 1.331090807915 0.023640811443 +v 0.054258584976 1.323943614960 -0.003970444202 +v 0.035431385040 1.330586671829 -0.015784919262 +v 0.002865314484 1.329736113548 -0.018387377262 +v -0.017127513885 1.325981378555 -0.009942293167 +v -0.009388685226 1.335545063019 0.010651230812 +v 0.008429527283 1.339061737061 0.003008246422 +v 0.036308050156 1.338485956192 0.004922389984 +v 0.036141872406 1.342529535294 0.023647129536 +v 0.034445047379 1.343819022179 0.035101830959 +v 0.020200014114 1.344961047173 0.038254320621 +v 0.006144762039 1.343188524246 0.040450692177 +v -0.003520011902 1.340352535248 0.030388653278 +v 0.015350580215 1.343349337578 0.023720622063 +v 0.002131700516 1.294373512268 0.084310173988 +v 0.032253980637 1.296369910240 0.083501935005 +v 0.053240537643 1.297918319702 0.073384404182 +v 0.063632249832 1.297773361206 0.063727974892 +v 0.066441297531 1.292367458344 0.051250755787 +v 0.069464921951 1.284128427505 0.042113184929 +v 0.072947740555 1.268516302109 0.036393523216 +v 0.077996730804 1.254851579666 0.034342646599 +v 0.082294940948 1.238687992096 0.033778369427 +v 0.096078634262 1.210922002792 0.033141076565 +v 0.093547344208 1.197418689728 0.010111808777 +v 0.088402271271 1.190471649170 -0.012344717979 +v 0.079278945923 1.192068338394 -0.027221798897 +v 0.067305803299 1.196002244949 -0.037115812302 +v 0.056254863739 1.199710249901 -0.045009076595 +v 0.043886661530 1.202761530876 -0.050360381603 +v 0.028577089310 1.203777551651 -0.055042266846 +v 0.000556945801 1.202123761177 -0.054026365280 +v -0.022556543350 1.199745535851 -0.042454838753 +v -0.037118673325 1.196506142616 -0.027604460716 +v -0.044364452362 1.191485524178 -0.013580024242 +v -0.048760175705 1.185310840607 0.001701295376 +v -0.049472093582 1.181732654572 0.018289864063 +v -0.043260574341 1.188125729561 0.041829228401 +v -0.042436599731 1.200907945633 0.067196130753 +v -0.029914379120 1.229040384293 0.062778651714 +v -0.028822183609 1.249405384064 0.061480879784 +v -0.026416063309 1.267934322357 0.062469124794 +v -0.020500183105 1.284778714180 0.069266617298 +v -0.011813879013 1.290825963020 0.077379345894 +v -0.036173343658 1.205227851868 0.065852403641 +v 0.089926242828 1.212391614914 0.033588826656 +v 0.086484670639 1.264750957489 -0.025318682194 +v 0.090276241302 1.249650478363 -0.029009580612 +v 0.093374252319 1.235239744186 -0.028121829033 +v -0.680430412292 1.393068790436 -0.320257246494 +v -0.698494911194 1.408102989197 -0.328137785196 +v -0.705596685410 1.403319478035 -0.332353264093 +v -0.702425003052 1.401414155960 -0.341219663620 +v -0.693487405777 1.401706576347 -0.345480948687 +v -0.677313804626 1.388596534729 -0.332979142666 +v -0.696997642517 1.407511115074 -0.337174981833 +v -0.689204931259 1.409341335297 -0.330315768719 +v -0.693303585052 1.391095876694 -0.314780384302 +v -0.703037500381 1.384432554245 -0.323003411293 +v -0.699735164642 1.379808068275 -0.336086094379 +v -0.686516761780 1.382108569145 -0.341215163469 +v -0.688117027283 1.406664133072 -0.339293509722 +v -0.671191692352 1.325040817261 -0.285161167383 +v -0.653577566147 1.274054050446 -0.263464331627 +v -0.622252702713 1.186689734459 -0.227236688137 +v -0.589787960052 1.099176168442 -0.192291796207 +v -0.552791118622 1.003217101097 -0.157474160194 +v -0.510915994644 0.897739231586 -0.121878385544 +v -0.492876291275 0.902821123600 -0.129963815212 +v -0.535413742065 1.007634758949 -0.164884626865 +v -0.573541641235 1.102779388428 -0.199071943760 +v -0.606878757477 1.189758062363 -0.233704805374 +v -0.639323711395 1.276522159576 -0.269631683826 +v -0.656749725342 1.327616810799 -0.290879905224 +v -0.681891918182 1.317631244659 -0.293967366219 +v -0.664569854736 1.266501188278 -0.272399932146 +v -0.634156942368 1.178615331650 -0.236648023129 +v -0.601839542389 1.090810775757 -0.202318966389 +v -0.566227912903 0.994425058365 -0.168143510818 +v -0.525188207626 0.888482391834 -0.133112192154 +v -0.678204059601 1.312798857689 -0.308455199003 +v -0.660619258881 1.261751770973 -0.287267655134 +v -0.630073070526 1.173742771149 -0.252752542496 +v -0.597980260849 1.085862278938 -0.219300508499 +v -0.562275886536 0.989962458611 -0.186343669891 +v -0.521363496780 0.884423673153 -0.152287662029 +v -0.663713693619 1.315396070480 -0.314257442951 +v -0.645992040634 1.264471530914 -0.293223381042 +v -0.614400863647 1.176954030991 -0.259143769741 +v -0.581530570984 1.089387059212 -0.226521193981 +v -0.544843912125 0.994354009628 -0.193900704384 +v -0.503242254257 0.889585494995 -0.160271108150 +v -0.653139591217 1.322819709778 -0.305283248425 +v -0.635165929794 1.272057771683 -0.284064382315 +v -0.603127479553 1.184988617897 -0.249243974686 +v -0.569592237473 1.097936868668 -0.215854406357 +v -0.531643867493 1.003189921379 -0.182969391346 +v -0.488971471786 0.898870944977 -0.149086236954 +v -0.484921455383 0.834170520306 -0.089892804623 +v -0.460219383240 0.840958893299 -0.100384473801 +v -0.511497497559 0.901323735714 -0.132468283176 +v -0.501404762268 0.904189109802 -0.136912345886 +v -0.472644090652 0.759641647339 -0.086778938770 +v -0.504419326782 0.821840167046 -0.105421543121 +v -0.519470214844 0.896225512028 -0.138695955276 +v -0.467942714691 0.754820764065 -0.108005642891 +v -0.499197244644 0.815808892250 -0.131774783134 +v -0.517336845398 0.893964409828 -0.149376213551 +v -0.448551177979 0.760925114155 -0.116835474968 +v -0.474140167236 0.822419762611 -0.142395973206 +v -0.507234096527 0.896824002266 -0.153811216354 +v -0.433065176010 0.771692276001 -0.104480087757 +v -0.455140352249 0.835817098618 -0.126966357231 +v -0.499275684357 0.901945590973 -0.147596955299 +v -0.459559202194 0.773626148701 -0.068398654461 +v -0.433999776840 0.781386613846 -0.079760193825 +v -0.427901983261 0.774820268154 -0.107565879822 +v -0.447791576385 0.760745763779 -0.123485684395 +v -0.472889900208 0.752940356731 -0.112041771412 +v -0.479088068008 0.758860111237 -0.084373116493 +v -0.491303682327 0.910904347897 -0.129152178764 +v -0.514250516891 0.904531538486 -0.118242800236 +v -0.533769607544 0.893227875233 -0.132516324520 +v -0.528328418732 0.887990593910 -0.157591700554 +v -0.504444837570 0.894635677338 -0.168278694153 +v -0.485826730728 0.906584739685 -0.153679370880 +v -0.461875915527 0.779266953468 -0.070306479931 +v -0.436331748962 0.787207782269 -0.081280946732 +v -0.430136680603 0.780604958534 -0.109252929688 +v -0.449860572815 0.765928268433 -0.125815510750 +v -0.475796222687 0.757836759090 -0.114095747471 +v -0.482009410858 0.764635562897 -0.085911035538 +v -0.487102031708 0.905195295811 -0.125341534615 +v -0.511810302734 0.898107171059 -0.114347636700 +v -0.531330347061 0.885510385036 -0.129618883133 +v -0.526210784912 0.880015254021 -0.155877709389 +v -0.501423597336 0.887129247189 -0.166869044304 +v -0.482195377350 0.899640679359 -0.151460170746 +v -0.462564945221 0.780975162983 -0.071647465229 +v -0.437812328339 0.788343131542 -0.082418143749 +v -0.431942939758 0.781991302967 -0.109270632267 +v -0.450904846191 0.768045961857 -0.124982774258 +v -0.475512504578 0.760414898396 -0.113783419132 +v -0.481489181519 0.767017781734 -0.087105572224 +v -0.487062454224 0.902436256409 -0.125205695629 +v -0.510672807693 0.895664632320 -0.114782571793 +v -0.529201984406 0.883543848991 -0.129371404648 +v -0.524323225021 0.878087401390 -0.154505074024 +v -0.500638008118 0.884852886200 -0.164988815784 +v -0.482070446014 0.897029280663 -0.150350451469 +v -0.424216270447 0.726895034313 -0.088332355022 +v -0.433250427246 0.720961630344 -0.097859382629 +v -0.445126295090 0.718145370483 -0.091281771660 +v -0.435346364975 0.722274005413 -0.082853138447 +v -0.449822902679 0.721979498863 -0.078244268894 +v -0.438974618912 0.728516280651 -0.071362376213 +v -0.426059484482 0.732701241970 -0.075176239014 +v -0.425045013428 0.742575645447 -0.074277520180 +v -0.443370342255 0.737635374069 -0.066380739212 +v -0.452912092209 0.722330808640 -0.097539663315 +v -0.434735298157 0.726553499699 -0.105409443378 +v -0.457568168640 0.770726919174 -0.074224233627 +v -0.438102483749 0.776775538921 -0.083273649216 +v -0.457084417343 0.727426528931 -0.078251421452 +v -0.421734809875 0.737034559250 -0.093638539314 +v -0.440868854523 0.726467907429 -0.079293847084 +v -0.441762924194 0.723804175854 -0.084031581879 +v -0.437235593796 0.723723113537 -0.086625933647 +v -0.433544158936 0.726360797882 -0.083503544331 +v -0.435790300369 0.728097319603 -0.078992664814 +v -0.435076475143 0.716530799866 -0.078679621220 +v -0.436748027802 0.715161144733 -0.083459377289 +v -0.433470964432 0.717130362988 -0.086149096489 +v -0.429803609848 0.719704866409 -0.082996487617 +v -0.430795431137 0.719356417656 -0.078405201435 +v -0.426370620728 0.708177804947 -0.082949578762 +v -0.429102659225 0.708031177521 -0.087148606777 +v -0.427751302719 0.711654126644 -0.088896811008 +v -0.424102544785 0.714181125164 -0.085791230202 +v -0.423462867737 0.712011873722 -0.082427322865 +v -0.417178869247 0.705715954304 -0.092401742935 +v -0.421164512634 0.705772161484 -0.095329344273 +v -0.421780347824 0.710141003132 -0.095210850239 +v -0.418033361435 0.712694764137 -0.092156529427 +v -0.415308475494 0.709888398647 -0.090527355671 +v -0.411131381989 0.710895836353 -0.103977918625 +v -0.416023015976 0.710323870182 -0.105279445648 +v -0.418101072311 0.713830649853 -0.102593660355 +v -0.414386272430 0.716481685638 -0.099799752235 +v -0.409998416901 0.714512467384 -0.100628316402 +v -0.412442445755 0.723457217216 -0.112111985683 +v -0.417440891266 0.721303761005 -0.112163603306 +v -0.419823646545 0.722338557243 -0.107104063034 +v -0.416396379471 0.725583493710 -0.104684352875 +v -0.411242246628 0.725655853748 -0.107722580433 +v -0.419799089432 0.736344456673 -0.113022804260 +v -0.424517631531 0.732703447342 -0.112453818321 +v -0.425635576248 0.730973005295 -0.106811225414 +v -0.422138690948 0.734303593636 -0.103965282440 +v -0.418025732040 0.737095832825 -0.108072340488 +v -0.427905082703 0.742825925350 -0.108273148537 +v -0.431505441666 0.737993359566 -0.108103752136 +v -0.431043863297 0.735172092915 -0.103496670723 +v -0.427010297775 0.737998902798 -0.100774705410 +v -0.425103187561 0.742438733578 -0.103610634804 +v -0.434395790100 0.745493888855 -0.102516651154 +v -0.437351465225 0.740055739880 -0.103321194649 +v -0.434785366058 0.735876679420 -0.100580215454 +v -0.429973125458 0.739280521870 -0.096914887428 +v -0.430575609207 0.744815766811 -0.098116934299 +v -0.638014793396 1.230491757393 -0.244978487492 +v -0.622946262360 1.233280658722 -0.251465588808 +v -0.649592638016 1.222546815872 -0.254358708858 +v -0.645442724228 1.217762947083 -0.269892901182 +v -0.630394697189 1.220943450928 -0.275375068188 +v -0.619070529938 1.228546142578 -0.266649246216 +v -0.606110572815 1.143009781837 -0.209524273872 +v -0.590292215347 1.146337389946 -0.216171145439 +v -0.617876529694 1.134744167328 -0.219516158104 +v -0.614089488983 1.129821658134 -0.235923349857 +v -0.598005294800 1.133176445961 -0.242772758007 +v -0.586416721344 1.141480803490 -0.232462942600 +v -0.572516918182 1.054052591324 -0.175565481186 +v -0.555697917938 1.058142900467 -0.182277798653 +v -0.585446357727 1.045498132706 -0.185521006584 +v -0.581245422363 1.040752649307 -0.203099846840 +v -0.564207553864 1.044691920280 -0.210411846638 +v -0.551835060120 1.053359389305 -0.199682593346 +v -0.530359745026 0.946404516697 -0.139006793499 +v -0.512903213501 0.951150536537 -0.146695137024 +v -0.544089317322 0.937598705292 -0.149761617184 +v -0.540381193161 0.933445930481 -0.168263316154 +v -0.522706985474 0.938259720802 -0.175991654396 +v -0.508960247040 0.947188973427 -0.165071189404 +v -0.473415136337 0.870537042618 -0.112968623638 +v -0.496746063232 0.863225281239 -0.101937651634 +v -0.516067743301 0.851110696793 -0.117046415806 +v -0.510797500610 0.845018565655 -0.142522931099 +v -0.486820697784 0.852223873138 -0.153340578079 +v -0.467840671539 0.864946663380 -0.138649642467 +v -0.447163105011 0.810840010643 -0.089115977287 +v -0.472838640213 0.805846035480 -0.079120457172 +v -0.492668628693 0.793564498425 -0.095415353775 +v -0.486189365387 0.784938633442 -0.121517777443 +v -0.460333108902 0.791131556034 -0.131569087505 +v -0.440885305405 0.803529441357 -0.115472018719 +v -0.450312852859 0.753731548786 -0.070098817348 +v -0.431421279907 0.759420990944 -0.078914582729 +v -0.465086460114 0.742805838585 -0.082118272781 +v -0.460514783859 0.737773180008 -0.103004276752 +v -0.441336154938 0.743454098701 -0.111343443394 +v -0.426443099976 0.754368603230 -0.099310636520 +v -0.731904268265 1.409023046494 -0.283832073212 +v -0.731420993805 1.409527540207 -0.277567297220 +v -0.769669771194 1.473773002625 -0.284856706858 +v -0.769919872284 1.473968267441 -0.288533568382 +v -0.807954311371 1.532006978989 -0.292883962393 +v -0.809309005737 1.532471895218 -0.288937449455 +v -0.723148822784 1.397814750671 -0.277460843325 +v -0.725734949112 1.400135159492 -0.284406632185 +v -0.701467037201 1.393261909485 -0.299498915672 +v -0.702801704407 1.394067406654 -0.304610729218 +v -0.697797775269 1.322681307793 -0.245903372765 +v -0.678847789764 1.325425028801 -0.269638597965 +v -0.699045181274 1.318197965622 -0.247449636459 +v -0.679080247879 1.320086479187 -0.270336747169 +v -0.698448657990 1.258418440819 -0.191542923450 +v -0.699070453644 1.255869746208 -0.195368707180 +v -0.698896884918 1.187084913254 -0.134619593620 +v -0.700427770615 1.184316277504 -0.138689637184 +v -0.701871871948 1.162669658661 -0.121972262859 +v -0.711782455444 1.180882930756 -0.144968867302 +v -0.710798740387 1.249737977982 -0.202855288982 +v -0.711197614670 1.311830759048 -0.256590962410 +v -0.690308570862 1.311554193497 -0.279663801193 +v -0.713588476181 1.315556406975 -0.259247243404 +v -0.693629026413 1.312055587769 -0.281306147575 +v -0.714844465256 1.249986529350 -0.202514290810 +v -0.714670181274 1.182743430138 -0.144470751286 +v -0.703557968140 1.160912275314 -0.124656915665 +v -0.734780550003 1.184387803078 -0.107548713684 +v -0.803620576859 1.413166880608 -0.193729162216 +v -0.844019651413 1.455053806305 -0.184393405914 +v -0.807727098465 1.321138620377 -0.116503834724 +v -0.837025165558 1.372961163521 -0.126379728317 +v -0.771314382553 1.244080543518 -0.100617885590 +v -0.793653011322 1.271091222763 -0.097309827805 +v -0.731769084930 1.187012553215 -0.105778515339 +v -0.778274536133 1.234176158905 -0.089952230453 +v -0.774795055389 1.242721438408 -0.096917808056 +v -0.802556514740 1.267426371574 -0.087716221809 +v -0.781018733978 1.239013910294 -0.089828252792 +v -0.831202745438 1.315947771072 -0.093698978424 +v -0.857189416885 1.373258233070 -0.109514474869 +v -0.872247457504 1.439273834229 -0.146919488907 +v -0.862528800964 1.441547393799 -0.156704366207 +v -0.872767448425 1.465386867523 -0.168636918068 +v -0.871892452240 1.446012973785 -0.152757167816 +v -0.870913505554 1.465698003769 -0.171075582504 +v -0.872616052628 1.496040582657 -0.196074187756 +v -0.873492717743 1.469481587410 -0.172275424004 +v -0.844311237335 1.563365578651 -0.288278520107 +v -0.867714643478 1.493918657303 -0.196815609932 +v -0.870485305786 1.498056888580 -0.198610186577 +v -0.873506069183 1.498218655586 -0.200232744217 +v -0.873781919479 1.495349645615 -0.197271823883 +v -0.868160724640 1.436191439629 -0.160237908363 +v -0.874623298645 1.443897843361 -0.155241250992 +v -0.875429630280 1.468093872070 -0.173968076706 +v -0.875430583954 1.464208483696 -0.170832037926 +v -0.861469507217 1.539059877396 -0.244808673859 +v -0.864252090454 1.538134932518 -0.246580541134 +v -0.846224308014 1.561979532242 -0.289737492800 +v -0.836484193802 1.567539691925 -0.300393223763 +v -0.837390184402 1.566413164139 -0.303441166878 +v -0.780709743500 1.232831001282 -0.092110395432 +v -0.770603179932 1.241312861443 -0.120023488998 +v -0.805193901062 1.265119791031 -0.089168965816 +v -0.783527612686 1.236857414246 -0.091316342354 +v -0.834095478058 1.314088821411 -0.095762848854 +v -0.860008001328 1.371434450150 -0.112266540527 +v -0.874962329865 1.439385414124 -0.149586439133 +v -0.845883846283 1.368828058243 -0.133463740349 +v -0.873351573944 1.462928771973 -0.173678338528 +v -0.871895790100 1.493336915970 -0.199328541756 +v -0.840737104416 1.510570049286 -0.263315886259 +v -0.833376646042 1.531134724617 -0.288762927055 +v -0.817931175232 1.526331186295 -0.300622344017 +v -0.746751785278 1.402173876762 -0.290421187878 +v -0.796869993210 1.488108158112 -0.299173355103 +v -0.803301095963 1.423126697540 -0.242137193680 +v -0.853743076324 1.448746681213 -0.194176614285 +v -0.821331739426 1.314145565033 -0.119208931923 +v -0.793041229248 1.273641824722 -0.120415627956 +v -0.779705524445 1.238341212273 -0.096930265427 +v -0.758402109146 1.325504183769 -0.214042127132 +v -0.734133243561 1.393293976784 -0.292042940855 +v -0.736127614975 1.383604526520 -0.289822369814 +v -0.747549772263 1.393516778946 -0.284139096737 +v -0.713304281235 1.387033820152 -0.312869518995 +v -0.716605424881 1.378824830055 -0.315402686596 +v -0.667083024979 1.332947969437 -0.272325456142 +v -0.686036825180 1.396254181862 -0.300350457430 +v -0.652807712555 1.335969448090 -0.279133826494 +v -0.671698808670 1.397094845772 -0.306801915169 +v -0.641156673431 1.331952333450 -0.292787551880 +v -0.662131309509 1.392925381660 -0.323805451393 +v -0.665781974792 1.324501156807 -0.274403363466 +v -0.653313159943 1.326481461525 -0.280657827854 +v -0.643545627594 1.325591325760 -0.292931616306 +v -0.687883615494 1.396928071976 -0.306693255901 +v -0.677305936813 1.397392749786 -0.311640799046 +v -0.668898105621 1.393209457397 -0.326097100973 +v -0.639791965485 1.324838161469 -0.306407392025 +v -0.661513090134 1.386579990387 -0.338125854731 +v -0.642078876495 1.321270823479 -0.304058849812 +v -0.667977333069 1.387650251389 -0.338719785213 +v -0.640511274338 1.320248246193 -0.313241720200 +v -0.661991596222 1.385642766953 -0.342326313257 +v -0.643562793732 1.316686630249 -0.313483148813 +v -0.666442394257 1.385178923607 -0.344291776419 +v -0.716503143311 1.372074604034 -0.326735794544 +v -0.694771766663 1.309220075607 -0.296694934368 +v -0.710252761841 1.365118026733 -0.340708762407 +v -0.689024686813 1.304324030876 -0.313677370548 +v -0.695271492004 1.365952491760 -0.350932478905 +v -0.673334360123 1.305315852165 -0.323754280806 +v -0.676507711411 1.373834609985 -0.354276686907 +v -0.657118558884 1.312539339066 -0.327110052109 +v -0.713317871094 1.378292798996 -0.329542458057 +v -0.708588600159 1.374512910843 -0.340065002441 +v -0.695788145065 1.374732732773 -0.347389072180 +v -0.678169250488 1.378413438797 -0.351348221302 +v -0.690240859985 1.306376218796 -0.295807123184 +v -0.685710668564 1.302699327469 -0.310207158327 +v -0.671741962433 1.304181456566 -0.319831520319 +v -0.655930995941 1.309202790260 -0.323127806187 +v -0.634047985077 1.305329561234 -0.344313293695 +v -0.623847723007 1.313705205917 -0.334188282490 +v -0.622318029404 1.319812774658 -0.335038781166 +v -0.636306285858 1.308283686638 -0.347529143095 +v -0.657687187195 1.368595123291 -0.372926771641 +v -0.657169342041 1.375516891479 -0.371039777994 +v -0.642990112305 1.381778359413 -0.362855851650 +v -0.649636030197 1.380834460258 -0.366766542196 +v -0.621777534485 1.454902648926 -0.452792227268 +v -0.627440929413 1.456566333771 -0.455327212811 +v -0.631230592728 1.454094767570 -0.456920742989 +v -0.635877132416 1.447454333305 -0.459561079741 +v -0.624344110489 1.466953277588 -0.470377117395 +v -0.627939224243 1.463238477707 -0.473223686218 +v -0.611341238022 1.455082416534 -0.477429419756 +v -0.615406513214 1.452845573425 -0.479317456484 +v -0.596461057663 1.429937839508 -0.461888015270 +v -0.585901737213 1.430440187454 -0.486534267664 +v -0.568025112152 1.390513300896 -0.463041514158 +v -0.556784152985 1.394706368446 -0.490542352200 +v -0.620961666107 1.366299271584 -0.374592006207 +v -0.602149963379 1.328221082687 -0.365407556295 +v -0.554142475128 1.359774947166 -0.457094848156 +v -0.544462203979 1.367879867554 -0.489594697952 +v -0.554653167725 1.386860847473 -0.492153495550 +v -0.540938138962 1.330043315887 -0.446610987186 +v -0.526558876038 1.326992034912 -0.474644184113 +v -0.532519340515 1.298381805420 -0.428922235966 +v -0.517386436462 1.295669794083 -0.456924021244 +v -0.517901897430 1.258272409439 -0.422607213259 +v -0.512837409973 1.254708290100 -0.429519742727 +v -0.540863037109 1.262001872063 -0.384749233723 +v -0.516560077667 1.256026744843 -0.420525699854 +v -0.516956090927 1.229684472084 -0.400133073330 +v -0.512316942215 1.247911930084 -0.421232968569 +v -0.543984174728 1.231948614120 -0.360431998968 +v -0.536952972412 1.211765289307 -0.364224553108 +v -0.613957405090 1.310405731201 -0.337616801262 +v -0.617177486420 1.305488467216 -0.336197882891 +v -0.547671794891 1.226849794388 -0.359812885523 +v -0.623764514923 1.295241832733 -0.345131874084 +v -0.550174236298 1.224074363708 -0.363058030605 +v -0.611073017120 1.422493457794 -0.469076097012 +v -0.633231639862 1.343430519104 -0.382424205542 +v -0.617163181305 1.313082218170 -0.376247048378 +v -0.627777338028 1.298094511032 -0.349091798067 +v -0.587876319885 1.425273895264 -0.487512648106 +v -0.559880733490 1.391711711884 -0.492971718311 +v -0.546575784683 1.364702701569 -0.491101324558 +v -0.556817054749 1.384633302689 -0.494335830212 +v -0.581263065338 1.378509998322 -0.469431370497 +v -0.528251409531 1.325081706047 -0.475629925728 +v -0.562163352966 1.334616303444 -0.456040829420 +v -0.519301652908 1.293952107430 -0.458499312401 +v -0.546352624893 1.291024565697 -0.436513841152 +v -0.514696121216 1.253158092499 -0.430215626955 +v -0.520211696625 1.255135059357 -0.424808651209 +v -0.520582675934 1.251160979271 -0.424345523119 +v -0.549528598785 1.249001860619 -0.397651523352 +v -0.514673948288 1.245489358902 -0.423131406307 +v -0.518534421921 1.226596713066 -0.399023622274 +v -0.549133777618 1.221839308739 -0.366844773293 +v -0.538474559784 1.209404468536 -0.364824950695 +v -0.528185606003 1.214612126350 -0.376569181681 +v -0.529793500900 1.213744163513 -0.379284560680 +v -0.549133777618 1.221839308739 -0.366844773293 +v -0.752520561218 1.404311418533 -0.285495400429 +v -0.799973726273 1.489697456360 -0.296636253595 +v 0.070177555084 1.274966716766 0.089686870575 +v 0.067983150482 1.274402737617 0.090926527977 +v 0.066224336624 1.272931575775 0.092114746571 +v 0.065168857574 1.270776987076 0.093070566654 +v 0.064977169037 1.268267154694 0.093648433685 +v 0.065678596497 1.265784263611 0.093760550022 +v 0.067166328430 1.263706088066 0.093389570713 +v 0.069213867188 1.262349128723 0.092592179775 +v 0.071509599686 1.261919736862 0.091489672661 +v 0.073703765869 1.262483835220 0.090249955654 +v 0.075462818146 1.263954997063 0.089061796665 +v 0.076518297195 1.266109466553 0.088105916977 +v 0.076709985733 1.268619298935 0.087528049946 +v 0.076008558273 1.271102190018 0.087416052818 +v 0.074520826340 1.273180484772 0.087786972523 +v 0.072473287582 1.274537563324 0.088584363461 +v 0.068333148956 1.278423786163 0.086334288120 +v 0.064796447754 1.277514934540 0.088332414627 +v 0.061961412430 1.275143623352 0.090247511864 +v 0.060260057449 1.271671056747 0.091788053513 +v 0.059951066971 1.267625689507 0.092719554901 +v 0.061081647873 1.263623714447 0.092900037766 +v 0.063479423523 1.260274052620 0.092302203178 +v 0.066779851913 1.258086919785 0.091017007828 +v 0.070479869843 1.257395267487 0.089240074158 +v 0.074016571045 1.258304119110 0.087241888046 +v 0.076851606369 1.260675430298 0.085326790810 +v 0.078552961349 1.264147996902 0.083786249161 +v 0.078861951828 1.268193244934 0.082854807377 +v 0.077731370926 1.272195339203 0.082674264908 +v 0.075333595276 1.275544881821 0.083272099495 +v 0.072033166885 1.277732014656 0.084557354450 +v 0.065737485886 1.280808687210 0.081495702267 +v 0.061116695404 1.279621124268 0.084106385708 +v 0.057412624359 1.276522874832 0.086608529091 +v 0.055189609528 1.271985650063 0.088621377945 +v 0.054785966873 1.266700267792 0.089838445187 +v 0.056262969971 1.261471390724 0.090074300766 +v 0.059396028519 1.257094979286 0.089293181896 +v 0.063708066940 1.254237174988 0.087613999844 +v 0.068542480469 1.253333449364 0.085292279720 +v 0.073163509369 1.254521012306 0.082681596279 +v 0.076867341995 1.257619142532 0.080179393291 +v 0.079090595245 1.262156486511 0.078166604042 +v 0.079494237900 1.267441749573 0.076949536800 +v 0.078016996384 1.272670745850 0.076713681221 +v 0.074883937836 1.277047157288 0.077494800091 +v 0.070571899414 1.279904842377 0.079174041748 +v 0.062948465347 1.280951499939 0.076157152653 +v 0.057946681976 1.279666066170 0.078983008862 +v 0.053937673569 1.276312589645 0.081691384315 +v 0.051531553268 1.271401524544 0.083870053291 +v 0.051094532013 1.265680670738 0.085187315941 +v 0.052693367004 1.260020971298 0.085442662239 +v 0.056084394455 1.255283951759 0.084597170353 +v 0.060751676559 1.252190828323 0.082779586315 +v 0.065984487534 1.251212596893 0.080266594887 +v 0.070986270905 1.252498149872 0.077440857887 +v 0.074995517731 1.255851507187 0.074732422829 +v 0.077401638031 1.260762453079 0.072553753853 +v 0.077838659286 1.266483306885 0.071236491203 +v 0.076239824295 1.272143006325 0.070981144905 +v 0.072848558426 1.276880025864 0.071826636791 +v 0.068181276321 1.279973268509 0.073644220829 +v 0.060390472412 1.278830766678 0.071131527424 +v 0.055769443512 1.277642965317 0.073742210865 +v 0.052065610886 1.274544715881 0.076244413853 +v 0.049842596054 1.270007610321 0.078257262707 +v 0.049438953400 1.264722228050 0.079474270344 +v 0.050915956497 1.259493350983 0.079710185528 +v 0.054049015045 1.255116820335 0.078929066658 +v 0.058361053467 1.252259254456 0.077249825001 +v 0.063195466995 1.251355409622 0.074928104877 +v 0.067816495895 1.252542972565 0.072317481041 +v 0.071520328522 1.255641222000 0.069815278053 +v 0.073743581772 1.260178327560 0.067802429199 +v 0.074147224426 1.265463709831 0.066585421562 +v 0.072669982910 1.270692825317 0.066349506378 +v 0.069536924362 1.275068998337 0.067130684853 +v 0.065225124359 1.277926802635 0.068809866905 +v 0.067524909973 1.268451929092 0.093102991581 +v 0.069175004959 1.268501400948 0.092242240906 +v 0.071127653122 1.268560051918 0.091223716736 +v 0.073080301285 1.268618583679 0.090205192566 +v 0.074730157852 1.268668174744 0.089344441891 +v 0.070652723312 1.273131608963 0.090560674667 +v 0.068799734116 1.272726535797 0.091593861580 +v 0.067301273346 1.271686553955 0.092565476894 +v 0.066444635391 1.270407199860 0.093231320381 +v 0.066426753998 1.268414258957 0.093641161919 +v 0.066850900650 1.266429066658 0.093780994415 +v 0.067962169647 1.265214204788 0.093459844589 +v 0.069663047791 1.264270186424 0.092762410641 +v 0.071587085724 1.263978362083 0.091825425625 +v 0.073440074921 1.264383435249 0.090792238712 +v 0.074938535690 1.265423536301 0.089820683002 +v 0.075786352158 1.266697168350 0.089119791985 +v 0.075813055038 1.268695831299 0.088744938374 +v 0.075380325317 1.270675182343 0.088570117950 +v 0.074277639389 1.271895647049 0.088926315308 +v 0.072576761246 1.272839784622 0.089623689651 +v 0.004819393158 1.270663738251 0.106835365295 +v 0.004348754883 1.274211406708 0.103122293949 +v 0.008491754532 1.273808002472 0.103105425835 +v 0.007389783859 1.270413398743 0.106824874878 +v 0.012167453766 1.271865367889 0.103312313557 +v 0.009670257568 1.269208192825 0.106953203678 +v 0.014816045761 1.268679141998 0.103711485863 +v 0.011313676834 1.267231464386 0.107200860977 +v 0.016034841537 1.264734506607 0.104242146015 +v 0.012069702148 1.264783978462 0.107530117035 +v 0.015637636185 1.260631918907 0.104823470116 +v 0.011823415756 1.262238621712 0.107890844345 +v 0.013685464859 1.256995797157 0.105367064476 +v 0.010612010956 1.259982705116 0.108228087425 +v 0.010475158691 1.254379987717 0.105790019035 +v 0.008620262146 1.258359789848 0.108490467072 +v 0.006495475769 1.253182649612 0.106028079987 +v 0.006151199341 1.257616877556 0.108638167381 +v 0.002352476120 1.253586053848 0.106044888496 +v 0.003580808640 1.257867097855 0.108648657799 +v -0.001322984695 1.255528688431 0.105838000774 +v 0.001300334930 1.259072422981 0.108520269394 +v -0.003971815109 1.258714914322 0.105438828468 +v -0.000343084335 1.261049270630 0.108272612095 +v -0.005190372467 1.262659549713 0.104908168316 +v -0.001099109650 1.263496637344 0.107943356037 +v -0.004793405533 1.266762256622 0.104326844215 +v -0.000852823257 1.266042113304 0.107582688332 +v -0.002841234207 1.270398139954 0.103783249855 +v 0.000358581543 1.268298029900 0.107245445251 +v 0.000369071960 1.273014068604 0.103360295296 +v 0.002350330353 1.269920825958 0.106983006001 +v 0.003931760788 1.276739597321 0.097712039948 +v 0.009344816208 1.276212692261 0.097690045834 +v 0.014147281647 1.273674488068 0.097960352898 +v 0.017608165741 1.269511461258 0.098481893539 +v 0.019200325012 1.264357566833 0.099175214767 +v 0.018681526184 1.258997201920 0.099934816360 +v 0.016130685806 1.254246473312 0.100645005703 +v 0.011936426163 1.250828742981 0.101197659969 +v 0.006736755371 1.249264478683 0.101508677006 +v 0.001323699951 1.249791383743 0.101530730724 +v -0.003478765488 1.252329587936 0.101260423660 +v -0.006939411163 1.256492614746 0.100738883018 +v -0.008531808853 1.261646509171 0.100045561790 +v -0.008013010025 1.267006874084 0.099285960197 +v -0.005462169647 1.271757602692 0.098575711250 +v -0.001267671585 1.275175333023 0.098023056984 +v 0.003712654114 1.277051687241 0.091699361801 +v 0.009571552277 1.276481389999 0.091675460339 +v 0.014769792557 1.273733854294 0.091968059540 +v 0.018515825272 1.269227981567 0.092532575130 +v 0.020239114761 1.263649225235 0.093283057213 +v 0.019677639008 1.257847428322 0.094105184078 +v 0.016916751862 1.252705335617 0.094873905182 +v 0.012376546860 1.249006032944 0.095472097397 +v 0.006748676300 1.247312784195 0.095808684826 +v 0.000889539719 1.247883200645 0.095832526684 +v -0.004308462143 1.250630378723 0.095539927483 +v -0.008054494858 1.255136489868 0.094975411892 +v -0.009777784348 1.260715007782 0.094224989414 +v -0.009216308594 1.266516923904 0.093402862549 +v -0.006455421448 1.271659016609 0.092634141445 +v -0.001915454865 1.275358438492 0.092035949230 +v 0.003724575043 1.275099992752 0.085999369621 +v 0.009137630463 1.274572968483 0.085977315903 +v 0.013940095901 1.272034764290 0.086247682571 +v 0.017400741577 1.267871737480 0.086769223213 +v 0.018993139267 1.262717843056 0.087462544441 +v 0.018474340439 1.257357597351 0.088222086430 +v 0.015923500061 1.252606868744 0.088932335377 +v 0.011729001999 1.249189138412 0.089484930038 +v 0.006529569626 1.247624635696 0.089795947075 +v 0.001116514206 1.248151659966 0.089817941189 +v -0.003685951233 1.250689744949 0.089547634125 +v -0.007146835327 1.254852890968 0.089026153088 +v -0.008738994598 1.260006904602 0.088332772255 +v -0.008220195770 1.265367150307 0.087573230267 +v -0.005669355392 1.270117759705 0.086863040924 +v -0.001475095749 1.273535490036 0.086310386658 +v 0.000261068344 1.263721823692 0.108568012714 +v 0.000306606293 1.265732765198 0.108267664909 +v 0.001283168793 1.267090082169 0.108078360558 +v 0.001492738724 1.263846516609 0.108560204506 +v 0.005061388016 1.268813371658 0.107770264149 +v 0.007216453552 1.268672227859 0.107751905918 +v 0.007727861404 1.264456152916 0.108364582062 +v 0.005536317825 1.264241814613 0.108433365822 +v 0.002977371216 1.268257856369 0.107884883881 +v 0.003344774246 1.264027595520 0.108502089977 +v 0.009113311768 1.267855644226 0.107832670212 +v 0.009579896927 1.264637112617 0.108306467533 +v 0.010335683823 1.266713142395 0.107952952385 +v 0.010796070099 1.264751791954 0.108237385750 +v 0.010741710663 1.262735128403 0.108502686024 +v 0.009773969650 1.261383295059 0.108727037907 +v 0.008079767227 1.260215759277 0.108920395374 +v 0.005995750427 1.259660124779 0.109035074711 +v 0.003840684891 1.259801387787 0.109053432941 +v 0.001943826675 1.260617733002 0.108972728252 +v 0.000712633133 1.261754751205 0.108817398548 +v -0.090843439102 0.711956977844 -0.100321829319 +v -0.097157239914 0.660702586174 -0.115609467030 +v -0.006523370743 0.676110148430 -0.150974154472 +v -0.006254673004 0.734257340431 -0.141055881977 +v -0.106460332870 0.595456779003 -0.120525121689 +v -0.013854026794 0.609138488770 -0.144045293331 +v 0.159080028534 0.595945835114 -0.117241799831 +v 0.082373142242 0.601140439510 -0.140979409218 +v 0.217724084854 0.633673191071 -0.043690085411 +v 0.161948204041 0.658787310123 -0.116667926311 +v 0.161992549896 0.716392397881 -0.109141111374 +v 0.200988769531 0.700885295868 -0.057521402836 +v 0.082037210464 0.736163735390 -0.142028212547 +v 0.083940982819 0.671887874603 -0.145761489868 +v -0.052839994431 0.668570876122 -0.136453270912 +v -0.051985740662 0.724966228008 -0.126949429512 +v -0.060494899750 0.603041768074 -0.130789637566 +v 0.039752244949 0.676460027695 -0.152075648308 +v 0.039582014084 0.736532151699 -0.145459830761 +v 0.035222053528 0.606680989265 -0.146267235279 +v 0.123104095459 0.599229633808 -0.133650958538 +v 0.124687910080 0.666198194027 -0.136043965816 +v 0.123418569565 0.728347480297 -0.130160868168 +v 0.192488431931 0.646883368492 -0.081060171127 +v 0.192901372910 0.580796957016 -0.078956365585 +v 0.191608905792 0.708395838737 -0.080889344215 +v -0.110157966614 0.521872341633 -0.123427271843 +v -0.020442485809 0.542563259602 -0.144708812237 +v -0.109526634216 0.464789211750 -0.130063176155 +v -0.029718160629 0.474508851767 -0.155036568642 +v 0.068801403046 0.477472692728 -0.140547931194 +v 0.076097488403 0.537705183029 -0.135993599892 +v 0.162404775620 0.526327550411 -0.118127703667 +v 0.165109157562 0.450441986322 -0.139342069626 +v 0.228643178940 0.555671572685 -0.027355194092 +v 0.238083362579 0.474860131741 -0.044692456722 +v -0.066143035889 0.532799482346 -0.133282661438 +v -0.084163904190 0.454995065928 -0.141852140427 +v 0.016598701477 0.487684130669 -0.148972153664 +v 0.027564287186 0.544286847115 -0.143417119980 +v 0.122592210770 0.530475378036 -0.130063533783 +v 0.122491121292 0.461961984634 -0.139939665794 +v 0.199285984039 0.507649183273 -0.092158377171 +v 0.206475257874 0.438298881054 -0.125071763992 +v 0.236012935638 0.432352960110 -0.098448753357 +v -0.090003728867 0.713547110558 -0.098060905933 +v -0.096627950668 0.660236895084 -0.111967146397 +v -0.006083011627 0.675602138042 -0.146969020367 +v -0.005826711655 0.733766078949 -0.137710273266 +v -0.104192733765 0.594722390175 -0.114763200283 +v -0.013294696808 0.609091877937 -0.139524400234 +v 0.157139778137 0.595473289490 -0.113379478455 +v 0.081852197647 0.601088523865 -0.137477576733 +v 0.215976238251 0.632654249668 -0.042290151119 +v 0.160015106201 0.658218741417 -0.113578557968 +v 0.160174369812 0.716303348541 -0.106486916542 +v 0.199095010757 0.698588788509 -0.055205583572 +v 0.081353425980 0.736018717289 -0.138786435127 +v 0.083306312561 0.671617090702 -0.142443776131 +v -0.051246881485 0.668073892593 -0.131973326206 +v -0.051016092300 0.724832594395 -0.123342573643 +v -0.058906555176 0.602810740471 -0.125979125500 +v 0.039349555969 0.676087617874 -0.148158311844 +v 0.039282560349 0.736191391945 -0.142057716846 +v 0.034797668457 0.606659471989 -0.142599940300 +v 0.122372865677 0.599070608616 -0.130384206772 +v 0.123716592789 0.665827274323 -0.132826924324 +v 0.122337818146 0.727991521358 -0.127091944218 +v 0.189619779587 0.645916223526 -0.078319907188 +v 0.190189838409 0.580016136169 -0.076071262360 +v 0.189076185226 0.708024799824 -0.078644990921 +v -0.109309196472 0.521241247654 -0.119572401047 +v -0.019951820374 0.542360663414 -0.139999091625 +v -0.107759237289 0.462610036135 -0.125670790672 +v -0.029715299606 0.473200440407 -0.152146577835 +v 0.068043947220 0.475595116615 -0.137133598328 +v 0.075683832169 0.537864387035 -0.132634162903 +v 0.160769462585 0.526261806488 -0.115079045296 +v 0.163467884064 0.450367748737 -0.135400056839 +v 0.221496105194 0.555388748646 -0.030082941055 +v 0.230763673782 0.473996579647 -0.045731902122 +v -0.064914464951 0.532697319984 -0.129568278790 +v -0.083212852478 0.454447656870 -0.137265324593 +v 0.015990495682 0.486549288034 -0.145901143551 +v 0.027146339417 0.544277787209 -0.140076875687 +v 0.121834754944 0.530655384064 -0.126233458519 +v 0.121745109558 0.460826694965 -0.136413335800 +v 0.196135759354 0.507262945175 -0.088767468929 +v 0.203240156174 0.436599731445 -0.122523009777 +v 0.234281539917 0.431487858295 -0.096786618233 +v -0.090369224548 0.714081227779 -0.101824402809 +v -0.097647190094 0.660447895527 -0.114232182503 +v -0.108165264130 0.595181941986 -0.117026686668 +v 0.217889308929 0.634391546249 -0.045080006123 +v 0.200847625732 0.698190927505 -0.056285917759 +v -0.110817670822 0.521583199501 -0.122230708599 +v -0.109757661819 0.463707029819 -0.127314388752 +v -0.029812097549 0.473399698734 -0.154148936272 +v 0.068494558334 0.476215690374 -0.139647960663 +v 0.164371013641 0.449653983116 -0.137532711029 +v 0.229068279266 0.556188762188 -0.032200336456 +v 0.238276958466 0.475655049086 -0.049598276615 +v -0.083764553070 0.453088641167 -0.140538215637 +v 0.016265869141 0.486640363932 -0.148057878017 +v 0.122293949127 0.461069822311 -0.137957692146 +v 0.204746484756 0.437017977238 -0.123723983765 +v 0.236302852631 0.434788256884 -0.099483311176 +# 5612 vertices + +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.999996423721 0.002676663222 -0.000000290167 +vn 0.999996423721 0.002676663222 -0.000000290167 +vn 0.923878908157 0.001448502531 -0.382682144642 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.923878908157 0.001448502531 -0.382682144642 +vn 0.923878908157 0.001448502531 -0.382682144642 +vn 0.707109510899 -0.000000117219 -0.707104086876 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.707109510899 -0.000000117219 -0.707104086876 +vn 0.707109510899 -0.000000117219 -0.707104086876 +vn 0.382688552141 -0.001448765281 -0.923876285553 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.382688552141 -0.001448765281 -0.923876285553 +vn 0.382688552141 -0.001448765281 -0.923876285553 +vn 0.000007046216 -0.002676850883 -0.999996423721 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn 0.000007046216 -0.002676850883 -0.999996423721 +vn 0.000007046216 -0.002676850883 -0.999996423721 +vn -0.382675558329 -0.003497409867 -0.923876166344 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.382675558329 -0.003497409867 -0.923876166344 +vn -0.382675558329 -0.003497409867 -0.923876166344 +vn -0.707099020481 -0.003785590874 -0.707104384899 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.707099020481 -0.003785590874 -0.707104384899 +vn -0.707099020481 -0.003785590874 -0.707104384899 +vn -0.923873543739 -0.003497653874 -0.382681846619 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.923873543739 -0.003497653874 -0.382681846619 +vn -0.923873543739 -0.003497653874 -0.382681846619 +vn -0.999996423721 -0.002677109092 -0.000000101558 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.999996423721 -0.002677109092 -0.000000101558 +vn -0.999996423721 -0.002677109092 -0.000000101558 +vn -0.923879206181 -0.001448904164 0.382681488991 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.923879206181 -0.001448904164 0.382681488991 +vn -0.923879206181 -0.001448904164 0.382681488991 +vn -0.707109510899 -0.000000233324 0.707104027271 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.707109510899 -0.000000233324 0.707104027271 +vn -0.707109510899 -0.000000233324 0.707104027271 +vn -0.382688343525 0.001448100782 0.923876345158 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.382688343525 0.001448100782 0.923876345158 +vn -0.382688343525 0.001448100782 0.923876345158 +vn -0.000006930147 0.002676741453 0.999996423721 +vn -0.000775693450 0.289909631014 0.957053720951 +vn 0.365767657757 0.290692329407 0.884144783020 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.000006930147 0.002676741453 0.999996423721 +vn -0.000006930147 0.002676741453 0.999996423721 +vn 0.382675796747 0.003497589612 0.923876047134 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.382675796747 0.003497589612 0.923876047134 +vn 0.382675796747 0.003497589612 0.923876047134 +vn 0.707099556923 0.003785443027 0.707103908062 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.707099556923 0.003785443027 0.707103908062 +vn 0.707099556923 0.003785443027 0.707103908062 +vn 0.923873484135 0.003497370984 0.382681995630 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.923873484135 0.003497370984 0.382681995630 +vn 0.923873484135 0.003497370984 0.382681995630 +vn 0.999996423721 0.002676663222 -0.000000290167 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.387655943632 0.908313095570 0.157131060958 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.297270774841 0.908917307854 0.292402744293 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.161999627948 0.909521639347 0.382787853479 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn 0.157127469778 0.910376429558 0.382786720991 +vn 0.157127469778 0.910376429558 0.382786720991 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.157127469778 0.910376429558 0.382786720991 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.292393177748 0.910480380058 0.292458146811 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.383436083794 0.909999251366 0.157727986574 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.478781968355 0.856518745422 0.192726433277 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.362025827169 0.861238956451 0.356657683849 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.196696266532 0.862110078335 0.466986924410 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.002309706295 0.862733006477 0.505654513836 +vn 0.192080840468 0.863147914410 0.466991037130 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.002309706295 0.862733006477 0.505654513836 +vn 0.192080840468 0.863147914410 0.466991037130 +vn 0.356875717640 0.863294601440 0.356878399849 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn 0.192080840468 0.863147914410 0.466991037130 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.466988563538 0.863148868084 0.192082583904 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.466988563538 0.863148868084 0.192082583904 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn 0.466988563538 0.863148868084 0.192082583904 +vn -0.923878908157 -0.001449008239 0.382682144642 +vn -0.999996423721 -0.002678310033 0.000000691564 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.923878908157 -0.001449008239 0.382682144642 +vn -0.707109570503 0.000000921165 0.707103967667 +vn -0.923878908157 -0.001449008239 0.382682144642 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.707109570503 0.000000921165 0.707103967667 +vn -0.382688790560 0.001448393799 0.923876166344 +vn -0.707109570503 0.000000921165 0.707103967667 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.382688790560 0.001448393799 0.923876166344 +vn -0.000007515317 0.002677260898 0.999996423721 +vn -0.382688790560 0.001448393799 0.923876166344 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.000007515317 0.002677260898 0.999996423721 +vn 0.382675856352 0.003497111378 0.923876047134 +vn -0.000007515317 0.002677260898 0.999996423721 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.000832362915 0.310922086239 0.950435042381 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.382675856352 0.003497111378 0.923876047134 +vn 0.707099318504 0.003786612069 0.707104086876 +vn 0.382675856352 0.003497111378 0.923876047134 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.707099318504 0.003786612069 0.707104086876 +vn 0.923873662949 0.003498079954 0.382681578398 +vn 0.707099318504 0.003786612069 0.707104086876 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.923873662949 0.003498079954 0.382681578398 +vn 0.999996423721 0.002677112818 0.000000715744 +vn 0.923873662949 0.003498079954 0.382681578398 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.999996423721 0.002677112818 0.000000715744 +vn 0.923879086971 0.001448885887 -0.382681787014 +vn 0.999996423721 0.002677112818 0.000000715744 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.923879086971 0.001448885887 -0.382681787014 +vn 0.707109153271 0.000000960799 -0.707104384899 +vn 0.923879086971 0.001448885887 -0.382681787014 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.707109153271 0.000000960799 -0.707104384899 +vn 0.382688552141 -0.001448108349 -0.923876285553 +vn 0.707109153271 0.000000960799 -0.707104384899 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.382688552141 -0.001448108349 -0.923876285553 +vn 0.000006867277 -0.002676919103 -0.999996423721 +vn 0.382688552141 -0.001448108349 -0.923876285553 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn 0.000006867277 -0.002676919103 -0.999996423721 +vn -0.382675290108 -0.003497047350 -0.923876285553 +vn 0.000006867277 -0.002676919103 -0.999996423721 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.382675290108 -0.003497047350 -0.923876285553 +vn -0.707099556923 -0.003786611836 -0.707103848457 +vn -0.382675290108 -0.003497047350 -0.923876285553 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.707099556923 -0.003786611836 -0.707103848457 +vn -0.923873543739 -0.003497794271 -0.382681936026 +vn -0.707099556923 -0.003786611836 -0.707103848457 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.923873543739 -0.003497794271 -0.382681936026 +vn -0.999996423721 -0.002678310033 0.000000691564 +vn -0.923873543739 -0.003497794271 -0.382681936026 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.999996423721 -0.002678310033 0.000000691564 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn -0.387655943632 0.908313095570 0.157131060958 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.879678249359 0.306997478008 0.363206148148 +vn -0.387655943632 0.908313095570 0.157131060958 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.466990172863 0.862108767033 -0.196694195271 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.884146511555 0.288732856512 -0.367312192917 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn -0.297270774841 0.908917307854 0.292402744293 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.673473477364 0.308375716209 0.671816885471 +vn -0.297270774841 0.908917307854 0.292402744293 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn 0.356879383326 0.861372649670 -0.361488968134 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.676519215107 0.287345170975 -0.678052008152 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.364863395691 0.309753358364 0.878024816513 +vn -0.161999627948 0.909521639347 0.382787853479 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn 0.192085474730 0.860636472702 -0.471601516008 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn 0.365780502558 0.285957038403 -0.885682344437 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.002435945906 0.910033643246 0.414527237415 +vn 0.157127469778 0.910376429558 0.382786720991 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.363199502230 0.311703413725 0.878024518490 +vn -0.000832362915 0.310922086239 0.950435042381 +vn -0.002435945906 0.910033643246 0.414527237415 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.002301780041 0.860012233257 -0.510268211365 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.000762594282 0.284779965878 -0.958592593670 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn 0.157127469778 0.910376429558 0.382786720991 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.363199502230 0.311703413725 0.878024518490 +vn 0.157127469778 0.910376429558 0.382786720991 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.196692228317 0.859594523907 -0.471603065729 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.367305964231 0.283993542194 -0.885682761669 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn 0.292393177748 0.910480380058 0.292458146811 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.671762645245 0.312008947134 0.671852231026 +vn 0.292393177748 0.910480380058 0.292458146811 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.361486196518 0.859449326992 -0.361489385366 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.678074896336 0.283721566200 -0.678023934364 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn 0.383436083794 0.909999251366 0.157727986574 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.878018319607 0.311181575060 0.363661736250 +vn 0.383436083794 0.909999251366 0.157727986574 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.477124124765 0.856146216393 -0.198409363627 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.887559294701 0.277858316898 -0.367468625307 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.952386975288 0.304889559746 -0.001184566994 +vn 0.419054031372 0.907957196236 -0.002726748353 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.537731587887 0.843116044998 -0.000231951766 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.966829180717 0.255422860384 0.000686888874 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.478781968355 0.856518745422 0.192726433277 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.878229558468 0.308965355158 -0.365038722754 +vn 0.383312255144 0.909254193306 -0.162260696292 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.478781968355 0.856518745422 0.192726433277 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.887661576271 0.281107932329 0.364739954472 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.362025827169 0.861238956451 0.356657683849 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.671819388866 0.308373540640 -0.673471987247 +vn 0.292405992746 0.908916473389 -0.297270208597 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.362025827169 0.861238956451 0.356657683849 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.678293824196 0.287600427866 0.676168203354 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.196696266532 0.862110078335 0.466986924410 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn 0.363212913275 0.306997478008 -0.879675447941 +vn 0.157133415341 0.908313214779 -0.387654781342 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.196696266532 0.862110078335 0.466986924410 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.367318838835 0.288734763861 0.884143173695 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.000818260538 0.305829584599 -0.952085912228 +vn -0.002430373104 0.907801330090 -0.419393360615 +vn 0.192080840468 0.863147914410 0.466991037130 +vn -0.002309706295 0.862733006477 0.505654513836 +vn -0.000775693450 0.289909631014 0.957053720951 +vn -0.000775693450 0.289909631014 0.957053720951 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.192080840468 0.863147914410 0.466991037130 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.364851683378 0.305047988892 -0.879675507545 +vn -0.161994606256 0.907458484173 -0.387655526400 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.192080840468 0.863147914410 0.466991037130 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.365767657757 0.290692329407 0.884144783020 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.356875717640 0.863294601440 0.356878399849 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.673463225365 0.304775089025 -0.673468232155 +vn -0.297265231609 0.907339751720 -0.297267436981 +vn 0.466988563538 0.863148868084 0.192082583904 +vn 0.356875717640 0.863294601440 0.356878399849 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.676509499550 0.290970236063 0.676514029503 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.466988563538 0.863148868084 0.192082583904 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn -0.419391274452 0.907802283764 -0.002433230868 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.952085435390 0.305831164122 -0.000825389929 +vn -0.879673719406 0.305046916008 -0.364856868982 +vn -0.387655198574 0.907458126545 -0.161997377872 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn 0.466988563538 0.863148868084 0.192082583904 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.884141802788 0.290693789721 0.365773707628 +vn 0.957053661346 0.289909809828 -0.000769271341 +vn 0.505654692650 0.862732887268 -0.002306047129 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.169224634767 0.977109313011 0.128920063376 +vn -0.042956437916 0.949172854424 0.311810165644 +vn 0.332912445068 0.935498297215 0.118373312056 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.086222581565 0.921112477779 0.379628002644 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.704381942749 0.650786757469 0.283412605524 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn 0.047306902707 0.969304382801 0.241269692779 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.236780017614 0.949869990349 0.204162240028 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.021251596510 0.999252557755 0.032289963216 +vn 0.083970263600 0.986458778381 -0.140883311629 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.231376439333 0.864601671696 0.446014404297 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.190288290381 0.690781593323 0.697575151920 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.190288290381 0.690781593323 0.697575151920 +vn 0.052971653640 0.880331635475 0.471391826868 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.265035003424 0.962137639523 -0.063620537519 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.265035003424 0.962137639523 -0.063620537519 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.248550355434 0.968081712723 0.032257635146 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.665100693703 0.708603322506 0.235631942749 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.132732138038 0.979921698570 0.148780390620 +vn -0.125670656562 0.990344762802 0.058515954763 +vn -0.208323746920 0.938979506493 0.273712754250 +vn 0.058749053627 0.997522294521 0.038701053709 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.129505842924 0.973472297192 0.188626378775 +vn 0.522200107574 0.730581760406 0.439951479435 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn 0.704381942749 0.650786757469 0.283412605524 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.439923584461 0.807062745094 0.393848896027 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.118587732315 0.931522011757 -0.343807578087 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.452575981617 0.878102481365 -0.155277132988 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.165170222521 0.957066774368 0.238205745816 +vn -0.086222581565 0.921112477779 0.379628002644 +vn 0.014983816072 0.979317367077 0.201774612069 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.236780017614 0.949869990349 0.204162240028 +vn -0.072743989527 0.993828594685 0.083743982017 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.079861029983 0.974357426167 0.210356533527 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.132732138038 0.979921698570 0.148780390620 +vn -0.236780017614 0.949869990349 0.204162240028 +vn 0.005805051886 0.998719394207 0.050258178264 +vn 0.058749053627 0.997522294521 0.038701053709 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.005805051886 0.998719394207 0.050258178264 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn 0.169224634767 0.977109313011 0.128920063376 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.042956437916 0.949172854424 0.311810165644 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.081451788545 0.994412124157 0.067157849669 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.072743989527 0.993828594685 0.083743982017 +vn 0.058749053627 0.997522294521 0.038701053709 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.125670656562 0.990344762802 0.058515954763 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.263052493334 0.964336454868 0.029301045462 +vn -0.439923584461 0.807062745094 0.393848896027 +vn -0.456301867962 0.849555730820 0.264657646418 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn -0.081451788545 0.994412124157 0.067157849669 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.375906050205 0.924689590931 0.060363583267 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn 0.083970263600 0.986458778381 -0.140883311629 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.042956437916 0.949172854424 0.311810165644 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.125670656562 0.990344762802 0.058515954763 +vn 0.263052493334 0.964336454868 0.029301045462 +vn -0.144750267267 0.977827727795 -0.151328608394 +vn 0.083970263600 0.986458778381 -0.140883311629 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.209413021803 0.874598622322 -0.437291055918 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.042956437916 0.949172854424 0.311810165644 +vn -0.079861029983 0.974357426167 0.210356533527 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.042343866080 0.998464703560 0.035709671676 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.316314905882 0.721284568310 0.616192698479 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.005805051886 0.998719394207 0.050258178264 +vn -0.021251596510 0.999252557755 0.032289963216 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.410649836063 0.890585064888 0.195512071252 +vn -0.021251596510 0.999252557755 0.032289963216 +vn 0.005805051886 0.998719394207 0.050258178264 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.502480626106 0.858713567257 -0.100619092584 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.043550744653 0.799514293671 0.599066138268 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.433224350214 0.852531194687 0.292416185141 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.232279226184 0.908129572868 0.348349064589 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.522200107574 0.730581760406 0.439951479435 +vn -0.410649836063 0.890585064888 0.195512071252 +vn 0.005805051886 0.998719394207 0.050258178264 +vn -0.236780017614 0.949869990349 0.204162240028 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.410649836063 0.890585064888 0.195512071252 +vn -0.236780017614 0.949869990349 0.204162240028 +vn -0.086222581565 0.921112477779 0.379628002644 +vn -0.109717316926 0.925979495049 0.361281156540 +vn 0.014983816072 0.979317367077 0.201774612069 +vn 0.042343866080 0.998464703560 0.035709671676 +vn 0.165170222521 0.957066774368 0.238205745816 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn -0.111254252493 0.972327888012 0.205428630114 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.266191989183 0.936656773090 -0.227631047368 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.343298017979 0.890991687775 0.297119945288 +vn -0.081451788545 0.994412124157 0.067157849669 +vn -0.089727103710 0.922582089901 0.375221759081 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn 0.522200107574 0.730581760406 0.439951479435 +vn -0.111254252493 0.972327888012 0.205428630114 +vn 0.047306902707 0.969304382801 0.241269692779 +vn 0.561204314232 -0.064809150994 0.825136005878 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.081451788545 0.994412124157 0.067157849669 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.209413021803 0.874598622322 -0.437291055918 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.108999080956 0.947661638260 0.300094276667 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.129825502634 0.989126026630 0.069101937115 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn 0.129505842924 0.973472297192 0.188626378775 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.665100693703 0.708603322506 0.235631942749 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.052971653640 0.880331635475 0.471391826868 +vn 0.190288290381 0.690781593323 0.697575151920 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.231376439333 0.864601671696 0.446014404297 +vn -0.316314905882 0.721284568310 0.616192698479 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.140165805817 0.920780718327 0.364028096199 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.299751222134 0.938948035240 -0.168895721436 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.384581267834 0.919836223125 -0.077450178564 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.111254252493 0.972327888012 0.205428630114 +vn -0.456301867962 0.849555730820 0.264657646418 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.042343866080 0.998464703560 0.035709671676 +vn 0.042343866080 0.998464703560 0.035709671676 +vn -0.043550744653 0.799514293671 0.599066138268 +vn 0.165170222521 0.957066774368 0.238205745816 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.081451788545 0.994412124157 0.067157849669 +vn 0.014983816072 0.979317367077 0.201774612069 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.057531148195 0.978615164757 0.197490662336 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.014983816072 0.979317367077 0.201774612069 +vn -0.111254252493 0.972327888012 0.205428630114 +vn -0.015371610411 0.996984004974 -0.076069392264 +vn 0.047306902707 0.969304382801 0.241269692779 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.452575981617 0.878102481365 -0.155277132988 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.289651811123 0.940054774284 0.179996877909 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.439923584461 0.807062745094 0.393848896027 +vn -0.125670656562 0.990344762802 0.058515954763 +vn -0.125670656562 0.990344762802 0.058515954763 +vn -0.439923584461 0.807062745094 0.393848896027 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.332912445068 0.935498297215 0.118373312056 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.333094507456 0.894973516464 -0.296766668558 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.097139805555 0.825904786587 0.555378377438 +vn 0.017310172319 0.949390113354 0.313621997833 +vn 0.017310172319 0.949390113354 0.313621997833 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.288402497768 0.898042201996 0.332181036472 +vn 0.522200107574 0.730581760406 0.439951479435 +vn 0.704381942749 0.650786757469 0.283412605524 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.005251220893 0.929640710354 0.368429929018 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.232279226184 0.908129572868 0.348349064589 +vn 0.522200107574 0.730581760406 0.439951479435 +vn 0.647070944309 0.737142920494 0.194729119539 +vn -0.057531148195 0.978615164757 0.197490662336 +vn 0.014983816072 0.979317367077 0.201774612069 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.057531148195 0.978615164757 0.197490662336 +vn -0.109717316926 0.925979495049 0.361281156540 +vn -0.199486538768 0.979446530342 0.029826447368 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.456301867962 0.849555730820 0.264657646418 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.118587732315 0.931522011757 -0.343807578087 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.169224634767 0.977109313011 0.128920063376 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.347528815269 0.883869111538 -0.313048154116 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.376402616501 0.870327353477 -0.317571073771 +vn -0.316314905882 0.721284568310 0.616192698479 +vn -0.231376439333 0.864601671696 0.446014404297 +vn 0.091195181012 0.875910937786 0.473775774240 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.091195181012 0.875910937786 0.473775774240 +vn -0.054100811481 0.828716099262 -0.557048261166 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn -0.209413021803 0.874598622322 -0.437291055918 +vn -0.227070003748 0.845175921917 -0.483856230974 +vn -0.054100811481 0.828716099262 -0.557048261166 +vn -0.316314905882 0.721284568310 0.616192698479 +vn 0.190288290381 0.690781593323 0.697575151920 +vn -0.043550744653 0.799514293671 0.599066138268 +vn -0.316314905882 0.721284568310 0.616192698479 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.190288290381 0.690781593323 0.697575151920 +vn -0.072743989527 0.993828594685 0.083743982017 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.248550355434 0.968081712723 0.032257635146 +vn -0.127242460847 0.969856739044 0.207815438509 +vn -0.289651811123 0.940054774284 0.179996877909 +vn 0.091195181012 0.875910937786 0.473775774240 +vn 0.129505842924 0.973472297192 0.188626378775 +vn 0.052971653640 0.880331635475 0.471391826868 +vn -0.108999080956 0.947661638260 0.300094276667 +vn 0.129505842924 0.973472297192 0.188626378775 +vn -0.070133388042 0.997155189514 -0.027619177476 +vn -0.086222581565 0.921112477779 0.379628002644 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.086222581565 0.921112477779 0.379628002644 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.079861029983 0.974357426167 0.210356533527 +vn -0.304748833179 0.951287627220 -0.046690292656 +vn -0.403406798840 0.914197862148 -0.038797721267 +vn -0.212906122208 0.964604198933 0.155594840646 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.278063863516 0.960172414780 -0.027374736965 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.229664877057 0.936510980129 0.264955163002 +vn -0.182488054037 0.870233118534 0.457594156265 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.516481220722 0.854483306408 -0.055726669729 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.412922382355 0.903982520103 -0.110953569412 +vn 0.052971653640 0.880331635475 0.471391826868 +vn 0.129505842924 0.973472297192 0.188626378775 +vn -0.108999080956 0.947661638260 0.300094276667 +vn 0.052971653640 0.880331635475 0.471391826868 +vn -0.108999080956 0.947661638260 0.300094276667 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.132732138038 0.979921698570 0.148780390620 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.125670656562 0.990344762802 0.058515954763 +vn 0.017310172319 0.949390113354 0.313621997833 +vn -0.288402497768 0.898042201996 0.332181036472 +vn -0.132732138038 0.979921698570 0.148780390620 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.106234900653 0.990496456623 -0.087355382740 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.058749053627 0.997522294521 0.038701053709 +vn 0.129825502634 0.989126026630 0.069101937115 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.452575981617 0.878102481365 -0.155277132988 +vn 0.434929758310 0.873234093189 -0.219768777490 +vn 0.551331520081 0.825408220291 -0.121387138963 +vn 0.490755349398 0.841338574886 -0.226514041424 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.190288290381 0.690781593323 0.697575151920 +vn 0.097139805555 0.825904786587 0.555378377438 +vn 0.165170222521 0.957066774368 0.238205745816 +vn 0.397790223360 0.740713775158 0.541392683983 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.231376439333 0.864601671696 0.446014404297 +vn -0.026919174939 0.987045407295 0.158166885376 +vn 0.091195181012 0.875910937786 0.473775774240 +vn -0.208323746920 0.938979506493 0.273712754250 +vn -0.026919174939 0.987045407295 0.158166885376 +vn -0.231376439333 0.864601671696 0.446014404297 +vn 0.098980821669 0.985227704048 -0.139746829867 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.005251220893 0.929640710354 0.368429929018 +vn -0.140165805817 0.920780718327 0.364028096199 +vn -0.086222581565 0.921112477779 0.379628002644 +vn -0.005251220893 0.929640710354 0.368429929018 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn 0.665100693703 0.708603322506 0.235631942749 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.647070944309 0.737142920494 0.194729119539 +vn 0.704381942749 0.650786757469 0.283412605524 +vn 0.576594769955 0.816482365131 -0.029916584492 +vn -0.054100811481 0.828716099262 -0.557048261166 +vn -0.138562649488 0.930660605431 -0.338631451130 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn -0.182488054037 0.870233118534 0.457594156265 +vn 0.097139805555 0.825904786587 0.555378377438 +vn -0.108999080956 0.947661638260 0.300094276667 +vn -0.182488054037 0.870233118534 0.457594156265 +vn -0.108999080956 0.947661638260 0.300094276667 +vn -0.160416513681 0.982015252113 0.099561758339 +vn -0.042956437916 0.949172854424 0.311810165644 +vn 0.263052493334 0.964336454868 0.029301045462 +vn 0.207886472344 0.974640905857 0.082815110683 +vn -0.042956437916 0.949172854424 0.311810165644 +vn 0.207886472344 0.974640905857 0.082815110683 +vn 0.332912445068 0.935498297215 0.118373312056 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.433224350214 0.852531194687 0.292416185141 +vn -0.183472141623 0.979701697826 0.080762445927 +vn -0.375906050205 0.924689590931 0.060363583267 +vn -0.361099243164 0.921951770782 0.140043884516 +vn -0.183472141623 0.979701697826 0.080762445927 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn 0.105120658875 0.848330736160 -0.518926382065 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.079431578517 0.878160119057 -0.471726000309 +vn 0.285025328398 0.782720506191 -0.553271353245 +vn 0.230715706944 0.852206826210 -0.469588965178 +vn -0.158789232373 0.938167393208 0.307616591454 +vn -0.089727103710 0.922582089901 0.375221759081 +vn -0.081451788545 0.994412124157 0.067157849669 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.770359873772 -0.349873751402 -0.533042252064 +vn -0.770359873772 -0.349873751402 -0.533042252064 +vn -0.866471350193 -0.494451045990 0.068887792528 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.826196610928 -0.378474891186 -0.417319893837 +vn 0.826196610928 -0.378474891186 -0.417319893837 +vn 0.627201139927 -0.266793459654 -0.731737613678 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.189701020718 -0.520030140877 -0.832815766335 +vn -0.189701020718 -0.520030140877 -0.832815766335 +vn -0.770359873772 -0.349873751402 -0.533042252064 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.866471350193 -0.494451045990 0.068887792528 +vn -0.866471350193 -0.494451045990 0.068887792528 +vn -0.871176719666 -0.488596260548 0.048216242343 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.826196610928 -0.378474891186 -0.417319893837 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.770887374878 -0.633049786091 0.070573315024 +vn -0.750959277153 -0.606336772442 0.261564284563 +vn -0.750959277153 -0.606336772442 0.261564284563 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.863608837128 -0.437417209148 -0.250691026449 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.852627336979 -0.427872687578 -0.299919277430 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn 0.094348020852 -0.600384652615 0.794126391411 +vn 0.094348020852 -0.600384652615 0.794126391411 +vn 0.653992474079 -0.311724781990 0.689290583134 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.871176719666 -0.488596260548 0.048216242343 +vn -0.815200567245 -0.578349769115 -0.030977522954 +vn -0.815200567245 -0.578349769115 -0.030977522954 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.653992474079 -0.311724781990 0.689290583134 +vn 0.859460055828 -0.470979452133 0.198763057590 +vn 0.859460055828 -0.470979452133 0.198763057590 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.627201139927 -0.266793459654 -0.731737613678 +vn 0.627201139927 -0.266793459654 -0.731737613678 +vn -0.189701020718 -0.520030140877 -0.832815766335 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn 0.094348020852 -0.600384652615 0.794126391411 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.857243716717 -0.179066479206 -0.482771545649 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.957598209381 -0.281897366047 0.059494148940 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.862867891788 -0.238618478179 -0.445556133986 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.871704638004 0.468953579664 0.142174378037 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.916644573212 -0.249014675617 -0.312657028437 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.586331486702 0.507154703140 0.631671965122 +vn -0.024219894782 0.431608676910 0.901735723019 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.586331486702 0.507154703140 0.631671965122 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.955888688564 -0.287579327822 0.059791229665 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.957649767399 0.245865628123 0.149856701493 +vn 0.586331486702 0.507154703140 0.631671965122 +vn 0.697271823883 -0.023023240268 0.716436982155 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.586331486702 0.507154703140 0.631671965122 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn 0.616477489471 -0.097230568528 -0.781346082687 +vn -0.188239112496 -0.195517256856 -0.962465107441 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.024219894782 0.431608676910 0.901735723019 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn 0.030176481232 -0.196037560701 0.980131983757 +vn -0.024219894782 0.431608676910 0.901735723019 +vn 0.361748665571 0.813761413097 0.454895913601 +vn -0.037171285599 0.822442770004 0.567632138729 +vn -0.024219894782 0.431608676910 0.901735723019 +vn -0.024219894782 0.431608676910 0.901735723019 +vn 0.586331486702 0.507154703140 0.631671965122 +vn 0.361748665571 0.813761413097 0.454895913601 +vn -0.037171285599 0.822442770004 0.567632138729 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.024219894782 0.431608676910 0.901735723019 +vn -0.037171285599 0.822442770004 0.567632138729 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.586331486702 0.507154703140 0.631671965122 +vn 0.788730025291 0.571293294430 0.226999789476 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.888961076736 0.118842542171 -0.442294716835 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.999191582203 -0.010015186854 0.038934446871 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.888148248196 -0.021853355691 -0.459037214518 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.577633500099 0.091577179730 -0.811143100262 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.191112756729 0.195641577244 -0.961873292923 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.972279310226 0.057422913611 -0.226661652327 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.861327946186 0.282207727432 0.422460556030 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.020976897329 0.060557164252 0.997944295406 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.063498787582 0.973852574825 0.218126371503 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.063902124763 0.991366446018 0.114494979382 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.063498787582 0.973852574825 0.218126371503 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.063902124763 0.991366446018 0.114494979382 +vn 0.038015794009 0.828824400902 0.558215856552 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.008953621611 0.951425194740 0.307749807835 +vn 0.038015794009 0.828824400902 0.558215856552 +vn -0.008953621611 0.951425194740 0.307749807835 +vn -0.037171285599 0.822442770004 0.567632138729 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.361748665571 0.813761413097 0.454895913601 +vn 0.419445157051 0.878340363503 0.229311823845 +vn -0.008953621611 0.951425194740 0.307749807835 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.834776818752 0.152970641851 -0.528911769390 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.999251008034 0.013329065405 -0.036328140646 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.875802159309 0.071516327560 -0.477342694998 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn -0.163492619991 0.253283262253 -0.953476667404 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.513145685196 0.198423847556 -0.835050582886 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.986457169056 -0.011852054857 0.163590267301 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.684937596321 0.226348280907 0.692551016808 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.997116386890 0.036253526807 -0.066668137908 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.750959277153 -0.606336772442 0.261564284563 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn -0.582415580750 -0.402489781380 0.706253528595 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.859460055828 -0.470979452133 0.198763057590 +vn 0.849181652069 -0.524824261665 -0.058736898005 +vn 0.849181652069 -0.524824261665 -0.058736898005 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.906085193157 -0.229097962379 0.355701744556 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.642385125160 -0.092330209911 0.760799884796 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.841550469398 0.399582356215 0.363492399454 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.971231758595 -0.076657757163 0.225460559130 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.788730025291 0.571293294430 0.226999789476 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.419445157051 0.878340363503 0.229311823845 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.841550469398 0.399582356215 0.363492399454 +vn -0.580725133419 0.329724341631 0.744338750839 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.008953621611 0.951425194740 0.307749807835 +vn -0.464551985264 0.831402301788 0.304896056652 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.372339665890 0.707525014877 0.600642621517 +vn -0.037171285599 0.822442770004 0.567632138729 +vn -0.008953621611 0.951425194740 0.307749807835 +vn 0.038015794009 0.828824400902 0.558215856552 +vn -0.008953621611 0.951425194740 0.307749807835 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.419445157051 0.878340363503 0.229311823845 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.038015794009 0.828824400902 0.558215856552 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.038015794009 0.828824400902 0.558215856552 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.470861792564 0.752460539341 0.460534811020 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.126355975866 0.264645785093 0.956031799316 +vn -0.546461105347 0.726369321346 0.416854739189 +vn 0.038015794009 0.828824400902 0.558215856552 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.126355975866 0.264645785093 0.956031799316 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.546461105347 0.726369321346 0.416854739189 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.957649767399 0.245865628123 0.149856701493 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.965529382229 0.233773931861 -0.114467352629 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.875472187996 0.477126717567 0.076801784337 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.863608837128 -0.437417209148 -0.250691026449 +vn 0.961319506168 -0.138755530119 -0.237932249904 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.992323935032 -0.083550423384 -0.091172911227 +vn 0.849181652069 -0.524824261665 -0.058736898005 +vn 0.863608837128 -0.437417209148 -0.250691026449 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.815200567245 -0.578349769115 -0.030977522954 +vn -0.770887374878 -0.633049786091 0.070573315024 +vn -0.770887374878 -0.633049786091 0.070573315024 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.871704638004 0.468953579664 0.142174378037 +vn -0.957649767399 0.245865628123 0.149856701493 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.969217240810 -0.242572203279 -0.042150840163 +vn -0.972319781780 -0.213734969497 0.094401150942 +vn -0.871704638004 0.468953579664 0.142174378037 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.684937596321 0.226348280907 0.692551016808 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.861327946186 0.282207727432 0.422460556030 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.119840741158 -0.145645618439 0.982051730156 +vn 0.126355975866 0.264645785093 0.956031799316 +vn 0.861327946186 0.282207727432 0.422460556030 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.761057138443 0.020005665720 -0.648376286030 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.992354273796 -0.096318662167 -0.077173262835 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.891179800034 0.028979845345 -0.452723652124 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn -0.047363005579 0.108990550041 -0.992913782597 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.554184734821 0.067802697420 -0.829627692699 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.762222051620 -0.094720840454 0.640347957611 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.995116412640 -0.054380711168 0.082377523184 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.618004083633 0.135420069098 0.774423897266 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.915692329407 -0.125990331173 0.381620287895 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.960119843483 -0.019330935553 0.278919726610 +vn -0.684937596321 0.226348280907 0.692551016808 +vn -0.562489032745 -0.146002635360 0.813811600208 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.102175161242 0.812571227551 0.573836445808 +vn -0.063902124763 0.991366446018 0.114494979382 +vn 0.284465849400 0.811888277531 0.509820163250 +vn 0.287292629480 0.892159521580 0.348589122295 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.063902124763 0.991366446018 0.114494979382 +vn -0.102175161242 0.812571227551 0.573836445808 +vn 0.284465849400 0.811888277531 0.509820163250 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.718663275242 0.692803204060 0.059554707259 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.989123642445 0.008415753953 -0.146845534444 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.542900204659 0.733694672585 0.408596962690 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.902310669422 0.044389050454 0.428794890642 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.102175161242 0.812571227551 0.573836445808 +vn -0.337740659714 0.766057550907 0.546888530254 +vn -0.543861091137 0.085662640631 0.834791600704 +vn -0.543861091137 0.085662640631 0.834791600704 +vn 0.020976897329 0.060557164252 0.997944295406 +vn -0.102175161242 0.812571227551 0.573836445808 +vn 0.284465849400 0.811888277531 0.509820163250 +vn -0.102175161242 0.812571227551 0.573836445808 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.020976897329 0.060557164252 0.997944295406 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.284465849400 0.811888277531 0.509820163250 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.284465849400 0.811888277531 0.509820163250 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.618004083633 0.135420069098 0.774423897266 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.287292629480 0.892159521580 0.348589122295 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.930269777775 0.234372481704 0.282254606485 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn 0.674404442310 0.733905732632 -0.081000246108 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.934627115726 0.023425996304 -0.354856818914 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn 0.348094910383 0.829414248466 -0.436923295259 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn 0.537178814411 0.185756832361 -0.822759568691 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn -0.048428762704 0.890414535999 -0.452566653490 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.005166693125 0.263290047646 -0.964702904224 +vn -0.635505199432 0.110047593713 -0.764213740826 +vn -0.518715977669 0.722569584846 -0.456975817680 +vn 0.896774768829 -0.440434336662 0.042574360967 +vn 0.829682111740 -0.395381569862 -0.394082486629 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.896774768829 -0.440434336662 0.042574360967 +vn -0.504025876522 -0.301672607660 -0.809290766716 +vn -0.821440160275 -0.447597593069 -0.353401303291 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.504025876522 -0.301672607660 -0.809290766716 +vn 0.829682111740 -0.395381569862 -0.394082486629 +vn 0.059312444180 -0.544704258442 -0.836528122425 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.829682111740 -0.395381569862 -0.394082486629 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn 0.896774768829 -0.440434336662 0.042574360967 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn -0.821440160275 -0.447597593069 -0.353401303291 +vn -0.847441673279 -0.448818117380 -0.283557623625 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.821440160275 -0.447597593069 -0.353401303291 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.794788122177 -0.514725565910 0.321511179209 +vn 0.785471856594 -0.612062454224 0.091725103557 +vn 0.785471856594 -0.612062454224 0.091725103557 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.847441673279 -0.448818117380 -0.283557623625 +vn -0.876788675785 -0.431774467230 -0.211689546704 +vn -0.876788675785 -0.431774467230 -0.211689546704 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn 0.069433189929 -0.577286839485 0.813584029675 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.814705491066 -0.579487860203 -0.021184906363 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn 0.879417061806 -0.475138366222 0.029482273385 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.842492818832 -0.518067896366 0.147687375546 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn -0.645010352135 -0.400364696980 0.650899171829 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn 0.059312444180 -0.544704258442 -0.836528122425 +vn -0.504025876522 -0.301672607660 -0.809290766716 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.059312444180 -0.544704258442 -0.836528122425 +vn 0.069433189929 -0.577286839485 0.813584029675 +vn 0.609602272511 -0.248254984617 0.752830982208 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn 0.069433189929 -0.577286839485 0.813584029675 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.883949697018 -0.165927350521 -0.437151044607 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.965354561806 -0.258063018322 0.038652259856 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.872142016888 -0.268645823002 -0.408898174763 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.819668352604 0.424242556095 0.384918212891 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.927781820297 -0.247336685658 -0.279366135597 +vn -0.708797097206 0.001518160105 0.705410778522 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.708797097206 0.001518160105 0.705410778522 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.963938236237 -0.265642106533 0.016040276736 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.708797097206 0.001518160105 0.705410778522 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.813350260258 0.528666734695 0.242843255401 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn -0.560952782631 -0.203689426184 -0.802398025990 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.166494444013 -0.262386292219 -0.950490951538 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.598563194275 0.346359431744 0.722327709198 +vn -0.010253517888 0.434012025595 0.900848746300 +vn 0.025587152690 -0.188668310642 0.981707453728 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.401526331902 0.782190501690 0.476397514343 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.010253517888 0.434012025595 0.900848746300 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.407970279455 0.717792689800 0.564210891724 +vn 0.407970279455 0.717792689800 0.564210891724 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.010253517888 0.434012025595 0.900848746300 +vn -0.605787634850 0.494257092476 0.623483181000 +vn -0.401526331902 0.782190501690 0.476397514343 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.605787634850 0.494257092476 0.623483181000 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.887520253658 0.064618252218 -0.456215173006 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.999695837498 -0.003873218782 0.024357249960 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.969513058662 0.062274549156 0.236994311213 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.887326896191 -0.078793831170 -0.454359501600 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.198920249939 0.084711700678 -0.976347625256 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.584151804447 0.006681963336 -0.811616897583 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.973477184772 -0.045333888382 -0.224247634411 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.556349575520 0.162882700562 0.814827799797 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.556349575520 0.162882700562 0.814827799797 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.191165298223 0.042684063315 0.980629324913 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.556349575520 0.162882700562 0.814827799797 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.037328623235 0.984341025352 0.172276824713 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.037328623235 0.984341025352 0.172276824713 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.037328623235 0.984341025352 0.172276824713 +vn -0.059391405433 0.995314598083 0.076298937201 +vn 0.521055519581 0.802924513817 0.289505362511 +vn -0.030940596014 0.946716606617 0.320578128099 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.417391598225 0.758342742920 0.500700056553 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.401526331902 0.782190501690 0.476397514343 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.455726176500 0.851219177246 0.260268300772 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.839084565639 0.100407406688 -0.534654557705 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.998415172100 0.038624547422 -0.040929865092 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.875011146069 -0.052693475038 -0.481226444244 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn 0.171029835939 0.100886046886 -0.980087161064 +vn -0.520150959492 0.017325222492 -0.853898584843 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.995632350445 -0.006020219531 0.093166664243 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.972541630268 0.205112487078 0.109961979091 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.996427416801 0.009055949748 -0.083966597915 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.191165298223 0.042684063315 0.980629324913 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.609602272511 -0.248254984617 0.752830982208 +vn 0.794788122177 -0.514725565910 0.321511179209 +vn 0.794788122177 -0.514725565910 0.321511179209 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.850716531277 -0.518900275230 -0.083808444440 +vn -0.842492818832 -0.518067896366 0.147687375546 +vn -0.842492818832 -0.518067896366 0.147687375546 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.648548364639 -0.114402368665 0.752527177334 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.894344449043 -0.227003604174 0.385509222746 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.598563194275 0.346359431744 0.722327709198 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.972984254360 -0.096121504903 0.209910243750 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.813350260258 0.528666734695 0.242843255401 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.572210907936 0.744452595711 0.344042211771 +vn 0.598563194275 0.346359431744 0.722327709198 +vn 0.819668352604 0.424242556095 0.384918212891 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.407970279455 0.717792689800 0.564210891724 +vn 0.598563194275 0.346359431744 0.722327709198 +vn -0.036019083112 0.815896332264 0.577075183392 +vn 0.407970279455 0.717792689800 0.564210891724 +vn 0.449902802706 0.833744525909 0.320089966059 +vn 0.449902802706 0.833744525909 0.320089966059 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.036019083112 0.815896332264 0.577075183392 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.455726176500 0.851219177246 0.260268300772 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.030940596014 0.946716606617 0.320578128099 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.572210907936 0.744452595711 0.344042211771 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.173762992024 0.444730252028 0.878647506237 +vn -0.811857640743 0.316165834665 0.490842521191 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.173762992024 0.444730252028 0.878647506237 +vn -0.069371618330 0.841719925404 0.535439193249 +vn -0.069371618330 0.841719925404 0.535439193249 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.417391598225 0.758342742920 0.500700056553 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.842946350574 0.536730229855 0.036906283349 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.972729504108 0.229226604104 -0.035391129553 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.850716531277 -0.518900275230 -0.083808444440 +vn -0.985983729362 -0.146261081100 -0.080273129046 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.949543714523 -0.179056674242 -0.257498413324 +vn -0.876788675785 -0.431774467230 -0.211689546704 +vn -0.850716531277 -0.518900275230 -0.083808444440 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.785471856594 -0.612062454224 0.091725103557 +vn 0.814705491066 -0.579487860203 -0.021184906363 +vn 0.814705491066 -0.579487860203 -0.021184906363 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.971690714359 -0.233434706926 -0.036406382918 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.972541630268 0.205112487078 0.109961979091 +vn 0.878596842289 0.430425614119 0.206884905696 +vn 0.971849977970 -0.209810242057 0.107178568840 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.505996525288 0.084093302488 0.858426392078 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.173762992024 0.444730252028 0.878647506237 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.173762992024 0.444730252028 0.878647506237 +vn -0.191165298223 0.042684063315 0.980629324913 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.811857640743 0.316165834665 0.490842521191 +vn -0.173762992024 0.444730252028 0.878647506237 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.773993730545 -0.031222863123 -0.632422983646 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.994028806686 -0.075991086662 -0.078307822347 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.872911095619 -0.077577248216 -0.481672078371 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn 0.120794489980 -0.012212047353 -0.992602407932 +vn -0.519446194172 -0.050545126200 -0.853006899357 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.995949149132 -0.049522735178 0.075052306056 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.741294920444 0.053056657314 0.669079065323 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.958392262459 0.126938298345 0.255677402020 +vn 0.616871714592 0.388114273548 0.684716403484 +vn 0.969513058662 0.062274549156 0.236994311213 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.916820347309 -0.011684142984 0.399129003286 +vn 0.505996525288 0.084093302488 0.858426392078 +vn 0.616871714592 0.388114273548 0.684716403484 +vn -0.044663131237 0.745588660240 0.664908111095 +vn 0.372912973166 0.711369335651 0.595726132393 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.521055519581 0.802924513817 0.289505362511 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.059391405433 0.995314598083 0.076298937201 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.044663131237 0.745588660240 0.664908111095 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.966818511486 0.224690467119 -0.121557444334 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.522335886955 0.850371062756 -0.063516058028 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.556349575520 0.162882700562 0.814827799797 +vn 0.882667124271 0.166973158717 0.439338982105 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.521055519581 0.802924513817 0.289505362511 +vn 0.372912973166 0.711369335651 0.595726132393 +vn 0.556349575520 0.162882700562 0.814827799797 +vn -0.099295251071 0.116247646511 0.988244354725 +vn 0.556349575520 0.162882700562 0.814827799797 +vn 0.372912973166 0.711369335651 0.595726132393 +vn 0.372912973166 0.711369335651 0.595726132393 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.099295251071 0.116247646511 0.988244354725 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.044663131237 0.745588660240 0.664908111095 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.732730984688 0.177388116717 0.656992197037 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.647355437279 0.397109150887 0.650565385818 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.958392262459 0.126938298345 0.255677402020 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.616252362728 0.723567962646 0.310938030481 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.923233270645 0.139920517802 -0.357858330011 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.588900148869 0.785738825798 -0.189238250256 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn -0.505702018738 0.255946218967 -0.823867142200 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn -0.197339877486 0.930521845818 -0.308522373438 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.121527731419 0.339896291494 -0.932577908039 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn 0.134792685509 0.935151696205 -0.327600717545 +vn 0.353185534477 0.857257008553 -0.374660313129 +vn 0.661811292171 0.282459527254 -0.694422364235 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn 0.212242841721 0.213236674666 0.953668236732 +vn -0.165890663862 -0.080262839794 0.982872426510 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn -0.861182153225 -0.498627454042 0.098670788109 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn -0.078196831048 -0.519988059998 -0.850586652756 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.607277333736 -0.348896950483 0.713782250881 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn 0.673874497414 -0.215907782316 0.706595361233 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.794679522514 -0.204883232713 0.571408152580 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.056181445718 0.741137385368 0.668998479843 +vn -0.077421911061 0.794761300087 0.601963758469 +vn -0.077421911061 0.794761300087 0.601963758469 +vn 0.033342286944 0.775118052959 0.630936086178 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.075495623052 0.638999342918 0.765493452549 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.003467992181 0.502313077450 0.864678859711 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.033342286944 0.775118052959 0.630936086178 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.075495623052 0.638999342918 0.765493452549 +vn -0.111832089722 0.738575160503 0.664831042290 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.257161408663 0.242241248488 0.935514390469 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn 0.128649204969 -0.137737974524 0.982078194618 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn 0.257161408663 0.242241248488 0.935514390469 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.904853343964 -0.389152079821 0.172629922628 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.237984761596 0.763823807240 0.599947035313 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.128300026059 0.747947514057 0.651240050793 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.171342536807 0.505555272102 0.845609605312 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.237984761596 0.763823807240 0.599947035313 +vn 0.171342536807 0.505555272102 0.845609605312 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.465314835310 0.811250209808 -0.354055315256 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.181931316853 0.702624380589 0.687909841537 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.492926061153 0.859100401402 0.137733176351 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.282441049814 0.953399002552 0.106100834906 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.237984761596 0.763823807240 0.599947035313 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.038794174790 0.877033114433 0.478861063719 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.128300026059 0.747947514057 0.651240050793 +vn 0.237984761596 0.763823807240 0.599947035313 +vn 0.251620978117 0.921132147312 0.296989083290 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.593964874744 0.762796759605 0.255630224943 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.506997168064 0.607864022255 0.611109852791 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.257161408663 0.242241248488 0.935514390469 +vn 0.387058705091 0.203184276819 0.899389624596 +vn 0.633399128914 0.460792303085 0.621671974659 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.212242841721 0.213236674666 0.953668236732 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.643045067787 0.415603846312 0.643246829510 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.349010735750 0.216333240271 0.911806702614 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.349010735750 0.216333240271 0.911806702614 +vn 0.212242841721 0.213236674666 0.953668236732 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn 0.349010735750 0.216333240271 0.911806702614 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.059541396797 -0.167730659246 0.984033167362 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn 0.156115815043 -0.433304518461 0.887623250484 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.284749358892 -0.108630344272 0.952427029610 +vn -0.028153385967 0.120939411223 0.992260575294 +vn -0.028153385967 0.120939411223 0.992260575294 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.284749358892 -0.108630344272 0.952427029610 +vn -0.087970539927 -0.399062961340 0.912693798542 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.772367894650 -0.622275471687 0.127362146974 +vn -0.699491322041 -0.402707010508 0.590371906757 +vn -0.772367894650 -0.622275471687 0.127362146974 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.498844444752 -0.762858331203 -0.411340981722 +vn -0.772367894650 -0.622275471687 0.127362146974 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn -0.498844444752 -0.762858331203 -0.411340981722 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn -0.616724967957 -0.723277747631 -0.310676127672 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.552886605263 -0.401466637850 -0.730165004730 +vn 0.011610183865 -0.692953765392 -0.720888495445 +vn 0.552886605263 -0.401466637850 -0.730165004730 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.816603302956 -0.058255102485 -0.574252009392 +vn 0.552886605263 -0.401466637850 -0.730165004730 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.915098607540 0.254363477230 -0.312879711390 +vn 0.915098607540 0.254363477230 -0.312879711390 +vn 0.816603302956 -0.058255102485 -0.574252009392 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.763571262360 0.082273617387 -0.640460789204 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.695236504078 0.614502906799 -0.372870475054 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.779175877571 0.625292360783 0.043525107205 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.666696548462 0.741401612759 0.076415598392 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.784898281097 0.530796229839 0.319671779871 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.669892311096 0.461255759001 0.581796705723 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.690741717815 0.620739996433 0.370887815952 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.129821896553 0.431758940220 0.892597615719 +vn 0.509533464909 0.721226334572 0.469263523817 +vn 0.509533464909 0.721226334572 0.469263523817 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn -0.028153385967 0.120939411223 0.992260575294 +vn -0.028153385967 0.120939411223 0.992260575294 +vn 0.129821896553 0.431758940220 0.892597615719 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.711518228054 0.412141650915 0.569105505943 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.488295584917 0.005115387030 0.872663319111 +vn 0.341495156288 -0.114650800824 0.932864546776 +vn 0.483176141977 0.413156896830 0.771908164024 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.915098607540 0.254363477230 -0.312879711390 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.814443290234 0.428261250257 -0.391502827406 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.719430983067 0.689766764641 0.081491425633 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.519054591656 0.696090579033 0.496024429798 +vn 0.509533464909 0.721226334572 0.469263523817 +vn 0.804123282433 0.590738654137 0.066434659064 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.707261800766 0.620109856129 -0.339476883411 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.743355274200 0.583543002605 -0.326956421137 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn 0.601811349392 0.482836604118 -0.636153995991 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn 0.578398287296 0.384770780802 -0.719309985638 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.613577902317 0.418933212757 -0.669340789318 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.332224786282 0.123063504696 -0.935137450695 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.279016286135 0.135762885213 -0.950641036034 +vn -0.090083517134 -0.213283732533 -0.972828328609 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.587422788143 -0.400375455618 -0.703302204609 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.486695349216 -0.541777074337 -0.685277462006 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn -0.696502983570 -0.649435698986 -0.305150657892 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.746161580086 -0.604792654514 -0.278332084417 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn -0.091559745371 -0.086368091404 -0.992047071457 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.266986012459 0.223067820072 -0.937528252602 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.568451166153 0.425904035568 -0.703895568848 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.460776060820 0.492168724537 -0.738549530506 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.722028672695 0.518228352070 -0.458381891251 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.283960044384 0.958195984364 0.035031434149 +vn 0.609941601753 0.791307687759 -0.042465876788 +vn 0.591527760029 0.703443408012 -0.394033312798 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.257461100817 0.166636288166 -0.951812028885 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.121597990394 0.379167228937 -0.917303740978 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.239243164659 -0.068095922470 -0.968568861485 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.237777918577 0.189985200763 -0.952558279037 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.321765869856 0.031786296517 -0.946285545826 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.499776810408 -0.188684627414 -0.845352709293 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.668428599834 -0.167659357190 -0.724633395672 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.925868690014 -0.143659874797 -0.349469542503 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.994119644165 -0.024308571592 0.105523765087 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.342720925808 -0.695488154888 0.631536722183 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.967731595039 0.089420117438 0.235583648086 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.975846707821 0.090819150209 0.198683232069 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn -0.030241664499 -0.188028365374 0.981697916985 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.300667345524 -0.639052808285 0.707962334156 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn 0.518350839615 -0.279829472303 0.808089017868 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.968691527843 0.096191249788 0.228875383735 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.672764062881 -0.122789070010 0.729596734047 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.852591931820 0.267648220062 0.448833376169 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.075495623052 0.638999342918 0.765493452549 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.411579012871 0.213397726417 0.886038422585 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.003467992181 0.502313077450 0.864678859711 +vn 0.075495623052 0.638999342918 0.765493452549 +vn 0.450228840113 0.505723893642 0.735892176628 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.405834138393 0.527080059052 0.746649324894 +vn 0.076707385480 0.563243448734 0.822722792625 +vn -0.046318404377 0.483514308929 0.874110102654 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.076707385480 0.563243448734 0.822722792625 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.046318404377 0.483514308929 0.874110102654 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.076707385480 0.563243448734 0.822722792625 +vn 0.174220189452 0.662042379379 0.728935658932 +vn 0.033342286944 0.775118052959 0.630936086178 +vn 0.033342286944 0.775118052959 0.630936086178 +vn -0.001853432041 0.702297449112 0.711881220341 +vn 0.076707385480 0.563243448734 0.822722792625 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.107103355229 0.802144825459 0.587445795536 +vn -0.135683953762 0.754256904125 0.642406702042 +vn -0.135683953762 0.754256904125 0.642406702042 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.001853432041 0.702297449112 0.711881220341 +vn 0.033342286944 0.775118052959 0.630936086178 +vn -0.077421911061 0.794761300087 0.601963758469 +vn -0.077421911061 0.794761300087 0.601963758469 +vn -0.107103355229 0.802144825459 0.587445795536 +vn -0.001853432041 0.702297449112 0.711881220341 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.046318404377 0.483514308929 0.874110102654 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.135683953762 0.754256904125 0.642406702042 +vn -0.221242532134 0.675346255302 0.703533351421 +vn -0.221242532134 0.675346255302 0.703533351421 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.122877381742 0.615804612637 0.778258204460 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.221242532134 0.675346255302 0.703533351421 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.300841867924 0.528104782104 0.794102966785 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.237557619810 0.219554141164 0.946235895157 +vn 0.046239048243 0.326019555330 0.944231569767 +vn -0.046318404377 0.483514308929 0.874110102654 +vn -0.046318404377 0.483514308929 0.874110102654 +vn -0.277309715748 0.398924142122 0.874047398567 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.237557619810 0.219554141164 0.946235895157 +vn -0.146622955799 -0.094849973917 0.984634518623 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.046239048243 0.326019555330 0.944231569767 +vn -0.237557619810 0.219554141164 0.946235895157 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.221997469664 0.427836626768 0.876169443130 +vn 0.046239048243 0.326019555330 0.944231569767 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.254596322775 -0.007401073817 0.967019081116 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.739345252514 0.255324393511 0.623039305210 +vn 0.548855543137 0.135462462902 0.824868202209 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.772374272346 -0.180488973856 0.608984172344 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.930129706860 0.026116527617 0.366301268339 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.841595470905 -0.201776951551 0.501002132893 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.963214516640 -0.029732352123 0.267083823681 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.974512875080 -0.025255583227 0.222905322909 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.957786798477 -0.129983693361 0.256414979696 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.979428172112 -0.143875330687 0.141493156552 +vn 0.964216649532 -0.242792561650 0.106480389833 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.913284003735 -0.340560376644 -0.223452240229 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.935110151768 -0.206819996238 -0.287740230560 +vn 0.898189663887 -0.392043143511 -0.198890775442 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.685206770897 -0.246739089489 -0.685282051563 +vn 0.682528674603 -0.394196480513 -0.615437865257 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.751338779926 -0.380058526993 -0.539486408234 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.448662787676 -0.365269780159 -0.815646827221 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.367560327053 -0.375832140446 -0.850676000118 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.058334883302 -0.343567430973 -0.937314510345 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.077338591218 0.131009072065 -0.988359928131 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.103644236922 0.293572992086 -0.950301408768 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.097468562424 0.453337430954 -0.885993838310 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.034318841994 -0.066007785499 -0.997228741646 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.378137439489 -0.097102984786 -0.920642733574 +vn 0.382293641567 -0.255345821381 -0.888059735298 +vn 0.018272232264 -0.243482127786 -0.969733238220 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.144967123866 -0.303422033787 -0.941764116287 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.314027190208 -0.224331513047 -0.922530353069 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.560364544392 -0.248785302043 -0.789998352528 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.551769614220 -0.158883363008 -0.818722426891 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.784293711185 -0.208406299353 -0.584337353706 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.812738358974 -0.068893551826 -0.578541278839 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.964142441750 -0.114445134997 -0.239440232515 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.985361099243 -0.003984482028 -0.170433565974 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.594317197800 -0.286981523037 0.751284718513 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.392399847507 -0.357331961393 0.847547173500 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.433231920004 -0.378289788961 0.818050682545 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn 0.050828304142 -0.260675102472 0.964087665081 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.374007642269 -0.798582255840 0.471576750278 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.382115125656 -0.919592499733 0.091310665011 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.444822311401 -0.877944648266 0.177049025893 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn -0.175218105316 -0.657200574875 -0.733066201210 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.329441517591 -0.413433134556 -0.848847091198 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.754504084587 -0.130536347628 -0.643182575703 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.970057964325 0.115720912814 -0.213532686234 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.931108534336 0.223939180374 0.287903070450 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.931108534336 0.223939180374 0.287903070450 +vn -0.209134399891 0.041847482324 0.976991117001 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.441210776567 0.220206886530 0.869966685772 +vn -0.209134399891 0.041847482324 0.976991117001 +vn 0.441210776567 0.220206886530 0.869966685772 +vn 0.388409644365 0.097376465797 0.916327297688 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.209134399891 0.041847482324 0.976991117001 +vn 0.441210776567 0.220206886530 0.869966685772 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.209134399891 0.041847482324 0.976991117001 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.261542350054 -0.173252478242 0.949515223503 +vn 0.388409644365 0.097376465797 0.916327297688 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.209134399891 0.041847482324 0.976991117001 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.728682994843 -0.144246354699 0.669487893581 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.978950858116 -0.052735656500 -0.197165250778 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn -0.656407594681 0.145513758063 -0.740239739418 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.021359665319 0.267187446356 -0.963407814503 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.596999526024 0.318955272436 -0.736110806465 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.922186851501 -0.285774916410 -0.260584205389 +vn 0.566875457764 -0.316759556532 -0.760470628738 +vn 0.566875457764 -0.316759556532 -0.760470628738 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.961917400360 -0.257273793221 0.092331200838 +vn 0.961917400360 -0.257273793221 0.092331200838 +vn 0.922186851501 -0.285774916410 -0.260584205389 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.877248644829 -0.199683353305 0.436533331871 +vn 0.877248644829 -0.199683353305 0.436533331871 +vn 0.961917400360 -0.257273793221 0.092331200838 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.965425789356 -0.103984490037 0.239040255547 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.262398809195 -0.280063599348 0.923423647881 +vn 0.262398809195 -0.280063599348 0.923423647881 +vn 0.877248644829 -0.199683353305 0.436533331871 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.761923372746 -0.109514206648 0.638341128826 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn 0.262398809195 -0.280063599348 0.923423647881 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.050410073251 -0.219276145101 0.974359691143 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.861634016037 -0.294701397419 0.413204461336 +vn -0.581942975521 -0.282826542854 0.762464106083 +vn -0.861634016037 -0.294701397419 0.413204461336 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.944620668888 -0.320841640234 -0.068938180804 +vn -0.861634016037 -0.294701397419 0.413204461336 +vn -0.944620668888 -0.320841640234 -0.068938180804 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.610765278339 -0.297193735838 -0.733922123909 +vn -0.944620668888 -0.320841640234 -0.068938180804 +vn -0.610765278339 -0.297193735838 -0.733922123909 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.012012279592 -0.263556957245 -0.964569032192 +vn -0.610765278339 -0.297193735838 -0.733922123909 +vn -0.012012279592 -0.263556957245 -0.964569032192 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.566875457764 -0.316759556532 -0.760470628738 +vn -0.012012279592 -0.263556957245 -0.964569032192 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.278343588114 -0.634537100792 0.721032261848 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.263197481632 0.913265168667 -0.310924112797 +vn 0.148090556264 0.691439032555 -0.707093536854 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn 0.784938931465 0.612792372704 -0.091413095593 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.759271144867 0.607571125031 0.233162388206 +vn 0.807897269726 0.516708374023 0.283397972584 +vn 0.819642543793 0.571151673794 -0.044405825436 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.788973271847 -0.602539002895 -0.120282799006 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.453124940395 -0.533907651901 0.713877022266 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn 0.056181445718 0.741137385368 0.668998479843 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.030380034819 0.719979643822 0.693329930305 +vn 0.209175691009 0.608960092068 0.765122950077 +vn 0.056181445718 0.741137385368 0.668998479843 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.895822942257 -0.438793927431 -0.070435158908 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.114055275917 -0.985913276672 0.122337311506 +vn 0.077598378062 -0.729124426842 -0.679967701435 +vn -0.804523825645 -0.541744470596 -0.243422150612 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn 0.189562767744 -0.437566787004 -0.878977417946 +vn -0.248833328485 -0.838818490505 -0.484216392040 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.030380034819 0.719979643822 0.693329930305 +vn 0.038794174790 0.877033114433 0.478861063719 +vn 0.181931316853 0.702624380589 0.687909841537 +vn 0.181931316853 0.702624380589 0.687909841537 +vn 0.209175691009 0.608960092068 0.765122950077 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.111832089722 0.738575160503 0.664831042290 +vn -0.128300026059 0.747947514057 0.651240050793 +vn -0.128300026059 0.747947514057 0.651240050793 +vn 0.038794174790 0.877033114433 0.478861063719 +vn -0.030380034819 0.719979643822 0.693329930305 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.838057279587 -0.542088925838 0.061640992761 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.708151936531 -0.630512416363 0.317765504122 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.313671469688 -0.051237426698 0.948148190975 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.350755721331 -0.247280761600 0.903228998184 +vn -0.775184810162 -0.412616372108 0.478368282318 +vn -0.712314128876 -0.334099650383 0.617240667343 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.427448153496 -0.568507194519 -0.702913641930 +vn -0.050258129835 -0.230293035507 -0.971822619438 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn 0.345611095428 0.052760053426 -0.936893463135 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn 0.472444206476 -0.356785893440 -0.805915832520 +vn -0.149990439415 -0.628571093082 -0.763152182102 +vn -0.063608899713 -0.294556140900 -0.953514873981 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn 0.437060922384 -0.336361557245 0.834169447422 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.003682370530 -0.286790549755 0.957986235619 +vn 0.141802325845 -0.285771101713 0.947748363018 +vn 0.554837346077 -0.267414331436 0.787810325623 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.525639712811 -0.737791001797 0.423517793417 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.226015701890 -0.698085904121 0.679406344891 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.496036052704 -0.635917305946 0.591233789921 +vn -0.449271619320 -0.796677172184 0.404302537441 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn -0.702819705009 -0.693241298199 0.159565150738 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.526743113995 -0.821171522141 0.219588309526 +vn -0.644651114941 -0.755516409874 0.116704128683 +vn -0.689048826694 -0.722033262253 -0.062287207693 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.080240480602 0.638880431652 -0.765109956264 +vn 0.273087769747 0.699498236179 -0.660397827625 +vn 0.273087769747 0.699498236179 -0.660397827625 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn 0.273087769747 0.699498236179 -0.660397827625 +vn 0.465314835310 0.811250209808 -0.354055315256 +vn 0.465314835310 0.811250209808 -0.354055315256 +vn 0.273829400539 0.924696326256 -0.264488548040 +vn 0.183432310820 0.690850257874 -0.699341475964 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.908309876919 0.015843641013 0.417997717857 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.448863714933 0.183967590332 0.874458312988 +vn 0.411944001913 0.393821209669 0.821709811687 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.819909214973 0.467708528042 0.330147922039 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.972455918789 0.091722354293 0.214281424880 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn 0.257287919521 0.884805023670 0.388488024473 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.257287919521 0.884805023670 0.388488024473 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn 0.192745268345 0.492540299892 0.848677396774 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.707751631737 0.511009931564 0.487807840109 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.192745268345 0.492540299892 0.848677396774 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn 0.184908628464 0.381606191397 0.905640959740 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.648009002209 0.425326675177 0.631808161736 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.184908628464 0.381606191397 0.905640959740 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.266624689102 0.593041419983 0.759745419025 +vn -0.266624689102 0.593041419983 0.759745419025 +vn 0.076644353569 0.755293190479 0.650890052319 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.716207981110 0.499084711075 0.487812042236 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.192745268345 0.492540299892 0.848677396774 +vn -0.266624689102 0.593041419983 0.759745419025 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.716207981110 0.499084711075 0.487812042236 +vn -0.825679838657 0.400832891464 0.396970719099 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn -0.340450763702 -0.576976120472 -0.742422938347 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.962301254272 -0.039169192314 -0.269150674343 +vn -0.953632593155 -0.027220398188 -0.299739748240 +vn -0.446626484394 -0.477167993784 -0.756858944893 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.979201793671 0.043794684112 0.198105692863 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.180061206222 0.563334167004 0.806370019913 +vn -0.180061206222 0.563334167004 0.806370019913 +vn 0.171868190169 0.732080280781 0.659181177616 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.707751631737 0.511009931564 0.487807840109 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.880204081535 0.234645605087 -0.412531435490 +vn -0.280455946922 -0.412052839994 -0.866923809052 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.629050672054 0.575037002563 0.523094296455 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.184908628464 0.381606191397 0.905640959740 +vn -0.180061206222 0.563334167004 0.806370019913 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.629050672054 0.575037002563 0.523094296455 +vn -0.739546954632 0.515352368355 0.432992160320 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn -0.263094604015 -0.543884932995 -0.796850323677 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.946830511093 0.063935965300 -0.315315932035 +vn -0.849882602692 0.271090626717 -0.451895385981 +vn -0.321785986423 -0.349392801523 -0.879987776279 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.981580853462 0.085098065436 0.171047657728 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.962681233883 0.257090866566 -0.084552332759 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.565301001072 0.742878913879 0.358560562134 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.076644353569 0.755293190479 0.650890052319 +vn -0.266624689102 0.593041419983 0.759745419025 +vn 0.496823996305 0.472443997860 0.727985262871 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.496823996305 0.472443997860 0.727985262871 +vn -0.266624689102 0.593041419983 0.759745419025 +vn -0.266624689102 0.593041419983 0.759745419025 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.616365551949 0.101494207978 0.780892074108 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.192745268345 0.492540299892 0.848677396774 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.895483732224 -0.159650802612 0.415476232767 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.913564145565 -0.070332199335 0.400566965342 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.856193542480 -0.515455365181 -0.035190675408 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.620249688625 -0.654477775097 -0.432376146317 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.833615779877 -0.411711692810 -0.368209511042 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.254390329123 -0.599514067173 -0.758859992027 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.844129383564 0.021499739960 -0.535708248615 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.901966691017 0.388665527105 -0.188136070967 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.935332417488 0.343503236771 -0.084609612823 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.575632691383 0.763012647629 0.294038593769 +vn 0.171868190169 0.732080280781 0.659181177616 +vn 0.171868190169 0.732080280781 0.659181177616 +vn -0.180061206222 0.563334167004 0.806370019913 +vn 0.521306455135 0.467230886221 0.714097201824 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.521306455135 0.467230886221 0.714097201824 +vn -0.180061206222 0.563334167004 0.806370019913 +vn -0.180061206222 0.563334167004 0.806370019913 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.535567224026 -0.012940082699 0.844393432140 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.184908628464 0.381606191397 0.905640959740 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.843786776066 -0.245984554291 0.476985782385 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.793580412865 -0.300677359104 0.528983235359 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.784687519073 -0.618691146374 -0.038558837026 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.570066154003 -0.723200023174 -0.389879912138 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn 0.830022990704 -0.359803080559 -0.426149666309 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.330498814583 -0.562601387501 -0.757793009281 +vn 0.551274299622 -0.377769410610 -0.743899822235 +vn 0.770441830158 0.124682173133 -0.625198960304 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn 0.129396855831 0.545063197613 0.828349292278 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.290875703096 0.016440996900 0.956619560719 +vn 0.129396855831 0.545063197613 0.828349292278 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.648009002209 0.425326675177 0.631808161736 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.649962127209 -0.032834753394 0.759256958961 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn -0.269836694002 -0.648911595345 -0.711408436298 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.361486613750 -0.871635258198 -0.331027746201 +vn -0.755871891975 -0.587243855000 0.289486378431 +vn -0.976216316223 -0.161507442594 -0.144627094269 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn 0.092150472105 -0.960336923599 -0.263175487518 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.548589885235 -0.620292305946 -0.560612738132 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.956916511059 -0.095712594688 0.274134784937 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.129396855831 0.545063197613 0.828349292278 +vn 0.129396855831 0.545063197613 0.828349292278 +vn -0.290875703096 0.016440996900 0.956619560719 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.290875703096 0.016440996900 0.956619560719 +vn -0.252987205982 -0.770890474319 0.584572792053 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.782792508602 -0.622060239315 0.016640689224 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.374225527048 -0.918710529804 -0.126199200749 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.978597700596 -0.203487649560 -0.030648948625 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.873680889606 -0.254217475653 -0.414795339108 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.976393342018 -0.034493237734 0.213228285313 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.996993303299 0.043252151459 0.064293101430 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.823331177235 0.180604666471 0.538059234619 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.522149622440 0.581013023853 0.624326586723 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.483783185482 -0.188346296549 0.854680955410 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.042617920786 -0.077262252569 0.996099531651 +vn 0.121004454792 -0.743254899979 0.657974183559 +vn 0.702570617199 -0.417962342501 0.575935781002 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.983536243439 0.177552938461 0.033636920154 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.743372976780 -0.626676201820 0.233823701739 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.063488200307 0.792590856552 0.606439590454 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.616370320320 0.433791041374 0.657200813293 +vn 0.110006704926 0.644826173782 0.756371438503 +vn -0.063488200307 0.792590856552 0.606439590454 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.411944001913 0.393821209669 0.821709811687 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.787957370281 0.477610796690 0.388601541519 +vn 0.076644353569 0.755293190479 0.650890052319 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.787957370281 0.477610796690 0.388601541519 +vn -0.448863714933 0.183967590332 0.874458312988 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn -0.918951630592 -0.393101125956 0.031612586230 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.107680648565 -0.894641518593 -0.433614403009 +vn -0.333550721407 -0.596247136593 -0.730228245258 +vn -0.959001660347 -0.101881392300 -0.264454126358 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.563659667969 -0.461650341749 -0.684957504272 +vn 0.755673527718 -0.580640435219 -0.303008645773 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.972455918789 0.091722354293 0.214281424880 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.411944001913 0.393821209669 0.821709811687 +vn 0.076644353569 0.755293190479 0.650890052319 +vn 0.952149391174 0.305112123489 -0.017836395651 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.518603384495 0.300804406404 0.800354421139 +vn 0.508389532566 0.448634028435 0.735028982162 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.504803478718 -0.691964030266 0.516099989414 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.836774110794 -0.481221765280 0.261217683554 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.997338175774 0.072519011796 0.007588622160 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.088888555765 0.015037650242 0.995928049088 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn 0.322712332010 0.518643856049 0.791748225689 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.700886607170 0.338039726019 0.628082096577 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.322712332010 0.518643856049 0.791748225689 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn 0.321015238762 0.514520943165 0.795121014118 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.571633458138 0.247708499432 0.782224833965 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.321015238762 0.514520943165 0.795121014118 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.059534739703 0.594721972942 0.801724016666 +vn -0.059534739703 0.594721972942 0.801724016666 +vn 0.149192854762 0.818112552166 0.555367708206 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.674985289574 0.334197402000 0.657804667950 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.322712332010 0.518643856049 0.791748225689 +vn -0.059534739703 0.594721972942 0.801724016666 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.674985289574 0.334197402000 0.657804667950 +vn -0.727050065994 0.229038923979 0.647255241871 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn -0.425885379314 -0.623170614243 -0.655957341194 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.975743651390 -0.217743486166 -0.022630447522 +vn -0.956104636192 -0.292931735516 -0.007408959325 +vn -0.553487002850 -0.562953591347 -0.613787710667 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.964841306210 0.247465044260 0.088557027280 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.094312846661 0.586990058422 0.804081916809 +vn -0.094312846661 0.586990058422 0.804081916809 +vn 0.118212953210 0.816253483295 0.565469682217 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.700886607170 0.338039726019 0.628082096577 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.963580250740 -0.267051726580 0.014016546309 +vn -0.333052396774 -0.693272292614 -0.639100670815 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.655655622482 0.397478044033 0.641971111298 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.321015238762 0.514520943165 0.795121014118 +vn -0.094312846661 0.586990058422 0.804081916809 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.655655622482 0.397478044033 0.641971111298 +vn -0.725499093533 0.294759482145 0.621906638145 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn -0.313091188669 -0.700623571873 -0.641171157360 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.960929155350 -0.276273429394 0.016975795850 +vn -0.971467733383 -0.236483171582 -0.018060231581 +vn -0.470730185509 -0.604085922241 -0.643034458160 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.935157954693 0.353377223015 -0.024578729644 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.856117010117 0.482730776072 -0.184484988451 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.540606260300 0.807461678982 0.236115515232 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.149192854762 0.818112552166 0.555367708206 +vn -0.059534739703 0.594721972942 0.801724016666 +vn 0.605633556843 0.573746502399 0.551382780075 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.605633556843 0.573746502399 0.551382780075 +vn -0.059534739703 0.594721972942 0.801724016666 +vn -0.059534739703 0.594721972942 0.801724016666 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.771579861641 0.202758759260 0.602953910828 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.322712332010 0.518643856049 0.791748225689 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.961140692234 0.050061751157 0.271481752396 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.970984339714 0.123645357788 0.204697906971 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.952282905579 -0.284368395805 -0.110868863761 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.685568511486 -0.533490240574 -0.495362460613 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.874183952808 -0.164703086019 -0.456809937954 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.214254140854 -0.526274204254 -0.822879493237 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.695948600769 0.300683468580 -0.652108132839 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.775852501392 0.567831695080 -0.274991095066 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.832989275455 0.504606544971 -0.226938515902 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.460896521807 0.879790425301 0.116375401616 +vn 0.118212953210 0.816253483295 0.565469682217 +vn 0.118212953210 0.816253483295 0.565469682217 +vn -0.094312846661 0.586990058422 0.804081916809 +vn 0.578698873520 0.646696209908 0.496881872416 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.578698873520 0.646696209908 0.496881872416 +vn -0.094312846661 0.586990058422 0.804081916809 +vn -0.094312846661 0.586990058422 0.804081916809 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.767063081264 0.215842425823 0.604174017906 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.321015238762 0.514520943165 0.795121014118 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.973615527153 0.120421126485 0.193833947182 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.966279029846 0.053210075945 0.251939415932 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.952031672001 -0.265573054552 -0.152008801699 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.723640680313 -0.512672543526 -0.462072551250 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn 0.849038064480 -0.124876268208 -0.513361752033 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.313650816679 -0.538114547729 -0.782340049744 +vn 0.549481987953 -0.322085440159 -0.770928323269 +vn 0.629623532295 0.333947807550 -0.701464951038 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn 0.180510208011 0.646930694580 0.740875661373 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.180510208011 0.646930694580 0.740875661373 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.571633458138 0.247708499432 0.782224833965 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.322253704071 -0.189766019583 0.927438080311 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn -0.196830675006 -0.838620603085 -0.507910609245 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.068582832813 -0.993876457214 -0.086637146771 +vn -0.326727688313 -0.762412965298 0.558547675610 +vn -0.845117628574 -0.490876168013 0.211699649692 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.433536440134 -0.874591886997 -0.217106372118 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.634616017342 -0.463246196508 -0.618599593639 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.955628812313 0.291310042143 -0.043726418167 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.180510208011 0.646930694580 0.740875661373 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.088888555765 0.015037650242 0.995928049088 +vn 0.310724049807 -0.698983669281 0.644105851650 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.943425536156 -0.203005120158 -0.262177675962 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.717304289341 -0.660168945789 -0.222826108336 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.891302168369 0.238586738706 -0.385560452938 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.758884966373 0.092251464725 -0.644657492638 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.930916905403 0.332600742579 -0.150898694992 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.877895355225 0.405764371157 -0.254273504019 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.823468267918 0.544366657734 0.159890517592 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.448758721352 0.815742969513 0.364937067032 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn 0.803170442581 0.076972313225 0.590755879879 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.461701482534 0.051164239645 0.885558545589 +vn 0.641450524330 -0.522252142429 0.561955392361 +vn 0.964601278305 -0.034498769790 0.261446416378 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.508389532566 0.448634028435 0.735028982162 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.734525084496 0.400696694851 0.547644972801 +vn 0.149192854762 0.818112552166 0.555367708206 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.734525084496 0.400696694851 0.547644972801 +vn -0.518603384495 0.300804406404 0.800354421139 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn -0.943273961544 -0.317976415157 0.095526158810 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.181024864316 -0.898927867413 -0.398947030306 +vn -0.368347316980 -0.700353562832 -0.611412405968 +vn -0.957798421383 -0.287328153849 0.008044288494 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.515817642212 -0.344284206629 -0.784474670887 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.508389532566 0.448634028435 0.735028982162 +vn 0.149192854762 0.818112552166 0.555367708206 +vn 0.900408267975 0.406306445599 -0.155499354005 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn 0.501678824425 0.396977752447 0.768587708473 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.443338632584 -0.801661252975 0.400986373425 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.655084729195 -0.755481123924 0.010595246218 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.247283771634 -0.719329714775 -0.649165272713 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn 0.505004465580 0.475358963013 0.720419526100 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.519214332104 0.253620952368 0.816145122051 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.505004465580 0.475358963013 0.720419526100 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn 0.520211935043 0.559058606625 0.645626068115 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.228174239397 0.046188309789 0.972524106503 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.520211935043 0.559058606625 0.645626068115 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.508684575558 0.100909605622 0.855018854141 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.227183014154 0.711364388466 0.665092885494 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.482553303242 0.293915122747 0.825079500675 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.143501415849 0.469171375036 0.871369957924 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.482553303242 0.293915122747 0.825079500675 +vn -0.508684575558 0.100909605622 0.855018854141 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn -0.346198737621 -0.711642503738 -0.611319363117 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.869434535503 -0.445658445358 0.213242009282 +vn -0.828451156616 -0.499392956495 0.253525912762 +vn -0.473281711340 -0.666536271572 -0.575963377953 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.910344779491 0.372827082872 -0.179644897580 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.532382369041 0.165311589837 0.830205440521 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.265235602856 0.751007497311 0.604679942131 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.519214332104 0.253620952368 0.816145122051 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.838412821293 -0.511487185955 0.188267946243 +vn -0.325170487165 -0.671815574169 -0.665528357029 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.438396394253 0.250405520201 0.863195061684 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.184828087687 0.570850193501 0.799980401993 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.438396394253 0.250405520201 0.863195061684 +vn -0.532382369041 0.165311589837 0.830205440521 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn -0.371108859777 -0.615805447102 -0.695026516914 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.861999690533 -0.480082362890 0.162718862295 +vn -0.883482158184 -0.442702859640 0.153210327029 +vn -0.472557634115 -0.605245292187 -0.640599250793 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.831110119820 0.524186849594 -0.185698986053 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.674065530300 0.659879446030 -0.331956028938 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.463716655970 0.855164170265 0.231648653746 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.686772048473 0.587655961514 0.427790343761 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.143501415849 0.469171375036 0.871369957924 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.901354968548 0.173700019717 0.396721005440 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.505004465580 0.475358963013 0.720419526100 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.986742973328 0.148276701570 -0.065972454846 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.980657398701 0.183535054326 -0.068014398217 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.863255441189 -0.137341469526 -0.485723584890 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.544145107269 -0.351761192083 -0.761689007282 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.687293410301 -0.005807823967 -0.726356685162 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.128968864679 -0.386283367872 -0.913319349289 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.391208052635 0.468177586794 -0.792316854000 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.623391151428 0.703280031681 -0.341731846333 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.739776730537 0.600438773632 -0.303650617599 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.388378977776 0.908979058266 0.151389509439 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.265235602856 0.751007497311 0.604679942131 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.630653321743 0.678292334080 0.377088755369 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.184828087687 0.570850193501 0.799980401993 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.874575555325 0.318329840899 0.365764498711 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.520211935043 0.559058606625 0.645626068115 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.937908053398 0.346375674009 -0.018771579489 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.918112099171 0.388273864985 -0.079458087683 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.876418769360 0.027477806434 -0.480765074492 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.560012459755 -0.217515259981 -0.799420535564 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.664896368980 0.172920316458 -0.726643919945 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.129326030612 -0.292879104614 -0.947362959385 +vn 0.389072328806 -0.095891259611 -0.916202783585 +vn 0.406478911638 0.543811917305 -0.734195768833 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.339759290218 0.652270197868 0.677574515343 +vn -0.228174239397 0.046188309789 0.972524106503 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn -0.228174239397 0.046188309789 0.972524106503 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn 0.170270666480 -0.406844973564 0.897488176823 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn -0.235076472163 -0.728490591049 -0.643459796906 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.082195654511 -0.937620520592 -0.337804198265 +vn 0.088449247181 -0.925405740738 0.368511795998 +vn -0.619149923325 -0.738844692707 0.266010940075 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.476972043514 -0.707461297512 -0.521532535553 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.355099231005 -0.208450347185 -0.911291956902 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.687901079655 0.645506918430 -0.331832736731 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.339759290218 0.652270197868 0.677574515343 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.513085484505 0.034213557839 0.857655346394 +vn 0.684322059155 -0.660563945770 0.308801889420 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.904637575150 0.042771328241 -0.424029976130 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.753184616566 -0.437666743994 -0.491081178188 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.821415543556 0.418836295605 -0.387108117342 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.494041234255 0.320056259632 -0.808385610580 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.869845926762 0.474592566490 -0.134647488594 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.675994634628 0.653667986393 -0.340219646692 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.809969186783 0.585213720798 0.038403198123 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.442176759243 0.858698606491 0.259068340063 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.975914239883 0.216983765364 0.022570852190 +vn 0.902213692665 0.365601032972 0.228793248534 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.775210857391 0.244860023260 0.582315802574 +vn 0.927561044693 -0.318227767944 0.195861279964 +vn 0.975914239883 0.216983765364 0.022570852190 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.501678824425 0.396977752447 0.768587708473 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.437682479620 0.131488755345 0.889463186264 +vn 0.227183014154 0.711364388466 0.665092885494 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.437682479620 0.131488755345 0.889463186264 +vn -0.234297513962 -0.089574843645 0.968029439449 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn -0.734225749969 -0.640220344067 0.225899294019 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.405751198530 -0.675861299038 -0.615286529064 +vn -0.354655981064 -0.667066633701 -0.655165076256 +vn -0.765435516834 -0.599227905273 0.234594091773 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.280589044094 -0.079728811979 -0.956510901451 +vn 0.431223034859 -0.245175361633 -0.868294715881 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.913566887379 0.292726159096 -0.282324224710 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.501678824425 0.396977752447 0.768587708473 +vn 0.227183014154 0.711364388466 0.665092885494 +vn 0.610397398472 0.699176430702 -0.372246384621 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.110006704926 0.644826173782 0.756371438503 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.693001866341 0.498886138201 0.520443081856 +vn 0.149933636189 0.697240829468 0.700981557369 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.616370320320 0.433791041374 0.657200813293 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.901949763298 -0.291285008192 0.318809688091 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.359303474426 -0.736660242081 0.572916030884 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.890769839287 0.184809222817 0.415180265903 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn 0.157286047935 0.538553655148 0.827780783176 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.616071522236 0.741670787334 0.265292972326 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.157286047935 0.538553655148 0.827780783176 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.983508825302 0.178707674146 0.027819553390 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn 0.104782521725 0.411863684654 0.905201017857 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.657146453857 0.579351842403 0.482192873955 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.104782521725 0.411863684654 0.905201017857 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.206256195903 0.641347289085 0.739007472992 +vn -0.206256195903 0.641347289085 0.739007472992 +vn 0.096828460693 0.822797715664 0.560025155544 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.677771806717 0.617188751698 0.399629086256 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.157286047935 0.538553655148 0.827780783176 +vn -0.206256195903 0.641347289085 0.739007472992 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.677771806717 0.617188751698 0.399629086256 +vn -0.768773972988 0.435160547495 0.468638271093 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn -0.316729605198 -0.591466248035 -0.741518735886 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.926304101944 0.045903865248 -0.373969972134 +vn -0.975134015083 -0.114833161235 -0.189544335008 +vn -0.430359631777 -0.595827996731 -0.678070485592 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.970880985260 -0.015337765217 0.239070773125 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.139188796282 0.683903872967 0.716171741486 +vn -0.139188796282 0.683903872967 0.716171741486 +vn 0.222944125533 0.750830531120 0.621730983257 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.616071522236 0.741670787334 0.265292972326 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.833082377911 0.170161336660 -0.526325821877 +vn -0.199534490705 -0.497407346964 -0.844258189201 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.610949575901 0.705598056316 0.358987480402 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.104782521725 0.411863684654 0.905201017857 +vn -0.139188796282 0.683903872967 0.716171741486 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.610949575901 0.705598056316 0.358987480402 +vn -0.668119966984 0.705169081688 0.237386316061 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn -0.208768904209 -0.573515474796 -0.792146205902 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.850158751011 0.180513113737 -0.494616091251 +vn -0.799643516541 0.236606702209 -0.551894485950 +vn -0.254326343536 -0.407145589590 -0.877240300179 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.868796169758 -0.152697831392 0.471037775278 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.981905460358 0.179060816765 -0.061635598540 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.585843265057 0.739259600639 0.332088679075 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.096828460693 0.822797715664 0.560025155544 +vn -0.206256195903 0.641347289085 0.739007472992 +vn 0.518502652645 0.501994550228 0.692211270332 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.518502652645 0.501994550228 0.692211270332 +vn -0.206256195903 0.641347289085 0.739007472992 +vn -0.206256195903 0.641347289085 0.739007472992 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.554780423641 0.107210293412 0.825060427189 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.157286047935 0.538553655148 0.827780783176 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.880316972733 -0.152910739183 0.449066013098 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.889279901981 -0.100665405393 0.446147680283 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.815516710281 -0.578331232071 0.021573621780 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.567068278790 -0.731413245201 -0.378772050142 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.797515034676 -0.488100707531 -0.354580610991 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.196752786636 -0.678127408028 -0.708118319511 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.804508805275 -0.077632702887 -0.588845252991 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.987893760204 0.129381850362 0.085593491793 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.983508825302 0.178707674146 0.027819553390 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.651536583900 0.604201257229 0.458738386631 +vn 0.222944125533 0.750830531120 0.621730983257 +vn 0.222944125533 0.750830531120 0.621730983257 +vn -0.139188796282 0.683903872967 0.716171741486 +vn 0.461553364992 0.375474810600 0.803733229637 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.461553364992 0.375474810600 0.803733229637 +vn -0.139188796282 0.683903872967 0.716171741486 +vn -0.139188796282 0.683903872967 0.716171741486 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.396851718426 -0.018567655236 0.917694926262 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.104782521725 0.411863684654 0.905201017857 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.646806478500 -0.355502337217 0.674729228020 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.632826983929 -0.368218600750 0.681135118008 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.626226544380 -0.741151809692 0.241938635707 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.506012320518 -0.837805211544 -0.205021828413 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn 0.793541431427 -0.589811086655 -0.149715930223 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.339195787907 -0.687699139118 -0.641884803772 +vn 0.614367485046 -0.528622925282 -0.585756242275 +vn 0.908918678761 -0.099282518029 -0.404981225729 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn 0.113310351968 0.573081195354 0.811627209187 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.357588768005 0.118223853409 0.926365673542 +vn 0.113310351968 0.573081195354 0.811627209187 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.657146453857 0.579351842403 0.482192873955 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.734268069267 0.103339523077 0.670948088169 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn -0.233318984509 -0.666360259056 -0.708185136318 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.399920433760 -0.850315570831 -0.342092126608 +vn -0.848475039005 -0.487641692162 0.205659151077 +vn -0.952475607395 -0.035068064928 -0.302589625120 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn 0.043543953449 -0.980369687080 -0.192299902439 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.558148503304 -0.735797524452 -0.383499979973 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.871987402439 -0.213342875242 0.440593689680 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.113310351968 0.573081195354 0.811627209187 +vn 0.113310351968 0.573081195354 0.811627209187 +vn -0.357588768005 0.118223853409 0.926365673542 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.357588768005 0.118223853409 0.926365673542 +vn -0.383437961340 -0.706359207630 0.595005929470 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.748748421669 -0.647354602814 0.142505466938 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.360437154770 -0.932430565357 -0.025656782091 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.959618747234 -0.261538088322 0.103584453464 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.903939485550 -0.364983111620 -0.222891658545 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.945667684078 -0.079083986580 0.315370142460 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.939626336098 -0.190783411264 0.284084558487 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.892274856567 0.088678508997 0.442698240280 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.598061859608 0.474797159433 0.645669937134 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn 0.501735031605 -0.120247341692 0.856622755527 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.000675067538 -0.005126592703 0.999986648560 +vn 0.021822169423 -0.700111567974 0.713699936867 +vn 0.660671710968 -0.416826665401 0.624314367771 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.149933636189 0.697240829468 0.700981557369 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.731816112995 0.506709039211 0.455731421709 +vn 0.096828460693 0.822797715664 0.560025155544 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.731816112995 0.506709039211 0.455731421709 +vn -0.693001866341 0.498886138201 0.520443081856 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn -0.980364203453 -0.180218189955 -0.080046124756 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.342308551073 -0.898793816566 -0.273851275444 +vn -0.389741688967 -0.670392096043 -0.631407797337 +vn -0.980241477489 -0.154460281134 -0.123566515744 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.475301384926 -0.572428107262 -0.668142676353 +vn 0.668267428875 -0.714787065983 -0.206150755286 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.890769839287 0.184809222817 0.415180265903 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.149933636189 0.697240829468 0.700981557369 +vn 0.096828460693 0.822797715664 0.560025155544 +vn 0.960634171963 0.272636055946 -0.053400605917 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.989734828472 0.125559329987 -0.068262815475 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.921148419380 0.385149210691 -0.056086633354 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.257287919521 0.884805023670 0.388488024473 +vn 0.672626733780 0.736264288425 0.074082300067 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.532998859882 0.815917551517 0.224032908678 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.257287919521 0.884805023670 0.388488024473 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.257287919521 0.884805023670 0.388488024473 +vn -0.063488200307 0.792590856552 0.606439590454 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.495524138212 0.582533538342 0.644290685654 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.110006704926 0.644826173782 0.756371438503 +vn 0.817651689053 0.281194716692 0.502369642258 +vn 0.819909214973 0.467708528042 0.330147922039 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.996836364269 -0.078574545681 0.011971659027 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.992345750332 0.105561174452 -0.064083777368 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.933551311493 0.355292409658 0.047425679862 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.865989685059 0.453615128994 0.210464164615 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.882028698921 0.317493706942 0.348171114922 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.908309876919 0.015843641013 0.417997717857 +vn 0.972412407398 0.062441378832 0.224755913019 +vn 0.974218785763 0.136953219771 0.179280668497 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.999813377857 -0.018315166235 -0.006142910570 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.991819202900 -0.034799017012 -0.122815772891 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.977511823177 -0.022532563657 -0.209673374891 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.987035095692 0.088362626731 -0.133991599083 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.983536243439 0.177552938461 0.033636920154 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.967617809772 -0.103586673737 0.230186060071 +vn 0.981092154980 0.054133977741 0.185816302896 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.795029461384 -0.241429388523 -0.556453049183 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.487139850855 -0.463946342468 -0.739897668362 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.647841155529 -0.025598770007 -0.761345207691 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.859054207802 0.164472088218 -0.484741955996 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.946094691753 0.247164011002 -0.209319770336 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.990318894386 0.134526759386 0.034220863134 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.969940900803 -0.016906807199 -0.242752596736 +vn 0.969082534313 0.013526707888 -0.246365621686 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn 0.991130888462 -0.068684190512 0.113763011992 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.999113142490 0.000560889952 0.042102612555 +vn 0.997338175774 0.072519011796 0.007588622160 +vn 0.724958002567 -0.519052088261 -0.452792286873 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.754400372505 -0.617815971375 0.221773415804 +vn -0.676493585110 -0.725261986256 0.127872824669 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.851959705353 0.511508643627 0.111908867955 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.310053557158 0.172868609428 0.934870719910 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn 0.065754547715 -0.648359239101 0.758489727974 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.316012024879 0.686757266521 0.654599726200 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.316012024879 0.686757266521 0.654599726200 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn 0.092993848026 0.951101779938 0.294546306133 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.162509486079 0.963348150253 0.213426902890 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.398574531078 -0.913124322891 0.085687346756 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn 0.262353718281 -0.850628614426 0.455633014441 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.809110283852 -0.140281960368 0.570667624474 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.414537787437 0.577000021935 0.703725337982 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.076232120395 0.892228424549 0.445103466511 +vn -0.076232120395 0.892228424549 0.445103466511 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.454158663750 0.889905989170 -0.042511224747 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.487139791250 -0.811088681221 -0.323774576187 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.450961977243 -0.891635656357 -0.040238905698 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.162509486079 0.963348150253 0.213426902890 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.488797932863 0.870124578476 -0.062927119434 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.834133267403 0.451350212097 -0.317024648190 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.891583979130 0.427818477154 -0.148490324616 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.920045375824 -0.349020928144 -0.178047493100 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.834865987301 0.549538910389 0.031714677811 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.941915929317 0.115449301898 -0.315382063389 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.076232120395 0.892228424549 0.445103466511 +vn -0.539173722267 0.833431780338 0.121174119413 +vn -0.531211972237 0.828068792820 0.179209098220 +vn -0.531211972237 0.828068792820 0.179209098220 +vn 0.316012024879 0.686757266521 0.654599726200 +vn -0.076232120395 0.892228424549 0.445103466511 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.076232120395 0.892228424549 0.445103466511 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.316012024879 0.686757266521 0.654599726200 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.092993848026 0.951101779938 0.294546306133 +vn -0.162509486079 0.963348150253 0.213426902890 +vn 0.092993848026 0.951101779938 0.294546306133 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.414537787437 0.577000021935 0.703725337982 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.162509486079 0.963348150253 0.213426902890 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn -0.039080802351 -0.837885558605 0.544445097446 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.523957431316 -0.527176558971 0.668994367123 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.073301777244 0.768137931824 0.636074662209 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.644062459469 -0.736073076725 0.208278611302 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn 0.459524750710 -0.881456553936 -0.108955472708 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.931347429752 -0.191739603877 0.309560865164 +vn 0.656715273857 0.671186864376 0.343850612640 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.296533823013 0.937092840672 0.184186592698 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.256493657827 0.966490387917 0.010358544998 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.399717628956 -0.800060749054 -0.447357386351 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.221573963761 -0.975115537643 0.007395572029 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn 0.323385655880 -0.909398913383 -0.261563360691 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.792649924755 -0.450770765543 0.410501927137 +vn 0.908204495907 -0.398815929890 0.126926913857 +vn 0.879008293152 0.327037870884 0.346973568201 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.386452257633 0.830117344856 0.401945084333 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.301279544830 0.869882464409 0.390557467937 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.296533823013 0.937092840672 0.184186592698 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.584438264370 -0.750773370266 -0.307849317789 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.463834911585 -0.781955063343 -0.416417390108 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn 0.256493657827 0.966490387917 0.010358544998 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.656715273857 0.671186864376 0.343850612640 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.162260547280 0.985521793365 -0.049175888300 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.278513342142 0.959875881672 -0.032689496875 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.552404344082 0.714155137539 -0.429920792580 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.807621896267 0.130036145449 -0.575184762478 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.770505726337 0.605568349361 -0.199017360806 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.874981164932 -0.187535449862 -0.446361333132 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.765422403812 0.624349057674 0.155938431621 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.386452257633 0.830117344856 0.401945084333 +vn 0.018751272932 0.761757254601 0.647591114044 +vn -0.386452257633 0.830117344856 0.401945084333 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.321225166321 0.935288310051 0.148492872715 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.018751272932 0.761757254601 0.647591114044 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.256493657827 0.966490387917 0.010358544998 +vn 0.301279544830 0.869882464409 0.390557467937 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.879008293152 0.327037870884 0.346973568201 +vn 0.656715273857 0.671186864376 0.343850612640 +vn 0.256493657827 0.966490387917 0.010358544998 +vn 0.257990837097 0.399163067341 0.879834949970 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.350384771824 0.861267209053 0.368034303188 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.472992837429 -0.007466317620 0.881034612656 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.350384771824 0.861267209053 0.368034303188 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn 0.350384771824 0.861267209053 0.368034303188 +vn 0.620225965977 0.440775215626 0.648873627186 +vn 0.620225965977 0.440775215626 0.648873627186 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.321225166321 0.935288310051 0.148492872715 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.977639138699 0.079577423632 -0.194651469588 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.886710703373 -0.365493357182 0.283123165369 +vn -0.299715340137 -0.398805558681 0.866674602032 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.073301777244 0.768137931824 0.636074662209 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.418872237206 0.170925334096 0.891813099384 +vn 0.257990837097 0.399163067341 0.879834949970 +vn -0.073301777244 0.768137931824 0.636074662209 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.073301777244 0.768137931824 0.636074662209 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.257990837097 0.399163067341 0.879834949970 +vn 0.350384771824 0.861267209053 0.368034303188 +vn -0.106712952256 0.917102098465 0.384104311466 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.106712952256 0.917102098465 0.384104311466 +vn 0.350384771824 0.861267209053 0.368034303188 +vn 0.350384771824 0.861267209053 0.368034303188 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.287710011005 0.868447899818 0.403758883476 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.169324740767 0.985013782978 -0.032816808671 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.506764352322 0.822178900242 0.259252250195 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.777136385441 0.616913676262 -0.124404892325 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.626703619957 0.600684523582 0.496407806873 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.902384638786 0.115731023252 0.415100276470 +vn -0.418872237206 0.170925334096 0.891813099384 +vn -0.379872918129 0.728305935860 0.570321917534 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.794405698776 -0.012495234609 -0.607258975506 +vn 0.392160177231 -0.396549701691 -0.830035388470 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.955716431141 0.190873801708 -0.223993942142 +vn 0.949413836002 0.132040485740 -0.284918785095 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.482846260071 0.869433462620 0.104618154466 +vn -0.086542211473 0.967878103256 0.236056029797 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.746451914310 0.651406109333 0.135939553380 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.895273745060 0.445466607809 0.006669424009 +vn 0.971128344536 0.229403585196 -0.065450385213 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.646575033665 0.757143557072 0.093136429787 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.840204894543 0.542268991470 -0.000119482458 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.695233106613 -0.308236718178 0.649338960648 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.050192341208 0.664369225502 0.745717287064 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.509524762630 0.326571792364 0.796074986458 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.532998859882 0.815917551517 0.224032908678 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.050192341208 0.664369225502 0.745717287064 +vn -0.063488200307 0.792590856552 0.606439590454 +vn 0.532998859882 0.815917551517 0.224032908678 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.366472154856 0.870783627033 0.327771276236 +vn -0.162673503160 0.963678956032 0.211802154779 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.510312438011 0.841042578220 0.179523259401 +vn 0.510312438011 0.841042578220 0.179523259401 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.041679881513 0.924551546574 0.378770738840 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.714573740959 0.695854723454 -0.071906782687 +vn -0.808967173100 0.572136342525 -0.135026350617 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.941590726376 0.033662363887 -0.335072696209 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.881481885910 -0.453425347805 -0.131890684366 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.595355689526 -0.790148377419 0.145661026239 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.527738094330 -0.663481891155 0.530362427235 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.087274819613 0.444357991219 0.891587972641 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.383311569691 0.245430797338 0.890413403511 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.087274819613 0.444357991219 0.891587972641 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.050192341208 0.664369225502 0.745717287064 +vn 0.541074633598 0.742484569550 0.394911348820 +vn 0.368794947863 0.655544221401 0.658978044987 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.041679881513 0.924551546574 0.378770738840 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.366472154856 0.870783627033 0.327771276236 +vn -0.162673503160 0.963678956032 0.211802154779 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn -0.453713983297 -0.402141332626 0.795252144337 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.523102521896 -0.394829660654 0.755296826363 +vn -0.383311569691 0.245430797338 0.890413403511 +vn -0.217805311084 -0.017195902765 0.975840747356 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.368794947863 0.655544221401 0.658978044987 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.366472154856 0.870783627033 0.327771276236 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.432463288307 0.539263606071 0.722613453865 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.432463288307 0.539263606071 0.722613453865 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn -0.656450152397 -0.729013919830 -0.193937793374 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.168870478868 -0.724403142929 -0.668373286724 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn 0.312904179096 -0.418887764215 -0.852422416210 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.165293544531 -0.684560775757 -0.709968030453 +vn -0.561405301094 -0.783839344978 -0.265367656946 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.636142671108 -0.726978540421 0.258504658937 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.592031836510 -0.689757585526 0.416812658310 +vn -0.445946663618 -0.807002365589 0.387141823769 +vn -0.491080105305 -0.837426304817 0.239911466837 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.653411686420 -0.700181365013 0.287748575211 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.750844120979 -0.583663046360 0.309144854546 +vn -0.671968698502 -0.667977213860 0.319788247347 +vn -0.584727287292 -0.760881543159 0.281341969967 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.874737322330 -0.461276412010 -0.148521482944 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.618247926235 -0.775683164597 0.126827254891 +vn -0.582560062408 -0.809202492237 0.076257012784 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.126566886902 -0.326682716608 -0.936621189117 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn 0.137934416533 -0.403524935246 -0.904511868954 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.437444090843 -0.449006646872 -0.779124975204 +vn -0.246353954077 -0.609194815159 -0.753784716129 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.691448807716 -0.499428868294 -0.521985948086 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.538350522518 -0.738366723061 -0.406193703413 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.788505494595 -0.575718581676 -0.216349691153 +vn -0.639232695103 -0.769012033939 0.001446417999 +vn -0.664937376976 -0.730501115322 0.155648365617 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.832284808159 -0.533833265305 -0.149412333965 +vn -0.830348789692 -0.545909702778 -0.111818790436 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.484131455421 -0.316163808107 -0.815878152847 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.795067191124 -0.386380672455 -0.467523425817 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.898375689983 -0.393273085356 -0.195594832301 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.966934204102 -0.186706066132 -0.173721387982 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.900562524796 0.426854074001 0.082357078791 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.362487792969 0.694832563400 0.621136307716 +vn 0.367153495550 0.875142931938 0.315155804157 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.086542211473 0.967878103256 0.236056029797 +vn -0.086542211473 0.967878103256 0.236056029797 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.482846260071 0.869433462620 0.104618154466 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.664757490158 0.741586744785 -0.090258158743 +vn 0.758434236050 0.649761736393 -0.050863955170 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.349582046270 -0.311735272408 -0.883523344994 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.704096138477 -0.441944241524 -0.555818200111 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.832196235657 -0.529535293579 -0.164443820715 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.915586531162 -0.333801418543 0.224227353930 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.820469796658 0.119803763926 0.558995842934 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.476979732513 0.530355632305 0.700866043568 +vn 0.200900077820 0.779989659786 0.592667937279 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.362487792969 0.694832563400 0.621136307716 +vn -0.362487792969 0.694832563400 0.621136307716 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.367153495550 0.875142931938 0.315155804157 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.683762192726 0.728296756744 -0.045311164111 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn -0.519133925438 -0.761686325073 0.387729167938 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.973435103893 -0.116879180074 -0.196884244680 +vn -0.880192518234 -0.458102107048 0.124111056328 +vn -0.675654530525 -0.652904331684 0.342354983091 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.540591895580 -0.128417894244 0.831426024437 +vn 0.310053557158 0.172868609428 0.934870719910 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.488122433424 0.411598801613 0.769625186920 +vn 0.412324339151 0.719989717007 0.558214545250 +vn 0.412324339151 0.719989717007 0.558214545250 +vn -0.041679881513 0.924551546574 0.378770738840 +vn 0.414537787437 0.577000021935 0.703725337982 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn 0.847137212753 0.013076731004 -0.531213283539 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn 0.152241155505 -0.867611408234 -0.473363518715 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn 0.493106514215 -0.556070029736 -0.669053137302 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.250959426165 -0.952669680119 -0.171580299735 +vn 0.152241155505 -0.867611408234 -0.473363518715 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.250959426165 -0.952669680119 -0.171580299735 +vn 0.847137212753 0.013076731004 -0.531213283539 +vn 0.900250494480 0.354679793119 -0.252490162849 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.847137212753 0.013076731004 -0.531213283539 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.682675063610 -0.077603086829 -0.726589620113 +vn 0.519804894924 -0.123855583370 -0.845258951187 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.858815073967 0.119769096375 -0.498088389635 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.907647013664 0.391346275806 -0.151739954948 +vn 0.916165411472 0.250511020422 -0.312866061926 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.761525034904 0.090172626078 -0.641832113266 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.096408627927 -0.179964497685 -0.978937268257 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.147158190608 0.045159835368 -0.988081514835 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.605928599834 0.056156951934 -0.793534457684 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.447385460138 0.231602251530 -0.863832533360 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.524165391922 0.471699982882 -0.709048509598 +vn 0.711000323296 0.521369159222 -0.471860915422 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.762283980846 0.367579370737 -0.532736837864 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.720319032669 0.613522648811 -0.323620855808 +vn 0.833127021790 0.499868392944 -0.236708581448 +vn 0.846919417381 0.311212152243 -0.431131660938 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.723317623138 0.619894027710 0.304208874702 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.196437984705 0.667735934258 0.718011736870 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.706075668335 0.665737152100 0.241352871060 +vn 0.723317623138 0.619894027710 0.304208874702 +vn 0.196437984705 0.667735934258 0.718011736870 +vn -0.460308641195 0.432748824358 0.775141537189 +vn -0.476979732513 0.530355632305 0.700866043568 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.200900077820 0.779989659786 0.592667937279 +vn 0.196437984705 0.667735934258 0.718011736870 +vn -0.460308641195 0.432748824358 0.775141537189 +vn -0.792952120304 -0.015133478679 0.609095990658 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.476979732513 0.530355632305 0.700866043568 +vn -0.460308641195 0.432748824358 0.775141537189 +vn -0.792952120304 -0.015133478679 0.609095990658 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.796163260937 0.020412357524 0.604737460613 +vn -0.792952120304 -0.015133478679 0.609095990658 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.472495853901 -0.873955726624 0.113794088364 +vn -0.472495853901 -0.873955726624 0.113794088364 +vn -0.250959426165 -0.952669680119 -0.171580299735 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn -0.430559724569 -0.708580851555 -0.559045195580 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn -0.078519783914 -0.830581963062 -0.551333189011 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.094399817288 -0.468443334103 -0.878435850143 +vn 0.399592339993 -0.540018141270 -0.740747153759 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.699251949787 -0.040834713727 -0.713708102703 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.842043936253 -0.014386636205 -0.539217054844 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.915375590324 0.387467741966 -0.109344631433 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn 0.900250494480 0.354679793119 -0.252490162849 +vn 0.851737022400 0.522776246071 0.035341292620 +vn 0.851737022400 0.522776246071 0.035341292620 +vn 0.723317623138 0.619894027710 0.304208874702 +vn 0.906766295433 0.409387618303 -0.100879304111 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn -0.616665720940 -0.782339334488 -0.087570220232 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.788612246513 -0.502828478813 0.353912740946 +vn -0.685466885567 -0.650259494781 0.327563315630 +vn -0.424148023129 -0.902120292187 -0.079230606556 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.911147356033 -0.255800306797 0.323073804379 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.826433897018 -0.245585113764 0.506650686264 +vn 0.949352085590 -0.135964304209 0.283274352551 +vn 0.957214355469 -0.286995112896 0.037074200809 +vn 0.388409644365 0.097376465797 0.916327297688 +vn 0.886226296425 0.257387071848 0.385168552399 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.388409644365 0.097376465797 0.916327297688 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.716518461704 -0.298295706511 0.630571901798 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.728796660900 -0.660439372063 -0.180763065815 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.860012650490 -0.378439724445 0.342288851738 +vn -0.658858060837 -0.689020693302 0.301921337843 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.631677627563 -0.756497323513 -0.169396430254 +vn -0.480001002550 -0.817916572094 -0.317193210125 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn -0.074344001710 -0.674611508846 -0.734419703484 +vn -0.066533669829 -0.595843851566 -0.800339519978 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.407755017281 -0.386306762695 -0.827346920967 +vn 0.481644779444 -0.286784321070 -0.828114151955 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.785199224949 -0.046839069575 -0.617469251156 +vn 0.803414165974 0.005024130922 -0.595399379730 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.849230527878 0.245510101318 0.467474341393 +vn 0.971741199493 0.187253728509 -0.143718585372 +vn 0.984765470028 0.141468495131 -0.101112186909 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.347463965416 -0.779532015324 0.521151185036 +vn -0.462024897337 -0.668333053589 0.582978487015 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.121289253235 -0.574827611446 0.809235513210 +vn -0.122824735940 -0.428479611874 0.895164430141 +vn 0.402302742004 -0.049480821937 0.914168536663 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.799090266228 0.180629134178 0.573435127735 +vn 0.890469372272 0.030705736950 0.454006016254 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.983807981014 0.074132882059 0.163175269961 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.614874482155 0.042262133211 0.787491738796 +vn 0.614874482155 0.042262133211 0.787491738796 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.096592143178 -0.040983092040 0.994479954243 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.637993156910 -0.174105063081 0.750101447105 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.933749496937 -0.230891004205 0.273498028517 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.903826475143 -0.356221497059 0.237073644996 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.930003046989 -0.311220437288 0.195540815592 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.886968255043 -0.360542476177 -0.288611203432 +vn -0.753570079803 -0.612610638142 -0.238412141800 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn -0.532093167305 -0.256158202887 -0.807006716728 +vn -0.325670957565 -0.585272669792 -0.742559313774 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.135324358940 -0.097970917821 -0.985945761204 +vn 0.246417284012 -0.373370826244 -0.894356071949 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn 0.952648162842 0.045603808016 -0.300635546446 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.920179307461 0.077894940972 -0.383669644594 +vn 0.660331547260 0.014505122788 -0.750834107399 +vn 0.720516026020 -0.153431087732 -0.676251113415 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.668597519398 -0.234984099865 0.705520927906 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.883964776993 -0.243255555630 0.399290591478 +vn -0.922570586205 -0.144029989839 0.357936978340 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.947189986706 -0.247276708484 -0.204170018435 +vn -0.987068951130 -0.001342023723 -0.160290583968 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.519403219223 -0.215743064880 -0.826846539974 +vn -0.609359264374 0.086500100791 -0.788161814213 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn -0.041514541954 -0.171664625406 -0.984280347824 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn -0.023929292336 0.121215716004 -0.992337703705 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.427678495646 -0.126462370157 -0.895040988922 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.495944917202 0.221249133348 -0.839694857597 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.915072023869 -0.104790523648 -0.389438182116 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.908574581146 0.206608444452 -0.363049775362 +vn 0.924159824848 0.201810598373 -0.324347227812 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.980115532875 0.048620678484 0.192378610373 +vn 0.988765597343 -0.019402373582 0.148209601641 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.799184441566 -0.119045473635 0.589179396629 +vn 0.794139862061 -0.172562643886 0.582721173763 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn 0.166234999895 -0.225214079022 0.960023224354 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.575514614582 -0.278533190489 0.768896758556 +vn -0.670065939426 -0.258720010519 0.695755422115 +vn 0.127896860242 -0.234220936894 0.963733851910 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.401186734438 -0.166196405888 0.900792956352 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.207664504647 -0.740456640720 0.639217793941 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.622594892979 -0.589945852757 -0.514139533043 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.803143441677 -0.424439013004 0.418105423450 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.870798230171 -0.274165362120 0.408097743988 +vn -0.929131925106 -0.287983894348 0.231903240085 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.513534486294 0.648863255978 0.561479091644 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.674554347992 -0.159368902445 0.720817565918 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.606201291084 0.206537902355 0.768024802208 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.350814163685 -0.622514247894 0.699575185776 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.481114804745 0.476588666439 0.735793292522 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.474705159664 0.698050916195 -0.536078274250 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.632141351700 0.593008518219 0.498736590147 +vn -0.696642994881 0.705350995064 -0.131028831005 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.466922909021 0.878792583942 -0.098521873355 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.441691637039 0.769754469395 0.460854202509 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.380355626345 0.915188968182 0.133262023330 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.531039237976 0.846361756325 -0.040854826570 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.754615128040 0.229811772704 0.614607691765 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.606201291084 0.206537902355 0.768024802208 +vn -0.661760091782 0.656048417091 0.362869143486 +vn -0.785454511642 0.548647284508 0.286439210176 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.849245250225 0.459349334240 0.260347217321 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.675730884075 0.170890003443 0.717066466808 +vn -0.831401288509 0.182725146413 0.524769842625 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn -0.628898859024 -0.167266234756 0.759281396866 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.820158123970 -0.257162839174 0.511085033417 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.717795908451 -0.106868870556 0.688002943993 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.014599231072 -0.289826303720 0.956967890263 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.213539779186 -0.735609531403 0.642868101597 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.313859432936 -0.946901202202 0.069788210094 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.148168861866 -0.965607345104 0.213654994965 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.000251441961 -0.942464411259 -0.334306448698 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.133523687720 -0.654319226742 -0.744337141514 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.178969815373 -0.036877691746 -0.983163177967 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.130780518055 0.699840128422 -0.702225208282 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.647320389748 0.685716152191 -0.332820743322 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.432985514402 0.861952602863 -0.263744652271 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.893545091152 0.419377058744 0.160312488675 +vn -0.835198342800 0.538639068604 -0.110958099365 +vn -0.734826862812 0.676068246365 -0.054416924715 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.854047775269 0.194880262017 0.482311189175 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.934815168381 0.101666234434 0.340271264315 +vn -0.899725437164 0.424019932747 0.103446580470 +vn -0.724321365356 0.630072712898 0.279940962791 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.491222590208 0.725237250328 0.482422292233 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.344457119703 0.228259548545 0.910629928112 +vn -0.442502230406 0.477027654648 0.759365797043 +vn -0.259154200554 0.634195923805 0.728446722031 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.000500970287 0.150257885456 0.988646686077 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.105894960463 0.457142889500 0.883066594601 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.000500970287 0.150257885456 0.988646686077 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn -0.066208049655 0.065464153886 0.995656013489 +vn -0.000500970287 0.150257885456 0.988646686077 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.025139117613 -0.589855730534 0.807117223740 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.042927689850 -0.924748063087 0.378151118755 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.150387302041 -0.987316966057 -0.050880618393 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.331084758043 -0.787115514278 -0.520415246487 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.277171522379 -0.333621501923 -0.901039779186 +vn -0.422015488148 -0.481336265802 -0.768256664276 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.524348676205 -0.128817796707 -0.841703295708 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.121618598700 0.471150964499 -0.873627901077 +vn -0.492768824100 0.139666393399 -0.858878433704 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.486196488142 0.873833239079 -0.005337357987 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.513394534588 0.856354117393 0.055530793965 +vn -0.330983459949 0.883402228355 -0.331738591194 +vn -0.546669006348 0.650373995304 -0.527415037155 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.587025642395 0.370276719332 -0.719927787781 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.431260585785 0.846675992012 0.311695545912 +vn -0.605038166046 0.783646821976 -0.140806540847 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.352230370045 0.729819893837 -0.585915267467 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.363752692938 0.687420129776 -0.628599703312 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn -0.057436451316 0.584186136723 -0.809584856033 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.070003993809 0.410762041807 -0.909051120281 +vn -0.024612516165 0.484930634499 -0.874206185341 +vn 0.203552156687 0.187401816249 -0.960961520672 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.200884222984 0.281286299229 -0.938362181187 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.508846163750 -0.197130560875 -0.837982773781 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.789647102356 -0.514648020267 -0.334058165550 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.642632007599 -0.639336526394 -0.422223776579 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.449879735708 -0.892520606518 -0.031862419099 +vn 0.616720378399 -0.787130177021 -0.009059753269 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.691674530506 -0.071475937963 -0.718663692474 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn 0.380637049675 0.233202338219 -0.894836366177 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.015120597556 0.448562145233 -0.893623709679 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.008417923935 0.505917787552 -0.862540602684 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.305590540171 0.615349054337 -0.726608574390 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn -0.443666130304 0.852729022503 -0.275705635548 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.332030713558 0.934520363808 -0.128168955445 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.269882589579 0.768469750881 -0.580187559128 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.291657984257 0.089169785380 -0.952357292175 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.283972531557 0.357400029898 -0.889733016491 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.369570851326 -0.178360313177 -0.911923766136 +vn 0.195117399096 0.110545657575 -0.974530041218 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn 0.123270623386 -0.089006535709 -0.988373517990 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn 0.057102527469 -0.408684372902 -0.910887718201 +vn -0.248657748103 -0.389411330223 -0.886864244938 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn -0.631206750870 -0.460801810026 -0.623890817165 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.918274998665 -0.334325522184 -0.212126120925 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.656991720200 -0.618542015553 0.431007683277 +vn -0.985950827599 -0.157788723707 -0.054805383086 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.972732365131 -0.190843746066 -0.131796970963 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.434074252844 -0.268963068724 0.859789729118 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn -0.656465947628 -0.623428642750 0.424722492695 +vn -0.749023437500 -0.459609448910 0.477203339338 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.960145235062 -0.235651865602 -0.150297492743 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.866114735603 -0.318803369999 0.384980142117 +vn -0.994470536709 -0.003524448955 0.104957044125 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.521253764629 0.558969914913 0.644862115383 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.398872137070 0.415788918734 0.817325294018 +vn -0.732338190079 0.066023983061 0.677732706070 +vn -0.778450906277 0.365307867527 0.510455012321 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.757318496704 0.415668547153 0.503674864769 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.598532140255 0.585088372231 0.547202765942 +vn -0.525861024857 0.510891556740 0.680044114590 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.294267475605 0.736320257187 0.609293937683 +vn -0.294267475605 0.736320257187 0.609293937683 +vn -0.319124907255 0.778944134712 0.539819717407 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.319124907255 0.778944134712 0.539819717407 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.372199684381 0.758454144001 0.534990429878 +vn -0.470349341631 0.716976583004 0.514505684376 +vn -0.444885224104 0.657462239265 0.608128726482 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.210031285882 0.676729142666 0.705637693405 +vn -0.210031285882 0.676729142666 0.705637693405 +vn -0.294267475605 0.736320257187 0.609293937683 +vn -0.329087138176 0.596190571785 0.732296705246 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.220259353518 0.493042349815 0.841662108898 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.217704832554 0.616207301617 0.756897091866 +vn -0.210031285882 0.676729142666 0.705637693405 +vn -0.141039162874 0.546767175198 0.825320303440 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.217961534858 0.368339926004 0.903780102730 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.192643001676 -0.043187834322 0.980318069458 +vn -0.208762139082 0.173094764352 0.962526142597 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.162622109056 0.413673579693 0.895783603191 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.401722431183 0.450534582138 0.797268867493 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.209707826376 -0.115715160966 0.970892667770 +vn -0.181194424629 0.227098539472 0.956867218018 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.628319561481 0.359209179878 0.690060377121 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.464984834194 0.282209694386 0.839134573936 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.587958753109 -0.088701777160 0.804012775421 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.944666683674 0.069445535541 0.320596575737 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.829526960850 0.006343629677 0.558430612087 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.886774122715 -0.348562031984 0.303539305925 +vn -0.978150129318 -0.207043349743 0.018851371482 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.928429484367 -0.330303490162 0.170053705573 +vn -0.972717821598 -0.214486360550 -0.088405892253 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.972956180573 -0.193811461329 -0.125671654940 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.959261178970 -0.266427934170 -0.093989863992 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.914136767387 -0.355888932943 -0.194157153368 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.882259726524 -0.411326795816 -0.228971764445 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.714386403561 -0.455613791943 -0.531100869179 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.661482095718 -0.585137486458 -0.469100773335 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.695248961449 -0.433017820120 -0.573693692684 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.290984004736 -0.442904204130 -0.848035514355 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn -0.326375365257 -0.544217050076 -0.772856354713 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.461035043001 -0.472170799971 -0.751333117485 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn -0.092966847122 -0.408933341503 -0.907816410065 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.029672866687 -0.456797748804 -0.889075577259 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.186271145940 -0.284139335155 -0.940514683723 +vn 0.333242952824 -0.351648002863 -0.874810159206 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.206165060401 -0.231415942311 -0.950758993626 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.227766945958 -0.113212391734 -0.967111766338 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.348777472973 0.110478848219 -0.930671095848 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.232259064913 0.042165666819 -0.971739590168 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.291348487139 0.287645339966 -0.912346541882 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.205909222364 0.252331405878 -0.945478856564 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.213274046779 0.473949223757 -0.854333817959 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn 0.150941848755 0.451750874519 -0.879282474518 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.053181022406 -0.359932571650 -0.931461393833 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.063421443105 -0.214829355478 -0.974590182304 +vn 0.393268018961 -0.069132164121 -0.916821122169 +vn 0.404777139425 -0.242898955941 -0.881564259529 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.220781981945 -0.310104668140 -0.924710988998 +vn 0.183340653777 -0.273737013340 -0.944168567657 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.179423063993 -0.188055112958 -0.965630710125 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn 0.057057879865 -0.261248350143 -0.963583767414 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.212149545550 -0.267020434141 -0.940049290657 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.123162224889 -0.212614715099 -0.969343125820 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.502373993397 -0.221697002649 -0.835745632648 +vn -0.530079066753 -0.134988084435 -0.837134659290 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.789869427681 -0.142434820533 -0.596505343914 +vn -0.840851187706 -0.088725514710 -0.533944845200 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.805913925171 -0.393099069595 0.442691624165 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.755450785160 -0.244421571493 0.607908070087 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.682558894157 -0.447725176811 0.577629208565 +vn -0.649566590786 -0.465607345104 0.601059973240 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.196055978537 -0.171053454280 0.965558290482 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.417664378881 -0.297151625156 0.858636915684 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.507497727871 -0.236813455820 0.828471779823 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.216913148761 -0.139054685831 0.966236233711 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.283693671227 -0.203705921769 0.937028169632 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.359831422567 -0.413703173399 0.836284041405 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.338521063328 -0.652876555920 0.677610278130 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn -0.228975534439 -0.966663718224 0.114592753351 +vn -0.286758840084 -0.825533211231 0.486070215702 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn -0.060088019818 -0.817149162292 0.573285877705 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.080994680524 -0.984151780605 0.157750397921 +vn 0.422937929630 -0.871309041977 0.248885691166 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.437271595001 -0.449537754059 -0.778915524483 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.115275420249 -0.405100435019 -0.906975865364 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.608339726925 -0.334035158157 -0.719960570335 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.909568905830 -0.262379735708 -0.322244167328 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.968926668167 -0.157936230302 0.190361022949 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.565466403961 -0.060642685741 0.822538852692 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn 0.149793371558 -0.171276986599 0.973769009113 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.100404962897 -0.010206341743 0.994894325733 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.696138083935 0.027712017298 0.717372834682 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.971542954445 0.190712869167 -0.140473663807 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.667801558971 0.397239923477 -0.629477202892 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn 0.020017268136 0.422390818596 -0.906192779541 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.607101559639 0.302661061287 -0.734727144241 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.514643490314 -0.262845516205 -0.816121518612 +vn -0.514643490314 -0.262845516205 -0.816121518612 +vn -0.903522908688 -0.324223697186 -0.280223727226 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.903522908688 -0.324223697186 -0.280223727226 +vn -0.939108490944 -0.334201961756 0.079902052879 +vn -0.939108490944 -0.334201961756 0.079902052879 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.939108490944 -0.334201961756 0.079902052879 +vn -0.879063725471 -0.294311136007 0.375003933907 +vn -0.879063725471 -0.294311136007 0.375003933907 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.948065698147 -0.258092373610 0.185902506113 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.879063725471 -0.294311136007 0.375003933907 +vn -0.350002974272 -0.353424876928 0.867518723011 +vn -0.350002974272 -0.353424876928 0.867518723011 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.772708237171 -0.313344955444 0.552029848099 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.350002974272 -0.353424876928 0.867518723011 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn -0.108156479895 -0.424431473017 0.898977220058 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.855423569679 -0.287269592285 0.430960148573 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.522046148777 -0.307964920998 0.795377552509 +vn 0.855423569679 -0.287269592285 0.430960148573 +vn 0.965904176235 -0.249124884605 -0.070468947291 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.855423569679 -0.287269592285 0.430960148573 +vn 0.965904176235 -0.249124884605 -0.070468947291 +vn 0.707191705704 -0.151784554124 -0.690536975861 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.965904176235 -0.249124884605 -0.070468947291 +vn 0.707191705704 -0.151784554124 -0.690536975861 +vn 0.155663013458 -0.127083465457 -0.979601383209 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.707191705704 -0.151784554124 -0.690536975861 +vn 0.155663013458 -0.127083465457 -0.979601383209 +vn -0.514643490314 -0.262845516205 -0.816121518612 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.155663013458 -0.127083465457 -0.979601383209 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.250461757183 -0.593217015266 0.765089869499 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn -0.521389782429 -0.343838661909 0.780978679657 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.715763926506 -0.212930619717 0.665088415146 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.465007245541 -0.425382465124 0.776413559914 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.145126968622 0.899781525135 -0.411498963833 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.134684994817 0.684974730015 -0.716009497643 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn -0.775885522366 0.616467952728 -0.134048074484 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.633557975292 0.763627767563 -0.124406084418 +vn -0.516845405102 0.745677411556 -0.420518726110 +vn -0.596450567245 0.676830708981 -0.431447476149 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.522606372833 -0.813196480274 0.256113231182 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn -0.230195984244 -0.579904317856 0.781486272812 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.513534486294 0.648863255978 0.561479091644 +vn -0.660521805286 0.480035573244 0.577301323414 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.513534486294 0.648863255978 0.561479091644 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn 0.137720257044 -0.872675478458 -0.468476980925 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn -0.555393755436 -0.827782988548 0.079454943538 +vn 0.323501050472 -0.885855317116 0.332576870918 +vn 0.652669608593 -0.757597029209 0.008313104510 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn 0.280668675900 -0.841036975384 -0.462473720312 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.123121000826 -0.448742777109 -0.885139048100 +vn 0.092088714242 -0.480216324329 -0.872302651405 +vn -0.043687757105 -0.877011001110 -0.478479951620 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.660521805286 0.480035573244 0.577301323414 +vn -0.632141351700 0.593008518219 0.498736590147 +vn -0.632141351700 0.593008518219 0.498736590147 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.426534503698 0.658479154110 0.620059251785 +vn -0.405317097902 0.826308548450 0.391065508127 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.253316640854 0.715313494205 0.651273608208 +vn -0.354340136051 0.692856073380 0.628007590771 +vn -0.426534503698 0.658479154110 0.620059251785 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn 0.439630091190 -0.721156895161 0.535404622555 +vn 0.153458490968 -0.724150478840 0.672351539135 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn 0.052944108844 -0.525575459003 0.849097967148 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.194386199117 -0.316394358873 0.928498029709 +vn -0.327875584364 -0.123132228851 0.936662197113 +vn 0.005380727351 -0.466115295887 0.884707629681 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.183084383607 -0.301576018333 0.935698688030 +vn -0.183688417077 -0.212271973491 0.959791243076 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.442722022533 -0.331521779299 -0.833120942116 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.531822919846 -0.763270735741 -0.366854429245 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn 0.157262817025 -0.804923295975 -0.572159826756 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn -0.114131063223 -0.495763331652 -0.860925555229 +vn 0.238099992275 -0.110498450696 -0.964934468269 +vn 0.452441990376 -0.493693500757 -0.742672860622 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn -0.474601060152 -0.314127713442 0.822239398956 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.310935705900 -0.333749651909 0.889904558659 +vn -0.645000696182 -0.448348075151 0.618836104870 +vn -0.776939868927 -0.339007973671 0.530507385731 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.097222670913 -0.772586345673 0.627421736717 +vn -0.441064447165 -0.647433578968 0.621523916721 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn -0.278138488531 -0.797384798527 0.535552501678 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn -0.282175540924 -0.623341798782 0.729261279106 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.148190066218 -0.888485610485 0.434319049120 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn -0.163589537144 -0.883762001991 0.438409894705 +vn 0.091035820544 -0.847606122494 0.522758364677 +vn 0.277552098036 -0.928275525570 0.247526556253 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.147046521306 0.661145508289 -0.735706388950 +vn -0.147046521306 0.661145508289 -0.735706388950 +vn 0.080240480602 0.638880431652 -0.765109956264 +vn 0.103091351688 0.587236762047 -0.802823245525 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn -0.315204828978 0.861297667027 -0.398512542248 +vn -0.474705159664 0.698050916195 -0.536078274250 +vn -0.474705159664 0.698050916195 -0.536078274250 +vn -0.147046521306 0.661145508289 -0.735706388950 +vn -0.021746918559 0.684855461121 -0.728354394436 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.449752897024 0.215031251311 0.866881728172 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.220938414335 0.246594354510 0.943598151207 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.864156365395 0.421443611383 0.274989217520 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.525134205818 0.469024330378 0.710105836391 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.518878757954 0.427382588387 0.740343809128 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn -0.526116251945 0.837725043297 0.146350353956 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn -0.418460667133 0.901152551174 0.113202057779 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.300787478685 0.223077714443 0.927234172821 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.526116251945 0.837725043297 0.146350353956 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.331191927195 0.887251555920 -0.321086555719 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.199163094163 0.857034504414 -0.475211501122 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn 0.901155054569 0.207435190678 -0.380644440651 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.767984747887 -0.000124268874 -0.640468120575 +vn 0.632791161537 -0.770698904991 -0.074823580682 +vn 0.755004882813 -0.648362755775 -0.097945638001 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.887100934982 -0.301324844360 0.349650204182 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.094880104065 0.767824649811 -0.633595347404 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn 0.584740519524 -0.076099924743 -0.807643055916 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.512204766273 -0.850021958351 -0.122918345034 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.898592233658 0.382915318012 0.214261218905 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.070625789464 0.688678205013 -0.721619248390 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn -0.057959515601 0.724743604660 -0.686576604843 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn 0.469996184111 -0.136217668653 -0.872094213963 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.575490474701 -0.073232166469 -0.814523041248 +vn 0.609682977200 -0.792106568813 -0.029220450670 +vn 0.525191307068 -0.828523874283 -0.194222226739 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.571492850780 -0.022711342201 0.820292711258 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.853799223900 -0.515887677670 -0.069905407727 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.923558056355 0.181594893336 -0.337733328342 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.356608331203 0.911232411861 -0.206121206284 +vn -0.882203221321 0.466355353594 0.065039306879 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.526116251945 0.837725043297 0.146350353956 +vn -0.669882655144 0.495309412479 0.553105592728 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.690679788589 -0.000778474496 0.723160266876 +vn -0.716297686100 -0.048545919359 0.696104109287 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.008410177194 -0.786310911179 0.617773711681 +vn -0.356729805470 -0.570918679237 0.739456355572 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn 0.281914830208 -0.912322878838 0.296969711781 +vn -0.359494030476 -0.823143482208 0.439543902874 +vn -0.452860146761 -0.891462624073 -0.014562929980 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.840265870094 -0.241866633296 0.485235869884 +vn -0.784745812416 -0.252164989710 0.566203892231 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.686430990696 0.720295071602 -0.099937297404 +vn -0.898592233658 0.382915318012 0.214261218905 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.342781454325 0.907233953476 -0.243777379394 +vn -0.650007605553 0.666634500027 0.364813089371 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.291609972715 0.196503594518 0.936135649681 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.418460667133 0.901152551174 0.113202057779 +vn -0.313529968262 0.702443897724 0.638961255550 +vn -0.291609972715 0.196503594518 0.936135649681 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.300787478685 0.223077714443 0.927234172821 +vn -0.291609972715 0.196503594518 0.936135649681 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.193445131183 -0.664700031281 0.721632063389 +vn 0.027322886512 -0.366461753845 0.930031836033 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn -0.071583420038 -0.882299423218 0.465213447809 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn 0.251126438379 -0.872303128242 0.419550597668 +vn -0.134772136807 -0.627485811710 0.766875505447 +vn -0.489775359631 -0.690809249878 0.531885921955 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.059762805700 0.789890289307 -0.610329151154 +vn 0.442690938711 0.830069482327 -0.339130282402 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn 0.939903497696 0.263156682253 -0.217554569244 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.872482240200 -0.471308529377 0.129007905722 +vn 0.654265940189 -0.755983114243 0.020631497726 +vn 0.717394471169 0.009258572012 -0.696605682373 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.671369910240 -0.501542747021 0.545634746552 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.582837760448 0.017110457644 0.812408387661 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn 0.086628310382 -0.763483464718 0.639991044998 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.582837760448 0.017110457644 0.812408387661 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.750201165676 0.627852976322 0.207361668348 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.519856750965 0.852639913559 -0.052479960024 +vn -0.750201165676 0.627852976322 0.207361668348 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.831779718399 0.422522366047 0.360024124384 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.211761444807 0.976250410080 -0.045741431415 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.563470244408 0.434554904699 0.702611804008 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.563470244408 0.434554904699 0.702611804008 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn 0.477946668863 -0.420341253281 0.771284759045 +vn -0.007830149494 -0.295004695654 0.955463707447 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.347150862217 -0.614471793175 0.708456575871 +vn -0.434476226568 -0.280854701996 0.855775117874 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.686755061150 -0.134028151631 0.714425623417 +vn -0.577457189560 -0.013896662742 0.816302657127 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.131474196911 0.695336520672 0.706556200981 +vn 0.072813071311 0.950119674206 0.303266942501 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.750201165676 0.627852976322 0.207361668348 +vn -0.630089104176 0.398744553328 0.666326105595 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.083546750247 0.307561278343 0.947853386402 +vn 0.563470244408 0.434554904699 0.702611804008 +vn 0.072813071311 0.950119674206 0.303266942501 +vn 0.072813071311 0.950119674206 0.303266942501 +vn -0.131474196911 0.695336520672 0.706556200981 +vn -0.083546750247 0.307561278343 0.947853386402 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.595785379410 0.316492557526 0.738154590130 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.125691637397 0.965929806232 0.226232767105 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn -0.103229515254 0.978088200092 0.180795833468 +vn -0.103229515254 0.978088200092 0.180795833468 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.234835863113 0.898671209812 -0.370462059975 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.864156365395 0.421443611383 0.274989217520 +vn -0.103229515254 0.978088200092 0.180795833468 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn 0.795773029327 -0.568661808968 0.208252415061 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.560475468636 -0.384606152773 0.733447611332 +vn 0.864156365395 0.421443611383 0.274989217520 +vn 0.935081541538 0.343843042850 -0.085991114378 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.012428311631 -0.972527623177 0.232455551624 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.273491442204 -0.824210345745 0.495862573385 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.654169857502 0.611067593098 -0.445710867643 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.825740158558 0.557865142822 -0.083304390311 +vn -0.924543797970 -0.378240644932 0.046398065984 +vn -0.859294295311 -0.489033728838 -0.149864375591 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.188257768750 0.392298519611 0.900367081165 +vn 0.188257768750 0.392298519611 0.900367081165 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.544627487659 0.529230535030 0.650611937046 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.716074943542 0.144961029291 0.682805240154 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn -0.429535895586 0.902928054333 0.014827483334 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.274307638407 0.453335881233 0.848081290722 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.925961256027 0.377290695906 0.015729881823 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.314878374338 0.648127079010 -0.693385124207 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.183795481920 0.739516615868 -0.647560358047 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn 0.801216185093 -0.015416327864 -0.598176360130 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.800073266029 0.021300172433 -0.599524021149 +vn 0.750594854355 -0.659069657326 -0.047271598130 +vn 0.760725796223 -0.609730362892 -0.222542375326 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.779098629951 0.083139143884 0.621363997459 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.137644410133 0.679225027561 -0.720907330513 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn 0.779980123043 -0.012368889526 -0.625682055950 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.718797862530 -0.691185951233 0.074776910245 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.934488713741 0.355977147818 0.003339467803 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.157137870789 0.549231410027 -0.820763409138 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn -0.079140819609 0.539121925831 -0.838501214981 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn 0.555945277214 -0.210566222668 -0.804106175900 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.413201630116 -0.293350487947 -0.862096250057 +vn 0.575929820538 -0.817486464977 0.004545534495 +vn 0.615144014359 -0.778381824493 -0.125377655029 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.722877025604 0.172329545021 0.669142186642 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.929514527321 -0.149202257395 0.337255775928 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.925961256027 0.377290695906 0.015729881823 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.372731298208 0.847431004047 -0.378063619137 +vn -0.768828213215 0.621080696583 0.152190640569 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.584914922714 0.809603810310 -0.049154900014 +vn -0.600362479687 0.620171487331 0.504927933216 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.716074943542 0.144961029291 0.682805240154 +vn -0.614867448807 0.221208631992 0.756970763206 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn 0.050791967660 -0.655888438225 0.753147065639 +vn -0.303740888834 -0.252504259348 0.918685495853 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn 0.293518781662 -0.907126367092 0.301609754562 +vn -0.381968259811 -0.541032910347 0.749255359173 +vn -0.696559727192 -0.627136945724 0.348573863506 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.935787856579 -0.153255134821 0.317512065172 +vn -0.930642664433 -0.119538858533 0.345853626728 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.714753448963 0.639174342155 -0.283872634172 +vn -0.934488713741 0.355977147818 0.003339467803 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.337008565664 0.844721615314 -0.415777087212 +vn -0.714815974236 0.677176654339 0.174556314945 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.429535895586 0.902928054333 0.014827483334 +vn -0.356412112713 0.766799211502 0.533843994141 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.274307638407 0.453335881233 0.848081290722 +vn -0.396692723036 0.409319311380 0.821640193462 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn 0.217625066638 -0.362255036831 0.906317055225 +vn -0.104366108775 -0.074760586023 0.991725027561 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn -0.158099621534 -0.848514199257 0.505003094673 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn 0.242346301675 -0.785019755363 0.570098459721 +vn -0.339470773935 -0.405748128891 0.848603606224 +vn -0.702686250210 -0.592057228088 0.394588679075 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.053827662021 0.628712534904 -0.775772631168 +vn 0.483346670866 0.702270805836 -0.522677481174 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn 0.917047142982 0.207954093814 -0.340264052153 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.917628645897 -0.383898764849 0.102856516838 +vn 0.673219799995 -0.736139237881 0.069814592600 +vn 0.606436192989 -0.167024254799 -0.777391850948 +vn -0.364090979099 0.029598439112 0.930892944336 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.030472742394 0.502272367477 0.864172399044 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.411388903856 0.236352607608 0.880282104015 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.048600327224 0.791139721870 0.609701573849 +vn -0.491668075323 0.542922973633 0.680806279182 +vn -0.411388903856 0.236352607608 0.880282104015 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.720661699772 -0.320666521788 0.614670395851 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.441782504320 0.297333627939 0.846416532993 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn 0.181036546826 -0.475809484720 0.860715448856 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.441782504320 0.297333627939 0.846416532993 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.667333602905 0.709663510323 0.225928291678 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.468466967344 0.873695731163 -0.131127700210 +vn -0.667333602905 0.709663510323 0.225928291678 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.845024704933 0.479537010193 0.236595571041 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.275201112032 0.942345619202 -0.190391898155 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.488979995251 -0.171528041363 0.855264127254 +vn 0.024463318288 -0.011137106456 0.999638676643 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.317777812481 -0.270505011082 0.908759772778 +vn -0.364090979099 0.029598439112 0.930892944336 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.491668075323 0.542922973633 0.680806279182 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.505450129509 0.167936429381 0.846355438232 +vn -0.411388903856 0.236352607608 0.880282104015 +vn -0.491668075323 0.542922973633 0.680806279182 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.184340089560 0.964558541775 0.188800379634 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.667333602905 0.709663510323 0.225928291678 +vn -0.491668075323 0.542922973633 0.680806279182 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.620835781097 0.549651503563 0.558968842030 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.184340089560 0.964558541775 0.188800379634 +vn 0.048600327224 0.791139721870 0.609701573849 +vn 0.030472742394 0.502272367477 0.864172399044 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.082621961832 0.478565484285 -0.874155998230 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn -0.143158808351 0.976085782051 -0.163591206074 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn 0.744623959064 -0.667047798634 -0.024132670835 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.552064001560 -0.510690867901 0.659105539322 +vn 0.845170021057 0.302865654230 -0.440408945084 +vn 0.633280694485 -0.109367601573 -0.766155540943 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.165316551924 -0.941744863987 0.292894333601 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn -0.732530832291 0.579060792923 -0.357892721891 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.869091689587 0.493450880051 -0.034437030554 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.948099553585 -0.283545225859 0.143907278776 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.243232712150 0.967023551464 0.075520321727 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.221887230873 0.512353301048 0.829614460468 +vn 0.221887230873 0.512353301048 0.829614460468 +vn -0.243232712150 0.967023551464 0.075520321727 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.675440192223 -0.458956182003 0.577182590961 +vn 0.706088304520 0.278354465961 0.651120662689 +vn 0.842137992382 0.517580270767 0.151374444366 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.067432902753 0.981908500195 0.176942050457 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn -0.084731951356 0.879110991955 -0.469024926424 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn -0.275824129581 0.797233998775 -0.536972105503 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn 0.678748965263 0.523606896400 -0.514913320541 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.665448784828 0.485600709915 -0.566894888878 +vn 0.937493324280 -0.345414757729 -0.042365852743 +vn 0.946458578110 -0.312835901976 -0.079685956240 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.746901273727 -0.482674479485 0.457344383001 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.964621126652 0.160373017192 0.209252431989 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn -0.335760802031 0.784725189209 -0.521028876305 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn 0.640085756779 0.425537496805 -0.639693737030 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.884581148624 -0.462744623423 -0.058168973774 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.945016801357 0.013837653212 0.326728969812 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn -0.229058310390 0.760169625282 -0.608008563519 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn -0.317595332861 0.768381953239 -0.555627942085 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn 0.490750640631 0.181577041745 -0.852169930935 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.499564975500 0.111929893494 -0.859014868736 +vn 0.793244004250 -0.584889531136 -0.169316813350 +vn 0.806491255760 -0.528655171394 -0.264755606651 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.551944792271 -0.293012142181 0.780705332756 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.713030219078 -0.700323402882 -0.033689942211 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.968837380409 -0.045421116054 -0.243497610092 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.685728549957 0.718560576439 -0.115961268544 +vn -0.964621126652 0.160373017192 0.209252431989 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.830990672112 0.493389964104 0.256945282221 +vn -0.788937568665 0.168626442552 0.590882897377 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.579639554024 -0.263481736183 0.771100103855 +vn -0.625793576241 -0.278895854950 0.728422582150 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn 0.247374296188 -0.749275922775 0.614322006702 +vn -0.162624269724 -0.590079188347 0.790796995163 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn 0.508111000061 -0.792860507965 0.336445242167 +vn -0.156016990542 -0.835193991661 0.527361035347 +vn -0.238086134195 -0.970914840698 -0.025286355987 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.698240220547 -0.517006635666 0.495141148567 +vn -0.674922764301 -0.523977279663 0.519545078278 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.926037192345 0.371895700693 0.064410530031 +vn -0.945016801357 0.013837653212 0.326728969812 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.732761621475 0.679454922676 0.037435822189 +vn -0.832083702087 0.208347573876 0.514031112194 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.683753192425 0.643162727356 0.344707518816 +vn -0.483903706074 0.389737546444 0.783544421196 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.438034206629 -0.038588356227 0.898129701614 +vn -0.407987475395 -0.052795879543 0.911459743977 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn 0.339785724878 -0.630825996399 0.697570264339 +vn -0.007603065576 -0.428264111280 0.903621613979 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn 0.191624388099 -0.923793375492 0.331490367651 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn 0.465707689524 -0.822708785534 0.325985670090 +vn -0.092611193657 -0.674204349518 0.732715308666 +vn -0.364021629095 -0.856148600578 0.366739392281 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.067432902753 0.981908500195 0.176942050457 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn -0.757342994213 0.639263868332 0.133316561580 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn -0.137136697769 0.888346493244 -0.438216865063 +vn 0.305667221546 0.945262253284 -0.114222683012 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn 0.873983740807 0.479939311743 -0.076227970421 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.971413433552 -0.198218494654 0.130634292960 +vn 0.840784430504 -0.537654459476 -0.063318446279 +vn 0.716986238956 0.239118993282 -0.654792249203 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn -0.178718537092 0.188127040863 0.965747356415 +vn -0.178718537092 0.188127040863 0.965747356415 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.178718537092 0.188127040863 0.965747356415 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.689539670944 0.551088571548 0.469932347536 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.785614967346 -0.286049783230 0.548620700836 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn 0.307455629110 -0.716057658195 0.626683712006 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.601199984550 -0.264719158411 0.753977715969 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.757342994213 0.639263868332 0.133316561580 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.262828111649 0.784388482571 0.561832785606 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.689539670944 0.551088571548 0.469932347536 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.067432902753 0.981908500195 0.176942050457 +vn -0.262828111649 0.784388482571 0.561832785606 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.376014262438 0.462822437286 0.802750706673 +vn 0.376014262438 0.462822437286 0.802750706673 +vn -0.178718537092 0.188127040863 0.965747356415 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.519195377827 -0.233764812350 0.822064578533 +vn 0.025394085795 -0.229523256421 0.972971856594 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.203189909458 -0.671831786633 0.712289214134 +vn -0.339134454727 -0.273717045784 0.900037109852 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.580693304539 -0.239784106612 0.778009533882 +vn -0.447011172771 -0.045240279287 0.893383622169 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.870019555092 0.264733344316 0.415911346674 +vn -0.581079006195 0.111400045455 0.806186854839 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.178718537092 0.188127040863 0.965747356415 +vn 0.376014262438 0.462822437286 0.802750706673 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.262828111649 0.784388482571 0.561832785606 +vn -0.348185300827 0.396597862244 0.849398136139 +vn -0.178718537092 0.188127040863 0.965747356415 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn -0.243232712150 0.967023551464 0.075520321727 +vn -0.243232712150 0.967023551464 0.075520321727 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.243232712150 0.967023551464 0.075520321727 +vn -0.115772135556 0.916144967079 -0.383764445782 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.842137992382 0.517580270767 0.151374444366 +vn -0.243232712150 0.967023551464 0.075520321727 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.847369909286 -0.431685984135 0.309211075306 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.818376600742 -0.401787668467 0.410884916782 +vn 0.842137992382 0.517580270767 0.151374444366 +vn 0.857951998711 0.502564668655 -0.106523200870 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn 0.210670322180 -0.966682791710 0.145404189825 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn 0.111688241363 -0.954437494278 0.276721477509 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.817223966122 0.438406974077 -0.374091386795 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.886659443378 0.442658960819 -0.133746445179 +vn -0.726776778698 -0.684764206409 -0.053791709244 +vn -0.639753162861 -0.691484153271 -0.335507929325 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.228585809469 0.971321880817 -0.065439939499 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.155846312642 0.291441172361 0.943808257580 +vn 0.525134205818 0.469024330378 0.710105836391 +vn 0.934458494186 0.322290331125 0.151381283998 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.547749757767 0.077166840434 0.833075940609 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.337525874376 0.930810749531 0.140241369605 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn -0.170828253031 0.950032889843 0.261256903410 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn -0.429289430380 0.010662646964 0.903104007244 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.001197829144 0.204163551331 0.978936076164 +vn -0.429289430380 0.010662646964 0.903104007244 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.170828253031 0.950032889843 0.261256903410 +vn 0.001197829144 0.204163551331 0.978936076164 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.470382779837 0.875310480595 0.112123101950 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.338147550821 0.829213023186 -0.445041537285 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn 0.098854996264 0.784844338894 -0.611757338047 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn 0.920910716057 0.206858113408 -0.330353140831 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.688472807407 0.029249710962 -0.724672079086 +vn 0.646868646145 -0.754471123219 -0.111059591174 +vn 0.785724759102 -0.618380904198 -0.015544304624 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.795008242130 -0.004372249823 0.606582820415 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn -0.047386102378 0.731830000877 -0.679837763309 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn 0.473639577627 -0.082474462688 -0.876848638058 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.421069711447 -0.883927404881 -0.203402578831 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.777829766273 0.488033413887 0.395985156298 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.001963527407 0.702904462814 -0.711281538010 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn -0.025579690933 0.776846170425 -0.629170656204 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn 0.276719152927 -0.113191716373 -0.954261064529 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.322021692991 -0.110789388418 -0.940227508545 +vn 0.412459701300 -0.882799863815 -0.224814176559 +vn 0.308892786503 -0.861497938633 -0.402996987104 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn 0.035827055573 0.207518517971 0.977574825287 +vn -0.326971471310 0.053588666022 0.943513572216 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.326971471310 0.053588666022 0.943513572216 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.035827055573 0.207518517971 0.977574825287 +vn -0.050434809178 0.689648866653 0.722385466099 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.960114955902 -0.244047343731 0.136455714703 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.910519480705 0.385565638542 -0.149309948087 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.275407165289 0.928095698357 -0.250577956438 +vn -0.745011448860 0.632212758064 0.212755620480 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.470382779837 0.875310480595 0.112123101950 +vn -0.485284209251 0.621354460716 0.615156769753 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.547749757767 0.077166840434 0.833075940609 +vn -0.536564469337 0.119927458465 0.835293948650 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn 0.102821968496 -0.748076140881 0.655598759651 +vn -0.198560431600 -0.441530883312 0.874999582767 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn 0.306575775146 -0.907850980759 0.286038279533 +vn -0.384179323912 -0.683712661266 0.620437920094 +vn -0.647293269634 -0.752994298935 -0.118367962539 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.773331344128 -0.181563839316 0.607448101044 +vn -0.665392875671 -0.152734041214 0.730701446533 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.653835475445 0.756583929062 0.008939243853 +vn -0.777829766273 0.488033413887 0.395985156298 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.050434809178 0.689648866653 0.722385466099 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.253899276257 0.958160519600 -0.132149979472 +vn -0.436078906059 0.732999444008 0.522060334682 +vn -0.050434809178 0.689648866653 0.722385466099 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.001197829144 0.204163551331 0.978936076164 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.170828253031 0.950032889843 0.261256903410 +vn -0.050434809178 0.689648866653 0.722385466099 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.001197829144 0.204163551331 0.978936076164 +vn 0.035827055573 0.207518517971 0.977574825287 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.178257793188 -0.751887738705 0.634735345840 +vn 0.251319766045 -0.339376091957 0.906455874443 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn -0.068334780633 -0.860537767410 0.504782259464 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn 0.192031323910 -0.934470832348 0.299813717604 +vn -0.034413214773 -0.623692095280 0.780912220478 +vn -0.449355930090 -0.622634947300 0.640628576279 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn -0.337525874376 0.930810749531 0.140241369605 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn -0.337525874376 0.930810749531 0.140241369605 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.125956013799 0.815335929394 -0.565121591091 +vn 0.615988314152 0.720898389816 -0.317590743303 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn 0.924420893192 0.053604725748 -0.377587854862 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.760992348194 -0.645550906658 -0.064457304776 +vn 0.461613714695 -0.874826371670 -0.146940901875 +vn 0.556747496128 -0.079760462046 -0.826843678951 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.067655861378 0.094781979918 0.993196368217 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.004601359833 0.522861719131 0.852405130863 +vn -0.538786590099 0.230709373951 0.810235857964 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.623558640480 -0.671979129314 0.399523109198 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.429289430380 0.010662646964 0.903104007244 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn 0.022328991443 -0.807272195816 0.589756786823 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.429289430380 0.010662646964 0.903104007244 +vn -0.429289430380 0.010662646964 0.903104007244 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.590204536915 0.644762694836 0.485736191273 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.423879355192 0.904768526554 0.041475951672 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.337525874376 0.930810749531 0.140241369605 +vn -0.590204536915 0.644762694836 0.485736191273 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.959200203419 0.162117242813 0.231631040573 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.423879355192 0.904768526554 0.041475951672 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.437515467405 -0.595975279808 0.673345148563 +vn 0.030373126268 -0.405382573605 0.913642406464 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.406600266695 -0.599074244499 0.689772665501 +vn -0.425275236368 -0.307458400726 0.851240456104 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.538786590099 0.230709373951 0.810235857964 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.519624173641 -0.096402786672 0.848938882351 +vn -0.498360216618 -0.011345745064 0.866895854473 +vn -0.538786590099 0.230709373951 0.810235857964 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.313855469227 0.815999209881 0.485427707434 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.590204536915 0.644762694836 0.485736191273 +vn -0.538786590099 0.230709373951 0.810235857964 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.736156404018 0.144710719585 0.661159992218 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.313855469227 0.815999209881 0.485427707434 +vn 0.004601359833 0.522861719131 0.852405130863 +vn 0.067655861378 0.094781979918 0.993196368217 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.285551220179 0.869218170643 -0.403633773327 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.274834781885 0.908923387527 -0.313566774130 +vn 0.952248871326 0.304680645466 0.019794657826 +vn 0.807383418083 -0.537694036961 0.242934510112 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.757777929306 -0.368886232376 0.538233757019 +vn 0.934458494186 0.322290331125 0.151381283998 +vn 0.952248871326 0.304680645466 0.019794657826 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.061535436660 -0.933928251266 0.352124094963 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.253473311663 -0.772156655788 0.582688093185 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.623009026051 0.664530754089 -0.412624120712 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.581666529179 0.743011713028 -0.331055343151 +vn -0.996103525162 -0.017238132656 0.086490817368 +vn -0.945911884308 -0.323958635330 -0.017364645377 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.807789504528 -0.443095922470 -0.388770043850 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.728950142860 -0.327087074518 -0.601369857788 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.618258059025 0.073811292648 -0.782501697540 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.458354860544 0.598978698254 -0.656608939171 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.979369640350 0.134773358703 -0.150569871068 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.495899587870 0.820320844650 -0.284881204367 +vn -0.776327371597 0.532938063145 -0.336589962244 +vn -0.890372574329 0.080532528460 -0.448052674532 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.711501002312 -0.684330821037 -0.159554719925 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.706272184849 -0.603011190891 -0.370887011290 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.723380565643 -0.383380830288 -0.574229657650 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.775762677193 -0.188441053033 -0.602231025696 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.906276762486 -0.404754072428 -0.121805310249 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.984793066978 -0.172015860677 -0.024353824556 +vn -0.909171402454 -0.153872847557 -0.386950284243 +vn -0.845550715923 -0.427685022354 -0.319577127695 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.796449840069 -0.575604200363 -0.185330703855 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.701268851757 -0.693833172321 -0.163760513067 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.670601308346 -0.706431031227 -0.226382493973 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.706466317177 -0.613281667233 -0.353257507086 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.893056094646 -0.445511609316 0.063009694219 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.788561046124 -0.477070689201 -0.388040006161 +vn -0.888054728508 -0.403473645449 -0.220381125808 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn 0.103919081390 -0.905755519867 0.410862177610 +vn -0.228597149253 -0.963452041149 0.139655098319 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn -0.064416959882 -0.989249408245 -0.131286263466 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.400125116110 -0.844774186611 -0.355325788260 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.656732261181 -0.623147845268 -0.424722850323 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.667753398418 -0.732233583927 0.133938133717 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.846791744232 -0.483428299427 -0.221902847290 +vn -0.638963222504 -0.764738500118 -0.083072558045 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn -0.899286210537 -0.416854232550 0.132351279259 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.858372688293 -0.511320352554 -0.041807256639 +vn -0.884231448174 -0.461644798517 0.070843711495 +vn -0.298239111900 -0.830386161804 0.470650851727 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.343221575022 0.333233237267 0.878154039383 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.449752897024 0.215031251311 0.866881728172 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.518878757954 0.427382588387 0.740343809128 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.714198350906 -0.144104629755 -0.684948563576 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.765450656414 0.598935127258 0.235291317105 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.078894823790 0.316832482815 0.945194602013 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.720277249813 0.069460451603 0.690199911594 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.554942369461 0.176653087139 0.812916159630 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.554942369461 0.176653087139 0.812916159630 +vn -0.554942369461 0.176653087139 0.812916159630 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.301544338465 0.953448176384 0.002751463326 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn -0.476167112589 -0.808386087418 0.346087813377 +vn -0.621210396290 -0.516742289066 0.589130699635 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.998421430588 -0.004686263390 0.055970139802 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.509444832802 0.780633270741 -0.362046450377 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.504871308804 -0.590458869934 0.629653275013 +vn 0.162469699979 -0.467619746923 0.868870139122 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.613426685333 0.657508313656 -0.437481969595 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.896798372269 0.441279530525 -0.032017208636 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.720277249813 0.069460451603 0.690199911594 +vn 0.807750463486 0.575951337814 0.125774711370 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.826578557491 0.386441767216 0.409182965755 +vn 0.581056177616 0.793762326241 0.179764077067 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.301544338465 0.953448176384 0.002751463326 +vn 0.369211822748 0.922699332237 -0.110943920910 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.646847009659 0.741001725197 -0.180292502046 +vn -0.184017047286 0.939944207668 -0.287476360798 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.099195800722 0.803823649883 -0.586538732052 +vn 0.254744201899 0.720660746098 -0.644789516926 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn -0.573264300823 -0.621842443943 0.533554136753 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.852300584316 -0.522522985935 -0.023525990546 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn -0.005631436128 0.999072909355 0.042680554092 +vn -0.005631436128 0.999072909355 0.042680554092 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn -0.005631436128 0.999072909355 0.042680554092 +vn 0.187485709786 0.938560783863 0.289746075869 +vn 0.187485709786 0.938560783863 0.289746075869 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn -0.002327257767 -0.462118774652 0.886815011501 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn 0.793979823589 0.261099308729 0.549020230770 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.340674638748 -0.929889678955 0.138729795814 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.937267899513 -0.270961970091 -0.219336494803 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.513688981533 -0.684592545033 0.517162144184 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn -0.363146990538 -0.909030199051 0.204422011971 +vn -0.272706478834 -0.959422051907 0.071697592735 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.825297355652 -0.437561929226 -0.356964796782 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.852417647839 -0.424412041903 -0.305382728577 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn 0.229095175862 0.971845209599 0.055066000670 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.298334419727 0.949311316013 0.099018156528 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.229095175862 0.971845209599 0.055066000670 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.388242930174 -0.640620768070 0.662474453449 +vn 0.441654533148 -0.722736120224 0.531595468521 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.444323122501 0.850608170033 -0.281145304441 +vn 0.434042304754 0.843485772610 -0.316447526217 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.933602452278 0.183274835348 0.307890951633 +vn 0.816090106964 0.577879071236 -0.007257726509 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.855770230293 -0.002302488778 0.517350971699 +vn 0.668103694916 0.661955296993 0.339783221483 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.038500741124 0.970658123493 0.237361595035 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.510277152061 0.789386153221 0.341301500797 +vn 0.038500741124 0.970658123493 0.237361595035 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.038500741124 0.970658123493 0.237361595035 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.298334419727 0.949311316013 0.099018156528 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn -0.593913555145 0.612360298634 -0.521806061268 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.806880056858 0.269844979048 -0.525479078293 +vn -0.333856552839 0.903271317482 -0.269519507885 +vn 0.002065459266 0.795183241367 -0.606365740299 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.984832644463 0.126232400537 -0.119038090110 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.195449680090 0.978367269039 0.067800879478 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.740837633610 0.595236599445 -0.311212152243 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.195449680090 0.978367269039 0.067800879478 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.793979823589 0.261099308729 0.549020230770 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.117484591901 0.535072982311 0.836596846581 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.735706865788 -0.054184451699 0.675129234791 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.152383819222 -0.058323230594 0.986598968506 +vn 0.117484591901 0.535072982311 0.836596846581 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.580564439297 0.618157505989 0.529930353165 +vn -0.005631436128 0.999072909355 0.042680554092 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.702350616455 0.688323199749 -0.181424275041 +vn -0.101965256035 0.950193762779 -0.294507831335 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn -0.273582547903 0.913477420807 -0.301183640957 +vn 0.032985683531 0.980769813061 -0.192360520363 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.309013634920 0.944480478764 -0.111656844616 +vn 0.167077019811 0.982238590717 -0.085397034883 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.187485709786 0.938560783863 0.289746075869 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.646426260471 0.607408761978 0.461722522974 +vn 0.360706925392 0.930654346943 -0.061424735934 +vn 0.187485709786 0.938560783863 0.289746075869 +vn -0.005631436128 0.999072909355 0.042680554092 +vn -0.580564439297 0.618157505989 0.529930353165 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.117484591901 0.535072982311 0.836596846581 +vn 0.187485709786 0.938560783863 0.289746075869 +vn -0.005631436128 0.999072909355 0.042680554092 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.222899302840 -0.961414158344 0.161241352558 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.278032571077 -0.915405213833 -0.291086286306 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.605843842030 -0.687134027481 -0.400998830795 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.631184875965 -0.605723857880 -0.484462857246 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.644962370396 0.058819733560 -0.761947333813 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.717515647411 -0.506692528725 -0.477947682142 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.685438394547 -0.309446930885 -0.659103035927 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.529830276966 0.180707767606 -0.828628122807 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.659071147442 -0.200914278626 -0.724747300148 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn 0.071874260902 0.922927081585 0.378205835819 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.101169690490 0.512140154839 0.852922737598 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.071874260902 0.922927081585 0.378205835819 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn 0.125691637397 0.965929806232 0.226232767105 +vn 0.071874260902 0.922927081585 0.378205835819 +vn 0.071874260902 0.922927081585 0.378205835819 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn -0.179032042623 0.870336353779 -0.458761513233 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.496197491884 0.338221609592 -0.799621284008 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.408649384975 0.500134229660 -0.763460159302 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn -0.078894823790 0.316832482815 0.945194602013 +vn -0.078894823790 0.316832482815 0.945194602013 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.674920856953 0.632537782192 -0.379970818758 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.707616925240 0.585469484329 -0.395605623722 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.939780056477 0.338753521442 0.045381970704 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.857936024666 -0.122563391924 0.498922824860 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.371329933405 -0.353956162930 0.858387529850 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn 0.075631655753 -0.076423481107 0.994202852249 +vn -0.078894823790 0.316832482815 0.945194602013 +vn 0.105647958815 0.477384954691 0.872319936752 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn 0.071874260902 0.922927081585 0.378205835819 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.581009745598 0.524481356144 -0.622372090816 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.284967243671 0.950918138027 -0.120616540313 +vn -0.383206188679 0.894132435322 0.231689810753 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn 0.192059397697 0.733371317387 -0.652134716511 +vn -0.148294940591 0.763890028000 0.628076970577 +vn 0.071874260902 0.922927081585 0.378205835819 +vn 0.105647958815 0.477384954691 0.872319936752 +vn 0.105647958815 0.477384954691 0.872319936752 +vn -0.078894823790 0.316832482815 0.945194602013 +vn -0.148294940591 0.763890028000 0.628076970577 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.299237340689 0.679699480534 -0.669675767422 +vn -0.577740788460 0.755005121231 -0.310133606195 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.716520488262 0.652290821075 -0.247214660048 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.668927371502 0.054616473615 0.741318523884 +vn 0.575854957104 -0.556808650494 0.598627746105 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.259312212467 -0.961311340332 0.092938996851 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.586589038372 -0.130760043859 0.799259126186 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.542366027832 -0.667315959930 0.510419964790 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.067944653332 -0.146262273192 0.986909747124 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.220938414335 0.246594354510 0.943598151207 +vn 0.371117204428 0.216821014881 0.902917861938 +vn 0.235978275537 -0.027912126854 0.971357405186 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.381070137024 0.377225160599 0.844089269638 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.447196930647 0.457334220409 0.768674373627 +vn 0.343221575022 0.333233237267 0.878154039383 +vn 0.298508673906 0.235164701939 0.924981176853 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.386256456375 0.060981024057 0.920373439789 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.792960882187 -0.082992456853 0.603593647480 +vn 0.389172941446 -0.187152817845 0.901952445507 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.406082540751 -0.913307428360 0.031089453027 +vn 0.616677582264 -0.787093162537 0.013895100914 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.636817932129 -0.665135920048 0.389945089817 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.764927029610 -0.576102018356 0.288085192442 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.651197373867 -0.295929104090 0.698833286762 +vn 0.819841921329 -0.267875581980 0.506065070629 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.484686046839 0.057347863913 0.872806191444 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.722315967083 0.014853472821 0.691403687000 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.412116557360 0.192709788680 0.890518307686 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.685664176941 0.024288894609 0.727512657642 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.709150254726 0.064871802926 0.702066600323 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.749943137169 -0.607590794563 0.261569708586 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.833654463291 -0.165826693177 0.526803314686 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.777859270573 0.059331193566 0.625631511211 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.856723487377 0.313828945160 0.409311980009 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.565619111061 0.815543174744 -0.122328855097 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn -0.000058030513 0.758348703384 -0.651849091053 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.334304481745 0.357836514711 -0.871890783310 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.556180357933 -0.108734130859 -0.823917686939 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.412349730730 -0.020164160058 -0.910802423954 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.541802704334 -0.795597314835 0.271062254906 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.684188246727 -0.314334392548 0.658088386059 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.612721860409 0.027013452724 0.789836823940 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.523797929287 0.432407170534 0.733934402466 +vn 0.260491907597 0.307280063629 0.915272057056 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.330873250961 0.872498035431 0.359541505575 +vn 0.162017181516 0.796604990959 0.582383811474 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn 0.014589162543 0.951842546463 -0.306240051985 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.328589290380 0.516683042049 -0.790612220764 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.394009530544 -0.007915191352 -0.919072270393 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn 0.710684239864 -0.017598621547 0.703290998936 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.868372321129 0.207240670919 0.450533896685 +vn 0.067035764456 -0.147402390838 0.986802279949 +vn 0.283248275518 -0.164805412292 0.944780170918 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.941432178020 0.205026820302 0.267711549997 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.765450656414 0.598935127258 0.235291317105 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn 0.044693116099 0.737179398537 -0.674217343330 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.462693333626 0.681148767471 -0.567407488823 +vn -0.791678369045 0.572285056114 -0.213857769966 +vn -0.653196692467 0.687323570251 -0.317679673433 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn -0.000500970287 0.150257885456 0.988646686077 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.000500970287 0.150257885456 0.988646686077 +vn -0.020890446380 0.525199234486 0.850722849369 +vn 0.033992055804 0.651784360409 0.757642209530 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.094890594482 0.167634546757 0.981271862984 +vn -0.000500970287 0.150257885456 0.988646686077 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.212111368775 0.931484699249 0.295541882515 +vn 0.033992055804 0.651784360409 0.757642209530 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.020890446380 0.525199234486 0.850722849369 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.203145816922 0.789853513241 0.578673660755 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.494061529636 0.865195631981 0.085671991110 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.718650877476 0.596940636635 -0.356655031443 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.131719857454 -0.939497470856 -0.316218942404 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn 0.054139081389 -0.946674823761 -0.317609339952 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.417767822742 -0.763937056065 -0.491803050041 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.633862555027 -0.426885992289 -0.644970238209 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.564986348152 -0.593238472939 -0.573461830616 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.260545551777 -0.813256382942 -0.520317316055 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn 0.388792097569 -0.902842164040 -0.183621153235 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn 0.194966942072 -0.890786707401 -0.410471647978 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn 0.042187642306 -0.766220450401 -0.641191422939 +vn -0.072411671281 -0.856675744057 -0.510747730732 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.236149817705 -0.424875795841 -0.873907208443 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn -0.074641257524 -0.569141447544 -0.818844735622 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.530624270439 -0.375058025122 -0.760111391544 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.357876986265 -0.306289374828 -0.882105946541 +vn -0.314885556698 -0.595676243305 -0.738929569721 +vn -0.444026708603 -0.606746494770 -0.659317076206 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.495413959026 0.088413864374 -0.864145815372 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.518924534321 0.789362072945 -0.328062266111 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.403777748346 0.675936877728 -0.616500496864 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.212111368775 0.931484699249 0.295541882515 +vn 0.033992055804 0.651784360409 0.757642209530 +vn -0.212111368775 0.931484699249 0.295541882515 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn -0.057846810669 0.996845066547 -0.054347090423 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.033992055804 0.651784360409 0.757642209530 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.033992055804 0.651784360409 0.757642209530 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.162017181516 0.796604990959 0.582383811474 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.217132925987 -0.699617862701 0.680726230145 +vn 0.345870345831 -0.507937014103 0.788906633854 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn 0.194033831358 -0.975260198116 0.105917148292 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn 0.148078888655 -0.966142833233 0.211283400655 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.161389231682 -0.826426625252 -0.539418697357 +vn -0.095659404993 -0.891003251076 -0.443804621696 +vn -0.394770026207 -0.408056885004 -0.823192656040 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.722775518894 0.127099156380 -0.679294764996 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.558745026588 -0.260360956192 -0.787411093712 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.322938174009 -0.703057765961 -0.633577704430 +vn -0.371036648750 -0.578186392784 -0.726658284664 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.135474219918 -0.988358557224 -0.069239638746 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.166938528419 -0.919655323029 -0.355479389429 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.211538925767 -0.861231863499 0.462094068527 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.106166861951 -0.985075116158 0.135482907295 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn 0.020051987842 -0.112118013203 0.993492543697 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn 0.079771168530 -0.496181964874 0.864546120167 +vn -0.042744558305 -0.808862030506 0.586442768574 +vn 0.043110653758 -0.307953089476 0.950424313545 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn -0.638447046280 0.245981469750 -0.729299962521 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.649896085262 -0.004399633035 -0.760010361671 +vn -0.535104215145 -0.309753090143 -0.785949409008 +vn -0.451521098614 -0.345670461655 -0.822581708431 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn 0.094890594482 0.167634546757 0.981271862984 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.260491907597 0.307280063629 0.915272057056 +vn 0.289737731218 -0.101735204458 0.951683759689 +vn 0.129637911916 -0.209326177835 0.969214379787 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.977375864983 -0.182302713394 -0.107247889042 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.932448983192 -0.323441475630 0.161010980606 +vn -0.933986306190 -0.356039702892 -0.030087741092 +vn -0.863622725010 -0.395356804132 -0.312807887793 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.953337550163 -0.167185232043 0.251389354467 +vn -0.551249742508 -0.140232846141 0.822470963001 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.707793414593 -0.092283651233 0.700365781784 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.771496355534 -0.520169913769 0.366355866194 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.921395957470 -0.096049144864 0.376568794250 +vn 0.915147721767 -0.341821610928 -0.213688179851 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.843312978745 -0.508717417717 -0.173291251063 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn 0.635089933872 -0.717878699303 -0.285150736570 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn 0.376745164394 -0.480174839497 -0.792145967484 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn 0.338396072388 -0.505504190922 -0.793696165085 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.128155156970 -0.402803808451 -0.906270027161 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.141834318638 -0.356789201498 -0.923355042934 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.617432177067 -0.286321341991 -0.732664763927 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.587534666061 -0.195610851049 -0.785200238228 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.925773084164 -0.217750370502 -0.309077620506 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.942502677441 -0.131082609296 0.307418376207 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.916307866573 -0.152069538832 -0.370479047298 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn 0.478567808867 -0.553991734982 0.681223928928 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn 0.200163364410 -0.734465181828 0.648456275463 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.019374400377 -0.340837627649 0.939922511578 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.175170764327 -0.422769248486 0.889146447182 +vn -0.563060462475 -0.168180093169 0.809121966362 +vn -0.551818788052 -0.097078174353 0.828294575214 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.922188758850 -0.076360240579 0.379126608372 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.790964484215 -0.047528445721 0.610013246536 +vn -0.809697628021 -0.208559572697 0.548536777496 +vn -0.989886045456 -0.102725066245 0.097842380404 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.969465434551 -0.233353525400 0.075384795666 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.657921433449 -0.251068294048 0.710002899170 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn 0.022503187880 -0.168173655868 0.985500514507 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.626895606518 -0.109646342695 0.771349191666 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.955945372581 -0.075195699930 0.283750057220 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.965460717678 -0.065064646304 0.252293825150 +vn 0.976103127003 -0.056135118008 0.209932267666 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.959917187691 -0.043896026909 -0.276825070381 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.916344642639 -0.289950251579 -0.276118308306 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn 0.639318466187 0.016674445942 -0.768761277199 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn 0.527624547482 -0.341483384371 -0.777818381786 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.015542259440 -0.012424598448 -0.999801993370 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.065956912935 -0.328755855560 -0.942108929157 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn -0.593472301960 -0.092204272747 -0.799555480480 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.886553704739 -0.150430575013 -0.437485098839 +vn -0.891806840897 -0.253316342831 -0.374848484993 +vn -0.597554683685 -0.308073014021 -0.740283310413 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.603337705135 -0.321985483170 0.729595065117 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.918845653534 -0.108316130936 0.379460453987 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.863250315189 -0.240368023515 0.443871766329 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.980078399181 0.178462892771 -0.087162509561 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.981968581676 -0.106181085110 -0.156407564878 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.636526405811 0.364853173494 -0.679497122765 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.628715753555 0.022276135162 -0.777316093445 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.084422126412 0.381982415915 -0.920305550098 +vn 0.163179978728 0.071530185640 -0.983999848366 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.477106243372 0.354926079512 -0.803988277912 +vn -0.362230628729 0.031117305160 -0.931568920612 +vn -0.891922414303 -0.121970690787 -0.435428053141 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.924370706081 0.140413299203 -0.354715228081 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.938400447369 0.027688471600 -0.344438642263 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.971519231796 -0.181915670633 0.151845633984 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.956004738808 -0.284389942884 0.071953646839 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.779256761074 -0.415031522512 0.469582498074 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn -0.763228416443 -0.461620450020 0.452093988657 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn 0.652728021145 -0.370803534985 0.660644292831 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn 0.580956161022 -0.315899401903 0.750131666660 +vn -0.181248873472 -0.456907838583 0.870852470398 +vn -0.141817405820 -0.538776338100 0.830426335335 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.608893454075 0.235913068056 0.757359743118 +vn 0.593855559826 0.019980316982 0.804323554039 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn 0.113157883286 -0.147927060723 0.982503354549 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.466343373060 -0.015833530575 0.884462058544 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn 0.300583481789 -0.145427584648 0.942602992058 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.376915872097 0.132242649794 0.916758596897 +vn 0.066894985735 -0.120529606938 0.990453243256 +vn -0.088382758200 -0.339686036110 0.936376988888 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.656117200851 -0.752742469311 0.053749088198 +vn 0.656117200851 -0.752742469311 0.053749088198 +vn 0.652370274067 -0.700718224049 -0.288802653551 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.656117200851 -0.752742469311 0.053749088198 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.201453700662 -0.832577824593 0.515975356102 +vn 0.321534842253 -0.887416303158 0.330314517021 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.961623728275 0.054777454585 0.268847882748 +vn 0.717947840691 -0.072925940156 0.692266345024 +vn 0.717947840691 -0.072925940156 0.692266345024 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.965605020523 0.107465490699 0.236765861511 +vn -0.068652406335 0.974390566349 0.214125752449 +vn 0.442601650953 0.886409521103 0.135580167174 +vn 0.400886356831 0.901594340801 0.162535563111 +vn 0.400886356831 0.901594340801 0.162535563111 +vn -0.147310256958 0.958264529705 0.245007723570 +vn -0.068652406335 0.974390566349 0.214125752449 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.979799330235 0.116351984441 -0.162651434541 +vn 0.979799330235 0.116351984441 -0.162651434541 +vn 0.961623728275 0.054777454585 0.268847882748 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.529358327389 0.845940232277 -0.064536072314 +vn 0.680514693260 0.732540011406 -0.016878856346 +vn 0.400886356831 0.901594340801 0.162535563111 +vn 0.400886356831 0.901594340801 0.162535563111 +vn 0.442601650953 0.886409521103 0.135580167174 +vn 0.529358327389 0.845940232277 -0.064536072314 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.698699057102 -0.088728033006 -0.709892213345 +vn 0.698699057102 -0.088728033006 -0.709892213345 +vn 0.979799330235 0.116351984441 -0.162651434541 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn -0.048381622881 0.989867806435 0.133495286107 +vn -0.068652406335 0.974390566349 0.214125752449 +vn -0.147310256958 0.958264529705 0.245007723570 +vn -0.147310256958 0.958264529705 0.245007723570 +vn -0.040402501822 0.989431560040 0.139258161187 +vn -0.048381622881 0.989867806435 0.133495286107 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.655080139637 -0.018082045019 -0.755343019962 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.938433587551 -0.109255589545 -0.327727943659 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.716325759888 0.585582971573 0.379433780909 +vn -0.616649746895 0.675030350685 0.405064314604 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.932176113129 -0.021262366325 -0.361380100250 +vn -0.938433587551 -0.109255589545 -0.327727943659 +vn -0.716325759888 0.585582971573 0.379433780909 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.680016100407 0.152828097343 0.717092514038 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.717058062553 0.043724697083 0.695640623569 +vn 0.717947840691 -0.072925940156 0.692266345024 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn 0.264956355095 -0.115032657981 0.957374334335 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn 0.296417653561 -0.129989758134 0.946170806885 +vn -0.067382998765 -0.241788670421 0.967986464500 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.965605020523 0.107465490699 0.236765861511 +vn 0.966316044331 0.170746937394 0.192558467388 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.951884567738 0.018304115161 -0.305909752846 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.611862540245 -0.209730833769 -0.762651443481 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.925466060638 -0.019112786278 -0.378348082304 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.463319748640 -0.284106910229 -0.839415311813 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.873224854469 0.040406849235 -0.485639452934 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.217509955168 -0.925485610962 0.310106158257 +vn 0.208270162344 -0.874368071556 0.438296735287 +vn 0.208270162344 -0.874368071556 0.438296735287 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn -0.930489718914 -0.261996328831 -0.256021112204 +vn -0.933810532093 -0.240890204906 -0.264518111944 +vn -0.933810532093 -0.240890204906 -0.264518111944 +vn -0.999982237816 -0.005035636947 0.003187689232 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.217509955168 -0.925485610962 0.310106158257 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.452018469572 -0.883442044258 -0.123326830566 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.421064645052 -0.893715202808 0.154847532511 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.967172682285 0.241761222482 0.078284777701 +vn 0.634496629238 0.241281628609 0.734300494194 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.967172682285 0.241761222482 0.078284777701 +vn -0.333036005497 -0.132622703910 -0.933540701866 +vn -0.344990402460 -0.115646079183 -0.931454539299 +vn -0.279096722603 -0.206124126911 -0.937879443169 +vn -0.279096722603 -0.206124126911 -0.937879443169 +vn -0.255546450615 -0.236742943525 -0.937362670898 +vn -0.333036005497 -0.132622703910 -0.933540701866 +vn 0.316477656364 0.365814924240 -0.875226438046 +vn 0.385443925858 0.300371497869 -0.872473478317 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.265394568443 0.762436449528 -0.590132534504 +vn 0.316477656364 0.365814924240 -0.875226438046 +vn -0.836668133736 0.327173054218 0.439254164696 +vn -0.817613303661 0.347829401493 0.458828032017 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn -0.999865949154 -0.007872974500 -0.014355270192 +vn -0.999982237816 -0.005035636947 0.003187689232 +vn -0.836668133736 0.327173054218 0.439254164696 +vn -0.817613303661 0.347829401493 0.458828032017 +vn -0.836668133736 0.327173054218 0.439254164696 +vn -0.393941193819 0.551313161850 0.735434651375 +vn -0.393941193819 0.551313161850 0.735434651375 +vn -0.394177705050 0.541026473045 0.742909312248 +vn -0.817613303661 0.347829401493 0.458828032017 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.208270162344 -0.874368071556 0.438296735287 +vn 0.201453700662 -0.832577824593 0.515975356102 +vn 0.201453700662 -0.832577824593 0.515975356102 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn -0.143444925547 -0.679574370384 -0.719445765018 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.066875919700 -0.211223438382 -0.975147306919 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.825137555599 -0.039393767715 -0.563556671143 +vn -0.399136632681 -0.109241187572 -0.910360515118 +vn -0.238736808300 0.966642439365 -0.092774368823 +vn -0.221692368388 0.969382524490 -0.105593815446 +vn -0.131967604160 0.986462950706 -0.097341716290 +vn -0.131967604160 0.986462950706 -0.097341716290 +vn -0.131907835603 0.985628366470 -0.105532377958 +vn -0.238736808300 0.966642439365 -0.092774368823 +vn -0.221692368388 0.969382524490 -0.105593815446 +vn -0.238736808300 0.966642439365 -0.092774368823 +vn -0.191518172622 0.977899730206 0.083862185478 +vn -0.191518172622 0.977899730206 0.083862185478 +vn -0.226836472750 0.971370637417 0.070599377155 +vn -0.221692368388 0.969382524490 -0.105593815446 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.996581256390 -0.016104307026 -0.081033818424 +vn -0.996581256390 -0.016104307026 -0.081033818424 +vn -0.825137555599 -0.039393767715 -0.563556671143 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.800368309021 -0.110980175436 -0.589146792889 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.368902295828 -0.176557660103 -0.912545084953 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.036762826145 -0.407817989588 -0.912322878838 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn -0.018286168575 -0.241975441575 -0.970110058784 +vn -0.066875919700 -0.211223438382 -0.975147306919 +vn -0.066875919700 -0.211223438382 -0.975147306919 +vn 0.162009149790 -0.252556264400 -0.953922629356 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.143724322319 -0.430487692356 -0.891080081463 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.233708530664 -0.381010770798 -0.894545197487 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.162009149790 -0.252556264400 -0.953922629356 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.158448517323 -0.275207310915 -0.948237836361 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn 0.078429423273 0.979791224003 -0.184005334973 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.215006738901 0.976588487625 -0.006861140486 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn -0.131907835603 0.985628366470 -0.105532377958 +vn -0.131967604160 0.986462950706 -0.097341716290 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.049535784870 0.983003556728 -0.176777198911 +vn 0.078429423273 0.979791224003 -0.184005334973 +vn -0.131907835603 0.985628366470 -0.105532377958 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.057303033769 -0.768139362335 -0.637713313103 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn 0.882891595364 -0.448917657137 -0.137750983238 +vn 0.624225676060 -0.733383476734 -0.269241482019 +vn 0.683579862118 -0.686875283718 -0.246821716428 +vn 0.683579862118 -0.686875283718 -0.246821716428 +vn 0.913559436798 -0.390938848257 -0.112142503262 +vn 0.882891595364 -0.448917657137 -0.137750983238 +vn -0.735097944736 -0.411521434784 -0.538777410984 +vn -0.919971227646 -0.315933138132 -0.232032716274 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.735097944736 -0.411521434784 -0.538777410984 +vn -0.299304544926 0.655579268932 -0.693276703358 +vn -0.299391537905 0.646304905415 -0.701893627644 +vn -0.426549911499 0.661332190037 -0.617004811764 +vn -0.426549911499 0.661332190037 -0.617004811764 +vn -0.434841871262 0.650471568108 -0.622735321522 +vn -0.299304544926 0.655579268932 -0.693276703358 +vn -0.299391537905 0.646304905415 -0.701893627644 +vn -0.299304544926 0.655579268932 -0.693276703358 +vn -0.203423932195 0.523596465588 -0.827324271202 +vn -0.203423932195 0.523596465588 -0.827324271202 +vn -0.206277325749 0.496593266726 -0.843116104603 +vn -0.299391537905 0.646304905415 -0.701893627644 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.194162026048 -0.710348606110 -0.676539719105 +vn -0.194162026048 -0.710348606110 -0.676539719105 +vn -0.735097944736 -0.411521434784 -0.538777410984 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn 0.167258366942 -0.947917759418 0.271065652370 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn 0.015772189945 -0.661784946918 0.749527812004 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.711521089077 -0.668513596058 0.216396108270 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.919971227646 -0.315933138132 -0.232032716274 +vn -0.711521089077 -0.668513596058 0.216396108270 +vn -0.283012300730 0.166665807366 0.944524526596 +vn -0.275574177504 0.178359404206 0.944588184357 +vn -0.309776514769 0.123586989939 0.942743241787 +vn -0.309776514769 0.123586989939 0.942743241787 +vn -0.318132579327 0.109800979495 0.941666305065 +vn -0.283012300730 0.166665807366 0.944524526596 +vn -0.820068120956 0.569231271744 0.058856066316 +vn -0.864802479744 0.500968754292 0.033867362887 +vn -0.670427143574 0.731589615345 0.123709522188 +vn -0.670427143574 0.731589615345 0.123709522188 +vn -0.609832704067 0.779186606407 0.144818082452 +vn -0.820068120956 0.569231271744 0.058856066316 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.711521089077 -0.668513596058 0.216396108270 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.133838012815 -0.990629673004 0.027208203450 +vn -0.441047191620 -0.897233605385 0.021195763722 +vn 0.676929712296 0.735970973969 0.010624704883 +vn 0.462099343538 0.855638921261 -0.233122825623 +vn 0.498349219561 0.832625806332 -0.241624265909 +vn 0.498349219561 0.832625806332 -0.241624265909 +vn 0.730528593063 0.682668983936 0.017058826983 +vn 0.676929712296 0.735970973969 0.010624704883 +vn -0.394177705050 0.541026473045 0.742909312248 +vn -0.393941193819 0.551313161850 0.735434651375 +vn -0.066927298903 0.552506208420 0.830817461014 +vn -0.066927298903 0.552506208420 0.830817461014 +vn -0.067695811391 0.526292204857 0.847604751587 +vn -0.394177705050 0.541026473045 0.742909312248 +vn 0.462099343538 0.855638921261 -0.233122825623 +vn 0.265394568443 0.762436449528 -0.590132534504 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.258136868477 0.673559129238 -0.692591845989 +vn 0.498349219561 0.832625806332 -0.241624265909 +vn 0.462099343538 0.855638921261 -0.233122825623 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn 0.452018469572 -0.883442044258 -0.123326830566 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.652370274067 -0.700718224049 -0.288802653551 +vn 0.452018469572 -0.883442044258 -0.123326830566 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.222474575043 -0.822602808475 0.523287415504 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn 0.030194981024 -0.298345863819 0.953980088234 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn 0.146515324712 -0.276555955410 0.949763178825 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.334040522575 -0.736586928368 0.588095724583 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.202640861273 -0.541228234768 0.816093564034 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.281598299742 -0.578111886978 0.765825748444 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.506272614002 -0.212398335338 0.835807979107 +vn -0.700267732143 -0.161503911018 0.695371508598 +vn -0.700267732143 -0.161503911018 0.695371508598 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.052583612502 0.985693454742 0.160135433078 +vn -0.018820434809 0.989357590675 0.144282087684 +vn -0.018820434809 0.989357590675 0.144282087684 +vn -0.026022652164 0.988108336926 0.151541069150 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.499433219433 0.162840068340 -0.850911021233 +vn 0.265916287899 0.192993134260 -0.944479823112 +vn 0.262357443571 0.201877102256 -0.943617641926 +vn 0.262357443571 0.201877102256 -0.943617641926 +vn 0.493813991547 0.168256774545 -0.853133857250 +vn 0.499433219433 0.162840068340 -0.850911021233 +vn 0.265916287899 0.192993134260 -0.944479823112 +vn -0.020402621478 0.125429570675 -0.991892695427 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn 0.262357443571 0.201877102256 -0.943617641926 +vn 0.265916287899 0.192993134260 -0.944479823112 +vn -0.333152711391 0.173149183393 -0.926837980747 +vn -0.336778044701 0.156496420503 -0.928487718105 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn -0.041227888316 0.133673071861 -0.990167558193 +vn -0.020402621478 0.125429570675 -0.991892695427 +vn -0.333152711391 0.173149183393 -0.926837980747 +vn -0.336778044701 0.156496420503 -0.928487718105 +vn -0.333152711391 0.173149183393 -0.926837980747 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.684160232544 -0.015572587028 -0.729165434837 +vn -0.655080139637 -0.018082045019 -0.755343019962 +vn -0.336778044701 0.156496420503 -0.928487718105 +vn 0.116307489574 0.990462958813 0.073862694204 +vn -0.048381622881 0.989867806435 0.133495286107 +vn -0.040402501822 0.989431560040 0.139258161187 +vn -0.040402501822 0.989431560040 0.139258161187 +vn 0.147966638207 0.985058844090 0.088119089603 +vn 0.116307489574 0.990462958813 0.073862694204 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.116307489574 0.990462958813 0.073862694204 +vn 0.147966638207 0.985058844090 0.088119089603 +vn 0.147966638207 0.985058844090 0.088119089603 +vn 0.233582735062 0.960899651051 0.148697659373 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.233582735062 0.960899651051 0.148697659373 +vn 0.134896829724 0.973662376404 0.183805242181 +vn 0.134896829724 0.973662376404 0.183805242181 +vn 0.133777290583 0.972870230675 0.188751518726 +vn 0.228807210922 0.964297473431 0.133332878351 +vn 0.134896829724 0.973662376404 0.183805242181 +vn 0.052583612502 0.985693454742 0.160135433078 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.043970555067 0.986248075962 0.159315317869 +vn 0.133777290583 0.972870230675 0.188751518726 +vn 0.134896829724 0.973662376404 0.183805242181 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.067382998765 -0.241788670421 0.967986464500 +vn -0.327422112226 -0.238218516111 0.914355874062 +vn -0.327422112226 -0.238218516111 0.914355874062 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.110075645149 -0.299240350723 0.947807252407 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn -0.327422112226 -0.238218516111 0.914355874062 +vn -0.506272614002 -0.212398335338 0.835807979107 +vn -0.506272614002 -0.212398335338 0.835807979107 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.302206009626 -0.319333881140 0.898163378239 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn 0.499433219433 0.162840068340 -0.850911021233 +vn 0.493813991547 0.168256774545 -0.853133857250 +vn 0.493813991547 0.168256774545 -0.853133857250 +vn 0.691769719124 0.281607925892 -0.664944827557 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn -0.018820434809 0.989357590675 0.144282087684 +vn -0.003519654274 0.995996475220 0.089323498309 +vn 0.011763782240 0.995036125183 0.098816752434 +vn 0.011763782240 0.995036125183 0.098816752434 +vn -0.026022652164 0.988108336926 0.151541069150 +vn -0.018820434809 0.989357590675 0.144282087684 +vn 0.011763782240 0.995036125183 0.098816752434 +vn -0.003519654274 0.995996475220 0.089323498309 +vn 0.098272599280 0.988767683506 0.112609624863 +vn 0.098272599280 0.988767683506 0.112609624863 +vn 0.150311067700 0.982064425945 0.113824792206 +vn 0.011763782240 0.995036125183 0.098816752434 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.700267732143 -0.161503911018 0.695371508598 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.996581256390 -0.016104307026 -0.081033818424 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.904178857803 -0.087611623108 0.418072730303 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.893042266369 -0.102554738522 0.438130140305 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.995280504227 -0.048975117505 -0.083774343133 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.844687044621 -0.055362772197 0.532389700413 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.470668077469 -0.288607269526 0.833773016930 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.667668998241 -0.190084442496 0.719781875610 +vn -0.518660068512 -0.250207871199 0.817549884319 +vn -0.393412828445 -0.499320507050 0.771949112415 +vn -0.191518172622 0.977899730206 0.083862185478 +vn 0.150311067700 0.982064425945 0.113824792206 +vn 0.098272599280 0.988767683506 0.112609624863 +vn 0.098272599280 0.988767683506 0.112609624863 +vn -0.226836472750 0.971370637417 0.070599377155 +vn -0.191518172622 0.977899730206 0.083862185478 +vn 0.849974095821 -0.094851419330 0.518215477467 +vn 0.828021049500 -0.105283483863 0.550723612309 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.997999727726 0.053960263729 0.032937355340 +vn 0.849974095821 -0.094851419330 0.518215477467 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.478259414434 -0.153687790036 0.864666402340 +vn 0.828021049500 -0.105283483863 0.550723612309 +vn 0.828021049500 -0.105283483863 0.550723612309 +vn 0.849974095821 -0.094851419330 0.518215477467 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.478259414434 -0.153687790036 0.864666402340 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.516509771347 -0.172434687614 0.838739454746 +vn 0.144089296460 -0.504522621632 0.851290345192 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.909626424313 0.109246626496 -0.400805354118 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.997999727726 0.053960263729 0.032937355340 +vn 0.994555354118 0.050949502736 0.090905636549 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn 0.691769719124 0.281607925892 -0.664944827557 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.902975142002 0.113141357899 -0.414529800415 +vn 0.909626424313 0.109246626496 -0.400805354118 +vn 0.699930727482 0.270119965076 -0.661159753799 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.698699057102 -0.088728033006 -0.709892213345 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.675778031349 -0.159016281366 -0.719748497009 +vn 0.348523497581 -0.248401150107 -0.903785526752 +vn 0.372713238001 -0.219777032733 -0.901544749737 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn 0.215006738901 0.976588487625 -0.006861140486 +vn 0.680514693260 0.732540011406 -0.016878856346 +vn 0.680514693260 0.732540011406 -0.016878856346 +vn 0.529358327389 0.845940232277 -0.064536072314 +vn 0.233587369323 0.971875846386 -0.029904913157 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn 0.194978520274 -0.578596770763 -0.791965365410 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn -0.151900768280 -0.824738562107 0.544731557369 +vn 0.101197555661 -0.910763978958 0.400334864855 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.292715787888 -0.318961352110 -0.901432812214 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.111708708107 -0.268920898438 -0.956662297249 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.992322683334 -0.093264035881 -0.081225268543 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.759035468102 -0.198567867279 -0.620029032230 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.746579527855 -0.245642706752 -0.618286848068 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn 0.220449462533 -0.944154858589 0.244895160198 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn 0.992116570473 -0.075684450567 0.099882952869 +vn 0.914270520210 -0.374885022640 -0.153527349234 +vn 0.932675123215 -0.328857719898 -0.148221790791 +vn 0.932675123215 -0.328857719898 -0.148221790791 +vn 0.978691160679 -0.038977265358 0.201604634523 +vn 0.992116570473 -0.075684450567 0.099882952869 +vn 0.757674992085 0.067285761237 0.649154245853 +vn 0.992116570473 -0.075684450567 0.099882952869 +vn 0.978691160679 -0.038977265358 0.201604634523 +vn 0.978691160679 -0.038977265358 0.201604634523 +vn 0.682809650898 0.058452133089 0.728254318237 +vn 0.757674992085 0.067285761237 0.649154245853 +vn 0.467002600431 -0.069905437529 0.881488382816 +vn 0.757674992085 0.067285761237 0.649154245853 +vn 0.682809650898 0.058452133089 0.728254318237 +vn 0.682809650898 0.058452133089 0.728254318237 +vn 0.469311714172 -0.101307049394 0.877202033997 +vn 0.467002600431 -0.069905437529 0.881488382816 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn 0.101197555661 -0.910763978958 0.400334864855 +vn 0.101197555661 -0.910763978958 0.400334864855 +vn 0.220449462533 -0.944154858589 0.244895160198 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn 0.461291611195 0.075415410101 -0.884037673473 +vn 0.465971797705 0.054153501987 -0.883140802383 +vn 0.452682107687 0.112095654011 -0.884597897530 +vn 0.452682107687 0.112095654011 -0.884597897530 +vn 0.448319792747 0.129651442170 -0.884420633316 +vn 0.461291611195 0.075415410101 -0.884037673473 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn 0.232225567102 -0.911761343479 -0.338766276836 +vn -0.194162026048 -0.710348606110 -0.676539719105 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.971844494343 -0.232869014144 -0.035921055824 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.213583230972 -0.152138248086 0.965005755424 +vn -0.790865480900 -0.036794260144 0.610882937908 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.168900057673 0.193152844906 0.966521978378 +vn -0.167976438999 0.232479542494 0.957985997200 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.112317882478 -0.462118685246 0.879676640034 +vn 0.144089296460 -0.504522621632 0.851290345192 +vn -0.168900057673 0.193152844906 0.966521978378 +vn -0.362826079130 0.288003414869 0.886234343052 +vn -0.361879914999 0.274064928293 0.891028225422 +vn -0.167976438999 0.232479542494 0.957985997200 +vn -0.167976438999 0.232479542494 0.957985997200 +vn -0.168900057673 0.193152844906 0.966521978378 +vn -0.362826079130 0.288003414869 0.886234343052 +vn -0.361879914999 0.274064928293 0.891028225422 +vn -0.362826079130 0.288003414869 0.886234343052 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.720118165016 0.286492228508 0.631943047047 +vn -0.361879914999 0.274064928293 0.891028225422 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.616649746895 0.675030350685 0.405064314604 +vn -0.716325759888 0.585582971573 0.379433780909 +vn -0.716325759888 0.585582971573 0.379433780909 +vn -0.720118165016 0.286492228508 0.631943047047 +vn -0.701582729816 0.307782292366 0.642691016197 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.004341814201 -0.943970918655 0.330000013113 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.619513154030 -0.784907817841 -0.011097250506 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn 0.079071938992 -0.791167795658 0.606466054916 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.482992053032 -0.863088667393 -0.147636696696 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn 0.180200353265 -0.741592764854 -0.646194994450 +vn -0.116688124835 -0.992550909519 -0.035022944212 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.142431572080 -0.628738820553 -0.764461100101 +vn -0.176847338676 -0.984200179577 0.008661456406 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.271172046661 -0.956903278828 0.103931777179 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.680348038673 -0.605094075203 -0.413506597281 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.798590898514 -0.600576460361 0.039503142238 +vn -0.184958517551 -0.968991398811 0.163847535849 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.260384202003 -0.547934710979 0.794963896275 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.768781661987 -0.413898468018 0.487506747246 +vn -0.231335133314 -0.954641819000 0.187464684248 +vn -0.226429939270 -0.972733318806 -0.050193894655 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn -0.327985137701 -0.938536167145 0.107590034604 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.238442823291 -0.955045223236 0.176163703203 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn -0.197733581066 -0.828324854374 -0.524194002151 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.027907121927 -0.999519944191 -0.013458410278 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.351804703474 -0.934922873974 0.046397421509 +vn 0.455730617046 -0.609691083431 -0.648526310921 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.562027513981 -0.816579937935 0.131614059210 +vn 0.873089492321 -0.323864191771 -0.364453941584 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.983599066734 -0.120129249990 0.134542852640 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.641216576099 -0.727358162403 0.244522735476 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn 0.772990465164 0.063075460494 0.631274282932 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.740041375160 -0.561373829842 0.370402753353 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.446306288242 -0.891758263111 0.074685193598 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.479405224323 -0.803639292717 0.352610945702 +vn 0.251268237829 -0.424266308546 0.869978368282 +vn -0.087695412338 -0.850844204426 0.518047869205 +vn 0.301698088646 0.951182126999 0.065044857562 +vn 0.117949590087 0.849612355232 0.514049351215 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.247134611011 0.967952191830 0.044642847031 +vn 0.301698088646 0.951182126999 0.065044857562 +vn -0.009665114805 0.432859390974 0.901409626007 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.171455085278 0.914633154869 0.366127461195 +vn -0.009665114805 0.432859390974 0.901409626007 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn 0.003870419692 -0.997206032276 0.074600264430 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn 0.174129217863 -0.981105268002 -0.084329314530 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn 0.124457292259 -0.991895079613 -0.025584608316 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.212095111609 0.293082028627 0.932265281677 +vn 0.215676337481 0.968818902969 0.121957629919 +vn -0.135806068778 0.653280317783 0.744836568832 +vn 0.117949590087 0.849612355232 0.514049351215 +vn 0.117949590087 0.849612355232 0.514049351215 +vn 0.301698088646 0.951182126999 0.065044857562 +vn 0.215676337481 0.968818902969 0.121957629919 +vn 0.116785392165 0.979833245277 0.162135779858 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.135806068778 0.653280317783 0.744836568832 +vn 0.215676337481 0.968818902969 0.121957629919 +vn 0.116785392165 0.979833245277 0.162135779858 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn 0.180662691593 -0.977567434311 -0.108272127807 +vn 0.174129217863 -0.981105268002 -0.084329314530 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn 0.180662691593 -0.977567434311 -0.108272127807 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn 0.180662691593 -0.977567434311 -0.108272127807 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.186048939824 0.976999819279 0.104197762907 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.174272745848 0.962094068527 0.209771290421 +vn -0.186048939824 0.976999819279 0.104197762907 +vn -0.174272745848 0.962094068527 0.209771290421 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.093426696956 0.949718952179 0.298839986324 +vn -0.174272745848 0.962094068527 0.209771290421 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.473818302155 0.648060023785 0.596250295639 +vn 0.116785392165 0.979833245277 0.162135779858 +vn 0.116785392165 0.979833245277 0.162135779858 +vn -0.093426696956 0.949718952179 0.298839986324 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.009665114805 0.432859390974 0.901409626007 +vn -0.009665114805 0.432859390974 0.901409626007 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn 0.003870419692 -0.997206032276 0.074600264430 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn -0.079968959093 -0.996480226517 0.025141783059 +vn -0.059656828642 -0.984534978867 0.164717689157 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn -0.059656828642 -0.984534978867 0.164717689157 +vn -0.059656828642 -0.984534978867 0.164717689157 +vn 0.050876371562 -0.998084306717 0.035204216838 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.050876371562 -0.998084306717 0.035204216838 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.687957525253 -0.724567592144 -0.041426882148 +vn 0.090818278491 -0.972123861313 -0.216164782643 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.687957525253 -0.724567592144 -0.041426882148 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.687957525253 -0.724567592144 -0.041426882148 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.509252071381 -0.849297642708 0.139125302434 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.162324577570 0.904733717442 0.393837094307 +vn -0.042816758156 0.962022185326 0.269592463970 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.162324577570 0.904733717442 0.393837094307 +vn 0.248102903366 0.886689305305 0.390162765980 +vn -0.042816758156 0.962022185326 0.269592463970 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.200634062290 0.979664087296 -0.002052781638 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.062132738531 0.996134936810 0.062086712569 +vn 0.210182353854 0.975235521793 0.068840667605 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.200634062290 0.979664087296 -0.002052781638 +vn 0.210182353854 0.975235521793 0.068840667605 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.210182353854 0.975235521793 0.068840667605 +vn 0.247134611011 0.967952191830 0.044642847031 +vn 0.247134611011 0.967952191830 0.044642847031 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn 0.122811011970 -0.957747161388 -0.260072857141 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn 0.102859064937 -0.983786880970 -0.146912872791 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn 0.169295936823 -0.937194883823 -0.304966658354 +vn 0.122811011970 -0.957747161388 -0.260072857141 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn 0.169295936823 -0.937194883823 -0.304966658354 +vn 0.235094085336 -0.934384286404 -0.267687737942 +vn 0.169295936823 -0.937194883823 -0.304966658354 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn 0.235094085336 -0.934384286404 -0.267687737942 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn 0.235094085336 -0.934384286404 -0.267687737942 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.297367244959 -0.937489330769 0.180794060230 +vn 0.246383532882 -0.967374920845 -0.058999452740 +vn 0.297367244959 -0.937489330769 0.180794060230 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.197106972337 -0.920975387096 0.336084991693 +vn 0.297367244959 -0.937489330769 0.180794060230 +vn 0.197106972337 -0.920975387096 0.336084991693 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.029394404963 -0.956659615040 0.289721101522 +vn 0.197106972337 -0.920975387096 0.336084991693 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn -0.029394404963 -0.956659615040 0.289721101522 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.248370751739 0.904884219170 -0.345682770014 +vn 0.241378128529 0.940966784954 -0.237314462662 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.248370751739 0.904884219170 -0.345682770014 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.263758838177 0.662336528301 -0.701242864132 +vn 0.241378128529 0.940966784954 -0.237314462662 +vn 0.241378128529 0.940966784954 -0.237314462662 +vn 0.310470491648 0.939930260181 -0.141912579536 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.248370751739 0.904884219170 -0.345682770014 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.423191249371 -0.904291272163 0.056271243840 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn -0.253509610891 -0.900861382484 0.352394223213 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn -0.423191249371 -0.904291272163 0.056271243840 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn -0.260627955198 -0.963619589806 0.059247847646 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn -0.280886679888 -0.956602573395 -0.077551461756 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.189719647169 0.908340811729 -0.372724354267 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.312394291162 0.933531820774 -0.175863862038 +vn -0.189719647169 0.908340811729 -0.372724354267 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.312394291162 0.933531820774 -0.175863862038 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.524871349335 0.551161825657 -0.648637592793 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.186048939824 0.976999819279 0.104197762907 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.246464684606 0.969103455544 -0.009678545408 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.193100318313 0.461876630783 -0.865668654442 +vn -0.189719647169 0.908340811729 -0.372724354267 +vn 0.097601912916 0.930599808693 -0.352785885334 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.310470491648 0.939930260181 -0.141912579536 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.423305630684 0.886720836163 0.185845404863 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.436779737473 0.895123004913 -0.089321024716 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.423305630684 0.886720836163 0.185845404863 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.405214011669 0.855926692486 0.321233749390 +vn 0.162324577570 0.904733717442 0.393837094307 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.803628146648 0.587178885937 -0.096968024969 +vn 0.753271698952 0.627935349941 0.195650026202 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.090818278491 -0.972123861313 -0.216164782643 +vn -0.260627955198 -0.963619589806 0.059247847646 +vn -0.260627955198 -0.963619589806 0.059247847646 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.201083213091 0.576883137226 0.791688919067 +vn -0.009665114805 0.432859390974 0.901409626007 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn 0.117949590087 0.849612355232 0.514049351215 +vn -0.135806068778 0.653280317783 0.744836568832 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.212095111609 0.293082028627 0.932265281677 +vn 0.117949590087 0.849612355232 0.514049351215 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.410863459110 -0.055618740618 0.909998774529 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.644459664822 0.624916911125 0.440625160933 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.705824911594 -0.080311007798 0.703819155693 +vn -0.473818302155 0.648060023785 0.596250295639 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.902148842812 -0.074126504362 0.425009071827 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.745227813721 0.633083999157 0.209380432963 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.983445346355 -0.041850395501 0.176306024194 +vn -0.745227813721 0.633083999157 0.209380432963 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.117949590087 0.849612355232 0.514049351215 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.212095111609 0.293082028627 0.932265281677 +vn -0.009665114805 0.432859390974 0.901409626007 +vn 0.171455085278 0.914633154869 0.366127461195 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.151055559516 0.962752103806 0.224255621433 +vn 0.390230685472 0.623500227928 0.677471399307 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.512415468693 0.772289216518 0.375499367714 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.248102903366 0.886689305305 0.390162765980 +vn 0.686944067478 0.473488986492 0.551285803318 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.930573165417 0.310774356127 0.193527519703 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.256829530001 0.900792479515 0.350159198046 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.201083213091 0.576883137226 0.791688919067 +vn 0.385481506586 0.480627328157 0.787655591965 +vn 0.253791481256 0.930407822132 0.264444947243 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.176589697599 0.143177881837 -0.973815262318 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.227506399155 0.605743527412 -0.762440562248 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.283158630133 0.632815361023 -0.720670461655 +vn 0.281906336546 0.138081952929 -0.949453651905 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.468284696341 0.617177546024 -0.632298469543 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.697048187256 0.565060555935 -0.441395968199 +vn 0.728800296783 0.028480309993 -0.684133768082 +vn 0.412756860256 0.060444112867 -0.908833444118 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn 0.184735700488 -0.032027877867 -0.982266247272 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.196467101574 -0.223334953189 -0.954736709595 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.555135130882 -0.143407806754 -0.819304108620 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn -0.727473437786 0.553508579731 -0.405475795269 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.847794950008 -0.123858034611 -0.515657722950 +vn -0.985829532146 0.026642497629 -0.165621146560 +vn -0.704271733761 0.708031654358 -0.051889482886 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.956620991230 0.038980554789 -0.288715720177 +vn 0.990990340710 0.130139961839 -0.031650196761 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.082572974265 -0.055582214147 0.995033800602 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.090538904071 -0.721768438816 0.686187326908 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.355197250843 -0.292997479439 0.887686550617 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.097998321056 -0.885099232197 0.454967737198 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.156766593456 -0.905144870281 0.395141780376 +vn -0.486689150333 -0.374447375536 0.789254605770 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.285608649254 -0.925775051117 0.247726097703 +vn -0.675995051861 -0.429347306490 0.598908662796 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.307565927505 -0.950393795967 0.046419605613 +vn -0.818308353424 -0.492649257183 0.296088099480 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.459652185440 -0.883022904396 -0.094818055630 +vn -0.929030179977 -0.362915277481 0.072079576552 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.146504536271 -0.042443491518 0.988299012184 +vn 0.065914735198 -0.785547375679 0.615280866623 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.297726511955 -0.357162386179 0.885321378708 +vn 0.098932050169 -0.899504899979 0.425562411547 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.455326050520 -0.212368279696 0.864625871181 +vn 0.319514423609 -0.863103568554 0.391104489565 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.699083209038 -0.651106238365 0.295539051294 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.844169318676 -0.142716273665 0.516730368137 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.927620470524 -0.368441313505 0.061410423368 +vn 0.696924626827 -0.715875566006 -0.042640652508 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.926520526409 -0.330959945917 -0.178956046700 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.436327308416 -0.827338337898 -0.353736788034 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.693109035492 -0.481128364801 -0.536763787270 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn -0.125757485628 -0.893814086914 -0.430443346500 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn -0.429687142372 -0.462241262197 -0.775694489479 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn -0.087170556188 -0.883316695690 -0.460600584745 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn -0.131213530898 -0.471373289824 -0.872118234634 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.089234955609 -0.909940361977 -0.405025571585 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn 0.039728019387 -0.366211801767 -0.929683089256 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn 0.060197409242 -0.886249661446 -0.459279716015 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn 0.177547097206 -0.158900201321 -0.971199154854 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.001846735133 -0.877386391163 -0.479780942202 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn -0.071178838611 -0.914667427540 -0.397890716791 +vn 0.193469092250 -0.202935039997 -0.959889113903 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn 0.364927858114 -0.230931147933 -0.901941478252 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn -0.060941711068 -0.833909392357 -0.548526406288 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn 0.588752269745 -0.330777943134 -0.737534224987 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.116796404123 -0.867212474346 -0.484046578407 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.419476836920 -0.896206259727 -0.144407406449 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.262821823359 -0.951250076294 -0.161393716931 +vn 0.819989025593 -0.434048742056 -0.373121529818 +vn 0.899102628231 -0.414789378643 -0.139872014523 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.812033295631 0.514916896820 0.274704486132 +vn -0.258473217487 0.240610465407 0.935573697090 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.237624734640 0.624630987644 0.743888854980 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.325573593378 0.324940294027 0.887927711010 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.325573593378 0.324940294027 0.887927711010 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.538130819798 -0.140533074737 0.831062972546 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.522908329964 -0.718644380569 0.458385378122 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn -0.118096649647 -0.989603102207 -0.082090765238 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.365978002548 -0.816699564457 -0.446163564920 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.735541522503 -0.420057326555 -0.531536042690 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.957898378372 0.116688869894 -0.262324929237 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.812033295631 0.514916896820 0.274704486132 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.033919174224 0.761711001396 0.647028446198 +vn 0.237624734640 0.624630987644 0.743888854980 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.599148094654 -0.349108159542 0.720517218113 +vn 0.599148094654 -0.349108159542 0.720517218113 +vn 0.765411973000 -0.281774252653 0.578573942184 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn 0.445603191853 -0.384337395430 0.808531105518 +vn 0.445603191853 -0.384337395430 0.808531105518 +vn 0.599148094654 -0.349108159542 0.720517218113 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn 0.353177726269 -0.489298284054 0.797403693199 +vn 0.353177726269 -0.489298284054 0.797403693199 +vn 0.445603191853 -0.384337395430 0.808531105518 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn 0.349057108164 -0.704609453678 0.617806315422 +vn 0.349057108164 -0.704609453678 0.617806315422 +vn 0.353177726269 -0.489298284054 0.797403693199 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.497694343328 -0.736805498600 0.457622140646 +vn 0.497694343328 -0.736805498600 0.457622140646 +vn 0.349057108164 -0.704609453678 0.617806315422 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.627989470959 -0.668266415596 0.398809760809 +vn 0.627989470959 -0.668266415596 0.398809760809 +vn 0.497694343328 -0.736805498600 0.457622140646 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.663220942020 -0.615163028240 0.426277458668 +vn 0.663220942020 -0.615163028240 0.426277458668 +vn 0.627989470959 -0.668266415596 0.398809760809 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.695339739323 -0.572090268135 0.434988915920 +vn 0.695339739323 -0.572090268135 0.434988915920 +vn 0.663220942020 -0.615163028240 0.426277458668 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.765411973000 -0.281774252653 0.578573942184 +vn 0.765411973000 -0.281774252653 0.578573942184 +vn 0.695339739323 -0.572090268135 0.434988915920 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.305796295404 0.933188319206 0.188807144761 +vn -0.576867401600 0.757517874241 -0.305598944426 +vn -0.576867401600 0.757517874241 -0.305598944426 +vn -0.718194782734 0.602012097836 -0.348966598511 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.718194782734 0.602012097836 -0.348966598511 +vn -0.718194782734 0.602012097836 -0.348966598511 +vn -0.725587606430 0.503578245640 -0.468968629837 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.725587606430 0.503578245640 -0.468968629837 +vn -0.725587606430 0.503578245640 -0.468968629837 +vn -0.789350450039 0.503757894039 -0.350932806730 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.789350450039 0.503757894039 -0.350932806730 +vn -0.789350450039 0.503757894039 -0.350932806730 +vn -0.850929498672 0.302877247334 -0.429167002439 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.850929498672 0.302877247334 -0.429167002439 +vn -0.850929498672 0.302877247334 -0.429167002439 +vn -0.628575026989 0.261088401079 -0.732616007328 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn -0.628575026989 0.261088401079 -0.732616007328 +vn -0.628575026989 0.261088401079 -0.732616007328 +vn -0.228433817625 0.366642951965 -0.901881873608 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn -0.228433817625 0.366642951965 -0.901881873608 +vn -0.228433817625 0.366642951965 -0.901881873608 +vn -0.369103759527 0.776214718819 -0.511129260063 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn -0.369103759527 0.776214718819 -0.511129260063 +vn -0.369103759527 0.776214718819 -0.511129260063 +vn -0.483243614435 0.776178956032 -0.404996097088 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn -0.305796295404 0.933188319206 0.188807144761 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn -0.483243614435 0.776178956032 -0.404996097088 +vn -0.483243614435 0.776178956032 -0.404996097088 +vn -0.576867401600 0.757517874241 -0.305598944426 +vn -0.305796295404 0.933188319206 0.188807144761 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.305796295404 0.933188319206 0.188807144761 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.454803496599 0.485992193222 0.746301114559 +vn 0.033919174224 0.761711001396 0.647028446198 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.716205894947 0.675131976604 0.176765188575 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.454803496599 0.485992193222 0.746301114559 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.931238234043 0.267171919346 0.247819513083 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.653353095055 -0.045459389687 0.755687236786 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.994130134583 -0.099492669106 -0.042502265424 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.702828645706 -0.631237745285 0.327979892492 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn -0.820460438728 -0.286714076996 -0.494610667229 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn -0.384284645319 -0.881262183189 -0.275140374899 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn -0.280365377665 -0.237007901073 -0.930173397064 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.265687763691 -0.705258131027 -0.657283067703 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.198456883430 0.134244099259 -0.970872461796 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.664483129978 -0.179814308882 -0.725347459316 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.296048760414 0.717162728310 -0.630898356438 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.867754399776 0.307647943497 -0.390326917171 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.158363074064 0.985768735409 -0.056401804090 +vn -0.305796295404 0.933188319206 0.188807144761 +vn -0.305796295404 0.933188319206 0.188807144761 +vn 0.033919174224 0.761711001396 0.647028446198 +vn 0.729900121689 0.651386141777 0.207224413753 +vn 0.348348826170 0.555683076382 0.754896938801 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.348348826170 0.555683076382 0.754896938801 +vn -0.258473217487 0.240610465407 0.935573697090 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.523129105568 0.167803466320 0.835570394993 +vn 0.348348826170 0.555683076382 0.754896938801 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn 0.047754000872 -0.065999239683 0.996676325798 +vn -0.258473217487 0.240610465407 0.935573697090 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.070202268660 -0.434225112200 0.898064672947 +vn -0.483811736107 -0.291279852390 0.825277090073 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn -0.105502836406 -0.773460447788 0.625002443790 +vn -0.419215917587 -0.771656930447 0.478334188461 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn 0.191903352737 -0.952242434025 0.237502530217 +vn -0.069711819291 -0.997551083565 0.005667928606 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.493556946516 -0.869650483131 -0.010467589833 +vn 0.338439792395 -0.873332142830 -0.350356280804 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.712524473667 -0.673489809036 -0.196774929762 +vn 0.664489090443 -0.542217135429 -0.514251768589 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.848077535629 0.469010263681 0.246564060450 +vn 0.883103847504 0.135465055704 0.449195712805 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.935779094696 -0.302246212959 0.181561961770 +vn 0.988916158676 0.017871269956 -0.147395417094 +vn 0.848077535629 0.469010263681 0.246564060450 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.069645345211 0.862430155277 0.501361846924 +vn 0.069645345211 0.862430155277 0.501361846924 +vn 0.164405122399 0.635002374649 0.754813194275 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.069645345211 0.862430155277 0.501361846924 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.056397389621 0.973752439022 0.220511928201 +vn -0.015082026832 0.898052096367 0.439630508423 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.110619284213 0.821678519249 0.559113383293 +vn 0.069645345211 0.862430155277 0.501361846924 +vn 0.056397389621 0.973752439022 0.220511928201 +vn -0.756435573101 0.570307672024 0.320241183043 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.625884294510 0.621010959148 0.471820145845 +vn -0.756435573101 0.570307672024 0.320241183043 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.015082026832 0.898052096367 0.439630508423 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.625884294510 0.621010959148 0.471820145845 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.015082026832 0.898052096367 0.439630508423 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.093329630792 0.941157698631 0.324825823307 +vn -0.382084578276 0.771323442459 0.508990705013 +vn -0.506518363953 0.725894212723 0.465313613415 +vn -0.392548322678 0.780418395996 0.486675381660 +vn -0.382084578276 0.771323442459 0.508990705013 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.002175812144 0.997610270977 0.069057755172 +vn -0.392548322678 0.780418395996 0.486675381660 +vn 0.002175812144 0.997610270977 0.069057755172 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.392548322678 0.780418395996 0.486675381660 +vn 0.002175812144 0.997610270977 0.069057755172 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.291743457317 0.775886118412 0.559362590313 +vn -0.359837502241 0.773664951324 0.521497368813 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.291743457317 0.775886118412 0.559362590313 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.115149334073 0.801315605640 0.587055325508 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.202851682901 0.784742534161 0.585687935352 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.092519551516 0.986486911774 -0.135217294097 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn -0.055783562362 0.991671502590 -0.116085425019 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn 0.002175812144 0.997610270977 0.069057755172 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn -0.064116746187 0.995342969894 -0.071981780231 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.002175812144 0.997610270977 0.069057755172 +vn 0.002175812144 0.997610270977 0.069057755172 +vn 0.093329630792 0.941157698631 0.324825823307 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn 0.145412996411 0.775520384312 -0.614347755909 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn 0.018299452960 0.998276531696 0.055759474635 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.435292720795 -0.036885086447 -0.899533033371 +vn -0.149325296283 0.191209688783 -0.970124125481 +vn -0.149325296283 0.191209688783 -0.970124125481 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn -0.374504595995 -0.259615004063 -0.890138387680 +vn -0.435292720795 -0.036885086447 -0.899533033371 +vn -0.435292720795 -0.036885086447 -0.899533033371 +vn -0.212444365025 0.441597640514 -0.871698856354 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.018299452960 0.998276531696 0.055759474635 +vn -0.000561077497 0.892739951611 -0.450571924448 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn 0.093329630792 0.941157698631 0.324825823307 +vn -0.015082026832 0.898052096367 0.439630508423 +vn -0.015082026832 0.898052096367 0.439630508423 +vn 0.056397389621 0.973752439022 0.220511928201 +vn 0.164719715714 0.961630463600 -0.219395115972 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.353946268559 0.734738647938 0.578689157963 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.756435573101 0.570307672024 0.320241183043 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.110619284213 0.821678519249 0.559113383293 +vn -0.218308880925 0.796049535275 0.564487636089 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.069645345211 0.862430155277 0.501361846924 +vn -0.110619284213 0.821678519249 0.559113383293 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.164405122399 0.635002374649 0.754813194275 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.218308880925 0.796049535275 0.564487636089 +vn -0.353946268559 0.734738647938 0.578689157963 +vn 0.750251233578 0.270256996155 0.603393971920 +vn -0.353946268559 0.734738647938 0.578689157963 +vn -0.457538694143 0.750161647797 0.477405369282 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.750251233578 0.270256996155 0.603393971920 +vn -0.353946268559 0.734738647938 0.578689157963 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.935766935349 -0.242188498378 0.256290793419 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.935766935349 -0.242188498378 0.256290793419 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.750251233578 0.270256996155 0.603393971920 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn -0.671294987202 -0.260830819607 0.693779766560 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.534322023392 0.359675824642 0.764940083027 +vn 0.164405122399 0.635002374649 0.754813194275 +vn 0.356486141682 -0.270039647818 0.894425094128 +vn 0.050975821912 0.871190190315 0.488292098045 +vn -0.147346720099 0.889737486839 0.432037174702 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.357310593128 0.236652135849 0.903506994247 +vn 0.050975821912 0.871190190315 0.488292098045 +vn -0.578328967094 -0.319814234972 0.750502765179 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.534322023392 0.359675824642 0.764940083027 +vn -0.671294987202 -0.260830819607 0.693779766560 +vn -0.578328967094 -0.319814234972 0.750502765179 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.811512649059 -0.327733904123 0.483774423599 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.910371243954 -0.268473833799 0.314874649048 +vn 0.703342258930 0.225412517786 0.674165308475 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.703342258930 0.225412517786 0.674165308475 +vn -0.457538694143 0.750161647797 0.477405369282 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429617762566 0.848202347755 0.309808552265 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.703342258930 0.225412517786 0.674165308475 +vn -0.842326104641 0.537471950054 -0.040131911635 +vn -0.791654765606 0.576650857925 -0.201882332563 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.457538694143 0.750161647797 0.477405369282 +vn -0.842326104641 0.537471950054 -0.040131911635 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429713785648 0.846449017525 0.314436256886 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.598508119583 0.249849140644 0.761159241199 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.429617762566 0.848202347755 0.309808552265 +vn -0.791654765606 0.576650857925 -0.201882332563 +vn -0.667831838131 0.682248771191 -0.297552168369 +vn -0.667831838131 0.682248771191 -0.297552168369 +vn -0.429713785648 0.846449017525 0.314436256886 +vn -0.429617762566 0.848202347755 0.309808552265 +vn 0.811512649059 -0.327733904123 0.483774423599 +vn 0.598508119583 0.249849140644 0.761159241199 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.607785642147 -0.416889160872 0.675869822502 +vn 0.811512649059 -0.327733904123 0.483774423599 +vn 0.607785642147 -0.416889160872 0.675869822502 +vn 0.313882619143 0.163946226239 0.935200154781 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.516368031502 -0.345768600702 0.783459067345 +vn 0.607785642147 -0.416889160872 0.675869822502 +vn -0.457538694143 0.750161647797 0.477405369282 +vn -0.353946268559 0.734738647938 0.578689157963 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.833009958267 0.535604238510 0.138645425439 +vn -0.842326104641 0.537471950054 -0.040131911635 +vn -0.457538694143 0.750161647797 0.477405369282 +vn 0.384632349014 -0.290035128593 0.876320481300 +vn -0.577897906303 -0.355524659157 0.734599351883 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.622664332390 0.454117029905 0.637233734131 +vn 0.170826375484 0.283379584551 0.943670690060 +vn 0.384632349014 -0.290035128593 0.876320481300 +vn 0.314843177795 -0.462489783764 0.828840732574 +vn 0.384632349014 -0.290035128593 0.876320481300 +vn 0.170826375484 0.283379584551 0.943670690060 +vn 0.170826375484 0.283379584551 0.943670690060 +vn -0.019885519519 0.156374439597 0.987497627735 +vn 0.314843177795 -0.462489783764 0.828840732574 +vn 0.100030563772 -0.661799669266 0.742977142334 +vn 0.314843177795 -0.462489783764 0.828840732574 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn 0.100030563772 -0.661799669266 0.742977142334 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn 0.100030563772 -0.661799669266 0.742977142334 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.178587734699 -0.922734260559 0.341566920280 +vn -0.019895311445 -0.792612075806 0.609401524067 +vn -0.178587734699 -0.922734260559 0.341566920280 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.537448406219 -0.838045239449 0.093964748085 +vn -0.178587734699 -0.922734260559 0.341566920280 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn -0.224376007915 -0.046368073672 -0.973398864269 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn -0.408398300409 0.460756182671 -0.787981331348 +vn -0.688532412052 0.659234106541 -0.302214354277 +vn -0.537448406219 -0.838045239449 0.093964748085 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.640428006649 -0.731053292751 -0.235399663448 +vn -0.537448406219 -0.838045239449 0.093964748085 +vn -0.422474920750 -0.667798876762 -0.612829148769 +vn -0.640428006649 -0.731053292751 -0.235399663448 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.941314995289 -0.067905850708 -0.330627977848 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.422474920750 -0.667798876762 -0.612829148769 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.019885519519 0.156374439597 0.987497627735 +vn 0.170826375484 0.283379584551 0.943670690060 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.181642502546 0.885934293270 0.426762789488 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.181642502546 0.885934293270 0.426762789488 +vn 0.170826375484 0.283379584551 0.943670690060 +vn 0.170826375484 0.283379584551 0.943670690060 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.424639850855 0.811399281025 0.401636928320 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.546915650368 0.810093104839 -0.211263924837 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.389531940222 0.909839093685 -0.143030583858 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.310567855835 -0.005853740964 0.950533211231 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.019885519519 0.156374439597 0.987497627735 +vn -0.383504658937 0.857913494110 0.341919034719 +vn -0.606193363667 0.768687665462 0.204080417752 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.815810859203 0.574943482876 0.062391024083 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.968362867832 -0.224615901709 0.108724497259 +vn -0.859864592552 -0.161788597703 0.484207957983 +vn -0.612901210785 -0.171269357204 0.771374642849 +vn -0.914714396000 -0.397285848856 -0.073902077973 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.577897906303 -0.355524659157 0.734599351883 +vn -0.914714396000 -0.397285848856 -0.073902077973 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.914714396000 -0.397285848856 -0.073902077973 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn -0.834079504013 -0.535284638405 0.133348211646 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.887782454491 -0.459931015968 -0.017485428602 +vn 0.081868670881 0.901294291019 0.425401180983 +vn 0.077389903367 0.914463222027 0.397199958563 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.669492661953 0.064479798079 0.740014791489 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.545027732849 0.737514972687 0.398768693209 +vn 0.081868670881 0.901294291019 0.425401180983 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.743179678917 0.068944804370 0.665530264378 +vn 0.568133234978 0.821251451969 -0.052637834102 +vn 0.646443426609 0.759647488594 0.071039631963 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.081868670881 0.901294291019 0.425401180983 +vn 0.568133234978 0.821251451969 -0.052637834102 +vn 0.058358471841 0.816487491131 0.574406206608 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.646443426609 0.759647488594 0.071039631963 +vn 0.646443426609 0.759647488594 0.071039631963 +vn 0.630036652088 0.727832496166 0.270765095949 +vn 0.058358471841 0.816487491131 0.574406206608 +vn 0.630036652088 0.727832496166 0.270765095949 +vn 0.553945541382 0.699680268764 0.451211482286 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.097729347646 0.768430531025 0.632426679134 +vn 0.058358471841 0.816487491131 0.574406206608 +vn 0.630036652088 0.727832496166 0.270765095949 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.097729347646 0.768430531025 0.632426679134 +vn 0.553945541382 0.699680268764 0.451211482286 +vn 0.553945541382 0.699680268764 0.451211482286 +vn 0.436596006155 0.685988366604 0.582068622112 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.254605710506 0.744727969170 0.616892397404 +vn 0.436596006155 0.685988366604 0.582068622112 +vn 0.298728913069 0.741523385048 0.600752949715 +vn 0.298728913069 0.741523385048 0.600752949715 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.936779797077 0.026538468897 0.348911702633 +vn 0.058358471841 0.816487491131 0.574406206608 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.097729347646 0.768430531025 0.632426679134 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.962532341480 0.106497831643 0.249378725886 +vn -0.097729347646 0.768430531025 0.632426679134 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.058358471841 0.816487491131 0.574406206608 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.936779797077 0.026538468897 0.348911702633 +vn -0.887424767017 0.078465610743 0.454225122929 +vn 0.077389903367 0.914463222027 0.397199958563 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn 0.568133234978 0.821251451969 -0.052637834102 +vn 0.081868670881 0.901294291019 0.425401180983 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.266018509865 0.937779486179 -0.223167747259 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn -0.103438951075 0.980265319347 -0.168464601040 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.545027732849 0.737514972687 0.398768693209 +vn -0.399299442768 -0.641792595387 0.654722988605 +vn -0.083396285772 -0.628017544746 0.773717641830 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.399299442768 -0.641792595387 0.654722988605 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.399299442768 -0.641792595387 0.654722988605 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.509258329868 -0.100890107453 0.854679524899 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.030449874699 -0.613143086433 -0.789384782314 +vn -0.030449874699 -0.613143146038 -0.789384782314 +vn -0.030449876562 -0.613143146038 -0.789384782314 +vn 0.454834192991 -0.551295697689 -0.699427545071 +vn 0.454834192991 -0.551295697689 -0.699427545071 +vn 0.454834192991 -0.551295757294 -0.699427545071 +vn -0.084855884314 0.981540918350 -0.171397000551 +vn -0.182695105672 0.915379524231 0.358751714230 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.145488426089 0.976211905479 -0.160759046674 +vn -0.084855884314 0.981540918350 -0.171397000551 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.084855884314 0.981540918350 -0.171397000551 +vn -0.266018509865 0.937779486179 -0.223167747259 +vn -0.266018509865 0.937779486179 -0.223167747259 +vn -0.494124293327 0.813777327538 0.305953741074 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.743179678917 0.068944804370 0.665530264378 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.714156806469 -0.585525572300 0.383588165045 +vn -0.701685905457 -0.509247004986 0.498301476240 +vn -0.714156806469 -0.585525572300 0.383588165045 +vn -0.669492661953 0.064479798079 0.740014791489 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.887424767017 0.078465610743 0.454225122929 +vn -0.834079504013 -0.535284638405 0.133348211646 +vn -0.714156806469 -0.585525572300 0.383588165045 +vn -0.254605710506 0.744727969170 0.616892397404 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.622664332390 0.454117029905 0.637233734131 +vn -0.254605710506 0.744727969170 0.616892397404 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn 0.821521222591 0.078862875700 -0.564697682858 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.013701758347 0.829518616199 0.558310985565 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.373588293791 0.906539082527 0.196516364813 +vn 0.008125438355 0.822232007980 0.569094419479 +vn -0.013701758347 0.829518616199 0.558310985565 +vn -0.388561308384 0.831142783165 0.397771000862 +vn 0.114516958594 0.788044095039 0.604873836040 +vn 0.008125438355 0.822232007980 0.569094419479 +vn 0.008125438355 0.822232007980 0.569094419479 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.316964924335 0.809910416603 0.493536621332 +vn 0.298728913069 0.741523385048 0.600752949715 +vn 0.114516958594 0.788044095039 0.604873836040 +vn 0.114516958594 0.788044095039 0.604873836040 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.424639850855 0.811399281025 0.401636928320 +vn -0.316964924335 0.809910416603 0.493536621332 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.388561308384 0.831142783165 0.397771000862 +vn -0.373588293791 0.906539082527 0.196516364813 +vn -0.013701758347 0.829518616199 0.558310985565 +vn -0.040053065866 0.814612388611 0.578621149063 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.013701758347 0.829518616199 0.558310985565 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.242492765188 0.969967246056 -0.018994800746 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn 0.034370608628 0.694903075695 -0.718281567097 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.308176785707 -0.444958806038 -0.840855956078 +vn 0.483079075813 0.188845366240 -0.854969024658 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.308176785707 -0.444958806038 -0.840855956078 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.095979750156 0.237653985620 -0.966596305370 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.108198247850 0.059869885445 -0.992324888706 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.223764970899 -0.611924827099 -0.758602142334 +vn 0.188442409039 -0.595347464085 -0.781057536602 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn 0.223764970899 -0.611924827099 -0.758602142334 +vn 0.186325952411 0.041206322610 -0.981623470783 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn 0.280480980873 0.072654128075 -0.957105934620 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.271971881390 -0.439561158419 -0.856047511101 +vn 0.270638674498 -0.588777959347 -0.761639833450 +vn -0.115149334073 0.801315605640 0.587055325508 +vn -0.112290486693 0.984839260578 -0.132221266627 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.164916515350 0.980066657066 -0.110778510571 +vn -0.040053065866 0.814612388611 0.578621149063 +vn -0.115149334073 0.801315605640 0.587055325508 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.181109443307 0.982749462128 -0.037454269826 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.432357877493 0.900786101818 0.040632791817 +vn -0.374014973640 0.886462867260 -0.272573590279 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn -0.019123541191 0.906814336777 -0.421096295118 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn 0.071902558208 0.827343285084 -0.557075500488 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn -0.243032351136 0.654210090637 -0.716201424599 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.759460985661 -0.164043009281 -0.629530727863 +vn 0.759460985661 -0.164043009281 -0.629530727863 +vn 0.552213788033 -0.386443734169 -0.738729417324 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.821521222591 0.078862875700 -0.564697682858 +vn 0.759460985661 -0.164043009281 -0.629530727863 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.574291229248 0.222163870931 -0.787929475307 +vn 0.501307368279 0.477822452784 -0.721371352673 +vn 0.821521222591 0.078862875700 -0.564697682858 +vn 0.368465006351 -0.612099230289 -0.699691414833 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.369810193777 -0.044239182025 -0.928053498268 +vn 0.552213788033 -0.386443734169 -0.738729417324 +vn 0.368465006351 -0.612099230289 -0.699691414833 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn -0.224376007915 -0.046368073672 -0.973398864269 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.161430969834 -0.167638167739 -0.972541749477 +vn 0.368465006351 -0.612099230289 -0.699691414833 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn -0.422474920750 -0.667798876762 -0.612829148769 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.627340018749 -0.085048124194 -0.774087429047 +vn -0.224376007915 -0.046368073672 -0.973398864269 +vn 0.045121468604 -0.817973375320 -0.573483705521 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn -0.149325296283 0.191209688783 -0.970124125481 +vn 0.271971881390 -0.439561158419 -0.856047511101 +vn 0.271971881390 -0.439561158419 -0.856047511101 +vn 0.304755032063 0.162415653467 -0.938480436802 +vn 0.158929482102 0.658865928650 -0.735280275345 +vn 0.050975821912 0.871190190315 0.488292098045 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.018299452960 0.998276531696 0.055759474635 +vn 0.018299452960 0.998276531696 0.055759474635 +vn -0.147346720099 0.889737486839 0.432037174702 +vn 0.050975821912 0.871190190315 0.488292098045 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.227914363146 0.973679065704 -0.002040540567 +vn 0.050975821912 0.871190190315 0.488292098045 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.050975821912 0.871190190315 0.488292098045 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.090699143708 0.010228182189 0.995825827122 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.415789157152 0.681671321392 0.602032840252 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.090699143708 0.010228182189 0.995825827122 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.535596609116 -0.080347500741 0.840642929077 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn 0.535596609116 -0.080347500741 0.840642929077 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn -0.245555266738 -0.736587166786 0.630191981792 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.378451079130 -0.561920762062 0.735540509224 +vn -0.245555266738 -0.736587166786 0.630191981792 +vn -0.245555266738 -0.736587166786 0.630191981792 +vn 0.163989365101 -0.143401250243 0.975983381271 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.357310593128 0.236652135849 0.903506994247 +vn -0.578328967094 -0.319814234972 0.750502765179 +vn -0.378451079130 -0.561920762062 0.735540509224 +vn -0.378451079130 -0.561920762062 0.735540509224 +vn -0.090699143708 0.010228182189 0.995825827122 +vn -0.357310593128 0.236652135849 0.903506994247 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.535596609116 -0.080347500741 0.840642929077 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn -0.084090135992 -0.870717883110 0.484540194273 +vn 0.303251296282 -0.837280929089 0.454971790314 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.303251296282 -0.837280929089 0.454971790314 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.704818487167 -0.360784024000 0.610791087151 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.538265943527 -0.756090760231 -0.372285634279 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.934182822704 -0.324974685907 0.147288635373 +vn 0.590286970139 -0.797087967396 0.127326473594 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.502711594105 0.493176937103 -0.709970116615 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn -0.285020858049 -0.719945371151 -0.632804691792 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.712965011597 0.308273494244 -0.629800260067 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn -0.285020858049 -0.719945371151 -0.632804691792 +vn -0.264134556055 -0.500071525574 -0.824718952179 +vn -0.264134556055 -0.500071525574 -0.824718952179 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.108074806631 -0.244027063251 -0.963727474213 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.913268625736 0.406597167253 -0.024883907288 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.644251585007 0.759489834309 -0.090083837509 +vn 0.415789157152 0.681671321392 0.602032840252 +vn 0.715015947819 0.376954406500 0.588776290417 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.143064171076 0.886963069439 0.439123153687 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.182695105672 0.915379524231 0.358751714230 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.203395426273 0.839035332203 0.504628598690 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.313882619143 0.163946226239 0.935200154781 +vn -0.429713785648 0.846449017525 0.314436256886 +vn 0.203395426273 0.839035332203 0.504628598690 +vn 0.203395426273 0.839035332203 0.504628598690 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.313882619143 0.163946226239 0.935200154781 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn 0.145488426089 0.976211905479 -0.160759046674 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.143064171076 0.886963069439 0.439123153687 +vn 0.203395426273 0.839035332203 0.504628598690 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn -0.429713785648 0.846449017525 0.314436256886 +vn -0.667831838131 0.682248771191 -0.297552168369 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn -0.046772319824 0.986538410187 -0.156698241830 +vn 0.203395426273 0.839035332203 0.504628598690 +vn -0.429713785648 0.846449017525 0.314436256886 +vn 0.286178618670 -0.536495864391 0.793897986412 +vn 0.516368031502 -0.345768600702 0.783459067345 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.433476418257 0.101598486304 0.895419418812 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.286178618670 -0.536495864391 0.793897986412 +vn -0.083396285772 -0.628017544746 0.773717641830 +vn 0.286178618670 -0.536495864391 0.793897986412 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn 0.179807379842 -0.031763926148 0.983188867569 +vn -0.178978517652 -0.082300312817 0.980404675007 +vn -0.083396285772 -0.628017544746 0.773717641830 +vn -0.374504595995 -0.259615004063 -0.890138387680 +vn -0.149947926402 0.168516919017 -0.974226713181 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn 0.029971798882 -0.099999859929 -0.994535923004 +vn -0.264134556055 -0.500071525574 -0.824718952179 +vn -0.374504595995 -0.259615004063 -0.890138387680 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn 0.433138728142 -0.448282390833 -0.781942307949 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.835667192936 -0.353619337082 -0.420254290104 +vn 0.538265943527 -0.756090760231 -0.372285634279 +vn -0.007061770186 -0.825218200684 -0.564769864082 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.893253266811 -0.289331018925 0.344072848558 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn 0.775661766529 -0.398030877113 -0.489816576242 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn 0.330751955509 -0.411549597979 0.849252641201 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.172960251570 -0.975686252117 -0.134614691138 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.829526424408 0.541623890400 0.136123031378 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.945044875145 -0.011528831907 0.326737374067 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.647236943245 -0.611986935139 0.454484701157 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.067010790110 0.193234190345 0.978861629963 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.564102113247 0.009641343728 0.825648725033 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.227151930332 0.082373514771 0.970369338989 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn 0.227151930332 0.082373514771 0.970369338989 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.389436155558 -0.407782554626 0.825864911079 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.236986622214 0.101993352175 0.966144263744 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn 0.120366461575 -0.507115423679 -0.853431820869 +vn -0.402320235968 0.064717441797 -0.913208663464 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.078055009246 -0.974436163902 -0.210669353604 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn 0.010250043124 -0.738894104958 0.673743546009 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.496666043997 -0.462730199099 0.734304845333 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.544135689735 -0.377859950066 0.749091565609 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.037874251604 -0.391661256552 -0.919329643250 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn 0.309158563614 -0.309895396233 0.899102807045 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.457300573587 -0.591948747635 -0.663681268692 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn -0.085905134678 0.072124846280 0.993689239025 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn -0.085905134678 0.072124846280 0.993689239025 +vn -0.203997373581 0.026348058134 0.978616833687 +vn 0.239223495126 -0.067995756865 0.968580782413 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn 0.206780195236 -0.288152217865 0.934992134571 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.583397090435 -0.665412664413 0.465697109699 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.649454832077 -0.730109870434 0.212480604649 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.203997373581 0.026348058134 0.978616833687 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.058739125729 0.414347767830 0.908221125603 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.058739125729 0.414347767830 0.908221125603 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.631104588509 0.755875229836 -0.174240186810 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.297869771719 -0.792901396751 0.531583428383 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.407826662064 -0.263833075762 0.874110698700 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.499737411737 -0.027546295896 -0.865738809109 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.826180279255 0.350576817989 0.441046565771 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.411596596241 0.156486570835 0.897830843925 +vn -0.087292499840 0.331456899643 0.939423382282 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn 0.411596596241 0.156486570835 0.897830843925 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.659432172775 0.712318539619 0.240315511823 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.387950241566 0.306505471468 0.869223237038 +vn -0.387950241566 0.306505471468 0.869223237038 +vn 0.132363051176 0.588919281960 0.797279179096 +vn 0.370204120874 0.758121490479 0.536843240261 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.052568800747 -0.785489320755 -0.616638481617 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.139534607530 0.974310278893 0.176775634289 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.015306836925 0.932955980301 0.359664946795 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.015306836925 0.932955980301 0.359664946795 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.845744073391 -0.529137194157 0.068780913949 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.841082036495 -0.539783477783 0.034854743630 +vn -0.831635236740 -0.554599404335 -0.028325177729 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.475282013416 -0.870118498802 0.130387231708 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.482255339622 -0.870516359806 0.098138004541 +vn -0.468870520592 -0.880146622658 0.074178211391 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.475282013416 -0.870118498802 0.130387231708 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.153536304832 -0.769525945187 -0.619884192944 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.413747638464 -0.638228178024 -0.649213135242 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.178848639131 -0.936645090580 -0.301179677248 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.483235120773 -0.712880373001 -0.508217871189 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.321229845285 -0.869021952152 -0.376313954592 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.556770026684 -0.623259902000 -0.549139559269 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.474162250757 -0.571830630302 -0.669462382793 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.658861577511 -0.512930274010 -0.550276279449 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.667836844921 -0.152970269322 -0.728418886662 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.925836741924 -0.160533234477 -0.342133611441 +vn -0.899324655533 0.257733941078 -0.353253960609 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.932423293591 -0.356068879366 -0.061658397317 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.995549976826 0.022097477689 -0.091607637703 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.976822197437 -0.125868663192 0.173134148121 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.443778961897 -0.582111120224 0.681327283382 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.869244992733 0.157309949398 0.468686133623 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.855051636696 -0.223598405719 0.467857301235 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.739987790585 -0.562143504620 0.369341015816 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.888698339462 -0.439484417439 0.130647391081 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.632312119007 -0.679946780205 0.371286600828 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.862132310867 -0.493066251278 0.116677321494 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.918786525726 -0.386189073324 0.081788085401 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.772156238556 -0.451216131449 0.447413414717 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.321332365274 -0.686707675457 0.652056813240 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn 0.099003560841 -0.460517406464 0.882112264633 +vn -0.107284501195 -0.382235765457 0.917815804482 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.428062021732 -0.867399811745 0.253733038902 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.245721325278 -0.497057318687 0.832198917866 +vn -0.428062021732 -0.867399811745 0.253733038902 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.644596397877 -0.704937696457 0.295902520418 +vn -0.805738449097 -0.547442436218 0.226036131382 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.649726748466 -0.700721383095 -0.294694274664 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.801894485950 -0.583262145519 -0.129501029849 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.813467323780 -0.562431871891 -0.148126035929 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.801894485950 -0.583262145519 -0.129501029849 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn -0.415000826120 -0.651071131229 -0.635516107082 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.216722741723 -0.871117889881 -0.440664112568 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.013535787351 -0.880698323250 -0.473484188318 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.465112328529 -0.877144038677 -0.119536064565 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.209421366453 -0.651745200157 0.728951931000 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.314107537270 -0.661226451397 0.681260585785 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.087140031159 -0.994907796383 -0.050647247583 +vn 0.010299650952 -0.900448083878 0.434841483831 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.805738449097 -0.547442436218 0.226036131382 +vn -0.829879522324 -0.541816174984 0.133173540235 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.805738449097 -0.547442436218 0.226036131382 +vn -0.845744073391 -0.529137194157 0.068780913949 +vn -0.519221127033 -0.425794452429 0.741018593311 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.640411615372 -0.260996520519 0.722325265408 +vn -0.829879522324 -0.541816174984 0.133173540235 +vn -0.845744073391 -0.529137194157 0.068780913949 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.487767368555 -0.313111811876 0.814888954163 +vn -0.574658870697 -0.143289893866 0.805751323700 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.559565782547 0.120767101645 0.819939911366 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.853377461433 -0.132773742080 0.504101276398 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.837346494198 -0.286848008633 0.465369820595 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.747882008553 -0.238024860620 0.619690835476 +vn -0.693059682846 -0.333859682083 0.638909995556 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn -0.458640992641 -0.736003398895 0.497943222523 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn -0.286890745163 -0.891448795795 0.350731760263 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.173197016120 -0.846449792385 0.503513157368 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn 0.036074623466 -0.999024033546 0.025488309562 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.296743154526 -0.755670011044 0.583871841431 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.617912590504 -0.773055791855 -0.143418341875 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.684597432613 -0.679221808910 -0.264545053244 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.679967224598 -0.681577086449 0.270365059376 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.593118011951 -0.667791306973 -0.449739724398 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.652128934860 -0.607643485069 -0.453317999840 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn -0.018079442903 -0.557789921761 -0.829785227776 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn -0.016730729491 -0.462477594614 -0.886473119259 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.757288575172 0.167512565851 -0.631231725216 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.782802700996 0.142475947738 -0.605739653111 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.832457840443 0.231845602393 -0.503251016140 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.829526424408 0.541623890400 0.136123031378 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn 0.052795063704 -0.326312363148 0.943786501884 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.529069483280 -0.659794330597 0.533626258373 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.868813395500 0.343230307102 -0.356869995594 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.652744770050 0.294556379318 -0.697969019413 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.167408272624 0.019269237295 -0.985699355602 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.403329372406 0.107619918883 -0.908704221249 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.937725424767 0.113176889718 -0.328423529863 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.665814876556 0.035237163305 -0.745284438133 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.953373312950 -0.099214516580 -0.285018980503 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn 0.589868128300 -0.175914064050 -0.788105249405 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn 0.236893758178 -0.226129606366 -0.944852769375 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.867434203625 -0.060777686536 -0.493825823069 +vn 0.997439682484 -0.069704242051 0.015980891883 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.471449375153 -0.100497379899 -0.876148223877 +vn 0.900293529034 0.234960332513 -0.366422206163 +vn 0.847567141056 0.260671019554 -0.462255924940 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn -0.249982208014 -0.445761620998 -0.859537959099 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn -0.681225955486 -0.643803775311 -0.348493665457 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.948226809502 0.311464130878 0.062097102404 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.951063156128 0.070982269943 0.300733000040 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.679351329803 -0.176735669374 0.712212264538 +vn 0.365372657776 -0.213905602694 0.905951023102 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.846369147301 0.254753082991 0.467718034983 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.601849079132 0.160555899143 0.782303988934 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.628393650055 0.178586021066 0.757118523121 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.877089083195 0.223065018654 0.425390124321 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.348919451237 0.080806083977 0.933662474155 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.368893653154 0.027525994927 0.929063916206 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.067010790110 0.193234190345 0.978861629963 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.067010790110 0.193234190345 0.978861629963 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.194185197353 -0.183894842863 0.963573992252 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.256139546633 0.005911893677 0.966621756554 +vn 0.227151930332 0.082373514771 0.970369338989 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.836737871170 -0.128324687481 0.532355606556 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.963498711586 0.237371236086 0.123794898391 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.319046318531 0.589759051800 0.741885244846 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.744825839996 0.492822498083 0.449844926596 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.760400354862 0.647973775864 0.043833035976 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.405096322298 0.863581359386 0.300206899643 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.379973024130 0.906289756298 -0.185092836618 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.682067394257 0.691617667675 -0.237590149045 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.709767401218 0.168196678162 0.684061467648 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.348638504744 -0.498758524656 0.793530762196 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.352969527245 -0.536707878113 0.766392350197 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.167523771524 -0.257773190737 0.951571762562 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.389436155558 -0.407782554626 0.825864911079 +vn 0.295748770237 -0.295451253653 0.908427894115 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.555238842964 -0.456454634666 0.695240259171 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.862534463406 -0.244094222784 0.443229347467 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn 0.487581610680 -0.775879859924 0.400343090296 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.343629240990 -0.755872249603 0.557293534279 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn 0.103528626263 -0.504750728607 0.857034742832 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.339029431343 0.284355103970 0.896772682667 +vn 0.067010790110 0.193234190345 0.978861629963 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn -0.469787657261 0.093729905784 0.877789437771 +vn -0.339029431343 0.284355103970 0.896772682667 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.946406006813 0.125533640385 0.297585338354 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.948614597321 -0.097721196711 0.300966590643 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.580778717995 -0.219648644328 0.783868968487 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.448288679123 0.297675549984 0.842868030071 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.371716529131 -0.655101001263 0.657776176929 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.524495065212 -0.158350035548 0.836558520794 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.492483049631 -0.606667697430 -0.624031007290 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.177026122808 -0.302125543356 -0.936686635017 +vn 0.057427704334 -0.414175599813 -0.908383548260 +vn -0.626207888126 -0.615593433380 -0.478443711996 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.574005007744 -0.568478524685 -0.589364349842 +vn -0.636359751225 -0.637431919575 -0.434427082539 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.705403685570 -0.708261907101 0.027761107311 +vn -0.704343855381 -0.707138836384 -0.062083810568 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn 0.358009755611 -0.281399130821 0.890305280685 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn 0.134670898318 -0.693116486073 0.708133637905 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.430385142565 -0.512250244617 0.743214845657 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.831635236740 -0.554599404335 -0.028325177729 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.826602876186 -0.557232499123 -0.078864529729 +vn -0.201462924480 -0.979488193989 -0.003945601173 +vn -0.165003806353 -0.884678483009 0.436024934053 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn -0.649726748466 -0.700721383095 -0.294694274664 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.375210881233 -0.925834357738 -0.045249074697 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.284909248352 -0.955779790878 0.072881773114 +vn -0.102928921580 -0.779785394669 0.617527663708 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.424531817436 -0.905397713184 0.005259912461 +vn -0.375210881233 -0.925834357738 -0.045249074697 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.268584340811 -0.695054829121 0.666904211044 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.424531817436 -0.905397713184 0.005259912461 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.424531817436 -0.905397713184 0.005259912461 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.706194460392 -0.044653762132 0.706608414650 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.726206362247 -0.341912865639 0.596422553062 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.974349737167 0.170101836324 0.147336244583 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.985877811909 0.130831107497 -0.104537896812 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.923730432987 -0.023954166099 -0.382293522358 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.478329122066 -0.718357503414 -0.505137383938 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.613461971283 -0.711588799953 -0.342499285936 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.407492965460 -0.781558632851 -0.472351163626 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.702270984650 -0.386405408382 -0.597918331623 +vn -0.618783295155 -0.420402556658 -0.663603007793 +vn -0.477094113827 -0.544931411743 -0.689515054226 +vn -0.468870520592 -0.880146622658 0.074178211391 +vn -0.448362886906 -0.891751825809 0.061232645065 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.932627201080 -0.223822146654 -0.283037424088 +vn -0.468870520592 -0.880146622658 0.074178211391 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.964247941971 -0.187405601144 0.187363326550 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.981363117695 -0.161664009094 -0.103880442679 +vn -0.448362886906 -0.891751825809 0.061232645065 +vn -0.444202423096 -0.895280957222 0.034002799541 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.807064890862 -0.552481949329 -0.208350643516 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.868382692337 -0.492589503527 -0.057158134878 +vn -0.813132524490 -0.578888535500 -0.060856662691 +vn -0.807450592518 -0.554794609547 -0.200565382838 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.388772368431 0.459267735481 0.798704683781 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.549822390079 -0.063416108489 0.832870781422 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.477920562029 0.410443186760 0.776613354683 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.560062587261 -0.186729982495 0.807131826878 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.699011743069 -0.205537945032 0.684935569763 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.587647318840 0.285558760166 0.757051348686 +vn -0.718367397785 0.331862986088 0.611404359341 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.227597177029 0.752148985863 0.618442714214 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.133595734835 0.780554592609 0.610644459724 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.369171798229 0.707622945309 0.602479815483 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.087493650615 0.818190336227 0.568251192570 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.224660709500 0.880128324032 0.418212532997 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.015306836925 0.932955980301 0.359664946795 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.087493650615 0.818190336227 0.568251192570 +vn -0.087493650615 0.818190336227 0.568251192570 +vn 0.224660709500 0.880128324032 0.418212532997 +vn -0.015306836925 0.932955980301 0.359664946795 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn -0.015306836925 0.932955980301 0.359664946795 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.224660709500 0.880128324032 0.418212532997 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.569128751755 0.821337521076 0.038692541420 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn 0.337324202061 0.937716066837 -0.083071991801 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.535955786705 0.643807947636 -0.546134352684 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn 0.021702494472 0.953724086285 -0.299898922443 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn 0.153611332178 0.712468445301 -0.684684097767 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.264695346355 0.355452001095 -0.896431982517 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn 0.121029257774 -0.027293033898 -0.992273628712 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.048779781908 -0.453738659620 -0.889798700809 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.206205829978 -0.702378511429 -0.681280851364 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.182425379753 -0.612416327000 -0.769199073315 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.211010664701 -0.782586097717 -0.585690617561 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.351192057133 -0.756816744804 -0.551264524460 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.485435694456 -0.860150992870 -0.156500682235 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.487536758184 -0.706500649452 0.512995839119 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.410868376493 -0.855570673943 -0.314938157797 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.408026278019 -0.912963032722 -0.003611285938 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.514525294304 -0.731623828411 0.447202742100 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.101952873170 -0.909801363945 -0.402327060699 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.184225216508 -0.972478866577 -0.142639294267 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.674101769924 -0.578337550163 0.459469795227 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.585420906544 -0.788699448109 0.187711238861 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.719724059105 -0.685022294521 0.112879239023 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.858911693096 -0.182994604111 0.478313356638 +vn -0.807156682014 -0.517316579819 0.284396976233 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.916460096836 0.020301461220 0.399610698223 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.655620634556 0.408538043499 0.635026156902 +vn -0.671189248562 0.679710924625 0.295800745487 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.133595734835 0.780554592609 0.610644459724 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.227597177029 0.752148985863 0.618442714214 +vn -0.220427542925 0.888312995434 0.402879327536 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.133595734835 0.780554592609 0.610644459724 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.383149057627 0.722431600094 0.575577437878 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.639663100243 0.702030539513 0.313024312258 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.731158316135 0.601349055767 -0.322159647942 +vn 0.831336021423 0.522877693176 -0.188359692693 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn 0.099108003080 -0.402736932039 -0.909934401512 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.708833932877 0.250561743975 -0.659373402596 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.492782562971 -0.063800342381 -0.867810368538 +vn 0.428585141897 -0.040443520993 -0.902595758438 +vn 0.535544693470 0.275787591934 -0.798206150532 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn 0.226864755154 -0.286887109280 -0.930713772774 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.194933831692 -0.583831667900 -0.788125216961 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.672055184841 -0.725156843662 -0.149964749813 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.511326909065 -0.718953311443 -0.470798164606 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.892944872379 -0.385881245136 -0.231829911470 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.938371777534 -0.282592266798 -0.198997437954 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.815596401691 0.281203985214 -0.505694448948 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.949289202690 -0.309554010630 0.055011600256 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.663576424122 0.494282841682 -0.561561048031 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.821825385094 0.395930439234 -0.409685432911 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.671606421471 0.450448870659 -0.588252186775 +vn -0.869419932365 0.084259010851 -0.486836105585 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.637821733952 0.488461166620 -0.595473885536 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.490629106760 0.237269863486 -0.838442683220 +vn -0.721844017506 0.195682883263 -0.663814306259 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.545747458935 0.283221065998 -0.788635253906 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.686485171318 0.092494286597 -0.721237063408 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.183073207736 -0.386103332043 -0.904106438160 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.478759437799 -0.663799166679 -0.574595510960 +vn 0.449785411358 -0.576989471912 -0.681744992733 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn 0.329149395227 -0.467716008425 -0.820306301117 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.673811018467 -0.258386611938 -0.692253589630 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.502841472626 0.152358904481 -0.850844979286 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn 0.083382159472 -0.056732505560 -0.994901418686 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.009588683955 0.158294707537 -0.987345337868 +vn -0.245750382543 0.123391754925 -0.961447477341 +vn -0.264142423868 -0.036704715341 -0.963784992695 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn -0.025633789599 0.161498978734 -0.986539900303 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.082963459194 0.056872200221 -0.994928419590 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.225545078516 -0.033045161515 -0.973672151566 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.489780098200 -0.209073856473 -0.846406280994 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.590395748615 -0.458811551332 -0.664021730423 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.892143607140 -0.373993068933 -0.253394812346 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.545812249184 -0.730485975742 -0.410462200642 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.596728801727 -0.251290261745 -0.762081325054 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.527154386044 -0.303020209074 -0.793906211853 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.639553129673 0.242772787809 -0.729405999184 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.419903606176 0.134679481387 -0.897520124912 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.714447438717 0.682991147041 -0.151947423816 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.739929258823 0.304891109467 -0.599621653557 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.673065066338 0.472372084856 -0.569076478481 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.341846585274 0.284227907658 -0.895742952824 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.467311531305 0.620484113693 -0.629777252674 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.259521037340 0.371823370457 -0.891289055347 +vn 0.325470060110 0.351604342461 -0.877749204636 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.392812073231 0.735419094563 -0.552138984203 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.640389323235 0.549518227577 -0.536592245102 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.941307663918 0.022298494354 -0.336812436581 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.965461432934 0.242496728897 0.095286831260 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.741731941700 0.501786887646 0.445020914078 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.293927401304 0.907257616520 0.300816118717 +vn 0.360126763582 0.767400383949 0.530476570129 +vn 0.179308205843 0.861584722996 0.474889785051 +vn 0.012269859202 0.997172594070 0.074136719108 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.273158043623 0.934740722179 -0.227254107594 +vn 0.080189734697 0.994042217731 0.073822200298 +vn 0.012269859202 0.997172594070 0.074136719108 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.012269859202 0.997172594070 0.074136719108 +vn 0.132539749146 0.945317745209 0.298005938530 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn 0.033008869737 0.924311041832 -0.380209892988 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.330062657595 0.835152924061 -0.439975202084 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.768199086189 0.245171323419 -0.591406106949 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.677218377590 0.363926440477 -0.639478564262 +vn -0.893771290779 0.433860689402 0.113744199276 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.678252398968 -0.455122470856 -0.576920449734 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.984319269657 -0.152193680406 0.089177437127 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.763610422611 -0.477208584547 0.434937983751 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.594703376293 -0.397734880447 0.698666512966 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.263727605343 0.610503315926 0.746815502644 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.020327450708 0.685757458210 0.727546215057 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.253069043159 0.614814400673 0.746966719627 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.263727605343 0.610503315926 0.746815502644 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.112411670387 0.934677660465 0.337255597115 +vn 0.370204120874 0.758121490479 0.536843240261 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.542481601238 0.822646200657 0.170196890831 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.047376774251 0.985158741474 0.164977937937 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.408763051033 0.858367443085 0.310029268265 +vn 0.112411670387 0.934677660465 0.337255597115 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn 0.267536640167 0.962516665459 -0.044562082738 +vn -0.047376774251 0.985158741474 0.164977937937 +vn -0.408763051033 0.858367443085 0.310029268265 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.286273032427 0.950327754021 -0.122167788446 +vn 0.536262750626 0.829411447048 0.156521141529 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.193438187242 0.920349657536 -0.339909076691 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.518993139267 0.853364884853 -0.049137547612 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.277653843164 0.886079668999 -0.371175289154 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.679521858692 0.707831799984 -0.192935630679 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.872674405575 0.488287925720 -0.003779047867 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.580039501190 0.810850262642 -0.077948980033 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.538406550884 0.777243494987 0.325593203306 +vn 0.271541535854 0.878055930138 0.394059598446 +vn 0.318014234304 0.945945560932 -0.063670635223 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.219829887152 0.614850819111 0.757385849953 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.437919378281 0.522179126740 0.731816649437 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.029441878200 0.010064356960 0.999515831470 +vn -0.035715855658 0.282992452383 0.958456933498 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.029441878200 0.010064356960 0.999515831470 +vn -0.050312381238 0.219402447343 0.974336326122 +vn 0.075094878674 0.432029217482 0.898727715015 +vn 0.169710069895 0.354005783796 0.919716477394 +vn 0.169710069895 0.354005783796 0.919716477394 +vn -0.035715855658 0.282992452383 0.958456933498 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.035715855658 0.282992452383 0.958456933498 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn -0.085905134678 0.072124846280 0.993689239025 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.112385883927 -0.013062778860 0.993578791618 +vn -0.004842369352 -0.090278387070 0.995904803276 +vn 0.058739125729 0.414347767830 0.908221125603 +vn 0.075094878674 0.432029217482 0.898727715015 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.050312381238 0.219402447343 0.974336326122 +vn -0.085905134678 0.072124846280 0.993689239025 +vn 0.058739125729 0.414347767830 0.908221125603 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.035715855658 0.282992452383 0.958456933498 +vn -0.035715855658 0.282992452383 0.958456933498 +vn 0.029441878200 0.010064356960 0.999515831470 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.263161271811 0.103435955942 0.959190905094 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.029441878200 0.010064356960 0.999515831470 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.518912613392 -0.007385498378 0.854795396328 +vn 0.831018924713 0.197237804532 0.520100772381 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.600048422813 -0.203632548451 0.773612141609 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.864150702953 0.126768007874 0.487004548311 +vn 0.818057775497 0.564850091934 0.108286269009 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.455256909132 0.154836475849 0.876793503761 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.453169703484 0.481266558170 0.750346422195 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn 0.135830074549 -0.343074232340 0.929435431957 +vn 0.208336263895 -0.278127074242 0.937678694725 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.265029519796 -0.254425883293 0.930068194866 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.755936682224 -0.078634925187 0.649904847145 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.823928177357 -0.558669090271 0.095032870770 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.600404083729 -0.799385666847 0.022305326536 +vn -0.528669953346 -0.833349883556 0.161356776953 +vn -0.569882392883 -0.781691014767 -0.253363668919 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.673517167568 -0.634575307369 0.379063099623 +vn -0.210569992661 -0.581241369247 0.786014497280 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.498376756907 -0.793012082577 0.350360482931 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.887668788433 0.052449654788 0.457485646009 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.944252073765 0.136449009180 0.299615949392 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.697707474232 0.421750694513 0.579077363014 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.727394163609 0.509469330311 0.459715932608 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.724714219570 0.435234844685 0.534190952778 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.768063783646 0.480185359716 0.423674464226 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.778490006924 0.600795805454 0.181652903557 +vn -0.659432172775 0.712318539619 0.240315511823 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.809710144997 0.519156396389 -0.273580133915 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.675162792206 0.732949554920 -0.083307720721 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.670200228691 0.606968700886 -0.427107304335 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.649198472500 0.702223300934 -0.292273372412 +vn -0.859216272831 0.509000778198 -0.051629338413 +vn -0.942147135735 0.238965108991 -0.235062733293 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.785289108753 0.476154029369 -0.395725131035 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.347453445196 0.917836844921 -0.191967740655 +vn -0.839950859547 0.531240165234 0.110753878951 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn -0.952616810799 -0.174849286675 -0.248895525932 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.859815657139 -0.502162754536 -0.092464320362 +vn -0.662463724613 -0.694501161575 -0.280731111765 +vn -0.788645088673 -0.409951418638 -0.458234369755 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn -0.178030878305 -0.583501636982 0.792357742786 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.158309683204 -0.178065404296 0.971200704575 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.184182494879 -0.197999864817 0.962742388248 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.441284209490 0.209403678775 0.872592866421 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.505942106247 0.540051519871 0.672582268715 +vn 0.660578846931 0.637442171574 0.396614521742 +vn 0.453169703484 0.481266558170 0.750346422195 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.512911856174 0.478652119637 0.712610423565 +vn 0.608070433140 0.728028059006 0.316584140062 +vn 0.660578846931 0.637442171574 0.396614521742 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.211216762662 -0.001241557067 0.977438449860 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.621104836464 -0.359912663698 0.696197986603 +vn -0.399748653173 -0.843661308289 0.358380526304 +vn -0.019606690854 -0.578665554523 0.815329253674 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.204309478402 0.943660676479 0.260311752558 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.132539749146 0.945317745209 0.298005938530 +vn 0.179308205843 0.861584722996 0.474889785051 +vn -0.220427542925 0.888312995434 0.402879327536 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn 0.925407707691 -0.005031303037 -0.378939688206 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.681297540665 -0.322972238064 -0.656903803349 +vn 0.652328729630 -0.167368456721 -0.739225983620 +vn 0.804847180843 0.152762740850 -0.573484599590 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.122597619891 -0.747514247894 -0.652834057808 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.046912796795 -0.729911625385 -0.681929767132 +vn -0.620779097080 -0.438473641872 -0.649903237820 +vn -0.633255422115 -0.627966761589 -0.452377378941 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.671189248562 0.679710924625 0.295800745487 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.220427542925 0.888312995434 0.402879327536 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.390028774738 0.674186646938 0.627176105976 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.253249228001 0.791888356209 0.555677652359 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.340392619371 0.609669387341 0.715846419334 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.408763051033 0.858367443085 0.310029268265 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.573439121246 0.774328887463 0.267548710108 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.408763051033 0.858367443085 0.310029268265 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.408763051033 0.858367443085 0.310029268265 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.387950241566 0.306505471468 0.869223237038 +vn 0.112411670387 0.934677660465 0.337255597115 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.880949735641 0.343913435936 0.325040131807 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.904745161533 0.424362540245 0.036777820438 +vn -0.971087098122 0.209993973374 -0.113544560969 +vn -0.949271559715 0.198618978262 0.243790954351 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.678752899170 0.244429960847 0.692494392395 +vn -0.576891720295 -0.135861605406 0.805442452431 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.193375051022 0.128279089928 0.972702741623 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.263161271811 0.103435955942 0.959190905094 +vn -0.577125847340 0.201278433204 0.791462421417 +vn -0.355250090361 -0.150804743171 0.922526597977 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn -0.441548943520 -0.284639060497 -0.850890815258 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.423912823200 -0.341173976660 -0.838986456394 +vn -0.240199193358 -0.029700530693 -0.970269143581 +vn -0.157724842429 -0.135115936399 -0.978195548058 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn -0.015824938193 -0.742880165577 0.669237315655 +vn 0.059519782662 -0.753729641438 0.654483735561 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.281399369240 -0.574816942215 0.768374800682 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.261888325214 -0.752726018429 0.604001641273 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.439621299505 -0.798366189003 0.411514908075 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.180149838328 -0.906361877918 0.382170349360 +vn -0.062123641372 -0.885799050331 0.459892094135 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn -0.159160330892 -0.964936077595 0.208725690842 +vn 0.051451597363 -0.920796453953 0.386635005474 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.333943217993 -0.910978615284 0.242074161768 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.435610353947 -0.881730079651 0.181095689535 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.189692094922 -0.955165922642 0.227321282029 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.218373641372 -0.969438731670 0.111810170114 +vn -0.048545453697 -0.967491388321 0.248201131821 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.006470040418 -0.977761268616 0.209621205926 +vn -0.140495687723 -0.969917178154 0.198800444603 +vn 0.088904842734 -0.968297600746 0.233443140984 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn -0.066201880574 -0.954533576965 0.290659606457 +vn 0.244941085577 -0.836532413960 0.490119814873 +vn 0.308790862560 -0.745268821716 0.590950608253 +vn -0.085905134678 0.072124846280 0.993689239025 +vn 0.135852813721 -0.058212291449 0.989017367363 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.204170882702 0.248477354646 0.946875512600 +vn 0.058739125729 0.414347767830 0.908221125603 +vn -0.085905134678 0.072124846280 0.993689239025 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn -0.027110569179 -0.011936810799 -0.999561190605 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.019503040239 -0.172679528594 -0.984784960747 +vn 0.269662439823 -0.263775676489 -0.926123380661 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.583311021328 0.040439106524 0.811241567135 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.470662862062 -0.460005283356 0.752908766270 +vn -0.489858627319 -0.656127095222 0.574052095413 +vn -0.768608272076 -0.485239326954 0.416874170303 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn -0.347360849380 -0.510150015354 0.786821067333 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.135091811419 -0.937327325344 0.321197301149 +vn -0.028921009973 -0.899534881115 0.435890555382 +vn -0.075540587306 -0.408239841461 0.909743845463 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn 0.125578880310 -0.818379342556 -0.560789823532 +vn 0.310442298651 -0.483567774296 -0.818405628204 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.057479105890 -0.991644442081 0.115487813950 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn 0.000114159702 -0.916326463223 -0.400432020426 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.334424287081 -0.422505348921 -0.842407047749 +vn -0.136971995234 -0.962700605392 -0.233337238431 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.239525496960 -0.963812053204 -0.117020592093 +vn 0.252535343170 -0.921323895454 -0.295614898205 +vn 0.422853231430 -0.774249792099 -0.470884710550 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn 0.173997506499 -0.880611777306 -0.440735518932 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.339754194021 -0.900075256824 -0.272821515799 +vn 0.544952988625 -0.759176731110 -0.355916976929 +vn 0.451726198196 -0.783965706825 -0.425841778517 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.315271288157 -0.518904209137 0.794570624828 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.054175578058 -0.901394307613 0.429596632719 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.260502964258 -0.838142514229 0.479223728180 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.572803854942 -0.352588474751 0.739984512329 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.236986622214 0.101993352175 0.966144263744 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.147857800126 -0.099749833345 0.983965456486 +vn -0.107788465917 -0.386987119913 0.915763437748 +vn -0.034547798336 -0.278813153505 0.959723770618 +vn -0.735418856144 0.087225042284 0.671975374222 +vn -0.303747743368 -0.019316455349 0.952556669712 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.271746575832 -0.111890241504 0.955842256546 +vn -0.523545145988 0.010065250099 0.851938486099 +vn -0.735418856144 0.087225042284 0.671975374222 +vn 0.196217641234 0.079919569194 0.977298080921 +vn 0.154252499342 -0.124288119376 0.980182945728 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn -0.029381169006 -0.030018234625 0.999117434025 +vn 0.067010790110 0.193234190345 0.978861629963 +vn 0.196217641234 0.079919569194 0.977298080921 +vn -0.339029431343 0.284355103970 0.896772682667 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.827181220055 -0.138448268175 0.544613003731 +vn -0.564102113247 0.009641343728 0.825648725033 +vn -0.339029431343 0.284355103970 0.896772682667 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.285008758307 -0.406475007534 -0.868071496487 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.267445057631 -0.192847266793 -0.944077908993 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.516787350178 -0.512377858162 -0.685856938362 +vn 0.846682190895 0.200712263584 -0.492791861296 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn 0.759303212166 0.159380048513 -0.630917251110 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.484712213278 -0.006896703970 -0.874646484852 +vn 0.330834299326 -0.371046543121 -0.867682635784 +vn 0.816680550575 -0.101389199495 -0.568113625050 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn -0.806820988655 -0.332564800978 0.488303750753 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn -0.406228005886 -0.041485197842 0.912829577923 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.209566771984 0.133428663015 -0.968647778034 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn -0.538782417774 -0.202660694718 -0.817705392838 +vn -0.069656006992 0.129356831312 -0.989148557186 +vn -0.631666839123 0.276833325624 -0.724127292633 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn 0.060981951654 -0.674715280533 0.735554575920 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.427608430386 -0.371340870857 0.824170470238 +vn 0.176717445254 -0.092994883657 0.979858636856 +vn -0.167441368103 -0.416238933802 0.893704950809 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.578013658524 0.042303718626 0.814929783344 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn 0.251756250858 -0.084170669317 0.964123487473 +vn -0.090002775192 -0.362050384283 0.927803337574 +vn 0.604858994484 -0.045539114624 0.795029461384 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn -0.447785437107 -0.638254702091 0.626194119453 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.713085711002 -0.687005877495 0.139755845070 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.800140321255 0.517762780190 0.302815377712 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.869676053524 0.481602787971 0.108269944787 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.008688014932 -0.035473790020 0.999332845211 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.367894500494 -0.700198650360 -0.611862301826 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.476563870907 -0.524323523045 -0.705671131611 +vn 0.421691358089 -0.146094635129 -0.894892573357 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.414077520370 -0.196655467153 -0.888744294643 +vn 0.105665363371 -0.365992993116 -0.924599349499 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn 0.384889483452 -0.623771905899 -0.680271029472 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn 0.316687047482 -0.489543884993 -0.812438368797 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn 0.028203584254 -0.615325748920 -0.787768244743 +vn -0.261296123266 -0.475798040628 -0.839845538139 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.087292499840 0.331456899643 0.939423382282 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.411596596241 0.156486570835 0.897830843925 +vn 0.505942106247 0.540051519871 0.672582268715 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.016478214413 0.889357864857 -0.456914693117 +vn -0.437514305115 0.716767847538 -0.542977988720 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.047376774251 0.985158741474 0.164977937937 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.408763051033 0.858367443085 0.310029268265 +vn -0.047376774251 0.985158741474 0.164977937937 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.843002557755 0.537570774555 -0.019088163972 +vn -0.411975830793 0.620765864849 0.667027473450 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.318106293678 0.808898806572 0.494460374117 +vn -0.139534607530 0.974310278893 0.176775634289 +vn -0.534430682659 0.838877797127 0.103285685182 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn -0.320949465036 0.043232060969 -0.946109116077 +vn 0.145574510098 0.222784399986 -0.963937342167 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.232292786241 0.148990094662 0.961167037487 +vn -0.087292499840 0.331456899643 0.939423382282 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.059995397925 0.889339148998 -0.453295111656 +vn -0.356496870518 0.789703249931 -0.499278217554 +vn -0.086963027716 0.905135571957 -0.416133403778 +vn -0.534430682659 0.838877797127 0.103285685182 +vn -0.787490665913 0.559860408306 -0.257710725069 +vn -0.369516134262 0.895232856274 0.249030083418 +vn -0.387950241566 0.306505471468 0.869223237038 +vn -0.560695827007 0.078877851367 0.824256300926 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.070092804730 0.916692733765 -0.393397301435 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.323057621717 -0.945225358009 -0.046719886363 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.375852286816 -0.924159824848 0.068291187286 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.394036650658 -0.827092707157 -0.400815129280 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.387950241566 0.306505471468 0.869223237038 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.447341591120 0.339131593704 0.827571868896 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.417517900467 -0.904517471790 -0.086757712066 +vn -0.323057621717 -0.945225358009 -0.046719886363 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.308101117611 -0.933596551418 -0.182951375842 +vn -0.186435729265 -0.727443575859 -0.660354137421 +vn -0.354307264090 -0.814609885216 -0.459213525057 +vn -0.052991427481 0.783603668213 -0.618996977806 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.698746025562 -0.547520458698 -0.460407793522 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.825821697712 -0.556694149971 -0.090056210756 +vn -0.939724683762 -0.015627166256 0.341574728489 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.913984477520 0.205607891083 -0.349796772003 +vn 0.847370386124 0.434056639671 -0.305872917175 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.925316154957 0.358393728733 -0.123870611191 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.957574665546 0.276369482279 -0.081673927605 +vn 0.882223665714 0.299788743258 -0.363053917885 +vn 0.854635655880 0.431288868189 -0.289115548134 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.434012651443 -0.235733553767 0.869518637657 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn 0.166393876076 -0.774949491024 0.609726488590 +vn 0.952093958855 -0.222135722637 0.210173279047 +vn 0.894741058350 0.330808013678 0.300007522106 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.950541198254 -0.306927442551 0.047613322735 +vn 0.843217432499 -0.417677789927 -0.338422268629 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.902191579342 0.340740293264 -0.264473766088 +vn 0.881415486336 0.472221165895 0.010672469623 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.975543797016 -0.094598576427 0.198407247663 +vn 0.992158353329 0.027582362294 -0.121905915439 +vn 0.964519500732 0.260759145021 0.041313480586 +vn 0.339722335339 -0.772119879723 0.537047088146 +vn 0.606853306293 -0.574624598026 0.549122631550 +vn 0.472912132740 -0.407679647207 0.781121909618 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.516383767128 0.829848945141 -0.211420193315 +vn 0.910326242447 0.412144482136 0.037987414747 +vn 0.614409804344 0.747312724590 0.253030240536 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn 0.408882349730 0.910067975521 -0.067760296166 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.452918559313 0.890388429165 -0.045532457530 +vn 0.326792329550 0.941127479076 0.086521036923 +vn 0.366194635630 0.921540796757 -0.129089444876 +vn -0.253069043159 0.614814400673 0.746966719627 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.647573769093 0.433242529631 0.626856565475 +vn -0.020327450708 0.685757458210 0.727546215057 +vn -0.253069043159 0.614814400673 0.746966719627 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.503477275372 0.329060941935 0.798892676830 +vn -0.461934238672 0.250010490417 0.850947439671 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.271056413651 0.279122084379 0.921205341816 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.370860576630 0.350416839123 0.860040962696 +vn -0.411217749119 0.406187385321 0.816034138203 +vn -0.283286154270 0.279502421618 0.917402505875 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.502772688866 0.431714475155 0.748894035816 +vn -0.457814812660 0.521315336227 0.720163822174 +vn -0.457814812660 0.521315336227 0.720163822174 +vn 0.132363051176 0.588919281960 0.797279179096 +vn -0.560695827007 0.078877851367 0.824256300926 +vn -0.736113429070 0.674601316452 -0.055227596313 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.582481026649 0.595602929592 -0.553148269653 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.421104758978 0.313611149788 -0.851069211960 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.907230198383 0.196332752705 -0.372003853321 +vn -0.349258631468 0.184622913599 -0.918658137321 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.498195052147 -0.115418910980 -0.859348714352 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.866396248341 0.034091062844 -0.498192071915 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.811541140079 0.126786649227 -0.570373654366 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.900458395481 0.141342937946 -0.411335438490 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.774951875210 0.023437473923 -0.631585538387 +vn -0.889064431190 0.043844252825 -0.455677688122 +vn -0.616255939007 -0.460302233696 -0.639023005962 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.204309478402 0.943660676479 0.260311752558 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.508762955666 0.860877335072 -0.007104512304 +vn -0.446603745222 0.894501268864 0.020310429856 +vn -0.239098101854 0.963960468769 -0.116671897471 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn -0.680015206337 -0.641033887863 -0.355885982513 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.749990403652 -0.660737752914 -0.030658992007 +vn -0.209138780832 -0.976161360741 0.058051183820 +vn -0.731709063053 -0.655248463154 -0.187753319740 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.903819084167 -0.127298012376 -0.408541679382 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.922906994820 -0.375173211098 -0.086531668901 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.355505973101 -0.143865868449 -0.923535645008 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.326625823975 -0.538841307163 -0.776508629322 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.529980838299 -0.488053917885 -0.693486630917 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.226000085473 -0.775390207767 -0.589655816555 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.601899981499 -0.650427222252 -0.463315069675 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.705796301365 -0.553804755211 -0.441759973764 +vn 0.573986172676 -0.693480610847 -0.435458958149 +vn 0.451178431511 -0.619352042675 -0.642527103424 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.389436155558 -0.407782554626 0.825864911079 +vn 0.169235989451 -0.360193341970 0.917398452759 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.539327800274 -0.415947258472 0.732197642326 +vn 0.274402290583 -0.560791194439 0.781163632870 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.830068528652 -0.119470968843 0.544713616371 +vn 0.160938441753 -0.757669389248 0.632483959198 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn -0.098821595311 -0.750114619732 0.653882503510 +vn -0.051150433719 -0.430328905582 0.901221752167 +vn -0.276620745659 -0.374111890793 0.885167360306 +vn -0.590411484241 0.405412644148 0.697893142700 +vn -0.650010585785 0.251060932875 0.717254936695 +vn -0.735418856144 0.087225042284 0.671975374222 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.924569845200 0.120250284672 0.361538976431 +vn 0.273815929890 -0.854739964008 0.440958529711 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.675949811935 -0.481971591711 0.557490110397 +vn 0.867050588131 -0.340229004622 0.363960862160 +vn 0.970553517342 -0.047824073583 0.236090585589 +vn 0.879921913147 0.474158734083 -0.030182171613 +vn 0.904111444950 -0.175178438425 0.389737099409 +vn 0.881415486336 0.472221165895 0.010672469623 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn 0.248923435807 -0.588823974133 0.768975555897 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.242862716317 -0.841675460339 0.482286363840 +vn -0.621428489685 -0.689511239529 0.372022658587 +vn -0.267561286688 -0.597799122334 0.755676627159 +vn 0.223833784461 -0.794061601162 -0.565123498440 +vn -0.240883529186 -0.697934210300 -0.674435257912 +vn -0.098200760782 -0.989465296268 -0.106372416019 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn 0.031475782394 -0.144916534424 -0.988943099976 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn 0.094840519130 -0.561432182789 -0.822070062160 +vn 0.065739303827 -0.746938109398 -0.661635696888 +vn 0.147203862667 -0.777868270874 -0.610943555832 +vn 0.075115866959 -0.905055582523 -0.418607264757 +vn -0.534120261669 -0.186229407787 -0.824641823769 +vn -0.307740598917 -0.471744924784 -0.826288342476 +vn -0.631180763245 -0.548184394836 -0.548730134964 +vn 0.938025355339 0.000610377872 0.346566140652 +vn 0.546886205673 -0.028232229874 0.836730778217 +vn 0.939568758011 0.305846303701 0.153846189380 +vn 0.950614035130 -0.258485972881 -0.171807885170 +vn 0.964954078197 -0.247261434793 -0.087894394994 +vn 0.990055978298 0.139069169760 -0.021188542247 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.074762940407 0.203222677112 0.976274073124 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.485629320145 0.230432748795 0.843246638775 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.321418374777 0.367474496365 0.872727155685 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.074762940407 0.203222677112 0.976274073124 +vn 0.283379137516 0.492464959621 0.822906136513 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.485629320145 0.230432748795 0.843246638775 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.283379137516 0.492464959621 0.822906136513 +vn -0.074762940407 0.203222677112 0.976274073124 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.131599500775 0.737507283688 0.662393093109 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.109330229461 0.941514909267 0.318742185831 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.109330229461 0.941514909267 0.318742185831 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.242646485567 0.968250751495 0.060110073537 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.131599500775 0.737507283688 0.662393093109 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.448826909065 0.613783061504 0.649480342865 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.204573646188 -0.914748191833 0.348404049873 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.880636394024 0.473645627499 0.011806108057 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.878691315651 0.477109283209 -0.016380488873 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.119672834873 0.101008400321 0.987661719322 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.188408941031 0.017793446779 0.981929481030 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.701901853085 0.564634799957 0.434190422297 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.354700446129 0.034820698202 0.934331357479 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.188408941031 0.017793446779 0.981929481030 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.188408941031 0.017793446779 0.981929481030 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.314111679792 0.058616135269 0.947574794292 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.314111679792 0.058616135269 0.947574794292 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.027125038207 0.236739024520 0.971194565296 +vn -0.206207558513 0.036233242601 0.977837204933 +vn -0.206207558513 0.036233242601 0.977837204933 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.206207558513 0.036233242601 0.977837204933 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.911755323410 -0.257045537233 0.320358961821 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.636651694775 -0.563084363937 0.526887714863 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.701901853085 0.564634799957 0.434190422297 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.701901853085 0.564634799957 0.434190422297 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.701901853085 0.564634799957 0.434190422297 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn 0.713554799557 -0.435151606798 0.549074351788 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn -0.192956984043 -0.339222282171 0.920704007149 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn -0.334633797407 0.108778014779 0.936048924923 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn 0.369695425034 0.844070196152 -0.388420820236 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.334633797407 0.108778014779 0.936048924923 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn -0.202762871981 0.044235628098 0.978228211403 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.619381129742 -0.464946269989 0.632607281208 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.202524766326 -0.771763801575 0.602797091007 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.786651909351 -0.153091132641 0.598115265369 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.227208584547 -0.580720245838 0.781754612923 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.987220883369 0.152396500111 0.046585436910 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.303327411413 0.940892398357 0.150711387396 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.506033003330 0.457370489836 0.731261134148 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.290093451738 0.940565109253 0.176587253809 +vn 0.303327411413 0.940892398357 0.150711387396 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.631274282932 0.601515531540 -0.489562898874 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn 0.197829738259 -0.940914392471 -0.274851888418 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.197829738259 -0.940914392471 -0.274851888418 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.524528563023 -0.200460836291 -0.827457070351 +vn 0.197829738259 -0.940914392471 -0.274851888418 +vn -0.769450485706 -0.472503662109 -0.429751396179 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.178706854582 -0.840725898743 -0.511120200157 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.672420799732 0.229601070285 0.703657329082 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn -0.672420799732 0.229601070285 0.703657329082 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.645085215569 0.203440889716 0.736530244350 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn -0.971202492714 0.043587461114 -0.234234675765 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.378839254379 -0.581993818283 -0.719558179379 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.583150744438 0.262040317059 -0.768940865993 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.463207036257 -0.877379715443 -0.125076130033 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn 0.244689688087 -0.624031841755 -0.742099225521 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.555992066860 -0.656022727489 -0.510398864746 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.096150808036 0.063654631376 0.993329286575 +vn 0.254643589258 0.460702836514 0.850240886211 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.054755549878 0.784012436867 0.618325412273 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.096150808036 0.063654631376 0.993329286575 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.254643589258 0.460702836514 0.850240886211 +vn -0.096150808036 0.063654631376 0.993329286575 +vn 0.254643589258 0.460702836514 0.850240886211 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.254643589258 0.460702836514 0.850240886211 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn 0.317261904478 0.790387809277 0.524053394794 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.363941878080 0.109785512090 0.924928903580 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.317261904478 0.790387809277 0.524053394794 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.516634881496 0.036752458662 0.855416655540 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.516634881496 0.036752458662 0.855416655540 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.925209879875 -0.269885331392 0.266736835241 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.153454333544 -0.469212532043 0.869650125504 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.792448759079 0.608949303627 0.034723557532 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.172254130244 -0.362085193396 -0.916091084480 +vn 0.291244596243 -0.020018570125 -0.956439137459 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.838846743107 -0.329071611166 -0.433645069599 +vn 0.466906398535 -0.236898526549 -0.851984441280 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.919350385666 0.165112033486 -0.357117384672 +vn 0.592370748520 0.167298868299 -0.788103997707 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.688086986542 0.005382491741 -0.725608229637 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.730803132057 -0.124241836369 -0.671186089516 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.894795954227 -0.208162710071 -0.394979119301 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.778905391693 -0.485527932644 -0.396949648857 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.582459867001 -0.756581723690 -0.297194570303 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.398407310247 -0.854170084000 0.334163308144 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.487584769726 0.575793743134 0.656294643879 +vn -0.004625395872 0.025178126991 0.999672293663 +vn -0.035672992468 0.077534280717 0.996351301670 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.288535594940 0.014455531724 0.957360029221 +vn -0.004625395872 0.025178126991 0.999672293663 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.232914984226 0.237921655178 0.942944288254 +vn -0.035672992468 0.077534280717 0.996351301670 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn -0.035672992468 0.077534280717 0.996351301670 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.410304158926 -0.774405479431 0.481608390808 +vn 0.552535414696 -0.620800912380 0.556157231331 +vn 0.552535414696 -0.620800912380 0.556157231331 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn 0.410304158926 -0.774405479431 0.481608390808 +vn 0.069301426411 -0.423665106297 0.903163969517 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn -0.175124287605 -0.611406266689 0.771695435047 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn 0.135520935059 -0.885927915573 0.443582922220 +vn 0.283917009830 -0.872002422810 0.398751676083 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.465447813272 -0.842818975449 0.270211994648 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.275815635920 -0.256258785725 0.926421701908 +vn 0.552535414696 -0.620800912380 0.556157231331 +vn 0.528594553471 -0.735937774181 0.423064291477 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.232914984226 0.237921655178 0.942944288254 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.459898144007 -0.231092125177 0.857373952866 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.487584769726 0.575793743134 0.656294643879 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.834144592285 -0.284741282463 0.472361266613 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.319824814796 -0.932368159294 0.168527901173 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.748732030392 -0.637023806572 -0.183305755258 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.570902347565 -0.647958517075 -0.504202604294 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.663026869297 -0.326852053404 -0.673470914364 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.810734689236 -0.513062596321 -0.281915038824 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.685769379139 -0.187744989991 -0.703187167645 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.624556243420 -0.611509680748 -0.485783308744 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.455409258604 -0.854054450989 0.251383066177 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.866467535496 -0.497229367495 0.044686846435 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.426863461733 -0.857933163643 -0.285898983479 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.266588270664 -0.862479686737 -0.430185347795 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.523924887180 0.036490101367 -0.850982487202 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.686465680599 0.170581594110 -0.706871092319 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.950546622276 0.019457427785 -0.309971868992 +vn 0.912563502789 -0.373714834452 0.166027501225 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.587922394276 -0.743195712566 0.319385975599 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.453915089369 -0.848896443844 0.270806014538 +vn 0.453915089369 -0.848896443844 0.270806014538 +vn 0.587922394276 -0.743195712566 0.319385975599 +vn 0.956435620785 -0.162598088384 0.242472261190 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.694850206375 -0.184983968735 0.694956183434 +vn 0.465447813272 -0.842818975449 0.270211994648 +vn 0.465447813272 -0.842818975449 0.270211994648 +vn 0.453915089369 -0.848896443844 0.270806014538 +vn 0.867994189262 -0.239089637995 0.435226678848 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.560174226761 -0.823622524738 0.088604912162 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.980162084103 -0.166142880917 -0.108068868518 +vn 0.643816113472 -0.739150702953 0.197881504893 +vn 0.560174226761 -0.823622524738 0.088604912162 +vn 0.590715467930 -0.806350469589 -0.029225697741 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.864660620689 -0.347837835550 -0.362451195717 +vn 0.560174226761 -0.823622524738 0.088604912162 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.590715467930 -0.806350469589 -0.029225697741 +vn 0.520828485489 -0.852863729000 -0.036893356591 +vn 0.520828485489 -0.852863729000 -0.036893356591 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.694869339466 -0.418429195881 -0.584870636463 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.274543195963 -0.224540710449 -0.934990644455 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.042917381972 -0.468026548624 -0.882671654224 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn -0.063990190625 -0.437220007181 -0.897075176239 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.409019470215 -0.695324003696 -0.590954840183 +vn 0.499595552683 -0.467188239098 -0.729478895664 +vn 0.499595552683 -0.467188239098 -0.729478895664 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.409019470215 -0.695324003696 -0.590954840183 +vn 0.188240170479 -0.569500625134 -0.800146639347 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.193443819880 -0.738571822643 -0.645825982094 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.427592217922 -0.637055397034 -0.641346454620 +vn 0.520828485489 -0.852863729000 -0.036893356591 +vn 0.394156038761 -0.893297255039 -0.216011554003 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.486455798149 -0.718520760536 0.497080177069 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.499595552683 -0.467188239098 -0.729478895664 +vn 0.749511778355 -0.659742295742 0.054518498480 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.486455798149 -0.718520760536 0.497080177069 +vn 0.554613232613 -0.706817686558 0.439104676247 +vn 0.554613232613 -0.706817686558 0.439104676247 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.861029863358 -0.429624319077 -0.272122204304 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.768759310246 -0.630120694637 -0.109348192811 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.539959251881 -0.597649097443 -0.592671513557 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn -0.161456078291 -0.961875319481 -0.220743775368 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.290766537189 -0.504648089409 -0.812886893749 +vn -0.079212263227 -0.595626950264 -0.799345970154 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.254020094872 -0.811730861664 -0.525896191597 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.416124105453 -0.908334791660 -0.042054574937 +vn -0.393807053566 -0.888457477093 0.235710248351 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.327255338430 -0.944576919079 0.026045057923 +vn -0.366184175014 -0.881492078304 0.298128902912 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.729899942875 -0.569648981094 0.377817600965 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.628532528877 -0.762571930885 0.153071716428 +vn -0.471601903439 -0.794673979282 0.382210522890 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.519463300705 -0.846371293068 -0.117530994117 +vn -0.291796803474 -0.953618049622 0.073941029608 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn 0.160140171647 -0.822294294834 -0.546065270901 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.192814096808 -0.594672739506 -0.780504345894 +vn -0.375377774239 -0.755562245846 -0.536858677864 +vn -0.070841103792 -0.960352778435 -0.269636899233 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.397055238485 -0.917237818241 0.031967546791 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.242176041007 -0.913083732128 0.328068315983 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.156231343746 -0.785838067532 0.598372995853 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.513081073761 -0.750334918499 0.416827619076 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.441990941763 -0.709040522575 0.549459338188 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn 0.417561560869 -0.689145386219 0.592216968536 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn -0.209151834249 -0.533267676830 0.819683551788 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.443723082542 0.653885424137 -0.612816214561 +vn -0.840556323528 0.541296303272 0.021526474506 +vn -0.842809736729 0.524093627930 0.122464656830 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.926395535469 0.212197542191 0.311068296432 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn -0.275668442249 0.308932840824 -0.910256803036 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.117609016597 -0.507979869843 -0.853302180767 +vn 0.330104917288 -0.361622065306 -0.871929049492 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.595358073711 -0.784905374050 -0.171674996614 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.651124894619 -0.758814871311 0.015374669805 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.239769145846 -0.773571789265 0.586598157883 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.596639752388 -0.721411108971 0.351549416780 +vn 0.679681301117 -0.729310512543 0.078354842961 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.585008740425 -0.782305777073 0.213921636343 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.641663014889 -0.747617542744 0.171279326081 +vn 0.698903441429 -0.711515784264 0.072658590972 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.711502373219 -0.696542620659 -0.092697240412 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.591400563717 -0.780224919319 -0.203701823950 +vn 0.701678097248 -0.711883068085 0.029501596466 +vn 0.750673115253 -0.641616702080 -0.157536834478 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.257752180099 -0.654427826405 -0.710836112499 +vn 0.665769279003 -0.679318904877 -0.308669835329 +vn 0.500242888927 -0.405992329121 -0.764805376530 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.174743488431 0.009917460382 -0.984564065933 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn 0.662599146366 -0.519838631153 -0.539193987846 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.161422282457 -0.139288842678 -0.977006375790 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.531068980694 0.293644726276 -0.794819831848 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.871813118458 -0.005059626419 -0.489812523127 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.527581334114 0.393371969461 -0.752938508987 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.643263280392 -0.636784613132 -0.425109058619 +vn 0.155823215842 -0.064390845597 -0.985683977604 +vn -0.301210343838 0.243355542421 -0.921981811523 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn 0.674390673637 -0.636433362961 -0.374365925789 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.717560648918 -0.694060981274 -0.058189537376 +vn 0.514324247837 -0.516093671322 -0.684921801090 +vn 0.294105798006 -0.266938149929 -0.917739510536 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.903762876987 0.246395617723 0.350002735853 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.147812932730 -0.499316662550 0.853717863560 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.936993002892 0.101482637227 0.334283322096 +vn -0.046108797193 -0.511099517345 0.858283877373 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.987220883369 0.152396500111 0.046585436910 +vn -0.936993002892 0.101482637227 0.334283322096 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.426190882921 -0.692445337772 0.582134664059 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn -0.494620203972 -0.327400892973 0.805083572865 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn -0.716524899006 -0.209137350321 0.665472507477 +vn 0.216387555003 -0.792263209820 0.570522069931 +vn 0.356181681156 -0.751746535301 0.554988086224 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.581949949265 -0.764983475208 0.275924861431 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn 0.595780968666 -0.744827687740 0.300460904837 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.623058736324 -0.720617711544 0.304151177406 +vn 0.508039653301 -0.692776381969 0.511816978455 +vn 0.528803288937 -0.717596948147 0.453234672546 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.731317400932 -0.539573132992 0.417175889015 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.248956441879 -0.794233560562 0.554268658161 +vn -0.453740745783 -0.766918957233 0.453822225332 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn 0.530688881874 -0.768034517765 0.358458191156 +vn 0.591515541077 -0.752557575703 0.289424389601 +vn 0.591515541077 -0.752557575703 0.289424389601 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn 0.530688881874 -0.768034517765 0.358458191156 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.536898553371 -0.759433269501 0.367424845695 +vn 0.530688881874 -0.768034517765 0.358458191156 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.554771304131 -0.800131857395 0.228074103594 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn 0.300278335810 -0.889515042305 0.344377607107 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn 0.533105850220 -0.792724728584 0.295610725880 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn 0.300278335810 -0.889515042305 0.344377607107 +vn 0.135520935059 -0.885927915573 0.443582922220 +vn 0.135520935059 -0.885927915573 0.443582922220 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.180990353227 -0.796912014484 0.576345145702 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.284306257963 -0.792260944843 0.539900481701 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.355224251747 -0.699728786945 0.619834899902 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.546890854836 -0.178878933191 0.817870855331 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.287652492523 -0.039519365877 0.956919133663 +vn -0.035672992468 0.077534280717 0.996351301670 +vn -0.035672992468 0.077534280717 0.996351301670 +vn -0.004625395872 0.025178126991 0.999672293663 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.092231564224 -0.556987345219 0.825383841991 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.499062180519 -0.256094902754 0.827860116959 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn -0.293638288975 -0.111764669418 0.949360430241 +vn -0.004625395872 0.025178126991 0.999672293663 +vn -0.004625395872 0.025178126991 0.999672293663 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.017673462629 -0.461896091700 0.886757969856 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.234883025289 0.208845853806 0.949322581291 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.071927569807 -0.503380060196 0.861066162586 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.112957909703 -0.620997428894 0.775630533695 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn -0.024860668927 -0.316736102104 0.948187828064 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.543487012386 -0.280511081219 0.791160821915 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.112448878586 -0.172594755888 0.978553175926 +vn 0.119672834873 0.101008400321 0.987661719322 +vn 0.694415569305 -0.021816432476 0.719243407249 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.058332707733 -0.020505351946 0.998086571693 +vn 0.234883025289 0.208845853806 0.949322581291 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.027125038207 0.236739024520 0.971194565296 +vn 0.221945360303 0.419836610556 0.880044043064 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.166294232011 0.550812959671 0.817894458771 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn 0.175731316209 -0.003851976711 0.984430611134 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.129663527012 -0.192400217056 0.972712457180 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.683165788651 -0.057890441269 0.727965116501 +vn -0.911608457565 0.391552716494 0.125126004219 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.606130063534 0.280255675316 0.744354128838 +vn -0.578004896641 0.259107351303 0.773804724216 +vn -0.789368987083 0.531028747559 0.308066695929 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.677267670631 0.631871998310 0.376890242100 +vn -0.615168273449 0.781630039215 0.103065654635 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.713334560394 0.697373151779 -0.069458454847 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.784244716167 0.604237020016 0.140917971730 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.721555650234 0.631091058254 -0.284748166800 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.945204854012 0.321921139956 -0.054355837405 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.945134520531 0.274897247553 0.176500037313 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.819403469563 0.542005181313 -0.186569884419 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.810429036617 0.581710219383 -0.069411993027 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.717592597008 0.544949829578 -0.433694094419 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.424883872271 0.424551874399 -0.799518227577 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn 0.481452792883 -0.399535596371 -0.780111849308 +vn -0.010878787376 0.047278579324 -0.998822510242 +vn -0.040102791041 0.157673552632 -0.986676633358 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn -0.027139838785 0.297324597836 -0.954390645027 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.242206633091 -0.299529105425 -0.922831654549 +vn 0.240511506796 0.018549861386 -0.970468997955 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.108458139002 -0.328526467085 -0.938246846199 +vn 0.236112982035 -0.001613639994 -0.971724271774 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.277681350708 -0.025956066325 -0.960322499275 +vn 0.102752819657 0.184994399548 -0.977353036404 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn -0.003276867792 -0.080719538033 -0.996731460094 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn 0.201174870133 -0.087589986622 -0.975631415844 +vn 0.316024690866 -0.094793908298 -0.944003462791 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn 0.101619660854 -0.255653083324 -0.961413025856 +vn -0.036979392171 -0.187850594521 -0.981501221657 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.229903444648 -0.600790917873 -0.765633523464 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn -0.026375874877 -0.660482764244 -0.750377774239 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn -0.201480373740 -0.832634091377 -0.515874087811 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn -0.153387278318 -0.832074820995 -0.533032655716 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.227712795138 -0.968599319458 0.099810823798 +vn 0.027616413310 -0.965272784233 -0.259780257940 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.056213788688 -0.686007142067 -0.725420057774 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.065242014825 -0.397843718529 -0.915130496025 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.297565698624 -0.840286493301 -0.453181296587 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.144834354520 -0.934874594212 -0.324087142944 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.343803733587 -0.740231871605 -0.577802479267 +vn 0.000912307180 -0.956513702869 -0.291685968637 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.358295381069 -0.487439304590 -0.796258330345 +vn -0.425949454308 -0.498663961887 -0.754918098450 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.211206659675 -0.288128644228 -0.934009432793 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.382034838200 -0.694504439831 -0.609682679176 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.316609293222 -0.120613738894 -0.940856456757 +vn -0.019057372585 -0.177110031247 -0.984006524086 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn -0.141708299518 -0.329541563988 -0.933445811272 +vn 0.090835489333 -0.963552772999 -0.251624643803 +vn 0.241303235292 -0.614637672901 -0.750994861126 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.347830146551 0.660270571709 -0.665625214577 +vn -0.350479990244 0.437364995480 -0.828176081181 +vn -0.361618489027 0.031844489276 -0.931782186031 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.078917674720 0.331730693579 -0.940067410469 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.448264569044 0.485658913851 -0.750462710857 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.210705280304 0.061815194786 -0.975593209267 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.712247908115 0.508445441723 -0.483927845955 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.452509254217 0.396822035313 -0.798603534698 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.493341773748 0.344065487385 -0.798894762993 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.692287385464 0.521458029747 -0.498818278313 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.871990084648 0.489088982344 -0.020622229204 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.850674211979 0.522735774517 -0.055684074759 +vn -0.880456626415 0.472398698330 -0.040442653000 +vn -0.854712486267 0.359191447496 0.374764025211 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.841622591019 0.437275558710 0.316956669092 +vn -0.846006751060 0.409653961658 0.341256827116 +vn -0.702346086502 0.236375972629 0.671443521976 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.877859234810 -0.107805848122 0.466627299786 +vn -0.785008013248 0.203743636608 0.585022211075 +vn -0.619045197964 0.074977569282 0.781768143177 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.334633797407 0.108778014779 0.936048924923 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.334633797407 0.108778014779 0.936048924923 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.202762871981 0.044235628098 0.978228211403 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.488049238920 0.155030697584 0.858937382698 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.646497070789 0.081178493798 0.758585274220 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.557461321354 0.174925819039 0.811565041542 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.173753112555 -0.033539067954 0.984217941761 +vn -0.330435961485 0.111589379609 0.937208533287 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.458910495043 -0.049582216889 0.887097954750 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.501991808414 -0.171072304249 0.847784459591 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.721782505512 -0.005383551121 0.692098975182 +vn -0.653137028217 0.147144690156 0.742805838585 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.654840648174 0.184742674232 0.732839584351 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.647204220295 -0.005476547871 0.762296974659 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.657491862774 -0.150105699897 0.738358139992 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.873160123825 0.306886225939 0.378698021173 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.916443407536 0.266949117184 0.298110216856 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.642937421799 -0.054738871753 0.763960123062 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.678899943829 0.618567526340 -0.395561784506 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.676860630512 0.594577789307 -0.433978050947 +vn -0.587254881859 0.526393055916 -0.614851236343 +vn -0.470546931028 0.462075620890 -0.751712501049 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.469751149416 0.765853762627 -0.439092069864 +vn -0.473276704550 0.816994488239 -0.329437643290 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.277536809444 0.877475261688 -0.391165494919 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.244834110141 0.793942570686 -0.556517302990 +vn -0.387393981218 0.713189482689 -0.584197461605 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn -0.117384985089 0.660975337029 -0.741169571877 +vn -0.281692802906 0.468684077263 -0.837248146534 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.100804962218 0.148268595338 -0.983796119690 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.446126013994 -0.152536511421 -0.881875395775 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.699311733246 -0.076596602798 -0.710701107979 +vn 0.676580607891 -0.353477507830 -0.645981729031 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.855498135090 -0.216838672757 -0.470216870308 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.835438132286 0.233318656683 -0.497599750757 +vn 0.945405006409 -0.279130101204 -0.168213531375 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.788167059422 0.469254255295 -0.398237556219 +vn 0.989614725113 0.143259719014 -0.011802316643 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.683103263378 -0.540835082531 0.490782380104 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.439381361008 -0.207031399012 0.874117851257 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.094372428954 0.461883842945 0.881905436516 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.094372428954 0.461883842945 0.881905436516 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.121771819890 0.907417356968 0.402200639248 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.256296396255 0.374693721533 0.891020059586 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.125300318003 0.134481579065 0.982962131500 +vn -0.038040585816 0.040302138776 0.998463153839 +vn -0.038040585816 0.040302138776 0.998463153839 +vn -0.092569380999 0.481423765421 0.871585965157 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.006276889239 0.523106515408 0.852244198322 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.090679392219 0.816002249718 0.570891857147 +vn 0.006276889239 0.523106515408 0.852244198322 +vn 0.006276889239 0.523106515408 0.852244198322 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.121771819890 0.907417356968 0.402200639248 +vn 0.094372428954 0.461883842945 0.881905436516 +vn 0.006276889239 0.523106515408 0.852244198322 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.121771819890 0.907417356968 0.402200639248 +vn -0.090679392219 0.816002249718 0.570891857147 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.065149024129 0.968082070351 0.242018088698 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.149969920516 0.969446182251 0.194121301174 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.246833741665 0.934036254883 0.258165508509 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.357779502869 0.923080861568 -0.141122400761 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.673667073250 0.396585196257 -0.623612761497 +vn -0.608903050423 0.524954736233 -0.594692826271 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.408774822950 0.130344390869 -0.903279304504 +vn -0.366888701916 0.236831426620 -0.899613022804 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn -0.036002598703 -0.139449045062 -0.989574551582 +vn -0.052284561098 -0.164256900549 -0.985030949116 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.311450004578 -0.462049156427 -0.830367088318 +vn 0.236821636558 -0.530136287212 -0.814168930054 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.704556524754 -0.690262138844 -0.164736986160 +vn 0.523449182510 -0.696044564247 -0.491449832916 +vn 0.476768404245 -0.740061700344 -0.474342286587 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.653732180595 -0.718960464001 0.236072242260 +vn 0.620975375175 -0.783508956432 -0.022433303297 +vn 0.518730282784 -0.854915916920 0.006139353849 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.497199982405 -0.602465748787 0.624361455441 +vn 0.504551768303 -0.829032003880 0.241108819842 +vn 0.382935672998 -0.885049641132 0.264664679766 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.354534059763 -0.750870287418 0.557224750519 +vn 0.119527801871 -0.816052436829 0.565483450890 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.038040585816 0.040302138776 0.998463153839 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn -0.038040585816 0.040302138776 0.998463153839 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.125300318003 0.134481579065 0.982962131500 +vn 0.270803511143 -0.386747300625 0.881528198719 +vn 0.045098394156 -0.479812443256 0.876211225986 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.038040585816 0.040302138776 0.998463153839 +vn -0.234272703528 -0.042228519917 0.971253335476 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.092569380999 0.481423765421 0.871585965157 +vn -0.209088429809 0.424714595079 0.880851626396 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.175727561116 0.689686655998 0.702461481094 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.046635005623 0.905606448650 0.421547323465 +vn -0.004725415260 0.954034984112 0.299657970667 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.004725415260 0.954034984112 0.299657970667 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.113789513707 0.780125617981 0.615187764168 +vn -0.128022998571 0.758390307426 0.639104306698 +vn -0.004725415260 0.954034984112 0.299657970667 +vn 0.046635005623 0.905606448650 0.421547323465 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn -0.004725415260 0.954034984112 0.299657970667 +vn -0.004725415260 0.954034984112 0.299657970667 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn -0.065149024129 0.968082070351 0.242018088698 +vn -0.004725415260 0.954034984112 0.299657970667 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.297269523144 0.952216386795 0.070105269551 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.156814858317 0.983114242554 -0.094316169620 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn -0.095253936946 0.959836602211 -0.263894736767 +vn 0.053862564266 0.980405032635 -0.189485639334 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn 0.187974944711 0.813540935516 -0.550287723541 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn -0.317155778408 0.702843785286 -0.636728227139 +vn 0.002242129063 0.749514043331 -0.661984682083 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn -0.155637040734 0.360485523939 -0.919688701630 +vn 0.129199773073 0.375185638666 -0.917901515961 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.060935895890 -0.076402917504 -0.995213270187 +vn 0.269014984369 -0.078607410192 -0.959922790527 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.467446297407 -0.797998487949 -0.380384445190 +vn 0.289471894503 -0.512713968754 -0.808288574219 +vn 0.382335335016 -0.497620224953 -0.778584480286 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.409876346588 -0.911997258663 -0.016198895872 +vn 0.432791292667 -0.800442516804 -0.414708852768 +vn 0.365264266729 -0.818917512894 -0.442669272423 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.174779847264 -0.957992732525 0.227380603552 +vn 0.259054720402 -0.960606396198 -0.100628063083 +vn 0.115236766636 -0.977209568024 -0.178274780512 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.102916389704 -0.977832078934 -0.182353064418 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.038977205753 -0.981028497219 0.189904913306 +vn -0.168345868587 -0.983503580093 0.066184416413 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.325221389532 -0.836283624172 0.441430330276 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.200875982642 -0.531464934349 0.822917878628 +vn -0.133754879236 -0.847533881664 0.513610720634 +vn -0.341652840376 -0.826769411564 0.446906805038 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.411269128323 -0.523518621922 0.746180891991 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.423713356256 -0.109792359173 0.899117708206 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.214608341455 0.516929745674 0.828689873219 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.336109995842 0.348441511393 0.874996364117 +vn -0.175727561116 0.689686655998 0.702461481094 +vn -0.214608341455 0.516929745674 0.828689873219 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.054755549878 0.784012436867 0.618325412273 +vn 0.046635005623 0.905606448650 0.421547323465 +vn -0.175727561116 0.689686655998 0.702461481094 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.081253156066 -0.948016583920 -0.307672768831 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.268750041723 -0.944639980793 0.188225045800 +vn 0.231874272227 -0.820132136345 -0.523084700108 +vn 0.584060728550 -0.472724586725 -0.659851908684 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.999197006226 -0.013656531461 0.037667006254 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn -0.141119390726 -0.374258041382 0.916523993015 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.798023343086 -0.602499783039 -0.012357043102 +vn 0.935255706310 -0.353455752134 0.019125895575 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.736387848854 -0.150494113564 -0.659609317780 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.800038218498 0.208430096507 -0.562579572201 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.356513082981 -0.697556674480 -0.621540963650 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.304330408573 -0.793034672737 -0.527711093426 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.560852169991 -0.336584091187 -0.756409943104 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.322998225689 0.476452618837 -0.817719399929 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.661050438881 0.078701704741 -0.746202647686 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.455111831427 -0.433408737183 -0.777836799622 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.433478921652 -0.505406737328 -0.746096551418 +vn 0.425416529179 -0.038051687181 -0.904197335243 +vn 0.522343158722 0.054986000061 -0.850960731506 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.534159302711 0.839426577091 0.100184306502 +vn 0.757121384144 0.595956921577 -0.267586499453 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn 0.468820512295 0.504855453968 -0.724795341492 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.330816537142 0.821879863739 -0.463760614395 +vn 0.503617525101 0.812182068825 -0.294499009848 +vn 0.638090133667 0.488221794367 -0.595382630825 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.695233583450 0.684673905373 -0.218796551228 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.290093451738 0.940565109253 0.176587253809 +vn -0.473572015762 0.867844879627 0.150249123573 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.658086836338 0.691037118435 -0.298980653286 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.273009449244 0.860975801945 -0.429169535637 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.394390285015 0.915188133717 -0.082987517118 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn -0.205601692200 0.946526050568 -0.248628988862 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.345520466566 0.916609048843 -0.201105564833 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.319511979818 0.905989944935 -0.277658611536 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.672298371792 0.739992916584 -0.020625833422 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.082643136382 0.941257119179 -0.327421933413 +vn -0.414547055960 0.883300960064 -0.218929663301 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.690027296543 0.696177899837 -0.197986468673 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.411774367094 0.846359968185 -0.337811619043 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn -0.141386777163 0.929110169411 -0.341707617044 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.410014301538 0.809555232525 -0.420129299164 +vn 0.223141282797 0.610668420792 -0.759797394276 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.614214539528 0.333024352789 -0.715426623821 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.879203557968 0.280645579100 -0.385018318892 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.657837927341 0.378287076950 -0.651266574860 +vn 0.233906283975 0.632930636406 -0.738028883934 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.506191194057 0.784512937069 -0.358203768730 +vn 0.236852481961 0.874147355556 -0.423989772797 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.344998806715 0.866717040539 -0.360246300697 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.714554429054 0.667727410793 0.208691373467 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.348152428865 0.870052337646 -0.348996847868 +vn 0.376080244780 0.926337480545 -0.021506395191 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.836690306664 0.270335048437 -0.476306915283 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.607457041740 0.710641443729 -0.354943275452 +vn 0.604264497757 0.669568955898 -0.431904941797 +vn 0.083596318960 0.705422341824 0.703840136528 +vn -0.141477271914 0.989577353001 0.026847619563 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.242646485567 0.968250751495 0.060110073537 +vn 0.083596318960 0.705422341824 0.703840136528 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.242646485567 0.968250751495 0.060110073537 +vn 0.037707228214 0.982987165451 -0.179762169719 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.242646485567 0.968250751495 0.060110073537 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.146492078900 0.927200198174 -0.344731599092 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.342749416828 0.924339294434 -0.167689189315 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.655902504921 0.742715775967 -0.134778127074 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.871123313904 0.373719185591 -0.318556308746 +vn -0.938181340694 0.340947598219 -0.059753816575 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.872809171677 -0.341396838427 0.348786950111 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.981501281261 -0.186295166612 -0.044151421636 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn -0.545271813869 -0.699797272682 0.461478531361 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn -0.268343746662 -0.638682842255 0.721162855625 +vn 0.291242122650 -0.640502154827 0.710587799549 +vn 0.150246888399 -0.894174337387 0.421756029129 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.673261463642 0.576191544533 -0.463381379843 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.713754475117 0.560689210892 -0.419740587473 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.453665226698 0.661064624786 -0.597646594048 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn -0.176629319787 0.697645485401 -0.694329082966 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.668538451195 -0.460031986237 0.584317445755 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.797018706799 0.597555816174 -0.087682552636 +vn -0.948703587055 0.192561715841 0.250761777163 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.631175696850 0.324559658766 0.704470157623 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.740443646908 0.314420253038 0.594039678574 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.182598531246 0.715381562710 0.674453139305 +vn -0.109330229461 0.941514909267 0.318742185831 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.431219965219 0.861944854259 0.266646653414 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.524120569229 0.848639190197 0.071478672326 +vn -0.668778121471 0.668187499046 0.325977385044 +vn -0.576677322388 0.648915290833 0.496338844299 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.604831039906 0.008647575043 0.796306848526 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.492510139942 -0.097670763731 0.864808738232 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn -0.571737766266 0.732720911503 -0.369101554155 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.100757867098 0.856254220009 -0.506632566452 +vn -0.217604145408 0.731005907059 -0.646744787693 +vn -0.425220996141 0.709233522415 -0.562294363976 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.584861516953 -0.029748234898 0.810587465763 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.251433730125 0.644871890545 0.721748828888 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.535930573940 0.770952641964 0.344108164310 +vn 0.381881237030 0.563686668873 0.732409715652 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.514674782753 0.424443304539 0.744954884052 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.608824074268 -0.275057256222 0.744094610214 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.229931414127 -0.389015793800 0.892075240612 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.908035099506 -0.210515215993 0.362154066563 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.511419832706 -0.781244933605 0.357919096947 +vn 0.634775996208 -0.760179579258 0.138515204191 +vn 0.991328895092 -0.113044984639 -0.066991284490 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.656224668026 -0.205502897501 0.726042509079 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.338420450687 -0.825779497623 0.451176017523 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.232008248568 -0.536629438400 0.811295926571 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn 0.071474067867 -0.435570329428 0.897312641144 +vn -0.004625395872 0.025178126991 0.999672293663 +vn 0.288535594940 0.014455531724 0.957360029221 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn 0.811073362827 -0.208045750856 -0.546696424484 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.734331071377 -0.294317692518 -0.611665785313 +vn 0.788941442966 -0.018234614283 -0.614197731018 +vn 0.801559090614 0.223377063870 -0.554622173309 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.684462308884 -0.341979593039 0.643864393234 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.610466539860 -0.416379898787 0.673764348030 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.726929843426 -0.403456211090 0.555694282055 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.726210057735 -0.395518779755 0.562302231789 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.202762871981 0.044235628098 0.978228211403 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.560032069683 -0.786853432655 0.259279340506 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.560032069683 -0.786853432655 0.259279340506 +vn 0.554771304131 -0.800131857395 0.228074103594 +vn 0.554771304131 -0.800131857395 0.228074103594 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn 0.526070177555 -0.834664642811 0.163049384952 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn -0.071950569749 -0.950316131115 0.302857011557 +vn 0.591515541077 -0.752557575703 0.289424389601 +vn 0.590239226818 -0.761261343956 0.268512219191 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.526070177555 -0.834664642811 0.163049384952 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.104877673090 -0.737829804420 0.666789233685 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.563823878765 -0.815900862217 0.128095164895 +vn 0.653912723064 -0.623547196388 0.428470611572 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.653912723064 -0.623547196388 0.428470611572 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.639154016972 -0.695473492146 0.328327208757 +vn 0.363275855780 -0.318919390440 0.875397682190 +vn 0.261660903692 -0.444394350052 0.856765568256 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.536898553371 -0.759433269501 0.367424845695 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.627686858177 -0.765295922756 0.142588213086 +vn 0.554613232613 -0.706817686558 0.439104676247 +vn 0.539303719997 -0.757244586945 0.368418484926 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn -0.119740322232 -0.991864562035 0.043207794428 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn -0.048961449414 -0.929446697235 -0.365693271160 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn 0.279040306807 -0.729090750217 -0.624950528145 +vn 0.564531207085 -0.810247540474 0.157491043210 +vn 0.476696014404 -0.850157141685 0.223592743278 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.140470072627 0.209249109030 -0.967720508575 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.514849841595 0.027653733268 -0.856834232807 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.729452431202 -0.625799298286 0.276178151369 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.624742865562 -0.651130437851 0.430958807468 +vn 0.352315664291 -0.931752741337 0.087809689343 +vn 0.525851249695 -0.848270535469 -0.062589950860 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.176694035530 0.500781595707 -0.847347021103 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.521646261215 0.109020903707 -0.846167623997 +vn 0.568980515003 0.064607515931 -0.819809138775 +vn 0.171955436468 0.529781341553 -0.830519735813 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.363941878080 0.109785512090 0.924928903580 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn 0.324504107237 -0.427837014198 0.843595027924 +vn 0.340282380581 -0.382701039314 0.858922481537 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.364101141691 -0.929735064507 0.054982718080 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.752022862434 -0.514463245869 -0.412054896355 +vn 0.559680283070 -0.749737679958 -0.353060066700 +vn 0.240792527795 -0.970571935177 -0.003004235681 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn -0.074265211821 -0.373613417149 -0.924606800079 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.163060486317 -0.384637802839 -0.908551037312 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.403615891933 -0.100003473461 -0.909446835518 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.827641427517 -0.113630585372 -0.549634158611 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.079553619027 -0.875217258930 -0.477143585682 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn -0.057935588062 -0.779576897621 -0.623621106148 +vn 0.223080739379 -0.690481960773 -0.688091278076 +vn 0.363940000534 -0.870755136013 -0.330655604601 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.837370514870 -0.543764710426 -0.055951450020 +vn 0.668449163437 -0.649779140949 -0.361887782812 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.903918921947 0.398155480623 -0.156213954091 +vn -0.760393679142 0.343544006348 -0.551161468029 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.892418026924 -0.216831088066 -0.395694732666 +vn -0.878178358078 -0.175636082888 -0.444921076298 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn 0.222291097045 -0.811474919319 0.540458202362 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.426152616739 -0.798374474049 0.425431698561 +vn -0.242103204131 -0.685089111328 -0.687050879002 +vn 0.472686260939 -0.862592041492 -0.180284857750 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.645085215569 0.203440889716 0.736530244350 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.628692030907 0.732832312584 -0.260198384523 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn 0.079247862101 0.969927549362 -0.230131030083 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn -0.132732585073 0.987605988979 -0.083764702082 +vn 0.327142566442 0.847049534321 0.418909132481 +vn 0.203795030713 0.978946566582 -0.011453438550 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.327142566442 0.847049534321 0.418909132481 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.555045068264 -0.208258599043 0.805328071117 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.625582337379 -0.136659100652 0.768095731735 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.727658629417 -0.171462669969 0.664163768291 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.657310307026 -0.511882245541 0.553100109100 +vn -0.385458141565 -0.653668999672 0.651259422302 +vn -0.640274345875 -0.423490315676 0.640862464905 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.473156034946 -0.648721933365 0.596056401730 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn -0.306055247784 -0.144851490855 0.940929472446 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.354700446129 0.034820698202 0.934331357479 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.374189198017 -0.555483102798 0.742577254772 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.742680370808 -0.634518027306 0.214039161801 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn 0.714853286743 -0.650683462620 0.256116777658 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.659638285637 -0.392307132483 0.641071319580 +vn 0.303534507751 -0.735307157040 0.605962216854 +vn 0.213522091508 -0.907311439514 0.362207502127 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.320037037134 -0.884738564491 0.338842153549 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.349309086800 -0.879998743534 0.321846753359 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.661074161530 -0.704808950424 0.257342725992 +vn -0.573730945587 -0.763768911362 0.295786827803 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.814631104469 -0.517790317535 0.261284053326 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.562911212444 -0.417130827904 0.713535487652 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.562911212444 -0.417130827904 0.713535487652 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.351726382971 -0.147820845246 0.924357891083 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.418743818998 -0.453809380531 0.786581635475 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.725175499916 -0.509295403957 0.463399112225 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.518619835377 -0.150040104985 0.841737151146 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.677911162376 -0.171685174108 0.714815080166 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.608457267284 0.157792612910 0.777741134167 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.234294578433 -0.665710151196 0.708474457264 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.459269702435 -0.773269057274 0.437179893255 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.856631577015 0.492435991764 0.153912588954 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.914469540119 -0.242004066706 0.324313849211 +vn -0.358048766851 -0.624385535717 0.694221735001 +vn -0.906540632248 -0.160127803683 0.390567809343 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.684804737568 -0.664337873459 0.299495548010 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.798626184464 -0.023845696822 0.601354777813 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.746172189713 0.359903126955 0.560086369514 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.860423803329 -0.202527076006 0.467604160309 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.809427082539 -0.343396574259 0.476347148418 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.591782271862 -0.301380485296 0.747638642788 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.492519497871 -0.088171571493 0.865823507309 +vn -0.461953103542 0.098662018776 0.881399512291 +vn -0.616403996944 -0.046978741884 0.786027431488 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.819547474384 -0.149944037199 0.553044915199 +vn -0.878214716911 -0.449576526880 0.163155734539 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn -0.550928473473 -0.090877428651 0.829589724541 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.577446520329 -0.303569018841 0.757892727852 +vn -0.675307810307 -0.183331325650 0.714387118816 +vn -0.636181175709 -0.112482629716 0.763296246529 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.748724162579 0.597042918205 -0.288013637066 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.307974070311 0.947956979275 -0.080805882812 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn 0.182218909264 -0.496878981590 0.848473668098 +vn 0.392328858376 -0.721172392368 0.570953965187 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.541634559631 -0.827475488186 0.148041695356 +vn 0.679533302784 -0.730276048183 0.070223495364 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.858834862709 -0.343651831150 -0.379876434803 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.447879314423 -0.893079757690 0.042575549334 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.643597602844 -0.741183161736 -0.190865457058 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.943861186504 -0.260932624340 -0.202583923936 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.767445862293 -0.639363825321 -0.047336645424 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.275597184896 -0.961144804955 0.015710320324 +vn 0.491151094437 -0.666431069374 0.560927987099 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.373320966959 0.424053817987 0.825111985207 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.764400541782 -0.041232846677 0.643421828747 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.816324055195 0.200977146626 0.541500926018 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.378446906805 0.448631554842 0.809634268284 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.087227329612 -0.761248648167 0.642566621304 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.279852241278 -0.486823260784 0.827457427979 +vn -0.328510224819 -0.452966272831 0.828795850277 +vn -0.149849325418 -0.801799178123 0.578500866890 +vn -0.109330229461 0.941514909267 0.318742185831 +vn -0.182598531246 0.715381562710 0.674453139305 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.421047270298 0.334669202566 0.843039572239 +vn -0.109330229461 0.941514909267 0.318742185831 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.485629320145 0.230432748795 0.843246638775 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.421047270298 0.334669202566 0.843039572239 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.453291714191 -0.478627860546 0.751958787441 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.371392548084 -0.273312330246 0.887337565422 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.337292581797 -0.545221269131 0.767442166805 +vn -0.162412509322 -0.601992547512 0.781810164452 +vn -0.086682282388 -0.655554294586 0.750156462193 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn -0.332097560167 0.081697568297 0.939700365067 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.400463789701 -0.304052025080 0.864396393299 +vn -0.225902393460 -0.420675784349 0.878635287285 +vn -0.039725661278 -0.290360718966 0.956092298031 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.724548757076 0.585632026196 -0.363406389952 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.757091164589 -0.360904663801 0.544573962688 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.816449046135 -0.409892588854 0.406692773104 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.053172789514 -0.616151213646 0.785830974579 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.816449046135 -0.409892588854 0.406692773104 +vn -0.464463710785 -0.464943259954 0.753724873066 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn -0.601008892059 -0.672716557980 0.431556135416 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.709319472313 -0.529251933098 0.465573132038 +vn -0.816449046135 -0.409892588854 0.406692773104 +vn -0.249192371964 -0.776740670204 0.578426361084 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.855401635170 -0.481659621000 -0.190504774451 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.754061222076 0.027538735420 -0.656226575375 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn 0.407061606646 0.429488331079 -0.806126892567 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.054847415537 -0.026922827587 -0.998131692410 +vn 0.308949559927 0.079883605242 -0.947717666626 +vn 0.730692684650 -0.553247034550 -0.400007367134 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn -0.022242724895 -0.434845775366 0.900230228901 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.346841216087 -0.535551905632 0.769990444183 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.473556876183 -0.396522194147 0.786456644535 +vn -0.392607510090 -0.288638532162 0.873239457607 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn -0.504324793816 -0.689210057259 0.520236492157 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn -0.081477582455 -0.860848963261 0.502295136452 +vn 0.056576341391 -0.826324164867 0.560345888138 +vn -0.336106806993 -0.668615162373 0.663314402103 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.196567177773 -0.151929289103 0.968647956848 +vn 0.281917303801 -0.331665396690 0.900289237499 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn 0.078508637846 -0.052543114871 0.995527803898 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.436046063900 -0.577629566193 0.690078198910 +vn 0.322791486979 -0.675322711468 0.663132667542 +vn 0.032026510686 -0.155209660530 0.987362265587 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.222196698189 -0.942532956600 0.249520063400 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn 0.011259951629 -0.915645122528 0.401829808950 +vn -0.364636987448 -0.726501166821 0.582439601421 +vn -0.034457810223 -0.800295412540 0.598614990711 +vn 0.893638670444 0.390344947577 -0.221451431513 +vn 0.737706422806 0.663348376751 -0.125531315804 +vn 0.789966821671 0.530356287956 0.307692408562 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.303327411413 0.940892398357 0.150711387396 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.878466308117 0.353272229433 0.321707457304 +vn 0.564451873302 -0.211039349437 0.798032879829 +vn 0.506033003330 0.457370489836 0.731261134148 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.283379137516 0.492464959621 0.822906136513 +vn 0.373320966959 0.424053817987 0.825111985207 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.820009887218 0.179416894913 0.543501019478 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.573140323162 0.155218109488 0.804622590542 +vn 0.391355395317 0.211594060063 0.895582973957 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.395421296358 0.146563902497 0.906730949879 +vn 0.509310722351 0.129563525319 0.850773692131 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.640595257282 0.556611776352 0.528981089592 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.305486649275 0.190570458770 0.932931303978 +vn 0.378446906805 0.448631554842 0.809634268284 +vn 0.535769343376 0.346915453672 0.769805729389 +vn 0.737881243229 0.138341784477 0.660600364208 +vn 0.600012421608 0.673197388649 0.432192444801 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.875085175037 0.284960567951 -0.391182065010 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.894703328609 -0.337323635817 -0.292777568102 +vn 0.987493872643 -0.002295108046 -0.157640531659 +vn 0.882139682770 0.021659230813 -0.470489531755 +vn 0.030576495454 -0.849807500839 0.526205539703 +vn 0.246345400810 -0.477399200201 0.843447685242 +vn -0.100082904100 -0.121986940503 0.987472832203 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.765195369720 -0.226806268096 -0.602523803711 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.626230418682 -0.102859854698 -0.772822916508 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn 0.512817382813 -0.279925793409 -0.811578631401 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.008919883519 -0.227142065763 -0.973820805550 +vn 0.195846781135 -0.780589878559 -0.593568444252 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.544381499290 -0.683503627777 -0.486283451319 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.074802413583 -0.821258544922 -0.565631449223 +vn -0.433612197638 -0.211576133966 -0.875908672810 +vn -0.272886395454 -0.223364964128 -0.935756981373 +vn -0.114821292460 -0.062603108585 -0.991411566734 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.540508806705 -0.812121748924 0.219791963696 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.480690151453 -0.740491211414 0.469691097736 +vn -0.562911212444 -0.417130827904 0.713535487652 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.585892200470 -0.686456024647 0.430706888437 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.767110168934 -0.116551913321 0.630838811398 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.878785669804 -0.475048571825 0.045437283814 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.985003590584 -0.159312814474 0.066237233579 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.894161939621 -0.087291687727 0.439152121544 +vn -0.892477273941 -0.404392063618 0.199878498912 +vn -0.987259328365 -0.150906518102 0.050460640341 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.253314435482 -0.451992571354 0.855297923088 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.534343063831 -0.704809904099 0.466605246067 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.557868421078 -0.657093167305 0.506962835789 +vn -0.262534588575 -0.765424966812 0.587537407875 +vn -0.328291893005 -0.713074207306 0.619475305080 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.738621592522 -0.423740774393 -0.524291872978 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.900035083294 -0.384015738964 -0.206079438329 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.988403439522 -0.062521792948 -0.138382419944 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.871245801449 0.175334334373 -0.458463281393 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.819572389126 0.387809962034 -0.421787351370 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.817677199841 0.405813783407 -0.408312559128 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.750016629696 0.569118261337 -0.337015509605 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.745622813702 0.555361211300 -0.368266910315 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.883379578590 0.453356623650 0.118778400123 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.672420799732 0.229601070285 0.703657329082 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.883379578590 0.453356623650 0.118778400123 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.374333351851 0.575284957886 -0.727270066738 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.745987057686 0.581899583340 -0.323876738548 +vn -0.666667342186 0.591724395752 -0.453229427338 +vn -0.609977424145 0.596584975719 -0.521549582481 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn 0.052916388959 -0.905325412750 0.421409189701 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn 0.308463364840 -0.924584686756 -0.223592355847 +vn -0.529323875904 0.631218016148 -0.566903889179 +vn -0.941008746624 -0.008539366536 -0.338274419308 +vn 0.608978867531 -0.271527022123 -0.745263576508 +vn 0.907390177250 -0.009350413457 -0.420185178518 +vn 0.630308449268 -0.241095229983 -0.737959623337 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.529933810234 0.358376175165 0.768593966961 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.680543184280 0.249560609460 0.688898026943 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.482880949974 0.671260416508 0.562348186970 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.614093124866 0.430214881897 0.661668241024 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.654366791248 0.047013234347 0.754714429379 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.334695070982 0.126260608435 0.933829486370 +vn 0.148399889469 0.002237849403 0.988924920559 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.364242702723 -0.054625615478 0.929700672626 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.637862801552 -0.223076045513 0.737135112286 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn 0.148399889469 0.002237849403 0.988924920559 +vn 0.148399889469 0.002237849403 0.988924920559 +vn 0.054863095284 0.347303807735 0.936146438122 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn -0.001566139865 -0.462129712105 0.886810958385 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.638392686844 -0.365504652262 0.677392899990 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.587673306465 -0.199469223619 0.784125089645 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.054863095284 0.347303807735 0.936146438122 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.246305704117 -0.082893215120 0.965640842915 +vn -0.004930214491 -0.283830404282 0.958861827850 +vn 0.054863095284 0.347303807735 0.936146438122 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.344563275576 0.644585311413 0.682485103607 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.372962445021 0.479036808014 0.794621169567 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.549920439720 0.485596776009 0.679546356201 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.686435878277 0.364511430264 0.629235386848 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.779409170151 0.133687332273 0.612085759640 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.847423136234 -0.037507932633 0.529591500759 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.886623203754 -0.054525546730 0.459267079830 +vn -0.748294830322 0.242019072175 0.617641985416 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.748294830322 0.242019072175 0.617641985416 +vn 0.023788293824 0.573797225952 0.818651854992 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.291076213121 0.481702655554 0.826581597328 +vn -0.291076213121 0.481702655554 0.826581597328 +vn 0.054863095284 0.347303807735 0.936146438122 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.054863095284 0.347303807735 0.936146438122 +vn 0.054863095284 0.347303807735 0.936146438122 +vn 0.148399889469 0.002237849403 0.988924920559 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.148399889469 0.002237849403 0.988924920559 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.137372553349 0.403856068850 0.904449582100 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.148399889469 0.002237849403 0.988924920559 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.334695070982 0.126260608435 0.933829486370 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.521575689316 0.572148561478 0.632933557034 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.386426508427 0.578002810478 0.718740105629 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.403516948223 0.547950804234 0.732750952244 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.427337408066 0.314811915159 0.847511768341 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.854340553284 0.087816275656 0.512240648270 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn 0.143529653549 0.440658539534 0.886125981808 +vn 0.190369337797 0.409592747688 0.892184555531 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.137372553349 0.403856068850 0.904449582100 +vn -0.068840779364 0.560529172421 0.825268447399 +vn 0.143529653549 0.440658539534 0.886125981808 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.270152628422 0.623499035835 0.733666479588 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.270152628422 0.623499035835 0.733666479588 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.023788293824 0.573797225952 0.818651854992 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.011909886263 0.610265195370 0.792107701302 +vn 0.023788293824 0.573797225952 0.818651854992 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.190369337797 0.409592747688 0.892184555531 +vn 0.143529653549 0.440658539534 0.886125981808 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.882100045681 0.079713657498 0.464268475771 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.762780547142 0.400260478258 0.507895052433 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.916964530945 0.114480897784 0.382191210985 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.863167405128 0.192745745182 0.466681003571 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.193748310208 0.389752209187 0.900308191776 +vn -0.217033192515 0.376930564642 0.900455415249 +vn 0.080102473497 0.828760683537 0.553840458393 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.217033192515 0.376930564642 0.900455415249 +vn -0.217033192515 0.376930564642 0.900455415249 +vn 0.193748310208 0.389752209187 0.900308191776 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.065837807953 0.882237017155 0.466179400682 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.469709098339 0.664078414440 0.581698536873 +vn -0.469709098339 0.664078414440 0.581698536873 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.065837807953 0.882237017155 0.466179400682 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.808123826981 0.439913094044 0.391678839922 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.694979846478 0.558244287968 0.453173667192 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.771863758564 0.521848499775 0.363181054592 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.771863758564 0.521848499775 0.363181054592 +vn 0.057261314243 0.891568779945 0.449250817299 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.411870986223 0.780674993992 0.470009416342 +vn -0.411870986223 0.780674993992 0.470009416342 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.150822833180 0.635599315166 0.757143259048 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.390541195869 0.766919553280 0.509226858616 +vn -0.390541195869 0.766919553280 0.509226858616 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.143529653549 0.440658539534 0.886125981808 +vn -0.068840779364 0.560529172421 0.825268447399 +vn -0.068840779364 0.560529172421 0.825268447399 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.143529653549 0.440658539534 0.886125981808 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.162006527185 0.616976797581 0.770125627518 +vn -0.011909886263 0.610265195370 0.792107701302 +vn 0.143529653549 0.440658539534 0.886125981808 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.066447027028 0.874545276165 0.480370044708 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.011909886263 0.610265195370 0.792107701302 +vn 0.162006527185 0.616976797581 0.770125627518 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.011909886263 0.610265195370 0.792107701302 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.299964487553 0.683094441891 0.665885329247 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.752513349056 0.427093178034 0.501313328743 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.893567860126 0.130850359797 0.429435312748 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.885882377625 0.112097278237 0.450162917376 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.795666098595 0.317581713200 0.515807449818 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.359927237034 0.401224017143 0.842301428318 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.623659551144 0.380152404308 0.683032155037 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.893415629864 0.151184454560 0.423026919365 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.907577753067 0.131067544222 0.398903340101 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.763386487961 0.156498655677 0.626697123051 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.439757525921 0.140757396817 0.887017846107 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.332337766886 0.311493158340 0.890237987041 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.694828391075 0.219617471099 0.684822380543 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.625334560871 -0.238754346967 0.742935419083 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn -0.756767809391 -0.052385684103 0.651581287384 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn -0.727002084255 0.154723718762 0.668975770473 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn -0.305853247643 -0.242935404181 0.920562982559 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.383693754673 0.415092200041 0.824910640717 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.527027726173 -0.021860340610 0.849566876888 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.530067265034 0.182262152433 0.828135967255 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.489686667919 0.504504680634 0.711113214493 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn -0.314739197493 -0.737429022789 0.597609996796 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn -0.028332799673 -0.666234850883 0.745203554630 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.463801503181 -0.757760345936 0.459007054567 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.249539628625 -0.831801772118 0.495818287134 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.343408226967 -0.915781915188 0.208361029625 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn -0.154837504029 -0.986933887005 -0.044574052095 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.127255231142 -0.188344046474 0.973823726177 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.530067265034 0.182262152433 0.828135967255 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.312652051449 -0.927255630493 0.206023424864 +vn 0.494197249413 -0.754905045033 0.431146651506 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn 0.237130910158 -0.530649483204 0.813744485378 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn 0.176475107670 -0.932356715202 0.315543144941 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.393963932991 -0.907506763935 0.145684033632 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.535760462284 -0.485617697239 0.690750479698 +vn -0.804074645042 -0.480982899666 0.349455922842 +vn -0.658694267273 -0.752078175545 0.022367335856 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.315292984247 0.356447100639 0.879508852959 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.307988971472 0.256761282682 0.916087567806 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.265762388706 0.341355532408 0.901580154896 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.266749024391 0.631645679474 0.727920830250 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.420182943344 0.649817228317 0.633390784264 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.526362180710 0.591725170612 0.610576927662 +vn -0.465997457504 0.474939972162 0.746510803699 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.465997457504 0.474939972162 0.746510803699 +vn 0.174813181162 0.397422939539 0.900830388069 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.104101993144 0.368369311094 0.923832714558 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.174813181162 0.397422939539 0.900830388069 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.625428259373 0.495156258345 0.603042125702 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.535713851452 0.407568365335 0.739525973797 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.552081704140 0.668588280678 0.498192220926 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.326112389565 0.647804796696 0.688476324081 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.253103345633 0.215464681387 0.943140327930 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.372200131416 0.254434913397 0.892597317696 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.476249128580 0.384410738945 0.790831923485 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.383693754673 0.415092200041 0.824910640717 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.023426074535 0.341141790152 0.939719915390 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.489686667919 0.504504680634 0.711113214493 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.023426074535 0.341141790152 0.939719915390 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.256318479776 0.039006829262 0.965804994106 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.129079088569 0.182803943753 0.974639058113 +vn -0.023426074535 0.341141790152 0.939719915390 +vn 0.212365403771 0.248311832547 0.945114910603 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.588860034943 0.466583490372 0.659957349300 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.682675838470 0.530749320984 0.502253770828 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.641178429127 0.678829967976 0.357882797718 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.413006156683 0.495547741652 0.764106214046 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.198482468724 0.114406384528 0.973404288292 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.360481590033 0.133366003633 0.923182845116 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.451417952776 0.277944266796 0.847920298576 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.433118402958 0.408091127872 0.803660452366 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.023426074535 0.341141790152 0.939719915390 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.358566522598 0.428788691759 0.829198598862 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.076032698154 0.722265958786 0.687423348427 +vn 0.212365403771 0.248311832547 0.945114910603 +vn -0.023426074535 0.341141790152 0.939719915390 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.076032698154 0.722265958786 0.687423348427 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.212365403771 0.248311832547 0.945114910603 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.388789445162 0.349601566792 0.852420985699 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.258582144976 0.059639494866 0.964146435261 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.499279707670 0.194446042180 0.844340264797 +vn -0.647559285164 0.548586845398 0.528885126114 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.591052055359 0.431705445051 0.681386709213 +vn -0.679444611073 0.610277473927 0.407328456640 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.551266074181 0.579253494740 0.600475728512 +vn -0.623957276344 0.639919638634 0.448531210423 +vn -0.485179066658 0.696842193604 0.528216063976 +vn 0.189450860023 0.359886229038 0.913559138775 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.068228773773 0.298730581999 0.951895415783 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.189450860023 0.359886229038 0.913559138775 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.312441259623 0.395822644234 0.863542079926 +vn -0.104101993144 0.368369311094 0.923832714558 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.404190242290 0.454529225826 0.793746471405 +vn -0.359362721443 0.378377079964 0.853047013283 +vn -0.125801399350 0.381812900305 0.915637969971 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.148606613278 0.474946022034 0.867376685143 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.143435344100 0.498812109232 0.854758918285 +vn -0.012771333568 0.858014822006 0.513466119766 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.485179066658 0.696842193604 0.528216063976 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.429581940174 0.658338308334 0.618101954460 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.012771333568 0.858014822006 0.513466119766 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.055986881256 0.728759109974 0.682477593422 +vn -0.076032698154 0.722265958786 0.687423348427 +vn -0.253973126411 0.785078167915 0.564933538437 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.538188695908 0.264146775007 0.800362050533 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.836813807487 0.186702415347 0.514669656754 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.878834486008 0.176552668214 0.443259596825 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.543800532818 0.442923873663 0.712810933590 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.466357082129 0.552756190300 0.690631389618 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.435317426920 0.573959171772 0.693591833115 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.456825613976 0.516326904297 0.724373459816 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.391398638487 0.397019624710 0.830170154572 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.267233550549 0.334511578083 0.903708040714 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.067125074565 0.157456219196 0.985242009163 +vn 0.202230855823 0.135011807084 0.969986855984 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.200406655669 0.284720838070 0.937427997589 +vn -0.068228773773 0.298730581999 0.951895415783 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.761066019535 0.470063358545 0.447011142969 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.734925448895 0.490863144398 0.467908084393 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.698878407478 0.347065120935 0.625391721725 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.591195464134 0.235663145781 0.771330535412 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.434332191944 0.195762410760 0.879222750664 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.267134964466 0.181432187557 0.946425497532 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.202230855823 0.135011807084 0.969986855984 +vn -0.067125074565 0.157456219196 0.985242009163 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.872427821159 0.346370130777 0.344814985991 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.869322419167 0.077864855528 0.488073319197 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.747900903225 -0.163354054093 0.643397033215 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.567458391190 -0.253882825375 0.783284425735 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.351191669703 -0.261454999447 0.899058222771 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn -0.079490303993 -0.281491726637 0.956265509129 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.919281125069 0.197047114372 0.340726643801 +vn -0.919281125069 0.197047114372 0.340726643801 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.855607628822 0.333090543747 0.396214872599 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.901383638382 0.126723989844 0.414063543081 +vn -0.901383638382 0.126723989844 0.414063543081 +vn -0.896722614765 0.179688841105 0.404475569725 +vn -0.891332924366 0.137296840549 0.432059258223 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.895166754723 0.229004427791 0.382404863834 +vn -0.895166754723 0.229004427791 0.382404863834 +vn -0.901383638382 0.126723989844 0.414063543081 +vn -0.894213795662 0.123666495085 0.430218875408 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.804847061634 0.546090245247 0.232393324375 +vn -0.804847061634 0.546090245247 0.232393324375 +vn -0.895166754723 0.229004427791 0.382404863834 +vn -0.896939873695 0.210649311543 0.388748884201 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.423992425203 0.897252678871 0.123158536851 +vn -0.423992425203 0.897252678871 0.123158536851 +vn -0.804847061634 0.546090245247 0.232393324375 +vn -0.753519773483 0.571189284325 0.325500786304 +vn -0.160930529237 0.977088928223 0.139278993011 +vn -0.423992425203 0.897252678871 0.123158536851 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.371073067188 0.842229127884 0.391094416380 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.160930529237 0.977088928223 0.139278993011 +vn -0.105991713703 0.867368280888 0.486248910427 +vn 0.066447027028 0.874545276165 0.480370044708 +vn -0.025935206562 0.987000048161 0.158613726497 +vn -0.025935206562 0.987000048161 0.158613726497 +vn -0.160930529237 0.977088928223 0.139278993011 +vn -0.105991713703 0.867368280888 0.486248910427 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.324463427067 -0.758725166321 0.564853608608 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.532799720764 -0.676156878471 0.508857905865 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.744308650494 -0.519166171551 0.420084595680 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.940527975559 -0.179164126515 0.288630217314 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.957346260548 0.170727133751 0.233110263944 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.919281125069 0.197047114372 0.340726643801 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.910739362240 0.261341512203 0.319772452116 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.992123544216 0.107160180807 0.064866028726 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.951893627644 0.165721222758 0.257749825716 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.946807622910 0.193610027432 0.257041752338 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.982647716999 0.016579046845 0.184739291668 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.920943319798 -0.369556844234 0.123657345772 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.666060030460 -0.719265341759 0.197538405657 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.465739727020 -0.826660633087 0.315782696009 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.223995730281 -0.905615508556 0.360120028257 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.992123544216 0.107160180807 0.064866028726 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.900042414665 -0.367482185364 0.234265789390 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.722536802292 -0.635164976120 0.272957891226 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.590967774391 -0.706974327564 0.388515591621 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.370591431856 -0.795985579491 0.478611499071 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.132983490825 -0.834781706333 0.534279823303 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.399518489838 -0.542610168457 0.738890528679 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.533770442009 -0.580261945724 0.615130186081 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.643752753735 -0.493780285120 0.584605395794 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.725106775761 -0.420382618904 0.545434296131 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.867924034595 -0.260958462954 0.422621041536 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.940244019032 -0.092775426805 0.327618628740 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.982467770576 0.013177152723 0.185966104269 +vn -0.977001428604 0.139837592840 0.160977154970 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.999725461006 0.019930899143 0.012318536639 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.994666993618 -0.069035917521 0.076626136899 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.931911706924 -0.215440362692 0.291763722897 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.759057343006 -0.301369190216 0.577068984509 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.602344691753 -0.280756384134 0.747232735157 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.455631524324 -0.168883621693 0.874001264572 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.217910498381 0.339262723923 0.915104269981 +vn -0.212129950523 0.227813541889 0.950316727161 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.217910498381 0.339262723923 0.915104269981 +vn -0.191797509789 0.434196591377 0.880163073540 +vn -0.217910498381 0.339262723923 0.915104269981 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.375407576561 0.093609236181 0.922120630741 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.191797509789 0.434196591377 0.880163073540 +vn -0.427307009697 0.517403364182 0.741419196129 +vn -0.191797509789 0.434196591377 0.880163073540 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.427307009697 0.517403364182 0.741419196129 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.395720273256 0.369814962149 0.840620219707 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.659957766533 -0.041379831731 0.750162303448 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.837945520878 -0.316482156515 0.444619327784 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.915060877800 -0.357950210571 0.185836642981 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.964661836624 -0.263473212719 -0.003073681612 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.987796187401 -0.113843455911 -0.106294021010 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.989076316357 -0.038925040513 -0.142172202468 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.994616329670 0.103621371090 0.001013222034 +vn -0.964359700680 0.172863632441 -0.200321212411 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.915636658669 0.071842692792 -0.395535230637 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.971966803074 0.001679895911 -0.235112071037 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.492909461260 -0.012797347270 -0.869986474514 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.746083080769 0.133082449436 -0.652417898178 +vn -0.492909461260 -0.012797347270 -0.869986474514 +vn -0.091410763562 -0.033696297556 -0.995243012905 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.492909461260 -0.012797347270 -0.869986474514 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.427307009697 0.517403364182 0.741419196129 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.535577595234 0.507573664188 0.674926340580 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.773666918278 0.195886433125 0.602551281452 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.898037970066 -0.009601750411 0.439813166857 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.963670790195 -0.085356377065 0.253086805344 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.984421253204 -0.134353876114 0.113419070840 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.997844159603 -0.060008797795 0.026569990441 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.996333360672 0.068236447871 -0.051610436291 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.953527510166 0.177026733756 -0.243817120790 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.760778129101 0.260384917259 -0.594488263130 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.406314909458 0.302539587021 -0.862193703651 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.398361533880 0.768928885460 0.500056445599 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.329013854265 0.770135164261 0.546481192112 +vn -0.452492952347 0.644353330135 0.616489171982 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.561793684959 0.644772768021 0.518320322037 +vn -0.561793684959 0.644772768021 0.518320322037 +vn -0.398361533880 0.768928885460 0.500056445599 +vn -0.583555281162 0.562829434872 0.585394084454 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.698581337929 0.486032783985 0.525124967098 +vn -0.698581337929 0.486032783985 0.525124967098 +vn -0.561793684959 0.644772768021 0.518320322037 +vn -0.727042436600 0.392065703869 0.563643276691 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.762003898621 0.412130415440 0.499498367310 +vn -0.762003898621 0.412130415440 0.499498367310 +vn -0.698581337929 0.486032783985 0.525124967098 +vn -0.818493127823 0.307605028152 0.485230028629 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.762003898621 0.412130415440 0.499498367310 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.876592457294 0.223390161991 0.426242262125 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.866007030010 0.441917747259 0.233966961503 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.839617133141 0.349256485701 0.416008383036 +vn -0.916528403759 0.191852614284 0.350953310728 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.776705801487 0.629756927490 0.011586484499 +vn -0.776705801487 0.629756927490 0.011586484499 +vn -0.866007030010 0.441917747259 0.233966961503 +vn -0.928365826607 0.321700394154 0.186133533716 +vn -0.523762464523 0.784509122372 -0.331991434097 +vn -0.776705801487 0.629756927490 0.011586484499 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.855468750000 0.511627614498 -0.080065056682 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.523762464523 0.784509122372 -0.331991434097 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.206527620554 0.787486314774 -0.580699265003 +vn -0.206527620554 0.787486314774 -0.580699265003 +vn -0.523762464523 0.784509122372 -0.331991434097 +vn -0.624914050102 0.641845524311 -0.444428503513 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn -0.206527620554 0.787486314774 -0.580699265003 +vn -0.282768219709 0.664981305599 -0.691261172295 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn 0.016504848376 -0.369534045458 0.929070591927 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn 0.078862175345 -0.381660461426 0.920932173729 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.153125435114 -0.193988814950 0.968979299068 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.410691499710 0.290064156055 0.864404559135 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.140696853399 0.584784626961 0.798893809319 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.105937428772 0.694840073586 0.711318850517 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.027015432715 0.338717550039 0.940500199795 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.027015432715 0.338717550039 0.940500199795 +vn 0.009658423252 0.446354955435 0.894803881645 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.266394942999 0.146734341979 0.952629387379 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.279472678900 0.108999013901 0.953946650028 +vn -0.266394942999 0.146734341979 0.952629387379 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.553700327873 0.070910565555 0.829691290855 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.769504010677 0.079040892422 0.633731842041 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.677909493446 0.067609973252 0.732029795647 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.606147646904 -0.230062335730 0.761351704597 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.599996566772 -0.402166903019 0.691567718983 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn -0.126013457775 -0.373803198338 0.918907940388 +vn -0.428883343935 -0.397854208946 0.811030864716 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn 0.036760635674 -0.803918957710 0.593601703644 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn 0.013011713512 -0.459181368351 0.888247251511 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn -0.084034346044 -0.807875812054 0.583330869675 +vn -0.109498061240 -0.629230618477 0.769466698170 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn 0.080218009651 -0.410371363163 0.908383429050 +vn -0.109498061240 -0.629230618477 0.769466698170 +vn -0.109498061240 -0.629230618477 0.769466698170 +vn -0.221097260714 -0.580378770828 0.783757925034 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.063901998103 -0.398544043303 0.914920330048 +vn -0.221097260714 -0.580378770828 0.783757925034 +vn -0.221097260714 -0.580378770828 0.783757925034 +vn -0.685548245907 0.317658185959 0.655070185661 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.249645799398 0.220579460263 0.942879438400 +vn -0.685548245907 0.317658185959 0.655070185661 +vn -0.685548245907 0.317658185959 0.655070185661 +vn -0.600660264492 0.792620480061 0.104690179229 +vn -0.105937428772 0.694840073586 0.711318850517 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.105937428772 0.694840073586 0.711318850517 +vn -0.600660264492 0.792620480061 0.104690179229 +vn -0.600660264492 0.792620480061 0.104690179229 +vn -0.069257460535 0.874967575073 0.479202568531 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.266394942999 0.146734341979 0.952629387379 +vn 0.009658423252 0.446354955435 0.894803881645 +vn 0.009658423252 0.446354955435 0.894803881645 +vn -0.069257460535 0.874967575073 0.479202568531 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.266394942999 0.146734341979 0.952629387379 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.265599220991 0.522465229034 0.810238957405 +vn -0.446344643831 0.362028479576 0.818359255791 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.537447929382 0.114899255335 0.835432767868 +vn -0.446344643831 0.362028479576 0.818359255791 +vn -0.446344643831 0.362028479576 0.818359255791 +vn -0.504875242710 0.559537291527 0.657281517982 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.685811817646 0.249726369977 0.683592677116 +vn -0.504875242710 0.559537291527 0.657281517982 +vn -0.504875242710 0.559537291527 0.657281517982 +vn -0.336613386869 0.544670164585 0.768131375313 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.710882127285 0.139447763562 0.689348161221 +vn -0.336613386869 0.544670164585 0.768131375313 +vn -0.336613386869 0.544670164585 0.768131375313 +vn -0.102486148477 -0.211847081780 0.971914291382 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.630098760128 -0.243901118636 0.737216234207 +vn -0.102486148477 -0.211847081780 0.971914291382 +vn -0.102486148477 -0.211847081780 0.971914291382 +vn -0.255514144897 -0.578030169010 0.774979770184 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn 0.011388301849 -0.758041679859 0.652106702328 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.503107845783 -0.454628795385 0.734979689121 +vn -0.255514144897 -0.578030169010 0.774979770184 +vn 0.011388301849 -0.758041679859 0.652106702328 +vn 0.036760635674 -0.803918957710 0.593601703644 +vn -0.102777846158 -0.450431048870 0.886875748634 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn -0.273829430342 -0.547039330006 0.791053354740 +vn 0.011388301849 -0.758041679859 0.652106702328 +vn 0.036760635674 -0.803918957710 0.593601703644 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.596428692341 0.562675476074 0.572423934937 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.741860687733 0.398763775826 0.539101243019 +vn -0.745369732380 0.574101984501 0.338866978884 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.719880223274 0.496003329754 0.485544234514 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.774322211742 0.506421625614 0.379423618317 +vn -0.604330658913 0.579120814800 0.547177731991 +vn -0.647695779800 0.510680079460 0.565416753292 +vn -0.129079088569 0.182803943753 0.974639058113 +vn 0.256318479776 0.039006829262 0.965804994106 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn -0.451884835958 -0.352392107248 0.819524168968 +vn -0.129079088569 0.182803943753 0.974639058113 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.143435344100 0.498812109232 0.854758918285 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.148606613278 0.474946022034 0.867376685143 +vn -0.125801399350 0.381812900305 0.915637969971 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.112893626094 -0.793193936348 0.598413288593 +vn -0.042874984443 -0.941498875618 0.334277719259 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.868730366230 0.328395128250 0.370761603117 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.913611531258 0.350178182125 0.206613779068 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.460474193096 0.810446918011 0.362131565809 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.763267517090 0.574969351292 0.294674217701 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.932681202888 0.163048297167 0.321746885777 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.751718580723 0.003752671881 0.659473359585 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.946365475655 -0.125464737415 0.297743052244 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.391488641500 -0.397782742977 0.829762339592 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.949858725071 -0.240486517549 0.199836567044 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.938949048519 -0.058859646320 0.338984102011 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.437488079071 -0.155996456742 0.885589778423 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.705798804760 0.015210544690 0.708248972893 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.715422451496 0.350363373756 0.604496717453 +vn 0.502289772034 0.579192757607 0.642059743404 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.815317630768 0.471812427044 0.335633963346 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.880656659603 0.431369334459 0.195868119597 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.959631383419 0.240150228143 0.146408542991 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.995585680008 0.084991008043 0.039821058512 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.996004641056 0.086562149227 -0.021949866787 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.921359837055 0.324258625507 0.214364975691 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.637871384621 0.505046308041 0.581419229507 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.382308036089 0.393014520407 0.836289525032 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.332400560379 0.032188046724 0.942588865757 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.723643064499 0.199117779732 0.660827338696 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.646447479725 0.689189255238 0.327297866344 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.712246954441 0.480327963829 0.511848926544 +vn 0.617744982243 0.553522169590 0.558573484421 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.766100347042 0.358995050192 0.533116102219 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.978415131569 0.206477284431 0.008421845734 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.513990104198 0.448301106691 0.731327772141 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.561893999577 0.628997325897 0.537249922752 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.227718770504 0.409422904253 0.883468747139 +vn 0.337808459997 0.583175957203 0.738776862621 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.978925883770 0.200375735760 -0.039417244494 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.870324015617 0.476587593555 0.124098449945 +vn 0.963288187981 0.245665282011 -0.108279429376 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.955230534077 0.294983744621 -0.022786777467 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.193748310208 0.389752209187 0.900308191776 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.193748310208 0.389752209187 0.900308191776 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.573244988918 0.426280379295 0.699767947197 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.080102473497 0.828760683537 0.553840458393 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.581106901169 0.752690315247 0.309470504522 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.693223118782 0.698026776314 0.179444551468 +vn 0.802966713905 0.595613062382 0.022125337273 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.726919829845 0.686512351036 0.016981491819 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.065837807953 0.882237017155 0.466179400682 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.470912784338 0.849372148514 0.238344386220 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.057261314243 0.891568779945 0.449250817299 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.484451025724 0.828598141670 0.280592858791 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.150822833180 0.635599315166 0.757143259048 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.391466438770 0.592203080654 0.704307854176 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.198422238231 0.451261907816 0.870052456856 +vn 0.254763633013 0.450295269489 0.855762600899 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.066447027028 0.874545276165 0.480370044708 +vn 0.162006527185 0.616976797581 0.770125627518 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.323617666960 0.631942093372 0.704216420650 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.513759911060 0.724395990372 0.459675103426 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.844890832901 0.527608036995 0.088256470859 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.962731480598 0.260328829288 -0.073327668011 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.971856832504 0.228067263961 -0.058987963945 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.911189258099 0.404794245958 0.076653681695 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.843756496906 0.439300507307 0.308366686106 +vn 0.694763541222 0.453988581896 0.557851195335 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.964206695557 0.249121606350 -0.090795695782 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.970545232296 0.217519640923 -0.103571861982 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.954509973526 0.227643296123 0.192585557699 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.808572351933 0.230919525027 0.541190326214 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.695473253727 0.390722751617 0.603036224842 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.927650451660 0.292795777321 0.231808677316 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.941774845123 -0.162280142307 0.294491648674 +vn 0.976824223995 0.065190963447 0.203873768449 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.932209432125 0.252634704113 0.259155035019 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.750695765018 -0.204045504332 0.628348052502 +vn 0.274623602629 -0.340901017189 0.899093091488 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.881306648254 -0.029563881457 0.471619129181 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.199788928032 -0.930502891541 0.306999534369 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.239685952663 -0.807179331779 0.539455413818 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.530258059502 -0.658419847488 0.534143865108 +vn 0.687712013721 -0.691433250904 0.221296757460 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.721093952656 -0.689267814159 0.070238180459 +vn 0.597214460373 -0.764811575413 0.241656988859 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.569580495358 -0.820051550865 -0.055619228631 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.304680794477 -0.922051012516 -0.238728925586 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.830080926418 0.300810962915 0.469551295042 +vn 0.438327252865 -0.163195595145 0.883875787258 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.060541231185 -0.987986981869 0.142184779048 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn -0.015889639035 -0.856240689754 0.516332685947 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.362986683846 -0.543438851833 0.756911396980 +vn 0.256147146225 -0.944341897964 0.206414595246 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.932668745518 -0.338243275881 -0.125381320715 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.894300460815 -0.354748576880 0.272727280855 +vn 0.595596849918 -0.783921420574 -0.175304144621 +vn 0.705144464970 -0.621076881886 -0.342103481293 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.669635236263 0.465004295111 0.579102456570 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.687887787819 0.334090083838 0.644355654716 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.653526067734 0.407454669476 0.637874901295 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.634473979473 0.589673757553 0.499727547169 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.698470294476 0.581860423088 0.416626513004 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.746993243694 0.532737910748 0.397732883692 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.730922043324 0.457406550646 0.506490111351 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.810685992241 0.490832895041 0.319172859192 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.785306930542 0.420944809914 0.453980714083 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.712920784950 0.650831878185 0.261078268290 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.631312608719 0.613184511662 0.474814802408 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.668137073517 0.285563141108 0.687056422234 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.740139663219 0.363552957773 0.565705299377 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.748942732811 0.480127364397 0.456686407328 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.647795736790 0.509497582912 0.566368162632 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.660879850388 0.615431725979 0.429513245821 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.256318479776 0.039006829262 0.965804994106 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.751814782619 0.542736291885 0.374448657036 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.754177689552 0.626339972019 0.197266981006 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.643801271915 0.761630415916 0.073749937117 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.690789639950 0.523333430290 0.498930633068 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.656909048557 0.151666134596 0.738557994366 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.775538980961 0.183304697275 0.604101538658 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.769935011864 0.395327806473 0.500915110111 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.674992680550 0.544619321823 0.497769713402 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.613109469414 0.536489784718 0.579892635345 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.401266843081 0.378328412771 0.834177792072 +vn 0.212365403771 0.248311832547 0.945114910603 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.721213638783 0.367009401321 0.587498903275 +vn 0.705344974995 0.077326208353 0.704634010792 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.733649730682 0.647041141987 0.207595452666 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.835132360458 0.253148376942 0.488333761692 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.648433148861 0.753310024738 0.109811037779 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.752818822861 0.565508663654 0.336843818426 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.590059459209 0.781824648380 0.201444983482 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.581709802151 0.746405720711 0.323252558708 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.189450860023 0.359886229038 0.913559138775 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.637228786945 0.390339761972 0.664510607719 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.463531196117 0.361015528440 0.809201240540 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.669019818306 0.397284835577 0.628153860569 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.638848066330 0.514054417610 0.572382032871 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.246009349823 0.853070199490 0.460163712502 +vn -0.012771333568 0.858014822006 0.513466119766 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.472574830055 0.812009453773 0.342510819435 +vn 0.441359281540 0.799569964409 0.407295793295 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.156517177820 0.758275330067 0.632867217064 +vn 0.055986881256 0.728759109974 0.682477593422 +vn 0.055986881256 0.728759109974 0.682477593422 +vn -0.012771333568 0.858014822006 0.513466119766 +vn 0.246009349823 0.853070199490 0.460163712502 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.818397223949 0.368209451437 0.441189020872 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.959213256836 0.278156578541 0.050387240946 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.966507077217 0.248770341277 -0.063066102564 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.796820223331 0.531731307507 0.286948263645 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.753260552883 0.553977191448 0.354552984238 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.718876957893 0.542798221111 0.434264868498 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.724643111229 0.485672384501 0.488891303539 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.704077363014 0.383839637041 0.597446382046 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.617557048798 0.317419141531 0.719630718231 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.452783286572 0.288476914167 0.843663632870 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.200406655669 0.284720838070 0.937427997589 +vn 0.202230855823 0.135011807084 0.969986855984 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.847496092319 0.530518829823 -0.017324548215 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.862550377846 0.504348695278 0.040488097817 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.906684279442 0.350142270327 0.235210523009 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.869828820229 0.229744896293 0.436594873667 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.763165831566 0.176690846682 0.621577203274 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.629935562611 0.152864024043 0.761454999447 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.202230855823 0.135011807084 0.969986855984 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.457086682320 0.133212804794 0.879389643669 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.924294352531 0.355563312769 -0.138761267066 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.998203098774 0.057374663651 0.017284091562 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.950728535652 -0.205100849271 0.232484206557 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.833590924740 -0.306202918291 0.459745496511 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.678838312626 -0.308879584074 0.666162133217 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.464666336775 -0.298411458731 0.833688080311 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.199260234833 -0.289389193058 0.936242103577 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.950457096100 0.270852208138 -0.152546450496 +vn 0.950457096100 0.270852208138 -0.152546450496 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.918455123901 0.385997414589 -0.086291559041 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.959071338177 0.263900458813 -0.102658011019 +vn 0.965679407120 0.234967827797 -0.110695056617 +vn 0.965679407120 0.234967827797 -0.110695056617 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.969372093678 0.230969890952 -0.083490356803 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.965679407120 0.234967827797 -0.110695056617 +vn 0.927285432816 0.353592813015 -0.122938469052 +vn 0.927285432816 0.353592813015 -0.122938469052 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.968204200268 0.234657734632 -0.086697340012 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.927285432816 0.353592813015 -0.122938469052 +vn 0.731829226017 0.655255794525 -0.187258720398 +vn 0.731829226017 0.655255794525 -0.187258720398 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.935479402542 0.335015088320 -0.112441688776 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.731829226017 0.655255794525 -0.187258720398 +vn 0.311583012342 0.947266399860 -0.074849106371 +vn 0.311583012342 0.947266399860 -0.074849106371 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.736853659153 0.671932935715 -0.074516959488 +vn 0.084336921573 0.993597984314 0.075168356299 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.407246440649 0.894191622734 0.185934543610 +vn 0.311583012342 0.947266399860 -0.074849106371 +vn 0.084336921573 0.993597984314 0.075168356299 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.084336921573 0.993597984314 0.075168356299 +vn -0.025935206562 0.987000048161 0.158613726497 +vn -0.025935206562 0.987000048161 0.158613726497 +vn 0.066447027028 0.874545276165 0.480370044708 +vn 0.220619097352 0.888912618160 0.401449382305 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.518842935562 -0.785850405693 0.336513310671 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.662475109100 -0.725363969803 0.187012910843 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.805370748043 -0.592758417130 -0.003930583131 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.929175615311 -0.269463419914 -0.253026038408 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.939284741879 0.113941721618 -0.323668777943 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.950457096100 0.270852208138 -0.152546450496 +vn 0.934725701809 0.310489326715 -0.172870650887 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.927901625633 0.165795251727 -0.333931833506 +vn 0.948978900909 0.234526768327 -0.210799112916 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.946819961071 0.235502317548 -0.219250187278 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.895631790161 -0.129716515541 -0.425461292267 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.696239709854 -0.526411354542 -0.487997263670 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.564199924469 -0.795334279537 -0.221634536982 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.489956259727 -0.871741354465 0.003144107526 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.353234022856 -0.919000506401 0.175110846758 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.927901625633 0.165795251727 -0.333931833506 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.672931492329 -0.577748060226 -0.461920291185 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.602797508240 -0.769893229008 -0.209522381425 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.599060893059 -0.799365341663 0.046272549778 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.470746397972 -0.837257504463 0.278204500675 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.295373827219 -0.848388731480 0.439307302237 +vn 0.099432311952 -0.850939333439 0.515766859055 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn -0.011365610175 -0.569823741913 0.821688354015 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn 0.009567377158 0.062936350703 0.997971653938 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.009567377158 0.062936350703 0.997971653938 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.388656109571 -0.596401989460 0.702318370342 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.571297943592 -0.634666800499 0.520400583744 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.693751633167 -0.554435610771 0.459684520960 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.810669839382 -0.437342017889 0.389289557934 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.920904278755 -0.372545152903 0.114653512836 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.969618976116 0.014173090458 0.244209289551 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.888312399387 -0.198640093207 -0.414056956768 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.956887304783 0.187676936388 -0.221684709191 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.935869395733 -0.058511238545 -0.347454905510 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.920701980591 -0.219541355968 -0.322659939528 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.946366429329 -0.292681604624 0.136850625277 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.714061379433 -0.126653254032 0.688531279564 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.496513873339 -0.209683701396 0.842322230339 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.307430177927 0.101323992014 0.946160733700 +vn -0.043281786144 0.417985618114 0.907422006130 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.269091695547 -0.158653467894 0.949957251549 +vn 0.009567377158 0.062936350703 0.997971653938 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.211031064391 0.334258556366 0.918551623821 +vn 0.009567377158 0.062936350703 0.997971653938 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.193377628922 -0.020433094352 0.980911612511 +vn -0.212129950523 0.227813541889 0.950316727161 +vn -0.211031064391 0.334258556366 0.918551623821 +vn -0.252683490515 0.431100577116 0.866200506687 +vn -0.043281786144 0.417985618114 0.907422006130 +vn 0.009567377158 0.062936350703 0.997971653938 +vn 0.009567377158 0.062936350703 0.997971653938 +vn -0.211031064391 0.334258556366 0.918551623821 +vn -0.252683490515 0.431100577116 0.866200506687 +vn -0.005775345955 0.566921889782 0.823751330376 +vn 0.118042111397 0.582126080990 0.804484486580 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.252683490515 0.431100577116 0.866200506687 +vn -0.005775345955 0.566921889782 0.823751330376 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.307430177927 0.101323992014 0.946160733700 +vn -0.043281786144 0.417985618114 0.907422006130 +vn -0.043281786144 0.417985618114 0.907422006130 +vn 0.118042111397 0.582126080990 0.804484486580 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.307430177927 0.101323992014 0.946160733700 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.681450366974 -0.170108318329 0.711820542812 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.887927532196 -0.283699363470 0.362076491117 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.951872944832 -0.304682195187 -0.033267050982 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.957415223122 -0.181213185191 -0.224761724472 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.969675958157 -0.006265759468 -0.244313865900 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.949974477291 0.187011525035 -0.250150322914 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.826718986034 0.240371182561 -0.508682072163 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.861497342587 0.166910842061 -0.479544728994 +vn 0.942599773407 0.121348172426 -0.311095267534 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.340949475765 0.080066934228 -0.936665773392 +vn 0.597053110600 0.192763477564 -0.778697490692 +vn 0.340949475765 0.080066934228 -0.936665773392 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn -0.091410763562 -0.033696297556 -0.995243012905 +vn 0.340949475765 0.080066934228 -0.936665773392 +vn -0.087644666433 0.797944962978 0.596323907375 +vn 0.022682305425 0.700176298618 0.713609576225 +vn 0.118042111397 0.582126080990 0.804484486580 +vn 0.118042111397 0.582126080990 0.804484486580 +vn -0.005775345955 0.566921889782 0.823751330376 +vn -0.087644666433 0.797944962978 0.596323907375 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.118042111397 0.582126080990 0.804484486580 +vn 0.022682305425 0.700176298618 0.713609576225 +vn 0.022682305425 0.700176298618 0.713609576225 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.421086013317 0.331745862961 0.844174861908 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.655123889446 0.148886278272 0.740706145763 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.835974216461 0.060734994709 0.545397460461 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.931944012642 -0.003060617950 0.362589240074 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.956516206264 0.125038489699 0.263518750668 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.927957713604 0.333342611790 0.166664868593 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.898776412010 0.424006968737 -0.111440964043 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.699897587299 0.400653809309 -0.591286659241 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn -0.028911255300 0.248572260141 -0.968181788921 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.365882277489 0.343775957823 -0.864840030670 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.022682305425 0.700176298618 0.713609576225 +vn -0.087644666433 0.797944962978 0.596323907375 +vn -0.087644666433 0.797944962978 0.596323907375 +vn -0.021405575797 0.810315549374 0.585602700710 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.158913969994 0.649801671505 0.743306219578 +vn -0.021405575797 0.810315549374 0.585602700710 +vn 0.135182872415 0.733623564243 0.665974557400 +vn 0.135182872415 0.733623564243 0.665974557400 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.158913969994 0.649801671505 0.743306219578 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.135182872415 0.733623564243 0.665974557400 +vn 0.297315388918 0.622704029083 0.723770201206 +vn 0.297315388918 0.622704029083 0.723770201206 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.326081156731 0.529603064060 0.783065557480 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.297315388918 0.622704029083 0.723770201206 +vn 0.389200001955 0.573539316654 0.720816195011 +vn 0.389200001955 0.573539316654 0.720816195011 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.470974206924 0.477889269590 0.741488456726 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.573665559292 0.416753500700 0.705141365528 +vn 0.389200001955 0.573539316654 0.720816195011 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.639803349972 0.412074059248 0.648726940155 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.507545232773 0.531004428864 0.678551495075 +vn 0.580223083496 0.617204606533 0.531412839890 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.580223083496 0.617204606533 0.531412839890 +vn 0.527233898640 0.796128153801 0.296992242336 +vn 0.527233898640 0.796128153801 0.296992242336 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.654379069805 0.572576820850 0.493906706572 +vn 0.416550189257 0.902303695679 -0.111058652401 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.628654718399 0.752240359783 0.197300985456 +vn 0.527233898640 0.796128153801 0.296992242336 +vn 0.416550189257 0.902303695679 -0.111058652401 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.416550189257 0.902303695679 -0.111058652401 +vn 0.250042259693 0.829527139664 -0.499363213778 +vn 0.250042259693 0.829527139664 -0.499363213778 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.553518593311 0.789642274380 -0.264730513096 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.250042259693 0.829527139664 -0.499363213778 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn 0.031884565949 0.757848381996 -0.651651144028 +vn 0.011481816880 0.636885046959 -0.770873308182 +vn 0.304938465357 0.703848004341 -0.641568779945 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.377220094204 -0.226272672415 0.898056626320 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.274269640446 -0.322407662868 0.905996382236 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.564134895802 -0.143683999777 0.813084661961 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.646276831627 0.492995202541 0.582479178905 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.184095010161 0.707548022270 0.682264506817 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.297506958246 0.235928297043 0.925109446049 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.693422079086 0.040879141539 0.719371080399 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.916819691658 0.095807664096 0.387637108564 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.978968083858 0.184593155980 0.086872689426 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.945089697838 0.192533746362 0.264076173306 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.932904720306 -0.147877126932 0.328361213207 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.940850913525 -0.294875055552 0.166878074408 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.639572858810 -0.175081178546 0.748527288437 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.898053467274 -0.229784309864 0.375098794699 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.336075752974 -0.870628416538 0.359248220921 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.340711802244 -0.641201555729 0.687587082386 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.348717659712 -0.799128830433 0.489682704210 +vn 0.378185003996 -0.403165251017 0.833326995373 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.487048745155 -0.694580614567 0.529472649097 +vn 0.340711802244 -0.641201555729 0.687587082386 +vn 0.340711802244 -0.641201555729 0.687587082386 +vn 0.229054272175 -0.404233902693 0.885510623455 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.744322121143 0.657111704350 0.119116656482 +vn 0.487048745155 -0.694580614567 0.529472649097 +vn 0.487048745155 -0.694580614567 0.529472649097 +vn 0.420370161533 -0.418006032705 0.805332183838 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.141101598740 0.945256769657 -0.294244796038 +vn 0.744322121143 0.657111704350 0.119116656482 +vn 0.744322121143 0.657111704350 0.119116656482 +vn 0.490524053574 0.461309880018 0.739310026169 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.217779934406 0.618968546391 0.754619002342 +vn -0.089801914990 0.986447930336 0.137317344546 +vn 0.141101598740 0.945256769657 -0.294244796038 +vn 0.141101598740 0.945256769657 -0.294244796038 +vn 0.027354190126 0.848339557648 0.528745472431 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.425227582455 0.791610717773 0.438786923885 +vn -0.089801914990 0.986447930336 0.137317344546 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.217779934406 0.618968546391 0.754619002342 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.425227582455 0.791610717773 0.438786923885 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.706862568855 0.568781375885 0.420515179634 +vn 0.425227582455 0.791610717773 0.438786923885 +vn 0.425227582455 0.791610717773 0.438786923885 +vn 0.648735523224 0.337128430605 0.682265818119 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.647108733654 0.750588536263 0.133668154478 +vn 0.706862568855 0.568781375885 0.420515179634 +vn 0.706862568855 0.568781375885 0.420515179634 +vn 0.868949472904 0.298117607832 0.395035088062 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.330178469419 0.915636241436 0.229330360889 +vn 0.647108733654 0.750588536263 0.133668154478 +vn 0.647108733654 0.750588536263 0.133668154478 +vn 0.882189989090 0.458903372288 0.105586610734 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.677508771420 -0.232246801257 0.697884857655 +vn 0.330178469419 0.915636241436 0.229330360889 +vn 0.330178469419 0.915636241436 0.229330360889 +vn 0.903099119663 0.412203252316 0.120418034494 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.647285282612 -0.671119987965 0.361413508654 +vn 0.677508771420 -0.232246801257 0.697884857655 +vn 0.677508771420 -0.232246801257 0.697884857655 +vn 0.961342573166 -0.171136543155 0.215714603662 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.388192862272 -0.845675826073 0.366249561310 +vn 0.647285282612 -0.671119987965 0.361413508654 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.865472078323 -0.445646405220 0.228817224503 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.388192862272 -0.845675826073 0.366249561310 +vn 0.336075752974 -0.870628416538 0.359248220921 +vn 0.388192862272 -0.845675826073 0.366249561310 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.758167684078 -0.502615153790 0.415403187275 +vn 0.602071702480 -0.417796939611 0.680408239365 +vn 0.336075752974 -0.870628416538 0.359248220921 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.666646242142 0.745317161083 -0.009225846268 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.839728236198 0.539731502533 0.059551939368 +vn 0.708084583282 0.692552626133 0.137793600559 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.713051259518 0.673798978329 0.193785592914 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.753422796726 0.657339215279 -0.016101408750 +vn 0.733347594738 0.675600945950 0.075925514102 +vn 0.750932097435 0.635434091091 0.179790079594 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.854356050491 -0.257476896048 0.451421499252 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.284206509590 -0.519967913628 0.805518448353 +vn 0.256318479776 0.039006829262 0.965804994106 +vn 0.561187684536 0.239976942539 0.792136013508 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.464831054211 0.394190609455 0.792808830738 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.421305626631 0.513768494129 0.747357726097 +vn 0.143435344100 0.498812109232 0.854758918285 +vn 0.174813181162 0.397422939539 0.900830388069 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.247673124075 -0.940627634525 0.232115536928 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.375306636095 -0.805032193661 0.459421426058 +vn 0.138890832663 -0.801826655865 0.581191301346 +vn 0.116708174348 -0.953639626503 0.277399748564 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.159534424543 0.524704039097 0.836202383041 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.316775918007 -0.082177042961 -0.944933831692 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.936159014702 -0.063873127103 -0.345726042986 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.905587971210 0.151429876685 0.396206259727 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.821858465672 0.073336854577 0.564951658249 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.905587971210 0.151429876685 0.396206259727 +vn -0.909234404564 -0.117803066969 0.399268388748 +vn -0.905587971210 0.151429876685 0.396206259727 +vn -0.791023254395 0.166800767183 0.588608264923 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.905587971210 0.151429876685 0.396206259727 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.042918991297 -0.159098654985 -0.986329317093 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.398862630129 -0.116559632123 -0.909572660923 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.577902257442 -0.002421748824 -0.816102385521 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.647427976131 0.019929872826 -0.761865973473 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.761567533016 -0.045328486711 -0.646498441696 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.949094235897 0.007942831144 -0.314892143011 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.963914513588 0.155681833625 0.215944394469 +vn 0.997646987438 0.040396459401 -0.055394966155 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.933379650116 0.281861096621 0.222163870931 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.940660119057 0.304994046688 0.148785516620 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.945739746094 0.324362844229 -0.019108049572 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.937179505825 0.337875336409 -0.086803659797 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.891787886620 0.452209621668 -0.014860952273 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.781435728073 0.546684145927 0.300823241472 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.506390750408 0.538258075714 0.673681437969 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.506390750408 0.538258075714 0.673681437969 +vn -0.299555271864 0.546643376350 0.781951189041 +vn 0.159534424543 0.524704039097 0.836202383041 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.073365107179 0.805665493011 0.587810039520 +vn -0.339267462492 0.787710845470 0.514207422733 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.889801084995 0.299412399530 0.344392567873 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.808350086212 0.203630700707 0.552362799644 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.874613881111 0.251075208187 0.414743065834 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.899425983429 0.198404535651 0.389446407557 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.900945067406 0.305853515863 0.307817548513 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.950938582420 0.160574719310 -0.264445781708 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.882616877556 0.102173909545 -0.458855003119 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.643136858940 0.096314810216 -0.759669959545 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.320609718561 0.092053167522 -0.942727744579 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.935305595398 0.353835970163 0.001867453801 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.971110105515 0.234779074788 -0.042708016932 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.690404534340 0.159054651856 -0.705721735954 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.649252891541 0.146428629756 -0.746343970299 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.458819925785 0.122962743044 -0.879979789257 +vn 0.051589123905 0.106985323131 -0.992921292782 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.894793391228 0.437213540077 -0.090493924916 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.682536661625 0.380229771137 -0.624154686928 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.468114078045 0.390638738871 -0.792635202408 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.082577347755 0.397961974144 -0.913677871227 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.300105422735 0.398083269596 -0.866871654987 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.618252098560 0.372385114431 -0.692165970802 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.870385944843 0.337260872126 -0.358724743128 +vn -0.954860091209 0.286923676729 -0.076921768486 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.900584936142 0.356063216925 0.249330729246 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.911430358887 0.392372965813 0.123847253621 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.879127502441 0.464078336954 0.108471810818 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.851247549057 0.477446943521 0.217765927315 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.339267462492 0.787710845470 0.514207422733 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.339267462492 0.787710845470 0.514207422733 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.022177392617 0.949803769588 0.312059193850 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.339267462492 0.787710845470 0.514207422733 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.073365107179 0.805665493011 0.587810039520 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.384399235249 0.833342432976 0.397212386131 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.583706438541 0.802595734596 0.122991107404 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.709767103195 0.697536826134 -0.098351791501 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.824468553066 0.518499433994 -0.226737543941 +vn 0.749483346939 0.541744291782 -0.380509972572 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.509359657764 0.645855545998 -0.568703174591 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.113862566650 0.711150884628 -0.693757712841 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.233893856406 0.712710499763 -0.661314904690 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.524419128895 0.664470672607 -0.532412707806 +vn -0.801686048508 0.561523139477 -0.204917788506 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.761753618717 0.646870017052 -0.035924945027 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.473680764437 0.825297594070 -0.307425469160 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.166509822011 0.881523549557 -0.441803902388 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.261811822653 0.863229155540 -0.431613206863 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.646529257298 0.697131037712 -0.309851974249 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.598942220211 0.781105816364 -0.176470771432 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.203431159258 0.979057490826 0.007884264924 +vn 0.203431159258 0.979057490826 0.007884264924 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.530289411545 0.847510576248 -0.022779457271 +vn -0.009512823075 0.999211311340 0.038552604616 +vn 0.022177392617 0.949803769588 0.312059193850 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.320996463299 0.929820060730 0.179988548160 +vn 0.203431159258 0.979057490826 0.007884264924 +vn -0.009512823075 0.999211311340 0.038552604616 +vn 0.022177392617 0.949803769588 0.312059193850 +vn -0.009512823075 0.999211311340 0.038552604616 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.288760930300 0.908043682575 0.303436666727 +vn 0.022177392617 0.949803769588 0.312059193850 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.288760930300 0.908043682575 0.303436666727 +vn -0.707089662552 0.699392676353 0.104278922081 +vn -0.584631860256 0.788804054260 0.189720153809 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.707089662552 0.699392676353 0.104278922081 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.009512823075 0.999211311340 0.038552604616 +vn -0.009512823075 0.999211311340 0.038552604616 +vn 0.203431159258 0.979057490826 0.007884264924 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.250993162394 0.964091360569 0.086776979268 +vn -0.009512823075 0.999211311340 0.038552604616 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn 0.271936625242 0.949670791626 -0.155485764146 +vn 0.281529068947 0.918153464794 -0.278811126947 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.121225893497 0.952505052090 -0.279353648424 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.440613836050 0.886203765869 -0.143186286092 +vn -0.406076490879 0.913435757160 -0.027146851644 +vn -0.078651353717 0.986206769943 -0.145637229085 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn 0.221423864365 -0.754890739918 0.617342233658 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn 0.349241763353 -0.781512439251 0.516980171204 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.231967061758 -0.233555212617 0.944268643856 +vn 0.221423864365 -0.754890739918 0.617342233658 +vn 0.349241763353 -0.781512439251 0.516980171204 +vn 0.408381432295 -0.796557366848 0.445781260729 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.546610355377 -0.258020311594 0.796644628048 +vn 0.349241763353 -0.781512439251 0.516980171204 +vn 0.408381432295 -0.796557366848 0.445781260729 +vn 0.427210748196 -0.706106841564 0.564715921879 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.830623030663 -0.231687158346 0.506346166134 +vn 0.408381432295 -0.796557366848 0.445781260729 +vn 0.427210748196 -0.706106841564 0.564715921879 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.427210748196 -0.706106841564 0.564715921879 +vn 0.428907752037 -0.443769127131 0.786833584309 +vn 0.428907752037 -0.443769127131 0.786833584309 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.918158710003 -0.240577429533 0.314812809229 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.428907752037 -0.443769127131 0.786833584309 +vn 0.417140841484 -0.120375834405 0.900834739208 +vn 0.417140841484 -0.120375834405 0.900834739208 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.873789131641 -0.168129771948 0.456316709518 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.417140841484 -0.120375834405 0.900834739208 +vn 0.424012660980 0.031315691769 0.905114650726 +vn 0.424012660980 0.031315691769 0.905114650726 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.813842773438 0.072670906782 0.576523065567 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.424012660980 0.031315691769 0.905114650726 +vn 0.395210921764 0.116690479219 0.911148548126 +vn 0.395210921764 0.116690479219 0.911148548126 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.769383728504 0.143628954887 0.622430264950 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.395210921764 0.116690479219 0.911148548126 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.705974459648 0.211807489395 0.675823688507 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn 0.655949294567 -0.360590577126 0.663102567196 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn -0.017104798928 -0.994401037693 0.104278236628 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.683387815952 -0.673397064209 0.281988471746 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn -0.089078962803 -0.979717195034 -0.179496884346 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn 0.633489966393 -0.757112979889 -0.159594580531 +vn -0.017104798928 -0.994401037693 0.104278236628 +vn -0.089078962803 -0.979717195034 -0.179496884346 +vn -0.141694068909 -0.964558184147 -0.222599074244 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn 0.408531010151 -0.740816414356 -0.533191740513 +vn -0.089078962803 -0.979717195034 -0.179496884346 +vn -0.141694068909 -0.964558184147 -0.222599074244 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn -0.141694068909 -0.964558184147 -0.222599074244 +vn -0.164628922939 -0.971865355968 -0.168449014425 +vn -0.164628922939 -0.971865355968 -0.168449014425 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.352352052927 -0.675574064255 -0.647647798061 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn -0.164628922939 -0.971865355968 -0.168449014425 +vn -0.106762722135 -0.991933047771 -0.068341821432 +vn -0.106762722135 -0.991933047771 -0.068341821432 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.264879673719 -0.680946111679 -0.682752609253 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn -0.106762722135 -0.991933047771 -0.068341821432 +vn 0.032250907272 -0.990156650543 0.136197254062 +vn 0.032250907272 -0.990156650543 0.136197254062 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.212482243776 -0.757902085781 -0.616794705391 +vn 0.086438052356 -0.988402068615 0.124859288335 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.079081669450 -0.841114282608 -0.535044729710 +vn 0.032250907272 -0.990156650543 0.136197254062 +vn 0.086438052356 -0.988402068615 0.124859288335 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn 0.086438052356 -0.988402068615 0.124859288335 +vn 0.156755745411 -0.987137198448 0.031429961324 +vn 0.156755745411 -0.987137198448 0.031429961324 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.155002683401 -0.764973640442 -0.625131547451 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn 0.156755745411 -0.987137198448 0.031429961324 +vn 0.129998713732 -0.981209576130 -0.142576515675 +vn 0.129998713732 -0.981209576130 -0.142576515675 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn 0.160609349608 -0.944374680519 -0.286986321211 +vn 0.171683400869 -0.948143720627 -0.267485111952 +vn 0.171683400869 -0.948143720627 -0.267485111952 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn 0.171683400869 -0.948143720627 -0.267485111952 +vn 0.200182467699 -0.979581654072 -0.018621146679 +vn 0.200182467699 -0.979581654072 -0.018621146679 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.494367212057 -0.821183621883 -0.285058826208 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn 0.200182467699 -0.979581654072 -0.018621146679 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.462283223867 -0.884084403515 0.068476572633 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.353442579508 -0.812535405159 0.463534832001 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.105939380825 0.093255937099 0.989989995956 +vn 0.105939380825 0.093255937099 0.989989995956 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.279677391052 -0.181245908141 0.942831099033 +vn -0.304022520781 0.155782133341 0.939841628075 +vn 0.105939380825 0.093255937099 0.989989995956 +vn 0.091720648110 -0.006141365506 0.995765864849 +vn 0.091720648110 -0.006141365506 0.995765864849 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.304022520781 0.155782133341 0.939841628075 +vn -0.365280956030 0.082129344344 0.927267253399 +vn 0.091720648110 -0.006141365506 0.995765864849 +vn 0.074245169759 -0.239324852824 0.968096733093 +vn 0.074245169759 -0.239324852824 0.968096733093 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.365280956030 0.082129344344 0.927267253399 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn 0.074245169759 -0.239324852824 0.968096733093 +vn -0.011659302749 -0.585357308388 0.810691654682 +vn -0.011659302749 -0.585357308388 0.810691654682 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.442798525095 -0.048629581928 0.895301401615 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.011659302749 -0.585357308388 0.810691654682 +vn -0.097086712718 -0.792906105518 0.601559698582 +vn -0.097086712718 -0.792906105518 0.601559698582 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.602641165257 -0.246796503663 0.758890688419 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn -0.097086712718 -0.792906105518 0.601559698582 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn -0.014092958532 -0.790904879570 0.611776828766 +vn -0.182521164417 -0.203338980675 0.961945593357 +vn -0.532182991505 -0.286137044430 0.796810448170 +vn 0.105939380825 0.093255937099 0.989989995956 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.344442546368 -0.215144351125 0.913822889328 +vn -0.004304377362 -0.913099169731 0.407714813948 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn -0.016325036064 -0.353321343660 0.935359537601 +vn -0.924340128899 0.360457271338 0.125163570046 +vn -0.960693836212 0.275875806808 -0.030982023105 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.924340128899 0.360457271338 0.125163570046 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.906805396080 0.355602860451 -0.226385816932 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.943933427334 0.166785299778 -0.284907698631 +vn 0.817821025848 0.123250223696 -0.562119364738 +vn 0.783317208290 0.248922675848 -0.569606602192 +vn 0.791172683239 0.410195678473 -0.453635632992 +vn 0.746720135212 0.375254184008 -0.549175143242 +vn 0.830051660538 0.501415014267 -0.244125440717 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.975682437420 0.182560175657 -0.121307574213 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.984978437424 -0.148210123181 -0.088606998324 +vn -0.977963626385 -0.174421295524 0.114736154675 +vn -0.974032580853 0.165303468704 0.154710352421 +vn -0.339267462492 0.787710845470 0.514207422733 +vn -0.665048420429 0.670540630817 0.328764200211 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.705455362797 0.442646503448 0.553531229496 +vn -0.299555271864 0.546643376350 0.781951189041 +vn -0.339267462492 0.787710845470 0.514207422733 +vn 0.160609349608 -0.944374680519 -0.286986321211 +vn -0.479634582996 -0.732783257961 -0.482679367065 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn 0.129998713732 -0.981209576130 -0.142576515675 +vn 0.160609349608 -0.944374680519 -0.286986321211 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn -0.284915238619 -0.800749540329 -0.526899874210 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.436591178179 -0.710123062134 -0.552370667458 +vn -0.815816044807 -0.033233188093 -0.577355861664 +vn -0.587253093719 -0.116071887314 -0.801037490368 +vn 0.236537411809 -0.417193204165 0.877496361732 +vn 0.395210921764 0.116690479219 0.911148548126 +vn -0.016325036064 -0.353321343660 0.935359537601 +vn 0.324508875608 -0.535487234592 0.779709815979 +vn 0.365930229425 -0.888301491737 0.277516782284 +vn 0.344442546368 -0.215144351125 0.913822889328 +vn 0.676891267300 0.478440582752 0.559386134148 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.215249896049 0.259879410267 0.941344857216 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.676891267300 0.478440582752 0.559386134148 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn 0.384487777948 0.887601256371 0.253639906645 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.277345180511 0.887103021145 -0.368955165148 +vn -0.347879409790 0.817592084408 0.458827942610 +vn 0.384487777948 0.887601256371 0.253639906645 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.254123061895 0.426116853952 0.868242979050 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.384487777948 0.887601256371 0.253639906645 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.347879409790 0.817592084408 0.458827942610 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.923225998878 0.380098938942 0.056378662586 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.718087673187 0.217695534229 -0.661028504372 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.056213334203 0.268312811852 -0.961690306664 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.384487777948 0.887601256371 0.253639906645 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.530799150467 0.680233538151 -0.505504250526 +vn 0.384487777948 0.887601256371 0.253639906645 +vn 0.685477375984 0.462024539709 0.562720298767 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.201308771968 0.240931555629 0.949434995651 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.685477375984 0.462024539709 0.562720298767 +vn -0.240289658308 0.320749431849 0.916177213192 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.653510272503 0.565980076790 0.502584218979 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.221647694707 0.312501966953 0.923696279526 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.680037975311 0.480506420135 0.553770661354 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.219177588820 0.295268416405 0.929934263229 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.682748973370 0.479876726866 0.550973832607 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.225854665041 0.275281429291 0.934456944466 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.680287778378 0.480499923229 0.553469419479 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.254123061895 0.426116853952 0.868242979050 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.240289658308 0.320749431849 0.916177213192 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.225854665041 0.275281429291 0.934456944466 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.949123442173 -0.061713241041 0.308797955513 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.921951174736 -0.151050478220 0.356636703014 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.907250344753 -0.188964352012 0.375751674175 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn -0.718620479107 -0.362539023161 -0.593422293663 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn -0.688484191895 -0.460392743349 -0.560382068157 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn -0.695992946625 -0.460888862610 -0.550613582134 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.226011291146 -0.206536710262 -0.951977670193 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.236712202430 -0.296670228243 -0.925177872181 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.224680751562 -0.257442176342 -0.939809620380 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.881881117821 0.258271634579 -0.394438207150 +vn 0.653510272503 0.565980076790 0.502584218979 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.916761815548 0.175430729985 -0.358847975731 +vn 0.680037975311 0.480506420135 0.553770661354 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.904699862003 0.220005586743 -0.364850312471 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.676891267300 0.478440582752 0.559386134148 +vn 0.658345997334 0.509523391724 0.554045557976 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.211771011353 0.234253704548 0.948829948902 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.750280976295 0.265666365623 0.605392277241 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.213284403086 0.286679387093 0.933983266354 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.750280976295 0.265666365623 0.605392277241 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.520998537540 -0.756937682629 0.394469082355 +vn 0.340784788132 -0.793341636658 0.504454910755 +vn 0.333805084229 -0.795262694359 0.506094276905 +vn 0.333805084229 -0.795262694359 0.506094276905 +vn 0.523602247238 -0.757869243622 0.389197736979 +vn 0.520998537540 -0.756937682629 0.394469082355 +vn 0.585367500782 -0.787940621376 0.191035225987 +vn 0.520998537540 -0.756937682629 0.394469082355 +vn 0.523602247238 -0.757869243622 0.389197736979 +vn 0.523602247238 -0.757869243622 0.389197736979 +vn 0.588895976543 -0.784702122211 0.193504810333 +vn 0.585367500782 -0.787940621376 0.191035225987 +vn 0.428356975317 -0.900839090347 0.070705041289 +vn 0.585367500782 -0.787940621376 0.191035225987 +vn 0.588895976543 -0.784702122211 0.193504810333 +vn 0.588895976543 -0.784702122211 0.193504810333 +vn 0.425227791071 -0.902204632759 0.072167634964 +vn 0.428356975317 -0.900839090347 0.070705041289 +vn 0.244827017188 -0.958182632923 0.148140966892 +vn 0.428356975317 -0.900839090347 0.070705041289 +vn 0.425227791071 -0.902204632759 0.072167634964 +vn 0.425227791071 -0.902204632759 0.072167634964 +vn 0.247534096241 -0.957624971867 0.147245749831 +vn 0.244827017188 -0.958182632923 0.148140966892 +vn 0.238857537508 -0.902638971806 0.358036190271 +vn 0.244827017188 -0.958182632923 0.148140966892 +vn 0.247534096241 -0.957624971867 0.147245749831 +vn 0.247534096241 -0.957624971867 0.147245749831 +vn 0.239870905876 -0.901330232620 0.360646307468 +vn 0.238857537508 -0.902638971806 0.358036190271 +vn 0.340784788132 -0.793341636658 0.504454910755 +vn 0.238857537508 -0.902638971806 0.358036190271 +vn 0.239870905876 -0.901330232620 0.360646307468 +vn 0.239870905876 -0.901330232620 0.360646307468 +vn 0.333805084229 -0.795262694359 0.506094276905 +vn 0.340784788132 -0.793341636658 0.504454910755 +vn -0.351152896881 0.896278381348 -0.270881265402 +vn -0.389907628298 0.882185220718 -0.264047831297 +vn -0.380583465099 0.884880721569 -0.268593341112 +vn -0.380583465099 0.884880721569 -0.268593341112 +vn -0.349539011717 0.894979357719 -0.277190327644 +vn -0.351152896881 0.896278381348 -0.270881265402 +vn -0.315098047256 0.909006059170 -0.272802501917 +vn -0.351152896881 0.896278381348 -0.270881265402 +vn -0.349539011717 0.894979357719 -0.277190327644 +vn -0.349539011717 0.894979357719 -0.277190327644 +vn -0.314274698496 0.905051290989 -0.286554604769 +vn -0.315098047256 0.909006059170 -0.272802501917 +vn -0.324795067310 0.917077064514 -0.231252595782 +vn -0.315098047256 0.909006059170 -0.272802501917 +vn -0.314274698496 0.905051290989 -0.286554604769 +vn -0.314274698496 0.905051290989 -0.286554604769 +vn -0.327561646700 0.916575074196 -0.229332759976 +vn -0.324795067310 0.917077064514 -0.231252595782 +vn -0.376637071371 0.902566313744 -0.208610922098 +vn -0.324795067310 0.917077064514 -0.231252595782 +vn -0.327561646700 0.916575074196 -0.229332759976 +vn -0.327561646700 0.916575074196 -0.229332759976 +vn -0.376510679722 0.902412891388 -0.209500908852 +vn -0.376637071371 0.902566313744 -0.208610922098 +vn -0.409135401249 0.882911443710 -0.230381488800 +vn -0.376637071371 0.902566313744 -0.208610922098 +vn -0.376510679722 0.902412891388 -0.209500908852 +vn -0.376510679722 0.902412891388 -0.209500908852 +vn -0.404935628176 0.884113430977 -0.233175009489 +vn -0.409135401249 0.882911443710 -0.230381488800 +vn -0.389907628298 0.882185220718 -0.264047831297 +vn -0.409135401249 0.882911443710 -0.230381488800 +vn -0.404935628176 0.884113430977 -0.233175009489 +vn -0.404935628176 0.884113430977 -0.233175009489 +vn -0.380583465099 0.884880721569 -0.268593341112 +vn -0.389907628298 0.882185220718 -0.264047831297 +vn 0.570412695408 0.657898664474 0.491730272770 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.227320805192 0.221673280001 0.948254287243 +vn -0.227320805192 0.221673280001 0.948254287243 +vn 0.699121236801 0.428781896830 0.572167456150 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.699121236801 0.428781896830 0.572167456150 +vn 0.699121236801 0.428781896830 0.572167456150 +vn 0.892048120499 0.221571207047 -0.393898874521 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.892048120499 0.221571207047 -0.393898874521 +vn 0.892048120499 0.221571207047 -0.393898874521 +vn 0.232417941093 -0.321322321892 -0.918005347252 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.232417941093 -0.321322321892 -0.918005347252 +vn 0.232417941093 -0.321322321892 -0.918005347252 +vn -0.622993707657 -0.581864595413 -0.522792935371 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.622993707657 -0.581864595413 -0.522792935371 +vn -0.622993707657 -0.581864595413 -0.522792935371 +vn -0.857758522034 -0.317021489143 0.404657512903 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.857758522034 -0.317021489143 0.404657512903 +vn -0.857758522034 -0.317021489143 0.404657512903 +vn -0.227320805192 0.221673280001 0.948254287243 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.153622061014 0.138630852103 0.978356659412 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.551810741425 0.698545396328 0.455564767122 +vn 0.551810741425 0.698545396328 0.455564767122 +vn -0.257132411003 0.416455388069 0.872036576271 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.257132411003 0.416455388069 0.872036576271 +vn -0.257132411003 0.416455388069 0.872036576271 +vn -0.917856097221 -0.143156483769 0.370197772980 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.917856097221 -0.143156483769 0.370197772980 +vn -0.917856097221 -0.143156483769 0.370197772980 +vn -0.723487615585 -0.324982106686 -0.609058499336 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.723487615585 -0.324982106686 -0.609058499336 +vn -0.723487615585 -0.324982106686 -0.609058499336 +vn 0.159523501992 -0.123263031244 -0.979468464851 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.159523501992 -0.123263031244 -0.979468464851 +vn 0.159523501992 -0.123263031244 -0.979468464851 +vn 0.838533520699 0.315829396248 -0.443974435329 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.838533520699 0.315829396248 -0.443974435329 +vn 0.838533520699 0.315829396248 -0.443974435329 +vn 0.551810741425 0.698545396328 0.455564767122 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.543161213398 0.695157170296 0.470884680748 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.263800501823 0.365938633680 0.892467498779 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.570412695408 0.657898664474 0.491730272770 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.760976850986 0.469329386950 -0.447933167219 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn 0.106153875589 -0.007835450582 -0.994318842888 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.749192118645 -0.260680377483 -0.608898103237 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.945832312107 -0.043938733637 0.321668446064 +vn -0.263800501823 0.365938633680 0.892467498779 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.117148451507 0.034600071609 0.992511510849 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.706371426582 0.398818373680 0.584793448448 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.117148451507 0.034600071609 0.992511510849 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.153622061014 0.138630852103 0.978356659412 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn -0.773168981075 -0.442755550146 0.454067409039 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.809115707874 -0.377030491829 0.450754731894 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn -0.578914999962 -0.647734820843 -0.495274722576 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn -0.639346003532 -0.562029004097 -0.524747669697 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.266819119453 -0.410633623600 -0.871887385845 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.238241240382 -0.329128980637 -0.913736939430 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.933817505836 0.069771841168 -0.350879937410 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.923433840275 0.129846125841 -0.361123204231 +vn 0.706371426582 0.398818373680 0.584793448448 +vn 0.750280976295 0.265666365623 0.605392277241 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.332089483738 -0.877025306225 0.347193360329 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.764939725399 0.154692605138 0.625249862671 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn 0.193432345986 -0.589852690697 0.784001111984 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn -0.295678406954 -0.832099795341 0.469237923622 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn -0.115704677999 -0.992193222046 -0.046530377120 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.416424691677 -0.838034331799 -0.352546423674 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.812869012356 -0.581592381001 0.031531836838 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.690424919128 -0.371962577105 0.620449244976 +vn 0.696267127991 0.416324853897 0.584709942341 +vn -0.163892567158 0.169382914901 0.971827507019 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.168904587626 0.153192564845 0.973654627800 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.696267127991 0.416324853897 0.584709942341 +vn -0.163892567158 0.169382914901 0.971827507019 +vn -0.869695901871 -0.274154037237 0.410449296236 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.163892567158 0.169382914901 0.971827507019 +vn -0.869695901871 -0.274154037237 0.410449296236 +vn -0.680004060268 -0.465699821711 -0.566319882870 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.869695901871 -0.274154037237 0.410449296236 +vn -0.680004060268 -0.465699821711 -0.566319882870 +vn 0.207809269428 -0.215856730938 -0.954055130482 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.680004060268 -0.465699821711 -0.566319882870 +vn 0.207809269428 -0.215856730938 -0.954055130482 +vn 0.899366557598 0.232333302498 -0.370352536440 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.207809269428 -0.215856730938 -0.954055130482 +vn 0.899366557598 0.232333302498 -0.370352536440 +vn 0.696267127991 0.416324853897 0.584709942341 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.899366557598 0.232333302498 -0.370352536440 +vn -0.662377238274 -0.626874268055 0.410225600004 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.499279826880 -0.238045200706 0.833099126816 +vn -0.499279826880 -0.238045200706 0.833099126816 +vn -0.804239809513 -0.440206110477 0.399270415306 +vn -0.662377238274 -0.626874268055 0.410225600004 +vn -0.522163152695 -0.246549248695 -0.816430747509 +vn -0.512087404728 -0.264961868525 -0.817044496536 +vn -0.473620533943 -0.329276412725 -0.816860198975 +vn -0.473620533943 -0.329276412725 -0.816860198975 +vn -0.473841011524 -0.329637020826 -0.816586852074 +vn -0.522163152695 -0.246549248695 -0.816430747509 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.382704496384 0.445656538010 -0.809275925159 +vn 0.526769578457 0.236967489123 -0.816308915615 +vn 0.526769578457 0.236967489123 -0.816308915615 +vn 0.847266793251 0.458697319031 -0.267835289240 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.804961979389 0.551999032497 0.217562019825 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.847266793251 0.458697319031 -0.267835289240 +vn 0.847266793251 0.458697319031 -0.267835289240 +vn 0.838858008385 0.494629532099 0.227285787463 +vn 0.804961979389 0.551999032497 0.217562019825 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn 0.048752576113 -0.154843926430 0.986735284328 +vn -0.069586545229 0.022697513923 0.997317671776 +vn -0.069586545229 0.022697513923 0.997317671776 +vn -0.499279826880 -0.238045200706 0.833099126816 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.342832326889 -0.903053998947 0.258765399456 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn -0.662377238274 -0.626874268055 0.410225600004 +vn -0.342832326889 -0.903053998947 0.258765399456 +vn -0.654632925987 -0.115691319108 -0.747041642666 +vn -0.644643008709 -0.127199381590 -0.753827393055 +vn -0.512087404728 -0.264961868525 -0.817044496536 +vn -0.512087404728 -0.264961868525 -0.817044496536 +vn -0.522163152695 -0.246549248695 -0.816430747509 +vn -0.654632925987 -0.115691319108 -0.747041642666 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn -0.013651727699 0.782738447189 -0.622201085091 +vn 0.382704496384 0.445656538010 -0.809275925159 +vn 0.382704496384 0.445656538010 -0.809275925159 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.662259042263 0.684042572975 0.305775582790 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.730786740780 0.610652327538 -0.305048257113 +vn 0.804961979389 0.551999032497 0.217562019825 +vn 0.662259042263 0.684042572975 0.305775582790 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.393361032009 -0.415148884058 0.820316076279 +vn 0.048752576113 -0.154843926430 0.986735284328 +vn 0.048752576113 -0.154843926430 0.986735284328 +vn -0.382990270853 -0.432740062475 0.816121637821 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.048680081964 -0.994659066200 -0.091014303267 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn -0.342832326889 -0.903053998947 0.258765399456 +vn 0.048680081964 -0.994659066200 -0.091014303267 +vn -0.803988158703 -0.094470322132 -0.587093174458 +vn -0.801242232323 -0.099859014153 -0.589948415756 +vn -0.644643008709 -0.127199381590 -0.753827393055 +vn -0.644643008709 -0.127199381590 -0.753827393055 +vn -0.654632925987 -0.115691319108 -0.747041642666 +vn -0.803988158703 -0.094470322132 -0.587093174458 +vn 0.089037470520 0.972759723663 0.214034825563 +vn -0.451572537422 0.873713314533 -0.180851474404 +vn -0.013651727699 0.782738447189 -0.622201085091 +vn -0.013651727699 0.782738447189 -0.622201085091 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.490652501583 0.740379989147 0.459453642368 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.435036271811 0.891461074352 -0.126651614904 +vn 0.662259042263 0.684042572975 0.305775582790 +vn 0.490652501583 0.740379989147 0.459453642368 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.712795853615 -0.526864945889 0.462963700294 +vn 0.393361032009 -0.415148884058 0.820316076279 +vn 0.393361032009 -0.415148884058 0.820316076279 +vn 0.010212839581 -0.767236471176 0.641283035278 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.251401871443 -0.758408725262 -0.601342916489 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.048680081964 -0.994659066200 -0.091014303267 +vn 0.251401871443 -0.758408725262 -0.601342916489 +vn -0.893262147903 -0.230714723468 -0.385815322399 +vn -0.885544598103 -0.229386016726 -0.403971284628 +vn -0.801242232323 -0.099859014153 -0.589948415756 +vn -0.801242232323 -0.099859014153 -0.589948415756 +vn -0.803988158703 -0.094470322132 -0.587093174458 +vn -0.893262147903 -0.230714723468 -0.385815322399 +vn -0.079347580671 0.714547991753 0.695071995258 +vn -0.715602040291 0.563986122608 0.412108510733 +vn -0.451572537422 0.873713314533 -0.180851474404 +vn -0.451572537422 0.873713314533 -0.180851474404 +vn 0.089037470520 0.972759723663 0.214034825563 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.405009925365 0.626119792461 0.666288971901 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.089037470520 0.972759723663 0.214034825563 +vn 0.490652501583 0.740379989147 0.459453642368 +vn 0.405009925365 0.626119792461 0.666288971901 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.959425985813 -0.281454920769 -0.016879195347 +vn 0.712795853615 -0.526864945889 0.462963700294 +vn 0.712795853615 -0.526864945889 0.462963700294 +vn 0.435790151358 -0.874335944653 0.213596761227 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.135830551386 -0.277985215187 -0.950933396816 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.251401871443 -0.758408725262 -0.601342916489 +vn 0.135830551386 -0.277985215187 -0.950933396816 +vn -0.846260547638 -0.440019220114 -0.300376683474 +vn -0.846942424774 -0.425363630056 -0.318989604712 +vn -0.885544598103 -0.229386016726 -0.403971284628 +vn -0.885544598103 -0.229386016726 -0.403971284628 +vn -0.893262147903 -0.230714723468 -0.385815322399 +vn -0.846260547638 -0.440019220114 -0.300376683474 +vn 0.038355976343 0.223484531045 0.973952531815 +vn -0.579691588879 -0.009793659672 0.814777135849 +vn -0.715602040291 0.563986122608 0.412108510733 +vn -0.715602040291 0.563986122608 0.412108510733 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.449782669544 0.419279068708 0.788606762886 +vn 0.038355976343 0.223484531045 0.973952531815 +vn -0.079347580671 0.714547991753 0.695071995258 +vn -0.079347580671 0.714547991753 0.695071995258 +vn 0.405009925365 0.626119792461 0.666288971901 +vn 0.449782669544 0.419279068708 0.788606762886 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.915183722973 0.209073305130 -0.344568014145 +vn 0.959425985813 -0.281454920769 -0.016879195347 +vn 0.959425985813 -0.281454920769 -0.016879195347 +vn 0.702698290348 -0.607031822205 -0.371116548777 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn -0.197052255273 0.120570488274 -0.972950756550 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.135830551386 -0.277985215187 -0.950933396816 +vn -0.197052255273 0.120570488274 -0.972950756550 +vn -0.748504459858 -0.580423593521 -0.320701569319 +vn -0.756549417973 -0.568829655647 -0.322592258453 +vn -0.846942424774 -0.425363630056 -0.318989604712 +vn -0.846942424774 -0.425363630056 -0.318989604712 +vn -0.846260547638 -0.440019220114 -0.300376683474 +vn -0.748504459858 -0.580423593521 -0.320701569319 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn -0.239331066608 -0.482139617205 0.842770457268 +vn -0.579691588879 -0.009793659672 0.814777135849 +vn -0.579691588879 -0.009793659672 0.814777135849 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.573455870152 0.261886984110 0.776249706745 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.038355976343 0.223484531045 0.973952531815 +vn 0.449782669544 0.419279068708 0.788606762886 +vn 0.573455870152 0.261886984110 0.776249706745 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn 0.657979726791 0.678265154362 -0.327137589455 +vn 0.915183722973 0.209073305130 -0.344568014145 +vn 0.915183722973 0.209073305130 -0.344568014145 +vn 0.622677326202 -0.050570812076 -0.780842840672 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn -0.438953995705 0.307949036360 -0.844089329243 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn -0.197052255273 0.120570488274 -0.972950756550 +vn -0.438953995705 0.307949036360 -0.844089329243 +vn -0.577075004578 -0.720137119293 -0.385210335255 +vn -0.631202220917 -0.677794516087 -0.377065479755 +vn -0.756549417973 -0.568829655647 -0.322592258453 +vn -0.756549417973 -0.568829655647 -0.322592258453 +vn -0.748504459858 -0.580423593521 -0.320701569319 +vn -0.577075004578 -0.720137119293 -0.385210335255 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.107150927186 -0.772752523422 0.625597476959 +vn -0.239331066608 -0.482139617205 0.842770457268 +vn -0.239331066608 -0.482139617205 0.842770457268 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.675563931465 0.163798823953 0.718876481056 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.298763692379 -0.113984473050 0.947495520115 +vn 0.573455870152 0.261886984110 0.776249706745 +vn 0.675563931465 0.163798823953 0.718876481056 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn 0.393360197544 0.904708862305 -0.163614228368 +vn 0.657979726791 0.678265154362 -0.327137589455 +vn 0.657979726791 0.678265154362 -0.327137589455 +vn 0.307854622602 0.464908808470 -0.830111622810 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.514398455620 0.378968864679 -0.769270300865 +vn -0.137769415975 0.828296601772 -0.543087780476 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.438953995705 0.307949036360 -0.844089329243 +vn -0.514398455620 0.378968864679 -0.769270300865 +vn -0.556825041771 -0.704007327557 -0.440816938877 +vn -0.600282192230 -0.662484288216 -0.448080182076 +vn -0.631202220917 -0.677794516087 -0.377065479755 +vn -0.631202220917 -0.677794516087 -0.377065479755 +vn -0.577075004578 -0.720137119293 -0.385210335255 +vn -0.556825041771 -0.704007327557 -0.440816938877 +vn 0.684020638466 -0.337137818336 0.646880090237 +vn 0.223079264164 -0.842810750008 0.489801704884 +vn 0.107150927186 -0.772752523422 0.625597476959 +vn 0.107150927186 -0.772752523422 0.625597476959 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.684020638466 -0.337137818336 0.646880090237 +vn 0.769818246365 0.161918729544 0.617383360863 +vn 0.684020638466 -0.337137818336 0.646880090237 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.518678426743 -0.327887445688 0.789596378803 +vn 0.675563931465 0.163798823953 0.718876481056 +vn 0.769818246365 0.161918729544 0.617383360863 +vn -0.137769415975 0.828296601772 -0.543087780476 +vn 0.298304438591 0.947766005993 -0.112933620811 +vn 0.393360197544 0.904708862305 -0.163614228368 +vn 0.393360197544 0.904708862305 -0.163614228368 +vn -0.015659844503 0.758790850639 -0.651146113873 +vn -0.137769415975 0.828296601772 -0.543087780476 +vn -0.218723073602 0.307124495506 0.926193714142 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.676530897617 0.479380965233 0.559016883373 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.218723073602 0.307124495506 0.926193714142 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.221647694707 0.312501966953 0.923696279526 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.917439937592 -0.170511052012 0.359485685825 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.919012665749 -0.163916215301 0.358534842730 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn -0.670401155949 -0.457893431187 -0.583862960339 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn -0.681730031967 -0.466094911098 -0.563914597034 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.232400774956 -0.280038267374 -0.931433558464 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.231879636645 -0.296164631844 -0.926562666893 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.682748973370 0.479876726866 0.550973832607 +vn 0.908105671406 0.180472493172 -0.377854198217 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.917508840561 0.192104980350 -0.348242968321 +vn 0.676530897617 0.479380965233 0.559016883373 +vn 0.682748973370 0.479876726866 0.550973832607 +vn -0.231893524528 0.286410689354 0.929620504379 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.681994259357 0.479156374931 0.552533268929 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.231893524528 0.286410689354 0.929620504379 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.219177588820 0.295268416405 0.929934263229 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.909621715546 -0.186995491385 0.370973020792 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.909907639027 -0.179549068213 0.373938739300 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn -0.691403150558 -0.464157193899 -0.553642272949 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn -0.683602571487 -0.461759626865 -0.565212845802 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.232408687472 -0.262927412987 -0.936405539513 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.236520305276 -0.263811916113 -0.935126423836 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.907337546349 0.210294201970 -0.364025950432 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.908501267433 0.201881110668 -0.365881800652 +vn 0.681994259357 0.479156374931 0.552533268929 +vn 0.680287778378 0.480499923229 0.553469419479 +vn 0.673861861229 0.474872797728 0.566044211388 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.206624403596 0.240915045142 0.948296546936 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.673861861229 0.474872797728 0.566044211388 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.206624403596 0.240915045142 0.948296546936 +vn -0.215249896049 0.259879410267 0.941344857216 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.895451784134 -0.211260989308 0.391835272312 +vn -0.900530099869 -0.196758732200 0.387726187706 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn -0.692713320255 -0.448291033506 -0.564963161945 +vn -0.691453754902 -0.450606733561 -0.564663827419 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.203994378448 -0.226881235838 -0.952318847179 +vn 0.218465223908 -0.238150179386 -0.946338951588 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.673861861229 0.474872797728 0.566044211388 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.685477375984 0.462024539709 0.562720298767 +vn 0.892602801323 0.230994895101 -0.387171238661 +vn 0.898511350155 0.228213340044 -0.374961405993 +vn 0.682193696499 0.466817051172 0.562755405903 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.206473186612 0.250022917986 0.945968985558 +vn -0.206473186612 0.250022917986 0.945968985558 +vn 0.672250747681 0.474375575781 0.568372070789 +vn 0.682193696499 0.466817051172 0.562755405903 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.892609059811 -0.207406908274 0.400289177895 +vn -0.892609059811 -0.207406908274 0.400289177895 +vn -0.206473186612 0.250022917986 0.945968985558 +vn -0.201308771968 0.240931555629 0.949434995651 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn -0.697274863720 -0.451277852058 -0.556916594505 +vn -0.697274863720 -0.451277852058 -0.556916594505 +vn -0.892609059811 -0.207406908274 0.400289177895 +vn -0.892966151237 -0.215754017234 0.395046353340 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.194074183702 -0.230058833957 -0.953628957272 +vn 0.194074183702 -0.230058833957 -0.953628957272 +vn -0.697274863720 -0.451277852058 -0.556916594505 +vn -0.690826892853 -0.451026529074 -0.565095782280 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.889703333378 0.238144084811 -0.389506608248 +vn 0.889703333378 0.238144084811 -0.389506608248 +vn 0.194074183702 -0.230058833957 -0.953628957272 +vn 0.197611436248 -0.226847842336 -0.953671753407 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.682193696499 0.466817051172 0.562755405903 +vn 0.672250747681 0.474375575781 0.568372070789 +vn 0.672250747681 0.474375575781 0.568372070789 +vn 0.889703333378 0.238144084811 -0.389506608248 +vn 0.888792514801 0.234837070107 -0.393572568893 +vn 0.665205776691 0.510107040405 0.545244932175 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.226969450712 0.276726186275 0.933759868145 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.665205776691 0.510107040405 0.545244932175 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.226969450712 0.276726186275 0.933759868145 +vn -0.213284403086 0.286679387093 0.933983266354 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.892012178898 -0.212036281824 0.399192839861 +vn -0.895926833153 -0.207023650408 0.393009245396 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn -0.682163417339 -0.476584762335 -0.554544925690 +vn -0.678995072842 -0.478009134531 -0.557201027870 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.213831633329 -0.244800299406 -0.945700168610 +vn 0.207553997636 -0.256860315800 -0.943898379803 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.665205776691 0.510107040405 0.545244932175 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.658345997334 0.509523391724 0.554045557976 +vn 0.887191772461 0.243261545897 -0.392064481974 +vn 0.884813129902 0.235721811652 -0.401921570301 +vn 0.670803904533 0.475809752941 0.568882465363 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.272610336542 0.367797374725 0.889049291611 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.670803904533 0.475809752941 0.568882465363 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.272610336542 0.367797374725 0.889049291611 +vn -0.211771011353 0.234253704548 0.948829948902 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.960054516792 0.049479231238 0.275403499603 +vn -0.885972619057 -0.237013354897 0.398594051600 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn -0.770698904991 -0.121819429100 -0.625446438789 +vn -0.680139005184 -0.469099432230 -0.563344180584 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.055108718574 0.101982802153 -0.993258535862 +vn 0.217604622245 -0.205104112625 -0.954243421555 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.670803904533 0.475809752941 0.568882465363 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.543161213398 0.695157170296 0.470884680748 +vn 0.722058236599 0.512534260750 -0.464693993330 +vn 0.886675596237 0.257487684488 -0.384065717459 +vn 0.700519919395 0.417314112186 0.578896164894 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.700519919395 0.417314112186 0.578896164894 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.056536089629 -0.104562290013 0.992910087109 +vn -0.168904587626 0.153192564845 0.973654627800 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.720583796501 -0.519040763378 0.459734320641 +vn -0.857704401016 -0.305203676224 0.413755863905 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn -0.532744526863 -0.732410252094 -0.423979341984 +vn -0.669463574886 -0.488497883081 -0.559632301331 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.325455516577 -0.477934837341 -0.815878033638 +vn 0.219654008746 -0.233781188726 -0.947152853012 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.700519919395 0.417314112186 0.578896164894 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.764939725399 0.154692605138 0.625249862671 +vn 0.955836892128 -0.063799977303 -0.286889135838 +vn 0.905991435051 0.192221090198 -0.377134740353 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.229584172368 0.852379977703 0.469829171896 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.985347628593 -0.062460951507 0.158709406853 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.874474585056 -0.312890410423 -0.370666712523 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.825260698795 -0.564096808434 -0.027195354924 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn 0.043186146766 -0.834612667561 -0.549141705036 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn 0.289707869291 -0.616199791431 -0.732370913029 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn 0.985347628593 -0.062460951507 0.158709406853 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn 0.802102267742 -0.378115504980 -0.462234377861 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.038995340466 -0.702562272549 -0.710553050041 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn 0.335055351257 -0.725507557392 -0.601146161556 +vn -0.723464310169 -0.577978670597 -0.377544850111 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.839455544949 0.190680772066 0.508876383305 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.686181128025 0.609030485153 0.397790521383 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.803459405899 0.538893818855 0.253074049950 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.800493359566 0.529156804085 0.281431138515 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.658253967762 0.476895362139 0.582471072674 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.936452150345 0.213357940316 0.278452545404 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.616893053055 0.346695452929 0.706572890282 +vn 0.616893053055 0.346695452929 0.706572890282 +vn 0.985347628593 -0.062460951507 0.158709406853 +vn 0.949053943157 0.121953181922 0.290558248758 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.603666186333 0.348124086857 0.717214584351 +vn 0.616893053055 0.346695452929 0.706572890282 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.603666186333 0.348124086857 0.717214584351 +vn 0.626911520958 0.404290556908 0.665981292725 +vn 0.581736147404 0.413781523705 0.700262784958 +vn 0.582295238972 0.388309806585 0.714246273041 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.605078577995 0.364442020655 0.707857310772 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.581736147404 0.413781523705 0.700262784958 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.573984384537 0.438848376274 0.691342175007 +vn 0.573984384537 0.438848376274 0.691342175007 +vn 0.581736147404 0.413781523705 0.700262784958 +vn 0.596132755280 0.419728368521 0.684436857700 +vn 0.566616058350 0.477363884449 0.671617388725 +vn 0.573984384537 0.438848376274 0.691342175007 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.622975468636 0.450315475464 0.639622926712 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.566616058350 0.477363884449 0.671617388725 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.554501175880 0.500465869904 0.664877712727 +vn 0.566616058350 0.477363884449 0.671617388725 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.598666012287 0.478592902422 0.642298877239 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.554501175880 0.500465869904 0.664877712727 +vn 0.541685938835 0.558042049408 0.628621816635 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.660991668701 0.493317723274 0.565444648266 +vn 0.541685938835 0.558042049408 0.628621816635 +vn 0.491780072451 0.556345999241 0.669799625874 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.370886951685 0.612930238247 0.697681427002 +vn 0.491780072451 0.556345999241 0.669799625874 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.383700132370 0.539854407310 0.749220550060 +vn -0.067740865052 0.924975275993 0.373941093683 +vn 0.004882045556 0.808167695999 0.588932156563 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.696129977703 0.598392426968 0.396647810936 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn -0.067740865052 0.924975275993 0.373941093683 +vn 0.383700132370 0.539854407310 0.749220550060 +vn -0.062585294247 0.512094378471 0.856646001339 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.227120384574 0.774927020073 -0.589834272861 +vn 0.229398831725 0.792460381985 -0.565139591694 +vn 0.225670069456 0.764190435410 -0.604223489761 +vn 0.225670069456 0.764190435410 -0.604223489761 +vn 0.221627816558 0.735603809357 -0.640131354332 +vn 0.227120384574 0.774927020073 -0.589834272861 +vn -0.416140437126 0.849503874779 -0.324299782515 +vn 0.199336946011 0.966365575790 -0.162488013506 +vn -0.063228040934 0.967862427235 -0.243401989341 +vn -0.063228040934 0.967862427235 -0.243401989341 +vn -0.526178479195 0.778710901737 -0.341680556536 +vn -0.416140437126 0.849503874779 -0.324299782515 +vn -0.037351265550 -0.659526169300 0.750753045082 +vn -0.005032873247 -0.546992003918 0.837122738361 +vn -0.018200494349 -0.594198882580 0.804112195969 +vn -0.018200494349 -0.594198882580 0.804112195969 +vn -0.058633551002 -0.727339625359 0.683768332005 +vn -0.037351265550 -0.659526169300 0.750753045082 +vn -0.597158789635 -0.182681038976 0.781043529510 +vn -0.709266424179 0.149740710855 0.688853323460 +vn -0.714168488979 0.133881628513 0.687050998211 +vn -0.714168488979 0.133881628513 0.687050998211 +vn -0.601092875004 -0.198408842087 0.774158477783 +vn -0.597158789635 -0.182681038976 0.781043529510 +vn -0.310718089342 0.886000812054 -0.344175636768 +vn -0.286670923233 0.777926385403 -0.559151470661 +vn -0.306549847126 0.864508807659 -0.398311138153 +vn -0.306549847126 0.864508807659 -0.398311138153 +vn -0.316740483046 0.940792977810 -0.120764441788 +vn -0.310718089342 0.886000812054 -0.344175636768 +vn -0.758818030357 0.390478551388 0.521269321442 +vn -0.766251981258 0.386263102293 0.513477087021 +vn -0.688824176788 0.425401031971 0.586988270283 +vn -0.688824176788 0.425401031971 0.586988270283 +vn -0.679944336414 0.429292380810 0.594460844994 +vn -0.758818030357 0.390478551388 0.521269321442 +vn -0.714168488979 0.133881628513 0.687050998211 +vn -0.709266424179 0.149740710855 0.688853323460 +vn -0.755035281181 0.451850354671 0.475134670734 +vn -0.755035281181 0.451850354671 0.475134670734 +vn -0.755384206772 0.451619952917 0.474799036980 +vn -0.714168488979 0.133881628513 0.687050998211 +vn 0.004882045556 0.808167695999 0.588932156563 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.696129977703 0.598392426968 0.396647810936 +vn -0.062585294247 0.512094378471 0.856646001339 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.004882045556 0.808167695999 0.588932156563 +vn -0.062585294247 0.512094378471 0.856646001339 +vn 0.004882045556 0.808167695999 0.588932156563 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.062585294247 0.512094378471 0.856646001339 +vn -0.067740865052 0.924975275993 0.373941093683 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn 0.004882045556 0.808167695999 0.588932156563 +vn -0.067740865052 0.924975275993 0.373941093683 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.067740865052 0.924975275993 0.373941093683 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn 0.260936617851 0.964896023273 -0.029794689268 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.207069844007 -0.739300668240 0.640746891499 +vn -0.082042597234 -0.496342778206 0.864241182804 +vn -0.082584783435 -0.501806735992 0.861028313637 +vn -0.082584783435 -0.501806735992 0.861028313637 +vn -0.218742683530 -0.747778773308 0.626880049706 +vn -0.207069844007 -0.739300668240 0.640746891499 +vn -0.082042597234 -0.496342778206 0.864241182804 +vn -0.336433708668 -0.580547392368 0.741469502449 +vn -0.329182595015 -0.575041651726 0.748976588249 +vn -0.329182595015 -0.575041651726 0.748976588249 +vn -0.082584783435 -0.501806735992 0.861028313637 +vn -0.082042597234 -0.496342778206 0.864241182804 +vn -0.723464310169 -0.577978670597 -0.377544850111 +vn -0.792546272278 -0.441156685352 -0.421012073755 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.723464310169 -0.577978670597 -0.377544850111 +vn -0.290420413017 -0.288244158030 0.912453472614 +vn -0.292118996382 -0.289201915264 0.911607801914 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.331636220217 -0.201299607754 0.921680986881 +vn -0.290420413017 -0.288244158030 0.912453472614 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.530348896980 -0.108248136938 0.840840280056 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.331636220217 -0.201299607754 0.921680986881 +vn -0.343499422073 -0.192366912961 0.919240534306 +vn -0.711355686188 0.047995567322 0.701191484928 +vn -0.715247035027 0.057760063559 0.696480751038 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.531560599804 -0.106481343508 0.840300559998 +vn -0.530348896980 -0.108248136938 0.840840280056 +vn -0.711355686188 0.047995567322 0.701191484928 +vn -0.678254187107 0.233527660370 0.696732461452 +vn -0.676289498806 0.234662115574 0.698259413242 +vn -0.715247035027 0.057760063559 0.696480751038 +vn -0.715247035027 0.057760063559 0.696480751038 +vn -0.711355686188 0.047995567322 0.701191484928 +vn -0.678254187107 0.233527660370 0.696732461452 +vn -0.807819128036 -0.426007598639 -0.407364487648 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.771373629570 -0.445649206638 -0.454290151596 +vn -0.807819128036 -0.426007598639 -0.407364487648 +vn -0.807143092155 -0.382068574429 -0.450048476458 +vn -0.822031438351 -0.366936504841 -0.435455977917 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.807143092155 -0.382068574429 -0.450048476458 +vn -0.813188791275 -0.351887822151 -0.463571965694 +vn -0.833994865417 -0.328578948975 -0.443270176649 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.813188791275 -0.351887822151 -0.463571965694 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.934351325035 0.180582076311 0.307209491730 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.944160640240 0.323921054602 -0.060297612101 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.689756512642 -0.386467009783 -0.612273812294 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.689756512642 -0.386467009783 -0.612273812294 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.886515855789 0.312364012003 -0.341347783804 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.188115775585 0.482156515121 -0.855650365353 +vn 0.779463052750 0.515830814838 -0.355465710163 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.745901107788 0.408829033375 -0.525823473930 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.159677147865 -0.149930417538 -0.975717186928 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.923839390278 -0.340887963772 -0.174115538597 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.799885809422 -0.375754773617 -0.467964798212 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.787681639194 -0.419256091118 -0.451422154903 +vn -0.755526661873 -0.421179801226 -0.501783847809 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.763828694820 -0.489515036345 -0.420643240213 +vn -0.771373629570 -0.445649206638 -0.454290151596 +vn -0.771373629570 -0.445649206638 -0.454290151596 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.730110049248 -0.523954749107 -0.438646525145 +vn -0.763828694820 -0.489515036345 -0.420643240213 +vn -0.763828694820 -0.489515036345 -0.420643240213 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.730110049248 -0.523954749107 -0.438646525145 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.667977154255 -0.468124926090 -0.578502893448 +vn -0.730110049248 -0.523954749107 -0.438646525145 +vn 0.631962656975 -0.748235523701 0.201907843351 +vn 0.605304896832 -0.786918938160 0.119852282107 +vn 0.620291948318 -0.767025291920 0.164042875171 +vn 0.620291948318 -0.767025291920 0.164042875171 +vn 0.644578337669 -0.723311424255 0.247667729855 +vn 0.631962656975 -0.748235523701 0.201907843351 +vn -0.663433015347 0.574735462666 0.479098916054 +vn -0.576117694378 0.644429028034 0.502791821957 +vn -0.603480875492 0.624114632607 0.496277928352 +vn -0.603480875492 0.624114632607 0.496277928352 +vn -0.706421017647 0.534547507763 0.463927060366 +vn -0.663433015347 0.574735462666 0.479098916054 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.792546272278 -0.441156685352 -0.421012073755 +vn -0.818468391895 -0.371596157551 -0.438207447529 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.751621365547 -0.450838387012 -0.481466561556 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.740067958832 -0.484423100948 -0.466512233019 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.744350910187 -0.521077871323 -0.417635709047 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.726788640022 -0.502398431301 -0.468373894691 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.621027767658 -0.595708489418 -0.509368121624 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.417442232370 -0.590895056725 -0.690351366997 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.674613356590 0.471521556377 -0.567947328091 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.254311680794 -0.167461365461 -0.952513635159 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn 0.463969379663 0.813530683517 -0.350571364164 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.373882293701 0.310287743807 -0.874032914639 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.612864077091 -0.559671700001 -0.557821869850 +vn -0.713246285915 -0.308358550072 -0.629440069199 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.495753198862 0.131482884288 0.858452677727 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.256251752377 0.170163363218 0.951514303684 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.603593230247 0.192291274667 0.773756623268 +vn 0.229584172368 0.852379977703 0.469829171896 +vn 0.041993357241 0.797598063946 0.601725757122 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn 0.229584172368 0.852379977703 0.469829171896 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.041993357241 0.797598063946 0.601725757122 +vn 0.426158398390 0.826792299747 0.367155998945 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn 0.426158398390 0.826792299747 0.367155998945 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.922598123550 0.068173386157 0.379690796137 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn 0.645867347717 0.759562194347 -0.076946094632 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.995269954205 -0.094131454825 0.024020485580 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn 0.684990108013 0.674838602543 -0.274556785822 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.938056409359 0.055331554264 -0.342035889626 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.981343269348 -0.031429406255 -0.189677640796 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.764200329781 -0.186552703381 -0.617410659790 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.349761039019 -0.113213412464 -0.929973065853 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn -0.566509664059 -0.823908209801 -0.015559613705 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn -0.804719209671 -0.591550230980 0.049952868372 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn -0.570844233036 -0.740347564220 -0.354996263981 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.098033927381 -0.756649672985 -0.646429121494 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn 0.518000125885 -0.625398337841 0.583568990231 +vn 0.150375440717 -0.956338346004 0.250607728958 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.417796224356 -0.550401687622 0.722844600677 +vn -0.135790631175 -0.961399912834 0.239313766360 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn 0.553593516350 -0.527526497841 0.644398927689 +vn -0.072136357427 -0.994475126266 0.076259985566 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.671063661575 -0.589654684067 0.449422925711 +vn 0.191048607230 -0.981342017651 -0.021640488878 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.640465438366 -0.704728960991 0.305223017931 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.422723919153 0.738064825535 -0.525894224644 +vn -0.118776917458 0.966788709164 -0.226299867034 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.662224650383 0.613074541092 -0.430810958147 +vn -0.161380723119 0.978026390076 -0.131987363100 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.576915979385 0.514074325562 -0.634740591049 +vn -0.054437931627 0.979436457157 -0.194269850850 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.372853875160 0.596242547035 -0.710967540741 +vn -0.033968716860 0.937177479267 -0.347195148468 +vn -0.059337425977 0.911660373211 -0.406638026237 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.429046809673 -0.796191692352 0.426611751318 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn 0.126075819135 -0.991391956806 -0.035311166197 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.313647478819 -0.631883203983 -0.708765745163 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.507797300816 -0.014627303928 -0.861352384090 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn 0.884976446629 -0.250451683998 0.392543762922 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn 0.378463476896 0.783811092377 0.492346972227 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn 0.422761082649 0.905447840691 -0.037911430001 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.355150580406 0.699059724808 -0.620631575584 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.120943859220 0.924671351910 -0.361047744751 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn 0.388690173626 0.732356131077 0.559083580971 +vn -0.334084272385 0.786465167999 0.519480764866 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.411167144775 0.906487345695 0.096032403409 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.388690173626 0.732356131077 0.559083580971 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.334084272385 0.786465167999 0.519480764866 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.790524423122 0.521289408207 -0.321447402239 +vn -0.411167144775 0.906487345695 0.096032403409 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.334084272385 0.786465167999 0.519480764866 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn -0.740822911263 0.609460711479 0.282381057739 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn -0.334084272385 0.786465167999 0.519480764866 +vn 0.388690173626 0.732356131077 0.559083580971 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.740822911263 0.609460711479 0.282381057739 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.003442640649 0.996815025806 -0.079673819244 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.682607948780 0.602593600750 -0.413433611393 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.388690173626 0.732356131077 0.559083580971 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.718595862389 0.547037959099 0.429382652044 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.812969028950 0.469094514847 0.345009744167 +vn 0.817769885063 0.481556564569 0.315207391977 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.749369800091 0.489035457373 0.446418195963 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.812969028950 0.469094514847 0.345009744167 +vn 0.806812405586 0.465968638659 0.363217532635 +vn 0.812969028950 0.469094514847 0.345009744167 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.806812405586 0.465968638659 0.363217532635 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.767436444759 0.463645577431 0.442802578211 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.820294380188 0.412772327662 0.395899116993 +vn 0.806812405586 0.465968638659 0.363217532635 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.820294380188 0.412772327662 0.395899116993 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.757159888744 0.476233154535 0.447113960981 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.666716694832 0.479019969702 0.570989251137 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.378463476896 0.783811092377 0.492346972227 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.681036770344 0.469771593809 0.561697006226 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.665310978889 0.292275011539 0.686976432800 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.540240406990 0.256953597069 0.801320850849 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn 0.330415427685 -0.368209093809 0.869049906731 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn 0.007833177224 -0.254301071167 0.967093408108 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.785756528378 -0.244205147028 -0.568287372589 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.681711435318 -0.464849233627 -0.564964354038 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.662668108940 0.436805695295 -0.608335196972 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.949991941452 0.066238164902 -0.305168509483 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.621671855450 -0.395317047834 -0.676201522350 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn -0.289297044277 0.126304164529 -0.948870122433 +vn 0.543234527111 0.750437855721 -0.376482844353 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn 0.682607948780 0.602593600750 -0.413433611393 +vn -0.152807876468 0.003922926262 -0.988248109818 +vn -0.152807876468 0.003922926262 -0.988248109818 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn 0.568385779858 0.633698344231 -0.524751365185 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.304266571999 -0.081515416503 -0.949092745781 +vn -0.152807876468 0.003922926262 -0.988248109818 +vn 0.571283638477 0.195726588368 -0.797073483467 +vn 0.581513226032 0.206123635173 -0.786991357803 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn 0.559709072113 0.020506501198 -0.828435420990 +vn 0.571283638477 0.195726588368 -0.797073483467 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.595149517059 -0.417273491621 -0.686789572239 +vn -0.577492237091 -0.461448967457 -0.673474252224 +vn -0.577492237091 -0.461448967457 -0.673474252224 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.509972751141 0.793636679649 -0.331765860319 +vn -0.537571310997 0.772639870644 -0.337705105543 +vn -0.534661054611 0.774923622608 -0.337091892958 +vn -0.534661054611 0.774923622608 -0.337091892958 +vn -0.495952785015 0.803755402565 -0.328645855188 +vn -0.509972751141 0.793636679649 -0.331765860319 +vn 0.628486037254 -0.765047073364 0.140386179090 +vn 0.629080116749 -0.764525115490 0.140568733215 +vn 0.627358913422 -0.766035020351 0.140039905906 +vn 0.627358913422 -0.766035020351 0.140039905906 +vn 0.627170860767 -0.766199529171 0.139982149005 +vn 0.628486037254 -0.765047073364 0.140386179090 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn 0.601446866989 -0.122731477022 -0.789429366589 +vn 0.618541955948 -0.147163629532 -0.771847546101 +vn 0.618541955948 -0.147163629532 -0.771847546101 +vn 0.559709072113 0.020506501198 -0.828435420990 +vn 0.531929790974 0.057460013777 -0.844836711884 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.577492237091 -0.461448967457 -0.673474252224 +vn -0.526679396629 -0.509270489216 -0.680626451969 +vn 0.601446866989 -0.122731477022 -0.789429366589 +vn 0.734982609749 -0.236774384975 -0.635404169559 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn 0.618541955948 -0.147163629532 -0.771847546101 +vn 0.601446866989 -0.122731477022 -0.789429366589 +vn -0.526679396629 -0.509270489216 -0.680626451969 +vn -0.506287515163 -0.536978483200 -0.674779236317 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.526679396629 -0.509270489216 -0.680626451969 +vn -0.624906539917 -0.432199299335 -0.650150477886 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.603490769863 -0.486868530512 -0.631472826004 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn 0.734982609749 -0.236774384975 -0.635404169559 +vn 0.604554712772 -0.406347364187 -0.685124337673 +vn 0.604554712772 -0.406347364187 -0.685124337673 +vn 0.599086761475 -0.409433424473 -0.688083827496 +vn 0.734118044376 -0.247591629624 -0.632272958755 +vn -0.506287515163 -0.536978483200 -0.674779236317 +vn -0.700512945652 -0.458336979151 -0.546999812126 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.506287515163 -0.536978483200 -0.674779236317 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.566157758236 -0.520466208458 -0.639202833176 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.666281819344 -0.495860993862 -0.556947410107 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn -0.669272661209 -0.586196959019 -0.456560224295 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.726016998291 -0.656698286533 -0.204075306654 +vn -0.538350999355 -0.654604792595 0.530726671219 +vn -0.486205756664 -0.848186790943 0.210197895765 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.597590386868 -0.566873550415 -0.567045092583 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.672040104866 -0.656086146832 -0.343384683132 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn -0.577021539211 -0.631674647331 0.517719328403 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.572836101055 0.156684830785 0.804554939270 +vn -0.056767333299 -0.310560673475 0.948856949806 +vn 0.355971693993 -0.698756396770 0.620502710342 +vn 0.354127824306 -0.701984345913 0.617908954620 +vn 0.354813098907 -0.700787842274 0.618873238564 +vn 0.354813098907 -0.700787842274 0.618873238564 +vn 0.356339871883 -0.698108613491 0.621020376682 +vn 0.355971693993 -0.698756396770 0.620502710342 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn -0.045421313494 -0.364519536495 -0.930087327957 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn 0.208624199033 -0.309199512005 -0.927831649780 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.896686136723 0.435548067093 -0.079068511724 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.949957668781 0.131756618619 -0.283232480288 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.271968334913 -0.475931823254 -0.836374402046 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn 0.385559916496 -0.831905722618 -0.399094432592 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.977639138699 -0.121614255011 0.171556651592 +vn 0.737763464451 0.411261945963 0.535321116447 +vn 0.572836101055 0.156684830785 0.804554939270 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn 0.826030433178 -0.454960823059 0.332692533731 +vn 0.585414111614 -0.286889463663 0.758277475834 +vn 0.023477902636 -0.918665289879 -0.394338548183 +vn -0.098564960063 -0.946164667606 0.308313846588 +vn -0.755449414253 -0.654008865356 -0.039605412632 +vn 0.558988094330 0.524203598499 0.642450690269 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.553849399090 0.540512084961 0.633322656155 +vn 0.598153293133 0.517687678337 0.611728787422 +vn 0.383700132370 0.539854407310 0.749220550060 +vn 0.830982983112 0.368793278933 0.416483879089 +vn 0.820294380188 0.412772327662 0.395899116993 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.772460281849 0.431776523590 0.465697467327 +vn 0.915219843388 0.365772277117 0.169065743685 +vn 0.830982983112 0.368793278933 0.416483879089 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.690469682217 -0.475103706121 -0.545461297035 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.626620769501 -0.425015181303 -0.653229296207 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.674324989319 -0.420667380095 -0.606897652149 +vn -0.699129939079 -0.454820096493 -0.551684677601 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn -0.689756512642 -0.386467009783 -0.612273812294 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.116164192557 -0.129425451159 -0.984761357307 +vn -0.690721869469 -0.425349652767 -0.584791421890 +vn -0.742867887020 -0.401135712862 -0.535945415497 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.225397258997 0.847410619259 0.480719625950 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.022359715775 0.783848524094 0.620549440384 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.176284044981 0.601203441620 0.779408991337 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.221020415425 0.617830932140 0.754609107971 +vn 0.016968332231 0.508910477161 0.860652208328 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.016968332231 0.508910477161 0.860652208328 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.107152707875 0.334624469280 0.936239659786 +vn 0.016968332231 0.508910477161 0.860652208328 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.072499595582 0.978071272373 0.195244491100 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.022359715775 0.783848524094 0.620549440384 +vn 0.225397258997 0.847410619259 0.480719625950 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.022359715775 0.783848524094 0.620549440384 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.221020415425 0.617830932140 0.754609107971 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.340275913477 0.374614924192 0.862482428551 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.361942619085 0.091239318252 0.927724599838 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn -0.282722592354 -0.189093366265 0.940378427505 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn -0.114699073136 -0.423665881157 0.898527324200 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.116556644440 -0.576752722263 0.808560967445 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.375719875097 -0.625069260597 0.684195160866 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.623359560966 -0.561303257942 0.544390976429 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.821807086468 -0.395209699869 0.410417407751 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.940890491009 -0.152064502239 0.302657306194 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.962504327297 0.131084352732 0.237491607666 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.883385002613 0.411203354597 0.224817082286 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.715548932552 0.645697057247 0.266580253839 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.072499595582 0.978071272373 0.195244491100 +vn 0.072499595582 0.978071272373 0.195244491100 +vn 0.225397258997 0.847410619259 0.480719625950 +vn 0.484497249126 0.798884570599 0.356435000896 +vn 0.072499595582 0.978071272373 0.195244491100 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.235830068588 0.898830175400 0.369443446398 +vn 0.072499595582 0.978071272373 0.195244491100 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.235830068588 0.898830175400 0.369443446398 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.482984036207 0.692101240158 0.536397576332 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.631313920021 0.389362454414 0.670700788498 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.658245265484 0.036702454090 0.751908302307 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.559685468674 -0.312195211649 0.767649888992 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn -0.350638359785 -0.604206144810 0.715533137321 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn -0.062918022275 -0.794889926910 0.603482663631 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.259666293859 -0.855197250843 0.448565602303 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.567983329296 -0.775958120823 0.274379104376 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.815125644207 -0.569236397743 0.107424795628 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.963462889194 -0.266489982605 -0.026876050979 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.990399360657 0.086185812950 -0.108078926802 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.891834855080 0.435085475445 -0.123819284141 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.682788848877 0.727087855339 -0.071712374687 +vn 0.395072251558 0.917763888836 0.040340516716 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn 0.072499595582 0.978071272373 0.195244491100 +vn 0.395072251558 0.917763888836 0.040340516716 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.184946745634 0.935617744923 -0.300689518452 +vn -0.510389328003 0.851969182491 -0.116838611662 +vn -0.510389328003 0.851969182491 -0.116838611662 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.510389328003 0.851969182491 -0.116838611662 +vn -0.771237671375 0.633772552013 0.059369832277 +vn -0.771237671375 0.633772552013 0.059369832277 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.432139426470 0.900357484818 0.051106605679 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.771237671375 0.633772552013 0.059369832277 +vn -0.927791595459 0.314238816500 0.201138496399 +vn -0.927791595459 0.314238816500 0.201138496399 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.697865962982 0.678082287312 0.230624243617 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.927791595459 0.314238816500 0.201138496399 +vn -0.956224083900 -0.057976730168 0.286834865808 +vn -0.956224083900 -0.057976730168 0.286834865808 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.857345402241 0.352580279112 0.375027984381 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.956224083900 -0.057976730168 0.286834865808 +vn -0.852196872234 -0.426232755184 0.303456902504 +vn -0.852196872234 -0.426232755184 0.303456902504 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.886307537556 -0.026594040915 0.462332934141 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.852196872234 -0.426232755184 0.303456902504 +vn -0.631541669369 -0.734460175037 0.248441949487 +vn -0.631541669369 -0.734460175037 0.248441949487 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.780336201191 -0.401725471020 0.479261994362 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.631541669369 -0.734460175037 0.248441949487 +vn -0.327866882086 -0.935713112354 0.130170091987 +vn -0.327866882086 -0.935713112354 0.130170091987 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.555568754673 -0.715700089931 0.423221856356 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn -0.327866882086 -0.935713112354 0.130170091987 +vn 0.012606930919 -0.999365031719 -0.033325370401 +vn 0.012606930919 -0.999365031719 -0.033325370401 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn -0.246219098568 -0.920718669891 0.302742958069 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.012606930919 -0.999365031719 -0.033325370401 +vn 0.338061541319 -0.915723919868 -0.217173010111 +vn 0.338061541319 -0.915723919868 -0.217173010111 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.100627504289 -0.985559940338 0.136182814837 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.338061541319 -0.915723919868 -0.217173010111 +vn 0.598875761032 -0.697550654411 -0.393409401178 +vn 0.598875761032 -0.697550654411 -0.393409401178 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.432129591703 -0.900362253189 -0.051105588675 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.598875761032 -0.697550654411 -0.393409401178 +vn 0.755454063416 -0.378001183271 -0.535167455673 +vn 0.755454063416 -0.378001183271 -0.535167455673 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.697853982449 -0.678096115589 -0.230619743466 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.755454063416 -0.378001183271 -0.535167455673 +vn 0.783883988857 -0.005762599874 -0.620880603790 +vn 0.783883988857 -0.005762599874 -0.620880603790 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.857345044613 -0.352587401867 -0.375022053719 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.783883988857 -0.005762599874 -0.620880603790 +vn 0.679845094681 0.362510502338 -0.637492597103 +vn 0.679845094681 0.362510502338 -0.637492597103 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.886305391788 0.026597272605 -0.462336778641 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.679845094681 0.362510502338 -0.637492597103 +vn 0.459209173918 0.670695543289 -0.582489907742 +vn 0.459209173918 0.670695543289 -0.582489907742 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.780332505703 0.401737719774 -0.479257732630 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.459209173918 0.670695543289 -0.582489907742 +vn 0.155552893877 0.871945738792 -0.464234739542 +vn 0.155552893877 0.871945738792 -0.464234739542 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.555568575859 0.715697705746 -0.423226147890 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.155552893877 0.871945738792 -0.464234739542 +vn -0.184946745634 0.935617744923 -0.300689518452 +vn -0.184946745634 0.935617744923 -0.300689518452 +vn -0.100619047880 0.985560953617 -0.136181518435 +vn 0.246223002672 0.920717000961 -0.302744895220 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.169255286455 0.259556770325 0.950780153275 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.197535604239 0.024697216228 0.979984581470 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.440409421921 0.166868761182 0.882153272629 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.451448649168 0.167209327221 0.876490235329 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.452018499374 0.167220517993 0.876194357872 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.452623456717 0.167246818542 0.875876963139 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.463660359383 0.167292177677 0.870076119900 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.363943278790 0.341866672039 0.866413593292 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.176284044981 0.601203441620 0.779408991337 +vn 0.016968332231 0.508910477161 0.860652208328 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.169255286455 0.259556770325 0.950780153275 +vn 0.283881247044 0.325743108988 0.901833057404 +vn 0.016968332231 0.508910477161 0.860652208328 +vn 0.016968332231 0.508910477161 0.860652208328 +vn -0.107152707875 0.334624469280 0.936239659786 +vn 0.169255286455 0.259556770325 0.950780153275 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.169255286455 0.259556770325 0.950780153275 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.107152707875 0.334624469280 0.936239659786 +vn -0.115241959691 0.127359017730 0.985139071941 +vn 0.194399654865 0.158964470029 0.967956125736 +vn 0.197535604239 0.024697216228 0.979984581470 +vn 0.194399654865 0.158964470029 0.967956125736 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.115241959691 0.127359017730 0.985139071941 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn 0.197535604239 0.024697216228 0.979984581470 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.197535604239 0.024697216228 0.979984581470 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn -0.057254210114 -0.091495782137 0.994158148766 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.305516988039 -0.015322029591 0.952063322067 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.100197784603 -0.239033892751 0.965827703476 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.394724458456 -0.022512111813 0.918523728848 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.271152794361 -0.318406075239 0.908346712589 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.460756331682 -0.017682855949 0.887350499630 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.441843092442 -0.342358052731 0.829195797443 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.521523356438 -0.012042840943 0.853152036667 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.604076445103 -0.310684293509 0.733871161938 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.591680169106 0.003373243380 0.806165754795 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.747208595276 -0.221942380071 0.626435041428 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.684162914753 0.063145652413 0.726590454578 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.851525843143 -0.053865674883 0.521538317204 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.667653024197 0.162887707353 0.726434469223 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.863084256649 0.151679724455 0.481745600700 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.656706690788 0.291235148907 0.695642411709 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.804317176342 0.366487383842 0.467718809843 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.567347586155 0.336215704679 0.751715183258 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.669112265110 0.520763397217 0.530183255672 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.427116841078 0.346271544695 0.835264742374 +vn 0.489619523287 0.348137021065 0.799420595169 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.511473476887 0.606199979782 0.609029054642 +vn 0.344095647335 0.632951617241 0.693520307541 +vn 0.427116841078 0.346271544695 0.835264742374 +vn -0.035729635507 0.607942640781 0.793176591396 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.226580724120 0.800231337547 0.555239558220 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.035729635507 0.607942640781 0.793176591396 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.063553564250 0.828384757042 0.556542575359 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.274038642645 0.932397603989 0.235664024949 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.063553564250 0.828384757042 0.556542575359 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.226580724120 0.800231337547 0.555239558220 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.484057068825 0.664243340492 0.569622218609 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.669634461403 0.441104024649 0.597508907318 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.755023717880 0.164784476161 0.634653627872 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.727189660072 -0.122606091201 0.675398409367 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.590394258499 -0.377241045237 0.713529169559 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.365469276905 -0.560368835926 0.743248939514 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.086761683226 -0.644093751907 0.760010302067 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.203307241201 -0.615718901157 0.761286020279 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.460575342178 -0.479621708393 0.746882438660 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.645931184292 -0.256549030542 0.718996167183 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.731200158596 0.019573226571 0.681882083416 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.703438580036 0.306727319956 0.641164958477 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.566846191883 0.561266124249 0.603047072887 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.063553564250 0.828384757042 0.556542575359 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.342163980007 0.744452655315 0.573335886002 +vn -0.087142288685 0.967561662197 0.237130120397 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.087142288685 0.967561662197 0.237130120397 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.274038642645 0.932397603989 0.235664024949 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.594477415085 0.763044595718 0.253691971302 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.825399279594 0.485264062881 0.288504391909 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.931638896465 0.141375392675 0.334756553173 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.897019803524 -0.216296717525 0.385449409485 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.726828277111 -0.533273994923 0.432827323675 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.446954131126 -0.761327028275 0.469694793224 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.100011304021 -0.865711152554 0.490450710058 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.261155962944 -0.830548822880 0.491920948029 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.581612646580 -0.661173880100 0.473894327879 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.812520205975 -0.383413404226 0.439095735550 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.918760716915 -0.039528399706 0.392831087112 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.884145736694 0.318151026964 0.342149436474 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.713946640491 0.635133862495 0.294762849808 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.087142288685 0.967561662197 0.237130120397 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.434065520763 0.863180398941 0.257888972759 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.279109090567 0.903948545456 -0.323998630047 +vn 0.279109090567 0.903948545456 -0.323998630047 +vn -0.102105967700 0.941065251827 -0.322444617748 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.617344737053 0.725185930729 -0.304944008589 +vn 0.617344737053 0.725185930729 -0.304944008589 +vn 0.279109090567 0.903948545456 -0.323998630047 +vn 0.287722229958 0.947753131390 -0.137767583132 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.861044466496 0.432026088238 -0.268245995045 +vn 0.861044466496 0.432026088238 -0.268245995045 +vn 0.617344737053 0.725185930729 -0.304944008589 +vn 0.632264733315 0.765655398369 -0.118377074599 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.973190963268 0.069042496383 -0.219391137362 +vn 0.973190963268 0.069042496383 -0.219391137362 +vn 0.861044466496 0.432026088238 -0.268245995045 +vn 0.880540430546 0.467004269361 -0.080966107547 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.936656296253 -0.308471262455 -0.165892928839 +vn 0.936656296253 -0.308471262455 -0.165892928839 +vn 0.973190963268 0.069042496383 -0.219391137362 +vn 0.994772076607 0.097234629095 -0.031207935885 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.757012963295 -0.643040478230 -0.115889355540 +vn 0.757012963295 -0.643040478230 -0.115889355540 +vn 0.936656296253 -0.308471262455 -0.165892928839 +vn 0.957554459572 -0.287310987711 0.023277990520 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.461620241404 -0.883733093739 -0.076957985759 +vn 0.461620241404 -0.883733093739 -0.076957985759 +vn 0.757012963295 -0.643040478230 -0.115889355540 +vn 0.774556040764 -0.628134548664 0.074228972197 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn 0.095433920622 -0.993913292885 -0.055033963174 +vn 0.095433920622 -0.993913292885 -0.055033963174 +vn 0.461620241404 -0.883733093739 -0.076957985759 +vn 0.473634302616 -0.873328685760 0.113875091076 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.285777777433 -0.956801950932 -0.053489483893 +vn -0.285777777433 -0.956801950932 -0.053489483893 +vn 0.095433920622 -0.993913292885 -0.055033963174 +vn 0.100609168410 -0.985559642315 0.136198222637 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.624005198479 -0.778046429157 -0.072535090148 +vn -0.624005198479 -0.778046429157 -0.072535090148 +vn -0.285777777433 -0.956801950932 -0.053489483893 +vn -0.287719607353 -0.947753310204 0.137771964073 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.867740154266 -0.484856963158 -0.109273917973 +vn -0.867740154266 -0.484856963158 -0.109273917973 +vn -0.624005198479 -0.778046429157 -0.072535090148 +vn -0.632260084152 -0.765659391880 0.118376106024 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.979872226715 -0.121874794364 -0.158104330301 +vn -0.979872226715 -0.121874794364 -0.158104330301 +vn -0.867740154266 -0.484856963158 -0.109273917973 +vn -0.880548179150 -0.466990053654 0.080964274704 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.943332910538 0.255631208420 -0.211602717638 +vn -0.943332910538 0.255631208420 -0.211602717638 +vn -0.979872226715 -0.121874794364 -0.158104330301 +vn -0.994770646095 -0.097247369587 0.031213214621 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.763698756695 0.590180635452 -0.261631429195 +vn -0.763698756695 0.590180635452 -0.261631429195 +vn -0.943332910538 0.255631208420 -0.211602717638 +vn -0.957554757595 0.287309199572 -0.023287288845 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.468307971954 0.830874264240 -0.300558716059 +vn -0.468307971954 0.830874264240 -0.300558716059 +vn -0.763698756695 0.590180635452 -0.261631429195 +vn -0.774568021297 0.628118455410 -0.074239954352 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.100611813366 0.985561251640 -0.136184900999 +vn -0.102105967700 0.941065251827 -0.322444617748 +vn -0.102105967700 0.941065251827 -0.322444617748 +vn -0.468307971954 0.830874264240 -0.300558716059 +vn -0.473643004894 0.873323142529 -0.113881506026 +vn -0.241403773427 0.103066213429 0.964936017990 +vn 0.004517787136 0.137057393789 0.990552783012 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.241403773427 0.103066213429 0.964936017990 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.067393772304 0.322359681129 0.944215178490 +vn -0.002960407641 0.317960262299 0.948099434376 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.017514187843 0.138613402843 0.990191698074 +vn -0.002960407641 0.317960262299 0.948099434376 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.074658878148 0.311024487019 0.947464942932 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.016861176118 0.138552471995 0.990211546421 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.163651511073 0.288096219301 0.943514049053 +vn 0.004517787136 0.137057393789 0.990552783012 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.030540788546 0.139876529574 0.989697813988 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.018172575161 0.138676419854 0.990171015263 +vn 0.017514187843 0.138613402843 0.990191698074 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.017514187843 0.138613402843 0.990191698074 +vn 0.016861176118 0.138552471995 0.990211546421 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.016861176118 0.138552471995 0.990211546421 +vn 0.004517787136 0.137057393789 0.990552783012 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn 0.004517787136 0.137057393789 0.990552783012 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn 0.004517787136 0.137057393789 0.990552783012 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.155109524727 0.599816203117 0.784959554672 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.002960407641 0.317960262299 0.948099434376 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.155109524727 0.599816203117 0.784959554672 +vn 0.067393772304 0.322359681129 0.944215178490 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.343748748302 0.530425429344 0.774910092354 +vn 0.155877947807 0.317323088646 0.935418665409 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.509252369404 0.375231623650 0.774508416653 +vn 0.286905646324 0.267333179712 0.919901132584 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.565602898598 0.172177463770 0.806503772736 +vn 0.285920530558 0.164982482791 0.943943977356 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.546779811382 -0.051727127284 0.835677087307 +vn 0.305570989847 0.031798329204 0.951638162136 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.415045827627 -0.218302249908 0.883221983910 +vn 0.203566029668 -0.022038534284 0.978813171387 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.249044612050 -0.319868445396 0.914144933224 +vn 0.111007757485 -0.041198842227 0.992965221405 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.065878793597 -0.367101311684 0.927845120430 +vn 0.038118865341 -0.045521553606 0.998235821724 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.124714381993 -0.358643174171 0.925106167793 +vn -0.031741838902 -0.048425141722 0.998322308064 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.311798155308 -0.291660279036 0.904276609421 +vn -0.117219403386 -0.043315853924 0.992160975933 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.473762780428 -0.141139611602 0.869268894196 +vn -0.243293151259 0.002079511527 0.969950556755 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.528437733650 0.060071583837 0.846844136715 +vn -0.241403773427 0.103066213429 0.964936017990 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.510871827602 0.279885828495 0.812818467617 +vn -0.262741386890 0.230674043298 0.936886548996 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.382493257523 0.451562076807 0.806095898151 +vn -0.163651511073 0.288096219301 0.943514049053 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.002960407641 0.317960262299 0.948099434376 +vn -0.035729635507 0.607942640781 0.793176591396 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.218273103237 0.558162093163 0.800507307053 +vn -0.074658878148 0.311024487019 0.947464942932 +vn -0.002960407641 0.317960262299 0.948099434376 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.397452175617 0.135070383549 -0.907627522945 +vn -0.517724156380 0.205077111721 -0.830605268478 +vn -0.517724156380 0.205077111721 -0.830605268478 +vn -0.437227338552 0.155448332429 -0.885814905167 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.229980155826 0.074654586613 -0.970327675343 +vn -0.397452175617 0.135070383549 -0.907627522945 +vn -0.397452175617 0.135070383549 -0.907627522945 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.590301692486 0.097231328487 -0.801305174828 +vn 0.826513767242 0.040492236614 -0.561458230019 +vn 0.826513767242 0.040492236614 -0.561458230019 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.191130816936 0.078426040709 -0.978426456451 +vn 0.372208535671 0.083363167942 -0.924397826195 +vn 0.372208535671 0.083363167942 -0.924397826195 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.206340491772 0.165451377630 -0.964390695095 +vn 0.006594384555 0.126419976354 -0.991954863071 +vn 0.006594384555 0.126419976354 -0.991954863071 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.437227338552 0.155448332429 -0.885814905167 +vn -0.437227338552 0.155448332429 -0.885814905167 +vn -0.206340491772 0.165451377630 -0.964390695095 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.382902115583 0.072942674160 -0.920904636383 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn 0.006594384555 0.126419976354 -0.991954863071 +vn 0.191130816936 0.078426040709 -0.978426456451 +vn 0.191130816936 0.078426040709 -0.978426456451 +vn 0.185881495476 0.003713119309 -0.982565164566 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn 0.053378995508 0.007072980981 -0.998549282551 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn -0.171981990337 0.040181573480 -0.984280288219 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.372208535671 0.083363167942 -0.924397826195 +vn 0.590301692486 0.097231328487 -0.801305174828 +vn 0.590301692486 0.097231328487 -0.801305174828 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.353503555059 0.035152658820 -0.934772431850 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.615159690380 0.029194956645 -0.787861764431 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.826513767242 0.040492236614 -0.561458230019 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.261003404856 0.108527362347 -0.959217905998 +vn -0.229980155826 0.074654586613 -0.970327675343 +vn -0.229980155826 0.074654586613 -0.970327675343 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.509320318699 -0.404863327742 -0.759393453598 +vn -0.261003404856 0.108527362347 -0.959217905998 +vn -0.261003404856 0.108527362347 -0.959217905998 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.800375282764 0.018794151023 -0.599204599857 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.271599829197 0.028476212174 -0.961988866329 +vn -0.164049550891 -0.028682840988 -0.986034989357 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.255096316338 0.111758060753 -0.960435330868 +vn -0.121076330543 0.077568016946 -0.989607870579 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.041888136417 -0.060322493315 -0.997299671173 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.087437242270 0.002138112905 -0.996167719364 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.288816571236 -0.039053402841 -0.956587612629 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.204631596804 0.028210701421 -0.978432476521 +vn 0.136239171028 -0.017071370035 -0.990528881550 +vn 0.137395173311 -0.069602020085 -0.988067865372 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.597115218639 0.003556745360 -0.802147567272 +vn 0.773272275925 0.060861453414 -0.631146490574 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.491304695606 0.135842129588 -0.860329389572 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.715357065201 0.252833127975 -0.651413619518 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.439777612686 -0.138827741146 0.887311935425 +vn 0.505375087261 -0.195974618196 0.840351104736 +vn 0.505375087261 -0.195974618196 0.840351104736 +vn 0.383719682693 -0.125125527382 0.914933204651 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.383719682693 -0.125125527382 0.914933204651 +vn 0.383719682693 -0.125125527382 0.914933204651 +vn 0.248948097229 -0.072537310421 0.965796649456 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.819650113583 -0.032982375473 0.571914196014 +vn -0.819650113583 -0.032982375473 0.571914196014 +vn -0.592707335949 -0.091434136033 0.800211071968 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.371242731810 -0.081995286047 0.924908459187 +vn -0.371242731810 -0.081995286047 0.924908459187 +vn -0.186582252383 -0.074930444360 0.979577720165 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn -0.004214687273 -0.117233298719 0.993095457554 +vn -0.004214687273 -0.117233298719 0.993095457554 +vn 0.209405109286 -0.154618844390 0.965527057648 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.209405109286 -0.154618844390 0.965527057648 +vn 0.439777612686 -0.138827741146 0.887311935425 +vn 0.439777612686 -0.138827741146 0.887311935425 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.179345592856 0.032156031579 0.983260452747 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.381064385176 -0.062698408961 0.922420084476 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.179345592856 0.032156031579 0.983260452747 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn -0.179953932762 -0.003242430044 0.983669698238 +vn -0.186582252383 -0.074930444360 0.979577720165 +vn -0.186582252383 -0.074930444360 0.979577720165 +vn -0.004214687273 -0.117233298719 0.993095457554 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn 0.179345592856 0.032156031579 0.983260452747 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.046806681901 -0.005556719378 0.998888492584 +vn 0.180568888783 -0.032149348408 0.983036756516 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.592707335949 -0.091434136033 0.800211071968 +vn -0.592707335949 -0.091434136033 0.800211071968 +vn -0.371242731810 -0.081995286047 0.924908459187 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.357168287039 -0.031741797924 0.933500528336 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.620553731918 -0.019484132528 0.783921837807 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.819650113583 -0.032982375473 0.571914196014 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.248948097229 -0.072537310421 0.965796649456 +vn 0.248948097229 -0.072537310421 0.965796649456 +vn 0.266313046217 -0.114633738995 0.957045674324 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.266313046217 -0.114633738995 0.957045674324 +vn 0.266313046217 -0.114633738995 0.957045674324 +vn -0.002355504315 -0.820036292076 0.572306632996 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.796980798244 -0.012833101675 0.603868305683 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.030801737681 0.058983106166 0.997783660889 +vn 0.179345592856 0.032156031579 0.983260452747 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.179345592856 0.032156031579 0.983260452747 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.280457735062 -0.025431802496 0.959529399872 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.127938747406 -0.089620761573 0.987724542618 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.257878810167 -0.124472789466 0.958125770092 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.030801737681 0.058983106166 0.997783660889 +vn -0.074074417353 -0.006822756957 0.997229397297 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.141732782125 0.018439134583 0.989733219147 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.201434418559 -0.024834183976 0.979187130928 +vn -0.296823740005 0.040104743093 0.954089760780 +vn -0.135255068541 0.071016401052 0.988262474537 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.608369290829 -0.007743894123 0.793616294861 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.786969006062 -0.049346722662 0.615015983582 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.498839020729 -0.132146120071 0.856561183929 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.746446251869 -0.239098697901 0.621007084846 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.909739613533 0.046079874039 0.412614196539 +vn -0.909739613533 0.046079874039 0.412614196539 +vn -0.956761240959 0.176445245743 0.231246590614 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.956761240959 0.176445245743 0.231246590614 +vn -0.972946465015 0.230288386345 0.018504710868 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.500203728676 0.010609781370 0.865842759609 +vn -0.500203728676 0.010609781370 0.865842759609 +vn -0.909739613533 0.046079874039 0.412614196539 +vn -0.990912795067 0.127940833569 0.041508488357 +vn 0.078747101128 0.966759562492 0.243258908391 +vn 0.173439845443 0.973078310490 0.151780202985 +vn 0.170091286302 0.973490953445 0.152919292450 +vn 0.170091286302 0.973490953445 0.152919292450 +vn 0.063926614821 0.963856279850 0.258639603853 +vn 0.078747101128 0.966759562492 0.243258908391 +vn 0.171049833298 0.970419943333 0.170373469591 +vn 0.083577327430 0.994467854500 0.063627921045 +vn 0.080522112548 0.994727730751 0.063505046070 +vn 0.080522112548 0.994727730751 0.063505046070 +vn 0.173171848059 0.969543695450 0.173195227981 +vn 0.171049833298 0.970419943333 0.170373469591 +vn -0.020135141909 0.994862496853 0.099212974310 +vn -0.086038894951 0.984414279461 0.153381422162 +vn -0.091391056776 0.983691334724 0.154916256666 +vn -0.091391056776 0.983691334724 0.154916256666 +vn -0.023173412308 0.995078146458 0.096345901489 +vn -0.020135141909 0.994862496853 0.099212974310 +vn -0.086038894951 0.984414279461 0.153381422162 +vn -0.191570550203 0.977551102638 0.087718985975 +vn -0.194942057133 0.976504385471 0.091851882637 +vn -0.194942057133 0.976504385471 0.091851882637 +vn -0.091391056776 0.983691334724 0.154916256666 +vn -0.086038894951 0.984414279461 0.153381422162 +vn 0.083577327430 0.994467854500 0.063627921045 +vn -0.020135141909 0.994862496853 0.099212974310 +vn -0.023173412308 0.995078146458 0.096345901489 +vn -0.023173412308 0.995078146458 0.096345901489 +vn 0.080522112548 0.994727730751 0.063505046070 +vn 0.083577327430 0.994467854500 0.063627921045 +vn 0.173439845443 0.973078310490 0.151780202985 +vn 0.171049833298 0.970419943333 0.170373469591 +vn 0.173171848059 0.969543695450 0.173195227981 +vn 0.173171848059 0.969543695450 0.173195227981 +vn 0.170091286302 0.973490953445 0.152919292450 +vn 0.173439845443 0.973078310490 0.151780202985 +vn 0.063926614821 0.963856279850 0.258639603853 +vn -0.375237524509 0.793154478073 0.479690253735 +vn -0.350450277328 0.809412717819 0.471206605434 +vn -0.350450277328 0.809412717819 0.471206605434 +vn 0.078747101128 0.966759562492 0.243258908391 +vn 0.063926614821 0.963856279850 0.258639603853 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.577268898487 0.306803852320 0.756724536419 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.268814533949 0.206545710564 0.940785646439 +vn -0.185570269823 0.171825677156 0.967491388321 +vn 0.789331555367 0.258876562119 0.556721329689 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.866238534451 -0.039508130401 0.498066157103 +vn -0.866238534451 -0.039508130401 0.498066157103 +vn -0.500203728676 0.010609781370 0.865842759609 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.885119140148 -0.056781947613 0.461887329817 +vn -0.669060587883 -0.077813722193 0.739123106003 +vn -0.669060587883 -0.077813722193 0.739123106003 +vn -0.866238534451 -0.039508130401 0.498066157103 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn -0.002355504315 -0.820036292076 0.572306632996 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.789331555367 0.258876562119 0.556721329689 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.185570269823 0.171825677156 0.967491388321 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.487122595310 0.042172510177 0.872314751148 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.613033175468 -0.080646120012 0.785930335522 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.322813808918 -0.785219132900 0.528414785862 +vn 0.219091191888 -0.684044837952 0.695759832859 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.054789707065 -0.708841145039 0.703236997128 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.253998637199 -0.812512278557 0.524698436260 +vn -0.249018087983 -0.770230114460 0.587141871452 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn -0.359748840332 -0.730751514435 0.580157697201 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn -0.369146257639 -0.922445654869 0.113248042762 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn -0.431353598833 -0.487713992596 0.758992195129 +vn 0.129810020328 -0.933628261089 0.333897590637 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn -0.937579154968 0.180314436555 -0.297375231981 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.980981588364 0.145293399692 0.128704696894 +vn -0.972946465015 0.230288386345 0.018504710868 +vn -0.937579154968 0.180314436555 -0.297375231981 +vn -0.896948277950 0.114084340632 -0.427163422108 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.990912795067 0.127940833569 0.041508488357 +vn -0.937579154968 0.180314436555 -0.297375231981 +vn -0.896948277950 0.114084340632 -0.427163422108 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn 0.577268898487 0.306803852320 0.756724536419 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn -0.880329668522 0.056018378586 -0.471043139696 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.951725065708 0.081832073629 0.295842707157 +vn -0.896948277950 0.114084340632 -0.427163422108 +vn -0.880329668522 0.056018378586 -0.471043139696 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn -0.431490808725 -0.866988837719 -0.249291151762 +vn -0.509320318699 -0.404863327742 -0.759393453598 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn -0.995611131191 -0.009796535596 -0.093072362244 +vn -0.885119140148 -0.056781947613 0.461887329817 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.999801933765 0.008688983507 0.017906675115 +vn -0.880329668522 0.056018378586 -0.471043139696 +vn -0.995611131191 -0.009796535596 -0.093072362244 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.789331555367 0.258876562119 0.556721329689 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.970258474350 0.158947870135 -0.182576209307 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.487122595310 0.042172510177 0.872314751148 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.967192232609 0.137083888054 -0.213885977864 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.228643909097 -0.830196857452 -0.508424222469 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn -0.088624604046 -0.961325287819 -0.260766953230 +vn -0.316408157349 -0.306027173996 -0.897904932499 +vn 0.011043122970 -0.237970724702 -0.971209526062 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn 0.112375475466 -0.893029689789 -0.435740411282 +vn 0.126697152853 -0.260049194098 -0.957247197628 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn -0.238835632801 -0.915335536003 -0.324219733477 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn -0.146188363433 -0.808538675308 -0.569994866848 +vn 0.031643856317 -0.253338366747 -0.966860055923 +vn -0.078926093876 -0.439550966024 -0.894743323326 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn -0.253018796444 -0.949872851372 -0.183638378978 +vn 0.119680173695 -0.356093317270 -0.926754653454 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.622324407101 -0.358227372169 0.695978045464 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn 0.969258189201 0.132872030139 -0.207083404064 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn 0.735630095005 -0.650957882404 -0.187355905771 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.068400837481 -0.871033847332 -0.486437410116 +vn 0.490402966738 -0.257621675730 -0.832547903061 +vn 0.852056205273 0.085932567716 -0.516348540783 +vn -0.268814533949 0.206545710564 0.940785646439 +vn 0.577268898487 0.306803852320 0.756724536419 +vn 0.984173178673 0.160306110978 -0.075532399118 +vn -0.194942057133 0.976504385471 0.091851882637 +vn -0.191570550203 0.977551102638 0.087718985975 +vn -0.181678786874 0.971370339394 0.153076708317 +vn -0.181678786874 0.971370339394 0.153076708317 +vn -0.180396959186 0.971246838570 0.155359238386 +vn -0.194942057133 0.976504385471 0.091851882637 +# 32013 vertex normals + +vt 0.377155363560 0.858360707760 0.000000000000 +vt 0.377155363560 0.848666846752 0.000000000000 +vt 0.387879788876 0.848666846752 0.000000000000 +vt 0.387879788876 0.858360707760 0.000000000000 +vt 0.377155363560 0.838978648186 0.000000000000 +vt 0.387879788876 0.838978648186 0.000000000000 +vt 0.377155363560 0.829283058643 0.000000000000 +vt 0.387879788876 0.829283058643 0.000000000000 +vt 0.377155363560 0.984480679035 0.000000000000 +vt 0.377155363560 0.974780797958 0.000000000000 +vt 0.387879788876 0.974780797958 0.000000000000 +vt 0.387879788876 0.984480679035 0.000000000000 +vt 0.377155363560 0.965079963207 0.000000000000 +vt 0.387879788876 0.965079963207 0.000000000000 +vt 0.377155363560 0.955380022526 0.000000000000 +vt 0.387879788876 0.955380022526 0.000000000000 +vt 0.377155363560 0.945681273937 0.000000000000 +vt 0.387879788876 0.945681273937 0.000000000000 +vt 0.377155363560 0.935981333256 0.000000000000 +vt 0.387879788876 0.935981333256 0.000000000000 +vt 0.377155363560 0.926279187202 0.000000000000 +vt 0.387879788876 0.926279187202 0.000000000000 +vt 0.377155363560 0.916576147079 0.000000000000 +vt 0.387879788876 0.916576147079 0.000000000000 +vt 0.377155363560 0.906873524189 0.000000000000 +vt 0.387879788876 0.906873524189 0.000000000000 +vt 0.377155363560 0.897172033787 0.000000000000 +vt 0.387879788876 0.897172033787 0.000000000000 +vt 0.377155363560 0.887470304966 0.000000000000 +vt 0.387879788876 0.887470304966 0.000000000000 +vt 0.377155363560 0.877766370773 0.000000000000 +vt 0.387879788876 0.877766370773 0.000000000000 +vt 0.377155363560 0.868061482906 0.000000000000 +vt 0.387879788876 0.868061482906 0.000000000000 +vt 0.389967858791 0.848666846752 0.000000000000 +vt 0.389967858791 0.858360707760 0.000000000000 +vt 0.389223754406 0.858360707760 0.000000000000 +vt 0.389223754406 0.848666846752 0.000000000000 +vt 0.389967858791 0.838978648186 0.000000000000 +vt 0.389223754406 0.838978648186 0.000000000000 +vt 0.389967858791 0.829283058643 0.000000000000 +vt 0.389223754406 0.829283058643 0.000000000000 +vt 0.389967858791 0.974780797958 0.000000000000 +vt 0.389967858791 0.984480679035 0.000000000000 +vt 0.389223754406 0.984480679035 0.000000000000 +vt 0.389223754406 0.974780797958 0.000000000000 +vt 0.389967858791 0.965079963207 0.000000000000 +vt 0.389223754406 0.965079963207 0.000000000000 +vt 0.389967858791 0.955380022526 0.000000000000 +vt 0.389223754406 0.955380022526 0.000000000000 +vt 0.389967858791 0.945681273937 0.000000000000 +vt 0.389223754406 0.945681273937 0.000000000000 +vt 0.389967858791 0.935981333256 0.000000000000 +vt 0.389223754406 0.935981333256 0.000000000000 +vt 0.389967858791 0.926279187202 0.000000000000 +vt 0.389223754406 0.926279187202 0.000000000000 +vt 0.389967858791 0.916576147079 0.000000000000 +vt 0.389223754406 0.916576147079 0.000000000000 +vt 0.389967858791 0.906873524189 0.000000000000 +vt 0.389223754406 0.906873524189 0.000000000000 +vt 0.389967858791 0.897172033787 0.000000000000 +vt 0.389223754406 0.897172033787 0.000000000000 +vt 0.389967858791 0.887470304966 0.000000000000 +vt 0.389223754406 0.887470304966 0.000000000000 +vt 0.389967858791 0.877766370773 0.000000000000 +vt 0.389223754406 0.877766370773 0.000000000000 +vt 0.389967858791 0.868061482906 0.000000000000 +vt 0.389223754406 0.868061482906 0.000000000000 +vt 0.391293346882 0.858360707760 0.000000000000 +vt 0.391293346882 0.848666846752 0.000000000000 +vt 0.396203100681 0.848666846752 0.000000000000 +vt 0.396203100681 0.858360707760 0.000000000000 +vt 0.391293346882 0.838978648186 0.000000000000 +vt 0.396203100681 0.838978648186 0.000000000000 +vt 0.391293346882 0.829283058643 0.000000000000 +vt 0.396203100681 0.829283058643 0.000000000000 +vt 0.391293346882 0.984480679035 0.000000000000 +vt 0.391293346882 0.974780797958 0.000000000000 +vt 0.396203100681 0.974780797958 0.000000000000 +vt 0.396203100681 0.984480679035 0.000000000000 +vt 0.391293346882 0.965079963207 0.000000000000 +vt 0.396203100681 0.965079963207 0.000000000000 +vt 0.391293346882 0.955380022526 0.000000000000 +vt 0.396203100681 0.955380022526 0.000000000000 +vt 0.391293346882 0.945681273937 0.000000000000 +vt 0.396203100681 0.945681273937 0.000000000000 +vt 0.391293346882 0.935981333256 0.000000000000 +vt 0.396203100681 0.935981333256 0.000000000000 +vt 0.391293346882 0.926279187202 0.000000000000 +vt 0.396203100681 0.926279187202 0.000000000000 +vt 0.391293346882 0.916576147079 0.000000000000 +vt 0.396203100681 0.916576147079 0.000000000000 +vt 0.391293346882 0.906873524189 0.000000000000 +vt 0.396203100681 0.906873524189 0.000000000000 +vt 0.391293346882 0.897172033787 0.000000000000 +vt 0.396203100681 0.897172033787 0.000000000000 +vt 0.391293346882 0.887470304966 0.000000000000 +vt 0.396203100681 0.887470304966 0.000000000000 +vt 0.391293346882 0.877766370773 0.000000000000 +vt 0.396203100681 0.877766370773 0.000000000000 +vt 0.391293346882 0.868061482906 0.000000000000 +vt 0.396203100681 0.868061482906 0.000000000000 +vt 0.409175425768 0.672242879868 0.000000000000 +vt 0.452760726213 0.666515350342 0.000000000000 +vt 0.431881427765 0.692003369331 0.000000000000 +vt 0.481934756041 0.680083930492 0.000000000000 +vt 0.508225858212 0.789766192436 0.000000000000 +vt 0.553140699863 0.792127192020 0.000000000000 +vt 0.543430626392 0.810674130917 0.000000000000 +vt 0.493056267500 0.761313557625 0.000000000000 +vt 0.498380273581 0.738467097282 0.000000000000 +vt 0.515042841434 0.755405724049 0.000000000000 +vt 0.550852000713 0.845992863178 0.000000000000 +vt 0.577347338200 0.824143350124 0.000000000000 +vt 0.609382450581 0.854941427708 0.000000000000 +vt 0.665927231312 0.810042083263 0.000000000000 +vt 0.669713199139 0.747112154961 0.000000000000 +vt 0.691940128803 0.688431560993 0.000000000000 +vt 0.480293363333 0.580234348774 0.000000000000 +vt 0.515759050846 0.550068080425 0.000000000000 +vt 0.567890584469 0.594532608986 0.000000000000 +vt 0.623778641224 0.602010011673 0.000000000000 +vt 0.572804629803 0.544676065445 0.000000000000 +vt 0.631756961346 0.573595166206 0.000000000000 +vt 0.610680639744 0.688212931156 0.000000000000 +vt 0.650606334209 0.643516659737 0.000000000000 +vt 0.631374895573 0.713805377483 0.000000000000 +vt 0.451538383961 0.699487090111 0.000000000000 +vt 0.488095849752 0.712747395039 0.000000000000 +vt 0.505906522274 0.654317796230 0.000000000000 +vt 0.514503896236 0.621594429016 0.000000000000 +vt 0.546522319317 0.636798501015 0.000000000000 +vt 0.620644509792 0.650109648705 0.000000000000 +vt 0.536644995213 0.674807369709 0.000000000000 +vt 0.559180438519 0.677152156830 0.000000000000 +vt 0.546803295612 0.700395822525 0.000000000000 +vt 0.580495297909 0.670894205570 0.000000000000 +vt 0.560229241848 0.708388805389 0.000000000000 +vt 0.583466589451 0.746397972107 0.000000000000 +vt 0.590534269810 0.714147150517 0.000000000000 +vt 0.632254183292 0.742581784725 0.000000000000 +vt 0.392473429441 0.735891520977 0.000000000000 +vt 0.401782691479 0.699883401394 0.000000000000 +vt 0.437636852264 0.750069797039 0.000000000000 +vt 0.443033576012 0.728961050510 0.000000000000 +vt 0.467387497425 0.731456875801 0.000000000000 +vt 0.397550672293 0.599925756454 0.000000000000 +vt 0.443568110466 0.613210141659 0.000000000000 +vt 0.366362631321 0.656876027584 0.000000000000 +vt 0.447481751442 0.559440612793 0.000000000000 +vt 0.601355612278 0.819214940071 0.000000000000 +vt 0.636718928814 0.797729492188 0.000000000000 +vt 0.619128763676 0.819936096668 0.000000000000 +vt 0.559825360775 0.776961624622 0.000000000000 +vt 0.572190821171 0.759399116039 0.000000000000 +vt 0.604671776295 0.773796379566 0.000000000000 +vt 0.554654181004 0.617363810539 0.000000000000 +vt 0.567634403706 0.651618182659 0.000000000000 +vt 0.590938866138 0.618936240673 0.000000000000 +vt 0.596868813038 0.647921144962 0.000000000000 +vt 0.651719510555 0.782778739929 0.000000000000 +vt 0.614525854588 0.755118906498 0.000000000000 +vt 0.455462366343 0.816022455692 0.000000000000 +vt 0.450997769833 0.780333817005 0.000000000000 +vt 0.483516186476 0.802494883537 0.000000000000 +vt 0.485845893621 0.853235423565 0.000000000000 +vt 0.417244762182 0.840927124023 0.000000000000 +vt 0.433641225100 0.829533994198 0.000000000000 +vt 0.477579563856 0.870459556580 0.000000000000 +vt 0.530758202076 0.857129693031 0.000000000000 +vt 0.544338524342 0.876446247101 0.000000000000 +vt 0.532405674458 0.712911307812 0.000000000000 +vt 0.526134669781 0.742851078510 0.000000000000 +vt 0.547361195087 0.739448964596 0.000000000000 +vt 0.567548215389 0.558903396130 0.000000000000 +vt 0.397433131933 0.817093312740 0.000000000000 +vt 0.514106690884 0.777620911598 0.000000000000 +vt 0.462766647339 0.752251565456 0.000000000000 +vt 0.460485816002 0.643762111664 0.000000000000 +vt 0.485318392515 0.636485338211 0.000000000000 +vt 0.480034440756 0.664412677288 0.000000000000 +vt 0.630446612835 0.777688920498 0.000000000000 +vt 0.600008070469 0.799526214600 0.000000000000 +vt 0.476415723562 0.779506325722 0.000000000000 +vt 0.473682790995 0.610604822636 0.000000000000 +vt 0.675627768040 0.625576317310 0.000000000000 +vt 0.565741121769 0.800483822823 0.000000000000 +vt 0.356244146824 0.722902357578 0.000000000000 +vt 0.588402211666 0.811188578606 0.000000000000 +vt 0.518669903278 0.699171006680 0.000000000000 +vt 0.535777628422 0.658217966557 0.000000000000 +vt 0.508222043514 0.539263308048 0.000000000000 +vt 0.648145139217 0.728081822395 0.000000000000 +vt 0.514887988567 0.819228231907 0.000000000000 +vt 0.480209141970 0.748140454292 0.000000000000 +vt 0.594826638699 0.678737699986 0.000000000000 +vt 0.609615743160 0.711115896702 0.000000000000 +vt 0.374209046364 0.788166940212 0.000000000000 +vt 0.696136057377 0.841438889503 0.000000000000 +vt 0.697102844715 0.847001552582 0.000000000000 +vt 0.687970817089 0.838945984840 0.000000000000 +vt 0.676894485950 0.837039768696 0.000000000000 +vt 0.668740808964 0.834839344025 0.000000000000 +vt 0.658680617809 0.855564236641 0.000000000000 +vt 0.651980459690 0.853254318237 0.000000000000 +vt 0.694596707821 0.852629542351 0.000000000000 +vt 0.685916483402 0.854809284210 0.000000000000 +vt 0.674534022808 0.855843186378 0.000000000000 +vt 0.665389955044 0.856125533581 0.000000000000 +vt 0.650012195110 0.834412455559 0.000000000000 +vt 0.656730353832 0.833129286766 0.000000000000 +vt 0.646296203136 0.841373562813 0.000000000000 +vt 0.688886702061 0.834426641464 0.000000000000 +vt 0.699207842350 0.838674664497 0.000000000000 +vt 0.697359144688 0.855724990368 0.000000000000 +vt 0.686487972736 0.859591126442 0.000000000000 +vt 0.702463567257 0.847452104092 0.000000000000 +vt 0.677858173847 0.832566380501 0.000000000000 +vt 0.674788177013 0.860633373260 0.000000000000 +vt 0.656709134579 0.828647792339 0.000000000000 +vt 0.663522779942 0.828503489494 0.000000000000 +vt 0.663026511669 0.833329021931 0.000000000000 +vt 0.665229976177 0.860744595528 0.000000000000 +vt 0.646054327488 0.849184870720 0.000000000000 +vt 0.944440543652 0.577088952065 0.000000000000 +vt 0.934413731098 0.578397750854 0.000000000000 +vt 0.933311760426 0.570732593536 0.000000000000 +vt 0.942559897900 0.569070458412 0.000000000000 +vt 0.878645479679 0.586926877499 0.000000000000 +vt 0.868258655071 0.588900566101 0.000000000000 +vt 0.867458641529 0.580585360527 0.000000000000 +vt 0.877176105976 0.579317748547 0.000000000000 +vt 0.952389657497 0.575497746468 0.000000000000 +vt 0.950832903385 0.567034423351 0.000000000000 +vt 0.923831403255 0.579496085644 0.000000000000 +vt 0.923619329929 0.572405040264 0.000000000000 +vt 0.628452599049 0.873331427574 0.000000000000 +vt 0.632204830647 0.876753568649 0.000000000000 +vt 0.628753483295 0.881655633450 0.000000000000 +vt 0.623970210552 0.878167748451 0.000000000000 +vt 0.646685302258 0.866765677929 0.000000000000 +vt 0.656351864338 0.871634185314 0.000000000000 +vt 0.653122007847 0.874798536301 0.000000000000 +vt 0.645847260952 0.871063649654 0.000000000000 +vt 0.726799309254 0.837845385075 0.000000000000 +vt 0.661485850811 0.880055904388 0.000000000000 +vt 0.656600654125 0.882020831108 0.000000000000 +vt 0.636110603809 0.868256449699 0.000000000000 +vt 0.637845695019 0.872147083282 0.000000000000 +vt 0.649987399578 0.877419590950 0.000000000000 +vt 0.644934833050 0.875803411007 0.000000000000 +vt 0.639724314213 0.875453293324 0.000000000000 +vt 0.650543510914 0.882872819901 0.000000000000 +vt 0.637335002422 0.879814982414 0.000000000000 +vt 0.635132730007 0.885670363903 0.000000000000 +vt 0.643860280514 0.881775856018 0.000000000000 +vt 0.642733037472 0.850792288780 0.000000000000 +vt 0.641889035702 0.840179145336 0.000000000000 +vt 0.669664084911 0.830182671547 0.000000000000 +vt 0.650239527225 0.857445180416 0.000000000000 +vt 0.648015201092 0.831698417664 0.000000000000 +vt 0.642690360546 0.888261675835 0.000000000000 +vt 0.663629949093 0.887337207794 0.000000000000 +vt 0.657781779766 0.889087080956 0.000000000000 +vt 0.889635980129 0.584733188152 0.000000000000 +vt 0.887632310390 0.577965676785 0.000000000000 +vt 0.898609101772 0.583011865616 0.000000000000 +vt 0.896672070026 0.576863348484 0.000000000000 +vt 0.915674507618 0.580389678478 0.000000000000 +vt 0.915229618549 0.574002265930 0.000000000000 +vt 0.657724201679 0.860278069973 0.000000000000 +vt 0.930922925472 0.558675527573 0.000000000000 +vt 0.650379359722 0.889898777008 0.000000000000 +vt 0.939678132534 0.556469440460 0.000000000000 +vt 0.867106497288 0.567602217197 0.000000000000 +vt 0.875806748867 0.567502915859 0.000000000000 +vt 0.947033226490 0.554314255714 0.000000000000 +vt 0.922403037548 0.561220228672 0.000000000000 +vt 0.885274112225 0.567466676235 0.000000000000 +vt 0.658997356892 0.896231293678 0.000000000000 +vt 0.649604141712 0.899704515934 0.000000000000 +vt 0.895252883434 0.566620349884 0.000000000000 +vt 0.719376146793 0.837280273438 0.000000000000 +vt 0.918815433979 0.545299708843 0.000000000000 +vt 0.910051763058 0.547324061394 0.000000000000 +vt 0.907046377659 0.529140114784 0.000000000000 +vt 0.916585505009 0.527373969555 0.000000000000 +vt 0.899707138538 0.530310690403 0.000000000000 +vt 0.641025960445 0.896537065506 0.000000000000 +vt 0.901793301105 0.548481404781 0.000000000000 +vt 0.927321612835 0.542573332787 0.000000000000 +vt 0.632426559925 0.894321084023 0.000000000000 +vt 0.625132262707 0.886998593807 0.000000000000 +vt 0.717746436596 0.831090271473 0.000000000000 +vt 0.725946605206 0.830549895763 0.000000000000 +vt 0.735287845135 0.838093996048 0.000000000000 +vt 0.734414517879 0.830852091312 0.000000000000 +vt 0.717679798603 0.825329720974 0.000000000000 +vt 0.723944962025 0.823542177677 0.000000000000 +vt 0.732950508595 0.823792576790 0.000000000000 +vt 0.739792287350 0.825830638409 0.000000000000 +vt 0.741621911526 0.831147015095 0.000000000000 +vt 0.741378247738 0.836689889431 0.000000000000 +vt 0.665112435818 0.894209623337 0.000000000000 +vt 0.620138943195 0.882827579975 0.000000000000 +vt 0.936108648777 0.539952039719 0.000000000000 +vt 0.867212593555 0.550016939640 0.000000000000 +vt 0.875978291035 0.550476253033 0.000000000000 +vt 0.943726122379 0.537669897079 0.000000000000 +vt 0.884841740131 0.551008760929 0.000000000000 +vt 0.913087069988 0.563861310482 0.000000000000 +vt 0.893644869328 0.550148010254 0.000000000000 +vt 0.892628490925 0.531013190746 0.000000000000 +vt 0.904061496258 0.562744498253 0.000000000000 +vt 0.926213800907 0.525771796703 0.000000000000 +vt 0.934501111507 0.523906171322 0.000000000000 +vt 0.865935027599 0.533409059048 0.000000000000 +vt 0.875216186047 0.532836914063 0.000000000000 +vt 0.942422688007 0.521042168140 0.000000000000 +vt 0.884195983410 0.531999826431 0.000000000000 +vt 0.924653232098 0.517368316650 0.000000000000 +vt 0.932635247707 0.517127633095 0.000000000000 +vt 0.914257109165 0.519580006599 0.000000000000 +vt 0.906176626682 0.522352159023 0.000000000000 +vt 0.899168789387 0.522687613964 0.000000000000 +vt 0.892163813114 0.523706674576 0.000000000000 +vt 0.884188354015 0.523065209389 0.000000000000 +vt 0.873883426189 0.524219810963 0.000000000000 +vt 0.865347802639 0.526163995266 0.000000000000 +vt 0.858433783054 0.526082932949 0.000000000000 +vt 0.859899699688 0.590485215187 0.000000000000 +vt 0.858855664730 0.581898033619 0.000000000000 +vt 0.859369337559 0.568410336971 0.000000000000 +vt 0.859169065952 0.551045894623 0.000000000000 +vt 0.856827557087 0.534337580204 0.000000000000 +vt 0.937964379787 0.513839006424 0.000000000000 +vt 0.693465530872 0.814677596092 0.000000000000 +vt 0.700085699558 0.824197411537 0.000000000000 +vt 0.694888770580 0.822570204735 0.000000000000 +vt 0.692891776562 0.803992629051 0.000000000000 +vt 0.691710650921 0.795865237713 0.000000000000 +vt 0.711294472218 0.782084345818 0.000000000000 +vt 0.712714016438 0.788840830326 0.000000000000 +vt 0.708831012249 0.814877569675 0.000000000000 +vt 0.705738484859 0.822653293610 0.000000000000 +vt 0.711153686047 0.804187417030 0.000000000000 +vt 0.712479650974 0.795391499996 0.000000000000 +vt 0.700650393963 0.775034308434 0.000000000000 +vt 0.691504657269 0.783996403217 0.000000000000 +vt 0.693565666676 0.777675151825 0.000000000000 +vt 0.691854059696 0.825260579586 0.000000000000 +vt 0.688908874989 0.815112352371 0.000000000000 +vt 0.713424861431 0.816177845001 0.000000000000 +vt 0.708342850208 0.825807273388 0.000000000000 +vt 0.699830830097 0.829423010349 0.000000000000 +vt 0.688347995281 0.804415702820 0.000000000000 +vt 0.715837776661 0.805065751076 0.000000000000 +vt 0.690926015377 0.790131390095 0.000000000000 +vt 0.686091244221 0.790077388287 0.000000000000 +vt 0.687085330486 0.783463239670 0.000000000000 +vt 0.717056095600 0.795820415020 0.000000000000 +vt 0.700017035007 0.770576894283 0.000000000000 +vt 0.914225161076 0.695051312447 0.000000000000 +vt 0.916345059872 0.684997260571 0.000000000000 +vt 0.924999296665 0.686340272427 0.000000000000 +vt 0.923253715038 0.697034716606 0.000000000000 +vt 0.917016923428 0.620534837246 0.000000000000 +vt 0.915503799915 0.609951913357 0.000000000000 +vt 0.924802958965 0.608696460724 0.000000000000 +vt 0.925778567791 0.619882166386 0.000000000000 +vt 0.912027418613 0.704157292843 0.000000000000 +vt 0.921499311924 0.705678403378 0.000000000000 +vt 0.918580591679 0.674305975437 0.000000000000 +vt 0.926661670208 0.674895882607 0.000000000000 +vt 0.718583166599 0.876050651073 0.000000000000 +vt 0.713863432407 0.879810035229 0.000000000000 +vt 0.710420310497 0.875060856342 0.000000000000 +vt 0.714020431042 0.871412634850 0.000000000000 +vt 0.697144329548 0.869657814503 0.000000000000 +vt 0.690142214298 0.873365402222 0.000000000000 +vt 0.686877906322 0.870136678219 0.000000000000 +vt 0.696207225323 0.865324914455 0.000000000000 +vt 0.723377764225 0.855088472366 0.000000000000 +vt 0.686818659306 0.880428075790 0.000000000000 +vt 0.681876957417 0.878385961056 0.000000000000 +vt 0.704877674580 0.870628654957 0.000000000000 +vt 0.706442534924 0.866614162922 0.000000000000 +vt 0.698146879673 0.874422729015 0.000000000000 +vt 0.693293511868 0.876017093658 0.000000000000 +vt 0.703139483929 0.874020636082 0.000000000000 +vt 0.692841827869 0.881317675114 0.000000000000 +vt 0.707678377628 0.883993208408 0.000000000000 +vt 0.705496728420 0.878273785114 0.000000000000 +vt 0.700505435467 0.886600732803 0.000000000000 +vt 0.710137546062 0.772817432880 0.000000000000 +vt 0.708110511303 0.775850474834 0.000000000000 +vt 0.686994135380 0.796237647533 0.000000000000 +vt 0.715639293194 0.780954062939 0.000000000000 +vt 0.691104710102 0.775407373905 0.000000000000 +vt 0.699277937412 0.880255401134 0.000000000000 +vt 0.685730040073 0.887317180634 0.000000000000 +vt 0.679790914059 0.885531485081 0.000000000000 +vt 0.918968498707 0.632217705250 0.000000000000 +vt 0.927030384541 0.632067978382 0.000000000000 +vt 0.920924723148 0.642282843590 0.000000000000 +vt 0.928346455097 0.642091691494 0.000000000000 +vt 0.920858919621 0.665029823780 0.000000000000 +vt 0.928194463253 0.665964901447 0.000000000000 +vt 0.717470824718 0.788531899452 0.000000000000 +vt 0.900251805782 0.692512214184 0.000000000000 +vt 0.693121254444 0.888164877892 0.000000000000 +vt 0.902859151363 0.682655394077 0.000000000000 +vt 0.903970539570 0.621789634228 0.000000000000 +vt 0.901585161686 0.612310171127 0.000000000000 +vt 0.898017823696 0.700807869434 0.000000000000 +vt 0.905948698521 0.673050761223 0.000000000000 +vt 0.906874597073 0.632321536541 0.000000000000 +vt 0.693904578686 0.898468434811 0.000000000000 +vt 0.684614479542 0.894367456436 0.000000000000 +vt 0.909317672253 0.643546879292 0.000000000000 +vt 0.731463849545 0.855961382389 0.000000000000 +vt 0.869329869747 0.669516265392 0.000000000000 +vt 0.870946586132 0.660611331463 0.000000000000 +vt 0.890423119068 0.661864340305 0.000000000000 +vt 0.888348281384 0.670855045319 0.000000000000 +vt 0.890978634357 0.652710914612 0.000000000000 +vt 0.702305495739 0.895358145237 0.000000000000 +vt 0.871763646603 0.652749598026 0.000000000000 +vt 0.882360517979 0.689871191978 0.000000000000 +vt 0.710604488850 0.892980515957 0.000000000000 +vt 0.717464387417 0.885056376457 0.000000000000 +vt 0.730221688747 0.863188624382 0.000000000000 +vt 0.722860634327 0.863828301430 0.000000000000 +vt 0.714506924152 0.854860365391 0.000000000000 +vt 0.713789999485 0.863633096218 0.000000000000 +vt 0.724120557308 0.846761763096 0.000000000000 +vt 0.730854570866 0.849116206169 0.000000000000 +vt 0.714706599712 0.846446990967 0.000000000000 +vt 0.706338703632 0.855344653130 0.000000000000 +vt 0.707510411739 0.848723769188 0.000000000000 +vt 0.707069814205 0.861884772778 0.000000000000 +vt 0.678365886211 0.892260015011 0.000000000000 +vt 0.722407639027 0.880594253540 0.000000000000 +vt 0.885312139988 0.679928541183 0.000000000000 +vt 0.886436760426 0.624270200729 0.000000000000 +vt 0.883410274982 0.615363061428 0.000000000000 +vt 0.879997313023 0.698587834835 0.000000000000 +vt 0.889629900455 0.633672416210 0.000000000000 +vt 0.909305155277 0.662700593472 0.000000000000 +vt 0.891184151173 0.643255293369 0.000000000000 +vt 0.871766149998 0.644696950912 0.000000000000 +vt 0.907031238079 0.653394460678 0.000000000000 +vt 0.865283668041 0.687783956528 0.000000000000 +vt 0.867546260357 0.678728938103 0.000000000000 +vt 0.868419826031 0.627362251282 0.000000000000 +vt 0.866138994694 0.618586599827 0.000000000000 +vt 0.862232387066 0.696758449078 0.000000000000 +vt 0.870358645916 0.636041104794 0.000000000000 +vt 0.858235895634 0.685826241970 0.000000000000 +vt 0.858604013920 0.677683055401 0.000000000000 +vt 0.860833942890 0.667493700981 0.000000000000 +vt 0.863862931728 0.659794270992 0.000000000000 +vt 0.864249050617 0.652788579464 0.000000000000 +vt 0.864739954472 0.645918428898 0.000000000000 +vt 0.861379206181 0.638689100742 0.000000000000 +vt 0.859226524830 0.628483951092 0.000000000000 +vt 0.858618676662 0.620088815689 0.000000000000 +vt 0.856225430965 0.613054513931 0.000000000000 +vt 0.914761722088 0.600589513779 0.000000000000 +vt 0.924306929111 0.599584639072 0.000000000000 +vt 0.900618851185 0.603945910931 0.000000000000 +vt 0.882335126400 0.606884181499 0.000000000000 +vt 0.864254891872 0.609210252762 0.000000000000 +vt 0.854927241802 0.691868305206 0.000000000000 +vt 0.837422072887 0.841993212700 0.000000000000 +vt 0.887628972530 0.127281382680 0.000000000000 +vt 0.891492426395 0.109981805086 0.000000000000 +vt 0.853538930416 0.841780006886 0.000000000000 +vt 0.446142524481 0.173150673509 0.000000000000 +vt 0.852221906185 0.869813799858 0.000000000000 +vt 0.834832131863 0.866848766804 0.000000000000 +vt 0.827377617359 0.891240715981 0.000000000000 +vt 0.844508349895 0.896685421467 0.000000000000 +vt 0.876590073109 0.913664817810 0.000000000000 +vt 0.631155192852 0.291285961866 0.000000000000 +vt 0.626378953457 0.296571254730 0.000000000000 +vt 0.619356811047 0.293236494064 0.000000000000 +vt 0.617115795612 0.281405717134 0.000000000000 +vt 0.627076447010 0.304564028978 0.000000000000 +vt 0.612752139568 0.299342244864 0.000000000000 +vt 0.603455007076 0.284176468849 0.000000000000 +vt 0.551565110683 0.292362421751 0.000000000000 +vt 0.563377797604 0.287606924772 0.000000000000 +vt 0.575475394726 0.299903571606 0.000000000000 +vt 0.558976709843 0.303807973862 0.000000000000 +vt 0.562288582325 0.307399660349 0.000000000000 +vt 0.579733312130 0.307971090078 0.000000000000 +vt 0.596043288708 0.307672083378 0.000000000000 +vt 0.594420373440 0.298339635134 0.000000000000 +vt 0.590357482433 0.287719279528 0.000000000000 +vt 0.579626619816 0.290383100510 0.000000000000 +vt 0.573159515858 0.282042890787 0.000000000000 +vt 0.578718960285 0.044730942696 0.000000000000 +vt 0.566518962383 0.050097059458 0.000000000000 +vt 0.561770737171 0.022569365799 0.000000000000 +vt 0.579452574253 0.019849490374 0.000000000000 +vt 0.557008445263 0.060779999942 0.000000000000 +vt 0.548213899136 0.048078324646 0.000000000000 +vt 0.693731248379 0.210530251265 0.000000000000 +vt 0.693874895573 0.194242313504 0.000000000000 +vt 0.701992332935 0.200576603413 0.000000000000 +vt 0.711977064610 0.218270197511 0.000000000000 +vt 0.698697388172 0.178742393851 0.000000000000 +vt 0.704717457294 0.185912460089 0.000000000000 +vt 0.903121650219 0.125584170222 0.000000000000 +vt 0.867082893848 0.928871572018 0.000000000000 +vt 0.847567975521 0.932113111019 0.000000000000 +vt 0.861807763577 0.903646290302 0.000000000000 +vt 0.874533474445 0.941229879856 0.000000000000 +vt 0.854254424572 0.953694105148 0.000000000000 +vt 0.828710377216 0.919355154037 0.000000000000 +vt 0.886985480785 0.898062467575 0.000000000000 +vt 0.872782289982 0.875068247318 0.000000000000 +vt 0.906435072422 0.912213265896 0.000000000000 +vt 0.907167255878 0.936152637005 0.000000000000 +vt 0.888857185841 0.925772547722 0.000000000000 +vt 0.894924700260 0.912269532681 0.000000000000 +vt 0.909523308277 0.137212976813 0.000000000000 +vt 0.900375425816 0.890851438046 0.000000000000 +vt 0.647988855839 0.030116569251 0.000000000000 +vt 0.663214385509 0.030034158379 0.000000000000 +vt 0.655444204807 0.048680160195 0.000000000000 +vt 0.633447468281 0.039773471653 0.000000000000 +vt 0.639170706272 0.061737354845 0.000000000000 +vt 0.625266969204 0.055919121951 0.000000000000 +vt 0.724736869335 0.892238378525 0.000000000000 +vt 0.741851985455 0.899839401245 0.000000000000 +vt 0.725909292698 0.912707686424 0.000000000000 +vt 0.713663756847 0.901688575745 0.000000000000 +vt 0.650711238384 0.327391177416 0.000000000000 +vt 0.634856283665 0.320250153542 0.000000000000 +vt 0.740120351315 0.933756113052 0.000000000000 +vt 0.722898066044 0.930224955082 0.000000000000 +vt 0.640473186970 0.306113332510 0.000000000000 +vt 0.652059733868 0.314922749996 0.000000000000 +vt 0.621949970722 0.313803285360 0.000000000000 +vt 0.583925902843 0.276038467884 0.000000000000 +vt 0.669873058796 0.330044180155 0.000000000000 +vt 0.663455307484 0.311076432467 0.000000000000 +vt 0.653194963932 0.296154946089 0.000000000000 +vt 0.537551581860 0.063254460692 0.000000000000 +vt 0.855031669140 0.035574551672 0.000000000000 +vt 0.837493717670 0.022007379681 0.000000000000 +vt 0.709798753262 0.290995299816 0.000000000000 +vt 0.720909416676 0.320390880108 0.000000000000 +vt 0.708561480045 0.322530746460 0.000000000000 +vt 0.747772991657 0.921521842480 0.000000000000 +vt 0.695623576641 0.297934114933 0.000000000000 +vt 0.680082261562 0.305459260941 0.000000000000 +vt 0.693427860737 0.329764753580 0.000000000000 +vt 0.681907594204 0.278335958719 0.000000000000 +vt 0.667823493481 0.287369400263 0.000000000000 +vt 0.667146265507 0.261673122644 0.000000000000 +vt 0.654371798038 0.271894037724 0.000000000000 +vt 0.641373217106 0.281966120005 0.000000000000 +vt 0.639975368977 0.258212238550 0.000000000000 +vt 0.628611147404 0.269090384245 0.000000000000 +vt 0.626621663570 0.244766697288 0.000000000000 +vt 0.616053998470 0.255464911461 0.000000000000 +vt 0.605184614658 0.264766514301 0.000000000000 +vt 0.605853140354 0.242097690701 0.000000000000 +vt 0.595517814159 0.250885695219 0.000000000000 +vt 0.585814058781 0.256739497185 0.000000000000 +vt 0.595492184162 0.270403504372 0.000000000000 +vt 0.574711024761 0.264054805040 0.000000000000 +vt 0.585790932178 0.239443764091 0.000000000000 +vt 0.572891771793 0.246539995074 0.000000000000 +vt 0.559696972370 0.254923403263 0.000000000000 +vt 0.577001988888 0.228986665606 0.000000000000 +vt 0.564495980740 0.234662607312 0.000000000000 +vt 0.551713407040 0.238481923938 0.000000000000 +vt 0.545511305332 0.261512130499 0.000000000000 +vt 0.538646757603 0.241494938731 0.000000000000 +vt 0.661286294460 0.149169623852 0.000000000000 +vt 0.643085420132 0.133995741606 0.000000000000 +vt 0.684797942638 0.147779509425 0.000000000000 +vt 0.676565825939 0.159141749144 0.000000000000 +vt 0.630804598331 0.144728660583 0.000000000000 +vt 0.649197280407 0.162055477500 0.000000000000 +vt 0.669700562954 0.172124639153 0.000000000000 +vt 0.633624017239 0.171124503016 0.000000000000 +vt 0.617616355419 0.157551243901 0.000000000000 +vt 0.624203979969 0.183554634452 0.000000000000 +vt 0.607319533825 0.173306703568 0.000000000000 +vt 0.645736873150 0.185071289539 0.000000000000 +vt 0.638931095600 0.196221649647 0.000000000000 +vt 0.601086556911 0.187993124127 0.000000000000 +vt 0.617492735386 0.196533486247 0.000000000000 +vt 0.632214725018 0.207936018705 0.000000000000 +vt 0.654465734959 0.209547683597 0.000000000000 +vt 0.646386682987 0.221093416214 0.000000000000 +vt 0.611703574657 0.208597302437 0.000000000000 +vt 0.624510347843 0.219911128283 0.000000000000 +vt 0.636621057987 0.233212843537 0.000000000000 +vt 0.661210715771 0.235190823674 0.000000000000 +vt 0.651021778584 0.247041419148 0.000000000000 +vt 0.615979254246 0.231477782130 0.000000000000 +vt 0.605249464512 0.220229938626 0.000000000000 +vt 0.596773326397 0.230893954635 0.000000000000 +vt 0.592077195644 0.211689129472 0.000000000000 +vt 0.586139500141 0.221562415361 0.000000000000 +vt 0.596748054028 0.200712144375 0.000000000000 +vt 0.686020314693 0.238807246089 0.000000000000 +vt 0.677805483341 0.250549525023 0.000000000000 +vt 0.669185936451 0.222903206944 0.000000000000 +vt 0.691701591015 0.226273551583 0.000000000000 +vt 0.675190150738 0.210060581565 0.000000000000 +vt 0.660946547985 0.197643056512 0.000000000000 +vt 0.679371058941 0.196919396520 0.000000000000 +vt 0.665786325932 0.185841768980 0.000000000000 +vt 0.653169095516 0.177967861295 0.000000000000 +vt 0.682948529720 0.183452650905 0.000000000000 +vt 0.688856303692 0.169335424900 0.000000000000 +vt 0.712051331997 0.240907743573 0.000000000000 +vt 0.705046594143 0.257047295570 0.000000000000 +vt 0.693947613239 0.268588751554 0.000000000000 +vt 0.846441566944 0.016312304884 0.000000000000 +vt 0.725233733654 0.280963063240 0.000000000000 +vt 0.864230215549 0.027330722660 0.000000000000 +vt 0.867542684078 0.077758729458 0.000000000000 +vt 0.873992264271 0.059032347053 0.000000000000 +vt 0.900698363781 0.073607310653 0.000000000000 +vt 0.893409788609 0.088153243065 0.000000000000 +vt 0.837527215481 0.094833135605 0.000000000000 +vt 0.838087618351 0.073169842362 0.000000000000 +vt 0.864491522312 0.098964735866 0.000000000000 +vt 0.839568436146 0.049210395664 0.000000000000 +vt 0.838048279285 0.117027804255 0.000000000000 +vt 0.862743914127 0.119909122586 0.000000000000 +vt 0.839784204960 0.140174224973 0.000000000000 +vt 0.862825214863 0.142299681902 0.000000000000 +vt 0.887471616268 0.147722780704 0.000000000000 +vt 0.864518344402 0.167147815228 0.000000000000 +vt 0.760909855366 0.908550620079 0.000000000000 +vt 0.702537238598 0.924268066883 0.000000000000 +vt 0.688291251659 0.928146779537 0.000000000000 +vt 0.681064426899 0.908967435360 0.000000000000 +vt 0.690809547901 0.908960223198 0.000000000000 +vt 0.831720411777 0.965238690376 0.000000000000 +vt 0.609436690807 0.309842139482 0.000000000000 +vt 0.841262519360 0.982780098915 0.000000000000 +vt 0.824164688587 0.990950345993 0.000000000000 +vt 0.813748776913 0.974472284317 0.000000000000 +vt 0.803931534290 0.981341362000 0.000000000000 +vt 0.813704669476 0.995644569397 0.000000000000 +vt 0.821433365345 0.949445426464 0.000000000000 +vt 0.802491247654 0.961359918118 0.000000000000 +vt 0.792442619801 0.969731867313 0.000000000000 +vt 0.808618605137 0.936246752739 0.000000000000 +vt 0.791009962559 0.950495541096 0.000000000000 +vt 0.780412495136 0.960320413113 0.000000000000 +vt 0.779733002186 0.938618302345 0.000000000000 +vt 0.769098222256 0.949621915817 0.000000000000 +vt 0.795302093029 0.925809264183 0.000000000000 +vt 0.779587566853 0.917365670204 0.000000000000 +vt 0.765330970287 0.930258750916 0.000000000000 +vt 0.755919754505 0.940638661385 0.000000000000 +vt 0.888226568699 0.171349883080 0.000000000000 +vt 0.910776436329 0.175429016352 0.000000000000 +vt 0.910029232502 0.154122352600 0.000000000000 +vt 0.931366503239 0.177302077413 0.000000000000 +vt 0.929215371609 0.158224686980 0.000000000000 +vt 0.927563607693 0.146612986922 0.000000000000 +vt 0.907406389713 0.225816711783 0.000000000000 +vt 0.909843504429 0.199414119124 0.000000000000 +vt 0.930679738522 0.201603308320 0.000000000000 +vt 0.928200304508 0.226828783751 0.000000000000 +vt 0.887493193150 0.252168864012 0.000000000000 +vt 0.887319624424 0.224217891693 0.000000000000 +vt 0.907594621181 0.252231895924 0.000000000000 +vt 0.932080924511 0.253668844700 0.000000000000 +vt 0.888279378414 0.197011262178 0.000000000000 +vt 0.868254363537 0.222412139177 0.000000000000 +vt 0.866531431675 0.193962886930 0.000000000000 +vt 0.850991070271 0.254400819540 0.000000000000 +vt 0.425416767597 0.169557422400 0.000000000000 +vt 0.527126252651 0.054304089397 0.000000000000 +vt 0.537031948566 0.037999924272 0.000000000000 +vt 0.594819605350 0.021248605102 0.000000000000 +vt 0.593616664410 0.041817199439 0.000000000000 +vt 0.611463606358 0.039550118148 0.000000000000 +vt 0.612102329731 0.021802034229 0.000000000000 +vt 0.629308164120 0.021318852901 0.000000000000 +vt 0.684654057026 0.026047337800 0.000000000000 +vt 0.686814010143 0.010275442153 0.000000000000 +vt 0.813150346279 0.910948097706 0.000000000000 +vt 0.795561254025 0.902303934097 0.000000000000 +vt 0.708547055721 0.008438628167 0.000000000000 +vt 0.706763446331 0.024136669934 0.000000000000 +vt 0.681121885777 0.042657937855 0.000000000000 +vt 0.703326165676 0.040577050298 0.000000000000 +vt 0.679071128368 0.059330899268 0.000000000000 +vt 0.697736203671 0.057211738080 0.000000000000 +vt 0.679068386555 0.075802132487 0.000000000000 +vt 0.694422185421 0.074145883322 0.000000000000 +vt 0.660856544971 0.065091490746 0.000000000000 +vt 0.664182245731 0.079712390900 0.000000000000 +vt 0.667562067509 0.093277320266 0.000000000000 +vt 0.658718883991 0.094275429845 0.000000000000 +vt 0.653593957424 0.083498373628 0.000000000000 +vt 0.562429010868 0.070872798562 0.000000000000 +vt 0.561431109905 0.091275691986 0.000000000000 +vt 0.651631176472 0.096843779087 0.000000000000 +vt 0.566199004650 0.079591929913 0.000000000000 +vt 0.568919837475 0.088470026851 0.000000000000 +vt 0.576352179050 0.086408510804 0.000000000000 +vt 0.573891699314 0.075738176703 0.000000000000 +vt 0.570575177670 0.065078660846 0.000000000000 +vt 0.584147036076 0.084593981504 0.000000000000 +vt 0.582864105701 0.072689130902 0.000000000000 +vt 0.580894887447 0.060486171395 0.000000000000 +vt 0.593160688877 0.083160415292 0.000000000000 +vt 0.593804895878 0.070337161422 0.000000000000 +vt 0.593818604946 0.057107713073 0.000000000000 +vt 0.603601753712 0.082686245441 0.000000000000 +vt 0.606147468090 0.069071784616 0.000000000000 +vt 0.609074890614 0.054980006069 0.000000000000 +vt 0.614769279957 0.083682104945 0.000000000000 +vt 0.619084775448 0.069891348481 0.000000000000 +vt 0.610922992229 0.095825180411 0.000000000000 +vt 0.601321876049 0.094617664814 0.000000000000 +vt 0.622694909573 0.086109951138 0.000000000000 +vt 0.617340266705 0.097710400820 0.000000000000 +vt 0.629761517048 0.073689267039 0.000000000000 +vt 0.629895031452 0.090603604913 0.000000000000 +vt 0.623498737812 0.100945651531 0.000000000000 +vt 0.638310372829 0.080408573151 0.000000000000 +vt 0.638113796711 0.097320660949 0.000000000000 +vt 0.645590126514 0.088923722506 0.000000000000 +vt 0.647677242756 0.071726813912 0.000000000000 +vt 0.631511867046 0.105762854218 0.000000000000 +vt 0.638789474964 0.110335975885 0.000000000000 +vt 0.562276422977 0.105178341269 0.000000000000 +vt 0.630611360073 0.128678917885 0.000000000000 +vt 0.623610913754 0.125340327621 0.000000000000 +vt 0.626384556293 0.114658728242 0.000000000000 +vt 0.569847881794 0.105211660266 0.000000000000 +vt 0.570068538189 0.114621803164 0.000000000000 +vt 0.570002615452 0.097111940384 0.000000000000 +vt 0.577380478382 0.104798287153 0.000000000000 +vt 0.576979458332 0.114249393344 0.000000000000 +vt 0.577486932278 0.096096485853 0.000000000000 +vt 0.584565103054 0.104308113456 0.000000000000 +vt 0.583777844906 0.114008486271 0.000000000000 +vt 0.584677040577 0.095082387328 0.000000000000 +vt 0.591241061687 0.104193970561 0.000000000000 +vt 0.589022576809 0.114581719041 0.000000000000 +vt 0.592356622219 0.094391390681 0.000000000000 +vt 0.598587095737 0.105026379228 0.000000000000 +vt 0.594260156155 0.115820080042 0.000000000000 +vt 0.586750924587 0.143253445625 0.000000000000 +vt 0.588111102581 0.125869661570 0.000000000000 +vt 0.593005359173 0.127749264240 0.000000000000 +vt 0.591630995274 0.144661337137 0.000000000000 +vt 0.596110045910 0.146092429757 0.000000000000 +vt 0.598921716213 0.130493223667 0.000000000000 +vt 0.601200044155 0.117737725377 0.000000000000 +vt 0.600308954716 0.147598937154 0.000000000000 +vt 0.605599582195 0.133385121822 0.000000000000 +vt 0.608710825443 0.120034545660 0.000000000000 +vt 0.604579865932 0.149645149708 0.000000000000 +vt 0.611486494541 0.135846063495 0.000000000000 +vt 0.615960538387 0.122533097863 0.000000000000 +vt 0.608992874622 0.150967940688 0.000000000000 +vt 0.617690265179 0.137778565288 0.000000000000 +vt 0.624459326267 0.140183672309 0.000000000000 +vt 0.613782465458 0.152489989996 0.000000000000 +vt 0.570089280605 0.125959947705 0.000000000000 +vt 0.557442963123 0.275540649891 0.000000000000 +vt 0.566006243229 0.270970880985 0.000000000000 +vt 0.775371730328 0.893757700920 0.000000000000 +vt 0.808763206005 0.883916676044 0.000000000000 +vt 0.559562146664 0.264112442732 0.000000000000 +vt 0.554663598537 0.266600191593 0.000000000000 +vt 0.848581612110 0.221785306931 0.000000000000 +vt 0.393582761288 0.484183341265 0.000000000000 +vt 0.396767795086 0.480453461409 0.000000000000 +vt 0.400794714689 0.480809420347 0.000000000000 +vt 0.399765521288 0.485055834055 0.000000000000 +vt 0.439470499754 0.511713802814 0.000000000000 +vt 0.440386444330 0.513542473316 0.000000000000 +vt 0.437012046576 0.514041662216 0.000000000000 +vt 0.437573134899 0.511677742004 0.000000000000 +vt 0.422013103962 0.460037946701 0.000000000000 +vt 0.418047666550 0.470334529877 0.000000000000 +vt 0.412509530783 0.468371391296 0.000000000000 +vt 0.414865106344 0.458373844624 0.000000000000 +vt 0.429023534060 0.476388931274 0.000000000000 +vt 0.423462659121 0.473014324903 0.000000000000 +vt 0.429314196110 0.462833255529 0.000000000000 +vt 0.436214298010 0.467371255159 0.000000000000 +vt 0.406041711569 0.475491911173 0.000000000000 +vt 0.406945496798 0.467524141073 0.000000000000 +vt 0.410694092512 0.476356506348 0.000000000000 +vt 0.435092151165 0.452288359404 0.000000000000 +vt 0.438309162855 0.447881609201 0.000000000000 +vt 0.359971135855 0.090370342135 0.000000000000 +vt 0.368420302868 0.099629849195 0.000000000000 +vt 0.362833082676 0.104876860976 0.000000000000 +vt 0.354921132326 0.096900969744 0.000000000000 +vt 0.352515369654 0.130700588226 0.000000000000 +vt 0.345492541790 0.124132826924 0.000000000000 +vt 0.349532276392 0.119571164250 0.000000000000 +vt 0.358871489763 0.128728002310 0.000000000000 +vt 0.438525289297 0.449985921383 0.000000000000 +vt 0.439274400473 0.451704740524 0.000000000000 +vt 0.449622303247 0.464140743017 0.000000000000 +vt 0.448981046677 0.460056871176 0.000000000000 +vt 0.450336039066 0.460677176714 0.000000000000 +vt 0.452015697956 0.460444808006 0.000000000000 +vt 0.425263881683 0.450979530811 0.000000000000 +vt 0.453179091215 0.473780065775 0.000000000000 +vt 0.449453443289 0.477478682995 0.000000000000 +vt 0.442929327488 0.472293376923 0.000000000000 +vt 0.441622525454 0.459930330515 0.000000000000 +vt 0.444129645824 0.456388652325 0.000000000000 +vt 0.373616009951 0.118581384420 0.000000000000 +vt 0.375112146139 0.115701422095 0.000000000000 +vt 0.377992779016 0.117945536971 0.000000000000 +vt 0.375868886709 0.120479449630 0.000000000000 +vt 0.382243275642 0.107223436236 0.000000000000 +vt 0.383732229471 0.103787556291 0.000000000000 +vt 0.386310935020 0.106139764190 0.000000000000 +vt 0.384451150894 0.109020173550 0.000000000000 +vt 0.409286201000 0.450759083033 0.000000000000 +vt 0.408566385508 0.458585023880 0.000000000000 +vt 0.376690715551 0.126454398036 0.000000000000 +vt 0.381214976311 0.120371833444 0.000000000000 +vt 0.403114914894 0.459155589342 0.000000000000 +vt 0.403876841068 0.452309519053 0.000000000000 +vt 0.454835981131 0.482029527426 0.000000000000 +vt 0.457485169172 0.479463666677 0.000000000000 +vt 0.384555608034 0.122786611319 0.000000000000 +vt 0.382433533669 0.128221631050 0.000000000000 +vt 0.385892122984 0.114606484771 0.000000000000 +vt 0.389199435711 0.119001969695 0.000000000000 +vt 0.416368693113 0.447328180075 0.000000000000 +vt 0.461556434631 0.440214395523 0.000000000000 +vt 0.354810804129 0.135790005326 0.000000000000 +vt 0.356487303972 0.133928865194 0.000000000000 +vt 0.459117084742 0.440935134888 0.000000000000 +vt 0.359035402536 0.136161059141 0.000000000000 +vt 0.356604158878 0.137259811163 0.000000000000 +vt 0.456829965115 0.439723789692 0.000000000000 +vt 0.458451539278 0.437272518873 0.000000000000 +vt 0.454769343138 0.438526421785 0.000000000000 +vt 0.454550951719 0.435967743397 0.000000000000 +vt 0.441826075315 0.444921255112 0.000000000000 +vt 0.443551659584 0.442011803389 0.000000000000 +vt 0.448256731033 0.443818241358 0.000000000000 +vt 0.446299463511 0.446265220642 0.000000000000 +vt 0.455544114113 0.449857115746 0.000000000000 +vt 0.458855003119 0.454671829939 0.000000000000 +vt 0.455724000931 0.457280248404 0.000000000000 +vt 0.453310787678 0.452473431826 0.000000000000 +vt 0.450308114290 0.448847740889 0.000000000000 +vt 0.386408418417 0.101448193192 0.000000000000 +vt 0.387978881598 0.103007167578 0.000000000000 +vt 0.452250301838 0.446324646473 0.000000000000 +vt 0.447152793407 0.437671035528 0.000000000000 +vt 0.450194656849 0.436007380486 0.000000000000 +vt 0.452898085117 0.439646780491 0.000000000000 +vt 0.450881361961 0.441238403320 0.000000000000 +vt 0.458574026823 0.443444490433 0.000000000000 +vt 0.463303625584 0.444895386696 0.000000000000 +vt 0.462563782930 0.448778629303 0.000000000000 +vt 0.457480877638 0.446133941412 0.000000000000 +vt 0.454026341438 0.443802684546 0.000000000000 +vt 0.359097301960 0.132905989885 0.000000000000 +vt 0.361074864864 0.134876102209 0.000000000000 +vt 0.455461025238 0.441745221615 0.000000000000 +vt 0.444298267365 0.448686748743 0.000000000000 +vt 0.442074418068 0.450537770987 0.000000000000 +vt 0.439655810595 0.449115246534 0.000000000000 +vt 0.441199243069 0.447540730238 0.000000000000 +vt 0.451972931623 0.458101630211 0.000000000000 +vt 0.450596332550 0.459385693073 0.000000000000 +vt 0.449565351009 0.457458138466 0.000000000000 +vt 0.450939685106 0.454803764820 0.000000000000 +vt 0.446267724037 0.453737437725 0.000000000000 +vt 0.397592544556 0.132566675544 0.000000000000 +vt 0.395102560520 0.138213351369 0.000000000000 +vt 0.392103701830 0.135889068246 0.000000000000 +vt 0.395304739475 0.130839735270 0.000000000000 +vt 0.399295836687 0.125662967563 0.000000000000 +vt 0.402231425047 0.128127291799 0.000000000000 +vt 0.404049992561 0.137433633208 0.000000000000 +vt 0.405965834856 0.138806402683 0.000000000000 +vt 0.404163688421 0.144568577409 0.000000000000 +vt 0.448208779097 0.451402574778 0.000000000000 +vt 0.449387699366 0.442756623030 0.000000000000 +vt 0.445775300264 0.440066248178 0.000000000000 +vt 0.459970653057 0.451159417629 0.000000000000 +vt 0.456270694733 0.448136717081 0.000000000000 +vt 0.400764316320 0.142388850451 0.000000000000 +vt 0.410871744156 0.135244905949 0.000000000000 +vt 0.407858490944 0.132529079914 0.000000000000 +vt 0.389080792665 0.131361424923 0.000000000000 +vt 0.387762486935 0.129610389471 0.000000000000 +vt 0.389104187489 0.126333042979 0.000000000000 +vt 0.390812218189 0.127695217729 0.000000000000 +vt 0.391797959805 0.123638600111 0.000000000000 +vt 0.393867135048 0.124303475022 0.000000000000 +vt 0.390969157219 0.132123574615 0.000000000000 +vt 0.392821729183 0.129185527563 0.000000000000 +vt 0.395075976849 0.126136258245 0.000000000000 +vt 0.398736566305 0.138166293502 0.000000000000 +vt 0.397700846195 0.136793285608 0.000000000000 +vt 0.399035334587 0.133746489882 0.000000000000 +vt 0.400510340929 0.134889379144 0.000000000000 +vt 0.401520818472 0.131361871958 0.000000000000 +vt 0.403166472912 0.131912827492 0.000000000000 +vt 0.400330662727 0.138775110245 0.000000000000 +vt 0.402200579643 0.136118054390 0.000000000000 +vt 0.404188245535 0.133363723755 0.000000000000 +vt 0.385480999947 0.131040126085 0.000000000000 +vt 0.387488692999 0.124964997172 0.000000000000 +vt 0.392740219831 0.120471790433 0.000000000000 +vt 0.397779881954 0.121211871505 0.000000000000 +vt 0.388019412756 0.135536253452 0.000000000000 +vt 0.406621724367 0.128388255835 0.000000000000 +vt 0.396779060364 0.141935378313 0.000000000000 +vt 0.409657478333 0.141405150294 0.000000000000 +vt 0.408238559961 0.143032342196 0.000000000000 +vt 0.452826261520 0.445473134518 0.000000000000 +vt 0.398223191500 0.453096210957 0.000000000000 +vt 0.397748589516 0.459203541279 0.000000000000 +vt 0.461537957191 0.483292669058 0.000000000000 +vt 0.458966463804 0.486215561628 0.000000000000 +vt 0.417104929686 0.441364258528 0.000000000000 +vt 0.418126702309 0.442871898413 0.000000000000 +vt 0.420422822237 0.444641411304 0.000000000000 +vt 0.433500528336 0.448079735041 0.000000000000 +vt 0.436020672321 0.448221594095 0.000000000000 +vt 0.427099138498 0.446181684732 0.000000000000 +vt 0.438960522413 0.423234313726 0.000000000000 +vt 0.436720907688 0.424649864435 0.000000000000 +vt 0.407253503799 0.142381638288 0.000000000000 +vt 0.408249586821 0.140351876616 0.000000000000 +vt 0.434051692486 0.423569798470 0.000000000000 +vt 0.434879601002 0.420804440975 0.000000000000 +vt 0.431214749813 0.423123985529 0.000000000000 +vt 0.430086702108 0.420641422272 0.000000000000 +vt 0.419274091721 0.434574037790 0.000000000000 +vt 0.420379161835 0.430852890015 0.000000000000 +vt 0.426141530275 0.431651085615 0.000000000000 +vt 0.424853444099 0.434927970171 0.000000000000 +vt 0.436181217432 0.434532612562 0.000000000000 +vt 0.441298097372 0.437351107597 0.000000000000 +vt 0.439914047718 0.441069751978 0.000000000000 +vt 0.435192108154 0.437948435545 0.000000000000 +vt 0.430372446775 0.435908526182 0.000000000000 +vt 0.410810738802 0.139599621296 0.000000000000 +vt 0.409828603268 0.138812705874 0.000000000000 +vt 0.431275308132 0.432643771172 0.000000000000 +vt 0.423234343529 0.424417972565 0.000000000000 +vt 0.425667136908 0.422001600266 0.000000000000 +vt 0.429718136787 0.424738824368 0.000000000000 +vt 0.428410202265 0.426783442497 0.000000000000 +vt 0.437025994062 0.426789969206 0.000000000000 +vt 0.441838681698 0.426870137453 0.000000000000 +vt 0.442383557558 0.430333465338 0.000000000000 +vt 0.436957329512 0.429274797440 0.000000000000 +vt 0.432621270418 0.428078770638 0.000000000000 +vt 0.414452850819 0.144986689091 0.000000000000 +vt 0.409147053957 0.147766679525 0.000000000000 +vt 0.433331876993 0.425908029079 0.000000000000 +vt 0.423957765102 0.438147932291 0.000000000000 +vt 0.422544687986 0.441486746073 0.000000000000 +vt 0.418296456337 0.441183239222 0.000000000000 +vt 0.419304251671 0.438087821007 0.000000000000 +vt 0.437636613846 0.443893879652 0.000000000000 +vt 0.436708301306 0.446964770555 0.000000000000 +vt 0.433489710093 0.444419175386 0.000000000000 +vt 0.434133440256 0.441165685654 0.000000000000 +vt 0.428444206715 0.442456930876 0.000000000000 +vt 0.408575177193 0.144754558802 0.000000000000 +vt 0.411639750004 0.142881035805 0.000000000000 +vt 0.406258314848 0.142990231514 0.000000000000 +vt 0.407059431076 0.139547616243 0.000000000000 +vt 0.410056680441 0.137724533677 0.000000000000 +vt 0.415505886078 0.139094606042 0.000000000000 +vt 0.412565827370 0.139450341463 0.000000000000 +vt 0.364202499390 0.128939658403 0.000000000000 +vt 0.366093575954 0.126167103648 0.000000000000 +vt 0.429390072823 0.439258158207 0.000000000000 +vt 0.427526712418 0.428991526365 0.000000000000 +vt 0.422490209341 0.427620559931 0.000000000000 +vt 0.441317677498 0.433453887701 0.000000000000 +vt 0.436557680368 0.431637555361 0.000000000000 +vt 0.368825376034 0.128782272339 0.000000000000 +vt 0.366221219301 0.131002977490 0.000000000000 +vt 0.377708643675 0.113558173180 0.000000000000 +vt 0.379947811365 0.115249529481 0.000000000000 +vt 0.368792057037 0.124293580651 0.000000000000 +vt 0.370973348618 0.126337096095 0.000000000000 +vt 0.379835903645 0.132157340646 0.000000000000 +vt 0.374702155590 0.134804278612 0.000000000000 +vt 0.371608525515 0.131661787629 0.000000000000 +vt 0.385006606579 0.145867496729 0.000000000000 +vt 0.380806565285 0.150551855564 0.000000000000 +vt 0.378436356783 0.147939816117 0.000000000000 +vt 0.383413165808 0.143897384405 0.000000000000 +vt 0.388382792473 0.140254378319 0.000000000000 +vt 0.390580326319 0.142940923572 0.000000000000 +vt 0.389787077904 0.151387169957 0.000000000000 +vt 0.391084223986 0.152869373560 0.000000000000 +vt 0.387653529644 0.157836511731 0.000000000000 +vt 0.385402202606 0.155462026596 0.000000000000 +vt 0.396483421326 0.150470122695 0.000000000000 +vt 0.394613981247 0.147955358028 0.000000000000 +vt 0.377133131027 0.143021076918 0.000000000000 +vt 0.431962937117 0.430194556713 0.000000000000 +vt 0.398509591818 0.449473470449 0.000000000000 +vt 0.403451532125 0.447545230389 0.000000000000 +vt 0.412772059441 0.443381220102 0.000000000000 +vt 0.415262728930 0.442666351795 0.000000000000 +vt 0.408193081617 0.445362567902 0.000000000000 +vt 0.402572304010 0.417491078377 0.000000000000 +vt 0.401636779308 0.420146107674 0.000000000000 +vt 0.376334518194 0.141268029809 0.000000000000 +vt 0.378864586353 0.138637766242 0.000000000000 +vt 0.398579388857 0.420967459679 0.000000000000 +vt 0.397203922272 0.418318748474 0.000000000000 +vt 0.395930439234 0.422812163830 0.000000000000 +vt 0.393101811409 0.421740859747 0.000000000000 +vt 0.393963277340 0.440714478493 0.000000000000 +vt 0.392591178417 0.436948060989 0.000000000000 +vt 0.397990405560 0.434073746204 0.000000000000 +vt 0.399504780769 0.437697380781 0.000000000000 +vt 0.408009588718 0.428790479898 0.000000000000 +vt 0.414924532175 0.428841352463 0.000000000000 +vt 0.416294604540 0.432789921761 0.000000000000 +vt 0.409434139729 0.432349741459 0.000000000000 +vt 0.404077023268 0.434443891048 0.000000000000 +vt 0.380261212587 0.140083029866 0.000000000000 +vt 0.382164925337 0.137022957206 0.000000000000 +vt 0.402819514275 0.430790752172 0.000000000000 +vt 0.390489786863 0.430026113987 0.000000000000 +vt 0.390550136566 0.426381319761 0.000000000000 +vt 0.395857959986 0.425411134958 0.000000000000 +vt 0.396276742220 0.428331613541 0.000000000000 +vt 0.403288513422 0.421578973532 0.000000000000 +vt 0.408246427774 0.418946474791 0.000000000000 +vt 0.411142379045 0.421542286873 0.000000000000 +vt 0.405009150505 0.423732370138 0.000000000000 +vt 0.400750786066 0.425774753094 0.000000000000 +vt 0.383944779634 0.138014540076 0.000000000000 +vt 0.378778368235 0.144098669291 0.000000000000 +vt 0.399727702141 0.423417359591 0.000000000000 +vt 0.400881379843 0.440771222115 0.000000000000 +vt 0.401966422796 0.443919539452 0.000000000000 +vt 0.396847724915 0.446899026632 0.000000000000 +vt 0.396342486143 0.443651407957 0.000000000000 +vt 0.415956437588 0.436509907246 0.000000000000 +vt 0.416573584080 0.440072774887 0.000000000000 +vt 0.411374956369 0.439379304647 0.000000000000 +vt 0.410169273615 0.436066806316 0.000000000000 +vt 0.406326770782 0.441095888615 0.000000000000 +vt 0.381734192371 0.141807720065 0.000000000000 +vt 0.384717941284 0.139707922935 0.000000000000 +vt 0.384294420481 0.151226192713 0.000000000000 +vt 0.383655220270 0.149787440896 0.000000000000 +vt 0.386135309935 0.147063747048 0.000000000000 +vt 0.387247562408 0.148301199079 0.000000000000 +vt 0.389312237501 0.145468518138 0.000000000000 +vt 0.390688598156 0.146293267608 0.000000000000 +vt 0.385713368654 0.152030900121 0.000000000000 +vt 0.405239045620 0.437882453203 0.000000000000 +vt 0.396997690201 0.430689215660 0.000000000000 +vt 0.392160445452 0.433128327131 0.000000000000 +vt 0.412164151669 0.424938082695 0.000000000000 +vt 0.406307399273 0.426028043032 0.000000000000 +vt 0.388458669186 0.149755924940 0.000000000000 +vt 0.391224920750 0.147718727589 0.000000000000 +vt 0.373405694962 0.142156943679 0.000000000000 +vt 0.377377659082 0.137248560786 0.000000000000 +vt 0.383390426636 0.134469017386 0.000000000000 +vt 0.387974828482 0.136217564344 0.000000000000 +vt 0.374564796686 0.146659821272 0.000000000000 +vt 0.394345581532 0.144419968128 0.000000000000 +vt 0.381775170565 0.154543623328 0.000000000000 +vt 0.393369078636 0.155557274818 0.000000000000 +vt 0.391563802958 0.156876459718 0.000000000000 +vt 0.390937179327 0.156117007136 0.000000000000 +vt 0.392488509417 0.154420018196 0.000000000000 +vt 0.395006179810 0.154078006744 0.000000000000 +vt 0.394348293543 0.153221741319 0.000000000000 +vt 0.396971106529 0.159922137856 0.000000000000 +vt 0.391263425350 0.161551579833 0.000000000000 +vt 0.391377806664 0.158593714237 0.000000000000 +vt 0.394818872213 0.157320469618 0.000000000000 +vt 0.389807134867 0.156631037593 0.000000000000 +vt 0.391787588596 0.153602257371 0.000000000000 +vt 0.395006865263 0.152312338352 0.000000000000 +vt 0.401779532433 0.428116351366 0.000000000000 +vt 0.452458798885 0.462447345257 0.000000000000 +vt 0.452626556158 0.465537369251 0.000000000000 +vt 0.459379166365 0.476943254471 0.000000000000 +vt 0.462601810694 0.480663985014 0.000000000000 +vt 0.455803722143 0.471922338009 0.000000000000 +vt 0.479603260756 0.461800038815 0.000000000000 +vt 0.477074772120 0.461461395025 0.000000000000 +vt 0.399524837732 0.154673993587 0.000000000000 +vt 0.396705895662 0.154279291630 0.000000000000 +vt 0.475300759077 0.459207594395 0.000000000000 +vt 0.477906495333 0.457540988922 0.000000000000 +vt 0.473629444838 0.457062989473 0.000000000000 +vt 0.474505990744 0.454424381256 0.000000000000 +vt 0.457420319319 0.456922262907 0.000000000000 +vt 0.460104405880 0.454761892557 0.000000000000 +vt 0.463730514050 0.459742784500 0.000000000000 +vt 0.461280167103 0.461182653904 0.000000000000 +vt 0.469485044479 0.469264149666 0.000000000000 +vt 0.472566455603 0.474419951439 0.000000000000 +vt 0.469833135605 0.475842684507 0.000000000000 +vt 0.467271775007 0.470811873674 0.000000000000 +vt 0.464453041553 0.465783476830 0.000000000000 +vt 0.371207743883 0.139285087585 0.000000000000 +vt 0.356069415808 0.140628591180 0.000000000000 +vt 0.466606199741 0.464368134737 0.000000000000 +vt 0.466347038746 0.452607154846 0.000000000000 +vt 0.470105797052 0.452469378710 0.000000000000 +vt 0.471197992563 0.457316517830 0.000000000000 +vt 0.468378633261 0.458023726940 0.000000000000 +vt 0.475411504507 0.463598579168 0.000000000000 +vt 0.478970795870 0.466784060001 0.000000000000 +vt 0.476854532957 0.469994544983 0.000000000000 +vt 0.473139971495 0.465840876102 0.000000000000 +vt 0.470534920692 0.462002217770 0.000000000000 +vt 0.361092180014 0.138868093491 0.000000000000 +vt 0.362757891417 0.141520425677 0.000000000000 +vt 0.473011165857 0.460577666759 0.000000000000 +vt 0.458834081888 0.463209271431 0.000000000000 +vt 0.456127494574 0.464871376753 0.000000000000 +vt 0.453364372253 0.461712449789 0.000000000000 +vt 0.455975264311 0.460149645805 0.000000000000 +vt 0.466653943062 0.476451963186 0.000000000000 +vt 0.464873641729 0.479033142328 0.000000000000 +vt 0.462096124887 0.474372893572 0.000000000000 +vt 0.464624851942 0.472282111645 0.000000000000 +vt 0.459239572287 0.469601660967 0.000000000000 +vt 0.358396410942 0.143731668591 0.000000000000 +vt 0.366143107414 0.136179968715 0.000000000000 +vt 0.367462068796 0.140748366714 0.000000000000 +vt 0.367624849081 0.152154952288 0.000000000000 +vt 0.363851904869 0.154144421220 0.000000000000 +vt 0.362488389015 0.151757776737 0.000000000000 +vt 0.366743355989 0.150309801102 0.000000000000 +vt 0.370945870876 0.149034306407 0.000000000000 +vt 0.371946483850 0.151283830404 0.000000000000 +vt 0.461986482143 0.467537879944 0.000000000000 +vt 0.466021031141 0.459026336670 0.000000000000 +vt 0.463648796082 0.454296290874 0.000000000000 +vt 0.474090546370 0.471629172564 0.000000000000 +vt 0.471038132906 0.467538326979 0.000000000000 +vt 0.369695812464 0.157271832228 0.000000000000 +vt 0.370106279850 0.158484742045 0.000000000000 +vt 0.366340100765 0.161045432091 0.000000000000 +vt 0.365696161985 0.158691659570 0.000000000000 +vt 0.374921888113 0.158001109958 0.000000000000 +vt 0.373830109835 0.155684486032 0.000000000000 +vt 0.362566053867 0.147848188877 0.000000000000 +vt 0.362277865410 0.146466180682 0.000000000000 +vt 0.364509135485 0.145325541496 0.000000000000 +vt 0.365181237459 0.146691560745 0.000000000000 +vt 0.366957485676 0.145109176636 0.000000000000 +vt 0.367903143167 0.146292820573 0.000000000000 +vt 0.363559901714 0.149057939649 0.000000000000 +vt 0.365885078907 0.148352980614 0.000000000000 +vt 0.368204176426 0.147704318166 0.000000000000 +vt 0.366324573755 0.155576184392 0.000000000000 +vt 0.366173952818 0.154380381107 0.000000000000 +vt 0.368186831474 0.153372362256 0.000000000000 +vt 0.368705600500 0.154601037502 0.000000000000 +vt 0.370330303907 0.152888730168 0.000000000000 +vt 0.371147632599 0.153870403767 0.000000000000 +vt 0.367092341185 0.156595915556 0.000000000000 +vt 0.369238078594 0.155905812979 0.000000000000 +vt 0.371273934841 0.155043467879 0.000000000000 +vt 0.359594911337 0.146293044090 0.000000000000 +vt 0.363820612431 0.143866091967 0.000000000000 +vt 0.368623167276 0.143500894308 0.000000000000 +vt 0.468312889338 0.463350683451 0.000000000000 +vt 0.396901309490 0.467744559050 0.000000000000 +vt 0.401809483767 0.467451632023 0.000000000000 +vt 0.371416240931 0.146074414253 0.000000000000 +vt 0.359569907188 0.149919614196 0.000000000000 +vt 0.374465495348 0.153269469738 0.000000000000 +vt 0.414790123701 0.478396862745 0.000000000000 +vt 0.447205245495 0.489582329988 0.000000000000 +vt 0.452684849501 0.491852372885 0.000000000000 +vt 0.449784398079 0.494581252337 0.000000000000 +vt 0.442751228809 0.493985742331 0.000000000000 +vt 0.434156626463 0.494034796953 0.000000000000 +vt 0.440118283033 0.488046973944 0.000000000000 +vt 0.434461027384 0.500024855137 0.000000000000 +vt 0.430395841599 0.501698195934 0.000000000000 +vt 0.425874501467 0.499181836843 0.000000000000 +vt 0.446397393942 0.499464601278 0.000000000000 +vt 0.440220713615 0.499364227057 0.000000000000 +vt 0.434654891491 0.512679457664 0.000000000000 +vt 0.435968428850 0.511407136917 0.000000000000 +vt 0.443066686392 0.505874812603 0.000000000000 +vt 0.438906043768 0.505390286446 0.000000000000 +vt 0.439353436232 0.502900302410 0.000000000000 +vt 0.444775164127 0.503243684769 0.000000000000 +vt 0.435113310814 0.505446374416 0.000000000000 +vt 0.434737980366 0.503206968307 0.000000000000 +vt 0.447127133608 0.507210433483 0.000000000000 +vt 0.449805349112 0.505035459995 0.000000000000 +vt 0.363566637039 0.157027080655 0.000000000000 +vt 0.371184110641 0.161255732179 0.000000000000 +vt 0.431567996740 0.505946636200 0.000000000000 +vt 0.430854707956 0.504090666771 0.000000000000 +vt 0.369521766901 0.161624297500 0.000000000000 +vt 0.369182020426 0.160728856921 0.000000000000 +vt 0.370721399784 0.159941717982 0.000000000000 +vt 0.372713804245 0.160549417138 0.000000000000 +vt 0.372284442186 0.159536883235 0.000000000000 +vt 0.372968226671 0.165679350495 0.000000000000 +vt 0.452052175999 0.500936031342 0.000000000000 +vt 0.368058949709 0.165135830641 0.000000000000 +vt 0.368970602751 0.162820771337 0.000000000000 +vt 0.371845602989 0.162883594632 0.000000000000 +vt 0.368251889944 0.160784929991 0.000000000000 +vt 0.370353937149 0.159135669470 0.000000000000 +vt 0.440568357706 0.509817063808 0.000000000000 +vt 0.437990337610 0.509382963181 0.000000000000 +vt 0.435604155064 0.509494423866 0.000000000000 +vt 0.443635433912 0.511720776558 0.000000000000 +vt 0.373006284237 0.158982783556 0.000000000000 +vt 0.376509696245 0.162375643849 0.000000000000 +vt 0.374031394720 0.161057814956 0.000000000000 +vt 0.389625668526 0.108183041215 0.000000000000 +vt 0.393046200275 0.109792903066 0.000000000000 +vt 0.392523407936 0.116342663765 0.000000000000 +vt 0.432401984930 0.510016977787 0.000000000000 +vt 0.438322216272 0.506984829903 0.000000000000 +vt 0.441790044308 0.507623851299 0.000000000000 +vt 0.435307621956 0.507277548313 0.000000000000 +vt 0.444958448410 0.509229838848 0.000000000000 +vt 0.392005532980 0.101636424661 0.000000000000 +vt 0.395671516657 0.103756263852 0.000000000000 +vt 0.407296061516 0.115123912692 0.000000000000 +vt 0.406397461891 0.121328055859 0.000000000000 +vt 0.403196871281 0.120348632336 0.000000000000 +vt 0.404978096485 0.114345774055 0.000000000000 +vt 0.432492733002 0.507707357407 0.000000000000 +vt 0.406864881516 0.108425304294 0.000000000000 +vt 0.409913033247 0.109619542956 0.000000000000 +vt 0.414692848921 0.117440745234 0.000000000000 +vt 0.416797161102 0.118163943291 0.000000000000 +vt 0.416874825954 0.124142721295 0.000000000000 +vt 0.413157969713 0.123205170035 0.000000000000 +vt 0.420296519995 0.113394036889 0.000000000000 +vt 0.416648089886 0.111873343587 0.000000000000 +vt 0.399549156427 0.117066100240 0.000000000000 +vt 0.397761642933 0.115746006370 0.000000000000 +vt 0.444640964270 0.482646912336 0.000000000000 +vt 0.435251086950 0.480776757002 0.000000000000 +vt 0.412997663021 0.489607781172 0.000000000000 +vt 0.415611475706 0.485968559980 0.000000000000 +vt 0.419600337744 0.489331930876 0.000000000000 +vt 0.418021112680 0.495383232832 0.000000000000 +vt 0.418760269880 0.480955928564 0.000000000000 +vt 0.451327174902 0.485552281141 0.000000000000 +vt 0.397986561060 0.111830547452 0.000000000000 +vt 0.400141090155 0.112691327929 0.000000000000 +vt 0.399654954672 0.108637854457 0.000000000000 +vt 0.401813089848 0.108847483993 0.000000000000 +vt 0.401618987322 0.117125526071 0.000000000000 +vt 0.402521193027 0.113518998027 0.000000000000 +vt 0.403585493565 0.110106542706 0.000000000000 +vt 0.409883081913 0.119960919023 0.000000000000 +vt 0.455791562796 0.489336222410 0.000000000000 +vt 0.422770082951 0.483635991812 0.000000000000 +vt 0.423145622015 0.491761177778 0.000000000000 +vt 0.408528327942 0.119000181556 0.000000000000 +vt 0.408956587315 0.115644469857 0.000000000000 +vt 0.410606950521 0.116135522723 0.000000000000 +vt 0.410386979580 0.112677589059 0.000000000000 +vt 0.421489149332 0.498041182756 0.000000000000 +vt 0.426815658808 0.486486226320 0.000000000000 +vt 0.430106759071 0.489818543196 0.000000000000 +vt 0.434814959764 0.486344844103 0.000000000000 +vt 0.426011174917 0.493239969015 0.000000000000 +vt 0.405869930983 0.480812519789 0.000000000000 +vt 0.412047952414 0.112628281116 0.000000000000 +vt 0.406924337149 0.485618025064 0.000000000000 +vt 0.401090562344 0.475320100784 0.000000000000 +vt 0.396311402321 0.475648850203 0.000000000000 +vt 0.411765158176 0.482897728682 0.000000000000 +vt 0.409521043301 0.480445533991 0.000000000000 +vt 0.453219145536 0.496879428625 0.000000000000 +vt 0.411550819874 0.119953945279 0.000000000000 +vt 0.412490606308 0.116729035974 0.000000000000 +vt 0.413484215736 0.113597795367 0.000000000000 +vt 0.395627617836 0.118285313249 0.000000000000 +vt 0.396080166101 0.111090466380 0.000000000000 +vt 0.399283915758 0.105090305209 0.000000000000 +vt 0.404269516468 0.104768797755 0.000000000000 +vt 0.398505777121 0.120832040906 0.000000000000 +vt 0.413978666067 0.108735352755 0.000000000000 +vt 0.409310519695 0.124303475022 0.000000000000 +vt 0.420999675989 0.119554504752 0.000000000000 +vt 0.420234143734 0.121525302529 0.000000000000 +vt 0.419045567513 0.121159419417 0.000000000000 +vt 0.419289410114 0.118994310498 0.000000000000 +vt 0.421489626169 0.117538690567 0.000000000000 +vt 0.420303285122 0.117139488459 0.000000000000 +vt 0.426694989204 0.121457740664 0.000000000000 +vt 0.422340482473 0.125688865781 0.000000000000 +vt 0.420924037695 0.122998699546 0.000000000000 +vt 0.423304349184 0.120309680700 0.000000000000 +vt 0.418264955282 0.122074902058 0.000000000000 +vt 0.417998820543 0.118570342660 0.000000000000 +vt 0.420178323984 0.115989848971 0.000000000000 +vt 0.425800204277 0.115537062287 0.000000000000 +vt 0.423050165176 0.116810753942 0.000000000000 +vt 0.377677112818 0.108308449388 0.000000000000 +vt 0.380777746439 0.100671857595 0.000000000000 +vt 0.387641370296 0.097277656198 0.000000000000 +vt 0.368460386992 0.119178041816 0.000000000000 +vt 0.370848834515 0.112134292722 0.000000000000 +vt 0.361701697111 0.122205942869 0.000000000000 +vt 0.350305467844 0.135973051190 0.000000000000 +vt 0.358212679625 0.109973028302 0.000000000000 +vt 0.353615224361 0.114691153169 0.000000000000 +vt 0.374976605177 0.093655571342 0.000000000000 +vt 0.389860272408 0.064062759280 0.000000000000 +vt 0.392403393984 0.070562094450 0.000000000000 +vt 0.387591153383 0.070836335421 0.000000000000 +vt 0.386600703001 0.064674735069 0.000000000000 +vt 0.390128880739 0.057090383023 0.000000000000 +vt 0.385809719563 0.057704154402 0.000000000000 +vt 0.381569832563 0.070360124111 0.000000000000 +vt 0.378056943417 0.070291683078 0.000000000000 +vt 0.376780331135 0.065116941929 0.000000000000 +vt 0.571491539478 0.142689660192 0.000000000000 +vt 0.576072752476 0.124807611108 0.000000000000 +vt 0.575986921787 0.141870543361 0.000000000000 +vt 0.787393748760 0.876816630363 0.000000000000 +vt 0.764766037464 0.871043145657 0.000000000000 +vt 0.754721701145 0.886201500893 0.000000000000 +vt 0.742770016193 0.866340160370 0.000000000000 +vt 0.734950125217 0.879857540131 0.000000000000 +vt 0.639134943485 0.405957043171 0.000000000000 +vt 0.626996815205 0.399863898754 0.000000000000 +vt 0.634920418262 0.394428640604 0.000000000000 +vt 0.639219582081 0.397930711508 0.000000000000 +vt 0.634795248508 0.383935958147 0.000000000000 +vt 0.643223226070 0.392979323864 0.000000000000 +vt 0.621101796627 0.387013614178 0.000000000000 +vt 0.588396847248 0.330318629742 0.000000000000 +vt 0.604378163815 0.331369876862 0.000000000000 +vt 0.613536059856 0.349697083235 0.000000000000 +vt 0.593470990658 0.343456894159 0.000000000000 +vt 0.615174353123 0.332106143236 0.000000000000 +vt 0.627085506916 0.345775991678 0.000000000000 +vt 0.635642707348 0.359163492918 0.000000000000 +vt 0.624931395054 0.369269371033 0.000000000000 +vt 0.614598810673 0.373340398073 0.000000000000 +vt 0.608756959438 0.360698610544 0.000000000000 +vt 0.595678865910 0.357187539339 0.000000000000 +vt 0.436208903790 0.152205392718 0.000000000000 +vt 0.456390678883 0.160455301404 0.000000000000 +vt 0.470007836819 0.150451436639 0.000000000000 +vt 0.463308125734 0.141743332148 0.000000000000 +vt 0.426335632801 0.240489169955 0.000000000000 +vt 0.436077862978 0.227415770292 0.000000000000 +vt 0.568314850330 0.508301794529 0.000000000000 +vt 0.585736811161 0.522079706192 0.000000000000 +vt 0.563862621784 0.526518404484 0.000000000000 +vt 0.552698671818 0.519208967686 0.000000000000 +vt 0.611942946911 0.313467800617 0.000000000000 +vt 0.543040931225 0.535523951054 0.000000000000 +vt 0.869499862194 0.252641230822 0.000000000000 +vt 0.794922888279 0.858771979809 0.000000000000 +vt 0.771254837513 0.855260670185 0.000000000000 +vt 0.747811377048 0.852186858654 0.000000000000 +vt 0.797975599766 0.840329766273 0.000000000000 +vt 0.773927867413 0.839067518711 0.000000000000 +vt 0.750024020672 0.837795853615 0.000000000000 +vt 0.816554009914 0.862926125526 0.000000000000 +vt 0.819631397724 0.841430306435 0.000000000000 +vt 0.863419592381 0.971586704254 0.000000000000 +vt 0.886208474636 0.956715881824 0.000000000000 +vt 0.845495879650 0.192380949855 0.000000000000 +vt 0.921158373356 0.909126162529 0.000000000000 +vt 0.928987085819 0.927418887615 0.000000000000 +vt 0.914810121059 0.888543367386 0.000000000000 +vt 0.449255734682 0.250441461802 0.000000000000 +vt 0.429135203362 0.255882352591 0.000000000000 +vt 0.454719811678 0.222426101565 0.000000000000 +vt 0.463549941778 0.236386403441 0.000000000000 +vt 0.480748862028 0.132810741663 0.000000000000 +vt 0.460707813501 0.129074752331 0.000000000000 +vt 0.890980184078 0.866303682327 0.000000000000 +vt 0.906893670559 0.863792300224 0.000000000000 +vt 0.901800453663 0.838266909122 0.000000000000 +vt 0.885961711407 0.839472353458 0.000000000000 +vt 0.672634780407 0.403682291508 0.000000000000 +vt 0.870305716991 0.840758919716 0.000000000000 +vt 0.709015905857 0.913828730583 0.000000000000 +vt 0.702005445957 0.906553089619 0.000000000000 +vt 0.664313495159 0.411870300770 0.000000000000 +vt 0.651246488094 0.405295312405 0.000000000000 +vt 0.658828794956 0.392099201679 0.000000000000 +vt 0.648704469204 0.380986869335 0.000000000000 +vt 0.598465621471 0.371364206076 0.000000000000 +vt 0.649795591831 0.422901540995 0.000000000000 +vt 0.666176021099 0.425574362278 0.000000000000 +vt 0.478667050600 0.121633604169 0.000000000000 +vt 0.439155727625 0.188678041101 0.000000000000 +vt 0.419110178947 0.186491340399 0.000000000000 +vt 0.828646361828 0.222074419260 0.000000000000 +vt 0.825475156307 0.193224608898 0.000000000000 +vt 0.842488110065 0.165252909064 0.000000000000 +vt 0.821768820286 0.166762799025 0.000000000000 +vt 0.836636006832 0.816951870918 0.000000000000 +vt 0.852425515652 0.813404560089 0.000000000000 +vt 0.638719737530 0.461908787489 0.000000000000 +vt 0.645538747311 0.442247092724 0.000000000000 +vt 0.666097700596 0.445383280516 0.000000000000 +vt 0.662395417690 0.464661508799 0.000000000000 +vt 0.617127835751 0.458045125008 0.000000000000 +vt 0.627697288990 0.440409153700 0.000000000000 +vt 0.635399162769 0.421377927065 0.000000000000 +vt 0.609715163708 0.435786485672 0.000000000000 +vt 0.619829595089 0.417641699314 0.000000000000 +vt 0.590706527233 0.430238008499 0.000000000000 +vt 0.600633800030 0.414015561342 0.000000000000 +vt 0.605100929737 0.397916287184 0.000000000000 +vt 0.580789983273 0.413832962513 0.000000000000 +vt 0.585207521915 0.396601408720 0.000000000000 +vt 0.583855688572 0.381996691227 0.000000000000 +vt 0.602939188480 0.384962439537 0.000000000000 +vt 0.583396375179 0.371497720480 0.000000000000 +vt 0.567030251026 0.398448109627 0.000000000000 +vt 0.565822064877 0.380739450455 0.000000000000 +vt 0.565940558910 0.366790413857 0.000000000000 +vt 0.546947419643 0.397279322147 0.000000000000 +vt 0.547453343868 0.381623625755 0.000000000000 +vt 0.546291291714 0.366621524096 0.000000000000 +vt 0.529646694660 0.384682595730 0.000000000000 +vt 0.528711616993 0.373113870621 0.000000000000 +vt 0.526230156422 0.363655120134 0.000000000000 +vt 0.543110311031 0.353565901518 0.000000000000 +vt 0.560514271259 0.346006095409 0.000000000000 +vt 0.521848142147 0.354256451130 0.000000000000 +vt 0.537153065205 0.340497672558 0.000000000000 +vt 0.550614297390 0.329262435436 0.000000000000 +vt 0.573693096638 0.334259301424 0.000000000000 +vt 0.565188109875 0.321530610323 0.000000000000 +vt 0.481604665518 0.473584860563 0.000000000000 +vt 0.503952205181 0.484111279249 0.000000000000 +vt 0.523758590221 0.503893256187 0.000000000000 +vt 0.516087591648 0.344791620970 0.000000000000 +vt 0.508227407932 0.335609555244 0.000000000000 +vt 0.518797814846 0.319672405720 0.000000000000 +vt 0.510983765125 0.468507856131 0.000000000000 +vt 0.490077227354 0.435670107603 0.000000000000 +vt 0.502925693989 0.448421299458 0.000000000000 +vt 0.522674977779 0.457363337278 0.000000000000 +vt 0.530655562878 0.477804929018 0.000000000000 +vt 0.538420259953 0.463601946831 0.000000000000 +vt 0.515796720982 0.440703213215 0.000000000000 +vt 0.534934461117 0.448625057936 0.000000000000 +vt 0.549823939800 0.452839523554 0.000000000000 +vt 0.557107031345 0.466927945614 0.000000000000 +vt 0.568541586399 0.456593096256 0.000000000000 +vt 0.547232806683 0.441114574671 0.000000000000 +vt 0.561775863171 0.442336261272 0.000000000000 +vt 0.578855931759 0.444288581610 0.000000000000 +vt 0.586479246616 0.463815152645 0.000000000000 +vt 0.597201764584 0.451105147600 0.000000000000 +vt 0.571721136570 0.429578959942 0.000000000000 +vt 0.557132422924 0.430043905973 0.000000000000 +vt 0.564029395580 0.415538519621 0.000000000000 +vt 0.537347137928 0.424302697182 0.000000000000 +vt 0.544077932835 0.411527603865 0.000000000000 +vt 0.518473088741 0.418114066124 0.000000000000 +vt 0.524959385395 0.408595174551 0.000000000000 +vt 0.528635084629 0.397043138742 0.000000000000 +vt 0.509449779987 0.404620736837 0.000000000000 +vt 0.513173401356 0.395612955093 0.000000000000 +vt 0.514248788357 0.385702759027 0.000000000000 +vt 0.513777077198 0.377086073160 0.000000000000 +vt 0.512884557247 0.370190680027 0.000000000000 +vt 0.510034501553 0.363916963339 0.000000000000 +vt 0.505580484867 0.356326758862 0.000000000000 +vt 0.500341594219 0.348006844521 0.000000000000 +vt 0.481183856726 0.423593431711 0.000000000000 +vt 0.500625789165 0.430742353201 0.000000000000 +vt 0.490146607161 0.420840919018 0.000000000000 +vt 0.498169153929 0.417084664106 0.000000000000 +vt 0.510002553463 0.425448060036 0.000000000000 +vt 0.527178347111 0.433869749308 0.000000000000 +vt 0.503946959972 0.411769419909 0.000000000000 +vt 0.596737325191 0.484501451254 0.000000000000 +vt 0.576489269733 0.474731117487 0.000000000000 +vt 0.606985628605 0.472689867020 0.000000000000 +vt 0.584141671658 0.495642870665 0.000000000000 +vt 0.563076555729 0.485377997160 0.000000000000 +vt 0.546334922314 0.479332834482 0.000000000000 +vt 0.550337493420 0.497008413076 0.000000000000 +vt 0.537908732891 0.494894415140 0.000000000000 +vt 0.526974737644 0.490041226149 0.000000000000 +vt 0.537790954113 0.509640336037 0.000000000000 +vt 0.527427136898 0.525675892830 0.000000000000 +vt 0.605959832668 0.507260859013 0.000000000000 +vt 0.620633423328 0.493587821722 0.000000000000 +vt 0.631438195705 0.478594750166 0.000000000000 +vt 0.817847788334 0.142355754972 0.000000000000 +vt 0.814487040043 0.119411304593 0.000000000000 +vt 0.658278763294 0.481082051992 0.000000000000 +vt 0.811750113964 0.097056999803 0.000000000000 +vt 0.809368431568 0.075157731771 0.000000000000 +vt 0.807133018970 0.053564000875 0.000000000000 +vt 0.831686437130 0.254841685295 0.000000000000 +vt 0.856208741665 0.293983995914 0.000000000000 +vt 0.835455358028 0.290136784315 0.000000000000 +vt 0.873124063015 0.283648252487 0.000000000000 +vt 0.889739573002 0.279546380043 0.000000000000 +vt 0.909207642078 0.276814579964 0.000000000000 +vt 0.929072201252 0.276617109776 0.000000000000 +vt 0.884098351002 0.044427882880 0.000000000000 +vt 0.824312150478 0.028333339840 0.000000000000 +vt 0.804996788502 0.032941136509 0.000000000000 +vt 0.745384037495 0.153986141086 0.000000000000 +vt 0.727315604687 0.170344561338 0.000000000000 +vt 0.831523954868 0.792076110840 0.000000000000 +vt 0.846453726292 0.786361873150 0.000000000000 +vt 0.871971428394 0.766853511333 0.000000000000 +vt 0.860507428646 0.778107702732 0.000000000000 +vt 0.849813520908 0.750272214413 0.000000000000 +vt 0.864782273769 0.752571046352 0.000000000000 +vt 0.641757309437 0.369858145714 0.000000000000 +vt 0.871010005474 0.740061163902 0.000000000000 +vt 0.856036365032 0.728532135487 0.000000000000 +vt 0.833810746670 0.763259589672 0.000000000000 +vt 0.880542218685 0.781249523163 0.000000000000 +vt 0.870216548443 0.805862307549 0.000000000000 +vt 0.895947515965 0.765040814877 0.000000000000 +vt 0.886363804340 0.766362249851 0.000000000000 +vt 0.881665766239 0.753908455372 0.000000000000 +vt 0.896844565868 0.741948008537 0.000000000000 +vt 0.892329037189 0.786806523800 0.000000000000 +vt 0.730150520802 0.779693901539 0.000000000000 +vt 0.720385253429 0.768897235394 0.000000000000 +vt 0.732248246670 0.757981956005 0.000000000000 +vt 0.746850073338 0.773370444775 0.000000000000 +vt 0.746807038784 0.737674295902 0.000000000000 +vt 0.754076421261 0.750202596188 0.000000000000 +vt 0.729847013950 0.741506457329 0.000000000000 +vt 0.766269385815 0.766434729099 0.000000000000 +vt 0.732167899609 0.725132286549 0.000000000000 +vt 0.744101583958 0.727173089981 0.000000000000 +vt 0.726897180080 0.154936745763 0.000000000000 +vt 0.736608207226 0.138647675514 0.000000000000 +vt 0.757733404636 0.048427533358 0.000000000000 +vt 0.748305857182 0.039854753762 0.000000000000 +vt 0.762275159359 0.025697443634 0.000000000000 +vt 0.771673381329 0.029945448041 0.000000000000 +vt 0.737863123417 0.066377580166 0.000000000000 +vt 0.730143487453 0.052494283766 0.000000000000 +vt 0.754568159580 0.099855229259 0.000000000000 +vt 0.731352865696 0.116734221578 0.000000000000 +vt 0.725217759609 0.099748730659 0.000000000000 +vt 0.746904551983 0.081010863185 0.000000000000 +vt 0.718968212605 0.084019616246 0.000000000000 +vt 0.786774814129 0.105366572738 0.000000000000 +vt 0.761492788792 0.119630172849 0.000000000000 +vt 0.781676113605 0.084223598242 0.000000000000 +vt 0.775007426739 0.059413980693 0.000000000000 +vt 0.791212141514 0.126294299960 0.000000000000 +vt 0.767748415470 0.138232484460 0.000000000000 +vt 0.435300618410 0.206924617290 0.000000000000 +vt 0.415769994259 0.205245867372 0.000000000000 +vt 0.415477305651 0.223549634218 0.000000000000 +vt 0.415708750486 0.260153979063 0.000000000000 +vt 0.415216326714 0.241337999701 0.000000000000 +vt 0.431532442570 0.277840822935 0.000000000000 +vt 0.416861325502 0.282650142908 0.000000000000 +vt 0.437933146954 0.297910034657 0.000000000000 +vt 0.422700941563 0.304020076990 0.000000000000 +vt 0.710437953472 0.745294928551 0.000000000000 +vt 0.448528498411 0.274154812098 0.000000000000 +vt 0.453730016947 0.292313814163 0.000000000000 +vt 0.466458499432 0.272584140301 0.000000000000 +vt 0.470066845417 0.288187146187 0.000000000000 +vt 0.483627885580 0.271198511124 0.000000000000 +vt 0.486174434423 0.284226238728 0.000000000000 +vt 0.468398451805 0.256950020790 0.000000000000 +vt 0.484410136938 0.259565204382 0.000000000000 +vt 0.499547928572 0.260835975409 0.000000000000 +vt 0.488594621420 0.251296162605 0.000000000000 +vt 0.500861465931 0.255602240562 0.000000000000 +vt 0.476949125528 0.155961647630 0.000000000000 +vt 0.496368080378 0.154256105423 0.000000000000 +vt 0.493585199118 0.162589550018 0.000000000000 +vt 0.484565943480 0.159969419241 0.000000000000 +vt 0.504522025585 0.250607877970 0.000000000000 +vt 0.490841835737 0.170824587345 0.000000000000 +vt 0.479497641325 0.168406203389 0.000000000000 +vt 0.468820154667 0.165049582720 0.000000000000 +vt 0.487937420607 0.179314747453 0.000000000000 +vt 0.474618524313 0.178034290671 0.000000000000 +vt 0.461312592030 0.176021173596 0.000000000000 +vt 0.485546678305 0.188977956772 0.000000000000 +vt 0.470588952303 0.189741462469 0.000000000000 +vt 0.455546349287 0.189690113068 0.000000000000 +vt 0.484867841005 0.200385212898 0.000000000000 +vt 0.468716144562 0.203217670321 0.000000000000 +vt 0.452557861805 0.205941826105 0.000000000000 +vt 0.486695379019 0.212983325124 0.000000000000 +vt 0.470563501120 0.217475160956 0.000000000000 +vt 0.498891204596 0.197758778930 0.000000000000 +vt 0.500793755054 0.208588525653 0.000000000000 +vt 0.503768861294 0.215860128403 0.000000000000 +vt 0.490694373846 0.221827194095 0.000000000000 +vt 0.476610749960 0.228770300746 0.000000000000 +vt 0.508271515369 0.222307890654 0.000000000000 +vt 0.496900588274 0.229248985648 0.000000000000 +vt 0.485334604979 0.237566873431 0.000000000000 +vt 0.505223691463 0.237320348620 0.000000000000 +vt 0.495418399572 0.244713291526 0.000000000000 +vt 0.475383609533 0.245258644223 0.000000000000 +vt 0.514443337917 0.230237171054 0.000000000000 +vt 0.519902884960 0.237665936351 0.000000000000 +vt 0.511179625988 0.154767423868 0.000000000000 +vt 0.523703515530 0.224226221442 0.000000000000 +vt 0.534955561161 0.219976648688 0.000000000000 +vt 0.539630472660 0.226309135556 0.000000000000 +vt 0.522125780582 0.163012161851 0.000000000000 +vt 0.511400759220 0.162948891521 0.000000000000 +vt 0.502651274204 0.163395151496 0.000000000000 +vt 0.521724998951 0.170782491565 0.000000000000 +vt 0.510841667652 0.171353936195 0.000000000000 +vt 0.501311361790 0.171751782298 0.000000000000 +vt 0.521135985851 0.178479418159 0.000000000000 +vt 0.510029613972 0.179412469268 0.000000000000 +vt 0.499761670828 0.179692775011 0.000000000000 +vt 0.521464765072 0.184219524264 0.000000000000 +vt 0.509710252285 0.186720550060 0.000000000000 +vt 0.498645514250 0.187971740961 0.000000000000 +vt 0.522567331791 0.189815983176 0.000000000000 +vt 0.510646045208 0.194714680314 0.000000000000 +vt 0.552625119686 0.181308269501 0.000000000000 +vt 0.553095877171 0.186058148742 0.000000000000 +vt 0.535693705082 0.186998158693 0.000000000000 +vt 0.534666717052 0.182170838118 0.000000000000 +vt 0.553785145283 0.190441906452 0.000000000000 +vt 0.537737786770 0.193066775799 0.000000000000 +vt 0.524687230587 0.197172924876 0.000000000000 +vt 0.554820120335 0.194571927190 0.000000000000 +vt 0.540497124195 0.200262054801 0.000000000000 +vt 0.527609050274 0.205128788948 0.000000000000 +vt 0.556690990925 0.198639363050 0.000000000000 +vt 0.543533384800 0.206711396575 0.000000000000 +vt 0.531002581120 0.212646707892 0.000000000000 +vt 0.558761537075 0.202166423202 0.000000000000 +vt 0.546805322170 0.212670803070 0.000000000000 +vt 0.550771892071 0.218399211764 0.000000000000 +vt 0.561493337154 0.206085249782 0.000000000000 +vt 0.535221517086 0.163484767079 0.000000000000 +vt 0.552473127842 0.164653763175 0.000000000000 +vt 0.534547865391 0.169898986816 0.000000000000 +vt 0.552217543125 0.170028448105 0.000000000000 +vt 0.534365713596 0.176693260670 0.000000000000 +vt 0.552374064922 0.175845101476 0.000000000000 +vt 0.432602375746 0.133366212249 0.000000000000 +vt 0.579707443714 0.344648867846 0.000000000000 +vt 0.582962691784 0.359227657318 0.000000000000 +vt 0.699510276318 0.760418593884 0.000000000000 +vt 0.690002620220 0.760535240173 0.000000000000 +vt 0.573572456837 0.358697652817 0.000000000000 +vt 0.571034729481 0.348925471306 0.000000000000 +vt 0.795890152454 0.148126482964 0.000000000000 +vt 0.773672997952 0.158082619309 0.000000000000 +vt 0.761886537075 0.368884116411 0.000000000000 +vt 0.756864488125 0.374716073275 0.000000000000 +vt 0.752732694149 0.371530354023 0.000000000000 +vt 0.756020605564 0.368056684732 0.000000000000 +vt 0.745198905468 0.426691144705 0.000000000000 +vt 0.748513877392 0.424927502871 0.000000000000 +vt 0.751336514950 0.428736001253 0.000000000000 +vt 0.745641887188 0.430311173201 0.000000000000 +vt 0.718655884266 0.367600291967 0.000000000000 +vt 0.723707854748 0.362223118544 0.000000000000 +vt 0.731543242931 0.368654459715 0.000000000000 +vt 0.727982223034 0.373404115438 0.000000000000 +vt 0.723776161671 0.384299814701 0.000000000000 +vt 0.712015807629 0.382623314857 0.000000000000 +vt 0.714580357075 0.374560505152 0.000000000000 +vt 0.725447237492 0.378716200590 0.000000000000 +vt 0.743162930012 0.370530217886 0.000000000000 +vt 0.739214956760 0.374083191156 0.000000000000 +vt 0.736095726490 0.364764451981 0.000000000000 +vt 0.470379114151 0.072487622499 0.000000000000 +vt 0.476932018995 0.067091092467 0.000000000000 +vt 0.483967453241 0.075338751078 0.000000000000 +vt 0.477926939726 0.080794483423 0.000000000000 +vt 0.511079013348 0.066174268723 0.000000000000 +vt 0.508617579937 0.072203919291 0.000000000000 +vt 0.499857753515 0.062445472926 0.000000000000 +vt 0.504508316517 0.058762382716 0.000000000000 +vt 0.705864846706 0.371028959751 0.000000000000 +vt 0.701381266117 0.375573486090 0.000000000000 +vt 0.698225557804 0.370354384184 0.000000000000 +vt 0.697068870068 0.367405295372 0.000000000000 +vt 0.701902329922 0.391683101654 0.000000000000 +vt 0.691578447819 0.393901556730 0.000000000000 +vt 0.693959891796 0.392793804407 0.000000000000 +vt 0.699081957340 0.388415664434 0.000000000000 +vt 0.712482511997 0.363048106432 0.000000000000 +vt 0.706260859966 0.399656295776 0.000000000000 +vt 0.710350573063 0.390655279160 0.000000000000 +vt 0.709410727024 0.398413658142 0.000000000000 +vt 0.497506469488 0.086208790541 0.000000000000 +vt 0.499487847090 0.088523834944 0.000000000000 +vt 0.496975511312 0.090857118368 0.000000000000 +vt 0.494485110044 0.087826982141 0.000000000000 +vt 0.485454589128 0.095807611942 0.000000000000 +vt 0.487140089273 0.098796099424 0.000000000000 +vt 0.483731955290 0.100186884403 0.000000000000 +vt 0.481757134199 0.096767678857 0.000000000000 +vt 0.701098263264 0.382279485464 0.000000000000 +vt 0.704454600811 0.381990849972 0.000000000000 +vt 0.505547583103 0.089302882552 0.000000000000 +vt 0.507946908474 0.095191136003 0.000000000000 +vt 0.725627362728 0.354063272476 0.000000000000 +vt 0.730535089970 0.352071553469 0.000000000000 +vt 0.733845055103 0.356517255306 0.000000000000 +vt 0.729133427143 0.358981132507 0.000000000000 +vt 0.502358973026 0.098305702209 0.000000000000 +vt 0.499749034643 0.094421327114 0.000000000000 +vt 0.491939753294 0.100965470076 0.000000000000 +vt 0.499274820089 0.102383270860 0.000000000000 +vt 0.709335625172 0.404707193375 0.000000000000 +vt 0.707483947277 0.405635058880 0.000000000000 +vt 0.516392290592 0.069226473570 0.000000000000 +vt 0.518077909946 0.071355760098 0.000000000000 +vt 0.718284785748 0.355620443821 0.000000000000 +vt 0.516956746578 0.073715612292 0.000000000000 +vt 0.514483392239 0.070643588901 0.000000000000 +vt 0.668390452862 0.386624544859 0.000000000000 +vt 0.667060911655 0.380806088448 0.000000000000 +vt 0.671376407146 0.380861908197 0.000000000000 +vt 0.671312749386 0.384570688009 0.000000000000 +vt 0.669187486172 0.375094115734 0.000000000000 +vt 0.671998560429 0.377249538898 0.000000000000 +vt 0.691448748112 0.370133042336 0.000000000000 +vt 0.690848052502 0.375890284777 0.000000000000 +vt 0.686910808086 0.375525057316 0.000000000000 +vt 0.687306106091 0.369519740343 0.000000000000 +vt 0.686368644238 0.386486738920 0.000000000000 +vt 0.689943373203 0.386325776577 0.000000000000 +vt 0.688951313496 0.392648577690 0.000000000000 +vt 0.685665905476 0.393045514822 0.000000000000 +vt 0.690709650517 0.381118148565 0.000000000000 +vt 0.686853349209 0.380862385035 0.000000000000 +vt 0.480086654425 0.100869327784 0.000000000000 +vt 0.478839308023 0.098695233464 0.000000000000 +vt 0.678826630116 0.369220048189 0.000000000000 +vt 0.679812729359 0.375340670347 0.000000000000 +vt 0.675520837307 0.375914126635 0.000000000000 +vt 0.673433959484 0.370380729437 0.000000000000 +vt 0.674808919430 0.385995447636 0.000000000000 +vt 0.679343521595 0.386584460735 0.000000000000 +vt 0.678030192852 0.392984062433 0.000000000000 +vt 0.672598540783 0.391514003277 0.000000000000 +vt 0.680286943913 0.380828380585 0.000000000000 +vt 0.675836026669 0.380848854780 0.000000000000 +vt 0.515295088291 0.075423642993 0.000000000000 +vt 0.513281047344 0.073069870472 0.000000000000 +vt 0.693681657314 0.376642733812 0.000000000000 +vt 0.693711340427 0.371875762939 0.000000000000 +vt 0.696114480495 0.370918631554 0.000000000000 +vt 0.696933090687 0.376871287823 0.000000000000 +vt 0.691533505917 0.391513794661 0.000000000000 +vt 0.692914068699 0.386218369007 0.000000000000 +vt 0.695932805538 0.386784404516 0.000000000000 +vt 0.693213999271 0.392598807812 0.000000000000 +vt 0.693558990955 0.381606072187 0.000000000000 +vt 0.696726262569 0.381991982460 0.000000000000 +vt 0.512632310390 0.113346979022 0.000000000000 +vt 0.510703504086 0.110827267170 0.000000000000 +vt 0.515379965305 0.107007056475 0.000000000000 +vt 0.518175065517 0.110701844096 0.000000000000 +vt 0.505509078503 0.114236339927 0.000000000000 +vt 0.508307397366 0.117514595389 0.000000000000 +vt 0.518149077892 0.121353730559 0.000000000000 +vt 0.522928655148 0.117672875524 0.000000000000 +vt 0.525190651417 0.121514260769 0.000000000000 +vt 0.683571517467 0.375538796186 0.000000000000 +vt 0.683092653751 0.370623677969 0.000000000000 +vt 0.682278931141 0.392029613256 0.000000000000 +vt 0.683356225491 0.386358857155 0.000000000000 +vt 0.684057652950 0.380769610405 0.000000000000 +vt 0.519570291042 0.123483464122 0.000000000000 +vt 0.516307771206 0.128428325057 0.000000000000 +vt 0.513406455517 0.124672070146 0.000000000000 +vt 0.511565864086 0.103494629264 0.000000000000 +vt 0.507416427135 0.106189742684 0.000000000000 +vt 0.506013691425 0.103982776403 0.000000000000 +vt 0.509203732014 0.102665841579 0.000000000000 +vt 0.504296243191 0.108756288886 0.000000000000 +vt 0.503382742405 0.106384947896 0.000000000000 +vt 0.511651098728 0.106469616294 0.000000000000 +vt 0.509026229382 0.108525276184 0.000000000000 +vt 0.506196796894 0.110484585166 0.000000000000 +vt 0.518708407879 0.115314379334 0.000000000000 +vt 0.515459358692 0.117382884026 0.000000000000 +vt 0.514127433300 0.115409389138 0.000000000000 +vt 0.518203437328 0.112691774964 0.000000000000 +vt 0.512567102909 0.119688019156 0.000000000000 +vt 0.511780798435 0.117559626698 0.000000000000 +vt 0.519389688969 0.117316469550 0.000000000000 +vt 0.516777694225 0.119350507855 0.000000000000 +vt 0.514133274555 0.121143206954 0.000000000000 +vt 0.510631144047 0.099778667092 0.000000000000 +vt 0.504632174969 0.101817682385 0.000000000000 +vt 0.499871104956 0.106421664357 0.000000000000 +vt 0.500889837742 0.111934348941 0.000000000000 +vt 0.514839589596 0.101724907756 0.000000000000 +vt 0.509192049503 0.122385606170 0.000000000000 +vt 0.522657573223 0.113145455718 0.000000000000 +vt 0.522569835186 0.127797886729 0.000000000000 +vt 0.521396934986 0.126231938601 0.000000000000 +vt 0.735525667667 0.349380731583 0.000000000000 +vt 0.738029062748 0.353152751923 0.000000000000 +vt 0.709487140179 0.411515235901 0.000000000000 +vt 0.706850707531 0.412472575903 0.000000000000 +vt 0.713795721531 0.355628103018 0.000000000000 +vt 0.714886367321 0.349705845118 0.000000000000 +vt 0.715047299862 0.346170902252 0.000000000000 +vt 0.700704872608 0.366192162037 0.000000000000 +vt 0.705918371677 0.365258455276 0.000000000000 +vt 0.710480749607 0.361039042473 0.000000000000 +vt 0.523268878460 0.125216260552 0.000000000000 +vt 0.523997724056 0.126300171018 0.000000000000 +vt 0.687866628170 0.342219889164 0.000000000000 +vt 0.691187441349 0.337702393532 0.000000000000 +vt 0.693574011326 0.340425401926 0.000000000000 +vt 0.690801203251 0.342919677496 0.000000000000 +vt 0.696296155453 0.334926456213 0.000000000000 +vt 0.696642935276 0.338050007820 0.000000000000 +vt 0.711912453175 0.345587313175 0.000000000000 +vt 0.707153379917 0.348584800959 0.000000000000 +vt 0.704814493656 0.344684004784 0.000000000000 +vt 0.710185706615 0.341764390469 0.000000000000 +vt 0.695865690708 0.351892799139 0.000000000000 +vt 0.699073016644 0.355076700449 0.000000000000 +vt 0.695596873760 0.359068036079 0.000000000000 +vt 0.692301213741 0.356082707644 0.000000000000 +vt 0.702675044537 0.351823449135 0.000000000000 +vt 0.699874341488 0.348093301058 0.000000000000 +vt 0.520938813686 0.128895744681 0.000000000000 +vt 0.520082056522 0.127839773893 0.000000000000 +vt 0.705446422100 0.335541337729 0.000000000000 +vt 0.701623976231 0.340389162302 0.000000000000 +vt 0.699281990528 0.338887810707 0.000000000000 +vt 0.701398193836 0.333822280169 0.000000000000 +vt 0.691363513470 0.345513224602 0.000000000000 +vt 0.692718684673 0.347970575094 0.000000000000 +vt 0.688071906567 0.350903898478 0.000000000000 +vt 0.686495840549 0.347062766552 0.000000000000 +vt 0.697414934635 0.344720244408 0.000000000000 +vt 0.695644319057 0.342764317989 0.000000000000 +vt 0.526300132275 0.132303252816 0.000000000000 +vt 0.524093449116 0.129697531462 0.000000000000 +vt 0.709353864193 0.352346479893 0.000000000000 +vt 0.712929904461 0.348732739687 0.000000000000 +vt 0.714268267155 0.349192053080 0.000000000000 +vt 0.711979806423 0.354660391808 0.000000000000 +vt 0.699490010738 0.361016511917 0.000000000000 +vt 0.702696144581 0.358416646719 0.000000000000 +vt 0.704991638660 0.361978620291 0.000000000000 +vt 0.700050175190 0.364112406969 0.000000000000 +vt 0.705978453159 0.355808466673 0.000000000000 +vt 0.708694994450 0.358966708183 0.000000000000 +vt 0.525715887547 0.126499876380 0.000000000000 +vt 0.528771936893 0.126690357924 0.000000000000 +vt 0.523779094219 0.124067738652 0.000000000000 +vt 0.520451605320 0.124855801463 0.000000000000 +vt 0.518978536129 0.127953931689 0.000000000000 +vt 0.520814955235 0.130581036210 0.000000000000 +vt 0.520374357700 0.133407860994 0.000000000000 +vt 0.508442223072 0.077186152339 0.000000000000 +vt 0.510329902172 0.079375565052 0.000000000000 +vt 0.703039348125 0.342263132334 0.000000000000 +vt 0.707691013813 0.338801592588 0.000000000000 +vt 0.691107928753 0.352693885565 0.000000000000 +vt 0.694404184818 0.349684000015 0.000000000000 +vt 0.698663651943 0.346254229546 0.000000000000 +vt 0.508014619350 0.081564977765 0.000000000000 +vt 0.505533874035 0.078727111220 0.000000000000 +vt 0.494260638952 0.093220800161 0.000000000000 +vt 0.492302030325 0.090663939714 0.000000000000 +vt 0.505529224873 0.083532154560 0.000000000000 +vt 0.503514945507 0.081306725740 0.000000000000 +vt 0.510711610317 0.084656804800 0.000000000000 +vt 0.514165699482 0.088350698352 0.000000000000 +vt 0.511911690235 0.093188375235 0.000000000000 +vt 0.527652680874 0.098926231265 0.000000000000 +vt 0.525356113911 0.097472637892 0.000000000000 +vt 0.528094470501 0.091692224145 0.000000000000 +vt 0.531258046627 0.093997821212 0.000000000000 +vt 0.521796643734 0.102959886193 0.000000000000 +vt 0.525596559048 0.105276063085 0.000000000000 +vt 0.534857928753 0.104219183326 0.000000000000 +vt 0.537856757641 0.099045574665 0.000000000000 +vt 0.540888249874 0.101543441415 0.000000000000 +vt 0.536647617817 0.105644643307 0.000000000000 +vt 0.534925162792 0.111184135079 0.000000000000 +vt 0.531729161739 0.109336286783 0.000000000000 +vt 0.523591578007 0.091089487076 0.000000000000 +vt 0.730021059513 0.349459081888 0.000000000000 +vt 0.735328376293 0.349237293005 0.000000000000 +vt 0.715811312199 0.346691012383 0.000000000000 +vt 0.720742166042 0.350149869919 0.000000000000 +vt 0.725372970104 0.349892735481 0.000000000000 +vt 0.521666467190 0.094739928842 0.000000000000 +vt 0.520136296749 0.093459248543 0.000000000000 +vt 0.731795966625 0.325470387936 0.000000000000 +vt 0.736351430416 0.326853275299 0.000000000000 +vt 0.734878718853 0.329794704914 0.000000000000 +vt 0.732054173946 0.328241348267 0.000000000000 +vt 0.739810764790 0.330046653748 0.000000000000 +vt 0.737516939640 0.331477284431 0.000000000000 +vt 0.737019240856 0.345520436764 0.000000000000 +vt 0.732173502445 0.343047350645 0.000000000000 +vt 0.734046399593 0.340439140797 0.000000000000 +vt 0.738021910191 0.343094855547 0.000000000000 +vt 0.725114047527 0.336557924747 0.000000000000 +vt 0.723978340626 0.339484244585 0.000000000000 +vt 0.718742549419 0.338676393032 0.000000000000 +vt 0.720449268818 0.335456222296 0.000000000000 +vt 0.728333771229 0.341184616089 0.000000000000 +vt 0.729620277882 0.338552564383 0.000000000000 +vt 0.521848857403 0.090589866042 0.000000000000 +vt 0.519341766834 0.098529517651 0.000000000000 +vt 0.741242706776 0.337124168873 0.000000000000 +vt 0.736575305462 0.336675226688 0.000000000000 +vt 0.737431108952 0.333985060453 0.000000000000 +vt 0.741768896580 0.333650708199 0.000000000000 +vt 0.730156362057 0.329479277134 0.000000000000 +vt 0.728279173374 0.331620484591 0.000000000000 +vt 0.724462211132 0.328425318003 0.000000000000 +vt 0.727317392826 0.325960755348 0.000000000000 +vt 0.732129871845 0.334760516882 0.000000000000 +vt 0.733519494534 0.332428127527 0.000000000000 +vt 0.518350422382 0.096643164754 0.000000000000 +vt 0.524855554104 0.092653632164 0.000000000000 +vt 0.731151521206 0.345263779163 0.000000000000 +vt 0.735784590244 0.347043156624 0.000000000000 +vt 0.736424624920 0.348627597094 0.000000000000 +vt 0.730661809444 0.347184121609 0.000000000000 +vt 0.718040287495 0.341615349054 0.000000000000 +vt 0.723183095455 0.342720180750 0.000000000000 +vt 0.721934854984 0.345855712891 0.000000000000 +vt 0.715493619442 0.344276010990 0.000000000000 +vt 0.727172791958 0.344054907560 0.000000000000 +vt 0.726349413395 0.346510440111 0.000000000000 +vt 0.523354947567 0.096010923386 0.000000000000 +vt 0.521311223507 0.099254280329 0.000000000000 +vt 0.533330857754 0.097978785634 0.000000000000 +vt 0.531335532665 0.101454958320 0.000000000000 +vt 0.529585421085 0.100170671940 0.000000000000 +vt 0.531549036503 0.097181737423 0.000000000000 +vt 0.529571712017 0.105359822512 0.000000000000 +vt 0.528426826000 0.103743880987 0.000000000000 +vt 0.534639537334 0.099621966481 0.000000000000 +vt 0.735392153263 0.338480740786 0.000000000000 +vt 0.739044845104 0.340150952339 0.000000000000 +vt 0.723158061504 0.331868380308 0.000000000000 +vt 0.726885974407 0.334070175886 0.000000000000 +vt 0.730814039707 0.336822479963 0.000000000000 +vt 0.533084571362 0.102829977870 0.000000000000 +vt 0.531313717365 0.105897054076 0.000000000000 +vt 0.521283328533 0.087026789784 0.000000000000 +vt 0.517856895924 0.091663181782 0.000000000000 +vt 0.514960706234 0.097525775433 0.000000000000 +vt 0.517828285694 0.100980103016 0.000000000000 +vt 0.526034533978 0.087389066815 0.000000000000 +vt 0.527589142323 0.109247803688 0.000000000000 +vt 0.535756528378 0.095117062330 0.000000000000 +vt 0.539837419987 0.107863321900 0.000000000000 +vt 0.538558781147 0.107128873467 0.000000000000 +vt 0.539949953556 0.105316147208 0.000000000000 +vt 0.540825903416 0.105864629149 0.000000000000 +vt 0.538582384586 0.109620437026 0.000000000000 +vt 0.537616670132 0.109082773328 0.000000000000 +vt 0.544267117977 0.110548302531 0.000000000000 +vt 0.541652381420 0.108950823545 0.000000000000 +vt 0.542387545109 0.105380535126 0.000000000000 +vt 0.545064866543 0.104814276099 0.000000000000 +vt 0.540196716785 0.104028716683 0.000000000000 +vt 0.537597596645 0.106465324759 0.000000000000 +vt 0.536735951900 0.109748318791 0.000000000000 +vt 0.701508939266 0.396991372108 0.000000000000 +vt 0.695306599140 0.396085560322 0.000000000000 +vt 0.705828607082 0.412745684385 0.000000000000 +vt 0.705876052380 0.406576901674 0.000000000000 +vt 0.704530298710 0.401503235102 0.000000000000 +vt 0.538923561573 0.111143380404 0.000000000000 +vt 0.539531409740 0.113621219993 0.000000000000 +vt 0.688302695751 0.427976310253 0.000000000000 +vt 0.683832943439 0.424098700285 0.000000000000 +vt 0.687000572681 0.421046495438 0.000000000000 +vt 0.689052641392 0.424283087254 0.000000000000 +vt 0.681496918201 0.418339222670 0.000000000000 +vt 0.684903800488 0.417768895626 0.000000000000 +vt 0.690302073956 0.401867091656 0.000000000000 +vt 0.694480240345 0.405638903379 0.000000000000 +vt 0.692191779613 0.407944500446 0.000000000000 +vt 0.687600672245 0.404441058636 0.000000000000 +vt 0.699370443821 0.415826499462 0.000000000000 +vt 0.700973808765 0.413097828627 0.000000000000 +vt 0.704431712627 0.417759448290 0.000000000000 +vt 0.703326642513 0.420762330294 0.000000000000 +vt 0.697867929935 0.408945530653 0.000000000000 +vt 0.695929110050 0.411309421062 0.000000000000 +vt 0.517626106739 0.084983274341 0.000000000000 +vt 0.521136224270 0.070760220289 0.000000000000 +vt 0.683233559132 0.409444689751 0.000000000000 +vt 0.688319623470 0.412122905254 0.000000000000 +vt 0.686133563519 0.414829730988 0.000000000000 +vt 0.680900275707 0.412907809019 0.000000000000 +vt 0.692204892635 0.422975838184 0.000000000000 +vt 0.695665299892 0.420329362154 0.000000000000 +vt 0.698658287525 0.425916135311 0.000000000000 +vt 0.694272696972 0.428446441889 0.000000000000 +vt 0.692554771900 0.415226012468 0.000000000000 +vt 0.689908921719 0.417935758829 0.000000000000 +vt 0.523216187954 0.072577908635 0.000000000000 +vt 0.520890176296 0.077228039503 0.000000000000 +vt 0.697199761868 0.403361231089 0.000000000000 +vt 0.693439781666 0.400654852390 0.000000000000 +vt 0.693814694881 0.397902786732 0.000000000000 +vt 0.699269115925 0.401036739349 0.000000000000 +vt 0.704553306103 0.414974272251 0.000000000000 +vt 0.702452123165 0.410426139832 0.000000000000 +vt 0.703826010227 0.408506244421 0.000000000000 +vt 0.705401599407 0.414679765701 0.000000000000 +vt 0.700053751469 0.406474679708 0.000000000000 +vt 0.701919615269 0.404333680868 0.000000000000 +vt 0.519232571125 0.075901642442 0.000000000000 +vt 0.515266001225 0.080151677132 0.000000000000 +vt 0.519640505314 0.081991866231 0.000000000000 +vt 0.533958613873 0.080200076103 0.000000000000 +vt 0.531604349613 0.079964339733 0.000000000000 +vt 0.532588779926 0.075347989798 0.000000000000 +vt 0.535456359386 0.075775325298 0.000000000000 +vt 0.531062185764 0.084430292249 0.000000000000 +vt 0.534919083118 0.084616497159 0.000000000000 +vt 0.690639078617 0.410164058208 0.000000000000 +vt 0.686743676662 0.408009111881 0.000000000000 +vt 0.700886189938 0.422482520342 0.000000000000 +vt 0.697773873806 0.417764842510 0.000000000000 +vt 0.694584786892 0.413028031588 0.000000000000 +vt 0.543268382549 0.081021666527 0.000000000000 +vt 0.542410075665 0.076548516750 0.000000000000 +vt 0.545253694057 0.076710179448 0.000000000000 +vt 0.544744908810 0.081107899547 0.000000000000 +vt 0.545586764812 0.085359513760 0.000000000000 +vt 0.542715609074 0.085166096687 0.000000000000 +vt 0.528137505054 0.076546490192 0.000000000000 +vt 0.526995480061 0.079263880849 0.000000000000 +vt 0.524926722050 0.078719690442 0.000000000000 +vt 0.526245653629 0.076403737068 0.000000000000 +vt 0.526619493961 0.081934899092 0.000000000000 +vt 0.524678170681 0.081073686481 0.000000000000 +vt 0.529789626598 0.077268108726 0.000000000000 +vt 0.529239356518 0.079652726650 0.000000000000 +vt 0.528736531734 0.081992313266 0.000000000000 +vt 0.539014041424 0.077833026648 0.000000000000 +vt 0.539221823215 0.080529257655 0.000000000000 +vt 0.536268293858 0.080332249403 0.000000000000 +vt 0.536676228046 0.078035444021 0.000000000000 +vt 0.539300858974 0.083174824715 0.000000000000 +vt 0.536652386189 0.082537859678 0.000000000000 +vt 0.541114032269 0.078451976180 0.000000000000 +vt 0.541567981243 0.080870822072 0.000000000000 +vt 0.541349947453 0.083064511418 0.000000000000 +vt 0.525810420513 0.073440477252 0.000000000000 +vt 0.522990167141 0.078078895807 0.000000000000 +vt 0.522753298283 0.083092421293 0.000000000000 +vt 0.744985520840 0.358051896095 0.000000000000 +vt 0.740702569485 0.361511409283 0.000000000000 +vt 0.737015068531 0.377986699343 0.000000000000 +vt 0.527110517025 0.085661664605 0.000000000000 +vt 0.529920637608 0.072953239083 0.000000000000 +vt 0.539422690868 0.086372941732 0.000000000000 +vt 0.720288455486 0.404917716980 0.000000000000 +vt 0.725336492062 0.406646698713 0.000000000000 +vt 0.719956338406 0.413258612156 0.000000000000 +vt 0.717335283756 0.410958647728 0.000000000000 +vt 0.723915517330 0.398037433624 0.000000000000 +vt 0.731581389904 0.399601578712 0.000000000000 +vt 0.741063773632 0.398945480585 0.000000000000 +vt 0.741147696972 0.402583092451 0.000000000000 +vt 0.735348403454 0.405078500509 0.000000000000 +vt 0.724570930004 0.415234774351 0.000000000000 +vt 0.730074822903 0.409371733665 0.000000000000 +vt 0.755069792271 0.423953682184 0.000000000000 +vt 0.751188337803 0.423076480627 0.000000000000 +vt 0.732347548008 0.419561594725 0.000000000000 +vt 0.728611052036 0.417487025261 0.000000000000 +vt 0.734247624874 0.412292242050 0.000000000000 +vt 0.737663686275 0.415086418390 0.000000000000 +vt 0.739005625248 0.408245295286 0.000000000000 +vt 0.742154181004 0.411730021238 0.000000000000 +vt 0.728346526623 0.424829334021 0.000000000000 +vt 0.724365770817 0.423212945461 0.000000000000 +vt 0.539046466351 0.074854224920 0.000000000000 +vt 0.547604382038 0.081218689680 0.000000000000 +vt 0.744521200657 0.403573781252 0.000000000000 +vt 0.746637046337 0.406587243080 0.000000000000 +vt 0.546402513981 0.081313252449 0.000000000000 +vt 0.546436250210 0.079620987177 0.000000000000 +vt 0.547303736210 0.079606115818 0.000000000000 +vt 0.547511637211 0.082779005170 0.000000000000 +vt 0.546545684338 0.082813456655 0.000000000000 +vt 0.551446378231 0.080884099007 0.000000000000 +vt 0.719365775585 0.420285463333 0.000000000000 +vt 0.548926889896 0.081119611859 0.000000000000 +vt 0.547964394093 0.078651010990 0.000000000000 +vt 0.549326121807 0.076903134584 0.000000000000 +vt 0.546006023884 0.078606888652 0.000000000000 +vt 0.545527517796 0.081211924553 0.000000000000 +vt 0.740861833096 0.424791932106 0.000000000000 +vt 0.744636476040 0.421375900507 0.000000000000 +vt 0.748865187168 0.419236689806 0.000000000000 +vt 0.738058149815 0.430005639791 0.000000000000 +vt 0.546189963818 0.083545655012 0.000000000000 +vt 0.548156440258 0.083578765392 0.000000000000 +vt 0.549798786640 0.085083246231 0.000000000000 +vt 0.493128985167 0.107532128692 0.000000000000 +vt 0.487130194902 0.108177408576 0.000000000000 +vt 0.484787672758 0.104095578194 0.000000000000 +vt 0.754294574261 0.415865898132 0.000000000000 +vt 0.741011559963 0.418052166700 0.000000000000 +vt 0.736329138279 0.422021627426 0.000000000000 +vt 0.745218575001 0.415226459503 0.000000000000 +vt 0.732700407505 0.426749676466 0.000000000000 +vt 0.477795451880 0.104249805212 0.000000000000 +vt 0.480690747499 0.109506055713 0.000000000000 +vt 0.493065744638 0.123880639672 0.000000000000 +vt 0.492350906134 0.121099308133 0.000000000000 +vt 0.498245447874 0.118749126792 0.000000000000 +vt 0.499274820089 0.122994199395 0.000000000000 +vt 0.749212324619 0.411244809628 0.000000000000 +vt 0.486499279737 0.122255474329 0.000000000000 +vt 0.487754553556 0.125899389386 0.000000000000 +vt 0.495414823294 0.131725952029 0.000000000000 +vt 0.501138865948 0.129815727472 0.000000000000 +vt 0.501795589924 0.132985696197 0.000000000000 +vt 0.496015042067 0.133395478129 0.000000000000 +vt 0.491779893637 0.137110754848 0.000000000000 +vt 0.490246385336 0.133341893554 0.000000000000 +vt 0.493753403425 0.114416465163 0.000000000000 +vt 0.490512460470 0.116016864777 0.000000000000 +vt 0.716776549816 0.397952318192 0.000000000000 +vt 0.722395479679 0.390428304672 0.000000000000 +vt 0.748906552792 0.386245161295 0.000000000000 +vt 0.748211801052 0.394017070532 0.000000000000 +vt 0.743617475033 0.387832283974 0.000000000000 +vt 0.743471086025 0.384143799543 0.000000000000 +vt 0.735934555531 0.381866127253 0.000000000000 +vt 0.489763349295 0.113667383790 0.000000000000 +vt 0.714425027370 0.404076099396 0.000000000000 +vt 0.492669016123 0.112787023187 0.000000000000 +vt 0.487121194601 0.117388963699 0.000000000000 +vt 0.486971467733 0.115077972412 0.000000000000 +vt 0.494484215975 0.116980090737 0.000000000000 +vt 0.491517156363 0.118607267737 0.000000000000 +vt 0.488306194544 0.119425490499 0.000000000000 +vt 0.498060315847 0.127201452851 0.000000000000 +vt 0.713693201542 0.410189747810 0.000000000000 +vt 0.735486447811 0.385052949190 0.000000000000 +vt 0.746610701084 0.396617144346 0.000000000000 +vt 0.494058936834 0.127958431840 0.000000000000 +vt 0.493515819311 0.126024797559 0.000000000000 +vt 0.496876925230 0.125608488917 0.000000000000 +vt 0.490766674280 0.128856346011 0.000000000000 +vt 0.743014752865 0.389892905951 0.000000000000 +vt 0.735056340694 0.387602627277 0.000000000000 +vt 0.727178633213 0.392949610949 0.000000000000 +vt 0.733748018742 0.392339646816 0.000000000000 +vt 0.739848792553 0.392785251141 0.000000000000 +vt 0.747750461102 0.374964654446 0.000000000000 +vt 0.490720719099 0.127026960254 0.000000000000 +vt 0.750498473644 0.379568845034 0.000000000000 +vt 0.752317011356 0.363459676504 0.000000000000 +vt 0.747864067554 0.366984248161 0.000000000000 +vt 0.743768513203 0.380047321320 0.000000000000 +vt 0.743770778179 0.376911133528 0.000000000000 +vt 0.716933429241 0.416927278042 0.000000000000 +vt 0.497924119234 0.128914669156 0.000000000000 +vt 0.494692295790 0.129884406924 0.000000000000 +vt 0.491763919592 0.130519121885 0.000000000000 +vt 0.495831340551 0.110157430172 0.000000000000 +vt 0.489241451025 0.111455008388 0.000000000000 +vt 0.483312696218 0.114056900144 0.000000000000 +vt 0.482924073935 0.118979677558 0.000000000000 +vt 0.499466627836 0.113667383790 0.000000000000 +vt 0.487026840448 0.130218312144 0.000000000000 +vt 0.502736389637 0.126097753644 0.000000000000 +vt 0.497383981943 0.137650460005 0.000000000000 +vt 0.496828526258 0.135942205787 0.000000000000 +vt 0.498790949583 0.135475009680 0.000000000000 +vt 0.489594787359 0.354463160038 0.000000000000 +vt 0.493529766798 0.348664730787 0.000000000000 +vt 0.466066062450 0.416784971952 0.000000000000 +vt 0.492370694876 0.361383527517 0.000000000000 +vt 0.500243246555 0.364317297935 0.000000000000 +vt 0.494832962751 0.368273258209 0.000000000000 +vt 0.503132641315 0.370268374681 0.000000000000 +vt 0.497408539057 0.374473363161 0.000000000000 +vt 0.505711734295 0.374342322350 0.000000000000 +vt 0.501966536045 0.380494236946 0.000000000000 +vt 0.502037703991 0.387555330992 0.000000000000 +vt 0.500600278378 0.394303470850 0.000000000000 +vt 0.497024863958 0.400832056999 0.000000000000 +vt 0.490292042494 0.406675279140 0.000000000000 +vt 0.490373104811 0.412000209093 0.000000000000 +vt 0.478659600019 0.408653289080 0.000000000000 +vt 0.483080357313 0.413705527782 0.000000000000 +vt 0.483867734671 0.400707095861 0.000000000000 +vt 0.475096553564 0.403399050236 0.000000000000 +vt 0.490063995123 0.397259533405 0.000000000000 +vt 0.493380278349 0.393484354019 0.000000000000 +vt 0.495144337416 0.389038652182 0.000000000000 +vt 0.495407789946 0.384074211121 0.000000000000 +vt 0.493809431791 0.377649396658 0.000000000000 +vt 0.491057127714 0.371400237083 0.000000000000 +vt 0.488305300474 0.365160942078 0.000000000000 +vt 0.485417455435 0.358706206083 0.000000000000 +vt 0.499160021544 0.136612713337 0.000000000000 +vt 0.495681852102 0.138441428542 0.000000000000 +vt 0.495292752981 0.137186184525 0.000000000000 +vt 0.499904841185 0.142935067415 0.000000000000 +vt 0.512892186642 0.203441917896 0.000000000000 +vt 0.515536010265 0.210260972381 0.000000000000 +vt 0.519058048725 0.216575443745 0.000000000000 +vt 0.498339504004 0.139838293195 0.000000000000 +vt 0.500721871853 0.137117296457 0.000000000000 +vt 0.503684222698 0.138030976057 0.000000000000 +vt 0.499697417021 0.134602531791 0.000000000000 +vt 0.496406823397 0.134647563100 0.000000000000 +vt 0.494290322065 0.137108504772 0.000000000000 +vt 0.495159000158 0.139991164207 0.000000000000 +vt 0.493990033865 0.142434999347 0.000000000000 +vt 0.486728996038 0.090575456619 0.000000000000 +vt 0.478315383196 0.092991143465 0.000000000000 +vt 0.474077731371 0.098476827145 0.000000000000 +vt 0.498264402151 0.081063106656 0.000000000000 +vt 0.490895956755 0.083478346467 0.000000000000 +vt 0.501754701138 0.074368119240 0.000000000000 +vt 0.516297876835 0.064490333200 0.000000000000 +vt 0.489585071802 0.070763155818 0.000000000000 +vt 0.494673103094 0.066240236163 0.000000000000 +vt 0.470336109400 0.086715623736 0.000000000000 +vt 0.436086863279 0.092820927501 0.000000000000 +vt 0.438066899776 0.090013250709 0.000000000000 +vt 0.444520950317 0.092675030231 0.000000000000 +vt 0.441438585520 0.096161559224 0.000000000000 +vt 0.428543061018 0.092088505626 0.000000000000 +vt 0.430847972631 0.087048172951 0.000000000000 +vt 0.445708662271 0.087137565017 0.000000000000 +vt 0.440775513649 0.085114762187 0.000000000000 +vt 0.441083967686 0.081669896841 0.000000000000 +vt 0.445867836475 0.084105402231 0.000000000000 +vt 0.434993296862 0.082800179720 0.000000000000 +vt 0.435679793358 0.079566493630 0.000000000000 +vt 0.443775683641 0.089068949223 0.000000000000 +vt 0.439778298140 0.087716892362 0.000000000000 +vt 0.435482561588 0.085728764534 0.000000000000 +vt 0.449968576431 0.082234129310 0.000000000000 +vt 0.441662847996 0.076967298985 0.000000000000 +vt 0.431835711002 0.073218241334 0.000000000000 +vt 0.428974449635 0.081223636866 0.000000000000 +vt 0.450840383768 0.089633405209 0.000000000000 +vt 0.429250478745 0.110776379704 0.000000000000 +vt 0.428867727518 0.107335552573 0.000000000000 +vt 0.431848555803 0.108271300793 0.000000000000 +vt 0.431623846292 0.110644668341 0.000000000000 +vt 0.427443832159 0.110487952828 0.000000000000 +vt 0.426816552877 0.108107388020 0.000000000000 +vt 0.437157928944 0.099945515394 0.000000000000 +vt 0.433482289314 0.098722696304 0.000000000000 +vt 0.434810459614 0.095693901181 0.000000000000 +vt 0.437838792801 0.097269997001 0.000000000000 +vt 0.429327040911 0.097964599729 0.000000000000 +vt 0.431027412415 0.095057398081 0.000000000000 +vt 0.435632973909 0.102705463767 0.000000000000 +vt 0.431967437267 0.102064222097 0.000000000000 +vt 0.428185939789 0.101327285171 0.000000000000 +vt 0.424739956856 0.097438409925 0.000000000000 +vt 0.424326807261 0.104374542832 0.000000000000 +vt 0.430121839046 0.103951931000 0.000000000000 +vt 0.436985909939 0.106490775943 0.000000000000 +vt 0.440761536360 0.101641386747 0.000000000000 +vt 0.429635047913 0.115833595395 0.000000000000 +vt 0.429685264826 0.112943276763 0.000000000000 +vt 0.432830691338 0.111719325185 0.000000000000 +vt 0.435101598501 0.113605901599 0.000000000000 +vt 0.434298694134 0.107984006405 0.000000000000 +vt 0.429523140192 0.105171591043 0.000000000000 +vt 0.425729721785 0.106971934438 0.000000000000 +vt 0.426668196917 0.111298739910 0.000000000000 +vt 0.424650788307 0.112406730652 0.000000000000 +vt 0.509388387203 0.055841218680 0.000000000000 +vt 0.498403996229 0.043372806162 0.000000000000 +vt 0.502433478832 0.048159595579 0.000000000000 +vt 0.497449725866 0.051044743508 0.000000000000 +vt 0.492421835661 0.043788667768 0.000000000000 +vt 0.463615030050 0.077348947525 0.000000000000 +vt 0.455456525087 0.070783421397 0.000000000000 +vt 0.464122295380 0.066180795431 0.000000000000 +vt 0.462868630886 0.093436956406 0.000000000000 +vt 0.458721280098 0.092571005225 0.000000000000 +vt 0.459522604942 0.087591469288 0.000000000000 +vt 0.462670952082 0.086979731917 0.000000000000 +vt 0.471514105797 0.060662243515 0.000000000000 +vt 0.482812136412 0.062291014940 0.000000000000 +vt 0.467946112156 0.095136195421 0.000000000000 +vt 0.458524495363 0.080985873938 0.000000000000 +vt 0.452050387859 0.076159223914 0.000000000000 +vt 0.443986207247 0.071658372879 0.000000000000 +vt 0.445354491472 0.066013723612 0.000000000000 +vt 0.436717092991 0.065082713962 0.000000000000 +vt 0.437832713127 0.058958042413 0.000000000000 +vt 0.456312119961 0.084696203470 0.000000000000 +vt 0.455533295870 0.088533744216 0.000000000000 +vt 0.442759126425 0.026406910270 0.000000000000 +vt 0.439107567072 0.033566392958 0.000000000000 +vt 0.433614879847 0.033746067435 0.000000000000 +vt 0.436550229788 0.040571421385 0.000000000000 +vt 0.431009620428 0.041979093105 0.000000000000 +vt 0.436738461256 0.048520524055 0.000000000000 +vt 0.433239340782 0.050523724407 0.000000000000 +vt 0.439432889223 0.056393977255 0.000000000000 +vt 0.444673389196 0.062197577208 0.000000000000 +vt 0.452080547810 0.064230725169 0.000000000000 +vt 0.459633141756 0.061068650335 0.000000000000 +vt 0.466834276915 0.054884534329 0.000000000000 +vt 0.476173490286 0.048398043960 0.000000000000 +vt 0.478311985731 0.055618535727 0.000000000000 +vt 0.487611383200 0.048637155443 0.000000000000 +vt 0.492559403181 0.054551754147 0.000000000000 +vt 0.450314640999 0.028678275645 0.000000000000 +vt 0.445344805717 0.034261446446 0.000000000000 +vt 0.441385686398 0.039831560105 0.000000000000 +vt 0.440092831850 0.046508762985 0.000000000000 +vt 0.441298097372 0.053300123662 0.000000000000 +vt 0.444251447916 0.058152657002 0.000000000000 +vt 0.449525713921 0.059440102428 0.000000000000 +vt 0.455304324627 0.055676858872 0.000000000000 +vt 0.461506903172 0.049404706806 0.000000000000 +vt 0.469306051731 0.042024347931 0.000000000000 +vt 0.487811952829 0.058225836605 0.000000000000 +vt 0.483524292707 0.052073474973 0.000000000000 +vt 0.484311491251 0.046199399978 0.000000000000 +vt 0.481747001410 0.048475492746 0.000000000000 +vt 0.380680233240 0.065514564514 0.000000000000 +vt 0.376588284969 0.059708710760 0.000000000000 +vt 0.380253583193 0.059918548912 0.000000000000 +vt 0.384085476398 0.069081693888 0.000000000000 +vt 0.495234221220 0.099533021450 0.000000000000 +vt 0.383714437485 0.065352901816 0.000000000000 +vt 0.383114397526 0.061096791178 0.000000000000 +vt 0.374451309443 0.073164209723 0.000000000000 +vt 0.372015357018 0.063677519560 0.000000000000 +vt 0.374059766531 0.053939338773 0.000000000000 +vt 0.381692320108 0.054332684726 0.000000000000 +vt 0.383103370667 0.075196906924 0.000000000000 +vt 0.405146718025 0.062567278743 0.000000000000 +vt 0.405029207468 0.064906865358 0.000000000000 +vt 0.403085887432 0.065327689052 0.000000000000 +vt 0.402291089296 0.062788158655 0.000000000000 +vt 0.404567837715 0.060321133584 0.000000000000 +vt 0.402513980865 0.060236703604 0.000000000000 +vt 0.396065324545 0.068468824029 0.000000000000 +vt 0.393785178661 0.067805290222 0.000000000000 +vt 0.392409473658 0.063877239823 0.000000000000 +vt 0.394892245531 0.063695982099 0.000000000000 +vt 0.392374575138 0.059808004647 0.000000000000 +vt 0.394494861364 0.058848392218 0.000000000000 +vt 0.398127049208 0.067958623171 0.000000000000 +vt 0.397333174944 0.063290476799 0.000000000000 +vt 0.396797299385 0.058876764029 0.000000000000 +vt 0.394452542067 0.054397072643 0.000000000000 +vt 0.399751543999 0.055975642055 0.000000000000 +vt 0.399062365294 0.062898263335 0.000000000000 +vt 0.401548743248 0.070496574044 0.000000000000 +vt 0.397002875805 0.072747439146 0.000000000000 +vt 0.410708278418 0.061957109720 0.000000000000 +vt 0.408443450928 0.068036526442 0.000000000000 +vt 0.406104087830 0.065834060311 0.000000000000 +vt 0.407416969538 0.062223013490 0.000000000000 +vt 0.402603596449 0.067001029849 0.000000000000 +vt 0.400384694338 0.062776446342 0.000000000000 +vt 0.401618093252 0.058767784387 0.000000000000 +vt 0.407653838396 0.056897196919 0.000000000000 +vt 0.405660539865 0.059153925627 0.000000000000 +vt 0.342144489288 0.129252389073 0.000000000000 +vt 0.330034285784 0.118232384324 0.000000000000 +vt 0.331073820591 0.111910715699 0.000000000000 +vt 0.337948709726 0.117126211524 0.000000000000 +vt 0.334675848484 0.122342392802 0.000000000000 +vt 0.364498108625 0.084034025669 0.000000000000 +vt 0.353841513395 0.081475362182 0.000000000000 +vt 0.359023243189 0.072227567434 0.000000000000 +vt 0.383939355612 0.087411120534 0.000000000000 +vt 0.376194030046 0.086917132139 0.000000000000 +vt 0.378380954266 0.083674445748 0.000000000000 +vt 0.385140568018 0.082588523626 0.000000000000 +vt 0.348989427090 0.090118840337 0.000000000000 +vt 0.349848628044 0.102441802621 0.000000000000 +vt 0.384516656399 0.092244535685 0.000000000000 +vt 0.368901699781 0.080153703690 0.000000000000 +vt 0.366300255060 0.072573855519 0.000000000000 +vt 0.362025469542 0.061230536550 0.000000000000 +vt 0.366504251957 0.062840163708 0.000000000000 +vt 0.364860385656 0.049893748015 0.000000000000 +vt 0.368391275406 0.052941676229 0.000000000000 +vt 0.375058352947 0.079524159431 0.000000000000 +vt 0.381066381931 0.079621434212 0.000000000000 +vt 0.369406282902 0.023787003011 0.000000000000 +vt 0.363827377558 0.021882418543 0.000000000000 +vt 0.362167745829 0.013727746904 0.000000000000 +vt 0.369875043631 0.032330740243 0.000000000000 +vt 0.363867014647 0.030249182135 0.000000000000 +vt 0.367265045643 0.040660582483 0.000000000000 +vt 0.362684249878 0.039418853819 0.000000000000 +vt 0.360803991556 0.049217607826 0.000000000000 +vt 0.358212471008 0.058879461139 0.000000000000 +vt 0.354023665190 0.067041784525 0.000000000000 +vt 0.349367916584 0.074845895171 0.000000000000 +vt 0.344372838736 0.084569439292 0.000000000000 +vt 0.343579858541 0.097275629640 0.000000000000 +vt 0.337548166513 0.094781354070 0.000000000000 +vt 0.336168199778 0.107096001506 0.000000000000 +vt 0.341732889414 0.112160399556 0.000000000000 +vt 0.358703076839 0.019574124366 0.000000000000 +vt 0.356585264206 0.011583819985 0.000000000000 +vt 0.359179943800 0.028422724456 0.000000000000 +vt 0.358128011227 0.037861227989 0.000000000000 +vt 0.355775833130 0.047059264034 0.000000000000 +vt 0.352667778730 0.055755432695 0.000000000000 +vt 0.348802536726 0.062798514962 0.000000000000 +vt 0.344516932964 0.069515347481 0.000000000000 +vt 0.339693903923 0.078744009137 0.000000000000 +vt 0.334405004978 0.088547706604 0.000000000000 +vt 0.351488649845 0.008813511580 0.000000000000 +vt 0.353146910667 0.017157759517 0.000000000000 +vt 0.344804912806 0.016256015748 0.000000000000 +vt 0.343273401260 0.007860429585 0.000000000000 +vt 0.353605329990 0.026377867907 0.000000000000 +vt 0.345076918602 0.024861443788 0.000000000000 +vt 0.351858347654 0.035421445966 0.000000000000 +vt 0.343469291925 0.032606557012 0.000000000000 +vt 0.329398661852 0.083495229483 0.000000000000 +vt 0.321584880352 0.080222144723 0.000000000000 +vt 0.345637321472 0.107405588031 0.000000000000 +vt 0.339709669352 0.102807238698 0.000000000000 +vt 0.334294229746 0.103572994471 0.000000000000 +vt 0.336519658566 0.100833073258 0.000000000000 +vt 0.331020236015 0.072261109948 0.000000000000 +vt 0.336660385132 0.064951002598 0.000000000000 +vt 0.434932053089 0.026294331998 0.000000000000 +vt 0.340934514999 0.059087056667 0.000000000000 +vt 0.343839913607 0.051737319678 0.000000000000 +vt 0.346170932055 0.042951311916 0.000000000000 +vt 0.340638875961 0.037561997771 0.000000000000 +vt 0.323255330324 0.073237612844 0.000000000000 +vt 0.695959985256 0.741854548454 0.000000000000 +vt 0.714866340160 0.723106801510 0.000000000000 +vt 0.697431623936 0.719995796680 0.000000000000 +vt 0.483988851309 0.041881825775 0.000000000000 +vt 0.839606106281 0.716192245483 0.000000000000 +vt 0.824899375439 0.704895555973 0.000000000000 +vt 0.836511552334 0.689590156078 0.000000000000 +vt 0.848930418491 0.699052095413 0.000000000000 +vt 0.814055740833 0.694797575474 0.000000000000 +vt 0.477539271116 0.036895312369 0.000000000000 +vt 0.826638519764 0.681990265846 0.000000000000 +vt 0.829895794392 0.731659770012 0.000000000000 +vt 0.813143789768 0.716623902321 0.000000000000 +vt 0.801700055599 0.705101132393 0.000000000000 +vt 0.817305624485 0.743863582611 0.000000000000 +vt 0.801387965679 0.725039482117 0.000000000000 +vt 0.789851725101 0.712394773960 0.000000000000 +vt 0.788582026958 0.734670758247 0.000000000000 +vt 0.777517497540 0.721166849136 0.000000000000 +vt 0.803215801716 0.752814412117 0.000000000000 +vt 0.786242902279 0.759428799152 0.000000000000 +vt 0.773034870625 0.741466820240 0.000000000000 +vt 0.763387620449 0.729409098625 0.000000000000 +vt 0.819508969784 0.771108031273 0.000000000000 +vt 0.801594197750 0.778130888939 0.000000000000 +vt 0.780358016491 0.784393787384 0.000000000000 +vt 0.813161194324 0.798096477985 0.000000000000 +vt 0.791216671467 0.802965700626 0.000000000000 +vt 0.768060982227 0.806276857853 0.000000000000 +vt 0.758998692036 0.789613127708 0.000000000000 +vt 0.745742022991 0.808515787125 0.000000000000 +vt 0.739104449749 0.793780505657 0.000000000000 +vt 0.796912372112 0.821695029736 0.000000000000 +vt 0.772977530956 0.822699189186 0.000000000000 +vt 0.749330580235 0.823236882687 0.000000000000 +vt 0.818778097630 0.819741129875 0.000000000000 +vt 0.864375889301 0.710809707642 0.000000000000 +vt 0.880953133106 0.724374651909 0.000000000000 +vt 0.915635168552 0.748171925545 0.000000000000 +vt 0.908841907978 0.766230940819 0.000000000000 +vt 0.905186593533 0.787342846394 0.000000000000 +vt 0.887137472630 0.812209010124 0.000000000000 +vt 0.901950418949 0.812799155712 0.000000000000 +vt 0.716777384281 0.755539953709 0.000000000000 +vt 0.709918677807 0.762999296188 0.000000000000 +vt 0.751775801182 0.171791642904 0.000000000000 +vt 0.779532253742 0.179935947061 0.000000000000 +vt 0.757754266262 0.191265076399 0.000000000000 +vt 0.738353550434 0.202746644616 0.000000000000 +vt 0.733651459217 0.186159908772 0.000000000000 +vt 0.720768034458 0.212536171079 0.000000000000 +vt 0.718448698521 0.197526648641 0.000000000000 +vt 0.715862095356 0.185371875763 0.000000000000 +vt 0.749988734722 0.241413876414 0.000000000000 +vt 0.731017768383 0.248716101050 0.000000000000 +vt 0.725487768650 0.230310603976 0.000000000000 +vt 0.743789970875 0.221092060208 0.000000000000 +vt 0.774173557758 0.257214367390 0.000000000000 +vt 0.754297435284 0.261839717627 0.000000000000 +vt 0.769551694393 0.234550252557 0.000000000000 +vt 0.731539070606 0.269993722439 0.000000000000 +vt 0.763681709766 0.212278813124 0.000000000000 +vt 0.789024770260 0.228903159499 0.000000000000 +vt 0.784669578075 0.203588500619 0.000000000000 +vt 0.812417447567 0.255994260311 0.000000000000 +vt 0.793350636959 0.255872875452 0.000000000000 +vt 0.808808386326 0.224819734693 0.000000000000 +vt 0.805518686771 0.196942374110 0.000000000000 +vt 0.801068723202 0.171566486359 0.000000000000 +vt 0.816036999226 0.293190568686 0.000000000000 +vt 0.796044886112 0.283715814352 0.000000000000 +vt 0.777438461781 0.280535697937 0.000000000000 +vt 0.757886707783 0.282600164413 0.000000000000 +vt 0.739174664021 0.287719726563 0.000000000000 +vt 0.785341441631 0.033302962780 0.000000000000 +vt 0.582609474659 0.124908477068 0.000000000000 +vt 0.581306993961 0.142187565565 0.000000000000 +vt 0.545368969440 0.011624570936 0.000000000000 +vt 0.646641552448 0.018267553300 0.000000000000 +vt 0.606483757496 0.106701299548 0.000000000000 +vt 0.612616598606 0.108521446586 0.000000000000 +vt 0.618627488613 0.111129656434 0.000000000000 +vt 0.665071904659 0.014743648469 0.000000000000 +vt 0.370113700628 0.016160547733 0.000000000000 +vt 0.331191360950 0.103096559644 0.000000000000 +vt 0.330383718014 0.097089871764 0.000000000000 +vt 0.327046245337 0.092111021280 0.000000000000 +vt 0.319549947977 0.088000133634 0.000000000000 +vt 0.491939753294 0.100965470076 0.000000000000 +vt 0.696907937527 0.156802833080 0.000000000000 +vt 0.707364618778 0.164915174246 0.000000000000 +vt 0.711468279362 0.167301818728 0.000000000000 +vt 0.672648847103 0.136169388890 0.000000000000 +vt 0.654392778873 0.123681157827 0.000000000000 +vt 0.546281397343 0.277987629175 0.000000000000 +vt 0.555889427662 0.542913317680 0.000000000000 +vt 0.598048627377 0.315594613552 0.000000000000 +vt 0.474871605635 0.487518340349 0.000000000000 +vt 0.493717104197 0.499704867601 0.000000000000 +vt 0.510663211346 0.513657331467 0.000000000000 +vt 0.529695570469 0.328777670860 0.000000000000 +vt 0.478573888540 0.439885228872 0.000000000000 +vt 0.489638179541 0.458603054285 0.000000000000 +vt 0.472153753042 0.424974769354 0.000000000000 +vt 0.581608593464 0.316328614950 0.000000000000 +vt 0.469933092594 0.410422533751 0.000000000000 +vt 0.474573940039 0.415574103594 0.000000000000 +vt 0.496727436781 0.356613397598 0.000000000000 +vt 0.467020928860 0.405297100544 0.000000000000 +vt 0.680720627308 0.091846004128 0.000000000000 +vt 0.694580972195 0.090741172433 0.000000000000 +vt 0.547491371632 0.071579337120 0.000000000000 +vt 0.553497970104 0.078128427267 0.000000000000 +vt 0.645280063152 0.102942556143 0.000000000000 +vt 0.557917654514 0.084493562579 0.000000000000 +vt 0.562383949757 0.098196953535 0.000000000000 +vt 0.633653700352 0.118626862764 0.000000000000 +vt 0.562888324261 0.114720419049 0.000000000000 +vt 0.563672840595 0.128326103091 0.000000000000 +vt 0.567211091518 0.144699171185 0.000000000000 +vt 0.500136196613 0.268927842379 0.000000000000 +vt 0.502436935902 0.280043512583 0.000000000000 +vt 0.482790559530 0.140759631991 0.000000000000 +vt 0.485283464193 0.145932793617 0.000000000000 +vt 0.511669576168 0.244729980826 0.000000000000 +vt 0.489596575499 0.150636732578 0.000000000000 +vt 0.503686726093 0.155002936721 0.000000000000 +vt 0.528804123402 0.231279209256 0.000000000000 +vt 0.521844804287 0.155472621322 0.000000000000 +vt 0.536552846432 0.156950756907 0.000000000000 +vt 0.553597509861 0.159783437848 0.000000000000 +vt 0.307654768229 0.609554529190 0.000000000000 +vt 0.290467321873 0.613707244396 0.000000000000 +vt 0.204575508833 0.719810605049 0.000000000000 +vt 0.210707157850 0.703682720661 0.000000000000 +vt 0.284538298845 0.585472345352 0.000000000000 +vt 0.223060980439 0.709351420403 0.000000000000 +vt 0.213785484433 0.729282855988 0.000000000000 +vt 0.294191390276 0.583933651447 0.000000000000 +vt 0.193332836032 0.738901257515 0.000000000000 +vt 0.188829287887 0.728674709797 0.000000000000 +vt 0.197825804353 0.749223530293 0.000000000000 +vt 0.225497603416 0.740132212639 0.000000000000 +vt 0.172644689679 0.756999909878 0.000000000000 +vt 0.173354595900 0.748063921928 0.000000000000 +vt 0.153877779841 0.774228334427 0.000000000000 +vt 0.153797164559 0.760271430016 0.000000000000 +vt 0.173445329070 0.773155450821 0.000000000000 +vt 0.149432986975 0.820051431656 0.000000000000 +vt 0.173765048385 0.821435034275 0.000000000000 +vt 0.175114631653 0.829998791218 0.000000000000 +vt 0.154235765338 0.830059587955 0.000000000000 +vt 0.154094830155 0.792689681053 0.000000000000 +vt 0.177844420075 0.795601427555 0.000000000000 +vt 0.212241590023 0.836606919765 0.000000000000 +vt 0.307616710663 0.586260378361 0.000000000000 +vt 0.319666564465 0.604332268238 0.000000000000 +vt 0.206351310015 0.841337859631 0.000000000000 +vt 0.357945650816 0.653928995132 0.000000000000 +vt 0.205141782761 0.802912175655 0.000000000000 +vt 0.181257992983 0.838490307331 0.000000000000 +vt 0.150479733944 0.836383342743 0.000000000000 +vt 0.202541679144 0.774786055088 0.000000000000 +vt 0.230581372976 0.776787877083 0.000000000000 +vt 0.232835412025 0.808410942554 0.000000000000 +vt 0.153742238879 0.753254890442 0.000000000000 +vt 0.354879945517 0.670894861221 0.000000000000 +vt 0.156122118235 0.742229044437 0.000000000000 +vt 0.325383484364 0.664160490036 0.000000000000 +vt 0.172345682979 0.736270546913 0.000000000000 +vt 0.329998701811 0.649386703968 0.000000000000 +vt 0.344495564699 0.695504546165 0.000000000000 +vt 0.319999575615 0.685368955135 0.000000000000 +vt 0.340014070272 0.705360293388 0.000000000000 +vt 0.316662311554 0.697957396507 0.000000000000 +vt 0.335703253746 0.712217569351 0.000000000000 +vt 0.314472913742 0.703338801861 0.000000000000 +vt 0.298693358898 0.660711348057 0.000000000000 +vt 0.305291980505 0.643745899200 0.000000000000 +vt 0.335656195879 0.638233840466 0.000000000000 +vt 0.170275822282 0.731788814068 0.000000000000 +vt 0.154652982950 0.738835036755 0.000000000000 +vt 0.186667352915 0.724648237228 0.000000000000 +vt 0.232443422079 0.711409807205 0.000000000000 +vt 0.252836883068 0.745151817799 0.000000000000 +vt 0.251037418842 0.715631723404 0.000000000000 +vt 0.257062584162 0.778479039669 0.000000000000 +vt 0.286519646645 0.808762609959 0.000000000000 +vt 0.259915977716 0.810499906540 0.000000000000 +vt 0.282630771399 0.777449607849 0.000000000000 +vt 0.312265455723 0.804308831692 0.000000000000 +vt 0.315088212490 0.835467398167 0.000000000000 +vt 0.288638800383 0.843417167664 0.000000000000 +vt 0.337379038334 0.797992110252 0.000000000000 +vt 0.342023313046 0.826052308083 0.000000000000 +vt 0.314613372087 0.842931270599 0.000000000000 +vt 0.360430896282 0.641259968281 0.000000000000 +vt 0.314939886332 0.630025804043 0.000000000000 +vt 0.289557874203 0.850114881992 0.000000000000 +vt 0.294469684362 0.682716429234 0.000000000000 +vt 0.273877441883 0.659004628658 0.000000000000 +vt 0.280411213636 0.635718882084 0.000000000000 +vt 0.270008593798 0.684478938580 0.000000000000 +vt 0.359717398882 0.625162005424 0.000000000000 +vt 0.343318879604 0.624738991261 0.000000000000 +vt 0.344458639622 0.621523499489 0.000000000000 +vt 0.360369205475 0.621685206890 0.000000000000 +vt 0.360682636499 0.635098338127 0.000000000000 +vt 0.339501827955 0.634016931057 0.000000000000 +vt 0.340652346611 0.835465610027 0.000000000000 +vt 0.309305101633 0.776968240738 0.000000000000 +vt 0.334473401308 0.773887217045 0.000000000000 +vt 0.363107293844 0.791482627392 0.000000000000 +vt 0.368501096964 0.820234537125 0.000000000000 +vt 0.358934253454 0.769033312798 0.000000000000 +vt 0.275969982147 0.743224263191 0.000000000000 +vt 0.305437386036 0.756031274796 0.000000000000 +vt 0.260169744492 0.846379280090 0.000000000000 +vt 0.235436409712 0.844436645508 0.000000000000 +vt 0.262015789747 0.854236066341 0.000000000000 +vt 0.234238356352 0.851540505886 0.000000000000 +vt 0.263981163502 0.715166091919 0.000000000000 +vt 0.267965942621 0.713351130486 0.000000000000 +vt 0.281729459763 0.734891474247 0.000000000000 +vt 0.288172066212 0.722100436687 0.000000000000 +vt 0.277648299932 0.707795619965 0.000000000000 +vt 0.291222691536 0.716961920261 0.000000000000 +vt 0.308623343706 0.723172843456 0.000000000000 +vt 0.307381391525 0.728834807873 0.000000000000 +vt 0.281491696835 0.703531861305 0.000000000000 +vt 0.305040448904 0.743083953857 0.000000000000 +vt 0.201677769423 0.717027664185 0.000000000000 +vt 0.205799683928 0.700485944748 0.000000000000 +vt 0.367262303829 0.829703629017 0.000000000000 +vt 0.341758757830 0.839105904102 0.000000000000 +vt 0.368334710598 0.833229362965 0.000000000000 +vt 0.316586196423 0.847852051258 0.000000000000 +vt 0.290764272213 0.854788422585 0.000000000000 +vt 0.327047795057 0.738471865654 0.000000000000 +vt 0.326124876738 0.730000674725 0.000000000000 +vt 0.330911010504 0.754280507565 0.000000000000 +vt 0.355491876602 0.749867677689 0.000000000000 +vt 0.351486146450 0.739300012589 0.000000000000 +vt 0.326873511076 0.724973142147 0.000000000000 +vt 0.344539195299 0.722123146057 0.000000000000 +vt 0.344190418720 0.726383745670 0.000000000000 +vt 0.261989206076 0.857144653797 0.000000000000 +vt 0.233581811190 0.854094266891 0.000000000000 +vt 0.204417899251 0.849156141281 0.000000000000 +vt 0.326887309551 0.621081113815 0.000000000000 +vt 0.252677500248 0.583962917328 0.000000000000 +vt 0.265231251717 0.586087048054 0.000000000000 +vt 0.256276845932 0.613264143467 0.000000000000 +vt 0.236884176731 0.612185239792 0.000000000000 +vt 0.225397676229 0.592031359673 0.000000000000 +vt 0.240359246731 0.578182041645 0.000000000000 +vt 0.249482765794 0.581659138203 0.000000000000 +vt 0.230406701565 0.604802131653 0.000000000000 +vt 0.221547290683 0.586520910263 0.000000000000 +vt 0.237664133310 0.573132932186 0.000000000000 +vt 0.211196690798 0.601164758205 0.000000000000 +vt 0.209809958935 0.594907939434 0.000000000000 +vt 0.213919267058 0.613228797913 0.000000000000 +vt 0.215259835124 0.621791481972 0.000000000000 +vt 0.233155399561 0.635776519775 0.000000000000 +vt 0.212040349841 0.638687551022 0.000000000000 +vt 0.329966962337 0.616993844509 0.000000000000 +vt 0.252798855305 0.635614156723 0.000000000000 +vt 0.333201110363 0.612495720387 0.000000000000 +vt 0.324382007122 0.598686695099 0.000000000000 +vt 0.311093568802 0.581733644009 0.000000000000 +vt 0.250871539116 0.659518659115 0.000000000000 +vt 0.246007040143 0.695468783379 0.000000000000 +vt 0.267591327429 0.695985734463 0.000000000000 +vt 0.229620695114 0.658928096294 0.000000000000 +vt 0.224895358086 0.685685992241 0.000000000000 +vt 0.202963665128 0.683032333851 0.000000000000 +vt 0.206480368972 0.658463180065 0.000000000000 +vt 0.225187152624 0.694258570671 0.000000000000 +vt 0.267994135618 0.700619399548 0.000000000000 +vt 0.246059074998 0.698300302029 0.000000000000 +vt 0.202539697289 0.691807746887 0.000000000000 +vt 0.292167007923 0.695293128490 0.000000000000 +vt 0.291803628206 0.699824810028 0.000000000000 +vt 0.246173635125 0.686428308487 0.000000000000 +vt 0.225166440010 0.697112381458 0.000000000000 +vt 0.202534750104 0.694576680660 0.000000000000 +vt 0.179447337985 0.689694881439 0.000000000000 +vt 0.179994687438 0.681011319160 0.000000000000 +vt 0.156249374151 0.689290702343 0.000000000000 +vt 0.153237923980 0.680606484413 0.000000000000 +vt 0.181782424450 0.657110214233 0.000000000000 +vt 0.156527668238 0.653305292130 0.000000000000 +vt 0.186954230070 0.638771533966 0.000000000000 +vt 0.162625998259 0.633767902851 0.000000000000 +vt 0.191838979721 0.622671365738 0.000000000000 +vt 0.169981136918 0.618435740471 0.000000000000 +vt 0.179694786668 0.692102015018 0.000000000000 +vt 0.157019853592 0.692945420742 0.000000000000 +vt 0.174810484052 0.610164642334 0.000000000000 +vt 0.181283250451 0.599177777767 0.000000000000 +vt 0.196757718921 0.604870617390 0.000000000000 +vt 0.192525476217 0.616066217422 0.000000000000 +vt 0.183410972357 0.595816195011 0.000000000000 +vt 0.198278859258 0.601250529289 0.000000000000 +vt 0.244824290276 0.579442679882 0.000000000000 +vt 0.273151040077 0.710567533970 0.000000000000 +vt 0.285232663155 0.728684842587 0.000000000000 +vt 0.227200508118 0.598817527294 0.000000000000 +vt 0.212605252862 0.606770217419 0.000000000000 +vt 0.305614590645 0.736904382706 0.000000000000 +vt 0.328240215778 0.744696319103 0.000000000000 +vt 0.178053170443 0.604644119740 0.000000000000 +vt 0.348152697086 0.732621014118 0.000000000000 +vt 0.194131508470 0.610380828381 0.000000000000 +vt 0.313762992620 0.607308149338 0.000000000000 +vt 0.300771087408 0.584314823151 0.000000000000 +vt 0.216887891293 0.707050144672 0.000000000000 +vt 0.208923026919 0.724448800087 0.000000000000 +vt 0.190924808383 0.733412683010 0.000000000000 +vt 0.173134177923 0.741575896740 0.000000000000 +vt 0.154957845807 0.745678186417 0.000000000000 +vt 0.360251009464 0.628313779831 0.000000000000 +vt 0.342385172844 0.628576755524 0.000000000000 +vt 0.322390943766 0.625243067741 0.000000000000 +vt 0.255816608667 0.538961172104 0.000000000000 +vt 0.255609929562 0.531903445721 0.000000000000 +vt 0.276532471180 0.523902297020 0.000000000000 +vt 0.276766628027 0.530665338039 0.000000000000 +vt 0.258155763149 0.542869150639 0.000000000000 +vt 0.239253938198 0.549565970898 0.000000000000 +vt 0.237569808960 0.546314954758 0.000000000000 +vt 0.259632319212 0.557646989822 0.000000000000 +vt 0.278000265360 0.557606041431 0.000000000000 +vt 0.280406028032 0.561680853367 0.000000000000 +vt 0.259857028723 0.562739551067 0.000000000000 +vt 0.301217794418 0.558059513569 0.000000000000 +vt 0.301868736744 0.561496496201 0.000000000000 +vt 0.280528068542 0.552090644836 0.000000000000 +vt 0.277729153633 0.535347640514 0.000000000000 +vt 0.297178983688 0.528205513954 0.000000000000 +vt 0.301819860935 0.553178787231 0.000000000000 +vt 0.296229928732 0.518692255020 0.000000000000 +vt 0.297345817089 0.522403001785 0.000000000000 +vt 0.317796647549 0.513919591904 0.000000000000 +vt 0.319642692804 0.516018092632 0.000000000000 +vt 0.318866372108 0.522611498833 0.000000000000 +vt 0.323723644018 0.553826808929 0.000000000000 +vt 0.342375040054 0.518720626831 0.000000000000 +vt 0.345081865788 0.553842306137 0.000000000000 +vt 0.325454175472 0.558225631714 0.000000000000 +vt 0.324885904789 0.562544107437 0.000000000000 +vt 0.344201058149 0.558419764042 0.000000000000 +vt 0.346064895391 0.561874091625 0.000000000000 +vt 0.367183536291 0.508728206158 0.000000000000 +vt 0.365877866745 0.516082882881 0.000000000000 +vt 0.342823565006 0.511460900307 0.000000000000 +vt 0.365199923515 0.505763173103 0.000000000000 +vt 0.387129127979 0.502111792564 0.000000000000 +vt 0.389222174883 0.506725013256 0.000000000000 +vt 0.341677963734 0.508929491043 0.000000000000 +vt 0.382050991058 0.547588169575 0.000000000000 +vt 0.364945054054 0.550378084183 0.000000000000 +vt 0.388924062252 0.514224946499 0.000000000000 +vt 0.256348222494 0.552059113979 0.000000000000 +vt 0.239861428738 0.565382003784 0.000000000000 +vt 0.239956676960 0.562402725220 0.000000000000 +vt 0.220832422376 0.568670809269 0.000000000000 +vt 0.219239458442 0.567124247551 0.000000000000 +vt 0.203210204840 0.570883214474 0.000000000000 +vt 0.201898008585 0.568920969963 0.000000000000 +vt 0.182944670320 0.570823550224 0.000000000000 +vt 0.183698490262 0.567600429058 0.000000000000 +vt 0.203983396292 0.564405024052 0.000000000000 +vt 0.204041033983 0.557649910450 0.000000000000 +vt 0.220529600978 0.554902791977 0.000000000000 +vt 0.220537245274 0.562811851501 0.000000000000 +vt 0.183808818460 0.564445316792 0.000000000000 +vt 0.182822406292 0.557343244553 0.000000000000 +vt 0.156297102571 0.564277827740 0.000000000000 +vt 0.153392598033 0.552050530910 0.000000000000 +vt 0.137154191732 0.566353738308 0.000000000000 +vt 0.156789526343 0.566984176636 0.000000000000 +vt 0.156581923366 0.569497346878 0.000000000000 +vt 0.138306304812 0.569090723991 0.000000000000 +vt 0.154402419925 0.548665106297 0.000000000000 +vt 0.132301419973 0.547170519829 0.000000000000 +vt 0.131927892566 0.543763041496 0.000000000000 +vt 0.183378085494 0.554381549358 0.000000000000 +vt 0.155377343297 0.546469151974 0.000000000000 +vt 0.182058230042 0.549026727676 0.000000000000 +vt 0.203520476818 0.547020137310 0.000000000000 +vt 0.203194230795 0.553471744061 0.000000000000 +vt 0.219951391220 0.551127851009 0.000000000000 +vt 0.219577863812 0.544329047203 0.000000000000 +vt 0.236548244953 0.540101110935 0.000000000000 +vt 0.239640295506 0.557557404041 0.000000000000 +vt 0.364015817642 0.556429386139 0.000000000000 +vt 0.364667207003 0.559019565582 0.000000000000 +vt 0.385533690453 0.553289771080 0.000000000000 +vt 0.382902741432 0.557026267052 0.000000000000 +vt 0.154217123985 0.713813722134 0.000000000000 +vt 0.157158553600 0.710084676743 0.000000000000 +vt 0.139992043376 0.697338879108 0.000000000000 +vt 0.145032361150 0.694776415825 0.000000000000 +vt 0.129598200321 0.676885545254 0.000000000000 +vt 0.133522659540 0.676785171032 0.000000000000 +vt 0.121781267226 0.655710399151 0.000000000000 +vt 0.125936508179 0.658108294010 0.000000000000 +vt 0.117115393281 0.636653959751 0.000000000000 +vt 0.121172465384 0.637733101845 0.000000000000 +vt 0.116183921695 0.616349458694 0.000000000000 +vt 0.120485514402 0.618173420429 0.000000000000 +vt 0.084196135402 0.636717438698 0.000000000000 +vt 0.084505945444 0.617743194103 0.000000000000 +vt 0.089589498937 0.618903636932 0.000000000000 +vt 0.089312784374 0.636993050575 0.000000000000 +vt 0.080862037838 0.637916862965 0.000000000000 +vt 0.081022799015 0.618841469288 0.000000000000 +vt 0.085008040071 0.598570287228 0.000000000000 +vt 0.090116359293 0.599607348442 0.000000000000 +vt 0.081807009876 0.598996996880 0.000000000000 +vt 0.086025521159 0.666380286217 0.000000000000 +vt 0.083288080990 0.667724907398 0.000000000000 +vt 0.115721911192 0.657637059689 0.000000000000 +vt 0.091839924455 0.665398180485 0.000000000000 +vt 0.112071022391 0.636431932449 0.000000000000 +vt 0.116621181369 0.598775207996 0.000000000000 +vt 0.122074656188 0.598256886005 0.000000000000 +vt 0.117822155356 0.580991744995 0.000000000000 +vt 0.122807092965 0.579663336277 0.000000000000 +vt 0.118204921484 0.561226546764 0.000000000000 +vt 0.122930236161 0.561480045319 0.000000000000 +vt 0.086409181356 0.580696821213 0.000000000000 +vt 0.088303416967 0.563481450081 0.000000000000 +vt 0.092769816518 0.562017738819 0.000000000000 +vt 0.090972624719 0.580980956554 0.000000000000 +vt 0.112636163831 0.581119179726 0.000000000000 +vt 0.110782906413 0.597800493240 0.000000000000 +vt 0.092613331974 0.689584314823 0.000000000000 +vt 0.099071905017 0.688045859337 0.000000000000 +vt 0.108099728823 0.710213482380 0.000000000000 +vt 0.102641746402 0.710727512836 0.000000000000 +vt 0.099205419421 0.711480677128 0.000000000000 +vt 0.090210475028 0.691667914391 0.000000000000 +vt 0.112440273166 0.725039958954 0.000000000000 +vt 0.109685271978 0.733518600464 0.000000000000 +vt 0.120316430926 0.724148333073 0.000000000000 +vt 0.149469718337 0.716144502163 0.000000000000 +vt 0.083509407938 0.581079363823 0.000000000000 +vt 0.085539408028 0.563082933426 0.000000000000 +vt 0.091403126717 0.541651070118 0.000000000000 +vt 0.135661408305 0.562481999397 0.000000000000 +vt 0.112166255713 0.617554724216 0.000000000000 +vt 0.115233764052 0.561244547367 0.000000000000 +vt 0.124406136572 0.679192543030 0.000000000000 +vt 0.135345742106 0.699786543846 0.000000000000 +vt 0.124257989228 0.753876924515 0.000000000000 +vt 0.128552585840 0.751157760620 0.000000000000 +vt 0.165847733617 0.731854498386 0.000000000000 +vt 0.135802805424 0.748261570930 0.000000000000 +vt 0.166685536504 0.724866151810 0.000000000000 +vt 0.170482099056 0.722631275654 0.000000000000 +vt 0.118092343211 0.538387894630 0.000000000000 +vt 0.120958782732 0.537692189217 0.000000000000 +vt 0.098085269332 0.540873169899 0.000000000000 +vt 0.094365492463 0.541822671890 0.000000000000 +vt 0.132603570819 0.540962100029 0.000000000000 +vt 0.113834425807 0.538623392582 0.000000000000 +vt 0.319482028484 0.899047315121 0.000000000000 +vt 0.309817373753 0.903006970882 0.000000000000 +vt 0.303308844566 0.883904874325 0.000000000000 +vt 0.314649820328 0.880987823009 0.000000000000 +vt 0.328109025955 0.880558192730 0.000000000000 +vt 0.328658103943 0.897744834423 0.000000000000 +vt 0.341684728861 0.882348120213 0.000000000000 +vt 0.338721781969 0.899649322033 0.000000000000 +vt 0.355538994074 0.885123133659 0.000000000000 +vt 0.346919715405 0.902684092522 0.000000000000 +vt 0.264496624470 0.923883795738 0.000000000000 +vt 0.285223543644 0.930731534958 0.000000000000 +vt 0.267435461283 0.909074544907 0.000000000000 +vt 0.288075894117 0.921931266785 0.000000000000 +vt 0.274401426315 0.897557139397 0.000000000000 +vt 0.292297661304 0.914312303066 0.000000000000 +vt 0.287088751793 0.890229046345 0.000000000000 +vt 0.300147175789 0.908530831337 0.000000000000 +vt 0.310877472162 0.867308914661 0.000000000000 +vt 0.326778471470 0.865757822990 0.000000000000 +vt 0.343281567097 0.865718007088 0.000000000000 +vt 0.361255347729 0.866305887699 0.000000000000 +vt 0.245798677206 0.914549648762 0.000000000000 +vt 0.250797957182 0.897025287151 0.000000000000 +vt 0.263053983450 0.883340418339 0.000000000000 +vt 0.278658270836 0.875975549221 0.000000000000 +vt 0.297883272171 0.872081577778 0.000000000000 +vt 0.321375846863 0.908167660236 0.000000000000 +vt 0.313384771347 0.911024928093 0.000000000000 +vt 0.312286227942 0.907532513142 0.000000000000 +vt 0.320597171783 0.903883635998 0.000000000000 +vt 0.329484283924 0.906974732876 0.000000000000 +vt 0.329025387764 0.902560055256 0.000000000000 +vt 0.335602283478 0.907388985157 0.000000000000 +vt 0.336900919676 0.903732657433 0.000000000000 +vt 0.340975165367 0.909342050552 0.000000000000 +vt 0.344243913889 0.905984163284 0.000000000000 +vt 0.292275160551 0.931756854057 0.000000000000 +vt 0.288374781609 0.931339025497 0.000000000000 +vt 0.294533699751 0.926007986069 0.000000000000 +vt 0.291681826115 0.923927128315 0.000000000000 +vt 0.298611998558 0.919755756855 0.000000000000 +vt 0.295432448387 0.917401850224 0.000000000000 +vt 0.304809689522 0.915081322193 0.000000000000 +vt 0.302478045225 0.912388324738 0.000000000000 +vt 0.309649169445 0.859347939491 0.000000000000 +vt 0.325541138649 0.857225894928 0.000000000000 +vt 0.326330006123 0.861102938652 0.000000000000 +vt 0.309487581253 0.863262355328 0.000000000000 +vt 0.341508537531 0.857451260090 0.000000000000 +vt 0.343136012554 0.863369047642 0.000000000000 +vt 0.356366693974 0.855853736401 0.000000000000 +vt 0.360483229160 0.861095964909 0.000000000000 +vt 0.237906411290 0.910131931305 0.000000000000 +vt 0.242411300540 0.912403225899 0.000000000000 +vt 0.243345454335 0.892147541046 0.000000000000 +vt 0.247076600790 0.894490242004 0.000000000000 +vt 0.255101680756 0.878566741943 0.000000000000 +vt 0.258435934782 0.881105363369 0.000000000000 +vt 0.274271398783 0.868584036827 0.000000000000 +vt 0.276469051838 0.872065901756 0.000000000000 +vt 0.295189887285 0.862639725208 0.000000000000 +vt 0.297131747007 0.866627097130 0.000000000000 +vt 0.264509558678 0.939163446426 0.000000000000 +vt 0.284231007099 0.939391553402 0.000000000000 +vt 0.245086982846 0.933630704880 0.000000000000 +vt 0.292607039213 0.937922894955 0.000000000000 +vt 0.288247227669 0.939458549023 0.000000000000 +vt 0.234031543136 0.927958786488 0.000000000000 +vt 0.239948898554 0.931120336056 0.000000000000 +vt 0.303108215332 0.259901374578 0.000000000000 +vt 0.299691259861 0.272608458996 0.000000000000 +vt 0.227741092443 0.179622754455 0.000000000000 +vt 0.241408705711 0.177819043398 0.000000000000 +vt 0.288645803928 0.272444993258 0.000000000000 +vt 0.249047771096 0.186873659492 0.000000000000 +vt 0.294585645199 0.259171187878 0.000000000000 +vt 0.304501682520 0.254701167345 0.000000000000 +vt 0.313444852829 0.253634393215 0.000000000000 +vt 0.312482535839 0.259582310915 0.000000000000 +vt 0.296862632036 0.254683613777 0.000000000000 +vt 0.286406427622 0.256932258606 0.000000000000 +vt 0.289906680584 0.252584934235 0.000000000000 +vt 0.279214531183 0.252052009106 0.000000000000 +vt 0.283777058125 0.248220309615 0.000000000000 +vt 0.278458207846 0.270513832569 0.000000000000 +vt 0.212318181992 0.149050965905 0.000000000000 +vt 0.220562011003 0.146735697985 0.000000000000 +vt 0.222703933716 0.152291625738 0.000000000000 +vt 0.213263839483 0.154687494040 0.000000000000 +vt 0.203408792615 0.155836462975 0.000000000000 +vt 0.203189268708 0.150103569031 0.000000000000 +vt 0.193548575044 0.156050369143 0.000000000000 +vt 0.193696498871 0.150199025869 0.000000000000 +vt 0.183689251542 0.155369937420 0.000000000000 +vt 0.184210494161 0.149640426040 0.000000000000 +vt 0.193191483617 0.169719755650 0.000000000000 +vt 0.182228907943 0.169336318970 0.000000000000 +vt 0.268187999725 0.265260279179 0.000000000000 +vt 0.324253201485 0.252125859261 0.000000000000 +vt 0.231818437576 0.195312470198 0.000000000000 +vt 0.212309181690 0.181552782655 0.000000000000 +vt 0.213149681687 0.200687378645 0.000000000000 +vt 0.197734892368 0.182133242488 0.000000000000 +vt 0.196059510112 0.201420485973 0.000000000000 +vt 0.178108111024 0.197619631886 0.000000000000 +vt 0.184773385525 0.179257780313 0.000000000000 +vt 0.193671286106 0.220274075866 0.000000000000 +vt 0.204073458910 0.169701069593 0.000000000000 +vt 0.171984791756 0.217511638999 0.000000000000 +vt 0.196902945638 0.242536947131 0.000000000000 +vt 0.323984831572 0.258038192987 0.000000000000 +vt 0.310539454222 0.271224856377 0.000000000000 +vt 0.324096947908 0.268115252256 0.000000000000 +vt 0.339193135500 0.265587210655 0.000000000000 +vt 0.336792320013 0.254855424166 0.000000000000 +vt 0.340972989798 0.271843373775 0.000000000000 +vt 0.325516790152 0.274833887815 0.000000000000 +vt 0.313507229090 0.275261014700 0.000000000000 +vt 0.171768411994 0.240901872516 0.000000000000 +vt 0.215576186776 0.241010859609 0.000000000000 +vt 0.215113937855 0.219385609031 0.000000000000 +vt 0.179179176688 0.179597318172 0.000000000000 +vt 0.354237109423 0.261272788048 0.000000000000 +vt 0.356365293264 0.266201436520 0.000000000000 +vt 0.348684787750 0.251001656055 0.000000000000 +vt 0.335720360279 0.249260529876 0.000000000000 +vt 0.346057444811 0.245707139373 0.000000000000 +vt 0.367124110460 0.254228800535 0.000000000000 +vt 0.359250634909 0.246444091201 0.000000000000 +vt 0.355434030294 0.241601213813 0.000000000000 +vt 0.369936972857 0.258326172829 0.000000000000 +vt 0.169737070799 0.113030180335 0.000000000000 +vt 0.170575097203 0.120991900563 0.000000000000 +vt 0.297219276428 0.135332033038 0.000000000000 +vt 0.283211469650 0.234442397952 0.000000000000 +vt 0.292599529028 0.237945362926 0.000000000000 +vt 0.298478573561 0.140298739076 0.000000000000 +vt 0.290076673031 0.243708446622 0.000000000000 +vt 0.282434672117 0.239781066775 0.000000000000 +vt 0.305352568626 0.241858348250 0.000000000000 +vt 0.303028285503 0.248206838965 0.000000000000 +vt 0.324729174376 0.241821423173 0.000000000000 +vt 0.321562141180 0.249174103141 0.000000000000 +vt 0.347120851278 0.237402305007 0.000000000000 +vt 0.343635231256 0.232021078467 0.000000000000 +vt 0.357544183731 0.220489770174 0.000000000000 +vt 0.362244993448 0.226528212428 0.000000000000 +vt 0.363515973091 0.202669411898 0.000000000000 +vt 0.368934571743 0.200474381447 0.000000000000 +vt 0.344842731953 0.210690349340 0.000000000000 +vt 0.342417836189 0.185361966491 0.000000000000 +vt 0.364349514246 0.181216180325 0.000000000000 +vt 0.324543416500 0.218253985047 0.000000000000 +vt 0.321842014790 0.191119849682 0.000000000000 +vt 0.337232500315 0.165248394012 0.000000000000 +vt 0.356791496277 0.164284512401 0.000000000000 +vt 0.332506477833 0.147537469864 0.000000000000 +vt 0.347481101751 0.153085976839 0.000000000000 +vt 0.318637371063 0.169776722789 0.000000000000 +vt 0.312718063593 0.146633028984 0.000000000000 +vt 0.370308697224 0.181861028075 0.000000000000 +vt 0.360243141651 0.161985456944 0.000000000000 +vt 0.304652988911 0.221441268921 0.000000000000 +vt 0.303939700127 0.197721183300 0.000000000000 +vt 0.289470791817 0.148055776954 0.000000000000 +vt 0.285560518503 0.142270863056 0.000000000000 +vt 0.291176348925 0.221764370799 0.000000000000 +vt 0.288291871548 0.203909799457 0.000000000000 +vt 0.276085317135 0.156505629420 0.000000000000 +vt 0.272780030966 0.150750204921 0.000000000000 +vt 0.258125126362 0.158074513078 0.000000000000 +vt 0.260224252939 0.163233041763 0.000000000000 +vt 0.243465483189 0.162214890122 0.000000000000 +vt 0.243714034557 0.151190385222 0.000000000000 +vt 0.254636585712 0.146920993924 0.000000000000 +vt 0.229478836060 0.163604542613 0.000000000000 +vt 0.233701616526 0.153107583523 0.000000000000 +vt 0.167218700051 0.121271774173 0.000000000000 +vt 0.166369423270 0.112692907453 0.000000000000 +vt 0.243073940277 0.145069316030 0.000000000000 +vt 0.252761274576 0.141263067722 0.000000000000 +vt 0.263089358807 0.136896863580 0.000000000000 +vt 0.266313344240 0.141587063670 0.000000000000 +vt 0.277861565351 0.135119035840 0.000000000000 +vt 0.273413181305 0.131129965186 0.000000000000 +vt 0.282169669867 0.124930545688 0.000000000000 +vt 0.287077844143 0.128512978554 0.000000000000 +vt 0.289280533791 0.119594141841 0.000000000000 +vt 0.293950706720 0.122467115521 0.000000000000 +vt 0.168387711048 0.136361449957 0.000000000000 +vt 0.172123029828 0.133879333735 0.000000000000 +vt 0.159614548087 0.137594163418 0.000000000000 +vt 0.170139640570 0.142349898815 0.000000000000 +vt 0.159916698933 0.145990878344 0.000000000000 +vt 0.175263956189 0.137986391783 0.000000000000 +vt 0.158946737647 0.121140733361 0.000000000000 +vt 0.158538520336 0.111063912511 0.000000000000 +vt 0.150848120451 0.113286182284 0.000000000000 +vt 0.147537663579 0.113875642419 0.000000000000 +vt 0.150810301304 0.122010722756 0.000000000000 +vt 0.150818631053 0.137049511075 0.000000000000 +vt 0.146893724799 0.134909197688 0.000000000000 +vt 0.234794318676 0.147171825171 0.000000000000 +vt 0.280413031578 0.223018944263 0.000000000000 +vt 0.244322419167 0.167136326432 0.000000000000 +vt 0.215430051088 0.169227793813 0.000000000000 +vt 0.276956439018 0.210102006793 0.000000000000 +vt 0.230842590332 0.168110579252 0.000000000000 +vt 0.304748684168 0.128483712673 0.000000000000 +vt 0.319317579269 0.112706646323 0.000000000000 +vt 0.304126799107 0.108920201659 0.000000000000 +vt 0.306201845407 0.100410684943 0.000000000000 +vt 0.324304103851 0.102940306067 0.000000000000 +vt 0.298506706953 0.108017548919 0.000000000000 +vt 0.227834999561 0.168783783913 0.000000000000 +vt 0.173827692866 0.153802856803 0.000000000000 +vt 0.164431959391 0.150985270739 0.000000000000 +vt 0.166879624128 0.145447134972 0.000000000000 +vt 0.175091713667 0.148140892386 0.000000000000 +vt 0.170737877488 0.168616726995 0.000000000000 +vt 0.158358171582 0.168257147074 0.000000000000 +vt 0.171079888940 0.173917546868 0.000000000000 +vt 0.298551976681 0.176225617528 0.000000000000 +vt 0.284409761429 0.187349408865 0.000000000000 +vt 0.278388887644 0.172707334161 0.000000000000 +vt 0.265587240458 0.188653051853 0.000000000000 +vt 0.263487190008 0.183533251286 0.000000000000 +vt 0.172304287553 0.195576354861 0.000000000000 +vt 0.166341051459 0.215843468904 0.000000000000 +vt 0.246410295367 0.175310358405 0.000000000000 +vt 0.253420293331 0.181435257196 0.000000000000 +vt 0.258993119001 0.199986010790 0.000000000000 +vt 0.238587737083 0.209960162640 0.000000000000 +vt 0.263290882111 0.194039210677 0.000000000000 +vt 0.244794785976 0.230162426829 0.000000000000 +vt 0.267062664032 0.219509899616 0.000000000000 +vt 0.265724569559 0.241132006049 0.000000000000 +vt 0.247063919902 0.252580881119 0.000000000000 +vt 0.260249704123 0.258537381887 0.000000000000 +vt 0.247949019074 0.272692441940 0.000000000000 +vt 0.271840006113 0.241458699107 0.000000000000 +vt 0.267441391945 0.259758830070 0.000000000000 +vt 0.274886131287 0.221160054207 0.000000000000 +vt 0.248786136508 0.278353273869 0.000000000000 +vt 0.233543574810 0.288995474577 0.000000000000 +vt 0.228813290596 0.284420073032 0.000000000000 +vt 0.222581654787 0.263455659151 0.000000000000 +vt 0.201069429517 0.264848470688 0.000000000000 +vt 0.147332772613 0.121980324388 0.000000000000 +vt 0.149485930800 0.143096730113 0.000000000000 +vt 0.144085362554 0.139203354716 0.000000000000 +vt 0.274613022804 0.168164387345 0.000000000000 +vt 0.272586405277 0.198066562414 0.000000000000 +vt 0.292887955904 0.156603798270 0.000000000000 +vt 0.289811223745 0.151691362262 0.000000000000 +vt 0.308121502399 0.141383305192 0.000000000000 +vt 0.331666439772 0.141558468342 0.000000000000 +vt 0.346801817417 0.147019162774 0.000000000000 +vt 0.208444163203 0.284849673510 0.000000000000 +vt 0.207779288292 0.289209812880 0.000000000000 +vt 0.329524755478 0.248061582446 0.000000000000 +vt 0.180802538991 0.263033509254 0.000000000000 +vt 0.364997059107 0.218376457691 0.000000000000 +vt 0.185599476099 0.280001878738 0.000000000000 +vt 0.174449339509 0.263261795044 0.000000000000 +vt 0.192701548338 0.278811007738 0.000000000000 +vt 0.367429643869 0.175568386912 0.000000000000 +vt 0.166094049811 0.244550302625 0.000000000000 +vt 0.159377232194 0.173221364617 0.000000000000 +vt 0.182153701782 0.175170764327 0.000000000000 +vt 0.193075969815 0.175665423274 0.000000000000 +vt 0.313833713531 0.139958515763 0.000000000000 +vt 0.352484732866 0.149898454547 0.000000000000 +vt 0.203923046589 0.175497695804 0.000000000000 +vt 0.214893281460 0.174428433180 0.000000000000 +vt 0.226242244244 0.173432335258 0.000000000000 +vt 0.378087341785 0.245563969016 0.000000000000 +vt 0.380262136459 0.249743267894 0.000000000000 +vt 0.367841005325 0.240881398320 0.000000000000 +vt 0.362897038460 0.237351402640 0.000000000000 +vt 0.300132334232 0.100594177842 0.000000000000 +vt 0.299615830183 0.116130575538 0.000000000000 +vt 0.294845253229 0.114346668124 0.000000000000 +vt 0.312476694584 0.120818093419 0.000000000000 +vt 0.262099564075 0.265859633684 0.000000000000 +vt 0.271560132504 0.212059065700 0.000000000000 +vt 0.224148511887 0.289957106113 0.000000000000 +vt 0.191555723548 0.285657763481 0.000000000000 +vt 0.165448531508 0.236725702882 0.000000000000 +vt 0.048055123538 0.175203412771 0.000000000000 +vt 0.048704918474 0.175287619233 0.000000000000 +vt 0.049519758672 0.175945073366 0.000000000000 +vt 0.048962052912 0.176530927420 0.000000000000 +vt 0.048142258078 0.174550458789 0.000000000000 +vt 0.048840459436 0.174907326698 0.000000000000 +vt 0.048184361309 0.177168339491 0.000000000000 +vt 0.047785613686 0.175479233265 0.000000000000 +vt 0.050077687949 0.175508722663 0.000000000000 +vt 0.049611847848 0.173526674509 0.000000000000 +vt 0.050155591220 0.174321472645 0.000000000000 +vt 0.050484325737 0.174935474992 0.000000000000 +vt 0.049262631685 0.178634554148 0.000000000000 +vt 0.050630893558 0.177782341838 0.000000000000 +vt 0.053486991674 0.179326459765 0.000000000000 +vt 0.051250975579 0.172665014863 0.000000000000 +vt 0.052335549146 0.174432024360 0.000000000000 +vt 0.052290286869 0.172393932939 0.000000000000 +vt 0.060022119433 0.196368679404 0.000000000000 +vt 0.059825789183 0.195150136948 0.000000000000 +vt 0.062848724425 0.193425223231 0.000000000000 +vt 0.063640370965 0.194470614195 0.000000000000 +vt 0.057444769889 0.198157310486 0.000000000000 +vt 0.061123806983 0.204831123352 0.000000000000 +vt 0.054434444755 0.202152684331 0.000000000000 +vt 0.052125032991 0.196384206414 0.000000000000 +vt 0.065405808389 0.200892046094 0.000000000000 +vt 0.053650680929 0.194501906633 0.000000000000 +vt 0.071322210133 0.182865217328 0.000000000000 +vt 0.069051973522 0.180266022682 0.000000000000 +vt 0.072467572987 0.177512601018 0.000000000000 +vt 0.073771677911 0.182455211878 0.000000000000 +vt 0.046373885125 0.201640009880 0.000000000000 +vt 0.047620352358 0.205844104290 0.000000000000 +vt 0.044672172517 0.207344532013 0.000000000000 +vt 0.043322812766 0.201532378793 0.000000000000 +vt 0.048094075173 0.197172701359 0.000000000000 +vt 0.050799090415 0.203515991569 0.000000000000 +vt 0.043212261051 0.193465515971 0.000000000000 +vt 0.038478370756 0.209311038256 0.000000000000 +vt 0.037481162697 0.210909873247 0.000000000000 +vt 0.035782586783 0.208673626184 0.000000000000 +vt 0.036327917129 0.206941053271 0.000000000000 +vt 0.038885008544 0.211182534695 0.000000000000 +vt 0.037817772478 0.205236405134 0.000000000000 +vt 0.037915710360 0.216193586588 0.000000000000 +vt 0.036525826901 0.213128775358 0.000000000000 +vt 0.033292595297 0.211684182286 0.000000000000 +vt 0.032988864928 0.209396824241 0.000000000000 +vt 0.044357400388 0.213697507977 0.000000000000 +vt 0.040415156633 0.211841553450 0.000000000000 +vt 0.041487347335 0.208158016205 0.000000000000 +vt 0.042062167078 0.222331538796 0.000000000000 +vt 0.039700064808 0.219182297587 0.000000000000 +vt 0.046859998256 0.219299152493 0.000000000000 +vt 0.039277669042 0.216008275747 0.000000000000 +vt 0.090955741704 0.182833924890 0.000000000000 +vt 0.095942027867 0.185236781836 0.000000000000 +vt 0.091125510633 0.186936691403 0.000000000000 +vt 0.090062774718 0.185735270381 0.000000000000 +vt 0.091737933457 0.190855517983 0.000000000000 +vt 0.087909393013 0.188273668289 0.000000000000 +vt 0.096602633595 0.188918739557 0.000000000000 +vt 0.094589523971 0.190106213093 0.000000000000 +vt 0.088805288076 0.195824697614 0.000000000000 +vt 0.085034608841 0.192018002272 0.000000000000 +vt 0.037808310241 0.218160092831 0.000000000000 +vt 0.101674705744 0.180272325873 0.000000000000 +vt 0.108147457242 0.181930154562 0.000000000000 +vt 0.084888033569 0.212164208293 0.000000000000 +vt 0.086827971041 0.209401324391 0.000000000000 +vt 0.092867530882 0.213331192732 0.000000000000 +vt 0.090507008135 0.217772141099 0.000000000000 +vt 0.078402668238 0.211174651980 0.000000000000 +vt 0.081946156919 0.206284955144 0.000000000000 +vt 0.064126476645 0.226784884930 0.000000000000 +vt 0.059163603932 0.221614643931 0.000000000000 +vt 0.063531167805 0.218933045864 0.000000000000 +vt 0.066850177944 0.224536255002 0.000000000000 +vt 0.058718021959 0.224759161472 0.000000000000 +vt 0.052740599960 0.222449973226 0.000000000000 +vt 0.051313344389 0.218079030514 0.000000000000 +vt 0.056304361671 0.215266615152 0.000000000000 +vt 0.052650313824 0.225943475962 0.000000000000 +vt 0.101671561599 0.191067621112 0.000000000000 +vt 0.102857217193 0.187916800380 0.000000000000 +vt 0.090246729553 0.206087037921 0.000000000000 +vt 0.085568904877 0.202257156372 0.000000000000 +vt 0.091549478471 0.199667423964 0.000000000000 +vt 0.092842765152 0.201647892594 0.000000000000 +vt 0.092551417649 0.205803573132 0.000000000000 +vt 0.094774819911 0.209103897214 0.000000000000 +vt 0.094059728086 0.210680663586 0.000000000000 +vt 0.095144078135 0.195538073778 0.000000000000 +vt 0.099691078067 0.194344520569 0.000000000000 +vt 0.099405810237 0.196164458990 0.000000000000 +vt 0.099158152938 0.198102816939 0.000000000000 +vt 0.095910727978 0.198648139834 0.000000000000 +vt 0.040310692042 0.223760381341 0.000000000000 +vt 0.038051482290 0.225095763803 0.000000000000 +vt 0.039297934622 0.221828088164 0.000000000000 +vt 0.048715729266 0.226211413741 0.000000000000 +vt 0.048271726817 0.223471954465 0.000000000000 +vt 0.054012056440 0.227152556181 0.000000000000 +vt 0.051328878850 0.229439899325 0.000000000000 +vt 0.050317708403 0.229129895568 0.000000000000 +vt 0.048270147294 0.228640601039 0.000000000000 +vt 0.040398042649 0.225845307112 0.000000000000 +vt 0.043110940605 0.225429221988 0.000000000000 +vt 0.043746557087 0.226806730032 0.000000000000 +vt 0.041524719447 0.227182060480 0.000000000000 +vt 0.039583209902 0.227637097239 0.000000000000 +vt 0.037672769278 0.226903319359 0.000000000000 +vt 0.033523153514 0.225719004869 0.000000000000 +vt 0.036088127643 0.224684417248 0.000000000000 +vt 0.036136310548 0.226817533374 0.000000000000 +vt 0.034433234483 0.227448642254 0.000000000000 +vt 0.027782825753 0.229924663901 0.000000000000 +vt 0.030765233561 0.223758801818 0.000000000000 +vt 0.030333613977 0.231470361352 0.000000000000 +vt 0.110832214355 0.191612944007 0.000000000000 +vt 0.111078530550 0.184968620539 0.000000000000 +vt 0.106155976653 0.192477762699 0.000000000000 +vt 0.041945312172 0.228952214122 0.000000000000 +vt 0.038930263370 0.230628952384 0.000000000000 +vt 0.041834760457 0.232057794929 0.000000000000 +vt 0.044282648712 0.228836938739 0.000000000000 +vt 0.044818740338 0.232165411115 0.000000000000 +vt 0.039072107524 0.234580442309 0.000000000000 +vt 0.036424513906 0.232783898711 0.000000000000 +vt 0.106855750084 0.201680526137 0.000000000000 +vt 0.103606760502 0.198020190001 0.000000000000 +vt 0.104195758700 0.196577385068 0.000000000000 +vt 0.107200011611 0.198694974184 0.000000000000 +vt 0.109750792384 0.200388818979 0.000000000000 +vt 0.109513923526 0.203364923596 0.000000000000 +vt 0.105775907636 0.203093826771 0.000000000000 +vt 0.102690592408 0.199908792973 0.000000000000 +vt 0.050538811833 0.243682101369 0.000000000000 +vt 0.048396233469 0.240920796990 0.000000000000 +vt 0.048424374312 0.237581744790 0.000000000000 +vt 0.051719974726 0.241248175502 0.000000000000 +vt 0.046845819801 0.239993855357 0.000000000000 +vt 0.108550950885 0.195103302598 0.000000000000 +vt 0.107877954841 0.196638181806 0.000000000000 +vt 0.104663178325 0.194704324007 0.000000000000 +vt 0.111446216702 0.196098938584 0.000000000000 +vt 0.110371097922 0.198414430022 0.000000000000 +vt 0.033939246088 0.229781255126 0.000000000000 +vt 0.032943610102 0.235806867480 0.000000000000 +vt 0.036778222769 0.228347703815 0.000000000000 +vt 0.026748239994 0.237935468554 0.000000000000 +vt 0.029005868360 0.239583835006 0.000000000000 +vt 0.024600934237 0.235979780555 0.000000000000 +vt 0.036203410476 0.237542793155 0.000000000000 +vt 0.047933544964 0.242292001843 0.000000000000 +vt 0.048371467739 0.243713185191 0.000000000000 +vt 0.047026615590 0.242233023047 0.000000000000 +vt 0.047408472747 0.243272319436 0.000000000000 +vt 0.112042874098 0.199774816632 0.000000000000 +vt 0.112708196044 0.198945805430 0.000000000000 +vt 0.112421587110 0.201317355037 0.000000000000 +vt 0.115999296308 0.201012045145 0.000000000000 +vt 0.047676410526 0.245324388146 0.000000000000 +vt 0.046835009009 0.243697628379 0.000000000000 +vt 0.046366009861 0.242653593421 0.000000000000 +vt 0.116282775998 0.196683213115 0.000000000000 +vt 0.054629202932 0.245314940810 0.000000000000 +vt 0.055006336421 0.243421837687 0.000000000000 +vt 0.054401572794 0.246826633811 0.000000000000 +vt 0.049971643835 0.245547279716 0.000000000000 +vt 0.045614894480 0.244002953172 0.000000000000 +vt 0.046210203320 0.243990585208 0.000000000000 +vt 0.046083893627 0.245279118419 0.000000000000 +vt 0.044977705926 0.244760379195 0.000000000000 +vt 0.044843737036 0.243163123727 0.000000000000 +vt 0.045724090189 0.242940440774 0.000000000000 +vt 0.044279497117 0.243847146630 0.000000000000 +vt 0.042543780059 0.243463918567 0.000000000000 +vt 0.042998816818 0.241575345397 0.000000000000 +vt 0.043060954660 0.245589390397 0.000000000000 +vt 0.050320636481 0.250064343214 0.000000000000 +vt 0.046863149852 0.247579082847 0.000000000000 +vt 0.044486861676 0.247248783708 0.000000000000 +vt 0.115950897336 0.205869093537 0.000000000000 +vt 0.111902818084 0.203687563539 0.000000000000 +vt 0.067590266466 0.245651528239 0.000000000000 +vt 0.060156088322 0.247964099050 0.000000000000 +vt 0.059522051364 0.246006831527 0.000000000000 +vt 0.064255714417 0.241894826293 0.000000000000 +vt 0.075842648745 0.243643149734 0.000000000000 +vt 0.076406665146 0.251217573881 0.000000000000 +vt 0.068737201393 0.251990318298 0.000000000000 +vt 0.061447802931 0.252729058266 0.000000000000 +vt 0.101252302527 0.229214087129 0.000000000000 +vt 0.107055231929 0.225204750896 0.000000000000 +vt 0.110550090671 0.228503510356 0.000000000000 +vt 0.103125378489 0.234605416656 0.000000000000 +vt 0.093981824815 0.227124422789 0.000000000000 +vt 0.102826148272 0.221592798829 0.000000000000 +vt 0.093353867531 0.237001970410 0.000000000000 +vt 0.031605061144 0.248132273555 0.000000000000 +vt 0.033780287951 0.241846427321 0.000000000000 +vt 0.038934987038 0.242647275329 0.000000000000 +vt 0.038883429021 0.246692433953 0.000000000000 +vt 0.040764149278 0.250432223082 0.000000000000 +vt 0.034480068833 0.253740221262 0.000000000000 +vt 0.026098441333 0.256615221500 0.000000000000 +vt 0.024784889072 0.253078043461 0.000000000000 +vt 0.027103310451 0.246195510030 0.000000000000 +vt 0.022952351719 0.252045035362 0.000000000000 +vt 0.043932076544 0.254584789276 0.000000000000 +vt 0.049854788929 0.255521208048 0.000000000000 +vt 0.035871531814 0.256568402052 0.000000000000 +vt 0.127526775002 0.205384328961 0.000000000000 +vt 0.129298523068 0.208109617233 0.000000000000 +vt 0.124919943511 0.212541341782 0.000000000000 +vt 0.122282020748 0.208313822746 0.000000000000 +vt 0.130605995655 0.199026852846 0.000000000000 +vt 0.134021386504 0.202176094055 0.000000000000 +vt 0.123184211552 0.201524719596 0.000000000000 +vt 0.043590750545 0.262480288744 0.000000000000 +vt 0.045658569783 0.265317708254 0.000000000000 +vt 0.042624827474 0.268781721592 0.000000000000 +vt 0.040003802627 0.268262714148 0.000000000000 +vt 0.049783188850 0.260548025370 0.000000000000 +vt 0.050202202052 0.262952446938 0.000000000000 +vt 0.035101722926 0.267388671637 0.000000000000 +vt 0.036307651550 0.262090772390 0.000000000000 +vt 0.158384069800 0.177545472980 0.000000000000 +vt 0.163128763437 0.177713662386 0.000000000000 +vt 0.161081433296 0.184286177158 0.000000000000 +vt 0.155855119228 0.182891562581 0.000000000000 +vt 0.030163845047 0.266456753016 0.000000000000 +vt 0.028748972341 0.262917995453 0.000000000000 +vt 0.152635857463 0.180741325021 0.000000000000 +vt 0.156146481633 0.174547314644 0.000000000000 +vt 0.108293592930 0.175105020404 0.000000000000 +vt 0.103180319071 0.172587782145 0.000000000000 +vt 0.102925881743 0.166502520442 0.000000000000 +vt 0.107659325004 0.167699888349 0.000000000000 +vt 0.091472923756 0.255974650383 0.000000000000 +vt 0.083825305104 0.257546931505 0.000000000000 +vt 0.084012404084 0.249293193221 0.000000000000 +vt 0.091871894896 0.246349737048 0.000000000000 +vt 0.112725540996 0.167742446065 0.000000000000 +vt 0.113225832582 0.171109184623 0.000000000000 +vt 0.035772006959 0.183283552527 0.000000000000 +vt 0.035782817751 0.183923900127 0.000000000000 +vt 0.033255446702 0.184070467949 0.000000000000 +vt 0.033405173570 0.183254063129 0.000000000000 +vt 0.038481753320 0.182127386332 0.000000000000 +vt 0.038974162191 0.182417154312 0.000000000000 +vt 0.034431885928 0.181669190526 0.000000000000 +vt 0.036685016006 0.180374324322 0.000000000000 +vt 0.144137382507 0.199537962675 0.000000000000 +vt 0.139657467604 0.194585889578 0.000000000000 +vt 0.144188717008 0.186229258776 0.000000000000 +vt 0.148093581200 0.188943728805 0.000000000000 +vt 0.136400818825 0.206110462546 0.000000000000 +vt 0.153703317046 0.190900772810 0.000000000000 +vt 0.151239663363 0.198920801282 0.000000000000 +vt 0.150279834867 0.205067992210 0.000000000000 +vt 0.143856838346 0.206392586231 0.000000000000 +vt 0.163417190313 0.198642060161 0.000000000000 +vt 0.164253860712 0.202018722892 0.000000000000 +vt 0.160158962011 0.199008166790 0.000000000000 +vt 0.162906080484 0.192356184125 0.000000000000 +vt 0.165629789233 0.191846653819 0.000000000000 +vt 0.028680523857 0.176149964333 0.000000000000 +vt 0.028775541112 0.179067075253 0.000000000000 +vt 0.027133254334 0.179045230150 0.000000000000 +vt 0.026841904968 0.175766751170 0.000000000000 +vt 0.107328131795 0.163071155548 0.000000000000 +vt 0.102894365788 0.161774039268 0.000000000000 +vt 0.103162080050 0.158067077398 0.000000000000 +vt 0.107190564275 0.158765062690 0.000000000000 +vt 0.034622143954 0.168636307120 0.000000000000 +vt 0.034757684916 0.167032986879 0.000000000000 +vt 0.037417437881 0.167039290071 0.000000000000 +vt 0.036150719970 0.169255033135 0.000000000000 +vt 0.032856475562 0.170001432300 0.000000000000 +vt 0.031410526484 0.168317034841 0.000000000000 +vt 0.071371294558 0.162234246731 0.000000000000 +vt 0.072683498263 0.160097971559 0.000000000000 +vt 0.074752002954 0.160783797503 0.000000000000 +vt 0.072475455701 0.163342237473 0.000000000000 +vt 0.070219628513 0.164971008897 0.000000000000 +vt 0.067989014089 0.162172779441 0.000000000000 +vt 0.070951156318 0.158560618758 0.000000000000 +vt 0.071128129959 0.166468963027 0.000000000000 +vt 0.069623641670 0.166651114821 0.000000000000 +vt 0.052506666631 0.160904929042 0.000000000000 +vt 0.057779353112 0.165149331093 0.000000000000 +vt 0.056724499911 0.167911082506 0.000000000000 +vt 0.050493102521 0.165551453829 0.000000000000 +vt 0.060259658843 0.168007910252 0.000000000000 +vt 0.059231828898 0.159990578890 0.000000000000 +vt 0.061392862350 0.158380940557 0.000000000000 +vt 0.063771635294 0.161536499858 0.000000000000 +vt 0.063607268035 0.163274914026 0.000000000000 +vt 0.055211450905 0.155678853393 0.000000000000 +vt 0.057744000107 0.153191789985 0.000000000000 +vt 0.058993611485 0.163293376565 0.000000000000 +vt 0.053434979171 0.158556342125 0.000000000000 +vt 0.064857780933 0.162417531013 0.000000000000 +vt 0.064824908972 0.161404550076 0.000000000000 +vt 0.031159481034 0.208711221814 0.000000000000 +vt 0.030880516395 0.210443794727 0.000000000000 +vt 0.029724342749 0.204800054431 0.000000000000 +vt 0.031837198883 0.204756379128 0.000000000000 +vt 0.128212377429 0.176210075617 0.000000000000 +vt 0.128955841064 0.177864745259 0.000000000000 +vt 0.126242950559 0.177906855941 0.000000000000 +vt 0.125418648124 0.176409572363 0.000000000000 +vt 0.129953056574 0.174939975142 0.000000000000 +vt 0.130758658051 0.176998347044 0.000000000000 +vt 0.121036924422 0.175653725863 0.000000000000 +vt 0.121420361102 0.178308978677 0.000000000000 +vt 0.123617418110 0.183743998408 0.000000000000 +vt 0.117588669062 0.183899804950 0.000000000000 +vt 0.115403994918 0.191726654768 0.000000000000 +vt 0.122710488737 0.192234605551 0.000000000000 +vt 0.123056329787 0.196519747376 0.000000000000 +vt 0.128924548626 0.189431414008 0.000000000000 +vt 0.129672512412 0.193513929844 0.000000000000 +vt 0.133775278926 0.185372322798 0.000000000000 +vt 0.134995400906 0.187966778874 0.000000000000 +vt 0.136989831924 0.191276341677 0.000000000000 +vt 0.139916166663 0.181990936399 0.000000000000 +vt 0.141775041819 0.183941915631 0.000000000000 +vt 0.145468041301 0.175736352801 0.000000000000 +vt 0.147888004780 0.177232280374 0.000000000000 +vt 0.149156302214 0.178392961621 0.000000000000 +vt 0.151406511664 0.170416608453 0.000000000000 +vt 0.153140649199 0.171435669065 0.000000000000 +vt 0.026889864355 0.258701503277 0.000000000000 +vt 0.148213580251 0.169269666076 0.000000000000 +vt 0.138399973512 0.180339202285 0.000000000000 +vt 0.143568634987 0.174784168601 0.000000000000 +vt 0.146306514740 0.170045778155 0.000000000000 +vt 0.137052193284 0.178213953972 0.000000000000 +vt 0.141616314650 0.173843026161 0.000000000000 +vt 0.144707694650 0.169350728393 0.000000000000 +vt 0.021730657667 0.250446200371 0.000000000000 +vt 0.024742785841 0.244501665235 0.000000000000 +vt 0.018961701542 0.249092146754 0.000000000000 +vt 0.022073570639 0.243767663836 0.000000000000 +vt 0.023706618696 0.235825523734 0.000000000000 +vt 0.027095658705 0.229019328952 0.000000000000 +vt 0.029609059915 0.222379729152 0.000000000000 +vt 0.030542327091 0.216693878174 0.000000000000 +vt 0.033057313412 0.217472910881 0.000000000000 +vt 0.087314084172 0.175335809588 0.000000000000 +vt 0.094248183072 0.178092375398 0.000000000000 +vt 0.092181935906 0.179499372840 0.000000000000 +vt 0.085963152349 0.177274391055 0.000000000000 +vt 0.081338465214 0.174150139093 0.000000000000 +vt 0.082193829119 0.172002837062 0.000000000000 +vt 0.076521947980 0.167970299721 0.000000000000 +vt 0.077380686998 0.167476311326 0.000000000000 +vt 0.081656381488 0.178617432714 0.000000000000 +vt 0.077681265771 0.174922868609 0.000000000000 +vt 0.087579086423 0.180975034833 0.000000000000 +vt 0.074853092432 0.169260442257 0.000000000000 +vt 0.079015091062 0.179725423455 0.000000000000 +vt 0.076188489795 0.181088745594 0.000000000000 +vt 0.074826754630 0.175708204508 0.000000000000 +vt 0.082938641310 0.183109730482 0.000000000000 +vt 0.078197099268 0.184789612889 0.000000000000 +vt 0.070867173374 0.171145886183 0.000000000000 +vt 0.073829539120 0.169667065144 0.000000000000 +vt 0.031271602958 0.196384206414 0.000000000000 +vt 0.033982921392 0.194425582886 0.000000000000 +vt 0.037058766931 0.199865102768 0.000000000000 +vt 0.034688781947 0.202102705836 0.000000000000 +vt 0.033738177270 0.202948838472 0.000000000000 +vt 0.030448889360 0.197130590677 0.000000000000 +vt 0.028569748625 0.198085710406 0.000000000000 +vt 0.036571081728 0.216693878174 0.000000000000 +vt 0.033219423145 0.214136794209 0.000000000000 +vt 0.035667311400 0.220581635833 0.000000000000 +vt 0.030702864751 0.212936937809 0.000000000000 +vt 0.037512231618 0.221022486687 0.000000000000 +vt 0.039851140231 0.198102816939 0.000000000000 +vt 0.041124176234 0.203433588147 0.000000000000 +vt 0.037788044661 0.191379234195 0.000000000000 +vt 0.041217606515 0.195904180408 0.000000000000 +vt 0.067828707397 0.174960240722 0.000000000000 +vt 0.038927104324 0.189132183790 0.000000000000 +vt 0.041049417108 0.184728831053 0.000000000000 +vt 0.043036188930 0.186458468437 0.000000000000 +vt 0.065335564315 0.175491616130 0.000000000000 +vt 0.064928933978 0.179175376892 0.000000000000 +vt 0.059944216162 0.177007809281 0.000000000000 +vt 0.060216885060 0.175005495548 0.000000000000 +vt 0.055878814310 0.175014957786 0.000000000000 +vt 0.064486503601 0.180831611156 0.000000000000 +vt 0.059665244073 0.178134486079 0.000000000000 +vt 0.055603001267 0.176066651940 0.000000000000 +vt 0.059327062219 0.179134845734 0.000000000000 +vt 0.054891061038 0.176806747913 0.000000000000 +vt 0.052252914757 0.175443425775 0.000000000000 +vt 0.054579224437 0.177642062306 0.000000000000 +vt 0.051933418959 0.176275372505 0.000000000000 +vt 0.054217841476 0.178369775414 0.000000000000 +vt 0.051375713199 0.176691457629 0.000000000000 +vt 0.058970417827 0.180060461164 0.000000000000 +vt 0.058582257479 0.180961072445 0.000000000000 +vt 0.057680051774 0.181828826666 0.000000000000 +vt 0.062502883375 0.183891922235 0.000000000000 +vt 0.061697278172 0.184658572078 0.000000000000 +vt 0.050166402012 0.187552273273 0.000000000000 +vt 0.051037531346 0.187452524900 0.000000000000 +vt 0.054431293160 0.193168088794 0.000000000000 +vt 0.049586858600 0.182190433145 0.000000000000 +vt 0.049161311239 0.182690724730 0.000000000000 +vt 0.048391725868 0.182542562485 0.000000000000 +vt 0.049334455281 0.187815472484 0.000000000000 +vt 0.048377547413 0.188716322184 0.000000000000 +vt 0.047788541764 0.182509928942 0.000000000000 +vt 0.046637099236 0.188832953572 0.000000000000 +vt 0.046065207571 0.182266756892 0.000000000000 +vt 0.047180842608 0.178921401501 0.000000000000 +vt 0.047978799790 0.180811345577 0.000000000000 +vt 0.042535897344 0.180803701282 0.000000000000 +vt 0.063310064375 0.188303396106 0.000000000000 +vt 0.064299397171 0.188258126378 0.000000000000 +vt 0.065667442977 0.187005370855 0.000000000000 +vt 0.067313097417 0.191977471113 0.000000000000 +vt 0.069538079202 0.197437480092 0.000000000000 +vt 0.067683927715 0.207009509206 0.000000000000 +vt 0.063888035715 0.210395619273 0.000000000000 +vt 0.073146872222 0.203862056136 0.000000000000 +vt 0.071523271501 0.214295744896 0.000000000000 +vt 0.073026858270 0.194442689419 0.000000000000 +vt 0.077325977385 0.201174154878 0.000000000000 +vt 0.081237144768 0.196533709764 0.000000000000 +vt 0.076219789684 0.190154388547 0.000000000000 +vt 0.081086061895 0.187698617578 0.000000000000 +vt 0.069806240499 0.189532741904 0.000000000000 +vt 0.071710377932 0.187683090568 0.000000000000 +vt 0.067168101668 0.185359716415 0.000000000000 +vt 0.069611258805 0.183986946940 0.000000000000 +vt 0.063944101334 0.182054877281 0.000000000000 +vt 0.063255354762 0.183039709926 0.000000000000 +vt 0.074488565326 0.222574487329 0.000000000000 +vt 0.069771796465 0.223591953516 0.000000000000 +vt 0.067730538547 0.216421216726 0.000000000000 +vt 0.060474004596 0.213022723794 0.000000000000 +vt 0.053378012031 0.208070665598 0.000000000000 +vt 0.057214211673 0.207134246826 0.000000000000 +vt 0.049100745469 0.211366251111 0.000000000000 +vt 0.064397566020 0.232721552253 0.000000000000 +vt 0.067054398358 0.233078405261 0.000000000000 +vt 0.070033647120 0.233986899257 0.000000000000 +vt 0.075478121638 0.233488187194 0.000000000000 +vt 0.081782467663 0.220023691654 0.000000000000 +vt 0.083951614797 0.230261281133 0.000000000000 +vt 0.084691703320 0.240565523505 0.000000000000 +vt 0.062245752662 0.239568278193 0.000000000000 +vt 0.061321716756 0.238784536719 0.000000000000 +vt 0.063168220222 0.233371362090 0.000000000000 +vt 0.063390895724 0.227339446545 0.000000000000 +vt 0.058965694159 0.225806355476 0.000000000000 +vt 0.050889376551 0.232737079263 0.000000000000 +vt 0.051590736955 0.236221358180 0.000000000000 +vt 0.050666701049 0.236511155963 0.000000000000 +vt 0.049805026501 0.232663914561 0.000000000000 +vt 0.049557130784 0.236889854074 0.000000000000 +vt 0.048572305590 0.232626542449 0.000000000000 +vt 0.052862185985 0.239495113492 0.000000000000 +vt 0.052227925509 0.240581259131 0.000000000000 +vt 0.055151116103 0.242463573813 0.000000000000 +vt 0.058518532664 0.242689415812 0.000000000000 +vt 0.058837804943 0.243750557303 0.000000000000 +vt 0.027835739776 0.198754191399 0.000000000000 +vt 0.102103173733 0.178665846586 0.000000000000 +vt 0.020530804992 0.243255212903 0.000000000000 +vt 0.017403624952 0.246614530683 0.000000000000 +vt 0.142661705613 0.167488694191 0.000000000000 +vt 0.138711810112 0.171222224832 0.000000000000 +vt 0.136936917901 0.169240176678 0.000000000000 +vt 0.140343055129 0.166225120425 0.000000000000 +vt 0.133923217654 0.174637824297 0.000000000000 +vt 0.132665947080 0.181584313512 0.000000000000 +vt 0.128641068935 0.183620840311 0.000000000000 +vt 0.132804647088 0.173296123743 0.000000000000 +vt 0.065053895116 0.163422614336 0.000000000000 +vt 0.063069596887 0.163681775331 0.000000000000 +vt 0.064668200910 0.167430609465 0.000000000000 +vt 0.063209198415 0.168160781264 0.000000000000 +vt 0.063756324351 0.165098443627 0.000000000000 +vt 0.065168723464 0.164823085070 0.000000000000 +vt 0.065913312137 0.169554486871 0.000000000000 +vt 0.062940359116 0.170286476612 0.000000000000 +vt 0.061481129378 0.167505130172 0.000000000000 +vt 0.060151811689 0.170392528176 0.000000000000 +vt 0.060107905418 0.172657802701 0.000000000000 +vt 0.057210605592 0.172009363770 0.000000000000 +vt 0.057532805949 0.170253381133 0.000000000000 +vt 0.063048884273 0.172646328807 0.000000000000 +vt 0.048934575170 0.168896585703 0.000000000000 +vt 0.049731176347 0.167191714048 0.000000000000 +vt 0.042593311518 0.164057999849 0.000000000000 +vt 0.043497528881 0.162384659052 0.000000000000 +vt 0.044287156314 0.160732463002 0.000000000000 +vt 0.033884081990 0.156096965075 0.000000000000 +vt 0.034770067781 0.153932109475 0.000000000000 +vt 0.036515694112 0.150483399630 0.000000000000 +vt 0.046103026718 0.155740767717 0.000000000000 +vt 0.039584781975 0.147428721189 0.000000000000 +vt 0.047613140196 0.151688650250 0.000000000000 +vt 0.043061178178 0.143725812435 0.000000000000 +vt 0.050141181797 0.149046242237 0.000000000000 +vt 0.047894362360 0.140243798494 0.000000000000 +vt 0.053615551442 0.146738171577 0.000000000000 +vt 0.053296964616 0.138070821762 0.000000000000 +vt 0.056939747185 0.144772797823 0.000000000000 +vt 0.060318645090 0.151515960693 0.000000000000 +vt 0.060732934624 0.143554925919 0.000000000000 +vt 0.062500409782 0.150664418936 0.000000000000 +vt 0.064538739622 0.156376838684 0.000000000000 +vt 0.063412509859 0.157254040241 0.000000000000 +vt 0.065951131284 0.161686450243 0.000000000000 +vt 0.064260445535 0.149016290903 0.000000000000 +vt 0.065228387713 0.155802473426 0.000000000000 +vt 0.067762054503 0.156014785171 0.000000000000 +vt 0.067490294576 0.161968335509 0.000000000000 +vt 0.068041928113 0.150318130851 0.000000000000 +vt 0.072004206479 0.152485474944 0.000000000000 +vt 0.068994782865 0.144661113620 0.000000000000 +vt 0.072091117501 0.145224899054 0.000000000000 +vt 0.075190380216 0.145809859037 0.000000000000 +vt 0.074453443289 0.154495447874 0.000000000000 +vt 0.078592248261 0.146916940808 0.000000000000 +vt 0.077539868653 0.155462488532 0.000000000000 +vt 0.083513915539 0.149794429541 0.000000000000 +vt 0.080134786665 0.156474098563 0.000000000000 +vt 0.076403960586 0.162150710821 0.000000000000 +vt 0.082034416497 0.157592907548 0.000000000000 +vt 0.077113650739 0.164572715759 0.000000000000 +vt 0.075192175806 0.166414484382 0.000000000000 +vt 0.073551476002 0.164994657040 0.000000000000 +vt 0.072395749390 0.167818546295 0.000000000000 +vt 0.086013361812 0.151608720422 0.000000000000 +vt 0.082925580442 0.138807758689 0.000000000000 +vt 0.088270992041 0.142190933228 0.000000000000 +vt 0.092381425202 0.144706368446 0.000000000000 +vt 0.033781412989 0.159828022122 0.000000000000 +vt 0.032040510327 0.158961847425 0.000000000000 +vt 0.032221313566 0.155238896608 0.000000000000 +vt 0.033128913492 0.152995914221 0.000000000000 +vt 0.034247931093 0.149646267295 0.000000000000 +vt 0.036089029163 0.146674454212 0.000000000000 +vt 0.039337117225 0.142542183399 0.000000000000 +vt 0.044477183372 0.138003721833 0.000000000000 +vt 0.051182758063 0.134617850184 0.000000000000 +vt 0.057887878269 0.132730364799 0.000000000000 +vt 0.058954205364 0.136307403445 0.000000000000 +vt 0.065197318792 0.135614156723 0.000000000000 +vt 0.065236717463 0.143920347095 0.000000000000 +vt 0.070889234543 0.135065451264 0.000000000000 +vt 0.075503565371 0.136102512479 0.000000000000 +vt 0.079501420259 0.136758163571 0.000000000000 +vt 0.080287218094 0.135892897844 0.000000000000 +vt 0.083798281848 0.137524142861 0.000000000000 +vt 0.089716039598 0.140691623092 0.000000000000 +vt 0.143560752273 0.209685027599 0.000000000000 +vt 0.135448858142 0.212041050196 0.000000000000 +vt 0.136980593204 0.209762930870 0.000000000000 +vt 0.149614498019 0.207925885916 0.000000000000 +vt 0.093936122954 0.143564611673 0.000000000000 +vt 0.131235316396 0.212935358286 0.000000000000 +vt 0.130912885070 0.210914373398 0.000000000000 +vt 0.130802333355 0.214139938354 0.000000000000 +vt 0.126496925950 0.214841082692 0.000000000000 +vt 0.127033010125 0.216304361820 0.000000000000 +vt 0.123436622322 0.220508232713 0.000000000000 +vt 0.122662074864 0.219344407320 0.000000000000 +vt 0.127302527428 0.217270508409 0.000000000000 +vt 0.124103523791 0.221681743860 0.000000000000 +vt 0.121738053858 0.226466968656 0.000000000000 +vt 0.119399368763 0.224682837725 0.000000000000 +vt 0.071574836969 0.132907792926 0.000000000000 +vt 0.076760835946 0.134390205145 0.000000000000 +vt 0.065341189504 0.132802188396 0.000000000000 +vt 0.115896403790 0.229595944285 0.000000000000 +vt 0.113967284560 0.229628607631 0.000000000000 +vt 0.118455067277 0.224354103208 0.000000000000 +vt 0.118444040418 0.231105849147 0.000000000000 +vt 0.116246968508 0.222922116518 0.000000000000 +vt 0.121256656945 0.217508718371 0.000000000000 +vt 0.113348767161 0.220198199153 0.000000000000 +vt 0.118779063225 0.214370504022 0.000000000000 +vt 0.109506264329 0.216642320156 0.000000000000 +vt 0.113111913204 0.210065305233 0.000000000000 +vt 0.106790229678 0.213530674577 0.000000000000 +vt 0.110659286380 0.209100753069 0.000000000000 +vt 0.105615362525 0.211812064052 0.000000000000 +vt 0.108720943332 0.208151713014 0.000000000000 +vt 0.104931339622 0.210859879851 0.000000000000 +vt 0.107262387872 0.207199767232 0.000000000000 +vt 0.104268938303 0.209731861949 0.000000000000 +vt 0.106411516666 0.206867888570 0.000000000000 +vt 0.099854543805 0.210535883904 0.000000000000 +vt 0.101010948420 0.212820082903 0.000000000000 +vt 0.101252302527 0.214150756598 0.000000000000 +vt 0.100541725755 0.216653347015 0.000000000000 +vt 0.109188362956 0.234976246953 0.000000000000 +vt 0.112999781966 0.234926506877 0.000000000000 +vt 0.116525933146 0.235893979669 0.000000000000 +vt 0.113097950816 0.239953324199 0.000000000000 +vt 0.109616830945 0.240531280637 0.000000000000 +vt 0.105305328965 0.241614267230 0.000000000000 +vt 0.103323295712 0.248255476356 0.000000000000 +vt 0.107525810599 0.246296599507 0.000000000000 +vt 0.106832340360 0.251131802797 0.000000000000 +vt 0.103008523583 0.253494113684 0.000000000000 +vt 0.111104875803 0.245297834277 0.000000000000 +vt 0.110048457980 0.249654576182 0.000000000000 +vt 0.096914246678 0.264147579670 0.000000000000 +vt 0.095100626349 0.260864347219 0.000000000000 +vt 0.103348061442 0.257600039244 0.000000000000 +vt 0.106801033020 0.254496067762 0.000000000000 +vt 0.169106185436 0.192728593946 0.000000000000 +vt 0.170338675380 0.195399373770 0.000000000000 +vt 0.099874362350 0.170928612351 0.000000000000 +vt 0.097011074424 0.169942215085 0.000000000000 +vt 0.095663733780 0.165094852448 0.000000000000 +vt 0.099198222160 0.165355354548 0.000000000000 +vt 0.093683719635 0.168949723244 0.000000000000 +vt 0.092458203435 0.165013566613 0.000000000000 +vt 0.090356379747 0.159508973360 0.000000000000 +vt 0.094260796905 0.160128593445 0.000000000000 +vt 0.099197551608 0.159526988864 0.000000000000 +vt 0.033023308963 0.163863465190 0.000000000000 +vt 0.037694837898 0.165538623929 0.000000000000 +vt 0.027775174007 0.166775852442 0.000000000000 +vt 0.088919214904 0.165129065514 0.000000000000 +vt 0.087757416070 0.161358624697 0.000000000000 +vt 0.041305195540 0.168003618717 0.000000000000 +vt 0.039413448423 0.169479295611 0.000000000000 +vt 0.041364412755 0.172144010663 0.000000000000 +vt 0.039971377701 0.172480389476 0.000000000000 +vt 0.038754414767 0.172880932689 0.000000000000 +vt 0.037746172398 0.170685455203 0.000000000000 +vt 0.041679184884 0.177758023143 0.000000000000 +vt 0.040490355343 0.177621126175 0.000000000000 +vt 0.038885232061 0.177430868149 0.000000000000 +vt 0.031558681279 0.181349694729 0.000000000000 +vt 0.032375093549 0.182451382279 0.000000000000 +vt 0.031321812421 0.183208808303 0.000000000000 +vt 0.029306901619 0.181765779853 0.000000000000 +vt 0.030110931024 0.184735804796 0.000000000000 +vt 0.026748467237 0.183448821306 0.000000000000 +vt 0.025492548943 0.179579749703 0.000000000000 +vt 0.025225963444 0.184383660555 0.000000000000 +vt 0.023586835712 0.180322989821 0.000000000000 +vt 0.023586835712 0.175274342299 0.000000000000 +vt 0.025453597307 0.175285145640 0.000000000000 +vt 0.025660742074 0.170873910189 0.000000000000 +vt 0.026788990945 0.172416672111 0.000000000000 +vt 0.028133621439 0.171821355820 0.000000000000 +vt 0.117384001613 0.164725363255 0.000000000000 +vt 0.112397044897 0.164127796888 0.000000000000 +vt 0.111941114068 0.159629434347 0.000000000000 +vt 0.116640761495 0.160034939647 0.000000000000 +vt 0.117678731680 0.167584165931 0.000000000000 +vt 0.121842063963 0.165160596371 0.000000000000 +vt 0.122367806733 0.167285159230 0.000000000000 +vt 0.123244337738 0.169767260551 0.000000000000 +vt 0.118570342660 0.170628488064 0.000000000000 +vt 0.076927222311 0.256597876549 0.000000000000 +vt 0.069735996425 0.256459414959 0.000000000000 +vt 0.126834645867 0.166902616620 0.000000000000 +vt 0.127785488963 0.169480189681 0.000000000000 +vt 0.062401559204 0.256990790367 0.000000000000 +vt 0.061513323337 0.259970039129 0.000000000000 +vt 0.055246125907 0.260234832764 0.000000000000 +vt 0.055534552783 0.256361246109 0.000000000000 +vt 0.055091898888 0.251717656851 0.000000000000 +vt 0.055174525827 0.262654781342 0.000000000000 +vt 0.131237342954 0.166645258665 0.000000000000 +vt 0.126206025481 0.164752155542 0.000000000000 +vt 0.130478784442 0.164564833045 0.000000000000 +vt 0.128323823214 0.157905861735 0.000000000000 +vt 0.124372817576 0.158351898193 0.000000000000 +vt 0.120934464037 0.159285396338 0.000000000000 +vt 0.031951349229 0.187119752169 0.000000000000 +vt 0.032728809863 0.185262441635 0.000000000000 +vt 0.035856213421 0.185055300593 0.000000000000 +vt 0.035672266036 0.187161847949 0.000000000000 +vt 0.028532592580 0.186527818441 0.000000000000 +vt 0.128893464804 0.155811250210 0.000000000000 +vt 0.132322803140 0.155696868896 0.000000000000 +vt 0.132445976138 0.157863765955 0.000000000000 +vt 0.134399861097 0.164290815592 0.000000000000 +vt 0.137302115560 0.158585160971 0.000000000000 +vt 0.138255640864 0.163551405072 0.000000000000 +vt 0.141750499606 0.159247785807 0.000000000000 +vt 0.142176494002 0.162172332406 0.000000000000 +vt 0.167481020093 0.185227319598 0.000000000000 +vt 0.170263931155 0.178922742605 0.000000000000 +vt 0.172615230083 0.181126117706 0.000000000000 +vt 0.170385509729 0.185613691807 0.000000000000 +vt 0.137086644769 0.156343296170 0.000000000000 +vt 0.141829982400 0.156543448567 0.000000000000 +vt 0.084312535822 0.167729392648 0.000000000000 +vt 0.084777034819 0.164774447680 0.000000000000 +vt 0.089359387755 0.168153122067 0.000000000000 +vt 0.136736750603 0.154593154788 0.000000000000 +vt 0.141693994403 0.153399839997 0.000000000000 +vt 0.084533862770 0.161654248834 0.000000000000 +vt 0.132128268480 0.155035361648 0.000000000000 +vt 0.168764844537 0.189312979579 0.000000000000 +vt 0.165124982595 0.185052827001 0.000000000000 +vt 0.167759761214 0.178524002433 0.000000000000 +vt 0.158733054996 0.192014843225 0.000000000000 +vt 0.156409904361 0.199086070061 0.000000000000 +vt 0.155019804835 0.205063492060 0.000000000000 +vt 0.157773226500 0.205484077334 0.000000000000 +vt 0.157165527344 0.207992762327 0.000000000000 +vt 0.154318660498 0.207045525312 0.000000000000 +vt 0.039390247315 0.183007746935 0.000000000000 +vt 0.109839722514 0.252810090780 0.000000000000 +vt 0.161794945598 0.206194669008 0.000000000000 +vt 0.160380065441 0.209382638335 0.000000000000 +vt 0.030997594818 0.172260865569 0.000000000000 +vt 0.028872353956 0.171737149358 0.000000000000 +vt 0.040024068207 0.239364311099 0.000000000000 +vt 0.041931357235 0.237304374576 0.000000000000 +vt 0.044145528227 0.240434691310 0.000000000000 +vt 0.045424859971 0.239937767386 0.000000000000 +vt 0.044002104551 0.236135587096 0.000000000000 +vt 0.100529327989 0.192775428295 0.000000000000 +vt 0.086145527661 0.185369163752 0.000000000000 +vt 0.074024297297 0.186244800687 0.000000000000 +vt 0.062078233808 0.164369389415 0.000000000000 +vt 0.030012762174 0.176220208406 0.000000000000 +vt 0.112108394504 0.179039835930 0.000000000000 +vt 0.112108394504 0.176560640335 0.000000000000 +vt 0.069380022585 0.168249264359 0.000000000000 +vt 0.065014265478 0.171704053879 0.000000000000 +vt 0.048454102129 0.180325239897 0.000000000000 +vt 0.146105453372 0.080951645970 0.000000000000 +vt 0.144684508443 0.079957589507 0.000000000000 +vt 0.149933993816 0.076390907168 0.000000000000 +vt 0.151316225529 0.078695371747 0.000000000000 +vt 0.153613030910 0.080021530390 0.000000000000 +vt 0.145809382200 0.082432046533 0.000000000000 +vt 0.143933385611 0.080989018083 0.000000000000 +vt 0.154818966985 0.082354143262 0.000000000000 +vt 0.145563289523 0.085070192814 0.000000000000 +vt 0.143352255225 0.081543803215 0.000000000000 +vt 0.144436612725 0.082785755396 0.000000000000 +vt 0.143652841449 0.084858089685 0.000000000000 +vt 0.146591797471 0.088287875056 0.000000000000 +vt 0.154597863555 0.085654467344 0.000000000000 +vt 0.153173521161 0.089168235660 0.000000000000 +vt 0.152664005756 0.094450607896 0.000000000000 +vt 0.140441447496 0.090233892202 0.000000000000 +vt 0.138348862529 0.080004423857 0.000000000000 +vt 0.139517411590 0.078812226653 0.000000000000 +vt 0.140799894929 0.078904315829 0.000000000000 +vt 0.140338554978 0.079870223999 0.000000000000 +vt 0.139646649361 0.078048720956 0.000000000000 +vt 0.142411112785 0.080079168081 0.000000000000 +vt 0.142763257027 0.078845098615 0.000000000000 +vt 0.144676625729 0.071552544832 0.000000000000 +vt 0.147951960564 0.073969364166 0.000000000000 +vt 0.165310516953 0.075303182006 0.000000000000 +vt 0.162680253386 0.081052973866 0.000000000000 +vt 0.159637063742 0.079843878746 0.000000000000 +vt 0.160642147064 0.076046422124 0.000000000000 +vt 0.138225704432 0.079229891300 0.000000000000 +vt 0.137284547091 0.079804927111 0.000000000000 +vt 0.137759849429 0.078385323286 0.000000000000 +vt 0.137967005372 0.069246500731 0.000000000000 +vt 0.141144156456 0.069925799966 0.000000000000 +vt 0.135236993432 0.081436410546 0.000000000000 +vt 0.135894671082 0.079535424709 0.000000000000 +vt 0.134577959776 0.080499768257 0.000000000000 +vt 0.135107755661 0.084568321705 0.000000000000 +vt 0.134055823088 0.084435924888 0.000000000000 +vt 0.133896872401 0.080932959914 0.000000000000 +vt 0.133128866553 0.069963172078 0.000000000000 +vt 0.135289907455 0.069450497627 0.000000000000 +vt 0.163844078779 0.085923969746 0.000000000000 +vt 0.162402868271 0.094224542379 0.000000000000 +vt 0.132371440530 0.082354143262 0.000000000000 +vt 0.128753200173 0.071022763848 0.000000000000 +vt 0.105484560132 0.044374290854 0.000000000000 +vt 0.104406282306 0.042068254203 0.000000000000 +vt 0.105255573988 0.042082216591 0.000000000000 +vt 0.106301188469 0.043263372034 0.000000000000 +vt 0.105341121554 0.039797786623 0.000000000000 +vt 0.107362121344 0.040538098663 0.000000000000 +vt 0.102971151471 0.044095326215 0.000000000000 +vt 0.109018579125 0.049298208207 0.000000000000 +vt 0.103879645467 0.048260468990 0.000000000000 +vt 0.106288582087 0.055648040026 0.000000000000 +vt 0.099673971534 0.057078447193 0.000000000000 +vt 0.097955361009 0.055400144309 0.000000000000 +vt 0.110525324941 0.046463962644 0.000000000000 +vt 0.102905854583 0.041538458318 0.000000000000 +vt 0.103917017579 0.039889875799 0.000000000000 +vt 0.118358477950 0.052561160177 0.000000000000 +vt 0.113901987672 0.058519665152 0.000000000000 +vt 0.118132635951 0.047917779535 0.000000000000 +vt 0.118020296097 0.061421241611 0.000000000000 +vt 0.122165165842 0.055722784251 0.000000000000 +vt 0.126941144466 0.044675100595 0.000000000000 +vt 0.128192335367 0.048273082823 0.000000000000 +vt 0.129756718874 0.051271017641 0.000000000000 +vt 0.104457631707 0.038520034403 0.000000000000 +vt 0.106935217977 0.039335094392 0.000000000000 +vt 0.110430315137 0.041719038039 0.000000000000 +vt 0.109509423375 0.038915853947 0.000000000000 +vt 0.103522777557 0.036517728120 0.000000000000 +vt 0.097110807896 0.038964264095 0.000000000000 +vt 0.099772140384 0.040999215096 0.000000000000 +vt 0.097977206111 0.041525851935 0.000000000000 +vt 0.096010699868 0.040015961975 0.000000000000 +vt 0.098011419177 0.043816577643 0.000000000000 +vt 0.095403008163 0.041276607662 0.000000000000 +vt 0.100398525596 0.044103201479 0.000000000000 +vt 0.092719830573 0.059615265578 0.000000000000 +vt 0.090432256460 0.055584091693 0.000000000000 +vt 0.103748843074 0.062081839889 0.000000000000 +vt 0.109088838100 0.036444552243 0.000000000000 +vt 0.116189554334 0.040374409407 0.000000000000 +vt 0.117214694619 0.043208893389 0.000000000000 +vt 0.100217953324 0.036773279309 0.000000000000 +vt 0.101216748357 0.031871203333 0.000000000000 +vt 0.129965662956 0.062457408756 0.000000000000 +vt 0.134202405810 0.063657253981 0.000000000000 +vt 0.126032650471 0.071523055434 0.000000000000 +vt 0.126584276557 0.061618920416 0.000000000000 +vt 0.126425325871 0.056240197271 0.000000000000 +vt 0.131047084928 0.056420769542 0.000000000000 +vt 0.136421307921 0.063021421432 0.000000000000 +vt 0.135489389300 0.060313250870 0.000000000000 +vt 0.137195616961 0.059194456786 0.000000000000 +vt 0.136729776859 0.057686138898 0.000000000000 +vt 0.156631231308 0.049092646688 0.000000000000 +vt 0.157220244408 0.050672557205 0.000000000000 +vt 0.155348747969 0.051238145679 0.000000000000 +vt 0.152967959642 0.049707990140 0.000000000000 +vt 0.072539396584 0.024206470698 0.000000000000 +vt 0.073009975255 0.022490788251 0.000000000000 +vt 0.074167720973 0.023411672562 0.000000000000 +vt 0.075313083827 0.024346742779 0.000000000000 +vt 0.078608684242 0.024770483375 0.000000000000 +vt 0.076113961637 0.022561032325 0.000000000000 +vt 0.074407733977 0.021668069065 0.000000000000 +vt 0.085832558572 0.034895710647 0.000000000000 +vt 0.088694959879 0.030288133770 0.000000000000 +vt 0.092079266906 0.032754708081 0.000000000000 +vt 0.090345121920 0.035805787891 0.000000000000 +vt 0.080766797066 0.037424653769 0.000000000000 +vt 0.083163343370 0.031321149319 0.000000000000 +vt 0.082765944302 0.039579611272 0.000000000000 +vt 0.075439170003 0.026426948607 0.000000000000 +vt 0.079141400754 0.028394807130 0.000000000000 +vt 0.065825045109 0.019637845457 0.000000000000 +vt 0.070792645216 0.020507168025 0.000000000000 +vt 0.069720685482 0.023076642305 0.000000000000 +vt 0.066453002393 0.021015118808 0.000000000000 +vt 0.074630416930 0.020555578172 0.000000000000 +vt 0.078393660486 0.021780196577 0.000000000000 +vt 0.118059247732 0.097139850259 0.000000000000 +vt 0.114740446210 0.098579719663 0.000000000000 +vt 0.114250972867 0.095418095589 0.000000000000 +vt 0.117238104343 0.094657748938 0.000000000000 +vt 0.109638676047 0.091790616512 0.000000000000 +vt 0.115868493915 0.090512856841 0.000000000000 +vt 0.106643870473 0.097877010703 0.000000000000 +vt 0.080275960267 0.020345281810 0.000000000000 +vt 0.084542199969 0.020472947508 0.000000000000 +vt 0.082198783755 0.026802506298 0.000000000000 +vt 0.087908044457 0.024324897677 0.000000000000 +vt 0.082033514977 0.045575719327 0.000000000000 +vt 0.083040185273 0.050441998988 0.000000000000 +vt 0.079672768712 0.048204403371 0.000000000000 +vt 0.080490976572 0.044366639107 0.000000000000 +vt 0.076486371458 0.049105029553 0.000000000000 +vt 0.078130230308 0.043149676174 0.000000000000 +vt 0.081851139665 0.052377205342 0.000000000000 +vt 0.066788040102 0.023179534823 0.000000000000 +vt 0.064600206912 0.023336920887 0.000000000000 +vt 0.064584665000 0.022389467806 0.000000000000 +vt 0.066289320588 0.022115226835 0.000000000000 +vt 0.060966644436 0.023584589362 0.000000000000 +vt 0.061784636229 0.022029668093 0.000000000000 +vt 0.063617177308 0.021110359579 0.000000000000 +vt 0.091050982475 0.028800085187 0.000000000000 +vt 0.094201579690 0.030098102987 0.000000000000 +vt 0.090151712298 0.025628998876 0.000000000000 +vt 0.093743383884 0.027991328388 0.000000000000 +vt 0.066948570311 0.027383632958 0.000000000000 +vt 0.060868475586 0.030944012105 0.000000000000 +vt 0.062462348491 0.027807373554 0.000000000000 +vt 0.066029265523 0.025897156447 0.000000000000 +vt 0.059814978391 0.026431452483 0.000000000000 +vt 0.064851254225 0.024653624743 0.000000000000 +vt 0.054694723338 0.030345775187 0.000000000000 +vt 0.047921154648 0.032958924770 0.000000000000 +vt 0.043463084847 0.030261565000 0.000000000000 +vt 0.047107893974 0.029183298349 0.000000000000 +vt 0.050095032901 0.030151013285 0.000000000000 +vt 0.047431897372 0.026514083147 0.000000000000 +vt 0.050590369850 0.027707632631 0.000000000000 +vt 0.042810361832 0.027617346495 0.000000000000 +vt 0.047869820148 0.042448315769 0.000000000000 +vt 0.045954655856 0.041697423905 0.000000000000 +vt 0.046084117144 0.036520879716 0.000000000000 +vt 0.049386020750 0.038101017475 0.000000000000 +vt 0.044854771346 0.041064735502 0.000000000000 +vt 0.043885473162 0.036986950785 0.000000000000 +vt 0.051757570356 0.034210111946 0.000000000000 +vt 0.154328122735 0.043087299913 0.000000000000 +vt 0.154911056161 0.037254884839 0.000000000000 +vt 0.167563647032 0.034898862243 0.000000000000 +vt 0.161921262741 0.041362386197 0.000000000000 +vt 0.153502255678 0.030707374215 0.000000000000 +vt 0.163250565529 0.027692098171 0.000000000000 +vt 0.103868618608 0.102910131216 0.000000000000 +vt 0.111994698644 0.103447571397 0.000000000000 +vt 0.106992870569 0.109234735370 0.000000000000 +vt 0.101400464773 0.108030393720 0.000000000000 +vt 0.096481271088 0.122771069407 0.000000000000 +vt 0.089952446520 0.124826297164 0.000000000000 +vt 0.088087268174 0.119303897023 0.000000000000 +vt 0.094165779650 0.117781624198 0.000000000000 +vt 0.070482604206 0.058522816747 0.000000000000 +vt 0.077887058258 0.065487995744 0.000000000000 +vt 0.071217961609 0.071155369282 0.000000000000 +vt 0.066381409764 0.064373925328 0.000000000000 +vt 0.070337608457 0.087279632688 0.000000000000 +vt 0.063515856862 0.072370767593 0.000000000000 +vt 0.079217955470 0.082213863730 0.000000000000 +vt 0.050732221454 0.021630693227 0.000000000000 +vt 0.048374619335 0.020630329847 0.000000000000 +vt 0.048564653844 0.016099080443 0.000000000000 +vt 0.051573622972 0.018779102713 0.000000000000 +vt 0.045837800950 0.018292993307 0.000000000000 +vt 0.046268071979 0.015899594873 0.000000000000 +vt 0.051961567253 0.016921799630 0.000000000000 +vt 0.048754904419 0.013884905726 0.000000000000 +vt 0.026494264603 0.028064500540 0.000000000000 +vt 0.026460040361 0.028243724257 0.000000000000 +vt 0.026340033859 0.028218735009 0.000000000000 +vt 0.026315040886 0.028072383255 0.000000000000 +vt 0.026271361858 0.028111334890 0.000000000000 +vt 0.026316616684 0.028287407011 0.000000000000 +vt 0.026220027357 0.028083190322 0.000000000000 +vt 0.025830507278 0.027961608022 0.000000000000 +vt 0.026793498546 0.027743656188 0.000000000000 +vt 0.022305700928 0.037761259824 0.000000000000 +vt 0.020612087101 0.038116555661 0.000000000000 +vt 0.018779549748 0.032605204731 0.000000000000 +vt 0.019568044692 0.032413598150 0.000000000000 +vt 0.026293199509 0.029374904931 0.000000000000 +vt 0.026729550213 0.056939747185 0.000000000000 +vt 0.025282029063 0.059646341950 0.000000000000 +vt 0.023371588439 0.056319449097 0.000000000000 +vt 0.024051103741 0.054049205035 0.000000000000 +vt 0.023613180965 0.061910506338 0.000000000000 +vt 0.020778700709 0.056646820158 0.000000000000 +vt 0.024753816426 0.028824850917 0.000000000000 +vt 0.024046380073 0.029639910907 0.000000000000 +vt 0.021925639361 0.027996055782 0.000000000000 +vt 0.019233010709 0.029932837933 0.000000000000 +vt 0.020827110857 0.032996300608 0.000000000000 +vt 0.018511611968 0.030085492879 0.000000000000 +vt 0.018042616546 0.028514813632 0.000000000000 +vt 0.018695343286 0.028449516743 0.000000000000 +vt 0.018340270966 0.027692098171 0.000000000000 +vt 0.019049059600 0.027235481888 0.000000000000 +vt 0.018784277141 0.027503643185 0.000000000000 +vt 0.018855873495 0.026894371957 0.000000000000 +vt 0.019962288439 0.026958312839 0.000000000000 +vt 0.019748840481 0.027567584068 0.000000000000 +vt 0.160484761000 0.020033445209 0.000000000000 +vt 0.147482961416 0.021641500294 0.000000000000 +vt 0.154410749674 0.015146899968 0.000000000000 +vt 0.161012977362 0.008924962953 0.000000000000 +vt 0.166393518448 0.013308282942 0.000000000000 +vt 0.166352987289 0.025851901621 0.000000000000 +vt 0.166651993990 0.020915377885 0.000000000000 +vt 0.170089438558 0.015492964536 0.000000000000 +vt 0.019588306546 0.027807373554 0.000000000000 +vt 0.019134845585 0.027851056308 0.000000000000 +vt 0.019064817578 0.028270293027 0.000000000000 +vt 0.038729425520 0.090958446264 0.000000000000 +vt 0.036177065223 0.089736983180 0.000000000000 +vt 0.038676287979 0.085981622338 0.000000000000 +vt 0.040239315480 0.089066922665 0.000000000000 +vt 0.042406659573 0.093741580844 0.000000000000 +vt 0.040854658931 0.094687461853 0.000000000000 +vt 0.037749316543 0.094786986709 0.000000000000 +vt 0.027898332104 0.053784426302 0.000000000000 +vt 0.031369995326 0.055613588542 0.000000000000 +vt 0.030157541856 0.062759563327 0.000000000000 +vt 0.033898938447 0.060758832842 0.000000000000 +vt 0.032940682024 0.067951634526 0.000000000000 +vt 0.027729919180 0.065882235765 0.000000000000 +vt 0.093380436301 0.131579592824 0.000000000000 +vt 0.101789981127 0.126331463456 0.000000000000 +vt 0.037756975740 0.051755558699 0.000000000000 +vt 0.035693880171 0.048643913120 0.000000000000 +vt 0.039868485183 0.048481795937 0.000000000000 +vt 0.041482623667 0.049996417016 0.000000000000 +vt 0.042654555291 0.045740988106 0.000000000000 +vt 0.045040067285 0.046664800495 0.000000000000 +vt 0.036985594779 0.046448197216 0.000000000000 +vt 0.034682709724 0.086651682854 0.000000000000 +vt 0.030933646485 0.089648038149 0.000000000000 +vt 0.029764866456 0.085144937038 0.000000000000 +vt 0.031592678279 0.081364586949 0.000000000000 +vt 0.034569006413 0.082026988268 0.000000000000 +vt 0.032102201134 0.080329999328 0.000000000000 +vt 0.028744241223 0.051196273416 0.000000000000 +vt 0.030639147386 0.050709929317 0.000000000000 +vt 0.036769222468 0.056941326708 0.000000000000 +vt 0.034461375326 0.053469661623 0.000000000000 +vt 0.041688408703 0.088625833392 0.000000000000 +vt 0.044041287154 0.087036460638 0.000000000000 +vt 0.042447183281 0.080775573850 0.000000000000 +vt 0.049191255122 0.076541990042 0.000000000000 +vt 0.046822618693 0.081983312964 0.000000000000 +vt 0.044226806611 0.072259977460 0.000000000000 +vt 0.046158861369 0.086456924677 0.000000000000 +vt 0.027991769835 0.075538471341 0.000000000000 +vt 0.027059858665 0.080196022987 0.000000000000 +vt 0.025024902076 0.073586151004 0.000000000000 +vt 0.026086058468 0.070214003325 0.000000000000 +vt 0.026441354305 0.067705318332 0.000000000000 +vt 0.028167841956 0.071457535028 0.000000000000 +vt 0.028880013153 0.073195055127 0.000000000000 +vt 0.030567547306 0.076351955533 0.000000000000 +vt 0.030551789328 0.069745004177 0.000000000000 +vt 0.029026357457 0.069470763206 0.000000000000 +vt 0.030614150688 0.072523415089 0.000000000000 +vt 0.043936815113 0.092527776957 0.000000000000 +vt 0.046364661306 0.097238019109 0.000000000000 +vt 0.044538419694 0.100720718503 0.000000000000 +vt 0.042931716889 0.101345524192 0.000000000000 +vt 0.048817273229 0.100172251463 0.000000000000 +vt 0.048457246274 0.102738559246 0.000000000000 +vt 0.137558788061 0.098332047462 0.000000000000 +vt 0.139102905989 0.097345650196 0.000000000000 +vt 0.138733655214 0.098258882761 0.000000000000 +vt 0.137797236443 0.098970815539 0.000000000000 +vt 0.138197556138 0.099481925368 0.000000000000 +vt 0.139004737139 0.098487854004 0.000000000000 +vt 0.139805614948 0.097956493497 0.000000000000 +vt 0.139377146959 0.099524021149 0.000000000000 +vt 0.050679307431 0.107523784041 0.000000000000 +vt 0.054135438055 0.112569287419 0.000000000000 +vt 0.050330314785 0.114288136363 0.000000000000 +vt 0.047148425132 0.107650101185 0.000000000000 +vt 0.050964351743 0.104889020324 0.000000000000 +vt 0.053239319474 0.103625223041 0.000000000000 +vt 0.055646907538 0.107062682509 0.000000000000 +vt 0.058104019612 0.112983807921 0.000000000000 +vt 0.140801474452 0.096658468246 0.000000000000 +vt 0.138233363628 0.096205011010 0.000000000000 +vt 0.140344858170 0.095949456096 0.000000000000 +vt 0.142007410526 0.098663926125 0.000000000000 +vt 0.140017718077 0.100223585963 0.000000000000 +vt 0.141385748982 0.098199442029 0.000000000000 +vt 0.141155198216 0.097431436181 0.000000000000 +vt 0.133312597871 0.105359598994 0.000000000000 +vt 0.132514864206 0.104310825467 0.000000000000 +vt 0.134183719754 0.106383368373 0.000000000000 +vt 0.140815436840 0.100723877549 0.000000000000 +vt 0.141863986850 0.099782720208 0.000000000000 +vt 0.142421916127 0.100219070911 0.000000000000 +vt 0.142892494798 0.098935022950 0.000000000000 +vt 0.050447177142 0.103112548590 0.000000000000 +vt 0.052483703941 0.102864876390 0.000000000000 +vt 0.144728183746 0.104067876935 0.000000000000 +vt 0.144224733114 0.102514311671 0.000000000000 +vt 0.145186141133 0.101699247956 0.000000000000 +vt 0.146470203996 0.103851273656 0.000000000000 +vt 0.143584400415 0.101527899504 0.000000000000 +vt 0.144430533051 0.100561767817 0.000000000000 +vt 0.141550794244 0.101287886500 0.000000000000 +vt 0.061257999390 0.112659797072 0.000000000000 +vt 0.065134719014 0.115944370627 0.000000000000 +vt 0.061873342842 0.123118489981 0.000000000000 +vt 0.056573864073 0.121722295880 0.000000000000 +vt 0.067445486784 0.110573291779 0.000000000000 +vt 0.063640370965 0.107372716069 0.000000000000 +vt 0.069648854434 0.106004670262 0.000000000000 +vt 0.066685140133 0.100748866796 0.000000000000 +vt 0.072863399982 0.099591121078 0.000000000000 +vt 0.079629309475 0.095017760992 0.000000000000 +vt 0.063420616090 0.097499877214 0.000000000000 +vt 0.064508341253 0.086475610733 0.000000000000 +vt 0.143850758672 0.104326352477 0.000000000000 +vt 0.143411472440 0.103562861681 0.000000000000 +vt 0.056262250990 0.094160601497 0.000000000000 +vt 0.056469622999 0.096354737878 0.000000000000 +vt 0.051992859691 0.094852507114 0.000000000000 +vt 0.052877943963 0.092719376087 0.000000000000 +vt 0.057681854814 0.098607867956 0.000000000000 +vt 0.053764607757 0.098246261477 0.000000000000 +vt 0.051455195993 0.098188623786 0.000000000000 +vt 0.049526061863 0.095104902983 0.000000000000 +vt 0.050771173090 0.101749226451 0.000000000000 +vt 0.052848231047 0.102208778262 0.000000000000 +vt 0.051238592714 0.100907593966 0.000000000000 +vt 0.052483703941 0.100563332438 0.000000000000 +vt 0.057426307350 0.106243103743 0.000000000000 +vt 0.059230696410 0.102589055896 0.000000000000 +vt 0.054297324270 0.103461548686 0.000000000000 +vt 0.054697874933 0.101320534945 0.000000000000 +vt 0.052963506430 0.122161805630 0.000000000000 +vt 0.052379231900 0.131099566817 0.000000000000 +vt 0.048094075173 0.130477920175 0.000000000000 +vt 0.046760257334 0.130856394768 0.000000000000 +vt 0.050066884607 0.122128933668 0.000000000000 +vt 0.156333580613 0.006823139265 0.000000000000 +vt 0.149899765849 0.012613456696 0.000000000000 +vt 0.148388311267 0.011923130602 0.000000000000 +vt 0.154814451933 0.007212657481 0.000000000000 +vt 0.143572017550 0.018695119768 0.000000000000 +vt 0.142008990049 0.017630811781 0.000000000000 +vt 0.141720786691 0.017121285200 0.000000000000 +vt 0.147525057197 0.011396490037 0.000000000000 +vt 0.137385874987 0.025342378765 0.000000000000 +vt 0.135559633374 0.023885395378 0.000000000000 +vt 0.134478226304 0.023776423186 0.000000000000 +vt 0.129616662860 0.030687112361 0.000000000000 +vt 0.127787277102 0.029326722026 0.000000000000 +vt 0.122677840292 0.035132572055 0.000000000000 +vt 0.121847249568 0.031333755702 0.000000000000 +vt 0.121459312737 0.026788320392 0.000000000000 +vt 0.126799300313 0.025711629540 0.000000000000 +vt 0.116022720933 0.031031373888 0.000000000000 +vt 0.116498008370 0.026107456535 0.000000000000 +vt 0.109646543860 0.029707010835 0.000000000000 +vt 0.110188722610 0.025318961591 0.000000000000 +vt 0.102204486728 0.027808953077 0.000000000000 +vt 0.102347925305 0.024181474000 0.000000000000 +vt 0.120979495347 0.024089615792 0.000000000000 +vt 0.116271957755 0.023522447795 0.000000000000 +vt 0.110184207559 0.022347588092 0.000000000000 +vt 0.102416366339 0.022239964455 0.000000000000 +vt 0.133086755872 0.021283280104 0.000000000000 +vt 0.125700771809 0.022800825536 0.000000000000 +vt 0.131805852056 0.019698411226 0.000000000000 +vt 0.140229582787 0.014688935131 0.000000000000 +vt 0.145475924015 0.010294806212 0.000000000000 +vt 0.152886912227 0.006676563993 0.000000000000 +vt 0.047576893121 0.122769504786 0.000000000000 +vt 0.044946629554 0.130904808640 0.000000000000 +vt 0.047352414578 0.114989265800 0.000000000000 +vt 0.044636588544 0.108223572373 0.000000000000 +vt 0.040943596512 0.101545020938 0.000000000000 +vt 0.041778694838 0.117057085037 0.000000000000 +vt 0.038933407515 0.109159991145 0.000000000000 +vt 0.042194779962 0.125491634011 0.000000000000 +vt 0.042258728296 0.131637245417 0.000000000000 +vt 0.150459289551 0.005439335480 0.000000000000 +vt 0.147406622767 0.004468692467 0.000000000000 +vt 0.143596783280 0.008389092982 0.000000000000 +vt 0.139240026474 0.012483991683 0.000000000000 +vt 0.039006810635 0.131603017449 0.000000000000 +vt 0.039525572211 0.125474527478 0.000000000000 +vt 0.038843121380 0.117890611291 0.000000000000 +vt 0.036237854511 0.109794244170 0.000000000000 +vt 0.035265412182 0.101655572653 0.000000000000 +vt 0.032339062542 0.095125168562 0.000000000000 +vt 0.030368058011 0.090082809329 0.000000000000 +vt 0.031399492174 0.094974085689 0.000000000000 +vt 0.033498387784 0.101733475924 0.000000000000 +vt 0.028639992699 0.086095318198 0.000000000000 +vt 0.025852348655 0.081437990069 0.000000000000 +vt 0.022753085941 0.076138511300 0.000000000000 +vt 0.023653708398 0.075184747577 0.000000000000 +vt 0.020847376436 0.069434955716 0.000000000000 +vt 0.021620105952 0.067643180490 0.000000000000 +vt 0.023307643831 0.064264953136 0.000000000000 +vt 0.017721544951 0.061841826886 0.000000000000 +vt 0.020375225693 0.059083905071 0.000000000000 +vt 0.053222205490 0.012929573655 0.000000000000 +vt 0.050235074013 0.010815139860 0.000000000000 +vt 0.056510146707 0.014634449035 0.000000000000 +vt 0.054663654417 0.018612489104 0.000000000000 +vt 0.060259204358 0.016382552683 0.000000000000 +vt 0.059049900621 0.020086579025 0.000000000000 +vt 0.058030847460 0.021122742444 0.000000000000 +vt 0.054247569293 0.019831027836 0.000000000000 +vt 0.056996259838 0.023039262742 0.000000000000 +vt 0.053340639919 0.022660780698 0.000000000000 +vt 0.055484797806 0.025647688657 0.000000000000 +vt 0.052176591009 0.025117896497 0.000000000000 +vt 0.049496565014 0.024186205119 0.000000000000 +vt 0.045745935291 0.023629847914 0.000000000000 +vt 0.047365020961 0.022347588092 0.000000000000 +vt 0.044394996017 0.020589802414 0.000000000000 +vt 0.045242708176 0.019883941859 0.000000000000 +vt 0.024909622967 0.052349288017 0.000000000000 +vt 0.025043588132 0.050973366946 0.000000000000 +vt 0.027739373967 0.047426950186 0.000000000000 +vt 0.024479579180 0.048439692706 0.000000000000 +vt 0.042350593954 0.024865496904 0.000000000000 +vt 0.042051356286 0.021227214485 0.000000000000 +vt 0.036529209465 0.022210467607 0.000000000000 +vt 0.037055846304 0.026330355555 0.000000000000 +vt 0.036963980645 0.028058420867 0.000000000000 +vt 0.031510043889 0.025784809142 0.000000000000 +vt 0.031432140619 0.027294699103 0.000000000000 +vt 0.036716084927 0.029509097338 0.000000000000 +vt 0.031419757754 0.028624013066 0.000000000000 +vt 0.027148788795 0.027899462730 0.000000000000 +vt 0.027295140550 0.028648782521 0.000000000000 +vt 0.036427881569 0.031031373888 0.000000000000 +vt 0.031274754554 0.029678862542 0.000000000000 +vt 0.027111416683 0.029242511839 0.000000000000 +vt 0.030949188396 0.030895829201 0.000000000000 +vt 0.035843607038 0.032156471163 0.000000000000 +vt 0.020707104355 0.028784547001 0.000000000000 +vt 0.022812303156 0.031886737794 0.000000000000 +vt 0.020281784236 0.029052484781 0.000000000000 +vt 0.023458946496 0.031434852630 0.000000000000 +vt 0.022109370679 0.032270174474 0.000000000000 +vt 0.020171005279 0.029769152403 0.000000000000 +vt 0.021504826844 0.032532032579 0.000000000000 +vt 0.025012519211 0.036299776286 0.000000000000 +vt 0.024063490331 0.036756169051 0.000000000000 +vt 0.023340519518 0.037314102054 0.000000000000 +vt 0.027483826503 0.041390310973 0.000000000000 +vt 0.026430319995 0.041890602559 0.000000000000 +vt 0.025338094682 0.042350146919 0.000000000000 +vt 0.029316132888 0.046764533967 0.000000000000 +vt 0.022701527923 0.043102841824 0.000000000000 +vt 0.030600195751 0.046093124896 0.000000000000 +vt 0.032929647714 0.049832727760 0.000000000000 +vt 0.031767170876 0.045388620347 0.000000000000 +vt 0.029398767278 0.040288627148 0.000000000000 +vt 0.032870430499 0.044547211379 0.000000000000 +vt 0.028457617387 0.040873128921 0.000000000000 +vt 0.030336765572 0.039641980082 0.000000000000 +vt 0.033799197525 0.043578144163 0.000000000000 +vt 0.037752252072 0.045114379376 0.000000000000 +vt 0.041783425957 0.044548790902 0.000000000000 +vt 0.025857076049 0.035843163729 0.000000000000 +vt 0.026734281331 0.035361554474 0.000000000000 +vt 0.041914243251 0.032859180123 0.000000000000 +vt 0.040793869644 0.033786371350 0.000000000000 +vt 0.030941305682 0.023799840361 0.000000000000 +vt 0.057466831058 0.013119827956 0.000000000000 +vt 0.054774206132 0.010378789157 0.000000000000 +vt 0.051085937768 0.008826795965 0.000000000000 +vt 0.051754426211 0.007754832506 0.000000000000 +vt 0.088373884559 0.020429264754 0.000000000000 +vt 0.088517308235 0.019399408251 0.000000000000 +vt 0.090854644775 0.019729707390 0.000000000000 +vt 0.090842038393 0.020712960511 0.000000000000 +vt 0.094946391881 0.022414457053 0.000000000000 +vt 0.095091395080 0.020460564643 0.000000000000 +vt 0.094299748540 0.025574509054 0.000000000000 +vt 0.090377770364 0.023751430213 0.000000000000 +vt 0.109390988946 0.033906377852 0.000000000000 +vt 0.101716801524 0.030102606863 0.000000000000 +vt 0.116005614400 0.037482291460 0.000000000000 +vt 0.123491324484 0.037183284760 0.000000000000 +vt 0.125074386597 0.041345056146 0.000000000000 +vt 0.130738392472 0.031681168824 0.000000000000 +vt 0.133287593722 0.035913188010 0.000000000000 +vt 0.135103031993 0.039498783648 0.000000000000 +vt 0.140455409884 0.028768789023 0.000000000000 +vt 0.144802927971 0.035279151052 0.000000000000 +vt 0.146699190140 0.040768656880 0.000000000000 +vt 0.137726977468 0.044129770249 0.000000000000 +vt 0.147504791617 0.045349668711 0.000000000000 +vt 0.138828665018 0.047825690359 0.000000000000 +vt 0.146984457970 0.048285465688 0.000000000000 +vt 0.138644710183 0.050088282675 0.000000000000 +vt 0.129806697369 0.052833821625 0.000000000000 +vt 0.169347777963 0.087803125381 0.000000000000 +vt 0.166878044605 0.096072614193 0.000000000000 +vt 0.123137615621 0.057648766786 0.000000000000 +vt 0.120253384113 0.063675940037 0.000000000000 +vt 0.115961924195 0.067340791225 0.000000000000 +vt 0.118732467294 0.069205984473 0.000000000000 +vt 0.118006333709 0.075494781137 0.000000000000 +vt 0.115131542087 0.074644148350 0.000000000000 +vt 0.109959736466 0.072775810957 0.000000000000 +vt 0.111552253366 0.064712107182 0.000000000000 +vt 0.102553710341 0.070056840777 0.000000000000 +vt 0.109609171748 0.082248091698 0.000000000000 +vt 0.100861445069 0.081328779459 0.000000000000 +vt 0.090299867094 0.080892428756 0.000000000000 +vt 0.091694474220 0.066030398011 0.000000000000 +vt 0.079119786620 0.055774118751 0.000000000000 +vt 0.072969444096 0.053520996124 0.000000000000 +vt 0.071013972163 0.047288250178 0.000000000000 +vt 0.068132661283 0.051054421812 0.000000000000 +vt 0.065332636237 0.054049205035 0.000000000000 +vt 0.061893608421 0.046331342310 0.000000000000 +vt 0.058749314398 0.049416642636 0.000000000000 +vt 0.061658326536 0.058715995401 0.000000000000 +vt 0.055071856827 0.053793657571 0.000000000000 +vt 0.052937161177 0.044756155461 0.000000000000 +vt 0.049072828144 0.049751672894 0.000000000000 +vt 0.058147702366 0.064059153199 0.000000000000 +vt 0.052524227649 0.058092769235 0.000000000000 +vt 0.045923579484 0.053873132914 0.000000000000 +vt 0.046409692615 0.047785166651 0.000000000000 +vt 0.043375950307 0.051665265113 0.000000000000 +vt 0.050428483635 0.061640765518 0.000000000000 +vt 0.043210681528 0.056986581534 0.000000000000 +vt 0.040099035949 0.054348435253 0.000000000000 +vt 0.039909008890 0.059638466686 0.000000000000 +vt 0.047191876918 0.065960139036 0.000000000000 +vt 0.038101460785 0.065509825945 0.000000000000 +vt 0.035400953144 0.074902862310 0.000000000000 +vt 0.055581387132 0.067733466625 0.000000000000 +vt 0.052806120366 0.071872040629 0.000000000000 +vt 0.060378994793 0.075755074620 0.000000000000 +vt 0.058071371168 0.078776419163 0.000000000000 +vt 0.055618759245 0.080065205693 0.000000000000 +vt 0.052734520286 0.079525962472 0.000000000000 +vt 0.053052444011 0.081367731094 0.000000000000 +vt 0.050789859146 0.083292141557 0.000000000000 +vt 0.049432624131 0.082779452205 0.000000000000 +vt 0.049594733864 0.085844501853 0.000000000000 +vt 0.048008512706 0.086075052619 0.000000000000 +vt 0.050535883754 0.089364573359 0.000000000000 +vt 0.049192603678 0.090299412608 0.000000000000 +vt 0.047464769334 0.090754449368 0.000000000000 +vt 0.045393791050 0.091461896896 0.000000000000 +vt 0.047896388918 0.095926046371 0.000000000000 +vt 0.049828443676 0.098826035857 0.000000000000 +vt 0.057419996709 0.081000059843 0.000000000000 +vt 0.060966644436 0.087109863758 0.000000000000 +vt 0.059794712812 0.087519645691 0.000000000000 +vt 0.060287129134 0.094168484211 0.000000000000 +vt 0.059352282435 0.093295782804 0.000000000000 +vt 0.062393907458 0.086673513055 0.000000000000 +vt 0.061801750213 0.096052348614 0.000000000000 +vt 0.049892392009 0.042724128813 0.000000000000 +vt 0.052075494081 0.038878478110 0.000000000000 +vt 0.055960100144 0.041236083955 0.000000000000 +vt 0.055889848620 0.035288382322 0.000000000000 +vt 0.060157891363 0.037993393838 0.000000000000 +vt 0.065116032958 0.042724128813 0.000000000000 +vt 0.064106442034 0.032941814512 0.000000000000 +vt 0.068679787219 0.036249794066 0.000000000000 +vt 0.074156686664 0.040447585285 0.000000000000 +vt 0.073277905583 0.031112428755 0.000000000000 +vt 0.077270135283 0.034540414810 0.000000000000 +vt 0.072071976960 0.025901664048 0.000000000000 +vt 0.069379344583 0.029083553702 0.000000000000 +vt 0.069463558495 0.025113392621 0.000000000000 +vt 0.067841313779 0.024271763861 0.000000000000 +vt 0.099162861705 0.091220304370 0.000000000000 +vt 0.089000269771 0.092127218843 0.000000000000 +vt 0.097078159451 0.097934648395 0.000000000000 +vt 0.087571434677 0.099022373557 0.000000000000 +vt 0.079772509634 0.101554468274 0.000000000000 +vt 0.086257882416 0.102638825774 0.000000000000 +vt 0.079043231905 0.105086937547 0.000000000000 +vt 0.075504690409 0.108024075627 0.000000000000 +vt 0.074613302946 0.105156958103 0.000000000000 +vt 0.073125250638 0.110627785325 0.000000000000 +vt 0.071593523026 0.108968392015 0.000000000000 +vt 0.070599466562 0.114607393742 0.000000000000 +vt 0.069200120866 0.112909048796 0.000000000000 +vt 0.067964471877 0.119090452790 0.000000000000 +vt 0.066672757268 0.117705300450 0.000000000000 +vt 0.065623983741 0.124006733298 0.000000000000 +vt 0.064179614186 0.123651430011 0.000000000000 +vt 0.064288586378 0.130211338401 0.000000000000 +vt 0.062253635377 0.130234748125 0.000000000000 +vt 0.058482732624 0.130786374211 0.000000000000 +vt 0.122141756117 0.148486047983 0.000000000000 +vt 0.127875998616 0.147998362780 0.000000000000 +vt 0.127665698528 0.150818660855 0.000000000000 +vt 0.122073300183 0.151981130242 0.000000000000 +vt 0.133205190301 0.149006605148 0.000000000000 +vt 0.133069649339 0.151248708367 0.000000000000 +vt 0.172021716833 0.016547817737 0.000000000000 +vt 0.169503584504 0.022040475160 0.000000000000 +vt 0.137767508626 0.149533241987 0.000000000000 +vt 0.137985691428 0.152411177754 0.000000000000 +vt 0.168945640326 0.028130020946 0.000000000000 +vt 0.129772469401 0.142226740718 0.000000000000 +vt 0.133960813284 0.145277813077 0.000000000000 +vt 0.137136399746 0.143440544605 0.000000000000 +vt 0.135624930263 0.133524268866 0.000000000000 +vt 0.137717753649 0.134089857340 0.000000000000 +vt 0.109607592225 0.111450493336 0.000000000000 +vt 0.100973561406 0.115215316415 0.000000000000 +vt 0.100111901760 0.112997993827 0.000000000000 +vt 0.109063848853 0.109449759126 0.000000000000 +vt 0.094076842070 0.114406555891 0.000000000000 +vt 0.109662085772 0.113127216697 0.000000000000 +vt 0.101924166083 0.117096036673 0.000000000000 +vt 0.118073418736 0.107520863414 0.000000000000 +vt 0.118896141648 0.109094470739 0.000000000000 +vt 0.119979143143 0.110803857446 0.000000000000 +vt 0.109627857804 0.115891456604 0.000000000000 +vt 0.121512211859 0.112745359540 0.000000000000 +vt 0.113743022084 0.119411528111 0.000000000000 +vt 0.123366601765 0.114860013127 0.000000000000 +vt 0.116215899587 0.122188150883 0.000000000000 +vt 0.104867622256 0.130242630839 0.000000000000 +vt 0.095320373774 0.140049934387 0.000000000000 +vt 0.118313208222 0.124379143119 0.000000000000 +vt 0.107863992453 0.133408755064 0.000000000000 +vt 0.099661588669 0.143760040402 0.000000000000 +vt 0.087192721665 0.108221992850 0.000000000000 +vt 0.082525931299 0.110838308930 0.000000000000 +vt 0.110880628228 0.135783463717 0.000000000000 +vt 0.103619366884 0.146102100611 0.000000000000 +vt 0.078900031745 0.113002493978 0.000000000000 +vt 0.114026710391 0.137971296906 0.000000000000 +vt 0.107220500708 0.147809907794 0.000000000000 +vt 0.075743131340 0.114870831370 0.000000000000 +vt 0.117038622499 0.139775693417 0.000000000000 +vt 0.110938265920 0.149550363421 0.000000000000 +vt 0.072325952351 0.116807609797 0.000000000000 +vt 0.121297188103 0.140570491552 0.000000000000 +vt 0.116660133004 0.148486047983 0.000000000000 +vt 0.070322073996 0.122125789523 0.000000000000 +vt 0.125169411302 0.141371369362 0.000000000000 +vt 0.067821048200 0.126478031278 0.000000000000 +vt 0.126182377338 0.130125775933 0.000000000000 +vt 0.128910809755 0.131200894713 0.000000000000 +vt 0.132871732116 0.132607877254 0.000000000000 +vt 0.133273646235 0.122961118817 0.000000000000 +vt 0.135723099113 0.124199911952 0.000000000000 +vt 0.137808039784 0.124982103705 0.000000000000 +vt 0.138423606753 0.117220535874 0.000000000000 +vt 0.140033245087 0.117920324206 0.000000000000 +vt 0.141472890973 0.118429854512 0.000000000000 +vt 0.139520570636 0.125482171774 0.000000000000 +vt 0.124876491725 0.103963419795 0.000000000000 +vt 0.117411032319 0.105984404683 0.000000000000 +vt 0.124236144125 0.102663815022 0.000000000000 +vt 0.129794090986 0.099442973733 0.000000000000 +vt 0.130341216922 0.100725457072 0.000000000000 +vt 0.131000250578 0.101975068450 0.000000000000 +vt 0.125632330775 0.105312764645 0.000000000000 +vt 0.131731107831 0.103181213140 0.000000000000 +vt 0.126520335674 0.106766596437 0.000000000000 +vt 0.127601757646 0.108326464891 0.000000000000 +vt 0.128798455000 0.109823748469 0.000000000000 +vt 0.130024880171 0.111135736108 0.000000000000 +vt 0.125136762857 0.116662845016 0.000000000000 +vt 0.131293177605 0.112291902304 0.000000000000 +vt 0.126648217440 0.118099555373 0.000000000000 +vt 0.120172336698 0.126228556037 0.000000000000 +vt 0.128081783652 0.119333624840 0.000000000000 +vt 0.122010938823 0.127758711576 0.000000000000 +vt 0.129577711225 0.120530337095 0.000000000000 +vt 0.123975865543 0.129045933485 0.000000000000 +vt 0.131254225969 0.121706768870 0.000000000000 +vt 0.133884489536 0.114366039634 0.000000000000 +vt 0.135243296623 0.115338250995 0.000000000000 +vt 0.136775031686 0.116316780448 0.000000000000 +vt 0.138644710183 0.110085606575 0.000000000000 +vt 0.139880597591 0.110813304782 0.000000000000 +vt 0.141141012311 0.111453637481 0.000000000000 +vt 0.142396926880 0.111997395754 0.000000000000 +vt 0.143704399467 0.112458750606 0.000000000000 +vt 0.137226909399 0.097607508302 0.000000000000 +vt 0.142870649695 0.102392718196 0.000000000000 +vt 0.137440353632 0.109256580472 0.000000000000 +vt 0.142222434282 0.101855054498 0.000000000000 +vt 0.143068566918 0.100842311978 0.000000000000 +vt 0.143592044711 0.099678248167 0.000000000000 +vt 0.136274725199 0.108363851905 0.000000000000 +vt 0.135182499886 0.107386663556 0.000000000000 +vt 0.132592767477 0.113364085555 0.000000000000 +vt 0.095187984407 0.102827504277 0.000000000000 +vt 0.094770319760 0.109039977193 0.000000000000 +vt 0.115190759301 0.083002358675 0.000000000000 +vt 0.117822378874 0.083010017872 0.000000000000 +vt 0.118609294295 0.089811727405 0.000000000000 +vt 0.145974636078 0.053520996124 0.000000000000 +vt 0.146114915609 0.056235466152 0.000000000000 +vt 0.139495581388 0.056631293148 0.000000000000 +vt 0.139889821410 0.054191056639 0.000000000000 +vt 0.119352757931 0.094131112099 0.000000000000 +vt 0.136199980974 0.055359613150 0.000000000000 +vt 0.119957312942 0.096627399325 0.000000000000 +vt 0.133549451828 0.056533124298 0.000000000000 +vt 0.144910335541 0.057005267590 0.000000000000 +vt 0.139738738537 0.057558249682 0.000000000000 +vt 0.145398020744 0.061774957925 0.000000000000 +vt 0.139342918992 0.061978947371 0.000000000000 +vt 0.149662911892 0.063947036862 0.000000000000 +vt 0.153687775135 0.067230239511 0.000000000000 +vt 0.155149489641 0.059760045260 0.000000000000 +vt 0.158387213945 0.062926396728 0.000000000000 +vt 0.157279461622 0.070296630263 0.000000000000 +vt 0.163594841957 0.066641241312 0.000000000000 +vt 0.153912261128 0.057711135596 0.000000000000 +vt 0.159546762705 0.060358505696 0.000000000000 +vt 0.164818108082 0.064783707261 0.000000000000 +vt 0.165087610483 0.069813668728 0.000000000000 +vt 0.167392298579 0.069913417101 0.000000000000 +vt 0.162909239531 0.058806512505 0.000000000000 +vt 0.168085560203 0.065015837550 0.000000000000 +vt 0.170962139964 0.071387514472 0.000000000000 +vt 0.171663269401 0.079518079758 0.000000000000 +vt 0.168453454971 0.075633481145 0.000000000000 +vt 0.154616549611 0.054712962359 0.000000000000 +vt 0.160480037332 0.072431325912 0.000000000000 +vt 0.165078386664 0.102370887995 0.000000000000 +vt 0.160031303763 0.101119697094 0.000000000000 +vt 0.153291955590 0.047032695264 0.000000000000 +vt 0.081070527434 0.018897537142 0.000000000000 +vt 0.085028529167 0.019402559847 0.000000000000 +vt 0.066250368953 0.017697680742 0.000000000000 +vt 0.060628462583 0.015371378511 0.000000000000 +vt 0.066359564662 0.016670975834 0.000000000000 +vt 0.071543760598 0.016661521047 0.000000000000 +vt 0.071405068040 0.017848987132 0.000000000000 +vt 0.075989224017 0.018615640700 0.000000000000 +vt 0.076596923172 0.017573174089 0.000000000000 +vt 0.017198059708 0.064038887620 0.000000000000 +vt 0.020149167627 0.070380836725 0.000000000000 +vt 0.016810115427 0.065315067768 0.000000000000 +vt 0.158577471972 0.046223942190 0.000000000000 +vt 0.102452382445 0.038576319814 0.000000000000 +vt 0.089843250811 0.037739418447 0.000000000000 +vt 0.086650550365 0.040033075958 0.000000000000 +vt 0.086444757879 0.038370531052 0.000000000000 +vt 0.089615844190 0.039254039526 0.000000000000 +vt 0.094363689423 0.042627539486 0.000000000000 +vt 0.089279234409 0.040964987129 0.000000000000 +vt 0.096154123545 0.044999096543 0.000000000000 +vt 0.099321827292 0.047730680555 0.000000000000 +vt 0.097085818648 0.047713566571 0.000000000000 +vt 0.095434077084 0.052601691335 0.000000000000 +vt 0.094276331365 0.051693182439 0.000000000000 +vt 0.089904040098 0.052642215043 0.000000000000 +vt 0.089681141078 0.050836246461 0.000000000000 +vt 0.084422186017 0.049848269671 0.000000000000 +vt 0.086022593081 0.049033429474 0.000000000000 +vt 0.082889109850 0.045797046274 0.000000000000 +vt 0.084425337613 0.045902874321 0.000000000000 +vt 0.084310062230 0.042319070548 0.000000000000 +vt 0.085408590734 0.043013904244 0.000000000000 +vt 0.083744473755 0.041396614164 0.000000000000 +vt 0.087161652744 0.041465062648 0.000000000000 +vt 0.089801147580 0.053888674825 0.000000000000 +vt 0.096400216222 0.053726788610 0.000000000000 +vt 0.101375699043 0.047830428928 0.000000000000 +vt 0.150993570685 0.099017649889 0.000000000000 +vt 0.131135791540 0.085984766483 0.000000000000 +vt 0.137482464314 0.092382773757 0.000000000000 +vt 0.135268285871 0.088904798031 0.000000000000 +vt 0.139503464103 0.089568555355 0.000000000000 +vt 0.136636331677 0.087804690003 0.000000000000 +vt 0.139095246792 0.088097617030 0.000000000000 +vt 0.141262590885 0.086944609880 0.000000000000 +vt 0.143028035760 0.087709680200 0.000000000000 +vt 0.052647162229 0.028242152184 0.000000000000 +vt 0.091367103159 0.114521846175 0.000000000000 +vt 0.024943847209 0.029597807676 0.000000000000 +vt 0.082706280053 0.355134129524 0.000000000000 +vt 0.085947386920 0.363250732422 0.000000000000 +vt 0.082174688578 0.364220470190 0.000000000000 +vt 0.079061470926 0.357818633318 0.000000000000 +vt 0.076576210558 0.349433183670 0.000000000000 +vt 0.074389949441 0.353636831045 0.000000000000 +vt 0.070025764406 0.352275311947 0.000000000000 +vt 0.069683760405 0.347608089447 0.000000000000 +vt 0.084169343114 0.377381920815 0.000000000000 +vt 0.080777153373 0.375979661942 0.000000000000 +vt 0.082553848624 0.370932579041 0.000000000000 +vt 0.086099147797 0.371338099241 0.000000000000 +vt 0.079547807574 0.364964604378 0.000000000000 +vt 0.080153018236 0.370642364025 0.000000000000 +vt 0.076729759574 0.359675943851 0.000000000000 +vt 0.073228374124 0.356270015240 0.000000000000 +vt 0.070341885090 0.355011194944 0.000000000000 +vt 0.078728012741 0.374791979790 0.000000000000 +vt 0.078406266868 0.379009783268 0.000000000000 +vt 0.081292532384 0.382708638906 0.000000000000 +vt 0.077228710055 0.376913607121 0.000000000000 +vt 0.076079964638 0.380043476820 0.000000000000 +vt 0.075517080724 0.383981227875 0.000000000000 +vt 0.075921684504 0.377626001835 0.000000000000 +vt 0.067173950374 0.353658229113 0.000000000000 +vt 0.068672135472 0.355914741755 0.000000000000 +vt 0.064776502550 0.349804252386 0.000000000000 +vt 0.072278216481 0.378946751356 0.000000000000 +vt 0.069932326674 0.382139891386 0.000000000000 +vt 0.073346585035 0.376760721207 0.000000000000 +vt 0.065008409321 0.358051896095 0.000000000000 +vt 0.067364208400 0.359130382538 0.000000000000 +vt 0.061515796930 0.356177270412 0.000000000000 +vt 0.067828252912 0.375058323145 0.000000000000 +vt 0.064983420074 0.377222746611 0.000000000000 +vt 0.069865681231 0.373641878366 0.000000000000 +vt 0.063662886620 0.364159464836 0.000000000000 +vt 0.066595532000 0.364011079073 0.000000000000 +vt 0.059879150242 0.364149570465 0.000000000000 +vt 0.064561255276 0.369833588600 0.000000000000 +vt 0.067180253565 0.369111299515 0.000000000000 +vt 0.061178293079 0.370929658413 0.000000000000 +vt 0.087921552360 0.351186037064 0.000000000000 +vt 0.091303609312 0.361563861370 0.000000000000 +vt 0.079885534942 0.343255817890 0.000000000000 +vt 0.069204851985 0.340724855661 0.000000000000 +vt 0.060809489340 0.344233006239 0.000000000000 +vt 0.055593322963 0.353128671646 0.000000000000 +vt 0.053862329572 0.363875776529 0.000000000000 +vt 0.055507313460 0.372740805149 0.000000000000 +vt 0.060099344701 0.380897492170 0.000000000000 +vt 0.066655874252 0.386289954185 0.000000000000 +vt 0.073765367270 0.388392239809 0.000000000000 +vt 0.081145055592 0.388035595417 0.000000000000 +vt 0.088785246015 0.377678692341 0.000000000000 +vt 0.087788932025 0.382556229830 0.000000000000 +vt 0.090708971024 0.371422529221 0.000000000000 +vt 0.098516449332 0.359101116657 0.000000000000 +vt 0.095570974052 0.371151894331 0.000000000000 +vt 0.081494718790 0.391452759504 0.000000000000 +vt 0.072904601693 0.391978055239 0.000000000000 +vt 0.087930560112 0.387041747570 0.000000000000 +vt 0.089069843292 0.390307635069 0.000000000000 +vt 0.093086160719 0.377379685640 0.000000000000 +vt 0.092234395444 0.382332623005 0.000000000000 +vt 0.096012048423 0.378206431866 0.000000000000 +vt 0.095273993909 0.382441610098 0.000000000000 +vt 0.098627001047 0.372742831707 0.000000000000 +vt 0.100691899657 0.375768691301 0.000000000000 +vt 0.097777709365 0.379422277212 0.000000000000 +vt 0.096909299493 0.382944613695 0.000000000000 +vt 0.064227119088 0.390731811523 0.000000000000 +vt 0.047463636845 0.374592483044 0.000000000000 +vt 0.045266803354 0.362910062075 0.000000000000 +vt 0.053129222244 0.386380702257 0.000000000000 +vt 0.055269774050 0.337182939053 0.000000000000 +vt 0.068264156580 0.332182705402 0.000000000000 +vt 0.047308508307 0.348847329617 0.000000000000 +vt 0.083508059382 0.335973203182 0.000000000000 +vt 0.092679306865 0.386310219765 0.000000000000 +vt 0.094604156911 0.389197170734 0.000000000000 +vt 0.096809998155 0.386411547661 0.000000000000 +vt 0.095029927790 0.385251104832 0.000000000000 +vt 0.098225995898 0.388757675886 0.000000000000 +vt 0.097066685557 0.389816790819 0.000000000000 +vt 0.098929613829 0.391160309315 0.000000000000 +vt 0.097326502204 0.391429573298 0.000000000000 +vt 0.094737671316 0.391862779856 0.000000000000 +vt 0.089453734457 0.392666131258 0.000000000000 +vt 0.081771887839 0.393726825714 0.000000000000 +vt 0.072946928442 0.394806444645 0.000000000000 +vt 0.063999712467 0.395681649446 0.000000000000 +vt 0.053615327924 0.396396279335 0.000000000000 +vt 0.041419353336 0.396926730871 0.000000000000 +vt 0.039976555854 0.386726528406 0.000000000000 +vt 0.037052463740 0.374329954386 0.000000000000 +vt 0.035149227828 0.359872728586 0.000000000000 +vt 0.038212914020 0.342804163694 0.000000000000 +vt 0.049577396363 0.328440159559 0.000000000000 +vt 0.067996665835 0.322506874800 0.000000000000 +vt 0.093688450754 0.346306473017 0.000000000000 +vt 0.088374562562 0.327701002359 0.000000000000 +vt 0.100369259715 0.339963853359 0.000000000000 +vt 0.105655893683 0.350941717625 0.000000000000 +vt 0.103044107556 0.365339487791 0.000000000000 +vt 0.108533605933 0.357757389545 0.000000000000 +vt 0.105408892035 0.369979262352 0.000000000000 +vt 0.098068401217 0.383108973503 0.000000000000 +vt 0.098497763276 0.385625302792 0.000000000000 +vt 0.101734369993 0.380148172379 0.000000000000 +vt 0.098705813289 0.380785822868 0.000000000000 +vt 0.099697157741 0.387924820185 0.000000000000 +vt 0.100644618273 0.390900254250 0.000000000000 +vt 0.105129703879 0.377691507339 0.000000000000 +vt 0.105785802007 0.382571756840 0.000000000000 +vt 0.103088900447 0.383172452450 0.000000000000 +vt 0.106459483504 0.386435866356 0.000000000000 +vt 0.104129120708 0.386695683002 0.000000000000 +vt 0.104879111052 0.390249550343 0.000000000000 +vt 0.102643325925 0.390611141920 0.000000000000 +vt 0.101812496781 0.387293249369 0.000000000000 +vt 0.099612280726 0.383124738932 0.000000000000 +vt 0.100343361497 0.384889960289 0.000000000000 +vt 0.101334720850 0.382499039173 0.000000000000 +vt 0.099765837193 0.381787300110 0.000000000000 +vt 0.101950511336 0.385482788086 0.000000000000 +vt 0.102647826076 0.385179489851 0.000000000000 +vt 0.102046653628 0.383690536022 0.000000000000 +vt 0.101413294673 0.384207725525 0.000000000000 +vt 0.101018831134 0.383238196373 0.000000000000 +vt 0.111804887652 0.347057133913 0.000000000000 +vt 0.113323777914 0.353700101376 0.000000000000 +vt 0.116853311658 0.353322982788 0.000000000000 +vt 0.117552861571 0.346509546041 0.000000000000 +vt 0.123864643276 0.349401652813 0.000000000000 +vt 0.120530322194 0.355773121119 0.000000000000 +vt 0.129755362868 0.355360180140 0.000000000000 +vt 0.124298743904 0.360911160707 0.000000000000 +vt 0.134041413665 0.362597793341 0.000000000000 +vt 0.127354532480 0.367429167032 0.000000000000 +vt 0.129645943642 0.373671829700 0.000000000000 +vt 0.136888504028 0.369591563940 0.000000000000 +vt 0.138823032379 0.375629991293 0.000000000000 +vt 0.131178572774 0.379008889198 0.000000000000 +vt 0.110230609775 0.361257672310 0.000000000000 +vt 0.113775447011 0.356992095709 0.000000000000 +vt 0.115981966257 0.356578052044 0.000000000000 +vt 0.118140742183 0.358845561743 0.000000000000 +vt 0.120337590575 0.363843351603 0.000000000000 +vt 0.122301377356 0.370323300362 0.000000000000 +vt 0.123794607818 0.376463502645 0.000000000000 +vt 0.125330835581 0.385786980391 0.000000000000 +vt 0.124756477773 0.381512612104 0.000000000000 +vt 0.132145613432 0.383721172810 0.000000000000 +vt 0.117319837213 0.365754455328 0.000000000000 +vt 0.116345807910 0.360568702221 0.000000000000 +vt 0.118315473199 0.372491776943 0.000000000000 +vt 0.119095861912 0.378632873297 0.000000000000 +vt 0.115259900689 0.358279764652 0.000000000000 +vt 0.113950163126 0.358692705631 0.000000000000 +vt 0.111850589514 0.362477779388 0.000000000000 +vt 0.109477445483 0.369221389294 0.000000000000 +vt 0.108606114984 0.376295775175 0.000000000000 +vt 0.108548924327 0.381853967905 0.000000000000 +vt 0.108668252826 0.385990947485 0.000000000000 +vt 0.109056636691 0.389389663935 0.000000000000 +vt 0.106977775693 0.389831870794 0.000000000000 +vt 0.115236923099 0.380258053541 0.000000000000 +vt 0.119639605284 0.383368134499 0.000000000000 +vt 0.115580737591 0.384713888168 0.000000000000 +vt 0.114937916398 0.374172329903 0.000000000000 +vt 0.114662095904 0.367107868195 0.000000000000 +vt 0.114699468017 0.361614972353 0.000000000000 +vt 0.114764764905 0.359385490417 0.000000000000 +vt 0.114121511579 0.359670996666 0.000000000000 +vt 0.113303065300 0.362503677607 0.000000000000 +vt 0.112174823880 0.368418276310 0.000000000000 +vt 0.111594587564 0.375343382359 0.000000000000 +vt 0.111402764916 0.381200790405 0.000000000000 +vt 0.111436754465 0.385559558868 0.000000000000 +vt 0.111605182290 0.388848632574 0.000000000000 +vt 0.140208870173 0.380911469460 0.000000000000 +vt 0.120046690106 0.387208133936 0.000000000000 +vt 0.116041406989 0.388132423162 0.000000000000 +vt 0.108075186610 0.335427641869 0.000000000000 +vt 0.097032681108 0.317022114992 0.000000000000 +vt 0.068101368845 0.311556011438 0.000000000000 +vt 0.117994397879 0.334477722645 0.000000000000 +vt 0.128177925944 0.338179260492 0.000000000000 +vt 0.136790558696 0.345966488123 0.000000000000 +vt 0.142394453287 0.355307698250 0.000000000000 +vt 0.145550668240 0.364030212164 0.000000000000 +vt 0.147579327226 0.371295541525 0.000000000000 +vt 0.149121865630 0.377288043499 0.000000000000 +vt 0.117433980107 0.316912233829 0.000000000000 +vt 0.132998272777 0.322530061007 0.000000000000 +vt 0.144912809134 0.333580464125 0.000000000000 +vt 0.151742890477 0.346387058496 0.000000000000 +vt 0.155101761222 0.357449173927 0.000000000000 +vt 0.157138064504 0.366050541401 0.000000000000 +vt 0.158694103360 0.372791916132 0.000000000000 +vt 0.093021988869 0.298639088869 0.000000000000 +vt 0.116434976459 0.299687176943 0.000000000000 +vt 0.137037336826 0.306387364864 0.000000000000 +vt 0.152599602938 0.319078207016 0.000000000000 +vt 0.161577224731 0.334434717894 0.000000000000 +vt 0.165657475591 0.348677575588 0.000000000000 +vt 0.167427644134 0.359111487865 0.000000000000 +vt 0.169053271413 0.366990566254 0.000000000000 +vt 0.066684693098 0.299283713102 0.000000000000 +vt 0.044727105647 0.318464457989 0.000000000000 +vt 0.029994530603 0.333837360144 0.000000000000 +vt 0.023920066655 0.352325320244 0.000000000000 +vt 0.023143958300 0.369406253099 0.000000000000 +vt 0.024057183415 0.384051918983 0.000000000000 +vt 0.024341106415 0.396830379963 0.000000000000 +vt 0.177712291479 0.335085839033 0.000000000000 +vt 0.181121811271 0.347459256649 0.000000000000 +vt 0.170949757099 0.319616109133 0.000000000000 +vt 0.158325985074 0.304390668869 0.000000000000 +vt 0.139046162367 0.292386740446 0.000000000000 +vt 0.114894911647 0.285406500101 0.000000000000 +vt 0.089810602367 0.284732818604 0.000000000000 +vt 0.064246259630 0.287257254124 0.000000000000 +vt 0.060561817139 0.275299966335 0.000000000000 +vt 0.085912264884 0.272128403187 0.000000000000 +vt 0.112814709544 0.271828740835 0.000000000000 +vt 0.139997899532 0.280653685331 0.000000000000 +vt 0.162012219429 0.289723157883 0.000000000000 +vt 0.177664101124 0.300114750862 0.000000000000 +vt 0.190142661333 0.313898980618 0.000000000000 +vt 0.198672652245 0.327432364225 0.000000000000 +vt 0.205239757895 0.340885162354 0.000000000000 +vt 0.183992534876 0.357445776463 0.000000000000 +vt 0.069244705141 0.368339478970 0.000000000000 +vt 0.071158297360 0.372511804104 0.000000000000 +vt 0.073666974902 0.375427126884 0.000000000000 +vt 0.075608938932 0.376399338245 0.000000000000 +vt 0.076639704406 0.375857174397 0.000000000000 +vt 0.077665731311 0.373797893524 0.000000000000 +vt 0.078264869750 0.370282560587 0.000000000000 +vt 0.077448233962 0.365520745516 0.000000000000 +vt 0.075266703963 0.360965639353 0.000000000000 +vt 0.072741590440 0.357893168926 0.000000000000 +vt 0.070687949657 0.356488436460 0.000000000000 +vt 0.069615535438 0.357108056545 0.000000000000 +vt 0.068887837231 0.359731346369 0.000000000000 +vt 0.068630032241 0.363813161850 0.000000000000 +vt 0.070949353278 0.367750674486 0.000000000000 +vt 0.072260208428 0.371762514114 0.000000000000 +vt 0.074021823704 0.374623537064 0.000000000000 +vt 0.075438044965 0.375722974539 0.000000000000 +vt 0.076083339751 0.375304430723 0.000000000000 +vt 0.076256714761 0.373671144247 0.000000000000 +vt 0.077135719359 0.370294928551 0.000000000000 +vt 0.076337769628 0.365889549255 0.000000000000 +vt 0.074512436986 0.361760437489 0.000000000000 +vt 0.072514630854 0.358907490969 0.000000000000 +vt 0.070951603353 0.357409089804 0.000000000000 +vt 0.070442758501 0.357752889395 0.000000000000 +vt 0.070120111108 0.359841883183 0.000000000000 +vt 0.070317119360 0.363489836454 0.000000000000 +vt 0.095527067780 0.433499604464 0.000000000000 +vt 0.089006572962 0.431389659643 0.000000000000 +vt 0.089679561555 0.423253923655 0.000000000000 +vt 0.095813460648 0.423289269209 0.000000000000 +vt 0.090270593762 0.442476540804 0.000000000000 +vt 0.085782580078 0.438130587339 0.000000000000 +vt 0.082391515374 0.447095155716 0.000000000000 +vt 0.081284202635 0.441373258829 0.000000000000 +vt 0.088421173394 0.409246772528 0.000000000000 +vt 0.092461802065 0.414794385433 0.000000000000 +vt 0.088074430823 0.416153192520 0.000000000000 +vt 0.085401162505 0.411531209946 0.000000000000 +vt 0.085601098835 0.423056453466 0.000000000000 +vt 0.085188619792 0.417149722576 0.000000000000 +vt 0.084852233529 0.429683655500 0.000000000000 +vt 0.083113588393 0.435138046741 0.000000000000 +vt 0.080847173929 0.437920957804 0.000000000000 +vt 0.083637073636 0.413283139467 0.000000000000 +vt 0.082392193377 0.409229904413 0.000000000000 +vt 0.084188699722 0.404711484909 0.000000000000 +vt 0.081871181726 0.411629140377 0.000000000000 +vt 0.079863473773 0.408857047558 0.000000000000 +vt 0.078159049153 0.404978066683 0.000000000000 +vt 0.080601528287 0.411386430264 0.000000000000 +vt 0.077497541904 0.440609782934 0.000000000000 +vt 0.078839689493 0.437481015921 0.000000000000 +vt 0.075624249876 0.445949316025 0.000000000000 +vt 0.076512485743 0.410979568958 0.000000000000 +vt 0.072959765792 0.408222317696 0.000000000000 +vt 0.078687265515 0.412980526686 0.000000000000 +vt 0.074185512960 0.435919106007 0.000000000000 +vt 0.076881967485 0.434023529291 0.000000000000 +vt 0.070257902145 0.439116775990 0.000000000000 +vt 0.073384404182 0.416101634502 0.000000000000 +vt 0.069238848984 0.414494931698 0.000000000000 +vt 0.076494477689 0.417049527168 0.000000000000 +vt 0.072321221232 0.429132491350 0.000000000000 +vt 0.075570665300 0.428600221872 0.000000000000 +vt 0.067612551153 0.430139392614 0.000000000000 +vt 0.072135694325 0.422728389502 0.000000000000 +vt 0.075469121337 0.422917068005 0.000000000000 +vt 0.067447289824 0.422248363495 0.000000000000 +vt 0.102335080504 0.423187494278 0.000000000000 +vt 0.103228494525 0.435963690281 0.000000000000 +vt 0.096575386822 0.448499649763 0.000000000000 +vt 0.084121152759 0.455617934465 0.000000000000 +vt 0.072271011770 0.453928828239 0.000000000000 +vt 0.063513830304 0.444215625525 0.000000000000 +vt 0.059691589326 0.431783914566 0.000000000000 +vt 0.059796515852 0.421276837587 0.000000000000 +vt 0.062896229327 0.411542922258 0.000000000000 +vt 0.068578697741 0.404683113098 0.000000000000 +vt 0.075288772583 0.400957018137 0.000000000000 +vt 0.082664631307 0.399442404509 0.000000000000 +vt 0.090280279517 0.402916997671 0.000000000000 +vt 0.092445820570 0.407546848059 0.000000000000 +vt 0.097145929933 0.413269847631 0.000000000000 +vt 0.101524755359 0.411767631769 0.000000000000 +vt 0.108704730868 0.422636747360 0.000000000000 +vt 0.073573760688 0.397591859102 0.000000000000 +vt 0.082102417946 0.395999342203 0.000000000000 +vt 0.089554600418 0.398501247168 0.000000000000 +vt 0.089799568057 0.395039051771 0.000000000000 +vt 0.096459656954 0.406454414129 0.000000000000 +vt 0.094413220882 0.401787608862 0.000000000000 +vt 0.097341135144 0.400798738003 0.000000000000 +vt 0.099026650190 0.404693007469 0.000000000000 +vt 0.103435859084 0.409006088972 0.000000000000 +vt 0.100435674191 0.402943789959 0.000000000000 +vt 0.104281768203 0.405376374722 0.000000000000 +vt 0.098907768726 0.399778544903 0.000000000000 +vt 0.065163768828 0.400598347187 0.000000000000 +vt 0.049860190600 0.420209825039 0.000000000000 +vt 0.048853974789 0.434106171131 0.000000000000 +vt 0.054477673024 0.406693518162 0.000000000000 +vt 0.086032271385 0.466448366642 0.000000000000 +vt 0.067181386054 0.464296758175 0.000000000000 +vt 0.053818415850 0.451216369867 0.000000000000 +vt 0.103748381138 0.455393463373 0.000000000000 +vt 0.094275876880 0.397762984037 0.000000000000 +vt 0.095426648855 0.394399613142 0.000000000000 +vt 0.096762046218 0.398063540459 0.000000000000 +vt 0.098227351904 0.396364301443 0.000000000000 +vt 0.097545132041 0.393038094044 0.000000000000 +vt 0.098932549357 0.393664687872 0.000000000000 +vt 0.040455233306 0.407481104136 0.000000000000 +vt 0.037843432277 0.421338081360 0.000000000000 +vt 0.036472912878 0.438838243484 0.000000000000 +vt 0.042982604355 0.460524737835 0.000000000000 +vt 0.062214907259 0.477089822292 0.000000000000 +vt 0.089566305280 0.478372305632 0.000000000000 +vt 0.111008062959 0.438808530569 0.000000000000 +vt 0.113180801272 0.462344437838 0.000000000000 +vt 0.120472237468 0.442430824041 0.000000000000 +vt 0.117490500212 0.428076952696 0.000000000000 +vt 0.109111800790 0.414127260447 0.000000000000 +vt 0.115140110254 0.419330358505 0.000000000000 +vt 0.109508290887 0.408478111029 0.000000000000 +vt 0.099965557456 0.396614462137 0.000000000000 +vt 0.100016877055 0.399250566959 0.000000000000 +vt 0.101089760661 0.401380300522 0.000000000000 +vt 0.104426547885 0.401133537292 0.000000000000 +vt 0.100525066257 0.394041150808 0.000000000000 +vt 0.108131244779 0.401879489422 0.000000000000 +vt 0.105194106698 0.397765219212 0.000000000000 +vt 0.107807472348 0.397282481194 0.000000000000 +vt 0.105133533478 0.393932640553 0.000000000000 +vt 0.107335999608 0.393302202225 0.000000000000 +vt 0.102719649673 0.394079893827 0.000000000000 +vt 0.101905718446 0.396900862455 0.000000000000 +vt 0.101522728801 0.398900896311 0.000000000000 +vt 0.101974606514 0.400191038847 0.000000000000 +vt 0.103468522429 0.399126052856 0.000000000000 +vt 0.104171678424 0.395909041166 0.000000000000 +vt 0.103377550840 0.395803213120 0.000000000000 +vt 0.103972420096 0.397658735514 0.000000000000 +vt 0.103157803416 0.397318959236 0.000000000000 +vt 0.102937594056 0.398482114077 0.000000000000 +vt 0.120900921524 0.421827554703 0.000000000000 +vt 0.125391185284 0.429458737373 0.000000000000 +vt 0.124984331429 0.420799940825 0.000000000000 +vt 0.132154166698 0.427056103945 0.000000000000 +vt 0.128460273147 0.416311025620 0.000000000000 +vt 0.138081595302 0.420313149691 0.000000000000 +vt 0.142197445035 0.410675615072 0.000000000000 +vt 0.131676614285 0.408927738667 0.000000000000 +vt 0.133587732911 0.401068240404 0.000000000000 +vt 0.143351808190 0.401146143675 0.000000000000 +vt 0.133652120829 0.394226670265 0.000000000000 +vt 0.142618030310 0.392982929945 0.000000000000 +vt 0.132911369205 0.388540625572 0.000000000000 +vt 0.141394317150 0.386369884014 0.000000000000 +vt 0.114809587598 0.414815992117 0.000000000000 +vt 0.119088873267 0.418000578880 0.000000000000 +vt 0.121582247317 0.417691677809 0.000000000000 +vt 0.123152919114 0.414221823215 0.000000000000 +vt 0.124552257359 0.408110886812 0.000000000000 +vt 0.125927954912 0.401200413704 0.000000000000 +vt 0.126286625862 0.395116031170 0.000000000000 +vt 0.125815823674 0.390080004930 0.000000000000 +vt 0.120327234268 0.413139492273 0.000000000000 +vt 0.120299309492 0.407533794641 0.000000000000 +vt 0.120726875961 0.401063978672 0.000000000000 +vt 0.120826847851 0.395488440990 0.000000000000 +vt 0.119930967689 0.416081815958 0.000000000000 +vt 0.118429407477 0.416086316109 0.000000000000 +vt 0.115609556437 0.412894517183 0.000000000000 +vt 0.112695828080 0.407353222370 0.000000000000 +vt 0.111295580864 0.401569455862 0.000000000000 +vt 0.110395416617 0.396767795086 0.000000000000 +vt 0.109471604228 0.392846018076 0.000000000000 +vt 0.116785764694 0.395642906427 0.000000000000 +vt 0.116270169616 0.391529113054 0.000000000000 +vt 0.120401531458 0.391011029482 0.000000000000 +vt 0.117080941796 0.400902092457 0.000000000000 +vt 0.117325022817 0.407227128744 0.000000000000 +vt 0.118285760283 0.412657201290 0.000000000000 +vt 0.118986204267 0.415048807859 0.000000000000 +vt 0.118248149753 0.414979010820 0.000000000000 +vt 0.116768434644 0.412282764912 0.000000000000 +vt 0.114910230041 0.406959205866 0.000000000000 +vt 0.113860324025 0.401094585657 0.000000000000 +vt 0.113027706742 0.396125406027 0.000000000000 +vt 0.112157255411 0.392097175121 0.000000000000 +vt 0.130801886320 0.442939460278 0.000000000000 +vt 0.128610894084 0.468570888042 0.000000000000 +vt 0.094356708229 0.491361290216 0.000000000000 +vt 0.141893029213 0.437752097845 0.000000000000 +vt 0.150102630258 0.427333265543 0.000000000000 +vt 0.154337808490 0.414093464613 0.000000000000 +vt 0.154476270080 0.401521474123 0.000000000000 +vt 0.152643069625 0.391335010529 0.000000000000 +vt 0.150666207075 0.383463352919 0.000000000000 +vt 0.151377916336 0.454670488834 0.000000000000 +vt 0.163681745529 0.437636584044 0.000000000000 +vt 0.168372631073 0.418352723122 0.000000000000 +vt 0.166913852096 0.401432096958 0.000000000000 +vt 0.163569614291 0.388818919659 0.000000000000 +vt 0.160684034228 0.379647225142 0.000000000000 +vt 0.159950926900 0.471008867025 0.000000000000 +vt 0.132880300283 0.489435285330 0.000000000000 +vt 0.177281573415 0.447766780853 0.000000000000 +vt 0.184215664864 0.422988891602 0.000000000000 +vt 0.181977853179 0.401209205389 0.000000000000 +vt 0.176495552063 0.385539740324 0.000000000000 +vt 0.171912297606 0.374865829945 0.000000000000 +vt 0.098764792085 0.505384683609 0.000000000000 +vt 0.058615576476 0.491276592016 0.000000000000 +vt 0.294122487307 0.343028873205 0.000000000000 +vt 0.033512126654 0.473827123642 0.000000000000 +vt 0.022036869079 0.449060529470 0.000000000000 +vt 0.304196149111 0.365502059460 0.000000000000 +vt 0.294669389725 0.374178409576 0.000000000000 +vt 0.283370435238 0.353863328695 0.000000000000 +vt 0.021253105253 0.427221357822 0.000000000000 +vt 0.316540300846 0.419560700655 0.000000000000 +vt 0.308288812637 0.422085821629 0.000000000000 +vt 0.304480075836 0.396445810795 0.000000000000 +vt 0.312906295061 0.403799384832 0.000000000000 +vt 0.320418357849 0.438478231430 0.000000000000 +vt 0.309799134731 0.442829579115 0.000000000000 +vt 0.322631418705 0.453612715006 0.000000000000 +vt 0.308162033558 0.458434849977 0.000000000000 +vt 0.322842836380 0.466000735760 0.000000000000 +vt 0.304739683867 0.470083713531 0.000000000000 +vt 0.321488976479 0.476586610079 0.000000000000 +vt 0.301276564598 0.479211658239 0.000000000000 +vt 0.318110078573 0.486222833395 0.000000000000 +vt 0.298631459475 0.487806051970 0.000000000000 +vt 0.342029422522 0.477887094021 0.000000000000 +vt 0.335520654917 0.489814013243 0.000000000000 +vt 0.338924765587 0.462258905172 0.000000000000 +vt 0.335986942053 0.447854578495 0.000000000000 +vt 0.331019103527 0.432695329189 0.000000000000 +vt 0.324403166771 0.415379106998 0.000000000000 +vt 0.317968666553 0.397860914469 0.000000000000 +vt 0.311544537544 0.382980197668 0.000000000000 +vt 0.292794078588 0.320117980242 0.000000000000 +vt 0.322062432766 0.330567449331 0.000000000000 +vt 0.310178071260 0.344646602869 0.000000000000 +vt 0.321752399206 0.375562220812 0.000000000000 +vt 0.315860539675 0.358816295862 0.000000000000 +vt 0.327765852213 0.391973108053 0.000000000000 +vt 0.334508121014 0.409605920315 0.000000000000 +vt 0.341052263975 0.426227092743 0.000000000000 +vt 0.345613449812 0.441917032003 0.000000000000 +vt 0.349559307098 0.456911921501 0.000000000000 +vt 0.353330194950 0.470938861370 0.000000000000 +vt 0.352067083120 0.491384476423 0.000000000000 +vt 0.346471965313 0.498636275530 0.000000000000 +vt 0.357014626265 0.482859700918 0.000000000000 +vt 0.023049619049 0.410277992487 0.000000000000 +vt 0.188200235367 0.367613345385 0.000000000000 +vt 0.193979293108 0.380675494671 0.000000000000 +vt 0.199914619327 0.400077104568 0.000000000000 +vt 0.200497537851 0.426822185516 0.000000000000 +vt 0.188813567162 0.456079959869 0.000000000000 +vt 0.165967300534 0.483203917742 0.000000000000 +vt 0.135587558150 0.503403544426 0.000000000000 +vt 0.101455852389 0.518397510052 0.000000000000 +vt 0.136549651623 0.514204204082 0.000000000000 +vt 0.102526023984 0.530645966530 0.000000000000 +vt 0.170128390193 0.491040199995 0.000000000000 +vt 0.198282465339 0.460966050625 0.000000000000 +vt 0.217465236783 0.429308772087 0.000000000000 +vt 0.220426246524 0.397770404816 0.000000000000 +vt 0.216484680772 0.373772233725 0.000000000000 +vt 0.211094245315 0.355721533298 0.000000000000 +vt 0.078403115273 0.417854249477 0.000000000000 +vt 0.077661454678 0.423130065203 0.000000000000 +vt 0.361433088779 0.473092228174 0.000000000000 +vt 0.358897387981 0.464050680399 0.000000000000 +vt 0.356920510530 0.451468318701 0.000000000000 +vt 0.079683125019 0.414227455854 0.000000000000 +vt 0.080865636468 0.412698864937 0.000000000000 +vt 0.081717401743 0.412858963013 0.000000000000 +vt 0.082934811711 0.414582073689 0.000000000000 +vt 0.083612754941 0.417999476194 0.000000000000 +vt 0.083627842367 0.422989368439 0.000000000000 +vt 0.355338811874 0.436321228743 0.000000000000 +vt 0.352934360504 0.420035988092 0.000000000000 +vt 0.348425179720 0.402650177479 0.000000000000 +vt 0.342104852200 0.385241180658 0.000000000000 +vt 0.336092978716 0.368649065495 0.000000000000 +vt 0.083053693175 0.428555428982 0.000000000000 +vt 0.331038475037 0.351473778486 0.000000000000 +vt 0.295939028263 0.301119387150 0.000000000000 +vt 0.322564095259 0.306299775839 0.000000000000 +vt 0.297336816788 0.282364428043 0.000000000000 +vt 0.323178768158 0.284241318703 0.000000000000 +vt 0.367684066296 0.461390703917 0.000000000000 +vt 0.363470733166 0.458035647869 0.000000000000 +vt 0.364652335644 0.447590470314 0.000000000000 +vt 0.365994274616 0.432411193848 0.000000000000 +vt 0.366280674934 0.415150791407 0.000000000000 +vt 0.364420890808 0.396647334099 0.000000000000 +vt 0.360572069883 0.378713041544 0.000000000000 +vt 0.356490701437 0.362032413483 0.000000000000 +vt 0.353067219257 0.345778703690 0.000000000000 +vt 0.350522726774 0.327914893627 0.000000000000 +vt 0.348939448595 0.305953025818 0.000000000000 +vt 0.346083581448 0.277952730656 0.000000000000 +vt 0.373975127935 0.447995543480 0.000000000000 +vt 0.379207283258 0.431906849146 0.000000000000 +vt 0.382956564426 0.412491261959 0.000000000000 +vt 0.384116321802 0.392035484314 0.000000000000 +vt 0.382254749537 0.373682171106 0.000000000000 +vt 0.379626274109 0.358964234591 0.000000000000 +vt 0.377992331982 0.345823734999 0.000000000000 +vt 0.377301573753 0.329902321100 0.000000000000 +vt 0.376336544752 0.303653508425 0.000000000000 +vt 0.370527774096 0.266846507788 0.000000000000 +vt 0.216167435050 0.467717558146 0.000000000000 +vt 0.210370138288 0.459447145462 0.000000000000 +vt 0.081996142864 0.433199465275 0.000000000000 +vt 0.222096204758 0.439130961895 0.000000000000 +vt 0.226445078850 0.444121509790 0.000000000000 +vt 0.233966410160 0.386992007494 0.000000000000 +vt 0.231436342001 0.403846651316 0.000000000000 +vt 0.228788286448 0.415274649858 0.000000000000 +vt 0.231669127941 0.390098005533 0.000000000000 +vt 0.233401954174 0.365559697151 0.000000000000 +vt 0.227946877480 0.368952572346 0.000000000000 +vt 0.222369551659 0.352989733219 0.000000000000 +vt 0.231268167496 0.347663909197 0.000000000000 +vt 0.228197038174 0.333069592714 0.000000000000 +vt 0.215772062540 0.341411590576 0.000000000000 +vt 0.225630939007 0.321423888206 0.000000000000 +vt 0.210557922721 0.332115828991 0.000000000000 +vt 0.240293502808 0.310512185097 0.000000000000 +vt 0.238473564386 0.327548325062 0.000000000000 +vt 0.237924396992 0.344880312681 0.000000000000 +vt 0.237548619509 0.364148646593 0.000000000000 +vt 0.080796964467 0.435884207487 0.000000000000 +vt 0.235683202744 0.385488867760 0.000000000000 +vt 0.233118027449 0.406267970800 0.000000000000 +vt 0.231307089329 0.424209684134 0.000000000000 +vt 0.210896104574 0.489333540201 0.000000000000 +vt 0.228112816811 0.462109386921 0.000000000000 +vt 0.236405730247 0.472126305103 0.000000000000 +vt 0.236261844635 0.426290810108 0.000000000000 +vt 0.232935667038 0.445951789618 0.000000000000 +vt 0.237997591496 0.406573981047 0.000000000000 +vt 0.240250259638 0.385305374861 0.000000000000 +vt 0.242734611034 0.364867120981 0.000000000000 +vt 0.244929671288 0.346436828375 0.000000000000 +vt 0.247872665524 0.330308973789 0.000000000000 +vt 0.250990182161 0.316065877676 0.000000000000 +vt 0.249255821109 0.295715004206 0.000000000000 +vt 0.254375159740 0.304102927446 0.000000000000 +vt 0.259052336216 0.313747882843 0.000000000000 +vt 0.256746292114 0.322819858789 0.000000000000 +vt 0.255218595266 0.335408508778 0.000000000000 +vt 0.254195064306 0.350621551275 0.000000000000 +vt 0.252835571766 0.367554813623 0.000000000000 +vt 0.250323951244 0.386674314737 0.000000000000 +vt 0.247343555093 0.407099246979 0.000000000000 +vt 0.244989335537 0.426806420088 0.000000000000 +vt 0.242804884911 0.447076678276 0.000000000000 +vt 0.235569059849 0.496732383966 0.000000000000 +vt 0.210636273026 0.507261335850 0.000000000000 +vt 0.265602082014 0.325080633163 0.000000000000 +vt 0.261477023363 0.328609049320 0.000000000000 +vt 0.262952446938 0.338707923889 0.000000000000 +vt 0.264598786831 0.353362590075 0.000000000000 +vt 0.265408009291 0.370452553034 0.000000000000 +vt 0.264614790678 0.389507651329 0.000000000000 +vt 0.262594908476 0.408623784781 0.000000000000 +vt 0.260723888874 0.426476329565 0.000000000000 +vt 0.259777098894 0.444406121969 0.000000000000 +vt 0.259517729282 0.464280545712 0.000000000000 +vt 0.259723722935 0.488092929125 0.000000000000 +vt 0.272190570831 0.337464153767 0.000000000000 +vt 0.277376800776 0.352163642645 0.000000000000 +vt 0.281132608652 0.370615124702 0.000000000000 +vt 0.283069849014 0.391205787659 0.000000000000 +vt 0.282786369324 0.410528808832 0.000000000000 +vt 0.281975150108 0.425936192274 0.000000000000 +vt 0.281850397587 0.438871800900 0.000000000000 +vt 0.282650381327 0.454188883305 0.000000000000 +vt 0.285106837749 0.479603022337 0.000000000000 +vt 0.079694159329 0.435663342476 0.000000000000 +vt 0.078524023294 0.432797789574 0.000000000000 +vt 0.077620923519 0.428230971098 0.000000000000 +vt 0.079657681286 0.418213814497 0.000000000000 +vt 0.079307116568 0.423214733601 0.000000000000 +vt 0.080295994878 0.414836943150 0.000000000000 +vt 0.080963805318 0.413298457861 0.000000000000 +vt 0.081294111907 0.413456052542 0.000000000000 +vt 0.081488415599 0.414713323116 0.000000000000 +vt 0.082648865879 0.418150305748 0.000000000000 +vt 0.082757845521 0.422904253006 0.000000000000 +vt 0.082332074642 0.427900880575 0.000000000000 +vt 0.081549659371 0.432032704353 0.000000000000 +vt 0.080782778561 0.434659361839 0.000000000000 +vt 0.080355659127 0.434551537037 0.000000000000 +vt 0.079714648426 0.432231515646 0.000000000000 +vt 0.079296082258 0.428110510111 0.000000000000 +vt 0.221947401762 0.311564117670 0.000000000000 +vt 0.206676691771 0.323618710041 0.000000000000 +vt 0.234236359596 0.298808634281 0.000000000000 +vt 0.243671953678 0.288532763720 0.000000000000 +vt 0.210074737668 0.525931179523 0.000000000000 +vt 0.234980046749 0.519074082375 0.000000000000 +vt 0.258448451757 0.516759932041 0.000000000000 +vt 0.285151630640 0.516420423985 0.000000000000 +vt 0.195827364922 0.027920853347 0.000000000000 +vt 0.193216472864 0.025534208864 0.000000000000 +vt 0.208045646548 0.014590993524 0.000000000000 +vt 0.209939867258 0.017815891653 0.000000000000 +vt 0.219733223319 0.012098524719 0.000000000000 +vt 0.219577640295 0.015777334571 0.000000000000 +vt 0.231459319592 0.012075107545 0.000000000000 +vt 0.230521082878 0.016644857824 0.000000000000 +vt 0.243238985538 0.012886568904 0.000000000000 +vt 0.242090910673 0.019283901900 0.000000000000 +vt 0.254986017942 0.014112763107 0.000000000000 +vt 0.254209905863 0.020853456110 0.000000000000 +vt 0.268618255854 0.021859001368 0.000000000000 +vt 0.266599744558 0.015186753124 0.000000000000 +vt 0.278297692537 0.015581674874 0.000000000000 +vt 0.280311465263 0.022918354720 0.000000000000 +vt 0.294243395329 0.017284523696 0.000000000000 +vt 0.290962666273 0.024005178362 0.000000000000 +vt 0.296158790588 0.030226442963 0.000000000000 +vt 0.300414890051 0.029313210398 0.000000000000 +vt 0.303686618805 0.042154934257 0.000000000000 +vt 0.299199730158 0.041589122266 0.000000000000 +vt 0.303400695324 0.052850034088 0.000000000000 +vt 0.299067586660 0.051488291472 0.000000000000 +vt 0.301245510578 0.063028395176 0.000000000000 +vt 0.297050625086 0.061028119177 0.000000000000 +vt 0.188072130084 0.041658472270 0.000000000000 +vt 0.184647515416 0.040359999985 0.000000000000 +vt 0.185590237379 0.054300930351 0.000000000000 +vt 0.180999323726 0.054078709334 0.000000000000 +vt 0.186842098832 0.067733690143 0.000000000000 +vt 0.180815145373 0.066969290376 0.000000000000 +vt 0.187923297286 0.082707628608 0.000000000000 +vt 0.181074976921 0.081876814365 0.000000000000 +vt 0.187377303839 0.107746466994 0.000000000000 +vt 0.187539190054 0.120622426271 0.000000000000 +vt 0.181078135967 0.122370526195 0.000000000000 +vt 0.180750086904 0.106961801648 0.000000000000 +vt 0.181374669075 0.094601452351 0.000000000000 +vt 0.187665045261 0.095849484205 0.000000000000 +vt 0.227798283100 0.129312291741 0.000000000000 +vt 0.238564521074 0.124569609761 0.000000000000 +vt 0.243330389261 0.127270132303 0.000000000000 +vt 0.231010556221 0.133791074157 0.000000000000 +vt 0.220073655248 0.135354548693 0.000000000000 +vt 0.218523919582 0.131200432777 0.000000000000 +vt 0.206768333912 0.135661438107 0.000000000000 +vt 0.206591814756 0.131151124835 0.000000000000 +vt 0.194878339767 0.131718292832 0.000000000000 +vt 0.195264026523 0.127670004964 0.000000000000 +vt 0.297571629286 0.073909014463 0.000000000000 +vt 0.293510973454 0.071692824364 0.000000000000 +vt 0.293531447649 0.085388556123 0.000000000000 +vt 0.288804322481 0.082740962505 0.000000000000 +vt 0.284273296595 0.097582057118 0.000000000000 +vt 0.281252384186 0.094275429845 0.000000000000 +vt 0.270511358976 0.111514881253 0.000000000000 +vt 0.267813563347 0.108745023608 0.000000000000 +vt 0.253925532103 0.117747187614 0.000000000000 +vt 0.256331086159 0.121454820037 0.000000000000 +vt 0.267415255308 0.081492692232 0.000000000000 +vt 0.255906671286 0.094144165516 0.000000000000 +vt 0.244139820337 0.101001486182 0.000000000000 +vt 0.231230318546 0.105198845267 0.000000000000 +vt 0.219598352909 0.110711082816 0.000000000000 +vt 0.213647723198 0.110525771976 0.000000000000 +vt 0.198271200061 0.116921544075 0.000000000000 +vt 0.203886121511 0.110362097621 0.000000000000 +vt 0.196813777089 0.098104864359 0.000000000000 +vt 0.196252465248 0.102853164077 0.000000000000 +vt 0.272518634796 0.073012456298 0.000000000000 +vt 0.276711463928 0.062691569328 0.000000000000 +vt 0.280104994774 0.053172681481 0.000000000000 +vt 0.283575773239 0.045879449695 0.000000000000 +vt 0.283506870270 0.039421103895 0.000000000000 +vt 0.282259076834 0.030528377742 0.000000000000 +vt 0.272425651550 0.030439440161 0.000000000000 +vt 0.257659971714 0.030192218721 0.000000000000 +vt 0.247058525681 0.033215377480 0.000000000000 +vt 0.228341341019 0.025837715715 0.000000000000 +vt 0.218866378069 0.024133518338 0.000000000000 +vt 0.212634310126 0.025178913027 0.000000000000 +vt 0.200903266668 0.032452777028 0.000000000000 +vt 0.194876089692 0.044088792056 0.000000000000 +vt 0.193243041635 0.053994949907 0.000000000000 +vt 0.194931253791 0.067793801427 0.000000000000 +vt 0.198766767979 0.084062173963 0.000000000000 +vt 0.206359907985 0.094736546278 0.000000000000 +vt 0.212366148829 0.098234102130 0.000000000000 +vt 0.217166453600 0.096218973398 0.000000000000 +vt 0.205443292856 0.087112799287 0.000000000000 +vt 0.226509511471 0.090840920806 0.000000000000 +vt 0.237037748098 0.087899029255 0.000000000000 +vt 0.246875688434 0.081057921052 0.000000000000 +vt 0.256278872490 0.072482436895 0.000000000000 +vt 0.260736495256 0.057795342058 0.000000000000 +vt 0.259254723787 0.064904838800 0.000000000000 +vt 0.272691100836 0.038979575038 0.000000000000 +vt 0.262009739876 0.038989257067 0.000000000000 +vt 0.276944041252 0.045822035521 0.000000000000 +vt 0.268426418304 0.047114204615 0.000000000000 +vt 0.269619315863 0.043809827417 0.000000000000 +vt 0.253669768572 0.045147921890 0.000000000000 +vt 0.248847588897 0.056667540222 0.000000000000 +vt 0.246177032590 0.064497530460 0.000000000000 +vt 0.239239543676 0.071869567037 0.000000000000 +vt 0.232059359550 0.077080324292 0.000000000000 +vt 0.222070574760 0.079870447516 0.000000000000 +vt 0.206698760390 0.074161648750 0.000000000000 +vt 0.213897421956 0.072432681918 0.000000000000 +vt 0.205729246140 0.062620416284 0.000000000000 +vt 0.203790888190 0.054370727390 0.000000000000 +vt 0.204770088196 0.045650247484 0.000000000000 +vt 0.208388775587 0.038391694427 0.000000000000 +vt 0.216515302658 0.032267022878 0.000000000000 +vt 0.221525013447 0.031139671803 0.000000000000 +vt 0.229856431484 0.032532032579 0.000000000000 +vt 0.240117192268 0.040356174111 0.000000000000 +vt 0.238003432751 0.049525838345 0.000000000000 +vt 0.230851382017 0.062317129225 0.000000000000 +vt 0.223892956972 0.068100020289 0.000000000000 +vt 0.218158707023 0.060949768871 0.000000000000 +vt 0.224889278412 0.055608633906 0.000000000000 +vt 0.231338173151 0.044668566436 0.000000000000 +vt 0.224949836731 0.040866594762 0.000000000000 +vt 0.220517441630 0.039209909737 0.000000000000 +vt 0.215718701482 0.043925788254 0.000000000000 +vt 0.211569100618 0.049045812339 0.000000000000 +vt 0.212551221251 0.054835002869 0.000000000000 +vt 0.219418004155 0.048615094274 0.000000000000 +vt 0.177896246314 0.039324510843 0.000000000000 +vt 0.189204439521 0.020011376590 0.000000000000 +vt 0.204814672470 0.008875429630 0.000000000000 +vt 0.218808963895 0.005773015320 0.000000000000 +vt 0.232130467892 0.004795841873 0.000000000000 +vt 0.243434399366 0.006405927241 0.000000000000 +vt 0.255707651377 0.007152091712 0.000000000000 +vt 0.266037523746 0.008445382118 0.000000000000 +vt 0.276542603970 0.009638480842 0.000000000000 +vt 0.291882872581 0.013886258006 0.000000000000 +vt 0.305758953094 0.026801381260 0.000000000000 +vt 0.310110300779 0.042010162026 0.000000000000 +vt 0.309658646584 0.054701257497 0.000000000000 +vt 0.307640582323 0.066039174795 0.000000000000 +vt 0.304315268993 0.075605571270 0.000000000000 +vt 0.302689433098 0.083687961102 0.000000000000 +vt 0.289600938559 0.101637110114 0.000000000000 +vt 0.275979250669 0.114943787456 0.000000000000 +vt 0.261293739080 0.125751689076 0.000000000000 +vt 0.248583957553 0.132909372449 0.000000000000 +vt 0.218775406480 0.143254563212 0.000000000000 +vt 0.228658616543 0.143950298429 0.000000000000 +vt 0.206840604544 0.142785564065 0.000000000000 +vt 0.190907508135 0.138325244188 0.000000000000 +vt 0.181003153324 0.126772314310 0.000000000000 +vt 0.174718171358 0.105727061629 0.000000000000 +vt 0.175457358360 0.093386068940 0.000000000000 +vt 0.176170423627 0.080959752202 0.000000000000 +vt 0.175519734621 0.067012742162 0.000000000000 +vt 0.174860477448 0.054189030081 0.000000000000 +vt 0.175442948937 0.118314579129 0.000000000000 +vt 0.299658834934 0.013686995953 0.000000000000 +vt 0.297007620335 0.015501294285 0.000000000000 +vt 0.296986013651 0.094732716680 0.000000000000 +vt 0.178140535951 0.121313422918 0.000000000000 +vt 0.178094834089 0.129377126694 0.000000000000 +vt 0.290370285511 0.010927941650 0.000000000000 +vt 0.240662753582 0.138773083687 0.000000000000 +vt 0.059489179403 0.582100212574 0.000000000000 +vt 0.068415686488 0.582416296005 0.000000000000 +vt 0.067261539400 0.606926023960 0.000000000000 +vt 0.058599364012 0.606609225273 0.000000000000 +vt 0.050634499639 0.581815600395 0.000000000000 +vt 0.050033342093 0.606300354004 0.000000000000 +vt 0.041638877243 0.581597447395 0.000000000000 +vt 0.041299115866 0.606083035469 0.000000000000 +vt 0.032489020377 0.581519067287 0.000000000000 +vt 0.032466728240 0.605973839760 0.000000000000 +vt 0.023544281721 0.581574916840 0.000000000000 +vt 0.023710895330 0.605970263481 0.000000000000 +vt 0.077301658690 0.582797050476 0.000000000000 +vt 0.075893089175 0.607333362103 0.000000000000 +vt 0.035480882972 0.775563001633 0.000000000000 +vt 0.040293347090 0.776472151279 0.000000000000 +vt 0.036699648947 0.779854416847 0.000000000000 +vt 0.032038930804 0.777974605560 0.000000000000 +vt 0.044753897935 0.775144159794 0.000000000000 +vt 0.049120556563 0.776610195637 0.000000000000 +vt 0.044636141509 0.779394447803 0.000000000000 +vt 0.050690788776 0.780745148659 0.000000000000 +vt 0.054302733392 0.776831269264 0.000000000000 +vt 0.056948300451 0.779902398586 0.000000000000 +vt 0.057442288846 0.767054140568 0.000000000000 +vt 0.051350947469 0.766096353531 0.000000000000 +vt 0.045185070485 0.765643537045 0.000000000000 +vt 0.039071660489 0.765589058399 0.000000000000 +vt 0.032788928598 0.766110718250 0.000000000000 +vt 0.026467472315 0.767407417297 0.000000000000 +vt 0.063698008657 0.768436372280 0.000000000000 +vt 0.410184800625 0.205661505461 0.000000000000 +vt 0.061233457178 0.523812234402 0.000000000000 +vt 0.070765629411 0.524310529232 0.000000000000 +vt 0.069685108960 0.554912924767 0.000000000000 +vt 0.060390468687 0.554528176785 0.000000000000 +vt 0.053767081350 0.729990005493 0.000000000000 +vt 0.061261150986 0.730732798576 0.000000000000 +vt 0.054995980114 0.702194809914 0.000000000000 +vt 0.062634825706 0.702704548836 0.000000000000 +vt 0.064006246626 0.678737044334 0.000000000000 +vt 0.055990491062 0.678335130215 0.000000000000 +vt 0.056928943843 0.654432654381 0.000000000000 +vt 0.065110854805 0.654795587063 0.000000000000 +vt 0.066195428371 0.630862057209 0.000000000000 +vt 0.057763587683 0.630513489246 0.000000000000 +vt 0.051746767014 0.523659586906 0.000000000000 +vt 0.051160465926 0.554318308830 0.000000000000 +vt 0.046276170760 0.729541480541 0.000000000000 +vt 0.047176342458 0.701836824417 0.000000000000 +vt 0.047830644995 0.678016304970 0.000000000000 +vt 0.048644352704 0.654150307178 0.000000000000 +vt 0.049303833395 0.630233883858 0.000000000000 +vt 0.042389769107 0.523753523827 0.000000000000 +vt 0.041977059096 0.554233670235 0.000000000000 +vt 0.038769047707 0.729471445084 0.000000000000 +vt 0.039331037551 0.701696574688 0.000000000000 +vt 0.039704795927 0.677826702595 0.000000000000 +vt 0.040310915560 0.653930783272 0.000000000000 +vt 0.040829222649 0.630019962788 0.000000000000 +vt 0.032788697630 0.523885667324 0.000000000000 +vt 0.032603625208 0.554248988628 0.000000000000 +vt 0.031183568761 0.729752242565 0.000000000000 +vt 0.031547192484 0.701745390892 0.000000000000 +vt 0.031793061644 0.677753329277 0.000000000000 +vt 0.032022494823 0.653800427914 0.000000000000 +vt 0.032241348177 0.629892110825 0.000000000000 +vt 0.023286256939 0.523862004280 0.000000000000 +vt 0.023312594742 0.554275989532 0.000000000000 +vt 0.023615654558 0.730087935925 0.000000000000 +vt 0.023773714900 0.701748549938 0.000000000000 +vt 0.023966450244 0.677748382092 0.000000000000 +vt 0.023824151605 0.653813481331 0.000000000000 +vt 0.023755025119 0.629873633385 0.000000000000 +vt 0.080035939813 0.524939179420 0.000000000000 +vt 0.078819200397 0.555354475975 0.000000000000 +vt 0.068714916706 0.731523096561 0.000000000000 +vt 0.070204541087 0.703219473362 0.000000000000 +vt 0.071883074939 0.679210066795 0.000000000000 +vt 0.073152050376 0.655230820179 0.000000000000 +vt 0.074596188962 0.631297707558 0.000000000000 +vt 0.427655726671 0.333007007837 0.000000000000 +vt 0.440372914076 0.328327596188 0.000000000000 +vt 0.444987475872 0.344597071409 0.000000000000 +vt 0.432079792023 0.348230421543 0.000000000000 +vt 0.436833947897 0.363906830549 0.000000000000 +vt 0.449768215418 0.360880523920 0.000000000000 +vt 0.454692780972 0.378165900707 0.000000000000 +vt 0.441895663738 0.381562143564 0.000000000000 +vt 0.414691954851 0.337748318911 0.000000000000 +vt 0.419402211905 0.352767288685 0.000000000000 +vt 0.424107730389 0.368486940861 0.000000000000 +vt 0.429422736168 0.385863065720 0.000000000000 +vt 0.401303559542 0.341026574373 0.000000000000 +vt 0.406823009253 0.357325315475 0.000000000000 +vt 0.411697834730 0.372874319553 0.000000000000 +vt 0.417245209217 0.390449941158 0.000000000000 +vt 0.387970775366 0.344980746508 0.000000000000 +vt 0.393820285797 0.361572891474 0.000000000000 +vt 0.399133056402 0.377458244562 0.000000000000 +vt 0.404806077480 0.394824922085 0.000000000000 +vt 0.453473359346 0.324476778507 0.000000000000 +vt 0.466956764460 0.321778506041 0.000000000000 +vt 0.471398383379 0.338798433542 0.000000000000 +vt 0.458161979914 0.342115193605 0.000000000000 +vt 0.462697505951 0.358080714941 0.000000000000 +vt 0.475638061762 0.355021774769 0.000000000000 +vt 0.480182796717 0.372735410929 0.000000000000 +vt 0.467404156923 0.375559061766 0.000000000000 +vt 0.423334538937 0.312670528889 0.000000000000 +vt 0.433873385191 0.309838533401 0.000000000000 +vt 0.436265200377 0.312351495028 0.000000000000 +vt 0.422530740499 0.315895646811 0.000000000000 +vt 0.447797864676 0.306353360415 0.000000000000 +vt 0.450094014406 0.308744937181 0.000000000000 +vt 0.461704343557 0.302910506725 0.000000000000 +vt 0.463915377855 0.305326640606 0.000000000000 +vt 0.382604420185 0.326017051935 0.000000000000 +vt 0.392749220133 0.322181522846 0.000000000000 +vt 0.395257681608 0.324275016785 0.000000000000 +vt 0.382101863623 0.329265147448 0.000000000000 +vt 0.406064450741 0.317371100187 0.000000000000 +vt 0.408690214157 0.319537758827 0.000000000000 +vt 0.454164594412 0.389897853136 0.000000000000 +vt 0.448823004961 0.391495555639 0.000000000000 +vt 0.443516105413 0.386446684599 0.000000000000 +vt 0.456138074398 0.383067548275 0.000000000000 +vt 0.437463909388 0.395830690861 0.000000000000 +vt 0.431178033352 0.391206234694 0.000000000000 +vt 0.424428552389 0.400618851185 0.000000000000 +vt 0.419008165598 0.395644724369 0.000000000000 +vt 0.412200152874 0.404757648706 0.000000000000 +vt 0.406511843204 0.400167405605 0.000000000000 +vt 0.479276150465 0.385172754526 0.000000000000 +vt 0.473846048117 0.386270821095 0.000000000000 +vt 0.468606919050 0.380785584450 0.000000000000 +vt 0.481370300055 0.378176510334 0.000000000000 +vt 0.436999201775 0.315413832664 0.000000000000 +vt 0.423440814018 0.318899452686 0.000000000000 +vt 0.450722873211 0.311825752258 0.000000000000 +vt 0.464657485485 0.308184534311 0.000000000000 +vt 0.396297454834 0.327027112246 0.000000000000 +vt 0.382932245731 0.332121223211 0.000000000000 +vt 0.409763991833 0.322595357895 0.000000000000 +vt 0.442299365997 0.382790595293 0.000000000000 +vt 0.455049455166 0.379350900650 0.000000000000 +vt 0.429864943027 0.387207239866 0.000000000000 +vt 0.417697101831 0.391777902842 0.000000000000 +vt 0.404973804951 0.396399646997 0.000000000000 +vt 0.467713981867 0.376910001040 0.000000000000 +vt 0.480817049742 0.374158143997 0.000000000000 +vt 0.437278181314 0.316399097443 0.000000000000 +vt 0.423721343279 0.319981753826 0.000000000000 +vt 0.450930684805 0.312892526388 0.000000000000 +vt 0.464460253716 0.309410959482 0.000000000000 +vt 0.396746635437 0.328152865171 0.000000000000 +vt 0.383763283491 0.333080857992 0.000000000000 +vt 0.410141348839 0.323806256056 0.000000000000 +vt 0.371242642403 0.206788405776 0.000000000000 +vt 0.375714451075 0.200254172087 0.000000000000 +vt 0.379231601954 0.206475213170 0.000000000000 +vt 0.375783115625 0.212909027934 0.000000000000 +vt 0.383946120739 0.214252978563 0.000000000000 +vt 0.385994136333 0.206152796745 0.000000000000 +vt 0.383823841810 0.198206618428 0.000000000000 +vt 0.389040261507 0.196492955089 0.000000000000 +vt 0.391231000423 0.205955997109 0.000000000000 +vt 0.388896137476 0.215648040175 0.000000000000 +vt 0.386244505644 0.225284442306 0.000000000000 +vt 0.381366074085 0.234502539039 0.000000000000 +vt 0.377654612064 0.230434879661 0.000000000000 +vt 0.380352199078 0.177962914109 0.000000000000 +vt 0.385863542557 0.187034189701 0.000000000000 +vt 0.376735985279 0.182071089745 0.000000000000 +vt 0.400243073702 0.205795019865 0.000000000000 +vt 0.398853629827 0.194475561380 0.000000000000 +vt 0.398457139730 0.217155665159 0.000000000000 +vt 0.395268946886 0.228200212121 0.000000000000 +vt 0.391248136759 0.239007428288 0.000000000000 +vt 0.395271182060 0.183712929487 0.000000000000 +vt 0.390099167824 0.173236235976 0.000000000000 +vt 0.404895007610 0.295395046473 0.000000000000 +vt 0.401947498322 0.296175211668 0.000000000000 +vt 0.399637848139 0.292153716087 0.000000000000 +vt 0.401830643415 0.291295886040 0.000000000000 +vt 0.399310708046 0.296199768782 0.000000000000 +vt 0.397574305534 0.292755782604 0.000000000000 +vt 0.408904105425 0.288272053003 0.000000000000 +vt 0.407307982445 0.290285140276 0.000000000000 +vt 0.404559284449 0.287732571363 0.000000000000 +vt 0.406326085329 0.285840153694 0.000000000000 +vt 0.406662702560 0.292970359325 0.000000000000 +vt 0.403447926044 0.289671152830 0.000000000000 +vt 0.396660417318 0.287977755070 0.000000000000 +vt 0.398700773716 0.286984145641 0.000000000000 +vt 0.394956201315 0.288790345192 0.000000000000 +vt 0.401856094599 0.284300088882 0.000000000000 +vt 0.403861761093 0.282722651958 0.000000000000 +vt 0.400499969721 0.285655498505 0.000000000000 +vt 0.393806338310 0.283442467451 0.000000000000 +vt 0.395833194256 0.282441198826 0.000000000000 +vt 0.392093360424 0.284306377172 0.000000000000 +vt 0.399467855692 0.280218929052 0.000000000000 +vt 0.401700288057 0.278968840837 0.000000000000 +vt 0.397831201553 0.281272202730 0.000000000000 +vt 0.391297876835 0.278489261866 0.000000000000 +vt 0.393293648958 0.277554869652 0.000000000000 +vt 0.389414459467 0.279250085354 0.000000000000 +vt 0.397396445274 0.275657951832 0.000000000000 +vt 0.399793207645 0.274844229221 0.000000000000 +vt 0.395377457142 0.276584476233 0.000000000000 +vt 0.389087766409 0.272915095091 0.000000000000 +vt 0.391173362732 0.272055685520 0.000000000000 +vt 0.386810988188 0.273582458496 0.000000000000 +vt 0.395762920380 0.270275622606 0.000000000000 +vt 0.398250907660 0.270135104656 0.000000000000 +vt 0.393281280994 0.271341711283 0.000000000000 +vt 0.387520015240 0.266913384199 0.000000000000 +vt 0.389951229095 0.266276419163 0.000000000000 +vt 0.384966522455 0.267515212297 0.000000000000 +vt 0.394670933485 0.264871448278 0.000000000000 +vt 0.397267192602 0.265005409718 0.000000000000 +vt 0.392056882381 0.265746623278 0.000000000000 +vt 0.386280536652 0.262535691261 0.000000000000 +vt 0.389030128717 0.261800318956 0.000000000000 +vt 0.383825421333 0.263225555420 0.000000000000 +vt 0.394305050373 0.261209517717 0.000000000000 +vt 0.396993845701 0.261318951845 0.000000000000 +vt 0.391601622105 0.261423856020 0.000000000000 +vt 0.384926229715 0.259148895741 0.000000000000 +vt 0.388205587864 0.257940262556 0.000000000000 +vt 0.382767438889 0.261004865170 0.000000000000 +vt 0.394367873669 0.258704215288 0.000000000000 +vt 0.397562384605 0.259168028831 0.000000000000 +vt 0.391579329967 0.257740765810 0.000000000000 +vt 0.062066528946 0.497222512960 0.000000000000 +vt 0.071865737438 0.497819632292 0.000000000000 +vt 0.052253138274 0.497047573328 0.000000000000 +vt 0.042627077550 0.497259229422 0.000000000000 +vt 0.032757628709 0.497487276793 0.000000000000 +vt 0.022930733860 0.497487515211 0.000000000000 +vt 0.081421323121 0.498642355204 0.000000000000 +vt 0.408895790577 0.192783519626 0.000000000000 +vt 0.405064105988 0.180669501424 0.000000000000 +vt 0.400167405605 0.169291511178 0.000000000000 +vt 0.401480078697 0.242461070418 0.000000000000 +vt 0.405161798000 0.230870768428 0.000000000000 +vt 0.408491641283 0.218653172255 0.000000000000 +vt 0.380247503519 0.189571470022 0.000000000000 +vt 0.381086647511 0.223131284118 0.000000000000 +vt 0.420218378305 0.313499540091 0.000000000000 +vt 0.442574709654 0.393686324358 0.000000000000 +vt 0.437170535326 0.308998465538 0.000000000000 +vt 0.450992375612 0.305552929640 0.000000000000 +vt 0.395807057619 0.321048557758 0.000000000000 +vt 0.409543335438 0.316259503365 0.000000000000 +vt 0.460468471050 0.388684481382 0.000000000000 +vt 0.429571330547 0.398836284876 0.000000000000 +vt 0.417428702116 0.402817249298 0.000000000000 +vt 0.465852618217 0.387890368700 0.000000000000 +vt 0.165486067533 0.985748410225 0.000000000000 +vt 0.153918713331 0.884558439255 0.000000000000 +vt 0.153763413429 0.881860136986 0.000000000000 +vt 0.204113468528 0.982658386230 0.000000000000 +vt 0.204646229744 0.989186286926 0.000000000000 +vt 0.186044186354 0.877731442451 0.000000000000 +vt 0.185995131731 0.879323482513 0.000000000000 +vt 0.165391892195 0.991528987885 0.000000000000 +vt 0.215989306569 0.874527692795 0.000000000000 +vt 0.239299163222 0.979033589363 0.000000000000 +vt 0.216438904405 0.876245737076 0.000000000000 +vt 0.147602885962 0.884569108486 0.000000000000 +vt 0.252690643072 0.979669451714 0.000000000000 +vt 0.252580404282 0.986951112747 0.000000000000 +vt 0.149314463139 0.881703615189 0.000000000000 +vt 0.239499345422 0.986131906509 0.000000000000 +vt 0.139916136861 0.872989058495 0.000000000000 +vt 0.153603509068 0.992006182671 0.000000000000 +vt 0.153609484434 0.990444540977 0.000000000000 +vt 0.010600453243 0.824086070061 0.000000000000 +vt 0.012143557891 0.805372476578 0.000000000000 +vt 0.018072610721 0.805904865265 0.000000000000 +vt 0.018011515960 0.835803985596 0.000000000000 +vt 0.854685604572 0.394145637751 0.000000000000 +vt 0.856347262859 0.406974732876 0.000000000000 +vt 0.854803860188 0.407253265381 0.000000000000 +vt 0.852515399456 0.394508123398 0.000000000000 +vt 0.014217739925 0.786286652088 0.000000000000 +vt 0.141516894102 0.871268332005 0.000000000000 +vt 0.236085057259 0.870658397675 0.000000000000 +vt 0.235590070486 0.871755778790 0.000000000000 +vt 0.115637660027 0.902860224247 0.000000000000 +vt 0.110983915627 0.890343248844 0.000000000000 +vt 0.113721966743 0.903127968311 0.000000000000 +vt 0.108955033123 0.891542613506 0.000000000000 +vt 0.094152219594 0.932179987431 0.000000000000 +vt 0.092673666775 0.930834054947 0.000000000000 +vt 0.070010572672 0.963107407093 0.000000000000 +vt 0.068242847919 0.961778044701 0.000000000000 +vt 0.061999842525 0.971761763096 0.000000000000 +vt 0.174994021654 0.927675366402 0.000000000000 +vt 0.144831538200 0.970289051533 0.000000000000 +vt 0.200194299221 0.932316362858 0.000000000000 +vt 0.170293733478 0.964262902737 0.000000000000 +vt 0.108677349985 0.981302440166 0.000000000000 +vt 0.124079853296 0.982393920422 0.000000000000 +vt 0.078137099743 0.979704558849 0.000000000000 +vt 0.109282203019 0.983950555325 0.000000000000 +vt 0.105039052665 0.987083256245 0.000000000000 +vt 0.125474229455 0.988127648830 0.000000000000 +vt 0.111332640052 0.988403081894 0.000000000000 +vt 0.149527281523 0.983822643757 0.000000000000 +vt 0.175797849894 0.974198222160 0.000000000000 +vt 0.200493484735 0.947993755341 0.000000000000 +vt 0.202181890607 0.953875601292 0.000000000000 +vt 0.210946768522 0.941928744316 0.000000000000 +vt 0.204716980457 0.950321793556 0.000000000000 +vt 0.211182147264 0.940664827824 0.000000000000 +vt 0.221946761012 0.927524268627 0.000000000000 +vt 0.212981313467 0.939730703831 0.000000000000 +vt 0.219961285591 0.926237881184 0.000000000000 +vt 0.236418157816 0.878085970879 0.000000000000 +vt 0.009088402614 0.867007911205 0.000000000000 +vt 0.233274430037 0.900619506836 0.000000000000 +vt 0.223317831755 0.925070583820 0.000000000000 +vt 0.222155556083 0.926465988159 0.000000000000 +vt 0.221913784742 0.924954414368 0.000000000000 +vt 0.222598418593 0.927596032619 0.000000000000 +vt 0.201231330633 0.949153244495 0.000000000000 +vt 0.203538969159 0.953897118568 0.000000000000 +vt 0.818132102489 0.385249525309 0.000000000000 +vt 0.205010369420 0.951609432697 0.000000000000 +vt 0.213920146227 0.940414905548 0.000000000000 +vt 0.818589150906 0.383544415236 0.000000000000 +vt 0.780589759350 0.374358534813 0.000000000000 +vt 0.016577487811 0.868200361729 0.000000000000 +vt 0.016604727134 0.872863054276 0.000000000000 +vt 0.010927146301 0.873423874378 0.000000000000 +vt 0.781472146511 0.373139113188 0.000000000000 +vt 0.775797307491 0.355791121721 0.000000000000 +vt 0.767820060253 0.372488409281 0.000000000000 +vt 0.802661955357 0.343176126480 0.000000000000 +vt 0.212836444378 0.942034363747 0.000000000000 +vt 0.794418156147 0.332618147135 0.000000000000 +vt 0.017825072631 0.886228740215 0.000000000000 +vt 0.859027683735 0.311750322580 0.000000000000 +vt 0.856714665890 0.300876915455 0.000000000000 +vt 0.011322205886 0.886385619640 0.000000000000 +vt 0.890980184078 0.300591170788 0.000000000000 +vt 0.212094113231 0.942788124084 0.000000000000 +vt 0.234720200300 0.900862038136 0.000000000000 +vt 0.237578302622 0.878117561340 0.000000000000 +vt 0.077356182039 0.981415390968 0.000000000000 +vt 0.060611370951 0.973357379436 0.000000000000 +vt 0.105943888426 0.988982677460 0.000000000000 +vt 0.258138507605 0.974806785583 0.000000000000 +vt 0.257529258728 0.990823626518 0.000000000000 +vt 0.264203071594 0.971977353096 0.000000000000 +vt 0.263009667397 0.993429660797 0.000000000000 +vt 0.271215617657 0.974126696587 0.000000000000 +vt 0.269773542881 0.993223547935 0.000000000000 +vt 0.125471040606 0.989767909050 0.000000000000 +vt 0.110437445343 0.990312933922 0.000000000000 +vt 0.276588261127 0.979046463966 0.000000000000 +vt 0.273934006691 0.990138053894 0.000000000000 +vt 0.150033578277 0.985471129417 0.000000000000 +vt 0.176784589887 0.975747346878 0.000000000000 +vt 0.276720821857 0.986530065536 0.000000000000 +vt 0.022495752200 0.890904963017 0.000000000000 +vt 0.891464889050 0.306228846312 0.000000000000 +vt 0.904646217823 0.305932313204 0.000000000000 +vt 0.893834292889 0.301968216896 0.000000000000 +vt 0.904706299305 0.304305553436 0.000000000000 +vt 0.921183407307 0.310902148485 0.000000000000 +vt 0.906808555126 0.304849773645 0.000000000000 +vt 0.921672403812 0.309491783381 0.000000000000 +vt 0.938244044781 0.337644517422 0.000000000000 +vt 0.005772059783 0.892303645611 0.000000000000 +vt 0.024704044685 0.895432829857 0.000000000000 +vt 0.004067962989 0.897250592709 0.000000000000 +vt 0.023151105270 0.902699828148 0.000000000000 +vt 0.006364827976 0.903177917004 0.000000000000 +vt 0.019447928295 0.907367289066 0.000000000000 +vt 0.011597758159 0.909153997898 0.000000000000 +vt 0.018155282363 0.909749448299 0.000000000000 +vt 0.289794445038 0.979737758636 0.000000000000 +vt 0.289097309113 0.986868619919 0.000000000000 +vt 0.108699530363 0.986913800240 0.000000000000 +vt 0.923338353634 0.310172647238 0.000000000000 +vt 0.947028934956 0.322753190994 0.000000000000 +vt 0.017324453220 0.921973764896 0.000000000000 +vt 0.107475332916 0.990945875645 0.000000000000 +vt 0.012956982478 0.921561121941 0.000000000000 +vt 0.109573453665 0.884426295757 0.000000000000 +vt 0.020662194118 0.973094761372 0.000000000000 +vt 0.018618410453 0.972752928734 0.000000000000 +vt 0.963379323483 0.338597148657 0.000000000000 +vt 0.020546024665 0.981108963490 0.000000000000 +vt 0.018002038822 0.980931103230 0.000000000000 +vt 0.135590508580 0.867567420006 0.000000000000 +vt 0.106516152620 0.878543734550 0.000000000000 +vt 0.131759136915 0.862308800220 0.000000000000 +vt 0.101919859648 0.872579514980 0.000000000000 +vt 0.127446323633 0.855293273926 0.000000000000 +vt 0.106182672083 0.886078596115 0.000000000000 +vt 0.102917589247 0.880396783352 0.000000000000 +vt 0.099388279021 0.873800635338 0.000000000000 +vt 0.137774154544 0.865794837475 0.000000000000 +vt 0.134449630976 0.860945940018 0.000000000000 +vt 0.129994958639 0.853814363480 0.000000000000 +vt 0.098041392863 0.867455244064 0.000000000000 +vt 0.123956769705 0.849580526352 0.000000000000 +vt 0.096607387066 0.868979096413 0.000000000000 +vt 0.126601263881 0.848501205444 0.000000000000 +vt 0.095606558025 0.864713788033 0.000000000000 +vt 0.123283371329 0.847612500191 0.000000000000 +vt 0.093895524740 0.865760445595 0.000000000000 +vt 0.125174984336 0.846612274647 0.000000000000 +vt 0.090208120644 0.853443682194 0.000000000000 +vt 0.088275067508 0.855292141438 0.000000000000 +vt 0.116189479828 0.837091147900 0.000000000000 +vt 0.119325831532 0.836723268032 0.000000000000 +vt 0.133553490043 0.788949906826 0.000000000000 +vt 0.293736696243 0.986775279045 0.000000000000 +vt 0.295940577984 0.980653762817 0.000000000000 +vt 0.340545475483 0.984447240829 0.000000000000 +vt 0.340072214603 0.986525893211 0.000000000000 +vt 0.950552880764 0.345313966274 0.000000000000 +vt 0.967208921909 0.344859838486 0.000000000000 +vt 0.950094163418 0.353987187147 0.000000000000 +vt 0.933797061443 0.363659620285 0.000000000000 +vt 0.136295691133 0.788761913776 0.000000000000 +vt 0.138059511781 0.780847370625 0.000000000000 +vt 0.130408823490 0.777872502804 0.000000000000 +vt 0.131355047226 0.775953590870 0.000000000000 +vt 0.138569056988 0.778319716454 0.000000000000 +vt 0.118060231209 0.785308957100 0.000000000000 +vt 0.896019995213 0.384664356709 0.000000000000 +vt 0.115173012018 0.774169325829 0.000000000000 +vt 0.898356497288 0.351344764233 0.000000000000 +vt 0.096679173410 0.785911738873 0.000000000000 +vt 0.095730684698 0.772729396820 0.000000000000 +vt 0.104705169797 0.831313431263 0.000000000000 +vt 0.902008712292 0.319425404072 0.000000000000 +vt 0.086956694722 0.837567865849 0.000000000000 +vt 0.082478508353 0.790962874889 0.000000000000 +vt 0.833729565144 0.320394694805 0.000000000000 +vt 0.348657131195 0.984760761261 0.000000000000 +vt 0.081306569278 0.775940597057 0.000000000000 +vt 0.089978247881 0.773647964001 0.000000000000 +vt 0.829791605473 0.309479862452 0.000000000000 +vt 0.816609799862 0.333315908909 0.000000000000 +vt 0.807817518711 0.321131646633 0.000000000000 +vt 0.797316968441 0.333731085062 0.000000000000 +vt 0.795922100544 0.331054210663 0.000000000000 +vt 0.852600395679 0.366287618876 0.000000000000 +vt 0.888158023357 0.389725148678 0.000000000000 +vt 0.891561090946 0.383528649807 0.000000000000 +vt 0.892443001270 0.390044867992 0.000000000000 +vt 0.890115559101 0.403733402491 0.000000000000 +vt 0.893740594387 0.402232736349 0.000000000000 +vt 0.889661490917 0.409355312586 0.000000000000 +vt 0.859144628048 0.413082540035 0.000000000000 +vt 0.889299809933 0.416188776493 0.000000000000 +vt 0.860674321651 0.420680373907 0.000000000000 +vt 0.890587747097 0.423362225294 0.000000000000 +vt 0.861845076084 0.428339481354 0.000000000000 +vt 0.893469750881 0.431529492140 0.000000000000 +vt 0.863975346088 0.435634076595 0.000000000000 +vt 0.892712771893 0.409693717957 0.000000000000 +vt 0.893171131611 0.415372341871 0.000000000000 +vt 0.894341528416 0.422278076410 0.000000000000 +vt 0.895548760891 0.430168658495 0.000000000000 +vt 0.856991708279 0.413939237595 0.000000000000 +vt 0.858568608761 0.420849025249 0.000000000000 +vt 0.860028803349 0.428554058075 0.000000000000 +vt 0.861705243587 0.435540854931 0.000000000000 +vt 0.862937510014 0.448144823313 0.000000000000 +vt 0.865016877651 0.448156058788 0.000000000000 +vt 0.894014537334 0.443118661642 0.000000000000 +vt 0.896675527096 0.441695034504 0.000000000000 +vt 0.942015469074 0.465249389410 0.000000000000 +vt 0.938968360424 0.467184603214 0.000000000000 +vt 0.947230279446 0.471932232380 0.000000000000 +vt 0.929851353168 0.479779750109 0.000000000000 +vt 0.884821474552 0.455685496330 0.000000000000 +vt 0.911414802074 0.493092268705 0.000000000000 +vt 0.871183216572 0.461694657803 0.000000000000 +vt 0.860978066921 0.452166974545 0.000000000000 +vt 0.943686783314 0.478628307581 0.000000000000 +vt 0.933102667332 0.492131799459 0.000000000000 +vt 0.919620096684 0.505386710167 0.000000000000 +vt 0.891063272953 0.499169915915 0.000000000000 +vt 0.916852533817 0.507224857807 0.000000000000 +vt 0.908044636250 0.511230826378 0.000000000000 +vt 0.888901054859 0.516245007515 0.000000000000 +vt 0.869810879230 0.502536654472 0.000000000000 +vt 0.873295843601 0.517087996006 0.000000000000 +vt 0.852177441120 0.511175870895 0.000000000000 +vt 0.852176964283 0.514577090740 0.000000000000 +vt 0.850538194180 0.510758638382 0.000000000000 +vt 0.846698939800 0.494376987219 0.000000000000 +vt 0.847678959370 0.512833237648 0.000000000000 +vt 0.836011469364 0.506721198559 0.000000000000 +vt 0.830273568630 0.488239735365 0.000000000000 +vt 0.829936563969 0.486338347197 0.000000000000 +vt 0.858301818371 0.452152788639 0.000000000000 +vt 0.827840387821 0.498115986586 0.000000000000 +vt 0.829935252666 0.487876564264 0.000000000000 +vt 0.823986113071 0.491719275713 0.000000000000 +vt 0.069046996534 0.797405838966 0.000000000000 +vt 0.063239946961 0.785030543804 0.000000000000 +vt 0.056414369494 0.807498395443 0.000000000000 +vt 0.050693791360 0.794903695583 0.000000000000 +vt 0.038561563939 0.813347876072 0.000000000000 +vt 0.035990972072 0.810181796551 0.000000000000 +vt 0.047508850694 0.830956161022 0.000000000000 +vt 0.037681039423 0.814844489098 0.000000000000 +vt 0.029368514195 0.826868057251 0.000000000000 +vt 0.033771704882 0.815734088421 0.000000000000 +vt 0.038801524788 0.845296800137 0.000000000000 +vt 0.029519105330 0.846085309982 0.000000000000 +vt 0.027892099693 0.839723408222 0.000000000000 +vt 0.084708891809 0.852553844452 0.000000000000 +vt 0.083767443895 0.854980945587 0.000000000000 +vt 0.037650745362 0.847761273384 0.000000000000 +vt 0.114381492138 0.771946310997 0.000000000000 +vt 0.094816014171 0.771821796894 0.000000000000 +vt 0.080136142671 0.774619162083 0.000000000000 +vt 0.090211994946 0.772520661354 0.000000000000 +vt 0.095953144133 0.783221781254 0.000000000000 +vt 0.062365397811 0.784237205982 0.000000000000 +vt 0.049735300243 0.794033586979 0.000000000000 +vt 0.035117056221 0.810181081295 0.000000000000 +vt 0.028672711924 0.846871018410 0.000000000000 +vt 0.036163691431 0.812595427036 0.000000000000 +vt 0.032508853823 0.815019369125 0.000000000000 +vt 0.035413723439 0.813524901867 0.000000000000 +vt 0.028211543337 0.827950716019 0.000000000000 +vt 0.026609050110 0.839356005192 0.000000000000 +vt 0.896258294582 0.381265163422 0.000000000000 +vt 0.934112012386 0.361818969250 0.000000000000 +vt 0.059123776853 0.925175607204 0.000000000000 +vt 0.055362485349 0.926216900349 0.000000000000 +vt 0.054541967809 0.924610912800 0.000000000000 +vt 0.057503841817 0.922102153301 0.000000000000 +vt 0.059521101415 0.928506195545 0.000000000000 +vt 0.055455230176 0.928037106991 0.000000000000 +vt 0.058347843587 0.931667983532 0.000000000000 +vt 0.054807446897 0.929809391499 0.000000000000 +vt 0.056133113801 0.934393584728 0.000000000000 +vt 0.053610645235 0.931369364262 0.000000000000 +vt 0.053249321878 0.936173141003 0.000000000000 +vt 0.051895163953 0.932276666164 0.000000000000 +vt 0.049887977540 0.936500608921 0.000000000000 +vt 0.050015471876 0.932548344135 0.000000000000 +vt 0.046488307416 0.935653746128 0.000000000000 +vt 0.048176728189 0.932161509991 0.000000000000 +vt 0.043682835996 0.933717668056 0.000000000000 +vt 0.046699486673 0.931114256382 0.000000000000 +vt 0.042096994817 0.930674016476 0.000000000000 +vt 0.045871280134 0.929518997669 0.000000000000 +vt 0.041774652898 0.927204310894 0.000000000000 +vt 0.045793555677 0.927666127682 0.000000000000 +vt 0.042907558382 0.923894703388 0.000000000000 +vt 0.046437762678 0.925861775875 0.000000000000 +vt 0.045091055334 0.921195805073 0.000000000000 +vt 0.047651670873 0.924327433109 0.000000000000 +vt 0.048192583025 0.919690430164 0.000000000000 +vt 0.049426577985 0.923481881618 0.000000000000 +vt 0.051677010953 0.919228494167 0.000000000000 +vt 0.051336131990 0.923179805279 0.000000000000 +vt 0.054966412485 0.919925153255 0.000000000000 +vt 0.053134106100 0.923531472683 0.000000000000 +vt 0.063366554677 0.923810899258 0.000000000000 +vt 0.060973726213 0.919329464436 0.000000000000 +vt 0.064595483243 0.929011166096 0.000000000000 +vt 0.062306247652 0.933849632740 0.000000000000 +vt 0.059110067785 0.937792122364 0.000000000000 +vt 0.054868541658 0.941029012203 0.000000000000 +vt 0.049543462694 0.940982162952 0.000000000000 +vt 0.044648133218 0.939702689648 0.000000000000 +vt 0.040030620992 0.937077343464 0.000000000000 +vt 0.037820480764 0.932063996792 0.000000000000 +vt 0.036892317235 0.926711142063 0.000000000000 +vt 0.038925252855 0.921679198742 0.000000000000 +vt 0.042036972940 0.917214572430 0.000000000000 +vt 0.046976409853 0.915347874165 0.000000000000 +vt 0.051998518407 0.914744794369 0.000000000000 +vt 0.057310722768 0.915426671505 0.000000000000 +vt 0.067497454584 0.921644866467 0.000000000000 +vt 0.065058015287 0.917089760303 0.000000000000 +vt 0.069694779813 0.926195323467 0.000000000000 +vt 0.065975569189 0.936767637730 0.000000000000 +vt 0.062733851373 0.940771758556 0.000000000000 +vt 0.059423707426 0.944580018520 0.000000000000 +vt 0.048389576375 0.945518910885 0.000000000000 +vt 0.043406806886 0.944201171398 0.000000000000 +vt 0.038586281240 0.942701995373 0.000000000000 +vt 0.033321164548 0.933438599110 0.000000000000 +vt 0.031816206872 0.928624808788 0.000000000000 +vt 0.034770034254 0.919423639774 0.000000000000 +vt 0.037123106420 0.914970576763 0.000000000000 +vt 0.046392939985 0.910692512989 0.000000000000 +vt 0.051504157484 0.910091817379 0.000000000000 +vt 0.056533597410 0.909688174725 0.000000000000 +vt 0.071821056306 0.919187366962 0.000000000000 +vt 0.069497846067 0.914850890636 0.000000000000 +vt 0.074104093015 0.923345625401 0.000000000000 +vt 0.069763801992 0.939998447895 0.000000000000 +vt 0.066682241857 0.943804800510 0.000000000000 +vt 0.063756071031 0.947524607182 0.000000000000 +vt 0.046995721757 0.950295627117 0.000000000000 +vt 0.042247436941 0.949036777020 0.000000000000 +vt 0.037652872503 0.947865664959 0.000000000000 +vt 0.028527699411 0.934890091419 0.000000000000 +vt 0.027052603662 0.930507719517 0.000000000000 +vt 0.030363760889 0.917036354542 0.000000000000 +vt 0.032438538969 0.912907421589 0.000000000000 +vt 0.045932315290 0.905737102032 0.000000000000 +vt 0.050800107419 0.905163943768 0.000000000000 +vt 0.055495165288 0.904551923275 0.000000000000 +vt 0.050987325609 0.924352467060 0.000000000000 +vt 0.048744998872 0.925625741482 0.000000000000 +vt 0.048258863389 0.925050437450 0.000000000000 +vt 0.049704097211 0.924391329288 0.000000000000 +vt 0.054107807577 0.926788032055 0.000000000000 +vt 0.051701687276 0.929121911526 0.000000000000 +vt 0.050647579134 0.927882850170 0.000000000000 +vt 0.053451858461 0.925569355488 0.000000000000 +vt 0.052362285554 0.924720108509 0.000000000000 +vt 0.049598239362 0.926641643047 0.000000000000 +vt 0.054247222841 0.928189814091 0.000000000000 +vt 0.052564702928 0.930132806301 0.000000000000 +vt 0.053045056760 0.930693566799 0.000000000000 +vt 0.053973041475 0.929413259029 0.000000000000 +vt 0.050350688398 0.931418359280 0.000000000000 +vt 0.051625333726 0.931378662586 0.000000000000 +vt 0.048955641687 0.931039512157 0.000000000000 +vt 0.047835491598 0.930190026760 0.000000000000 +vt 0.047166489065 0.928965747356 0.000000000000 +vt 0.047026477754 0.927548825741 0.000000000000 +vt 0.047300122678 0.926310837269 0.000000000000 +vt 0.076263017952 0.889852464199 0.000000000000 +vt 0.072937078774 0.890983402729 0.000000000000 +vt 0.072223909199 0.886963069439 0.000000000000 +vt 0.073955483735 0.886285126209 0.000000000000 +vt 0.078647918999 0.887252748013 0.000000000000 +vt 0.075236566365 0.884860932827 0.000000000000 +vt 0.080082006752 0.883868515491 0.000000000000 +vt 0.075974173844 0.882985889912 0.000000000000 +vt 0.080343849957 0.880316436291 0.000000000000 +vt 0.076127000153 0.880949914455 0.000000000000 +vt 0.078979976475 0.877020061016 0.000000000000 +vt 0.075315542519 0.879069387913 0.000000000000 +vt 0.076549418271 0.874237835407 0.000000000000 +vt 0.074006743729 0.877511203289 0.000000000000 +vt 0.073425479233 0.872460305691 0.000000000000 +vt 0.072319932282 0.876525342464 0.000000000000 +vt 0.069821424782 0.872302711010 0.000000000000 +vt 0.070436544716 0.876380264759 0.000000000000 +vt 0.066397853196 0.873569548130 0.000000000000 +vt 0.068679399788 0.877089798450 0.000000000000 +vt 0.063854344189 0.876202642918 0.000000000000 +vt 0.067366369069 0.878527104855 0.000000000000 +vt 0.062428124249 0.879545271397 0.000000000000 +vt 0.066652543843 0.880400240421 0.000000000000 +vt 0.062527008355 0.883167207241 0.000000000000 +vt 0.066598244011 0.882463753223 0.000000000000 +vt 0.063823170960 0.886639058590 0.000000000000 +vt 0.067381329834 0.884392201900 0.000000000000 +vt 0.066064722836 0.889388978481 0.000000000000 +vt 0.068642385304 0.885931313038 0.000000000000 +vt 0.069291241467 0.890806376934 0.000000000000 +vt 0.070335276425 0.886830031872 0.000000000000 +vt 0.079105265439 0.894360721111 0.000000000000 +vt 0.073614127934 0.895603239536 0.000000000000 +vt 0.082558877766 0.889905154705 0.000000000000 +vt 0.084692724049 0.885016143322 0.000000000000 +vt 0.085654027760 0.879498064518 0.000000000000 +vt 0.083038873971 0.874549567699 0.000000000000 +vt 0.079515941441 0.870571315289 0.000000000000 +vt 0.074898667634 0.867442429066 0.000000000000 +vt 0.069151528180 0.867639601231 0.000000000000 +vt 0.063656993210 0.869233548641 0.000000000000 +vt 0.059899874032 0.873542368412 0.000000000000 +vt 0.057234056294 0.878605186939 0.000000000000 +vt 0.057885952294 0.884120523930 0.000000000000 +vt 0.059755094349 0.889095604420 0.000000000000 +vt 0.062920100987 0.893733680248 0.000000000000 +vt 0.068280227482 0.895384490490 0.000000000000 +vt 0.078785724938 0.900479376316 0.000000000000 +vt 0.073472566903 0.900497257710 0.000000000000 +vt 0.087039537728 0.891929209232 0.000000000000 +vt 0.089219875634 0.886968076229 0.000000000000 +vt 0.091177947819 0.882038056850 0.000000000000 +vt 0.086754925549 0.871306598186 0.000000000000 +vt 0.083158977330 0.867264211178 0.000000000000 +vt 0.079480238259 0.863445341587 0.000000000000 +vt 0.068381793797 0.862759649754 0.000000000000 +vt 0.063137896359 0.863549411297 0.000000000000 +vt 0.055807478726 0.870739161968 0.000000000000 +vt 0.052770502865 0.875079214573 0.000000000000 +vt 0.053255327046 0.885821878910 0.000000000000 +vt 0.055160112679 0.890882432461 0.000000000000 +vt 0.057204969227 0.895774066448 0.000000000000 +vt 0.068046040833 0.900283634663 0.000000000000 +vt 0.078120060265 0.905958473682 0.000000000000 +vt 0.073138959706 0.905713617802 0.000000000000 +vt 0.091880030930 0.893913924694 0.000000000000 +vt 0.093954570591 0.889196693897 0.000000000000 +vt 0.096018739045 0.884667575359 0.000000000000 +vt 0.090575344861 0.867730081081 0.000000000000 +vt 0.087147958577 0.863881051540 0.000000000000 +vt 0.083878643811 0.860125720501 0.000000000000 +vt 0.067553706467 0.857561290264 0.000000000000 +vt 0.062731571496 0.858179271221 0.000000000000 +vt 0.051463313401 0.867761790752 0.000000000000 +vt 0.048594601452 0.871683299541 0.000000000000 +vt 0.048404522240 0.887782871723 0.000000000000 +vt 0.050217278302 0.892602741718 0.000000000000 +vt 0.051908619702 0.897282183170 0.000000000000 +vt 0.067971713841 0.905510962009 0.000000000000 +vt 0.069196112454 0.884744703770 0.000000000000 +vt 0.068222053349 0.883839309216 0.000000000000 +vt 0.067552991211 0.882304251194 0.000000000000 +vt 0.068320401013 0.882175028324 0.000000000000 +vt 0.073343880475 0.884937107563 0.000000000000 +vt 0.071995504200 0.885450780392 0.000000000000 +vt 0.071372933686 0.881675302982 0.000000000000 +vt 0.073059923947 0.881411254406 0.000000000000 +vt 0.070542402565 0.885377347469 0.000000000000 +vt 0.069689460099 0.881946742535 0.000000000000 +vt 0.074404723942 0.883906543255 0.000000000000 +vt 0.074438758194 0.881199419498 0.000000000000 +vt 0.075204439461 0.881086766720 0.000000000000 +vt 0.075038559735 0.882739722729 0.000000000000 +vt 0.073512084782 0.878659069538 0.000000000000 +vt 0.074500329792 0.879579484463 0.000000000000 +vt 0.072161979973 0.877989232540 0.000000000000 +vt 0.070704765618 0.877902209759 0.000000000000 +vt 0.069342859089 0.878422200680 0.000000000000 +vt 0.068271823227 0.879460871220 0.000000000000 +vt 0.067647464573 0.880636036396 0.000000000000 +vt 0.069012485445 0.932736814022 0.000000000000 +vt 0.053315483034 0.946615636349 0.000000000000 +vt 0.034739337862 0.938278734684 0.000000000000 +vt 0.032324932516 0.923826873302 0.000000000000 +vt 0.041412316263 0.911473333836 0.000000000000 +vt 0.062483809888 0.912739932537 0.000000000000 +vt 0.072793565691 0.936362326145 0.000000000000 +vt 0.051563642919 0.951559722424 0.000000000000 +vt 0.029731415212 0.939354598522 0.000000000000 +vt 0.028038166463 0.921029269695 0.000000000000 +vt 0.041223250329 0.906235873699 0.000000000000 +vt 0.067299149930 0.910646736622 0.000000000000 +vt 0.084724672139 0.896705806255 0.000000000000 +vt 0.090130694211 0.875394165516 0.000000000000 +vt 0.073611505330 0.861880958080 0.000000000000 +vt 0.058759339154 0.866340816021 0.000000000000 +vt 0.051577635109 0.880795300007 0.000000000000 +vt 0.062752433121 0.899852573872 0.000000000000 +vt 0.089935369790 0.898496687412 0.000000000000 +vt 0.093930847943 0.871406018734 0.000000000000 +vt 0.072329230607 0.856650412083 0.000000000000 +vt 0.054085560143 0.863671362400 0.000000000000 +vt 0.046596772969 0.883146226406 0.000000000000 +vt 0.062987215817 0.905366241932 0.000000000000 +vt 0.724434196949 0.690520286560 0.000000000000 +vt 0.714673578739 0.670199394226 0.000000000000 +vt 0.738192379475 0.658733546734 0.000000000000 +vt 0.749425828457 0.679554581642 0.000000000000 +vt 0.766880452633 0.648001551628 0.000000000000 +vt 0.778476417065 0.667455196381 0.000000000000 +vt 0.658123552799 0.561918437481 0.000000000000 +vt 0.681013524532 0.545336842537 0.000000000000 +vt 0.691574394703 0.565115392208 0.000000000000 +vt 0.668605864048 0.578333139420 0.000000000000 +vt 0.678273379803 0.596119463444 0.000000000000 +vt 0.700517117977 0.582515180111 0.000000000000 +vt 0.708820402622 0.600191891193 0.000000000000 +vt 0.686416089535 0.614063024521 0.000000000000 +vt 0.693850934505 0.631938755512 0.000000000000 +vt 0.717175424099 0.619349181652 0.000000000000 +vt 0.726578891277 0.638749718666 0.000000000000 +vt 0.702835142612 0.650949716568 0.000000000000 +vt 0.727393448353 0.566789627075 0.000000000000 +vt 0.737516939640 0.584310531616 0.000000000000 +vt 0.746533215046 0.605367720127 0.000000000000 +vt 0.755558550358 0.627303957939 0.000000000000 +vt 0.717193305492 0.550311207771 0.000000000000 +vt 0.707122027874 0.527874290943 0.000000000000 +vt 0.648476541042 0.550091445446 0.000000000000 +vt 0.670800983906 0.526029586792 0.000000000000 +vt 0.796826541424 0.635315418243 0.000000000000 +vt 0.810074508190 0.653544664383 0.000000000000 +vt 0.828041613102 0.628299355507 0.000000000000 +vt 0.837326347828 0.640173137188 0.000000000000 +vt 0.784561932087 0.614920377731 0.000000000000 +vt 0.774542272091 0.593422353268 0.000000000000 +vt 0.802680790424 0.583606719971 0.000000000000 +vt 0.815609514713 0.603868663311 0.000000000000 +vt 0.744441092014 0.531438291073 0.000000000000 +vt 0.776179373264 0.512288391590 0.000000000000 +vt 0.783609092236 0.532737612724 0.000000000000 +vt 0.755129158497 0.549743592739 0.000000000000 +vt 0.697984158993 0.500902295113 0.000000000000 +vt 0.737360656261 0.508947730064 0.000000000000 +vt 0.730104506016 0.483820885420 0.000000000000 +vt 0.765154659748 0.571034491062 0.000000000000 +vt 0.792746603489 0.558559775352 0.000000000000 +vt 0.768725693226 0.492010682821 0.000000000000 +vt 0.757663547993 0.472875863314 0.000000000000 +vt 0.725043118000 0.693508327007 0.000000000000 +vt 0.750067889690 0.685739338398 0.000000000000 +vt 0.791203796864 0.399861633778 0.000000000000 +vt 0.779777586460 0.399193614721 0.000000000000 +vt 0.752974689007 0.710415661335 0.000000000000 +vt 0.804506599903 0.398513197899 0.000000000000 +vt 0.782004177570 0.452414214611 0.000000000000 +vt 0.780603945255 0.444166988134 0.000000000000 +vt 0.791876137257 0.443759024143 0.000000000000 +vt 0.793968260288 0.453128397465 0.000000000000 +vt 0.779418051243 0.435353308916 0.000000000000 +vt 0.778252422810 0.426639556885 0.000000000000 +vt 0.789694845676 0.427197962999 0.000000000000 +vt 0.790620148182 0.435532063246 0.000000000000 +vt 0.777533710003 0.418020188808 0.000000000000 +vt 0.777940571308 0.408807516098 0.000000000000 +vt 0.789442360401 0.409360051155 0.000000000000 +vt 0.789057195187 0.418372094631 0.000000000000 +vt 0.803890883923 0.427518129349 0.000000000000 +vt 0.804031312466 0.435820281506 0.000000000000 +vt 0.803060233593 0.417909622192 0.000000000000 +vt 0.802897393703 0.408120334148 0.000000000000 +vt 0.804555714130 0.443755626678 0.000000000000 +vt 0.807329356670 0.454006284475 0.000000000000 +vt 0.725099384785 0.716310918331 0.000000000000 +vt 0.779836833477 0.674231469631 0.000000000000 +vt 0.783605754375 0.697045505047 0.000000000000 +vt 0.818779408932 0.398010879755 0.000000000000 +vt 0.643724501133 0.545761525631 0.000000000000 +vt 0.628008902073 0.541231870651 0.000000000000 +vt 0.816486179829 0.407289743423 0.000000000000 +vt 0.643818080425 0.512760996819 0.000000000000 +vt 0.665438830853 0.521224975586 0.000000000000 +vt 0.815758764744 0.416817396879 0.000000000000 +vt 0.818642079830 0.444537609816 0.000000000000 +vt 0.817937195301 0.436300307512 0.000000000000 +vt 0.811494052410 0.658484101295 0.000000000000 +vt 0.816042482853 0.680989921093 0.000000000000 +vt 0.840249359608 0.645133495331 0.000000000000 +vt 0.822369277477 0.453545153141 0.000000000000 +vt 0.847676336765 0.654553532600 0.000000000000 +vt 0.848686635494 0.579840302467 0.000000000000 +vt 0.816775619984 0.426806628704 0.000000000000 +vt 0.821314275265 0.600943446159 0.000000000000 +vt 0.813257277012 0.578419387341 0.000000000000 +vt 0.838545382023 0.561789393425 0.000000000000 +vt 0.819137394428 0.502666831017 0.000000000000 +vt 0.823779404163 0.522105157375 0.000000000000 +vt 0.790229976177 0.529961049557 0.000000000000 +vt 0.781899273396 0.510464847088 0.000000000000 +vt 0.668055117130 0.483010739088 0.000000000000 +vt 0.692842900753 0.497021466494 0.000000000000 +vt 0.808572947979 0.481489390135 0.000000000000 +vt 0.704506456852 0.458266437054 0.000000000000 +vt 0.801172792912 0.554602205753 0.000000000000 +vt 0.830090582371 0.542637288570 0.000000000000 +vt 0.773884236813 0.490298360586 0.000000000000 +vt 0.726107180119 0.478320568800 0.000000000000 +vt 0.745716154575 0.441092967987 0.000000000000 +vt 0.753030359745 0.462626129389 0.000000000000 +vt 0.722523391247 0.691917836666 0.000000000000 +vt 0.749568045139 0.682414948940 0.000000000000 +vt 0.779008090496 0.670675337315 0.000000000000 +vt 0.667049825191 0.578830957413 0.000000000000 +vt 0.684892475605 0.614746153355 0.000000000000 +vt 0.676726400852 0.596634447575 0.000000000000 +vt 0.701373159885 0.652009308338 0.000000000000 +vt 0.692301928997 0.632841825485 0.000000000000 +vt 0.646996915340 0.549704909325 0.000000000000 +vt 0.667850673199 0.524221837521 0.000000000000 +vt 0.810716688633 0.655620336533 0.000000000000 +vt 0.839727461338 0.639870941639 0.000000000000 +vt 0.830280363560 0.627509713173 0.000000000000 +vt 0.818201720715 0.602329492569 0.000000000000 +vt 0.807740032673 0.580971300602 0.000000000000 +vt 0.786967098713 0.531335592270 0.000000000000 +vt 0.778827011585 0.511309623718 0.000000000000 +vt 0.695696294308 0.499585956335 0.000000000000 +vt 0.728171169758 0.480036228895 0.000000000000 +vt 0.796798646450 0.556795895100 0.000000000000 +vt 0.771090447903 0.491387873888 0.000000000000 +vt 0.755518972874 0.467876076698 0.000000000000 +vt 0.857891857624 0.600561559200 0.000000000000 +vt 0.832526981831 0.625968098640 0.000000000000 +vt 0.721892893314 0.690372586250 0.000000000000 +vt 0.713340461254 0.671590626240 0.000000000000 +vt 0.646686851978 0.550678908825 0.000000000000 +vt 0.656452476978 0.562453389168 0.000000000000 +vt 0.842236578465 0.638690054417 0.000000000000 +vt 0.764252245426 0.471054345369 0.000000000000 +vt 0.725051343441 0.691869199276 0.000000000000 +vt 0.646329224110 0.548061668873 0.000000000000 +vt 0.838410317898 0.642666935921 0.000000000000 +vt 0.759749114513 0.472487002611 0.000000000000 +# 6542 texture coords + +g Box001 +usemtl Material__283 +s 1 +f 18/3/1 17/4/2 1/1/3 +f 1/1/4 2/2/5 18/3/6 +f 19/6/7 18/3/8 2/2/9 +f 2/2/10 3/5/11 19/6/12 +f 20/8/13 19/6/14 3/5/15 +f 3/5/16 4/7/17 20/8/18 +f 21/11/19 20/12/20 4/9/21 +f 4/9/22 5/10/23 21/11/24 +f 22/14/25 21/11/26 5/10/27 +f 5/10/28 6/13/29 22/14/30 +f 23/16/31 22/14/32 6/13/33 +f 6/13/34 7/15/35 23/16/36 +f 24/18/37 23/16/38 7/15/39 +f 7/15/40 8/17/41 24/18/42 +f 25/20/43 24/18/44 8/17/45 +f 8/17/46 9/19/47 25/20/48 +f 26/22/49 25/20/50 9/19/51 +f 9/19/52 10/21/53 26/22/54 +f 27/24/55 26/22/56 10/21/57 +f 10/21/58 11/23/59 27/24/60 +f 28/26/61 27/24/62 11/23/63 +f 11/23/64 12/25/65 28/26/66 +f 29/28/67 28/26/68 12/25/69 +f 12/25/70 13/27/71 29/28/72 +f 30/30/73 29/28/74 13/27/75 +f 13/27/76 14/29/77 30/30/78 +f 31/32/79 30/30/80 14/29/81 +f 14/29/82 15/31/83 31/32/84 +f 32/34/85 31/32/86 15/31/87 +f 15/31/88 16/33/89 32/34/90 +f 17/4/91 32/34/92 16/33/93 +f 16/33/94 1/1/95 17/4/96 +f 65/37/97 67/38/98 68/35/99 +f 68/35/100 66/36/101 65/37/102 +f 67/38/103 69/40/104 70/39/105 +f 70/39/106 68/35/107 67/38/108 +f 69/40/109 71/42/110 72/41/111 +f 72/41/112 70/39/113 69/40/114 +f 71/45/115 73/46/116 74/43/117 +f 74/43/118 72/44/119 71/45/120 +f 73/46/121 75/48/122 76/47/123 +f 76/47/124 74/43/125 73/46/126 +f 75/48/127 77/50/128 78/49/129 +f 78/49/130 76/47/131 75/48/132 +f 77/50/133 79/52/134 80/51/135 +f 80/51/136 78/49/137 77/50/138 +f 79/52/139 81/54/140 82/53/141 +f 82/53/142 80/51/143 79/52/144 +f 81/54/145 83/56/146 84/55/147 +f 84/55/148 82/53/149 81/54/150 +f 83/56/151 85/58/152 86/57/153 +f 86/57/154 84/55/155 83/56/156 +f 85/58/157 87/60/158 88/59/159 +f 88/59/160 86/57/161 85/58/162 +f 87/60/163 89/62/164 90/61/165 +f 90/61/166 88/59/167 87/60/168 +f 89/62/169 91/64/170 92/63/171 +f 92/63/172 90/61/173 89/62/174 +f 91/64/175 93/66/176 94/65/177 +f 94/65/178 92/63/179 91/64/180 +f 93/66/181 95/68/182 96/67/183 +f 96/67/184 94/65/185 93/66/186 +f 95/68/187 65/37/188 66/36/189 +f 66/36/190 96/67/191 95/68/192 +f 50/71/193 49/72/194 33/69/195 +f 33/69/196 34/70/197 50/71/198 +f 51/74/199 50/71/200 34/70/201 +f 34/70/202 35/73/203 51/74/204 +f 52/76/205 51/74/206 35/73/207 +f 35/73/208 36/75/209 52/76/210 +f 53/79/211 52/80/212 36/77/213 +f 36/77/214 37/78/215 53/79/216 +f 54/82/217 53/79/218 37/78/219 +f 37/78/220 38/81/221 54/82/222 +f 55/84/223 54/82/224 38/81/225 +f 38/81/226 39/83/227 55/84/228 +f 56/86/229 55/84/230 39/83/231 +f 39/83/232 40/85/233 56/86/234 +f 57/88/235 56/86/236 40/85/237 +f 40/85/238 41/87/239 57/88/240 +f 58/90/241 57/88/242 41/87/243 +f 41/87/244 42/89/245 58/90/246 +f 59/92/247 58/90/248 42/89/249 +f 42/89/250 43/91/251 59/92/252 +f 60/94/253 59/92/254 43/91/255 +f 43/91/256 44/93/257 60/94/258 +f 61/96/259 60/94/260 44/93/261 +f 44/93/262 45/95/263 61/96/264 +f 62/98/265 61/96/266 45/95/267 +f 45/95/268 46/97/269 62/98/270 +f 63/100/271 62/98/272 46/97/273 +f 46/97/274 47/99/275 63/100/276 +f 64/102/277 63/100/278 47/99/279 +f 47/99/280 48/101/281 64/102/282 +f 49/72/283 64/102/284 48/101/285 +f 48/101/286 33/69/287 49/72/288 +f 66/36/289 68/35/290 34/70/291 +f 34/70/292 33/69/293 66/36/294 +f 67/38/295 65/37/296 17/4/297 +f 17/4/298 18/3/299 67/38/300 +f 68/35/301 70/39/302 35/73/303 +f 35/73/304 34/70/305 68/35/306 +f 69/40/307 67/38/308 18/3/309 +f 18/3/310 19/6/311 69/40/312 +f 70/39/313 72/41/314 36/75/315 +f 36/75/316 35/73/317 70/39/318 +f 71/42/319 69/40/320 19/6/321 +f 19/6/322 20/8/323 71/42/324 +f 72/44/325 74/43/326 37/78/327 +f 37/78/328 36/77/329 72/44/330 +f 73/46/331 71/45/332 20/12/333 +f 20/12/334 21/11/335 73/46/336 +f 74/43/337 76/47/338 38/81/339 +f 38/81/340 37/78/341 74/43/342 +f 75/48/343 73/46/344 21/11/345 +f 21/11/346 22/14/347 75/48/348 +f 76/47/349 78/49/350 39/83/351 +f 39/83/352 38/81/353 76/47/354 +f 77/50/355 75/48/356 22/14/357 +f 22/14/358 23/16/359 77/50/360 +f 78/49/361 80/51/362 40/85/363 +f 40/85/364 39/83/365 78/49/366 +f 79/52/367 77/50/368 23/16/369 +f 23/16/370 24/18/371 79/52/372 +f 80/51/373 82/53/374 41/87/375 +f 41/87/376 40/85/377 80/51/378 +f 81/54/379 79/52/380 24/18/381 +f 24/18/382 25/20/383 81/54/384 +f 82/53/385 84/55/386 42/89/387 +f 42/89/388 41/87/389 82/53/390 +f 83/56/391 81/54/392 25/20/393 +f 25/20/394 26/22/395 83/56/396 +f 84/55/397 86/57/398 43/91/399 +f 43/91/400 42/89/401 84/55/402 +f 85/58/403 83/56/404 26/22/405 +f 26/22/406 27/24/407 85/58/408 +f 86/57/409 88/59/410 44/93/411 +f 44/93/412 43/91/413 86/57/414 +f 87/60/415 85/58/416 27/24/417 +f 27/24/418 28/26/419 87/60/420 +f 88/59/421 90/61/422 45/95/423 +f 45/95/424 44/93/425 88/59/426 +f 89/62/427 87/60/428 28/26/429 +f 28/26/430 29/28/431 89/62/432 +f 90/61/433 92/63/434 46/97/435 +f 46/97/436 45/95/437 90/61/438 +f 91/64/439 89/62/440 29/28/441 +f 29/28/442 30/30/443 91/64/444 +f 92/63/445 94/65/446 47/99/447 +f 47/99/448 46/97/449 92/63/450 +f 93/66/451 91/64/452 30/30/453 +f 30/30/454 31/32/455 93/66/456 +f 94/65/457 96/67/458 48/101/459 +f 48/101/460 47/99/461 94/65/462 +f 95/68/463 93/66/464 31/32/465 +f 31/32/466 32/34/467 95/68/468 +f 96/67/469 66/36/470 33/69/471 +f 33/69/472 48/101/473 96/67/474 +f 65/37/475 95/68/476 32/34/477 +f 32/34/478 17/4/479 65/37/480 +f 188/103/481 158/104/482 108/105/483 +f 108/105/484 158/104/485 135/106/486 +f 99/107/487 190/108/488 114/109/489 +f 151/110/490 140/111/491 131/112/492 +f 142/113/493 133/114/494 149/115/495 +f 113/116/496 145/117/497 132/118/498 +f 109/119/499 121/120/500 181/121/501 +f 123/122/502 119/123/503 102/124/504 +f 177/125/505 130/126/506 141/127/507 +f 176/128/508 135/106/509 167/129/510 +f 138/130/511 143/131/512 111/132/513 +f 116/133/514 123/122/515 130/126/516 +f 104/134/517 150/135/518 183/136/519 +f 150/135/520 179/137/521 162/138/522 +f 120/139/523 189/140/524 153/141/525 +f 168/142/526 152/143/527 122/144/528 +f 152/143/529 161/145/530 122/144/531 +f 176/128/532 167/129/533 124/146/534 +f 192/147/535 185/148/536 97/149/537 +f 192/147/538 100/150/539 185/148/540 +f 134/151/541 163/152/542 101/153/543 +f 175/154/544 180/155/545 127/156/546 +f 143/131/547 181/121/548 184/157/549 +f 169/158/550 103/159/551 174/160/552 +f 165/161/553 145/117/554 113/116/555 +f 120/139/556 153/141/557 159/162/558 +f 142/113/559 114/109/560 133/114/561 +f 115/163/562 128/164/563 172/165/564 +f 115/163/565 172/165/566 117/166/567 +f 107/167/568 125/168/569 166/169/570 +f 177/125/571 116/133/572 130/126/573 +f 125/168/574 117/166/575 166/169/576 +f 166/169/577 182/170/578 157/171/579 +f 104/134/580 183/136/581 118/172/582 +f 131/112/583 155/173/584 106/174/585 +f 100/150/586 121/120/587 109/119/588 +f 162/138/589 189/140/590 120/139/591 +f 175/154/592 106/174/593 180/155/594 +f 121/120/595 136/175/596 181/121/597 +f 122/144/598 128/164/599 170/176/600 +f 103/159/601 123/122/602 116/133/603 +f 181/121/604 136/175/605 123/122/606 +f 99/107/607 186/177/608 190/108/609 +f 122/144/610 144/178/611 128/164/612 +f 115/163/613 117/166/614 125/168/615 +f 129/179/616 126/180/617 191/181/618 +f 109/119/619 181/121/620 143/131/621 +f 127/156/622 112/182/623 137/183/624 +f 159/162/625 153/141/626 112/182/627 +f 128/164/628 144/178/629 164/184/630 +f 128/164/631 164/184/632 172/165/633 +f 129/179/634 173/185/635 126/180/636 +f 188/103/637 185/148/638 158/104/639 +f 123/122/640 102/124/641 130/126/642 +f 141/127/643 130/126/644 156/186/645 +f 186/177/646 175/154/647 190/108/648 +f 175/154/649 127/156/650 137/183/651 +f 130/126/652 102/124/653 156/186/654 +f 110/187/655 133/114/656 114/109/657 +f 133/114/658 134/151/659 149/115/660 +f 97/149/661 185/148/662 188/103/663 +f 147/188/664 152/143/665 168/142/666 +f 190/108/667 175/154/668 137/183/669 +f 133/114/670 110/187/671 178/189/672 +f 135/106/673 154/190/674 167/129/675 +f 138/130/676 171/191/677 104/134/678 +f 136/175/679 119/123/680 123/122/681 +f 139/192/682 119/123/683 136/175/684 +f 137/183/685 112/182/686 134/151/687 +f 133/114/688 178/189/689 134/151/690 +f 138/130/691 104/134/692 135/106/693 +f 191/181/694 126/180/695 138/130/696 +f 112/182/697 163/152/698 134/151/699 +f 112/182/700 98/193/701 165/161/702 +f 139/192/703 136/175/704 121/120/705 +f 100/150/706 139/192/707 121/120/708 +f 131/112/709 140/111/710 155/173/711 +f 154/190/712 118/172/713 167/129/714 +f 141/127/715 156/186/716 98/193/717 +f 153/141/718 98/193/719 112/182/720 +f 166/169/721 117/166/722 182/170/723 +f 117/166/724 160/194/725 182/170/726 +f 126/180/727 143/131/728 138/130/729 +f 173/185/730 143/131/731 126/180/732 +f 144/178/733 146/195/734 164/184/735 +f 161/145/736 176/128/737 124/146/738 +f 98/193/739 145/117/740 165/161/741 +f 98/193/742 132/118/743 145/117/744 +f 161/145/745 124/146/746 144/178/747 +f 124/146/748 140/111/749 146/195/750 +f 97/149/751 152/143/752 147/188/753 +f 177/125/754 148/196/755 116/133/756 +f 103/159/757 116/133/758 174/160/759 +f 134/151/760 101/153/761 149/115/762 +f 169/158/763 179/137/764 150/135/765 +f 138/130/766 111/132/767 171/191/768 +f 140/111/769 151/110/770 146/195/771 +f 146/195/772 151/110/773 164/184/774 +f 152/143/775 97/149/776 188/103/777 +f 188/103/778 108/105/779 152/143/780 +f 105/197/781 141/127/782 153/141/783 +f 141/127/784 98/193/785 153/141/786 +f 135/106/787 104/134/788 154/190/789 +f 154/190/790 104/134/791 118/172/792 +f 122/144/793 161/145/794 144/178/795 +f 155/173/796 118/172/797 106/174/798 +f 167/129/799 118/172/800 155/173/801 +f 98/193/802 156/186/803 132/118/804 +f 142/113/805 149/115/806 157/171/807 +f 129/179/808 191/181/809 158/104/810 +f 158/104/811 185/148/812 129/179/813 +f 120/139/814 159/162/815 127/156/816 +f 127/156/817 159/162/818 112/182/819 +f 160/194/820 114/109/821 142/113/822 +f 99/107/823 114/109/824 160/194/825 +f 108/105/826 161/145/827 152/143/828 +f 176/128/829 108/105/830 135/106/831 +f 118/172/832 162/138/833 106/174/834 +f 106/174/835 162/138/836 120/139/837 +f 165/161/838 113/116/839 163/152/840 +f 164/184/841 186/177/842 99/107/843 +f 164/184/844 99/107/845 172/165/846 +f 112/182/847 165/161/848 163/152/849 +f 167/129/850 155/173/851 140/111/852 +f 124/146/853 167/129/854 140/111/855 +f 100/150/856 109/119/857 185/148/858 +f 109/119/859 143/131/860 173/185/861 +f 189/140/862 105/197/863 153/141/864 +f 170/176/865 125/168/866 107/167/867 +f 172/165/868 99/107/869 160/194/870 +f 172/165/871 160/194/872 117/166/873 +f 171/191/874 111/132/875 169/158/876 +f 184/157/877 103/159/878 169/158/879 +f 187/198/880 168/142/881 122/144/882 +f 147/188/883 168/142/884 187/198/885 +f 171/191/886 150/135/887 104/134/888 +f 171/191/889 169/158/890 150/135/891 +f 109/119/892 173/185/893 185/148/894 +f 185/148/895 173/185/896 129/179/897 +f 169/158/898 174/160/899 179/137/900 +f 148/196/901 174/160/902 116/133/903 +f 131/112/904 175/154/905 186/177/906 +f 131/112/907 106/174/908 175/154/909 +f 161/145/910 108/105/911 176/128/912 +f 105/197/913 177/125/914 141/127/915 +f 177/125/916 105/197/917 189/140/918 +f 178/189/919 137/183/920 134/151/921 +f 110/187/922 137/183/923 178/189/924 +f 179/137/925 174/160/926 148/196/927 +f 179/137/928 148/196/929 162/138/930 +f 180/155/931 120/139/932 127/156/933 +f 106/174/934 120/139/935 180/155/936 +f 103/159/937 181/121/938 123/122/939 +f 184/157/940 181/121/941 103/159/942 +f 182/170/943 142/113/944 157/171/945 +f 160/194/946 142/113/947 182/170/948 +f 183/136/949 150/135/950 162/138/951 +f 118/172/952 183/136/953 162/138/954 +f 111/132/955 184/157/956 169/158/957 +f 143/131/958 184/157/959 111/132/960 +f 164/184/961 151/110/962 186/177/963 +f 151/110/964 131/112/965 186/177/966 +f 149/115/967 101/153/968 163/152/969 +f 163/152/970 113/116/971 149/115/972 +f 187/198/973 122/144/974 170/176/975 +f 189/140/976 162/138/977 148/196/978 +f 189/140/979 148/196/980 177/125/981 +f 190/108/982 137/183/983 110/187/984 +f 190/108/985 110/187/986 114/109/987 +f 191/181/988 138/130/989 135/106/990 +f 158/104/991 191/181/992 135/106/993 +f 125/168/994 170/176/995 128/164/996 +f 128/164/997 115/163/998 125/168/999 +f 124/146/1000 146/195/1001 144/178/1002 +s 2 +f 207/213/1003 205/214/1004 193/199/1005 +f 193/199/1006 195/201/1007 207/213/1008 +f 206/215/1009 208/216/1010 196/207/1011 +f 196/207/1012 194/206/1013 206/215/1014 +f 205/214/1015 215/217/1016 203/200/1017 +f 203/200/1018 193/199/1019 205/214/1020 +f 209/218/1021 207/213/1022 195/201/1023 +f 195/201/1024 197/202/1025 209/218/1026 +f 208/216/1027 210/219/1028 198/208/1029 +f 198/208/1030 196/207/1031 208/216/1032 +f 213/221/1033 201/222/1034 253/211/1035 +f 253/211/1036 255/220/1037 213/221/1038 +f 266/223/1039 267/209/1040 198/208/1041 +f 198/208/1042 210/219/1043 266/223/1044 +f 212/257/1045 216/258/1046 204/212/1047 +f 204/212/1048 200/224/1049 212/257/1050 +f 209/218/1051 197/202/1052 268/203/1053 +f 268/203/1054 269/259/1055 209/218/1056 +f 212/257/1057 200/224/1058 254/205/1059 +f 254/205/1060 256/260/1061 212/257/1062 +f 215/217/1063 206/215/1064 194/206/1065 +f 194/206/1066 203/200/1067 215/217/1068 +f 216/258/1069 211/261/1070 199/210/1071 +f 199/210/1072 204/212/1073 216/258/1074 +f 219/227/1075 217/228/1076 205/225/1077 +f 205/225/1078 207/226/1079 219/227/1080 +f 218/231/1081 220/232/1082 208/229/1083 +f 208/229/1084 206/230/1085 218/231/1086 +f 217/228/1087 226/234/1088 215/233/1089 +f 215/233/1090 205/225/1091 217/228/1092 +f 221/236/1093 219/227/1094 207/226/1095 +f 207/226/1096 209/235/1097 221/236/1098 +f 220/232/1099 222/266/1100 210/265/1101 +f 210/265/1102 208/229/1103 220/232/1104 +f 225/239/1105 213/240/1106 255/237/1107 +f 255/237/1108 257/238/1109 225/239/1110 +f 222/266/1111 265/268/1112 266/267/1113 +f 266/267/1114 210/265/1115 222/266/1116 +f 224/243/1117 227/244/1118 216/241/1119 +f 216/241/1120 212/242/1121 224/243/1122 +f 270/270/1123 221/236/1124 209/235/1125 +f 209/235/1126 269/269/1127 270/270/1128 +f 224/243/1129 212/242/1130 256/246/1131 +f 256/246/1132 258/247/1133 224/243/1134 +f 226/332/1135 218/231/1136 206/230/1137 +f 206/230/1138 215/331/1139 226/332/1140 +f 227/244/1141 223/249/1142 211/248/1143 +f 211/248/1144 216/241/1145 227/244/1146 +f 228/250/1147 229/251/1148 227/244/1149 +f 227/244/1150 224/243/1151 228/250/1152 +f 229/251/1153 232/252/1154 223/249/1155 +f 223/249/1156 227/244/1157 229/251/1158 +f 258/247/1159 259/253/1160 228/250/1161 +f 228/250/1162 224/243/1163 258/247/1164 +f 260/254/1165 264/255/1166 225/239/1167 +f 225/239/1168 257/238/1169 260/254/1170 +f 244/274/1171 217/228/1172 219/227/1173 +f 219/227/1174 246/272/1175 244/274/1176 +f 247/276/1177 220/232/1178 218/231/1179 +f 218/231/1180 245/275/1181 247/276/1182 +f 250/277/1183 226/234/1184 217/228/1185 +f 217/228/1186 244/274/1187 250/277/1188 +f 246/272/1189 219/227/1190 221/236/1191 +f 221/236/1192 248/278/1193 246/272/1194 +f 249/279/1195 222/266/1196 220/232/1197 +f 220/232/1198 247/276/1199 249/279/1200 +f 245/275/1201 218/231/1202 226/332/1203 +f 226/332/1204 250/333/1205 245/275/1206 +f 231/282/1207 265/268/1208 222/266/1209 +f 222/266/1210 249/279/1211 231/282/1212 +f 252/286/1213 238/287/1214 279/284/1215 +f 279/284/1216 273/285/1217 252/286/1218 +f 273/285/1219 271/290/1220 242/288/1221 +f 242/288/1222 252/286/1223 273/285/1224 +f 291/294/1225 241/295/1226 289/245/1227 +f 289/245/1228 290/283/1229 291/294/1230 +f 241/295/1231 281/297/1232 288/296/1233 +f 288/296/1234 289/245/1235 241/295/1236 +f 283/299/1237 241/295/1238 291/294/1239 +f 291/294/1240 282/298/1241 283/299/1242 +f 281/297/1243 241/295/1244 283/299/1245 +f 283/299/1246 284/300/1247 281/297/1248 +f 263/262/1249 264/255/1250 260/254/1251 +f 260/254/1252 261/256/1253 263/262/1254 +f 261/256/1255 229/251/1256 228/250/1257 +f 228/250/1258 259/253/1259 261/256/1260 +f 275/306/1261 244/274/1262 246/272/1263 +f 246/272/1264 277/291/1265 275/306/1266 +f 247/276/1267 245/275/1268 276/307/1269 +f 276/307/1270 278/308/1271 247/276/1272 +f 280/309/1273 250/277/1274 244/274/1275 +f 244/274/1276 275/306/1277 280/309/1278 +f 246/272/1279 248/278/1280 279/284/1281 +f 279/284/1282 277/291/1283 246/272/1284 +f 274/310/1285 249/279/1286 247/276/1287 +f 247/276/1288 278/308/1289 274/310/1290 +f 245/275/1291 250/333/1292 280/334/1293 +f 280/334/1294 276/307/1295 245/275/1296 +f 233/311/1297 248/278/1298 221/236/1299 +f 221/236/1300 270/270/1301 233/311/1302 +f 272/312/1303 231/282/1304 249/279/1305 +f 249/279/1306 274/310/1307 272/312/1308 +f 272/312/1309 251/313/1310 242/288/1311 +f 242/288/1312 271/290/1313 272/312/1314 +f 255/220/1315 253/211/1316 199/210/1317 +f 199/210/1318 211/261/1319 255/220/1320 +f 256/260/1321 254/205/1322 202/204/1323 +f 202/204/1324 214/271/1325 256/260/1326 +f 257/238/1327 255/237/1328 211/248/1329 +f 211/248/1330 223/249/1331 257/238/1332 +f 258/247/1333 256/246/1334 214/263/1335 +f 214/263/1336 230/264/1337 258/247/1338 +f 259/253/1339 258/247/1340 230/264/1341 +f 230/264/1342 262/273/1343 259/253/1344 +f 232/252/1345 260/254/1346 257/238/1347 +f 257/238/1348 223/249/1349 232/252/1350 +f 261/256/1351 260/254/1352 232/252/1353 +f 232/252/1354 229/251/1355 261/256/1356 +f 263/262/1357 261/256/1358 259/253/1359 +f 259/253/1360 262/273/1361 263/262/1362 +f 231/281/1363 262/273/1364 230/264/1365 +f 230/264/1366 265/280/1367 231/281/1368 +f 243/289/1369 263/262/1370 262/273/1371 +f 262/273/1372 231/281/1373 243/289/1374 +f 264/255/1375 263/262/1376 243/289/1377 +f 243/289/1378 233/292/1379 264/255/1380 +f 270/293/1381 225/239/1382 264/255/1383 +f 264/255/1384 233/292/1385 270/293/1386 +f 266/304/1387 265/280/1388 230/264/1389 +f 230/264/1390 214/263/1391 266/304/1392 +f 267/209/1393 266/223/1394 214/271/1395 +f 214/271/1396 202/204/1397 267/209/1398 +f 269/259/1399 268/203/1400 201/222/1401 +f 201/222/1402 213/221/1403 269/259/1404 +f 225/239/1405 270/293/1406 269/305/1407 +f 269/305/1408 213/240/1409 225/239/1410 +f 243/314/1411 271/290/1412 273/285/1413 +f 273/285/1414 233/311/1415 243/314/1416 +f 231/282/1417 272/312/1418 271/290/1419 +f 271/290/1420 243/314/1421 231/282/1422 +f 234/316/1423 275/306/1424 277/291/1425 +f 277/291/1426 236/315/1427 234/316/1428 +f 278/308/1429 276/307/1430 235/317/1431 +f 235/317/1432 237/318/1433 278/308/1434 +f 240/319/1435 280/309/1436 275/306/1437 +f 275/306/1438 234/316/1439 240/319/1440 +f 277/291/1441 279/284/1442 238/287/1443 +f 238/287/1444 236/315/1445 277/291/1446 +f 239/320/1447 274/310/1448 278/308/1449 +f 278/308/1450 237/318/1451 239/320/1452 +f 276/307/1453 280/334/1454 240/335/1455 +f 240/335/1456 235/317/1457 276/307/1458 +f 251/313/1459 272/312/1460 274/310/1461 +f 274/310/1462 239/320/1463 251/313/1464 +f 273/285/1465 279/284/1466 248/278/1467 +f 248/278/1468 233/311/1469 273/285/1470 +f 281/297/1471 284/300/1472 285/301/1473 +f 285/301/1474 286/302/1475 281/297/1476 +f 287/303/1477 288/296/1478 281/297/1479 +f 281/297/1480 286/302/1481 287/303/1482 +f 283/321/1483 282/322/1484 234/316/1485 +f 234/316/1486 236/315/1487 283/321/1488 +f 284/323/1489 283/321/1490 236/315/1491 +f 236/315/1492 238/287/1493 284/323/1494 +f 285/324/1495 284/323/1496 238/287/1497 +f 238/287/1498 252/286/1499 285/324/1500 +f 286/325/1501 285/324/1502 252/286/1503 +f 252/286/1504 242/288/1505 286/325/1506 +f 287/326/1507 286/325/1508 242/288/1509 +f 242/288/1510 251/313/1511 287/326/1512 +f 288/327/1513 287/326/1514 251/313/1515 +f 251/313/1516 239/320/1517 288/327/1518 +f 289/328/1519 288/327/1520 239/320/1521 +f 239/320/1522 237/318/1523 289/328/1524 +f 290/329/1525 289/328/1526 237/318/1527 +f 237/318/1528 235/317/1529 290/329/1530 +f 291/330/1531 290/329/1532 235/317/1533 +f 235/317/1534 240/335/1535 291/330/1536 +f 282/322/1537 291/336/1538 240/319/1539 +f 240/319/1540 234/316/1541 282/322/1542 +s 1 +f 294/337/1543 292/339/1544 304/351/1545 +f 304/351/1546 306/352/1547 294/337/1548 +f 293/345/1549 295/344/1550 307/353/1551 +f 307/353/1552 305/354/1553 293/345/1554 +f 292/339/1555 302/338/1556 314/355/1557 +f 314/355/1558 304/351/1559 292/339/1560 +f 296/340/1561 294/337/1562 306/352/1563 +f 306/352/1564 308/356/1565 296/340/1566 +f 295/344/1567 297/346/1568 309/357/1569 +f 309/357/1570 307/353/1571 295/344/1572 +f 354/360/1573 352/349/1574 300/358/1575 +f 300/358/1576 312/359/1577 354/360/1578 +f 309/357/1579 297/346/1580 366/347/1581 +f 366/347/1582 365/361/1583 309/357/1584 +f 299/396/1585 303/348/1586 315/362/1587 +f 315/362/1588 311/395/1589 299/396/1590 +f 368/397/1591 367/341/1592 296/340/1593 +f 296/340/1594 308/356/1595 368/397/1596 +f 355/398/1597 353/342/1598 299/396/1599 +f 299/396/1600 311/395/1601 355/398/1602 +f 302/338/1603 293/345/1604 305/354/1605 +f 305/354/1606 314/355/1607 302/338/1608 +f 303/348/1609 298/350/1610 310/399/1611 +f 310/399/1612 315/362/1613 303/348/1614 +f 306/365/1615 304/366/1616 316/363/1617 +f 316/363/1618 318/364/1619 306/365/1620 +f 305/369/1621 307/370/1622 319/367/1623 +f 319/367/1624 317/368/1625 305/369/1626 +f 304/366/1627 314/372/1628 325/371/1629 +f 325/371/1630 316/363/1631 304/366/1632 +f 308/374/1633 306/365/1634 318/364/1635 +f 318/364/1636 320/373/1637 308/374/1638 +f 307/370/1639 309/404/1640 321/403/1641 +f 321/403/1642 319/367/1643 307/370/1644 +f 356/377/1645 354/378/1646 312/375/1647 +f 312/375/1648 324/376/1649 356/377/1650 +f 309/404/1651 365/406/1652 364/405/1653 +f 364/405/1654 321/403/1655 309/404/1656 +f 311/381/1657 315/382/1658 326/379/1659 +f 326/379/1660 323/380/1661 311/381/1662 +f 368/408/1663 308/374/1664 320/373/1665 +f 320/373/1666 369/407/1667 368/408/1668 +f 357/384/1669 355/385/1670 311/381/1671 +f 311/381/1672 323/380/1673 357/384/1674 +f 314/470/1675 305/369/1676 317/368/1677 +f 317/368/1678 325/469/1679 314/470/1680 +f 315/382/1681 310/387/1682 322/386/1683 +f 322/386/1684 326/379/1685 315/382/1686 +f 323/380/1687 326/379/1688 328/388/1689 +f 328/388/1690 327/389/1691 323/380/1692 +f 326/379/1693 322/386/1694 331/390/1695 +f 331/390/1696 328/388/1697 326/379/1698 +f 323/380/1699 327/389/1700 358/391/1701 +f 358/391/1702 357/384/1703 323/380/1704 +f 356/377/1705 324/376/1706 363/392/1707 +f 363/392/1708 359/393/1709 356/377/1710 +f 345/412/1711 318/364/1712 316/363/1713 +f 316/363/1714 343/410/1715 345/412/1716 +f 344/414/1717 317/368/1718 319/367/1719 +f 319/367/1720 346/413/1721 344/414/1722 +f 343/410/1723 316/363/1724 325/371/1725 +f 325/371/1726 349/415/1727 343/410/1728 +f 347/416/1729 320/373/1730 318/364/1731 +f 318/364/1732 345/412/1733 347/416/1734 +f 346/413/1735 319/367/1736 321/403/1737 +f 321/403/1738 348/417/1739 346/413/1740 +f 349/471/1741 325/469/1742 317/368/1743 +f 317/368/1744 344/414/1745 349/471/1746 +f 348/417/1747 321/403/1748 364/405/1749 +f 364/405/1750 330/420/1751 348/417/1752 +f 372/424/1753 378/425/1754 337/422/1755 +f 337/422/1756 351/423/1757 372/424/1758 +f 351/423/1759 341/428/1760 370/426/1761 +f 370/426/1762 372/424/1763 351/423/1764 +f 389/432/1765 388/433/1766 340/383/1767 +f 340/383/1768 390/421/1769 389/432/1770 +f 388/433/1771 387/435/1772 380/434/1773 +f 380/434/1774 340/383/1775 388/433/1776 +f 381/437/1777 390/421/1778 340/383/1779 +f 340/383/1780 382/436/1781 381/437/1782 +f 383/438/1783 382/436/1784 340/383/1785 +f 340/383/1786 380/434/1787 383/438/1788 +f 360/400/1789 359/393/1790 363/392/1791 +f 363/392/1792 362/394/1793 360/400/1794 +f 358/391/1795 327/389/1796 328/388/1797 +f 328/388/1798 360/400/1799 358/391/1800 +f 376/444/1801 345/412/1802 343/410/1803 +f 343/410/1804 374/429/1805 376/444/1806 +f 377/445/1807 375/446/1808 344/414/1809 +f 344/414/1810 346/413/1811 377/445/1812 +f 374/429/1813 343/410/1814 349/415/1815 +f 349/415/1816 379/447/1817 374/429/1818 +f 376/444/1819 378/425/1820 347/416/1821 +f 347/416/1822 345/412/1823 376/444/1824 +f 377/445/1825 346/413/1826 348/417/1827 +f 348/417/1828 373/448/1829 377/445/1830 +f 375/446/1831 379/472/1832 349/471/1833 +f 349/471/1834 344/414/1835 375/446/1836 +f 369/407/1837 320/373/1838 347/416/1839 +f 347/416/1840 332/449/1841 369/407/1842 +f 373/448/1843 348/417/1844 330/420/1845 +f 330/420/1846 371/450/1847 373/448/1848 +f 370/426/1849 341/428/1850 350/451/1851 +f 350/451/1852 371/450/1853 370/426/1854 +f 310/399/1855 298/350/1856 352/349/1857 +f 352/349/1858 354/360/1859 310/399/1860 +f 313/409/1861 301/343/1862 353/342/1863 +f 353/342/1864 355/398/1865 313/409/1866 +f 322/386/1867 310/387/1868 354/378/1869 +f 354/378/1870 356/377/1871 322/386/1872 +f 329/401/1873 313/402/1874 355/385/1875 +f 355/385/1876 357/384/1877 329/401/1878 +f 361/411/1879 329/401/1880 357/384/1881 +f 357/384/1882 358/391/1883 361/411/1884 +f 322/386/1885 356/377/1886 359/393/1887 +f 359/393/1888 331/390/1889 322/386/1890 +f 328/388/1891 331/390/1892 359/393/1893 +f 359/393/1894 360/400/1895 328/388/1896 +f 361/411/1897 358/391/1898 360/400/1899 +f 360/400/1900 362/394/1901 361/411/1902 +f 364/419/1903 329/401/1904 361/411/1905 +f 361/411/1906 330/418/1907 364/419/1908 +f 330/418/1909 361/411/1910 362/394/1911 +f 362/394/1912 342/427/1913 330/418/1914 +f 332/430/1915 342/427/1916 362/394/1917 +f 362/394/1918 363/392/1919 332/430/1920 +f 332/430/1921 363/392/1922 324/376/1923 +f 324/376/1924 369/431/1925 332/430/1926 +f 313/402/1927 329/401/1928 364/419/1929 +f 364/419/1930 365/442/1931 313/402/1932 +f 301/343/1933 313/409/1934 365/361/1935 +f 365/361/1936 366/347/1937 301/343/1938 +f 312/359/1939 300/358/1940 367/341/1941 +f 367/341/1942 368/397/1943 312/359/1944 +f 312/375/1945 368/443/1946 369/431/1947 +f 369/431/1948 324/376/1949 312/375/1950 +f 332/449/1951 372/424/1952 370/426/1953 +f 370/426/1954 342/452/1955 332/449/1956 +f 342/452/1957 370/426/1958 371/450/1959 +f 371/450/1960 330/420/1961 342/452/1962 +f 335/454/1963 376/444/1964 374/429/1965 +f 374/429/1966 333/453/1967 335/454/1968 +f 336/455/1969 334/456/1970 375/446/1971 +f 375/446/1972 377/445/1973 336/455/1974 +f 333/453/1975 374/429/1976 379/447/1977 +f 379/447/1978 339/457/1979 333/453/1980 +f 335/454/1981 337/422/1982 378/425/1983 +f 378/425/1984 376/444/1985 335/454/1986 +f 336/455/1987 377/445/1988 373/448/1989 +f 373/448/1990 338/458/1991 336/455/1992 +f 334/456/1993 339/473/1994 379/472/1995 +f 379/472/1996 375/446/1997 334/456/1998 +f 338/458/1999 373/448/2000 371/450/2001 +f 371/450/2002 350/451/2003 338/458/2004 +f 332/449/2005 347/416/2006 378/425/2007 +f 378/425/2008 372/424/2009 332/449/2010 +f 385/439/2011 384/440/2012 383/438/2013 +f 383/438/2014 380/434/2015 385/439/2016 +f 385/439/2017 380/434/2018 387/435/2019 +f 387/435/2020 386/441/2021 385/439/2022 +f 335/454/2023 333/453/2024 381/459/2025 +f 381/459/2026 382/460/2027 335/454/2028 +f 337/422/2029 335/454/2030 382/460/2031 +f 382/460/2032 383/461/2033 337/422/2034 +f 351/423/2035 337/422/2036 383/461/2037 +f 383/461/2038 384/462/2039 351/423/2040 +f 341/428/2041 351/423/2042 384/462/2043 +f 384/462/2044 385/463/2045 341/428/2046 +f 350/451/2047 341/428/2048 385/463/2049 +f 385/463/2050 386/464/2051 350/451/2052 +f 338/458/2053 350/451/2054 386/464/2055 +f 386/464/2056 387/465/2057 338/458/2058 +f 336/455/2059 338/458/2060 387/465/2061 +f 387/465/2062 388/466/2063 336/455/2064 +f 334/456/2065 336/455/2066 388/466/2067 +f 388/466/2068 389/467/2069 334/456/2070 +f 339/473/2071 334/456/2072 389/467/2073 +f 389/467/2074 390/468/2075 339/473/2076 +f 333/453/2077 339/457/2078 390/474/2079 +f 390/474/2080 381/459/2081 333/453/2082 +f 396/480/2083 398/481/2084 397/475/2085 +f 397/475/2086 1269/478/2087 396/480/2088 +f 396/480/2089 400/483/2090 399/482/2091 +f 399/482/2092 398/481/2093 396/480/2094 +f 401/487/2095 404/488/2096 403/485/2097 +f 403/485/2098 402/486/2099 401/487/2100 +f 405/490/2101 401/487/2102 402/486/2103 +f 402/486/2104 406/489/2105 405/490/2106 +f 401/487/2107 405/490/2108 407/491/2109 +f 407/491/2110 404/488/2111 401/487/2112 +f 408/494/2113 411/495/2114 410/492/2115 +f 410/492/2116 409/493/2117 408/494/2118 +f 408/494/2119 413/497/2120 412/496/2121 +f 412/496/2122 411/495/2123 408/494/2124 +f 408/494/2125 415/499/2126 414/498/2127 +f 414/498/2128 413/497/2129 408/494/2130 +f 408/494/2131 417/501/2132 416/500/2133 +f 416/500/2134 415/499/2135 408/494/2136 +f 408/494/2137 409/493/2138 418/502/2139 +f 418/502/2140 417/501/2141 408/494/2142 +f 419/505/2143 422/506/2144 421/503/2145 +f 421/503/2146 420/504/2147 419/505/2148 +f 419/505/2149 420/504/2150 424/507/2151 +f 424/507/2152 423/508/2153 419/505/2154 +f 425/511/2155 428/512/2156 427/509/2157 +f 427/509/2158 426/510/2159 425/511/2160 +f 429/514/2161 425/511/2162 426/510/2163 +f 426/510/2164 430/513/2165 429/514/2166 +f 425/515/2167 429/528/2168 431/476/2169 +f 431/476/2170 428/477/2171 425/515/2172 +f 432/517/2173 435/518/2174 434/484/2175 +f 434/484/2176 433/516/2177 432/517/2178 +f 432/517/2179 433/516/2180 437/519/2181 +f 437/519/2182 436/520/2183 432/517/2184 +f 432/517/2185 438/521/2186 400/483/2187 +f 400/483/2188 435/518/2189 432/517/2190 +f 435/518/2191 440/523/2192 439/522/2193 +f 439/522/2194 434/484/2195 435/518/2196 +f 443/526/2197 442/527/2198 441/524/2199 +f 441/524/2200 444/525/2201 443/526/2202 +f 442/527/2203 443/526/2204 434/484/2205 +f 434/484/2206 439/522/2207 442/527/2208 +f 442/527/2209 439/522/2210 445/529/2211 +f 445/529/2212 441/524/2213 442/527/2214 +f 446/532/2215 449/533/2216 448/530/2217 +f 448/530/2218 447/531/2219 446/532/2220 +f 451/534/2221 450/535/2222 449/533/2223 +f 449/533/2224 446/532/2225 451/534/2226 +f 433/516/2227 434/484/2228 443/526/2229 +f 443/526/2230 437/519/2231 433/516/2232 +f 452/538/2233 455/539/2234 454/536/2235 +f 454/536/2236 453/537/2237 452/538/2238 +f 452/538/2239 458/557/2240 457/542/2241 +f 457/542/2242 456/543/2243 452/538/2244 +f 452/538/2245 453/537/2246 459/644/2247 +f 459/644/2248 458/557/2249 452/538/2250 +f 460/544/2251 462/545/2252 457/540/2253 +f 457/540/2254 461/541/2255 460/544/2256 +f 460/544/2257 406/489/2258 402/486/2259 +f 402/486/2260 403/485/2261 460/544/2262 +f 460/544/2263 461/541/2264 463/546/2265 +f 463/546/2266 406/489/2267 460/544/2268 +f 417/501/2269 418/502/2270 464/547/2271 +f 464/547/2272 416/500/2273 417/501/2274 +f 462/545/2275 465/549/2276 456/548/2277 +f 456/548/2278 457/540/2279 462/545/2280 +f 462/545/2281 460/544/2282 466/550/2283 +f 466/550/2284 465/549/2285 462/545/2286 +f 1342/688/2287 423/508/2288 467/551/2289 +f 467/551/2290 1341/687/2291 1342/688/2292 +f 468/627/2293 471/629/2294 470/552/2295 +f 470/552/2296 469/553/2297 468/627/2298 +f 468/647/2299 473/648/2300 472/645/2301 +f 472/645/2302 471/646/2303 468/647/2304 +f 471/556/2305 475/558/2306 474/554/2307 +f 474/554/2308 470/555/2309 471/556/2310 +f 471/556/2311 472/560/2312 476/559/2313 +f 476/559/2314 475/558/2315 471/556/2316 +f 476/559/2317 478/562/2318 477/561/2319 +f 477/561/2320 475/558/2321 476/559/2322 +f 476/559/2323 465/549/2324 466/550/2325 +f 466/550/2326 478/562/2327 476/559/2328 +f 476/559/2329 472/560/2330 456/548/2331 +f 456/548/2332 465/549/2333 476/559/2334 +f 478/562/2335 480/564/2336 479/563/2337 +f 479/563/2338 477/561/2339 478/562/2340 +f 478/562/2341 466/550/2342 481/565/2343 +f 481/565/2344 480/564/2345 478/562/2346 +f 481/565/2347 483/567/2348 482/566/2349 +f 482/566/2350 480/564/2351 481/565/2352 +f 481/565/2353 403/485/2354 404/488/2355 +f 404/488/2356 483/567/2357 481/565/2358 +f 481/565/2359 466/550/2360 460/544/2361 +f 460/544/2362 403/485/2363 481/565/2364 +f 483/567/2365 485/569/2366 484/568/2367 +f 484/568/2368 482/566/2369 483/567/2370 +f 483/567/2371 404/488/2372 486/570/2373 +f 486/570/2374 485/569/2375 483/567/2376 +f 486/570/2377 488/572/2378 487/571/2379 +f 487/571/2380 485/569/2381 486/570/2382 +f 486/570/2383 490/574/2384 489/573/2385 +f 489/573/2386 488/572/2387 486/570/2388 +f 486/570/2389 404/488/2390 407/491/2391 +f 407/491/2392 490/574/2393 486/570/2394 +f 490/574/2395 464/547/2396 491/575/2397 +f 491/575/2398 489/573/2399 490/574/2400 +f 490/574/2401 407/491/2402 416/500/2403 +f 416/500/2404 464/547/2405 490/574/2406 +f 489/573/2407 493/577/2408 492/576/2409 +f 492/576/2410 488/572/2411 489/573/2412 +f 489/573/2413 491/575/2414 494/578/2415 +f 494/578/2416 493/577/2417 489/573/2418 +f 493/577/2419 496/580/2420 495/579/2421 +f 495/579/2422 492/576/2423 493/577/2424 +f 493/577/2425 494/578/2426 497/581/2427 +f 497/581/2428 496/580/2429 493/577/2430 +f 497/581/2431 494/578/2432 499/582/2433 +f 499/582/2434 498/583/2435 497/581/2436 +f 498/2584/2437 499/2583/2438 501/584/2439 +f 501/584/2440 500/585/2441 498/2584/2442 +f 501/584/2443 499/2583/2444 503/586/2445 +f 503/586/2446 502/587/2447 501/584/2448 +f 501/584/2449 505/589/2450 504/588/2451 +f 504/588/2452 500/585/2453 501/584/2454 +f 501/584/2455 502/587/2456 506/590/2457 +f 506/590/2458 505/589/2459 501/584/2460 +f 504/588/2461 505/589/2462 508/591/2463 +f 508/591/2464 507/592/2465 504/588/2466 +f 507/592/2467 508/591/2468 510/593/2469 +f 510/593/2470 509/594/2471 507/592/2472 +f 510/593/2473 508/591/2474 512/595/2475 +f 512/595/2476 511/596/2477 510/593/2478 +f 510/593/2479 514/598/2480 513/597/2481 +f 513/597/2482 509/594/2483 510/593/2484 +f 510/593/2485 511/596/2486 515/599/2487 +f 515/599/2488 514/598/2489 510/593/2490 +f 515/599/2491 511/596/2492 517/600/2493 +f 517/600/2494 516/601/2495 515/599/2496 +f 515/599/2497 519/603/2498 518/602/2499 +f 518/602/2500 514/598/2501 515/599/2502 +f 515/599/2503 516/601/2504 520/604/2505 +f 520/604/2506 519/603/2507 515/599/2508 +f 520/604/2509 516/601/2510 522/605/2511 +f 522/605/2512 521/606/2513 520/604/2514 +f 520/604/2515 484/568/2516 523/607/2517 +f 523/607/2518 519/603/2519 520/604/2520 +f 520/604/2521 521/606/2522 482/566/2523 +f 482/566/2524 484/568/2525 520/604/2526 +f 523/607/2527 524/608/2528 518/602/2529 +f 518/602/2530 519/603/2531 523/607/2532 +f 523/607/2533 487/571/2534 525/609/2535 +f 525/609/2536 524/608/2537 523/607/2538 +f 523/607/2539 484/568/2540 485/569/2541 +f 485/569/2542 487/571/2543 523/607/2544 +f 525/609/2545 527/611/2546 526/610/2547 +f 526/610/2548 524/608/2549 525/609/2550 +f 525/609/2551 492/576/2552 495/579/2553 +f 495/579/2554 527/611/2555 525/609/2556 +f 525/609/2557 487/571/2558 488/572/2559 +f 488/572/2560 492/576/2561 525/609/2562 +f 528/612/2563 513/597/2564 514/598/2565 +f 514/598/2566 518/602/2567 528/612/2568 +f 528/612/2569 518/602/2570 524/608/2571 +f 524/608/2572 526/610/2573 528/612/2574 +f 522/605/2575 531/615/2576 530/613/2577 +f 530/613/2578 529/614/2579 522/605/2580 +f 522/605/2581 516/601/2582 517/600/2583 +f 517/600/2584 531/615/2585 522/605/2586 +f 522/605/2587 529/614/2588 479/563/2589 +f 479/563/2590 521/606/2591 522/605/2592 +f 531/615/2593 533/617/2594 532/616/2595 +f 532/616/2596 530/613/2597 531/615/2598 +f 531/615/2599 517/600/2600 534/618/2601 +f 534/618/2602 533/617/2603 531/615/2604 +f 534/618/2605 536/620/2606 535/619/2607 +f 535/619/2608 533/617/2609 534/618/2610 +f 534/618/2611 512/595/2612 537/621/2613 +f 537/621/2614 536/620/2615 534/618/2616 +f 534/618/2617 517/600/2618 511/596/2619 +f 511/596/2620 512/595/2621 534/618/2622 +f 535/619/2623 538/622/2624 426/510/2625 +f 426/510/2626 427/509/2627 535/619/2628 +f 535/619/2629 536/620/2630 506/590/2631 +f 506/590/2632 538/622/2633 535/619/2634 +f 535/619/2635 427/509/2636 532/616/2637 +f 532/616/2638 533/617/2639 535/619/2640 +f 538/622/2641 539/623/2642 430/513/2643 +f 430/513/2644 426/510/2645 538/622/2646 +f 538/622/2647 506/590/2648 502/587/2649 +f 502/587/2650 539/623/2651 538/622/2652 +f 539/623/2653 410/2580/2654 411/2581/2655 +f 411/2581/2656 430/513/2657 539/623/2658 +f 539/623/2659 502/587/2660 503/586/2661 +f 503/586/2662 410/2580/2663 539/623/2664 +f 532/616/2665 427/509/2666 428/512/2667 +f 428/512/2668 540/624/2669 532/616/2670 +f 532/616/2671 540/624/2672 541/625/2673 +f 541/625/2674 530/613/2675 532/616/2676 +f 541/632/2677 540/633/2678 543/630/2679 +f 543/630/2680 542/631/2681 541/632/2682 +f 541/625/2683 544/626/2684 529/614/2685 +f 529/614/2686 530/613/2687 541/625/2688 +f 541/625/2689 542/628/2690 474/554/2691 +f 474/554/2692 544/626/2693 541/625/2694 +f 544/626/2695 477/561/2696 479/563/2697 +f 479/563/2698 529/614/2699 544/626/2700 +f 544/626/2701 474/554/2702 475/558/2703 +f 475/558/2704 477/561/2705 544/626/2706 +f 543/630/2707 547/636/2708 546/634/2709 +f 546/634/2710 545/635/2711 543/630/2712 +f 543/630/2713 540/633/2714 428/477/2715 +f 428/477/2716 547/636/2717 543/630/2718 +f 543/630/2719 545/635/2720 548/637/2721 +f 548/637/2722 542/631/2723 543/630/2724 +f 547/636/2725 550/639/2726 549/638/2727 +f 549/638/2728 546/634/2729 547/636/2730 +f 547/636/2731 428/477/2732 431/476/2733 +f 431/476/2734 550/639/2735 547/636/2736 +f 550/639/2737 552/641/2738 551/640/2739 +f 551/640/2740 549/638/2741 550/639/2742 +f 550/639/2743 431/476/2744 553/642/2745 +f 553/642/2746 552/641/2747 550/639/2748 +f 553/642/2749 555/668/2750 554/643/2751 +f 554/643/2752 552/641/2753 553/642/2754 +f 553/642/2755 557/670/2756 556/669/2757 +f 556/669/2758 555/668/2759 553/642/2760 +f 553/642/2761 431/476/2762 429/528/2763 +f 429/528/2764 557/670/2765 553/642/2766 +f 557/670/2767 559/672/2768 558/671/2769 +f 558/671/2770 556/669/2771 557/670/2772 +f 557/670/2773 429/528/2774 412/673/2775 +f 412/673/2776 559/672/2777 557/670/2778 +f 559/652/2779 561/653/2780 560/649/2781 +f 560/649/2782 558/651/2783 559/652/2784 +f 559/652/2785 412/655/2786 413/654/2787 +f 413/654/2788 561/653/2789 559/652/2790 +f 561/653/2791 563/657/2792 562/656/2793 +f 562/656/2794 560/649/2795 561/653/2796 +f 561/653/2797 413/654/2798 414/658/2799 +f 414/658/2800 563/657/2801 561/653/2802 +f 563/657/2803 565/660/2804 564/659/2805 +f 564/659/2806 562/656/2807 563/657/2808 +f 563/657/2809 414/658/2810 566/661/2811 +f 566/661/2812 565/660/2813 563/657/2814 +f 566/661/2815 463/663/2816 567/662/2817 +f 567/662/2818 565/660/2819 566/661/2820 +f 566/650/2821 405/490/2822 406/489/2823 +f 406/489/2824 463/546/2825 566/650/2826 +f 566/650/2827 414/498/2828 415/499/2829 +f 415/499/2830 405/490/2831 566/650/2832 +f 567/662/2833 568/664/2834 564/659/2835 +f 564/659/2836 565/660/2837 567/662/2838 +f 567/662/2839 570/666/2840 569/665/2841 +f 569/665/2842 568/664/2843 567/662/2844 +f 567/662/2845 463/663/2846 461/667/2847 +f 461/667/2848 570/666/2849 567/662/2850 +f 570/666/2851 458/557/2852 459/644/2853 +f 459/644/2854 569/665/2855 570/666/2856 +f 570/666/2857 461/667/2858 457/542/2859 +f 457/542/2860 458/557/2861 570/666/2862 +f 569/665/2863 572/697/2864 571/696/2865 +f 571/696/2866 568/664/2867 569/665/2868 +f 569/665/2869 459/644/2870 573/781/2871 +f 573/781/2872 572/697/2873 569/665/2874 +f 573/781/2875 575/1353/2876 574/782/2877 +f 574/782/2878 572/697/2879 573/781/2880 +f 573/781/2881 577/1355/2882 576/1354/2883 +f 576/1354/2884 575/1353/2885 573/781/2886 +f 573/781/2887 459/644/2888 453/537/2889 +f 453/537/2890 577/1355/2891 573/781/2892 +f 577/1355/2893 579/1357/2894 578/1356/2895 +f 578/1356/2896 576/1354/2897 577/1355/2898 +f 577/1355/2899 453/537/2900 454/536/2901 +f 454/536/2902 579/1357/2903 577/1355/2904 +f 576/1354/2905 581/1390/2906 580/1389/2907 +f 580/1389/2908 575/1353/2909 576/1354/2910 +f 576/1354/2911 578/1356/2912 582/1391/2913 +f 582/1391/2914 581/1390/2915 576/1354/2916 +f 581/1390/2917 1483/1393/2918 1482/1392/2919 +f 1482/1392/2920 580/1389/2921 581/1390/2922 +f 581/1390/2923 582/1391/2924 1484/1394/2925 +f 1484/1394/2926 1483/1393/2927 581/1390/2928 +f 1482/1392/2929 391/1396/2930 583/1395/2931 +f 583/1395/2932 580/1389/2933 1482/1392/2934 +f 391/1396/2935 397/475/2936 398/481/2937 +f 398/481/2938 583/1395/2939 391/1396/2940 +f 583/1395/2941 574/782/2942 575/1353/2943 +f 575/1353/2944 580/1389/2945 583/1395/2946 +f 583/1395/2947 398/481/2948 399/482/2949 +f 399/482/2950 574/782/2951 583/1395/2952 +f 574/782/2953 399/482/2954 571/696/2955 +f 571/696/2956 572/697/2957 574/782/2958 +f 571/696/2959 399/482/2960 400/483/2961 +f 400/483/2962 438/521/2963 571/696/2964 +f 571/696/2965 438/521/2966 564/659/2967 +f 564/659/2968 568/664/2969 571/696/2970 +f 564/659/2971 438/521/2972 432/517/2973 +f 432/517/2974 562/656/2975 564/659/2976 +f 562/656/2977 432/517/2978 436/520/2979 +f 436/520/2980 560/649/2981 562/656/2982 +f 560/649/2983 436/520/2984 584/1397/2985 +f 584/1397/2986 558/651/2987 560/649/2988 +f 584/676/2989 587/677/2990 586/674/2991 +f 586/674/2992 585/675/2993 584/676/2994 +f 584/1397/2995 436/520/2996 437/519/2997 +f 437/519/2998 587/1398/2999 584/1397/3000 +f 584/676/3001 585/675/3002 556/669/3003 +f 556/669/3004 558/671/3005 584/676/3006 +f 586/674/3007 590/680/3008 589/678/3009 +f 589/678/3010 588/679/3011 586/674/3012 +f 586/674/3013 587/677/3014 444/681/3015 +f 444/681/3016 590/680/3017 586/674/3018 +f 586/674/3019 588/679/3020 591/682/3021 +f 591/682/3022 585/675/3023 586/674/3024 +f 591/682/3025 588/679/3026 593/683/3027 +f 593/683/3028 592/684/3029 591/682/3030 +f 591/682/3031 555/668/3032 556/669/3033 +f 556/669/3034 585/675/3035 591/682/3036 +f 591/682/3037 592/684/3038 554/643/3039 +f 554/643/3040 555/668/3041 591/682/3042 +f 593/683/3043 596/1388/3044 595/685/3045 +f 595/685/3046 594/785/3047 593/683/3048 +f 593/683/3049 588/679/3050 589/678/3051 +f 589/678/3052 596/1388/3053 593/683/3054 +f 593/683/3055 594/785/3056 597/1399/3057 +f 597/1399/3058 592/684/3059 593/683/3060 +f 597/1399/3061 594/785/3062 1500/1427/3063 +f 1500/1427/3064 1501/1428/3065 597/1399/3066 +f 597/1399/3067 598/1429/3068 554/643/3069 +f 554/643/3070 592/684/3071 597/1399/3072 +f 597/1399/3073 1501/1428/3074 392/1430/3075 +f 392/1430/3076 598/1429/3077 597/1399/3078 +f 392/1430/3079 1503/1525/3080 551/640/3081 +f 551/640/3082 598/1429/3083 392/1430/3084 +f 1503/1525/3085 599/1526/3086 549/638/3087 +f 549/638/3088 551/640/3089 1503/1525/3090 +f 599/1526/3091 1504/1528/3092 546/634/3093 +f 546/634/3094 549/638/3095 599/1526/3096 +f 1504/1528/3097 600/1529/3098 545/635/3099 +f 545/635/3100 546/634/3101 1504/1528/3102 +f 600/1529/3103 601/1530/3104 548/637/3105 +f 548/637/3106 545/635/3107 600/1529/3108 +f 598/1429/3109 551/640/3110 552/641/3111 +f 552/641/3112 554/643/3113 598/1429/3114 +f 1500/1427/3115 594/785/3116 595/685/3117 +f 595/685/3118 393/1531/3119 1500/1427/3120 +f 393/1531/3121 595/685/3122 419/1532/3123 +f 419/1532/3124 602/1533/3125 393/1531/3126 +f 596/1388/3127 422/1534/3128 419/1532/3129 +f 419/1532/3130 595/685/3131 596/1388/3132 +f 596/1388/3133 589/678/3134 603/1535/3135 +f 603/1535/3136 422/1534/3137 596/1388/3138 +f 603/689/3139 604/690/3140 421/503/3141 +f 421/503/3142 422/506/3143 603/689/3144 +f 603/689/3145 606/692/3146 605/691/3147 +f 605/691/3148 604/690/3149 603/689/3150 +f 603/1535/3151 589/678/3152 590/680/3153 +f 590/680/3154 606/1536/3155 603/1535/3156 +f 607/693/3157 449/533/3158 605/691/3159 +f 605/691/3160 606/692/3161 607/693/3162 +f 606/1536/3163 590/680/3164 444/681/3165 +f 444/681/3166 607/1537/3167 606/1536/3168 +f 607/1401/3169 444/525/3170 441/524/3171 +f 441/524/3172 608/1400/3173 607/1401/3174 +f 608/1400/3175 441/524/3176 445/529/3177 +f 445/529/3178 609/1402/3179 608/1400/3180 +f 609/1402/3181 445/529/3182 612/1409/3183 +f 612/1409/3184 611/1410/3185 609/1402/3186 +f 612/1409/3187 445/529/3188 439/522/3189 +f 439/522/3190 440/523/3191 612/1409/3192 +f 612/1409/3193 613/1412/3194 1515/1411/3195 +f 1515/1411/3196 611/1410/3197 612/1409/3198 +f 612/1409/3199 440/523/3200 394/1414/3201 +f 394/1414/3202 613/1412/3203 612/1409/3204 +f 1515/698/3205 395/699/3206 610/694/3207 +f 610/694/3208 611/695/3209 1515/698/3210 +f 395/699/3211 1517/701/3212 614/700/3213 +f 614/700/3214 610/694/3215 395/699/3216 +f 1517/701/3217 1519/703/3218 615/702/3219 +f 615/702/3220 614/700/3221 1517/701/3222 +f 1519/703/3223 1521/705/3224 616/704/3225 +f 616/704/3226 615/702/3227 1519/703/3228 +f 1521/705/3229 1341/2601/3230 467/2600/3231 +f 467/2600/3232 616/704/3233 1521/705/3234 +f 616/704/3235 618/707/3236 617/706/3237 +f 617/706/3238 615/702/3239 616/704/3240 +f 616/704/3241 467/2600/3242 619/708/3243 +f 619/708/3244 618/707/3245 616/704/3246 +f 620/710/3247 618/707/3248 619/708/3249 +f 619/708/3250 621/709/3251 620/710/3252 +f 424/507/3253 622/711/3254 621/2603/3255 +f 621/2603/3256 619/2602/3257 424/507/3258 +f 619/2602/3259 467/551/3260 423/508/3261 +f 423/508/3262 424/507/3263 619/2602/3264 +f 623/714/3265 626/715/3266 625/712/3267 +f 625/712/3268 624/2605/3269 623/714/3270 +f 623/714/3271 628/717/3272 627/716/3273 +f 627/716/3274 626/715/3275 623/714/3276 +f 622/711/3277 629/718/3278 628/717/3279 +f 628/717/3280 623/714/3281 622/711/3282 +f 628/717/3283 631/720/3284 630/719/3285 +f 630/719/3286 627/716/3287 628/717/3288 +f 629/718/3289 632/721/3290 631/720/3291 +f 631/720/3292 628/717/3293 629/718/3294 +f 631/720/3295 634/723/3296 633/722/3297 +f 633/722/3298 630/719/3299 631/720/3300 +f 632/721/3301 635/724/3302 634/723/3303 +f 634/723/3304 631/720/3305 632/721/3306 +f 634/723/3307 637/726/3308 636/725/3309 +f 636/725/3310 633/722/3311 634/723/3312 +f 635/724/3313 638/727/3314 637/726/3315 +f 637/726/3316 634/723/3317 635/724/3318 +f 637/726/3319 640/729/3320 639/728/3321 +f 639/728/3322 636/725/3323 637/726/3324 +f 638/727/3325 450/535/3326 640/729/3327 +f 640/729/3328 637/726/3329 638/727/3330 +f 642/730/3331 641/731/3332 636/725/3333 +f 636/725/3334 639/728/3335 642/730/3336 +f 644/732/3337 643/733/3338 642/730/3339 +f 642/730/3340 639/728/3341 644/732/3342 +f 639/728/3343 640/729/3344 645/734/3345 +f 645/734/3346 644/732/3347 639/728/3348 +f 647/735/3349 646/736/3350 643/733/3351 +f 643/733/3352 644/732/3353 647/735/3354 +f 644/732/3355 645/734/3356 648/737/3357 +f 648/737/3358 647/735/3359 644/732/3360 +f 648/737/3361 650/739/3362 649/738/3363 +f 649/738/3364 647/735/3365 648/737/3366 +f 620/710/3367 650/739/3368 648/737/3369 +f 648/737/3370 651/740/3371 620/710/3372 +f 645/734/3373 451/534/3374 651/740/3375 +f 651/740/3376 648/737/3377 645/734/3378 +f 646/736/3379 647/735/3380 649/738/3381 +f 649/738/3382 652/741/3383 646/736/3384 +f 653/742/3385 652/741/3386 649/738/3387 +f 649/738/3388 625/2604/3389 653/742/3390 +f 649/738/3391 650/739/3392 624/713/3393 +f 624/713/3394 625/2604/3395 649/738/3396 +f 656/745/3397 655/746/3398 654/2607/3399 +f 654/2607/3400 657/744/3401 656/745/3402 +f 659/747/3403 658/748/3404 657/2608/3405 +f 657/2608/3406 654/743/3407 659/747/3408 +f 653/2606/3409 660/749/3410 659/747/3411 +f 659/747/3412 654/743/3413 653/2606/3414 +f 662/750/3415 661/751/3416 658/748/3417 +f 658/748/3418 659/747/3419 662/750/3420 +f 660/749/3421 663/752/3422 662/750/3423 +f 662/750/3424 659/747/3425 660/749/3426 +f 665/753/3427 664/754/3428 661/751/3429 +f 661/751/3430 662/750/3431 665/753/3432 +f 663/752/3433 666/755/3434 665/753/3435 +f 665/753/3436 662/750/3437 663/752/3438 +f 667/757/3439 664/754/3440 665/753/3441 +f 665/753/3442 668/756/3443 667/757/3444 +f 666/755/3445 669/758/3446 668/756/3447 +f 668/756/3448 665/753/3449 666/755/3450 +f 670/760/3451 667/757/3452 668/756/3453 +f 668/756/3454 671/759/3455 670/760/3456 +f 641/731/3457 671/759/3458 668/756/3459 +f 668/756/3460 669/758/3461 641/731/3462 +f 672/763/3463 675/764/3464 674/761/3465 +f 674/761/3466 673/762/3467 672/763/3468 +f 672/763/3469 677/766/3470 676/765/3471 +f 676/765/3472 675/764/3473 672/763/3474 +f 670/760/3475 678/767/3476 677/766/3477 +f 677/766/3478 672/763/3479 670/760/3480 +f 677/766/3481 680/769/3482 679/768/3483 +f 679/768/3484 676/765/3485 677/766/3486 +f 678/767/3487 681/770/3488 680/769/3489 +f 680/769/3490 677/766/3491 678/767/3492 +f 680/769/3493 683/772/3494 682/771/3495 +f 682/771/3496 679/768/3497 680/769/3498 +f 681/770/3499 684/773/3500 683/772/3501 +f 683/772/3502 680/769/3503 681/770/3504 +f 683/772/3505 686/775/3506 685/774/3507 +f 685/774/3508 682/771/3509 683/772/3510 +f 656/745/3511 686/775/3512 683/772/3513 +f 683/772/3514 684/773/3515 656/745/3516 +f 685/774/3517 686/775/3518 688/776/3519 +f 688/776/3520 687/777/3521 685/774/3522 +f 687/2610/3523 688/2609/3524 690/778/3525 +f 690/778/3526 689/1350/3527 687/2610/3528 +f 689/1350/3529 690/778/3530 692/1351/3531 +f 692/1351/3532 691/1352/3533 689/1350/3534 +f 691/1352/3535 692/1351/3536 694/2566/3537 +f 694/2566/3538 693/2567/3539 691/1352/3540 +f 693/2567/3541 694/2566/3542 673/762/3543 +f 673/762/3544 674/761/3545 693/2567/3546 +f 617/706/3547 446/532/3548 614/700/3549 +f 614/700/3550 615/702/3551 617/706/3552 +f 542/631/3553 548/637/3554 470/552/3555 +f 470/552/3556 474/1538/3557 542/631/3558 +f 521/606/3559 479/563/3560 480/564/3561 +f 480/564/3562 482/566/3563 521/606/3564 +f 503/2585/3565 695/779/3566 409/493/3567 +f 409/493/3568 410/492/3569 503/2585/3570 +f 491/575/3571 464/547/3572 418/502/3573 +f 418/502/3574 696/780/3575 491/575/3576 +f 455/539/3577 452/538/3578 698/1415/3579 +f 698/1415/3580 697/1416/3581 455/539/3582 +f 430/513/3583 411/2581/3584 412/2582/3585 +f 412/2582/3586 429/514/3587 430/513/3588 +f 1342/688/3589 602/2568/3590 419/505/3591 +f 419/505/3592 423/508/3593 1342/688/3594 +f 698/1415/3595 472/645/3596 473/648/3597 +f 473/648/3598 697/1416/3599 698/1415/3600 +f 698/1415/3601 452/538/3602 456/543/3603 +f 456/543/3604 472/645/3605 698/1415/3606 +f 418/502/3607 409/493/3608 695/779/3609 +f 695/779/3610 696/780/3611 418/502/3612 +f 416/500/3613 407/491/3614 405/490/3615 +f 405/490/3616 415/499/3617 416/500/3618 +f 1269/478/3619 394/1414/3620 440/523/3621 +f 440/523/3622 396/480/3623 1269/478/3624 +f 537/621/3625 505/589/3626 506/590/3627 +f 506/590/3628 536/620/3629 537/621/3630 +f 537/621/3631 512/595/3632 508/591/3633 +f 508/591/3634 505/589/3635 537/621/3636 +f 435/518/3637 400/483/3638 396/480/3639 +f 396/480/3640 440/523/3641 435/518/3642 +f 695/779/3643 700/784/3644 699/783/3645 +f 699/783/3646 696/780/3647 695/779/3648 +f 491/575/3649 696/780/3650 699/783/3651 +f 699/783/3652 494/578/3653 491/575/3654 +f 700/784/3655 499/582/3656 494/578/3657 +f 494/578/3658 699/783/3659 700/784/3660 +f 503/2585/3661 499/582/3662 700/784/3663 +f 700/784/3664 695/779/3665 503/2585/3666 +f 601/1530/3667 1607/1540/3668 701/1539/3669 +f 701/1539/3670 548/637/3671 601/1530/3672 +f 548/637/3673 701/1539/3674 469/553/3675 +f 469/553/3676 470/552/3677 548/637/3678 +f 703/788/3679 702/789/3680 705/786/3681 +f 705/786/3682 704/787/3683 703/788/3684 +f 1129/792/3685 707/793/3686 706/790/3687 +f 706/790/3688 708/791/3689 1129/792/3690 +f 711/796/3691 710/797/3692 709/794/3693 +f 709/794/3694 712/795/3695 711/796/3696 +f 714/800/3697 713/801/3698 716/798/3699 +f 716/798/3700 715/799/3701 714/800/3702 +f 711/796/3703 718/804/3704 717/802/3705 +f 717/802/3706 719/803/3707 711/796/3708 +f 724/809/3709 723/810/3710 726/807/3711 +f 726/807/3712 725/808/3713 724/809/3714 +f 728/813/3715 727/814/3716 730/811/3717 +f 730/811/3718 729/812/3719 728/813/3720 +f 733/815/3721 732/816/3722 731/805/3723 +f 731/805/3724 734/806/3725 733/815/3726 +f 736/819/3727 735/820/3728 738/817/3729 +f 738/817/3730 737/818/3731 736/819/3732 +f 739/821/3733 731/805/3734 714/800/3735 +f 714/800/3736 709/794/3737 739/821/3738 +f 741/824/3739 738/817/3740 740/822/3741 +f 740/822/3742 742/823/3743 741/824/3744 +f 744/829/3745 743/830/3746 746/827/3747 +f 746/827/3748 745/828/3749 744/829/3750 +f 747/833/3751 750/834/3752 749/831/3753 +f 749/831/3754 748/832/3755 747/833/3756 +f 751/826/3757 737/818/3758 738/817/3759 +f 738/817/3760 752/825/3761 751/826/3762 +f 751/826/3763 752/825/3764 731/805/3765 +f 731/805/3766 732/816/3767 751/826/3768 +f 753/843/3769 733/844/3770 734/837/3771 +f 734/837/3772 754/838/3773 753/843/3774 +f 753/843/3775 754/838/3776 735/845/3777 +f 735/845/3778 736/846/3779 753/843/3780 +f 755/839/3781 758/840/3782 757/835/3783 +f 757/835/3784 756/836/3785 755/839/3786 +f 761/852/3787 760/853/3788 759/849/3789 +f 759/849/3790 762/850/3791 761/852/3792 +f 740/822/3793 764/842/3794 763/841/3795 +f 763/841/3796 742/823/3797 740/822/3798 +f 765/867/3799 766/868/3800 747/833/3801 +f 747/833/3802 748/832/3803 765/867/3804 +f 710/797/3805 767/847/3806 739/821/3807 +f 739/821/3808 709/794/3809 710/797/3810 +f 768/879/3811 769/880/3812 761/852/3813 +f 761/852/3814 762/850/3815 768/879/3816 +f 770/854/3817 721/855/3818 722/848/3819 +f 722/848/3820 771/851/3821 770/854/3822 +f 772/856/3823 720/857/3824 721/855/3825 +f 721/855/3826 770/854/3827 772/856/3828 +f 775/860/3829 774/861/3830 773/858/3831 +f 773/858/3832 776/859/3833 775/860/3834 +f 778/864/3835 777/865/3836 780/862/3837 +f 780/862/3838 779/863/3839 778/864/3840 +f 780/862/3841 777/865/3842 781/866/3843 +f 781/866/3844 782/869/3845 780/862/3846 +f 781/866/3847 774/861/3848 775/860/3849 +f 775/860/3850 782/869/3851 781/866/3852 +f 773/893/3853 783/894/3854 784/891/3855 +f 784/891/3856 776/892/3857 773/893/3858 +f 784/891/3859 783/894/3860 778/895/3861 +f 778/895/3862 779/896/3863 784/891/3864 +f 787/872/3865 786/873/3866 785/870/3867 +f 785/870/3868 788/871/3869 787/872/3870 +f 790/876/3871 789/877/3872 792/874/3873 +f 792/874/3874 791/875/3875 790/876/3876 +f 792/874/3877 789/877/3878 793/878/3879 +f 793/878/3880 794/881/3881 792/874/3882 +f 793/878/3883 786/873/3884 787/872/3885 +f 787/872/3886 794/881/3887 793/878/3888 +f 788/899/3889 785/905/3890 795/897/3891 +f 795/897/3892 796/898/3893 788/899/3894 +f 795/897/3895 790/907/3896 791/906/3897 +f 791/906/3898 796/898/3899 795/897/3900 +f 797/884/3901 800/885/3902 799/882/3903 +f 799/882/3904 798/883/3905 797/884/3906 +f 801/888/3907 804/889/3908 803/886/3909 +f 803/886/3910 802/887/3911 801/888/3912 +f 805/890/3913 806/900/3914 804/889/3915 +f 804/889/3916 801/888/3917 805/890/3918 +f 798/883/3919 799/882/3920 806/900/3921 +f 806/900/3922 805/890/3923 798/883/3924 +f 807/910/3925 810/911/3926 809/908/3927 +f 809/908/3928 808/909/3929 807/910/3930 +f 811/912/3931 812/913/3932 810/911/3933 +f 810/911/3934 807/910/3935 811/912/3936 +f 800/885/3937 773/858/3938 774/861/3939 +f 774/861/3940 799/882/3941 800/885/3942 +f 804/889/3943 777/865/3944 778/864/3945 +f 778/864/3946 803/886/3947 804/889/3948 +f 806/900/3949 781/866/3950 777/865/3951 +f 777/865/3952 804/889/3953 806/900/3954 +f 799/882/3955 774/861/3956 781/866/3957 +f 781/866/3958 806/900/3959 799/882/3960 +f 810/911/3961 814/915/3962 813/914/3963 +f 813/914/3964 809/908/3965 810/911/3966 +f 812/913/3967 815/916/3968 814/915/3969 +f 814/915/3970 810/911/3971 812/913/3972 +f 776/859/3973 817/902/3974 816/901/3975 +f 816/901/3976 775/860/3977 776/859/3978 +f 780/862/3979 819/904/3980 818/903/3981 +f 818/903/3982 779/863/3983 780/862/3984 +f 782/869/3985 820/935/3986 819/904/3987 +f 819/904/3988 780/862/3989 782/869/3990 +f 775/860/3991 816/901/3992 820/935/3993 +f 820/935/3994 782/869/3995 775/860/3996 +f 821/919/3997 824/920/3998 823/917/3999 +f 823/917/4000 822/918/4001 821/919/4002 +f 825/921/4003 826/922/4004 824/920/4005 +f 824/920/4006 821/919/4007 825/921/4008 +f 817/902/4009 785/870/4010 786/873/4011 +f 786/873/4012 816/901/4013 817/902/4014 +f 819/904/4015 789/877/4016 790/876/4017 +f 790/876/4018 818/903/4019 819/904/4020 +f 820/935/4021 793/878/4022 789/877/4023 +f 789/877/4024 819/904/4025 820/935/4026 +f 816/901/4027 786/873/4028 793/878/4029 +f 793/878/4030 820/935/4031 816/901/4032 +f 824/920/4033 828/924/4034 827/923/4035 +f 827/923/4036 823/917/4037 824/920/4038 +f 826/922/4039 829/925/4040 828/924/4041 +f 828/924/4042 824/920/4043 826/922/4044 +f 807/910/4045 808/909/4046 797/926/4047 +f 797/926/4048 830/927/4049 807/910/4050 +f 811/912/4051 807/910/4052 830/927/4053 +f 830/927/4054 802/928/4055 811/912/4056 +f 812/913/4057 811/912/4058 802/928/4059 +f 802/928/4060 803/929/4061 812/913/4062 +f 815/916/4063 812/913/4064 803/929/4065 +f 803/929/4066 778/895/4067 815/916/4068 +f 814/915/4069 815/916/4070 778/895/4071 +f 778/895/4072 783/894/4073 814/915/4074 +f 813/914/4075 814/915/4076 783/894/4077 +f 783/894/4078 773/893/4079 813/914/4080 +f 809/908/4081 813/914/4082 773/893/4083 +f 773/893/4084 800/930/4085 809/908/4086 +f 808/909/4087 809/908/4088 800/930/4089 +f 800/930/4090 797/926/4091 808/909/4092 +f 821/919/4093 822/918/4094 776/892/4095 +f 776/892/4096 784/891/4097 821/919/4098 +f 825/921/4099 821/919/4100 784/891/4101 +f 784/891/4102 779/896/4103 825/921/4104 +f 826/922/4105 825/921/4106 779/896/4107 +f 779/896/4108 818/931/4109 826/922/4110 +f 829/925/4111 826/922/4112 818/931/4113 +f 818/931/4114 790/907/4115 829/925/4116 +f 828/924/4117 829/925/4118 790/907/4119 +f 790/907/4120 795/897/4121 828/924/4122 +f 827/923/4123 828/924/4124 795/897/4125 +f 795/897/4126 785/905/4127 827/923/4128 +f 823/917/4129 827/923/4130 785/905/4131 +f 785/905/4132 817/932/4133 823/917/4134 +f 822/918/4135 823/917/4136 817/932/4137 +f 817/932/4138 776/892/4139 822/918/4140 +f 772/856/4141 787/872/4142 788/871/4143 +f 788/871/4144 720/857/4145 772/856/4146 +f 791/875/4147 792/874/4148 771/851/4149 +f 771/851/4150 722/848/4151 791/875/4152 +f 771/851/4153 792/874/4154 794/881/4155 +f 794/881/4156 770/854/4157 771/851/4158 +f 794/881/4159 787/872/4160 772/856/4161 +f 772/856/4162 770/854/4163 794/881/4164 +f 832/948/4165 831/949/4166 834/933/4167 +f 834/933/4168 833/934/4169 832/948/4170 +f 831/949/4171 835/964/4172 836/963/4173 +f 836/963/4174 834/933/4175 831/949/4176 +f 838/987/4177 837/988/4178 721/975/4179 +f 721/975/4180 720/976/4181 838/987/4182 +f 839/989/4183 838/987/4184 720/976/4185 +f 720/976/4186 788/899/4187 839/989/4188 +f 840/990/4189 839/989/4190 788/899/4191 +f 788/899/4192 796/898/4193 840/990/4194 +f 841/991/4195 840/990/4196 796/898/4197 +f 796/898/4198 791/906/4199 841/991/4200 +f 842/993/4201 841/991/4202 791/906/4203 +f 791/906/4204 722/992/4205 842/993/4206 +f 837/988/4207 842/993/4208 722/992/4209 +f 722/992/4210 721/975/4211 837/988/4212 +f 833/934/4213 834/933/4214 837/988/4215 +f 837/988/4216 838/987/4217 833/934/4218 +f 832/948/4219 833/934/4220 838/987/4221 +f 838/987/4222 839/989/4223 832/948/4224 +f 831/949/4225 832/948/4226 839/989/4227 +f 839/989/4228 840/990/4229 831/949/4230 +f 835/964/4231 831/949/4232 840/990/4233 +f 840/990/4234 841/991/4235 835/964/4236 +f 836/963/4237 835/964/4238 841/991/4239 +f 841/991/4240 842/993/4241 836/963/4242 +f 834/933/4243 836/963/4244 842/993/4245 +f 842/993/4246 837/988/4247 834/933/4248 +f 845/1001/4249 844/1002/4250 843/994/4251 +f 843/994/4252 846/995/4253 845/1001/4254 +f 848/1003/4255 847/1004/4256 744/829/4257 +f 744/829/4258 745/828/4259 848/1003/4260 +f 850/1005/4261 849/1006/4262 845/1001/4263 +f 845/1001/4264 846/995/4265 850/1005/4266 +f 714/800/4267 731/805/4268 752/825/4269 +f 752/825/4270 713/801/4271 714/800/4272 +f 752/825/4273 738/817/4274 741/824/4275 +f 741/824/4276 713/801/4277 752/825/4278 +f 757/835/4279 767/847/4280 710/797/4281 +f 710/797/4282 756/836/4283 757/835/4284 +f 755/839/4285 851/937/4286 852/936/4287 +f 852/936/4288 758/840/4289 755/839/4290 +f 853/939/4291 763/841/4292 764/842/4293 +f 764/842/4294 854/938/4295 853/939/4296 +f 732/816/4297 733/815/4298 797/884/4299 +f 797/884/4300 798/883/4301 732/816/4302 +f 802/887/4303 736/819/4304 737/818/4305 +f 737/818/4306 801/888/4307 802/887/4308 +f 737/818/4309 751/826/4310 805/890/4311 +f 805/890/4312 801/888/4313 737/818/4314 +f 805/890/4315 751/826/4316 732/816/4317 +f 732/816/4318 798/883/4319 805/890/4320 +f 733/844/4321 753/843/4322 830/927/4323 +f 830/927/4324 797/926/4325 733/844/4326 +f 830/927/4327 753/843/4328 736/846/4329 +f 736/846/4330 802/928/4331 830/927/4332 +f 859/941/4333 858/942/4334 767/847/4335 +f 767/847/4336 860/940/4337 859/941/4338 +f 861/944/4339 734/806/4340 731/805/4341 +f 731/805/4342 862/943/4343 861/944/4344 +f 863/945/4345 862/943/4346 731/805/4347 +f 731/805/4348 739/821/4349 863/945/4350 +f 863/945/4351 739/821/4352 767/847/4353 +f 767/847/4354 858/942/4355 863/945/4356 +f 865/1008/4357 864/1009/4358 734/837/4359 +f 734/837/4360 861/1007/4361 865/1008/4362 +f 866/950/4363 856/951/4364 857/946/4365 +f 857/946/4366 867/947/4367 866/950/4368 +f 868/952/4369 855/953/4370 856/951/4371 +f 856/951/4372 866/950/4373 868/952/4374 +f 871/956/4375 870/957/4376 869/954/4377 +f 869/954/4378 872/955/4379 871/956/4380 +f 874/960/4381 873/961/4382 876/958/4383 +f 876/958/4384 875/959/4385 874/960/4386 +f 876/958/4387 873/961/4388 877/962/4389 +f 877/962/4390 878/965/4391 876/958/4392 +f 877/962/4393 870/957/4394 871/956/4395 +f 871/956/4396 878/965/4397 877/962/4398 +f 869/1012/4399 879/1013/4400 880/1010/4401 +f 880/1010/4402 872/1011/4403 869/1012/4404 +f 880/1010/4405 879/1013/4406 874/1014/4407 +f 874/1014/4408 875/1015/4409 880/1010/4410 +f 883/968/4411 882/969/4412 881/966/4413 +f 881/966/4414 884/967/4415 883/968/4416 +f 886/972/4417 885/973/4418 888/970/4419 +f 888/970/4420 887/971/4421 886/972/4422 +f 888/970/4423 885/973/4424 889/974/4425 +f 889/974/4426 890/977/4427 888/970/4428 +f 889/974/4429 882/969/4430 883/968/4431 +f 883/968/4432 890/977/4433 889/974/4434 +f 884/1018/4435 881/1019/4436 891/1016/4437 +f 891/1016/4438 892/1017/4439 884/1018/4440 +f 891/1016/4441 886/1021/4442 887/1020/4443 +f 887/1020/4444 892/1017/4445 891/1016/4446 +f 893/980/4447 896/981/4448 895/978/4449 +f 895/978/4450 894/979/4451 893/980/4452 +f 897/984/4453 900/985/4454 899/982/4455 +f 899/982/4456 898/983/4457 897/984/4458 +f 901/986/4459 902/996/4460 900/985/4461 +f 900/985/4462 897/984/4463 901/986/4464 +f 894/979/4465 895/978/4466 902/996/4467 +f 902/996/4468 901/986/4469 894/979/4470 +f 903/1032/4471 906/1046/4472 905/1022/4473 +f 905/1022/4474 904/1031/4475 903/1032/4476 +f 907/1047/4477 908/1058/4478 906/1046/4479 +f 906/1046/4480 903/1032/4481 907/1047/4482 +f 896/981/4483 869/954/4484 870/957/4485 +f 870/957/4486 895/978/4487 896/981/4488 +f 900/985/4489 873/961/4490 874/960/4491 +f 874/960/4492 899/982/4493 900/985/4494 +f 902/996/4495 877/962/4496 873/961/4497 +f 873/961/4498 900/985/4499 902/996/4500 +f 895/978/4501 870/957/4502 877/962/4503 +f 877/962/4504 902/996/4505 895/978/4506 +f 906/1046/4507 910/1070/4508 909/1059/4509 +f 909/1059/4510 905/1022/4511 906/1046/4512 +f 908/1058/4513 911/1071/4514 910/1070/4515 +f 910/1070/4516 906/1046/4517 908/1058/4518 +f 872/955/4519 913/998/4520 912/997/4521 +f 912/997/4522 871/956/4523 872/955/4524 +f 876/958/4525 915/1000/4526 914/999/4527 +f 914/999/4528 875/959/4529 876/958/4530 +f 878/965/4531 916/1023/4532 915/1000/4533 +f 915/1000/4534 876/958/4535 878/965/4536 +f 871/956/4537 912/997/4538 916/1023/4539 +f 916/1023/4540 878/965/4541 871/956/4542 +f 917/1074/4543 920/1075/4544 919/1072/4545 +f 919/1072/4546 918/1073/4547 917/1074/4548 +f 921/1076/4549 922/1077/4550 920/1075/4551 +f 920/1075/4552 917/1074/4553 921/1076/4554 +f 913/998/4555 881/966/4556 882/969/4557 +f 882/969/4558 912/997/4559 913/998/4560 +f 915/1000/4561 885/973/4562 886/972/4563 +f 886/972/4564 914/999/4565 915/1000/4566 +f 916/1023/4567 889/974/4568 885/973/4569 +f 885/973/4570 915/1000/4571 916/1023/4572 +f 912/997/4573 882/969/4574 889/974/4575 +f 889/974/4576 916/1023/4577 912/997/4578 +f 920/1075/4579 924/1084/4580 923/1078/4581 +f 923/1078/4582 919/1072/4583 920/1075/4584 +f 922/1077/4585 925/1085/4586 924/1084/4587 +f 924/1084/4588 920/1075/4589 922/1077/4590 +f 903/1032/4591 904/1031/4592 893/1086/4593 +f 893/1086/4594 926/1087/4595 903/1032/4596 +f 907/1047/4597 903/1032/4598 926/1087/4599 +f 926/1087/4600 898/1088/4601 907/1047/4602 +f 908/1058/4603 907/1047/4604 898/1088/4605 +f 898/1088/4606 899/1089/4607 908/1058/4608 +f 911/1071/4609 908/1058/4610 899/1089/4611 +f 899/1089/4612 874/1014/4613 911/1071/4614 +f 910/1070/4615 911/1071/4616 874/1014/4617 +f 874/1014/4618 879/1013/4619 910/1070/4620 +f 909/1059/4621 910/1070/4622 879/1013/4623 +f 879/1013/4624 869/1012/4625 909/1059/4626 +f 905/1022/4627 909/1059/4628 869/1012/4629 +f 869/1012/4630 896/1090/4631 905/1022/4632 +f 904/1031/4633 905/1022/4634 896/1090/4635 +f 896/1090/4636 893/1086/4637 904/1031/4638 +f 917/1074/4639 918/1073/4640 872/1011/4641 +f 872/1011/4642 880/1010/4643 917/1074/4644 +f 921/1076/4645 917/1074/4646 880/1010/4647 +f 880/1010/4648 875/1015/4649 921/1076/4650 +f 922/1077/4651 921/1076/4652 875/1015/4653 +f 875/1015/4654 914/1091/4655 922/1077/4656 +f 925/1085/4657 922/1077/4658 914/1091/4659 +f 914/1091/4660 886/1021/4661 925/1085/4662 +f 924/1084/4663 925/1085/4664 886/1021/4665 +f 886/1021/4666 891/1016/4667 924/1084/4668 +f 923/1078/4669 924/1084/4670 891/1016/4671 +f 891/1016/4672 881/1019/4673 923/1078/4674 +f 919/1072/4675 923/1078/4676 881/1019/4677 +f 881/1019/4678 913/1092/4679 919/1072/4680 +f 918/1073/4681 919/1072/4682 913/1092/4683 +f 913/1092/4684 872/1011/4685 918/1073/4686 +f 868/952/4687 883/968/4688 884/967/4689 +f 884/967/4690 855/953/4691 868/952/4692 +f 887/971/4693 888/970/4694 867/947/4695 +f 867/947/4696 857/946/4697 887/971/4698 +f 867/947/4699 888/970/4700 890/977/4701 +f 890/977/4702 866/950/4703 867/947/4704 +f 890/977/4705 883/968/4706 868/952/4707 +f 868/952/4708 866/950/4709 890/977/4710 +f 928/1095/4711 927/1096/4712 930/1093/4713 +f 930/1093/4714 929/1094/4715 928/1095/4716 +f 927/1096/4717 931/1098/4718 932/1097/4719 +f 932/1097/4720 930/1093/4721 927/1096/4722 +f 934/1101/4723 933/1102/4724 856/1099/4725 +f 856/1099/4726 855/1100/4727 934/1101/4728 +f 935/1103/4729 934/1101/4730 855/1100/4731 +f 855/1100/4732 884/1018/4733 935/1103/4734 +f 936/1104/4735 935/1103/4736 884/1018/4737 +f 884/1018/4738 892/1017/4739 936/1104/4740 +f 937/1105/4741 936/1104/4742 892/1017/4743 +f 892/1017/4744 887/1020/4745 937/1105/4746 +f 938/1115/4747 937/1105/4748 887/1020/4749 +f 887/1020/4750 857/1114/4751 938/1115/4752 +f 933/1102/4753 938/1115/4754 857/1114/4755 +f 857/1114/4756 856/1099/4757 933/1102/4758 +f 929/1094/4759 930/1093/4760 933/1102/4761 +f 933/1102/4762 934/1101/4763 929/1094/4764 +f 928/1095/4765 929/1094/4766 934/1101/4767 +f 934/1101/4768 935/1103/4769 928/1095/4770 +f 927/1096/4771 928/1095/4772 935/1103/4773 +f 935/1103/4774 936/1104/4775 927/1096/4776 +f 931/1098/4777 927/1096/4778 936/1104/4779 +f 936/1104/4780 937/1105/4781 931/1098/4782 +f 932/1097/4783 931/1098/4784 937/1105/4785 +f 937/1105/4786 938/1115/4787 932/1097/4788 +f 930/1093/4789 932/1097/4790 938/1115/4791 +f 938/1115/4792 933/1102/4793 930/1093/4794 +f 858/942/4795 859/941/4796 893/980/4797 +f 893/980/4798 894/979/4799 858/942/4800 +f 898/983/4801 861/944/4802 862/943/4803 +f 862/943/4804 897/984/4805 898/983/4806 +f 862/943/4807 863/945/4808 901/986/4809 +f 901/986/4810 897/984/4811 862/943/4812 +f 901/986/4813 863/945/4814 858/942/4815 +f 858/942/4816 894/979/4817 901/986/4818 +f 859/1129/4819 865/1008/4820 926/1087/4821 +f 926/1087/4822 893/1086/4823 859/1129/4824 +f 926/1087/4825 865/1008/4826 861/1007/4827 +f 861/1007/4828 898/1088/4829 926/1087/4830 +f 943/1024/4831 942/1025/4832 758/840/4833 +f 758/840/4834 852/936/4835 943/1024/4836 +f 944/1027/4837 860/940/4838 767/847/4839 +f 767/847/4840 945/1026/4841 944/1027/4842 +f 946/1028/4843 945/1026/4844 767/847/4845 +f 767/847/4846 757/835/4847 946/1028/4848 +f 946/1028/4849 757/835/4850 758/840/4851 +f 758/840/4852 942/1025/4853 946/1028/4854 +f 947/1142/4855 943/1153/4856 852/1130/4857 +f 852/1130/4858 948/1141/4859 947/1142/4860 +f 947/1142/4861 948/1141/4862 860/1154/4863 +f 860/1154/4864 944/1155/4865 947/1142/4866 +f 949/1033/4867 940/1034/4868 941/1029/4869 +f 941/1029/4870 950/1030/4871 949/1033/4872 +f 951/1035/4873 939/1036/4874 940/1034/4875 +f 940/1034/4876 949/1033/4877 951/1035/4878 +f 954/1039/4879 953/1040/4880 952/1037/4881 +f 952/1037/4882 955/1038/4883 954/1039/4884 +f 957/1043/4885 956/1044/4886 959/1041/4887 +f 959/1041/4888 958/1042/4889 957/1043/4890 +f 959/1041/4891 956/1044/4892 960/1045/4893 +f 960/1045/4894 961/1048/4895 959/1041/4896 +f 960/1045/4897 953/1040/4898 954/1039/4899 +f 954/1039/4900 961/1048/4901 960/1045/4902 +f 952/1158/4903 962/1159/4904 963/1156/4905 +f 963/1156/4906 955/1157/4907 952/1158/4908 +f 963/1156/4909 962/1159/4910 957/1160/4911 +f 957/1160/4912 958/1161/4913 963/1156/4914 +f 966/1051/4915 965/1052/4916 964/1049/4917 +f 964/1049/4918 967/1050/4919 966/1051/4920 +f 969/1055/4921 968/1056/4922 971/1053/4923 +f 971/1053/4924 970/1054/4925 969/1055/4926 +f 971/1053/4927 968/1056/4928 972/1057/4929 +f 972/1057/4930 973/1060/4931 971/1053/4932 +f 972/1057/4933 965/1052/4934 966/1051/4935 +f 966/1051/4936 973/1060/4937 972/1057/4938 +f 967/1169/4939 964/1170/4940 974/1167/4941 +f 974/1167/4942 975/1168/4943 967/1169/4944 +f 974/1167/4945 969/1172/4946 970/1171/4947 +f 970/1171/4948 975/1168/4949 974/1167/4950 +f 976/1063/4951 979/1064/4952 978/1061/4953 +f 978/1061/4954 977/1062/4955 976/1063/4956 +f 980/1067/4957 983/1068/4958 982/1065/4959 +f 982/1065/4960 981/1066/4961 980/1067/4962 +f 984/1069/4963 985/1079/4964 983/1068/4965 +f 983/1068/4966 980/1067/4967 984/1069/4968 +f 977/1062/4969 978/1061/4970 985/1079/4971 +f 985/1079/4972 984/1069/4973 977/1062/4974 +f 986/1175/4975 989/1176/4976 988/1173/4977 +f 988/1173/4978 987/1174/4979 986/1175/4980 +f 990/1177/4981 991/1178/4982 989/1176/4983 +f 989/1176/4984 986/1175/4985 990/1177/4986 +f 979/1064/4987 952/1037/4988 953/1040/4989 +f 953/1040/4990 978/1061/4991 979/1064/4992 +f 983/1068/4993 956/1044/4994 957/1043/4995 +f 957/1043/4996 982/1065/4997 983/1068/4998 +f 985/1079/4999 960/1045/5000 956/1044/5001 +f 956/1044/5002 983/1068/5003 985/1079/5004 +f 978/1061/5005 953/1040/5006 960/1045/5007 +f 960/1045/5008 985/1079/5009 978/1061/5010 +f 989/1176/5011 993/1180/5012 992/1179/5013 +f 992/1179/5014 988/1173/5015 989/1176/5016 +f 991/1178/5017 994/1181/5018 993/1180/5019 +f 993/1180/5020 989/1176/5021 991/1178/5022 +f 955/1038/5023 996/1081/5024 995/1080/5025 +f 995/1080/5026 954/1039/5027 955/1038/5028 +f 959/1041/5029 998/1083/5030 997/1082/5031 +f 997/1082/5032 958/1042/5033 959/1041/5034 +f 961/1048/5035 999/1106/5036 998/1083/5037 +f 998/1083/5038 959/1041/5039 961/1048/5040 +f 954/1039/5041 995/1080/5042 999/1106/5043 +f 999/1106/5044 961/1048/5045 954/1039/5046 +f 1000/1184/5047 1003/1185/5048 1002/1182/5049 +f 1002/1182/5050 1001/1183/5051 1000/1184/5052 +f 1004/1186/5053 1005/1187/5054 1003/1185/5055 +f 1003/1185/5056 1000/1184/5057 1004/1186/5058 +f 996/1081/5059 964/1049/5060 965/1052/5061 +f 965/1052/5062 995/1080/5063 996/1081/5064 +f 998/1083/5065 968/1056/5066 969/1055/5067 +f 969/1055/5068 997/1082/5069 998/1083/5070 +f 999/1106/5071 972/1057/5072 968/1056/5073 +f 968/1056/5074 998/1083/5075 999/1106/5076 +f 995/1080/5077 965/1052/5078 972/1057/5079 +f 972/1057/5080 999/1106/5081 995/1080/5082 +f 1003/1185/5083 1007/1189/5084 1006/1188/5085 +f 1006/1188/5086 1002/1182/5087 1003/1185/5088 +f 1005/1187/5089 1008/1190/5090 1007/1189/5091 +f 1007/1189/5092 1003/1185/5093 1005/1187/5094 +f 986/1175/5095 987/1174/5096 976/1191/5097 +f 976/1191/5098 1009/1192/5099 986/1175/5100 +f 990/1177/5101 986/1175/5102 1009/1192/5103 +f 1009/1192/5104 981/1193/5105 990/1177/5106 +f 991/1178/5107 990/1177/5108 981/1193/5109 +f 981/1193/5110 982/1197/5111 991/1178/5112 +f 994/1181/5113 991/1178/5114 982/1197/5115 +f 982/1197/5116 957/1160/5117 994/1181/5118 +f 993/1180/5119 994/1181/5120 957/1160/5121 +f 957/1160/5122 962/1159/5123 993/1180/5124 +f 992/1179/5125 993/1180/5126 962/1159/5127 +f 962/1159/5128 952/1158/5129 992/1179/5130 +f 988/1173/5131 992/1179/5132 952/1158/5133 +f 952/1158/5134 979/1198/5135 988/1173/5136 +f 987/1174/5137 988/1173/5138 979/1198/5139 +f 979/1198/5140 976/1191/5141 987/1174/5142 +f 1000/1184/5143 1001/1183/5144 955/1157/5145 +f 955/1157/5146 963/1156/5147 1000/1184/5148 +f 1004/1186/5149 1000/1184/5150 963/1156/5151 +f 963/1156/5152 958/1161/5153 1004/1186/5154 +f 1005/1187/5155 1004/1186/5156 958/1161/5157 +f 958/1161/5158 997/1199/5159 1005/1187/5160 +f 1008/1190/5161 1005/1187/5162 997/1199/5163 +f 997/1199/5164 969/1172/5165 1008/1190/5166 +f 1007/1189/5167 1008/1190/5168 969/1172/5169 +f 969/1172/5170 974/1167/5171 1007/1189/5172 +f 1006/1188/5173 1007/1189/5174 974/1167/5175 +f 974/1167/5176 964/1170/5177 1006/1188/5178 +f 1002/1182/5179 1006/1188/5180 964/1170/5181 +f 964/1170/5182 996/1222/5183 1002/1182/5184 +f 1001/1183/5185 1002/1182/5186 996/1222/5187 +f 996/1222/5188 955/1157/5189 1001/1183/5190 +f 951/1035/5191 966/1051/5192 967/1050/5193 +f 967/1050/5194 939/1036/5195 951/1035/5196 +f 970/1054/5197 971/1053/5198 950/1030/5199 +f 950/1030/5200 941/1029/5201 970/1054/5202 +f 950/1030/5203 971/1053/5204 973/1060/5205 +f 973/1060/5206 949/1033/5207 950/1030/5208 +f 973/1060/5209 966/1051/5210 951/1035/5211 +f 951/1035/5212 949/1033/5213 973/1060/5214 +f 1011/1227/5215 1010/1228/5216 1013/1223/5217 +f 1013/1223/5218 1012/1226/5219 1011/1227/5220 +f 1010/1228/5221 1014/1230/5222 1015/1229/5223 +f 1015/1229/5224 1013/1223/5225 1010/1228/5226 +f 1017/1234/5227 1016/1235/5228 940/1231/5229 +f 940/1231/5230 939/1233/5231 1017/1234/5232 +f 1018/1236/5233 1017/1234/5234 939/1233/5235 +f 939/1233/5236 967/1169/5237 1018/1236/5238 +f 1019/1237/5239 1018/1236/5240 967/1169/5241 +f 967/1169/5242 975/1168/5243 1019/1237/5244 +f 1020/1242/5245 1019/1237/5246 975/1168/5247 +f 975/1168/5248 970/1171/5249 1020/1242/5250 +f 1021/1244/5251 1020/1242/5252 970/1171/5253 +f 970/1171/5254 941/1243/5255 1021/1244/5256 +f 1016/1235/5257 1021/1244/5258 941/1243/5259 +f 941/1243/5260 940/1231/5261 1016/1235/5262 +f 1012/1226/5263 1013/1223/5264 1016/1235/5265 +f 1016/1235/5266 1017/1234/5267 1012/1226/5268 +f 1011/1227/5269 1012/1226/5270 1017/1234/5271 +f 1017/1234/5272 1018/1236/5273 1011/1227/5274 +f 1010/1228/5275 1011/1227/5276 1018/1236/5277 +f 1018/1236/5278 1019/1237/5279 1010/1228/5280 +f 1014/1230/5281 1010/1228/5282 1019/1237/5283 +f 1019/1237/5284 1020/1242/5285 1014/1230/5286 +f 1015/1229/5287 1014/1230/5288 1020/1242/5289 +f 1020/1242/5290 1021/1244/5291 1015/1229/5292 +f 1013/1223/5293 1015/1229/5294 1021/1244/5295 +f 1021/1244/5296 1016/1235/5297 1013/1223/5298 +f 942/1025/5299 943/1024/5300 976/1063/5301 +f 976/1063/5302 977/1062/5303 942/1025/5304 +f 981/1066/5305 944/1027/5306 945/1026/5307 +f 945/1026/5308 980/1067/5309 981/1066/5310 +f 945/1026/5311 946/1028/5312 984/1069/5313 +f 984/1069/5314 980/1067/5315 945/1026/5316 +f 984/1069/5317 946/1028/5318 942/1025/5319 +f 942/1025/5320 977/1062/5321 984/1069/5322 +f 943/1153/5323 947/1142/5324 1009/1192/5325 +f 1009/1192/5326 976/1191/5327 943/1153/5328 +f 1009/1192/5329 947/1142/5330 944/1155/5331 +f 944/1155/5332 981/1193/5333 1009/1192/5334 +f 1026/1107/5335 1025/1108/5336 738/817/5337 +f 738/817/5338 735/820/5339 1026/1107/5340 +f 1027/1110/5341 854/938/5342 764/842/5343 +f 764/842/5344 1028/1109/5345 1027/1110/5346 +f 1029/1111/5347 1028/1109/5348 764/842/5349 +f 764/842/5350 740/822/5351 1029/1111/5352 +f 1029/1111/5353 740/822/5354 738/817/5355 +f 738/817/5356 1025/1108/5357 1029/1111/5358 +f 1030/1246/5359 1026/1247/5360 735/845/5361 +f 735/845/5362 1031/1245/5363 1030/1246/5364 +f 1030/1246/5365 1031/1245/5366 854/1253/5367 +f 854/1253/5368 1027/1254/5369 1030/1246/5370 +f 1032/1116/5371 1023/1117/5372 1024/1112/5373 +f 1024/1112/5374 1033/1113/5375 1032/1116/5376 +f 1034/1118/5377 1022/1119/5378 1023/1117/5379 +f 1023/1117/5380 1032/1116/5381 1034/1118/5382 +f 1037/1122/5383 1036/1123/5384 1035/1120/5385 +f 1035/1120/5386 1038/1121/5387 1037/1122/5388 +f 1040/1126/5389 1039/1127/5390 1042/1124/5391 +f 1042/1124/5392 1041/1125/5393 1040/1126/5394 +f 1042/1124/5395 1039/1127/5396 1043/1128/5397 +f 1043/1128/5398 1044/1131/5399 1042/1124/5400 +f 1043/1128/5401 1036/1123/5402 1037/1122/5403 +f 1037/1122/5404 1044/1131/5405 1043/1128/5406 +f 1035/1257/5407 1045/1258/5408 1046/1255/5409 +f 1046/1255/5410 1038/1256/5411 1035/1257/5412 +f 1046/1255/5413 1045/1258/5414 1040/1260/5415 +f 1040/1260/5416 1041/1261/5417 1046/1255/5418 +f 1049/1134/5419 1048/1135/5420 1047/1132/5421 +f 1047/1132/5422 1050/1133/5423 1049/1134/5424 +f 1052/1138/5425 1051/1139/5426 1054/1136/5427 +f 1054/1136/5428 1053/1137/5429 1052/1138/5430 +f 1054/1136/5431 1051/1139/5432 1055/1140/5433 +f 1055/1140/5434 1056/1143/5435 1054/1136/5436 +f 1055/1140/5437 1048/1135/5438 1049/1134/5439 +f 1049/1134/5440 1056/1143/5441 1055/1140/5442 +f 1050/1264/5443 1047/1265/5444 1057/1262/5445 +f 1057/1262/5446 1058/1263/5447 1050/1264/5448 +f 1057/1262/5449 1052/1267/5450 1053/1266/5451 +f 1053/1266/5452 1058/1263/5453 1057/1262/5454 +f 1059/1146/5455 1062/1147/5456 1061/1144/5457 +f 1061/1144/5458 1060/1145/5459 1059/1146/5460 +f 1063/1150/5461 1066/1151/5462 1065/1148/5463 +f 1065/1148/5464 1064/1149/5465 1063/1150/5466 +f 1067/1152/5467 1068/1162/5468 1066/1151/5469 +f 1066/1151/5470 1063/1150/5471 1067/1152/5472 +f 1060/1145/5473 1061/1144/5474 1068/1162/5475 +f 1068/1162/5476 1067/1152/5477 1060/1145/5478 +f 1069/1278/5479 1072/1279/5480 1071/1268/5481 +f 1071/1268/5482 1070/1269/5483 1069/1278/5484 +f 1073/1280/5485 1074/1281/5486 1072/1279/5487 +f 1072/1279/5488 1069/1278/5489 1073/1280/5490 +f 1062/1147/5491 1035/1120/5492 1036/1123/5493 +f 1036/1123/5494 1061/1144/5495 1062/1147/5496 +f 1066/1151/5497 1039/1127/5498 1040/1126/5499 +f 1040/1126/5500 1065/1148/5501 1066/1151/5502 +f 1068/1162/5503 1043/1128/5504 1039/1127/5505 +f 1039/1127/5506 1066/1151/5507 1068/1162/5508 +f 1061/1144/5509 1036/1123/5510 1043/1128/5511 +f 1043/1128/5512 1068/1162/5513 1061/1144/5514 +f 1072/1279/5515 1076/1283/5516 1075/1282/5517 +f 1075/1282/5518 1071/1268/5519 1072/1279/5520 +f 1074/1281/5521 1077/1284/5522 1076/1283/5523 +f 1076/1283/5524 1072/1279/5525 1074/1281/5526 +f 1038/1121/5527 1079/1164/5528 1078/1163/5529 +f 1078/1163/5530 1037/1122/5531 1038/1121/5532 +f 1042/1124/5533 1081/1166/5534 1080/1165/5535 +f 1080/1165/5536 1041/1125/5537 1042/1124/5538 +f 1044/1131/5539 1082/1194/5540 1081/1166/5541 +f 1081/1166/5542 1042/1124/5543 1044/1131/5544 +f 1037/1122/5545 1078/1163/5546 1082/1194/5547 +f 1082/1194/5548 1044/1131/5549 1037/1122/5550 +f 1083/1290/5551 1086/1291/5552 1085/1285/5553 +f 1085/1285/5554 1084/1289/5555 1083/1290/5556 +f 1087/1292/5557 1088/1299/5558 1086/1291/5559 +f 1086/1291/5560 1083/1290/5561 1087/1292/5562 +f 1079/1164/5563 1047/1132/5564 1048/1135/5565 +f 1048/1135/5566 1078/1163/5567 1079/1164/5568 +f 1081/1166/5569 1051/1139/5570 1052/1138/5571 +f 1052/1138/5572 1080/1165/5573 1081/1166/5574 +f 1082/1194/5575 1055/1140/5576 1051/1139/5577 +f 1051/1139/5578 1081/1166/5579 1082/1194/5580 +f 1078/1163/5581 1048/1135/5582 1055/1140/5583 +f 1055/1140/5584 1082/1194/5585 1078/1163/5586 +f 1086/1291/5587 1090/1307/5588 1089/1306/5589 +f 1089/1306/5590 1085/1285/5591 1086/1291/5592 +f 1088/1299/5593 1091/1308/5594 1090/1307/5595 +f 1090/1307/5596 1086/1291/5597 1088/1299/5598 +f 1069/1278/5599 1070/1269/5600 1059/1309/5601 +f 1059/1309/5602 1092/1310/5603 1069/1278/5604 +f 1073/1280/5605 1069/1278/5606 1092/1310/5607 +f 1092/1310/5608 1064/1311/5609 1073/1280/5610 +f 1074/1281/5611 1073/1280/5612 1064/1311/5613 +f 1064/1311/5614 1065/1312/5615 1074/1281/5616 +f 1077/1284/5617 1074/1281/5618 1065/1312/5619 +f 1065/1312/5620 1040/1260/5621 1077/1284/5622 +f 1076/1283/5623 1077/1284/5624 1040/1260/5625 +f 1040/1260/5626 1045/1258/5627 1076/1283/5628 +f 1075/1282/5629 1076/1283/5630 1045/1258/5631 +f 1045/1258/5632 1035/1257/5633 1075/1282/5634 +f 1071/1268/5635 1075/1282/5636 1035/1257/5637 +f 1035/1257/5638 1062/1313/5639 1071/1268/5640 +f 1070/1269/5641 1071/1268/5642 1062/1313/5643 +f 1062/1313/5644 1059/1309/5645 1070/1269/5646 +f 1083/1290/5647 1084/1289/5648 1038/1256/5649 +f 1038/1256/5650 1046/1255/5651 1083/1290/5652 +f 1087/1292/5653 1083/1290/5654 1046/1255/5655 +f 1046/1255/5656 1041/1261/5657 1087/1292/5658 +f 1088/1299/5659 1087/1292/5660 1041/1261/5661 +f 1041/1261/5662 1080/1314/5663 1088/1299/5664 +f 1091/1308/5665 1088/1299/5666 1080/1314/5667 +f 1080/1314/5668 1052/1267/5669 1091/1308/5670 +f 1090/1307/5671 1091/1308/5672 1052/1267/5673 +f 1052/1267/5674 1057/1262/5675 1090/1307/5676 +f 1089/1306/5677 1090/1307/5678 1057/1262/5679 +f 1057/1262/5680 1047/1265/5681 1089/1306/5682 +f 1085/1285/5683 1089/1306/5684 1047/1265/5685 +f 1047/1265/5686 1079/1315/5687 1085/1285/5688 +f 1084/1289/5689 1085/1285/5690 1079/1315/5691 +f 1079/1315/5692 1038/1256/5693 1084/1289/5694 +f 1034/1118/5695 1049/1134/5696 1050/1133/5697 +f 1050/1133/5698 1022/1119/5699 1034/1118/5700 +f 1053/1137/5701 1054/1136/5702 1033/1113/5703 +f 1033/1113/5704 1024/1112/5705 1053/1137/5706 +f 1033/1113/5707 1054/1136/5708 1056/1143/5709 +f 1056/1143/5710 1032/1116/5711 1033/1113/5712 +f 1056/1143/5713 1049/1134/5714 1034/1118/5715 +f 1034/1118/5716 1032/1116/5717 1056/1143/5718 +f 1094/1318/5719 1093/1319/5720 1096/1316/5721 +f 1096/1316/5722 1095/1317/5723 1094/1318/5724 +f 1093/1319/5725 1097/1321/5726 1098/1320/5727 +f 1098/1320/5728 1096/1316/5729 1093/1319/5730 +f 1100/1324/5731 1099/1325/5732 1023/1322/5733 +f 1023/1322/5734 1022/1323/5735 1100/1324/5736 +f 1101/1326/5737 1100/1324/5738 1022/1323/5739 +f 1022/1323/5740 1050/1264/5741 1101/1326/5742 +f 1102/1327/5743 1101/1326/5744 1050/1264/5745 +f 1050/1264/5746 1058/1263/5747 1102/1327/5748 +f 1103/1328/5749 1102/1327/5750 1058/1263/5751 +f 1058/1263/5752 1053/1266/5753 1103/1328/5754 +f 1104/1330/5755 1103/1328/5756 1053/1266/5757 +f 1053/1266/5758 1024/1329/5759 1104/1330/5760 +f 1099/1325/5761 1104/1330/5762 1024/1329/5763 +f 1024/1329/5764 1023/1322/5765 1099/1325/5766 +f 1095/1317/5767 1096/1316/5768 1099/1325/5769 +f 1099/1325/5770 1100/1324/5771 1095/1317/5772 +f 1094/1318/5773 1095/1317/5774 1100/1324/5775 +f 1100/1324/5776 1101/1326/5777 1094/1318/5778 +f 1093/1319/5779 1094/1318/5780 1101/1326/5781 +f 1101/1326/5782 1102/1327/5783 1093/1319/5784 +f 1097/1321/5785 1093/1319/5786 1102/1327/5787 +f 1102/1327/5788 1103/1328/5789 1097/1321/5790 +f 1098/1320/5791 1097/1321/5792 1103/1328/5793 +f 1103/1328/5794 1104/1330/5795 1098/1320/5796 +f 1096/1316/5797 1098/1320/5798 1104/1330/5799 +f 1104/1330/5800 1099/1325/5801 1096/1316/5802 +f 1025/1108/5803 1026/1107/5804 1059/1146/5805 +f 1059/1146/5806 1060/1145/5807 1025/1108/5808 +f 1064/1149/5809 1027/1110/5810 1028/1109/5811 +f 1028/1109/5812 1063/1150/5813 1064/1149/5814 +f 1028/1109/5815 1029/1111/5816 1067/1152/5817 +f 1067/1152/5818 1063/1150/5819 1028/1109/5820 +f 1067/1152/5821 1029/1111/5822 1025/1108/5823 +f 1025/1108/5824 1060/1145/5825 1067/1152/5826 +f 1026/1247/5827 1030/1246/5828 1092/1310/5829 +f 1092/1310/5830 1059/1309/5831 1026/1247/5832 +f 1092/1310/5833 1030/1246/5834 1027/1254/5835 +f 1027/1254/5836 1064/1311/5837 1092/1310/5838 +f 750/834/5839 747/833/5840 1031/1245/5841 +f 1031/1245/5842 735/845/5843 750/834/5844 +f 749/831/5845 750/834/5846 735/845/5847 +f 735/845/5848 1105/1331/5849 749/831/5850 +f 748/832/5851 749/831/5852 1105/1331/5853 +f 1105/1331/5854 1106/1332/5855 748/832/5856 +f 765/867/5857 748/832/5858 1106/1332/5859 +f 1106/1332/5860 853/1333/5861 765/867/5862 +f 766/868/5863 765/867/5864 853/1333/5865 +f 853/1333/5866 854/1253/5867 766/868/5868 +f 747/833/5869 766/868/5870 854/1253/5871 +f 854/1253/5872 1031/1245/5873 747/833/5874 +f 743/830/5875 744/829/5876 754/838/5877 +f 754/838/5878 734/837/5879 743/830/5880 +f 746/827/5881 743/830/5882 734/837/5883 +f 734/837/5884 1107/1334/5885 746/827/5886 +f 745/828/5887 746/827/5888 1107/1334/5889 +f 1107/1334/5890 1108/1335/5891 745/828/5892 +f 848/1003/5893 745/828/5894 1108/1335/5895 +f 1108/1335/5896 1105/1331/5897 848/1003/5898 +f 847/1004/5899 848/1003/5900 1105/1331/5901 +f 1105/1331/5902 735/845/5903 847/1004/5904 +f 744/829/5905 847/1004/5906 735/845/5907 +f 735/845/5908 754/838/5909 744/829/5910 +f 845/1001/5911 849/1006/5912 734/837/5913 +f 734/837/5914 864/1009/5915 845/1001/5916 +f 844/1002/5917 845/1001/5918 864/1009/5919 +f 864/1009/5920 860/1154/5921 844/1002/5922 +f 843/994/5923 844/1002/5924 860/1154/5925 +f 860/1154/5926 727/814/5927 843/994/5928 +f 846/995/5929 843/994/5930 727/814/5931 +f 727/814/5932 1109/1336/5933 846/995/5934 +f 850/1005/5935 846/995/5936 1109/1336/5937 +f 1109/1336/5938 1107/1334/5939 850/1005/5940 +f 849/1006/5941 850/1005/5942 1107/1334/5943 +f 1107/1334/5944 734/837/5945 849/1006/5946 +f 760/853/5947 761/852/5948 948/1141/5949 +f 948/1141/5950 852/1130/5951 760/853/5952 +f 759/849/5953 760/853/5954 852/1130/5955 +f 852/1130/5956 851/1337/5957 759/849/5958 +f 762/850/5959 759/849/5960 851/1337/5961 +f 851/1337/5962 730/811/5963 762/850/5964 +f 768/879/5965 762/850/5966 730/811/5967 +f 730/811/5968 727/814/5969 768/879/5970 +f 769/880/5971 768/879/5972 727/814/5973 +f 727/814/5974 860/1154/5975 769/880/5976 +f 761/852/5977 769/880/5978 860/1154/5979 +f 860/1154/5980 948/1141/5981 761/852/5982 +f 859/1129/5983 860/1154/5984 864/1009/5985 +f 864/1009/5986 865/1008/5987 859/1129/5988 +f 755/839/5989 1111/1196/5990 1110/1195/5991 +f 1110/1195/5992 851/937/5993 755/839/5994 +f 712/795/5995 1112/1200/5996 718/804/5997 +f 718/804/5998 711/796/5999 712/795/6000 +f 1109/1336/6001 1114/1339/6002 1113/1338/6003 +f 1113/1338/6004 1107/1334/6005 1109/1336/6006 +f 719/803/6007 756/836/6008 710/797/6009 +f 710/797/6010 711/796/6011 719/803/6012 +f 725/808/6013 1115/1340/6014 1106/1332/6015 +f 1106/1332/6016 1105/1331/6017 725/808/6018 +f 1108/1335/6019 724/809/6020 725/808/6021 +f 725/808/6022 1105/1331/6023 1108/1335/6024 +f 1118/1203/6025 1117/1204/6026 1116/1201/6027 +f 1116/1201/6028 1119/1202/6029 1118/1203/6030 +f 1121/1205/6031 1120/1206/6032 1116/1201/6033 +f 1116/1201/6034 1117/1204/6035 1121/1205/6036 +f 1123/1208/6037 1122/1209/6038 1121/1205/6039 +f 1121/1205/6040 1124/1207/6041 1123/1208/6042 +f 1117/1204/6043 1118/1203/6044 1126/1210/6045 +f 1126/1210/6046 1125/1211/6047 1117/1204/6048 +f 1124/1207/6049 1121/1205/6050 1117/1204/6051 +f 1117/1204/6052 1125/1211/6053 1124/1207/6054 +f 707/793/6055 1129/792/6056 1127/1212/6057 +f 1127/1212/6058 1128/1213/6059 707/793/6060 +f 1131/1216/6061 1130/1217/6062 1133/1214/6063 +f 1133/1214/6064 1132/1215/6065 1131/1216/6066 +f 1135/1218/6067 1134/1219/6068 1131/1216/6069 +f 1131/1216/6070 1132/1215/6071 1135/1218/6072 +f 1130/1217/6073 1136/1221/6074 1137/1220/6075 +f 1137/1220/6076 1133/1214/6077 1130/1217/6078 +f 1136/1343/6079 1138/1344/6080 1139/1341/6081 +f 1139/1341/6082 1137/1342/6083 1136/1343/6084 +f 1138/1344/6085 1140/1346/6086 1141/1345/6087 +f 1141/1345/6088 1139/1341/6089 1138/1344/6090 +f 1141/1224/6091 1140/1225/6092 1134/1219/6093 +f 1134/1219/6094 1135/1218/6095 1141/1224/6096 +f 1142/1349/6097 1145/2379/6098 1144/1347/6099 +f 1144/1347/6100 1143/1348/6101 1142/1349/6102 +f 1146/2380/6103 1147/2381/6104 1145/2379/6105 +f 1145/2379/6106 1142/1349/6107 1146/2380/6108 +f 1126/1210/6109 1130/1217/6110 1131/1216/6111 +f 1131/1216/6112 1125/1211/6113 1126/1210/6114 +f 1125/1211/6115 1131/1216/6116 1134/1219/6117 +f 1134/1219/6118 1124/1207/6119 1125/1211/6120 +f 1148/1232/6121 1136/1221/6122 1130/1217/6123 +f 1130/1217/6124 1126/1210/6125 1148/1232/6126 +f 1145/2379/6127 1150/2384/6128 1149/2382/6129 +f 1149/2382/6130 1144/1347/6131 1145/2379/6132 +f 1147/2381/6133 1151/2385/6134 1150/2384/6135 +f 1150/2384/6136 1145/2379/6137 1147/2381/6138 +f 1124/1207/6139 1134/1219/6140 1140/1225/6141 +f 1140/1225/6142 1123/1208/6143 1124/1207/6144 +f 1142/1349/6145 1143/1348/6146 1152/2386/6147 +f 1152/2386/6148 1153/2387/6149 1142/1349/6150 +f 1146/2380/6151 1142/1349/6152 1153/2387/6153 +f 1153/2387/6154 1122/2388/6155 1146/2380/6156 +f 1147/2381/6157 1146/2380/6158 1122/2388/6159 +f 1122/2388/6160 1123/2389/6161 1147/2381/6162 +f 1151/2385/6163 1147/2381/6164 1123/2389/6165 +f 1123/2389/6166 1140/1346/6167 1151/2385/6168 +f 1150/2384/6169 1151/2385/6170 1140/1346/6171 +f 1140/1346/6172 1138/1344/6173 1150/2384/6174 +f 1149/2382/6175 1150/2384/6176 1138/1344/6177 +f 1138/1344/6178 1136/1343/6179 1149/2382/6180 +f 1144/1347/6181 1149/2382/6182 1136/1343/6183 +f 1136/1343/6184 1148/2390/6185 1144/1347/6186 +f 1143/1348/6187 1144/1347/6188 1148/2390/6189 +f 1148/2390/6190 1152/2386/6191 1143/1348/6192 +f 707/793/6193 1155/1239/6194 1154/1238/6195 +f 1154/1238/6196 706/790/6197 707/793/6198 +f 1128/1213/6199 1156/1240/6200 1155/1239/6201 +f 1155/1239/6202 707/793/6203 1128/1213/6204 +f 1154/1238/6205 1157/1241/6206 708/791/6207 +f 708/791/6208 706/790/6209 1154/1238/6210 +f 1159/2393/6211 1158/2394/6212 1161/2391/6213 +f 1161/2391/6214 1160/2392/6215 1159/2393/6216 +f 1158/2394/6217 1162/2396/6218 1163/2395/6219 +f 1163/2395/6220 1161/2391/6221 1158/2394/6222 +f 1164/1248/6223 1156/1240/6224 1128/1213/6225 +f 1128/1213/6226 1127/1212/6227 1164/1248/6228 +f 1133/1214/6229 1166/1250/6230 1165/1249/6231 +f 1165/1249/6232 1132/1215/6233 1133/1214/6234 +f 1132/1215/6235 1165/1249/6236 1167/1251/6237 +f 1167/1251/6238 1135/1218/6239 1132/1215/6240 +f 1137/1220/6241 1168/1252/6242 1166/1250/6243 +f 1166/1250/6244 1133/1214/6245 1137/1220/6246 +f 1169/2399/6247 1172/2400/6248 1171/2397/6249 +f 1171/2397/6250 1170/2398/6251 1169/2399/6252 +f 1173/2401/6253 1174/2402/6254 1172/2400/6255 +f 1172/2400/6256 1169/2399/6257 1173/2401/6258 +f 1135/1218/6259 1167/1251/6260 1175/1259/6261 +f 1175/1259/6262 1141/1224/6263 1135/1218/6264 +f 1166/1250/6265 1154/1238/6266 1155/1239/6267 +f 1155/1239/6268 1165/1249/6269 1166/1250/6270 +f 1165/1249/6271 1155/1239/6272 1156/1240/6273 +f 1156/1240/6274 1167/1251/6275 1165/1249/6276 +f 1168/1252/6277 1157/1241/6278 1154/1238/6279 +f 1154/1238/6280 1166/1250/6281 1168/1252/6282 +f 1172/2400/6283 1177/2404/6284 1176/2403/6285 +f 1176/2403/6286 1171/2397/6287 1172/2400/6288 +f 1174/2402/6289 1178/2405/6290 1177/2404/6291 +f 1177/2404/6292 1172/2400/6293 1174/2402/6294 +f 1167/1251/6295 1156/1240/6296 1164/1248/6297 +f 1164/1248/6298 1175/1259/6299 1167/1251/6300 +f 1169/2399/6301 1170/2398/6302 1137/1342/6303 +f 1137/1342/6304 1139/1341/6305 1169/2399/6306 +f 1173/2401/6307 1169/2399/6308 1139/1341/6309 +f 1139/1341/6310 1141/1345/6311 1173/2401/6312 +f 1174/2402/6313 1173/2401/6314 1141/1345/6315 +f 1141/1345/6316 1175/2406/6317 1174/2402/6318 +f 1178/2405/6319 1174/2402/6320 1175/2406/6321 +f 1175/2406/6322 1164/2407/6323 1178/2405/6324 +f 1177/2404/6325 1178/2405/6326 1164/2407/6327 +f 1164/2407/6328 1179/2408/6329 1177/2404/6330 +f 1176/2403/6331 1177/2404/6332 1179/2408/6333 +f 1179/2408/6334 1157/2409/6335 1176/2403/6336 +f 1171/2397/6337 1176/2403/6338 1157/2409/6339 +f 1157/2409/6340 1168/2410/6341 1171/2397/6342 +f 1170/2398/6343 1171/2397/6344 1168/2410/6345 +f 1168/2410/6346 1137/1342/6347 1170/2398/6348 +f 1181/2413/6349 1180/2414/6350 1129/2411/6351 +f 1129/2411/6352 708/2412/6353 1181/2413/6354 +f 1182/2415/6355 1181/2413/6356 708/2412/6357 +f 708/2412/6358 1157/2409/6359 1182/2415/6360 +f 1183/2416/6361 1182/2415/6362 1157/2409/6363 +f 1157/2409/6364 1179/2408/6365 1183/2416/6366 +f 1184/2417/6367 1183/2416/6368 1179/2408/6369 +f 1179/2408/6370 1164/2407/6371 1184/2417/6372 +f 1185/2419/6373 1184/2417/6374 1164/2407/6375 +f 1164/2407/6376 1127/2418/6377 1185/2419/6378 +f 1180/2414/6379 1185/2419/6380 1127/2418/6381 +f 1127/2418/6382 1129/2411/6383 1180/2414/6384 +f 1160/2392/6385 1161/2391/6386 1180/2414/6387 +f 1180/2414/6388 1181/2413/6389 1160/2392/6390 +f 1159/2393/6391 1160/2392/6392 1181/2413/6393 +f 1181/2413/6394 1182/2415/6395 1159/2393/6396 +f 1158/2394/6397 1159/2393/6398 1182/2415/6399 +f 1182/2415/6400 1183/2416/6401 1158/2394/6402 +f 1162/2396/6403 1158/2394/6404 1183/2416/6405 +f 1183/2416/6406 1184/2417/6407 1162/2396/6408 +f 1163/2395/6409 1162/2396/6410 1184/2417/6411 +f 1184/2417/6412 1185/2419/6413 1163/2395/6414 +f 1161/2391/6415 1163/2395/6416 1185/2419/6417 +f 1185/2419/6418 1180/2414/6419 1161/2391/6420 +f 741/824/6421 742/823/6422 1186/1270/6423 +f 1186/1270/6424 1187/1271/6425 741/824/6426 +f 1188/1274/6427 1191/1275/6428 1190/1272/6429 +f 1190/1272/6430 1189/1273/6431 1188/1274/6432 +f 1192/1276/6433 1112/1200/6434 712/795/6435 +f 712/795/6436 715/799/6437 1192/1276/6438 +f 1110/2420/6439 729/812/6440 730/811/6441 +f 730/811/6442 851/1337/6443 1110/2420/6444 +f 1194/2423/6445 1193/2424/6446 704/2421/6447 +f 704/2421/6448 705/2422/6449 1194/2423/6450 +f 728/813/6451 1114/1339/6452 1109/1336/6453 +f 1109/1336/6454 727/814/6455 728/813/6456 +f 1197/2426/6457 1196/2427/6458 1195/2425/6459 +f 1195/2425/6460 726/807/6461 1197/2426/6462 +f 725/808/6463 726/807/6464 1195/2425/6465 +f 1195/2425/6466 1115/1340/6467 725/808/6468 +f 1198/2430/6469 1118/2431/6470 1119/2428/6471 +f 1119/2428/6472 1199/2429/6473 1198/2430/6474 +f 1113/1338/6475 724/809/6476 1108/1335/6477 +f 1108/1335/6478 1107/1334/6479 1113/1338/6480 +f 1197/2426/6481 726/807/6482 723/810/6483 +f 723/810/6484 1200/2432/6485 1197/2426/6486 +f 1113/1338/6487 1201/2433/6488 723/810/6489 +f 723/810/6490 724/809/6491 1113/1338/6492 +f 1202/1277/6493 1186/1270/6494 742/823/6495 +f 742/823/6496 763/841/6497 1202/1277/6498 +f 853/939/6499 1203/1286/6500 1202/1277/6501 +f 1202/1277/6502 763/841/6503 853/939/6504 +f 1106/1332/6505 1115/1340/6506 1203/2434/6507 +f 1203/2434/6508 853/1333/6509 1106/1332/6510 +f 1204/1287/6511 1192/1276/6512 715/799/6513 +f 715/799/6514 716/798/6515 1204/1287/6516 +f 1205/2435/6517 1199/2429/6518 1115/1340/6519 +f 1115/1340/6520 1195/2425/6521 1205/2435/6522 +f 1206/2436/6523 1205/2435/6524 1195/2425/6525 +f 1195/2425/6526 1196/2427/6527 1206/2436/6528 +f 1207/2438/6529 1206/2436/6530 1196/2427/6531 +f 1196/2427/6532 1208/2437/6533 1207/2438/6534 +f 1209/2440/6535 1207/2438/6536 1208/2437/6537 +f 1208/2437/6538 1191/2439/6539 1209/2440/6540 +f 1210/1288/6541 1209/1293/6542 1191/1275/6543 +f 1191/1275/6544 1188/1274/6545 1210/1288/6546 +f 1187/1271/6547 1211/1294/6548 1204/1287/6549 +f 1204/1287/6550 716/798/6551 1187/1271/6552 +f 1211/1294/6553 1210/1288/6554 1188/1274/6555 +f 1188/1274/6556 1204/1287/6557 1211/1294/6558 +f 1213/1295/6559 1212/1296/6560 1120/1206/6561 +f 1120/1206/6562 1121/1205/6563 1213/1295/6564 +f 1153/2387/6565 1152/2386/6566 1206/2436/6567 +f 1206/2436/6568 1207/2438/6569 1153/2387/6570 +f 1209/2440/6571 1122/2388/6572 1153/2387/6573 +f 1153/2387/6574 1207/2438/6575 1209/2440/6576 +f 1214/1297/6577 1122/1209/6578 1209/1293/6579 +f 1209/1293/6580 1210/1288/6581 1214/1297/6582 +f 1211/1294/6583 1213/1295/6584 1214/1297/6585 +f 1214/1297/6586 1210/1288/6587 1211/1294/6588 +f 1187/1271/6589 1212/1296/6590 1213/1295/6591 +f 1213/1295/6592 1211/1294/6593 1187/1271/6594 +f 1186/1270/6595 1120/1206/6596 1212/1296/6597 +f 1212/1296/6598 1187/1271/6599 1186/1270/6600 +f 1203/1286/6601 1119/1202/6602 1116/1201/6603 +f 1116/1201/6604 1202/1277/6605 1203/1286/6606 +f 1199/2429/6607 1119/2428/6608 1203/2434/6609 +f 1203/2434/6610 1115/1340/6611 1199/2429/6612 +f 1206/2436/6613 1152/2386/6614 1215/2441/6615 +f 1215/2441/6616 1205/2435/6617 1206/2436/6618 +f 1116/1201/6619 1120/1206/6620 1186/1270/6621 +f 1186/1270/6622 1202/1277/6623 1116/1201/6624 +f 1198/2430/6625 1199/2429/6626 1205/2435/6627 +f 1205/2435/6628 1215/2441/6629 1198/2430/6630 +f 1198/2430/6631 1215/2441/6632 1216/2442/6633 +f 1216/2442/6634 1118/2431/6635 1198/2430/6636 +f 702/789/6637 703/788/6638 1217/1298/6639 +f 1217/1298/6640 1218/1300/6641 702/789/6642 +f 755/839/6643 756/836/6644 719/803/6645 +f 719/803/6646 1111/1196/6647 755/839/6648 +f 1194/2423/6649 729/812/6650 1110/2420/6651 +f 1110/2420/6652 1193/2424/6653 1194/2423/6654 +f 1219/1301/6655 1193/1302/6656 1110/1195/6657 +f 1110/1195/6658 1111/1196/6659 1219/1301/6660 +f 717/802/6661 1219/1301/6662 1111/1196/6663 +f 1111/1196/6664 719/803/6665 717/802/6666 +f 716/798/6667 713/801/6668 741/824/6669 +f 741/824/6670 1187/1271/6671 716/798/6672 +f 715/799/6673 712/795/6674 709/794/6675 +f 709/794/6676 714/800/6677 715/799/6678 +f 1112/1200/6679 1192/1276/6680 1189/1273/6681 +f 1189/1273/6682 1220/1303/6683 1112/1200/6684 +f 1204/1287/6685 1188/1274/6686 1189/1273/6687 +f 1189/1273/6688 1192/1276/6689 1204/1287/6690 +f 1217/1298/6691 1221/1304/6692 1220/1303/6693 +f 1220/1303/6694 1218/1300/6695 1217/1298/6696 +f 703/788/6697 704/787/6698 1193/1302/6699 +f 1193/1302/6700 1219/1301/6701 703/788/6702 +f 717/802/6703 1217/1298/6704 703/788/6705 +f 703/788/6706 1219/1301/6707 717/802/6708 +f 1221/1304/6709 1217/1298/6710 717/802/6711 +f 717/802/6712 718/804/6713 1221/1304/6714 +f 1112/1200/6715 1220/1303/6716 1221/1304/6717 +f 1221/1304/6718 718/804/6719 1112/1200/6720 +f 1190/1272/6721 1218/1300/6722 1220/1303/6723 +f 1220/1303/6724 1189/1273/6725 1190/1272/6726 +f 1223/2444/6727 1222/2445/6728 705/2574/6729 +f 705/2574/6730 702/2443/6731 1223/2444/6732 +f 1224/2447/6733 1223/2444/6734 702/2443/6735 +f 702/2443/6736 1218/2446/6737 1224/2447/6738 +f 1225/2449/6739 1224/2447/6740 1218/2446/6741 +f 1218/2446/6742 1190/2448/6743 1225/2449/6744 +f 1226/2450/6745 1225/2449/6746 1190/2448/6747 +f 1190/2448/6748 1191/2439/6749 1226/2450/6750 +f 1227/2451/6751 1226/2450/6752 1191/2439/6753 +f 1191/2439/6754 1208/2437/6755 1227/2451/6756 +f 1228/2452/6757 1227/2451/6758 1208/2437/6759 +f 1208/2437/6760 1196/2427/6761 1228/2452/6762 +f 1229/2453/6763 1228/2452/6764 1196/2427/6765 +f 1196/2427/6766 1197/2426/6767 1229/2453/6768 +f 1230/2454/6769 1229/2453/6770 1197/2426/6771 +f 1197/2426/6772 1200/2432/6773 1230/2454/6774 +f 1231/2456/6775 1230/2454/6776 1200/2432/6777 +f 1200/2432/6778 1232/2455/6779 1231/2456/6780 +f 1194/2423/6781 705/2422/6782 1233/2457/6783 +f 1233/2457/6784 1234/2458/6785 1194/2423/6786 +f 1201/2433/6787 1232/2455/6788 1200/2432/6789 +f 1200/2432/6790 723/810/6791 1201/2433/6792 +f 1235/2460/6793 1222/2445/6794 1223/2444/6795 +f 1223/2444/6796 1236/2459/6797 1235/2460/6798 +f 1237/2461/6799 1236/2459/6800 1223/2444/6801 +f 1223/2444/6802 1224/2447/6803 1237/2461/6804 +f 1237/2461/6805 1224/2447/6806 1225/2449/6807 +f 1225/2449/6808 1238/2462/6809 1237/2461/6810 +f 1238/2462/6811 1225/2449/6812 1226/2450/6813 +f 1226/2450/6814 1239/2463/6815 1238/2462/6816 +f 1239/2463/6817 1226/2450/6818 1227/2451/6819 +f 1227/2451/6820 1240/2464/6821 1239/2463/6822 +f 1241/2465/6823 1240/2464/6824 1227/2451/6825 +f 1227/2451/6826 1228/2452/6827 1241/2465/6828 +f 1242/2466/6829 1241/2465/6830 1228/2452/6831 +f 1228/2452/6832 1229/2453/6833 1242/2466/6834 +f 1243/2467/6835 1242/2466/6836 1229/2453/6837 +f 1229/2453/6838 1230/2454/6839 1243/2467/6840 +f 1243/2467/6841 1230/2454/6842 1231/2456/6843 +f 1231/2456/6844 1244/2468/6845 1243/2467/6846 +f 1244/2468/6847 1231/2456/6848 1222/2575/6849 +f 1222/2575/6850 1235/2576/6851 1244/2468/6852 +f 1213/1295/6853 1121/1205/6854 1122/1209/6855 +f 1122/1209/6856 1214/1297/6857 1213/1295/6858 +f 1118/1203/6859 1216/1305/6860 1148/1232/6861 +f 1148/1232/6862 1126/1210/6863 1118/1203/6864 +f 1148/2390/6865 1216/2442/6866 1215/2441/6867 +f 1215/2441/6868 1152/2386/6869 1148/2390/6870 +f 1247/2471/6871 1246/2472/6872 1245/2469/6873 +f 1245/2469/6874 1248/2470/6875 1247/2471/6876 +f 1250/2473/6877 1249/2474/6878 1247/2471/6879 +f 1247/2471/6880 1248/2470/6881 1250/2473/6882 +f 1251/2476/6883 1249/2474/6884 1250/2473/6885 +f 1250/2473/6886 1252/2475/6887 1251/2476/6888 +f 1246/2578/6889 1261/2478/6890 1260/2477/6891 +f 1260/2477/6892 1245/2577/6893 1246/2578/6894 +f 1194/2423/6895 1234/2458/6896 728/813/6897 +f 728/813/6898 729/812/6899 1194/2423/6900 +f 1262/2479/6901 1114/1339/6902 728/813/6903 +f 728/813/6904 1234/2458/6905 1262/2479/6906 +f 1114/1339/6907 1262/2479/6908 1201/2433/6909 +f 1201/2433/6910 1113/1338/6911 1114/1339/6912 +f 1263/2480/6913 1262/2479/6914 1234/2458/6915 +f 1234/2458/6916 1233/2457/6917 1263/2480/6918 +f 1264/2481/6919 1233/2457/6920 705/2422/6921 +f 705/2422/6922 1222/2575/6923 1264/2481/6924 +f 1231/2456/6925 1265/2482/6926 1264/2481/6927 +f 1264/2481/6928 1222/2575/6929 1231/2456/6930 +f 1263/2480/6931 1233/2457/6932 1264/2481/6933 +f 1264/2481/6934 1265/2482/6935 1263/2480/6936 +f 1232/2455/6937 1263/2480/6938 1265/2482/6939 +f 1265/2482/6940 1231/2456/6941 1232/2455/6942 +f 1262/2479/6943 1263/2480/6944 1232/2455/6945 +f 1232/2455/6946 1201/2433/6947 1262/2479/6948 +f 1260/2477/6949 1258/2483/6950 1243/2467/6951 +f 1243/2467/6952 1244/2468/6953 1260/2477/6954 +f 1257/2484/6955 1242/2466/6956 1243/2467/6957 +f 1243/2467/6958 1258/2483/6959 1257/2484/6960 +f 1256/2486/6961 1241/2465/6962 1242/2466/6963 +f 1242/2466/6964 1257/2484/6965 1256/2486/6966 +f 1255/2487/6967 1240/2464/6968 1241/2465/6969 +f 1241/2465/6970 1256/2486/6971 1255/2487/6972 +f 1254/2488/6973 1239/2463/6974 1240/2464/6975 +f 1240/2464/6976 1255/2487/6977 1254/2488/6978 +f 1252/2475/6979 1254/2488/6980 1253/2489/6981 +f 1253/2489/6982 1251/2476/6983 1252/2475/6984 +f 1237/2461/6985 1238/2462/6986 1252/2475/6987 +f 1252/2475/6988 1250/2473/6989 1237/2461/6990 +f 1236/2459/6991 1237/2461/6992 1250/2473/6993 +f 1250/2473/6994 1248/2470/6995 1236/2459/6996 +f 1245/2469/6997 1235/2460/6998 1236/2459/6999 +f 1236/2459/7000 1248/2470/7001 1245/2469/7002 +f 1244/2468/7003 1235/2576/7004 1245/2577/7005 +f 1245/2577/7006 1260/2477/7007 1244/2468/7008 +f 1260/2477/7009 1261/2478/7010 1259/2490/7011 +f 1259/2490/7012 1258/2483/7013 1260/2477/7014 +f 1252/2475/7015 1238/2462/7016 1239/2463/7017 +f 1239/2463/7018 1254/2488/7019 1252/2475/7020 +f 587/1398/7021 437/519/7022 443/526/7023 +f 443/526/7024 444/525/7025 587/1398/7026 +f 645/734/7027 640/729/7028 450/535/7029 +f 450/535/7030 451/534/7031 645/734/7032 +f 621/709/7033 624/713/7034 650/739/7035 +f 650/739/7036 620/710/7037 621/709/7038 +f 622/711/7039 623/714/7040 624/2605/7041 +f 624/2605/7042 621/2603/7043 622/711/7044 +f 424/507/7045 420/504/7046 629/718/7047 +f 629/718/7048 622/711/7049 424/507/7050 +f 420/504/7051 421/503/7052 632/721/7053 +f 632/721/7054 629/718/7055 420/504/7056 +f 421/503/7057 604/690/7058 635/724/7059 +f 635/724/7060 632/721/7061 421/503/7062 +f 604/690/7063 605/691/7064 638/727/7065 +f 638/727/7066 635/724/7067 604/690/7068 +f 605/691/7069 449/533/7070 450/535/7071 +f 450/535/7072 638/727/7073 605/691/7074 +f 651/740/7075 617/706/7076 618/707/7077 +f 618/707/7078 620/710/7079 651/740/7080 +f 451/534/7081 446/532/7082 617/706/7083 +f 617/706/7084 651/740/7085 451/534/7086 +f 607/693/7087 608/2569/7088 448/530/7089 +f 448/530/7090 449/533/7091 607/693/7092 +f 642/730/7093 1266/2570/7094 671/759/7095 +f 671/759/7096 641/731/7097 642/730/7098 +f 643/733/7099 1267/2571/7100 1266/2570/7101 +f 1266/2570/7102 642/730/7103 643/733/7104 +f 1268/2572/7105 1267/2571/7106 643/733/7107 +f 643/733/7108 646/736/7109 1268/2572/7110 +f 655/746/7111 1268/2572/7112 646/736/7113 +f 646/736/7114 652/741/7115 655/746/7116 +f 654/2607/7117 655/746/7118 652/741/7119 +f 652/741/7120 653/742/7121 654/2607/7122 +f 653/2606/7123 625/712/7124 626/715/7125 +f 626/715/7126 660/749/7127 653/2606/7128 +f 626/715/7129 627/716/7130 663/752/7131 +f 663/752/7132 660/749/7133 626/715/7134 +f 627/716/7135 630/719/7136 666/755/7137 +f 666/755/7138 663/752/7139 627/716/7140 +f 630/719/7141 633/722/7142 669/758/7143 +f 669/758/7144 666/755/7145 630/719/7146 +f 633/722/7147 636/725/7148 641/731/7149 +f 641/731/7150 669/758/7151 633/722/7152 +f 657/744/7153 688/776/7154 686/775/7155 +f 686/775/7156 656/745/7157 657/744/7158 +f 658/748/7159 690/778/7160 688/2609/7161 +f 688/2609/7162 657/2608/7163 658/748/7164 +f 661/751/7165 692/1351/7166 690/778/7167 +f 690/778/7168 658/748/7169 661/751/7170 +f 664/754/7171 694/2566/7172 692/1351/7173 +f 692/1351/7174 661/751/7175 664/754/7176 +f 673/762/7177 694/2566/7178 664/754/7179 +f 664/754/7180 667/757/7181 673/762/7182 +f 672/763/7183 673/762/7184 667/757/7185 +f 667/757/7186 670/760/7187 672/763/7188 +f 671/759/7189 1266/2570/7190 678/767/7191 +f 678/767/7192 670/760/7193 671/759/7194 +f 1266/2570/7195 1267/2571/7196 681/770/7197 +f 681/770/7198 678/767/7199 1266/2570/7200 +f 1267/2571/7201 1268/2572/7202 684/773/7203 +f 684/773/7204 681/770/7205 1267/2571/7206 +f 684/773/7207 1268/2572/7208 655/746/7209 +f 655/746/7210 656/745/7211 684/773/7212 +f 1270/1432/7213 1269/478/7214 397/475/7215 +f 397/475/7216 1271/1431/7217 1270/1432/7218 +f 1270/1432/7219 1271/1431/7220 1272/1543/7221 +f 1272/1543/7222 1273/1544/7223 1270/1432/7224 +f 1276/1360/7225 1275/1361/7226 1274/1358/7227 +f 1274/1358/7228 1277/1359/7229 1276/1360/7230 +f 1279/1362/7231 1278/1363/7232 1275/1361/7233 +f 1275/1361/7234 1276/1360/7235 1279/1362/7236 +f 1276/1360/7237 1277/1359/7238 1280/1364/7239 +f 1280/1364/7240 1279/1362/7241 1276/1360/7242 +f 1283/1367/7243 1282/1368/7244 1281/1365/7245 +f 1281/1365/7246 1284/1366/7247 1283/1367/7248 +f 1283/1367/7249 1284/1366/7250 1285/1369/7251 +f 1285/1369/7252 1286/1370/7253 1283/1367/7254 +f 1283/1367/7255 1286/1370/7256 1287/1371/7257 +f 1287/1371/7258 1288/1372/7259 1283/1367/7260 +f 1283/1367/7261 1288/1372/7262 1289/1373/7263 +f 1289/1373/7264 1290/1374/7265 1283/1367/7266 +f 1283/1367/7267 1290/1374/7268 1291/1375/7269 +f 1291/1375/7270 1282/1368/7271 1283/1367/7272 +f 1294/1376/7273 1293/1377/7274 1292/479/7275 +f 1292/479/7276 1295/686/7277 1294/1376/7278 +f 1294/1376/7279 1297/1379/7280 1296/1378/7281 +f 1296/1378/7282 1293/1377/7283 1294/1376/7284 +f 1300/1384/7285 1299/1385/7286 1298/1382/7287 +f 1298/1382/7288 1301/1383/7289 1300/1384/7290 +f 1303/2586/7291 1302/1387/7292 1299/1385/7293 +f 1299/1385/7294 1300/1384/7295 1303/2586/7296 +f 1300/1570/7297 1301/1571/7298 1304/1541/7299 +f 1304/1541/7300 1303/1542/7301 1300/1570/7302 +f 1307/1547/7303 1306/1548/7304 1305/1545/7305 +f 1305/1545/7306 1308/1546/7307 1307/1547/7308 +f 1307/1547/7309 1310/1551/7310 1309/1550/7311 +f 1309/1550/7312 1306/1548/7313 1307/1547/7314 +f 1307/1547/7315 1308/1546/7316 1273/1544/7317 +f 1273/1544/7318 1311/1552/7319 1307/1547/7320 +f 1308/1546/7321 1305/1545/7322 1312/1553/7323 +f 1312/1553/7324 1313/1554/7325 1308/1546/7326 +f 1316/1557/7327 1315/1558/7328 1314/1555/7329 +f 1314/1555/7330 1317/1556/7331 1316/1557/7332 +f 1317/1556/7333 1312/1553/7334 1305/1545/7335 +f 1305/1545/7336 1316/1557/7337 1317/1556/7338 +f 1317/1556/7339 1314/1555/7340 1318/1559/7341 +f 1318/1559/7342 1312/1553/7343 1317/1556/7344 +f 1321/1403/7345 1320/1404/7346 1319/1380/7347 +f 1319/1380/7348 1322/1381/7349 1321/1403/7350 +f 1323/1406/7351 1321/1403/7352 1322/1381/7353 +f 1322/1381/7354 1324/1405/7355 1323/1406/7356 +f 1306/1548/7357 1309/1550/7358 1316/1557/7359 +f 1316/1557/7360 1305/1545/7361 1306/1548/7362 +f 1327/1562/7363 1326/1563/7364 1325/1560/7365 +f 1325/1560/7366 1328/1561/7367 1327/1562/7368 +f 1327/1562/7369 1330/1566/7370 1329/1564/7371 +f 1329/1564/7372 1331/1565/7373 1327/1562/7374 +f 1327/1562/7375 1331/1565/7376 1332/1567/7377 +f 1332/1567/7378 1326/1563/7379 1327/1562/7380 +f 1334/1418/7381 1333/1419/7382 1329/1413/7383 +f 1329/1413/7384 1335/1417/7385 1334/1418/7386 +f 1334/1418/7387 1274/1358/7388 1275/1361/7389 +f 1275/1361/7390 1278/1363/7391 1334/1418/7392 +f 1334/1418/7393 1278/1363/7394 1336/1420/7395 +f 1336/1420/7396 1333/1419/7397 1334/1418/7398 +f 1290/1374/7399 1289/1373/7400 1337/1421/7401 +f 1337/1421/7402 1291/1375/7403 1290/1374/7404 +f 1335/1569/7405 1329/1564/7406 1330/1566/7407 +f 1330/1566/7408 1338/1568/7409 1335/1569/7410 +f 1335/1417/7411 1338/1423/7412 1339/1422/7413 +f 1339/1422/7414 1334/1418/7415 1335/1417/7416 +f 1342/1408/7417 1341/1424/7418 1340/1407/7419 +f 1340/1407/7420 1297/1379/7421 1342/1408/7422 +f 1345/1574/7423 1344/1575/7424 1343/1572/7425 +f 1343/1572/7426 1346/1573/7427 1345/1574/7428 +f 1345/1687/7429 1346/2491/7430 1347/1598/7431 +f 1347/1598/7432 1348/1686/7433 1345/1687/7434 +f 1346/1573/7435 1343/1572/7436 1349/1576/7437 +f 1349/1576/7438 1350/1577/7439 1346/1573/7440 +f 1346/2491/7441 1350/2493/7442 1351/2492/7443 +f 1351/2492/7444 1347/1598/7445 1346/2491/7446 +f 1351/1435/7447 1350/1436/7448 1352/1433/7449 +f 1352/1433/7450 1353/1434/7451 1351/1435/7452 +f 1351/1435/7453 1353/1434/7454 1339/1422/7455 +f 1339/1422/7456 1338/1423/7457 1351/1435/7458 +f 1351/2492/7459 1338/1568/7460 1330/1566/7461 +f 1330/1566/7462 1347/1598/7463 1351/2492/7464 +f 1353/1434/7465 1352/1433/7466 1354/1437/7467 +f 1354/1437/7468 1355/1438/7469 1353/1434/7470 +f 1353/1434/7471 1355/1438/7472 1356/1439/7473 +f 1356/1439/7474 1339/1422/7475 1353/1434/7476 +f 1356/1439/7477 1355/1438/7478 1357/1440/7479 +f 1357/1440/7480 1358/1441/7481 1356/1439/7482 +f 1356/1439/7483 1358/1441/7484 1277/1359/7485 +f 1277/1359/7486 1274/1358/7487 1356/1439/7488 +f 1356/1439/7489 1274/1358/7490 1334/1418/7491 +f 1334/1418/7492 1339/1422/7493 1356/1439/7494 +f 1358/1441/7495 1357/1440/7496 1359/1442/7497 +f 1359/1442/7498 1360/1443/7499 1358/1441/7500 +f 1358/1441/7501 1360/1443/7502 1361/1444/7503 +f 1361/1444/7504 1277/1359/7505 1358/1441/7506 +f 1361/1444/7507 1360/1443/7508 1362/1445/7509 +f 1362/1445/7510 1363/1446/7511 1361/1444/7512 +f 1361/1444/7513 1363/1446/7514 1364/1447/7515 +f 1364/1447/7516 1365/1448/7517 1361/1444/7518 +f 1361/1444/7519 1365/1448/7520 1280/1364/7521 +f 1280/1364/7522 1277/1359/7523 1361/1444/7524 +f 1365/1448/7525 1364/1447/7526 1366/1449/7527 +f 1366/1449/7528 1337/1421/7529 1365/1448/7530 +f 1365/1448/7531 1337/1421/7532 1289/1373/7533 +f 1289/1373/7534 1280/1364/7535 1365/1448/7536 +f 1364/1447/7537 1363/1446/7538 1367/1450/7539 +f 1367/1450/7540 1368/1451/7541 1364/1447/7542 +f 1364/1447/7543 1368/1451/7544 1369/1452/7545 +f 1369/1452/7546 1366/1449/7547 1364/1447/7548 +f 1368/1451/7549 1367/1450/7550 1370/1453/7551 +f 1370/1453/7552 1371/1454/7553 1368/1451/7554 +f 1368/1451/7555 1371/1454/7556 1372/1455/7557 +f 1372/1455/7558 1369/1452/7559 1368/1451/7560 +f 1372/1455/7561 1371/1454/7562 1373/1456/7563 +f 1373/1456/7564 1374/1457/7565 1372/1455/7566 +f 1372/1455/7567 1374/1457/7568 1375/1458/7569 +f 1375/1458/7570 1376/1459/7571 1372/1455/7572 +f 1372/1455/7573 1376/1459/7574 1377/1460/7575 +f 1377/1460/7576 1369/1452/7577 1372/1455/7578 +f 1376/1459/7579 1375/1458/7580 1378/1461/7581 +f 1378/1461/7582 1379/1462/7583 1376/1459/7584 +f 1376/1459/7585 1379/1462/7586 1380/1463/7587 +f 1380/1463/7588 1377/1460/7589 1376/1459/7590 +f 1380/1463/7591 1382/1465/7592 1381/1464/7593 +f 1381/1464/7594 1377/1460/7595 1380/1463/7596 +f 1380/2589/7597 1379/2588/7598 1383/1466/7599 +f 1383/1466/7600 1384/1467/7601 1380/2589/7602 +f 1380/2589/7603 1384/1467/7604 1385/1468/7605 +f 1385/1468/7606 1382/2590/7607 1380/2589/7608 +f 1383/2591/7609 1379/1462/7610 1378/1461/7611 +f 1378/1461/7612 1386/1469/7613 1383/2591/7614 +f 1383/2591/7615 1386/1469/7616 1387/1470/7617 +f 1387/1470/7618 1388/1471/7619 1383/2591/7620 +f 1383/1466/7621 1388/2593/7622 1389/1472/7623 +f 1389/1472/7624 1384/1467/7625 1383/1466/7626 +f 1388/2593/7627 1387/2592/7628 1390/1473/7629 +f 1390/1473/7630 1391/1474/7631 1388/2593/7632 +f 1388/2593/7633 1391/1474/7634 1392/1475/7635 +f 1392/1475/7636 1389/1472/7637 1388/2593/7638 +f 1392/1475/7639 1394/1477/7640 1393/1476/7641 +f 1393/1476/7642 1389/1472/7643 1392/1475/7644 +f 1392/1475/7645 1391/1474/7646 1395/1478/7647 +f 1395/1478/7648 1396/1479/7649 1392/1475/7650 +f 1392/1475/7651 1396/1479/7652 1397/1480/7653 +f 1397/1480/7654 1394/1477/7655 1392/1475/7656 +f 1397/1480/7657 1399/1482/7658 1398/1481/7659 +f 1398/1481/7660 1394/1477/7661 1397/1480/7662 +f 1397/1480/7663 1396/1479/7664 1400/1483/7665 +f 1400/1483/7666 1401/1484/7667 1397/1480/7668 +f 1397/1480/7669 1401/1484/7670 1402/1485/7671 +f 1402/1485/7672 1399/1482/7673 1397/1480/7674 +f 1402/1485/7675 1404/1487/7676 1403/1486/7677 +f 1403/1486/7678 1399/1482/7679 1402/1485/7680 +f 1402/1485/7681 1401/1484/7682 1405/1488/7683 +f 1405/1488/7684 1359/1442/7685 1402/1485/7686 +f 1402/1485/7687 1359/1442/7688 1357/1440/7689 +f 1357/1440/7690 1404/1487/7691 1402/1485/7692 +f 1405/1488/7693 1401/1484/7694 1400/1483/7695 +f 1400/1483/7696 1406/1489/7697 1405/1488/7698 +f 1405/1488/7699 1406/1489/7700 1407/1490/7701 +f 1407/1490/7702 1362/1445/7703 1405/1488/7704 +f 1405/1488/7705 1362/1445/7706 1360/1443/7707 +f 1360/1443/7708 1359/1442/7709 1405/1488/7710 +f 1407/1490/7711 1406/1489/7712 1408/1491/7713 +f 1408/1491/7714 1409/1492/7715 1407/1490/7716 +f 1407/1490/7717 1409/1492/7718 1370/1453/7719 +f 1370/1453/7720 1367/1450/7721 1407/1490/7722 +f 1407/1490/7723 1367/1450/7724 1363/1446/7725 +f 1363/1446/7726 1362/1445/7727 1407/1490/7728 +f 1409/1492/7729 1408/1491/7730 1410/1493/7731 +f 1410/1493/7732 1411/1494/7733 1409/1492/7734 +f 1409/1492/7735 1411/1494/7736 1412/1495/7737 +f 1412/1495/7738 1370/1453/7739 1409/1492/7740 +f 1412/1495/7741 1411/1494/7742 1413/1496/7743 +f 1413/1496/7744 1414/1497/7745 1412/1495/7746 +f 1412/1495/7747 1414/1497/7748 1415/1498/7749 +f 1415/1498/7750 1373/1456/7751 1412/1495/7752 +f 1412/1495/7753 1373/1456/7754 1371/1454/7755 +f 1371/1454/7756 1370/1453/7757 1412/1495/7758 +f 1415/1498/7759 1416/1499/7760 1374/1457/7761 +f 1374/1457/7762 1373/1456/7763 1415/1498/7764 +f 1416/1499/7765 1417/1500/7766 1375/1458/7767 +f 1375/1458/7768 1374/1457/7769 1416/1499/7770 +f 1417/1500/7771 1418/1501/7772 1378/1461/7773 +f 1378/1461/7774 1375/1458/7775 1417/1500/7776 +f 1418/1501/7777 1419/1502/7778 1386/1469/7779 +f 1386/1469/7780 1378/1461/7781 1418/1501/7782 +f 1419/1502/7783 1420/1503/7784 1387/1470/7785 +f 1387/1470/7786 1386/1469/7787 1419/1502/7788 +f 1420/2594/7789 1421/1504/7790 1390/1473/7791 +f 1390/1473/7792 1387/2592/7793 1420/2594/7794 +f 1421/1504/7795 1423/1506/7796 1422/1505/7797 +f 1422/1505/7798 1390/1473/7799 1421/1504/7800 +f 1422/1505/7801 1395/1478/7802 1391/1474/7803 +f 1391/1474/7804 1390/1473/7805 1422/1505/7806 +f 1422/1505/7807 1423/1506/7808 1424/1507/7809 +f 1424/1507/7810 1425/1508/7811 1422/1505/7812 +f 1422/1505/7813 1425/1508/7814 1426/1509/7815 +f 1426/1509/7816 1395/1478/7817 1422/1505/7818 +f 1426/1509/7819 1400/1483/7820 1396/1479/7821 +f 1396/1479/7822 1395/1478/7823 1426/1509/7824 +f 1426/1509/7825 1425/1508/7826 1410/1493/7827 +f 1410/1493/7828 1408/1491/7829 1426/1509/7830 +f 1426/1509/7831 1408/1491/7832 1406/1489/7833 +f 1406/1489/7834 1400/1483/7835 1426/1509/7836 +f 1425/1508/7837 1424/1507/7838 1427/1510/7839 +f 1427/1510/7840 1410/1493/7841 1425/1508/7842 +f 1427/1510/7843 1413/1496/7844 1411/1494/7845 +f 1411/1494/7846 1410/1493/7847 1427/1510/7848 +f 1403/1486/7849 1429/1513/7850 1428/1511/7851 +f 1428/1511/7852 1430/1512/7853 1403/1486/7854 +f 1403/1486/7855 1430/1512/7856 1398/1481/7857 +f 1398/1481/7858 1399/1482/7859 1403/1486/7860 +f 1403/1486/7861 1404/1487/7862 1354/1437/7863 +f 1354/1437/7864 1429/1513/7865 1403/1486/7866 +f 1430/1512/7867 1428/1511/7868 1431/1514/7869 +f 1431/1514/7870 1432/1515/7871 1430/1512/7872 +f 1430/1512/7873 1432/1515/7874 1433/1516/7875 +f 1433/1516/7876 1398/1481/7877 1430/1512/7878 +f 1433/1516/7879 1432/1515/7880 1434/1517/7881 +f 1434/1517/7882 1435/1518/7883 1433/1516/7884 +f 1433/1516/7885 1435/1518/7886 1436/1519/7887 +f 1436/1519/7888 1393/1476/7889 1433/1516/7890 +f 1433/1516/7891 1393/1476/7892 1394/1477/7893 +f 1394/1477/7894 1398/1481/7895 1433/1516/7896 +f 1434/1517/7897 1298/1382/7898 1299/1385/7899 +f 1299/1385/7900 1437/1520/7901 1434/1517/7902 +f 1434/1517/7903 1437/1520/7904 1385/1468/7905 +f 1385/1468/7906 1435/1518/7907 1434/1517/7908 +f 1434/1517/7909 1432/1515/7910 1431/1514/7911 +f 1431/1514/7912 1298/1382/7913 1434/1517/7914 +f 1437/1520/7915 1299/1385/7916 1302/1387/7917 +f 1302/1387/7918 1438/1521/7919 1437/1520/7920 +f 1437/1520/7921 1438/1521/7922 1382/2590/7923 +f 1382/2590/7924 1385/1468/7925 1437/1520/7926 +f 1438/2595/7927 1302/2587/7928 1284/1366/7929 +f 1284/1366/7930 1281/1365/7931 1438/2595/7932 +f 1438/2595/7933 1281/1365/7934 1381/1464/7935 +f 1381/1464/7936 1382/1465/7937 1438/2595/7938 +f 1431/1514/7939 1439/1522/7940 1301/1383/7941 +f 1301/1383/7942 1298/1382/7943 1431/1514/7944 +f 1431/1514/7945 1428/1511/7946 1440/1523/7947 +f 1440/1523/7948 1439/1522/7949 1431/1514/7950 +f 1440/1580/7951 1442/1581/7952 1441/1578/7953 +f 1441/1578/7954 1439/1579/7955 1440/1580/7956 +f 1440/1523/7957 1428/1511/7958 1429/1513/7959 +f 1429/1513/7960 1443/1524/7961 1440/1523/7962 +f 1440/1580/7963 1443/1582/7964 1349/1576/7965 +f 1349/1576/7966 1442/1581/7967 1440/1580/7968 +f 1443/1524/7969 1429/1513/7970 1354/1437/7971 +f 1354/1437/7972 1352/1433/7973 1443/1524/7974 +f 1443/1524/7975 1352/1433/7976 1350/1436/7977 +f 1350/1436/7978 1349/1527/7979 1443/1524/7980 +f 1441/1578/7981 1445/1585/7982 1444/1583/7983 +f 1444/1583/7984 1446/1584/7985 1441/1578/7986 +f 1441/1578/7987 1446/1584/7988 1301/1571/7989 +f 1301/1571/7990 1439/1579/7991 1441/1578/7992 +f 1441/1578/7993 1442/1581/7994 1447/1586/7995 +f 1447/1586/7996 1445/1585/7997 1441/1578/7998 +f 1446/1584/7999 1444/1583/8000 1448/1587/8001 +f 1448/1587/8002 1449/1588/8003 1446/1584/8004 +f 1446/1584/8005 1449/1588/8006 1304/1541/8007 +f 1304/1541/8008 1301/1571/8009 1446/1584/8010 +f 1449/1588/8011 1448/1587/8012 1450/1690/8013 +f 1450/1690/8014 1451/1691/8015 1449/1588/8016 +f 1449/1588/8017 1451/1691/8018 1452/2536/8019 +f 1452/2536/8020 1304/1541/8021 1449/1588/8022 +f 1452/2536/8023 1451/1691/8024 1453/2537/8025 +f 1453/2537/8026 1454/2538/8027 1452/2536/8028 +f 1452/2536/8029 1454/2538/8030 1455/2539/8031 +f 1455/2539/8032 1456/2540/8033 1452/2536/8034 +f 1452/2536/8035 1456/2540/8036 1303/1542/8037 +f 1303/1542/8038 1304/1541/8039 1452/2536/8040 +f 1456/2540/8041 1455/2539/8042 1457/2541/8043 +f 1457/2541/8044 1458/2542/8045 1456/2540/8046 +f 1456/2540/8047 1458/2542/8048 1285/2543/8049 +f 1285/2543/8050 1303/1542/8051 1456/2540/8052 +f 1458/2497/8053 1457/2498/8054 1459/2495/8055 +f 1459/2495/8056 1460/2496/8057 1458/2497/8058 +f 1458/2497/8059 1460/2496/8060 1286/2499/8061 +f 1286/2499/8062 1285/2501/8063 1458/2497/8064 +f 1460/2496/8065 1459/2495/8066 1461/2502/8067 +f 1461/2502/8068 1462/2503/8069 1460/2496/8070 +f 1460/2496/8071 1462/2503/8072 1287/2504/8073 +f 1287/2504/8074 1286/2499/8075 1460/2496/8076 +f 1462/2503/8077 1461/2502/8078 1463/2505/8079 +f 1463/2505/8080 1464/2506/8081 1462/2503/8082 +f 1462/2503/8083 1464/2506/8084 1465/2507/8085 +f 1465/2507/8086 1287/2504/8087 1462/2503/8088 +f 1465/2507/8089 1464/2506/8090 1466/2508/8091 +f 1466/2508/8092 1336/2509/8093 1465/2507/8094 +f 1465/1549/8095 1336/1420/8096 1278/1363/8097 +f 1278/1363/8098 1279/1362/8099 1465/1549/8100 +f 1465/1549/8101 1279/1362/8102 1288/1372/8103 +f 1288/1372/8104 1287/1371/8105 1465/1549/8106 +f 1466/2508/8107 1464/2506/8108 1463/2505/8109 +f 1463/2505/8110 1467/2510/8111 1466/2508/8112 +f 1466/2508/8113 1467/2510/8114 1468/2511/8115 +f 1468/2511/8116 1469/2512/8117 1466/2508/8118 +f 1466/2508/8119 1469/2512/8120 1333/2513/8121 +f 1333/2513/8122 1336/2509/8123 1466/2508/8124 +f 1469/2512/8125 1468/2511/8126 1332/1567/8127 +f 1332/1567/8128 1331/1565/8129 1469/2512/8130 +f 1469/2512/8131 1331/1565/8132 1329/1564/8133 +f 1329/1564/8134 1333/2513/8135 1469/2512/8136 +f 1468/2511/8137 1467/2510/8138 1470/2514/8139 +f 1470/2514/8140 1471/2515/8141 1468/2511/8142 +f 1468/2511/8143 1471/2515/8144 1472/2516/8145 +f 1472/2516/8146 1332/1567/8147 1468/2511/8148 +f 1472/2516/8149 1471/2515/8150 1473/2517/8151 +f 1473/2517/8152 1474/2518/8153 1472/2516/8154 +f 1472/2516/8155 1474/2518/8156 1475/2519/8157 +f 1475/2519/8158 1476/2520/8159 1472/2516/8160 +f 1472/2516/8161 1476/2520/8162 1326/1563/8163 +f 1326/1563/8164 1332/1567/8165 1472/2516/8166 +f 1476/2520/8167 1475/2519/8168 1477/2521/8169 +f 1477/2521/8170 1478/2522/8171 1476/2520/8172 +f 1476/2520/8173 1478/2522/8174 1325/1560/8175 +f 1325/1560/8176 1326/1563/8177 1476/2520/8178 +f 1475/2519/8179 1474/2518/8180 1479/2523/8181 +f 1479/2523/8182 1480/2524/8183 1475/2519/8184 +f 1475/2519/8185 1480/2524/8186 1481/2525/8187 +f 1481/2525/8188 1477/2521/8189 1475/2519/8190 +f 1480/2524/8191 1479/2523/8192 1482/1392/8193 +f 1482/1392/8194 1483/1393/8195 1480/2524/8196 +f 1480/2524/8197 1483/1393/8198 1484/1394/8199 +f 1484/1394/8200 1481/2525/8201 1480/2524/8202 +f 1482/1392/8203 1479/2523/8204 1485/2526/8205 +f 1485/2526/8206 391/1396/8207 1482/1392/8208 +f 391/1396/8209 1485/2526/8210 1271/1431/8211 +f 1271/1431/8212 397/475/8213 391/1396/8214 +f 1485/2526/8215 1479/2523/8216 1474/2518/8217 +f 1474/2518/8218 1473/2517/8219 1485/2526/8220 +f 1485/2526/8221 1473/2517/8222 1272/1543/8223 +f 1272/1543/8224 1271/1431/8225 1485/2526/8226 +f 1473/2517/8227 1471/2515/8228 1470/2514/8229 +f 1470/2514/8230 1272/1543/8231 1473/2517/8232 +f 1470/2514/8233 1311/1552/8234 1273/1544/8235 +f 1273/1544/8236 1272/1543/8237 1470/2514/8238 +f 1470/2514/8239 1467/2510/8240 1463/2505/8241 +f 1463/2505/8242 1311/1552/8243 1470/2514/8244 +f 1463/2505/8245 1461/2502/8246 1307/1547/8247 +f 1307/1547/8248 1311/1552/8249 1463/2505/8250 +f 1461/2502/8251 1459/2495/8252 1310/1551/8253 +f 1310/1551/8254 1307/1547/8255 1461/2502/8256 +f 1459/2495/8257 1457/2498/8258 1486/2527/8259 +f 1486/2527/8260 1310/1551/8261 1459/2495/8262 +f 1486/2546/8263 1488/2547/8264 1487/2544/8265 +f 1487/2544/8266 1489/2545/8267 1486/2546/8268 +f 1486/2527/8269 1489/2528/8270 1309/1550/8271 +f 1309/1550/8272 1310/1551/8273 1486/2527/8274 +f 1486/2546/8275 1457/2541/8276 1455/2539/8277 +f 1455/2539/8278 1488/2547/8279 1486/2546/8280 +f 1487/2544/8281 1491/2550/8282 1490/2548/8283 +f 1490/2548/8284 1492/2549/8285 1487/2544/8286 +f 1487/2544/8287 1492/2549/8288 1315/2551/8289 +f 1315/2551/8290 1489/2545/8291 1487/2544/8292 +f 1487/2544/8293 1488/2547/8294 1493/2552/8295 +f 1493/2552/8296 1491/2550/8297 1487/2544/8298 +f 1493/2552/8299 1495/2554/8300 1494/2553/8301 +f 1494/2553/8302 1491/2550/8303 1493/2552/8304 +f 1493/2552/8305 1488/2547/8306 1455/2539/8307 +f 1455/2539/8308 1454/2538/8309 1493/2552/8310 +f 1493/2552/8311 1454/2538/8312 1453/2537/8313 +f 1453/2537/8314 1495/2554/8315 1493/2552/8316 +f 1494/2553/8317 1497/2557/8318 1496/2555/8319 +f 1496/2555/8320 1498/2556/8321 1494/2553/8322 +f 1494/2553/8323 1498/2556/8324 1490/2548/8325 +f 1490/2548/8326 1491/2550/8327 1494/2553/8328 +f 1494/2553/8329 1495/2554/8330 1499/2558/8331 +f 1499/2558/8332 1497/2557/8333 1494/2553/8334 +f 1499/2558/8335 1501/1428/8336 1500/1427/8337 +f 1500/1427/8338 1497/2557/8339 1499/2558/8340 +f 1499/2558/8341 1495/2554/8342 1453/2537/8343 +f 1453/2537/8344 1502/2559/8345 1499/2558/8346 +f 1499/2558/8347 1502/2559/8348 392/1430/8349 +f 392/1430/8350 1501/1428/8351 1499/2558/8352 +f 392/1430/8353 1502/2559/8354 1450/1690/8355 +f 1450/1690/8356 1503/1525/8357 392/1430/8358 +f 1503/1525/8359 1450/1690/8360 1448/1587/8361 +f 1448/1587/8362 599/1526/8363 1503/1525/8364 +f 599/1526/8365 1448/1587/8366 1444/1583/8367 +f 1444/1583/8368 1504/1528/8369 599/1526/8370 +f 1504/1528/8371 1444/1583/8372 1445/1585/8373 +f 1445/1585/8374 600/1529/8375 1504/1528/8376 +f 600/1529/8377 1445/1585/8378 1447/1586/8379 +f 1447/1586/8380 601/1530/8381 600/1529/8382 +f 1502/2559/8383 1453/2537/8384 1451/1691/8385 +f 1451/1691/8386 1450/1690/8387 1502/2559/8388 +f 1500/1427/8389 393/1531/8390 1496/2555/8391 +f 1496/2555/8392 1497/2557/8393 1500/1427/8394 +f 393/1531/8395 602/1533/8396 1294/2560/8397 +f 1294/2560/8398 1496/2555/8399 393/1531/8400 +f 1498/2556/8401 1496/2555/8402 1294/2560/8403 +f 1294/2560/8404 1295/2561/8405 1498/2556/8406 +f 1498/2556/8407 1295/2561/8408 1505/2562/8409 +f 1505/2562/8410 1490/2548/8411 1498/2556/8412 +f 1505/1426/8413 1295/686/8414 1292/479/8415 +f 1292/479/8416 1506/1425/8417 1505/1426/8418 +f 1505/1426/8419 1506/1425/8420 1507/1589/8421 +f 1507/1589/8422 1508/1590/8423 1505/1426/8424 +f 1505/2562/8425 1508/2563/8426 1492/2549/8427 +f 1492/2549/8428 1490/2548/8429 1505/2562/8430 +f 1509/1591/8431 1508/1590/8432 1507/1589/8433 +f 1507/1589/8434 1322/1381/8435 1509/1591/8436 +f 1508/2563/8437 1509/2564/8438 1315/2551/8439 +f 1315/2551/8440 1492/2549/8441 1508/2563/8442 +f 1509/2529/8443 1510/2530/8444 1314/1555/8445 +f 1314/1555/8446 1315/1558/8447 1509/2529/8448 +f 1510/1593/8449 1319/1380/8450 1320/1404/8451 +f 1320/1404/8452 1511/1592/8453 1510/1593/8454 +f 1510/2530/8455 1511/2531/8456 1318/1559/8457 +f 1318/1559/8458 1314/1555/8459 1510/2530/8460 +f 1511/1592/8461 1320/1404/8462 1512/1594/8463 +f 1512/1594/8464 1513/1595/8465 1511/1592/8466 +f 1511/2531/8467 1513/2533/8468 1514/2532/8469 +f 1514/2532/8470 1318/1559/8471 1511/2531/8472 +f 1514/2532/8473 1313/1554/8474 1312/1553/8475 +f 1312/1553/8476 1318/1559/8477 1514/2532/8478 +f 1514/2532/8479 1513/2533/8480 1515/1411/8481 +f 1515/1411/8482 613/1412/8483 1514/2532/8484 +f 1514/2532/8485 613/1412/8486 394/1414/8487 +f 394/1414/8488 1313/1554/8489 1514/2532/8490 +f 1515/1597/8491 1513/1595/8492 1512/1594/8493 +f 1512/1594/8494 395/1596/8495 1515/1597/8496 +f 395/1596/8497 1512/1594/8498 1516/1599/8499 +f 1516/1599/8500 1517/1600/8501 395/1596/8502 +f 1517/1600/8503 1516/1599/8504 1518/1601/8505 +f 1518/1601/8506 1519/1602/8507 1517/1600/8508 +f 1519/1602/8509 1518/1601/8510 1520/1603/8511 +f 1520/1603/8512 1521/1604/8513 1519/1602/8514 +f 1521/1604/8515 1520/1603/8516 1340/2611/8517 +f 1340/2611/8518 1341/2612/8519 1521/1604/8520 +f 1520/1603/8521 1518/1601/8522 1522/1605/8523 +f 1522/1605/8524 1523/1606/8525 1520/1603/8526 +f 1520/1603/8527 1523/1606/8528 1524/1607/8529 +f 1524/1607/8530 1340/2611/8531 1520/1603/8532 +f 1526/1608/8533 1525/1609/8534 1524/1607/8535 +f 1524/1607/8536 1523/1606/8537 1526/1608/8538 +f 1296/1378/8539 1524/2613/8540 1525/2614/8541 +f 1525/2614/8542 1527/1610/8543 1296/1378/8544 +f 1524/2613/8545 1296/1378/8546 1297/1379/8547 +f 1297/1379/8548 1340/1407/8549 1524/2613/8550 +f 1530/1613/8551 1529/2616/8552 1528/1611/8553 +f 1528/1611/8554 1531/1612/8555 1530/1613/8556 +f 1530/1613/8557 1531/1612/8558 1532/1615/8559 +f 1532/1615/8560 1533/1616/8561 1530/1613/8562 +f 1527/1610/8563 1530/1613/8564 1533/1616/8565 +f 1533/1616/8566 1534/1617/8567 1527/1610/8568 +f 1533/1616/8569 1532/1615/8570 1535/1618/8571 +f 1535/1618/8572 1536/1619/8573 1533/1616/8574 +f 1534/1617/8575 1533/1616/8576 1536/1619/8577 +f 1536/1619/8578 1537/1620/8579 1534/1617/8580 +f 1536/1619/8581 1535/1618/8582 1538/1621/8583 +f 1538/1621/8584 1539/1622/8585 1536/1619/8586 +f 1537/1620/8587 1536/1619/8588 1539/1622/8589 +f 1539/1622/8590 1540/1623/8591 1537/1620/8592 +f 1539/1622/8593 1538/1621/8594 1541/1624/8595 +f 1541/1624/8596 1542/1625/8597 1539/1622/8598 +f 1540/1623/8599 1539/1622/8600 1542/1625/8601 +f 1542/1625/8602 1543/1626/8603 1540/1623/8604 +f 1542/1625/8605 1541/1624/8606 1544/1627/8607 +f 1544/1627/8608 1545/1628/8609 1542/1625/8610 +f 1543/1626/8611 1542/1625/8612 1545/1628/8613 +f 1545/1628/8614 1324/1405/8615 1543/1626/8616 +f 1546/1630/8617 1544/1627/8618 1541/1624/8619 +f 1541/1624/8620 1547/1629/8621 1546/1630/8622 +f 1548/1632/8623 1544/1627/8624 1546/1630/8625 +f 1546/1630/8626 1549/1631/8627 1548/1632/8628 +f 1544/1627/8629 1548/1632/8630 1550/1633/8631 +f 1550/1633/8632 1545/1628/8633 1544/1627/8634 +f 1551/1635/8635 1548/1632/8636 1549/1631/8637 +f 1549/1631/8638 1552/1634/8639 1551/1635/8640 +f 1548/1632/8641 1551/1635/8642 1553/1636/8643 +f 1553/1636/8644 1550/1633/8645 1548/1632/8646 +f 1553/1636/8647 1551/1635/8648 1554/1637/8649 +f 1554/1637/8650 1555/1638/8651 1553/1636/8652 +f 1526/1608/8653 1556/1639/8654 1553/1636/8655 +f 1553/1636/8656 1555/1638/8657 1526/1608/8658 +f 1550/1633/8659 1553/1636/8660 1556/1639/8661 +f 1556/1639/8662 1323/1406/8663 1550/1633/8664 +f 1552/1634/8665 1557/1640/8666 1554/1637/8667 +f 1554/1637/8668 1551/1635/8669 1552/1634/8670 +f 1558/1641/8671 1528/2615/8672 1554/1637/8673 +f 1554/1637/8674 1557/1640/8675 1558/1641/8676 +f 1554/1637/8677 1528/2615/8678 1529/1614/8679 +f 1529/1614/8680 1555/1638/8681 1554/1637/8682 +f 1561/1644/8683 1560/1645/8684 1559/2618/8685 +f 1559/2618/8686 1562/1643/8687 1561/1644/8688 +f 1563/1647/8689 1559/1642/8690 1560/2619/8691 +f 1560/2619/8692 1564/1646/8693 1563/1647/8694 +f 1558/2617/8695 1559/1642/8696 1563/1647/8697 +f 1563/1647/8698 1565/1648/8699 1558/2617/8700 +f 1566/1650/8701 1563/1647/8702 1564/1646/8703 +f 1564/1646/8704 1567/1649/8705 1566/1650/8706 +f 1565/1648/8707 1563/1647/8708 1566/1650/8709 +f 1566/1650/8710 1568/1651/8711 1565/1648/8712 +f 1569/1653/8713 1566/1650/8714 1567/1649/8715 +f 1567/1649/8716 1570/1652/8717 1569/1653/8718 +f 1568/1651/8719 1566/1650/8720 1569/1653/8721 +f 1569/1653/8722 1571/1654/8723 1568/1651/8724 +f 1573/1655/8725 1572/1656/8726 1569/1653/8727 +f 1569/1653/8728 1570/1652/8729 1573/1655/8730 +f 1571/1654/8731 1569/1653/8732 1572/1656/8733 +f 1572/1656/8734 1574/1657/8735 1571/1654/8736 +f 1576/1658/8737 1575/1659/8738 1572/1656/8739 +f 1572/1656/8740 1573/1655/8741 1576/1658/8742 +f 1547/1629/8743 1574/1657/8744 1572/1656/8745 +f 1572/1656/8746 1575/1659/8747 1547/1629/8748 +f 1579/1662/8749 1578/1663/8750 1577/1660/8751 +f 1577/1660/8752 1580/1661/8753 1579/1662/8754 +f 1579/1662/8755 1580/1661/8756 1581/1664/8757 +f 1581/1664/8758 1582/1665/8759 1579/1662/8760 +f 1576/1658/8761 1579/1662/8762 1582/1665/8763 +f 1582/1665/8764 1583/1666/8765 1576/1658/8766 +f 1582/1665/8767 1581/1664/8768 1584/1667/8769 +f 1584/1667/8770 1585/1668/8771 1582/1665/8772 +f 1583/1666/8773 1582/1665/8774 1585/1668/8775 +f 1585/1668/8776 1586/1669/8777 1583/1666/8778 +f 1585/1668/8779 1584/1667/8780 1587/1670/8781 +f 1587/1670/8782 1588/1671/8783 1585/1668/8784 +f 1586/1669/8785 1585/1668/8786 1588/1671/8787 +f 1588/1671/8788 1589/1672/8789 1586/1669/8790 +f 1588/1671/8791 1587/1670/8792 1590/1673/8793 +f 1590/1673/8794 1591/1674/8795 1588/1671/8796 +f 1561/1644/8797 1589/1672/8798 1588/1671/8799 +f 1588/1671/8800 1591/1674/8801 1561/1644/8802 +f 1590/1673/8803 1592/1676/8804 1593/1675/8805 +f 1593/1675/8806 1591/1674/8807 1590/1673/8808 +f 1592/2621/8809 1594/1678/8810 1595/1677/8811 +f 1595/1677/8812 1593/2620/8813 1592/2621/8814 +f 1594/1678/8815 1596/1680/8816 1597/1679/8817 +f 1597/1679/8818 1595/1677/8819 1594/1678/8820 +f 1596/1680/8821 1598/1682/8822 1599/1681/8823 +f 1599/1681/8824 1597/1679/8825 1596/1680/8826 +f 1598/1682/8827 1577/1660/8828 1578/1663/8829 +f 1578/1663/8830 1599/1681/8831 1598/1682/8832 +f 1522/1605/8833 1518/1601/8834 1516/1599/8835 +f 1516/1599/8836 1321/1403/8837 1522/1605/8838 +f 1516/1599/8839 1512/1594/8840 1320/1404/8841 +f 1320/1404/8842 1321/1403/8843 1516/1599/8844 +f 1442/1581/8845 1349/1576/8846 1343/1572/8847 +f 1343/1572/8848 1447/1586/8849 1442/1581/8850 +f 1404/1487/8851 1357/1440/8852 1355/1438/8853 +f 1355/1438/8854 1354/1437/8855 1404/1487/8856 +f 1381/1464/8857 1281/1365/8858 1282/1368/8859 +f 1282/1368/8860 1600/1684/8861 1381/1464/8862 +f 1366/1449/8863 1601/1685/8864 1291/1375/8865 +f 1291/1375/8866 1337/1421/8867 1366/1449/8868 +f 1328/1561/8869 1603/2535/8870 1602/2534/8871 +f 1602/2534/8872 1327/1562/8873 1328/1561/8874 +f 1302/2587/8875 1303/1386/8876 1285/1369/8877 +f 1285/1369/8878 1284/1366/8879 1302/2587/8880 +f 1342/1408/8881 1297/1379/8882 1294/1376/8883 +f 1294/1376/8884 602/1683/8885 1342/1408/8886 +f 1602/2534/8887 1603/2535/8888 1348/1686/8889 +f 1348/1686/8890 1347/1598/8891 1602/2534/8892 +f 1602/2534/8893 1347/1598/8894 1330/1566/8895 +f 1330/1566/8896 1327/1562/8897 1602/2534/8898 +f 1291/1375/8899 1601/1685/8900 1600/1684/8901 +f 1600/1684/8902 1282/1368/8903 1291/1375/8904 +f 1289/1373/8905 1288/1372/8906 1279/1362/8907 +f 1279/1362/8908 1280/1364/8909 1289/1373/8910 +f 1269/478/8911 1270/1432/8912 1313/1554/8913 +f 1313/1554/8914 394/1414/8915 1269/478/8916 +f 1436/1519/8917 1435/1518/8918 1385/1468/8919 +f 1385/1468/8920 1384/1467/8921 1436/1519/8922 +f 1436/1519/8923 1384/1467/8924 1389/1472/8925 +f 1389/1472/8926 1393/1476/8927 1436/1519/8928 +f 1308/1546/8929 1313/1554/8930 1270/1432/8931 +f 1270/1432/8932 1273/1544/8933 1308/1546/8934 +f 1600/1684/8935 1601/1685/8936 1604/1688/8937 +f 1604/1688/8938 1605/1689/8939 1600/1684/8940 +f 1366/1449/8941 1369/1452/8942 1604/1688/8943 +f 1604/1688/8944 1601/1685/8945 1366/1449/8946 +f 1605/1689/8947 1604/1688/8948 1369/1452/8949 +f 1369/1452/8950 1377/1460/8951 1605/1689/8952 +f 1381/1464/8953 1600/1684/8954 1605/1689/8955 +f 1605/1689/8956 1377/1460/8957 1381/1464/8958 +f 601/1530/8959 1447/1586/8960 1606/2565/8961 +f 1606/2565/8962 1607/1540/8963 601/1530/8964 +f 1447/1586/8965 1343/1572/8966 1344/1575/8967 +f 1344/1575/8968 1606/2565/8969 1447/1586/8970 +f 1610/1694/8971 1609/1695/8972 1608/1692/8973 +f 1608/1692/8974 1611/1693/8975 1610/1694/8976 +f 1614/1698/8977 1613/1699/8978 1612/1696/8979 +f 1612/1696/8980 1615/1697/8981 1614/1698/8982 +f 1618/1702/8983 1617/1703/8984 1616/1700/8985 +f 1616/1700/8986 1619/1701/8987 1618/1702/8988 +f 1622/1706/8989 1621/1707/8990 1620/1704/8991 +f 1620/1704/8992 1623/1705/8993 1622/1706/8994 +f 1618/1702/8995 1625/1710/8996 1624/1708/8997 +f 1624/1708/8998 1626/1709/8999 1618/1702/9000 +f 1629/1713/9001 1628/1714/9002 1627/1711/9003 +f 1627/1711/9004 1630/1712/9005 1629/1713/9006 +f 1633/1717/9007 1632/1718/9008 1631/1715/9009 +f 1631/1715/9010 1634/1716/9011 1633/1717/9012 +f 1637/1721/9013 1636/1722/9014 1635/1719/9015 +f 1635/1719/9016 1638/1720/9017 1637/1721/9018 +f 1641/1725/9019 1640/1726/9020 1639/1723/9021 +f 1639/1723/9022 1642/1724/9023 1641/1725/9024 +f 1643/1727/9025 1616/1700/9026 1622/1706/9027 +f 1622/1706/9028 1635/1719/9029 1643/1727/9030 +f 1646/1729/9031 1645/1730/9032 1644/1728/9033 +f 1644/1728/9034 1639/1723/9035 1646/1729/9036 +f 1649/1733/9037 1648/1734/9038 1647/1731/9039 +f 1647/1731/9040 1650/1732/9041 1649/1733/9042 +f 1653/1737/9043 1652/1738/9044 1651/1735/9045 +f 1651/1735/9046 1654/1736/9047 1653/1737/9048 +f 1656/1739/9049 1655/1740/9050 1639/1723/9051 +f 1639/1723/9052 1640/1726/9053 1656/1739/9054 +f 1656/1739/9055 1638/1720/9056 1635/1719/9057 +f 1635/1719/9058 1655/1740/9059 1656/1739/9060 +f 1658/1747/9061 1657/1748/9062 1636/1741/9063 +f 1636/1741/9064 1637/1742/9065 1658/1747/9066 +f 1658/1747/9067 1641/1750/9068 1642/2383/9069 +f 1642/2383/9070 1657/1748/9071 1658/1747/9072 +f 1661/1745/9073 1660/1746/9074 1659/1743/9075 +f 1659/1743/9076 1662/1744/9077 1661/1745/9078 +f 1665/1756/9079 1664/1757/9080 1663/1753/9081 +f 1663/1753/9082 1666/1754/9083 1665/1756/9084 +f 1644/1728/9085 1645/1730/9086 1667/1751/9087 +f 1667/1751/9088 1668/1752/9089 1644/1728/9090 +f 1669/1775/9091 1652/1738/9092 1653/1737/9093 +f 1653/1737/9094 1670/1774/9095 1669/1775/9096 +f 1619/1701/9097 1616/1700/9098 1643/1727/9099 +f 1643/1727/9100 1671/1755/9101 1619/1701/9102 +f 1672/1787/9103 1664/1757/9104 1665/1756/9105 +f 1665/1756/9106 1673/1786/9107 1672/1787/9108 +f 1676/1760/9109 1675/1761/9110 1674/1758/9111 +f 1674/1758/9112 1677/1759/9113 1676/1760/9114 +f 1678/1763/9115 1676/1760/9116 1677/1759/9117 +f 1677/1759/9118 1679/1762/9119 1678/1763/9120 +f 1682/1766/9121 1681/1767/9122 1680/1764/9123 +f 1680/1764/9124 1683/1765/9125 1682/1766/9126 +f 1686/1770/9127 1685/1771/9128 1684/1768/9129 +f 1684/1768/9130 1687/1769/9131 1686/1770/9132 +f 1684/1768/9133 1689/1773/9134 1688/1772/9135 +f 1688/1772/9136 1687/1769/9137 1684/1768/9138 +f 1688/1772/9139 1689/1773/9140 1682/1766/9141 +f 1682/1766/9142 1683/1765/9143 1688/1772/9144 +f 1680/1800/9145 1681/1801/9146 1690/1798/9147 +f 1690/1798/9148 1691/1799/9149 1680/1800/9150 +f 1690/1798/9151 1685/1803/9152 1686/1802/9153 +f 1686/1802/9154 1691/1799/9155 1690/1798/9156 +f 1694/1778/9157 1693/1779/9158 1692/1776/9159 +f 1692/1776/9160 1695/1777/9161 1694/1778/9162 +f 1698/1782/9163 1697/1783/9164 1696/1780/9165 +f 1696/1780/9166 1699/1781/9167 1698/1782/9168 +f 1696/1780/9169 1701/1785/9170 1700/1784/9171 +f 1700/1784/9172 1699/1781/9173 1696/1780/9174 +f 1700/1784/9175 1701/1785/9176 1694/1778/9177 +f 1694/1778/9178 1695/1777/9179 1700/1784/9180 +f 1693/1806/9181 1703/1812/9182 1702/1804/9183 +f 1702/1804/9184 1692/1805/9185 1693/1806/9186 +f 1702/1804/9187 1703/1812/9188 1697/1813/9189 +f 1697/1813/9190 1698/1814/9191 1702/1804/9192 +f 1706/1790/9193 1705/1791/9194 1704/1788/9195 +f 1704/1788/9196 1707/1789/9197 1706/1790/9198 +f 1710/1794/9199 1709/1795/9200 1708/1792/9201 +f 1708/1792/9202 1711/1793/9203 1710/1794/9204 +f 1712/1797/9205 1710/1794/9206 1711/1793/9207 +f 1711/1793/9208 1713/1796/9209 1712/1797/9210 +f 1705/1791/9211 1712/1797/9212 1713/1796/9213 +f 1713/1796/9214 1704/1788/9215 1705/1791/9216 +f 1716/1817/9217 1715/1818/9218 1714/1815/9219 +f 1714/1815/9220 1717/1816/9221 1716/1817/9222 +f 1718/1820/9223 1716/1817/9224 1717/1816/9225 +f 1717/1816/9226 1719/1819/9227 1718/1820/9228 +f 1707/1789/9229 1704/1788/9230 1683/1765/9231 +f 1683/1765/9232 1680/1764/9233 1707/1789/9234 +f 1711/1793/9235 1708/1792/9236 1686/1770/9237 +f 1686/1770/9238 1687/1769/9239 1711/1793/9240 +f 1713/1796/9241 1711/1793/9242 1687/1769/9243 +f 1687/1769/9244 1688/1772/9245 1713/1796/9246 +f 1704/1788/9247 1713/1796/9248 1688/1772/9249 +f 1688/1772/9250 1683/1765/9251 1704/1788/9252 +f 1717/1816/9253 1714/1815/9254 1720/1821/9255 +f 1720/1821/9256 1721/1822/9257 1717/1816/9258 +f 1719/1819/9259 1717/1816/9260 1721/1822/9261 +f 1721/1822/9262 1722/1823/9263 1719/1819/9264 +f 1681/1767/9265 1682/1766/9266 1723/1807/9267 +f 1723/1807/9268 1724/1808/9269 1681/1767/9270 +f 1684/1768/9271 1685/1771/9272 1725/1809/9273 +f 1725/1809/9274 1726/1810/9275 1684/1768/9276 +f 1689/1773/9277 1684/1768/9278 1726/1810/9279 +f 1726/1810/9280 1727/1811/9281 1689/1773/9282 +f 1682/1766/9283 1689/1773/9284 1727/1811/9285 +f 1727/1811/9286 1723/1807/9287 1682/1766/9288 +f 1730/1826/9289 1729/1827/9290 1728/1824/9291 +f 1728/1824/9292 1731/1825/9293 1730/1826/9294 +f 1732/1829/9295 1730/1826/9296 1731/1825/9297 +f 1731/1825/9298 1733/1828/9299 1732/1829/9300 +f 1724/1808/9301 1723/1807/9302 1695/1777/9303 +f 1695/1777/9304 1692/1776/9305 1724/1808/9306 +f 1726/1810/9307 1725/1809/9308 1698/1782/9309 +f 1698/1782/9310 1699/1781/9311 1726/1810/9312 +f 1727/1811/9313 1726/1810/9314 1699/1781/9315 +f 1699/1781/9316 1700/1784/9317 1727/1811/9318 +f 1723/1807/9319 1727/1811/9320 1700/1784/9321 +f 1700/1784/9322 1695/1777/9323 1723/1807/9324 +f 1731/1825/9325 1728/1824/9326 1734/1830/9327 +f 1734/1830/9328 1735/1831/9329 1731/1825/9330 +f 1733/1828/9331 1731/1825/9332 1735/1831/9333 +f 1735/1831/9334 1736/1832/9335 1733/1828/9336 +f 1716/1817/9337 1737/1834/9338 1706/1833/9339 +f 1706/1833/9340 1715/1818/9341 1716/1817/9342 +f 1718/1820/9343 1709/1835/9344 1737/1834/9345 +f 1737/1834/9346 1716/1817/9347 1718/1820/9348 +f 1719/1819/9349 1708/1836/9350 1709/1835/9351 +f 1709/1835/9352 1718/1820/9353 1719/1819/9354 +f 1722/1823/9355 1686/1802/9356 1708/1836/9357 +f 1708/1836/9358 1719/1819/9359 1722/1823/9360 +f 1721/1822/9361 1691/1799/9362 1686/1802/9363 +f 1686/1802/9364 1722/1823/9365 1721/1822/9366 +f 1720/1821/9367 1680/1800/9368 1691/1799/9369 +f 1691/1799/9370 1721/1822/9371 1720/1821/9372 +f 1714/1815/9373 1707/1837/9374 1680/1800/9375 +f 1680/1800/9376 1720/1821/9377 1714/1815/9378 +f 1715/1818/9379 1706/1833/9380 1707/1837/9381 +f 1707/1837/9382 1714/1815/9383 1715/1818/9384 +f 1730/1826/9385 1690/1798/9386 1681/1801/9387 +f 1681/1801/9388 1729/1827/9389 1730/1826/9390 +f 1732/1829/9391 1685/1803/9392 1690/1798/9393 +f 1690/1798/9394 1730/1826/9395 1732/1829/9396 +f 1733/1828/9397 1725/1838/9398 1685/1803/9399 +f 1685/1803/9400 1732/1829/9401 1733/1828/9402 +f 1736/1832/9403 1698/1814/9404 1725/1838/9405 +f 1725/1838/9406 1733/1828/9407 1736/1832/9408 +f 1735/1831/9409 1702/1804/9410 1698/1814/9411 +f 1698/1814/9412 1736/1832/9413 1735/1831/9414 +f 1734/1830/9415 1692/1805/9416 1702/1804/9417 +f 1702/1804/9418 1735/1831/9419 1734/1830/9420 +f 1728/1824/9421 1724/1839/9422 1692/1805/9423 +f 1692/1805/9424 1734/1830/9425 1728/1824/9426 +f 1729/1827/9427 1681/1801/9428 1724/1839/9429 +f 1724/1839/9430 1728/1824/9431 1729/1827/9432 +f 1678/1763/9433 1679/1762/9434 1693/1779/9435 +f 1693/1779/9436 1694/1778/9437 1678/1763/9438 +f 1697/1783/9439 1674/1758/9440 1675/1761/9441 +f 1675/1761/9442 1696/1780/9443 1697/1783/9444 +f 1675/1761/9445 1676/1760/9446 1701/1785/9447 +f 1701/1785/9448 1696/1780/9449 1675/1761/9450 +f 1701/1785/9451 1676/1760/9452 1678/1763/9453 +f 1678/1763/9454 1694/1778/9455 1701/1785/9456 +f 1740/1852/9457 1739/1853/9458 1738/1840/9459 +f 1738/1840/9460 1741/1841/9461 1740/1852/9462 +f 1741/1841/9463 1738/1840/9464 1742/1870/9465 +f 1742/1870/9466 1743/1871/9467 1741/1841/9468 +f 1744/1894/9469 1679/1895/9470 1677/1882/9471 +f 1677/1882/9472 1745/1883/9473 1744/1894/9474 +f 1746/1896/9475 1693/1806/9476 1679/1895/9477 +f 1679/1895/9478 1744/1894/9479 1746/1896/9480 +f 1747/1897/9481 1703/1812/9482 1693/1806/9483 +f 1693/1806/9484 1746/1896/9485 1747/1897/9486 +f 1748/1898/9487 1697/1813/9488 1703/1812/9489 +f 1703/1812/9490 1747/1897/9491 1748/1898/9492 +f 1749/1899/9493 1674/1900/9494 1697/1813/9495 +f 1697/1813/9496 1748/1898/9497 1749/1899/9498 +f 1745/1883/9499 1677/1882/9500 1674/1900/9501 +f 1674/1900/9502 1749/1899/9503 1745/1883/9504 +f 1739/1853/9505 1744/1894/9506 1745/1883/9507 +f 1745/1883/9508 1738/1840/9509 1739/1853/9510 +f 1740/1852/9511 1746/1896/9512 1744/1894/9513 +f 1744/1894/9514 1739/1853/9515 1740/1852/9516 +f 1741/1841/9517 1747/1897/9518 1746/1896/9519 +f 1746/1896/9520 1740/1852/9521 1741/1841/9522 +f 1743/1871/9523 1748/1898/9524 1747/1897/9525 +f 1747/1897/9526 1741/1841/9527 1743/1871/9528 +f 1742/1870/9529 1749/1899/9530 1748/1898/9531 +f 1748/1898/9532 1743/1871/9533 1742/1870/9534 +f 1738/1840/9535 1745/1883/9536 1749/1899/9537 +f 1749/1899/9538 1742/1870/9539 1738/1840/9540 +f 1752/1908/9541 1751/1909/9542 1750/1901/9543 +f 1750/1901/9544 1753/1902/9545 1752/1908/9546 +f 1754/1911/9547 1648/1734/9548 1649/1733/9549 +f 1649/1733/9550 1755/1910/9551 1754/1911/9552 +f 1756/1913/9553 1751/1909/9554 1752/1908/9555 +f 1752/1908/9556 1757/1912/9557 1756/1913/9558 +f 1622/1706/9559 1623/1705/9560 1655/1740/9561 +f 1655/1740/9562 1635/1719/9563 1622/1706/9564 +f 1655/1740/9565 1623/1705/9566 1646/1729/9567 +f 1646/1729/9568 1639/1723/9569 1655/1740/9570 +f 1659/1743/9571 1660/1746/9572 1619/1701/9573 +f 1619/1701/9574 1671/1755/9575 1659/1743/9576 +f 1661/1745/9577 1662/1744/9578 1758/1842/9579 +f 1758/1842/9580 1759/1843/9581 1661/1745/9582 +f 1761/1844/9583 1760/1845/9584 1668/1752/9585 +f 1668/1752/9586 1667/1751/9587 1761/1844/9588 +f 1638/1720/9589 1705/1791/9590 1706/1790/9591 +f 1706/1790/9592 1637/1721/9593 1638/1720/9594 +f 1709/1795/9595 1710/1794/9596 1640/1726/9597 +f 1640/1726/9598 1641/1725/9599 1709/1795/9600 +f 1640/1726/9601 1710/1794/9602 1712/1797/9603 +f 1712/1797/9604 1656/1739/9605 1640/1726/9606 +f 1712/1797/9607 1705/1791/9608 1638/1720/9609 +f 1638/1720/9610 1656/1739/9611 1712/1797/9612 +f 1637/1742/9613 1706/1833/9614 1737/1834/9615 +f 1737/1834/9616 1658/1747/9617 1637/1742/9618 +f 1737/1834/9619 1709/1835/9620 1641/1750/9621 +f 1641/1750/9622 1658/1747/9623 1737/1834/9624 +f 1763/1847/9625 1762/1848/9626 1671/1755/9627 +f 1671/1755/9628 1764/1846/9629 1763/1847/9630 +f 1766/1849/9631 1765/1850/9632 1635/1719/9633 +f 1635/1719/9634 1636/1722/9635 1766/1849/9636 +f 1767/1851/9637 1643/1727/9638 1635/1719/9639 +f 1635/1719/9640 1765/1850/9641 1767/1851/9642 +f 1767/1851/9643 1764/1846/9644 1671/1755/9645 +f 1671/1755/9646 1643/1727/9647 1767/1851/9648 +f 1768/1915/9649 1766/1916/9650 1636/1741/9651 +f 1636/1741/9652 1769/1914/9653 1768/1915/9654 +f 1772/1856/9655 1771/1857/9656 1770/1854/9657 +f 1770/1854/9658 1773/1855/9659 1772/1856/9660 +f 1774/1859/9661 1772/1856/9662 1773/1855/9663 +f 1773/1855/9664 1775/1858/9665 1774/1859/9666 +f 1778/1862/9667 1777/1863/9668 1776/1860/9669 +f 1776/1860/9670 1779/1861/9671 1778/1862/9672 +f 1782/1866/9673 1781/1867/9674 1780/1864/9675 +f 1780/1864/9676 1783/1865/9677 1782/1866/9678 +f 1780/1864/9679 1785/1869/9680 1784/1868/9681 +f 1784/1868/9682 1783/1865/9683 1780/1864/9684 +f 1784/1868/9685 1785/1869/9686 1778/1862/9687 +f 1778/1862/9688 1779/1861/9689 1784/1868/9690 +f 1776/1919/9691 1777/1920/9692 1786/1917/9693 +f 1786/1917/9694 1787/1918/9695 1776/1919/9696 +f 1786/1917/9697 1781/1922/9698 1782/1921/9699 +f 1782/1921/9700 1787/1918/9701 1786/1917/9702 +f 1790/1874/9703 1789/1875/9704 1788/1872/9705 +f 1788/1872/9706 1791/1873/9707 1790/1874/9708 +f 1794/1878/9709 1793/1879/9710 1792/1876/9711 +f 1792/1876/9712 1795/1877/9713 1794/1878/9714 +f 1792/1876/9715 1797/1881/9716 1796/1880/9717 +f 1796/1880/9718 1795/1877/9719 1792/1876/9720 +f 1796/1880/9721 1797/1881/9722 1790/1874/9723 +f 1790/1874/9724 1791/1873/9725 1796/1880/9726 +f 1789/1925/9727 1799/1926/9728 1798/1923/9729 +f 1798/1923/9730 1788/1924/9731 1789/1925/9732 +f 1798/1923/9733 1799/1926/9734 1793/1927/9735 +f 1793/1927/9736 1794/1928/9737 1798/1923/9738 +f 1802/1886/9739 1801/1887/9740 1800/1884/9741 +f 1800/1884/9742 1803/1885/9743 1802/1886/9744 +f 1806/1890/9745 1805/1891/9746 1804/1888/9747 +f 1804/1888/9748 1807/1889/9749 1806/1890/9750 +f 1808/1893/9751 1806/1890/9752 1807/1889/9753 +f 1807/1889/9754 1809/1892/9755 1808/1893/9756 +f 1801/1887/9757 1808/1893/9758 1809/1892/9759 +f 1809/1892/9760 1800/1884/9761 1801/1887/9762 +f 1812/1936/9763 1811/1953/9764 1810/1929/9765 +f 1810/1929/9766 1813/1935/9767 1812/1936/9768 +f 1814/1965/9769 1812/1936/9770 1813/1935/9771 +f 1813/1935/9772 1815/1954/9773 1814/1965/9774 +f 1803/1885/9775 1800/1884/9776 1779/1861/9777 +f 1779/1861/9778 1776/1860/9779 1803/1885/9780 +f 1807/1889/9781 1804/1888/9782 1782/1866/9783 +f 1782/1866/9784 1783/1865/9785 1807/1889/9786 +f 1809/1892/9787 1807/1889/9788 1783/1865/9789 +f 1783/1865/9790 1784/1868/9791 1809/1892/9792 +f 1800/1884/9793 1809/1892/9794 1784/1868/9795 +f 1784/1868/9796 1779/1861/9797 1800/1884/9798 +f 1813/1935/9799 1810/1929/9800 1816/1966/9801 +f 1816/1966/9802 1817/1977/9803 1813/1935/9804 +f 1815/1954/9805 1813/1935/9806 1817/1977/9807 +f 1817/1977/9808 1818/1978/9809 1815/1954/9810 +f 1777/1863/9811 1778/1862/9812 1819/1903/9813 +f 1819/1903/9814 1820/1904/9815 1777/1863/9816 +f 1780/1864/9817 1781/1867/9818 1821/1905/9819 +f 1821/1905/9820 1822/1906/9821 1780/1864/9822 +f 1785/1869/9823 1780/1864/9824 1822/1906/9825 +f 1822/1906/9826 1823/1907/9827 1785/1869/9828 +f 1778/1862/9829 1785/1869/9830 1823/1907/9831 +f 1823/1907/9832 1819/1903/9833 1778/1862/9834 +f 1826/1981/9835 1825/1982/9836 1824/1979/9837 +f 1824/1979/9838 1827/1980/9839 1826/1981/9840 +f 1828/1984/9841 1826/1981/9842 1827/1980/9843 +f 1827/1980/9844 1829/1983/9845 1828/1984/9846 +f 1820/1904/9847 1819/1903/9848 1791/1873/9849 +f 1791/1873/9850 1788/1872/9851 1820/1904/9852 +f 1822/1906/9853 1821/1905/9854 1794/1878/9855 +f 1794/1878/9856 1795/1877/9857 1822/1906/9858 +f 1823/1907/9859 1822/1906/9860 1795/1877/9861 +f 1795/1877/9862 1796/1880/9863 1823/1907/9864 +f 1819/1903/9865 1823/1907/9866 1796/1880/9867 +f 1796/1880/9868 1791/1873/9869 1819/1903/9870 +f 1827/1980/9871 1824/1979/9872 1830/1985/9873 +f 1830/1985/9874 1831/1991/9875 1827/1980/9876 +f 1829/1983/9877 1827/1980/9878 1831/1991/9879 +f 1831/1991/9880 1832/1992/9881 1829/1983/9882 +f 1812/1936/9883 1833/1994/9884 1802/1993/9885 +f 1802/1993/9886 1811/1953/9887 1812/1936/9888 +f 1814/1965/9889 1805/1995/9890 1833/1994/9891 +f 1833/1994/9892 1812/1936/9893 1814/1965/9894 +f 1815/1954/9895 1804/1996/9896 1805/1995/9897 +f 1805/1995/9898 1814/1965/9899 1815/1954/9900 +f 1818/1978/9901 1782/1921/9902 1804/1996/9903 +f 1804/1996/9904 1815/1954/9905 1818/1978/9906 +f 1817/1977/9907 1787/1918/9908 1782/1921/9909 +f 1782/1921/9910 1818/1978/9911 1817/1977/9912 +f 1816/1966/9913 1776/1919/9914 1787/1918/9915 +f 1787/1918/9916 1817/1977/9917 1816/1966/9918 +f 1810/1929/9919 1803/1997/9920 1776/1919/9921 +f 1776/1919/9922 1816/1966/9923 1810/1929/9924 +f 1811/1953/9925 1802/1993/9926 1803/1997/9927 +f 1803/1997/9928 1810/1929/9929 1811/1953/9930 +f 1826/1981/9931 1786/1917/9932 1777/1920/9933 +f 1777/1920/9934 1825/1982/9935 1826/1981/9936 +f 1828/1984/9937 1781/1922/9938 1786/1917/9939 +f 1786/1917/9940 1826/1981/9941 1828/1984/9942 +f 1829/1983/9943 1821/1998/9944 1781/1922/9945 +f 1781/1922/9946 1828/1984/9947 1829/1983/9948 +f 1832/1992/9949 1794/1928/9950 1821/1998/9951 +f 1821/1998/9952 1829/1983/9953 1832/1992/9954 +f 1831/1991/9955 1798/1923/9956 1794/1928/9957 +f 1794/1928/9958 1832/1992/9959 1831/1991/9960 +f 1830/1985/9961 1788/1924/9962 1798/1923/9963 +f 1798/1923/9964 1831/1991/9965 1830/1985/9966 +f 1824/1979/9967 1820/1999/9968 1788/1924/9969 +f 1788/1924/9970 1830/1985/9971 1824/1979/9972 +f 1825/1982/9973 1777/1920/9974 1820/1999/9975 +f 1820/1999/9976 1824/1979/9977 1825/1982/9978 +f 1774/1859/9979 1775/1858/9980 1789/1875/9981 +f 1789/1875/9982 1790/1874/9983 1774/1859/9984 +f 1793/1879/9985 1770/1854/9986 1771/1857/9987 +f 1771/1857/9988 1792/1876/9989 1793/1879/9990 +f 1771/1857/9991 1772/1856/9992 1797/1881/9993 +f 1797/1881/9994 1792/1876/9995 1771/1857/9996 +f 1797/1881/9997 1772/1856/9998 1774/1859/9999 +f 1774/1859/10000 1790/1874/10001 1797/1881/10002 +f 1836/2002/10003 1835/2003/10004 1834/2000/10005 +f 1834/2000/10006 1837/2001/10007 1836/2002/10008 +f 1837/2001/10009 1834/2000/10010 1838/2004/10011 +f 1838/2004/10012 1839/2005/10013 1837/2001/10014 +f 1840/2008/10015 1775/2009/10016 1773/2006/10017 +f 1773/2006/10018 1841/2007/10019 1840/2008/10020 +f 1842/2010/10021 1789/1925/10022 1775/2009/10023 +f 1775/2009/10024 1840/2008/10025 1842/2010/10026 +f 1843/2011/10027 1799/1926/10028 1789/1925/10029 +f 1789/1925/10030 1842/2010/10031 1843/2011/10032 +f 1844/2012/10033 1793/1927/10034 1799/1926/10035 +f 1799/1926/10036 1843/2011/10037 1844/2012/10038 +f 1845/2018/10039 1770/2019/10040 1793/1927/10041 +f 1793/1927/10042 1844/2012/10043 1845/2018/10044 +f 1841/2007/10045 1773/2006/10046 1770/2019/10047 +f 1770/2019/10048 1845/2018/10049 1841/2007/10050 +f 1835/2003/10051 1840/2008/10052 1841/2007/10053 +f 1841/2007/10054 1834/2000/10055 1835/2003/10056 +f 1836/2002/10057 1842/2010/10058 1840/2008/10059 +f 1840/2008/10060 1835/2003/10061 1836/2002/10062 +f 1837/2001/10063 1843/2011/10064 1842/2010/10065 +f 1842/2010/10066 1836/2002/10067 1837/2001/10068 +f 1839/2005/10069 1844/2012/10070 1843/2011/10071 +f 1843/2011/10072 1837/2001/10073 1839/2005/10074 +f 1838/2004/10075 1845/2018/10076 1844/2012/10077 +f 1844/2012/10078 1839/2005/10079 1838/2004/10080 +f 1834/2000/10081 1841/2007/10082 1845/2018/10083 +f 1845/2018/10084 1838/2004/10085 1834/2000/10086 +f 1764/1846/10087 1801/1887/10088 1802/1886/10089 +f 1802/1886/10090 1763/1847/10091 1764/1846/10092 +f 1805/1891/10093 1806/1890/10094 1765/1850/10095 +f 1765/1850/10096 1766/1849/10097 1805/1891/10098 +f 1765/1850/10099 1806/1890/10100 1808/1893/10101 +f 1808/1893/10102 1767/1851/10103 1765/1850/10104 +f 1808/1893/10105 1801/1887/10106 1764/1846/10107 +f 1764/1846/10108 1767/1851/10109 1808/1893/10110 +f 1763/2036/10111 1802/1993/10112 1833/1994/10113 +f 1833/1994/10114 1768/1915/10115 1763/2036/10116 +f 1833/1994/10117 1805/1995/10118 1766/1916/10119 +f 1766/1916/10120 1768/1915/10121 1833/1994/10122 +f 1846/1931/10123 1758/1842/10124 1662/1744/10125 +f 1662/1744/10126 1847/1930/10127 1846/1931/10128 +f 1849/1932/10129 1848/1933/10130 1671/1755/10131 +f 1671/1755/10132 1762/1848/10133 1849/1932/10134 +f 1850/1934/10135 1659/1743/10136 1671/1755/10137 +f 1671/1755/10138 1848/1933/10139 1850/1934/10140 +f 1850/1934/10141 1847/1930/10142 1662/1744/10143 +f 1662/1744/10144 1659/1743/10145 1850/1934/10146 +f 1852/2049/10147 1851/2060/10148 1758/2037/10149 +f 1758/2037/10150 1846/2048/10151 1852/2049/10152 +f 1852/2049/10153 1849/2062/10154 1762/2061/10155 +f 1762/2061/10156 1851/2060/10157 1852/2049/10158 +f 1855/1939/10159 1854/1940/10160 1853/1937/10161 +f 1853/1937/10162 1856/1938/10163 1855/1939/10164 +f 1857/1942/10165 1855/1939/10166 1856/1938/10167 +f 1856/1938/10168 1858/1941/10169 1857/1942/10170 +f 1861/1945/10171 1860/1946/10172 1859/1943/10173 +f 1859/1943/10174 1862/1944/10175 1861/1945/10176 +f 1865/1949/10177 1864/1950/10178 1863/1947/10179 +f 1863/1947/10180 1866/1948/10181 1865/1949/10182 +f 1863/1947/10183 1868/1952/10184 1867/1951/10185 +f 1867/1951/10186 1866/1948/10187 1863/1947/10188 +f 1867/1951/10189 1868/1952/10190 1861/1945/10191 +f 1861/1945/10192 1862/1944/10193 1867/1951/10194 +f 1859/2065/10195 1860/2066/10196 1869/2063/10197 +f 1869/2063/10198 1870/2064/10199 1859/2065/10200 +f 1869/2063/10201 1864/2068/10202 1865/2067/10203 +f 1865/2067/10204 1870/2064/10205 1869/2063/10206 +f 1873/1957/10207 1872/1958/10208 1871/1955/10209 +f 1871/1955/10210 1874/1956/10211 1873/1957/10212 +f 1877/1961/10213 1876/1962/10214 1875/1959/10215 +f 1875/1959/10216 1878/1960/10217 1877/1961/10218 +f 1875/1959/10219 1880/1964/10220 1879/1963/10221 +f 1879/1963/10222 1878/1960/10223 1875/1959/10224 +f 1879/1963/10225 1880/1964/10226 1873/1957/10227 +f 1873/1957/10228 1874/1956/10229 1879/1963/10230 +f 1872/2076/10231 1882/2077/10232 1881/2074/10233 +f 1881/2074/10234 1871/2075/10235 1872/2076/10236 +f 1881/2074/10237 1882/2077/10238 1876/2078/10239 +f 1876/2078/10240 1877/2079/10241 1881/2074/10242 +f 1885/1969/10243 1884/1970/10244 1883/1967/10245 +f 1883/1967/10246 1886/1968/10247 1885/1969/10248 +f 1889/1973/10249 1888/1974/10250 1887/1971/10251 +f 1887/1971/10252 1890/1972/10253 1889/1973/10254 +f 1891/1976/10255 1889/1973/10256 1890/1972/10257 +f 1890/1972/10258 1892/1975/10259 1891/1976/10260 +f 1884/1970/10261 1891/1976/10262 1892/1975/10263 +f 1892/1975/10264 1883/1967/10265 1884/1970/10266 +f 1895/2082/10267 1894/2083/10268 1893/2080/10269 +f 1893/2080/10270 1896/2081/10271 1895/2082/10272 +f 1897/2085/10273 1895/2082/10274 1896/2081/10275 +f 1896/2081/10276 1898/2084/10277 1897/2085/10278 +f 1886/1968/10279 1883/1967/10280 1862/1944/10281 +f 1862/1944/10282 1859/1943/10283 1886/1968/10284 +f 1890/1972/10285 1887/1971/10286 1865/1949/10287 +f 1865/1949/10288 1866/1948/10289 1890/1972/10290 +f 1892/1975/10291 1890/1972/10292 1866/1948/10293 +f 1866/1948/10294 1867/1951/10295 1892/1975/10296 +f 1883/1967/10297 1892/1975/10298 1867/1951/10299 +f 1867/1951/10300 1862/1944/10301 1883/1967/10302 +f 1896/2081/10303 1893/2080/10304 1899/2086/10305 +f 1899/2086/10306 1900/2087/10307 1896/2081/10308 +f 1898/2084/10309 1896/2081/10310 1900/2087/10311 +f 1900/2087/10312 1901/2088/10313 1898/2084/10314 +f 1860/1946/10315 1861/1945/10316 1902/1986/10317 +f 1902/1986/10318 1903/1987/10319 1860/1946/10320 +f 1863/1947/10321 1864/1950/10322 1904/1988/10323 +f 1904/1988/10324 1905/1989/10325 1863/1947/10326 +f 1868/1952/10327 1863/1947/10328 1905/1989/10329 +f 1905/1989/10330 1906/1990/10331 1868/1952/10332 +f 1861/1945/10333 1868/1952/10334 1906/1990/10335 +f 1906/1990/10336 1902/1986/10337 1861/1945/10338 +f 1909/2091/10339 1908/2092/10340 1907/2089/10341 +f 1907/2089/10342 1910/2090/10343 1909/2091/10344 +f 1911/2094/10345 1909/2091/10346 1910/2090/10347 +f 1910/2090/10348 1912/2093/10349 1911/2094/10350 +f 1903/1987/10351 1902/1986/10352 1874/1956/10353 +f 1874/1956/10354 1871/1955/10355 1903/1987/10356 +f 1905/1989/10357 1904/1988/10358 1877/1961/10359 +f 1877/1961/10360 1878/1960/10361 1905/1989/10362 +f 1906/1990/10363 1905/1989/10364 1878/1960/10365 +f 1878/1960/10366 1879/1963/10367 1906/1990/10368 +f 1902/1986/10369 1906/1990/10370 1879/1963/10371 +f 1879/1963/10372 1874/1956/10373 1902/1986/10374 +f 1910/2090/10375 1907/2089/10376 1913/2095/10377 +f 1913/2095/10378 1914/2096/10379 1910/2090/10380 +f 1912/2093/10381 1910/2090/10382 1914/2096/10383 +f 1914/2096/10384 1915/2097/10385 1912/2093/10386 +f 1895/2082/10387 1916/2099/10388 1885/2098/10389 +f 1885/2098/10390 1894/2083/10391 1895/2082/10392 +f 1897/2085/10393 1888/2100/10394 1916/2099/10395 +f 1916/2099/10396 1895/2082/10397 1897/2085/10398 +f 1898/2084/10399 1887/2104/10400 1888/2100/10401 +f 1888/2100/10402 1897/2085/10403 1898/2084/10404 +f 1901/2088/10405 1865/2067/10406 1887/2104/10407 +f 1887/2104/10408 1898/2084/10409 1901/2088/10410 +f 1900/2087/10411 1870/2064/10412 1865/2067/10413 +f 1865/2067/10414 1901/2088/10415 1900/2087/10416 +f 1899/2086/10417 1859/2065/10418 1870/2064/10419 +f 1870/2064/10420 1900/2087/10421 1899/2086/10422 +f 1893/2080/10423 1886/2105/10424 1859/2065/10425 +f 1859/2065/10426 1899/2086/10427 1893/2080/10428 +f 1894/2083/10429 1885/2098/10430 1886/2105/10431 +f 1886/2105/10432 1893/2080/10433 1894/2083/10434 +f 1909/2091/10435 1869/2063/10436 1860/2066/10437 +f 1860/2066/10438 1908/2092/10439 1909/2091/10440 +f 1911/2094/10441 1864/2068/10442 1869/2063/10443 +f 1869/2063/10444 1909/2091/10445 1911/2094/10446 +f 1912/2093/10447 1904/2106/10448 1864/2068/10449 +f 1864/2068/10450 1911/2094/10451 1912/2093/10452 +f 1915/2097/10453 1877/2079/10454 1904/2106/10455 +f 1904/2106/10456 1912/2093/10457 1915/2097/10458 +f 1914/2096/10459 1881/2074/10460 1877/2079/10461 +f 1877/2079/10462 1915/2097/10463 1914/2096/10464 +f 1913/2095/10465 1871/2075/10466 1881/2074/10467 +f 1881/2074/10468 1914/2096/10469 1913/2095/10470 +f 1907/2089/10471 1903/2128/10472 1871/2075/10473 +f 1871/2075/10474 1913/2095/10475 1907/2089/10476 +f 1908/2092/10477 1860/2066/10478 1903/2128/10479 +f 1903/2128/10480 1907/2089/10481 1908/2092/10482 +f 1857/1942/10483 1858/1941/10484 1872/1958/10485 +f 1872/1958/10486 1873/1957/10487 1857/1942/10488 +f 1876/1962/10489 1853/1937/10490 1854/1940/10491 +f 1854/1940/10492 1875/1959/10493 1876/1962/10494 +f 1854/1940/10495 1855/1939/10496 1880/1964/10497 +f 1880/1964/10498 1875/1959/10499 1854/1940/10500 +f 1880/1964/10501 1855/1939/10502 1857/1942/10503 +f 1857/1942/10504 1873/1957/10505 1880/1964/10506 +f 1919/2133/10507 1918/2134/10508 1917/2129/10509 +f 1917/2129/10510 1920/2132/10511 1919/2133/10512 +f 1920/2132/10513 1917/2129/10514 1921/2135/10515 +f 1921/2135/10516 1922/2136/10517 1920/2132/10518 +f 1923/2140/10519 1858/2141/10520 1856/2137/10521 +f 1856/2137/10522 1924/2139/10523 1923/2140/10524 +f 1925/2142/10525 1872/2076/10526 1858/2141/10527 +f 1858/2141/10528 1923/2140/10529 1925/2142/10530 +f 1926/2143/10531 1882/2077/10532 1872/2076/10533 +f 1872/2076/10534 1925/2142/10535 1926/2143/10536 +f 1927/2148/10537 1876/2078/10538 1882/2077/10539 +f 1882/2077/10540 1926/2143/10541 1927/2148/10542 +f 1928/2149/10543 1853/2150/10544 1876/2078/10545 +f 1876/2078/10546 1927/2148/10547 1928/2149/10548 +f 1924/2139/10549 1856/2137/10550 1853/2150/10551 +f 1853/2150/10552 1928/2149/10553 1924/2139/10554 +f 1918/2134/10555 1923/2140/10556 1924/2139/10557 +f 1924/2139/10558 1917/2129/10559 1918/2134/10560 +f 1919/2133/10561 1925/2142/10562 1923/2140/10563 +f 1923/2140/10564 1918/2134/10565 1919/2133/10566 +f 1920/2132/10567 1926/2143/10568 1925/2142/10569 +f 1925/2142/10570 1919/2133/10571 1920/2132/10572 +f 1922/2136/10573 1927/2148/10574 1926/2143/10575 +f 1926/2143/10576 1920/2132/10577 1922/2136/10578 +f 1921/2135/10579 1928/2149/10580 1927/2148/10581 +f 1927/2148/10582 1922/2136/10583 1921/2135/10584 +f 1917/2129/10585 1924/2139/10586 1928/2149/10587 +f 1928/2149/10588 1921/2135/10589 1917/2129/10590 +f 1847/1930/10591 1884/1970/10592 1885/1969/10593 +f 1885/1969/10594 1846/1931/10595 1847/1930/10596 +f 1888/1974/10597 1889/1973/10598 1848/1933/10599 +f 1848/1933/10600 1849/1932/10601 1888/1974/10602 +f 1848/1933/10603 1889/1973/10604 1891/1976/10605 +f 1891/1976/10606 1850/1934/10607 1848/1933/10608 +f 1891/1976/10609 1884/1970/10610 1847/1930/10611 +f 1847/1930/10612 1850/1934/10613 1891/1976/10614 +f 1846/2048/10615 1885/2098/10616 1916/2099/10617 +f 1916/2099/10618 1852/2049/10619 1846/2048/10620 +f 1916/2099/10621 1888/2100/10622 1849/2062/10623 +f 1849/2062/10624 1852/2049/10625 1916/2099/10626 +f 1929/2014/10627 1642/1724/10628 1639/1723/10629 +f 1639/1723/10630 1930/2013/10631 1929/2014/10632 +f 1932/2015/10633 1931/2016/10634 1668/1752/10635 +f 1668/1752/10636 1760/1845/10637 1932/2015/10638 +f 1933/2017/10639 1644/1728/10640 1668/1752/10641 +f 1668/1752/10642 1931/2016/10643 1933/2017/10644 +f 1933/2017/10645 1930/2013/10646 1639/1723/10647 +f 1639/1723/10648 1644/1728/10649 1933/2017/10650 +f 1935/2152/10651 1934/2153/10652 1642/1749/10653 +f 1642/1749/10654 1929/2151/10655 1935/2152/10656 +f 1935/2152/10657 1932/2160/10658 1760/2159/10659 +f 1760/2159/10660 1934/2153/10661 1935/2152/10662 +f 1938/2022/10663 1937/2023/10664 1936/2020/10665 +f 1936/2020/10666 1939/2021/10667 1938/2022/10668 +f 1940/2025/10669 1938/2022/10670 1939/2021/10671 +f 1939/2021/10672 1941/2024/10673 1940/2025/10674 +f 1944/2028/10675 1943/2029/10676 1942/2026/10677 +f 1942/2026/10678 1945/2027/10679 1944/2028/10680 +f 1948/2032/10681 1947/2033/10682 1946/2030/10683 +f 1946/2030/10684 1949/2031/10685 1948/2032/10686 +f 1946/2030/10687 1951/2035/10688 1950/2034/10689 +f 1950/2034/10690 1949/2031/10691 1946/2030/10692 +f 1950/2034/10693 1951/2035/10694 1944/2028/10695 +f 1944/2028/10696 1945/2027/10697 1950/2034/10698 +f 1942/2163/10699 1943/2164/10700 1952/2161/10701 +f 1952/2161/10702 1953/2162/10703 1942/2163/10704 +f 1952/2161/10705 1947/2167/10706 1948/2166/10707 +f 1948/2166/10708 1953/2162/10709 1952/2161/10710 +f 1956/2040/10711 1955/2041/10712 1954/2038/10713 +f 1954/2038/10714 1957/2039/10715 1956/2040/10716 +f 1960/2044/10717 1959/2045/10718 1958/2042/10719 +f 1958/2042/10720 1961/2043/10721 1960/2044/10722 +f 1958/2042/10723 1963/2047/10724 1962/2046/10725 +f 1962/2046/10726 1961/2043/10727 1958/2042/10728 +f 1962/2046/10729 1963/2047/10730 1956/2040/10731 +f 1956/2040/10732 1957/2039/10733 1962/2046/10734 +f 1955/2170/10735 1965/2171/10736 1964/2168/10737 +f 1964/2168/10738 1954/2169/10739 1955/2170/10740 +f 1964/2168/10741 1965/2171/10742 1959/2172/10743 +f 1959/2172/10744 1960/2173/10745 1964/2168/10746 +f 1968/2052/10747 1967/2053/10748 1966/2050/10749 +f 1966/2050/10750 1969/2051/10751 1968/2052/10752 +f 1972/2056/10753 1971/2057/10754 1970/2054/10755 +f 1970/2054/10756 1973/2055/10757 1972/2056/10758 +f 1974/2059/10759 1972/2056/10760 1973/2055/10761 +f 1973/2055/10762 1975/2058/10763 1974/2059/10764 +f 1967/2053/10765 1974/2059/10766 1975/2058/10767 +f 1975/2058/10768 1966/2050/10769 1967/2053/10770 +f 1978/2183/10771 1977/2185/10772 1976/2174/10773 +f 1976/2174/10774 1979/2175/10775 1978/2183/10776 +f 1980/2187/10777 1978/2183/10778 1979/2175/10779 +f 1979/2175/10780 1981/2186/10781 1980/2187/10782 +f 1969/2051/10783 1966/2050/10784 1945/2027/10785 +f 1945/2027/10786 1942/2026/10787 1969/2051/10788 +f 1973/2055/10789 1970/2054/10790 1948/2032/10791 +f 1948/2032/10792 1949/2031/10793 1973/2055/10794 +f 1975/2058/10795 1973/2055/10796 1949/2031/10797 +f 1949/2031/10798 1950/2034/10799 1975/2058/10800 +f 1966/2050/10801 1975/2058/10802 1950/2034/10803 +f 1950/2034/10804 1945/2027/10805 1966/2050/10806 +f 1979/2175/10807 1976/2174/10808 1982/2188/10809 +f 1982/2188/10810 1983/2189/10811 1979/2175/10812 +f 1981/2186/10813 1979/2175/10814 1983/2189/10815 +f 1983/2189/10816 1984/2190/10817 1981/2186/10818 +f 1943/2029/10819 1944/2028/10820 1985/2069/10821 +f 1985/2069/10822 1986/2070/10823 1943/2029/10824 +f 1946/2030/10825 1947/2033/10826 1987/2071/10827 +f 1987/2071/10828 1988/2072/10829 1946/2030/10830 +f 1951/2035/10831 1946/2030/10832 1988/2072/10833 +f 1988/2072/10834 1989/2073/10835 1951/2035/10836 +f 1944/2028/10837 1951/2035/10838 1989/2073/10839 +f 1989/2073/10840 1985/2069/10841 1944/2028/10842 +f 1992/2196/10843 1991/2197/10844 1990/2191/10845 +f 1990/2191/10846 1993/2195/10847 1992/2196/10848 +f 1994/2205/10849 1992/2196/10850 1993/2195/10851 +f 1993/2195/10852 1995/2198/10853 1994/2205/10854 +f 1986/2070/10855 1985/2069/10856 1957/2039/10857 +f 1957/2039/10858 1954/2038/10859 1986/2070/10860 +f 1988/2072/10861 1987/2071/10862 1960/2044/10863 +f 1960/2044/10864 1961/2043/10865 1988/2072/10866 +f 1989/2073/10867 1988/2072/10868 1961/2043/10869 +f 1961/2043/10870 1962/2046/10871 1989/2073/10872 +f 1985/2069/10873 1989/2073/10874 1962/2046/10875 +f 1962/2046/10876 1957/2039/10877 1985/2069/10878 +f 1993/2195/10879 1990/2191/10880 1996/2212/10881 +f 1996/2212/10882 1997/2213/10883 1993/2195/10884 +f 1995/2198/10885 1993/2195/10886 1997/2213/10887 +f 1997/2213/10888 1998/2214/10889 1995/2198/10890 +f 1978/2183/10891 1999/2216/10892 1968/2215/10893 +f 1968/2215/10894 1977/2185/10895 1978/2183/10896 +f 1980/2187/10897 1971/2217/10898 1999/2216/10899 +f 1999/2216/10900 1978/2183/10901 1980/2187/10902 +f 1981/2186/10903 1970/2218/10904 1971/2217/10905 +f 1971/2217/10906 1980/2187/10907 1981/2186/10908 +f 1984/2190/10909 1948/2166/10910 1970/2218/10911 +f 1970/2218/10912 1981/2186/10913 1984/2190/10914 +f 1983/2189/10915 1953/2162/10916 1948/2166/10917 +f 1948/2166/10918 1984/2190/10919 1983/2189/10920 +f 1982/2188/10921 1942/2163/10922 1953/2162/10923 +f 1953/2162/10924 1983/2189/10925 1982/2188/10926 +f 1976/2174/10927 1969/2219/10928 1942/2163/10929 +f 1942/2163/10930 1982/2188/10931 1976/2174/10932 +f 1977/2185/10933 1968/2215/10934 1969/2219/10935 +f 1969/2219/10936 1976/2174/10937 1977/2185/10938 +f 1992/2196/10939 1952/2161/10940 1943/2164/10941 +f 1943/2164/10942 1991/2197/10943 1992/2196/10944 +f 1994/2205/10945 1947/2167/10946 1952/2161/10947 +f 1952/2161/10948 1992/2196/10949 1994/2205/10950 +f 1995/2198/10951 1987/2220/10952 1947/2167/10953 +f 1947/2167/10954 1994/2205/10955 1995/2198/10956 +f 1998/2214/10957 1960/2173/10958 1987/2220/10959 +f 1987/2220/10960 1995/2198/10961 1998/2214/10962 +f 1997/2213/10963 1964/2168/10964 1960/2173/10965 +f 1960/2173/10966 1998/2214/10967 1997/2213/10968 +f 1996/2212/10969 1954/2169/10970 1964/2168/10971 +f 1964/2168/10972 1997/2213/10973 1996/2212/10974 +f 1990/2191/10975 1986/2221/10976 1954/2169/10977 +f 1954/2169/10978 1996/2212/10979 1990/2191/10980 +f 1991/2197/10981 1943/2164/10982 1986/2221/10983 +f 1986/2221/10984 1990/2191/10985 1991/2197/10986 +f 1940/2025/10987 1941/2024/10988 1955/2041/10989 +f 1955/2041/10990 1956/2040/10991 1940/2025/10992 +f 1959/2045/10993 1936/2020/10994 1937/2023/10995 +f 1937/2023/10996 1958/2042/10997 1959/2045/10998 +f 1937/2023/10999 1938/2022/11000 1963/2047/11001 +f 1963/2047/11002 1958/2042/11003 1937/2023/11004 +f 1963/2047/11005 1938/2022/11006 1940/2025/11007 +f 1940/2025/11008 1956/2040/11009 1963/2047/11010 +f 2002/2224/11011 2001/2252/11012 2000/2222/11013 +f 2000/2222/11014 2003/2223/11015 2002/2224/11016 +f 2003/2223/11017 2000/2222/11018 2004/2253/11019 +f 2004/2253/11020 2005/2254/11021 2003/2223/11022 +f 2006/2260/11023 1941/2261/11024 1939/2255/11025 +f 1939/2255/11026 2007/2259/11027 2006/2260/11028 +f 2008/2262/11029 1955/2170/11030 1941/2261/11031 +f 1941/2261/11032 2006/2260/11033 2008/2262/11034 +f 2009/2263/11035 1965/2171/11036 1955/2170/11037 +f 1955/2170/11038 2008/2262/11039 2009/2263/11040 +f 2010/2264/11041 1959/2172/11042 1965/2171/11043 +f 1965/2171/11044 2009/2263/11045 2010/2264/11046 +f 2011/2265/11047 1936/2266/11048 1959/2172/11049 +f 1959/2172/11050 2010/2264/11051 2011/2265/11052 +f 2007/2259/11053 1939/2255/11054 1936/2266/11055 +f 1936/2266/11056 2011/2265/11057 2007/2259/11058 +f 2001/2252/11059 2006/2260/11060 2007/2259/11061 +f 2007/2259/11062 2000/2222/11063 2001/2252/11064 +f 2002/2224/11065 2008/2262/11066 2006/2260/11067 +f 2006/2260/11068 2001/2252/11069 2002/2224/11070 +f 2003/2223/11071 2009/2263/11072 2008/2262/11073 +f 2008/2262/11074 2002/2224/11075 2003/2223/11076 +f 2005/2254/11077 2010/2264/11078 2009/2263/11079 +f 2009/2263/11080 2003/2223/11081 2005/2254/11082 +f 2004/2253/11083 2011/2265/11084 2010/2264/11085 +f 2010/2264/11086 2005/2254/11087 2004/2253/11088 +f 2000/2222/11089 2007/2259/11090 2011/2265/11091 +f 2011/2265/11092 2004/2253/11093 2000/2222/11094 +f 1930/2013/11095 1967/2053/11096 1968/2052/11097 +f 1968/2052/11098 1929/2014/11099 1930/2013/11100 +f 1971/2057/11101 1972/2056/11102 1931/2016/11103 +f 1931/2016/11104 1932/2015/11105 1971/2057/11106 +f 1931/2016/11107 1972/2056/11108 1974/2059/11109 +f 1974/2059/11110 1933/2017/11111 1931/2016/11112 +f 1974/2059/11113 1967/2053/11114 1930/2013/11115 +f 1930/2013/11116 1933/2017/11117 1974/2059/11118 +f 1929/2151/11119 1968/2215/11120 1999/2216/11121 +f 1999/2216/11122 1935/2152/11123 1929/2151/11124 +f 1999/2216/11125 1971/2217/11126 1932/2160/11127 +f 1932/2160/11128 1935/2152/11129 1999/2216/11130 +f 1654/1736/11131 1642/1749/11132 1934/2153/11133 +f 1934/2153/11134 1653/1737/11135 1654/1736/11136 +f 1651/1735/11137 2012/2267/11138 1642/2579/11139 +f 1642/2579/11140 1654/1736/11141 1651/1735/11142 +f 1652/1738/11143 2013/2268/11144 2012/2267/11145 +f 2012/2267/11146 1651/1735/11147 1652/1738/11148 +f 1669/1775/11149 1761/2269/11150 2013/2268/11151 +f 2013/2268/11152 1652/1738/11153 1669/1775/11154 +f 1670/1774/11155 1760/2159/11156 1761/2269/11157 +f 1761/2269/11158 1669/1775/11159 1670/1774/11160 +f 1653/1737/11161 1934/2153/11162 1760/2159/11163 +f 1760/2159/11164 1670/1774/11165 1653/1737/11166 +f 1650/1732/11167 1636/1741/11168 1657/1748/11169 +f 1657/1748/11170 1649/1733/11171 1650/1732/11172 +f 1647/1731/11173 2014/2270/11174 1636/1741/11175 +f 1636/1741/11176 1650/1732/11177 1647/1731/11178 +f 1648/1734/11179 2015/2271/11180 2014/2270/11181 +f 2014/2270/11182 1647/1731/11183 1648/1734/11184 +f 1754/1911/11185 2012/2267/11186 2015/2271/11187 +f 2015/2271/11188 1648/1734/11189 1754/1911/11190 +f 1755/1910/11191 1642/2579/11192 2012/2267/11193 +f 2012/2267/11194 1754/1911/11195 1755/1910/11196 +f 1649/1733/11197 1657/1748/11198 1642/2383/11199 +f 1642/2383/11200 1755/1910/11201 1649/1733/11202 +f 1752/1908/11203 1769/1914/11204 1636/1741/11205 +f 1636/1741/11206 1757/1912/11207 1752/1908/11208 +f 1753/1902/11209 1762/2061/11210 1769/1914/11211 +f 1769/1914/11212 1752/1908/11213 1753/1902/11214 +f 1750/1901/11215 1634/1716/11216 1762/2061/11217 +f 1762/2061/11218 1753/1902/11219 1750/1901/11220 +f 1751/1909/11221 2016/2272/11222 1634/1716/11223 +f 1634/1716/11224 1750/1901/11225 1751/1909/11226 +f 1756/1913/11227 2014/2270/11228 2016/2272/11229 +f 2016/2272/11230 1751/1909/11231 1756/1913/11232 +f 1757/1912/11233 1636/1741/11234 2014/2270/11235 +f 2014/2270/11236 1756/1913/11237 1757/1912/11238 +f 1666/1754/11239 1758/2037/11240 1851/2060/11241 +f 1851/2060/11242 1665/1756/11243 1666/1754/11244 +f 1663/1753/11245 1759/2273/11246 1758/2037/11247 +f 1758/2037/11248 1666/1754/11249 1663/1753/11250 +f 1664/1757/11251 1631/1715/11252 1759/2273/11253 +f 1759/2273/11254 1663/1753/11255 1664/1757/11256 +f 1672/1787/11257 1634/1716/11258 1631/1715/11259 +f 1631/1715/11260 1664/1757/11261 1672/1787/11262 +f 1673/1786/11263 1762/2061/11264 1634/1716/11265 +f 1634/1716/11266 1672/1787/11267 1673/1786/11268 +f 1665/1756/11269 1851/2060/11270 1762/2061/11271 +f 1762/2061/11272 1673/1786/11273 1665/1756/11274 +f 1763/2036/11275 1768/1915/11276 1769/1914/11277 +f 1769/1914/11278 1762/2061/11279 1763/2036/11280 +f 1661/1745/11281 1759/1843/11282 2017/2101/11283 +f 2017/2101/11284 2018/2102/11285 1661/1745/11286 +f 1617/1703/11287 1618/1702/11288 1626/1709/11289 +f 1626/1709/11290 2019/2103/11291 1617/1703/11292 +f 2016/2272/11293 2014/2270/11294 2020/2274/11295 +f 2020/2274/11296 2021/2275/11297 2016/2272/11298 +f 1625/1710/11299 1618/1702/11300 1619/1701/11301 +f 1619/1701/11302 1660/1746/11303 1625/1710/11304 +f 1628/1714/11305 2012/2267/11306 2013/2268/11307 +f 2013/2268/11308 2022/2276/11309 1628/1714/11310 +f 2015/2271/11311 2012/2267/11312 1628/1714/11313 +f 1628/1714/11314 1629/1713/11315 2015/2271/11316 +f 2025/2109/11317 2024/2110/11318 2023/2107/11319 +f 2023/2107/11320 2026/2108/11321 2025/2109/11322 +f 2027/2112/11323 2026/2108/11324 2023/2107/11325 +f 2023/2107/11326 2028/2111/11327 2027/2112/11328 +f 2030/2114/11329 2029/2115/11330 2027/2112/11331 +f 2027/2112/11332 2031/2113/11333 2030/2114/11334 +f 2026/2108/11335 2033/2117/11336 2032/2116/11337 +f 2032/2116/11338 2025/2109/11339 2026/2108/11340 +f 2029/2115/11341 2033/2117/11342 2026/2108/11343 +f 2026/2108/11344 2027/2112/11345 2029/2115/11346 +f 1615/1697/11347 2035/2119/11348 2034/2118/11349 +f 2034/2118/11350 1614/1698/11351 1615/1697/11352 +f 2038/2122/11353 2037/2123/11354 2036/2120/11355 +f 2036/2120/11356 2039/2121/11357 2038/2122/11358 +f 2040/2125/11359 2037/2123/11360 2038/2122/11361 +f 2038/2122/11362 2041/2124/11363 2040/2125/11364 +f 2039/2121/11365 2036/2120/11366 2042/2126/11367 +f 2042/2126/11368 2043/2127/11369 2039/2121/11370 +f 2043/2279/11371 2042/2280/11372 2044/2277/11373 +f 2044/2277/11374 2045/2278/11375 2043/2279/11376 +f 2045/2278/11377 2044/2277/11378 2046/2281/11379 +f 2046/2281/11380 2047/2282/11381 2045/2278/11382 +f 2046/2131/11383 2040/2125/11384 2041/2124/11385 +f 2041/2124/11386 2047/2130/11387 2046/2131/11388 +f 2050/2285/11389 2049/2286/11390 2048/2283/11391 +f 2048/2283/11392 2051/2284/11393 2050/2285/11394 +f 2052/2288/11395 2050/2285/11396 2051/2284/11397 +f 2051/2284/11398 2053/2287/11399 2052/2288/11400 +f 2032/2116/11401 2033/2117/11402 2038/2122/11403 +f 2038/2122/11404 2039/2121/11405 2032/2116/11406 +f 2033/2117/11407 2029/2115/11408 2041/2124/11409 +f 2041/2124/11410 2038/2122/11411 2033/2117/11412 +f 2054/2138/11413 2032/2116/11414 2039/2121/11415 +f 2039/2121/11416 2043/2127/11417 2054/2138/11418 +f 2051/2284/11419 2048/2283/11420 2055/2289/11421 +f 2055/2289/11422 2056/2290/11423 2051/2284/11424 +f 2053/2287/11425 2051/2284/11426 2056/2290/11427 +f 2056/2290/11428 2057/2291/11429 2053/2287/11430 +f 2029/2115/11431 2030/2114/11432 2047/2130/11433 +f 2047/2130/11434 2041/2124/11435 2029/2115/11436 +f 2050/2285/11437 2059/2293/11438 2058/2292/11439 +f 2058/2292/11440 2049/2286/11441 2050/2285/11442 +f 2052/2288/11443 2031/2294/11444 2059/2293/11445 +f 2059/2293/11446 2050/2285/11447 2052/2288/11448 +f 2053/2287/11449 2030/2295/11450 2031/2294/11451 +f 2031/2294/11452 2052/2288/11453 2053/2287/11454 +f 2057/2291/11455 2047/2282/11456 2030/2295/11457 +f 2030/2295/11458 2053/2287/11459 2057/2291/11460 +f 2056/2290/11461 2045/2278/11462 2047/2282/11463 +f 2047/2282/11464 2057/2291/11465 2056/2290/11466 +f 2055/2289/11467 2043/2279/11468 2045/2278/11469 +f 2045/2278/11470 2056/2290/11471 2055/2289/11472 +f 2048/2283/11473 2054/2296/11474 2043/2279/11475 +f 2043/2279/11476 2055/2289/11477 2048/2283/11478 +f 2049/2286/11479 2058/2292/11480 2054/2296/11481 +f 2054/2296/11482 2048/2283/11483 2049/2286/11484 +f 1615/1697/11485 1612/1696/11486 2060/2144/11487 +f 2060/2144/11488 2061/2145/11489 1615/1697/11490 +f 2035/2119/11491 1615/1697/11492 2061/2145/11493 +f 2061/2145/11494 2062/2146/11495 2035/2119/11496 +f 2060/2144/11497 1612/1696/11498 1613/1699/11499 +f 1613/1699/11500 2063/2147/11501 2060/2144/11502 +f 2066/2299/11503 2065/2300/11504 2064/2297/11505 +f 2064/2297/11506 2067/2298/11507 2066/2299/11508 +f 2067/2298/11509 2064/2297/11510 2068/2301/11511 +f 2068/2301/11512 2069/2302/11513 2067/2298/11514 +f 2070/2154/11515 2034/2118/11516 2035/2119/11517 +f 2035/2119/11518 2062/2146/11519 2070/2154/11520 +f 2036/2120/11521 2037/2123/11522 2071/2155/11523 +f 2071/2155/11524 2072/2156/11525 2036/2120/11526 +f 2037/2123/11527 2040/2125/11528 2073/2157/11529 +f 2073/2157/11530 2071/2155/11531 2037/2123/11532 +f 2042/2126/11533 2036/2120/11534 2072/2156/11535 +f 2072/2156/11536 2074/2158/11537 2042/2126/11538 +f 2077/2305/11539 2076/2306/11540 2075/2303/11541 +f 2075/2303/11542 2078/2304/11543 2077/2305/11544 +f 2079/2308/11545 2077/2305/11546 2078/2304/11547 +f 2078/2304/11548 2080/2307/11549 2079/2308/11550 +f 2040/2125/11551 2046/2131/11552 2081/2165/11553 +f 2081/2165/11554 2073/2157/11555 2040/2125/11556 +f 2072/2156/11557 2071/2155/11558 2061/2145/11559 +f 2061/2145/11560 2060/2144/11561 2072/2156/11562 +f 2071/2155/11563 2073/2157/11564 2062/2146/11565 +f 2062/2146/11566 2061/2145/11567 2071/2155/11568 +f 2074/2158/11569 2072/2156/11570 2060/2144/11571 +f 2060/2144/11572 2063/2147/11573 2074/2158/11574 +f 2078/2304/11575 2075/2303/11576 2082/2309/11577 +f 2082/2309/11578 2083/2310/11579 2078/2304/11580 +f 2080/2307/11581 2078/2304/11582 2083/2310/11583 +f 2083/2310/11584 2084/2311/11585 2080/2307/11586 +f 2073/2157/11587 2081/2165/11588 2070/2154/11589 +f 2070/2154/11590 2062/2146/11591 2073/2157/11592 +f 2077/2305/11593 2044/2277/11594 2042/2280/11595 +f 2042/2280/11596 2076/2306/11597 2077/2305/11598 +f 2079/2308/11599 2046/2281/11600 2044/2277/11601 +f 2044/2277/11602 2077/2305/11603 2079/2308/11604 +f 2080/2307/11605 2081/2312/11606 2046/2281/11607 +f 2046/2281/11608 2079/2308/11609 2080/2307/11610 +f 2084/2311/11611 2070/2313/11612 2081/2312/11613 +f 2081/2312/11614 2080/2307/11615 2084/2311/11616 +f 2083/2310/11617 2085/2314/11618 2070/2313/11619 +f 2070/2313/11620 2084/2311/11621 2083/2310/11622 +f 2082/2309/11623 2063/2315/11624 2085/2314/11625 +f 2085/2314/11626 2083/2310/11627 2082/2309/11628 +f 2075/2303/11629 2074/2316/11630 2063/2315/11631 +f 2063/2315/11632 2082/2309/11633 2075/2303/11634 +f 2076/2306/11635 2042/2280/11636 2074/2316/11637 +f 2074/2316/11638 2075/2303/11639 2076/2306/11640 +f 2086/2319/11641 1613/2320/11642 1614/2317/11643 +f 1614/2317/11644 2087/2318/11645 2086/2319/11646 +f 2088/2321/11647 2063/2315/11648 1613/2320/11649 +f 1613/2320/11650 2086/2319/11651 2088/2321/11652 +f 2089/2322/11653 2085/2314/11654 2063/2315/11655 +f 2063/2315/11656 2088/2321/11657 2089/2322/11658 +f 2090/2323/11659 2070/2313/11660 2085/2314/11661 +f 2085/2314/11662 2089/2322/11663 2090/2323/11664 +f 2091/2324/11665 2034/2325/11666 2070/2313/11667 +f 2070/2313/11668 2090/2323/11669 2091/2324/11670 +f 2087/2318/11671 1614/2317/11672 2034/2325/11673 +f 2034/2325/11674 2091/2324/11675 2087/2318/11676 +f 2065/2300/11677 2086/2319/11678 2087/2318/11679 +f 2087/2318/11680 2064/2297/11681 2065/2300/11682 +f 2066/2299/11683 2088/2321/11684 2086/2319/11685 +f 2086/2319/11686 2065/2300/11687 2066/2299/11688 +f 2067/2298/11689 2089/2322/11690 2088/2321/11691 +f 2088/2321/11692 2066/2299/11693 2067/2298/11694 +f 2069/2302/11695 2090/2323/11696 2089/2322/11697 +f 2089/2322/11698 2067/2298/11699 2069/2302/11700 +f 2068/2301/11701 2091/2324/11702 2090/2323/11703 +f 2090/2323/11704 2069/2302/11705 2068/2301/11706 +f 2064/2297/11707 2087/2318/11708 2091/2324/11709 +f 2091/2324/11710 2068/2301/11711 2064/2297/11712 +f 1646/1729/11713 2093/2177/11714 2092/2176/11715 +f 2092/2176/11716 1645/1730/11717 1646/1729/11718 +f 2096/2180/11719 2095/2181/11720 2094/2178/11721 +f 2094/2178/11722 2097/2179/11723 2096/2180/11724 +f 2098/2182/11725 1621/1707/11726 1617/1703/11727 +f 1617/1703/11728 2019/2103/11729 2098/2182/11730 +f 2017/2326/11731 1759/2273/11732 1631/1715/11733 +f 1631/1715/11734 1632/1718/11735 2017/2326/11736 +f 2099/2329/11737 1608/2330/11738 1609/2327/11739 +f 1609/2327/11740 2100/2328/11741 2099/2329/11742 +f 1633/1717/11743 1634/1716/11744 2016/2272/11745 +f 2016/2272/11746 2021/2275/11747 1633/1717/11748 +f 2102/2333/11749 1627/1711/11750 2101/2331/11751 +f 2101/2331/11752 2103/2332/11753 2102/2333/11754 +f 1628/1714/11755 2022/2276/11756 2101/2331/11757 +f 2101/2331/11758 1627/1711/11759 1628/1714/11760 +f 2105/2336/11761 2104/2337/11762 2024/2334/11763 +f 2024/2334/11764 2025/2335/11765 2105/2336/11766 +f 2020/2274/11767 2014/2270/11768 2015/2271/11769 +f 2015/2271/11770 1629/1713/11771 2020/2274/11772 +f 2102/2333/11773 2106/2338/11774 1630/1712/11775 +f 1630/1712/11776 1627/1711/11777 2102/2333/11778 +f 2020/2274/11779 1629/1713/11780 1630/1712/11781 +f 1630/1712/11782 2107/2339/11783 2020/2274/11784 +f 2108/2184/11785 1667/1751/11786 1645/1730/11787 +f 1645/1730/11788 2092/2176/11789 2108/2184/11790 +f 1761/1844/11791 1667/1751/11792 2108/2184/11793 +f 2108/2184/11794 2109/2192/11795 1761/1844/11796 +f 2013/2268/11797 1761/2269/11798 2109/2340/11799 +f 2109/2340/11800 2022/2276/11801 2013/2268/11802 +f 2110/2193/11803 1620/1704/11804 1621/1707/11805 +f 1621/1707/11806 2098/2182/11807 2110/2193/11808 +f 2111/2341/11809 2101/2331/11810 2022/2276/11811 +f 2022/2276/11812 2104/2337/11813 2111/2341/11814 +f 2112/2342/11815 2103/2332/11816 2101/2331/11817 +f 2101/2331/11818 2111/2341/11819 2112/2342/11820 +f 2114/2343/11821 2113/2344/11822 2103/2332/11823 +f 2103/2332/11824 2112/2342/11825 2114/2343/11826 +f 2115/2345/11827 2097/2346/11828 2113/2344/11829 +f 2113/2344/11830 2114/2343/11831 2115/2345/11832 +f 2116/2199/11833 2096/2180/11834 2097/2179/11835 +f 2097/2179/11836 2115/2194/11837 2116/2199/11838 +f 2093/2177/11839 1620/1704/11840 2110/2193/11841 +f 2110/2193/11842 2117/2200/11843 2093/2177/11844 +f 2117/2200/11845 2110/2193/11846 2096/2180/11847 +f 2096/2180/11848 2116/2199/11849 2117/2200/11850 +f 2118/2202/11851 2027/2112/11852 2028/2111/11853 +f 2028/2111/11854 2119/2201/11855 2118/2202/11856 +f 2059/2293/11857 2114/2343/11858 2112/2342/11859 +f 2112/2342/11860 2058/2292/11861 2059/2293/11862 +f 2115/2345/11863 2114/2343/11864 2059/2293/11865 +f 2059/2293/11866 2031/2294/11867 2115/2345/11868 +f 2120/2203/11869 2116/2199/11870 2115/2194/11871 +f 2115/2194/11872 2031/2113/11873 2120/2203/11874 +f 2117/2200/11875 2116/2199/11876 2120/2203/11877 +f 2120/2203/11878 2118/2202/11879 2117/2200/11880 +f 2093/2177/11881 2117/2200/11882 2118/2202/11883 +f 2118/2202/11884 2119/2201/11885 2093/2177/11886 +f 2092/2176/11887 2093/2177/11888 2119/2201/11889 +f 2119/2201/11890 2028/2111/11891 2092/2176/11892 +f 2109/2192/11893 2108/2184/11894 2023/2107/11895 +f 2023/2107/11896 2024/2110/11897 2109/2192/11898 +f 2104/2337/11899 2022/2276/11900 2109/2340/11901 +f 2109/2340/11902 2024/2334/11903 2104/2337/11904 +f 2112/2342/11905 2111/2341/11906 2121/2347/11907 +f 2121/2347/11908 2058/2292/11909 2112/2342/11910 +f 2023/2107/11911 2108/2184/11912 2092/2176/11913 +f 2092/2176/11914 2028/2111/11915 2023/2107/11916 +f 2105/2336/11917 2121/2347/11918 2111/2341/11919 +f 2111/2341/11920 2104/2337/11921 2105/2336/11922 +f 2105/2336/11923 2025/2335/11924 2122/2348/11925 +f 2122/2348/11926 2121/2347/11927 2105/2336/11928 +f 1611/1693/11929 2124/2206/11930 2123/2204/11931 +f 2123/2204/11932 1610/1694/11933 1611/1693/11934 +f 1661/1745/11935 2018/2102/11936 1625/1710/11937 +f 1625/1710/11938 1660/1746/11939 1661/1745/11940 +f 2099/2329/11941 2100/2328/11942 2017/2326/11943 +f 2017/2326/11944 1632/1718/11945 2099/2329/11946 +f 2125/2208/11947 2018/2102/11948 2017/2101/11949 +f 2017/2101/11950 2100/2207/11951 2125/2208/11952 +f 1624/1708/11953 1625/1710/11954 2018/2102/11955 +f 2018/2102/11956 2125/2208/11957 1624/1708/11958 +f 1620/1704/11959 2093/2177/11960 1646/1729/11961 +f 1646/1729/11962 1623/1705/11963 1620/1704/11964 +f 1621/1707/11965 1622/1706/11966 1616/1700/11967 +f 1616/1700/11968 1617/1703/11969 1621/1707/11970 +f 2019/2103/11971 2126/2209/11972 2095/2181/11973 +f 2095/2181/11974 2098/2182/11975 2019/2103/11976 +f 2110/2193/11977 2098/2182/11978 2095/2181/11979 +f 2095/2181/11980 2096/2180/11981 2110/2193/11982 +f 2123/2204/11983 2124/2206/11984 2126/2209/11985 +f 2126/2209/11986 2127/2210/11987 2123/2204/11988 +f 1610/1694/11989 2125/2208/11990 2100/2207/11991 +f 2100/2207/11992 1609/1695/11993 1610/1694/11994 +f 1624/1708/11995 2125/2208/11996 1610/1694/11997 +f 1610/1694/11998 2123/2204/11999 1624/1708/12000 +f 2127/2210/12001 1626/1709/12002 1624/1708/12003 +f 1624/1708/12004 2123/2204/12005 2127/2210/12006 +f 2019/2103/12007 1626/1709/12008 2127/2210/12009 +f 2127/2210/12010 2126/2209/12011 2019/2103/12012 +f 2094/2178/12013 2095/2181/12014 2126/2209/12015 +f 2126/2209/12016 2124/2206/12017 2094/2178/12018 +f 2128/2350/12019 1611/2351/12020 1608/2485/12021 +f 1608/2485/12022 2129/2349/12023 2128/2350/12024 +f 2130/2352/12025 2124/2353/12026 1611/2351/12027 +f 1611/2351/12028 2128/2350/12029 2130/2352/12030 +f 2131/2354/12031 2094/2355/12032 2124/2353/12033 +f 2124/2353/12034 2130/2352/12035 2131/2354/12036 +f 2132/2356/12037 2097/2346/12038 2094/2355/12039 +f 2094/2355/12040 2131/2354/12041 2132/2356/12042 +f 2133/2357/12043 2113/2344/12044 2097/2346/12045 +f 2097/2346/12046 2132/2356/12047 2133/2357/12048 +f 2134/2358/12049 2103/2332/12050 2113/2344/12051 +f 2113/2344/12052 2133/2357/12053 2134/2358/12054 +f 2135/2359/12055 2102/2333/12056 2103/2332/12057 +f 2103/2332/12058 2134/2358/12059 2135/2359/12060 +f 2136/2360/12061 2106/2338/12062 2102/2333/12063 +f 2102/2333/12064 2135/2359/12065 2136/2360/12066 +f 2138/2361/12067 2137/2362/12068 2106/2338/12069 +f 2106/2338/12070 2136/2360/12071 2138/2361/12072 +f 2099/2329/12073 2140/2364/12074 2139/2363/12075 +f 2139/2363/12076 1608/2330/12077 2099/2329/12078 +f 2107/2339/12079 1630/1712/12080 2106/2338/12081 +f 2106/2338/12082 2137/2362/12083 2107/2339/12084 +f 2142/2365/12085 2141/2366/12086 2128/2350/12087 +f 2128/2350/12088 2129/2349/12089 2142/2365/12090 +f 2143/2367/12091 2130/2352/12092 2128/2350/12093 +f 2128/2350/12094 2141/2366/12095 2143/2367/12096 +f 2143/2367/12097 2144/2368/12098 2131/2354/12099 +f 2131/2354/12100 2130/2352/12101 2143/2367/12102 +f 2144/2368/12103 2145/2369/12104 2132/2356/12105 +f 2132/2356/12106 2131/2354/12107 2144/2368/12108 +f 2145/2369/12109 2146/2370/12110 2133/2357/12111 +f 2133/2357/12112 2132/2356/12113 2145/2369/12114 +f 2147/2371/12115 2134/2358/12116 2133/2357/12117 +f 2133/2357/12118 2146/2370/12119 2147/2371/12120 +f 2148/2372/12121 2135/2359/12122 2134/2358/12123 +f 2134/2358/12124 2147/2371/12125 2148/2372/12126 +f 2149/2373/12127 2136/2360/12128 2135/2359/12129 +f 2135/2359/12130 2148/2372/12131 2149/2373/12132 +f 2149/2373/12133 2150/2374/12134 2138/2361/12135 +f 2138/2361/12136 2136/2360/12137 2149/2373/12138 +f 2150/2374/12139 2142/2500/12140 2129/2494/12141 +f 2129/2494/12142 2138/2361/12143 2150/2374/12144 +f 2118/2202/12145 2120/2203/12146 2031/2113/12147 +f 2031/2113/12148 2027/2112/12149 2118/2202/12150 +f 2025/2109/12151 2032/2116/12152 2054/2138/12153 +f 2054/2138/12154 2122/2211/12155 2025/2109/12156 +f 2054/2296/12157 2058/2292/12158 2121/2347/12159 +f 2121/2347/12160 2122/2348/12161 2054/2296/12162 +f 2153/2598/12163 2152/2228/12164 2151/2225/12165 +f 2151/2225/12166 2154/2226/12167 2153/2598/12168 +f 2155/2230/12169 2152/2228/12170 2153/2598/12171 +f 2153/2598/12172 2156/2229/12173 2155/2230/12174 +f 2158/2231/12175 2157/2232/12176 2155/2230/12177 +f 2155/2230/12178 2156/2229/12179 2158/2231/12180 +f 1416/1499/12181 2160/2234/12182 2159/2233/12183 +f 2159/2233/12184 1417/1500/12185 1416/1499/12186 +f 1415/1498/12187 2161/2235/12188 2160/2234/12189 +f 2160/2234/12190 1416/1499/12191 1415/1498/12192 +f 2162/2236/12193 2161/2235/12194 1415/1498/12195 +f 1415/1498/12196 1414/1497/12197 2162/2236/12198 +f 2163/2237/12199 2162/2236/12200 1414/1497/12201 +f 1414/1497/12202 1413/1496/12203 2163/2237/12204 +f 2164/2238/12205 2163/2237/12206 1413/1496/12207 +f 1413/1496/12208 1427/1510/12209 2164/2238/12210 +f 1427/1510/12211 1424/1507/12212 2165/2239/12213 +f 2165/2239/12214 2164/2238/12215 1427/1510/12216 +f 2154/2597/12217 2151/2596/12218 2166/2240/12219 +f 2166/2240/12220 2167/2241/12221 2154/2597/12222 +f 2099/2329/12223 1632/1718/12224 1633/1717/12225 +f 1633/1717/12226 2140/2364/12227 2099/2329/12228 +f 2168/2375/12229 2140/2364/12230 1633/1717/12231 +f 1633/1717/12232 2021/2275/12233 2168/2375/12234 +f 2021/2275/12235 2020/2274/12236 2107/2339/12237 +f 2107/2339/12238 2168/2375/12239 2021/2275/12240 +f 2169/2376/12241 2139/2363/12242 2140/2364/12243 +f 2140/2364/12244 2168/2375/12245 2169/2376/12246 +f 2170/2377/12247 2129/2494/12248 1608/2330/12249 +f 1608/2330/12250 2139/2363/12251 2170/2377/12252 +f 2138/2361/12253 2129/2494/12254 2170/2377/12255 +f 2170/2377/12256 2171/2378/12257 2138/2361/12258 +f 2169/2376/12259 2171/2378/12260 2170/2377/12261 +f 2170/2377/12262 2139/2363/12263 2169/2376/12264 +f 2137/2362/12265 2138/2361/12266 2171/2378/12267 +f 2171/2378/12268 2169/2376/12269 2137/2362/12270 +f 2168/2375/12271 2107/2339/12272 2137/2362/12273 +f 2137/2362/12274 2169/2376/12275 2168/2375/12276 +f 2166/2240/12277 2150/2243/12278 2149/2242/12279 +f 2149/2242/12280 2164/2238/12281 2166/2240/12282 +f 2163/2237/12283 2164/2238/12284 2149/2242/12285 +f 2149/2242/12286 2148/2244/12287 2163/2237/12288 +f 2162/2236/12289 2163/2237/12290 2148/2244/12291 +f 2148/2244/12292 2147/2245/12293 2162/2236/12294 +f 2161/2235/12295 2162/2236/12296 2147/2245/12297 +f 2147/2245/12298 2146/2246/12299 2161/2235/12300 +f 2160/2234/12301 2161/2235/12302 2146/2246/12303 +f 2146/2246/12304 2145/2247/12305 2160/2234/12306 +f 2157/2232/12307 2158/2231/12308 2159/2233/12309 +f 2159/2233/12310 2160/2234/12311 2157/2232/12312 +f 2143/2249/12313 2155/2230/12314 2157/2232/12315 +f 2157/2232/12316 2144/2248/12317 2143/2249/12318 +f 2141/2250/12319 2152/2228/12320 2155/2230/12321 +f 2155/2230/12322 2143/2249/12323 2141/2250/12324 +f 2151/2225/12325 2152/2228/12326 2141/2250/12327 +f 2141/2250/12328 2142/2251/12329 2151/2225/12330 +f 2150/2243/12331 2166/2240/12332 2151/2596/12333 +f 2151/2596/12334 2142/2599/12335 2150/2243/12336 +f 1423/1506/12337 2167/2241/12338 2165/2239/12339 +f 2165/2239/12340 1424/1507/12341 1423/1506/12342 +f 1421/1504/12343 2154/2597/12344 2167/2241/12345 +f 2167/2241/12346 1423/1506/12347 1421/1504/12348 +f 1420/2594/12349 2153/2227/12350 2154/2597/12351 +f 2154/2597/12352 1421/1504/12353 1420/2594/12354 +f 2156/2229/12355 2153/2598/12356 1420/1503/12357 +f 1420/1503/12358 1419/1502/12359 2156/2229/12360 +f 2158/2231/12361 2156/2229/12362 1419/1502/12363 +f 1419/1502/12364 1418/1501/12365 2158/2231/12366 +f 1417/1500/12367 2159/2233/12368 2158/2231/12369 +f 2158/2231/12370 1418/1501/12371 1417/1500/12372 +f 2166/2240/12373 2164/2238/12374 2165/2239/12375 +f 2165/2239/12376 2167/2241/12377 2166/2240/12378 +f 2157/2232/12379 2160/2234/12380 2145/2247/12381 +f 2145/2247/12382 2144/2248/12383 2157/2232/12384 +f 1489/2528/12385 1315/1558/12386 1316/1557/12387 +f 1316/1557/12388 1309/1550/12389 1489/2528/12390 +f 1550/1633/12391 1323/1406/12392 1324/1405/12393 +f 1324/1405/12394 1545/1628/12395 1550/1633/12396 +f 1525/1609/12397 1526/1608/12398 1555/1638/12399 +f 1555/1638/12400 1529/1614/12401 1525/1609/12402 +f 1527/1610/12403 1525/2614/12404 1529/2616/12405 +f 1529/2616/12406 1530/1613/12407 1527/1610/12408 +f 1296/1378/12409 1527/1610/12410 1534/1617/12411 +f 1534/1617/12412 1293/1377/12413 1296/1378/12414 +f 1293/1377/12415 1534/1617/12416 1537/1620/12417 +f 1537/1620/12418 1292/479/12419 1293/1377/12420 +f 1292/479/12421 1537/1620/12422 1540/1623/12423 +f 1540/1623/12424 1506/1425/12425 1292/479/12426 +f 1506/1425/12427 1540/1623/12428 1543/1626/12429 +f 1543/1626/12430 1507/1589/12431 1506/1425/12432 +f 1507/1589/12433 1543/1626/12434 1324/1405/12435 +f 1324/1405/12436 1322/1381/12437 1507/1589/12438 +f 1556/1639/12439 1526/1608/12440 1523/1606/12441 +f 1523/1606/12442 1522/1605/12443 1556/1639/12444 +f 1323/1406/12445 1556/1639/12446 1522/1605/12447 +f 1522/1605/12448 1321/1403/12449 1323/1406/12450 +f 1509/1591/12451 1322/1381/12452 1319/1380/12453 +f 1319/1380/12454 1510/1593/12455 1509/1591/12456 +f 1546/1630/12457 1547/1629/12458 1575/1659/12459 +f 1575/1659/12460 2172/2256/12461 1546/1630/12462 +f 1549/1631/12463 1546/1630/12464 2172/2256/12465 +f 2172/2256/12466 2173/2257/12467 1549/1631/12468 +f 2174/2258/12469 1552/1634/12470 1549/1631/12471 +f 1549/1631/12472 2173/2257/12473 2174/2258/12474 +f 1562/1643/12475 1557/1640/12476 1552/1634/12477 +f 1552/1634/12478 2174/2258/12479 1562/1643/12480 +f 1559/2618/12481 1558/1641/12482 1557/1640/12483 +f 1557/1640/12484 1562/1643/12485 1559/2618/12486 +f 1558/2617/12487 1565/1648/12488 1531/1612/12489 +f 1531/1612/12490 1528/1611/12491 1558/2617/12492 +f 1531/1612/12493 1565/1648/12494 1568/1651/12495 +f 1568/1651/12496 1532/1615/12497 1531/1612/12498 +f 1532/1615/12499 1568/1651/12500 1571/1654/12501 +f 1571/1654/12502 1535/1618/12503 1532/1615/12504 +f 1535/1618/12505 1571/1654/12506 1574/1657/12507 +f 1574/1657/12508 1538/1621/12509 1535/1618/12510 +f 1538/1621/12511 1574/1657/12512 1547/1629/12513 +f 1547/1629/12514 1541/1624/12515 1538/1621/12516 +f 1560/1645/12517 1561/1644/12518 1591/1674/12519 +f 1591/1674/12520 1593/1675/12521 1560/1645/12522 +f 1564/1646/12523 1560/2619/12524 1593/2620/12525 +f 1593/2620/12526 1595/1677/12527 1564/1646/12528 +f 1567/1649/12529 1564/1646/12530 1595/1677/12531 +f 1595/1677/12532 1597/1679/12533 1567/1649/12534 +f 1570/1652/12535 1567/1649/12536 1597/1679/12537 +f 1597/1679/12538 1599/1681/12539 1570/1652/12540 +f 1578/1663/12541 1573/1655/12542 1570/1652/12543 +f 1570/1652/12544 1599/1681/12545 1578/1663/12546 +f 1579/1662/12547 1576/1658/12548 1573/1655/12549 +f 1573/1655/12550 1578/1663/12551 1579/1662/12552 +f 1575/1659/12553 1576/1658/12554 1583/1666/12555 +f 1583/1666/12556 2172/2256/12557 1575/1659/12558 +f 2172/2256/12559 1583/1666/12560 1586/1669/12561 +f 1586/1669/12562 2173/2257/12563 2172/2256/12564 +f 2173/2257/12565 1586/1669/12566 1589/1672/12567 +f 1589/1672/12568 2174/2258/12569 2173/2257/12570 +f 1589/1672/12571 1561/1644/12572 1562/1643/12573 +f 1562/1643/12574 2174/2258/12575 1589/1672/12576 +f 608/2569/12577 609/2573/12578 447/531/12579 +f 447/531/12580 448/530/12581 608/2569/12582 +f 609/2573/12583 611/695/12584 610/694/12585 +f 610/694/12586 447/531/12587 609/2573/12588 +f 614/700/12589 446/532/12590 447/531/12591 +f 447/531/12592 610/694/12593 614/700/12594 +f 2175/2622/12595 2176/2623/12596 2177/2626/12597 +f 2177/2626/12598 2178/2629/12599 2175/2622/12600 +f 2330/2806/12601 2331/2807/12602 2179/2646/12603 +f 2179/2646/12604 2180/2647/12605 2330/2806/12606 +f 2181/2624/12607 2179/2625/12608 2331/2808/12609 +f 2331/2808/12610 2332/2809/12611 2181/2624/12612 +f 2181/2624/12613 2332/2809/12614 2333/2810/12615 +f 2333/2810/12616 2184/2631/12617 2181/2624/12618 +f 2185/2632/12619 2183/2630/12620 2182/2628/12621 +f 2182/2628/12622 2186/2633/12623 2185/2632/12624 +f 2187/2634/12625 2188/2635/12626 2183/2630/12627 +f 2183/2630/12628 2185/2632/12629 2187/2634/12630 +f 2189/2636/12631 2190/2637/12632 2187/2634/12633 +f 2187/2634/12634 2191/2638/12635 2189/2636/12636 +f 2189/2649/12637 2192/2657/12638 2193/2659/12639 +f 2193/2659/12640 2194/2661/12641 2189/2649/12642 +f 2192/2657/12643 2195/2662/12644 2196/2663/12645 +f 2196/2663/12646 2193/2659/12647 2192/2657/12648 +s 2 +f 2195/2639/12649 2197/2640/12650 2198/2641/12651 +f 2198/2641/12652 2199/2642/12653 2195/2639/12654 +s 1 +f 2192/2643/12655 2200/2644/12656 2197/2640/12657 +f 2197/2640/12658 2195/2639/12659 2192/2643/12660 +s 2 +f 2201/2645/12661 2202/2648/12662 2198/2641/12663 +f 2198/2641/12664 2197/2640/12665 2201/2645/12666 +s 1 +f 2200/2644/12667 2203/2650/12668 2201/2645/12669 +f 2201/2645/12670 2197/2640/12671 2200/2644/12672 +s 2 +f 2196/2663/12673 2195/2662/12674 2199/2664/12675 +f 2199/2664/12676 2204/2665/12677 2196/2663/12678 +s 1 +f 2205/2666/12679 2206/2667/12680 2204/2665/12681 +f 2204/2665/12682 2199/2664/12683 2205/2666/12684 +f 2198/2641/12685 2207/2651/12686 2205/2652/12687 +f 2205/2652/12688 2199/2642/12689 2198/2641/12690 +f 2194/2661/12691 2193/2659/12692 2208/2668/12693 +f 2208/2668/12694 2209/2669/12695 2194/2661/12696 +f 2194/2661/12697 2210/2670/12698 2190/2687/12699 +f 2190/2687/12700 2189/2649/12701 2194/2661/12702 +f 2209/2669/12703 2211/2688/12704 2210/2670/12705 +f 2210/2670/12706 2194/2661/12707 2209/2669/12708 +f 2212/2690/12709 2208/2668/12710 2193/2659/12711 +f 2193/2659/12712 2196/2663/12713 2212/2690/12714 +f 2213/2691/12715 2214/2692/12716 2209/2669/12717 +f 2209/2669/12718 2208/2668/12719 2213/2691/12720 +f 2213/2691/12721 2208/2668/12722 2212/2690/12723 +f 2212/2690/12724 2215/2693/12725 2213/2691/12726 +f 2189/2636/12727 2191/2638/12728 2200/2644/12729 +f 2200/2644/12730 2192/2643/12731 2189/2636/12732 +f 2191/2638/12733 2216/2653/12734 2203/2650/12735 +f 2203/2650/12736 2200/2644/12737 2191/2638/12738 +f 2216/2653/12739 2217/2654/12740 2218/2655/12741 +f 2218/2655/12742 2203/2650/12743 2216/2653/12744 +f 2217/2654/12745 2216/2653/12746 2185/2632/12747 +f 2185/2632/12748 2186/2633/12749 2217/2654/12750 +f 2185/2632/12751 2216/2653/12752 2191/2638/12753 +f 2191/2638/12754 2187/2634/12755 2185/2632/12756 +f 2219/2656/12757 2188/2635/12758 2187/2634/12759 +f 2187/2634/12760 2190/2637/12761 2219/2656/12762 +f 2335/2812/12763 2220/2658/12764 2221/2660/12765 +f 2221/2660/12766 2334/2811/12767 2335/2812/12768 +s 2 +f 2220/2694/12769 2222/2695/12770 2223/2696/12771 +f 2223/2696/12772 2224/2697/12773 2220/2694/12774 +s 1 +f 2335/2813/12775 2336/2814/12776 2222/2695/12777 +f 2222/2695/12778 2220/2694/12779 2335/2813/12780 +f 2226/2740/12781 2227/2757/12782 2222/2695/12783 +f 2222/2695/12784 2336/2814/12785 2226/2740/12786 +f 2210/2670/12787 2211/2688/12788 2337/2815/12789 +f 2337/2815/12790 2225/2699/12791 2210/2670/12792 +f 2190/2687/12793 2210/2670/12794 2225/2699/12795 +f 2225/2699/12796 2219/2698/12797 2190/2687/12798 +s 4 +f 2227/2757/12799 2228/2759/12800 2223/2696/12801 +f 2223/2696/12802 2222/2695/12803 2227/2757/12804 +s 8 +f 2228/2759/12805 2227/2757/12806 2180/2647/12807 +f 2180/2647/12808 2229/2760/12809 2228/2759/12810 +s 2 +f 2230/2671/12811 2221/2660/12812 2220/2658/12813 +f 2220/2658/12814 2224/2672/12815 2230/2671/12816 +f 2221/2660/12817 2230/2671/12818 2231/2673/12819 +f 2231/2673/12820 2184/2631/12821 2221/2660/12822 +s 1 +f 2334/2811/12823 2221/2660/12824 2184/2631/12825 +f 2184/2631/12826 2333/2810/12827 2334/2811/12828 +f 2177/2674/12829 2186/2633/12830 2182/2628/12831 +f 2182/2628/12832 2178/2627/12833 2177/2674/12834 +f 2232/2675/12835 2186/2633/12836 2177/2674/12837 +f 2177/2674/12838 2233/2676/12839 2232/2675/12840 +f 2232/2675/12841 2234/2677/12842 2217/2654/12843 +f 2217/2654/12844 2186/2633/12845 2232/2675/12846 +f 2235/2678/12847 2236/2679/12848 2234/2677/12849 +f 2234/2677/12850 2237/2680/12851 2235/2678/12852 +f 2235/2678/12853 2238/2681/12854 2239/2682/12855 +f 2239/2682/12856 2240/2683/12857 2235/2678/12858 +f 2239/2682/12859 2238/2681/12860 2241/2684/12861 +f 2241/2684/12862 2242/2685/12863 2239/2682/12864 +s 2 +f 2239/2682/12865 2243/2686/12866 2244/2689/12867 +f 2244/2689/12868 2240/2683/12869 2239/2682/12870 +f 2243/2686/12871 2239/2682/12872 2242/2685/12873 +f 2242/2685/12874 2245/2700/12875 2243/2686/12876 +s 1 +f 2238/2681/12877 2246/2701/12878 2247/2702/12879 +f 2247/2702/12880 2241/2684/12881 2238/2681/12882 +f 2241/2684/12883 2248/2703/12884 2249/2704/12885 +f 2249/2704/12886 2242/2685/12887 2241/2684/12888 +f 2247/2702/12889 2250/2705/12890 2248/2703/12891 +f 2248/2703/12892 2241/2684/12893 2247/2702/12894 +f 2237/2680/12895 2246/2701/12896 2238/2681/12897 +f 2238/2681/12898 2235/2678/12899 2237/2680/12900 +f 2251/2706/12901 2252/2707/12902 2246/2701/12903 +f 2246/2701/12904 2237/2680/12905 2251/2706/12906 +f 2234/2677/12907 2232/2675/12908 2251/2706/12909 +f 2251/2706/12910 2237/2680/12911 2234/2677/12912 +f 2236/2679/12913 2235/2678/12914 2240/2683/12915 +f 2240/2683/12916 2253/2708/12917 2236/2679/12918 +f 2217/2654/12919 2234/2677/12920 2236/2679/12921 +f 2236/2679/12922 2218/2655/12923 2217/2654/12924 +f 2236/2679/12925 2253/2708/12926 2254/2709/12927 +f 2254/2709/12928 2218/2655/12929 2236/2679/12930 +s 2 +f 2254/2709/12931 2253/2708/12932 2255/2710/12933 +f 2255/2710/12934 2256/2711/12935 2254/2709/12936 +f 2240/2683/12937 2244/2689/12938 2255/2710/12939 +f 2255/2710/12940 2253/2708/12941 2240/2683/12942 +s 1 +f 2233/2676/12943 2257/2712/12944 2251/2706/12945 +f 2251/2706/12946 2232/2675/12947 2233/2676/12948 +f 2257/2741/12949 2233/2742/12950 2258/2743/12951 +f 2258/2743/12952 2259/2744/12953 2257/2741/12954 +s 2 +f 2251/2706/12955 2257/2712/12956 2260/2713/12957 +f 2260/2713/12958 2261/2714/12959 2251/2706/12960 +s 1 +f 2262/2745/12961 2263/2746/12962 2322/2796/12963 +f 2322/2796/12964 2324/2799/12965 2262/2745/12966 +s 2 +f 2262/2745/12967 2265/2749/12968 2266/2750/12969 +f 2266/2750/12970 2263/2746/12971 2262/2745/12972 +f 2265/2749/12973 2262/2745/12974 2267/2751/12975 +f 2267/2751/12976 2268/2752/12977 2265/2749/12978 +s 1 +f 2324/2799/12979 2325/2800/12980 2267/2751/12981 +f 2267/2751/12982 2262/2745/12983 2324/2799/12984 +f 2259/2744/12985 2264/2748/12986 2260/2747/12987 +f 2260/2747/12988 2257/2741/12989 2259/2744/12990 +f 2259/2744/12991 2270/2754/12992 2269/2753/12993 +f 2269/2753/12994 2264/2748/12995 2259/2744/12996 +f 2259/2744/12997 2271/2755/12998 2272/2756/12999 +f 2272/2756/13000 2270/2754/13001 2259/2744/13002 +f 2273/2758/13003 2271/2755/13004 2259/2744/13005 +f 2259/2744/13006 2258/2743/13007 2273/2758/13008 +f 2274/2715/13009 2323/2798/13010 2322/2797/13011 +f 2322/2797/13012 2263/2716/13013 2274/2715/13014 +s 2 +f 2274/2715/13015 2275/2717/13016 2276/2718/13017 +f 2276/2718/13018 2277/2719/13019 2274/2715/13020 +s 4 +f 2275/2717/13021 2274/2715/13022 2263/2716/13023 +f 2263/2716/13024 2266/2720/13025 2275/2717/13026 +s 1 +f 2323/2798/13027 2274/2715/13028 2277/2719/13029 +f 2277/2719/13030 2326/2801/13031 2323/2798/13032 +f 2177/2626/13033 2176/2623/13034 2258/2743/13035 +f 2258/2743/13036 2233/2742/13037 2177/2626/13038 +s 8 +f 2279/2722/13039 2280/2723/13040 2179/2625/13041 +f 2179/2625/13042 2181/2624/13043 2279/2722/13044 +s 2 +f 2184/2631/13045 2231/2673/13046 2279/2722/13047 +f 2279/2722/13048 2181/2624/13049 2184/2631/13050 +s 8 +f 2280/2761/13051 2229/2760/13052 2180/2647/13053 +f 2180/2647/13054 2179/2646/13055 2280/2761/13056 +s 1 +f 2176/2623/13057 2175/2622/13058 2337/2815/13059 +f 2337/2815/13060 2211/2688/13061 2176/2623/13062 +f 2227/2757/13063 2226/2740/13064 2330/2806/13065 +f 2330/2806/13066 2180/2647/13067 2227/2757/13068 +f 2214/2692/13069 2273/2758/13070 2258/2743/13071 +f 2258/2743/13072 2176/2623/13073 2214/2692/13074 +f 2176/2623/13075 2211/2688/13076 2209/2669/13077 +f 2209/2669/13078 2214/2692/13079 2176/2623/13080 +f 2214/2692/13081 2213/2691/13082 2281/2762/13083 +f 2281/2762/13084 2273/2758/13085 2214/2692/13086 +f 2281/2762/13087 2282/2765/13088 2271/2755/13089 +f 2271/2755/13090 2273/2758/13091 2281/2762/13092 +f 2282/2765/13093 2283/2766/13094 2284/2767/13095 +f 2284/2767/13096 2285/2768/13097 2282/2765/13098 +s 2 +f 2283/2766/13099 2286/2769/13100 2287/2772/13101 +f 2287/2772/13102 2284/2767/13103 2283/2766/13104 +s 1 +f 2286/2769/13105 2288/2763/13106 2289/2771/13107 +f 2289/2771/13108 2290/2776/13109 2286/2769/13110 +f 2288/2763/13111 2291/2764/13112 2292/2770/13113 +f 2292/2770/13114 2289/2771/13115 2288/2763/13116 +f 2293/2773/13117 2294/2774/13118 2292/2770/13119 +f 2292/2770/13120 2291/2764/13121 2293/2773/13122 +f 2294/2774/13123 2293/2773/13124 2204/2665/13125 +f 2204/2665/13126 2206/2667/13127 2294/2774/13128 +s 2 +f 2212/2690/13129 2196/2663/13130 2204/2665/13131 +f 2204/2665/13132 2293/2773/13133 2212/2690/13134 +f 2215/2693/13135 2212/2690/13136 2293/2773/13137 +f 2293/2773/13138 2291/2764/13139 2215/2693/13140 +f 2215/2693/13141 2291/2764/13142 2288/2763/13143 +f 2288/2763/13144 2295/2775/13145 2215/2693/13146 +f 2288/2763/13147 2286/2769/13148 2283/2766/13149 +f 2283/2766/13150 2295/2775/13151 2288/2763/13152 +s 1 +f 2213/2691/13153 2215/2693/13154 2295/2775/13155 +f 2295/2775/13156 2281/2762/13157 2213/2691/13158 +f 2281/2762/13159 2295/2775/13160 2283/2766/13161 +f 2283/2766/13162 2282/2765/13163 2281/2762/13164 +f 2287/2772/13165 2286/2769/13166 2290/2776/13167 +f 2290/2776/13168 2296/2777/13169 2287/2772/13170 +s 2 +f 2287/2772/13171 2297/2778/13172 2298/2779/13173 +f 2298/2779/13174 2284/2767/13175 2287/2772/13176 +f 2298/2779/13177 2297/2778/13178 2299/2780/13179 +f 2299/2780/13180 2249/2781/13181 2298/2779/13182 +s 1 +f 2298/2779/13183 2300/2782/13184 2285/2768/13185 +f 2285/2768/13186 2284/2767/13187 2298/2779/13188 +f 2298/2779/13189 2249/2781/13190 2248/2783/13191 +f 2248/2783/13192 2300/2782/13193 2298/2779/13194 +f 2300/2782/13195 2301/2784/13196 2272/2756/13197 +f 2272/2756/13198 2285/2768/13199 2300/2782/13200 +f 2301/2784/13201 2300/2782/13202 2248/2783/13203 +f 2248/2783/13204 2250/2785/13205 2301/2784/13206 +f 2270/2754/13207 2272/2756/13208 2301/2784/13209 +f 2301/2784/13210 2302/2786/13211 2270/2754/13212 +f 2250/2785/13213 2303/2787/13214 2302/2786/13215 +f 2302/2786/13216 2301/2784/13217 2250/2785/13218 +f 2271/2755/13219 2282/2765/13220 2285/2768/13221 +f 2285/2768/13222 2272/2756/13223 2271/2755/13224 +s 2 +f 2242/2685/13225 2249/2704/13226 2299/2724/13227 +f 2299/2724/13228 2245/2700/13229 2242/2685/13230 +s 1 +f 2304/2725/13231 2245/2700/13232 2299/2724/13233 +f 2299/2724/13234 2305/2726/13235 2304/2725/13236 +f 2306/2727/13237 2243/2686/13238 2245/2700/13239 +f 2245/2700/13240 2304/2725/13241 2306/2727/13242 +f 2244/2689/13243 2243/2686/13244 2306/2727/13245 +f 2306/2727/13246 2307/2728/13247 2244/2689/13248 +f 2299/2780/13249 2297/2778/13250 2308/2788/13251 +f 2308/2788/13252 2305/2789/13253 2299/2780/13254 +f 2287/2772/13255 2296/2777/13256 2308/2788/13257 +f 2308/2788/13258 2297/2778/13259 2287/2772/13260 +f 2254/2709/13261 2201/2645/13262 2203/2650/13263 +f 2203/2650/13264 2218/2655/13265 2254/2709/13266 +s 2 +f 2254/2709/13267 2256/2711/13268 2202/2648/13269 +f 2202/2648/13270 2201/2645/13271 2254/2709/13272 +s 1 +f 2261/2714/13273 2278/2721/13274 2252/2707/13275 +f 2252/2707/13276 2251/2706/13277 2261/2714/13278 +f 2309/2729/13279 2326/2801/13280 2277/2719/13281 +f 2277/2719/13282 2310/2730/13283 2309/2729/13284 +f 2278/2721/13285 2327/2802/13286 2311/2731/13287 +f 2311/2731/13288 2252/2707/13289 2278/2721/13290 +f 2247/2702/13291 2246/2701/13292 2252/2707/13293 +f 2252/2707/13294 2311/2731/13295 2247/2702/13296 +f 2303/2732/13297 2250/2705/13298 2247/2702/13299 +f 2247/2702/13300 2311/2731/13301 2303/2732/13302 +f 2312/2733/13303 2303/2732/13304 2311/2731/13305 +f 2311/2731/13306 2327/2802/13307 2312/2733/13308 +f 2328/2803/13309 2313/2791/13310 2314/2792/13311 +f 2314/2792/13312 2329/2805/13313 2328/2803/13314 +s 4 +f 2316/2794/13315 2317/2795/13316 2314/2792/13317 +f 2314/2792/13318 2313/2791/13319 2316/2794/13320 +f 2318/2734/13321 2316/2735/13322 2313/2736/13323 +f 2313/2736/13324 2310/2730/13325 2318/2734/13326 +f 2276/2718/13327 2318/2734/13328 2310/2730/13329 +f 2310/2730/13330 2277/2719/13331 2276/2718/13332 +s 1 +f 2328/2804/13333 2309/2729/13334 2310/2730/13335 +f 2310/2730/13336 2313/2736/13337 2328/2804/13338 +s 8 +f 2314/2792/13339 2317/2795/13340 2268/2752/13341 +f 2268/2752/13342 2267/2751/13343 2314/2792/13344 +s 1 +f 2325/2800/13345 2329/2805/13346 2314/2792/13347 +f 2314/2792/13348 2267/2751/13349 2325/2800/13350 +f 2302/2786/13351 2303/2787/13352 2312/2790/13353 +f 2312/2790/13354 2315/2793/13355 2302/2786/13356 +f 2315/2793/13357 2269/2753/13358 2270/2754/13359 +f 2270/2754/13360 2302/2786/13361 2315/2793/13362 +f 2319/2737/13363 2255/2710/13364 2244/2689/13365 +f 2244/2689/13366 2307/2728/13367 2319/2737/13368 +f 2320/2738/13369 2256/2711/13370 2255/2710/13371 +f 2255/2710/13372 2319/2737/13373 2320/2738/13374 +f 2256/2711/13375 2320/2738/13376 2321/2739/13377 +f 2321/2739/13378 2202/2648/13379 2256/2711/13380 +f 2321/2739/13381 2207/2651/13382 2198/2641/13383 +f 2198/2641/13384 2202/2648/13385 2321/2739/13386 +f 2260/2713/13387 2322/2797/13388 2323/2798/13389 +f 2323/2798/13390 2261/2714/13391 2260/2713/13392 +f 2322/2796/13393 2260/2747/13394 2264/2748/13395 +f 2264/2748/13396 2324/2799/13397 2322/2796/13398 +f 2324/2799/13399 2264/2748/13400 2269/2753/13401 +f 2269/2753/13402 2325/2800/13403 2324/2799/13404 +f 2326/2801/13405 2278/2721/13406 2261/2714/13407 +f 2261/2714/13408 2323/2798/13409 2326/2801/13410 +f 2309/2729/13411 2327/2802/13412 2278/2721/13413 +f 2278/2721/13414 2326/2801/13415 2309/2729/13416 +f 2327/2802/13417 2309/2729/13418 2328/2804/13419 +f 2328/2804/13420 2312/2733/13421 2327/2802/13422 +f 2329/2805/13423 2315/2793/13424 2312/2790/13425 +f 2312/2790/13426 2328/2803/13427 2329/2805/13428 +f 2325/2800/13429 2269/2753/13430 2315/2793/13431 +f 2315/2793/13432 2329/2805/13433 2325/2800/13434 +f 2178/2629/13435 2331/2807/13436 2330/2806/13437 +f 2330/2806/13438 2175/2622/13439 2178/2629/13440 +f 2331/2808/13441 2178/2627/13442 2182/2628/13443 +f 2182/2628/13444 2332/2809/13445 2331/2808/13446 +f 2332/2809/13447 2182/2628/13448 2183/2630/13449 +f 2183/2630/13450 2333/2810/13451 2332/2809/13452 +f 2188/2635/13453 2334/2811/13454 2333/2810/13455 +f 2333/2810/13456 2183/2630/13457 2188/2635/13458 +f 2219/2656/13459 2335/2812/13460 2334/2811/13461 +f 2334/2811/13462 2188/2635/13463 2219/2656/13464 +f 2335/2813/13465 2219/2698/13466 2225/2699/13467 +f 2225/2699/13468 2336/2814/13469 2335/2813/13470 +f 2336/2814/13471 2225/2699/13472 2337/2815/13473 +f 2337/2815/13474 2226/2740/13475 2336/2814/13476 +f 2175/2622/13477 2330/2806/13478 2226/2740/13479 +f 2226/2740/13480 2337/2815/13481 2175/2622/13482 +f 2340/2818/13483 2341/2819/13484 2338/2816/13485 +f 2338/2816/13486 2339/2817/13487 2340/2818/13488 +f 2426/2820/13489 2427/2821/13490 2344/2822/13491 +f 2344/2822/13492 2338/2816/13493 2426/2820/13494 +f 2346/2825/13495 2347/2826/13496 2448/2823/13497 +f 2448/2823/13498 2450/2824/13499 2346/2825/13500 +f 2451/2827/13501 2349/2828/13502 2346/2825/13503 +f 2346/2825/13504 2450/2824/13505 2451/2827/13506 +f 2428/2830/13507 2429/2831/13508 2348/2832/13509 +f 2348/2832/13510 2345/2829/13511 2428/2830/13512 +f 2351/2833/13513 2350/2834/13514 2341/2819/13515 +f 2341/2819/13516 2340/2818/13517 2351/2833/13518 +f 2352/2835/13519 2353/2836/13520 2350/2834/13521 +f 2350/2834/13522 2351/2833/13523 2352/2835/13524 +f 2350/2834/13525 2353/2836/13526 2430/2837/13527 +f 2430/2837/13528 2429/2831/13529 2350/2834/13530 +f 2354/2838/13531 2430/2837/13532 2431/2839/13533 +f 2431/2839/13534 2356/2840/13535 2354/2838/13536 +f 2357/2842/13537 2349/2828/13538 2451/2827/13539 +f 2451/2827/13540 2452/2841/13541 2357/2842/13542 +f 2358/2844/13543 2357/2842/13544 2452/2841/13545 +f 2452/2841/13546 2453/2843/13547 2358/2844/13548 +f 2432/2846/13549 2431/2839/13550 2355/2847/13551 +f 2355/2847/13552 2359/2845/13553 2432/2846/13554 +f 2362/2849/13555 2363/2850/13556 2359/2845/13557 +f 2359/2845/13558 2361/2848/13559 2362/2849/13560 +f 2361/2848/13561 2359/2845/13562 2355/2847/13563 +f 2355/2847/13564 2364/2851/13565 2361/2848/13566 +f 2365/2852/13567 2360/2853/13568 2432/2846/13569 +f 2432/2846/13570 2433/2854/13571 2365/2852/13572 +f 2355/2847/13573 2353/2836/13574 2352/2835/13575 +f 2352/2835/13576 2364/2851/13577 2355/2847/13578 +f 2345/2829/13579 2342/2855/13580 2426/2820/13581 +f 2426/2820/13582 2428/2830/13583 2345/2829/13584 +f 2366/2856/13585 2343/2857/13586 2448/2823/13587 +f 2448/2823/13588 2347/2826/13589 2366/2856/13590 +f 2368/2859/13591 2343/2857/13592 2366/2856/13593 +f 2366/2856/13594 2367/2858/13595 2368/2859/13596 +f 2370/2861/13597 2368/2859/13598 2367/2858/13599 +f 2367/2858/13600 2369/2860/13601 2370/2861/13602 +f 2371/2862/13603 2372/2863/13604 2370/2861/13605 +f 2370/2861/13606 2369/2860/13607 2371/2862/13608 +f 2434/2865/13609 2435/2866/13610 2456/2867/13611 +f 2456/2867/13612 2457/2864/13613 2434/2865/13614 +f 2458/2868/13615 2436/2869/13616 2434/2865/13617 +f 2434/2865/13618 2457/2864/13619 2458/2868/13620 +f 2459/2870/13621 2437/2871/13622 2436/2869/13623 +f 2436/2869/13624 2458/2868/13625 2459/2870/13626 +f 2379/2874/13627 2380/2875/13628 2378/2872/13629 +f 2378/2872/13630 2376/2873/13631 2379/2874/13632 +f 2371/2862/13633 2379/2874/13634 2376/2873/13635 +f 2376/2873/13636 2372/2863/13637 2371/2862/13638 +f 2377/2876/13639 2437/2871/13640 2438/2877/13641 +f 2438/2877/13642 2381/2878/13643 2377/2876/13644 +f 2382/2880/13645 2383/2881/13646 2375/2879/13647 +f 2375/2879/13648 2377/2876/13649 2382/2880/13650 +f 2375/2879/13651 2383/2881/13652 2384/2882/13653 +f 2384/2882/13654 2373/2883/13655 2375/2879/13656 +f 2384/2882/13657 2385/2885/13658 2374/2884/13659 +f 2374/2884/13660 2373/2883/13661 2384/2882/13662 +f 2386/2886/13663 2344/2822/13664 2374/2884/13665 +f 2374/2884/13666 2385/2885/13667 2386/2886/13668 +f 2344/2822/13669 2386/2886/13670 2339/2817/13671 +f 2339/2817/13672 2338/2816/13673 2344/2822/13674 +f 2449/2887/13675 2456/2867/13676 2435/2866/13677 +f 2435/2866/13678 2427/2821/13679 2449/2887/13680 +f 2454/2888/13681 2387/2889/13682 2358/2844/13683 +f 2358/2844/13684 2453/2843/13685 2454/2888/13686 +f 2388/2891/13687 2387/2889/13688 2454/2888/13689 +f 2454/2888/13690 2455/2890/13691 2388/2891/13692 +f 2390/2893/13693 2388/2953/13694 2455/2952/13695 +f 2455/2952/13696 2461/2892/13697 2390/2893/13698 +f 2392/2895/13699 2390/2893/13700 2461/2892/13701 +f 2461/2892/13702 2462/2894/13703 2392/2895/13704 +f 2392/2895/13705 2462/2894/13706 2463/2896/13707 +f 2463/2896/13708 2394/2897/13709 2392/2895/13710 +f 2394/2897/13711 2463/2896/13712 2464/2898/13713 +f 2464/2898/13714 2396/2899/13715 2394/2897/13716 +f 2396/2899/13717 2464/2898/13718 2465/2900/13719 +f 2465/2900/13720 2398/2901/13721 2396/2899/13722 +f 2400/2903/13723 2398/2901/13724 2465/2900/13725 +f 2465/2900/13726 2466/2902/13727 2400/2903/13728 +f 2402/2905/13729 2439/2906/13730 2440/2907/13731 +f 2440/2907/13732 2401/2904/13733 2402/2905/13734 +f 2403/2908/13735 2404/2909/13736 2402/2905/13737 +f 2402/2905/13738 2401/2904/13739 2403/2908/13740 +f 2405/2910/13741 2441/2911/13742 2439/2906/13743 +f 2439/2906/13744 2402/2905/13745 2405/2910/13746 +f 2405/2910/13747 2402/2905/13748 2404/2909/13749 +f 2404/2909/13750 2407/2912/13751 2405/2910/13752 +f 2409/2914/13753 2403/2908/13754 2401/2904/13755 +f 2401/2904/13756 2408/2913/13757 2409/2914/13758 +f 2442/2916/13759 2440/2907/13760 2397/2917/13761 +f 2397/2917/13762 2395/2915/13763 2442/2916/13764 +f 2467/2918/13765 2410/2919/13766 2400/2903/13767 +f 2400/2903/13768 2466/2902/13769 2467/2918/13770 +f 2412/2921/13771 2410/2919/13772 2467/2918/13773 +f 2467/2918/13774 2468/2920/13775 2412/2921/13776 +f 2413/2922/13777 2414/2923/13778 2412/2921/13779 +f 2412/2921/13780 2468/2920/13781 2413/2922/13782 +f 2416/2925/13783 2443/2926/13784 2444/2927/13785 +f 2444/2927/13786 2415/2924/13787 2416/2925/13788 +f 2406/2929/13789 2441/2911/13790 2444/2927/13791 +f 2444/2927/13792 2411/2928/13793 2406/2929/13794 +f 2417/2930/13795 2408/2913/13796 2442/2916/13797 +f 2442/2916/13798 2445/2931/13799 2417/2930/13800 +f 2445/2931/13801 2446/2932/13802 2418/2933/13803 +f 2418/2933/13804 2417/2930/13805 2445/2931/13806 +f 2420/2935/13807 2417/2930/13808 2418/2933/13809 +f 2418/2933/13810 2419/2934/13811 2420/2935/13812 +f 2422/2937/13813 2419/2934/13814 2418/2933/13815 +f 2418/2933/13816 2421/2936/13817 2422/2937/13818 +f 2421/2936/13819 2418/2933/13820 2446/2932/13821 +f 2446/2932/13822 2447/2938/13823 2421/2936/13824 +f 2363/2949/13825 2362/2948/13826 2422/2937/13827 +f 2422/2937/13828 2421/2936/13829 2363/2949/13830 +f 2433/2951/13831 2447/2938/13832 2389/2939/13833 +f 2389/2939/13834 2365/2950/13835 2433/2951/13836 +f 2409/2914/13837 2408/2913/13838 2417/2930/13839 +f 2417/2930/13840 2420/2935/13841 2409/2914/13842 +f 2405/2910/13843 2407/2912/13844 2423/2940/13845 +f 2423/2940/13846 2415/2924/13847 2405/2910/13848 +f 2423/2940/13849 2424/2941/13850 2416/2925/13851 +f 2416/2925/13852 2415/2924/13853 2423/2940/13854 +f 2425/2942/13855 2381/2957/13856 2416/2925/13857 +f 2416/2925/13858 2424/2941/13859 2425/2942/13860 +f 2377/2876/13861 2381/2878/13862 2425/2958/13863 +f 2425/2958/13864 2382/2880/13865 2377/2876/13866 +f 2381/2957/13867 2438/2956/13868 2443/2926/13869 +f 2443/2926/13870 2416/2925/13871 2381/2957/13872 +f 2378/2954/13873 2380/2955/13874 2414/2923/13875 +f 2414/2923/13876 2413/2922/13877 2378/2954/13878 +f 2342/2855/13879 2449/2887/13880 2427/2821/13881 +f 2427/2821/13882 2426/2820/13883 2342/2855/13884 +f 2341/2819/13885 2350/2834/13886 2429/2831/13887 +f 2429/2831/13888 2428/2830/13889 2341/2819/13890 +f 2430/2837/13891 2354/2838/13892 2348/2832/13893 +f 2348/2832/13894 2429/2831/13895 2430/2837/13896 +f 2353/2836/13897 2355/2847/13898 2431/2839/13899 +f 2431/2839/13900 2430/2837/13901 2353/2836/13902 +f 2360/2853/13903 2356/2840/13904 2431/2839/13905 +f 2431/2839/13906 2432/2846/13907 2360/2853/13908 +f 2359/2845/13909 2363/2850/13910 2433/2854/13911 +f 2433/2854/13912 2432/2846/13913 2359/2845/13914 +f 2338/2816/13915 2341/2819/13916 2428/2830/13917 +f 2428/2830/13918 2426/2820/13919 2338/2816/13920 +f 2373/2883/13921 2374/2884/13922 2435/2866/13923 +f 2435/2866/13924 2434/2865/13925 2373/2883/13926 +f 2436/2869/13927 2375/2879/13928 2373/2883/13929 +f 2373/2883/13930 2434/2865/13931 2436/2869/13932 +f 2437/2871/13933 2377/2876/13934 2375/2879/13935 +f 2375/2879/13936 2436/2869/13937 2437/2871/13938 +f 2437/2871/13939 2459/2870/13940 2460/2943/13941 +f 2460/2943/13942 2438/2877/13943 2437/2871/13944 +f 2374/2884/13945 2344/2822/13946 2427/2821/13947 +f 2427/2821/13948 2435/2866/13949 2374/2884/13950 +f 2399/2944/13951 2397/2917/13952 2440/2907/13953 +f 2440/2907/13954 2439/2906/13955 2399/2944/13956 +f 2441/2911/13957 2406/2929/13958 2399/2944/13959 +f 2399/2944/13960 2439/2906/13961 2441/2911/13962 +f 2442/2916/13963 2408/2913/13964 2401/2904/13965 +f 2401/2904/13966 2440/2907/13967 2442/2916/13968 +f 2443/2926/13969 2469/2945/13970 2411/2928/13971 +f 2411/2928/13972 2444/2927/13973 2443/2926/13974 +f 2441/2911/13975 2405/2910/13976 2415/2924/13977 +f 2415/2924/13978 2444/2927/13979 2441/2911/13980 +f 2395/2915/13981 2393/2946/13982 2445/2931/13983 +f 2445/2931/13984 2442/2916/13985 2395/2915/13986 +f 2393/2946/13987 2391/2947/13988 2446/2932/13989 +f 2446/2932/13990 2445/2931/13991 2393/2946/13992 +f 2391/2947/13993 2389/2939/13994 2447/2938/13995 +f 2447/2938/13996 2446/2932/13997 2391/2947/13998 +f 2363/2949/13999 2421/2936/14000 2447/2938/14001 +f 2447/2938/14002 2433/2951/14003 2363/2949/14004 +f 2438/2956/14005 2460/2959/14006 2469/2945/14007 +f 2469/2945/14008 2443/2926/14009 2438/2956/14010 +f 2342/2855/14011 2448/2823/14012 2343/2857/14013 +f 2343/2857/14014 2449/2887/14015 2342/2855/14016 +f 2448/2823/14017 2342/2855/14018 2345/2829/14019 +f 2345/2829/14020 2450/2824/14021 2448/2823/14022 +f 2450/2824/14023 2345/2829/14024 2348/2832/14025 +f 2348/2832/14026 2451/2827/14027 2450/2824/14028 +f 2354/2838/14029 2452/2841/14030 2451/2827/14031 +f 2451/2827/14032 2348/2832/14033 2354/2838/14034 +f 2356/2840/14035 2453/2843/14036 2452/2841/14037 +f 2452/2841/14038 2354/2838/14039 2356/2840/14040 +f 2360/2853/14041 2454/2888/14042 2453/2843/14043 +f 2453/2843/14044 2356/2840/14045 2360/2853/14046 +f 2365/2852/14047 2455/2890/14048 2454/2888/14049 +f 2454/2888/14050 2360/2853/14051 2365/2852/14052 +f 2368/2859/14053 2456/2867/14054 2449/2887/14055 +f 2449/2887/14056 2343/2857/14057 2368/2859/14058 +f 2370/2861/14059 2457/2864/14060 2456/2867/14061 +f 2456/2867/14062 2368/2859/14063 2370/2861/14064 +f 2372/2863/14065 2458/2868/14066 2457/2864/14067 +f 2457/2864/14068 2370/2861/14069 2372/2863/14070 +f 2458/2868/14071 2372/2863/14072 2376/2873/14073 +f 2376/2873/14074 2459/2870/14075 2458/2868/14076 +f 2378/2872/14077 2460/2943/14078 2459/2870/14079 +f 2459/2870/14080 2376/2873/14081 2378/2872/14082 +f 2455/2952/14083 2365/2950/14084 2389/2939/14085 +f 2389/2939/14086 2461/2892/14087 2455/2952/14088 +f 2461/2892/14089 2389/2939/14090 2391/2947/14091 +f 2391/2947/14092 2462/2894/14093 2461/2892/14094 +f 2462/2894/14095 2391/2947/14096 2393/2946/14097 +f 2393/2946/14098 2463/2896/14099 2462/2894/14100 +f 2463/2896/14101 2393/2946/14102 2395/2915/14103 +f 2395/2915/14104 2464/2898/14105 2463/2896/14106 +f 2464/2898/14107 2395/2915/14108 2397/2917/14109 +f 2397/2917/14110 2465/2900/14111 2464/2898/14112 +f 2465/2900/14113 2397/2917/14114 2399/2944/14115 +f 2399/2944/14116 2466/2902/14117 2465/2900/14118 +f 2406/2929/14119 2467/2918/14120 2466/2902/14121 +f 2466/2902/14122 2399/2944/14123 2406/2929/14124 +f 2467/2918/14125 2406/2929/14126 2411/2928/14127 +f 2411/2928/14128 2468/2920/14129 2467/2918/14130 +f 2468/2920/14131 2411/2928/14132 2469/2945/14133 +f 2469/2945/14134 2413/2922/14135 2468/2920/14136 +f 2460/2959/14137 2378/2954/14138 2413/2922/14139 +f 2413/2922/14140 2469/2945/14141 2460/2959/14142 +f 2486/2962/14143 2487/2963/14144 2524/2960/14145 +f 2524/2960/14146 2532/2961/14147 2486/2962/14148 +f 2471/2965/14149 2524/2960/14150 2487/2963/14151 +f 2487/2963/14152 2479/2964/14153 2471/2965/14154 +f 2472/2967/14155 2471/2965/14156 2479/2964/14157 +f 2479/2964/14158 2480/2966/14159 2472/2967/14160 +f 2473/2969/14161 2472/2967/14162 2480/2966/14163 +f 2480/2966/14164 2481/2968/14165 2473/2969/14166 +f 2474/2971/14167 2473/3024/14168 2481/3023/14169 +f 2481/3023/14170 2482/2970/14171 2474/2971/14172 +f 2475/2973/14173 2474/2971/14174 2482/2970/14175 +f 2482/2970/14176 2483/2972/14177 2475/2973/14178 +f 2476/2975/14179 2475/2973/14180 2483/2972/14181 +f 2483/2972/14182 2484/2974/14183 2476/2975/14184 +f 2477/2977/14185 2476/2975/14186 2484/2974/14187 +f 2484/2974/14188 2485/2976/14189 2477/2977/14190 +f 2532/2961/14191 2477/2977/14192 2485/2976/14193 +f 2485/2976/14194 2486/2962/14195 2532/2961/14196 +f 2495/2978/14197 2494/2979/14198 2479/2964/14199 +f 2479/2964/14200 2487/2963/14201 2495/2978/14202 +f 2480/2966/14203 2479/2964/14204 2494/2979/14205 +f 2494/2979/14206 2493/2980/14207 2480/2966/14208 +f 2481/2968/14209 2480/2966/14210 2493/2980/14211 +f 2493/2980/14212 2492/2981/14213 2481/2968/14214 +f 2482/2970/14215 2481/3023/14216 2492/3025/14217 +f 2492/3025/14218 2491/2982/14219 2482/2970/14220 +f 2483/2972/14221 2482/2970/14222 2491/2982/14223 +f 2491/2982/14224 2490/2983/14225 2483/2972/14226 +f 2484/2974/14227 2483/2972/14228 2490/2983/14229 +f 2490/2983/14230 2489/2984/14231 2484/2974/14232 +f 2485/2976/14233 2484/2974/14234 2489/2984/14235 +f 2489/2984/14236 2488/2985/14237 2485/2976/14238 +f 2486/2962/14239 2485/2976/14240 2488/2985/14241 +f 2488/2985/14242 2496/2986/14243 2486/2962/14244 +f 2487/2963/14245 2486/2962/14246 2496/2986/14247 +f 2496/2986/14248 2495/2978/14249 2487/2963/14250 +f 2478/2989/14251 2470/2990/14252 2497/2987/14253 +f 2497/2987/14254 2505/2988/14255 2478/2989/14256 +f 2470/2990/14257 2525/2992/14258 2498/2991/14259 +f 2498/2991/14260 2497/2987/14261 2470/2990/14262 +f 2525/2992/14263 2526/2994/14264 2499/2993/14265 +f 2499/2993/14266 2498/2991/14267 2525/2992/14268 +f 2526/2994/14269 2527/2996/14270 2500/2995/14271 +f 2500/2995/14272 2499/2993/14273 2526/2994/14274 +f 2527/3027/14275 2528/2998/14276 2501/2997/14277 +f 2501/2997/14278 2500/3026/14279 2527/3027/14280 +f 2528/2998/14281 2529/3000/14282 2502/2999/14283 +f 2502/2999/14284 2501/2997/14285 2528/2998/14286 +f 2529/3000/14287 2530/3002/14288 2503/3001/14289 +f 2503/3001/14290 2502/2999/14291 2529/3000/14292 +f 2530/3002/14293 2531/3004/14294 2504/3003/14295 +f 2504/3003/14296 2503/3001/14297 2530/3002/14298 +f 2531/3004/14299 2478/2989/14300 2505/2988/14301 +f 2505/2988/14302 2504/3003/14303 2531/3004/14304 +f 2521/3007/14305 2522/3008/14306 2513/3005/14307 +f 2513/3005/14308 2512/3006/14309 2521/3007/14310 +f 2520/3010/14311 2521/3007/14312 2512/3006/14313 +f 2512/3006/14314 2511/3009/14315 2520/3010/14316 +f 2519/3012/14317 2520/3010/14318 2511/3009/14319 +f 2511/3009/14320 2510/3011/14321 2519/3012/14322 +f 2518/3014/14323 2519/3029/14324 2510/3028/14325 +f 2510/3028/14326 2509/3013/14327 2518/3014/14328 +f 2517/3016/14329 2518/3014/14330 2509/3013/14331 +f 2509/3013/14332 2508/3015/14333 2517/3016/14334 +f 2516/3018/14335 2517/3016/14336 2508/3015/14337 +f 2508/3015/14338 2507/3017/14339 2516/3018/14340 +f 2515/3020/14341 2516/3018/14342 2507/3017/14343 +f 2507/3017/14344 2506/3019/14345 2515/3020/14346 +f 2523/3022/14347 2515/3020/14348 2506/3019/14349 +f 2506/3019/14350 2514/3021/14351 2523/3022/14352 +f 2522/3008/14353 2523/3022/14354 2514/3021/14355 +f 2514/3021/14356 2513/3005/14357 2522/3008/14358 +f 2495/2978/14359 2522/3008/14360 2521/3007/14361 +f 2521/3007/14362 2494/2979/14363 2495/2978/14364 +f 2494/2979/14365 2521/3007/14366 2520/3010/14367 +f 2520/3010/14368 2493/2980/14369 2494/2979/14370 +f 2493/2980/14371 2520/3010/14372 2519/3012/14373 +f 2519/3012/14374 2492/2981/14375 2493/2980/14376 +f 2492/3025/14377 2519/3029/14378 2518/3014/14379 +f 2518/3014/14380 2491/2982/14381 2492/3025/14382 +f 2491/2982/14383 2518/3014/14384 2517/3016/14385 +f 2517/3016/14386 2490/2983/14387 2491/2982/14388 +f 2490/2983/14389 2517/3016/14390 2516/3018/14391 +f 2516/3018/14392 2489/2984/14393 2490/2983/14394 +f 2489/2984/14395 2516/3018/14396 2515/3020/14397 +f 2515/3020/14398 2488/2985/14399 2489/2984/14400 +f 2488/2985/14401 2515/3020/14402 2523/3022/14403 +f 2523/3022/14404 2496/2986/14405 2488/2985/14406 +f 2496/2986/14407 2523/3022/14408 2522/3008/14409 +f 2522/3008/14410 2495/2978/14411 2496/2986/14412 +f 2524/2960/14413 2470/2990/14414 2478/2989/14415 +f 2478/2989/14416 2532/2961/14417 2524/2960/14418 +f 2471/2965/14419 2525/2992/14420 2470/2990/14421 +f 2470/2990/14422 2524/2960/14423 2471/2965/14424 +f 2472/2967/14425 2526/2994/14426 2525/2992/14427 +f 2525/2992/14428 2471/2965/14429 2472/2967/14430 +f 2473/2969/14431 2527/2996/14432 2526/2994/14433 +f 2526/2994/14434 2472/2967/14435 2473/2969/14436 +f 2474/2971/14437 2528/2998/14438 2527/3027/14439 +f 2527/3027/14440 2473/3024/14441 2474/2971/14442 +f 2475/2973/14443 2529/3000/14444 2528/2998/14445 +f 2528/2998/14446 2474/2971/14447 2475/2973/14448 +f 2476/2975/14449 2530/3002/14450 2529/3000/14451 +f 2529/3000/14452 2475/2973/14453 2476/2975/14454 +f 2477/2977/14455 2531/3004/14456 2530/3002/14457 +f 2530/3002/14458 2476/2975/14459 2477/2977/14460 +f 2532/2961/14461 2478/2989/14462 2531/3004/14463 +f 2531/3004/14464 2477/2977/14465 2532/2961/14466 +f 2535/3035/14467 2536/3060/14468 2533/3032/14469 +f 2533/3032/14470 2534/3033/14471 2535/3035/14472 +f 2536/3060/14473 2538/3062/14474 2537/3061/14475 +f 2537/3061/14476 2533/3032/14477 2536/3060/14478 +f 2537/3034/14479 2540/3036/14480 2539/3030/14481 +f 2539/3030/14482 2533/3031/14483 2537/3034/14484 +f 2542/3038/14485 2543/3039/14486 2539/3030/14487 +f 2539/3030/14488 2541/3037/14489 2542/3038/14490 +f 2539/3030/14491 2540/3036/14492 2544/3040/14493 +f 2544/3040/14494 2541/3037/14495 2539/3030/14496 +f 2544/3040/14497 2540/3036/14498 2545/3041/14499 +f 2545/3041/14500 2546/3042/14501 2544/3040/14502 +f 2548/3044/14503 2546/3042/14504 2545/3041/14505 +f 2545/3041/14506 2547/3043/14507 2548/3044/14508 +f 2547/3048/14509 2550/3049/14510 2549/3046/14511 +f 2549/3046/14512 2548/3047/14513 2547/3048/14514 +f 2549/3046/14515 2550/3049/14516 2551/3050/14517 +f 2551/3050/14518 2552/3051/14519 2549/3046/14520 +f 2554/3053/14521 2552/3051/14522 2551/3050/14523 +f 2551/3050/14524 2553/3052/14525 2554/3053/14526 +f 2555/3054/14527 2556/3055/14528 2554/3053/14529 +f 2554/3053/14530 2553/3052/14531 2555/3054/14532 +f 2557/3056/14533 2558/3057/14534 2555/3054/14535 +f 2555/3054/14536 2553/3052/14537 2557/3056/14538 +f 2559/3068/14539 2557/3056/14540 2553/3052/14541 +f 2553/3052/14542 2551/3050/14543 2559/3068/14544 +f 2559/3068/14545 2551/3050/14546 2550/3049/14547 +f 2550/3049/14548 2560/3166/14549 2559/3068/14550 +f 2550/3049/14551 2547/3048/14552 2561/3175/14553 +f 2561/3175/14554 2560/3166/14555 2550/3049/14556 +f 2562/3045/14557 2561/3058/14558 2547/3043/14559 +f 2547/3043/14560 2545/3041/14561 2562/3045/14562 +f 2564/3065/14563 2561/3066/14564 2562/3063/14565 +f 2562/3063/14566 2563/3064/14567 2564/3065/14568 +f 2566/3069/14569 2564/3065/14570 2563/3064/14571 +f 2563/3064/14572 2565/3067/14573 2566/3069/14574 +f 2567/3070/14575 2568/3079/14576 2566/3069/14577 +f 2566/3069/14578 2565/3067/14579 2567/3070/14580 +f 2565/3067/14581 2570/3081/14582 2569/3080/14583 +f 2569/3080/14584 2567/3070/14585 2565/3067/14586 +f 2538/3062/14587 2570/3081/14588 2565/3067/14589 +f 2565/3067/14590 2563/3064/14591 2538/3062/14592 +f 2564/3065/14593 2572/3188/14594 2571/3082/14595 +f 2571/3082/14596 2561/3066/14597 2564/3065/14598 +f 2566/3069/14599 2573/3189/14600 2572/3188/14601 +f 2572/3188/14602 2564/3065/14603 2566/3069/14604 +f 2538/3062/14605 2563/3064/14606 2562/3063/14607 +f 2562/3063/14608 2537/3061/14609 2538/3062/14610 +f 2562/3045/14611 2545/3041/14612 2540/3036/14613 +f 2540/3036/14614 2537/3034/14615 2562/3045/14616 +f 2574/3059/14617 2575/3071/14618 2543/3039/14619 +f 2543/3039/14620 2542/3038/14621 2574/3059/14622 +f 2539/3030/14623 2543/3039/14624 2534/3072/14625 +f 2534/3072/14626 2533/3031/14627 2539/3030/14628 +f 2576/3073/14629 2534/3072/14630 2543/3039/14631 +f 2543/3039/14632 2575/3071/14633 2576/3073/14634 +f 2575/3071/14635 2578/3075/14636 2577/3074/14637 +f 2577/3074/14638 2576/3073/14639 2575/3071/14640 +f 2579/3076/14641 2580/3077/14642 2576/3073/14643 +f 2576/3073/14644 2577/3074/14645 2579/3076/14646 +f 2576/3073/14647 2580/3077/14648 2581/3078/14649 +f 2581/3078/14650 2534/3072/14651 2576/3073/14652 +f 2581/3190/14653 2582/3191/14654 2535/3035/14655 +f 2535/3035/14656 2534/3033/14657 2581/3190/14658 +f 2584/3193/14659 2536/3060/14660 2535/3035/14661 +f 2535/3035/14662 2583/3192/14663 2584/3193/14664 +f 2585/3194/14665 2583/3192/14666 2535/3035/14667 +f 2535/3035/14668 2582/3191/14669 2585/3194/14670 +f 2586/3083/14671 2587/3084/14672 2579/3076/14673 +f 2579/3076/14674 2577/3074/14675 2586/3083/14676 +f 2577/3074/14677 2578/3075/14678 2588/3085/14679 +f 2588/3085/14680 2586/3083/14681 2577/3074/14682 +f 2589/3086/14683 2590/3087/14684 2588/3085/14685 +f 2588/3085/14686 2578/3075/14687 2589/3086/14688 +f 2588/3085/14689 2592/3089/14690 2591/3088/14691 +f 2591/3088/14692 2586/3083/14693 2588/3085/14694 +f 2588/3085/14695 2590/3087/14696 2593/3090/14697 +f 2593/3090/14698 2592/3089/14699 2588/3085/14700 +f 2587/3084/14701 2586/3083/14702 2591/3088/14703 +f 2591/3088/14704 2594/3091/14705 2587/3084/14706 +f 2594/3091/14707 2591/3088/14708 2595/3237/14709 +f 2595/3237/14710 2596/3238/14711 2594/3091/14712 +f 2578/3075/14713 2575/3071/14714 2574/3059/14715 +f 2574/3059/14716 2589/3086/14717 2578/3075/14718 +f 2599/3098/14719 2600/3099/14720 2597/3095/14721 +f 2597/3095/14722 2598/3096/14723 2599/3098/14724 +f 2602/3101/14725 2599/3098/14726 2598/3096/14727 +f 2598/3096/14728 2601/3100/14729 2602/3101/14730 +f 2604/3103/14731 2602/3101/14732 2601/3100/14733 +f 2601/3100/14734 2603/3102/14735 2604/3103/14736 +f 2603/3102/14737 2606/3105/14738 2605/3104/14739 +f 2605/3104/14740 2604/3221/14741 2603/3102/14742 +f 2605/3104/14743 2606/3105/14744 2607/3106/14745 +f 2607/3106/14746 2608/3107/14747 2605/3104/14748 +f 2608/3223/14749 2607/3106/14750 2609/3108/14751 +f 2609/3108/14752 2610/3109/14753 2608/3223/14754 +f 2612/3111/14755 2613/3112/14756 2609/3108/14757 +f 2609/3108/14758 2611/3110/14759 2612/3111/14760 +f 2606/3105/14761 2603/3102/14762 2614/3113/14763 +f 2614/3113/14764 2611/3110/14765 2606/3105/14766 +f 2614/3113/14767 2615/3114/14768 2612/3111/14769 +f 2612/3111/14770 2611/3110/14771 2614/3113/14772 +f 2617/3116/14773 2613/3112/14774 2612/3111/14775 +f 2612/3111/14776 2616/3115/14777 2617/3116/14778 +f 2618/3117/14779 2619/3118/14780 2617/3116/14781 +f 2617/3116/14782 2616/3115/14783 2618/3117/14784 +f 2621/3120/14785 2618/3117/14786 2616/3115/14787 +f 2616/3115/14788 2620/3119/14789 2621/3120/14790 +f 2612/3111/14791 2615/3114/14792 2620/3119/14793 +f 2620/3119/14794 2616/3115/14795 2612/3111/14796 +f 2610/3109/14797 2609/3108/14798 2613/3112/14799 +f 2613/3112/14800 2622/3121/14801 2610/3109/14802 +f 2623/3122/14803 2622/3227/14804 2613/3112/14805 +f 2613/3112/14806 2617/3116/14807 2623/3122/14808 +f 2615/3114/14809 2614/3113/14810 2624/3123/14811 +f 2624/3123/14812 2625/3124/14813 2615/3114/14814 +f 2627/3128/14815 2625/3124/14816 2624/3123/14817 +f 2624/3123/14818 2626/3127/14819 2627/3128/14820 +f 2601/3100/14821 2598/3096/14822 2626/3127/14823 +f 2626/3127/14824 2624/3123/14825 2601/3100/14826 +f 2629/3167/14827 2627/3128/14828 2626/3127/14829 +f 2626/3127/14830 2628/3164/14831 2629/3167/14832 +f 2628/3164/14833 2626/3127/14834 2598/3096/14835 +f 2598/3096/14836 2597/3095/14837 2628/3164/14838 +f 2630/3183/14839 2620/3119/14840 2615/3114/14841 +f 2615/3114/14842 2625/3124/14843 2630/3183/14844 +f 2631/3184/14845 2630/3183/14846 2625/3124/14847 +f 2625/3124/14848 2627/3128/14849 2631/3184/14850 +f 2614/3113/14851 2603/3102/14852 2601/3100/14853 +f 2601/3100/14854 2624/3123/14855 2614/3113/14856 +f 2606/3105/14857 2611/3110/14858 2609/3108/14859 +f 2609/3108/14860 2607/3106/14861 2606/3105/14862 +f 2632/3125/14863 2633/3126/14864 2597/3094/14865 +f 2597/3094/14866 2600/3097/14867 2632/3125/14868 +f 2633/3126/14869 2632/3125/14870 2634/3129/14871 +f 2634/3129/14872 2635/3130/14873 2633/3126/14874 +f 2634/3129/14875 2637/3132/14876 2636/3131/14877 +f 2636/3131/14878 2635/3130/14879 2634/3129/14880 +f 2639/3134/14881 2640/3135/14882 2636/3131/14883 +f 2636/3131/14884 2638/3133/14885 2639/3134/14886 +f 2641/3136/14887 2642/3137/14888 2639/3134/14889 +f 2639/3134/14890 2638/3133/14891 2641/3136/14892 +f 2643/3140/14893 2644/3141/14894 2640/3135/14895 +f 2640/3135/14896 2639/3134/14897 2643/3140/14898 +f 2646/3143/14899 2640/3135/14900 2644/3141/14901 +f 2644/3141/14902 2645/3142/14903 2646/3143/14904 +f 2645/3142/14905 2648/3145/14906 2647/3144/14907 +f 2647/3144/14908 2646/3143/14909 2645/3142/14910 +f 2650/3147/14911 2647/3144/14912 2648/3145/14913 +f 2648/3145/14914 2649/3146/14915 2650/3147/14916 +f 2650/3147/14917 2649/3146/14918 2651/3148/14919 +f 2651/3148/14920 2652/3149/14921 2650/3147/14922 +f 2635/3130/14923 2646/3143/14924 2647/3144/14925 +f 2647/3144/14926 2633/3126/14927 2635/3130/14928 +f 2647/3144/14929 2650/3147/14930 2597/3094/14931 +f 2597/3094/14932 2633/3126/14933 2647/3144/14934 +f 2640/3135/14935 2646/3143/14936 2635/3130/14937 +f 2635/3130/14938 2636/3131/14939 2640/3135/14940 +f 2639/3134/14941 2642/3137/14942 2653/3163/14943 +f 2653/3163/14944 2643/3140/14945 2639/3134/14946 +f 2654/3138/14947 2655/3139/14948 2653/3092/14949 +f 2653/3092/14950 2642/3093/14951 2654/3138/14952 +f 2642/3093/14953 2641/3151/14954 2656/3150/14955 +f 2656/3150/14956 2654/3138/14957 2642/3093/14958 +f 2658/3153/14959 2659/3154/14960 2657/3152/14961 +f 2657/3152/14962 2656/3150/14963 2658/3153/14964 +f 2656/3150/14965 2641/3151/14966 2660/3155/14967 +f 2660/3155/14968 2658/3153/14969 2656/3150/14970 +f 2657/3152/14971 2661/3156/14972 2654/3138/14973 +f 2654/3138/14974 2656/3150/14975 2657/3152/14976 +s 2 +f 2662/3157/14977 2653/3092/14978 2655/3139/14979 +s 4 +f 2662/3157/14980 2663/3158/14981 2664/3159/14982 +s 1 +f 2662/3157/14983 2661/3156/14984 2665/3160/14985 +f 2665/3160/14986 2663/3158/14987 2662/3157/14988 +f 2661/3156/14989 2662/3157/14990 2655/3139/14991 +f 2655/3139/14992 2654/3138/14993 2661/3156/14994 +f 2660/3168/14995 2641/3136/14996 2638/3133/14997 +f 2638/3133/14998 2666/3165/14999 2660/3168/15000 +f 2666/3165/15001 2638/3133/15002 2636/3131/15003 +f 2636/3131/15004 2637/3132/15005 2666/3165/15006 +f 2650/3147/15007 2652/3149/15008 2628/3169/15009 +f 2628/3169/15010 2597/3094/15011 2650/3147/15012 +f 2669/3187/15013 2670/3212/15014 2667/3185/15015 +f 2667/3185/15016 2668/3186/15017 2669/3187/15018 +f 2631/3184/15019 2671/3213/15020 2668/3186/15021 +f 2668/3186/15022 2667/3185/15023 2631/3184/15024 +f 2673/3172/15025 2668/3173/15026 2671/3170/15027 +f 2671/3170/15028 2672/3171/15029 2673/3172/15030 +f 2675/3241/15031 2673/3172/15032 2672/3171/15033 +f 2672/3171/15034 2674/3174/15035 2675/3241/15036 +f 2676/3242/15037 2677/3243/15038 2674/3174/15039 +f 2674/3174/15040 2672/3171/15041 2676/3242/15042 +f 2652/3149/15043 2651/3148/15044 2677/3243/15045 +f 2677/3243/15046 2676/3242/15047 2652/3149/15048 +f 2652/3149/15049 2676/3242/15050 2629/3244/15051 +f 2629/3244/15052 2628/3169/15053 2652/3149/15054 +f 2672/3171/15055 2671/3170/15056 2629/3244/15057 +f 2629/3244/15058 2676/3242/15059 2672/3171/15060 +f 2675/3178/15061 2679/3179/15062 2678/3176/15063 +f 2678/3176/15064 2673/3177/15065 2675/3178/15066 +f 2558/3057/15067 2680/3180/15068 2678/3176/15069 +f 2678/3176/15070 2555/3054/15071 2558/3057/15072 +f 2680/3180/15073 2668/3181/15074 2673/3177/15075 +f 2673/3177/15076 2678/3176/15077 2680/3180/15078 +f 2669/3229/15079 2668/3181/15080 2680/3180/15081 +f 2680/3180/15082 2681/3182/15083 2669/3229/15084 +f 2682/3230/15085 2681/3182/15086 2680/3180/15087 +f 2680/3180/15088 2558/3057/15089 2682/3230/15090 +f 2682/3230/15091 2558/3057/15092 2557/3056/15093 +f 2557/3056/15094 2683/3231/15095 2682/3230/15096 +f 2557/3056/15097 2559/3068/15098 2684/3234/15099 +f 2684/3234/15100 2683/3231/15101 2557/3056/15102 +f 2684/3234/15103 2559/3068/15104 2560/3166/15105 +f 2560/3166/15106 2685/3235/15107 2684/3234/15108 +f 2556/3055/15109 2555/3054/15110 2678/3176/15111 +f 2678/3176/15112 2679/3179/15113 2556/3055/15114 +f 2631/3184/15115 2627/3128/15116 2629/3167/15117 +f 2629/3167/15118 2671/3213/15119 2631/3184/15120 +f 2686/3214/15121 2630/3183/15122 2631/3184/15123 +f 2631/3184/15124 2667/3185/15125 2686/3214/15126 +f 2620/3119/15127 2630/3183/15128 2686/3214/15129 +f 2686/3214/15130 2621/3120/15131 2620/3119/15132 +f 2621/3120/15133 2686/3214/15134 2687/3215/15135 +f 2687/3215/15136 2688/3216/15137 2621/3120/15138 +f 2670/3212/15139 2687/3215/15140 2686/3214/15141 +f 2686/3214/15142 2667/3185/15143 2670/3212/15144 +f 2689/3217/15145 2618/3117/15146 2621/3120/15147 +f 2621/3120/15148 2688/3232/15149 2689/3217/15150 +f 2690/3218/15151 2619/3118/15152 2618/3117/15153 +f 2618/3117/15154 2689/3217/15155 2690/3218/15156 +f 2690/3233/15157 2623/3122/15158 2617/3116/15159 +f 2617/3116/15160 2619/3118/15161 2690/3233/15162 +f 2561/3175/15163 2571/3236/15164 2685/3235/15165 +f 2685/3235/15166 2560/3166/15167 2561/3175/15168 +f 2584/3193/15169 2570/3081/15170 2538/3062/15171 +f 2538/3062/15172 2536/3060/15173 2584/3193/15174 +f 2691/3195/15175 2569/3080/15176 2570/3081/15177 +f 2570/3081/15178 2584/3193/15179 2691/3195/15180 +f 2691/3195/15181 2584/3193/15182 2583/3192/15183 +f 2583/3192/15184 2692/3196/15185 2691/3195/15186 +f 2694/3198/15187 2691/3195/15188 2692/3196/15189 +f 2692/3196/15190 2693/3197/15191 2694/3198/15192 +f 2696/3200/15193 2694/3198/15194 2693/3197/15195 +f 2693/3197/15196 2695/3199/15197 2696/3200/15198 +f 2698/3202/15199 2695/3199/15200 2693/3197/15201 +f 2693/3197/15202 2697/3201/15203 2698/3202/15204 +f 2692/3196/15205 2699/3203/15206 2697/3201/15207 +f 2697/3201/15208 2693/3197/15209 2692/3196/15210 +f 2583/3192/15211 2585/3194/15212 2699/3246/15213 +f 2699/3246/15214 2692/3196/15215 2583/3192/15216 +f 2696/3200/15217 2695/3199/15218 2698/3245/15219 +f 2698/3245/15220 2700/3204/15221 2696/3200/15222 +f 2701/3205/15223 2702/3206/15224 2696/3200/15225 +f 2696/3200/15226 2700/3204/15227 2701/3205/15228 +f 2696/3200/15229 2702/3206/15230 2703/3207/15231 +f 2703/3207/15232 2694/3198/15233 2696/3200/15234 +f 2567/3070/15235 2569/3080/15236 2703/3207/15237 +f 2703/3207/15238 2704/3208/15239 2567/3070/15240 +f 2705/3219/15241 2704/3208/15242 2703/3207/15243 +f 2703/3207/15244 2702/3206/15245 2705/3219/15246 +f 2701/3247/15247 2706/3220/15248 2705/3219/15249 +f 2705/3219/15250 2702/3206/15251 2701/3247/15252 +f 2704/3208/15253 2707/3222/15254 2568/3079/15255 +f 2568/3079/15256 2567/3070/15257 2704/3208/15258 +f 2707/3222/15259 2710/3226/15260 2708/3224/15261 +f 2708/3224/15262 2709/3225/15263 2707/3222/15264 +f 2710/3226/15265 2707/3222/15266 2704/3208/15267 +f 2704/3208/15268 2705/3219/15269 2710/3226/15270 +f 2707/3222/15271 2709/3225/15272 2711/3228/15273 +f 2711/3228/15274 2568/3079/15275 2707/3222/15276 +f 2694/3198/15277 2703/3207/15278 2569/3080/15279 +f 2569/3080/15280 2691/3195/15281 2694/3198/15282 +f 2712/3161/15283 2665/3160/15284 2661/3156/15285 +f 2661/3156/15286 2657/3152/15287 2712/3161/15288 +f 2595/3162/15289 2713/3209/15290 2665/3160/15291 +f 2665/3160/15292 2712/3161/15293 2595/3162/15294 +f 2591/3088/15295 2592/3089/15296 2713/3239/15297 +f 2713/3239/15298 2595/3237/15299 2591/3088/15300 +f 2664/3159/15301 2663/3158/15302 2665/3160/15303 +f 2665/3160/15304 2713/3209/15305 2664/3159/15306 +f 2592/3089/15307 2593/3090/15308 2664/3240/15309 +f 2664/3240/15310 2713/3239/15311 2592/3089/15312 +f 2714/3210/15313 2596/3211/15314 2595/3162/15315 +f 2595/3162/15316 2712/3161/15317 2714/3210/15318 +f 2659/3154/15319 2714/3210/15320 2712/3161/15321 +f 2712/3161/15322 2657/3152/15323 2659/3154/15324 +f 2573/3189/15325 2566/3069/15326 2568/3079/15327 +f 2568/3079/15328 2711/3249/15329 2573/3189/15330 +f 2708/3248/15331 2710/3226/15332 2705/3219/15333 +f 2705/3219/15334 2706/3220/15335 2708/3248/15336 +f 2716/3252/15337 2715/3253/15338 2718/3250/15339 +f 2718/3250/15340 2717/3251/15341 2716/3252/15342 +f 2719/3255/15343 2717/3251/15344 2718/3250/15345 +f 2718/3250/15346 2720/3254/15347 2719/3255/15348 +f 2721/3256/15349 2720/3257/15350 2718/3250/15351 +f 2718/3250/15352 2715/3253/15353 2721/3256/15354 +f 2722/3258/15355 2716/3252/15356 2717/3251/15357 +f 2717/3251/15358 2719/3255/15359 2722/3258/15360 +f 2723/3260/15361 2719/3255/15362 2720/3254/15363 +f 2720/3254/15364 2721/3259/15365 2723/3260/15366 +f 2719/3255/15367 2723/3260/15368 2724/3261/15369 +f 2724/3261/15370 2722/3258/15371 2719/3255/15372 +f 2727/3262/15373 2726/3263/15374 2725/3264/15375 +f 2723/3260/15376 2721/3259/15377 2727/3265/15378 +f 2727/3265/15379 2728/3266/15380 2723/3260/15381 +f 2727/3265/15382 2729/3267/15383 2728/3266/15384 +f 2731/3270/15385 2730/3271/15386 2733/3268/15387 +f 2733/3268/15388 2732/3269/15389 2731/3270/15390 +f 2735/3274/15391 2734/3275/15392 2737/3272/15393 +f 2737/3272/15394 2736/3273/15395 2735/3274/15396 +f 2738/3276/15397 2736/3273/15398 2737/3272/15399 +f 2737/3272/15400 2733/3268/15401 2738/3276/15402 +f 2739/3277/15403 2733/3268/15404 2737/3272/15405 +f 2737/3272/15406 2734/3275/15407 2739/3277/15408 +f 2741/3280/15409 2740/3281/15410 2743/3278/15411 +f 2743/3278/15412 2742/3279/15413 2741/3280/15414 +f 2745/3284/15415 2744/3285/15416 2747/3282/15417 +f 2747/3282/15418 2746/3283/15419 2745/3284/15420 +f 2746/3283/15421 2747/3282/15422 2749/3286/15423 +f 2749/3286/15424 2748/3287/15425 2746/3283/15426 +f 2747/3282/15427 2750/3288/15428 2749/3286/15429 +f 2752/3291/15430 2751/3292/15431 2754/3289/15432 +f 2754/3289/15433 2753/3290/15434 2752/3291/15435 +f 2754/3289/15436 2755/3293/15437 2753/3290/15438 +f 2754/3289/15439 2751/3292/15440 2756/3294/15441 +f 2753/3290/15442 2755/3293/15443 2758/3295/15444 +f 2758/3295/15445 2757/3296/15446 2753/3290/15447 +f 2752/3291/15448 2753/3290/15449 2757/3296/15450 +f 2752/3291/15451 2757/3296/15452 2760/3297/15453 +f 2760/3297/15454 2759/3298/15455 2752/3291/15456 +f 2761/3301/15457 2745/3284/15458 2763/3299/15459 +f 2763/3299/15460 2762/3300/15461 2761/3301/15462 +f 2763/3299/15463 2764/3304/15464 2766/3302/15465 +f 2766/3302/15466 2765/3303/15467 2763/3299/15468 +f 2763/3299/15469 2765/3303/15470 2767/3305/15471 +f 2767/3305/15472 2762/3300/15473 2763/3299/15474 +f 2769/3308/15475 2768/3309/15476 2771/3306/15477 +f 2771/3306/15478 2770/3307/15479 2769/3308/15480 +f 2773/3310/15481 2772/3311/15482 2768/3309/15483 +f 2768/3309/15484 2769/3308/15485 2773/3310/15486 +f 2774/3313/15487 2769/3308/15488 2770/3307/15489 +f 2770/3307/15490 2775/3312/15491 2774/3313/15492 +f 2776/3315/15493 2772/3311/15494 2773/3310/15495 +f 2773/3310/15496 2777/3314/15497 2776/3315/15498 +f 2778/3316/15499 2758/3295/15500 2767/3305/15501 +f 2767/3305/15502 2765/3303/15503 2778/3316/15504 +f 2770/3307/15505 2771/3306/15506 2780/3317/15507 +f 2780/3317/15508 2779/3318/15509 2770/3307/15510 +f 2782/3321/15511 2781/3322/15512 2784/3319/15513 +f 2784/3319/15514 2783/3320/15515 2782/3321/15516 +f 2783/3320/15517 2784/3319/15518 2786/3323/15519 +f 2786/3323/15520 2785/3324/15521 2783/3320/15522 +f 2788/3327/15523 2787/3328/15524 2790/3325/15525 +f 2790/3325/15526 2789/3326/15527 2788/3327/15528 +f 2789/3326/15529 2790/3325/15530 2791/3329/15531 +f 2793/3331/15532 2792/3332/15533 2789/3326/15534 +f 2789/3326/15535 2794/3330/15536 2793/3331/15537 +f 2795/3333/15538 2794/3330/15539 2789/3326/15540 +f 2789/3326/15541 2791/3329/15542 2795/3333/15543 +f 2770/3307/15544 2796/3335/15545 2797/3334/15546 +f 2797/3334/15547 2775/3312/15548 2770/3307/15549 +f 2777/3314/15550 2798/3338/15551 2800/3336/15552 +f 2800/3336/15553 2799/3337/15554 2777/3314/15555 +f 2802/3339/15556 2801/3340/15557 2800/3336/15558 +f 2800/3336/15559 2798/3338/15560 2802/3339/15561 +f 2804/3341/15562 2803/3342/15563 2800/3336/15564 +f 2800/3336/15565 2801/3340/15566 2804/3341/15567 +f 2777/3314/15568 2773/3310/15569 2805/3343/15570 +f 2805/3343/15571 2798/3338/15572 2777/3314/15573 +f 2805/3343/15574 2773/3310/15575 2774/3313/15576 +f 2774/3313/15577 2806/3344/15578 2805/3343/15579 +f 2805/3343/15580 2806/3344/15581 2807/3345/15582 +f 2809/3346/15583 2808/3347/15584 2805/3343/15585 +f 2805/3343/15586 2807/3345/15587 2809/3346/15588 +f 2812/3348/15589 2811/3349/15590 2810/3350/15591 +f 2813/3352/15592 2794/3330/15593 2795/3333/15594 +f 2795/3333/15595 2814/3351/15596 2813/3352/15597 +f 2816/3354/15598 2815/3355/15599 2795/3333/15600 +f 2795/3333/15601 2817/3353/15602 2816/3354/15603 +f 2818/3356/15604 2814/3351/15605 2795/3333/15606 +f 2795/3333/15607 2815/3355/15608 2818/3356/15609 +f 2820/3359/15610 2819/3360/15611 2822/3357/15612 +f 2822/3357/15613 2821/3358/15614 2820/3359/15615 +f 2766/3302/15616 2821/3358/15617 2822/3357/15618 +f 2822/3357/15619 2812/3348/15620 2766/3302/15621 +f 2819/3360/15622 2823/3361/15623 2822/3357/15624 +f 2822/3357/15625 2823/3361/15626 2824/3362/15627 +f 2822/3357/15628 2824/3362/15629 2811/3349/15630 +f 2826/3365/15631 2825/3366/15632 2828/3363/15633 +f 2828/3363/15634 2827/3364/15635 2826/3365/15636 +f 2828/3363/15637 2829/3369/15638 2831/3367/15639 +f 2831/3367/15640 2830/3368/15641 2828/3363/15642 +f 2796/3335/15643 2832/3371/15644 2833/3370/15645 +f 2833/3370/15646 2797/3334/15647 2796/3335/15648 +f 2833/3370/15649 2834/3372/15650 2797/3334/15651 +f 2770/3307/15652 2779/3318/15653 2832/3371/15654 +f 2832/3371/15655 2796/3335/15656 2770/3307/15657 +f 2836/3373/15658 2835/3374/15659 2823/3361/15660 +f 2838/3376/15661 2837/3377/15662 2839/3375/15663 +f 2839/3375/15664 2836/3373/15665 2838/3376/15666 +f 2840/3379/15667 2835/3374/15668 2839/3375/15669 +f 2839/3375/15670 2841/3378/15671 2840/3379/15672 +f 2839/3375/15673 2835/3374/15674 2836/3373/15675 +f 2843/3382/15676 2842/3383/15677 2845/3380/15678 +f 2845/3380/15679 2844/3381/15680 2843/3382/15681 +f 2847/3384/15682 2846/3385/15683 2845/3380/15684 +f 2845/3380/15685 2842/3383/15686 2847/3384/15687 +f 2848/3387/15688 2844/3381/15689 2845/3380/15690 +f 2845/3380/15691 2849/3386/15692 2848/3387/15693 +f 2851/3390/15694 2850/3391/15695 2853/3388/15696 +f 2853/3388/15697 2852/3389/15698 2851/3390/15699 +f 2852/3389/15700 2854/3392/15701 2851/3390/15702 +f 2855/3395/15703 2834/3372/15704 2857/3393/15705 +f 2857/3393/15706 2856/3394/15707 2855/3395/15708 +f 2856/3394/15709 2857/3393/15710 2859/3396/15711 +f 2859/3396/15712 2858/3397/15713 2856/3394/15714 +f 2833/3370/15715 2859/3396/15716 2857/3393/15717 +f 2857/3393/15718 2834/3372/15719 2833/3370/15720 +f 2860/3399/15721 2829/3369/15722 2861/3398/15723 +f 2861/3398/15724 2840/3379/15725 2860/3399/15726 +f 2840/3379/15727 2861/3398/15728 2862/3400/15729 +f 2862/3400/15730 2835/3374/15731 2840/3379/15732 +f 2860/3399/15733 2863/3402/15734 2864/3401/15735 +f 2864/3401/15736 2829/3369/15737 2860/3399/15738 +f 2829/3369/15739 2864/3401/15740 2865/3403/15741 +f 2865/3403/15742 2831/3367/15743 2829/3369/15744 +f 2866/3404/15745 2860/3399/15746 2840/3379/15747 +f 2840/3379/15748 2841/3378/15749 2866/3404/15750 +f 2853/3388/15751 2867/3406/15752 2868/3405/15753 +f 2868/3405/15754 2852/3389/15755 2853/3388/15756 +f 2854/3392/15757 2852/3389/15758 2868/3405/15759 +f 2868/3405/15760 2869/3407/15761 2854/3392/15762 +f 2870/3408/15763 2869/3407/15764 2868/3405/15765 +f 2868/3405/15766 2867/3406/15767 2870/3408/15768 +f 2859/3396/15769 2871/3410/15770 2872/3409/15771 +f 2872/3409/15772 2858/3397/15773 2859/3396/15774 +f 2847/3384/15775 2858/3397/15776 2872/3409/15777 +f 2872/3409/15778 2873/3411/15779 2847/3384/15780 +f 2874/3412/15781 2873/3411/15782 2872/3409/15783 +f 2872/3409/15784 2871/3410/15785 2874/3412/15786 +f 2876/3413/15787 2875/3414/15788 2870/3408/15789 +f 2870/3408/15790 2867/3406/15791 2876/3413/15792 +f 2877/3415/15793 2869/3407/15794 2870/3408/15795 +f 2870/3408/15796 2875/3414/15797 2877/3415/15798 +f 2878/3416/15799 2874/3412/15800 2871/3410/15801 +f 2871/3410/15802 2859/3396/15803 2878/3416/15804 +f 2850/3391/15805 2879/3418/15806 2880/3417/15807 +f 2880/3417/15808 2853/3388/15809 2850/3391/15810 +f 2882/3419/15811 2881/3420/15812 2853/3388/15813 +f 2853/3388/15814 2880/3417/15815 2882/3419/15816 +f 2876/3413/15817 2867/3406/15818 2853/3388/15819 +f 2853/3388/15820 2881/3420/15821 2876/3413/15822 +f 2884/3423/15823 2883/3424/15824 2886/3421/15825 +f 2886/3421/15826 2885/3422/15827 2884/3423/15828 +f 2887/3426/15829 2885/3422/15830 2886/3421/15831 +f 2886/3421/15832 2888/3425/15833 2887/3426/15834 +f 2889/3427/15835 2888/3425/15836 2886/3421/15837 +f 2886/3421/15838 2883/3424/15839 2889/3427/15840 +f 2890/3429/15841 2888/3425/15842 2889/3427/15843 +f 2889/3427/15844 2891/3428/15845 2890/3429/15846 +f 2892/3430/15847 2891/3428/15848 2889/3427/15849 +f 2889/3427/15850 2883/3424/15851 2892/3430/15852 +f 2894/3431/15853 2893/3432/15854 2876/3413/15855 +f 2876/3413/15856 2881/3420/15857 2894/3431/15858 +f 2885/3422/15859 2875/3414/15860 2876/3413/15861 +f 2876/3413/15862 2884/3423/15863 2885/3422/15864 +f 2895/3433/15865 2884/3423/15866 2876/3413/15867 +f 2876/3413/15868 2893/3432/15869 2895/3433/15870 +f 2896/3435/15871 2873/3411/15872 2874/3412/15873 +f 2874/3412/15874 2897/3434/15875 2896/3435/15876 +f 2899/3438/15877 2898/3439/15878 2901/3436/15879 +f 2901/3436/15880 2900/3437/15881 2899/3438/15882 +f 2903/3441/15883 2902/3442/15884 2901/3436/15885 +f 2901/3436/15886 2904/3440/15887 2903/3441/15888 +f 2905/3443/15889 2900/3437/15890 2901/3436/15891 +f 2901/3436/15892 2902/3442/15893 2905/3443/15894 +f 2907/3446/15895 2906/3447/15896 2909/3444/15897 +f 2909/3444/15898 2908/3445/15899 2907/3446/15900 +f 2910/3449/15901 2908/3445/15902 2909/3444/15903 +f 2909/3444/15904 2911/3448/15905 2910/3449/15906 +f 2912/3450/15907 2911/3448/15908 2909/3444/15909 +f 2909/3444/15910 2906/3447/15911 2912/3450/15912 +f 2914/3453/15913 2913/3454/15914 2916/3451/15915 +f 2916/3451/15916 2915/3452/15917 2914/3453/15918 +f 2918/3455/15919 2917/3456/15920 2916/3451/15921 +f 2916/3451/15922 2913/3454/15923 2918/3455/15924 +f 2920/3457/15925 2919/3458/15926 2916/3451/15927 +f 2916/3451/15928 2917/3456/15929 2920/3457/15930 +f 2863/3402/15931 2915/3452/15932 2916/3451/15933 +f 2916/3451/15934 2921/3459/15935 2863/3402/15936 +f 2922/3460/15937 2921/3459/15938 2916/3451/15939 +f 2916/3451/15940 2919/3458/15941 2922/3460/15942 +f 2895/3433/15943 2893/3432/15944 2923/3461/15945 +f 2923/3461/15946 2918/3455/15947 2895/3433/15948 +f 2894/3431/15949 2924/3462/15950 2923/3461/15951 +f 2923/3461/15952 2893/3432/15953 2894/3431/15954 +f 2917/3456/15955 2918/3455/15956 2923/3461/15957 +f 2923/3461/15958 2925/3463/15959 2917/3456/15960 +f 2927/3466/15961 2926/3467/15962 2929/3464/15963 +f 2929/3464/15964 2928/3465/15965 2927/3466/15966 +f 2928/3465/15967 2929/3464/15968 2931/3468/15969 +f 2931/3468/15970 2930/3469/15971 2928/3465/15972 +f 2932/3470/15973 2931/3468/15974 2929/3464/15975 +f 2929/3464/15976 2926/3467/15977 2932/3470/15978 +f 2934/3473/15979 2933/3474/15980 2936/3471/15981 +f 2936/3471/15982 2935/3472/15983 2934/3473/15984 +f 2937/3476/15985 2935/3472/15986 2936/3471/15987 +f 2936/3471/15988 2938/3475/15989 2937/3476/15990 +f 2940/3477/15991 2939/3478/15992 2936/3471/15993 +f 2936/3471/15994 2933/3474/15995 2940/3477/15996 +f 2942/3481/15997 2941/3482/15998 2943/3479/15999 +f 2943/3479/16000 2940/3480/16001 2942/3481/16002 +f 2939/3478/16003 2940/3477/16004 2943/3483/16005 +f 2943/3483/16006 2944/3484/16007 2939/3478/16008 +f 2945/3485/16009 2944/3486/16010 2943/3479/16011 +f 2943/3479/16012 2941/3482/16013 2945/3485/16014 +f 2947/3489/16015 2946/3490/16016 2949/3487/16017 +f 2949/3487/16018 2948/3488/16019 2947/3489/16020 +f 2951/3493/16021 2950/3494/16022 2949/3491/16023 +f 2949/3491/16024 2952/3492/16025 2951/3493/16026 +f 2953/3495/16027 2952/3496/16028 2949/3487/16029 +f 2949/3487/16030 2946/3490/16031 2953/3495/16032 +f 2955/3499/16033 2954/3500/16034 2957/3497/16035 +f 2957/3497/16036 2956/3498/16037 2955/3499/16038 +f 2958/3502/16039 2956/3498/16040 2957/3497/16041 +f 2957/3497/16042 2959/3501/16043 2958/3502/16044 +f 2960/3504/16045 2959/3501/16046 2957/3497/16047 +f 2957/3497/16048 2961/3503/16049 2960/3504/16050 +f 2963/3507/16051 2962/3508/16052 2965/3505/16053 +f 2965/3505/16054 2964/3506/16055 2963/3507/16056 +f 2930/3469/16057 2964/3506/16058 2965/3505/16059 +f 2965/3505/16060 2966/3509/16061 2930/3469/16062 +f 2968/3510/16063 2967/3511/16064 2965/3505/16065 +f 2965/3505/16066 2962/3508/16067 2968/3510/16068 +f 2970/3512/16069 2969/3513/16070 2965/3505/16071 +f 2965/3505/16072 2967/3511/16073 2970/3512/16074 +f 2973/3514/16075 2972/3515/16076 2971/3516/16077 +f 2975/3517/16078 2974/3518/16079 2973/3514/16080 +f 2973/3514/16081 2971/3516/16082 2975/3517/16083 +f 2977/3521/16084 2976/3522/16085 2979/3519/16086 +f 2979/3519/16087 2978/3520/16088 2977/3521/16089 +f 2981/3525/16090 2980/3526/16091 2983/3523/16092 +f 2983/3523/16093 2982/3524/16094 2981/3525/16095 +f 2946/3490/16096 2947/3489/16097 2982/3524/16098 +f 2982/3524/16099 2983/3523/16100 2946/3490/16101 +f 2985/3529/16102 2984/3530/16103 2987/3527/16104 +f 2987/3527/16105 2986/3528/16106 2985/3529/16107 +f 2988/3532/16108 2986/3528/16109 2987/3527/16110 +f 2987/3527/16111 2989/3531/16112 2988/3532/16113 +f 2991/3535/16114 2990/3536/16115 2993/3533/16116 +f 2993/3533/16117 2992/3534/16118 2991/3535/16119 +f 2995/3537/16120 2994/3538/16121 2993/3533/16122 +f 2993/3533/16123 2990/3536/16124 2995/3537/16125 +f 2996/3539/16126 2992/3534/16127 2993/3533/16128 +f 2993/3533/16129 2994/3538/16130 2996/3539/16131 +f 2998/3540/16132 2997/3541/16133 2995/3537/16134 +f 3000/3544/16135 2999/3545/16136 3002/3542/16137 +f 3002/3542/16138 3001/3543/16139 3000/3544/16140 +f 3001/3543/16141 3003/3546/16142 3000/3544/16143 +f 3005/3549/16144 3004/3550/16145 3007/3547/16146 +f 3007/3547/16147 3006/3548/16148 3005/3549/16149 +f 3008/3552/16150 3006/3548/16151 3007/3547/16152 +f 3007/3547/16153 3009/3551/16154 3008/3552/16155 +f 3010/3554/16156 3009/3551/16157 3007/3547/16158 +f 3007/3547/16159 3011/3553/16160 3010/3554/16161 +f 3013/3555/16162 3005/3549/16163 3012/3556/16164 +f 2760/3297/16165 3014/3558/16166 3015/3557/16167 +f 3015/3557/16168 2759/3298/16169 2760/3297/16170 +f 3016/3560/16171 2759/3298/16172 3015/3557/16173 +f 3015/3557/16174 3017/3559/16175 3016/3560/16176 +f 3019/3563/16177 3018/3564/16178 3021/3561/16179 +f 3021/3561/16180 3020/3562/16181 3019/3563/16182 +f 3022/3566/16183 3020/3562/16184 3021/3561/16185 +f 3021/3561/16186 3023/3565/16187 3022/3566/16188 +f 3019/3563/16189 3024/3568/16190 3025/3567/16191 +f 3025/3567/16192 3018/3564/16193 3019/3563/16194 +f 3024/3568/16195 3019/3563/16196 3027/3569/16197 +f 3027/3569/16198 3026/3570/16199 3024/3568/16200 +f 3024/3568/16201 3026/3570/16202 2832/3371/16203 +f 2832/3371/16204 2779/3318/16205 3024/3568/16206 +f 2833/3370/16207 2832/3371/16208 3026/3570/16209 +f 3026/3570/16210 3028/3571/16211 2833/3370/16212 +f 3028/3571/16213 3026/3570/16214 3027/3569/16215 +f 3027/3569/16216 3029/3572/16217 3028/3571/16218 +f 3030/3573/16219 2878/3416/16220 3028/3571/16221 +f 3028/3571/16222 3029/3572/16223 3030/3573/16224 +f 2859/3396/16225 2833/3370/16226 3028/3571/16227 +f 3028/3571/16228 2878/3416/16229 2859/3396/16230 +f 3032/3574/16231 3031/3575/16232 3030/3573/16233 +f 3030/3573/16234 3029/3572/16235 3032/3574/16236 +f 2931/3468/16237 2932/3470/16238 3030/3573/16239 +f 3030/3573/16240 3031/3575/16241 2931/3468/16242 +f 2874/3412/16243 2878/3416/16244 3030/3573/16245 +f 3030/3573/16246 2932/3470/16247 2874/3412/16248 +f 3034/3576/16249 3033/3577/16250 3031/3575/16251 +f 3031/3575/16252 3032/3574/16253 3034/3576/16254 +f 3035/3578/16255 2931/3468/16256 3031/3575/16257 +f 3031/3575/16258 3033/3577/16259 3035/3578/16260 +f 3037/3579/16261 3036/3580/16262 3035/3578/16263 +f 3035/3578/16264 3033/3577/16265 3037/3579/16266 +f 2963/3507/16267 2964/3506/16268 3035/3578/16269 +f 3035/3578/16270 3036/3580/16271 2963/3507/16272 +f 2930/3469/16273 2931/3468/16274 3035/3578/16275 +f 3035/3578/16276 2964/3506/16277 2930/3469/16278 +f 3039/3581/16279 3038/3582/16280 3036/3580/16281 +f 3036/3580/16282 3037/3579/16283 3039/3581/16284 +f 3040/3583/16285 2963/3507/16286 3036/3580/16287 +f 3036/3580/16288 3038/3582/16289 3040/3583/16290 +f 2920/3584/16291 3041/3585/16292 3040/3583/16293 +f 3040/3583/16294 3038/3582/16295 2920/3584/16296 +f 2944/3486/16297 2945/3485/16298 3040/3583/16299 +f 3040/3583/16300 3041/3585/16301 2944/3486/16302 +f 2962/3508/16303 2963/3507/16304 3040/3583/16305 +f 3040/3583/16306 2945/3485/16307 2962/3508/16308 +f 2917/3456/16309 2925/3463/16310 3041/3586/16311 +f 3041/3586/16312 2920/3457/16313 2917/3456/16314 +f 2939/3478/16315 2944/3484/16316 3041/3586/16317 +f 3041/3586/16318 2925/3463/16319 2939/3478/16320 +f 2919/3587/16321 2920/3584/16322 3038/3582/16323 +f 3038/3582/16324 3039/3581/16325 2919/3587/16326 +f 3043/3588/16327 3042/3589/16328 3039/3581/16329 +f 3039/3581/16330 3037/3579/16331 3043/3588/16332 +f 2922/3590/16333 2919/3587/16334 3039/3581/16335 +f 3039/3581/16336 3042/3589/16337 2922/3590/16338 +f 3042/3589/16339 3043/3588/16340 3045/3591/16341 +f 3045/3591/16342 3044/3592/16343 3042/3589/16344 +f 3042/3589/16345 3044/3592/16346 3046/3593/16347 +f 3046/3593/16348 2922/3590/16349 3042/3589/16350 +f 3046/3594/16351 3047/3595/16352 2921/3459/16353 +f 2921/3459/16354 2922/3460/16355 3046/3594/16356 +f 3047/3595/16357 2864/3401/16358 2863/3402/16359 +f 2863/3402/16360 2921/3459/16361 3047/3595/16362 +f 3047/3595/16363 3046/3594/16364 3049/3596/16365 +f 3049/3596/16366 3048/3597/16367 3047/3595/16368 +f 3047/3595/16369 3048/3597/16370 2865/3403/16371 +f 2865/3403/16372 2864/3401/16373 3047/3595/16374 +f 3051/3598/16375 3050/3599/16376 2831/3367/16377 +f 2831/3367/16378 2865/3403/16379 3051/3598/16380 +f 3052/3600/16381 2830/3368/16382 2831/3367/16383 +f 2831/3367/16384 3050/3599/16385 3052/3600/16386 +f 3053/3602/16387 2830/3368/16388 3052/3600/16389 +f 3052/3600/16390 3054/3601/16391 3053/3602/16392 +f 3056/3605/16393 3055/3606/16394 3058/3603/16395 +f 3058/3603/16396 3057/3604/16397 3056/3605/16398 +f 3060/3607/16399 3059/3608/16400 3058/3603/16401 +f 3058/3603/16402 3055/3606/16403 3060/3607/16404 +f 3061/3610/16405 3059/3608/16406 3060/3607/16407 +f 3060/3607/16408 3062/3609/16409 3061/3610/16410 +f 3060/3607/16411 3055/3606/16412 3064/3611/16413 +f 3064/3611/16414 3063/3612/16415 3060/3607/16416 +f 3055/3606/16417 3056/3605/16418 3065/3613/16419 +f 3065/3613/16420 3064/3611/16421 3055/3606/16422 +f 3056/3605/16423 2780/3317/16424 2771/3306/16425 +f 3063/3612/16426 3066/3614/16427 3062/3609/16428 +f 3062/3609/16429 3060/3607/16430 3063/3612/16431 +f 3067/3617/16432 3063/3612/16433 3069/3615/16434 +f 3069/3615/16435 3068/3616/16436 3067/3617/16437 +f 3070/3619/16438 3068/3616/16439 3069/3615/16440 +f 3069/3615/16441 3071/3618/16442 3070/3619/16443 +f 3073/3620/16444 3072/3621/16445 3067/3617/16446 +f 3067/3617/16447 2741/3280/16448 3073/3620/16449 +f 3066/3614/16450 3063/3612/16451 3067/3617/16452 +f 3067/3617/16453 3072/3621/16454 3066/3614/16455 +f 2740/3281/16456 2741/3280/16457 3067/3617/16458 +f 3067/3617/16459 3068/3616/16460 2740/3281/16461 +f 3075/3624/16462 3074/3625/16463 3072/3622/16464 +f 3072/3622/16465 3073/3623/16466 3075/3624/16467 +f 3076/3626/16468 3066/3627/16469 3072/3622/16470 +f 3072/3622/16471 3074/3625/16472 3076/3626/16473 +f 2751/3292/16474 2752/3291/16475 3076/3626/16476 +f 3076/3626/16477 3074/3625/16478 2751/3292/16479 +f 3076/3626/16480 2752/3291/16481 2759/3298/16482 +f 2759/3298/16483 3016/3560/16484 3076/3626/16485 +f 3076/3626/16486 3016/3560/16487 3062/3628/16488 +f 3062/3628/16489 3066/3627/16490 3076/3626/16491 +f 3078/3629/16492 3077/3630/16493 2760/3297/16494 +f 2760/3297/16495 2757/3296/16496 3078/3629/16497 +f 3077/3630/16498 3078/3629/16499 3079/3631/16500 +f 3079/3631/16501 3053/3602/16502 3077/3630/16503 +f 3054/3601/16504 3080/3632/16505 3077/3630/16506 +f 3077/3630/16507 3053/3602/16508 3054/3601/16509 +f 3014/3558/16510 2760/3297/16511 3077/3630/16512 +f 3077/3630/16513 3080/3632/16514 3014/3558/16515 +f 3079/3631/16516 2828/3363/16517 2830/3368/16518 +f 2830/3368/16519 3053/3602/16520 3079/3631/16521 +f 2778/3316/16522 3081/3633/16523 3079/3631/16524 +f 3079/3631/16525 3078/3629/16526 2778/3316/16527 +f 2827/3364/16528 2828/3363/16529 3079/3631/16530 +f 3079/3631/16531 3081/3633/16532 2827/3364/16533 +f 2765/3303/16534 2810/3350/16535 3081/3633/16536 +f 3081/3633/16537 2778/3316/16538 2765/3303/16539 +f 2811/3349/16540 2827/3364/16541 3081/3633/16542 +f 3081/3633/16543 2810/3350/16544 2811/3349/16545 +f 2758/3295/16546 2778/3316/16547 3078/3629/16548 +f 3078/3629/16549 2757/3296/16550 2758/3295/16551 +f 2756/3294/16552 2751/3292/16553 3074/3625/16554 +f 3074/3625/16555 3075/3624/16556 2756/3294/16557 +f 3082/3635/16558 2756/3294/16559 3075/3624/16560 +f 3075/3624/16561 3083/3634/16562 3082/3635/16563 +f 3084/3636/16564 3083/3634/16565 3075/3624/16566 +f 3075/3624/16567 3073/3623/16568 3084/3636/16569 +f 3084/3636/16570 3085/3637/16571 3083/3634/16572 +f 3084/3638/16573 3073/3620/16574 2741/3280/16575 +f 3082/3635/16576 3083/3634/16577 3085/3637/16578 +f 3085/3637/16579 2744/3285/16580 3082/3635/16581 +f 3086/3639/16582 2750/3288/16583 3085/3637/16584 +f 3085/3637/16585 3084/3636/16586 3086/3639/16587 +f 3087/3641/16588 2750/3288/16589 3086/3639/16590 +f 3086/3639/16591 3088/3640/16592 3087/3641/16593 +f 2742/3279/16594 3089/3643/16595 3086/3642/16596 +f 3086/3642/16597 3084/3638/16598 2742/3279/16599 +f 3090/3644/16600 3088/3645/16601 3086/3642/16602 +f 3086/3642/16603 3089/3643/16604 3090/3644/16605 +f 3090/3644/16606 3091/3646/16607 3088/3645/16608 +f 3093/3647/16609 3092/3648/16610 3090/3644/16611 +f 3090/3644/16612 3089/3643/16613 3093/3647/16614 +f 3094/3649/16615 3091/3646/16616 3090/3644/16617 +f 3090/3644/16618 3092/3648/16619 3094/3649/16620 +f 3096/3650/16621 3095/3651/16622 3094/3649/16623 +f 3094/3649/16624 3092/3648/16625 3096/3650/16626 +f 3097/3652/16627 2728/3266/16628 3094/3649/16629 +f 3094/3649/16630 3095/3651/16631 3097/3652/16632 +f 2723/3260/16633 2728/3266/16634 3097/3652/16635 +f 3097/3652/16636 2724/3261/16637 2723/3260/16638 +f 3099/3653/16639 3098/3654/16640 3097/3652/16641 +f 3097/3652/16642 3095/3651/16643 3099/3653/16644 +f 2722/3258/16645 2724/3261/16646 3097/3652/16647 +f 3097/3652/16648 3098/3654/16649 2722/3258/16650 +f 3101/3655/16651 3100/3656/16652 3098/3654/16653 +f 3098/3654/16654 3099/3653/16655 3101/3655/16656 +f 2716/3252/16657 2722/3258/16658 3098/3654/16659 +f 3098/3654/16660 3100/3656/16661 2716/3252/16662 +f 2725/3264/16663 2726/3263/16664 3100/3656/16665 +f 3100/3656/16666 3101/3655/16667 2725/3264/16668 +f 2715/3253/16669 2716/3252/16670 3100/3656/16671 +f 3100/3656/16672 2726/3263/16673 2715/3253/16674 +f 3103/3657/16675 3102/3658/16676 3101/3655/16677 +f 3101/3655/16678 3099/3653/16679 3103/3657/16680 +f 3104/3659/16681 2725/3264/16682 3101/3655/16683 +f 3101/3655/16684 3102/3658/16685 3104/3659/16686 +f 3106/3660/16687 3105/3661/16688 3104/3659/16689 +f 3104/3659/16690 3102/3658/16691 3106/3660/16692 +f 3104/3659/16693 2727/3262/16694 2725/3264/16695 +f 3107/3664/16696 2739/3277/16697 3109/3662/16698 +f 3109/3662/16699 3108/3663/16700 3107/3664/16701 +f 3109/3662/16702 3110/3666/16703 3111/3665/16704 +f 3111/3665/16705 3108/3663/16706 3109/3662/16707 +f 3109/3662/16708 3112/3668/16709 3113/3667/16710 +f 3113/3667/16711 3110/3666/16712 3109/3662/16713 +f 2734/3275/16714 3114/3669/16715 3112/3668/16716 +f 3112/3668/16717 2739/3277/16718 2734/3275/16719 +f 3114/3669/16720 3115/3670/16721 3113/3667/16722 +f 3113/3667/16723 3112/3668/16724 3114/3669/16725 +f 2749/3286/16726 3116/3671/16727 3114/3669/16728 +f 3114/3669/16729 2734/3275/16730 2749/3286/16731 +f 3116/3671/16732 3117/3672/16733 3115/3670/16734 +f 3115/3670/16735 3114/3669/16736 3116/3671/16737 +f 3118/3674/16738 3115/3670/16739 3117/3672/16740 +f 3117/3672/16741 2729/3673/16742 3118/3674/16743 +f 3116/3671/16744 3087/3641/16745 3091/3675/16746 +f 3091/3675/16747 3117/3672/16748 3116/3671/16749 +f 3116/3671/16750 2749/3286/16751 2750/3288/16752 +f 2750/3288/16753 3087/3641/16754 3116/3671/16755 +f 2733/3268/16756 2739/3277/16757 3107/3664/16758 +f 3107/3664/16759 2732/3269/16760 2733/3268/16761 +f 3106/3660/16762 3119/3677/16763 3120/3676/16764 +f 3120/3676/16765 3105/3661/16766 3106/3660/16767 +f 2730/3271/16768 2731/3270/16769 3120/3676/16770 +f 3120/3676/16771 3119/3677/16772 2730/3271/16773 +f 3122/3678/16774 3121/3679/16775 2730/3271/16776 +f 2730/3271/16777 3119/3677/16778 3122/3678/16779 +f 2738/3276/16780 2730/3271/16781 3121/3679/16782 +f 3121/3679/16783 3123/3680/16784 2738/3276/16785 +f 3124/3682/16786 2736/3273/16787 2738/3276/16788 +f 2738/3276/16789 3125/3681/16790 3124/3682/16791 +f 3126/3683/16792 3125/3681/16793 2738/3276/16794 +f 2738/3276/16795 3123/3680/16796 3126/3683/16797 +f 3127/3684/16798 3125/3681/16799 3126/3683/16800 +f 3126/3683/16801 2786/3323/16802 3127/3684/16803 +f 3129/3685/16804 3128/3686/16805 3126/3683/16806 +f 3126/3683/16807 3123/3680/16808 3129/3685/16809 +f 2785/3324/16810 2786/3323/16811 3126/3683/16812 +f 3126/3683/16813 3128/3686/16814 2785/3324/16815 +f 3129/3685/16816 3130/3688/16817 3131/3687/16818 +f 3131/3687/16819 3128/3686/16820 3129/3685/16821 +f 2799/3337/16822 2785/3324/16823 3128/3686/16824 +f 3128/3686/16825 3131/3687/16826 2799/3337/16827 +f 3132/3689/16828 2776/3315/16829 3131/3687/16830 +f 3131/3687/16831 3130/3688/16832 3132/3689/16833 +f 2776/3315/16834 2777/3314/16835 2799/3337/16836 +f 2799/3337/16837 3131/3687/16838 2776/3315/16839 +f 3121/3679/16840 3133/3690/16841 3129/3685/16842 +f 3129/3685/16843 3123/3680/16844 3121/3679/16845 +f 3133/3690/16846 3134/3691/16847 3130/3688/16848 +f 3130/3688/16849 3129/3685/16850 3133/3690/16851 +f 3122/3678/16852 3135/3692/16853 3133/3690/16854 +f 3133/3690/16855 3121/3679/16856 3122/3678/16857 +f 3135/3692/16858 3136/3693/16859 3134/3691/16860 +f 3134/3691/16861 3133/3690/16862 3135/3692/16863 +f 3137/3694/16864 3093/3647/16865 3136/3693/16866 +f 3136/3693/16867 3135/3692/16868 3137/3694/16869 +f 3138/3695/16870 3137/3694/16871 3135/3692/16872 +f 3135/3692/16873 3122/3678/16874 3138/3695/16875 +f 3096/3650/16876 3137/3694/16877 3138/3695/16878 +f 3138/3695/16879 3103/3657/16880 3096/3650/16881 +f 3119/3677/16882 3106/3660/16883 3138/3695/16884 +f 3138/3695/16885 3122/3678/16886 3119/3677/16887 +f 3102/3658/16888 3103/3657/16889 3138/3695/16890 +f 3138/3695/16891 3106/3660/16892 3102/3658/16893 +f 3092/3648/16894 3093/3647/16895 3137/3694/16896 +f 3137/3694/16897 3096/3650/16898 3092/3648/16899 +f 3140/3697/16900 3139/3698/16901 3127/3684/16902 +f 3127/3684/16903 3141/3696/16904 3140/3697/16905 +f 3124/3682/16906 3125/3681/16907 3127/3684/16908 +f 3127/3684/16909 3139/3698/16910 3124/3682/16911 +f 2787/3328/16912 2788/3327/16913 3139/3698/16914 +f 3139/3698/16915 3140/3697/16916 2787/3328/16917 +f 3142/3699/16918 3124/3682/16919 3139/3698/16920 +f 3139/3698/16921 2788/3327/16922 3142/3699/16923 +f 2789/3326/16924 2792/3332/16925 3142/3699/16926 +f 3142/3699/16927 2788/3327/16928 2789/3326/16929 +f 3144/3700/16930 3143/3701/16931 3142/3699/16932 +f 3142/3699/16933 2792/3332/16934 3144/3700/16935 +f 2736/3273/16936 3124/3682/16937 3142/3699/16938 +f 3142/3699/16939 3143/3701/16940 2736/3273/16941 +f 2748/3287/16942 2735/3274/16943 3143/3701/16944 +f 3143/3701/16945 3144/3700/16946 2748/3287/16947 +f 3143/3701/16948 2735/3274/16949 2736/3273/16950 +f 2793/3331/16951 3145/3702/16952 3144/3700/16953 +f 3144/3700/16954 2792/3332/16955 2793/3331/16956 +f 2746/3283/16957 2748/3287/16958 3144/3700/16959 +f 3144/3700/16960 3145/3702/16961 2746/3283/16962 +f 2764/3304/16963 2763/3299/16964 3145/3702/16965 +f 3145/3702/16966 2793/3331/16967 2764/3304/16968 +f 2745/3284/16969 2746/3283/16970 3145/3702/16971 +f 3145/3702/16972 2763/3299/16973 2745/3284/16974 +f 2787/3328/16975 3146/3704/16976 3147/3703/16977 +f 3147/3703/16978 2790/3325/16979 2787/3328/16980 +f 3148/3705/16981 3146/3704/16982 2787/3328/16983 +f 2787/3328/16984 3140/3697/16985 3148/3705/16986 +f 2898/3439/16987 3146/3704/16988 3148/3705/16989 +f 3148/3705/16990 2901/3436/16991 2898/3439/16992 +f 3141/3696/16993 3149/3706/16994 3148/3705/16995 +f 3148/3705/16996 3140/3697/16997 3141/3696/16998 +f 2904/3440/16999 2901/3436/17000 3148/3705/17001 +f 3148/3705/17002 3149/3706/17003 2904/3440/17004 +f 3151/3707/17005 3150/3708/17006 3149/3706/17007 +f 3149/3706/17008 3141/3696/17009 3151/3707/17010 +f 3152/3709/17011 2904/3440/17012 3149/3706/17013 +f 3149/3706/17014 3150/3708/17015 3152/3709/17016 +f 2903/3441/17017 2904/3440/17018 3152/3709/17019 +f 3152/3709/17020 2951/3493/17021 2903/3441/17022 +f 2911/3448/17023 2912/3450/17024 3152/3709/17025 +f 3152/3709/17026 3150/3708/17027 2911/3448/17028 +f 2950/3494/17029 2951/3493/17030 3152/3709/17031 +f 3152/3709/17032 2912/3450/17033 2950/3494/17034 +f 2781/3322/17035 2911/3448/17036 3150/3708/17037 +f 3150/3708/17038 3151/3707/17039 2781/3322/17040 +f 2898/3439/17041 3153/3710/17042 3147/3703/17043 +f 3147/3703/17044 3146/3704/17045 2898/3439/17046 +f 3155/3711/17047 3154/3712/17048 3147/3703/17049 +f 3147/3703/17050 3153/3710/17051 3155/3711/17052 +f 3156/3713/17053 2790/3325/17054 3147/3703/17055 +f 3147/3703/17056 3154/3712/17057 3156/3713/17058 +f 2791/3329/17059 2790/3325/17060 3156/3713/17061 +f 3156/3713/17062 3157/3714/17063 2791/3329/17064 +f 2795/3333/17065 2791/3329/17066 3157/3714/17067 +f 3157/3714/17068 2817/3353/17069 2795/3333/17070 +f 3159/3717/17071 3158/3718/17072 3161/3715/17073 +f 3161/3715/17074 3160/3716/17075 3159/3717/17076 +f 2815/3355/17077 2816/3354/17078 3161/3715/17079 +f 3161/3715/17080 3158/3718/17081 2815/3355/17082 +f 3163/3719/17083 3162/3720/17084 3158/3718/17085 +f 3158/3718/17086 3159/3717/17087 3163/3719/17088 +f 2818/3356/17089 2815/3355/17090 3158/3718/17091 +f 3158/3718/17092 3162/3720/17093 2818/3356/17094 +f 3162/3720/17095 3163/3719/17096 2851/3390/17097 +f 2851/3390/17098 2837/3377/17099 3162/3720/17100 +f 3162/3720/17101 2837/3377/17102 2838/3376/17103 +f 2838/3376/17104 2818/3356/17105 3162/3720/17106 +f 2838/3376/17107 2820/3359/17108 2814/3351/17109 +f 2814/3351/17110 2818/3356/17111 2838/3376/17112 +f 2821/3358/17113 2813/3352/17114 2814/3351/17115 +f 2814/3351/17116 2820/3359/17117 2821/3358/17118 +f 2766/3302/17119 2764/3304/17120 2813/3352/17121 +f 2813/3352/17122 2821/3358/17123 2766/3302/17124 +f 3165/3721/17125 3164/3722/17126 3159/3717/17127 +f 3159/3717/17128 3160/3716/17129 3165/3721/17130 +f 2850/3391/17131 3163/3719/17132 3159/3717/17133 +f 3159/3717/17134 3164/3722/17135 2850/3391/17136 +f 3166/3723/17137 3164/3722/17138 3165/3721/17139 +f 2879/3418/17140 2850/3391/17141 3164/3722/17142 +f 3164/3722/17143 3166/3723/17144 2879/3418/17145 +f 3168/3724/17146 3167/3725/17147 2879/3418/17148 +f 2879/3418/17149 3166/3723/17150 3168/3724/17151 +f 2879/3418/17152 3167/3725/17153 2899/3438/17154 +f 2899/3438/17155 2880/3417/17156 2879/3418/17157 +f 3153/3710/17158 2898/3439/17159 2899/3438/17160 +f 2899/3438/17161 3167/3725/17162 3153/3710/17163 +f 3155/3711/17164 3153/3710/17165 3167/3725/17166 +f 3167/3725/17167 3168/3724/17168 3155/3711/17169 +f 3095/3651/17170 3096/3650/17171 3103/3657/17172 +f 3103/3657/17173 3099/3653/17174 3095/3651/17175 +f 2742/3279/17176 3136/3693/17177 3093/3647/17178 +f 3093/3647/17179 3089/3643/17180 2742/3279/17181 +f 3087/3641/17182 3088/3640/17183 3091/3675/17184 +f 2745/3284/17185 2761/3301/17186 3082/3635/17187 +f 3082/3635/17188 2744/3285/17189 2745/3284/17190 +f 2754/3289/17191 2756/3294/17192 3082/3635/17193 +f 3082/3635/17194 2761/3301/17195 2754/3289/17196 +f 3016/3560/17197 3017/3559/17198 3061/3726/17199 +f 3061/3726/17200 3062/3628/17201 3016/3560/17202 +f 3169/3727/17203 2780/3317/17204 3056/3605/17205 +f 3056/3605/17206 3057/3604/17207 3169/3727/17208 +f 3048/3597/17209 3170/3728/17210 3051/3598/17211 +f 3051/3598/17212 2865/3403/17213 3048/3597/17214 +f 3171/3729/17215 3170/3728/17216 3048/3597/17217 +f 3048/3597/17218 3049/3596/17219 3171/3729/17220 +f 3172/3732/17221 3171/3733/17222 3049/3730/17223 +f 3049/3730/17224 3173/3731/17225 3172/3732/17226 +f 3049/3730/17227 3046/3593/17228 3044/3592/17229 +f 3044/3592/17230 3173/3731/17231 3049/3730/17232 +f 3044/3592/17233 3045/3591/17234 3174/3734/17235 +f 3174/3734/17236 3173/3731/17237 3044/3592/17238 +f 3045/3591/17239 3175/3735/17240 3022/3566/17241 +f 3022/3566/17242 3174/3734/17243 3045/3591/17244 +f 3175/3735/17245 3176/3736/17246 3020/3562/17247 +f 3020/3562/17248 3022/3566/17249 3175/3735/17250 +f 3175/3735/17251 3045/3591/17252 3043/3588/17253 +f 3043/3588/17254 3034/3576/17255 3175/3735/17256 +f 3175/3735/17257 3034/3576/17258 3032/3574/17259 +f 3032/3574/17260 3176/3736/17261 3175/3735/17262 +f 3032/3574/17263 3029/3572/17264 3027/3569/17265 +f 3027/3569/17266 3176/3736/17267 3032/3574/17268 +f 3027/3569/17269 3019/3563/17270 3020/3562/17271 +f 3020/3562/17272 3176/3736/17273 3027/3569/17274 +f 3023/3565/17275 3177/3737/17276 3174/3734/17277 +f 3174/3734/17278 3022/3566/17279 3023/3565/17280 +f 3172/3732/17281 3173/3731/17282 3174/3734/17283 +f 3174/3734/17284 3177/3737/17285 3172/3732/17286 +f 3033/3577/17287 3034/3576/17288 3043/3588/17289 +f 3043/3588/17290 3037/3579/17291 3033/3577/17292 +f 3004/3550/17293 3179/3738/17294 3178/3739/17295 +f 3182/3740/17296 3181/3741/17297 3180/3742/17298 +f 3179/3738/17299 3183/3743/17300 3180/3742/17301 +f 3180/3742/17302 3178/3739/17303 3179/3738/17304 +f 3180/3742/17305 3183/3743/17306 3182/3740/17307 +f 3185/3744/17308 3184/3745/17309 3181/3741/17310 +f 3181/3741/17311 3182/3740/17312 3185/3744/17313 +f 3181/3741/17314 3184/3745/17315 3186/3746/17316 +f 3187/3747/17317 3003/3546/17318 3186/3746/17319 +f 3186/3746/17320 3184/3745/17321 3187/3747/17322 +f 3001/3543/17323 3011/3553/17324 3186/3746/17325 +f 3186/3746/17326 3003/3546/17327 3001/3543/17328 +f 3189/3749/17329 3188/3750/17330 3187/3747/17331 +f 3187/3747/17332 3190/3748/17333 3189/3749/17334 +f 3000/3544/17335 3003/3546/17336 3187/3747/17337 +f 3187/3747/17338 3188/3750/17339 3000/3544/17340 +f 3191/3751/17341 3190/3748/17342 3187/3747/17343 +f 3187/3747/17344 3184/3745/17345 3191/3751/17346 +f 3193/3752/17347 3192/3753/17348 3188/3750/17349 +f 3188/3750/17350 3189/3749/17351 3193/3752/17352 +f 2999/3545/17353 3000/3544/17354 3188/3750/17355 +f 3188/3750/17356 3192/3753/17357 2999/3545/17358 +f 3195/3754/17359 3194/3755/17360 3192/3753/17361 +f 3192/3753/17362 3193/3752/17363 3195/3754/17364 +f 3196/3756/17365 2999/3545/17366 3192/3753/17367 +f 3192/3753/17368 3194/3755/17369 3196/3756/17370 +f 3196/3756/17371 3194/3755/17372 3198/3757/17373 +f 3198/3757/17374 3197/3758/17375 3196/3756/17376 +f 3196/3756/17377 3197/3758/17378 3200/3759/17379 +f 3200/3759/17380 3199/3760/17381 3196/3756/17382 +f 3196/3756/17383 3199/3760/17384 3002/3542/17385 +f 3002/3542/17386 2999/3545/17387 3196/3756/17388 +f 3199/3760/17389 3200/3759/17390 3202/3761/17391 +f 3202/3761/17392 3201/3762/17393 3199/3760/17394 +f 3010/3554/17395 3002/3542/17396 3199/3760/17397 +f 3199/3760/17398 3201/3762/17399 3010/3554/17400 +f 3201/3762/17401 3202/3761/17402 3204/3763/17403 +f 3204/3763/17404 3203/3764/17405 3201/3762/17406 +f 3009/3551/17407 3010/3554/17408 3201/3762/17409 +f 3201/3762/17410 3203/3764/17411 3009/3551/17412 +f 3203/3764/17413 3204/3763/17414 3206/3765/17415 +f 3206/3765/17416 3205/3766/17417 3203/3764/17418 +f 3008/3552/17419 3009/3551/17420 3203/3764/17421 +f 3203/3764/17422 3205/3766/17423 3008/3552/17424 +f 3205/3766/17425 3206/3765/17426 3208/3767/17427 +f 3208/3767/17428 3207/3768/17429 3205/3766/17430 +f 3209/3769/17431 3008/3552/17432 3205/3766/17433 +f 3205/3766/17434 3207/3768/17435 3209/3769/17436 +f 3211/3770/17437 3210/3771/17438 3209/3769/17439 +f 3209/3769/17440 3207/3768/17441 3211/3770/17442 +f 3213/3772/17443 3212/3773/17444 3209/3769/17445 +f 3209/3769/17446 3210/3771/17447 3213/3772/17448 +f 3006/3548/17449 3008/3552/17450 3209/3769/17451 +f 3209/3769/17452 3212/3773/17453 3006/3548/17454 +f 3214/3774/17455 3012/3556/17456 3212/3773/17457 +f 3212/3773/17458 3213/3772/17459 3214/3774/17460 +f 3005/3549/17461 3006/3548/17462 3212/3773/17463 +f 3212/3773/17464 3012/3556/17465 3005/3549/17466 +f 3216/3775/17467 3215/3776/17468 3213/3772/17469 +f 3213/3772/17470 3210/3771/17471 3216/3775/17472 +f 3213/3772/17473 3215/3776/17474 3214/3774/17475 +f 3218/3777/17476 3217/3778/17477 3214/3774/17478 +f 3214/3774/17479 3215/3776/17480 3218/3777/17481 +f 3216/3775/17482 3219/3779/17483 3218/3777/17484 +f 3218/3777/17485 3215/3776/17486 3216/3775/17487 +f 3220/3780/17488 2996/3539/17489 3218/3777/17490 +f 3218/3777/17491 3219/3779/17492 3220/3780/17493 +f 2994/3538/17494 3217/3778/17495 3218/3777/17496 +f 3218/3777/17497 2996/3539/17498 2994/3538/17499 +f 3222/3781/17500 3221/3782/17501 3220/3780/17502 +f 3220/3780/17503 3219/3779/17504 3222/3781/17505 +f 3224/3783/17506 3223/3784/17507 3220/3780/17508 +f 3220/3780/17509 3221/3782/17510 3224/3783/17511 +f 2992/3534/17512 2996/3539/17513 3220/3780/17514 +f 3220/3780/17515 3223/3784/17516 2992/3534/17517 +f 3226/3785/17518 3225/3786/17519 3223/3784/17520 +f 3223/3784/17521 3224/3783/17522 3226/3785/17523 +f 2991/3535/17524 2992/3534/17525 3223/3784/17526 +f 3223/3784/17527 3225/3786/17528 2991/3535/17529 +f 3228/3787/17530 3227/3788/17531 3225/3786/17532 +f 3225/3786/17533 3226/3785/17534 3228/3787/17535 +f 3229/3789/17536 2991/3535/17537 3225/3786/17538 +f 3225/3786/17539 3227/3788/17540 3229/3789/17541 +f 3193/3790/17542 3189/3791/17543 3229/3789/17544 +f 3229/3789/17545 3227/3788/17546 3193/3790/17547 +f 3190/3792/17548 3230/3793/17549 3229/3789/17550 +f 3229/3789/17551 3189/3791/17552 3190/3792/17553 +f 2990/3536/17554 2991/3535/17555 3229/3789/17556 +f 3229/3789/17557 3230/3793/17558 2990/3536/17559 +f 3191/3794/17560 2998/3540/17561 3230/3793/17562 +f 3230/3793/17563 3190/3792/17564 3191/3794/17565 +f 2995/3537/17566 2990/3536/17567 3230/3793/17568 +f 3230/3793/17569 2998/3540/17570 2995/3537/17571 +f 3195/3795/17572 3193/3790/17573 3227/3788/17574 +f 3227/3788/17575 3228/3787/17576 3195/3795/17577 +f 3228/3787/17578 3226/3785/17579 3232/3796/17580 +f 3232/3796/17581 3231/3797/17582 3228/3787/17583 +f 3228/3787/17584 3231/3797/17585 3233/3798/17586 +f 3233/3798/17587 3195/3795/17588 3228/3787/17589 +f 3233/3799/17590 3198/3757/17591 3194/3755/17592 +f 3194/3755/17593 3195/3754/17594 3233/3799/17595 +f 3235/3800/17596 3234/3801/17597 3198/3757/17598 +f 3198/3757/17599 3233/3799/17600 3235/3800/17601 +f 3236/3802/17602 3197/3758/17603 3198/3757/17604 +f 3198/3757/17605 3234/3801/17606 3236/3802/17607 +f 3236/3802/17608 3237/3803/17609 3200/3759/17610 +f 3200/3759/17611 3197/3758/17612 3236/3802/17613 +f 3238/3804/17614 3202/3761/17615 3200/3759/17616 +f 3200/3759/17617 3237/3803/17618 3238/3804/17619 +f 3239/3805/17620 3204/3763/17621 3202/3761/17622 +f 3202/3761/17623 3238/3804/17624 3239/3805/17625 +f 3240/3806/17626 3206/3765/17627 3204/3763/17628 +f 3204/3763/17629 3239/3805/17630 3240/3806/17631 +f 3241/3807/17632 3208/3767/17633 3206/3765/17634 +f 3206/3765/17635 3240/3806/17636 3241/3807/17637 +f 3243/3808/17638 3242/3809/17639 3208/3767/17640 +f 3208/3767/17641 3241/3807/17642 3243/3808/17643 +f 3208/3767/17644 3242/3809/17645 3211/3770/17646 +f 3211/3770/17647 3207/3768/17648 3208/3767/17649 +f 3245/3810/17650 3244/3811/17651 3211/3770/17652 +f 3211/3770/17653 3242/3809/17654 3245/3810/17655 +f 3244/3811/17656 3245/3810/17657 3246/3812/17658 +f 3246/3812/17659 3222/3781/17660 3244/3811/17661 +f 3219/3779/17662 3216/3775/17663 3244/3811/17664 +f 3244/3811/17665 3222/3781/17666 3219/3779/17667 +f 3210/3771/17668 3211/3770/17669 3244/3811/17670 +f 3244/3811/17671 3216/3775/17672 3210/3771/17673 +f 3246/3812/17674 3247/3813/17675 3221/3782/17676 +f 3221/3782/17677 3222/3781/17678 3246/3812/17679 +f 3248/3814/17680 3224/3783/17681 3221/3782/17682 +f 3221/3782/17683 3247/3813/17684 3248/3814/17685 +f 3232/3796/17686 3226/3785/17687 3224/3783/17688 +f 3224/3783/17689 3248/3814/17690 3232/3796/17691 +f 3250/3815/17692 3249/3816/17693 3232/3796/17694 +f 3232/3796/17695 3248/3814/17696 3250/3815/17697 +f 3251/3817/17698 3231/3797/17699 3232/3796/17700 +f 3232/3796/17701 3249/3816/17702 3251/3817/17703 +f 3252/3820/17704 2969/3513/17705 3251/3818/17706 +f 3251/3818/17707 3249/3819/17708 3252/3820/17709 +f 2970/3512/17710 3235/3821/17711 3251/3818/17712 +f 3251/3818/17713 2969/3513/17714 2970/3512/17715 +f 3233/3798/17716 3231/3797/17717 3251/3817/17718 +f 3251/3817/17719 3235/3822/17720 3233/3798/17721 +f 3253/3824/17722 2966/3509/17723 3252/3820/17724 +f 3252/3820/17725 3254/3823/17726 3253/3824/17727 +f 2965/3505/17728 2969/3513/17729 3252/3820/17730 +f 3252/3820/17731 2966/3509/17732 2965/3505/17733 +f 3250/3825/17734 3254/3823/17735 3252/3820/17736 +f 3252/3820/17737 3249/3819/17738 3250/3825/17739 +f 2927/3466/17740 2928/3465/17741 3253/3824/17742 +f 3253/3824/17743 3255/3826/17744 2927/3466/17745 +f 2930/3469/17746 2966/3509/17747 3253/3824/17748 +f 3253/3824/17749 2928/3465/17750 2930/3469/17751 +f 3256/3827/17752 3255/3826/17753 3253/3824/17754 +f 3253/3824/17755 3254/3823/17756 3256/3827/17757 +f 3257/3829/17758 3255/3826/17759 3256/3827/17760 +f 3256/3827/17761 3258/3828/17762 3257/3829/17763 +f 3250/3825/17764 3259/3830/17765 3256/3827/17766 +f 3256/3827/17767 3254/3823/17768 3250/3825/17769 +f 3260/3831/17770 3258/3828/17771 3256/3827/17772 +f 3256/3827/17773 3259/3830/17774 3260/3831/17775 +f 3261/3833/17776 3258/3828/17777 3260/3831/17778 +f 3260/3831/17779 3262/3832/17780 3261/3833/17781 +f 3247/3813/17782 3246/3812/17783 3260/3834/17784 +f 3260/3834/17785 3259/3835/17786 3247/3813/17787 +f 3245/3810/17788 3262/3836/17789 3260/3834/17790 +f 3260/3834/17791 3246/3812/17792 3245/3810/17793 +f 3264/3838/17794 3263/3839/17795 3261/3833/17796 +f 3261/3833/17797 3265/3837/17798 3264/3838/17799 +f 3257/3829/17800 3258/3828/17801 3261/3833/17802 +f 3261/3833/17803 3263/3839/17804 3257/3829/17805 +f 3243/3840/17806 3265/3837/17807 3261/3833/17808 +f 3261/3833/17809 3262/3832/17810 3243/3840/17811 +f 2907/3446/17812 3266/3841/17813 3263/3839/17814 +f 3263/3839/17815 3264/3838/17816 2907/3446/17817 +f 3267/3842/17818 3257/3829/17819 3263/3839/17820 +f 3263/3839/17821 3266/3841/17822 3267/3842/17823 +f 3269/3843/17824 3268/3844/17825 3267/3842/17826 +f 3267/3842/17827 3266/3841/17828 3269/3843/17829 +f 2926/3467/17830 2927/3466/17831 3267/3842/17832 +f 3267/3842/17833 3268/3844/17834 2926/3467/17835 +f 3255/3826/17836 3257/3829/17837 3267/3842/17838 +f 3267/3842/17839 2927/3466/17840 3255/3826/17841 +f 3271/3845/17842 3270/3846/17843 3268/3844/17844 +f 3268/3844/17845 3269/3843/17846 3271/3845/17847 +f 2897/3434/17848 2926/3467/17849 3268/3844/17850 +f 3268/3844/17851 3270/3846/17852 2897/3434/17853 +f 3273/3847/17854 3272/3848/17855 3270/3846/17856 +f 3270/3846/17857 3271/3845/17858 3273/3847/17859 +f 2896/3435/17860 2897/3434/17861 3270/3846/17862 +f 3270/3846/17863 3272/3848/17864 2896/3435/17865 +f 3275/3849/17866 3274/3850/17867 3272/3848/17868 +f 3272/3848/17869 3273/3847/17870 3275/3849/17871 +f 2846/3385/17872 2896/3435/17873 3272/3848/17874 +f 3272/3848/17875 3274/3850/17876 2846/3385/17877 +f 3277/3851/17878 3276/3852/17879 3274/3850/17880 +f 3274/3850/17881 3275/3849/17882 3277/3851/17883 +f 2845/3380/17884 2846/3385/17885 3274/3850/17886 +f 3274/3850/17887 3276/3852/17888 2845/3380/17889 +f 3279/3853/17890 3278/3854/17891 3276/3852/17892 +f 3276/3852/17893 3277/3851/17894 3279/3853/17895 +f 2849/3386/17896 2845/3380/17897 3276/3852/17898 +f 3276/3852/17899 3278/3854/17900 2849/3386/17901 +f 3277/3851/17902 3280/3856/17903 3281/3855/17904 +f 3281/3855/17905 3279/3853/17906 3277/3851/17907 +f 2803/3342/17908 2804/3341/17909 3281/3855/17910 +f 3281/3855/17911 3280/3856/17912 2803/3342/17913 +f 3275/3849/17914 3282/3857/17915 3280/3856/17916 +f 3280/3856/17917 3277/3851/17918 3275/3849/17919 +f 2782/3321/17920 2803/3342/17921 3280/3856/17922 +f 3280/3856/17923 3282/3857/17924 2782/3321/17925 +f 3273/3847/17926 3283/3858/17927 3282/3857/17928 +f 3282/3857/17929 3275/3849/17930 3273/3847/17931 +f 2781/3322/17932 2782/3321/17933 3282/3857/17934 +f 3282/3857/17935 3283/3858/17936 2781/3322/17937 +f 3271/3845/17938 2910/3449/17939 3283/3858/17940 +f 3283/3858/17941 3273/3847/17942 3271/3845/17943 +f 2910/3449/17944 2911/3448/17945 2781/3322/17946 +f 2781/3322/17947 3283/3858/17948 2910/3449/17949 +f 2908/3445/17950 2910/3449/17951 3271/3845/17952 +f 3271/3845/17953 3269/3843/17954 2908/3445/17955 +f 2907/3446/17956 2908/3445/17957 3269/3843/17958 +f 3269/3843/17959 3266/3841/17960 2907/3446/17961 +f 2906/3447/17962 2907/3446/17963 3264/3838/17964 +f 3264/3838/17965 3284/3859/17966 2906/3447/17967 +f 3285/3860/17968 3284/3859/17969 3264/3838/17970 +f 3264/3838/17971 3265/3837/17972 3285/3860/17973 +f 3243/3840/17974 3241/3861/17975 3285/3860/17976 +f 3285/3860/17977 3265/3837/17978 3243/3840/17979 +f 3240/3862/17980 3286/3863/17981 3285/3860/17982 +f 3285/3860/17983 3241/3861/17984 3240/3862/17985 +f 3288/3864/17986 3287/3865/17987 2949/3491/17988 +f 2949/3491/17989 2950/3494/17990 3288/3864/17991 +f 3288/3864/17992 2906/3447/17993 3284/3859/17994 +f 3289/3866/17995 3287/3865/17996 3288/3864/17997 +f 3288/3864/17998 3286/3863/17999 3289/3866/18000 +f 3290/3868/18001 3287/3865/18002 3289/3866/18003 +f 3289/3866/18004 3291/3867/18005 3290/3868/18006 +f 3240/3862/18007 3239/3869/18008 3289/3866/18009 +f 3289/3866/18010 3286/3863/18011 3240/3862/18012 +f 3238/3870/18013 3291/3867/18014 3289/3866/18015 +f 3289/3866/18016 3239/3869/18017 3238/3870/18018 +f 3290/3868/18019 2972/3873/18020 3292/3871/18021 +f 3292/3871/18022 2948/3872/18023 3290/3868/18024 +f 3290/3868/18025 2948/3872/18026 2949/3491/18027 +f 2949/3491/18028 3287/3865/18029 3290/3868/18030 +f 3293/3874/18031 2972/3873/18032 3290/3868/18033 +f 3290/3868/18034 3291/3867/18035 3293/3874/18036 +f 3292/3876/18037 2972/3515/18038 2973/3514/18039 +f 2973/3514/18040 3294/3875/18041 3292/3876/18042 +f 3296/3879/18043 3295/3880/18044 3292/3877/18045 +f 3292/3877/18046 3294/3878/18047 3296/3879/18048 +f 2947/3489/18049 2948/3488/18050 3292/3877/18051 +f 3292/3877/18052 3295/3880/18053 2947/3489/18054 +f 3298/3881/18055 3297/3882/18056 3296/3879/18057 +f 3296/3879/18058 3294/3878/18059 3298/3881/18060 +f 3300/3883/18061 3299/3884/18062 3296/3879/18063 +f 3296/3879/18064 3297/3882/18065 3300/3883/18066 +f 3301/3885/18067 3295/3880/18068 3296/3879/18069 +f 3296/3879/18070 3299/3884/18071 3301/3885/18072 +f 2985/3529/18073 2986/3528/18074 3299/3886/18075 +f 3299/3886/18076 3300/3887/18077 2985/3529/18078 +f 2988/3532/18079 3301/3888/18080 3299/3886/18081 +f 3299/3886/18082 2986/3528/18083 2988/3532/18084 +f 3303/3889/18085 3302/3890/18086 3300/3883/18087 +f 3300/3883/18088 3297/3882/18089 3303/3889/18090 +f 3304/3892/18091 2985/3529/18092 3300/3887/18093 +f 3300/3887/18094 3302/3891/18095 3304/3892/18096 +f 3306/3893/18097 3305/3894/18098 3304/3892/18099 +f 3304/3892/18100 3302/3891/18101 3306/3893/18102 +f 3308/3895/18103 3307/3896/18104 3304/3892/18105 +f 3304/3892/18106 3305/3894/18107 3308/3895/18108 +f 2984/3530/18109 2985/3529/18110 3304/3892/18111 +f 3304/3892/18112 3307/3896/18113 2984/3530/18114 +f 3310/3897/18115 3309/3898/18116 3305/3894/18117 +f 3305/3894/18118 3306/3893/18119 3310/3897/18120 +f 3311/3899/18121 3308/3895/18122 3305/3894/18123 +f 3305/3894/18124 3309/3898/18125 3311/3899/18126 +f 2959/3501/18127 2960/3504/18128 3311/3899/18129 +f 3311/3899/18130 3309/3898/18131 2959/3501/18132 +f 3313/3902/18133 3312/3903/18134 3315/3900/18135 +f 3315/3900/18136 3314/3901/18137 3313/3902/18138 +f 2977/3521/18139 2978/3520/18140 3315/3900/18141 +f 3315/3900/18142 3312/3903/18143 2977/3521/18144 +f 3317/3904/18145 3316/3905/18146 3312/3903/18147 +f 3312/3903/18148 3313/3902/18149 3317/3904/18150 +f 3318/3906/18151 2977/3521/18152 3312/3903/18153 +f 3312/3903/18154 3316/3905/18155 3318/3906/18156 +f 3320/3907/18157 3319/3908/18158 3318/3906/18159 +f 3318/3906/18160 3316/3905/18161 3320/3907/18162 +f 2980/3909/18163 3321/3910/18164 3318/3906/18165 +f 3318/3906/18166 3319/3908/18167 2980/3909/18168 +f 2976/3522/18169 2977/3521/18170 3318/3906/18171 +f 3318/3906/18172 3321/3910/18173 2976/3522/18174 +f 2981/3911/18175 3322/3912/18176 3321/3910/18177 +f 3321/3910/18178 2980/3909/18179 2981/3911/18180 +f 3323/3913/18181 2976/3522/18182 3321/3910/18183 +f 3321/3910/18184 3322/3912/18185 3323/3913/18186 +f 3319/3916/18187 3320/3917/18188 3325/3914/18189 +f 3325/3914/18190 3324/3915/18191 3319/3916/18192 +f 3324/3915/18193 2983/3523/18194 2980/3526/18195 +f 2980/3526/18196 3319/3916/18197 3324/3915/18198 +f 3326/3918/18199 2953/3495/18200 3324/3915/18201 +f 3324/3915/18202 3325/3914/18203 3326/3918/18204 +f 2946/3490/18205 2983/3523/18206 3324/3915/18207 +f 3324/3915/18208 2953/3495/18209 2946/3490/18210 +f 3328/3919/18211 3327/3920/18212 3326/3918/18213 +f 3326/3918/18214 3325/3914/18215 3328/3919/18216 +f 3330/3921/18217 3329/3922/18218 3326/3918/18219 +f 3326/3918/18220 3327/3920/18221 3330/3921/18222 +f 2952/3496/18223 2953/3495/18224 3326/3918/18225 +f 3326/3918/18226 3329/3922/18227 2952/3496/18228 +f 2902/3442/18229 2903/3441/18230 3329/3923/18231 +f 3329/3923/18232 3330/3924/18233 2902/3442/18234 +f 2951/3493/18235 2952/3492/18236 3329/3923/18237 +f 3329/3923/18238 2903/3441/18239 2951/3493/18240 +f 3332/3925/18241 3331/3926/18242 3330/3921/18243 +f 3330/3921/18244 3327/3920/18245 3332/3925/18246 +f 2905/3443/18247 2902/3442/18248 3330/3924/18249 +f 3330/3924/18250 3331/3927/18251 2905/3443/18252 +f 3334/3929/18253 3333/3930/18254 3331/3927/18255 +f 3331/3927/18256 3332/3928/18257 3334/3929/18258 +f 3335/3931/18259 2905/3443/18260 3331/3927/18261 +f 3331/3927/18262 3333/3930/18263 3335/3931/18264 +f 2924/3462/18265 2894/3431/18266 3335/3931/18267 +f 3335/3931/18268 3333/3930/18269 2924/3462/18270 +f 2881/3420/18271 2882/3419/18272 3335/3931/18273 +f 3335/3931/18274 2894/3431/18275 2881/3420/18276 +f 2900/3437/18277 2905/3443/18278 3335/3931/18279 +f 3335/3931/18280 2882/3419/18281 2900/3437/18282 +f 2938/3475/18283 2924/3462/18284 3333/3930/18285 +f 3333/3930/18286 3334/3929/18287 2938/3475/18288 +f 2937/3476/18289 2938/3475/18290 3334/3929/18291 +f 3334/3929/18292 3336/3932/18293 2937/3476/18294 +f 3337/3934/18295 3336/3935/18296 3334/3933/18297 +f 3334/3933/18298 3332/3925/18299 3337/3934/18300 +f 3337/3934/18301 3338/3937/18302 3339/3936/18303 +f 3339/3936/18304 3336/3935/18305 3337/3934/18306 +f 3327/3920/18307 3328/3919/18308 3337/3934/18309 +f 3337/3934/18310 3332/3925/18311 3327/3920/18312 +f 3338/3937/18313 3337/3934/18314 3328/3919/18315 +f 3328/3919/18316 3340/3938/18317 3338/3937/18318 +f 3325/3914/18319 3320/3917/18320 3340/3938/18321 +f 3340/3938/18322 3328/3919/18323 3325/3914/18324 +f 3341/3941/18325 3339/3942/18326 3338/3939/18327 +f 3338/3939/18328 3342/3940/18329 3341/3941/18330 +f 3317/3904/18331 3342/3940/18332 3338/3939/18333 +f 3338/3939/18334 3340/3943/18335 3317/3904/18336 +f 3344/3945/18337 3343/3946/18338 3339/3936/18339 +f 3339/3936/18340 3341/3944/18341 3344/3945/18342 +f 3339/3936/18343 3343/3946/18344 2937/3947/18345 +f 2937/3947/18346 3336/3935/18347 3339/3936/18348 +f 3345/3948/18349 2935/3949/18350 2937/3947/18351 +f 2937/3947/18352 3343/3946/18353 3345/3948/18354 +f 3346/3950/18355 2934/3951/18356 2935/3949/18357 +f 2935/3949/18358 3345/3948/18359 3346/3950/18360 +f 3346/3954/18361 3347/3955/18362 3348/3952/18363 +f 3348/3952/18364 2934/3953/18365 3346/3954/18366 +f 3350/3956/18367 3349/3957/18368 3346/3950/18369 +f 3346/3950/18370 3345/3948/18371 3350/3956/18372 +f 3303/3889/18373 3347/3960/18374 3346/3958/18375 +f 3346/3958/18376 3349/3959/18377 3303/3889/18378 +f 3310/3961/18379 3306/3962/18380 3349/3957/18381 +f 3349/3957/18382 3350/3956/18383 3310/3961/18384 +f 3302/3890/18385 3303/3889/18386 3349/3959/18387 +f 3349/3959/18388 3306/3963/18389 3302/3890/18390 +f 3343/3946/18391 3344/3945/18392 3350/3956/18393 +f 3350/3956/18394 3345/3948/18395 3343/3946/18396 +f 2958/3964/18397 3310/3961/18398 3350/3956/18399 +f 3350/3956/18400 3344/3945/18401 2958/3964/18402 +f 3298/3965/18403 2974/3518/18404 3348/3952/18405 +f 3348/3952/18406 3347/3955/18407 3298/3965/18408 +f 2975/3517/18409 3351/3966/18410 3348/3952/18411 +f 3348/3952/18412 2974/3518/18413 2975/3517/18414 +f 2933/3967/18415 2934/3953/18416 3348/3952/18417 +f 3348/3952/18418 3351/3966/18419 2933/3967/18420 +f 3352/3968/18421 2942/3481/18422 3351/3966/18423 +f 3351/3966/18424 2975/3517/18425 3352/3968/18426 +f 2940/3480/18427 2933/3967/18428 3351/3966/18429 +f 3351/3966/18430 2942/3481/18431 2940/3480/18432 +f 2967/3511/18433 2968/3510/18434 3352/3968/18435 +f 3352/3968/18436 3353/3969/18437 2967/3511/18438 +f 2941/3482/18439 2942/3481/18440 3352/3968/18441 +f 3352/3968/18442 2968/3510/18443 2941/3482/18444 +f 2971/3516/18445 3353/3969/18446 3352/3968/18447 +f 3352/3968/18448 2975/3517/18449 2971/3516/18450 +f 2970/3512/18451 2967/3511/18452 3353/3969/18453 +f 3353/3969/18454 3354/3970/18455 2970/3512/18456 +f 3355/3971/18457 3354/3970/18458 3353/3969/18459 +f 3353/3969/18460 2971/3516/18461 3355/3971/18462 +f 3236/3972/18463 3234/3973/18464 3354/3970/18465 +f 3354/3970/18466 3355/3971/18467 3236/3972/18468 +f 3235/3821/18469 2970/3512/18470 3354/3970/18471 +f 3354/3970/18472 3234/3973/18473 3235/3821/18474 +f 3298/3965/18475 3294/3875/18476 2973/3514/18477 +f 2973/3514/18478 2974/3518/18479 3298/3965/18480 +f 3297/3882/18481 3298/3881/18482 3347/3960/18483 +f 3347/3960/18484 3303/3889/18485 3297/3882/18486 +f 2956/3498/18487 2958/3502/18488 3344/3974/18489 +f 3344/3974/18490 3341/3941/18491 2956/3498/18492 +f 2955/3499/18493 2956/3498/18494 3341/3941/18495 +f 3341/3941/18496 3342/3940/18497 2955/3499/18498 +f 3313/3902/18499 2955/3499/18500 3342/3940/18501 +f 3342/3940/18502 3317/3904/18503 3313/3902/18504 +f 3316/3905/18505 3317/3904/18506 3340/3943/18507 +f 3340/3943/18508 3320/3907/18509 3316/3905/18510 +f 2958/3502/18511 2959/3501/18512 3309/3898/18513 +f 3309/3898/18514 3310/3897/18515 2958/3502/18516 +f 3237/3975/18517 3293/3874/18518 3291/3867/18519 +f 3291/3867/18520 3238/3870/18521 3237/3975/18522 +f 3242/3809/18523 3243/3808/18524 3262/3836/18525 +f 3262/3836/18526 3245/3810/18527 3242/3809/18528 +f 3248/3814/18529 3247/3813/18530 3259/3835/18531 +f 3259/3835/18532 3250/3815/18533 3248/3814/18534 +f 3237/3977/18535 3236/3972/18536 3355/3971/18537 +f 3355/3971/18538 3293/3976/18539 3237/3977/18540 +f 3001/3543/18541 3002/3542/18542 3010/3554/18543 +f 3010/3554/18544 3011/3553/18545 3001/3543/18546 +f 3357/3978/18547 3356/3979/18548 2988/3532/18549 +f 2988/3532/18550 2989/3531/18551 3357/3978/18552 +f 3323/3913/18553 3301/3888/18554 2988/3532/18555 +f 2988/3532/18556 3356/3979/18557 3323/3913/18558 +f 2976/3522/18559 3323/3913/18560 3356/3979/18561 +f 3356/3979/18562 2979/3519/18563 2976/3522/18564 +f 2945/3485/18565 2941/3482/18566 2968/3510/18567 +f 2968/3510/18568 2962/3508/18569 2945/3485/18570 +f 2923/3461/18571 2936/3471/18572 2939/3478/18573 +f 2939/3478/18574 2925/3463/18575 2923/3461/18576 +f 2923/3461/18577 2924/3462/18578 2938/3475/18579 +f 2938/3475/18580 2936/3471/18581 2923/3461/18582 +f 2897/3434/18583 2874/3412/18584 2932/3470/18585 +f 2932/3470/18586 2926/3467/18587 2897/3434/18588 +f 2866/3404/18589 2915/3452/18590 2863/3402/18591 +f 2863/3402/18592 2860/3399/18593 2866/3404/18594 +f 2892/3430/18595 2895/3433/18596 2918/3455/18597 +f 2918/3455/18598 2913/3454/18599 2892/3430/18600 +f 2891/3428/18601 2892/3430/18602 2913/3454/18603 +f 2913/3454/18604 2914/3453/18605 2891/3428/18606 +f 2890/3429/18607 2891/3428/18608 2914/3453/18609 +f 2914/3453/18610 3358/3980/18611 2890/3429/18612 +f 2866/3404/18613 3358/3980/18614 2914/3453/18615 +f 2914/3453/18616 2915/3452/18617 2866/3404/18618 +f 3359/3982/18619 2890/3429/18620 3358/3980/18621 +f 3358/3980/18622 3360/3981/18623 3359/3982/18624 +f 2841/3378/18625 3360/3981/18626 3358/3980/18627 +f 3358/3980/18628 2866/3404/18629 2841/3378/18630 +f 2877/3415/18631 2887/3426/18632 3359/3982/18633 +f 3359/3982/18634 3361/3983/18635 2877/3415/18636 +f 2888/3425/18637 2890/3429/18638 3359/3982/18639 +f 3359/3982/18640 2887/3426/18641 2888/3425/18642 +f 3362/3984/18643 3361/3983/18644 3359/3982/18645 +f 3359/3982/18646 3360/3981/18647 3362/3984/18648 +f 2854/3392/18649 3361/3983/18650 3362/3984/18651 +f 3362/3984/18652 2851/3390/18653 2854/3392/18654 +f 2841/3378/18655 2839/3375/18656 3362/3984/18657 +f 3362/3984/18658 3360/3981/18659 2841/3378/18660 +f 2837/3377/18661 2851/3390/18662 3362/3984/18663 +f 3362/3984/18664 2839/3375/18665 2837/3377/18666 +f 2869/3407/18667 2877/3415/18668 3361/3983/18669 +f 3361/3983/18670 2854/3392/18671 2869/3407/18672 +f 2882/3419/18673 2880/3417/18674 2899/3438/18675 +f 2899/3438/18676 2900/3437/18677 2882/3419/18678 +f 2847/3384/18679 2873/3411/18680 2896/3435/18681 +f 2896/3435/18682 2846/3385/18683 2847/3384/18684 +f 2883/3424/18685 2884/3423/18686 2895/3433/18687 +f 2895/3433/18688 2892/3430/18689 2883/3424/18690 +f 2875/3414/18691 2885/3422/18692 2887/3426/18693 +f 2887/3426/18694 2877/3415/18695 2875/3414/18696 +f 2842/3383/18697 2856/3394/18698 2858/3397/18699 +f 2858/3397/18700 2847/3384/18701 2842/3383/18702 +f 3363/3985/18703 2797/3334/18704 2834/3372/18705 +f 2834/3372/18706 2855/3395/18707 3363/3985/18708 +f 3363/3985/18709 2775/3312/18710 2797/3334/18711 +f 2843/3382/18712 2806/3344/18713 3363/3985/18714 +f 3363/3985/18715 2855/3395/18716 2843/3382/18717 +f 2806/3344/18718 2774/3313/18719 2775/3312/18720 +f 2775/3312/18721 3363/3985/18722 2806/3344/18723 +f 2842/3383/18724 2843/3382/18725 2855/3395/18726 +f 2855/3395/18727 2856/3394/18728 2842/3383/18729 +f 2826/3365/18730 2862/3400/18731 2861/3398/18732 +f 2861/3398/18733 2825/3366/18734 2826/3365/18735 +f 2807/3345/18736 2844/3381/18737 2848/3387/18738 +f 2848/3387/18739 2809/3346/18740 2807/3345/18741 +f 2807/3345/18742 2806/3344/18743 2843/3382/18744 +f 2843/3382/18745 2844/3381/18746 2807/3345/18747 +f 2819/3360/18748 2820/3359/18749 2838/3376/18750 +f 2838/3376/18751 2836/3373/18752 2819/3360/18753 +f 2836/3373/18754 2823/3361/18755 2819/3360/18756 +f 2824/3362/18757 2823/3361/18758 2862/3400/18759 +f 2862/3400/18760 2826/3365/18761 2824/3362/18762 +f 2829/3369/18763 2828/3363/18764 2825/3366/18765 +f 2825/3366/18766 2861/3398/18767 2829/3369/18768 +f 2811/3349/18769 2824/3362/18770 2826/3365/18771 +f 2826/3365/18772 2827/3364/18773 2811/3349/18774 +f 2793/3331/18775 2794/3330/18776 2813/3352/18777 +f 2813/3352/18778 2764/3304/18779 2793/3331/18780 +f 2766/3302/18781 2812/3348/18782 2810/3350/18783 +f 2810/3350/18784 2765/3303/18785 2766/3302/18786 +f 2798/3338/18787 2805/3343/18788 2808/3347/18789 +f 2808/3347/18790 2802/3339/18791 2798/3338/18792 +f 2783/3320/18793 2800/3336/18794 2803/3342/18795 +f 2803/3342/18796 2782/3321/18797 2783/3320/18798 +f 2783/3320/18799 2785/3324/18800 2799/3337/18801 +f 2799/3337/18802 2800/3336/18803 2783/3320/18804 +f 2767/3305/18805 2758/3295/18806 2755/3293/18807 +f 2755/3293/18808 2762/3300/18809 2767/3305/18810 +f 3364/3986/18811 2772/3311/18812 2776/3315/18813 +f 2776/3315/18814 3132/3689/18815 3364/3986/18816 +f 2774/3313/18817 2773/3310/18818 2769/3308/18819 +f 2755/3293/18820 2754/3289/18821 2761/3301/18822 +f 2761/3301/18823 2762/3300/18824 2755/3293/18825 +f 3132/3689/18826 3070/3619/18827 3071/3618/18828 +f 3071/3618/18829 3364/3986/18830 3132/3689/18831 +f 2734/3275/18832 2735/3274/18833 2748/3287/18834 +f 2748/3287/18835 2749/3286/18836 2734/3275/18837 +f 3113/3667/18838 3115/3670/18839 3118/3674/18840 +f 3117/3672/18841 3091/3675/18842 2729/3673/18843 +f 2721/3256/18844 2715/3253/18845 2726/3263/18846 +f 2726/3263/18847 2727/3262/18848 2721/3256/18849 +f 3070/3619/18850 3365/3987/18851 2740/3281/18852 +f 2740/3281/18853 3068/3616/18854 3070/3619/18855 +f 3130/3688/18856 3365/3987/18857 3070/3619/18858 +f 3070/3619/18859 3132/3689/18860 3130/3688/18861 +f 3136/3693/18862 3365/3987/18863 3130/3688/18864 +f 3130/3688/18865 3134/3691/18866 3136/3693/18867 +f 2743/3278/18868 2740/3281/18869 3365/3987/18870 +f 2743/3278/18871 3365/3987/18872 3136/3693/18873 +f 2743/3278/18874 3136/3693/18875 2742/3279/18876 +f 3314/3901/18877 2954/3500/18878 2955/3499/18879 +f 2955/3499/18880 3313/3902/18881 3314/3901/18882 +f 3301/3885/18883 2982/3524/18884 2947/3489/18885 +f 2947/3489/18886 3295/3880/18887 3301/3885/18888 +f 3322/3912/18889 2981/3911/18890 3301/3888/18891 +f 3301/3888/18892 3323/3913/18893 3322/3912/18894 +f 3178/3739/18895 3007/3547/18896 3004/3550/18897 +f 3180/3742/18898 3181/3741/18899 3366/3988/18900 +f 3011/3553/18901 3366/3988/18902 3181/3741/18903 +f 3181/3741/18904 3186/3746/18905 3011/3553/18906 +f 3178/3739/18907 3366/3988/18908 3011/3553/18909 +f 3011/3553/18910 3007/3547/18911 3178/3739/18912 +f 3364/3986/18913 2771/3306/18914 2768/3309/18915 +f 2768/3309/18916 2772/3311/18917 3364/3986/18918 +f 3314/3901/18919 2961/3503/18920 2957/3497/18921 +f 2957/3497/18922 2954/3500/18923 3314/3901/18924 +f 2982/3524/18925 3301/3885/18926 2981/3525/18927 +f 3178/3739/18928 3180/3742/18929 3366/3988/18930 +f 2979/3519/18931 3367/3989/18932 2978/3520/18933 +f 3004/3550/18934 3005/3549/18935 3013/3555/18936 +f 3369/3990/18937 3368/3991/18938 3025/3567/18939 +f 3025/3567/18940 3024/3568/18941 3369/3990/18942 +f 3024/3568/18943 2779/3318/18944 3369/3990/18945 +f 3367/3989/18946 2979/3519/18947 3356/3979/18948 +f 3356/3979/18949 3357/3978/18950 3367/3989/18951 +f 3369/3990/18952 2780/3317/18953 3169/3727/18954 +f 3169/3727/18955 3368/3991/18956 3369/3990/18957 +f 3369/3990/18958 2779/3318/18959 2780/3317/18960 +f 3012/3556/18961 3214/3774/18962 3013/3555/18963 +f 2997/3541/18964 2998/3540/18965 3370/3992/18966 +f 2998/3540/18967 3191/3794/18968 3370/3992/18969 +f 3185/3744/18970 3370/3993/18971 3191/3751/18972 +f 3191/3751/18973 3184/3745/18974 3185/3744/18975 +f 3151/3707/18976 2786/3323/18977 2784/3319/18978 +f 2784/3319/18979 2781/3322/18980 3151/3707/18981 +f 3151/3707/18982 3141/3696/18983 3127/3684/18984 +f 3127/3684/18985 2786/3323/18986 3151/3707/18987 +f 3371/3994/18988 3118/3674/18989 2729/3673/18990 +f 2729/3673/18991 2727/3262/18992 3371/3994/18993 +f 3371/3994/18994 2727/3262/18995 3111/3665/18996 +f 3111/3665/18997 3110/3666/18998 3371/3994/18999 +f 3110/3666/19000 3113/3667/19001 3118/3674/19002 +f 3118/3674/19003 3371/3994/19004 3110/3666/19005 +f 3111/3665/19006 3104/3659/19007 3108/3663/19008 +f 2732/3269/19009 3107/3664/19010 3120/3676/19011 +f 3120/3676/19012 2731/3270/19013 2732/3269/19014 +f 3105/3661/19015 3107/3664/19016 3108/3663/19017 +f 3108/3663/19018 3104/3659/19019 3105/3661/19020 +f 3120/3676/19021 3107/3664/19022 3105/3661/19023 +f 2851/3390/19024 3163/3719/19025 2850/3391/19026 +f 3286/3863/19027 3288/3864/19028 3284/3859/19029 +f 3284/3859/19030 3285/3860/19031 3286/3863/19032 +f 2950/3494/19033 2912/3450/19034 2906/3447/19035 +f 2906/3447/19036 3288/3864/19037 2950/3494/19038 +f 3315/3900/19039 2978/3520/19040 2960/3504/19041 +f 2960/3504/19042 2961/3503/19043 3315/3900/19044 +f 2961/3503/19045 3314/3901/19046 3315/3900/19047 +f 3367/3989/19048 3357/3978/19049 3308/3895/19050 +f 3308/3895/19051 3311/3899/19052 3367/3989/19053 +f 2989/3531/19054 3307/3896/19055 3308/3895/19056 +f 3308/3895/19057 3357/3978/19058 2989/3531/19059 +f 2989/3531/19060 2987/3527/19061 2984/3530/19062 +f 2984/3530/19063 3307/3896/19064 2989/3531/19065 +f 3367/3989/19066 3311/3899/19067 2960/3504/19068 +f 2960/3504/19069 2978/3520/19070 3367/3989/19071 +f 3004/3550/19072 3013/3555/19073 3179/3738/19074 +f 3179/3738/19075 3013/3555/19076 3214/3774/19077 +f 3214/3774/19078 3217/3778/19079 3179/3738/19080 +f 2994/3538/19081 3183/3743/19082 3179/3738/19083 +f 3179/3738/19084 3217/3778/19085 2994/3538/19086 +f 2994/3538/19087 2995/3537/19088 3183/3743/19089 +f 2997/3541/19090 3370/3992/19091 3185/3744/19092 +f 3185/3744/19093 3182/3740/19094 2997/3541/19095 +f 2995/3537/19096 2997/3541/19097 3182/3740/19098 +f 3182/3740/19099 3183/3743/19100 2995/3537/19101 +f 2972/3515/19102 3293/3976/19103 3355/3971/19104 +f 3355/3971/19105 2971/3516/19106 2972/3515/19107 +f 3091/3646/19108 3094/3649/19109 2728/3266/19110 +f 2728/3266/19111 2729/3267/19112 3091/3646/19113 +f 2848/3387/19114 2849/3386/19115 3278/3854/19116 +f 3278/3854/19117 3279/3853/19118 2848/3387/19119 +f 2801/3340/19120 2802/3339/19121 2808/3347/19122 +f 2808/3347/19123 2804/3341/19124 2801/3340/19125 +f 2804/3341/19126 2808/3347/19127 2809/3346/19128 +f 2809/3346/19129 3281/3855/19130 2804/3341/19131 +f 3281/3855/19132 2809/3346/19133 2848/3387/19134 +f 2848/3387/19135 3279/3853/19136 3281/3855/19137 +f 3157/3714/19138 3156/3713/19139 2816/3354/19140 +f 2816/3354/19141 2817/3353/19142 3157/3714/19143 +f 3154/3712/19144 3161/3715/19145 2816/3354/19146 +f 2816/3354/19147 3156/3713/19148 3154/3712/19149 +f 3155/3711/19150 3160/3716/19151 3161/3715/19152 +f 3161/3715/19153 3154/3712/19154 3155/3711/19155 +f 2835/3374/19156 2862/3400/19157 2823/3361/19158 +f 2812/3348/19159 2822/3357/19160 2811/3349/19161 +f 3168/3724/19162 3165/3721/19163 3160/3716/19164 +f 3160/3716/19165 3155/3711/19166 3168/3724/19167 +f 3168/3724/19168 3166/3723/19169 3165/3721/19170 +f 3111/3665/19171 2727/3262/19172 3104/3659/19173 +f 2747/3282/19174 2744/3285/19175 3085/3637/19176 +f 3085/3637/19177 2750/3288/19178 2747/3282/19179 +f 2741/3280/19180 2742/3279/19181 3084/3638/19182 +f 3364/3986/19183 3071/3618/19184 3065/3613/19185 +f 3065/3613/19186 2771/3306/19187 3364/3986/19188 +f 3071/3618/19189 3069/3615/19190 3064/3611/19191 +f 3064/3611/19192 3065/3613/19193 3071/3618/19194 +f 3064/3611/19195 3069/3615/19196 3063/3612/19197 +f 2771/3306/19198 3065/3613/19199 3056/3605/19200 +f 2739/3277/19201 3112/3668/19202 3109/3662/19203 +f 2733/3268/19204 2730/3271/19205 2738/3276/19206 +f 3373/3997/19207 3372/3998/19208 3375/3995/19209 +f 3375/3995/19210 3374/3996/19211 3373/3997/19212 +f 3377/3999/19213 3376/4000/19214 3375/3995/19215 +f 3375/3995/19216 3372/3998/19217 3377/3999/19218 +f 3375/3995/19219 3376/4000/19220 3378/4001/19221 +f 3378/4001/19222 3374/3996/19223 3375/3995/19224 +f 3380/4002/19225 3379/4003/19226 3376/4000/19227 +f 3376/4000/19228 3377/3999/19229 3380/4002/19230 +f 3376/4000/19231 3381/4005/19232 3382/4004/19233 +f 3382/4004/19234 3378/4001/19235 3376/4000/19236 +f 3376/4000/19237 3379/4003/19238 3383/4006/19239 +f 3383/4006/19240 3381/4005/19241 3376/4000/19242 +f 3380/4002/19243 3384/4008/19244 3385/4007/19245 +f 3385/4007/19246 3379/4003/19247 3380/4002/19248 +f 3385/4007/19249 3384/4008/19250 3386/4009/19251 +f 3385/4007/19252 3386/4009/19253 3388/4010/19254 +f 3388/4010/19255 3387/4011/19256 3385/4007/19257 +f 3390/4014/19258 3389/4015/19259 3392/4012/19260 +f 3392/4012/19261 3391/4013/19262 3390/4014/19263 +f 3391/4013/19264 3393/4016/19265 3390/4014/19266 +f 3390/4014/19267 3394/4018/19268 3395/4017/19269 +f 3395/4017/19270 3389/4015/19271 3390/4014/19272 +f 3396/4020/19273 3394/4018/19274 3390/4014/19275 +f 3390/4014/19276 3397/4019/19277 3396/4020/19278 +f 3399/4023/19279 3398/4024/19280 3401/4021/19281 +f 3401/4021/19282 3400/4022/19283 3399/4023/19284 +f 3402/4025/19285 3391/4013/19286 3392/4012/19287 +f 3403/4026/19288 3402/4025/19289 3392/4012/19290 +f 3404/4029/19291 3393/4016/19292 3406/4027/19293 +f 3406/4027/19294 3405/4028/19295 3404/4029/19296 +f 3406/4027/19297 3393/4016/19298 3391/4013/19299 +f 3391/4013/19300 3402/4025/19301 3406/4027/19302 +f 3402/4025/19303 3403/4026/19304 3406/4027/19305 +f 3406/4027/19306 3403/4026/19307 3408/4030/19308 +f 3408/4030/19309 3407/4031/19310 3406/4027/19311 +f 3409/4032/19312 3407/4031/19313 3408/4030/19314 +f 3409/4032/19315 3408/4030/19316 3411/4033/19317 +f 3411/4033/19318 3410/4034/19319 3409/4032/19320 +f 3409/4032/19321 3413/4035/19322 3412/4036/19323 +f 3414/4037/19324 3407/4031/19325 3409/4032/19326 +f 3409/4032/19327 3412/4036/19328 3414/4037/19329 +f 3415/4038/19330 3386/4009/19331 3384/4008/19332 +f 3384/4008/19333 3400/4022/19334 3415/4038/19335 +f 3415/4038/19336 3416/4039/19337 3388/4010/19338 +f 3388/4010/19339 3386/4009/19340 3415/4038/19341 +f 3413/4035/19342 3409/4032/19343 3410/4034/19344 +f 3410/4034/19345 3417/4040/19346 3413/4035/19347 +f 3418/4041/19348 3412/4036/19349 3413/4035/19350 +f 3413/4035/19351 3417/4040/19352 3418/4041/19353 +f 3420/4044/19354 3419/4045/19355 3422/4042/19356 +f 3422/4042/19357 3421/4043/19358 3420/4044/19359 +f 3423/4047/19360 3419/4045/19361 3420/4044/19362 +f 3420/4044/19363 3424/4046/19364 3423/4047/19365 +f 3426/4049/19366 3425/4050/19367 3427/4048/19368 +f 3427/4048/19369 3422/4042/19370 3426/4049/19371 +f 3428/4053/19372 3426/4049/19373 3430/4051/19374 +f 3430/4051/19375 3429/4052/19376 3428/4053/19377 +f 3426/4049/19378 3428/4053/19379 3425/4050/19380 +f 3426/4049/19381 3422/4042/19382 3419/4045/19383 +f 3419/4045/19384 3431/4054/19385 3426/4049/19386 +f 3421/4043/19387 3433/4055/19388 3432/4056/19389 +f 3420/4044/19390 3421/4043/19391 3432/4056/19392 +f 3432/4056/19393 3424/4046/19394 3420/4044/19395 +f 3435/4057/19396 3434/4058/19397 3430/4051/19398 +f 3430/4051/19399 3426/4049/19400 3435/4057/19401 +f 3435/4057/19402 3426/4049/19403 3431/4054/19404 +f 3431/4054/19405 3436/4059/19406 3435/4057/19407 +f 3435/4057/19408 3437/4061/19409 3438/4060/19410 +f 3438/4060/19411 3434/4058/19412 3435/4057/19413 +f 3435/4057/19414 3436/4059/19415 3440/4062/19416 +f 3440/4062/19417 3439/4063/19418 3435/4057/19419 +f 3435/4057/19420 3439/4063/19421 3441/4064/19422 +f 3441/4064/19423 3437/4061/19424 3435/4057/19425 +f 3442/4066/19426 3423/4047/19427 3424/4046/19428 +f 3424/4046/19429 3443/4065/19430 3442/4066/19431 +f 3442/4066/19432 3444/4068/19433 3445/4067/19434 +f 3445/4067/19435 3423/4047/19436 3442/4066/19437 +f 3442/4066/19438 3443/4065/19439 3446/4069/19440 +f 3446/4069/19441 3444/4068/19442 3442/4066/19443 +f 3448/4072/19444 3447/4073/19445 3450/4070/19446 +f 3450/4070/19447 3449/4071/19448 3448/4072/19449 +f 3452/4074/19450 3451/4075/19451 3447/4073/19452 +f 3447/4073/19453 3448/4072/19454 3452/4074/19455 +f 3448/4072/19456 3449/4071/19457 3453/4076/19458 +f 3453/4076/19459 3452/4074/19460 3448/4072/19461 +f 3455/4077/19462 3454/4078/19463 3428/4053/19464 +f 3428/4053/19465 3429/4052/19466 3455/4077/19467 +f 3429/4052/19468 3430/4051/19469 3456/4079/19470 +f 3456/4079/19471 3455/4077/19472 3429/4052/19473 +f 3458/4081/19474 3457/4082/19475 3444/4068/19476 +f 3444/4068/19477 3459/4080/19478 3458/4081/19479 +f 3444/4068/19480 3457/4082/19481 3445/4067/19482 +f 3446/4069/19483 3461/4083/19484 3460/4084/19485 +f 3444/4068/19486 3446/4069/19487 3460/4084/19488 +f 3460/4084/19489 3459/4080/19490 3444/4068/19491 +f 3463/4085/19492 3462/4086/19493 3412/4036/19494 +f 3412/4036/19495 3418/4041/19496 3463/4085/19497 +f 3463/4085/19498 3418/4041/19499 3465/4087/19500 +f 3465/4087/19501 3464/4088/19502 3463/4085/19503 +f 3467/4089/19504 3466/4090/19505 3463/4085/19506 +f 3463/4085/19507 3464/4088/19508 3467/4089/19509 +f 3469/4092/19510 3468/4093/19511 3470/4091/19512 +f 3470/4091/19513 3462/4086/19514 3469/4092/19515 +f 3469/4092/19516 3471/4094/19517 3468/4093/19518 +f 3472/4097/19519 3466/4098/19520 3474/4095/19521 +f 3474/4095/19522 3473/4096/19523 3472/4097/19524 +f 3476/4101/19525 3475/4102/19526 3478/4099/19527 +f 3478/4099/19528 3477/4100/19529 3476/4101/19530 +f 3476/4101/19531 3479/4104/19532 3480/4103/19533 +f 3480/4103/19534 3475/4102/19535 3476/4101/19536 +f 3476/4101/19537 3477/4100/19538 3481/4105/19539 +f 3481/4105/19540 3479/4104/19541 3476/4101/19542 +f 3483/4108/19543 3482/4109/19544 3485/4106/19545 +f 3485/4106/19546 3484/4107/19547 3483/4108/19548 +f 3485/4106/19549 3486/4112/19550 3488/4110/19551 +f 3488/4110/19552 3487/4111/19553 3485/4106/19554 +f 3480/4103/19555 3489/4114/19556 3490/4113/19557 +f 3490/4113/19558 3475/4102/19559 3480/4103/19560 +f 3492/4117/19561 3491/4118/19562 3494/4115/19563 +f 3494/4115/19564 3493/4116/19565 3492/4117/19566 +f 3479/4104/19567 3481/4105/19568 3496/4119/19569 +f 3496/4119/19570 3495/4120/19571 3479/4104/19572 +f 3498/4123/19573 3497/4124/19574 3474/4121/19575 +f 3474/4121/19576 3499/4122/19577 3498/4123/19578 +f 3501/4125/19579 3500/4126/19580 3497/4124/19581 +f 3497/4124/19582 3498/4123/19583 3501/4125/19584 +f 3498/4123/19585 3499/4122/19586 3502/4127/19587 +f 3502/4127/19588 3501/4125/19589 3498/4123/19590 +f 3504/4129/19591 3503/4130/19592 3495/4120/19593 +f 3495/4120/19594 3505/4128/19595 3504/4129/19596 +f 3487/4111/19597 3489/4114/19598 3480/4103/19599 +f 3480/4103/19600 3503/4130/19601 3487/4111/19602 +f 3503/4130/19603 3506/4131/19604 3487/4111/19605 +f 3508/4134/19606 3507/4135/19607 3510/4132/19608 +f 3510/4132/19609 3509/4133/19610 3508/4134/19611 +f 3512/4136/19612 3511/4137/19613 3507/4135/19614 +f 3507/4135/19615 3508/4134/19616 3512/4136/19617 +f 3508/4134/19618 3509/4133/19619 3513/4138/19620 +f 3513/4138/19621 3512/4136/19622 3508/4134/19623 +f 3515/4141/19624 3514/4142/19625 3517/4139/19626 +f 3517/4139/19627 3516/4140/19628 3515/4141/19629 +f 3515/4141/19630 3516/4140/19631 3519/4143/19632 +f 3519/4143/19633 3518/4144/19634 3515/4141/19635 +f 3515/4141/19636 3518/4144/19637 3520/4145/19638 +f 3520/4145/19639 3514/4142/19640 3515/4141/19641 +f 3483/4108/19642 3484/4107/19643 3522/4146/19644 +f 3522/4146/19645 3521/4147/19646 3483/4108/19647 +f 3523/4149/19648 3521/4147/19649 3522/4146/19650 +f 3522/4146/19651 3524/4148/19652 3523/4149/19653 +f 3526/4152/19654 3525/4153/19655 3528/4150/19656 +f 3528/4150/19657 3527/4151/19658 3526/4152/19659 +f 3530/4154/19660 3529/4155/19661 3525/4153/19662 +f 3525/4153/19663 3526/4152/19664 3530/4154/19665 +f 3526/4152/19666 3527/4151/19667 3531/4156/19668 +f 3531/4156/19669 3530/4154/19670 3526/4152/19671 +f 3533/4159/19672 3532/4160/19673 3535/4157/19674 +f 3535/4157/19675 3534/4158/19676 3533/4159/19677 +f 3537/4161/19678 3536/4162/19679 3532/4160/19680 +f 3532/4160/19681 3533/4159/19682 3537/4161/19683 +f 3533/4159/19684 3534/4158/19685 3538/4163/19686 +f 3538/4163/19687 3537/4161/19688 3533/4159/19689 +f 3540/4166/19690 3539/4167/19691 3542/4164/19692 +f 3542/4164/19693 3541/4165/19694 3540/4166/19695 +f 3540/4166/19696 3541/4165/19697 3544/4168/19698 +f 3544/4168/19699 3543/4169/19700 3540/4166/19701 +f 3540/4166/19702 3535/4157/19703 3545/4170/19704 +f 3545/4170/19705 3539/4167/19706 3540/4166/19707 +f 3547/4173/19708 3546/4174/19709 3549/4171/19710 +f 3549/4171/19711 3548/4172/19712 3547/4173/19713 +f 3547/4173/19714 3548/4172/19715 3551/4175/19716 +f 3551/4175/19717 3550/4176/19718 3547/4173/19719 +f 3547/4179/19720 3552/4180/19721 3553/4177/19722 +f 3553/4177/19723 3546/4178/19724 3547/4179/19725 +f 3547/4183/19726 3554/4184/19727 3555/4181/19728 +f 3555/4181/19729 3552/4182/19730 3547/4183/19731 +f 3557/4187/19732 3556/4188/19733 3559/4185/19734 +f 3559/4185/19735 3558/4186/19736 3557/4187/19737 +f 3561/4189/19738 3560/4190/19739 3556/4188/19740 +f 3556/4188/19741 3557/4187/19742 3561/4189/19743 +f 3557/4187/19744 3558/4186/19745 3562/4191/19746 +f 3562/4191/19747 3561/4189/19748 3557/4187/19749 +f 3564/4194/19750 3563/4195/19751 3566/4192/19752 +f 3566/4192/19753 3565/4193/19754 3564/4194/19755 +f 3564/4194/19756 3565/4193/19757 3568/4196/19758 +f 3568/4196/19759 3567/4197/19760 3564/4194/19761 +f 3564/4194/19762 3569/4199/19763 3570/4198/19764 +f 3570/4198/19765 3563/4195/19766 3564/4194/19767 +f 3573/4200/19768 3572/4201/19769 3571/4202/19770 +f 3571/4202/19771 3574/4204/19772 3575/4203/19773 +f 3575/4203/19774 3573/4200/19775 3571/4202/19776 +f 3571/4202/19777 3572/4201/19778 3576/4205/19779 +f 3575/4203/19780 3574/4204/19781 3577/4206/19782 +f 3579/4207/19783 3578/4208/19784 3575/4203/19785 +f 3575/4203/19786 3577/4206/19787 3579/4207/19788 +f 3579/4211/19789 3580/4212/19790 3582/4209/19791 +f 3582/4209/19792 3581/4210/19793 3579/4211/19794 +f 3579/4207/19795 3577/4206/19796 3576/4205/19797 +f 3576/4205/19798 3583/4213/19799 3579/4207/19800 +f 3571/4202/19801 3576/4205/19802 3577/4206/19803 +f 3577/4206/19804 3574/4204/19805 3571/4202/19806 +f 3567/4216/19807 3568/4217/19808 3585/4214/19809 +f 3585/4214/19810 3584/4215/19811 3567/4216/19812 +f 3567/4216/19813 3584/4215/19814 3586/4218/19815 +f 3586/4218/19816 3564/4219/19817 3567/4216/19818 +f 3580/4220/19819 3588/4221/19820 3587/4222/19821 +f 3580/4212/19822 3587/4225/19823 3590/4223/19824 +f 3590/4223/19825 3589/4224/19826 3580/4212/19827 +f 3591/4227/19828 3590/4223/19829 3587/4225/19830 +f 3587/4225/19831 3592/4226/19832 3591/4227/19833 +f 3591/4227/19834 3592/4226/19835 3593/4228/19836 +f 3595/4229/19837 3594/4230/19838 3593/4231/19839 +f 3595/4229/19840 3593/4231/19841 3592/4232/19842 +f 3592/4232/19843 3596/4233/19844 3595/4229/19845 +f 3598/4235/19846 3597/4236/19847 3599/4234/19848 +f 3599/4234/19849 3551/4175/19850 3598/4235/19851 +f 3601/4237/19852 3600/4238/19853 3599/4234/19854 +f 3599/4234/19855 3597/4236/19856 3601/4237/19857 +f 3599/4234/19858 3602/4240/19859 3603/4239/19860 +f 3603/4239/19861 3550/4176/19862 3599/4234/19863 +f 3599/4234/19864 3600/4238/19865 3604/4241/19866 +f 3604/4241/19867 3602/4240/19868 3599/4234/19869 +f 3595/4229/19870 3596/4233/19871 3605/4242/19872 +f 3595/4229/19873 3605/4242/19874 3606/4243/19875 +f 3606/4243/19876 3594/4230/19877 3595/4229/19878 +f 3594/4230/19879 3606/4243/19880 3607/4244/19881 +f 3609/4247/19882 3608/4248/19883 3611/4245/19884 +f 3611/4245/19885 3610/4246/19886 3609/4247/19887 +f 3611/4245/19888 3608/4248/19889 3613/4249/19890 +f 3613/4249/19891 3612/4250/19892 3611/4245/19893 +f 3614/4251/19894 3610/4246/19895 3611/4245/19896 +f 3611/4245/19897 3612/4250/19898 3614/4251/19899 +f 3615/4254/19900 3585/4214/19901 3617/4252/19902 +f 3617/4252/19903 3616/4253/19904 3615/4254/19905 +f 3615/4254/19906 3616/4253/19907 3619/4255/19908 +f 3619/4255/19909 3618/4256/19910 3615/4254/19911 +f 3615/4254/19912 3620/4257/19913 3584/4215/19914 +f 3584/4215/19915 3585/4214/19916 3615/4254/19917 +f 3555/4181/19918 3621/4259/19919 3622/4258/19920 +f 3622/4258/19921 3552/4182/19922 3555/4181/19923 +f 3624/4262/19924 3623/4263/19925 3626/4260/19926 +f 3626/4260/19927 3625/4261/19928 3624/4262/19929 +f 3628/4264/19930 3627/4265/19931 3623/4263/19932 +f 3623/4263/19933 3624/4262/19934 3628/4264/19935 +f 3624/4262/19936 3625/4261/19937 3629/4266/19938 +f 3629/4266/19939 3628/4264/19940 3624/4262/19941 +f 3631/4269/19942 3630/4270/19943 3633/4267/19944 +f 3633/4267/19945 3632/4268/19946 3631/4269/19947 +f 3633/4267/19948 3634/4271/19949 3609/4247/19950 +f 3609/4247/19951 3610/4246/19952 3633/4267/19953 +f 3633/4267/19954 3630/4270/19955 3635/4272/19956 +f 3635/4272/19957 3634/4271/19958 3633/4267/19959 +f 3616/4253/19960 3617/4252/19961 3637/4273/19962 +f 3637/4273/19963 3636/4274/19964 3616/4253/19965 +f 3616/4253/19966 3638/4276/19967 3639/4275/19968 +f 3639/4275/19969 3619/4255/19970 3616/4253/19971 +f 3609/4247/19972 3640/4277/19973 3608/4248/19974 +f 3609/4247/19975 3641/4279/19976 3642/4278/19977 +f 3642/4278/19978 3640/4277/19979 3609/4247/19980 +f 3641/4279/19981 3643/4282/19982 3645/4280/19983 +f 3645/4280/19984 3644/4281/19985 3641/4279/19986 +f 3641/4279/19987 3644/4281/19988 3646/4283/19989 +f 3646/4283/19990 3642/4278/19991 3641/4279/19992 +f 3648/4286/19993 3647/4287/19994 3650/4284/19995 +f 3650/4284/19996 3649/4285/19997 3648/4286/19998 +f 3650/4284/19999 3647/4287/20000 3652/4288/20001 +f 3652/4288/20002 3651/4289/20003 3650/4284/20004 +f 3650/4284/20005 3651/4289/20006 3654/4290/20007 +f 3654/4290/20008 3653/4291/20009 3650/4284/20010 +f 3655/4293/20011 3620/4257/20012 3615/4254/20013 +f 3615/4254/20014 3656/4292/20015 3655/4293/20016 +f 3655/4293/20017 3656/4292/20018 3654/4290/20019 +f 3654/4290/20020 3651/4289/20021 3655/4293/20022 +f 3655/4293/20023 3651/4289/20024 3652/4288/20025 +f 3652/4288/20026 3620/4257/20027 3655/4293/20028 +f 3654/4290/20029 3656/4292/20030 3657/4294/20031 +f 3657/4294/20032 3653/4291/20033 3654/4290/20034 +f 3658/4297/20035 3613/4249/20036 3660/4295/20037 +f 3660/4295/20038 3659/4296/20039 3658/4297/20040 +f 3658/4297/20041 3661/4298/20042 3612/4250/20043 +f 3612/4250/20044 3613/4249/20045 3658/4297/20046 +f 3658/4297/20047 3659/4296/20048 3663/4299/20049 +f 3663/4299/20050 3662/4300/20051 3658/4297/20052 +f 3665/4303/20053 3664/4304/20054 3667/4301/20055 +f 3667/4301/20056 3666/4302/20057 3665/4303/20058 +f 3665/4303/20059 3668/4306/20060 3669/4305/20061 +f 3669/4305/20062 3664/4304/20063 3665/4303/20064 +f 3665/4303/20065 3666/4302/20066 3670/4307/20067 +f 3670/4307/20068 3668/4306/20069 3665/4303/20070 +f 3668/4306/20071 3670/4307/20072 3671/4308/20073 +f 3671/4308/20074 3669/4305/20075 3668/4306/20076 +f 3673/4311/20077 3672/4312/20078 3675/4309/20079 +f 3675/4309/20080 3674/4310/20081 3673/4311/20082 +f 3677/4314/20083 3676/4315/20084 3675/4309/20085 +f 3675/4309/20086 3678/4313/20087 3677/4314/20088 +f 3679/4316/20089 3674/4310/20090 3675/4309/20091 +f 3675/4309/20092 3676/4315/20093 3679/4316/20094 +f 3681/4318/20095 3680/4319/20096 3682/4317/20097 +f 3682/4317/20098 3666/4302/20099 3681/4318/20100 +f 3671/4308/20101 3683/4322/20102 3685/4320/20103 +f 3685/4320/20104 3684/4321/20105 3671/4308/20106 +f 3671/4308/20107 3670/4307/20108 3686/4323/20109 +f 3686/4323/20110 3683/4322/20111 3671/4308/20112 +f 3687/4325/20113 3669/4305/20114 3671/4308/20115 +f 3671/4308/20116 3688/4324/20117 3687/4325/20118 +f 3689/4326/20119 3688/4324/20120 3671/4308/20121 +f 3671/4308/20122 3684/4321/20123 3689/4326/20124 +f 3685/4320/20125 3690/4328/20126 3691/4327/20127 +f 3691/4327/20128 3684/4321/20129 3685/4320/20130 +f 3685/4320/20131 3683/4330/20132 3692/4329/20133 +f 3692/4329/20134 3690/4328/20135 3685/4320/20136 +f 3678/4313/20137 3675/4309/20138 3662/4300/20139 +f 3662/4300/20140 3693/4331/20141 3678/4313/20142 +f 3694/4332/20143 3677/4314/20144 3678/4313/20145 +f 3678/4313/20146 3693/4331/20147 3694/4332/20148 +f 3680/4335/20149 3681/4336/20150 3696/4333/20151 +f 3696/4333/20152 3695/4334/20153 3680/4335/20154 +f 3680/4335/20155 3695/4334/20156 3697/4337/20157 +f 3697/4337/20158 3682/4338/20159 3680/4335/20160 +f 3690/4328/20161 3692/4329/20162 3698/4339/20163 +f 3698/4339/20164 3691/4327/20165 3690/4328/20166 +f 3700/4342/20167 3699/4343/20168 3702/4340/20169 +f 3702/4340/20170 3701/4341/20171 3700/4342/20172 +f 3702/4340/20173 3699/4343/20174 3679/4316/20175 +f 3702/4340/20176 3703/4345/20177 3704/4344/20178 +f 3704/4344/20179 3701/4341/20180 3702/4340/20181 +f 3561/4189/20182 3705/4348/20183 3707/4346/20184 +f 3707/4346/20185 3706/4347/20186 3561/4189/20187 +f 3561/4189/20188 3562/4191/20189 3708/4349/20190 +f 3708/4349/20191 3705/4348/20192 3561/4189/20193 +f 3561/4189/20194 3706/4347/20195 3710/4350/20196 +f 3710/4350/20197 3709/4351/20198 3561/4189/20199 +f 3712/4352/20200 3711/4353/20201 3695/4334/20202 +f 3695/4334/20203 3696/4333/20204 3712/4352/20205 +f 3714/4356/20206 3713/4357/20207 3716/4354/20208 +f 3716/4354/20209 3715/4355/20210 3714/4356/20211 +f 3714/4356/20212 3715/4355/20213 3718/4358/20214 +f 3718/4358/20215 3717/4359/20216 3714/4356/20217 +f 3714/4356/20218 3717/4359/20219 3720/4360/20220 +f 3720/4360/20221 3719/4361/20222 3714/4356/20223 +f 3693/4331/20224 3721/4362/20225 3694/4332/20226 +f 3721/4362/20227 3722/4364/20228 3723/4363/20229 +f 3723/4363/20230 3694/4332/20231 3721/4362/20232 +f 3722/4364/20233 3724/4365/20234 3723/4363/20235 +f 3725/4367/20236 3703/4345/20237 3702/4340/20238 +f 3702/4340/20239 3726/4366/20240 3725/4367/20241 +f 3725/4367/20242 3726/4366/20243 3728/4368/20244 +f 3728/4368/20245 3727/4369/20246 3725/4367/20247 +f 3725/4367/20248 3727/4369/20249 3717/4359/20250 +f 3717/4359/20251 3718/4358/20252 3725/4367/20253 +f 3727/4369/20254 3728/4368/20255 3723/4363/20256 +f 3723/4363/20257 3724/4365/20258 3727/4369/20259 +f 3727/4369/20260 3724/4365/20261 3720/4360/20262 +f 3720/4360/20263 3717/4359/20264 3727/4369/20265 +f 3728/4368/20266 3677/4314/20267 3694/4332/20268 +f 3694/4332/20269 3723/4363/20270 3728/4368/20271 +f 3728/4368/20272 3726/4366/20273 3676/4315/20274 +f 3676/4315/20275 3677/4314/20276 3728/4368/20277 +f 3676/4315/20278 3726/4366/20279 3702/4340/20280 +f 3702/4340/20281 3679/4316/20282 3676/4315/20283 +f 3729/4370/20284 3674/4310/20285 3679/4316/20286 +f 3679/4316/20287 3699/4343/20288 3729/4370/20289 +f 3729/4370/20290 3699/4343/20291 3601/4371/20292 +f 3601/4371/20293 3730/4372/20294 3729/4370/20295 +f 3731/4374/20296 3729/4370/20297 3730/4372/20298 +f 3730/4372/20299 3732/4373/20300 3731/4374/20301 +f 3597/4236/20302 3733/4376/20303 3730/4375/20304 +f 3730/4375/20305 3601/4237/20306 3597/4236/20307 +f 3734/4377/20308 3732/4378/20309 3730/4375/20310 +f 3730/4375/20311 3733/4376/20312 3734/4377/20313 +f 3734/4377/20314 3733/4376/20315 3736/4379/20316 +f 3736/4379/20317 3735/4380/20318 3734/4377/20319 +f 3737/4382/20320 3734/4377/20321 3735/4380/20322 +f 3735/4380/20323 3738/4381/20324 3737/4382/20325 +f 3740/4383/20326 3739/4384/20327 3735/4380/20328 +f 3735/4380/20329 3736/4379/20330 3740/4383/20331 +f 3741/4385/20332 3738/4381/20333 3735/4380/20334 +f 3735/4380/20335 3739/4384/20336 3741/4385/20337 +f 3741/4385/20338 3739/4384/20339 3743/4386/20340 +f 3743/4386/20341 3742/4387/20342 3741/4385/20343 +f 3745/4388/20344 3744/4389/20345 3742/4387/20346 +f 3742/4387/20347 3743/4386/20348 3745/4388/20349 +f 3747/4390/20350 3746/4391/20351 3742/4387/20352 +f 3742/4387/20353 3744/4389/20354 3747/4390/20355 +f 3747/4390/20356 3744/4389/20357 3749/4392/20358 +f 3749/4392/20359 3748/4393/20360 3747/4390/20361 +f 3748/4393/20362 3749/4392/20363 3751/4394/20364 +f 3751/4394/20365 3750/4395/20366 3748/4393/20367 +f 3753/4396/20368 3752/4397/20369 3750/4395/20370 +f 3750/4395/20371 3751/4394/20372 3753/4396/20373 +f 3748/4393/20374 3754/4399/20375 3755/4398/20376 +f 3755/4398/20377 3747/4390/20378 3748/4393/20379 +f 3748/4393/20380 3750/4395/20381 3756/4400/20382 +f 3756/4400/20383 3754/4399/20384 3748/4393/20385 +f 3756/4400/20386 3750/4395/20387 3752/4397/20388 +f 3752/4397/20389 3757/4401/20390 3756/4400/20391 +f 3759/4403/20392 3758/4404/20393 3760/4402/20394 +f 3760/4402/20395 3746/4391/20396 3759/4403/20397 +f 3759/4403/20398 3746/4391/20399 3747/4390/20400 +f 3747/4390/20401 3755/4398/20402 3759/4403/20403 +f 3741/4385/20404 3742/4387/20405 3746/4391/20406 +f 3746/4391/20407 3760/4402/20408 3741/4385/20409 +f 3741/4385/20410 3760/4402/20411 3761/4405/20412 +f 3761/4405/20413 3738/4381/20414 3741/4385/20415 +f 3738/4381/20416 3761/4405/20417 3762/4406/20418 +f 3762/4406/20419 3737/4382/20420 3738/4381/20421 +f 3732/4378/20422 3734/4377/20423 3737/4382/20424 +f 3737/4382/20425 3763/4407/20426 3732/4378/20427 +f 3732/4373/20428 3763/4409/20429 3764/4408/20430 +f 3764/4408/20431 3731/4374/20432 3732/4373/20433 +f 3765/4410/20434 3673/4311/20435 3731/4374/20436 +f 3731/4374/20437 3764/4408/20438 3765/4410/20439 +f 3674/4310/20440 3729/4370/20441 3731/4374/20442 +f 3731/4374/20443 3673/4311/20444 3674/4310/20445 +f 3766/4411/20446 3672/4312/20447 3673/4311/20448 +f 3673/4311/20449 3765/4410/20450 3766/4411/20451 +f 3767/4412/20452 3661/4298/20453 3672/4312/20454 +f 3672/4312/20455 3766/4411/20456 3767/4412/20457 +f 3658/4297/20458 3675/4309/20459 3672/4312/20460 +f 3672/4312/20461 3661/4298/20462 3658/4297/20463 +f 3658/4297/20464 3662/4300/20465 3675/4309/20466 +f 3612/4250/20467 3661/4298/20468 3767/4412/20469 +f 3767/4412/20470 3614/4251/20471 3612/4250/20472 +f 3769/4413/20473 3768/4414/20474 3766/4411/20475 +f 3766/4411/20476 3765/4410/20477 3769/4413/20478 +f 3769/4413/20479 3765/4410/20480 3764/4408/20481 +f 3764/4408/20482 3770/4415/20483 3769/4413/20484 +f 3770/4415/20485 3764/4408/20486 3763/4409/20487 +f 3763/4409/20488 3771/4416/20489 3770/4415/20490 +f 3737/4382/20491 3762/4406/20492 3771/4417/20493 +f 3771/4417/20494 3763/4407/20495 3737/4382/20496 +f 3762/4406/20497 3772/4419/20498 3773/4418/20499 +f 3773/4418/20500 3771/4417/20501 3762/4406/20502 +f 3762/4406/20503 3761/4405/20504 3774/4420/20505 +f 3774/4420/20506 3772/4419/20507 3762/4406/20508 +f 3761/4405/20509 3760/4402/20510 3758/4404/20511 +f 3758/4404/20512 3774/4420/20513 3761/4405/20514 +f 3773/4421/20515 3775/4422/20516 3770/4415/20517 +f 3770/4415/20518 3771/4416/20519 3773/4421/20520 +f 3775/4422/20521 3776/4423/20522 3769/4413/20523 +f 3769/4413/20524 3770/4415/20525 3775/4422/20526 +f 3769/4413/20527 3776/4423/20528 3777/4424/20529 +f 3777/4424/20530 3768/4414/20531 3769/4413/20532 +f 3767/4412/20533 3766/4411/20534 3768/4414/20535 +f 3768/4414/20536 3778/4425/20537 3767/4412/20538 +f 3767/4412/20539 3778/4425/20540 3779/4426/20541 +f 3779/4426/20542 3614/4251/20543 3767/4412/20544 +f 3610/4246/20545 3614/4251/20546 3779/4426/20547 +f 3779/4426/20548 3632/4268/20549 3610/4246/20550 +f 3779/4426/20551 3780/4428/20552 3781/4427/20553 +f 3781/4427/20554 3632/4268/20555 3779/4426/20556 +f 3779/4426/20557 3778/4425/20558 3782/4429/20559 +f 3782/4429/20560 3780/4428/20561 3779/4426/20562 +f 3782/4429/20563 3778/4425/20564 3768/4414/20565 +f 3768/4414/20566 3777/4424/20567 3782/4429/20568 +f 3784/4430/20569 3783/4431/20570 3649/4285/20571 +f 3649/4285/20572 3631/4269/20573 3784/4430/20574 +f 3784/4430/20575 3631/4269/20576 3632/4268/20577 +f 3632/4268/20578 3781/4427/20579 3784/4430/20580 +f 3649/4285/20581 3783/4431/20582 3786/4432/20583 +f 3786/4432/20584 3785/4433/20585 3649/4285/20586 +f 3785/4433/20587 3648/4286/20588 3649/4285/20589 +f 3630/4270/20590 3631/4269/20591 3649/4285/20592 +f 3649/4285/20593 3650/4284/20594 3630/4270/20595 +f 3648/4286/20596 3785/4433/20597 3788/4434/20598 +f 3788/4434/20599 3787/4435/20600 3648/4286/20601 +f 3789/4436/20602 3647/4287/20603 3648/4286/20604 +f 3648/4286/20605 3787/4435/20606 3789/4436/20607 +f 3789/4436/20608 3787/4435/20609 3790/4437/20610 +f 3790/4437/20611 3569/4438/20612 3789/4436/20613 +f 3789/4436/20614 3569/4438/20615 3564/4219/20616 +f 3564/4219/20617 3586/4218/20618 3789/4436/20619 +f 3789/4436/20620 3586/4218/20621 3652/4288/20622 +f 3652/4288/20623 3647/4287/20624 3789/4436/20625 +f 3569/4199/20626 3790/4440/20627 3791/4439/20628 +f 3791/4439/20629 3570/4198/20630 3569/4199/20631 +f 3570/4198/20632 3791/4439/20633 3793/4441/20634 +f 3793/4441/20635 3792/4442/20636 3570/4198/20637 +f 3795/4443/20638 3794/4444/20639 3792/4442/20640 +f 3792/4442/20641 3793/4441/20642 3795/4443/20643 +f 3792/4442/20644 3794/4444/20645 3797/4445/20646 +f 3797/4445/20647 3796/4446/20648 3792/4442/20649 +f 3792/4442/20650 3796/4446/20651 3563/4195/20652 +f 3563/4195/20653 3570/4198/20654 3792/4442/20655 +f 3796/4446/20656 3797/4445/20657 3799/4447/20658 +f 3799/4447/20659 3798/4448/20660 3796/4446/20661 +f 3796/4446/20662 3798/4448/20663 3566/4192/20664 +f 3566/4192/20665 3563/4195/20666 3796/4446/20667 +f 3798/4448/20668 3799/4447/20669 3801/4449/20670 +f 3801/4449/20671 3800/4450/20672 3798/4448/20673 +f 3798/4448/20674 3800/4450/20675 3802/4451/20676 +f 3802/4451/20677 3566/4192/20678 3798/4448/20679 +f 3802/4451/20680 3800/4450/20681 3536/4162/20682 +f 3536/4162/20683 3537/4161/20684 3802/4451/20685 +f 3802/4451/20686 3537/4161/20687 3804/4452/20688 +f 3804/4452/20689 3803/4453/20690 3802/4451/20691 +f 3802/4451/20692 3803/4453/20693 3565/4193/20694 +f 3565/4193/20695 3566/4192/20696 3802/4451/20697 +f 3803/4453/20698 3804/4452/20699 3806/4454/20700 +f 3806/4454/20701 3805/4455/20702 3803/4453/20703 +f 3803/4453/20704 3805/4455/20705 3568/4196/20706 +f 3568/4196/20707 3565/4193/20708 3803/4453/20709 +f 3805/4456/20710 3806/4457/20711 3637/4273/20712 +f 3637/4273/20713 3617/4252/20714 3805/4456/20715 +f 3805/4456/20716 3617/4252/20717 3585/4214/20718 +f 3585/4214/20719 3568/4217/20720 3805/4456/20721 +f 3806/4457/20722 3807/4459/20723 3808/4458/20724 +f 3808/4458/20725 3637/4273/20726 3806/4457/20727 +f 3806/4454/20728 3804/4452/20729 3809/4460/20730 +f 3809/4460/20731 3807/4461/20732 3806/4454/20733 +f 3809/4460/20734 3810/4463/20735 3811/4462/20736 +f 3811/4462/20737 3807/4461/20738 3809/4460/20739 +f 3809/4460/20740 3804/4452/20741 3537/4161/20742 +f 3537/4161/20743 3538/4163/20744 3809/4460/20745 +f 3809/4460/20746 3538/4163/20747 3812/4464/20748 +f 3812/4464/20749 3810/4463/20750 3809/4460/20751 +f 3812/4464/20752 3813/4466/20753 3814/4465/20754 +f 3814/4465/20755 3810/4463/20756 3812/4464/20757 +f 3812/4464/20758 3538/4163/20759 3534/4158/20760 +f 3534/4158/20761 3815/4467/20762 3812/4464/20763 +f 3812/4464/20764 3815/4467/20765 3816/4468/20766 +f 3816/4468/20767 3813/4466/20768 3812/4464/20769 +f 3816/4468/20770 3817/4470/20771 3818/4469/20772 +f 3818/4469/20773 3813/4466/20774 3816/4468/20775 +f 3816/4468/20776 3815/4467/20777 3820/4471/20778 +f 3820/4471/20779 3819/4472/20780 3816/4468/20781 +f 3816/4468/20782 3819/4472/20783 3821/4473/20784 +f 3821/4473/20785 3817/4470/20786 3816/4468/20787 +f 3821/4473/20788 3572/4201/20789 3573/4200/20790 +f 3573/4200/20791 3817/4470/20792 3821/4473/20793 +f 3821/4473/20794 3819/4472/20795 3822/4474/20796 +f 3822/4474/20797 3583/4213/20798 3821/4473/20799 +f 3821/4473/20800 3583/4213/20801 3576/4205/20802 +f 3576/4205/20803 3572/4201/20804 3821/4473/20805 +f 3822/4474/20806 3819/4472/20807 3820/4471/20808 +f 3820/4471/20809 3823/4475/20810 3822/4474/20811 +f 3824/4476/20812 3605/4242/20813 3596/4233/20814 +f 3824/4476/20815 3825/4479/20816 3827/4477/20817 +f 3827/4477/20818 3826/4478/20819 3824/4476/20820 +f 3824/4476/20821 3826/4478/20822 3606/4243/20823 +f 3606/4243/20824 3605/4242/20825 3824/4476/20826 +f 3826/4478/20827 3827/4477/20828 3829/4480/20829 +f 3829/4480/20830 3828/4481/20831 3826/4478/20832 +f 3826/4478/20833 3828/4481/20834 3607/4244/20835 +f 3607/4244/20836 3606/4243/20837 3826/4478/20838 +f 3828/4481/20839 3829/4480/20840 3830/4482/20841 +f 3830/4482/20842 3590/4223/20843 3828/4481/20844 +f 3828/4481/20845 3590/4223/20846 3591/4227/20847 +f 3591/4227/20848 3607/4244/20849 3828/4481/20850 +f 3830/4482/20851 3829/4480/20852 3832/4483/20853 +f 3832/4483/20854 3831/4484/20855 3830/4482/20856 +f 3830/4482/20857 3831/4484/20858 3833/4485/20859 +f 3833/4485/20860 3589/4224/20861 3830/4482/20862 +f 3830/4482/20863 3589/4224/20864 3590/4223/20865 +f 3833/4485/20866 3831/4484/20867 3835/4486/20868 +f 3835/4486/20869 3834/4487/20870 3833/4485/20871 +f 3833/4485/20872 3834/4487/20873 3836/4488/20874 +f 3836/4488/20875 3582/4209/20876 3833/4485/20877 +f 3833/4485/20878 3582/4209/20879 3580/4212/20880 +f 3580/4212/20881 3589/4224/20882 3833/4485/20883 +f 3836/4488/20884 3834/4487/20885 3837/4489/20886 +f 3837/4489/20887 3808/4458/20888 3836/4488/20889 +f 3836/4488/20890 3808/4458/20891 3807/4459/20892 +f 3807/4459/20893 3811/4490/20894 3836/4488/20895 +f 3836/4488/20896 3811/4490/20897 3581/4210/20898 +f 3581/4210/20899 3582/4209/20900 3836/4488/20901 +f 3837/4489/20902 3834/4487/20903 3835/4486/20904 +f 3835/4486/20905 3838/4491/20906 3837/4489/20907 +f 3837/4489/20908 3838/4491/20909 3839/4492/20910 +f 3839/4492/20911 3636/4274/20912 3837/4489/20913 +f 3837/4489/20914 3636/4274/20915 3637/4273/20916 +f 3637/4273/20917 3808/4458/20918 3837/4489/20919 +f 3839/4492/20920 3838/4491/20921 3840/4493/20922 +f 3840/4493/20923 3625/4261/20924 3839/4492/20925 +f 3839/4492/20926 3625/4261/20927 3626/4260/20928 +f 3626/4260/20929 3638/4276/20930 3839/4492/20931 +f 3839/4492/20932 3638/4276/20933 3616/4253/20934 +f 3616/4253/20935 3636/4274/20936 3839/4492/20937 +f 3840/4493/20938 3841/4496/20939 3843/4494/20940 +f 3843/4494/20941 3842/4495/20942 3840/4493/20943 +f 3840/4493/20944 3842/4495/20945 3629/4266/20946 +f 3629/4266/20947 3625/4261/20948 3840/4493/20949 +f 3840/4493/20950 3838/4491/20951 3835/4486/20952 +f 3835/4486/20953 3841/4496/20954 3840/4493/20955 +f 3842/4495/20956 3843/4494/20957 3845/4497/20958 +f 3845/4497/20959 3844/4498/20960 3842/4495/20961 +f 3842/4495/20962 3844/4498/20963 3846/4499/20964 +f 3846/4499/20965 3629/4266/20966 3842/4495/20967 +f 3846/4499/20968 3847/4500/20969 3628/4264/20970 +f 3628/4264/20971 3629/4266/20972 3846/4499/20973 +f 3845/4497/20974 3843/4494/20975 3849/4501/20976 +f 3849/4501/20977 3848/4502/20978 3845/4497/20979 +f 3849/4501/20980 3827/4477/20981 3825/4479/20982 +f 3825/4479/20983 3848/4502/20984 3849/4501/20985 +f 3849/4501/20986 3843/4494/20987 3841/4496/20988 +f 3841/4496/20989 3832/4483/20990 3849/4501/20991 +f 3849/4501/20992 3832/4483/20993 3829/4480/20994 +f 3829/4480/20995 3827/4477/20996 3849/4501/20997 +f 3841/4496/20998 3835/4486/20999 3831/4484/21000 +f 3831/4484/21001 3832/4483/21002 3841/4496/21003 +f 3850/4504/21004 3823/4475/21005 3820/4471/21006 +f 3820/4471/21007 3851/4503/21008 3850/4504/21009 +f 3850/4504/21010 3851/4503/21011 3540/4166/21012 +f 3540/4166/21013 3543/4169/21014 3850/4504/21015 +f 3851/4503/21016 3820/4471/21017 3815/4467/21018 +f 3815/4467/21019 3534/4158/21020 3851/4503/21021 +f 3851/4503/21022 3534/4158/21023 3535/4157/21024 +f 3535/4157/21025 3540/4166/21026 3851/4503/21027 +f 3818/4469/21028 3575/4203/21029 3578/4208/21030 +f 3818/4469/21031 3578/4208/21032 3814/4465/21033 +f 3814/4465/21034 3813/4466/21035 3818/4469/21036 +f 3818/4469/21037 3817/4470/21038 3573/4200/21039 +f 3573/4200/21040 3575/4203/21041 3818/4469/21042 +f 3814/4465/21043 3578/4208/21044 3579/4207/21045 +f 3579/4207/21046 3581/4505/21047 3814/4465/21048 +f 3814/4465/21049 3581/4505/21050 3811/4462/21051 +f 3811/4462/21052 3810/4463/21053 3814/4465/21054 +f 3799/4447/21055 3797/4445/21056 3518/4144/21057 +f 3518/4144/21058 3519/4143/21059 3799/4447/21060 +f 3799/4447/21061 3519/4143/21062 3530/4154/21063 +f 3530/4154/21064 3801/4449/21065 3799/4447/21066 +f 3797/4445/21067 3794/4444/21068 3520/4145/21069 +f 3520/4145/21070 3518/4144/21071 3797/4445/21072 +f 3520/4145/21073 3794/4444/21074 3494/4115/21075 +f 3494/4115/21076 3491/4118/21077 3520/4145/21078 +f 3791/4439/21079 3852/4507/21080 3853/4506/21081 +f 3853/4506/21082 3793/4441/21083 3791/4439/21084 +f 3852/4507/21085 3791/4439/21086 3855/4508/21087 +f 3855/4508/21088 3854/4509/21089 3852/4507/21090 +f 3857/4512/21091 3856/4513/21092 3859/4510/21093 +f 3859/4510/21094 3858/4511/21095 3857/4512/21096 +f 3857/4512/21097 3860/4515/21098 3861/4514/21099 +f 3861/4514/21100 3856/4513/21101 3857/4512/21102 +f 3862/4517/21103 3856/4513/21104 3861/4514/21105 +f 3861/4514/21106 3863/4516/21107 3862/4517/21108 +f 3861/4514/21109 3860/4515/21110 3757/4401/21111 +f 3757/4401/21112 3752/4397/21113 3861/4514/21114 +f 3859/4510/21115 3856/4513/21116 3862/4517/21117 +f 3862/4517/21118 3506/4131/21119 3859/4510/21120 +f 3863/4516/21121 3861/4514/21122 3752/4397/21123 +f 3752/4397/21124 3753/4396/21125 3863/4516/21126 +f 3864/4519/21127 3753/4396/21128 3751/4394/21129 +f 3751/4394/21130 3865/4518/21131 3864/4519/21132 +f 3866/4520/21133 3865/4518/21134 3751/4394/21135 +f 3751/4394/21136 3749/4392/21137 3866/4520/21138 +f 3866/4520/21139 3749/4392/21140 3744/4389/21141 +f 3744/4389/21142 3745/4388/21143 3866/4520/21144 +f 3460/4084/21145 3864/4519/21146 3865/4518/21147 +f 3865/4518/21148 3459/4080/21149 3460/4084/21150 +f 3458/4081/21151 3459/4080/21152 3865/4518/21153 +f 3865/4518/21154 3866/4520/21155 3458/4081/21156 +f 3458/4081/21157 3866/4520/21158 3745/4388/21159 +f 3745/4388/21160 3867/4521/21161 3458/4081/21162 +f 3868/4522/21163 3457/4082/21164 3458/4081/21165 +f 3458/4081/21166 3867/4521/21167 3868/4522/21168 +f 3868/4522/21169 3867/4521/21170 3870/4523/21171 +f 3870/4523/21172 3869/4524/21173 3868/4522/21174 +f 3871/4525/21175 3440/4062/21176 3868/4522/21177 +f 3868/4522/21178 3869/4524/21179 3871/4525/21180 +f 3436/4059/21181 3457/4082/21182 3868/4522/21183 +f 3868/4522/21184 3440/4062/21185 3436/4059/21186 +f 3445/4067/21187 3457/4082/21188 3436/4059/21189 +f 3436/4059/21190 3431/4054/21191 3445/4067/21192 +f 3423/4047/21193 3445/4067/21194 3431/4054/21195 +f 3431/4054/21196 3419/4045/21197 3423/4047/21198 +f 3873/4526/21199 3872/4527/21200 3871/4525/21201 +f 3871/4525/21202 3869/4524/21203 3873/4526/21204 +f 3871/4525/21205 3872/4527/21206 3875/4528/21207 +f 3875/4528/21208 3874/4529/21209 3871/4525/21210 +f 3871/4525/21211 3874/4529/21212 3439/4063/21213 +f 3439/4063/21214 3440/4062/21215 3871/4525/21216 +f 3874/4529/21217 3875/4528/21218 3877/4530/21219 +f 3877/4530/21220 3876/4531/21221 3874/4529/21222 +f 3874/4529/21223 3876/4531/21224 3441/4064/21225 +f 3441/4064/21226 3439/4063/21227 3874/4529/21228 +f 3876/4531/21229 3877/4530/21230 3467/4532/21231 +f 3467/4532/21232 3878/4533/21233 3876/4531/21234 +f 3876/4531/21235 3878/4533/21236 3879/4534/21237 +f 3879/4534/21238 3441/4064/21239 3876/4531/21240 +f 3416/4039/21241 3415/4038/21242 3879/4535/21243 +f 3879/4535/21244 3878/4536/21245 3416/4039/21246 +f 3879/4534/21247 3880/4537/21248 3437/4061/21249 +f 3437/4061/21250 3441/4064/21251 3879/4534/21252 +f 3880/4537/21253 3881/4538/21254 3438/4060/21255 +f 3438/4060/21256 3437/4061/21257 3880/4537/21258 +f 3881/4538/21259 3882/4540/21260 3883/4539/21261 +f 3883/4539/21262 3438/4060/21263 3881/4538/21264 +f 3883/4539/21265 3882/4540/21266 3885/4541/21267 +f 3885/4541/21268 3884/4542/21269 3883/4539/21270 +f 3883/4539/21271 3884/4542/21272 3887/4543/21273 +f 3887/4543/21274 3886/4544/21275 3883/4539/21276 +f 3883/4539/21277 3886/4544/21278 3434/4058/21279 +f 3434/4058/21280 3438/4060/21281 3883/4539/21282 +f 3886/4544/21283 3887/4543/21284 3888/4545/21285 +f 3888/4545/21286 3456/4079/21287 3886/4544/21288 +f 3886/4544/21289 3456/4079/21290 3430/4051/21291 +f 3430/4051/21292 3434/4058/21293 3886/4544/21294 +f 3888/4545/21295 3887/4543/21296 3890/4546/21297 +f 3890/4546/21298 3889/4547/21299 3888/4545/21300 +f 3888/4545/21301 3889/4547/21302 3892/4548/21303 +f 3892/4548/21304 3891/4549/21305 3888/4545/21306 +f 3888/4545/21307 3891/4549/21308 3455/4077/21309 +f 3455/4077/21310 3456/4079/21311 3888/4545/21312 +f 3891/4549/21313 3892/4548/21314 3562/4191/21315 +f 3562/4191/21316 3558/4186/21317 3891/4549/21318 +f 3891/4549/21319 3558/4186/21320 3893/4550/21321 +f 3893/4550/21322 3455/4077/21323 3891/4549/21324 +f 3893/4550/21325 3513/4138/21326 3454/4078/21327 +f 3454/4078/21328 3455/4077/21329 3893/4550/21330 +f 3893/4550/21331 3558/4186/21332 3559/4185/21333 +f 3559/4185/21334 3894/4551/21335 3893/4550/21336 +f 3893/4550/21337 3894/4551/21338 3512/4136/21339 +f 3512/4136/21340 3513/4138/21341 3893/4550/21342 +f 3894/4551/21343 3895/4553/21344 3896/4552/21345 +f 3896/4552/21346 3512/4136/21347 3894/4551/21348 +f 3894/4551/21349 3559/4185/21350 3897/4554/21351 +f 3897/4554/21352 3895/4553/21353 3894/4551/21354 +f 3897/4554/21355 3898/4556/21356 3899/4555/21357 +f 3899/4555/21358 3895/4553/21359 3897/4554/21360 +f 3897/4554/21361 3559/4185/21362 3556/4188/21363 +f 3556/4188/21364 3900/4557/21365 3897/4554/21366 +f 3897/4554/21367 3900/4557/21368 3901/4558/21369 +f 3901/4558/21370 3898/4556/21371 3897/4554/21372 +f 3901/4558/21373 3902/4560/21374 3903/4559/21375 +f 3903/4559/21376 3898/4556/21377 3901/4558/21378 +f 3901/4558/21379 3900/4557/21380 3905/4561/21381 +f 3905/4561/21382 3904/4562/21383 3901/4558/21384 +f 3901/4558/21385 3904/4562/21386 3906/4563/21387 +f 3906/4563/21388 3902/4560/21389 3901/4558/21390 +f 3906/4563/21391 3907/4565/21392 3908/4564/21393 +f 3908/4564/21394 3902/4560/21395 3906/4563/21396 +f 3906/4563/21397 3904/4562/21398 3910/4566/21399 +f 3910/4566/21400 3909/4567/21401 3906/4563/21402 +f 3906/4563/21403 3909/4567/21404 3911/4568/21405 +f 3911/4568/21406 3907/4565/21407 3906/4563/21408 +f 3911/4568/21409 3626/4260/21410 3623/4263/21411 +f 3623/4263/21412 3907/4565/21413 3911/4568/21414 +f 3911/4568/21415 3909/4567/21416 3912/4569/21417 +f 3912/4569/21418 3639/4275/21419 3911/4568/21420 +f 3911/4568/21421 3639/4275/21422 3638/4276/21423 +f 3638/4276/21424 3626/4260/21425 3911/4568/21426 +f 3912/4569/21427 3909/4567/21428 3910/4566/21429 +f 3910/4566/21430 3913/4570/21431 3912/4569/21432 +f 3912/4569/21433 3913/4570/21434 3643/4282/21435 +f 3643/4282/21436 3914/4571/21437 3912/4569/21438 +f 3912/4569/21439 3914/4571/21440 3619/4255/21441 +f 3619/4255/21442 3639/4275/21443 3912/4569/21444 +f 3914/4571/21445 3643/4282/21446 3641/4279/21447 +f 3641/4279/21448 3915/4572/21449 3914/4571/21450 +f 3914/4571/21451 3915/4572/21452 3618/4256/21453 +f 3618/4256/21454 3619/4255/21455 3914/4571/21456 +f 3913/4570/21457 3910/4566/21458 3917/4573/21459 +f 3917/4573/21460 3916/4574/21461 3913/4570/21462 +f 3913/4570/21463 3916/4574/21464 3645/4280/21465 +f 3645/4280/21466 3643/4282/21467 3913/4570/21468 +f 3916/4574/21469 3917/4573/21470 3919/4575/21471 +f 3919/4575/21472 3918/4576/21473 3916/4574/21474 +f 3918/4576/21475 3921/4577/21476 3920/4578/21477 +f 3916/4574/21478 3918/4576/21479 3920/4578/21480 +f 3920/4578/21481 3645/4280/21482 3916/4574/21483 +f 3920/4578/21484 3921/4577/21485 3922/4579/21486 +f 3920/4578/21487 3922/4579/21488 3924/4580/21489 +f 3924/4580/21490 3923/4581/21491 3920/4578/21492 +f 3920/4578/21493 3923/4581/21494 3644/4281/21495 +f 3644/4281/21496 3645/4280/21497 3920/4578/21498 +f 3923/4581/21499 3924/4580/21500 3926/4582/21501 +f 3926/4582/21502 3925/4583/21503 3923/4581/21504 +f 3923/4581/21505 3925/4583/21506 3646/4283/21507 +f 3646/4283/21508 3644/4281/21509 3923/4581/21510 +f 3925/4583/21511 3926/4582/21512 3928/4584/21513 +f 3928/4584/21514 3927/4585/21515 3925/4583/21516 +f 3925/4583/21517 3927/4585/21518 3929/4586/21519 +f 3929/4586/21520 3646/4283/21521 3925/4583/21522 +f 3929/4586/21523 3930/4587/21524 3642/4278/21525 +f 3642/4278/21526 3646/4283/21527 3929/4586/21528 +f 3929/4586/21529 3927/4585/21530 3714/4356/21531 +f 3714/4356/21532 3719/4361/21533 3929/4586/21534 +f 3929/4586/21535 3719/4361/21536 3931/4588/21537 +f 3931/4588/21538 3930/4587/21539 3929/4586/21540 +f 3931/4588/21541 3659/4296/21542 3660/4295/21543 +f 3660/4295/21544 3930/4587/21545 3931/4588/21546 +f 3931/4588/21547 3719/4361/21548 3720/4360/21549 +f 3720/4360/21550 3932/4589/21551 3931/4588/21552 +f 3931/4588/21553 3932/4589/21554 3663/4299/21555 +f 3663/4299/21556 3659/4296/21557 3931/4588/21558 +f 3932/4589/21559 3720/4360/21560 3724/4365/21561 +f 3724/4365/21562 3722/4364/21563 3932/4589/21564 +f 3932/4589/21565 3722/4364/21566 3721/4362/21567 +f 3721/4362/21568 3663/4299/21569 3932/4589/21570 +f 3930/4587/21571 3660/4295/21572 3640/4277/21573 +f 3640/4277/21574 3642/4278/21575 3930/4587/21576 +f 3927/4585/21577 3928/4584/21578 3713/4357/21579 +f 3713/4357/21580 3714/4356/21581 3927/4585/21582 +f 3933/4590/21583 3921/4577/21584 3918/4576/21585 +f 3933/4590/21586 3918/4576/21587 3935/4591/21588 +f 3935/4591/21589 3934/4592/21590 3933/4590/21591 +f 3934/4592/21592 3935/4591/21593 3937/4593/21594 +f 3937/4593/21595 3936/4594/21596 3934/4592/21597 +f 3937/4593/21598 3935/4591/21599 3939/4595/21600 +f 3939/4595/21601 3938/4596/21602 3937/4593/21603 +f 3937/4593/21604 3938/4596/21605 3718/4358/21606 +f 3718/4358/21607 3715/4355/21608 3937/4593/21609 +f 3937/4593/21610 3715/4355/21611 3716/4354/21612 +f 3716/4354/21613 3936/4594/21614 3937/4593/21615 +f 3938/4596/21616 3939/4595/21617 3709/4351/21618 +f 3709/4351/21619 3710/4350/21620 3938/4596/21621 +f 3938/4596/21622 3710/4350/21623 3725/4367/21624 +f 3725/4367/21625 3718/4358/21626 3938/4596/21627 +f 3939/4595/21628 3918/4576/21629 3919/4575/21630 +f 3919/4575/21631 3709/4351/21632 3939/4595/21633 +f 3939/4595/21634 3935/4591/21635 3918/4576/21636 +f 3919/4575/21637 3917/4573/21638 3905/4561/21639 +f 3905/4561/21640 3560/4190/21641 3919/4575/21642 +f 3919/4575/21643 3560/4190/21644 3561/4189/21645 +f 3561/4189/21646 3709/4351/21647 3919/4575/21648 +f 3917/4573/21649 3910/4566/21650 3904/4562/21651 +f 3904/4562/21652 3905/4561/21653 3917/4573/21654 +f 3908/4564/21655 3627/4265/21656 3542/4164/21657 +f 3542/4164/21658 3940/4597/21659 3908/4564/21660 +f 3908/4564/21661 3940/4597/21662 3903/4559/21663 +f 3903/4559/21664 3902/4560/21665 3908/4564/21666 +f 3908/4564/21667 3907/4565/21668 3623/4263/21669 +f 3623/4263/21670 3627/4265/21671 3908/4564/21672 +f 3940/4597/21673 3542/4164/21674 3539/4167/21675 +f 3539/4167/21676 3941/4598/21677 3940/4597/21678 +f 3940/4597/21679 3941/4598/21680 3942/4599/21681 +f 3942/4599/21682 3903/4559/21683 3940/4597/21684 +f 3942/4599/21685 3941/4598/21686 3944/4600/21687 +f 3944/4600/21688 3943/4601/21689 3942/4599/21690 +f 3942/4599/21691 3943/4601/21692 3945/4602/21693 +f 3945/4602/21694 3899/4555/21695 3942/4599/21696 +f 3942/4599/21697 3899/4555/21698 3898/4556/21699 +f 3898/4556/21700 3903/4559/21701 3942/4599/21702 +f 3945/4602/21703 3943/4601/21704 3947/4603/21705 +f 3947/4603/21706 3946/4604/21707 3945/4602/21708 +f 3945/4602/21709 3946/4604/21710 3948/4605/21711 +f 3948/4605/21712 3896/4552/21713 3945/4602/21714 +f 3945/4602/21715 3896/4552/21716 3895/4553/21717 +f 3895/4553/21718 3899/4555/21719 3945/4602/21720 +f 3948/4605/21721 3946/4604/21722 3950/4606/21723 +f 3950/4606/21724 3949/4607/21725 3948/4605/21726 +f 3948/4605/21727 3949/4607/21728 3488/4110/21729 +f 3488/4110/21730 3511/4137/21731 3948/4605/21732 +f 3948/4605/21733 3511/4137/21734 3512/4136/21735 +f 3512/4136/21736 3896/4552/21737 3948/4605/21738 +f 3949/4607/21739 3950/4606/21740 3490/4113/21741 +f 3490/4113/21742 3489/4114/21743 3949/4607/21744 +f 3949/4607/21745 3489/4114/21746 3487/4111/21747 +f 3487/4111/21748 3488/4110/21749 3949/4607/21750 +f 3950/4606/21751 3951/4609/21752 3952/4608/21753 +f 3952/4608/21754 3490/4113/21755 3950/4606/21756 +f 3950/4606/21757 3946/4604/21758 3947/4603/21759 +f 3947/4603/21760 3951/4609/21761 3950/4606/21762 +f 3952/4608/21763 3953/4610/21764 3492/4117/21765 +f 3492/4117/21766 3478/4099/21767 3952/4608/21768 +f 3952/4608/21769 3478/4099/21770 3475/4102/21771 +f 3475/4102/21772 3490/4113/21773 3952/4608/21774 +f 3952/4608/21775 3951/4609/21776 3528/4150/21777 +f 3528/4150/21778 3953/4610/21779 3952/4608/21780 +f 3953/4610/21781 3954/4611/21782 3491/4118/21783 +f 3491/4118/21784 3492/4117/21785 3953/4610/21786 +f 3953/4610/21787 3528/4150/21788 3525/4153/21789 +f 3525/4153/21790 3954/4611/21791 3953/4610/21792 +f 3951/4609/21793 3947/4603/21794 3527/4151/21795 +f 3527/4151/21796 3528/4150/21797 3951/4609/21798 +f 3947/4603/21799 3943/4601/21800 3944/4600/21801 +f 3944/4600/21802 3527/4151/21803 3947/4603/21804 +f 3944/4600/21805 3545/4170/21806 3531/4156/21807 +f 3531/4156/21808 3527/4151/21809 3944/4600/21810 +f 3944/4600/21811 3941/4598/21812 3539/4167/21813 +f 3539/4167/21814 3545/4170/21815 3944/4600/21816 +f 3905/4561/21817 3900/4557/21818 3556/4188/21819 +f 3556/4188/21820 3560/4190/21821 3905/4561/21822 +f 3892/4548/21823 3889/4547/21824 3956/4612/21825 +f 3956/4612/21826 3955/4613/21827 3892/4548/21828 +f 3892/4548/21829 3955/4613/21830 3708/4349/21831 +f 3708/4349/21832 3562/4191/21833 3892/4548/21834 +f 3955/4613/21835 3956/4612/21836 3958/4614/21837 +f 3958/4614/21838 3957/4615/21839 3955/4613/21840 +f 3955/4613/21841 3957/4615/21842 3959/4616/21843 +f 3959/4616/21844 3708/4349/21845 3955/4613/21846 +f 3959/4616/21847 3957/4615/21848 3961/4617/21849 +f 3961/4617/21850 3960/4618/21851 3959/4616/21852 +f 3959/4616/21853 3960/4618/21854 3963/4619/21855 +f 3963/4619/21856 3962/4620/21857 3959/4616/21858 +f 3959/4616/21859 3962/4620/21860 3705/4348/21861 +f 3705/4348/21862 3708/4349/21863 3959/4616/21864 +f 3962/4620/21865 3963/4619/21866 3965/4621/21867 +f 3965/4621/21868 3964/4622/21869 3962/4620/21870 +f 3962/4620/21871 3964/4622/21872 3707/4346/21873 +f 3707/4346/21874 3705/4348/21875 3962/4620/21876 +f 3964/4622/21877 3965/4621/21878 3967/4623/21879 +f 3967/4623/21880 3966/4624/21881 3964/4622/21882 +f 3964/4622/21883 3966/4624/21884 3704/4344/21885 +f 3704/4344/21886 3707/4346/21887 3964/4622/21888 +f 3966/4624/21889 3967/4623/21890 3969/4625/21891 +f 3969/4625/21892 3968/4626/21893 3966/4624/21894 +f 3966/4624/21895 3968/4626/21896 3701/4341/21897 +f 3701/4341/21898 3704/4344/21899 3966/4624/21900 +f 3968/4626/21901 3969/4625/21902 3971/4627/21903 +f 3971/4627/21904 3970/4628/21905 3968/4626/21906 +f 3968/4626/21907 3970/4628/21908 3700/4342/21909 +f 3700/4342/21910 3701/4341/21911 3968/4626/21912 +f 3970/4628/21913 3971/4627/21914 3972/4629/21915 +f 3972/4629/21916 3604/4630/21917 3970/4628/21918 +f 3970/4628/21919 3604/4630/21920 3600/4631/21921 +f 3600/4631/21922 3700/4342/21923 3970/4628/21924 +f 3972/4634/21925 3971/4635/21926 3974/4632/21927 +f 3974/4632/21928 3973/4633/21929 3972/4634/21930 +f 3972/4634/21931 3973/4633/21932 3976/4636/21933 +f 3976/4636/21934 3975/4637/21935 3972/4634/21936 +f 3972/4638/21937 3975/4639/21938 3602/4240/21939 +f 3602/4240/21940 3604/4241/21941 3972/4638/21942 +f 3975/4637/21943 3976/4636/21944 3978/4640/21945 +f 3978/4640/21946 3977/4641/21947 3975/4637/21948 +f 3975/4639/21949 3977/4642/21950 3603/4239/21951 +f 3603/4239/21952 3602/4240/21953 3975/4639/21954 +f 3976/4636/21955 3973/4633/21956 3980/4643/21957 +f 3980/4643/21958 3979/4644/21959 3976/4636/21960 +f 3976/4636/21961 3979/4644/21962 3981/4645/21963 +f 3981/4645/21964 3978/4640/21965 3976/4636/21966 +f 3981/4645/21967 3979/4644/21968 3983/4646/21969 +f 3983/4646/21970 3982/4647/21971 3981/4645/21972 +f 3981/4650/21973 3982/4651/21974 3985/4648/21975 +f 3985/4648/21976 3984/4649/21977 3981/4650/21978 +f 3981/4650/21979 3984/4649/21980 3554/4184/21981 +f 3554/4184/21982 3978/4652/21983 3981/4650/21984 +f 3984/4649/21985 3985/4648/21986 3987/4653/21987 +f 3987/4653/21988 3986/4654/21989 3984/4649/21990 +f 3984/4649/21991 3986/4654/21992 3555/4181/21993 +f 3555/4181/21994 3554/4184/21995 3984/4649/21996 +f 3987/4653/21997 3985/4648/21998 3989/4655/21999 +f 3989/4655/22000 3988/4656/22001 3987/4653/22002 +f 3987/4653/22003 3988/4656/22004 3991/4657/22005 +f 3991/4657/22006 3990/4658/22007 3987/4653/22008 +f 3987/4653/22009 3990/4658/22010 3555/4181/22011 +f 3555/4181/22012 3986/4654/22013 3987/4653/22014 +f 3990/4658/22015 3991/4657/22016 3993/4659/22017 +f 3993/4659/22018 3992/4660/22019 3990/4658/22020 +f 3990/4658/22021 3992/4660/22022 3621/4259/22023 +f 3621/4259/22024 3555/4181/22025 3990/4658/22026 +f 3992/4660/22027 3993/4659/22028 3995/4661/22029 +f 3995/4661/22030 3994/4662/22031 3992/4660/22032 +f 3992/4660/22033 3994/4662/22034 3996/4663/22035 +f 3996/4663/22036 3621/4259/22037 3992/4660/22038 +f 3996/4663/22039 3997/4664/22040 3622/4258/22041 +f 3622/4258/22042 3621/4259/22043 3996/4663/22044 +f 3996/4663/22045 3994/4662/22046 3999/4665/22047 +f 3999/4665/22048 3998/4666/22049 3996/4663/22050 +f 3996/4663/22051 3998/4666/22052 4000/4667/22053 +f 4000/4667/22054 3997/4664/22055 3996/4663/22056 +f 4000/4669/22057 3960/4618/22058 3961/4617/22059 +f 3961/4617/22060 3997/4668/22061 4000/4669/22062 +f 4000/4667/22063 3998/4666/22064 4002/4670/22065 +f 4002/4670/22066 4001/4671/22067 4000/4667/22068 +f 4000/4669/22069 4001/4672/22070 3963/4619/22071 +f 3963/4619/22072 3960/4618/22073 4000/4669/22074 +f 4001/4671/22075 4002/4670/22076 4004/4673/22077 +f 4004/4673/22078 4003/4674/22079 4001/4671/22080 +f 4001/4672/22081 4003/4675/22082 3965/4621/22083 +f 3965/4621/22084 3963/4619/22085 4001/4672/22086 +f 4003/4674/22087 4004/4673/22088 4006/4676/22089 +f 4006/4676/22090 4005/4677/22091 4003/4674/22092 +f 4003/4675/22093 4005/4678/22094 3967/4623/22095 +f 3967/4623/22096 3965/4621/22097 4003/4675/22098 +f 4005/4677/22099 4006/4676/22100 4008/4679/22101 +f 4008/4679/22102 4007/4680/22103 4005/4677/22104 +f 4005/4678/22105 4007/4681/22106 3969/4625/22107 +f 3969/4625/22108 3967/4623/22109 4005/4678/22110 +f 4007/4680/22111 4008/4679/22112 4009/4682/22113 +f 4009/4682/22114 3974/4632/22115 4007/4680/22116 +f 4007/4681/22117 3974/4683/22118 3971/4627/22119 +f 3971/4627/22120 3969/4625/22121 4007/4681/22122 +f 4009/4682/22123 4008/4679/22124 4011/4684/22125 +f 4011/4684/22126 4010/4685/22127 4009/4682/22128 +f 4009/4682/22129 4010/4685/22130 4012/4686/22131 +f 4012/4686/22132 3980/4643/22133 4009/4682/22134 +f 4009/4682/22135 3980/4643/22136 3973/4633/22137 +f 3973/4633/22138 3974/4632/22139 4009/4682/22140 +f 4012/4686/22141 4010/4685/22142 4014/4687/22143 +f 4014/4687/22144 4013/4688/22145 4012/4686/22146 +f 4012/4686/22147 4013/4688/22148 4015/4689/22149 +f 4015/4689/22150 3983/4646/22151 4012/4686/22152 +f 4012/4686/22153 3983/4646/22154 3979/4644/22155 +f 3979/4644/22156 3980/4643/22157 4012/4686/22158 +f 4015/4689/22159 4013/4688/22160 4017/4690/22161 +f 4017/4690/22162 4016/4691/22163 4015/4689/22164 +f 4015/4689/22165 4016/4691/22166 4019/4692/22167 +f 4019/4692/22168 4018/4693/22169 4015/4689/22170 +f 4015/4689/22171 4018/4693/22172 3982/4647/22173 +f 3982/4647/22174 3983/4646/22175 4015/4689/22176 +f 4018/4695/22177 4019/4696/22178 4020/4694/22179 +f 4020/4694/22180 3989/4655/22181 4018/4695/22182 +f 4018/4695/22183 3989/4655/22184 3985/4648/22185 +f 3985/4648/22186 3982/4651/22187 4018/4695/22188 +f 4020/4694/22189 4019/4696/22190 4022/4697/22191 +f 4022/4697/22192 4021/4698/22193 4020/4694/22194 +f 4020/4694/22195 4021/4698/22196 4024/4699/22197 +f 4024/4699/22198 4023/4700/22199 4020/4694/22200 +f 4020/4694/22201 4023/4700/22202 3988/4656/22203 +f 3988/4656/22204 3989/4655/22205 4020/4694/22206 +f 4023/4700/22207 4024/4699/22208 4026/4701/22209 +f 4026/4701/22210 4025/4702/22211 4023/4700/22212 +f 4023/4700/22213 4025/4702/22214 3991/4657/22215 +f 3991/4657/22216 3988/4656/22217 4023/4700/22218 +f 4025/4702/22219 4026/4701/22220 3687/4325/22221 +f 3687/4325/22222 4027/4703/22223 4025/4702/22224 +f 4025/4702/22225 4027/4703/22226 3993/4659/22227 +f 3993/4659/22228 3991/4657/22229 4025/4702/22230 +f 4027/4703/22231 3687/4325/22232 3688/4324/22233 +f 3688/4324/22234 4028/4704/22235 4027/4703/22236 +f 4027/4703/22237 4028/4704/22238 3995/4661/22239 +f 3995/4661/22240 3993/4659/22241 4027/4703/22242 +f 4028/4704/22243 3688/4324/22244 3689/4326/22245 +f 3689/4326/22246 4029/4705/22247 4028/4704/22248 +f 4028/4704/22249 4029/4705/22250 4030/4706/22251 +f 4030/4706/22252 3995/4661/22253 4028/4704/22254 +f 4030/4706/22255 3999/4665/22256 3994/4662/22257 +f 3994/4662/22258 3995/4661/22259 4030/4706/22260 +f 4030/4706/22261 4029/4705/22262 4032/4707/22263 +f 4032/4707/22264 4031/4708/22265 4030/4706/22266 +f 4030/4706/22267 4031/4708/22268 4033/4709/22269 +f 4033/4709/22270 3999/4665/22271 4030/4706/22272 +f 4033/4709/22273 4002/4670/22274 3998/4666/22275 +f 3998/4666/22276 3999/4665/22277 4033/4709/22278 +f 4033/4709/22279 4031/4708/22280 4035/4710/22281 +f 4035/4710/22282 4034/4711/22283 4033/4709/22284 +f 4033/4709/22285 4034/4711/22286 4004/4673/22287 +f 4004/4673/22288 4002/4670/22289 4033/4709/22290 +f 4034/4711/22291 4035/4710/22292 4037/4712/22293 +f 4037/4712/22294 4036/4713/22295 4034/4711/22296 +f 4034/4711/22297 4036/4713/22298 4006/4676/22299 +f 4006/4676/22300 4004/4673/22301 4034/4711/22302 +f 4036/4713/22303 4037/4712/22304 4038/4714/22305 +f 4038/4714/22306 4011/4684/22307 4036/4713/22308 +f 4036/4713/22309 4011/4684/22310 4008/4679/22311 +f 4008/4679/22312 4006/4676/22313 4036/4713/22314 +f 4038/4714/22315 4037/4712/22316 4040/4715/22317 +f 4040/4715/22318 4039/4716/22319 4038/4714/22320 +f 4038/4714/22321 4039/4716/22322 4041/4717/22323 +f 4041/4717/22324 4014/4687/22325 4038/4714/22326 +f 4038/4714/22327 4014/4687/22328 4010/4685/22329 +f 4010/4685/22330 4011/4684/22331 4038/4714/22332 +f 4041/4717/22333 4039/4716/22334 4043/4718/22335 +f 4043/4718/22336 4042/4719/22337 4041/4717/22338 +f 4041/4717/22339 4042/4719/22340 4044/4720/22341 +f 4044/4720/22342 4017/4690/22343 4041/4717/22344 +f 4041/4717/22345 4017/4690/22346 4013/4688/22347 +f 4013/4688/22348 4014/4687/22349 4041/4717/22350 +f 3711/4353/22351 3712/4352/22352 4044/4720/22353 +f 4044/4720/22354 4042/4719/22355 3711/4353/22356 +f 3696/4333/22357 4045/4721/22358 4044/4720/22359 +f 4044/4720/22360 3712/4352/22361 3696/4333/22362 +f 4044/4720/22363 4045/4721/22364 4016/4691/22365 +f 4016/4691/22366 4017/4690/22367 4044/4720/22368 +f 3681/4336/22369 4022/4722/22370 4045/4721/22371 +f 4045/4721/22372 3696/4333/22373 3681/4336/22374 +f 4045/4721/22375 4022/4722/22376 4019/4692/22377 +f 4019/4692/22378 4016/4691/22379 4045/4721/22380 +f 4021/4698/22381 4022/4697/22382 3681/4318/22383 +f 3681/4318/22384 4046/4723/22385 4021/4698/22386 +f 4021/4698/22387 4046/4723/22388 3667/4301/22389 +f 3667/4301/22390 4024/4699/22391 4021/4698/22392 +f 4024/4699/22393 3667/4301/22394 3664/4304/22395 +f 3664/4304/22396 4026/4701/22397 4024/4699/22398 +f 4026/4701/22399 3664/4304/22400 3669/4305/22401 +f 3669/4305/22402 3687/4325/22403 4026/4701/22404 +f 3711/4353/22405 4042/4719/22406 4043/4718/22407 +f 4043/4718/22408 4047/4724/22409 3711/4353/22410 +f 4049/4725/22411 4048/4726/22412 4047/4724/22413 +f 4047/4724/22414 4043/4718/22415 4049/4725/22416 +f 4047/4724/22417 4048/4726/22418 4050/4727/22419 +f 4050/4727/22420 3697/4337/22421 4047/4724/22422 +f 4047/4724/22423 3697/4337/22424 3695/4334/22425 +f 3695/4334/22426 3711/4353/22427 4047/4724/22428 +f 4050/4727/22429 4048/4726/22430 3698/4339/22431 +f 3698/4339/22432 3692/4329/22433 4050/4727/22434 +f 4050/4727/22435 3692/4329/22436 3683/4330/22437 +f 3683/4330/22438 3686/4728/22439 4050/4727/22440 +f 4050/4727/22441 3686/4728/22442 3682/4338/22443 +f 3682/4338/22444 3697/4337/22445 4050/4727/22446 +f 4051/4729/22447 3698/4339/22448 4048/4726/22449 +f 4048/4726/22450 4049/4725/22451 4051/4729/22452 +f 3691/4327/22453 3698/4339/22454 4051/4729/22455 +f 4051/4729/22456 4052/4730/22457 3691/4327/22458 +f 4049/4725/22459 4040/4715/22460 4053/4731/22461 +f 4053/4731/22462 4051/4729/22463 4049/4725/22464 +f 4049/4725/22465 4043/4718/22466 4039/4716/22467 +f 4039/4716/22468 4040/4715/22469 4049/4725/22470 +f 4053/4731/22471 4035/4710/22472 4031/4708/22473 +f 4031/4708/22474 4032/4707/22475 4053/4731/22476 +f 4053/4731/22477 4032/4707/22478 4052/4730/22479 +f 4052/4730/22480 4051/4729/22481 4053/4731/22482 +f 4053/4731/22483 4040/4715/22484 4037/4712/22485 +f 4037/4712/22486 4035/4710/22487 4053/4731/22488 +f 3691/4327/22489 4052/4730/22490 3689/4326/22491 +f 3689/4326/22492 3684/4321/22493 3691/4327/22494 +f 4052/4730/22495 4032/4707/22496 4029/4705/22497 +f 4029/4705/22498 3689/4326/22499 4052/4730/22500 +f 3997/4668/22501 3961/4617/22502 4054/4732/22503 +f 4054/4732/22504 3622/4733/22505 3997/4668/22506 +f 4054/4732/22507 3958/4614/22508 3502/4127/22509 +f 3502/4127/22510 3553/4177/22511 4054/4732/22512 +f 4054/4732/22513 3553/4177/22514 3552/4180/22515 +f 3552/4180/22516 3622/4733/22517 4054/4732/22518 +f 4054/4732/22519 3961/4617/22520 3957/4615/22521 +f 3957/4615/22522 3958/4614/22523 4054/4732/22524 +f 3958/4614/22525 3956/4612/22526 3501/4125/22527 +f 3501/4125/22528 3502/4127/22529 3958/4614/22530 +f 3956/4612/22531 3889/4547/22532 3890/4546/22533 +f 3890/4546/22534 3501/4125/22535 3956/4612/22536 +f 3890/4546/22537 3887/4543/22538 3884/4542/22539 +f 3884/4542/22540 4055/4734/22541 3890/4546/22542 +f 3890/4546/22543 4055/4734/22544 3500/4126/22545 +f 3500/4126/22546 3501/4125/22547 3890/4546/22548 +f 4055/4734/22549 3884/4542/22550 3885/4541/22551 +f 3885/4541/22552 4056/4735/22553 4055/4734/22554 +f 4055/4734/22555 4056/4735/22556 4057/4736/22557 +f 4057/4736/22558 3500/4126/22559 4055/4734/22560 +f 4059/4739/22561 4058/4740/22562 4057/4737/22563 +f 4057/4737/22564 4060/4738/22565 4059/4739/22566 +f 4057/4736/22567 4058/4741/22568 3497/4124/22569 +f 3497/4124/22570 3500/4126/22571 4057/4736/22572 +f 3471/4094/22573 3473/4742/22574 4058/4740/22575 +f 4058/4740/22576 4059/4739/22577 3471/4094/22578 +f 4058/4741/22579 3473/4743/22580 3474/4121/22581 +f 3474/4121/22582 3497/4124/22583 4058/4741/22584 +f 3472/4744/22585 3473/4742/22586 3471/4094/22587 +f 3471/4094/22588 3469/4092/22589 3472/4744/22590 +f 3469/4092/22591 3462/4086/22592 3472/4744/22593 +f 4059/4739/22594 4060/4738/22595 4062/4745/22596 +f 4062/4745/22597 4061/4746/22598 4059/4739/22599 +f 4059/4739/22600 4061/4746/22601 3468/4093/22602 +f 3468/4093/22603 3471/4094/22604 4059/4739/22605 +f 4061/4746/22606 4062/4745/22607 4064/4747/22608 +f 4064/4747/22609 4063/4748/22610 4061/4746/22611 +f 4061/4746/22612 4063/4748/22613 3470/4091/22614 +f 3470/4091/22615 3468/4093/22616 4061/4746/22617 +f 4063/4748/22618 4064/4747/22619 3404/4029/22620 +f 3404/4029/22621 3405/4028/22622 4063/4748/22623 +f 4063/4748/22624 3405/4028/22625 3414/4037/22626 +f 3414/4037/22627 3470/4091/22628 4063/4748/22629 +f 3406/4027/22630 3407/4031/22631 3414/4037/22632 +f 3414/4037/22633 3405/4028/22634 3406/4027/22635 +f 3414/4037/22636 3412/4036/22637 3462/4086/22638 +f 3462/4086/22639 3470/4091/22640 3414/4037/22641 +f 3390/4014/22642 3393/4016/22643 3404/4029/22644 +f 3404/4029/22645 3397/4019/22646 3390/4014/22647 +f 3404/4029/22648 4064/4747/22649 4065/4749/22650 +f 4065/4749/22651 3397/4019/22652 3404/4029/22653 +f 4065/4749/22654 4066/4750/22655 3396/4020/22656 +f 3396/4020/22657 3397/4019/22658 4065/4749/22659 +f 4065/4749/22660 4064/4747/22661 4062/4745/22662 +f 4062/4745/22663 4067/4751/22664 4065/4749/22665 +f 4065/4749/22666 4067/4751/22667 4068/4752/22668 +f 4068/4752/22669 4066/4750/22670 4065/4749/22671 +f 4068/4752/22672 4069/4754/22673 4070/4753/22674 +f 4070/4753/22675 4066/4750/22676 4068/4752/22677 +f 4068/4752/22678 4067/4751/22679 4072/4755/22680 +f 4072/4755/22681 4071/4756/22682 4068/4752/22683 +f 4068/4752/22684 4071/4756/22685 4073/4757/22686 +f 4073/4757/22687 4069/4754/22688 4068/4752/22689 +f 4073/4757/22690 4074/4759/22691 4075/4758/22692 +f 4075/4758/22693 4069/4754/22694 4073/4757/22695 +f 3885/4760/22696 3882/4761/22697 4073/4757/22698 +f 4073/4757/22699 4071/4756/22700 3885/4760/22701 +f 3881/4762/22702 4074/4759/22703 4073/4757/22704 +f 4073/4757/22705 3882/4761/22706 3881/4762/22707 +f 4076/4764/22708 4074/4759/22709 3881/4762/22710 +f 3881/4762/22711 3880/4763/22712 4076/4764/22713 +f 4076/4764/22714 3415/4038/22715 3400/4022/22716 +f 3400/4022/22717 3401/4021/22718 4076/4764/22719 +f 4076/4764/22720 3401/4021/22721 4075/4758/22722 +f 4075/4758/22723 4074/4759/22724 4076/4764/22725 +f 3415/4038/22726 4076/4764/22727 3880/4763/22728 +f 3880/4763/22729 3879/4535/22730 3415/4038/22731 +f 3885/4760/22732 4071/4756/22733 4072/4755/22734 +f 4072/4755/22735 4056/4765/22736 3885/4760/22737 +f 4057/4737/22738 4056/4765/22739 4072/4755/22740 +f 4072/4755/22741 4060/4738/22742 4057/4737/22743 +f 4075/4758/22744 3401/4021/22745 3398/4024/22746 +f 3398/4024/22747 4077/4766/22748 4075/4758/22749 +f 4075/4758/22750 4077/4766/22751 4070/4753/22752 +f 4070/4753/22753 4069/4754/22754 4075/4758/22755 +f 4077/4766/22756 3398/4024/22757 3377/3999/22758 +f 3377/3999/22759 3372/3998/22760 4077/4766/22761 +f 4077/4766/22762 3372/3998/22763 3373/3997/22764 +f 3373/3997/22765 4070/4753/22766 4077/4766/22767 +f 3396/4020/22768 3373/3997/22769 3374/3996/22770 +f 3374/3996/22771 3394/4018/22772 3396/4020/22773 +f 3373/3997/22774 3396/4020/22775 4066/4750/22776 +f 4066/4750/22777 4070/4753/22778 3373/3997/22779 +f 3377/3999/22780 3398/4024/22781 3399/4023/22782 +f 3399/4023/22783 3380/4002/22784 3377/3999/22785 +f 4072/4755/22786 4067/4751/22787 4062/4745/22788 +f 4062/4745/22789 4060/4738/22790 4072/4755/22791 +f 3416/4039/22792 3878/4536/22793 3467/4767/22794 +f 3467/4767/22795 3464/4768/22796 3416/4039/22797 +f 3877/4530/22798 3875/4528/22799 3548/4172/22800 +f 3548/4172/22801 3549/4171/22802 3877/4530/22803 +f 3877/4530/22804 3549/4171/22805 4078/4769/22806 +f 4078/4769/22807 3467/4532/22808 3877/4530/22809 +f 3875/4528/22810 3872/4527/22811 3551/4175/22812 +f 3551/4175/22813 3548/4172/22814 3875/4528/22815 +f 3551/4175/22816 3872/4527/22817 3873/4526/22818 +f 3873/4526/22819 3598/4235/22820 3551/4175/22821 +f 3740/4383/22822 3736/4379/22823 3598/4235/22824 +f 3598/4235/22825 3873/4526/22826 3740/4383/22827 +f 3740/4383/22828 3873/4526/22829 3869/4524/22830 +f 3869/4524/22831 3870/4523/22832 3740/4383/22833 +f 3597/4236/22834 3598/4235/22835 3736/4379/22836 +f 3736/4379/22837 3733/4376/22838 3597/4236/22839 +f 3743/4386/22840 3739/4384/22841 3740/4383/22842 +f 3740/4383/22843 3870/4523/22844 3743/4386/22845 +f 3743/4386/22846 3870/4523/22847 3867/4521/22848 +f 3867/4521/22849 3745/4388/22850 3743/4386/22851 +f 3600/4631/22852 3601/4371/22853 3699/4343/22854 +f 3699/4343/22855 3700/4342/22856 3600/4631/22857 +f 3523/4149/22858 3864/4519/22859 3460/4084/22860 +f 3460/4084/22861 3521/4147/22862 3523/4149/22863 +f 3863/4516/22864 3753/4396/22865 3864/4519/22866 +f 3864/4519/22867 3523/4149/22868 3863/4516/22869 +f 3863/4516/22870 3523/4149/22871 3524/4148/22872 +f 3524/4148/22873 3862/4517/22874 3863/4516/22875 +f 3485/4106/22876 3487/4111/22877 3506/4131/22878 +f 3506/4131/22879 3484/4107/22880 3485/4106/22881 +f 3504/4129/22882 3505/4128/22883 4080/4770/22884 +f 4080/4770/22885 4079/4771/22886 3504/4129/22887 +f 3504/4129/22888 4079/4771/22889 3858/4511/22890 +f 3858/4511/22891 3859/4510/22892 3504/4129/22893 +f 4082/4773/22894 4081/4774/22895 4083/4772/22896 +f 4083/4772/22897 3795/4443/22898 4082/4773/22899 +f 4082/4773/22900 3795/4443/22901 3793/4441/22902 +f 3793/4441/22903 3853/4506/22904 4082/4773/22905 +f 4083/4772/22906 4081/4774/22907 4085/4775/22908 +f 4085/4775/22909 4084/4776/22910 4083/4772/22911 +f 3493/4116/22912 3494/4115/22913 4083/4772/22914 +f 4083/4772/22915 4084/4776/22916 3493/4116/22917 +f 3493/4116/22918 4084/4776/22919 4086/4777/22920 +f 4086/4777/22921 3496/4119/22922 3493/4116/22923 +f 3496/4119/22924 4086/4777/22925 3505/4128/22926 +f 3505/4128/22927 3495/4120/22928 3496/4119/22929 +f 4086/4777/22930 4084/4776/22931 4085/4775/22932 +f 4085/4775/22933 4087/4778/22934 4086/4777/22935 +f 4086/4777/22936 4087/4778/22937 4080/4770/22938 +f 4080/4770/22939 3505/4128/22940 4086/4777/22941 +f 4088/4780/22942 3854/4781/22943 3855/4779/22944 +f 3855/4779/22945 3788/4434/22946 4088/4780/22947 +f 4088/4780/22948 3788/4434/22949 3785/4433/22950 +f 3785/4433/22951 3786/4432/22952 4088/4780/22953 +f 3855/4508/22954 3791/4439/22955 3790/4440/22956 +f 3855/4779/22957 3790/4437/22958 3787/4435/22959 +f 3787/4435/22960 3788/4434/22961 3855/4779/22962 +f 3725/4367/22963 3710/4350/22964 3706/4347/22965 +f 3706/4347/22966 3703/4345/22967 3725/4367/22968 +f 3721/4362/22969 3693/4331/22970 3662/4300/22971 +f 3662/4300/22972 3663/4299/22973 3721/4362/22974 +f 3706/4347/22975 3707/4346/22976 3704/4344/22977 +f 3704/4344/22978 3703/4345/22979 3706/4347/22980 +f 3686/4323/22981 3670/4307/22982 3666/4302/22983 +f 3666/4302/22984 3682/4317/22985 3686/4323/22986 +f 3660/4295/22987 3613/4249/22988 3608/4248/22989 +f 3608/4248/22990 3640/4277/22991 3660/4295/22992 +f 3656/4292/22993 3615/4254/22994 3618/4256/22995 +f 3618/4256/22996 3657/4294/22997 3656/4292/22998 +f 3915/4572/22999 3641/4279/23000 3609/4247/23001 +f 3609/4247/23002 3634/4271/23003 3915/4572/23004 +f 3652/4288/23005 3586/4218/23006 3584/4215/23007 +f 3584/4215/23008 3620/4257/23009 3652/4288/23010 +f 3650/4284/23011 3653/4291/23012 3635/4272/23013 +f 3635/4272/23014 3630/4270/23015 3650/4284/23016 +f 3627/4265/23017 3628/4264/23018 3541/4165/23019 +f 3541/4165/23020 3542/4164/23021 3627/4265/23022 +f 3628/4264/23023 3847/4500/23024 3544/4168/23025 +f 3544/4168/23026 3541/4165/23027 3628/4264/23028 +f 3607/4244/23029 3591/4227/23030 3593/4228/23031 +f 3593/4228/23032 3594/4230/23033 3607/4244/23034 +f 3596/4233/23035 3592/4232/23036 3587/4222/23037 +f 3587/4222/23038 3824/4476/23039 3596/4233/23040 +f 3553/4177/23041 3502/4127/23042 3499/4122/23043 +f 3499/4122/23044 3546/4178/23045 3553/4177/23046 +f 3549/4171/23047 3546/4174/23048 3499/4782/23049 +f 3499/4782/23050 4078/4769/23051 3549/4171/23052 +f 3545/4170/23053 3535/4157/23054 3532/4160/23055 +f 3532/4160/23056 3531/4156/23057 3545/4170/23058 +f 3529/4155/23059 3516/4140/23060 3517/4139/23061 +f 3529/4155/23062 3517/4139/23063 3954/4611/23064 +f 3954/4611/23065 3525/4153/23066 3529/4155/23067 +f 3529/4155/23068 3530/4154/23069 3519/4143/23070 +f 3519/4143/23071 3516/4140/23072 3529/4155/23073 +f 3450/4070/23074 3482/4109/23075 3483/4108/23076 +f 3483/4108/23077 3461/4083/23078 3450/4070/23079 +f 3450/4070/23080 3461/4083/23081 4089/4783/23082 +f 4089/4783/23083 3449/4071/23084 3450/4070/23085 +f 3449/4071/23086 4089/4783/23087 3432/4056/23088 +f 3432/4056/23089 3433/4055/23090 3449/4071/23091 +f 3433/4055/23092 3427/4048/23093 3453/4076/23094 +f 3453/4076/23095 3449/4071/23096 3433/4055/23097 +f 3433/4055/23098 3421/4043/23099 3422/4042/23100 +f 3422/4042/23101 3427/4048/23102 3433/4055/23103 +f 4089/4783/23104 3461/4083/23105 3446/4069/23106 +f 3446/4069/23107 3443/4065/23108 4089/4783/23109 +f 4089/4783/23110 3443/4065/23111 3424/4046/23112 +f 3424/4046/23113 3432/4056/23114 4089/4783/23115 +f 4090/4784/23116 3482/4109/23117 3450/4070/23118 +f 3450/4070/23119 3447/4073/23120 4090/4784/23121 +f 4090/4784/23122 4091/4787/23123 4093/4785/23124 +f 4093/4785/23125 4092/4786/23126 4090/4784/23127 +f 4090/4784/23128 4092/4786/23129 3485/4106/23130 +f 3485/4106/23131 3482/4109/23132 4090/4784/23133 +f 3451/4075/23134 4091/4787/23135 4090/4784/23136 +f 4090/4784/23137 3447/4073/23138 3451/4075/23139 +f 4094/4789/23140 4091/4787/23141 3451/4075/23142 +f 3451/4075/23143 4095/4788/23144 4094/4789/23145 +f 4095/4788/23146 3451/4075/23147 3452/4074/23148 +f 3452/4074/23149 4096/4790/23150 4095/4788/23151 +f 4096/4790/23152 3452/4074/23153 4098/4791/23154 +f 4098/4791/23155 4097/4792/23156 4096/4790/23157 +f 4100/4793/23158 4099/4794/23159 4097/4792/23160 +f 4097/4792/23161 4098/4791/23162 4100/4793/23163 +f 4099/4794/23164 4100/4793/23165 4102/4795/23166 +f 4102/4795/23167 4101/4796/23168 4099/4794/23169 +f 4101/4796/23170 4102/4795/23171 4104/4797/23172 +f 4104/4797/23173 4103/4798/23174 4101/4796/23175 +f 4103/4798/23176 4104/4797/23177 4106/4799/23178 +f 4106/4799/23179 4105/4800/23180 4103/4798/23181 +f 4107/4802/23182 4105/4800/23183 4106/4799/23184 +f 4106/4799/23185 4108/4801/23186 4107/4802/23187 +f 4106/4799/23188 4104/4797/23189 3509/4133/23190 +f 3509/4133/23191 3510/4132/23192 4106/4799/23193 +f 4106/4799/23194 3510/4132/23195 4109/4803/23196 +f 4109/4803/23197 4108/4801/23198 4106/4799/23199 +f 4109/4803/23200 3486/4112/23201 3485/4106/23202 +f 3485/4106/23203 4092/4786/23204 4109/4803/23205 +f 4109/4803/23206 4092/4786/23207 4093/4785/23208 +f 4093/4785/23209 4108/4801/23210 4109/4803/23211 +f 4109/4803/23212 3510/4132/23213 3507/4135/23214 +f 3507/4135/23215 3486/4112/23216 4109/4803/23217 +f 4108/4801/23218 4093/4785/23219 4110/4804/23220 +f 4110/4804/23221 4107/4802/23222 4108/4801/23223 +f 4104/4797/23224 4102/4795/23225 4111/4805/23226 +f 4111/4805/23227 3509/4133/23228 4104/4797/23229 +f 4111/4805/23230 4102/4795/23231 4100/4793/23232 +f 4100/4793/23233 4112/4806/23234 4111/4805/23235 +f 4111/4805/23236 4112/4806/23237 3428/4053/23238 +f 3428/4053/23239 3454/4078/23240 4111/4805/23241 +f 4111/4805/23242 3454/4078/23243 3513/4138/23244 +f 3513/4138/23245 3509/4133/23246 4111/4805/23247 +f 4113/4807/23248 4112/4806/23249 4100/4793/23250 +f 4100/4793/23251 4098/4791/23252 4113/4807/23253 +f 3428/4053/23254 4112/4806/23255 4113/4807/23256 +f 4113/4807/23257 3425/4050/23258 3428/4053/23259 +f 4113/4807/23260 4098/4791/23261 3452/4074/23262 +f 3452/4074/23263 3453/4076/23264 4113/4807/23265 +f 4113/4807/23266 3453/4076/23267 3427/4048/23268 +f 3427/4048/23269 3425/4050/23270 4113/4807/23271 +f 4094/4789/23272 4110/4804/23273 4093/4785/23274 +f 4093/4785/23275 4091/4787/23276 4094/4789/23277 +f 3511/4137/23278 3488/4110/23279 3486/4112/23280 +f 3486/4112/23281 3507/4135/23282 3511/4137/23283 +f 3499/4782/23284 3474/4095/23285 3466/4098/23286 +f 3466/4098/23287 4078/4769/23288 3499/4782/23289 +f 3481/4105/23290 3477/4100/23291 3493/4116/23292 +f 3493/4116/23293 3496/4119/23294 3481/4105/23295 +f 3464/4768/23296 3465/4808/23297 3388/4010/23298 +f 3388/4010/23299 3416/4039/23300 3464/4768/23301 +f 4114/4809/23302 3465/4087/23303 3418/4041/23304 +f 3418/4041/23305 3417/4040/23306 4114/4809/23307 +f 3387/4011/23308 3388/4010/23309 3465/4808/23310 +f 3465/4808/23311 4114/4810/23312 3387/4011/23313 +f 4114/4809/23314 3417/4040/23315 3410/4034/23316 +f 3410/4034/23317 4115/4811/23318 4114/4809/23319 +f 4114/4810/23320 4115/4811/23321 4116/4812/23322 +f 4116/4812/23323 3387/4011/23324 4114/4810/23325 +f 4116/4812/23326 4115/4811/23327 4118/4813/23328 +f 4118/4813/23329 4117/4814/23330 4116/4812/23331 +f 4116/4812/23332 4117/4814/23333 4120/4815/23334 +f 4120/4815/23335 4119/4816/23336 4116/4812/23337 +f 4116/4812/23338 4119/4816/23339 3385/4007/23340 +f 3385/4007/23341 3387/4011/23342 4116/4812/23343 +f 4120/4815/23344 3383/4006/23345 3379/4003/23346 +f 3379/4003/23347 4119/4816/23348 4120/4815/23349 +f 4118/4813/23350 4115/4811/23351 3410/4034/23352 +f 3410/4034/23353 3411/4033/23354 4118/4813/23355 +f 3400/4022/23356 3384/4008/23357 3380/4002/23358 +f 3380/4002/23359 3399/4023/23360 3400/4022/23361 +f 3394/4018/23362 3374/3996/23363 3378/4001/23364 +f 3378/4001/23365 3395/4017/23366 3394/4018/23367 +f 3395/4017/23368 3378/4001/23369 3382/4004/23370 +f 3382/4004/23371 3389/4015/23372 3395/4017/23373 +f 3480/4103/23374 3479/4104/23375 3495/4120/23376 +f 3477/4100/23377 3478/4099/23378 3492/4117/23379 +f 3492/4117/23380 3493/4116/23381 3477/4100/23382 +f 3666/4302/23383 3667/4301/23384 4046/4723/23385 +f 4046/4723/23386 3681/4318/23387 3666/4302/23388 +f 3550/4176/23389 3603/4239/23390 3977/4642/23391 +f 3977/4642/23392 3547/4173/23393 3550/4176/23394 +f 3801/4449/23395 3530/4154/23396 3531/4156/23397 +f 3531/4156/23398 4121/4817/23399 3801/4449/23400 +f 3531/4156/23401 3532/4160/23402 3536/4162/23403 +f 3536/4162/23404 4121/4817/23405 3531/4156/23406 +f 3536/4162/23407 3800/4450/23408 3801/4449/23409 +f 3801/4449/23410 4121/4817/23411 3536/4162/23412 +f 3634/4271/23413 3635/4272/23414 3653/4291/23415 +f 3653/4291/23416 3915/4572/23417 3634/4271/23418 +f 3653/4291/23419 3657/4294/23420 3618/4256/23421 +f 3618/4256/23422 3915/4572/23423 3653/4291/23424 +f 3522/4146/23425 3484/4107/23426 3506/4131/23427 +f 3506/4131/23428 3524/4148/23429 3522/4146/23430 +f 3506/4131/23431 3862/4517/23432 3524/4148/23433 +f 3494/4115/23434 3794/4444/23435 3795/4443/23436 +f 3795/4443/23437 4083/4772/23438 3494/4115/23439 +f 3503/4130/23440 3480/4103/23441 3495/4120/23442 +f 3506/4131/23443 3503/4130/23444 3504/4129/23445 +f 3504/4129/23446 3859/4510/23447 3506/4131/23448 +f 3460/4084/23449 3461/4083/23450 3483/4108/23451 +f 3483/4108/23452 3521/4147/23453 3460/4084/23454 +f 3599/4234/23455 3550/4176/23456 3551/4175/23457 +f 3554/4184/23458 3547/4183/23459 3977/4818/23460 +f 3977/4818/23461 3978/4652/23462 3554/4184/23463 +f 3383/4006/23464 4120/4815/23465 3382/4004/23466 +f 3382/4004/23467 3381/4005/23468 3383/4006/23469 +f 3411/4033/23470 3408/4030/23471 3403/4026/23472 +f 4120/4815/23473 4117/4814/23474 3389/4015/23475 +f 3389/4015/23476 3382/4004/23477 4120/4815/23478 +f 4118/4813/23479 3392/4012/23480 3389/4015/23481 +f 3389/4015/23482 4117/4814/23483 4118/4813/23484 +f 3411/4033/23485 3403/4026/23486 3392/4012/23487 +f 3392/4012/23488 4118/4813/23489 3411/4033/23490 +f 3467/4532/23491 4078/4769/23492 3466/4098/23493 +f 3472/4744/23494 3462/4086/23495 3463/4085/23496 +f 3463/4085/23497 3466/4090/23498 3472/4744/23499 +f 3385/4007/23500 4119/4816/23501 3379/4003/23502 +f 3936/4594/23503 3716/4354/23504 3713/4357/23505 +f 3713/4357/23506 3928/4584/23507 3936/4594/23508 +f 3922/4579/23509 3921/4577/23510 3933/4590/23511 +f 3933/4590/23512 3934/4592/23513 3924/4580/23514 +f 3924/4580/23515 3922/4579/23516 3933/4590/23517 +f 3934/4592/23518 3936/4594/23519 3928/4584/23520 +f 3928/4584/23521 3924/4580/23522 3934/4592/23523 +f 3928/4584/23524 3926/4582/23525 3924/4580/23526 +f 4097/4792/23527 4099/4794/23528 4101/4796/23529 +f 4107/4802/23530 4101/4796/23531 4103/4798/23532 +f 4103/4798/23533 4105/4800/23534 4107/4802/23535 +f 4101/4796/23536 4107/4802/23537 4097/4792/23538 +f 4097/4792/23539 4107/4802/23540 4110/4804/23541 +f 4110/4804/23542 4096/4790/23543 4097/4792/23544 +f 4095/4788/23545 4096/4790/23546 4110/4804/23547 +f 4110/4804/23548 4094/4789/23549 4095/4788/23550 +f 3491/4118/23551 3954/4611/23552 3517/4139/23553 +f 3517/4139/23554 3514/4142/23555 3491/4118/23556 +f 3514/4142/23557 3520/4145/23558 3491/4118/23559 +f 3543/4169/23560 3544/4168/23561 3847/4500/23562 +f 3847/4500/23563 3846/4499/23564 3543/4169/23565 +f 3543/4169/23566 3846/4499/23567 3844/4498/23568 +f 3844/4498/23569 3850/4504/23570 3543/4169/23571 +f 3850/4504/23572 3844/4498/23573 3845/4497/23574 +f 3845/4497/23575 3823/4475/23576 3850/4504/23577 +f 3822/4474/23578 3823/4475/23579 3845/4497/23580 +f 3845/4497/23581 3848/4502/23582 3822/4474/23583 +f 3848/4502/23584 4122/4819/23585 3822/4474/23586 +f 3588/4221/23587 3580/4220/23588 4122/4819/23589 +f 4122/4819/23590 3825/4479/23591 3588/4221/23592 +f 3824/4476/23593 3587/4222/23594 3588/4221/23595 +f 3588/4221/23596 3825/4479/23597 3824/4476/23598 +f 4122/4819/23599 3583/4213/23600 3822/4474/23601 +f 3848/4502/23602 3825/4479/23603 4122/4819/23604 +f 3580/4220/23605 3579/4207/23606 4122/4819/23607 +f 3579/4207/23608 3583/4213/23609 4122/4819/23610 +f 3632/4268/23611 3633/4267/23612 3610/4246/23613 +f 4288/4820/23614 4281/4821/23615 4290/4822/23616 +f 4290/4822/23617 4289/4823/23618 4288/4820/23619 +f 4344/4824/23620 4288/4820/23621 4289/4823/23622 +f 4289/4823/23623 4153/4825/23624 4344/4824/23625 +f 4153/4825/23626 4329/4826/23627 4328/4827/23628 +f 4328/4827/23629 4344/4824/23630 4153/4825/23631 +f 4293/4828/23632 4185/4829/23633 4280/4830/23634 +f 4280/4830/23635 4279/4831/23636 4293/4828/23637 +f 4166/4832/23638 4290/4822/23639 4280/4830/23640 +f 4280/4830/23641 4169/4833/23642 4166/4832/23643 +f 4146/4834/23644 4289/4823/23645 4290/4822/23646 +f 4290/4822/23647 4166/4832/23648 4146/4834/23649 +f 4154/4835/23650 4153/4825/23651 4289/4823/23652 +f 4289/4823/23653 4146/4834/23654 4154/4835/23655 +f 4155/4836/23656 4329/4826/23657 4153/4825/23658 +f 4153/4825/23659 4154/4835/23660 4155/4836/23661 +f 4280/4830/23662 4185/4829/23663 4191/4837/23664 +f 4191/4837/23665 4169/4833/23666 4280/4830/23667 +f 4186/4838/23668 4185/4829/23669 4293/4828/23670 +f 4293/4828/23671 4180/4839/23672 4186/4838/23673 +f 4192/4840/23674 4191/4837/23675 4185/4829/23676 +f 4185/4829/23677 4186/4838/23678 4192/4840/23679 +f 4200/4841/23680 4186/4838/23681 4180/4839/23682 +f 4180/4839/23683 4183/4842/23684 4200/4841/23685 +f 4193/4843/23686 4192/4840/23687 4186/4838/23688 +f 4186/4838/23689 4200/4841/23690 4193/4843/23691 +f 4330/4844/23692 4329/4826/23693 4155/4836/23694 +f 4155/4836/23695 4156/4845/23696 4330/4844/23697 +f 4331/4846/23698 4328/4827/23699 4329/4826/23700 +f 4329/4826/23701 4330/4844/23702 4331/4846/23703 +f 4181/4847/23704 4200/4841/23705 4183/4842/23706 +f 4183/4842/23707 4184/4848/23708 4181/4847/23709 +f 4182/4849/23710 4193/4843/23711 4200/4841/23712 +f 4200/4841/23713 4181/4847/23714 4182/4849/23715 +f 4149/4850/23716 4330/4844/23717 4156/4845/23718 +f 4156/4845/23719 4150/4851/23720 4149/4850/23721 +f 4327/4852/23722 4331/4846/23723 4330/4844/23724 +f 4330/4844/23725 4149/4850/23726 4327/4852/23727 +f 4136/4853/23728 4181/4847/23729 4184/4848/23730 +f 4184/4848/23731 4135/4854/23732 4136/4853/23733 +f 4137/4855/23734 4182/4849/23735 4181/4847/23736 +f 4181/4847/23737 4136/4853/23738 4137/4855/23739 +f 4141/4856/23740 4149/4850/23741 4150/4851/23742 +f 4150/4851/23743 4142/4857/23744 4141/4856/23745 +f 4139/4858/23746 4327/4852/23747 4149/4850/23748 +f 4149/4850/23749 4141/4856/23750 4139/4858/23751 +f 4133/4859/23752 4141/4856/23753 4142/4857/23754 +f 4142/4857/23755 4143/4860/23756 4133/4859/23757 +f 4134/4861/23758 4139/4858/23759 4141/4856/23760 +f 4141/4856/23761 4133/4859/23762 4134/4861/23763 +f 4136/4853/23764 4133/4859/23765 4143/4860/23766 +f 4143/4860/23767 4137/4855/23768 4136/4853/23769 +f 4135/4854/23770 4134/4861/23771 4133/4859/23772 +f 4133/4859/23773 4136/4853/23774 4135/4854/23775 +f 4279/4831/23776 4280/4830/23777 4290/4822/23778 +f 4290/4822/23779 4281/4821/23780 4279/4831/23781 +f 4288/4820/23782 4201/4862/23783 4283/4863/23784 +f 4283/4863/23785 4281/4821/23786 4288/4820/23787 +f 4332/4864/23788 4201/4862/23789 4288/4820/23790 +f 4288/4820/23791 4344/4824/23792 4332/4864/23793 +f 4333/4865/23794 4332/4864/23795 4344/4824/23796 +f 4344/4824/23797 4328/4827/23798 4333/4865/23799 +f 4315/4866/23800 4333/4865/23801 4328/4827/23802 +f 4328/4827/23803 4331/4846/23804 4315/4866/23805 +f 4331/4846/23806 4327/4852/23807 4313/4867/23808 +f 4313/4867/23809 4315/4866/23810 4331/4846/23811 +f 4327/4852/23812 4139/4858/23813 4140/4868/23814 +f 4140/4868/23815 4313/4867/23816 4327/4852/23817 +f 4139/4858/23818 4134/4861/23819 4127/4869/23820 +f 4127/4869/23821 4140/4868/23822 4139/4858/23823 +f 4172/4870/23824 4127/4869/23825 4134/4861/23826 +f 4134/4861/23827 4135/4854/23828 4172/4870/23829 +f 4173/4871/23830 4172/4870/23831 4135/4854/23832 +f 4135/4854/23833 4184/4848/23834 4173/4871/23835 +f 4184/4848/23836 4183/4842/23837 4179/4872/23838 +f 4179/4872/23839 4173/4871/23840 4184/4848/23841 +f 4183/4842/23842 4180/4839/23843 4187/4873/23844 +f 4187/4873/23845 4179/4872/23846 4183/4842/23847 +f 4293/4828/23848 4291/4874/23849 4222/4875/23850 +f 4222/4875/23851 4180/4839/23852 4293/4828/23853 +f 4293/4828/23854 4279/4831/23855 4282/4876/23856 +f 4282/4876/23857 4291/4874/23858 4293/4828/23859 +f 4282/4876/23860 4279/4831/23861 4281/4821/23862 +f 4281/4821/23863 4283/4863/23864 4282/4876/23865 +f 4283/4863/23866 4284/4877/23867 4285/4878/23868 +f 4285/4878/23869 4282/4876/23870 4283/4863/23871 +f 4187/4873/23872 4188/4879/23873 4175/4880/23874 +f 4175/4880/23875 4179/4872/23876 4187/4873/23877 +f 4126/4881/23878 4123/4882/23879 4188/4879/23880 +f 4188/4879/23881 4187/4873/23882 4126/4881/23883 +f 4282/4876/23884 4285/4878/23885 4292/4883/23886 +f 4292/4883/23887 4291/4874/23888 4282/4876/23889 +f 4223/4884/23890 4292/4883/23891 4230/4885/23892 +f 4230/4885/23893 4224/4886/23894 4223/4884/23895 +f 4292/4883/23896 4285/4878/23897 4294/4887/23898 +f 4294/4887/23899 4230/4885/23900 4292/4883/23901 +f 4294/4887/23902 4232/4888/23903 4231/4889/23904 +f 4231/4889/23905 4230/4885/23906 4294/4887/23907 +f 4231/4889/23908 4219/4890/23909 4224/4886/23910 +f 4224/4886/23911 4230/4885/23912 4231/4889/23913 +f 4177/4891/23914 4173/4871/23915 4179/4872/23916 +f 4179/4872/23917 4175/4880/23918 4177/4891/23919 +f 4128/4892/23920 4322/4893/23921 4140/4868/23922 +f 4140/4868/23923 4127/4869/23924 4128/4892/23925 +f 4128/4892/23926 4127/4869/23927 4172/4870/23928 +f 4172/4870/23929 4131/4894/23930 4128/4892/23931 +f 4131/4894/23932 4172/4870/23933 4173/4871/23934 +f 4173/4871/23935 4177/4891/23936 4131/4894/23937 +f 4333/4865/23938 4315/4866/23939 4316/4895/23940 +f 4316/4895/23941 4335/4896/23942 4333/4865/23943 +f 4316/4895/23944 4315/4866/23945 4313/4867/23946 +f 4313/4867/23947 4314/4897/23948 4316/4895/23949 +f 4313/4867/23950 4140/4868/23951 4322/4893/23952 +f 4322/4893/23953 4314/4897/23954 4313/4867/23955 +f 4333/4865/23956 4335/4896/23957 4334/4898/23958 +f 4334/4898/23959 4332/4864/23960 4333/4865/23961 +f 4218/4899/23962 4211/4900/23963 4123/4882/23964 +f 4123/4882/23965 4126/4881/23966 4218/4899/23967 +f 4219/4890/23968 4209/4901/23969 4220/4902/23970 +f 4220/4902/23971 4224/4886/23972 4219/4890/23973 +f 4218/4899/23974 4220/4902/23975 4209/4901/23976 +f 4209/4901/23977 4211/4900/23978 4218/4899/23979 +f 4209/4901/23980 4214/4903/23981 4213/4904/23982 +f 4213/4904/23983 4211/4900/23984 4209/4901/23985 +f 4213/4904/23986 4214/4903/23987 4216/4905/23988 +f 4216/4905/23989 4210/4906/23990 4213/4904/23991 +f 4212/4907/23992 4211/4900/23993 4213/4904/23994 +f 4213/4904/23995 4210/4906/23996 4212/4907/23997 +f 4124/4908/23998 4123/4882/23999 4211/4900/24000 +f 4211/4900/24001 4212/4907/24002 4124/4908/24003 +f 4223/4884/24004 4224/4886/24005 4220/4902/24006 +f 4220/4902/24007 4218/4899/24008 4223/4884/24009 +f 4218/4899/24010 4126/4881/24011 4222/4875/24012 +f 4222/4875/24013 4223/4884/24014 4218/4899/24015 +f 4125/4909/24016 4188/4879/24017 4123/4882/24018 +f 4123/4882/24019 4124/4908/24020 4125/4909/24021 +f 4174/4910/24022 4175/4880/24023 4188/4879/24024 +f 4188/4879/24025 4125/4909/24026 4174/4910/24027 +f 4178/4911/24028 4177/4891/24029 4175/4880/24030 +f 4175/4880/24031 4174/4910/24032 4178/4911/24033 +f 4177/4891/24034 4178/4911/24035 4132/4912/24036 +f 4132/4912/24037 4131/4894/24038 4177/4891/24039 +f 4132/4912/24040 4130/4913/24041 4129/4914/24042 +f 4129/4914/24043 4131/4894/24044 4132/4912/24045 +f 4131/4894/24046 4129/4914/24047 4321/4915/24048 +f 4321/4915/24049 4128/4892/24050 4131/4894/24051 +f 4320/4916/24052 4322/4893/24053 4128/4892/24054 +f 4128/4892/24055 4321/4915/24056 4320/4916/24057 +f 4312/4917/24058 4314/4897/24059 4322/4893/24060 +f 4322/4893/24061 4320/4916/24062 4312/4917/24063 +f 4312/4917/24064 4318/4918/24065 4316/4895/24066 +f 4316/4895/24067 4314/4897/24068 4312/4917/24069 +f 4339/4919/24070 4335/4896/24071 4316/4895/24072 +f 4316/4895/24073 4318/4918/24074 4339/4919/24075 +f 4202/4920/24076 4201/4862/24077 4332/4864/24078 +f 4332/4864/24079 4334/4898/24080 4202/4920/24081 +f 4284/4877/24082 4283/4863/24083 4201/4862/24084 +f 4201/4862/24085 4202/4920/24086 4284/4877/24087 +f 4335/4896/24088 4339/4919/24089 4336/4921/24090 +f 4336/4921/24091 4334/4898/24092 4335/4896/24093 +f 4206/4922/24094 4202/4920/24095 4334/4898/24096 +f 4334/4898/24097 4336/4921/24098 4206/4922/24099 +f 4296/4923/24100 4284/4877/24101 4202/4920/24102 +f 4202/4920/24103 4206/4922/24104 4296/4923/24105 +f 4285/4878/24106 4284/4877/24107 4286/4924/24108 +f 4286/4924/24109 4294/4887/24110 4285/4878/24111 +f 4284/4877/24112 4296/4923/24113 4297/4925/24114 +f 4297/4925/24115 4286/4924/24116 4284/4877/24117 +f 4287/4926/24118 4232/4888/24119 4294/4887/24120 +f 4294/4887/24121 4286/4924/24122 4287/4926/24123 +f 4219/4890/24124 4221/4927/24125 4227/4928/24126 +f 4227/4928/24127 4209/4901/24128 4219/4890/24129 +f 4232/4888/24130 4234/4929/24131 4233/4930/24132 +f 4233/4930/24133 4231/4889/24134 4232/4888/24135 +f 4219/4890/24136 4231/4889/24137 4233/4930/24138 +f 4233/4930/24139 4221/4927/24140 4219/4890/24141 +f 4214/4903/24142 4209/4901/24143 4227/4928/24144 +f 4227/4928/24145 4215/4931/24146 4214/4903/24147 +f 4216/4905/24148 4214/4903/24149 4215/4931/24150 +f 4215/4931/24151 4217/4932/24152 4216/4905/24153 +f 4287/4926/24154 4237/4933/24155 4234/4929/24156 +f 4234/4929/24157 4232/4888/24158 4287/4926/24159 +f 4237/4933/24160 4253/4934/24161 4251/4935/24162 +f 4251/4935/24163 4234/4929/24164 4237/4933/24165 +f 4253/4934/24166 4245/4936/24167 4239/4937/24168 +f 4239/4937/24169 4251/4935/24170 4253/4934/24171 +f 4247/4938/24172 4244/4939/24173 4240/4940/24174 +f 4240/4940/24175 4239/4937/24176 4247/4938/24177 +f 4217/4932/24178 4215/4931/24179 4240/4940/24180 +f 4240/4940/24181 4244/4939/24182 4217/4932/24183 +f 4221/4927/24184 4225/4941/24185 4228/4942/24186 +f 4228/4942/24187 4227/4928/24188 4221/4927/24189 +f 4234/4929/24190 4236/4943/24191 4235/4944/24192 +f 4235/4944/24193 4233/4930/24194 4234/4929/24195 +f 4225/4941/24196 4221/4927/24197 4233/4930/24198 +f 4233/4930/24199 4235/4944/24200 4225/4941/24201 +f 4215/4931/24202 4227/4928/24203 4228/4942/24204 +f 4228/4942/24205 4240/4940/24206 4215/4931/24207 +f 4240/4940/24208 4242/4945/24209 4241/4946/24210 +f 4241/4946/24211 4239/4937/24212 4240/4940/24213 +f 4251/4935/24214 4239/4937/24215 4241/4946/24216 +f 4241/4946/24217 4252/4947/24218 4251/4935/24219 +f 4228/4942/24220 4243/4948/24221 4242/4945/24222 +f 4242/4945/24223 4240/4940/24224 4228/4942/24225 +f 4228/4942/24226 4225/4941/24227 4226/4949/24228 +f 4226/4949/24229 4243/4948/24230 4228/4942/24231 +f 4236/4943/24232 4234/4929/24233 4251/4935/24234 +f 4251/4935/24235 4252/4947/24236 4236/4943/24237 +f 4235/4944/24238 4236/4943/24239 4226/4949/24240 +f 4226/4949/24241 4225/4941/24242 4235/4944/24243 +f 4226/4949/24244 4236/4943/24245 4252/4947/24246 +f 4252/4947/24247 4243/4948/24248 4226/4949/24249 +f 4242/4945/24250 4243/4948/24251 4252/4947/24252 +f 4252/4947/24253 4241/4946/24254 4242/4945/24255 +f 4296/4923/24256 4203/4950/24257 4298/4951/24258 +f 4298/4951/24259 4297/4925/24260 4296/4923/24261 +f 4310/4952/24262 4298/4951/24263 4203/4950/24264 +f 4203/4950/24265 4205/4953/24266 4310/4952/24267 +f 4205/4953/24268 4204/4954/24269 4308/4955/24270 +f 4308/4955/24271 4310/4952/24272 4205/4953/24273 +f 4551/4956/24274 4261/4957/24275 4308/4955/24276 +f 4308/4955/24277 4204/4954/24278 4551/4956/24279 +f 4551/4956/24280 4549/4958/24281 4259/4959/24282 +f 4259/4959/24283 4261/4957/24284 4551/4956/24285 +f 4268/4960/24286 4259/4959/24287 4549/4958/24288 +f 4549/4958/24289 4553/4961/24290 4268/4960/24291 +f 4268/4960/24292 4553/4961/24293 4554/4962/24294 +f 4554/4962/24295 4269/4963/24296 4268/4960/24297 +f 4286/4924/24298 4297/4925/24299 4299/4964/24300 +f 4299/4964/24301 4287/4926/24302 4286/4924/24303 +f 4297/4925/24304 4298/4951/24305 4295/4965/24306 +f 4295/4965/24307 4299/4964/24308 4297/4925/24309 +f 4298/4951/24310 4310/4952/24311 4309/4966/24312 +f 4309/4966/24313 4295/4965/24314 4298/4951/24315 +f 4310/4952/24316 4308/4955/24317 4311/4967/24318 +f 4311/4967/24319 4309/4966/24320 4310/4952/24321 +f 4308/4955/24322 4261/4957/24323 4260/4968/24324 +f 4260/4968/24325 4311/4967/24326 4308/4955/24327 +f 4261/4957/24328 4259/4959/24329 4258/4969/24330 +f 4258/4969/24331 4260/4968/24332 4261/4957/24333 +f 4259/4959/24334 4268/4960/24335 4267/4970/24336 +f 4267/4970/24337 4258/4969/24338 4259/4959/24339 +f 4272/4971/24340 4271/4972/24341 4269/4963/24342 +f 4269/4963/24343 4270/4973/24344 4272/4971/24345 +f 4260/4968/24346 4256/4974/24347 4300/4975/24348 +f 4300/4975/24349 4311/4967/24350 4260/4968/24351 +f 4260/4968/24352 4258/4969/24353 4276/4976/24354 +f 4276/4976/24355 4256/4974/24356 4260/4968/24357 +f 4258/4969/24358 4267/4970/24359 4262/4977/24360 +f 4262/4977/24361 4276/4976/24362 4258/4969/24363 +f 4301/4978/24364 4309/4966/24365 4311/4967/24366 +f 4311/4967/24367 4300/4975/24368 4301/4978/24369 +f 4295/4965/24370 4309/4966/24371 4301/4978/24372 +f 4301/4978/24373 4302/4979/24374 4295/4965/24375 +f 4302/4979/24376 4306/4980/24377 4299/4964/24378 +f 4299/4964/24379 4295/4965/24380 4302/4979/24381 +f 4254/4981/24382 4287/4926/24383 4299/4964/24384 +f 4299/4964/24385 4306/4980/24386 4254/4981/24387 +f 4238/4982/24388 4237/4933/24389 4287/4926/24390 +f 4287/4926/24391 4254/4981/24392 4238/4982/24393 +f 4238/4982/24394 4229/4983/24395 4253/4934/24396 +f 4253/4934/24397 4237/4933/24398 4238/4982/24399 +f 4246/4984/24400 4245/4936/24401 4253/4934/24402 +f 4253/4934/24403 4229/4983/24404 4246/4984/24405 +f 4249/4985/24406 4248/4986/24407 4245/4936/24408 +f 4245/4936/24409 4246/4984/24410 4249/4985/24411 +f 4274/4987/24412 4262/4977/24413 4265/4988/24414 +f 4265/4988/24415 4263/4989/24416 4274/4987/24417 +f 4273/4990/24418 4276/4976/24419 4262/4977/24420 +f 4262/4977/24421 4274/4987/24422 4273/4990/24423 +f 4257/4991/24424 4256/4974/24425 4276/4976/24426 +f 4276/4976/24427 4273/4990/24428 4257/4991/24429 +f 4257/4991/24430 4303/4992/24431 4300/4975/24432 +f 4300/4975/24433 4256/4974/24434 4257/4991/24435 +f 4301/4978/24436 4300/4975/24437 4303/4992/24438 +f 4303/4992/24439 4304/4993/24440 4301/4978/24441 +f 4302/4979/24442 4301/4978/24443 4304/4993/24444 +f 4304/4993/24445 4305/4994/24446 4302/4979/24447 +f 4306/4980/24448 4302/4979/24449 4305/4994/24450 +f 4305/4994/24451 4307/4995/24452 4306/4980/24453 +f 4255/4996/24454 4254/4981/24455 4306/4980/24456 +f 4306/4980/24457 4307/4995/24458 4255/4996/24459 +f 4277/4997/24460 4238/4982/24461 4254/4981/24462 +f 4254/4981/24463 4255/4996/24464 4277/4997/24465 +f 4275/4998/24466 4229/4983/24467 4238/4982/24468 +f 4238/4982/24469 4277/4997/24470 4275/4998/24471 +f 4278/4999/24472 4246/4984/24473 4229/4983/24474 +f 4229/4983/24475 4275/4998/24476 4278/4999/24477 +f 4249/4985/24478 4246/4984/24479 4278/4999/24480 +f 4278/4999/24481 4250/5000/24482 4249/4985/24483 +f 4305/4994/24484 4304/4993/24485 4303/4992/24486 +f 4303/4992/24487 4307/4995/24488 4305/4994/24489 +f 4257/4991/24490 4255/4996/24491 4307/4995/24492 +f 4307/4995/24493 4303/4992/24494 4257/4991/24495 +f 4273/4990/24496 4277/4997/24497 4255/4996/24498 +f 4255/4996/24499 4257/4991/24500 4273/4990/24501 +f 4274/4987/24502 4275/4998/24503 4277/4997/24504 +f 4277/4997/24505 4273/4990/24506 4274/4987/24507 +f 4270/4973/24508 4269/4963/24509 4554/4962/24510 +f 4554/4962/24511 4555/5001/24512 4270/4973/24513 +f 4269/4963/24514 4271/4972/24515 4267/4970/24516 +f 4267/4970/24517 4268/4960/24518 4269/4963/24519 +f 4271/4972/24520 4265/4988/24521 4262/4977/24522 +f 4262/4977/24523 4267/4970/24524 4271/4972/24525 +f 4263/4989/24526 4265/4988/24527 4266/5002/24528 +f 4266/5002/24529 4264/5003/24530 4263/4989/24531 +f 4275/4998/24532 4274/4987/24533 4263/4989/24534 +f 4263/4989/24535 4278/4999/24536 4275/4998/24537 +f 4263/4989/24538 4264/5003/24539 4250/5000/24540 +f 4250/5000/24541 4278/4999/24542 4263/4989/24543 +f 4296/4923/24544 4206/4922/24545 4208/5004/24546 +f 4208/5004/24547 4203/4950/24548 4296/4923/24549 +f 4206/4922/24550 4336/4921/24551 4337/5005/24552 +f 4337/5005/24553 4208/5004/24554 4206/4922/24555 +f 4336/4921/24556 4339/4919/24557 4340/5006/24558 +f 4340/5006/24559 4337/5005/24560 4336/4921/24561 +f 4207/5007/24562 4205/4953/24563 4203/4950/24564 +f 4203/4950/24565 4208/5004/24566 4207/5007/24567 +f 4547/5008/24568 4204/4954/24569 4205/4953/24570 +f 4205/4953/24571 4207/5007/24572 4547/5008/24573 +f 4545/5009/24574 4551/4956/24575 4204/4954/24576 +f 4204/4954/24577 4547/5008/24578 4545/5009/24579 +f 4552/5010/24580 4549/4958/24581 4551/4956/24582 +f 4551/4956/24583 4545/5009/24584 4552/5010/24585 +f 4550/5011/24586 4553/4961/24587 4549/4958/24588 +f 4549/4958/24589 4552/5010/24590 4550/5011/24591 +f 4556/5012/24592 4554/4962/24593 4553/4961/24594 +f 4553/4961/24595 4550/5011/24596 4556/5012/24597 +f 4556/5012/24598 4557/5013/24599 4555/5001/24600 +f 4555/5001/24601 4554/4962/24602 4556/5012/24603 +f 4338/5014/24604 4207/5007/24605 4208/5004/24606 +f 4208/5004/24607 4337/5005/24608 4338/5014/24609 +f 4547/5008/24610 4207/5007/24611 4338/5014/24612 +f 4338/5014/24613 4569/5015/24614 4547/5008/24615 +f 4548/5016/24616 4545/5009/24617 4547/5008/24618 +f 4547/5008/24619 4569/5015/24620 4548/5016/24621 +f 4545/5009/24622 4548/5016/24623 4546/5017/24624 +f 4546/5017/24625 4552/5010/24626 4545/5009/24627 +f 4558/5018/24628 4550/5011/24629 4552/5010/24630 +f 4552/5010/24631 4546/5017/24632 4558/5018/24633 +f 4559/5019/24634 4556/5012/24635 4550/5011/24636 +f 4550/5011/24637 4558/5018/24638 4559/5019/24639 +f 4556/5012/24640 4559/5019/24641 4560/5020/24642 +f 4560/5020/24643 4557/5013/24644 4556/5012/24645 +f 4337/5005/24646 4342/5021/24647 4574/5022/24648 +f 4574/5022/24649 4338/5014/24650 4337/5005/24651 +f 4570/5023/24652 4569/5015/24653 4338/5014/24654 +f 4338/5014/24655 4574/5022/24656 4570/5023/24657 +f 4571/5024/24658 4548/5016/24659 4569/5015/24660 +f 4569/5015/24661 4570/5023/24662 4571/5024/24663 +f 4561/5025/24664 4546/5017/24665 4548/5016/24666 +f 4548/5016/24667 4571/5024/24668 4561/5025/24669 +f 4563/5026/24670 4558/5018/24671 4546/5017/24672 +f 4546/5017/24673 4561/5025/24674 4563/5026/24675 +f 4565/5027/24676 4559/5019/24677 4558/5018/24678 +f 4558/5018/24679 4563/5026/24680 4565/5027/24681 +f 4565/5027/24682 4564/5028/24683 4560/5020/24684 +f 4560/5020/24685 4559/5019/24686 4565/5027/24687 +f 4337/5005/24688 4340/5006/24689 4341/5029/24690 +f 4341/5029/24691 4342/5021/24692 4337/5005/24693 +f 4339/4919/24694 4318/4918/24695 4319/5030/24696 +f 4319/5030/24697 4340/5006/24698 4339/4919/24699 +f 4318/4918/24700 4312/4917/24701 4317/5031/24702 +f 4317/5031/24703 4319/5030/24704 4318/4918/24705 +f 4312/4917/24706 4320/4916/24707 4323/5032/24708 +f 4323/5032/24709 4317/5031/24710 4312/4917/24711 +f 4320/4916/24712 4321/4915/24713 4324/5033/24714 +f 4324/5033/24715 4323/5032/24716 4320/4916/24717 +f 4325/5034/24718 4324/5033/24719 4321/4915/24720 +f 4321/4915/24721 4129/4914/24722 4325/5034/24723 +f 4129/4914/24724 4130/4913/24725 4326/5035/24726 +f 4326/5035/24727 4325/5034/24728 4129/4914/24729 +f 4563/5026/24730 4566/5036/24731 4567/5037/24732 +f 4567/5037/24733 4565/5027/24734 4563/5026/24735 +f 4563/5026/24736 4561/5025/24737 4562/5038/24738 +f 4562/5038/24739 4566/5036/24740 4563/5026/24741 +f 4571/5024/24742 4572/5039/24743 4562/5038/24744 +f 4562/5038/24745 4561/5025/24746 4571/5024/24747 +f 4579/5040/24748 4572/5039/24749 4571/5024/24750 +f 4571/5024/24751 4570/5023/24752 4579/5040/24753 +f 4579/5040/24754 4570/5023/24755 4574/5022/24756 +f 4574/5022/24757 4575/5041/24758 4579/5040/24759 +f 4574/5022/24760 4342/5021/24761 4343/5042/24762 +f 4343/5042/24763 4575/5041/24764 4574/5022/24765 +f 4342/5021/24766 4341/5029/24767 4679/5043/24768 +f 4679/5043/24769 4343/5042/24770 4342/5021/24771 +f 4679/5043/24772 4680/5044/24773 4682/5045/24774 +f 4682/5045/24775 4343/5042/24776 4679/5043/24777 +f 4682/5045/24778 4576/5046/24779 4575/5041/24780 +f 4575/5041/24781 4343/5042/24782 4682/5045/24783 +f 4575/5041/24784 4576/5046/24785 4581/5047/24786 +f 4581/5047/24787 4579/5040/24788 4575/5041/24789 +f 4579/5040/24790 4581/5047/24791 4573/5048/24792 +f 4573/5048/24793 4572/5039/24794 4579/5040/24795 +f 4562/5038/24796 4572/5039/24797 4573/5048/24798 +f 4573/5048/24799 4597/5049/24800 4562/5038/24801 +f 4598/5050/24802 4566/5036/24803 4562/5038/24804 +f 4562/5038/24805 4597/5049/24806 4598/5050/24807 +f 4604/5051/24808 4567/5037/24809 4566/5036/24810 +f 4566/5036/24811 4598/5050/24812 4604/5051/24813 +f 4605/5052/24814 4568/5053/24815 4567/5037/24816 +f 4567/5037/24817 4604/5051/24818 4605/5052/24819 +f 4681/5270/24820 4684/5273/24821 4682/5274/24822 +f 4682/5274/24823 4680/5275/24824 4681/5270/24825 +f 4582/5277/24826 4581/5278/24827 4576/5279/24828 +f 4576/5279/24829 4577/5280/24830 4582/5277/24831 +f 4583/5281/24832 4573/5282/24833 4581/5278/24834 +f 4581/5278/24835 4582/5277/24836 4583/5281/24837 +f 4573/5282/24838 4583/5281/24839 4599/5283/24840 +f 4599/5283/24841 4597/5284/24842 4573/5282/24843 +f 4601/5285/24844 4598/5286/24845 4597/5284/24846 +f 4597/5284/24847 4599/5283/24848 4601/5285/24849 +f 4607/5287/24850 4604/5288/24851 4598/5286/24852 +f 4598/5286/24853 4601/5285/24854 4607/5287/24855 +f 4606/5289/24856 4605/5290/24857 4604/5288/24858 +f 4604/5288/24859 4607/5287/24860 4606/5289/24861 +f 4607/5287/24862 4614/5291/24863 4615/5292/24864 +f 4615/5292/24865 4606/5289/24866 4607/5287/24867 +f 4607/5287/24868 4601/5285/24869 4603/5293/24870 +f 4603/5293/24871 4614/5291/24872 4607/5287/24873 +f 4601/5285/24874 4599/5283/24875 4600/5294/24876 +f 4600/5294/24877 4603/5293/24878 4601/5285/24879 +f 4584/5295/24880 4600/5294/24881 4599/5283/24882 +f 4599/5283/24883 4583/5281/24884 4584/5295/24885 +f 4582/5277/24886 4580/5296/24887 4584/5295/24888 +f 4584/5295/24889 4583/5281/24890 4582/5277/24891 +f 4578/5297/24892 4580/5296/24893 4582/5277/24894 +f 4582/5277/24895 4577/5280/24896 4578/5297/24897 +f 4577/5280/24898 4576/5279/24899 4683/5298/24900 +f 4683/5298/24901 4578/5297/24902 4577/5280/24903 +f 4682/5274/24904 4684/5273/24905 4683/5298/24906 +f 4683/5298/24907 4576/5279/24908 4682/5274/24909 +f 4678/5299/24910 4688/5300/24911 4686/5301/24912 +f 4686/5301/24913 4681/5270/24914 4678/5299/24915 +f 4711/5302/24916 4683/5298/24917 4684/5273/24918 +f 4684/5273/24919 4685/5303/24920 4711/5302/24921 +f 4712/5304/24922 4578/5297/24923 4683/5298/24924 +f 4683/5298/24925 4711/5302/24926 4712/5304/24927 +f 4586/5305/24928 4580/5296/24929 4578/5297/24930 +f 4578/5297/24931 4712/5304/24932 4586/5305/24933 +f 4585/5306/24934 4584/5295/24935 4580/5296/24936 +f 4580/5296/24937 4586/5305/24938 4585/5306/24939 +f 4590/5307/24940 4600/5294/24941 4584/5295/24942 +f 4584/5295/24943 4585/5306/24944 4590/5307/24945 +f 4602/5308/24946 4603/5293/24947 4600/5294/24948 +f 4600/5294/24949 4590/5307/24950 4602/5308/24951 +f 4609/5309/24952 4614/5291/24953 4603/5293/24954 +f 4603/5293/24955 4602/5308/24956 4609/5309/24957 +f 4612/5310/24958 4613/5311/24959 4615/5292/24960 +f 4615/5292/24961 4614/5291/24962 4612/5310/24963 +f 4611/5312/24964 4612/5310/24965 4614/5291/24966 +f 4614/5291/24967 4609/5309/24968 4611/5312/24969 +f 4610/5332/24970 4611/5312/24971 4609/5309/24972 +f 4609/5309/24973 4608/5333/24974 4610/5332/24975 +f 4592/5334/24976 4608/5333/24977 4609/5309/24978 +f 4609/5309/24979 4602/5308/24980 4592/5334/24981 +f 4591/5341/24982 4592/5334/24983 4602/5308/24984 +f 4602/5308/24985 4590/5307/24986 4591/5341/24987 +f 4593/5342/24988 4591/5341/24989 4590/5307/24990 +f 4590/5307/24991 4585/5306/24992 4593/5342/24993 +f 4716/5343/24994 4593/5342/24995 4585/5306/24996 +f 4585/5306/24997 4586/5305/24998 4716/5343/24999 +f 4586/5305/25000 4712/5304/25001 4713/5344/25002 +f 4713/5344/25003 4716/5343/25004 4586/5305/25005 +f 4714/5345/25006 4713/5344/25007 4712/5304/25008 +f 4712/5304/25009 4711/5302/25010 4714/5345/25011 +f 4711/5302/25012 4685/5303/25013 4687/5347/25014 +f 4687/5347/25015 4714/5345/25016 4711/5302/25017 +f 4681/5270/25018 4686/5301/25019 4685/5303/25020 +f 4685/5303/25021 4684/5273/25022 4681/5270/25023 +f 4685/5303/25024 4686/5301/25025 4688/5300/25026 +f 4688/5300/25027 4687/5347/25028 4685/5303/25029 +f 4678/5299/25030 4689/5348/25031 4692/5349/25032 +f 4692/5349/25033 4688/5300/25034 4678/5299/25035 +f 4689/5348/25036 4690/5350/25037 4693/5351/25038 +f 4693/5351/25039 4692/5349/25040 4689/5348/25041 +f 4588/5352/25042 4610/5332/25043 4608/5333/25044 +f 4608/5333/25045 4587/5353/25046 4588/5352/25047 +f 4592/5334/25048 4596/5354/25049 4587/5353/25050 +f 4587/5353/25051 4608/5333/25052 4592/5334/25053 +f 4592/5334/25054 4591/5341/25055 4594/5355/25056 +f 4594/5355/25057 4596/5354/25058 4592/5334/25059 +f 4593/5342/25060 4724/5356/25061 4594/5355/25062 +f 4594/5355/25063 4591/5341/25064 4593/5342/25065 +f 4593/5342/25066 4716/5343/25067 4715/5357/25068 +f 4715/5357/25069 4724/5356/25070 4593/5342/25071 +f 4716/5343/25072 4713/5344/25073 4719/5358/25074 +f 4719/5358/25075 4715/5357/25076 4716/5343/25077 +f 4713/5344/25078 4714/5345/25079 4717/5359/25080 +f 4717/5359/25081 4719/5358/25082 4713/5344/25083 +f 4714/5345/25084 4687/5347/25085 4718/5360/25086 +f 4718/5360/25087 4717/5359/25088 4714/5345/25089 +f 4687/5347/25090 4688/5300/25091 4691/5361/25092 +f 4691/5361/25093 4718/5360/25094 4687/5347/25095 +f 4688/5300/25096 4692/5349/25097 4694/5362/25098 +f 4694/5362/25099 4691/5361/25100 4688/5300/25101 +f 4695/5363/25102 4694/5362/25103 4692/5349/25104 +f 4692/5349/25105 4693/5351/25106 4695/5363/25107 +f 4596/5354/25108 4595/5364/25109 4588/5352/25110 +f 4588/5352/25111 4587/5353/25112 4596/5354/25113 +f 4596/5354/25114 4594/5355/25115 4589/5365/25116 +f 4589/5365/25117 4595/5364/25118 4596/5354/25119 +f 4594/5355/25120 4724/5356/25121 4722/5366/25122 +f 4722/5366/25123 4589/5365/25124 4594/5355/25125 +f 4724/5356/25126 4715/5357/25127 4723/5367/25128 +f 4723/5367/25129 4722/5366/25130 4724/5356/25131 +f 4721/5368/25132 4723/5367/25133 4715/5357/25134 +f 4715/5357/25135 4719/5358/25136 4721/5368/25137 +f 4717/5359/25138 4720/5369/25139 4721/5368/25140 +f 4721/5368/25141 4719/5358/25142 4717/5359/25143 +f 4717/5359/25144 4718/5360/25145 4725/5370/25146 +f 4725/5370/25147 4720/5369/25148 4717/5359/25149 +f 4726/5371/25150 4725/5370/25151 4718/5360/25152 +f 4718/5360/25153 4691/5361/25154 4726/5371/25155 +f 4691/5361/25156 4694/5362/25157 4727/5372/25158 +f 4727/5372/25159 4726/5371/25160 4691/5361/25161 +f 4694/5362/25162 4695/5363/25163 4728/5373/25164 +f 4728/5373/25165 4727/5372/25166 4694/5362/25167 +f 4143/4860/25168 4163/5054/25169 4138/5055/25170 +f 4138/5055/25171 4137/4855/25172 4143/4860/25173 +f 4189/5056/25174 4182/4849/25175 4137/4855/25176 +f 4137/4855/25177 4138/5055/25178 4189/5056/25179 +f 4193/4843/25180 4182/4849/25181 4189/5056/25182 +f 4189/5056/25183 4194/5057/25184 4193/4843/25185 +f 4192/4840/25186 4193/4843/25187 4194/5057/25188 +f 4194/5057/25189 4195/5058/25190 4192/4840/25191 +f 4191/4837/25192 4192/4840/25193 4195/5058/25194 +f 4195/5058/25195 4196/5059/25196 4191/4837/25197 +f 4169/4833/25198 4191/4837/25199 4196/5059/25200 +f 4196/5059/25201 4170/5060/25202 4169/4833/25203 +f 4166/4832/25204 4169/4833/25205 4170/5060/25206 +f 4170/5060/25207 4167/5061/25208 4166/4832/25209 +f 4147/5062/25210 4146/4834/25211 4166/4832/25212 +f 4166/4832/25213 4167/5061/25214 4147/5062/25215 +f 4154/4835/25216 4146/4834/25217 4147/5062/25218 +f 4147/5062/25219 4157/5063/25220 4154/4835/25221 +f 4155/4836/25222 4154/4835/25223 4157/5063/25224 +f 4157/5063/25225 4158/5064/25226 4155/4836/25227 +f 4156/4845/25228 4155/4836/25229 4158/5064/25230 +f 4158/5064/25231 4159/5065/25232 4156/4845/25233 +f 4150/4851/25234 4156/4845/25235 4159/5065/25236 +f 4159/5065/25237 4151/5066/25238 4150/4851/25239 +f 4142/4857/25240 4150/4851/25241 4151/5066/25242 +f 4151/5066/25243 4144/5067/25244 4142/4857/25245 +f 4142/4857/25246 4144/5067/25247 4163/5054/25248 +f 4163/5054/25249 4143/4860/25250 4142/4857/25251 +f 4163/5054/25252 4164/5068/25253 4165/5069/25254 +f 4165/5069/25255 4138/5055/25256 4163/5054/25257 +f 4189/5056/25258 4138/5055/25259 4165/5069/25260 +f 4165/5069/25261 4190/5070/25262 4189/5056/25263 +f 4194/5057/25264 4189/5056/25265 4190/5070/25266 +f 4190/5070/25267 4197/5071/25268 4194/5057/25269 +f 4195/5058/25270 4194/5057/25271 4197/5071/25272 +f 4197/5071/25273 4198/5072/25274 4195/5058/25275 +f 4196/5059/25276 4195/5058/25277 4198/5072/25278 +f 4198/5072/25279 4199/5073/25280 4196/5059/25281 +f 4170/5060/25282 4196/5059/25283 4199/5073/25284 +f 4199/5073/25285 4171/5074/25286 4170/5060/25287 +f 4168/5075/25288 4167/5061/25289 4170/5060/25290 +f 4170/5060/25291 4171/5074/25292 4168/5075/25293 +f 4147/5062/25294 4167/5061/25295 4168/5075/25296 +f 4168/5075/25297 4148/5076/25298 4147/5062/25299 +f 4157/5063/25300 4147/5062/25301 4148/5076/25302 +f 4148/5076/25303 4160/5077/25304 4157/5063/25305 +f 4158/5064/25306 4157/5063/25307 4160/5077/25308 +f 4160/5077/25309 4161/5078/25310 4158/5064/25311 +f 4159/5065/25312 4158/5064/25313 4161/5078/25314 +f 4161/5078/25315 4162/5079/25316 4159/5065/25317 +f 4151/5066/25318 4159/5065/25319 4162/5079/25320 +f 4162/5079/25321 4152/5080/25322 4151/5066/25323 +f 4145/5081/25324 4144/5067/25325 4151/5066/25326 +f 4151/5066/25327 4152/5080/25328 4145/5081/25329 +f 4164/5068/25330 4163/5054/25331 4144/5067/25332 +f 4144/5067/25333 4145/5081/25334 4164/5068/25335 +f 4222/4875/25336 4291/4874/25337 4292/4883/25338 +f 4292/4883/25339 4223/4884/25340 4222/4875/25341 +f 4180/4839/25342 4222/4875/25343 4126/4881/25344 +f 4126/4881/25345 4187/4873/25346 4180/4839/25347 +f 4245/4936/25348 4248/4986/25349 4247/4938/25350 +f 4247/4938/25351 4239/4937/25352 4245/4936/25353 +f 4272/4971/25354 4266/5002/25355 4265/4988/25356 +f 4265/4988/25357 4271/4972/25358 4272/4971/25359 +f 4568/5053/25360 4564/5028/25361 4565/5027/25362 +f 4565/5027/25363 4567/5037/25364 4568/5053/25365 +f 4487/5082/25366 4486/5083/25367 4485/5084/25368 +f 4485/5084/25369 4482/5085/25370 4487/5082/25371 +f 4532/5086/25372 4411/5087/25373 4486/5083/25374 +f 4486/5083/25375 4487/5082/25376 4532/5086/25377 +f 4411/5087/25378 4532/5086/25379 4522/5088/25380 +f 4522/5088/25381 4523/5089/25382 4411/5087/25383 +f 4474/5090/25384 4475/5091/25385 4476/5092/25386 +f 4476/5092/25387 4367/5093/25388 4474/5090/25389 +f 4394/5094/25390 4381/5095/25391 4476/5092/25392 +f 4476/5092/25393 4485/5084/25394 4394/5094/25395 +f 4397/5096/25396 4394/5094/25397 4485/5084/25398 +f 4485/5084/25399 4486/5083/25400 4397/5096/25401 +f 4412/5097/25402 4397/5096/25403 4486/5083/25404 +f 4486/5083/25405 4411/5087/25406 4412/5097/25407 +f 4413/5098/25408 4412/5097/25409 4411/5087/25410 +f 4411/5087/25411 4523/5089/25412 4413/5098/25413 +f 4476/5092/25414 4381/5095/25415 4372/5099/25416 +f 4372/5099/25417 4367/5093/25418 4476/5092/25419 +f 4361/5100/25420 4358/5101/25421 4474/5090/25422 +f 4474/5090/25423 4367/5093/25424 4361/5100/25425 +f 4373/5102/25426 4361/5100/25427 4367/5093/25428 +f 4367/5093/25429 4372/5099/25430 4373/5102/25431 +f 4368/5103/25432 4359/5104/25433 4358/5101/25434 +f 4358/5101/25435 4361/5100/25436 4368/5103/25437 +f 4374/5105/25438 4368/5103/25439 4361/5100/25440 +f 4361/5100/25441 4373/5102/25442 4374/5105/25443 +f 4524/5106/25444 4414/5107/25445 4413/5098/25446 +f 4413/5098/25447 4523/5089/25448 4524/5106/25449 +f 4525/5108/25450 4524/5106/25451 4523/5089/25452 +f 4523/5089/25453 4522/5088/25454 4525/5108/25455 +f 4362/5109/25456 4360/5110/25457 4359/5104/25458 +f 4359/5104/25459 4368/5103/25460 4362/5109/25461 +f 4363/5111/25462 4362/5109/25463 4368/5103/25464 +f 4368/5103/25465 4374/5105/25466 4363/5111/25467 +f 4409/5112/25468 4410/5113/25469 4414/5107/25470 +f 4414/5107/25471 4524/5106/25472 4409/5112/25473 +f 4521/5114/25474 4409/5112/25475 4524/5106/25476 +f 4524/5106/25477 4525/5108/25478 4521/5114/25479 +f 4364/5115/25480 4355/5116/25481 4360/5110/25482 +f 4360/5110/25483 4362/5109/25484 4364/5115/25485 +f 4365/5117/25486 4364/5115/25487 4362/5109/25488 +f 4362/5109/25489 4363/5111/25490 4365/5117/25491 +f 4408/5118/25492 4390/5119/25493 4410/5113/25494 +f 4410/5113/25495 4409/5112/25496 4408/5118/25497 +f 4386/5120/25498 4408/5118/25499 4409/5112/25500 +f 4409/5112/25501 4521/5114/25502 4386/5120/25503 +f 4384/5121/25504 4391/5122/25505 4390/5119/25506 +f 4390/5119/25507 4408/5118/25508 4384/5121/25509 +f 4385/5123/25510 4384/5121/25511 4408/5118/25512 +f 4408/5118/25513 4386/5120/25514 4385/5123/25515 +f 4364/5115/25516 4365/5117/25517 4391/5122/25518 +f 4391/5122/25519 4384/5121/25520 4364/5115/25521 +f 4355/5116/25522 4364/5115/25523 4384/5121/25524 +f 4384/5121/25525 4385/5123/25526 4355/5116/25527 +f 4475/5091/25528 4482/5085/25529 4485/5084/25530 +f 4485/5084/25531 4476/5092/25532 4475/5091/25533 +f 4487/5082/25534 4482/5085/25535 4483/5124/25536 +f 4483/5124/25537 4488/5125/25538 4487/5082/25539 +f 4533/5126/25540 4532/5086/25541 4487/5082/25542 +f 4487/5082/25543 4488/5125/25544 4533/5126/25545 +f 4534/5127/25546 4522/5088/25547 4532/5086/25548 +f 4532/5086/25549 4533/5126/25550 4534/5127/25551 +f 4527/5128/25552 4525/5108/25553 4522/5088/25554 +f 4522/5088/25555 4534/5127/25556 4527/5128/25557 +f 4525/5108/25558 4527/5128/25559 4520/5129/25560 +f 4520/5129/25561 4521/5114/25562 4525/5108/25563 +f 4521/5114/25564 4520/5129/25565 4387/5130/25566 +f 4387/5130/25567 4386/5120/25568 4521/5114/25569 +f 4386/5120/25570 4387/5130/25571 4349/5131/25572 +f 4349/5131/25573 4385/5123/25574 4386/5120/25575 +f 4354/5132/25576 4355/5116/25577 4385/5123/25578 +f 4385/5123/25579 4349/5131/25580 4354/5132/25581 +f 4353/5133/25582 4360/5110/25583 4355/5116/25584 +f 4355/5116/25585 4354/5132/25586 4353/5133/25587 +f 4360/5110/25588 4353/5133/25589 4352/5134/25590 +f 4352/5134/25591 4359/5104/25592 4360/5110/25593 +f 4359/5104/25594 4352/5134/25595 4356/5135/25596 +f 4356/5135/25597 4358/5101/25598 4359/5104/25599 +f 4474/5090/25600 4358/5101/25601 4423/5136/25602 +f 4423/5136/25603 4472/5137/25604 4474/5090/25605 +f 4474/5090/25606 4472/5137/25607 4477/5138/25608 +f 4477/5138/25609 4475/5091/25610 4474/5090/25611 +f 4477/5138/25612 4483/5124/25613 4482/5085/25614 +f 4482/5085/25615 4475/5091/25616 4477/5138/25617 +f 4483/5124/25618 4477/5138/25619 4479/5139/25620 +f 4479/5139/25621 4484/5140/25622 4483/5124/25623 +f 4356/5135/25624 4352/5134/25625 4176/5141/25626 +f 4176/5141/25627 4357/5142/25628 4356/5135/25629 +f 4346/5143/25630 4356/5135/25631 4357/5142/25632 +f 4357/5142/25633 4345/5144/25634 4346/5143/25635 +f 4477/5138/25636 4472/5137/25637 4473/5145/25638 +f 4473/5145/25639 4479/5139/25640 4477/5138/25641 +f 4427/5146/25642 4428/5147/25643 4445/5148/25644 +f 4445/5148/25645 4473/5145/25646 4427/5146/25647 +f 4473/5145/25648 4445/5148/25649 4478/5149/25650 +f 4478/5149/25651 4479/5139/25652 4473/5145/25653 +f 4478/5149/25654 4445/5148/25655 4446/5150/25656 +f 4446/5150/25657 4447/5151/25658 4478/5149/25659 +f 4446/5150/25660 4445/5148/25661 4428/5147/25662 +f 4428/5147/25663 4426/5152/25664 4446/5150/25665 +f 4351/5153/25666 4176/5141/25667 4352/5134/25668 +f 4352/5134/25669 4353/5133/25670 4351/5153/25671 +f 4350/5154/25672 4349/5131/25673 4387/5130/25674 +f 4387/5130/25675 4517/5155/25676 4350/5154/25677 +f 4350/5154/25678 4348/5156/25679 4354/5132/25680 +f 4354/5132/25681 4349/5131/25682 4350/5154/25683 +f 4348/5156/25684 4351/5153/25685 4353/5133/25686 +f 4353/5133/25687 4354/5132/25688 4348/5156/25689 +f 4534/5127/25690 4535/5157/25691 4528/5158/25692 +f 4528/5158/25693 4527/5128/25694 4534/5127/25695 +f 4528/5158/25696 4526/5159/25697 4520/5129/25698 +f 4520/5129/25699 4527/5128/25700 4528/5158/25701 +f 4520/5129/25702 4526/5159/25703 4517/5155/25704 +f 4517/5155/25705 4387/5130/25706 4520/5129/25707 +f 4534/5127/25708 4533/5126/25709 4536/5160/25710 +f 4536/5160/25711 4535/5157/25712 4534/5127/25713 +f 4420/5161/25714 4346/5143/25715 4345/5144/25716 +f 4345/5144/25717 4415/5162/25718 4420/5161/25719 +f 4426/5152/25720 4428/5147/25721 4421/5163/25722 +f 4421/5163/25723 4417/5164/25724 4426/5152/25725 +f 4420/5161/25726 4415/5162/25727 4417/5164/25728 +f 4417/5164/25729 4421/5163/25730 4420/5161/25731 +f 4417/5164/25732 4415/5162/25733 4416/5165/25734 +f 4416/5165/25735 4418/5166/25736 4417/5164/25737 +f 4416/5165/25738 4210/4906/25739 4216/4905/25740 +f 4216/4905/25741 4418/5166/25742 4416/5165/25743 +f 4212/4907/25744 4210/4906/25745 4416/5165/25746 +f 4416/5165/25747 4415/5162/25748 4212/4907/25749 +f 4124/4908/25750 4212/4907/25751 4415/5162/25752 +f 4415/5162/25753 4345/5144/25754 4124/4908/25755 +f 4427/5146/25756 4420/5161/25757 4421/5163/25758 +f 4421/5163/25759 4428/5147/25760 4427/5146/25761 +f 4420/5161/25762 4427/5146/25763 4423/5136/25764 +f 4423/5136/25765 4346/5143/25766 4420/5161/25767 +f 4125/4909/25768 4124/4908/25769 4345/5144/25770 +f 4345/5144/25771 4357/5142/25772 4125/4909/25773 +f 4174/4910/25774 4125/4909/25775 4357/5142/25776 +f 4357/5142/25777 4176/5141/25778 4174/4910/25779 +f 4178/4911/25780 4174/4910/25781 4176/5141/25782 +f 4176/5141/25783 4351/5153/25784 4178/4911/25785 +f 4351/5153/25786 4348/5156/25787 4132/4912/25788 +f 4132/4912/25789 4178/4911/25790 4351/5153/25791 +f 4132/4912/25792 4348/5156/25793 4347/5167/25794 +f 4347/5167/25795 4130/4913/25796 4132/4912/25797 +f 4348/5156/25798 4350/5154/25799 4514/5168/25800 +f 4514/5168/25801 4347/5167/25802 4348/5156/25803 +f 4516/5169/25804 4514/5168/25805 4350/5154/25806 +f 4350/5154/25807 4517/5155/25808 4516/5169/25809 +f 4519/5170/25810 4516/5169/25811 4517/5155/25812 +f 4517/5155/25813 4526/5159/25814 4519/5170/25815 +f 4519/5170/25816 4526/5159/25817 4528/5158/25818 +f 4528/5158/25819 4530/5171/25820 4519/5170/25821 +f 4540/5172/25822 4530/5171/25823 4528/5158/25824 +f 4528/5158/25825 4535/5157/25826 4540/5172/25827 +f 4489/5173/25828 4536/5160/25829 4533/5126/25830 +f 4533/5126/25831 4488/5125/25832 4489/5173/25833 +f 4484/5140/25834 4489/5173/25835 4488/5125/25836 +f 4488/5125/25837 4483/5124/25838 4484/5140/25839 +f 4535/5157/25840 4536/5160/25841 4537/5174/25842 +f 4537/5174/25843 4540/5172/25844 4535/5157/25845 +f 4510/5175/25846 4537/5174/25847 4536/5160/25848 +f 4536/5160/25849 4489/5173/25850 4510/5175/25851 +f 4502/5176/25852 4510/5175/25853 4489/5173/25854 +f 4489/5173/25855 4484/5140/25856 4502/5176/25857 +f 4479/5139/25858 4478/5149/25859 4480/5177/25860 +f 4480/5177/25861 4484/5140/25862 4479/5139/25863 +f 4484/5140/25864 4480/5177/25865 4500/5178/25866 +f 4500/5178/25867 4502/5176/25868 4484/5140/25869 +f 4481/5179/25870 4480/5177/25871 4478/5149/25872 +f 4478/5149/25873 4447/5151/25874 4481/5179/25875 +f 4426/5152/25876 4417/5164/25877 4434/5180/25878 +f 4434/5180/25879 4422/5181/25880 4426/5152/25881 +f 4447/5151/25882 4446/5150/25883 4448/5182/25884 +f 4448/5182/25885 4441/5183/25886 4447/5151/25887 +f 4426/5152/25888 4422/5181/25889 4448/5182/25890 +f 4448/5182/25891 4446/5150/25892 4426/5152/25893 +f 4418/5166/25894 4419/5184/25895 4434/5180/25896 +f 4434/5180/25897 4417/5164/25898 4418/5166/25899 +f 4216/4905/25900 4217/4932/25901 4419/5184/25902 +f 4419/5184/25903 4418/5166/25904 4216/4905/25905 +f 4481/5179/25906 4447/5151/25907 4441/5183/25908 +f 4441/5183/25909 4449/5185/25910 4481/5179/25911 +f 4449/5185/25912 4441/5183/25913 4439/5186/25914 +f 4439/5186/25915 4444/5187/25916 4449/5185/25917 +f 4444/5187/25918 4439/5186/25919 4429/5188/25920 +f 4429/5188/25921 4436/5189/25922 4444/5187/25923 +f 4247/4938/25924 4429/5188/25925 4430/5190/25926 +f 4430/5190/25927 4244/4939/25928 4247/4938/25929 +f 4217/4932/25930 4244/4939/25931 4430/5190/25932 +f 4430/5190/25933 4419/5184/25934 4217/4932/25935 +f 4422/5181/25936 4434/5180/25937 4435/5191/25938 +f 4435/5191/25939 4424/5192/25940 4422/5181/25941 +f 4441/5183/25942 4448/5182/25943 4442/5193/25944 +f 4442/5193/25945 4443/5194/25946 4441/5183/25947 +f 4424/5192/25948 4442/5193/25949 4448/5182/25950 +f 4448/5182/25951 4422/5181/25952 4424/5192/25953 +f 4419/5184/25954 4430/5190/25955 4435/5191/25956 +f 4435/5191/25957 4434/5180/25958 4419/5184/25959 +f 4430/5190/25960 4429/5188/25961 4431/5195/25962 +f 4431/5195/25963 4432/5196/25964 4430/5190/25965 +f 4439/5186/25966 4440/5197/25967 4431/5195/25968 +f 4431/5195/25969 4429/5188/25970 4439/5186/25971 +f 4435/5191/25972 4430/5190/25973 4432/5196/25974 +f 4432/5196/25975 4433/5198/25976 4435/5191/25977 +f 4435/5191/25978 4433/5198/25979 4425/5199/25980 +f 4425/5199/25981 4424/5192/25982 4435/5191/25983 +f 4443/5194/25984 4440/5197/25985 4439/5186/25986 +f 4439/5186/25987 4441/5183/25988 4443/5194/25989 +f 4442/5193/25990 4424/5192/25991 4425/5199/25992 +f 4425/5199/25993 4443/5194/25994 4442/5193/25995 +f 4425/5199/25996 4433/5198/25997 4440/5197/25998 +f 4440/5197/25999 4443/5194/26000 4425/5199/26001 +f 4432/5196/26002 4431/5195/26003 4440/5197/26004 +f 4440/5197/26005 4433/5198/26006 4432/5196/26007 +f 4502/5176/26008 4500/5178/26009 4501/5200/26010 +f 4501/5200/26011 4503/5201/26012 4502/5176/26013 +f 4507/5202/26014 4509/5203/26015 4503/5201/26016 +f 4503/5201/26017 4501/5200/26018 4507/5202/26019 +f 4509/5203/26020 4507/5202/26021 4505/5204/26022 +f 4505/5204/26023 4508/5205/26024 4509/5203/26025 +f 4621/5206/26026 4508/5205/26027 4505/5204/26028 +f 4505/5204/26029 4471/5207/26030 4621/5206/26031 +f 4621/5206/26032 4471/5207/26033 4469/5208/26034 +f 4469/5208/26035 4620/5209/26036 4621/5206/26037 +f 4457/5210/26038 4617/5211/26039 4620/5209/26040 +f 4620/5209/26041 4469/5208/26042 4457/5210/26043 +f 4457/5210/26044 4454/5212/26045 4616/5213/26046 +f 4616/5213/26047 4617/5211/26048 4457/5210/26049 +f 4480/5177/26050 4481/5179/26051 4492/5214/26052 +f 4492/5214/26053 4500/5178/26054 4480/5177/26055 +f 4500/5178/26056 4492/5214/26057 4499/5215/26058 +f 4499/5215/26059 4501/5200/26060 4500/5178/26061 +f 4501/5200/26062 4499/5215/26063 4506/5216/26064 +f 4506/5216/26065 4507/5202/26066 4501/5200/26067 +f 4507/5202/26068 4506/5216/26069 4504/5217/26070 +f 4504/5217/26071 4505/5204/26072 4507/5202/26073 +f 4505/5204/26074 4504/5217/26075 4470/5218/26076 +f 4470/5218/26077 4471/5207/26078 4505/5204/26079 +f 4471/5207/26080 4470/5218/26081 4468/5219/26082 +f 4468/5219/26083 4469/5208/26084 4471/5207/26085 +f 4469/5208/26086 4468/5219/26087 4456/5220/26088 +f 4456/5220/26089 4457/5210/26090 4469/5208/26091 +f 4272/4971/26092 4270/4973/26093 4454/5212/26094 +f 4454/5212/26095 4455/5221/26096 4272/4971/26097 +f 4470/5218/26098 4504/5217/26099 4493/5222/26100 +f 4493/5222/26101 4466/5223/26102 4470/5218/26103 +f 4470/5218/26104 4466/5223/26105 4462/5224/26106 +f 4462/5224/26107 4468/5219/26108 4470/5218/26109 +f 4468/5219/26110 4462/5224/26111 4453/5225/26112 +f 4453/5225/26113 4456/5220/26114 4468/5219/26115 +f 4494/5226/26116 4493/5222/26117 4504/5217/26118 +f 4504/5217/26119 4506/5216/26120 4494/5226/26121 +f 4499/5215/26122 4495/5227/26123 4494/5226/26124 +f 4494/5226/26125 4506/5216/26126 4499/5215/26127 +f 4495/5227/26128 4499/5215/26129 4492/5214/26130 +f 4492/5214/26131 4490/5228/26132 4495/5227/26133 +f 4464/5229/26134 4490/5228/26135 4492/5214/26136 +f 4492/5214/26137 4481/5179/26138 4464/5229/26139 +f 4450/5230/26140 4464/5229/26141 4481/5179/26142 +f 4481/5179/26143 4449/5185/26144 4450/5230/26145 +f 4450/5230/26146 4449/5185/26147 4444/5187/26148 +f 4444/5187/26149 4438/5231/26150 4450/5230/26151 +f 4437/5232/26152 4438/5231/26153 4444/5187/26154 +f 4444/5187/26155 4436/5189/26156 4437/5232/26157 +f 4249/4985/26158 4437/5232/26159 4436/5189/26160 +f 4436/5189/26161 4248/4986/26162 4249/4985/26163 +f 4459/5233/26164 4451/5234/26165 4452/5235/26166 +f 4452/5235/26167 4453/5225/26168 4459/5233/26169 +f 4461/5236/26170 4459/5233/26171 4453/5225/26172 +f 4453/5225/26173 4462/5224/26174 4461/5236/26175 +f 4467/5237/26176 4461/5236/26177 4462/5224/26178 +f 4462/5224/26179 4466/5223/26180 4467/5237/26181 +f 4467/5237/26182 4466/5223/26183 4493/5222/26184 +f 4493/5222/26185 4496/5238/26186 4467/5237/26187 +f 4494/5226/26188 4497/5239/26189 4496/5238/26190 +f 4496/5238/26191 4493/5222/26192 4494/5226/26193 +f 4495/5227/26194 4498/5240/26195 4497/5239/26196 +f 4497/5239/26197 4494/5226/26198 4495/5227/26199 +f 4490/5228/26200 4491/5241/26201 4498/5240/26202 +f 4498/5240/26203 4495/5227/26204 4490/5228/26205 +f 4465/5242/26206 4491/5241/26207 4490/5228/26208 +f 4490/5228/26209 4464/5229/26210 4465/5242/26211 +f 4463/5243/26212 4465/5242/26213 4464/5229/26214 +f 4464/5229/26215 4450/5230/26216 4463/5243/26217 +f 4460/5244/26218 4463/5243/26219 4450/5230/26220 +f 4450/5230/26221 4438/5231/26222 4460/5244/26223 +f 4458/5245/26224 4460/5244/26225 4438/5231/26226 +f 4438/5231/26227 4437/5232/26228 4458/5245/26229 +f 4249/4985/26230 4250/5000/26231 4458/5245/26232 +f 4458/5245/26233 4437/5232/26234 4249/4985/26235 +f 4498/5240/26236 4491/5241/26237 4496/5238/26238 +f 4496/5238/26239 4497/5239/26240 4498/5240/26241 +f 4467/5237/26242 4496/5238/26243 4491/5241/26244 +f 4491/5241/26245 4465/5242/26246 4467/5237/26247 +f 4461/5236/26248 4467/5237/26249 4465/5242/26250 +f 4465/5242/26251 4463/5243/26252 4461/5236/26253 +f 4459/5233/26254 4461/5236/26255 4463/5243/26256 +f 4463/5243/26257 4460/5244/26258 4459/5233/26259 +f 4270/4973/26260 4555/5001/26261 4616/5213/26262 +f 4616/5213/26263 4454/5212/26264 4270/4973/26265 +f 4454/5212/26266 4457/5210/26267 4456/5220/26268 +f 4456/5220/26269 4455/5221/26270 4454/5212/26271 +f 4455/5221/26272 4456/5220/26273 4453/5225/26274 +f 4453/5225/26275 4452/5235/26276 4455/5221/26277 +f 4451/5234/26278 4264/5003/26279 4266/5002/26280 +f 4266/5002/26281 4452/5235/26282 4451/5234/26283 +f 4460/5244/26284 4458/5245/26285 4451/5234/26286 +f 4451/5234/26287 4459/5233/26288 4460/5244/26289 +f 4451/5234/26290 4458/5245/26291 4250/5000/26292 +f 4250/5000/26293 4264/5003/26294 4451/5234/26295 +f 4502/5176/26296 4503/5201/26297 4512/5246/26298 +f 4512/5246/26299 4510/5175/26300 4502/5176/26301 +f 4510/5175/26302 4512/5246/26303 4538/5247/26304 +f 4538/5247/26305 4537/5174/26306 4510/5175/26307 +f 4537/5174/26308 4538/5247/26309 4541/5248/26310 +f 4541/5248/26311 4540/5172/26312 4537/5174/26313 +f 4511/5249/26314 4512/5246/26315 4503/5201/26316 +f 4503/5201/26317 4509/5203/26318 4511/5249/26319 +f 4629/5250/26320 4511/5249/26321 4509/5203/26322 +f 4509/5203/26323 4508/5205/26324 4629/5250/26325 +f 4628/5251/26326 4629/5250/26327 4508/5205/26328 +f 4508/5205/26329 4621/5206/26330 4628/5251/26331 +f 4622/5252/26332 4628/5251/26333 4621/5206/26334 +f 4621/5206/26335 4620/5209/26336 4622/5252/26337 +f 4619/5253/26338 4622/5252/26339 4620/5209/26340 +f 4620/5209/26341 4617/5211/26342 4619/5253/26343 +f 4618/5254/26344 4619/5253/26345 4617/5211/26346 +f 4617/5211/26347 4616/5213/26348 4618/5254/26349 +f 4618/5254/26350 4616/5213/26351 4555/5001/26352 +f 4555/5001/26353 4557/5013/26354 4618/5254/26355 +f 4539/5255/26356 4538/5247/26357 4512/5246/26358 +f 4512/5246/26359 4511/5249/26360 4539/5255/26361 +f 4629/5250/26362 4638/5256/26363 4539/5255/26364 +f 4539/5255/26365 4511/5249/26366 4629/5250/26367 +f 4630/5257/26368 4638/5256/26369 4629/5250/26370 +f 4629/5250/26371 4628/5251/26372 4630/5257/26373 +f 4628/5251/26374 4622/5252/26375 4625/5258/26376 +f 4625/5258/26377 4630/5257/26378 4628/5251/26379 +f 4624/5259/26380 4625/5258/26381 4622/5252/26382 +f 4622/5252/26383 4619/5253/26384 4624/5259/26385 +f 4623/5260/26386 4624/5259/26387 4619/5253/26388 +f 4619/5253/26389 4618/5254/26390 4623/5260/26391 +f 4618/5254/26392 4557/5013/26393 4560/5020/26394 +f 4560/5020/26395 4623/5260/26396 4618/5254/26397 +f 4538/5247/26398 4539/5255/26399 4642/5261/26400 +f 4642/5261/26401 4543/5262/26402 4538/5247/26403 +f 4639/5263/26404 4642/5261/26405 4539/5255/26406 +f 4539/5255/26407 4638/5256/26408 4639/5263/26409 +f 4640/5264/26410 4639/5263/26411 4638/5256/26412 +f 4638/5256/26413 4630/5257/26414 4640/5264/26415 +f 4626/5265/26416 4640/5264/26417 4630/5257/26418 +f 4630/5257/26419 4625/5258/26420 4626/5265/26421 +f 4632/5266/26422 4626/5265/26423 4625/5258/26424 +f 4625/5258/26425 4624/5259/26426 4632/5266/26427 +f 4631/5267/26428 4632/5266/26429 4624/5259/26430 +f 4624/5259/26431 4623/5260/26432 4631/5267/26433 +f 4631/5267/26434 4623/5260/26435 4560/5020/26436 +f 4560/5020/26437 4564/5028/26438 4631/5267/26439 +f 4538/5247/26440 4543/5262/26441 4542/5268/26442 +f 4542/5268/26443 4541/5248/26444 4538/5247/26445 +f 4540/5172/26446 4541/5248/26447 4531/5269/26448 +f 4531/5269/26449 4530/5171/26450 4540/5172/26451 +f 4530/5171/26452 4531/5269/26453 4529/5271/26454 +f 4529/5271/26455 4519/5170/26456 4530/5171/26457 +f 4519/5170/26458 4529/5271/26459 4518/5272/26460 +f 4518/5272/26461 4516/5169/26462 4519/5170/26463 +f 4516/5169/26464 4518/5272/26465 4515/5276/26466 +f 4515/5276/26467 4514/5168/26468 4516/5169/26469 +f 4513/5313/26470 4347/5167/26471 4514/5168/26472 +f 4514/5168/26473 4515/5276/26474 4513/5313/26475 +f 4347/5167/26476 4513/5313/26477 4326/5035/26478 +f 4326/5035/26479 4130/4913/26480 4347/5167/26481 +f 4632/5266/26482 4631/5267/26483 4633/5314/26484 +f 4633/5314/26485 4634/5315/26486 4632/5266/26487 +f 4632/5266/26488 4634/5315/26489 4627/5316/26490 +f 4627/5316/26491 4626/5265/26492 4632/5266/26493 +f 4640/5264/26494 4626/5265/26495 4627/5316/26496 +f 4627/5316/26497 4641/5317/26498 4640/5264/26499 +f 4649/5318/26500 4639/5263/26501 4640/5264/26502 +f 4640/5264/26503 4641/5317/26504 4649/5318/26505 +f 4649/5318/26506 4643/5319/26507 4642/5261/26508 +f 4642/5261/26509 4639/5263/26510 4649/5318/26511 +f 4642/5261/26512 4643/5319/26513 4544/5320/26514 +f 4544/5320/26515 4543/5262/26516 4642/5261/26517 +f 4543/5262/26518 4544/5320/26519 4698/5321/26520 +f 4698/5321/26521 4542/5268/26522 4543/5262/26523 +f 4698/5321/26524 4544/5320/26525 4701/5322/26526 +f 4701/5322/26527 4699/5323/26528 4698/5321/26529 +f 4701/5322/26530 4544/5320/26531 4643/5319/26532 +f 4643/5319/26533 4644/5324/26534 4701/5322/26535 +f 4643/5319/26536 4649/5318/26537 4647/5325/26538 +f 4647/5325/26539 4644/5324/26540 4643/5319/26541 +f 4649/5318/26542 4641/5317/26543 4635/5326/26544 +f 4635/5326/26545 4647/5325/26546 4649/5318/26547 +f 4627/5316/26548 4658/5327/26549 4635/5326/26550 +f 4635/5326/26551 4641/5317/26552 4627/5316/26553 +f 4654/5328/26554 4658/5327/26555 4627/5316/26556 +f 4627/5316/26557 4634/5315/26558 4654/5328/26559 +f 4653/5329/26560 4654/5328/26561 4634/5315/26562 +f 4634/5315/26563 4633/5314/26564 4653/5329/26565 +f 4605/5052/26566 4653/5329/26567 4633/5314/26568 +f 4633/5314/26569 4568/5053/26570 4605/5052/26571 +f 4700/5374/26572 4699/5375/26573 4701/5377/26574 +f 4701/5377/26575 4704/5378/26576 4700/5374/26577 +f 4648/5379/26578 4645/5380/26579 4644/5381/26580 +f 4644/5381/26581 4647/5382/26582 4648/5379/26583 +f 4636/5383/26584 4648/5379/26585 4647/5382/26586 +f 4647/5382/26587 4635/5384/26588 4636/5383/26589 +f 4635/5384/26590 4658/5385/26591 4659/5386/26592 +f 4659/5386/26593 4636/5383/26594 4635/5384/26595 +f 4655/5387/26596 4659/5386/26597 4658/5385/26598 +f 4658/5385/26599 4654/5388/26600 4655/5387/26601 +f 4656/5389/26602 4655/5387/26603 4654/5388/26604 +f 4654/5388/26605 4653/5390/26606 4656/5389/26607 +f 4606/5460/26608 4656/5389/26609 4653/5390/26610 +f 4653/5390/26611 4605/5461/26612 4606/5460/26613 +f 4656/5389/26614 4606/5460/26615 4615/5462/26616 +f 4615/5462/26617 4663/5391/26618 4656/5389/26619 +f 4656/5389/26620 4663/5391/26621 4657/5392/26622 +f 4657/5392/26623 4655/5387/26624 4656/5389/26625 +f 4655/5387/26626 4657/5392/26627 4660/5393/26628 +f 4660/5393/26629 4659/5386/26630 4655/5387/26631 +f 4637/5394/26632 4636/5383/26633 4659/5386/26634 +f 4659/5386/26635 4660/5393/26636 4637/5394/26637 +f 4648/5379/26638 4636/5383/26639 4637/5394/26640 +f 4637/5394/26641 4650/5396/26642 4648/5379/26643 +f 4646/5397/26644 4645/5380/26645 4648/5379/26646 +f 4648/5379/26647 4650/5396/26648 4646/5397/26649 +f 4645/5380/26650 4646/5397/26651 4702/5398/26652 +f 4702/5398/26653 4644/5381/26654 4645/5380/26655 +f 4701/5377/26656 4644/5381/26657 4702/5398/26658 +f 4702/5398/26659 4704/5378/26660 4701/5377/26661 +f 4696/5399/26662 4700/5374/26663 4705/5400/26664 +f 4705/5400/26665 4697/5401/26666 4696/5399/26667 +f 4729/5402/26668 4703/5403/26669 4704/5378/26670 +f 4704/5378/26671 4702/5398/26672 4729/5402/26673 +f 4730/5404/26674 4729/5402/26675 4702/5398/26676 +f 4702/5398/26677 4646/5397/26678 4730/5404/26679 +f 4652/5405/26680 4730/5404/26681 4646/5397/26682 +f 4646/5397/26683 4650/5396/26684 4652/5405/26685 +f 4651/5406/26686 4652/5405/26687 4650/5396/26688 +f 4650/5396/26689 4637/5394/26690 4651/5406/26691 +f 4670/5407/26692 4651/5406/26693 4637/5394/26694 +f 4637/5394/26695 4660/5393/26696 4670/5407/26697 +f 4661/5408/26698 4670/5407/26699 4660/5393/26700 +f 4660/5393/26701 4657/5392/26702 4661/5408/26703 +f 4665/5409/26704 4661/5408/26705 4657/5392/26706 +f 4657/5392/26707 4663/5391/26708 4665/5409/26709 +f 4662/5410/26710 4663/5391/26711 4615/5462/26712 +f 4615/5462/26713 4613/5463/26714 4662/5410/26715 +f 4664/5411/26716 4665/5409/26717 4663/5391/26718 +f 4663/5391/26719 4662/5410/26720 4664/5411/26721 +f 4669/5412/26722 4666/5413/26723 4665/5409/26724 +f 4665/5409/26725 4664/5411/26726 4669/5412/26727 +f 4671/5414/26728 4661/5408/26729 4665/5409/26730 +f 4665/5409/26731 4666/5413/26732 4671/5414/26733 +f 4672/5415/26734 4670/5407/26735 4661/5408/26736 +f 4661/5408/26737 4671/5414/26738 4672/5415/26739 +f 4673/5416/26740 4651/5406/26741 4670/5407/26742 +f 4670/5407/26743 4672/5415/26744 4673/5416/26745 +f 4733/5417/26746 4652/5405/26747 4651/5406/26748 +f 4651/5406/26749 4673/5416/26750 4733/5417/26751 +f 4652/5405/26752 4733/5417/26753 4731/5418/26754 +f 4731/5418/26755 4730/5404/26756 4652/5405/26757 +f 4732/5419/26758 4729/5402/26759 4730/5404/26760 +f 4730/5404/26761 4731/5418/26762 4732/5419/26763 +f 4729/5402/26764 4732/5419/26765 4706/5420/26766 +f 4706/5420/26767 4703/5403/26768 4729/5402/26769 +f 4700/5374/26770 4704/5378/26771 4703/5403/26772 +f 4703/5403/26773 4705/5400/26774 4700/5374/26775 +f 4703/5403/26776 4706/5420/26777 4697/5401/26778 +f 4697/5401/26779 4705/5400/26780 4703/5403/26781 +f 4696/5399/26782 4697/5401/26783 4708/5421/26784 +f 4708/5421/26785 4707/5422/26786 4696/5399/26787 +f 4707/5422/26788 4708/5421/26789 4693/5465/26790 +f 4693/5465/26791 4690/5464/26792 4707/5422/26793 +f 4668/5423/26794 4667/5424/26795 4666/5413/26796 +f 4666/5413/26797 4669/5412/26798 4668/5423/26799 +f 4671/5414/26800 4666/5413/26801 4667/5424/26802 +f 4667/5424/26803 4676/5425/26804 4671/5414/26805 +f 4671/5414/26806 4676/5425/26807 4674/5426/26808 +f 4674/5426/26809 4672/5415/26810 4671/5414/26811 +f 4673/5416/26812 4672/5415/26813 4674/5426/26814 +f 4674/5426/26815 4740/5427/26816 4673/5416/26817 +f 4673/5416/26818 4740/5427/26819 4734/5428/26820 +f 4734/5428/26821 4733/5417/26822 4673/5416/26823 +f 4733/5417/26824 4734/5428/26825 4737/5429/26826 +f 4737/5429/26827 4731/5418/26828 4733/5417/26829 +f 4731/5418/26830 4737/5429/26831 4735/5430/26832 +f 4735/5430/26833 4732/5419/26834 4731/5418/26835 +f 4732/5419/26836 4735/5430/26837 4736/5431/26838 +f 4736/5431/26839 4706/5420/26840 4732/5419/26841 +f 4706/5420/26842 4736/5431/26843 4710/5432/26844 +f 4710/5432/26845 4697/5401/26846 4706/5420/26847 +f 4697/5401/26848 4710/5432/26849 4709/5433/26850 +f 4709/5433/26851 4708/5421/26852 4697/5401/26853 +f 4695/5466/26854 4693/5465/26855 4708/5421/26856 +f 4708/5421/26857 4709/5433/26858 4695/5466/26859 +f 4676/5425/26860 4667/5424/26861 4668/5423/26862 +f 4668/5423/26863 4677/5434/26864 4676/5425/26865 +f 4676/5425/26866 4677/5434/26867 4675/5435/26868 +f 4675/5435/26869 4674/5426/26870 4676/5425/26871 +f 4674/5426/26872 4675/5435/26873 4741/5436/26874 +f 4741/5436/26875 4740/5427/26876 4674/5426/26877 +f 4740/5427/26878 4741/5436/26879 4742/5437/26880 +f 4742/5437/26881 4734/5428/26882 4740/5427/26883 +f 4739/5438/26884 4737/5429/26885 4734/5428/26886 +f 4734/5428/26887 4742/5437/26888 4739/5438/26889 +f 4735/5430/26890 4737/5429/26891 4739/5438/26892 +f 4739/5438/26893 4738/5439/26894 4735/5430/26895 +f 4735/5430/26896 4738/5439/26897 4744/5440/26898 +f 4744/5440/26899 4736/5431/26900 4735/5430/26901 +f 4745/5441/26902 4710/5432/26903 4736/5431/26904 +f 4736/5431/26905 4744/5440/26906 4745/5441/26907 +f 4710/5432/26908 4745/5441/26909 4743/5442/26910 +f 4743/5442/26911 4709/5433/26912 4710/5432/26913 +f 4709/5433/26914 4743/5442/26915 4728/5467/26916 +f 4728/5467/26917 4695/5466/26918 4709/5433/26919 +f 4391/5122/26920 4365/5117/26921 4366/5330/26922 +f 4366/5330/26923 4388/5331/26924 4391/5122/26925 +f 4369/5335/26926 4366/5330/26927 4365/5117/26928 +f 4365/5117/26929 4363/5111/26930 4369/5335/26931 +f 4374/5105/26932 4375/5336/26933 4369/5335/26934 +f 4369/5335/26935 4363/5111/26936 4374/5105/26937 +f 4373/5102/26938 4376/5337/26939 4375/5336/26940 +f 4375/5336/26941 4374/5105/26942 4373/5102/26943 +f 4372/5099/26944 4377/5338/26945 4376/5337/26946 +f 4376/5337/26947 4373/5102/26948 4372/5099/26949 +f 4381/5095/26950 4382/5339/26951 4377/5338/26952 +f 4377/5338/26953 4372/5099/26954 4381/5095/26955 +f 4394/5094/26956 4395/5340/26957 4382/5339/26958 +f 4382/5339/26959 4381/5095/26960 4394/5094/26961 +f 4398/5346/26962 4395/5340/26963 4394/5094/26964 +f 4394/5094/26965 4397/5096/26966 4398/5346/26967 +f 4412/5097/26968 4402/5376/26969 4398/5346/26970 +f 4398/5346/26971 4397/5096/26972 4412/5097/26973 +f 4413/5098/26974 4403/5395/26975 4402/5376/26976 +f 4402/5376/26977 4412/5097/26978 4413/5098/26979 +f 4414/5107/26980 4404/5443/26981 4403/5395/26982 +f 4403/5395/26983 4413/5098/26984 4414/5107/26985 +f 4410/5113/26986 4400/5444/26987 4404/5443/26988 +f 4404/5443/26989 4414/5107/26990 4410/5113/26991 +f 4390/5119/26992 4392/5445/26993 4400/5444/26994 +f 4400/5444/26995 4410/5113/26996 4390/5119/26997 +f 4390/5119/26998 4391/5122/26999 4388/5331/27000 +f 4388/5331/27001 4392/5445/27002 4390/5119/27003 +f 4388/5331/27004 4366/5330/27005 4371/5446/27006 +f 4371/5446/27007 4389/5447/27008 4388/5331/27009 +f 4369/5335/27010 4370/5448/27011 4371/5446/27012 +f 4371/5446/27013 4366/5330/27014 4369/5335/27015 +f 4375/5336/27016 4378/5449/27017 4370/5448/27018 +f 4370/5448/27019 4369/5335/27020 4375/5336/27021 +f 4376/5337/27022 4379/5450/27023 4378/5449/27024 +f 4378/5449/27025 4375/5336/27026 4376/5337/27027 +f 4377/5338/27028 4380/5451/27029 4379/5450/27030 +f 4379/5450/27031 4376/5337/27032 4377/5338/27033 +f 4382/5339/27034 4383/5452/27035 4380/5451/27036 +f 4380/5451/27037 4377/5338/27038 4382/5339/27039 +f 4396/5453/27040 4383/5452/27041 4382/5339/27042 +f 4382/5339/27043 4395/5340/27044 4396/5453/27045 +f 4398/5346/27046 4399/5454/27047 4396/5453/27048 +f 4396/5453/27049 4395/5340/27050 4398/5346/27051 +f 4402/5376/27052 4405/5455/27053 4399/5454/27054 +f 4399/5454/27055 4398/5346/27056 4402/5376/27057 +f 4403/5395/27058 4406/5456/27059 4405/5455/27060 +f 4405/5455/27061 4402/5376/27062 4403/5395/27063 +f 4404/5443/27064 4407/5457/27065 4406/5456/27066 +f 4406/5456/27067 4403/5395/27068 4404/5443/27069 +f 4400/5444/27070 4401/5458/27071 4407/5457/27072 +f 4407/5457/27073 4404/5443/27074 4400/5444/27075 +f 4393/5459/27076 4401/5458/27077 4400/5444/27078 +f 4400/5444/27079 4392/5445/27080 4393/5459/27081 +f 4389/5447/27082 4393/5459/27083 4392/5445/27084 +f 4392/5445/27085 4388/5331/27086 4389/5447/27087 +f 4423/5136/27088 4427/5146/27089 4473/5145/27090 +f 4473/5145/27091 4472/5137/27092 4423/5136/27093 +f 4358/5101/27094 4356/5135/27095 4346/5143/27096 +f 4346/5143/27097 4423/5136/27098 4358/5101/27099 +f 4436/5189/27100 4429/5188/27101 4247/4938/27102 +f 4247/4938/27103 4248/4986/27104 4436/5189/27105 +f 4272/4971/27106 4455/5221/27107 4452/5235/27108 +f 4452/5235/27109 4266/5002/27110 4272/4971/27111 +f 4568/5053/27112 4633/5314/27113 4631/5267/27114 +f 4631/5267/27115 4564/5028/27116 4568/5053/27117 +f 4770/5468/27118 4771/5469/27119 4746/5470/27120 +f 4746/5470/27121 4747/5471/27122 4770/5468/27123 +f 4749/5472/27124 4748/5473/27125 4747/5471/27126 +f 4747/5471/27127 4746/5470/27128 4749/5472/27129 +f 4750/5475/27130 4748/5473/27131 4749/5472/27132 +f 4749/5472/27133 4751/5474/27134 4750/5475/27135 +f 4752/5477/27136 4750/5475/27137 4751/5474/27138 +f 4751/5474/27139 4753/5476/27140 4752/5477/27141 +f 4753/5476/27142 4755/5478/27143 4754/5479/27144 +f 4754/5479/27145 4752/5477/27146 4753/5476/27147 +f 4757/5480/27148 4754/5479/27149 4755/5478/27150 +f 4755/5478/27151 4756/5481/27152 4757/5480/27153 +f 4758/5482/27154 4759/5483/27155 4757/5480/27156 +f 4757/5480/27157 4756/5481/27158 4758/5482/27159 +f 4761/5485/27160 4759/5483/27161 4758/5482/27162 +f 4758/5482/27163 4760/5484/27164 4761/5485/27165 +f 4761/5485/27166 4760/5484/27167 4763/5487/27168 +f 4763/5487/27169 4762/5486/27170 4761/5485/27171 +f 4763/5487/27172 4765/5488/27173 4764/5489/27174 +f 4764/5489/27175 4762/5486/27176 4763/5487/27177 +f 4765/5488/27178 4767/5490/27179 4766/5491/27180 +f 4766/5491/27181 4764/5489/27182 4765/5488/27183 +f 4768/5493/27184 4766/5491/27185 4767/5490/27186 +f 4767/5490/27187 4769/5492/27188 4768/5493/27189 +f 4773/5495/27190 4771/5469/27191 4770/5468/27192 +f 4770/5468/27193 4772/5494/27194 4773/5495/27195 +f 4773/5495/27196 4772/5494/27197 4774/5496/27198 +f 4774/5496/27199 4775/5497/27200 4773/5495/27201 +f 4777/5499/27202 4775/5497/27203 4774/5496/27204 +f 4774/5496/27205 4776/5498/27206 4777/5499/27207 +f 4777/5499/27208 4776/5498/27209 4778/5500/27210 +f 4778/5500/27211 4779/5501/27212 4777/5499/27213 +f 4784/5503/27214 4785/5504/27215 4783/5505/27216 +f 4783/5505/27217 4782/5502/27218 4784/5503/27219 +f 4782/5502/27220 4783/5505/27221 4781/5506/27222 +f 4781/5506/27223 4780/5507/27224 4782/5502/27225 +f 4780/5507/27226 4781/5506/27227 4779/5501/27228 +f 4779/5501/27229 4778/5500/27230 4780/5507/27231 +f 4794/5509/27232 4795/5510/27233 4793/5511/27234 +f 4793/5511/27235 4792/5508/27236 4794/5509/27237 +f 4792/5508/27238 4793/5511/27239 4791/5512/27240 +f 4791/5512/27241 4790/5513/27242 4792/5508/27243 +f 4790/5513/27244 4791/5512/27245 4789/5514/27246 +f 4789/5514/27247 4788/5515/27248 4790/5513/27249 +f 4788/5515/27250 4789/5514/27251 4787/5516/27252 +f 4787/5516/27253 4786/5517/27254 4788/5515/27255 +f 4787/5516/27256 4785/5504/27257 4784/5503/27258 +f 4784/5503/27259 4786/5517/27260 4787/5516/27261 +f 4804/5519/27262 4768/5493/27263 4769/5492/27264 +f 4769/5492/27265 4805/5518/27266 4804/5519/27267 +f 4803/5520/27268 4802/5521/27269 4804/5519/27270 +f 4804/5519/27271 4805/5518/27272 4803/5520/27273 +f 4801/5522/27274 4800/5523/27275 4802/5521/27276 +f 4802/5521/27277 4803/5520/27278 4801/5522/27279 +f 4799/5524/27280 4798/5525/27281 4800/5523/27282 +f 4800/5523/27283 4801/5522/27284 4799/5524/27285 +f 4796/5526/27286 4798/5525/27287 4799/5524/27288 +f 4799/5524/27289 4797/5527/27290 4796/5526/27291 +f 4806/5528/27292 4800/5523/27293 4798/5525/27294 +f 4798/5525/27295 4807/5529/27296 4806/5528/27297 +f 4808/5530/27298 4807/5529/27299 4798/5525/27300 +f 4798/5525/27301 4796/5526/27302 4808/5530/27303 +f 4796/5526/27304 4794/5509/27305 4809/5531/27306 +f 4809/5531/27307 4808/5530/27308 4796/5526/27309 +f 4794/5509/27310 4792/5508/27311 4810/5532/27312 +f 4810/5532/27313 4809/5531/27314 4794/5509/27315 +f 4792/5508/27316 4790/5513/27317 4811/5533/27318 +f 4811/5533/27319 4810/5532/27320 4792/5508/27321 +f 4786/5517/27322 4813/5534/27323 4812/5535/27324 +f 4812/5535/27325 4788/5515/27326 4786/5517/27327 +f 4780/5507/27328 4815/5536/27329 4814/5537/27330 +f 4814/5537/27331 4782/5502/27332 4780/5507/27333 +f 4786/5517/27334 4784/5503/27335 4782/5502/27336 +f 4782/5502/27337 4813/5534/27338 4786/5517/27339 +f 4813/5534/27340 4782/5502/27341 4814/5537/27342 +f 4814/5537/27343 4812/5535/27344 4813/5534/27345 +f 4816/5538/27346 4802/5521/27347 4800/5523/27348 +f 4800/5523/27349 4806/5528/27350 4816/5538/27351 +f 4817/5539/27352 4804/5519/27353 4802/5521/27354 +f 4802/5521/27355 4816/5538/27356 4817/5539/27357 +f 4804/5519/27358 4817/5539/27359 4818/5540/27360 +f 4818/5540/27361 4768/5493/27362 4804/5519/27363 +f 4907/5541/27364 4766/5491/27365 4768/5493/27366 +f 4768/5493/27367 4818/5540/27368 4907/5541/27369 +f 4842/5542/27370 4764/5489/27371 4766/5491/27372 +f 4766/5491/27373 4907/5541/27374 4842/5542/27375 +f 4819/5543/27376 4762/5486/27377 4764/5489/27378 +f 4764/5489/27379 4842/5542/27380 4819/5543/27381 +f 4819/5543/27382 4759/5483/27383 4761/5485/27384 +f 4761/5485/27385 4762/5486/27386 4819/5543/27387 +f 4820/5544/27388 4757/5480/27389 4759/5483/27390 +f 4759/5483/27391 4819/5543/27392 4820/5544/27393 +f 4757/5480/27394 4820/5544/27395 4821/5545/27396 +f 4821/5545/27397 4754/5479/27398 4757/5480/27399 +f 4754/5479/27400 4821/5545/27401 4822/5546/27402 +f 4822/5546/27403 4752/5477/27404 4754/5479/27405 +f 4823/5547/27406 4750/5475/27407 4752/5477/27408 +f 4752/5477/27409 4822/5546/27410 4823/5547/27411 +f 4824/5548/27412 4748/5473/27413 4750/5475/27414 +f 4750/5475/27415 4823/5547/27416 4824/5548/27417 +f 4825/5549/27418 4747/5471/27419 4748/5473/27420 +f 4748/5473/27421 4824/5548/27422 4825/5549/27423 +f 4747/5471/27424 4825/5549/27425 4826/5550/27426 +f 4826/5550/27427 4770/5468/27428 4747/5471/27429 +f 4772/5494/27430 4770/5468/27431 4826/5550/27432 +f 4826/5550/27433 4827/5551/27434 4772/5494/27435 +f 4828/5552/27436 4829/5553/27437 4776/5498/27438 +f 4776/5498/27439 4774/5496/27440 4828/5552/27441 +f 4778/5500/27442 4776/5498/27443 4829/5553/27444 +f 4829/5553/27445 4830/5554/27446 4778/5500/27447 +f 4815/5536/27448 4780/5507/27449 4778/5500/27450 +f 4778/5500/27451 4830/5554/27452 4815/5536/27453 +f 4815/5536/27454 4831/5555/27455 4812/5535/27456 +f 4812/5535/27457 4814/5537/27458 4815/5536/27459 +f 4832/5556/27460 4833/5557/27461 4810/5532/27462 +f 4810/5532/27463 4811/5533/27464 4832/5556/27465 +f 4834/5558/27466 4831/5555/27467 4815/5536/27468 +f 4815/5536/27469 4830/5554/27470 4834/5558/27471 +f 4810/5532/27472 4833/5557/27473 4835/5559/27474 +f 4835/5559/27475 4809/5531/27476 4810/5532/27477 +f 4809/5531/27478 4835/5559/27479 4836/5560/27480 +f 4836/5560/27481 4808/5530/27482 4809/5531/27483 +f 4808/5530/27484 4836/5560/27485 4837/5561/27486 +f 4837/5561/27487 4807/5529/27488 4808/5530/27489 +f 4845/5562/27490 4806/5528/27491 4807/5529/27492 +f 4807/5529/27493 4837/5561/27494 4845/5562/27495 +f 4839/5563/27496 4817/5539/27497 4816/5538/27498 +f 4816/5538/27499 4838/5564/27500 4839/5563/27501 +f 4841/5565/27502 4840/5566/27503 4821/5545/27504 +f 4821/5545/27505 4820/5544/27506 4841/5565/27507 +f 4841/5565/27508 4820/5544/27509 4819/5543/27510 +f 4819/5543/27511 4842/5542/27512 4841/5565/27513 +f 4818/5540/27514 4906/5567/27515 4907/5541/27516 +f 4905/5569/27517 4906/5567/27518 4818/5540/27519 +f 4818/5540/27520 4843/5568/27521 4905/5569/27522 +f 4843/5568/27523 4818/5540/27524 4817/5539/27525 +f 4817/5539/27526 4839/5563/27527 4843/5568/27528 +f 4843/5568/27529 4839/5563/27530 4844/5570/27531 +f 4844/5570/27532 4840/5566/27533 4843/5568/27534 +f 4845/5562/27535 4838/5564/27536 4816/5538/27537 +f 4816/5538/27538 4806/5528/27539 4845/5562/27540 +f 4840/5566/27541 4844/5570/27542 4822/5546/27543 +f 4822/5546/27544 4821/5545/27545 4840/5566/27546 +f 4846/5571/27547 4844/5570/27548 4839/5563/27549 +f 4839/5563/27550 4838/5564/27551 4846/5571/27552 +f 4847/5572/27553 4846/5571/27554 4838/5564/27555 +f 4838/5564/27556 4845/5562/27557 4847/5572/27558 +f 4845/5562/27559 4837/5561/27560 4848/5573/27561 +f 4848/5573/27562 4847/5572/27563 4845/5562/27564 +f 4836/5560/27565 4849/5574/27566 4848/5573/27567 +f 4848/5573/27568 4837/5561/27569 4836/5560/27570 +f 4850/5575/27571 4849/5574/27572 4836/5560/27573 +f 4836/5560/27574 4835/5559/27575 4850/5575/27576 +f 4833/5557/27577 4832/5556/27578 4831/5555/27579 +f 4831/5555/27580 4834/5558/27581 4833/5557/27582 +f 4833/5557/27583 4834/5558/27584 4850/5575/27585 +f 4850/5575/27586 4835/5559/27587 4833/5557/27588 +f 4851/5576/27589 4834/5558/27590 4830/5554/27591 +f 4830/5554/27592 4829/5553/27593 4851/5576/27594 +f 4834/5558/27595 4851/5576/27596 4852/5577/27597 +f 4852/5577/27598 4850/5575/27599 4834/5558/27600 +f 4853/5578/27601 4852/5577/27602 4851/5576/27603 +f 4851/5576/27604 4829/5553/27605 4853/5578/27606 +f 4854/5579/27607 4853/5578/27608 4829/5553/27609 +f 4829/5553/27610 4828/5552/27611 4854/5579/27612 +f 4855/5580/27613 4854/5579/27614 4828/5552/27615 +f 4828/5552/27616 4827/5551/27617 4855/5580/27618 +f 4827/5551/27619 4826/5550/27620 4856/5581/27621 +f 4856/5581/27622 4855/5580/27623 4827/5551/27624 +f 4856/5581/27625 4826/5550/27626 4825/5549/27627 +f 4825/5549/27628 4857/5582/27629 4856/5581/27630 +f 4858/5583/27631 4857/5582/27632 4825/5549/27633 +f 4825/5549/27634 4824/5548/27635 4858/5583/27636 +f 4859/5584/27637 4858/5583/27638 4824/5548/27639 +f 4824/5548/27640 4823/5547/27641 4859/5584/27642 +f 4823/5547/27643 4822/5546/27644 4860/5585/27645 +f 4860/5585/27646 4859/5584/27647 4823/5547/27648 +f 4844/5570/27649 4846/5571/27650 4860/5585/27651 +f 4860/5585/27652 4822/5546/27653 4844/5570/27654 +f 4861/5586/27655 4860/5585/27656 4846/5571/27657 +f 4846/5571/27658 4847/5572/27659 4861/5586/27660 +f 4847/5572/27661 4848/5573/27662 4862/5587/27663 +f 4862/5587/27664 4861/5586/27665 4847/5572/27666 +f 4863/5588/27667 4862/5587/27668 4848/5573/27669 +f 4848/5573/27670 4849/5574/27671 4863/5588/27672 +f 4850/5575/27673 4852/5577/27674 4863/5588/27675 +f 4863/5588/27676 4849/5574/27677 4850/5575/27678 +f 4864/5589/27679 4863/5588/27680 4852/5577/27681 +f 4852/5577/27682 4853/5578/27683 4864/5589/27684 +f 4863/5588/27685 4864/5589/27686 4865/5590/27687 +f 4865/5590/27688 4862/5587/27689 4863/5588/27690 +f 4866/5591/27691 4861/5586/27692 4862/5587/27693 +f 4862/5587/27694 4865/5590/27695 4866/5591/27696 +f 4860/5585/27697 4861/5586/27698 4866/5591/27699 +f 4866/5591/27700 4859/5584/27701 4860/5585/27702 +f 4859/5584/27703 4866/5591/27704 4867/5592/27705 +f 4867/5592/27706 4858/5583/27707 4859/5584/27708 +f 4858/5583/27709 4867/5592/27710 4868/5593/27711 +f 4868/5593/27712 4857/5582/27713 4858/5583/27714 +f 4869/5594/27715 4856/5581/27716 4857/5582/27717 +f 4857/5582/27718 4868/5593/27719 4869/5594/27720 +f 4856/5581/27721 4869/5594/27722 4870/5595/27723 +f 4870/5595/27724 4855/5580/27725 4856/5581/27726 +f 4855/5580/27727 4870/5595/27728 4871/5596/27729 +f 4871/5596/27730 4854/5579/27731 4855/5580/27732 +f 4853/5578/27733 4854/5579/27734 4871/5596/27735 +f 4871/5596/27736 4864/5589/27737 4853/5578/27738 +f 4867/5592/27739 4872/5597/27740 4869/5594/27741 +f 4869/5594/27742 4868/5593/27743 4867/5592/27744 +f 4872/5597/27745 4871/5596/27746 4870/5595/27747 +f 4870/5595/27748 4869/5594/27749 4872/5597/27750 +f 4866/5591/27751 4865/5590/27752 4872/5597/27753 +f 4872/5597/27754 4867/5592/27755 4866/5591/27756 +f 4872/5597/27757 4865/5590/27758 4864/5589/27759 +f 4864/5589/27760 4871/5596/27761 4872/5597/27762 +f 4873/5598/27763 4874/5599/27764 4771/5469/27765 +f 4771/5469/27766 4773/5495/27767 4873/5598/27768 +f 4875/5600/27769 4746/5470/27770 4771/5469/27771 +f 4771/5469/27772 4874/5599/27773 4875/5600/27774 +f 4876/5601/27775 4749/5472/27776 4746/5470/27777 +f 4746/5470/27778 4875/5600/27779 4876/5601/27780 +f 4877/5602/27781 4751/5474/27782 4749/5472/27783 +f 4749/5472/27784 4876/5601/27785 4877/5602/27786 +f 4751/5474/27787 4877/5602/27788 4878/5603/27789 +f 4878/5603/27790 4753/5476/27791 4751/5474/27792 +f 4753/5476/27793 4878/5603/27794 4879/5604/27795 +f 4879/5604/27796 4755/5478/27797 4753/5476/27798 +f 4755/5478/27799 4879/5604/27800 4880/5605/27801 +f 4880/5605/27802 4756/5481/27803 4755/5478/27804 +f 4756/5481/27805 4880/5605/27806 4881/5606/27807 +f 4881/5606/27808 4758/5482/27809 4756/5481/27810 +f 4758/5482/27811 4881/5606/27812 4882/5607/27813 +f 4882/5607/27814 4760/5484/27815 4758/5482/27816 +f 4760/5484/27817 4882/5630/27818 4883/5608/27819 +f 4883/5608/27820 4763/5487/27821 4760/5484/27822 +f 4883/5608/27823 4884/5609/27824 4765/5488/27825 +f 4765/5488/27826 4763/5487/27827 4883/5608/27828 +f 4885/5610/27829 4767/5490/27830 4765/5488/27831 +f 4765/5488/27832 4884/5609/27833 4885/5610/27834 +f 4886/5611/27835 4769/5492/27836 4767/5490/27837 +f 4767/5490/27838 4885/5610/27839 4886/5611/27840 +f 4769/5492/27841 4886/5611/27842 4887/5612/27843 +f 4887/5612/27844 4805/5518/27845 4769/5492/27846 +f 4805/5518/27847 4887/5612/27848 4888/5613/27849 +f 4888/5613/27850 4803/5520/27851 4805/5518/27852 +f 4803/5520/27853 4888/5631/27854 4889/5614/27855 +f 4889/5614/27856 4801/5522/27857 4803/5520/27858 +f 4890/5615/27859 4799/5524/27860 4801/5522/27861 +f 4801/5522/27862 4889/5614/27863 4890/5615/27864 +f 4799/5524/27865 4890/5615/27866 4891/5616/27867 +f 4891/5616/27868 4797/5527/27869 4799/5524/27870 +f 4797/5527/27871 4891/5616/27872 4892/5617/27873 +f 4892/5617/27874 4795/5510/27875 4797/5527/27876 +f 4793/5511/27877 4893/5619/27878 4894/5618/27879 +f 4894/5618/27880 4791/5512/27881 4793/5511/27882 +f 4791/5512/27883 4894/5618/27884 4895/5620/27885 +f 4895/5620/27886 4789/5514/27887 4791/5512/27888 +f 4789/5514/27889 4895/5620/27890 4896/5621/27891 +f 4896/5621/27892 4787/5516/27893 4789/5514/27894 +f 4787/5516/27895 4896/5621/27896 4897/5622/27897 +f 4897/5622/27898 4785/5504/27899 4787/5516/27900 +f 4785/5504/27901 4897/5632/27902 4898/5623/27903 +f 4898/5623/27904 4783/5505/27905 4785/5504/27906 +f 4783/5505/27907 4898/5623/27908 4899/5624/27909 +f 4899/5624/27910 4781/5506/27911 4783/5505/27912 +f 4781/5506/27913 4899/5624/27914 4900/5625/27915 +f 4900/5625/27916 4779/5501/27917 4781/5506/27918 +f 4779/5501/27919 4900/5625/27920 4901/5626/27921 +f 4901/5626/27922 4777/5499/27923 4779/5501/27924 +f 4777/5499/27925 4901/5626/27926 4902/5627/27927 +f 4902/5627/27928 4775/5497/27929 4777/5499/27930 +f 4775/5497/27931 4902/5627/27932 4873/5598/27933 +f 4873/5598/27934 4773/5495/27935 4775/5497/27936 +f 4898/5623/27937 4897/5632/27938 4903/5628/27939 +f 4883/5608/27940 4882/5630/27941 4904/5629/27942 +f 4831/5555/27943 4832/5556/27944 4811/5533/27945 +f 4811/5533/27946 4812/5535/27947 4831/5555/27948 +f 4840/5566/27949 4841/5565/27950 4905/5569/27951 +f 4841/5565/27952 4906/5567/27953 4905/5569/27954 +f 4906/5567/27955 4841/5565/27956 4842/5542/27957 +f 4842/5542/27958 4907/5541/27959 4906/5567/27960 +f 4905/5569/27961 4843/5568/27962 4840/5566/27963 +f 4812/5535/27964 4811/5533/27965 4790/5513/27966 +f 4790/5513/27967 4788/5515/27968 4812/5535/27969 +f 4827/5551/27970 4828/5552/27971 4774/5496/27972 +f 4774/5496/27973 4772/5494/27974 4827/5551/27975 +f 4893/5635/27976 4793/5511/27977 4795/5510/27978 +f 4795/5510/27979 4892/5617/27980 4893/5635/27981 +f 4796/5526/27982 4797/5527/27983 4795/5510/27984 +f 4795/5510/27985 4794/5509/27986 4796/5526/27987 +f 4882/5607/27988 4881/5606/27989 4904/5634/27990 +f 4897/5622/27991 4896/5621/27992 4903/5633/27993 +f 4929/5638/27994 4924/5639/27995 5081/5636/27996 +f 5081/5636/27997 5082/5637/27998 4929/5638/27999 +f 4924/5639/28000 4936/5641/28001 5083/5640/28002 +f 5083/5640/28003 5081/5636/28004 4924/5639/28005 +f 4936/5641/28006 4942/5643/28007 5084/5642/28008 +f 5084/5642/28009 5083/5640/28010 4936/5641/28011 +f 4942/5643/28012 4948/5645/28013 5085/5644/28014 +f 5085/5644/28015 5084/5642/28016 4942/5643/28017 +f 4948/5645/28018 4954/5647/28019 5086/5646/28020 +f 5086/5646/28021 5085/5644/28022 4948/5645/28023 +f 4954/5649/28024 4929/5638/28025 5082/5637/28026 +f 5082/5637/28027 5086/5648/28028 4954/5649/28029 +f 4914/5652/28030 4920/5653/28031 4912/5650/28032 +f 4912/5650/28033 4911/5651/28034 4914/5652/28035 +f 4914/5656/28036 4911/5651/28037 4910/5654/28038 +f 4910/5654/28039 4909/5655/28040 4914/5656/28041 +f 4915/5658/28042 4920/5659/28043 4914/5657/28044 +f 4914/5657/28045 4909/5655/28046 4915/5658/28047 +f 4909/5655/28048 4916/5661/28049 4908/5660/28050 +f 4908/5660/28051 4915/5658/28052 4909/5655/28053 +f 4910/5654/28054 4917/5662/28055 4916/5661/28056 +f 4916/5661/28057 4909/5655/28058 4910/5654/28059 +f 4911/5651/28060 4918/5663/28061 4917/5662/28062 +f 4917/5662/28063 4910/5654/28064 4911/5651/28065 +f 4912/5650/28066 4919/5664/28067 4918/5663/28068 +f 4918/5663/28069 4911/5651/28070 4912/5650/28071 +f 4920/5653/28072 4913/5665/28073 4919/5664/28074 +f 4919/5664/28075 4912/5650/28076 4920/5653/28077 +f 4915/5658/28078 4908/5660/28079 4913/5666/28080 +f 4913/5666/28081 4920/5659/28082 4915/5658/28083 +f 4928/5670/28084 4925/5671/28085 5087/5668/28086 +f 5087/5668/28087 5088/5669/28088 4928/5670/28089 +f 4921/5672/28090 4932/5673/28091 4908/5660/28092 +f 4908/5660/28093 4916/5661/28094 4921/5672/28095 +f 4922/5674/28096 4931/5675/28097 4932/5673/28098 +f 4932/5673/28099 4921/5672/28100 4922/5674/28101 +f 4923/5678/28102 4930/5679/28103 5070/5676/28104 +f 5070/5676/28105 5069/5677/28106 4923/5678/28107 +f 4924/5639/28108 4929/5638/28109 5076/5680/28110 +f 5076/5680/28111 5075/5681/28112 4924/5639/28113 +f 4925/5671/28114 4937/5683/28115 5089/5682/28116 +f 5089/5682/28117 5087/5668/28118 4925/5671/28119 +f 4933/5684/28120 4921/5672/28121 4916/5661/28122 +f 4916/5661/28123 4917/5662/28124 4933/5684/28125 +f 4934/5685/28126 4922/5674/28127 4921/5672/28128 +f 4921/5672/28129 4933/5684/28130 4934/5685/28131 +f 4935/5687/28132 4923/5678/28133 5069/5677/28134 +f 5069/5677/28135 5071/5686/28136 4935/5687/28137 +f 4936/5641/28138 4924/5639/28139 5075/5681/28140 +f 5075/5681/28141 5077/5688/28142 4936/5641/28143 +f 4937/5683/28144 4943/5690/28145 5090/5689/28146 +f 5090/5689/28147 5089/5682/28148 4937/5683/28149 +f 4939/5691/28150 4933/5684/28151 4917/5662/28152 +f 4917/5662/28153 4918/5663/28154 4939/5691/28155 +f 4940/5692/28156 4934/5685/28157 4933/5684/28158 +f 4933/5684/28159 4939/5691/28160 4940/5692/28161 +f 4941/5694/28162 4935/5687/28163 5071/5686/28164 +f 5071/5686/28165 5072/5693/28166 4941/5694/28167 +f 4942/5643/28168 4936/5641/28169 5077/5688/28170 +f 5077/5688/28171 5078/5695/28172 4942/5643/28173 +f 4943/5690/28174 4949/5697/28175 5091/5696/28176 +f 5091/5696/28177 5090/5689/28178 4943/5690/28179 +f 4945/5698/28180 4939/5691/28181 4918/5663/28182 +f 4918/5663/28183 4919/5664/28184 4945/5698/28185 +f 4946/5699/28186 4940/5692/28187 4939/5691/28188 +f 4939/5691/28189 4945/5698/28190 4946/5699/28191 +f 4947/5701/28192 4941/5694/28193 5072/5693/28194 +f 5072/5693/28195 5073/5700/28196 4947/5701/28197 +f 4948/5645/28198 4942/5643/28199 5078/5695/28200 +f 5078/5695/28201 5079/5702/28202 4948/5645/28203 +f 4949/5697/28204 4955/5704/28205 5092/5703/28206 +f 5092/5703/28207 5091/5696/28208 4949/5697/28209 +f 4951/5705/28210 4945/5698/28211 4919/5664/28212 +f 4919/5664/28213 4913/5665/28214 4951/5705/28215 +f 4952/5706/28216 4946/5699/28217 4945/5698/28218 +f 4945/5698/28219 4951/5705/28220 4952/5706/28221 +f 4953/5708/28222 4947/5701/28223 5073/5700/28224 +f 5073/5700/28225 5074/5707/28226 4953/5708/28227 +f 4954/5647/28228 4948/5645/28229 5079/5702/28230 +f 5079/5702/28231 5080/5709/28232 4954/5647/28233 +f 4955/5711/28234 4928/5670/28235 5088/5669/28236 +f 5088/5669/28237 5092/5710/28238 4955/5711/28239 +f 4908/5660/28240 4932/5673/28241 4951/5712/28242 +f 4951/5712/28243 4913/5666/28244 4908/5660/28245 +f 4931/5675/28246 4952/5713/28247 4951/5712/28248 +f 4951/5712/28249 4932/5673/28250 4931/5675/28251 +f 4930/5679/28252 4953/5715/28253 5074/5714/28254 +f 5074/5714/28255 5070/5676/28256 4930/5679/28257 +f 4929/5638/28258 4954/5649/28259 5080/5716/28260 +f 5080/5716/28261 5076/5680/28262 4929/5638/28263 +f 4958/5719/28264 4957/5720/28265 5100/5717/28266 +f 5100/5717/28267 5099/5718/28268 4958/5719/28269 +f 5003/5723/28270 5004/5724/28271 5094/5721/28272 +f 5094/5721/28273 5093/5722/28274 5003/5723/28275 +f 4957/5720/28276 4962/5726/28277 5101/5725/28278 +f 5101/5725/28279 5100/5717/28280 4957/5720/28281 +f 5004/5724/28282 5005/5728/28283 5095/5727/28284 +f 5095/5727/28285 5094/5721/28286 5004/5724/28287 +f 4962/5726/28288 4965/5730/28289 5102/5729/28290 +f 5102/5729/28291 5101/5725/28292 4962/5726/28293 +f 5005/5728/28294 5006/5732/28295 5096/5731/28296 +f 5096/5731/28297 5095/5727/28298 5005/5728/28299 +f 4965/5730/28300 4968/5734/28301 5103/5733/28302 +f 5103/5733/28303 5102/5729/28304 4965/5730/28305 +f 5006/5732/28306 5007/5736/28307 5097/5735/28308 +f 5097/5735/28309 5096/5731/28310 5006/5732/28311 +f 4968/5739/28312 4971/5740/28313 5104/5737/28314 +f 5104/5737/28315 5103/5738/28316 4968/5739/28317 +f 5007/5743/28318 5008/5744/28319 5098/5741/28320 +f 5098/5741/28321 5097/5742/28322 5007/5743/28323 +f 4971/5740/28324 4958/5719/28325 5099/5718/28326 +f 5099/5718/28327 5104/5737/28328 4971/5740/28329 +f 5008/5744/28330 5003/5723/28331 5093/5722/28332 +f 5093/5722/28333 5098/5741/28334 5008/5744/28335 +s 2 +f 4974/5747/28336 4973/5748/28337 5020/5745/28338 +f 5020/5745/28339 5021/5746/28340 4974/5747/28341 +f 4975/5750/28342 4974/5747/28343 5021/5888/28344 +f 5021/5888/28345 4970/5749/28346 4975/5750/28347 +f 4976/5752/28348 4975/5750/28349 4970/5889/28350 +f 4970/5889/28351 4967/5751/28352 4976/5752/28353 +f 4977/5755/28354 4976/5756/28355 4967/5753/28356 +f 4967/5753/28357 4964/5754/28358 4977/5755/28359 +f 4978/5758/28360 4977/5755/28361 4964/5890/28362 +f 4964/5890/28363 4961/5757/28364 4978/5758/28365 +f 4973/5748/28366 4978/5758/28367 4961/5891/28368 +f 4961/5891/28369 5020/5886/28370 4973/5748/28371 +f 4980/5761/28372 4979/5762/28373 4960/5759/28374 +f 4960/5759/28375 4959/5760/28376 4980/5761/28377 +f 4981/5764/28378 4980/5761/28379 4959/5887/28380 +f 4959/5887/28381 4963/5763/28382 4981/5764/28383 +f 4982/5766/28384 4981/5764/28385 4963/5893/28386 +f 4963/5893/28387 4966/5765/28388 4982/5766/28389 +f 4983/5768/28390 4982/5766/28391 4966/5894/28392 +f 4966/5894/28393 4969/5767/28394 4983/5768/28395 +f 4984/5771/28396 4983/5772/28397 4969/5769/28398 +f 4969/5769/28399 4972/5770/28400 4984/5771/28401 +f 4979/5762/28402 4984/5771/28403 4972/5895/28404 +f 4972/5895/28405 4960/5892/28406 4979/5762/28407 +s 1 +f 4986/5773/28408 4985/5774/28409 4973/5748/28410 +f 4973/5748/28411 4974/5747/28412 4986/5773/28413 +f 4987/5775/28414 4986/5773/28415 4974/5747/28416 +f 4974/5747/28417 4975/5750/28418 4987/5775/28419 +f 4988/5776/28420 4987/5775/28421 4975/5750/28422 +f 4975/5750/28423 4976/5752/28424 4988/5776/28425 +f 4989/5777/28426 4988/5778/28427 4976/5756/28428 +f 4976/5756/28429 4977/5755/28430 4989/5777/28431 +f 4990/5779/28432 4989/5777/28433 4977/5755/28434 +f 4977/5755/28435 4978/5758/28436 4990/5779/28437 +f 4985/5774/28438 4990/5779/28439 4978/5758/28440 +f 4978/5758/28441 4973/5748/28442 4985/5774/28443 +f 4992/5780/28444 4991/5781/28445 4979/5762/28446 +f 4979/5762/28447 4980/5761/28448 4992/5780/28449 +f 4993/5782/28450 4992/5780/28451 4980/5761/28452 +f 4980/5761/28453 4981/5764/28454 4993/5782/28455 +f 4994/5783/28456 4993/5782/28457 4981/5764/28458 +f 4981/5764/28459 4982/5766/28460 4994/5783/28461 +f 4995/5784/28462 4994/5783/28463 4982/5766/28464 +f 4982/5766/28465 4983/5768/28466 4995/5784/28467 +f 4996/5785/28468 4995/5786/28469 4983/5772/28470 +f 4983/5772/28471 4984/5771/28472 4996/5785/28473 +f 4991/5781/28474 4996/5785/28475 4984/5771/28476 +f 4984/5771/28477 4979/5762/28478 4991/5781/28479 +f 4998/5787/28480 4997/5788/28481 4985/5774/28482 +f 4985/5774/28483 4986/5773/28484 4998/5787/28485 +f 4999/5789/28486 4998/5787/28487 4986/5773/28488 +f 4986/5773/28489 4987/5775/28490 4999/5789/28491 +f 5000/5790/28492 4999/5789/28493 4987/5775/28494 +f 4987/5775/28495 4988/5776/28496 5000/5790/28497 +f 5001/5791/28498 5000/5792/28499 4988/5778/28500 +f 4988/5778/28501 4989/5777/28502 5001/5791/28503 +f 5002/5793/28504 5001/5791/28505 4989/5777/28506 +f 4989/5777/28507 4990/5779/28508 5002/5793/28509 +f 4997/5788/28510 5002/5793/28511 4990/5779/28512 +f 4990/5779/28513 4985/5774/28514 4997/5788/28515 +f 5004/5724/28516 5003/5723/28517 4991/5781/28518 +f 4991/5781/28519 4992/5780/28520 5004/5724/28521 +f 5005/5728/28522 5004/5724/28523 4992/5780/28524 +f 4992/5780/28525 4993/5782/28526 5005/5728/28527 +f 5006/5732/28528 5005/5728/28529 4993/5782/28530 +f 4993/5782/28531 4994/5783/28532 5006/5732/28533 +f 5007/5736/28534 5006/5732/28535 4994/5783/28536 +f 4994/5783/28537 4995/5784/28538 5007/5736/28539 +f 5008/5744/28540 5007/5743/28541 4995/5786/28542 +f 4995/5786/28543 4996/5785/28544 5008/5744/28545 +f 5003/5723/28546 5008/5744/28547 4996/5785/28548 +f 4996/5785/28549 4991/5781/28550 5003/5723/28551 +f 5012/5796/28552 5011/5797/28553 5010/5794/28554 +f 5010/5794/28555 5009/5795/28556 5012/5796/28557 +f 5012/5796/28558 5014/5799/28559 5013/5798/28560 +f 5013/5798/28561 5011/5797/28562 5012/5796/28563 +f 5015/5800/28564 5014/5799/28565 5012/5796/28566 +f 5012/5796/28567 5009/5795/28568 5015/5800/28569 +f 5014/5799/28570 5015/5800/28571 5016/5801/28572 +f 5016/5801/28573 5017/5802/28574 5014/5799/28575 +f 5013/5798/28576 5014/5799/28577 5017/5802/28578 +f 5017/5802/28579 5022/5803/28580 5013/5798/28581 +f 5011/5885/28582 5013/5798/28583 5022/5803/28584 +f 5022/5803/28585 5018/5804/28586 5011/5885/28587 +f 5010/5806/28588 5011/5885/28589 5018/5804/28590 +f 5018/5804/28591 5019/5805/28592 5010/5806/28593 +f 5009/5884/28594 5010/5809/28595 5019/5807/28596 +f 5019/5807/28597 5023/5808/28598 5009/5884/28599 +f 5015/5800/28600 5009/5884/28601 5023/5808/28602 +f 5023/5808/28603 5016/5801/28604 5015/5800/28605 +f 5021/5878/28606 5020/5667/28607 5105/5810/28608 +f 5105/5810/28609 5106/5811/28610 5021/5878/28611 +f 5020/5667/28612 4961/5883/28613 5107/5812/28614 +f 5107/5812/28615 5105/5810/28616 5020/5667/28617 +f 4961/5883/28618 4964/5882/28619 5108/5813/28620 +f 5108/5813/28621 5107/5812/28622 4961/5883/28623 +f 4964/5882/28624 4967/5881/28625 5109/5814/28626 +f 5109/5814/28627 5108/5813/28628 4964/5882/28629 +f 4967/5880/28630 4970/5879/28631 5110/5815/28632 +f 5110/5815/28633 5109/5816/28634 4967/5880/28635 +f 4970/5879/28636 5021/5878/28637 5106/5811/28638 +f 5106/5811/28639 5110/5815/28640 4970/5879/28641 +f 5030/5819/28642 5029/5820/28643 5024/5817/28644 +f 5024/5817/28645 5025/5818/28646 5030/5819/28647 +s 2 +f 5031/5822/28648 5030/5819/28649 5025/5818/28650 +f 5025/5818/28651 5026/5821/28652 5031/5822/28653 +s 4 +f 5032/5825/28654 5031/5826/28655 5026/5823/28656 +f 5026/5823/28657 5027/5824/28658 5032/5825/28659 +f 5033/5828/28660 5032/5825/28661 5027/5824/28662 +f 5027/5824/28663 5028/5827/28664 5033/5828/28665 +s 1 +f 5029/5820/28666 5033/5828/28667 5028/5827/28668 +f 5028/5827/28669 5024/5817/28670 5029/5820/28671 +f 5035/5829/28672 5034/5830/28673 5029/5820/28674 +f 5029/5820/28675 5030/5819/28676 5035/5829/28677 +s 2 +f 5036/5831/28678 5035/5829/28679 5030/5819/28680 +f 5030/5819/28681 5031/5822/28682 5036/5831/28683 +s 4 +f 5037/5832/28684 5036/5833/28685 5031/5826/28686 +f 5031/5826/28687 5032/5825/28688 5037/5832/28689 +f 5038/5834/28690 5037/5832/28691 5032/5825/28692 +f 5032/5825/28693 5033/5828/28694 5038/5834/28695 +s 1 +f 5034/5830/28696 5038/5834/28697 5033/5828/28698 +f 5033/5828/28699 5029/5820/28700 5034/5830/28701 +f 5040/5835/28702 5039/5836/28703 5034/5830/28704 +f 5034/5830/28705 5035/5829/28706 5040/5835/28707 +s 2 +f 5041/5837/28708 5040/5835/28709 5035/5829/28710 +f 5035/5829/28711 5036/5831/28712 5041/5837/28713 +s 4 +f 5042/5838/28714 5041/5839/28715 5036/5833/28716 +f 5036/5833/28717 5037/5832/28718 5042/5838/28719 +f 5043/5840/28720 5042/5838/28721 5037/5832/28722 +f 5037/5832/28723 5038/5834/28724 5043/5840/28725 +s 1 +f 5039/5836/28726 5043/5840/28727 5038/5834/28728 +f 5038/5834/28729 5034/5830/28730 5039/5836/28731 +f 5045/5841/28732 5044/5842/28733 5039/5836/28734 +f 5039/5836/28735 5040/5835/28736 5045/5841/28737 +s 2 +f 5046/5843/28738 5045/5841/28739 5040/5835/28740 +f 5040/5835/28741 5041/5837/28742 5046/5843/28743 +s 4 +f 5047/5844/28744 5046/5845/28745 5041/5839/28746 +f 5041/5839/28747 5042/5838/28748 5047/5844/28749 +f 5048/5846/28750 5047/5844/28751 5042/5838/28752 +f 5042/5838/28753 5043/5840/28754 5048/5846/28755 +s 1 +f 5044/5842/28756 5048/5846/28757 5043/5840/28758 +f 5043/5840/28759 5039/5836/28760 5044/5842/28761 +f 5050/5847/28762 5049/5848/28763 5044/5842/28764 +f 5044/5842/28765 5045/5841/28766 5050/5847/28767 +s 2 +f 5051/5849/28768 5050/5847/28769 5045/5841/28770 +f 5045/5841/28771 5046/5843/28772 5051/5849/28773 +s 4 +f 5052/5850/28774 5051/5851/28775 5046/5845/28776 +f 5046/5845/28777 5047/5844/28778 5052/5850/28779 +f 5053/5852/28780 5052/5850/28781 5047/5844/28782 +f 5047/5844/28783 5048/5846/28784 5053/5852/28785 +s 1 +f 5049/5848/28786 5053/5852/28787 5048/5846/28788 +f 5048/5846/28789 5044/5842/28790 5049/5848/28791 +f 5055/5853/28792 5054/5854/28793 5049/5848/28794 +f 5049/5848/28795 5050/5847/28796 5055/5853/28797 +s 2 +f 5056/5855/28798 5055/5853/28799 5050/5847/28800 +f 5050/5847/28801 5051/5849/28802 5056/5855/28803 +s 4 +f 5057/5856/28804 5056/5857/28805 5051/5851/28806 +f 5051/5851/28807 5052/5850/28808 5057/5856/28809 +f 5058/5858/28810 5057/5856/28811 5052/5850/28812 +f 5052/5850/28813 5053/5852/28814 5058/5858/28815 +s 1 +f 5054/5854/28816 5058/5858/28817 5053/5852/28818 +f 5053/5852/28819 5049/5848/28820 5054/5854/28821 +f 5060/5859/28822 5059/5860/28823 5054/5854/28824 +f 5054/5854/28825 5055/5853/28826 5060/5859/28827 +s 2 +f 5061/5861/28828 5060/5859/28829 5055/5853/28830 +f 5055/5853/28831 5056/5855/28832 5061/5861/28833 +s 4 +f 5062/5862/28834 5061/5863/28835 5056/5857/28836 +f 5056/5857/28837 5057/5856/28838 5062/5862/28839 +f 5063/5864/28840 5062/5862/28841 5057/5856/28842 +f 5057/5856/28843 5058/5858/28844 5063/5864/28845 +s 1 +f 5059/5860/28846 5063/5864/28847 5058/5858/28848 +f 5058/5858/28849 5054/5854/28850 5059/5860/28851 +f 5065/5865/28852 5064/5866/28853 5059/5860/28854 +f 5059/5860/28855 5060/5859/28856 5065/5865/28857 +s 2 +f 5066/5867/28858 5065/5865/28859 5060/5859/28860 +f 5060/5859/28861 5061/5861/28862 5066/5867/28863 +s 4 +f 5067/5868/28864 5066/5869/28865 5061/5863/28866 +f 5061/5863/28867 5062/5862/28868 5067/5868/28869 +f 5068/5870/28870 5067/5868/28871 5062/5862/28872 +f 5062/5862/28873 5063/5864/28874 5068/5870/28875 +s 1 +f 5064/5866/28876 5068/5870/28877 5063/5864/28878 +f 5063/5864/28879 5059/5860/28880 5064/5866/28881 +f 5069/5677/28882 5070/5676/28883 4931/5675/28884 +f 4931/5675/28885 4922/5674/28886 5069/5677/28887 +f 5071/5686/28888 5069/5677/28889 4922/5674/28890 +f 4922/5674/28891 4934/5685/28892 5071/5686/28893 +f 5072/5693/28894 5071/5686/28895 4934/5685/28896 +f 4934/5685/28897 4940/5692/28898 5072/5693/28899 +f 5073/5700/28900 5072/5693/28901 4940/5692/28902 +f 4940/5692/28903 4946/5699/28904 5073/5700/28905 +f 5074/5707/28906 5073/5700/28907 4946/5699/28908 +f 4946/5699/28909 4952/5706/28910 5074/5707/28911 +f 5070/5676/28912 5074/5714/28913 4952/5713/28914 +f 4952/5713/28915 4931/5675/28916 5070/5676/28917 +f 5075/5681/28918 5076/5680/28919 4930/5679/28920 +f 4930/5679/28921 4923/5678/28922 5075/5681/28923 +f 5077/5688/28924 5075/5681/28925 4923/5678/28926 +f 4923/5678/28927 4935/5687/28928 5077/5688/28929 +f 5078/5695/28930 5077/5688/28931 4935/5687/28932 +f 4935/5687/28933 4941/5694/28934 5078/5695/28935 +f 5079/5702/28936 5078/5695/28937 4941/5694/28938 +f 4941/5694/28939 4947/5701/28940 5079/5702/28941 +f 5080/5709/28942 5079/5702/28943 4947/5701/28944 +f 4947/5701/28945 4953/5708/28946 5080/5709/28947 +f 5076/5680/28948 5080/5716/28949 4953/5715/28950 +f 4953/5715/28951 4930/5679/28952 5076/5680/28953 +f 5082/5637/28954 5081/5636/28955 4925/5671/28956 +f 4925/5671/28957 4928/5670/28958 5082/5637/28959 +f 5081/5636/28960 5083/5640/28961 4937/5683/28962 +f 4937/5683/28963 4925/5671/28964 5081/5636/28965 +f 5083/5640/28966 5084/5642/28967 4943/5690/28968 +f 4943/5690/28969 4937/5683/28970 5083/5640/28971 +f 5084/5642/28972 5085/5644/28973 4949/5697/28974 +f 4949/5697/28975 4943/5690/28976 5084/5642/28977 +f 5085/5644/28978 5086/5646/28979 4955/5704/28980 +f 4955/5704/28981 4949/5697/28982 5085/5644/28983 +f 5086/5648/28984 5082/5637/28985 4928/5670/28986 +f 4928/5670/28987 4955/5711/28988 5086/5648/28989 +f 5088/5669/28990 5087/5668/28991 4926/5871/28992 +f 4926/5871/28993 4927/5872/28994 5088/5669/28995 +f 5087/5668/28996 5089/5682/28997 4938/5873/28998 +f 4938/5873/28999 4926/5871/29000 5087/5668/29001 +f 5089/5682/29002 5090/5689/29003 4944/5874/29004 +f 4944/5874/29005 4938/5873/29006 5089/5682/29007 +f 5090/5689/29008 5091/5696/29009 4950/5875/29010 +f 4950/5875/29011 4944/5874/29012 5090/5689/29013 +f 5091/5696/29014 5092/5703/29015 4956/5876/29016 +f 4956/5876/29017 4950/5875/29018 5091/5696/29019 +f 5092/5710/29020 5088/5669/29021 4927/5872/29022 +f 4927/5872/29023 4956/5877/29024 5092/5710/29025 +f 5093/5722/29026 5094/5721/29027 4957/5720/29028 +f 4957/5720/29029 4958/5719/29030 5093/5722/29031 +f 5094/5721/29032 5095/5727/29033 4962/5726/29034 +f 4962/5726/29035 4957/5720/29036 5094/5721/29037 +f 5095/5727/29038 5096/5731/29039 4965/5730/29040 +f 4965/5730/29041 4962/5726/29042 5095/5727/29043 +f 5096/5731/29044 5097/5735/29045 4968/5734/29046 +f 4968/5734/29047 4965/5730/29048 5096/5731/29049 +f 5097/5742/29050 5098/5741/29051 4971/5740/29052 +f 4971/5740/29053 4968/5739/29054 5097/5742/29055 +f 5098/5741/29056 5093/5722/29057 4958/5719/29058 +f 4958/5719/29059 4971/5740/29060 5098/5741/29061 +f 5099/5718/29062 5100/5717/29063 4997/5788/29064 +f 4997/5788/29065 4998/5787/29066 5099/5718/29067 +f 5100/5717/29068 5101/5725/29069 5002/5793/29070 +f 5002/5793/29071 4997/5788/29072 5100/5717/29073 +f 5101/5725/29074 5102/5729/29075 5001/5791/29076 +f 5001/5791/29077 5002/5793/29078 5101/5725/29079 +f 5102/5729/29080 5103/5733/29081 5000/5792/29082 +f 5000/5792/29083 5001/5791/29084 5102/5729/29085 +f 5103/5738/29086 5104/5737/29087 4999/5789/29088 +f 4999/5789/29089 5000/5790/29090 5103/5738/29091 +f 5104/5737/29092 5099/5718/29093 4998/5787/29094 +f 4998/5787/29095 4999/5789/29096 5104/5737/29097 +f 5106/5811/29098 5105/5810/29099 5017/5802/29100 +f 5017/5802/29101 5016/5801/29102 5106/5811/29103 +f 5105/5810/29104 5107/5812/29105 5022/5803/29106 +f 5022/5803/29107 5017/5802/29108 5105/5810/29109 +f 5107/5812/29110 5108/5813/29111 5018/5804/29112 +f 5018/5804/29113 5022/5803/29114 5107/5812/29115 +f 5108/5813/29116 5109/5814/29117 5019/5805/29118 +f 5019/5805/29119 5018/5804/29120 5108/5813/29121 +f 5109/5816/29122 5110/5815/29123 5023/5808/29124 +f 5023/5808/29125 5019/5807/29126 5109/5816/29127 +f 5110/5815/29128 5106/5811/29129 5016/5801/29130 +f 5016/5801/29131 5023/5808/29132 5110/5815/29133 +f 5111/5898/29134 5114/5901/29135 5113/5902/29136 +f 5113/5902/29137 5112/5897/29138 5111/5898/29139 +f 5113/5902/29140 5114/5901/29141 5115/5904/29142 +f 5115/5904/29143 5116/5906/29144 5113/5902/29145 +f 5118/5910/29146 5111/5898/29147 5112/5897/29148 +f 5112/5897/29149 5117/5907/29150 5118/5910/29151 +f 5120/5924/29152 5118/5910/29153 5117/5907/29154 +f 5117/5907/29155 5119/5912/29156 5120/5924/29157 +f 5116/5906/29158 5115/5904/29159 5173/5925/29160 +f 5173/5925/29161 5172/5926/29162 5116/5906/29163 +f 5121/5927/29164 5122/5928/29165 5119/5912/29166 +f 5119/5912/29167 5117/5907/29168 5121/5927/29169 +f 5123/5929/29170 5124/5930/29171 5122/5928/29172 +f 5122/5928/29173 5121/5927/29174 5123/5929/29175 +f 5126/5932/29176 5123/5929/29177 5121/5927/29178 +f 5121/5927/29179 5125/5931/29180 5126/5932/29181 +f 5128/5934/29182 5126/5932/29183 5125/5931/29184 +f 5125/5931/29185 5127/5933/29186 5128/5934/29187 +f 5129/5935/29188 5128/5934/29189 5127/5933/29190 +f 5131/5899/29191 5126/5900/29192 5128/5903/29193 +f 5128/5903/29194 5130/5896/29195 5131/5899/29196 +f 5132/5905/29197 5133/5908/29198 5124/5909/29199 +f 5124/5909/29200 5123/5911/29201 5132/5905/29202 +f 5123/5911/29203 5126/5900/29204 5131/5899/29205 +f 5131/5899/29206 5132/5905/29207 5123/5911/29208 +f 5133/5921/29209 5132/5922/29210 5134/5919/29211 +f 5134/5919/29212 5135/5920/29213 5133/5921/29214 +f 5132/5922/29215 5131/5966/29216 5136/5969/29217 +f 5136/5969/29218 5134/5919/29219 5132/5922/29220 +f 5136/5969/29221 5131/5966/29222 5130/5970/29223 +f 5130/5970/29224 5137/5974/29225 5136/5969/29226 +f 5128/5903/29227 5129/5913/29228 5138/5914/29229 +f 5138/5914/29230 5130/5896/29231 5128/5903/29232 +f 5137/5974/29233 5130/5970/29234 5138/5976/29235 +f 5138/5976/29236 5139/5975/29237 5137/5974/29238 +f 5142/5937/29239 5125/5931/29240 5121/5927/29241 +f 5121/5927/29242 5140/5936/29243 5142/5937/29244 +f 5140/5936/29245 5121/5927/29246 5117/5907/29247 +f 5117/5907/29248 5112/5897/29249 5140/5936/29250 +f 5112/5897/29251 5113/5902/29252 5140/5936/29253 +f 5141/5938/29254 5140/5936/29255 5113/5902/29256 +f 5113/5902/29257 5116/5906/29258 5141/5938/29259 +f 5143/5939/29260 5142/5937/29261 5140/5936/29262 +f 5140/5936/29263 5141/5938/29264 5143/5939/29265 +f 5125/5931/29266 5142/5937/29267 5144/5940/29268 +f 5144/5940/29269 5127/5933/29270 5125/5931/29271 +f 5144/5940/29272 5142/5937/29273 5145/5941/29274 +f 5127/5933/29275 5144/5940/29276 5146/5942/29277 +f 5146/5942/29278 5129/5935/29279 5127/5933/29280 +f 5145/5941/29281 5148/5943/29282 5144/5940/29283 +f 5147/5944/29284 5146/5942/29285 5144/5940/29286 +f 5148/5943/29287 5147/5944/29288 5144/5940/29289 +f 5149/5945/29290 5150/5946/29291 5148/5943/29292 +f 5148/5943/29293 5145/5941/29294 5149/5945/29295 +f 5145/5941/29296 5142/5937/29297 5151/5947/29298 +f 5151/5947/29299 5149/5945/29300 5145/5941/29301 +f 5152/5948/29302 5151/5947/29303 5142/5937/29304 +f 5142/5937/29305 5143/5939/29306 5152/5948/29307 +f 5143/5939/29308 5141/5938/29309 5154/5949/29310 +f 5153/5950/29311 5152/5948/29312 5143/5939/29313 +f 5143/5939/29314 5154/5949/29315 5153/5950/29316 +f 5156/5952/29317 5154/5949/29318 5157/5953/29319 +f 5157/5953/29320 5155/5951/29321 5156/5952/29322 +f 5159/5955/29323 5157/5953/29324 5161/5956/29325 +f 5161/5956/29326 5158/5954/29327 5159/5955/29328 +f 5141/5938/29329 5116/5906/29330 5161/5956/29331 +f 5160/5957/29332 5169/5959/29333 5116/5906/29334 +f 5116/5906/29335 5172/5926/29336 5160/5957/29337 +f 5161/5956/29338 5162/5962/29339 5163/5960/29340 +f 5163/5960/29341 5183/5961/29342 5161/5956/29343 +s 2 +f 5161/5956/29344 5183/5961/29345 5164/5963/29346 +f 5164/5963/29347 5158/5954/29348 5161/5956/29349 +f 5165/5964/29350 5180/5965/29351 5153/5950/29352 +f 5153/5950/29353 5154/5949/29354 5165/5964/29355 +s 4 +f 5166/5967/29356 5165/5964/29357 5154/5949/29358 +f 5154/5949/29359 5156/5952/29360 5166/5967/29361 +f 5157/5953/29362 5159/5955/29363 5167/5968/29364 +f 5167/5968/29365 5182/5978/29366 5157/5953/29367 +s 2 +f 5157/5953/29368 5182/5978/29369 5168/5985/29370 +f 5168/5985/29371 5155/5951/29372 5157/5953/29373 +s 8 +f 5166/5967/29374 5156/5952/29375 5155/5951/29376 +f 5155/5951/29377 5168/5985/29378 5166/5967/29379 +s 4 +f 5167/5968/29380 5159/5955/29381 5158/5954/29382 +f 5158/5954/29383 5164/5963/29384 5167/5968/29385 +s 1 +f 5169/5959/29386 5161/5956/29387 5116/5906/29388 +f 5162/5962/29389 5161/5956/29390 5169/5959/29391 +f 5162/5962/29392 5169/5959/29393 5170/5986/29394 +f 5170/5986/29395 5163/5960/29396 5162/5962/29397 +f 5160/5957/29398 5171/5987/29399 5170/5986/29400 +f 5170/5986/29401 5169/5959/29402 5160/5957/29403 +f 5171/5987/29404 5160/5957/29405 5172/5926/29406 +f 5172/5926/29407 5173/5925/29408 5171/5987/29409 +s 2 +f 5129/5935/29410 5146/5942/29411 5139/5988/29412 +f 5139/5988/29413 5138/5989/29414 5129/5935/29415 +f 5146/5942/29416 5147/5944/29417 5174/5990/29418 +f 5174/5990/29419 5139/5988/29420 5146/5942/29421 +s 1 +f 5139/5975/29422 5174/5979/29423 5175/5977/29424 +f 5175/5977/29425 5137/5974/29426 5139/5975/29427 +s 4 +f 5177/5998/29428 5150/5946/29429 5149/5945/29430 +f 5149/5945/29431 5176/5997/29432 5177/5998/29433 +f 5149/5945/29434 5151/5947/29435 5178/6001/29436 +f 5178/6001/29437 5176/5997/29438 5149/5945/29439 +f 5152/5948/29440 5179/6002/29441 5178/6001/29442 +f 5178/6001/29443 5151/5947/29444 5152/5948/29445 +f 5153/5950/29446 5180/5965/29447 5179/6002/29448 +f 5179/6002/29449 5152/5948/29450 5153/5950/29451 +s 1 +f 5180/5984/29452 5165/6005/29453 5181/5981/29454 +f 5181/5981/29455 5179/5982/29456 5180/5984/29457 +f 5166/6007/29458 5168/6008/29459 5182/6006/29460 +f 5182/6006/29461 5165/6005/29462 5166/6007/29463 +f 5167/6010/29464 5164/6011/29465 5183/6009/29466 +f 5183/6009/29467 5182/6006/29468 5167/6010/29469 +f 5163/6024/29470 5170/6025/29471 5184/6012/29472 +f 5184/6012/29473 5183/6009/29474 5163/6024/29475 +f 5184/6012/29476 5170/6025/29477 5171/6032/29478 +f 5171/6032/29479 5185/6063/29480 5184/6012/29481 +f 5186/6065/29482 5185/6063/29483 5171/6032/29484 +f 5171/6032/29485 5173/6064/29486 5186/6065/29487 +f 5188/6066/29488 5303/6177/29489 5186/6065/29490 +f 5188/5915/29491 5186/5916/29492 5115/5917/29493 +f 5115/5917/29494 5114/5918/29495 5188/5915/29496 +f 5186/5916/29497 5173/5923/29498 5115/5917/29499 +f 5187/5958/29500 5188/5915/29501 5114/5918/29502 +f 5114/5918/29503 5111/5971/29504 5187/5958/29505 +f 5188/6066/29506 5187/6073/29507 5302/6176/29508 +f 5302/6176/29509 5303/6177/29510 5188/6066/29511 +f 5184/6012/29512 5189/6075/29513 5190/6079/29514 +f 5190/6079/29515 5183/6009/29516 5184/6012/29517 +f 5182/6006/29518 5183/6009/29519 5190/6079/29520 +f 5165/6005/29521 5182/6006/29522 5190/6079/29523 +f 5190/6079/29524 5189/6075/29525 5181/5981/29526 +f 5181/5981/29527 5165/6005/29528 5190/6079/29529 +f 5191/6082/29530 5178/6086/29531 5179/5982/29532 +f 5179/5982/29533 5181/5981/29534 5191/6082/29535 +f 5192/6087/29536 5176/6088/29537 5178/6086/29538 +f 5178/6086/29539 5191/6082/29540 5192/6087/29541 +f 5176/6088/29542 5192/6087/29543 5193/6089/29544 +f 5193/6089/29545 5177/6090/29546 5176/6088/29547 +s 2 +f 5148/5943/29548 5150/5946/29549 5177/5998/29550 +f 5177/5998/29551 5193/6023/29552 5148/5943/29553 +s 4 +f 5147/5944/29554 5148/5943/29555 5193/6023/29556 +f 5193/6023/29557 5174/5990/29558 5147/5944/29559 +s 1 +f 5193/6023/29560 5175/6027/29561 5174/5990/29562 +f 5193/6089/29563 5192/6087/29564 5175/5977/29565 +f 5189/6075/29566 5194/6091/29567 5191/6082/29568 +f 5191/6082/29569 5181/5981/29570 5189/6075/29571 +f 5194/6091/29572 5192/6087/29573 5191/6082/29574 +f 5137/5974/29575 5175/5977/29576 5192/6087/29577 +f 5192/6087/29578 5194/6091/29579 5137/5974/29580 +f 5136/5969/29581 5137/5974/29582 5194/6091/29583 +f 5134/5919/29584 5136/5969/29585 5194/6091/29586 +f 5195/5973/29587 5187/5958/29588 5111/5971/29589 +f 5111/5971/29590 5118/5972/29591 5195/5973/29592 +f 5197/6093/29593 5187/6073/29594 5195/6094/29595 +f 5195/6094/29596 5196/6092/29597 5197/6093/29598 +f 5197/6093/29599 5302/6176/29600 5187/6073/29601 +f 5134/5919/29602 5194/6091/29603 5197/6093/29604 +f 5197/6093/29605 5196/6092/29606 5134/5919/29607 +f 5118/5972/29608 5120/5980/29609 5198/5983/29610 +f 5198/5983/29611 5195/5973/29612 5118/5972/29613 +f 5195/6094/29614 5198/6096/29615 5199/6095/29616 +f 5199/6095/29617 5196/6092/29618 5195/6094/29619 +f 5196/6092/29620 5199/6095/29621 5135/5920/29622 +f 5135/5920/29623 5134/5919/29624 5196/6092/29625 +f 5200/6029/29626 5201/6035/29627 5119/5912/29628 +f 5119/5912/29629 5122/5928/29630 5200/6029/29631 +f 5201/6035/29632 5200/6029/29633 5202/6036/29634 +f 5202/6036/29635 5203/6037/29636 5201/6035/29637 +f 5203/6037/29638 5202/6036/29639 5204/6038/29640 +f 5204/6038/29641 5205/6039/29642 5203/6037/29643 +f 5206/6040/29644 5200/6029/29645 5122/5928/29646 +f 5122/5928/29647 5124/5930/29648 5206/6040/29649 +f 5200/6029/29650 5206/6040/29651 5207/6041/29652 +f 5207/6041/29653 5202/6036/29654 5200/6029/29655 +f 5202/6036/29656 5207/6041/29657 5208/6042/29658 +f 5208/6042/29659 5204/6038/29660 5202/6036/29661 +f 5119/5912/29662 5201/6035/29663 5209/6043/29664 +f 5209/6043/29665 5120/5924/29666 5119/5912/29667 +f 5210/6044/29668 5209/6043/29669 5201/6035/29670 +f 5201/6035/29671 5203/6037/29672 5210/6044/29673 +f 5203/6037/29674 5205/6039/29675 5211/6045/29676 +f 5211/6045/29677 5210/6044/29678 5203/6037/29679 +f 5213/6047/29680 5205/6039/29681 5204/6038/29682 +f 5204/6038/29683 5212/6046/29684 5213/6047/29685 +f 5208/6042/29686 5214/6048/29687 5212/6046/29688 +f 5212/6046/29689 5204/6038/29690 5208/6042/29691 +f 5205/6039/29692 5213/6047/29693 5215/6049/29694 +f 5215/6049/29695 5211/6045/29696 5205/6039/29697 +f 5216/6050/29698 5217/6051/29699 5213/6047/29700 +f 5213/6047/29701 5212/6046/29702 5216/6050/29703 +f 5218/6052/29704 5216/6050/29705 5212/6046/29706 +f 5212/6046/29707 5214/6048/29708 5218/6052/29709 +f 5213/6047/29710 5217/6051/29711 5219/6053/29712 +f 5219/6053/29713 5215/6049/29714 5213/6047/29715 +f 5221/6098/29716 5135/5920/29717 5199/6095/29718 +f 5199/6095/29719 5220/6097/29720 5221/6098/29721 +f 5223/6100/29722 5221/6098/29723 5220/6097/29724 +f 5220/6097/29725 5222/6099/29726 5223/6100/29727 +f 5225/6102/29728 5223/6100/29729 5222/6099/29730 +f 5222/6099/29731 5224/6101/29732 5225/6102/29733 +f 5225/6102/29734 5224/6101/29735 5226/6103/29736 +f 5226/6103/29737 5227/6104/29738 5225/6102/29739 +f 5228/6105/29740 5220/6097/29741 5199/6095/29742 +f 5199/6095/29743 5198/6096/29744 5228/6105/29745 +f 5220/6097/29746 5228/6105/29747 5229/6106/29748 +f 5229/6106/29749 5222/6099/29750 5220/6097/29751 +f 5230/6107/29752 5224/6101/29753 5222/6099/29754 +f 5222/6099/29755 5229/6106/29756 5230/6107/29757 +f 5231/6108/29758 5226/6103/29759 5224/6101/29760 +f 5224/6101/29761 5230/6107/29762 5231/6108/29763 +f 5135/5920/29764 5221/6098/29765 5232/6109/29766 +f 5232/6109/29767 5133/5921/29768 5135/5920/29769 +f 5221/6098/29770 5223/6100/29771 5233/6110/29772 +f 5233/6110/29773 5232/6109/29774 5221/6098/29775 +f 5223/6100/29776 5225/6102/29777 5234/6111/29778 +f 5234/6111/29779 5233/6110/29780 5223/6100/29781 +f 5235/6112/29782 5234/6111/29783 5225/6102/29784 +f 5225/6102/29785 5227/6104/29786 5235/6112/29787 +f 5133/5908/29788 5232/5991/29789 5206/5992/29790 +f 5206/5992/29791 5124/5909/29792 5133/5908/29793 +f 5232/5991/29794 5233/5993/29795 5207/5994/29796 +f 5207/5994/29797 5206/5992/29798 5232/5991/29799 +f 5234/5995/29800 5208/5996/29801 5207/5994/29802 +f 5207/5994/29803 5233/5993/29804 5234/5995/29805 +f 5235/5999/29806 5214/6000/29807 5208/5996/29808 +f 5208/5996/29809 5234/5995/29810 5235/5999/29811 +f 5235/5999/29812 5218/6003/29813 5214/6000/29814 +f 5209/6004/29815 5228/6013/29816 5198/5983/29817 +f 5198/5983/29818 5120/5980/29819 5209/6004/29820 +f 5210/6014/29821 5229/6015/29822 5228/6013/29823 +f 5228/6013/29824 5209/6004/29825 5210/6014/29826 +f 5211/6016/29827 5230/6017/29828 5229/6015/29829 +f 5229/6015/29830 5210/6014/29831 5211/6016/29832 +f 5211/6016/29833 5215/6018/29834 5231/6019/29835 +f 5231/6019/29836 5230/6017/29837 5211/6016/29838 +f 5215/6018/29839 5219/6020/29840 5231/6019/29841 +f 5236/6021/29842 5237/6022/29843 5218/6003/29844 +f 5218/6003/29845 5235/5999/29846 5236/6021/29847 +f 5218/6052/29848 5237/6055/29849 5238/6054/29850 +f 5238/6054/29851 5216/6050/29852 5218/6052/29853 +f 5239/6114/29854 5236/6113/29855 5235/6112/29856 +f 5235/6112/29857 5227/6104/29858 5239/6114/29859 +f 5226/6103/29860 5240/6115/29861 5239/6114/29862 +f 5239/6114/29863 5227/6104/29864 5226/6103/29865 +f 5241/6116/29866 5240/6115/29867 5226/6103/29868 +f 5226/6103/29869 5231/6108/29870 5241/6116/29871 +f 5216/6050/29872 5238/6054/29873 5242/6056/29874 +f 5242/6056/29875 5217/6051/29876 5216/6050/29877 +f 5217/6051/29878 5242/6056/29879 5243/6057/29880 +f 5243/6057/29881 5219/6053/29882 5217/6051/29883 +f 5241/6028/29884 5231/6019/29885 5219/6020/29886 +f 5219/6020/29887 5243/6026/29888 5241/6028/29889 +f 5244/6058/29890 5245/6067/29891 5243/6057/29892 +f 5243/6057/29893 5242/6056/29894 5244/6058/29895 +f 5246/6117/29896 5247/6118/29897 5240/6115/29898 +f 5240/6115/29899 5241/6116/29900 5246/6117/29901 +f 5243/6026/29902 5245/6030/29903 5246/6031/29904 +f 5246/6031/29905 5241/6028/29906 5243/6026/29907 +f 5246/6031/29908 5245/6030/29909 5248/6033/29910 +f 5248/6033/29911 5249/6034/29912 5246/6031/29913 +f 5248/6068/29914 5245/6067/29915 5244/6058/29916 +f 5249/6119/29917 5247/6118/29918 5246/6117/29919 +f 5249/6071/29920 5248/6068/29921 5250/6069/29922 +f 5250/6069/29923 5251/6070/29924 5249/6071/29925 +f 5250/6069/29926 5248/6068/29927 5244/6058/29928 +f 5252/6072/29929 5253/6074/29930 5250/6069/29931 +f 5250/6069/29932 5244/6058/29933 5252/6072/29934 +f 5254/6076/29935 5255/6077/29936 5253/6074/29937 +f 5253/6074/29938 5252/6072/29939 5254/6076/29940 +f 5256/6078/29941 5252/6072/29942 5244/6058/29943 +f 5244/6058/29944 5242/6056/29945 5256/6078/29946 +f 5256/6078/29947 5254/6076/29948 5252/6072/29949 +f 5257/6080/29950 5258/6081/29951 5254/6076/29952 +f 5254/6076/29953 5256/6078/29954 5257/6080/29955 +f 5259/6084/29956 5260/6085/29957 5254/6076/29958 +f 5254/6076/29959 5258/6081/29960 5259/6084/29961 +f 5262/6147/29962 5259/6084/29963 5258/6081/29964 +f 5258/6081/29965 5261/6146/29966 5262/6147/29967 +f 5261/6146/29968 5258/6081/29969 5257/6080/29970 +f 5264/6149/29971 5262/6147/29972 5261/6146/29973 +f 5261/6146/29974 5263/6148/29975 5264/6149/29976 +f 5265/6150/29977 5263/6148/29978 5267/6152/29979 +f 5267/6152/29980 5268/6153/29981 5265/6150/29982 +f 5270/6155/29983 5268/6153/29984 5267/6152/29985 +f 5267/6152/29986 5269/6154/29987 5270/6155/29988 +f 5261/6146/29989 5257/6080/29990 5267/6152/29991 +f 5267/6152/29992 5263/6148/29993 5261/6146/29994 +f 5271/6156/29995 5272/6157/29996 5299/6158/29997 +f 5273/6159/29998 5271/6156/29999 5267/6152/30000 +f 5267/6152/30001 5257/6080/30002 5273/6159/30003 +f 5257/6080/30004 5256/6078/30005 5242/6056/30006 +f 5242/6056/30007 5238/6054/30008 5257/6080/30009 +f 5273/6159/30010 5257/6080/30011 5238/6054/30012 +f 5274/6160/30013 5273/6159/30014 5238/6054/30015 +f 5238/6054/30016 5237/6055/30017 5274/6160/30018 +f 5275/6161/30019 5271/6156/30020 5273/6159/30021 +f 5273/6159/30022 5274/6160/30023 5275/6161/30024 +f 5276/6060/30025 5274/6059/30026 5237/6022/30027 +f 5237/6022/30028 5236/6021/30029 5276/6060/30030 +f 5274/6059/30031 5276/6060/30032 5277/6061/30033 +f 5277/6061/30034 5275/6062/30035 5274/6059/30036 +f 5278/6120/30037 5279/6121/30038 5240/6115/30039 +f 5240/6115/30040 5247/6118/30041 5278/6120/30042 +f 5286/6122/30043 5280/6123/30044 5279/6121/30045 +f 5279/6121/30046 5278/6120/30047 5286/6122/30048 +f 5239/6114/30049 5240/6115/30050 5279/6121/30051 +f 5279/6121/30052 5280/6123/30053 5239/6114/30054 +f 5281/6124/30055 5239/6114/30056 5280/6123/30057 +f 5247/6118/30058 5249/6119/30059 5251/6125/30060 +f 5251/6125/30061 5278/6120/30062 5247/6118/30063 +f 5278/6120/30064 5251/6125/30065 5282/6126/30066 +f 5282/6126/30067 5286/6122/30068 5278/6120/30069 +f 5253/6074/30070 5282/6162/30071 5251/6070/30072 +f 5251/6070/30073 5250/6069/30074 5253/6074/30075 +f 5253/6074/30076 5255/6077/30077 5283/6163/30078 +f 5283/6163/30079 5282/6162/30080 5253/6074/30081 +f 5286/6122/30082 5282/6126/30083 5283/6127/30084 +s 2 +f 5285/6165/30085 5260/6085/30086 5259/6084/30087 +f 5259/6084/30088 5284/6164/30089 5285/6165/30090 +s 1 +f 5286/6122/30091 5285/6129/30092 5284/6130/30093 +f 5284/6130/30094 5288/6128/30095 5286/6122/30096 +s 4 +f 5285/6165/30097 5286/6166/30098 5254/6076/30099 +f 5254/6076/30100 5260/6085/30101 5285/6165/30102 +s 2 +f 5283/6163/30103 5255/6077/30104 5254/6076/30105 +f 5254/6076/30106 5286/6166/30107 5283/6163/30108 +f 5259/6084/30109 5262/6147/30110 5287/6167/30111 +f 5287/6167/30112 5284/6164/30113 5259/6084/30114 +s 1 +f 5288/6128/30115 5284/6130/30116 5287/6131/30117 +s 2 +f 5262/6147/30118 5264/6149/30119 5289/6168/30120 +f 5289/6168/30121 5287/6167/30122 5262/6147/30123 +s 1 +f 5287/6131/30124 5289/6133/30125 5290/6132/30126 +f 5290/6132/30127 5288/6128/30128 5287/6131/30129 +f 5286/6122/30130 5288/6128/30131 5280/6123/30132 +f 5280/6123/30133 5288/6128/30134 5290/6132/30135 +s 2 +f 5289/6168/30136 5264/6149/30137 5266/6151/30138 +f 5266/6151/30139 5291/6169/30140 5289/6168/30141 +s 1 +f 5289/6133/30142 5291/6135/30143 5292/6134/30144 +f 5292/6134/30145 5290/6132/30146 5289/6133/30147 +f 5293/6136/30148 5294/6137/30149 5290/6132/30150 +f 5290/6132/30151 5292/6134/30152 5293/6136/30153 +f 5280/6123/30154 5290/6132/30155 5294/6137/30156 +f 5294/6137/30157 5293/6136/30158 5295/6138/30159 +f 5295/6138/30160 5296/6139/30161 5294/6137/30162 +f 5280/6123/30163 5294/6137/30164 5297/6140/30165 +f 5297/6140/30166 5281/6124/30167 5280/6123/30168 +f 5297/6140/30169 5277/6141/30170 5276/6142/30171 +f 5276/6142/30172 5281/6124/30173 5297/6140/30174 +f 5236/6113/30175 5239/6114/30176 5281/6124/30177 +f 5281/6124/30178 5276/6142/30179 5236/6113/30180 +f 5294/6137/30181 5296/6139/30182 5300/6143/30183 +f 5297/6140/30184 5294/6137/30185 5300/6143/30186 +f 5297/6140/30187 5300/6143/30188 5301/6144/30189 +f 5301/6144/30190 5298/6145/30191 5277/6141/30192 +f 5277/6141/30193 5297/6140/30194 5301/6144/30195 +f 5275/6062/30196 5277/6061/30197 5298/6083/30198 +f 5275/6161/30199 5298/6170/30200 5272/6157/30201 +f 5272/6157/30202 5271/6156/30203 5275/6161/30204 +s 4 +f 5292/6171/30205 5291/6169/30206 5266/6151/30207 +f 5266/6151/30208 5265/6150/30209 5292/6171/30210 +s 1 +f 5293/6173/30211 5268/6153/30212 5270/6155/30213 +f 5270/6155/30214 5295/6172/30215 5293/6173/30216 +f 5268/6153/30217 5293/6173/30218 5292/6171/30219 +f 5292/6171/30220 5265/6150/30221 5268/6153/30222 +f 5295/6172/30223 5270/6155/30224 5269/6154/30225 +f 5269/6154/30226 5296/6174/30227 5295/6172/30228 +f 5296/6174/30229 5269/6154/30230 5299/6158/30231 +f 5299/6158/30232 5300/6175/30233 5296/6174/30234 +f 5271/6156/30235 5299/6158/30236 5269/6154/30237 +f 5269/6154/30238 5267/6152/30239 5271/6156/30240 +f 5272/6157/30241 5298/6170/30242 5300/6175/30243 +f 5300/6175/30244 5299/6158/30245 5272/6157/30246 +f 5300/6143/30247 5298/6145/30248 5301/6144/30249 +f 5154/5949/30250 5141/5938/30251 5157/5953/30252 +f 5157/5953/30253 5141/5938/30254 5161/5956/30255 +f 5266/6151/30256 5264/6149/30257 5263/6148/30258 +f 5263/6148/30259 5265/6150/30260 5266/6151/30261 +f 5197/6093/30262 5194/6091/30263 5189/6075/30264 +f 5189/6075/30265 5302/6176/30266 5197/6093/30267 +f 5189/6075/30268 5184/6012/30269 5303/6177/30270 +f 5303/6177/30271 5302/6176/30272 5189/6075/30273 +f 5184/6012/30274 5185/6063/30275 5186/6065/30276 +f 5186/6065/30277 5303/6177/30278 5184/6012/30279 +f 5304/6180/30280 5320/6181/30281 5321/6178/30282 +f 5321/6178/30283 5305/6179/30284 5304/6180/30285 +f 5305/6179/30286 5321/6178/30287 5322/6182/30288 +f 5322/6182/30289 5306/6183/30290 5305/6179/30291 +f 5306/6183/30292 5322/6182/30293 5323/6184/30294 +f 5323/6184/30295 5307/6185/30296 5306/6183/30297 +f 5307/6185/30298 5323/6184/30299 5324/6186/30300 +f 5324/6186/30301 5308/6187/30302 5307/6185/30303 +f 5308/6187/30304 5324/6186/30305 5325/6188/30306 +f 5325/6188/30307 5309/6189/30308 5308/6187/30309 +f 5309/6189/30310 5325/6188/30311 5326/6190/30312 +f 5326/6190/30313 5310/6191/30314 5309/6189/30315 +f 5310/6191/30316 5326/6190/30317 5327/6192/30318 +f 5327/6192/30319 5311/6193/30320 5310/6191/30321 +f 5311/6193/30322 5327/6192/30323 5328/6194/30324 +f 5328/6194/30325 5312/6195/30326 5311/6193/30327 +f 5312/6195/30328 5328/6194/30329 5329/6196/30330 +f 5329/6196/30331 5313/6197/30332 5312/6195/30333 +f 5313/6197/30334 5329/6196/30335 5330/6198/30336 +f 5330/6198/30337 5314/6199/30338 5313/6197/30339 +f 5314/6199/30340 5330/6198/30341 5331/6200/30342 +f 5331/6200/30343 5315/6201/30344 5314/6199/30345 +f 5315/6201/30346 5331/6200/30347 5332/6202/30348 +f 5332/6202/30349 5316/6203/30350 5315/6201/30351 +f 5316/6203/30352 5332/6202/30353 5333/6204/30354 +f 5333/6204/30355 5317/6205/30356 5316/6203/30357 +f 5317/6205/30358 5333/6204/30359 5334/6206/30360 +f 5334/6206/30361 5318/6207/30362 5317/6205/30363 +f 5318/6207/30364 5334/6206/30365 5335/6208/30366 +f 5335/6208/30367 5319/6209/30368 5318/6207/30369 +f 5319/6209/30370 5335/6208/30371 5320/6181/30372 +f 5320/6181/30373 5304/6180/30374 5319/6209/30375 +f 5320/6181/30376 5336/6211/30377 5337/6210/30378 +f 5337/6210/30379 5321/6178/30380 5320/6181/30381 +f 5321/6178/30382 5337/6210/30383 5338/6212/30384 +f 5338/6212/30385 5322/6182/30386 5321/6178/30387 +f 5322/6182/30388 5338/6212/30389 5339/6213/30390 +f 5339/6213/30391 5323/6184/30392 5322/6182/30393 +f 5323/6184/30394 5339/6213/30395 5340/6214/30396 +f 5340/6214/30397 5324/6186/30398 5323/6184/30399 +f 5324/6186/30400 5340/6214/30401 5341/6215/30402 +f 5341/6215/30403 5325/6188/30404 5324/6186/30405 +f 5325/6188/30406 5341/6215/30407 5342/6216/30408 +f 5342/6216/30409 5326/6190/30410 5325/6188/30411 +f 5326/6190/30412 5342/6216/30413 5343/6217/30414 +f 5343/6217/30415 5327/6192/30416 5326/6190/30417 +f 5327/6192/30418 5343/6217/30419 5344/6218/30420 +f 5344/6218/30421 5328/6194/30422 5327/6192/30423 +f 5328/6194/30424 5344/6218/30425 5345/6219/30426 +f 5345/6219/30427 5329/6196/30428 5328/6194/30429 +f 5329/6196/30430 5345/6219/30431 5346/6220/30432 +f 5346/6220/30433 5330/6198/30434 5329/6196/30435 +f 5330/6198/30436 5346/6220/30437 5347/6221/30438 +f 5347/6221/30439 5331/6200/30440 5330/6198/30441 +f 5331/6200/30442 5347/6221/30443 5348/6222/30444 +f 5348/6222/30445 5332/6202/30446 5331/6200/30447 +f 5332/6202/30448 5348/6222/30449 5349/6223/30450 +f 5349/6223/30451 5333/6204/30452 5332/6202/30453 +f 5333/6204/30454 5349/6223/30455 5350/6224/30456 +f 5350/6224/30457 5334/6206/30458 5333/6204/30459 +f 5334/6206/30460 5350/6224/30461 5351/6225/30462 +f 5351/6225/30463 5335/6208/30464 5334/6206/30465 +f 5335/6208/30466 5351/6225/30467 5336/6211/30468 +f 5336/6211/30469 5320/6181/30470 5335/6208/30471 +f 5336/6211/30472 5352/6227/30473 5353/6226/30474 +f 5353/6226/30475 5337/6210/30476 5336/6211/30477 +f 5337/6210/30478 5353/6226/30479 5354/6228/30480 +f 5354/6228/30481 5338/6212/30482 5337/6210/30483 +f 5338/6212/30484 5354/6380/30485 5355/6229/30486 +f 5355/6229/30487 5339/6213/30488 5338/6212/30489 +f 5339/6213/30490 5355/6229/30491 5356/6230/30492 +f 5356/6230/30493 5340/6214/30494 5339/6213/30495 +f 5340/6214/30496 5356/6230/30497 5357/6231/30498 +f 5357/6231/30499 5341/6215/30500 5340/6214/30501 +f 5341/6215/30502 5357/6381/30503 5358/6232/30504 +f 5358/6232/30505 5342/6216/30506 5341/6215/30507 +f 5342/6216/30508 5358/6232/30509 5359/6233/30510 +f 5359/6233/30511 5343/6217/30512 5342/6216/30513 +f 5343/6217/30514 5359/6233/30515 5360/6234/30516 +f 5360/6234/30517 5344/6218/30518 5343/6217/30519 +f 5344/6218/30520 5360/6382/30521 5361/6235/30522 +f 5361/6235/30523 5345/6219/30524 5344/6218/30525 +f 5345/6219/30526 5361/6235/30527 5362/6236/30528 +f 5362/6236/30529 5346/6220/30530 5345/6219/30531 +f 5346/6220/30532 5362/6383/30533 5363/6237/30534 +f 5363/6237/30535 5347/6221/30536 5346/6220/30537 +f 5347/6221/30538 5363/6237/30539 5364/6238/30540 +f 5364/6238/30541 5348/6222/30542 5347/6221/30543 +f 5348/6222/30544 5364/6384/30545 5365/6239/30546 +f 5365/6239/30547 5349/6223/30548 5348/6222/30549 +f 5349/6223/30550 5365/6239/30551 5366/6240/30552 +f 5366/6240/30553 5350/6224/30554 5349/6223/30555 +f 5350/6224/30556 5366/6240/30557 5367/6241/30558 +f 5367/6241/30559 5351/6225/30560 5350/6224/30561 +f 5351/6225/30562 5367/6385/30563 5352/6227/30564 +f 5352/6227/30565 5336/6211/30566 5351/6225/30567 +f 5352/6227/30568 5368/6243/30569 5369/6242/30570 +f 5369/6242/30571 5353/6226/30572 5352/6227/30573 +f 5353/6226/30574 5369/6242/30575 5370/6244/30576 +f 5370/6244/30577 5354/6228/30578 5353/6226/30579 +f 5354/6380/30580 5370/6386/30581 5371/6245/30582 +f 5371/6245/30583 5355/6229/30584 5354/6380/30585 +f 5355/6229/30586 5371/6245/30587 5372/6246/30588 +f 5372/6246/30589 5356/6230/30590 5355/6229/30591 +f 5356/6230/30592 5372/6246/30593 5373/6247/30594 +f 5373/6247/30595 5357/6231/30596 5356/6230/30597 +f 5357/6381/30598 5373/6387/30599 5374/6248/30600 +f 5374/6248/30601 5358/6232/30602 5357/6381/30603 +f 5358/6232/30604 5374/6248/30605 5375/6249/30606 +f 5375/6249/30607 5359/6233/30608 5358/6232/30609 +f 5359/6233/30610 5375/6249/30611 5376/6250/30612 +f 5376/6250/30613 5360/6234/30614 5359/6233/30615 +f 5360/6382/30616 5376/6388/30617 5377/6251/30618 +f 5377/6251/30619 5361/6235/30620 5360/6382/30621 +f 5361/6235/30622 5377/6251/30623 5378/6252/30624 +f 5378/6252/30625 5362/6236/30626 5361/6235/30627 +f 5362/6383/30628 5378/6389/30629 5379/6253/30630 +f 5379/6253/30631 5363/6237/30632 5362/6383/30633 +f 5363/6237/30634 5379/6253/30635 5380/6254/30636 +f 5380/6254/30637 5364/6238/30638 5363/6237/30639 +f 5364/6384/30640 5380/6390/30641 5381/6255/30642 +f 5381/6255/30643 5365/6239/30644 5364/6384/30645 +f 5365/6239/30646 5381/6255/30647 5382/6256/30648 +f 5382/6256/30649 5366/6240/30650 5365/6239/30651 +f 5366/6240/30652 5382/6256/30653 5383/6257/30654 +f 5383/6257/30655 5367/6241/30656 5366/6240/30657 +f 5367/6385/30658 5383/6391/30659 5368/6243/30660 +f 5368/6243/30661 5352/6227/30662 5367/6385/30663 +f 5401/6260/30664 5402/6261/30665 5403/6258/30666 +f 5403/6258/30667 5388/6259/30668 5401/6260/30669 +f 5386/6264/30670 5389/6265/30671 5390/6262/30672 +f 5390/6262/30673 5385/6263/30674 5386/6264/30675 +f 5386/6264/30676 5387/6267/30677 5404/6266/30678 +f 5404/6266/30679 5389/6265/30680 5386/6264/30681 +f 5387/6267/30682 5388/6259/30683 5403/6258/30684 +f 5403/6258/30685 5404/6266/30686 5387/6267/30687 +f 5385/6263/30688 5390/6262/30689 5391/6268/30690 +f 5391/6268/30691 5384/6269/30692 5385/6263/30693 +f 5391/6268/30694 5392/6271/30695 5393/6270/30696 +f 5393/6270/30697 5384/6269/30698 5391/6268/30699 +f 5393/6270/30700 5394/6273/30701 5395/6272/30702 +f 5395/6272/30703 5384/6269/30704 5393/6270/30705 +f 5385/6263/30706 5384/6269/30707 5395/6272/30708 +f 5395/6272/30709 5396/6274/30710 5385/6263/30711 +f 5386/6264/30712 5385/6263/30713 5396/6274/30714 +f 5396/6274/30715 5397/6275/30716 5386/6264/30717 +f 5398/6276/30718 5387/6267/30719 5386/6264/30720 +f 5386/6264/30721 5397/6275/30722 5398/6276/30723 +f 5399/6277/30724 5388/6259/30725 5387/6267/30726 +f 5387/6267/30727 5398/6276/30728 5399/6277/30729 +f 5388/6259/30730 5399/6277/30731 5400/6278/30732 +f 5400/6278/30733 5401/6260/30734 5388/6259/30735 +f 5390/6262/30736 5389/6265/30737 5304/6180/30738 +f 5304/6180/30739 5305/6179/30740 5390/6262/30741 +f 5391/6268/30742 5390/6262/30743 5305/6179/30744 +f 5305/6179/30745 5306/6183/30746 5391/6268/30747 +f 5392/6271/30748 5391/6268/30749 5306/6183/30750 +f 5306/6183/30751 5307/6185/30752 5392/6271/30753 +f 5393/6270/30754 5392/6271/30755 5307/6185/30756 +f 5307/6185/30757 5308/6187/30758 5393/6270/30759 +f 5394/6273/30760 5393/6270/30761 5308/6187/30762 +f 5308/6187/30763 5309/6189/30764 5394/6273/30765 +f 5395/6272/30766 5394/6273/30767 5309/6189/30768 +f 5309/6189/30769 5310/6191/30770 5395/6272/30771 +f 5396/6274/30772 5395/6272/30773 5310/6191/30774 +f 5310/6191/30775 5311/6193/30776 5396/6274/30777 +f 5397/6275/30778 5396/6274/30779 5311/6193/30780 +f 5311/6193/30781 5312/6195/30782 5397/6275/30783 +f 5398/6276/30784 5397/6275/30785 5312/6195/30786 +f 5312/6195/30787 5313/6197/30788 5398/6276/30789 +f 5399/6277/30790 5398/6276/30791 5313/6197/30792 +f 5313/6197/30793 5314/6199/30794 5399/6277/30795 +f 5400/6278/30796 5399/6277/30797 5314/6199/30798 +f 5314/6199/30799 5315/6201/30800 5400/6278/30801 +f 5401/6260/30802 5400/6278/30803 5315/6201/30804 +f 5315/6201/30805 5316/6203/30806 5401/6260/30807 +f 5402/6261/30808 5401/6260/30809 5316/6203/30810 +f 5316/6203/30811 5317/6205/30812 5402/6261/30813 +f 5403/6258/30814 5402/6261/30815 5317/6205/30816 +f 5317/6205/30817 5318/6207/30818 5403/6258/30819 +f 5404/6266/30820 5403/6258/30821 5318/6207/30822 +f 5318/6207/30823 5319/6209/30824 5404/6266/30825 +f 5389/6265/30826 5404/6266/30827 5319/6209/30828 +f 5319/6209/30829 5304/6180/30830 5389/6265/30831 +f 5405/6281/30832 5408/6282/30833 5407/6279/30834 +f 5407/6279/30835 5406/6280/30836 5405/6281/30837 +f 5408/6282/30838 5410/6284/30839 5409/6283/30840 +f 5409/6283/30841 5407/6279/30842 5408/6282/30843 +f 5410/6284/30844 5412/6286/30845 5411/6285/30846 +f 5411/6285/30847 5409/6283/30848 5410/6284/30849 +f 5412/6286/30850 5414/6288/30851 5413/6287/30852 +f 5413/6287/30853 5411/6285/30854 5412/6286/30855 +f 5414/6288/30856 5416/6290/30857 5415/6289/30858 +f 5415/6289/30859 5413/6287/30860 5414/6288/30861 +f 5416/6290/30862 5418/6292/30863 5417/6291/30864 +f 5417/6291/30865 5415/6289/30866 5416/6290/30867 +f 5418/6292/30868 5420/6294/30869 5419/6293/30870 +f 5419/6293/30871 5417/6291/30872 5418/6292/30873 +f 5420/6294/30874 5422/6296/30875 5421/6295/30876 +f 5421/6295/30877 5419/6293/30878 5420/6294/30879 +f 5422/6296/30880 5424/6298/30881 5423/6297/30882 +f 5423/6297/30883 5421/6295/30884 5422/6296/30885 +f 5424/6298/30886 5426/6300/30887 5425/6299/30888 +f 5425/6299/30889 5423/6297/30890 5424/6298/30891 +f 5426/6300/30892 5428/6302/30893 5427/6301/30894 +f 5427/6301/30895 5425/6299/30896 5426/6300/30897 +f 5428/6302/30898 5430/6304/30899 5429/6303/30900 +f 5429/6303/30901 5427/6301/30902 5428/6302/30903 +f 5430/6304/30904 5432/6306/30905 5431/6305/30906 +f 5431/6305/30907 5429/6303/30908 5430/6304/30909 +f 5432/6306/30910 5434/6308/30911 5433/6307/30912 +f 5433/6307/30913 5431/6305/30914 5432/6306/30915 +f 5434/6308/30916 5436/6310/30917 5435/6309/30918 +f 5435/6309/30919 5433/6307/30920 5434/6308/30921 +f 5436/6310/30922 5405/6281/30923 5406/6280/30924 +f 5406/6280/30925 5435/6309/30926 5436/6310/30927 +f 5406/6280/30928 5407/6279/30929 5438/6311/30930 +f 5438/6311/30931 5437/6312/30932 5406/6280/30933 +f 5407/6279/30934 5409/6283/30935 5439/6313/30936 +f 5439/6313/30937 5438/6311/30938 5407/6279/30939 +f 5409/6283/30940 5411/6285/30941 5440/6314/30942 +f 5440/6314/30943 5439/6313/30944 5409/6283/30945 +f 5411/6285/30946 5413/6287/30947 5441/6315/30948 +f 5441/6315/30949 5440/6314/30950 5411/6285/30951 +f 5413/6287/30952 5415/6289/30953 5442/6316/30954 +f 5442/6316/30955 5441/6315/30956 5413/6287/30957 +f 5415/6289/30958 5417/6291/30959 5443/6317/30960 +f 5443/6317/30961 5442/6316/30962 5415/6289/30963 +f 5417/6291/30964 5419/6293/30965 5444/6318/30966 +f 5444/6318/30967 5443/6317/30968 5417/6291/30969 +f 5419/6293/30970 5421/6295/30971 5445/6319/30972 +f 5445/6319/30973 5444/6318/30974 5419/6293/30975 +f 5421/6295/30976 5423/6297/30977 5446/6320/30978 +f 5446/6320/30979 5445/6319/30980 5421/6295/30981 +f 5423/6297/30982 5425/6299/30983 5447/6321/30984 +f 5447/6321/30985 5446/6320/30986 5423/6297/30987 +f 5425/6299/30988 5427/6301/30989 5448/6322/30990 +f 5448/6322/30991 5447/6321/30992 5425/6299/30993 +f 5427/6301/30994 5429/6303/30995 5449/6323/30996 +f 5449/6323/30997 5448/6322/30998 5427/6301/30999 +f 5429/6303/31000 5431/6305/31001 5450/6324/31002 +f 5450/6324/31003 5449/6323/31004 5429/6303/31005 +f 5431/6305/31006 5433/6307/31007 5451/6325/31008 +f 5451/6325/31009 5450/6324/31010 5431/6305/31011 +f 5433/6307/31012 5435/6309/31013 5452/6326/31014 +f 5452/6326/31015 5451/6325/31016 5433/6307/31017 +f 5435/6309/31018 5406/6280/31019 5437/6312/31020 +f 5437/6312/31021 5452/6326/31022 5435/6309/31023 +f 5437/6312/31024 5438/6311/31025 5454/6327/31026 +f 5454/6327/31027 5453/6328/31028 5437/6312/31029 +f 5438/6311/31030 5439/6313/31031 5455/6329/31032 +f 5455/6329/31033 5454/6392/31034 5438/6311/31035 +f 5439/6313/31036 5440/6314/31037 5456/6330/31038 +f 5456/6330/31039 5455/6329/31040 5439/6313/31041 +f 5440/6314/31042 5441/6315/31043 5457/6331/31044 +f 5457/6331/31045 5456/6330/31046 5440/6314/31047 +f 5441/6315/31048 5442/6316/31049 5458/6332/31050 +f 5458/6332/31051 5457/6393/31052 5441/6315/31053 +f 5442/6316/31054 5443/6317/31055 5459/6333/31056 +f 5459/6333/31057 5458/6332/31058 5442/6316/31059 +f 5443/6317/31060 5444/6318/31061 5460/6334/31062 +f 5460/6334/31063 5459/6333/31064 5443/6317/31065 +f 5444/6318/31066 5445/6319/31067 5461/6335/31068 +f 5461/6335/31069 5460/6394/31070 5444/6318/31071 +f 5445/6319/31072 5446/6320/31073 5462/6336/31074 +f 5462/6336/31075 5461/6335/31076 5445/6319/31077 +f 5446/6320/31078 5447/6321/31079 5463/6337/31080 +f 5463/6337/31081 5462/6395/31082 5446/6320/31083 +f 5447/6321/31084 5448/6322/31085 5464/6338/31086 +f 5464/6338/31087 5463/6337/31088 5447/6321/31089 +f 5448/6322/31090 5449/6323/31091 5465/6339/31092 +f 5465/6339/31093 5464/6396/31094 5448/6322/31095 +f 5449/6323/31096 5450/6324/31097 5466/6340/31098 +f 5466/6340/31099 5465/6339/31100 5449/6323/31101 +f 5450/6324/31102 5451/6325/31103 5467/6341/31104 +f 5467/6341/31105 5466/6340/31106 5450/6324/31107 +f 5451/6325/31108 5452/6326/31109 5468/6342/31110 +f 5468/6342/31111 5467/6397/31112 5451/6325/31113 +f 5452/6326/31114 5437/6312/31115 5453/6328/31116 +f 5453/6328/31117 5468/6342/31118 5452/6326/31119 +f 5453/6328/31120 5454/6327/31121 5470/6343/31122 +f 5470/6343/31123 5469/6344/31124 5453/6328/31125 +f 5454/6392/31126 5455/6329/31127 5471/6345/31128 +f 5471/6345/31129 5470/6398/31130 5454/6392/31131 +f 5455/6329/31132 5456/6330/31133 5472/6346/31134 +f 5472/6346/31135 5471/6345/31136 5455/6329/31137 +f 5456/6330/31138 5457/6331/31139 5473/6347/31140 +f 5473/6347/31141 5472/6346/31142 5456/6330/31143 +f 5457/6393/31144 5458/6332/31145 5474/6348/31146 +f 5474/6348/31147 5473/6399/31148 5457/6393/31149 +f 5458/6332/31150 5459/6333/31151 5475/6349/31152 +f 5475/6349/31153 5474/6348/31154 5458/6332/31155 +f 5459/6333/31156 5460/6334/31157 5476/6350/31158 +f 5476/6350/31159 5475/6349/31160 5459/6333/31161 +f 5460/6394/31162 5461/6335/31163 5477/6351/31164 +f 5477/6351/31165 5476/6400/31166 5460/6394/31167 +f 5461/6335/31168 5462/6336/31169 5478/6352/31170 +f 5478/6352/31171 5477/6351/31172 5461/6335/31173 +f 5462/6395/31174 5463/6337/31175 5479/6353/31176 +f 5479/6353/31177 5478/6401/31178 5462/6395/31179 +f 5463/6337/31180 5464/6338/31181 5480/6354/31182 +f 5480/6354/31183 5479/6353/31184 5463/6337/31185 +f 5464/6396/31186 5465/6339/31187 5481/6355/31188 +f 5481/6355/31189 5480/6402/31190 5464/6396/31191 +f 5465/6339/31192 5466/6340/31193 5482/6356/31194 +f 5482/6356/31195 5481/6355/31196 5465/6339/31197 +f 5466/6340/31198 5467/6341/31199 5483/6357/31200 +f 5483/6357/31201 5482/6356/31202 5466/6340/31203 +f 5467/6397/31204 5468/6342/31205 5484/6358/31206 +f 5484/6358/31207 5483/6403/31208 5467/6397/31209 +f 5468/6342/31210 5453/6328/31211 5469/6344/31212 +f 5469/6344/31213 5484/6358/31214 5468/6342/31215 +f 5485/6361/31216 5488/6362/31217 5487/6359/31218 +f 5487/6359/31219 5486/6360/31220 5485/6361/31221 +f 5492/6365/31222 5491/6366/31223 5490/6363/31224 +f 5490/6363/31225 5489/6364/31226 5492/6365/31227 +f 5492/6365/31228 5489/6364/31229 5493/6367/31230 +f 5493/6367/31231 5494/6368/31232 5492/6365/31233 +f 5494/6368/31234 5493/6367/31235 5487/6359/31236 +f 5487/6359/31237 5488/6362/31238 5494/6368/31239 +f 5491/6366/31240 5496/6370/31241 5495/6369/31242 +f 5495/6369/31243 5490/6363/31244 5491/6366/31245 +f 5495/6369/31246 5496/6370/31247 5498/6371/31248 +f 5498/6371/31249 5497/6372/31250 5495/6369/31251 +f 5498/6371/31252 5496/6370/31253 5500/6373/31254 +f 5500/6373/31255 5499/6374/31256 5498/6371/31257 +f 5491/6366/31258 5501/6375/31259 5500/6373/31260 +f 5500/6373/31261 5496/6370/31262 5491/6366/31263 +f 5492/6365/31264 5502/6376/31265 5501/6375/31266 +f 5501/6375/31267 5491/6366/31268 5492/6365/31269 +f 5503/6377/31270 5502/6376/31271 5492/6365/31272 +f 5492/6365/31273 5494/6368/31274 5503/6377/31275 +f 5504/6378/31276 5503/6377/31277 5494/6368/31278 +f 5494/6368/31279 5488/6362/31280 5504/6378/31281 +f 5488/6362/31282 5485/6361/31283 5505/6379/31284 +f 5505/6379/31285 5504/6378/31286 5488/6362/31287 +f 5490/6363/31288 5408/6282/31289 5405/6281/31290 +f 5405/6281/31291 5489/6364/31292 5490/6363/31293 +f 5495/6369/31294 5410/6284/31295 5408/6282/31296 +f 5408/6282/31297 5490/6363/31298 5495/6369/31299 +f 5497/6372/31300 5412/6286/31301 5410/6284/31302 +f 5410/6284/31303 5495/6369/31304 5497/6372/31305 +f 5498/6371/31306 5414/6288/31307 5412/6286/31308 +f 5412/6286/31309 5497/6372/31310 5498/6371/31311 +f 5499/6374/31312 5416/6290/31313 5414/6288/31314 +f 5414/6288/31315 5498/6371/31316 5499/6374/31317 +f 5500/6373/31318 5418/6292/31319 5416/6290/31320 +f 5416/6290/31321 5499/6374/31322 5500/6373/31323 +f 5501/6375/31324 5420/6294/31325 5418/6292/31326 +f 5418/6292/31327 5500/6373/31328 5501/6375/31329 +f 5502/6376/31330 5422/6296/31331 5420/6294/31332 +f 5420/6294/31333 5501/6375/31334 5502/6376/31335 +f 5503/6377/31336 5424/6298/31337 5422/6296/31338 +f 5422/6296/31339 5502/6376/31340 5503/6377/31341 +f 5504/6378/31342 5426/6300/31343 5424/6298/31344 +f 5424/6298/31345 5503/6377/31346 5504/6378/31347 +f 5505/6379/31348 5428/6302/31349 5426/6300/31350 +f 5426/6300/31351 5504/6378/31352 5505/6379/31353 +f 5485/6361/31354 5430/6304/31355 5428/6302/31356 +f 5428/6302/31357 5505/6379/31358 5485/6361/31359 +f 5486/6360/31360 5432/6306/31361 5430/6304/31362 +f 5430/6304/31363 5485/6361/31364 5486/6360/31365 +f 5487/6359/31366 5434/6308/31367 5432/6306/31368 +f 5432/6306/31369 5486/6360/31370 5487/6359/31371 +f 5493/6367/31372 5436/6310/31373 5434/6308/31374 +f 5434/6308/31375 5487/6359/31376 5493/6367/31377 +f 5489/6364/31378 5405/6281/31379 5436/6310/31380 +f 5436/6310/31381 5493/6367/31382 5489/6364/31383 +f 5520/6406/31384 5507/6407/31385 5596/6404/31386 +f 5596/6404/31387 5521/6405/31388 5520/6406/31389 +f 5522/6408/31390 5510/6409/31391 5507/6407/31392 +f 5507/6407/31393 5520/6406/31394 5522/6408/31395 +f 5515/6412/31396 5516/6413/31397 5531/6410/31398 +f 5531/6410/31399 5529/6411/31400 5515/6412/31401 +f 5519/6416/31402 5518/6417/31403 5528/6414/31404 +f 5528/6414/31405 5527/6415/31406 5519/6416/31407 +f 5508/6420/31408 5509/6421/31409 5524/6418/31410 +f 5524/6418/31411 5523/6419/31412 5508/6420/31413 +f 5526/6422/31414 5513/6423/31415 5519/6416/31416 +f 5519/6416/31417 5527/6415/31418 5526/6422/31419 +f 5519/6416/31420 5513/6423/31421 5525/6424/31422 +f 5525/6424/31423 5523/6419/31424 5519/6416/31425 +f 5508/6420/31426 5520/6406/31427 5521/6405/31428 +f 5521/6405/31429 5509/6421/31430 5508/6420/31431 +f 5511/6425/31432 5522/6408/31433 5520/6406/31434 +f 5520/6406/31435 5508/6420/31436 5511/6425/31437 +f 5523/6419/31438 5524/6418/31439 5518/6417/31440 +f 5518/6417/31441 5519/6416/31442 5523/6419/31443 +f 5508/6420/31444 5523/6419/31445 5525/6424/31446 +f 5525/6424/31447 5511/6425/31448 5508/6420/31449 +f 5527/6415/31450 5528/6414/31451 5516/6413/31452 +f 5516/6413/31453 5515/6412/31454 5527/6415/31455 +f 5512/6426/31456 5526/6422/31457 5527/6415/31458 +f 5527/6415/31459 5515/6412/31460 5512/6426/31461 +f 5529/6411/31462 5530/6427/31463 5512/6426/31464 +f 5512/6426/31465 5515/6412/31466 5529/6411/31467 +f 5529/6411/31468 5531/6410/31469 5517/6428/31470 +f 5517/6428/31471 5599/6429/31472 5529/6411/31473 +f 5542/6430/31474 5532/6431/31475 5510/6409/31476 +f 5510/6409/31477 5522/6408/31478 5542/6430/31479 +f 5543/6432/31480 5534/6433/31481 5532/6431/31482 +f 5532/6431/31483 5542/6430/31484 5543/6432/31485 +f 5544/6436/31486 5535/6437/31487 5533/6434/31488 +f 5533/6434/31489 5545/6435/31490 5544/6436/31491 +f 5547/6440/31492 5546/6441/31493 5538/6438/31494 +f 5538/6438/31495 5539/6439/31496 5547/6440/31497 +f 5526/6422/31498 5512/6426/31499 5538/6438/31500 +f 5538/6438/31501 5546/6441/31502 5526/6422/31503 +f 5530/6427/31504 5529/6411/31505 5599/6429/31506 +f 5599/6429/31507 5606/6442/31508 5530/6427/31509 +f 5606/6442/31510 5607/6444/31511 5548/6443/31512 +f 5548/6443/31513 5530/6427/31514 5606/6442/31515 +f 5533/6434/31516 5511/6425/31517 5525/6424/31518 +f 5525/6424/31519 5545/6435/31520 5533/6434/31521 +f 5533/6434/31522 5542/6430/31523 5522/6408/31524 +f 5522/6408/31525 5511/6425/31526 5533/6434/31527 +f 5535/6437/31528 5543/6432/31529 5542/6430/31530 +f 5542/6430/31531 5533/6434/31532 5535/6437/31533 +f 5536/6446/31534 5544/6436/31535 5545/6435/31536 +f 5545/6435/31537 5537/6445/31538 5536/6446/31539 +f 5545/6435/31540 5525/6424/31541 5513/6423/31542 +f 5513/6423/31543 5537/6445/31544 5545/6435/31545 +f 5546/6441/31546 5547/6440/31547 5536/6446/31548 +f 5536/6446/31549 5537/6445/31550 5546/6441/31551 +f 5513/6423/31552 5526/6422/31553 5546/6441/31554 +f 5546/6441/31555 5537/6445/31556 5513/6423/31557 +f 5530/6427/31558 5548/6443/31559 5538/6438/31560 +f 5538/6438/31561 5512/6426/31562 5530/6427/31563 +f 5548/6443/31564 5549/6447/31565 5539/6439/31566 +f 5539/6439/31567 5538/6438/31568 5548/6443/31569 +f 5607/6444/31570 5612/6448/31571 5549/6447/31572 +f 5549/6447/31573 5548/6443/31574 5607/6444/31575 +f 5565/6453/31576 5566/6473/31577 5551/6449/31578 +f 5551/6449/31579 5552/6450/31580 5565/6453/31581 +f 5567/6475/31582 5565/6453/31583 5552/6450/31584 +f 5552/6450/31585 5555/6474/31586 5567/6475/31587 +f 5560/6457/31588 5574/6458/31589 5576/6455/31590 +f 5576/6455/31591 5561/6456/31592 5560/6457/31593 +f 5564/6461/31594 5572/6462/31595 5573/6459/31596 +f 5573/6459/31597 5563/6460/31598 5564/6461/31599 +f 5553/6465/31600 5568/6466/31601 5569/6463/31602 +f 5569/6463/31603 5554/6464/31604 5553/6465/31605 +f 5571/6468/31606 5572/6462/31607 5564/6461/31608 +f 5564/6461/31609 5558/6467/31610 5571/6468/31611 +f 5564/6461/31612 5568/6466/31613 5570/6469/31614 +f 5570/6469/31615 5558/6467/31616 5564/6461/31617 +f 5553/6465/31618 5554/6464/31619 5566/6452/31620 +f 5566/6452/31621 5565/6451/31622 5553/6465/31623 +f 5556/6470/31624 5553/6465/31625 5565/6451/31626 +f 5565/6451/31627 5567/6454/31628 5556/6470/31629 +f 5568/6466/31630 5564/6461/31631 5563/6460/31632 +f 5563/6460/31633 5569/6463/31634 5568/6466/31635 +f 5553/6465/31636 5556/6470/31637 5570/6469/31638 +f 5570/6469/31639 5568/6466/31640 5553/6465/31641 +f 5572/6462/31642 5560/6457/31643 5561/6456/31644 +f 5561/6456/31645 5573/6459/31646 5572/6462/31647 +f 5557/6471/31648 5560/6457/31649 5572/6462/31650 +f 5572/6462/31651 5571/6468/31652 5557/6471/31653 +f 5574/6458/31654 5560/6457/31655 5557/6471/31656 +f 5557/6471/31657 5575/6472/31658 5574/6458/31659 +f 5574/6480/31660 5559/6481/31661 5562/6477/31662 +f 5562/6477/31663 5576/6478/31664 5574/6480/31665 +f 5587/6486/31666 5567/6475/31667 5555/6474/31668 +f 5555/6474/31669 5577/6485/31670 5587/6486/31671 +f 5588/6489/31672 5587/6486/31673 5577/6485/31674 +f 5577/6485/31675 5579/6487/31676 5588/6489/31677 +f 5589/6493/31678 5590/6494/31679 5578/6490/31680 +f 5578/6490/31681 5580/6492/31682 5589/6493/31683 +f 5592/6497/31684 5584/6498/31685 5583/6495/31686 +f 5583/6495/31687 5591/6496/31688 5592/6497/31689 +f 5571/6468/31690 5591/6484/31691 5583/6483/31692 +f 5583/6483/31693 5557/6471/31694 5571/6468/31695 +f 5575/6499/31696 5585/6500/31697 5559/6481/31698 +f 5559/6481/31699 5574/6480/31700 5575/6499/31701 +f 5585/6500/31702 5575/6499/31703 5593/6502/31704 +f 5593/6502/31705 5586/6506/31706 5585/6500/31707 +f 5578/6479/31708 5590/6482/31709 5570/6469/31710 +f 5570/6469/31711 5556/6470/31712 5578/6479/31713 +f 5578/6479/31714 5556/6470/31715 5567/6454/31716 +f 5567/6454/31717 5587/6476/31718 5578/6479/31719 +f 5580/6492/31720 5578/6490/31721 5587/6531/31722 +f 5587/6531/31723 5588/6532/31724 5580/6492/31725 +f 5581/6503/31726 5582/6504/31727 5590/6494/31728 +f 5590/6494/31729 5589/6493/31730 5581/6503/31731 +f 5590/6482/31732 5582/6491/31733 5558/6467/31734 +f 5558/6467/31735 5570/6469/31736 5590/6482/31737 +f 5591/6496/31738 5582/6504/31739 5581/6503/31740 +f 5581/6503/31741 5592/6497/31742 5591/6496/31743 +f 5558/6467/31744 5582/6491/31745 5591/6484/31746 +f 5591/6484/31747 5571/6468/31748 5558/6467/31749 +f 5575/6472/31750 5557/6471/31751 5583/6483/31752 +f 5583/6483/31753 5593/6488/31754 5575/6472/31755 +f 5593/6501/31756 5583/6495/31757 5584/6498/31758 +f 5584/6498/31759 5594/6505/31760 5593/6501/31761 +f 5586/6506/31762 5593/6502/31763 5594/6507/31764 +f 5594/6507/31765 5595/6508/31766 5586/6506/31767 +s 2 +f 5506/6539/31768 5597/6510/31769 5552/6450/31770 +f 5552/6450/31771 5551/6449/31772 5506/6539/31773 +f 5551/6533/31774 5596/6404/31775 5506/6509/31776 +f 5597/6510/31777 5598/6511/31778 5555/6474/31779 +f 5555/6474/31780 5552/6450/31781 5597/6510/31782 +s 4 +f 5531/6410/31783 5516/6413/31784 5561/6512/31785 +f 5561/6512/31786 5576/6536/31787 5531/6410/31788 +f 5528/6414/31789 5518/6417/31790 5563/6513/31791 +f 5563/6513/31792 5573/6514/31793 5528/6414/31794 +f 5524/6418/31795 5509/6421/31796 5554/6515/31797 +f 5554/6515/31798 5569/6516/31799 5524/6418/31800 +f 5509/6421/31801 5521/6405/31802 5566/6534/31803 +f 5566/6534/31804 5554/6515/31805 5509/6421/31806 +f 5518/6417/31807 5524/6418/31808 5569/6516/31809 +f 5569/6516/31810 5563/6513/31811 5518/6417/31812 +f 5516/6413/31813 5528/6414/31814 5573/6514/31815 +f 5573/6514/31816 5561/6512/31817 5516/6413/31818 +f 5576/6536/31819 5562/6535/31820 5517/6428/31821 +f 5517/6428/31822 5531/6410/31823 5576/6536/31824 +s 1 +f 5514/6518/31825 5600/6540/31826 5562/6477/31827 +f 5562/6477/31828 5559/6481/31829 5514/6518/31830 +s 2 +f 5598/6511/31831 5601/6519/31832 5577/6485/31833 +f 5577/6485/31834 5555/6474/31835 5598/6511/31836 +f 5601/6519/31837 5602/6541/31838 5579/6487/31839 +f 5579/6487/31840 5577/6485/31841 5601/6519/31842 +s 1 +f 5602/6520/31843 5608/6521/31844 5588/6532/31845 +f 5588/6532/31846 5579/6537/31847 5602/6520/31848 +f 5603/6522/31849 5609/6523/31850 5589/6493/31851 +f 5589/6493/31852 5580/6492/31853 5603/6522/31854 +f 5610/6524/31855 5605/6525/31856 5584/6498/31857 +f 5584/6498/31858 5592/6497/31859 5610/6524/31860 +f 5540/6526/31861 5514/6518/31862 5559/6481/31863 +f 5559/6481/31864 5585/6500/31865 5540/6526/31866 +f 5541/6527/31867 5540/6526/31868 5585/6500/31869 +f 5585/6500/31870 5586/6506/31871 5541/6527/31872 +f 5608/6521/31873 5603/6522/31874 5580/6492/31875 +f 5580/6492/31876 5588/6532/31877 5608/6521/31878 +f 5609/6523/31879 5604/6528/31880 5581/6503/31881 +f 5581/6503/31882 5589/6493/31883 5609/6523/31884 +f 5604/6528/31885 5610/6524/31886 5592/6497/31887 +f 5592/6497/31888 5581/6503/31889 5604/6528/31890 +f 5605/6525/31891 5611/6529/31892 5594/6505/31893 +f 5594/6505/31894 5584/6498/31895 5605/6525/31896 +f 5611/6529/31897 5550/6542/31898 5595/6538/31899 +f 5595/6538/31900 5594/6505/31901 5611/6529/31902 +f 5550/6530/31903 5541/6527/31904 5586/6506/31905 +f 5586/6506/31906 5595/6508/31907 5550/6530/31908 +s 2 +f 5507/6407/31909 5597/6510/31910 5506/6539/31911 +f 5506/6539/31912 5596/6404/31913 5507/6407/31914 +f 5510/6409/31915 5598/6511/31916 5597/6510/31917 +f 5597/6510/31918 5507/6407/31919 5510/6409/31920 +s 1 +f 5517/6428/31921 5600/6540/31922 5514/6518/31923 +f 5514/6518/31924 5599/6429/31925 5517/6428/31926 +s 2 +f 5532/6431/31927 5601/6519/31928 5598/6511/31929 +f 5598/6511/31930 5510/6409/31931 5532/6431/31932 +s 1 +f 5543/6432/31933 5608/6521/31934 5602/6520/31935 +f 5602/6520/31936 5534/6433/31937 5543/6432/31938 +s 2 +f 5534/6433/31939 5602/6541/31940 5601/6519/31941 +f 5601/6519/31942 5532/6431/31943 5534/6433/31944 +s 1 +f 5544/6436/31945 5609/6523/31946 5603/6522/31947 +f 5603/6522/31948 5535/6437/31949 5544/6436/31950 +f 5539/6439/31951 5605/6525/31952 5610/6524/31953 +f 5610/6524/31954 5547/6440/31955 5539/6439/31956 +f 5599/6429/31957 5514/6518/31958 5540/6526/31959 +f 5540/6526/31960 5606/6442/31961 5599/6429/31962 +f 5606/6442/31963 5540/6526/31964 5541/6527/31965 +f 5541/6527/31966 5607/6444/31967 5606/6442/31968 +f 5535/6437/31969 5603/6522/31970 5608/6521/31971 +f 5608/6521/31972 5543/6432/31973 5535/6437/31974 +f 5536/6446/31975 5604/6528/31976 5609/6523/31977 +f 5609/6523/31978 5544/6436/31979 5536/6446/31980 +f 5547/6440/31981 5610/6524/31982 5604/6528/31983 +f 5604/6528/31984 5536/6446/31985 5547/6440/31986 +f 5549/6447/31987 5611/6529/31988 5605/6525/31989 +f 5605/6525/31990 5539/6439/31991 5549/6447/31992 +f 5607/6444/31993 5541/6527/31994 5550/6530/31995 +f 5550/6530/31996 5612/6448/31997 5607/6444/31998 +f 5612/6448/31999 5550/6542/32000 5611/6529/32001 +f 5611/6529/32002 5549/6447/32003 5612/6448/32004 +f 5562/6535/32005 5600/6517/32006 5517/6428/32007 +s 4 +f 5566/6534/32008 5521/6405/32009 5596/6404/32010 +f 5596/6404/32011 5551/6533/32012 5566/6534/32013 +# 10671 faces + diff --git a/examples/web/models/resources/model/dwarf_diffuse.png b/examples/web/models/resources/model/dwarf_diffuse.png new file mode 100644 index 0000000..15dee61 Binary files /dev/null and b/examples/web/models/resources/model/dwarf_diffuse.png differ diff --git a/examples/web/models/resources/model/dwarf_normal.png b/examples/web/models/resources/model/dwarf_normal.png new file mode 100644 index 0000000..ae2babf Binary files /dev/null and b/examples/web/models/resources/model/dwarf_normal.png differ diff --git a/examples/web/models/resources/model/dwarf_specular.png b/examples/web/models/resources/model/dwarf_specular.png new file mode 100644 index 0000000..5f51039 Binary files /dev/null and b/examples/web/models/resources/model/dwarf_specular.png differ diff --git a/examples/web/models/resources/tower.obj b/examples/web/models/resources/tower.obj new file mode 100644 index 0000000..ea03a9f --- /dev/null +++ b/examples/web/models/resources/tower.obj @@ -0,0 +1,456 @@ +# Blender v2.78 (sub 0) OBJ File: 'lowpoly-tower.blend' +# www.blender.org +o Grid +v -4.000000 0.000000 4.000000 +v -2.327363 0.000000 4.654725 +v 0.000000 0.000000 4.654725 +v 2.327363 0.000000 4.654725 +v 4.000000 0.000000 4.000000 +v -4.654725 0.955085 2.327363 +v -2.000000 0.815050 2.000000 +v 0.000000 0.476341 2.423448 +v 2.000000 0.476341 2.000000 +v 4.654725 0.000000 2.327363 +v -4.654725 1.649076 0.000000 +v -2.423448 1.092402 0.000000 +v 2.423448 0.198579 0.000000 +v 4.654725 0.000000 0.000000 +v -4.654725 1.649076 -2.327363 +v -2.000000 1.092402 -2.000000 +v 0.000000 0.476341 -2.423448 +v 2.000000 -0.012791 -2.000000 +v 4.654725 0.000000 -2.612731 +v -4.000000 0.955085 -4.000000 +v -2.327363 0.955085 -4.654725 +v 0.000000 0.955085 -4.654725 +v 2.327363 0.000000 -4.654725 +v 4.000000 0.000000 -4.000000 +v 2.423448 0.682825 0.000000 +v 2.000000 0.565423 -2.000000 +v -4.654725 -0.020560 2.327363 +v -4.654725 0.000000 0.000000 +v -4.654725 0.000000 -2.327363 +v -4.000000 0.000000 -4.000000 +v -2.327363 0.000000 -4.654725 +v 0.000000 -0.020560 -4.654725 +v 0.000000 0.709880 -1.230535 +v -0.000000 7.395413 0.000000 +v 0.962071 0.709880 -0.767226 +v -0.533909 0.709880 1.108674 +v -1.199683 0.709880 0.273820 +v -0.962071 0.709880 -0.767226 +v 1.506076 0.859071 1.325337 +v 1.199683 0.709880 0.273820 +v 0.533909 0.709880 1.108674 +v 0.000000 1.875340 -1.177842 +v -0.000000 2.293973 -0.649884 +v -0.000000 4.365648 -0.627970 +v 0.000000 6.167194 -0.942957 +v 0.000000 6.232434 -1.708677 +v 1.335898 6.232434 -1.065343 +v 0.737233 6.167195 -0.587924 +v 0.490966 4.365648 -0.391533 +v 0.508100 2.293973 -0.405196 +v 0.920874 1.875340 -0.734372 +v -0.741367 6.232434 1.539465 +v -0.409133 6.167195 0.849574 +v -0.272466 4.365648 0.565781 +v -0.281974 2.293973 0.585526 +v -0.511047 1.875340 1.061199 +v -1.665837 6.232434 0.380217 +v -0.919314 6.167195 0.209828 +v -0.612225 4.365648 0.139736 +v -0.633590 2.293973 0.144613 +v -1.148311 1.875340 0.262095 +v -1.335898 6.232434 -1.065343 +v -0.737233 6.167195 -0.587924 +v -0.490967 4.365648 -0.391533 +v -0.508100 2.293973 -0.405196 +v -0.920874 1.875340 -0.734372 +v 1.665837 6.232434 0.380216 +v 0.919315 6.167195 0.209828 +v 0.612225 4.365648 0.139736 +v 0.633590 2.293973 0.144613 +v 1.148311 1.875340 0.262095 +v 0.741367 6.232434 1.539465 +v 0.409133 6.167195 0.849575 +v 0.272466 4.365648 0.565781 +v 0.281974 2.293973 0.585526 +v 0.511046 1.875340 1.061199 +v 0.000000 5.012550 -0.969733 +v 0.758168 5.012550 -0.604618 +v -0.420751 5.012550 0.873699 +v -0.945419 5.012550 0.215786 +v -0.758168 5.012550 -0.604618 +v 0.945419 5.012550 0.215786 +v 0.420751 5.012550 0.873699 +vt 0.0523 0.5444 +vt 0.1817 0.4284 +vt 0.1641 0.5859 +vt 0.0177 0.4451 +vt 0.1526 0.3090 +vt 0.0189 0.1737 +vt 0.0188 0.3088 +vt 0.0561 0.0762 +vt 0.1757 0.1924 +vt 0.3024 0.4534 +vt 0.3071 0.5902 +vt 0.3413 0.2459 +vt 0.2906 0.1614 +vt 0.4116 0.1801 +vt 0.2834 0.3774 +vt 0.1526 0.0362 +vt 0.2917 0.1622 +vt 0.4446 0.5865 +vt 0.4443 0.2989 +vt 0.3711 0.3021 +vt 0.4396 0.0275 +vt 0.4094 0.1829 +vt 0.4219 0.4255 +vt 0.5474 0.5381 +vt 0.5811 0.4376 +vt 0.5715 0.1505 +vt 0.5811 0.2997 +vt 0.5272 0.0533 +vt 0.2208 0.2194 +vt 0.3456 0.3610 +vt 0.2878 0.0321 +vt 0.2321 0.3392 +vt 0.4432 0.0177 +vt 0.7347 0.7934 +vt 0.7382 0.7595 +vt 0.8982 0.7768 +vt 0.6169 0.7595 +vt 0.6139 0.7879 +vt 0.4951 0.7634 +vt 0.1551 0.6832 +vt 0.2925 0.6268 +vt 0.2925 0.6832 +vt 0.7795 0.6832 +vt 0.6421 0.6268 +vt 0.7795 0.6255 +vt 0.5046 0.7241 +vt 0.6421 0.7241 +vt 0.3986 0.6268 +vt 0.3986 0.6832 +vt 0.5046 0.6268 +vt 0.0177 0.6268 +vt 0.1551 0.6255 +vt 0.8856 0.6268 +vt 0.1899 0.9579 +vt 0.1194 0.8696 +vt 0.2324 0.8696 +vt 0.1899 0.7813 +vt 0.0943 0.7595 +vt 0.0177 0.8206 +vt 0.0177 0.9186 +vt 0.0943 0.9797 +vt 0.2793 0.2349 +vt 0.2304 0.2758 +vt 0.6597 0.0177 +vt 0.6954 0.0993 +vt 0.6367 0.0768 +vt 0.7558 0.0777 +vt 0.7238 0.0440 +vt 0.8840 0.1330 +vt 0.7385 0.1141 +vt 0.9157 0.0886 +vt 0.9781 0.1232 +vt 0.9224 0.1276 +vt 0.2677 0.8141 +vt 0.3463 0.8037 +vt 0.3086 0.8339 +vt 0.6387 0.3550 +vt 0.7130 0.3801 +vt 0.6596 0.4053 +vt 0.7245 0.3245 +vt 0.6919 0.3383 +vt 0.8655 0.3566 +vt 0.7351 0.3577 +vt 0.9770 0.3365 +vt 0.9078 0.3751 +vt 0.9174 0.3282 +vt 0.2677 0.9018 +vt 0.3086 0.8821 +vt 0.6803 0.2948 +vt 0.6251 0.3035 +vt 0.7194 0.2854 +vt 0.8764 0.2832 +vt 0.9221 0.2861 +vt 0.3363 0.9565 +vt 0.3464 0.9122 +vt 0.6751 0.2482 +vt 0.6178 0.2499 +vt 0.7179 0.2431 +vt 0.9823 0.2484 +vt 0.9247 0.2452 +vt 0.3935 0.9014 +vt 0.6755 0.1996 +vt 0.6164 0.1941 +vt 0.7201 0.1992 +vt 0.8793 0.2446 +vt 0.9823 0.2060 +vt 0.9257 0.2051 +vt 0.4598 0.8580 +vt 0.4144 0.8579 +vt 0.6819 0.1498 +vt 0.6222 0.1361 +vt 0.7266 0.1555 +vt 0.8831 0.1684 +vt 0.9252 0.1659 +vt 0.4218 0.7790 +vt 0.3934 0.8145 +vt 0.3363 0.7595 +vt 0.8815 0.2060 +vt 0.8720 0.3208 +vt 0.8825 0.1012 +vt 0.9735 0.0816 +vt 0.9718 0.3817 +vt 0.9807 0.2918 +vt 0.4218 0.9370 +vt 0.9810 0.1644 +vn 0.1035 0.8806 0.4623 +vn 0.0964 0.9481 0.3030 +vn 0.0000 0.9780 0.2088 +vn 0.0659 0.9835 0.1683 +vn 0.2325 0.9320 0.2779 +vn 0.0553 0.9960 -0.0702 +vn 0.2827 0.9564 0.0728 +vn 0.1873 0.9776 -0.0961 +vn 0.2421 0.9703 0.0000 +vn 0.0921 0.9772 -0.1913 +vn -0.0277 0.9947 -0.0993 +vn 0.2308 0.9274 -0.2944 +vn 0.2771 0.9572 -0.0837 +vn 0.3724 0.9074 0.1947 +vn 0.0777 0.9770 -0.1985 +vn -0.1094 0.9539 0.2794 +vn 0.0364 0.9844 0.1721 +vn 0.1683 0.9835 0.0659 +vn 0.0674 0.9901 0.1230 +vn 0.4338 0.8823 0.1829 +vn 0.2845 0.9565 0.0649 +vn 0.0886 0.9961 0.0000 +vn 0.2000 0.9789 0.0424 +vn 0.1417 0.9830 0.1171 +vn 0.3021 0.9524 0.0412 +vn -0.0193 0.9986 -0.0493 +vn 0.0000 0.9777 0.2098 +vn 0.0005 0.9781 -0.2083 +vn 0.1879 0.9782 -0.0887 +vn 0.2249 0.0000 0.9744 +vn 0.9783 0.0000 -0.2071 +vn 0.9783 0.0000 0.2071 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.3645 0.0000 -0.9312 +vn -0.9312 0.0000 -0.3645 +vn -0.9312 0.0000 0.3645 +vn 0.2615 0.7979 -0.5431 +vn 0.5877 0.7979 -0.1341 +vn 0.4713 0.7979 0.3758 +vn -0.0000 0.7979 0.6028 +vn -0.4713 0.7979 0.3758 +vn -0.5877 0.7979 -0.1341 +vn -0.2615 0.7979 -0.5431 +vn -0.1285 0.9864 -0.1025 +vn 0.0929 0.8937 0.4389 +vn -0.4335 0.0407 -0.9002 +vn -0.2867 0.7507 -0.5952 +vn -0.4339 0.0095 -0.9009 +vn -0.4338 0.0209 -0.9008 +vn -0.0408 -0.9956 -0.0848 +vn -0.9741 0.0407 -0.2223 +vn -0.6441 0.7507 -0.1470 +vn -0.9749 0.0095 -0.2225 +vn -0.9747 0.0209 -0.2225 +vn -0.0918 -0.9956 -0.0209 +vn -0.7812 0.0407 0.6230 +vn -0.5165 0.7507 0.4119 +vn -0.7818 0.0095 0.6235 +vn -0.7817 0.0209 0.6234 +vn -0.0736 -0.9956 0.0587 +vn -0.0000 0.0407 0.9992 +vn 0.0000 0.7507 0.6607 +vn 0.0000 0.0095 1.0000 +vn -0.0000 0.0209 0.9998 +vn -0.0000 -0.9956 0.0941 +vn 0.7812 0.0407 0.6230 +vn 0.5165 0.7507 0.4119 +vn 0.7818 0.0095 0.6235 +vn 0.7817 0.0209 0.6234 +vn 0.0736 -0.9956 0.0587 +vn 0.9741 0.0407 -0.2223 +vn 0.6441 0.7507 -0.1470 +vn 0.9749 0.0095 -0.2225 +vn 0.9747 0.0209 -0.2225 +vn 0.0918 -0.9956 -0.0209 +vn 0.4335 0.0407 -0.9002 +vn 0.2867 0.7507 -0.5952 +vn 0.4339 0.0095 -0.9009 +vn 0.4338 0.0209 -0.9008 +vn 0.0408 -0.9956 -0.0848 +vn 0.3918 -0.4298 -0.8135 +vn 0.8803 -0.4298 -0.2009 +vn 0.7059 -0.4298 0.5630 +vn -0.0000 -0.4298 0.9029 +vn -0.7059 -0.4298 0.5630 +vn -0.8803 -0.4298 -0.2009 +vn -0.3918 -0.4298 -0.8135 +vn 0.0210 0.9998 -0.0048 +vn 0.0482 0.9981 -0.0385 +vn -0.0166 0.9914 -0.1301 +vn -0.0090 0.9904 -0.1379 +vn 0.2820 0.9576 0.0597 +vn -0.0000 0.9846 0.1749 +vn -0.0921 0.9772 -0.1913 +vn -0.1734 0.9794 0.1036 +s off +f 1/1/1 7/2/1 6/3/1 +f 2/4/2 8/5/2 7/2/2 +f 4/6/3 8/5/3 3/7/3 +f 5/8/4 9/9/4 4/6/4 +f 6/3/5 12/10/5 11/11/5 +f 35/12/6 25/13/6 26/14/6 +f 7/2/7 37/15/7 12/10/7 +f 10/16/8 13/17/8 9/9/8 +f 12/10/9 15/18/9 11/11/9 +f 35/12/10 17/19/10 33/20/10 +f 13/17/11 19/21/11 18/22/11 +f 16/23/12 20/24/12 15/18/12 +f 17/19/13 21/25/13 16/23/13 +f 17/19/14 23/26/14 22/27/14 +f 26/14/15 24/28/15 23/26/15 +f 1/1/16 2/4/16 7/2/16 +f 2/4/3 3/7/3 8/5/3 +f 4/6/17 9/9/17 8/5/17 +f 5/8/18 10/16/18 9/9/18 +f 6/3/19 7/2/19 12/10/19 +f 25/13/20 39/29/20 9/9/20 +f 38/30/21 12/10/21 37/15/21 +f 10/16/22 14/31/22 13/17/22 +f 12/10/23 16/23/23 15/18/23 +f 8/5/24 36/32/24 7/2/24 +f 38/30/25 17/19/25 16/23/25 +f 13/17/22 14/31/22 19/21/22 +f 16/23/26 21/25/26 20/24/26 +f 17/19/27 22/27/27 21/25/27 +f 17/19/28 26/14/28 23/26/28 +f 26/14/29 19/33/29 24/28/29 +f 26/34/30 18/35/30 19/36/30 +f 26/34/31 13/37/31 18/35/31 +f 25/38/32 9/39/32 13/37/32 +f 22/40/33 31/41/33 21/42/33 +f 6/43/34 28/44/34 27/45/34 +f 15/46/34 28/44/34 11/47/34 +f 21/42/35 30/48/35 20/49/35 +f 20/49/36 29/50/36 15/46/36 +f 22/40/33 23/51/33 32/52/33 +f 6/43/37 27/45/37 1/53/37 +f 46/54/38 34/55/38 47/56/38 +f 47/56/39 34/55/39 67/57/39 +f 67/57/40 34/55/40 72/58/40 +f 72/58/41 34/55/41 52/59/41 +f 52/59/42 34/55/42 57/60/42 +f 57/60/43 34/55/43 62/61/43 +f 62/61/44 34/55/44 46/54/44 +f 40/62/45 41/63/45 39/29/45 +f 39/29/46 8/5/46 9/9/46 +f 38/64/47 42/65/47 33/66/47 +f 65/67/48 42/65/48 66/68/48 +f 65/67/49 44/69/49 43/70/49 +f 81/71/50 45/72/50 77/73/50 +f 62/74/51 45/75/51 63/76/51 +f 37/77/52 66/78/52 38/79/52 +f 60/80/53 66/78/53 61/81/53 +f 60/80/54 64/82/54 65/83/54 +f 58/84/55 81/85/55 80/86/55 +f 57/87/56 63/76/56 58/88/56 +f 56/89/57 37/77/57 36/90/57 +f 55/91/58 61/81/58 56/89/58 +f 54/92/59 60/80/59 55/91/59 +f 79/93/60 58/84/60 80/86/60 +f 52/94/61 58/88/61 53/95/61 +f 76/96/62 36/90/62 41/97/62 +f 75/98/63 56/89/63 76/96/63 +f 75/98/64 54/92/64 55/91/64 +f 73/99/65 79/93/65 83/100/65 +f 73/101/66 52/94/66 53/95/66 +f 71/102/67 41/97/67 40/103/67 +f 70/104/68 76/96/68 71/102/68 +f 70/104/69 74/105/69 75/98/69 +f 68/106/70 83/100/70 82/107/70 +f 67/108/71 73/101/71 68/109/71 +f 51/110/72 40/103/72 35/111/72 +f 50/112/73 71/102/73 51/110/73 +f 49/113/74 70/104/74 50/112/74 +f 78/114/75 68/106/75 82/107/75 +f 47/115/76 68/109/76 48/116/76 +f 42/65/77 35/111/77 33/66/77 +f 43/70/78 51/110/78 42/65/78 +f 44/69/79 50/112/79 43/70/79 +f 45/72/80 78/114/80 77/73/80 +f 46/117/81 48/116/81 45/75/81 +f 44/69/82 78/114/82 49/113/82 +f 49/113/83 82/107/83 69/118/83 +f 82/107/84 74/105/84 69/118/84 +f 83/100/85 54/92/85 74/105/85 +f 79/93/86 59/119/86 54/92/86 +f 80/86/87 64/82/87 59/119/87 +f 64/120/88 77/73/88 44/69/88 +f 35/12/89 40/62/89 25/13/89 +f 7/2/90 36/32/90 37/15/90 +f 35/12/91 26/14/91 17/19/91 +f 25/13/92 40/62/92 39/29/92 +f 38/30/93 16/23/93 12/10/93 +f 8/5/94 41/63/94 36/32/94 +f 38/30/95 33/20/95 17/19/95 +f 26/34/31 25/38/31 13/37/31 +f 22/40/33 32/52/33 31/41/33 +f 6/43/34 11/47/34 28/44/34 +f 15/46/34 29/50/34 28/44/34 +f 21/42/35 31/41/35 30/48/35 +f 20/49/36 30/48/36 29/50/36 +f 39/29/96 41/63/96 8/5/96 +f 38/64/47 66/68/47 42/65/47 +f 65/67/48 43/70/48 42/65/48 +f 65/67/49 64/120/49 44/69/49 +f 81/71/50 63/121/50 45/72/50 +f 62/74/51 46/117/51 45/75/51 +f 37/77/52 61/81/52 66/78/52 +f 60/80/53 65/83/53 66/78/53 +f 60/80/54 59/119/54 64/82/54 +f 58/84/55 63/122/55 81/85/55 +f 57/87/56 62/74/56 63/76/56 +f 56/89/57 61/81/57 37/77/57 +f 55/91/58 60/80/58 61/81/58 +f 54/92/59 59/119/59 60/80/59 +f 79/93/60 53/123/60 58/84/60 +f 52/94/61 57/87/61 58/88/61 +f 76/96/62 56/89/62 36/90/62 +f 75/98/63 55/91/63 56/89/63 +f 75/98/64 74/105/64 54/92/64 +f 73/99/65 53/123/65 79/93/65 +f 73/101/66 72/124/66 52/94/66 +f 71/102/67 76/96/67 41/97/67 +f 70/104/68 75/98/68 76/96/68 +f 70/104/69 69/118/69 74/105/69 +f 68/106/70 73/99/70 83/100/70 +f 67/108/71 72/124/71 73/101/71 +f 51/110/72 71/102/72 40/103/72 +f 50/112/73 70/104/73 71/102/73 +f 49/113/74 69/118/74 70/104/74 +f 78/114/75 48/125/75 68/106/75 +f 47/115/76 67/108/76 68/109/76 +f 42/65/77 51/110/77 35/111/77 +f 43/70/78 50/112/78 51/110/78 +f 44/69/79 49/113/79 50/112/79 +f 45/72/80 48/125/80 78/114/80 +f 46/117/81 47/115/81 48/116/81 +f 44/69/82 77/73/82 78/114/82 +f 49/113/83 78/114/83 82/107/83 +f 82/107/84 83/100/84 74/105/84 +f 83/100/85 79/93/85 54/92/85 +f 79/93/86 80/86/86 59/119/86 +f 80/86/87 81/85/87 64/82/87 +f 64/120/88 81/71/88 77/73/88 diff --git a/examples/web/models/resources/tower.png b/examples/web/models/resources/tower.png new file mode 100644 index 0000000..7c9239e Binary files /dev/null and b/examples/web/models/resources/tower.png differ -- cgit v1.2.3